Skip to main content

Adding a hard drive to Citrix XenServer

This article is a must read, if you are building a demo environment with hardware, where you have limited storage capacity.

My scenario is, I am building a new demo environment with 2 IBM servers that have 2 SATA-3 drives in each server, i want to virtualize the servers with Citrix XenServer so i can build a Virtual Demo Lab. Citrix XenServer identify both harddrives and i can choose to install the xenserver on 1 of the drives. XenServer installs smooth as always, after installation i connect with XenCenter to my Citrix XenServer and in XenCenter i only see 1 Local Storage and not 2 Local Storage.

My intention was to run the XenServer on first harddrive and all the VM’s on the second harddrive.


This article describes how to add a second harddrive as a local storage to XenServer.


Adding new hard-drive in XenServer is a bit different from the traditional Linux process. For XenServer, you need to create a container called a ‘storage repository’ to define a particular storage target (such as a hard disk), in which Virtual Disk Images (VDIs) of VMs are stored. A VDI is nothing but an abstracted storage space which acts as the hard-disk for VMs.

Xen storage repository supports IDE, SATA, SCSI and SAS drives  when locally connected, apart from iSCSI, NFS, SAS and fiber channel in case of a remote storage.


Steps to create an SR in a XenServer.

1. SSH to the XenServer as root or use XenCenter Console.
2. Find the disk ID of the new device using the following commands:

# cat /proc/partitions

You will see list of all the HDDs and partitions. Find which device is your new local disk. This is probably “sdx”(most probably sdb) or “/cciss/c0d1p0”.

# ll /dev/disk/by-id

This command will list the disk ids for all the partitions/HDDs present in the server as shown in the image below.

Find the disk ID of the “sdx” or “cciss/c0d1”disk. The “scsi-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx” or “cciss-xxxxxxxxxxxxxxxxxxxxxxxxxx”format is what you need.

3. Find out the ‘host-uuid’ in the XenServer using the following command:

#xe host-list

The uuid (RO) is the ‘host-uuid’  you need.

4.Create a Storage Repository (SR):

# xe sr-create content-type=user device-config:device=/dev/disk/by-id/<scsi-xxxxxxxxxxxxxxxxxxxxxxxxx> host-uuid=<host-uuid> name-label=”Local Storage 2” shared=false type=lvm

– Or –

# xe sr-create content-type=user device-config:device=/dev/disk/by-id/<cciss-xxxxxxxxxxxxxxxxxxxxxxxxx> host-uuid=<host-uuid> name-label=”Local Storage 2” shared=false type=lvm

– Or –

# xe sr-create content-type=user device-config:device=/dev/<sdx> host-uuid=<host-uuid> name-label=”Local Storage 2” shared=false type=lvm

You can verify it from XenCenter with the following steps:

  1. Connect to the XenCenter.
  2. Go to the ‘Storage tab’. You will find the details of all storage repositories here. You can see the storage ‘Local Storage2’ in the list.

This signifies that the disk has been added successfully. Now, you can start creating VM’s on it.

Leave a Reply

Your email address will not be published. Required fields are marked *

Turn on pictures to see the captcha *