とらりもんHOME  Index  Search  Changes  Login

RAID

2012/05/17 Yohei EHARA

RAID

複数台のハードディスクを組み合わせて仮想的に1台のハードディスクとする技術。

主に用いられるのは、以下に示すRAID 0,1,5,6あたり。

RAID 0

ストライピングとも呼ばれる。

例えば、n台のHDD2TBをRAID 0で構築した場合、このHDDは1台のHDD n TBとみなされる。この方法では、n台のHDDに分散して書き込みができるため、書き込み速度は向上するが、

n台のうち1台でも故障すれば全てのデータが失われる

そのため、RAID 0それのみで用いるのは非常に危険である。

RAID 1

ミラーリング (二重化) とも呼ばれる。偶数台のHDDが必要。

例えば、n台のHDD2TBをRAID 1で構築した場合、このHDDは1台のHDD (n/2) TBとみなされる。この時、n台のHDDのうち半数のn/2台はバックアップとして用いられるため、

n台のうち(n/2)+1台が故障しない限りデータは失われない

耐障害性は非常に高いが、HDDの利用効率は半分となっているため、利用効率と耐障害性を両立させたければ後述のRAID 5,6が良い。

RAID 5

最低3台のHDDが必要。

例えば、n台のHDD2TBをRAID 5で構築した場合、このHDDは1台のHDD (n-2) TBとみなされる。この時、n台のHDDそれぞれに容量の 1/n だけパリティ領域 (バックアップのようなもの。厳密にはちょっと違う) を作成することで、

n台のうち2台が故障しない限りデータは失われない

耐障害性、利用効率の両面で優れているが、HDDの数が増えるほど耐障害性が低くなるという欠点がある。

RAID 6

最低4台のHDDが必要。

例えば、n台のHDD2TBをRAID 6で構築した場合、このHDDは1台のHDD (n-4) TBとみなされる。つまり、RAID 5におけるパリティ領域を2倍にし、耐障害性を向上させたのがRAID 6である。

n台のうち3台が故障しない限りデータは失われない

耐障害性、利用効率の両面で優れているが、RAID 5と同様にHDDの数が増えるほど耐障害性が低くなるという欠点がある。

その他

これら以外にも、RAID 1+0, 0+1, 5+0, 5+1, 6+0, 6+1 など、上記の基本のRAIDを組み合わせることでRAIDの種類は増える。

UbuntuでソフトウェアRAID

$ sudo apt install mdadm
  • RAIDの構築
まず各HDDにパーティションを作る(フォーマットは不要)。gpartedなどで。
$ sudo mdadm --create /dev/md0 --level=5 --raid-device=5 /dev/sd[bcdef]1
$ cat /proc/mdstat  ... UUUU_になるが, 最後の_は気にしない。じきに正常になる。
  • 失敗したら→RAIDの削除
$ sudo mdadm --stop /dev/md0
$ sudo mdadm --remove /dev/md0
$ sudo mdadm --zero-superblock /dev/sd[abcde]
  • 障害のあるディスクを見つけるには?
$ cat /etc/mdadm.conf ... 正常状態の記述
$ cat /proc/mdstat ... 現状の記述
これらを比べる。後者に入っていないデバイスが障害。
  • RAIDのUUIDを調べる (fstab用。/dev/disk/by-uuidとは違う!)
$ sudo tune2fs -l /dev/md0 |grep UUID
  • RAIDの構築(mdadm --create)が終わったら, フォーマット
$ sudo mkfs -t ext4 /dev/md0
  • ソフトウェアRAIDを構築したHDD群は, そのまま別のマシンにつないでも, /dev/md127などのデバイスファイルとして自動認識されるようだ(少なくともRAID5で4TB x 5台のシステムは, うまくいった)。とてもフレキシブル!
Last modified:2023/09/17 14:50:06
Keyword(s):
References:[とらりもんHOME] [トレーニングコース]