Как стать автором
Обновить

Восстановление данных с отдельных дисков 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
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.