XtremIO (xmcli) – Creating Initiator Groups and Mapping LUNs
1. Open an SSH session to the XtremIO Management Station Firstly we need to open an SSH connection to the XtremIO Management Station (XMS), in this case I used putty […]
Virtualization & Storage
1. Open an SSH session to the XtremIO Management Station Firstly we need to open an SSH connection to the XtremIO Management Station (XMS), in this case I used putty […]
1. Open an SSH session to the XtremIO Management Station
Firstly we need to open an SSH connection to the XtremIO Management Station (XMS), in this case I used putty to connect directly onto the XMS Virtual Machine. The second login prompt after ‘xmsadmin’ is required to access the xmcli> session.
The XMCLI session prompt appears allowing you to run the required commands. Utilizing ‘?’ within the console will provide a list of available options.
2. Create the Initiator Group Parent Folder
In order to keep Clusters organizied it is good practice to create a root Folder for each cluster in a multi-cluster configuration. In this example we will use the cluster name “VDICluster” as the folder name. Note: all the user defined values require parenthesis “…”
add-folder caption=”VDICluster” folder-type=ig parent-folder-id=”/”
Once created the folder appears in the Initiator Groups pane:
3. Create Initiator Groups and add their associated Host Initiators
Create the IG and assign to the parent folder “VDICluster”:
add-initiator-group ig-name=”VB001_ESXI01″ parent-folder-id=”/VDICluster”
Add the ESXi HBA’s to the relevant IG:
add-initiator ig-id=”VB001_ESXI01″ initiator-name=”VB001_ESXI01-HBA0″ port-address=”20:00:00:25:xx:xx:xx:6F”
add-initiator ig-id=”VB001_ESXI01″ initiator-name=”VB001_ESXI01-HBA1″ port-address=”20:00:00:25:xx:xx:xx:6F”
add-initiator-group ig-name=”VB001_ESXI02″ parent-folder-id=”/VDICluster”
add-initiator ig-id=”VB001_ESXI02″ initiator-name=”VB001_ESXI02-HBA0″ port-address=”20:00:00:25:xx:xx:xx:7F”
add-initiator ig-id=”VB001_ESXI02″ initiator-name=”VB001_ESXI02-HBA1″ port-address=”20:00:00:25:xx:xx:xx:7F”
Initiator Group Validation:
show-ig-folders
show-initiators
show-initiators-connectivity
show-initiator-groups
4. Create Parent Folders for the Boot and DATA LUNs
add-folder caption=”VDICluster_BOOT” folder-type=vol parent-folder-id=”/”
add-folder caption=”VDICluster_DATA” folder-type=vol parent-folder-id=”/”
5. Create BOOT LUNs for both ESXi Hosts (20Gig Example)
add-volume alignment-offset=0 lb-size=512 vol-name=”ESXI01-BOOT” vol-size=”20g” parent-folder-id=”/VDICluster_BOOT”
add-volume alignment-offset=0 lb-size=512 vol-name=”ESXI02-BOOT” vol-size=”20g” parent-folder-id=”/VDICluster_BOOT”
6. Map the Individual Boot LUNs to the ESXi Hosts using HLU 0
This presents “ESXI01-BOOT” to the ESXi Host “VB001_ESXI01” as LUN 0:
map-lun vol-id=”ESXI01-BOOT” ig-id=”VB001_ESXI01″ lun=0
This presents “ESXI02-BOOT” to the ESXi Host “VB001_ESXI02” as LUN 0:
map-lun vol-id=”ESXI02-BOOT” ig-id=”VB001_ESXI02″ lun=0
7. Create two shared DATA LUNs (2TB Example)
This creates 2X 2TB LUNs named Datastore01&02 and enables VAAI-TP alerts:
add-volume alignment-offset=0 lb-size=512 vol-name=”Datastore01″ vol-size=”2048g” vaai-tp-alerts=enabled parent-folder-id=”/VDICluster_DATA”
add-volume alignment-offset=0 lb-size=512 vol-name=”Datastore02″ vol-size=”2048g” vaai-tp-alerts=enabled parent-folder-id=”/VDICluster_DATA”
8. Map the two DATA LUNs to both ESXi Cluster hosts using HLU1&2
map-lun vol-id=”Datastore01″ ig-id=”VB001_ESXI01″ lun=1
map-lun vol-id=”Datastore01″ ig-id=”VB001_ESXI02″ lun=1
Yes
map-lun vol-id=”Datastore02″ ig-id=”VB001_ESXI01″ lun=2
map-lun vol-id=”Datastore02″ ig-id=”VB001_ESXI02″ lun=2
Yes
Note: You will receive a prompt when adding the shared datastore’s to the second host: Are you sure you want to create additional LUN mapping for Volume Datastore01? (Yes/No): Yes This is something to be aware of when creating scripts to map a volume(s) to multiple hosts.
Validate the LUN Configuration:
show-volume-folders
show-volumes
show-volume vol-id=”Datastore01″
show-volume vol-id=”Datastore02″
Ramblings by Keith Lee
Discussions about all things VxRail.
Random Technology thoughts from an Irish Virtualization Geek (who enjoys saving the world in his spare time).
Musings of a VMware Cloud Geek
Converged and Hyper Converged Infrastructure
'Scamallach' - Gaelic for 'Cloudy' ...
Storing data and be awesome
Best Practices et alia
Every Cloud Has a Tin Lining.
Thanks for the useful summary. I thought I’d share the following PowerCLI code which will generate the commands for steps 1-3 for all clusters in vCenter:
Connect-VIServer
$vmclusters = get-cluster
foreach ($cluster in $vmclusters) {
Write-Host “add-folder caption=””$($cluster.Name)”” folder-type=ig parent-folder-id=””/”””
$VMHosts = $cluster | Get-VMHost
foreach ($VMHost in $VMHosts) {
Write-Host “add-initiator-group ig-name=””$($VMHost.Name)”” parent-folder-id=””/$($cluster.Name)”””
$hbas = $VMHost | Get-VMHostHba -Type FibreChannel
foreach ($hba in $hbas) {
$pwwn = ((“{0:x}” -f $hba.PortWorldWideName) -split “(..)” | Where {$_}) -join “:”
Write-Host “add-initiator ig-id=””$($vmhost.Name)”” initiator-name=””$($vmhost.Name)_$($hba.Device)”” port-address=””$pwwn”””
}
}
}
WOW. Thanks for sharing Eric. Nice job.
Hello David,
Thanks for the useful info, I see that we are using HLU and for the ALU field we are just mentioning a name unlike a lun id in VNX or VMAX in addition to the name field/attribute. Will the xtreme io be creating any lun id internally, if yes is there an option to check the ALU.
Thanks in advance
Regards
Nick