From fedd06dda7f86a2b3600b1a360b6530032500dbb Mon Sep 17 00:00:00 2001
From: Andrea Mazzoleni
-SnapRAID is an application able to make a partial backup of your disk array.
-If some of the disks of your array fail, even if they are completely broken, you will be able to recover their content.
-It's only a partial backup, because it doesn't allow to recover from a failure of the whole array,
-but only if the number of failed disks are under a predefined limit.
+SnapRAID is an application that creates a partial backup of your disk array.
+If some disks in your array fail, even if they are completely broken, you can recover their contents.
+It provides only a partial backup because it does not allow recovery from a failure of the entire array,
+but only if the number of failed disks is below a predefined limit.
-RAIDs are mirroring solutions that propagate changes immediately to the parity data.
-In this sense, RAIDs are not backups, because they don't allow to restore an old state of the array.
+RAID solutions mirror data and propagate changes immediately to the parity data.
+In this sense, RAID systems are not backups because they do not allow restoration of an earlier state of the array.
-SnapRAID is instead more similar at a backup solution, and you can restore the state of the last backup.
-For example, with SnapRAID, if you delete by accident a file, you can easily restore it.
+SnapRAID, however, is more akin to a backup solution, allowing you to restore the state of the last backup.
+For example, with SnapRAID, if you accidentally delete a file, you can easily recover it.
-Others advantages over traditional RAID5/6 solutions are:
+Other advantages over traditional RAID5/6 solutions include:
-Obviously RAID has other advantages, like having a better speed due data striping.
-What is best for you, depends on your specific use case.
+RAID has advantages, such as better speed due to data striping.
+The best choice depends on your specific use case.
-SnapRAID creates a file-system snapshot conceptually similar at other snapshot solutions.
-The difference is that the purpose of SnapRAID is to be able to recover a disk to the saved state
-after a complete disk failure.
+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 is more similar at the RAID-Z/RAID functionality of ZFS/Btrfs.
-Compared to them, SnapRAID has the following advantages:
+SnapRAID is more akin to the RAID-Z/RAID functionality of ZFS/Btrfs.
+Compared to them, SnapRAID offers the following advantages:
-Obviously ZFS/Btrfs have other advantages, like being real-time solutions.
-What is best for you, depends on your specific use case.
+ZFS and Btrfs have advantages, such as being real-time solutions.
+The best choice depends on your specific use case.
-With a normal backup solution you always need as much space as the full disk array for the backup.
-With SnapRAID you need only one additional parity disk to be able to recover the most common case of a single disk failure.
-Adding more parity disks, you can recover from more disk failures.
+With a typical backup solution, you need as much space as the entire disk array for the backup.
+With SnapRAID, you need only one additional parity disk to recover from the most common case of a single disk failure.
+Adding more parity disks allows recovery from additional disk failures.
-Note that only a full backup allows to recover from a complete failure of the disk array and
-it's surely the preferred solution if you can afford it.
-SnapRAID is a good option if a full backup is not a possible solution.
+Note that only a full backup allows recovery from a complete failure of the disk array,
+making it the preferred solution if you can afford it.
+SnapRAID is a good option when a full backup is not feasible.
-You can see the Compare page to see it compared to other similar solutions.
+Visit the Compare page to see a comparison with other similar solutions.
-A strong advantage of SnapRAID is the integrity and silent error management that is at the same level (if not better)
-of the ZFS and Btrfs file-systems. Instead, unRAID and Storage Space have no integrity check at all!
-FlexRAID is at least able to report silent errors, but not to fix them.
+A key advantage of SnapRAID is its integrity and silent error management, which is at the same level as (or better than)
+ZFS and Btrfs file systems. In contrast, unRAID and Windows Storage Spaces lack integrity checks.
-Nothing. It's a FreeSoftware application released with the GPLv3 license.
+Nothing. SnapRAID is a free software application released under the GPLv3 license.
-Go to the Forum.
+Visit the Forum.
-No. SnapRAID is a command line application.
-But there is the Elucidate external GUI,
-and a plugin for OpenMediaVault.
+No, SnapRAID is a command-line application.
+However, there is an external GUI called Elucidate,
+and a plugin for OpenMediaVault.
-SnapRAID provides a basic virtual views/storage pooling solution, but it's also compatible
-with any other pooling solutions.
+SnapRAID provides a basic virtual views/storage pooling solution but is also compatible with other pooling solutions.
-For encryption, SMART monitoring, Power control and Data Recovery you can use other tools.
-Here some suggestions:
+For encryption, SMART monitoring, power control, and data recovery, you can use other tools.
+Here are some suggestions:
-No. If you have a limited amount of data that can be easily saved in an external USB HD,
-or in online backup services, it doesn't make sense to use SnapRAID.
-SnapRAID should be used when you have to backup a very large amount of data,
-many Tera bytes, and a full backup copy of a such amount of data is not possible
-in any other way.
+No. If you have a limited amount of data that can be easily saved to an external USB drive
+or an online backup service, using SnapRAID is unnecessary.
+SnapRAID is best suited for backing up a very large amount of data,
+such as many terabytes, where a full backup copy is not feasible.
-No. For the disk used for booting your machine and containing the OS files,
-it's better to use another solution, like RAID1 or a mirror copy.
-SnapRAID needs an OS to run, and then it cannot recover the OS if the OS is missing.
+No. For the disk used to boot your machine and containing the OS files,
+it’s better to use another solution, such as RAID1 or a mirror copy.
+SnapRAID requires an operating system to run and cannot recover the OS if it is missing.
-No. It's not possible to use SnapRAID to only hash files. The hashing used by SnapRAID is meant to be used
-in combination of parity computation, and it's not the best implementation for a hash only solution.
+No, SnapRAID cannot be used solely to hash files. Its hashing is designed to work in combination with parity computation
+and is not optimized for hashing alone.
-You can find a list of file verification tools at:
-Wikipedia: Comparison_of_file_verification_software.
+For a list of file verification tools, see:
+Wikipedia: Comparison of file verification software.
+For a setup example in Ubuntu 14.04, see Zack's SnapRAID tutorial.
+
-As a rule of thumb you can stay with one parity disk (RAID5) with up to four data disks,
-and then using one parity disk for each group of seven data disks, like in the table:
+As a rule of thumb, use one parity disk (RAID5) for up to four data disks,
+and then add one parity disk for each group of seven data disks, as shown in the table:
-This table takes into account that more parity levels also help to recover from unsynced array,
-and that likely you are running all the disks in the same box and environment, meaning that
-their failures could be correlated.
+This table accounts for the fact that more parity levels help recover from an unsynced array
+and that disk failures may be correlated if all disks are in the same environment.
-Take care that multiple failures happen. At now the worst case reported in the SnapRAID history,
-is a four disks failure, successfully recovered using four parities.
+Multiple failures can occur. The worst case reported in SnapRAID’s history
+is a four-disk failure, successfully recovered using four parities.
-Some interesting articles about number of parity levels and failure rate of disks are:
+For more information on parity levels and disk failure rates, see:
Why RAID 5 stops working in 2009,
Why RAID 6 stops working in 2019,
Does RAID 6 stop working in 2019?,
@@ -428,51 +412,49 @@ Some interesting articles about number of parity levels and failure rate of disk
How long do disk drives last?.
-For the data disks, follow these suggestions:
+For data disks, consider these suggestions:
-For the parity disks, follow these suggestions:
+For parity disks, consider these suggestions:
-In Linux, to get more space for the parity, it's recommended to format the parity file-system with the -m 0 -T largefile4 options.
-Like:
+In Linux, to maximize space for the parity file system, format it with the -m 0 -T largefile4 options, like:
-On a 8 TB disk you can save about 400 GB. This is also expected to be as fast as the default, if not faster.
+On an 8 TB disk, this can save about 400 GB. It is also expected to be as fast as, or faster than, the default.
-For best performance it's recommended to have all the disks connected with SATA and not with USB.
+For optimal performance, connect all disks via SATA, not USB.
-Check Raj's Prototype Builds
-for some examples of hardware setups.
+See Raj's Prototype Builds
+for examples of hardware setups.
-For choosing harddisk, you can check Backblaze's What Hard Drive Should I Buy?,
+For choosing hard drives, refer to Backblaze's What Hard Drive Should I Buy?
and Backblaze's Enterprise Drives: Fact or Fiction?.
-No. SnapRAID is usually not CPU bound. The limiting factor is the read performance from disks.
-So, also a single core CPU should be enough.
+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 get a combined read speed of 400 MiB/s,
-but SnapRAID is able to hash at 12000 MiB/s in a single core.
+For example, in my system, I achieve a combined read speed of 400 MiB/s,
+but SnapRAID can hash at 12,000 MiB/s on a single core.
-Yes. SnapRAID works better in a 64 bit operating system. It can access more than 4 GiB of memory,
+Yes. SnapRAID performs better on a 64-bit operating system, as it can access more than 4 GiB of memory
and use faster hashing and parity algorithms.
-Anyway, if you have less than 30 TB of data, it performs very well also using a 32 bit
-operating system.
+However, for less than 30 TB of data, it performs well on a 32-bit operating system too.
-Approximatively, SnapRAID requires 1 GiB of memory for 16 TB of data.
+Approximately, SnapRAID requires 1 GiB of memory for every 16 TB of data.
-If you have less memory than required, the recommended option is to install more memory in the machine.
+If you have insufficient memory, the recommended solution is to install more memory.
-Otherwise you have to increase the blocksize option in the configuration file.
-The memory occupation is inversely proportional at the select block_size.
-For example, using "blocksize 512", instead of the default 256, halves the memory occupation.
-But take care that using a bigger block size will also increase the amount of wasted space
-in the parity files.
+Alternatively, increase the blocksize option in the configuration file.
+Memory usage is inversely proportional to the selected block size.
+For example, using "blocksize 512" instead of the default 256 halves memory usage.
+However, a larger block size increases wasted space in parity files.
-Note that running with memory swapped to disk is not recommended because it will be a huge slowdown.
+Running with memory swapped to disk is not recommended, as it significantly slows performance.
-Yes! 20% of the disks die before 4 years of life, as
+Yes. Approximately 20% of disks fail within four years, as
reported by Backblaze's How long do disk drives last?.
-Monitoring SMART attributes you can anticipate the failures and avoid to lose data!
+Monitoring SMART attributes can help anticipate failures and prevent data loss.
-If you see one of the SMART attributes
+If any of the SMART attributes
Reallocated_Sector_Ct (5),
Reported_Uncorrect (187),
Command_Timeout (188),
Current_Pending_Sector (197),
-and Offline_Uncorrectable (198)
-different than zero, replace the disk as recommended by
+or Offline_Uncorrectable (198)
+are non-zero, replace the disk, as recommended by
Backblaze's Hard Drive SMART Stats.
-Check also Google's Failure trends in a large disk drive population
-where is found that:
+See also Google's Failure trends in a large disk drive population,
+which found:
-that also recommens to replace the disk after the first error in the SMART attributes Reallocated_Sector_Ct (5),
-Current_Pending_Sector (197) and Offline_Uncorrectable (198).
+These findings recommend replacing a disk after the first error in the SMART attributes Reallocated_Sector_Ct (5),
+Current_Pending_Sector (197), or Offline_Uncorrectable (198).
-Yes. It's possible to use SnapRAID in a dual boot configuration. Doesn't matter the OS combination used.
+Yes, SnapRAID can be used in a dual-boot configuration, regardless of the OS combination.
-In such case it's recommended to run SnapRAID only from one OS.
-In theory, it should also work if run in both OS.
-But it's a scenario not really tested, and there is always the risk to mess-up things,
-like using different SnapRAID version, configuration, content files, and so on.
+It is recommended to run SnapRAID from only one OS.
+While it may work if run from both OSes, this scenario is not thoroughly tested and risks issues
+due to different SnapRAID versions, configurations, or content files.
-It's the file used by SnapRAID to save the list of all files present in your array with
-all the checksum, timestamp and any other information needed.
+The content file stores the list of all files in your array, including their checksums, timestamps, and other necessary information.
-These file will be of about few GiB depending of how big is your array.
-Approximatively for 10 TB of data, you'll need 500 MiB of content file.
+This file will be approximately a few GiB in size, depending on the array’s size.
+For 10 TB of data, the content file will be about 500 MiB.
-They are the files used by SnapRAID to store the parity data used in recovering.
+These files store the parity data used for recovery.
-These files will grow in size as the biggest amount of data stored in a single disk
-of the array.
+Their size grows to match the largest amount of data stored on any single disk in the array.
-To configure SAMBA to share the pool directory, for example /pool, you should add to
-your /etc/samba/smb.conf the following options:
+To configure SAMBA to share the pool directory (e.g., /pool), add the following options to
+your /etc/samba/smb.conf:
-You can use Volume Mount points. You can mount a disk in a directory without
-using a drive letter. Just like in Linux.
+Use Volume Mount Points to mount a disk in a directory without
+using a drive letter, similar to Linux.
-If you want to minimize the probability to lose data, do this:
+To minimize the risk of data loss, follow these steps:
-To add a new data disk at the array, add the new "disk" option in the configuration file,
-and then run a "sync" command.
+To add a new data disk to the array, add the new "disk" option in the configuration file,
+then run a "sync" command:
-If the disk is empty, the "sync" command will be immediate.
+If the disk is empty, the "sync" command will complete immediately.
-To remove a data disk from the array do:
+To remove a data disk from the array, follow these steps:
-Your array is now without any reference to the removed disk.
+The array will then have no reference to the removed disk.
-To add a new parity level, add the proper "N-parity" option in the configuration file, and then run the "sync" command,
-using the "-F, --force-full" option:
+To add a new parity level, add the appropriate "N-parity" option in the configuration file, then run the "sync" command
+with the "-F, --force-full" option:
-The "-F" option tells at SnapRAID to recompute the full parity.
+The "-F" option instructs SnapRAID to recompute the full parity.
-During the process you will be always protected because the existing parity is not modified
-(note that this happens only from version 11.0).
+During this process, your existing parity remains unmodified, ensuring continued protection
+(note that this applies only from version 11.0).
-If you wish to remove a parity, you can simply remove the highest
-"N-parity" option from the configuration and then delete the parity file.
+To remove a parity level, remove the highest "N-parity" option from the configuration file and delete the parity file.
-Take care that after removing a parity file, you cannot reuse it anymore,
-because it gets outdated after the next "sync" command.
+Note that after removing a parity file, it cannot be reused, as it becomes outdated after the next "sync" command.
-The "scrub" command verifies all the content of the array,
-and it's not possible to limit the verification to a single data disk.
-To verify only a data disk, you can run a "check" audit
-command limited to the disk you want to verify.
+The "scrub" command verifies the entire array and cannot be limited to a single data disk.
+To verify only one data disk, use the "check" audit command with the disk specified:
-This command will verify all the check-sums of the files in the disk specified.
-The other data and parity disks won't be read and they won't be verified.
+This command verifies the checksums of all files on the specified disk.
+Other data and parity disks are not read or verified.
-If you lost the disk, see the recovering section in the manual.
-Otherwise, copy all the files in the new disk,
-maintaining the same directory structure and names.
+If the disk is lost, refer to the recovery section in the manual.
+Otherwise, copy all files to the new disk, maintaining the same directory structure and names.
-In Linux use the command:
+In Linux, use the command:
-WARNING! If you want to use the 'rsync' or 'mc' commands, ensure that they are recent ones.
+WARNING: If using 'rsync' or 'mc' commands, ensure they are recent versions.
'rsync' must be at least version 3.1.0 (2013), and 'mc' at least version 4.8.19 (2017).
-Older versions are not able to copy the sub-second timestamps.
+Older versions may not copy sub-second timestamps.
-In Windows use the command:
+In Windows, use the command:
-Then change the SnapRAID configuration to point the disk at the new mount point and run a "diff"
-command to ensure that everything is placed correctly.
+Update the SnapRAID configuration to point to the new mount point, then run a "diff" command to ensure everything is correct:
-If "diff" reports some "added" or "removed" files likely you have copied files
-with a different directory structure.
-In such case you have to fix it, until "diff" reports only "equal", "restored" or "copied" files.
+If "diff" reports "added" or "removed" files, you may have copied files with a different directory structure.
+Correct this until "diff" reports only "equal", "restored", or "copied" files.
-Now you can check that the files were really copied correctly, you can run a "check" audit command
-limited to the replaced disk to check the check-sum of all the files.
+To verify that files were copied correctly, run a "check" audit command on the replaced disk to verify checksums:
-Finally you can run "sync" to update the SnapRAID state. This command will be almost immediate.
+Finally, run "sync" to update the SnapRAID state. This command will complete almost immediately:
-If the disk is still accessible, first ensure to have a synced array running a sync command:
+If the disk is still accessible, ensure the array is synced by running:
-Then you can copy the big parity file to the new disk,
-and configure the new parity location in the configuration file.
+Copy the parity file to the new disk and update the parity location in the configuration file.
-Then run sync again to make snapraid to recognize the new disk. This command will be almost immediate.
+Run "sync" again to make SnapRAID recognize the new disk. This command will complete almost immediately:
-In Linux a good copy command is ddrescue.
-You can use:
+In Linux, a good copy command is ddrescue. For example:
-This will copy the parity file from the old to new location, and in case of errors,
-it will continue copying what can be copied.
-To retry to copy the problematic sections, you can just retry the same copy
-command.
+This copies the parity file from the old to the new location, continuing despite errors.
+To retry problematic sections, repeat the same command.
-Having a partial parity file, is still beneficial, as it will still allow to recover
-data as long it uses the valid part.
+A partial parity file is still useful, as it allows recovery using the valid parts.
-If you have a partially damaged or totally lost parity file, you can run the "fix" command to recreate it,
-but ensure to use the -d option to fix only the interested parity and not the other disks.
+If the parity file is partially damaged or lost, use the "fix" command with the -d option to recreate it, targeting only the affected parity:
-In case you need to move files from one data disk of the array to another disk
-also in the array, the 100% safe way to proceed is:
+To safely move files between data disks in the array, follow these steps:
-This process gives the guarantee that even if disks die during the sync process,
-you will be able to recover everything. It also verifies that the hashes of all the
-moved files are matching the original ones.
+This process ensures that, even if disks fail during the sync process,
+you can recover all data. It also verifies that the hashes of moved files match the originals.
-Yes, you can defragment data and parity disks. Defragmentation doesn't affect SnapRAID.
+Yes, defragmentation does not affect SnapRAID.
-In Linux, you can use the ionice command with Idle priority. Like:
+In Linux, use the ionice command with idle priority, like:
+General
-
@@ -79,223 +79,210 @@ Frequently Asked Questions for SnapRAID.
Configuration
-
Use
-
Recover
-
Tech
-
Performance
-
Known Problems
-
General
-What's SnapRAID?
+What is SnapRAID?
How is it different than RAID?
+How is it different from RAID?
-
How is it different than ZFS/Btrfs snapshots and NTFS Shadow Copy?
+How is it different from ZFS/Btrfs snapshots and NTFS Shadow Copy?
-
How is it different than other backup solutions?
+How is it different from other backup solutions?
What are the advantages of SnapRAID compared to similar solutions like unRAID/FlexRAID/Windows Storage Spaces?
+What are the advantages of SnapRAID compared to similar solutions like unRAID, FlexRAID, and Windows Storage Spaces?
How much does it cost?
How to get support?
+How can I get support?
Has SnapRAID a GUI?
+Does SnapRAID have a GUI?
Does SnapRAID provide encryption, virtual views/storage pooling, SMART monitoring and Power control?
+Does SnapRAID provide encryption, virtual views/storage pooling, SMART monitoring, or power control?
-Linux Windows Mac OS X
Encryption
-dmcrypt/LUKS
+dm-crypt/LUKS
(tutorial)
VeraCrypt
-
@@ -312,7 +299,7 @@ Discontinued? 28/5/2014
-
SMART monitor
+SMART monitoring
smartmontools,
GSmartControl
@@ -326,13 +313,13 @@ Discontinued? 28/5/2014
-
Power Control
+Power control
hdparm
hdparm
-
Data recovering
+Data recovery
ddrescue,
safecopy,
@@ -343,84 +330,81 @@ Discontinued? 28/5/2014
Is SnapRAID suitable to backup the home/My Documents directory?
+Is SnapRAID suitable for backing up the home/My Documents directory?
Is SnapRAID suitable to backup the boot OS disk?
+Is SnapRAID suitable for backing up the boot OS disk?
Can SnapRAID hash files wihout parity computation?
+Can SnapRAID hash files without parity computation?
Setup
-For a setup example in Ubuntu 14.04 you can check the SnapRAID Zack's tutorial.
+Do I need one or more parity disks?
Parities Data disks
1/Single Parity/RAID5
-2 - 4
+2–4
2/Double Parity/RAID6
-5 - 14
+5–14
3/Triple Parity
-15 - 21
+15–21
4/Quad Parity
-22 - 28
+22–28
5/Penta Parity
-29 - 35
+29–35
6/Hexa Parity
-36 - 42
+36–42
Which file-system is recommended for SnapRAID ?
+Which file system is recommended for SnapRAID?
Data Result
Any
-OK. In general you can use whatever file-sytem you like. Just see the following notes for some exceptions.
+OK. You can generally use any file system you prefer, with some exceptions noted below.
+Btrfs
-OK. Ensure to build SnapRAID with the libblkid library to get UUID support.
-You will be warned at every run if this doesn't happen.
-Note that multiple Btrfs snapshots are not supported.
-
+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.
ZFS
-Partial. You won't get UUID support, but this doesn't prevent the use of the core SnapRAID functionalities.
-Note that multiple ZFS snapshots are not supported.
-
+Partial. UUID support is unavailable, but core SnapRAID functionalities remain usable.
+Note that multiple ZFS snapshots are not supported.
FAT
-Unsure. There are reports
-of duplicate inodes cases. NTFS is anyway a lot faster. Use it instead.
+Uncertain. There are reports
+of duplicate inode cases. NTFS is significantly faster and recommended instead.
ReFS
-No. ReFS uses 128 bit inodes,
-and SnapRAID doesn't support them yet.
-
+No. ReFS uses 128-bit inodes,
+which SnapRAID does not yet support.
Parity Result
ext4
-OK if the disks are NOT bigger than 16 TB. The parity is stored in a single big file, and ext4 has a upper limit of 16 TB for file size.
+OK if disks are not larger than 16 TB. The parity is stored in a single large file, and ext4 has a 16 TB file size limit.
XFS
@@ -480,24 +462,22 @@ For the parity disks, follow these suggestions:
Btrfs
-OK. But ensure to build SnapRAID with the libblkid library to get UUID support.
-You will be warned at every run if this doesn't happen.
+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.
JFS
-No. It doesn't support the fallocate() command needed to allocated the parity files.
-
+
-It also doesn't seem to implement at the best the posix_fadvise() command.No. It does not support the fallocate() command needed to allocate parity files.
+It also does not optimally implement the posix_fadvise() command.
NTFS
-OK in Windows. No in Linux, as it doesn't support fallocate() command needed to allocated the parity files.
-You can anyway use it if you limit the use of the parity disk to contain only the parity file.
-
+OK in Windows. Not supported in Linux, as it does not support the fallocate() command needed to allocate parity files.
+You can use it if the parity disk contains only the parity file.
FAT
-No. You cannot store files bigger than 4 GB. It's also not journaled. Use NTFS instead.
+No. Files larger than 4 GB cannot be stored. It is also not journaled. Use NTFS instead.
HFS+
@@ -506,135 +486,129 @@ You can anyway use it if you limit the use of the parity disk to contain only th
mkfs.ext4 -m 0 -T largefile4 DEVICE
Which hardware configuration is recommended?
Is a multi-core CPU recommended?
Is a 64 bit operating system recommended?
+Is a 64-bit operating system recommended?
How much memory SnapRAID requires to run?
+How much memory does SnapRAID require to run?
Do I have to check the SMART attributes of my disks?
+Should I check the SMART attributes of my disks?
after the first reallocation, drives are
+
After the first reallocation, drives are
over 14 times more likely to fail within
60 days than drives without reallocation
counts.
-after the first probational event, drives
+
After the first probational event, drives
are 16 times more likely to fail within
60 days than drives with zero probational
counts.
-after the first offline reallocation, drives have over
+
After the first offline reallocation, drives have over
21 times higher chances of failure within 60 days than
drives without offline reallocations.
Is it possible to use SnapRAID in a dual boot configuration, like Windows and Linux?
+Is it possible to use SnapRAID in a dual-boot configuration, such as Windows and Linux?
Configuration
-What's the SnapRAID 'content' file?
+What is the SnapRAID 'content' file?
What are the SnapRAID 'parity' and 'N-parity' files?
How to configure SAMBA to share the Pool directory
+How do I configure SAMBA to share the pool directory?
# In the global section of smb.conf
@@ -649,143 +623,135 @@ guest ok = yes
wide links = yes
-How to use more disks than drive letters in Windows?
+How can I use more disks than available drive letters in Windows?
Use
-What are the most important things to do to prevent damages?
+What are the most important steps to prevent data loss?
-
-How can I add an additional data disk to an existing array?
+How can I add a data disk to an existing array?
snapraid sync
How can I remove a data disk from an existing array?
-
snapraid sync -E
-The "-E" option tells at SnapRAID to proceed even when detecting an empty disk.How can I add, or remove, a parity disk to an existing array?
+How can I add or remove a parity disk in an existing array?
snapraid -F sync
How can I verify a single data disk?
snapraid check -a -d DISK_NAME
How can I replace a data disk?
cp -av /from_dir/. /to_dir
robocopy F:\from_dir T:\to_dir /e /copyall
snapraid diff
snapraid check -a -d DISK_NAME
snapraid sync
@@ -793,41 +759,35 @@ snapraid sync
How can I replace a parity disk?
snapraid sync
snapraid sync
ddrescue /OLD_DISK/parity /NEW_DISK/parity /tmp/copy.log
snapraid fix -d PARITY_NAME
@@ -835,112 +795,101 @@ snapraid fix -d PARITY_NAME
How can I safely move files from one disk to another?
-
Can I defragment the data and parity disks?
+Can I defragment data and parity disks?
How can I make SnapRAID nicer with other processes?
+How can I make SnapRAID less resource-intensive for other processes?
ionice -c 3 snapraid sync
-
-To upgrade SnapRAID to a new version, just replace the old SnapRAID executable with the new one. -The new SnapRAID will use your existing configuration, content and parity files. +To upgrade, replace the old SnapRAID executable with the new one. +The new version will use your existing configuration, content, and parity files.
-By time to time the format of the content file changes, but a newer SnapRAID -is always able to read all old formats. So, it's always possible to upgrade. -If necessary, the content file format is updated the next time it's written. +Occasionally, the content file format changes, but newer SnapRAID versions can read all older formats. +The content file is updated to the new format the next time it is written, if necessary.
-Instead, it's in general not possible to downgrade to an old SnapRAID. -You can anyway try, and if the old SnapRAID is not able to read the new content file, -you will be advised by a proper message. +Downgrading to an older SnapRAID version is generally not possible. +If the old version cannot read the new content file, you will receive an appropriate message.
-Simply run the "fix" command using a filter for the specified file. Like: +Run the "fix" command with a filter for the specified file, like:
snapraid fix -f my_just_deleted_file
-To undelete a directory use: +To undelete a directory, use:
snapraid fix -f my_just_deleted_dir/
-To undelete all the missing files use: +To undelete all missing files, use:
snapraid fix -m-
-All the files added in the broken disk after the last "sync" command are lost. -All the other data is safe and it can be recovered. +Files added to the failed disk after the last "sync" command are lost. +All other data is safe and can be recovered.
--In the worst case, any file deleted or modified in not broken disks may prevent to recover the same amount of data in the broken disk. -For example, if you deleted 10GB of data, you may not be able to recover 10GB of data from the broken disk. -The exact amount of data lost depends on how much the deleted and broken data overlaps in the parity. +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.
-To reduce this problem you can use two parity disks. This improves a lot the chances to recover the data. +Using two parity disks significantly improves recovery chances.
-A way to be always safe, is to don't delete files, but move them to another directory in the same disk, -but outside the directory tree checked by SnapRAID. Then you can run the "sync" command and only after -its completion really delete the files. -In case you get a disk failure during the "sync", you have to just run the "fix" command specifying where -the deleted files are stored: +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:
snapraid fix -i dir_of_deleted_files-
-You are still able to recover data. In the worst case, you will be able to recover as much data as if the -disk would have broken before the "sync". -But if the "sync" process already run for some time, SnapRAID is able to use the partially synced data -to recover more. -To improve the recovering you can also use the "autosave" configuration option to save the intermediate -content file during the sync process. +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.
-Syncing... 309505: Data error for file d4/data/index.db at position 40960 @@ -948,30 +897,26 @@ WARNING! Unexpected data error in a data disk! The block is now marked as bad! Try with 'snapraid -e fix' to recover!
-Data errors happen when SnapRAID detects that the content of a file changed but the write time of the file didn't. -This is a condition that normally should never happen and it may be the result of a silent error in the disk, -or the signal that something got wrong at the file-system level, like when you poweroff the machine without a -proper shutdown. -
-If a data error is found, the "sync" process continues, and erroneous blocks are marked as bad -and fixed at the next "fix" command. -To just fix the silent errors and not the whole array, you can use the "-e fix" command -that usually takes only few seconds. +Data errors occur when SnapRAID detects that a file’s content has changed without an updated write timestamp. +This should not happen and may indicate a silent disk error or a file system issue, such as an improper shutdown.
-If you have errors in more than on file, it's also possible that something is not working at hardware level. -The first thing to try is to check your PC memory with an automated tool like memtest86. -Another thing to check is the disk cabling and the CPU heat. +If a data error is found, the "sync" process continues, marking erroneous blocks as bad. +These can be fixed with the "-e fix" command, which typically takes only a few seconds: +
++snapraid -e fix ++
+If errors occur in multiple files, check for hardware issues. +Test your PC’s memory with a tool like MemTest86. +Also, check disk cabling and CPU temperature.
-Another possibility is that you are using programs that change files without modifying the time-stamp of the file itself.
-
-In Linux this is almost guaranteed by the operating system. The only exception is for memory mapped files
-not yet closed.
-
-In Windows it's a bit trickier. Even using normal writes, you have the guarantee of an updated time-stamp
-only after closing it.
-See the MSDN WriteFile():
+Another possibility is that a program modified files without updating their timestamps.
+In Linux, this is rare, except for memory-mapped files not yet closed.
+In Windows, timestamps are guaranteed to update only after closing a file.
+See MSDN WriteFile():
When writing to a file, the last write time is not fully updated until @@ -980,38 +925,36 @@ accurate last write time, close the file handle immediately after writing to the file.
-When using memory mapped file, the program must ensure to update the time-stamp manually, -because Windows doesn't do it automatically. -See the MSDN CreateFileMapping(): +For memory-mapped files in Windows, the program must manually update the timestamp, +as Windows does not do so automatically. +See MSDN CreateFileMapping():
-When modifying a file through a mapped view, the last modification time-stamp +When modifying a file through a mapped view, the last modification timestamp may not be updated automatically. If required, the caller should use SetFileTime -to set the time-stamp. +to set the timestamp.
-To avoid all these Windows problems, simply ensure to run "sync" when no program is using the files into the array. +To avoid these issues in Windows, run "sync" when no programs are accessing files in the array.
--To generate a log file you can use the "-l" option. +Use the "-l" option to generate a log file:
snapraid check -l mylog.log-
-These log files could be really big, many GB. If they are too big to be opened for your editor, -you can use HxD. +These log files can be large, potentially several GB. If too large for your editor, +use HxD.
--There is the dedicated -C, --gen-conf command that writes a template configuration file +Use the "-C, --gen-conf" command to generate a template configuration file compatible with your content file. -Note that this configuration requires some manual adjustments to set the disk mount points, -but in the comments you'll find the required information to do so. +Manual adjustments are needed to set disk mount points, but comments in the file provide guidance:
snapraid -C snapraid.content > snapraid.conf.new @@ -1019,25 +962,29 @@ snapraid -C snapraid.content > snapraid.conf.newTech
-If the SnapRAID "check" command says it's all OK. Is it really OK?
-Yes. SnapRAID checks all your files with a 128 bit check-sum. -If it says that they are correct, they really are. - -What integrity checksum is used?
-SnapRAID uses Murmur3 and SpookyHash 128 bit hashes. -Murmur3 is the default in 32 bit platforms, SpookyHash in the default for 64 bit ones. - -Why integrity checksum are important?
-Integrity check-sum are important to detect silent errors, -when the HD is returning garbage without reporting any error. - +If the SnapRAID "check" command reports everything is OK, is it really OK?
-An introduction to this problem is in this article: -Data corruption is worse than you know +Yes. SnapRAID verifies all files with a 128-bit checksum. +If it reports they are correct, they are. +
+ +What integrity checksum does SnapRAID use?
++SnapRAID uses Murmur3 and SpookyHash 128-bit hashes. +Murmur3 is the default on 32-bit platforms, and SpookyHash is the default on 64-bit platforms. +
+ +Why are integrity checksums important?
++Integrity checksums detect silent errors when a hard drive returns corrupt data without reporting an error.
-A good analysis of this risk is in the paper: -An Analysis of Data Corruption in the Storage Stack +For an introduction to this issue, see: +Data corruption is worse than you know. +
++For a detailed analysis, see: +An Analysis of Data Corruption in the Storage Stack:
A significant number (8% on average) of corruptions @@ -1046,147 +993,129 @@ possibility of data loss. In this case, protection against double disk failures is necessary to prevent data loss.-How can SnapRAID recover also if a disk break during a 'sync'?
+How can SnapRAID recover if a disk fails during a 'sync'?
-Before the sync process start, SnapRAID saves a special content file that contains -a description of both the states before and after the sync. -This allows SnapRAID to try two different recovery strategies. +Before starting a sync, SnapRAID saves a special content file describing both the pre- and post-sync states. +This allows SnapRAID to attempt two recovery strategies.
-For each block to recover, it first assumes that the parity was correctly computed, -just like if "sync" was completed successfully. -If this recovering fails, it then assumes that parity was not yet updated, -ignoring any new file added in the array. +For each block to recover, it first assumes the parity was correctly computed, as if the "sync" completed successfully. +If this fails, it assumes the parity was not yet updated, ignoring any new files added to the array.
-Also in this case, using a double parity helps to recover when there are overlapping changes in the array. +Using double parity improves recovery when there are overlapping changes in the array.
-Does SnapRAID allow to access data disks during a 'sync'?
+Can I access data disks during a 'sync'?
-Yes. You can safely read from data disks while a 'sync' is running. +Yes, you can safely read from data disks during a 'sync'.
-You can also write, and if this interferes with the SnapRAID 'sync', -the process will continue anyway, just skipping that written part. +You can also write, and if this interferes with the 'sync', +the process continues, skipping the written part.
-This obviously could affect a potential recovery, but it's just like if you wrote -just after the 'sync' completed. +This may affect potential recovery, but it is equivalent to writing just after the 'sync' completes.
-Does SnapRAID retry reads or writes if a disk is not working?
+Does SnapRAID retry reads or writes if a disk fails?
-No. SnapRAID never retries disk operations. It reports the error and then it tries -to continue anyway. After a limit of 100 errors, it then stops the execution. +No, SnapRAID does not retry disk operations. It reports errors and attempts to continue. +After 100 errors, it stops execution.
-In these conditions, it's better to allow the user to try to save manually as much as data possible -before the disk dies definitively. -Trying an automatic long sequence of retries, will likely kill the disk. -If you want to retry, you have to just repeat the command. +In such cases, it’s better to allow manual data recovery before the disk fails completely. +Automatic retries could further damage the disk. +To retry, repeat the command manually.
-You can control the 100 errors limit using the "-L, --error-limit" option. +You can adjust the 100-error limit using the "-L, --error-limit" option.
-In the case of "fix" and "check" commands you can restart from the interrupted point using the "-s, --start" -option specifying the block number that generated the error. +For "fix" and "check" commands, you can resume from the point of interruption using the "-s, --start" option, specifying the block number that caused the error.
-In the case of "sync" command, the latest state is anyway saved before termination. -So, just restarting it will continue where stopped. +For the "sync" command, the latest state is saved before termination, so restarting it will continue from where it stopped.
-What's the snapraid.content.lock file?
+What is the snapraid.content.lock file?
-It's a file used by SnapRAID to check if another SnapRAID instance is already running. -It's created where the first content file is placed. +This file is used by SnapRAID to check if another instance is running. +It is created where the first content file is stored.
-What's the notice about zero sub-second timestamp?
+What does the notice about zero sub-second timestamps mean?
-In the 'status' command you may now get a notice like: +In the 'status' command, you may see:
You have XXXXX files with zero sub-second timestamp. -Run the 'touch' command to set it to a not zero value. +Run the 'touch' command to set it to a non-zero value.-It means that a number of your files have a timestamp approximated at the second value, -when instead your filesystem can store a more precise timestamp, with a sub-second precision. +This indicates that some files have timestamps rounded to the nearest second, +even though your file system supports sub-second precision.
-This is not a problem by itself, but it could limit the SnapRAID effectiviness to detect -moved or copied files between different disks. +While not a problem, this may limit SnapRAID’s ability to detect moved or copied files between disks.
-You have the option to set that subsecond timestamp to a random value using the new 'touch' command. -Note that the second part of the timestamp is not modified. +You can set sub-second timestamps to a random value using the 'touch' command, which does not modify the second part of the timestamp.
Performance
-Which is the optimal hardware configuration to get the best performance?
+What is the optimal hardware configuration for the best performance?
-The most important factor is to connect all the disks using (E)SATA connections, -to avoid slowdown caused by the controller. Avoid any kind of USB disks. +The most critical factor is using (E)SATA connections for all disks to avoid controller slowdowns. +Avoid USB disks.
-The second important factor is use disks with similar performance, because the read/write -speed is limited by the slowest disk of the array. -After a sync operation, it's printed a short stats with the wait times for each disk, -that could help to identify a bottleneck caused by a slow disk. +The second factor is using disks with similar performance, as the array’s read/write speed is limited by the slowest disk. +After a sync, SnapRAID displays statistics with wait times for each disk, helping identify bottlenecks.
-As last, a fast CPU could improve the speed when having a lot of disks. -You can detect if the CPU is a limiting factor, checking the CPU usage during sync operations. +Finally, a fast CPU can improve performance with many disks. +Check CPU usage during sync operations to determine if it’s a limiting factor.
-Which is the optimal blocksize to get the best performance?
+What is the optimal block size for the best performance?
-The default blocksize should be already the best one. +The default block size is typically optimal.
-Note that increasing it doesn't necessarily improve the performance. -In some cases, it could decrease it. +Increasing it may not improve performance and could reduce it in some cases.
-Which is the optimal Linux read-ahead size to get the best performance?
+What is the optimal Linux read-ahead size for the best performance?
-The default Linux read-ahead size of 128 KiB already ensures the best performance -for the default SnapRAID block size of 256 KiB. -If you use a bigger block size, you should configure the read-ahead size to be at least equal -to half of the SnapRAID block size. +The default Linux read-ahead size of 128 KiB is optimal for SnapRAID’s default block size of 256 KiB. +If using a larger block size, set the read-ahead size to at least half the SnapRAID block size.
-For example, if you want to use a SnapRAID block size of 512 KiB, -it's recommended to configure a read-ahead size of 256 KiB for sdX using: +For example, with a SnapRAID block size of 512 KiB, configure a read-ahead size of 256 KiB for sdX using:
echo 256 > /sys/block/sdX/queue/read_ahead_kb-Note that if you want to use a SnapRAID block size smaller than 256 KiB, it's recommended to don't configure a specific -read-ahead size, and just use the default value. +For a SnapRAID block size smaller than 256 KiB, use the default read-ahead size.
-How fast are the hash and parity computation?
+How fast are the hash and parity computations?
-Murmur3 hash is very fast on 32 bits, SpookyHash is even faster on 64 bits. -The speed of parity computation is always good up to double parity, -even in architectures without SSE support. -Beyond double parity having a CPU with SSSE3 support is recommended. -For low end CPUs without SSE, there is a special, but incompatible, triple parity -support working well also without SSE. -See 'z-parity' in the manual for more info. +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. +For low-end CPUs without SSE, a special, incompatible triple-parity option is available. +See 'z-parity' in the manual for details.
-The following are the result on a Core i5-4670K @ 3.4 GHz. -You can check your values with the -T option. +The following results are from a Core i5-4670K @ 3.4 GHz. +Check your values with the -T option:
-root@redstar:/root# snapraid -T +root@redstar:/root# snapraid -T snapraid v7.0 by Andrea Mazzoleni, http://www.snapraid.it Compiler gcc 4.8.1 CPU GenuineIntel, family 6, model 60, flags mmx sse2 ssse3 sse42 avx2 @@ -1231,112 +1160,94 @@ RAID functions used for recovering with 'fix':Known Problems
-Why does my machine reboots or crashes while SnapRAID is running?
+Why does my machine reboot or crash while SnapRAID is running?
-SnapRAID pushes the system to extreme conditions, and if the machine has a latent problem, -it could result in an unexpected system crash or reboot. +SnapRAID pushes the system to extreme conditions, which may expose latent hardware or driver issues, +resulting in a system crash or reboot.
-Even if the problem happens only when SnapRAID is running, it's without any doubt a hardware -or driver issue because SnapRAID is just a standard user application that cannot reboot or -crash the system. +Although the issue occurs only when SnapRAID is running, it is undoubtedly a hardware or driver problem, +as SnapRAID is a standard user application that cannot crash or reboot the system.
-Possible thing to checks are: +Check the following:
-Likely you have too few free memory, and the Linux OOM (out-of-memory) killer -terminates SnapRAID because it's using too much memory. -You can use the Linux 'free' command to check how much free memory you have. +This is likely due to insufficient free memory, causing the Linux out-of-memory (OOM) killer +to terminate SnapRAID for using too much memory. +Check available memory with:
free -m
-If it's too small, you have to install more memory in the machine. +If memory is low, install more memory in the machine.
--This means that SnapRAID needs to grow the parity file to a size that cannot be contained in the -parity disk. +This error indicates that SnapRAID needs to expand the parity file to a size that exceeds the available space on the parity disk.
-The first thing to check is to ensure that no other data is stored in the parity disk. -Leave if only for the parity file. -Otherwise you have to move the files mentioned in the output to another data disk -to reduce the size of the needed parity. +Ensure no other data is stored on the parity disk, reserving it exclusively for the parity file. +Alternatively, move files mentioned in the output to another data disk to reduce the required parity size.
-If you are using Linux, an alternate approach is to reformat the parity disk using -specific options to increase the available space, like: +In Linux, you can reformat the parity disk to increase available space using:
mkfs.ext4 -m 0 -T largefile4 DEVICE
-The '-T largefile4' and '-m 0' options should give more space available for the parity file. +The '-T largefile4' and '-m 0' options provide more space for the parity file.
-This means that SnapRAID found two different files using the same inode. -This is theoretically something that should never happen, -but in some specific conditions is instead possible. +This error occurs when SnapRAID detects two different files using the same inode, +a condition that should theoretically never happen but can occur in specific cases.
-First ensure that the mentioned files were not modified while SnapRAID was running. -If files are renamed, deleted or recreated while SnapRAID is running, it's possible -that inodes are reused, causing this condition. +Ensure the mentioned files were not modified while SnapRAID was running. +Renaming, deleting, or recreating files during SnapRAID operation can cause inode reuse, triggering this error.
-If you are using a FAT file-system in Windows, try to convert it to NTFS. -Theoretically inodes (FileIndex) are -unique even in FAT, -but this condition was already seen in the field. +If using a FAT file system in Windows, convert to NTFS. +Although inodes (FileIndex) are theoretically unique in FAT, +this issue has been observed in practice.
--Unfortunately the Excel application does dirty tricks when handling .xls files, -that may cause the followings data error: +Excel modifies .xls files upon opening, even without saving, to store the name of the last user who accessed the file. +This allows it to warn if another user tries to open the file simultaneously. +Excel restores the original timestamp, but SnapRAID detects the modification, reporting a data error:
-Data change at file '/xxx/xxx.xls' at position '0' WARNING! Unexpected data modification of a file without parity!-
-This happens because Excel modifies the files after opening them, even if you don't press 'Save'. -It stores the name of the last user that opened it to be able to report if another user tries -to open the same file at the same time. -To avoid to have the file triggered as modified, it restores the time-stamp to its original value. -But the file was modified, and SnapRAID reports it. -
- --To workaround the problem you can see -How to prevent Excel from modifying the file on exit?, -or you can switch to the .xlsx format. +To work around this, see +How to prevent Excel from modifying the file on exit?, +or switch to the .xlsx format.
-VeraCrypt (a fork of TrueCrypt) by default has enabled the option Preserve modification time-stamp of file containers -that makes impossible at SnapRAID, and at other backup programs, to detect that a file container is changed. -Ensure to disable this option in VeraCrypt. +VeraCrypt (a fork of TrueCrypt) has a default option, Preserve modification timestamp of file containers, +that prevents SnapRAID and other backup programs from detecting changes to file containers. +Disable this option in VeraCrypt.
@@ -1368,4 +1279,3 @@ Ensure to disable this option in VeraCrypt.