5.1. RAID
RAIDはハードディスクを組み合わせて使用できる技術のこと。
ハードディスクをまとめて扱うことで高い信頼性とパフォーマンスを実現することを目指すものといえる。
5.1.1. LinuxにおけるRAID
LinuxでRAIDを利用する際はソフトウェアRAIDとハードウェアRAIDの2種類を利用できる。
Kernel2.4以降ではソフトウェアRAIDが実装されていてハードディスクのパーティションを複数使うことでRAIDアレイを実現する。
ハードウェアRAIDアレイはLinuxからはSCSIデバイスのように見える。
RAIDアレイ
複数のディスクもしくはパーティションを束ねたもののこと
5.1.2. RAIDの種類
RAID0(ストライピング)
RAID0は複数のディスクに分散してデータを書き込み1台のディスクのように扱うRAID構成。
特徴は以下の通り。
- データ消失が許されない用途には不向き
- 書き込みのパフォーマンスが高い
- ディスク容量をフル利用できる
RAID1(ミラーリング)
RAID1は複数のディスクに全く同じ内容を並列して書き込み扱うRAID構成。
特徴は以下の通り。
- RAIDアレイを構成する1台がクラッシュしても、残りのディスクで復旧が可能
- ディスクサイズが1台当たりのディスクサイズ以上にはならない
RAID4
RAID4はRAID0のようにストライピングの機能にエラー訂正用のパリティ情報を保存する専用ディスクを用意したRAID構成。
つまり最低3台のディスクが必要。
特徴は以下の通り。
- データが保存されているディスクがクラッシュしてもパリティ情報から復旧できる
- パリティ情報を保存するためパフォーマンスが良くない
RAID5
RAID5はRAID4と同じようにパリティ情報により冗長性を確保する構成でパリティ専用ディスクを使用しないRAID構成。
パリティ情報はデータと同様に複数のディスクに分散して保存される。
RAID5も最低3台のディスクが必要となる。
その他のRAID構成
| RAID | 説明 | 
|---|---|
| RAID LINEAR | ディスクを論理的に結合してサイズの大きな1つのディスクに見せる | 
| RAID0+1 | RAID0でストライピング構成を複数作りそれをミラーリングする | 
| RAID1+0 | RAID1でミラーリング構成を複数作りそれをストライピングする | 
| RAID6 | RAID5に加えてパリティ情報をもう1台余分に2重パリティを行い冗長構成を高める | 
5.1.3. RAIDの構成と運用
LinuxでRAIDを構成するパーティションを作成する際はパーティションタイプを0xfdに設定する必要がある。fdisk -l デバイスファイル名で確認可能。
mdadmコマンド
RAIDアレイの制御を行うコマンド。
RAIDアレイの作成はCREATEモードで行う。
/proc/mdstatの確認でも可能。
mdadm [オプション] [デバイス名]| オプション | 説明 | 
|---|---|
| CREATEモードのオプション | - | 
| -C md デバイス名 | RAIDアレイを指定して作成する | 
| -a | 必要であればデバイスファイルを自動的に作成する | 
| -c サイズ | チャンクサイズの指定(KB単位) | 
| -l レベル | RAIDレベルの指定 | 
| -n 数 | アクティブな構成デバイス数を指定する | 
| -x 数 | スペアデバイスの数を指定する | 
| MANAGEDモードのオプション | - | 
| –manage | MANAGEモードにする | 
| -a | 構成デバイスの追加 | 
| -r | 構成デバイスの削除 | 
| -f | 構成デバイスに不良マークを付ける | 
| MISCモード | - | 
| –misc | MISCモードにする | 
| -Q | RAIDの状態を表示 | 
| -D | RAIDの詳細情報の表示 | 
| -E | 構成デバイスの状態表示 | 
| –readonly | 読み取り専用にする | 
| –readwrite | 書き込み可能にする | 
| –stop | -S md デバイス名 | 
| –stop -scan | すべてのRAIDアレイの停止 | 
| Assembleモード | - | 
RAIDアレイの状態は/proc/mdstatファイルで確認可能。
使用例は以下の通り。
# RAID1のRAIDアレイmd0を/dev/sdc5~sdc7で構成(アクティブは2つ、1つは予備)
mdadm -C /dev/md0 --level 1 --raid-devices 2 --spare-devices 1 /dev/sdc5 /dev/sdc6 /dev/sdc7
# /dev/md0の状態確認
mdadm --query /dev/md0RAID構成デバイスに障害が発生した場合は以下手順でディスクを交換する。
例では/dev/sdc5が壊れたとする。
- デバイスに障害を通知するために不良マークをつける- mdadm --manage /dev/md0 -f /dev/sdc5
- この際 予備デバイスがあれば自動的に予備デバイスに切り替わる(確認はcat /proc/mdSATAで可能)
 
- 構成デバイスをRAIDアレイから削除する- mdadm --manage /dev/md0 -r /dev/sdc5
 
- 予備デバイス(例では/dev/sdc7)を追加する- mdadm --manage /dev/md0 -a /dev/sdc7
 
またmdadmの設定ファイルは/etc/mdadm/mdadm.confとなる。
このファイルにあらかじめ設定を記述するとRAIDアレイをシステム起動時に自動認識できる。