
Мой древний Synology CS407 был настроен (преднамеренно) с RAID0, и у меня еще не была настроена система резервного копирования. Есть четыре диска по 1 ТБ, создающие том объемом 4 ТБ. Один диск вышел из строя, из-за чего встроенное программное обеспечение вообще отказалось использовать/монтировать том. Я понимаю, что это серьезная неисправность и что в целом том на всех 4 дисках вышел из строя, поскольку в RAID0 нет избыточности. Тем не менее, я хотел бы попробовать пересобрать массив в Ubuntu, проигнорировать ошибку/пропустить плохие данные и посмотреть, в каком состоянии находится том. Неудивительно, что у меня возникли проблемы с одним отказавшим диском. Ubuntu видит его таблицу разделов и сообщает об одном плохом секторе.
Вот результат/proc/mdstat
Personalities :
md2 : inactive dm-3[3](S) dm-2[2](S) dm-1[1](S) dm-0[0](S)
3901770794 blocks super 1.1
unused devices: <none>
Иmdadm --examine --scan
ARRAY /dev/md/2 metadata=1.1 UUID=442ee8f0:7c679b96:de0a0544:f72b1167 name=2
Данные LVM находятся на разделе 3 каждого диска. Повторная сборка с помощью mdadm --assemble --run --force --verbose /dev/md2 /dev/sd[cdef]3
делает следующее:
mdadm: looking for devices for /dev/md2
mdadm: /dev/sdc3 is identified as a member of /dev/md2, slot 0.
mdadm: /dev/sdd3 is identified as a member of /dev/md2, slot 32769.
mdadm: /dev/sde3 is identified as a member of /dev/md2, slot 2.
mdadm: /dev/sdf3 is identified as a member of /dev/md2, slot 3.
mdadm: no uptodate device for slot 1 of /dev/md2
mdadm: added /dev/sde3 to /dev/md2 as 2
mdadm: added /dev/sdf3 to /dev/md2 as 3
mdadm: added /dev/sdc3 to /dev/md2 as 0
mdadm: failed to RUN_ARRAY /dev/md2: Invalid argument
mdadm: Not enough devices to start the array.
Это дает мне бесполезный /dev/md2
, показанный как RAID-устройство в Ubuntu. Мне нужно stop
это сделать, прежде чем я смогу снова попытаться собрать. Что кажется странным, так это номер слота для /dev/sdd3
.
У меня есть еще два варианта, которые я мог бы попробовать, и я ищу совета, может ли какой-то из них помочь:
- Неудачное удаление
/dev/sdd3
и последующее добавление обратно - У меня есть запасной диск на 1 ТБ. Я мог бы сделать копию диска
dd
, вывести старый диск из строя и добавить новый. Мне просто интересно, если я сделаю посекторную копию, у нового диска будут ли больше шансов на успех? Он попробует сделать это на основе другого UUID?
EDIT - вывод mdadm --examine /dev/sdd3
:
/dev/sdd3:
Magic : a92b4efc
Version : 1.1
Feature Map : 0x0
Array UUID : 442ee8f0:7c679b96:de0a0544:f72b1167
Name : 2
Creation Time : Sun Feb 13 00:14:43 2022
Raid Level : raid0
Raid Devices : 4
Avail Dev Size : 1950885397 (930.25 GiB 998.85 GB)
Data Offset : 8 sectors
Super Offset : 0 sectors
State : active
Device UUID : 23292ce9:221ebbfa:ea131c60:7888bc0c
Update Time : Sun Feb 20 19:02:34 2022
Checksum : e4ebe933 - correct
Events : 1
Chunk Size : 64K
Device Role : Active device 32769
Array State : A.AA ('A' == active, '.' == missing, 'R' == replacing)
решение1
Это не серьезная проблема. Это катастрофическая проблема. RAID0 (при использовании в качестве разделительного RAID) хранит фрагменты данных на всех дисках. Таким образом, части одного файла могут располагаться на всех 4 дисках.
Если информация очень ценная, вы можете попробовать обратиться в специализированные компании, которые могут восстановить часть информации. Но это может стоить целое состояние.
Есть небольшая вероятность, что RAID использует алгоритм конкатенации для создания массива. В таком случае вы можете восстановить хороший объем информации. Но, опять же, это не домашнее задание.
решение2
Я не уверен, насколько разрешима эта проблема.
Первое, что я бы попробовал, это выключить Synology, удалить неисправный диск, затем использовать ddrescue на Linux-боксе, чтобы клонировать этот диск, насколько это возможно. Затем я бы поместил клонированный диск в synology.
Тогда вы, возможно, сможете «принудительно собрать» массив. Мне никогда не приходилось это пробовать, но, возможно, с помощью команды типа
mdadm --force --assemble /dev/md2 /dev/sdc3 /dev/sdd3 /dev/sde3 /dev/sdf3
Ключевым моментом, согласно странице LUKS MAN, является то, что (для Assemble)
"--force Собрать массив, даже если метаданные на некоторых устройствах кажутся устаревшими. Если mdadm не может найти достаточно рабочих устройств для запуска массива, но может найти некоторые устройства, которые зарегистрированы как неисправные, то он пометит эти устройства как рабочие, чтобы массив можно было запустить. Это работает только для собственных. Для внешних метаданных это позволяет запустить грязные деградированные RAID 4, 5, 6. Массив, для запуска которого требуется --force, может содержать поврежденные данные. Используйте его осторожно."
Вы, возможно, могли бы сделать это и без использования ddrescue, но вы усложните себе жизнь, попытавшись работать с диском, на котором произошел сбой оборудования.
Не стоит доверять своим данным. Вероятно, где-то есть искажение/несоответствие.
Если это не поможет, вы можете извлечь часть данных с оставшихся исправных дисков с помощью PhotoRec или аналогичного средства.
решение3
Лучшим вариантом будет попытаться скопировать как можно большую часть диска на новый диск. Не используйте dd
, используйте ddrescue
. dd
остановится на первой же ошибке. Я восстановил почти полные диски с помощью ddrescue
, поэтому возможно вернуть большую часть данных. ddrescue
может занять много времени.
Затем, используя скопированный диск, попробуйте решение @davidgo.
Теперь вы ощутили недостатки RAID 0. Если у вас нет острой нехватки места на диске, рассмотрите возможность перехода на RAID 5.