有没有办法可以一次设置多个 ZFS 文件系统属性?

有没有办法可以一次设置多个 ZFS 文件系统属性?

我的正常 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/ZoLFreeBSD似乎也有。哦,你看看这个,似乎索拉里斯也一样!

相关内容