Восстановление данных с отдельных дисков Synology DS509+ (RAID1, RAID5) на компьютере с помощью Ubuntu

8 ноября 2011 г.

Перед заполнением хранилища 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
Теги: рубрика Linux
  • Похожие статьи
  • Предыдущие из рубрики