web-dev-qa-db-ja.com

zfsディスクの腐敗防止は自動で組み込まれていますか?

一部のプレゼンテーションでは、zfsには次のものがあると宣言されています。

zfsは、サイレントデータの破損を検出して修正できます。

例えばここから http://www.eecis.udel.edu/~bmiller/DE-OSUG/ECECIS-ZFS.pdf

  1. しかし、手動で行うには、スペアディスクまたはzfsプールを割り当てる必要がありますか?またはこれはzfsに固有のものですか?
  2. シングルディスクzfsファイルシステムにこの機能がありますか、それともRAIDZを入手する必要がありますか?
2
c2h2

1。ただし、手動で行うためにスペアディスクまたはzfsプールを割り当てる必要がありますか?またはこれはzfsに固有のものですか? ==

これを行うには、影響を受けるデータを冗長化する必要があります。この冗長性は、追加のディスクなしで実現できます。複数のディスクも冗長性を意味するものではありません。

ZFSはスペアデバイスをサポートしていますが、これらは障害状態にある他のデバイスを置き換えるためにここにあります。これらはデータの冗長性には使用されません。

2。シングルディスクzfsファイルシステムにこの機能がありますか、それともRAIDZを取得する必要がありますか?

プールの構成に関係なく、チェックサムを明示的に無効にしない限り、破損したデータは常にZFSで検出されますが、それは非常に悪い考えです。

単一のディスクプールは、メタデータが含まれている場合、腐ったブロックを回復できます。ファイルデータを含むブロックは、copysプロパティが2以上に設定されている場合にのみ回復できます。

ストライプ構成の複数のディスクプールは、単一のディスクプールに似ています。つまり、メタデータはディスクの腐敗に耐えることができ、同上ブロックの存在はファイルデータの自己修復の要件です。

冗長構成(ミラー、raidz、raidz2、raidz3)の複数のディスクプールは、ディスクの腐敗の問題を回復できます(もちろん、複数のディスクに障害が発生するなどの大規模なエラー状況を除く)。

影響を受けるファイル(またはメタデータまたはzvolブロック)が読み取られると、エラーが検出されます。 ZFSがエラーを回復できる場合、エラーは透過的に修正され、正しいデータが返されます。それ以外の場合は、読み取りエラーが報告されます。チェックサムはECCではないため、壊れたブロックを回復するために使用することはできず、それらを検出するためだけに使用できることに注意してください。

読み取りが発生するのを待たずにプール全体を検証する場合は、スクラブメカニズムを使用できます。 ZFSは、使用されているすべてのブロックをチェックし、可能な場合は腐ったブロックを自己修復します。

11
jlliagre