The Oracle ZFS Storage Appliance driver, version 1.0.0, enables the Oracle ZFS Storage Appliance (ZFSSA) to be used seamlessly as a shared storage resource for the OpenStack File System service (manila). The driver provides the ability to create and manage NFS and CIFS shares on the appliance, allowing virtual machines to access the shares simultaneously and securely.
Oracle ZFS Storage Appliance Software version 2013.1.2.0 or later.
Enable RESTful service on the ZFSSA Storage Appliance.
Create a new user on the appliance with the following authorizations:
scope=stmf - allow_configure=true
scope=nas - allow_clone=true, allow_createProject=true, allow_createShare=true, allow_changeSpaceProps=true, allow_changeGeneralProps=true, allow_destroy=true, allow_rollback=true, allow_takeSnap=true
You can create a role with authorizations as follows:
zfssa:> configuration roles
zfssa:configuration roles> role OpenStackRole
zfssa:configuration roles OpenStackRole (uncommitted)> set description="OpenStack Manila Driver"
zfssa:configuration roles OpenStackRole (uncommitted)> commit
zfssa:configuration roles> select OpenStackRole
zfssa:configuration roles OpenStackRole> authorizations create
zfssa:configuration roles OpenStackRole auth (uncommitted)> set scope=stmf
zfssa:configuration roles OpenStackRole auth (uncommitted)> set allow_configure=true
zfssa:configuration roles OpenStackRole auth (uncommitted)> commit
You can create a user with a specific role as follows:
zfssa:> configuration users
zfssa:configuration users> user cinder
zfssa:configuration users cinder (uncommitted)> set fullname="OpenStack Manila Driver"
zfssa:configuration users cinder (uncommitted)> set initial_password=12345
zfssa:configuration users cinder (uncommitted)> commit
zfssa:configuration users> select cinder set roles=OpenStackRole
Create a storage pool.
An existing pool can also be used if required. You can create a pool as follows:
zfssa:> configuration storage
zfssa:configuration storage> config pool
zfssa:configuration storage verify> set data=2
zfssa:configuration storage verify> done
zfssa:configuration storage config> done
Create a new project.
You can create a project as follows:
zfssa:> shares
zfssa:shares> project proj
zfssa:shares proj (uncommitted)> commit
Create a new or use an existing data IP address.
You can create an interface as follows:
zfssa:> configuration net interfaces ip
zfssa:configuration net interfaces ip (uncommitted)> set v4addrs=127.0.0.1/24
v4addrs = 127.0.0.1/24 (uncommitted)
zfssa:configuration net interfaces ip (uncommitted)> set links=vnic1
links = vnic1 (uncommitted)
zfssa:configuration net interfaces ip (uncommitted)> set admin=false
admin = false (uncommitted)
zfssa:configuration net interfaces ip (uncommitted)> commit
It is required that both interfaces used for data and management are configured properly. The data interface must be different from the management interface.
Configure the cluster.
If a cluster is used as the manila storage resource, the following verifications are required:
Note
A short service interruption occurs during failback or takeover, but once the process is complete, manila should be able to access the pool through the data IP.
The Oracle ZFSSA driver supports these options:
Configuration option = Default value | Description |
---|---|
[DEFAULT] | |
zfssa_auth_password = None |
(String) ZFSSA management authorized userpassword. |
zfssa_auth_user = None |
(String) ZFSSA management authorized username. |
zfssa_data_ip = None |
(String) IP address for data. |
zfssa_host = None |
(String) ZFSSA management IP address. |
zfssa_manage_policy = loose |
(String) Driver policy for share manage. A strict policy checks for a schema named manila_managed, and makes sure its value is true. A loose policy does not check for the schema. |
zfssa_nas_checksum = fletcher4 |
(String) Controls checksum used for data blocks. |
zfssa_nas_compression = off |
(String) Data compression-off, lzjb, gzip-2, gzip, gzip-9. |
zfssa_nas_logbias = latency |
(String) Controls behavior when servicing synchronous writes. |
zfssa_nas_mountpoint = |
(String) Location of project in ZFS/SA. |
zfssa_nas_quota_snap = true |
(String) Controls whether a share quota includes snapshot. |
zfssa_nas_rstchown = true |
(String) Controls whether file ownership can be changed. |
zfssa_nas_vscan = false |
(String) Controls whether the share is scanned for viruses. |
zfssa_pool = None |
(String) ZFSSA storage pool name. |
zfssa_project = None |
(String) ZFSSA project name. |
zfssa_rest_timeout = None |
(String) REST connection timeout (in seconds). |
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.