Add support for chiscsi iscsi helper

https://blueprints.launchpad.net/cinder/+spec/chiscsi-iscsi-helper

The Chelsio iSCSI target(chiscsi) serves as a drop in replacement for the IET target, aiming to provide the same functionality as IET. This spec aims at adding support for said target implementation as a pure iscsi_helper.

chiscsi supports offloading of iSCSI PDU’s when required hardware (supported Chelsio Network cards) is available but will work on any regular NIC as well. Offloading or lack thereof requires no user intervention once target drivers are installed. Implementation is initiator agnostic as well, no changes needed on initiator side.

Problem description

chiscsi target is not currently supported by openstack

  • For a Deployer trying to use offloaded iSCSI support on target side, no option is currently available.

  • Manual intervention is currently required to export volumes, as cinder does not understand chiscsi target implementation.

Use Cases

Proposed change

Add one more iscsi_helper option to cover chiscsi, the driver for this will interact with the chiscsi target implementation to provide same functionality as iet.

Use of offloading is dependent on required hardware being present but is completely optional. No intervention is required to enable offload and offloading will happen in a manner completely transparent to initiator side.

No initiator side changes are required to make use of chiscsi, with or without offload support. No extra configuration options are required.

Alternatives

None

Data model impact

None

REST API impact

None

Security impact

None

Notifications impact

None

Other end user impact

None

Performance Impact

If iSCSI offload is available, there is a significant performance boost to be gained. If offloading is not used, performance and resource usage would be roughly on par with IET or better.

Other deployer impact

  • No new config options are required besides an extra allowed value for ‘iscsi_helper’ that would need to be explicitly set to ‘chiscsi’.

  • chiscsi target needs to be installed before it can be used.

Developer impact

None

Implementation

Assignee(s)

Primary assignee:

anish7

Other contributors:

kxie

Work Items

Using iet helper as base, create iscsi_helper for chiscsi, with equivalent commands for all required apis

Dependencies

  • Ability to use chiscsi target obviously depends on target driver being installed, and command utility available on path. No other dependencies

Testing

Current test for IET target should work just fine for chiscsi

Documentation Impact

None except listing chiscsi as an available iscsi_helper

References