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+1RAID0でストライピング構成を複数作りそれをミラーリングする
RAID1+0RAID1でミラーリング構成を複数作りそれをストライピングする
RAID6RAID5に加えてパリティ情報をもう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モードのオプション-
–manageMANAGEモードにする
-a構成デバイスの追加
-r構成デバイスの削除
-f構成デバイスに不良マークを付ける
MISCモード-
–miscMISCモードにする
-QRAIDの状態を表示
-DRAIDの詳細情報の表示
-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/md0

RAID構成デバイスに障害が発生した場合は以下手順でディスクを交換する。
例では/dev/sdc5が壊れたとする。

  1. デバイスに障害を通知するために不良マークをつける
    • mdadm --manage /dev/md0 -f /dev/sdc5
    • この際 予備デバイスがあれば自動的に予備デバイスに切り替わる(確認はcat /proc/mdSATAで可能)
  2. 構成デバイスをRAIDアレイから削除する
    • mdadm --manage /dev/md0 -r /dev/sdc5
  3. 予備デバイス(例では/dev/sdc7)を追加する
    • mdadm --manage /dev/md0 -a /dev/sdc7

またmdadmの設定ファイルは/etc/mdadm/mdadm.confとなる。 このファイルにあらかじめ設定を記述するとRAIDアレイをシステム起動時に自動認識できる。