異国見聞私書録

異国から見たこと感じたこと気になったこと。そして時折テクノロジーのお話。

Linuxで運用するソフトウェアRAID(mdadm)下でのディスク追加方法

 だいぶ以前にRAIDを組んでいたディスクの一個が壊れ、その壊れているディスクの判別方法を記載した。

  今回もまたディスクの一つが認識されない事態に遭遇し、一瞬壊れたか思った。が、前回と同様の検査をしたところ、ディスク自体に問題はなく、おそらくRAIDを管理しているツールであるmdadmの挙動が少しおかしかったようだ。なぜおかしくなったかというところまではつき止めきれていないが、再起動をしたところ、OSからのディスク認識まではされていていることが確認できた。

 しかし、なぜかmdadm上では一つディスクが欠けて片肺運用されており、あまり気持ちのいいものではない。再度ディスクをmdadm上に追加する処理を行ったのでここに手順を記載しておきたい。

 

筆者のRAID環境は以下の図のように構成されている。

f:id:pukarix:20150525064905p:plain

 筆者の環境は現在、RAID1のミラーリングによる構成で、LUNを2つにして運用している。容量の大きいLUN1と容量の少ないLUN2で用途に応じて使い分けを行っているが、今回はLUN2にある一方のディスクを認識しなくなった。

 ちなみに以前ブログで記載したような複雑な構成は、かなり腕に覚えがないとデータ復旧ができなくなるのでもうやめた。RAID構成を組む場合、複雑にしないほうが後々の復旧は簡単である。当たり前のことかもしれないが、家庭でRAIDを組む場合は、行ってもRAID5ぐらいに留めておいたほうがいい。それ以上の高可用性を求める場合は、市販されているNASを購入して運用したほうが、結局のところ復旧の手間などを考えると、安上がりになると筆者は今までの経験上思う。データ復旧を趣味にしているような方はこの限りではないが、家族の思い出写真などを保存することを考えている人の場合は、復旧の容易さも考慮に入れておくことをおすすめする。

 

 OSのリブートを行った結果、ディスクはOSから認識できるようになったので、対象ディスクに検査をかけてみた。

sudo smartctl --all /dev/sde

sudo badblocks -nvs /dev/sde

少なくとも前回のような異常値は見られなかったので、ディスク自体が壊れているといった様子ではないようだ。ただし、RAIDとして認識されていないことは以下のコマンドからわかる。

sudo mdadm -D /dev/md0

<省略>

Number Major Minor RaidDevice State
0 8 81 0 active sync /dev/sdd1
1 0 0 1 removed

となると再度LUN2のRAID1としてディスクを「追加」してあげればよい。

sudo mdadm --manage /dev/md0 -a /dev/sde1 

RAIDの再構成をするには一般的に時間がかかる。進捗状況は以下のコマンドでわかる。

cat /proc/mdstat

※随時進捗状況を見たい場合には以下のようにwatchコマンドをつけると便利だ。

watch "cat /proc/mdstat"

容量にもよるが 、少なくとも再構成に3〜4時間は見ておいたほうがいいだろう。今回は比較的軽微な障害だったので、手間取ることなくRAID復旧は済んだ。

 

 RAIDは構成によってアクセススピードが格段に早くなったり、余ったディスクをうまく使うのに適した技術だと思う。ただ、便利ゆえに陥りがちな罠もあるので気をつけて使用されたい。RAID5を試験運用的に組んだはずが、アクセスは早いし、容量も多く使えるのでいつの間にか本格運用に転じているケースも少しパソコンに詳しい人ならあるのではないだろうか。ディスクはいつか必ず壊れるものなので、RAIDの復旧手順もある程度把握した上で運用するよう心がけたい。