Manila ZFSonLinux share driver uses ZFS file system for exporting NFS shares. Written and tested using Linux version of ZFS.
exportfs
app.in_sync
means latest sync was successful.
Time range between syncs equals to the value
of the replica_state_update_interval
configuration global option.zfsonlinux:compression
.
It can contain any value that ZFS app supports.
But if it is disabled through the configuration option
with the value compression=off
, then it will not be used.The ZFSonLinux share driver has the following restrictions:
Promote share replica
operation will switch roles of
current secondary
replica and active
. It does not make more than
one active replica available.SaMBa
based sharing.Thick provisioning
capability.Promote share replica
operation will make ZFS file system that became
secondary as RO only on NFS level. On ZFS level system will
stay mounted as was - RW.The following parameters need to be configured in the manila configuration file for back-ends that use the ZFSonLinux driver:
share_driver
= manila.share.drivers.zfsonlinux.driver.ZFSonLinuxShareDriverdriver_handles_share_servers
= Falsereplication_domain
= custom_str_value_as_domain_namezfs_share_export_ip
= <user_facing IP address of ZFS host>zfs_service_ip
= <IP address of service network interface of ZFS host>zfs_zpool_list
= zpoolname1,zpoolname2/nested_dataset_for_zpool2zfs_dataset_creation_options
= <list of ZFS dataset options>zfs_dataset_name_prefix
= <prefix>zfs_dataset_snapshot_name_prefix
= <prefix>zfs_use_ssh
= <boolean_value>False
if ZFS located on the same host as manila-share service.True
if manila-share service should use SSH
for ZFS configuration.zfs_ssh_username
= <ssh_username>zfs_use_ssh
is set to True
.zfs_ssh_user_password
= <ssh_user_password>zfs_ssh_username
of ZFS host.zfs_use_ssh
is set to True
.zfs_ssh_private_key_path
= <path_to_private_ssh_key>zfs_use_ssh
is set to True
.zfs_share_helpers
= NFS=manila.share.drivers.zfsonlinux.utils.NFSviaZFSHelperzfs_replica_snapshot_prefix
= <prefix>update replica
operation.Configuration option = Default value | Description |
---|---|
[DEFAULT] | |
zfs_dataset_creation_options = None |
(List) Define here list of options that should be applied for each dataset creation if needed. Example: compression=gzip,dedup=off. Note that, for secondary replicas option ‘readonly’ will be set to ‘on’ and for active replicas to ‘off’ in any way. Also, ‘quota’ will be equal to share size. Optional. |
zfs_dataset_name_prefix = manila_share_ |
(String) Prefix to be used in each dataset name. Optional. |
zfs_dataset_snapshot_name_prefix = manila_share_snapshot_ |
(String) Prefix to be used in each dataset snapshot name. Optional. |
zfs_migration_snapshot_prefix = tmp_snapshot_for_share_migration_ |
(String) Set snapshot prefix for usage in ZFS migration. Required. |
zfs_replica_snapshot_prefix = tmp_snapshot_for_replication_ |
(String) Set snapshot prefix for usage in ZFS replication. Required. |
zfs_service_ip = None |
(String) IP to be added to admin-facing export location. Required. |
zfs_share_export_ip = None |
(String) IP to be added to user-facing export location. Required. |
zfs_share_helpers = NFS=manila.share.drivers.zfsonlinux.utils.NFSviaZFSHelper |
(List) Specify list of share export helpers for ZFS storage. It should look like following: ‘FOO_protocol=foo.FooClass,BAR_protocol=bar.BarClass’. Required. |
zfs_ssh_private_key_path = None |
(String) Path to SSH private key that should be used for SSH’ing ZFS storage host. Not used for replication operations. Optional. |
zfs_ssh_user_password = None |
(String) Password for user that is used for SSH’ing ZFS storage host. Not used for replication operations. They require passwordless SSH access. Optional. |
zfs_ssh_username = None |
(String) SSH user that will be used in 2 cases: 1) By manila-share service in case it is located on different host than its ZFS storage. 2) By manila-share services with other ZFS backends that perform replication. It is expected that SSH’ing will be key-based, passwordless. This user should be passwordless sudoer. Optional. |
zfs_use_ssh = False |
(Boolean) Remote ZFS storage hostname that should be used for SSH’ing. Optional. |
zfs_zpool_list = None |
(List) Specify list of zpools that are allowed to be used by backend. Can contain nested datasets. Examples: Without nested dataset: ‘zpool_name’. With nested dataset: ‘zpool_name/nested_dataset_name’. Required. |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.