VMware is synonymous with virtual machines. In fact, that's VMware's only business, so it should come as no surprise that its products — Workstation, GSX, and ESX servers — are all solid, stable, and very reliable. Further, VMware has a very mature and powerful administration suite. In this article, I'll present a sample deployment of VMware's GSX Server 3.1 product.
As you may recall, GSX Server runs atop an existing Windows installation a la Microsoft Virtual Server 2005. Above that, though, GSX Server can also run atop Linux hosts, whereas Virtual Server 2005 is a Windows-only affair.
With a product like GSX Server, you're running multiple servers on the same hardware, so the product requirements are a little heftier than those for a single Windows installation. VMware's GSX Web page provides the minimum requirements for GSX Server 3.1, but the specs provided are inadequate for anything of production grade. VMware recommends a 733 MHz processor (Pentium II, Pentium III, Pentium III Xeon, Pentium 4, Xeon, Xeon EM64T, Athlon, Athlon XP, AMD Opteron, AMD Athlon 64); 512 MB of RAM (additional RAM required for guests); and 130 MB of disk space for the actual GSX Server installation (additional space required for guests).
The actual system requirements will vary depending on what you're intending to run inside the virtual servers. For example, if you're planning to run a file/print server, you might want an additional 256 MB of RAM to be assigned to the individual virtual server, but you'd need to add significant storage beyond the paltry 130 MB required for GSX Server itself. VMware recommends a minimum of 1 GB per virtual machine, but this is way too low for most virtual machines.
For a minimum, I recommend running GSX Server on a decently powered dual processor server with 2 GB or so of RAM. Of course, if you plan to run only minimal services, you can probably scale this down, but remember that multiple servers will be making use of the host resources. For storage, consider putting all of your virtual machines on an expandable RAID array or on a SAN. This way, you can easily allocate additional storage to a virtual server that grows beyond its original parameters. Further, a RAID array (I prefer RAID 5 for pretty much everything) or SAN allows you to easily recover from a hardware failure. Remember that you're running multiple services on a single box, so reliability is key.
The host server must be running Windows Server 2003, Windows 2000, or specific versions of Linux. VMware GSX Server is pretty picky about the distribution and kernel version you use for your server, so make sure your Linux distribution and revision level are supported. The list below was taken directly from the VMware GSX Server 3.1 specs page and is the current definitive list of supported Linux servers.
- Mandrake Linux 9.2 — stock 2.4.22-10mdk kernel
- Mandrake Linux 9.0 — stock 2.4.19-16mdk, update 2.4.19-32mdk kernels
- Mandrake Linux 8.2 — stock 2.4.18-6mdk kernel
- Red Hat Enterprise Linux 3.0 AS — stock 2.4.21-4, update 2.4.21-9, 2.4.21-9.0.1, 2.4.21-15 kernels. Experimental 64-bit support: Red Hat Enterprise Linux 3.0 AS — update 2.4.21-15 kernel
- Red Hat Enterprise Linux 3.0 ES — stock 2.4.21-4, update 2.4.21-9, 2.4.21-9.0.1, 2.4.21-15 kernels. Experimental 64-bit support: Red Hat Enterprise Linux 3.0 ES update 2.4.21-15 kernel
- Red Hat Enterprise Linux 3.0 WS — stock 2.4.21-4, update 2.4.21-9, 2.4.21-9.0.1, 2.4.21-15 kernels. Experimental 64-bit support: Red Hat Enterprise Linux 3.0 WS — update 2.4.21-15 kernel
- Red Hat Enterprise Linux AS 2.1 — stock 2.4.9-3, 2.4.9-e.24summit, update 2.4.9-e.38, 2.4.9-e.40 kernels
- Red Hat Enterprise Linux ES 2.1 — update 2.4.9-16, 2.4.9-e.24summit, 2.4.9-e.38, 2.4.9-e.40 kernels
- Red Hat Enterprise Linux WS 2.1 — update 2.4.9-16, 2.4.9-e.38, 2.4.9-e.40 kernels
- Red Hat Linux 9.0 — update 2.4.20-8, 18.104.22.168, 2.4.20-13, 2.4.20-18, 2.4.20-28, 2.4.20-30.9, 2.4.20-31.9 kernels
- Red Hat Linux 8.0 — stock 2.4.18-14, update 2.4.18-17, 2.4.18-18, 2.4.18-19, 2.4.18-27, 2.4.20-13, 2.4.20-18 kernels
- Red Hat Linux 7.3 — stock 2.4.18-3, update 2.4.9-6, 2.4.9-34, 2.4.18-5, 2.4.18-10, 2.4.18-17, 2.4.18-18, 2.4.18-19, 2.4.18-27, 2.4.20-13, 2.4.20-18 kernels
- Red Hat Linux 7.2 — stock 2.4.7-10, update 2.4.9-6, 2.4.9-7, 2.4.9-13, 2.4.9-21, 2.4.9-31, 2.4.9-34, 2.4.18-17, 2.4.18-18, 2.4.18-19, 2.4.18-27, 2.4.20-13, 2.4.20-18 kernels
- Red Hat Linux 7.1 — stock 2.4.2-2, update 2.4.3-12, 2.4.9-6, 2.4.9-34, 2.4.18-17, 2.4.18-18, 2.4.18-19, 2.4.18-27, 2.4.20-13, 2.4.20-18 kernels
- SuSE Linux Enterprise Server 8 — stock 2.4.19, update 2.4.21-138, 2.4.21-143, 2.4.21-215 and patch 3 kernels
- SuSE Linux Enterprise Server 7 — stock 2.4.7 and patch 2, update 2.4.18 kernels
- SuSE Linux 9.1 — stock 2.6.4-52 kernel
- SUSE Linux 9.0 — stock 2.4.21-99, update 2.4.21-166 kernels
- SuSE Linux 8.2 — stock 2.4.20 kernel
- SuSE Linux 8.1 — update 2.4.19, update 2.4.19-175 kernels
- SuSE Linux 8.0 — stock 2.4.18 kernel
- SuSE Linux 7.3 — stock 2.4.10, update 2.4.18 kernels
- Turbolinux Server 8.0 — stock 2.4.18-1, update 2.4.18-17 kernels
- Turbolinux Workstation 8.0 — stock 2.4.18-1, update 2.4.18-17 kernels
- Turbolinux Server 7.0 — stock 2.4.5-3, update 2.4.18-17 kernels
There's support for 64-bit host operating systems, but only experimentally. For now, don't run a production environment on a 64-bit operating system.
The VMware Management Interface is Web-based, so installing IIS is necessary before you install GSX Server. If the administration components will reside on another server, IIS isn't required on the host server.
This is just a snapshot of what you need to get GSX Server 3.1 up and running successfully. If you're just testing GSX, you might not need much more in-depth deployment information. However, if you're considering a production rollout with critical servers being deployed using this software, more considerable planning needs to take place.
The minimum requirements listed above don't take into consideration the special needs for specific versions of a guest operating system. For example, if you plan to deploy GSX Server 3.1 on Windows Server 2003 Standard, plan to have at least 256 MB of RAM on the host before you take virtual machine RAM needs into account.
Next, start adding up the requirements for each virtual server that will be hosted by the GSX Server installation. Add up the RAM and disk space requirements for each one and add it to the base requirements to arrive at the real minimum system requirements for your GSX host server. Remember that these are minimum requirements.
As an example, suppose you plan to deploy GSX Server onto a Windows Server 2003 Standard edition server. The server will host four virtual servers — three running Windows Server 2003 Standard and one running Red Hat Linux 3.1 AS. One of the Standard edition servers will be a file/print server, one will be a DNS server, and one will be a DHCP server; the Linux server will run as a database server. You might anticipate that the file and print server needs the most disk space, while the database server needs RAM and horsepower. For this example, let's suppose that the three-year outlook for storage needs for the file service are 120 GB, and that your database might grow to 150 GB.
Table A outlines the minimum requirements for this installation. Table B outlines the anticipated requirements, based on actual needs.
|Minimum requirements based on Microsoft literature|
|Reasonable requirements based on the real world|
In Tables A and B, the last line adds up all of the requirements. This last line then becomes the minimum system configuration you should anticipate for your host GSX Server. Based on the figures in Table B, if I were provisioning a server to support these needs, I'd be looking at a system with 4 GB of RAM (the maximum supported by non-PAE servers). Further, for the disk system, I'd provision a RAID 5 array with at least five fast 73-GB disks to provide a maximum usable storage of 292 GB. Adding this hardware now is easier than upgrading the server later on and provides the ability to quickly adjust to requests. For example, I might have to add a service later on, and now I'll have a server onto which I can potentially load a new virtual server to support the new service.
One important detail to keep in mind is that you're constrained by the limitations imposed by the host operating system. Windows Server 2003 Standard, for example, is limited to 4 GB of RAM. If you need virtual servers that add up to using more RAM than that, you'll need to deploy GSX Server onto the Enterprise or Datacenter editions or onto a Linux system.
Further, understand that virtual servers running under GSX Server are limited to a single processor inside the virtual machine. This doesn't mean that every virtual server shares a single host processor (although they can). Instead, this means that you can't load multiprocessor services into a virtual machine. GSX Server itself does make use of multiple host processors, though.
Installing the host GSX Server is more than simple. For this article, my host server is an Athlon 2100+ machine with 2 GB of RAM and a 60-GB disk. I'm installing GSX Server on a Windows Server 2003 Enterprise system.
GSX Server 3.1 is available as a download from the VMware site after you pay for the software. Alternatively, if you received a boxed product, you'll have an installation CD. To start the installation, double-click the installer and follow the instructions. You'll be asked the normal questions, such as where you want the product to be installed. You'll also be asked whether you want a complete or custom installation.
|VMware GSX Server installation options|
A complete installation includes all of the following components, while a custom installation (Figure A) lets you choose a subset:
- VMware GSX Server — The actual virtual machine container, which includes the utilities for creating, configuring, and controlling the virtual server
- VMware Management Interface — A Web version of the management utilities
- VMware VMCOM Scripting API — A tool that uses COM APIs to remotely manage virtual machines
- VMware VMperl Scripting API — A tool that uses Perl to remotely manage virtual machines
When the installation is finished, you can start the VMware GSX Server management tools and start creating virtual servers to your heart's content and your server's limits.
Starting VMware GSX Server
To begin using VMware GSX Server, go to Start | All Programs | VMware | VMware GSX Server | VMware GSX Server Console.
|VMware GSX Server console on first startup|
From this console (Figure B), you can create a new virtual machine, start an existing virtual machine, connect to a different GSX host server, or change the GSX Server parameters. The configuration options available for the GSX Server include limiting the amount of host RAM available for virtual machine use; deciding whether virtual machine-dedicated RAM can be swapped to disk (this will result in a performance hit, though); changing the default location for virtual machines; and deciding whether to use SSL for virtual server communication.
With deployment planning and installation out of the way, the next steps for your use of GSX Server lie in creating and deploying virtual servers and in configuring and managing the administrative environment.