I recently switched the backend storage of my VMware vSphere 5.1 Home Lab from FreeNas (OS based on UNIX) to iSCSI (Windows Server 2012 Storage Feature). The reason is that I wanted to play with the PowerShell iSCSI modules and do some tests with SMB v3.0.
In a previous post I showed how to create an iSCSI target using PowerShell on Windows Server 2012. Today I will demonstrate how I set the VMware vSphere 5.1 Software iSCSI Adapter using PowerCli and create the datastore using the LUN created in my previous post. I won't cover how to assign the iSCSI traffic to a dedicated PortGroup and dedicated NICs.
Overview
In the following post I will cover the following points:- Terminology
- PowerCli
- Configuring the iSCSI Initiator on VMware vSphere 5.1
- Turn On the iSCSI Initiator
- Add a new iSCSI Target Address
- Refresh HBA / Rescan Datastores
- Creating a new Datastore using the presented iSCSI Lun
- Find the lun Canonical Name
- Create the new Datastore
- Note on creating small LUN (<1GB)
- GUI/VMware vSphere Client
- Configuring the iSCSI Initiator on VMware vSphere 5.1 (step by step)
- Creating a new Datastore using the presented iSCSI Lun (step by step)
Quick overview of my iSCSI Lab architecture |
Terminology
iSCSI Target/Initiator/IQN... : Please check my previous post.
HBA: A Host Bus Adapter (HBA) is a circuit board and/or integrated circuit adapter that provides input/output (I/O) processing and physical connectivity between a server and a storage device.
LUN: A Logical Unit Number (LUN) is a unique identifier used to designate individual or collections of hard disk devices for address by a protocol associated with a SCSI, iSCSI, Fibre Channel (FC) or similar interface. LUNs are central to the management of block storage arrays shared over a storage area network (SAN).
VMFS: VMware® vStorage Virtual Machine File System (VMFS) is a high-performance cluster file system that provides storage virtualization optimized for virtual machines.It is a prerequisite when you wish build your virtual infrastructure using vmware, as default storing system for virtual machine files on shared storage as Fibre Channel and iSCSI SAN disks and partitions. The current version of VMFS is VMFS 5.
source |
Using POWERCLI
Configuring the iSCSI Initiator on VMware vSphere 5.1 (PowerCli)
Pre-requisites
In order to work with the PowerCli cmdlets, you will need to load the PowerShell Snapin VMware.VimAutomation.Core.
# Load PowerCli Cmdlets Add-PSSnapin VMware.VimAutomation.Core # Connect to my VMware vCenter or your VMware host # I will get prompted for Credential Connect-VIServer lab1vh02.fx.lab -Credential (Get-Credential)
Turn On the iSCSI Initiator
To be able to connect to the iSCSI Target Server and see the target, you will need to enable the iSCSI Software Adapter on each of your host
# Turn on the iSCSI Initiator on my VMware vSphere host (lab1vh02.fx.lab) Get-VMHostStorage -VMHost lab1vh02.fx.lab | Set-VMHostStorage -SoftwareIScsiEnabled $True
Add a new iSCSI Target Address
Then set the IP Address of the iSCSI Target Server to be able to connect to the iSCSI Targets
# Set the iSCSI Target Server (192.168.1.10) on my VMware vSphere Host (lab1vh02.fx.lab) Get-VMHostHba -VMHost lab1vh02.fx.lab -Type iScsi | New-IScsiHbaTarget -Address 192.168.1.10
Refresh HBA / Rescan Datastore
Finally you will need to rescan the HBA and VMFS volumes in order to be able to add the new datastore(s).
# Performs a Rescan on all HBAs and VMFS volumes Get-VMHostStorage -VMHost lab1vh02.fx.lab -RescanAllHba Get-VMHostStorage -VMHost lab1vh02.fx.lab -RescanVmfs
Creating a new Datastore on the presented iSCSI LUN (PowerCli)
Find the Lun Canonical Name
To create a datastore using the New-Datastore cmdlet you will need to get the CanonicalName property from the Lun you want to use.
# Get the iSCSI LUN presented to this server where Microsoft is the vendor Get-ScsiLun | Where-Object Vendor -like "MSFT"
# Get only the Lun and store it in the $lun variable $lun = Get-ScsiLun | Where-Object {(($_.Vendor -like "MSFT") -and ($_.CapacityGB -eq 10))}
Create the new Datastore
# Finally create the datastore using the Lun
New-Datastore -Vmfs -Path $lun.CanonicalName -Name Lun1
Note: Using the GUI you cannot create datastore smaller than 1.3 GB (You'll see the error a bit later in this post). However with PowerCli YOU CAN !!!
Anyway it's kind of useless to have a datastore as small as 1GB...
Using the GUI/VMware vSphere Client
Configuring the iSCSI Initiator on VMware vSphere 5.1
1 - On your VMware Host, select the tab Configuration, Storage Adapters and click on Add...
2 - Here leave the "Add Software iSCSI Adapter" option and click OK
3 - A warning message will show, click OK :
"A new software iSCSI adapter will be added to the Storage Adapters list. After it had been added, select the software iSCSI adapter in the list and click on Properties to complete the configuration."
You'll see the following message while the Software iSCSI Adapter is being added... |
Once added, you'll see the iSCSI Software Adapter with the iSCSI IQN of this server |
5 - You'll see the message "A rescan of the host bus adapter is recommended for this configuration change. Rescan the adapter?". Click Yes
You'll see the above activities in the vsphere client activities window. |
6 - Select the Dynamnic Discovery tab and click Add... in the Send Targets area.
Enter the iSCSI Server (which is my Windows Server 2012 Server (192.168.1.10) in my case) and leave the default Port 3260. Click OK and click Close to continue.
In my previous post I created a 1GB Lun which was too small for the following procedure.
If you do, you'll get the following error message on the final step. To work-around this problem, use PowerCli ! Refer to "Creating a new datastore" above in this post.
So I used a 10GB LUN for the following steps...
1 - In the Configuration tab of your VMware host, select Storage and Click on Add Storage
2 - In the Add Storage Wizard, select Disk/Lun and click Next
3 - Select a Disk/LUN to create a datastore, here I select my 10GB lun. Click Next.
4 - Specify the version of the VMFS for the datastore. Select VMFS-5 and click Next.
Note: The table below depicts the most significant architectural changes for VMFS-5 in comparison to VMFS-3.
5 - Review the current disk layout. Click Next.
6 - Specify the datastore name. Click Next.
7 - Specify the maximum file size and capacity of the datastore. Here select the Maximum available space. click Next.
8 - Final step, review the disk layout and click Finish to end the Add Storage wizard.
Thanks for Reading! If you have any questions, leave a comment or send me an email at fxcat@lazywinadmin.com. I invite you to follow me on Twitter: @lazywinadm
In the detail window, you will see the LUN we created on Windows Server 2012. |
Note: When we created the Virtual Disk/LUN, we could specify a LUN ID, this would show here. |
Creating a new Datastore on the presented iSCSI LUN
In my previous post I created a 1GB Lun which was too small for the following procedure.
If you do, you'll get the following error message on the final step. To work-around this problem, use PowerCli ! Refer to "Creating a new datastore" above in this post.
Error: The Capacity value must be at least 1.3 GB. Enter another value.
So I used a 10GB LUN for the following steps...
1 - In the Configuration tab of your VMware host, select Storage and Click on Add Storage
2 - In the Add Storage Wizard, select Disk/Lun and click Next
3 - Select a Disk/LUN to create a datastore, here I select my 10GB lun. Click Next.
Note: The table below depicts the most significant architectural changes for VMFS-5 in comparison to VMFS-3.
Source |
5 - Review the current disk layout. Click Next.
6 - Specify the datastore name. Click Next.
7 - Specify the maximum file size and capacity of the datastore. Here select the Maximum available space. click Next.
8 - Final step, review the disk layout and click Finish to end the Add Storage wizard.
Activity window show the creation of the VMFS datastore. |
Once created, the lun will be available in "Storage" |
References
Thanks for Reading! If you have any questions, leave a comment or send me an email at fxcat@lazywinadmin.com. I invite you to follow me on Twitter: @lazywinadm
Hi fx,
ReplyDeleteI am configuring iSCSI on 2012 as a temporary storage for our 2-node vSphere 5.0 Cluster and I have already managed to connect everything and also have moved some VMs to the iSCSI Storage and run them successfully. I did not find any answer to some questions yet: I can see the iSCSI Storage on both vSphere-Hosts. What will happen in case of a failed node? Will the machines continue to run? Can I access the iSCSI storage simultaneously from both hosts with different VMs or do I need at least two different iSCSI Targets to run VMs on both hosts? Would be great if you could answer these questions. Thanks for the very useful article anyway.
Daniel
Hi Daniel,
DeleteIf one of your host fail and that you have HA enabled, the VM will restart on the remaining host (if enough resources).
You can access the same iSCSI storage from different storage with multiple VMs (VMFS is built for that)
Hope this help.
Fx
Thanks for the quick reply. Yes, this answers my questions.
DeleteMuito obrigado, me ajudou muito. Parabéns.
ReplyDeleteThank you ;-)
Delete