VPS is a cost-effective hosting solution for websites and applications. This is because it combines the benefits of shared hosting and dedicated hosting. On one hand, like in a shared server, you will have multiple neighbors in a VPS server. However, data would be more secure in VPS as you have a dedicated space with reserved resources and memory. On the other hand, since you still share servers with others, renting VPSs costs lower than renting dedicated servers. Then, you might be wondering how could VPS make this work? That’s where server virtualization technology comes in.
Virtual Private servers uses server virtualization technology to divide a single physical machine into multiple VPSs. Thanks to the technology, VMs could deliver similar features of dedicated servers while maintain rather low server renting prices. In this article, we will introduce three main types of server virtualization technologies. They are full virtualization, paravirtualization, and OS-level virtualization.
Full virtualization uses a piece of software called a hypervisor. Hypervisors will interact directly with the physical server’s CPU and disk space and makes each virtual server independent. That is to say, users are unaware of other virtual servers running on the same physical machine. They will use the virtual space just as a dedicated server. In this case, clients can run on their own OS in each virtual space. For instance, you can run on a Linux while your neighbors may run on Windows. There are a number of software that implements this technology, such as Hyper-V, KVM, and VMware ESXi. The approaches of them might be different.
Hyper-V, released in 2008, is a hypervisor-based virtualization technology. It’s only available on some x64 versions of Windows. Its virtual environment relies on partitions. The partition are logical units of isolation, in which OSs run. There are two types of partitions, namely, parent partition and child partition. As the name suggests, it is the parent partition (should be running Windows) that can create child partitions. In these child partitions, client will host the guest OSs. They can be not only versions of Windows but also various releases of Linux and FreeBSD. However, for people who decide to run Linux OS, there are two major considerations. The first consideration is whether Integration Services are present in the OS. The second one is performance. As even when the guest runs Integration Services, it can be configured with legacy hardware. And a legacy hardware doesn’t offer the best performance.,
KVM, first announced in 2006, is short for Kernel-based Virtual Machine. It is open-source virtualization technology for Linux on x86 hardware containing virtualization extensions. Specifically, KVM lets you turn Linux into a hypervisor that allows a host to run multiple isolated VMs. Every VM is implemented as a regular Linux process with dedicated virtual hardware, including CPU(s), memory, and disks. Since each VM works as a regular Linux process, it benefits from all the features of the Linux kernel. These VMs can run on a wide variety of guest OSs, like Linux, BSD, Solaris, Windows, Haiku, and ReactOS.
ESXi is a bare-metal hypervisor that runs directly on your physical machine rather than on an OS. With direct access to and control of underlying resources, VMware ESXi can partition a server into many secure and portable VMs. When it comes to the supported OSs, VMware ESXi VMs can run various versions of Windows, CentOS, and Linux.
Paravirtualization (PV) is a virtualization technique originally introduced by Xen Project. Currently, it’s adopted by many other virtualization platforms. This technology does not require virtualization extensions from the host CPU. It is thus ideally suited to run on older hardware. Being different from full virtualization, PV involves modifying the guest OS kernel. Paravirtualized guests require a PV-enabled kernel and PV drivers, so the guests are aware of the hypervisor. PV-enabled kernels exist for Linux, NetBSD and FreeBSD.
Xen is the commonly used name for Xen project hypervisor. It first starts as a project at the University of Cambridge in 2003 and is famous for its ability to function on elder, less powerful architecture. Over the years, it has grown to become one of the most flexible virtualization solutions on the market. Currently, the xen project community develops and maintains the project as free software. Project contributors include people from a number of notable organizations, such as Alibaba, AWS, AMD, and Arm.
OS-level virtualization is a technology that partitions the operating system to create multiple isolated virtual machines. It doesn’t use a hypervisor. Instead, the virtualization capability is part of the host OS and performs like a fully virtualized hypervisor. With this type of virtualization, all the guest servers must run the same OS. Although virtual machines remain independent, they are not as isolated or secure as the other virtualization types. OpenVZ, Virtuozzo, Linux-VServer, Solaris Zones, and FreeBSD Jails are some examples of OS-level virtualization.
OpenVZ is open-source container-based virtualization for Linux. With it, server administrators can create multiple Linux containers on the same physical server. The OS virtualization layer ensures the isolation and security of resources between different containers. In the virtualization, each container performs and executes exactly like a stand-alone server. Therefore, every container has root access, IP addresses, memory, processes, files, applications, system libraries, and configuration files. Also, users can reboot it independently.
Because OpenVZ offers OS-level virtualization, the containers must use the physical server’s kernel. This makes OpenVZ can only run on top of Virtuozzo Linux, an RHEL-based Linux distribution.
In an OpenVZ virtualization, memory allocation is soft. In other words, any unused memory is available to all VPS containers on the server. For this reason, this could become a problem, especially if the server is overcrowded.
Which server virtualization technology is the best? That largely depends on the network administrator’s needs. If administrators’ all servers run on the same OS, the OS-level virtualization might work best. Paravirtualization or full virtualization would be a better choice when you need to run different OSs.
DatabaseMart adopts full virtualization hypervisors for their VPS products and offers Hyper-V and VMware VPS.