Saturday, November 28, 2009

The Server Rack: The Hypervisor and VMs (or, in English, playing with Pretend Computers)

When most people get bored, they watch TV... Me, when I get bored, I waste my time on Wikipedia. Fortunately this introduces me to all sorts of innovative concepts. Unfortunately this almost always costs me money, as I invariably get involved in various oddball projects...
About a month ago I came across something called a hypervisor, or Virtual Machine Supervisory Operating System. This is a concept that I have known about for a very long time, but until recently have mistakenly referred to as VMS. What a hypervisor does is allow a computer to run multiple instances of an operating system, or several discrete operating systems, simultaneously... Mainframes have been equipped with hypervisors for the last thirty years, however this technology has only recently appeared in the microcomputer (PC) market.
In my research (or, more correctly, browsing) I happened upon the VMware website. Years ago I had experimented with VMware (then a PC emulator), with disappointing results. However more recently they came up with a true hypervisor called ESX, which recently has been released as freeware as ESXi. But, as is usual with me and freeware, it isn't exactly free...
Pictured above is my new server: The Hive. I gave it this name because, when it is fully configured, it will be "a swarm of virtual PCs, waiting to be unleashed." It is built from the scraps of at least three dead PCs; the case and hard drive are from my last desktop PC (which died due to a defective front-panel USB connector). I later painted the case with bronze hammertone paint when the Media Center lived in it, the board and memory are from my brother's last PC (the board is his SECOND warranty board, which he said is "dead to him", but with a CPU purchased from EK Computers for $25 works just fine for me). The remainder of the system (video board, fans, power supply) were gathered from my collection of parts.
Unlike my previous "science projects," this one did not go easy... It took no less than a month of experimentation, aggravation, playing games with computers (as opposed to playing games on computers), frustration, and so on... But I finally got it working.
Here is the inside of "The Hive." This is my brother's premium gamer ATX motherboard, an EVGA Socket AM2 nForce 590 SLI board with integrated dual gigabit Ethernet, IEEE 1394 (FireWire), USB 2.0, AC'97 audio, dual PCI-e 16x slots (for graphics cards), Serial ATA (SATA) and a myriad of other features. Of course for ESX server 3i, most of this is basically useless (at least when one is using mostly surplus parts)...
For starters is graphics... ESXi uses the now basically unheard-of resolution of 80x25. This means that the screen only displays 80 columns and 25 rows of text, with only ANSI (or text-terminal) graphics. This renders the long PCI-E 16x slots basically worthless, and I use an ancient SIS 2MB card that I had laying around for the console.
In addition to this the 8.1 surround AC'97 CODEC audio chip is completely useless (ESXi has no support for audio whatsoever), I am unsure as to weather or not 1394 is supported... However many of this board's features are both usable and beneficial to ESXi. For starters, this board supports dual-core processors and dual-channel memory. This allows two applications, or "guest operating systems" to access resources simultaneously. Both the SATA and Dual Gigabit Ethernet features are supported, as is the USB 2.0 interface (for attaching hard disks by USB).
Unlike a typical PC, an ESX server is used entirely over a network. The image displayed on the monitor above is the only thing that ESXi EVER displays on the attached monitor... However the VMware Infrastructure Client (VIclient) gives full access (including a virtual console) to the hosted operating system.












This is a screenshot of VIclient running on my Vista-based laptop. Shown is the console for a Windows 2000 Server virtual machine. On the left of the console is a list of all of the configured Virtual Machines. The ones highlighted in green are currently running. As you can see this single computer is currently running three operating systems, with a fourth shut down. With ESXi the number of operating systems that can be run simultaneously is limited only by the available resources of the host PC; and in all actuality the number of VMs can exceed the available resources of the host PC, at the cost of performance. Configured properly this PC may be able to run nearly a dozen separate operating systems at once!

Well that's all I have on this project for the moment... There may well be more later...



Just a note: the name "LIABnet" on the top picture refers to the computer gaming group comprised of most of my friends and myself, called Losers in a Basement. LIABnet is my part of Losers in a Basement; though all of us are very computer literate and most of us built our own computers, I am the "server guy" of the group, and host the Losers in a Basement Network, or LIABnet.