web-dev-qa-db-ja.com

Linux mdadmraidアレイのドライブ障害。助けて!

私のシステムはある種の壊滅的な障害に苦しんでいるようです、そして私は今何をすべきかわからないのでパニックに陥っています。

私は3ドライブのRAID10アレイを持っていました。今朝、アレイへのアクセスに問題があることに気づきました(私の写真はすべてそこにあります)。 mdadmを確認したところ、アレイから1つのドライブ(ドライブ2)が削除されたと表示されました。これは、コンピューターが誤ってシャットダウンされ(停電が発生した)、その結果、ドライブがキックされたことが原因である可能性があります。

ドライブを追加し直してみましたが、うまくいきました。次に、mdstatを使用して再構築の進行状況を確認したところ、10 kb/sで再構築されています。はい。 3 TBドライブをその速度で再構築するには何年もかかります。dmsegをチェックすると、ドライブ3のI/Oエラーが大量に発生していました。ドライブ3には何らかの種類があるようです。ドライブの状態をディスクツール(gnome、gnome-disk-toolなどからのものだと思います)で確認したところ、6000近くの不良セクタがありましたが、それ以外は問題ないとのことでした。

だから今私はパニックに陥っていて、ドライブ2は実際にはまだ良かったと思っていて、それを再読み込みすると再同期し、おそらくそれが持っている良いデータを破壊します。次に、コンピューターの電源を切ってみました(mdstatが再同期しているときでも、そうするために保存されていたと読みました)。

残念ながら、シャットオフは機能していません。 「ESC」を押すとターミナルが表示され、「print_req_error:I/Oエラー、dev sdd、セクター....」タイプのエラーが表示されます。どうしたらいいのかわからない。ちょっと待って?このように30分間続いています。

何かアドバイス?

2
user361233

それは奇跡です。どういうわけか、アレイを元に戻して実行しました。これが私がしたことです:

  1. 元の投稿で述べたように、システムは障害のあるドライブに何かを書き込もうとしていたため、シャットダウンしていませんでした。 user361233のアドバイスに従い、プラグを抜いた。
  2. 私はパニックをやめました。コンピューターの電源を切った状態で、次のステップを考えることができました。
  3. 私は行って、2台の新しい3TBドライブを購入しました。
  4. 私はその上で眠り、今日はライブセッションUSB(manjaro)を使用してコンピューターを起動しましたが、一度に1つのドライブしか接続していませんでした(したがって、ディスクごとに1回ずつ3回再起動しました)。 kdeパーティションマネージャーでディスクの状態をチェックしました。 SMARTステータスは、すべてのディスクに問題がないことを示しています。その後、アレイのディスク3で発生していたハードウェア障害が、少なくとも一時的に解消されることを期待しました。
  5. 3つのディスクすべてを接続し、再起動しました(ここでもライブセッションUSBを使用)。振り返ってみると、manjaroはすでにmdadmがインストールされているため、リカバリ環境に最適な選択肢ではありませんでした。その結果、すでにアレイを(/ dev/md127として)起動しようとしました。手動でアレイを起動しようとしたときにこれを発見しました。

    mdadm --assemble --scan
    

    私がこれをしたとき、それはすでにアクティブなアレイ(またはその効果のための何か)があると不平を言いました。/dev/md127が自動的に起動することがあることを思い出したので、そのアレイを停止して手動で起動しようとしました。

    mdadm --stop /dev/md127
    mdadm --assemble --scan
    

    これもうまくいきませんでした。次に、アレイの組み立てに使用する各ディスクのパーティションを実際に指定してみました。

    mdadm  --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1
    

    これはうまくいきました!次に、mdadm --examine /dev/md0を使用してアレイのステータスを確認しました。不思議なことに、アレイは3/3のディスクで稼働しているとのことです。 cat /proc/mdstatを確認したところ、アレイのドライブ2が再構築中であることを示すものはありませんでした(最初はドライブ2が、電源を切った後にアレイから追い出されたものでした)。ある種の奇跡が起こり、コンピュータをシャットダウンしたときに氷河のペースで再構築されていたドライブ2は実際には問題がなかったはずであり、mdadmは今回それをアレイに受け入れました。

  6. 次に、アレイにアクセスして、購入した新しいディスクにデータをコピーしてみました。それはうまくいきませんでした。ディレクトリの内容を一覧表示するだけで、lsコマンドがハングしました。 dmesgには、特にディスク3(\ dev\sdd)に関連する一連のI/Oエラーが再び発生しました。

  7. lsコマンドをキャンセルしようとしましたが、CTRL-Cを数回試行し、コマンドプロンプトが返されるまで数分待ちました。この時点で、もう一度mdadm --examine /dev/md0で配列をチェックしようとしました。次に、ディスク3にハードウェア障害があることを認識し、アレイからキックしました。アレイには、ディスク1(/ dev/sdb、完全に正常なドライブ)とディスク2(/ dev/sdc、このすべての最初にアレイから最初にキックされたドライブ)のみが含まれるようになりました。

  8. もう一度アレイにアクセスしてみましたが、うまくいきました。 lsを使用して、さらにはファイルブラウザを使用して、すべてのファイルを一覧表示することができました。この時点で、購入した追加のドライブにすべての重要なファイルをコピーし始めました。これで、このプロセスはほぼ完了しました。

結局、これは、ファイルを別のデバイスに定期的にバックアップすることを確認するための良いリマインダーです。私はそうする習慣がありましたが、過去1、2年は怠慢でした。この投稿が長すぎて、最も具体的ではない場合は申し訳ありません。各コマンドの正確な出力を覚えていません。

TL; DRコンピューターの電源を切り、パニックを止めました。それから私は問題に取り組む計画を立てる時間がありました。最新のバックアップを維持することをお勧めします。

2
user361233

あなたの質問に答えるのは難しいです、そしてこれはコメントするには長すぎるので、いくつかの一般的な指針だけです。

だから今私はパニックに陥っていて、ドライブ2は実際にはまだ良かったと思っていて、それを再読み込みすると再同期し、おそらくそれが持っている良いデータを破壊します。

カーネルのバグがない限り、ディスクを再度追加しても(同じ役割で以前と同じオフセット)、データは「破壊」されません。すでに存在していたものと同じデータのほとんどを書き換えるだけで、害はありません。

  • アレイから複数のドライブが欠落している場合、役割が変わる可能性があります
  • オフセットは通常、以前はsdx1だったときにsdxを追加した場合にのみ変更されます
  • 運が悪ければ、以前に奇妙な状態だった場合、オフセットも変わる可能性があります

ドライブが無害であったとしても、キックされたドライブに関する主な問題は、それがアレイの一部ではなくなったことです。アレイが書き込みモードでマウントされるとすぐに、アレイ上のデータが変更され、キックされたドライブ上のデータも一緒に更新されないため、古くなり、「良好」ではなくなります。

ドライブの状態をディスクツール(gnome、gnome-disk-toolなどからのものだと思います)で確認したところ、6000近くの不良セクタがありましたが、それ以外は問題ないと言われていました。

ドライブに問題がある場合、データ復旧を行うことはできません。それらの6000の不良セクタが一晩で表示されなかった場合は、ずっと前にそのドライブを交換する必要があります。セルフテスト、監視、および実際に故障しているドライブをできるだけ早く交換しないと、RAIDは停止します。

新しいドライブを入手し、ddrescueを使用して古いドライブからできることをコピーしてから、 データ復旧実験にコピーオンライトオーバーレイを使用 。オーバーレイを使用すると、元のファイルを変更せずに書き込むことができます(したがって、ディスクコピーをやり直す必要はなく、コピーのコピーも必要ありません)。ただし、オーバーレイにも機能するドライブが必要です。エラーのあるドライブでは機能しません。

0
frostschutz