LinuxやUnixでのRAID方法いろいろ

ハードウェアRAID

マザーボードやRAIDカードのBIOSからRAIDを組む方法

メリット

  • 一度組みさえすればソフトウェアRAIDより問題は起きにくいかも
  • ボリューム上に/bootもブートローダーも置くことができる

デメリット

  • OS側にドライバが必要。CentOSやUbuntuであれば困ることは少ない
  • OSから個別HDDの状態を見るのが難しい

おまけ

OS別RAID/SATA増設カード系ハードウェア対応状況(個人の体感です)

Ubuntu※多くのハードウェアに対応するが、マザーボードのRAID、RAIDカードは認識してくれないことがある
Ubuntu ServerUbuntuよりかなりまし? CentOSと変わらないかも
CentOSCentOSで認識してくれないならあきらめてる
NetBSDSolarisよりまし
Solaris×増設カードが全く認識されない

※純正のUbuntuではなくBasixで検証したため、本家Ubuntuは異なる可能性あり

mdadm

内部的にはソフトウェアRAIDとハードウェアRAIDのハイブリッドらしいが、まあソフトウェアRAIDと考えておけばいいと思う。

RAIDの種類は0, 1, 5, 6, JBODなどが選べる。

メリット

  • HDD自体をRAID組むこともできるが、複数のパーティーションでRAID組むこともできる
  • mdadmで組んだボリュームには/bootを置くことができる

デメリット

  • RAID1を組んだ場合、ブートローダーは一方のディスクにしか書き込まれない。ブートローダーも冗長化する場合は手動で書き込む必要あり。

LVM

多数のボリュームを高度な柔軟性を保ちつつ臨機応変に使用できる。

複数のPV(フィジカルボリューム)でVG(ボリュームグループ)を作成し、それらを切り分けて多数のLV(ロジカルボリューム)として使用可能。LV作成時にRAID0/1を指定すればVG内の複数のボリュームにデータが書き込まれ、ストライピング化/ミラーリング化される。

RAIDで言えばJBOD、RAID0/1/10と同じことができる。RAID5や6などは不可能。

メリット

  • 自由度は高い

デメリット

  • PVの作成→VGの作成→LVの作成、の手順が必要で、RAIDを組みたいだけなら手間がかかる。
  • ブートローダーも/bootも置けない。/bootはLVMでないボリュームもしくはパーティーションに置く必要がある。

ZFS

SolarisやFreeNASなどで使用できる。またUbuntu19.10以降はUbuntuでも/bootにZFSが使用できる。

ZFSはファイルシステムで、ファイルシステム自体にRAID機能も持っている。また、SSDをHDDのキャッシュにするL2ARCといった機能もある。

また、RAID0や1以外は名前が異なり、以下のように対応する。

  • RAID-Z→RAID5
  • RAID-Z2→RAID6
  • RAID-Z3→(トリプルパリティ)

いずれも単なるRAID5, 6より細かい部分が改良されているらしい。

コメント

タイトルとURLをコピーしました