Running a Home Virtual Server – Part 1: On Hardware and Hypervisors

In this last post I talked about picking up a computer at my university’s surplus sale to use as a replacement server in my home setup. The plan is to use this machine to run several virtual machines on, mostly to play around on but also as my home server. I didn’t go into to much detail in that first post, so I’m going to break this down into multiple posts that can go into more detail. I’m not sure how many parts there will be as of now, but I’ll be sure to try and link all the posts together so they should be easy to find. First up is a discussion about the hardware and my final decision about what virtual environment I decided to go with.

Hardware

So the machine I could go with was an older Gateway E-4620D desktop. It’s specs coming out of the surplus sale (after taking the donor parts) made it an Intel Core 2 Duo E4500 running at 2.2GHz with 3GB of RAM. No hard drives (like all the surplus computers) and only integrated graphics (fine for running a headless server), It also came with a DVD drive. Since I didn’t have much in the way of spare hard drives around my house, I planned on buying some to put in this. I also bought 4GB (2x2GB) of RAM to put in my main desktop and moved 2GB (2x1GB) to this machine. So here are the  bullet points of the final specs for what I’ve got right now.

  • CPU: Intel Core 2 Duo E4500 @ 2.2GHz
  • RAM: 4GB (4x1GB) DDR2 800
  • OS/VM HDDs: 4x160GB Western Digital Blue SATA drives; configured in software RAID 10 (see notes)
  • Data/Backups HDD: 1TB Western Digital Green SATA Drive
  • NIC: Integrated Gigabit Ethernet
  • Optical Drive: DVD RW

HDD NOTE: apparently, running a virtual server on software RAID is the dumbest thing anyone can do on the face of the earth… I have no idea why, but since I’m literally running this on a computer I spent $4 on (without HDDs), I don’t really see the need to drop $500 on a “recommended” hardware RAID controller. You’ve been warned, if you follow advice from someone doing the dumbest thing on earth, that’s your problem.

I’m don’t think there’s anything else that I want to do hardware wise to this machine for now. I might add a second NIC, but not do anything with it for right now. I went through a few hardware iterations before I landed with these as “final” specs, and if possible I’d recommend that you try to settle on hardware before trying to build up the environment. Technically you should always be able to backup running virtual machines and restore them. I however, ran into some issues probably on account of either drive types (IDE and SATA) and not booting to the right set. I wasn’t far along though so it wasn’t very painful to wipe everything out and start from scratch.

Hypervisor

I should start off by saying what I was looking for in my hypervisor choice. My main concern was ease of maintenance. I wanted to be able to just figure out the bulk of the server maintenance and then look up any specifics that I might run into. I also wanted something pretty easy to setup from bare-metal. This mostly limited my choices to anything with some graphical management interface, because command line doesn’t lend itself to being about to easily figure something out. Initially I was planning on using XenServer for my virtual environment and actually started by installing it first on this server. The biggest problem I ran into is the CPU doesn’t support hardware virtualization, so this limits me to running virtual containers (or similar technology). I tried as best I could for a while to figure out how to create containers in XenServer, but could never find an easy way to set those up.

After doing some more research I gave a second look at Proxmox Virtual Environment. I’ve had some exposure to it before, not in person but on a video podcast that I watch regularly, Hak5. They created a clustered virtual environment using Proxmox and used it for some projects on the show. In this round of research, I found that Proxmox comes equipped with support for OpenVZ containers right “out-of-the-box” and they are dead simple to get up and running. You basically download a template of your base operating system, create a container from that template, and start it up. That’s it… most everything is also controllable from their slick “Ajax-ified” web interface. So since it meets my biggest requirements, I’m now underway with a Proxmox Virtual Environment running on my surplus server. All told if everything went well, you could be up and running well with a solid weekend’s worth of work.

The easiest thing to do is do a fresh install from the ISO file. My case was a bit more difficult since I wanted to install on a software RAID.

  1. First, is to do a fresh install of 64-bit Debian 6 (Squeeze).
    • During the partitioning:
      • I set the boot drive to be the first part of /dev/sda, about 150 MB should do.
      • I setup a RAID 10 using the 4 160GB drives.
      • And be sure to allocate some swap space.
    • On the RAID device I setup an LVM with these 3 Volumes.
    • When selecting base packages and additional software, the ONLY thing I usually select is SSH Server.
  2. After the base Debian install is done, you can follow this guide on the Proxmox Wiki to install Proxmox, I just left out the optional part at the bottom of the guide.

Now you should be up and running. In the next I’ll talk about some of the virtual machines I have setup.

[googleplusauthor]

One thought on “Running a Home Virtual Server – Part 1: On Hardware and Hypervisors”

Leave a Reply