Software iSCSI storage
XenServer supports shared storage repositories (SRs) on iSCSI LUNs. iSCSI is supported using the Open-iSCSI software iSCSI initiator or by using a supported iSCSI Host Bus Adapter (HBA). The steps for using iSCSI HBAs are identical to the steps for Fibre Channel HBAs. Both sets of steps are described in Create a Shared LVM over Fibre Channel / Fibre Channel over Ethernet / iSCSI HBA or SAS SR.
Shared iSCSI support using the software iSCSI initiator is implemented based on the Linux Volume Manager (LVM). This feature provides the same performance benefits provided by LVM VDIs in the local disk case. Shared iSCSI SRs using the software-based host initiator can support VM agility using live migration: VMs can be started on any XenServer® host in a resource pool and migrated between them with no noticeable downtime.
iSCSI SRs use the entire LUN specified at creation time and cannot span more than one LUN. CHAP support is provided for client authentication, during both the data path initialization and the LUN discovery phases.
Note:
The block size of an iSCSI LUN must be 512 bytes. To use storage with 4 KB physical blocks, the storage must also support emulation of 512-byte allocation blocks (the logical block size must be 512 bytes).
XenServer host iSCSI configuration
All iSCSI initiators and targets must have a unique name to ensure that they can be uniquely identified on the network. An initiator has an iSCSI initiator address, and a target has an iSCSI target address. Collectively these names are called iSCSI Qualified Names, or IQNs.
XenServer hosts support a single iSCSI initiator, which is automatically created and configured with a random IQN during host installation. The single initiator can be used to connect to multiple iSCSI targets concurrently.
iSCSI targets commonly provide access control using iSCSI initiator IQN lists. All iSCSI targets/LUNs that your XenServer host accesses must be configured to allow access by the host's initiator IQN. Similarly, targets/LUNs to be used as shared iSCSI SRs must be configured to allow access by all host IQNs in the resource pool.
Note:
iSCSI targets that do not provide access control typically default to restricting LUN access to a single initiator to ensure data integrity. If an iSCSI LUN is used as a shared SR across multiple hosts in a pool, ensure that multi-initiator access is enabled for the specified LUN.
The XenServer host IQN value can be adjusted using XenCenter®, or using the CLI with the following command when using the iSCSI software initiator:
xe host-param-set uuid=valid_host_id other-config:iscsi_iqn=new_initiator_iqn
Warning:
-
Each iSCSI target and initiator must have a unique IQN. If a non-unique IQN identifier is used, data corruption or denial of LUN access can occur.
-
Do not change the XenServer host IQN with iSCSI SRs attached. Doing so can result in failures connecting to new targets or existing SRs.
If you are creating an SR for IP-based storage (including iSCSI), you can configure one of the following as the storage network: the NIC that handles the management traffic or a new NIC for the storage traffic. To assign an IP address to a NIC, see Configure a dedicated storage NIC.
Shared LVM storage
The Shared LVM type represents disks as Logical Volumes within a Volume Group created on an iSCSI (FC or SAS) LUN.
Note:
The block size of an iSCSI LUN must be 512 bytes. To use storage with 4 KB physical blocks, the storage must also support emulation of 512-byte allocation blocks (the logical block size must be 512 bytes).
Device-config parameters for LVMoiSCSI SRs:
| Parameter Name | Description | Required? |
|---|---|---|
target |
The IP address or host name of the iSCSI target on the SAN that hosts the SR. This can also be a comma-separated list of values to connect to multiple targets. | Yes |
targetIQN |
The iSCSI Qualified Name (IQN) of the target on the iSCSI SAN that hosts the SR, or * to connect to all IQNs. |
Yes |
SCSIid |
The SCSI bus ID of the destination LUN | Yes |
multihomed |
Enable multi-homing to this target | No (defaults to the same value as host.other_config:multipathing) |
chapuser |
The user name to be used for CHAP authentication | No |
chappassword_secret |
(Recommended) Secret ID for the password to be used for CHAP authentication. Pass a secret instead of a password. | No |
chappassword |
The password to be used for CHAP authentication. We recommend that you use the chappassword_secret parameter instead. |
No |
port |
The network port number on which to query the target | No |
usediscoverynumber |
The specific iSCSI record index to use | No |
incoming_chapuser |
The user name that the iSCSI filter uses to authenticate against the host | No |
incoming_chappassword_secret |
(Recommended) Secret ID for the password that the iSCSI filter uses to authenticate against the host. | No |
incoming_chappassword |
The password that the iSCSI filter uses to authenticate against the host. We recommend that you use the incoming_chappassword_secret parameter instead. |
No |