既存のdiskをソフトウェアRAIDに組み込む
子供のいたずらでPCの強制停止が頻繁に行われる昨今、いつHDDがお亡くなりになるかわからないので、自作PCでソフトウェアRAIDを組んで、冗長化することにしました。
そのときのメモ。
まず、いま動いているHDDと同じ型のディスクを買ってきて、自作PCに組み込む。 (どうでもよいけれど、同じ型の2TBのディスクが2年前と同じ値段でした。)
partedで現状のディスクと同じパーティションを新しいディスクで区切る
[root@sv01 ~]# parted /dev/sda GNU Parted 2.1 /dev/sda を使用 GNU Parted へようこそ! コマンド一覧を見るには 'help' と入力してください。 (parted) print モデル: ATA WDC WD20EZRX-00D (scsi) ディスク /dev/sda: 2000GB セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: gpt 番号 開始 終了 サイズ ファイルシステム 名前 フラグ (parted) (parted) mkpart primary 1049kB 600GB (parted) (parted) mkpart primary 600GB 1200GB (parted) (parted) mkpart primary 1200GB 2000GB
raidフラグをONに。
(parted) set 1 raid on (parted) set 2 raid on (parted) set 3 raid on (parted) (parted) print モデル: ATA WDC WD20EZRX-00D (scsi) ディスク /dev/sda: 2000GB セクタサイズ (論理/物理): 512B/4096B パーティションテーブル: gpt 番号 開始 終了 サイズ ファイルシステム 名前 フラグ 1 1049kB 600GB 600GB primary raid 2 600GB 1200GB 600GB primary raid 3 1200GB 2000GB 800GB primary raid (parted)
raidを組む。
※ここでは既存のディスクを組み込む準備をするため、初期をfault状態とする。 missingオプションがそれに当たるのだと思う。RAIDは1。デバイス数は2。
[root@sv01 ~]# mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sda1 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? Continue creating array? (y/n) y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md1 started. [root@sv01 ~]# [root@sv01 ~]# [root@sv01 ~]# mdadm --create /dev/md2 --level=1 --raid-devices=2 missing /dev/sda2 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? Continue creating array? (y/n) y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md2 started. [root@sv01 ~]# [root@sv01 ~]# mdadm --create /dev/md3 --level=1 --raid-devices=2 missing /dev/sda3 mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 Continue creating array? Continue creating array? (y/n) y mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md3 started.
RAIDの状態表示(片方faultした状態になっている。)
[root@sv01 ~]# cat /proc/mdstat Personalities : [raid1] md3 : active raid1 sda3[1] 781508416 blocks super 1.2 [2/1] [_U] md2 : active raid1 sda2[1] 585805632 blocks super 1.2 [2/1] [_U] md1 : active raid1 sda1[1] 585805632 blocks super 1.2 [2/1] [_U] unused devices: <none>
RAIDを組んだディスクをフォーマットする。
mkfs -t ext4 /dev/md1 mkfs -t ext4 /dev/md2 mkfs -t ext4 /dev/md3
先ほどRAIDを組んだ新しいディスクと古いディスクの両方をmountして古いディスクからデータをコピーする
# 新しいディスク(RAID)のmount mount /dev/md1 /mnt/hdd1 mount /dev/md2 /mnt/hdd2 mount /dev/md3 /mnt/hdd3 # 現行のディスクのmount mount /dev/sdb1 /mnt/hdd11 mount /dev/sdb2 /mnt/hdd12 mount /dev/sdb3 /mnt/hdd13 # 現行のディスクからデータをコピーする cp -rvp /mnt/hdd11/* /mnt/hdd1/. cp -rvp /mnt/hdd12/* /mnt/hdd2/. cp -rvp /mnt/hdd13/* /mnt/hdd3/.
現行のディスクをRAIDに組み込む
[root@sv01 ~]# mdadm --manage /dev/md1 -a /dev/sdb1 mdadm: added /dev/sdb1 [root@sv01 ~]# [root@sv01 ~]# [root@sv01 ~]# cat /proc/mdstat Personalities : [raid1] md3 : active raid1 sda3[1] 781508416 blocks super 1.2 [2/1] [_U] md2 : active raid1 sda2[1] 585805632 blocks super 1.2 [2/1] [_U] md1 : active raid1 sdb1[2] sda1[1] 585805632 blocks super 1.2 [2/1] [_U] [>....................] recovery = 0.0% (508992/585805632) finish=95.8min speed=101798K/sec unused devices: <none> [root@sv01 ~]# [root@sv01 ~]# [root@sv01 ~]# mdadm --manage /dev/md2 -a /dev/sdb2 mdadm: added /dev/sdb2 [root@sv01 ~]# [root@sv01 ~]# [root@sv01 ~]# mdadm --manage /dev/md3 -a /dev/sdb3 mdadm: added /dev/sdb3
リビルドが終わったらこんな感じ。放置して寝てたからわからないけれど、数時間かかった模様。
# 完成 [root@sv01 ~]# cat /proc/mdstat Personalities : [raid1] md3 : active raid1 sdb3[2] sda3[1] 781508416 blocks super 1.2 [2/2] [UU] md2 : active raid1 sdb2[2] sda2[1] 585805632 blocks super 1.2 [2/2] [UU] md1 : active raid1 sdb1[2] sda1[1] 585805632 blocks super 1.2 [2/2] [UU] unused devices: <none>
以上!