我的正常 ZFS 文件系统构建过程可能如下所示:
zpool create vol1 -o autoexpand=on -o autoreplace=on mirror nvme0n1 nvme1n1 -f
zfs set compression=lz4 vol1
zfs set atime=off vol1
zfs set xattr=sa vol1
zfs set acltype=posixacl vol1
zfs create vol1/data -o mountpoint=/data
ZFS 似乎允许使用该-o
标志在文件系统和池创建时设置选项。但是,在许多情况下,我需要在顶层设置文件系统参数(以供新文件系统继承),而不是在本地定义。
有什么方法可以将多zfs set parameter=value
行简化为一行命令行?
答案1
取决于实施情况。
在 FreeBSD (10.3-STABLE) 上,您可以:
# zfs create zfsroot/test
# zfs set compression=lzjb sync=disabled zfsroot/test
#
在 Solaris (11.2) 上您不能:
# zfs create rpool/test
# zfs set compression=on sync=disabled rpool/test
cannot open 'sync=disabled': invalid dataset name
#
由于我没有带有 zfs 的 Linux,所以这个就留给你自己去发现吧。:)
答案2
我意识到这可能有点晚了,但这就是-O
(大写字母)的用途:池的根数据集。小写字母-o
代表池属性。我在Ubuntu/ZoL但FreeBSD似乎也有。哦,你看看这个,似乎索拉里斯也一样!