Due to close scare in my lab I decided to switch the datastore from a single onboard hdd to iSCSI. I use a WD MyCloud EX2 Ultra but there are a lot of more advanced NAS out there with a whole host of extra features. The WD is rather basic but is sufficient for my needs of partitioning it into a backup drive and an iSCSI drive. Since moving onto this I haven’t noticed any real performance degradation in my lab, its run over 1 Gig port.
The iSCSI adapter and physical NIC connect through a VMK. I created the new VMK on a separate vSphere switch (vSwitch) using a 1:1 mapping between the virtual and physical network adapter. If you needed Jumbo frames this can be set on the vswitch and the VMK.
In this example the vSwitch and VLAN are called ‘iscsi’, VLAN ID is ‘5’ and is on the ‘10.10.5.0/24’ network.
1. Create vswitch called iscsi and map it to a physical NIC
esxcli network vswitch standard add --vswitch-name=iscsi
esxcli network vswitch standard uplink add --uplink-name=vmnic0 --vswitch-name=iscsi
2. Create a port-group, map to the vlan, add the VMK and give it an IP. This VMK that will be used solely for iSCSI.
esxcli network vswitch standard portgroup add -piscsi -viscsi
esxcli network vswitch standard portgroup set -piscsi -v5
esxcli network ip interface add --interface-name=vmk0 --portgroup-name=iscsi
esxcli network ip interface ipv4 set --interface-name=vmk0 --ipv4=10.10.5.51 --netmask=255.255.255.0 --type=static
3. Test that you have IP and TCP connectivity to the iSCSI drive.
vmkping10.10.5.61 The equivalent of normal ping
esxcli iscsi software set -e trueNeed to enable iSCSI to test TCP connectivity
nc -z10.10.5.61 3260 Test TC connectivity on port 3260 Connection to 10.10.5.61 3260 port tcp/* succeeded!
4. Associate the VMK and add a Dynamic target. If you do in the GUI (under storage) enter the iSCSI IP, it then scans and sets the static targets for you.
esxcli iscsi adapter listCheck the adapter name, usually vmhbaxx
esxcli iscsi networkportal add -Avmhba64 -nvmk0 Bind the vmk to iscsi interface
esxcli iscsi adapter discovery sendtarget add -Avmhba64 -a10.10.5.61:3260 Connect iSCSI adapter to iSCSI target
esxcli iscsi networkportal listCheck the interface and that VMK is bound
Can now go ahead and create a new datastore. In the GUI it will show up under devices as Normal, Degraded if you only have 1 ethernet link to the iSCSI. If the iSCSI already has a datastore on it can be rediscovered (can take 5 mins).
esxcli iscsi adapter discovery rediscover -Avmhba64
dfCheck the datastore has been added
For the VMs to appear in the inventory you need re-register each of them by referencing the .vmx file.
ls -l/vmfs/volumes/ds1/ List all the vm folders
vim-cmd solo/registervm/vmfs/volumes/ds1/vm_name/vm_name.vmx
vim-cmd vmsvc/getallvmsList all registered VMs
vim-cmd vmsvc/power.onPower on a vmvim-cmd
esxcli vm process listList all powered on vms