Configuring iSCSI interface and offload support¶
Compute supports open-iscsi iSCSI interfaces for offload cards. Offload
hardware must be present and configured on every compute node where offload is
desired. Once an open-iscsi interface is configured, the iface name
(iface.iscsi_ifacename) should be passed to libvirt via the iscsi_iface
parameter for use. All iSCSI sessions will be bound to this iSCSI interface.
Currently supported transports (iface.transport_name) are be2iscsi,
bnx2i, cxgb3i, cxgb4i, qla4xxx, ocs, tcp. Configuration
changes are required on the compute node only.
iSER is supported using the separate iSER LibvirtISERVolumeDriver and will be
rejected if used via the iscsi_iface parameter.
iSCSI iface configuration¶
Note the distinction between the transport name (
iface.transport_name) and iface name (iface.iscsi_ifacename). The actual iface name must be specified via the iscsi_iface parameter to libvirt for offload to work.The default name for an iSCSI iface (open-iscsi parameter
iface.iscsi_ifacename) is in the format transport_name.hwaddress when generated byiscsiadm.iscsiadmcan be used to view and generate current iface configuration. Every network interface that supports an open-iscsi transport can have one or more iscsi ifaces associated with it. If no ifaces have been configured for a network interface supported by an open-iscsi transport, this command will create a default iface configuration for that network interface. For example :# iscsiadm -m iface default tcp,<empty>,<empty>,<empty>,<empty> iser iser,<empty>,<empty>,<empty>,<empty> bnx2i.00:05:b5:d2:a0:c2 bnx2i,00:05:b5:d2:a0:c2,5.10.10.20,<empty>,<empty>
The output is in the format:
iface_name transport_name,hwaddress,ipaddress,net_ifacename,initiatorname
Individual iface configuration can be viewed via
# iscsiadm -m iface -I IFACE_NAME # BEGIN RECORD 2.0-873 iface.iscsi_ifacename = cxgb4i.00:07:43:28:b2:58 iface.net_ifacename = <empty> iface.ipaddress = 102.50.50.80 iface.hwaddress = 00:07:43:28:b2:58 iface.transport_name = cxgb4i iface.initiatorname = <empty> # END RECORD
Configuration can be updated as desired via
# iscsiadm -m iface-I IFACE_NAME--op=update -n iface.SETTING -v VALUE
All iface configurations need a minimum of
iface.iface_name,iface.transport_nameandiface.hwaddressto be correctly configured to work. Some transports may requireiface.ipaddressandiface.net_ifacenameas well to bind correctly.Detailed configuration instructions can be found at: https://github.com/open-iscsi/open-iscsi/blob/master/README