Oracle ZFS Storage Appliances (ZFSSAs) provide advanced software to protect data, speed tuning and
troubleshooting, and deliver high performance and high availability.
Through the Oracle ZFSSA iSCSI Driver, OpenStack Block Storage can use an Oracle ZFSSA as a block storage resource.
The driver enables you to create iSCSI volumes that an OpenStack Block Storage server can allocate to any virtual machine running on a compute host.
The Oracle ZFSSA iSCSI Driver, version 1.0.0
, supports ZFSSA software release 2013.1.2.0
and 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 Cinder 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 Cinder Driver" zfssa:configuration users cinder (uncommitted)> set initial_password=12345 zfssa:configuration users cinder (uncommitted)> commit zfssa:configuration users> select cinder set roles=OpenStackRole
Note You can also run this workflow to automate the above tasks.
Ensure that the ZFSSA iSCSI service is online. If the ZFSSA iSCSI service is not online, enable the service by using the BUI, CLI or REST API in the appliance.
zfssa:> configuration services iscsi zfssa:configuration services iscsi> enable zfssa:configuration services iscsi> show Properties: <status>= online ...
Define the following required properties in the cinder.conf
file:
volume_driver = cinder.volume.drivers.zfssa.zfssaiscsi.ZFSSAISCSIDriver san_ip =myhost
san_login =username
san_password =password
zfssa_pool =mypool
zfssa_project =myproject
zfssa_initiator_group =default
zfssa_target_portal =w.x.y.z:3260
zfssa_target_interfaces =e1000g0
Optionally, you can define additional properties.
Target interfaces can be seen as follows in the CLI:
zfssa:> configuration net interfaces zfssa:configuration net interfaces> show Interfaces: INTERFACE STATE CLASS LINKS ADDRS LABEL e1000g0 up ip e1000g0 1.10.20.30/24 Untitled Interface ...
Note | |
---|---|
Do not use management interfaces for |
Create and delete volumes
Extend volume
Create and delete snapshots
Create volume from snapshot
Delete volume snapshots
Attach and detach volumes
Get volume stats
Clone volumes
The Oracle ZFSSA iSCSI Driver supports these options:
Configuration option = Default value | Description |
---|---|
[DEFAULT] | |
zfssa_initiator = | (StrOpt) iSCSI initiator IQNs. (comma separated) |
zfssa_initiator_group = | (StrOpt) iSCSI initiator group. |
zfssa_initiator_password = | (StrOpt) iSCSI initiator CHAP password. |
zfssa_initiator_user = | (StrOpt) iSCSI initiator CHAP user. |
zfssa_lun_compression = | (StrOpt) Data compression-off, lzjb, gzip-2, gzip, gzip-9. |
zfssa_lun_logbias = | (StrOpt) Synchronous write bias-latency, throughput. |
zfssa_lun_sparse = False | (BoolOpt) Flag to enable sparse (thin-provisioned): True, False. |
zfssa_lun_volblocksize = 8k | (StrOpt) Block size: 512, 1k, 2k, 4k, 8k, 16k, 32k, 64k, 128k. |
zfssa_pool = None | (StrOpt) Storage pool name. |
zfssa_project = None | (StrOpt) Project name. |
zfssa_rest_timeout = None | (IntOpt) REST connection timeout. (seconds) |
zfssa_target_group = tgt-grp | (StrOpt) iSCSI target group name. |
zfssa_target_interfaces = None | (StrOpt) Network interfaces of iSCSI targets. (comma separated) |
zfssa_target_password = | (StrOpt) iSCSI target CHAP password. |
zfssa_target_portal = None | (StrOpt) iSCSI target portal (Data-IP:Port, w.x.y.z:3260). |
zfssa_target_user = | (StrOpt) iSCSI target CHAP user. |