RAID1構成のLinuxRAIDリカバリ手順。
本ドキュメントの作業状況は以下となる。
1. 160GBのHDD 2台によるRAID1構成 2. 時々片側のHDDが異音を発し、システムがハングアップする障害が発生 3. 同容量のHDDが無かったため、200GBのHDDと交換することとした
物理的な交換作業となる。
二度手間を回避するため交換するHDDを抜いた後、ブートローダーが起動するすることを確認してから新しいHDDを取り付けた。
OS起動後、/proc/mdstatよりRAIDアレイが片側のみで動いていることを確認。
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 hda1[0]
488768 blocks [2/1] [U_]
md1 : active raid1 hda3[0]
77928896 blocks [2/1] [U_]
追加したHDD(/dev/hdc)にパーティションを作成する。
fdisk /dev/hdc
ディスクのサイズが異なるため、シリンダ数での容量指定では異なるサイズのパーティションが作成される。
全く同じサイズのパーティションを作成することは困難なため、元よりもやや大きいサイズのパーティションを作成する。
Device Boot Start End Blocks Id System /dev/hda1 * 1 970 488848+ fd Linux raid autodetect /dev/hda2 971 4939 2000376 82 Linux swap / Solaris /dev/hda3 4940 159560 77928984 fd Linux raid autodetect
Device Boot Start End Blocks Id System /dev/hdc1 * 1 61 489951 fd Linux raid autodetect /dev/hdc2 62 311 2008125 82 Linux swap / Solaris /dev/hdc3 312 24321 192860325 fd Linux raid autodetect
各領域を作成したあと、/boot領域にはブートフラグを立てる。
mdadmコマンドを使用して、作成したパーティションをRAIDアレイに組込む。
# mdadm /dev/md0 --add /dev/hdc1 mdadm: added /dev/hdc1
# mdadm /dev/md1 --add /dev/hdc3 mdadm: added /dev/hdc3
RAIDアレイのリビルドが開始される。
# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 hdc1[1] hda1[0]
488768 blocks [2/2] [UU]
md1 : active raid1 hdc3[2] hda3[0]
77928896 blocks [2/1] [U_]
[>....................] recovery = 0.3% (243328/77928896) finish=31.9min speed=40554K/sec
新たに追加したディスクに対してブートローダをインストールし、ブート可能な状態とする。
# grub
GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename.] grub>
grubの対話型インターフェイスよりgrubのインストールを行なう。
grub> device (hd0) /dev/hda
grub> root (hd0,0) Filesystem type is ext2fs, partition type 0xfd
grub> install /grub/stage1 (hd0) /grub/stage2 p /grub/grub.conf
grub> quit