vSAN iSCSI targets configuration deep dive

I have been asked about vSAN iSCSI target configuration and  how the objects looks within vSAN ? Here is a small guide that gets you going with vSAN iSCSI configuration and how you get to see the actual luns within vSAN as vSAN objects  .

The iSCSI lun creation and presentation is very simple ,  I have put together screenshots from my lab to create and export vSAN iSCSI luns to a Windows server 2012 box . Please follow the series of screenshots to create and setup iSCSI exports from vSAN to external physical machines . In the below example we do not see creation of initiator group , usually initiator groups are created to allow a set of Luns to a certain set of IQN to which the luns must be visible .

Note*: iSCSI Lun exports to virtual machines is unsupported officially , strictly refrain from presenting an iSCSI vSAN export to a VM in production environment .

Looking at the objects for the iSCSI Lun export thru vSAN.

VIT (virtual iSCSI Target) is the service which runs on all the host is responsible to manage and facilitate the vSAN iSCSI target on all the hosts , I suggest you to see VMwareKB to troubleshoot “iSCSI target service

After creating first iSCSI target when we look at Target owner host we see below messages , this indicates that the object for the target iSCSI lun was created successfully , if there were any issues while creating the iSCSI target from vcenter server , please see the vmkernel.log on the owner host for more details

Vmkerne.log : “less /var/log/vmkernel.log | grep -i vit” : this the logs seen during the time of creating a target .

2018-01-14T03:38:39.296Z cpu16:9176868 opID=a09e5a8d)World: 12235: VC opID VSAN-iSCSI-OP-52e79e76-7274-e36b-daa3-c5a03437e5b2 maps to vmkernel opID a09e5a8d
2018-01-14T03:38:44.440Z cpu17:9176879)Loading module vit ...
2018-01-14T03:38:44.441Z cpu17:9176879)Elf: 2043: module vit has license VMware
2018-01-14T03:38:44.450Z cpu17:9176879)VIT: Resetting config options
2018-01-14T03:38:44.450Z cpu17:9176879)vit: HeapLogSizes:497: Size of global heap 0x4307450f5000 : 8681472 bytes
2018-01-14T03:38:44.450Z cpu17:9176879)vit: HeapLogSizes:498: Size of target heap: 952320 bytes
2018-01-14T03:38:44.450Z cpu17:9176879)vit: HeapLogSizes:499: Size of LUN heap: 4601856 bytes
2018-01-14T03:38:44.450Z cpu17:9176879)vit: HeapLogSizes:500: Size of ctl_softc 12256 bytes.
2018-01-14T03:38:44.450Z cpu17:9176879)vit: HeapLogSizes:501: Size of cfiscsi_target 928 bytes.
2018-01-14T03:38:44.450Z cpu17:9176879)vit: HeapLogSizes:502: Size of ctl_lun 118584 bytes.
2018-01-14T03:38:44.453Z cpu17:9176879)vit: VitFssBeInit:543: Number of threads for IO task queue: 32
2018-01-14T03:38:44.457Z cpu17:9176879)Mod: 4968: Initialization of vit succeeded with module ID 119.
2018-01-14T03:38:44.457Z cpu17:9176879)vit loaded successfully.
2018-01-14T03:40:36.410Z cpu18:9177736 opID=40c602bf)World: 12235: VC opID VSAN-iSCSI-OP-52b07c6f-192f-031e-1c15-011af0ab1edf maps to vmkernel opID 40c602bf
2018-01-14T03:40:38.580Z cpu1:9177019)vit: cfiscsi_target_find_or_create:2542: Created heap RDP-win for target RDP-win. Heap pointer: 0x4305e6412000.
2018-01-14T03:40:42.078Z cpu22:9177018)vit: VitFSSBEIoctl_Create:2207: LUN heap cfss0 created (heap ID: 0x430750e13000).
2018-01-14T03:40:42.078Z cpu22:9177018)vit: VitFSSBE_GetInfo:1927: GetInfo size 10737418240 bs=512 size_blocks 20971520
2018-01-14T03:42:53.006Z cpu13:68816)vit: VITVsiGetIoStats:14820: Throttled: Perf stats isn't initialized for ctl LUN 0
2018-01-14T03:42:53.006Z cpu13:68816)vit: VITVsiGetBwStats:14711: Throttled: Perf stats isn't initialized for ctl LUN 0
2018-01-14T03:42:53.006Z cpu13:68816)vit: VITVsiGetLatencyStats:14939: Throttled: Perf stats isn't initialized for ctl LUN 0

Using certain esxcli vsan commands to get more information about the iSCSI targets

localcli vsan iscsi status get
Status: Enabled: true

localcli vsan iscsi target list
Alias       iSCSI Qualified Name (IQN)                          Interface Port Authentication type LUNs Is Compliant UUID I/O Owner UUID
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
RDP-winiqn.1998-01.com.vmware:22455fef-6b44-e32b-eb2a-f5535af9a5de vmk1 3260 No-Authentication 1 true 34d15a5a-7ff7-924b-776c-ecf4bbec91a8 5937c663-8cb8-3d48-d3ad-ecf4bbec91a8

Win-iSCSI-Lun2iqn.1998-01.com.vmware:0f4751c1-2a44-bb90-83e4-f567cfc711d4 vmk1 3260 No-Authentication 1 true 62d65a5a-48dd-477d-8c86-ecf4bbec65d8 5938de9a-e35b-d745-c9ff-ecf4bbec65d8

localcli vsan iscsi homeobject get

Namespace Information:
 UUID: bfd05a5a-0dc2-53da-444a-ecf4bbec91a8
 Policy: (("stripeWidth" i1) ("cacheReservation" i0) ("proportionalCapacity" (i0 i100)) ("hostFailuresToTolerate" i1) ("forceProvisioning" i0) ("spbmProfileId" "aa6d5a82-1c88-45da-85d3-3d74b91a5bad") ("spbmProfileGenerationNumber" l+2) ("CSN" l1) ("spbmProfileName" "vSAN Default Storage Policy"))
 Is Compliant: true

localcli vsan iscsi target get --aliasRDP-win
Target Information:
 IQN: iqn.1998-01.com.vmware:22455fef-6b44-e32b-eb2a-f5535af9a5de
 Alias: RDP-win
 UUID: 34d15a5a-7ff7-924b-776c-ecf4bbec91a8
 Is Compliant: true
 Policy: (("stripeWidth" i1) ("cacheReservation" i0) ("proportionalCapacity" (i0 i100)) ("hostFailuresToTolerate" i1) ("forceProvisioning" i0) ("spbmProfileId" "aa6d5a82-1c88-45da-85d3-3d74b91a5bad") ("spbmProfileGenerationNumber" l+2) ("CSN" l1) ("spbmProfileName" "vSAN Default Storage Policy"))
 Interface: vmk1
 Port: 3260
 Authentication type: No-Authentication
 Authentication userid:
 Authentication mutual-userid:
 LUNs: 1
 I/O owner UUID: 5937c663-8cb8-3d48-d3ad-ecf4bbec91a8
 I/O owner: IP-Address of the owning host .
 Allowed initiators: iqn.1991-05.com.microsoft:rdp
 Allowed initiator groups:

vit.conf :: cat /vmfs/volumes/vsan:523d5e5605a4d751-0c3304ae7a42599b/.iSCSI-CONFIG/etc/vit.conf

generation 8
auth-group default { auth-type none}
auth-group 34d15a5a-7ff7-924b-776c-ecf4bbec91a8 { auth-type none}
auth-group 62d65a5a-48dd-477d-8c86-ecf4bbec65d8 { auth-type none}
portal-group default { discovery-auth-group no-authentication listen vmk1:3260}
portal-group pg-vmk1-3260 { discovery-auth-group no-authentication listen vmk1:3260}
target iqn.1998-01.com.vmware:22455fef-6b44-e32b-eb2a-f5535af9a5de
{ alias "RDP-win" portal-group pg-vmk1-3260
 auth-group 34d15a5a-7ff7-924b-776c-ecf4bbec91a8
 option uuid 34d15a5a-7ff7-924b-776c-ecf4bbec91a8
 option owner-id 34d15a5a-7ff7-924b-776c-ecf4bbec91a8
 lun 1 { backend vmdk path 34d15a5a-7ff7-924b-776c-ecf4bbec91a8/39d15a5a-c635-9e1b-0c92-ecf4bbec91a8.vmdk
 size 20971520
 option lun-alias "RDP-win"
 }
}
target iqn.1998-01.com.vmware:0f4751c1-2a44-bb90-83e4-f567cfc711d4 {
 alias "Win-iSCSI-Lun2"
 portal-group pg-vmk1-3260
 auth-group 62d65a5a-48dd-477d-8c86-ecf4bbec65d8
 option uuid 62d65a5a-48dd-477d-8c86-ecf4bbec65d8
 option owner-id 62d65a5a-48dd-477d-8c86-ecf4bbec65d8
 lun 3 { backend vmdk path 62d65a5a-48dd-477d-8c86-ecf4bbec65d8/67d65a5a-b1e9-fc41-a4d2-ecf4bbec91a8.vmdk
 size 20971520
 option lun-alias "Win-iSCSI-Lun2"
 }
}

Looking at the Actual objects for the Luns which are created as objects in vSAN 

change directory to : /vmfs/volumes/vsan:523d5e5605a4d751-0c3304ae7a42599b/.iSCSI-CONFIG/targets :

/vmfs/volumes/vsan:523d5e5605a4d751-0c3304ae7a42599b/bfd05a5a-0dc2-53da-444a-ecf4bbec91a8/targets] ls -l
total 16
lrwxrwxrwx 1 root root 42 Jan 14 03:40 34d15a5a-7ff7-924b-776c-ecf4bbec91a8 -> ../../34d15a5a-7ff7-924b-776c-ecf4bbec91a8
lrwxrwxrwx 1 root root 42 Jan 14 04:02 62d65a5a-48dd-477d-8c86-ecf4bbec65d8 -> ../../62d65a5a-48dd-477d-8c86-ecf4bbec65d8
cd to 34d15a5a-7ff7-924b-776c-ecf4bbec91a8 (Absolute Path : /vmfs/volumes/vsan:523d5e5605a4d751-0c3304ae7a42599b/34d15a5a-7ff7-924b-776c-ecf4bbec91a8)

/vmfs/volumes/vsan:523d5e5605a4d751-0c3304ae7a42599b/34d15a5a-7ff7-924b-776c-ecf4bbec91a8] ls -l
total 0
-rw------- 1 root root 521 Jan 14 03:40 39d15a5a-c635-9e1b-0c92-ecf4bbec91a8.vmdk
cat 39d15a5a-c635-9e1b-0c92-ecf4bbec91a8.vmdk | grep vsan
RW 20971520 VMFS "vsan://39d15a5a-c635-9e1b-0c92-ecf4bbec91a8" <--- This is the destination object where the data is stored for the Lun "RDP-win" .

[root@is-tse-d156:/vmfs/volumes/vsan:523d5e5605a4d751-0c3304ae7a42599b/bfd05a5a-0dc2-53da-444a-ecf4bbec91a8/targets] ls -l
total 16
lrwxrwxrwx 1 root root 42 Jan 14 03:40 34d15a5a-7ff7-924b-776c-ecf4bbec91a8 -> ../../34d15a5a-7ff7-924b-776c-ecf4bbec91a8
lrwxrwxrwx 1 root root 42 Jan 14 04:02 62d65a5a-48dd-477d-8c86-ecf4bbec65d8 -> ../../62d65a5a-48dd-477d-8c86-ecf4bbec65d8

cd : 62d65a5a-48dd-477d-8c86-ecf4bbec65d8 (Absolute Path : /vmfs/volumes/vsan:523d5e5605a4d751-0c3304ae7a42599b/62d65a5a-48dd-477d-8c86-ecf4bbec65d8)

/vmfs/volumes/vsan:523d5e5605a4d751-0c3304ae7a42599b/62d65a5a-48dd-477d-8c86-ecf4bbec65d8] ls -l
total 0
-rw------- 1 root root 521 Jan 14 04:02 67d65a5a-b1e9-fc41-a4d2-ecf4bbec91a8.vmdk

cat 67d65a5a-b1e9-fc41-a4d2-ecf4bbec91a8.vmdk | grep vsan
RW 20971520 VMFS "vsan://67d65a5a-b1e9-fc41-a4d2-ecf4bbec91a8" <--- This is the destination object where the data is stored for the Lun "Win-iSCSI-Lun2"

Using esxcli vsan debug objects list to dump all object attributes to a file , we can look at the placement of the components for each Lun objects and component health .

esxcli vsan debug object list  > /tmp/list_all_object.txt

less the output file “less /tmp/list_all_object.txt” , search for “39d15a5a-c635-9e1b-0c92-ecf4bbec91a8

Object UUID: 39d15a5a-c635-9e1b-0c92-ecf4bbec91a8
 Version: 5
Health: healthy
 Owner: X.X.X.X (Host IP/FQDN)
 Policy:
spbmProfileName: vSAN Default Storage Policy
 forceProvisioning: 0
 spbmProfileGenerationNumber: 2
 stripeWidth: 1
 cacheReservation: 0
 CSN: 2
 spbmProfileId: aa6d5a82-1c88-45da-85d3-3d74b91a5bad
 proportionalCapacity: 0
 hostFailuresToTolerate: 1

Configuration:

RAID_1
 Component: 39d15a5a-1794-5d1c-c279-ecf4bbec91a8
Component State: ACTIVE, Address Space(B): 10737418240 (10.00GB), Disk UUID: 52f3a35d-2937-9811-81b0-026815670d32, Disk Name: naa.5002538c4044d87f:2
 Votes: 1, Capacity Used(B): 12582912 (0.01GB), Physical Capacity Used(B): 4194304 (0.00GB), Host Name: is-tse-d157.isl.vmware.com

 Component: 39d15a5a-afc7-5e1c-d3d4-ecf4bbec91a8
Component State: ACTIVE, Address Space(B): 10737418240 (10.00GB), Disk UUID: 52bf76f2-4863-2447-b919-1d7923a822e3, Disk Name: naa.5002538c4044d6ad:2
 Votes: 1, Capacity Used(B): 12582912 (0.01GB), Physical Capacity Used(B): 4194304 (0.00GB), Host Name: is-tse-d155.isl.vmware.com

 Witness: 39d15a5a-048a-5f1c-5381-ecf4bbec91a8
Component State: ACTIVE, Address Space(B): 0 (0.00GB), Disk UUID: 525b1f66-2d22-7897-d936-6eefd92c7019, Disk Name: naa.5002538c4044d6a3:2
 Votes: 1, Capacity Used(B): 12582912 (0.01GB), Physical Capacity Used(B): 4194304 (0.00GB), Host Name: is-tse-d156.isl.vmware.com

Type: vdisk
 Path: /vmfs/volumes/vsan:523d5e5605a4d751-0c3304ae7a42599b/.iSCSI-CONFIG/targets/34d15a5a-7ff7-924b-776c-ecf4bbec91a8/52dc6cdc-d19d-ac5c-1b32-c5c94383310c.vmdk (Missing)
 Group UUID: 34d15a5a-7ff7-924b-776c-ecf4bbec91a8
 Directory Name: (null)

less the previous output file “less /tmp/list_all_object.txt” , search for “62d65a5a-48dd-477d-8c86-ecf4bbec65d8

Object UUID: 67d65a5a-b1e9-fc41-a4d2-ecf4bbec91a8
 Version: 5
Health: healthy
 Owner: X.X.X.X (Host IP/FQDN)
 Policy:
 spbmProfileName: vSAN Default Storage Policy
 forceProvisioning: 0
 spbmProfileGenerationNumber: 2
 stripeWidth: 1
 cacheReservation: 0
 CSN: 4
 spbmProfileId: aa6d5a82-1c88-45da-85d3-3d74b91a5bad
 proportionalCapacity: 0
 hostFailuresToTolerate: 1

Configuration:

RAID_1
 Component: 67d65a5a-a21d-5c42-d279-ecf4bbec91a8
Component State: ACTIVE, Address Space(B): 10737418240 (10.00GB), Disk UUID: 5270b13f-a6a0-50cf-0cb3-88d86b7d323e, Disk Name: naa.5002538c4044d6ab:2
 Votes: 1, Capacity Used(B): 12582912 (0.01GB), Physical Capacity Used(B): 4194304 (0.00GB), Host Name: is-tse-d155.isl.vmware.com

 Component: 67d65a5a-9967-5d42-3ad0-ecf4bbec91a8
Component State: ACTIVE, Address Space(B): 10737418240 (10.00GB), Disk UUID: 525b1f66-2d22-7897-d936-6eefd92c7019, Disk Name: naa.5002538c4044d6a3:2
 Votes: 1, Capacity Used(B): 12582912 (0.01GB), Physical Capacity Used(B): 4194304 (0.00GB), Host Name: is-tse-d156.isl.vmware.com

 Witness: 67d65a5a-7227-5e42-31ab-ecf4bbec91a8
Component State: ACTIVE, Address Space(B): 0 (0.00GB), Disk UUID: 529e9a5d-a5d8-6a18-3933-ed69eca58c36, Disk Name: naa.5002538c4044d6ae:2
 Votes: 1, Capacity Used(B): 12582912 (0.01GB), Physical Capacity Used(B): 4194304 (0.00GB), Host Name: is-tse-d157.isl.vmware.com

Type: vdisk
 Path: /vmfs/volumes/vsan:523d5e5605a4d751-0c3304ae7a42599b/.iSCSI-CONFIG/targets/62d65a5a-48dd-477d-8c86-ecf4bbec65d8/5239144d-34bc-439c-1907-2c541a56a141.vmdk (Missing)
 Group UUID: 62d65a5a-48dd-477d-8c86-ecf4bbec65d8
 Directory Name: (null)

RVC command to look at the objects from vCenter server RVC session

Note*: All iSCSI target will be listed under unassociated objects , be extra careful while deleting associated objects as you may accidentally delete vSAN iSCSI home folder and the target VMDKs and they cannot be recovered once deleted .

/localhost/vsan66-AF-DELL/computers/vsan66-ALL-FLASH-DELL> vsan.obj_status_report . -t

Unassociated objects 
1a39c759-70d6-ea0a-29f4-ecf4bbec65d8 
d9e59b59-9031-180b-6000-ecf4bbec65d8 
79ca385a-f785-a610-5038-ecf4bbec65d8 
39d15a5a-c635-9e1b-0c92-ecf4bbec91a8 <---------------iSCSI target Lun 1 object for RDP-win vmdk 
67d65a5a-b1e9-fc41-a4d2-ecf4bbec91a8 <---------------iSCSI target Lun 3 object Win-iSCSI-Lun2 vmdk 
bfd05a5a-0dc2-53da-444a-ecf4bbec91a8 <---------------iSCSI home folder object 

Related Posts