Wednesday, October 2, 2013

How to Add Nimble Storage to Citrix XenServer

Hi Friends,

When I bring up XenServer a lot of people feel that it's down for the count in the hypervisor world, but I still think there's life in it!  :-)  It recently went open source and can be downloaded from either Citrix or  I'm still asked from time to time about how to use Nimble Storage with XenServer, so I thought it would be a good idea to create some blogs on the topic.  I'd really be interested in hearing if you use XenServer, in what part of your business and what made you decide to use it.

Well then, on to creating some LUNs!

First let's create our initiator group so our Nimble array knows who our XenServer host is.

1.  Let's grab our initiator IQN from XenServer so we can create our initiator group on the Nimble array.  Click on your XenServer server, click on the General tab and copy down the iSCSI IQN.

2.  Next go to your Nimble Storage array and click on the manage and select initiator groups.  Click on New Initiator Group.

3.  Give our initiator group a name and click on the Add Initiator button.  Enter in the iSCSI iqn that you copied from XenServer and than click on OK and OK again.

Excellent, now the array and XenServer will be able to talk.  Now lets create a volume!

4.  Click on Manage and select Volumes.

5.  Now click on New Volume.

Okay, from here your mileage will vary since there are a bunch of different things you can do to optimize your volume, so I'm going to point out the highlights.

6.  Give your volume a name and select the initiator group you just created.  Click Next.

7.  Enter the size of your volume.  Click Next.

8.  Next create your protection policy.  This is just a test, so I'm not going to create one.

Outstanding, the volume and initiator group is created, we're ready to add storage to XenServer!  

9.  In the Nimble Array, go to Manage, Array.

10.  Here we're looking for the storage network our array and XenServer should be talking over.  Copy the Target Discovery IP Address, we're going to need it soon.

11.  Go to XenCenter, click on your server, then click on the Storage tab and then the New SR button.

12.  Select Software iSCSI as your Virtual disk storage.  Click Next.

13.  Give the new SR or Storage Repository a name.

14.  Remember that Target Discovery IP Address you wrote down from the Nimble Array?  Paste it into the Target Host.  Next click on Discover IQNs and Discover LUNs.  The LUN you just created should be discovered.  Click Finish.

15.  Now since this is a new LUN being attached XenServer, it will most likely want to format the LUN so XenServer can use it.

WARNING:  Make sure you don't have any data on this LUN that you want keep!

That's it!  You've just created a new LUN that can be used by XenServer.

Until Next Time!


  1. I use XenServer in a small hospital setting. Recently looked at being forced to move from XenServer to VMWare for a specific project but as the project didn't move forward, we chose to stay with XenServer. It's worked well for us for many years. Also considering Nimble storage (upgrade from Equallogic) which is what brought me here. Thanks for the post!

  2. Hey there, thanks for the write up. I'm glad to see someone else using Nimble and Xen. I LOVE my Nimble, but I have been using Proxmox until late, and now I am having an issue when using Xen Server. I noticed you have a similar issue in your screenshots, check it out. So the Nimble uses a discovery IP on which your iscsi traffic is supposed to flow on. Then you have your other NICs for data traffic. When you setup your iscsi IP in step 14, the Xen then uses one of the data traffic IPs for the IQN. In my case, is the discovery IP, and .41, .42, .43, and .44 are my data IP for iscsi. Xen will only let me choose one of those four, which kinda negates the purpose of not having a single point of failure should one of those NIC's die, or the switch they are connected to. We do have multiple switches VLAN'd and stacked for redundancy and reliability.

    Do you know any way around this, or is this just the way it is?

  3. Not sure if you are still looking. Xenserver supports mpio when using multiple vlans. I would stay away from configuring through the GUI however. I found that using the GUI created multiple connections from each xenserver host to each volume on the san. You may not want to do that if you have volumes that you will not use for xenserver storage repositories. I have two nics in each Xenserver set aside for storage. Each is on a seperate vlan. Using the following, I was able to set up four paths across two switches each on a seperate vlan.
    First, you can find the iscsi target by connecting to the Nimble using ssh.
    Use "vol --info volumename" (where volumename is the name of the volume).
    You need to note the iscsi target.
    Next, ssh to the master xenserver.
    You need to probe the target to get the SCSIid.
    Run "xe sr-probe type=lvmoiscsi device-config:target=,,,"
    do not point it to the discovery address. Point it directly to the storage ip.
    Time to create the Storage repository.
    xe sr-create type=lvmoiscsi device-config:target=,,, device-config:targetIQN="" device-config:SCSIid=252fe849212024e386c9ce9005626bcdd name-label=XD-SR-01

    Hope this helps.

  4. It is a great post, what you said is really helpful to me. I agree with you anymore. Also great blog here with all of the valuable information you have. Keep up the good work you are doing here. Thank you for sharing such a useful post.

  5. Just purchased a CS-220 and running Xen from 5.6 to 6.2 across 4 hosts. Mid sized medical billing company with heavy MS SQL and MYSQL usage which is where the nimble should really shine.

    Playing around at this point, but loving it so far. I will come post back after it gets burned in!!

  6. we are the best digital marketing institute in Delhi. by the way that is a nice post.

    digital marketing course in ghaziabad