In this post, I’m going to go over the quickest way to get your Nimble SAN connected to a VMware ESXi environment through vCenter. This method will give you a volume where you can store VMDK attached storage for your guests. Some of these steps will be for vCenter 4. Please pay close attention to my notations as some items will not be necessary with later versions of VMware, or later versions will have options in the GUI instead of in the CLI. This tutorial assumes you have healthy environments with an already networked Nimble Array. Here’s what I’m working with:
- Nimble C220 Firmware version 1.4.9.x
- VMware 4 (Tutorial Compatible with 5)
And here are the steps to get your Nimble Array connected to to VMware:
- Nimble – Create Initiator Group
- Nimble – Create Volume
- VMware – Configure Networking
- VMware – Bind vmkernel to iSCSI Software Adapter
- VMware – Add your discovery IP
- VMware – Add Storage
- VMware – Set Round Robin
1. Nimble – Create Initiator Group
The Initiator Group will allow you to connect your volumes directly to the IQN’s of the iSCSI Adapters you want to connect to and nothing else. In this step, we’ll create the initiator group and then add the initiators for each ESXi host. Once logged into your Nimble Management Console, head to:
Manage Initiator Group > New Initiator Group. Call the group whatever you’d like.
After this, you’ll want to add initiators. The initiators are best added using iqn.’s of the host. In VMware:
Highlight the host > Configuration > Storage Adapter > Highlight your iSCSI Software Adapter > Details > Copy the IQN (Also called the WWN or World Wide Name), and paste it into the initiator iqn field.
Here’s a shot of where the iqn is found, rubbed out in blue:
And here’s where to paste the iqn into the nimble field:
There’s no need to add an IP Address for this connection, the iqn will be good enough. Environments may vary. Do this for all of the hosts you’ll be adding to this group.
2. Nimble – Create Volume
A volume will need to be created and your new initiator group will need to be applied.
In the Nimble Management Console, head to Manage > Volumes > New Volume.
From here, you’ll enter the details of the volume. Name it whatever you’d like, making sure to adhere to the naming policy, something easy like datastore1 will work just fine. Make comments so you know what you intend to put on the volume. Your performance policy will matter, depending on what version of ESXi you have. “VMware ESX” will be used in my tutorial because I’m using a VMware version less than “VMware ESX 5” – nice and simple, but remember the block size of the volume will not be able to change after the volume is created, so you won’t be able to jump from one policy to another.
For Access Control, bubble in the option to limit access, check the initiator group, choose the group you created, and check “Allow multiple initiator access” if you want more than one host accessing the volume. Otherwise, the volume won’t be seen by other hosts after you’ve added the volume to the first host.
Click Next to bring up Volume Size
Enter a size for the volume. In my example, I’m going to leave reservations and whatnot default and just add the size and click Next. Feel free to adjust your reservations and snapshot information if you’d like.
Regarding Protection: “Protection” as Nimble calls it, is referring to the snapshot schedule you give volume collections. Snapshots done at the SAN level can be scheduled here. Nimble does an amazing job at snapshots, compression, and replication. I’d suggest you look into this in the future. For now, since we are getting this volume attached to hosts quickly, I’m going to skip this by saying None. Nimble will “yell” at you in red. This is OK, you can proceed, but know you should return to this later on, especially if you have no other method of backing things up.
Their notes here:
Volumes assigned to a volume collection are protected according to the volume collection’s protection schedule. Standalone volumes can be protected using a protection template or by creating a custom protection schedule.
Here’s the yelling:
3. VMware – Configure Networking
You’re going to need to make sure you follow best practices. Here are notes taken in a Nimble Class:
- Do not use NIC Teaming on the iSCSI network – VMware and Nimble recommendation
- Use 1:1 VMkernel to Physical ports. Even Better – 1:1:1 VMkernel to vSwitch to Physical
That said, you’re better off creating to vmkernels and attaching one nic to each of them. Here’s a screenshot of one. Best practices says to use two for more paths and redundancy. Be sure to give it an IP address on your data network (You separated your data and management network, right!?).
4. Bind vmkernel to iSCSI Software Adapter
Just because you created a vmkernel and gave it a physical nic to play with doesn’t mean it knows you want to use it with the iSCSI Software Adapter. It needs to be bound to the software adapter. You can do that by doing the following.
For VMware vCenter 4:
Get the vmkernel name, in my screenshot it is “vmk4” and the vmhba ID, which you can find at Configuration > Storage Adapters > iSCSI Software Adapter, which in my screenshots above is vmhba32. With that knowledge, run the following command.
esxcli swiscsi nic add -n <var>vmk4</var> -d <var>vmhba32</var>
And there you have it. To list the bind and test to make sure it’s there, you can use this command:
esxcli swiscsi nic list -d <var>vmhba32</var>
Do this for all of your hosts.
KB for binding: http://pubs.vmware.com/vsphere-4-esxi-installable-vcenter/index.jsp?topic=/com.vmware.vsphere.esxi_server_config.doc_41/esx_san_config/configuring_iscsi/t_connect_software_iscsi_initiators_to_iscsi_vmkernel_ports.html
For VMware vCenter 5.0
You can do this in the GUI. This was taken from a KB:
- Log in to the vSphere Client.
- Select a host from the Inventory panel.
- Click the Configuration tab.
- Click Storage Adapters in the Hardware panel.The list of available storage adapters appears.
- Select software or dependent iSCSI adapter, then click Properties.
- In the iSCSI Initiator Properties dialog box, click the Network Configuration tab.
- Click Add, then select a VMkernel adapter to bind with the iSCSI adapter.Note: You can bind the software iSCSI adapter to one or more VMkernel adapters. For a dependent hardware iSCSI adapter, only one VMkernel interface associated with the correct physical NIC is available.
- Click OK.The network connection appears on the list of VMkernel port bindings for the iSCSI adapter.
- Click Close.
5. VMware – Add your Discovery IP
VMware needs to know where to look. You have a discovery IP Address assigned in Nimble, you just need to tell VMware about it. If you forgot, the Discovery IP is located at Manage > Array > Edit Network Addresses > iSCSI Discovery IP. Show below. It will have an IP Address on your Data Network.
Once you have it, add it to each host.
Highlight a host > Configuration > Storage Adapters > Details > Properties (Far Right) > Dynamic Discovery Tab > Add.
You can leave the port the default at 3260.
I’d show you the IP added in this shot, but I’m trying to be discrete:
6. VMware – Add Storage
You can now discover and add the storage volume you created on the Nimble. Do this by Rescanning HBA.
Highlight a host > Configuration > Storage > Rescan All at the top right > OK.
Give it time to scan and then Add Storage.
Add Storage > Disk\LUN > Choose your volume > Add and choose Next until Finished
7. VMware – Set Round Robin
Your storage is ready to use at this point, but Nimble strongly suggests using Round Robin as your path selection. You can change this at any time once the volume is added. You’ll need to do this to every host.
Highlight a host > Configuration > Storage > Highlight the Volume you just added > Properties > Manage Paths > Choose Round Robin Path Selection > Change > OK and close windows
You’ll know you’re in good shape when you see Round Robin for your Path Selection:
At this point, you’re done!
This is a very minimal way to get storage presented to your hosts. Please keep in mind that many of these steps will need to be done to every host. You’ll also want to look into get more detailed in regards to snapshots, volume collections, proper volume policies, etc.
I hope this helps some of you. Let me know how it goes. Feel free to comment if you have any questions.