diff --git a/Makefile.am b/Makefile.am index e7537905..3e15f757 100644 --- a/Makefile.am +++ b/Makefile.am @@ -121,7 +121,7 @@ mkstream_SOURCES = \ dist-hook: $(srcdir)/autover.sh > $(distdir)/.version -LANG_CODES = de es fr it pl pt ro ru uk +LANG_CODES = de es fr it ja ko pl pt ro ru sv uk zh LIST_D = snapraid.d snapraid_log.d $(patsubst %, snapraid-%.d, $(LANG_CODES)) @@ -1052,6 +1052,12 @@ man/fr/snapraid.1: $(srcdir)/snapraid-fr.d man/it/snapraid.1: $(srcdir)/snapraid-it.d advd2 man < $< > $@ +man/ja/snapraid.1: $(srcdir)/snapraid-ja.d + advd2 man < $< > $@ + +man/ko/snapraid.1: $(srcdir)/snapraid-ko.d + advd2 man < $< > $@ + man/pl/snapraid.1: $(srcdir)/snapraid-pl.d advd2 man < $< > $@ @@ -1064,9 +1070,15 @@ man/ro/snapraid.1: $(srcdir)/snapraid-ro.d man/ru/snapraid.1: $(srcdir)/snapraid-ru.d advd2 man < $< > $@ +man/sv/snapraid.1: $(srcdir)/snapraid-sv.d + advd2 man < $< > $@ + man/uk/snapraid.1: $(srcdir)/snapraid-uk.d advd2 man < $< > $@ +man/zh/snapraid.1: $(srcdir)/snapraid-zh.d + advd2 man < $< > $@ + %.txt : %.d advd2 txt < $(srcdir)/$< | todos > $@ diff --git a/man/ja/snapraid.1 b/man/ja/snapraid.1 new file mode 100644 index 00000000..5fa72420 --- /dev/null +++ b/man/ja/snapraid.1 @@ -0,0 +1,1781 @@ +.TH "Disk Array用 SnapRAID バックアップ" 1 +.SH NAME +snapraid \- Disk Array用 SnapRAID バックアップ +.SH SYNOPSIS +snapraid [\-c, \-\-conf CONFIG] +.PD 0 +.PP +.PD + [\-f, \-\-filter PATTERN] [\-d, \-\-filter\-disk NAME] +.PD 0 +.PP +.PD + [\-m, \-\-filter\-missing] [\-e, \-\-filter\-error] +.PD 0 +.PP +.PD + [\-a, \-\-audit\-only] [\-h, \-\-pre\-hash] [\-i, \-\-import DIR] +.PD 0 +.PP +.PD + [\-p, \-\-plan PERC|bad|new|full] +.PD 0 +.PP +.PD + [\-o, \-\-older\-than DAYS] [\-l, \-\-log FILE] +.PD 0 +.PP +.PD + [\-s, \-\-spin\-down\-on\-error] [\-w, \-\-bw\-limit RATE] +.PD 0 +.PP +.PD + [\-Z, \-\-force\-zero] [\-E, \-\-force\-empty] +.PD 0 +.PP +.PD + [\-U, \-\-force\-uuid] [\-D, \-\-force\-device] +.PD 0 +.PP +.PD + [\-N, \-\-force\-nocopy] [\-F, \-\-force\-full] +.PD 0 +.PP +.PD + [\-R, \-\-force\-realloc] +.PD 0 +.PP +.PD + [\-S, \-\-start BLKSTART] [\-B, \-\-count BLKCOUNT] +.PD 0 +.PP +.PD + [\-L, \-\-error\-limit NUMBER] +.PD 0 +.PP +.PD + [\-A, \-\-stats] +.PD 0 +.PP +.PD + [\-v, \-\-verbose] [\-q, \-\-quiet] +.PD 0 +.PP +.PD + status|smart|probe|up|down|diff|sync|scrub|fix|check +.PD 0 +.PP +.PD + |list|dup|pool|devices|touch|rehash +.PD 0 +.PD +.PP +snapraid [\-V, \-\-version] [\-H, \-\-help] [\-C, \-\-gen\-conf CONTENT] +.PD 0 +.PD +.SH DESCRIPTION +SnapRAIDは、ディスクアレイ用のバックアッププログラムで、最大6台のディスク障害が発生した場合の +データ復旧のためにパリティ情報を保存します。 +.PP +主に大容量で、更新頻度の低いファイルを扱うホームメディアセンターを対象としており、 +SnapRAIDにはいくつかの機能があります。 +.PD 0 +.IP \(bu +ファイルが既に入っているディスクを、再フォーマットせずにそのまま利用でき、通常通り +アクセスできます。 +.IP \(bu +すべてのデータがハッシュ化され、データの整合性を確保し、サイレントな破損を防ぎます。 +.IP \(bu +障害が発生したディスクの数がパリティ数を超えた場合、データの損失は影響を受けたディスクに +限定され、他のディスクのデータは引き続きアクセス可能です。 +.IP \(bu +誤ってディスク上のファイルを削除した場合でも、復旧が可能です。 +.IP \(bu +ディスクは異なるサイズであっても構いません。 +.IP \(bu +いつでもディスクを追加できます。 +.IP \(bu +SnapRAIDはデータをロックしません。いつでも再フォーマットやデータ移動なしに利用を +停止できます。 +.IP \(bu +ファイルにアクセスするためにスピンさせる必要があるのは1台のディスクだけであり、 +省電力と騒音低減に役立ちます。 +.PD +.PP +詳細については、SnapRAIDの公式サイトをご覧ください。 +.PP +.RS 4 +https://www.snapraid.it/ +.PD 0 +.PD +.RE +.SH LIMITATIONS +SnapRAIDはRAIDとバックアッププログラムのハイブリッドであり、両方の利点を組み合わせることを +目指しています。ただし、使用する前に考慮すべきいくつかの制限があります。 +.PP +主な制限は、ディスクが故障し、最近 \`sync\` を実行していない場合、完全に復旧できない +可能性があることです。 +より具体的には、最後の \`sync\` 操作以降に変更または削除されたファイルのサイズまでのデータが +復旧できない可能性があります。 +これは、変更または削除されたファイルが故障したディスク上にない場合でも発生します。 +このため、SnapRAIDは**めったに変更されない**データに適しています。 +.PP +一方で、新しく追加されたファイルは、既に存在するファイルの復旧を妨げません。 +新しく追加されたファイルが故障したディスク上にある場合にのみ、それらのファイルが失われます。 +.PP +その他のSnapRAIDの制限は次のとおりです。 +.PD 0 +.IP \(bu +SnapRAIDでは、各ディスクに対して**個別のファイルシステム**が保持されます。 +RAIDでは、単一の大きなファイルシステムが得られます。 +.IP \(bu +SnapRAIDは**データをストライピングしません**。 +RAIDでは、ストライピングにより速度が向上します。 +.IP \(bu +SnapRAIDは**リアルタイムの復旧をサポートしません**。 +RAIDでは、ディスクが故障しても作業を停止する必要はありません。 +.IP \(bu +SnapRAIDは**限られた数のディスク障害**からのみデータを復旧できます。 +バックアップでは、ディスクアレイ全体の完全な障害から復旧できます。 +.IP \(bu +**ファイル名、タイムスタンプ、シンボリックリンク、およびハードリンク**のみが保存されます。 +アクセス許可、所有権、および拡張属性は保存されません。 +.PD +.SH GETTING STARTED +SnapRAIDを使用するには、まずディスクアレイ内の1つのディスクを \`parity\` 情報専用に +選択する必要があります。パリティ用に1つのディスクを使用すると、RAID5と同様に、単一のディスク障害から +復旧できます。 +.PP +RAID6と同様に、より多くのディスク障害から復旧したい場合は、パリティ用に追加のディスクを +確保する必要があります。パリティディスクを追加するたびに、復旧できるディスク障害が1つ増えます。 +.PP +パリティ情報はアレイ内の**最大のデータディスク**のサイズにまで増える可能性があるため、 +パリティディスクとしては、アレイ内の**最大のディスク**を選択する必要があります。 +.PP +これらのディスクは、\`parity\` ファイルの保存専用になります。 +**データを保存しないでください**。 +.PP +次に、SnapRAIDで保護したい \`data\` ディスクを定義する必要があります。 +これらのディスクに含まれるデータがめったに変更されない場合に、保護が最も効果的です。 +このため、WindowsのC:\\ディスクやUnixの/home、/var、/tmpディレクトリを含めない方が +良いでしょう。 +.PP +ファイルの一覧は \`content\` ファイルに保存され、通常はデータ、パリティ、または +ブートディスクに保存されます。 +このファイルには、バックアップの詳細と、その整合性を検証するためのすべての +チェックサムが含まれています。 +\`content\` ファイルは**複数のコピー**で保存され、複数のディスク障害が発生した場合でも、 +少なくとも1つのコピーが利用可能であることを保証するために、**各コピーは異なるディスクに** +配置する必要があります。 +.PP +たとえば、1レベルのパリティ保護のみに関心があり、ディスクが次の場所にあるとします。 +.PP +.RS 4 +/mnt/diskp <\- パリティ用に選択されたディスク +.PD 0 +.PP +.PD +/mnt/disk1 <\- 保護する最初のディスク +.PD 0 +.PP +.PD +/mnt/disk2 <\- 保護する2番目のディスク +.PD 0 +.PP +.PD +/mnt/disk3 <\- 保護する3番目のディスク +.PD 0 +.PD +.RE +.PP +構成ファイル \`/etc/snapraid.conf\` を次のオプションで作成する必要があります。 +.PP +.RS 4 +parity /mnt/diskp/snapraid.parity +.PD 0 +.PP +.PD +content /var/snapraid/snapraid.content +.PD 0 +.PP +.PD +content /mnt/disk1/snapraid.content +.PD 0 +.PP +.PD +content /mnt/disk2/snapraid.content +.PD 0 +.PP +.PD +data d1 /mnt/disk1/ +.PD 0 +.PP +.PD +data d2 /mnt/disk2/ +.PD 0 +.PP +.PD +data d3 /mnt/disk3/ +.PD 0 +.PD +.RE +.PP +Windowsを使用している場合は、スラッシュではなくドライブ文字とバックスラッシュを +使用したWindowsのパス形式を使用する必要があります。 +.PP +.RS 4 +parity E:\\snapraid.parity +.PD 0 +.PP +.PD +content C:\\snapraid\\snapraid.content +.PD 0 +.PP +.PD +content F:\\array\\snapraid.content +.PD 0 +.PP +.PD +content G:\\array\\snapraid.content +.PD 0 +.PP +.PD +data d1 F:\\array\\ +.PD 0 +.PP +.PD +data d2 G:\\array\\ +.PD 0 +.PP +.PD +data d3 H:\\array\\ +.PD 0 +.PD +.RE +.PP +ディスクが多くてドライブ文字が不足する場合は、サブフォルダにディスクを +直接マウントできます。参照: +.PP +.RS 4 +https://www.google.com/search?q=Windows+mount+point +.PD 0 +.PD +.RE +.PP +この時点で、パリティ情報を構築するために \`sync\` コマンドを実行する準備が整いました。 +.PP +.RS 4 +snapraid sync +.PD 0 +.PD +.RE +.PP +このプロセスは、既にディスクに存在するデータのサイズに応じて、初回は数時間かかる +場合があります。ディスクが空の場合は、プロセスは即座に完了します。 +.PP +Ctrl+Cを押すことでいつでも停止でき、次回の実行時には中断された場所から再開されます。 +.PP +このコマンドが完了すると、データは**SAFE**になります。 +.PP +これで、アレイを自由に使い始め、定期的に \`sync\` コマンドを実行してパリティ情報を +更新できます。 +.SS Scrubbing +データとパリティのエラーを定期的にチェックするには、\`scrub\` コマンドを +実行できます。 +.PP +.RS 4 +snapraid scrub +.PD 0 +.PD +.RE +.PP +このコマンドは、配列内のデータを \`sync\` コマンド中に計算されたハッシュと比較して、 +整合性を検証します。 +.PP +このコマンドを1回実行すると、前回の10日間で既にスクラブされたデータを除いて、 +アレイの約8%がチェックされます。 +\-p, \-\-plan オプションを使用して異なる量を指定でき、 +\-o, \-\-older\-than オプションを使用して異なる経過日数で +指定できます。 +たとえば、20日以上経過したブロックの5%をチェックするには、次のように使用します。 +.PP +.RS 4 +snapraid \-p 5 \-o 20 scrub +.PD 0 +.PD +.RE +.PP +プロセス中にサイレントエラーまたは入出力エラーが見つかった場合、 +対応するブロックは \`content\` ファイル内で不良としてマークされ、 +\`status\` コマンドで一覧表示されます。 +.PP +.RS 4 +snapraid status +.PD 0 +.PD +.RE +.PP +それらを修正するには、\-e, \-\-filter\-error オプションで不良ブロックをフィルタリングして、 +\`fix\` コマンドを使用できます。 +.PP +.RS 4 +snapraid \-e fix +.PD 0 +.PD +.RE +.PP +次回の \`scrub\` で、エラーが本当に修正されていれば、\`status\` レポートから +エラーは消えます。より高速にするために、\`\-p bad\` を使用して不良としてマークされた +ブロックのみをスクラブできます。 +.PP +.RS 4 +snapraid \-p bad scrub +.PD 0 +.PD +.RE +.PP +未同期のアレイで \`scrub\` を実行すると、削除または変更されたファイルによって +引き起こされたエラーが報告される場合があります。これらのエラーは \`scrub\` の +出力で報告されますが、関連するブロックは不良としてマークされません。 +.SS Pooling +注: ここで説明するプーリング機能は、**mergefs** ツールに取って代わられました。 +mergefs は、SnapRAIDコミュニティのLinuxユーザーに推奨されるオプションです。 +Mergefs は、複数のドライブを単一の統合されたマウントポイントにプールするための、 +より柔軟で効率的な方法を提供し、シンボリックリンクに頼ることなくアレイ全体の +ファイルにシームレスにアクセスできます。これは、パリティ保護のためにSnapRAIDと +うまく統合されており、OpenMediaVault (OMV) やカスタムNAS構成などのセットアップで +一般的に使用されています。 +.PP +アレイ内のすべてのファイルを同じディレクトリツリーに表示させるには、 +\`pooling\` 機能を有効にできます。これは、シンボリックリンクを使用して、 +アレイ内のすべてのファイルの読み取り専用の仮想ビューを作成します。 +.PP +構成ファイルで \`pooling\` ディレクトリを次のように構成できます。 +.PP +.RS 4 +pool /pool +.PD 0 +.PD +.RE +.PP +または、Windowsの場合は、次のようにします。 +.PP +.RS 4 +pool C:\\pool +.PD 0 +.PD +.RE +.PP +そして、\`pool\` コマンドを実行して仮想ビューを作成または更新します。 +.PP +.RS 4 +snapraid pool +.PD 0 +.PD +.RE +.PP +Unixプラットフォームを使用しており、このディレクトリをWindowsまたはUnixマシンに +ネットワーク経由で共有したい場合は、\`/etc/samba/smb.conf\` に次のオプションを +追加する必要があります。 +.PP +.RS 4 +# smb.conf の global セクションで +.PD 0 +.PP +.PD +unix extensions = no +.PD 0 +.PD +.RE +.PP +.RS 4 +# smb.conf の share セクションで +.PD 0 +.PP +.PD +[pool] +.PD 0 +.PP +.PD +comment = Pool +.PD 0 +.PP +.PD +path = /pool +.PD 0 +.PP +.PD +read only = yes +.PD 0 +.PP +.PD +guest ok = yes +.PD 0 +.PP +.PD +wide links = yes +.PD 0 +.PP +.PD +follow symlinks = yes +.PD 0 +.PD +.RE +.PP +Windowsでは、ネットワーク経由でシンボリックリンクを共有するには、クライアントが +それらをリモートで解決する必要があります。これを有効にするには、プールディレクトリを +共有することに加えて、構成ファイルで定義された**ディスク名**を共有ポイントとして +使用して、**すべてのディスクを個別に**共有する必要があります。また、リモートクライアントが +これらの共有ディスクにアクセスするために使用する必要があるWindows UNCパスを、 +構成ファイルの \`share\` オプションで指定する必要があります。 +.PP +たとえば、\`darkstar\` という名前のサーバーで操作している場合、次のオプションを +使用できます。 +.PP +.RS 4 +data d1 F:\\array\\ +.PD 0 +.PP +.PD +data d2 G:\\array\\ +.PD 0 +.PP +.PD +data d3 H:\\array\\ +.PD 0 +.PP +.PD +pool C:\\pool +.PD 0 +.PP +.PD +share \\\\darkstar +.PD 0 +.PD +.RE +.PP +そして、次のディレクトリをネットワーク経由で共有します。 +.PP +.RS 4 +\\\\darkstar\\pool \-> C:\\pool +.PD 0 +.PP +.PD +\\\\darkstar\\d1 \-> F:\\array +.PD 0 +.PP +.PD +\\\\darkstar\\d2 \-> G:\\array +.PD 0 +.PP +.PD +\\\\darkstar\\d3 \-> H:\\array +.PD 0 +.PD +.RE +.PP +これにより、リモートクライアントは \`\\\\darkstar\\pool\` ですべてのファイルに +アクセスできるようになります。 +.PP +また、リモートクライアントがリモートシンボリックリンクへのアクセスを有効にするために、 +次のコマンドで構成する必要がある場合もあります。 +.PP +.RS 4 +fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 +.PD 0 +.PD +.RE +.SS Undeleting +SnapRAIDはRAIDシステムよりもバックアッププログラムのように機能し、 +\-f, \-\-filter オプションを使用してファイルを以前の状態に復元または削除解除するために +使用できます。 +.PP +.RS 4 +snapraid fix \-f FILE +.PD 0 +.PD +.RE +.PP +またはディレクトリの場合は: +.PP +.RS 4 +snapraid fix \-f DIR/ +.PD 0 +.PD +.RE +.PP +また、\-m, \-\-filter\-missing オプションを使用して、ディレクトリ内の**誤って削除されたファイルのみ**を +復旧するために使用することもできます。これにより、不足しているファイルのみが復元され、 +他のファイルはすべてそのまま残されます。 +.PP +.RS 4 +snapraid fix \-m \-f DIR/ +.PD 0 +.PD +.RE +.PP +または、すべてのドライブ上のすべての削除されたファイルを復旧するには: +.PP +.RS 4 +snapraid fix \-m +.PD 0 +.PD +.RE +.SS Recovering +最悪の事態が発生し、1台以上のディスクを失いました! +.PP +**パニックにならないでください!** 復旧できます! +.PP +最初に行うべきことは、ディスクアレイへの**さらなる変更を避ける**ことです。 +リモート接続、およびスケジュールされたSnapRAIDの夜間 \`sync\` や \`scrub\` を含む、 +すべてのスケジュールされたプロセスを無効にしてください。 +.PP +次に、次の手順に進みます。 +.SS STEP 1 \-> Reconfigure +復旧のためにいくらかのスペースが必要です。理想的には追加の +予備ディスクですが、外部USBディスクやリモートディスクでも十分です。 +.PP +SnapRAIDの構成ファイルを変更して、故障したディスクの \`data\` または \`parity\` +オプションを、ファイルを復旧するための十分な空き容量のある場所に +向けます。 +.PP +たとえば、ディスク \`d1\` が故障した場合、次のように変更します。 +.PP +.RS 4 +data d1 /mnt/disk1/ +.PD 0 +.PD +.RE +.PP +から: +.PP +.RS 4 +data d1 /mnt/new_spare_disk/ +.PD 0 +.PD +.RE +.PP +復旧するディスクがパリティディスクの場合は、適切な \`parity\` オプションを +更新します。 +複数のディスクが故障している場合は、すべての構成オプションを更新します。 +.SS STEP 2 \-> Fix +ログを外部ファイルに保存して、\`fix\` コマンドを実行します。 +.PP +.RS 4 +snapraid \-d NAME \-l fix.log fix +.PD 0 +.PD +.RE +.PP +ここで NAME はディスクの名前であり、前の例では \`d1\` のようなものです。 +復旧するディスクがパリティディスクの場合は、\`parity\`、\`2\-parity\` などの +名前を使用します。 +複数のディスクが故障している場合は、複数の \`\-d\` オプションを使用して +すべてを指定します。 +.PP +このコマンドは時間がかかります。 +.PP +\`fix.log\` ファイルを保存するために数ギガバイトの空き容量があることを確認してください。 +十分な空き容量のあるディスクから実行してください。 +.PP +これで、復旧可能なすべてのものが復旧されました。一部のファイルが部分的または完全に +復旧できない場合、それらは \`.unrecoverable\` 拡張子を追加して名前が変更されます。 +.PP +\`fix.log\` ファイルで、\`unrecoverable:\` で始まるすべての行をチェックすることで、 +すべての復旧不能なブロックの詳細なリストを見つけることができます。 +.PP +復旧に満足できない場合は、何度でも再試行できます。 +.PP +たとえば、最後の \`sync\` の後にアレイからファイルを削除した場合、 +これにより一部のファイルが復旧されない可能性があります。 +この場合、\-i, \-\-import オプションを使用して、これらのファイルが現在どこにあるかを指定することで、 +復旧プロセスにそれらを再度含めるように \`fix\` を再試行できます。 +.PP +復旧に満足している場合は、さらに進むことができますが、**sync** の実行後には +\`fix\` コマンドを**再試行できない**ことに注意してください! +.SS STEP 3 \-> Check +慎重なチェックとして、\`check\` コマンドを実行して、復旧されたディスク上の +すべてが正しいことを確認できます。 +.PP +.RS 4 +snapraid \-d NAME \-a check +.PD 0 +.PD +.RE +.PP +ここで NAME はディスクの名前であり、前の例では \`d1\` のようなものです。 +.PP +\`\-d\` および \`\-a\` オプションは、SnapRAIDに**指定されたディスクのみ**をチェックし、 +**すべてのパリティデータを無視**するように指示します。 +.PP +このコマンドは時間がかかりますが、過度に慎重でない場合はスキップできます。 +.SS STEP 4 \-> Sync +\`sync\` コマンドを実行して、アレイを新しいディスクと再同期します。 +.PP +.RS 4 +snapraid sync +.PD 0 +.PD +.RE +.PP +すべてが復旧されていれば、このコマンドは即座に完了します。 +.SH COMMANDS +SnapRAIDは、次のことを可能にするいくつかの簡単なコマンドを提供します。 +.PD 0 +.IP \(bu +アレイの状態の概要を出力 \-> \`status\` +.IP \(bu +ディスクの制御 \-> \`smart\`、\`probe\`、\`up\`、\`down\` +.IP \(bu +バックアップ/スナップショットの作成 \-> \`sync\` +.IP \(bu +データの定期的なチェック \-> \`scrub\` +.IP \(bu +最後のバックアップ/スナップショットの復元 \-> \`fix\`。 +.PD +.PP +コマンドは**小文字**で記述する必要があります。 +.SS status +ディスクアレイの状態の概要を出力します。 +.PP +これには、パリティの断片化、チェックなしでのブロックの古さ、および +スクラビング中に遭遇したすべての記録されたサイレントエラーに関する情報が +含まれます。 +.PP +提示される情報は、最後に \`sync\` を実行した時点のものです。 +それ以降の変更は考慮されません。 +.PP +不良ブロックが検出された場合、それらのブロック番号が一覧表示されます。 +それらを修正するには、\`fix \-e\` コマンドを使用できます。 +.PP +また、各ブロックが最後にスクラブまたは同期された時期を示すグラフも表示されます。 +スクラブされたブロックは \`*\` で、同期されたがまだスクラブされていないブロックは \`o\` で +示されます。 +.PP +何も変更されません。 +.SS smart +システム内のすべてのディスクのSMARTレポートを出力します。 +.PP +これには、翌年の故障確率の推定値が含まれており、疑わしい属性を示すディスクの +メンテナンス交換を計画できます。 +.PP +この確率推定は、ディスクのSMART属性を次の場所で利用可能なBackblazeのデータと +相関させることで得られます。 +.PP +.RS 4 +https://www.backblaze.com/hard\-drive\-test\-data.html +.PD 0 +.PD +.RE +.PP +SMARTがディスクが故障していると報告した場合、そのディスクに対して \`FAIL\` または \`PREFAIL\` が +出力され、SnapRAIDはエラーを返します。 +この場合、**ディスクの即時交換**が強く推奨されます。 +.PP +その他の可能なステータス文字列は次のとおりです。 +.RS 4 +.PD 0 +.HP 4 +.I logfail +過去に、一部の属性がしきい値よりも低かった。 +.HP 4 +.I logerr +デバイスのエラーログにエラーが含まれている。 +.HP 4 +.I selferr +デバイスのセルフテストログにエラーが含まれている。 +.PD +.RE +.TP +.B \-v, \-\-verbose オプションが指定されている場合、より詳細な統計分析が提供されます。 +この分析は、より多くまたはより少ないパリティが必要かどうかを決定するのに役立ちます。 +.PP +このコマンドは \`smartctl\` ツールを使用し、すべてのデバイスで \`smartctl \-a\` を実行するのと +同等です。 +.PP +デバイスが正しく自動検出されない場合は、構成ファイルで \`smartctl\` オプションを +使用してカスタムコマンドを指定できます。 +.PP +何も変更されません。 +.SS probe +システム内のすべてのディスクのPOWER状態を出力します。 +.PP +\`Standby\` はディスクがスピンしていないことを意味します。\`Active\` は +ディスクがスピンしていることを意味します。 +.PP +このコマンドは \`smartctl\` ツールを使用し、すべてのデバイスで \`smartctl \-n standby \-i\` を実行するのと +同等です。 +.PP +デバイスが正しく自動検出されない場合は、構成ファイルで \`smartctl\` オプションを +使用してカスタムコマンドを指定できます。 +.PP +何も変更されません。 +.SS up +アレイのすべてのディスクをスピンアップします。 +.TP +.B \-d, \-\-filter\-disk オプションを使用して、特定のディスクのみをスピンアップできます。 +.PP +すべてのディスクを同時にスピンアップするには、多くの電力が必要です。 +電源がそれに耐えられることを確認してください。 +.PP +何も変更されません。 +.SS down +アレイのすべてのディスクをスピンダウンします。 +.PP +このコマンドは \`smartctl\` ツールを使用し、すべてのデバイスで \`smartctl \-s standby,now\` を実行するのと +同等です。 +.TP +.B \-d, \-\-filter\-disk オプションを使用して、特定のディスクのみをスピンダウンできます。 +.PP +エラー時に自動的にスピンダウンするには、他の任意のコマンドで \-s, \-\-spin\-down\-on\-error +オプションを使用できます。これは、エラーが発生したときに手動で \`down\` を実行するのと同等です。 +.PP +何も変更されません。 +.SS diff +最後の \`sync\` 以降に変更され、パリティデータを再計算する必要があるすべてのファイルを +一覧表示します。 +.PP +このコマンドはファイルデータはチェックせず、ファイルのタイムスタンプ、サイズ、 +およびinodeのみをチェックします。 +.PP +変更されたすべてのファイルを一覧表示した後、変更の概要が +次のようにグループ化されて提示されます。 +.RS 4 +.PD 0 +.HP 4 +.I equal +変更されていないファイル。 +.HP 4 +.I added +以前は存在しなかった追加されたファイル。 +.HP 4 +.I removed +削除されたファイル。 +.HP 4 +.I updated +サイズまたはタイムスタンプが異なるファイル。これは、 +変更されたことを意味します。 +.HP 4 +.I moved +同じディスク上の異なるディレクトリに移動されたファイル。 +同じ名前、サイズ、タイムスタンプ、およびinodeを持ちますが、ディレクトリが +異なることで識別されます。 +.HP 4 +.I copied +同じディスクまたは異なるディスクにコピーされたファイル。 +異なるディスクに真に移動された場合、\`removed\` にも +カウントされることに注意してください。 +同じ名前、サイズ、およびタイムスタンプを持つことで識別されます。 +サブ秒のタイムスタンプがゼロの場合、ファイル名だけでなく、 +フルパスが一致する必要があります。 +.HP 4 +.I restored +inodeは異なるが、名前、サイズ、タイムスタンプが一致するファイル。 +これらは通常、削除後に復元されたファイルです。 +.PD +.RE +.PP +\`sync\` が必要な場合、プロセスはデフォルトの0ではなく、リターンコード2を返します。 +リターンコード1は、一般的なエラー状態に使用されます。 +.PP +何も変更されません。 +.SS sync +パリティ情報を更新します。ディスクアレイ内のすべての変更されたファイルが読み取られ、 +対応するパリティデータが更新されます。 +.PP +Ctrl+Cを押すことでいつでもこのプロセスを停止でき、 +既に完了した作業を失うことはありません。 +次回の実行時には、\`sync\` プロセスは中断された場所から +再開されます。 +.PP +プロセス中にサイレントエラーまたは入出力エラーが見つかった場合、 +対応するブロックは不良としてマークされます。 +.PP +ファイルはパスおよび/またはinodeによって識別され、サイズとタイムスタンプによって +チェックされます。 +ファイルサイズまたはタイムスタンプが異なる場合、パリティデータはファイル全体で +再計算されます。 +ファイルが同じディスク上で移動または名前が変更され、同じinodeが保持されている場合、 +パリティは再計算されません。 +ファイルが別のディスクに移動された場合、パリティは再計算されますが、 +以前に計算されたハッシュ情報は保持されます。 +.PP +\`content\` ファイルと \`parity\` ファイルは必要に応じて変更されます。 +アレイ内のファイルは**変更されません**。 +.SS scrub +アレイをスクラブし、データおよびパリティディスクのサイレントエラーまたは入出力エラーを +チェックします。 +.PP +1回の呼び出しごとに、最後の10日間で既にスクラブされたデータを除いて、 +アレイの約8%がチェックされます。 +これは、週に1回スクラビングを実行すると、すべてのデータが少なくとも3か月に1回は +チェックされることを意味します。 +.TP +.B \-p, \-\-plan オプションを使用して、異なるスクラブプランまたは量を定義できます。 +このオプションは以下を受け入れます。 +bad \- 不良としてマークされたブロックをスクラブします。 +new \- まだスクラブされていない、同期されたばかりのブロックをスクラブします。 +full \- すべてをスクラブします。 +0\-100 \- 指定されたパーセンテージのブロックをスクラブします。 +.PP +パーセンテージの量を指定する場合、\-o, \-\-older\-than オプションを使用して、 +ブロックがどれくらいの古さである必要があるかを定義することもできます。 +最も古いブロックが最初にスクラブされ、最適なチェックが保証されます。 +まだスクラブされていない、同期されたばかりのブロックのみをスクラブしたい場合は、 +\`\-p new\` オプションを使用します。 +.PP +スクラブステータスの詳細を取得するには、\`status\` コマンドを使用します。 +.PP +見つかったサイレントエラーまたは入出力エラーごとに、対応するブロックは +\`content\` ファイル内で不良としてマークされます。 +これらの不良ブロックは \`status\` で一覧表示され、\`fix \-e\` で修正できます。 +修正後、次回のスクラブで再チェックされ、修正されていると判明した場合、 +不良マークは削除されます。 +不良ブロックのみをスクラブするには、\`scrub \-p bad\` コマンドを使用できます。 +.PP +未同期のデータによって引き起こされた報告されたエラーを避けるために、 +\`scrub\` は**同期された**アレイでのみ実行することをお勧めします。これらのエラーは +サイレントエラーではないと認識され、ブロックは不良としてマークされませんが、 +そのようなエラーはコマンドの出力で報告されます。 +.PP +\`content\` ファイルは、各ブロックの最後のチェック時刻を更新し、不良ブロックを +マークするために変更されます。 +\`parity\` ファイルは**変更されません**。 +アレイ内のファイルは**変更されません**。 +.SS fix +すべてのファイルとパリティデータを修正します。 +.PP +すべてのファイルとパリティデータは、最後の \`sync\` で保存されたスナップショット状態と +比較されます。 +違いが見つかった場合、保存されたスナップショットに**元に戻されます**。 +.PP +**警告!** \`fix\` コマンドは、エラーと意図的な変更を区別しません。 +ファイルの_状態を_最後の \`sync\` に**無条件に元に戻します**。 +.PP +他のオプションが指定されていない場合、アレイ全体が処理されます。 +フィルタオプションを使用して、操作するファイルまたはディスクのサブセットを +選択します。 +.PP +\`sync\` および \`scrub\` 中に不良としてマークされたブロックのみを修正するには、 +\-e, \-\-filter\-error オプションを使用します。 +他のフィルタオプションとは異なり、これは最新の \`sync\` 以降に**変更されていない** +ファイルにのみ修正を適用します。 +.PP +SnapRAIDは、修正できないすべてのファイルの名前を \`.unrecoverable\` 拡張子を +追加して変更します。 +.PP +修正する前に、アレイ全体がスキャンされ、最後の \`sync\` 操作以降に移動されたファイルが +見つけられます。 +これらのファイルは、名前を無視してタイムスタンプによって識別され、 +必要に応じて復旧プロセスで使用されます。 +それらのいくつかをアレイ外に移動した場合は、\-i, \-\-import オプションを使用して +スキャンする追加のディレクトリを指定できます。 +.PP +ファイルは**パスによってのみ**識別され、inodeによっては識別されません。 +.PP +\`content\` ファイルは**変更されません**。 +\`parity\` ファイルは必要に応じて変更されます。 +アレイ内のファイルは必要に応じて変更されます。 +.SS check +すべてのファイルとパリティデータを検証します。 +.PP +\`fix\` のように機能しますが、復旧を**シミュレートするだけ**で、アレイに**変更は書き込まれません**。 +.PP +このコマンドは、主に復旧プロセス後やその他の特殊な条件下での手動検証を +目的としています。 +定期的でスケジュールされたチェックには、\`scrub\` を使用します。 +.TP +.B \-a, \-\-audit\-only オプションを使用すると、ファイルの**ハッシュのみ**がチェックされ、 +パリティデータは無視されるため、チェックプロセスが大幅に高速化されます。 +.PP +ファイルは**パスによってのみ**識別され、inodeによっては識別されません。 +.PP +何も変更されません。 +.SS list +最後の \`sync\` の時点のアレイに含まれるすべてのファイルを +一覧表示します。 +.TP +.B \-v または \-\-verbose を使用すると、サブ秒の時間も表示されます。 +.PP +何も変更されません。 +.SS dup +すべての重複ファイルを一覧表示します。ハッシュが一致する場合、2つのファイルは等しいと見なされます。 +ファイルデータは読み取られず、事前に計算されたハッシュのみが使用されます。 +.PP +何も変更されません。 +.SS pool +\`pooling\` ディレクトリに、ディスクアレイ内のすべてのファイルの仮想ビューを +作成または更新します。 +.PP +ファイルはコピーされず、シンボリックリンクを使用してリンクされます。 +.PP +更新時、既存のすべてのシンボリックリンクと空のサブディレクトリは削除され、 +アレイの新しいビューに置き換えられます。その他の通常のファイルはそのまま残されます。 +.PP +プールディレクトリ外は何も変更されません。 +.SS devices +アレイで使用される低レベルデバイスを出力します。 +.PP +このコマンドは、アレイ内のデバイスの関連付けを表示し、主にスクリプトインターフェイスを +目的としています。 +.PP +最初の2つの列は、低レベルデバイスIDとパスです。 +次の2つの列は、高レベルデバイスIDとパスです。 +最後の列は、アレイ内のディスク名です。 +.PP +ほとんどの場合、アレイ内のディスクごとに1つの低レベルデバイスがありますが、 +より複雑な構成では、単一のアレイ内のディスクで複数の低レベルデバイスが +使用される場合があります。 +.PP +何も変更されません。 +.SS touch +サブ秒のタイムスタンプがゼロに設定されているすべてのファイルに、任意のサブ秒のタイムスタンプを +設定します。 +.PP +これにより、タイムスタンプがほぼ一意になり、重複の可能性が減るため、 +SnapRAIDが移動およびコピーされたファイルを認識する能力が向上します。 +.PP +より具体的には、サブ秒のタイムスタンプがゼロでない場合、移動またはコピーされたファイルは、 +名前、サイズ、およびタイムスタンプが一致する場合にそうであると識別されます。 +サブ秒のタイムスタンプがゼロの場合、フルパス、サイズ、およびタイムスタンプのすべてが +一致する場合にのみコピーと見なされます。 +.PP +秒精度のタイムスタンプは変更されないため、ファイルのすべての日付と時刻は +保持されます。 +.SS rehash +アレイ全体のリハッシュをスケジュールします。 +.PP +このコマンドは、使用されるハッシュの種類を変更します。これは通常、32ビットシステムから +64ビットシステムにアップグレードするときに、MurmurHash3からより高速なSpookyHashに +切り替えるために行われます。 +.PP +既に最適なハッシュを使用している場合、このコマンドは何もせず、アクションが不要であることを +通知します。 +.PP +リハッシュはすぐには実行されず、\`sync\` および \`scrub\` の間に徐々に実行されます。 +.PP +\`status\` を使用してリハッシュの状態を確認できます。 +.PP +リハッシュ中もSnapRAIDは完全な機能を維持しますが、唯一の例外として、 +\`dup\` は異なるハッシュを使用している重複ファイルを検出できません。 +.SH OPTIONS +SnapRAIDには、次のオプションがあります。 +.TP +.B \-c, \-\-conf CONFIG +使用する構成ファイルを選択します。指定されていない場合、Unixでは、存在すれば +\`/usr/local/etc/snapraid.conf\` を使用し、それ以外の場合は \`/etc/snapraid.conf\` を +使用します。 +Windowsでは、\`snapraid.exe\` と同じディレクトリにある \`snapraid.conf\` ファイルを +使用します。 +.TP +.B \-f, \-\-filter PATTERN +\`check\` および \`fix\` で処理するファイルをフィルタリングします。 +指定されたパターンに一致するファイルのみが処理されます。 +このオプションは複数回使用できます。 +パターン仕様の詳細については、PATTERNセクションを参照してください。 +Unixでは、グロブ文字を使用する場合は引用符で囲むようにしてください。 +このオプションは、\`check\` および \`fix\` のみで使用できます。 +これらは常にアレイ全体を処理するため、\`sync\` および \`scrub\` では +使用できません。 +.TP +.B \-d, \-\-filter\-disk NAME +\`check\`、\`fix\`、\`up\`、および \`down\` で処理するディスクをフィルタリングします。 +構成ファイルで定義されているディスク名を指定する必要があります。 +\`parity\`、\`2\-parity\`、\`3\-parity\` などの名前でパリティディスクも指定して、 +特定のパリティディスクに操作を限定できます。 +複数の \-\-filter、\-\-filter\-disk、および \-\-filter\-missing オプションを組み合わせると、 +すべてのフィルタに一致するファイルのみが選択されます。 +このオプションは複数回使用できます。 +このオプションは、\`check\`、\`fix\`、\`up\`、および \`down\` のみで使用できます。 +これらは常にアレイ全体を処理するため、\`sync\` および \`scrub\` では +使用できません。 +.TP +.B \-m, \-\-filter\-missing +\`check\` および \`fix\` で処理するファイルをフィルタリングします。 +アレイから不足または削除されたファイルのみが処理されます。 +\`fix\` と一緒に使用すると、これは \`undelete\` コマンドとして機能します。 +複数の \-\-filter、\-\-filter\-disk、および \-\-filter\-missing オプションを組み合わせると、 +すべてのフィルタに一致するファイルのみが選択されます。 +このオプションは、\`check\` および \`fix\` のみで使用できます。 +これらは常にアレイ全体を処理するため、\`sync\` および \`scrub\` では +使用できません。 +.TP +.B \-e, \-\-filter\-error +\`check\` および \`fix\` でエラーのあるファイルを処理します。 +\`status\` で一覧表示されているように、\`sync\` および \`scrub\` 中にサイレントエラーまたは +入出力エラーでマークされたブロックを持つファイルのみを処理します。 +このオプションは、\`check\` および \`fix\` のみで使用できます。 +.TP +.B \-p, \-\-plan PERC|bad|new|full +スクラブプランを選択します。PERCが0から100までの数値である場合、 +スクラブするブロックのパーセンテージとして解釈されます。 +パーセンテージの代わりに、プランを指定できます。 +\`bad\` は不良ブロックをスクラブし、\`new\` はまだスクラブされていないブロックをスクラブし、 +\`full\` はすべてをスクラブします。 +このオプションは、\`scrub\` のみで使用できます。 +.TP +.B \-o, \-\-older\-than DAYS +\`scrub\` で処理するアレイの最も古い部分を選択します。 +DAYS は、ブロックがスクラブされるための最小経過日数であり、デフォルトは10です。 +不良としてマークされたブロックは、このオプションに関係なく常にスクラブされます。 +このオプションは、\`scrub\` のみで使用できます。 +.TP +.B \-a, \-\-audit\-only +\`check\` で、パリティデータをチェックせずにファイルのハッシュを検証します。 +ファイルデータのみのチェックに関心がある場合、このオプションはチェックプロセスを +大幅に高速化できます。 +このオプションは、\`check\` のみで使用できます。 +.TP +.B \-h, \-\-pre\-hash +\`sync\` で、パリティ計算の前の追加検証のために、すべての新しいデータの +予備ハッシュ化フェーズを実行します。 +通常、\`sync\` では、予備ハッシュ化は行われず、新しいデータはパリティ計算の直前に、 +最初に読み取られたときにハッシュ化されます。 +このプロセスは、システムが重い負荷の下にあり、すべてのディスクがスピンしており、CPUが +ビジーなときに発生します。 +これはマシンにとって極端な状態であり、潜在的なハードウェアの問題がある場合、 +データがまだハッシュ化されていないため、サイレントエラーが検出されないままになる +可能性があります。 +このリスクを回避するために、\`pre\-hash\` モードを有効にして、すべてのデータを2回読み取り、 +その整合性を確保できます。 +このオプションは、アレイ内で移動されたファイルも検証して、移動操作が成功したことを +確認し、必要に応じて、続行する前に修正操作を実行できるようにします。 +このオプションは、\`sync\` のみで使用できます。 +.TP +.B \-i, \-\-import DIR +最後の \`sync\` の後にアレイから削除されたファイルを、指定されたディレクトリから +インポートします。 +これらのファイルをまだ持っている場合、それらは復旧プロセスを改善するために +\`check\` および \`fix\` で使用できます。 +ファイルは、サブディレクトリを含めて読み取られ、名前に関係なく識別されます。 +このオプションは、\`check\` および \`fix\` のみで使用できます。 +.TP +.B \-s, \-\-spin\-down\-on\-error +エラーが発生した場合、非ゼロのステータスコードで終了する前に、管理されているすべてのディスクを +スピンダウンします。これにより、中断された操作後にドライブがアクティブなままスピンし続け、 +不要な熱の蓄積と電力消費を回避するのに役立ちます。 +コマンドが失敗した場合でも、ディスクが安全に停止されるように、このオプションを使用します。 +.TP +.B \-w, \-\-bw\-limit RATE +すべてのディスクにグローバルな帯域幅制限を適用します。RATE は +1秒あたりのバイト数です。K、M、Gなどの乗数を指定できます +(例:\-\-bw\-limit 1G)。 +.TP +.B \-A, \-\-stats +追加情報を表示する拡張ステータスビューを有効にします。 +画面には2つのグラフが表示されます。 +最初のグラフは、各ディスクのバッファリングされたストライプの数と、そのディスクで現在 +アクセスされているファイルのファイルパスを示します。通常、最も遅いディスクには +バッファが利用できず、これが達成可能な最大帯域幅を決定します。 +2番目のグラフは、過去100秒間に待機に費やされた時間のパーセンテージを示します。 +最も遅いディスクが待機時間のほとんどを引き起こすと予想され、他のディスクは +バッファリングされたストライプを使用できるため、待機時間がほとんどまたはまったくないはずです。 +このグラフは、ハッシュ計算とRAID計算に費やされた待機時間も示します。 +すべての計算はディスク操作と並行して実行されます。 +したがって、少なくとも1つのディスクで測定可能な待機時間がある限り、 +CPUがワークロードに追いつくのに十分速いことを示しています。 +.TP +.B \-Z, \-\-force\-zero +以前は非ゼロだったサイズのファイルをゼロで同期するという安全でない操作を強制します。 +SnapRAIDがこのような状態を検出した場合、このオプションを指定しない限り、 +続行を停止します。 +これにより、システムクラッシュ後に一部のアクセスされたファイルが切り捨てられたときに、 +それを簡単に検出できます。 +これは、ext3/ext4ファイルシステムを使用したLinuxで起こりうる状態です。 +このオプションは、\`sync\` のみで使用できます。 +.TP +.B \-E, \-\-force\-empty +元のファイルがすべて不足しているディスクを同期するという安全でない操作を強制します。 +SnapRAIDが、元々ディスクに存在していたすべてのファイルが不足しているか、 +書き換えられていることを検出した場合、このオプションを指定しない限り、 +続行を停止します。 +これにより、データファイルシステムがマウントされていないときに、それを簡単に +検出できます。 +このオプションは、\`sync\` のみで使用できます。 +.TP +.B \-U, \-\-force\-uuid +UUIDが変更されたディスクとの同期、チェック、および修正という安全でない操作を強制します。 +SnapRAIDが一部のディスクがUUIDを変更したことを検出した場合、 +このオプションを指定しない限り、続行を停止します。 +これにより、ディスクが間違ったマウントポイントにマウントされているときに、それを検出できます。 +ただし、単一パリティでの単一のUUID変更、および複数のパリティでのより多くのUUID変更は +許可されています。これは、復旧後にディスクを交換するときの通常のケースであるためです。 +このオプションは、\`sync\`、\`check\`、または \`fix\` のみで使用できます。 +.TP +.B \-D, \-\-force\-device +アクセスできないディスク、または同じ物理デバイス上のディスクとの修正という安全でない操作を強制します。 +たとえば、2台のデータディスクを失い、最初の1台だけを復旧するための予備ディスクがある場合、 +2番目のアクセスできないディスクを無視できます。 +または、既に**使用されている**ディスクに残された空き容量にディスクを復旧したい場合、 +同じ物理デバイスを共有します。 +このオプションは、\`fix\` のみで使用できます。 +.TP +.B \-N, \-\-force\-nocopy +\`sync\`、\`check\`、および \`fix\` で、コピー検出ヒューリスティックを無効にします。 +このオプションがない場合、SnapRAIDは、名前、サイズ、タイムスタンプなどの同じ属性を持つファイルが、 +同じデータを持つコピーであると見なします。 +これにより、あるディスクから別のディスクにコピーまたは移動されたファイルを識別し、 +既に計算されたハッシュ情報を再利用して、サイレントエラーを検出したり、不足しているファイルを +復旧したりできます。 +まれに、この動作が誤検出や、多くのハッシュ検証によるプロセスの遅延につながる可能性があり、 +このオプションを使用すると、そのような問題を解決できます。 +このオプションは、\`sync\`、\`check\`、および \`fix\` のみで使用できます。 +.TP +.B \-F, \-\-force\-full +\`sync\` で、パリティの完全な再計算を強制します。 +このオプションは、新しいパリティレベルを追加する場合、またはより新しいパリティデータを使用して +古いコンテンツファイルに戻した場合に使用できます。 +パリティを最初から再作成する代わりに、これにより、コンテンツファイルに存在するハッシュを +再利用してデータを検証し、既存のパリティデータを使用して \`sync\` プロセス中にデータ保護を +維持できます。 +このオプションは、\`sync\` のみで使用できます。 +.TP +.B \-R, \-\-force\-realloc +\`sync\` で、ファイルの完全な再割り当てとパリティの再構築を強制します。 +このオプションは、コンテンツファイルに存在するハッシュを再利用してデータを検証しながら、 +断片化を削除して、すべてのファイルを完全に再割り当てするために使用できます。 +このオプションは、\`sync\` のみで使用できます。 +**警告!** このオプションはエキスパートのみを対象としており、使用しないことを強く +お勧めします。 +\`sync\` 操作中にデータ保護はありません。 +.TP +.B \-l, \-\-log FILE +詳細なログを指定されたファイルに書き込みます。 +このオプションが指定されていない場合、予期しないエラーが画面に出力され、 +多くのエラーが発生した場合に過剰な出力になる可能性があります。 +\-l, \-\-log が指定されている場合、SnapRAIDが停止する原因となる致命的なエラーのみが +画面に出力されます。 +パスが \'>>\' で始まる場合、ファイルは追記モードで開かれます。 +名前に \'%D\' と \'%T\' が出現すると、それぞれYYYYMMDDとHHMMSSの形式で +日付と時刻に置き換えられます。Windowsバッチファイルでは、\'%\' 文字を +2倍にする必要があります。例:result\-%%D.log。\'>>\' を使用するには、 +名前を引用符で囲む必要があります。例:\`\[dq]>>result.log\[dq]\`。 +ログを標準出力または標準エラーに出力するには、それぞれ \`\[dq]>&1\[dq]\` および \`\[dq]>&2\[dq]\` を +使用できます。 +ログタグの説明については、snapraid_log.txtファイルまたはmanページを参照してください。 +.TP +.B \-L, \-\-error\-limit NUMBER +実行を停止する前の新しいエラー制限を設定します。 +デフォルトでは、SnapRAIDは100を超える入出力エラーに遭遇した場合に停止します。 +これは、ディスクが故障している可能性が高いことを示しています。 +このオプションは \`sync\` と \`scrub\` に影響し、最初の一連のディスクエラーの後に +続行して操作を完了しようとすることが許可されます。 +ただし、\`check\` と \`fix\` は常に最初のエラーで停止します。 +.TP +.B \-S, \-\-start BLKSTART +指定されたブロック番号から処理を開始します。 +これは、破損したディスクの場合に特定のブロックを再試行してチェックまたは修正するのに +役立ちます。 +このオプションは、主に高度な手動復旧を目的としています。 +.TP +.B \-B, \-\-count BLKCOUNT +指定された数のブロックのみを処理します。 +このオプションは、主に高度な手動復旧を目的としています。 +.TP +.B \-C, \-\-gen\-conf CONTENT +既存のコンテンツファイルからダミーの構成ファイルを生成します。 +構成ファイルは標準出力に書き込まれ、既存のファイルを上書きしません。 +この構成ファイルには、システム全体を失った場合にディスクのマウントポイントを +再構築するために必要な情報も含まれています。 +.TP +.B \-v, \-\-verbose +画面により多くの情報を出力します。 +1回指定すると、除外されたファイルと追加の統計が出力されます。 +このオプションはログファイルには影響しません。 +.TP +.B \-q, \-\-quiet +画面に出力される情報を減らします。 +1回指定すると、プログレスバーが削除されます。2回指定すると、実行中の操作が削除されます。 +3回指定すると、情報メッセージが削除されます。4回指定すると、ステータスメッセージが削除されます。 +致命的なエラーは常に画面に出力されます。 +このオプションはログファイルには影響しません。 +.TP +.B \-H, \-\-help +短いヘルプ画面を出力します。 +.TP +.B \-V, \-\-version +プログラムのバージョンを出力します。 +.SH CONFIGURATION +SnapRAIDは、ディスクアレイの場所とパリティ情報の保存場所を知るために、構成ファイルを +必要とします。 +.PP +Unixでは、存在すれば \`/usr/local/etc/snapraid.conf\` を使用し、それ以外の場合は +\`/etc/snapraid.conf\` を使用します。 +Windowsでは、\`snapraid.exe\` と同じディレクトリにある \`snapraid.conf\` ファイルを +使用します。 +.PP +次のオプションを含める必要があります(大文字と小文字を区別します)。 +.SS parity FILE [,FILE] ... +パリティ情報を保存するために使用するファイルを定義します。 +パリティは、RAID5と同様に、単一のディスク障害からの保護を有効にします。 +.PP +複数のファイルを指定でき、それらは異なるディスク上に存在する必要があります。 +ファイルがそれ以上成長できなくなると、次のファイルが使用されます。 +利用可能な総容量は、アレイ内の**最大のデータディスク**と少なくとも同じ大きさでなければなりません。 +.PP +後で追加のパリティファイルを追加することはできますが、 +それらを並べ替えたり削除したりすることはできません。 +.PP +パリティディスクをパリティ用に予約しておくことで、それらが断片化されるのを防ぎ、 +パフォーマンスを向上させます。 +.PP +Windowsでは、フルディスクに関する警告を避けるために、各ディスクに256 MBが未使用で +残されます。 +.PP +このオプションは必須であり、1回のみ使用できます。 +.SS (2,3,4,5,6)\-parity FILE [,FILE] ... +追加のパリティ情報を保存するために使用するファイルを定義します。 +.PP +指定されたパリティレベルごとに、1つの追加の保護レベルが有効になります。 +.PD 0 +.IP \(bu +2\-parity は RAID6 デュアルパリティを有効にします。 +.IP \(bu +3\-parity は トリプルパリティを有効にします。 +.IP \(bu +4\-parity は クアッド(4つ)パリティを有効にします。 +.IP \(bu +5\-parity は ペンタ(5つ)パリティを有効にします。 +.IP \(bu +6\-parity は ヘキサ(6つ)パリティを有効にします。 +.PD +.PP +各パリティレベルには、以前のすべてのパリティレベルが存在する必要があります。 +.PP +\`parity\` オプションと同じ考慮事項が適用されます。 +.PP +これらのオプションはオプションであり、1回のみ使用できます。 +.SS z\-parity FILE [,FILE] ... +トリプルパリティを保存するための代替ファイルとフォーマットを定義します。 +.PP +このオプションは \`3\-parity\` の代替であり、主にARMやSSSE3命令セットをサポートしていない +AMD Phenom、Athlon、OpteronなどのローエンドCPUを対象としています。 +このような場合、より良いパフォーマンスを提供します。 +.PP +このフォーマットは、ZFS RAIDZ3で使用されるものと似ていますが、より高速です。 +ZFSと同様に、トリプルパリティを超えては機能しません。 +.PP +\`3\-parity\` を使用している場合、パフォーマンス向上のために \`z\-parity\` フォーマットの +使用が推奨される場合は警告が表示されます。 +.PP +構成ファイルを目的の \`z\-parity\` または \`3\-parity\` ファイルで調整し、 +\`fix\` を使用して再作成することで、あるフォーマットから別のフォーマットに +変換することが可能です。 +.SS content FILE +ディスクアレイに存在するすべてのファイルの一覧とチェックサムを保存するために使用するファイルを +定義します。 +.PP +データ、パリティ、またはその他の利用可能なディスクに配置できます。 +データディスクを使用する場合、このファイルは \`sync\` プロセスから自動的に +除外されます。 +.PP +このオプションは必須であり、同じファイルを複数コピー保存するために複数回使用できます。 +.PP +使用するパリティディスクごとに**少なくとも1つのコピー**と、さらに**1つのコピー**を +保存する必要があります。追加のコピーを使用しても害はありません。 +.SS data NAME DIR +アレイ内のデータディスクの名前とマウントポイントを定義します。 +NAME はディスクを識別するために使用され、**一意である**必要があります。 +DIR はファイルシステム内のディスクの**マウントポイント**です。 +.PP +NAME を固定したままにしておけば、必要に応じてマウントポイントを変更できます。 +.PP +アレイ内のデータディスクごとに1つのオプションを使用する必要があります。 +.PP +構成ファイルで直接 NAME を変更してから \`sync\` コマンドを実行することで、 +後でディスクの名前を変更できます。 +名前変更の場合、関連付けはディスクの保存されたUUIDを使用して行われます。 +.SS nohidden +すべての隠しファイルとディレクトリを除外します。 +Unixでは、隠しファイルは \`.\` で始まるファイルです。 +Windowsでは、隠し属性を持つファイルです。 +.SS exclude/include PATTERN +syncプロセスで除外または含めるファイルまたはディレクトリのパターンを定義します。 +すべてのパターンは指定された順序で処理されます。 +.PP +一致する最初のパターンが \`exclude\` の場合、ファイルは除外されます。 +\`include\` の場合、ファイルは含まれます。 +パターンが一致しない場合、最後に指定されたパターンが \`include\` の場合はファイルは除外され、 +\`exclude\` の場合は含まれます。 +.PP +パターン仕様の詳細については、PATTERNセクションを参照してください。 +.PP +このオプションは複数回使用できます。 +.SS blocksize SIZE_IN_KIBIBYTES +パリティの基本ブロックサイズをキビバイト単位で定義します。 +1キビバイトは1024バイトです。 +.PP +デフォルトのブロックサイズは256であり、ほとんどの場合に機能するはずです。 +.PP +**警告!** このオプションはエキスパートのみを対象としており、この値を変更しないことを強く +お勧めします。今後この値を変更するには、パリティ全体を**再作成**する必要があります! +.PP +異なるブロックサイズを使用する理由の1つは、数百万のオーダーの**多くの小さなファイル**を +持っている場合です。 +.PP +ファイルごとに、たとえ数バイトであっても、パリティの**ブロック全体**が割り当てられ、 +ファイルが多いと、これにより**かなりの未使用パリティスペース**が発生する可能性があります。 +パリティディスクを完全に埋めると、データディスクにファイルを追加することは**許可されません**。 +ただし、浪費されたパリティはデータディスク間で蓄積されません。データディスク上の多数のファイルから +生じる浪費スペースは、**そのデータディスク上のデータ量**のみを制限し、他のデータディスクには +影響しません。 +.PP +概算として、ファイルごとにブロックサイズの半分が浪費されると仮定できます。 +たとえば、100,000ファイルと256 KiBのブロックサイズがある場合、12.8 GBのパリティが浪費され、 +これによりデータディスク上で12.8 GB少ないスペースしか利用できなくなる可能性があります。 +.PP +\`status\` を使用して、各ディスクの浪費スペースの量を確認できます。 +これは、データディスク上に**空き**として残す必要がある、またはアレイに含まれないファイルに +使用する必要があるスペースの量です。 +この値が負の場合、パリティが満杯に近づいていることを意味し、まだ浪費できるスペースを +表します。 +.PP +この問題を回避するために、パリティにより大きなパーティションを使用できます。 +たとえば、パリティパーティションがデータディスクよりも12.8 GB大きい場合、 +各データディスクで最大100,000ファイルを処理するのに十分な追加スペースがあり、 +浪費スペースはありません。 +.PP +Linuxでより大きなパリティパーティションを取得するトリックは、次のコマンドで +フォーマットすることです。 +.PP +.RS 4 +mkfs.ext4 \-m 0 \-T largefile4 DEVICE +.PD 0 +.PD +.RE +.PP +これにより、約1.5%の追加スペース、4 TBディスクで約60 GBが得られ、 +浪費スペースなしで各データディスクで約460,000ファイルが可能になります。 +.SS hashsize SIZE_IN_BYTES +保存されたブロックのハッシュサイズをバイト単位で定義します。 +.PP +デフォルトのハッシュサイズは16バイト(128ビット)であり、ほとんどの場合に機能するはずです。 +.PP +**警告!** このオプションはエキスパートのみを対象としており、この値を変更しないことを強く +お勧めします。今後この値を変更するには、パリティ全体を**再作成**する必要があります! +.PP +異なるハッシュサイズを使用する理由の1つは、システムのメモリが制限されている場合です。 +経験則として、SnapRAIDは通常、アレイ内のデータ16 TBごとに1 GiBのRAMを必要とします。 +.PP +具体的には、データのハッシュを保存するために、SnapRAIDは +約 $TS \\cdot (1 + HS) / BS$ バイトのRAMを必要とします。 +ここで、TSはディスクアレイの合計サイズ(バイト)、BSはブロックサイズ(バイト)、HSはハッシュサイズ(バイト)です。 +.PP +たとえば、4 TBのディスク8台、ブロックサイズ256 KiB(1 KiB = 1024バイト)、 +ハッシュサイズ16の場合: +.PP +RAM = $(8 \\cdot 4 \\cdot 10^{12}) \\cdot (1 + 16) / (256 \\cdot 2^{10}) = 1.93 \\text{ GiB}$ +.PD 0 +.PD +.PP +ハッシュサイズを8に切り替えると: +.PP +RAM = $(8 \\cdot 4 \\cdot 10^{12}) \\cdot (1 + 8) / (256 \\cdot 2^{10}) = 1.02 \\text{ GiB}$ +.PD 0 +.PD +.PP +ブロックサイズを512に切り替えると: +.PP +RAM = $(8 \\cdot 4 \\cdot 10^{12}) \\cdot (1 + 16) / (512 \\cdot 2^{10}) = 0.96 \\text{ GiB}$ +.PD 0 +.PD +.PP +ハッシュサイズを8、ブロックサイズを512の両方に切り替えると: +.PP +RAM = $(8 \\cdot 4 \\cdot 10^{12}) \\cdot (1 + 8) / (512 \\cdot 2^{10}) = 0.51 \\text{ GiB}$ +.PD 0 +.PD +.SS autosave SIZE_IN_GIGABYTES +処理された指定されたGB量後に、同期またはスクラビング時に状態を自動的に保存します。 +このオプションは、マシンクラッシュやその他のイベントによって中断された場合に、 +長い \`sync\` コマンドを最初から再起動するのを避けるのに役立ちます。 +.SS temp_limit TEMPERATURE_CELSIUS +許容される最大ディスク温度を摂氏で設定します。指定されている場合、 +SnapRAIDは smartctl ツールを使用してすべてのディスクの温度を定期的にチェックします。 +SnapRAIDが動作している間、現在のディスク温度が表示されます。 +いずれかのディスクがこの制限を超えると、すべての操作が停止し、ディスクは \`temp_sleep\` +オプションで定義された期間、スピンダウン(スタンバイ状態に移行)されます。 +スリープ期間後、操作は再開されますが、温度制限に再度達した場合は再び一時停止する +可能性があります。 +.PP +操作中、SnapRAIDは各ディスクの加熱曲線も分析し、アクティビティが継続した場合に +達すると予想される長期的な安定温度を推定します。推定は、ディスク温度が4回上昇した +後にのみ実行され、信頼できる傾向を確立するのに十分なデータポイントが利用可能であることを +保証します。 +この予測される安定温度は、現在の値の横に括弧で表示され、システムの冷却が +適切かどうかを評価するのに役立ちます。この推定温度は情報提供のみを目的としており、 +SnapRAIDの動作には影響しません。プログラムの動作は、実際の測定されたディスク温度にのみ +基づいています。 +.PP +この分析を実行するために、SnapRAIDはシステム温度の参照が必要です。 +まず、利用可能なハードウェアセンサーから読み取ろうとします。システムセンサーに +アクセスできない場合は、実行開始時に測定された最も低いディスク温度をフォールバック参照として +使用します。 +.PP +通常、SnapRAIDは最も熱いディスクの温度のみを表示します。 +すべてのディスクの温度を表示するには、\-A または \-\-stats オプションを使用します。 +.SS temp_sleep TIME_IN_MINUTES +温度制限に達したときのスタンバイ時間(分単位)を設定します。この期間中、ディスクは +スピンダウンしたままです。デフォルトは5分です。 +.SS pool DIR +\`pool\` コマンドを使用してディスクアレイの仮想ビューが作成されるプーリングディレクトリを +定義します。 +.PP +ディレクトリは既に存在している必要があります。 +.SS share UNC_DIR +ディスクにリモートでアクセスするために必要なWindows UNCパスを定義します。 +.PP +このオプションが指定されている場合、プールディレクトリに作成されたシンボリックリンクは、 +ディスクにアクセスするためにこのUNCパスを使用します。 +このオプションがない場合、生成されたシンボリックリンクはローカルパスのみを使用し、 +プールディレクトリをネットワーク経由で共有することはできません。 +.PP +シンボリックリンクは、指定されたUNCパスを使用して形成され、\`data\` オプションで +指定されたディスク名を追加し、最後にファイルのディレクトリと名前を追加します。 +.PP +このオプションはWindowsでのみ必要です。 +.SS smartctl DISK/PARITY OPTIONS... +各ディスクのSMART属性を取得するためのカスタムsmartctlオプションを定義します。 +これは、RAIDコントローラーや一部のUSBディスクが自動検出できない場合に必要になる +ことがあります。\`%s\` プレースホルダーはデバイス名に置き換えられますが、 +RAIDコントローラーなどの固定デバイスではオプションです。 +.PP +DISK は \`data\` オプションで指定されたのと同じディスク名です。 +PARITY はパリティ名のいずれかです:\`parity\`、\`2\-parity\`、\`3\-parity\`、 +\`4\-parity\`、\`5\-parity\`、\`6\-parity\`、または \`z\-parity\`。 +.PP +指定された OPTIONS で、\`%s\` 文字列はデバイス名に置き換えられます。 +RAIDコントローラーの場合、デバイスは固定されている可能性が高いため、 +\`%s\` を使用する必要はないかもしれません。 +.PP +使用可能なオプションについては、smartmontoolsのドキュメントを参照してください。 +.PP +.RS 4 +https://www.smartmontools.org/wiki/Supported_RAID\-Controllers +.PD 0 +.PP +.PD +https://www.smartmontools.org/wiki/Supported_USB\-Devices +.PD 0 +.PD +.RE +.PP +例: +.PP +.RS 4 +smartctl parity \-d sat %s +.PD 0 +.PD +.RE +.SS smartignore DISK/PARITY ATTR [ATTR...] +ディスク障害の確率を計算するときに、指定されたSMART属性を無視します。 +このオプションは、ディスクが特定の属性について異常な値または誤解を招く値を報告する場合に +役立ちます。 +.PP +DISK は \`data\` オプションで指定されたのと同じディスク名です。 +PARITY はパリティ名のいずれかです:\`parity\`、\`2\-parity\`、\`3\-parity\`、 +\`4\-parity\`、\`5\-parity\`、\`6\-parity\`、または \`z\-parity\`。 +特殊な値 \`*\` は、すべてのディスクで属性を無視するために使用できます。 +.PP +例として、すべてのディスクで \`Current Pending Sector Count\` 属性を無視するには: +.PP +.RS 4 +smartignore * 197 +.PD 0 +.PD +.RE +.PP +最初のパリティディスクでのみ無視するには: +.PP +.RS 4 +smartignore parity 197 +.PD 0 +.PD +.RE +.SS Examples +Unixの一般的な構成の例は次のとおりです。 +.PP +.RS 4 +parity /mnt/diskp/snapraid.parity +.PD 0 +.PP +.PD +content /mnt/diskp/snapraid.content +.PD 0 +.PP +.PD +content /var/snapraid/snapraid.content +.PD 0 +.PP +.PD +data d1 /mnt/disk1/ +.PD 0 +.PP +.PD +data d2 /mnt/disk2/ +.PD 0 +.PP +.PD +data d3 /mnt/disk3/ +.PD 0 +.PP +.PD +exclude /lost+found/ +.PD 0 +.PP +.PD +exclude /tmp/ +.PD 0 +.PP +.PD +smartctl d1 \-d sat %s +.PD 0 +.PP +.PD +smartctl d2 \-d usbjmicron %s +.PD 0 +.PP +.PD +smartctl parity \-d areca,1/1 /dev/sg0 +.PD 0 +.PP +.PD +smartctl 2\-parity \-d areca,2/1 /dev/sg0 +.PD 0 +.PD +.RE +.PP +Windowsの一般的な構成の例は次のとおりです。 +.PP +.RS 4 +parity E:\\snapraid.parity +.PD 0 +.PP +.PD +content E:\\snapraid.content +.PD 0 +.PP +.PD +content C:\\snapraid\\snapraid.content +.PD 0 +.PP +.PD +data d1 G:\\array\\ +.PD 0 +.PP +.PD +data d2 H:\\array\\ +.PD 0 +.PP +.PD +data d3 I:\\array\\ +.PD 0 +.PP +.PD +exclude Thumbs.db +.PD 0 +.PP +.PD +exclude \\$RECYCLE.BIN +.PD 0 +.PP +.PD +exclude \\System Volume Information +.PD 0 +.PP +.PD +smartctl d1 \-d sat %s +.PD 0 +.PP +.PD +smartctl d2 \-d usbjmicron %s +.PD 0 +.PP +.PD +smartctl parity \-d areca,1/1 /dev/arcmsr0 +.PD 0 +.PP +.PD +smartctl 2\-parity \-d areca,2/1 /dev/arcmsr0 +.PD 0 +.PD +.RE +.SH PATTERN +パターンは、プロセスで除外または含めるファイルのサブセットを選択するために使用されます。 +.PP +4つの異なる種類のパターンがあります。 +.TP +.B FILE +FILE という名前の任意のファイルを選択します。* や ? などのグロブ文字、 +および [a\-z] などの文字クラスを使用できます。 +このパターンは**ファイルのみ**に適用され、ディレクトリには適用されません。 +.TP +.B DIR/ +DIR という名前の任意のディレクトリと、その中のすべてを選択します。 +* や ? などのグロブ文字を使用できます。 +このパターンは**ディレクトリのみ**に適用され、ファイルには適用されません。 +.TP +.B /PATH/FILE +正確に指定されたファイルパスを選択します。* や ? などのグロブ文字を +使用できますが、**ディレクトリスラッシュには一致しません**。 +このパターンは**ファイルのみ**に適用され、ディレクトリには適用されません。 +.TP +.B /PATH/DIR/ +正確に指定されたディレクトリパスと、その中のすべてを選択します。* や ? などの +グロブ文字を使用できますが、**ディレクトリスラッシュには一致しません**。 +このパターンは**ディレクトリのみ**に適用され、ファイルには適用されません。 +.TP +.B / で始まる絶対パスを指定する場合、それはローカルファイルシステムのルートディレクトリではなく、 +**アレイのルートディレクトリ**に適用されます。 +.PP +Windowsでは、フォワードスラッシュ / の代わりにバックスラッシュ \\ を使用できます。 +Windowsシステムディレクトリ、ジャンクション、マウントポイント、およびその他のWindowsの +特殊ディレクトリはファイルとして扱われます。つまり、それらを除外するには、 +ディレクトリルールではなく**ファイルルール**を使用する必要があります。 +.PP +ファイル名に \'*\'、\'?\'、\'[\'、または \']\' 文字が含まれている場合は、 +グロブ文字として解釈されないように**エスケープ**する必要があります。 +Unixではエスケープ文字は \'\\\' です。Windowsでは \'^\' です。 +パターンがコマンドラインにある場合は、コマンドシェルによって解釈されるのを防ぐために、 +エスケープ文字を**2倍**にする必要があります。 +.PP +構成ファイルでは、処理するファイルをフィルタリングするために異なる戦略を使用できます。 +最も簡単なアプローチは、**除外**したいすべてのファイルとディレクトリを削除するために、 +\`exclude\` ルールのみを使用することです。例: +.PP +.RS 4 +# \`*.unrecoverable\` という名前の任意のファイルを除外 +.PD 0 +.PP +.PD +exclude *.unrecoverable +.PD 0 +.PP +.PD +# ルートディレクトリ \`/lost+found\` を除外 +.PD 0 +.PP +.PD +exclude /lost+found/ +.PD 0 +.PP +.PD +# \`tmp\` という名前の任意のサブディレクトリを除外 +.PD 0 +.PP +.PD +exclude tmp/ +.PD 0 +.PD +.RE +.PP +反対のアプローチは、\`include\` ルールのみを使用して、**処理したいファイルのみ**を +定義することです。例: +.PP +.RS 4 +# 一部のディレクトリのみを含める +.PD 0 +.PP +.PD +include /movies/ +.PD 0 +.PP +.PD +include /musics/ +.PD 0 +.PP +.PD +include /pictures/ +.PD 0 +.PD +.RE +.PP +最後の方法としては、\`exclude\` と \`include\` ルールを混在させます。この場合、 +**ルールの順序が重要**です。前のルールは後のルールよりも優先されます。 +簡素化するために、すべての \`exclude\` ルールを最初にリストし、次にすべての \`include\` +ルールをリストできます。例: +.PP +.RS 4 +# \`*.unrecoverable\` という名前の任意のファイルを除外 +.PD 0 +.PP +.PD +exclude *.unrecoverable +.PD 0 +.PP +.PD +# \`tmp\` という名前の任意のサブディレクトリを除外 +.PD 0 +.PP +.PD +exclude tmp/ +.PD 0 +.PP +.PD +# 一部のディレクトリのみを含める +.PD 0 +.PP +.PD +include /movies/ +.PD 0 +.PP +.PD +include /musics/ +.PD 0 +.PP +.PD +include /pictures/ +.PD 0 +.PD +.RE +.PP +コマンドラインで \-f オプションを使用する場合、\`include\` パターンのみを +使用できます。例: +.PP +.RS 4 +# .mp3 ファイルのみをチェック。 +.PD 0 +.PP +.PD +# Unixでは、シェルによるグロブ展開を防ぐために引用符を使用。 +.PD 0 +.PP +.PD +snapraid \-f \[dq]*.mp3\[dq] check +.PD 0 +.PD +.RE +.PP +Unixでは、コマンドラインでグロブ文字を使用する場合、シェルがそれらを展開するのを +防ぐために引用符で囲む必要があります。 +.SH CONTENT +SnapRAIDは、ファイルの一覧とチェックサムをコンテンツファイルに保存します。 +.PP +これはバイナリファイルであり、ディスクアレイに存在するすべてのファイルと、 +それらの整合性を検証するためのすべてのチェックサムを一覧表示します。 +.PP +このファイルは \`sync\` および \`scrub\` コマンドによって読み書きされ、 +\`fix\`、\`check\`、および \`status\` コマンドによって読み取られます。 +.SH PARITY +SnapRAIDは、アレイのパリティ情報をパリティファイルに保存します。 +.PP +これらはバイナリファイルであり、\`content\` ファイルで定義されたすべてのブロックの +計算されたパリティが含まれています。 +.PP +これらのファイルは \`sync\` および \`fix\` コマンドによって読み書きされ、 +\`scrub\` および \`check\` コマンドによって**読み取られるだけ**です。 +.SH ENCODING +UnixのSnapRAIDは、エンコーディングを無視します。ファイルシステムで使用されている +のと同じエンコーディングでファイル名を読み取り、保存します。 +.PP +Windowsでは、ファイルシステムから読み取られたすべての名前はUTF\-8形式に変換され、 +処理されます。 +.PP +ファイル名を正しく出力するには、\`chcp 65001\` コマンドでWindowsコンソールをUTF\-8モードに設定し、 +コンソールフォントとして \`Lucida Console\` などのTrueTypeフォントを**使用する**必要があります。 +これは出力されるファイル名にのみ影響します。コンソール出力をファイルにリダイレクトする場合、 +結果のファイルは常にUTF\-8形式になります。 +.SH COPYRIGHT +This file is Copyright (C) 2025 Andrea Mazzoleni +.SH SEE ALSO +snapraid_log(1), rsync(1) diff --git a/man/ko/snapraid.1 b/man/ko/snapraid.1 new file mode 100644 index 00000000..251b7b28 --- /dev/null +++ b/man/ko/snapraid.1 @@ -0,0 +1,1835 @@ +.TH "디스크 어레이를 위한 SnapRAID 백업" 1 +.SH NAME +snapraid \- 디스크 어레이를 위한 SnapRAID 백업 +.SH SYNOPSIS +snapraid [\-c, \-\-conf CONFIG] +.PD 0 +.PP +.PD + [\-f, \-\-filter PATTERN] [\-d, \-\-filter\-disk NAME] +.PD 0 +.PP +.PD + [\-m, \-\-filter\-missing] [\-e, \-\-filter\-error] +.PD 0 +.PP +.PD + [\-a, \-\-audit\-only] [\-h, \-\-pre\-hash] [\-i, \-\-import DIR] +.PD 0 +.PP +.PD + [\-p, \-\-plan PERC|bad|new|full] +.PD 0 +.PP +.PD + [\-o, \-\-older\-than DAYS] [\-l, \-\-log FILE] +.PD 0 +.PP +.PD + [\-s, \-\-spin\-down\-on\-error] [\-w, \-\-bw\-limit RATE] +.PD 0 +.PP +.PD + [\-Z, \-\-force\-zero] [\-E, \-\-force\-empty] +.PD 0 +.PP +.PD + [\-U, \-\-force\-uuid] [\-D, \-\-force\-device] +.PD 0 +.PP +.PD + [\-N, \-\-force\-nocopy] [\-F, \-\-force\-full] +.PD 0 +.PP +.PD + [\-R, \-\-force\-realloc] +.PD 0 +.PP +.PD + [\-S, \-\-start BLKSTART] [\-B, \-\-count BLKCOUNT] +.PD 0 +.PP +.PD + [\-L, \-\-error\-limit NUMBER] +.PD 0 +.PP +.PD + [\-A, \-\-stats] +.PD 0 +.PP +.PD + [\-v, \-\-verbose] [\-q, \-\-quiet] +.PD 0 +.PP +.PD + status|smart|probe|up|down|diff|sync|scrub|fix|check +.PD 0 +.PP +.PD + |list|dup|pool|devices|touch|rehash +.PD 0 +.PD +.PP +snapraid [\-V, \-\-version] [\-H, \-\-help] [\-C, \-\-gen\-conf CONTENT] +.PD 0 +.PD +.SH DESCRIPTION +SnapRAID는 디스크 어레이를 위해 설계된 백업 프로그램으로, +최대 6개의 디스크 오류가 발생해도 데이터를 복구하기 위한 +패리티 정보를 저장합니다. +.PP +주로 크고 자주 변경되지 않는 파일을 가진 홈 미디어 센터를 +위해 고안된 SnapRAID는 다음과 같은 몇 가지 기능을 제공합니다: +.PD 0 +.IP \(bu +파일을 다시 포맷할 필요 없이 이미 파일로 채워진 디스크를 +활용할 수 있으며, 평소처럼 액세스할 수 있습니다. +.IP \(bu +데이터 무결성을 보장하고 무단 손상을 방지하기 위해 모든 데이터가 +해시됩니다. +.IP \(bu +실패한 디스크의 수가 패리티 수를 초과하는 경우, 데이터 손실은 +영향을 받은 디스크로 제한되며, 다른 디스크의 데이터는 +계속 액세스할 수 있습니다. +.IP \(bu +실수로 디스크의 파일을 삭제한 경우에도 복구가 가능합니다. +.IP \(bu +디스크는 서로 다른 크기를 가질 수 있습니다. +.IP \(bu +언제든지 디스크를 추가할 수 있습니다. +.IP \(bu +SnapRAID는 데이터를 가두지 않습니다. 언제든지 포맷하거나 데이터를 +이동할 필요 없이 사용을 중단할 수 있습니다. +.IP \(bu +파일에 액세스하려면 단일 디스크만 회전하면 되므로, 전력을 절약하고 +소음을 줄일 수 있습니다. +.PD +.PP +더 자세한 정보는 공식 SnapRAID 사이트를 방문하십시오: +.PP +.RS 4 +https://www.snapraid.it/ +.PD 0 +.PD +.RE +.SH LIMITATIONS +SnapRAID는 RAID와 백업 프로그램의 하이브리드로, 두 가지의 장점을 +결합하는 것을 목표로 합니다. 하지만, 사용 전에 고려해야 할 몇 가지 +제한 사항이 있습니다. +.PP +주요 제한 사항은 디스크가 실패하고 최근에 동기화(sync)하지 않은 경우, +완전히 복구하지 못할 수 있다는 것입니다. +더 구체적으로, 마지막 동기화 작업 이후 변경되거나 삭제된 파일의 +크기만큼 복구가 불가능할 수 있습니다. +이는 변경되거나 삭제된 파일이 실패한 디스크에 있지 않더라도 발생합니다. +이것이 SnapRAID가 **거의 변경되지 않는 데이터**에 더 적합한 이유입니다. +.PP +반면에, 새로 추가된 파일은 이미 존재하는 파일의 복구를 방해하지 않습니다. +새로 추가된 파일이 실패한 디스크에 있는 경우에만 해당 파일을 잃게 됩니다. +.PP +기타 SnapRAID 제한 사항은 다음과 같습니다: +.PD 0 +.IP \(bu +SnapRAID를 사용하면 여전히 각 디스크에 대해 별도의 파일 시스템이 +있습니다. RAID를 사용하면 하나의 큰 파일 시스템을 얻습니다. +.IP \(bu +SnapRAID는 데이터를 스트라이핑하지 않습니다. +RAID를 사용하면 스트라이핑으로 속도 향상을 얻습니다. +.IP \(bu +SnapRAID는 실시간 복구를 지원하지 않습니다. +RAID를 사용하면 디스크가 실패했을 때 작업을 멈출 필요가 없습니다. +.IP \(bu +SnapRAID는 제한된 수의 디스크 오류에서만 데이터를 복구할 수 있습니다. +백업을 사용하면 전체 디스크 어레이의 완전한 오류로부터 +복구할 수 있습니다. +.IP \(bu +파일 이름, 타임스탬프, 심볼릭 링크, 하드 링크만 저장됩니다. +권한, 소유권, 확장 속성은 저장되지 않습니다. +.PD +.SH GETTING STARTED +SnapRAID를 사용하려면, 먼저 디스크 어레이에서 하나의 디스크를 +\`parity\`(패리티) 정보 전용으로 선택해야 합니다. 하나의 패리티 디스크로 +RAID5와 유사하게 단일 디스크 오류로부터 복구할 수 있습니다. +.PP +RAID6와 유사하게 더 많은 디스크 오류로부터 복구하려면, +추가 디스크를 패리티용으로 예약해야 합니다. 추가 패리티 디스크 +하나당 하나의 디스크 오류에 대한 복구를 더 허용합니다. +.PP +패리티 디스크로는 어레이에서 가장 큰 디스크를 선택해야 합니다. +패리티 정보가 어레이에서 가장 큰 **데이터 디스크**의 크기만큼 +커질 수 있기 때문입니다. +.PP +이 디스크들은 \`parity\` 파일을 저장하는 데 전념하게 됩니다. +여기에 데이터를 저장해서는 안 됩니다. +.PP +다음으로, SnapRAID로 보호하려는 \`data\`(데이터) 디스크를 정의해야 합니다. +이 디스크들이 **거의 변경되지 않는 데이터**를 포함할 때 보호 효과가 +더 좋습니다. 이러한 이유로, Windows C:\\ 디스크나 Unix의 /home, /var, +/tmp 디렉토리를 포함하지 않는 것이 좋습니다. +.PP +파일 목록은 \`content\` 파일에 저장되며, 보통 데이터, 패리티, 또는 부트 +디스크에 저장됩니다. +이 파일에는 무결성을 확인하기 위한 모든 체크섬을 포함하여 +백업에 대한 세부 정보가 들어 있습니다. +\`content\` 파일은 여러 복사본으로 저장되며, 다중 디스크 오류의 경우에도 +적어도 하나의 복사본을 사용할 수 있도록 각 복사본은 서로 다른 디스크에 +있어야 합니다. +.PP +예를 들어, 하나의 패리티 보호 수준만 원하고 디스크가 다음과 같이 +위치한다고 가정해 봅시다: +.PP +.RS 4 +/mnt/diskp <\- 패리티용으로 선택된 디스크 +.PD 0 +.PP +.PD +/mnt/disk1 <\- 보호할 첫 번째 디스크 +.PD 0 +.PP +.PD +/mnt/disk2 <\- 보호할 두 번째 디스크 +.PD 0 +.PP +.PD +/mnt/disk3 <\- 보호할 세 번째 디스크 +.PD 0 +.PD +.RE +.PP +다음 옵션으로 설정 파일 /etc/snapraid.conf를 생성해야 합니다: +.PP +.RS 4 +parity /mnt/diskp/snapraid.parity +.PD 0 +.PP +.PD +content /var/snapraid/snapraid.content +.PD 0 +.PP +.PD +content /mnt/disk1/snapraid.content +.PD 0 +.PP +.PD +content /mnt/disk2/snapraid.content +.PD 0 +.PP +.PD +data d1 /mnt/disk1/ +.PD 0 +.PP +.PD +data d2 /mnt/disk2/ +.PD 0 +.PP +.PD +data d3 /mnt/disk3/ +.PD 0 +.PD +.RE +.PP +Windows를 사용하는 경우, 슬래시 대신 드라이브 문자 및 백슬래시를 사용하는 +Windows 경로 형식을 사용해야 합니다. +.PP +.RS 4 +parity E:\\snapraid.parity +.PD 0 +.PP +.PD +content C:\\snapraid\\snapraid.content +.PD 0 +.PP +.PD +content F:\\array\\snapraid.content +.PD 0 +.PP +.PD +content G:\\array\\snapraid.content +.PD 0 +.PP +.PD +data d1 F:\\array\\ +.PD 0 +.PP +.PD +data d2 G:\\array\\ +.PD 0 +.PP +.PD +data d3 H:\\array\\ +.PD 0 +.PD +.RE +.PP +디스크가 많아 드라이브 문자가 부족한 경우, 디스크를 하위 폴더에 +직접 마운트할 수 있습니다. 다음을 참조하십시오: +.PP +.RS 4 +https://www.google.com/search?q=Windows+mount+point +.PD 0 +.PD +.RE +.PP +이 시점에서, 패리티 정보를 빌드하기 위해 \`sync\` 명령을 실행할 +준비가 되었습니다. +.PP +.RS 4 +snapraid sync +.PD 0 +.PD +.RE +.PP +이 프로세스는 디스크에 이미 존재하는 데이터의 크기에 따라 첫 실행 시 +몇 시간이 걸릴 수 있습니다. 디스크가 비어 있으면 프로세스는 즉시 +완료됩니다. +.PP +Ctrl+C를 눌러 언제든지 중지할 수 있으며, 다음 실행 시 중단된 +곳에서 재개됩니다. +.PP +이 명령이 완료되면 데이터는 **SAFE**합니다. +.PP +이제 어레이를 원하는 대로 사용하고 주기적으로 \`sync\` 명령을 +실행하여 패리티 정보를 업데이트할 수 있습니다. +.SS Scrubbing +주기적으로 데이터 및 패리티의 오류를 확인하려면 \`scrub\` 명령을 +실행할 수 있습니다. +.PP +.RS 4 +snapraid scrub +.PD 0 +.PD +.RE +.PP +이 명령은 데이터 무결성을 확인하기 위해 어레이의 데이터를 \`sync\` 명령 +중에 계산된 해시와 비교합니다. +.PP +이 명령을 실행할 때마다 이전에 10일 이내에 스크럽된 데이터를 제외하고 +어레이의 약 8%를 확인합니다. +다른 양을 지정하려면 \-p, \-\-plan 옵션을 사용하고, 다른 일령(days)을 +지정하려면 \-o, \-\-older\-than 옵션을 사용할 수 있습니다. +예를 들어, 20일보다 오래된 블록에 대해 어레이의 5%를 확인하려면 +다음과 같이 사용합니다: +.PP +.RS 4 +snapraid \-p 5 \-o 20 scrub +.PD 0 +.PD +.RE +.PP +이 프로세스 중에 무단 또는 입출력 오류가 발견되면, 해당 블록은 +\`content\` 파일에 bad로 표시되며 \`status\` 명령에 나열됩니다. +.PP +.RS 4 +snapraid status +.PD 0 +.PD +.RE +.PP +이들을 수정하려면 \-e, \-\-filter\-error 옵션으로 bad 블록을 필터링하여 +\`fix\` 명령을 사용할 수 있습니다. +.PP +.RS 4 +snapraid \-e fix +.PD 0 +.PD +.RE +.PP +다음 \`scrub\` 시에 오류가 실제로 수정되면 \`status\` 보고서에서 +사라집니다. 더 빠르게 하려면, \`\-p bad\`를 사용하여 bad로 표시된 블록만 +스크럽할 수 있습니다. +.PP +.RS 4 +snapraid \-p bad scrub +.PD 0 +.PD +.RE +.PP +동기화되지 않은 어레이에서 \`scrub\`을 실행하면 제거되거나 수정된 파일로 +인한 오류가 보고될 수 있습니다. 이러한 오류는 \`scrub\` 출력에는 +보고되지만, 관련 블록은 bad로 표시되지 않습니다. +.SS Pooling +참고: 아래에 설명된 풀링(pooling) 기능은 **mergefs** 도구로 대체되었으며, +이는 SnapRAID 커뮤니티에서 Linux 사용자를 위한 권장 옵션입니다. +Mergefs는 여러 드라이브를 단일 통합 마운트 지점으로 풀링하는 더 유연하고 +효율적인 방법을 제공하여, 심볼릭 링크에 의존하지 않고 어레이 전체의 +파일에 대한 원활한 액세스를 허용합니다. 이는 패리티 보호를 위한 +SnapRAID와 잘 통합되며, OpenMediaVault (OMV) 또는 사용자 정의 NAS +구성과 같은 설정에서 흔히 사용됩니다. +.PP +어레이의 모든 파일을 동일한 디렉토리 트리에 표시하려면, +\`pooling\` 기능을 활성화할 수 있습니다. 이 기능은 심볼릭 링크를 사용하여 +어레이의 모든 파일에 대한 읽기 전용 가상 뷰를 생성합니다. +.PP +설정 파일에서 \`pooling\` 디렉토리를 다음과 같이 구성할 수 있습니다: +.PP +.RS 4 +pool /pool +.PD 0 +.PD +.RE +.PP +또는 Windows에서 다음과 같이 합니다: +.PP +.RS 4 +pool C:\\pool +.PD 0 +.PD +.RE +.PP +그리고 나서 \`pool\` 명령을 실행하여 가상 뷰를 생성하거나 업데이트합니다. +.PP +.RS 4 +snapraid pool +.PD 0 +.PD +.RE +.PP +Unix 플랫폼을 사용하고 이 디렉토리를 Windows 또는 Unix 컴퓨터에 +네트워크를 통해 공유하려면, /etc/samba/smb.conf에 다음 옵션을 +추가해야 합니다: +.PP +.RS 4 +# smb.conf의 global 섹션에서 +.PD 0 +.PP +.PD +unix extensions = no +.PD 0 +.PD +.RE +.PP +.RS 4 +# smb.conf의 share 섹션에서 +.PD 0 +.PP +.PD +[pool] +.PD 0 +.PP +.PD +comment = Pool +.PD 0 +.PP +.PD +path = /pool +.PD 0 +.PP +.PD +read only = yes +.PD 0 +.PP +.PD +guest ok = yes +.PD 0 +.PP +.PD +wide links = yes +.PD 0 +.PP +.PD +follow symlinks = yes +.PD 0 +.PD +.RE +.PP +Windows에서 네트워크를 통해 심볼릭 링크를 공유하려면 클라이언트가 +원격으로 이들을 해석해야 합니다. 이를 활성화하기 위해, 풀 디렉토리를 +공유하는 것 외에도, 설정 파일에 정의된 디스크 이름을 공유 지점으로 +사용하여 모든 디스크를 독립적으로 공유해야 합니다. 또한 설정 파일의 +\`share\` 옵션에서 원격 클라이언트가 이러한 공유 디스크에 액세스하는 데 +필요한 Windows UNC 경로를 지정해야 합니다. +.PP +예를 들어, \`darkstar\`라는 서버에서 작업하는 경우, 다음 옵션을 +사용할 수 있습니다: +.PP +.RS 4 +data d1 F:\\array\\ +.PD 0 +.PP +.PD +data d2 G:\\array\\ +.PD 0 +.PP +.PD +data d3 H:\\array\\ +.PD 0 +.PP +.PD +pool C:\\pool +.PD 0 +.PP +.PD +share \\\\darkstar +.PD 0 +.PD +.RE +.PP +그리고 네트워크를 통해 다음 디렉토리를 공유합니다: +.PP +.RS 4 +\\\\darkstar\\pool \-> C:\\pool +.PD 0 +.PP +.PD +\\\\darkstar\\d1 \-> F:\\array +.PD 0 +.PP +.PD +\\\\darkstar\\d2 \-> G:\\array +.PD 0 +.PP +.PD +\\\\darkstar\\d3 \-> H:\\array +.PD 0 +.PD +.RE +.PP +이렇게 하면 원격 클라이언트가 \\\\darkstar\\pool에서 모든 파일에 액세스할 +수 있습니다. +.PP +또한 다음 명령으로 원격 클라이언트를 구성하여 원격 심볼릭 링크에 +대한 액세스를 활성화해야 할 수도 있습니다: +.PP +.RS 4 +fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 +.PD 0 +.PD +.RE +.SS Undeleting +SnapRAID는 RAID 시스템보다는 백업 프로그램처럼 작동하며, +\-f, \-\-filter 옵션을 사용하여 파일이나 디렉토리를 이전 상태로 복원하거나 +삭제 취소할 수 있습니다: +.PP +.RS 4 +snapraid fix \-f FILE +.PD 0 +.PD +.RE +.PP +또는 디렉토리에 대해: +.PP +.RS 4 +snapraid fix \-f DIR/ +.PD 0 +.PD +.RE +.PP +또한 \-m, \-\-filter\-missing 옵션을 사용하여 디렉토리 내에서 실수로 +삭제된 파일만 복구할 수도 있습니다. 이 옵션은 누락된 파일만 복원하고 +다른 파일은 그대로 둡니다. +.PP +.RS 4 +snapraid fix \-m \-f DIR/ +.PD 0 +.PD +.RE +.PP +또는 모든 드라이브에서 삭제된 모든 파일을 다음으로 복구합니다: +.PP +.RS 4 +snapraid fix \-m +.PD 0 +.PD +.RE +.SS Recovering +최악의 상황이 발생하여 하나 이상의 디스크를 잃었습니다! +.PP +**패닉하지 마십시오!** 복구할 수 있습니다! +.PP +가장 먼저 해야 할 일은 디스크 어레이에 대한 추가 변경을 피하는 것입니다. +모든 원격 연결과 SnapRAID 야간 동기화 또는 스크럽을 포함한 모든 예약된 +프로세스를 비활성화하십시오. +.PP +그런 다음 다음 단계를 진행하십시오. +.SS STEP 1 \-> Reconfigure +복구할 공간이 필요하며, 이상적으로는 추가 예비 디스크에, +하지만 외부 USB 디스크 또는 원격 디스크로도 충분합니다. +.PP +SnapRAID 설정 파일을 수정하여 실패한 디스크의 \`data\` 또는 \`parity\` +옵션이 파일을 복구할 수 있는 충분한 빈 공간이 있는 위치를 +가리키도록 합니다. +.PP +예를 들어, 디스크 \`d1\`이 실패한 경우, 다음에서 변경합니다: +.PP +.RS 4 +data d1 /mnt/disk1/ +.PD 0 +.PD +.RE +.PP +다음으로: +.PP +.RS 4 +data d1 /mnt/new_spare_disk/ +.PD 0 +.PD +.RE +.PP +복구할 디스크가 패리티 디스크인 경우, 적절한 \`parity\` 옵션을 +업데이트합니다. +여러 개의 실패한 디스크가 있는 경우, 모든 구성 옵션을 업데이트합니다. +.SS STEP 2 \-> Fix +로그를 외부 파일에 저장하면서 fix 명령을 실행합니다: +.PP +.RS 4 +snapraid \-d NAME \-l fix.log fix +.PD 0 +.PD +.RE +.PP +여기서 NAME은 이전 예제의 \`d1\`과 같은 디스크 이름입니다. +복구할 디스크가 패리티 디스크인 경우, \`parity\`, \`2\-parity\` 등의 이름을 +사용합니다. +여러 개의 실패한 디스크가 있는 경우, 여러 \-d 옵션을 사용하여 +모두 지정합니다. +.PP +이 명령은 오랜 시간이 걸립니다. +.PP +fix.log 파일을 저장할 몇 기가바이트의 여유 공간이 있는지 확인하십시오. +충분한 여유 공간이 있는 디스크에서 실행하십시오. +.PP +이제 복구할 수 있는 모든 것을 복구했습니다. 일부 파일이 부분적으로 +또는 완전히 복구 불가능한 경우, \`.unrecoverable\` 확장자가 추가되어 +이름이 변경됩니다. +.PP +\`unrecoverable:\`로 시작하는 모든 줄을 확인하여 fix.log 파일에서 +복구 불가능한 모든 블록의 자세한 목록을 찾을 수 있습니다. +.PP +복구가 만족스럽지 않으면, 원하는 만큼 여러 번 재시도할 수 있습니다. +.PP +예를 들어, 마지막 \`sync\` 이후 어레이에서 파일을 제거한 경우, +일부 파일이 복구되지 않을 수 있습니다. +이 경우, \-i, \-\-import 옵션을 사용하여 \`fix\`를 재시도하고, +이 파일들이 현재 어디에 있는지 지정하여 복구 프로세스에 다시 포함시킬 +수 있습니다. +.PP +복구가 만족스럽다면 계속 진행할 수 있지만, 동기화 후에는 \`fix\` 명령을 +더 이상 재시도할 수 없다는 점에 유의하십시오! +.SS STEP 3 \-> Check +조심스러운 확인으로, 이제 \`check\` 명령을 실행하여 복구된 디스크의 +모든 것이 올바른지 확인할 수 있습니다. +.PP +.RS 4 +snapraid \-d NAME \-a check +.PD 0 +.PD +.RE +.PP +여기서 NAME은 이전 예제의 \`d1\`과 같은 디스크 이름입니다. +.TP +.B \-d 및 \-a 옵션은 SnapRAID에게 지정된 디스크만 확인하고 모든 패리티 +데이터를 무시하도록 지시합니다. +.PP +이 명령은 오랜 시간이 걸리지만, 지나치게 조심스럽지 않다면 건너뛸 수 +있습니다. +.SS STEP 4 \-> Sync +\`sync\` 명령을 실행하여 새 디스크로 어레이를 재동기화합니다. +.PP +.RS 4 +snapraid sync +.PD 0 +.PD +.RE +.PP +모든 것이 복구되면 이 명령은 즉시 완료됩니다. +.SH COMMANDS +SnapRAID는 다음을 허용하는 몇 가지 간단한 명령을 제공합니다: +.PD 0 +.IP \(bu +어레이의 상태 출력 \-> \`status\` +.IP \(bu +디스크 제어 \-> \`smart\`, \`probe\`, \`up\`, \`down\` +.IP \(bu +백업/스냅샷 생성 \-> \`sync\` +.IP \(bu +주기적으로 데이터 확인 \-> \`scrub\` +.IP \(bu +마지막 백업/스냅샷 복원 \-> \`fix\`. +.PD +.PP +명령은 소문자로 작성해야 합니다. +.SS status +디스크 어레이의 상태 요약을 출력합니다. +.PP +패리티 단편화, 확인 없이 블록이 얼마나 오래되었는지, 그리고 +스크럽 중에 발생한 모든 기록된 무단 오류에 대한 정보를 포함합니다. +.PP +제시된 정보는 마지막으로 \`sync\`를 실행했을 때를 나타냅니다. +나중에 수정된 내용은 고려되지 않습니다. +.PP +bad 블록이 감지되면 해당 블록 번호가 나열됩니다. +이들을 수정하려면 \`fix \-e\` 명령을 사용할 수 있습니다. +.PP +또한 각 블록이 마지막으로 스크럽되거나 동기화된 시간을 나타내는 +그래프를 보여줍니다. 스크럽된 블록은 \'*\', 동기화되었지만 아직 +스크럽되지 않은 블록은 \'o\'로 표시됩니다. +.PP +아무것도 수정되지 않습니다. +.SS smart +시스템의 모든 디스크에 대한 SMART 보고서를 출력합니다. +.PP +향후 1년 동안의 실패 확률 추정치를 포함하여, 의심스러운 속성을 +보이는 디스크의 유지 보수 교체를 계획할 수 있습니다. +.PP +이 확률 추정치는 다음에서 사용 가능한 Backblaze 데이터와 디스크의 +SMART 속성을 상호 연관시켜 얻습니다: +.PP +.RS 4 +https://www.backblaze.com/hard\-drive\-test\-data.html +.PD 0 +.PD +.RE +.PP +SMART가 디스크가 실패하고 있다고 보고하면, 해당 디스크에 대해 +\`FAIL\` 또는 \`PREFAIL\`이 출력되며, SnapRAID는 오류를 반환하며 종료됩니다. +이 경우, 디스크의 즉각적인 교체가 강력히 권장됩니다. +.PP +다른 가능한 상태 문자열은 다음과 같습니다: +.RS 4 +.PD 0 +.HP 4 +.I logfail +과거에 일부 속성이 임계값보다 낮았습니다. +.HP 4 +.I logerr +장치 오류 로그에 오류가 포함되어 있습니다. +.HP 4 +.I selferr +장치 자체 테스트 로그에 오류가 포함되어 있습니다. +.PD +.RE +.TP +.B \-v, \-\-verbose 옵션이 지정되면, 더 깊은 통계 분석이 제공됩니다. +이 분석은 더 많거나 적은 패리티가 필요한지 결정하는 데 도움이 될 수 있습니다. +.PP +이 명령은 \`smartctl\` 도구를 사용하며, 모든 장치에서 \`smartctl \-a\`를 +실행하는 것과 동일합니다. +.PP +장치가 올바르게 자동 감지되지 않으면, 설정 파일에서 \`smartctl\` 옵션을 +사용하여 사용자 정의 명령을 지정할 수 있습니다. +.PP +아무것도 수정되지 않습니다. +.SS probe +시스템의 모든 디스크의 POWER 상태를 출력합니다. +.PP +\`Standby\`는 디스크가 회전하지 않음을 의미합니다. \`Active\`는 +디스크가 회전하고 있음을 의미합니다. +.PP +이 명령은 \`smartctl\` 도구를 사용하며, 모든 장치에서 \`smartctl \-n standby \-i\`를 +실행하는 것과 동일합니다. +.PP +장치가 올바르게 자동 감지되지 않으면, 설정 파일에서 \`smartctl\` 옵션을 +사용하여 사용자 정의 명령을 지정할 수 있습니다. +.PP +아무것도 수정되지 않습니다. +.SS up +어레이의 모든 디스크를 회전시킵니다(spin up). +.TP +.B \-d, \-\-filter\-disk 옵션을 사용하여 특정 디스크만 회전시킬 수 있습니다. +.PP +모든 디스크를 동시에 회전시키려면 많은 전력이 필요합니다. +전원 공급 장치가 이를 지탱할 수 있는지 확인하십시오. +.PP +아무것도 수정되지 않습니다. +.SS down +어레이의 모든 디스크를 회전 중지합니다(spin down). +.PP +이 명령은 \`smartctl\` 도구를 사용하며, 모든 장치에서 \`smartctl \-s standby,now\`를 +실행하는 것과 동일합니다. +.TP +.B \-d, \-\-filter\-disk 옵션을 사용하여 특정 디스크만 회전 중지할 수 있습니다. +.PP +오류 발생 시 자동으로 회전 중지하려면, 다른 명령과 함께 \-s, \-\-spin\-down\-on\-error +옵션을 사용할 수 있습니다. 이는 오류 발생 시 수동으로 \`down\`을 실행하는 것과 +동일합니다. +.PP +아무것도 수정되지 않습니다. +.SS diff +마지막 \`sync\` 이후 수정되어 패리티 데이터를 재계산해야 하는 모든 파일을 +나열합니다. +.PP +이 명령은 파일 데이터를 확인하지 않고, 파일 타임스탬프, 크기 및 +아이노드(inode)만 확인합니다. +.PP +모든 변경된 파일을 나열한 후, 다음과 같이 그룹화된 변경 사항 요약이 +제시됩니다: +.RS 4 +.PD 0 +.HP 4 +.I equal +이전과 변경되지 않은 파일. +.HP 4 +.I added +이전에 없던 추가된 파일. +.HP 4 +.I removed +제거된 파일. +.HP 4 +.I updated +크기 또는 타임스탬프가 다른 파일, 즉 수정된 파일. +.HP 4 +.I moved +동일한 디스크의 다른 디렉토리로 이동된 파일. +이들은 이름, 크기, 타임스탬프 및 아이노드가 동일하지만 +디렉토리가 다른 것으로 식별됩니다. +.HP 4 +.I copied +동일하거나 다른 디스크에 복사된 파일. 다른 디스크로 +실제로 이동된 경우 \`removed\`에도 포함된다는 점에 유의하십시오. +이들은 이름, 크기 및 타임스탬프가 동일한 것으로 식별됩니다. +하위 초 타임스탬프(sub\-second timestamp)가 0인 경우, +이름뿐만 아니라 전체 경로가 일치해야 합니다. +.HP 4 +.I restored +아이노드는 다르지만 이름, 크기 및 타임스탬프가 일치하는 파일. +이들은 일반적으로 삭제 후 복원된 파일입니다. +.PD +.RE +.PP +\`sync\`가 필요한 경우, 프로세스 반환 코드는 기본 0 대신 2입니다. +반환 코드 1은 일반적인 오류 조건에 사용됩니다. +.PP +아무것도 수정되지 않습니다. +.SS sync +패리티 정보를 업데이트합니다. 디스크 어레이의 모든 수정된 파일을 +읽고 해당 패리티 데이터를 업데이트합니다. +.PP +이미 수행된 작업을 잃지 않고 Ctrl+C를 눌러 언제든지 이 프로세스를 +중지할 수 있습니다. +다음 실행 시 \`sync\` 프로세스는 중단된 곳에서 재개됩니다. +.PP +이 프로세스 중에 무단 또는 입출력 오류가 발견되면, +해당 블록은 bad로 표시됩니다. +.PP +파일은 경로 및/또는 아이노드로 식별되며 크기와 타임스탬프로 +확인됩니다. +파일 크기 또는 타임스탬프가 다르면 전체 파일에 대해 패리티 데이터가 +재계산됩니다. +파일이 동일한 디스크에서 이동되거나 이름이 변경되고 동일한 아이노드를 +유지하면 패리티는 재계산되지 않습니다. +파일이 다른 디스크로 이동되면 패리티는 재계산되지만, 이전에 계산된 +해시 정보는 유지됩니다. +.PP +\`content\` 및 \`parity\` 파일은 필요한 경우 수정됩니다. +어레이의 파일은 수정되지 않습니다. +.SS scrub +어레이를 스크럽하여 데이터 및 패리티 디스크의 무단 또는 입출력 오류를 +확인합니다. +.PP +각 호출은 이전에 10일 이내에 스크럽된 데이터를 제외하고 어레이의 +약 8%를 확인합니다. +이는 일주일에 한 번 스크럽하면 모든 데이터 비트가 적어도 3개월마다 +한 번씩 확인됨을 의미합니다. +.TP +.B \-p, \-\-plan 옵션을 사용하여 다른 스크럽 계획 또는 양을 정의할 수 있으며, +다음 값을 허용합니다: +bad \- bad로 표시된 블록 스크럽. +new \- 동기화되었지만 아직 스크럽되지 않은 블록 스크럽. +full \- 모든 것 스크럽. +0\-100 \- 지정된 비율의 블록 스크럽. +.PP +백분율 양을 지정하면, \-o, \-\-older\-than 옵션을 사용하여 블록이 +얼마나 오래되었는지 정의할 수도 있습니다. +가장 오래된 블록이 먼저 스크럽되어 최적의 확인을 보장합니다. +동기화되었지만 아직 스크럽되지 않은 블록만 스크럽하려면, +\`\-p new\` 옵션을 사용하십시오. +.PP +스크럽 상태의 세부 정보를 얻으려면 \`status\` 명령을 사용하십시오. +.PP +발견된 모든 무단 또는 입출력 오류에 대해, 해당 블록은 \`content\` 파일에 +bad로 표시됩니다. +이러한 bad 블록은 \`status\`에 나열되며 \`fix \-e\`로 수정할 수 있습니다. +수정 후, 다음 스크럽 시에 다시 확인되며, 수정된 것으로 발견되면 bad +표시는 제거됩니다. +bad 블록만 스크럽하려면 \`scrub \-p bad\` 명령을 사용할 수 있습니다. +.PP +동기화되지 않은 데이터로 인한 보고된 오류를 피하기 위해 동기화된 +어레이에서만 \`scrub\`을 실행하는 것이 좋습니다. 이러한 오류는 무단 +오류가 아닌 것으로 인식되며, 블록은 bad로 표시되지 않지만, +이러한 오류는 명령의 출력에 보고됩니다. +.PP +\`content\` 파일은 각 블록의 마지막 확인 시간을 업데이트하고 bad 블록을 +표시하기 위해 수정됩니다. +\`parity\` 파일은 수정되지 않습니다. +어레이의 파일은 수정되지 않습니다. +.SS fix +모든 파일과 패리티 데이터를 수정합니다. +.PP +모든 파일과 패리티 데이터는 마지막 \`sync\`에 저장된 스냅샷 +상태와 비교됩니다. +차이가 발견되면 저장된 스냅샷으로 되돌려집니다. +.PP +**경고!** \`fix\` 명령은 오류와 의도적인 수정 사이를 구별하지 +않습니다. 파일 상태를 무조건 마지막 \`sync\`로 되돌립니다. +.PP +다른 옵션이 지정되지 않으면 전체 어레이가 처리됩니다. +필터 옵션을 사용하여 처리할 파일 또는 디스크의 하위 집합을 선택하십시오. +.PP +\`sync\` 및 \`scrub\` 중에 bad로 표시된 블록만 수정하려면, +\-e, \-\-filter\-error 옵션을 사용하십시오. +다른 필터 옵션과 달리, 이 옵션은 최신 \`sync\` 이후 변경되지 않은 +파일에만 수정을 적용합니다. +.PP +SnapRAID는 수정할 수 없는 모든 파일에 \`.unrecoverable\` 확장자를 +추가하여 이름을 변경합니다. +.PP +수정하기 전에, 전체 어레이를 스캔하여 마지막 \`sync\` 이후 이동된 +파일을 찾습니다. +이 파일들은 이름과 디렉토리를 무시하고 타임스탬프로 식별되며, +필요한 경우 복구 프로세스에 사용됩니다. +일부 파일을 어레이 외부로 이동한 경우, \-i, \-\-import 옵션을 사용하여 +추가로 스캔할 디렉토리를 지정할 수 있습니다. +.PP +파일은 아이노드가 아닌 경로로만 식별됩니다. +.PP +\`content\` 파일은 수정되지 않습니다. +\`parity\` 파일은 필요한 경우 수정됩니다. +어레이의 파일은 필요한 경우 수정됩니다. +.SS check +모든 파일과 패리티 데이터를 확인합니다. +.PP +\`fix\`처럼 작동하지만, 복구를 시뮬레이션할 뿐이며 어레이에 +어떤 변경 사항도 기록되지 않습니다. +.PP +이 명령은 주로 복구 프로세스 후 또는 기타 특별한 조건에서와 같이 +수동 확인을 위한 것입니다. +주기적이고 예약된 확인을 위해서는 \`scrub\`을 사용하십시오. +.TP +.B \-a, \-\-audit\-only 옵션을 사용하면 파일 데이터만 확인하고 +패리티 데이터는 무시하여 실행 속도를 높일 수 있습니다. +.PP +파일은 아이노드가 아닌 경로로만 식별됩니다. +.PP +아무것도 수정되지 않습니다. +.SS list +마지막 \`sync\` 시점에 어레이에 포함된 모든 파일을 나열합니다. +.TP +.B \-v 또는 \-\-verbose를 사용하면 하위 초 시간도 표시됩니다. +.PP +아무것도 수정되지 않습니다. +.SS dup +모든 중복 파일을 나열합니다. 두 파일의 해시가 일치하면 동일한 것으로 +간주됩니다. 파일 데이터는 읽지 않고, 미리 계산된 해시만 +사용됩니다. +.PP +아무것도 수정되지 않습니다. +.SS pool +\`pooling\` 디렉토리에서 디스크 어레이의 모든 파일에 대한 가상 뷰를 +생성하거나 업데이트합니다. +.PP +파일은 복사되지 않고 심볼릭 링크를 사용하여 연결됩니다. +.PP +업데이트 시, 모든 기존 심볼릭 링크와 빈 하위 디렉토리는 삭제되고 +어레이의 새 뷰로 대체됩니다. 다른 일반 파일은 제자리에 남습니다. +.PP +풀 디렉토리 외부에서는 아무것도 수정되지 않습니다. +.SS devices +어레이에서 사용되는 저수준(low\-level) 장치를 출력합니다. +.PP +이 명령은 어레이의 장치 연결을 표시하며, 주로 스크립트 인터페이스를 +위한 것입니다. +.PP +처음 두 열은 저수준 장치 ID 및 경로입니다. +다음 두 열은 고수준(high\-level) 장치 ID 및 경로입니다. +마지막 열은 어레이의 디스크 이름입니다. +.PP +대부분의 경우, 어레이의 각 디스크에 대해 하나의 저수준 장치가 +있지만, 일부 더 복잡한 구성에서는 단일 어레이 디스크에 의해 사용되는 +여러 저수준 장치가 있을 수 있습니다. +.PP +아무것도 수정되지 않습니다. +.SS touch +하위 초 타임스탬프가 0으로 설정된 모든 파일에 임의의 하위 초 타임스탬프를 +설정합니다. +.PP +이는 타임스탬프를 거의 고유하게 만들어 가능한 중복을 줄이므로, +SnapRAID가 이동되거나 복사된 파일을 인식하는 능력을 향상시킵니다. +.PP +더 구체적으로, 하위 초 타임스탬프가 0이 아닌 경우, 이동되거나 복사된 +파일은 이름, 크기 및 타임스탬프가 일치하면 그렇게 식별됩니다. +하위 초 타임스탬프가 0인 경우, 전체 경로, 크기 및 타임스탬프가 +모두 일치하는 경우에만 복사본으로 간주됩니다. +.PP +초 단위 정밀도의 타임스탬프는 수정되지 않으므로, 파일의 모든 날짜와 +시간은 보존됩니다. +.SS rehash +전체 어레이의 재해시(rehash)를 예약합니다. +.PP +이 명령은 사용되는 해시 종류를 변경하며, 일반적으로 32비트 시스템에서 +64비트 시스템으로 업그레이드할 때 MurmurHash3에서 더 빠른 SpookyHash로 +전환하기 위해 사용됩니다. +.PP +이미 최적의 해시를 사용하고 있다면, 이 명령은 아무것도 하지 않고 +조치가 필요하지 않음을 알려줍니다. +.PP +재해시는 즉시 수행되지 않고 \`sync\` 및 \`scrub\` 중에 점진적으로 +진행됩니다. +.PP +\`status\`를 사용하여 재해시 상태를 확인할 수 있습니다. +.PP +재해시 중에도 SnapRAID는 전체 기능을 유지하며, 유일한 예외는 +\`dup\`가 다른 해시를 사용하는 중복 파일을 감지할 수 없다는 것입니다. +.SH OPTIONS +SnapRAID는 다음 옵션을 제공합니다: +.TP +.B \-c, \-\-conf CONFIG +사용할 설정 파일을 선택합니다. 지정하지 않으면 Unix에서는 +\`/usr/local/etc/snapraid.conf\` 파일이 존재하면 사용하고, +그렇지 않으면 \`/etc/snapraid.conf\`를 사용합니다. +Windows에서는 \`snapraid.exe\`와 같은 디렉토리에 있는 +\`snapraid.conf\` 파일을 사용합니다. +.TP +.B \-f, \-\-filter PATTERN +\`check\` 및 \`fix\`에서 처리할 파일을 필터링합니다. +지정된 패턴과 일치하는 파일만 처리됩니다. +이 옵션은 여러 번 사용될 수 있습니다. +패턴 사양에 대한 자세한 내용은 PATTERN 섹션을 참조하십시오. +Unix에서는 글로빙 문자가 사용되는 경우 따옴표로 묶어야 합니다. +이 옵션은 \`check\` 및 \`fix\`에서만 사용할 수 있습니다. +\`sync\` 및 \`scrub\`은 항상 전체 어레이를 처리하므로 사용할 수 없습니다. +.TP +.B \-d, \-\-filter\-disk NAME +\`check\`, \`fix\`, \`up\`, 및 \`down\`에서 처리할 디스크를 필터링합니다. +설정 파일에 정의된 디스크 이름을 지정해야 합니다. +또한 \`parity\`, \`2\-parity\`, \`3\-parity\` 등의 이름으로 패리티 디스크를 +지정하여 특정 패리티 디스크로 작업을 제한할 수 있습니다. +여러 \-\-filter, \-\-filter\-disk, \-\-filter\-missing 옵션을 결합하면, +모든 필터와 일치하는 파일만 선택됩니다. +이 옵션은 여러 번 사용될 수 있습니다. +이 옵션은 \`check\`, \`fix\`, \`up\`, 및 \`down\`에서만 사용할 수 있습니다. +\`sync\` 및 \`scrub\`은 항상 전체 어레이를 처리하므로 사용할 수 없습니다. +.TP +.B \-m, \-\-filter\-missing +\`check\` 및 \`fix\`에서 처리할 파일을 필터링합니다. +어레이에서 누락되거나 삭제된 파일만 처리됩니다. +\`fix\`와 함께 사용하면, 이 옵션은 \`undelete\` 명령 역할을 합니다. +여러 \-\-filter, \-\-filter\-disk, \-\-filter\-missing 옵션을 결합하면, +모든 필터와 일치하는 파일만 선택됩니다. +이 옵션은 \`check\` 및 \`fix\`에서만 사용할 수 있습니다. +\`sync\` 및 \`scrub\`은 항상 전체 어레이를 처리하므로 사용할 수 없습니다. +.TP +.B \-e, \-\-filter\-error +\`check\` 및 \`fix\`에서 오류가 있는 파일을 처리합니다. +\`status\`에 나열된 대로 \`sync\` 및 \`scrub\` 중에 무단 또는 입출력 오류가 +표시된 블록을 가진 파일만 처리합니다. +이 옵션은 \`check\` 및 \`fix\`에서만 사용할 수 있습니다. +.TP +.B \-p, \-\-plan PERC|bad|new|full +스크럽 계획을 선택합니다. PERC가 0에서 100 사이의 숫자 값인 경우, +스크럽할 블록의 백분율로 해석됩니다. +백분율 대신 계획을 지정할 수 있습니다: +\`bad\`는 bad 블록을 스크럽하고, \`new\`는 아직 스크럽되지 않은 +막 동기화된 블록을 스크럽하며, \`full\`은 모든 것을 스크럽합니다. +이 옵션은 \`scrub\`에서만 사용할 수 있습니다. +.TP +.B \-o, \-\-older\-than DAYS +\`scrub\`에서 처리할 어레이의 가장 오래된 부분을 선택합니다. +DAYS는 블록이 스크럽되어야 하는 최소 일령(days)이며, +기본값은 10입니다. +bad로 표시된 블록은 이 옵션에 관계없이 항상 스크럽됩니다. +이 옵션은 \`scrub\`에서만 사용할 수 있습니다. +.TP +.B \-a, \-\-audit\-only +\`check\`에서 패리티 데이터를 확인하지 않고 파일의 해시를 +확인합니다. +파일 데이터만 확인하는 데 관심이 있다면, 이 옵션은 확인 프로세스의 +속도를 상당히 높일 수 있습니다. +이 옵션은 \`check\`에서만 사용할 수 있습니다. +.TP +.B \-h, \-\-pre\-hash +\`sync\`에서 패리티 계산 전에 추가 확인을 위해 모든 새 데이터에 대한 +예비 해시 단계를 실행합니다. +일반적으로 \`sync\`에서는 예비 해시가 수행되지 않으며, 새 데이터는 +패리티 계산 직전에 처음 읽을 때 해시됩니다. +이 프로세스는 모든 디스크가 회전하고 CPU가 바쁜, 시스템이 +과부하 상태일 때 발생합니다. +이는 기계의 극한 조건이며, 잠재된 하드웨어 문제가 있는 경우 +데이터가 아직 해시되지 않았기 때문에 무단 오류가 감지되지 않고 +지나갈 수 있습니다. +이러한 위험을 피하려면, \`pre\-hash\` 모드를 활성화하여 모든 데이터를 +두 번 읽어 무결성을 보장할 수 있습니다. +이 옵션은 또한 어레이 내에서 이동된 파일을 확인하여 이동 작업이 +성공했는지 확인하고, 필요한 경우 계속 진행하기 전에 fix 작업을 +실행할 수 있도록 합니다. +이 옵션은 \`sync\`에서만 사용할 수 있습니다. +.TP +.B \-i, \-\-import DIR +지정된 디렉토리에서 마지막 \`sync\` 이후 어레이에서 삭제된 파일을 +가져옵니다. +이러한 파일이 여전히 있는 경우, 이들은 \`check\` 및 \`fix\`에 의해 +복구 프로세스를 개선하는 데 사용될 수 있습니다. +파일은 하위 디렉토리를 포함하여 읽히며, 이름에 관계없이 +식별됩니다. +이 옵션은 \`check\` 및 \`fix\`에서만 사용할 수 있습니다. +.TP +.B \-s, \-\-spin\-down\-on\-error +오류 발생 시, 0이 아닌 상태 코드로 종료하기 전에 관리되는 모든 +디스크를 회전 중지합니다. 이는 중단된 작업 후에 드라이브가 계속 +활성 상태로 회전하는 것을 방지하여 불필요한 열 축적 및 전력 +소비를 방지하는 데 도움이 됩니다. 명령이 실패하더라도 디스크가 +안전하게 중지되도록 이 옵션을 사용하십시오. +.TP +.B \-w, \-\-bw\-limit RATE +모든 디스크에 대한 전역 대역폭 제한을 적용합니다. RATE는 +초당 바이트 수입니다. K, M, 또는 G와 같은 승수(예: \-\-bw\-limit 1G)를 +지정할 수 있습니다. +.TP +.B \-A, \-\-stats +추가 정보를 보여주는 확장된 상태 보기를 활성화합니다. +화면에는 두 개의 그래프가 표시됩니다: +첫 번째 그래프는 각 디스크에 대한 버퍼링된 스트라이프 수와 함께 +해당 디스크에서 현재 액세스 중인 파일의 경로를 보여줍니다. +일반적으로 가장 느린 디스크는 사용 가능한 버퍼가 없으며, +이는 달성 가능한 최대 대역폭을 결정합니다. +두 번째 그래프는 지난 100초 동안 대기하는 데 소비된 시간의 +백분율을 보여줍니다. 가장 느린 디스크가 대부분의 대기 시간을 +유발할 것으로 예상되며, 다른 디스크는 버퍼링된 스트라이프를 +사용할 수 있으므로 대기 시간이 거의 또는 전혀 없어야 합니다. +이 그래프는 또한 해시 계산 및 RAID 계산을 위해 소비된 시간을 +보여줍니다. +모든 계산은 디스크 작업과 병렬로 실행됩니다. +따라서 적어도 하나의 디스크에 대해 측정 가능한 대기 시간이 +있는 한, 이는 CPU가 워크로드에 충분히 빠르다는 것을 나타냅니다. +.TP +.B \-Z, \-\-force\-zero +이전에 0이 아니었던 크기가 0인 파일의 동기화라는 안전하지 않은 +작업을 강제합니다. +SnapRAID가 이러한 조건을 감지하면, 이 옵션을 지정하지 않는 한 +진행을 중지합니다. +이는 시스템 충돌 후 일부 액세스된 파일이 잘렸을 때 쉽게 감지할 +수 있도록 합니다. +이는 ext3/ext4 파일 시스템을 사용하는 Linux에서 가능한 조건입니다. +이 옵션은 \`sync\`에서만 사용할 수 있습니다. +.TP +.B \-E, \-\-force\-empty +원래 디스크에 있던 모든 파일이 누락된 디스크의 동기화라는 +안전하지 않은 작업을 강제합니다. +SnapRAID가 디스크에 원래 있던 모든 파일이 누락되거나 다시 +작성되었음을 감지하면, 이 옵션을 지정하지 않는 한 진행을 +중지합니다. +이는 데이터 파일 시스템이 마운트되지 않았을 때 쉽게 감지할 +수 있도록 합니다. +이 옵션은 \`sync\`에서만 사용할 수 있습니다. +.TP +.B \-U, \-\-force\-uuid +UUID가 변경된 디스크를 사용하여 동기화, 확인 및 수정을 강제하는 +안전하지 않은 작업입니다. +SnapRAID가 일부 디스크의 UUID가 변경되었음을 감지하면, +이 옵션을 지정하지 않는 한 진행을 중지합니다. +이는 디스크가 잘못된 마운트 지점에 마운트되었을 때 감지할 +수 있도록 합니다. +그러나 단일 패리티를 사용하는 경우 하나의 UUID 변경이 허용되며, +여러 패리티를 사용하는 경우 더 많은 변경이 허용됩니다. 이는 +복구 후 디스크를 교체할 때의 일반적인 경우이기 때문입니다. +이 옵션은 \`sync\`, \`check\`, 또는 \`fix\`에서만 사용할 수 있습니다. +.TP +.B \-D, \-\-force\-device +액세스할 수 없는 디스크 또는 동일한 물리적 장치에 있는 디스크로 +수정을 강제하는 안전하지 않은 작업입니다. +예를 들어, 두 개의 데이터 디스크를 잃고 첫 번째 디스크만 +복구하기 위해 예비 디스크가 있는 경우, 두 번째 액세스할 수 없는 +디스크를 무시할 수 있습니다. +또는 이미 사용 중인 디스크에 남은 여유 공간에 디스크를 복구하려는 +경우, 동일한 물리적 장치를 공유합니다. +이 옵션은 \`fix\`에서만 사용할 수 있습니다. +.TP +.B \-N, \-\-force\-nocopy +\`sync\`, \`check\`, 및 \`fix\`에서 복사 감지 발견법(heuristic)을 +비활성화합니다. +이 옵션이 없으면 SnapRAID는 이름, 크기 및 타임스탬프와 같은 +동일한 속성을 가진 파일이 동일한 데이터를 가진 복사본이라고 +가정합니다. +이는 한 디스크에서 다른 디스크로 복사되거나 이동된 파일을 +식별하고, 이미 계산된 해시 정보를 재사용하여 무단 오류를 +감지하거나 누락된 파일을 복구할 수 있도록 합니다. +일부 드문 경우에 이 동작은 오탐(false positives) 또는 많은 +해시 확인으로 인한 느린 프로세스를 초래할 수 있으며, 이 옵션을 +사용하면 이러한 문제를 해결할 수 있습니다. +이 옵션은 \`sync\`, \`check\`, 및 \`fix\`에서만 사용할 수 있습니다. +.TP +.B \-F, \-\-force\-full +\`sync\`에서 패리티의 전체 재계산을 강제합니다. +이 옵션은 새 패리티 수준을 추가하거나, 더 최근의 패리티 데이터를 +사용하여 이전 content 파일로 되돌렸을 때 사용할 수 있습니다. +처음부터 패리티를 다시 생성하는 대신, 이 옵션을 사용하면 +content 파일에 있는 해시를 재사용하여 데이터를 검증하고 +기존 패리티 데이터를 사용하여 \`sync\` 프로세스 중에 데이터 보호를 +유지할 수 있습니다. +이 옵션은 \`sync\`에서만 사용할 수 있습니다. +.TP +.B \-R, \-\-force\-realloc +\`sync\`에서 파일의 전체 재할당 및 패리티 재빌드를 강제합니다. +이 옵션은 content 파일에 있는 해시를 재사용하여 데이터를 +검증하면서 단편화를 제거하고 모든 파일을 완전히 재할당하는 데 +사용될 수 있습니다. +이 옵션은 \`sync\`에서만 사용할 수 있습니다. +**경고!** 이 옵션은 전문가 전용이며, 사용하지 않는 것이 +강력히 권장됩니다. +\`sync\` 작업 중에는 데이터 보호가 없습니다. +.TP +.B \-l, \-\-log FILE +지정된 파일에 자세한 로그를 기록합니다. +이 옵션을 지정하지 않으면 예상치 못한 오류가 화면에 출력되어, +많은 오류가 발생하는 경우 과도한 출력이 발생할 수 있습니다. +\-l, \-\-log가 지정되면 SnapRAID가 중지되는 치명적인 오류만 +화면에 출력됩니다. +경로가 \'>>\'로 시작하면 파일이 추가 모드로 열립니다. +이름의 \'%D\'와 \'%T\'는 YYYYMMDD 및 HHMMSS 형식의 날짜 및 +시간으로 대체됩니다. Windows 배치 파일에서는 \'%\' 문자를 +두 배로 늘려야 합니다(예: result\-%%D.log). \'>>\'를 사용하려면 +이름을 따옴표로 묶어야 합니다(예: \`\[dq]>>result.log\[dq]\`). +로그를 표준 출력 또는 표준 오류로 출력하려면 각각 \`\[dq]>&1\[dq]\` 및 \`\[dq]>&2\[dq]\`를 +사용할 수 있습니다. +로그 태그 설명은 snapraid_log.txt 파일 또는 man 페이지를 참조하십시오. +.TP +.B \-L, \-\-error\-limit NUMBER +실행을 중지하기 전에 새로운 오류 제한을 설정합니다. +기본적으로 SnapRAID는 100개 이상의 입출력 오류가 발생하면 중지됩니다. +이는 디스크가 실패할 가능성이 있음을 나타냅니다. +이 옵션은 \`sync\` 및 \`scrub\`에 영향을 미치며, 첫 번째 디스크 오류 +세트 후에 계속 진행하여 작업을 완료하려고 시도할 수 있도록 +허용합니다. +그러나 \`check\` 및 \`fix\`는 항상 첫 번째 오류에서 중지됩니다. +.TP +.B \-S, \-\-start BLKSTART +지정된 블록 번호부터 처리를 시작합니다. +이는 손상된 디스크의 경우 특정 블록을 다시 확인하거나 수정하는 데 +유용할 수 있습니다. +이 옵션은 주로 고급 수동 복구를 위한 것입니다. +.TP +.B \-B, \-\-count BLKCOUNT +지정된 수의 블록만 처리합니다. +이 옵션은 주로 고급 수동 복구를 위한 것입니다. +.TP +.B \-C, \-\-gen\-conf CONTENT +기존 content 파일에서 더미 설정 파일을 생성합니다. +설정 파일은 표준 출력으로 작성되며 기존 파일을 덮어쓰지 않습니다. +이 설정 파일에는 전체 시스템을 잃을 경우 디스크 마운트 지점을 +재구성하는 데 필요한 정보도 포함되어 있습니다. +.TP +.B \-v, \-\-verbose +화면에 더 많은 정보를 출력합니다. +한 번 지정하면 제외된 파일 및 추가 통계를 출력합니다. +이 옵션은 로그 파일에는 영향을 미치지 않습니다. +.TP +.B \-q, \-\-quiet +화면에 더 적은 정보를 출력합니다. +한 번 지정하면 진행률 표시줄을 제거하고, 두 번 지정하면 +실행 중인 작업을 제거하며, 세 번 지정하면 정보 메시지를 +제거하고, 네 번 지정하면 상태 메시지를 제거합니다. +치명적인 오류는 항상 화면에 출력됩니다. +이 옵션은 로그 파일에는 영향을 미치지 않습니다. +.TP +.B \-H, \-\-help +간단한 도움말 화면을 출력합니다. +.TP +.B \-V, \-\-version +프로그램 버전을 출력합니다. +.SH CONFIGURATION +SnapRAID는 디스크 어레이의 위치와 패리티 정보를 저장할 위치를 +알기 위해 설정 파일이 필요합니다. +.PP +Unix에서는 \`/usr/local/etc/snapraid.conf\` 파일이 존재하면 사용하고, +그렇지 않으면 \`/etc/snapraid.conf\`를 사용합니다. +Windows에서는 \`snapraid.exe\`와 같은 디렉토리에 있는 +\`snapraid.conf\` 파일을 사용합니다. +.PP +다음 옵션이 포함되어야 합니다(대소문자 구분): +.SS parity FILE [,FILE] ... +패리티 정보를 저장하는 데 사용할 파일을 정의합니다. +패리티는 RAID5와 유사하게 단일 디스크 오류로부터 보호를 +가능하게 합니다. +.PP +여러 파일을 지정할 수 있으며, 이들은 서로 다른 디스크에 +있어야 합니다. +하나의 파일이 더 이상 커질 수 없을 때 다음 파일이 사용됩니다. +총 사용 가능한 공간은 어레이에서 가장 큰 데이터 디스크보다 +적어도 커야 합니다. +.PP +나중에 추가 패리티 파일을 추가할 수 있지만, 순서를 바꾸거나 +제거할 수는 없습니다. +.PP +패리티 디스크를 패리티용으로 예약하면 단편화되지 않아 성능이 +향상됩니다. +.PP +Windows에서는 디스크가 가득 찼다는 경고를 피하기 위해 각 디스크에 +256MB가 사용되지 않은 채로 남습니다. +.PP +이 옵션은 필수이며 한 번만 사용할 수 있습니다. +.SS (2,3,4,5,6)\-parity FILE [,FILE] ... +추가 패리티 정보를 저장하는 데 사용할 파일을 정의합니다. +.PP +지정된 각 패리티 수준에 대해 하나의 추가 보호 수준이 +활성화됩니다: +.PD 0 +.IP \(bu +2\-parity는 RAID6 이중 패리티를 활성화합니다. +.IP \(bu +3\-parity는 삼중 패리티를 활성화합니다. +.IP \(bu +4\-parity는 쿼드(4중) 패리티를 활성화합니다. +.IP \(bu +5\-parity는 펜타(5중) 패리티를 활성화합니다. +.IP \(bu +6\-parity는 헥사(6중) 패리티를 활성화합니다. +.PD +.PP +각 패리티 수준은 모든 이전 패리티 수준의 존재를 +필요로 합니다. +.PP +\`parity\` 옵션과 동일한 고려 사항이 적용됩니다. +.PP +이 옵션은 선택 사항이며 한 번만 사용할 수 있습니다. +.SS z\-parity FILE [,FILE] ... +삼중 패리티를 저장하는 대체 파일 및 형식을 정의합니다. +.PP +이 옵션은 \'3\-parity\'의 대안이며, 주로 SSSE3 명령어 세트를 지원하지 +않는 ARM 또는 AMD Phenom, Athlon, Opteron과 같은 저가형 CPU를 +위한 것입니다. 이러한 경우 더 나은 성능을 제공합니다. +.PP +이 형식은 ZFS RAIDZ3에서 사용되는 것과 유사하지만 더 빠릅니다. +ZFS와 마찬가지로 삼중 패리티 이상에서는 작동하지 않습니다. +.PP +\'3\-parity\'를 사용할 때 성능 향상을 위해 \'z\-parity\' 형식을 사용하는 +것이 권장되는 경우 경고를 받게 됩니다. +.PP +원하는 z\-parity 또는 3\-parity 파일로 설정 파일을 조정하고 +\'fix\'를 사용하여 다시 생성함으로써 한 형식에서 다른 형식으로 +변환할 수 있습니다. +.SS content FILE +디스크 어레이에 있는 모든 파일의 목록과 체크섬을 저장하는 데 사용할 +파일을 정의합니다. +.PP +데이터, 패리티 또는 사용 가능한 다른 디스크에 배치할 수 있습니다. +데이터 디스크를 사용하는 경우, 이 파일은 \`sync\` 프로세스에서 +자동으로 제외됩니다. +.PP +이 옵션은 필수이며 동일한 파일의 여러 복사본을 저장하기 위해 +여러 번 사용될 수 있습니다. +.PP +사용된 각 패리티 디스크에 대해 최소한 하나의 복사본을 +저장해야 하며, 하나를 더 추가해야 합니다. 추가 복사본을 +사용해도 해롭지 않습니다. +.SS data NAME DIR +어레이의 데이터 디스크의 이름과 마운트 지점을 정의합니다. +NAME은 디스크를 식별하는 데 사용되며 고유해야 합니다. DIR은 +파일 시스템에서 디스크의 마운트 지점입니다. +.PP +NAME을 고정된 상태로 유지하는 한, 필요에 따라 마운트 지점을 +변경할 수 있습니다. +.PP +어레이의 각 데이터 디스크에 대해 하나의 옵션을 사용해야 합니다. +.PP +나중에 설정 파일에서 직접 NAME을 변경하고 \'sync\' 명령을 +실행하여 디스크의 이름을 바꿀 수 있습니다. +이름 변경의 경우, 디스크의 저장된 UUID를 사용하여 연결됩니다. +.SS nohidden +모든 숨겨진 파일 및 디렉토리를 제외합니다. +Unix에서는 숨겨진 파일은 \'.\'으로 시작하는 파일입니다. +Windows에서는 숨김 속성을 가진 파일입니다. +.SS exclude/include PATTERN +sync 프로세스에서 제외하거나 포함할 파일 또는 디렉토리 패턴을 +정의합니다. +모든 패턴은 지정된 순서대로 처리됩니다. +.PP +일치하는 첫 번째 패턴이 \`exclude\` 패턴이면 파일은 제외됩니다. +\`include\` 패턴이면 파일은 포함됩니다. +일치하는 패턴이 없으면, 지정된 마지막 패턴이 \`include\`이면 +파일은 제외되고, \`exclude\`이면 포함됩니다. +.PP +패턴 사양에 대한 자세한 내용은 PATTERN 섹션을 참조하십시오. +.PP +이 옵션은 여러 번 사용될 수 있습니다. +.SS blocksize SIZE_IN_KIBIBYTES +패리티의 기본 블록 크기를 키비바이트(kibibyte) 단위로 정의합니다. +1키비바이트는 1024바이트입니다. +.PP +기본 블록 크기는 256이며, 대부분의 경우에 작동해야 합니다. +.PP +**경고!** 이 옵션은 전문가 전용이며, 이 값을 변경하지 않는 것이 +강력히 권장됩니다. 나중에 이 값을 변경하려면 전체 패리티를 +다시 생성해야 합니다! +.PP +다른 블록 크기를 사용하는 이유는 수백만 개의 작은 파일이 많은 +경우입니다. +.PP +각 파일에 대해, 몇 바이트만 있어도 전체 패리티 블록이 할당되며, +파일이 많으면 상당한 미사용 패리티 공간이 발생할 수 있습니다. +패리티 디스크를 완전히 채우면 데이터 디스크에 더 이상 파일을 +추가할 수 없습니다. +그러나 낭비된 패리티는 데이터 디스크 전체에 걸쳐 축적되지 않습니다. +데이터 디스크의 많은 파일로 인해 발생하는 낭비된 공간은 다른 +데이터 디스크가 아닌 해당 데이터 디스크의 데이터 양만 제한합니다. +.PP +대략적으로, 각 파일에 대해 블록 크기의 절반이 낭비된다고 가정할 수 +있습니다. 예를 들어, 100,000개의 파일과 256KiB 블록 크기로 +12.8GB의 패리티가 낭비되며, 이는 데이터 디스크에서 12.8GB의 사용 가능한 +공간이 줄어들 수 있음을 의미합니다. +.PP +\`status\`를 사용하여 각 디스크의 낭비된 공간의 양을 확인할 수 있습니다. +이는 데이터 디스크에 비워 두거나 어레이에 포함되지 않은 파일에 +사용해야 하는 공간의 양입니다. +이 값이 음수이면 패리티를 거의 채우고 있음을 의미하며, 여전히 +낭비할 수 있는 공간을 나타냅니다. +.PP +이 문제를 피하려면 패리티에 대해 더 큰 파티션을 사용할 수 있습니다. +예를 들어, 패리티 파티션이 데이터 디스크보다 12.8GB 더 큰 경우, +각 데이터 디스크에 최대 100,000개의 파일을 낭비되는 공간 없이 +처리할 수 있는 충분한 추가 공간이 있습니다. +.PP +Linux에서 더 큰 패리티 파티션을 얻는 트릭은 다음 명령으로 포맷하는 +것입니다: +.PP +.RS 4 +mkfs.ext4 \-m 0 \-T largefile4 DEVICE +.PD 0 +.PD +.RE +.PP +이로 인해 약 1.5%의 추가 공간이 발생하며, 4TB 디스크의 경우 약 60GB로, +낭비되는 공간 없이 각 데이터 디스크에 약 460,000개의 파일을 +허용합니다. +.SS hashsize SIZE_IN_BYTES +저장된 블록의 해시 크기를 바이트 단위로 정의합니다. +.PP +기본 해시 크기는 16바이트(128비트)이며, 대부분의 경우에 작동해야 합니다. +.PP +**경고!** 이 옵션은 전문가 전용이며, 이 값을 변경하지 않는 것이 +강력히 권장됩니다. 나중에 이 값을 변경하려면 전체 패리티를 +다시 생성해야 합니다! +.PP +다른 해시 크기를 사용하는 이유는 시스템의 메모리가 제한적인 경우입니다. +경험상 SnapRAID는 어레이의 16TB 데이터당 일반적으로 1GiB의 RAM을 +필요로 합니다. +.PP +구체적으로, 데이터의 해시를 저장하기 위해 SnapRAID는 대략 +TS*(1+HS)/BS 바이트의 RAM을 필요로 합니다. +여기서 TS는 디스크 어레이의 총 크기(바이트), BS는 블록 크기(바이트), +HS는 해시 크기(바이트)입니다. +.PP +예를 들어, 4TB 디스크 8개, 블록 크기 256KiB +(1KiB = 1024바이트), 해시 크기 16인 경우 다음과 같습니다: +.PP +RAM = (8 * 4 * 10^12) * (1+16) / (256 * 2^10) = 1.93 GiB +.PD 0 +.PD +.PP +해시 크기를 8로 전환하면 다음과 같습니다: +.PP +RAM = (8 * 4 * 10^12) * (1+8) / (256 * 2^10) = 1.02 GiB +.PD 0 +.PD +.PP +블록 크기를 512로 전환하면 다음과 같습니다: +.PP +RAM = (8 * 4 * 10^12) * (1+16) / (512 * 2^10) = 0.96 GiB +.PD 0 +.PD +.PP +해시 크기를 8로, 블록 크기를 512로 모두 전환하면 다음과 같습니다: +.PP +RAM = (8 * 4 * 10^12) * (1+8) / (512 * 2^10) = 0.51 GiB +.PD 0 +.PD +.SS autosave SIZE_IN_GIGABYTES +지정된 GB 양이 처리된 후 동기화 또는 스크럽 시 상태를 자동으로 저장합니다. +이 옵션은 기계 충돌 또는 기타 이벤트로 인해 중단된 경우 긴 \`sync\` +명령을 처음부터 다시 시작하는 것을 방지하는 데 유용합니다. +.SS temp_limit TEMPERATURE_CELSIUS +허용되는 최대 디스크 온도를 섭씨로 설정합니다. 지정되면 SnapRAID는 +smartctl 도구를 사용하여 주기적으로 모든 디스크의 온도를 확인합니다. +SnapRAID가 작동하는 동안 현재 디스크 온도가 표시됩니다. +어떤 디스크라도 이 제한을 초과하면 모든 작업이 중지되고, 디스크는 +\`temp_sleep\` 옵션으로 정의된 기간 동안 회전 중지됩니다(대기 모드로 +전환됨). 절전 기간 후 작업이 재개되며, 온도 제한에 다시 도달하면 +다시 일시 중지될 수 있습니다. +.PP +작동 중에 SnapRAID는 각 디스크의 가열 곡선을 분석하고 활동이 계속되면 +도달할 것으로 예상되는 장기 정상 온도를 추정합니다. +추정은 디스크 온도가 네 번 증가한 후에만 수행되어, 신뢰할 수 있는 +추세를 설정하기에 충분한 데이터 포인트가 확보되도록 합니다. +이 예측된 정상 온도는 현재 값 옆에 괄호 안에 표시되며, 시스템의 +냉각이 적절한지 평가하는 데 도움이 됩니다. 이 추정 온도는 정보 제공 +목적일 뿐이며 SnapRAID의 동작에는 영향을 미치지 않습니다. +프로그램의 동작은 오로지 실제 측정된 디스크 온도에 기반합니다. +.PP +이 분석을 수행하려면 SnapRAID는 시스템 온도에 대한 참조가 필요합니다. +먼저 사용 가능한 하드웨어 센서에서 읽으려고 시도합니다. +시스템 센서에 액세스할 수 없는 경우, 실행 시작 시 측정된 가장 낮은 +디스크 온도를 대체 참조로 사용합니다. +.PP +일반적으로 SnapRAID는 가장 뜨거운 디스크의 온도만 표시합니다. +모든 디스크의 온도를 표시하려면 \-A 또는 \-\-stats 옵션을 사용하십시오. +.SS temp_sleep TIME_IN_MINUTES +온도 제한에 도달했을 때의 대기 시간(분)을 설정합니다. 이 기간 동안 +디스크는 회전 중지 상태를 유지합니다. 기본값은 5분입니다. +.SS pool DIR +\`pool\` 명령을 사용하여 디스크 어레이의 가상 뷰가 생성되는 풀링 +디렉토리를 정의합니다. +.PP +디렉토리는 이미 존재해야 합니다. +.SS share UNC_DIR +디스크에 원격으로 액세스하는 데 필요한 Windows UNC 경로를 정의합니다. +.PP +이 옵션이 지정되면 풀 디렉토리에 생성된 심볼릭 링크는 이 UNC 경로를 +사용하여 디스크에 액세스합니다. +이 옵션이 없으면 생성된 심볼릭 링크는 로컬 경로만 사용하며, 이는 +네트워크를 통해 풀 디렉토리를 공유하는 것을 허용하지 않습니다. +.PP +심볼릭 링크는 지정된 UNC 경로를 사용하여 형성되며, \`data\` 옵션에 +지정된 디스크 이름이 추가되고, 마지막으로 파일 디렉토리와 이름이 +추가됩니다. +.PP +이 옵션은 Windows에만 필요합니다. +.SS smartctl DISK/PARITY OPTIONS... +각 디스크에 대한 SMART 속성을 얻기 위한 사용자 정의 smartctl 옵션을 +정의합니다. 이는 RAID 컨트롤러 및 일부 자동 감지할 수 없는 USB 디스크에 +필요할 수 있습니다. %s 자리 표시자는 장치 이름으로 대체되지만, +RAID 컨트롤러와 같은 고정된 장치에서는 선택 사항입니다. +.PP +DISK는 \`data\` 옵션에 지정된 것과 동일한 디스크 이름입니다. +PARITY는 \`parity\`, \`2\-parity\`, \`3\-parity\`, \`4\-parity\`, \`5\-parity\`, +\`6\-parity\`, 또는 \`z\-parity\` 중 하나의 패리티 이름입니다. +.PP +지정된 OPTIONS에서 \`%s\` 문자열은 장치 이름으로 대체됩니다. +RAID 컨트롤러의 경우 장치가 고정되어 있을 가능성이 높으므로 +\`%s\`를 사용할 필요가 없을 수 있습니다. +.PP +가능한 옵션은 smartmontools 설명서를 참조하십시오: +.PP +.RS 4 +https://www.smartmontools.org/wiki/Supported_RAID\-Controllers +.PD 0 +.PP +.PD +https://www.smartmontools.org/wiki/Supported_USB\-Devices +.PD 0 +.PD +.RE +.PP +예: +.PP +.RS 4 +smartctl parity \-d sat %s +.PD 0 +.PD +.RE +.SS smartignore DISK/PARITY ATTR [ATTR...] +디스크 실패 확률을 계산할 때 지정된 SMART 속성을 무시합니다. +이 옵션은 디스크가 특정 속성에 대해 특이하거나 오해의 소지가 있는 +값을 보고하는 경우에 유용합니다. +.PP +DISK는 \`data\` 옵션에 지정된 것과 동일한 디스크 이름입니다. +PARITY는 \`parity\`, \`2\-parity\`, \`3\-parity\`, \`4\-parity\`, \`5\-parity\`, +\`6\-parity\`, 또는 \`z\-parity\` 중 하나의 패리티 이름입니다. +특수 값 *는 모든 디스크에서 속성을 무시하는 데 사용될 수 있습니다. +.PP +예를 들어, 모든 디스크에서 \`Current Pending Sector Count\` 속성을 +무시하려면: +.PP +.RS 4 +smartignore * 197 +.PD 0 +.PD +.RE +.PP +첫 번째 패리티 디스크에서만 무시하려면: +.PP +.RS 4 +smartignore parity 197 +.PD 0 +.PD +.RE +.SS Examples +Unix의 일반적인 설정 예는 다음과 같습니다: +.PP +.RS 4 +parity /mnt/diskp/snapraid.parity +.PD 0 +.PP +.PD +content /mnt/diskp/snapraid.content +.PD 0 +.PP +.PD +content /var/snapraid/snapraid.content +.PD 0 +.PP +.PD +data d1 /mnt/disk1/ +.PD 0 +.PP +.PD +data d2 /mnt/disk2/ +.PD 0 +.PP +.PD +data d3 /mnt/disk3/ +.PD 0 +.PP +.PD +exclude /lost+found/ +.PD 0 +.PP +.PD +exclude /tmp/ +.PD 0 +.PP +.PD +smartctl d1 \-d sat %s +.PD 0 +.PP +.PD +smartctl d2 \-d usbjmicron %s +.PD 0 +.PP +.PD +smartctl parity \-d areca,1/1 /dev/sg0 +.PD 0 +.PP +.PD +smartctl 2\-parity \-d areca,2/1 /dev/sg0 +.PD 0 +.PD +.RE +.PP +Windows의 일반적인 설정 예는 다음과 같습니다: +.PP +.RS 4 +parity E:\\snapraid.parity +.PD 0 +.PP +.PD +content E:\\snapraid.content +.PD 0 +.PP +.PD +content C:\\snapraid\\snapraid.content +.PD 0 +.PP +.PD +data d1 G:\\array\\ +.PD 0 +.PP +.PD +data d2 H:\\array\\ +.PD 0 +.PP +.PD +data d3 I:\\array\\ +.PD 0 +.PP +.PD +exclude Thumbs.db +.PD 0 +.PP +.PD +exclude \\$RECYCLE.BIN +.PD 0 +.PP +.PD +exclude \\System Volume Information +.PD 0 +.PP +.PD +smartctl d1 \-d sat %s +.PD 0 +.PP +.PD +smartctl d2 \-d usbjmicron %s +.PD 0 +.PP +.PD +smartctl parity \-d areca,1/1 /dev/arcmsr0 +.PD 0 +.PP +.PD +smartctl 2\-parity \-d areca,2/1 /dev/arcmsr0 +.PD 0 +.PD +.RE +.SH PATTERN +패턴은 처리에서 제외하거나 포함할 파일의 하위 집합을 선택하는 데 +사용됩니다. +.PP +네 가지 유형의 패턴이 있습니다: +.TP +.B FILE +FILE이라는 이름의 모든 파일을 선택합니다. *, ?와 같은 글로빙 +문자와 [a\-z]와 같은 문자 클래스를 사용할 수 있습니다. +이 패턴은 디렉토리가 아닌 파일에만 적용됩니다. +.TP +.B DIR/ +DIR이라는 이름의 모든 디렉토리와 그 안의 모든 것을 선택합니다. +*, ?와 같은 글로빙 문자를 사용할 수 있습니다. +이 패턴은 파일이 아닌 디렉토리에만 적용됩니다. +.TP +.B /PATH/FILE +정확히 지정된 파일 경로를 선택합니다. *, ?와 같은 글로빙 +문자를 사용할 수 있지만, 디렉토리 슬래시와는 절대 일치하지 않습니다. +이 패턴은 디렉토리가 아닌 파일에만 적용됩니다. +.TP +.B /PATH/DIR/ +정확히 지정된 디렉토리 경로와 그 안의 모든 것을 선택합니다. +*, ?와 같은 글로빙 문자를 사용할 수 있지만, 디렉토리 슬래시와는 +절대 일치하지 않습니다. +이 패턴은 파일이 아닌 디렉토리에만 적용됩니다. +.TP +.B /로 시작하는 절대 경로를 지정하면 로컬 파일 시스템의 루트 디렉토리가 +아닌 어레이 루트 디렉토리에 적용됩니다. +.PP +Windows에서는 정방향 슬래시 / 대신 역슬래시 \\를 사용할 수 있습니다. +Windows 시스템 디렉토리, 접합점(junctions), 마운트 지점 및 기타 +Windows 특수 디렉토리는 파일로 취급됩니다. 즉, 이들을 제외하려면 +디렉토리 규칙이 아닌 파일 규칙을 사용해야 합니다. +.PP +파일 이름에 \'*\', \'?\', \'[\', +또는 \']\' 문자가 포함된 경우, 글로빙 문자로 해석되는 것을 피하기 위해 +이스케이프해야 합니다. Unix에서는 이스케이프 문자가 \'\\\'이고, +Windows에서는 \'^\'입니다. +패턴이 명령줄에 있는 경우, 명령 셸에 의해 해석되는 것을 피하기 위해 +이스케이프 문자를 두 배로 늘려야 합니다. +.PP +설정 파일에서는 처리할 파일을 필터링하기 위해 다른 전략을 사용할 수 +있습니다. +가장 간단한 접근 방식은 원하지 않는 모든 파일과 디렉토리를 제거하기 +위해 \`exclude\` 규칙만 사용하는 것입니다. 예를 들어: +.PP +.RS 4 +# \`*.unrecoverable\`이라는 이름의 모든 파일 제외 +.PD 0 +.PP +.PD +exclude *.unrecoverable +.PD 0 +.PP +.PD +# 루트 디렉토리 \`/lost+found\` 제외 +.PD 0 +.PP +.PD +exclude /lost+found/ +.PD 0 +.PP +.PD +# \`tmp\`라는 이름의 모든 하위 디렉토리 제외 +.PD 0 +.PP +.PD +exclude tmp/ +.PD 0 +.PD +.RE +.PP +반대 접근 방식은 \`include\` 규칙만 사용하여 처리하려는 파일만 +정의하는 것입니다. 예를 들어: +.PP +.RS 4 +# 일부 디렉토리만 포함 +.PD 0 +.PP +.PD +include /movies/ +.PD 0 +.PP +.PD +include /musics/ +.PD 0 +.PP +.PD +include /pictures/ +.PD 0 +.PD +.RE +.PP +최종 접근 방식은 \`exclude\` 및 \`include\` 규칙을 혼합하는 것입니다. +이 경우 규칙의 순서가 중요합니다. 앞선 규칙이 뒤의 규칙보다 +우선합니다. +단순화를 위해 모든 \`exclude\` 규칙을 먼저 나열한 다음 모든 +\`include\` 규칙을 나열할 수 있습니다. 예를 들어: +.PP +.RS 4 +# \`*.unrecoverable\`이라는 이름의 모든 파일 제외 +.PD 0 +.PP +.PD +exclude *.unrecoverable +.PD 0 +.PP +.PD +# \`tmp\`라는 이름의 모든 하위 디렉토리 제외 +.PD 0 +.PP +.PD +exclude tmp/ +.PD 0 +.PP +.PD +# 일부 디렉토리만 포함 +.PD 0 +.PP +.PD +include /movies/ +.PD 0 +.PP +.PD +include /musics/ +.PD 0 +.PP +.PD +include /pictures/ +.PD 0 +.PD +.RE +.PP +명령줄에서 \-f 옵션을 사용할 때 \`include\` 패턴만 사용할 수 있습니다. +예를 들어: +.PP +.RS 4 +# .mp3 파일만 확인. +.PD 0 +.PP +.PD +# Unix에서는 셸에 의한 글로빙 확장을 피하기 위해 따옴표를 사용합니다. +.PD 0 +.PP +.PD +snapraid \-f \[dq]*.mp3\[dq] check +.PD 0 +.PD +.RE +.PP +Unix에서는 명령줄에서 글로빙 문자를 사용할 때 셸이 확장하는 것을 +방지하기 위해 따옴표로 묶어야 합니다. +.SH CONTENT +SnapRAID는 content 파일에 파일 목록과 체크섬을 저장합니다. +.PP +이것은 디스크 어레이에 있는 모든 파일의 목록과 무결성을 확인하기 위한 +모든 체크섬을 나열하는 이진 파일입니다. +.PP +이 파일은 \`sync\` 및 \`scrub\` 명령에 의해 읽고 쓰여지며, +\`fix\`, \`check\`, 및 \`status\` 명령에 의해 읽혀집니다. +.SH PARITY +SnapRAID는 패리티 파일에 어레이의 패리티 정보를 저장합니다. +.PP +이들은 \`content\` 파일에 정의된 모든 블록의 계산된 패리티를 포함하는 +이진 파일입니다. +.PP +이 파일들은 \`sync\` 및 \`fix\` 명령에 의해 읽고 쓰여지며, +\`scrub\` 및 \`check\` 명령에 의해서만 읽혀집니다. +.SH ENCODING +Unix의 SnapRAID는 인코딩을 무시합니다. 파일 시스템에서 사용되는 +것과 동일한 인코딩으로 파일 이름을 읽고 저장합니다. +.PP +Windows에서는 파일 시스템에서 읽은 모든 이름이 UTF\-8 형식으로 +변환되고 처리됩니다. +.PP +파일 이름이 올바르게 출력되도록 하려면, \`chcp 65001\` 명령으로 +Windows 콘솔을 UTF\-8 모드로 설정하고 콘솔 글꼴로 \`Lucida Console\`과 +같은 TrueType 글꼴을 사용해야 합니다. +이는 출력되는 파일 이름에만 영향을 미치며, 콘솔 출력을 파일로 +리디렉션하는 경우 결과 파일은 항상 UTF\-8 형식입니다. +.SH COPYRIGHT +This file is Copyright (C) 2025 Andrea Mazzoleni +.SH SEE ALSO +snapraid_log(1), rsync(1) diff --git a/man/sv/snapraid.1 b/man/sv/snapraid.1 new file mode 100644 index 00000000..fcafbaa3 --- /dev/null +++ b/man/sv/snapraid.1 @@ -0,0 +1,1886 @@ +.TH "SnapRAID Säkerhetskopiering för Disk\-arrayer" 1 +.SH NAME +snapraid \- SnapRAID Säkerhetskopiering för Disk\-arrayer +.SH SYNOPSIS +snapraid [\-c, \-\-conf CONFIG] +.PD 0 +.PP +.PD + [\-f, \-\-filter PATTERN] [\-d, \-\-filter\-disk NAME] +.PD 0 +.PP +.PD + [\-m, \-\-filter\-missing] [\-e, \-\-filter\-error] +.PD 0 +.PP +.PD + [\-a, \-\-audit\-only] [\-h, \-\-pre\-hash] [\-i, \-\-import DIR] +.PD 0 +.PP +.PD + [\-p, \-\-plan PERC|bad|new|full] +.PD 0 +.PP +.PD + [\-o, \-\-older\-than DAYS] [\-l, \-\-log FILE] +.PD 0 +.PP +.PD + [\-s, \-\-spin\-down\-on\-error] [\-w, \-\-bw\-limit RATE] +.PD 0 +.PP +.PD + [\-Z, \-\-force\-zero] [\-E, \-\-force\-empty] +.PD 0 +.PP +.PD + [\-U, \-\-force\-uuid] [\-D, \-\-force\-device] +.PD 0 +.PP +.PD + [\-N, \-\-force\-nocopy] [\-F, \-\-force\-full] +.PD 0 +.PP +.PD + [\-R, \-\-force\-realloc] +.PD 0 +.PP +.PD + [\-S, \-\-start BLKSTART] [\-B, \-\-count BLKCOUNT] +.PD 0 +.PP +.PD + [\-L, \-\-error\-limit NUMBER] +.PD 0 +.PP +.PD + [\-A, \-\-stats] +.PD 0 +.PP +.PD + [\-v, \-\-verbose] [\-q, \-\-quiet] +.PD 0 +.PP +.PD + status|smart|probe|up|down|diff|sync|scrub|fix|check +.PD 0 +.PP +.PD + |list|dup|pool|devices|touch|rehash +.PD 0 +.PD +.PP +snapraid [\-V, \-\-version] [\-H, \-\-help] [\-C, \-\-gen\-conf CONTENT] +.PD 0 +.PD +.SH BESKRIVNING +SnapRAID är ett säkerhetskopieringsprogram designat för disk\-arrayer, +som lagrar paritetsinformation för dataåterställning vid upp till sex +diskfel. +.PP +SnapRAID är i första hand avsett för hemmamediabibliotek med stora, +sällan ändrade filer, och erbjuder flera funktioner: +.PD 0 +.IP \(bu +Du kan använda diskar som redan är fyllda med filer utan +att behöva formatera om dem, och du får åtkomst till dem som vanligt. +.IP \(bu +All din data hashberäknas för att säkerställa dataintegritet och +förhindra tyst korruption. +.IP \(bu +När antalet felaktiga diskar överskrider paritetsantalet, +begränsas dataförlusten till de drabbade diskarna; data på +andra diskar förblir åtkomlig. +.IP \(bu +Om du oavsiktligt raderar filer på en disk är återställning +möjlig. +.IP \(bu +Diskar kan ha olika storlekar. +.IP \(bu +Du kan lägga till diskar när som helst. +.IP \(bu +SnapRAID låser inte in din data; du kan sluta använda det +när som helst utan omformatering eller dataflytt. +.IP \(bu +För att få åtkomst till en fil behöver endast en enda disk snurra, +vilket sparar ström och minskar buller. +.PD +.PP +För mer information, besök den officiella SnapRAID\-webbplatsen: +.PP +.RS 4 +https://www.snapraid.it/ +.PD 0 +.PD +.RE +.SH BEGRäNSNINGAR +SnapRAID är en hybrid mellan ett RAID\- och ett säkerhetskopieringsprogram, +som syftar till att kombinera de bästa fördelarna med båda. Den har dock +vissa begränsningar som du bör överväga innan du använder den. +.PP +Huvudbegränsningen är att om en disk misslyckas och du inte nyligen har +synkat, kanske du inte kan återställa fullständigt. +Mer specifikt, kanske du inte kan återställa upp till storleken på +de ändrade eller raderade filerna sedan den senaste synkroniseringsoperationen. +Detta inträffar även om de ändrade eller raderade filerna inte finns på +den felaktiga disken. Det är därför SnapRAID passar bättre för +data som sällan ändras. +.PP +Å andra sidan förhindrar nyligen tillagda filer inte återställning av redan +befintliga filer. Du kommer bara att förlora de nyligen tillagda filerna om de +finns på den felaktiga disken. +.PP +Andra SnapRAID\-begränsningar är: +.PD 0 +.IP \(bu +Med SnapRAID har du fortfarande separata filsystem för varje disk. +Med RAID får du ett enda stort filsystem. +.IP \(bu +SnapRAID stripas inte data. +Med RAID får du en hastighetsökning med striping. +.IP \(bu +SnapRAID stöder inte återställning i realtid. +Med RAID behöver du inte sluta arbeta när en disk misslyckas. +.IP \(bu +SnapRAID kan bara återställa data från ett begränsat antal diskfel. +Med en säkerhetskopia kan du återställa från ett fullständigt +fel på hela disk\-arrayen. +.IP \(bu +Endast filnamn, tidsstämplar, symboliska länkar och hårda länkar sparas. +Behörigheter, ägarskap och utökade attribut sparas inte. +.PD +.SH KOM IGåNG +För att använda SnapRAID måste du först välja en disk i din disk\-array +som ska dediceras till \`parity\`\-information. Med en disk för paritet, +kommer du att kunna återställa från ett enda diskfel, liknande RAID5. +.PP +Om du vill återställa från fler diskfel, liknande RAID6, +måste du reservera ytterligare diskar för paritet. Varje ytterligare +paritetsdisk möjliggör återställning från ett diskfel till. +.PP +Som paritetsdiskar måste du välja de största diskarna i arrayen, +eftersom paritetsinformationen kan växa till storleken av den största +datadisken i arrayen. +.PP +Dessa diskar kommer att dediceras till att lagra \`parity\`\-filerna. +Du bör inte lagra din data på dem. +.PP +Sedan måste du definiera de \`data\`\-diskar som du vill skydda +med SnapRAID. Skyddet är mer effektivt om dessa diskar +innehåller data som sällan ändras. Av denna anledning är det bäst att +INTE inkludera Windows C:\\\-disken eller Unix /home, /var och /tmp +katalogerna. +.PP +Listan över filer sparas i \`content\`\-filerna, som vanligtvis +lagras på data\-, paritets\- eller startdiskarna. +Denna fil innehåller detaljerna för din säkerhetskopia, inklusive alla +checksummor för att verifiera dess integritet. +\`content\`\-filen lagras i flera kopior, och varje kopia måste +finnas på en annan disk för att säkerställa att, även vid flera +diskfel, minst en kopia är tillgänglig. +.PP +Anta till exempel att du bara är intresserad av en paritetsnivå +av skydd, och dina diskar finns på: +.PP +.RS 4 +/mnt/diskp <\- vald disk för paritet +.PD 0 +.PP +.PD +/mnt/disk1 <\- första disken att skydda +.PD 0 +.PP +.PD +/mnt/disk2 <\- andra disken att skydda +.PD 0 +.PP +.PD +/mnt/disk3 <\- tredje disken att skydda +.PD 0 +.PD +.RE +.PP +Du måste skapa konfigurationsfilen /etc/snapraid.conf med +följande alternativ: +.PP +.RS 4 +parity /mnt/diskp/snapraid.parity +.PD 0 +.PP +.PD +content /var/snapraid/snapraid.content +.PD 0 +.PP +.PD +content /mnt/disk1/snapraid.content +.PD 0 +.PP +.PD +content /mnt/disk2/snapraid.content +.PD 0 +.PP +.PD +data d1 /mnt/disk1/ +.PD 0 +.PP +.PD +data d2 /mnt/disk2/ +.PD 0 +.PP +.PD +data d3 /mnt/disk3/ +.PD 0 +.PD +.RE +.PP +Om du använder Windows bör du använda Windows sökvägsformat, med +enhetsbeteckningar och omvända snedstreck istället för snedstreck. +.PP +.RS 4 +parity E:\\snapraid.parity +.PD 0 +.PP +.PD +content C:\\snapraid\\snapraid.content +.PD 0 +.PP +.PD +content F:\\array\\snapraid.content +.PD 0 +.PP +.PD +content G:\\array\\snapraid.content +.PD 0 +.PP +.PD +data d1 F:\\array\\ +.PD 0 +.PP +.PD +data d2 G:\\array\\ +.PD 0 +.PP +.PD +data d3 H:\\array\\ +.PD 0 +.PD +.RE +.PP +Om du har många diskar och får slut på enhetsbeteckningar kan du montera +diskar direkt i undermappar. Se: +.PP +.RS 4 +https://www.google.com/search?q=Windows+mount+point +.PD 0 +.PD +.RE +.PP +Vid denna punkt är du redo att köra kommandot \`sync\` för att bygga +paritetsinformationen. +.PP +.RS 4 +snapraid sync +.PD 0 +.PD +.RE +.PP +Denna process kan ta flera timmar första gången, beroende på storleken +på datan som redan finns på diskarna. Om diskarna är tomma är +processen omedelbar. +.PP +Du kan stoppa det när som helst genom att trycka Ctrl+C, och vid nästa körning +återupptas det där det avbröts. +.PP +När detta kommando är klart är din data SÄKER. +.PP +Nu kan du börja använda din array som du vill och periodiskt +uppdatera paritetsinformationen genom att köra kommandot \`sync\`. +.SS Skrubbning (Scrubbing) +För att periodiskt kontrollera data och paritet för fel kan du +köra kommandot \`scrub\`. +.PP +.RS 4 +snapraid scrub +.PD 0 +.PD +.RE +.PP +Detta kommando jämför data i din array med den hash som beräknades +under kommandot \`sync\` för att verifiera integriteten. +.PP +Varje körning av kommandot kontrollerar ungefär 8% av arrayen, exklusive data +som redan skrubbats under de föregående 10 dagarna. +Du kan använda alternativet \-p, \-\-plan för att specificera en annan mängd +och alternativet \-o, \-\-older\-than för att specificera en annan ålder i dagar. +Till exempel, för att kontrollera 5% av arrayen för block äldre än 20 dagar, använd: +.PP +.RS 4 +snapraid \-p 5 \-o 20 scrub +.PD 0 +.PD +.RE +.PP +Om tysta eller input/output\-fel hittas under processen, +markeras de motsvarande blocken som dåliga i \`content\`\-filen +och listas i kommandot \`status\`. +.PP +.RS 4 +snapraid status +.PD 0 +.PD +.RE +.PP +För att fixa dem kan du använda kommandot \`fix\`, filtrera efter dåliga block med +alternativet \-e, \-\-filter\-error: +.PP +.RS 4 +snapraid \-e fix +.PD 0 +.PD +.RE +.PP +Vid nästa \`scrub\` kommer felen att försvinna från \`status\`\-rapporten +om de verkligen är fixade. För att göra det snabbare kan du använda \-p bad för att skrubba +endast block markerade som dåliga. +.PP +.RS 4 +snapraid \-p bad scrub +.PD 0 +.PD +.RE +.PP +Att köra \`scrub\` på en osynkad array kan rapportera fel orsakade av +borttagna eller modifierade filer. Dessa fel rapporteras i \`scrub\`\- +utdata, men de relaterade blocken markeras inte som dåliga. +.SS Poolning +Obs: Poolningsfunktionen som beskrivs nedan har ersatts av verktyget +mergefs, som nu är det rekommenderade alternativet för Linux\-användare i +SnapRAID\-communityt. Mergefs ger ett mer flexibelt och effektivt +sätt att poola flera enheter till en enda enhetlig monteringspunkt, +vilket möjliggör sömlös åtkomst till filer över din array utan att förlita sig +på symboliska länkar. Det integreras väl med SnapRAID för paritetsskydd +och används ofta i installationer som OpenMediaVault (OMV) +eller anpassade NAS\-konfigurationer. +.PP +För att visa alla filer i din array i samma katalogträd, +kan du aktivera funktionen \`pooling\`. Den skapar en skrivskyddad virtuell +vy av alla filer i din array med hjälp av symboliska länkar. +.PP +Du kan konfigurera \`pooling\`\-katalogen i konfigurationsfilen med: +.PP +.RS 4 +pool /pool +.PD 0 +.PD +.RE +.PP +eller, om du använder Windows, med: +.PP +.RS 4 +pool C:\\pool +.PD 0 +.PD +.RE +.PP +och kör sedan kommandot \`pool\` för att skapa eller uppdatera den virtuella vyn. +.PP +.RS 4 +snapraid pool +.PD 0 +.PD +.RE +.PP +Om du använder en Unix\-plattform och vill dela denna katalog +över nätverket till antingen Windows\- eller Unix\-maskiner, bör du lägga till +följande alternativ till din /etc/samba/smb.conf: +.PP +.RS 4 +# I den globala sektionen av smb.conf +.PD 0 +.PP +.PD +unix extensions = no +.PD 0 +.PD +.RE +.PP +.RS 4 +# I delningssektionen av smb.conf +.PD 0 +.PP +.PD +[pool] +.PD 0 +.PP +.PD +comment = Pool +.PD 0 +.PP +.PD +path = /pool +.PD 0 +.PP +.PD +read only = yes +.PD 0 +.PP +.PD +guest ok = yes +.PD 0 +.PP +.PD +wide links = yes +.PD 0 +.PP +.PD +follow symlinks = yes +.PD 0 +.PD +.RE +.PP +I Windows kräver delning av symboliska länkar över ett nätverk att klienter +löser dem på distans. För att aktivera detta måste du, förutom att dela pool\-katalogen, +även dela alla diskar oberoende, med hjälp av de disk\-namn +som definieras i konfigurationsfilen som delningspunkter. Du måste också specificera +i alternativet \`share\` i konfigurationsfilen den Windows UNC\-sökväg som +fjärrklienter behöver använda för att få åtkomst till dessa delade diskar. +.PP +Till exempel, om du arbetar från en server som heter \`darkstar\`, kan du använda +alternativen: +.PP +.RS 4 +data d1 F:\\array\\ +.PD 0 +.PP +.PD +data d2 G:\\array\\ +.PD 0 +.PP +.PD +data d3 H:\\array\\ +.PD 0 +.PP +.PD +pool C:\\pool +.PD 0 +.PP +.PD +share \\\\darkstar +.PD 0 +.PD +.RE +.PP +och dela följande kataloger över nätverket: +.PP +.RS 4 +\\\\darkstar\\pool \-> C:\\pool +.PD 0 +.PP +.PD +\\\\darkstar\\d1 \-> F:\\array +.PD 0 +.PP +.PD +\\\\darkstar\\d2 \-> G:\\array +.PD 0 +.PP +.PD +\\\\darkstar\\d3 \-> H:\\array +.PD 0 +.PD +.RE +.PP +för att tillåta fjärrklienter att få åtkomst till alla filer på \\\\darkstar\\pool. +.PP +Du kan också behöva konfigurera fjärrklienter för att möjliggöra åtkomst till +fjärrsymboliska länkar med kommandot: +.PP +.RS 4 +fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 +.PD 0 +.PD +.RE +.SS Ångra radering (Undeleting) +SnapRAID fungerar mer som ett säkerhetskopieringsprogram än ett RAID\-system, och det +kan användas för att återställa eller ångra radering av filer till deras tidigare tillstånd +med hjälp av alternativet \-f, \-\-filter: +.PP +.RS 4 +snapraid fix \-f FIL +.PD 0 +.PD +.RE +.PP +eller för en katalog: +.PP +.RS 4 +snapraid fix \-f KATALOG/ +.PD 0 +.PD +.RE +.PP +Du kan också använda det för att återställa endast oavsiktligt raderade filer inuti +en katalog med hjälp av alternativet \-m, \-\-filter\-missing, som återställer +endast saknade filer, och lämnar alla andra orörda. +.PP +.RS 4 +snapraid fix \-m \-f KATALOG/ +.PD 0 +.PD +.RE +.PP +Eller för att återställa alla raderade filer på alla enheter med: +.PP +.RS 4 +snapraid fix \-m +.PD 0 +.PD +.RE +.SS Återställning +Det värsta har hänt, och du har förlorat en eller flera diskar! +.PP +FÅ INTE PANIK! Du kommer att kunna återställa dem! +.PP +Det första du måste göra är att undvika ytterligare ändringar i din disk\-array. +Inaktivera alla fjärranslutningar till den och alla schemalagda processer, inklusive +alla schemalagda SnapRAID nattliga sync\- eller scrub\-körningar. +.PP +Fortsätt sedan med följande steg. +.SS STEG 1 \-> Omkonfigurera +Du behöver lite utrymme för att återställa, helst på ytterligare +reservdiskar, men en extern USB\-disk eller fjärrdisk räcker. +.PP +Ändra SnapRAID\-konfigurationsfilen för att få alternativet \`data\` eller \`parity\` +för den felaktiga disken att peka på en plats med tillräckligt tomt +utrymme för att återställa filerna. +.PP +Om till exempel disk \`d1\` har misslyckats, ändra från: +.PP +.RS 4 +data d1 /mnt/disk1/ +.PD 0 +.PD +.RE +.PP +till: +.PP +.RS 4 +data d1 /mnt/new_spare_disk/ +.PD 0 +.PD +.RE +.PP +Om disken som ska återställas är en paritetsdisk, uppdatera det lämpliga \`parity\`\- +alternativet. +Om du har flera felaktiga diskar, uppdatera alla deras konfigurationsalternativ. +.SS STEG 2 \-> Fixa +Kör kommandot fix och lagra loggen i en extern fil med: +.PP +.RS 4 +snapraid \-d NAMN \-l fix.log fix +.PD 0 +.PD +.RE +.PP +Där NAMN är namnet på disken, till exempel \`d1\` i vårt tidigare exempel. +Om disken som ska återställas är en paritetsdisk, använd namnen \`parity\`, \`2\-parity\`, +etc. +Om du har flera felaktiga diskar, använd flera \-d\-alternativ för att specificera alla +av dem. +.PP +Detta kommando kommer att ta lång tid. +.PP +Se till att du har några gigabyte ledigt för att lagra fix.log\-filen. +Kör den från en disk med tillräckligt med ledigt utrymme. +.PP +Nu har du återställt allt som är återställningsbart. Om vissa filer är delvis +eller helt icke\-återställningsbara, kommer de att döpas om genom att lägga till tillägget +\`.unrecoverable\`. +.PP +Du kan hitta en detaljerad lista över alla icke\-återställningsbara block i fix.log\-filen +genom att kontrollera alla rader som börjar med \`unrecoverable:\`. +.PP +Om du inte är nöjd med återställningen kan du försöka igen hur många +gånger du vill. +.PP +Om du till exempel har tagit bort filer från arrayen efter den senaste +\`sync\`, kan detta leda till att vissa filer inte återställs. +I detta fall kan du försöka igen \`fix\` med alternativet \-i, \-\-import, +specificera var dessa filer nu finns för att inkludera dem igen i +återställningsprocessen. +.PP +Om du är nöjd med återställningen kan du fortsätta, +men notera att efter synkronisering kan du inte försöka igen kommandot \`fix\` +längre! +.SS STEG 3 \-> Kontrollera +Som en försiktighetsåtgärd kan du nu köra ett \`check\`\-kommando för att säkerställa att +allt är korrekt på den återställda disken. +.PP +.RS 4 +snapraid \-d NAMN \-a check +.PD 0 +.PD +.RE +.PP +Där NAMN är namnet på disken, till exempel \`d1\` i vårt tidigare exempel. +.PP +Alternativen \-d och \-a talar om för SnapRAID att endast kontrollera den specificerade disken +och ignorera all paritetsdata. +.PP +Detta kommando kommer att ta lång tid, men om du inte är alltför försiktig, +kan du hoppa över det. +.SS STEG 4 \-> Synkronisera +Kör kommandot \`sync\` för att synkronisera arrayen igen med den nya disken. +.PP +.RS 4 +snapraid sync +.PD 0 +.PD +.RE +.PP +Om allt är återställt är detta kommando omedelbart. +.SH KOMMANDON +SnapRAID tillhandahåller några enkla kommandon som låter dig: +.PD 0 +.IP \(bu +Skriva ut statusen för arrayen \-> \`status\` +.IP \(bu +Kontrollera diskarna \-> \`smart\`, \`probe\`, \`up\`, \`down\` +.IP \(bu +Göra en säkerhetskopia/ögonblicksbild \-> \`sync\` +.IP \(bu +Periodiskt kontrollera data \-> \`scrub\` +.IP \(bu +Återställa den senaste säkerhetskopian/ögonblicksbilden \-> \`fix\`. +.PD +.PP +Kommandon måste skrivas med gemener. +.SS status +Skriver ut en sammanfattning av tillståndet för disk\-arrayen. +.PP +Det inkluderar information om paritetsfragmentering, hur gamla +blocken är utan kontroll, och alla registrerade tysta +fel som påträffats under skrubbning. +.PP +Informationen som presenteras hänvisar till den senaste tidpunkten du +körde \`sync\`. Senare modifieringar beaktas inte. +.PP +Om dåliga block upptäcktes, listas deras blocknummer. +För att fixa dem kan du använda kommandot \`fix \-e\`. +.PP +Det visar också ett diagram som representerar den senaste tidpunkten då varje block +skrubbades eller synkroniserades. Skrubbade block visas med \'*\', +block synkroniserade men ännu inte skrubbade med \'o\'. +.PP +Inget ändras. +.SS smart +Skriver ut en SMART\-rapport över alla diskar i systemet. +.PP +Det inkluderar en uppskattning av sannolikheten för fel under det kommande +året, vilket gör att du kan planera underhållsersättningar av diskar som visar +misstänkta attribut. +.PP +Denna sannolikhetsuppskattning erhålls genom att korrelera SMART\-attributen +för diskarna med Backblaze\-data som finns tillgänglig på: +.PP +.RS 4 +https://www.backblaze.com/hard\-drive\-test\-data.html +.PD 0 +.PD +.RE +.PP +Om SMART rapporterar att en disk håller på att misslyckas, skrivs \`FAIL\` eller \`PREFAIL\` ut +för den disken, och SnapRAID returnerar med ett fel. +I detta fall rekommenderas omedelbar ersättning av disken starkt. +.PP +Andra möjliga statussträngar är: +.RS 4 +.PD 0 +.HP 4 +.I logfail +Tidigare var vissa attribut lägre än +tröskelvärdet. +.HP 4 +.I logerr +Enhetens fellogg innehåller fel. +.HP 4 +.I selferr +Enhetens självtestlogg innehåller fel. +.PD +.RE +.PP +Om alternativet \-v, \-\-verbose specificeras, tillhandahålls en djupare statistisk analys. +Denna analys kan hjälpa dig att bestämma om du behöver mer +eller mindre paritet. +.PP +Detta kommando använder verktyget \`smartctl\` och är ekvivalent med att köra +\`smartctl \-a\` på alla enheter. +.PP +Om dina enheter inte upptäcks automatiskt korrekt kan du specificera +ett anpassat kommando med hjälp av alternativet \`smartctl\` i konfigurations\- +filen. +.PP +Inget ändras. +.SS probe +Skriver ut STRÖM\-tillståndet för alla diskar i systemet. +.PP +\`Standby\` betyder att disken inte snurrar. \`Active\` betyder +att disken snurrar. +.PP +Detta kommando använder verktyget \`smartctl\` och är ekvivalent med att köra +\`smartctl \-n standby \-i\` på alla enheter. +.PP +Om dina enheter inte upptäcks automatiskt korrekt kan du specificera +ett anpassat kommando med hjälp av alternativet \`smartctl\` i konfigurations\- +filen. +.PP +Inget ändras. +.SS up +Snurrar upp alla diskar i arrayen. +.PP +Du kan snurra upp endast specifika diskar med hjälp av alternativet \-d, \-\-filter\-disk. +.PP +Att snurra upp alla diskar samtidigt kräver mycket ström. +Se till att din strömförsörjning kan klara det. +.PP +Inget ändras. +.SS down +Snurrar ner alla diskar i arrayen. +.PP +Detta kommando använder verktyget \`smartctl\` och är ekvivalent med att köra +\`smartctl \-s standby,now\` på alla enheter. +.PP +Du kan snurra ner endast specifika diskar med hjälp av alternativet \-d, \-\-filter\-disk +alternativet. +.PP +För att automatiskt snurra ner vid fel kan du använda alternativet \-s, \-\-spin\-down\-on\-error +med alla andra kommandon, vilket är ekvivalent med att köra \`down\` manuellt +när ett fel inträffar. +.PP +Inget ändras. +.SS diff +Listar alla filer som modifierats sedan den senaste \`sync\` och som behöver få +sin paritetsdata omberäknad. +.PP +Detta kommando kontrollerar inte filens data, utan endast filens tidsstämpel, +storlek och inode. +.PP +Efter att ha listat alla ändrade filer presenteras en sammanfattning av ändringarna, +grupperade efter: +.RS 4 +.PD 0 +.HP 4 +.I equal +Filer oförändrade från tidigare. +.HP 4 +.I added +Filer tillagda som inte fanns tidigare. +.HP 4 +.I removed +Filer borttagna. +.HP 4 +.I updated +Filer med en annan storlek eller tidsstämpel, vilket innebär att de +modifierades. +.HP 4 +.I moved +Filer flyttade till en annan katalog på samma disk. +De identifieras genom att ha samma namn, storlek, tidsstämpel +och inode, men en annan katalog. +.HP 4 +.I copied +Filer kopierade på samma eller en annan disk. Observera att om +de verkligen flyttas till en annan disk, kommer de också att +räknas i \`removed\`. +De identifieras genom att ha samma namn, storlek och +tidsstämpel. Om undertidsstämpeln är noll, +måste hela sökvägen matcha, inte bara namnet. +.HP 4 +.I restored +Filer med en annan inode men matchande namn, storlek och tidsstämpel. +Dessa är vanligtvis filer som återställts efter att ha raderats. +.PD +.RE +.PP +Om en \`sync\` krävs är processens returkod 2, istället för standard 0. +Returkoden 1 används för ett generiskt feltillstånd. +.PP +Inget ändras. +.SS sync +Uppdaterar paritetsinformationen. Alla modifierade filer +i disk\-arrayen läses, och motsvarande paritets\- +data uppdateras. +.PP +Du kan stoppa denna process när som helst genom att trycka Ctrl+C, +utan att förlora det arbete som redan utförts. +Vid nästa körning kommer \`sync\`\-processen att återupptas där +den avbröts. +.PP +Om tysta eller input/output\-fel hittas under processen, +markeras de motsvarande blocken som dåliga. +.PP +Filer identifieras med sökväg och/eller inode och kontrolleras med +storlek och tidsstämpel. +Om filstorleken eller tidsstämpeln skiljer sig åt, beräknas paritetsdata +om för hela filen. +Om filen flyttas eller döps om på samma disk, samtidigt som +samma inode behålls, beräknas inte pariteten om. +Om filen flyttas till en annan disk, beräknas pariteten om, +men den tidigare beräknade hash\-informationen behålls. +.PP +\`content\`\- och \`parity\`\-filerna modifieras vid behov. +Filerna i arrayen modifieras INTE. +.SS scrub +Skrubbar arrayen och söker efter tysta eller input/output\-fel i data\- +och paritetsdiskar. +.PP +Varje anrop kontrollerar ungefär 8% av arrayen, exklusive +data som redan skrubbats under de senaste 10 dagarna. +Detta innebär att skrubbning en gång i veckan säkerställer att varje bit data kontrolleras +minst en gång var tredje månad. +.PP +Du kan definiera en annan skrubbplan eller mängd med hjälp av alternativet \-p, \-\-plan +som accepterar: +bad \- Skrubbar block markerade som dåliga. +new \- Skrubbar nyligen synkroniserade block som ännu inte skrubbats. +full \- Skrubbar allt. +0\-100 \- Skrubbar den specificerade procentandelen av block. +.PP +Om du specificerar en procentsats kan du också använda alternativet \-o, \-\-older\-than +för att definiera hur gammalt blocket ska vara. +De äldsta blocken skrubbas först, vilket säkerställer en optimal kontroll. +Om du bara vill skrubba de nyligen synkroniserade blocken som ännu inte skrubbats, +använd alternativet \`\-p new\`. +.PP +För att få detaljer om skrubbstatusen, använd kommandot \`status\`. +.PP +För alla tysta eller input/output\-fel som hittas, markeras de motsvarande blocken +som dåliga i \`content\`\-filen. +Dessa dåliga block listas i \`status\` och kan fixas med \`fix \-e\`. +Efter fixningen, vid nästa skrubb, kommer de att kontrolleras igen, och om de befinns +korrigerade, tas det dåliga märket bort. +För att skrubba endast de dåliga blocken kan du använda kommandot \`scrub \-p bad\`. +.PP +Det rekommenderas att köra \`scrub\` endast på en synkroniserad array för att undvika +rapporterade fel orsakade av osynkad data. Dessa fel känns igen +som att de inte är tysta fel, och blocken markeras inte som dåliga, +men sådana fel rapporteras i kommandots utdata. +.PP +\`content\`\-filen modifieras för att uppdatera tiden för den senaste kontrollen +för varje block och för att markera dåliga block. +\`parity\`\-filerna modifieras INTE. +Filerna i arrayen modifieras INTE. +.SS fix +Fixar alla filer och paritetsdata. +.PP +Alla filer och paritetsdata jämförs med ögonblicksbilds\- +tillståndet som sparades i den senaste \`sync\`. +Om en skillnad hittas, återställs den till det lagrade ögonblicksbildstillståndet. +.PP +VARNING! Kommandot \`fix\` skiljer inte mellan fel och +avsiktliga modifieringar. Det återställer ovillkorligen filtillståndet +till den senaste \`sync\`. +.PP +Om inget annat alternativ specificeras, behandlas hela arrayen. +Använd filteralternativen för att välja en delmängd av filer eller diskar att arbeta med. +.PP +För att fixa endast blocken markerade som dåliga under \`sync\` och \`scrub\`, +använd alternativet \-e, \-\-filter\-error. +Till skillnad från andra filteralternativ tillämpar detta fixar endast på filer som är +oförändrade sedan den senaste \`sync\`. +.PP +SnapRAID döper om alla filer som inte kan fixas genom att lägga till tillägget +\`.unrecoverable\`. +.PP +Innan fixningen skannas hela arrayen för att hitta alla filer som flyttats +sedan den senaste \`sync\`\-operationen. +Dessa filer identifieras av deras tidsstämpel, ignorera deras namn +och katalog, och används i återställningsprocessen vid behov. +Om du flyttade några av dem utanför arrayen kan du använda alternativet \-i, \-\-import +för att specificera ytterligare kataloger att skanna. +.PP +Filer identifieras endast med sökväg, inte med inode. +.PP +\`content\`\-filen modifieras INTE. +\`parity\`\-filerna modifieras vid behov. +Filerna i arrayen modifieras vid behov. +.SS check +Verifierar alla filer och paritetsdata. +.PP +Det fungerar som \`fix\`, men det simulerar endast en återställning och inga ändringar +skrivs till arrayen. +.PP +Detta kommando är i första hand avsett för manuell verifiering, +som efter en återställningsprocess eller under andra speciella förhållanden. +För periodiska och schemalagda kontroller, använd \`scrub\`. +.PP +Om du använder alternativet \-a, \-\-audit\-only, kontrolleras endast fil\- +datan, och paritetsdatan ignoreras för en +snabbare körning. +.PP +Filer identifieras endast med sökväg, inte med inode. +.PP +Inget ändras. +.SS list +Listar alla filer som finns i arrayen vid tidpunkten för den +senaste \`sync\`. +.PP +Med \-v eller \-\-verbose visas även undertiden. +.PP +Inget ändras. +.SS dup +Listar alla dubblettfiler. Två filer antas vara lika om deras +hashar matchar. Filens data läses inte; endast de +förberäknade hasharna används. +.PP +Inget ändras. +.SS pool +Skapar eller uppdaterar en virtuell vy av alla +filer i din disk\-array i \`pooling\`\-katalogen. +.PP +Filerna kopieras inte utan länkas med hjälp av +symboliska länkar. +.PP +Vid uppdatering raderas alla befintliga symboliska länkar och tomma +underkataloger och ersätts med den nya +vyn av arrayen. Alla andra vanliga filer lämnas kvar. +.PP +Inget ändras utanför pool\-katalogen. +.SS devices +Skriver ut de lågnivåenheter som används av arrayen. +.PP +Detta kommando visar enhetsassociationerna i arrayen +och är främst avsett som ett skriptgränssnitt. +.PP +De två första kolumnerna är lågnivåenhetens ID och sökväg. +De nästa två kolumnerna är högnivåenhetens ID och sökväg. +Den sista kolumnen är diskens namn i arrayen. +.PP +I de flesta fall har du en lågnivåenhet för varje disk i +arrayen, men i vissa mer komplexa konfigurationer kan du ha flera +lågnivåenheter som används av en enda disk i arrayen. +.PP +Inget ändras. +.SS touch +Anger en godtycklig undertidsstämpel för alla filer +som har den satt till noll. +.PP +Detta förbättrar SnapRAIDs förmåga att känna igen flyttade +och kopierade filer, eftersom det gör tidsstämpeln nästan unik, +vilket minskar möjliga dubbletter. +.PP +Mer specifikt, om undertidsstämpeln inte är noll, +identifieras en flyttad eller kopierad fil som sådan om den matchar +namn, storlek och tidsstämpel. Om undertidsstämpeln +är noll, betraktas den som en kopia endast om hela sökvägen, +storlek och tidsstämpel alla matchar. +.PP +Tidsstämpeln med sekundprecision modifieras inte, +så alla datum och tider för dina filer bevaras. +.SS rehash +Schemalägger en omhashning av hela arrayen. +.PP +Detta kommando ändrar den hash\-typ som används, vanligtvis vid uppgradering +från ett 32\-bitars system till ett 64\-bitars system, för att byta från +MurmurHash3 till den snabbare SpookyHash. +.PP +Om du redan använder den optimala hashen, gör detta kommando +ingenting och informerar dig om att ingen åtgärd behövs. +.PP +Omhashningen utförs inte omedelbart utan sker +progressivt under \`sync\` och \`scrub\`. +.PP +Du kan kontrollera omhashningstillståndet med hjälp av \`status\`. +.PP +Under omhashningen bibehåller SnapRAID full funktionalitet, +med det enda undantaget att \`dup\` inte kan upptäcka dubbletter +med hjälp av en annan hash. +.SH ALTERNATIV +SnapRAID tillhandahåller följande alternativ: +.TP +.B \-c, \-\-conf CONFIG +Väljer den konfigurationsfil som ska användas. Om den inte specificeras, i Unix +används filen \`/usr/local/etc/snapraid.conf\` om den finns, +annars \`/etc/snapraid.conf\`. +I Windows används filen \`snapraid.conf\` i samma +katalog som \`snapraid.exe\`. +.TP +.B \-f, \-\-filter PATTERN +Filtrerar filerna att behandla i \`check\` och \`fix\`. +Endast filerna som matchar det specificerade mönstret behandlas. +Detta alternativ kan användas flera gånger. +Se avsnittet MÖNSTER för mer information om +mönsterspecifikationer. +I Unix, se till att globbing\-tecken citeras om de används. +Detta alternativ kan endast användas med \`check\` och \`fix\`. +Det kan inte användas med \`sync\` och \`scrub\`, eftersom de alltid +behandlar hela arrayen. +.TP +.B \-d, \-\-filter\-disk NAME +Filtrerar diskarna att behandla i \`check\`, \`fix\`, \`up\` och \`down\`. +Du måste specificera ett disk\-namn som definieras i konfigurations\- +filen. +Du kan också specificera paritetsdiskar med namnen: \`parity\`, \`2\-parity\`, +\`3\-parity\`, etc., för att begränsa operationer till en specifik paritetsdisk. +Om du kombinerar flera \-\-filter, \-\-filter\-disk och \-\-filter\-missing alternativ, +väljs endast filer som matchar alla filter. +Detta alternativ kan användas flera gånger. +Detta alternativ kan endast användas med \`check\`, \`fix\`, \`up\` och \`down\`. +Det kan inte användas med \`sync\` och \`scrub\`, eftersom de alltid +behandlar hela arrayen. +.TP +.B \-m, \-\-filter\-missing +Filtrerar filerna att behandla i \`check\` och \`fix\`. +Endast filerna som saknas eller har raderats från arrayen behandlas. +När det används med \`fix\`, fungerar detta som ett \`undelete\`\-kommando. +Om du kombinerar flera \-\-filter, \-\-filter\-disk och \-\-filter\-missing alternativ, +väljs endast filer som matchar alla filter. +Detta alternativ kan endast användas med \`check\` och \`fix\`. +Det kan inte användas med \`sync\` och \`scrub\`, eftersom de alltid +behandlar hela arrayen. +.TP +.B \-e, \-\-filter\-error +Behandlar filerna med fel i \`check\` och \`fix\`. +Det behandlar endast filer som har block markerade med tysta +eller input/output\-fel under \`sync\` och \`scrub\`, som listas i \`status\`. +Detta alternativ kan endast användas med \`check\` och \`fix\`. +.TP +.B \-p, \-\-plan PERC|bad|new|full +Väljer skrubbplanen. Om PERC är ett numeriskt värde från 0 till 100, +tolkas det som procentandelen av block som ska skrubbas. +Istället för en procentsats kan du specificera en plan: +\`bad\` skrubbar dåliga block, \`new\` skrubbar block som ännu inte skrubbats, +och \`full\` skrubbar allt. +Detta alternativ kan endast användas med \`scrub\`. +.TP +.B \-o, \-\-older\-than DAYS +Väljer den äldsta delen av arrayen att behandla i \`scrub\`. +DAYS är den minsta åldern i dagar för ett block att skrubbas; +standard är 10. +Block markerade som dåliga skrubbas alltid oavsett detta alternativ. +Detta alternativ kan endast användas med \`scrub\`. +.TP +.B \-a, \-\-audit\-only +I \`check\`, verifierar hashen av filerna utan +att kontrollera paritetsdata. +Om du bara är intresserad av att kontrollera filens data, kan detta +alternativ avsevärt påskynda kontrollprocessen. +Detta alternativ kan endast användas med \`check\`. +.TP +.B \-h, \-\-pre\-hash +I \`sync\`, kör en preliminär hash\-fas av all ny data +för ytterligare verifiering innan paritetsberäkningen. +Vanligtvis görs ingen preliminär hashning i \`sync\`, och den nya +datan hashberäknas precis innan paritetsberäkningen när den läses +för första gången. +Denna process sker när systemet är under +tung belastning, med alla diskar snurrande och en upptagen CPU. +Detta är ett extremt tillstånd för maskinen, och om den har ett +latent hårdvaruproblem, kan tysta fel gå obemärkt förbi +eftersom datan ännu inte har hashberäknats. +För att undvika denna risk kan du aktivera \`pre\-hash\`\-läget för att få +all data läst två gånger för att säkerställa dess integritet. +Detta alternativ verifierar också filer som flyttats inom arrayen +för att säkerställa att flyttoperationen lyckades och, om nödvändigt, +låter dig köra en fix\-operation innan du fortsätter. +Detta alternativ kan endast användas med \`sync\`. +.TP +.B \-i, \-\-import DIR +Importerar från den specificerade katalogen alla filer som raderats +från arrayen efter den senaste \`sync\`. +Om du fortfarande har sådana filer, kan de användas av \`check\` +och \`fix\` för att förbättra återställningsprocessen. +Filerna läses, inklusive i underkataloger, och identifieras +oavsett deras namn. +Detta alternativ kan endast användas med \`check\` och \`fix\`. +.TP +.B \-s, \-\-spin\-down\-on\-error +Vid något fel, snurrar ner alla hanterade diskar innan den avslutas med +en statuskod som inte är noll. Detta förhindrar att enheterna +förblir aktiva och snurrar efter en avbruten operation, +vilket hjälper till att undvika onödig värmeuppbyggnad och ström\- +förbrukning. Använd detta alternativ för att säkerställa att diskar stoppas säkert +även när ett kommando misslyckas. +.TP +.B \-w, \-\-bw\-limit RATE +Tillämpar en global bandbreddsbegränsning för alla diskar. RATE är +antalet byte per sekund. Du kan specificera en multiplikator +som K, M eller G (t.ex. \-\-bw\-limit 1G). +.TP +.B \-A, \-\-stats +Aktiverar en utökad statusvy som visar ytterligare information. +Skärmen visar två diagram: +Det första diagrammet visar antalet buffrade strippar för varje +disk, tillsammans med filsökvägen för filen som för närvarande används +på den disken. Vanligtvis kommer den långsammaste disken att ha +ingen buffert tillgänglig, vilket bestämmer den maximalt uppnåeliga +bandbredden. +Det andra diagrammet visar procentandelen tid som spenderats i väntan +under de senaste 100 sekunderna. Den långsammaste disken förväntas +orsaka större delen av väntetiden, medan andra diskar bör ha +liten eller ingen väntetid eftersom de kan använda sina buffrade strippar. +Detta diagram visar också den tid som spenderats i väntan på hash\- +beräkningar och RAID\-beräkningar. +Alla beräkningar körs parallellt med diskoperationer. +Därför, så länge det finns mätbar väntetid för minst en disk, +indikerar det att CPU:n är snabb nog att +hålla jämna steg med arbetsbelastningen. +.TP +.B \-Z, \-\-force\-zero +Tvingar den osäkra operationen att synkronisera en fil med noll +storlek som tidigare var icke\-noll. +Om SnapRAID upptäcker ett sådant tillstånd, stoppar det att fortsätta +om du inte specificerar detta alternativ. +Detta gör att du enkelt kan upptäcka när, efter en systemkrasch, +vissa filer som användes trunkerades. +Detta är ett möjligt tillstånd i Linux med filsystemen ext3/ext4. +Detta alternativ kan endast användas med \`sync\`. +.TP +.B \-E, \-\-force\-empty +Tvingar den osäkra operationen att synkronisera en disk där alla +ursprungliga filer saknas. +Om SnapRAID upptäcker att alla filer som ursprungligen fanns +på disken saknas eller har skrivits om, stoppar det att fortsätta +om du inte specificerar detta alternativ. +Detta gör att du enkelt kan upptäcka när ett datafilsystem inte är +monterat. +Detta alternativ kan endast användas med \`sync\`. +.TP +.B \-U, \-\-force\-uuid +Tvingar den osäkra operationen att synkronisera, kontrollera och fixa +med diskar som har ändrat sin UUID. +Om SnapRAID upptäcker att vissa diskar har ändrat UUID, +stoppar det att fortsätta om du inte specificerar detta alternativ. +Detta gör att du kan upptäcka när dina diskar är monterade på fel +monteringspunkter. +Det är dock tillåtet att ha en enda UUID\-ändring med +enkel paritet, och fler med multipel paritet, eftersom detta är +det normala fallet när man byter ut diskar efter en återställning. +Detta alternativ kan endast användas med \`sync\`, \`check\` eller +\`fix\`. +.TP +.B \-D, \-\-force\-device +Tvingar den osäkra operationen att fixa med otillgängliga diskar +eller med diskar på samma fysiska enhet. +Till exempel, om du förlorade två datadisker och har en reservdisk för att återställa +endast den första, kan du ignorera den andra otillgängliga disken. +Eller, om du vill återställa en disk i det lediga utrymme som finns kvar på en +redan använd disk, dela samma fysiska enhet. +Detta alternativ kan endast användas med \`fix\`. +.TP +.B \-N, \-\-force\-nocopy +I \`sync\`, \`check\` och \`fix\`, inaktiverar heuristiken för kopieringsdetektering. +Utan detta alternativ antar SnapRAID att filer med samma +attribut, såsom namn, storlek och tidsstämpel, är kopior med +samma data. +Detta möjliggör identifiering av kopierade eller flyttade filer från en disk +till en annan och återanvänder den redan beräknade hash\-informationen +för att upptäcka tysta fel eller för att återställa saknade filer. +I vissa sällsynta fall kan detta beteende leda till falska positiva +eller en långsam process på grund av många hash\-verifieringar, och detta +alternativ låter dig lösa sådana problem. +Detta alternativ kan endast användas med \`sync\`, \`check\` och \`fix\`. +.TP +.B \-F, \-\-force\-full +I \`sync\`, tvingar en fullständig omberäkning av pariteten. +Detta alternativ kan användas när du lägger till en ny paritetsnivå eller om +du återgick till en gammal content\-fil med mer aktuell paritetsdata. +Istället för att återskapa pariteten från grunden låter detta dig +återanvända hasharna som finns i content\-filen för att validera data +och bibehålla dataskyddet under \`sync\`\-processen med hjälp av +den befintliga paritetsdatan. +Detta alternativ kan endast användas med \`sync\`. +.TP +.B \-R, \-\-force\-realloc +I \`sync\`, tvingar en fullständig omallokering av filer och ombyggnad av pariteten. +Detta alternativ kan användas för att helt omallokera alla filer, +ta bort fragmentering, samtidigt som hasharna som finns i content\- +filen återanvänds för att validera data. +Detta alternativ kan endast användas med \`sync\`. +VARNING! Detta alternativ är endast för experter, och det rekommenderas +starkt att inte använda det. +Du HAR INGET dataskydd under \`sync\`\-operationen. +.TP +.B \-l, \-\-log FILE +Skriver en detaljerad logg till den specificerade filen. +Om detta alternativ inte specificeras, skrivs oväntade fel ut +på skärmen, vilket potentiellt kan leda till överdriven utdata i händelse av +många fel. När \-l, \-\-log specificeras, skrivs endast +fatala fel som får SnapRAID att stoppa ut +på skärmen. +Om sökvägen börjar med \'>>\', öppnas filen +i tilläggsläge. Förekomster av \'%D\' och \'%T\' i namnet ersätts +med datum och tid i formatet YYYYMMDD respektive +HHMMSS. I Windows batch\-filer måste du dubblera +\'%\'\-tecknet, t.ex. result\-%%D.log. För att använda \'>>\' måste du +omsluta namnet i citattecken, t.ex. \`\[dq]>>result.log\[dq]\`. +För att skicka ut loggen till standardutdata eller standardfel, +kan du använda \`\[dq]>&1\[dq]\` respektive \`\[dq]>&2\[dq]\`. +Se filen snapraid_log.txt eller man\-sidan för beskrivningar av logg\-taggar. +.TP +.B \-L, \-\-error\-limit NUMBER +Anger en ny felgräns innan körningen stoppas. +Som standard stoppar SnapRAID om det stöter på mer än 100 +input/output\-fel, vilket indikerar att en disk troligen håller på att misslyckas. +Detta alternativ påverkar \`sync\` och \`scrub\`, som tillåts +att fortsätta efter den första uppsättningen diskfel för att försöka +slutföra sina operationer. +Däremot stoppar \`check\` och \`fix\` alltid vid det första felet. +.TP +.B \-S, \-\-start BLKSTART +Börjar behandlingen från det specificerade +blocknumret. Detta kan vara användbart för att försöka igen att kontrollera +eller fixa specifika block i händelse av en skadad disk. +Detta alternativ är främst för avancerad manuell återställning. +.TP +.B \-B, \-\-count BLKCOUNT +Behandlar endast det specificerade antalet block. +Detta alternativ är främst för avancerad manuell återställning. +.TP +.B \-C, \-\-gen\-conf CONTENT +Genererar en dummy\-konfigurationsfil från en befintlig +content\-fil. +Konfigurationsfilen skrivs till standardutdata +och skriver inte över en befintlig fil. +Denna konfigurationsfil innehåller också den information +som behövs för att rekonstruera diskmonteringspunkterna om du +förlorar hela systemet. +.TP +.B \-v, \-\-verbose +Skriver ut mer information på skärmen. +Om det specificeras en gång, skrivs exkluderade filer +och ytterligare statistik ut. +Detta alternativ har ingen effekt på loggfilerna. +.TP +.B \-q, \-\-quiet +Skriver ut mindre information på skärmen. +Om det specificeras en gång, tas förloppsindikatorn bort; två gånger, +de pågående operationerna; tre gånger, informations\- +meddelandena; fyra gånger, statusmeddelandena. +Fatala fel skrivs alltid ut på skärmen. +Detta alternativ har ingen effekt på loggfilerna. +.TP +.B \-H, \-\-help +Skriver ut en kort hjälpskärm. +.TP +.B \-V, \-\-version +Skriver ut programversionen. +.SH KONFIGURATION +SnapRAID kräver en konfigurationsfil för att veta var din disk\-array +finns och var paritetsinformationen ska lagras. +.PP +I Unix används filen \`/usr/local/etc/snapraid.conf\` om den finns, +annars \`/etc/snapraid.conf\`. +I Windows används filen \`snapraid.conf\` i samma +katalog som \`snapraid.exe\`. +.PP +Den måste innehålla följande alternativ (skiftlägeskänsligt): +.SS parity FIL [,FIL] ... +Definierar de filer som ska användas för att lagra paritetsinformationen. +Pariteten möjliggör skydd från ett enda disk\- +fel, liknande RAID5. +.PP +Du kan specificera flera filer, som måste finnas på olika diskar. +När en fil inte kan växa mer, används nästa fil. +Det totala tillgängliga utrymmet måste vara minst lika stort som den största datadisken i +arrayen. +.PP +Du kan lägga till ytterligare paritetsfiler senare, men du +kan inte ändra ordning på eller ta bort dem. +.PP +Att hålla paritetsdiskarna reserverade för paritet säkerställer att +de inte blir fragmenterade, vilket förbättrar prestandan. +.PP +I Windows lämnas 256 MB oanvänt på varje disk för att undvika +varningen om fulla diskar. +.PP +Detta alternativ är obligatoriskt och kan endast användas en gång. +.SS (2,3,4,5,6)\-parity FIL [,FIL] ... +Definierar de filer som ska användas för att lagra extra paritetsinformation. +.PP +För varje paritetsnivå som specificeras aktiveras en ytterligare skyddsnivå: +.PD 0 +.IP \(bu +2\-parity möjliggör RAID6 dubbel paritet. +.IP \(bu +3\-parity möjliggör trippel paritet. +.IP \(bu +4\-parity möjliggör fyrdubbel (fyra) paritet. +.IP \(bu +5\-parity möjliggör penta (fem) paritet. +.IP \(bu +6\-parity möjliggör hexa (sex) paritet. +.PD +.PP +Varje paritetsnivå kräver närvaro av alla föregående paritets\- +nivåer. +.PP +Samma överväganden som för alternativet \'parity\' gäller. +.PP +Dessa alternativ är valfria och kan endast användas en gång. +.SS z\-parity FIL [,FIL] ... +Definierar en alternativ fil och ett format för att lagra trippel paritet. +.PP +Detta alternativ är ett alternativ till \'3\-parity\', främst avsett för +lågpresterande processorer som ARM eller AMD Phenom, Athlon och Opteron som inte +stöder SSSE3\-instruktionsuppsättningen. I sådana fall ger det +bättre prestanda. +.PP +Detta format liknar, men är snabbare än, det som används av ZFS RAIDZ3. +Liksom ZFS fungerar det inte utöver trippel paritet. +.PP +När du använder \'3\-parity\' kommer du att varnas om det rekommenderas att använda +formatet \'z\-parity\' för prestandaförbättring. +.PP +Det är möjligt att konvertera från ett format till ett annat genom att justera +konfigurationsfilen med önskad z\-parity eller 3\-parity fil +och använda \'fix\' för att återskapa den. +.SS content FIL +Definierar den fil som ska användas för att lagra listan och checksummorna för alla +filer som finns i din disk\-array. +.PP +Den kan placeras på en disk som används för data, paritet eller +någon annan tillgänglig disk. +Om du använder en datadisk exkluderas denna fil automatiskt +från \`sync\`\-processen. +.PP +Detta alternativ är obligatoriskt och kan användas flera gånger för att spara +flera kopior av samma fil. +.PP +Du måste lagra minst en kopia för varje paritetsdisk som används +plus en. Att använda ytterligare kopior skadar inte. +.SS data NAMN KATALOG +Definierar namnet och monteringspunkten för datadiskarna i +arrayen. NAMN används för att identifiera disken och måste +vara unikt. KATALOG är monteringspunkten för disken i +filsystemet. +.PP +Du kan ändra monteringspunkten vid behov, så länge +du behåller NAMN fixerat. +.PP +Du bör använda ett alternativ för varje datadisk i arrayen. +.PP +Du kan byta namn på en disk senare genom att ändra NAMN direkt +i konfigurationsfilen och sedan köra ett \'sync\'\-kommando. +I händelse av namnbyte görs associationen med hjälp av den lagrade +UUID:n för diskarna. +.SS nohidden +Exkluderar alla dolda filer och kataloger. +I Unix är dolda filer de som börjar med \`.\`. +I Windows är de de med det dolda attributet. +.SS exclude/include MÖNSTER +Definierar fil\- eller katalogmönstren att exkludera eller inkludera +i sync\-processen. +Alla mönster behandlas i den specificerade ordningen. +.PP +Om det första mönstret som matchar är ett \`exclude\`\-mönster, +exkluderas filen. Om det är ett \`include\`\-mönster, inkluderas filen. +Om inget mönster matchar, exkluderas filen om det sista mönstret +som specificerats är ett \`include\`\-mönster, eller inkluderas om det sista mönstret +som specificerats är ett \`exclude\`\-mönster. +.PP +Se avsnittet MÖNSTER för mer information om mönster\- +specifikationer. +.PP +Detta alternativ kan användas flera gånger. +.SS blocksize STORLEK_I_KIBIBYTES +Definierar den grundläggande blockstorleken i kibibytes för pariteten. +En kibibyte är 1024 byte. +.PP +Standard blockstorlek är 256, vilket bör fungera för de flesta fall. +.PP +VARNING! Detta alternativ är endast för experter, och det rekommenderas +starkt att inte ändra detta värde. För att ändra detta värde i framtiden, +kommer du att behöva återskapa hela pariteten! +.PP +En anledning att använda en annan blockstorlek är om du har många små +filer, i storleksordningen miljoner. +.PP +För varje fil, även om den bara är några byte, allokeras ett helt block paritet, +och med många filer kan detta leda till betydande oanvänt paritetsutrymme. +När du helt fyller paritetsdisken, är du inte +tillåten att lägga till fler filer på datadiskarna. +Det bortkastade paritetsutrymmet ackumuleras dock inte över datadiskar. +Bortkastat utrymme som härrör från ett högt antal filer på en datadisk begränsar endast +mängden data på den datadisken, inte andra. +.PP +Som en approximation kan du anta att hälften av blockstorleken är +bortkastad för varje fil. Till exempel, med 100 000 filer och en 256 KiB +blockstorlek, kommer du att slösa 12,8 GB paritet, vilket kan resultera +i 12,8 GB mindre utrymme tillgängligt på datadisken. +.PP +Du kan kontrollera mängden bortkastat utrymme på varje disk med hjälp av \`status\`. +Detta är mängden utrymme du måste lämna ledigt på data\- +diskarna eller använda för filer som inte ingår i arrayen. +Om detta värde är negativt betyder det att du är nära att fylla +pariteten, och det representerar det utrymme du fortfarande kan slösa. +.PP +För att undvika detta problem kan du använda en större partition för paritet. +Om till exempel paritetspartitionen är 12,8 GB större än datadiskarna, +har du tillräckligt med extra utrymme för att hantera upp till 100 000 +filer på varje datadisk utan något bortkastat utrymme. +.PP +Ett trick för att få en större paritetspartition i Linux är att formatera den +med kommandot: +.PP +.RS 4 +mkfs.ext4 \-m 0 \-T largefile4 DEVICE +.PD 0 +.PD +.RE +.PP +Detta resulterar i cirka 1,5% extra utrymme, ungefär 60 GB för +en 4 TB\-disk, vilket möjliggör cirka 460 000 filer på varje datadisk utan +något bortkastat utrymme. +.SS hashsize STORLEK_I_BYTE +Definierar hash\-storleken i byte för de sparade blocken. +.PP +Standard hash\-storlek är 16 byte (128 bitar), vilket bör fungera +för de flesta fall. +.PP +VARNING! Detta alternativ är endast för experter, och det rekommenderas +starkt att inte ändra detta värde. För att ändra detta värde i framtiden, +kommer du att behöva återskapa hela pariteten! +.PP +En anledning att använda en annan hash\-storlek är om ditt system har +begränsat minne. Som en tumregel kräver SnapRAID vanligtvis +1 GiB RAM för varje 16 TB data i arrayen. +.PP +Specifikt, för att lagra hasharna av datan, kräver SnapRAID +ungefär TS*(1+HS)/BS byte RAM, +där TS är den totala storleken i byte av din disk\-array, BS är +blockstorleken i byte och HS är hash\-storleken i byte. +.PP +Till exempel, med 8 diskar på 4 TB, en blockstorlek på 256 KiB +(1 KiB = 1024 byte) och en hash\-storlek på 16, får du: +.PP +RAM = (8 * 4 * 10^12) * (1+16) / (256 * 2^10) = 1,93 GiB +.PD 0 +.PD +.PP +Om du byter till en hash\-storlek på 8 får du: +.PP +RAM = (8 * 4 * 10^12) * (1+8) / (256 * 2^10) = 1,02 GiB +.PD 0 +.PD +.PP +Om du byter till en blockstorlek på 512 får du: +.PP +RAM = (8 * 4 * 10^12) * (1+16) / (512 * 2^10) = 0,96 GiB +.PD 0 +.PD +.PP +Om du byter till både en hash\-storlek på 8 och en blockstorlek på 512 får du: +.PP +RAM = (8 * 4 * 10^12) * (1+8) / (512 * 2^10) = 0,51 GiB +.PD 0 +.PD +.SS autosave STORLEK_I_GIGABYTES +Sparar automatiskt tillståndet vid synkronisering eller skrubbning efter att den +specificerade mängden GB har behandlats. +Detta alternativ är användbart för att undvika att starta om långa \`sync\`\- +kommandon från början om de avbryts av en maskinkrasch eller någon annan händelse. +.SS temp_limit TEMPERATUR_CELSIUS +Anger den maximalt tillåtna disk\-temperaturen i Celsius. När den specificeras, +kontrollerar SnapRAID periodiskt temperaturen på alla diskar med hjälp av +verktyget smartctl. De aktuella disk\-temperaturerna visas medan +SnapRAID är igång. Om någon disk överskrider denna gräns, stoppas alla operationer +och diskarna snurras ner (sätts i standby) under den tid +som definieras av alternativet \`temp_sleep\`. Efter viloperioden återupptas operationerna, +och kan potentiellt pausas igen om temperaturgränsen nås +ännu en gång. +.PP +Under drift analyserar SnapRAID också värmekurvan för varje +disk och uppskattar den långsiktiga stabila temperaturen de förväntas +nå om aktiviteten fortsätter. Uppskattningen utförs först efter att +disk\-temperaturen har ökat fyra gånger, vilket säkerställer att tillräckligt med +datapoäng finns tillgängliga för att fastställa en pålitlig trend. +Denna förutsagda stabila temperatur visas inom parentes bredvid den +aktuella värdet och hjälper till att bedöma om systemets kylning är +tillräcklig. Denna uppskattade temperatur är endast för informationssyfte +och har ingen effekt på SnapRAIDs beteende. Programmens +åtgärder baseras enbart på de faktiska uppmätta disk\-temperaturerna. +.PP +För att utföra denna analys behöver SnapRAID en referens för system\- +temperaturen. Det försöker först läsa den från tillgängliga hårdvaru\- +sensorer. Om ingen system\-sensor kan nås, används den lägsta disk\- +temperaturen som mättes vid start av körningen som en reservreferens. +.PP +Normalt visar SnapRAID endast temperaturen på den hetaste disken. +För att visa temperaturen på alla diskar, använd alternativet \-A eller \-\-stats. +.SS temp_sleep TID_I_MINUTER +Anger standby\-tiden, i minuter, när temperaturgränsen har +nåtts. Under denna period förblir diskarna nedsnurrade. Standard +är 5 minuter. +.SS pool KATALOG +Definierar poolningskatalogen där den virtuella vyn av disk\- +arrayen skapas med hjälp av kommandot \`pool\`. +.PP +Katalogen måste redan existera. +.SS share UNC_KATALOG +Definierar Windows UNC\-sökvägen som krävs för att få åtkomst till diskarna på distans. +.PP +Om detta alternativ specificeras, använder de symboliska länkarna som skapats i pool\- +katalogen denna UNC\-sökväg för att få åtkomst till diskarna. +Utan detta alternativ använder de genererade symboliska länkarna endast lokala sökvägar, +vilket inte tillåter delning av pool\-katalogen över nätverket. +.PP +De symboliska länkarna bildas med hjälp av den specificerade UNC\-sökvägen, lägger till +disk\-namnet som specificeras i \`data\`\-alternativet, och lägger slutligen till filens +katalog och namn. +.PP +Detta alternativ krävs endast för Windows. +.SS smartctl DISK/PARITY ALTERNATIV... +Definierar anpassade smartctl\-alternativ för att få SMART\-attributen för +varje disk. Detta kan krävas för RAID\-kontroller och vissa USB\- +diskar som inte kan upptäckas automatiskt. Platsinnehavaren %s ersätts av +enhetens namn, men är valfri för fixerade enheter som RAID\-kontroller. +.PP +DISK är samma disk\-namn som specificeras i \`data\`\-alternativet. +PARITY är ett av paritetsnamnen: \`parity\`, \`2\-parity\`, \`3\-parity\`, +\`4\-parity\`, \`5\-parity\`, \`6\-parity\` eller \`z\-parity\`. +.PP +I de specificerade ALTERNATIVEN ersätts strängen \`%s\` med +enhetens namn. För RAID\-kontroller är enheten +sannolikt fixerad, och du kanske inte behöver använda \`%s\`. +.PP +Se smartmontools dokumentation för möjliga alternativ: +.PP +.RS 4 +https://www.smartmontools.org/wiki/Supported_RAID\-Controllers +.PD 0 +.PP +.PD +https://www.smartmontools.org/wiki/Supported_USB\-Devices +.PD 0 +.PD +.RE +.PP +Till exempel: +.PP +.RS 4 +smartctl parity \-d sat %s +.PD 0 +.PD +.RE +.SS smartignore DISK/PARITY ATTR [ATTR...] +Ignorerar det specificerade SMART\-attributet vid beräkning av sannolikheten +för diskfel. Detta alternativ är användbart om en disk rapporterar ovanliga eller +vilseledande värden för ett visst attribut. +.PP +DISK är samma disk\-namn som specificeras i \`data\`\-alternativet. +PARITY är ett av paritetsnamnen: \`parity\`, \`2\-parity\`, \`3\-parity\`, +\`4\-parity\`, \`5\-parity\`, \`6\-parity\` eller \`z\-parity\`. +Det speciella värdet * kan användas för att ignorera attributet på alla diskar. +.PP +Till exempel, för att ignorera attributet \`Current Pending Sector Count\` på +alla diskar: +.PP +.RS 4 +smartignore * 197 +.PD 0 +.PD +.RE +.PP +För att ignorera det endast på den första paritetsdisken: +.PP +.RS 4 +smartignore parity 197 +.PD 0 +.PD +.RE +.SS Exempel +Ett exempel på en typisk konfiguration för Unix är: +.PP +.RS 4 +parity /mnt/diskp/snapraid.parity +.PD 0 +.PP +.PD +content /mnt/diskp/snapraid.content +.PD 0 +.PP +.PD +content /var/snapraid/snapraid.content +.PD 0 +.PP +.PD +data d1 /mnt/disk1/ +.PD 0 +.PP +.PD +data d2 /mnt/disk2/ +.PD 0 +.PP +.PD +data d3 /mnt/disk3/ +.PD 0 +.PP +.PD +exclude /lost+found/ +.PD 0 +.PP +.PD +exclude /tmp/ +.PD 0 +.PP +.PD +smartctl d1 \-d sat %s +.PD 0 +.PP +.PD +smartctl d2 \-d usbjmicron %s +.PD 0 +.PP +.PD +smartctl parity \-d areca,1/1 /dev/sg0 +.PD 0 +.PP +.PD +smartctl 2\-parity \-d areca,2/1 /dev/sg0 +.PD 0 +.PD +.RE +.PP +Ett exempel på en typisk konfiguration för Windows är: +.PP +.RS 4 +parity E:\\snapraid.parity +.PD 0 +.PP +.PD +content E:\\snapraid.content +.PD 0 +.PP +.PD +content C:\\snapraid\\snapraid.content +.PD 0 +.PP +.PD +data d1 G:\\array\\ +.PD 0 +.PP +.PD +data d2 H:\\array\\ +.PD 0 +.PP +.PD +data d3 I:\\array\\ +.PD 0 +.PP +.PD +exclude Thumbs.db +.PD 0 +.PP +.PD +exclude \\$RECYCLE.BIN +.PD 0 +.PP +.PD +exclude \\System Volume Information +.PD 0 +.PP +.PD +smartctl d1 \-d sat %s +.PD 0 +.PP +.PD +smartctl d2 \-d usbjmicron %s +.PD 0 +.PP +.PD +smartctl parity \-d areca,1/1 /dev/arcmsr0 +.PD 0 +.PP +.PD +smartctl 2\-parity \-d areca,2/1 /dev/arcmsr0 +.PD 0 +.PD +.RE +.SH MöNSTER +Mönster används för att välja en delmängd av filer att exkludera eller inkludera i +processen. +.PP +Det finns fyra olika typer av mönster: +.TP +.B FIL +Väljer alla filer som heter FIL. Du kan använda alla globbing\- +tecken som * och ?, och teckenklasser som [a\-z]. +Detta mönster gäller endast för filer, inte kataloger. +.TP +.B KATALOG/ +Väljer alla kataloger som heter KATALOG och allt inuti. +Du kan använda alla globbing\-tecken som * och ?. +Detta mönster gäller endast för kataloger, inte filer. +.TP +.B /SÖKVÄG/FIL +Väljer den exakt specificerade filsökvägen. Du kan använda alla +globbing\-tecken som * och ?, men de matchar aldrig ett +katalog\-snedstreck. +Detta mönster gäller endast för filer, inte kataloger. +.TP +.B /SÖKVÄG/KATALOG/ +Väljer den exakt specificerade katalogsökvägen och allt +inuti. Du kan använda alla globbing\-tecken som * och ?, men +de matchar aldrig ett katalog\-snedstreck. +Detta mönster gäller endast för kataloger, inte filer. +.PP +När du specificerar en absolut sökväg som börjar med /, tillämpas den vid +array\-rotkatalogen, inte den lokala filsystemets rotkatalog. +.PP +I Windows kan du använda bakåtsnedstrecket \\ istället för framåtsnedstrecket /. +Windows systemkataloger, junction points, monteringspunkter och andra Windows +speciella kataloger behandlas som filer, vilket innebär att för att exkludera +dem måste du använda en fil\-regel, inte en katalog\-regel. +.PP +Om filnamnet innehåller tecknet \'*\', \'?\', \'[\', +eller \']\', måste du undvika det för att förhindra att det tolkas som ett +globbing\-tecken. I Unix är undvikande\-tecknet \'\\\'; i Windows är det \'^\'. +När mönstret är på kommandoraden måste du dubbla undvikande\- +tecknet för att förhindra att det tolkas av kommandoskalet. +.PP +I konfigurationsfilen kan du använda olika strategier för att filtrera +filerna som ska behandlas. +Det enklaste tillvägagångssättet är att endast använda \`exclude\`\-regler för att ta bort alla +filer och kataloger du inte vill behandla. Till exempel: +.PP +.RS 4 +# Exkluderar alla filer som heter \`*.unrecoverable\` +.PD 0 +.PP +.PD +exclude *.unrecoverable +.PD 0 +.PP +.PD +# Exkluderar rotkatalogen \`/lost+found\` +.PD 0 +.PP +.PD +exclude /lost+found/ +.PD 0 +.PP +.PD +# Exkluderar alla underkataloger som heter \`tmp\` +.PD 0 +.PP +.PD +exclude tmp/ +.PD 0 +.PD +.RE +.PP +Det motsatta tillvägagångssättet är att definiera endast de filer du vill behandla, med +endast \`include\`\-regler. Till exempel: +.PP +.RS 4 +# Inkluderar endast vissa kataloger +.PD 0 +.PP +.PD +include /movies/ +.PD 0 +.PP +.PD +include /musics/ +.PD 0 +.PP +.PD +include /pictures/ +.PD 0 +.PD +.RE +.PP +Det sista tillvägagångssättet är att blanda \`exclude\`\- och \`include\`\-regler. I detta fall +är ordningen på reglerna viktig. Tidigare regler har +företräde framför senare. +För att förenkla kan du lista alla \`exclude\`\-regler först och sedan +alla \`include\`\-regler. Till exempel: +.PP +.RS 4 +# Exkluderar alla filer som heter \`*.unrecoverable\` +.PD 0 +.PP +.PD +exclude *.unrecoverable +.PD 0 +.PP +.PD +# Exkluderar alla underkataloger som heter \`tmp\` +.PD 0 +.PP +.PD +exclude tmp/ +.PD 0 +.PP +.PD +# Inkluderar endast vissa kataloger +.PD 0 +.PP +.PD +include /movies/ +.PD 0 +.PP +.PD +include /musics/ +.PD 0 +.PP +.PD +include /pictures/ +.PD 0 +.PD +.RE +.PP +På kommandoraden, med hjälp av alternativet \-f, kan du bara använda \`include\`\- +mönster. Till exempel: +.PP +.RS 4 +# Kontrollerar endast .mp3\-filerna. +.PD 0 +.PP +.PD +# I Unix, använd citattecken för att undvika globbing\-expansion av skalet. +.PD 0 +.PP +.PD +snapraid \-f \[dq]*.mp3\[dq] check +.PD 0 +.PD +.RE +.PP +I Unix, när du använder globbing\-tecken på kommandoraden, måste du +citattecken dem för att förhindra att skalet expanderar dem. +.SH INNEHåLL (CONTENT) +SnapRAID lagrar listan och checksummorna för dina filer i content\-filen. +.PP +Det är en binär fil som listar alla filer som finns i din disk\-array, +tillsammans med alla checksummor för att verifiera deras integritet. +.PP +Denna fil läses och skrivs av kommandona \`sync\` och \`scrub\` och +läses av kommandona \`fix\`, \`check\` och \`status\`. +.SH PARITET (PARITY) +SnapRAID lagrar paritetsinformationen för din array i parity\- +filerna. +.PP +Dessa är binära filer som innehåller den beräknade pariteten för alla +block definierade i \`content\`\-filen. +.PP +Dessa filer läses och skrivs av kommandona \`sync\` och \`fix\` och +läses endast av kommandona \`scrub\` och \`check\`. +.SH KODNING +SnapRAID i Unix ignorerar all kodning. Det läser och lagrar +filnamnen med samma kodning som används av filsystemet. +.PP +I Windows konverteras alla namn som läses från filsystemet och +behandlas i UTF\-8\-format. +.PP +För att få filnamn utskrivna korrekt måste du ställa in Windows\- +konsolen till UTF\-8\-läge med kommandot \`chcp 65001\` och använda +ett TrueType\-typsnitt som \`Lucida Console\` som konsoltypsnitt. +Detta påverkar endast de utskrivna filnamnen; om du +omdirigerar konsolutdata till en fil, är den resulterande filen alltid +i UTF\-8\-format. +.SH UPPHOVSRäTT (COPYRIGHT) +Denna fil är Copyright (C) 2025 Andrea Mazzoleni +.SH SE ÄVEN (SEE ALSO) +snapraid_log(1), rsync(1) diff --git a/man/zh/snapraid.1 b/man/zh/snapraid.1 new file mode 100644 index 00000000..7a4b37a6 --- /dev/null +++ b/man/zh/snapraid.1 @@ -0,0 +1,1734 @@ +.TH "磁盘阵列的 SnapRAID 备份" 1 +.SH NAME +snapraid \- 磁盘阵列的 SnapRAID 备份 +.SH SYNOPSIS +snapraid [\-c, \-\-conf CONFIG] +.PD 0 +.PP +.PD + [\-f, \-\-filter PATTERN] [\-d, \-\-filter\-disk NAME] +.PD 0 +.PP +.PD + [\-m, \-\-filter\-missing] [\-e, \-\-filter\-error] +.PD 0 +.PP +.PD + [\-a, \-\-audit\-only] [\-h, \-\-pre\-hash] [\-i, \-\-import DIR] +.PD 0 +.PP +.PD + [\-p, \-\-plan PERC|bad|new|full] +.PD 0 +.PP +.PD + [\-o, \-\-older\-than DAYS] [\-l, \-\-log FILE] +.PD 0 +.PP +.PD + [\-s, \-\-spin\-down\-on\-error] [\-w, \-\-bw\-limit RATE] +.PD 0 +.PP +.PD + [\-Z, \-\-force\-zero] [\-E, \-\-force\-empty] +.PD 0 +.PP +.PD + [\-U, \-\-force\-uuid] [\-D, \-\-force\-device] +.PD 0 +.PP +.PD + [\-N, \-\-force\-nocopy] [\-F, \-\-force\-full] +.PD 0 +.PP +.PD + [\-R, \-\-force\-realloc] +.PD 0 +.PP +.PD + [\-S, \-\-start BLKSTART] [\-B, \-\-count BLKCOUNT] +.PD 0 +.PP +.PD + [\-L, \-\-error\-limit NUMBER] +.PD 0 +.PP +.PD + [\-A, \-\-stats] +.PD 0 +.PP +.PD + [\-v, \-\-verbose] [\-q, \-\-quiet] +.PD 0 +.PP +.PD + status|smart|probe|up|down|diff|sync|scrub|fix|check +.PD 0 +.PP +.PD + |list|dup|pool|devices|touch|rehash +.PD 0 +.PD +.PP +snapraid [\-V, \-\-version] [\-H, \-\-help] [\-C, \-\-gen\-conf CONTENT] +.PD 0 +.PD +.SH DESCRIPTION +SnapRAID 是一款专为磁盘阵列设计的备份程序,它存储奇偶校验信息, +以在最多六个磁盘发生故障时进行数据恢复。 +.PP +SnapRAID 主要面向拥有大型、不常更改文件的家庭媒体中心,提供以下特性: +.PD 0 +.IP \(bu +您可以使用已填充文件的磁盘,无需重新格式化,并像往常一样访问它们。 +.IP \(bu +您的所有数据都会被散列,以确保存储完整性并防止静默损坏。 +.IP \(bu +当故障磁盘数量超过奇偶校验数时,数据丢失仅限于受影响的磁盘; +其他磁盘上的数据仍然可访问。 +.IP \(bu +如果您不小心删除了磁盘上的文件,可以进行恢复。 +.IP \(bu +磁盘可以有不同的尺寸。 +.IP \(bu +您可以随时添加磁盘。 +.IP \(bu +SnapRAID 不会锁定您的数据;您可以随时停止使用它,无需重新格式化或移动数据。 +.IP \(bu +访问文件时,只需一个磁盘转动,从而节省电力并降低噪音。 +.PD +.PP +欲了解更多信息,请访问 SnapRAID 官方网站: +.PP +.RS 4 +https://www.snapraid.it/ +.PD 0 +.PD +.RE +.SH LIMITATIONS +SnapRAID 是 RAID 和备份程序之间的混合体,旨在结合两者的优点。 +然而,在使用它之前,您应该考虑一些限制。 +.PP +主要的限制是,如果一个磁盘发生故障而您最近没有进行同步(sync), +您可能无法完全恢复。 +更具体地说,您可能无法恢复自上次同步操作以来已更改或已删除文件的 +大小所对应的部分。 +即使更改或删除的文件不在发生故障的磁盘上,也会发生这种情况。 +这就是为什么 SnapRAID 更适用于很少更改的数据。 +.PP +另一方面,新添加的文件不会阻止对已有文件的恢复。 +您只会丢失位于发生故障磁盘上的最近添加的文件。 +.PP +SnapRAID 的其他限制包括: +.PD 0 +.IP \(bu +使用 SnapRAID,每个磁盘仍然有单独的文件系统。 +使用 RAID,您可以获得一个单一的大型文件系统。 +.IP \(bu +SnapRAID 不进行数据条带化。 +使用 RAID,您可以通过条带化获得速度提升。 +.IP \(bu +SnapRAID 不支持实时恢复。 +使用 RAID,当磁盘发生故障时,您不必停止工作。 +.IP \(bu +SnapRAID 只能从有限数量的磁盘故障中恢复数据。 +使用备份,您可以从整个磁盘阵列的完全故障中恢复。 +.IP \(bu +仅保存文件名、时间戳、符号链接和硬链接。 +不保存权限、所有权和扩展属性。 +.PD +.SH GETTING STARTED +要使用 SnapRAID,您需要首先选择磁盘阵列中的一个磁盘专用于 +\`parity\`(奇偶校验)信息。使用一个奇偶校验磁盘, +您将能够从单磁盘故障中恢复,类似于 RAID5。 +.PP +如果您想从更多的磁盘故障中恢复,类似于 RAID6, +您必须预留额外的磁盘用于奇偶校验。每增加一个奇偶校验磁盘, +就可以多恢复一个磁盘故障。 +.PP +作为奇偶校验磁盘,您必须选择阵列中最大的磁盘, +因为奇偶校验信息可能会增长到阵列中最大的数据磁盘的大小。 +.PP +这些磁盘将专门用于存储 \`parity\` 文件。 +您不应该在它们上面存储您的数据。 +.PP +然后,您必须定义要使用 SnapRAID 保护的 \`data\`(数据)磁盘。 +如果这些磁盘包含很少更改的数据,保护会更有效。因此, +最好**不要**包含 Windows C:\\ 磁盘或 Unix 的 /home、/var 和 /tmp 目录。 +.PP +文件列表保存在 \`content\`(内容)文件中,通常存储在数据、奇偶校验或 +引导磁盘上。 +该文件包含备份的详细信息,包括所有用于验证其完整性的校验和。 +\`content\` 文件存储有多个副本,每个副本必须位于不同的磁盘上, +以确保存储有多个磁盘故障时,至少有一个副本可用。 +.PP +例如,假设您只对一个奇偶校验保护级别感兴趣,并且您的磁盘位于: +.PP +.RS 4 +/mnt/diskp <\- 选定的奇偶校验磁盘 +.PD 0 +.PP +.PD +/mnt/disk1 <\- 第一个要保护的磁盘 +.PD 0 +.PP +.PD +/mnt/disk2 <\- 第二个要保护的磁盘 +.PD 0 +.PP +.PD +/mnt/disk3 <\- 第三个要保护的磁盘 +.PD 0 +.PD +.RE +.PP +您必须创建配置文件 /etc/snapraid.conf,并包含以下选项: +.PP +.RS 4 +parity /mnt/diskp/snapraid.parity +.PD 0 +.PP +.PD +content /var/snapraid/snapraid.content +.PD 0 +.PP +.PD +content /mnt/disk1/snapraid.content +.PD 0 +.PP +.PD +content /mnt/disk2/snapraid.content +.PD 0 +.PP +.PD +data d1 /mnt/disk1/ +.PD 0 +.PP +.PD +data d2 /mnt/disk2/ +.PD 0 +.PP +.PD +data d3 /mnt/disk3/ +.PD 0 +.PD +.RE +.PP +如果您使用 Windows,您应该使用 Windows 路径格式, +用驱动器号和反斜杠代替斜杠。 +.PP +.RS 4 +parity E:\\snapraid.parity +.PD 0 +.PP +.PD +content C:\\snapraid\\snapraid.content +.PD 0 +.PP +.PD +content F:\\array\\snapraid.content +.PD 0 +.PP +.PD +content G:\\array\\snapraid.content +.PD 0 +.PP +.PD +data d1 F:\\array\\ +.PD 0 +.PP +.PD +data d2 G:\\array\\ +.PD 0 +.PP +.PD +data d3 H:\\array\\ +.PD 0 +.PD +.RE +.PP +如果您有许多磁盘且驱动器号用尽,您可以将磁盘直接挂载到子文件夹中。请参阅: +.PP +.RS 4 +https://www.google.com/search?q=Windows+mount+point +.PD 0 +.PD +.RE +.PP +此时,您已准备好运行 \`sync\` 命令来构建奇偶校验信息。 +.PP +.RS 4 +snapraid sync +.PD 0 +.PD +.RE +.PP +第一次运行此过程可能需要几个小时,具体取决于磁盘上已存在数据的大小。 +如果磁盘是空的,则过程是即时的。 +.PP +您可以随时按 Ctrl+C 停止它,在下次运行时,它将从中断的地方恢复。 +.PP +当此命令完成时,您的数据是**安全的**。 +.PP +现在您可以开始随意使用您的阵列,并定期运行 \`sync\` 命令更新奇偶校验信息。 +.SS Scrubbing +要定期检查数据和奇偶校验的错误,您可以运行 \`scrub\` 命令。 +.PP +.RS 4 +snapraid scrub +.PD 0 +.PD +.RE +.PP +此命令将阵列中的数据与 \`sync\` 命令期间计算的散列进行比较, +以验证完整性。 +.PP +每次运行该命令会检查大约 8% 的阵列,排除在过去 10 天内 +已被 scrub 的数据。 +您可以使用 \-p, \-\-plan 选项来指定不同的量, +并使用 \-o, \-\-older\-than 选项来指定不同的天数。 +例如,要检查 20 天以上块的 5% 阵列,请使用: +.PP +.RS 4 +snapraid \-p 5 \-o 20 scrub +.PD 0 +.PD +.RE +.PP +如果在过程中发现静默错误或输入/输出错误, +相应的块会在 \`content\` 文件中被标记为坏块,并列在 \`status\` 命令中。 +.PP +.RS 4 +snapraid status +.PD 0 +.PD +.RE +.PP +要修复它们,您可以使用 \`fix\` 命令,使用 \-e, \-\-filter\-error 选项过滤坏块: +.PP +.RS 4 +snapraid \-e fix +.PD 0 +.PD +.RE +.PP +在下次 \`scrub\` 时,如果它们确实被修复了,错误将从 \`status\` 报告中消失。 +为了更快,您可以使用 \-p bad 来仅 scrub 标记为坏块的块。 +.PP +.RS 4 +snapraid \-p bad scrub +.PD 0 +.PD +.RE +.PP +在未同步的阵列上运行 \`scrub\` 可能会报告由已删除或已修改文件引起的错误。 +这些错误会在 \`scrub\` 输出中报告,但相关块不会被标记为坏块。 +.SS Pooling +注意:下面描述的 pooling 功能已被 mergefs 工具取代, +mergefs 现在是 SnapRAID 社区推荐的 Linux 用户选项。 +Mergefs 提供了一种更灵活、更高效的方式,将多个驱动器汇集到一个 +统一的挂载点中,允许跨阵列无缝访问文件,而无需依赖符号链接。 +它与 SnapRAID 很好地集成以提供奇偶校验保护,常用于 +OpenMediaVault (OMV) 或自定义 NAS 配置等设置中。 +.PP +要使阵列中的所有文件显示在同一个目录树中, +您可以启用 \`pooling\` 功能。它使用符号链接创建了一个 +阵列中所有文件的只读虚拟视图。 +.PP +您可以在配置文件中使用以下选项配置 \`pooling\` 目录: +.PP +.RS 4 +pool /pool +.PD 0 +.PD +.RE +.PP +或者,如果您使用 Windows,则使用: +.PP +.RS 4 +pool C:\\pool +.PD 0 +.PD +.RE +.PP +然后运行 \`pool\` 命令创建或更新虚拟视图。 +.PP +.RS 4 +snapraid pool +.PD 0 +.PD +.RE +.PP +如果您使用 Unix 平台并希望通过网络将此目录共享给 Windows 或 Unix 机器, +您应该在 /etc/samba/smb.conf 中添加以下选项: +.PP +.RS 4 +# 在 smb.conf 的全局部分 +.PD 0 +.PP +.PD +unix extensions = no +.PD 0 +.PD +.RE +.PP +.RS 4 +# 在 smb.conf 的共享部分 +.PD 0 +.PP +.PD +[pool] +.PD 0 +.PP +.PD +comment = Pool +.PD 0 +.PP +.PD +path = /pool +.PD 0 +.PP +.PD +read only = yes +.PD 0 +.PP +.PD +guest ok = yes +.PD 0 +.PP +.PD +wide links = yes +.PD 0 +.PP +.PD +follow symlinks = yes +.PD 0 +.PD +.RE +.PP +在 Windows 中,通过网络共享符号链接需要客户端远程解析它们。 +要启用此功能,除了共享 pool 目录之外,您还必须独立共享所有磁盘, +使用配置文件中定义的磁盘名称作为共享点。 +您还必须在配置文件的 \`share\` 选项中指定远程客户端访问这些 +共享磁盘所需的 Windows UNC 路径。 +.PP +例如,在名为 \`darkstar\` 的服务器上操作,您可以使用以下选项: +.PP +.RS 4 +data d1 F:\\array\\ +.PD 0 +.PP +.PD +data d2 G:\\array\\ +.PD 0 +.PP +.PD +data d3 H:\\array\\ +.PD 0 +.PP +.PD +pool C:\\pool +.PD 0 +.PP +.PD +share \\\\darkstar +.PD 0 +.PD +.RE +.PP +并通过网络共享以下目录: +.PP +.RS 4 +\\\\darkstar\\pool \-> C:\\pool +.PD 0 +.PP +.PD +\\\\darkstar\\d1 \-> F:\\array +.PD 0 +.PP +.PD +\\\\darkstar\\d2 \-> G:\\array +.PD 0 +.PP +.PD +\\\\darkstar\\d3 \-> H:\\array +.PD 0 +.PD +.RE +.PP +以允许远程客户端访问 \\\\darkstar\\pool 处的所有文件。 +.PP +您可能还需要配置远程客户端,使用以下命令启用对远程符号链接的访问: +.PP +.RS 4 +fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 +.PD 0 +.PD +.RE +.SS Undeleting +SnapRAID 的功能更像一个备份程序而不是 RAID 系统, +它可以使用 \-f, \-\-filter 选项来恢复或取消删除文件到其以前的状态: +.PP +.RS 4 +snapraid fix \-f FILE +.PD 0 +.PD +.RE +.PP +或者对于一个目录: +.PP +.RS 4 +snapraid fix \-f DIR/ +.PD 0 +.PD +.RE +.PP +您也可以使用 \-m, \-\-filter\-missing 选项来仅恢复目录内意外删除的文件, +该选项仅恢复丢失的文件,保持所有其他文件不变。 +.PP +.RS 4 +snapraid fix \-m \-f DIR/ +.PD 0 +.PD +.RE +.PP +或者使用以下命令恢复所有驱动器上所有已删除的文件: +.PP +.RS 4 +snapraid fix \-m +.PD 0 +.PD +.RE +.SS Recovering +最糟糕的情况发生了,您丢失了一个或多个磁盘! +.PP +**不要惊慌!** 您将能够恢复它们! +.PP +您必须做的第一件事是避免对磁盘阵列进行进一步的更改。 +禁用对其的任何远程连接以及任何计划的进程,包括任何计划的 SnapRAID +夜间同步或 scrub。 +.PP +然后继续执行以下步骤。 +.SS STEP 1 \-> 重新配置 +您需要一些空间来恢复,理想情况下是在额外的备用磁盘上, +但外部 USB 磁盘或远程磁盘也足够。 +.PP +修改 SnapRAID 配置文件,使故障磁盘的 \`data\` 或 \`parity\` 选项指向 +一个具有足够空闲空间来恢复文件的位置。 +.PP +例如,如果磁盘 \`d1\` 发生故障,则从: +.PP +.RS 4 +data d1 /mnt/disk1/ +.PD 0 +.PD +.RE +.PP +更改为: +.PP +.RS 4 +data d1 /mnt/new_spare_disk/ +.PD 0 +.PD +.RE +.PP +如果需要恢复的磁盘是奇偶校验磁盘,请更新相应的 \`parity\` 选项。 +如果您有多个故障磁盘,请更新所有它们的配置选项。 +.SS STEP 2 \-> 修复 +运行 fix 命令,并将日志存储在外部文件中: +.PP +.RS 4 +snapraid \-d NAME \-l fix.log fix +.PD 0 +.PD +.RE +.PP +其中 NAME 是磁盘的名称,例如我们前面例子中的 \`d1\`。 +如果需要恢复的磁盘是奇偶校验磁盘,请使用名称 \`parity\`、\`2\-parity\` 等。 +如果您有多个故障磁盘,请使用多个 \-d 选项来指定所有它们。 +.PP +此命令将花费很长时间。 +.PP +确保您有几 GB 的可用空间来存储 fix.log 文件。 +在有足够可用空间的磁盘上运行它。 +.PP +现在您已经恢复了所有可恢复的内容。如果有些文件部分或完全不可恢复, +它们将被重命名并添加 \`.unrecoverable\` 扩展名。 +.PP +您可以通过检查所有以 \`unrecoverable:\` 开头的行,在 fix.log 文件中 +找到所有不可恢复块的详细列表。 +.PP +如果您对恢复不满意,您可以根据需要重试多次。 +.PP +例如,如果您在上次 \`sync\` 之后从阵列中删除了文件, +这可能导致某些文件无法恢复。 +在这种情况下,您可以使用 \-i, \-\-import 选项重试 \`fix\`, +指定这些文件现在在哪里,以便将它们再次包含在恢复过程中。 +.PP +如果您对恢复感到满意,您可以继续进行, +但请注意,在同步之后,您不能再重试 \`fix\` 命令了! +.SS STEP 3 \-> 检查 +作为一项谨慎的检查,您现在可以运行 \`check\` 命令,以确保 +恢复的磁盘上的一切都是正确的。 +.PP +.RS 4 +snapraid \-d NAME \-a check +.PD 0 +.PD +.RE +.PP +其中 NAME 是磁盘的名称,例如我们前面例子中的 \`d1\`。 +.TP +.B \-d 和 \-a 选项告诉 SnapRAID 只检查指定的磁盘并忽略所有奇偶校验数据。 +.PP +此命令将花费很长时间,但如果您不是过于谨慎,可以跳过它。 +.SS STEP 4 \-> 同步 +运行 \`sync\` 命令以将阵列与新磁盘重新同步。 +.PP +.RS 4 +snapraid sync +.PD 0 +.PD +.RE +.PP +如果所有内容都已恢复,此命令是即时的。 +.SH COMMANDS +SnapRAID 提供了一些简单的命令,允许您: +.PD 0 +.IP \(bu +打印阵列的状态 \-> \`status\` +.IP \(bu +控制磁盘 \-> \`smart\`、\`probe\`、\`up\`、\`down\` +.IP \(bu +进行备份/快照 \-> \`sync\` +.IP \(bu +定期检查数据 \-> \`scrub\` +.IP \(bu +恢复上次备份/快照 \-> \`fix\`。 +.PD +.PP +命令必须用小写字母书写。 +.SS status +打印磁盘阵列状态的摘要。 +.PP +它包括有关奇偶校验碎片、块未经检查有多久,以及在 scrubbing +期间遇到的所有记录的静默错误的信息。 +.PP +所提供的信息指的是您上次运行 \`sync\` 的时间。 +不考虑后来的修改。 +.PP +如果检测到坏块,则会列出它们的块号。 +要修复它们,您可以使用 \`fix \-e\` 命令。 +.PP +它还会显示一个图表,表示每个块上次被 scrub 或 sync 的时间。 +被 scrub 的块显示为 \'*\',已同步但尚未 scrub 的块显示为 \'o\'。 +.PP +不会修改任何内容。 +.SS smart +打印系统中所有磁盘的 SMART 报告。 +.PP +它包括对明年故障概率的估计,允许您计划更换显示 +可疑属性的磁盘进行维护。 +.PP +此概率估计是通过将磁盘的 SMART 属性与 +Backblaze 提供的以下数据进行关联获得的: +.PP +.RS 4 +https://www.backblaze.com/hard\-drive\-test\-data.html +.PD 0 +.PD +.RE +.PP +如果 SMART 报告磁盘正在发生故障,则会为该磁盘打印 \`FAIL\` 或 \`PREFAIL\`, +并且 SnapRAID 返回错误。 +在这种情况下,**强烈建议**立即更换磁盘。 +.PP +其他可能的状态字符串有: +.RS 4 +.PD 0 +.HP 4 +.I logfail +过去,某些属性低于阈值。 +.HP 4 +.I logerr +设备错误日志包含错误。 +.HP 4 +.I selferr +设备自检日志包含错误。 +.PD +.RE +.PP +如果指定了 \-v, \-\-verbose 选项,则会提供更深入的统计分析。 +此分析可以帮助您决定是否需要更多或更少的奇偶校验。 +.PP +此命令使用 \`smartctl\` 工具,相当于在所有设备上运行 \`smartctl \-a\`。 +.PP +如果您的设备未正确自动检测,您可以使用配置 +文件中的 \`smartctl\` 选项指定自定义命令。 +.PP +不会修改任何内容。 +.SS probe +打印系统中所有磁盘的**电源**状态。 +.PP +\`Standby\`(待机)表示磁盘未转动。\`Active\`(活动)表示 +磁盘正在转动。 +.PP +此命令使用 \`smartctl\` 工具,相当于在所有设备上运行 +\`smartctl \-n standby \-i\`。 +.PP +如果您的设备未正确自动检测,您可以使用配置 +文件中的 \`smartctl\` 选项指定自定义命令。 +.PP +不会修改任何内容。 +.SS up +使阵列中的所有磁盘转动起来。 +.PP +您可以使用 \-d, \-\-filter\-disk 选项只启动特定的磁盘。 +.PP +同时启动所有磁盘需要大量的电力。 +确保您的电源能够承受。 +.PP +不会修改任何内容。 +.SS down +使阵列中的所有磁盘停转。 +.PP +此命令使用 \`smartctl\` 工具,相当于在所有设备上运行 +\`smartctl \-s standby,now\`。 +.PP +您可以使用 \-d, \-\-filter\-disk 选项只停转特定的磁盘。 +.PP +要在发生错误时自动停转,您可以将 \-s, \-\-spin\-down\-on\-error +选项与任何其他命令一起使用,这相当于在发生错误时手动运行 \`down\`。 +.PP +不会修改任何内容。 +.SS diff +列出自上次 \`sync\` 以来所有已修改、需要重新计算奇偶校验数据的 +文件。 +.PP +此命令不检查文件数据,仅检查文件时间戳、大小和 inode。 +.PP +列出所有更改的文件后,会显示更改的摘要,按以下方式分组: +.RS 4 +.PD 0 +.HP 4 +.I equal +文件与之前相比未更改。 +.HP 4 +.I added +之前不存在、已添加的文件。 +.HP 4 +.I removed +已删除的文件。 +.HP 4 +.I updated +大小或时间戳不同的文件,表示它们已被修改。 +.HP 4 +.I moved +在同一磁盘上移动到不同目录的文件。 +它们通过具有相同的名称、大小、时间戳和 inode,但目录不同来识别。 +.HP 4 +.I copied +在同一磁盘或不同磁盘上复制的文件。请注意,如果 +它们确实移动到了不同的磁盘,它们也会被计入 \`removed\` 中。 +它们通过具有相同的名称、大小和时间戳来识别。如果亚秒级时间戳为零, +则必须匹配完整路径,而不仅仅是名称。 +.HP 4 +.I restored +inode 不同但名称、大小和时间戳匹配的文件。 +这些通常是删除后恢复的文件。 +.PD +.RE +.PP +如果需要 \`sync\`,进程返回码为 2,而不是默认的 0。 +返回码 1 用于一般错误情况。 +.PP +不会修改任何内容。 +.SS sync +更新奇偶校验信息。读取磁盘阵列中所有已修改的文件, +并更新相应的奇偶校验数据。 +.PP +您可以随时按 Ctrl+C 停止此过程,而不会丢失已完成的工作。 +在下次运行时,\`sync\` 过程将从中断的地方恢复。 +.PP +如果在过程中发现静默错误或输入/输出错误, +相应的块会被标记为坏块。 +.PP +文件通过路径和/或 inode 识别,并检查大小和时间戳。 +如果文件大小或时间戳不同,则会为整个文件重新计算奇偶校验数据。 +如果文件在同一磁盘上被移动或重命名,保持相同的 inode,则不重新计算奇偶校验。 +如果文件移动到另一个磁盘,则重新计算奇偶校验, +但保留以前计算的散列信息。 +.PP +如果需要,会修改 \`content\` 和 \`parity\` 文件。 +阵列中的文件**不会**被修改。 +.SS scrub +Scrub 阵列,检查数据和奇偶校验磁盘中的静默或输入/输出错误。 +.PP +每次调用检查大约 8% 的阵列,排除在过去 10 天内 +已被 scrub 的数据。 +这意味着每周 scrub 一次可确保每隔三个月至少检查一次数据的每一位。 +.PP +您可以使用 \-p, \-\-plan 选项定义不同的 scrub 计划或数量, +该选项接受: +bad \- Scrub 标记为坏块的块。 +new \- Scrub 刚刚同步但尚未 scrub 的块。 +full \- Scrub 所有内容。 +0\-100 \- Scrub 指定百分比的块。 +.PP +如果指定了百分比数量,您还可以使用 \-o, \-\-older\-than +选项来定义块应该有多旧。 +最旧的块首先被 scrub,确保最佳检查。 +如果您只想 scrub 刚刚同步但尚未 scrub 的块, +请使用 \`\-p new\` 选项。 +.PP +要获取 scrub 状态的详细信息,请使用 \`status\` 命令。 +.PP +对于发现的任何静默错误或输入/输出错误,相应的块 +会在 \`content\` 文件中被标记为坏块。 +这些坏块列在 \`status\` 中,可以使用 \`fix \-e\` 修复。 +修复后,在下次 scrub 时,它们将被重新检查,如果发现已更正, +则会删除坏块标记。 +要仅 scrub 坏块,您可以使用 \`scrub \-p bad\` 命令。 +.PP +建议仅在已同步的阵列上运行 \`scrub\`,以避免 +由未同步数据引起的报告错误。这些错误被识别为不是静默错误, +并且块不会被标记为坏块,但此类错误会在命令的输出中报告。 +.PP +\`content\` 文件会被修改以更新每个块上次检查的时间 +并标记坏块。 +\`parity\` 文件**不会**被修改。 +阵列中的文件**不会**被修改。 +.SS fix +修复所有文件和奇偶校验数据。 +.PP +所有文件和奇偶校验数据都与上次 \`sync\` 中保存的快照 +状态进行比较。 +如果发现差异,则将其恢复到存储的快照。 +.PP +**警告!** \`fix\` 命令不区分错误和 +故意修改。它**无条件地**将文件状态恢复到上次 \`sync\`。 +.PP +如果未指定其他选项,则处理整个阵列。 +使用过滤选项选择要操作的文件或磁盘的子集。 +.PP +要仅修复在 \`sync\` 和 \`scrub\` 期间标记为坏块的块, +请使用 \-e, \-\-filter\-error 选项。 +与其他过滤选项不同,此选项仅对自上次 \`sync\` 以来未更改的 +文件应用修复。 +.PP +SnapRAID 会重命名所有无法修复的文件,并添加 +\`.unrecoverable\` 扩展名。 +.PP +在修复之前,会扫描整个阵列以查找自上次 \`sync\` +操作以来移动的任何文件。 +这些文件通过它们的时间戳识别,忽略它们的名称 +和目录,并在必要时用于恢复过程。 +如果您将其中一些移到了阵列之外,您可以使用 \-i, \-\-import +选项指定额外的目录进行扫描。 +.PP +文件仅通过路径识别,而不通过 inode 识别。 +.PP +\`content\` 文件**不会**被修改。 +如果需要,\`parity\` 文件会被修改。 +如果需要,阵列中的文件会被修改。 +.SS check +验证所有文件和奇偶校验数据。 +.PP +它的工作方式类似于 \`fix\`,但它只模拟恢复,**不会**对阵列 +写入任何更改。 +.PP +此命令主要用于手动验证, +例如在恢复过程之后或在其他特殊条件下。 +对于定期和计划的检查,请使用 \`scrub\`。 +.PP +如果您使用 \-a, \-\-audit\-only 选项,则仅检查文件 +数据散列,而忽略奇偶校验数据,以加快运行速度。 +.PP +文件仅通过路径识别,而不通过 inode 识别。 +.PP +不会修改任何内容。 +.SS list +列出上次 \`sync\` 时阵列中包含的所有文件。 +.PP +使用 \-v 或 \-\-verbose,还会显示亚秒级时间。 +.PP +不会修改任何内容。 +.SS dup +列出所有重复文件。如果两个文件的散列匹配,则认为它们相等。 +不读取文件数据;仅使用预先计算的散列。 +.PP +不会修改任何内容。 +.SS pool +在 \`pooling\` 目录中创建或更新磁盘阵列中所有文件 +的虚拟视图。 +.PP +文件不会被复制,而是使用符号链接连接。 +.PP +更新时,所有现有的符号链接和空 +子目录都会被删除,并替换为阵列的新视图。 +任何其他常规文件保留在原位。 +.PP +不会修改 pool 目录之外的任何内容。 +.SS devices +打印阵列使用的低级设备。 +.PP +此命令显示阵列中的设备关联,主要用作脚本接口。 +.PP +前两列是低级设备 ID 和路径。 +接下来的两列是高级设备 ID 和路径。 +最后一列是阵列中的磁盘名称。 +.PP +在大多数情况下,阵列中的每个磁盘都有一个低级设备, +但在一些更复杂的配置中,单个阵列磁盘可能会使用多个 +低级设备。 +.PP +不会修改任何内容。 +.SS touch +为所有亚秒级时间戳设置为零的文件设置一个任意的 +亚秒级时间戳。 +.PP +这提高了 SnapRAID 识别移动和复制文件的能力, +因为它使时间戳几乎独一无二,减少了可能的重复。 +.PP +更具体地说,如果亚秒级时间戳不为零, +则移动或复制的文件在名称、大小和时间戳匹配时被识别为 +此类。如果亚秒级时间戳为零,则仅当完整路径、 +大小和时间戳都匹配时才被视为副本。 +.PP +不会修改秒精度时间戳, +因此会保留文件的所有日期和时间。 +.SS rehash +安排对整个阵列进行重新散列。 +.PP +此命令更改使用的散列类型,通常是在从 32 位系统升级到 64 位系统时, +以从 MurmurHash3 切换到更快的 SpookyHash。 +.PP +如果您已经在使用最佳散列,则此命令不执行任何操作, +并通知您无需执行任何操作。 +.PP +重新散列不会立即执行,而是在 \`sync\` 和 \`scrub\` 期间 +逐步进行。 +.PP +您可以使用 \`status\` 检查重新散列状态。 +.PP +在重新散列期间,SnapRAID 保持完全功能, +唯一的例外是 \`dup\` 无法使用不同的散列检测重复的文件。 +.SH OPTIONS +SnapRAID 提供以下选项: +.TP +.B \-c, \-\-conf CONFIG +选择要使用的配置文件。如果未指定,在 Unix 中, +如果存在,则使用文件 \`/usr/local/etc/snapraid.conf\`, +否则使用 \`/etc/snapraid.conf\`。 +在 Windows 中,它使用与 \`snapraid.exe\` 相同的目录中的文件 \`snapraid.conf\`。 +.TP +.B \-f, \-\-filter PATTERN +过滤要在 \`check\` 和 \`fix\` 中处理的文件。 +仅处理与指定模式匹配的文件。 +此选项可以多次使用。 +有关模式规范的更多详细信息,请参阅 PATTERN 部分。 +在 Unix 中,如果使用 globbing 字符,请确保它们被引用。 +此选项只能与 \`check\` 和 \`fix\` 一起使用。 +不能与 \`sync\` 和 \`scrub\` 一起使用,因为它们总是处理整个阵列。 +.TP +.B \-d, \-\-filter\-disk NAME +过滤要在 \`check\`、\`fix\`、\`up\` 和 \`down\` 中处理的磁盘。 +您必须指定配置文件中定义的磁盘名称。 +您也可以指定奇偶校验磁盘的名称:\`parity\`、\`2\-parity\`、 +\`3\-parity\` 等,以将操作限制到特定的奇偶校验磁盘。 +如果您组合使用多个 \-\-filter、\-\-filter\-disk 和 \-\-filter\-missing 选项, +则仅选择与所有过滤器匹配的文件。 +此选项可以多次使用。 +此选项只能与 \`check\`、\`fix\`、\`up\` 和 \`down\` 一起使用。 +不能与 \`sync\` 和 \`scrub\` 一起使用,因为它们总是处理整个阵列。 +.TP +.B \-m, \-\-filter\-missing +过滤要在 \`check\` 和 \`fix\` 中处理的文件。 +仅处理阵列中丢失或已删除的文件。 +与 \`fix\` 一起使用时,此选项充当 \`undelete\` 命令。 +如果您组合使用多个 \-\-filter、\-\-filter\-disk 和 \-\-filter\-missing 选项, +则仅选择与所有过滤器匹配的文件。 +此选项只能与 \`check\` 和 \`fix\` 一起使用。 +不能与 \`sync\` 和 \`scrub\` 一起使用,因为它们总是处理整个阵列。 +.TP +.B \-e, \-\-filter\-error +处理 \`check\` 和 \`fix\` 中有错误的文件。 +它仅处理在 \`sync\` 和 \`scrub\` 期间块被标记为静默或输入/输出错误的 +文件,如 \`status\` 中所列。 +此选项只能与 \`check\` 和 \`fix\` 一起使用。 +.TP +.B \-p, \-\-plan PERC|bad|new|full +选择 scrub 计划。如果 PERC 是一个介于 0 到 100 之间的数值, +则将其解释为要 scrub 的块的百分比。 +除了百分比,您还可以指定一个计划: +\`bad\` scrub 坏块,\`new\` scrub 尚未 scrub 的块, +\`full\` scrub 所有内容。 +此选项只能与 \`scrub\` 一起使用。 +.TP +.B \-o, \-\-older\-than DAYS +选择要在 \`scrub\` 中处理的阵列的最旧部分。 +DAYS 是块被 scrub 的最小天数;默认值为 10。 +无论此选项如何,标记为坏块的块始终会被 scrub。 +此选项只能与 \`scrub\` 一起使用。 +.TP +.B \-a, \-\-audit\-only +在 \`check\` 中,验证文件的散列而不 +检查奇偶校验数据。 +如果您只对检查文件数据感兴趣,此选项可以显著加快 +检查过程。 +此选项只能与 \`check\` 一起使用。 +.TP +.B \-h, \-\-pre\-hash +在 \`sync\` 中,运行所有新数据的初步散列阶段, +以便在奇偶校验计算之前进行额外验证。 +通常,在 \`sync\` 中,不进行初步散列,并且新 +数据仅在首次读取进行奇偶校验计算之前散列。 +此过程在系统处于 +重负载下发生,所有磁盘都在转动,CPU 也很忙。 +这对机器来说是一种极端情况,如果它有潜在的硬件问题, +静默错误可能无法被检测到,因为数据尚未散列。 +为避免此风险,您可以启用 \`pre\-hash\` 模式,将 +所有数据读取两次以确保其完整性。 +此选项还会验证阵列内移动的文件, +以确保移动操作成功,并在必要时 +允许您在继续之前运行 fix 操作。 +此选项只能与 \`sync\` 一起使用。 +.TP +.B \-i, \-\-import DIR +从指定目录导入自上次 \`sync\` 以来从阵列中删除的任何文件。 +如果您仍然拥有此类文件,它们可用于 \`check\` +和 \`fix\` 以改进恢复过程。 +读取文件,包括在子目录中,并且无论其名称如何都会被识别。 +此选项只能与 \`check\` 和 \`fix\` 一起使用。 +.TP +.B \-s, \-\-spin\-down\-on\-error +在任何错误发生时,在退出并带有非零状态码之前, +将所有托管的磁盘停转。这可以防止驱动器在中止操作后 +保持活动和转动,有助于避免不必要的热量积聚和功耗。 +使用此选项可确保即使命令失败,磁盘也能安全停止。 +.TP +.B \-w, \-\-bw\-limit RATE +对所有磁盘应用全局带宽限制。RATE 是 +每秒的字节数。您可以指定乘数,例如 K、M 或 G +(例如,\-\-bw\-limit 1G)。 +.TP +.B \-A, \-\-stats +启用扩展状态视图,显示附加信息。 +屏幕显示两个图表: +第一个图表显示每个磁盘的缓冲条带数,以及 +当前正在该磁盘上访问的文件的文件路径。 +通常,最慢的磁盘将没有可用缓冲区, +这决定了可达到的最大带宽。 +第二个图表显示在过去 100 秒内等待所花费的时间百分比。 +预计最慢的磁盘会导致大部分等待时间, +而其他磁盘应该只有很少或没有等待时间, +因为它们可以使用缓冲条带。 +此图表还显示了等待散列计算和 RAID +计算所花费的时间。 +所有计算都与磁盘操作并行运行。 +因此,只要至少一个磁盘有可测量的等待时间, +就表明 CPU 足够快,能够跟上工作负载。 +.TP +.B \-Z, \-\-force\-zero +强制执行不安全的同步操作:同步大小为零但以前非零的文件。 +如果 SnapRAID 检测到这种情况,它会停止进行, +除非您指定此选项。 +这使您可以轻松检测到在系统崩溃后, +某些访问的文件被截断的情况。 +这在带有 ext3/ext4 文件系统的 Linux 中是一种可能的情况。 +此选项只能与 \`sync\` 一起使用。 +.TP +.B \-E, \-\-force\-empty +强制执行不安全的同步操作:同步所有原始文件丢失的磁盘。 +如果 SnapRAID 检测到磁盘上最初存在的所有文件都丢失或被重写, +它会停止进行,除非您指定此选项。 +这使您可以轻松检测到数据文件系统未挂载的情况。 +此选项只能与 \`sync\` 一起使用。 +.TP +.B \-U, \-\-force\-uuid +强制执行不安全的同步、检查和修复操作,当磁盘更改了它们的 UUID 时。 +如果 SnapRAID 检测到某些磁盘更改了 UUID, +它会停止进行,除非您指定此选项。 +这使您可以检测到您的磁盘被挂载在 +错误的挂载点的情况。 +但是,允许在单奇偶校验下进行单个 UUID 更改, +在多奇偶校验下进行更多更改,因为这是恢复后更换磁盘时的正常情况。 +此选项只能与 \`sync\`、\`check\` 或 \`fix\` 一起使用。 +.TP +.B \-D, \-\-force\-device +强制执行不安全的修复操作,当磁盘无法访问或位于同一物理设备上时。 +例如,如果您丢失了两个数据磁盘,并且有一个备用磁盘 +只能恢复第一个,您可以忽略第二个无法访问的磁盘。 +或者,如果您想在已使用的磁盘上剩余的可用空间中恢复一个磁盘, +共享同一物理设备。 +此选项只能与 \`fix\` 一起使用。 +.TP +.B \-N, \-\-force\-nocopy +在 \`sync\`、\`check\` 和 \`fix\` 中,禁用复制检测启发式。 +如果没有此选项,SnapRAID 假定具有相同属性(例如名称、大小和时间戳) +的文件是具有相同数据的副本。 +这允许识别从一个磁盘移动到另一个磁盘的复制或移动的文件, +并重用已计算的散列信息以检测静默错误或恢复丢失的文件。 +在某些罕见的情况下,此行为可能导致误报 +或由于许多散列验证而导致过程缓慢,此选项允许您解决此类问题。 +此选项只能与 \`sync\`、\`check\` 和 \`fix\` 一起使用。 +.TP +.B \-F, \-\-force\-full +在 \`sync\` 中,强制完全重新计算奇偶校验。 +当您添加新的奇偶校验级别或如果使用较新的奇偶校验数据恢复到旧的内容文件时, +可以使用此选项。 +这允许您重用内容文件中存在的散列来验证数据, +并使用现有奇偶校验数据在 \`sync\` 过程中保持数据保护, +而不是从头开始重新创建奇偶校验。 +此选项只能与 \`sync\` 一起使用。 +.TP +.B \-R, \-\-force\-realloc +在 \`sync\` 中,强制完全重新分配文件并重建奇偶校验。 +此选项可用于完全重新分配所有文件, +消除碎片,同时重用内容文件中存在的散列来验证数据。 +此选项只能与 \`sync\` 一起使用。 +**警告!** 此选项仅供专家使用,强烈建议不要使用它。 +在 \`sync\` 操作期间,您**没有**数据保护。 +.TP +.B \-l, \-\-log FILE +将详细日志写入指定文件。 +如果未指定此选项,则会将意外错误打印到屏幕, +在出现许多错误的情况下,可能导致输出过多。 +指定 \-l, \-\-log 时,仅将导致 SnapRAID 停止的**致命错误**打印到 +屏幕。 +如果路径以 \'>>\' 开头,则文件以追加模式打开。 +名称中的 \'%D\' 和 \'%T\' 出现会被替换为日期和时间,格式分别为 YYYYMMDD 和 +HHMMSS。在 Windows 批处理文件中,您必须双写 \'%\' 字符, +例如 result\-%%D.log。要使用 \'>>\',您必须将名称括在引号中, +例如 \`\[dq]>>result.log\[dq]\`。 +要将日志输出到标准输出或标准错误, +您可以使用 \`\[dq]>&1\[dq]\` 和 \`\[dq]>&2\[dq]\`。 +有关日志标签描述,请参阅 snapraid_log.txt 文件或 man 页面。 +.TP +.B \-L, \-\-error\-limit NUMBER +设置停止执行前的新错误限制。 +默认情况下,如果 SnapRAID 遇到超过 100 个 +输入/输出错误,它会停止,表明磁盘可能正在发生故障。 +此选项影响 \`sync\` 和 \`scrub\`,它们被允许在第一组 +磁盘错误后继续,以尝试完成其操作。 +但是,\`check\` 和 \`fix\` 总是会在第一次错误时停止。 +.TP +.B \-S, \-\-start BLKSTART +从指定的块号开始处理。 +在磁盘损坏的情况下,这对于重试检查或修复特定块可能很有用。 +此选项主要用于高级手动恢复。 +.TP +.B \-B, \-\-count BLKCOUNT +仅处理指定数量的块。 +此选项主要用于高级手动恢复。 +.TP +.B \-C, \-\-gen\-conf CONTENT +从现有内容文件生成一个虚拟配置文件。 +配置文件写入标准输出,不会覆盖现有文件。 +此配置文件还包含在您丢失整个系统的情况下 +重建磁盘挂载点所需的信息。 +.TP +.B \-v, \-\-verbose +向屏幕打印更多信息。 +如果指定一次,它会打印排除的文件 +和附加统计信息。 +此选项对日志文件没有影响。 +.TP +.B \-q, \-\-quiet +向屏幕打印更少信息。 +如果指定一次,它会删除进度条;两次, +正在运行的操作;三次,信息 +消息;四次,状态消息。 +致命错误始终会打印到屏幕。 +此选项对日志文件没有影响。 +.TP +.B \-H, \-\-help +打印简短的帮助屏幕。 +.TP +.B \-V, \-\-version +打印程序版本。 +.SH CONFIGURATION +SnapRAID 需要一个配置文件来了解您的磁盘阵列 +位于何处以及在哪里存储奇偶校验信息。 +.PP +在 Unix 中,如果存在,它使用文件 \`/usr/local/etc/snapraid.conf\`, +否则使用 \`/etc/snapraid.conf\`。 +在 Windows 中,它使用与 \`snapraid.exe\` 相同的目录中的文件 \`snapraid.conf\`。 +.PP +它必须包含以下选项(区分大小写): +.SS parity FILE [,FILE] ... +定义用于存储奇偶校验信息的文件。 +奇偶校验可实现针对单个磁盘 +故障的保护,类似于 RAID5。 +.PP +您可以指定多个文件,它们必须位于不同的磁盘上。 +当一个文件不能再增长时,使用下一个文件。 +总可用空间必须至少与阵列中最大的数据磁盘一样大。 +.PP +您可以稍后添加额外的奇偶校验文件,但是您 +不能重新排序或删除它们。 +.PP +将奇偶校验磁盘保留用于奇偶校验可确保它们不会碎片化,从而提高性能。 +.PP +在 Windows 中,每个磁盘会留下 256 MB 未使用空间,以避免 +有关磁盘已满的警告。 +.PP +此选项是强制性的,并且只能使用一次。 +.SS (2,3,4,5,6)\-parity FILE [,FILE] ... +定义用于存储额外奇偶校验信息的文件。 +.PP +为指定的每个奇偶校验级别启用一个额外的保护级别: +.PD 0 +.IP \(bu +2\-parity 启用 RAID6 双奇偶校验。 +.IP \(bu +3\-parity 启用三奇偶校验。 +.IP \(bu +4\-parity 启用四奇偶校验。 +.IP \(bu +5\-parity 启用五奇偶校验。 +.IP \(bu +6\-parity 启用六奇偶校验。 +.PD +.PP +每个奇偶校验级别都需要存在所有先前的奇偶校验级别。 +.PP +与 \'parity\' 选项相同的注意事项适用。 +.PP +这些选项是可选的,并且只能使用一次。 +.SS z\-parity FILE [,FILE] ... +定义用于存储三奇偶校验的备用文件和格式。 +.PP +此选项是 \'3\-parity\' 的替代方案,主要面向不支持 +SSSE3 指令集的低端 CPU,如 ARM 或 AMD Phenom、Athlon 和 Opteron。 +在这种情况下,它提供了更好的性能。 +.PP +此格式类似于 ZFS RAIDZ3 使用的格式,但更快。 +与 ZFS 一样,它在三奇偶校验之外不起作用。 +.PP +当使用 \'3\-parity\' 时,如果建议使用 \'z\-parity\' 格式以提高性能, +您将收到警告。 +.PP +可以通过调整配置文件中的所需 z\-parity 或 3\-parity 文件, +并使用 \'fix\' 重新创建它,从一种格式转换为另一种格式。 +.SS content FILE +定义用于存储磁盘阵列中所有文件的列表和校验和的文件。 +.PP +它可以放置在用于数据、奇偶校验或 +任何其他可用磁盘上。 +如果您使用数据磁盘,此文件会自动从 \`sync\` 过程中排除。 +.PP +此选项是强制性的,并且可以多次使用以保存 +同一文件的多个副本。 +.PP +您必须为使用的每个奇偶校验磁盘存储至少一个副本, +再加上一个。使用额外的副本不会有害。 +.SS data NAME DIR +定义阵列中数据磁盘的名称和挂载点。 +NAME 用于标识磁盘,并且必须是唯一的。 +DIR 是磁盘在文件系统中的挂载点。 +.PP +您可以根据需要更改挂载点,只要保持 NAME 固定即可。 +.PP +您应该为阵列中的每个数据磁盘使用一个选项。 +.PP +您可以通过直接在配置文件中更改 NAME,然后运行 \`sync\` 命令来 +稍后重命名磁盘。 +在重命名的情况下,关联是使用存储的磁盘 UUID 完成的。 +.SS nohidden +排除所有隐藏文件和目录。 +在 Unix 中,隐藏文件是以 \`.\` 开头的文件。 +在 Windows 中,它们是具有隐藏属性的文件。 +.SS exclude/include PATTERN +定义要从同步过程中排除或包含的文件或目录模式。 +所有模式都按指定的顺序处理。 +.PP +如果匹配的第一个模式是 \`exclude\` 模式,则排除该文件。 +如果它是 \`include\` 模式,则包含该文件。 +如果没有模式匹配,则如果指定的最后一个模式是 \`include\`,则排除该文件, +或者如果指定的最后一个模式是 \`exclude\`,则包含该文件。 +.PP +有关模式规范的更多详细信息,请参阅 PATTERN 部分。 +.PP +此选项可以多次使用。 +.SS blocksize SIZE_IN_KIBIBYTES +定义奇偶校验的基本块大小(以 KiB 为单位)。 +一 KiB 是 1024 字节。 +.PP +默认的 blocksize 是 256,这应该适用于大多数情况。 +.PP +**警告!** 此选项仅供专家使用,强烈建议不要更改此值。 +将来要更改此值,您将需要重新创建整个奇偶校验! +.PP +使用不同 blocksize 的一个原因是,如果您有许多小型文件, +数量级为数百万。 +.PP +对于每个文件,即使只有几个字节,也会分配一个完整的奇偶校验块, +并且对于许多文件,这可能导致大量的未使用奇偶校验空间。 +当您完全填满奇偶校验磁盘时,不允许向数据磁盘 +添加更多文件。 +但是,浪费的奇偶校验不会跨数据磁盘累积。 +数据磁盘上大量文件导致的浪费空间仅限制该数据磁盘上的数据量, +而不限制其他磁盘上的数据量。 +.PP +作为一个近似值,您可以假设每个文件浪费了半个块大小的空间。 +例如,对于 100,000 个文件和 256 KiB 的块大小,您将浪费 12.8 GB 的奇偶校验空间, +这可能导致数据磁盘上少 12.8 GB 的可用空间。 +.PP +您可以使用 \`status\` 检查每个磁盘上浪费的空间量。 +这是您必须在数据磁盘上留出的空闲空间量, +或用于不包含在阵列中的文件的空间量。 +如果此值为负,则表示您即将填满奇偶校验空间, +它表示您仍然可以浪费的空间。 +.PP +为避免此问题,您可以为奇偶校验使用更大的分区。 +例如,如果奇偶校验分区比数据磁盘大 12.8 GB, +则您有足够的额外空间来处理每个数据磁盘上多达 100,000 个 +文件而不会浪费任何空间。 +.PP +在 Linux 中获得更大的奇偶校验分区的一个技巧是使用以下命令格式化它: +.PP +.RS 4 +mkfs.ext4 \-m 0 \-T largefile4 DEVICE +.PD 0 +.PD +.RE +.PP +这会导致大约 1.5% 的额外空间,对于 4 TB 磁盘约为 60 GB, +这允许每个数据磁盘上大约 460,000 个文件而不会浪费任何空间。 +.SS hashsize SIZE_IN_BYTES +定义保存块的散列大小(以字节为单位)。 +.PP +默认的 hashsize 是 16 字节(128 位),这应该适用于大多数情况。 +.PP +**警告!** 此选项仅供专家使用,强烈建议不要更改此值。 +将来要更改此值,您将需要重新创建整个奇偶校验! +.PP +使用不同 hashsize 的一个原因是,如果您的系统内存有限。 +根据经验,SnapRAID 通常每 16 TB 的阵列数据需要 1 GiB 的 RAM。 +.PP +具体来说,为了存储数据的散列,SnapRAID 大约需要 +$TS*(1+HS)/BS$ 字节的 RAM, +其中 $TS$ 是您的磁盘阵列的总大小(以字节为单位),$BS$ 是块大小(以字节为单位), +$HS$ 是散列大小(以字节为单位)。 +.PP +例如,对于 8 个 4 TB 磁盘,块大小为 256 KiB +(1 KiB = 1024 字节),散列大小为 16,您将获得: +.PP +RAM = $(8 * 4 * 10^{12}) * (1+16) / (256 * 2^{10}) = 1.93$ GiB +.PD 0 +.PD +.PP +切换到散列大小为 8,您将获得: +.PP +RAM = $(8 * 4 * 10^{12}) * (1+8) / (256 * 2^{10}) = 1.02$ GiB +.PD 0 +.PD +.PP +切换到块大小为 512,您将获得: +.PP +RAM = $(8 * 4 * 10^{12}) * (1+16) / (512 * 2^{10}) = 0.96$ GiB +.PD 0 +.PD +.PP +切换到散列大小为 8 和块大小为 512,您将获得: +.PP +RAM = $(8 * 4 * 10^{12}) * (1+8) / (512 * 2^{10}) = 0.51$ GiB +.PD 0 +.PD +.SS autosave SIZE_IN_GIGABYTES +在同步或 scrub 之后,处理指定数量的 GB 后,自动保存状态。 +此选项有助于避免在机器崩溃或任何其他事件中断时, +从头开始重新启动长时间的 \`sync\` 命令。 +.SS temp_limit TEMPERATURE_CELSIUS +设置允许的最高磁盘温度(摄氏度)。指定后, +SnapRAID 会使用 smartctl 工具定期检查所有磁盘的温度。 +SnapRAID 运行时会显示当前磁盘温度。 +如果任何磁盘超过此限制,所有操作都会停止, +并在 \`temp_sleep\` 选项定义的持续时间内将磁盘停转(置于待机状态)。 +在休眠期过后,操作恢复,如果温度限制再次达到, +可能会再次暂停。 +.PP +在操作期间,SnapRAID 还会分析每个磁盘的加热曲线, +并估计如果活动继续,它们预计将达到的长期稳定温度。 +仅在磁盘温度增加了四次后才执行估计, +以确保有足够的数据点来建立可靠的趋势。 +此预测的稳定温度显示在当前值旁边的括号中, +有助于评估系统的冷却是否足够。 +此估计温度仅供参考,对 SnapRAID 的行为没有影响。 +程序的动作仅基于实际测量的磁盘温度。 +.PP +要执行此分析,SnapRAID 需要一个系统温度的参考。 +它首先尝试从可用的硬件传感器读取。 +如果无法访问系统传感器,它会使用运行时测量的最低磁盘温度 +作为备用参考。 +.PP +通常,SnapRAID 只显示最热磁盘的温度。 +要显示所有磁盘的温度,请使用 \-A 或 \-\-stats 选项。 +.SS temp_sleep TIME_IN_MINUTES +设置达到温度限制时的待机时间(以分钟为单位)。 +在此期间,磁盘保持停转状态。默认值为 5 分钟。 +.SS pool DIR +定义 \`pooling\` 目录,其中使用 \`pool\` 命令创建磁盘 +阵列的虚拟视图。 +.PP +目录必须已经存在。 +.SS share UNC_DIR +定义远程访问磁盘所需的 Windows UNC 路径。 +.PP +如果指定了此选项,则在 pool 目录中创建的符号链接会使用此 UNC 路径 +来访问磁盘。 +如果没有此选项,则生成的符号链接仅使用本地路径, +这不允许通过网络共享 pool 目录。 +.PP +符号链接是使用指定的 UNC 路径,添加在 \`data\` 选项中指定的 +磁盘名称,最后添加文件目录和名称形成的。 +.PP +此选项仅在 Windows 中需要。 +.SS smartctl DISK/PARITY OPTIONS... +定义自定义 smartctl 选项以获取每个磁盘的 SMART 属性。 +这对于 RAID 控制器和一些无法自动检测的 USB +磁盘可能需要。%s 占位符会被设备名称替换, +但对于固定的设备(如 RAID 控制器)是可选的。 +.PP +DISK 是在 \`data\` 选项中指定的相同磁盘名称。 +PARITY 是奇偶校验名称之一:\`parity\`、\`2\-parity\`、\`3\-parity\`、 +\`4\-parity\`、\`5\-parity\`、\`6\-parity\` 或 \`z\-parity\`。 +.PP +在指定的 OPTIONS 中,字符串 \`%s\` 被设备名称替换。 +对于 RAID 控制器,设备可能是固定的, +您可能不需要使用 \`%s\`。 +.PP +请参阅 smartmontools 文档以了解可能的选项: +.PP +.RS 4 +https://www.smartmontools.org/wiki/Supported_RAID\-Controllers +.PD 0 +.PP +.PD +https://www.smartmontools.org/wiki/Supported_USB\-Devices +.PD 0 +.PD +.RE +.PP +例如: +.PP +.RS 4 +smartctl parity \-d sat %s +.PD 0 +.PD +.RE +.SS smartignore DISK/PARITY ATTR [ATTR...] +在计算磁盘故障概率时忽略指定的 SMART 属性。 +如果磁盘报告了特定属性的不寻常或误导值,此选项很有用。 +.PP +DISK 是在 \`data\` 选项中指定的相同磁盘名称。 +PARITY 是奇偶校验名称之一:\`parity\`、\`2\-parity\`、\`3\-parity\`、 +\`4\-parity\`、\`5\-parity\`、\`6\-parity\` 或 \`z\-parity\`。 +特殊值 * 可用于在所有磁盘上忽略该属性。 +.PP +例如,要在所有磁盘上忽略 \`Current Pending Sector Count\` 属性: +.PP +.RS 4 +smartignore * 197 +.PD 0 +.PD +.RE +.PP +要仅在第一个奇偶校验磁盘上忽略它: +.PP +.RS 4 +smartignore parity 197 +.PD 0 +.PD +.RE +.SS Examples +Unix 的典型配置示例如下: +.PP +.RS 4 +parity /mnt/diskp/snapraid.parity +.PD 0 +.PP +.PD +content /mnt/diskp/snapraid.content +.PD 0 +.PP +.PD +content /var/snapraid/snapraid.content +.PD 0 +.PP +.PD +data d1 /mnt/disk1/ +.PD 0 +.PP +.PD +data d2 /mnt/disk2/ +.PD 0 +.PP +.PD +data d3 /mnt/disk3/ +.PD 0 +.PP +.PD +exclude /lost+found/ +.PD 0 +.PP +.PD +exclude /tmp/ +.PD 0 +.PP +.PD +smartctl d1 \-d sat %s +.PD 0 +.PP +.PD +smartctl d2 \-d usbjmicron %s +.PD 0 +.PP +.PD +smartctl parity \-d areca,1/1 /dev/sg0 +.PD 0 +.PP +.PD +smartctl 2\-parity \-d areca,2/1 /dev/sg0 +.PD 0 +.PD +.RE +.PP +Windows 的典型配置示例如下: +.PP +.RS 4 +parity E:\\snapraid.parity +.PD 0 +.PP +.PD +content E:\\snapraid.content +.PD 0 +.PP +.PD +content C:\\snapraid\\snapraid.content +.PD 0 +.PP +.PD +data d1 G:\\array\\ +.PD 0 +.PP +.PD +data d2 H:\\array\\ +.PD 0 +.PP +.PD +data d3 I:\\array\\ +.PD 0 +.PP +.PD +exclude Thumbs.db +.PD 0 +.PP +.PD +exclude \\$RECYCLE.BIN +.PD 0 +.PP +.PD +exclude \\System Volume Information +.PD 0 +.PP +.PD +smartctl d1 \-d sat %s +.PD 0 +.PP +.PD +smartctl d2 \-d usbjmicron %s +.PD 0 +.PP +.PD +smartctl parity \-d areca,1/1 /dev/arcmsr0 +.PD 0 +.PP +.PD +smartctl 2\-parity \-d areca,2/1 /dev/arcmsr0 +.PD 0 +.PD +.RE +.SH PATTERN +模式用于选择要排除或包含在过程中的文件子集。 +.PP +有四种不同类型的模式: +.TP +.B FILE +选择任何名为 FILE 的文件。您可以使用任何 globbing +字符,如 * 和 ?,以及字符类,如 [a\-z]。 +此模式仅适用于文件,不适用于目录。 +.TP +.B DIR/ +选择任何名为 DIR 的目录及其内部的所有内容。 +您可以使用任何 globbing 字符,如 * 和 ?。 +此模式仅适用于目录,不适用于文件。 +.TP +.B /PATH/FILE +选择完全指定的 file path。您可以使用任何 +globbing 字符,如 * 和 ?,但它们绝不匹配 +目录斜杠。 +此模式仅适用于文件,不适用于目录。 +.TP +.B /PATH/DIR/ +选择完全指定的 directory path 及其内部的所有内容。 +您可以使用任何 globbing 字符,如 * 和 ?,但 +它们绝不匹配目录斜杠。 +此模式仅适用于目录,不适用于文件。 +.PP +当您指定以 / 开头的绝对路径时,它应用于阵列**根目录**, +而不是本地文件系统根目录。 +.PP +在 Windows 中,您可以使用反斜杠 \\ 代替正斜杠 /。 +Windows 系统目录、连接点、挂载点和其他 Windows +特殊目录被视为文件,这意味着要排除它们, +您必须使用文件规则,而不是目录规则。 +.PP +如果文件名包含 \'*\'、\'?\'、\'[\' +或 \']\' 字符,您必须对其进行转义,以避免将其解释为 +globbing 字符。在 Unix 中,转义字符是 \'\\\';在 Windows 中,它是 \'^\'。 +当模式在命令行上时,您必须双写转义 +字符,以避免命令 shell 对其进行解释。 +.PP +在配置文件中,您可以使用不同的策略来过滤要处理的文件。 +最简单的方法是仅使用 \`exclude\` 规则来删除所有您不想处理的 +文件和目录。例如: +.PP +.RS 4 +# 排除任何名为 \`*.unrecoverable\` 的文件 +.PD 0 +.PP +.PD +exclude *.unrecoverable +.PD 0 +.PP +.PD +# 排除根目录 \`/lost+found\` +.PD 0 +.PP +.PD +exclude /lost+found/ +.PD 0 +.PP +.PD +# 排除任何名为 \`tmp\` 的子目录 +.PD 0 +.PP +.PD +exclude tmp/ +.PD 0 +.PD +.RE +.PP +相反的方法是仅定义您想要处理的文件,仅使用 \`include\` 规则。例如: +.PP +.RS 4 +# 仅包含一些目录 +.PD 0 +.PP +.PD +include /movies/ +.PD 0 +.PP +.PD +include /musics/ +.PD 0 +.PP +.PD +include /pictures/ +.PD 0 +.PD +.RE +.PP +最后的方法是混合使用 \`exclude\` 和 \`include\` 规则。在这种情况下, +规则的顺序很重要。较早的规则优先于 +较晚的规则。 +为了简化,您可以先列出所有 \`exclude\` 规则,然后 +列出所有 \`include\` 规则。例如: +.PP +.RS 4 +# 排除任何名为 \`*.unrecoverable\` 的文件 +.PD 0 +.PP +.PD +exclude *.unrecoverable +.PD 0 +.PP +.PD +# 排除任何名为 \`tmp\` 的子目录 +.PD 0 +.PP +.PD +exclude tmp/ +.PD 0 +.PP +.PD +# 仅包含一些目录 +.PD 0 +.PP +.PD +include /movies/ +.PD 0 +.PP +.PD +include /musics/ +.PD 0 +.PP +.PD +include /pictures/ +.PD 0 +.PD +.RE +.PP +在命令行上,使用 \-f 选项,您只能使用 \`include\` +模式。例如: +.PP +.RS 4 +# 仅检查 .mp3 文件。 +.PD 0 +.PP +.PD +# 在 Unix 中,使用引号以避免 shell 扩展 globbing。 +.PD 0 +.PP +.PD +snapraid \-f \[dq]*.mp3\[dq] check +.PD 0 +.PD +.RE +.PP +在 Unix 中,在命令行上使用 globbing 字符时,必须 +引用它们以防止 shell 扩展它们。 +.SH CONTENT +SnapRAID 将文件列表和校验和存储在 content 文件中。 +.PP +它是一个二进制文件,列出了磁盘阵列中存在的所有文件, +以及用于验证其完整性的所有校验和。 +.PP +此文件由 \`sync\` 和 \`scrub\` 命令读取和写入,并由 +\`fix\`、\`check\` 和 \`status\` 命令读取。 +.SH PARITY +SnapRAID 将阵列的奇偶校验信息存储在 parity 文件中。 +.PP +这些是二进制文件,包含 \`content\` 文件中定义的所有 +块的计算奇偶校验。 +.PP +这些文件由 \`sync\` 和 \`fix\` 命令读取和写入, +并且仅由 \`scrub\` 和 \`check\` 命令读取。 +.SH ENCODING +SnapRAID 在 Unix 中忽略任何编码。它读取并存储 +文件系统使用的相同编码的文件名。 +.PP +在 Windows 中,从文件系统读取的所有名称都会被转换并 +以 UTF\-8 格式处理。 +.PP +要使文件名正确打印,您必须使用命令 \`chcp 65001\` 将 Windows +控制台设置为 UTF\-8 模式,并使用 TrueType 字体,如 \`Lucida Console\`, +作为控制台字体。这仅影响打印的文件名;如果 +您将控制台输出重定向到文件,则生成的文件始终 +采用 UTF\-8 格式。 +.SH COPYRIGHT +此文件版权所有 (C) 2025 Andrea Mazzoleni +.SH SEE ALSO +snapraid_log(1), rsync(1) diff --git a/snapraid-ja.d b/snapraid-ja.d new file mode 100644 index 00000000..368f9c52 --- /dev/null +++ b/snapraid-ja.d @@ -0,0 +1,1346 @@ +Name{number} + snapraid - Disk Array用 SnapRAID バックアップ + +Synopsis + :snapraid [-c, --conf CONFIG] + : [-f, --filter PATTERN] [-d, --filter-disk NAME] + : [-m, --filter-missing] [-e, --filter-error] + : [-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|probe|up|down|diff|sync|scrub|fix|check + : |list|dup|pool|devices|touch|rehash + + :snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT] + +Description + SnapRAIDは、ディスクアレイ用のバックアッププログラムで、最大6台のディスク障害が発生した場合の + データ復旧のためにパリティ情報を保存します。 + + 主に大容量で、更新頻度の低いファイルを扱うホームメディアセンターを対象としており、 + SnapRAIDにはいくつかの機能があります。 + + * ファイルが既に入っているディスクを、再フォーマットせずにそのまま利用でき、通常通り + アクセスできます。 + * すべてのデータがハッシュ化され、データの整合性を確保し、サイレントな破損を防ぎます。 + * 障害が発生したディスクの数がパリティ数を超えた場合、データの損失は影響を受けたディスクに + 限定され、他のディスクのデータは引き続きアクセス可能です。 + * 誤ってディスク上のファイルを削除した場合でも、復旧が可能です。 + * ディスクは異なるサイズであっても構いません。 + * いつでもディスクを追加できます。 + * SnapRAIDはデータをロックしません。いつでも再フォーマットやデータ移動なしに利用を + 停止できます。 + * ファイルにアクセスするためにスピンさせる必要があるのは1台のディスクだけであり、 + 省電力と騒音低減に役立ちます。 + + 詳細については、SnapRAIDの公式サイトをご覧ください。 + + :https://www.snapraid.it/ + +Limitations + SnapRAIDはRAIDとバックアッププログラムのハイブリッドであり、両方の利点を組み合わせることを + 目指しています。ただし、使用する前に考慮すべきいくつかの制限があります。 + + 主な制限は、ディスクが故障し、最近 `sync` を実行していない場合、完全に復旧できない + 可能性があることです。 + より具体的には、最後の `sync` 操作以降に変更または削除されたファイルのサイズまでのデータが + 復旧できない可能性があります。 + これは、変更または削除されたファイルが故障したディスク上にない場合でも発生します。 + このため、SnapRAIDは**めったに変更されない**データに適しています。 + + 一方で、新しく追加されたファイルは、既に存在するファイルの復旧を妨げません。 + 新しく追加されたファイルが故障したディスク上にある場合にのみ、それらのファイルが失われます。 + + その他のSnapRAIDの制限は次のとおりです。 + + * SnapRAIDでは、各ディスクに対して**個別のファイルシステム**が保持されます。 + RAIDでは、単一の大きなファイルシステムが得られます。 + * SnapRAIDは**データをストライピングしません**。 + RAIDでは、ストライピングにより速度が向上します。 + * SnapRAIDは**リアルタイムの復旧をサポートしません**。 + RAIDでは、ディスクが故障しても作業を停止する必要はありません。 + * SnapRAIDは**限られた数のディスク障害**からのみデータを復旧できます。 + バックアップでは、ディスクアレイ全体の完全な障害から復旧できます。 + * **ファイル名、タイムスタンプ、シンボリックリンク、およびハードリンク**のみが保存されます。 + アクセス許可、所有権、および拡張属性は保存されません。 + +Getting Started + SnapRAIDを使用するには、まずディスクアレイ内の1つのディスクを `parity` 情報専用に + 選択する必要があります。パリティ用に1つのディスクを使用すると、RAID5と同様に、単一のディスク障害から + 復旧できます。 + + RAID6と同様に、より多くのディスク障害から復旧したい場合は、パリティ用に追加のディスクを + 確保する必要があります。パリティディスクを追加するたびに、復旧できるディスク障害が1つ増えます。 + + パリティ情報はアレイ内の**最大のデータディスク**のサイズにまで増える可能性があるため、 + パリティディスクとしては、アレイ内の**最大のディスク**を選択する必要があります。 + + これらのディスクは、`parity` ファイルの保存専用になります。 + **データを保存しないでください**。 + + 次に、SnapRAIDで保護したい `data` ディスクを定義する必要があります。 + これらのディスクに含まれるデータがめったに変更されない場合に、保護が最も効果的です。 + このため、WindowsのC:\ディスクやUnixの/home、/var、/tmpディレクトリを含めない方が + 良いでしょう。 + + ファイルの一覧は `content` ファイルに保存され、通常はデータ、パリティ、または + ブートディスクに保存されます。 + このファイルには、バックアップの詳細と、その整合性を検証するためのすべての + チェックサムが含まれています。 + `content` ファイルは**複数のコピー**で保存され、複数のディスク障害が発生した場合でも、 + 少なくとも1つのコピーが利用可能であることを保証するために、**各コピーは異なるディスクに** + 配置する必要があります。 + + たとえば、1レベルのパリティ保護のみに関心があり、ディスクが次の場所にあるとします。 + + :/mnt/diskp <- パリティ用に選択されたディスク + :/mnt/disk1 <- 保護する最初のディスク + :/mnt/disk2 <- 保護する2番目のディスク + :/mnt/disk3 <- 保護する3番目のディスク + + 構成ファイル `/etc/snapraid.conf` を次のオプションで作成する必要があります。 + + :parity /mnt/diskp/snapraid.parity + :content /var/snapraid/snapraid.content + :content /mnt/disk1/snapraid.content + :content /mnt/disk2/snapraid.content + :data d1 /mnt/disk1/ + :data d2 /mnt/disk2/ + :data d3 /mnt/disk3/ + + Windowsを使用している場合は、スラッシュではなくドライブ文字とバックスラッシュを + 使用したWindowsのパス形式を使用する必要があります。 + + :parity E:\snapraid.parity + :content C:\snapraid\snapraid.content + :content F:\array\snapraid.content + :content G:\array\snapraid.content + :data d1 F:\array\ + :data d2 G:\array\ + :data d3 H:\array\ + + ディスクが多くてドライブ文字が不足する場合は、サブフォルダにディスクを + 直接マウントできます。参照: + + :https://www.google.com/search?q=Windows+mount+point + + この時点で、パリティ情報を構築するために `sync` コマンドを実行する準備が整いました。 + + :snapraid sync + + このプロセスは、既にディスクに存在するデータのサイズに応じて、初回は数時間かかる + 場合があります。ディスクが空の場合は、プロセスは即座に完了します。 + + Ctrl+Cを押すことでいつでも停止でき、次回の実行時には中断された場所から再開されます。 + + このコマンドが完了すると、データは**SAFE**になります。 + + これで、アレイを自由に使い始め、定期的に `sync` コマンドを実行してパリティ情報を + 更新できます。 + + Scrubbing + データとパリティのエラーを定期的にチェックするには、`scrub` コマンドを + 実行できます。 + + :snapraid scrub + + このコマンドは、配列内のデータを `sync` コマンド中に計算されたハッシュと比較して、 + 整合性を検証します。 + + このコマンドを1回実行すると、前回の10日間で既にスクラブされたデータを除いて、 + アレイの約8%がチェックされます。 + -p, --plan オプションを使用して異なる量を指定でき、 + -o, --older-than オプションを使用して異なる経過日数で + 指定できます。 + たとえば、20日以上経過したブロックの5%をチェックするには、次のように使用します。 + + :snapraid -p 5 -o 20 scrub + + プロセス中にサイレントエラーまたは入出力エラーが見つかった場合、 + 対応するブロックは `content` ファイル内で不良としてマークされ、 + `status` コマンドで一覧表示されます。 + + :snapraid status + + それらを修正するには、-e, --filter-error オプションで不良ブロックをフィルタリングして、 + `fix` コマンドを使用できます。 + + :snapraid -e fix + + 次回の `scrub` で、エラーが本当に修正されていれば、`status` レポートから + エラーは消えます。より高速にするために、`-p bad` を使用して不良としてマークされた + ブロックのみをスクラブできます。 + + :snapraid -p bad scrub + + 未同期のアレイで `scrub` を実行すると、削除または変更されたファイルによって + 引き起こされたエラーが報告される場合があります。これらのエラーは `scrub` の + 出力で報告されますが、関連するブロックは不良としてマークされません。 + + Pooling + 注: ここで説明するプーリング機能は、**mergefs** ツールに取って代わられました。 + mergefs は、SnapRAIDコミュニティのLinuxユーザーに推奨されるオプションです。 + Mergefs は、複数のドライブを単一の統合されたマウントポイントにプールするための、 + より柔軟で効率的な方法を提供し、シンボリックリンクに頼ることなくアレイ全体の + ファイルにシームレスにアクセスできます。これは、パリティ保護のためにSnapRAIDと + うまく統合されており、OpenMediaVault (OMV) やカスタムNAS構成などのセットアップで + 一般的に使用されています。 + + アレイ内のすべてのファイルを同じディレクトリツリーに表示させるには、 + `pooling` 機能を有効にできます。これは、シンボリックリンクを使用して、 + アレイ内のすべてのファイルの読み取り専用の仮想ビューを作成します。 + + 構成ファイルで `pooling` ディレクトリを次のように構成できます。 + + :pool /pool + + または、Windowsの場合は、次のようにします。 + + :pool C:\pool + + そして、`pool` コマンドを実行して仮想ビューを作成または更新します。 + + :snapraid pool + + Unixプラットフォームを使用しており、このディレクトリをWindowsまたはUnixマシンに + ネットワーク経由で共有したい場合は、`/etc/samba/smb.conf` に次のオプションを + 追加する必要があります。 + + :# smb.conf の global セクションで + :unix extensions = no + + :# smb.conf の share セクションで + :[pool] + :comment = Pool + :path = /pool + :read only = yes + :guest ok = yes + :wide links = yes + :follow symlinks = yes + + Windowsでは、ネットワーク経由でシンボリックリンクを共有するには、クライアントが + それらをリモートで解決する必要があります。これを有効にするには、プールディレクトリを + 共有することに加えて、構成ファイルで定義された**ディスク名**を共有ポイントとして + 使用して、**すべてのディスクを個別に**共有する必要があります。また、リモートクライアントが + これらの共有ディスクにアクセスするために使用する必要があるWindows UNCパスを、 + 構成ファイルの `share` オプションで指定する必要があります。 + + たとえば、`darkstar` という名前のサーバーで操作している場合、次のオプションを + 使用できます。 + + :data d1 F:\array\ + :data d2 G:\array\ + :data d3 H:\array\ + :pool C:\pool + :share \\darkstar + + そして、次のディレクトリをネットワーク経由で共有します。 + + :\\darkstar\pool -> C:\pool + :\\darkstar\d1 -> F:\array + :\\darkstar\d2 -> G:\array + :\\darkstar\d3 -> H:\array + + これにより、リモートクライアントは `\\darkstar\pool` ですべてのファイルに + アクセスできるようになります。 + + また、リモートクライアントがリモートシンボリックリンクへのアクセスを有効にするために、 + 次のコマンドで構成する必要がある場合もあります。 + + :fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 + + Undeleting + SnapRAIDはRAIDシステムよりもバックアッププログラムのように機能し、 + -f, --filter オプションを使用してファイルを以前の状態に復元または削除解除するために + 使用できます。 + + :snapraid fix -f FILE + + またはディレクトリの場合は: + + :snapraid fix -f DIR/ + + また、-m, --filter-missing オプションを使用して、ディレクトリ内の**誤って削除されたファイルのみ**を + 復旧するために使用することもできます。これにより、不足しているファイルのみが復元され、 + 他のファイルはすべてそのまま残されます。 + + :snapraid fix -m -f DIR/ + + または、すべてのドライブ上のすべての削除されたファイルを復旧するには: + + :snapraid fix -m + + Recovering + 最悪の事態が発生し、1台以上のディスクを失いました! + + **パニックにならないでください!** 復旧できます! + + 最初に行うべきことは、ディスクアレイへの**さらなる変更を避ける**ことです。 + リモート接続、およびスケジュールされたSnapRAIDの夜間 `sync` や `scrub` を含む、 + すべてのスケジュールされたプロセスを無効にしてください。 + + 次に、次の手順に進みます。 + + STEP 1 -> Reconfigure + 復旧のためにいくらかのスペースが必要です。理想的には追加の + 予備ディスクですが、外部USBディスクやリモートディスクでも十分です。 + + SnapRAIDの構成ファイルを変更して、故障したディスクの `data` または `parity` + オプションを、ファイルを復旧するための十分な空き容量のある場所に + 向けます。 + + たとえば、ディスク `d1` が故障した場合、次のように変更します。 + + :data d1 /mnt/disk1/ + + から: + + :data d1 /mnt/new_spare_disk/ + + 復旧するディスクがパリティディスクの場合は、適切な `parity` オプションを + 更新します。 + 複数のディスクが故障している場合は、すべての構成オプションを更新します。 + + STEP 2 -> Fix + ログを外部ファイルに保存して、`fix` コマンドを実行します。 + + :snapraid -d NAME -l fix.log fix + + ここで NAME はディスクの名前であり、前の例では `d1` のようなものです。 + 復旧するディスクがパリティディスクの場合は、`parity`、`2-parity` などの + 名前を使用します。 + 複数のディスクが故障している場合は、複数の `-d` オプションを使用して + すべてを指定します。 + + このコマンドは時間がかかります。 + + `fix.log` ファイルを保存するために数ギガバイトの空き容量があることを確認してください。 + 十分な空き容量のあるディスクから実行してください。 + + これで、復旧可能なすべてのものが復旧されました。一部のファイルが部分的または完全に + 復旧できない場合、それらは `.unrecoverable` 拡張子を追加して名前が変更されます。 + + `fix.log` ファイルで、`unrecoverable:` で始まるすべての行をチェックすることで、 + すべての復旧不能なブロックの詳細なリストを見つけることができます。 + + 復旧に満足できない場合は、何度でも再試行できます。 + + たとえば、最後の `sync` の後にアレイからファイルを削除した場合、 + これにより一部のファイルが復旧されない可能性があります。 + この場合、-i, --import オプションを使用して、これらのファイルが現在どこにあるかを指定することで、 + 復旧プロセスにそれらを再度含めるように `fix` を再試行できます。 + + 復旧に満足している場合は、さらに進むことができますが、**sync** の実行後には + `fix` コマンドを**再試行できない**ことに注意してください! + + STEP 3 -> Check + 慎重なチェックとして、`check` コマンドを実行して、復旧されたディスク上の + すべてが正しいことを確認できます。 + + :snapraid -d NAME -a check + + ここで NAME はディスクの名前であり、前の例では `d1` のようなものです。 + + `-d` および `-a` オプションは、SnapRAIDに**指定されたディスクのみ**をチェックし、 + **すべてのパリティデータを無視**するように指示します。 + + このコマンドは時間がかかりますが、過度に慎重でない場合はスキップできます。 + + STEP 4 -> Sync + `sync` コマンドを実行して、アレイを新しいディスクと再同期します。 + + :snapraid sync + + すべてが復旧されていれば、このコマンドは即座に完了します。 + +Commands + SnapRAIDは、次のことを可能にするいくつかの簡単なコマンドを提供します。 + + * アレイの状態の概要を出力 -> `status` + * ディスクの制御 -> `smart`、`probe`、`up`、`down` + * バックアップ/スナップショットの作成 -> `sync` + * データの定期的なチェック -> `scrub` + * 最後のバックアップ/スナップショットの復元 -> `fix`。 + + コマンドは**小文字**で記述する必要があります。 + + status + ディスクアレイの状態の概要を出力します。 + + これには、パリティの断片化、チェックなしでのブロックの古さ、および + スクラビング中に遭遇したすべての記録されたサイレントエラーに関する情報が + 含まれます。 + + 提示される情報は、最後に `sync` を実行した時点のものです。 + それ以降の変更は考慮されません。 + + 不良ブロックが検出された場合、それらのブロック番号が一覧表示されます。 + それらを修正するには、`fix -e` コマンドを使用できます。 + + また、各ブロックが最後にスクラブまたは同期された時期を示すグラフも表示されます。 + スクラブされたブロックは `*` で、同期されたがまだスクラブされていないブロックは `o` で + 示されます。 + + 何も変更されません。 + + smart + システム内のすべてのディスクのSMARTレポートを出力します。 + + これには、翌年の故障確率の推定値が含まれており、疑わしい属性を示すディスクの + メンテナンス交換を計画できます。 + + この確率推定は、ディスクのSMART属性を次の場所で利用可能なBackblazeのデータと + 相関させることで得られます。 + + :https://www.backblaze.com/hard-drive-test-data.html + + SMARTがディスクが故障していると報告した場合、そのディスクに対して `FAIL` または `PREFAIL` が + 出力され、SnapRAIDはエラーを返します。 + この場合、**ディスクの即時交換**が強く推奨されます。 + + その他の可能なステータス文字列は次のとおりです。 + logfail - 過去に、一部の属性がしきい値よりも低かった。 + logerr - デバイスのエラーログにエラーが含まれている。 + selferr - デバイスのセルフテストログにエラーが含まれている。 + + -v, --verbose オプションが指定されている場合、より詳細な統計分析が提供されます。 + この分析は、より多くまたはより少ないパリティが必要かどうかを決定するのに役立ちます。 + + このコマンドは `smartctl` ツールを使用し、すべてのデバイスで `smartctl -a` を実行するのと + 同等です。 + + デバイスが正しく自動検出されない場合は、構成ファイルで `smartctl` オプションを + 使用してカスタムコマンドを指定できます。 + + 何も変更されません。 + + probe + システム内のすべてのディスクのPOWER状態を出力します。 + + `Standby` はディスクがスピンしていないことを意味します。`Active` は + ディスクがスピンしていることを意味します。 + + このコマンドは `smartctl` ツールを使用し、すべてのデバイスで `smartctl -n standby -i` を実行するのと + 同等です。 + + デバイスが正しく自動検出されない場合は、構成ファイルで `smartctl` オプションを + 使用してカスタムコマンドを指定できます。 + + 何も変更されません。 + + up + アレイのすべてのディスクをスピンアップします。 + + -d, --filter-disk オプションを使用して、特定のディスクのみをスピンアップできます。 + + すべてのディスクを同時にスピンアップするには、多くの電力が必要です。 + 電源がそれに耐えられることを確認してください。 + + 何も変更されません。 + + down + アレイのすべてのディスクをスピンダウンします。 + + このコマンドは `smartctl` ツールを使用し、すべてのデバイスで `smartctl -s standby,now` を実行するのと + 同等です。 + + -d, --filter-disk オプションを使用して、特定のディスクのみをスピンダウンできます。 + + エラー時に自動的にスピンダウンするには、他の任意のコマンドで -s, --spin-down-on-error + オプションを使用できます。これは、エラーが発生したときに手動で `down` を実行するのと同等です。 + + 何も変更されません。 + + diff + 最後の `sync` 以降に変更され、パリティデータを再計算する必要があるすべてのファイルを + 一覧表示します。 + + このコマンドはファイルデータはチェックせず、ファイルのタイムスタンプ、サイズ、 + およびinodeのみをチェックします。 + + 変更されたすべてのファイルを一覧表示した後、変更の概要が + 次のようにグループ化されて提示されます。 + equal - 変更されていないファイル。 + added - 以前は存在しなかった追加されたファイル。 + removed - 削除されたファイル。 + updated - サイズまたはタイムスタンプが異なるファイル。これは、 + 変更されたことを意味します。 + moved - 同じディスク上の異なるディレクトリに移動されたファイル。 + 同じ名前、サイズ、タイムスタンプ、およびinodeを持ちますが、ディレクトリが + 異なることで識別されます。 + copied - 同じディスクまたは異なるディスクにコピーされたファイル。 + 異なるディスクに真に移動された場合、`removed` にも + カウントされることに注意してください。 + 同じ名前、サイズ、およびタイムスタンプを持つことで識別されます。 + サブ秒のタイムスタンプがゼロの場合、ファイル名だけでなく、 + フルパスが一致する必要があります。 + restored - inodeは異なるが、名前、サイズ、タイムスタンプが一致するファイル。 + これらは通常、削除後に復元されたファイルです。 + + `sync` が必要な場合、プロセスはデフォルトの0ではなく、リターンコード2を返します。 + リターンコード1は、一般的なエラー状態に使用されます。 + + 何も変更されません。 + + sync + パリティ情報を更新します。ディスクアレイ内のすべての変更されたファイルが読み取られ、 + 対応するパリティデータが更新されます。 + + Ctrl+Cを押すことでいつでもこのプロセスを停止でき、 + 既に完了した作業を失うことはありません。 + 次回の実行時には、`sync` プロセスは中断された場所から + 再開されます。 + + プロセス中にサイレントエラーまたは入出力エラーが見つかった場合、 + 対応するブロックは不良としてマークされます。 + + ファイルはパスおよび/またはinodeによって識別され、サイズとタイムスタンプによって + チェックされます。 + ファイルサイズまたはタイムスタンプが異なる場合、パリティデータはファイル全体で + 再計算されます。 + ファイルが同じディスク上で移動または名前が変更され、同じinodeが保持されている場合、 + パリティは再計算されません。 + ファイルが別のディスクに移動された場合、パリティは再計算されますが、 + 以前に計算されたハッシュ情報は保持されます。 + + `content` ファイルと `parity` ファイルは必要に応じて変更されます。 + アレイ内のファイルは**変更されません**。 + + scrub + アレイをスクラブし、データおよびパリティディスクのサイレントエラーまたは入出力エラーを + チェックします。 + + 1回の呼び出しごとに、最後の10日間で既にスクラブされたデータを除いて、 + アレイの約8%がチェックされます。 + これは、週に1回スクラビングを実行すると、すべてのデータが少なくとも3か月に1回は + チェックされることを意味します。 + + -p, --plan オプションを使用して、異なるスクラブプランまたは量を定義できます。 + このオプションは以下を受け入れます。 + bad - 不良としてマークされたブロックをスクラブします。 + new - まだスクラブされていない、同期されたばかりのブロックをスクラブします。 + full - すべてをスクラブします。 + 0-100 - 指定されたパーセンテージのブロックをスクラブします。 + + パーセンテージの量を指定する場合、-o, --older-than オプションを使用して、 + ブロックがどれくらいの古さである必要があるかを定義することもできます。 + 最も古いブロックが最初にスクラブされ、最適なチェックが保証されます。 + まだスクラブされていない、同期されたばかりのブロックのみをスクラブしたい場合は、 + `-p new` オプションを使用します。 + + スクラブステータスの詳細を取得するには、`status` コマンドを使用します。 + + 見つかったサイレントエラーまたは入出力エラーごとに、対応するブロックは + `content` ファイル内で不良としてマークされます。 + これらの不良ブロックは `status` で一覧表示され、`fix -e` で修正できます。 + 修正後、次回のスクラブで再チェックされ、修正されていると判明した場合、 + 不良マークは削除されます。 + 不良ブロックのみをスクラブするには、`scrub -p bad` コマンドを使用できます。 + + 未同期のデータによって引き起こされた報告されたエラーを避けるために、 + `scrub` は**同期された**アレイでのみ実行することをお勧めします。これらのエラーは + サイレントエラーではないと認識され、ブロックは不良としてマークされませんが、 + そのようなエラーはコマンドの出力で報告されます。 + + `content` ファイルは、各ブロックの最後のチェック時刻を更新し、不良ブロックを + マークするために変更されます。 + `parity` ファイルは**変更されません**。 + アレイ内のファイルは**変更されません**。 + + fix + すべてのファイルとパリティデータを修正します。 + + すべてのファイルとパリティデータは、最後の `sync` で保存されたスナップショット状態と + 比較されます。 + 違いが見つかった場合、保存されたスナップショットに**元に戻されます**。 + + **警告!** `fix` コマンドは、エラーと意図的な変更を区別しません。 + ファイルの_状態を_最後の `sync` に**無条件に元に戻します**。 + + 他のオプションが指定されていない場合、アレイ全体が処理されます。 + フィルタオプションを使用して、操作するファイルまたはディスクのサブセットを + 選択します。 + + `sync` および `scrub` 中に不良としてマークされたブロックのみを修正するには、 + -e, --filter-error オプションを使用します。 + 他のフィルタオプションとは異なり、これは最新の `sync` 以降に**変更されていない** + ファイルにのみ修正を適用します。 + + SnapRAIDは、修正できないすべてのファイルの名前を `.unrecoverable` 拡張子を + 追加して変更します。 + + 修正する前に、アレイ全体がスキャンされ、最後の `sync` 操作以降に移動されたファイルが + 見つけられます。 + これらのファイルは、名前を無視してタイムスタンプによって識別され、 + 必要に応じて復旧プロセスで使用されます。 + それらのいくつかをアレイ外に移動した場合は、-i, --import オプションを使用して + スキャンする追加のディレクトリを指定できます。 + + ファイルは**パスによってのみ**識別され、inodeによっては識別されません。 + + `content` ファイルは**変更されません**。 + `parity` ファイルは必要に応じて変更されます。 + アレイ内のファイルは必要に応じて変更されます。 + + check + すべてのファイルとパリティデータを検証します。 + + `fix` のように機能しますが、復旧を**シミュレートするだけ**で、アレイに**変更は書き込まれません**。 + + このコマンドは、主に復旧プロセス後やその他の特殊な条件下での手動検証を + 目的としています。 + 定期的でスケジュールされたチェックには、`scrub` を使用します。 + + -a, --audit-only オプションを使用すると、ファイルの**ハッシュのみ**がチェックされ、 + パリティデータは無視されるため、チェックプロセスが大幅に高速化されます。 + + ファイルは**パスによってのみ**識別され、inodeによっては識別されません。 + + 何も変更されません。 + + list + 最後の `sync` の時点のアレイに含まれるすべてのファイルを + 一覧表示します。 + + -v または --verbose を使用すると、サブ秒の時間も表示されます。 + + 何も変更されません。 + + dup + すべての重複ファイルを一覧表示します。ハッシュが一致する場合、2つのファイルは等しいと見なされます。 + ファイルデータは読み取られず、事前に計算されたハッシュのみが使用されます。 + + 何も変更されません。 + + pool + `pooling` ディレクトリに、ディスクアレイ内のすべてのファイルの仮想ビューを + 作成または更新します。 + + ファイルはコピーされず、シンボリックリンクを使用してリンクされます。 + + 更新時、既存のすべてのシンボリックリンクと空のサブディレクトリは削除され、 + アレイの新しいビューに置き換えられます。その他の通常のファイルはそのまま残されます。 + + プールディレクトリ外は何も変更されません。 + + devices + アレイで使用される低レベルデバイスを出力します。 + + このコマンドは、アレイ内のデバイスの関連付けを表示し、主にスクリプトインターフェイスを + 目的としています。 + + 最初の2つの列は、低レベルデバイスIDとパスです。 + 次の2つの列は、高レベルデバイスIDとパスです。 + 最後の列は、アレイ内のディスク名です。 + + ほとんどの場合、アレイ内のディスクごとに1つの低レベルデバイスがありますが、 + より複雑な構成では、単一のアレイ内のディスクで複数の低レベルデバイスが + 使用される場合があります。 + + 何も変更されません。 + + touch + サブ秒のタイムスタンプがゼロに設定されているすべてのファイルに、任意のサブ秒のタイムスタンプを + 設定します。 + + これにより、タイムスタンプがほぼ一意になり、重複の可能性が減るため、 + SnapRAIDが移動およびコピーされたファイルを認識する能力が向上します。 + + より具体的には、サブ秒のタイムスタンプがゼロでない場合、移動またはコピーされたファイルは、 + 名前、サイズ、およびタイムスタンプが一致する場合にそうであると識別されます。 + サブ秒のタイムスタンプがゼロの場合、フルパス、サイズ、およびタイムスタンプのすべてが + 一致する場合にのみコピーと見なされます。 + + 秒精度のタイムスタンプは変更されないため、ファイルのすべての日付と時刻は + 保持されます。 + + rehash + アレイ全体のリハッシュをスケジュールします。 + + このコマンドは、使用されるハッシュの種類を変更します。これは通常、32ビットシステムから + 64ビットシステムにアップグレードするときに、MurmurHash3からより高速なSpookyHashに + 切り替えるために行われます。 + + 既に最適なハッシュを使用している場合、このコマンドは何もせず、アクションが不要であることを + 通知します。 + + リハッシュはすぐには実行されず、`sync` および `scrub` の間に徐々に実行されます。 + + `status` を使用してリハッシュの状態を確認できます。 + + リハッシュ中もSnapRAIDは完全な機能を維持しますが、唯一の例外として、 + `dup` は異なるハッシュを使用している重複ファイルを検出できません。 + +Options + SnapRAIDには、次のオプションがあります。 + + -c, --conf CONFIG + 使用する構成ファイルを選択します。指定されていない場合、Unixでは、存在すれば + `/usr/local/etc/snapraid.conf` を使用し、それ以外の場合は `/etc/snapraid.conf` を + 使用します。 + Windowsでは、`snapraid.exe` と同じディレクトリにある `snapraid.conf` ファイルを + 使用します。 + + -f, --filter PATTERN + `check` および `fix` で処理するファイルをフィルタリングします。 + 指定されたパターンに一致するファイルのみが処理されます。 + このオプションは複数回使用できます。 + パターン仕様の詳細については、PATTERNセクションを参照してください。 + Unixでは、グロブ文字を使用する場合は引用符で囲むようにしてください。 + このオプションは、`check` および `fix` のみで使用できます。 + これらは常にアレイ全体を処理するため、`sync` および `scrub` では + 使用できません。 + + -d, --filter-disk NAME + `check`、`fix`、`up`、および `down` で処理するディスクをフィルタリングします。 + 構成ファイルで定義されているディスク名を指定する必要があります。 + `parity`、`2-parity`、`3-parity` などの名前でパリティディスクも指定して、 + 特定のパリティディスクに操作を限定できます。 + 複数の --filter、--filter-disk、および --filter-missing オプションを組み合わせると、 + すべてのフィルタに一致するファイルのみが選択されます。 + このオプションは複数回使用できます。 + このオプションは、`check`、`fix`、`up`、および `down` のみで使用できます。 + これらは常にアレイ全体を処理するため、`sync` および `scrub` では + 使用できません。 + + -m, --filter-missing + `check` および `fix` で処理するファイルをフィルタリングします。 + アレイから不足または削除されたファイルのみが処理されます。 + `fix` と一緒に使用すると、これは `undelete` コマンドとして機能します。 + 複数の --filter、--filter-disk、および --filter-missing オプションを組み合わせると、 + すべてのフィルタに一致するファイルのみが選択されます。 + このオプションは、`check` および `fix` のみで使用できます。 + これらは常にアレイ全体を処理するため、`sync` および `scrub` では + 使用できません。 + + -e, --filter-error + `check` および `fix` でエラーのあるファイルを処理します。 + `status` で一覧表示されているように、`sync` および `scrub` 中にサイレントエラーまたは + 入出力エラーでマークされたブロックを持つファイルのみを処理します。 + このオプションは、`check` および `fix` のみで使用できます。 + + -p, --plan PERC|bad|new|full + スクラブプランを選択します。PERCが0から100までの数値である場合、 + スクラブするブロックのパーセンテージとして解釈されます。 + パーセンテージの代わりに、プランを指定できます。 + `bad` は不良ブロックをスクラブし、`new` はまだスクラブされていないブロックをスクラブし、 + `full` はすべてをスクラブします。 + このオプションは、`scrub` のみで使用できます。 + + -o, --older-than DAYS + `scrub` で処理するアレイの最も古い部分を選択します。 + DAYS は、ブロックがスクラブされるための最小経過日数であり、デフォルトは10です。 + 不良としてマークされたブロックは、このオプションに関係なく常にスクラブされます。 + このオプションは、`scrub` のみで使用できます。 + + -a, --audit-only + `check` で、パリティデータをチェックせずにファイルのハッシュを検証します。 + ファイルデータのみのチェックに関心がある場合、このオプションはチェックプロセスを + 大幅に高速化できます。 + このオプションは、`check` のみで使用できます。 + + -h, --pre-hash + `sync` で、パリティ計算の前の追加検証のために、すべての新しいデータの + 予備ハッシュ化フェーズを実行します。 + 通常、`sync` では、予備ハッシュ化は行われず、新しいデータはパリティ計算の直前に、 + 最初に読み取られたときにハッシュ化されます。 + このプロセスは、システムが重い負荷の下にあり、すべてのディスクがスピンしており、CPUが + ビジーなときに発生します。 + これはマシンにとって極端な状態であり、潜在的なハードウェアの問題がある場合、 + データがまだハッシュ化されていないため、サイレントエラーが検出されないままになる + 可能性があります。 + このリスクを回避するために、`pre-hash` モードを有効にして、すべてのデータを2回読み取り、 + その整合性を確保できます。 + このオプションは、アレイ内で移動されたファイルも検証して、移動操作が成功したことを + 確認し、必要に応じて、続行する前に修正操作を実行できるようにします。 + このオプションは、`sync` のみで使用できます。 + + -i, --import DIR + 最後の `sync` の後にアレイから削除されたファイルを、指定されたディレクトリから + インポートします。 + これらのファイルをまだ持っている場合、それらは復旧プロセスを改善するために + `check` および `fix` で使用できます。 + ファイルは、サブディレクトリを含めて読み取られ、名前に関係なく識別されます。 + このオプションは、`check` および `fix` のみで使用できます。 + + -s, --spin-down-on-error + エラーが発生した場合、非ゼロのステータスコードで終了する前に、管理されているすべてのディスクを + スピンダウンします。これにより、中断された操作後にドライブがアクティブなままスピンし続け、 + 不要な熱の蓄積と電力消費を回避するのに役立ちます。 + コマンドが失敗した場合でも、ディスクが安全に停止されるように、このオプションを使用します。 + + -w, --bw-limit RATE + すべてのディスクにグローバルな帯域幅制限を適用します。RATE は + 1秒あたりのバイト数です。K、M、Gなどの乗数を指定できます + (例:--bw-limit 1G)。 + + -A, --stats + 追加情報を表示する拡張ステータスビューを有効にします。 + 画面には2つのグラフが表示されます。 + 最初のグラフは、各ディスクのバッファリングされたストライプの数と、そのディスクで現在 + アクセスされているファイルのファイルパスを示します。通常、最も遅いディスクには + バッファが利用できず、これが達成可能な最大帯域幅を決定します。 + 2番目のグラフは、過去100秒間に待機に費やされた時間のパーセンテージを示します。 + 最も遅いディスクが待機時間のほとんどを引き起こすと予想され、他のディスクは + バッファリングされたストライプを使用できるため、待機時間がほとんどまたはまったくないはずです。 + このグラフは、ハッシュ計算とRAID計算に費やされた待機時間も示します。 + すべての計算はディスク操作と並行して実行されます。 + したがって、少なくとも1つのディスクで測定可能な待機時間がある限り、 + CPUがワークロードに追いつくのに十分速いことを示しています。 + + -Z, --force-zero + 以前は非ゼロだったサイズのファイルをゼロで同期するという安全でない操作を強制します。 + SnapRAIDがこのような状態を検出した場合、このオプションを指定しない限り、 + 続行を停止します。 + これにより、システムクラッシュ後に一部のアクセスされたファイルが切り捨てられたときに、 + それを簡単に検出できます。 + これは、ext3/ext4ファイルシステムを使用したLinuxで起こりうる状態です。 + このオプションは、`sync` のみで使用できます。 + + -E, --force-empty + 元のファイルがすべて不足しているディスクを同期するという安全でない操作を強制します。 + SnapRAIDが、元々ディスクに存在していたすべてのファイルが不足しているか、 + 書き換えられていることを検出した場合、このオプションを指定しない限り、 + 続行を停止します。 + これにより、データファイルシステムがマウントされていないときに、それを簡単に + 検出できます。 + このオプションは、`sync` のみで使用できます。 + + -U, --force-uuid + UUIDが変更されたディスクとの同期、チェック、および修正という安全でない操作を強制します。 + SnapRAIDが一部のディスクがUUIDを変更したことを検出した場合、 + このオプションを指定しない限り、続行を停止します。 + これにより、ディスクが間違ったマウントポイントにマウントされているときに、それを検出できます。 + ただし、単一パリティでの単一のUUID変更、および複数のパリティでのより多くのUUID変更は + 許可されています。これは、復旧後にディスクを交換するときの通常のケースであるためです。 + このオプションは、`sync`、`check`、または `fix` のみで使用できます。 + + -D, --force-device + アクセスできないディスク、または同じ物理デバイス上のディスクとの修正という安全でない操作を強制します。 + たとえば、2台のデータディスクを失い、最初の1台だけを復旧するための予備ディスクがある場合、 + 2番目のアクセスできないディスクを無視できます。 + または、既に**使用されている**ディスクに残された空き容量にディスクを復旧したい場合、 + 同じ物理デバイスを共有します。 + このオプションは、`fix` のみで使用できます。 + + -N, --force-nocopy + `sync`、`check`、および `fix` で、コピー検出ヒューリスティックを無効にします。 + このオプションがない場合、SnapRAIDは、名前、サイズ、タイムスタンプなどの同じ属性を持つファイルが、 + 同じデータを持つコピーであると見なします。 + これにより、あるディスクから別のディスクにコピーまたは移動されたファイルを識別し、 + 既に計算されたハッシュ情報を再利用して、サイレントエラーを検出したり、不足しているファイルを + 復旧したりできます。 + まれに、この動作が誤検出や、多くのハッシュ検証によるプロセスの遅延につながる可能性があり、 + このオプションを使用すると、そのような問題を解決できます。 + このオプションは、`sync`、`check`、および `fix` のみで使用できます。 + + -F, --force-full + `sync` で、パリティの完全な再計算を強制します。 + このオプションは、新しいパリティレベルを追加する場合、またはより新しいパリティデータを使用して + 古いコンテンツファイルに戻した場合に使用できます。 + パリティを最初から再作成する代わりに、これにより、コンテンツファイルに存在するハッシュを + 再利用してデータを検証し、既存のパリティデータを使用して `sync` プロセス中にデータ保護を + 維持できます。 + このオプションは、`sync` のみで使用できます。 + + -R, --force-realloc + `sync` で、ファイルの完全な再割り当てとパリティの再構築を強制します。 + このオプションは、コンテンツファイルに存在するハッシュを再利用してデータを検証しながら、 + 断片化を削除して、すべてのファイルを完全に再割り当てするために使用できます。 + このオプションは、`sync` のみで使用できます。 + **警告!** このオプションはエキスパートのみを対象としており、使用しないことを強く + お勧めします。 + `sync` 操作中にデータ保護はありません。 + + -l, --log FILE + 詳細なログを指定されたファイルに書き込みます。 + このオプションが指定されていない場合、予期しないエラーが画面に出力され、 + 多くのエラーが発生した場合に過剰な出力になる可能性があります。 + -l, --log が指定されている場合、SnapRAIDが停止する原因となる致命的なエラーのみが + 画面に出力されます。 + パスが '>>' で始まる場合、ファイルは追記モードで開かれます。 + 名前に '%D' と '%T' が出現すると、それぞれYYYYMMDDとHHMMSSの形式で + 日付と時刻に置き換えられます。Windowsバッチファイルでは、'%' 文字を + 2倍にする必要があります。例:result-%%D.log。'>>' を使用するには、 + 名前を引用符で囲む必要があります。例:`">>result.log"`。 + ログを標準出力または標準エラーに出力するには、それぞれ `">&1"` および `">&2"` を + 使用できます。 + ログタグの説明については、snapraid_log.txtファイルまたはmanページを参照してください。 + + -L, --error-limit NUMBER + 実行を停止する前の新しいエラー制限を設定します。 + デフォルトでは、SnapRAIDは100を超える入出力エラーに遭遇した場合に停止します。 + これは、ディスクが故障している可能性が高いことを示しています。 + このオプションは `sync` と `scrub` に影響し、最初の一連のディスクエラーの後に + 続行して操作を完了しようとすることが許可されます。 + ただし、`check` と `fix` は常に最初のエラーで停止します。 + + -S, --start BLKSTART + 指定されたブロック番号から処理を開始します。 + これは、破損したディスクの場合に特定のブロックを再試行してチェックまたは修正するのに + 役立ちます。 + このオプションは、主に高度な手動復旧を目的としています。 + + -B, --count BLKCOUNT + 指定された数のブロックのみを処理します。 + このオプションは、主に高度な手動復旧を目的としています。 + + -C, --gen-conf CONTENT + 既存のコンテンツファイルからダミーの構成ファイルを生成します。 + 構成ファイルは標準出力に書き込まれ、既存のファイルを上書きしません。 + この構成ファイルには、システム全体を失った場合にディスクのマウントポイントを + 再構築するために必要な情報も含まれています。 + + -v, --verbose + 画面により多くの情報を出力します。 + 1回指定すると、除外されたファイルと追加の統計が出力されます。 + このオプションはログファイルには影響しません。 + + -q, --quiet + 画面に出力される情報を減らします。 + 1回指定すると、プログレスバーが削除されます。2回指定すると、実行中の操作が削除されます。 + 3回指定すると、情報メッセージが削除されます。4回指定すると、ステータスメッセージが削除されます。 + 致命的なエラーは常に画面に出力されます。 + このオプションはログファイルには影響しません。 + + -H, --help + 短いヘルプ画面を出力します。 + + -V, --version + プログラムのバージョンを出力します。 + +Configuration + SnapRAIDは、ディスクアレイの場所とパリティ情報の保存場所を知るために、構成ファイルを + 必要とします。 + + Unixでは、存在すれば `/usr/local/etc/snapraid.conf` を使用し、それ以外の場合は + `/etc/snapraid.conf` を使用します。 + Windowsでは、`snapraid.exe` と同じディレクトリにある `snapraid.conf` ファイルを + 使用します。 + + 次のオプションを含める必要があります(大文字と小文字を区別します)。 + + parity FILE [,FILE] ... + パリティ情報を保存するために使用するファイルを定義します。 + パリティは、RAID5と同様に、単一のディスク障害からの保護を有効にします。 + + 複数のファイルを指定でき、それらは異なるディスク上に存在する必要があります。 + ファイルがそれ以上成長できなくなると、次のファイルが使用されます。 + 利用可能な総容量は、アレイ内の**最大のデータディスク**と少なくとも同じ大きさでなければなりません。 + + 後で追加のパリティファイルを追加することはできますが、 + それらを並べ替えたり削除したりすることはできません。 + + パリティディスクをパリティ用に予約しておくことで、それらが断片化されるのを防ぎ、 + パフォーマンスを向上させます。 + + Windowsでは、フルディスクに関する警告を避けるために、各ディスクに256 MBが未使用で + 残されます。 + + このオプションは必須であり、1回のみ使用できます。 + + (2,3,4,5,6)-parity FILE [,FILE] ... + 追加のパリティ情報を保存するために使用するファイルを定義します。 + + 指定されたパリティレベルごとに、1つの追加の保護レベルが有効になります。 + + * 2-parity は RAID6 デュアルパリティを有効にします。 + * 3-parity は トリプルパリティを有効にします。 + * 4-parity は クアッド(4つ)パリティを有効にします。 + * 5-parity は ペンタ(5つ)パリティを有効にします。 + * 6-parity は ヘキサ(6つ)パリティを有効にします。 + + 各パリティレベルには、以前のすべてのパリティレベルが存在する必要があります。 + + `parity` オプションと同じ考慮事項が適用されます。 + + これらのオプションはオプションであり、1回のみ使用できます。 + + z-parity FILE [,FILE] ... + トリプルパリティを保存するための代替ファイルとフォーマットを定義します。 + + このオプションは `3-parity` の代替であり、主にARMやSSSE3命令セットをサポートしていない + AMD Phenom、Athlon、OpteronなどのローエンドCPUを対象としています。 + このような場合、より良いパフォーマンスを提供します。 + + このフォーマットは、ZFS RAIDZ3で使用されるものと似ていますが、より高速です。 + ZFSと同様に、トリプルパリティを超えては機能しません。 + + `3-parity` を使用している場合、パフォーマンス向上のために `z-parity` フォーマットの + 使用が推奨される場合は警告が表示されます。 + + 構成ファイルを目的の `z-parity` または `3-parity` ファイルで調整し、 + `fix` を使用して再作成することで、あるフォーマットから別のフォーマットに + 変換することが可能です。 + + content FILE + ディスクアレイに存在するすべてのファイルの一覧とチェックサムを保存するために使用するファイルを + 定義します。 + + データ、パリティ、またはその他の利用可能なディスクに配置できます。 + データディスクを使用する場合、このファイルは `sync` プロセスから自動的に + 除外されます。 + + このオプションは必須であり、同じファイルを複数コピー保存するために複数回使用できます。 + + 使用するパリティディスクごとに**少なくとも1つのコピー**と、さらに**1つのコピー**を + 保存する必要があります。追加のコピーを使用しても害はありません。 + + data NAME DIR + アレイ内のデータディスクの名前とマウントポイントを定義します。 + NAME はディスクを識別するために使用され、**一意である**必要があります。 + DIR はファイルシステム内のディスクの**マウントポイント**です。 + + NAME を固定したままにしておけば、必要に応じてマウントポイントを変更できます。 + + アレイ内のデータディスクごとに1つのオプションを使用する必要があります。 + + 構成ファイルで直接 NAME を変更してから `sync` コマンドを実行することで、 + 後でディスクの名前を変更できます。 + 名前変更の場合、関連付けはディスクの保存されたUUIDを使用して行われます。 + + nohidden + すべての隠しファイルとディレクトリを除外します。 + Unixでは、隠しファイルは `.` で始まるファイルです。 + Windowsでは、隠し属性を持つファイルです。 + + exclude/include PATTERN + syncプロセスで除外または含めるファイルまたはディレクトリのパターンを定義します。 + すべてのパターンは指定された順序で処理されます。 + + 一致する最初のパターンが `exclude` の場合、ファイルは除外されます。 + `include` の場合、ファイルは含まれます。 + パターンが一致しない場合、最後に指定されたパターンが `include` の場合はファイルは除外され、 + `exclude` の場合は含まれます。 + + パターン仕様の詳細については、PATTERNセクションを参照してください。 + + このオプションは複数回使用できます。 + + blocksize SIZE_IN_KIBIBYTES + パリティの基本ブロックサイズをキビバイト単位で定義します。 + 1キビバイトは1024バイトです。 + + デフォルトのブロックサイズは256であり、ほとんどの場合に機能するはずです。 + + **警告!** このオプションはエキスパートのみを対象としており、この値を変更しないことを強く + お勧めします。今後この値を変更するには、パリティ全体を**再作成**する必要があります! + + 異なるブロックサイズを使用する理由の1つは、数百万のオーダーの**多くの小さなファイル**を + 持っている場合です。 + + ファイルごとに、たとえ数バイトであっても、パリティの**ブロック全体**が割り当てられ、 + ファイルが多いと、これにより**かなりの未使用パリティスペース**が発生する可能性があります。 + パリティディスクを完全に埋めると、データディスクにファイルを追加することは**許可されません**。 + ただし、浪費されたパリティはデータディスク間で蓄積されません。データディスク上の多数のファイルから + 生じる浪費スペースは、**そのデータディスク上のデータ量**のみを制限し、他のデータディスクには + 影響しません。 + + 概算として、ファイルごとにブロックサイズの半分が浪費されると仮定できます。 + たとえば、100,000ファイルと256 KiBのブロックサイズがある場合、12.8 GBのパリティが浪費され、 + これによりデータディスク上で12.8 GB少ないスペースしか利用できなくなる可能性があります。 + + `status` を使用して、各ディスクの浪費スペースの量を確認できます。 + これは、データディスク上に**空き**として残す必要がある、またはアレイに含まれないファイルに + 使用する必要があるスペースの量です。 + この値が負の場合、パリティが満杯に近づいていることを意味し、まだ浪費できるスペースを + 表します。 + + この問題を回避するために、パリティにより大きなパーティションを使用できます。 + たとえば、パリティパーティションがデータディスクよりも12.8 GB大きい場合、 + 各データディスクで最大100,000ファイルを処理するのに十分な追加スペースがあり、 + 浪費スペースはありません。 + + Linuxでより大きなパリティパーティションを取得するトリックは、次のコマンドで + フォーマットすることです。 + + :mkfs.ext4 -m 0 -T largefile4 DEVICE + + これにより、約1.5%の追加スペース、4 TBディスクで約60 GBが得られ、 + 浪費スペースなしで各データディスクで約460,000ファイルが可能になります。 + + hashsize SIZE_IN_BYTES + 保存されたブロックのハッシュサイズをバイト単位で定義します。 + + デフォルトのハッシュサイズは16バイト(128ビット)であり、ほとんどの場合に機能するはずです。 + + **警告!** このオプションはエキスパートのみを対象としており、この値を変更しないことを強く + お勧めします。今後この値を変更するには、パリティ全体を**再作成**する必要があります! + + 異なるハッシュサイズを使用する理由の1つは、システムのメモリが制限されている場合です。 + 経験則として、SnapRAIDは通常、アレイ内のデータ16 TBごとに1 GiBのRAMを必要とします。 + + 具体的には、データのハッシュを保存するために、SnapRAIDは + 約 $TS \cdot (1 + HS) / BS$ バイトのRAMを必要とします。 + ここで、TSはディスクアレイの合計サイズ(バイト)、BSはブロックサイズ(バイト)、HSはハッシュサイズ(バイト)です。 + + たとえば、4 TBのディスク8台、ブロックサイズ256 KiB(1 KiB = 1024バイト)、 + ハッシュサイズ16の場合: + + :RAM = $(8 \cdot 4 \cdot 10^{12}) \cdot (1 + 16) / (256 \cdot 2^{10}) = 1.93 \text{ GiB}$ + + ハッシュサイズを8に切り替えると: + + :RAM = $(8 \cdot 4 \cdot 10^{12}) \cdot (1 + 8) / (256 \cdot 2^{10}) = 1.02 \text{ GiB}$ + + ブロックサイズを512に切り替えると: + + :RAM = $(8 \cdot 4 \cdot 10^{12}) \cdot (1 + 16) / (512 \cdot 2^{10}) = 0.96 \text{ GiB}$ + + ハッシュサイズを8、ブロックサイズを512の両方に切り替えると: + + :RAM = $(8 \cdot 4 \cdot 10^{12}) \cdot (1 + 8) / (512 \cdot 2^{10}) = 0.51 \text{ GiB}$ + + autosave SIZE_IN_GIGABYTES + 処理された指定されたGB量後に、同期またはスクラビング時に状態を自動的に保存します。 + このオプションは、マシンクラッシュやその他のイベントによって中断された場合に、 + 長い `sync` コマンドを最初から再起動するのを避けるのに役立ちます。 + + temp_limit TEMPERATURE_CELSIUS + 許容される最大ディスク温度を摂氏で設定します。指定されている場合、 + SnapRAIDは smartctl ツールを使用してすべてのディスクの温度を定期的にチェックします。 + SnapRAIDが動作している間、現在のディスク温度が表示されます。 + いずれかのディスクがこの制限を超えると、すべての操作が停止し、ディスクは `temp_sleep` + オプションで定義された期間、スピンダウン(スタンバイ状態に移行)されます。 + スリープ期間後、操作は再開されますが、温度制限に再度達した場合は再び一時停止する + 可能性があります。 + + 操作中、SnapRAIDは各ディスクの加熱曲線も分析し、アクティビティが継続した場合に + 達すると予想される長期的な安定温度を推定します。推定は、ディスク温度が4回上昇した + 後にのみ実行され、信頼できる傾向を確立するのに十分なデータポイントが利用可能であることを + 保証します。 + この予測される安定温度は、現在の値の横に括弧で表示され、システムの冷却が + 適切かどうかを評価するのに役立ちます。この推定温度は情報提供のみを目的としており、 + SnapRAIDの動作には影響しません。プログラムの動作は、実際の測定されたディスク温度にのみ + 基づいています。 + + この分析を実行するために、SnapRAIDはシステム温度の参照が必要です。 + まず、利用可能なハードウェアセンサーから読み取ろうとします。システムセンサーに + アクセスできない場合は、実行開始時に測定された最も低いディスク温度をフォールバック参照として + 使用します。 + + 通常、SnapRAIDは最も熱いディスクの温度のみを表示します。 + すべてのディスクの温度を表示するには、-A または --stats オプションを使用します。 + + temp_sleep TIME_IN_MINUTES + 温度制限に達したときのスタンバイ時間(分単位)を設定します。この期間中、ディスクは + スピンダウンしたままです。デフォルトは5分です。 + + pool DIR + `pool` コマンドを使用してディスクアレイの仮想ビューが作成されるプーリングディレクトリを + 定義します。 + + ディレクトリは既に存在している必要があります。 + + share UNC_DIR + ディスクにリモートでアクセスするために必要なWindows UNCパスを定義します。 + + このオプションが指定されている場合、プールディレクトリに作成されたシンボリックリンクは、 + ディスクにアクセスするためにこのUNCパスを使用します。 + このオプションがない場合、生成されたシンボリックリンクはローカルパスのみを使用し、 + プールディレクトリをネットワーク経由で共有することはできません。 + + シンボリックリンクは、指定されたUNCパスを使用して形成され、`data` オプションで + 指定されたディスク名を追加し、最後にファイルのディレクトリと名前を追加します。 + + このオプションはWindowsでのみ必要です。 + + smartctl DISK/PARITY OPTIONS... + 各ディスクのSMART属性を取得するためのカスタムsmartctlオプションを定義します。 + これは、RAIDコントローラーや一部のUSBディスクが自動検出できない場合に必要になる + ことがあります。`%s` プレースホルダーはデバイス名に置き換えられますが、 + RAIDコントローラーなどの固定デバイスではオプションです。 + + DISK は `data` オプションで指定されたのと同じディスク名です。 + PARITY はパリティ名のいずれかです:`parity`、`2-parity`、`3-parity`、 + `4-parity`、`5-parity`、`6-parity`、または `z-parity`。 + + 指定された OPTIONS で、`%s` 文字列はデバイス名に置き換えられます。 + RAIDコントローラーの場合、デバイスは固定されている可能性が高いため、 + `%s` を使用する必要はないかもしれません。 + + 使用可能なオプションについては、smartmontoolsのドキュメントを参照してください。 + + :https://www.smartmontools.org/wiki/Supported_RAID-Controllers + :https://www.smartmontools.org/wiki/Supported_USB-Devices + + 例: + + :smartctl parity -d sat %s + + smartignore DISK/PARITY ATTR [ATTR...] + ディスク障害の確率を計算するときに、指定されたSMART属性を無視します。 + このオプションは、ディスクが特定の属性について異常な値または誤解を招く値を報告する場合に + 役立ちます。 + + DISK は `data` オプションで指定されたのと同じディスク名です。 + PARITY はパリティ名のいずれかです:`parity`、`2-parity`、`3-parity`、 + `4-parity`、`5-parity`、`6-parity`、または `z-parity`。 + 特殊な値 `*` は、すべてのディスクで属性を無視するために使用できます。 + + 例として、すべてのディスクで `Current Pending Sector Count` 属性を無視するには: + + :smartignore * 197 + + 最初のパリティディスクでのみ無視するには: + + :smartignore parity 197 + + Examples + Unixの一般的な構成の例は次のとおりです。 + + :parity /mnt/diskp/snapraid.parity + :content /mnt/diskp/snapraid.content + :content /var/snapraid/snapraid.content + :data d1 /mnt/disk1/ + :data d2 /mnt/disk2/ + :data d3 /mnt/disk3/ + :exclude /lost+found/ + :exclude /tmp/ + :smartctl d1 -d sat %s + :smartctl d2 -d usbjmicron %s + :smartctl parity -d areca,1/1 /dev/sg0 + :smartctl 2-parity -d areca,2/1 /dev/sg0 + + Windowsの一般的な構成の例は次のとおりです。 + + :parity E:\snapraid.parity + :content E:\snapraid.content + :content C:\snapraid\snapraid.content + :data d1 G:\array\ + :data d2 H:\array\ + :data d3 I:\array\ + :exclude Thumbs.db + :exclude \$RECYCLE.BIN + :exclude \System Volume Information + :smartctl d1 -d sat %s + :smartctl d2 -d usbjmicron %s + :smartctl parity -d areca,1/1 /dev/arcmsr0 + :smartctl 2-parity -d areca,2/1 /dev/arcmsr0 + +Pattern + パターンは、プロセスで除外または含めるファイルのサブセットを選択するために使用されます。 + + 4つの異なる種類のパターンがあります。 + + =FILE + FILE という名前の任意のファイルを選択します。* や ? などのグロブ文字、 + および [a-z] などの文字クラスを使用できます。 + このパターンは**ファイルのみ**に適用され、ディレクトリには適用されません。 + + =DIR/ + DIR という名前の任意のディレクトリと、その中のすべてを選択します。 + * や ? などのグロブ文字を使用できます。 + このパターンは**ディレクトリのみ**に適用され、ファイルには適用されません。 + + =/PATH/FILE + 正確に指定されたファイルパスを選択します。* や ? などのグロブ文字を + 使用できますが、**ディレクトリスラッシュには一致しません**。 + このパターンは**ファイルのみ**に適用され、ディレクトリには適用されません。 + + =/PATH/DIR/ + 正確に指定されたディレクトリパスと、その中のすべてを選択します。* や ? などの + グロブ文字を使用できますが、**ディレクトリスラッシュには一致しません**。 + このパターンは**ディレクトリのみ**に適用され、ファイルには適用されません。 + + / で始まる絶対パスを指定する場合、それはローカルファイルシステムのルートディレクトリではなく、 + **アレイのルートディレクトリ**に適用されます。 + + Windowsでは、フォワードスラッシュ / の代わりにバックスラッシュ \ を使用できます。 + Windowsシステムディレクトリ、ジャンクション、マウントポイント、およびその他のWindowsの + 特殊ディレクトリはファイルとして扱われます。つまり、それらを除外するには、 + ディレクトリルールではなく**ファイルルール**を使用する必要があります。 + + ファイル名に '*'、'?'、'['、または ']' 文字が含まれている場合は、 + グロブ文字として解釈されないように**エスケープ**する必要があります。 + Unixではエスケープ文字は '\' です。Windowsでは '^' です。 + パターンがコマンドラインにある場合は、コマンドシェルによって解釈されるのを防ぐために、 + エスケープ文字を**2倍**にする必要があります。 + + 構成ファイルでは、処理するファイルをフィルタリングするために異なる戦略を使用できます。 + 最も簡単なアプローチは、**除外**したいすべてのファイルとディレクトリを削除するために、 + `exclude` ルールのみを使用することです。例: + + :# `*.unrecoverable` という名前の任意のファイルを除外 + :exclude *.unrecoverable + :# ルートディレクトリ `/lost+found` を除外 + :exclude /lost+found/ + :# `tmp` という名前の任意のサブディレクトリを除外 + :exclude tmp/ + + 反対のアプローチは、`include` ルールのみを使用して、**処理したいファイルのみ**を + 定義することです。例: + + :# 一部のディレクトリのみを含める + :include /movies/ + :include /musics/ + :include /pictures/ + + 最後の方法としては、`exclude` と `include` ルールを混在させます。この場合、 + **ルールの順序が重要**です。前のルールは後のルールよりも優先されます。 + 簡素化するために、すべての `exclude` ルールを最初にリストし、次にすべての `include` + ルールをリストできます。例: + + :# `*.unrecoverable` という名前の任意のファイルを除外 + :exclude *.unrecoverable + :# `tmp` という名前の任意のサブディレクトリを除外 + :exclude tmp/ + :# 一部のディレクトリのみを含める + :include /movies/ + :include /musics/ + :include /pictures/ + + コマンドラインで -f オプションを使用する場合、`include` パターンのみを + 使用できます。例: + + :# .mp3 ファイルのみをチェック。 + :# Unixでは、シェルによるグロブ展開を防ぐために引用符を使用。 + :snapraid -f "*.mp3" check + + Unixでは、コマンドラインでグロブ文字を使用する場合、シェルがそれらを展開するのを + 防ぐために引用符で囲む必要があります。 + +Content + SnapRAIDは、ファイルの一覧とチェックサムをコンテンツファイルに保存します。 + + これはバイナリファイルであり、ディスクアレイに存在するすべてのファイルと、 + それらの整合性を検証するためのすべてのチェックサムを一覧表示します。 + + このファイルは `sync` および `scrub` コマンドによって読み書きされ、 + `fix`、`check`、および `status` コマンドによって読み取られます。 + +Parity + SnapRAIDは、アレイのパリティ情報をパリティファイルに保存します。 + + これらはバイナリファイルであり、`content` ファイルで定義されたすべてのブロックの + 計算されたパリティが含まれています。 + + これらのファイルは `sync` および `fix` コマンドによって読み書きされ、 + `scrub` および `check` コマンドによって**読み取られるだけ**です。 + +Encoding + UnixのSnapRAIDは、エンコーディングを無視します。ファイルシステムで使用されている + のと同じエンコーディングでファイル名を読み取り、保存します。 + + Windowsでは、ファイルシステムから読み取られたすべての名前はUTF-8形式に変換され、 + 処理されます。 + + ファイル名を正しく出力するには、`chcp 65001` コマンドでWindowsコンソールをUTF-8モードに設定し、 + コンソールフォントとして `Lucida Console` などのTrueTypeフォントを**使用する**必要があります。 + これは出力されるファイル名にのみ影響します。コンソール出力をファイルにリダイレクトする場合、 + 結果のファイルは常にUTF-8形式になります。 + +Copyright + This file is Copyright (C) 2025 Andrea Mazzoleni + +See Also + snapraid_log(1), rsync(1) diff --git a/snapraid-ja.txt b/snapraid-ja.txt new file mode 100644 index 00000000..08a7f97f --- /dev/null +++ b/snapraid-ja.txt @@ -0,0 +1,1460 @@ + =========================== + Disk Array用 SnapRAID バックアップ + =========================== + + +1 SYNOPSIS +========== + +snapraid [-c, --conf CONFIG] + [-f, --filter PATTERN] [-d, --filter-disk NAME] + [-m, --filter-missing] [-e, --filter-error] + [-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|probe|up|down|diff|sync|scrub|fix|check + |list|dup|pool|devices|touch|rehash + +snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT] + + +2 DESCRIPTION +============= + +SnapRAIDは、ディスクアレイ用のバックアッププログラムで、最大6台のディスク障害が発生した場合の +データ復旧のためにパリティ情報を保存します。 + +主に大容量で、更新頻度の低いファイルを扱うホームメディアセンターを対象としており、 +SnapRAIDにはいくつかの機能があります。 + +* ファイルが既に入っているディスクを、再フォーマットせずにそのまま利用でき、通常通り + アクセスできます。 +* すべてのデータがハッシュ化され、データの整合性を確保し、サイレントな破損を防ぎます。 +* 障害が発生したディスクの数がパリティ数を超えた場合、データの損失は影響を受けたディスクに + 限定され、他のディスクのデータは引き続きアクセス可能です。 +* 誤ってディスク上のファイルを削除した場合でも、復旧が可能です。 +* ディスクは異なるサイズであっても構いません。 +* いつでもディスクを追加できます。 +* SnapRAIDはデータをロックしません。いつでも再フォーマットやデータ移動なしに利用を + 停止できます。 +* ファイルにアクセスするためにスピンさせる必要があるのは1台のディスクだけであり、 + 省電力と騒音低減に役立ちます。 + +詳細については、SnapRAIDの公式サイトをご覧ください。 + + https://www.snapraid.it/ + + +3 LIMITATIONS +============= + +SnapRAIDはRAIDとバックアッププログラムのハイブリッドであり、両方の利点を組み合わせることを +目指しています。ただし、使用する前に考慮すべきいくつかの制限があります。 + +主な制限は、ディスクが故障し、最近 `sync` を実行していない場合、完全に復旧できない +可能性があることです。 +より具体的には、最後の `sync` 操作以降に変更または削除されたファイルのサイズまでのデータが +復旧できない可能性があります。 +これは、変更または削除されたファイルが故障したディスク上にない場合でも発生します。 +このため、SnapRAIDは**めったに変更されない**データに適しています。 + +一方で、新しく追加されたファイルは、既に存在するファイルの復旧を妨げません。 +新しく追加されたファイルが故障したディスク上にある場合にのみ、それらのファイルが失われます。 + +その他のSnapRAIDの制限は次のとおりです。 + +* SnapRAIDでは、各ディスクに対して**個別のファイルシステム**が保持されます。 + RAIDでは、単一の大きなファイルシステムが得られます。 +* SnapRAIDは**データをストライピングしません**。 + RAIDでは、ストライピングにより速度が向上します。 +* SnapRAIDは**リアルタイムの復旧をサポートしません**。 + RAIDでは、ディスクが故障しても作業を停止する必要はありません。 +* SnapRAIDは**限られた数のディスク障害**からのみデータを復旧できます。 + バックアップでは、ディスクアレイ全体の完全な障害から復旧できます。 +* **ファイル名、タイムスタンプ、シンボリックリンク、およびハードリンク**のみが保存されます。 + アクセス許可、所有権、および拡張属性は保存されません。 + + +4 GETTING STARTED +================= + +SnapRAIDを使用するには、まずディスクアレイ内の1つのディスクを `parity` 情報専用に +選択する必要があります。パリティ用に1つのディスクを使用すると、RAID5と同様に、単一のディスク障害から +復旧できます。 + +RAID6と同様に、より多くのディスク障害から復旧したい場合は、パリティ用に追加のディスクを +確保する必要があります。パリティディスクを追加するたびに、復旧できるディスク障害が1つ増えます。 + +パリティ情報はアレイ内の**最大のデータディスク**のサイズにまで増える可能性があるため、 +パリティディスクとしては、アレイ内の**最大のディスク**を選択する必要があります。 + +これらのディスクは、`parity` ファイルの保存専用になります。 +**データを保存しないでください**。 + +次に、SnapRAIDで保護したい `data` ディスクを定義する必要があります。 +これらのディスクに含まれるデータがめったに変更されない場合に、保護が最も効果的です。 +このため、WindowsのC:\ディスクやUnixの/home、/var、/tmpディレクトリを含めない方が +良いでしょう。 + +ファイルの一覧は `content` ファイルに保存され、通常はデータ、パリティ、または +ブートディスクに保存されます。 +このファイルには、バックアップの詳細と、その整合性を検証するためのすべての +チェックサムが含まれています。 +`content` ファイルは**複数のコピー**で保存され、複数のディスク障害が発生した場合でも、 +少なくとも1つのコピーが利用可能であることを保証するために、**各コピーは異なるディスクに** +配置する必要があります。 + +たとえば、1レベルのパリティ保護のみに関心があり、ディスクが次の場所にあるとします。 + + /mnt/diskp <- パリティ用に選択されたディスク + /mnt/disk1 <- 保護する最初のディスク + /mnt/disk2 <- 保護する2番目のディスク + /mnt/disk3 <- 保護する3番目のディスク + +構成ファイル `/etc/snapraid.conf` を次のオプションで作成する必要があります。 + + parity /mnt/diskp/snapraid.parity + content /var/snapraid/snapraid.content + content /mnt/disk1/snapraid.content + content /mnt/disk2/snapraid.content + data d1 /mnt/disk1/ + data d2 /mnt/disk2/ + data d3 /mnt/disk3/ + +Windowsを使用している場合は、スラッシュではなくドライブ文字とバックスラッシュを +使用したWindowsのパス形式を使用する必要があります。 + + parity E:\snapraid.parity + content C:\snapraid\snapraid.content + content F:\array\snapraid.content + content G:\array\snapraid.content + data d1 F:\array\ + data d2 G:\array\ + data d3 H:\array\ + +ディスクが多くてドライブ文字が不足する場合は、サブフォルダにディスクを +直接マウントできます。参照: + + https://www.google.com/search?q=Windows+mount+point + +この時点で、パリティ情報を構築するために `sync` コマンドを実行する準備が整いました。 + + snapraid sync + +このプロセスは、既にディスクに存在するデータのサイズに応じて、初回は数時間かかる +場合があります。ディスクが空の場合は、プロセスは即座に完了します。 + +Ctrl+Cを押すことでいつでも停止でき、次回の実行時には中断された場所から再開されます。 + +このコマンドが完了すると、データは**SAFE**になります。 + +これで、アレイを自由に使い始め、定期的に `sync` コマンドを実行してパリティ情報を +更新できます。 + +4.1 Scrubbing +------------- + +データとパリティのエラーを定期的にチェックするには、`scrub` コマンドを +実行できます。 + + snapraid scrub + +このコマンドは、配列内のデータを `sync` コマンド中に計算されたハッシュと比較して、 +整合性を検証します。 + +このコマンドを1回実行すると、前回の10日間で既にスクラブされたデータを除いて、 +アレイの約8%がチェックされます。 +-p, --plan オプションを使用して異なる量を指定でき、 +-o, --older-than オプションを使用して異なる経過日数で +指定できます。 +たとえば、20日以上経過したブロックの5%をチェックするには、次のように使用します。 + + snapraid -p 5 -o 20 scrub + +プロセス中にサイレントエラーまたは入出力エラーが見つかった場合、 +対応するブロックは `content` ファイル内で不良としてマークされ、 +`status` コマンドで一覧表示されます。 + + snapraid status + +それらを修正するには、-e, --filter-error オプションで不良ブロックをフィルタリングして、 +`fix` コマンドを使用できます。 + + snapraid -e fix + +次回の `scrub` で、エラーが本当に修正されていれば、`status` レポートから +エラーは消えます。より高速にするために、`-p bad` を使用して不良としてマークされた +ブロックのみをスクラブできます。 + + snapraid -p bad scrub + +未同期のアレイで `scrub` を実行すると、削除または変更されたファイルによって +引き起こされたエラーが報告される場合があります。これらのエラーは `scrub` の +出力で報告されますが、関連するブロックは不良としてマークされません。 + +4.2 Pooling +----------- + +注: ここで説明するプーリング機能は、**mergefs** ツールに取って代わられました。 +mergefs は、SnapRAIDコミュニティのLinuxユーザーに推奨されるオプションです。 +Mergefs は、複数のドライブを単一の統合されたマウントポイントにプールするための、 +より柔軟で効率的な方法を提供し、シンボリックリンクに頼ることなくアレイ全体の +ファイルにシームレスにアクセスできます。これは、パリティ保護のためにSnapRAIDと +うまく統合されており、OpenMediaVault (OMV) やカスタムNAS構成などのセットアップで +一般的に使用されています。 + +アレイ内のすべてのファイルを同じディレクトリツリーに表示させるには、 +`pooling` 機能を有効にできます。これは、シンボリックリンクを使用して、 +アレイ内のすべてのファイルの読み取り専用の仮想ビューを作成します。 + +構成ファイルで `pooling` ディレクトリを次のように構成できます。 + + pool /pool + +または、Windowsの場合は、次のようにします。 + + pool C:\pool + +そして、`pool` コマンドを実行して仮想ビューを作成または更新します。 + + snapraid pool + +Unixプラットフォームを使用しており、このディレクトリをWindowsまたはUnixマシンに +ネットワーク経由で共有したい場合は、`/etc/samba/smb.conf` に次のオプションを +追加する必要があります。 + + # smb.conf の global セクションで + unix extensions = no + + # smb.conf の share セクションで + [pool] + comment = Pool + path = /pool + read only = yes + guest ok = yes + wide links = yes + follow symlinks = yes + +Windowsでは、ネットワーク経由でシンボリックリンクを共有するには、クライアントが +それらをリモートで解決する必要があります。これを有効にするには、プールディレクトリを +共有することに加えて、構成ファイルで定義された**ディスク名**を共有ポイントとして +使用して、**すべてのディスクを個別に**共有する必要があります。また、リモートクライアントが +これらの共有ディスクにアクセスするために使用する必要があるWindows UNCパスを、 +構成ファイルの `share` オプションで指定する必要があります。 + +たとえば、`darkstar` という名前のサーバーで操作している場合、次のオプションを +使用できます。 + + data d1 F:\array\ + data d2 G:\array\ + data d3 H:\array\ + pool C:\pool + share \\darkstar + +そして、次のディレクトリをネットワーク経由で共有します。 + + \\darkstar\pool -> C:\pool + \\darkstar\d1 -> F:\array + \\darkstar\d2 -> G:\array + \\darkstar\d3 -> H:\array + +これにより、リモートクライアントは `\\darkstar\pool` ですべてのファイルに +アクセスできるようになります。 + +また、リモートクライアントがリモートシンボリックリンクへのアクセスを有効にするために、 +次のコマンドで構成する必要がある場合もあります。 + + fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 + +4.3 Undeleting +-------------- + +SnapRAIDはRAIDシステムよりもバックアッププログラムのように機能し、 +-f, --filter オプションを使用してファイルを以前の状態に復元または削除解除するために +使用できます。 + + snapraid fix -f FILE + +またはディレクトリの場合は: + + snapraid fix -f DIR/ + +また、-m, --filter-missing オプションを使用して、ディレクトリ内の**誤って削除されたファイルのみ**を +復旧するために使用することもできます。これにより、不足しているファイルのみが復元され、 +他のファイルはすべてそのまま残されます。 + + snapraid fix -m -f DIR/ + +または、すべてのドライブ上のすべての削除されたファイルを復旧するには: + + snapraid fix -m + +4.4 Recovering +-------------- + +最悪の事態が発生し、1台以上のディスクを失いました! + +**パニックにならないでください!** 復旧できます! + +最初に行うべきことは、ディスクアレイへの**さらなる変更を避ける**ことです。 +リモート接続、およびスケジュールされたSnapRAIDの夜間 `sync` や `scrub` を含む、 +すべてのスケジュールされたプロセスを無効にしてください。 + +次に、次の手順に進みます。 + +---- 4.4.1 STEP 1 -> Reconfigure ---- +復旧のためにいくらかのスペースが必要です。理想的には追加の +予備ディスクですが、外部USBディスクやリモートディスクでも十分です。 + +SnapRAIDの構成ファイルを変更して、故障したディスクの `data` または `parity` +オプションを、ファイルを復旧するための十分な空き容量のある場所に +向けます。 + +たとえば、ディスク `d1` が故障した場合、次のように変更します。 + + data d1 /mnt/disk1/ + +から: + + data d1 /mnt/new_spare_disk/ + +復旧するディスクがパリティディスクの場合は、適切な `parity` オプションを +更新します。 +複数のディスクが故障している場合は、すべての構成オプションを更新します。 + +---- 4.4.2 STEP 2 -> Fix ---- +ログを外部ファイルに保存して、`fix` コマンドを実行します。 + + snapraid -d NAME -l fix.log fix + +ここで NAME はディスクの名前であり、前の例では `d1` のようなものです。 +復旧するディスクがパリティディスクの場合は、`parity`、`2-parity` などの +名前を使用します。 +複数のディスクが故障している場合は、複数の `-d` オプションを使用して +すべてを指定します。 + +このコマンドは時間がかかります。 + +`fix.log` ファイルを保存するために数ギガバイトの空き容量があることを確認してください。 +十分な空き容量のあるディスクから実行してください。 + +これで、復旧可能なすべてのものが復旧されました。一部のファイルが部分的または完全に +復旧できない場合、それらは `.unrecoverable` 拡張子を追加して名前が変更されます。 + +`fix.log` ファイルで、`unrecoverable:` で始まるすべての行をチェックすることで、 +すべての復旧不能なブロックの詳細なリストを見つけることができます。 + +復旧に満足できない場合は、何度でも再試行できます。 + +たとえば、最後の `sync` の後にアレイからファイルを削除した場合、 +これにより一部のファイルが復旧されない可能性があります。 +この場合、-i, --import オプションを使用して、これらのファイルが現在どこにあるかを指定することで、 +復旧プロセスにそれらを再度含めるように `fix` を再試行できます。 + +復旧に満足している場合は、さらに進むことができますが、**sync** の実行後には +`fix` コマンドを**再試行できない**ことに注意してください! + +---- 4.4.3 STEP 3 -> Check ---- +慎重なチェックとして、`check` コマンドを実行して、復旧されたディスク上の +すべてが正しいことを確認できます。 + + snapraid -d NAME -a check + +ここで NAME はディスクの名前であり、前の例では `d1` のようなものです。 + +`-d` および `-a` オプションは、SnapRAIDに**指定されたディスクのみ**をチェックし、 +**すべてのパリティデータを無視**するように指示します。 + +このコマンドは時間がかかりますが、過度に慎重でない場合はスキップできます。 + +---- 4.4.4 STEP 4 -> Sync ---- +`sync` コマンドを実行して、アレイを新しいディスクと再同期します。 + + snapraid sync + +すべてが復旧されていれば、このコマンドは即座に完了します。 + + +5 COMMANDS +========== + +SnapRAIDは、次のことを可能にするいくつかの簡単なコマンドを提供します。 + +* アレイの状態の概要を出力 -> `status` +* ディスクの制御 -> `smart`、`probe`、`up`、`down` +* バックアップ/スナップショットの作成 -> `sync` +* データの定期的なチェック -> `scrub` +* 最後のバックアップ/スナップショットの復元 -> `fix`。 + +コマンドは**小文字**で記述する必要があります。 + +5.1 status +---------- + +ディスクアレイの状態の概要を出力します。 + +これには、パリティの断片化、チェックなしでのブロックの古さ、および +スクラビング中に遭遇したすべての記録されたサイレントエラーに関する情報が +含まれます。 + +提示される情報は、最後に `sync` を実行した時点のものです。 +それ以降の変更は考慮されません。 + +不良ブロックが検出された場合、それらのブロック番号が一覧表示されます。 +それらを修正するには、`fix -e` コマンドを使用できます。 + +また、各ブロックが最後にスクラブまたは同期された時期を示すグラフも表示されます。 +スクラブされたブロックは `*` で、同期されたがまだスクラブされていないブロックは `o` で +示されます。 + +何も変更されません。 + +5.2 smart +--------- + +システム内のすべてのディスクのSMARTレポートを出力します。 + +これには、翌年の故障確率の推定値が含まれており、疑わしい属性を示すディスクの +メンテナンス交換を計画できます。 + +この確率推定は、ディスクのSMART属性を次の場所で利用可能なBackblazeのデータと +相関させることで得られます。 + + https://www.backblaze.com/hard-drive-test-data.html + +SMARTがディスクが故障していると報告した場合、そのディスクに対して `FAIL` または `PREFAIL` が +出力され、SnapRAIDはエラーを返します。 +この場合、**ディスクの即時交換**が強く推奨されます。 + +その他の可能なステータス文字列は次のとおりです。 + logfail - 過去に、一部の属性がしきい値よりも低かった。 + logerr - デバイスのエラーログにエラーが含まれている。 + selferr - デバイスのセルフテストログにエラーが含まれている。 + + -v, --verbose オプションが指定されている場合、より詳細な統計分析が提供されます。 +この分析は、より多くまたはより少ないパリティが必要かどうかを決定するのに役立ちます。 + +このコマンドは `smartctl` ツールを使用し、すべてのデバイスで `smartctl -a` を実行するのと +同等です。 + +デバイスが正しく自動検出されない場合は、構成ファイルで `smartctl` オプションを +使用してカスタムコマンドを指定できます。 + +何も変更されません。 + +5.3 probe +--------- + +システム内のすべてのディスクのPOWER状態を出力します。 + +`Standby` はディスクがスピンしていないことを意味します。`Active` は +ディスクがスピンしていることを意味します。 + +このコマンドは `smartctl` ツールを使用し、すべてのデバイスで `smartctl -n standby -i` を実行するのと +同等です。 + +デバイスが正しく自動検出されない場合は、構成ファイルで `smartctl` オプションを +使用してカスタムコマンドを指定できます。 + +何も変更されません。 + +5.4 up +------ + +アレイのすべてのディスクをスピンアップします。 + + -d, --filter-disk オプションを使用して、特定のディスクのみをスピンアップできます。 + +すべてのディスクを同時にスピンアップするには、多くの電力が必要です。 +電源がそれに耐えられることを確認してください。 + +何も変更されません。 + +5.5 down +-------- + +アレイのすべてのディスクをスピンダウンします。 + +このコマンドは `smartctl` ツールを使用し、すべてのデバイスで `smartctl -s standby,now` を実行するのと +同等です。 + + -d, --filter-disk オプションを使用して、特定のディスクのみをスピンダウンできます。 + +エラー時に自動的にスピンダウンするには、他の任意のコマンドで -s, --spin-down-on-error +オプションを使用できます。これは、エラーが発生したときに手動で `down` を実行するのと同等です。 + +何も変更されません。 + +5.6 diff +-------- + +最後の `sync` 以降に変更され、パリティデータを再計算する必要があるすべてのファイルを +一覧表示します。 + +このコマンドはファイルデータはチェックせず、ファイルのタイムスタンプ、サイズ、 +およびinodeのみをチェックします。 + +変更されたすべてのファイルを一覧表示した後、変更の概要が +次のようにグループ化されて提示されます。 + equal - 変更されていないファイル。 + added - 以前は存在しなかった追加されたファイル。 + removed - 削除されたファイル。 + updated - サイズまたはタイムスタンプが異なるファイル。これは、 + 変更されたことを意味します。 + moved - 同じディスク上の異なるディレクトリに移動されたファイル。 + 同じ名前、サイズ、タイムスタンプ、およびinodeを持ちますが、ディレクトリが + 異なることで識別されます。 + copied - 同じディスクまたは異なるディスクにコピーされたファイル。 + 異なるディスクに真に移動された場合、`removed` にも + カウントされることに注意してください。 + 同じ名前、サイズ、およびタイムスタンプを持つことで識別されます。 + サブ秒のタイムスタンプがゼロの場合、ファイル名だけでなく、 + フルパスが一致する必要があります。 + restored - inodeは異なるが、名前、サイズ、タイムスタンプが一致するファイル。 + これらは通常、削除後に復元されたファイルです。 + +`sync` が必要な場合、プロセスはデフォルトの0ではなく、リターンコード2を返します。 +リターンコード1は、一般的なエラー状態に使用されます。 + +何も変更されません。 + +5.7 sync +-------- + +パリティ情報を更新します。ディスクアレイ内のすべての変更されたファイルが読み取られ、 +対応するパリティデータが更新されます。 + +Ctrl+Cを押すことでいつでもこのプロセスを停止でき、 +既に完了した作業を失うことはありません。 +次回の実行時には、`sync` プロセスは中断された場所から +再開されます。 + +プロセス中にサイレントエラーまたは入出力エラーが見つかった場合、 +対応するブロックは不良としてマークされます。 + +ファイルはパスおよび/またはinodeによって識別され、サイズとタイムスタンプによって +チェックされます。 +ファイルサイズまたはタイムスタンプが異なる場合、パリティデータはファイル全体で +再計算されます。 +ファイルが同じディスク上で移動または名前が変更され、同じinodeが保持されている場合、 +パリティは再計算されません。 +ファイルが別のディスクに移動された場合、パリティは再計算されますが、 +以前に計算されたハッシュ情報は保持されます。 + +`content` ファイルと `parity` ファイルは必要に応じて変更されます。 +アレイ内のファイルは**変更されません**。 + +5.8 scrub +--------- + +アレイをスクラブし、データおよびパリティディスクのサイレントエラーまたは入出力エラーを +チェックします。 + +1回の呼び出しごとに、最後の10日間で既にスクラブされたデータを除いて、 +アレイの約8%がチェックされます。 +これは、週に1回スクラビングを実行すると、すべてのデータが少なくとも3か月に1回は +チェックされることを意味します。 + + -p, --plan オプションを使用して、異なるスクラブプランまたは量を定義できます。 +このオプションは以下を受け入れます。 +bad - 不良としてマークされたブロックをスクラブします。 +new - まだスクラブされていない、同期されたばかりのブロックをスクラブします。 +full - すべてをスクラブします。 +0-100 - 指定されたパーセンテージのブロックをスクラブします。 + +パーセンテージの量を指定する場合、-o, --older-than オプションを使用して、 +ブロックがどれくらいの古さである必要があるかを定義することもできます。 +最も古いブロックが最初にスクラブされ、最適なチェックが保証されます。 +まだスクラブされていない、同期されたばかりのブロックのみをスクラブしたい場合は、 +`-p new` オプションを使用します。 + +スクラブステータスの詳細を取得するには、`status` コマンドを使用します。 + +見つかったサイレントエラーまたは入出力エラーごとに、対応するブロックは +`content` ファイル内で不良としてマークされます。 +これらの不良ブロックは `status` で一覧表示され、`fix -e` で修正できます。 +修正後、次回のスクラブで再チェックされ、修正されていると判明した場合、 +不良マークは削除されます。 +不良ブロックのみをスクラブするには、`scrub -p bad` コマンドを使用できます。 + +未同期のデータによって引き起こされた報告されたエラーを避けるために、 +`scrub` は**同期された**アレイでのみ実行することをお勧めします。これらのエラーは +サイレントエラーではないと認識され、ブロックは不良としてマークされませんが、 +そのようなエラーはコマンドの出力で報告されます。 + +`content` ファイルは、各ブロックの最後のチェック時刻を更新し、不良ブロックを +マークするために変更されます。 +`parity` ファイルは**変更されません**。 +アレイ内のファイルは**変更されません**。 + +5.9 fix +------- + +すべてのファイルとパリティデータを修正します。 + +すべてのファイルとパリティデータは、最後の `sync` で保存されたスナップショット状態と +比較されます。 +違いが見つかった場合、保存されたスナップショットに**元に戻されます**。 + +**警告!** `fix` コマンドは、エラーと意図的な変更を区別しません。 +ファイルの_状態を_最後の `sync` に**無条件に元に戻します**。 + +他のオプションが指定されていない場合、アレイ全体が処理されます。 +フィルタオプションを使用して、操作するファイルまたはディスクのサブセットを +選択します。 + +`sync` および `scrub` 中に不良としてマークされたブロックのみを修正するには、 +-e, --filter-error オプションを使用します。 +他のフィルタオプションとは異なり、これは最新の `sync` 以降に**変更されていない** +ファイルにのみ修正を適用します。 + +SnapRAIDは、修正できないすべてのファイルの名前を `.unrecoverable` 拡張子を +追加して変更します。 + +修正する前に、アレイ全体がスキャンされ、最後の `sync` 操作以降に移動されたファイルが +見つけられます。 +これらのファイルは、名前を無視してタイムスタンプによって識別され、 +必要に応じて復旧プロセスで使用されます。 +それらのいくつかをアレイ外に移動した場合は、-i, --import オプションを使用して +スキャンする追加のディレクトリを指定できます。 + +ファイルは**パスによってのみ**識別され、inodeによっては識別されません。 + +`content` ファイルは**変更されません**。 +`parity` ファイルは必要に応じて変更されます。 +アレイ内のファイルは必要に応じて変更されます。 + +5.10 check +---------- + +すべてのファイルとパリティデータを検証します。 + +`fix` のように機能しますが、復旧を**シミュレートするだけ**で、アレイに**変更は書き込まれません**。 + +このコマンドは、主に復旧プロセス後やその他の特殊な条件下での手動検証を +目的としています。 +定期的でスケジュールされたチェックには、`scrub` を使用します。 + + -a, --audit-only オプションを使用すると、ファイルの**ハッシュのみ**がチェックされ、 +パリティデータは無視されるため、チェックプロセスが大幅に高速化されます。 + +ファイルは**パスによってのみ**識別され、inodeによっては識別されません。 + +何も変更されません。 + +5.11 list +--------- + +最後の `sync` の時点のアレイに含まれるすべてのファイルを +一覧表示します。 + + -v または --verbose を使用すると、サブ秒の時間も表示されます。 + +何も変更されません。 + +5.12 dup +-------- + +すべての重複ファイルを一覧表示します。ハッシュが一致する場合、2つのファイルは等しいと見なされます。 +ファイルデータは読み取られず、事前に計算されたハッシュのみが使用されます。 + +何も変更されません。 + +5.13 pool +--------- + +`pooling` ディレクトリに、ディスクアレイ内のすべてのファイルの仮想ビューを +作成または更新します。 + +ファイルはコピーされず、シンボリックリンクを使用してリンクされます。 + +更新時、既存のすべてのシンボリックリンクと空のサブディレクトリは削除され、 +アレイの新しいビューに置き換えられます。その他の通常のファイルはそのまま残されます。 + +プールディレクトリ外は何も変更されません。 + +5.14 devices +------------ + +アレイで使用される低レベルデバイスを出力します。 + +このコマンドは、アレイ内のデバイスの関連付けを表示し、主にスクリプトインターフェイスを +目的としています。 + +最初の2つの列は、低レベルデバイスIDとパスです。 +次の2つの列は、高レベルデバイスIDとパスです。 +最後の列は、アレイ内のディスク名です。 + +ほとんどの場合、アレイ内のディスクごとに1つの低レベルデバイスがありますが、 +より複雑な構成では、単一のアレイ内のディスクで複数の低レベルデバイスが +使用される場合があります。 + +何も変更されません。 + +5.15 touch +---------- + +サブ秒のタイムスタンプがゼロに設定されているすべてのファイルに、任意のサブ秒のタイムスタンプを +設定します。 + +これにより、タイムスタンプがほぼ一意になり、重複の可能性が減るため、 +SnapRAIDが移動およびコピーされたファイルを認識する能力が向上します。 + +より具体的には、サブ秒のタイムスタンプがゼロでない場合、移動またはコピーされたファイルは、 +名前、サイズ、およびタイムスタンプが一致する場合にそうであると識別されます。 +サブ秒のタイムスタンプがゼロの場合、フルパス、サイズ、およびタイムスタンプのすべてが +一致する場合にのみコピーと見なされます。 + +秒精度のタイムスタンプは変更されないため、ファイルのすべての日付と時刻は +保持されます。 + +5.16 rehash +----------- + +アレイ全体のリハッシュをスケジュールします。 + +このコマンドは、使用されるハッシュの種類を変更します。これは通常、32ビットシステムから +64ビットシステムにアップグレードするときに、MurmurHash3からより高速なSpookyHashに +切り替えるために行われます。 + +既に最適なハッシュを使用している場合、このコマンドは何もせず、アクションが不要であることを +通知します。 + +リハッシュはすぐには実行されず、`sync` および `scrub` の間に徐々に実行されます。 + +`status` を使用してリハッシュの状態を確認できます。 + +リハッシュ中もSnapRAIDは完全な機能を維持しますが、唯一の例外として、 +`dup` は異なるハッシュを使用している重複ファイルを検出できません。 + + +6 OPTIONS +========= + +SnapRAIDには、次のオプションがあります。 + + -c, --conf CONFIG + 使用する構成ファイルを選択します。指定されていない場合、Unixでは、存在すれば + `/usr/local/etc/snapraid.conf` を使用し、それ以外の場合は `/etc/snapraid.conf` を + 使用します。 + Windowsでは、`snapraid.exe` と同じディレクトリにある `snapraid.conf` ファイルを + 使用します。 + + -f, --filter PATTERN + `check` および `fix` で処理するファイルをフィルタリングします。 + 指定されたパターンに一致するファイルのみが処理されます。 + このオプションは複数回使用できます。 + パターン仕様の詳細については、PATTERNセクションを参照してください。 + Unixでは、グロブ文字を使用する場合は引用符で囲むようにしてください。 + このオプションは、`check` および `fix` のみで使用できます。 + これらは常にアレイ全体を処理するため、`sync` および `scrub` では + 使用できません。 + + -d, --filter-disk NAME + `check`、`fix`、`up`、および `down` で処理するディスクをフィルタリングします。 + 構成ファイルで定義されているディスク名を指定する必要があります。 + `parity`、`2-parity`、`3-parity` などの名前でパリティディスクも指定して、 + 特定のパリティディスクに操作を限定できます。 + 複数の --filter、--filter-disk、および --filter-missing オプションを組み合わせると、 + すべてのフィルタに一致するファイルのみが選択されます。 + このオプションは複数回使用できます。 + このオプションは、`check`、`fix`、`up`、および `down` のみで使用できます。 + これらは常にアレイ全体を処理するため、`sync` および `scrub` では + 使用できません。 + + -m, --filter-missing + `check` および `fix` で処理するファイルをフィルタリングします。 + アレイから不足または削除されたファイルのみが処理されます。 + `fix` と一緒に使用すると、これは `undelete` コマンドとして機能します。 + 複数の --filter、--filter-disk、および --filter-missing オプションを組み合わせると、 + すべてのフィルタに一致するファイルのみが選択されます。 + このオプションは、`check` および `fix` のみで使用できます。 + これらは常にアレイ全体を処理するため、`sync` および `scrub` では + 使用できません。 + + -e, --filter-error + `check` および `fix` でエラーのあるファイルを処理します。 + `status` で一覧表示されているように、`sync` および `scrub` 中にサイレントエラーまたは + 入出力エラーでマークされたブロックを持つファイルのみを処理します。 + このオプションは、`check` および `fix` のみで使用できます。 + + -p, --plan PERC|bad|new|full + スクラブプランを選択します。PERCが0から100までの数値である場合、 + スクラブするブロックのパーセンテージとして解釈されます。 + パーセンテージの代わりに、プランを指定できます。 + `bad` は不良ブロックをスクラブし、`new` はまだスクラブされていないブロックをスクラブし、 + `full` はすべてをスクラブします。 + このオプションは、`scrub` のみで使用できます。 + + -o, --older-than DAYS + `scrub` で処理するアレイの最も古い部分を選択します。 + DAYS は、ブロックがスクラブされるための最小経過日数であり、デフォルトは10です。 + 不良としてマークされたブロックは、このオプションに関係なく常にスクラブされます。 + このオプションは、`scrub` のみで使用できます。 + + -a, --audit-only + `check` で、パリティデータをチェックせずにファイルのハッシュを検証します。 + ファイルデータのみのチェックに関心がある場合、このオプションはチェックプロセスを + 大幅に高速化できます。 + このオプションは、`check` のみで使用できます。 + + -h, --pre-hash + `sync` で、パリティ計算の前の追加検証のために、すべての新しいデータの + 予備ハッシュ化フェーズを実行します。 + 通常、`sync` では、予備ハッシュ化は行われず、新しいデータはパリティ計算の直前に、 + 最初に読み取られたときにハッシュ化されます。 + このプロセスは、システムが重い負荷の下にあり、すべてのディスクがスピンしており、CPUが + ビジーなときに発生します。 + これはマシンにとって極端な状態であり、潜在的なハードウェアの問題がある場合、 + データがまだハッシュ化されていないため、サイレントエラーが検出されないままになる + 可能性があります。 + このリスクを回避するために、`pre-hash` モードを有効にして、すべてのデータを2回読み取り、 + その整合性を確保できます。 + このオプションは、アレイ内で移動されたファイルも検証して、移動操作が成功したことを + 確認し、必要に応じて、続行する前に修正操作を実行できるようにします。 + このオプションは、`sync` のみで使用できます。 + + -i, --import DIR + 最後の `sync` の後にアレイから削除されたファイルを、指定されたディレクトリから + インポートします。 + これらのファイルをまだ持っている場合、それらは復旧プロセスを改善するために + `check` および `fix` で使用できます。 + ファイルは、サブディレクトリを含めて読み取られ、名前に関係なく識別されます。 + このオプションは、`check` および `fix` のみで使用できます。 + + -s, --spin-down-on-error + エラーが発生した場合、非ゼロのステータスコードで終了する前に、管理されているすべてのディスクを + スピンダウンします。これにより、中断された操作後にドライブがアクティブなままスピンし続け、 + 不要な熱の蓄積と電力消費を回避するのに役立ちます。 + コマンドが失敗した場合でも、ディスクが安全に停止されるように、このオプションを使用します。 + + -w, --bw-limit RATE + すべてのディスクにグローバルな帯域幅制限を適用します。RATE は + 1秒あたりのバイト数です。K、M、Gなどの乗数を指定できます + (例:--bw-limit 1G)。 + + -A, --stats + 追加情報を表示する拡張ステータスビューを有効にします。 + 画面には2つのグラフが表示されます。 + 最初のグラフは、各ディスクのバッファリングされたストライプの数と、そのディスクで現在 + アクセスされているファイルのファイルパスを示します。通常、最も遅いディスクには + バッファが利用できず、これが達成可能な最大帯域幅を決定します。 + 2番目のグラフは、過去100秒間に待機に費やされた時間のパーセンテージを示します。 + 最も遅いディスクが待機時間のほとんどを引き起こすと予想され、他のディスクは + バッファリングされたストライプを使用できるため、待機時間がほとんどまたはまったくないはずです。 + このグラフは、ハッシュ計算とRAID計算に費やされた待機時間も示します。 + すべての計算はディスク操作と並行して実行されます。 + したがって、少なくとも1つのディスクで測定可能な待機時間がある限り、 + CPUがワークロードに追いつくのに十分速いことを示しています。 + + -Z, --force-zero + 以前は非ゼロだったサイズのファイルをゼロで同期するという安全でない操作を強制します。 + SnapRAIDがこのような状態を検出した場合、このオプションを指定しない限り、 + 続行を停止します。 + これにより、システムクラッシュ後に一部のアクセスされたファイルが切り捨てられたときに、 + それを簡単に検出できます。 + これは、ext3/ext4ファイルシステムを使用したLinuxで起こりうる状態です。 + このオプションは、`sync` のみで使用できます。 + + -E, --force-empty + 元のファイルがすべて不足しているディスクを同期するという安全でない操作を強制します。 + SnapRAIDが、元々ディスクに存在していたすべてのファイルが不足しているか、 + 書き換えられていることを検出した場合、このオプションを指定しない限り、 + 続行を停止します。 + これにより、データファイルシステムがマウントされていないときに、それを簡単に + 検出できます。 + このオプションは、`sync` のみで使用できます。 + + -U, --force-uuid + UUIDが変更されたディスクとの同期、チェック、および修正という安全でない操作を強制します。 + SnapRAIDが一部のディスクがUUIDを変更したことを検出した場合、 + このオプションを指定しない限り、続行を停止します。 + これにより、ディスクが間違ったマウントポイントにマウントされているときに、それを検出できます。 + ただし、単一パリティでの単一のUUID変更、および複数のパリティでのより多くのUUID変更は + 許可されています。これは、復旧後にディスクを交換するときの通常のケースであるためです。 + このオプションは、`sync`、`check`、または `fix` のみで使用できます。 + + -D, --force-device + アクセスできないディスク、または同じ物理デバイス上のディスクとの修正という安全でない操作を強制します。 + たとえば、2台のデータディスクを失い、最初の1台だけを復旧するための予備ディスクがある場合、 + 2番目のアクセスできないディスクを無視できます。 + または、既に**使用されている**ディスクに残された空き容量にディスクを復旧したい場合、 + 同じ物理デバイスを共有します。 + このオプションは、`fix` のみで使用できます。 + + -N, --force-nocopy + `sync`、`check`、および `fix` で、コピー検出ヒューリスティックを無効にします。 + このオプションがない場合、SnapRAIDは、名前、サイズ、タイムスタンプなどの同じ属性を持つファイルが、 + 同じデータを持つコピーであると見なします。 + これにより、あるディスクから別のディスクにコピーまたは移動されたファイルを識別し、 + 既に計算されたハッシュ情報を再利用して、サイレントエラーを検出したり、不足しているファイルを + 復旧したりできます。 + まれに、この動作が誤検出や、多くのハッシュ検証によるプロセスの遅延につながる可能性があり、 + このオプションを使用すると、そのような問題を解決できます。 + このオプションは、`sync`、`check`、および `fix` のみで使用できます。 + + -F, --force-full + `sync` で、パリティの完全な再計算を強制します。 + このオプションは、新しいパリティレベルを追加する場合、またはより新しいパリティデータを使用して + 古いコンテンツファイルに戻した場合に使用できます。 + パリティを最初から再作成する代わりに、これにより、コンテンツファイルに存在するハッシュを + 再利用してデータを検証し、既存のパリティデータを使用して `sync` プロセス中にデータ保護を + 維持できます。 + このオプションは、`sync` のみで使用できます。 + + -R, --force-realloc + `sync` で、ファイルの完全な再割り当てとパリティの再構築を強制します。 + このオプションは、コンテンツファイルに存在するハッシュを再利用してデータを検証しながら、 + 断片化を削除して、すべてのファイルを完全に再割り当てするために使用できます。 + このオプションは、`sync` のみで使用できます。 + **警告!** このオプションはエキスパートのみを対象としており、使用しないことを強く + お勧めします。 + `sync` 操作中にデータ保護はありません。 + + -l, --log FILE + 詳細なログを指定されたファイルに書き込みます。 + このオプションが指定されていない場合、予期しないエラーが画面に出力され、 + 多くのエラーが発生した場合に過剰な出力になる可能性があります。 + -l, --log が指定されている場合、SnapRAIDが停止する原因となる致命的なエラーのみが + 画面に出力されます。 + パスが '>>' で始まる場合、ファイルは追記モードで開かれます。 + 名前に '%D' と '%T' が出現すると、それぞれYYYYMMDDとHHMMSSの形式で + 日付と時刻に置き換えられます。Windowsバッチファイルでは、'%' 文字を + 2倍にする必要があります。例:result-%%D.log。'>>' を使用するには、 + 名前を引用符で囲む必要があります。例:`">>result.log"`。 + ログを標準出力または標準エラーに出力するには、それぞれ `">&1"` および `">&2"` を + 使用できます。 + ログタグの説明については、snapraid_log.txtファイルまたはmanページを参照してください。 + + -L, --error-limit NUMBER + 実行を停止する前の新しいエラー制限を設定します。 + デフォルトでは、SnapRAIDは100を超える入出力エラーに遭遇した場合に停止します。 + これは、ディスクが故障している可能性が高いことを示しています。 + このオプションは `sync` と `scrub` に影響し、最初の一連のディスクエラーの後に + 続行して操作を完了しようとすることが許可されます。 + ただし、`check` と `fix` は常に最初のエラーで停止します。 + + -S, --start BLKSTART + 指定されたブロック番号から処理を開始します。 + これは、破損したディスクの場合に特定のブロックを再試行してチェックまたは修正するのに + 役立ちます。 + このオプションは、主に高度な手動復旧を目的としています。 + + -B, --count BLKCOUNT + 指定された数のブロックのみを処理します。 + このオプションは、主に高度な手動復旧を目的としています。 + + -C, --gen-conf CONTENT + 既存のコンテンツファイルからダミーの構成ファイルを生成します。 + 構成ファイルは標準出力に書き込まれ、既存のファイルを上書きしません。 + この構成ファイルには、システム全体を失った場合にディスクのマウントポイントを + 再構築するために必要な情報も含まれています。 + + -v, --verbose + 画面により多くの情報を出力します。 + 1回指定すると、除外されたファイルと追加の統計が出力されます。 + このオプションはログファイルには影響しません。 + + -q, --quiet + 画面に出力される情報を減らします。 + 1回指定すると、プログレスバーが削除されます。2回指定すると、実行中の操作が削除されます。 + 3回指定すると、情報メッセージが削除されます。4回指定すると、ステータスメッセージが削除されます。 + 致命的なエラーは常に画面に出力されます。 + このオプションはログファイルには影響しません。 + + -H, --help + 短いヘルプ画面を出力します。 + + -V, --version + プログラムのバージョンを出力します。 + + +7 CONFIGURATION +=============== + +SnapRAIDは、ディスクアレイの場所とパリティ情報の保存場所を知るために、構成ファイルを +必要とします。 + +Unixでは、存在すれば `/usr/local/etc/snapraid.conf` を使用し、それ以外の場合は +`/etc/snapraid.conf` を使用します。 +Windowsでは、`snapraid.exe` と同じディレクトリにある `snapraid.conf` ファイルを +使用します。 + +次のオプションを含める必要があります(大文字と小文字を区別します)。 + +7.1 parity FILE [,FILE] ... +--------------------------- + +パリティ情報を保存するために使用するファイルを定義します。 +パリティは、RAID5と同様に、単一のディスク障害からの保護を有効にします。 + +複数のファイルを指定でき、それらは異なるディスク上に存在する必要があります。 +ファイルがそれ以上成長できなくなると、次のファイルが使用されます。 +利用可能な総容量は、アレイ内の**最大のデータディスク**と少なくとも同じ大きさでなければなりません。 + +後で追加のパリティファイルを追加することはできますが、 +それらを並べ替えたり削除したりすることはできません。 + +パリティディスクをパリティ用に予約しておくことで、それらが断片化されるのを防ぎ、 +パフォーマンスを向上させます。 + +Windowsでは、フルディスクに関する警告を避けるために、各ディスクに256 MBが未使用で +残されます。 + +このオプションは必須であり、1回のみ使用できます。 + +7.2 (2,3,4,5,6)-parity FILE [,FILE] ... +--------------------------------------- + +追加のパリティ情報を保存するために使用するファイルを定義します。 + +指定されたパリティレベルごとに、1つの追加の保護レベルが有効になります。 + +* 2-parity は RAID6 デュアルパリティを有効にします。 +* 3-parity は トリプルパリティを有効にします。 +* 4-parity は クアッド(4つ)パリティを有効にします。 +* 5-parity は ペンタ(5つ)パリティを有効にします。 +* 6-parity は ヘキサ(6つ)パリティを有効にします。 + +各パリティレベルには、以前のすべてのパリティレベルが存在する必要があります。 + +`parity` オプションと同じ考慮事項が適用されます。 + +これらのオプションはオプションであり、1回のみ使用できます。 + +7.3 z-parity FILE [,FILE] ... +----------------------------- + +トリプルパリティを保存するための代替ファイルとフォーマットを定義します。 + +このオプションは `3-parity` の代替であり、主にARMやSSSE3命令セットをサポートしていない +AMD Phenom、Athlon、OpteronなどのローエンドCPUを対象としています。 +このような場合、より良いパフォーマンスを提供します。 + +このフォーマットは、ZFS RAIDZ3で使用されるものと似ていますが、より高速です。 +ZFSと同様に、トリプルパリティを超えては機能しません。 + +`3-parity` を使用している場合、パフォーマンス向上のために `z-parity` フォーマットの +使用が推奨される場合は警告が表示されます。 + +構成ファイルを目的の `z-parity` または `3-parity` ファイルで調整し、 +`fix` を使用して再作成することで、あるフォーマットから別のフォーマットに +変換することが可能です。 + +7.4 content FILE +---------------- + +ディスクアレイに存在するすべてのファイルの一覧とチェックサムを保存するために使用するファイルを +定義します。 + +データ、パリティ、またはその他の利用可能なディスクに配置できます。 +データディスクを使用する場合、このファイルは `sync` プロセスから自動的に +除外されます。 + +このオプションは必須であり、同じファイルを複数コピー保存するために複数回使用できます。 + +使用するパリティディスクごとに**少なくとも1つのコピー**と、さらに**1つのコピー**を +保存する必要があります。追加のコピーを使用しても害はありません。 + +7.5 data NAME DIR +----------------- + +アレイ内のデータディスクの名前とマウントポイントを定義します。 +NAME はディスクを識別するために使用され、**一意である**必要があります。 +DIR はファイルシステム内のディスクの**マウントポイント**です。 + +NAME を固定したままにしておけば、必要に応じてマウントポイントを変更できます。 + +アレイ内のデータディスクごとに1つのオプションを使用する必要があります。 + +構成ファイルで直接 NAME を変更してから `sync` コマンドを実行することで、 +後でディスクの名前を変更できます。 +名前変更の場合、関連付けはディスクの保存されたUUIDを使用して行われます。 + +7.6 nohidden +------------ + +すべての隠しファイルとディレクトリを除外します。 +Unixでは、隠しファイルは `.` で始まるファイルです。 +Windowsでは、隠し属性を持つファイルです。 + +7.7 exclude/include PATTERN +--------------------------- + +syncプロセスで除外または含めるファイルまたはディレクトリのパターンを定義します。 +すべてのパターンは指定された順序で処理されます。 + +一致する最初のパターンが `exclude` の場合、ファイルは除外されます。 +`include` の場合、ファイルは含まれます。 +パターンが一致しない場合、最後に指定されたパターンが `include` の場合はファイルは除外され、 +`exclude` の場合は含まれます。 + +パターン仕様の詳細については、PATTERNセクションを参照してください。 + +このオプションは複数回使用できます。 + +7.8 blocksize SIZE_IN_KIBIBYTES +------------------------------- + +パリティの基本ブロックサイズをキビバイト単位で定義します。 +1キビバイトは1024バイトです。 + +デフォルトのブロックサイズは256であり、ほとんどの場合に機能するはずです。 + +**警告!** このオプションはエキスパートのみを対象としており、この値を変更しないことを強く +お勧めします。今後この値を変更するには、パリティ全体を**再作成**する必要があります! + +異なるブロックサイズを使用する理由の1つは、数百万のオーダーの**多くの小さなファイル**を +持っている場合です。 + +ファイルごとに、たとえ数バイトであっても、パリティの**ブロック全体**が割り当てられ、 +ファイルが多いと、これにより**かなりの未使用パリティスペース**が発生する可能性があります。 +パリティディスクを完全に埋めると、データディスクにファイルを追加することは**許可されません**。 +ただし、浪費されたパリティはデータディスク間で蓄積されません。データディスク上の多数のファイルから +生じる浪費スペースは、**そのデータディスク上のデータ量**のみを制限し、他のデータディスクには +影響しません。 + +概算として、ファイルごとにブロックサイズの半分が浪費されると仮定できます。 +たとえば、100,000ファイルと256 KiBのブロックサイズがある場合、12.8 GBのパリティが浪費され、 +これによりデータディスク上で12.8 GB少ないスペースしか利用できなくなる可能性があります。 + +`status` を使用して、各ディスクの浪費スペースの量を確認できます。 +これは、データディスク上に**空き**として残す必要がある、またはアレイに含まれないファイルに +使用する必要があるスペースの量です。 +この値が負の場合、パリティが満杯に近づいていることを意味し、まだ浪費できるスペースを +表します。 + +この問題を回避するために、パリティにより大きなパーティションを使用できます。 +たとえば、パリティパーティションがデータディスクよりも12.8 GB大きい場合、 +各データディスクで最大100,000ファイルを処理するのに十分な追加スペースがあり、 +浪費スペースはありません。 + +Linuxでより大きなパリティパーティションを取得するトリックは、次のコマンドで +フォーマットすることです。 + + mkfs.ext4 -m 0 -T largefile4 DEVICE + +これにより、約1.5%の追加スペース、4 TBディスクで約60 GBが得られ、 +浪費スペースなしで各データディスクで約460,000ファイルが可能になります。 + +7.9 hashsize SIZE_IN_BYTES +-------------------------- + +保存されたブロックのハッシュサイズをバイト単位で定義します。 + +デフォルトのハッシュサイズは16バイト(128ビット)であり、ほとんどの場合に機能するはずです。 + +**警告!** このオプションはエキスパートのみを対象としており、この値を変更しないことを強く +お勧めします。今後この値を変更するには、パリティ全体を**再作成**する必要があります! + +異なるハッシュサイズを使用する理由の1つは、システムのメモリが制限されている場合です。 +経験則として、SnapRAIDは通常、アレイ内のデータ16 TBごとに1 GiBのRAMを必要とします。 + +具体的には、データのハッシュを保存するために、SnapRAIDは +約 $TS \cdot (1 + HS) / BS$ バイトのRAMを必要とします。 +ここで、TSはディスクアレイの合計サイズ(バイト)、BSはブロックサイズ(バイト)、HSはハッシュサイズ(バイト)です。 + +たとえば、4 TBのディスク8台、ブロックサイズ256 KiB(1 KiB = 1024バイト)、 +ハッシュサイズ16の場合: + +RAM = $(8 \cdot 4 \cdot 10^{12}) \cdot (1 + 16) / (256 \cdot 2^{10}) = 1.93 \text{ GiB}$ + +ハッシュサイズを8に切り替えると: + +RAM = $(8 \cdot 4 \cdot 10^{12}) \cdot (1 + 8) / (256 \cdot 2^{10}) = 1.02 \text{ GiB}$ + +ブロックサイズを512に切り替えると: + +RAM = $(8 \cdot 4 \cdot 10^{12}) \cdot (1 + 16) / (512 \cdot 2^{10}) = 0.96 \text{ GiB}$ + +ハッシュサイズを8、ブロックサイズを512の両方に切り替えると: + +RAM = $(8 \cdot 4 \cdot 10^{12}) \cdot (1 + 8) / (512 \cdot 2^{10}) = 0.51 \text{ GiB}$ + +7.10 autosave SIZE_IN_GIGABYTES +------------------------------- + +処理された指定されたGB量後に、同期またはスクラビング時に状態を自動的に保存します。 +このオプションは、マシンクラッシュやその他のイベントによって中断された場合に、 +長い `sync` コマンドを最初から再起動するのを避けるのに役立ちます。 + +7.11 temp_limit TEMPERATURE_CELSIUS +----------------------------------- + +許容される最大ディスク温度を摂氏で設定します。指定されている場合、 +SnapRAIDは smartctl ツールを使用してすべてのディスクの温度を定期的にチェックします。 +SnapRAIDが動作している間、現在のディスク温度が表示されます。 +いずれかのディスクがこの制限を超えると、すべての操作が停止し、ディスクは `temp_sleep` +オプションで定義された期間、スピンダウン(スタンバイ状態に移行)されます。 +スリープ期間後、操作は再開されますが、温度制限に再度達した場合は再び一時停止する +可能性があります。 + +操作中、SnapRAIDは各ディスクの加熱曲線も分析し、アクティビティが継続した場合に +達すると予想される長期的な安定温度を推定します。推定は、ディスク温度が4回上昇した +後にのみ実行され、信頼できる傾向を確立するのに十分なデータポイントが利用可能であることを +保証します。 +この予測される安定温度は、現在の値の横に括弧で表示され、システムの冷却が +適切かどうかを評価するのに役立ちます。この推定温度は情報提供のみを目的としており、 +SnapRAIDの動作には影響しません。プログラムの動作は、実際の測定されたディスク温度にのみ +基づいています。 + +この分析を実行するために、SnapRAIDはシステム温度の参照が必要です。 +まず、利用可能なハードウェアセンサーから読み取ろうとします。システムセンサーに +アクセスできない場合は、実行開始時に測定された最も低いディスク温度をフォールバック参照として +使用します。 + +通常、SnapRAIDは最も熱いディスクの温度のみを表示します。 +すべてのディスクの温度を表示するには、-A または --stats オプションを使用します。 + +7.12 temp_sleep TIME_IN_MINUTES +------------------------------- + +温度制限に達したときのスタンバイ時間(分単位)を設定します。この期間中、ディスクは +スピンダウンしたままです。デフォルトは5分です。 + +7.13 pool DIR +------------- + +`pool` コマンドを使用してディスクアレイの仮想ビューが作成されるプーリングディレクトリを +定義します。 + +ディレクトリは既に存在している必要があります。 + +7.14 share UNC_DIR +------------------ + +ディスクにリモートでアクセスするために必要なWindows UNCパスを定義します。 + +このオプションが指定されている場合、プールディレクトリに作成されたシンボリックリンクは、 +ディスクにアクセスするためにこのUNCパスを使用します。 +このオプションがない場合、生成されたシンボリックリンクはローカルパスのみを使用し、 +プールディレクトリをネットワーク経由で共有することはできません。 + +シンボリックリンクは、指定されたUNCパスを使用して形成され、`data` オプションで +指定されたディスク名を追加し、最後にファイルのディレクトリと名前を追加します。 + +このオプションはWindowsでのみ必要です。 + +7.15 smartctl DISK/PARITY OPTIONS... +------------------------------------ + +各ディスクのSMART属性を取得するためのカスタムsmartctlオプションを定義します。 +これは、RAIDコントローラーや一部のUSBディスクが自動検出できない場合に必要になる +ことがあります。`%s` プレースホルダーはデバイス名に置き換えられますが、 +RAIDコントローラーなどの固定デバイスではオプションです。 + +DISK は `data` オプションで指定されたのと同じディスク名です。 +PARITY はパリティ名のいずれかです:`parity`、`2-parity`、`3-parity`、 +`4-parity`、`5-parity`、`6-parity`、または `z-parity`。 + +指定された OPTIONS で、`%s` 文字列はデバイス名に置き換えられます。 +RAIDコントローラーの場合、デバイスは固定されている可能性が高いため、 +`%s` を使用する必要はないかもしれません。 + +使用可能なオプションについては、smartmontoolsのドキュメントを参照してください。 + + https://www.smartmontools.org/wiki/Supported_RAID-Controllers + https://www.smartmontools.org/wiki/Supported_USB-Devices + +例: + + smartctl parity -d sat %s + +7.16 smartignore DISK/PARITY ATTR [ATTR...] +------------------------------------------- + +ディスク障害の確率を計算するときに、指定されたSMART属性を無視します。 +このオプションは、ディスクが特定の属性について異常な値または誤解を招く値を報告する場合に +役立ちます。 + +DISK は `data` オプションで指定されたのと同じディスク名です。 +PARITY はパリティ名のいずれかです:`parity`、`2-parity`、`3-parity`、 +`4-parity`、`5-parity`、`6-parity`、または `z-parity`。 +特殊な値 `*` は、すべてのディスクで属性を無視するために使用できます。 + +例として、すべてのディスクで `Current Pending Sector Count` 属性を無視するには: + + smartignore * 197 + +最初のパリティディスクでのみ無視するには: + + smartignore parity 197 + +7.17 Examples +------------- + +Unixの一般的な構成の例は次のとおりです。 + + parity /mnt/diskp/snapraid.parity + content /mnt/diskp/snapraid.content + content /var/snapraid/snapraid.content + data d1 /mnt/disk1/ + data d2 /mnt/disk2/ + data d3 /mnt/disk3/ + exclude /lost+found/ + exclude /tmp/ + smartctl d1 -d sat %s + smartctl d2 -d usbjmicron %s + smartctl parity -d areca,1/1 /dev/sg0 + smartctl 2-parity -d areca,2/1 /dev/sg0 + +Windowsの一般的な構成の例は次のとおりです。 + + parity E:\snapraid.parity + content E:\snapraid.content + content C:\snapraid\snapraid.content + data d1 G:\array\ + data d2 H:\array\ + data d3 I:\array\ + exclude Thumbs.db + exclude \$RECYCLE.BIN + exclude \System Volume Information + smartctl d1 -d sat %s + smartctl d2 -d usbjmicron %s + smartctl parity -d areca,1/1 /dev/arcmsr0 + smartctl 2-parity -d areca,2/1 /dev/arcmsr0 + + +8 PATTERN +========= + +パターンは、プロセスで除外または含めるファイルのサブセットを選択するために使用されます。 + +4つの異なる種類のパターンがあります。 + + FILE + FILE という名前の任意のファイルを選択します。* や ? などのグロブ文字、 + および [a-z] などの文字クラスを使用できます。 + このパターンは**ファイルのみ**に適用され、ディレクトリには適用されません。 + + DIR/ + DIR という名前の任意のディレクトリと、その中のすべてを選択します。 + * や ? などのグロブ文字を使用できます。 + このパターンは**ディレクトリのみ**に適用され、ファイルには適用されません。 + + /PATH/FILE + 正確に指定されたファイルパスを選択します。* や ? などのグロブ文字を + 使用できますが、**ディレクトリスラッシュには一致しません**。 + このパターンは**ファイルのみ**に適用され、ディレクトリには適用されません。 + + /PATH/DIR/ + 正確に指定されたディレクトリパスと、その中のすべてを選択します。* や ? などの + グロブ文字を使用できますが、**ディレクトリスラッシュには一致しません**。 + このパターンは**ディレクトリのみ**に適用され、ファイルには適用されません。 + + / で始まる絶対パスを指定する場合、それはローカルファイルシステムのルートディレクトリではなく、 +**アレイのルートディレクトリ**に適用されます。 + +Windowsでは、フォワードスラッシュ / の代わりにバックスラッシュ \ を使用できます。 +Windowsシステムディレクトリ、ジャンクション、マウントポイント、およびその他のWindowsの +特殊ディレクトリはファイルとして扱われます。つまり、それらを除外するには、 +ディレクトリルールではなく**ファイルルール**を使用する必要があります。 + +ファイル名に '*'、'?'、'['、または ']' 文字が含まれている場合は、 +グロブ文字として解釈されないように**エスケープ**する必要があります。 +Unixではエスケープ文字は '\' です。Windowsでは '^' です。 +パターンがコマンドラインにある場合は、コマンドシェルによって解釈されるのを防ぐために、 +エスケープ文字を**2倍**にする必要があります。 + +構成ファイルでは、処理するファイルをフィルタリングするために異なる戦略を使用できます。 +最も簡単なアプローチは、**除外**したいすべてのファイルとディレクトリを削除するために、 +`exclude` ルールのみを使用することです。例: + + # `*.unrecoverable` という名前の任意のファイルを除外 + exclude *.unrecoverable + # ルートディレクトリ `/lost+found` を除外 + exclude /lost+found/ + # `tmp` という名前の任意のサブディレクトリを除外 + exclude tmp/ + +反対のアプローチは、`include` ルールのみを使用して、**処理したいファイルのみ**を +定義することです。例: + + # 一部のディレクトリのみを含める + include /movies/ + include /musics/ + include /pictures/ + +最後の方法としては、`exclude` と `include` ルールを混在させます。この場合、 +**ルールの順序が重要**です。前のルールは後のルールよりも優先されます。 +簡素化するために、すべての `exclude` ルールを最初にリストし、次にすべての `include` +ルールをリストできます。例: + + # `*.unrecoverable` という名前の任意のファイルを除外 + exclude *.unrecoverable + # `tmp` という名前の任意のサブディレクトリを除外 + exclude tmp/ + # 一部のディレクトリのみを含める + include /movies/ + include /musics/ + include /pictures/ + +コマンドラインで -f オプションを使用する場合、`include` パターンのみを +使用できます。例: + + # .mp3 ファイルのみをチェック。 + # Unixでは、シェルによるグロブ展開を防ぐために引用符を使用。 + snapraid -f "*.mp3" check + +Unixでは、コマンドラインでグロブ文字を使用する場合、シェルがそれらを展開するのを +防ぐために引用符で囲む必要があります。 + + +9 CONTENT +========= + +SnapRAIDは、ファイルの一覧とチェックサムをコンテンツファイルに保存します。 + +これはバイナリファイルであり、ディスクアレイに存在するすべてのファイルと、 +それらの整合性を検証するためのすべてのチェックサムを一覧表示します。 + +このファイルは `sync` および `scrub` コマンドによって読み書きされ、 +`fix`、`check`、および `status` コマンドによって読み取られます。 + + +10 PARITY +========= + +SnapRAIDは、アレイのパリティ情報をパリティファイルに保存します。 + +これらはバイナリファイルであり、`content` ファイルで定義されたすべてのブロックの +計算されたパリティが含まれています。 + +これらのファイルは `sync` および `fix` コマンドによって読み書きされ、 +`scrub` および `check` コマンドによって**読み取られるだけ**です。 + + +11 ENCODING +=========== + +UnixのSnapRAIDは、エンコーディングを無視します。ファイルシステムで使用されている +のと同じエンコーディングでファイル名を読み取り、保存します。 + +Windowsでは、ファイルシステムから読み取られたすべての名前はUTF-8形式に変換され、 +処理されます。 + +ファイル名を正しく出力するには、`chcp 65001` コマンドでWindowsコンソールをUTF-8モードに設定し、 +コンソールフォントとして `Lucida Console` などのTrueTypeフォントを**使用する**必要があります。 +これは出力されるファイル名にのみ影響します。コンソール出力をファイルにリダイレクトする場合、 +結果のファイルは常にUTF-8形式になります。 + + +12 COPYRIGHT +============ + +This file is Copyright (C) 2025 Andrea Mazzoleni + + +13 SEE ALSO +=========== + +snapraid_log(1), rsync(1) diff --git a/snapraid-ko.d b/snapraid-ko.d new file mode 100644 index 00000000..cc20ad89 --- /dev/null +++ b/snapraid-ko.d @@ -0,0 +1,1400 @@ +Name{number} + snapraid - 디스크 어레이를 위한 SnapRAID 백업 + +Synopsis + :snapraid [-c, --conf CONFIG] + : [-f, --filter PATTERN] [-d, --filter-disk NAME] + : [-m, --filter-missing] [-e, --filter-error] + : [-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|probe|up|down|diff|sync|scrub|fix|check + : |list|dup|pool|devices|touch|rehash + + :snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT] + +Description + SnapRAID는 디스크 어레이를 위해 설계된 백업 프로그램으로, + 최대 6개의 디스크 오류가 발생해도 데이터를 복구하기 위한 + 패리티 정보를 저장합니다. + + 주로 크고 자주 변경되지 않는 파일을 가진 홈 미디어 센터를 + 위해 고안된 SnapRAID는 다음과 같은 몇 가지 기능을 제공합니다: + + * 파일을 다시 포맷할 필요 없이 이미 파일로 채워진 디스크를 + 활용할 수 있으며, 평소처럼 액세스할 수 있습니다. + * 데이터 무결성을 보장하고 무단 손상을 방지하기 위해 모든 데이터가 + 해시됩니다. + * 실패한 디스크의 수가 패리티 수를 초과하는 경우, 데이터 손실은 + 영향을 받은 디스크로 제한되며, 다른 디스크의 데이터는 + 계속 액세스할 수 있습니다. + * 실수로 디스크의 파일을 삭제한 경우에도 복구가 가능합니다. + * 디스크는 서로 다른 크기를 가질 수 있습니다. + * 언제든지 디스크를 추가할 수 있습니다. + * SnapRAID는 데이터를 가두지 않습니다. 언제든지 포맷하거나 데이터를 + 이동할 필요 없이 사용을 중단할 수 있습니다. + * 파일에 액세스하려면 단일 디스크만 회전하면 되므로, 전력을 절약하고 + 소음을 줄일 수 있습니다. + + 더 자세한 정보는 공식 SnapRAID 사이트를 방문하십시오: + + :https://www.snapraid.it/ + +Limitations + SnapRAID는 RAID와 백업 프로그램의 하이브리드로, 두 가지의 장점을 + 결합하는 것을 목표로 합니다. 하지만, 사용 전에 고려해야 할 몇 가지 + 제한 사항이 있습니다. + + 주요 제한 사항은 디스크가 실패하고 최근에 동기화(sync)하지 않은 경우, + 완전히 복구하지 못할 수 있다는 것입니다. + 더 구체적으로, 마지막 동기화 작업 이후 변경되거나 삭제된 파일의 + 크기만큼 복구가 불가능할 수 있습니다. + 이는 변경되거나 삭제된 파일이 실패한 디스크에 있지 않더라도 발생합니다. + 이것이 SnapRAID가 **거의 변경되지 않는 데이터**에 더 적합한 이유입니다. + + 반면에, 새로 추가된 파일은 이미 존재하는 파일의 복구를 방해하지 않습니다. + 새로 추가된 파일이 실패한 디스크에 있는 경우에만 해당 파일을 잃게 됩니다. + + 기타 SnapRAID 제한 사항은 다음과 같습니다: + + * SnapRAID를 사용하면 여전히 각 디스크에 대해 별도의 파일 시스템이 + 있습니다. RAID를 사용하면 하나의 큰 파일 시스템을 얻습니다. + * SnapRAID는 데이터를 스트라이핑하지 않습니다. + RAID를 사용하면 스트라이핑으로 속도 향상을 얻습니다. + * SnapRAID는 실시간 복구를 지원하지 않습니다. + RAID를 사용하면 디스크가 실패했을 때 작업을 멈출 필요가 없습니다. + * SnapRAID는 제한된 수의 디스크 오류에서만 데이터를 복구할 수 있습니다. + 백업을 사용하면 전체 디스크 어레이의 완전한 오류로부터 + 복구할 수 있습니다. + * 파일 이름, 타임스탬프, 심볼릭 링크, 하드 링크만 저장됩니다. + 권한, 소유권, 확장 속성은 저장되지 않습니다. + +Getting Started + SnapRAID를 사용하려면, 먼저 디스크 어레이에서 하나의 디스크를 + `parity`(패리티) 정보 전용으로 선택해야 합니다. 하나의 패리티 디스크로 + RAID5와 유사하게 단일 디스크 오류로부터 복구할 수 있습니다. + + RAID6와 유사하게 더 많은 디스크 오류로부터 복구하려면, + 추가 디스크를 패리티용으로 예약해야 합니다. 추가 패리티 디스크 + 하나당 하나의 디스크 오류에 대한 복구를 더 허용합니다. + + 패리티 디스크로는 어레이에서 가장 큰 디스크를 선택해야 합니다. + 패리티 정보가 어레이에서 가장 큰 **데이터 디스크**의 크기만큼 + 커질 수 있기 때문입니다. + + 이 디스크들은 `parity` 파일을 저장하는 데 전념하게 됩니다. + 여기에 데이터를 저장해서는 안 됩니다. + + 다음으로, SnapRAID로 보호하려는 `data`(데이터) 디스크를 정의해야 합니다. + 이 디스크들이 **거의 변경되지 않는 데이터**를 포함할 때 보호 효과가 + 더 좋습니다. 이러한 이유로, Windows C:\ 디스크나 Unix의 /home, /var, + /tmp 디렉토리를 포함하지 않는 것이 좋습니다. + + 파일 목록은 `content` 파일에 저장되며, 보통 데이터, 패리티, 또는 부트 + 디스크에 저장됩니다. + 이 파일에는 무결성을 확인하기 위한 모든 체크섬을 포함하여 + 백업에 대한 세부 정보가 들어 있습니다. + `content` 파일은 여러 복사본으로 저장되며, 다중 디스크 오류의 경우에도 + 적어도 하나의 복사본을 사용할 수 있도록 각 복사본은 서로 다른 디스크에 + 있어야 합니다. + + 예를 들어, 하나의 패리티 보호 수준만 원하고 디스크가 다음과 같이 + 위치한다고 가정해 봅시다: + + :/mnt/diskp <- 패리티용으로 선택된 디스크 + :/mnt/disk1 <- 보호할 첫 번째 디스크 + :/mnt/disk2 <- 보호할 두 번째 디스크 + :/mnt/disk3 <- 보호할 세 번째 디스크 + + 다음 옵션으로 설정 파일 /etc/snapraid.conf를 생성해야 합니다: + + :parity /mnt/diskp/snapraid.parity + :content /var/snapraid/snapraid.content + :content /mnt/disk1/snapraid.content + :content /mnt/disk2/snapraid.content + :data d1 /mnt/disk1/ + :data d2 /mnt/disk2/ + :data d3 /mnt/disk3/ + + Windows를 사용하는 경우, 슬래시 대신 드라이브 문자 및 백슬래시를 사용하는 + Windows 경로 형식을 사용해야 합니다. + + :parity E:\snapraid.parity + :content C:\snapraid\snapraid.content + :content F:\array\snapraid.content + :content G:\array\snapraid.content + :data d1 F:\array\ + :data d2 G:\array\ + :data d3 H:\array\ + + 디스크가 많아 드라이브 문자가 부족한 경우, 디스크를 하위 폴더에 + 직접 마운트할 수 있습니다. 다음을 참조하십시오: + + :https://www.google.com/search?q=Windows+mount+point + + 이 시점에서, 패리티 정보를 빌드하기 위해 `sync` 명령을 실행할 + 준비가 되었습니다. + + :snapraid sync + + 이 프로세스는 디스크에 이미 존재하는 데이터의 크기에 따라 첫 실행 시 + 몇 시간이 걸릴 수 있습니다. 디스크가 비어 있으면 프로세스는 즉시 + 완료됩니다. + + Ctrl+C를 눌러 언제든지 중지할 수 있으며, 다음 실행 시 중단된 + 곳에서 재개됩니다. + + 이 명령이 완료되면 데이터는 **SAFE**합니다. + + 이제 어레이를 원하는 대로 사용하고 주기적으로 `sync` 명령을 + 실행하여 패리티 정보를 업데이트할 수 있습니다. + + Scrubbing + 주기적으로 데이터 및 패리티의 오류를 확인하려면 `scrub` 명령을 + 실행할 수 있습니다. + + :snapraid scrub + + 이 명령은 데이터 무결성을 확인하기 위해 어레이의 데이터를 `sync` 명령 + 중에 계산된 해시와 비교합니다. + + 이 명령을 실행할 때마다 이전에 10일 이내에 스크럽된 데이터를 제외하고 + 어레이의 약 8%를 확인합니다. + 다른 양을 지정하려면 -p, --plan 옵션을 사용하고, 다른 일령(days)을 + 지정하려면 -o, --older-than 옵션을 사용할 수 있습니다. + 예를 들어, 20일보다 오래된 블록에 대해 어레이의 5%를 확인하려면 + 다음과 같이 사용합니다: + + :snapraid -p 5 -o 20 scrub + + 이 프로세스 중에 무단 또는 입출력 오류가 발견되면, 해당 블록은 + `content` 파일에 bad로 표시되며 `status` 명령에 나열됩니다. + + :snapraid status + + 이들을 수정하려면 -e, --filter-error 옵션으로 bad 블록을 필터링하여 + `fix` 명령을 사용할 수 있습니다. + + :snapraid -e fix + + 다음 `scrub` 시에 오류가 실제로 수정되면 `status` 보고서에서 + 사라집니다. 더 빠르게 하려면, `-p bad`를 사용하여 bad로 표시된 블록만 + 스크럽할 수 있습니다. + + :snapraid -p bad scrub + + 동기화되지 않은 어레이에서 `scrub`을 실행하면 제거되거나 수정된 파일로 + 인한 오류가 보고될 수 있습니다. 이러한 오류는 `scrub` 출력에는 + 보고되지만, 관련 블록은 bad로 표시되지 않습니다. + + Pooling + 참고: 아래에 설명된 풀링(pooling) 기능은 **mergefs** 도구로 대체되었으며, + 이는 SnapRAID 커뮤니티에서 Linux 사용자를 위한 권장 옵션입니다. + Mergefs는 여러 드라이브를 단일 통합 마운트 지점으로 풀링하는 더 유연하고 + 효율적인 방법을 제공하여, 심볼릭 링크에 의존하지 않고 어레이 전체의 + 파일에 대한 원활한 액세스를 허용합니다. 이는 패리티 보호를 위한 + SnapRAID와 잘 통합되며, OpenMediaVault (OMV) 또는 사용자 정의 NAS + 구성과 같은 설정에서 흔히 사용됩니다. + + 어레이의 모든 파일을 동일한 디렉토리 트리에 표시하려면, + `pooling` 기능을 활성화할 수 있습니다. 이 기능은 심볼릭 링크를 사용하여 + 어레이의 모든 파일에 대한 읽기 전용 가상 뷰를 생성합니다. + + 설정 파일에서 `pooling` 디렉토리를 다음과 같이 구성할 수 있습니다: + + :pool /pool + + 또는 Windows에서 다음과 같이 합니다: + + :pool C:\pool + + 그리고 나서 `pool` 명령을 실행하여 가상 뷰를 생성하거나 업데이트합니다. + + :snapraid pool + + Unix 플랫폼을 사용하고 이 디렉토리를 Windows 또는 Unix 컴퓨터에 + 네트워크를 통해 공유하려면, /etc/samba/smb.conf에 다음 옵션을 + 추가해야 합니다: + + :# smb.conf의 global 섹션에서 + :unix extensions = no + + :# smb.conf의 share 섹션에서 + :[pool] + :comment = Pool + :path = /pool + :read only = yes + :guest ok = yes + :wide links = yes + :follow symlinks = yes + + Windows에서 네트워크를 통해 심볼릭 링크를 공유하려면 클라이언트가 + 원격으로 이들을 해석해야 합니다. 이를 활성화하기 위해, 풀 디렉토리를 + 공유하는 것 외에도, 설정 파일에 정의된 디스크 이름을 공유 지점으로 + 사용하여 모든 디스크를 독립적으로 공유해야 합니다. 또한 설정 파일의 + `share` 옵션에서 원격 클라이언트가 이러한 공유 디스크에 액세스하는 데 + 필요한 Windows UNC 경로를 지정해야 합니다. + + 예를 들어, `darkstar`라는 서버에서 작업하는 경우, 다음 옵션을 + 사용할 수 있습니다: + + :data d1 F:\array\ + :data d2 G:\array\ + :data d3 H:\array\ + :pool C:\pool + :share \\darkstar + + 그리고 네트워크를 통해 다음 디렉토리를 공유합니다: + + :\\darkstar\pool -> C:\pool + :\\darkstar\d1 -> F:\array + :\\darkstar\d2 -> G:\array + :\\darkstar\d3 -> H:\array + + 이렇게 하면 원격 클라이언트가 \\darkstar\pool에서 모든 파일에 액세스할 + 수 있습니다. + + 또한 다음 명령으로 원격 클라이언트를 구성하여 원격 심볼릭 링크에 + 대한 액세스를 활성화해야 할 수도 있습니다: + + :fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 + + Undeleting + SnapRAID는 RAID 시스템보다는 백업 프로그램처럼 작동하며, + -f, --filter 옵션을 사용하여 파일이나 디렉토리를 이전 상태로 복원하거나 + 삭제 취소할 수 있습니다: + + :snapraid fix -f FILE + + 또는 디렉토리에 대해: + + :snapraid fix -f DIR/ + + 또한 -m, --filter-missing 옵션을 사용하여 디렉토리 내에서 실수로 + 삭제된 파일만 복구할 수도 있습니다. 이 옵션은 누락된 파일만 복원하고 + 다른 파일은 그대로 둡니다. + + :snapraid fix -m -f DIR/ + + 또는 모든 드라이브에서 삭제된 모든 파일을 다음으로 복구합니다: + + :snapraid fix -m + + Recovering + 최악의 상황이 발생하여 하나 이상의 디스크를 잃었습니다! + + **패닉하지 마십시오!** 복구할 수 있습니다! + + 가장 먼저 해야 할 일은 디스크 어레이에 대한 추가 변경을 피하는 것입니다. + 모든 원격 연결과 SnapRAID 야간 동기화 또는 스크럽을 포함한 모든 예약된 + 프로세스를 비활성화하십시오. + + 그런 다음 다음 단계를 진행하십시오. + + STEP 1 -> Reconfigure + 복구할 공간이 필요하며, 이상적으로는 추가 예비 디스크에, + 하지만 외부 USB 디스크 또는 원격 디스크로도 충분합니다. + + SnapRAID 설정 파일을 수정하여 실패한 디스크의 `data` 또는 `parity` + 옵션이 파일을 복구할 수 있는 충분한 빈 공간이 있는 위치를 + 가리키도록 합니다. + + 예를 들어, 디스크 `d1`이 실패한 경우, 다음에서 변경합니다: + + :data d1 /mnt/disk1/ + + 다음으로: + + :data d1 /mnt/new_spare_disk/ + + 복구할 디스크가 패리티 디스크인 경우, 적절한 `parity` 옵션을 + 업데이트합니다. + 여러 개의 실패한 디스크가 있는 경우, 모든 구성 옵션을 업데이트합니다. + + STEP 2 -> Fix + 로그를 외부 파일에 저장하면서 fix 명령을 실행합니다: + + :snapraid -d NAME -l fix.log fix + + 여기서 NAME은 이전 예제의 `d1`과 같은 디스크 이름입니다. + 복구할 디스크가 패리티 디스크인 경우, `parity`, `2-parity` 등의 이름을 + 사용합니다. + 여러 개의 실패한 디스크가 있는 경우, 여러 -d 옵션을 사용하여 + 모두 지정합니다. + + 이 명령은 오랜 시간이 걸립니다. + + fix.log 파일을 저장할 몇 기가바이트의 여유 공간이 있는지 확인하십시오. + 충분한 여유 공간이 있는 디스크에서 실행하십시오. + + 이제 복구할 수 있는 모든 것을 복구했습니다. 일부 파일이 부분적으로 + 또는 완전히 복구 불가능한 경우, `.unrecoverable` 확장자가 추가되어 + 이름이 변경됩니다. + + `unrecoverable:`로 시작하는 모든 줄을 확인하여 fix.log 파일에서 + 복구 불가능한 모든 블록의 자세한 목록을 찾을 수 있습니다. + + 복구가 만족스럽지 않으면, 원하는 만큼 여러 번 재시도할 수 있습니다. + + 예를 들어, 마지막 `sync` 이후 어레이에서 파일을 제거한 경우, + 일부 파일이 복구되지 않을 수 있습니다. + 이 경우, -i, --import 옵션을 사용하여 `fix`를 재시도하고, + 이 파일들이 현재 어디에 있는지 지정하여 복구 프로세스에 다시 포함시킬 + 수 있습니다. + + 복구가 만족스럽다면 계속 진행할 수 있지만, 동기화 후에는 `fix` 명령을 + 더 이상 재시도할 수 없다는 점에 유의하십시오! + + STEP 3 -> Check + 조심스러운 확인으로, 이제 `check` 명령을 실행하여 복구된 디스크의 + 모든 것이 올바른지 확인할 수 있습니다. + + :snapraid -d NAME -a check + + 여기서 NAME은 이전 예제의 `d1`과 같은 디스크 이름입니다. + + -d 및 -a 옵션은 SnapRAID에게 지정된 디스크만 확인하고 모든 패리티 + 데이터를 무시하도록 지시합니다. + + 이 명령은 오랜 시간이 걸리지만, 지나치게 조심스럽지 않다면 건너뛸 수 + 있습니다. + + STEP 4 -> Sync + `sync` 명령을 실행하여 새 디스크로 어레이를 재동기화합니다. + + :snapraid sync + + 모든 것이 복구되면 이 명령은 즉시 완료됩니다. + +Commands + SnapRAID는 다음을 허용하는 몇 가지 간단한 명령을 제공합니다: + + * 어레이의 상태 출력 -> `status` + * 디스크 제어 -> `smart`, `probe`, `up`, `down` + * 백업/스냅샷 생성 -> `sync` + * 주기적으로 데이터 확인 -> `scrub` + * 마지막 백업/스냅샷 복원 -> `fix`. + + 명령은 소문자로 작성해야 합니다. + + status + 디스크 어레이의 상태 요약을 출력합니다. + + 패리티 단편화, 확인 없이 블록이 얼마나 오래되었는지, 그리고 + 스크럽 중에 발생한 모든 기록된 무단 오류에 대한 정보를 포함합니다. + + 제시된 정보는 마지막으로 `sync`를 실행했을 때를 나타냅니다. + 나중에 수정된 내용은 고려되지 않습니다. + + bad 블록이 감지되면 해당 블록 번호가 나열됩니다. + 이들을 수정하려면 `fix -e` 명령을 사용할 수 있습니다. + + 또한 각 블록이 마지막으로 스크럽되거나 동기화된 시간을 나타내는 + 그래프를 보여줍니다. 스크럽된 블록은 '*', 동기화되었지만 아직 + 스크럽되지 않은 블록은 'o'로 표시됩니다. + + 아무것도 수정되지 않습니다. + + smart + 시스템의 모든 디스크에 대한 SMART 보고서를 출력합니다. + + 향후 1년 동안의 실패 확률 추정치를 포함하여, 의심스러운 속성을 + 보이는 디스크의 유지 보수 교체를 계획할 수 있습니다. + + 이 확률 추정치는 다음에서 사용 가능한 Backblaze 데이터와 디스크의 + SMART 속성을 상호 연관시켜 얻습니다: + + :https://www.backblaze.com/hard-drive-test-data.html + + SMART가 디스크가 실패하고 있다고 보고하면, 해당 디스크에 대해 + `FAIL` 또는 `PREFAIL`이 출력되며, SnapRAID는 오류를 반환하며 종료됩니다. + 이 경우, 디스크의 즉각적인 교체가 강력히 권장됩니다. + + 다른 가능한 상태 문자열은 다음과 같습니다: + logfail - 과거에 일부 속성이 임계값보다 낮았습니다. + logerr - 장치 오류 로그에 오류가 포함되어 있습니다. + selferr - 장치 자체 테스트 로그에 오류가 포함되어 있습니다. + + -v, --verbose 옵션이 지정되면, 더 깊은 통계 분석이 제공됩니다. + 이 분석은 더 많거나 적은 패리티가 필요한지 결정하는 데 도움이 될 수 있습니다. + + 이 명령은 `smartctl` 도구를 사용하며, 모든 장치에서 `smartctl -a`를 + 실행하는 것과 동일합니다. + + 장치가 올바르게 자동 감지되지 않으면, 설정 파일에서 `smartctl` 옵션을 + 사용하여 사용자 정의 명령을 지정할 수 있습니다. + + 아무것도 수정되지 않습니다. + + probe + 시스템의 모든 디스크의 POWER 상태를 출력합니다. + + `Standby`는 디스크가 회전하지 않음을 의미합니다. `Active`는 + 디스크가 회전하고 있음을 의미합니다. + + 이 명령은 `smartctl` 도구를 사용하며, 모든 장치에서 `smartctl -n standby -i`를 + 실행하는 것과 동일합니다. + + 장치가 올바르게 자동 감지되지 않으면, 설정 파일에서 `smartctl` 옵션을 + 사용하여 사용자 정의 명령을 지정할 수 있습니다. + + 아무것도 수정되지 않습니다. + + up + 어레이의 모든 디스크를 회전시킵니다(spin up). + + -d, --filter-disk 옵션을 사용하여 특정 디스크만 회전시킬 수 있습니다. + + 모든 디스크를 동시에 회전시키려면 많은 전력이 필요합니다. + 전원 공급 장치가 이를 지탱할 수 있는지 확인하십시오. + + 아무것도 수정되지 않습니다. + + down + 어레이의 모든 디스크를 회전 중지합니다(spin down). + + 이 명령은 `smartctl` 도구를 사용하며, 모든 장치에서 `smartctl -s standby,now`를 + 실행하는 것과 동일합니다. + + -d, --filter-disk 옵션을 사용하여 특정 디스크만 회전 중지할 수 있습니다. + + 오류 발생 시 자동으로 회전 중지하려면, 다른 명령과 함께 -s, --spin-down-on-error + 옵션을 사용할 수 있습니다. 이는 오류 발생 시 수동으로 `down`을 실행하는 것과 + 동일합니다. + + 아무것도 수정되지 않습니다. + + diff + 마지막 `sync` 이후 수정되어 패리티 데이터를 재계산해야 하는 모든 파일을 + 나열합니다. + + 이 명령은 파일 데이터를 확인하지 않고, 파일 타임스탬프, 크기 및 + 아이노드(inode)만 확인합니다. + + 모든 변경된 파일을 나열한 후, 다음과 같이 그룹화된 변경 사항 요약이 + 제시됩니다: + equal - 이전과 변경되지 않은 파일. + added - 이전에 없던 추가된 파일. + removed - 제거된 파일. + updated - 크기 또는 타임스탬프가 다른 파일, 즉 수정된 파일. + moved - 동일한 디스크의 다른 디렉토리로 이동된 파일. + 이들은 이름, 크기, 타임스탬프 및 아이노드가 동일하지만 + 디렉토리가 다른 것으로 식별됩니다. + copied - 동일하거나 다른 디스크에 복사된 파일. 다른 디스크로 + 실제로 이동된 경우 `removed`에도 포함된다는 점에 유의하십시오. + 이들은 이름, 크기 및 타임스탬프가 동일한 것으로 식별됩니다. + 하위 초 타임스탬프(sub-second timestamp)가 0인 경우, + 이름뿐만 아니라 전체 경로가 일치해야 합니다. + restored - 아이노드는 다르지만 이름, 크기 및 타임스탬프가 일치하는 파일. + 이들은 일반적으로 삭제 후 복원된 파일입니다. + + `sync`가 필요한 경우, 프로세스 반환 코드는 기본 0 대신 2입니다. + 반환 코드 1은 일반적인 오류 조건에 사용됩니다. + + 아무것도 수정되지 않습니다. + + sync + 패리티 정보를 업데이트합니다. 디스크 어레이의 모든 수정된 파일을 + 읽고 해당 패리티 데이터를 업데이트합니다. + + 이미 수행된 작업을 잃지 않고 Ctrl+C를 눌러 언제든지 이 프로세스를 + 중지할 수 있습니다. + 다음 실행 시 `sync` 프로세스는 중단된 곳에서 재개됩니다. + + 이 프로세스 중에 무단 또는 입출력 오류가 발견되면, + 해당 블록은 bad로 표시됩니다. + + 파일은 경로 및/또는 아이노드로 식별되며 크기와 타임스탬프로 + 확인됩니다. + 파일 크기 또는 타임스탬프가 다르면 전체 파일에 대해 패리티 데이터가 + 재계산됩니다. + 파일이 동일한 디스크에서 이동되거나 이름이 변경되고 동일한 아이노드를 + 유지하면 패리티는 재계산되지 않습니다. + 파일이 다른 디스크로 이동되면 패리티는 재계산되지만, 이전에 계산된 + 해시 정보는 유지됩니다. + + `content` 및 `parity` 파일은 필요한 경우 수정됩니다. + 어레이의 파일은 수정되지 않습니다. + + scrub + 어레이를 스크럽하여 데이터 및 패리티 디스크의 무단 또는 입출력 오류를 + 확인합니다. + + 각 호출은 이전에 10일 이내에 스크럽된 데이터를 제외하고 어레이의 + 약 8%를 확인합니다. + 이는 일주일에 한 번 스크럽하면 모든 데이터 비트가 적어도 3개월마다 + 한 번씩 확인됨을 의미합니다. + + -p, --plan 옵션을 사용하여 다른 스크럽 계획 또는 양을 정의할 수 있으며, + 다음 값을 허용합니다: + bad - bad로 표시된 블록 스크럽. + new - 동기화되었지만 아직 스크럽되지 않은 블록 스크럽. + full - 모든 것 스크럽. + 0-100 - 지정된 비율의 블록 스크럽. + + 백분율 양을 지정하면, -o, --older-than 옵션을 사용하여 블록이 + 얼마나 오래되었는지 정의할 수도 있습니다. + 가장 오래된 블록이 먼저 스크럽되어 최적의 확인을 보장합니다. + 동기화되었지만 아직 스크럽되지 않은 블록만 스크럽하려면, + `-p new` 옵션을 사용하십시오. + + 스크럽 상태의 세부 정보를 얻으려면 `status` 명령을 사용하십시오. + + 발견된 모든 무단 또는 입출력 오류에 대해, 해당 블록은 `content` 파일에 + bad로 표시됩니다. + 이러한 bad 블록은 `status`에 나열되며 `fix -e`로 수정할 수 있습니다. + 수정 후, 다음 스크럽 시에 다시 확인되며, 수정된 것으로 발견되면 bad + 표시는 제거됩니다. + bad 블록만 스크럽하려면 `scrub -p bad` 명령을 사용할 수 있습니다. + + 동기화되지 않은 데이터로 인한 보고된 오류를 피하기 위해 동기화된 + 어레이에서만 `scrub`을 실행하는 것이 좋습니다. 이러한 오류는 무단 + 오류가 아닌 것으로 인식되며, 블록은 bad로 표시되지 않지만, + 이러한 오류는 명령의 출력에 보고됩니다. + + `content` 파일은 각 블록의 마지막 확인 시간을 업데이트하고 bad 블록을 + 표시하기 위해 수정됩니다. + `parity` 파일은 수정되지 않습니다. + 어레이의 파일은 수정되지 않습니다. + + fix + 모든 파일과 패리티 데이터를 수정합니다. + + 모든 파일과 패리티 데이터는 마지막 `sync`에 저장된 스냅샷 + 상태와 비교됩니다. + 차이가 발견되면 저장된 스냅샷으로 되돌려집니다. + + **경고!** `fix` 명령은 오류와 의도적인 수정 사이를 구별하지 + 않습니다. 파일 상태를 무조건 마지막 `sync`로 되돌립니다. + + 다른 옵션이 지정되지 않으면 전체 어레이가 처리됩니다. + 필터 옵션을 사용하여 처리할 파일 또는 디스크의 하위 집합을 선택하십시오. + + `sync` 및 `scrub` 중에 bad로 표시된 블록만 수정하려면, + -e, --filter-error 옵션을 사용하십시오. + 다른 필터 옵션과 달리, 이 옵션은 최신 `sync` 이후 변경되지 않은 + 파일에만 수정을 적용합니다. + + SnapRAID는 수정할 수 없는 모든 파일에 `.unrecoverable` 확장자를 + 추가하여 이름을 변경합니다. + + 수정하기 전에, 전체 어레이를 스캔하여 마지막 `sync` 이후 이동된 + 파일을 찾습니다. + 이 파일들은 이름과 디렉토리를 무시하고 타임스탬프로 식별되며, + 필요한 경우 복구 프로세스에 사용됩니다. + 일부 파일을 어레이 외부로 이동한 경우, -i, --import 옵션을 사용하여 + 추가로 스캔할 디렉토리를 지정할 수 있습니다. + + 파일은 아이노드가 아닌 경로로만 식별됩니다. + + `content` 파일은 수정되지 않습니다. + `parity` 파일은 필요한 경우 수정됩니다. + 어레이의 파일은 필요한 경우 수정됩니다. + + check + 모든 파일과 패리티 데이터를 확인합니다. + + `fix`처럼 작동하지만, 복구를 시뮬레이션할 뿐이며 어레이에 + 어떤 변경 사항도 기록되지 않습니다. + + 이 명령은 주로 복구 프로세스 후 또는 기타 특별한 조건에서와 같이 + 수동 확인을 위한 것입니다. + 주기적이고 예약된 확인을 위해서는 `scrub`을 사용하십시오. + + -a, --audit-only 옵션을 사용하면 파일 데이터만 확인하고 + 패리티 데이터는 무시하여 실행 속도를 높일 수 있습니다. + + 파일은 아이노드가 아닌 경로로만 식별됩니다. + + 아무것도 수정되지 않습니다. + + list + 마지막 `sync` 시점에 어레이에 포함된 모든 파일을 나열합니다. + + -v 또는 --verbose를 사용하면 하위 초 시간도 표시됩니다. + + 아무것도 수정되지 않습니다. + + dup + 모든 중복 파일을 나열합니다. 두 파일의 해시가 일치하면 동일한 것으로 + 간주됩니다. 파일 데이터는 읽지 않고, 미리 계산된 해시만 + 사용됩니다. + + 아무것도 수정되지 않습니다. + + pool + `pooling` 디렉토리에서 디스크 어레이의 모든 파일에 대한 가상 뷰를 + 생성하거나 업데이트합니다. + + 파일은 복사되지 않고 심볼릭 링크를 사용하여 연결됩니다. + + 업데이트 시, 모든 기존 심볼릭 링크와 빈 하위 디렉토리는 삭제되고 + 어레이의 새 뷰로 대체됩니다. 다른 일반 파일은 제자리에 남습니다. + + 풀 디렉토리 외부에서는 아무것도 수정되지 않습니다. + + devices + 어레이에서 사용되는 저수준(low-level) 장치를 출력합니다. + + 이 명령은 어레이의 장치 연결을 표시하며, 주로 스크립트 인터페이스를 + 위한 것입니다. + + 처음 두 열은 저수준 장치 ID 및 경로입니다. + 다음 두 열은 고수준(high-level) 장치 ID 및 경로입니다. + 마지막 열은 어레이의 디스크 이름입니다. + + 대부분의 경우, 어레이의 각 디스크에 대해 하나의 저수준 장치가 + 있지만, 일부 더 복잡한 구성에서는 단일 어레이 디스크에 의해 사용되는 + 여러 저수준 장치가 있을 수 있습니다. + + 아무것도 수정되지 않습니다. + + touch + 하위 초 타임스탬프가 0으로 설정된 모든 파일에 임의의 하위 초 타임스탬프를 + 설정합니다. + + 이는 타임스탬프를 거의 고유하게 만들어 가능한 중복을 줄이므로, + SnapRAID가 이동되거나 복사된 파일을 인식하는 능력을 향상시킵니다. + + 더 구체적으로, 하위 초 타임스탬프가 0이 아닌 경우, 이동되거나 복사된 + 파일은 이름, 크기 및 타임스탬프가 일치하면 그렇게 식별됩니다. + 하위 초 타임스탬프가 0인 경우, 전체 경로, 크기 및 타임스탬프가 + 모두 일치하는 경우에만 복사본으로 간주됩니다. + + 초 단위 정밀도의 타임스탬프는 수정되지 않으므로, 파일의 모든 날짜와 + 시간은 보존됩니다. + + rehash + 전체 어레이의 재해시(rehash)를 예약합니다. + + 이 명령은 사용되는 해시 종류를 변경하며, 일반적으로 32비트 시스템에서 + 64비트 시스템으로 업그레이드할 때 MurmurHash3에서 더 빠른 SpookyHash로 + 전환하기 위해 사용됩니다. + + 이미 최적의 해시를 사용하고 있다면, 이 명령은 아무것도 하지 않고 + 조치가 필요하지 않음을 알려줍니다. + + 재해시는 즉시 수행되지 않고 `sync` 및 `scrub` 중에 점진적으로 + 진행됩니다. + + `status`를 사용하여 재해시 상태를 확인할 수 있습니다. + + 재해시 중에도 SnapRAID는 전체 기능을 유지하며, 유일한 예외는 + `dup`가 다른 해시를 사용하는 중복 파일을 감지할 수 없다는 것입니다. + +Options + SnapRAID는 다음 옵션을 제공합니다: + + -c, --conf CONFIG + 사용할 설정 파일을 선택합니다. 지정하지 않으면 Unix에서는 + `/usr/local/etc/snapraid.conf` 파일이 존재하면 사용하고, + 그렇지 않으면 `/etc/snapraid.conf`를 사용합니다. + Windows에서는 `snapraid.exe`와 같은 디렉토리에 있는 + `snapraid.conf` 파일을 사용합니다. + + -f, --filter PATTERN + `check` 및 `fix`에서 처리할 파일을 필터링합니다. + 지정된 패턴과 일치하는 파일만 처리됩니다. + 이 옵션은 여러 번 사용될 수 있습니다. + 패턴 사양에 대한 자세한 내용은 PATTERN 섹션을 참조하십시오. + Unix에서는 글로빙 문자가 사용되는 경우 따옴표로 묶어야 합니다. + 이 옵션은 `check` 및 `fix`에서만 사용할 수 있습니다. + `sync` 및 `scrub`은 항상 전체 어레이를 처리하므로 사용할 수 없습니다. + + -d, --filter-disk NAME + `check`, `fix`, `up`, 및 `down`에서 처리할 디스크를 필터링합니다. + 설정 파일에 정의된 디스크 이름을 지정해야 합니다. + 또한 `parity`, `2-parity`, `3-parity` 등의 이름으로 패리티 디스크를 + 지정하여 특정 패리티 디스크로 작업을 제한할 수 있습니다. + 여러 --filter, --filter-disk, --filter-missing 옵션을 결합하면, + 모든 필터와 일치하는 파일만 선택됩니다. + 이 옵션은 여러 번 사용될 수 있습니다. + 이 옵션은 `check`, `fix`, `up`, 및 `down`에서만 사용할 수 있습니다. + `sync` 및 `scrub`은 항상 전체 어레이를 처리하므로 사용할 수 없습니다. + + -m, --filter-missing + `check` 및 `fix`에서 처리할 파일을 필터링합니다. + 어레이에서 누락되거나 삭제된 파일만 처리됩니다. + `fix`와 함께 사용하면, 이 옵션은 `undelete` 명령 역할을 합니다. + 여러 --filter, --filter-disk, --filter-missing 옵션을 결합하면, + 모든 필터와 일치하는 파일만 선택됩니다. + 이 옵션은 `check` 및 `fix`에서만 사용할 수 있습니다. + `sync` 및 `scrub`은 항상 전체 어레이를 처리하므로 사용할 수 없습니다. + + -e, --filter-error + `check` 및 `fix`에서 오류가 있는 파일을 처리합니다. + `status`에 나열된 대로 `sync` 및 `scrub` 중에 무단 또는 입출력 오류가 + 표시된 블록을 가진 파일만 처리합니다. + 이 옵션은 `check` 및 `fix`에서만 사용할 수 있습니다. + + -p, --plan PERC|bad|new|full + 스크럽 계획을 선택합니다. PERC가 0에서 100 사이의 숫자 값인 경우, + 스크럽할 블록의 백분율로 해석됩니다. + 백분율 대신 계획을 지정할 수 있습니다: + `bad`는 bad 블록을 스크럽하고, `new`는 아직 스크럽되지 않은 + 막 동기화된 블록을 스크럽하며, `full`은 모든 것을 스크럽합니다. + 이 옵션은 `scrub`에서만 사용할 수 있습니다. + + -o, --older-than DAYS + `scrub`에서 처리할 어레이의 가장 오래된 부분을 선택합니다. + DAYS는 블록이 스크럽되어야 하는 최소 일령(days)이며, + 기본값은 10입니다. + bad로 표시된 블록은 이 옵션에 관계없이 항상 스크럽됩니다. + 이 옵션은 `scrub`에서만 사용할 수 있습니다. + + -a, --audit-only + `check`에서 패리티 데이터를 확인하지 않고 파일의 해시를 + 확인합니다. + 파일 데이터만 확인하는 데 관심이 있다면, 이 옵션은 확인 프로세스의 + 속도를 상당히 높일 수 있습니다. + 이 옵션은 `check`에서만 사용할 수 있습니다. + + -h, --pre-hash + `sync`에서 패리티 계산 전에 추가 확인을 위해 모든 새 데이터에 대한 + 예비 해시 단계를 실행합니다. + 일반적으로 `sync`에서는 예비 해시가 수행되지 않으며, 새 데이터는 + 패리티 계산 직전에 처음 읽을 때 해시됩니다. + 이 프로세스는 모든 디스크가 회전하고 CPU가 바쁜, 시스템이 + 과부하 상태일 때 발생합니다. + 이는 기계의 극한 조건이며, 잠재된 하드웨어 문제가 있는 경우 + 데이터가 아직 해시되지 않았기 때문에 무단 오류가 감지되지 않고 + 지나갈 수 있습니다. + 이러한 위험을 피하려면, `pre-hash` 모드를 활성화하여 모든 데이터를 + 두 번 읽어 무결성을 보장할 수 있습니다. + 이 옵션은 또한 어레이 내에서 이동된 파일을 확인하여 이동 작업이 + 성공했는지 확인하고, 필요한 경우 계속 진행하기 전에 fix 작업을 + 실행할 수 있도록 합니다. + 이 옵션은 `sync`에서만 사용할 수 있습니다. + + -i, --import DIR + 지정된 디렉토리에서 마지막 `sync` 이후 어레이에서 삭제된 파일을 + 가져옵니다. + 이러한 파일이 여전히 있는 경우, 이들은 `check` 및 `fix`에 의해 + 복구 프로세스를 개선하는 데 사용될 수 있습니다. + 파일은 하위 디렉토리를 포함하여 읽히며, 이름에 관계없이 + 식별됩니다. + 이 옵션은 `check` 및 `fix`에서만 사용할 수 있습니다. + + -s, --spin-down-on-error + 오류 발생 시, 0이 아닌 상태 코드로 종료하기 전에 관리되는 모든 + 디스크를 회전 중지합니다. 이는 중단된 작업 후에 드라이브가 계속 + 활성 상태로 회전하는 것을 방지하여 불필요한 열 축적 및 전력 + 소비를 방지하는 데 도움이 됩니다. 명령이 실패하더라도 디스크가 + 안전하게 중지되도록 이 옵션을 사용하십시오. + + -w, --bw-limit RATE + 모든 디스크에 대한 전역 대역폭 제한을 적용합니다. RATE는 + 초당 바이트 수입니다. K, M, 또는 G와 같은 승수(예: --bw-limit 1G)를 + 지정할 수 있습니다. + + -A, --stats + 추가 정보를 보여주는 확장된 상태 보기를 활성화합니다. + 화면에는 두 개의 그래프가 표시됩니다: + 첫 번째 그래프는 각 디스크에 대한 버퍼링된 스트라이프 수와 함께 + 해당 디스크에서 현재 액세스 중인 파일의 경로를 보여줍니다. + 일반적으로 가장 느린 디스크는 사용 가능한 버퍼가 없으며, + 이는 달성 가능한 최대 대역폭을 결정합니다. + 두 번째 그래프는 지난 100초 동안 대기하는 데 소비된 시간의 + 백분율을 보여줍니다. 가장 느린 디스크가 대부분의 대기 시간을 + 유발할 것으로 예상되며, 다른 디스크는 버퍼링된 스트라이프를 + 사용할 수 있으므로 대기 시간이 거의 또는 전혀 없어야 합니다. + 이 그래프는 또한 해시 계산 및 RAID 계산을 위해 소비된 시간을 + 보여줍니다. + 모든 계산은 디스크 작업과 병렬로 실행됩니다. + 따라서 적어도 하나의 디스크에 대해 측정 가능한 대기 시간이 + 있는 한, 이는 CPU가 워크로드에 충분히 빠르다는 것을 나타냅니다. + + -Z, --force-zero + 이전에 0이 아니었던 크기가 0인 파일의 동기화라는 안전하지 않은 + 작업을 강제합니다. + SnapRAID가 이러한 조건을 감지하면, 이 옵션을 지정하지 않는 한 + 진행을 중지합니다. + 이는 시스템 충돌 후 일부 액세스된 파일이 잘렸을 때 쉽게 감지할 + 수 있도록 합니다. + 이는 ext3/ext4 파일 시스템을 사용하는 Linux에서 가능한 조건입니다. + 이 옵션은 `sync`에서만 사용할 수 있습니다. + + -E, --force-empty + 원래 디스크에 있던 모든 파일이 누락된 디스크의 동기화라는 + 안전하지 않은 작업을 강제합니다. + SnapRAID가 디스크에 원래 있던 모든 파일이 누락되거나 다시 + 작성되었음을 감지하면, 이 옵션을 지정하지 않는 한 진행을 + 중지합니다. + 이는 데이터 파일 시스템이 마운트되지 않았을 때 쉽게 감지할 + 수 있도록 합니다. + 이 옵션은 `sync`에서만 사용할 수 있습니다. + + -U, --force-uuid + UUID가 변경된 디스크를 사용하여 동기화, 확인 및 수정을 강제하는 + 안전하지 않은 작업입니다. + SnapRAID가 일부 디스크의 UUID가 변경되었음을 감지하면, + 이 옵션을 지정하지 않는 한 진행을 중지합니다. + 이는 디스크가 잘못된 마운트 지점에 마운트되었을 때 감지할 + 수 있도록 합니다. + 그러나 단일 패리티를 사용하는 경우 하나의 UUID 변경이 허용되며, + 여러 패리티를 사용하는 경우 더 많은 변경이 허용됩니다. 이는 + 복구 후 디스크를 교체할 때의 일반적인 경우이기 때문입니다. + 이 옵션은 `sync`, `check`, 또는 `fix`에서만 사용할 수 있습니다. + + -D, --force-device + 액세스할 수 없는 디스크 또는 동일한 물리적 장치에 있는 디스크로 + 수정을 강제하는 안전하지 않은 작업입니다. + 예를 들어, 두 개의 데이터 디스크를 잃고 첫 번째 디스크만 + 복구하기 위해 예비 디스크가 있는 경우, 두 번째 액세스할 수 없는 + 디스크를 무시할 수 있습니다. + 또는 이미 사용 중인 디스크에 남은 여유 공간에 디스크를 복구하려는 + 경우, 동일한 물리적 장치를 공유합니다. + 이 옵션은 `fix`에서만 사용할 수 있습니다. + + -N, --force-nocopy + `sync`, `check`, 및 `fix`에서 복사 감지 발견법(heuristic)을 + 비활성화합니다. + 이 옵션이 없으면 SnapRAID는 이름, 크기 및 타임스탬프와 같은 + 동일한 속성을 가진 파일이 동일한 데이터를 가진 복사본이라고 + 가정합니다. + 이는 한 디스크에서 다른 디스크로 복사되거나 이동된 파일을 + 식별하고, 이미 계산된 해시 정보를 재사용하여 무단 오류를 + 감지하거나 누락된 파일을 복구할 수 있도록 합니다. + 일부 드문 경우에 이 동작은 오탐(false positives) 또는 많은 + 해시 확인으로 인한 느린 프로세스를 초래할 수 있으며, 이 옵션을 + 사용하면 이러한 문제를 해결할 수 있습니다. + 이 옵션은 `sync`, `check`, 및 `fix`에서만 사용할 수 있습니다. + + -F, --force-full + `sync`에서 패리티의 전체 재계산을 강제합니다. + 이 옵션은 새 패리티 수준을 추가하거나, 더 최근의 패리티 데이터를 + 사용하여 이전 content 파일로 되돌렸을 때 사용할 수 있습니다. + 처음부터 패리티를 다시 생성하는 대신, 이 옵션을 사용하면 + content 파일에 있는 해시를 재사용하여 데이터를 검증하고 + 기존 패리티 데이터를 사용하여 `sync` 프로세스 중에 데이터 보호를 + 유지할 수 있습니다. + 이 옵션은 `sync`에서만 사용할 수 있습니다. + + -R, --force-realloc + `sync`에서 파일의 전체 재할당 및 패리티 재빌드를 강제합니다. + 이 옵션은 content 파일에 있는 해시를 재사용하여 데이터를 + 검증하면서 단편화를 제거하고 모든 파일을 완전히 재할당하는 데 + 사용될 수 있습니다. + 이 옵션은 `sync`에서만 사용할 수 있습니다. + **경고!** 이 옵션은 전문가 전용이며, 사용하지 않는 것이 + 강력히 권장됩니다. + `sync` 작업 중에는 데이터 보호가 없습니다. + + -l, --log FILE + 지정된 파일에 자세한 로그를 기록합니다. + 이 옵션을 지정하지 않으면 예상치 못한 오류가 화면에 출력되어, + 많은 오류가 발생하는 경우 과도한 출력이 발생할 수 있습니다. + -l, --log가 지정되면 SnapRAID가 중지되는 치명적인 오류만 + 화면에 출력됩니다. + 경로가 '>>'로 시작하면 파일이 추가 모드로 열립니다. + 이름의 '%D'와 '%T'는 YYYYMMDD 및 HHMMSS 형식의 날짜 및 + 시간으로 대체됩니다. Windows 배치 파일에서는 '%' 문자를 + 두 배로 늘려야 합니다(예: result-%%D.log). '>>'를 사용하려면 + 이름을 따옴표로 묶어야 합니다(예: `">>result.log"`). + 로그를 표준 출력 또는 표준 오류로 출력하려면 각각 `">&1"` 및 `">&2"`를 + 사용할 수 있습니다. + 로그 태그 설명은 snapraid_log.txt 파일 또는 man 페이지를 참조하십시오. + + -L, --error-limit NUMBER + 실행을 중지하기 전에 새로운 오류 제한을 설정합니다. + 기본적으로 SnapRAID는 100개 이상의 입출력 오류가 발생하면 중지됩니다. + 이는 디스크가 실패할 가능성이 있음을 나타냅니다. + 이 옵션은 `sync` 및 `scrub`에 영향을 미치며, 첫 번째 디스크 오류 + 세트 후에 계속 진행하여 작업을 완료하려고 시도할 수 있도록 + 허용합니다. + 그러나 `check` 및 `fix`는 항상 첫 번째 오류에서 중지됩니다. + + -S, --start BLKSTART + 지정된 블록 번호부터 처리를 시작합니다. + 이는 손상된 디스크의 경우 특정 블록을 다시 확인하거나 수정하는 데 + 유용할 수 있습니다. + 이 옵션은 주로 고급 수동 복구를 위한 것입니다. + + -B, --count BLKCOUNT + 지정된 수의 블록만 처리합니다. + 이 옵션은 주로 고급 수동 복구를 위한 것입니다. + + -C, --gen-conf CONTENT + 기존 content 파일에서 더미 설정 파일을 생성합니다. + 설정 파일은 표준 출력으로 작성되며 기존 파일을 덮어쓰지 않습니다. + 이 설정 파일에는 전체 시스템을 잃을 경우 디스크 마운트 지점을 + 재구성하는 데 필요한 정보도 포함되어 있습니다. + + -v, --verbose + 화면에 더 많은 정보를 출력합니다. + 한 번 지정하면 제외된 파일 및 추가 통계를 출력합니다. + 이 옵션은 로그 파일에는 영향을 미치지 않습니다. + + -q, --quiet + 화면에 더 적은 정보를 출력합니다. + 한 번 지정하면 진행률 표시줄을 제거하고, 두 번 지정하면 + 실행 중인 작업을 제거하며, 세 번 지정하면 정보 메시지를 + 제거하고, 네 번 지정하면 상태 메시지를 제거합니다. + 치명적인 오류는 항상 화면에 출력됩니다. + 이 옵션은 로그 파일에는 영향을 미치지 않습니다. + + -H, --help + 간단한 도움말 화면을 출력합니다. + + -V, --version + 프로그램 버전을 출력합니다. + +Configuration + SnapRAID는 디스크 어레이의 위치와 패리티 정보를 저장할 위치를 + 알기 위해 설정 파일이 필요합니다. + + Unix에서는 `/usr/local/etc/snapraid.conf` 파일이 존재하면 사용하고, + 그렇지 않으면 `/etc/snapraid.conf`를 사용합니다. + Windows에서는 `snapraid.exe`와 같은 디렉토리에 있는 + `snapraid.conf` 파일을 사용합니다. + + 다음 옵션이 포함되어야 합니다(대소문자 구분): + + parity FILE [,FILE] ... + 패리티 정보를 저장하는 데 사용할 파일을 정의합니다. + 패리티는 RAID5와 유사하게 단일 디스크 오류로부터 보호를 + 가능하게 합니다. + + 여러 파일을 지정할 수 있으며, 이들은 서로 다른 디스크에 + 있어야 합니다. + 하나의 파일이 더 이상 커질 수 없을 때 다음 파일이 사용됩니다. + 총 사용 가능한 공간은 어레이에서 가장 큰 데이터 디스크보다 + 적어도 커야 합니다. + + 나중에 추가 패리티 파일을 추가할 수 있지만, 순서를 바꾸거나 + 제거할 수는 없습니다. + + 패리티 디스크를 패리티용으로 예약하면 단편화되지 않아 성능이 + 향상됩니다. + + Windows에서는 디스크가 가득 찼다는 경고를 피하기 위해 각 디스크에 + 256MB가 사용되지 않은 채로 남습니다. + + 이 옵션은 필수이며 한 번만 사용할 수 있습니다. + + (2,3,4,5,6)-parity FILE [,FILE] ... + 추가 패리티 정보를 저장하는 데 사용할 파일을 정의합니다. + + 지정된 각 패리티 수준에 대해 하나의 추가 보호 수준이 + 활성화됩니다: + + * 2-parity는 RAID6 이중 패리티를 활성화합니다. + * 3-parity는 삼중 패리티를 활성화합니다. + * 4-parity는 쿼드(4중) 패리티를 활성화합니다. + * 5-parity는 펜타(5중) 패리티를 활성화합니다. + * 6-parity는 헥사(6중) 패리티를 활성화합니다. + + 각 패리티 수준은 모든 이전 패리티 수준의 존재를 + 필요로 합니다. + + `parity` 옵션과 동일한 고려 사항이 적용됩니다. + + 이 옵션은 선택 사항이며 한 번만 사용할 수 있습니다. + + z-parity FILE [,FILE] ... + 삼중 패리티를 저장하는 대체 파일 및 형식을 정의합니다. + + 이 옵션은 '3-parity'의 대안이며, 주로 SSSE3 명령어 세트를 지원하지 + 않는 ARM 또는 AMD Phenom, Athlon, Opteron과 같은 저가형 CPU를 + 위한 것입니다. 이러한 경우 더 나은 성능을 제공합니다. + + 이 형식은 ZFS RAIDZ3에서 사용되는 것과 유사하지만 더 빠릅니다. + ZFS와 마찬가지로 삼중 패리티 이상에서는 작동하지 않습니다. + + '3-parity'를 사용할 때 성능 향상을 위해 'z-parity' 형식을 사용하는 + 것이 권장되는 경우 경고를 받게 됩니다. + + 원하는 z-parity 또는 3-parity 파일로 설정 파일을 조정하고 + 'fix'를 사용하여 다시 생성함으로써 한 형식에서 다른 형식으로 + 변환할 수 있습니다. + + content FILE + 디스크 어레이에 있는 모든 파일의 목록과 체크섬을 저장하는 데 사용할 + 파일을 정의합니다. + + 데이터, 패리티 또는 사용 가능한 다른 디스크에 배치할 수 있습니다. + 데이터 디스크를 사용하는 경우, 이 파일은 `sync` 프로세스에서 + 자동으로 제외됩니다. + + 이 옵션은 필수이며 동일한 파일의 여러 복사본을 저장하기 위해 + 여러 번 사용될 수 있습니다. + + 사용된 각 패리티 디스크에 대해 최소한 하나의 복사본을 + 저장해야 하며, 하나를 더 추가해야 합니다. 추가 복사본을 + 사용해도 해롭지 않습니다. + + data NAME DIR + 어레이의 데이터 디스크의 이름과 마운트 지점을 정의합니다. + NAME은 디스크를 식별하는 데 사용되며 고유해야 합니다. DIR은 + 파일 시스템에서 디스크의 마운트 지점입니다. + + NAME을 고정된 상태로 유지하는 한, 필요에 따라 마운트 지점을 + 변경할 수 있습니다. + + 어레이의 각 데이터 디스크에 대해 하나의 옵션을 사용해야 합니다. + + 나중에 설정 파일에서 직접 NAME을 변경하고 'sync' 명령을 + 실행하여 디스크의 이름을 바꿀 수 있습니다. + 이름 변경의 경우, 디스크의 저장된 UUID를 사용하여 연결됩니다. + + nohidden + 모든 숨겨진 파일 및 디렉토리를 제외합니다. + Unix에서는 숨겨진 파일은 '.'으로 시작하는 파일입니다. + Windows에서는 숨김 속성을 가진 파일입니다. + + exclude/include PATTERN + sync 프로세스에서 제외하거나 포함할 파일 또는 디렉토리 패턴을 + 정의합니다. + 모든 패턴은 지정된 순서대로 처리됩니다. + + 일치하는 첫 번째 패턴이 `exclude` 패턴이면 파일은 제외됩니다. + `include` 패턴이면 파일은 포함됩니다. + 일치하는 패턴이 없으면, 지정된 마지막 패턴이 `include`이면 + 파일은 제외되고, `exclude`이면 포함됩니다. + + 패턴 사양에 대한 자세한 내용은 PATTERN 섹션을 참조하십시오. + + 이 옵션은 여러 번 사용될 수 있습니다. + + blocksize SIZE_IN_KIBIBYTES + 패리티의 기본 블록 크기를 키비바이트(kibibyte) 단위로 정의합니다. + 1키비바이트는 1024바이트입니다. + + 기본 블록 크기는 256이며, 대부분의 경우에 작동해야 합니다. + + **경고!** 이 옵션은 전문가 전용이며, 이 값을 변경하지 않는 것이 + 강력히 권장됩니다. 나중에 이 값을 변경하려면 전체 패리티를 + 다시 생성해야 합니다! + + 다른 블록 크기를 사용하는 이유는 수백만 개의 작은 파일이 많은 + 경우입니다. + + 각 파일에 대해, 몇 바이트만 있어도 전체 패리티 블록이 할당되며, + 파일이 많으면 상당한 미사용 패리티 공간이 발생할 수 있습니다. + 패리티 디스크를 완전히 채우면 데이터 디스크에 더 이상 파일을 + 추가할 수 없습니다. + 그러나 낭비된 패리티는 데이터 디스크 전체에 걸쳐 축적되지 않습니다. + 데이터 디스크의 많은 파일로 인해 발생하는 낭비된 공간은 다른 + 데이터 디스크가 아닌 해당 데이터 디스크의 데이터 양만 제한합니다. + + 대략적으로, 각 파일에 대해 블록 크기의 절반이 낭비된다고 가정할 수 + 있습니다. 예를 들어, 100,000개의 파일과 256KiB 블록 크기로 + 12.8GB의 패리티가 낭비되며, 이는 데이터 디스크에서 12.8GB의 사용 가능한 + 공간이 줄어들 수 있음을 의미합니다. + + `status`를 사용하여 각 디스크의 낭비된 공간의 양을 확인할 수 있습니다. + 이는 데이터 디스크에 비워 두거나 어레이에 포함되지 않은 파일에 + 사용해야 하는 공간의 양입니다. + 이 값이 음수이면 패리티를 거의 채우고 있음을 의미하며, 여전히 + 낭비할 수 있는 공간을 나타냅니다. + + 이 문제를 피하려면 패리티에 대해 더 큰 파티션을 사용할 수 있습니다. + 예를 들어, 패리티 파티션이 데이터 디스크보다 12.8GB 더 큰 경우, + 각 데이터 디스크에 최대 100,000개의 파일을 낭비되는 공간 없이 + 처리할 수 있는 충분한 추가 공간이 있습니다. + + Linux에서 더 큰 패리티 파티션을 얻는 트릭은 다음 명령으로 포맷하는 + 것입니다: + + :mkfs.ext4 -m 0 -T largefile4 DEVICE + + 이로 인해 약 1.5%의 추가 공간이 발생하며, 4TB 디스크의 경우 약 60GB로, + 낭비되는 공간 없이 각 데이터 디스크에 약 460,000개의 파일을 + 허용합니다. + + hashsize SIZE_IN_BYTES + 저장된 블록의 해시 크기를 바이트 단위로 정의합니다. + + 기본 해시 크기는 16바이트(128비트)이며, 대부분의 경우에 작동해야 합니다. + + **경고!** 이 옵션은 전문가 전용이며, 이 값을 변경하지 않는 것이 + 강력히 권장됩니다. 나중에 이 값을 변경하려면 전체 패리티를 + 다시 생성해야 합니다! + + 다른 해시 크기를 사용하는 이유는 시스템의 메모리가 제한적인 경우입니다. + 경험상 SnapRAID는 어레이의 16TB 데이터당 일반적으로 1GiB의 RAM을 + 필요로 합니다. + + 구체적으로, 데이터의 해시를 저장하기 위해 SnapRAID는 대략 + TS*(1+HS)/BS 바이트의 RAM을 필요로 합니다. + 여기서 TS는 디스크 어레이의 총 크기(바이트), BS는 블록 크기(바이트), + HS는 해시 크기(바이트)입니다. + + 예를 들어, 4TB 디스크 8개, 블록 크기 256KiB + (1KiB = 1024바이트), 해시 크기 16인 경우 다음과 같습니다: + + :RAM = (8 * 4 * 10^12) * (1+16) / (256 * 2^10) = 1.93 GiB + + 해시 크기를 8로 전환하면 다음과 같습니다: + + :RAM = (8 * 4 * 10^12) * (1+8) / (256 * 2^10) = 1.02 GiB + + 블록 크기를 512로 전환하면 다음과 같습니다: + + :RAM = (8 * 4 * 10^12) * (1+16) / (512 * 2^10) = 0.96 GiB + + 해시 크기를 8로, 블록 크기를 512로 모두 전환하면 다음과 같습니다: + + :RAM = (8 * 4 * 10^12) * (1+8) / (512 * 2^10) = 0.51 GiB + + autosave SIZE_IN_GIGABYTES + 지정된 GB 양이 처리된 후 동기화 또는 스크럽 시 상태를 자동으로 저장합니다. + 이 옵션은 기계 충돌 또는 기타 이벤트로 인해 중단된 경우 긴 `sync` + 명령을 처음부터 다시 시작하는 것을 방지하는 데 유용합니다. + + temp_limit TEMPERATURE_CELSIUS + 허용되는 최대 디스크 온도를 섭씨로 설정합니다. 지정되면 SnapRAID는 + smartctl 도구를 사용하여 주기적으로 모든 디스크의 온도를 확인합니다. + SnapRAID가 작동하는 동안 현재 디스크 온도가 표시됩니다. + 어떤 디스크라도 이 제한을 초과하면 모든 작업이 중지되고, 디스크는 + `temp_sleep` 옵션으로 정의된 기간 동안 회전 중지됩니다(대기 모드로 + 전환됨). 절전 기간 후 작업이 재개되며, 온도 제한에 다시 도달하면 + 다시 일시 중지될 수 있습니다. + + 작동 중에 SnapRAID는 각 디스크의 가열 곡선을 분석하고 활동이 계속되면 + 도달할 것으로 예상되는 장기 정상 온도를 추정합니다. + 추정은 디스크 온도가 네 번 증가한 후에만 수행되어, 신뢰할 수 있는 + 추세를 설정하기에 충분한 데이터 포인트가 확보되도록 합니다. + 이 예측된 정상 온도는 현재 값 옆에 괄호 안에 표시되며, 시스템의 + 냉각이 적절한지 평가하는 데 도움이 됩니다. 이 추정 온도는 정보 제공 + 목적일 뿐이며 SnapRAID의 동작에는 영향을 미치지 않습니다. + 프로그램의 동작은 오로지 실제 측정된 디스크 온도에 기반합니다. + + 이 분석을 수행하려면 SnapRAID는 시스템 온도에 대한 참조가 필요합니다. + 먼저 사용 가능한 하드웨어 센서에서 읽으려고 시도합니다. + 시스템 센서에 액세스할 수 없는 경우, 실행 시작 시 측정된 가장 낮은 + 디스크 온도를 대체 참조로 사용합니다. + + 일반적으로 SnapRAID는 가장 뜨거운 디스크의 온도만 표시합니다. + 모든 디스크의 온도를 표시하려면 -A 또는 --stats 옵션을 사용하십시오. + + temp_sleep TIME_IN_MINUTES + 온도 제한에 도달했을 때의 대기 시간(분)을 설정합니다. 이 기간 동안 + 디스크는 회전 중지 상태를 유지합니다. 기본값은 5분입니다. + + pool DIR + `pool` 명령을 사용하여 디스크 어레이의 가상 뷰가 생성되는 풀링 + 디렉토리를 정의합니다. + + 디렉토리는 이미 존재해야 합니다. + + share UNC_DIR + 디스크에 원격으로 액세스하는 데 필요한 Windows UNC 경로를 정의합니다. + + 이 옵션이 지정되면 풀 디렉토리에 생성된 심볼릭 링크는 이 UNC 경로를 + 사용하여 디스크에 액세스합니다. + 이 옵션이 없으면 생성된 심볼릭 링크는 로컬 경로만 사용하며, 이는 + 네트워크를 통해 풀 디렉토리를 공유하는 것을 허용하지 않습니다. + + 심볼릭 링크는 지정된 UNC 경로를 사용하여 형성되며, `data` 옵션에 + 지정된 디스크 이름이 추가되고, 마지막으로 파일 디렉토리와 이름이 + 추가됩니다. + + 이 옵션은 Windows에만 필요합니다. + + smartctl DISK/PARITY OPTIONS... + 각 디스크에 대한 SMART 속성을 얻기 위한 사용자 정의 smartctl 옵션을 + 정의합니다. 이는 RAID 컨트롤러 및 일부 자동 감지할 수 없는 USB 디스크에 + 필요할 수 있습니다. %s 자리 표시자는 장치 이름으로 대체되지만, + RAID 컨트롤러와 같은 고정된 장치에서는 선택 사항입니다. + + DISK는 `data` 옵션에 지정된 것과 동일한 디스크 이름입니다. + PARITY는 `parity`, `2-parity`, `3-parity`, `4-parity`, `5-parity`, + `6-parity`, 또는 `z-parity` 중 하나의 패리티 이름입니다. + + 지정된 OPTIONS에서 `%s` 문자열은 장치 이름으로 대체됩니다. + RAID 컨트롤러의 경우 장치가 고정되어 있을 가능성이 높으므로 + `%s`를 사용할 필요가 없을 수 있습니다. + + 가능한 옵션은 smartmontools 설명서를 참조하십시오: + + :https://www.smartmontools.org/wiki/Supported_RAID-Controllers + :https://www.smartmontools.org/wiki/Supported_USB-Devices + + 예: + + :smartctl parity -d sat %s + + smartignore DISK/PARITY ATTR [ATTR...] + 디스크 실패 확률을 계산할 때 지정된 SMART 속성을 무시합니다. + 이 옵션은 디스크가 특정 속성에 대해 특이하거나 오해의 소지가 있는 + 값을 보고하는 경우에 유용합니다. + + DISK는 `data` 옵션에 지정된 것과 동일한 디스크 이름입니다. + PARITY는 `parity`, `2-parity`, `3-parity`, `4-parity`, `5-parity`, + `6-parity`, 또는 `z-parity` 중 하나의 패리티 이름입니다. + 특수 값 *는 모든 디스크에서 속성을 무시하는 데 사용될 수 있습니다. + + 예를 들어, 모든 디스크에서 `Current Pending Sector Count` 속성을 + 무시하려면: + + :smartignore * 197 + + 첫 번째 패리티 디스크에서만 무시하려면: + + :smartignore parity 197 + + Examples + Unix의 일반적인 설정 예는 다음과 같습니다: + + :parity /mnt/diskp/snapraid.parity + :content /mnt/diskp/snapraid.content + :content /var/snapraid/snapraid.content + :data d1 /mnt/disk1/ + :data d2 /mnt/disk2/ + :data d3 /mnt/disk3/ + :exclude /lost+found/ + :exclude /tmp/ + :smartctl d1 -d sat %s + :smartctl d2 -d usbjmicron %s + :smartctl parity -d areca,1/1 /dev/sg0 + :smartctl 2-parity -d areca,2/1 /dev/sg0 + + Windows의 일반적인 설정 예는 다음과 같습니다: + + :parity E:\snapraid.parity + :content E:\snapraid.content + :content C:\snapraid\snapraid.content + :data d1 G:\array\ + :data d2 H:\array\ + :data d3 I:\array\ + :exclude Thumbs.db + :exclude \$RECYCLE.BIN + :exclude \System Volume Information + :smartctl d1 -d sat %s + :smartctl d2 -d usbjmicron %s + :smartctl parity -d areca,1/1 /dev/arcmsr0 + :smartctl 2-parity -d areca,2/1 /dev/arcmsr0 + +Pattern + 패턴은 처리에서 제외하거나 포함할 파일의 하위 집합을 선택하는 데 + 사용됩니다. + + 네 가지 유형의 패턴이 있습니다: + + =FILE + FILE이라는 이름의 모든 파일을 선택합니다. *, ?와 같은 글로빙 + 문자와 [a-z]와 같은 문자 클래스를 사용할 수 있습니다. + 이 패턴은 디렉토리가 아닌 파일에만 적용됩니다. + + =DIR/ + DIR이라는 이름의 모든 디렉토리와 그 안의 모든 것을 선택합니다. + *, ?와 같은 글로빙 문자를 사용할 수 있습니다. + 이 패턴은 파일이 아닌 디렉토리에만 적용됩니다. + + =/PATH/FILE + 정확히 지정된 파일 경로를 선택합니다. *, ?와 같은 글로빙 + 문자를 사용할 수 있지만, 디렉토리 슬래시와는 절대 일치하지 않습니다. + 이 패턴은 디렉토리가 아닌 파일에만 적용됩니다. + + =/PATH/DIR/ + 정확히 지정된 디렉토리 경로와 그 안의 모든 것을 선택합니다. + *, ?와 같은 글로빙 문자를 사용할 수 있지만, 디렉토리 슬래시와는 + 절대 일치하지 않습니다. + 이 패턴은 파일이 아닌 디렉토리에만 적용됩니다. + + /로 시작하는 절대 경로를 지정하면 로컬 파일 시스템의 루트 디렉토리가 + 아닌 어레이 루트 디렉토리에 적용됩니다. + + Windows에서는 정방향 슬래시 / 대신 역슬래시 \를 사용할 수 있습니다. + Windows 시스템 디렉토리, 접합점(junctions), 마운트 지점 및 기타 + Windows 특수 디렉토리는 파일로 취급됩니다. 즉, 이들을 제외하려면 + 디렉토리 규칙이 아닌 파일 규칙을 사용해야 합니다. + + 파일 이름에 '*', '?', '[', + 또는 ']' 문자가 포함된 경우, 글로빙 문자로 해석되는 것을 피하기 위해 + 이스케이프해야 합니다. Unix에서는 이스케이프 문자가 '\'이고, + Windows에서는 '^'입니다. + 패턴이 명령줄에 있는 경우, 명령 셸에 의해 해석되는 것을 피하기 위해 + 이스케이프 문자를 두 배로 늘려야 합니다. + + 설정 파일에서는 처리할 파일을 필터링하기 위해 다른 전략을 사용할 수 + 있습니다. + 가장 간단한 접근 방식은 원하지 않는 모든 파일과 디렉토리를 제거하기 + 위해 `exclude` 규칙만 사용하는 것입니다. 예를 들어: + + :# `*.unrecoverable`이라는 이름의 모든 파일 제외 + :exclude *.unrecoverable + :# 루트 디렉토리 `/lost+found` 제외 + :exclude /lost+found/ + :# `tmp`라는 이름의 모든 하위 디렉토리 제외 + :exclude tmp/ + + 반대 접근 방식은 `include` 규칙만 사용하여 처리하려는 파일만 + 정의하는 것입니다. 예를 들어: + + :# 일부 디렉토리만 포함 + :include /movies/ + :include /musics/ + :include /pictures/ + + 최종 접근 방식은 `exclude` 및 `include` 규칙을 혼합하는 것입니다. + 이 경우 규칙의 순서가 중요합니다. 앞선 규칙이 뒤의 규칙보다 + 우선합니다. + 단순화를 위해 모든 `exclude` 규칙을 먼저 나열한 다음 모든 + `include` 규칙을 나열할 수 있습니다. 예를 들어: + + :# `*.unrecoverable`이라는 이름의 모든 파일 제외 + :exclude *.unrecoverable + :# `tmp`라는 이름의 모든 하위 디렉토리 제외 + :exclude tmp/ + :# 일부 디렉토리만 포함 + :include /movies/ + :include /musics/ + :include /pictures/ + + 명령줄에서 -f 옵션을 사용할 때 `include` 패턴만 사용할 수 있습니다. + 예를 들어: + + :# .mp3 파일만 확인. + :# Unix에서는 셸에 의한 글로빙 확장을 피하기 위해 따옴표를 사용합니다. + :snapraid -f "*.mp3" check + + Unix에서는 명령줄에서 글로빙 문자를 사용할 때 셸이 확장하는 것을 + 방지하기 위해 따옴표로 묶어야 합니다. + +Content + SnapRAID는 content 파일에 파일 목록과 체크섬을 저장합니다. + + 이것은 디스크 어레이에 있는 모든 파일의 목록과 무결성을 확인하기 위한 + 모든 체크섬을 나열하는 이진 파일입니다. + + 이 파일은 `sync` 및 `scrub` 명령에 의해 읽고 쓰여지며, + `fix`, `check`, 및 `status` 명령에 의해 읽혀집니다. + +Parity + SnapRAID는 패리티 파일에 어레이의 패리티 정보를 저장합니다. + + 이들은 `content` 파일에 정의된 모든 블록의 계산된 패리티를 포함하는 + 이진 파일입니다. + + 이 파일들은 `sync` 및 `fix` 명령에 의해 읽고 쓰여지며, + `scrub` 및 `check` 명령에 의해서만 읽혀집니다. + +Encoding + Unix의 SnapRAID는 인코딩을 무시합니다. 파일 시스템에서 사용되는 + 것과 동일한 인코딩으로 파일 이름을 읽고 저장합니다. + + Windows에서는 파일 시스템에서 읽은 모든 이름이 UTF-8 형식으로 + 변환되고 처리됩니다. + + 파일 이름이 올바르게 출력되도록 하려면, `chcp 65001` 명령으로 + Windows 콘솔을 UTF-8 모드로 설정하고 콘솔 글꼴로 `Lucida Console`과 + 같은 TrueType 글꼴을 사용해야 합니다. + 이는 출력되는 파일 이름에만 영향을 미치며, 콘솔 출력을 파일로 + 리디렉션하는 경우 결과 파일은 항상 UTF-8 형식입니다. + +Copyright + This file is Copyright (C) 2025 Andrea Mazzoleni + +See Also + snapraid_log(1), rsync(1) diff --git a/snapraid-ko.txt b/snapraid-ko.txt new file mode 100644 index 00000000..0c3b10ad --- /dev/null +++ b/snapraid-ko.txt @@ -0,0 +1,1514 @@ + ======================= + 디스크 어레이를 위한 SnapRAID 백업 + ======================= + + +1 SYNOPSIS +========== + +snapraid [-c, --conf CONFIG] + [-f, --filter PATTERN] [-d, --filter-disk NAME] + [-m, --filter-missing] [-e, --filter-error] + [-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|probe|up|down|diff|sync|scrub|fix|check + |list|dup|pool|devices|touch|rehash + +snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT] + + +2 DESCRIPTION +============= + +SnapRAID는 디스크 어레이를 위해 설계된 백업 프로그램으로, +최대 6개의 디스크 오류가 발생해도 데이터를 복구하기 위한 +패리티 정보를 저장합니다. + +주로 크고 자주 변경되지 않는 파일을 가진 홈 미디어 센터를 +위해 고안된 SnapRAID는 다음과 같은 몇 가지 기능을 제공합니다: + +* 파일을 다시 포맷할 필요 없이 이미 파일로 채워진 디스크를 + 활용할 수 있으며, 평소처럼 액세스할 수 있습니다. +* 데이터 무결성을 보장하고 무단 손상을 방지하기 위해 모든 데이터가 + 해시됩니다. +* 실패한 디스크의 수가 패리티 수를 초과하는 경우, 데이터 손실은 + 영향을 받은 디스크로 제한되며, 다른 디스크의 데이터는 + 계속 액세스할 수 있습니다. +* 실수로 디스크의 파일을 삭제한 경우에도 복구가 가능합니다. +* 디스크는 서로 다른 크기를 가질 수 있습니다. +* 언제든지 디스크를 추가할 수 있습니다. +* SnapRAID는 데이터를 가두지 않습니다. 언제든지 포맷하거나 데이터를 + 이동할 필요 없이 사용을 중단할 수 있습니다. +* 파일에 액세스하려면 단일 디스크만 회전하면 되므로, 전력을 절약하고 + 소음을 줄일 수 있습니다. + +더 자세한 정보는 공식 SnapRAID 사이트를 방문하십시오: + + https://www.snapraid.it/ + + +3 LIMITATIONS +============= + +SnapRAID는 RAID와 백업 프로그램의 하이브리드로, 두 가지의 장점을 +결합하는 것을 목표로 합니다. 하지만, 사용 전에 고려해야 할 몇 가지 +제한 사항이 있습니다. + +주요 제한 사항은 디스크가 실패하고 최근에 동기화(sync)하지 않은 경우, +완전히 복구하지 못할 수 있다는 것입니다. +더 구체적으로, 마지막 동기화 작업 이후 변경되거나 삭제된 파일의 +크기만큼 복구가 불가능할 수 있습니다. +이는 변경되거나 삭제된 파일이 실패한 디스크에 있지 않더라도 발생합니다. +이것이 SnapRAID가 **거의 변경되지 않는 데이터**에 더 적합한 이유입니다. + +반면에, 새로 추가된 파일은 이미 존재하는 파일의 복구를 방해하지 않습니다. +새로 추가된 파일이 실패한 디스크에 있는 경우에만 해당 파일을 잃게 됩니다. + +기타 SnapRAID 제한 사항은 다음과 같습니다: + +* SnapRAID를 사용하면 여전히 각 디스크에 대해 별도의 파일 시스템이 + 있습니다. RAID를 사용하면 하나의 큰 파일 시스템을 얻습니다. +* SnapRAID는 데이터를 스트라이핑하지 않습니다. + RAID를 사용하면 스트라이핑으로 속도 향상을 얻습니다. +* SnapRAID는 실시간 복구를 지원하지 않습니다. + RAID를 사용하면 디스크가 실패했을 때 작업을 멈출 필요가 없습니다. +* SnapRAID는 제한된 수의 디스크 오류에서만 데이터를 복구할 수 있습니다. + 백업을 사용하면 전체 디스크 어레이의 완전한 오류로부터 + 복구할 수 있습니다. +* 파일 이름, 타임스탬프, 심볼릭 링크, 하드 링크만 저장됩니다. + 권한, 소유권, 확장 속성은 저장되지 않습니다. + + +4 GETTING STARTED +================= + +SnapRAID를 사용하려면, 먼저 디스크 어레이에서 하나의 디스크를 +`parity`(패리티) 정보 전용으로 선택해야 합니다. 하나의 패리티 디스크로 +RAID5와 유사하게 단일 디스크 오류로부터 복구할 수 있습니다. + +RAID6와 유사하게 더 많은 디스크 오류로부터 복구하려면, +추가 디스크를 패리티용으로 예약해야 합니다. 추가 패리티 디스크 +하나당 하나의 디스크 오류에 대한 복구를 더 허용합니다. + +패리티 디스크로는 어레이에서 가장 큰 디스크를 선택해야 합니다. +패리티 정보가 어레이에서 가장 큰 **데이터 디스크**의 크기만큼 +커질 수 있기 때문입니다. + +이 디스크들은 `parity` 파일을 저장하는 데 전념하게 됩니다. +여기에 데이터를 저장해서는 안 됩니다. + +다음으로, SnapRAID로 보호하려는 `data`(데이터) 디스크를 정의해야 합니다. +이 디스크들이 **거의 변경되지 않는 데이터**를 포함할 때 보호 효과가 +더 좋습니다. 이러한 이유로, Windows C:\ 디스크나 Unix의 /home, /var, +/tmp 디렉토리를 포함하지 않는 것이 좋습니다. + +파일 목록은 `content` 파일에 저장되며, 보통 데이터, 패리티, 또는 부트 +디스크에 저장됩니다. +이 파일에는 무결성을 확인하기 위한 모든 체크섬을 포함하여 +백업에 대한 세부 정보가 들어 있습니다. +`content` 파일은 여러 복사본으로 저장되며, 다중 디스크 오류의 경우에도 +적어도 하나의 복사본을 사용할 수 있도록 각 복사본은 서로 다른 디스크에 +있어야 합니다. + +예를 들어, 하나의 패리티 보호 수준만 원하고 디스크가 다음과 같이 +위치한다고 가정해 봅시다: + + /mnt/diskp <- 패리티용으로 선택된 디스크 + /mnt/disk1 <- 보호할 첫 번째 디스크 + /mnt/disk2 <- 보호할 두 번째 디스크 + /mnt/disk3 <- 보호할 세 번째 디스크 + +다음 옵션으로 설정 파일 /etc/snapraid.conf를 생성해야 합니다: + + parity /mnt/diskp/snapraid.parity + content /var/snapraid/snapraid.content + content /mnt/disk1/snapraid.content + content /mnt/disk2/snapraid.content + data d1 /mnt/disk1/ + data d2 /mnt/disk2/ + data d3 /mnt/disk3/ + +Windows를 사용하는 경우, 슬래시 대신 드라이브 문자 및 백슬래시를 사용하는 +Windows 경로 형식을 사용해야 합니다. + + parity E:\snapraid.parity + content C:\snapraid\snapraid.content + content F:\array\snapraid.content + content G:\array\snapraid.content + data d1 F:\array\ + data d2 G:\array\ + data d3 H:\array\ + +디스크가 많아 드라이브 문자가 부족한 경우, 디스크를 하위 폴더에 +직접 마운트할 수 있습니다. 다음을 참조하십시오: + + https://www.google.com/search?q=Windows+mount+point + +이 시점에서, 패리티 정보를 빌드하기 위해 `sync` 명령을 실행할 +준비가 되었습니다. + + snapraid sync + +이 프로세스는 디스크에 이미 존재하는 데이터의 크기에 따라 첫 실행 시 +몇 시간이 걸릴 수 있습니다. 디스크가 비어 있으면 프로세스는 즉시 +완료됩니다. + +Ctrl+C를 눌러 언제든지 중지할 수 있으며, 다음 실행 시 중단된 +곳에서 재개됩니다. + +이 명령이 완료되면 데이터는 **SAFE**합니다. + +이제 어레이를 원하는 대로 사용하고 주기적으로 `sync` 명령을 +실행하여 패리티 정보를 업데이트할 수 있습니다. + +4.1 Scrubbing +------------- + +주기적으로 데이터 및 패리티의 오류를 확인하려면 `scrub` 명령을 +실행할 수 있습니다. + + snapraid scrub + +이 명령은 데이터 무결성을 확인하기 위해 어레이의 데이터를 `sync` 명령 +중에 계산된 해시와 비교합니다. + +이 명령을 실행할 때마다 이전에 10일 이내에 스크럽된 데이터를 제외하고 +어레이의 약 8%를 확인합니다. +다른 양을 지정하려면 -p, --plan 옵션을 사용하고, 다른 일령(days)을 +지정하려면 -o, --older-than 옵션을 사용할 수 있습니다. +예를 들어, 20일보다 오래된 블록에 대해 어레이의 5%를 확인하려면 +다음과 같이 사용합니다: + + snapraid -p 5 -o 20 scrub + +이 프로세스 중에 무단 또는 입출력 오류가 발견되면, 해당 블록은 +`content` 파일에 bad로 표시되며 `status` 명령에 나열됩니다. + + snapraid status + +이들을 수정하려면 -e, --filter-error 옵션으로 bad 블록을 필터링하여 +`fix` 명령을 사용할 수 있습니다. + + snapraid -e fix + +다음 `scrub` 시에 오류가 실제로 수정되면 `status` 보고서에서 +사라집니다. 더 빠르게 하려면, `-p bad`를 사용하여 bad로 표시된 블록만 +스크럽할 수 있습니다. + + snapraid -p bad scrub + +동기화되지 않은 어레이에서 `scrub`을 실행하면 제거되거나 수정된 파일로 +인한 오류가 보고될 수 있습니다. 이러한 오류는 `scrub` 출력에는 +보고되지만, 관련 블록은 bad로 표시되지 않습니다. + +4.2 Pooling +----------- + +참고: 아래에 설명된 풀링(pooling) 기능은 **mergefs** 도구로 대체되었으며, +이는 SnapRAID 커뮤니티에서 Linux 사용자를 위한 권장 옵션입니다. +Mergefs는 여러 드라이브를 단일 통합 마운트 지점으로 풀링하는 더 유연하고 +효율적인 방법을 제공하여, 심볼릭 링크에 의존하지 않고 어레이 전체의 +파일에 대한 원활한 액세스를 허용합니다. 이는 패리티 보호를 위한 +SnapRAID와 잘 통합되며, OpenMediaVault (OMV) 또는 사용자 정의 NAS +구성과 같은 설정에서 흔히 사용됩니다. + +어레이의 모든 파일을 동일한 디렉토리 트리에 표시하려면, +`pooling` 기능을 활성화할 수 있습니다. 이 기능은 심볼릭 링크를 사용하여 +어레이의 모든 파일에 대한 읽기 전용 가상 뷰를 생성합니다. + +설정 파일에서 `pooling` 디렉토리를 다음과 같이 구성할 수 있습니다: + + pool /pool + +또는 Windows에서 다음과 같이 합니다: + + pool C:\pool + +그리고 나서 `pool` 명령을 실행하여 가상 뷰를 생성하거나 업데이트합니다. + + snapraid pool + +Unix 플랫폼을 사용하고 이 디렉토리를 Windows 또는 Unix 컴퓨터에 +네트워크를 통해 공유하려면, /etc/samba/smb.conf에 다음 옵션을 +추가해야 합니다: + + # smb.conf의 global 섹션에서 + unix extensions = no + + # smb.conf의 share 섹션에서 + [pool] + comment = Pool + path = /pool + read only = yes + guest ok = yes + wide links = yes + follow symlinks = yes + +Windows에서 네트워크를 통해 심볼릭 링크를 공유하려면 클라이언트가 +원격으로 이들을 해석해야 합니다. 이를 활성화하기 위해, 풀 디렉토리를 +공유하는 것 외에도, 설정 파일에 정의된 디스크 이름을 공유 지점으로 +사용하여 모든 디스크를 독립적으로 공유해야 합니다. 또한 설정 파일의 +`share` 옵션에서 원격 클라이언트가 이러한 공유 디스크에 액세스하는 데 +필요한 Windows UNC 경로를 지정해야 합니다. + +예를 들어, `darkstar`라는 서버에서 작업하는 경우, 다음 옵션을 +사용할 수 있습니다: + + data d1 F:\array\ + data d2 G:\array\ + data d3 H:\array\ + pool C:\pool + share \\darkstar + +그리고 네트워크를 통해 다음 디렉토리를 공유합니다: + + \\darkstar\pool -> C:\pool + \\darkstar\d1 -> F:\array + \\darkstar\d2 -> G:\array + \\darkstar\d3 -> H:\array + +이렇게 하면 원격 클라이언트가 \\darkstar\pool에서 모든 파일에 액세스할 +수 있습니다. + +또한 다음 명령으로 원격 클라이언트를 구성하여 원격 심볼릭 링크에 +대한 액세스를 활성화해야 할 수도 있습니다: + + fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 + +4.3 Undeleting +-------------- + +SnapRAID는 RAID 시스템보다는 백업 프로그램처럼 작동하며, +-f, --filter 옵션을 사용하여 파일이나 디렉토리를 이전 상태로 복원하거나 +삭제 취소할 수 있습니다: + + snapraid fix -f FILE + +또는 디렉토리에 대해: + + snapraid fix -f DIR/ + +또한 -m, --filter-missing 옵션을 사용하여 디렉토리 내에서 실수로 +삭제된 파일만 복구할 수도 있습니다. 이 옵션은 누락된 파일만 복원하고 +다른 파일은 그대로 둡니다. + + snapraid fix -m -f DIR/ + +또는 모든 드라이브에서 삭제된 모든 파일을 다음으로 복구합니다: + + snapraid fix -m + +4.4 Recovering +-------------- + +최악의 상황이 발생하여 하나 이상의 디스크를 잃었습니다! + +**패닉하지 마십시오!** 복구할 수 있습니다! + +가장 먼저 해야 할 일은 디스크 어레이에 대한 추가 변경을 피하는 것입니다. +모든 원격 연결과 SnapRAID 야간 동기화 또는 스크럽을 포함한 모든 예약된 +프로세스를 비활성화하십시오. + +그런 다음 다음 단계를 진행하십시오. + +---- 4.4.1 STEP 1 -> Reconfigure ---- +복구할 공간이 필요하며, 이상적으로는 추가 예비 디스크에, +하지만 외부 USB 디스크 또는 원격 디스크로도 충분합니다. + +SnapRAID 설정 파일을 수정하여 실패한 디스크의 `data` 또는 `parity` +옵션이 파일을 복구할 수 있는 충분한 빈 공간이 있는 위치를 +가리키도록 합니다. + +예를 들어, 디스크 `d1`이 실패한 경우, 다음에서 변경합니다: + + data d1 /mnt/disk1/ + +다음으로: + + data d1 /mnt/new_spare_disk/ + +복구할 디스크가 패리티 디스크인 경우, 적절한 `parity` 옵션을 +업데이트합니다. +여러 개의 실패한 디스크가 있는 경우, 모든 구성 옵션을 업데이트합니다. + +---- 4.4.2 STEP 2 -> Fix ---- +로그를 외부 파일에 저장하면서 fix 명령을 실행합니다: + + snapraid -d NAME -l fix.log fix + +여기서 NAME은 이전 예제의 `d1`과 같은 디스크 이름입니다. +복구할 디스크가 패리티 디스크인 경우, `parity`, `2-parity` 등의 이름을 +사용합니다. +여러 개의 실패한 디스크가 있는 경우, 여러 -d 옵션을 사용하여 +모두 지정합니다. + +이 명령은 오랜 시간이 걸립니다. + +fix.log 파일을 저장할 몇 기가바이트의 여유 공간이 있는지 확인하십시오. +충분한 여유 공간이 있는 디스크에서 실행하십시오. + +이제 복구할 수 있는 모든 것을 복구했습니다. 일부 파일이 부분적으로 +또는 완전히 복구 불가능한 경우, `.unrecoverable` 확장자가 추가되어 +이름이 변경됩니다. + +`unrecoverable:`로 시작하는 모든 줄을 확인하여 fix.log 파일에서 +복구 불가능한 모든 블록의 자세한 목록을 찾을 수 있습니다. + +복구가 만족스럽지 않으면, 원하는 만큼 여러 번 재시도할 수 있습니다. + +예를 들어, 마지막 `sync` 이후 어레이에서 파일을 제거한 경우, +일부 파일이 복구되지 않을 수 있습니다. +이 경우, -i, --import 옵션을 사용하여 `fix`를 재시도하고, +이 파일들이 현재 어디에 있는지 지정하여 복구 프로세스에 다시 포함시킬 +수 있습니다. + +복구가 만족스럽다면 계속 진행할 수 있지만, 동기화 후에는 `fix` 명령을 +더 이상 재시도할 수 없다는 점에 유의하십시오! + +---- 4.4.3 STEP 3 -> Check ---- +조심스러운 확인으로, 이제 `check` 명령을 실행하여 복구된 디스크의 +모든 것이 올바른지 확인할 수 있습니다. + + snapraid -d NAME -a check + +여기서 NAME은 이전 예제의 `d1`과 같은 디스크 이름입니다. + + -d 및 -a 옵션은 SnapRAID에게 지정된 디스크만 확인하고 모든 패리티 +데이터를 무시하도록 지시합니다. + +이 명령은 오랜 시간이 걸리지만, 지나치게 조심스럽지 않다면 건너뛸 수 +있습니다. + +---- 4.4.4 STEP 4 -> Sync ---- +`sync` 명령을 실행하여 새 디스크로 어레이를 재동기화합니다. + + snapraid sync + +모든 것이 복구되면 이 명령은 즉시 완료됩니다. + + +5 COMMANDS +========== + +SnapRAID는 다음을 허용하는 몇 가지 간단한 명령을 제공합니다: + +* 어레이의 상태 출력 -> `status` +* 디스크 제어 -> `smart`, `probe`, `up`, `down` +* 백업/스냅샷 생성 -> `sync` +* 주기적으로 데이터 확인 -> `scrub` +* 마지막 백업/스냅샷 복원 -> `fix`. + +명령은 소문자로 작성해야 합니다. + +5.1 status +---------- + +디스크 어레이의 상태 요약을 출력합니다. + +패리티 단편화, 확인 없이 블록이 얼마나 오래되었는지, 그리고 +스크럽 중에 발생한 모든 기록된 무단 오류에 대한 정보를 포함합니다. + +제시된 정보는 마지막으로 `sync`를 실행했을 때를 나타냅니다. +나중에 수정된 내용은 고려되지 않습니다. + +bad 블록이 감지되면 해당 블록 번호가 나열됩니다. +이들을 수정하려면 `fix -e` 명령을 사용할 수 있습니다. + +또한 각 블록이 마지막으로 스크럽되거나 동기화된 시간을 나타내는 +그래프를 보여줍니다. 스크럽된 블록은 '*', 동기화되었지만 아직 +스크럽되지 않은 블록은 'o'로 표시됩니다. + +아무것도 수정되지 않습니다. + +5.2 smart +--------- + +시스템의 모든 디스크에 대한 SMART 보고서를 출력합니다. + +향후 1년 동안의 실패 확률 추정치를 포함하여, 의심스러운 속성을 +보이는 디스크의 유지 보수 교체를 계획할 수 있습니다. + +이 확률 추정치는 다음에서 사용 가능한 Backblaze 데이터와 디스크의 +SMART 속성을 상호 연관시켜 얻습니다: + + https://www.backblaze.com/hard-drive-test-data.html + +SMART가 디스크가 실패하고 있다고 보고하면, 해당 디스크에 대해 +`FAIL` 또는 `PREFAIL`이 출력되며, SnapRAID는 오류를 반환하며 종료됩니다. +이 경우, 디스크의 즉각적인 교체가 강력히 권장됩니다. + +다른 가능한 상태 문자열은 다음과 같습니다: + logfail - 과거에 일부 속성이 임계값보다 낮았습니다. + logerr - 장치 오류 로그에 오류가 포함되어 있습니다. + selferr - 장치 자체 테스트 로그에 오류가 포함되어 있습니다. + + -v, --verbose 옵션이 지정되면, 더 깊은 통계 분석이 제공됩니다. +이 분석은 더 많거나 적은 패리티가 필요한지 결정하는 데 도움이 될 수 있습니다. + +이 명령은 `smartctl` 도구를 사용하며, 모든 장치에서 `smartctl -a`를 +실행하는 것과 동일합니다. + +장치가 올바르게 자동 감지되지 않으면, 설정 파일에서 `smartctl` 옵션을 +사용하여 사용자 정의 명령을 지정할 수 있습니다. + +아무것도 수정되지 않습니다. + +5.3 probe +--------- + +시스템의 모든 디스크의 POWER 상태를 출력합니다. + +`Standby`는 디스크가 회전하지 않음을 의미합니다. `Active`는 +디스크가 회전하고 있음을 의미합니다. + +이 명령은 `smartctl` 도구를 사용하며, 모든 장치에서 `smartctl -n standby -i`를 +실행하는 것과 동일합니다. + +장치가 올바르게 자동 감지되지 않으면, 설정 파일에서 `smartctl` 옵션을 +사용하여 사용자 정의 명령을 지정할 수 있습니다. + +아무것도 수정되지 않습니다. + +5.4 up +------ + +어레이의 모든 디스크를 회전시킵니다(spin up). + + -d, --filter-disk 옵션을 사용하여 특정 디스크만 회전시킬 수 있습니다. + +모든 디스크를 동시에 회전시키려면 많은 전력이 필요합니다. +전원 공급 장치가 이를 지탱할 수 있는지 확인하십시오. + +아무것도 수정되지 않습니다. + +5.5 down +-------- + +어레이의 모든 디스크를 회전 중지합니다(spin down). + +이 명령은 `smartctl` 도구를 사용하며, 모든 장치에서 `smartctl -s standby,now`를 +실행하는 것과 동일합니다. + + -d, --filter-disk 옵션을 사용하여 특정 디스크만 회전 중지할 수 있습니다. + +오류 발생 시 자동으로 회전 중지하려면, 다른 명령과 함께 -s, --spin-down-on-error +옵션을 사용할 수 있습니다. 이는 오류 발생 시 수동으로 `down`을 실행하는 것과 +동일합니다. + +아무것도 수정되지 않습니다. + +5.6 diff +-------- + +마지막 `sync` 이후 수정되어 패리티 데이터를 재계산해야 하는 모든 파일을 +나열합니다. + +이 명령은 파일 데이터를 확인하지 않고, 파일 타임스탬프, 크기 및 +아이노드(inode)만 확인합니다. + +모든 변경된 파일을 나열한 후, 다음과 같이 그룹화된 변경 사항 요약이 +제시됩니다: + equal - 이전과 변경되지 않은 파일. + added - 이전에 없던 추가된 파일. + removed - 제거된 파일. + updated - 크기 또는 타임스탬프가 다른 파일, 즉 수정된 파일. + moved - 동일한 디스크의 다른 디렉토리로 이동된 파일. + 이들은 이름, 크기, 타임스탬프 및 아이노드가 동일하지만 + 디렉토리가 다른 것으로 식별됩니다. + copied - 동일하거나 다른 디스크에 복사된 파일. 다른 디스크로 + 실제로 이동된 경우 `removed`에도 포함된다는 점에 유의하십시오. + 이들은 이름, 크기 및 타임스탬프가 동일한 것으로 식별됩니다. + 하위 초 타임스탬프(sub-second timestamp)가 0인 경우, + 이름뿐만 아니라 전체 경로가 일치해야 합니다. + restored - 아이노드는 다르지만 이름, 크기 및 타임스탬프가 일치하는 파일. + 이들은 일반적으로 삭제 후 복원된 파일입니다. + +`sync`가 필요한 경우, 프로세스 반환 코드는 기본 0 대신 2입니다. +반환 코드 1은 일반적인 오류 조건에 사용됩니다. + +아무것도 수정되지 않습니다. + +5.7 sync +-------- + +패리티 정보를 업데이트합니다. 디스크 어레이의 모든 수정된 파일을 +읽고 해당 패리티 데이터를 업데이트합니다. + +이미 수행된 작업을 잃지 않고 Ctrl+C를 눌러 언제든지 이 프로세스를 +중지할 수 있습니다. +다음 실행 시 `sync` 프로세스는 중단된 곳에서 재개됩니다. + +이 프로세스 중에 무단 또는 입출력 오류가 발견되면, +해당 블록은 bad로 표시됩니다. + +파일은 경로 및/또는 아이노드로 식별되며 크기와 타임스탬프로 +확인됩니다. +파일 크기 또는 타임스탬프가 다르면 전체 파일에 대해 패리티 데이터가 +재계산됩니다. +파일이 동일한 디스크에서 이동되거나 이름이 변경되고 동일한 아이노드를 +유지하면 패리티는 재계산되지 않습니다. +파일이 다른 디스크로 이동되면 패리티는 재계산되지만, 이전에 계산된 +해시 정보는 유지됩니다. + +`content` 및 `parity` 파일은 필요한 경우 수정됩니다. +어레이의 파일은 수정되지 않습니다. + +5.8 scrub +--------- + +어레이를 스크럽하여 데이터 및 패리티 디스크의 무단 또는 입출력 오류를 +확인합니다. + +각 호출은 이전에 10일 이내에 스크럽된 데이터를 제외하고 어레이의 +약 8%를 확인합니다. +이는 일주일에 한 번 스크럽하면 모든 데이터 비트가 적어도 3개월마다 +한 번씩 확인됨을 의미합니다. + + -p, --plan 옵션을 사용하여 다른 스크럽 계획 또는 양을 정의할 수 있으며, +다음 값을 허용합니다: +bad - bad로 표시된 블록 스크럽. +new - 동기화되었지만 아직 스크럽되지 않은 블록 스크럽. +full - 모든 것 스크럽. +0-100 - 지정된 비율의 블록 스크럽. + +백분율 양을 지정하면, -o, --older-than 옵션을 사용하여 블록이 +얼마나 오래되었는지 정의할 수도 있습니다. +가장 오래된 블록이 먼저 스크럽되어 최적의 확인을 보장합니다. +동기화되었지만 아직 스크럽되지 않은 블록만 스크럽하려면, +`-p new` 옵션을 사용하십시오. + +스크럽 상태의 세부 정보를 얻으려면 `status` 명령을 사용하십시오. + +발견된 모든 무단 또는 입출력 오류에 대해, 해당 블록은 `content` 파일에 +bad로 표시됩니다. +이러한 bad 블록은 `status`에 나열되며 `fix -e`로 수정할 수 있습니다. +수정 후, 다음 스크럽 시에 다시 확인되며, 수정된 것으로 발견되면 bad +표시는 제거됩니다. +bad 블록만 스크럽하려면 `scrub -p bad` 명령을 사용할 수 있습니다. + +동기화되지 않은 데이터로 인한 보고된 오류를 피하기 위해 동기화된 +어레이에서만 `scrub`을 실행하는 것이 좋습니다. 이러한 오류는 무단 +오류가 아닌 것으로 인식되며, 블록은 bad로 표시되지 않지만, +이러한 오류는 명령의 출력에 보고됩니다. + +`content` 파일은 각 블록의 마지막 확인 시간을 업데이트하고 bad 블록을 +표시하기 위해 수정됩니다. +`parity` 파일은 수정되지 않습니다. +어레이의 파일은 수정되지 않습니다. + +5.9 fix +------- + +모든 파일과 패리티 데이터를 수정합니다. + +모든 파일과 패리티 데이터는 마지막 `sync`에 저장된 스냅샷 +상태와 비교됩니다. +차이가 발견되면 저장된 스냅샷으로 되돌려집니다. + +**경고!** `fix` 명령은 오류와 의도적인 수정 사이를 구별하지 +않습니다. 파일 상태를 무조건 마지막 `sync`로 되돌립니다. + +다른 옵션이 지정되지 않으면 전체 어레이가 처리됩니다. +필터 옵션을 사용하여 처리할 파일 또는 디스크의 하위 집합을 선택하십시오. + +`sync` 및 `scrub` 중에 bad로 표시된 블록만 수정하려면, +-e, --filter-error 옵션을 사용하십시오. +다른 필터 옵션과 달리, 이 옵션은 최신 `sync` 이후 변경되지 않은 +파일에만 수정을 적용합니다. + +SnapRAID는 수정할 수 없는 모든 파일에 `.unrecoverable` 확장자를 +추가하여 이름을 변경합니다. + +수정하기 전에, 전체 어레이를 스캔하여 마지막 `sync` 이후 이동된 +파일을 찾습니다. +이 파일들은 이름과 디렉토리를 무시하고 타임스탬프로 식별되며, +필요한 경우 복구 프로세스에 사용됩니다. +일부 파일을 어레이 외부로 이동한 경우, -i, --import 옵션을 사용하여 +추가로 스캔할 디렉토리를 지정할 수 있습니다. + +파일은 아이노드가 아닌 경로로만 식별됩니다. + +`content` 파일은 수정되지 않습니다. +`parity` 파일은 필요한 경우 수정됩니다. +어레이의 파일은 필요한 경우 수정됩니다. + +5.10 check +---------- + +모든 파일과 패리티 데이터를 확인합니다. + +`fix`처럼 작동하지만, 복구를 시뮬레이션할 뿐이며 어레이에 +어떤 변경 사항도 기록되지 않습니다. + +이 명령은 주로 복구 프로세스 후 또는 기타 특별한 조건에서와 같이 +수동 확인을 위한 것입니다. +주기적이고 예약된 확인을 위해서는 `scrub`을 사용하십시오. + + -a, --audit-only 옵션을 사용하면 파일 데이터만 확인하고 +패리티 데이터는 무시하여 실행 속도를 높일 수 있습니다. + +파일은 아이노드가 아닌 경로로만 식별됩니다. + +아무것도 수정되지 않습니다. + +5.11 list +--------- + +마지막 `sync` 시점에 어레이에 포함된 모든 파일을 나열합니다. + + -v 또는 --verbose를 사용하면 하위 초 시간도 표시됩니다. + +아무것도 수정되지 않습니다. + +5.12 dup +-------- + +모든 중복 파일을 나열합니다. 두 파일의 해시가 일치하면 동일한 것으로 +간주됩니다. 파일 데이터는 읽지 않고, 미리 계산된 해시만 +사용됩니다. + +아무것도 수정되지 않습니다. + +5.13 pool +--------- + +`pooling` 디렉토리에서 디스크 어레이의 모든 파일에 대한 가상 뷰를 +생성하거나 업데이트합니다. + +파일은 복사되지 않고 심볼릭 링크를 사용하여 연결됩니다. + +업데이트 시, 모든 기존 심볼릭 링크와 빈 하위 디렉토리는 삭제되고 +어레이의 새 뷰로 대체됩니다. 다른 일반 파일은 제자리에 남습니다. + +풀 디렉토리 외부에서는 아무것도 수정되지 않습니다. + +5.14 devices +------------ + +어레이에서 사용되는 저수준(low-level) 장치를 출력합니다. + +이 명령은 어레이의 장치 연결을 표시하며, 주로 스크립트 인터페이스를 +위한 것입니다. + +처음 두 열은 저수준 장치 ID 및 경로입니다. +다음 두 열은 고수준(high-level) 장치 ID 및 경로입니다. +마지막 열은 어레이의 디스크 이름입니다. + +대부분의 경우, 어레이의 각 디스크에 대해 하나의 저수준 장치가 +있지만, 일부 더 복잡한 구성에서는 단일 어레이 디스크에 의해 사용되는 +여러 저수준 장치가 있을 수 있습니다. + +아무것도 수정되지 않습니다. + +5.15 touch +---------- + +하위 초 타임스탬프가 0으로 설정된 모든 파일에 임의의 하위 초 타임스탬프를 +설정합니다. + +이는 타임스탬프를 거의 고유하게 만들어 가능한 중복을 줄이므로, +SnapRAID가 이동되거나 복사된 파일을 인식하는 능력을 향상시킵니다. + +더 구체적으로, 하위 초 타임스탬프가 0이 아닌 경우, 이동되거나 복사된 +파일은 이름, 크기 및 타임스탬프가 일치하면 그렇게 식별됩니다. +하위 초 타임스탬프가 0인 경우, 전체 경로, 크기 및 타임스탬프가 +모두 일치하는 경우에만 복사본으로 간주됩니다. + +초 단위 정밀도의 타임스탬프는 수정되지 않으므로, 파일의 모든 날짜와 +시간은 보존됩니다. + +5.16 rehash +----------- + +전체 어레이의 재해시(rehash)를 예약합니다. + +이 명령은 사용되는 해시 종류를 변경하며, 일반적으로 32비트 시스템에서 +64비트 시스템으로 업그레이드할 때 MurmurHash3에서 더 빠른 SpookyHash로 +전환하기 위해 사용됩니다. + +이미 최적의 해시를 사용하고 있다면, 이 명령은 아무것도 하지 않고 +조치가 필요하지 않음을 알려줍니다. + +재해시는 즉시 수행되지 않고 `sync` 및 `scrub` 중에 점진적으로 +진행됩니다. + +`status`를 사용하여 재해시 상태를 확인할 수 있습니다. + +재해시 중에도 SnapRAID는 전체 기능을 유지하며, 유일한 예외는 +`dup`가 다른 해시를 사용하는 중복 파일을 감지할 수 없다는 것입니다. + + +6 OPTIONS +========= + +SnapRAID는 다음 옵션을 제공합니다: + + -c, --conf CONFIG + 사용할 설정 파일을 선택합니다. 지정하지 않으면 Unix에서는 + `/usr/local/etc/snapraid.conf` 파일이 존재하면 사용하고, + 그렇지 않으면 `/etc/snapraid.conf`를 사용합니다. + Windows에서는 `snapraid.exe`와 같은 디렉토리에 있는 + `snapraid.conf` 파일을 사용합니다. + + -f, --filter PATTERN + `check` 및 `fix`에서 처리할 파일을 필터링합니다. + 지정된 패턴과 일치하는 파일만 처리됩니다. + 이 옵션은 여러 번 사용될 수 있습니다. + 패턴 사양에 대한 자세한 내용은 PATTERN 섹션을 참조하십시오. + Unix에서는 글로빙 문자가 사용되는 경우 따옴표로 묶어야 합니다. + 이 옵션은 `check` 및 `fix`에서만 사용할 수 있습니다. + `sync` 및 `scrub`은 항상 전체 어레이를 처리하므로 사용할 수 없습니다. + + -d, --filter-disk NAME + `check`, `fix`, `up`, 및 `down`에서 처리할 디스크를 필터링합니다. + 설정 파일에 정의된 디스크 이름을 지정해야 합니다. + 또한 `parity`, `2-parity`, `3-parity` 등의 이름으로 패리티 디스크를 + 지정하여 특정 패리티 디스크로 작업을 제한할 수 있습니다. + 여러 --filter, --filter-disk, --filter-missing 옵션을 결합하면, + 모든 필터와 일치하는 파일만 선택됩니다. + 이 옵션은 여러 번 사용될 수 있습니다. + 이 옵션은 `check`, `fix`, `up`, 및 `down`에서만 사용할 수 있습니다. + `sync` 및 `scrub`은 항상 전체 어레이를 처리하므로 사용할 수 없습니다. + + -m, --filter-missing + `check` 및 `fix`에서 처리할 파일을 필터링합니다. + 어레이에서 누락되거나 삭제된 파일만 처리됩니다. + `fix`와 함께 사용하면, 이 옵션은 `undelete` 명령 역할을 합니다. + 여러 --filter, --filter-disk, --filter-missing 옵션을 결합하면, + 모든 필터와 일치하는 파일만 선택됩니다. + 이 옵션은 `check` 및 `fix`에서만 사용할 수 있습니다. + `sync` 및 `scrub`은 항상 전체 어레이를 처리하므로 사용할 수 없습니다. + + -e, --filter-error + `check` 및 `fix`에서 오류가 있는 파일을 처리합니다. + `status`에 나열된 대로 `sync` 및 `scrub` 중에 무단 또는 입출력 오류가 + 표시된 블록을 가진 파일만 처리합니다. + 이 옵션은 `check` 및 `fix`에서만 사용할 수 있습니다. + + -p, --plan PERC|bad|new|full + 스크럽 계획을 선택합니다. PERC가 0에서 100 사이의 숫자 값인 경우, + 스크럽할 블록의 백분율로 해석됩니다. + 백분율 대신 계획을 지정할 수 있습니다: + `bad`는 bad 블록을 스크럽하고, `new`는 아직 스크럽되지 않은 + 막 동기화된 블록을 스크럽하며, `full`은 모든 것을 스크럽합니다. + 이 옵션은 `scrub`에서만 사용할 수 있습니다. + + -o, --older-than DAYS + `scrub`에서 처리할 어레이의 가장 오래된 부분을 선택합니다. + DAYS는 블록이 스크럽되어야 하는 최소 일령(days)이며, + 기본값은 10입니다. + bad로 표시된 블록은 이 옵션에 관계없이 항상 스크럽됩니다. + 이 옵션은 `scrub`에서만 사용할 수 있습니다. + + -a, --audit-only + `check`에서 패리티 데이터를 확인하지 않고 파일의 해시를 + 확인합니다. + 파일 데이터만 확인하는 데 관심이 있다면, 이 옵션은 확인 프로세스의 + 속도를 상당히 높일 수 있습니다. + 이 옵션은 `check`에서만 사용할 수 있습니다. + + -h, --pre-hash + `sync`에서 패리티 계산 전에 추가 확인을 위해 모든 새 데이터에 대한 + 예비 해시 단계를 실행합니다. + 일반적으로 `sync`에서는 예비 해시가 수행되지 않으며, 새 데이터는 + 패리티 계산 직전에 처음 읽을 때 해시됩니다. + 이 프로세스는 모든 디스크가 회전하고 CPU가 바쁜, 시스템이 + 과부하 상태일 때 발생합니다. + 이는 기계의 극한 조건이며, 잠재된 하드웨어 문제가 있는 경우 + 데이터가 아직 해시되지 않았기 때문에 무단 오류가 감지되지 않고 + 지나갈 수 있습니다. + 이러한 위험을 피하려면, `pre-hash` 모드를 활성화하여 모든 데이터를 + 두 번 읽어 무결성을 보장할 수 있습니다. + 이 옵션은 또한 어레이 내에서 이동된 파일을 확인하여 이동 작업이 + 성공했는지 확인하고, 필요한 경우 계속 진행하기 전에 fix 작업을 + 실행할 수 있도록 합니다. + 이 옵션은 `sync`에서만 사용할 수 있습니다. + + -i, --import DIR + 지정된 디렉토리에서 마지막 `sync` 이후 어레이에서 삭제된 파일을 + 가져옵니다. + 이러한 파일이 여전히 있는 경우, 이들은 `check` 및 `fix`에 의해 + 복구 프로세스를 개선하는 데 사용될 수 있습니다. + 파일은 하위 디렉토리를 포함하여 읽히며, 이름에 관계없이 + 식별됩니다. + 이 옵션은 `check` 및 `fix`에서만 사용할 수 있습니다. + + -s, --spin-down-on-error + 오류 발생 시, 0이 아닌 상태 코드로 종료하기 전에 관리되는 모든 + 디스크를 회전 중지합니다. 이는 중단된 작업 후에 드라이브가 계속 + 활성 상태로 회전하는 것을 방지하여 불필요한 열 축적 및 전력 + 소비를 방지하는 데 도움이 됩니다. 명령이 실패하더라도 디스크가 + 안전하게 중지되도록 이 옵션을 사용하십시오. + + -w, --bw-limit RATE + 모든 디스크에 대한 전역 대역폭 제한을 적용합니다. RATE는 + 초당 바이트 수입니다. K, M, 또는 G와 같은 승수(예: --bw-limit 1G)를 + 지정할 수 있습니다. + + -A, --stats + 추가 정보를 보여주는 확장된 상태 보기를 활성화합니다. + 화면에는 두 개의 그래프가 표시됩니다: + 첫 번째 그래프는 각 디스크에 대한 버퍼링된 스트라이프 수와 함께 + 해당 디스크에서 현재 액세스 중인 파일의 경로를 보여줍니다. + 일반적으로 가장 느린 디스크는 사용 가능한 버퍼가 없으며, + 이는 달성 가능한 최대 대역폭을 결정합니다. + 두 번째 그래프는 지난 100초 동안 대기하는 데 소비된 시간의 + 백분율을 보여줍니다. 가장 느린 디스크가 대부분의 대기 시간을 + 유발할 것으로 예상되며, 다른 디스크는 버퍼링된 스트라이프를 + 사용할 수 있으므로 대기 시간이 거의 또는 전혀 없어야 합니다. + 이 그래프는 또한 해시 계산 및 RAID 계산을 위해 소비된 시간을 + 보여줍니다. + 모든 계산은 디스크 작업과 병렬로 실행됩니다. + 따라서 적어도 하나의 디스크에 대해 측정 가능한 대기 시간이 + 있는 한, 이는 CPU가 워크로드에 충분히 빠르다는 것을 나타냅니다. + + -Z, --force-zero + 이전에 0이 아니었던 크기가 0인 파일의 동기화라는 안전하지 않은 + 작업을 강제합니다. + SnapRAID가 이러한 조건을 감지하면, 이 옵션을 지정하지 않는 한 + 진행을 중지합니다. + 이는 시스템 충돌 후 일부 액세스된 파일이 잘렸을 때 쉽게 감지할 + 수 있도록 합니다. + 이는 ext3/ext4 파일 시스템을 사용하는 Linux에서 가능한 조건입니다. + 이 옵션은 `sync`에서만 사용할 수 있습니다. + + -E, --force-empty + 원래 디스크에 있던 모든 파일이 누락된 디스크의 동기화라는 + 안전하지 않은 작업을 강제합니다. + SnapRAID가 디스크에 원래 있던 모든 파일이 누락되거나 다시 + 작성되었음을 감지하면, 이 옵션을 지정하지 않는 한 진행을 + 중지합니다. + 이는 데이터 파일 시스템이 마운트되지 않았을 때 쉽게 감지할 + 수 있도록 합니다. + 이 옵션은 `sync`에서만 사용할 수 있습니다. + + -U, --force-uuid + UUID가 변경된 디스크를 사용하여 동기화, 확인 및 수정을 강제하는 + 안전하지 않은 작업입니다. + SnapRAID가 일부 디스크의 UUID가 변경되었음을 감지하면, + 이 옵션을 지정하지 않는 한 진행을 중지합니다. + 이는 디스크가 잘못된 마운트 지점에 마운트되었을 때 감지할 + 수 있도록 합니다. + 그러나 단일 패리티를 사용하는 경우 하나의 UUID 변경이 허용되며, + 여러 패리티를 사용하는 경우 더 많은 변경이 허용됩니다. 이는 + 복구 후 디스크를 교체할 때의 일반적인 경우이기 때문입니다. + 이 옵션은 `sync`, `check`, 또는 `fix`에서만 사용할 수 있습니다. + + -D, --force-device + 액세스할 수 없는 디스크 또는 동일한 물리적 장치에 있는 디스크로 + 수정을 강제하는 안전하지 않은 작업입니다. + 예를 들어, 두 개의 데이터 디스크를 잃고 첫 번째 디스크만 + 복구하기 위해 예비 디스크가 있는 경우, 두 번째 액세스할 수 없는 + 디스크를 무시할 수 있습니다. + 또는 이미 사용 중인 디스크에 남은 여유 공간에 디스크를 복구하려는 + 경우, 동일한 물리적 장치를 공유합니다. + 이 옵션은 `fix`에서만 사용할 수 있습니다. + + -N, --force-nocopy + `sync`, `check`, 및 `fix`에서 복사 감지 발견법(heuristic)을 + 비활성화합니다. + 이 옵션이 없으면 SnapRAID는 이름, 크기 및 타임스탬프와 같은 + 동일한 속성을 가진 파일이 동일한 데이터를 가진 복사본이라고 + 가정합니다. + 이는 한 디스크에서 다른 디스크로 복사되거나 이동된 파일을 + 식별하고, 이미 계산된 해시 정보를 재사용하여 무단 오류를 + 감지하거나 누락된 파일을 복구할 수 있도록 합니다. + 일부 드문 경우에 이 동작은 오탐(false positives) 또는 많은 + 해시 확인으로 인한 느린 프로세스를 초래할 수 있으며, 이 옵션을 + 사용하면 이러한 문제를 해결할 수 있습니다. + 이 옵션은 `sync`, `check`, 및 `fix`에서만 사용할 수 있습니다. + + -F, --force-full + `sync`에서 패리티의 전체 재계산을 강제합니다. + 이 옵션은 새 패리티 수준을 추가하거나, 더 최근의 패리티 데이터를 + 사용하여 이전 content 파일로 되돌렸을 때 사용할 수 있습니다. + 처음부터 패리티를 다시 생성하는 대신, 이 옵션을 사용하면 + content 파일에 있는 해시를 재사용하여 데이터를 검증하고 + 기존 패리티 데이터를 사용하여 `sync` 프로세스 중에 데이터 보호를 + 유지할 수 있습니다. + 이 옵션은 `sync`에서만 사용할 수 있습니다. + + -R, --force-realloc + `sync`에서 파일의 전체 재할당 및 패리티 재빌드를 강제합니다. + 이 옵션은 content 파일에 있는 해시를 재사용하여 데이터를 + 검증하면서 단편화를 제거하고 모든 파일을 완전히 재할당하는 데 + 사용될 수 있습니다. + 이 옵션은 `sync`에서만 사용할 수 있습니다. + **경고!** 이 옵션은 전문가 전용이며, 사용하지 않는 것이 + 강력히 권장됩니다. + `sync` 작업 중에는 데이터 보호가 없습니다. + + -l, --log FILE + 지정된 파일에 자세한 로그를 기록합니다. + 이 옵션을 지정하지 않으면 예상치 못한 오류가 화면에 출력되어, + 많은 오류가 발생하는 경우 과도한 출력이 발생할 수 있습니다. + -l, --log가 지정되면 SnapRAID가 중지되는 치명적인 오류만 + 화면에 출력됩니다. + 경로가 '>>'로 시작하면 파일이 추가 모드로 열립니다. + 이름의 '%D'와 '%T'는 YYYYMMDD 및 HHMMSS 형식의 날짜 및 + 시간으로 대체됩니다. Windows 배치 파일에서는 '%' 문자를 + 두 배로 늘려야 합니다(예: result-%%D.log). '>>'를 사용하려면 + 이름을 따옴표로 묶어야 합니다(예: `">>result.log"`). + 로그를 표준 출력 또는 표준 오류로 출력하려면 각각 `">&1"` 및 `">&2"`를 + 사용할 수 있습니다. + 로그 태그 설명은 snapraid_log.txt 파일 또는 man 페이지를 참조하십시오. + + -L, --error-limit NUMBER + 실행을 중지하기 전에 새로운 오류 제한을 설정합니다. + 기본적으로 SnapRAID는 100개 이상의 입출력 오류가 발생하면 중지됩니다. + 이는 디스크가 실패할 가능성이 있음을 나타냅니다. + 이 옵션은 `sync` 및 `scrub`에 영향을 미치며, 첫 번째 디스크 오류 + 세트 후에 계속 진행하여 작업을 완료하려고 시도할 수 있도록 + 허용합니다. + 그러나 `check` 및 `fix`는 항상 첫 번째 오류에서 중지됩니다. + + -S, --start BLKSTART + 지정된 블록 번호부터 처리를 시작합니다. + 이는 손상된 디스크의 경우 특정 블록을 다시 확인하거나 수정하는 데 + 유용할 수 있습니다. + 이 옵션은 주로 고급 수동 복구를 위한 것입니다. + + -B, --count BLKCOUNT + 지정된 수의 블록만 처리합니다. + 이 옵션은 주로 고급 수동 복구를 위한 것입니다. + + -C, --gen-conf CONTENT + 기존 content 파일에서 더미 설정 파일을 생성합니다. + 설정 파일은 표준 출력으로 작성되며 기존 파일을 덮어쓰지 않습니다. + 이 설정 파일에는 전체 시스템을 잃을 경우 디스크 마운트 지점을 + 재구성하는 데 필요한 정보도 포함되어 있습니다. + + -v, --verbose + 화면에 더 많은 정보를 출력합니다. + 한 번 지정하면 제외된 파일 및 추가 통계를 출력합니다. + 이 옵션은 로그 파일에는 영향을 미치지 않습니다. + + -q, --quiet + 화면에 더 적은 정보를 출력합니다. + 한 번 지정하면 진행률 표시줄을 제거하고, 두 번 지정하면 + 실행 중인 작업을 제거하며, 세 번 지정하면 정보 메시지를 + 제거하고, 네 번 지정하면 상태 메시지를 제거합니다. + 치명적인 오류는 항상 화면에 출력됩니다. + 이 옵션은 로그 파일에는 영향을 미치지 않습니다. + + -H, --help + 간단한 도움말 화면을 출력합니다. + + -V, --version + 프로그램 버전을 출력합니다. + + +7 CONFIGURATION +=============== + +SnapRAID는 디스크 어레이의 위치와 패리티 정보를 저장할 위치를 +알기 위해 설정 파일이 필요합니다. + +Unix에서는 `/usr/local/etc/snapraid.conf` 파일이 존재하면 사용하고, +그렇지 않으면 `/etc/snapraid.conf`를 사용합니다. +Windows에서는 `snapraid.exe`와 같은 디렉토리에 있는 +`snapraid.conf` 파일을 사용합니다. + +다음 옵션이 포함되어야 합니다(대소문자 구분): + +7.1 parity FILE [,FILE] ... +--------------------------- + +패리티 정보를 저장하는 데 사용할 파일을 정의합니다. +패리티는 RAID5와 유사하게 단일 디스크 오류로부터 보호를 +가능하게 합니다. + +여러 파일을 지정할 수 있으며, 이들은 서로 다른 디스크에 +있어야 합니다. +하나의 파일이 더 이상 커질 수 없을 때 다음 파일이 사용됩니다. +총 사용 가능한 공간은 어레이에서 가장 큰 데이터 디스크보다 +적어도 커야 합니다. + +나중에 추가 패리티 파일을 추가할 수 있지만, 순서를 바꾸거나 +제거할 수는 없습니다. + +패리티 디스크를 패리티용으로 예약하면 단편화되지 않아 성능이 +향상됩니다. + +Windows에서는 디스크가 가득 찼다는 경고를 피하기 위해 각 디스크에 +256MB가 사용되지 않은 채로 남습니다. + +이 옵션은 필수이며 한 번만 사용할 수 있습니다. + +7.2 (2,3,4,5,6)-parity FILE [,FILE] ... +--------------------------------------- + +추가 패리티 정보를 저장하는 데 사용할 파일을 정의합니다. + +지정된 각 패리티 수준에 대해 하나의 추가 보호 수준이 +활성화됩니다: + +* 2-parity는 RAID6 이중 패리티를 활성화합니다. +* 3-parity는 삼중 패리티를 활성화합니다. +* 4-parity는 쿼드(4중) 패리티를 활성화합니다. +* 5-parity는 펜타(5중) 패리티를 활성화합니다. +* 6-parity는 헥사(6중) 패리티를 활성화합니다. + +각 패리티 수준은 모든 이전 패리티 수준의 존재를 +필요로 합니다. + +`parity` 옵션과 동일한 고려 사항이 적용됩니다. + +이 옵션은 선택 사항이며 한 번만 사용할 수 있습니다. + +7.3 z-parity FILE [,FILE] ... +----------------------------- + +삼중 패리티를 저장하는 대체 파일 및 형식을 정의합니다. + +이 옵션은 '3-parity'의 대안이며, 주로 SSSE3 명령어 세트를 지원하지 +않는 ARM 또는 AMD Phenom, Athlon, Opteron과 같은 저가형 CPU를 +위한 것입니다. 이러한 경우 더 나은 성능을 제공합니다. + +이 형식은 ZFS RAIDZ3에서 사용되는 것과 유사하지만 더 빠릅니다. +ZFS와 마찬가지로 삼중 패리티 이상에서는 작동하지 않습니다. + +'3-parity'를 사용할 때 성능 향상을 위해 'z-parity' 형식을 사용하는 +것이 권장되는 경우 경고를 받게 됩니다. + +원하는 z-parity 또는 3-parity 파일로 설정 파일을 조정하고 +'fix'를 사용하여 다시 생성함으로써 한 형식에서 다른 형식으로 +변환할 수 있습니다. + +7.4 content FILE +---------------- + +디스크 어레이에 있는 모든 파일의 목록과 체크섬을 저장하는 데 사용할 +파일을 정의합니다. + +데이터, 패리티 또는 사용 가능한 다른 디스크에 배치할 수 있습니다. +데이터 디스크를 사용하는 경우, 이 파일은 `sync` 프로세스에서 +자동으로 제외됩니다. + +이 옵션은 필수이며 동일한 파일의 여러 복사본을 저장하기 위해 +여러 번 사용될 수 있습니다. + +사용된 각 패리티 디스크에 대해 최소한 하나의 복사본을 +저장해야 하며, 하나를 더 추가해야 합니다. 추가 복사본을 +사용해도 해롭지 않습니다. + +7.5 data NAME DIR +----------------- + +어레이의 데이터 디스크의 이름과 마운트 지점을 정의합니다. +NAME은 디스크를 식별하는 데 사용되며 고유해야 합니다. DIR은 +파일 시스템에서 디스크의 마운트 지점입니다. + +NAME을 고정된 상태로 유지하는 한, 필요에 따라 마운트 지점을 +변경할 수 있습니다. + +어레이의 각 데이터 디스크에 대해 하나의 옵션을 사용해야 합니다. + +나중에 설정 파일에서 직접 NAME을 변경하고 'sync' 명령을 +실행하여 디스크의 이름을 바꿀 수 있습니다. +이름 변경의 경우, 디스크의 저장된 UUID를 사용하여 연결됩니다. + +7.6 nohidden +------------ + +모든 숨겨진 파일 및 디렉토리를 제외합니다. +Unix에서는 숨겨진 파일은 '.'으로 시작하는 파일입니다. +Windows에서는 숨김 속성을 가진 파일입니다. + +7.7 exclude/include PATTERN +--------------------------- + +sync 프로세스에서 제외하거나 포함할 파일 또는 디렉토리 패턴을 +정의합니다. +모든 패턴은 지정된 순서대로 처리됩니다. + +일치하는 첫 번째 패턴이 `exclude` 패턴이면 파일은 제외됩니다. +`include` 패턴이면 파일은 포함됩니다. +일치하는 패턴이 없으면, 지정된 마지막 패턴이 `include`이면 +파일은 제외되고, `exclude`이면 포함됩니다. + +패턴 사양에 대한 자세한 내용은 PATTERN 섹션을 참조하십시오. + +이 옵션은 여러 번 사용될 수 있습니다. + +7.8 blocksize SIZE_IN_KIBIBYTES +------------------------------- + +패리티의 기본 블록 크기를 키비바이트(kibibyte) 단위로 정의합니다. +1키비바이트는 1024바이트입니다. + +기본 블록 크기는 256이며, 대부분의 경우에 작동해야 합니다. + +**경고!** 이 옵션은 전문가 전용이며, 이 값을 변경하지 않는 것이 +강력히 권장됩니다. 나중에 이 값을 변경하려면 전체 패리티를 +다시 생성해야 합니다! + +다른 블록 크기를 사용하는 이유는 수백만 개의 작은 파일이 많은 +경우입니다. + +각 파일에 대해, 몇 바이트만 있어도 전체 패리티 블록이 할당되며, +파일이 많으면 상당한 미사용 패리티 공간이 발생할 수 있습니다. +패리티 디스크를 완전히 채우면 데이터 디스크에 더 이상 파일을 +추가할 수 없습니다. +그러나 낭비된 패리티는 데이터 디스크 전체에 걸쳐 축적되지 않습니다. +데이터 디스크의 많은 파일로 인해 발생하는 낭비된 공간은 다른 +데이터 디스크가 아닌 해당 데이터 디스크의 데이터 양만 제한합니다. + +대략적으로, 각 파일에 대해 블록 크기의 절반이 낭비된다고 가정할 수 +있습니다. 예를 들어, 100,000개의 파일과 256KiB 블록 크기로 +12.8GB의 패리티가 낭비되며, 이는 데이터 디스크에서 12.8GB의 사용 가능한 +공간이 줄어들 수 있음을 의미합니다. + +`status`를 사용하여 각 디스크의 낭비된 공간의 양을 확인할 수 있습니다. +이는 데이터 디스크에 비워 두거나 어레이에 포함되지 않은 파일에 +사용해야 하는 공간의 양입니다. +이 값이 음수이면 패리티를 거의 채우고 있음을 의미하며, 여전히 +낭비할 수 있는 공간을 나타냅니다. + +이 문제를 피하려면 패리티에 대해 더 큰 파티션을 사용할 수 있습니다. +예를 들어, 패리티 파티션이 데이터 디스크보다 12.8GB 더 큰 경우, +각 데이터 디스크에 최대 100,000개의 파일을 낭비되는 공간 없이 +처리할 수 있는 충분한 추가 공간이 있습니다. + +Linux에서 더 큰 패리티 파티션을 얻는 트릭은 다음 명령으로 포맷하는 +것입니다: + + mkfs.ext4 -m 0 -T largefile4 DEVICE + +이로 인해 약 1.5%의 추가 공간이 발생하며, 4TB 디스크의 경우 약 60GB로, +낭비되는 공간 없이 각 데이터 디스크에 약 460,000개의 파일을 +허용합니다. + +7.9 hashsize SIZE_IN_BYTES +-------------------------- + +저장된 블록의 해시 크기를 바이트 단위로 정의합니다. + +기본 해시 크기는 16바이트(128비트)이며, 대부분의 경우에 작동해야 합니다. + +**경고!** 이 옵션은 전문가 전용이며, 이 값을 변경하지 않는 것이 +강력히 권장됩니다. 나중에 이 값을 변경하려면 전체 패리티를 +다시 생성해야 합니다! + +다른 해시 크기를 사용하는 이유는 시스템의 메모리가 제한적인 경우입니다. +경험상 SnapRAID는 어레이의 16TB 데이터당 일반적으로 1GiB의 RAM을 +필요로 합니다. + +구체적으로, 데이터의 해시를 저장하기 위해 SnapRAID는 대략 +TS*(1+HS)/BS 바이트의 RAM을 필요로 합니다. +여기서 TS는 디스크 어레이의 총 크기(바이트), BS는 블록 크기(바이트), +HS는 해시 크기(바이트)입니다. + +예를 들어, 4TB 디스크 8개, 블록 크기 256KiB +(1KiB = 1024바이트), 해시 크기 16인 경우 다음과 같습니다: + +RAM = (8 * 4 * 10^12) * (1+16) / (256 * 2^10) = 1.93 GiB + +해시 크기를 8로 전환하면 다음과 같습니다: + +RAM = (8 * 4 * 10^12) * (1+8) / (256 * 2^10) = 1.02 GiB + +블록 크기를 512로 전환하면 다음과 같습니다: + +RAM = (8 * 4 * 10^12) * (1+16) / (512 * 2^10) = 0.96 GiB + +해시 크기를 8로, 블록 크기를 512로 모두 전환하면 다음과 같습니다: + +RAM = (8 * 4 * 10^12) * (1+8) / (512 * 2^10) = 0.51 GiB + +7.10 autosave SIZE_IN_GIGABYTES +------------------------------- + +지정된 GB 양이 처리된 후 동기화 또는 스크럽 시 상태를 자동으로 저장합니다. +이 옵션은 기계 충돌 또는 기타 이벤트로 인해 중단된 경우 긴 `sync` +명령을 처음부터 다시 시작하는 것을 방지하는 데 유용합니다. + +7.11 temp_limit TEMPERATURE_CELSIUS +----------------------------------- + +허용되는 최대 디스크 온도를 섭씨로 설정합니다. 지정되면 SnapRAID는 +smartctl 도구를 사용하여 주기적으로 모든 디스크의 온도를 확인합니다. +SnapRAID가 작동하는 동안 현재 디스크 온도가 표시됩니다. +어떤 디스크라도 이 제한을 초과하면 모든 작업이 중지되고, 디스크는 +`temp_sleep` 옵션으로 정의된 기간 동안 회전 중지됩니다(대기 모드로 +전환됨). 절전 기간 후 작업이 재개되며, 온도 제한에 다시 도달하면 +다시 일시 중지될 수 있습니다. + +작동 중에 SnapRAID는 각 디스크의 가열 곡선을 분석하고 활동이 계속되면 +도달할 것으로 예상되는 장기 정상 온도를 추정합니다. +추정은 디스크 온도가 네 번 증가한 후에만 수행되어, 신뢰할 수 있는 +추세를 설정하기에 충분한 데이터 포인트가 확보되도록 합니다. +이 예측된 정상 온도는 현재 값 옆에 괄호 안에 표시되며, 시스템의 +냉각이 적절한지 평가하는 데 도움이 됩니다. 이 추정 온도는 정보 제공 +목적일 뿐이며 SnapRAID의 동작에는 영향을 미치지 않습니다. +프로그램의 동작은 오로지 실제 측정된 디스크 온도에 기반합니다. + +이 분석을 수행하려면 SnapRAID는 시스템 온도에 대한 참조가 필요합니다. +먼저 사용 가능한 하드웨어 센서에서 읽으려고 시도합니다. +시스템 센서에 액세스할 수 없는 경우, 실행 시작 시 측정된 가장 낮은 +디스크 온도를 대체 참조로 사용합니다. + +일반적으로 SnapRAID는 가장 뜨거운 디스크의 온도만 표시합니다. +모든 디스크의 온도를 표시하려면 -A 또는 --stats 옵션을 사용하십시오. + +7.12 temp_sleep TIME_IN_MINUTES +------------------------------- + +온도 제한에 도달했을 때의 대기 시간(분)을 설정합니다. 이 기간 동안 +디스크는 회전 중지 상태를 유지합니다. 기본값은 5분입니다. + +7.13 pool DIR +------------- + +`pool` 명령을 사용하여 디스크 어레이의 가상 뷰가 생성되는 풀링 +디렉토리를 정의합니다. + +디렉토리는 이미 존재해야 합니다. + +7.14 share UNC_DIR +------------------ + +디스크에 원격으로 액세스하는 데 필요한 Windows UNC 경로를 정의합니다. + +이 옵션이 지정되면 풀 디렉토리에 생성된 심볼릭 링크는 이 UNC 경로를 +사용하여 디스크에 액세스합니다. +이 옵션이 없으면 생성된 심볼릭 링크는 로컬 경로만 사용하며, 이는 +네트워크를 통해 풀 디렉토리를 공유하는 것을 허용하지 않습니다. + +심볼릭 링크는 지정된 UNC 경로를 사용하여 형성되며, `data` 옵션에 +지정된 디스크 이름이 추가되고, 마지막으로 파일 디렉토리와 이름이 +추가됩니다. + +이 옵션은 Windows에만 필요합니다. + +7.15 smartctl DISK/PARITY OPTIONS... +------------------------------------ + +각 디스크에 대한 SMART 속성을 얻기 위한 사용자 정의 smartctl 옵션을 +정의합니다. 이는 RAID 컨트롤러 및 일부 자동 감지할 수 없는 USB 디스크에 +필요할 수 있습니다. %s 자리 표시자는 장치 이름으로 대체되지만, +RAID 컨트롤러와 같은 고정된 장치에서는 선택 사항입니다. + +DISK는 `data` 옵션에 지정된 것과 동일한 디스크 이름입니다. +PARITY는 `parity`, `2-parity`, `3-parity`, `4-parity`, `5-parity`, +`6-parity`, 또는 `z-parity` 중 하나의 패리티 이름입니다. + +지정된 OPTIONS에서 `%s` 문자열은 장치 이름으로 대체됩니다. +RAID 컨트롤러의 경우 장치가 고정되어 있을 가능성이 높으므로 +`%s`를 사용할 필요가 없을 수 있습니다. + +가능한 옵션은 smartmontools 설명서를 참조하십시오: + + https://www.smartmontools.org/wiki/Supported_RAID-Controllers + https://www.smartmontools.org/wiki/Supported_USB-Devices + +예: + + smartctl parity -d sat %s + +7.16 smartignore DISK/PARITY ATTR [ATTR...] +------------------------------------------- + +디스크 실패 확률을 계산할 때 지정된 SMART 속성을 무시합니다. +이 옵션은 디스크가 특정 속성에 대해 특이하거나 오해의 소지가 있는 +값을 보고하는 경우에 유용합니다. + +DISK는 `data` 옵션에 지정된 것과 동일한 디스크 이름입니다. +PARITY는 `parity`, `2-parity`, `3-parity`, `4-parity`, `5-parity`, +`6-parity`, 또는 `z-parity` 중 하나의 패리티 이름입니다. +특수 값 *는 모든 디스크에서 속성을 무시하는 데 사용될 수 있습니다. + +예를 들어, 모든 디스크에서 `Current Pending Sector Count` 속성을 +무시하려면: + + smartignore * 197 + +첫 번째 패리티 디스크에서만 무시하려면: + + smartignore parity 197 + +7.17 Examples +------------- + +Unix의 일반적인 설정 예는 다음과 같습니다: + + parity /mnt/diskp/snapraid.parity + content /mnt/diskp/snapraid.content + content /var/snapraid/snapraid.content + data d1 /mnt/disk1/ + data d2 /mnt/disk2/ + data d3 /mnt/disk3/ + exclude /lost+found/ + exclude /tmp/ + smartctl d1 -d sat %s + smartctl d2 -d usbjmicron %s + smartctl parity -d areca,1/1 /dev/sg0 + smartctl 2-parity -d areca,2/1 /dev/sg0 + +Windows의 일반적인 설정 예는 다음과 같습니다: + + parity E:\snapraid.parity + content E:\snapraid.content + content C:\snapraid\snapraid.content + data d1 G:\array\ + data d2 H:\array\ + data d3 I:\array\ + exclude Thumbs.db + exclude \$RECYCLE.BIN + exclude \System Volume Information + smartctl d1 -d sat %s + smartctl d2 -d usbjmicron %s + smartctl parity -d areca,1/1 /dev/arcmsr0 + smartctl 2-parity -d areca,2/1 /dev/arcmsr0 + + +8 PATTERN +========= + +패턴은 처리에서 제외하거나 포함할 파일의 하위 집합을 선택하는 데 +사용됩니다. + +네 가지 유형의 패턴이 있습니다: + + FILE + FILE이라는 이름의 모든 파일을 선택합니다. *, ?와 같은 글로빙 + 문자와 [a-z]와 같은 문자 클래스를 사용할 수 있습니다. + 이 패턴은 디렉토리가 아닌 파일에만 적용됩니다. + + DIR/ + DIR이라는 이름의 모든 디렉토리와 그 안의 모든 것을 선택합니다. + *, ?와 같은 글로빙 문자를 사용할 수 있습니다. + 이 패턴은 파일이 아닌 디렉토리에만 적용됩니다. + + /PATH/FILE + 정확히 지정된 파일 경로를 선택합니다. *, ?와 같은 글로빙 + 문자를 사용할 수 있지만, 디렉토리 슬래시와는 절대 일치하지 않습니다. + 이 패턴은 디렉토리가 아닌 파일에만 적용됩니다. + + /PATH/DIR/ + 정확히 지정된 디렉토리 경로와 그 안의 모든 것을 선택합니다. + *, ?와 같은 글로빙 문자를 사용할 수 있지만, 디렉토리 슬래시와는 + 절대 일치하지 않습니다. + 이 패턴은 파일이 아닌 디렉토리에만 적용됩니다. + + /로 시작하는 절대 경로를 지정하면 로컬 파일 시스템의 루트 디렉토리가 +아닌 어레이 루트 디렉토리에 적용됩니다. + +Windows에서는 정방향 슬래시 / 대신 역슬래시 \를 사용할 수 있습니다. +Windows 시스템 디렉토리, 접합점(junctions), 마운트 지점 및 기타 +Windows 특수 디렉토리는 파일로 취급됩니다. 즉, 이들을 제외하려면 +디렉토리 규칙이 아닌 파일 규칙을 사용해야 합니다. + +파일 이름에 '*', '?', '[', +또는 ']' 문자가 포함된 경우, 글로빙 문자로 해석되는 것을 피하기 위해 +이스케이프해야 합니다. Unix에서는 이스케이프 문자가 '\'이고, +Windows에서는 '^'입니다. +패턴이 명령줄에 있는 경우, 명령 셸에 의해 해석되는 것을 피하기 위해 +이스케이프 문자를 두 배로 늘려야 합니다. + +설정 파일에서는 처리할 파일을 필터링하기 위해 다른 전략을 사용할 수 +있습니다. +가장 간단한 접근 방식은 원하지 않는 모든 파일과 디렉토리를 제거하기 +위해 `exclude` 규칙만 사용하는 것입니다. 예를 들어: + + # `*.unrecoverable`이라는 이름의 모든 파일 제외 + exclude *.unrecoverable + # 루트 디렉토리 `/lost+found` 제외 + exclude /lost+found/ + # `tmp`라는 이름의 모든 하위 디렉토리 제외 + exclude tmp/ + +반대 접근 방식은 `include` 규칙만 사용하여 처리하려는 파일만 +정의하는 것입니다. 예를 들어: + + # 일부 디렉토리만 포함 + include /movies/ + include /musics/ + include /pictures/ + +최종 접근 방식은 `exclude` 및 `include` 규칙을 혼합하는 것입니다. +이 경우 규칙의 순서가 중요합니다. 앞선 규칙이 뒤의 규칙보다 +우선합니다. +단순화를 위해 모든 `exclude` 규칙을 먼저 나열한 다음 모든 +`include` 규칙을 나열할 수 있습니다. 예를 들어: + + # `*.unrecoverable`이라는 이름의 모든 파일 제외 + exclude *.unrecoverable + # `tmp`라는 이름의 모든 하위 디렉토리 제외 + exclude tmp/ + # 일부 디렉토리만 포함 + include /movies/ + include /musics/ + include /pictures/ + +명령줄에서 -f 옵션을 사용할 때 `include` 패턴만 사용할 수 있습니다. +예를 들어: + + # .mp3 파일만 확인. + # Unix에서는 셸에 의한 글로빙 확장을 피하기 위해 따옴표를 사용합니다. + snapraid -f "*.mp3" check + +Unix에서는 명령줄에서 글로빙 문자를 사용할 때 셸이 확장하는 것을 +방지하기 위해 따옴표로 묶어야 합니다. + + +9 CONTENT +========= + +SnapRAID는 content 파일에 파일 목록과 체크섬을 저장합니다. + +이것은 디스크 어레이에 있는 모든 파일의 목록과 무결성을 확인하기 위한 +모든 체크섬을 나열하는 이진 파일입니다. + +이 파일은 `sync` 및 `scrub` 명령에 의해 읽고 쓰여지며, +`fix`, `check`, 및 `status` 명령에 의해 읽혀집니다. + + +10 PARITY +========= + +SnapRAID는 패리티 파일에 어레이의 패리티 정보를 저장합니다. + +이들은 `content` 파일에 정의된 모든 블록의 계산된 패리티를 포함하는 +이진 파일입니다. + +이 파일들은 `sync` 및 `fix` 명령에 의해 읽고 쓰여지며, +`scrub` 및 `check` 명령에 의해서만 읽혀집니다. + + +11 ENCODING +=========== + +Unix의 SnapRAID는 인코딩을 무시합니다. 파일 시스템에서 사용되는 +것과 동일한 인코딩으로 파일 이름을 읽고 저장합니다. + +Windows에서는 파일 시스템에서 읽은 모든 이름이 UTF-8 형식으로 +변환되고 처리됩니다. + +파일 이름이 올바르게 출력되도록 하려면, `chcp 65001` 명령으로 +Windows 콘솔을 UTF-8 모드로 설정하고 콘솔 글꼴로 `Lucida Console`과 +같은 TrueType 글꼴을 사용해야 합니다. +이는 출력되는 파일 이름에만 영향을 미치며, 콘솔 출력을 파일로 +리디렉션하는 경우 결과 파일은 항상 UTF-8 형식입니다. + + +12 COPYRIGHT +============ + +This file is Copyright (C) 2025 Andrea Mazzoleni + + +13 SEE ALSO +=========== + +snapraid_log(1), rsync(1) diff --git a/snapraid-sv.d b/snapraid-sv.d new file mode 100644 index 00000000..e12e10fd --- /dev/null +++ b/snapraid-sv.d @@ -0,0 +1,1451 @@ +Name{number} + snapraid - SnapRAID Säkerhetskopiering för Disk-arrayer + +Synopsis + :snapraid [-c, --conf CONFIG] + : [-f, --filter PATTERN] [-d, --filter-disk NAME] + : [-m, --filter-missing] [-e, --filter-error] + : [-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|probe|up|down|diff|sync|scrub|fix|check + : |list|dup|pool|devices|touch|rehash + + :snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT] + +Beskrivning + SnapRAID är ett säkerhetskopieringsprogram designat för disk-arrayer, + som lagrar paritetsinformation för dataåterställning vid upp till sex + diskfel. + + SnapRAID är i första hand avsett för hemmamediabibliotek med stora, + sällan ändrade filer, och erbjuder flera funktioner: + + * Du kan använda diskar som redan är fyllda med filer utan + att behöva formatera om dem, och du får åtkomst till dem som vanligt. + * All din data hashberäknas för att säkerställa dataintegritet och + förhindra tyst korruption. + * När antalet felaktiga diskar överskrider paritetsantalet, + begränsas dataförlusten till de drabbade diskarna; data på + andra diskar förblir åtkomlig. + * Om du oavsiktligt raderar filer på en disk är återställning + möjlig. + * Diskar kan ha olika storlekar. + * Du kan lägga till diskar när som helst. + * SnapRAID låser inte in din data; du kan sluta använda det + när som helst utan omformatering eller dataflytt. + * För att få åtkomst till en fil behöver endast en enda disk snurra, + vilket sparar ström och minskar buller. + + För mer information, besök den officiella SnapRAID-webbplatsen: + + :https://www.snapraid.it/ + +Begränsningar + SnapRAID är en hybrid mellan ett RAID- och ett säkerhetskopieringsprogram, + som syftar till att kombinera de bästa fördelarna med båda. Den har dock + vissa begränsningar som du bör överväga innan du använder den. + + Huvudbegränsningen är att om en disk misslyckas och du inte nyligen har + synkat, kanske du inte kan återställa fullständigt. + Mer specifikt, kanske du inte kan återställa upp till storleken på + de ändrade eller raderade filerna sedan den senaste synkroniseringsoperationen. + Detta inträffar även om de ändrade eller raderade filerna inte finns på + den felaktiga disken. Det är därför SnapRAID passar bättre för + data som sällan ändras. + + Å andra sidan förhindrar nyligen tillagda filer inte återställning av redan + befintliga filer. Du kommer bara att förlora de nyligen tillagda filerna om de + finns på den felaktiga disken. + + Andra SnapRAID-begränsningar är: + + * Med SnapRAID har du fortfarande separata filsystem för varje disk. + Med RAID får du ett enda stort filsystem. + * SnapRAID stripas inte data. + Med RAID får du en hastighetsökning med striping. + * SnapRAID stöder inte återställning i realtid. + Med RAID behöver du inte sluta arbeta när en disk misslyckas. + * SnapRAID kan bara återställa data från ett begränsat antal diskfel. + Med en säkerhetskopia kan du återställa från ett fullständigt + fel på hela disk-arrayen. + * Endast filnamn, tidsstämplar, symboliska länkar och hårda länkar sparas. + Behörigheter, ägarskap och utökade attribut sparas inte. + +Kom igång + För att använda SnapRAID måste du först välja en disk i din disk-array + som ska dediceras till `parity`-information. Med en disk för paritet, + kommer du att kunna återställa från ett enda diskfel, liknande RAID5. + + Om du vill återställa från fler diskfel, liknande RAID6, + måste du reservera ytterligare diskar för paritet. Varje ytterligare + paritetsdisk möjliggör återställning från ett diskfel till. + + Som paritetsdiskar måste du välja de största diskarna i arrayen, + eftersom paritetsinformationen kan växa till storleken av den största + datadisken i arrayen. + + Dessa diskar kommer att dediceras till att lagra `parity`-filerna. + Du bör inte lagra din data på dem. + + Sedan måste du definiera de `data`-diskar som du vill skydda + med SnapRAID. Skyddet är mer effektivt om dessa diskar + innehåller data som sällan ändras. Av denna anledning är det bäst att + INTE inkludera Windows C:\-disken eller Unix /home, /var och /tmp + katalogerna. + + Listan över filer sparas i `content`-filerna, som vanligtvis + lagras på data-, paritets- eller startdiskarna. + Denna fil innehåller detaljerna för din säkerhetskopia, inklusive alla + checksummor för att verifiera dess integritet. + `content`-filen lagras i flera kopior, och varje kopia måste + finnas på en annan disk för att säkerställa att, även vid flera + diskfel, minst en kopia är tillgänglig. + + Anta till exempel att du bara är intresserad av en paritetsnivå + av skydd, och dina diskar finns på: + + :/mnt/diskp <- vald disk för paritet + :/mnt/disk1 <- första disken att skydda + :/mnt/disk2 <- andra disken att skydda + :/mnt/disk3 <- tredje disken att skydda + + Du måste skapa konfigurationsfilen /etc/snapraid.conf med + följande alternativ: + + :parity /mnt/diskp/snapraid.parity + :content /var/snapraid/snapraid.content + :content /mnt/disk1/snapraid.content + :content /mnt/disk2/snapraid.content + :data d1 /mnt/disk1/ + :data d2 /mnt/disk2/ + :data d3 /mnt/disk3/ + + Om du använder Windows bör du använda Windows sökvägsformat, med + enhetsbeteckningar och omvända snedstreck istället för snedstreck. + + :parity E:\snapraid.parity + :content C:\snapraid\snapraid.content + :content F:\array\snapraid.content + :content G:\array\snapraid.content + :data d1 F:\array\ + :data d2 G:\array\ + :data d3 H:\array\ + + Om du har många diskar och får slut på enhetsbeteckningar kan du montera + diskar direkt i undermappar. Se: + + :https://www.google.com/search?q=Windows+mount+point + + Vid denna punkt är du redo att köra kommandot `sync` för att bygga + paritetsinformationen. + + :snapraid sync + + Denna process kan ta flera timmar första gången, beroende på storleken + på datan som redan finns på diskarna. Om diskarna är tomma är + processen omedelbar. + + Du kan stoppa det när som helst genom att trycka Ctrl+C, och vid nästa körning + återupptas det där det avbröts. + + När detta kommando är klart är din data SÄKER. + + Nu kan du börja använda din array som du vill och periodiskt + uppdatera paritetsinformationen genom att köra kommandot `sync`. + + Skrubbning (Scrubbing) + För att periodiskt kontrollera data och paritet för fel kan du + köra kommandot `scrub`. + + :snapraid scrub + + Detta kommando jämför data i din array med den hash som beräknades + under kommandot `sync` för att verifiera integriteten. + + Varje körning av kommandot kontrollerar ungefär 8% av arrayen, exklusive data + som redan skrubbats under de föregående 10 dagarna. + Du kan använda alternativet -p, --plan för att specificera en annan mängd + och alternativet -o, --older-than för att specificera en annan ålder i dagar. + Till exempel, för att kontrollera 5% av arrayen för block äldre än 20 dagar, använd: + + :snapraid -p 5 -o 20 scrub + + Om tysta eller input/output-fel hittas under processen, + markeras de motsvarande blocken som dåliga i `content`-filen + och listas i kommandot `status`. + + :snapraid status + + För att fixa dem kan du använda kommandot `fix`, filtrera efter dåliga block med + alternativet -e, --filter-error: + + :snapraid -e fix + + Vid nästa `scrub` kommer felen att försvinna från `status`-rapporten + om de verkligen är fixade. För att göra det snabbare kan du använda -p bad för att skrubba + endast block markerade som dåliga. + + :snapraid -p bad scrub + + Att köra `scrub` på en osynkad array kan rapportera fel orsakade av + borttagna eller modifierade filer. Dessa fel rapporteras i `scrub`- + utdata, men de relaterade blocken markeras inte som dåliga. + + Poolning + Obs: Poolningsfunktionen som beskrivs nedan har ersatts av verktyget + mergefs, som nu är det rekommenderade alternativet för Linux-användare i + SnapRAID-communityt. Mergefs ger ett mer flexibelt och effektivt + sätt att poola flera enheter till en enda enhetlig monteringspunkt, + vilket möjliggör sömlös åtkomst till filer över din array utan att förlita sig + på symboliska länkar. Det integreras väl med SnapRAID för paritetsskydd + och används ofta i installationer som OpenMediaVault (OMV) + eller anpassade NAS-konfigurationer. + + För att visa alla filer i din array i samma katalogträd, + kan du aktivera funktionen `pooling`. Den skapar en skrivskyddad virtuell + vy av alla filer i din array med hjälp av symboliska länkar. + + Du kan konfigurera `pooling`-katalogen i konfigurationsfilen med: + + :pool /pool + + eller, om du använder Windows, med: + + :pool C:\pool + + och kör sedan kommandot `pool` för att skapa eller uppdatera den virtuella vyn. + + :snapraid pool + + Om du använder en Unix-plattform och vill dela denna katalog + över nätverket till antingen Windows- eller Unix-maskiner, bör du lägga till + följande alternativ till din /etc/samba/smb.conf: + + :# I den globala sektionen av smb.conf + :unix extensions = no + + :# I delningssektionen av smb.conf + :[pool] + :comment = Pool + :path = /pool + :read only = yes + :guest ok = yes + :wide links = yes + :follow symlinks = yes + + I Windows kräver delning av symboliska länkar över ett nätverk att klienter + löser dem på distans. För att aktivera detta måste du, förutom att dela pool-katalogen, + även dela alla diskar oberoende, med hjälp av de disk-namn + som definieras i konfigurationsfilen som delningspunkter. Du måste också specificera + i alternativet `share` i konfigurationsfilen den Windows UNC-sökväg som + fjärrklienter behöver använda för att få åtkomst till dessa delade diskar. + + Till exempel, om du arbetar från en server som heter `darkstar`, kan du använda + alternativen: + + :data d1 F:\array\ + :data d2 G:\array\ + :data d3 H:\array\ + :pool C:\pool + :share \\darkstar + + och dela följande kataloger över nätverket: + + :\\darkstar\pool -> C:\pool + :\\darkstar\d1 -> F:\array + :\\darkstar\d2 -> G:\array + :\\darkstar\d3 -> H:\array + + för att tillåta fjärrklienter att få åtkomst till alla filer på \\darkstar\pool. + + Du kan också behöva konfigurera fjärrklienter för att möjliggöra åtkomst till + fjärrsymboliska länkar med kommandot: + + :fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 + + Ångra radering (Undeleting) + SnapRAID fungerar mer som ett säkerhetskopieringsprogram än ett RAID-system, och det + kan användas för att återställa eller ångra radering av filer till deras tidigare tillstånd + med hjälp av alternativet -f, --filter: + + :snapraid fix -f FIL + + eller för en katalog: + + :snapraid fix -f KATALOG/ + + Du kan också använda det för att återställa endast oavsiktligt raderade filer inuti + en katalog med hjälp av alternativet -m, --filter-missing, som återställer + endast saknade filer, och lämnar alla andra orörda. + + :snapraid fix -m -f KATALOG/ + + Eller för att återställa alla raderade filer på alla enheter med: + + :snapraid fix -m + + Återställning + Det värsta har hänt, och du har förlorat en eller flera diskar! + + FÅ INTE PANIK! Du kommer att kunna återställa dem! + + Det första du måste göra är att undvika ytterligare ändringar i din disk-array. + Inaktivera alla fjärranslutningar till den och alla schemalagda processer, inklusive + alla schemalagda SnapRAID nattliga sync- eller scrub-körningar. + + Fortsätt sedan med följande steg. + + STEG 1 -> Omkonfigurera + Du behöver lite utrymme för att återställa, helst på ytterligare + reservdiskar, men en extern USB-disk eller fjärrdisk räcker. + + Ändra SnapRAID-konfigurationsfilen för att få alternativet `data` eller `parity` + för den felaktiga disken att peka på en plats med tillräckligt tomt + utrymme för att återställa filerna. + + Om till exempel disk `d1` har misslyckats, ändra från: + + :data d1 /mnt/disk1/ + + till: + + :data d1 /mnt/new_spare_disk/ + + Om disken som ska återställas är en paritetsdisk, uppdatera det lämpliga `parity`- + alternativet. + Om du har flera felaktiga diskar, uppdatera alla deras konfigurationsalternativ. + + STEG 2 -> Fixa + Kör kommandot fix och lagra loggen i en extern fil med: + + :snapraid -d NAMN -l fix.log fix + + Där NAMN är namnet på disken, till exempel `d1` i vårt tidigare exempel. + Om disken som ska återställas är en paritetsdisk, använd namnen `parity`, `2-parity`, + etc. + Om du har flera felaktiga diskar, använd flera -d-alternativ för att specificera alla + av dem. + + Detta kommando kommer att ta lång tid. + + Se till att du har några gigabyte ledigt för att lagra fix.log-filen. + Kör den från en disk med tillräckligt med ledigt utrymme. + + Nu har du återställt allt som är återställningsbart. Om vissa filer är delvis + eller helt icke-återställningsbara, kommer de att döpas om genom att lägga till tillägget + `.unrecoverable`. + + Du kan hitta en detaljerad lista över alla icke-återställningsbara block i fix.log-filen + genom att kontrollera alla rader som börjar med `unrecoverable:`. + + Om du inte är nöjd med återställningen kan du försöka igen hur många + gånger du vill. + + Om du till exempel har tagit bort filer från arrayen efter den senaste + `sync`, kan detta leda till att vissa filer inte återställs. + I detta fall kan du försöka igen `fix` med alternativet -i, --import, + specificera var dessa filer nu finns för att inkludera dem igen i + återställningsprocessen. + + Om du är nöjd med återställningen kan du fortsätta, + men notera att efter synkronisering kan du inte försöka igen kommandot `fix` + längre! + + STEG 3 -> Kontrollera + Som en försiktighetsåtgärd kan du nu köra ett `check`-kommando för att säkerställa att + allt är korrekt på den återställda disken. + + :snapraid -d NAMN -a check + + Där NAMN är namnet på disken, till exempel `d1` i vårt tidigare exempel. + + Alternativen -d och -a talar om för SnapRAID att endast kontrollera den specificerade disken + och ignorera all paritetsdata. + + Detta kommando kommer att ta lång tid, men om du inte är alltför försiktig, + kan du hoppa över det. + + STEG 4 -> Synkronisera + Kör kommandot `sync` för att synkronisera arrayen igen med den nya disken. + + :snapraid sync + + Om allt är återställt är detta kommando omedelbart. + +Kommandon + SnapRAID tillhandahåller några enkla kommandon som låter dig: + + * Skriva ut statusen för arrayen -> `status` + * Kontrollera diskarna -> `smart`, `probe`, `up`, `down` + * Göra en säkerhetskopia/ögonblicksbild -> `sync` + * Periodiskt kontrollera data -> `scrub` + * Återställa den senaste säkerhetskopian/ögonblicksbilden -> `fix`. + + Kommandon måste skrivas med gemener. + + status + Skriver ut en sammanfattning av tillståndet för disk-arrayen. + + Det inkluderar information om paritetsfragmentering, hur gamla + blocken är utan kontroll, och alla registrerade tysta + fel som påträffats under skrubbning. + + Informationen som presenteras hänvisar till den senaste tidpunkten du + körde `sync`. Senare modifieringar beaktas inte. + + Om dåliga block upptäcktes, listas deras blocknummer. + För att fixa dem kan du använda kommandot `fix -e`. + + Det visar också ett diagram som representerar den senaste tidpunkten då varje block + skrubbades eller synkroniserades. Skrubbade block visas med '*', + block synkroniserade men ännu inte skrubbade med 'o'. + + Inget ändras. + + smart + Skriver ut en SMART-rapport över alla diskar i systemet. + + Det inkluderar en uppskattning av sannolikheten för fel under det kommande + året, vilket gör att du kan planera underhållsersättningar av diskar som visar + misstänkta attribut. + + Denna sannolikhetsuppskattning erhålls genom att korrelera SMART-attributen + för diskarna med Backblaze-data som finns tillgänglig på: + + :https://www.backblaze.com/hard-drive-test-data.html + + Om SMART rapporterar att en disk håller på att misslyckas, skrivs `FAIL` eller `PREFAIL` ut + för den disken, och SnapRAID returnerar med ett fel. + I detta fall rekommenderas omedelbar ersättning av disken starkt. + + Andra möjliga statussträngar är: + logfail - Tidigare var vissa attribut lägre än + tröskelvärdet. + logerr - Enhetens fellogg innehåller fel. + selferr - Enhetens självtestlogg innehåller fel. + + Om alternativet -v, --verbose specificeras, tillhandahålls en djupare statistisk analys. + Denna analys kan hjälpa dig att bestämma om du behöver mer + eller mindre paritet. + + Detta kommando använder verktyget `smartctl` och är ekvivalent med att köra + `smartctl -a` på alla enheter. + + Om dina enheter inte upptäcks automatiskt korrekt kan du specificera + ett anpassat kommando med hjälp av alternativet `smartctl` i konfigurations- + filen. + + Inget ändras. + + probe + Skriver ut STRÖM-tillståndet för alla diskar i systemet. + + `Standby` betyder att disken inte snurrar. `Active` betyder + att disken snurrar. + + Detta kommando använder verktyget `smartctl` och är ekvivalent med att köra + `smartctl -n standby -i` på alla enheter. + + Om dina enheter inte upptäcks automatiskt korrekt kan du specificera + ett anpassat kommando med hjälp av alternativet `smartctl` i konfigurations- + filen. + + Inget ändras. + + up + Snurrar upp alla diskar i arrayen. + + Du kan snurra upp endast specifika diskar med hjälp av alternativet -d, --filter-disk. + + Att snurra upp alla diskar samtidigt kräver mycket ström. + Se till att din strömförsörjning kan klara det. + + Inget ändras. + + down + Snurrar ner alla diskar i arrayen. + + Detta kommando använder verktyget `smartctl` och är ekvivalent med att köra + `smartctl -s standby,now` på alla enheter. + + Du kan snurra ner endast specifika diskar med hjälp av alternativet -d, --filter-disk + alternativet. + + För att automatiskt snurra ner vid fel kan du använda alternativet -s, --spin-down-on-error + med alla andra kommandon, vilket är ekvivalent med att köra `down` manuellt + när ett fel inträffar. + + Inget ändras. + + diff + Listar alla filer som modifierats sedan den senaste `sync` och som behöver få + sin paritetsdata omberäknad. + + Detta kommando kontrollerar inte filens data, utan endast filens tidsstämpel, + storlek och inode. + + Efter att ha listat alla ändrade filer presenteras en sammanfattning av ändringarna, + grupperade efter: + equal - Filer oförändrade från tidigare. + added - Filer tillagda som inte fanns tidigare. + removed - Filer borttagna. + updated - Filer med en annan storlek eller tidsstämpel, vilket innebär att de + modifierades. + moved - Filer flyttade till en annan katalog på samma disk. + De identifieras genom att ha samma namn, storlek, tidsstämpel + och inode, men en annan katalog. + copied - Filer kopierade på samma eller en annan disk. Observera att om + de verkligen flyttas till en annan disk, kommer de också att + räknas i `removed`. + De identifieras genom att ha samma namn, storlek och + tidsstämpel. Om undertidsstämpeln är noll, + måste hela sökvägen matcha, inte bara namnet. + restored - Filer med en annan inode men matchande namn, storlek och tidsstämpel. + Dessa är vanligtvis filer som återställts efter att ha raderats. + + Om en `sync` krävs är processens returkod 2, istället för standard 0. + Returkoden 1 används för ett generiskt feltillstånd. + + Inget ändras. + + sync + Uppdaterar paritetsinformationen. Alla modifierade filer + i disk-arrayen läses, och motsvarande paritets- + data uppdateras. + + Du kan stoppa denna process när som helst genom att trycka Ctrl+C, + utan att förlora det arbete som redan utförts. + Vid nästa körning kommer `sync`-processen att återupptas där + den avbröts. + + Om tysta eller input/output-fel hittas under processen, + markeras de motsvarande blocken som dåliga. + + Filer identifieras med sökväg och/eller inode och kontrolleras med + storlek och tidsstämpel. + Om filstorleken eller tidsstämpeln skiljer sig åt, beräknas paritetsdata + om för hela filen. + Om filen flyttas eller döps om på samma disk, samtidigt som + samma inode behålls, beräknas inte pariteten om. + Om filen flyttas till en annan disk, beräknas pariteten om, + men den tidigare beräknade hash-informationen behålls. + + `content`- och `parity`-filerna modifieras vid behov. + Filerna i arrayen modifieras INTE. + + scrub + Skrubbar arrayen och söker efter tysta eller input/output-fel i data- + och paritetsdiskar. + + Varje anrop kontrollerar ungefär 8% av arrayen, exklusive + data som redan skrubbats under de senaste 10 dagarna. + Detta innebär att skrubbning en gång i veckan säkerställer att varje bit data kontrolleras + minst en gång var tredje månad. + + Du kan definiera en annan skrubbplan eller mängd med hjälp av alternativet -p, --plan + som accepterar: + bad - Skrubbar block markerade som dåliga. + new - Skrubbar nyligen synkroniserade block som ännu inte skrubbats. + full - Skrubbar allt. + 0-100 - Skrubbar den specificerade procentandelen av block. + + Om du specificerar en procentsats kan du också använda alternativet -o, --older-than + för att definiera hur gammalt blocket ska vara. + De äldsta blocken skrubbas först, vilket säkerställer en optimal kontroll. + Om du bara vill skrubba de nyligen synkroniserade blocken som ännu inte skrubbats, + använd alternativet `-p new`. + + För att få detaljer om skrubbstatusen, använd kommandot `status`. + + För alla tysta eller input/output-fel som hittas, markeras de motsvarande blocken + som dåliga i `content`-filen. + Dessa dåliga block listas i `status` och kan fixas med `fix -e`. + Efter fixningen, vid nästa skrubb, kommer de att kontrolleras igen, och om de befinns + korrigerade, tas det dåliga märket bort. + För att skrubba endast de dåliga blocken kan du använda kommandot `scrub -p bad`. + + Det rekommenderas att köra `scrub` endast på en synkroniserad array för att undvika + rapporterade fel orsakade av osynkad data. Dessa fel känns igen + som att de inte är tysta fel, och blocken markeras inte som dåliga, + men sådana fel rapporteras i kommandots utdata. + + `content`-filen modifieras för att uppdatera tiden för den senaste kontrollen + för varje block och för att markera dåliga block. + `parity`-filerna modifieras INTE. + Filerna i arrayen modifieras INTE. + + fix + Fixar alla filer och paritetsdata. + + Alla filer och paritetsdata jämförs med ögonblicksbilds- + tillståndet som sparades i den senaste `sync`. + Om en skillnad hittas, återställs den till det lagrade ögonblicksbildstillståndet. + + VARNING! Kommandot `fix` skiljer inte mellan fel och + avsiktliga modifieringar. Det återställer ovillkorligen filtillståndet + till den senaste `sync`. + + Om inget annat alternativ specificeras, behandlas hela arrayen. + Använd filteralternativen för att välja en delmängd av filer eller diskar att arbeta med. + + För att fixa endast blocken markerade som dåliga under `sync` och `scrub`, + använd alternativet -e, --filter-error. + Till skillnad från andra filteralternativ tillämpar detta fixar endast på filer som är + oförändrade sedan den senaste `sync`. + + SnapRAID döper om alla filer som inte kan fixas genom att lägga till tillägget + `.unrecoverable`. + + Innan fixningen skannas hela arrayen för att hitta alla filer som flyttats + sedan den senaste `sync`-operationen. + Dessa filer identifieras av deras tidsstämpel, ignorera deras namn + och katalog, och används i återställningsprocessen vid behov. + Om du flyttade några av dem utanför arrayen kan du använda alternativet -i, --import + för att specificera ytterligare kataloger att skanna. + + Filer identifieras endast med sökväg, inte med inode. + + `content`-filen modifieras INTE. + `parity`-filerna modifieras vid behov. + Filerna i arrayen modifieras vid behov. + + check + Verifierar alla filer och paritetsdata. + + Det fungerar som `fix`, men det simulerar endast en återställning och inga ändringar + skrivs till arrayen. + + Detta kommando är i första hand avsett för manuell verifiering, + som efter en återställningsprocess eller under andra speciella förhållanden. + För periodiska och schemalagda kontroller, använd `scrub`. + + Om du använder alternativet -a, --audit-only, kontrolleras endast fil- + datan, och paritetsdatan ignoreras för en + snabbare körning. + + Filer identifieras endast med sökväg, inte med inode. + + Inget ändras. + + list + Listar alla filer som finns i arrayen vid tidpunkten för den + senaste `sync`. + + Med -v eller --verbose visas även undertiden. + + Inget ändras. + + dup + Listar alla dubblettfiler. Två filer antas vara lika om deras + hashar matchar. Filens data läses inte; endast de + förberäknade hasharna används. + + Inget ändras. + + pool + Skapar eller uppdaterar en virtuell vy av alla + filer i din disk-array i `pooling`-katalogen. + + Filerna kopieras inte utan länkas med hjälp av + symboliska länkar. + + Vid uppdatering raderas alla befintliga symboliska länkar och tomma + underkataloger och ersätts med den nya + vyn av arrayen. Alla andra vanliga filer lämnas kvar. + + Inget ändras utanför pool-katalogen. + + devices + Skriver ut de lågnivåenheter som används av arrayen. + + Detta kommando visar enhetsassociationerna i arrayen + och är främst avsett som ett skriptgränssnitt. + + De två första kolumnerna är lågnivåenhetens ID och sökväg. + De nästa två kolumnerna är högnivåenhetens ID och sökväg. + Den sista kolumnen är diskens namn i arrayen. + + I de flesta fall har du en lågnivåenhet för varje disk i + arrayen, men i vissa mer komplexa konfigurationer kan du ha flera + lågnivåenheter som används av en enda disk i arrayen. + + Inget ändras. + + touch + Anger en godtycklig undertidsstämpel för alla filer + som har den satt till noll. + + Detta förbättrar SnapRAIDs förmåga att känna igen flyttade + och kopierade filer, eftersom det gör tidsstämpeln nästan unik, + vilket minskar möjliga dubbletter. + + Mer specifikt, om undertidsstämpeln inte är noll, + identifieras en flyttad eller kopierad fil som sådan om den matchar + namn, storlek och tidsstämpel. Om undertidsstämpeln + är noll, betraktas den som en kopia endast om hela sökvägen, + storlek och tidsstämpel alla matchar. + + Tidsstämpeln med sekundprecision modifieras inte, + så alla datum och tider för dina filer bevaras. + + rehash + Schemalägger en omhashning av hela arrayen. + + Detta kommando ändrar den hash-typ som används, vanligtvis vid uppgradering + från ett 32-bitars system till ett 64-bitars system, för att byta från + MurmurHash3 till den snabbare SpookyHash. + + Om du redan använder den optimala hashen, gör detta kommando + ingenting och informerar dig om att ingen åtgärd behövs. + + Omhashningen utförs inte omedelbart utan sker + progressivt under `sync` och `scrub`. + + Du kan kontrollera omhashningstillståndet med hjälp av `status`. + + Under omhashningen bibehåller SnapRAID full funktionalitet, + med det enda undantaget att `dup` inte kan upptäcka dubbletter + med hjälp av en annan hash. + +Alternativ + SnapRAID tillhandahåller följande alternativ: + + -c, --conf CONFIG + Väljer den konfigurationsfil som ska användas. Om den inte specificeras, i Unix + används filen `/usr/local/etc/snapraid.conf` om den finns, + annars `/etc/snapraid.conf`. + I Windows används filen `snapraid.conf` i samma + katalog som `snapraid.exe`. + + -f, --filter PATTERN + Filtrerar filerna att behandla i `check` och `fix`. + Endast filerna som matchar det specificerade mönstret behandlas. + Detta alternativ kan användas flera gånger. + Se avsnittet MÖNSTER för mer information om + mönsterspecifikationer. + I Unix, se till att globbing-tecken citeras om de används. + Detta alternativ kan endast användas med `check` och `fix`. + Det kan inte användas med `sync` och `scrub`, eftersom de alltid + behandlar hela arrayen. + + -d, --filter-disk NAME + Filtrerar diskarna att behandla i `check`, `fix`, `up` och `down`. + Du måste specificera ett disk-namn som definieras i konfigurations- + filen. + Du kan också specificera paritetsdiskar med namnen: `parity`, `2-parity`, + `3-parity`, etc., för att begränsa operationer till en specifik paritetsdisk. + Om du kombinerar flera --filter, --filter-disk och --filter-missing alternativ, + väljs endast filer som matchar alla filter. + Detta alternativ kan användas flera gånger. + Detta alternativ kan endast användas med `check`, `fix`, `up` och `down`. + Det kan inte användas med `sync` och `scrub`, eftersom de alltid + behandlar hela arrayen. + + -m, --filter-missing + Filtrerar filerna att behandla i `check` och `fix`. + Endast filerna som saknas eller har raderats från arrayen behandlas. + När det används med `fix`, fungerar detta som ett `undelete`-kommando. + Om du kombinerar flera --filter, --filter-disk och --filter-missing alternativ, + väljs endast filer som matchar alla filter. + Detta alternativ kan endast användas med `check` och `fix`. + Det kan inte användas med `sync` och `scrub`, eftersom de alltid + behandlar hela arrayen. + + -e, --filter-error + Behandlar filerna med fel i `check` och `fix`. + Det behandlar endast filer som har block markerade med tysta + eller input/output-fel under `sync` och `scrub`, som listas i `status`. + Detta alternativ kan endast användas med `check` och `fix`. + + -p, --plan PERC|bad|new|full + Väljer skrubbplanen. Om PERC är ett numeriskt värde från 0 till 100, + tolkas det som procentandelen av block som ska skrubbas. + Istället för en procentsats kan du specificera en plan: + `bad` skrubbar dåliga block, `new` skrubbar block som ännu inte skrubbats, + och `full` skrubbar allt. + Detta alternativ kan endast användas med `scrub`. + + -o, --older-than DAYS + Väljer den äldsta delen av arrayen att behandla i `scrub`. + DAYS är den minsta åldern i dagar för ett block att skrubbas; + standard är 10. + Block markerade som dåliga skrubbas alltid oavsett detta alternativ. + Detta alternativ kan endast användas med `scrub`. + + -a, --audit-only + I `check`, verifierar hashen av filerna utan + att kontrollera paritetsdata. + Om du bara är intresserad av att kontrollera filens data, kan detta + alternativ avsevärt påskynda kontrollprocessen. + Detta alternativ kan endast användas med `check`. + + -h, --pre-hash + I `sync`, kör en preliminär hash-fas av all ny data + för ytterligare verifiering innan paritetsberäkningen. + Vanligtvis görs ingen preliminär hashning i `sync`, och den nya + datan hashberäknas precis innan paritetsberäkningen när den läses + för första gången. + Denna process sker när systemet är under + tung belastning, med alla diskar snurrande och en upptagen CPU. + Detta är ett extremt tillstånd för maskinen, och om den har ett + latent hårdvaruproblem, kan tysta fel gå obemärkt förbi + eftersom datan ännu inte har hashberäknats. + För att undvika denna risk kan du aktivera `pre-hash`-läget för att få + all data läst två gånger för att säkerställa dess integritet. + Detta alternativ verifierar också filer som flyttats inom arrayen + för att säkerställa att flyttoperationen lyckades och, om nödvändigt, + låter dig köra en fix-operation innan du fortsätter. + Detta alternativ kan endast användas med `sync`. + + -i, --import DIR + Importerar från den specificerade katalogen alla filer som raderats + från arrayen efter den senaste `sync`. + Om du fortfarande har sådana filer, kan de användas av `check` + och `fix` för att förbättra återställningsprocessen. + Filerna läses, inklusive i underkataloger, och identifieras + oavsett deras namn. + Detta alternativ kan endast användas med `check` och `fix`. + + -s, --spin-down-on-error + Vid något fel, snurrar ner alla hanterade diskar innan den avslutas med + en statuskod som inte är noll. Detta förhindrar att enheterna + förblir aktiva och snurrar efter en avbruten operation, + vilket hjälper till att undvika onödig värmeuppbyggnad och ström- + förbrukning. Använd detta alternativ för att säkerställa att diskar stoppas säkert + även när ett kommando misslyckas. + + -w, --bw-limit RATE + Tillämpar en global bandbreddsbegränsning för alla diskar. RATE är + antalet byte per sekund. Du kan specificera en multiplikator + som K, M eller G (t.ex. --bw-limit 1G). + + -A, --stats + Aktiverar en utökad statusvy som visar ytterligare information. + Skärmen visar två diagram: + Det första diagrammet visar antalet buffrade strippar för varje + disk, tillsammans med filsökvägen för filen som för närvarande används + på den disken. Vanligtvis kommer den långsammaste disken att ha + ingen buffert tillgänglig, vilket bestämmer den maximalt uppnåeliga + bandbredden. + Det andra diagrammet visar procentandelen tid som spenderats i väntan + under de senaste 100 sekunderna. Den långsammaste disken förväntas + orsaka större delen av väntetiden, medan andra diskar bör ha + liten eller ingen väntetid eftersom de kan använda sina buffrade strippar. + Detta diagram visar också den tid som spenderats i väntan på hash- + beräkningar och RAID-beräkningar. + Alla beräkningar körs parallellt med diskoperationer. + Därför, så länge det finns mätbar väntetid för minst en disk, + indikerar det att CPU:n är snabb nog att + hålla jämna steg med arbetsbelastningen. + + -Z, --force-zero + Tvingar den osäkra operationen att synkronisera en fil med noll + storlek som tidigare var icke-noll. + Om SnapRAID upptäcker ett sådant tillstånd, stoppar det att fortsätta + om du inte specificerar detta alternativ. + Detta gör att du enkelt kan upptäcka när, efter en systemkrasch, + vissa filer som användes trunkerades. + Detta är ett möjligt tillstånd i Linux med filsystemen ext3/ext4. + Detta alternativ kan endast användas med `sync`. + + -E, --force-empty + Tvingar den osäkra operationen att synkronisera en disk där alla + ursprungliga filer saknas. + Om SnapRAID upptäcker att alla filer som ursprungligen fanns + på disken saknas eller har skrivits om, stoppar det att fortsätta + om du inte specificerar detta alternativ. + Detta gör att du enkelt kan upptäcka när ett datafilsystem inte är + monterat. + Detta alternativ kan endast användas med `sync`. + + -U, --force-uuid + Tvingar den osäkra operationen att synkronisera, kontrollera och fixa + med diskar som har ändrat sin UUID. + Om SnapRAID upptäcker att vissa diskar har ändrat UUID, + stoppar det att fortsätta om du inte specificerar detta alternativ. + Detta gör att du kan upptäcka när dina diskar är monterade på fel + monteringspunkter. + Det är dock tillåtet att ha en enda UUID-ändring med + enkel paritet, och fler med multipel paritet, eftersom detta är + det normala fallet när man byter ut diskar efter en återställning. + Detta alternativ kan endast användas med `sync`, `check` eller + `fix`. + + -D, --force-device + Tvingar den osäkra operationen att fixa med otillgängliga diskar + eller med diskar på samma fysiska enhet. + Till exempel, om du förlorade två datadisker och har en reservdisk för att återställa + endast den första, kan du ignorera den andra otillgängliga disken. + Eller, om du vill återställa en disk i det lediga utrymme som finns kvar på en + redan använd disk, dela samma fysiska enhet. + Detta alternativ kan endast användas med `fix`. + + -N, --force-nocopy + I `sync`, `check` och `fix`, inaktiverar heuristiken för kopieringsdetektering. + Utan detta alternativ antar SnapRAID att filer med samma + attribut, såsom namn, storlek och tidsstämpel, är kopior med + samma data. + Detta möjliggör identifiering av kopierade eller flyttade filer från en disk + till en annan och återanvänder den redan beräknade hash-informationen + för att upptäcka tysta fel eller för att återställa saknade filer. + I vissa sällsynta fall kan detta beteende leda till falska positiva + eller en långsam process på grund av många hash-verifieringar, och detta + alternativ låter dig lösa sådana problem. + Detta alternativ kan endast användas med `sync`, `check` och `fix`. + + -F, --force-full + I `sync`, tvingar en fullständig omberäkning av pariteten. + Detta alternativ kan användas när du lägger till en ny paritetsnivå eller om + du återgick till en gammal content-fil med mer aktuell paritetsdata. + Istället för att återskapa pariteten från grunden låter detta dig + återanvända hasharna som finns i content-filen för att validera data + och bibehålla dataskyddet under `sync`-processen med hjälp av + den befintliga paritetsdatan. + Detta alternativ kan endast användas med `sync`. + + -R, --force-realloc + I `sync`, tvingar en fullständig omallokering av filer och ombyggnad av pariteten. + Detta alternativ kan användas för att helt omallokera alla filer, + ta bort fragmentering, samtidigt som hasharna som finns i content- + filen återanvänds för att validera data. + Detta alternativ kan endast användas med `sync`. + VARNING! Detta alternativ är endast för experter, och det rekommenderas + starkt att inte använda det. + Du HAR INGET dataskydd under `sync`-operationen. + + -l, --log FILE + Skriver en detaljerad logg till den specificerade filen. + Om detta alternativ inte specificeras, skrivs oväntade fel ut + på skärmen, vilket potentiellt kan leda till överdriven utdata i händelse av + många fel. När -l, --log specificeras, skrivs endast + fatala fel som får SnapRAID att stoppa ut + på skärmen. + Om sökvägen börjar med '>>', öppnas filen + i tilläggsläge. Förekomster av '%D' och '%T' i namnet ersätts + med datum och tid i formatet YYYYMMDD respektive + HHMMSS. I Windows batch-filer måste du dubblera + '%'-tecknet, t.ex. result-%%D.log. För att använda '>>' måste du + omsluta namnet i citattecken, t.ex. `">>result.log"`. + För att skicka ut loggen till standardutdata eller standardfel, + kan du använda `">&1"` respektive `">&2"`. + Se filen snapraid_log.txt eller man-sidan för beskrivningar av logg-taggar. + + -L, --error-limit NUMBER + Anger en ny felgräns innan körningen stoppas. + Som standard stoppar SnapRAID om det stöter på mer än 100 + input/output-fel, vilket indikerar att en disk troligen håller på att misslyckas. + Detta alternativ påverkar `sync` och `scrub`, som tillåts + att fortsätta efter den första uppsättningen diskfel för att försöka + slutföra sina operationer. + Däremot stoppar `check` och `fix` alltid vid det första felet. + + -S, --start BLKSTART + Börjar behandlingen från det specificerade + blocknumret. Detta kan vara användbart för att försöka igen att kontrollera + eller fixa specifika block i händelse av en skadad disk. + Detta alternativ är främst för avancerad manuell återställning. + + -B, --count BLKCOUNT + Behandlar endast det specificerade antalet block. + Detta alternativ är främst för avancerad manuell återställning. + + -C, --gen-conf CONTENT + Genererar en dummy-konfigurationsfil från en befintlig + content-fil. + Konfigurationsfilen skrivs till standardutdata + och skriver inte över en befintlig fil. + Denna konfigurationsfil innehåller också den information + som behövs för att rekonstruera diskmonteringspunkterna om du + förlorar hela systemet. + + -v, --verbose + Skriver ut mer information på skärmen. + Om det specificeras en gång, skrivs exkluderade filer + och ytterligare statistik ut. + Detta alternativ har ingen effekt på loggfilerna. + + -q, --quiet + Skriver ut mindre information på skärmen. + Om det specificeras en gång, tas förloppsindikatorn bort; två gånger, + de pågående operationerna; tre gånger, informations- + meddelandena; fyra gånger, statusmeddelandena. + Fatala fel skrivs alltid ut på skärmen. + Detta alternativ har ingen effekt på loggfilerna. + + -H, --help + Skriver ut en kort hjälpskärm. + + -V, --version + Skriver ut programversionen. + +Konfiguration + SnapRAID kräver en konfigurationsfil för att veta var din disk-array + finns och var paritetsinformationen ska lagras. + + I Unix används filen `/usr/local/etc/snapraid.conf` om den finns, + annars `/etc/snapraid.conf`. + I Windows används filen `snapraid.conf` i samma + katalog som `snapraid.exe`. + + Den måste innehålla följande alternativ (skiftlägeskänsligt): + + parity FIL [,FIL] ... + Definierar de filer som ska användas för att lagra paritetsinformationen. + Pariteten möjliggör skydd från ett enda disk- + fel, liknande RAID5. + + Du kan specificera flera filer, som måste finnas på olika diskar. + När en fil inte kan växa mer, används nästa fil. + Det totala tillgängliga utrymmet måste vara minst lika stort som den största datadisken i + arrayen. + + Du kan lägga till ytterligare paritetsfiler senare, men du + kan inte ändra ordning på eller ta bort dem. + + Att hålla paritetsdiskarna reserverade för paritet säkerställer att + de inte blir fragmenterade, vilket förbättrar prestandan. + + I Windows lämnas 256 MB oanvänt på varje disk för att undvika + varningen om fulla diskar. + + Detta alternativ är obligatoriskt och kan endast användas en gång. + + (2,3,4,5,6)-parity FIL [,FIL] ... + Definierar de filer som ska användas för att lagra extra paritetsinformation. + + För varje paritetsnivå som specificeras aktiveras en ytterligare skyddsnivå: + + * 2-parity möjliggör RAID6 dubbel paritet. + * 3-parity möjliggör trippel paritet. + * 4-parity möjliggör fyrdubbel (fyra) paritet. + * 5-parity möjliggör penta (fem) paritet. + * 6-parity möjliggör hexa (sex) paritet. + + Varje paritetsnivå kräver närvaro av alla föregående paritets- + nivåer. + + Samma överväganden som för alternativet 'parity' gäller. + + Dessa alternativ är valfria och kan endast användas en gång. + + z-parity FIL [,FIL] ... + Definierar en alternativ fil och ett format för att lagra trippel paritet. + + Detta alternativ är ett alternativ till '3-parity', främst avsett för + lågpresterande processorer som ARM eller AMD Phenom, Athlon och Opteron som inte + stöder SSSE3-instruktionsuppsättningen. I sådana fall ger det + bättre prestanda. + + Detta format liknar, men är snabbare än, det som används av ZFS RAIDZ3. + Liksom ZFS fungerar det inte utöver trippel paritet. + + När du använder '3-parity' kommer du att varnas om det rekommenderas att använda + formatet 'z-parity' för prestandaförbättring. + + Det är möjligt att konvertera från ett format till ett annat genom att justera + konfigurationsfilen med önskad z-parity eller 3-parity fil + och använda 'fix' för att återskapa den. + + content FIL + Definierar den fil som ska användas för att lagra listan och checksummorna för alla + filer som finns i din disk-array. + + Den kan placeras på en disk som används för data, paritet eller + någon annan tillgänglig disk. + Om du använder en datadisk exkluderas denna fil automatiskt + från `sync`-processen. + + Detta alternativ är obligatoriskt och kan användas flera gånger för att spara + flera kopior av samma fil. + + Du måste lagra minst en kopia för varje paritetsdisk som används + plus en. Att använda ytterligare kopior skadar inte. + + data NAMN KATALOG + Definierar namnet och monteringspunkten för datadiskarna i + arrayen. NAMN används för att identifiera disken och måste + vara unikt. KATALOG är monteringspunkten för disken i + filsystemet. + + Du kan ändra monteringspunkten vid behov, så länge + du behåller NAMN fixerat. + + Du bör använda ett alternativ för varje datadisk i arrayen. + + Du kan byta namn på en disk senare genom att ändra NAMN direkt + i konfigurationsfilen och sedan köra ett 'sync'-kommando. + I händelse av namnbyte görs associationen med hjälp av den lagrade + UUID:n för diskarna. + + nohidden + Exkluderar alla dolda filer och kataloger. + I Unix är dolda filer de som börjar med `.`. + I Windows är de de med det dolda attributet. + + exclude/include MÖNSTER + Definierar fil- eller katalogmönstren att exkludera eller inkludera + i sync-processen. + Alla mönster behandlas i den specificerade ordningen. + + Om det första mönstret som matchar är ett `exclude`-mönster, + exkluderas filen. Om det är ett `include`-mönster, inkluderas filen. + Om inget mönster matchar, exkluderas filen om det sista mönstret + som specificerats är ett `include`-mönster, eller inkluderas om det sista mönstret + som specificerats är ett `exclude`-mönster. + + Se avsnittet MÖNSTER för mer information om mönster- + specifikationer. + + Detta alternativ kan användas flera gånger. + + blocksize STORLEK_I_KIBIBYTES + Definierar den grundläggande blockstorleken i kibibytes för pariteten. + En kibibyte är 1024 byte. + + Standard blockstorlek är 256, vilket bör fungera för de flesta fall. + + VARNING! Detta alternativ är endast för experter, och det rekommenderas + starkt att inte ändra detta värde. För att ändra detta värde i framtiden, + kommer du att behöva återskapa hela pariteten! + + En anledning att använda en annan blockstorlek är om du har många små + filer, i storleksordningen miljoner. + + För varje fil, även om den bara är några byte, allokeras ett helt block paritet, + och med många filer kan detta leda till betydande oanvänt paritetsutrymme. + När du helt fyller paritetsdisken, är du inte + tillåten att lägga till fler filer på datadiskarna. + Det bortkastade paritetsutrymmet ackumuleras dock inte över datadiskar. + Bortkastat utrymme som härrör från ett högt antal filer på en datadisk begränsar endast + mängden data på den datadisken, inte andra. + + Som en approximation kan du anta att hälften av blockstorleken är + bortkastad för varje fil. Till exempel, med 100 000 filer och en 256 KiB + blockstorlek, kommer du att slösa 12,8 GB paritet, vilket kan resultera + i 12,8 GB mindre utrymme tillgängligt på datadisken. + + Du kan kontrollera mängden bortkastat utrymme på varje disk med hjälp av `status`. + Detta är mängden utrymme du måste lämna ledigt på data- + diskarna eller använda för filer som inte ingår i arrayen. + Om detta värde är negativt betyder det att du är nära att fylla + pariteten, och det representerar det utrymme du fortfarande kan slösa. + + För att undvika detta problem kan du använda en större partition för paritet. + Om till exempel paritetspartitionen är 12,8 GB större än datadiskarna, + har du tillräckligt med extra utrymme för att hantera upp till 100 000 + filer på varje datadisk utan något bortkastat utrymme. + + Ett trick för att få en större paritetspartition i Linux är att formatera den + med kommandot: + + :mkfs.ext4 -m 0 -T largefile4 DEVICE + + Detta resulterar i cirka 1,5% extra utrymme, ungefär 60 GB för + en 4 TB-disk, vilket möjliggör cirka 460 000 filer på varje datadisk utan + något bortkastat utrymme. + + hashsize STORLEK_I_BYTE + Definierar hash-storleken i byte för de sparade blocken. + + Standard hash-storlek är 16 byte (128 bitar), vilket bör fungera + för de flesta fall. + + VARNING! Detta alternativ är endast för experter, och det rekommenderas + starkt att inte ändra detta värde. För att ändra detta värde i framtiden, + kommer du att behöva återskapa hela pariteten! + + En anledning att använda en annan hash-storlek är om ditt system har + begränsat minne. Som en tumregel kräver SnapRAID vanligtvis + 1 GiB RAM för varje 16 TB data i arrayen. + + Specifikt, för att lagra hasharna av datan, kräver SnapRAID + ungefär TS*(1+HS)/BS byte RAM, + där TS är den totala storleken i byte av din disk-array, BS är + blockstorleken i byte och HS är hash-storleken i byte. + + Till exempel, med 8 diskar på 4 TB, en blockstorlek på 256 KiB + (1 KiB = 1024 byte) och en hash-storlek på 16, får du: + + :RAM = (8 * 4 * 10^12) * (1+16) / (256 * 2^10) = 1,93 GiB + + Om du byter till en hash-storlek på 8 får du: + + :RAM = (8 * 4 * 10^12) * (1+8) / (256 * 2^10) = 1,02 GiB + + Om du byter till en blockstorlek på 512 får du: + + :RAM = (8 * 4 * 10^12) * (1+16) / (512 * 2^10) = 0,96 GiB + + Om du byter till både en hash-storlek på 8 och en blockstorlek på 512 får du: + + :RAM = (8 * 4 * 10^12) * (1+8) / (512 * 2^10) = 0,51 GiB + + autosave STORLEK_I_GIGABYTES + Sparar automatiskt tillståndet vid synkronisering eller skrubbning efter att den + specificerade mängden GB har behandlats. + Detta alternativ är användbart för att undvika att starta om långa `sync`- + kommandon från början om de avbryts av en maskinkrasch eller någon annan händelse. + + temp_limit TEMPERATUR_CELSIUS + Anger den maximalt tillåtna disk-temperaturen i Celsius. När den specificeras, + kontrollerar SnapRAID periodiskt temperaturen på alla diskar med hjälp av + verktyget smartctl. De aktuella disk-temperaturerna visas medan + SnapRAID är igång. Om någon disk överskrider denna gräns, stoppas alla operationer + och diskarna snurras ner (sätts i standby) under den tid + som definieras av alternativet `temp_sleep`. Efter viloperioden återupptas operationerna, + och kan potentiellt pausas igen om temperaturgränsen nås + ännu en gång. + + Under drift analyserar SnapRAID också värmekurvan för varje + disk och uppskattar den långsiktiga stabila temperaturen de förväntas + nå om aktiviteten fortsätter. Uppskattningen utförs först efter att + disk-temperaturen har ökat fyra gånger, vilket säkerställer att tillräckligt med + datapoäng finns tillgängliga för att fastställa en pålitlig trend. + Denna förutsagda stabila temperatur visas inom parentes bredvid den + aktuella värdet och hjälper till att bedöma om systemets kylning är + tillräcklig. Denna uppskattade temperatur är endast för informationssyfte + och har ingen effekt på SnapRAIDs beteende. Programmens + åtgärder baseras enbart på de faktiska uppmätta disk-temperaturerna. + + För att utföra denna analys behöver SnapRAID en referens för system- + temperaturen. Det försöker först läsa den från tillgängliga hårdvaru- + sensorer. Om ingen system-sensor kan nås, används den lägsta disk- + temperaturen som mättes vid start av körningen som en reservreferens. + + Normalt visar SnapRAID endast temperaturen på den hetaste disken. + För att visa temperaturen på alla diskar, använd alternativet -A eller --stats. + + temp_sleep TID_I_MINUTER + Anger standby-tiden, i minuter, när temperaturgränsen har + nåtts. Under denna period förblir diskarna nedsnurrade. Standard + är 5 minuter. + + pool KATALOG + Definierar poolningskatalogen där den virtuella vyn av disk- + arrayen skapas med hjälp av kommandot `pool`. + + Katalogen måste redan existera. + + share UNC_KATALOG + Definierar Windows UNC-sökvägen som krävs för att få åtkomst till diskarna på distans. + + Om detta alternativ specificeras, använder de symboliska länkarna som skapats i pool- + katalogen denna UNC-sökväg för att få åtkomst till diskarna. + Utan detta alternativ använder de genererade symboliska länkarna endast lokala sökvägar, + vilket inte tillåter delning av pool-katalogen över nätverket. + + De symboliska länkarna bildas med hjälp av den specificerade UNC-sökvägen, lägger till + disk-namnet som specificeras i `data`-alternativet, och lägger slutligen till filens + katalog och namn. + + Detta alternativ krävs endast för Windows. + + smartctl DISK/PARITY ALTERNATIV... + Definierar anpassade smartctl-alternativ för att få SMART-attributen för + varje disk. Detta kan krävas för RAID-kontroller och vissa USB- + diskar som inte kan upptäckas automatiskt. Platsinnehavaren %s ersätts av + enhetens namn, men är valfri för fixerade enheter som RAID-kontroller. + + DISK är samma disk-namn som specificeras i `data`-alternativet. + PARITY är ett av paritetsnamnen: `parity`, `2-parity`, `3-parity`, + `4-parity`, `5-parity`, `6-parity` eller `z-parity`. + + I de specificerade ALTERNATIVEN ersätts strängen `%s` med + enhetens namn. För RAID-kontroller är enheten + sannolikt fixerad, och du kanske inte behöver använda `%s`. + + Se smartmontools dokumentation för möjliga alternativ: + + :https://www.smartmontools.org/wiki/Supported_RAID-Controllers + :https://www.smartmontools.org/wiki/Supported_USB-Devices + + Till exempel: + + :smartctl parity -d sat %s + + smartignore DISK/PARITY ATTR [ATTR...] + Ignorerar det specificerade SMART-attributet vid beräkning av sannolikheten + för diskfel. Detta alternativ är användbart om en disk rapporterar ovanliga eller + vilseledande värden för ett visst attribut. + + DISK är samma disk-namn som specificeras i `data`-alternativet. + PARITY är ett av paritetsnamnen: `parity`, `2-parity`, `3-parity`, + `4-parity`, `5-parity`, `6-parity` eller `z-parity`. + Det speciella värdet * kan användas för att ignorera attributet på alla diskar. + + Till exempel, för att ignorera attributet `Current Pending Sector Count` på + alla diskar: + + :smartignore * 197 + + För att ignorera det endast på den första paritetsdisken: + + :smartignore parity 197 + + Exempel + Ett exempel på en typisk konfiguration för Unix är: + + :parity /mnt/diskp/snapraid.parity + :content /mnt/diskp/snapraid.content + :content /var/snapraid/snapraid.content + :data d1 /mnt/disk1/ + :data d2 /mnt/disk2/ + :data d3 /mnt/disk3/ + :exclude /lost+found/ + :exclude /tmp/ + :smartctl d1 -d sat %s + :smartctl d2 -d usbjmicron %s + :smartctl parity -d areca,1/1 /dev/sg0 + :smartctl 2-parity -d areca,2/1 /dev/sg0 + + Ett exempel på en typisk konfiguration för Windows är: + + :parity E:\snapraid.parity + :content E:\snapraid.content + :content C:\snapraid\snapraid.content + :data d1 G:\array\ + :data d2 H:\array\ + :data d3 I:\array\ + :exclude Thumbs.db + :exclude \$RECYCLE.BIN + :exclude \System Volume Information + :smartctl d1 -d sat %s + :smartctl d2 -d usbjmicron %s + :smartctl parity -d areca,1/1 /dev/arcmsr0 + :smartctl 2-parity -d areca,2/1 /dev/arcmsr0 + +Mönster + Mönster används för att välja en delmängd av filer att exkludera eller inkludera i + processen. + + Det finns fyra olika typer av mönster: + + =FIL + Väljer alla filer som heter FIL. Du kan använda alla globbing- + tecken som * och ?, och teckenklasser som [a-z]. + Detta mönster gäller endast för filer, inte kataloger. + + =KATALOG/ + Väljer alla kataloger som heter KATALOG och allt inuti. + Du kan använda alla globbing-tecken som * och ?. + Detta mönster gäller endast för kataloger, inte filer. + + =/SÖKVÄG/FIL + Väljer den exakt specificerade filsökvägen. Du kan använda alla + globbing-tecken som * och ?, men de matchar aldrig ett + katalog-snedstreck. + Detta mönster gäller endast för filer, inte kataloger. + + =/SÖKVÄG/KATALOG/ + Väljer den exakt specificerade katalogsökvägen och allt + inuti. Du kan använda alla globbing-tecken som * och ?, men + de matchar aldrig ett katalog-snedstreck. + Detta mönster gäller endast för kataloger, inte filer. + + När du specificerar en absolut sökväg som börjar med /, tillämpas den vid + array-rotkatalogen, inte den lokala filsystemets rotkatalog. + + I Windows kan du använda bakåtsnedstrecket \ istället för framåtsnedstrecket /. + Windows systemkataloger, junction points, monteringspunkter och andra Windows + speciella kataloger behandlas som filer, vilket innebär att för att exkludera + dem måste du använda en fil-regel, inte en katalog-regel. + + Om filnamnet innehåller tecknet '*', '?', '[', + eller ']', måste du undvika det för att förhindra att det tolkas som ett + globbing-tecken. I Unix är undvikande-tecknet '\'; i Windows är det '^'. + När mönstret är på kommandoraden måste du dubbla undvikande- + tecknet för att förhindra att det tolkas av kommandoskalet. + + I konfigurationsfilen kan du använda olika strategier för att filtrera + filerna som ska behandlas. + Det enklaste tillvägagångssättet är att endast använda `exclude`-regler för att ta bort alla + filer och kataloger du inte vill behandla. Till exempel: + + :# Exkluderar alla filer som heter `*.unrecoverable` + :exclude *.unrecoverable + :# Exkluderar rotkatalogen `/lost+found` + :exclude /lost+found/ + :# Exkluderar alla underkataloger som heter `tmp` + :exclude tmp/ + + Det motsatta tillvägagångssättet är att definiera endast de filer du vill behandla, med + endast `include`-regler. Till exempel: + + :# Inkluderar endast vissa kataloger + :include /movies/ + :include /musics/ + :include /pictures/ + + Det sista tillvägagångssättet är att blanda `exclude`- och `include`-regler. I detta fall + är ordningen på reglerna viktig. Tidigare regler har + företräde framför senare. + För att förenkla kan du lista alla `exclude`-regler först och sedan + alla `include`-regler. Till exempel: + + :# Exkluderar alla filer som heter `*.unrecoverable` + :exclude *.unrecoverable + :# Exkluderar alla underkataloger som heter `tmp` + :exclude tmp/ + :# Inkluderar endast vissa kataloger + :include /movies/ + :include /musics/ + :include /pictures/ + + På kommandoraden, med hjälp av alternativet -f, kan du bara använda `include`- + mönster. Till exempel: + + :# Kontrollerar endast .mp3-filerna. + :# I Unix, använd citattecken för att undvika globbing-expansion av skalet. + :snapraid -f "*.mp3" check + + I Unix, när du använder globbing-tecken på kommandoraden, måste du + citattecken dem för att förhindra att skalet expanderar dem. + +Innehåll (Content) + SnapRAID lagrar listan och checksummorna för dina filer i content-filen. + + Det är en binär fil som listar alla filer som finns i din disk-array, + tillsammans med alla checksummor för att verifiera deras integritet. + + Denna fil läses och skrivs av kommandona `sync` och `scrub` och + läses av kommandona `fix`, `check` och `status`. + +Paritet (Parity) + SnapRAID lagrar paritetsinformationen för din array i parity- + filerna. + + Dessa är binära filer som innehåller den beräknade pariteten för alla + block definierade i `content`-filen. + + Dessa filer läses och skrivs av kommandona `sync` och `fix` och + läses endast av kommandona `scrub` och `check`. + +Kodning + SnapRAID i Unix ignorerar all kodning. Det läser och lagrar + filnamnen med samma kodning som används av filsystemet. + + I Windows konverteras alla namn som läses från filsystemet och + behandlas i UTF-8-format. + + För att få filnamn utskrivna korrekt måste du ställa in Windows- + konsolen till UTF-8-läge med kommandot `chcp 65001` och använda + ett TrueType-typsnitt som `Lucida Console` som konsoltypsnitt. + Detta påverkar endast de utskrivna filnamnen; om du + omdirigerar konsolutdata till en fil, är den resulterande filen alltid + i UTF-8-format. + +Upphovsrätt (Copyright) + Denna fil är Copyright (C) 2025 Andrea Mazzoleni + +Se Även (See Also) + snapraid_log(1), rsync(1) diff --git a/snapraid-sv.txt b/snapraid-sv.txt new file mode 100644 index 00000000..5230ecdf --- /dev/null +++ b/snapraid-sv.txt @@ -0,0 +1,1565 @@ + ============================================ + SnapRAID Säkerhetskopiering för Disk-arrayer + ============================================ + + +1 SYNOPSIS +========== + +snapraid [-c, --conf CONFIG] + [-f, --filter PATTERN] [-d, --filter-disk NAME] + [-m, --filter-missing] [-e, --filter-error] + [-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|probe|up|down|diff|sync|scrub|fix|check + |list|dup|pool|devices|touch|rehash + +snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT] + + +2 BESKRIVNING +============= + +SnapRAID är ett säkerhetskopieringsprogram designat för disk-arrayer, +som lagrar paritetsinformation för dataåterställning vid upp till sex +diskfel. + +SnapRAID är i första hand avsett för hemmamediabibliotek med stora, +sällan ändrade filer, och erbjuder flera funktioner: + +* Du kan använda diskar som redan är fyllda med filer utan + att behöva formatera om dem, och du får åtkomst till dem som vanligt. +* All din data hashberäknas för att säkerställa dataintegritet och + förhindra tyst korruption. +* När antalet felaktiga diskar överskrider paritetsantalet, + begränsas dataförlusten till de drabbade diskarna; data på + andra diskar förblir åtkomlig. +* Om du oavsiktligt raderar filer på en disk är återställning + möjlig. +* Diskar kan ha olika storlekar. +* Du kan lägga till diskar när som helst. +* SnapRAID låser inte in din data; du kan sluta använda det + när som helst utan omformatering eller dataflytt. +* För att få åtkomst till en fil behöver endast en enda disk snurra, + vilket sparar ström och minskar buller. + +För mer information, besök den officiella SnapRAID-webbplatsen: + + https://www.snapraid.it/ + + +3 BEGRäNSNINGAR +=============== + +SnapRAID är en hybrid mellan ett RAID- och ett säkerhetskopieringsprogram, +som syftar till att kombinera de bästa fördelarna med båda. Den har dock +vissa begränsningar som du bör överväga innan du använder den. + +Huvudbegränsningen är att om en disk misslyckas och du inte nyligen har +synkat, kanske du inte kan återställa fullständigt. +Mer specifikt, kanske du inte kan återställa upp till storleken på +de ändrade eller raderade filerna sedan den senaste synkroniseringsoperationen. +Detta inträffar även om de ändrade eller raderade filerna inte finns på +den felaktiga disken. Det är därför SnapRAID passar bättre för +data som sällan ändras. + +Å andra sidan förhindrar nyligen tillagda filer inte återställning av redan +befintliga filer. Du kommer bara att förlora de nyligen tillagda filerna om de +finns på den felaktiga disken. + +Andra SnapRAID-begränsningar är: + +* Med SnapRAID har du fortfarande separata filsystem för varje disk. + Med RAID får du ett enda stort filsystem. +* SnapRAID stripas inte data. + Med RAID får du en hastighetsökning med striping. +* SnapRAID stöder inte återställning i realtid. + Med RAID behöver du inte sluta arbeta när en disk misslyckas. +* SnapRAID kan bara återställa data från ett begränsat antal diskfel. + Med en säkerhetskopia kan du återställa från ett fullständigt + fel på hela disk-arrayen. +* Endast filnamn, tidsstämplar, symboliska länkar och hårda länkar sparas. + Behörigheter, ägarskap och utökade attribut sparas inte. + + +4 KOM IGåNG +=========== + +För att använda SnapRAID måste du först välja en disk i din disk-array +som ska dediceras till `parity`-information. Med en disk för paritet, +kommer du att kunna återställa från ett enda diskfel, liknande RAID5. + +Om du vill återställa från fler diskfel, liknande RAID6, +måste du reservera ytterligare diskar för paritet. Varje ytterligare +paritetsdisk möjliggör återställning från ett diskfel till. + +Som paritetsdiskar måste du välja de största diskarna i arrayen, +eftersom paritetsinformationen kan växa till storleken av den största +datadisken i arrayen. + +Dessa diskar kommer att dediceras till att lagra `parity`-filerna. +Du bör inte lagra din data på dem. + +Sedan måste du definiera de `data`-diskar som du vill skydda +med SnapRAID. Skyddet är mer effektivt om dessa diskar +innehåller data som sällan ändras. Av denna anledning är det bäst att +INTE inkludera Windows C:\-disken eller Unix /home, /var och /tmp +katalogerna. + +Listan över filer sparas i `content`-filerna, som vanligtvis +lagras på data-, paritets- eller startdiskarna. +Denna fil innehåller detaljerna för din säkerhetskopia, inklusive alla +checksummor för att verifiera dess integritet. +`content`-filen lagras i flera kopior, och varje kopia måste +finnas på en annan disk för att säkerställa att, även vid flera +diskfel, minst en kopia är tillgänglig. + +Anta till exempel att du bara är intresserad av en paritetsnivå +av skydd, och dina diskar finns på: + + /mnt/diskp <- vald disk för paritet + /mnt/disk1 <- första disken att skydda + /mnt/disk2 <- andra disken att skydda + /mnt/disk3 <- tredje disken att skydda + +Du måste skapa konfigurationsfilen /etc/snapraid.conf med +följande alternativ: + + parity /mnt/diskp/snapraid.parity + content /var/snapraid/snapraid.content + content /mnt/disk1/snapraid.content + content /mnt/disk2/snapraid.content + data d1 /mnt/disk1/ + data d2 /mnt/disk2/ + data d3 /mnt/disk3/ + +Om du använder Windows bör du använda Windows sökvägsformat, med +enhetsbeteckningar och omvända snedstreck istället för snedstreck. + + parity E:\snapraid.parity + content C:\snapraid\snapraid.content + content F:\array\snapraid.content + content G:\array\snapraid.content + data d1 F:\array\ + data d2 G:\array\ + data d3 H:\array\ + +Om du har många diskar och får slut på enhetsbeteckningar kan du montera +diskar direkt i undermappar. Se: + + https://www.google.com/search?q=Windows+mount+point + +Vid denna punkt är du redo att köra kommandot `sync` för att bygga +paritetsinformationen. + + snapraid sync + +Denna process kan ta flera timmar första gången, beroende på storleken +på datan som redan finns på diskarna. Om diskarna är tomma är +processen omedelbar. + +Du kan stoppa det när som helst genom att trycka Ctrl+C, och vid nästa körning +återupptas det där det avbröts. + +När detta kommando är klart är din data SÄKER. + +Nu kan du börja använda din array som du vill och periodiskt +uppdatera paritetsinformationen genom att köra kommandot `sync`. + +4.1 Skrubbning (Scrubbing) +-------------------------- + +För att periodiskt kontrollera data och paritet för fel kan du +köra kommandot `scrub`. + + snapraid scrub + +Detta kommando jämför data i din array med den hash som beräknades +under kommandot `sync` för att verifiera integriteten. + +Varje körning av kommandot kontrollerar ungefär 8% av arrayen, exklusive data +som redan skrubbats under de föregående 10 dagarna. +Du kan använda alternativet -p, --plan för att specificera en annan mängd +och alternativet -o, --older-than för att specificera en annan ålder i dagar. +Till exempel, för att kontrollera 5% av arrayen för block äldre än 20 dagar, använd: + + snapraid -p 5 -o 20 scrub + +Om tysta eller input/output-fel hittas under processen, +markeras de motsvarande blocken som dåliga i `content`-filen +och listas i kommandot `status`. + + snapraid status + +För att fixa dem kan du använda kommandot `fix`, filtrera efter dåliga block med +alternativet -e, --filter-error: + + snapraid -e fix + +Vid nästa `scrub` kommer felen att försvinna från `status`-rapporten +om de verkligen är fixade. För att göra det snabbare kan du använda -p bad för att skrubba +endast block markerade som dåliga. + + snapraid -p bad scrub + +Att köra `scrub` på en osynkad array kan rapportera fel orsakade av +borttagna eller modifierade filer. Dessa fel rapporteras i `scrub`- +utdata, men de relaterade blocken markeras inte som dåliga. + +4.2 Poolning +------------ + +Obs: Poolningsfunktionen som beskrivs nedan har ersatts av verktyget +mergefs, som nu är det rekommenderade alternativet för Linux-användare i +SnapRAID-communityt. Mergefs ger ett mer flexibelt och effektivt +sätt att poola flera enheter till en enda enhetlig monteringspunkt, +vilket möjliggör sömlös åtkomst till filer över din array utan att förlita sig +på symboliska länkar. Det integreras väl med SnapRAID för paritetsskydd +och används ofta i installationer som OpenMediaVault (OMV) +eller anpassade NAS-konfigurationer. + +För att visa alla filer i din array i samma katalogträd, +kan du aktivera funktionen `pooling`. Den skapar en skrivskyddad virtuell +vy av alla filer i din array med hjälp av symboliska länkar. + +Du kan konfigurera `pooling`-katalogen i konfigurationsfilen med: + + pool /pool + +eller, om du använder Windows, med: + + pool C:\pool + +och kör sedan kommandot `pool` för att skapa eller uppdatera den virtuella vyn. + + snapraid pool + +Om du använder en Unix-plattform och vill dela denna katalog +över nätverket till antingen Windows- eller Unix-maskiner, bör du lägga till +följande alternativ till din /etc/samba/smb.conf: + + # I den globala sektionen av smb.conf + unix extensions = no + + # I delningssektionen av smb.conf + [pool] + comment = Pool + path = /pool + read only = yes + guest ok = yes + wide links = yes + follow symlinks = yes + +I Windows kräver delning av symboliska länkar över ett nätverk att klienter +löser dem på distans. För att aktivera detta måste du, förutom att dela pool-katalogen, +även dela alla diskar oberoende, med hjälp av de disk-namn +som definieras i konfigurationsfilen som delningspunkter. Du måste också specificera +i alternativet `share` i konfigurationsfilen den Windows UNC-sökväg som +fjärrklienter behöver använda för att få åtkomst till dessa delade diskar. + +Till exempel, om du arbetar från en server som heter `darkstar`, kan du använda +alternativen: + + data d1 F:\array\ + data d2 G:\array\ + data d3 H:\array\ + pool C:\pool + share \\darkstar + +och dela följande kataloger över nätverket: + + \\darkstar\pool -> C:\pool + \\darkstar\d1 -> F:\array + \\darkstar\d2 -> G:\array + \\darkstar\d3 -> H:\array + +för att tillåta fjärrklienter att få åtkomst till alla filer på \\darkstar\pool. + +Du kan också behöva konfigurera fjärrklienter för att möjliggöra åtkomst till +fjärrsymboliska länkar med kommandot: + + fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 + +4.3 Ångra radering (Undeleting) +------------------------------- + +SnapRAID fungerar mer som ett säkerhetskopieringsprogram än ett RAID-system, och det +kan användas för att återställa eller ångra radering av filer till deras tidigare tillstånd +med hjälp av alternativet -f, --filter: + + snapraid fix -f FIL + +eller för en katalog: + + snapraid fix -f KATALOG/ + +Du kan också använda det för att återställa endast oavsiktligt raderade filer inuti +en katalog med hjälp av alternativet -m, --filter-missing, som återställer +endast saknade filer, och lämnar alla andra orörda. + + snapraid fix -m -f KATALOG/ + +Eller för att återställa alla raderade filer på alla enheter med: + + snapraid fix -m + +4.4 Återställning +----------------- + +Det värsta har hänt, och du har förlorat en eller flera diskar! + +FÅ INTE PANIK! Du kommer att kunna återställa dem! + +Det första du måste göra är att undvika ytterligare ändringar i din disk-array. +Inaktivera alla fjärranslutningar till den och alla schemalagda processer, inklusive +alla schemalagda SnapRAID nattliga sync- eller scrub-körningar. + +Fortsätt sedan med följande steg. + +---- 4.4.1 STEG 1 -> Omkonfigurera ---- +Du behöver lite utrymme för att återställa, helst på ytterligare +reservdiskar, men en extern USB-disk eller fjärrdisk räcker. + +Ändra SnapRAID-konfigurationsfilen för att få alternativet `data` eller `parity` +för den felaktiga disken att peka på en plats med tillräckligt tomt +utrymme för att återställa filerna. + +Om till exempel disk `d1` har misslyckats, ändra från: + + data d1 /mnt/disk1/ + +till: + + data d1 /mnt/new_spare_disk/ + +Om disken som ska återställas är en paritetsdisk, uppdatera det lämpliga `parity`- +alternativet. +Om du har flera felaktiga diskar, uppdatera alla deras konfigurationsalternativ. + +---- 4.4.2 STEG 2 -> Fixa ---- +Kör kommandot fix och lagra loggen i en extern fil med: + + snapraid -d NAMN -l fix.log fix + +Där NAMN är namnet på disken, till exempel `d1` i vårt tidigare exempel. +Om disken som ska återställas är en paritetsdisk, använd namnen `parity`, `2-parity`, +etc. +Om du har flera felaktiga diskar, använd flera -d-alternativ för att specificera alla +av dem. + +Detta kommando kommer att ta lång tid. + +Se till att du har några gigabyte ledigt för att lagra fix.log-filen. +Kör den från en disk med tillräckligt med ledigt utrymme. + +Nu har du återställt allt som är återställningsbart. Om vissa filer är delvis +eller helt icke-återställningsbara, kommer de att döpas om genom att lägga till tillägget +`.unrecoverable`. + +Du kan hitta en detaljerad lista över alla icke-återställningsbara block i fix.log-filen +genom att kontrollera alla rader som börjar med `unrecoverable:`. + +Om du inte är nöjd med återställningen kan du försöka igen hur många +gånger du vill. + +Om du till exempel har tagit bort filer från arrayen efter den senaste +`sync`, kan detta leda till att vissa filer inte återställs. +I detta fall kan du försöka igen `fix` med alternativet -i, --import, +specificera var dessa filer nu finns för att inkludera dem igen i +återställningsprocessen. + +Om du är nöjd med återställningen kan du fortsätta, +men notera att efter synkronisering kan du inte försöka igen kommandot `fix` +längre! + +---- 4.4.3 STEG 3 -> Kontrollera ---- +Som en försiktighetsåtgärd kan du nu köra ett `check`-kommando för att säkerställa att +allt är korrekt på den återställda disken. + + snapraid -d NAMN -a check + +Där NAMN är namnet på disken, till exempel `d1` i vårt tidigare exempel. + +Alternativen -d och -a talar om för SnapRAID att endast kontrollera den specificerade disken +och ignorera all paritetsdata. + +Detta kommando kommer att ta lång tid, men om du inte är alltför försiktig, +kan du hoppa över det. + +---- 4.4.4 STEG 4 -> Synkronisera ---- +Kör kommandot `sync` för att synkronisera arrayen igen med den nya disken. + + snapraid sync + +Om allt är återställt är detta kommando omedelbart. + + +5 KOMMANDON +=========== + +SnapRAID tillhandahåller några enkla kommandon som låter dig: + +* Skriva ut statusen för arrayen -> `status` +* Kontrollera diskarna -> `smart`, `probe`, `up`, `down` +* Göra en säkerhetskopia/ögonblicksbild -> `sync` +* Periodiskt kontrollera data -> `scrub` +* Återställa den senaste säkerhetskopian/ögonblicksbilden -> `fix`. + +Kommandon måste skrivas med gemener. + +5.1 status +---------- + +Skriver ut en sammanfattning av tillståndet för disk-arrayen. + +Det inkluderar information om paritetsfragmentering, hur gamla +blocken är utan kontroll, och alla registrerade tysta +fel som påträffats under skrubbning. + +Informationen som presenteras hänvisar till den senaste tidpunkten du +körde `sync`. Senare modifieringar beaktas inte. + +Om dåliga block upptäcktes, listas deras blocknummer. +För att fixa dem kan du använda kommandot `fix -e`. + +Det visar också ett diagram som representerar den senaste tidpunkten då varje block +skrubbades eller synkroniserades. Skrubbade block visas med '*', +block synkroniserade men ännu inte skrubbade med 'o'. + +Inget ändras. + +5.2 smart +--------- + +Skriver ut en SMART-rapport över alla diskar i systemet. + +Det inkluderar en uppskattning av sannolikheten för fel under det kommande +året, vilket gör att du kan planera underhållsersättningar av diskar som visar +misstänkta attribut. + +Denna sannolikhetsuppskattning erhålls genom att korrelera SMART-attributen +för diskarna med Backblaze-data som finns tillgänglig på: + + https://www.backblaze.com/hard-drive-test-data.html + +Om SMART rapporterar att en disk håller på att misslyckas, skrivs `FAIL` eller `PREFAIL` ut +för den disken, och SnapRAID returnerar med ett fel. +I detta fall rekommenderas omedelbar ersättning av disken starkt. + +Andra möjliga statussträngar är: + logfail - Tidigare var vissa attribut lägre än + tröskelvärdet. + logerr - Enhetens fellogg innehåller fel. + selferr - Enhetens självtestlogg innehåller fel. + +Om alternativet -v, --verbose specificeras, tillhandahålls en djupare statistisk analys. +Denna analys kan hjälpa dig att bestämma om du behöver mer +eller mindre paritet. + +Detta kommando använder verktyget `smartctl` och är ekvivalent med att köra +`smartctl -a` på alla enheter. + +Om dina enheter inte upptäcks automatiskt korrekt kan du specificera +ett anpassat kommando med hjälp av alternativet `smartctl` i konfigurations- +filen. + +Inget ändras. + +5.3 probe +--------- + +Skriver ut STRÖM-tillståndet för alla diskar i systemet. + +`Standby` betyder att disken inte snurrar. `Active` betyder +att disken snurrar. + +Detta kommando använder verktyget `smartctl` och är ekvivalent med att köra +`smartctl -n standby -i` på alla enheter. + +Om dina enheter inte upptäcks automatiskt korrekt kan du specificera +ett anpassat kommando med hjälp av alternativet `smartctl` i konfigurations- +filen. + +Inget ändras. + +5.4 up +------ + +Snurrar upp alla diskar i arrayen. + +Du kan snurra upp endast specifika diskar med hjälp av alternativet -d, --filter-disk. + +Att snurra upp alla diskar samtidigt kräver mycket ström. +Se till att din strömförsörjning kan klara det. + +Inget ändras. + +5.5 down +-------- + +Snurrar ner alla diskar i arrayen. + +Detta kommando använder verktyget `smartctl` och är ekvivalent med att köra +`smartctl -s standby,now` på alla enheter. + +Du kan snurra ner endast specifika diskar med hjälp av alternativet -d, --filter-disk +alternativet. + +För att automatiskt snurra ner vid fel kan du använda alternativet -s, --spin-down-on-error +med alla andra kommandon, vilket är ekvivalent med att köra `down` manuellt +när ett fel inträffar. + +Inget ändras. + +5.6 diff +-------- + +Listar alla filer som modifierats sedan den senaste `sync` och som behöver få +sin paritetsdata omberäknad. + +Detta kommando kontrollerar inte filens data, utan endast filens tidsstämpel, +storlek och inode. + +Efter att ha listat alla ändrade filer presenteras en sammanfattning av ändringarna, +grupperade efter: + equal - Filer oförändrade från tidigare. + added - Filer tillagda som inte fanns tidigare. + removed - Filer borttagna. + updated - Filer med en annan storlek eller tidsstämpel, vilket innebär att de + modifierades. + moved - Filer flyttade till en annan katalog på samma disk. + De identifieras genom att ha samma namn, storlek, tidsstämpel + och inode, men en annan katalog. + copied - Filer kopierade på samma eller en annan disk. Observera att om + de verkligen flyttas till en annan disk, kommer de också att + räknas i `removed`. + De identifieras genom att ha samma namn, storlek och + tidsstämpel. Om undertidsstämpeln är noll, + måste hela sökvägen matcha, inte bara namnet. + restored - Filer med en annan inode men matchande namn, storlek och tidsstämpel. + Dessa är vanligtvis filer som återställts efter att ha raderats. + +Om en `sync` krävs är processens returkod 2, istället för standard 0. +Returkoden 1 används för ett generiskt feltillstånd. + +Inget ändras. + +5.7 sync +-------- + +Uppdaterar paritetsinformationen. Alla modifierade filer +i disk-arrayen läses, och motsvarande paritets- +data uppdateras. + +Du kan stoppa denna process när som helst genom att trycka Ctrl+C, +utan att förlora det arbete som redan utförts. +Vid nästa körning kommer `sync`-processen att återupptas där +den avbröts. + +Om tysta eller input/output-fel hittas under processen, +markeras de motsvarande blocken som dåliga. + +Filer identifieras med sökväg och/eller inode och kontrolleras med +storlek och tidsstämpel. +Om filstorleken eller tidsstämpeln skiljer sig åt, beräknas paritetsdata +om för hela filen. +Om filen flyttas eller döps om på samma disk, samtidigt som +samma inode behålls, beräknas inte pariteten om. +Om filen flyttas till en annan disk, beräknas pariteten om, +men den tidigare beräknade hash-informationen behålls. + +`content`- och `parity`-filerna modifieras vid behov. +Filerna i arrayen modifieras INTE. + +5.8 scrub +--------- + +Skrubbar arrayen och söker efter tysta eller input/output-fel i data- +och paritetsdiskar. + +Varje anrop kontrollerar ungefär 8% av arrayen, exklusive +data som redan skrubbats under de senaste 10 dagarna. +Detta innebär att skrubbning en gång i veckan säkerställer att varje bit data kontrolleras +minst en gång var tredje månad. + +Du kan definiera en annan skrubbplan eller mängd med hjälp av alternativet -p, --plan +som accepterar: +bad - Skrubbar block markerade som dåliga. +new - Skrubbar nyligen synkroniserade block som ännu inte skrubbats. +full - Skrubbar allt. +0-100 - Skrubbar den specificerade procentandelen av block. + +Om du specificerar en procentsats kan du också använda alternativet -o, --older-than +för att definiera hur gammalt blocket ska vara. +De äldsta blocken skrubbas först, vilket säkerställer en optimal kontroll. +Om du bara vill skrubba de nyligen synkroniserade blocken som ännu inte skrubbats, +använd alternativet `-p new`. + +För att få detaljer om skrubbstatusen, använd kommandot `status`. + +För alla tysta eller input/output-fel som hittas, markeras de motsvarande blocken +som dåliga i `content`-filen. +Dessa dåliga block listas i `status` och kan fixas med `fix -e`. +Efter fixningen, vid nästa skrubb, kommer de att kontrolleras igen, och om de befinns +korrigerade, tas det dåliga märket bort. +För att skrubba endast de dåliga blocken kan du använda kommandot `scrub -p bad`. + +Det rekommenderas att köra `scrub` endast på en synkroniserad array för att undvika +rapporterade fel orsakade av osynkad data. Dessa fel känns igen +som att de inte är tysta fel, och blocken markeras inte som dåliga, +men sådana fel rapporteras i kommandots utdata. + +`content`-filen modifieras för att uppdatera tiden för den senaste kontrollen +för varje block och för att markera dåliga block. +`parity`-filerna modifieras INTE. +Filerna i arrayen modifieras INTE. + +5.9 fix +------- + +Fixar alla filer och paritetsdata. + +Alla filer och paritetsdata jämförs med ögonblicksbilds- +tillståndet som sparades i den senaste `sync`. +Om en skillnad hittas, återställs den till det lagrade ögonblicksbildstillståndet. + +VARNING! Kommandot `fix` skiljer inte mellan fel och +avsiktliga modifieringar. Det återställer ovillkorligen filtillståndet +till den senaste `sync`. + +Om inget annat alternativ specificeras, behandlas hela arrayen. +Använd filteralternativen för att välja en delmängd av filer eller diskar att arbeta med. + +För att fixa endast blocken markerade som dåliga under `sync` och `scrub`, +använd alternativet -e, --filter-error. +Till skillnad från andra filteralternativ tillämpar detta fixar endast på filer som är +oförändrade sedan den senaste `sync`. + +SnapRAID döper om alla filer som inte kan fixas genom att lägga till tillägget +`.unrecoverable`. + +Innan fixningen skannas hela arrayen för att hitta alla filer som flyttats +sedan den senaste `sync`-operationen. +Dessa filer identifieras av deras tidsstämpel, ignorera deras namn +och katalog, och används i återställningsprocessen vid behov. +Om du flyttade några av dem utanför arrayen kan du använda alternativet -i, --import +för att specificera ytterligare kataloger att skanna. + +Filer identifieras endast med sökväg, inte med inode. + +`content`-filen modifieras INTE. +`parity`-filerna modifieras vid behov. +Filerna i arrayen modifieras vid behov. + +5.10 check +---------- + +Verifierar alla filer och paritetsdata. + +Det fungerar som `fix`, men det simulerar endast en återställning och inga ändringar +skrivs till arrayen. + +Detta kommando är i första hand avsett för manuell verifiering, +som efter en återställningsprocess eller under andra speciella förhållanden. +För periodiska och schemalagda kontroller, använd `scrub`. + +Om du använder alternativet -a, --audit-only, kontrolleras endast fil- +datan, och paritetsdatan ignoreras för en +snabbare körning. + +Filer identifieras endast med sökväg, inte med inode. + +Inget ändras. + +5.11 list +--------- + +Listar alla filer som finns i arrayen vid tidpunkten för den +senaste `sync`. + +Med -v eller --verbose visas även undertiden. + +Inget ändras. + +5.12 dup +-------- + +Listar alla dubblettfiler. Två filer antas vara lika om deras +hashar matchar. Filens data läses inte; endast de +förberäknade hasharna används. + +Inget ändras. + +5.13 pool +--------- + +Skapar eller uppdaterar en virtuell vy av alla +filer i din disk-array i `pooling`-katalogen. + +Filerna kopieras inte utan länkas med hjälp av +symboliska länkar. + +Vid uppdatering raderas alla befintliga symboliska länkar och tomma +underkataloger och ersätts med den nya +vyn av arrayen. Alla andra vanliga filer lämnas kvar. + +Inget ändras utanför pool-katalogen. + +5.14 devices +------------ + +Skriver ut de lågnivåenheter som används av arrayen. + +Detta kommando visar enhetsassociationerna i arrayen +och är främst avsett som ett skriptgränssnitt. + +De två första kolumnerna är lågnivåenhetens ID och sökväg. +De nästa två kolumnerna är högnivåenhetens ID och sökväg. +Den sista kolumnen är diskens namn i arrayen. + +I de flesta fall har du en lågnivåenhet för varje disk i +arrayen, men i vissa mer komplexa konfigurationer kan du ha flera +lågnivåenheter som används av en enda disk i arrayen. + +Inget ändras. + +5.15 touch +---------- + +Anger en godtycklig undertidsstämpel för alla filer +som har den satt till noll. + +Detta förbättrar SnapRAIDs förmåga att känna igen flyttade +och kopierade filer, eftersom det gör tidsstämpeln nästan unik, +vilket minskar möjliga dubbletter. + +Mer specifikt, om undertidsstämpeln inte är noll, +identifieras en flyttad eller kopierad fil som sådan om den matchar +namn, storlek och tidsstämpel. Om undertidsstämpeln +är noll, betraktas den som en kopia endast om hela sökvägen, +storlek och tidsstämpel alla matchar. + +Tidsstämpeln med sekundprecision modifieras inte, +så alla datum och tider för dina filer bevaras. + +5.16 rehash +----------- + +Schemalägger en omhashning av hela arrayen. + +Detta kommando ändrar den hash-typ som används, vanligtvis vid uppgradering +från ett 32-bitars system till ett 64-bitars system, för att byta från +MurmurHash3 till den snabbare SpookyHash. + +Om du redan använder den optimala hashen, gör detta kommando +ingenting och informerar dig om att ingen åtgärd behövs. + +Omhashningen utförs inte omedelbart utan sker +progressivt under `sync` och `scrub`. + +Du kan kontrollera omhashningstillståndet med hjälp av `status`. + +Under omhashningen bibehåller SnapRAID full funktionalitet, +med det enda undantaget att `dup` inte kan upptäcka dubbletter +med hjälp av en annan hash. + + +6 ALTERNATIV +============ + +SnapRAID tillhandahåller följande alternativ: + + -c, --conf CONFIG + Väljer den konfigurationsfil som ska användas. Om den inte specificeras, i Unix + används filen `/usr/local/etc/snapraid.conf` om den finns, + annars `/etc/snapraid.conf`. + I Windows används filen `snapraid.conf` i samma + katalog som `snapraid.exe`. + + -f, --filter PATTERN + Filtrerar filerna att behandla i `check` och `fix`. + Endast filerna som matchar det specificerade mönstret behandlas. + Detta alternativ kan användas flera gånger. + Se avsnittet MÖNSTER för mer information om + mönsterspecifikationer. + I Unix, se till att globbing-tecken citeras om de används. + Detta alternativ kan endast användas med `check` och `fix`. + Det kan inte användas med `sync` och `scrub`, eftersom de alltid + behandlar hela arrayen. + + -d, --filter-disk NAME + Filtrerar diskarna att behandla i `check`, `fix`, `up` och `down`. + Du måste specificera ett disk-namn som definieras i konfigurations- + filen. + Du kan också specificera paritetsdiskar med namnen: `parity`, `2-parity`, + `3-parity`, etc., för att begränsa operationer till en specifik paritetsdisk. + Om du kombinerar flera --filter, --filter-disk och --filter-missing alternativ, + väljs endast filer som matchar alla filter. + Detta alternativ kan användas flera gånger. + Detta alternativ kan endast användas med `check`, `fix`, `up` och `down`. + Det kan inte användas med `sync` och `scrub`, eftersom de alltid + behandlar hela arrayen. + + -m, --filter-missing + Filtrerar filerna att behandla i `check` och `fix`. + Endast filerna som saknas eller har raderats från arrayen behandlas. + När det används med `fix`, fungerar detta som ett `undelete`-kommando. + Om du kombinerar flera --filter, --filter-disk och --filter-missing alternativ, + väljs endast filer som matchar alla filter. + Detta alternativ kan endast användas med `check` och `fix`. + Det kan inte användas med `sync` och `scrub`, eftersom de alltid + behandlar hela arrayen. + + -e, --filter-error + Behandlar filerna med fel i `check` och `fix`. + Det behandlar endast filer som har block markerade med tysta + eller input/output-fel under `sync` och `scrub`, som listas i `status`. + Detta alternativ kan endast användas med `check` och `fix`. + + -p, --plan PERC|bad|new|full + Väljer skrubbplanen. Om PERC är ett numeriskt värde från 0 till 100, + tolkas det som procentandelen av block som ska skrubbas. + Istället för en procentsats kan du specificera en plan: + `bad` skrubbar dåliga block, `new` skrubbar block som ännu inte skrubbats, + och `full` skrubbar allt. + Detta alternativ kan endast användas med `scrub`. + + -o, --older-than DAYS + Väljer den äldsta delen av arrayen att behandla i `scrub`. + DAYS är den minsta åldern i dagar för ett block att skrubbas; + standard är 10. + Block markerade som dåliga skrubbas alltid oavsett detta alternativ. + Detta alternativ kan endast användas med `scrub`. + + -a, --audit-only + I `check`, verifierar hashen av filerna utan + att kontrollera paritetsdata. + Om du bara är intresserad av att kontrollera filens data, kan detta + alternativ avsevärt påskynda kontrollprocessen. + Detta alternativ kan endast användas med `check`. + + -h, --pre-hash + I `sync`, kör en preliminär hash-fas av all ny data + för ytterligare verifiering innan paritetsberäkningen. + Vanligtvis görs ingen preliminär hashning i `sync`, och den nya + datan hashberäknas precis innan paritetsberäkningen när den läses + för första gången. + Denna process sker när systemet är under + tung belastning, med alla diskar snurrande och en upptagen CPU. + Detta är ett extremt tillstånd för maskinen, och om den har ett + latent hårdvaruproblem, kan tysta fel gå obemärkt förbi + eftersom datan ännu inte har hashberäknats. + För att undvika denna risk kan du aktivera `pre-hash`-läget för att få + all data läst två gånger för att säkerställa dess integritet. + Detta alternativ verifierar också filer som flyttats inom arrayen + för att säkerställa att flyttoperationen lyckades och, om nödvändigt, + låter dig köra en fix-operation innan du fortsätter. + Detta alternativ kan endast användas med `sync`. + + -i, --import DIR + Importerar från den specificerade katalogen alla filer som raderats + från arrayen efter den senaste `sync`. + Om du fortfarande har sådana filer, kan de användas av `check` + och `fix` för att förbättra återställningsprocessen. + Filerna läses, inklusive i underkataloger, och identifieras + oavsett deras namn. + Detta alternativ kan endast användas med `check` och `fix`. + + -s, --spin-down-on-error + Vid något fel, snurrar ner alla hanterade diskar innan den avslutas med + en statuskod som inte är noll. Detta förhindrar att enheterna + förblir aktiva och snurrar efter en avbruten operation, + vilket hjälper till att undvika onödig värmeuppbyggnad och ström- + förbrukning. Använd detta alternativ för att säkerställa att diskar stoppas säkert + även när ett kommando misslyckas. + + -w, --bw-limit RATE + Tillämpar en global bandbreddsbegränsning för alla diskar. RATE är + antalet byte per sekund. Du kan specificera en multiplikator + som K, M eller G (t.ex. --bw-limit 1G). + + -A, --stats + Aktiverar en utökad statusvy som visar ytterligare information. + Skärmen visar två diagram: + Det första diagrammet visar antalet buffrade strippar för varje + disk, tillsammans med filsökvägen för filen som för närvarande används + på den disken. Vanligtvis kommer den långsammaste disken att ha + ingen buffert tillgänglig, vilket bestämmer den maximalt uppnåeliga + bandbredden. + Det andra diagrammet visar procentandelen tid som spenderats i väntan + under de senaste 100 sekunderna. Den långsammaste disken förväntas + orsaka större delen av väntetiden, medan andra diskar bör ha + liten eller ingen väntetid eftersom de kan använda sina buffrade strippar. + Detta diagram visar också den tid som spenderats i väntan på hash- + beräkningar och RAID-beräkningar. + Alla beräkningar körs parallellt med diskoperationer. + Därför, så länge det finns mätbar väntetid för minst en disk, + indikerar det att CPU:n är snabb nog att + hålla jämna steg med arbetsbelastningen. + + -Z, --force-zero + Tvingar den osäkra operationen att synkronisera en fil med noll + storlek som tidigare var icke-noll. + Om SnapRAID upptäcker ett sådant tillstånd, stoppar det att fortsätta + om du inte specificerar detta alternativ. + Detta gör att du enkelt kan upptäcka när, efter en systemkrasch, + vissa filer som användes trunkerades. + Detta är ett möjligt tillstånd i Linux med filsystemen ext3/ext4. + Detta alternativ kan endast användas med `sync`. + + -E, --force-empty + Tvingar den osäkra operationen att synkronisera en disk där alla + ursprungliga filer saknas. + Om SnapRAID upptäcker att alla filer som ursprungligen fanns + på disken saknas eller har skrivits om, stoppar det att fortsätta + om du inte specificerar detta alternativ. + Detta gör att du enkelt kan upptäcka när ett datafilsystem inte är + monterat. + Detta alternativ kan endast användas med `sync`. + + -U, --force-uuid + Tvingar den osäkra operationen att synkronisera, kontrollera och fixa + med diskar som har ändrat sin UUID. + Om SnapRAID upptäcker att vissa diskar har ändrat UUID, + stoppar det att fortsätta om du inte specificerar detta alternativ. + Detta gör att du kan upptäcka när dina diskar är monterade på fel + monteringspunkter. + Det är dock tillåtet att ha en enda UUID-ändring med + enkel paritet, och fler med multipel paritet, eftersom detta är + det normala fallet när man byter ut diskar efter en återställning. + Detta alternativ kan endast användas med `sync`, `check` eller + `fix`. + + -D, --force-device + Tvingar den osäkra operationen att fixa med otillgängliga diskar + eller med diskar på samma fysiska enhet. + Till exempel, om du förlorade två datadisker och har en reservdisk för att återställa + endast den första, kan du ignorera den andra otillgängliga disken. + Eller, om du vill återställa en disk i det lediga utrymme som finns kvar på en + redan använd disk, dela samma fysiska enhet. + Detta alternativ kan endast användas med `fix`. + + -N, --force-nocopy + I `sync`, `check` och `fix`, inaktiverar heuristiken för kopieringsdetektering. + Utan detta alternativ antar SnapRAID att filer med samma + attribut, såsom namn, storlek och tidsstämpel, är kopior med + samma data. + Detta möjliggör identifiering av kopierade eller flyttade filer från en disk + till en annan och återanvänder den redan beräknade hash-informationen + för att upptäcka tysta fel eller för att återställa saknade filer. + I vissa sällsynta fall kan detta beteende leda till falska positiva + eller en långsam process på grund av många hash-verifieringar, och detta + alternativ låter dig lösa sådana problem. + Detta alternativ kan endast användas med `sync`, `check` och `fix`. + + -F, --force-full + I `sync`, tvingar en fullständig omberäkning av pariteten. + Detta alternativ kan användas när du lägger till en ny paritetsnivå eller om + du återgick till en gammal content-fil med mer aktuell paritetsdata. + Istället för att återskapa pariteten från grunden låter detta dig + återanvända hasharna som finns i content-filen för att validera data + och bibehålla dataskyddet under `sync`-processen med hjälp av + den befintliga paritetsdatan. + Detta alternativ kan endast användas med `sync`. + + -R, --force-realloc + I `sync`, tvingar en fullständig omallokering av filer och ombyggnad av pariteten. + Detta alternativ kan användas för att helt omallokera alla filer, + ta bort fragmentering, samtidigt som hasharna som finns i content- + filen återanvänds för att validera data. + Detta alternativ kan endast användas med `sync`. + VARNING! Detta alternativ är endast för experter, och det rekommenderas + starkt att inte använda det. + Du HAR INGET dataskydd under `sync`-operationen. + + -l, --log FILE + Skriver en detaljerad logg till den specificerade filen. + Om detta alternativ inte specificeras, skrivs oväntade fel ut + på skärmen, vilket potentiellt kan leda till överdriven utdata i händelse av + många fel. När -l, --log specificeras, skrivs endast + fatala fel som får SnapRAID att stoppa ut + på skärmen. + Om sökvägen börjar med '>>', öppnas filen + i tilläggsläge. Förekomster av '%D' och '%T' i namnet ersätts + med datum och tid i formatet YYYYMMDD respektive + HHMMSS. I Windows batch-filer måste du dubblera + '%'-tecknet, t.ex. result-%%D.log. För att använda '>>' måste du + omsluta namnet i citattecken, t.ex. `">>result.log"`. + För att skicka ut loggen till standardutdata eller standardfel, + kan du använda `">&1"` respektive `">&2"`. + Se filen snapraid_log.txt eller man-sidan för beskrivningar av logg-taggar. + + -L, --error-limit NUMBER + Anger en ny felgräns innan körningen stoppas. + Som standard stoppar SnapRAID om det stöter på mer än 100 + input/output-fel, vilket indikerar att en disk troligen håller på att misslyckas. + Detta alternativ påverkar `sync` och `scrub`, som tillåts + att fortsätta efter den första uppsättningen diskfel för att försöka + slutföra sina operationer. + Däremot stoppar `check` och `fix` alltid vid det första felet. + + -S, --start BLKSTART + Börjar behandlingen från det specificerade + blocknumret. Detta kan vara användbart för att försöka igen att kontrollera + eller fixa specifika block i händelse av en skadad disk. + Detta alternativ är främst för avancerad manuell återställning. + + -B, --count BLKCOUNT + Behandlar endast det specificerade antalet block. + Detta alternativ är främst för avancerad manuell återställning. + + -C, --gen-conf CONTENT + Genererar en dummy-konfigurationsfil från en befintlig + content-fil. + Konfigurationsfilen skrivs till standardutdata + och skriver inte över en befintlig fil. + Denna konfigurationsfil innehåller också den information + som behövs för att rekonstruera diskmonteringspunkterna om du + förlorar hela systemet. + + -v, --verbose + Skriver ut mer information på skärmen. + Om det specificeras en gång, skrivs exkluderade filer + och ytterligare statistik ut. + Detta alternativ har ingen effekt på loggfilerna. + + -q, --quiet + Skriver ut mindre information på skärmen. + Om det specificeras en gång, tas förloppsindikatorn bort; två gånger, + de pågående operationerna; tre gånger, informations- + meddelandena; fyra gånger, statusmeddelandena. + Fatala fel skrivs alltid ut på skärmen. + Detta alternativ har ingen effekt på loggfilerna. + + -H, --help + Skriver ut en kort hjälpskärm. + + -V, --version + Skriver ut programversionen. + + +7 KONFIGURATION +=============== + +SnapRAID kräver en konfigurationsfil för att veta var din disk-array +finns och var paritetsinformationen ska lagras. + +I Unix används filen `/usr/local/etc/snapraid.conf` om den finns, +annars `/etc/snapraid.conf`. +I Windows används filen `snapraid.conf` i samma +katalog som `snapraid.exe`. + +Den måste innehålla följande alternativ (skiftlägeskänsligt): + +7.1 parity FIL [,FIL] ... +------------------------- + +Definierar de filer som ska användas för att lagra paritetsinformationen. +Pariteten möjliggör skydd från ett enda disk- +fel, liknande RAID5. + +Du kan specificera flera filer, som måste finnas på olika diskar. +När en fil inte kan växa mer, används nästa fil. +Det totala tillgängliga utrymmet måste vara minst lika stort som den största datadisken i +arrayen. + +Du kan lägga till ytterligare paritetsfiler senare, men du +kan inte ändra ordning på eller ta bort dem. + +Att hålla paritetsdiskarna reserverade för paritet säkerställer att +de inte blir fragmenterade, vilket förbättrar prestandan. + +I Windows lämnas 256 MB oanvänt på varje disk för att undvika +varningen om fulla diskar. + +Detta alternativ är obligatoriskt och kan endast användas en gång. + +7.2 (2,3,4,5,6)-parity FIL [,FIL] ... +------------------------------------- + +Definierar de filer som ska användas för att lagra extra paritetsinformation. + +För varje paritetsnivå som specificeras aktiveras en ytterligare skyddsnivå: + +* 2-parity möjliggör RAID6 dubbel paritet. +* 3-parity möjliggör trippel paritet. +* 4-parity möjliggör fyrdubbel (fyra) paritet. +* 5-parity möjliggör penta (fem) paritet. +* 6-parity möjliggör hexa (sex) paritet. + +Varje paritetsnivå kräver närvaro av alla föregående paritets- +nivåer. + +Samma överväganden som för alternativet 'parity' gäller. + +Dessa alternativ är valfria och kan endast användas en gång. + +7.3 z-parity FIL [,FIL] ... +--------------------------- + +Definierar en alternativ fil och ett format för att lagra trippel paritet. + +Detta alternativ är ett alternativ till '3-parity', främst avsett för +lågpresterande processorer som ARM eller AMD Phenom, Athlon och Opteron som inte +stöder SSSE3-instruktionsuppsättningen. I sådana fall ger det +bättre prestanda. + +Detta format liknar, men är snabbare än, det som används av ZFS RAIDZ3. +Liksom ZFS fungerar det inte utöver trippel paritet. + +När du använder '3-parity' kommer du att varnas om det rekommenderas att använda +formatet 'z-parity' för prestandaförbättring. + +Det är möjligt att konvertera från ett format till ett annat genom att justera +konfigurationsfilen med önskad z-parity eller 3-parity fil +och använda 'fix' för att återskapa den. + +7.4 content FIL +--------------- + +Definierar den fil som ska användas för att lagra listan och checksummorna för alla +filer som finns i din disk-array. + +Den kan placeras på en disk som används för data, paritet eller +någon annan tillgänglig disk. +Om du använder en datadisk exkluderas denna fil automatiskt +från `sync`-processen. + +Detta alternativ är obligatoriskt och kan användas flera gånger för att spara +flera kopior av samma fil. + +Du måste lagra minst en kopia för varje paritetsdisk som används +plus en. Att använda ytterligare kopior skadar inte. + +7.5 data NAMN KATALOG +--------------------- + +Definierar namnet och monteringspunkten för datadiskarna i +arrayen. NAMN används för att identifiera disken och måste +vara unikt. KATALOG är monteringspunkten för disken i +filsystemet. + +Du kan ändra monteringspunkten vid behov, så länge +du behåller NAMN fixerat. + +Du bör använda ett alternativ för varje datadisk i arrayen. + +Du kan byta namn på en disk senare genom att ändra NAMN direkt +i konfigurationsfilen och sedan köra ett 'sync'-kommando. +I händelse av namnbyte görs associationen med hjälp av den lagrade +UUID:n för diskarna. + +7.6 nohidden +------------ + +Exkluderar alla dolda filer och kataloger. +I Unix är dolda filer de som börjar med `.`. +I Windows är de de med det dolda attributet. + +7.7 exclude/include MÖNSTER +--------------------------- + +Definierar fil- eller katalogmönstren att exkludera eller inkludera +i sync-processen. +Alla mönster behandlas i den specificerade ordningen. + +Om det första mönstret som matchar är ett `exclude`-mönster, +exkluderas filen. Om det är ett `include`-mönster, inkluderas filen. +Om inget mönster matchar, exkluderas filen om det sista mönstret +som specificerats är ett `include`-mönster, eller inkluderas om det sista mönstret +som specificerats är ett `exclude`-mönster. + +Se avsnittet MÖNSTER för mer information om mönster- +specifikationer. + +Detta alternativ kan användas flera gånger. + +7.8 blocksize STORLEK_I_KIBIBYTES +--------------------------------- + +Definierar den grundläggande blockstorleken i kibibytes för pariteten. +En kibibyte är 1024 byte. + +Standard blockstorlek är 256, vilket bör fungera för de flesta fall. + +VARNING! Detta alternativ är endast för experter, och det rekommenderas +starkt att inte ändra detta värde. För att ändra detta värde i framtiden, +kommer du att behöva återskapa hela pariteten! + +En anledning att använda en annan blockstorlek är om du har många små +filer, i storleksordningen miljoner. + +För varje fil, även om den bara är några byte, allokeras ett helt block paritet, +och med många filer kan detta leda till betydande oanvänt paritetsutrymme. +När du helt fyller paritetsdisken, är du inte +tillåten att lägga till fler filer på datadiskarna. +Det bortkastade paritetsutrymmet ackumuleras dock inte över datadiskar. +Bortkastat utrymme som härrör från ett högt antal filer på en datadisk begränsar endast +mängden data på den datadisken, inte andra. + +Som en approximation kan du anta att hälften av blockstorleken är +bortkastad för varje fil. Till exempel, med 100 000 filer och en 256 KiB +blockstorlek, kommer du att slösa 12,8 GB paritet, vilket kan resultera +i 12,8 GB mindre utrymme tillgängligt på datadisken. + +Du kan kontrollera mängden bortkastat utrymme på varje disk med hjälp av `status`. +Detta är mängden utrymme du måste lämna ledigt på data- +diskarna eller använda för filer som inte ingår i arrayen. +Om detta värde är negativt betyder det att du är nära att fylla +pariteten, och det representerar det utrymme du fortfarande kan slösa. + +För att undvika detta problem kan du använda en större partition för paritet. +Om till exempel paritetspartitionen är 12,8 GB större än datadiskarna, +har du tillräckligt med extra utrymme för att hantera upp till 100 000 +filer på varje datadisk utan något bortkastat utrymme. + +Ett trick för att få en större paritetspartition i Linux är att formatera den +med kommandot: + + mkfs.ext4 -m 0 -T largefile4 DEVICE + +Detta resulterar i cirka 1,5% extra utrymme, ungefär 60 GB för +en 4 TB-disk, vilket möjliggör cirka 460 000 filer på varje datadisk utan +något bortkastat utrymme. + +7.9 hashsize STORLEK_I_BYTE +--------------------------- + +Definierar hash-storleken i byte för de sparade blocken. + +Standard hash-storlek är 16 byte (128 bitar), vilket bör fungera +för de flesta fall. + +VARNING! Detta alternativ är endast för experter, och det rekommenderas +starkt att inte ändra detta värde. För att ändra detta värde i framtiden, +kommer du att behöva återskapa hela pariteten! + +En anledning att använda en annan hash-storlek är om ditt system har +begränsat minne. Som en tumregel kräver SnapRAID vanligtvis +1 GiB RAM för varje 16 TB data i arrayen. + +Specifikt, för att lagra hasharna av datan, kräver SnapRAID +ungefär TS*(1+HS)/BS byte RAM, +där TS är den totala storleken i byte av din disk-array, BS är +blockstorleken i byte och HS är hash-storleken i byte. + +Till exempel, med 8 diskar på 4 TB, en blockstorlek på 256 KiB +(1 KiB = 1024 byte) och en hash-storlek på 16, får du: + +RAM = (8 * 4 * 10^12) * (1+16) / (256 * 2^10) = 1,93 GiB + +Om du byter till en hash-storlek på 8 får du: + +RAM = (8 * 4 * 10^12) * (1+8) / (256 * 2^10) = 1,02 GiB + +Om du byter till en blockstorlek på 512 får du: + +RAM = (8 * 4 * 10^12) * (1+16) / (512 * 2^10) = 0,96 GiB + +Om du byter till både en hash-storlek på 8 och en blockstorlek på 512 får du: + +RAM = (8 * 4 * 10^12) * (1+8) / (512 * 2^10) = 0,51 GiB + +7.10 autosave STORLEK_I_GIGABYTES +--------------------------------- + +Sparar automatiskt tillståndet vid synkronisering eller skrubbning efter att den +specificerade mängden GB har behandlats. +Detta alternativ är användbart för att undvika att starta om långa `sync`- +kommandon från början om de avbryts av en maskinkrasch eller någon annan händelse. + +7.11 temp_limit TEMPERATUR_CELSIUS +---------------------------------- + +Anger den maximalt tillåtna disk-temperaturen i Celsius. När den specificeras, +kontrollerar SnapRAID periodiskt temperaturen på alla diskar med hjälp av +verktyget smartctl. De aktuella disk-temperaturerna visas medan +SnapRAID är igång. Om någon disk överskrider denna gräns, stoppas alla operationer +och diskarna snurras ner (sätts i standby) under den tid +som definieras av alternativet `temp_sleep`. Efter viloperioden återupptas operationerna, +och kan potentiellt pausas igen om temperaturgränsen nås +ännu en gång. + +Under drift analyserar SnapRAID också värmekurvan för varje +disk och uppskattar den långsiktiga stabila temperaturen de förväntas +nå om aktiviteten fortsätter. Uppskattningen utförs först efter att +disk-temperaturen har ökat fyra gånger, vilket säkerställer att tillräckligt med +datapoäng finns tillgängliga för att fastställa en pålitlig trend. +Denna förutsagda stabila temperatur visas inom parentes bredvid den +aktuella värdet och hjälper till att bedöma om systemets kylning är +tillräcklig. Denna uppskattade temperatur är endast för informationssyfte +och har ingen effekt på SnapRAIDs beteende. Programmens +åtgärder baseras enbart på de faktiska uppmätta disk-temperaturerna. + +För att utföra denna analys behöver SnapRAID en referens för system- +temperaturen. Det försöker först läsa den från tillgängliga hårdvaru- +sensorer. Om ingen system-sensor kan nås, används den lägsta disk- +temperaturen som mättes vid start av körningen som en reservreferens. + +Normalt visar SnapRAID endast temperaturen på den hetaste disken. +För att visa temperaturen på alla diskar, använd alternativet -A eller --stats. + +7.12 temp_sleep TID_I_MINUTER +----------------------------- + +Anger standby-tiden, i minuter, när temperaturgränsen har +nåtts. Under denna period förblir diskarna nedsnurrade. Standard +är 5 minuter. + +7.13 pool KATALOG +----------------- + +Definierar poolningskatalogen där den virtuella vyn av disk- +arrayen skapas med hjälp av kommandot `pool`. + +Katalogen måste redan existera. + +7.14 share UNC_KATALOG +---------------------- + +Definierar Windows UNC-sökvägen som krävs för att få åtkomst till diskarna på distans. + +Om detta alternativ specificeras, använder de symboliska länkarna som skapats i pool- +katalogen denna UNC-sökväg för att få åtkomst till diskarna. +Utan detta alternativ använder de genererade symboliska länkarna endast lokala sökvägar, +vilket inte tillåter delning av pool-katalogen över nätverket. + +De symboliska länkarna bildas med hjälp av den specificerade UNC-sökvägen, lägger till +disk-namnet som specificeras i `data`-alternativet, och lägger slutligen till filens +katalog och namn. + +Detta alternativ krävs endast för Windows. + +7.15 smartctl DISK/PARITY ALTERNATIV... +--------------------------------------- + +Definierar anpassade smartctl-alternativ för att få SMART-attributen för +varje disk. Detta kan krävas för RAID-kontroller och vissa USB- +diskar som inte kan upptäckas automatiskt. Platsinnehavaren %s ersätts av +enhetens namn, men är valfri för fixerade enheter som RAID-kontroller. + +DISK är samma disk-namn som specificeras i `data`-alternativet. +PARITY är ett av paritetsnamnen: `parity`, `2-parity`, `3-parity`, +`4-parity`, `5-parity`, `6-parity` eller `z-parity`. + +I de specificerade ALTERNATIVEN ersätts strängen `%s` med +enhetens namn. För RAID-kontroller är enheten +sannolikt fixerad, och du kanske inte behöver använda `%s`. + +Se smartmontools dokumentation för möjliga alternativ: + + https://www.smartmontools.org/wiki/Supported_RAID-Controllers + https://www.smartmontools.org/wiki/Supported_USB-Devices + +Till exempel: + + smartctl parity -d sat %s + +7.16 smartignore DISK/PARITY ATTR [ATTR...] +------------------------------------------- + +Ignorerar det specificerade SMART-attributet vid beräkning av sannolikheten +för diskfel. Detta alternativ är användbart om en disk rapporterar ovanliga eller +vilseledande värden för ett visst attribut. + +DISK är samma disk-namn som specificeras i `data`-alternativet. +PARITY är ett av paritetsnamnen: `parity`, `2-parity`, `3-parity`, +`4-parity`, `5-parity`, `6-parity` eller `z-parity`. +Det speciella värdet * kan användas för att ignorera attributet på alla diskar. + +Till exempel, för att ignorera attributet `Current Pending Sector Count` på +alla diskar: + + smartignore * 197 + +För att ignorera det endast på den första paritetsdisken: + + smartignore parity 197 + +7.17 Exempel +------------ + +Ett exempel på en typisk konfiguration för Unix är: + + parity /mnt/diskp/snapraid.parity + content /mnt/diskp/snapraid.content + content /var/snapraid/snapraid.content + data d1 /mnt/disk1/ + data d2 /mnt/disk2/ + data d3 /mnt/disk3/ + exclude /lost+found/ + exclude /tmp/ + smartctl d1 -d sat %s + smartctl d2 -d usbjmicron %s + smartctl parity -d areca,1/1 /dev/sg0 + smartctl 2-parity -d areca,2/1 /dev/sg0 + +Ett exempel på en typisk konfiguration för Windows är: + + parity E:\snapraid.parity + content E:\snapraid.content + content C:\snapraid\snapraid.content + data d1 G:\array\ + data d2 H:\array\ + data d3 I:\array\ + exclude Thumbs.db + exclude \$RECYCLE.BIN + exclude \System Volume Information + smartctl d1 -d sat %s + smartctl d2 -d usbjmicron %s + smartctl parity -d areca,1/1 /dev/arcmsr0 + smartctl 2-parity -d areca,2/1 /dev/arcmsr0 + + +8 MöNSTER +========= + +Mönster används för att välja en delmängd av filer att exkludera eller inkludera i +processen. + +Det finns fyra olika typer av mönster: + + FIL + Väljer alla filer som heter FIL. Du kan använda alla globbing- + tecken som * och ?, och teckenklasser som [a-z]. + Detta mönster gäller endast för filer, inte kataloger. + + KATALOG/ + Väljer alla kataloger som heter KATALOG och allt inuti. + Du kan använda alla globbing-tecken som * och ?. + Detta mönster gäller endast för kataloger, inte filer. + + /SÖKVÄG/FIL + Väljer den exakt specificerade filsökvägen. Du kan använda alla + globbing-tecken som * och ?, men de matchar aldrig ett + katalog-snedstreck. + Detta mönster gäller endast för filer, inte kataloger. + + /SÖKVÄG/KATALOG/ + Väljer den exakt specificerade katalogsökvägen och allt + inuti. Du kan använda alla globbing-tecken som * och ?, men + de matchar aldrig ett katalog-snedstreck. + Detta mönster gäller endast för kataloger, inte filer. + +När du specificerar en absolut sökväg som börjar med /, tillämpas den vid +array-rotkatalogen, inte den lokala filsystemets rotkatalog. + +I Windows kan du använda bakåtsnedstrecket \ istället för framåtsnedstrecket /. +Windows systemkataloger, junction points, monteringspunkter och andra Windows +speciella kataloger behandlas som filer, vilket innebär att för att exkludera +dem måste du använda en fil-regel, inte en katalog-regel. + +Om filnamnet innehåller tecknet '*', '?', '[', +eller ']', måste du undvika det för att förhindra att det tolkas som ett +globbing-tecken. I Unix är undvikande-tecknet '\'; i Windows är det '^'. +När mönstret är på kommandoraden måste du dubbla undvikande- +tecknet för att förhindra att det tolkas av kommandoskalet. + +I konfigurationsfilen kan du använda olika strategier för att filtrera +filerna som ska behandlas. +Det enklaste tillvägagångssättet är att endast använda `exclude`-regler för att ta bort alla +filer och kataloger du inte vill behandla. Till exempel: + + # Exkluderar alla filer som heter `*.unrecoverable` + exclude *.unrecoverable + # Exkluderar rotkatalogen `/lost+found` + exclude /lost+found/ + # Exkluderar alla underkataloger som heter `tmp` + exclude tmp/ + +Det motsatta tillvägagångssättet är att definiera endast de filer du vill behandla, med +endast `include`-regler. Till exempel: + + # Inkluderar endast vissa kataloger + include /movies/ + include /musics/ + include /pictures/ + +Det sista tillvägagångssättet är att blanda `exclude`- och `include`-regler. I detta fall +är ordningen på reglerna viktig. Tidigare regler har +företräde framför senare. +För att förenkla kan du lista alla `exclude`-regler först och sedan +alla `include`-regler. Till exempel: + + # Exkluderar alla filer som heter `*.unrecoverable` + exclude *.unrecoverable + # Exkluderar alla underkataloger som heter `tmp` + exclude tmp/ + # Inkluderar endast vissa kataloger + include /movies/ + include /musics/ + include /pictures/ + +På kommandoraden, med hjälp av alternativet -f, kan du bara använda `include`- +mönster. Till exempel: + + # Kontrollerar endast .mp3-filerna. + # I Unix, använd citattecken för att undvika globbing-expansion av skalet. + snapraid -f "*.mp3" check + +I Unix, när du använder globbing-tecken på kommandoraden, måste du +citattecken dem för att förhindra att skalet expanderar dem. + + +9 INNEHåLL (CONTENT) +==================== + +SnapRAID lagrar listan och checksummorna för dina filer i content-filen. + +Det är en binär fil som listar alla filer som finns i din disk-array, +tillsammans med alla checksummor för att verifiera deras integritet. + +Denna fil läses och skrivs av kommandona `sync` och `scrub` och +läses av kommandona `fix`, `check` och `status`. + + +10 PARITET (PARITY) +=================== + +SnapRAID lagrar paritetsinformationen för din array i parity- +filerna. + +Dessa är binära filer som innehåller den beräknade pariteten för alla +block definierade i `content`-filen. + +Dessa filer läses och skrivs av kommandona `sync` och `fix` och +läses endast av kommandona `scrub` och `check`. + + +11 KODNING +========== + +SnapRAID i Unix ignorerar all kodning. Det läser och lagrar +filnamnen med samma kodning som används av filsystemet. + +I Windows konverteras alla namn som läses från filsystemet och +behandlas i UTF-8-format. + +För att få filnamn utskrivna korrekt måste du ställa in Windows- +konsolen till UTF-8-läge med kommandot `chcp 65001` och använda +ett TrueType-typsnitt som `Lucida Console` som konsoltypsnitt. +Detta påverkar endast de utskrivna filnamnen; om du +omdirigerar konsolutdata till en fil, är den resulterande filen alltid +i UTF-8-format. + + +12 UPPHOVSRäTT (COPYRIGHT) +========================== + +Denna fil är Copyright (C) 2025 Andrea Mazzoleni + + +13 SE ÄVEN (SEE ALSO) +===================== + +snapraid_log(1), rsync(1) diff --git a/snapraid-zh.d b/snapraid-zh.d new file mode 100644 index 00000000..07b2122a --- /dev/null +++ b/snapraid-zh.d @@ -0,0 +1,1299 @@ +Name{number} + snapraid - 磁盘阵列的 SnapRAID 备份 + +Synopsis + :snapraid [-c, --conf CONFIG] + : [-f, --filter PATTERN] [-d, --filter-disk NAME] + : [-m, --filter-missing] [-e, --filter-error] + : [-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|probe|up|down|diff|sync|scrub|fix|check + : |list|dup|pool|devices|touch|rehash + + :snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT] + +Description + SnapRAID 是一款专为磁盘阵列设计的备份程序,它存储奇偶校验信息, + 以在最多六个磁盘发生故障时进行数据恢复。 + + SnapRAID 主要面向拥有大型、不常更改文件的家庭媒体中心,提供以下特性: + + * 您可以使用已填充文件的磁盘,无需重新格式化,并像往常一样访问它们。 + * 您的所有数据都会被散列,以确保存储完整性并防止静默损坏。 + * 当故障磁盘数量超过奇偶校验数时,数据丢失仅限于受影响的磁盘; + 其他磁盘上的数据仍然可访问。 + * 如果您不小心删除了磁盘上的文件,可以进行恢复。 + * 磁盘可以有不同的尺寸。 + * 您可以随时添加磁盘。 + * SnapRAID 不会锁定您的数据;您可以随时停止使用它,无需重新格式化或移动数据。 + * 访问文件时,只需一个磁盘转动,从而节省电力并降低噪音。 + + 欲了解更多信息,请访问 SnapRAID 官方网站: + + :https://www.snapraid.it/ + +Limitations + SnapRAID 是 RAID 和备份程序之间的混合体,旨在结合两者的优点。 + 然而,在使用它之前,您应该考虑一些限制。 + + 主要的限制是,如果一个磁盘发生故障而您最近没有进行同步(sync), + 您可能无法完全恢复。 + 更具体地说,您可能无法恢复自上次同步操作以来已更改或已删除文件的 + 大小所对应的部分。 + 即使更改或删除的文件不在发生故障的磁盘上,也会发生这种情况。 + 这就是为什么 SnapRAID 更适用于很少更改的数据。 + + 另一方面,新添加的文件不会阻止对已有文件的恢复。 + 您只会丢失位于发生故障磁盘上的最近添加的文件。 + + SnapRAID 的其他限制包括: + + * 使用 SnapRAID,每个磁盘仍然有单独的文件系统。 + 使用 RAID,您可以获得一个单一的大型文件系统。 + * SnapRAID 不进行数据条带化。 + 使用 RAID,您可以通过条带化获得速度提升。 + * SnapRAID 不支持实时恢复。 + 使用 RAID,当磁盘发生故障时,您不必停止工作。 + * SnapRAID 只能从有限数量的磁盘故障中恢复数据。 + 使用备份,您可以从整个磁盘阵列的完全故障中恢复。 + * 仅保存文件名、时间戳、符号链接和硬链接。 + 不保存权限、所有权和扩展属性。 + +Getting Started + 要使用 SnapRAID,您需要首先选择磁盘阵列中的一个磁盘专用于 + `parity`(奇偶校验)信息。使用一个奇偶校验磁盘, + 您将能够从单磁盘故障中恢复,类似于 RAID5。 + + 如果您想从更多的磁盘故障中恢复,类似于 RAID6, + 您必须预留额外的磁盘用于奇偶校验。每增加一个奇偶校验磁盘, + 就可以多恢复一个磁盘故障。 + + 作为奇偶校验磁盘,您必须选择阵列中最大的磁盘, + 因为奇偶校验信息可能会增长到阵列中最大的数据磁盘的大小。 + + 这些磁盘将专门用于存储 `parity` 文件。 + 您不应该在它们上面存储您的数据。 + + 然后,您必须定义要使用 SnapRAID 保护的 `data`(数据)磁盘。 + 如果这些磁盘包含很少更改的数据,保护会更有效。因此, + 最好**不要**包含 Windows C:\ 磁盘或 Unix 的 /home、/var 和 /tmp 目录。 + + 文件列表保存在 `content`(内容)文件中,通常存储在数据、奇偶校验或 + 引导磁盘上。 + 该文件包含备份的详细信息,包括所有用于验证其完整性的校验和。 + `content` 文件存储有多个副本,每个副本必须位于不同的磁盘上, + 以确保存储有多个磁盘故障时,至少有一个副本可用。 + + 例如,假设您只对一个奇偶校验保护级别感兴趣,并且您的磁盘位于: + + :/mnt/diskp <- 选定的奇偶校验磁盘 + :/mnt/disk1 <- 第一个要保护的磁盘 + :/mnt/disk2 <- 第二个要保护的磁盘 + :/mnt/disk3 <- 第三个要保护的磁盘 + + 您必须创建配置文件 /etc/snapraid.conf,并包含以下选项: + + :parity /mnt/diskp/snapraid.parity + :content /var/snapraid/snapraid.content + :content /mnt/disk1/snapraid.content + :content /mnt/disk2/snapraid.content + :data d1 /mnt/disk1/ + :data d2 /mnt/disk2/ + :data d3 /mnt/disk3/ + + 如果您使用 Windows,您应该使用 Windows 路径格式, + 用驱动器号和反斜杠代替斜杠。 + + :parity E:\snapraid.parity + :content C:\snapraid\snapraid.content + :content F:\array\snapraid.content + :content G:\array\snapraid.content + :data d1 F:\array\ + :data d2 G:\array\ + :data d3 H:\array\ + + 如果您有许多磁盘且驱动器号用尽,您可以将磁盘直接挂载到子文件夹中。请参阅: + + :https://www.google.com/search?q=Windows+mount+point + + 此时,您已准备好运行 `sync` 命令来构建奇偶校验信息。 + + :snapraid sync + + 第一次运行此过程可能需要几个小时,具体取决于磁盘上已存在数据的大小。 + 如果磁盘是空的,则过程是即时的。 + + 您可以随时按 Ctrl+C 停止它,在下次运行时,它将从中断的地方恢复。 + + 当此命令完成时,您的数据是**安全的**。 + + 现在您可以开始随意使用您的阵列,并定期运行 `sync` 命令更新奇偶校验信息。 + + Scrubbing + 要定期检查数据和奇偶校验的错误,您可以运行 `scrub` 命令。 + + :snapraid scrub + + 此命令将阵列中的数据与 `sync` 命令期间计算的散列进行比较, + 以验证完整性。 + + 每次运行该命令会检查大约 8% 的阵列,排除在过去 10 天内 + 已被 scrub 的数据。 + 您可以使用 -p, --plan 选项来指定不同的量, + 并使用 -o, --older-than 选项来指定不同的天数。 + 例如,要检查 20 天以上块的 5% 阵列,请使用: + + :snapraid -p 5 -o 20 scrub + + 如果在过程中发现静默错误或输入/输出错误, + 相应的块会在 `content` 文件中被标记为坏块,并列在 `status` 命令中。 + + :snapraid status + + 要修复它们,您可以使用 `fix` 命令,使用 -e, --filter-error 选项过滤坏块: + + :snapraid -e fix + + 在下次 `scrub` 时,如果它们确实被修复了,错误将从 `status` 报告中消失。 + 为了更快,您可以使用 -p bad 来仅 scrub 标记为坏块的块。 + + :snapraid -p bad scrub + + 在未同步的阵列上运行 `scrub` 可能会报告由已删除或已修改文件引起的错误。 + 这些错误会在 `scrub` 输出中报告,但相关块不会被标记为坏块。 + + Pooling + 注意:下面描述的 pooling 功能已被 mergefs 工具取代, + mergefs 现在是 SnapRAID 社区推荐的 Linux 用户选项。 + Mergefs 提供了一种更灵活、更高效的方式,将多个驱动器汇集到一个 + 统一的挂载点中,允许跨阵列无缝访问文件,而无需依赖符号链接。 + 它与 SnapRAID 很好地集成以提供奇偶校验保护,常用于 + OpenMediaVault (OMV) 或自定义 NAS 配置等设置中。 + + 要使阵列中的所有文件显示在同一个目录树中, + 您可以启用 `pooling` 功能。它使用符号链接创建了一个 + 阵列中所有文件的只读虚拟视图。 + + 您可以在配置文件中使用以下选项配置 `pooling` 目录: + + :pool /pool + + 或者,如果您使用 Windows,则使用: + + :pool C:\pool + + 然后运行 `pool` 命令创建或更新虚拟视图。 + + :snapraid pool + + 如果您使用 Unix 平台并希望通过网络将此目录共享给 Windows 或 Unix 机器, + 您应该在 /etc/samba/smb.conf 中添加以下选项: + + :# 在 smb.conf 的全局部分 + :unix extensions = no + + :# 在 smb.conf 的共享部分 + :[pool] + :comment = Pool + :path = /pool + :read only = yes + :guest ok = yes + :wide links = yes + :follow symlinks = yes + + 在 Windows 中,通过网络共享符号链接需要客户端远程解析它们。 + 要启用此功能,除了共享 pool 目录之外,您还必须独立共享所有磁盘, + 使用配置文件中定义的磁盘名称作为共享点。 + 您还必须在配置文件的 `share` 选项中指定远程客户端访问这些 + 共享磁盘所需的 Windows UNC 路径。 + + 例如,在名为 `darkstar` 的服务器上操作,您可以使用以下选项: + + :data d1 F:\array\ + :data d2 G:\array\ + :data d3 H:\array\ + :pool C:\pool + :share \\darkstar + + 并通过网络共享以下目录: + + :\\darkstar\pool -> C:\pool + :\\darkstar\d1 -> F:\array + :\\darkstar\d2 -> G:\array + :\\darkstar\d3 -> H:\array + + 以允许远程客户端访问 \\darkstar\pool 处的所有文件。 + + 您可能还需要配置远程客户端,使用以下命令启用对远程符号链接的访问: + + :fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 + + Undeleting + SnapRAID 的功能更像一个备份程序而不是 RAID 系统, + 它可以使用 -f, --filter 选项来恢复或取消删除文件到其以前的状态: + + :snapraid fix -f FILE + + 或者对于一个目录: + + :snapraid fix -f DIR/ + + 您也可以使用 -m, --filter-missing 选项来仅恢复目录内意外删除的文件, + 该选项仅恢复丢失的文件,保持所有其他文件不变。 + + :snapraid fix -m -f DIR/ + + 或者使用以下命令恢复所有驱动器上所有已删除的文件: + + :snapraid fix -m + + Recovering + 最糟糕的情况发生了,您丢失了一个或多个磁盘! + + **不要惊慌!** 您将能够恢复它们! + + 您必须做的第一件事是避免对磁盘阵列进行进一步的更改。 + 禁用对其的任何远程连接以及任何计划的进程,包括任何计划的 SnapRAID + 夜间同步或 scrub。 + + 然后继续执行以下步骤。 + + STEP 1 -> 重新配置 + 您需要一些空间来恢复,理想情况下是在额外的备用磁盘上, + 但外部 USB 磁盘或远程磁盘也足够。 + + 修改 SnapRAID 配置文件,使故障磁盘的 `data` 或 `parity` 选项指向 + 一个具有足够空闲空间来恢复文件的位置。 + + 例如,如果磁盘 `d1` 发生故障,则从: + + :data d1 /mnt/disk1/ + + 更改为: + + :data d1 /mnt/new_spare_disk/ + + 如果需要恢复的磁盘是奇偶校验磁盘,请更新相应的 `parity` 选项。 + 如果您有多个故障磁盘,请更新所有它们的配置选项。 + + STEP 2 -> 修复 + 运行 fix 命令,并将日志存储在外部文件中: + + :snapraid -d NAME -l fix.log fix + + 其中 NAME 是磁盘的名称,例如我们前面例子中的 `d1`。 + 如果需要恢复的磁盘是奇偶校验磁盘,请使用名称 `parity`、`2-parity` 等。 + 如果您有多个故障磁盘,请使用多个 -d 选项来指定所有它们。 + + 此命令将花费很长时间。 + + 确保您有几 GB 的可用空间来存储 fix.log 文件。 + 在有足够可用空间的磁盘上运行它。 + + 现在您已经恢复了所有可恢复的内容。如果有些文件部分或完全不可恢复, + 它们将被重命名并添加 `.unrecoverable` 扩展名。 + + 您可以通过检查所有以 `unrecoverable:` 开头的行,在 fix.log 文件中 + 找到所有不可恢复块的详细列表。 + + 如果您对恢复不满意,您可以根据需要重试多次。 + + 例如,如果您在上次 `sync` 之后从阵列中删除了文件, + 这可能导致某些文件无法恢复。 + 在这种情况下,您可以使用 -i, --import 选项重试 `fix`, + 指定这些文件现在在哪里,以便将它们再次包含在恢复过程中。 + + 如果您对恢复感到满意,您可以继续进行, + 但请注意,在同步之后,您不能再重试 `fix` 命令了! + + STEP 3 -> 检查 + 作为一项谨慎的检查,您现在可以运行 `check` 命令,以确保 + 恢复的磁盘上的一切都是正确的。 + + :snapraid -d NAME -a check + + 其中 NAME 是磁盘的名称,例如我们前面例子中的 `d1`。 + + -d 和 -a 选项告诉 SnapRAID 只检查指定的磁盘并忽略所有奇偶校验数据。 + + 此命令将花费很长时间,但如果您不是过于谨慎,可以跳过它。 + + STEP 4 -> 同步 + 运行 `sync` 命令以将阵列与新磁盘重新同步。 + + :snapraid sync + + 如果所有内容都已恢复,此命令是即时的。 + +Commands + SnapRAID 提供了一些简单的命令,允许您: + + * 打印阵列的状态 -> `status` + * 控制磁盘 -> `smart`、`probe`、`up`、`down` + * 进行备份/快照 -> `sync` + * 定期检查数据 -> `scrub` + * 恢复上次备份/快照 -> `fix`。 + + 命令必须用小写字母书写。 + + status + 打印磁盘阵列状态的摘要。 + + 它包括有关奇偶校验碎片、块未经检查有多久,以及在 scrubbing + 期间遇到的所有记录的静默错误的信息。 + + 所提供的信息指的是您上次运行 `sync` 的时间。 + 不考虑后来的修改。 + + 如果检测到坏块,则会列出它们的块号。 + 要修复它们,您可以使用 `fix -e` 命令。 + + 它还会显示一个图表,表示每个块上次被 scrub 或 sync 的时间。 + 被 scrub 的块显示为 '*',已同步但尚未 scrub 的块显示为 'o'。 + + 不会修改任何内容。 + + smart + 打印系统中所有磁盘的 SMART 报告。 + + 它包括对明年故障概率的估计,允许您计划更换显示 + 可疑属性的磁盘进行维护。 + + 此概率估计是通过将磁盘的 SMART 属性与 + Backblaze 提供的以下数据进行关联获得的: + + :https://www.backblaze.com/hard-drive-test-data.html + + 如果 SMART 报告磁盘正在发生故障,则会为该磁盘打印 `FAIL` 或 `PREFAIL`, + 并且 SnapRAID 返回错误。 + 在这种情况下,**强烈建议**立即更换磁盘。 + + 其他可能的状态字符串有: + logfail - 过去,某些属性低于阈值。 + logerr - 设备错误日志包含错误。 + selferr - 设备自检日志包含错误。 + + 如果指定了 -v, --verbose 选项,则会提供更深入的统计分析。 + 此分析可以帮助您决定是否需要更多或更少的奇偶校验。 + + 此命令使用 `smartctl` 工具,相当于在所有设备上运行 `smartctl -a`。 + + 如果您的设备未正确自动检测,您可以使用配置 + 文件中的 `smartctl` 选项指定自定义命令。 + + 不会修改任何内容。 + + probe + 打印系统中所有磁盘的**电源**状态。 + + `Standby`(待机)表示磁盘未转动。`Active`(活动)表示 + 磁盘正在转动。 + + 此命令使用 `smartctl` 工具,相当于在所有设备上运行 + `smartctl -n standby -i`。 + + 如果您的设备未正确自动检测,您可以使用配置 + 文件中的 `smartctl` 选项指定自定义命令。 + + 不会修改任何内容。 + + up + 使阵列中的所有磁盘转动起来。 + + 您可以使用 -d, --filter-disk 选项只启动特定的磁盘。 + + 同时启动所有磁盘需要大量的电力。 + 确保您的电源能够承受。 + + 不会修改任何内容。 + + down + 使阵列中的所有磁盘停转。 + + 此命令使用 `smartctl` 工具,相当于在所有设备上运行 + `smartctl -s standby,now`。 + + 您可以使用 -d, --filter-disk 选项只停转特定的磁盘。 + + 要在发生错误时自动停转,您可以将 -s, --spin-down-on-error + 选项与任何其他命令一起使用,这相当于在发生错误时手动运行 `down`。 + + 不会修改任何内容。 + + diff + 列出自上次 `sync` 以来所有已修改、需要重新计算奇偶校验数据的 + 文件。 + + 此命令不检查文件数据,仅检查文件时间戳、大小和 inode。 + + 列出所有更改的文件后,会显示更改的摘要,按以下方式分组: + equal - 文件与之前相比未更改。 + added - 之前不存在、已添加的文件。 + removed - 已删除的文件。 + updated - 大小或时间戳不同的文件,表示它们已被修改。 + moved - 在同一磁盘上移动到不同目录的文件。 + 它们通过具有相同的名称、大小、时间戳和 inode,但目录不同来识别。 + copied - 在同一磁盘或不同磁盘上复制的文件。请注意,如果 + 它们确实移动到了不同的磁盘,它们也会被计入 `removed` 中。 + 它们通过具有相同的名称、大小和时间戳来识别。如果亚秒级时间戳为零, + 则必须匹配完整路径,而不仅仅是名称。 + restored - inode 不同但名称、大小和时间戳匹配的文件。 + 这些通常是删除后恢复的文件。 + + 如果需要 `sync`,进程返回码为 2,而不是默认的 0。 + 返回码 1 用于一般错误情况。 + + 不会修改任何内容。 + + sync + 更新奇偶校验信息。读取磁盘阵列中所有已修改的文件, + 并更新相应的奇偶校验数据。 + + 您可以随时按 Ctrl+C 停止此过程,而不会丢失已完成的工作。 + 在下次运行时,`sync` 过程将从中断的地方恢复。 + + 如果在过程中发现静默错误或输入/输出错误, + 相应的块会被标记为坏块。 + + 文件通过路径和/或 inode 识别,并检查大小和时间戳。 + 如果文件大小或时间戳不同,则会为整个文件重新计算奇偶校验数据。 + 如果文件在同一磁盘上被移动或重命名,保持相同的 inode,则不重新计算奇偶校验。 + 如果文件移动到另一个磁盘,则重新计算奇偶校验, + 但保留以前计算的散列信息。 + + 如果需要,会修改 `content` 和 `parity` 文件。 + 阵列中的文件**不会**被修改。 + + scrub + Scrub 阵列,检查数据和奇偶校验磁盘中的静默或输入/输出错误。 + + 每次调用检查大约 8% 的阵列,排除在过去 10 天内 + 已被 scrub 的数据。 + 这意味着每周 scrub 一次可确保每隔三个月至少检查一次数据的每一位。 + + 您可以使用 -p, --plan 选项定义不同的 scrub 计划或数量, + 该选项接受: + bad - Scrub 标记为坏块的块。 + new - Scrub 刚刚同步但尚未 scrub 的块。 + full - Scrub 所有内容。 + 0-100 - Scrub 指定百分比的块。 + + 如果指定了百分比数量,您还可以使用 -o, --older-than + 选项来定义块应该有多旧。 + 最旧的块首先被 scrub,确保最佳检查。 + 如果您只想 scrub 刚刚同步但尚未 scrub 的块, + 请使用 `-p new` 选项。 + + 要获取 scrub 状态的详细信息,请使用 `status` 命令。 + + 对于发现的任何静默错误或输入/输出错误,相应的块 + 会在 `content` 文件中被标记为坏块。 + 这些坏块列在 `status` 中,可以使用 `fix -e` 修复。 + 修复后,在下次 scrub 时,它们将被重新检查,如果发现已更正, + 则会删除坏块标记。 + 要仅 scrub 坏块,您可以使用 `scrub -p bad` 命令。 + + 建议仅在已同步的阵列上运行 `scrub`,以避免 + 由未同步数据引起的报告错误。这些错误被识别为不是静默错误, + 并且块不会被标记为坏块,但此类错误会在命令的输出中报告。 + + `content` 文件会被修改以更新每个块上次检查的时间 + 并标记坏块。 + `parity` 文件**不会**被修改。 + 阵列中的文件**不会**被修改。 + + fix + 修复所有文件和奇偶校验数据。 + + 所有文件和奇偶校验数据都与上次 `sync` 中保存的快照 + 状态进行比较。 + 如果发现差异,则将其恢复到存储的快照。 + + **警告!** `fix` 命令不区分错误和 + 故意修改。它**无条件地**将文件状态恢复到上次 `sync`。 + + 如果未指定其他选项,则处理整个阵列。 + 使用过滤选项选择要操作的文件或磁盘的子集。 + + 要仅修复在 `sync` 和 `scrub` 期间标记为坏块的块, + 请使用 -e, --filter-error 选项。 + 与其他过滤选项不同,此选项仅对自上次 `sync` 以来未更改的 + 文件应用修复。 + + SnapRAID 会重命名所有无法修复的文件,并添加 + `.unrecoverable` 扩展名。 + + 在修复之前,会扫描整个阵列以查找自上次 `sync` + 操作以来移动的任何文件。 + 这些文件通过它们的时间戳识别,忽略它们的名称 + 和目录,并在必要时用于恢复过程。 + 如果您将其中一些移到了阵列之外,您可以使用 -i, --import + 选项指定额外的目录进行扫描。 + + 文件仅通过路径识别,而不通过 inode 识别。 + + `content` 文件**不会**被修改。 + 如果需要,`parity` 文件会被修改。 + 如果需要,阵列中的文件会被修改。 + + check + 验证所有文件和奇偶校验数据。 + + 它的工作方式类似于 `fix`,但它只模拟恢复,**不会**对阵列 + 写入任何更改。 + + 此命令主要用于手动验证, + 例如在恢复过程之后或在其他特殊条件下。 + 对于定期和计划的检查,请使用 `scrub`。 + + 如果您使用 -a, --audit-only 选项,则仅检查文件 + 数据散列,而忽略奇偶校验数据,以加快运行速度。 + + 文件仅通过路径识别,而不通过 inode 识别。 + + 不会修改任何内容。 + + list + 列出上次 `sync` 时阵列中包含的所有文件。 + + 使用 -v 或 --verbose,还会显示亚秒级时间。 + + 不会修改任何内容。 + + dup + 列出所有重复文件。如果两个文件的散列匹配,则认为它们相等。 + 不读取文件数据;仅使用预先计算的散列。 + + 不会修改任何内容。 + + pool + 在 `pooling` 目录中创建或更新磁盘阵列中所有文件 + 的虚拟视图。 + + 文件不会被复制,而是使用符号链接连接。 + + 更新时,所有现有的符号链接和空 + 子目录都会被删除,并替换为阵列的新视图。 + 任何其他常规文件保留在原位。 + + 不会修改 pool 目录之外的任何内容。 + + devices + 打印阵列使用的低级设备。 + + 此命令显示阵列中的设备关联,主要用作脚本接口。 + + 前两列是低级设备 ID 和路径。 + 接下来的两列是高级设备 ID 和路径。 + 最后一列是阵列中的磁盘名称。 + + 在大多数情况下,阵列中的每个磁盘都有一个低级设备, + 但在一些更复杂的配置中,单个阵列磁盘可能会使用多个 + 低级设备。 + + 不会修改任何内容。 + + touch + 为所有亚秒级时间戳设置为零的文件设置一个任意的 + 亚秒级时间戳。 + + 这提高了 SnapRAID 识别移动和复制文件的能力, + 因为它使时间戳几乎独一无二,减少了可能的重复。 + + 更具体地说,如果亚秒级时间戳不为零, + 则移动或复制的文件在名称、大小和时间戳匹配时被识别为 + 此类。如果亚秒级时间戳为零,则仅当完整路径、 + 大小和时间戳都匹配时才被视为副本。 + + 不会修改秒精度时间戳, + 因此会保留文件的所有日期和时间。 + + rehash + 安排对整个阵列进行重新散列。 + + 此命令更改使用的散列类型,通常是在从 32 位系统升级到 64 位系统时, + 以从 MurmurHash3 切换到更快的 SpookyHash。 + + 如果您已经在使用最佳散列,则此命令不执行任何操作, + 并通知您无需执行任何操作。 + + 重新散列不会立即执行,而是在 `sync` 和 `scrub` 期间 + 逐步进行。 + + 您可以使用 `status` 检查重新散列状态。 + + 在重新散列期间,SnapRAID 保持完全功能, + 唯一的例外是 `dup` 无法使用不同的散列检测重复的文件。 + +Options + SnapRAID 提供以下选项: + + -c, --conf CONFIG + 选择要使用的配置文件。如果未指定,在 Unix 中, + 如果存在,则使用文件 `/usr/local/etc/snapraid.conf`, + 否则使用 `/etc/snapraid.conf`。 + 在 Windows 中,它使用与 `snapraid.exe` 相同的目录中的文件 `snapraid.conf`。 + + -f, --filter PATTERN + 过滤要在 `check` 和 `fix` 中处理的文件。 + 仅处理与指定模式匹配的文件。 + 此选项可以多次使用。 + 有关模式规范的更多详细信息,请参阅 PATTERN 部分。 + 在 Unix 中,如果使用 globbing 字符,请确保它们被引用。 + 此选项只能与 `check` 和 `fix` 一起使用。 + 不能与 `sync` 和 `scrub` 一起使用,因为它们总是处理整个阵列。 + + -d, --filter-disk NAME + 过滤要在 `check`、`fix`、`up` 和 `down` 中处理的磁盘。 + 您必须指定配置文件中定义的磁盘名称。 + 您也可以指定奇偶校验磁盘的名称:`parity`、`2-parity`、 + `3-parity` 等,以将操作限制到特定的奇偶校验磁盘。 + 如果您组合使用多个 --filter、--filter-disk 和 --filter-missing 选项, + 则仅选择与所有过滤器匹配的文件。 + 此选项可以多次使用。 + 此选项只能与 `check`、`fix`、`up` 和 `down` 一起使用。 + 不能与 `sync` 和 `scrub` 一起使用,因为它们总是处理整个阵列。 + + -m, --filter-missing + 过滤要在 `check` 和 `fix` 中处理的文件。 + 仅处理阵列中丢失或已删除的文件。 + 与 `fix` 一起使用时,此选项充当 `undelete` 命令。 + 如果您组合使用多个 --filter、--filter-disk 和 --filter-missing 选项, + 则仅选择与所有过滤器匹配的文件。 + 此选项只能与 `check` 和 `fix` 一起使用。 + 不能与 `sync` 和 `scrub` 一起使用,因为它们总是处理整个阵列。 + + -e, --filter-error + 处理 `check` 和 `fix` 中有错误的文件。 + 它仅处理在 `sync` 和 `scrub` 期间块被标记为静默或输入/输出错误的 + 文件,如 `status` 中所列。 + 此选项只能与 `check` 和 `fix` 一起使用。 + + -p, --plan PERC|bad|new|full + 选择 scrub 计划。如果 PERC 是一个介于 0 到 100 之间的数值, + 则将其解释为要 scrub 的块的百分比。 + 除了百分比,您还可以指定一个计划: + `bad` scrub 坏块,`new` scrub 尚未 scrub 的块, + `full` scrub 所有内容。 + 此选项只能与 `scrub` 一起使用。 + + -o, --older-than DAYS + 选择要在 `scrub` 中处理的阵列的最旧部分。 + DAYS 是块被 scrub 的最小天数;默认值为 10。 + 无论此选项如何,标记为坏块的块始终会被 scrub。 + 此选项只能与 `scrub` 一起使用。 + + -a, --audit-only + 在 `check` 中,验证文件的散列而不 + 检查奇偶校验数据。 + 如果您只对检查文件数据感兴趣,此选项可以显著加快 + 检查过程。 + 此选项只能与 `check` 一起使用。 + + -h, --pre-hash + 在 `sync` 中,运行所有新数据的初步散列阶段, + 以便在奇偶校验计算之前进行额外验证。 + 通常,在 `sync` 中,不进行初步散列,并且新 + 数据仅在首次读取进行奇偶校验计算之前散列。 + 此过程在系统处于 + 重负载下发生,所有磁盘都在转动,CPU 也很忙。 + 这对机器来说是一种极端情况,如果它有潜在的硬件问题, + 静默错误可能无法被检测到,因为数据尚未散列。 + 为避免此风险,您可以启用 `pre-hash` 模式,将 + 所有数据读取两次以确保其完整性。 + 此选项还会验证阵列内移动的文件, + 以确保移动操作成功,并在必要时 + 允许您在继续之前运行 fix 操作。 + 此选项只能与 `sync` 一起使用。 + + -i, --import DIR + 从指定目录导入自上次 `sync` 以来从阵列中删除的任何文件。 + 如果您仍然拥有此类文件,它们可用于 `check` + 和 `fix` 以改进恢复过程。 + 读取文件,包括在子目录中,并且无论其名称如何都会被识别。 + 此选项只能与 `check` 和 `fix` 一起使用。 + + -s, --spin-down-on-error + 在任何错误发生时,在退出并带有非零状态码之前, + 将所有托管的磁盘停转。这可以防止驱动器在中止操作后 + 保持活动和转动,有助于避免不必要的热量积聚和功耗。 + 使用此选项可确保即使命令失败,磁盘也能安全停止。 + + -w, --bw-limit RATE + 对所有磁盘应用全局带宽限制。RATE 是 + 每秒的字节数。您可以指定乘数,例如 K、M 或 G + (例如,--bw-limit 1G)。 + + -A, --stats + 启用扩展状态视图,显示附加信息。 + 屏幕显示两个图表: + 第一个图表显示每个磁盘的缓冲条带数,以及 + 当前正在该磁盘上访问的文件的文件路径。 + 通常,最慢的磁盘将没有可用缓冲区, + 这决定了可达到的最大带宽。 + 第二个图表显示在过去 100 秒内等待所花费的时间百分比。 + 预计最慢的磁盘会导致大部分等待时间, + 而其他磁盘应该只有很少或没有等待时间, + 因为它们可以使用缓冲条带。 + 此图表还显示了等待散列计算和 RAID + 计算所花费的时间。 + 所有计算都与磁盘操作并行运行。 + 因此,只要至少一个磁盘有可测量的等待时间, + 就表明 CPU 足够快,能够跟上工作负载。 + + -Z, --force-zero + 强制执行不安全的同步操作:同步大小为零但以前非零的文件。 + 如果 SnapRAID 检测到这种情况,它会停止进行, + 除非您指定此选项。 + 这使您可以轻松检测到在系统崩溃后, + 某些访问的文件被截断的情况。 + 这在带有 ext3/ext4 文件系统的 Linux 中是一种可能的情况。 + 此选项只能与 `sync` 一起使用。 + + -E, --force-empty + 强制执行不安全的同步操作:同步所有原始文件丢失的磁盘。 + 如果 SnapRAID 检测到磁盘上最初存在的所有文件都丢失或被重写, + 它会停止进行,除非您指定此选项。 + 这使您可以轻松检测到数据文件系统未挂载的情况。 + 此选项只能与 `sync` 一起使用。 + + -U, --force-uuid + 强制执行不安全的同步、检查和修复操作,当磁盘更改了它们的 UUID 时。 + 如果 SnapRAID 检测到某些磁盘更改了 UUID, + 它会停止进行,除非您指定此选项。 + 这使您可以检测到您的磁盘被挂载在 + 错误的挂载点的情况。 + 但是,允许在单奇偶校验下进行单个 UUID 更改, + 在多奇偶校验下进行更多更改,因为这是恢复后更换磁盘时的正常情况。 + 此选项只能与 `sync`、`check` 或 `fix` 一起使用。 + + -D, --force-device + 强制执行不安全的修复操作,当磁盘无法访问或位于同一物理设备上时。 + 例如,如果您丢失了两个数据磁盘,并且有一个备用磁盘 + 只能恢复第一个,您可以忽略第二个无法访问的磁盘。 + 或者,如果您想在已使用的磁盘上剩余的可用空间中恢复一个磁盘, + 共享同一物理设备。 + 此选项只能与 `fix` 一起使用。 + + -N, --force-nocopy + 在 `sync`、`check` 和 `fix` 中,禁用复制检测启发式。 + 如果没有此选项,SnapRAID 假定具有相同属性(例如名称、大小和时间戳) + 的文件是具有相同数据的副本。 + 这允许识别从一个磁盘移动到另一个磁盘的复制或移动的文件, + 并重用已计算的散列信息以检测静默错误或恢复丢失的文件。 + 在某些罕见的情况下,此行为可能导致误报 + 或由于许多散列验证而导致过程缓慢,此选项允许您解决此类问题。 + 此选项只能与 `sync`、`check` 和 `fix` 一起使用。 + + -F, --force-full + 在 `sync` 中,强制完全重新计算奇偶校验。 + 当您添加新的奇偶校验级别或如果使用较新的奇偶校验数据恢复到旧的内容文件时, + 可以使用此选项。 + 这允许您重用内容文件中存在的散列来验证数据, + 并使用现有奇偶校验数据在 `sync` 过程中保持数据保护, + 而不是从头开始重新创建奇偶校验。 + 此选项只能与 `sync` 一起使用。 + + -R, --force-realloc + 在 `sync` 中,强制完全重新分配文件并重建奇偶校验。 + 此选项可用于完全重新分配所有文件, + 消除碎片,同时重用内容文件中存在的散列来验证数据。 + 此选项只能与 `sync` 一起使用。 + **警告!** 此选项仅供专家使用,强烈建议不要使用它。 + 在 `sync` 操作期间,您**没有**数据保护。 + + -l, --log FILE + 将详细日志写入指定文件。 + 如果未指定此选项,则会将意外错误打印到屏幕, + 在出现许多错误的情况下,可能导致输出过多。 + 指定 -l, --log 时,仅将导致 SnapRAID 停止的**致命错误**打印到 + 屏幕。 + 如果路径以 '>>' 开头,则文件以追加模式打开。 + 名称中的 '%D' 和 '%T' 出现会被替换为日期和时间,格式分别为 YYYYMMDD 和 + HHMMSS。在 Windows 批处理文件中,您必须双写 '%' 字符, + 例如 result-%%D.log。要使用 '>>',您必须将名称括在引号中, + 例如 `">>result.log"`。 + 要将日志输出到标准输出或标准错误, + 您可以使用 `">&1"` 和 `">&2"`。 + 有关日志标签描述,请参阅 snapraid_log.txt 文件或 man 页面。 + + -L, --error-limit NUMBER + 设置停止执行前的新错误限制。 + 默认情况下,如果 SnapRAID 遇到超过 100 个 + 输入/输出错误,它会停止,表明磁盘可能正在发生故障。 + 此选项影响 `sync` 和 `scrub`,它们被允许在第一组 + 磁盘错误后继续,以尝试完成其操作。 + 但是,`check` 和 `fix` 总是会在第一次错误时停止。 + + -S, --start BLKSTART + 从指定的块号开始处理。 + 在磁盘损坏的情况下,这对于重试检查或修复特定块可能很有用。 + 此选项主要用于高级手动恢复。 + + -B, --count BLKCOUNT + 仅处理指定数量的块。 + 此选项主要用于高级手动恢复。 + + -C, --gen-conf CONTENT + 从现有内容文件生成一个虚拟配置文件。 + 配置文件写入标准输出,不会覆盖现有文件。 + 此配置文件还包含在您丢失整个系统的情况下 + 重建磁盘挂载点所需的信息。 + + -v, --verbose + 向屏幕打印更多信息。 + 如果指定一次,它会打印排除的文件 + 和附加统计信息。 + 此选项对日志文件没有影响。 + + -q, --quiet + 向屏幕打印更少信息。 + 如果指定一次,它会删除进度条;两次, + 正在运行的操作;三次,信息 + 消息;四次,状态消息。 + 致命错误始终会打印到屏幕。 + 此选项对日志文件没有影响。 + + -H, --help + 打印简短的帮助屏幕。 + + -V, --version + 打印程序版本。 + +Configuration + SnapRAID 需要一个配置文件来了解您的磁盘阵列 + 位于何处以及在哪里存储奇偶校验信息。 + + 在 Unix 中,如果存在,它使用文件 `/usr/local/etc/snapraid.conf`, + 否则使用 `/etc/snapraid.conf`。 + 在 Windows 中,它使用与 `snapraid.exe` 相同的目录中的文件 `snapraid.conf`。 + + 它必须包含以下选项(区分大小写): + + parity FILE [,FILE] ... + 定义用于存储奇偶校验信息的文件。 + 奇偶校验可实现针对单个磁盘 + 故障的保护,类似于 RAID5。 + + 您可以指定多个文件,它们必须位于不同的磁盘上。 + 当一个文件不能再增长时,使用下一个文件。 + 总可用空间必须至少与阵列中最大的数据磁盘一样大。 + + 您可以稍后添加额外的奇偶校验文件,但是您 + 不能重新排序或删除它们。 + + 将奇偶校验磁盘保留用于奇偶校验可确保它们不会碎片化,从而提高性能。 + + 在 Windows 中,每个磁盘会留下 256 MB 未使用空间,以避免 + 有关磁盘已满的警告。 + + 此选项是强制性的,并且只能使用一次。 + + (2,3,4,5,6)-parity FILE [,FILE] ... + 定义用于存储额外奇偶校验信息的文件。 + + 为指定的每个奇偶校验级别启用一个额外的保护级别: + + * 2-parity 启用 RAID6 双奇偶校验。 + * 3-parity 启用三奇偶校验。 + * 4-parity 启用四奇偶校验。 + * 5-parity 启用五奇偶校验。 + * 6-parity 启用六奇偶校验。 + + 每个奇偶校验级别都需要存在所有先前的奇偶校验级别。 + + 与 'parity' 选项相同的注意事项适用。 + + 这些选项是可选的,并且只能使用一次。 + + z-parity FILE [,FILE] ... + 定义用于存储三奇偶校验的备用文件和格式。 + + 此选项是 '3-parity' 的替代方案,主要面向不支持 + SSSE3 指令集的低端 CPU,如 ARM 或 AMD Phenom、Athlon 和 Opteron。 + 在这种情况下,它提供了更好的性能。 + + 此格式类似于 ZFS RAIDZ3 使用的格式,但更快。 + 与 ZFS 一样,它在三奇偶校验之外不起作用。 + + 当使用 '3-parity' 时,如果建议使用 'z-parity' 格式以提高性能, + 您将收到警告。 + + 可以通过调整配置文件中的所需 z-parity 或 3-parity 文件, + 并使用 'fix' 重新创建它,从一种格式转换为另一种格式。 + + content FILE + 定义用于存储磁盘阵列中所有文件的列表和校验和的文件。 + + 它可以放置在用于数据、奇偶校验或 + 任何其他可用磁盘上。 + 如果您使用数据磁盘,此文件会自动从 `sync` 过程中排除。 + + 此选项是强制性的,并且可以多次使用以保存 + 同一文件的多个副本。 + + 您必须为使用的每个奇偶校验磁盘存储至少一个副本, + 再加上一个。使用额外的副本不会有害。 + + data NAME DIR + 定义阵列中数据磁盘的名称和挂载点。 + NAME 用于标识磁盘,并且必须是唯一的。 + DIR 是磁盘在文件系统中的挂载点。 + + 您可以根据需要更改挂载点,只要保持 NAME 固定即可。 + + 您应该为阵列中的每个数据磁盘使用一个选项。 + + 您可以通过直接在配置文件中更改 NAME,然后运行 `sync` 命令来 + 稍后重命名磁盘。 + 在重命名的情况下,关联是使用存储的磁盘 UUID 完成的。 + + nohidden + 排除所有隐藏文件和目录。 + 在 Unix 中,隐藏文件是以 `.` 开头的文件。 + 在 Windows 中,它们是具有隐藏属性的文件。 + + exclude/include PATTERN + 定义要从同步过程中排除或包含的文件或目录模式。 + 所有模式都按指定的顺序处理。 + + 如果匹配的第一个模式是 `exclude` 模式,则排除该文件。 + 如果它是 `include` 模式,则包含该文件。 + 如果没有模式匹配,则如果指定的最后一个模式是 `include`,则排除该文件, + 或者如果指定的最后一个模式是 `exclude`,则包含该文件。 + + 有关模式规范的更多详细信息,请参阅 PATTERN 部分。 + + 此选项可以多次使用。 + + blocksize SIZE_IN_KIBIBYTES + 定义奇偶校验的基本块大小(以 KiB 为单位)。 + 一 KiB 是 1024 字节。 + + 默认的 blocksize 是 256,这应该适用于大多数情况。 + + **警告!** 此选项仅供专家使用,强烈建议不要更改此值。 + 将来要更改此值,您将需要重新创建整个奇偶校验! + + 使用不同 blocksize 的一个原因是,如果您有许多小型文件, + 数量级为数百万。 + + 对于每个文件,即使只有几个字节,也会分配一个完整的奇偶校验块, + 并且对于许多文件,这可能导致大量的未使用奇偶校验空间。 + 当您完全填满奇偶校验磁盘时,不允许向数据磁盘 + 添加更多文件。 + 但是,浪费的奇偶校验不会跨数据磁盘累积。 + 数据磁盘上大量文件导致的浪费空间仅限制该数据磁盘上的数据量, + 而不限制其他磁盘上的数据量。 + + 作为一个近似值,您可以假设每个文件浪费了半个块大小的空间。 + 例如,对于 100,000 个文件和 256 KiB 的块大小,您将浪费 12.8 GB 的奇偶校验空间, + 这可能导致数据磁盘上少 12.8 GB 的可用空间。 + + 您可以使用 `status` 检查每个磁盘上浪费的空间量。 + 这是您必须在数据磁盘上留出的空闲空间量, + 或用于不包含在阵列中的文件的空间量。 + 如果此值为负,则表示您即将填满奇偶校验空间, + 它表示您仍然可以浪费的空间。 + + 为避免此问题,您可以为奇偶校验使用更大的分区。 + 例如,如果奇偶校验分区比数据磁盘大 12.8 GB, + 则您有足够的额外空间来处理每个数据磁盘上多达 100,000 个 + 文件而不会浪费任何空间。 + + 在 Linux 中获得更大的奇偶校验分区的一个技巧是使用以下命令格式化它: + + :mkfs.ext4 -m 0 -T largefile4 DEVICE + + 这会导致大约 1.5% 的额外空间,对于 4 TB 磁盘约为 60 GB, + 这允许每个数据磁盘上大约 460,000 个文件而不会浪费任何空间。 + + hashsize SIZE_IN_BYTES + 定义保存块的散列大小(以字节为单位)。 + + 默认的 hashsize 是 16 字节(128 位),这应该适用于大多数情况。 + + **警告!** 此选项仅供专家使用,强烈建议不要更改此值。 + 将来要更改此值,您将需要重新创建整个奇偶校验! + + 使用不同 hashsize 的一个原因是,如果您的系统内存有限。 + 根据经验,SnapRAID 通常每 16 TB 的阵列数据需要 1 GiB 的 RAM。 + + 具体来说,为了存储数据的散列,SnapRAID 大约需要 + $TS*(1+HS)/BS$ 字节的 RAM, + 其中 $TS$ 是您的磁盘阵列的总大小(以字节为单位),$BS$ 是块大小(以字节为单位), + $HS$ 是散列大小(以字节为单位)。 + + 例如,对于 8 个 4 TB 磁盘,块大小为 256 KiB + (1 KiB = 1024 字节),散列大小为 16,您将获得: + + :RAM = $(8 * 4 * 10^{12}) * (1+16) / (256 * 2^{10}) = 1.93$ GiB + + 切换到散列大小为 8,您将获得: + + :RAM = $(8 * 4 * 10^{12}) * (1+8) / (256 * 2^{10}) = 1.02$ GiB + + 切换到块大小为 512,您将获得: + + :RAM = $(8 * 4 * 10^{12}) * (1+16) / (512 * 2^{10}) = 0.96$ GiB + + 切换到散列大小为 8 和块大小为 512,您将获得: + + :RAM = $(8 * 4 * 10^{12}) * (1+8) / (512 * 2^{10}) = 0.51$ GiB + + autosave SIZE_IN_GIGABYTES + 在同步或 scrub 之后,处理指定数量的 GB 后,自动保存状态。 + 此选项有助于避免在机器崩溃或任何其他事件中断时, + 从头开始重新启动长时间的 `sync` 命令。 + + temp_limit TEMPERATURE_CELSIUS + 设置允许的最高磁盘温度(摄氏度)。指定后, + SnapRAID 会使用 smartctl 工具定期检查所有磁盘的温度。 + SnapRAID 运行时会显示当前磁盘温度。 + 如果任何磁盘超过此限制,所有操作都会停止, + 并在 `temp_sleep` 选项定义的持续时间内将磁盘停转(置于待机状态)。 + 在休眠期过后,操作恢复,如果温度限制再次达到, + 可能会再次暂停。 + + 在操作期间,SnapRAID 还会分析每个磁盘的加热曲线, + 并估计如果活动继续,它们预计将达到的长期稳定温度。 + 仅在磁盘温度增加了四次后才执行估计, + 以确保有足够的数据点来建立可靠的趋势。 + 此预测的稳定温度显示在当前值旁边的括号中, + 有助于评估系统的冷却是否足够。 + 此估计温度仅供参考,对 SnapRAID 的行为没有影响。 + 程序的动作仅基于实际测量的磁盘温度。 + + 要执行此分析,SnapRAID 需要一个系统温度的参考。 + 它首先尝试从可用的硬件传感器读取。 + 如果无法访问系统传感器,它会使用运行时测量的最低磁盘温度 + 作为备用参考。 + + 通常,SnapRAID 只显示最热磁盘的温度。 + 要显示所有磁盘的温度,请使用 -A 或 --stats 选项。 + + temp_sleep TIME_IN_MINUTES + 设置达到温度限制时的待机时间(以分钟为单位)。 + 在此期间,磁盘保持停转状态。默认值为 5 分钟。 + + pool DIR + 定义 `pooling` 目录,其中使用 `pool` 命令创建磁盘 + 阵列的虚拟视图。 + + 目录必须已经存在。 + + share UNC_DIR + 定义远程访问磁盘所需的 Windows UNC 路径。 + + 如果指定了此选项,则在 pool 目录中创建的符号链接会使用此 UNC 路径 + 来访问磁盘。 + 如果没有此选项,则生成的符号链接仅使用本地路径, + 这不允许通过网络共享 pool 目录。 + + 符号链接是使用指定的 UNC 路径,添加在 `data` 选项中指定的 + 磁盘名称,最后添加文件目录和名称形成的。 + + 此选项仅在 Windows 中需要。 + + smartctl DISK/PARITY OPTIONS... + 定义自定义 smartctl 选项以获取每个磁盘的 SMART 属性。 + 这对于 RAID 控制器和一些无法自动检测的 USB + 磁盘可能需要。%s 占位符会被设备名称替换, + 但对于固定的设备(如 RAID 控制器)是可选的。 + + DISK 是在 `data` 选项中指定的相同磁盘名称。 + PARITY 是奇偶校验名称之一:`parity`、`2-parity`、`3-parity`、 + `4-parity`、`5-parity`、`6-parity` 或 `z-parity`。 + + 在指定的 OPTIONS 中,字符串 `%s` 被设备名称替换。 + 对于 RAID 控制器,设备可能是固定的, + 您可能不需要使用 `%s`。 + + 请参阅 smartmontools 文档以了解可能的选项: + + :https://www.smartmontools.org/wiki/Supported_RAID-Controllers + :https://www.smartmontools.org/wiki/Supported_USB-Devices + + 例如: + + :smartctl parity -d sat %s + + smartignore DISK/PARITY ATTR [ATTR...] + 在计算磁盘故障概率时忽略指定的 SMART 属性。 + 如果磁盘报告了特定属性的不寻常或误导值,此选项很有用。 + + DISK 是在 `data` 选项中指定的相同磁盘名称。 + PARITY 是奇偶校验名称之一:`parity`、`2-parity`、`3-parity`、 + `4-parity`、`5-parity`、`6-parity` 或 `z-parity`。 + 特殊值 * 可用于在所有磁盘上忽略该属性。 + + 例如,要在所有磁盘上忽略 `Current Pending Sector Count` 属性: + + :smartignore * 197 + + 要仅在第一个奇偶校验磁盘上忽略它: + + :smartignore parity 197 + + Examples + Unix 的典型配置示例如下: + + :parity /mnt/diskp/snapraid.parity + :content /mnt/diskp/snapraid.content + :content /var/snapraid/snapraid.content + :data d1 /mnt/disk1/ + :data d2 /mnt/disk2/ + :data d3 /mnt/disk3/ + :exclude /lost+found/ + :exclude /tmp/ + :smartctl d1 -d sat %s + :smartctl d2 -d usbjmicron %s + :smartctl parity -d areca,1/1 /dev/sg0 + :smartctl 2-parity -d areca,2/1 /dev/sg0 + + Windows 的典型配置示例如下: + + :parity E:\snapraid.parity + :content E:\snapraid.content + :content C:\snapraid\snapraid.content + :data d1 G:\array\ + :data d2 H:\array\ + :data d3 I:\array\ + :exclude Thumbs.db + :exclude \$RECYCLE.BIN + :exclude \System Volume Information + :smartctl d1 -d sat %s + :smartctl d2 -d usbjmicron %s + :smartctl parity -d areca,1/1 /dev/arcmsr0 + :smartctl 2-parity -d areca,2/1 /dev/arcmsr0 + +Pattern + 模式用于选择要排除或包含在过程中的文件子集。 + + 有四种不同类型的模式: + + =FILE + 选择任何名为 FILE 的文件。您可以使用任何 globbing + 字符,如 * 和 ?,以及字符类,如 [a-z]。 + 此模式仅适用于文件,不适用于目录。 + + =DIR/ + 选择任何名为 DIR 的目录及其内部的所有内容。 + 您可以使用任何 globbing 字符,如 * 和 ?。 + 此模式仅适用于目录,不适用于文件。 + + =/PATH/FILE + 选择完全指定的 file path。您可以使用任何 + globbing 字符,如 * 和 ?,但它们绝不匹配 + 目录斜杠。 + 此模式仅适用于文件,不适用于目录。 + + =/PATH/DIR/ + 选择完全指定的 directory path 及其内部的所有内容。 + 您可以使用任何 globbing 字符,如 * 和 ?,但 + 它们绝不匹配目录斜杠。 + 此模式仅适用于目录,不适用于文件。 + + 当您指定以 / 开头的绝对路径时,它应用于阵列**根目录**, + 而不是本地文件系统根目录。 + + 在 Windows 中,您可以使用反斜杠 \ 代替正斜杠 /。 + Windows 系统目录、连接点、挂载点和其他 Windows + 特殊目录被视为文件,这意味着要排除它们, + 您必须使用文件规则,而不是目录规则。 + + 如果文件名包含 '*'、'?'、'[' + 或 ']' 字符,您必须对其进行转义,以避免将其解释为 + globbing 字符。在 Unix 中,转义字符是 '\';在 Windows 中,它是 '^'。 + 当模式在命令行上时,您必须双写转义 + 字符,以避免命令 shell 对其进行解释。 + + 在配置文件中,您可以使用不同的策略来过滤要处理的文件。 + 最简单的方法是仅使用 `exclude` 规则来删除所有您不想处理的 + 文件和目录。例如: + + :# 排除任何名为 `*.unrecoverable` 的文件 + :exclude *.unrecoverable + :# 排除根目录 `/lost+found` + :exclude /lost+found/ + :# 排除任何名为 `tmp` 的子目录 + :exclude tmp/ + + 相反的方法是仅定义您想要处理的文件,仅使用 `include` 规则。例如: + + :# 仅包含一些目录 + :include /movies/ + :include /musics/ + :include /pictures/ + + 最后的方法是混合使用 `exclude` 和 `include` 规则。在这种情况下, + 规则的顺序很重要。较早的规则优先于 + 较晚的规则。 + 为了简化,您可以先列出所有 `exclude` 规则,然后 + 列出所有 `include` 规则。例如: + + :# 排除任何名为 `*.unrecoverable` 的文件 + :exclude *.unrecoverable + :# 排除任何名为 `tmp` 的子目录 + :exclude tmp/ + :# 仅包含一些目录 + :include /movies/ + :include /musics/ + :include /pictures/ + + 在命令行上,使用 -f 选项,您只能使用 `include` + 模式。例如: + + :# 仅检查 .mp3 文件。 + :# 在 Unix 中,使用引号以避免 shell 扩展 globbing。 + :snapraid -f "*.mp3" check + + 在 Unix 中,在命令行上使用 globbing 字符时,必须 + 引用它们以防止 shell 扩展它们。 + +Content + SnapRAID 将文件列表和校验和存储在 content 文件中。 + + 它是一个二进制文件,列出了磁盘阵列中存在的所有文件, + 以及用于验证其完整性的所有校验和。 + + 此文件由 `sync` 和 `scrub` 命令读取和写入,并由 + `fix`、`check` 和 `status` 命令读取。 + +Parity + SnapRAID 将阵列的奇偶校验信息存储在 parity 文件中。 + + 这些是二进制文件,包含 `content` 文件中定义的所有 + 块的计算奇偶校验。 + + 这些文件由 `sync` 和 `fix` 命令读取和写入, + 并且仅由 `scrub` 和 `check` 命令读取。 + +Encoding + SnapRAID 在 Unix 中忽略任何编码。它读取并存储 + 文件系统使用的相同编码的文件名。 + + 在 Windows 中,从文件系统读取的所有名称都会被转换并 + 以 UTF-8 格式处理。 + + 要使文件名正确打印,您必须使用命令 `chcp 65001` 将 Windows + 控制台设置为 UTF-8 模式,并使用 TrueType 字体,如 `Lucida Console`, + 作为控制台字体。这仅影响打印的文件名;如果 + 您将控制台输出重定向到文件,则生成的文件始终 + 采用 UTF-8 格式。 + +Copyright + 此文件版权所有 (C) 2025 Andrea Mazzoleni + +See Also + snapraid_log(1), rsync(1) diff --git a/snapraid-zh.txt b/snapraid-zh.txt new file mode 100644 index 00000000..ae444847 --- /dev/null +++ b/snapraid-zh.txt @@ -0,0 +1,1413 @@ + ================= + 磁盘阵列的 SnapRAID 备份 + ================= + + +1 SYNOPSIS +========== + +snapraid [-c, --conf CONFIG] + [-f, --filter PATTERN] [-d, --filter-disk NAME] + [-m, --filter-missing] [-e, --filter-error] + [-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|probe|up|down|diff|sync|scrub|fix|check + |list|dup|pool|devices|touch|rehash + +snapraid [-V, --version] [-H, --help] [-C, --gen-conf CONTENT] + + +2 DESCRIPTION +============= + +SnapRAID 是一款专为磁盘阵列设计的备份程序,它存储奇偶校验信息, +以在最多六个磁盘发生故障时进行数据恢复。 + +SnapRAID 主要面向拥有大型、不常更改文件的家庭媒体中心,提供以下特性: + +* 您可以使用已填充文件的磁盘,无需重新格式化,并像往常一样访问它们。 +* 您的所有数据都会被散列,以确保存储完整性并防止静默损坏。 +* 当故障磁盘数量超过奇偶校验数时,数据丢失仅限于受影响的磁盘; + 其他磁盘上的数据仍然可访问。 +* 如果您不小心删除了磁盘上的文件,可以进行恢复。 +* 磁盘可以有不同的尺寸。 +* 您可以随时添加磁盘。 +* SnapRAID 不会锁定您的数据;您可以随时停止使用它,无需重新格式化或移动数据。 +* 访问文件时,只需一个磁盘转动,从而节省电力并降低噪音。 + +欲了解更多信息,请访问 SnapRAID 官方网站: + + https://www.snapraid.it/ + + +3 LIMITATIONS +============= + +SnapRAID 是 RAID 和备份程序之间的混合体,旨在结合两者的优点。 +然而,在使用它之前,您应该考虑一些限制。 + +主要的限制是,如果一个磁盘发生故障而您最近没有进行同步(sync), +您可能无法完全恢复。 +更具体地说,您可能无法恢复自上次同步操作以来已更改或已删除文件的 +大小所对应的部分。 +即使更改或删除的文件不在发生故障的磁盘上,也会发生这种情况。 +这就是为什么 SnapRAID 更适用于很少更改的数据。 + +另一方面,新添加的文件不会阻止对已有文件的恢复。 +您只会丢失位于发生故障磁盘上的最近添加的文件。 + +SnapRAID 的其他限制包括: + +* 使用 SnapRAID,每个磁盘仍然有单独的文件系统。 + 使用 RAID,您可以获得一个单一的大型文件系统。 +* SnapRAID 不进行数据条带化。 + 使用 RAID,您可以通过条带化获得速度提升。 +* SnapRAID 不支持实时恢复。 + 使用 RAID,当磁盘发生故障时,您不必停止工作。 +* SnapRAID 只能从有限数量的磁盘故障中恢复数据。 + 使用备份,您可以从整个磁盘阵列的完全故障中恢复。 +* 仅保存文件名、时间戳、符号链接和硬链接。 + 不保存权限、所有权和扩展属性。 + + +4 GETTING STARTED +================= + +要使用 SnapRAID,您需要首先选择磁盘阵列中的一个磁盘专用于 +`parity`(奇偶校验)信息。使用一个奇偶校验磁盘, +您将能够从单磁盘故障中恢复,类似于 RAID5。 + +如果您想从更多的磁盘故障中恢复,类似于 RAID6, +您必须预留额外的磁盘用于奇偶校验。每增加一个奇偶校验磁盘, +就可以多恢复一个磁盘故障。 + +作为奇偶校验磁盘,您必须选择阵列中最大的磁盘, +因为奇偶校验信息可能会增长到阵列中最大的数据磁盘的大小。 + +这些磁盘将专门用于存储 `parity` 文件。 +您不应该在它们上面存储您的数据。 + +然后,您必须定义要使用 SnapRAID 保护的 `data`(数据)磁盘。 +如果这些磁盘包含很少更改的数据,保护会更有效。因此, +最好**不要**包含 Windows C:\ 磁盘或 Unix 的 /home、/var 和 /tmp 目录。 + +文件列表保存在 `content`(内容)文件中,通常存储在数据、奇偶校验或 +引导磁盘上。 +该文件包含备份的详细信息,包括所有用于验证其完整性的校验和。 +`content` 文件存储有多个副本,每个副本必须位于不同的磁盘上, +以确保存储有多个磁盘故障时,至少有一个副本可用。 + +例如,假设您只对一个奇偶校验保护级别感兴趣,并且您的磁盘位于: + + /mnt/diskp <- 选定的奇偶校验磁盘 + /mnt/disk1 <- 第一个要保护的磁盘 + /mnt/disk2 <- 第二个要保护的磁盘 + /mnt/disk3 <- 第三个要保护的磁盘 + +您必须创建配置文件 /etc/snapraid.conf,并包含以下选项: + + parity /mnt/diskp/snapraid.parity + content /var/snapraid/snapraid.content + content /mnt/disk1/snapraid.content + content /mnt/disk2/snapraid.content + data d1 /mnt/disk1/ + data d2 /mnt/disk2/ + data d3 /mnt/disk3/ + +如果您使用 Windows,您应该使用 Windows 路径格式, +用驱动器号和反斜杠代替斜杠。 + + parity E:\snapraid.parity + content C:\snapraid\snapraid.content + content F:\array\snapraid.content + content G:\array\snapraid.content + data d1 F:\array\ + data d2 G:\array\ + data d3 H:\array\ + +如果您有许多磁盘且驱动器号用尽,您可以将磁盘直接挂载到子文件夹中。请参阅: + + https://www.google.com/search?q=Windows+mount+point + +此时,您已准备好运行 `sync` 命令来构建奇偶校验信息。 + + snapraid sync + +第一次运行此过程可能需要几个小时,具体取决于磁盘上已存在数据的大小。 +如果磁盘是空的,则过程是即时的。 + +您可以随时按 Ctrl+C 停止它,在下次运行时,它将从中断的地方恢复。 + +当此命令完成时,您的数据是**安全的**。 + +现在您可以开始随意使用您的阵列,并定期运行 `sync` 命令更新奇偶校验信息。 + +4.1 Scrubbing +------------- + +要定期检查数据和奇偶校验的错误,您可以运行 `scrub` 命令。 + + snapraid scrub + +此命令将阵列中的数据与 `sync` 命令期间计算的散列进行比较, +以验证完整性。 + +每次运行该命令会检查大约 8% 的阵列,排除在过去 10 天内 +已被 scrub 的数据。 +您可以使用 -p, --plan 选项来指定不同的量, +并使用 -o, --older-than 选项来指定不同的天数。 +例如,要检查 20 天以上块的 5% 阵列,请使用: + + snapraid -p 5 -o 20 scrub + +如果在过程中发现静默错误或输入/输出错误, +相应的块会在 `content` 文件中被标记为坏块,并列在 `status` 命令中。 + + snapraid status + +要修复它们,您可以使用 `fix` 命令,使用 -e, --filter-error 选项过滤坏块: + + snapraid -e fix + +在下次 `scrub` 时,如果它们确实被修复了,错误将从 `status` 报告中消失。 +为了更快,您可以使用 -p bad 来仅 scrub 标记为坏块的块。 + + snapraid -p bad scrub + +在未同步的阵列上运行 `scrub` 可能会报告由已删除或已修改文件引起的错误。 +这些错误会在 `scrub` 输出中报告,但相关块不会被标记为坏块。 + +4.2 Pooling +----------- + +注意:下面描述的 pooling 功能已被 mergefs 工具取代, +mergefs 现在是 SnapRAID 社区推荐的 Linux 用户选项。 +Mergefs 提供了一种更灵活、更高效的方式,将多个驱动器汇集到一个 +统一的挂载点中,允许跨阵列无缝访问文件,而无需依赖符号链接。 +它与 SnapRAID 很好地集成以提供奇偶校验保护,常用于 +OpenMediaVault (OMV) 或自定义 NAS 配置等设置中。 + +要使阵列中的所有文件显示在同一个目录树中, +您可以启用 `pooling` 功能。它使用符号链接创建了一个 +阵列中所有文件的只读虚拟视图。 + +您可以在配置文件中使用以下选项配置 `pooling` 目录: + + pool /pool + +或者,如果您使用 Windows,则使用: + + pool C:\pool + +然后运行 `pool` 命令创建或更新虚拟视图。 + + snapraid pool + +如果您使用 Unix 平台并希望通过网络将此目录共享给 Windows 或 Unix 机器, +您应该在 /etc/samba/smb.conf 中添加以下选项: + + # 在 smb.conf 的全局部分 + unix extensions = no + + # 在 smb.conf 的共享部分 + [pool] + comment = Pool + path = /pool + read only = yes + guest ok = yes + wide links = yes + follow symlinks = yes + +在 Windows 中,通过网络共享符号链接需要客户端远程解析它们。 +要启用此功能,除了共享 pool 目录之外,您还必须独立共享所有磁盘, +使用配置文件中定义的磁盘名称作为共享点。 +您还必须在配置文件的 `share` 选项中指定远程客户端访问这些 +共享磁盘所需的 Windows UNC 路径。 + +例如,在名为 `darkstar` 的服务器上操作,您可以使用以下选项: + + data d1 F:\array\ + data d2 G:\array\ + data d3 H:\array\ + pool C:\pool + share \\darkstar + +并通过网络共享以下目录: + + \\darkstar\pool -> C:\pool + \\darkstar\d1 -> F:\array + \\darkstar\d2 -> G:\array + \\darkstar\d3 -> H:\array + +以允许远程客户端访问 \\darkstar\pool 处的所有文件。 + +您可能还需要配置远程客户端,使用以下命令启用对远程符号链接的访问: + + fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1 + +4.3 Undeleting +-------------- + +SnapRAID 的功能更像一个备份程序而不是 RAID 系统, +它可以使用 -f, --filter 选项来恢复或取消删除文件到其以前的状态: + + snapraid fix -f FILE + +或者对于一个目录: + + snapraid fix -f DIR/ + +您也可以使用 -m, --filter-missing 选项来仅恢复目录内意外删除的文件, +该选项仅恢复丢失的文件,保持所有其他文件不变。 + + snapraid fix -m -f DIR/ + +或者使用以下命令恢复所有驱动器上所有已删除的文件: + + snapraid fix -m + +4.4 Recovering +-------------- + +最糟糕的情况发生了,您丢失了一个或多个磁盘! + +**不要惊慌!** 您将能够恢复它们! + +您必须做的第一件事是避免对磁盘阵列进行进一步的更改。 +禁用对其的任何远程连接以及任何计划的进程,包括任何计划的 SnapRAID +夜间同步或 scrub。 + +然后继续执行以下步骤。 + +---- 4.4.1 STEP 1 -> 重新配置 ---- +您需要一些空间来恢复,理想情况下是在额外的备用磁盘上, +但外部 USB 磁盘或远程磁盘也足够。 + +修改 SnapRAID 配置文件,使故障磁盘的 `data` 或 `parity` 选项指向 +一个具有足够空闲空间来恢复文件的位置。 + +例如,如果磁盘 `d1` 发生故障,则从: + + data d1 /mnt/disk1/ + +更改为: + + data d1 /mnt/new_spare_disk/ + +如果需要恢复的磁盘是奇偶校验磁盘,请更新相应的 `parity` 选项。 +如果您有多个故障磁盘,请更新所有它们的配置选项。 + +---- 4.4.2 STEP 2 -> 修复 ---- +运行 fix 命令,并将日志存储在外部文件中: + + snapraid -d NAME -l fix.log fix + +其中 NAME 是磁盘的名称,例如我们前面例子中的 `d1`。 +如果需要恢复的磁盘是奇偶校验磁盘,请使用名称 `parity`、`2-parity` 等。 +如果您有多个故障磁盘,请使用多个 -d 选项来指定所有它们。 + +此命令将花费很长时间。 + +确保您有几 GB 的可用空间来存储 fix.log 文件。 +在有足够可用空间的磁盘上运行它。 + +现在您已经恢复了所有可恢复的内容。如果有些文件部分或完全不可恢复, +它们将被重命名并添加 `.unrecoverable` 扩展名。 + +您可以通过检查所有以 `unrecoverable:` 开头的行,在 fix.log 文件中 +找到所有不可恢复块的详细列表。 + +如果您对恢复不满意,您可以根据需要重试多次。 + +例如,如果您在上次 `sync` 之后从阵列中删除了文件, +这可能导致某些文件无法恢复。 +在这种情况下,您可以使用 -i, --import 选项重试 `fix`, +指定这些文件现在在哪里,以便将它们再次包含在恢复过程中。 + +如果您对恢复感到满意,您可以继续进行, +但请注意,在同步之后,您不能再重试 `fix` 命令了! + +---- 4.4.3 STEP 3 -> 检查 ---- +作为一项谨慎的检查,您现在可以运行 `check` 命令,以确保 +恢复的磁盘上的一切都是正确的。 + + snapraid -d NAME -a check + +其中 NAME 是磁盘的名称,例如我们前面例子中的 `d1`。 + + -d 和 -a 选项告诉 SnapRAID 只检查指定的磁盘并忽略所有奇偶校验数据。 + +此命令将花费很长时间,但如果您不是过于谨慎,可以跳过它。 + +---- 4.4.4 STEP 4 -> 同步 ---- +运行 `sync` 命令以将阵列与新磁盘重新同步。 + + snapraid sync + +如果所有内容都已恢复,此命令是即时的。 + + +5 COMMANDS +========== + +SnapRAID 提供了一些简单的命令,允许您: + +* 打印阵列的状态 -> `status` +* 控制磁盘 -> `smart`、`probe`、`up`、`down` +* 进行备份/快照 -> `sync` +* 定期检查数据 -> `scrub` +* 恢复上次备份/快照 -> `fix`。 + +命令必须用小写字母书写。 + +5.1 status +---------- + +打印磁盘阵列状态的摘要。 + +它包括有关奇偶校验碎片、块未经检查有多久,以及在 scrubbing +期间遇到的所有记录的静默错误的信息。 + +所提供的信息指的是您上次运行 `sync` 的时间。 +不考虑后来的修改。 + +如果检测到坏块,则会列出它们的块号。 +要修复它们,您可以使用 `fix -e` 命令。 + +它还会显示一个图表,表示每个块上次被 scrub 或 sync 的时间。 +被 scrub 的块显示为 '*',已同步但尚未 scrub 的块显示为 'o'。 + +不会修改任何内容。 + +5.2 smart +--------- + +打印系统中所有磁盘的 SMART 报告。 + +它包括对明年故障概率的估计,允许您计划更换显示 +可疑属性的磁盘进行维护。 + +此概率估计是通过将磁盘的 SMART 属性与 +Backblaze 提供的以下数据进行关联获得的: + + https://www.backblaze.com/hard-drive-test-data.html + +如果 SMART 报告磁盘正在发生故障,则会为该磁盘打印 `FAIL` 或 `PREFAIL`, +并且 SnapRAID 返回错误。 +在这种情况下,**强烈建议**立即更换磁盘。 + +其他可能的状态字符串有: + logfail - 过去,某些属性低于阈值。 + logerr - 设备错误日志包含错误。 + selferr - 设备自检日志包含错误。 + +如果指定了 -v, --verbose 选项,则会提供更深入的统计分析。 +此分析可以帮助您决定是否需要更多或更少的奇偶校验。 + +此命令使用 `smartctl` 工具,相当于在所有设备上运行 `smartctl -a`。 + +如果您的设备未正确自动检测,您可以使用配置 +文件中的 `smartctl` 选项指定自定义命令。 + +不会修改任何内容。 + +5.3 probe +--------- + +打印系统中所有磁盘的**电源**状态。 + +`Standby`(待机)表示磁盘未转动。`Active`(活动)表示 +磁盘正在转动。 + +此命令使用 `smartctl` 工具,相当于在所有设备上运行 +`smartctl -n standby -i`。 + +如果您的设备未正确自动检测,您可以使用配置 +文件中的 `smartctl` 选项指定自定义命令。 + +不会修改任何内容。 + +5.4 up +------ + +使阵列中的所有磁盘转动起来。 + +您可以使用 -d, --filter-disk 选项只启动特定的磁盘。 + +同时启动所有磁盘需要大量的电力。 +确保您的电源能够承受。 + +不会修改任何内容。 + +5.5 down +-------- + +使阵列中的所有磁盘停转。 + +此命令使用 `smartctl` 工具,相当于在所有设备上运行 +`smartctl -s standby,now`。 + +您可以使用 -d, --filter-disk 选项只停转特定的磁盘。 + +要在发生错误时自动停转,您可以将 -s, --spin-down-on-error +选项与任何其他命令一起使用,这相当于在发生错误时手动运行 `down`。 + +不会修改任何内容。 + +5.6 diff +-------- + +列出自上次 `sync` 以来所有已修改、需要重新计算奇偶校验数据的 +文件。 + +此命令不检查文件数据,仅检查文件时间戳、大小和 inode。 + +列出所有更改的文件后,会显示更改的摘要,按以下方式分组: + equal - 文件与之前相比未更改。 + added - 之前不存在、已添加的文件。 + removed - 已删除的文件。 + updated - 大小或时间戳不同的文件,表示它们已被修改。 + moved - 在同一磁盘上移动到不同目录的文件。 + 它们通过具有相同的名称、大小、时间戳和 inode,但目录不同来识别。 + copied - 在同一磁盘或不同磁盘上复制的文件。请注意,如果 + 它们确实移动到了不同的磁盘,它们也会被计入 `removed` 中。 + 它们通过具有相同的名称、大小和时间戳来识别。如果亚秒级时间戳为零, + 则必须匹配完整路径,而不仅仅是名称。 + restored - inode 不同但名称、大小和时间戳匹配的文件。 + 这些通常是删除后恢复的文件。 + +如果需要 `sync`,进程返回码为 2,而不是默认的 0。 +返回码 1 用于一般错误情况。 + +不会修改任何内容。 + +5.7 sync +-------- + +更新奇偶校验信息。读取磁盘阵列中所有已修改的文件, +并更新相应的奇偶校验数据。 + +您可以随时按 Ctrl+C 停止此过程,而不会丢失已完成的工作。 +在下次运行时,`sync` 过程将从中断的地方恢复。 + +如果在过程中发现静默错误或输入/输出错误, +相应的块会被标记为坏块。 + +文件通过路径和/或 inode 识别,并检查大小和时间戳。 +如果文件大小或时间戳不同,则会为整个文件重新计算奇偶校验数据。 +如果文件在同一磁盘上被移动或重命名,保持相同的 inode,则不重新计算奇偶校验。 +如果文件移动到另一个磁盘,则重新计算奇偶校验, +但保留以前计算的散列信息。 + +如果需要,会修改 `content` 和 `parity` 文件。 +阵列中的文件**不会**被修改。 + +5.8 scrub +--------- + +Scrub 阵列,检查数据和奇偶校验磁盘中的静默或输入/输出错误。 + +每次调用检查大约 8% 的阵列,排除在过去 10 天内 +已被 scrub 的数据。 +这意味着每周 scrub 一次可确保每隔三个月至少检查一次数据的每一位。 + +您可以使用 -p, --plan 选项定义不同的 scrub 计划或数量, +该选项接受: +bad - Scrub 标记为坏块的块。 +new - Scrub 刚刚同步但尚未 scrub 的块。 +full - Scrub 所有内容。 +0-100 - Scrub 指定百分比的块。 + +如果指定了百分比数量,您还可以使用 -o, --older-than +选项来定义块应该有多旧。 +最旧的块首先被 scrub,确保最佳检查。 +如果您只想 scrub 刚刚同步但尚未 scrub 的块, +请使用 `-p new` 选项。 + +要获取 scrub 状态的详细信息,请使用 `status` 命令。 + +对于发现的任何静默错误或输入/输出错误,相应的块 +会在 `content` 文件中被标记为坏块。 +这些坏块列在 `status` 中,可以使用 `fix -e` 修复。 +修复后,在下次 scrub 时,它们将被重新检查,如果发现已更正, +则会删除坏块标记。 +要仅 scrub 坏块,您可以使用 `scrub -p bad` 命令。 + +建议仅在已同步的阵列上运行 `scrub`,以避免 +由未同步数据引起的报告错误。这些错误被识别为不是静默错误, +并且块不会被标记为坏块,但此类错误会在命令的输出中报告。 + +`content` 文件会被修改以更新每个块上次检查的时间 +并标记坏块。 +`parity` 文件**不会**被修改。 +阵列中的文件**不会**被修改。 + +5.9 fix +------- + +修复所有文件和奇偶校验数据。 + +所有文件和奇偶校验数据都与上次 `sync` 中保存的快照 +状态进行比较。 +如果发现差异,则将其恢复到存储的快照。 + +**警告!** `fix` 命令不区分错误和 +故意修改。它**无条件地**将文件状态恢复到上次 `sync`。 + +如果未指定其他选项,则处理整个阵列。 +使用过滤选项选择要操作的文件或磁盘的子集。 + +要仅修复在 `sync` 和 `scrub` 期间标记为坏块的块, +请使用 -e, --filter-error 选项。 +与其他过滤选项不同,此选项仅对自上次 `sync` 以来未更改的 +文件应用修复。 + +SnapRAID 会重命名所有无法修复的文件,并添加 +`.unrecoverable` 扩展名。 + +在修复之前,会扫描整个阵列以查找自上次 `sync` +操作以来移动的任何文件。 +这些文件通过它们的时间戳识别,忽略它们的名称 +和目录,并在必要时用于恢复过程。 +如果您将其中一些移到了阵列之外,您可以使用 -i, --import +选项指定额外的目录进行扫描。 + +文件仅通过路径识别,而不通过 inode 识别。 + +`content` 文件**不会**被修改。 +如果需要,`parity` 文件会被修改。 +如果需要,阵列中的文件会被修改。 + +5.10 check +---------- + +验证所有文件和奇偶校验数据。 + +它的工作方式类似于 `fix`,但它只模拟恢复,**不会**对阵列 +写入任何更改。 + +此命令主要用于手动验证, +例如在恢复过程之后或在其他特殊条件下。 +对于定期和计划的检查,请使用 `scrub`。 + +如果您使用 -a, --audit-only 选项,则仅检查文件 +数据散列,而忽略奇偶校验数据,以加快运行速度。 + +文件仅通过路径识别,而不通过 inode 识别。 + +不会修改任何内容。 + +5.11 list +--------- + +列出上次 `sync` 时阵列中包含的所有文件。 + +使用 -v 或 --verbose,还会显示亚秒级时间。 + +不会修改任何内容。 + +5.12 dup +-------- + +列出所有重复文件。如果两个文件的散列匹配,则认为它们相等。 +不读取文件数据;仅使用预先计算的散列。 + +不会修改任何内容。 + +5.13 pool +--------- + +在 `pooling` 目录中创建或更新磁盘阵列中所有文件 +的虚拟视图。 + +文件不会被复制,而是使用符号链接连接。 + +更新时,所有现有的符号链接和空 +子目录都会被删除,并替换为阵列的新视图。 +任何其他常规文件保留在原位。 + +不会修改 pool 目录之外的任何内容。 + +5.14 devices +------------ + +打印阵列使用的低级设备。 + +此命令显示阵列中的设备关联,主要用作脚本接口。 + +前两列是低级设备 ID 和路径。 +接下来的两列是高级设备 ID 和路径。 +最后一列是阵列中的磁盘名称。 + +在大多数情况下,阵列中的每个磁盘都有一个低级设备, +但在一些更复杂的配置中,单个阵列磁盘可能会使用多个 +低级设备。 + +不会修改任何内容。 + +5.15 touch +---------- + +为所有亚秒级时间戳设置为零的文件设置一个任意的 +亚秒级时间戳。 + +这提高了 SnapRAID 识别移动和复制文件的能力, +因为它使时间戳几乎独一无二,减少了可能的重复。 + +更具体地说,如果亚秒级时间戳不为零, +则移动或复制的文件在名称、大小和时间戳匹配时被识别为 +此类。如果亚秒级时间戳为零,则仅当完整路径、 +大小和时间戳都匹配时才被视为副本。 + +不会修改秒精度时间戳, +因此会保留文件的所有日期和时间。 + +5.16 rehash +----------- + +安排对整个阵列进行重新散列。 + +此命令更改使用的散列类型,通常是在从 32 位系统升级到 64 位系统时, +以从 MurmurHash3 切换到更快的 SpookyHash。 + +如果您已经在使用最佳散列,则此命令不执行任何操作, +并通知您无需执行任何操作。 + +重新散列不会立即执行,而是在 `sync` 和 `scrub` 期间 +逐步进行。 + +您可以使用 `status` 检查重新散列状态。 + +在重新散列期间,SnapRAID 保持完全功能, +唯一的例外是 `dup` 无法使用不同的散列检测重复的文件。 + + +6 OPTIONS +========= + +SnapRAID 提供以下选项: + + -c, --conf CONFIG + 选择要使用的配置文件。如果未指定,在 Unix 中, + 如果存在,则使用文件 `/usr/local/etc/snapraid.conf`, + 否则使用 `/etc/snapraid.conf`。 + 在 Windows 中,它使用与 `snapraid.exe` 相同的目录中的文件 `snapraid.conf`。 + + -f, --filter PATTERN + 过滤要在 `check` 和 `fix` 中处理的文件。 + 仅处理与指定模式匹配的文件。 + 此选项可以多次使用。 + 有关模式规范的更多详细信息,请参阅 PATTERN 部分。 + 在 Unix 中,如果使用 globbing 字符,请确保它们被引用。 + 此选项只能与 `check` 和 `fix` 一起使用。 + 不能与 `sync` 和 `scrub` 一起使用,因为它们总是处理整个阵列。 + + -d, --filter-disk NAME + 过滤要在 `check`、`fix`、`up` 和 `down` 中处理的磁盘。 + 您必须指定配置文件中定义的磁盘名称。 + 您也可以指定奇偶校验磁盘的名称:`parity`、`2-parity`、 + `3-parity` 等,以将操作限制到特定的奇偶校验磁盘。 + 如果您组合使用多个 --filter、--filter-disk 和 --filter-missing 选项, + 则仅选择与所有过滤器匹配的文件。 + 此选项可以多次使用。 + 此选项只能与 `check`、`fix`、`up` 和 `down` 一起使用。 + 不能与 `sync` 和 `scrub` 一起使用,因为它们总是处理整个阵列。 + + -m, --filter-missing + 过滤要在 `check` 和 `fix` 中处理的文件。 + 仅处理阵列中丢失或已删除的文件。 + 与 `fix` 一起使用时,此选项充当 `undelete` 命令。 + 如果您组合使用多个 --filter、--filter-disk 和 --filter-missing 选项, + 则仅选择与所有过滤器匹配的文件。 + 此选项只能与 `check` 和 `fix` 一起使用。 + 不能与 `sync` 和 `scrub` 一起使用,因为它们总是处理整个阵列。 + + -e, --filter-error + 处理 `check` 和 `fix` 中有错误的文件。 + 它仅处理在 `sync` 和 `scrub` 期间块被标记为静默或输入/输出错误的 + 文件,如 `status` 中所列。 + 此选项只能与 `check` 和 `fix` 一起使用。 + + -p, --plan PERC|bad|new|full + 选择 scrub 计划。如果 PERC 是一个介于 0 到 100 之间的数值, + 则将其解释为要 scrub 的块的百分比。 + 除了百分比,您还可以指定一个计划: + `bad` scrub 坏块,`new` scrub 尚未 scrub 的块, + `full` scrub 所有内容。 + 此选项只能与 `scrub` 一起使用。 + + -o, --older-than DAYS + 选择要在 `scrub` 中处理的阵列的最旧部分。 + DAYS 是块被 scrub 的最小天数;默认值为 10。 + 无论此选项如何,标记为坏块的块始终会被 scrub。 + 此选项只能与 `scrub` 一起使用。 + + -a, --audit-only + 在 `check` 中,验证文件的散列而不 + 检查奇偶校验数据。 + 如果您只对检查文件数据感兴趣,此选项可以显著加快 + 检查过程。 + 此选项只能与 `check` 一起使用。 + + -h, --pre-hash + 在 `sync` 中,运行所有新数据的初步散列阶段, + 以便在奇偶校验计算之前进行额外验证。 + 通常,在 `sync` 中,不进行初步散列,并且新 + 数据仅在首次读取进行奇偶校验计算之前散列。 + 此过程在系统处于 + 重负载下发生,所有磁盘都在转动,CPU 也很忙。 + 这对机器来说是一种极端情况,如果它有潜在的硬件问题, + 静默错误可能无法被检测到,因为数据尚未散列。 + 为避免此风险,您可以启用 `pre-hash` 模式,将 + 所有数据读取两次以确保其完整性。 + 此选项还会验证阵列内移动的文件, + 以确保移动操作成功,并在必要时 + 允许您在继续之前运行 fix 操作。 + 此选项只能与 `sync` 一起使用。 + + -i, --import DIR + 从指定目录导入自上次 `sync` 以来从阵列中删除的任何文件。 + 如果您仍然拥有此类文件,它们可用于 `check` + 和 `fix` 以改进恢复过程。 + 读取文件,包括在子目录中,并且无论其名称如何都会被识别。 + 此选项只能与 `check` 和 `fix` 一起使用。 + + -s, --spin-down-on-error + 在任何错误发生时,在退出并带有非零状态码之前, + 将所有托管的磁盘停转。这可以防止驱动器在中止操作后 + 保持活动和转动,有助于避免不必要的热量积聚和功耗。 + 使用此选项可确保即使命令失败,磁盘也能安全停止。 + + -w, --bw-limit RATE + 对所有磁盘应用全局带宽限制。RATE 是 + 每秒的字节数。您可以指定乘数,例如 K、M 或 G + (例如,--bw-limit 1G)。 + + -A, --stats + 启用扩展状态视图,显示附加信息。 + 屏幕显示两个图表: + 第一个图表显示每个磁盘的缓冲条带数,以及 + 当前正在该磁盘上访问的文件的文件路径。 + 通常,最慢的磁盘将没有可用缓冲区, + 这决定了可达到的最大带宽。 + 第二个图表显示在过去 100 秒内等待所花费的时间百分比。 + 预计最慢的磁盘会导致大部分等待时间, + 而其他磁盘应该只有很少或没有等待时间, + 因为它们可以使用缓冲条带。 + 此图表还显示了等待散列计算和 RAID + 计算所花费的时间。 + 所有计算都与磁盘操作并行运行。 + 因此,只要至少一个磁盘有可测量的等待时间, + 就表明 CPU 足够快,能够跟上工作负载。 + + -Z, --force-zero + 强制执行不安全的同步操作:同步大小为零但以前非零的文件。 + 如果 SnapRAID 检测到这种情况,它会停止进行, + 除非您指定此选项。 + 这使您可以轻松检测到在系统崩溃后, + 某些访问的文件被截断的情况。 + 这在带有 ext3/ext4 文件系统的 Linux 中是一种可能的情况。 + 此选项只能与 `sync` 一起使用。 + + -E, --force-empty + 强制执行不安全的同步操作:同步所有原始文件丢失的磁盘。 + 如果 SnapRAID 检测到磁盘上最初存在的所有文件都丢失或被重写, + 它会停止进行,除非您指定此选项。 + 这使您可以轻松检测到数据文件系统未挂载的情况。 + 此选项只能与 `sync` 一起使用。 + + -U, --force-uuid + 强制执行不安全的同步、检查和修复操作,当磁盘更改了它们的 UUID 时。 + 如果 SnapRAID 检测到某些磁盘更改了 UUID, + 它会停止进行,除非您指定此选项。 + 这使您可以检测到您的磁盘被挂载在 + 错误的挂载点的情况。 + 但是,允许在单奇偶校验下进行单个 UUID 更改, + 在多奇偶校验下进行更多更改,因为这是恢复后更换磁盘时的正常情况。 + 此选项只能与 `sync`、`check` 或 `fix` 一起使用。 + + -D, --force-device + 强制执行不安全的修复操作,当磁盘无法访问或位于同一物理设备上时。 + 例如,如果您丢失了两个数据磁盘,并且有一个备用磁盘 + 只能恢复第一个,您可以忽略第二个无法访问的磁盘。 + 或者,如果您想在已使用的磁盘上剩余的可用空间中恢复一个磁盘, + 共享同一物理设备。 + 此选项只能与 `fix` 一起使用。 + + -N, --force-nocopy + 在 `sync`、`check` 和 `fix` 中,禁用复制检测启发式。 + 如果没有此选项,SnapRAID 假定具有相同属性(例如名称、大小和时间戳) + 的文件是具有相同数据的副本。 + 这允许识别从一个磁盘移动到另一个磁盘的复制或移动的文件, + 并重用已计算的散列信息以检测静默错误或恢复丢失的文件。 + 在某些罕见的情况下,此行为可能导致误报 + 或由于许多散列验证而导致过程缓慢,此选项允许您解决此类问题。 + 此选项只能与 `sync`、`check` 和 `fix` 一起使用。 + + -F, --force-full + 在 `sync` 中,强制完全重新计算奇偶校验。 + 当您添加新的奇偶校验级别或如果使用较新的奇偶校验数据恢复到旧的内容文件时, + 可以使用此选项。 + 这允许您重用内容文件中存在的散列来验证数据, + 并使用现有奇偶校验数据在 `sync` 过程中保持数据保护, + 而不是从头开始重新创建奇偶校验。 + 此选项只能与 `sync` 一起使用。 + + -R, --force-realloc + 在 `sync` 中,强制完全重新分配文件并重建奇偶校验。 + 此选项可用于完全重新分配所有文件, + 消除碎片,同时重用内容文件中存在的散列来验证数据。 + 此选项只能与 `sync` 一起使用。 + **警告!** 此选项仅供专家使用,强烈建议不要使用它。 + 在 `sync` 操作期间,您**没有**数据保护。 + + -l, --log FILE + 将详细日志写入指定文件。 + 如果未指定此选项,则会将意外错误打印到屏幕, + 在出现许多错误的情况下,可能导致输出过多。 + 指定 -l, --log 时,仅将导致 SnapRAID 停止的**致命错误**打印到 + 屏幕。 + 如果路径以 '>>' 开头,则文件以追加模式打开。 + 名称中的 '%D' 和 '%T' 出现会被替换为日期和时间,格式分别为 YYYYMMDD 和 + HHMMSS。在 Windows 批处理文件中,您必须双写 '%' 字符, + 例如 result-%%D.log。要使用 '>>',您必须将名称括在引号中, + 例如 `">>result.log"`。 + 要将日志输出到标准输出或标准错误, + 您可以使用 `">&1"` 和 `">&2"`。 + 有关日志标签描述,请参阅 snapraid_log.txt 文件或 man 页面。 + + -L, --error-limit NUMBER + 设置停止执行前的新错误限制。 + 默认情况下,如果 SnapRAID 遇到超过 100 个 + 输入/输出错误,它会停止,表明磁盘可能正在发生故障。 + 此选项影响 `sync` 和 `scrub`,它们被允许在第一组 + 磁盘错误后继续,以尝试完成其操作。 + 但是,`check` 和 `fix` 总是会在第一次错误时停止。 + + -S, --start BLKSTART + 从指定的块号开始处理。 + 在磁盘损坏的情况下,这对于重试检查或修复特定块可能很有用。 + 此选项主要用于高级手动恢复。 + + -B, --count BLKCOUNT + 仅处理指定数量的块。 + 此选项主要用于高级手动恢复。 + + -C, --gen-conf CONTENT + 从现有内容文件生成一个虚拟配置文件。 + 配置文件写入标准输出,不会覆盖现有文件。 + 此配置文件还包含在您丢失整个系统的情况下 + 重建磁盘挂载点所需的信息。 + + -v, --verbose + 向屏幕打印更多信息。 + 如果指定一次,它会打印排除的文件 + 和附加统计信息。 + 此选项对日志文件没有影响。 + + -q, --quiet + 向屏幕打印更少信息。 + 如果指定一次,它会删除进度条;两次, + 正在运行的操作;三次,信息 + 消息;四次,状态消息。 + 致命错误始终会打印到屏幕。 + 此选项对日志文件没有影响。 + + -H, --help + 打印简短的帮助屏幕。 + + -V, --version + 打印程序版本。 + + +7 CONFIGURATION +=============== + +SnapRAID 需要一个配置文件来了解您的磁盘阵列 +位于何处以及在哪里存储奇偶校验信息。 + +在 Unix 中,如果存在,它使用文件 `/usr/local/etc/snapraid.conf`, +否则使用 `/etc/snapraid.conf`。 +在 Windows 中,它使用与 `snapraid.exe` 相同的目录中的文件 `snapraid.conf`。 + +它必须包含以下选项(区分大小写): + +7.1 parity FILE [,FILE] ... +--------------------------- + +定义用于存储奇偶校验信息的文件。 +奇偶校验可实现针对单个磁盘 +故障的保护,类似于 RAID5。 + +您可以指定多个文件,它们必须位于不同的磁盘上。 +当一个文件不能再增长时,使用下一个文件。 +总可用空间必须至少与阵列中最大的数据磁盘一样大。 + +您可以稍后添加额外的奇偶校验文件,但是您 +不能重新排序或删除它们。 + +将奇偶校验磁盘保留用于奇偶校验可确保它们不会碎片化,从而提高性能。 + +在 Windows 中,每个磁盘会留下 256 MB 未使用空间,以避免 +有关磁盘已满的警告。 + +此选项是强制性的,并且只能使用一次。 + +7.2 (2,3,4,5,6)-parity FILE [,FILE] ... +--------------------------------------- + +定义用于存储额外奇偶校验信息的文件。 + +为指定的每个奇偶校验级别启用一个额外的保护级别: + +* 2-parity 启用 RAID6 双奇偶校验。 +* 3-parity 启用三奇偶校验。 +* 4-parity 启用四奇偶校验。 +* 5-parity 启用五奇偶校验。 +* 6-parity 启用六奇偶校验。 + +每个奇偶校验级别都需要存在所有先前的奇偶校验级别。 + +与 'parity' 选项相同的注意事项适用。 + +这些选项是可选的,并且只能使用一次。 + +7.3 z-parity FILE [,FILE] ... +----------------------------- + +定义用于存储三奇偶校验的备用文件和格式。 + +此选项是 '3-parity' 的替代方案,主要面向不支持 +SSSE3 指令集的低端 CPU,如 ARM 或 AMD Phenom、Athlon 和 Opteron。 +在这种情况下,它提供了更好的性能。 + +此格式类似于 ZFS RAIDZ3 使用的格式,但更快。 +与 ZFS 一样,它在三奇偶校验之外不起作用。 + +当使用 '3-parity' 时,如果建议使用 'z-parity' 格式以提高性能, +您将收到警告。 + +可以通过调整配置文件中的所需 z-parity 或 3-parity 文件, +并使用 'fix' 重新创建它,从一种格式转换为另一种格式。 + +7.4 content FILE +---------------- + +定义用于存储磁盘阵列中所有文件的列表和校验和的文件。 + +它可以放置在用于数据、奇偶校验或 +任何其他可用磁盘上。 +如果您使用数据磁盘,此文件会自动从 `sync` 过程中排除。 + +此选项是强制性的,并且可以多次使用以保存 +同一文件的多个副本。 + +您必须为使用的每个奇偶校验磁盘存储至少一个副本, +再加上一个。使用额外的副本不会有害。 + +7.5 data NAME DIR +----------------- + +定义阵列中数据磁盘的名称和挂载点。 +NAME 用于标识磁盘,并且必须是唯一的。 +DIR 是磁盘在文件系统中的挂载点。 + +您可以根据需要更改挂载点,只要保持 NAME 固定即可。 + +您应该为阵列中的每个数据磁盘使用一个选项。 + +您可以通过直接在配置文件中更改 NAME,然后运行 `sync` 命令来 +稍后重命名磁盘。 +在重命名的情况下,关联是使用存储的磁盘 UUID 完成的。 + +7.6 nohidden +------------ + +排除所有隐藏文件和目录。 +在 Unix 中,隐藏文件是以 `.` 开头的文件。 +在 Windows 中,它们是具有隐藏属性的文件。 + +7.7 exclude/include PATTERN +--------------------------- + +定义要从同步过程中排除或包含的文件或目录模式。 +所有模式都按指定的顺序处理。 + +如果匹配的第一个模式是 `exclude` 模式,则排除该文件。 +如果它是 `include` 模式,则包含该文件。 +如果没有模式匹配,则如果指定的最后一个模式是 `include`,则排除该文件, +或者如果指定的最后一个模式是 `exclude`,则包含该文件。 + +有关模式规范的更多详细信息,请参阅 PATTERN 部分。 + +此选项可以多次使用。 + +7.8 blocksize SIZE_IN_KIBIBYTES +------------------------------- + +定义奇偶校验的基本块大小(以 KiB 为单位)。 +一 KiB 是 1024 字节。 + +默认的 blocksize 是 256,这应该适用于大多数情况。 + +**警告!** 此选项仅供专家使用,强烈建议不要更改此值。 +将来要更改此值,您将需要重新创建整个奇偶校验! + +使用不同 blocksize 的一个原因是,如果您有许多小型文件, +数量级为数百万。 + +对于每个文件,即使只有几个字节,也会分配一个完整的奇偶校验块, +并且对于许多文件,这可能导致大量的未使用奇偶校验空间。 +当您完全填满奇偶校验磁盘时,不允许向数据磁盘 +添加更多文件。 +但是,浪费的奇偶校验不会跨数据磁盘累积。 +数据磁盘上大量文件导致的浪费空间仅限制该数据磁盘上的数据量, +而不限制其他磁盘上的数据量。 + +作为一个近似值,您可以假设每个文件浪费了半个块大小的空间。 +例如,对于 100,000 个文件和 256 KiB 的块大小,您将浪费 12.8 GB 的奇偶校验空间, +这可能导致数据磁盘上少 12.8 GB 的可用空间。 + +您可以使用 `status` 检查每个磁盘上浪费的空间量。 +这是您必须在数据磁盘上留出的空闲空间量, +或用于不包含在阵列中的文件的空间量。 +如果此值为负,则表示您即将填满奇偶校验空间, +它表示您仍然可以浪费的空间。 + +为避免此问题,您可以为奇偶校验使用更大的分区。 +例如,如果奇偶校验分区比数据磁盘大 12.8 GB, +则您有足够的额外空间来处理每个数据磁盘上多达 100,000 个 +文件而不会浪费任何空间。 + +在 Linux 中获得更大的奇偶校验分区的一个技巧是使用以下命令格式化它: + + mkfs.ext4 -m 0 -T largefile4 DEVICE + +这会导致大约 1.5% 的额外空间,对于 4 TB 磁盘约为 60 GB, +这允许每个数据磁盘上大约 460,000 个文件而不会浪费任何空间。 + +7.9 hashsize SIZE_IN_BYTES +-------------------------- + +定义保存块的散列大小(以字节为单位)。 + +默认的 hashsize 是 16 字节(128 位),这应该适用于大多数情况。 + +**警告!** 此选项仅供专家使用,强烈建议不要更改此值。 +将来要更改此值,您将需要重新创建整个奇偶校验! + +使用不同 hashsize 的一个原因是,如果您的系统内存有限。 +根据经验,SnapRAID 通常每 16 TB 的阵列数据需要 1 GiB 的 RAM。 + +具体来说,为了存储数据的散列,SnapRAID 大约需要 +$TS*(1+HS)/BS$ 字节的 RAM, +其中 $TS$ 是您的磁盘阵列的总大小(以字节为单位),$BS$ 是块大小(以字节为单位), +$HS$ 是散列大小(以字节为单位)。 + +例如,对于 8 个 4 TB 磁盘,块大小为 256 KiB +(1 KiB = 1024 字节),散列大小为 16,您将获得: + +RAM = $(8 * 4 * 10^{12}) * (1+16) / (256 * 2^{10}) = 1.93$ GiB + +切换到散列大小为 8,您将获得: + +RAM = $(8 * 4 * 10^{12}) * (1+8) / (256 * 2^{10}) = 1.02$ GiB + +切换到块大小为 512,您将获得: + +RAM = $(8 * 4 * 10^{12}) * (1+16) / (512 * 2^{10}) = 0.96$ GiB + +切换到散列大小为 8 和块大小为 512,您将获得: + +RAM = $(8 * 4 * 10^{12}) * (1+8) / (512 * 2^{10}) = 0.51$ GiB + +7.10 autosave SIZE_IN_GIGABYTES +------------------------------- + +在同步或 scrub 之后,处理指定数量的 GB 后,自动保存状态。 +此选项有助于避免在机器崩溃或任何其他事件中断时, +从头开始重新启动长时间的 `sync` 命令。 + +7.11 temp_limit TEMPERATURE_CELSIUS +----------------------------------- + +设置允许的最高磁盘温度(摄氏度)。指定后, +SnapRAID 会使用 smartctl 工具定期检查所有磁盘的温度。 +SnapRAID 运行时会显示当前磁盘温度。 +如果任何磁盘超过此限制,所有操作都会停止, +并在 `temp_sleep` 选项定义的持续时间内将磁盘停转(置于待机状态)。 +在休眠期过后,操作恢复,如果温度限制再次达到, +可能会再次暂停。 + +在操作期间,SnapRAID 还会分析每个磁盘的加热曲线, +并估计如果活动继续,它们预计将达到的长期稳定温度。 +仅在磁盘温度增加了四次后才执行估计, +以确保有足够的数据点来建立可靠的趋势。 +此预测的稳定温度显示在当前值旁边的括号中, +有助于评估系统的冷却是否足够。 +此估计温度仅供参考,对 SnapRAID 的行为没有影响。 +程序的动作仅基于实际测量的磁盘温度。 + +要执行此分析,SnapRAID 需要一个系统温度的参考。 +它首先尝试从可用的硬件传感器读取。 +如果无法访问系统传感器,它会使用运行时测量的最低磁盘温度 +作为备用参考。 + +通常,SnapRAID 只显示最热磁盘的温度。 +要显示所有磁盘的温度,请使用 -A 或 --stats 选项。 + +7.12 temp_sleep TIME_IN_MINUTES +------------------------------- + +设置达到温度限制时的待机时间(以分钟为单位)。 +在此期间,磁盘保持停转状态。默认值为 5 分钟。 + +7.13 pool DIR +------------- + +定义 `pooling` 目录,其中使用 `pool` 命令创建磁盘 +阵列的虚拟视图。 + +目录必须已经存在。 + +7.14 share UNC_DIR +------------------ + +定义远程访问磁盘所需的 Windows UNC 路径。 + +如果指定了此选项,则在 pool 目录中创建的符号链接会使用此 UNC 路径 +来访问磁盘。 +如果没有此选项,则生成的符号链接仅使用本地路径, +这不允许通过网络共享 pool 目录。 + +符号链接是使用指定的 UNC 路径,添加在 `data` 选项中指定的 +磁盘名称,最后添加文件目录和名称形成的。 + +此选项仅在 Windows 中需要。 + +7.15 smartctl DISK/PARITY OPTIONS... +------------------------------------ + +定义自定义 smartctl 选项以获取每个磁盘的 SMART 属性。 +这对于 RAID 控制器和一些无法自动检测的 USB +磁盘可能需要。%s 占位符会被设备名称替换, +但对于固定的设备(如 RAID 控制器)是可选的。 + +DISK 是在 `data` 选项中指定的相同磁盘名称。 +PARITY 是奇偶校验名称之一:`parity`、`2-parity`、`3-parity`、 +`4-parity`、`5-parity`、`6-parity` 或 `z-parity`。 + +在指定的 OPTIONS 中,字符串 `%s` 被设备名称替换。 +对于 RAID 控制器,设备可能是固定的, +您可能不需要使用 `%s`。 + +请参阅 smartmontools 文档以了解可能的选项: + + https://www.smartmontools.org/wiki/Supported_RAID-Controllers + https://www.smartmontools.org/wiki/Supported_USB-Devices + +例如: + + smartctl parity -d sat %s + +7.16 smartignore DISK/PARITY ATTR [ATTR...] +------------------------------------------- + +在计算磁盘故障概率时忽略指定的 SMART 属性。 +如果磁盘报告了特定属性的不寻常或误导值,此选项很有用。 + +DISK 是在 `data` 选项中指定的相同磁盘名称。 +PARITY 是奇偶校验名称之一:`parity`、`2-parity`、`3-parity`、 +`4-parity`、`5-parity`、`6-parity` 或 `z-parity`。 +特殊值 * 可用于在所有磁盘上忽略该属性。 + +例如,要在所有磁盘上忽略 `Current Pending Sector Count` 属性: + + smartignore * 197 + +要仅在第一个奇偶校验磁盘上忽略它: + + smartignore parity 197 + +7.17 Examples +------------- + +Unix 的典型配置示例如下: + + parity /mnt/diskp/snapraid.parity + content /mnt/diskp/snapraid.content + content /var/snapraid/snapraid.content + data d1 /mnt/disk1/ + data d2 /mnt/disk2/ + data d3 /mnt/disk3/ + exclude /lost+found/ + exclude /tmp/ + smartctl d1 -d sat %s + smartctl d2 -d usbjmicron %s + smartctl parity -d areca,1/1 /dev/sg0 + smartctl 2-parity -d areca,2/1 /dev/sg0 + +Windows 的典型配置示例如下: + + parity E:\snapraid.parity + content E:\snapraid.content + content C:\snapraid\snapraid.content + data d1 G:\array\ + data d2 H:\array\ + data d3 I:\array\ + exclude Thumbs.db + exclude \$RECYCLE.BIN + exclude \System Volume Information + smartctl d1 -d sat %s + smartctl d2 -d usbjmicron %s + smartctl parity -d areca,1/1 /dev/arcmsr0 + smartctl 2-parity -d areca,2/1 /dev/arcmsr0 + + +8 PATTERN +========= + +模式用于选择要排除或包含在过程中的文件子集。 + +有四种不同类型的模式: + + FILE + 选择任何名为 FILE 的文件。您可以使用任何 globbing + 字符,如 * 和 ?,以及字符类,如 [a-z]。 + 此模式仅适用于文件,不适用于目录。 + + DIR/ + 选择任何名为 DIR 的目录及其内部的所有内容。 + 您可以使用任何 globbing 字符,如 * 和 ?。 + 此模式仅适用于目录,不适用于文件。 + + /PATH/FILE + 选择完全指定的 file path。您可以使用任何 + globbing 字符,如 * 和 ?,但它们绝不匹配 + 目录斜杠。 + 此模式仅适用于文件,不适用于目录。 + + /PATH/DIR/ + 选择完全指定的 directory path 及其内部的所有内容。 + 您可以使用任何 globbing 字符,如 * 和 ?,但 + 它们绝不匹配目录斜杠。 + 此模式仅适用于目录,不适用于文件。 + +当您指定以 / 开头的绝对路径时,它应用于阵列**根目录**, +而不是本地文件系统根目录。 + +在 Windows 中,您可以使用反斜杠 \ 代替正斜杠 /。 +Windows 系统目录、连接点、挂载点和其他 Windows +特殊目录被视为文件,这意味着要排除它们, +您必须使用文件规则,而不是目录规则。 + +如果文件名包含 '*'、'?'、'[' +或 ']' 字符,您必须对其进行转义,以避免将其解释为 +globbing 字符。在 Unix 中,转义字符是 '\';在 Windows 中,它是 '^'。 +当模式在命令行上时,您必须双写转义 +字符,以避免命令 shell 对其进行解释。 + +在配置文件中,您可以使用不同的策略来过滤要处理的文件。 +最简单的方法是仅使用 `exclude` 规则来删除所有您不想处理的 +文件和目录。例如: + + # 排除任何名为 `*.unrecoverable` 的文件 + exclude *.unrecoverable + # 排除根目录 `/lost+found` + exclude /lost+found/ + # 排除任何名为 `tmp` 的子目录 + exclude tmp/ + +相反的方法是仅定义您想要处理的文件,仅使用 `include` 规则。例如: + + # 仅包含一些目录 + include /movies/ + include /musics/ + include /pictures/ + +最后的方法是混合使用 `exclude` 和 `include` 规则。在这种情况下, +规则的顺序很重要。较早的规则优先于 +较晚的规则。 +为了简化,您可以先列出所有 `exclude` 规则,然后 +列出所有 `include` 规则。例如: + + # 排除任何名为 `*.unrecoverable` 的文件 + exclude *.unrecoverable + # 排除任何名为 `tmp` 的子目录 + exclude tmp/ + # 仅包含一些目录 + include /movies/ + include /musics/ + include /pictures/ + +在命令行上,使用 -f 选项,您只能使用 `include` +模式。例如: + + # 仅检查 .mp3 文件。 + # 在 Unix 中,使用引号以避免 shell 扩展 globbing。 + snapraid -f "*.mp3" check + +在 Unix 中,在命令行上使用 globbing 字符时,必须 +引用它们以防止 shell 扩展它们。 + + +9 CONTENT +========= + +SnapRAID 将文件列表和校验和存储在 content 文件中。 + +它是一个二进制文件,列出了磁盘阵列中存在的所有文件, +以及用于验证其完整性的所有校验和。 + +此文件由 `sync` 和 `scrub` 命令读取和写入,并由 +`fix`、`check` 和 `status` 命令读取。 + + +10 PARITY +========= + +SnapRAID 将阵列的奇偶校验信息存储在 parity 文件中。 + +这些是二进制文件,包含 `content` 文件中定义的所有 +块的计算奇偶校验。 + +这些文件由 `sync` 和 `fix` 命令读取和写入, +并且仅由 `scrub` 和 `check` 命令读取。 + + +11 ENCODING +=========== + +SnapRAID 在 Unix 中忽略任何编码。它读取并存储 +文件系统使用的相同编码的文件名。 + +在 Windows 中,从文件系统读取的所有名称都会被转换并 +以 UTF-8 格式处理。 + +要使文件名正确打印,您必须使用命令 `chcp 65001` 将 Windows +控制台设置为 UTF-8 模式,并使用 TrueType 字体,如 `Lucida Console`, +作为控制台字体。这仅影响打印的文件名;如果 +您将控制台输出重定向到文件,则生成的文件始终 +采用 UTF-8 格式。 + + +12 COPYRIGHT +============ + +此文件版权所有 (C) 2025 Andrea Mazzoleni + + +13 SEE ALSO +=========== + +snapraid_log(1), rsync(1)