2013年6月20日木曜日

RAID1のLinux Raidを構成するディスク群から1つ取り外し、単体でマウントするテスト

ubuntu-12.04にて、raid1のmd0を構成するディスク(sda1+sdb1)から一つのディスク・sdb1を取り外し、 sdb1単体で内容そのままに別物と扱われるようにmd50を構成するテスト。
目的は、mdを使って、信頼度がソレナリのディスク丸ごとオンラインバックアップを実現するテスト目的。
なお、degratedしたmdの各ディスク内容を確認する処理としては、不適切な内容を含んでいる。
$ cat /proc/mdstat 
...
md0 : active raid1 sdb1[2] sda1[3]
      999412 blocks super 1.2 [2/2] [UU]
...

$ sudo blkid 
...
/dev/sda1: UUID="d2ce795b-4157-0ba2-c114-c2a3e10e9c9e" UUID_SUB="39e610d6-e07d-89a8-3b66-09e66413d935" LABEL="mdadmtest:0" TYPE="linux_raid_member" 
...
/dev/sdb1: UUID="d2ce795b-4157-0ba2-c114-c2a3e10e9c9e" UUID_SUB="d4933b1d-576b-bedf-9db8-edc8fe9fff51" LABEL="mdadmtest:0" TYPE="linux_raid_member" 
...
/dev/md0: UUID="bc6efd38-8656-4574-880a-11ade5736ca9" TYPE="ext4" 
...


$ sudo mdadm --manage /dev/md0 --fail /dev/sdb1 
mdadm: set /dev/sdb1 faulty in /dev/md0

$ sudo mdadm --manage /dev/md0 --remove /dev/sdb1 
mdadm: hot removed /dev/sdb1 from /dev/md0

$ sudo mdadm --assemble /dev/md50 --update uuid /dev/sdb1
mdadm: /dev/md50 assembled from 1 drive - need all 2 to start it (use --run to insist).

$ sudo mdadm --stop /dev/md50 
mdadm: stopped /dev/md50

$ sudo mdadm --assemble /dev/md50 --update name /dev/sdb1
mdadm: /dev/md50 assembled from 1 drive - need all 2 to start it (use --run to insist).

$ sudo mdadm --run /dev/md50 
mdadm: started /dev/md50

$ sudo fsck /dev/md50 
fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
/dev/md50: recovering journal
/dev/md50: clean, 231/62464 files, 15217/249853 blocks

$ sudo tune2fs -U `uuidgen` /dev/md50
tune2fs 1.42 (29-Nov-2011)

$ cat /proc/mdstat 
...
md50 : active raid1 sdb1[2]
      999412 blocks super 1.2 [2/1] [_U]
...
md0 : active raid1 sda1[3]
      999412 blocks super 1.2 [2/1] [U_]
...

$ sudo blkid 
...
/dev/sda1: UUID="d2ce795b-4157-0ba2-c114-c2a3e10e9c9e" UUID_SUB="39e610d6-e07d-89a8-3b66-09e66413d935" LABEL="mdadmtest:0" TYPE="linux_raid_member" 
/dev/sdb1: UUID="482ff3e3-85fe-9789-66e9-e504ce85b5eb" UUID_SUB="d4933b1d-576b-bedf-9db8-edc8fe9fff51" LABEL="mdadmtest:50" TYPE="linux_raid_member" 
...
/dev/md0: UUID="bc6efd38-8656-4574-880a-11ade5736ca9" TYPE="ext4" 
/dev/md50: UUID="60d468cf-9ab8-4b63-93a0-c5da46333744" TYPE="ext4"
...

$ sudo mdadm --detail --scan
...
ARRAY /dev/md/0 metadata=1.2 name=mdadmtest:0 UUID=d2ce795b:41570ba2:c114c2a3:e10e9c9e
ARRAY /dev/md50 metadata=1.2 name=mdadmtest:50 UUID=482ff3e3:85fe9789:66e9e504:ce85b5eb
...

$ sudo mount -o ro /dev/md50 /mnt
  • fsckは、稼働中のmd0からfail,removeしたため必要
  • sdb1のuuid,nameおよびmd50のuuidを変更することにより、uuid指定で行っている処理、   たとえば、os boot時にmd0へsdb1が影響をおよぼすことはなくなるだろう。
  • /etc/mdadm/mdadm.confの下部の ARRARY リストにmd50を追加更新し、「sudo update-initramfs -u」をしておけば、 md50を再起動しても自動で構成できる。
  • (基本的なことだが、)/etc/fstabを更新すれば、md50を再起動しても自動でマウントしたりできる。

0 件のコメント:

コメントを投稿