Linux環境におけるmdadmを使用したソフトウェアRAID 0の構築手順

RAID 0(ストライピング)は、複数のディスクにデータを分散して書き込むことで、ディスクI/Oのパフォーマンスを最大化する構成です。連続するデータをブロック単位で各ディスクに並列に書き込むため、ディスク枚数に比例した読み書き速度の向上が期待できます。一方で、冗長性を一切持たないため、構成するディスクのうち1台でも故障すると全データが失われるというリスクがあります。そのため、一時的な作業領域や高速なキャッシュなど、データの安全性よりも速度が優先される用途に適しています。

1. パーティションの準備

まず、RAIDを構成するための物理パーティションを用意します。ここでは例として、/dev/sdb1と/dev/sdc1の2つのパーティションを使用します。各パーティションのシステムIDは、RAID用(Linux raid autodetect)に設定されている必要があります。

# パーティション情報の更新を確認
partprobe

2. RAID 0アレイの作成

mdadmコマンドを使用して、新しいRAID 0デバイスを作成します。以下のコマンドでは、2つのデバイスを束ねて/dev/md0を生成します。

# RAID 0 アレイの構築
mdadm --create /dev/md0 \
      --level=0 \
      --raid-devices=2 \
      /dev/sdb1 /dev/sdc1

# 実行結果の確認
# mdadm: array /dev/md0 started.

各オプションの意味は以下の通りです:

  • --create (-C): 新しいアレイを作成する。
  • --level=0 (-l 0): RAIDレベルを0(ストライピング)に指定。
  • --raid-devices=2 (-n 2): アレイを構成するデバイス数を指定。

3. ファイルシステムの作成

作成された仮想デバイス/dev/md0に対して、ファイルシステムを作成します。ここでは現代的なLinuxで標準的なXFSを使用する例を示します。

# XFSファイルシステムの作成
mkfs.xfs /dev/md0

作成後、blkidコマンドでUUIDを確認しておきます。これは後の自動マウント設定で使用します。

blkid /dev/md0
# 出力例: /dev/md0: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="xfs"

4. マウントと永続化の設定

作成したRAIDデバイスをディレクトリにマウントし、システム起動時に自動的に認識されるよう設定します。

# マウントポイントの作成
mkdir -p /mnt/raid0
mount /dev/md0 /mnt/raid0

# マウント状態の確認
df -hT /mnt/raid0

OS再起動後も自動でマウントを継続させるため、/etc/fstabに設定を追記します。

# /etc/fstab への追記例
UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 /mnt/raid0 xfs defaults 0 0

5. RAIDアレイの詳細確認

RAIDの動作状態や構成ディスクの詳細は、以下のコマンドで詳細に確認することが可能です。

mdadm --detail /dev/md0

出力される情報の主な項目:

  • Raid Level: raid0 であること。
  • Array Size: 合計のストレージ容量。
  • Chunk Size: データを分割する際のブロックサイズ(デフォルトは通常512K)。
  • State: clean(正常動作中)であること。
  • Number Major Minor RaidDevice State: 構成ディスクの一覧と状態。

タグ: linux raid mdadm storage SystemAdministration

10月19日 12:49 投稿