このハウツーでは、mdadm
によって管理されるソフトウェアRAIDで障害が発生したドライブを交換する方法について説明します。 効用。 mdadm
で障害が発生したRAID6ドライブを交換するには :
- 問題を特定します。
- RAIDアレイから詳細を取得します。
- 障害のあるディスクをRAIDアレイから取り外します。
- マシンをシャットダウンし、ディスクを交換します。
- 新しいディスクをパーティション化します。
- 新しいディスクをRAIDアレイに追加します。
- リカバリを確認します。
例を見て、このプロセスを詳しく見ていきましょう。
問題を特定する
RAIDアレイ内で障害が発生しているディスクを特定するには、次のコマンドを実行します。
[root@server loc]# cat /proc/mdadm
または:
[root@server loc]# mdadm -–query -–detail /dev/md2
障害のあるディスクは、障害として表示されます。 または削除 。例:
[root@server loc]# mdadm -–query -–detail /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Mon Jun 22 08:47:09 2015
Raid Level : raid6
Array Size : 5819252736 (5549.67 GiB 5958.91 GB)
Used Dev Size : 2909626368 (2774.84 GiB 2979.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Oct 15 11:55:06 2018
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Rebuild Status : 3% complete
Name : localhost.localdomain:2
UUID : 54404ab5:4450e4f3:aba6c1fb:93a4087e
Events : 1046292
Number Major Minor Raid Device State
0 0 0 0 removed
1 8 36 1 active sync /dev/sdc4
2 8 52 2 active sync /dev/sdd4
3 8 68 3 active sync /dev/sde4
RAIDアレイから詳細を取得
RAIDアレイの状態を調べて、RAID内のディスクの状態を特定するには:
[root@server loc]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md2 : active raid6 sdb4[4](F) sdd4[2] sdc4[1] sde4[3]
5819252736 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/3] [_UUU]
[>………………..] recovery = 3.4% (100650992/2909626368) finish=471.5min speed=99278K/sec
bitmap: 2/22 pages [8KB], 65536KB chunk
unused devices: <none>
ご覧のとおり、デバイス/dev/sdb4
RAIDで失敗しました。
障害が発生したディスクが/dev/sdb4
であることが確認されたため (このサーバーの場合)、smartctl
を使用してディスクのシリアル番号を取得する必要があります :
[root@server loc]# smartctl -–all /dev/sdb | grep -i 'Serial'
ディスクの物理ラベルに従って、サーバーから削除するディスクを知る必要があるため、上記のコマンドは重要です。
障害のあるディスクをRAIDアレイから削除します
アレイから障害のあるディスクを削除して、アレイが一貫した状態を維持し、次のようにすべての変更を認識できるようにすることが重要です。
[root@server loc]# mdadm -–manage /dev/md2 -–remove /dev/sdb4
削除が成功すると、次のようなメッセージが返されます:
[root@server loc]# mdadm: hot removed /dev/sdb4 from /dev/md2
/proc/mdstat
の状態を確認してください もう一度:
[root@server loc]# cat /proc/mdstat
/dev/sdb4
が表示されます 表示されなくなります。
マシンをシャットダウンしてディスクを交換します
次に、システムをシャットダウンして、障害のあるディスクを新しいディスクと交換しますが、システムをシャットダウンする前に、/dev/md2
にコメントしてください。 /etc/fstab
から ファイル。以下の例を参照してください:
[root@server loc]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri May 20 13:12:25 2016
#
# Accessible filesystems, by reference, are maintained under ‘/dev/disk’
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=1300b86d-2638-4a9f-b366-c5e67e9ffa4e /boot xfs defaults 0 0
#/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
#/dev/md2 /var/loc xfs defaults 0 0
新しいディスクをパーティション分割する
RAIDアレイ内には他の作業ディスクがあるため、作業ディスクのパーティションスキーマを新しいディスクにコピーするのは簡単で便利です。このタスクは、sgdisk
を使用して実行されます gdisk
によって提供されるユーティリティ パッケージ。
gdisk
をインストールします このように(ディストリビューションに合わせてこのコマンドを調整します):
[root@server loc]# yum install gdisk
gdisk
を使用する 、最初に-R
を渡します オプション(Replicateの略)。作業ディスクのパーティションスキーマを複製するようにしてください。正しい順序のディスクを使用して、作業中のディスクから新しいディスクにパーティションスキーマを複製することが重要です。私たちの状況では、新しいディスクには/dev/sdb
があります 動作中のディスクは/dev/sdc
です。 、/dev/sdd
、/dev/sde
。
次に、作業ディスクのパーティションスキーマを複製します(たとえば、/dev/sdc
)新しいディスク/dev/sdb
に 、次のコマンドが必要です:
[root@server loc]# sgdisk -R /dev/sdb /dev/sdc
GUIDが他のドライブと競合しないようにするには、次を使用して新しいドライブのGUIDをランダム化する必要があります。
[root@server loc]# sgdisk -G /dev/sdb
The operation has completed successfully.
次に、parted
を使用して/dev/sdbの出力を確認します ユーティリティ:
[root@server loc]# parted /dev/sdb print
新しいディスクをRAIDアレイに追加します
新しいドライブへのパーティションスキーマのレプリケーションが完了したら、ドライブをRAIDアレイに追加できます。
[root@server loc]# mdadm -–manage /dev/md2 -–add /dev/sdb4
mdadm: added /dev/sdb4
リカバリを確認する
RAIDリカバリを確認するには、次を使用します。
[root@server loc]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md2 : active raid6 sdb4[4] sdd4[2] sdc4[1] sde4[3]
5819252736 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/3] [_UUU]
[==>………………] recovery = 12.2% (357590568/2909626368) finish=424.1min speed=100283K/sec
bitmap: 0/22 pages [0KB], 65536KB chunk
unused devices: <none>
または:
[root@server loc]# mdadm -–query -–detail /dev/md2
/dev/md2:
Version : 1.2
Creation Time : Mon Jun 22 08:47:09 2015
Raid Level : raid6
Array Size : 5819252736 (5549.67 GiB 5958.91 GB)
Used Dev Size : 2909626368 (2774.84 GiB 2979.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Intent Bitmap : Internal
Update Time : Mon Oct 15 12:37:37 2018
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : bitmap
Rebuild Status : 12% complete
Name : localhost.localdomain:2
UUID : 54404ab5:4450e4f3:aba6c1fb:93a4087e
Events : 1046749
Number Major Minor Raid Device State
4 8 20 0 spare rebuilding /dev/sdb4
1 8 36 1 active sync /dev/sdc4
2 8 52 2 active sync /dev/sdd4
3 8 68 3 active sync /dev/sde4
上記の出力から、/dev/sdb4
であることがわかります。 は再構築中であり、4つの動作中のアクティブなデバイスが利用可能です。合計ディスクサイズとディスクタイプ(従来型またはソリッドステート)によっては、再構築プロセスに時間がかかる場合があります。
祝う
これで、障害が発生したRAID6ドライブをmdadm
に正常に置き換えることができました。 。うまくいけば、これを行う必要はありませんが、ハードウェアは失敗します。 RAID 6を使用している場合、最終的には発生する可能性があります。可能であれば、ラボをセットアップし、RAID 6を強制的に失敗させてから、リカバリします。問題に対処する方法を知っていると、考えられないことが起こったときの経験がはるかにストレスが少なくなります。