Мой сервер прислал мне письмо с сообщением о том, что один из моих дисков не смог прочитать блок. Поэтому я решил заменить его, прежде чем он окончательно выйдет из строя. Я добавил новый диск и заменил отказавший.
sudo mdadm --manage /dev/md0 --add /dev/sdg1
sudo mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/dbg1
после синхронизации я хотел удалить неисправный /dev/sdb1 и удалил его из массива с помощью:
sudo mdadm --manage /dev/md0 --remove /dev/sdb1
но когда я хочу вынуть диск из корпуса, я сначала вынимаю 2 других, но тут же вставляю их обратно. После этого я проверяю, работает ли мой raid, и он не работает. Я попробовал перезагрузиться, в надежде, что он сам себя вылечит. Раньше это никогда не было проблемой, но я также никогда не менял диск.
После того, как это не сработало, я посмотрел, что делать, и попытался повторно добавить диск, но это не помогло, также сборка не сработала:
sudo mdadm --assamble --scan
обнаруживает только 2 диска, поэтому я попытался указать ему имя дисков
sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdf1 /dev/sdc1 /dev/sdd1
но скажите мне, что все диски заняты:
sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdf1 /dev/sdc1 /dev/sdd1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sda1 is busy - skipping
mdadm: /dev/sdf1 is busy - skipping
mdadm: /dev/sdc1 is busy - skipping
mdadm: /dev/sdd1 is busy - skipping
sdg1 получает sdf1 после перезапуска.
mdstat, похоже, правильно определяет диски (я снова вставил sdb1 в надежде, что это поможет, и пробовал с ним и без него):
cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : inactive sdd1[3](S) sdb1[1](S) sdc1[2](S) sda1[0](S) sdf1[4](S)
14650670080 blocks super 1.2
unused devices: <none>
Если я опрашиваю только диски /dev/sda1
и /dev/sdf1
мне показывают то же самое состояние массиваAA..
sudo mdadm --query --examine /dev/sda1
/dev/sda1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
Name : lianli:0 (local to host lianli)
Creation Time : Sat Oct 29 18:52:27 2016
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=0 sectors
State : clean
Device UUID : 3e912563:b10b74d0:a49faf2d:e14db558
Internal Bitmap : 8 sectors from superblock
Update Time : Sat Jan 9 10:06:33 2021
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : c7d96490 - correct
Events : 303045
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
sudo mdadm --query --examine /dev/sdd1
/dev/sdd1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
Name : lianli:0 (local to host lianli)
Creation Time : Sat Oct 29 18:52:27 2016
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=0 sectors
State : clean
Device UUID : bf303286:5889dc0c:a6a1824a:4fe1ae03
Internal Bitmap : 8 sectors from superblock
Update Time : Sat Jan 9 10:05:58 2021
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : ef1f16fd - correct
Events : 303036
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 3
Array State : AA.A ('A' == active, '.' == missing, 'R' == replacing)
sudo mdadm --query --examine /dev/sdc1
/dev/sdc1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 7c3e9d4e:6bad2afa:85cd55b4:43e43f56
Name : lianli:0 (local to host lianli)
Creation Time : Sat Oct 29 18:52:27 2016
Raid Level : raid5
Raid Devices : 4
Avail Dev Size : 5860268032 (2794.39 GiB 3000.46 GB)
Array Size : 8790402048 (8383.18 GiB 9001.37 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=0 sectors
State : clean
Device UUID : b29aba8f:f92c2b65:d155a3a8:40f41859
Internal Bitmap : 8 sectors from superblock
Update Time : Sat Jan 9 10:04:33 2021
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : 47feb45 - correct
Events : 303013
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 2
Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
Я продолжу попытки, но сейчас у меня закончились идеи, это также первый раз, когда я заменил диск в рейде. Надеюсь, кто-нибудь сможет мне помочь.
По крайней мере, у меня тоже есть резервная копия, но я не хочу сбрасывать настройки жестких дисков, чтобы не заметить, что резервная копия тоже не работает....
Обновлять: После добавления всех дисков для сборки у меня получилось:
sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1
mdadm: looking for devices for /dev/md0
mdadm: /dev/sda1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 1.
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot 2.
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 3.
mdadm: /dev/sdf1 is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdf1 to /dev/md0 as 1
mdadm: added /dev/sdc1 to /dev/md0 as 2 (possibly out of date)
mdadm: added /dev/sdd1 to /dev/md0 as 3 (possibly out of date)
mdadm: added /dev/sda1 to /dev/md0 as 0
mdadm: /dev/md0 assembled from 2 drives - not enough to start the array.
решение1
Я нашел решение:
После дополнительных исследований и получения информации о «возможной устаревшей информации» в подробном режиме ( sudo mdadm -v -A /dev/md0 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sdf1
) я нашел эту страницу:https://raid.wiki.kernel.org/index.php/RAID_Recovery
В разделе «Попытка сборки с использованием --force» описывается использование force, если число событий, отличающихся от предыдущего, меньше 50. У меня оно было намного меньше, поэтому я попробовал, RAID-массив снова подключается и обнаруживает один из дисков как устаревший, но я надеюсь, что он сможет синхронизировать его с информацией других. Так что, возможно, я потерял некоторые данные, но я узнал, что если я удалил не тот диск из массива, нужно подождать, пока массив не окажется в snyc...
Команда, которую я использовал, чтобы снова заставить работать свой рейд:
sudo mdadm --stop /dev/md0
sudo mdadm -v -A --force /dev/md0 /dev/sda1 /dev/sdc1 /dev/sdd1 /dev/sdf1
Обновлять:
Один диск, вероятно, не был добавлен, поэтому принудительно был добавлен только один драйвер, чтобы вернуть массив в работоспособное состояние. Устройство с наибольшим Event different пришлось добавить позже с помощью --re-add
:
sudo mdadm --manage /dev/md0 --re-add /dev/sdc1
Теперь мой массив снова синхронизирован, и я могу снова попытаться извлечь неисправный жесткий диск.