(2014.11)
家族のノートPCのHDDがクラッシュして、再構築にずいぶん手間が掛かった。データのほとんどは自宅サーバのほうにあったので何とか事なきをえたが、やっぱりデータ喪失は大変。
ディスクドライブを冗長化する方法を調べてみた。
ネット上に解説ページは多いが、古い情報も多い。最新の構成に合うものを取捨選択しなければならない。
もともと1台のHDDで正常に動作している Fedora 20 Linux システムに、同じ大きさのHDD を1台だけ (2台ではなく) 加えて、全体をRAID1化する。
RAIDレベルは、数字が大きいほうがいいわけではない。
RAID 0 | Data striping による性能向上. 冗長ではない. むしろ耐障害性は悪化。Intel Rapid Storage Technology (RST) が使っている。わざわざこれを選ぶことはない。 |
RAID 1 | Mirroring. ディスクドライブ2台(以上)に同内容を書き込む. 冗長. |
RAID 4 | (RAID 5で代替された。) |
RAID 5 | Parity を分散して記録. 冗長。1台までの故障に対応。 |
RAID 6 | Parity を二つ生成し、分散記録。冗長。2台までの故障に対応。ディスクドライブの必要台数はRAID 5より多い。 |
RAID 10 | 「RAID 1/0」や「RAID 1+0」とも言う (同じもの). RAID 1アレイを複数使って RAID 0する. 冗長. 必要ディスクドライブ台数多い。 |
小規模だと RAID 1になるだろう。ビジネスだと RAID 6.or 10?
See RAIDレベルの話: 1+0と6はどっちが安全か? - たごもりすメモ 正しい運用を前提とするなら, RAID 6 のほうが, RAID 1+0 より数桁、安全。
(2015.9更新)
Linux でソフトウェアRAID1を構築しようと思うと、次の3つの方法がある。(1), (2) は Step by Stepで構築する手順も書いてみた。
ちなみに、"RAID on LVM" というのを挙げている解説ページもあるが, 冗長になっておらず、意味がない。(LVM情報が破損したときに、どこにミラーされているの?)
LVM on RAIDと呼ばれ、昔からある方法。
/boot
も冗長化できるのがメリット。
LVM は RAID 1/4/5/6/10をサポートしている。
RHEL 6までは Mirrored Logical Volumeという名前だった. RHEL 7 (Fedora 18~19) から RAID Logical Volumeに代わっている。 2.3. LVM Logical Volumes
柔軟性が高く、物理ディスクの大きさを揃える必要がないのがメリット。/boot
を載せられないので、そこは md と組み合わせる。
現在は、RAID logical volume は内部で MDカーネルドライバを使っている, ようだ。
2015年2月にリリースされた Linuxカーネル 3.19 で RAID 5/6も統合されたようだ。しかし、動くようになっているかどうか不明。
伝統的な方法。複数の物理ディスクに, 必要な同じ容量のパーティションを用意し、これらのパーティションをペアにして、/dev/mdN
を作る。
あとは、そのボリュームに LVM を載せればOK.
Step by Step で RAID 1化する解説を用意しました:
LVM RAID volumeのほうが、非常に柔軟性がある。同じ大きさのドライブを用意しなくても、とにかく Logical Volume (LV) が複数のドライブに配分されれば大丈夫。
ただし現在のところはまだ、/boot には適用できない (GRUB2から起動できない). /boot
についてはMD RAID (かつ非LVM) で作ってやる必要がある。
Step by Step で RAID 1化する解説を用意しました:
ミラクル・リナックス:ブートディスクをソフトウェア RAID1 (ミラーリング) に構成する際の注意
ブートドライブをRAID1にする場合は、それぞれのドライブのMBRにGRUBをインストールしなければならない。そりゃそうだ。
ネット上のページだと, /bootはRAID化できないとしているものも多いが、現在ではMD RAIDでRAID化可能。
シングルHDD構成で、Fedora 20 の初期設定だと, /bootは独立したパーティションだが、swapがLVMの上に載っている。swapをRAID化する必要はない。
LVM on RAIDでいく場合は、swapをLVMの外に出さなければならない。
また、/
(root) と /home
, /var
が同じ LVになっているので、これもついでに分けてもいいかもしれない。
少なくとも, ファイルサーバでは, /
と /home
は分けよう。Fedora 17のころは、分かれていた。