![Как восстановить RAID5 после ошибочного выхода из строя одного из дисков?](https://rvso.com/image/1665782/%D0%9A%D0%B0%D0%BA%20%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%20RAID5%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BE%D1%87%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B2%D1%8B%D1%85%D0%BE%D0%B4%D0%B0%20%D0%B8%D0%B7%20%D1%81%D1%82%D1%80%D0%BE%D1%8F%20%D0%BE%D0%B4%D0%BD%D0%BE%D0%B3%D0%BE%20%D0%B8%D0%B7%20%D0%B4%D0%B8%D1%81%D0%BA%D0%BE%D0%B2%3F.png)
У меня RAID5 на Xubuntu 20.04, созданный с помощью mdadm. Я по ошибке вывел из строя один из трех дисков. Массив все еще работает, но я получаю ошибки или ответы, которые я не понимаю, при попытках восстановить полную работоспособность.
СО: Интересно, удалось ли мне это исправить, и если нет, что я могу сделать сейчас...
Я подозреваю, что диск все еще неисправен из-за «(F)» в содержимом /proc/mdstat:
root@camelot-b:~# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10]
md3 : active raid5 sdf1[0](F) sdg1[3] sde1[4]
7813771264 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
bitmap: 0/30 pages [0KB], 65536KB chunk
unused devices: <none>
root@camelot-b:~#
Однако вывод --examine не указывает на наличие проблемы, и фактически последняя строка показывает состояние массива, в котором все три диска активны:
root@camelot-b:~# mdadm --examine /dev/sdf1
/dev/sdf1:
Magic : a92b4efc
Version : 1.2
Feature Map : 0x1
Array UUID : 07c3d55f:2c9b1534:6b0d5b78:dd9856ed
Name : camelot-x:3
Creation Time : Sun Apr 2 19:07:19 2017
Raid Level : raid5
Raid Devices : 3
Avail Dev Size : 7813771264 (3725.90 GiB 4000.65 GB)
Array Size : 7813771264 (7451.79 GiB 8001.30 GB)
Data Offset : 262144 sectors
Super Offset : 8 sectors
Unused Space : before=262056 sectors, after=0 sectors
State : clean
Device UUID : 24275237:b493169e:9e88df0d:ebaae551
Internal Bitmap : 8 sectors from superblock
Update Time : Fri Feb 18 17:15:50 2022
Bad Block Log : 512 entries available at offset 72 sectors
Checksum : c9840d0f - correct
Events : 26597
Layout : left-symmetric
Chunk Size : 512K
Device Role : Active device 0
Array State : AAA ('A' == active, '.' == missing, 'R' == replacing)
решение1
Если с момента отказа диска данные в массиве были изменены незначительно или вообще не изменились, вы можете использовать --re-add. Вы можете проверить количество событий на каждом диске:
mdadm --examine /dev/sd[e-g]1 | egrep 'Event|/dev/sd'
Если количество событий не слишком сильно отстает (и у вас включена поддержка bitmap), вы можете добавить их повторно:
mdadm /dev/md3 --re-add /dev/sdf1
Если это не поможет, вам придется снова добавить диск (это может привести к полной перестройке).
mdadm /dev/md3 -a /dev/sdf1
Согласно документации, mdadm сначала попытается повторно добавить при выполнении команды add (-a, --add). Запуск повторного добавления полезен, если вы хотите попробовать добавить диск без повторной синхронизации и не хотите, чтобы он сразу же перешел к повторной синхронизации, если повторное добавление не сработает.
решение2
Это не технический ответ, но он работает… поскольку я сам оказался в такой же ситуации.Этот метод работает только в том случае, если машина локальная и у вас есть еще один локальный компьютер.
**Помните, RAID5 имеет восстановление после отказа одного диска. То есть, он восстановит массив из оставшихся дисков... если только другой диск не будет проблемным в процессе восстановления.
- Физически извлеките диск из неисправной системы.
- Отформатируйте неисправный диск, используя другой компьютер.
- Вставьте вновь отформатированный диск обратно в исходный компьютер.
- RAID-массив должен начать процесс восстановления и перестроить неисправный диск.
- После завершения восстановления вы сможете снова работать.
Я не могу советовать вносить изменения в конфигурацию, с которыми вы не знакомы. Если ваши данные не подлежат восстановлению, нет необходимости тратить время на перестройку массива, исправление состояния вашего здоровья.