In the modern world of IT application deployment, server virtualization is a commonly used term. But what exactly is server virtualization and is it right for your business?
Server virtualization in 2019 is a more complicated and involved topic than it was when the concept first started to become a popular approach nearly two decades ago. However, the core basic concepts and promises remain the same.
- What is Server Virtualization?
- How virtualization works
- Virtualization vs cloud
- Applications of Virtualization Technology
- Types of Virtualization
- Benefits and Disadvantages
A physical server is a well understood piece of technology that includes compute, memory storage and network interface components. Physical servers have multiple form factors as well including blade, rack and tower that can be deployed by organizations on-premises.
With a regular physical server, sometimes referred to as a 'bare-metal' server, the compute, memory, storage and network interface components are tied to single tenant. As such, the bulk of the processing capacity of the bare metal server is tasked and tied to a given running application or process. With modern processor capacity, there are only certain workloads that actually fully tax and make use of the entire capacity and throughput for a given processor.
Server virtualization technology take attributes of the physical server – most notably the compute power – and abstracts it out into multiple virtual server assets. So instead of just having a single CPU that is stuck with a single workload that is not fully utilizing capacity of the hardware, virtual CPUs can be abstracted, enabling individual workloads and tasks to run more efficiently.
Data center virtualization means that servers are abstracted in a virtualized environment, that can enable an organization run application workloads across a a cluster of server assets, without needing to directly interact with the underlying physical server hardware. Healthy virtualization infrastructure, maximizes the utilization and reliability of running workloads.
Virtualization is all about abstraction, that is taking something that is physical and defining a virtual, or software-based version of the physical asset.
For example, with server virtualization technologies, organizations run virtual machines on the physical hardware. The virtual machine (or VM), runs a full operating system, on top which organizations can run mutliple application workloads.
There are multiple types of virtualization technology including hypervisors which enable virtual machines, container virtualization and hardware-assisted virtualization. At a high-level, all virtualization technologies aim to achieve the same purpose, that is making physical compute assets more available, by slicing up and enabling resources to be provisioned in an efficient and agile manner.
Virtualization and cloud are two topics and technologies that are often interlinked. Cloud is all about providing server compute resources on an elastic model that can scale up or down as needed. Physical servers are not elastic and have fixed capacity, which is why the cloud is built on top of server virtualization.
With cloud server virtualization, cloud vendors use server virtualizaton to abstract large pools of compute resources within data centers to be consumed by end users. Cloud server virtualization, provides different instance types with varying amounts of virtual server compute and memory capacity.
So for example, Amazon Web Services (AWS) might have tens of thousands of physical servers in a data center, but end users do not get access to the actual physical server hardware. Rather on AWS , the EC2 (Elastic Compute Cloud) service offers cloud server virtualization instances that provide different sizes and configuration of virtual machine cloud instances.
Server virtualization technology has many applications that organizations of all sizes can benefit from.
- Application deployment. With server virtualization technology, applications can be bundled and packaged in a format that makes them easier to run and deploy, than simply trying to install on a bare metal server.
- Cloud servers. Virtualization technology enables the cloud, which is all about scale for operators and lower capital costs for end users. With virtualization, one physical server can be used to provision hundreds of virtual machines that can be used for different purposes.
- Dev and Test. Developing and testing of applications with server virtualization technology is easier than physical hardware as resources can be started up and shut down rapidly. Additionally, with virtualization developers can set up specific environments for testing that can emulate a product environment without the the need to impact production operations.
- Desktop Emulation. With virtualization, end users can run a server virtual machine on a desktop system. That can be used for a variety of use-cases including evaluation and analysis.
- High-Availability, Resilience and Backup. A key attribute of virtualization technology is that it can enable workloads to easily be replicated. With replicated workloads, resilience and availability are improved as is the ability for organizations to do backup and disaster recovery operations.
- Server Utilization. High-end compute is often not fully utilized by a single operating system or workload. By virtualizing the hardware, organizations can achieve higher levels of server utilization and operational efficiency.
There are multiple types of virtualization technology that can help to enable server virtualization architecture.
Different types of virtualization are often deployed alongside or on top of each other. For example, hardware-assisted virtualization, can be used to enable a paravirtualization deployed hypervisor, which in turn can have a container engine for application virtualization running.
- Hardware-Assisted Virtualization. For over a decade, silicon vendors including both Intel and AMD have recognized the value of supporting virtualized environments and have integrated technologies in their chipsets to help assist and accelerate virtualization. With Intel VT-x and AMD-V, hardware-assisted virtualization technology, Hypervisors can be accelerated and optimized without the need for the complete chipset to be virtualized.
- Full Virtualization. The concept of full virtualization was developed in the era before hardware-assisted or paravirtualization existed. With full virtualization, the compute capabilities of the underlying host are fully abstracted enabling a virtual environment. Modern chipset support for hardware-assisted virtualization has made the concept of full virtualization less useful than it once was.
- Paravirtualization. Paravirtualization provides a software interface that hypervisors can use to virtualize hardware features, enabling emulated disk and networking capabilities. Paravirtualization, sometimes referred to simply as PV, can run on system architectures that do not have hardware-assisted virtualization support.
- PVH. Paravirtualization Hardware is among the newer forms of server virtualization that began to appear in 2018. PVH is an effort to bring together the best of paravirtualization (PV) with Hardware Virtual Machine (HVM)-based virtualization approaches.
- Hypervisors. Server virtualization architecture often involves the use of hypervisors. In virtualization, the role of the hypervisor is to make use of either the Hardware-assisted virtualization, Paravirtualization or PVH virtualization to launch and manage virtual machines (VMs). The VMs provide operating system (OS) level virtualization, on top of which application workloads can be operated. Hypervisors provide operating system (OS) level virtualization.
- Open Source. There are multiple types of virtualization technologies, including open source approaches. Among the open source virtualization technologies is Xen which can manage its own hypervisor to deploy virtual machines. Xen is widely used in the public cloud for server virtualization. The KVM (Kernel-based Virtual Machine) hypervisor is another popular open source hypervisor technology that makes use of direct hooks within the Linux kernel to create virtual machines.
- Containers. Application containers, popularized by Docker, are sometime thought of as yet another layer of server virtualization. Containers however do not actually virtualize hardware and then enable it to be abstracted and shared. Rather with a container engine like Docker, multiple containers can make use of the same interfaces and shared libraries of the underlying host operating system, to run separate container pods or applications in isolated instances. Containers are often deployed inside of hypervisors or virtual machines, to provide an additional layer of isolation from the server's core host operating system.
Server Virtualization Pros and Cons
Advantages of Server Virtualization
Drawbacks of Server Virtualization
Sean Michael Kerner is a senior editor at ServerWatch and InternetNews.com. Follow him on Twitter @TechJournalist.