Мой обычный процесс сборки файловой системы 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
строки в единую командную строку?
Зависит от реализации.
На 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
#
Так как у меня нет Linux с zfs, вам стоит узнать об этом. :)
Я понимаю, что это может быть немного поздно, но вот что -O
(заглавная буква) означает: корневой набор данных пула. Строчная буква -o
предназначен для бассейнов. Я использовал это в Ubuntu / ZoL но FreeBSD вроде бы тоже есть. О, вы бы посмотрели на это, кажется Солярис тоже!