mdadmで作ったソフトRAIDを壊してみる(RAID 5編) [Linux(LVM/RAID/Storage)]
おまちどうさまでした。(笑)昨日作成したRAID 5のボリュームのリビルドが完成しましたので、これでこのボリュームのデータは、ディスクの障害からは守られるはずです。
まずはおさらいがてら、RAID5のボリュームの状態とかみておきます。
/mnt/workにマウントされている、/dev/md0というデバイスが、4本のディスクでRAID 5を構成しているデバイスになります。ここはディスク1本飛んだくらいではヘコたれないはずです。
今はまだカラッポでつまらないので、「/etc」の下あたりをまるっとコピーしてみましょうか。
ちなみに、/proc/mdstatの中身よりもさらに詳細な情報を見たいという場合は、「mdadm」コマンドに「--misc --detail」オプションを付けて実行してみます。
それでは、この状態で/dev/hda5が壊れたことを想定してみることに。RAIDが動作し、また正常にアクセスできてるっぽい状態が確保されているかどうか、検証してみる。ボリュームへのアクセスが継続できていることを調べるため、別のターミナルから(ちょっとアンチョクだけども)「cd /mnt/work/etc;while :;do find . -print;done」とかやっておいて、この状態でRAIDへの操作を行う。
では、/dev/hda5に対して、mdadmコマンドにて「故障マーク」を付けてみる。
これで、4本のディスクで構築していたRAID5のボリュームは3本のディスクで運用状態を継続していることとなった。さっき、別のターミナルで実行していたfind コマンドの無限ループは、相変わらずダーっと表示を継続していることから、一応何事もなかったかのように使用できているということが判る。
それでは、故障した(ことにした)/dev/hda5をRAIDのアレイから撤去することにする。やはり「mdadm」コマンドを使用する。ディスクをRAIDアレイから撤去するには、「mdadm --manage RAIDデバイス名 --remove 引き抜くディスクのデバイス名」を実行する。
これで、壊れた(ことにした)/dev/hda5はアレイから撤去されたことに。チェックしてみる。
確かに/dev/hda5がいなくなっていることが判る。
これらの操作を行ったにもかかわらず、別ターミナルから実行しているfindコマンドの無限ループは相変わらず快調に動作している。
では、このRAIDデバイスを本来の4本のディスクで運用する状態に復元する。(要するに新しいディスクを突っ込むってことね)「mdadm --manage RAIDデバイス名 --add 新たに追加するディスクのデバイス名」を実行すればオッケー。
ここでは、さきほど壊れた(ことにした)/dev/hda5の代わりに、/dev/hda9を新しいディスクとしてアレイに投入している。この状態でRAIDアレイのリビルドが動き出す。状態を見てみると…
という訳で、これから153分ほどかけてRAID 5のリビルドが行われるということが判る。なお、この状態でもなお、別ターミナルで実行しているfindコマンドの無限ループは快調に動作していて、運用状態が確保されていることがわかる。
なお、今この状態(RAIDのリビルドが走っている状態)で別のディスクが故障した場合はオワタ\(^○^)/オワタということになるので要注意!
まずはおさらいがてら、RAID5のボリュームの状態とかみておきます。
# cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 hda8[3] hda7[2] hda6[1] hda5[0] 30025152 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] unused devices: (none) # df -h Filesystem サイズ 使用 残り 使用% マウント位置 /dev/hda2 9.7G 1.7G 7.6G 18% / /dev/hda1 99M 11M 83M 12% /boot tmpfs 252M 0 252M 0% /dev/shm /dev/md0 29G 173M 27G 1% /mnt/work
/mnt/workにマウントされている、/dev/md0というデバイスが、4本のディスクでRAID 5を構成しているデバイスになります。ここはディスク1本飛んだくらいではヘコたれないはずです。
今はまだカラッポでつまらないので、「/etc」の下あたりをまるっとコピーしてみましょうか。
# mkdir /mnt/work/etc # cp -r /etc/* /mnt/work/etc # ls -la /mnt/work/etc 合計 2148 drwxr-xr-x 80 root root 4096 11月 6 12:27 . drwxr-xr-x 4 root root 4096 11月 6 12:27 .. -rw-r--r-- 1 root root 2518 11月 6 12:27 DIR_COLORS -rw-r--r-- 1 root root 2420 11月 6 12:27 DIR_COLORS.xterm drwxr-xr-x 2 root root 4096 11月 6 12:27 NetworkManager drwxr-xr-x 7 root root 4096 11月 6 12:27 X11 drwxr-xr-x 4 root root 4096 11月 6 12:27 acpi -rw-r--r-- 1 root root 46 11月 6 12:27 adjtime -rw-r--r-- 1 root root 1512 11月 6 12:27 aliases -rw-r----- 1 root root 12288 11月 6 12:27 aliases.db :::
ちなみに、/proc/mdstatの中身よりもさらに詳細な情報を見たいという場合は、「mdadm」コマンドに「--misc --detail」オプションを付けて実行してみます。
# mdadm --misc --detail /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Wed Nov 5 15:51:20 2008 Raid Level : raid5 Array Size : 30025152 (28.63 GiB 30.75 GB) Used Dev Size : 10008384 (9.54 GiB 10.25 GB) Raid Devices : 4 Total Devices : 4 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Thu Nov 6 12:52:26 2008 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 64K UUID : 22eea7b2:c6461c41:bbe89505:7e45ea96 Events : 0.8 Number Major Minor RaidDevice State 0 3 5 0 active sync /dev/hda5 1 3 6 1 active sync /dev/hda6 2 3 7 2 active sync /dev/hda7 3 3 8 3 active sync /dev/hda8
それでは、この状態で/dev/hda5が壊れたことを想定してみることに。RAIDが動作し、また正常にアクセスできてるっぽい状態が確保されているかどうか、検証してみる。ボリュームへのアクセスが継続できていることを調べるため、別のターミナルから(ちょっとアンチョクだけども)「cd /mnt/work/etc;while :;do find . -print;done」とかやっておいて、この状態でRAIDへの操作を行う。
では、/dev/hda5に対して、mdadmコマンドにて「故障マーク」を付けてみる。
# mdadm --manage /dev/md0 --fail /dev/hda5 mdadm: set /dev/hda5 faulty in /dev/md0 # mdadm --misc --detail /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Wed Nov 5 15:51:20 2008 Raid Level : raid5 Array Size : 30025152 (28.63 GiB 30.75 GB) Used Dev Size : 10008384 (9.54 GiB 10.25 GB) Raid Devices : 4 Total Devices : 4 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Thu Nov 6 13:39:02 2008 State : clean, degraded Active Devices : 3 Working Devices : 3 Failed Devices : 1 Spare Devices : 0 Layout : left-symmetric Chunk Size : 64K UUID : 22eea7b2:c6461c41:bbe89505:7e45ea96 Events : 0.12 Number Major Minor RaidDevice State 0 0 0 0 removed 1 3 6 1 active sync /dev/hda6 2 3 7 2 active sync /dev/hda7 3 3 8 3 active sync /dev/hda8 4 3 5 - faulty spare /dev/hda5 # cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 hda5[4](F) hda8[3] hda7[2] hda6[1] 30025152 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU] unused devices: (none)
これで、4本のディスクで構築していたRAID5のボリュームは3本のディスクで運用状態を継続していることとなった。さっき、別のターミナルで実行していたfind コマンドの無限ループは、相変わらずダーっと表示を継続していることから、一応何事もなかったかのように使用できているということが判る。
それでは、故障した(ことにした)/dev/hda5をRAIDのアレイから撤去することにする。やはり「mdadm」コマンドを使用する。ディスクをRAIDアレイから撤去するには、「mdadm --manage RAIDデバイス名 --remove 引き抜くディスクのデバイス名」を実行する。
# mdadm --manage /dev/md0 --remove /dev/hda5 mdadm: hot removed /dev/hda5
これで、壊れた(ことにした)/dev/hda5はアレイから撤去されたことに。チェックしてみる。
# mdadm --misc --detail /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Wed Nov 5 15:51:20 2008 Raid Level : raid5 Array Size : 30025152 (28.63 GiB 30.75 GB) Used Dev Size : 10008384 (9.54 GiB 10.25 GB) Raid Devices : 4 Total Devices : 3 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Thu Nov 6 14:01:18 2008 State : clean, degraded Active Devices : 3 Working Devices : 3 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 64K UUID : 22eea7b2:c6461c41:bbe89505:7e45ea96 Events : 0.110 Number Major Minor RaidDevice State 0 0 0 0 removed 1 3 6 1 active sync /dev/hda6 2 3 7 2 active sync /dev/hda7 3 3 8 3 active sync /dev/hda8 # cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 hda8[3] hda7[2] hda6[1] 30025152 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU] unused devices: (none)
確かに/dev/hda5がいなくなっていることが判る。
これらの操作を行ったにもかかわらず、別ターミナルから実行しているfindコマンドの無限ループは相変わらず快調に動作している。
では、このRAIDデバイスを本来の4本のディスクで運用する状態に復元する。(要するに新しいディスクを突っ込むってことね)「mdadm --manage RAIDデバイス名 --add 新たに追加するディスクのデバイス名」を実行すればオッケー。
# mdadm --manage /dev/md0 --add /dev/hda9 mdadm: added /dev/hda9
ここでは、さきほど壊れた(ことにした)/dev/hda5の代わりに、/dev/hda9を新しいディスクとしてアレイに投入している。この状態でRAIDアレイのリビルドが動き出す。状態を見てみると…
# mdadm --misc --detail /dev/md0 /dev/md0: Version : 00.90.03 Creation Time : Wed Nov 5 15:51:20 2008 Raid Level : raid5 Array Size : 30025152 (28.63 GiB 30.75 GB) Used Dev Size : 10008384 (9.54 GiB 10.25 GB) Raid Devices : 4 Total Devices : 4 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Thu Nov 6 15:03:59 2008 State : clean, degraded, recovering Active Devices : 3 Working Devices : 4 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 64K Rebuild Status : 0% complete UUID : 22eea7b2:c6461c41:bbe89505:7e45ea96 Events : 0.370 Number Major Minor RaidDevice State 4 3 9 0 spare rebuilding /dev/hda9 1 3 6 1 active sync /dev/hda6 2 3 7 2 active sync /dev/hda7 3 3 8 3 active sync /dev/hda8 # cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 hda9[4] hda8[3] hda7[2] hda6[1] 30025152 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU] [>....................] recovery = 0.1% (14080/10008384) finish=153.5min speed=1083K/sec unused devices: (none)
という訳で、これから153分ほどかけてRAID 5のリビルドが行われるということが判る。なお、この状態でもなお、別ターミナルで実行しているfindコマンドの無限ループは快調に動作していて、運用状態が確保されていることがわかる。
なお、今この状態(RAIDのリビルドが走っている状態)で別のディスクが故障した場合はオワタ\(^○^)/オワタということになるので要注意!
2008-11-06 11:35
nice!(0)
コメント(0)
トラックバック(0)
コメント 0