Skip to content

Releases: amadvance/snapraid

SnapRAID v11.0

21 Nov 18:56
Compare
Choose a tag to compare
  • 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

28 Feb 21:07
Compare
Choose a tag to compare
  • 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

17 Jan 17:55
Compare
Choose a tag to compare
  • 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

09 Jan 16:05
Compare
Choose a tag to compare
  • 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

20 Nov 20:56
Compare
Choose a tag to compare
  • 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

13 Nov 21:44
Compare
Choose a tag to compare
  • 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

19 Jul 06:33
Compare
Choose a tag to compare
  • 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.