Is there a way to set multiple ZFS filesystem properties at once?

My normal ZFS filesystem build process may look something like:

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 seems to allow setting options at filesystems and pool creation using the -o flag. However, in many cases, I need to set filesystem parameters at the top level (for inheritance by new filesystems) rather than define locally.

Is there any way to streamline the multiple zfs set parameter=value lines into a single command line?

6
задан 9 October 2016 в 18:18
2 ответа

Зависит от реализации.

На 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, вам это нужно. :)

5
ответ дан 3 December 2019 в 00:24

Я понимаю, что это может быть немного поздно, но это то, что -O (заглавная буква) означает: корневой набор данных пула. Строчная буква -o - для свойств пула. Я использовал это в Ubuntu / ZoL , но FreeBSD , похоже, тоже имеет это. О, не могли бы вы взглянуть на это, кажется Solaris тоже!

2
ответ дан 3 December 2019 в 00:24

Теги

Похожие вопросы