VPS Virtualization Technology, Cloud Server is a direct determinant of the quality of VPS and Cloud Server.
In Cloud Computing, virtualization is an indispensable part of turning a physical server cluster into a cloud.
We will explore server virtualization models & technologies, through which you will understand what is hidden beneath familiar terms: OpenVZ, KVM or Xen.
And, by the way, you'll know more about Linux Container (LX), Linux Container (CoreOS Linux) or the name that is flooding the field. DevOps - Docker!
In this article, we use the terms Cloud Computing (Cloud Computing), Cloud Server, IaaS, SaaS, PaaS ... please refer to the previous article to understand the details:
Cloud Computing A-Z
Virtualization Technology VPS - Cloud Server A-Z
First, a little introduction to virtualization:
What is virtualization?
Virtualization (Virtualization) is the process of creating a virtual version, here we understand the methods to create virtual servers from the resources of physical servers.
Virtual Machine (VM) is created from the physical server - allocated physical resources like a normal physical server (CPU, RAM, Storage ...)
In cloud computing, the first step of every Cloud Computing system is virtualization, because the server on cloud computing is the virtual server (VM - Virtual Server).
We have common virtualization in virtual server technology in general and cloud computing in particular:
Virtualization supports hardware
Hardware support virtualization - Hardware-assisted virtualization Virtualization is a full virtualization method, which allows creating virtual machines to operate with independent physical resources.
With this virtualization method, virtual machines will work just like the real physical server, fully use the allocated physical resources and can install - manage 100% of the operating system on it.
Cloud Server using hardware virtualization technology will own completely the physical resources allocated to it without sharing to other Cloud Servers.
The hardware support virtualization operator is Hypervisor:
What is a hypervisor?
Hypervisor - also known as Virtual Machine Monitor (Virtual Machine Monitor) is the software that creates and runs virtual machines.
The role of the Hypervisor is to create a virtual machine emulation environment through which guest operating systems can run on virtual machines identical to physical machines.
The hypervisor can be hardware, but usually software, or firmware (low-level software, running directly on hardware that doesn't need an operating system).
Hypervisor has 2 types:
Hypervisor Type-1, also known as a native hypervisor or bare-metal hypervisor, is a hypervisor software that runs directly on hardware that doesn't run through the operating system, so it works with high performance, often for large Datacenter deployments. cloud technology.
Hypervisor Type-1 has many famous names such as XEN, Hyper-V (Microsoft), VMware ESXi (included in VMware vSphere), Xbox One System Software
Type-2 Hypervisor, also known as hosted hypervisor, this type runs on the operating system (OS), is easy to install and manage, but performance is not equal to Type-1 because the OS itself consumes a fair amount of server resources. great.
Hypervisor Type-2, most IT people know, for example, if you want to install Linux (Ubuntu) on Windows 7, you need to install VirtualBox virtual machine software, and want to install Windows on MacOS, then use Parallels Desktop for Mac ... that's all is the software that plays the role of the Hypervisor.
Common Type -2 Hypervisor types VirtualBox, Parallels Desktop for Mac, for Server, there are VMware Workstation, VMware Player, QEMU
Is KVM Hypervisor Type-1 or Type-2?
The classification of Hypervisor is also not entirely clear, especially in some cases of KVM (Kernel-based Virtual Machine) virtualization technology:
- KVM is a module that turns a Linux kernel into a Type-1 Hypervisor, running directly with the physical server.
- But because the Linux + KVM kernel as a whole is also an OS, ‘explorers’ can say that KVM runs on an OS, known as Type-2 Hypervisor.
However, with the high performance like other Type-1 Hypervisers, except for over-scrutiny, most people see KVM as a true Type-1 Hypervisor!
Hardware-based virtualization technologies
In hardware-based virtualization technology, virtual servers will be operated and managed by the Hypervisor (both type 1 and type 2).
Hardware-based virtualization can be found on PCs when they want to run another operating system on an existing operating system (Installing Linux Ubuntu on Windows, or installing Windows on MacOS), or on gaming devices ( Xbox), and for server virtualization.
We are researching on Cloud Server and VPS, so we only talk about Virtualization Technologies for Virtual Servers, focusing on Linux Virtual Servers, popular are: Xen, KVM, VMware ESXi, Hyper-V.
What is xen?
Xen is a software Hypervisor Type - 1, was born from the Computer Laboratory of the University of Cambridge (UK) and is now further developed by Linux Foundation and supported primarily by Intel Corporation.
Xen's technology supports Hardware-based Virtualization, and is widely used in the IaaS market, including Amazon EC2, IBM SoftLayer, Rackspace Cloud, Liquid Web or Fujitsu Global Cloud Platform, OrionVM ..
Xen is a free, open source project.
On Cloud Computing platform, Xen plays the role of Hypervisor Type-1 for Cloud Server IaaS deployment software such as CloudStack, OpenStack, Hyper-V, Open Nebula ...
What is KVM?
KVM - Kernel-based Virtual Machine or Kernel is a name for a module that allows the Linux Kernel variable to act as a Hypervisor.
KVM was created by Qumranet, Inc. in 2006, three years after Xen. KVM is currently being developed by Open Virtualization Alliance (OVA), this is a separate project also managed by the Linux Foundation.
In terms of features, KVM is not much different from Xen, apart from some minor improvements.
Currently KVM is used very popular, typically Google Compute Engine, Vultr, DigitalOcean, OVH ...
Similar to Xen, Cloud Computing IaaS deployment software such as OpenStack, CloudStack, OpenNebula, ... use KVM like Hypervisor Type-1.
In the VPS market, KVM VPS is often referred to as high-end VPS because hardware-based virtualization allows allocation of fixed physical resources for each VPS package, not shared with other VPS packages, so performance very high.
Of course VPS Xen is also a high-end VPS.
VMware ESXi is Hypervisor Type-1 software of VMware - the world's No. 1 virtualization corporation. Previously ESXi was called VMware ESX - short for VMware Elastic Sky X.
VMware ESXi also features Xen, KVM, but is a commercial product.
Currently, ESXi is part of VMware's Cloud Computing IaaS deployment toolkit, vSphere (VMware Infrastructure).
In the market, ESXi & vSphere is widely used by businesses because VMware's technologies help businesses deploy cloud server systems very quickly - effectively.
Especially compared to Open Source projects, VMware vSphere is a commercial product, so it receives very good technical support from VMware.
What is Hyper-V?
Hyper-V (formerly known as Viridian) or Windows Server Virtualization, is an exclusive Type-1 Hypervisor for Windows Server operating systems.
Hyper-V also provides Paravirtualization solutions to support Linux kernel operating systems.
Unlike Xen, KVM, VMware ESXi, Hyper-V is popular thanks to the 'parasite' of Windows Server.
Advantages and disadvantages of Hardware-based virtualization
Hardware virtualization with Hypervisor KVM, XEN, Hyper-V ... brings real power to virtual servers, with a separate amount of physical resources - full mining rights, bringing great performance.
Allows installing the private operating system and full use of the operating system kernel (OS Kernel) thus extremely high security.
However, Hardware-assisted virtualization also has drawbacks:
- Virtual machines must operate behind the Hypervisor and have their own operating system (Guest OS) installed, making deployment and management complicated and expensive.
- Managing and allocating virtual machine resources is not as fast as the OS layer virtualization (operating system level virtualization) because applications must run on Guest OS.
Anyway, with independence - full physical resources and operating system kernel, hardware virtualization is the solution used by most high-end Cloud Server services, such as Google (KVM), Amazon ( XEN), Microsoft Aruze (Hyper-V), ....
High-end VPS services such as Vultr, Linode, DigitalOcean all use KVM virtualization.
Virtualization of operating system level
Operating-level virtualization - OS-level virtualization is a virtualization method that is performed directly on the operating system, each virtual machine will run on a separate operating system 'state' and share with each other all resources. physical server.
This virtualization method does not allocate ‘hard resources’ to each virtual server as it does in hardware support virtualization.
Depending on the technology applied, this 'operating system status' is called Instance, Container, Docker, etc.
In each virtual server, allows isolation of software and management - limiting the resources used.
That is, you can set a virtual machine the maximum amount of resources (CPU, RAM, I / O, Network ..) that it can use, when it does not use up this amount, physical resources can transferred to other virtual servers.
Virtualization technologies operating system level
OS-level virtualization - Operating system level virtualization, creating multiple virtual servers running on the same operating system kernel (specifically the Linux kernel). Each virtual server is called a container, running independently and sharing with each other all resources of physical server.
Do you know?
Operating system level virtualization, or linux container, relies on two very special features of the Linux kernel (Linux kernel):
- cgroups (short for control groups): is a feature that allows limit, accounting for, separation server resource usage (CPU, Memory, Disk I / O, Network ...) of a collection of processing processes (collection of processes)
- namespaces: an enabled feature partition resources of the Linux kernel, ensuring independence in using resources of different processes (containers)
These two features make each container (virtual server) independent of each other, and can create, allocate resources, limit maximum resources for each container.
Containers can be allocated & limited usage but not 'hard' like KVM or Xen, ... - When a container uses less server resources, this resource will be shared for containers. other.
There are many technologies to deploy virtual server model according to the method of operating system virtualization: OpenVZ, Virtuazzo, LXC (LXD, Solaris Containers, and Docker ...
What is OpenVZ?
OpenVZ - short for Open Virtuozzo is a free Operating System level Virtualization technology developed by Virtuozzo.
In the low-cost VPS market, OpenVZ is widely used, thanks to its fast, easy deployment and does not require very strong server infrastructure.
VPS OpenVZ is often referred to as low-cost VPS, because OpenVZ virtualization technology allows creating more VPS packages than hardware-based Virtualization technologies like KVM, Xen.
What is Virtuozzo?
Virtuozzo is a technology based on OpenVZ, but is integrated with commercial features by Virtuozzo, which is a paid technology.
Because it was a commercial version, Virtuozzo was not used as much as its free brother - OpenVZ before.
Currently the latest version is Virtuozzo 7, which provides virtual server deployment solutions based on cloud computing technology.
Virtuozzo Cloud Infrastructure is currently used by many small businesses and affordable Cloud Server services. Because the cost of deploying Cloud IaaS with Virtuozzo is quite cheap.
- Virtuozzo is a company separated from the group Parallels . Parallels is no stranger to the IT world because it owns the famous virtualization software Paralles Desktop for Mac, and also Plesk - the famous Web Hosting Control Panel.
- Like Virtuozzo, Plesk also split into a separate company, while Parallels was acquired by a larger corporation, Corel (owning CorelDRAW, Winzip ...)
What is LXC?
LXC - short for Linux Container, is an OS-level virtualization method that allows running many virtual machines as containers on Linux operating system.
LXC was developed after OpenVZ, a project contributed by many individuals and large corporations such as IBM, Google and Virtuozzo as well.
Currently, an improved version of LXC is LXD - an open source project developed by Canonical - the company behind Ubuntu OS. LXD upgrades its container management, security, HA (High Availability) features, etc.
LXC is currently used by many Cloud Hosting companies to deploy advanced Shared Hosting services - each Hosting package acts as a separate container on the Cloud Server. Typically Kinsta or Flywheel, SiteGround Cloud Hosting ...
What is docker?
Docker is a cloud computing platform that uses OS-level Virtualization to deliver software packaged as a Linux container.
At first, Docker used LXC as the executable environment, the default container driver. From version 1.1 onwards, Docker replaces LXC with its own driver.
Unlike LXC, Virtuozzo, LXC, OpenVZ ... Docker is not a technology for deploying Cloud Server (IaaS) but it is a product of PaaS - providing a platform that allows deploying software on the cloud more easily.
Outstanding advantages of Docker are package (package) and uniformity. This makes it a dizzying development tool in Cloud Computing.
With Docker, you can package everything and deploy it to any Cloud Server, just like a mass clone.
Refer: Learn Docker A-Z
CoreOS - Container Linux
In addition to the above technologies (can be deployed on many different OSs), to deploy Container, you can always use its own operating system, CoreOS Linux (Container Linux).
The Linux container (distinguished from LXC above) is an operating system specialized for virtualization technology on the OS. Container Linux is the solution to deploying virtual servers as a Container Cluster.
The Linux container is a streamlined OS - specialized for Cloud Servers. This OS launched Rocket - or CoreOS rkt, an alternative technology to Docker.
The difference between CoreOS rkt (Rocket) and Docker can be seen in the image below:
Although the launch is appreciated and compared to the Docker Killer, but with what is happening now, CoreOS rkt still has a lot of effort to scratch the opponent.
Advantages and disadvantages of OS level virtualization
This virtualization technology is often called cheap virtualization - the solution to provide VPS (both Cloud Server) cheaply because the number of virtual servers can be created on physical servers more than virtualization method. KVM, managing - allocating resources easier.
Virtual servers also work smoother because they run directly on the same Linux kernel (Linux Kernel) instead of having to install a guest operating system (Guest OS) through the hypervisor as a form of hardware virtualization.
Especially with the HOT Docker platform, deploying Platforms on virtual servers becomes extremely easy and flexible.
IaaS services of large corporations Amazon, Google, Microsoft ... also use Linux containers for Cloud Server services, but with a much higher allocation of resources than the average Cloud Server providers in the market.
Virtualization of the operating system also has disadvantages, mainly because the Virtual Server is allocated 'Fake Resources' so its power depends on how many containers are created on a physical server:
- With OS-level virtualization - A virtual server with 2GB - is only the highest amount of RAM that it can use, not the amount of RAM reserved for that virtual server.
- If more and more virtual servers are using more physical resources, the remaining machines cannot mobilize more resources when needed.
- Normally OpenVZ VPS services create very large numbers of containers (VPS) so to avoid being overloaded, they will temporarily turn off VPS if it is used near the limit. Therefore, OpenVZ VPS is almost always weaker than VPS Xen or KVM.
What are virtualization services of Cloud VPS and Cloud Server?
We will learn about the virtualization technologies that Cloud Server services use, so that you can understand which services are high-end Cloud Server, which services ... popular.
What do large corporations use Virtualization?
Currently, IaaS cloud infrastructure market is occupied by over 70% of big companies, and these are also the most advanced Cloud Server providers:
- Amazon Web Services (AWS): The entire AWS Cloud Server system is based on Xen hardware-based virtualization technology - however AWS recently used KVM for an IaaS infrastructure, they rewrote KVM module to optimize separately for AWS.
- Google Compute Engine (GCE): use KVM virtualization
- MS Azure: use Hyper-V for Windows Cloud Server. It is possible to use KVM in the form of nested - virtualization but they do not officially support
- Alibaba Cloud: use both Xen and KVM
It can be seen that most of them use Hardware-based Virtualization. However, this is only the first step to deploy Cloud Computing.
After virtualizing physical server clusters, each corporation has its own (security) technologies for Compute virtualization, Network virtualization, Storage virtualization and bringing these resources to the cloud and provided as Cloud Server with the name Instance or Container.
What are the famous Cloud Server providers for virtualization?
Services specializing in providing Cloud Server - Cloud VPS world famous such as OVH, Rackspace, .... often use virtualization based on KVM or Xen hardware, then use Cloud Computing IaaS deployment technologies such as OpenStack, CloudStack, VMware vSphere, ... or private technology to provide as Cloud Server.
Intermediate services such as Vultr and Digital Ocean use KVM virtualization. Linode previously used Xen entirely, currently also partially transferring to KVM.
The world's No. 1 OpenVZ VPS service - Ramnode, provide both KVM and OpenVZ, and they deploy Cloud Server using open source technology - Open Stack.
What are the virtualization services of Cloud Server, Cheap Cloud VPS?
Traditional cheap VPS, most people use OpenVZ, to the extent that when talking about cheap VPS, people think of OpenVZ virtualization immediately.
Cheap VPS services in Vietnam are often of very poor quality compared to OpenVZ VPS providers in the world (Ramnode, HostUS ..) because they create too many VPS packages on physical servers, so the real resources are each VPS is used very low, the provider often stops VPS customers to avoid server overload.
With Cloud VPS, Cloud Server - VPS is created from the server system deployed on Cloud Computing technologies, currently, in the low-cost segment, there are 2 main groups:
Cloud Server uses VMware ESXi & vSphere
Hardware-based virtualization, and cloud deployment using vSphere suite. For example, Viettel Cloud Server is currently using this solution.
Another famous service, Long Van (not very impressive quality), also uses vSphere for Cloud Server system.
Cloud Server uses Virtuozzo - Cloud Infrastructure
This solution is very low cost, allows deploying Cloud Server system as a Linux container, only need a few physical servers to deploy.
Currently a lot of cheap Cloud VPS and Cloud Server services in Vietnam use this solution. Typically AZDIGI Cloud Server.
Understanding the virtualization technology helps us to know somewhat the quality of the Cloud Server, Cloud VPS services, and thereby also partly understand the technology trends such as Docker ...
In the next section, we will learn A-Z about Cloud Server, and what Cloud VPS services should use.
What is Cloud Server? A-Z Model & Technology
See you again!