Имейте два одинаковых диска по 2 ТБ в зеркальном пуле ZFS. К сожалению, при перезаписи начала дисков с ошибкой мы пытаемся подключить их через RAID-контроллер HP Smartarray P400 как отдельные логические тома RAID0, которые записывают туда свои собственные метаданные.
Таблица разделов (если она была создана zpool create - см. Ниже) и метки L0, L1 теряются. Метки и данные L1, L2 не повреждены, как видно в шестнадцатеричном формате.
Первоначально zpool был создан путем простого добавления необработанных устройств в пул зеркал, например: zpool create tank mirror / dev / sda / dev / sdb.
Есть ли способ вылечиться?
Наконец я обнаружил, что мой пул ZFS не поврежден. Старый сервер импортирует / экспортирует пул без каких-либо проблем. Единственная разница была в версии ядра ZFS и версиях модулей:
Старая версия: ядро 3.13.0-39-generic, SPL: v0.6.3-1 ~ надежный, ZFS: v0.6.3-3 ~ надежный
Новое: ядро 3.13.0-43-generic, SPL: v0.6.3-3 ~ trusty, ZFS: v0.6.3-5 ~ trusty
Кроме того, срезы zfs были созданы в отдельных разделах, начиная с блока 2048. Таким образом, RAID-контроллер вообще не влияет на метки L0, L1, а просто обнуляет таблицы разделов.
Единственное, что я сделал для импорта - восстановил таблицы разделов (zpool import по-прежнему показывает пул как 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, которая может помочь, но создание логических дисков HP RAID 0 - довольно продуманное действие. Было бы четкое предупреждение, что данные, содержащиеся на дисках, будут потеряны из-за метаданных Smart Array.
В общем, использование нескольких логических дисков RAID 0 для ZFS - плохая идея для аппаратного RAID-контроллера. Но это была серьезная ошибка.
Редактировать:
Я рекомендую задать этот вопрос Список рассылки ZFS-обсуждения или канал IRC.