diff --git a/HISTORY b/HISTORY index 8ab77b37..6fe1b56b 100644 --- a/HISTORY +++ b/HISTORY @@ -1,12 +1,12 @@ SnapRAID HISTORY ================ -5.0 2013/10 (BETA) +5.0 2013/11 (BETA) ================== * Added support for RAIDTP (Triple Parity), RAIDQP (Quad Parity), - RAIDPP (Penta Parity) and RAIDHP (Hexa parity). - Take cate that to get good performance you need a CPU with - SSSE3 support. + RAIDPP (Penta Parity) and RAIDHP (Hexa Parity). + Take care that to get good performance for RAIDTP and beyond you + need a CPU with SSSE3 support. * Faster RAID5 and RAID6 computation for ARM 64 bit CPUs. * In sync, if a silent error is found, directly mark the block as bad like in scrub, and continue with the sync process. @@ -22,7 +22,7 @@ SnapRAID HISTORY of info. * Changed the output format of some commands to make it similar at the new "list" one. - * Reduced memory usage avoiding to allocate unnecessary memory. + * Reduced memory usage removing some unnecessary allocations. 4.4 2013/10 =========== diff --git a/snapraid.1 b/snapraid.1 index f1509be8..1c096131 100644 --- a/snapraid.1 +++ b/snapraid.1 @@ -49,7 +49,7 @@ snapraid [\(hyV, \(hy\(hyversion] [\(hyh, \(hy\(hyhelp] [\(hyC, \(hy\(hygen\(hyc .PD .SH DESCRIPTION SnapRAID is a backup program for disk arrays. It stores redundancy -information of your data and it\(cqs able to recover from up to two +information of your data and it\(cqs able to recover from up to six disk failures. .PP SnapRAID is mainly targeted for a home media center, with a lot of @@ -128,15 +128,16 @@ To use SnapRAID you need to first select one disk of your disk array to dedicate at the \(a"parity\(a" information. With one disk for parity you will be able to recover from a single disk failure, like RAID5. .PP -If you want to be able to recover from two disk failures, like RAID6, -you must reserve another disk for the \(a"q\(hyparity\(a" information. +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. .PP As parity disks, you have to pick the biggest disks in the array, as the redundancy information may grow in size as the biggest data disk in the array. .PP -These disks will be dedicated to store the \(a"parity\(a" and \(a"q\(hyparity\(a" -files. You should not store your data in them. +These disks will be dedicated to store the \(a"parity\(a" files. +You should not store your data in them. .PP The list of files is saved in the \(a"content\(a" files, usually stored in the data, parity or boot disks. @@ -492,7 +493,7 @@ without triggering any redundancy recomputation. You can stop this process at any time pressing Ctrl+C, without losing the work already done. .PP -The \(a"content\(a", \(a"parity\(a" and \(a"q\(hyparity\(a" files are modified if necessary. +The \(a"content\(a", \(a"parity\(a" files are modified if necessary. The files in the array are NOT modified. .SS check Checks all the files and the redundancy data. @@ -520,7 +521,7 @@ All the files that cannot be fixed are renamed adding the \(a".unrecoverable\(a" extension. .PP The \(a"content\(a" file is NOT modified. -The \(a"parity\(a" and \(a"q\(hyparity\(a" files are modified if necessary. +The \(a"parity\(a" files are modified if necessary. The files in the array are modified if necessary. .SS scrub Scrubs the array, checking for silent errors. @@ -550,7 +551,7 @@ but such errros are reported in the output of the command. .PP The \(a"content\(a" file is modified to update the time of the last check of each block. -The \(a"parity\(a" and \(a"q\(hyparity\(a" files are NOT modified. +The \(a"parity\(a" files are NOT modified. The files in the array are NOT modified. .SS status Prints a summary of the state of the disk array. @@ -792,17 +793,31 @@ Leaving the parity disk reserved for only this file ensures that it doesn\(cqt get fragmented, improving the performance. .PP This option is mandatory and it can be used only one time. -.SS q\(hyparity FILE -Defines the file to use to store the q\(hyparity information. -If present, the q\(hyparity enables the protection from two disk -failures, like RAID6. +.SS [q,r,s,t,u]\(hyparity FILE +Defines the files to use to store extra parity information. +For each parity file specified, one additional level of protection +is enabled: +.PD 0 +.IP \(bu +q\(hyparity enables RAID6 Double Parity +.IP \(bu +r\(hyparity enables RAIDTP Triple Parity +.IP \(bu +s\(hyparity enables RAIDQP Quad Parity +.IP \(bu +t\(hyparity enables RAIDPP Penta Parity +.IP \(bu +u\(hyparity enables RAIDHP Hexa Parity +.PD .PP -It must be placed in a disk dedicated for this purpose with +Each parity level requires also all the files of the previous levels. +.PP +Each file must be placed in a disk dedicated for this purpose with as much free space as the biggest disk in the array. -Leaving the q\(hyparity disk reserved for only this file ensures that -it doesn\(cqt get fragmented, improving the performance. +Leaving the parity disks reserved for only these files ensures that +they doesn\(cqt get fragmented, improving the performance. .PP -This option is optional and it can be used only one time. +These options are optional and they can be used only one time. .SS content FILE Defines the file to use to store the list and checksums of all the files present in your disk array. @@ -1223,13 +1238,13 @@ This file is read and written by the \(a"sync\(a" and \(a"scrub\(a" commands, an only read by \(a"fix\(a", \(a"check\(a" and \(a"status\(a". .SH PARITY SnapRAID stores the redundancy information of your array in the parity -and q\(hyparity files. +files. .PP They are binary files, containing the computed redundancy of all the blocks defined in the \(a"content\(a" file. .PP These files are read and written by the \(a"sync\(a" and \(a"fix\(a" commands, and -only read by \(a"check\(a". +only read by \(a"scrub\(a" and \(a"check\(a". .SH ENCODING SnapRAID in Unix ignores any encoding. It simply reads and stores the file names with the same encoding used by the filesystem. diff --git a/snapraid.conf.example b/snapraid.conf.example index b783dc4f..fc9384ee 100644 --- a/snapraid.conf.example +++ b/snapraid.conf.example @@ -5,11 +5,18 @@ # Format: "parity FILE_PATH" parity /mnt/diskpar/parity -# Defines the file to use as Q-Parity storage (uncomment to enable). -# If specified, it enables a double failures protection like RAID6 +# Defines the files to use as additional Parity storage. +# If specified, they enable the multiple failures protection with RAID6 +# (Double), RAIDTP (Triple), RAIDQP (Quad), RAIDPP (Penta) and RAIDHP (Hexa). +# To enable, uncomment one parity file for each extra level of extra +# protection required. Start from q-parity, and follow in order. # It must NOT be in a data disk -# Format: "q-parity FILE_PATH" +# Format: "X-parity FILE_PATH" #q-parity /mnt/diskqar/q-parity +#r-parity /mnt/diskqar/r-parity +#s-parity /mnt/diskqar/s-parity +#t-parity /mnt/diskqar/t-parity +#u-parity /mnt/diskqar/u-parity # Defines the files to use as content list # You can use multiple specification to store more copies diff --git a/snapraid.conf.example.windows b/snapraid.conf.example.windows index 4d0810f8..bd3b1d54 100644 --- a/snapraid.conf.example.windows +++ b/snapraid.conf.example.windows @@ -3,13 +3,20 @@ # Defines the file to use as Parity storage # It must NOT be in a data disk # Format: "parity FILE_PATH" -parity E:\par\parity.par +parity E:\parity.par -# Defines the file to use as Q-Parity storage (uncomment to enable). -# If specified, it enables a double failures protection like RAID6 +# Defines the files to use as additional Parity storage. +# If specified, they enable the multiple failures protection with RAID6 +# (Double), RAIDTP (Triple), RAIDQP (Quad), RAIDPP (Penta) and RAIDHP (Hexa). +# To enable, uncomment one parity file for each extra level of extra +# protection required. Start from q-parity, and follow in order. # It must NOT be in a data disk -# Format: "q-parity FILE_PATH" -#q-parity F:\qar\q-parity.par +# Format: "X-parity FILE_PATH" +#q-parity F:\q-parity.par +#r-parity G:\r-parity.par +#s-parity H:\s-parity.par +#t-parity I:\t-parity.par +#u-parity J:\u-parity.par # Defines the files to use as content list # You can use multiple specification to store more copies @@ -18,15 +25,15 @@ parity E:\par\parity.par # but each file must be in a different disk # Format: "content FILE_PATH" content C:\snapraid\content.lst -content G:\array\content.lst -content H:\array\content.lst +content K:\array\content.lst +content L:\array\content.lst # Defines the data disks to use # The order is relevant for parity, do not change it # Format: "disk DISK_NAME DISK_MOUNT_POINT" -disk d1 G:\array\ -disk d2 H:\array\ -disk d3 I:\array\ +disk d1 K:\array\ +disk d2 L:\array\ +disk d3 M:\array\ # Excludes hidden files and directories (uncomment to enable). #nohidden diff --git a/snapraid.d b/snapraid.d index 255a8b6c..f5622c79 100644 --- a/snapraid.d +++ b/snapraid.d @@ -17,7 +17,7 @@ Synopsis Description SnapRAID is a backup program for disk arrays. It stores redundancy - information of your data and it's able to recover from up to two + information of your data and it's able to recover from up to six disk failures. SnapRAID is mainly targeted for a home media center, with a lot of @@ -79,15 +79,16 @@ Getting Started to dedicate at the "parity" information. With one disk for parity you will be able to recover from a single disk failure, like RAID5. - If you want to be able to recover from two disk failures, like RAID6, - you must reserve another disk for the "q-parity" information. + 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. As parity disks, you have to pick the biggest disks in the array, as the redundancy information may grow in size as the biggest data disk in the array. - These disks will be dedicated to store the "parity" and "q-parity" - files. You should not store your data in them. + These disks will be dedicated to store the "parity" files. + You should not store your data in them. The list of files is saved in the "content" files, usually stored in the data, parity or boot disks. @@ -272,7 +273,7 @@ Commands You can stop this process at any time pressing Ctrl+C, without losing the work already done. - The "content", "parity" and "q-parity" files are modified if necessary. + The "content", "parity" files are modified if necessary. The files in the array are NOT modified. check @@ -302,7 +303,7 @@ Commands the ".unrecoverable" extension. The "content" file is NOT modified. - The "parity" and "q-parity" files are modified if necessary. + The "parity" files are modified if necessary. The files in the array are modified if necessary. scrub @@ -333,7 +334,7 @@ Commands The "content" file is modified to update the time of the last check of each block. - The "parity" and "q-parity" files are NOT modified. + The "parity" files are NOT modified. The files in the array are NOT modified. status @@ -585,17 +586,25 @@ Configuration This option is mandatory and it can be used only one time. - q-parity FILE - Defines the file to use to store the q-parity information. - If present, the q-parity enables the protection from two disk - failures, like RAID6. + [q,r,s,t,u]-parity FILE + Defines the files to use to store extra parity information. + For each parity file specified, one additional level of protection + is enabled: - It must be placed in a disk dedicated for this purpose with + * q-parity enables RAID6 Double Parity + * r-parity enables RAIDTP Triple Parity + * s-parity enables RAIDQP Quad Parity + * t-parity enables RAIDPP Penta Parity + * u-parity enables RAIDHP Hexa Parity + + Each parity level requires also all the files of the previous levels. + + Each file must be placed in a disk dedicated for this purpose with as much free space as the biggest disk in the array. - Leaving the q-parity disk reserved for only this file ensures that - it doesn't get fragmented, improving the performance. + Leaving the parity disks reserved for only these files ensures that + they doesn't get fragmented, improving the performance. - This option is optional and it can be used only one time. + These options are optional and they can be used only one time. content FILE Defines the file to use to store the list and checksums of all the @@ -878,13 +887,13 @@ Content Parity SnapRAID stores the redundancy information of your array in the parity - and q-parity files. + files. They are binary files, containing the computed redundancy 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 "check". + only read by "scrub" and "check". Encoding SnapRAID in Unix ignores any encoding. It simply reads and stores the diff --git a/snapraid.txt b/snapraid.txt index 351f675f..23ccab53 100644 --- a/snapraid.txt +++ b/snapraid.txt @@ -24,7 +24,7 @@ snapraid [-V, --version] [-h, --help] [-C, --gen-conf CONTENT] ============= SnapRAID is a backup program for disk arrays. It stores redundancy -information of your data and it's able to recover from up to two +information of your data and it's able to recover from up to six disk failures. SnapRAID is mainly targeted for a home media center, with a lot of @@ -92,15 +92,16 @@ To use SnapRAID you need to first select one disk of your disk array to dedicate at the "parity" information. With one disk for parity you will be able to recover from a single disk failure, like RAID5. -If you want to be able to recover from two disk failures, like RAID6, -you must reserve another disk for the "q-parity" information. +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. As parity disks, you have to pick the biggest disks in the array, as the redundancy information may grow in size as the biggest data disk in the array. -These disks will be dedicated to store the "parity" and "q-parity" -files. You should not store your data in them. +These disks will be dedicated to store the "parity" files. +You should not store your data in them. The list of files is saved in the "content" files, usually stored in the data, parity or boot disks. @@ -298,7 +299,7 @@ without triggering any redundancy recomputation. You can stop this process at any time pressing Ctrl+C, without losing the work already done. -The "content", "parity" and "q-parity" files are modified if necessary. +The "content", "parity" files are modified if necessary. The files in the array are NOT modified. 5.2 check @@ -332,7 +333,7 @@ All the files that cannot be fixed are renamed adding the ".unrecoverable" extension. The "content" file is NOT modified. -The "parity" and "q-parity" files are modified if necessary. +The "parity" files are modified if necessary. The files in the array are modified if necessary. 5.4 scrub @@ -365,7 +366,7 @@ but such errros are reported in the output of the command. The "content" file is modified to update the time of the last check of each block. -The "parity" and "q-parity" files are NOT modified. +The "parity" files are NOT modified. The files in the array are NOT modified. 5.5 status @@ -637,19 +638,27 @@ it doesn't get fragmented, improving the performance. This option is mandatory and it can be used only one time. -7.2 q-parity FILE ------------------ +7.2 [q,r,s,t,u]-parity FILE +--------------------------- -Defines the file to use to store the q-parity information. -If present, the q-parity enables the protection from two disk -failures, like RAID6. +Defines the files to use to store extra parity information. +For each parity file specified, one additional level of protection +is enabled: -It must be placed in a disk dedicated for this purpose with +* q-parity enables RAID6 Double Parity +* r-parity enables RAIDTP Triple Parity +* s-parity enables RAIDQP Quad Parity +* t-parity enables RAIDPP Penta Parity +* u-parity enables RAIDHP Hexa Parity + +Each parity level requires also all the files of the previous levels. + +Each file must be placed in a disk dedicated for this purpose with as much free space as the biggest disk in the array. -Leaving the q-parity disk reserved for only this file ensures that -it doesn't get fragmented, improving the performance. +Leaving the parity disks reserved for only these files ensures that +they doesn't get fragmented, improving the performance. -This option is optional and it can be used only one time. +These options are optional and they can be used only one time. 7.3 content FILE ---------------- @@ -964,13 +973,13 @@ only read by "fix", "check" and "status". ========= SnapRAID stores the redundancy information of your array in the parity -and q-parity files. +files. They are binary files, containing the computed redundancy 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 "check". +only read by "scrub" and "check". 12 ENCODING