diff --git a/download.html b/download.html index 9940914f..fae877a7 100644 --- a/download.html +++ b/download.html @@ -78,11 +78,11 @@

- SnapRAID CLI v14.10 (Released July 2026). + SnapRAID CLI v15.0 (Released October 2026).

- SnapRAID Daemon v1.15 (Released July 2026). + SnapRAID Daemon v2.0 (Released October 2026).

@@ -112,39 +112,39 @@ Windows - 14.10 + 15.0 Portable executable for Windows - snapraid-14.10-windows-x64.zip + snapraid-15.0-windows-x64.zip Ubuntu
Debian
Mint - 14.10 + 15.0 DEB Package for Ubuntu, Debian, Mint, and all other DEB-compatible systems - snapraid_14.10-1_amd64.deb + snapraid_15.0-1_amd64.deb Fedora
RHEL
openSUSE - 14.10 + 15.0 RPM Package for Fedora, RHEL, openSUSE, and all other RPM-compatible systems - snapraid-14.10-1.x86_64.rpm + snapraid-15.0-1.x86_64.rpm Arch - 14.10 + 15.0 PKG Package for Arch - snapraid-14.10-1-x86_64.pkg.tar.zst + snapraid-15.0-1-x86_64.pkg.tar.zst Slackware - 14.10 + 15.0 TXZ Package for Slackware - snapraid-14.10-x86_64-1_am.txz + snapraid-15.0-x86_64-1_am.txz Source Code - 14.10 + 15.0 C source code compatible with all Linux distributions and macOS - snapraid-14.10.tar.gz + snapraid-15.0.tar.gz @@ -185,39 +185,39 @@ Windows - 1.15 + 2.0 Installer for Windows (If the SmartScreen "Blue Box" appears, select "More Info" and then "Run anyway") - snapraid-daemon-1.15.exe + snapraid-daemon-2.0.exe Ubuntu
Debian
Mint - 1.15 + 2.0 DEB Package for Ubuntu, Debian, Mint, and all other DEB-compatible systems - snapraid-daemon_1.15-1_amd64.deb + snapraid-daemon_2.0-1_amd64.deb Fedora
RHEL
openSUSE - 1.15 + 2.0 RPM Package for Fedora, RHEL, openSUSE, and all other RPM-compatible systems - snapraid-daemon-1.15-1.x86_64.rpm + snapraid-daemon-2.0-1.x86_64.rpm Arch - 1.15 + 2.0 PKG Package for Arch - snapraid-daemon-1.15-1-x86_64.pkg.tar.zst + snapraid-daemon-2.0-1-x86_64.pkg.tar.zst Slackware - 1.15 + 2.0 TXZ Package for Slackware - snapraid-daemon-1.15-x86_64-1_am.txz + snapraid-daemon-2.0-x86_64-1_am.txz Source Code - 1.15 + 2.0 C source code compatible with all Linux distributions - snapraid-daemon-1.15.tar.gz + snapraid-daemon-2.0.tar.gz diff --git a/faq.html b/faq.html index d837c0e2..34032b12 100644 --- a/faq.html +++ b/faq.html @@ -164,12 +164,13 @@ How is it different from ZFS/Btrfs snapshots and NTFS Shadow Copy?

-SnapRAID creates a file-system snapshot conceptually similar to other snapshot solutions. -However, its primary purpose is to recover a disk to its saved state after a complete disk failure. +SnapRAID provides array-level parity protection across multiple independent disks, whereas filesystem snapshots only protect against accidental modifications or deletions within a single filesystem, without protecting against physical disk failure.

-SnapRAID is more akin to the RAID-Z/RAID functionality of ZFS/Btrfs. -Compared to them, SnapRAID offers the following advantages: +Rather than being mutually exclusive, SnapRAID can directly integrate with them: with the snapshot option enabled, SnapRAID automatically creates and manages snapshots on Btrfs, ZFS, Bcachefs, and NTFS. This combines the point-in-time consistency and modification protection of local filesystem snapshots with SnapRAID's multi-disk parity recovery. +

+

+Compared to the RAID capabilities of ZFS (RAID-Z) and Btrfs (RAID-5/6), SnapRAID offers several distinct advantages:

-ZFS and Btrfs have advantages, such as being real-time solutions. -The best choice depends on your specific use case. +ZFS and Btrfs have advantages as well, such as real-time parity updates. The best choice depends on your specific use case.

@@ -271,15 +271,14 @@ Does SnapRAID have a GUI?

Yes, SnapRAID Daemon includes a web GUI. -There is also an external GUI called - -Elucidate - -, -and a plugin for +There are also plugins for OpenMediaVault +and + +Cockpit + .

@@ -429,7 +428,7 @@ Wikipedia: Comparison of file verification software .

-For a setup example in Ubuntu 14.04, see +For a setup example in Ubuntu, see Zack's SnapRAID tutorial @@ -565,20 +564,26 @@ Result -Any +ext4, XFS -You can generally use any file system you prefer, with some exceptions noted below. If in doubt, ext4 and XFS (and NTFS on Windows) are always good choices. +OK. Recommended in Linux. -Btrfs +NTFS, ReFS -OK. Ensure SnapRAID is built with the libblkid library for UUID support. -You will be warned at each run if this is not the case. -Note that multiple Btrfs snapshots are not supported. +OK. Recommended in Windows. + + + + +Btrfs, Bcachefs + + +OK. Allows the use of snapshots for additional recovery safety. @@ -586,9 +591,8 @@ Note that multiple Btrfs snapshots are not supported. ZFS -Partial. UUID support is unavailable, but core SnapRAID functionalities remain usable. -Note that multiple ZFS snapshots are not supported. -ZFS is not very performant with single-disk filesystems, so it's not a good match for SnapRAID. +OK. Allows the use of snapshots for additional recovery safety. +Note that ZFS is not very performant with single-disk filesystems, so it's not a good match for SnapRAID. @@ -605,15 +609,10 @@ of duplicate inode cases. NTFS is significantly faster and recommended instead. -ReFS +Others -No. ReFS uses - - 128-bit inodes - -, -which SnapRAID does not yet support. +You can generally use any other file system you prefer, with the exceptions noted above. @@ -647,12 +646,10 @@ OK. -Btrfs +Btrfs, ZFS, Bcachefs -OK. Ensure SnapRAID is built with the libblkid library for UUID support. -You will be warned at each run if this is not the case. -Anyway, keep in mind that the advanced functionalities of Btrfs are not really needed for a parity disk. ext4 or XFS are likely better choices. +OK. Keep in mind that they do not add extra safety for a parity disk. ext4 or XFS are likely better choices. @@ -718,34 +715,73 @@ On an 8 TB disk, this can save about 400 GB. It is also expected to be as fast a

+

+How to enable snapshots? +

+
+

+To enable filesystem snapshots, add the + +snapshot + +option to your + +snapraid.conf + +configuration file: +

+

+snapshot
+

+

+This option applies to data disks formatted with Btrfs, Bcachefs, or ZFS in Linux, and NTFS in Windows. +

+

+The use of snapshots is completely automatic and transparent to both the user and the SnapRAID daemon. +No changes are required to your workflow, commands, or file management. SnapRAID automatically creates, uses, and cleans up snapshots in the background during operations (such as sync, scrub, check, and fix). +

+

+The only visible effect is informational progress messages displayed during operations, such as: +

+

+Creating disk d1 scan snapshot...
+Committing disk d1 stable snapshot...
+Using disk d1 stable snapshot...
+

+

+Note that snapshot creation and deletion require administrative privileges. Ensure SnapRAID is run with the necessary permissions (e.g., sudo on Linux or as Administrator on Windows). +

+
+
+

Which hardware configuration is recommended?

-For optimal performance, connect all disks via SATA, not USB. +For optimal performance, connect all disks via SATA, SAS, or NVMe, and avoid USB disks when possible. +

+

+Both traditional mechanical hard drives (HDDs) and solid-state drives (SATA or NVMe SSDs) are supported. +SnapRAID automatically detects non-rotational devices on both Linux and Windows, skipping unnecessary spin-up and spin-down operations.

See ServerBuilds NAS Killer 4.0 Build Guide, Reddit DataHoarder and -Reddit HomeServer. +Reddit HomeServer for examples of hardware setups.

-Is a multi-core CPU recommended? +How fast does the CPU need to be?

-No. SnapRAID is typically not CPU-bound; the limiting factor is disk read performance. -A single-core CPU is usually sufficient. -

-

-For example, in my system, I achieve a combined read speed of 600 MiB/s, -but SnapRAID can hash at 12,000 MiB/s on a single core. +SnapRAID is typically not CPU-bound; the limiting factor is disk read and write performance. +Even an entry-level modern CPU is usually sufficient, as SnapRAID's hashing and parity computation algorithms are highly optimized and can process data much faster than mechanical disks can deliver it.

@@ -940,7 +976,7 @@ How can I use more disks than available drive letters in Windows?

Use - + Volume Mount Points to mount a disk in a directory without @@ -1089,14 +1125,14 @@ Faulty RAM is the most common cause of data loss with SnapRAID. Run the "sync" command frequently, from once a day to once a week.

  • -Run the "scrub" command weekly. +Run the "scrub" command daily or weekly, selecting an appropriate percentage to achieve a full scrub every three months (for example, 1% daily or 8% weekly).
  • -Use +Use the SnapRAID daemon or smartmontools -or a similar utility +(or a similar utility) to monitor SMART attributes. Replace a disk at the first sign of @@ -1308,7 +1344,11 @@ How can I safely move files from one disk to another?

    -To safely move files between data disks in the array, follow these steps: +If the snapshot option is enabled in snapraid.conf, you can move files directly from one disk to another and run sync whenever convenient. +Because the original files remain preserved in the filesystem snapshot, parity protection is not compromised during the process. +

    +

    +If filesystem snapshots are not enabled, follow these steps to move files safely between data disks:

    • @@ -1349,11 +1389,18 @@ How can I make SnapRAID less resource-intensive for other processes?

      -In Linux, use the +You can limit SnapRAID's disk I/O throughput on any platform using the built-in -w, --bw-limit RATE option. +This sets a global bandwidth limit across all disks (e.g. 100M for 100 MB/s): +

      +
      +snapraid -w 100M sync
      +
      +

      +Additionally, in Linux, you can use the ionice -command with idle priority, like: +command with idle priority:

       ionice -c 3 snapraid sync
      @@ -1426,7 +1473,11 @@ What happens if I delete files and a disk fails before updating parity with "syn
       
       

      -In the worst case, files deleted or modified on non-failed disks may prevent recovery of an equivalent amount of data on the failed disk. +If the snapshot option is enabled in snapraid.conf, this risk is completely eliminated. +Because deleted or modified files are preserved in filesystem snapshots, SnapRAID can access the original data blocks and recover the failed disk without any data loss. +

      +

      +If filesystem snapshots are not enabled, in the worst case, files deleted or modified on non-failed disks may prevent recovery of an equivalent amount of data on the failed disk. For example, deleting 10 GB of data may prevent recovery of 10 GB from the failed disk. The exact data loss depends on how much the deleted and failed data overlap in the parity.

      @@ -1434,7 +1485,7 @@ The exact data loss depends on how much the deleted and failed data overlap in t Using two parity disks significantly improves recovery chances.

      -To ensure safety, avoid deleting files directly. Instead, move them to another directory on the same disk, +Without snapshots, to ensure safety, avoid deleting files directly. Instead, move them to another directory on the same disk, outside the SnapRAID-checked directory tree. Run the "sync" command, then delete the files. If a disk fails during the "sync", run the "fix" command, specifying the location of the deleted files:

      @@ -1451,7 +1502,13 @@ What happens if a disk fails during a "sync"?

      You can still recover data. In the worst case, you can recover as much data as if the disk failed before the "sync". If the "sync" process has progressed, SnapRAID uses the partially synced data to recover more. -Using the "autosave" configuration option saves intermediate content files during the sync process, improving recovery. +

      +

      +SnapRAID preserves hash data in the content file across interruptions to ensure reliable recovery, and the --import option remains functional even after an incomplete sync. +Enabling the snapshot option further improves recovery by maintaining access to both the previous stable snapshot and the current progress. +

      +

      +Using the "autosave" configuration option also saves intermediate content files during long syncs, further improving recovery.

      @@ -1631,7 +1688,13 @@ For each block to recover, it first assumes the parity was correctly computed, a If this fails, it assumes the parity was not yet updated, ignoring any new files added to the array.

      -Using double parity improves recovery when there are overlapping changes in the array. +This is possible because SnapRAID stores the expected hash of each data block: after reconstructing a block from parity, it verifies it against the stored hash to ensure that the recovered data is correct. +

      +

      +When the snapshot option is enabled, SnapRAID can read automatically from both the previous stable snapshot and the pending snapshot. This maximizes the probability of a full recovery by providing access to the exact data blocks required to solve the parity equations, even if those blocks were modified or deleted between syncs. +

      +

      +Using double parity also improves recovery when there are overlapping changes in the array.

  • @@ -1644,11 +1707,10 @@ Can I access data disks during a 'sync'? Yes, you can safely read from data disks during a 'sync'.

    -You can also write, and if this interferes with the 'sync', -the process continues, skipping the written part. +If the snapshot option is enabled, you can also write to and modify files without any interference: SnapRAID reads from a frozen, read-only snapshot created at the start of the operation, ensuring that live filesystem modifications do not cause parity mismatches or aborted operations.

    -This may affect potential recovery, but it is equivalent to writing just after the 'sync' completes. +Without snapshots, you can still write, but if a file being read is concurrently modified, the process skips the written part. This may affect potential recovery until the next sync, which is equivalent to modifying the file immediately after the sync completes.

    @@ -1723,7 +1785,7 @@ What is the optimal hardware configuration for the best performance?

    -The most critical factor is using (E)SATA connections for all disks to avoid controller slowdowns. +The most critical factor is using internal connections (SATA, SAS, or NVMe) for all disks to avoid controller slowdowns. Avoid USB disks.

    @@ -1809,8 +1871,8 @@ How fast are the hash and parity computations?

    Murmur3 hash is very fast on 32-bit systems, and SpookyHash is even faster on 64-bit systems. -Parity computation is efficient up to double parity, even without SSE support. -Beyond double parity, a CPU with SSSE3 support is recommended. +Parity computation is heavily optimized using hardware SIMD acceleration across all major architectures: SSE2, SSSE3, AVX2, and AVX-512 on x86/x64, as well as ARM NEON on 64-bit (AArch64) and 32-bit (AArch32) ARM platforms. +Parity computation is efficient up to double parity even on basic CPUs. Beyond double parity, a CPU with SSSE3, AVX2, AVX-512, or NEON support is recommended for optimal performance. For low-end CPUs without SSE, a special, incompatible triple-parity option is available. See 'z-parity' in the manual for details.

    @@ -1820,11 +1882,19 @@ Check your values with the -T option:

     root@redstar:/root# snapraid -T
    -snapraid v14.0 by Andrea Mazzoleni, https://www.snapraid.it
    +snapraid v15.0 by Andrea Mazzoleni, https://www.snapraid.it
     Compiler gcc 11.2.0
    -CPU GenuineIntel, family 6, model 165, flags sse2 ssse3 crc32 avx2
    -Memory is little-endian 64-bit
    +CPU GenuineIntel, family 6 (0x6), model 165 (0xa5), stepping 5, flags sse2 ssse3 crc32 avx2
    +Model Intel(R) Core(TM) i7-10700 CPU @ 2.90GHz
    +Clock 2.90 GHz (max 4.80 GHz)
    +Cache L1 Data 32 KB, L2 256 KB, L3 16384 KB
    +Machine has 16 cores
    +Running on cpu 1
    +Memory 31806 MB, little-endian 64-bit, page 4 KB
    +128-bit integers are supported
     Support nanosecond timestamps with futimens()
    +Host Slackware 15.0 x86_64 (post 15.0 -current) (Linux 6.18.38)
    +System Dell Inc. OptiPlex 5080
     
     Speed test using 8 data buffers of 262144 bytes, for a total of 2048 KiB.
     Memory blocks have a displacement of 1792 bytes to improve cache performance.
    @@ -1832,43 +1902,88 @@ The reported values are the aggregate bandwidth of all data blocks in MB/s,
     not counting parity blocks.
     
     Memory write speed using the C memset() function:
    -  memset   61338
    +  memset   58052
     
     CRC used to check the content file integrity:
    -   table    1665
    -   intel   12488
    +   table    1669
    +   intel   36099
     
     Hash used to check the data blocks integrity:
    -            best murmur3 spooky2   metro museair
    -    hash spooky2    6172   18024   20752   29206
    +            best murmur3 spooky2 museair
    +    hash spooky2    6172   17914   30727
     
    -RAID functions used for computing the parity with 'sync':
    +RAID polynomial functions used for computing parity with 'sync':
                 best    int8   int32   int64    sse2   sse2e   ssse3  ssse3e    avx2   avx2e
    -    gen1    avx2           19147   34378   62743                           78638
    -    gen2    avx2            5303    9850   26288   26926                   45010
    -    genz   avx2e            3086    4950   14319   13838                           25299
    -    gen3   avx2e    1278                                   13042   14120           27155
    -    gen4   avx2e     960                                    9895   11008           21764
    -    gen5   avx2e     784                                    7960    8713           17174
    -    gen6   avx2e     652                                    6502    7502           14638
    +    gen1    avx2           20738   37638   60622                           70014
    +    gen2   avx2e    2465    5220    9863   27038   30954                   45964   51622
    +    gen3   avx2e    1659                                   12945   14665           28876
    +    gen4   avx2e    1142                                    9284   10311           22265
    +    gen5   avx2e     862                                    7206    7796           14847
    +    gen6   avx2e     673                                    5829    6487           12501
     
    -RAID functions used for recovering with 'fix':
    -            best    int8   ssse3    avx2
    -    rec1    avx2    1602    3942    4301
    -    rec2    avx2     698    1731    2224
    -    rec3    avx2     166     908    1391
    -    rec4    avx2     108     607     973
    -    rec5    avx2      76     421     694
    -    rec6    avx2      57     313     532
    +AES polynomial functions used for computing parity with 'sync':
    +            best    int8   int32   int64    sse2   sse2e   ssse3  ssse3e    avx2   avx2e
    +    gen1    avx2           20712   37765   60677                           70051
    +    gen2   avx2e    2465    4763    8456   23497   28220                   41045   49308
    +    gen3   avx2e    1659                                   12043   13606           27257
    +    gen4   avx2e    1137                                    8825    9945           21277
    +    gen5   avx2e     857                                            7543           14513
    +    gen6   avx2e     663                                            6335           12264
    +
    +Vandermonde functions used for computing parity with 'sync':
    +            best    int8   int32   int64    sse2   sse2e   ssse3  ssse3e    avx2   avx2e
    +    genz   avx2e            2918    5332   14488   14450                           25930
    +
    +RAID polynomial functions used for recovering with 'fix':
    +            best     int   ssse3  ssse3e    avx2   avx2e
    + rec1of1   avx2e   37680   58508   58457   66444   66444
    + rec1of2   avx2e    2896   26525   28901   44590   46896
    + rec1of3   avx2e    2898   18517   20460   37638   37638
    + rec2of2   avx2e    2585   19611   21592   27346   31388
    + rec2of3   avx2e    1749   12875   13389   19440   23984
    + rec2of4   avx2e    1744   12865   13336   19228   23933
    + rec3of3   avx2e    1667    9436   10658   18325   20636
    + rec4of4   avx2e    1154    6584    8422   12700   15033
    + rec5of5   avx2e     853    4355    7025    8648   12372
    + rec6of6   avx2e     692    3682    5370    7313   10466
    +
    +(recNofM: N data disks recovered using parities up to the M-th parity,
    + e.g. rec1of1 uses P, rec1of2 uses Q, rec2of2 uses P+Q, rec2of3 uses Q+R)
     

    -

    +

    Known Problems

    +

    +Why does SnapRAID Daemon show warnings for fluctuating SMART attributes? +

    +
    +

    +SnapRAID Daemon monitors disk health and warns whenever a SMART attribute marked as PRE-FAIL degrades its normalized value, allowing you to anticipate potential drive issues early. +

    +

    +However, certain hard drive models exhibit natural fluctuations in non-critical attributes during normal operation, most commonly Spin_Up_Time (attribute 3) or Raw_Read_Error_Rate (attribute 1). +These normal variations can cause harmless warnings on the WebUI dashboard and trigger notification emails. +

    +

    +You can silence these noisy attributes in the daemon configuration file (snapraidd.conf) using the sys_smartignore option. +Specify the disk name (or * for all disks) followed by attribute names or numbers: +

    +
    +sys_smartignore = * Spin_Up_Time
    +sys_smartignore = * Spin_Up_Time Raw_Read_Error_Rate
    +sys_smartignore = parity 188 Command_Timeout
    +
    +

    +Even when an attribute is suppressed with sys_smartignore, your disks remain fully protected: if an attribute exceeds the manufacturer's critical failure threshold, SnapRAID Daemon will always alert you. +

    +
    +
    +

    Why does my machine reboot or crash while SnapRAID is running?

    @@ -1949,6 +2064,16 @@ mkfs.ext4 -m 0 -T largefile4 DEVICE

    The '-T largefile4' and '-m 0' options provide more space for the parity file.

    +

    +You can also split the parity across multiple disks or partitions using split parity. +In the configuration file, you can specify multiple comma-separated files for the same parity level (up to 8 files): +

    +
    +parity /mnt/diskp1/snapraid.parity,/mnt/diskp2/snapraid.parity
    +
    +

    +As soon as the first file cannot grow anymore due to lack of space, SnapRAID automatically starts growing the next file in the list. +