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

ZFS в Linux: какой вариант точки монтирования при монтировании вручную по сценарию?

Я хочу создать zpool с ZFS в Linux (7.13) в Debian Buster. Проблема в том, что пул будет создан на основе зашифрованных LUKS дисков (не корневых, а только внешних). Эти диски расшифровываются и загружаются во время загрузки с помощью сценария, который я создал, поскольку они извлекают ключевой файл из внешнего источника.

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

Теперь я спрашиваю себя, какой вариант выбрать для точки монтирования при создании пула: никто или наследие

Страница руководства на самом деле не помогает, в чем реальная разница:

Если точка монтирования файловой системы установлена ​​на устаревшую, ZFS не пытается управлять файловой системой, и администратор несет ответственность за монтирование и размонтирование файловой системы. Поскольку пулы должны быть импортированы, прежде чем монтирование прежних версий может быть успешным, администраторы должны гарантировать, что попытки монтирования прежних версий выполняются только после завершения процесса импорта zpool во время загрузки. Например, на машинах, использующих systemd, опция mount

Кто-нибудь знает настоящие различия и как лучше всего выполнить ручную установку позже с помощью сценария?

Я использую zfs на люксах с переносным приводом. У меня ни разу не было проблем со стандартными точками монтирования. Монтирование не происходит до тех пор, пока пул не будет импортирован, и этого не произойдет до тех пор, пока том luks не будет разблокирован. Так что я думаю, что вы, возможно, слишком долго об этом думаете.

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

Я использую пулы ZFS на зашифрованных томах LUKS большую часть десятилетия. Работает нормально.

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

Чтобы избежать проблем в будущем, при создании и управлении пулом используйте имена, начинающиеся с luks- в /dev/mapper каталог для ссылки на устройства. Например, устройства:

lrwxrwxrwx. 1 root root 10 Jul 26 22:22 luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1046856 -> ../../dm-5
lrwxrwxrwx. 1 root root 10 Jul 26 22:22 luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1145175 -> ../../dm-4
lrwxrwxrwx. 1 root root 10 Jul 26 22:22 luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1165144 -> ../../dm-2
lrwxrwxrwx. 1 root root 10 Jul 26 22:22 luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WMC1P0DHH53R -> ../../dm-3

соответствуют:

  pool: srv
 state: ONLINE
  scan: scrub repaired 0B in 0h42m with 0 errors on Tue Jul 30 14:42:04 2019
config:

        NAME                                                 STATE     READ WRITE CKSUM
        srv                                                  ONLINE       0     0     0
          mirror-0                                           ONLINE       0     0     0
            luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1046856  ONLINE       0     0     0
            luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1145175  ONLINE       0     0     0
          mirror-1                                           ONLINE       0     0     0
            luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1165144  ONLINE       0     0     0
            luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WMC1P0DHH53R  ONLINE       0     0     0

Этот пул создается с помощью:

zpool create -o ashift=12 srv \
    mirror \
        luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1046856 \
        luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1145175 \
    mirror \
        luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WCC1P1165144 \
        luks-ata-WDC_WD2000FYYZ-01UL1B1_WD-WMC1P0DHH53R

Вам не нужно использовать none или legacy в качестве точки монтирования, даже если есть некоторая задержка с дисками LUKS, и если вы расшифруете их скриптом, пока вы добавите zpool import <poolname> после загрузки дисков. Поскольку в то время, когда ZFS хочет импортировать пулы, они могут быть недоступны, что можно увидеть в сообщении в syslog