RAID · 2 min read · Dec 25, 2025
ソフトウェア RAID1 アレイで故障したハードドライブを交換する
このガイドでは、Linux RAID1 アレイ (ソフトウェア RAID) から故障したハードドライブを取り外し、データを失うことなく RAID1 アレイに新しいハードディスクを追加する方法を示します。
注意: このチュートリアルの新しいバージョンが利用可能で、GPT パーティションをサポートするために sfdisk の代わりに gdisk を使用しています。
1 予備ノート
この例では、/dev/sda と /dev/sdb の 2 つのハードドライブがあり、/dev/sda1 と /dev/sda2、/dev/sdb1 と /dev/sdb2 のパーティションがあります。
/dev/sda1 と /dev/sdb1 は RAID1 アレイ /dev/md0 を構成します。
/dev/sda2 と /dev/sdb2 は RAID1 アレイ /dev/md1 を構成します。
/dev/sda1 + /dev/sdb1 = /dev/md0/dev/sda2 + /dev/sdb2 = /dev/md1/dev/sdb が故障しており、これを交換したいと思います。
2 ハードディスクが故障したかどうかを確認するには?
ディスクが故障している場合、ログファイル (例: /var/log/messages または /var/log/syslog) に多くのエラーメッセージが表示されるでしょう。
また、次のコマンドを実行できます。
cat /proc/mdstatRAID1 アレイが劣化している場合、文字列 [UU] の代わりに [U_] が表示されます。
3 故障したディスクの取り外し
/dev/sdb を取り外すために、/dev/sdb1 と /dev/sdb2 を故障としてマークし、それぞれの RAID アレイ (/dev/md0 と /dev/md1) から取り外します。
まず、/dev/sdb1 を故障としてマークします。
mdadm --manage /dev/md0 --fail /dev/sdb1次のコマンドの出力は次のようになります。
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[2](F)
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices: 次に、/dev/sdb1 を /dev/md0 から取り外します。
mdadm --manage /dev/md0 --remove /dev/sdb1出力は次のようになります。
server1:~# mdadm --manage /dev/md0 --remove /dev/sdb1
mdadm: hot removed /dev/sdb1そして、
cat /proc/mdstatは次のように表示されるはずです。
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices: 次に、/dev/sdb2 (これは /dev/md1 の一部です) に対して同じ手順を繰り返します。
mdadm --manage /dev/md1 --fail /dev/sdb2cat /proc/mdstatserver1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0] sdb2[2](F)
24418688 blocks [2/1] [U_]
unused devices: mdadm --manage /dev/md1 --remove /dev/sdb2server1:~# mdadm --manage /dev/md1 --remove /dev/sdb2
mdadm: hot removed /dev/sdb2cat /proc/mdstatserver1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0]
24418688 blocks [2/1] [U_]
md1 : active raid1 sda2[0]
24418688 blocks [2/1] [U_]
unused devices: 次に、システムの電源を切ります。
shutdown -h nowそして、古い /dev/sdb ハードドライブを新しいものに交換します (新しいものは古いものと同じサイズ以上でなければなりません - 古いものより数 MB 小さい場合、アレイの再構築は失敗します)。
4 新しいハードディスクの追加
ハードディスク /dev/sdb を交換したら、システムを起動します。
今、最初に行うべきことは、/dev/sda と同じパーティションを作成することです。これを簡単なコマンドで行うことができます。
sfdisk -d /dev/sda | sfdisk /dev/sdb次のコマンドを実行して、両方のハードドライブが同じパーティションを持っているかどうかを確認できます。
fdisk -l次に、/dev/sdb1 を /dev/md0 に、/dev/sdb2 を /dev/md1 に追加します。
mdadm --manage /dev/md0 --add /dev/sdb1server1:~# mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: re-added /dev/sdb1mdadm --manage /dev/md1 --add /dev/sdb2server1:~# mdadm --manage /dev/md1 --add /dev/sdb2
mdadm: re-added /dev/sdb2これで両方のアレイ (/dev/md0 と /dev/md1) が同期されます。次のコマンドを実行して、完了するまで確認します。
cat /proc/mdstat同期中の出力は次のようになります。
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
24418688 blocks [2/1] [U_]
[=>...................] recovery = 9.9% (2423168/24418688) finish=2.8min speed=127535K/sec
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/1] [U_]
[=>...................] recovery = 6.4% (1572096/24418688) finish=1.9min speed=196512K/sec
unused devices: 同期が完了すると、出力は次のようになります。
server1:~# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10]
md0 : active raid1 sda1[0] sdb1[1]
24418688 blocks [2/2] [UU]
md1 : active raid1 sda2[0] sdb2[1]
24418688 blocks [2/2] [UU]
unused devices: これで、/dev/sdb を正常に交換しました!
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。