mdadmでソフトRAIDにホットスペアディスクを追加してみる(RAID 5編) [Linux(LVM/RAID/Storage)]
さて。先ほど作成したり再構築したりしたRAIDアレイに、ホットスペアディスクを追加してみる。
「ホットスペアディスクってなんなのさ?」という人に簡単な解説をしておこう。先ほどまでに作成していたRAID 5のアレイ(ボリューム)は、4本のディスクを使って単独のディスク障害に耐えられるように構成していた。しかし、RAID 5にもアキレス腱となる部分があり、それはディスクが1本故障した状態で運用を継続している状況は、もはや新たなディスク障害には耐えられないということであった。
まあ、新たに2本目のディスクが故障してしまう前に、ディスクを交換して通常の運用状態に戻せば、また別のディスクが故障しても耐えることができる状態にすることはできる。
が、しかし。その2本目のディスク故障がいつ起きるのか。それは誰にも判らないものである。今週末にでも秋葉原に行って、新しいハードディスクを買ってくればいいお^-^なんて悠長なことを言っても、たいていの場合はまあそれでも問題になることは少ないものであるけども、残念ながらそれよりも先に別のディスクが故障してしまうケースも否定できないのである。
ではどうすべきか。ディスク障害が発生した際には可及的速やかにディスクを交換してしまうべきなのである。べきなのであるば、夜中だったり週末だったり、あるいは年末年始だったりして即座に対応できないこともありうるから、即座にディスク交換…という対応が出来ないかもしれないシチュエーションだってあり得るのである。
そんな時のために、「ホットスペアディスク」は存在するのである。
ホットスペアディスクというものは…
・普段は使用されない → マシンに接続され、通電はしているがアクセスは全くない
・RAIDのアレイで異常が生じた際に、自動的に壊れたディスクの代わりにRAIDアレイに投入され、リビルド後通常の運用体制に復帰する
と、いうものなのである。
つまり、先に交換用のディスク(スペア)を用意しておいて、いざというときに自動的に交換作業を行っちゃうというものなのである。
通常、RAIDアレイ一つに対して1本のホットスペアディスクを用意しておけばまず問題にはならない…と言われている。まあ、健全なパソコンオタクちゃんがそこまで必要とするか…と聞かれるとちょっと答えに窮するところではあるけれども。(笑)いざというときの安心料をとるか、ディスクを遊ばせておくのはもったいないととるか、それは使用する人の使い方とか考え方とか経済状況とかにもよるので一概にはなんとも言えないなあ。
それでは、先ほどのRAIDアレイにホットスペアディスクを追加してみる。ちなみに、ホットスペアディスクを追加しても、RAIDのリビルドは全く発生しないので、追加作業はサクッと完了する。
まずは、RAIDの状態から。
先ほどまでいじって遊んだRAIDの情報のまんまである。hda6~hda9の4本のディスクで構成されている。ここに、ホットスペアディスクディスクとして、さきほど撤去してしまったhda5をホットスペアディスクとして追加することにする。
使用するコマンドはやはり「mdadm」。「mdadm --manage RAIDデバイス名 --add ホットスペアとして追加するディスクデバイス名」という感じで。
こんだけ。はい。もう完了しましたよっと。
RAIDの情報を確認してみると…
/dev/hda5がホットスペアとしてちゃんと登録されていることがこれで判ります。
それじゃさっそく、ディスクが壊れた際にホットスペアディスクが自動的に運用ディスクに組み込まれることを確認してみよう。
前回と同じように、現在運用しているディスクに「だめぽマーク」を付けてみる。ここでは/dev/hda6が壊れた(ことにする)ディスクに見立てる。
これで、/dev/hda6が故障した(ことになる)ので、ホットスペアディスクが自動的に運用ディスクとして稼働を開始するはず。確認してみる。
/dev/hda6が故障扱いに、さきほどホットスペアディスクとして追加した/dev/hda5が運用系ディスクとして実際に組み込まれ、RAIDのリビルドが実施されているのがこれで判る。136分ほどかかるという訳ですな。
そんな訳で、ホットスペアディスクがあることでディスク交換作業待ちの時間の脆弱性がフォローされるということになる訳。ホットスペアディスクの交換なら、今週末にでも秋葉原に出かけてディスクを購入してくれば良い訳だしね。
つーわけで、次なる実験は、このRAIDのリビルドが終了する136分後ということで…(笑)
「ホットスペアディスクってなんなのさ?」という人に簡単な解説をしておこう。先ほどまでに作成していたRAID 5のアレイ(ボリューム)は、4本のディスクを使って単独のディスク障害に耐えられるように構成していた。しかし、RAID 5にもアキレス腱となる部分があり、それはディスクが1本故障した状態で運用を継続している状況は、もはや新たなディスク障害には耐えられないということであった。
まあ、新たに2本目のディスクが故障してしまう前に、ディスクを交換して通常の運用状態に戻せば、また別のディスクが故障しても耐えることができる状態にすることはできる。
が、しかし。その2本目のディスク故障がいつ起きるのか。それは誰にも判らないものである。今週末にでも秋葉原に行って、新しいハードディスクを買ってくればいいお^-^なんて悠長なことを言っても、たいていの場合はまあそれでも問題になることは少ないものであるけども、残念ながらそれよりも先に別のディスクが故障してしまうケースも否定できないのである。
ではどうすべきか。ディスク障害が発生した際には可及的速やかにディスクを交換してしまうべきなのである。べきなのであるば、夜中だったり週末だったり、あるいは年末年始だったりして即座に対応できないこともありうるから、即座にディスク交換…という対応が出来ないかもしれないシチュエーションだってあり得るのである。
そんな時のために、「ホットスペアディスク」は存在するのである。
ホットスペアディスクというものは…
・普段は使用されない → マシンに接続され、通電はしているがアクセスは全くない
・RAIDのアレイで異常が生じた際に、自動的に壊れたディスクの代わりにRAIDアレイに投入され、リビルド後通常の運用体制に復帰する
と、いうものなのである。
つまり、先に交換用のディスク(スペア)を用意しておいて、いざというときに自動的に交換作業を行っちゃうというものなのである。
通常、RAIDアレイ一つに対して1本のホットスペアディスクを用意しておけばまず問題にはならない…と言われている。まあ、健全なパソコンオタクちゃんがそこまで必要とするか…と聞かれるとちょっと答えに窮するところではあるけれども。(笑)いざというときの安心料をとるか、ディスクを遊ばせておくのはもったいないととるか、それは使用する人の使い方とか考え方とか経済状況とかにもよるので一概にはなんとも言えないなあ。
それでは、先ほどのRAIDアレイにホットスペアディスクを追加してみる。ちなみに、ホットスペアディスクを追加しても、RAIDのリビルドは全く発生しないので、追加作業はサクッと完了する。
まずは、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 17:07:58 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.540 Number Major Minor RaidDevice State 0 3 9 0 active sync /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[0] hda8[3] hda7[2] hda6[1] 30025152 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] unused devices: (none)
先ほどまでいじって遊んだRAIDの情報のまんまである。hda6~hda9の4本のディスクで構成されている。ここに、ホットスペアディスクディスクとして、さきほど撤去してしまったhda5をホットスペアディスクとして追加することにする。
使用するコマンドはやはり「mdadm」。「mdadm --manage RAIDデバイス名 --add ホットスペアとして追加するディスクデバイス名」という感じで。
# mdadm --manage /dev/md0 --add /dev/hda5 mdadm: added /dev/hda5
こんだけ。はい。もう完了しましたよっと。
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 : 5 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Thu Nov 6 17:07:58 2008 State : clean Active Devices : 4 Working Devices : 5 Failed Devices : 0 Spare Devices : 1 Layout : left-symmetric Chunk Size : 64K UUID : 22eea7b2:c6461c41:bbe89505:7e45ea96 Events : 0.540 Number Major Minor RaidDevice State 0 3 9 0 active sync /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 4 3 5 - spare /dev/hda5 # cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 hda5[4](S) hda9[0] hda8[3] hda7[2] hda6[1] 30025152 blocks level 5, 64k chunk, algorithm 2 [4/4] [UUUU] unused devices: (none)
/dev/hda5がホットスペアとしてちゃんと登録されていることがこれで判ります。
それじゃさっそく、ディスクが壊れた際にホットスペアディスクが自動的に運用ディスクに組み込まれることを確認してみよう。
前回と同じように、現在運用しているディスクに「だめぽマーク」を付けてみる。ここでは/dev/hda6が壊れた(ことにする)ディスクに見立てる。
# mdadm --manage /dev/md0 --fail /dev/hda6 mdadm: set /dev/hda6 faulty in /dev/md0
これで、/dev/hda6が故障した(ことになる)ので、ホットスペアディスクが自動的に運用ディスクとして稼働を開始するはず。確認してみる。
# 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 : 5 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Thu Nov 6 19:40:52 2008 State : clean, degraded, recovering Active Devices : 3 Working Devices : 4 Failed Devices : 1 Spare Devices : 1 Layout : left-symmetric Chunk Size : 64K Rebuild Status : 0% complete UUID : 22eea7b2:c6461c41:bbe89505:7e45ea96 Events : 0.542 Number Major Minor RaidDevice State 0 3 9 0 active sync /dev/hda9 4 3 5 1 spare rebuilding /dev/hda5 2 3 7 2 active sync /dev/hda7 3 3 8 3 active sync /dev/hda8 5 3 6 - faulty spare /dev/hda6 # cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] md0 : active raid5 hda5[4] hda9[0] hda8[3] hda7[2] hda6[5](F) 30025152 blocks level 5, 64k chunk, algorithm 2 [4/3] [U_UU] [>....................] recovery = 0.0% (6016/10008384) finish=136.6min speed=1203K/sec unused devices: (none)
/dev/hda6が故障扱いに、さきほどホットスペアディスクとして追加した/dev/hda5が運用系ディスクとして実際に組み込まれ、RAIDのリビルドが実施されているのがこれで判る。136分ほどかかるという訳ですな。
そんな訳で、ホットスペアディスクがあることでディスク交換作業待ちの時間の脆弱性がフォローされるということになる訳。ホットスペアディスクの交換なら、今週末にでも秋葉原に出かけてディスクを購入してくれば良い訳だしね。
つーわけで、次なる実験は、このRAIDのリビルドが終了する136分後ということで…(笑)
コメント 0