Running an Intel VM Server at Home

I needed 4 Linux instances in order to test GPFS (IBM’s General Parallel File System) and I didn’t want to buy 4 Intel boxes.  I took a quick look around, and it appears VirtualBox is highly recommended.  The product is now owned by Oracle, but it’s open source and available for free at https://www.virtualbox.org/

The Basic System Layout

I’m gonna need more disk space, so I took a trip to Fry’s and bought a 1TB drive for about $60.  I should be able to divide that up into sections for each Linux install.  Turns out, I will need 5 Linux installations because VirtualBox runs under Linux.  That means the layout should look like this:

vm1 – Linux VM system running VirtualBox
linux1,linux2,linux3,linux4 – the 4 Linux guests running under VirtualBox

Base OS Installation

First I installed CentOS 6.4 on the bare hardware.  With CentOS I always choose the minimal install, and then add only the features I need.  These items were added, not because they are needed by VirtualBox, but because I just generally add them:

yum -y install openssh-clients
yum -y install telnet
yum -y install man
yum -y install ‘dvd+rw-tools’
yum -y install make
yum -y install gcc
yum -y install gcc-c++
yum -y install kernel-devel
yum -y install rpm-build
yum -y install samba
yum -y groupinstall “X Window System” “KDE Desktop”

yum -y update

Preparation for VirtualBox

The manual says I need something called QT and another thing called SDL installed in order to run the GUI interface, which I would like to do. QT “may” be installed, but SDL is not yet:

[root@linuxhost2 ~]# yum list | grep -i qt
qt.x86_64 1:4.6.2-26.el6_4 @updates

[root@linuxhost2 ~]# yum list | grep -i sdl
SDL.i686 1.2.14-3.el6 base
SDL.x86_64 1.2.14-3.el6 base
SDL-devel.i686 1.2.14-3.el6 base
SDL-devel.x86_64 1.2.14-3.el6 base
SDL-static.x86_64 1.2.14-3.el6 base

yum install SDL

VirtualBox Installation

rpm -ivh VirtualBox-4.2-4.2.16_86992_el6-1.x86_64.rpm

Now I can start kdm on the main console for the server, open a Konsole, and type VirtualBox to run an X11 program which appears to be the VM control window.

Adding my First Virtual Server

I defined new VM guest named linux1 with 2 CPU’s, 2G ram, about 100G disk (fixed), and since I want to use my router as a DHCP, I specified the Bridged Adapter option for eth0 in the VM network settings.  That way I get 192.168.* addresses, instead of 10.* addresses using the default NAT setting.

Then I pushed the VM button to “start” linux1, and the OS saw it was not installed, and booted from the CentOS CD.  Pretty cool!.  CentOS installed normally under the VM.  You can use the mouse and keyboard normally in the window assigned to this particular VM (under KDE), and you can tell VirtualBox to quit giving you the same warnings about mouse capture over and over again.  Once installed, the new guest took on IP 198.168.0.124 which it got from my routers DHCP.  So I can now setup the router to reserve that IP for this particular MAC address.  VirtualBox also setup a unique MAC address for the guest, which was nice.  In fact, once the VM was defined with CPU’s, RAM, Disk, and the Bridged option for eth0, I don’t believe I did one thing differently than I would have done with real hardware.

Cloning the First System

I tried using the Clone options in VirtualBox, and they worked great, but I could not figure out how to do things like change the server name and IP address for the new guest.  I’m sure someone who has at least one Linux class could do this easily, but I have not had one Linux class – and I gave up.

Instead, I simply ran through the same process I used for linux1 and created 3 more instances.  It was pretty easy.  But of course if I had to do 100 I would have to build a Golden Image and learn how to properly clone.

Some Quirks

Within the first few days of running, the vm1 (lowest level Linux) appears to have rebooted itself – both times fairly early in the morning.  Since I have no automation to bring up the VM guests, after a reboot only vm1 comes up, without VirtualBox running.  Of course that’s the first thing I noticed – linux1-4 were not running.

I do not run X-Windows on my PC, or even have it installed.  So the only way to run KDE Is from the KVM connected to the hardware.  That’s no problem, since if things work correctly I should only have to use VirtualBox to make changes to the virtual hardware. But that’s also where I need to start a “Konsole” in order to issue the VirtualBox command which starts the VirtualBox interface windows.

At first, I issued the command and the Konsole session had to stay open for the life of the reboot.  Then I thought about issuing the command as VirtualBox & so I could run it in the background and then log off the Konsole.  That appears to have solved the reboot issue, since the VirtualBox and VM guests have been running for 6 days now with no trouble.  We’ll see…

Performance is pretty good, but as you can imagine if you’re running something on one guests, don’t expect to be able to grab the full dual-CPU hardware in one of the other guests.  We’ll see…

Conclusion

Overall though, VirtualBox works great and I certainly agree with all the people who have recommended it.  If an Intel VM novice like me can get it going, anybody can.

Now if I can just find time to install GPFS on the 4 instances, maybe I can learn something really new.

08/17/2013 – Command Line Interface

There are some commands for working with VirtualBox without requiring X-Windows – allowing me to work remotely.  For example:

VBoxManage list vms
VBoxManage showvminfo linux1 | grep State:
VBoxHeadless –startvm linux1 –vrde off &

01/15/2014 – Update Regarding Reboots

This box would reboot itself intermittently, maybe once a week or so.  I was hardly using it so I didn’t investigate.  But in December I needed an Intel box to install Windows 2012 on so I could test a product named IBM Endpoint Manager.  So I swapped in an empty disk drive and installed Windows 2012 and other needed products.

During the install the machine rebooted unexpectedly – spoiling the installation.  I tried again and got through.  Later another unexpected reboot occurred, and Windows 2012 is not happy with that, demanding all sorts of explanations for its logs.

I took a wild guess that this mother board was running just a tad too fast for the processor or memory or something.  You know, the motherboard manufacturer wants to make their stuff look as good as possible, so they set the defaults pretty fast.

So I went into the BIOS and there are a zillion settings.  I just started changing anything that looked like it might help, not really knowing what I’m doing.  For example, if something was set to 120, I lowered it a bit, maybe to 110.  The first boot after these adjustments failed – the machine would not run at all.  Luckily the BIOS is built to sense this, reset itself, and reboot successfully with defaults.  I tried again with fewer mods and the machine works, and has not unexpectedly rebooted itself since.

Hmm… maybe someday I should try something other than the cheapest parts available :)

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>