Я хочу создать 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