Члены пула ZFS начинают перезаписывать сектора, включая таблицу разделов и метки L0 L1. Данные и L2 L3 метки не повреждены. Как восстановить?
Имейте два идентичных диска 2Tb в зеркальном пуле ZFS. К сожалению, перезаписанный запуск дисков с ошибкой пытается подключить их через RAID-контроллер HP Smartarray P400 в виде отдельных логических томов RAID0, которые записывают свои собственные метаданные туда.
Таблица разделов (если она была создана zpool create - см. Ниже) и метки L0, L1 теряются. Метки и данные L1, L2 не повреждены, как показано в шестнадцатеричном формате.
Первоначально zpool был создан простым добавлением необработанных устройств в зеркальный пул следующим образом: zpool create tank mirror /dev/sda /dev/sdb.
Есть ли способ восстановить?
2 ответа
Наконец я обнаружил, что мой пул ZFS не поврежден. Старый сервер импортирует / экспортирует пул без проблем. Единственная разница была в версии ядра ZFS и версиях модулей:
Старый: ядро 3.13.0-39-generic, SPL: v0.6.3-1~trusty, ZFS: v0.6.3-3~trusty
Новое: ядро 3.13.0-43-generic, SPL: v0.6.3-3~trusty, ZFS: v0.6.3-5~trusty
И, срезы zfs были сделаны в одиночных разделах, начиная с блока 2048. Таким образом, контроллер RAID вообще не влияет на метки L0,L1, только обнуляет таблицы разделов.
Единственное, что я сделал для импорта - восстановил таблицы разделов (импорт zpool по-прежнему отображает пул как FAULTY) и создал каталог / dev / disk / myzfs и сделал символические ссылки на устройства разделов членов zpool, аналогично / dev / disk / by-id есть (попытка "zpool import -d /dev/disk/by-id" показывает пул как FAULTY).
"zpool import -d / dev / disk / myzfs" показывает мой пул как ONLINE, а "zpool import -d / dev / disk / myzfs nas" успешно выполнен.
К сожалению, я не смог воспроизвести комбинацию ядра-SPL-ZFS и комбинации модулей, как на старом сервере - не нашел, как получить старые пакеты ppa: zfs-native / stable. Таким образом, я не мог сказать, является ли это изменением ревизии модуля или чем-то еще.
Да, вы сделали ваши диски непригодными для использования...
Может быть, есть какая-то магия ZDB, которая может помочь, но создание RAID 0 HP Logical Drive - довольно обдуманное действие. Было бы четкое предупреждение о том, что данные, содержащиеся на дисках, будут потеряны из-за метаданных Smart Array.
В целом, использование нескольких логических дисков RAID 0 для ZFS является плохой идеей аппаратного RAID-контроллера. Но это была плохая ошибка.
Редактировать:
Я рекомендую перенести этот вопрос в список рассылки ZFS-обсудить или на канал IRC.