CentOS7の mdadm で構築したRAID1 で、シャットダウン時にHDDを交換して起動できなくなった場合の復旧方法です。
下記記事では、レスキューディスクを使ったRAID復旧を紹介していましたが、コメント欄にてレスキューディスクが無くとも対処できる方法を教えていただいたので、ここで説明します。
CentOS7の mdadm で構築したRAID1 で起動できなくなったら パソコン鳥のブログ
CentOS7の mdadm で構築したRAID1 で、シャットダウン時に片方のHDDを交換すると、ブート時に、下の画像のようになって、起動できなくなります。
RAID1の2つのHDDのうち、どちらを交換しても同じで、実機でも仮想マシンでも発生します。
mdadm が検知できない状態で、HDD が変わってしまうと発生するようです。
この場合の対処方法です。
なお、先の画面にならずに、「FATAL: No bootable medium found!」と出る場合は、交換した新HDD(をつなげているポート)がブート順の優先度が高かった場合です。
交換した新HDDからは当然、ブートできないので、残りのHDDから起動するようにします。
起動時にBIOS設定画面に入り(たいてい、起動時にDELキーやF2キーを押していれば入れます)、BIOSのブートデバイス指定で、もう1つのHDDから起動するように指定します。
先の画像のコンソール画面で、cat /proc/mdstat を実行します。
Personalities : md126 : inactive sda1[0][S] 524288 blocks super 1.2 md127 : inactive sda2[0][S} 7857152 blocks super 1.2 unused devices: <none>
この表示では、md126 と md127 が見えています。
以降の説明では md126、md127 で説明しますが、適宜皆さんの環境での値に置き換えて下さい。
次のコマンドを実行します。
mdadm --run /dev/md126 mdadm --run /dev/md127 mdadm --readwrite /dev/md126 mdadm --readwrite /dev/md127
–run によって、RAIDアレイを起動します。
-readwrite で、アレイを読み書き可能にします。
cat /proc/mdstat を実行すると、次のようになります。
raid1 の表示があり、縮退状態ですがRAIDとして動作しています。
Personalities : [raid1] md126 : active raid1 sda1[0] 524288 blocks super 1.2 [2/1] [U_] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sda2[0] 7857152 blocks super 1.2 [2/1] [U_] bitmap:0/1 pages [0KB], 65536KB chunk unused devices: <none>
ここで、exit を実行すると、コンソールから抜けて OSブートが継続します。
OSブート後、cat /proc/mdstat を実行します。
Personalities : [raid1] md126 : active raid1 sda1[0] 524288 blocks super 1.2 [2/1] [U_] bitmap: 1/1 pages [4KB], 65536KB chunk md127 : active raid1 sda2[0] 9950208 blocks super 1.2 [2/1] [U_] bitmap: 1/1 pages [4KB], 65536KB chunk unused devices: <none>
のように表示されます。
ここで、以降、sdX が動作しているHDD、sdY が新規交換したHDDとします。
cat /proc/mdstat の結果が [U_] の場合は、sdX が sda 、sdY が sdb となります。
[_U] の場合は、sdX が sdb 、sdY が sda となります。
sfdisk -d /dev/sdX | sfdisk /dev/sdY
を実行します。
sdX と同じパーティション情報が、sdY(新HDD)にも設定されます。
次のコマンドを実行します。RAIDに新HDDが組み込まれます。
/sbin/mdadm --manage /dev/md126 --add /dev/sdY1 /sbin/mdadm --manage /dev/md127 --add /dev/sdY2
cat /proc/mdstat を実行します。
RAID構築が始まっています。
Personalities : [raid1] md126 : active raid1 sdb1[2] sda1[0] 524288 blocks super 1.2 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sdb2[2] sda2[0] 9950208 blocks super 1.2 [2/1] [U_] [==>..................] recovery = 11.7% (1171840/9950208) finish=5.2min speed=27616K/sec bitmap: 1/1 pages [4KB], 65536KB chunk unused devices: <none>
cat /proc/mdstat を何度か実行し、recovery = XXX % の表記がなくなれば、構築完了です。
root で grub2-install /dev/sdY を実行し、新規交換したHDDにも grub の設定を行います。
(先の説明の通り、sdY は新規交換したHDD のデバイス名(sda やsdb等)とします)
これで、交換した新HDDからも起動できるようになります。
コメント