Solaris ZFSのセルフヒーリングおよびチェックサム機能の使用によるデータの損失や停止の回避
(Doc ID 1602870.1)
Last updated on AUGUST 28, 2019
適用範囲:
Solaris Operating System - バージョン 10 10/08 U6 から 11.1 [リリース 10.0 から 11.0]この文書の内容はすべてのプラットフォームに適用されます。
目的
ZFSは、ディスク上のデータの自己一貫性を維持し、かつ、サイレントデータの破損を除去するために、コピー・オン・ライトとエンド・ツー・エンド・チェックサムのようないくつ技術を使用しています。ポインタを古いデータに変更、かつ書き込みをコミットする前に、データはメディアの新しいブロックに書き込まれます。ファイルシステムは常に一貫性を保っているため、正常でない方法でシステムがシャットダウンされている場合のfsckのような時間のかかる復旧手順は必要ありません。
ZFSは、データが書き込まれたことを示す「OK」を受信すると、引き続きメディアにデータの書き込みを行います。ZFSは、データが正しく書き込まれたかどうかをチェックするためのデータの再読込みをしません。次のデータが読み込まれると、ZFSはチェックサムを計算し、格納されているチェックサムと比較します。不一致だった場合はFMAイベントが生成されます。これはZFSの利点で、データの破損を検出します。ZFSでは、これらのエラーを修正するために、ZFS層の冗長性(ミラーまたはRAIDZ)を必要とします。そのため常にZFSレベルでの冗長性を設定することをお勧めします。当然、ストレージ側では、冗長性を持っているかもしれませんが、これはファイルシステム・レベルでの冗長性を優先することはありません。破損は、HBAからディスクへの経路上の、どこででも発生する可能性があります。
ZFSは、二重または三重のコピーにすべてのメタデータを格納しますので、非冗長ZFSストレージにあるブロック破損でさえ回復することができるようになります。非冗長構成のアプリケーションのデータだけは回復できませんが、破損があったことは検出できますので、システム上に何か問題あるということは知る事ができます。
しかしプールのサブセットを保護するため、ZFSデータセット・プロパティ「ncopies」をより大きな値に設定することができます。このプロパティは、このデータセットのために格納されたデータのコピー数を制御します。これらのコピーは、プールよって提供される任意の冗長性(たとえばミラーリングやRAID-Z)に追加されます。可能であれば、それらのコピーは、異なるディスクに格納されます。このプロパティの変更は、新たに書き込まれたデータのみに影響を与えます。従って、ファイルシステムの作成時に「-o copies=」オプションを使用して、このプロパティを設定してください。
解決策
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
本書の内容
目的 |
解決策 |