From dbabffc46a475b84dd83097018ceb02ec0d8c205 Mon Sep 17 00:00:00 2001
From: Andrea Mazzoleni File Description
-snapraid-12.4.tar.gz
+snapraid-13.0.tar.gz
Sources for Linux, Mac OS X, BSD, Solaris, OpenIndiana and any other Unix
-snapraid-12.4-windows-x64.zip
+snapraid-13.0-windows-x64.zip
Binaries for Windows x64
diff --git a/index.html b/index.html
index 2b3a1349..5a59e120 100644
--- a/index.html
+++ b/index.html
@@ -94,7 +94,7 @@ Now go to Download.
-snapraid-12.4-windows-x86.zip
+snapraid-13.0-windows-x86.zip
Binaries for Windows x86 (legacy Windows versions)
-News! Version 12.4 RELEASED! +News! Version 13.0 RELEASED!
diff --git a/manual.html b/manual.html index 65a9e538..abc200ae 100644 --- a/manual.html +++ b/manual.html @@ -67,15 +67,17 @@ snapraid [-c, --conf CONFIG] [-a, --audit-only] [-h, --pre-hash] [-i, --import DIR] [-p, --plan PERC|bad|new|full] [-o, --older-than DAYS] [-l, --log FILE] + [-s, --spin-down-on-error] [-w, --bw-limit RATE] [-Z, --force-zero] [-E, --force-empty] [-U, --force-uuid] [-D, --force-device] [-N, --force-nocopy] [-F, --force-full] [-R, --force-realloc] [-S, --start BLKSTART] [-B, --count BLKCOUNT] [-L, --error-limit NUMBER] + [-A, --stats] [-v, --verbose] [-q, --quiet] - status|smart|up|down|diff|sync|scrub|fix|check|list|dup - |pool|devices|touch|rehash + status|smart|probe|up|down|diff|sync|scrub|fix|check + |list|dup|pool|devices|touch|rehash
@@ -128,86 +130,86 @@ For more information, please visit the official SnapRAID site:
-http://www.snapraid.it/ +https://www.snapraid.it/ |
-The main one is that if a disk fails, and you haven't recently synced, -you may be unable to do a complete recover. +The main limitation is that if a disk fails and you haven't recently synced, +you may not be able to fully recover. More specifically, you may be unable to recover up to the size of -the changed or deleted files from the last sync operation. -This happens even if the files changed or deleted are not in the +the changed or deleted files since the last sync operation. +This occurs even if the changed or deleted files are not on the failed disk. This is why SnapRAID is better suited for -data that rarely change. +data that rarely changes.
-On the other hand, newly added files don't prevent recovering already -existing files. You may only lose the recently added files, if they are on -the failed disk. +On the other hand, newly added files don't prevent recovery of already +existing files. You will only lose the recently added files if they +are on the failed disk.
Other SnapRAID limitations are:
-If you want to be able to recover from more disk failures, like RAID6, -you must reserve additional disks for parity. Any additional parity -disk allow to recover from one more disk failure. +If you want to recover from more disk failures, similar to RAID6, +you must reserve additional disks for parity. Each additional parity +disk allows recovery from one more disk failure.
-As parity disks, you have to pick the biggest disks in the array, -as the parity information may grow in size as the biggest data +As parity disks, you must pick the largest disks in the array, +as the parity information may grow to the size of the largest data disk in the array.
-These disks will be dedicated to store the "parity" files. -You should not store your data in them. +These disks will be dedicated to storing the "parity" files. +You should not store your data on them.
-Then you have to define the "data" disks that you want to protect +Then, you must define the "data" disks that you want to protect with SnapRAID. The protection is more effective if these disks -contain data that rarely change. For this reason it's better to -DO NOT include the Windows C:\ disk, or the Unix /home, /var and /tmp -disks. +contain data that rarely changes. For this reason, it's better to +NOT include the Windows C:\ disk or the Unix /home, /var, and /tmp +directories.
The list of files is saved in the "content" files, usually -stored in the data, parity or boot disks. -These files contain the details of your backup, with all the -check-sums to verify its integrity. -The "content" file is stored in multiple copies, and each one must -be in a different disk, to ensure that in even in case of multiple -disk failures at least one copy is available. +stored on the data, parity, or boot disks. +This file contains the details of your backup, including all the +checksums to verify its integrity. +The "content" file is stored in multiple copies, and each copy must +be on a different disk to ensure that, even in case of multiple +disk failures, at least one copy is available.
-For example, suppose that you are interested only at one parity level -of protection, and that your disks are present in: +For example, suppose you are interested in only one parity level +of protection, and your disks are located at:
@@ -218,7 +220,7 @@ of protection, and that your disks are present in: |
-you have to create the configuration file /etc/snapraid.conf with +You must create the configuration file /etc/snapraid.conf with the following options:
| @@ -233,7 +235,7 @@ data d3 /mnt/disk3/ |
-If you are in Windows, you should use the Windows path format, with drive +If you are on Windows, you should use the Windows path format, with drive letters and backslashes instead of slashes.
| @@ -248,8 +250,8 @@ data d3 H:\array\ |
-If you have many disks, and you run out of drive letters, you can mount -disks directly in sub folders. See: +If you have many disks and run out of drive letters, you can mount +disks directly in subfolders. See:
@@ -257,7 +259,7 @@ https://www.google.com/search?q=Windows+mount+point |
-At this point you are ready to start the "sync" command to build the +At this point, you are ready to run the "sync" command to build the parity information.
| @@ -266,17 +268,17 @@ snapraid sync |
-This process may take some hours the first time, depending on the size -of the data already present in the disks. If the disks are empty +This process may take several hours the first time, depending on the size +of the data already present on the disks. If the disks are empty, the process is immediate.
-You can stop it at any time pressing Ctrl+C, and at the next run it -will start where interrupted. +You can stop it at any time by pressing Ctrl+C, and at the next run, it +will resume where it was interrupted.
When this command completes, your data is SAFE.
-Now you can start using your array as you like, and periodically -update the parity information running the "sync" command. +Now you can start using your array as you like and periodically +update the parity information by running the "sync" command.
-This command verifies the data in your array comparing it with -the hash computed in the "sync" command. +This command compares the data in your array with the hash computed +during the "sync" command to verify integrity.
-Every run of the command checks about the 8% of the array, but not data +Each run of the command checks approximately 8% of the array, excluding data already scrubbed in the previous 10 days. -You can use the -p, --plan option to specify a different amount, +You can use the -p, --plan option to specify a different amount and the -o, --older-than option to specify a different age in days. -For example, to check 5% of the array older than 20 days use: +For example, to check 5% of the array for blocks older than 20 days, use:
@@ -304,8 +306,8 @@ snapraid -p 5 -o 20 scrub |
-If during the process, silent or input/output errors are found, -the corresponding blocks are marked as bad in the "content" file, +If silent or input/output errors are found during the process, +the corresponding blocks are marked as bad in the "content" file and listed in the "status" command.
| @@ -314,8 +316,8 @@ snapraid status |
-To fix them, you can use the "fix" command filtering for bad blocks with -the -e, --filter-error options: +To fix them, you can use the "fix" command, filtering for bad blocks with +the -e, --filter-error option:
@@ -323,9 +325,9 @@ snapraid -e fix |
-At the next "scrub" the errors will disappear from the "status" report -if really fixed. To make it fast, you can use -p bad to scrub only blocks -marked as bad. +At the next "scrub," the errors will disappear from the "status" report +if they are truly fixed. To make it faster, you can use -p bad to scrub +only blocks marked as bad.
@@ -333,16 +335,24 @@ snapraid -p bad scrub |
-Take care that running "scrub" on a not synced array may result in -errors caused by removed or modified files. These errors are reported -in the "scrub" result, but related blocks are not marked as bad. +Running "scrub" on an unsynced array may report errors caused by +removed or modified files. These errors are reported in the "scrub" +output, but the related blocks are not marked as bad.
To have all the files in your array shown in the same directory tree, -you can enable the "pooling" feature. It consists in creating a -read-only virtual view of all the files in your array using symbolic -links. +you can enable the "pooling" feature. It creates a read-only virtual +view of all the files in your array using symbolic links.
You can configure the "pooling" directory in the configuration file with:
@@ -352,7 +362,7 @@ pool /pool
-or, if you are in Windows, with: +or, if you are on Windows, with:
@@ -368,9 +378,9 @@ snapraid pool |
-If you are using a Unix platform and you want to share such directory -in the network to either Windows or Unix machines, you should add -to your /etc/samba/smb.conf the following options: +If you are using a Unix platform and want to share this directory +over the network to either Windows or Unix machines, you should add +the following options to your /etc/samba/smb.conf:
@@ -392,15 +402,12 @@ follow symlinks = yes |
-In Windows the same sharing operation is not so straightforward, -because Windows shares the symbolic links as they are, and that -requires the network clients to resolve them remotely. -
-To make it working, besides sharing in the network the pool directory, -you must also share all the disks independently, using as share points -the disk names as defined in the configuration file. You must also specify in -the "share" option of the configure file, the Windows UNC path that remote -clients needs to use to access such shared disks. +In Windows, sharing symbolic links over a network requires clients to +resolve them remotely. To enable this, besides sharing the pool directory, +you must also share all the disks independently, using the disk names +defined in the configuration file as share points. You must also specify +in the "share" option of the configuration file the Windows UNC path that +remote clients need to use to access these shared disks.
For example, operating from a server named "darkstar", you can use the options: @@ -415,7 +422,7 @@ share \\darkstar
-and share the following dirs in the network: +and share the following directories over the network:
@@ -426,9 +433,9 @@ and share the following dirs in the network: |
-to allow remote clients to access all the files at \\darkstar\\pool. +to allow remote clients to access all the files at \\darkstar\pool.
-You may also need to configure remote clients enabling access at remote +You may also need to configure remote clients to enable access to remote symlinks with the command:
@@ -439,9 +446,9 @@ fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
4.3 Undeleting-SnapRAID is more like a backup program than a RAID system, and it +SnapRAID functions more like a backup program than a RAID system, and it can be used to restore or undelete files to their previous state using -the -f, --filter option : +the -f, --filter option:
You can also use it to recover only accidentally deleted files inside -a directory using the -m, --filter-missing option, that restores -only missing files, leaving untouched all the others. +a directory using the -m, --filter-missing option, which restores +only missing files, leaving all others untouched.
-Or to recover all the deleted files in all the drives with: +Or to recover all the deleted files on all drives with:
-Where NAME is the name of the disk, like "d1" as in our previous example. -In case the disk to recover is a parity disk, use the "parity", "2-parity" -names. -If you have more broken disks, use multiple -d options to specify all +Where NAME is the name of the disk, such as "d1" in our previous example. +If the disk to recover is a parity disk, use the names "parity", "2-parity", +etc. +If you have multiple failed disks, use multiple -d options to specify all of them. This command will take a long time. -Take care that you need also few gigabytes free to store the fix.log file. -Run it from a disk with some free space. +Ensure you have a few gigabytes free to store the fix.log file. +Run it from a disk with sufficient free space. -Now you have recovered all the recoverable. If some file is partially or totally -unrecoverable, it will be renamed adding the ".unrecoverable" extension. +Now you have recovered all that is recoverable. If some files are partially +or totally unrecoverable, they will be renamed by adding the ".unrecoverable" +extension. -You can get a detailed list of all the unrecoverable blocks in the fix.log file -checking all the lines starting with "unrecoverable:" +You can find a detailed list of all unrecoverable blocks in the fix.log file +by checking all lines starting with "unrecoverable:". -If you are not satisfied of the recovering, you can retry it as many -time you wish. +If you are not satisfied with the recovery, you can retry it as many +times as you wish. For example, if you have removed files from the array after the last -"sync", this may result in some other files not recovered. +"sync", this may result in some files not being recovered. In this case, you can retry the "fix" using the -i, --import option, -specifying where these files are now, to include them again in the -recovering process. +specifying where these files are now to include them again in the +recovery process. -If you are satisfied of the recovering, you can now proceed further, -but take care that after syncing you cannot retry the "fix" command +If you are satisfied with the recovery, you can proceed further, +but note that after syncing, you cannot retry the "fix" command anymore! 4.4.3 STEP 3 -> Check-As paranoid check, you can now run a "check" command to ensure that -everything is OK on the recovered disk. +As a cautious check, you can now run a "check" command to ensure that +everything is correct on the recovered disk.
-Where NAME is the name of the disk, like "d1" as in our previous example. +Where NAME is the name of the disk, such as "d1" in our previous example. -The options -d and -a tell SnapRAID to check only the specified disk, -and ignore all the parity data. +The -d and -a options tell SnapRAID to check only the specified disk +and ignore all parity data. -This command will take a long time, but if you are not paranoid, +This command will take a long time, but if you are not overly cautious, you can skip it. 4.4.4 STEP 4 -> Sync-Run the "sync" command to re-synchronize the array with the new disk. +Run the "sync" command to resynchronize the array with the new disk.
Selects the scrub plan. If PERC is a numeric value from 0 to 100,
-it's interpreted as the percentage of blocks to scrub.
-Instead of a percentage, you can also specify a plan:
-"bad" scrubs bad blocks, "new" the blocks not yet scrubbed,
-and "full" for everything.
+it is interpreted as the percentage of blocks to scrub.
+Instead of a percentage, you can specify a plan:
+"bad" scrubs bad blocks, "new" scrubs blocks not yet scrubbed,
+and "full" scrubs everything.
This option can be used only with "scrub".
| | |||||||||||||||||||||||||||||||||||||||||||||
| -o, --older-than DAYS | ||||||||||||||||||||||||||||||||||||||||||||||
| -Selects the older the part of the array to process in "scrub". -DAYS is the minimum age in days for a block to be scrubbed, -default is 10. -Blocks marked as bad are always scrubbed despite this option. +Selects the oldest part of the array to process in "scrub". +DAYS is the minimum age in days for a block to be scrubbed; +the default is 10. +Blocks marked as bad are always scrubbed regardless of this option. This option can be used only with "scrub". |
| +-s, --spin-down-on-error + |
| +On any error, spins down all managed disks before exiting with +a non-zero status code. This prevents the drives from +remaining active and spinning after an aborted operation, +helping to avoid unnecessary heat buildup and power +consumption. Use this option to ensure disks are safely +stopped even when a command fails. + |
| +-w, --bw-limit RATE + |
| +Applies a global bandwidth limit for all disks. The RATE is +the number of bytes per second. You can specify a multiplier +such as K, M, or G (e.g., --bw-limit 1G). + |
| +-A, --stats + |
| +Enables an extended status view that shows additional information. +The screen displays two graphs: +The first graph shows the number of buffered stripes for each +disk, along with the file path of the file currently being +accessed on that disk. Typically, the slowest disk will have +no buffer available, which determines the maximum achievable +bandwidth. +The second graph shows the percentage of time spent waiting +over the past 100 seconds. The slowest disk is expected to +cause most of the wait time, while other disks should have +little or no wait time because they can use their buffered stripes. +This graph also shows the time spent waiting for hash +calculations and RAID computations. +All computations run in parallel with disk operations. +Therefore, as long as there is measurable wait time for at +least one disk, it indicates that the CPU is fast enough to +keep up with the workload. + |
| -Z, --force-zero |
| Forces the insecure operation of syncing a file with zero -size that before was not. -If SnapRAID detects a such condition, it stops proceeding +size that was previously non-zero. +If SnapRAID detects such a condition, it stops proceeding unless you specify this option. -This allows to easily detect when after a system crash, +This allows you to easily detect when, after a system crash, some accessed files were truncated. This is a possible condition in Linux with the ext3/ext4 -file-systems. +file systems. This option can be used only with "sync". |
| -F, --force-full |
| -In "sync" forces a full recomputation of the parity. -This option can be used when you add a new parity level, or if -you reverted back to an old content file using a more recent parity data. +In "sync", forces a full recomputation of the parity. +This option can be used when you add a new parity level or if +you reverted to an old content file using more recent parity data. Instead of recreating the parity from scratch, this allows -to reuse the hashes present in the content file to validate data, -and to maintain data protection during the "sync" process using -the parity data you have. +you to reuse the hashes present in the content file to validate data +and maintain data protection during the "sync" process using +the existing parity data. This option can be used only with "sync". |
| --L, --error-limit +-L, --error-limit NUMBER |
| Sets a new error limit before stopping execution. -By default SnapRAID stops if it encounters more than 100 -Input/Output errors, meaning that likely a disk is going to -die. -This options affects "sync" and "scrub", that are allowed -to continue after the first bunch of disk errors, to try -to complete at most their operations. -Instead, "check" and "fix" always stop at the first error. +By default, SnapRAID stops if it encounters more than 100 +input/output errors, indicating that a disk is likely failing. +This option affects "sync" and "scrub", which are allowed +to continue after the first set of disk errors to try +to complete their operations. +However, "check" and "fix" always stop at the first error. |
| -S, --start BLKSTART |
| -Starts the processing from the specified -block number. It could be useful to retry to check -or fix some specific block, in case of a damaged disk. -It's present mainly for advanced manual recovering. +Starts processing from the specified +block number. This can be useful for retrying to check +or fix specific blocks in case of a damaged disk. +This option is mainly for advanced manual recovery. |
| Processes only the specified number of blocks. -It's present mainly for advanced manual recovering. +This option is mainly for advanced manual recovery. |
| --C, --gen-conf CONTENT_FILE +-C, --gen-conf CONTENT |
| Generates a dummy configuration file from an existing content file. -The configuration file is written in the standard output, -and it doesn't overwrite an existing one. +The configuration file is written to standard output +and does not overwrite an existing one. This configuration file also contains the information -needed to reconstruct the disk mount points, in case you +needed to reconstruct the disk mount points in case you lose the entire system. |
-In Unix it's used the file "/usr/local/etc/snapraid.conf" if it exists, -or "/etc/snapraid.conf" otherwise. -In Windows it's used the file "snapraid.conf" in the same -directory of "snapraid.exe". +In Unix, it uses the file "/usr/local/etc/snapraid.conf" if it exists, +otherwise "/etc/snapraid.conf". +In Windows, it uses the file "snapraid.conf" in the same +directory as "snapraid.exe".
-It should contain the following options (case sensitive): +It must contain the following options (case-sensitive):
-You can specify multiples files that should be in different disks. +You can specify multiple files, which must be on different disks. When a file cannot grow anymore, the next one is used. -The total space available must be as big as the biggest data disk in +The total space available must be at least as large as the largest data disk in the array.
-You can add additional parity files at later time, but you +You can add additional parity files later, but you cannot reorder or remove them.
-Leaving the parity disks reserved for parity ensures that -it doesn't get fragmented, improving the performance. +Keeping the parity disks reserved for parity ensures that +they do not become fragmented, improving performance.
-In Windows 256 MB are left unused in each disk to avoid the +In Windows, 256 MB is left unused on each disk to avoid the warning about full disks.
-This option is mandatory and it can be used only one time. +This option is mandatory and can be used only once.
-For each parity specified, one additional level of protection +For each parity level specified, one additional level of protection is enabled:
-Each parity level requires the presence of all the previous parity +Each parity level requires the presence of all previous parity levels.
-The same considerations of the 'parity' option apply. +The same considerations as for the 'parity' option apply.
-These options are optional and they can be used only one time. +These options are optional and can be used only once.
-This option is an alternative at '3-parity' mainly intended for -low-end CPUs like ARM or AMD Phenom, Athlon and Opteron that don't -support the SSSE3 instructions set. In such cases it provides -a better performance. +This option is an alternative to '3-parity', primarily intended for +low-end CPUs like ARM or AMD Phenom, Athlon, and Opteron that do not +support the SSSE3 instruction set. In such cases, it provides +better performance.
-This format is similar, but faster, at the one used by the ZFS RAIDZ3. -Like ZFS, it doesn't work beyond triple parity. +This format is similar to but faster than the one used by ZFS RAIDZ3. +Like ZFS, it does not work beyond triple parity.
-When using '3-parity' you will be warned if it's recommended to use -the 'z-parity' format for a performance improvement. +When using '3-parity', you will be warned if it is recommended to use +the 'z-parity' format for performance improvement.
-It's possible to convert from one format to another, adjusting -the configuration file with the wanted z-parity or 3-parity file, +It is possible to convert from one format to another by adjusting +the configuration file with the desired z-parity or 3-parity file and using 'fix' to recreate it.
-It can be placed in the disk used to store data, parity, or +It can be placed on a disk used for data, parity, or any other disk available. If you use a data disk, this file is automatically excluded from the "sync" process.
-This option is mandatory and it can be used more times to save -more copies of the same files. +This option is mandatory and can be used multiple times to save +multiple copies of the same file.
-You have to store at least one copy for each parity disk used -plus one. Using some more doesn't hurt. +You must store at least one copy for each parity disk used +plus one. Using additional copies does not hurt.
-You can change the mount point as you like, as long you -keep the NAME fixed. +You can change the mount point as needed, as long as +you keep the NAME fixed.
-You should use one option for each data disk of the array. +You should use one option for each data disk in the array.
-You can rename later a disk, changing the NAME directly -in the configuration file, and then run a 'sync' command. -In the rename case, the association is done using the stored +You can rename a disk later by changing the NAME directly +in the configuration file and then running a 'sync' command. +In the case of renaming, the association is done using the stored UUID of the disks.
If the first pattern that matches is an "exclude" one, the file -is excluded. If it's an "include" one, the file is included. +is excluded. If it is an "include" one, the file is included. If no pattern matches, the file is excluded if the last pattern specified is an "include", or included if the last pattern specified is an "exclude".
-See the PATTERN section for more details in the pattern +See the PATTERN section for more details on pattern specifications.
-This option can be used many times. +This option can be used multiple times.
-The default blocksize is 256 and it should work for most cases. +The default blocksize is 256, which should work for most cases.
-WARNING! This option is for experts only, and it's highly -recommended to not change it. To change again this value in -future you'll have to recreate the whole parity! +WARNING! This option is for experts only, and it is highly +recommended not to change this value. To change this value in the +future, you will need to recreate the entire parity!
-A reason to use a different blocksize is if you have a lot of small -files. In the order of many millions. +A reason to use a different blocksize is if you have many small +files, on the order of millions.
-For each file, even of few bytes, a whole block of parity is allocated, -and with many files this may result in a lot of unused parity space. -And when you completely fill the parity disk, you are not -allowed to add more files in the data disks. -Anyway, the wasted parity doesn't sum between data disks. Wasted space -resulting from a high number of files in a data disk, limits only -the amount of data in such data disk and not in others. +For each file, even if only a few bytes, an entire block of parity is allocated, +and with many files, this may result in significant unused parity space. +When you completely fill the parity disk, you are not +allowed to add more files to the data disks. +However, the wasted parity does not accumulate across data disks. Wasted space +resulting from a high number of files on a data disk limits only +the amount of data on that data disk, not others.
-As approximation, you can assume that half of the block size is -wasted for each file. For example, with 100000 files and a 256 KiB -block size, you are going to waste 13 GB of parity, that may result -in 13 GB less space available in the data disk. +As an approximation, you can assume that half of the block size is +wasted for each file. For example, with 100,000 files and a 256 KiB +block size, you will waste 12.8 GB of parity, which may result +in 12.8 GB less space available on the data disk.
-You can get the amount of wasted space in each disk using "status". -This is the amount of space that you must leave free in the data -disks, or use for files not included in the array. -If this value is negative, it means that your are near to fill +You can check the amount of wasted space on each disk using "status". +This is the amount of space you must leave free on the data +disks or use for files not included in the array. +If this value is negative, it means you are close to filling the parity, and it represents the space you can still waste.
-To avoid the problem, you can use a bigger partition for parity. -For example, if you have the parity partition bigger than 13 GB -than data disks, you have enough extra space to handle up to 100000 -files in each data disk. +To avoid this issue, you can use a larger partition for parity. +For example, if the parity partition is 12.8 GB larger than the data disks, +you have enough extra space to handle up to 100,000 +files on each data disk without any wasted space.
-A trick to get a bigger parity partition in Linux, is to format it +A trick to get a larger parity partition in Linux is to format it with the command:
| @@ -1508,32 +1581,32 @@ mkfs.ext4 -m 0 -T largefile4 DEVICE |
-This results in about 1.5% of extra space. Meaning about 60 GB for -a 4 TB disk, that allows about 460000 files in each data disk without +This results in about 1.5% extra space, approximately 60 GB for +a 4 TB disk, which allows about 460,000 files on each data disk without any wasted space.
-The default hashsize is 16 bytes (128 bits), and it should work +The default hashsize is 16 bytes (128 bits), which should work for most cases.
-WARNING! This option is for experts only, and it's highly -recommended to not change it. To change again this value in -future you'll have to recreate the whole parity! +WARNING! This option is for experts only, and it is highly +recommended not to change this value. To change this value in the +future, you will need to recreate the entire parity!
A reason to use a different hashsize is if your system has -small memory. As a rule of thumb SnapRAID usually requires -1 GiB of RAM memory for each 16 TB of data in the array. +limited memory. As a rule of thumb, SnapRAID typically requires +1 GiB of RAM for each 16 TB of data in the array.
Specifically, to store the hashes of the data, SnapRAID requires -about TS*(1+HS)/BS bytes of RAM memory. -Where TS is the total size in bytes of your disk array, BS is the +approximately TS*(1+HS)/BS bytes of RAM, +where TS is the total size in bytes of your disk array, BS is the block size in bytes, and HS is the hash size in bytes.
-For example with 8 disks of 4 TB and a block size of 256 KiB -(1 KiB = 1024 bytes), and an hash size of 16, you get: +For example, with 8 disks of 4 TB, a block size of 256 KiB +(1 KiB = 1024 bytes), and a hash size of 16, you get:
RAM = (8 * 4 * 10^12) * (1+16) / (256 * 2^10) = 1.93 GiB @@ -1551,7 +1624,7 @@ Switching to a block size of 512, you get: RAM = (8 * 4 * 10^12) * (1+16) / (512 * 2^10) = 0.96 GiB
-Switching to both a hash size of 8, and a block size of 512 you get: +Switching to both a hash size of 8 and a block size of 512, you get:
RAM = (8 * 4 * 10^12) * (1+8) / (512 * 2^10) = 0.51 GiB @@ -1559,48 +1632,85 @@ RAM = (8 * 4 * 10^12) * (1+8) / (512 * 2^10) = 0.51 GiB7.10 autosave SIZE_IN_GIGABYTES
-Automatically save the state when syncing or scrubbing after the specified amount -of GB processed. -This option is useful to avoid to restart from scratch long "sync" -commands interrupted by a machine crash, or any other event that -may interrupt SnapRAID. +Automatically saves the state when syncing or scrubbing after the +specified amount of GB processed. +This option is useful to avoid restarting long "sync" +commands from scratch if interrupted by a machine crash or any other event.7.11 +temp_limit TEMPERATURE_CELSIUS +
+Sets the maximum allowed disk temperature in Celsius. When specified, +SnapRAID periodically checks the temperature of all disks using the +smartctl tool. The current disk temperatures are displayed while +SnapRAID is operating. If any disk exceeds this limit, all operations +stop, and the disks are spun down (put into standby) for the duration +defined by the "temp_sleep" option. After the sleep period, operations +resume, potentially pausing again if the temperature limit is reached +once more. ++During operation, SnapRAID also analyzes the heating curve of each +disk and estimates the long-term steady temperature they are expected +to reach if activity continues. The estimation is performed only after +the disk temperature has increased four times, ensuring that enough +data points are available to establish a reliable trend. +This predicted steady temperature is shown in parentheses next to the +current value and helps assess whether the system's cooling is +adequate. This estimated temperature is for informational purposes +only and has no effect on the behavior of SnapRAID. The program's +actions are based solely on the actual measured disk temperatures. +
+To perform this analysis, SnapRAID needs a reference for the system +temperature. It first attempts to read it from available hardware +sensors. If no system sensor can be accessed, it uses the lowest disk +temperature measured at the start of the run as a fallback reference. +
+Normally, SnapRAID shows only the temperature of the hottest disk. +To display the temperature of all disks, use the -A or --stats option. +
7.12 +temp_sleep TIME_IN_MINUTES +
+Sets the standby time, in minutes, when the temperature limit is +reached. During this period, the disks remain spun down. The default +is 5 minutes. +7.13 pool DIR
Defines the pooling directory where the virtual view of the disk array is created using the "pool" command.The directory must already exist. -
7.12 +
7.14 share UNC_DIR
Defines the Windows UNC path required to access the disks remotely.If this option is specified, the symbolic links created in the pool directory use this UNC path to access the disks. -Without this option the symbolic links generated use only local paths, -not allowing to share the pool directory in the network. +Without this option, the symbolic links generated use only local paths, +which does not allow sharing the pool directory over the network.
The symbolic links are formed using the specified UNC path, adding the -disk name as specified in the "disk" option, and finally adding the -file dir and name. +disk name as specified in the "data" option, and finally adding the +file directory and name.
-This option is only required for Windows. -
7.13 +This option is required only for Windows. +
7.15 smartctl DISK/PARITY OPTIONS...
-Defines a custom smartctl command to obtain the SMART attributes -for each disk. This may be required for RAID controllers and for -some USB disk that cannot be auto-detected. +Defines custom smartctl options to obtain the SMART attributes for +each disk. This may be required for RAID controllers and some USB +disks that cannot be auto-detected. The %s placeholder is replaced by +the device name, but it is optional for fixed devices like RAID controllers.-DISK is the same disk name specified in the "disk" option. -PARITY is one of the parity name as "parity,(1,2,3,4,5,6,z)-parity". +DISK is the same disk name specified in the "data" option. +PARITY is one of the parity names: "parity", "2-parity", "3-parity", +"4-parity", "5-parity", "6-parity", or "z-parity".
In the specified OPTIONS, the "%s" string is replaced by the -device name. Note that in case of RAID controllers the device is likely -fixed, and you don't have to use "%s". +device name. For RAID controllers, the device is +likely fixed, and you may not need to use "%s".
-Refers at the smartmontools documentation about the possible options: +Refer to the smartmontools documentation for possible options:
@@ -1608,7 +1718,43 @@ https://www.smartmontools.org/wiki/Supported_RAID-Controllers https://www.smartmontools.org/wiki/Supported_USB-Devices |
+For example: +
+
++smartctl parity -d sat %s ++ |
+DISK is the same disk name specified in the "data" option. +PARITY is one of the parity names: "parity", "2-parity", "3-parity", +"4-parity", "5-parity", "6-parity", or "z-parity". +The special value * can be used to ignore the attribute on all disks. +
+For example, to ignore the "Current Pending Sector Count" attribute on +all disks: +
+
++smartignore * 197 ++ |
+To ignore it only on the first parity disk: +
+
++smartignore parity 197 ++ |
| Selects any directory named DIR and everything inside. -You can use any globbing character like * and ?. -This pattern is applied only to directories and not to files. +You can use any globbing characters like * and ?. +This pattern applies only to directories, not files. |
| Selects the exact specified file path. You can use any -globbing character like * and ? but they never match a +globbing characters like * and ?, but they never match a directory slash. -This pattern is applied only to files and not to directories. +This pattern applies only to files, not directories. |
| Selects the exact specified directory path and everything -inside. You can use any globbing character like * and ? but +inside. You can use any globbing characters like * and ?, but they never match a directory slash. -This pattern is applied only to directories and not to files. +This pattern applies only to directories, not files. |
-Note that when you specify an absolute path starting with /, it's -applied at the array root dir and not at the local file-system root dir. +When you specify an absolute path starting with /, it is applied at +the array root directory, not the local file system root directory.
-In Windows you can use the backslash \ instead of the forward slash /. -Note that Windows system directories, junctions, mount points, and any -other Windows special directory are treated just as files, meaning that -to exclude them you must use a file rule, and not a directory one. +In Windows, you can use the backslash \ instead of the forward slash /. +Windows system directories, junctions, mount points, and other Windows +special directories are treated as files, meaning that to exclude +them, you must use a file rule, not a directory one.
-If the file name you want to use really contains a '*', '?', '[', -or ']' char, you have to escape it to avoid to have interpreted as a -globbing character. In Unix the escape char is '\', in Windows it's '^'. -Note that when the pattern is on the command line, you have to double the -escape character to avoid to have it interpreted by the command shell. +If the file name contains a '*', '?', '[', +or ']' character, you must escape it to avoid having it interpreted as a +globbing character. In Unix, the escape character is '\'; in Windows, it is '^'. +When the pattern is on the command line, you must double the escape +character to avoid having it interpreted by the command shell.
In the configuration file, you can use different strategies to filter the files to process. -The simplest one is to use only "exclude" rules to remove all the +The simplest approach is to use only "exclude" rules to remove all the files and directories you do not want to process. For example:
| @@ -1720,12 +1866,12 @@ files and directories you do not want to process. For example: exclude *.unrecoverable # Excludes the root directory "/lost+found" exclude /lost+found/ -# Excludes any sub-directory named "tmp" +# Excludes any subdirectory named "tmp" exclude tmp/ |
-The opposite way is to define only the file you want to process, using +The opposite approach is to define only the files you want to process, using only "include" rules. For example:
| @@ -1737,17 +1883,17 @@ include /pictures/ |
-The final way, is to mix "exclude" and "include" rules. In this case take -care that the order of rules is important. Previous rules have the -precedence over the later ones. -To get things simpler you can first have all the "exclude" rules and then -all the "include" ones. For example: +The final approach is to mix "exclude" and "include" rules. In this case, +the order of rules is important. Earlier rules take +precedence over later ones. +To simplify, you can list all the "exclude" rules first and then +all the "include" rules. For example:
# Excludes any file named "*.unrecoverable" exclude *.unrecoverable -# Excludes any sub-directory named "tmp" +# Excludes any subdirectory named "tmp" exclude tmp/ # Includes only some directories include /movies/ @@ -1762,49 +1908,49 @@ patterns. For example:
-In Unix, when using globbing chars in the command line, you have to -quote them. Otherwise the shell will try to expand them. +In Unix, when using globbing characters on the command line, you must +quote them to prevent the shell from expanding them. 9 Content-SnapRAID stores the list and check-sums of your files in the content file. +SnapRAID stores the list and checksums of your files in the content file.-It's a binary file, listing all the files present in your disk array, -with all the check-sums to verify their integrity. +It is a binary file that lists all the files present in your disk array, +along with all the checksums to verify their integrity. -This file is read and written by the "sync" and "scrub" commands, and -read by "fix", "check" and "status". +This file is read and written by the "sync" and "scrub" commands and +read by the "fix", "check", and "status" commands. 10 ParitySnapRAID stores the parity information of your array in the parity files.-They are binary files, containing the computed parity of all the +These are binary files containing the computed parity of all the blocks defined in the "content" file. -These files are read and written by the "sync" and "fix" commands, and -only read by "scrub" and "check". +These files are read and written by the "sync" and "fix" commands and +only read by the "scrub" and "check" commands. 11 EncodingSnapRAID in Unix ignores any encoding. It reads and stores the -file names with the same encoding used by the file-system. +file names with the same encoding used by the file system.-In Windows all the names read from the file-system are converted and -processed in the UTF-8 format. +In Windows, all names read from the file system are converted and +processed in UTF-8 format. -To have the file names printed correctly you have to set the Windows -console in the UTF-8 mode, with the command "chcp 65001", and use -a TrueType font like "Lucida Console" as console font. -Note that it has effect only on the printed file names, if you +To have file names printed correctly, you must set the Windows +console to UTF-8 mode with the command "chcp 65001" and use +a TrueType font like "Lucida Console" as the console font. +This affects only the printed file names; if you redirect the console output to a file, the resulting file is always -in the UTF-8 format. +in UTF-8 format. |