Jump to content
Welcome to our new Citrix community!
  • 0

XenServer with shared local storage

Adam Csintalan



I’m looking for advice.

Given two servers, each has 64GB RAM,  one has 6TB hardware RAID10 local storage, the other has only a few spare disks about 250GB.

The goal is to have both servers running XenServer and using the same 6TB storage. (I can’ afford a dedicated storage server.)


My idea is the following:

Install XenServer 7.0 to the server with raid. Create whole disk LVM on the storage, format it as Ext3, export it with NFS4 by enabling nfs server in dom0. Create a new SR on the NFS share and use it as a local storage.

The other server will also use the same NFS share via dedicated NIC with it’s own SR. (It turned out they can’t use the same shared repository if they are not in pool.)


This way I won’t have to partition the space, I will have thin provisioning, and questionable performance. The drawback is that the two servers can’t share the VM-s without pooling, but I can always export/copy the VM-s between the servers. (Anyway the pooling is still possible with this setup if it will be necessary.) I know it’s not supported solution but it won’t be a production system.


Do you think it is a viable solution? Is there any better option?









Link to comment

9 answers to this question

Recommended Posts

  • 1

You still don't want to depend on any local storage on a XenServer to serve out any sort of storage (NFS in your case) other than local storage because if that machine goes down, your pool is toast.  NFS storage should always be served from an external NFS sevrer that has no overlap with any of your XenServer hardware environment.

Would what you say be made to work, ye,s very likely, but it would be IMO a really unstable design. You should be able to find some sort of basic server from which you can create your 6 TB of space and do an NFS export from it. As to the file locking question, if it stays within the realm of being a true XenServer SR, the file locking and access control will be taken care of on that level. I'd still strongly recommend against that route, even so.



  • Like 2
Link to comment
  • 1

What I would probably do is on the server with 6TB allocate all as local storage and install a linux 

or windows vm with local storage allocated that dishes out NFS to whatever size SR you need for

the second server. I wouldn't modify dom0 on the 6TB server. I've done NFS/CIFS sharing like this

in the past for test systems.




  • Like 1
Link to comment
  • 0

Local storage as an SR will not work shared to another server like that; you will run into all sorts of file locking issues. Much better would be, for example, to identify some external space on a server and create a simple NFS export to your XenServer pool so you can access an NFS-based SR on all your servers within that pool.



Link to comment
  • 0

Thanks for the fast replies.

Alan: Yes, adding a VM to share out the storage would be the “cleanest” way, but I’m afraid it would add too much overhead and makes the second server painfully slow. My other concern is that I don’t know yet how much storage each server will need, so I wanted  to be as flexible as possible. With this solution I have to commit a fixed size for sharing, however using an Ext3 local storage with thin provisioning would be still fine from this aspect. I will test this solution too.


Tobias: maybe I misunderstand you, my idea is the same as yours, except that the “some external space on a server” happens to be the 6TB disk exported on the first server with NFS. (I have to use the 6TB server for storage, adding a third server is not an option.)

From the Xen’s perspective both servers will use the storage through the NFS, there will be no “real” local storage.


So on server1: Xen -> NFS (dom0) -> 6TB filesystem used exclusively by the NFS service

on server2: Xen -> LAN -> NFS share on server1

Is your remark about file locking issues still true in this case?

Link to comment
  • 0

As an aside, what would be helpful, and nice to be able to take advantage of the local storage that a physical server may have, would be if the hypervisor could support Lizardfs.

With Lizardfs, could group a bunch of separate machines in to a distributed, redundant storage which could then be used to provide the storage for the whole pool without requiring separate hardware. A bit like Vmware's vstorage, in a very basic way.


The performance of Lizardfs is quite good, when there is enough machines 3+ with good interconnect.


I have a small test lizardfs using vm's and having a local disk to create a large pool of storage, which at the moment is then used for a docker swarm (also in vm's). In my case I have 6 machines providing the storage, which is on 400G ssds. I get a read speed of 2GiB/s and a write of 150MiB/s. This is with 2 storage options. 1 doing 3 copies of the data and the other doing a strip of the data over 4 machines with 2 providing the redundancy - ie like Raid 6.




Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...