Вопрос или проблема
Недавно я купил NAS QNap и решил попробовать несколько ОС для NAS, среди которых TrueNAS. После создания пула ZFS на TrueNAS и передачи нескольких файлов, я разочаровался в TrueNAS и решил попробовать ОС QNap (QuTS). Обе ОС установлены на NAS. Я прошел через инициализацию QuTS, заметил, что QuTS не автоматически импортировал пул ZFS, и разочаровался в интерфейсе QuTS. После этого я решил переустановить TrueNAS вместе с QuTS (QuTS стер диск, на котором был установлен TrueNAS, который отличается от дисков в пуле ZFS). И это текущее состояние дел.
Пул ZFS состоит из 3 дисков емкостью 5 ТБ каждый. TrueNAS отображает пул в своем интерфейсе, но не может его смонтировать. Пул называется main-pool
. Ниже приведены разные команды, которые я пробовал, и их результаты:
# zpool import -a
нет доступных для импорта пулов
# zpool status -v
пул: boot-pool
состояние: ONLINE
сканирование: scrub исправил 0B за 00:00:08 с 0 ошибками в Вск 22 Сен 03:45:10 2024
конфигурация:
ИМЯ СОСТОЯНИЕ ЧТЕНИЕ ЗАПИСЬ CKSUM
boot-pool ONLINE 0 0 0
nvme0n1p3 ONLINE 0 0 0
ошибки: Нет известных ошибок данных
# zpool status -v main-pool
не удается открыть 'main-pool': такого пула не существует
# zdb -l /dev/sd{b,c,e}
не удалось распаковать метку 0
не удалось распаковать метку 1
------------------------------------
МЕТКА 2 (Плохая контрольная сумма метки)
------------------------------------
версия: 5000
имя: 'main-pool'
состояние: 0
txg: 4
pool_guid: 8298165464761202083
errata: 0
hostid: 1555077055
hostname: 'nas'
top_guid: 4887568585043273647
guid: 12714426885291094564
vdev_children: 1
vdev_tree:
тип: 'raidz'
id: 0
guid: 4887568585043273647
nparity: 1
metaslab_array: 128
metaslab_shift: 34
ashift: 12
asize: 15002922123264
is_log: 0
create_txg: 4
children[0]:
тип: 'диск'
id: 0
guid: 12714426885291094564
путь: '/dev/disk/by-partuuid/8b808c7a-cacd-46d1-b400-9f8c71d51b30'
whole_disk: 0
create_txg: 4
children[1]:
тип: 'диск'
id: 1
guid: 822100609061977128
путь: '/dev/disk/by-partuuid/8965dbb6-9484-4da5-ba1b-d33303b19ae5'
whole_disk: 0
create_txg: 4
children[2]:
тип: 'диск'
id: 2
guid: 1731788408784132969
путь: '/dev/disk/by-partuuid/fae9eb3e-e782-4115-bbc9-cde4dc72c408'
whole_disk: 0
create_txg: 4
features_for_read:
com.delphix:hole_birth
com.delphix:embedded_data
com.klarasystems:vdev_zaps_v2
метки = 2 3
Странно, но, похоже, я могу импортировать каждый диск отдельно по пути устройства:
# zpool import -d /dev/sdb
пул: main-pool
id: 8298165464761202083
состояние: UNAVAIL
статус: Пул последний раз использовался другой системой.
действие: Пул не может быть импортирован из-за поврежденных устройств или данных.
см.: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
конфигурация:
main-pool UNAVAIL недостаточно реплик
raidz1-0 UNAVAIL недостаточно реплик
sdb ONLINE
8965dbb6-9484-4da5-ba1b-d33303b19ae5 UNAVAIL
fae9eb3e-e782-4115-bbc9-cde4dc72c408 UNAVAIL
Но не все вместе:
# zpool import -d /dev/sdb -d /dev/sdc -d /dev/sde
пул: main-pool
id: 8298165464761202083
состояние: UNAVAIL
статус: Пул последний раз использовался другой системой.
действие: Пул не может быть импортирован из-за поврежденных устройств или данных.
см.: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-EY
конфигурация:
main-pool UNAVAIL недостаточно реплик
raidz1-0 UNAVAIL недостаточно реплик
sdb UNAVAIL недействительная метка
sdc UNAVAIL недействительная метка
sde UNAVAIL недействительная метка
Так что… Мой пул ZFS потерян?
Если да, то как люди восстанавливают пул ZFS, когда система вышла из строя до того, как пул ZFS был корректно экспортирован? Например, если диск, содержащий систему, выходит из строя?
Ответ или решение
Ваша ситуация с ZFS пулом действительно проблематичная, но не безнадежная. Давайте поэтапно рассмотрим, как вы можете попытаться восстановить доступ к вашему ZFS пулу после того, как он не был корректно экспортирован из TrueNAS.
Общие Соображения
Как правило, ZFS пул может быть не доступен по следующим причинам:
- Не экспортированный пул: Если система, использующая ZFS, была неправильно выключена или переустановлена, это может повредить метаданные пула.
- Несоответствие версии: Разные версии ZFS могут иметь несовместимости, хотя в вашем случае обе ОС (TrueNAS и QuTS) основаны на ZFS.
- Повреждение дисков: Физическое повреждение дисков также может препятствовать импорту пула.
Теперь давайте перейдем к шагам, которые вы можете предпринять для восстановления доступа к вашему пулу.
Шаги Восстановления
-
Проверьте Диски: Используйте
smartctl
или аналогичную утилиту, чтобы убедиться, что ваши диски «живы» и не имеют физических ошибок.smartctl -a /dev/sd[b-e]
-
Попробуйте Импортировать with Force:
Если ZFS уверен, что пул был неправильно закрыт, вы можете попробовать импортировать его с использованием ключа-f
, который принудительно импортирует пул:zpool import -f main-pool
-
Проверьте доступные метки (labels):
Возможно, метки ваших дисков повреждены. Используйтеzdb
для просмотра информации о метках:zdb -l /dev/sd[b-e]
-
Импортируйте Пул с Идентификаторами:
Если вы видите, что некоторые из дисков могут быть доступны, попробуйте указать их явно по UUID:zpool import -d /dev/disk/by-partuuid/8965dbb6-9484-4da5-ba1b-d33303b19ae5 main-pool
-
Используйте Альтернативный Вариант Импорта:
Если ваш пул действительно «непристойный», и это не помогает, попробуйте импортировать без указания дисков, но с ключом-m
:zpool import -o cachefile=/etc/zfs/zpool.cache -m /mnt/main-pool main-pool
-
Проверьте Пул на Наличие Ошибок:
Если вам удастся импортировать пул, выполните:zpool scrub main-pool zpool status
Это может выявить любые проблемы с целостностью данных и позволяет восстановить любые поврежденные данные.
-
Обратитесь к Ресурсам Общества:
Если вы всё ещё не можете импортировать пул, возможно, стоит обратиться на форумах по ZFS или в соответствующей поддержке, где опытные пользователи могут предложить специфические решения на основе вашего вывода.
Заключение
Восстановление ZFS пула после неправильно выполненного экспорта — это сложный процесс, но при последовательном и осторожном подходе у вас есть шанс. Всегда создавайте резервные копии ваших данных на случай, если что-то пойдет не так, и помните, что ZFS спроектирован с учетом восстановления и устойчивости к ошибкам, поэтому, скорее всего, ваши данные всё ещё находятся на месте.