アクティブパーティションとスペアパーティションを持つRAID1


8

UbuntuシステムのRAID1ソフトウェアRAIDパーティションで次の問題が発生しています(重要な場合は、10.04 LTS、2.6.32-24サーバー)。

私のディスクの1つ(sdb5)がI / Oエラーを報告したため、アレイで障害があるとマークされました。その後、アレイは1つのアクティブデバイスで劣化しました。したがって、私はハードディスクを交換し、パーティションテーブルを複製し、すべての新しいパーティションをRAIDアレイに追加しました。すべてのパーティションを同期した後、そのうちの1つを除いて、アクティブなデバイスが2つある状態で問題なく終了しました。ただし、以前に障害のあるディスクを報告したパーティションには、新しいパーティションがアクティブデバイスではなくスペアディスクとして含まれていました。

md3 : active raid1 sdb5[2] sda5[1]
  4881344 blocks [2/1] [_U]

詳細な外観は明らかにします:

root@server:~# mdadm --detail /dev/md3
[...]
Number   Major   Minor   RaidDevice State
   2       8       21        0      spare rebuilding   /dev/sdb5
   1       8        5        1      active sync   /dev/sda5

それで、ここに質問があります:raidにスペアディスクをアクティブなディスクに変えるように伝えるにはどうすればよいですか?そして、なぜそれがスペアデバイスとして追加されたのですか?これはルートパーティションであるため、アレイを再作成または再構築することはできません。そして、私はSoftware Raid HOWTOでその主題のヒントを見つけることができません。

任意の助けいただければ幸いです。

現在のソリューション

私は自分の問題の解決策を見つけましたが、これが実際の方法かどうかはわかりません。私のレイドを詳しく見てみると、sdb5は常にスペアデバイスとしてリストされていることがわかりました。

mdadm --examine /dev/sdb5
[...]
Number   Major   Minor   RaidDevice State
this     2       8       21        2      spare   /dev/sdb5

   0     0       0        0        0      removed
   1     1       8        5        1      active sync   /dev/sda5
   2     2       8       21        2      spare   /dev/sdb5

そのため、デバイスsdb5をアレイmd3に読み込むと、常にデバイスをスペアとして追加することになります。

最後に、アレイを再作成しました

mdadm --create /dev/md3 --level=1 -n2 -x0 /dev/sda5 /dev/sdb5

うまくいった。

しかし、質問は未解決のままです。スーパーブロック内の要約を操作し、アレイにsdb5をスペアディスクからアクティブディスクに変換するように指示するより良い方法はありますか?私はまだ答えを知りたいです。


「cat / proc / mdstat」は何を示していますか?それは単に再構築しているのではなく、再構築が完了すると「スペア」が消えるだけではありませんか?「mdadm --version」は何を示していますか?古いバグがありました... mail-archive.com/linux-raid@vger.kernel.org/msg09818.htmlを参照してください。
レム

いいえ、それが問題です。質問の最初のスニペットは、アレイの/ proc / mdstatの出力を示しています。デバイスは既に同期されていますが、同期プロセスが成功した後、デバイスはスペアとして残り、アクティブなデバイスにはなりません。
Daniel Baron

mdadm-v2.6.7.1
ダニエルバロン

回答:


1

Daniel:最初に、以下を実行して、スペアがアレイに統合されているかどうかを再確認します。

猫/ proc / mdstat

これは、進行中のビルドプロセスがあるかどうかと、それがどれくらいかかるかを報告する必要があります。

建物が発生していない場合は、以下を試してください

mdadm / dev / md3 --remove / dev / sdb5

mdadm / dev / md3 --add / dev / sdb5

それがどのように機能するかを報告してください。詳細については、http://linux.die.net/man/8/mdadmを参照してください。


助けてくれてありがとう、ロルニック。最初のスニペットからわかるように、/ proc / mdstatはアレイ内の両方のデバイスを示しています。デバイスは既に問題なく同期されています(ここには表示されていません)。しかし、再同期プロセスの完了後、デバイスはアクティブなデバイスになりませんでした。削除して再度追加しても、この動作は変わりませんでした。
ダニエルバロン

1

かなり遅いですが、これを行うとスペアドライブが有効になります:

mdadm --grow /dev/md3 -n 2

マンページが言うように:

作成、ビルド、または拡張の場合:-n、--raid-devices =アレイ内のアクティブなデバイスの数を指定します。これとスペアデバイスの数(下記を参照)は、-createのコマンドラインにリストされているコンポーネントデバイス(「欠落」デバイスを含む)の数と同じである必要があります。値を1に設定することはおそらく間違いであるため、最初に--forceを指定する必要があります。リニア、マルチパス、RAID0およびRAID1の場合、値1が許可されます。RAID4、RAID5、またはRAID6では許可されません。この数は、RAID1、RAID4、RAID5、およびRAID6アレイの--growを使用して、必要なサポートを提供するカーネルでのみ変更できます。


0

(別の理由で)その問題が発生したとき、私は--growを使用して、スペアドライブを「適切に」再度追加する必要がありました(エラー状態もクリアします)。

次のようなもの(ドキュメントで確認してください!):

mdadm --grow --level = faulty --layout = flush / dev / sdb5

次に、デバイスを追加すると、デバイスが認識されます。

問題は、mdドライバーが各パーティションのステータスをドライブのブートデータに保存することです。そのため、再起動後でもステータスを認識し、不良とマークされたパーティションを回避します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.