Восстановление данных с отдельных дисков Synology DS509+ (RAID1, RAID5) на компьютере с помощью Ubuntu
Перед заполнением хранилища Synology DS509+ большим объёмом данных захотелось проверить, можно ли будет восстановить данные с дисков на обычном компьютере. Это может быть актуально в случае проблем с блоком питания в Disk Station или других проблемах, когда сам накопитель не работоспособен, а второго такого же под рукой нет.
Поиск выдал только одну статью из Synology Wiki, которая описывает такую процедуру восстановления.
How to retrieve data from RAID Volumes on Linux
Оказалось, что процедура восстановления отличается от описанной в wiki.
ВНИМАНИЕ! В случае реальной проблемы с дисками желательно сделать их копии, прежде чем начинать эксперименты по восстановлению данных. После попытки восстановления данных, диски не смогут работать в Disk Station из-за разного порядка следования байт в памяти на компьютере и Disk Station.
Восстановление raid 1 с одного HDD на Ubuntu
1. Установить mdadm.
# sudo apt-get install mdadm
2. Смонтировать программный raid. Команда mdadm должна выпоняться с параметром “–update=byteorder” только один раз. Последующие вызовы mdadm, если они потребуются, должны выполняться без параметра “–update=byteorder”.
# sudo mdadm -A /dev/md2 --update=byteorder --run /dev/sda3 mdadm: /dev/md2 has been started with 1 drive (out of 2).
Параметр –run необходим для монтирования raid из одного диска вместо двух.
Без параметра “–run” mdadm выводит ошибку:
mdadm: /dev/md2 assembled from 1 drive - need all 2 to start it (use --run to insist).
Повторный вызов mdadm c параметром “–update=byteorder” приводит к ошибке «wrong state in superblock», потому что последовательность байтов уже была исправлена в первый раз.
#sudo mdadm -A /dev/md2 --update=byteorder --run /dev/sda3 mdadm: device 0 in /dev/md2 has wrong state in superblock, but /dev/sda3 seems ok
3. Создаём каталог в который будет смонтирован том raid
# sudo mkdir /mnt/synraid
4. Попытки смонтировать файловую систему, как это указано в How to retrieve data from RAID Volumes on Linux не удаются. Оказывается для Raid 1 применяется LVM
# sudo mount -o ro /dev/md2 /mnt/synraid mount: unknown filesystem type 'LVM2_member'
5. Устанавливаем LVM.
#sudo apt-get install lvm2
6. Просматриваем список физических LVM томов. Нас интересует vg1, внутри него и хранятся данные.
# sudo pvs PV VG Fmt Attr PSize PFree /dev/md2 vg1 lvm2 a- 1.36T 0
7. Выводим информацию о томе
# sudo lvdisplay /dev/vg1 --- Logical volume --- LV Name /dev/vg1/lv VG Name vg1 LV UUID 9w7C9s-1OBP-saJv-m4m6-abAl-Ncbm-xUkHiq LV Write Access read/write LV Status NOT available LV Size 1.36 TB Current LE 89233 Segments 1 Allocation contiguous Read ahead sectors 19456
8. Активируем том.
# sudo vgchange -a y 1 logical volume(s) in volume group "vg1" now active
9. Наконец, монтируем раздел с данными (-ro — на всякий случай в readonly режиме)
# sudo mount -o ro /dev/vg1/lv /mnt/synraid
10. После этой операции данные доступны
# ls /mnt/synraid
Восстановление raid 5 с двух HDD из трех на Ubuntu
1. Установить mdadm.
# sudo apt-get install mdadm
2. Монтируем программный raid. Попытка смонтировать raid, как это указано в How to retrieve data from RAID Volumes on Linux опять не удается. Команда с параметром “–update=byteorder” почему-то не работает.
# mdadm -A /dev/md2 --update=byteorder --run /dev/sd[ab]3 mdadm: no RAID superblock on /dev/sda3 mdadm: /dev/sda3 has no superblock - assembly aborted
Однако, без параметра нормально монтирует raid.
# mdadm -A /dev/md2 --run /dev/sd[ab]3 mdadm: /dev/md2 has been started with 2 drives (out of 3).
3. Информация о raid
# mdadm --query --detail /dev/md2 /dev/md2: Version : 01.01 Creation Time : 06:48:11 2010-10-15 Raid Level : raid5 Array Size : 3900742272 (3720.04 GiB 3994.36 GB) Used Dev Size : 3900742272 (3720.04 GiB 3994.36 GB) Raid Devices : 3 Total Devices : 2 Preferred Minor : 2 Persistence : Superblock is persistent Update Time : 9 20:03:45 2010-10-14 State : clean, degraded Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 64K Name : DISKSTATION:3 UUID : d596adc7:6559c5e6:a10d330f:d7e27b98 Events : 2 Number Major Minor RaidDevice State 0 8 19 0 active sync /dev/sdb3 1 0 0 1 removed 2 8 3 2 active sync /dev/sda3
4. Создаём каталог в который будет смонтирован том raid
# sudo mkdir /mnt/synraid
5. Монтируем раздел с данными (-ro — на всякий случай в readonly режиме).
# sudo mount -o ro /dev/md2 /mnt/synraid
6. После этой операции данные доступны
# ls /mnt/synraid