Existe uma maneira de definir várias propriedades do sistema de arquivos ZFS de uma só vez?

5

Meu processo de compilação normal do sistema de arquivos ZFS pode ser parecido com:

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

O ZFS parece permitir opções de configuração em sistemas de arquivos e criação de conjuntos usando o sinalizador -o . No entanto, em muitos casos, preciso definir parâmetros do sistema de arquivos no nível superior (para herança por novos sistemas de arquivos) em vez de definir localmente.

Existe alguma maneira de simplificar as múltiplas linhas zfs set parameter=value em uma única linha de comando?

    
por ewwhite 09.10.2016 / 17:18

2 respostas

5

Depende da implementação.

No FreeBSD (10.3-STABLE) você pode:

# zfs create zfsroot/test
# zfs set compression=lzjb sync=disabled zfsroot/test
#

E no Solaris (11.2) você não pode:

# zfs create rpool/test
# zfs set compression=on sync=disabled rpool/test
cannot open 'sync=disabled': invalid dataset name
#

Como não tenho um Linux com zfs, este é para você descobrir. :)

    
por 09.10.2016 / 20:35
2

Eu percebo que isso pode ser um pouco tarde, mas é para isso que a -O (letra maiúscula) é: o conjunto de dados raiz do pool. Letra minúscula -o é para propriedades do conjunto. Eu usei isso em Ubuntu / ZoL , mas FreeBSD parece ter também. Ah, você olharia para isso, parece Solaris também!

    
por 20.06.2017 / 17:24