ディスク障害発生時のLVM2の動作を理解していますか?

ディスク障害発生時のLVM2の動作を理解していますか?

次のコマンドを使用して、5x4TB設定のLVM2グループがあります。

pvcreate /dev/sd{b,c,d,e,f}
vgcreate vg0 /dev/sd{b,c,d,e,f}
lvcreate -l 100%FREE -n lvol1 vg0

これでこのモンスターを作ったので、これについていくつかの質問があります。基本構成では線形になりますが、/dev/sdb失敗するとどうなりますか?

  • データ全体に別れを告げる必要がありますか/dev/sdb、またはLVMが最初のバイトを埋めるのではなく、デバイス全体にファイルを配置しますか?

  • どのファイルがどのデバイスにあるのか、どうすればわかりますか?ディスクを紛失した場合は、可能であれば回復できるようにデータが失われた場所を知りたいです。

メモ:

  • フォローするGentoo LVM作成マニュアル
  • 私はRAIDx(そして私の考えではLVM)がバックアップを提供しないことを十分に理解しています。せいぜいディスクエラーに対する回復力だけを追加できるだけです。私は(ソフトウェア)RAID5とディスクエラーの経験があります。幸いなことに、一度に1つずつエラーが発生しました。しかし、私はLVMを使った経験がないので、このような質問をするようになりました。

答え1

lvdisplay --maps特定のLVまたは特定の範囲に対応する物理的な範囲がどこにあるかを示します。pvdisplay --maps同じ情報が太陽電池中心の観点から提示される。

たとえば、pvdisplay --maps失敗したPVが特定のLVの論理範囲1000 ... 4000を含むようにマークされ、そのVGの範囲サイズが4MiBの場合、PVが完全に失敗すると大きな問題が発生します。アクセスできないLV。 「穴」は、LVの開始点から4000MiB点から始まり、LVの開始点で16000MiB点まで続く。

一般に、この場合、LV全体を復元するのが最も簡単です。これにより、すべてのファイルが一貫した状態であることを確認できます。たとえば、ファイルAにファイルBのコンテンツへの参照が含まれている場合、破損した領域にファイルが1つしかない場合でも、バックアップから両方のファイルを復元できます。

ただし、必要な場合(つまり、利用可能なバックアップがなく、現在深刻な問題に直面している場合)、LVに欠けている部品があっても、LVを使用または有効にして残りの項目を復元lvchangeするvgchangeためにインストールできます。--activationmode partialこれをしなければならないただデータ復旧目的で。

あなたの場合、/dev/sdbこれはボリュームグループの最初のPVになるので、LVの最初の部分も保持します。これはおそらくそのLVの多くの重要なファイルシステムメタデータが終わる場所なので、そこにはfsckまだあります。あなた。 Frost Schutzが言ったように、photorec残りのLVで断片化されていないファイルを見つけることは可能です。しかし、それに頼るのは悪い戦略です。

完全な復元に必要な時間だけでなく、バ​​ックアップも考慮する必要があります。ディスク障害後にLV全体を復元するのに時間がかかりすぎる場合は、この状況を回避するためにシステムに冗長性を追加する必要があります。一般に、これはより多くのディスクを確保し、ある種のRAIDアレイにデータを格納することを意味します。

ただし、RAIDアレイを設定してもバックアップすることを忘れないでください。 RAIDを使用すると、ディスクエラーをより簡単に処理できますが、ユーザー/システム管理者が「このような」場合にはまったく役に立ちません。RAIDはバックアップではありません。

答え2

/dev/sdbが失敗した場合はどうなりますか?

lvol1はもう機能しません。 1つのドライブを失うと、5つのドライブのデータが失われます。ボリュームから多くのデータが失われ(ディスク全体が消えて)、ボリュームで使用されているファイルシステムが何であれ、気に入らない可能性があります。

fsck何も回復すると期待してはいけません。これは発生する可能性がありますが、fsckこれはデータ復旧ツールではなく、何百ギガバイトの失われたデータを魔法のように変更するのではなく、マイナーな矛盾を修正するために主に使用されます。時々、fsck一貫した(しかし奇妙なことに空の)ファイルシステムを提供することはとても嬉しいです。

その問題に別のものを使用している場合は、fsckスナップショットを使用または上書きして変更をキャンセルできます。 (データ回復は読み取り専用または書き込み中にコピーモードで作業する必要があります。)

LVMは基本的に線形なので、(とにかく)photorec他のツールはまだ他のドライブから(断片化されていない、暗号化されていない)データを見つけることができます。

LVM は複数のドライブにわたって使用できますが、複数の小さなボリュームを作成することをお勧めします。欠落しているドライブにないボリュームはそのまま残ります。さらに、小さなファイルシステムはfsckリソースを大量に使用し、ファイルシステムのサイズによって時間がかかる問題を回避します。

パーティション化されていないドライブを使用すると、誤ってパーティションテーブルが作成され、プロセスが他のメタデータを上書きする危険性があります。常に分割テーブルを使用する必要があります。

とにかくデータを失いたくない場合は、バックアップを作成してください。

ドライブ障害が発生するたびにバックアップを復元したくない場合でも、RAIDを使用できます。

答え3

LVM はファイルを配置しません。 LVMは、複数の物理デバイスにデータが分散された大規模な論理デバイスを作成します。

これは、1GiBパーティションを持ち、それをフォーマットし、ファイルシステムにデータを生成し、250MiBから500MiBの範囲をゼロで上書きするのと同じです。

ファイルシステムのデータが250MiB未満の場合、fsckデータのほとんどまたは全部を回復できます。簡単に試してみてください。

関連情報