## はじめに
RAID(Redundant Array of Independent Disks)は複数のディスクを束ねて性能向上や冗長化を実現する技術です。Linuxではmdadmを用いたソフトウェアRAIDが広く使われ、低コストで高い信頼性を確保できます。
本記事では、主要なRAIDレベルの特徴と、mdadmによるRAID構築・運用の基本手順を順を追って紹介します。
## 症状・背景
– ディスク障害時にサービスを停止させたくない
– 大容量ストレージを安価に構築したい
– 読み書き性能を向上させたい
– ハードウェアRAIDカードを使わずに冗長化したい
## 手順・設定方法
### ステップ1: ディスクの準備
“`bash
# 利用可能なディスクを確認
lsblk
# パーティション作成(RAID用)
sudo parted /dev/sdb mklabel gpt
sudo parted /dev/sdb mkpart primary 0% 100%
sudo parted /dev/sdb set 1 raid on
# 同様に他のディスクも準備
sudo parted /dev/sdc mklabel gpt
sudo parted /dev/sdc mkpart primary 0% 100%
sudo parted /dev/sdc set 1 raid on
“`
### ステップ2: RAIDアレイの作成
“`bash
# RAID1(ミラーリング)構築
sudo mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sdb1 /dev/sdc1
# RAID5構築(3本以上)
sudo mdadm –create /dev/md0 –level=5 –raid-devices=3 \
/dev/sdb1 /dev/sdc1 /dev/sdd1
# RAID10構築(4本以上)
sudo mdadm –create /dev/md0 –level=10 –raid-devices=4 \
/dev/sd{b,c,d,e}1
# 構築進捗確認
cat /proc/mdstat
“`
### ステップ3: ファイルシステムとマウント
“`bash
# ファイルシステム作成
sudo mkfs.ext4 /dev/md0
# マウントポイント作成
sudo mkdir -p /mnt/raid
# マウント
sudo mount /dev/md0 /mnt/raid
# UUID取得して/etc/fstabに追加
UUID=$(sudo blkid -s UUID -o value /dev/md0)
echo “UUID=$UUID /mnt/raid ext4 defaults 0 2” | sudo tee -a /etc/fstab
“`
### ステップ4: 永続化と障害復旧
“`bash
# 設定をmdadm.confに保存
sudo mdadm –detail –scan | sudo tee -a /etc/mdadm/mdadm.conf
# initramfsを更新(Debian系)
sudo update-initramfs -u
# 障害ディスクの確認
sudo mdadm –detail /dev/md0
# 故障マーク&取り外し
sudo mdadm /dev/md0 –fail /dev/sdb1
sudo mdadm /dev/md0 –remove /dev/sdb1
# 新ディスクを追加
sudo mdadm /dev/md0 –add /dev/sdb1
“`
## 注意事項
– RAID0は冗長性がないため、データ保護目的では使わないでください
– 再構築(リビルド)中は性能が低下し、障害リスクも一時的に上昇します
– RAIDはバックアップの代替ではなく、必ず別系統のバックアップも併用します
– 同一モデル・同一ロットのディスクは同時故障リスクがあるため混在を推奨します
## まとめ
1. **RAIDレベル**: 0=ストライピング、1=ミラー、5=分散パリティ、10=複合
2. **mdadm –create**: ソフトウェアRAID作成の基本
3. **/proc/mdstat**: 状態とリビルド進捗を確認
4. **障害復旧**: fail→remove→addの手順で交換
5. **永続化**: mdadm.confと/etc/fstabの設定が必須
関連記事:
– [Linuxでディスク障害を検出するS.M.A.R.T.確認方法](/articles/linux-smart-disk-health)
– [LVMで論理ボリュームを管理する方法](/articles/linux-lvm-logical-volume)
– [Linuxのネットワーク設定ファイルを編集する方法](/articles/linux-network-config-file)







