Raid1の復旧手順まとめ

この記事は2016年4月24日に書かれたものです。内容が古い可能性がありますのでご注意ください。


Raid1の復旧手順まとめ

Raid1(ミラーリング)の復旧作業を行ったので、手順をまとめておきます。

状況

・/dev/sda
/dev/sda1(/bootにマウント)
/dev/sda2(/にマウント)
・/dev/sdb
/dev/sdb1(/bootにマウント)
/dev/sdb2(/にマウント)

ディストリビューションはCentOS5です。mdadmでソフトRAIDを構築しています。
ブートローダはsda1にのみインストールされている状態で、今回はsdbが故障しました。
もしもsdaが故障した場合は、sdaを外した後、レスキューCDなどで起動し、
sdb1にブートローダをインストールします。その後sdaのケーブルに指し直し、以下を実行します。

手順

1.取り外すディスクを”Fail”状態にする。

mdadm --manage /dev/md0 --fail /dev/sdb1
mdadm --manage /dev/md1 --fail /dev/sdb2

2.”Fail”状態にしたディスクを”remove”する。

mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm --manage /dev/md1 --remove /dev/sdb2

3.PCをシャットダウンする

shutdown -h now

4.新しいHDDをsdbとして認識させる

mdadm --manage /dev/md0 --add /dev/sdb1
mdadm --manage /dev/md1 --add /dev/sdb2

11:16 raidAdd Start

5.どのHDDが何というHDD名で認識されているかを確認

# cat /boot/grub/device.map
# this device map was generated by anaconda
(hd0)     /dev/sda
(hd1)     /dev/sdb

6.各HDDのパーティションがどうなっているかを確認

# fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   fd  Linux raid 自動検出
/dev/sda2              14       60801   488279610   fd  Linux raid 自動検出

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

デバイス Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          13      104391   fd  Linux raid 自動検出
/dev/sdb2              14       60801   488279610   fd  Linux raid 自動検出

Disk /dev/md1: 499.9 GB, 499998195712 bytes
2 heads, 4 sectors/track, 122069872 cylinders
Units = シリンダ数 of 8 * 512 = 4096 bytes

ディスク /dev/md1 は正常な領域テーブルを含んでいません

Disk /dev/md0: 106 MB, 106823680 bytes
2 heads, 4 sectors/track, 26080 cylinders
Units = シリンダ数 of 8 * 512 = 4096 bytes

ディスク /dev/md0 は正常な領域テーブルを含んでいません

7.各パーティションがRaidにどう割り当てられているかを確認

# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[1] sda1[0]
      104320 blocks [2/2] [UU]

md1 : active raid1 sdb2[2] sda2[0]
      488279488 blocks [2/1] [U_]
      [===========>.........]  recovery = 55.9% (273297792/488279488) finish=85.6min speed=41824K/sec

unused devices: <none>

(8.grubが入っていない方(sdb)にgrubを追加)

# grub
grub> device (hd0) /dev/sdb
grub> root (hd0,0) 
grub> install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf

※または以下(hdを1に。)
# grub
grub> device (hd1) /dev/sdb
grub> root (hd1,0) 
grub> install /grub/stage1 (hd1) /grub/stage2 p (hd1,0)/grub/grub.conf

まとめ

Raid1の修復作業を行ったので手順をまとめました。Raid1はミラーリングを行ってくれるのでとても便利ですが、
あまり設定し直しをすることがないため、時々こういうディスク不具合が発生すると、手間取ってしまいます。
そのようなときのリマインドでした。

  • このエントリーをはてなブックマークに追加

PAGE TOP