- Added support for automated filesystem snapshots to ensure data
consistency and improve recovery reliability.
When the 'snapshot' option is enabled, SnapRAID transparently manages
filesystem snapshots during operations, requiring no changes to the
existing user workflow or file management.
Supported on Btrfs, Bcachefs, and ZFS in Linux, and on NTFS in
Windows.
This ensures that 'scrub', 'check', and 'fix' operations utilize a
frozen point-in-time reference for data disks, eliminating
mismatches caused by concurrent live filesystem modifications.
The use of snapshots significantly improves recovery success by
preserving access to files that were updated or deleted after the
last parity computation. - Implemented AVX-512BW (Byte and Word) support for parity generation
and data recovery, optimizing performance on modern architectures
like Intel Sapphire Rapids and AMD Zen 4/5.
By scaling to 512-bit ZMM registers, the implementation now processes
64 bytes per iteration, effectively doubling the data width of the
previous AVX2 routines. - Implemented AArch64 (ARM64) NEON support for parity generation and
data recovery, significantly improving performance on ARM-based
platforms. - Improved the chances of a successful recovery after an interrupted
sync. This is achieved by removing the sync optimization of not
recomputing the parity if the input data matches the expected hash.
While only the specific sync immediately following an interruption
will be slower, this change preserves hash data in the content file
to ensure a better fix during disk failures and allows the --import
option to remain functional even after an incomplete sync. - Skip spin-up and spin-down operations for non-rotational devices
(like SSDs and NVMe drives) on Linux and Windows. - Added --with-smartctl, --with-zfs, --with-zpool, --with-bcachefs
configure options to allow pinning the absolute path of each tool at
build time. When not specified, the existing runtime discovery
behaviour is preserved. Primarily intended for NixOS and other
non-FHS systems. - Removed the 512 TiB limitation on hard disk size (when using the
default 128 KiB blocks). - Added support for a custom info options tag
[info: ...]in the
smartctlconfiguration option. This allows replacing the default
-acommand line argument used to retrieve SMART attributes with a
customized set of arguments, enabling better support for RAID
controllers and USB enclosures. - Added support for specifying case-insensitive SMART attribute names
(instead of only numeric IDs) in thesmartignoreconfiguration
option. - Added support for filesystems where only specific files fail to
report a 64-bit inode number (such as ReFS when 128-bit file IDs
cannot be mapped), allowing SnapRAID to continue processing those
individual files without inodes. - Removed the dependency on the 'libblkid' library.