web-dev-qa-db-ja.com

間違って検出されたdmraid(FakeRaid)RAID 10アレイを修正/修正する方法

Dmraidに既存のRAID 10アレイを適切に検出させようとしていますが、これはWindows 7で正常に機能しています。要約すると、ドライブのセットアップとBIOSパーティションは次のとおりです。

  • 2 x SSD(120 GB)、RAID 0。

    パーティション分割:180 GB (win7)および58 GB (Ubuntu)

    Ubuntuで検出され、正常にマウントされています。

  • 4 x HDD(2 TB)、RAID 1 + 0。単一の4TBパーティション。

    Ubuntuで動作していません。


Ubuntuインストール自体は、パーティション分割されたストライプディスクペア上にあり、正常に動作します。 2つのパーティション(180 GBと58 GB)は、次のLVMに対応します(読みやすくするためにデータをフォーマットする自由を取りました)。

#$ Sudo dmsetup info /dev/dm-{1,2,3,4,5}
|----------+------- -+ --------------- + ----------- + ---------- + ----- | dev/dm-0 | ubuntu | pdc_hjijcjji |コンテナ| | 58 GB | 
 | dev/dm-1 | ubuntu | pdc_hjijcjji1 |/| ext4 | 54 GB | 
 | dev/dm-2 | ubuntu | pdc_hjijcjji2 | |拡張| 4.3 GB | 
 | dev/dm-3 | 7勝つ| pdc_fjhhdeeg |コンテナ| | 180 GB | 
 | dev/dm-4 | ubuntu | pdc_hjijcjji5 | |スワップ| 4.3 GB | 
 | dev/dm-5 | 7勝つ| pdc_fjhhdeeg1 | | NTFS | 180 GB | 
 | ----------- + -------- + --------------- + ----- ------ + ---------- + -------- |

Raid 10アレイ(Ubuntu内で動作させるために必要なもの)は、4つの2TBディスクで構成され、結果の4TBアレイを提供します。次の出力が与えられると、dmraidはこの配列を認識しているように見えます。

#$ Sudo dmraid -r 
 | ---------- + -------- + ------------- ----- + -------- + --------- + ---------------- + -------- -| 
 |デバイス|フォーマット|名前|タイプ|状態? |サイズ(セクター)| ? | 
 | ---------- + -------- + ------------------ + ---- ---- + --------- + ---------------- + --------- | 
 |/dev/sdf | pdc | pdc_fjhhdeeg |ストライプ|わかりました| 175781248 | data @ 0 | 
 |/dev/sde | pdc | pdc_fjhhdeeg |ストライプ|わかりました| 175781248 | data @ 0 | 
 |/dev/sdd | pdc | pdc_bjibibahah-1 |ストライプ|わかりました| 1758766336 | data @ 0 | 
 |/dev/sdc | pdc | pdc_bjibibahah-1 |ストライプ|わかりました| 1758766336 | data @ 0 | 
 |/dev/sda | pdc | pdc_bjibibahah-0 |ストライプ|わかりました| 1758766336 | data @ 0 | 
 |/dev/sdb | pdc | pdc_bjibibahah-0 |ストライプ|わかりました| 1758766336 | data @ 0 | 
 | ---------- + -------- + ------------------ +- ------- + --------- + ---------------- + --------- |

pdc_hjijcjji配列もここに表示されると予想されるので、これは少し気を引き締めます。おそらく、ストライプディスク内のパーティションであるため、pdc_fjhhdeeg内に含まれています。いずれにせよ、ストライプアレイは正常に動作しているので、あまり心配していません。

pdc_hjijcjjiを実行するとdmraid -sが表示されます。

#$ Sudo dmraid -s 
 | ----------- + ---------------- + ---- ---------- + -------------- | 
 |名前| pdc_bjibibahah | pdc_fjhhdeeg | pdc_hjijcjji | 
 | ----------- + ---------------- + ------------- -+ -------------- | 
 | |スーパーセット|アクティブセット|アクティブセット| 
 |サイズ(-h)| 1.677 TB | 167.6 GB | 54.0 GB | 
 |サイズ| 3517532672 | 351562496 | 113281024 | 
 |ストライド| 128 | 128 | 128 | 
 |タイプ| raid10 |ストライプ|ストライプ| 
 |ステータス|わかりました|わかりました| OK | 
 |サブセット| 2 | 0 | 0 | 
 |開発者| 4 | 2 | 2 | 
 |スペア| 0 | 0 | 0 | 
 | ------------ + ---------------- + ------------- -+ -------------- | 
#サイズは512バイトのブロックです。

pdc_bjibibahahはRaid10配列に対応しているようですが、奇妙なサイズ(約4 TBに近い1.677 TB)を持っている点が異なります。 dmraid -ayを使用してこれを有効にしようとすると、マウントされた1.677 TBデバイスが割り当てられていないデータとして報告されます。

bjibibahah配列でSudo dmraid -s -siを実行しています:

#$ Sudo dmraid -s -si 
 | ----------- + ---------------- +- ---------------- + ------------------ | 
 |名前| pdc_bjibibahah | pdc_bjibibahah-0 | pdc_bjibibahah-1 | 
 | ----------- + ---------------- + ----------- ------- + ------------------ | 
 | |スーパーセット|サブセット|サブセット| 
 |サイズ(-h)| 1.638 TB | 1.638 TB | 1.638 TB | 
 |サイズ| 3517532672 | 3517532672 | 3517532672 | 
 |ストライド| 128 | 128 | 128 | 
 |タイプ| raid10 |ストライプ|ストライプ| 
 |ステータス|わかりました|わかりました| OK | 
 |サブセット| 2 | 0 | 0 | 
 |開発者| 4 | 2 | 2 | 
 |スペア| 0 | 0 | 0 | 
 | ------------ + ---------------- + ------------- ----- + ------------------ | 

アレイを手動で構成しようとしましたが、成功しませんでした。manページもあまり役に立ちません。 dmraidを構成する方法、またはRAID10アレイの構成を変更するように説得する方法についてだれかが提案した場合、私は本当に感謝します。

関連するはずの出力を次に示します。

 $ Sudo dmraid -V 
 dmraidバージョン:1.0.0.rc16(2009.09.16)共有
 dmraidライブラリバージョン:1.0.0.rc16(2009.09.16)
 device-mapperバージョン:4.20.0 
 
 $ Sudo dmsetup --version 
ライブラリバージョン:1.02.48(2010-05-20)
ドライバーバージョン:4.20.0 
 
 $ uname -srvm 
 Linux 3.0.0-16-generic#28-Ubuntu SMP Fri Jan 27 17:44:39 UTC 2012 x86_64 
 
 $ lsb_release -a 
使用可能なLSBモジュールはありません。
ディストリビューターID:Ubuntu 
説明:Ubuntu 11.10 
リリース:11.10 
コードネーム:oneiric 

また、RAID10アレイのBIOS raidセットアップは、ubuntu内の次のディスクと一致します。コード:

 | --------- + ------------ + -------------- | 
 |ポート:ID |割り当て| OSディスク名| 
 | --------- + ------------ + -------------- | 
 | 01:01 | LD 1-1 |/dev/sda | 
 | 02:01 | LD 1-2 |/dev/sdb | 
 | 03:01 | LD 1-3 |/dev/sdc | 
 | 04:01 | LD 1-4 |/dev/sdd | 
 | --------- + ------------ + -------------- | 

更新:組み込みのAMD SB950コントローラーを使用して、私がCrosshair Vマザーボードを使用していることを忘れていました。

更新2:Sudo dmraid -s -ccs pdcを実行すると、次のエラーメッセージが表示されます。

エラー:pdc:/dev/sdf
上のRAIDセット "pdc_fjhhdeeg" [1/2]のデバイスの数が間違っています。/2] on /dev/sde
エラー:pdc:間違った#RAIDセット内のデバイスのセット "pdc_bjibibahah-1" [1/2] on /dev/sdd
エラー:pdc:間違った# /dev/sdc
のRAIDセット "pdc_bjibibahah-1" [1/2]のデバイスのエラー:pdc:/ dev /のRAIDセット "pdc_bjibibahah-0" [1/2]のデバイスの間違った数sdb 
エラー:pdc:/dev/sda
*ERR*のRAIDセット "pdc_bjibibahah-0" [1/2]のデバイス数が間違っています

指定子pdcを省略し、単にSudo dmraid -s -ccsと書くと、さらに謎めいたものになります。

 * ERR * 
 * ERR * 
 * ERR * 

更新3:提案どおりSudo dmraid -rEを使用して、不適切に構成されたアレイを削除できました---(askubuntu QAで =。私はまだ「エラー:pdc:RAIDセット内のデバイスの間違った数...」エラーを受け取っていますが、これはさらなる進歩を妨げているようです。この問題の解決策を探し続けます。

編集:誰かが私を助けるのに役立つ情報を追加できますか?

2
swalog

OK :)だからあなたの目標は次のとおりです。

4 x HDD (2 TB), RAID 1+0. Single 4TB partition.

報告されているのは約1.6TBだけであり、ストレージが不足していることはメタデータの問題を示唆しています。

dmraid -rEを使用して、配列全体を破棄し、メタデータを確実に消去することをお勧めします。次に、それらのディスクが表示されなくなったら、2つの2Tディスクから単純なRAID1を作成してみてください。コンテナの容量は1.8〜1.9に近く、次に1.6になるはずです。それが検証されたら、thenストライプを作成します。ストライプを作成するには、2つを加算するだけです。これが機能しない場合は、ファームウェアまたはdmraidシステム自体にバグがある可能性があります。

dmraidはうーん...面白い、私はそれを使わないほうがいいだろうという選択を考えると。基本的に、パフォーマンスを向上させることなくmd-raidのすべての複雑さを取り入れてから、さまざまなベンダーのさまざまなメタデータ形式を混合し、そのメタデータを複数のオペレーティングシステムと共有して、共有したOSを信頼しますwithはメタデータを台無しにしません。

この構成が安定したら、実際に障害のあるメンバーの交換をテストすることをお勧めします。サービスを提供できない場合、RAIDは大きな単一障害点です。幸運を。

dmraid -rEの問題への応答この時点で唯一のオプションはdd if =/dev/zero ...で、ディスクを消去します。

2
ppetraki

私はまったく同じ問題を抱えており、最終的に(満足のいく答えが得られずに数日間グーグルで調べた後)問題を見つけたと思います。

これはバグだと思います-32ビットの符号なしintはどこかのセクターの数に使用されます(dmraid?)。

(私の)2TBディスクのセクター数:3906898048に512B /セクターを掛けると2.0TBまたは1.8TiBになりますストライプ化すると倍になりますが、代わりに3518828800セクターに512B /セクターを掛けた結果が得られます1.8TBまたは1.6TiB。

Windows 10がそのRAID10パーティションで正しい4TBサイズを読み取ることを考慮すると、Linux側でエラーが発生する可能性があります。

バイナリに変換:3906898048 -> 0000 1110 1000 1101 1110 1000 1000 1000 0000 2x 3906898048 -> 0001 1101 0001 1011 1101 0001 0001 0000 0000 3518828800 -> 0000 1101 0001 1011 1101 0001 0001 0000 0000

誰かがそれを調べてパッチを作成してください。ありがとうございました。

0
Martina