我正常的ZFS文件系统的构build过程可能如下所示:
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标志设置文件系统和池创build选项。 但是,在许多情况下,我需要在顶层设置文件系统参数(用于由新文件系统inheritance),而不是在本地定义。
有什么办法可以将多个zfs set parameter=value行简化为一个命令行吗?
取决于实施。
在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,所以这个是给你发现的。 🙂
我意识到这可能有点晚了,但这就是-O (大写字母)的用途:池的根数据集。 小写字母-o用于游泳池属性。 我在Ubuntu / ZoL中使用了这个,但FreeBSD似乎也有。 哦,你会看看,看来Solaris也是!