[linux/Debian] Linux Software RAID1のHDDが片方だけあるときにデータを読み出す方法

ちょっと調べてみたけれども、情報が少なかったのでメモを残しておきます。

LinuxでSoftwara RAID1を組んでいたとします。別にこれはRAID5でもかまいません。
で、片方のARRAIが壊れました。
あるいは、他のサーバーで運用していたRAIDアレイがあって、サーバーが壊れちゃった。デモデータを取り出したいとします。

その時、別マシンでどうやってデータを吸い出すか、と言う方法です。

調べてみたら新規にRAIDを組む方法の話はあっても、既存のRAID ARRAYを別マシンに移植するとか、そんな手順の情報が少ないんですよね。

で、以下の手順で行います。

1.RAIDの片割れのHDDをマシンにつなぎます。
2.つなげたHDDが/dev/sdbだったとして、RAIDを構成していたパーティションがsdb1だったとします。
3./dev/md0にRAIDが見えるようにします。
4.以下のコマンドを入力します

#> mdadm –assemble /dev/md0 /dev/sdb1

5./proc/mdstatを見て動いているのか確認

#> cat /proc/mdstat

6.適当なところにマウントしてデータを吸い出したりする。

自宅サーバーではRAID5を構築していないので確認はできなかったのですが、RAID5でも同じようにできると思います。


なんでこのような方法を調べていたのかというと、
自宅のファイルサーバーはRAID1で構成していて、なおかつ毎朝6時に別のHDDにデータをコピーする(rysncによるミラーリング)ことによって、ファイルの喪失を防ぐようにしています。
いちばん初めは、この3つのHDDは同じメーカーの同じ型番(仮にAA HDD)でした。

それが、まずは1台が壊れた(RAID1の片側)ので、ミラー用のHDDをRAIDアレイに持っていって、新しく買ったHDD(仮にBB HDD)をミラーリング用にしました。

すると、しばらくしたら、もう1台壊れました(RAID1の片側)。
この時点で代替HDDを手に入れようと思ったら、AA HDDは手に入るわけも無く。BB HDDは手に入る状態だったので、それを入手しました。

で、BB HDDでRAID1を組み直してAA HDDをミラーにしたいと思いました。
今の状況なら、新規にRAIDを作って、RAID状態のAA HDDからデータをコピーした後に、AA HDDのRAIDを解除してやればOKな訳ですが、
「これ、別マシンに移植するとかなったらどうやるんだ?昔、別マシンにつなげたときは勝手に認識したけど、毎回そんなわけじゃないし。」と思って調べたわけです。

ついでに書いておくと、LinuxのSoftware RAIDは異なるメーカの異なる型番のHDDでも関係なくRAIDを組めるのですが、RAIDを組むHDDのパーティションサイズは統一しておかないと色々と面倒くさそうです。

ちなみに、今回買ったのはSeagateのST2000DM001です。
以前買ったときには1万円近くの値段だったのですが、昨日の時点で、ツクモネット通販で7425円でした。
またHDDが安くなってきているのですかね?
今のところ、ファイルサーバーの構成は2TB/2.5TB/1TBの構成なのですが、1TBを引っこ抜いて3TBにしたいな~と思っています。
が、いつになったら実行できるか・・・