While this is by no means comprehensive, I did want to aggregate as much VMWare Server ESX information as possible in one place. Having come from the GSX family of Server software I found the ESX information was scattered all over and I’ve spend awhile trying to condense it and organize it usefully. The official VMWare ESX page is here, and I encourage anyone interested to head over and take a look at the VMWare site and community.
The first thing I wanted to do was differentiate GSX and ESX for those more familiar with the former product. GSX Server runs on top of another Environment – I was fond of setting VMWare Server up on Debian Linux Kernels – which means that VMWare server, in that implementation, was really no different than any other service/process like Apache or MySQL. In this hierarchy there was hardware, the host environment, VMWare Server GSX and finally the Guest environments. ESX, on the other hand, has been described as “bare-metal” because it runs as the host environment using the VMKernel which is derived from Fedora’s Linux kernel. VMKernel, because it directly accesses the hardware resources, is also where the command and control software resides to manage guests.
In terms of the types of virtualization these two products represent, GSX most closely resembles what is commonly referred to as “software” virtualization and ESX more so “hardware” virtualization. Is it true hardware virtualization? Not in my opinion, but it is one way to differentiate them.
Hopefully you have a better idea of how ESX compares to GSX since we’ll be largely ignoring the GSX product. Before we get down to performing an installation you should make sure you’re going to be running on some decent hardware – I’ve installed ESX on an IBM eSeries x330 with dual PIII-S processors at 1.12 GHz which had 1 GB of PC133 and were using hardware RAID1 across a pair of 18.2 GB SCSI disks and while it supported a pair of guests fairly well I wasn’t able to run very many guests with much stability. One thing I will say, to ESX’s favor, is that it will allow you to provision more memory than the hardware can provide to each guest.
Assuming you’re going to have a fairly powerful machine with adequate resources to run the number of guests you’ll need, let’s move on to the installation. After downloading the bootable disk image and burning it to media, insert the disk and boot the machine. You will be prompted to install or upgrade in GUI mode by pressing the Enter key or, as an alternative we won’t cover, you can type “esx text” and press enter to install/upgrade in text mode. For the most part this installation is automated and shortly you will see what closely resembles the boot process of a normal Linux kernel, this is because the VMKernel is based on, as mentioned, the Linux kernel. You will also be prompted to verify the install media (also reminiscent of Fedora/RedHat) and this has no real cost aside from time – I recommend you allow it to verify if you’ve never done this before. You will probably never opt to verify install media again, but if you have installation problems you might want to allow this.
Finally you’ll see the ESX installer dialog begin – click next to view the EULA and click next again after checking the box which indicates you accept the EULA. Assuming this was an untouched disk you won’t have a valid partition table and the ESX install may pop up a warning – go ahead and initialize the disk which will remove any and all data. When the partitioning options page becomes available choose the recommended selection and click next – you will be taken to a partition table summary which will allow you to edit the recommended partition table, but I recommend you click next to finalize the decision. You’ll be brought to the advanced options and you should choose to install the master boot record (MBR) to the disk partitioned for ESX.
After you click next, having setup the MBR, you’ll have to set your network settings – assign your IP, subnet mask, gateway, name servers, and assign a descriptive hostname. You may choose to enable the checkbox to create a default internal LAN for your guests, but I prefer to bridge everything. Click next and select a time zone and next again to define the root password. You should see a basic summary when you click next and clicking next one last time will begin the real installation – progress tracked the usual way, with a progress bar. At the prompt restart the server and remove the boot media – your ESX server is now installed.
At this point you can hit the ESX server web GUI by typing the server’s IP into a web browser or you can type Alt-F1 to enter the ESX server console.
While there are some security concerns associated with virtualization, ESX is certainly easier to protect than GSX. ESX, based on Fedora Linux, runs as it’s own environment so as long as you make sure your VMKernel is up to date and patched, and limit access to the server console, you shouldn’t be in too much risk. GSX, on the other hand, sits on top of a host environment and any weakness in that host OS opens GSX up to exploit. By using ESX you are effectively removing one potential layer of vulnerability.
I’ve continued on and included some things as considerations:
Swap – I use (swap + physical RAM) / (Amount RAM per Guest) to calculate the number of Guests I think a server can safely support. For this reason I like to have at least as much swap available as physical RAM. By default ESX only partitions about half a Gig of swap, so I always steal a little from the / partition and make my swap bigger. We’re not talking about huge performance gains, though – this just gives me a little piece of mind – and with FSB speeds on the rise, Memory IO is improving what was formerly a stagnant area of server architecture.
Storage – I prefer, when possible, to put my guests on a directly-attached storage device with Fibre-channel or iSCSI. This is useful for a couple reasons, not the least of which is fault-tolerance, one of which is that it allows your guests to grow on a separate dynamic device.
Moving GSX guests to ESX – you can use the VMWare converter to convert your guests to run on ESX. This process is done by installing VMWare converter on your GSX server and shutting down the guest. You then run the converter which I’ll outline briefly because it has many steps:
- Choose Import Machine and click next; click next to select VM type
- Select Standalone Virtual Machine, etc and click next
- Navigate the the .vmx file and click next
- Choose to Import disks and maintain size and click next
- Select ESX server as destination and click next
- Enter hostname and login information and click next
- Supply a guest VM name and click next
- Select a host and click next
- Select a datastore and click next
- Supply your network interface info and click next then click finish
Now you can edit the VM settings – I remove floppies and unnecessary USB device support – and you might have to change the SCSI device to LSI logic to avoid issues with disk read failure.
Note that if you installed VMWare server tools on your VM you will need to uninstall and install ESX tools instead.

No comments yet
Comments feed for this article