I was simulating a XenServer pool today. To do so, I started several
QEMU VMs, each of which ran a XenServer host. By bridging all the
network interfaces, I created a "virtual network" just for the VMs. I
added another regular Ubuntu VM which acted as an NFS storage server.
Finally, all the individual XenServers could form a pool. Even Citrix'
HA feature was working.
This was a very interesting and insightful task.
As I used overqemu[1], I only had to install XenServer once. After
that, I simply spawned multiple overqemu instances with the same base
image. This led to an interesting situation, because those instances
could not form a XenServer pool -- they all had the same host UUID.
Resolving this was rather easy but still interesting.
Now, of course, all this involves nested virtualization. To my
surprise, this worked pretty well and fast. But performance wasn't the
issue anyway. The point of this experiment was to find out how
XenServer responds to different kinds of host failures and storage
failures. This is why I used VMs in the first place -- it's easy to
add new ones or rearrange them.
____________________
1.
https://github.com/vain/bin-pub/blob/master/overqemu