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/mdstat

RAID1 アレイが劣化している場合、文字列 [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/sdb2
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[2](F)  
      24418688 blocks [2/1] [U_]  
  
unused devices: 
mdadm --manage /dev/md1 --remove /dev/sdb2
server1:~# mdadm --manage /dev/md1 --remove /dev/sdb2  
mdadm: hot removed /dev/sdb2
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]  
      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/sdb1
server1:~# mdadm --manage /dev/md0 --add /dev/sdb1  
mdadm: re-added /dev/sdb1
mdadm --manage /dev/md1 --add /dev/sdb2
server1:~# 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 を正常に交換しました!

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。