Server virtualization is a process that creates and abstracts multiple virtual instances on a single server. Server virtualization also masks server resources, including the number and identity of individual physical servers, processors and operating systems.
Traditional computer hardware and software designs typically supported single applications. Often, this forced servers to each run a single workload, essentially wasting unused processors, memory capacity and other hardware resources. Server hardware counts spiraled upward as organizations deployed more applications and services across the enterprise. The corresponding costs and increasing demands on space, power, cooling and connectivity pushed data centers to their limits.
The advent of server virtualization changed all this. Virtualization adds a layer of software, called a hypervisor, to a computer, which abstracts the underlying hardware from all the software that runs above. A hypervisor organizes and manages the computer’s virtualized resources, provisioning those virtualized resources into logical instances called virtual machines (VMs), each capable of functioning as a separate and independent server. Virtualization can enable one computer to do the work of multiple computers, utilizing up to 100% of the server’s available hardware to handle multiple workloads simultaneously. This reduces server counts, eases the strain on data center facilities, improves IT flexibility and lowers the cost of IT for the enterprise.
Virtualization has changed the face of enterprise computing, but its many benefits are sometimes tempered by factors such as licensing and management complexity, as well as potential availability issues. Organizations must understand what virtualization is, how it works, its tradeoffs and use cases. Only then can an organization adopt and deploy virtualization effectively across the data center.
To appreciate the role of virtualization in the modern enterprise, consider a bit of IT history.
Virtualization isn’t a new idea. The technology first appeared in the 1960s during the early era of computer mainframes as a means of supporting mainframe time-sharing, which divides the mainframe’s considerable hardware resources to run multiple workloads simultaneously. Virtualization was an ideal and essential fit for mainframes because the substantial cost and complexity of mainframes limited them to just one deployed system — organizations had to get the most utilization from the investment.
The advent of x86 computing architectures brought readily available, relatively simple, low-cost computing devices into the 1980s. Organizations moved away from mainframes and embraced individual computer systems to host or serve each enterprise application to growing numbers of user or client endpoint computers. Because individual x86-type computers were relatively simple and limited in processing, memory and storage capacity, the x86 computer and its operating systems (OSes) were typically only capable of supporting a single application. One big shared computer was replaced by many little cheap computers. Virtualization was no longer necessary, and its use faded into history along with mainframes.
But two factors emerged that drove the return of virtualization technology to the modern enterprise. First, computer hardware evolved quickly and dramatically. By the early 2000s, typical enterprise-class servers routinely provided multiple processors and far more memory and storage than most enterprise applications could realistically use. This resulted in wasted resources — and wasted capital investment — as excess computing capacity on each server went unused. It was common to find an enterprise server utilizing only 15% to 25% of its available resources.
The second factor was a hard limit on facilities. Organizations simply procured and deployed additional servers as more workloads were added to the enterprise application repertoire. Over time, the sheer number of servers in operation could threaten to overwhelm a data center’s physical space, cooling capacity and power availability. The early 2000s experienced major concerns with energy availability, distribution and costs. The trend of spiraling server counts and wasted resources was unsustainable.
Server virtualization reemerged in the late 1990s with several basic products and services, but it wasn’t until the release of VMware’s ESX 1.0 Server product in 2001 that organizations finally had access to a production-ready virtualization platform. The years that followed introduced additional virtualization products from the Xen Project, Microsoft’s Hyper-V with Windows Server 2008 and others. Virtualization had matured in stability and performance, and the introduction of Docker in 2013 ushered in the era of virtualized containers offering greater speed and scalability for microservices application architectures compared to traditional VMs.
Today’s virtualization products embrace the same functional ideas as their early mainframe counterpart. Virtualization abstracts software from the underlying hardware, enabling virtualization to provision and manage virtualized resources as isolated logical instances — effectively turning one physical server into multiple logical servers, each capable of operating independently to support multiple applications running on the same physical computer at the same time.
The importance of server virtualization has been profound because it addresses the two problems that plagued enterprise computing into the 21st century. Virtualization lowers the physical server count, enabling an organization to reduce the number of physical servers in the data center — or run vastly more workloads without adding servers. It’s a technique called server consolidation. The lower server count also conserves data center space, power and cooling; this can often forestall or even eliminate the need to build new data center facilities. In addition, virtualization platforms routinely provide powerful capabilities such as centralized VM management, VM migration (enabling a VM to easily move from one system to another) and workload/data protection (through backups and snapshots).
Server virtualization works by abstracting or isolating a computer’s hardware from all the software that might run on that hardware. This abstraction is accomplished by a hypervisor, a specialized software product. There are numerous hypervisors in the enterprise space, including Microsoft Hyper-V and VMware vSphere.
Abstraction essentially recognizes the computer’s physical resources — including processors, memory, storage volumes and network interfaces — and creates logical aliases for those resources. For example, a physical processor can be abstracted into a logical representation called a virtual CPU, or vCPU. The hypervisor is responsible for managing all the virtual resources that it abstracts and handles all the data exchanges between virtual resources and their physical counterparts.
The real power of a hypervisor isn’t abstraction, but what can be done with those abstracted resources. A hypervisor uses virtualized resources to create logical representations of computers, or VMs. A VM is assigned virtualized processors, memory, storage, network adapters and other virtualized elements — such as GPUs — managed by the hypervisor. When a hypervisor provisions a VM, the resulting logical instance is completely isolated from the underlying hardware and all other VMs established by the hypervisor. This means a VM has no knowledge of the underlying physical computer or any of the other VMs that might share the physical computer’s resources.
This logical isolation, combined with careful resource management, enables a hypervisor to create and control multiple VMs on the same physical computer at the same time — with each VM capable of acting as a complete, fully functional computer. Virtualization enables an organization to carve several virtual servers from a single physical server. Once a VM is established, it requires a complete suite of software installation, including an OS, drivers, libraries and ultimately the desired enterprise application. This enables an organization to use multiple OSes to support a wide mix of workloads all on the same physical computer.
The abstraction enabled by virtualization gives VMs extraordinary flexibility that isn’t possible with traditional physical computers and physical software installations. All VMs exist and run in a computer’s physical memory space, so VMs can easily be saved as ordinary memory image files. These saved files can be used to quickly create duplicate or clone VMs on the same or other computers across the enterprise, or to save the VM at that point in time. Similarly, a VM can easily be moved from one virtualized computer to another simply by copying the desired VM from the memory space of a source computer to a memory space in a target computer and then deleting the original VM from the source computer. In most cases, the migration can take place without disrupting the VM or user experience.
Although virtualization makes it possible to create multiple logical computers from a single physical computer, the actual number of VMs that can be created is limited by the physical resources present on the host computer, and the computing demands imposed by the enterprise applications running in those VMs. For example, a computer with four CPUs and 64 GB of memory might host up to four VMs each with one vCPU and 16 GB of virtualized memory. Once a VM is created, it’s possible to change the abstracted resources assigned to the VM to optimize the VM’s performance and maximize the number of VMs hosted on the system.
Generally, newer and more resource-rich computers can host a larger number of VMs, while older systems or those with compute-intensive workloads might host fewer VMs. It’s possible for the hypervisor to assign resources to more than one VM — a practice called overcommitment — but this is discouraged because of computing performance penalties incurred, as the system must time-share any overcommitted resources.
Virtualization brings a wide range of technological and business benefits to the organization. Consider a handful of the most important and common virtualization benefits:
Although server virtualization brings a host of potential benefits to the organization, the additional software and management implications of virtualization software bring numerous possible disadvantages that the organization should consider:
Virtualization has proven to be a reliable and versatile technology that has permeated much of the data center in the last two decades. Yet organizations might continue to face important questions about suitable use cases and applications for virtualization deployment. Today, server virtualization can be applied across a vast spectrum of enterprise use cases, projects and business objectives:
There are very few enterprise workloads that can’t function well in a VM. These include legacy applications that depend on direct access to specific server hardware devices to function. Such concerns are rare and should disappear as legacy applications are inevitably revised and updated over time.
Virtualization is accomplished through several proven techniques: the use of VMs, the use of paravirtualization and the implementation of virtualization hosted by the OS.
VM model. The VM model is the most popular and widely implemented approach to virtualization used by VMware and Microsoft. This approach employs a hypervisor based on a virtual machine monitor (VMM) that is usually applied directly onto the computer’s hardware. Such hypervisors are typically dubbed Type 1, full virtualization or bare-metal virtualization, and require no dedicated OS on the host computer. In fact, a bare-metal hypervisor is often regarded as a virtualization OS in its own right.
The hypervisor is responsible for abstracting and managing the host computer’s resources, such as processors and memory, and then providing those abstracted resources to one or more VM instances. Each VM exists as a guest atop the hypervisor. Guest VMs are completely logically isolated from the hypervisor and other VMs. Each VM requires its own OS, enabling organizations to employ varied OS versions on the same physical computer.
Paravirtualization. Early bare-metal hypervisors faced performance limitations. Paravirtualization emerged to address those early performance issues by modifying the host OS to recognize and interoperate with a hypervisor through commands called hypercalls. Once successfully modified, the virtualized computer could create and manage guest VMs. OSes installed in guest VMs could employ varied and unmodified OSes and unmodified applications.
The principal challenge of paravirtualization is the need for a host OS — and the need to modify that host OS — to support virtualization. Unmodified proprietary OSes, like Microsoft Windows, won’t support a paravirtualized environment, and a paravirtualized hypervisor, such as Xen, requires support and drivers built into the Linux kernel. This poses considerable risk for OS updates and changes. An organization shifting from one OS to another might risk losing paravirtualization support. The popularity of paravirtualization quickly waned as computer hardware evolved to support VMM-based virtualization directly, such as introducing virtualization extensions to the processors’ command set.
Hosted virtualization. Although it’s most common to host a hypervisor directly on a computer’s hardware — foregoing the need for a host OS — a hypervisor can also be installed atop an existing host OS to provide virtualization services for one or more VMs. This is dubbed Type 2 or hosted virtualization and is employed by products such as Virtuozzo and Solaris Zones. The Type 2 hypervisor enables each VM to share the underlying host OS kernel along with common binaries and libraries, whereas Type 1 hypervisors don’t allow such sharing.
Hosted virtualization potentially makes guest VMs far more resource efficient because VMs share a common OS — the OS need not be duplicated for every VM. Consequently, hosted virtualization can potentially support hundreds, even thousands, of VM instances on the same system. However, the common OS offers a single vector for failure or attack: If the host OS is compromised, all the VMs running atop the hypervisor are potentially compromised too.
The efficiency of hosted VMs has spawned the development of containers. The basic concept of containers is identical to hosted virtualization where a hypervisor is installed atop a host OS, and virtual instances all share the same OS. But the hypervisor layer — for example, Docker — is tailored specifically for high volumes of small, efficient VMs intended to share common components such as binaries and libraries. Containers have found significant growth with microservice-based software deployments where agile, highly scalable components are deployed and removed from the environment quickly.
Virtualization brings powerful capabilities to enterprise IT, but virtualization requires an additional software layer that demands careful and considered management — especially in areas of VM deployment and migration.
A VM can be created on demand, manually constructing the VM by provisioning resources and setting an array of configuration items, then installing the OS and application. Although a manual process can work fine for ad hoc testing or specialized use cases, such as software evaluation, deployment can be vastly accelerated using templates, which stipulate the resources, configuration and contents of a desired VM. A template essentially defines the VM, which can then automatically be built quickly and accurately, and duplicated as needed. Major hypervisors and associated management tools support the use of templates, including Hyper-V and vSphere.
Templates are important in enterprise computing environments. They bring consistency and predictability to VM creation, ensuring the following:
Templates not only streamline IT efforts and enhance workload performance, but also reflect the organization’s business policies and strengthen compliance requirements. Tools such as Microsoft System Center Virtual Machine Manager, Packer and PowerCLI can help create and deploy templates.
Migration is a second vital aspect of virtualization process and practice. Different hypervisors can offer different feature sets and aren’t 100% interoperable. An organization might opt to use multiple hypervisors, but moving an existing VM from one hypervisor to another requires a means to migrate VMs created for one hypervisor to function on another hypervisor instead. Consider a migration from Hyper-V to VMware, where a tool such as VMware vCenter Converter can help to migrate VMs en masse.
Migrations typically involve a consideration of current VM inventory that should detail the number of VMs, destination system capacity and dependencies. Admins can select source VMs, set destination VMs — including any destination folders — install any agents needed for the conversion, set migration options such as the VM format and submit the migration job for execution. It’s often possible to set migration schedules, enabling admins to set desired migration times and groups so related VMs can be moved in the best order at a time when effects are minimized.
Managing virtualization across an enterprise requires a combination of clear policies, conscientious planning and capable tools. Virtualization management can usually be clarified through a series of common best practices that emphasize the role of the infrastructure as well as the business:
There are numerous virtualization offerings in the current marketplace, but the choice of vendors and products often depends heavily on virtualization goals and established IT infrastructures. Organizations that need bare-metal (Type 1) hypervisors for production workloads can typically select from VMware vSphere, Microsoft Hyper-V, Citrix Hypervisor, IBM Red Hat Enterprise Virtualization (RHEV) and Oracle VM Server for x86. VMware dominates the current virtualization landscape for its rich feature set and versatility. Microsoft Hyper-V is a common choice for organizations that already standardize on Microsoft Windows Server platforms. RHEV is commonly employed in Linux environments.
Hosted (Type 2) hypervisors are also commonplace in test and development environments as well as multi-platform endpoints — such as PCs that need to run Windows and Mac applications. Popular offerings include VMware Workstation, VMware Fusion, VMware Horizon 7, Oracle VM VirtualBox and Parallels Desktop. VMware’s multiple offerings provide general-purpose virtualization, supporting Windows and Linux OSes and applications on Mac hardware, as well as the deployment of virtual desktop infrastructure across the enterprise. Oracle’s product is also general-purpose, supporting multiple OSes on a single desktop system. Parallels hypervisors support non-Mac OSes on Mac hardware.
Hypervisors can vary dramatically in features and functionality. For example, when comparing vSphere and Hyper-V, decision-makers typically consider issues such as the way both hypervisors manage scalability — the total number of processors and clusters supported by the hypervisor — dynamic memory management, cost and licensing issues, and the availability and diversity of virtualization management tools.
But some products are also designed for advanced mission-specific tasks. When comparing vSphere ESXi to Nutanix, Nutanix AHV brings hyper-converged infrastructure (HCI), software-defined storage and its Prism management platform to enterprise virtualization. However, AHV is intended for HCI only; organizations that need more general-purpose virtualization and tools might turn to the more mature VMware platform instead.
Organizations can also choose between Xen — commercially called Citrix Hypervisor — and Linux KVM hypervisors. Both can run multiple OSes simultaneously, providing network flexibility, but the decision often depends on the underlying infrastructure and any cloud interest. Today, Amazon is reducing support for Xen and opting for KVM, and this can influence the choice of hypervisor for organizations worried about the integration of virtualization software with any prospective cloud provider.
Ultimately, the choice of any hypervisor should only be made after an extended period of evaluation, testing and experimentation. IT and business leaders should have a clear understanding of the compatibilities, performance and technical nuances of a preferred hypervisor, as well as a thorough picture of the costs and license implications of the hypervisor and management tools.
Server virtualization has come a long way in the last two decades. Today, server virtualization is viewed largely as a commodity. It’s table stakes — a commonly used, almost mandatory, element of a modern enterprise IT infrastructure. Hypervisors have also become commodity products with little new or innovative functionality to distinguish competitors in the marketplace. The future of server virtualization isn’t a matter of hypervisors, but rather how server virtualization can support vital business initiatives.
First, server virtualization isn’t a mutually exclusive technology. One hypervisor type might not be ideal for every task, and bare-metal, hosted and container-based hypervisors can coexist in the same data center to serve a range of specific roles. Organizations that have standardized on one type of virtualization might find reasons to deploy and manage additional hypervisor types moving forward.
Second, the continued influence and evolution of technologies such as HCI will test the limits of virtualization management. For example, recent trends toward disaggregation or HCI 2.0 work by separating computing and storage resources, and virtualization tools must efficiently organize those disaggregated resources into pools and tiers, provision those resources to workloads and monitor those distributed resources accurately.
The continued threats of security breaches and malicious attacks will further the need for logging, analytics and reporting, change management and automation. These factors will drive the evolution of server virtualization management tools — though not the hypervisor itself — and improve visibility into the environment for business insights and analytics.
Finally, traditional server virtualization will see continued integration with clouds and cloud platforms, enabling easier and more fluid migrations between data centers and clouds. Examples of such integrations include VMware Cloud on AWS and Microsoft Azure Stack.
A coding boot camp can jumpstart a career in tech, but only for those willing to go the extra mile. Here’s how two non-developers…
From sprint planning to servant leadership, Scrum Masters help Agile developers, product owners and other team members perform at…
Salesforce DevOps Center rolled out with features meant to bring low-code and pro-code custom apps on its CRM platform up to date…
To establish the right development team size, managers must look at each member’s responsibilities and communication paths, as …
While it’s not necessarily easy to become certified in microservices architecture, there are plenty of courses you can take to …
The Golden Hammer antipattern can sneak up on a development team, but there are ways to spot it. Learn the signs, as well as some…
To add another level of security, find out how to automatically rotate keys within Azure key vault with step-by-step instructions…
Terraform manages resources using configuration files within cloud platforms. Follow this step-by-step tutorial to learn how to …
Open source PaaS is a good option for developers who want control over application hosting and simplified app deployment, but not…
Many organizations struggle to manage their vast collection of AWS accounts, but Control Tower can help. The service automates …
There are several important variables within the Amazon EKS pricing model. Dig into the numbers to ensure you deploy the service …
AWS users face a choice when deploying Kubernetes: run it themselves on EC2 or let Amazon do the heavy lifting with EKS. See …
Feeling like you’ve lost your edge in your remote work? Follow these tips to stay energized, sharpen your skills, and tighten …
When you compare Scrum vs. Kanban, you realize there are as many similarities as there are differences. Here we help you choose …
Do you know Java? Are you trying to learn TypeScript? Here are five differences between TypeScript and Java that will make the …
Quantum computing has lots of potential for high compute applications. But the technology is still in the early stages, so it may…
Data lakes and data warehouses both store big data. When choosing a lake or warehouse, consider factors such as cost and what …
Classical and quantum computers have many differences in their compute capabilities and operational traits. Know their …
All Rights Reserved, Copyright 2016 – 2023, TechTarget
Do Not Sell or Share My Personal Information