Linux raid(CentOS 6.4)のHDD交換
HDDを入れ替えたい事情があったのでraidのHDDを交換。
とりあえず入れ替え前の状態を確認
# cat /proc/mdstat Personalities : [raid1] md2 : active raid1 sdb3[3] sda3[2] 1875233664 blocks super 1.2 [2/2] [UU] md0 : active raid1 sdb1[2] sda1[1] 511936 blocks super 1.0 [2/2] [UU] md1 : active raid1 sda2[1] sdb2[2] 77571968 blocks super 1.1 [2/2] [UU] bitmap: 1/1 pages [4KB], 65536KB chunk unused devices: <none>
ここで/dev/sdbを抜いてHDDを交換する。/dev/md0 から /dev/sdb1 を削除する場合、
# mdadm --manage /dev/md0 --fail /dev/sdb1 # mdadm --manage /dev/md1 --fail /dev/sdb2 # mdadm --manage /dev/md2 --fail /dev/sdb3
で故障状態にした上で、
# mdadm --manage /dev/md0 --remove /dev/sdb1 # mdadm --manage /dev/md1 --remove /dev/sdb2 # mdadm --manage /dev/md2 --remove /dev/sdb3
で削除する。その後、ホットスワップ非対応のPCを使用しているので
# shutdown -h 0
でシャットダウンしてHDDを交換する。
交換後、fdiskで/dev/sdaのパーティション構成をそっくりそのまま/dev/sdbに作成する。まずは/dev/sdaを確認
# fdisk -u /dev/sda コマンド (m でヘルプ): p ディスク /dev/sda: 2000.4 GB, 2000398934016 バイト ヘッド 255, セクタ 63, シリンダ 243201, 合計 3907029168 セクタ Units = セクタ数 of 1 * 512 = 512 バイト セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト I/O size (minimum/optimal): 4096 bytes / 4096 bytes ディスク識別子: 0x00001b3f デバイス ブート 始点 終点 ブロック Id システム /dev/sda1 * 64 1024063 512000 fd Linux raid 自動検出 パーティション 1 は、シリンダ境界で終わっていません。 /dev/sda2 1024064 156299327 77637632 fd Linux raid 自動検出 /dev/sda3 156299328 3907029167 1875364920 fd Linux raid 自動検出 コマンド (m でヘルプ): q
/dev/sdaの構成が分かったので/dev/sdbを同じ構成で作成。
# fdisk -u /dev/sdb コマンド (m でヘルプ): p ディスク /dev/sda: 2000.4 GB, 2000398934016 バイト ヘッド 255, セクタ 63, シリンダ 243201, 合計 3907029168 セクタ Units = セクタ数 of 1 * 512 = 512 バイト セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト I/O size (minimum/optimal): 4096 bytes / 4096 bytes ディスク識別子: 0x00001b3f デバイス ブート 始点 終点 ブロック Id システム コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本パーティション (1-4) p パーティション番号 (1-4): 1 最初 セクタ (63-3907029167, 初期値 64): 64 Last セクタ, +セクタ数 or +size{K,M,G} (64-3907029167, 初期値 3907029167):1024063 コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本パーティション (1-4) p パーティション番号 (1-4): 2 最初 セクタ (63-3907029167, 初期値 1024064): 1024064 Last セクタ, +セクタ数 or +size{K,M,G} (1024064-3907029167, 初期値 3907029167):156299327 コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本パーティション (1-4) p パーティション番号 (1-4): 3 最初 セクタ (63-3907029167, 初期値 156299328): 156299328 Last セクタ, +セクタ数 or +size{K,M,G} (156299328-3907029167, 初期値 3907029167):3907029167 コマンド (m でヘルプ): t パーティション番号 (1-4): 1 16進数コード (L コマンドでコードリスト表示): fd コマンド (m でヘルプ): t パーティション番号 (1-4): 2 16進数コード (L コマンドでコードリスト表示): fd コマンド (m でヘルプ): t パーティション番号 (1-4): 3 16進数コード (L コマンドでコードリスト表示): fd コマンド (m でヘルプ): w
パーティションを交換前のHDDと同じ容量で作成できたので、とりあえずブートローダだけは再構築する。
# mdadm --manage /dev/md0 --add /dev/sdb1
でraidにHDDを追加して、
cat /proc/mdstat
で、確認。再構築が完了したらブートローダーをセットするためにgrubシェルから作業する。
# grub > root (hd1,0) > setup (hd1) > root (hd0,0) > setup (hd0)
hd1は新しく追加したHDD、hd0は元々あったHDD。これをしておかないとHDDが壊れたときに起動しなくなる。
# mdadm --manage /dev/md1 --add /dev/sdb2 # mdadm --manage /dev/md2 --add /dev/sdb3
これであとはのんびり再構築を待つだけ。