I have a little machine ( AMD Athlon 64 X2 2.1 GHz, 3GB of DDR2, 320GB disk space) that I use as a server,
I would like to convert it as an Hypervisor to host many little Linux Virtual Machines (between 128MB and 256MB of RAM per VM, just for some tests (I'm IT student)), but I don't know what solution choose (I need to host many servers softwares like Apache, Mysql/Postgresql, Samba, etc), I tried many :
VMWare Server: Not bad at all, compatible with all the other VMWare solutions (Workstation, Marketplace), good performances, but the Web UI is really buggy and that don't look very "scriptable".
XenServer: The Management Interface is really good, but I have very bad performances on Linux VM (Ubuntu Server take more than 30min to install instead of ~15min on VMWare server)
ProxmoxVE/OpenVZ: Really good solution, fit in 99% of cases, low memory overhead, fast, just perfect ! But there isn't a lot of compatible distribution (the Last Ubuntu server by example), but that not really a problem in my case, the real problem is the kernel, it's a bit locked, I wanted to create a iSCSI Target VM, but it's possible because that require kernel modification that are not allowed on this type of virtualization (Containers).
What do you recommend me ?
Thank you
I would give VMWare ESXi a shot. You should still be able to find 3.5i, which works on machines with less than 4 gigs of ram. In my experience, ESXi is simpler to use than the Xen counterparts, which seem to have somewhat more hefty requirements.
The speed between VMWare and XenServer should be similar. But it depends on a lot of things like what what sort of drive you were presenting the guest. For instance VirtIO drives will be much faster than an qemu emulated ide or scsi drive. But the guest OS has to support VirtIO drivers. Ubuntu Server 9.04 and newer support virtio.
Another option that you may want to look into is KVM. It's similar to Xen in that it uses qemu and libvirt and can by controlled via many of the same tools such as virt-manager or convirt. It however is just a module that you load in Linux not a stand alone hypervisor.
I currently use KVM and virt-manager on my laptop for my test IT Lab.
After you've installed VMware Server, point your browser to https://yourserver:8333/client/VMware-viclient.exe and install the VMware Infrastructure Client. Now you don't have to rely on that horrid web interface for everything (if you're base OS is windows...).
Some other free options that you might check out would be VMware Player and VirtualBox. VMware Player is pretty full featured and now includes the ability to create VMs with the most recent version. Similar to Workstation really, but I don't think it lets you do snapshots.
I tend to stick with the VMware products, but the few times I've used VirtualBox I've been impressed with the performance and flexibility.
If you're Windows shop, Hyper-V (R2 of course) and some Windows-based iSCSI target solution feeding shared storage to the hypervisor cluster (like StarWind f.e.) should do the trick. It's possible to have everything close to free of charge to run. If you want to run some Linux Xen should be a good option. I'd stay away from container thing as it's not really mature from my point of view yet... Unless you're doing this for test & development and not for production of course :)
-ichiro
I have spent the last year using OpenVZ and am currently using XenServer on a Compaq 2320D (Atom 330, 2GB RAM, 250GB HDD). Your little machine is better than mine. I will share some lessons learned from my blog.
I will assume that you are only planning on running Linux guest OS.
The biggest difference between OpenVZ and Xen is in the memory management. They do it differently. I do not know the exact differences but I was unable to smoothly run a simple server with 64MB RAM on OpenVZ but I could run a web-server + mysql + php on a 64MB Xen VM. It might be something to do with the swap capability in Xen which is not available on OpenVZ.
Then, there is the issue of networking. Configuring Xen is more straightforward. In my case, I had to have several broadcast capable VM on the network. With OpenVZ, this involved making several bridge configurations and not venet0 (well documented on their wiki) while on Xen, it was done by default just like how a real network card should work.
Finally, there is the issue of configuration. Trying to figure out how much privvmpages and other settings for OpenVZ was a nightmare. It was easy to just tell Xen to use XXMB of memory and be done with it. On the other hand, OpenVZ allows you to over-sell the amount of memory available while Xen does not.
I suggest that you use VirtualBox running on a lightweight server distro like Debian or Ubuntu Server (or similar). VirtualBox gives you a few options to run with/without a gui, and it's SDK is scriptable on Linux via Python.
I do suggest the downloadable version from virtualbox.org instead of the OSE version that's in the repos/out there. It adds a few nice features, such as USB support.