Назад | Перейти на главную страницу

Попытка восстановления MDADM RAID на образах, созданных с помощью dd

У меня есть программный массив RAID5 с 4 + 1 дисками, 2 из которых вышли из строя. Я надеюсь, что после некоторого перкуссионного обслуживания я смогу снова заставить один из вышедших из строя дисков работать достаточно долго, чтобы выполнить копирование на уровне блоков и удалить образ.

Планируется создать образы 4 (или всех 5) дисков с помощью dd, а затем попытаться восстановить массив на этих образах.

Есть ли что-то, что я сразу упустил, что сделало бы это невозможным? Если нет, как бы я:

  1. Скопируйте образ каждого устройства в файл
  2. Установите эти
  3. Перенастройте mdadm для использования этих образов в качестве устройств

Очевидно, что может произойти множество вещей, которые могут привести к повреждению данных, но есть основания полагать, что фактические данные на 4 дисках могут быть нетронутыми:

  1. Второй сбой диска мог быть из-за потери питания
  2. Данные, которые я хочу восстановить, не были записаны после первого сбоя

В общем, такой подход подойдет. Если у вас есть рабочие диски (и вы не ожидаете, что они выйдут из строя), вы также можете использовать устройство сопоставления для создания снимков наложения вместо полного копирования данных с дисков (хотя было бы неплохо иметь копии в качестве резервной копии).

После того, как у вас есть файлы изображений, вам нужно будет создать на их основе блочные устройства с обратной связью.

losetup /dev/loopX /path/to/imagefileX

после того, как это будет сделано, вы можете собрать ваш массив с использованием блочных устройств loopback. Если вы не можете восстановить последний отказавший диск, поэтому временные метки на образе избыточного диска будут отличаться от остальных, массив откажется собираться. Пока ты действительно интересуют только данные, записанные до сбоев, взгляните на «Восстановление отказавшего программного RAID» раздел документации Kernel RAID. Это должно помочь вам собрать массив с хотя бы некоторыми восстанавливаемыми данными.