A few weeks ago I set out to get a test rig running for lab VMs running under Citrix Xen and Server 2008’s Hyper-V. However, my lab (READ: basement) already has 4 rack servers, a Citrix Access Gateway, several routers, a 1.5TB NAS, and a 3000kva UPS. I was a bit concerned that bringing another rack server that sounds like a jet turbine into the basement might be a bit too much for the boss (READ: wife)
Since I wanted this rig to be used only for lab VM (my prod VMs run on the redundant rack servers), I decided that a simple white box system with a good proc and sufficient RAM should do the trick perfectly. The biggest concern that I had was I knew that both Citrix Xen and Server 2008 Hyper-V require that you use 64-bit CPUs (not a big deal today) and a BIOS that supports setting Intel-VT or AMD Pacifica to enabled (this is the setting that will often leave you with a whitebox system that won’t run Windows virtualization).
So I decided to roll my own whitebox solution that would allow me to experiment with Citrix Xen and 2008 Server Hyper-V for a low cost. I also wanted to get a system that was small and quiet. I’m a huge fan of Shuttle XPC systems and I have several of them in my home operating as HTPC systems (yet another “hobby” of mine). Shuttle systems are very well constructed, they are sleek, small and very quiet. It seemed like the perfect system to host my new lab VM beastie. Aside from wanting the system to be small, I also had a few other requirements:
- Quad-core proc (while CPU isn’t the biggest limitation on a virtualization platform, it certainly doesn’t hurt to have extra. Only the newest models of the Shuttle systems support quad-code procs, so my choices were a little limited.
- 4 GB of RAM. I know from previous experience that many Shuttle’s max out at 2 GB of RAM. So again, I needed to ensure that the system I chose supported 4 GB of RAM. RAM is the biggest limitation on a VM platform.
- SATA/300 with enough disk space for plenty of VMs – SATA/300 is about the fastest IDE disk you can get and you’ll need plenty of disk space if you want to run lots of VMs.
- 64-bit CPU support and Intel-VT or AMD-Pacific BIOS support. As I mentioned before, many whitebox systems don’t have a setting in the BIOS to enable the hypervisor, without it you won’t be able to run Hyper-V and you won’t be able to run any Windows VMs under Citrix XenServer.
With these constraints, I settled on the following:
Shuttle SG33G5B Barebones Case and Motherboard – $294.99 from Newegg.com
Intel Core2Quad 6600 2.4Ghz Socket 775 OEM CPU – $260.00 from Newegg.com
Mushkin 4 GB (2GB x 2) DDR2 800Mhz Dual Channel RAM – $122.99 from Newegg.com
Western Digital Caviar 320GB 7200rpm 16MB cache SATA 300 hard drive – $89.99 from Newegg.com
Sony Optiarc Dual Layer DVD Writer SATA – $28.99 from Newegg.com
Total price: $796.96 US – I realize there will be shipping, but there were also rebates on some products, so you’re still under $800US.
I assembled the system in about 10-15 minutes, but I’m pretty good at assembling Shuttles, so perhaps it might take a person new to Shuttle’s 30-60 minutes, but they are very easy to work with. It’s basically remove the case, case fan and ICE heatsink, install CPU and a little dab of CPU compound (use sparingly). Then attach the ICE heatsink and reattach the case fan. Then install hard disk, DVD, RAM and slap the case back on.
I’ve installed both 2008 Server RC1 (with Hyper-V Beta) and XenServer 4.1 Beta on the system, however I found out that the Marvell Yukon GB Ethernic NIC onboard on this system is not supported under Citrix Xen. I happened to have a RealTek 3189 10/100 NIC laying around that I popped in which was detected and supported properly for Xen. Server 2008 RC1 detected the Marvell GB NIC out of the box without having to load drivers. Also, for Citrix Xen to see the onbound SATA controller properly you need to set the BIOS to use Legacy mode instead of AHCI. The legacy mode works fine for both Xen and 2008. I presume the AHCI mode works for 2008, but I didn’t bother testing it since I wanted to use both OSs. Also, don’t forget to ensure the Intel-VT (Virtualization) support is enabled in the BIOS, as it’s required for 2008 Hyper-V and Xen (when running Windows VMs)
My ultimate plan for this system would be to configure it as a dual boot configuration with Xen and 2008 Server, but I’m not entirely sure how easy that would be since Xen insists on blowing away all partitions and the MBR on the disk and 2008 Server must be installed into the primary boot partition. However, I’m going to keep after it to see if there’s a way to do it. Ultimately even if you can’t, it’s pretty easy to stand up another system exactly like this for $800. Granted, it’s not nearly as redundant or well performing as a rack mount server from Dell or HP, but then again it’s a fraction of the price. For simple lab VMs, it fits the need perfectly.
In case someone is wondering, VMWare ESX 3.5 and 3i doesn’t appear to work on this rig. The first limitation appears to be the NIC (it didn’t detect either NICs and I didn’t happen to have a supported NIC to try to see if I could get past that, but I presume the SATA storage would be the next issue. I know that ESX 3.5/3i supports SATA storage, but I think you need specific controllers. I could be wrong on that. To be honest, with VMWare you probably want to stick with a system on the HCL as it’s pretty picky when it comes to drivers. Xen is based on CentOS and has more drivers, and Windows 2008, well you can’t get many more drivers than that…