With technology expanding at an exponential rate it seems like the hardware associated with it keeps getting smaller and smaller because we can now pack more power into smaller packages. And with this comes a decrease in cost at least when it comes to hardware in today's modern datacenters. It wasn't that long ago that you would walk into a server room and see racks of servers where each one had a single purpose or ran its own individual operating system.
Nowadays with virtualization technology those same servers can run multiple servers on just one piece of hardware and each can have its own operating system, hard drives, CPU, memory and so on. Of course in able to pull this off the actual physical server needs to have plenty of "horsepower" based on how many virtual servers you want to run on it and you are limited by your hardware resources when it comes to the amount of virtual servers and their "virtual" hardware specs.
In order to utilize virtualization technology, you need software that will allow you to virtualize servers so that they can run with other servers on the same piece of hardware (physical server) and access the physical devices on that piece of hardware. Currently there are three main players in the virtualization game and they are VMware, Microsoft and Citrix with VMware being the most dominant and most widely used.
To be able to pull this off the hardware manufacturers, specifically processor manufacturers need to have the CPUs be able to support multiple servers with multiple operating systems at the same time. The physical server is typically called the host while the virtual servers (or VMs) are called guests. The software used to make this all happen is called a hypervisor and this hypervisor interacts with the physical hardware and allows the hardware to be used by the VMs. The hypervisor also monitors the physical hardware and allows you to see what is going on with the assigned resources being used by the VMs. As you can see in the VMware specific diagram below the physical servers are running the hypervisor software (ESX Software) and on top of the ESX software (or ESXi as its now called) are the virtual machines (VMs) running their operating system and then running applications on top of that. At the very top the Virtual Center Management Server (or vCenter) manages the hypervisor and the VMs with its own software console that lets you see exactly what's going on with hardware and software. By the way you can mix various operating systems and versions like Windows and Linux on one ESXi host.
As for storage for the hosts and guests this is typically accomplished with shared storage such as a SAN (Storage Area Network) or NAS (Network Attached Storage) for the guests and local storage for the hosts in the form of a hard drive, USB drive or SD card but the host can also be configured to use shared storage. The storage is usually a group of disk arrays separate from the hosts that are attached to the hosts via iSCSI or Fiber Channel. This networked storage is configured with LUNs (Logical Unit Numbers) which are like volumes configured for use within the virtualized environment. The hypervisor allows you to make datastores with this storage and then these datastores can be used for the guest VMs as their local storage to install the operating system as well as be used for additional drives.
The management software is what the administrator uses to manage all the VMs and their virtual devices and storage. It also allows you to create new VMs and move them from host to host while they are running allowing you to do things such as perform maintenance on the host or balance the load. Other things you do with this software is configure the virtual switches and virtual network cards for your network configuration, add storage to VMs, create clusters for resource allocation, check errors and alerts, manage licensing and much more.
If you have physical servers that you want to virtualize without having to created them from scratch you can perform a P2V (Physical to Virtual) with separate software and convert the physical server to a virtual machine with its operating system and applications intact. This can be a time consuming procedure with limitations but usually works out pretty well.
All in all virtualization is a great technology that gives you a number of benefits including
- Saving money on hardware and maintenance costs
- Freeing up rack space
- More uptime
- Keep your server room cooler
- Allows easier backup of servers with built in or third party software
- Save on Windows licensing (depending on the number of VMs on a host)
- Allows you to move virtualized servers to different hosts for maintenance and host failures