我是 ZFS 的新手,我想知道它是如何工作的。我使用多个名为 Tank 的磁盘创建了一个池。此外,似乎创建了一个以池命名的默认数据集。尽管如此,我不需要/想要这个默认数据集,但我只想使用在默认数据集上创建的其他数据集:
# zpool status
pool: tank
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1-0 ONLINE 0 0 0
scsi-35000c5008576aa6b ONLINE 0 0 0
scsi-35000c50057cf7473 ONLINE 0 0 0
scsi-35000c50085f5f207 ONLINE 0 0 0
scsi-35000c50085c22ce3 ONLINE 0 0 0
scsi-35000c50085f5eea3 ONLINE 0 0 0
scsi-35000c5008521b903 ONLINE 0 0 0
scsi-35000c50085c13f57 ONLINE 0 0 0
scsi-35000c50057cf606f ONLINE 0 0 0
scsi-35000c50084989893 ONLINE 0 0 0
scsi-35000c5006367866f ONLINE 0 0 0
scsi-35000c50084269b7b ONLINE 0 0 0
spares
scsi-35000c5008576619b AVAIL
errors: No known data errors
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 24.8G 17.5T 39.9K /tank
tank/baculafull 24.8G 17.5T 24.8G legacy
tank/baculainc 38.1K 17.5T 38.1K /srv/bacula/baculainc
tank/idera 38.1K 17.5T 38.1K /srv/idera/
如您所见,tank 数据集自动挂载到 /tank 上。由于我不会在 /tank 中写入任何内容,因此我想知道是否可以阻止自动挂载根数据集。我是否应该像对 Tank/baculafull 数据集所做的那样将安装点更改为旧版?有一个更好的方法吗?
问候,
答案1
虽然将根数据集挂载点设置为旧版可以解决问题,但我发现还有更好的选择:
将挂载点设置为无:
zfs set mountpoint=none tank
将 canmount 设置为关闭:
zfs set canmount=off tank
使用第二个选项,您甚至可以将挂载点设置为任何值,以便其他数据集可以继承它,尽管根数据集不会被挂载。
检查这些链接:
答案2
是的,安装遗留的根数据集可能是一个不错的选择。另请参阅这个答案。
基本上,使用“legacy”安装意味着 ZFS 不会自动安装,但您可以随后安装(使用 fstab 或手动),或者选择不安装。
答案3
如果您不想挂载池的默认 ZFS 文件系统:
zpool create -m none ...
这将创建没有任何安装点的池。