
Я пытаюсь понять, как работает ZFS, когда я делаю, например, снимок. Когда я использую zfs list на машине, я получаю некоторые точки монтирования и некоторые пути. Например, я получаю что-то вроде этого:
rpool/ROOT/s10x_u10_wos_17b 5.3gb 58.2gb 5.3gb /
Я получаю в качестве точки монтирования корень /
.
Моя первая мысль была, что есть фактический файл, и когда я перешел в каталог, /rpool
там не было ROOT-каталога. После некоторых раздумий я увидел, что /rpool/ROOT
он на самом деле смонтирован на legacy, так что он должен быть где-то еще.
Может ли кто-нибудь объяснить, где находятся файлы при монтировании в устаревшем режиме и, может быть, почему используется этот устаревший режим?
решение1
Я не понимаю назначения устаревшей точки монтирования.
ZFS предоставляет иерархическую структуру наборов данных в пуле. В вашем случае у вас есть пул с именем rpool
и как минимум следующие наборы данных:
rpool
rpool/ROOT
rpool/ROOT/s10x_u10_wos_17b
Каждый из этих наборов данных часто представляет собой файловую систему (хотя вместо этого он может быть томом/блочным устройством).
Так как каждый из этих наборов данных, скорее всего, является полноценной/независимой файловой системой, каждый из них может быть смонтирован или не смонтирован независимо.
По умолчанию ZFS монтирует дочерние наборы данных в их логическом расположении внутри родительского... Если набор rpool
данных смонтирован в /rpool
(т. е. по умолчанию), то вы обнаружите, что rpool/ROOT
набор данных смонтирован в /rpool/ROOT
и т. д.
Это контролируется свойством mountpoint
— запустите его zfs get -rt filesystem mountpoint
, чтобы увидеть его текущее значение для каждого набора данных.
- Если значение — это путь, то ZFS автоматически смонтирует набор данных по этому пути при импорте пула. По умолчанию (как упоминалось выше) монтируется файловая система под родительской.
- Если значение равно
none
, то ZFS не будет монтировать файловую систему, а файловая системане могумонтироваться с использованиемmount
любого из них. - Если значение равно
legacy
, то ZFS не будет монтировать файловую систему, но вы можете использоватьmount
иumount
для управления точкой монтирования файловой системы вручную. Вы также можете использовать/etc/fstab
для управления автоматическим монтированием.
В вашей ситуации rpool/ROOT/s10x_u10_wos_17b
набор данных смонтирован в /
(т. е. это ваша корневая файловая система). Чтобы добиться этого, вы можете либо установить mountpoint=/
и позволить ZFS управлять всем, либо установить mountpoint=legacy
и смонтировать его явно.
Поскольку это ваша корневая файловая система, позволить ZFS управлять ею за вас не представляется возможным, и вам придется явно указать точку монтирования.
Следовательно, rpool/ROOT/s10x_u10_wos_17b
имеет mountpoint=legacy
.
решение2
Устаревшая точка монтирования обычно используется, когда файловые системы монтируются с помощью fstab
.
Из страницы руководства FreeBSD:
При необходимости файловыми системами ZFS можно управлять и с помощью традиционных инструментов (mount(8), umount(8), fstab(5)). Если точка монтирования файловой системы установлена на устаревшую версию, ZFS не пытается управлять файловой системой, и администратор несет ответственность за монтирование и размонтирование файловой системы.