Как лечить "DataVolume is in degraded mode"
Опять попугал wd-кубик своими чудачествами, зажёг красную лампочку. Веб-интерфейс после логина показывает страшную надпись:
и предлагает кнопочку "Acknowledge". Два раза уже такую вещь видел, это уже третий. Значит пора записывать, чтобы потом самому легче вспоминать было. Тем более, что в первый раз я попробовал решить проблему через штатный веб-интерфейс, и проблему-то вроде как решил, но в результате том пересобрался пустой. Мало того, что жужжало двадцать часов, так ещё и данные все потёрло. Так что *не надо устранять эту ошибку через штатный веб-интерфейс*! Лучше в консоли с сохранением данных. Иначе зачем он RAID5? Поехали.
Как чинить. Логинимся по ssh рутом, смотрим что там случилось:
[root@wdcube ~]# export PATH=/opt/bin:/opt/sbin:$PATH [root@wdcube ~]# mount trusteesfs on /trustees type trusteesfs (rw) /dev/md2 on /DataVolume type ext3 (rw,usrquota) /dev/md3 on /ExtendVolume type ext3 (rw,usrquota)
Проблема произошла с /dev/md2. Смотрим подробности
[root@wdcube ~]# mdadm -D -v /dev/md2
/dev/md2:
Version : 0.90
Creation Time : Sun Jul 3 11:49:02 2011
Raid Level : raid5
Array Size : 2925438336 (2789.92 GiB 2995.65 GB)
Used Dev Size : 975146112 (929.97 GiB 998.55 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 2
Persistence : Superblock is persistent
Update Time : Wed Mar 20 23:08:41 2013
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : e8216f93:d8cde971:0cd9d232:d925edf0
Events : 0.4628225
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 20 1 active sync /dev/sdb4
2 8 36 2 active sync /dev/sdc4
3 8 52 3 active sync /dev/sdd4
4 8 4 - faulty spare /dev/sda4
Опять, как и в прошлый раз, отвалился диск /dev/sda4. Починка проста: убрать сбойный диск из массива, добавить заново.
[root@wdcube ~]# mdadm /dev/md2 --remove /dev/sda4
mdadm: hot removed /dev/sda4
[root@wdcube ~]# mdadm -D -v /dev/md2
/dev/md2:
Version : 0.90
Creation Time : Sun Jul 3 11:49:02 2011
Raid Level : raid5
Array Size : 2925438336 (2789.92 GiB 2995.65 GB)
Used Dev Size : 975146112 (929.97 GiB 998.55 GB)
Raid Devices : 4
Total Devices : 3
Preferred Minor : 2
Persistence : Superblock is persistent
Update Time : Wed Mar 20 23:09:36 2013
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : e8216f93:d8cde971:0cd9d232:d925edf0
Events : 0.4628240
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 20 1 active sync /dev/sdb4
2 8 36 2 active sync /dev/sdc4
3 8 52 3 active sync /dev/sdd4
[root@wdcube ~]# mdadm /dev/md2 --add /dev/sda4
mdadm: hot added /dev/sda4
[root@wdcube ~]# mdadm -D -v /dev/md2
/dev/md2:
Version : 0.90
Creation Time : Sun Jul 3 11:49:02 2011
Raid Level : raid5
Array Size : 2925438336 (2789.92 GiB 2995.65 GB)
Used Dev Size : 975146112 (929.97 GiB 998.55 GB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 2
Persistence : Superblock is persistent
Update Time : Wed Mar 20 23:10:13 2013
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Rebuild Status : 0% complete
UUID : e8216f93:d8cde971:0cd9d232:d925edf0
Events : 0.4628243
Number Major Minor RaidDevice State
4 8 4 0 spare rebuilding /dev/sda4
1 8 20 1 active sync /dev/sdb4
2 8 36 2 active sync /dev/sdc4
3 8 52 3 active sync /dev/sdd4
Всё, массив пошёл перестраиваться, процесс длинный. Следить за прогрессом можно так:
[root@wdcube ~]# cat /proc/mdstat
Попытаемся ускорить (у меня принципиальной разницы в скорости не получилось). По многочисленным материалам из инета, делаем так:
[root@wdcube ~]# cat /proc/sys/dev/raid/speed_limit_min 1000 [root@wdcube ~]# cat /proc/sys/dev/raid/speed_limit_max 200000 [root@wdcube ~]# echo 50000 > /proc/sys/dev/raid/speed_limit_min [root@wdcube ~]# cat /proc/sys/dev/raid/speed_limit_min 50000
Итого у меня получается скорость (по статистике из /proc/mdstat) около 18Мб/сек и общее время перестройки массива в районе 14-17 часов, это зависит ещё от внешней нагрузки, массив же работает в процессе дисковым хранилищем.
Следить за прогрессом удобно так:
[root@wdcube ~]# watch -n 30 cat /proc/mdstat
Every 30s: cat /proc/mdstat Wed Mar 20 23:43:33 2013
Personalities : [linear] [raid0] [raid1] [raid5]
md1 : active raid1 sdd2[3] sdc2[2] sdb2[1] sda2[0]
1044160 blocks [4/4] [UUUU]
md2 : active raid5 sda4[4] sdd4[3] sdc4[2] sdb4[1]
2925438336 blocks level 5, 64k chunk, algorithm 2 [4/3] [_UUU]
[>....................] recovery = 3.5% (34891904/975146112) finish=849.1min speed=18452K/sec
md0 : active raid1 sdd1[3] sdc1[2] sdb1[1] sda1[0]
208768 blocks [4/4] [UUUU]
unused devices: [[none]]
Если в процессе починки развалился массив, то вот тут очень-очень ползеное, как пересоздать его (чтобы не потерять все данные) http://lists.altlinux.org/pipermail/sysadmins/2009-July/030477.html.
Остановить массив с mdadm --stop /dev/md2. Потом магия:
[root@wdcube ~]# mdadm --create --verbose /dev/md2 --assume-clean --level=raid5 --raid-devices=4 \
--spare-devices=0 /dev/sda4 /dev/sdb4 /dev/sdc4 /dev/sdd4
После чего полезно убрать последний, не до конца сихнронизированный диск, если таковые есть, и добавить его заново с целью синхронизировать массив.