Xen Memory Ballooning, Snapshots, and Debian/Ubuntu Paravirtualized guests.

Hey everyone,

I’ve got some questions on how do use some of the features of Xen hypervisor on OpenSuSE 11.4. Currently, I am running a OpenSuSE 11.4 box with an AMD Phenom II X6 with 16 gb ram, with an onboard NIC, a 400 GB SATA drive for the Host OS and soon to have 3 2TB 7200 RPM SATA drives for storage. A few friends and I have put up the money for this machine just to play around with, give each guy a VM or two to have, and a 2TB drive each for storage. We have this hosted on a 10/10 symmetrical line. We thought about running with ESXi, but our moboard’s onboard NIC wasnt supported, and though we were able to create a custom ISO with the drivers needed, we ran into a few more problems and decided to run with Xen. We have liked it so far quite a bit actually! We have been keeping it at our apartment for testing purposes while we work out all the kinks, dial in exactly how we want our setup etc.

So, let me explain our setup and how we want to do things a bit more.

First, we have everything installed to this 400 GB SATA drive, including VM’s, which we have about 5 running right now, 3 Opensuse Guests and 2 Debian guests. One is a webserver, one a minecraft server, one an ampache server, and the others are just placeholders more or less right now. We dont have a RAID card, so for the storage drives we decided that we’d just put all the drives into a LVM group called Storage, create a mount point for each drive called something like /kydan /bill /jane, with no overlap between the drives, that way they can expand out their personal storage when needed, isolate their disk I/O to their own drive, and thus not effect the other users, and from what I understand, be able to do snapshots of their VMs. Given the nature of what we’ll be doing, I dont think we’ll really ever bottleneck the disk I/O, none of us are going to have any intense database applications, (minecraft is probably the most disk intensive I/O we’ll have, and we only ever have 5 people on at a time, max.) After discussing our setup with one of the Lab techs here at work, he said w/out a DB heavy app running, we’ll probably bottleneck at the network level first.

So, I suppose my first question is, will LVM snapshots work that way, and if so, what is the best way to do them? Also, how does the xm snapshot-create command work, and is it a viable alternative to LVM snapshots? I tried to do one last night, but using my SuseStudio created VM, I was getting an error, which I believe was due to the fact that it is probably not a qcow2 image. (not sure here, after a little googling thats what I concluded) There is little documentation on how this works, especially for a novice to Xen like myself, so some insight here would be great!

Next, we would love to enable Memory Ballooning (provided that I understand how it works, which how I understand it, is the ability to have the VM dynamically allocate the memory it needs, for example set a minimum and maximum memory allocation such as Min = 512 Max = 2048, and have it take the memory it needs as needed, instead of it occupying 2048 at all times.) I noticed you can set this up when making a new VM from scratch, (I think, is this correct?) , using the virt-manager tool, but when I tried changing the allocated memory on a running already created VM under the settings, by changing “current” memory to 512, and leaving Maximum memory at 2048, when I tried to put some load on the server that would force it to take up more memory, nothing would happen, It would simply crash when it tried to load the application, and not up any more memory. When I changed the “current memory” back to 2048, it worked just fine. We want to give each VM a total of 2 GB to work with, but for example, or Web server probably will VERY RARELY ever need 2 GB of memory, considering the number of visitors could probably be counted in the single digits per day, if not per week. So, to have it be able to allocate memory as needed would be very nice! Any insights here, or am I grossly misunderstanding things here? Once again, google wasnt very helpful, not very good documentation on memory ballooning.

Lastly, whenever I tried to make a Debian/Ubuntu paravirtualized host from scratch, I would have to select the “other” option from the list of profiles since only RHEL, OpenSuSE, SLES, Netware, Solaris, and Windows were the only profiles available. When I would choose that, it would give me an error “the installation source is unusable” pointing to the Debian ISO when I tried to use Paravirtualization, despite using the latest build of Debian, which I know has PV support. I am assuming that the host needs to know that its guest OS can do PV, which is why the profiles exist, but perhaps I am wrong. Is there a way to add more profiles to the VM creator, or something else to allow Debain PV guests?

As I stated, I am a novice to Xen and virtualization in general, with my only experience a bit of VirtualBox, and VMware Workstation at work and home for fun. I am willing to learn though, patience is all I ask! Thanks in advance for your insights


anyone have any input here? I spoke with a friend who has used Xen and he suggested that the memory ballooning would work if I turned off ballooning to the dom0 and give it a static 1-2 gb of ram. He gave me the link to this TID to do that XEN Dom0 becomes unresponsive when shutting down a domU virtual machine

I’ll try that tonight when I get home from work, but anyone else tried this, or have any input on the other things I posted on?