Virtualization has been a major buzzword in the IT world for a few years. Now the buzz is getting bigger, as we draw close to the release of Windows Server 2008 on March 1. Microsoft has promised that the Hyper-V virtualization component (formerly called Viridian) will follow within 180 days. Of course, Microsoft already has Virtual Server and Virtual PC, as well as stiff competition on the virtualization front from VMWare and Citrix/XenSource.
With all these options, taking the plunge into virtualization can be a big and confusing step. Here are a few things you should know about virtualization and virtualization software before you start to plan a deployment.
#1: Virtualization is a broad term with many meanings
Virtualization software can be used for a number of purposes. Server consolidation (running multiple logical servers on a single physical machine) is a popular way to save money on hardware costs and make backup and administration easier, and that’s what we’re primarily focused on in this article. However, other uses include:
Desktop virtualization, for running client operating systems in a VM for training purposes or for support of legacy software or hardware.
Virtual testing environments, which provide a cost-effective way to test new software, patches, etc., before rolling them out on your production network.
Presentation virtualization, by which you can run an application in one location and control it from another, with processing being done on a server and only graphics and end-user I/O handled at the client end.
Application virtualization, which separates the application configuration layer from the operating system so that applications can be run on client machines without being installed.
Storage virtualization, whereby a SAN solution is used to provide storage for virtual servers, rather than depending on the hard disks in the physical server.
#2: Not all VM software is created equal
An array of virtualization programs are available, and the one(s) you need depends on exactly what you need to do. You might want to run a virtual machine on top of your desktop operating system, running a different OS, either to try out a new OS or because you have some applications that won’t run in one of the operating systems.
For example, if you’re using Windows XP as your desktop OS, you could install Vista in a VM to get to know its features. Or if you’re running Vista but you have an application you occasionally need to use that isn’t compatible with it, you could run XP in a VM with that application installed. For simple uses like this, a low-cost or free VM program, such as VMWare Workstation or Microsoft’s Virtual PC, will work fine.
On the other hand, if you need to consolidate several servers and thus need maximum scalability and security, along with sophisticated management features, you should use a more robust VM solution, such as VMWare’s ESX Servers, Microsoft’s Virtual Server or (when it’s available) the Hyper-V role in Windows Server 2008. For relatively simple server virtualization scenarios, you can use the free VMWare Server.
#3: Check licensing requirements first!
As far as licensing is concerned, most software vendors consider a VM to be no different from a physical computer. In other words, you’ll still need a software license for every instance of the operating system or application you install, whether on a separate physical machine or in a VM on the same machine.
There may also be restrictions in the EULA of either the guest or host OS regarding virtualization. For example, when Windows Vista was released, the licensing agreements for the Home Basic and Home Premium versions prohibited running those operating systems in VMs, but Microsoft has since changed those licensing terms in response to customer input.
Windows Server 2008’s EULA provides for a certain number of virtual images that can be run on the OS, depending on the edition. This ranges from none on Web edition to one on Standard, four on Enterprise, and an unlimited number on Datacenter and Itanium editions.
#4: Be sure your applications are supported
Another issue that needs to be addressed up front is whether the application vendor will support running its software in a virtual machine. Because VMs use emulated generic hardware and don’t provide access to the real hardware, applications running in VMs may not be able to utilize the full power of the installed video card, for example, or may not be able to connect to some of the peripherals connected to the host OS.
#5: Virtualization goes beyond Windows
There are many virtualization technologies and some of them run on operating systems other than Windows. You can also run non-Windows guest operating systems in a VM on a Windows host machine. VMWare can run on Linux, and Microsoft previously made a version of Virtual PC for Macintosh (but did not port it to the Intel-based Macs). Parallels Desktop provides support for running Windows VMs on Mac OS X. Parallels Workstation supports many versions of Windows and Linux as both host and guest. Parallels Virtuozzo is a server virtualization option available in both Linux and Windows versions. Other virtualization solutions include:
Xen (now owned by Citrix), which is one of the most popular hypervisor solutions for Linux.
Q, an open source program based on the QEMU open source emulation software, for running Windows or Linux on a Mac.
Open VZ, for creating virtual servers in the Linux environment.
#6: Virtualization can increase security
Isolating server roles in separate virtual machines instead of running many server applications on the same operating system instance can provide added security. You can also set up a VM to create an isolated environment (a “sandbox”), where you can run applications that might pose a security risk.
Virtual machines are also commonly used for creating “honeypots” or “honeynets.” These are systems or entire networks set up to emulate a production environment with the intention of attracting attackers (and at the same time, diverting them away from the real production resources).
#7: Virtualization can increase availability and aid in disaster recovery
Backing up virtual machine images and restoring them is much easier and faster than traditional disaster recovery methods that require reinstalling the operating system and applications and then restoring data. The VM can be restored to the same physical machine or to a different one in case of hardware failure. Less downtime means higher availability and greater worker productivity.
#8: VMs need more resources
It may seem obvious, but the more virtual machines you want to run simultaneously, the more hardware resources you’ll need on that machine. Each running VM and its guest OS and applications will use RAM and processor cycles, so you’ll need large amounts of memory and one or more fast processors to be able to allocate the proper resources to each VM.
To run multiple resource-hungry servers on one machine, you’ll need a machine with hardware that’s capable of supporting multiple processors and large amounts of RAM and you must be running a host OS that can handle these.
#9: 64 bits are better than 32
For server virtualization, consider deploying a 64-bit host operating system. 64-bit processors support a larger memory address space, and Windows 64-bit operating systems support much larger amounts of RAM (and in some cases, more processors) than their 32-bit counterparts. If you plan to use Windows Server 2008’s Hyper-V role for virtualization, you have no choice. It will be available only in the x64 versions of the OS.
#10: Many resources are available for planning your virtualization deployment
Virtualization is a huge topic, and this article is only meant to provide an overview of your options. Luckily, there are many resources on the Web that can help you understand virtualization concepts and provide more information about specific virtualization products. The following list should get you started:
List of Well-Known Ports
Port numbers range from 0 to 65536, but only port numbers 0 to 1024 are reserved for privileged services and designated as well-known ports. This list of well-known port numbers specifies the port used by the server process as its contact port.
1 TCP Port Service Multiplexer (TCPMUX)
5 Remote Job Entry (RJE)
18 Message Send Protocol (MSP)
20 FTP — Data
21 FTP — Control
22 SSH Remote Login Protocol
25 Simple Mail Transfer Protocol (SMTP)
29 MSG ICP
42 Host Name Server (Nameserv)
49 Login Host Protocol (Login)
53 Domain Name System (DNS)
69 Trivial File Transfer Protocol (TFTP)
70 Gopher Services
103 X.400 Standard
108 SNA Gateway Access Server
115 Simple File Transfer Protocol (SFTP)
118 SQL Services
119 Newsgroup (NNTP)
137 NetBIOS Name Service
139 NetBIOS Datagram Service
143 Interim Mail Access Protocol (IMAP)
150 NetBIOS Session Service
156 SQL Server
179 Border Gateway Protocol (BGP)
190 Gateway Access Control Protocol (GACP)
194 Internet Relay Chat (IRC)
197 Directory Location Service (DLS)
389 Lightweight Directory Access Protocol (LDAP)
396 Novell Netware over IP
444 Simple Network Paging Protocol (SNPP)
458 Apple QuickTime
546 DHCP Client
547 DHCP Server