Узнаем какой диск из софтварного райда надо менять
Способ как найти какой диск надо менять.
1. Смотрим состояние raid’a (raid1)
# cat /proc/mdstat Personalities : [raid1] md4 : active raid1 sdb1[2](F) sda1[0] 4192832 blocks [2/1] [U_]
md5 : active raid1 sdb2[2](F) sda2[0] 3148672 blocks [2/1] [U_]
md1 : active raid1 sdb5[1] sda5[0] 521984 blocks [2/2] [UU]
md2 : active raid1 sda6[0] 186442240 blocks [2/1] [U_]
md0 : active raid1 sdb3[1] sda3[0] 1052160 blocks [2/2] [UU]
у md4 и md5 около sdb1 и sdb2 наблюдаем буковку (F), что означает что этот диск надо заменить. Тоесть плохой sdb.
2. Смотрим точно ли что-то плохо
mdadm --detail /dev/md4
Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 1 0 0 -1 removed 2 8 17 -1 faulty /dev/sdb1
mdadm --detail /dev/md5
Number Major Minor RaidDevice State 0 8 2 0 active sync /dev/sda2 1 0 0 -1 removed 2 8 18 -1 faulty /dev/sdb2
нас интересует faulty. У хорошего диска этой строки просто нету
Number Major Minor RaidDevice State 0 8 5 0 active sync /dev/sda5 1 8 21 1 active sync /dev/sdb5
3. Осталось выяснить какой именно диск менять. Для этого используем утилиту hdparm
hdparm -I /dev/sdb
... ATA device, with non-removable media Model Number: ST3200820DS Serial Number: 3DE08W1C Firmware Revision: 3.AAC ...
4. Вот и все. Тормозим машину, вытаскиваем диск и ищем на нем серийный 3DE08W1C и меняем его на новый.
Меняя диски на лету надо вытащить плохой диск из массива, для этого
mdadm --manage /dev/md0 --fail /dev/sdb3
где /dev/md0 – массив, а /dev/sdb3 – плохой диск
Вставить новый диск и создать такие же разделы что и на хорошем диске массива. Для этого можно воспользоваться sfdisk’ом
sfdisk -d /dev/sda | sfdisk /dev/sdb
значит что мы имеем:
md4 sda1
md5 sda2
md1 sda5
md2 sda6
md0 sda3
это массив и sdb который разбит также как и sda. Осталось только вставить диски в массив:
mdadm --manage /dev/md0 --add /dev/sdb3
mdadm --manage /dev/md2 --add /dev/sdb6
mdadm --manage /dev/md1 --add /dev/sdb5
mdadm --manage /dev/md5 --add /dev/sdb2
mdadm --manage /dev/md4 --add /dev/sdb1
и смотрим что получилось:
cat /proc/mdstat
Personalities : [raid1]
md4 : active raid1 sdb1[2] sda1[0]
4192832 blocks [2/1] [U_]
resync=DELAYED
md5 : active raid1 sdb2[2] sda2[0]
3148672 blocks [2/1] [U_]
resync=DELAYED
md1 : active raid1 sdb5[2] sda5[0]
521984 blocks [2/1] [U_]
resync=DELAYED
md2 : active raid1 sdb6[2] sda6[0]
186442240 blocks [2/1] [U_]
[===>.................] recovery = 19.8% (37084416/186442240) finish=57.0min speed=43600K/sec
md0 : active raid1 sdb3[1] sda3[0]
1052160 blocks [2/2] [UU]
unused devices: <none>