サーバーgrubのUbuntu 12.04 LTSにアップグレードした後、raidアレイについてエラーが発生し、文句を言うようになりましたが、すべてが機能しているように見えますが、grubがエラーを出すのは少し不安です。
grub-pc(1.99-21ubuntu3.7)のセットアップ... エラー:RAID md0のインデックス2の2つのディスクが見つかりました。 エラー:余分なRAIDメンバー(3が見つかりました。
Grubが更新されると、これらのエラーがたくさん発生します。
事実は次のとおりです。raid5セットアップで3つの同一のディスクがあり、2つのディスクには1つのプライマリパーティションがアレイに追加されますが、3番目のディスクはプライマリパーティションなしで追加されます。すなわち。 mdam --manage /dev/md_d0 --add /dev/sdc
これがgrubの不満の理由だと推測しています。
この問題を発見してから、プライマリパーティションが欠落しているディスクを無効にし、プライマリパーティションを作成し、cfdisk /dev/xxx
とPrint Partition table
で同じように見えることを確認しました。そして、RAIDアレイに新しいパーティションを追加しようとしましたが、RAIDアレイに追加するにはパーティションが小さすぎるというメッセージが表示されました。
> Sudo mdadm /dev/md_d0 --add /dev/sdc1
mdadm: /dev/sdc1 not large enough to join array
パーティションテーブルはすべて同じように見えますが、
/dev/sdc のパーティションテーブルFirst Last #タイプセクターセクターオフセット長さファイルシステムタイプ(ID)フラグ -------- ----------- ----------- ------ ----------- ----------- --------- ---- Pri/Log 0 2047 * 0#2048 * Free Spaceなし 1プライマリ2048 * 3907029167 * 0 3907027120 * Linux raid auto(FD )なし /dev/sdd のパーティションテーブルFirst Last #タイプセクターセクターオフセット長さファイルシステムタイプ(ID)フラグ -------- ----------- ----------- ------ ---------- --------------------- ---- Pri/Log 0 2047 * 0#2048 * Free Spaceなし 1プライマリ2048 * 3907029167 * 0 3907027120 * Linux raid auto(FD)なし /dev/sde のパーティションテーブルFirst Last #タイプセクターセクターオフet Length Filesystem Type(ID)Flag -------- ----------- ----------- ------ ----------- -------------------- ---- Pri/Log 0 2047 * 0#2048 *空き領域なし 1プライマリ2048 * 3907029167 * 0 3907027120 * Linux raid auto(FD)なし
または、実際にcfdiskの未加工データとしてパーティションテーブルを印刷する場合、いくつかの違いがありますが、それが何を意味するのか解読できません。
-> diff sde.raw sdc.raw 1c1 ディスクドライブ:/dev/sde --- ディスクドライブ:/ dev /sdc 30c30 0x1B0:00 00 00 00 00 00 00 00 B7 E9 70 74 00 00 00 20 --- 0x1B0:00 00 00 00 00 00 00 00 4B 0C 58 1C 00 00 00 20
Ddを使用して作業ディスクの1つからmbrをコピーしようとすることに気付きましたが、cfdiskの生出力でパーティションテーブルが同一であっても同じエラーが発生します。
$ Sudo dd if =/dev/sdd of =/tmp/sdd-mbr.bin bs = 512 count = 1 $ Sudo dd if =/tmp/sdd-mbr.bin of =/dev/sdc bs = 512 count = 1
$ cat /proc/partitions major minor #blocks name 8 48 1953514584 sdd 8 49 1953513560 sdd1 8 32 1953514584 sdc 8 33 1953513560 sdc1 8 64 1953514584 sde 8 65 1953513560 sde1
パーティションテーブルの生の比較では同じ出力が得られ、パーティションは同じサイズのように見えますが、/dev/sdc1
を配列に追加しようとすると同じエラーが表示されます。
私の質問は、アレイ全体を分解してゼロから再作成することなくこれを修正する方法があるかどうかだと思いますか?
mdadm -D /dev/md_d0
からの出力は、/ dev/sdcを再度追加したため、アレイはまだ再構築中です。
/dev/md_d0: バージョン:0.90 作成時間:Sat Aug 14 21:06:13 2010 Raid Level:raid5 Arrayサイズ:3907028992(3726.03 GiB 4000.80 GB) 使用済み開発サイズ:1953514496(1863.02 GiB 2000.40 GB) RAIDデバイス:3 合計デバイス数:3 優先マイナー:0 永続性:スーパーブロックは永続的です。 更新時間:金1月11日18:36:06 2013 状態:クリーン、劣化、回復 アクティブデバイス:2 ワーキングデバイス:3 故障デバイス:0 スペアデバイス:1 レイアウト:左対称 チャンクサイズ:64K 再構築ステータス:53%完了 UUID:74998045:22316376: 01f9e43d:ac30fbff(ホストサーバーに対してローカル) イベント:0.19988 番号メジャーマイナーRaidDevice状態 3 8 32 0スペアの再構築/ dev/sdc 1 8 64 1アクティブ同期/dev/sde 2 8 48 2アクティブ同期/dev/sdd
アレイ全体がパーティションではなく実際のデバイスで構成されているように見えるので、問題はsdd1およびsde1パーティションがハードドライブに残され、追加するとすぐに/ dev/sdcに上書きされることです配列に。
さて、何が起こっているのかというと、もともとパーティションなしでディスク全体でアレイを構築したということです。後でパーティションテーブルを追加したように見えますが、これによりアレイが破損します。 mdadmはディスク全体を想定しているため、ディスクパーティションは小さすぎるため、ここでは追加できません。
Grubで表示されるエラーは、0.9メタデータ形式では、raidメタデータがディスク全体に適用されるのか、パーティションに適用されるのかがわからないためです。新しいメタデータ形式を使用してアレイを再構築し、できれば今回は最初に個々のディスクをパーティション分割する必要があります。
ディスクのHPAを無効にする必要があります。
$ hdparm -N /dev/sdc
/dev/sdc:
max sectors = 586070255/586072368, HPA is enabled
$ hdparm -N p586072368 /dev/sdc
「p」は再起動後の永続性に必要です。コンピューターを再起動してRAIDにディスクを追加する必要があるより