Пул ZFS исчезает после перезагрузки в Debian 8

1424
Peter B

Я начинаю работать с ZFS, и у меня есть основы, но у меня проблема с поддержанием работы.

Пулы созданы, монтируются, я могу сохранять данные и видеть активность на диске ... все выглядит хорошо. Однако после перезагрузкиzpool list сообщение «нет доступных пулов».

Я нашел несколько статей по этому поводу в CentOS, в которых говорится о том, что сценарий запуска для zfs является исправлением, но до сих пор я не нашел ни одного в Debian.

Я использую Backport Debian zfs-dkmsпакет, который включает в себя зависимость libzfs2linux, libzpool2linux, bfs-zedи zfsutils-linux. Я также работаю в initрежиме SysV вместоsystemd .

Я пытался воссоздать пул со /dev/disk/by-idстандартными /dev/sdxустройствами; Я пробовал редактирование /etc/default/zfsи настройку (не все сразу):

ZFS_MOUNT='yes' ZPOOL_IMPORT_ALL_VISIBLE='yes' ZPOOL_IMPORT_PATH="/dev/disk/by-vdev:/dev/disk/by-id" ZPOOL_IMPORT_PATH="/dev" ZFS_INITRD_POST_MODPROBE_SLEEP='5' 

Я вижу имена конфигурации моего пула в /etc/zfs/zpool.cache; Я могу вручную заново все импортировать, zpool import <pool-name>и все данные есть.

Это проблема синхронизации при загрузке? Мне не хватает возможных идей, и любые отзывы будут оценены.

4
Вы используете Dracut или аналогичный способ создания initramfs? Вы застряли в Dracut консоли? tukan 6 лет назад 0
Я не ... Прямо из коробки, Джесси, дебиан. В этот момент я верю, что сценарий инициализации отсутствует. Вероятно, что-то, что обрабатывается systemd, но не тестировалось в устаревших настройках сценария инициализации. Peter B 6 лет назад 0
Не могли бы вы предоставить скриншот или dmesg, где он висит? tukan 6 лет назад 0
Здравствуйте @tukan, я думаю, что я не объясняю себя правильно. Система не зависает и не падает. Я не загружаюсь из ZFS, я использую ZFS в качестве файловой системы диска с данными. Система работает нормально, но ни один из дисков ZFS не появляется и не монтируется. Я должен вручную импортировать их в Zpool, а затем они в порядке. Peter B 6 лет назад 0
Ах, я наконец-то понял :). Я опубликую возможный подход. tukan 6 лет назад 0
Так как же это выглядит? Работает ли это для вас? tukan 6 лет назад 0

3 ответа на вопрос

3
Peter B

Вчера вечером я наткнулся на список рассылки, который разрешает загадку здесь. Это означает, zfs_autoimport_disableчто теперь компилируется как установлено в 1 / true по умолчанию! Поэтому не имеет значения, что настроено /etc/default/zfs, пулы никогда не будут импортироваться при загрузке модуля zfs.

Поэтому для меня исправлением было добавить /etc/modprobe.d/файл конфигурации (назовите его как хотите) и определить options zfs zfs_autoimport_disable=0. Теперь пулы импортируются, и файловые системы zfs можно монтировать либо с помощью zfs, либо в устаревшем режиме.

Я не понимаю это решение, но сейчас все работает, как ожидалось ...

Ха-ха, такая простая вещь. Примите решение для дальнейшего использования. tukan 6 лет назад 0
1
tukan

Сначала сделайте резервную копию, /etc/default/zfsа затем удалите ее.

Я бы порекомендовал пойти на legacyподход. Это удалит функцию автоматического монтирования zfs и положится на /etc/fstabинформацию о монтировании. Я также рекомендую использовать /dev/disk/by-idвсегда, так как это наименее болезненная установка.

Поскольку я не знаю ваших настроек (пул / наборы данных), я приведу пример:

  1. Сначала перечислите свой набор данных, который вы хотите: zfs list возьмите набор данных, который вы хотите, например,storagepool/backup
  2. Размонтируйте storagepool/backupzfs, если он установлен. (Вы можете проверить через mount | grep zfsили zfs mount)
  3. Перечислите ваши точки монтирования с помощью zfs get mountpoint:
NAME PROPERTY VALUE SOURCE storagepool/backup mountpoint /storagepool/backup default 
  1. Измените точку монтирования zfs set mountpoint=legacy storagepool/backup

  2. Теперь вам нужно отредактировать с /etc/fstabпомощью sudoили rootвведите вторую строку (первая строка предназначена для пояснения деталей)

 <device alias dataset> <mountpoint> <filesystem type> <options> <dump> <fsckorder> storagepool/backup /mnt/backup zfs defaults 0 0 

Подробное объяснение:

  • Первое поле (storagepool / резервный), как правило, физическое устройство / удаленная файловая система, которая должна быть описано, в вашем случае пул / наборе данных (Примечание: нет ведущего обратное косой черты ( «/») для ZfS набора данных !! (причинила мне много неприятностей) )
  • Второе поле (/ шоссе / резервное копирование) определяет точку монтирования, где
    файловая система будет смонтирована.
  • Третье поле (ZFS) является типом файловой системы на устройстве из
    первого поля.
  • Четвертое поле (NOAUTO, SUID, ро, пользователь) является ( по умолчанию) список опций, монтирующие следует использовать при монтировании файловой системы.
  • Пятое поле (0), чтобы решить, если файловая система должна быть резервной копии. Если ноль, то dump будет игнорировать эту файловую систему.
  • Шестое поле (0) используется FSCK (файловая система проверки полезности), чтобы определить порядок, в котором должны быть проверены файловые системы.

Опция по умолчанию означает: rw, suid, dev, exec, auto, nouser, and async Если вы используете SSD, что маловероятно, я рекомендую использовать опцию noatimeafter defaults.

Теперь при перезагрузке файловая система zfs должна быть смонтирована в соответствии с /etc/fstabфайлом.

Важное примечание: если вы хотите смонтировать наследие zfs, вы должны использовать mount -t zfs <dataset> <mountpoint>вместо zfs mount.

Привет, Тукан, я уже определил устаревшую опцию, и они находятся в fstab, но это не решило проблему. Peter B 6 лет назад 0
Тукан, также большое спасибо за ваше четкое и подробное размещение конфигурации fstab. Это очень красиво опубликовано и четко определено. Это будет очень полезно. Peter B 6 лет назад 0
Я рада что тебе нравится! tukan 6 лет назад 0
0
A. Bee

@ Peter-B Ваше решение решило мою проблему, так как zpool не удалось импортировать при перезагрузке. Большое спасибо. Небольшое пояснение для тех, кто не знаком с синтаксисом modprobe conf: опция должна быть в одной строке, т.е.

options zfs zfs_autoimport_disable=0

Добро пожаловать в Супер пользователя! Формат вопросов и ответов сайта оставляет за собой ответы на вопросы. Этот пост действительно комментарий, а не ответ. Вы всегда можете комментировать свои собственные сообщения, и, когда у вас будет достаточно [репутации] (http://superuser.com/help/whats-reputation), вы сможете [комментировать любой пост] (http: // superuser. ком / помощь / льготы / комментарий). fixer1234 5 лет назад 0

Похожие вопросы