LinuxでRAID構成を構築する方法|mdadmを使った基本手順から運用・障害対応まで詳しく整理

LinuxでRAID構成を構築する方法|mdadmを使った基本手順から運用・障害対応まで詳しく整理

LinuxでRAID構成を組む場面では、単にディスクを束ねるだけでなく、冗長性、性能、復旧性、監視、再起動後の自動認識まで含めて設計しておくことが重要です。特に業務サーバーや検証環境では、RAIDレベルの選定を誤ると、障害時の停止時間や復旧コストに大きく影響します。ここでは、LinuxのソフトウェアRAIDでよく使われるmdadmを前提に、準備、構築、フォーマット、マウント、設定永続化、監視、障害ディスク交換までを、実務で使いやすい形でまとめます。

RAIDとは何かを最初に整理しておく

RAIDは、複数の物理ディスクをまとめて1つの論理ディスクのように扱う仕組みです。用途は大きく分けて、冗長化、性能向上、容量統合の3つです。ただし、RAIDを組んでいるからといってバックアップが不要になるわけではありません。RAIDは主にディスク障害への耐性を高める仕組みであり、誤削除、ファイル破損、ランサムウェア、アプリケーション障害、人的ミスまで防ぐものではありません。

代表的なRAIDレベルの違いを理解する

RAID 0
RAID 1
RAID 5
RAID 6
RAID 10

それぞれの特徴は以下の通りです。

RAID 0:高速だが冗長性なし
RAID 1:ミラーリングで安全性高い
RAID 5:容量効率と冗長性のバランス型
RAID 6:2台障害まで耐える
RAID 10:高速+冗長性のバランス最強クラス

RAID構築前に確認しておきたい前提条件

・対象ディスクの特定
・データ退避済みか
・容量一致しているか
・OSディスクと混同していないか

lsblk
sudo fdisk -l
sudo blkid
cat /proc/mdstat

mdadmをインストールする

sudo apt update
sudo apt install -y mdadm

または

sudo dnf install -y mdadm

パーティションを作成する

sudo parted /dev/sdb –script mklabel gpt
sudo parted /dev/sdb –script mkpart primary 1MiB 100%

sudo parted /dev/sdc –script mklabel gpt
sudo parted /dev/sdc –script mkpart primary 1MiB 100%

RAID1を作成する

sudo mdadm –create /dev/md0 –level=1 –raid-devices=2 /dev/sdb1 /dev/sdc1

状態確認

cat /proc/mdstat
sudo mdadm –detail /dev/md0

ファイルシステム作成

sudo mkfs.ext4 /dev/md0

マウントする

sudo mkdir -p /data
sudo mount /dev/md0 /data

fstab設定

sudo blkid /dev/md0

UUID=xxxxx /data ext4 defaults,nofail 0 0

mdadm設定保存

sudo mdadm –detail –scan | sudo tee -a /etc/mdadm.conf

ディスク障害時の対応

sudo mdadm /dev/md0 –fail /dev/sdb1
sudo mdadm /dev/md0 –remove /dev/sdb1
sudo mdadm /dev/md0 –add /dev/sdb1

監視コマンド

cat /proc/mdstat
sudo mdadm –detail /dev/md0
dmesg | grep -i md

まとめ

RAIDは構築だけでなく運用設計が重要です。監視・交換手順・バックアップを含めて設計しておくことで、障害時のリスクを大きく下げることができます。