Releases: amadvance/snapraid
Releases · amadvance/snapraid
SnapRAID v11.1
- Fixed the check command to correctly ignore errors on unused parity.
This was broken in version 9.0. - Allow increasing the number of parity splits of existing parity.
- Fixed quoting when printing in Linux. This fixes the UTF-8 screen
output. Windows version was not affected. - Fixed recognition of 'hashsize' in the configuration file.
The previous incorrect 'hash_size' is still supported for backward
compatibility. - Fixed building in platforms that don't provide major/minor definitions
in sys/types.h. - When creating 'pool' symbolic links, set their time as the linked files.
- Added support for the Windows 10 symbolic link unprivileged creation,
using SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE. - Windows binaries built with gcc 4.9.4 using the MXE cross compiler at
commit ae56efa2b23a793b0146508bfef33027cdb09fd2 with targets
i686-w64-mingw32 and x86_64-w64-mingw32 and optimization -O2.
SnapRAID v11.0
- Added support for splitting the parity in multiple partitions. You
can now specify multiple files for a single parity. As soon a file
cannot grow anymore, the next one starts growing.
In the configuration file, just put more files in the same 'parity'
line, separated by , (comma).
Note that if this feature is used, the saved content file won't be
read by older SnapRAID versions.
In Windows, 256 MB are left free in each disk to avoid the warning
about full disks. - Added a new 'hashsize' configuration option. It could be useful in
systems with low memory, to reduce the memory usage.
Note that if this feature is used, the saved content file won't be
read by older SnapRAID versions. - In Linux added the missing support for Btrfs file-systems. Note that
to have full support you need also the 'libblkid' library, otherwise
you won't get the UUIDs. - In screen messages don't print the disk directory in file path. You
can control the format with the test option:
--test-fmt file|disk|path. - In Windows allows to use the escape char '^' to handle file patterns
containing real characters matching the globbing '*?[]' ones. In Unix
it was already possible to do the same escaping with ''. - Added a new -R, --force-realloc option to reallocate all the
parity information keeping the precomputed hash.
This is the previous -F, --force-full that instead now maintains the
same parity organization and just recomputes it. - Added test options for selecting the file advise mode to use:
--test-io-advise-none for standard mode
--test-io-advise-sequential advise sequential access (Linux/Windows)
--test-io-advise-flush flush cache after every operation (Linux)
--test-io-advise-flush-window flush cache every 8 MB (Linux)
--test-io-advise-discard discard cache after every operation (Linux)
--test-io-advise-discard-window discard cache every 8 MB (Linux)
--test-io-advise-direct use direct/unbuffered mode (Linux/Windows)
The new default mode is 'flush' in Linux (before it was 'sequential'),
and 'sequential' in Windows (like before). - For Seagate SMR (Shingled Magnetic Recording) ignore the SMART
attribute Command_Timeout 188 as not reliable. - Fixed running in Windows platforms that miss the RtlGenRandom()
function. - Added the --test-io-cache=1 option to disable the multi-thread IO
mode.
SnapRAID v10.0
- Boosts the speed of the 'sync' and 'scrub' commands with a new
multi-thread implementation. It uses one thread for each disk,
dedicated exclusively to read-ahead data and parity and to
write-behind parity. This maximizes the data throughput keeping
disks always busy.
You can control the number of blocks to cache with the option
--test-io-cache=NUMBER, where the number is between 3 and 128.
The default is 8 MiB of blocks.
You can show run-time stats during the process with the
--test-io-stats option. You will see a graph with the number of
cached blocks, and a graph with the wait time percentage for all the
disks and computations. - The -h, --pre-hash command, saves the content file only after having
verified all the hashes. This allows recovering of moved files in
case a silent error is found during the hash verification check. - Allows to use the -d, --filter-disk option in the 'up' and 'down'
commands. - Allows to run the 'smart' command without a configuration file.
In such case it operates on all the disks of the machine. - In the configuration file 'data' is now a synonymous of 'disk'.
- Adds the 'touch' command intended to arbitrarily set all the zero
sub-second timestamps. This improves the SnapRAID capabilities to
identify files. The 'status' command recommends to run 'touch' if
required. - Restores the functionality of the -D, --force-device option when used
to workaround the use of the same disk for two logical data drives
when running the 'fix' command. - Uses a correct shell quoting in the example commands that involve
files. - The minimum Windows version supported is now Windows Vista. This is
required to use the native Windows thread support for the new
multi-thread implementation. If you need to run on Windows XP, you
have to stick on SnapRAID 9.x.
SnapRAID v9.3
- Fixes an invalid assumption in the copy detection mechanism that
could result in an internal inconsistency, and with the impossibility
to run the 'sync' and 'diff' commands.
This was triggered by a very specific pattern of identical files.
At least three of them, with one already in the parity, and at a
higher disk number than the others that should be instead new ones.
This had no bad effect, if not preventing the 'sync' command to run.
A workaround was to just run 'sync' one time with the -N, --force-nocopy
option to disable the copy detection. - Restored the -O2 optimization option for Windows binaries, as -Og has a
too big performance penality.
SnapRAID v9.2
- Fixes support for symlinks pointing to an empty target. Before they
were only partially supported, and their presence could result in
a content file not readable.
This also disables multi threads content write, as this was the issue
we tried to detect with this feature, and it doesn't provide a
performance advantage. Content verification is instead still multi
threads. - Autorename disks using the matching UUID. To rename a disk you can
now change directly the name in the configuration file, and run a 'sync'
command. - Improves the physical offset ordering for the Btrfs filesystem,
correctly detecting files that have not a physical offset, for
whatever reason. - Adds UUID support to Btrfs filesystems. It's present only if the
'libblkid' development library is available on the system.
Usually this requires to install the libblkid-dev or libblkid-devel
package. - Added a new --no-warnings option to disable some repetitive warnings
that could be annoying to power users. - Improves the error reporting, printing a complete stack trace, that can
be used to track down bugs more easily.
For this reason the Windows binaries are now built with optimization
option -Og, instead than -O2.
SnapRAID v9.1
- Fixes a bug when reading a content file with a deleted entry bigger
than 4 GB. This was a regression introduced in version 9.0 that
could result in the impossibility to read a valid content file,
after a deletion of a file bigger than 4 GB in the array.
If this happened to you, just upgrading to 9.1 fixes the issue, and
it allows you to continue to work.
Note that this bug only prevented to run 9.0, but your data was still
protected and could have been recovered using the versions 8.1 or 9.1. - In Windows disables the file zero check requiring the --force-zero
option. This check is intended for possible case using ext3/4 in Linux,
and there is no evidence that in Windows it's possible at all. - Windows binaries built with gcc 4.9.3 using the MXE cross compiler at
commit 62bcdbee56e87c81f1faa105b8777a5879d4e2e with targets
i686-w64-mingw32 and x86_64-w64-mingw32 and optimization -O2.
SnapRAID v9.0
- Fixes an invalid assumption that could happen when using the
-e, --filter-error option with "fix" or "check".
This was triggered by a very specific pattern of fragmented files
and bad blocks combination, not so easy to reproduce.
This had no bad effect, if not preventing the command to run. - Drastically reduces the memory usage. For each block, it now
uses 17 bytes of memory, instead of the previous 28 bytes
(for 32 bit) or 36 bytes (for 64 bit).
This could result is a memory saving of up the 50%. - The -p, --plan option (old --percentage) can be used to
define a scrub plan: "new", "bad" and "full".
The "new" plan scrubs all the new synced blocks not yet scrubbed.
This allows to verify as early as possible that the written
parity during sync is really correct. You can use the "status"
command to show the amount blocks not yet scrubbed.
The "bad" plan scrubs only bad blocks.
The "full" plan scrubs all blocks. - The graph in the "status" command now show scrubbed blocks
with '*', and synced, but not yet scrubbed, blocks with 'o'.
Note that when upgrading from a previous version, all blocks
are assumed scrubbed the first time. - Content files are now written asyncronously from different
threads to avoid the unfortunate condition that a memory
error affects all of them in the same way.
After writing, they are read again to verify their CRC.
This is done to ensure thay they are really OK, even in the
case of the worst possible silent errors. - Extends the -D, --force-device option to ignore more
erroneous conditions in the 'fix' command, like unaccessible
disks, or disks sharing the same physical device. - Extends the -d, --filter-disk option to allow to filter also
by parity disk. - Extends the -h, --pre-hash option to also verify moved and
copied files into the array before running a 'sync'. - Updates 'best' RAID functions for recent Atom CPUs.
- Validates filters specifications rejecting relative paths.
SnapRAID v8.1
- Fix build issues in generic Unix platforms, including Mac OS X.
- The "diff" command returns with error code 2 if a "sync" is
required, to differentiate with the generic error code 1. - Reduced the effect of SMART attribute 193 on the failure
probability to avoid some false positive reports.