In the first article of this series, we explained that the existence of virtual instances like VPS is possible thanks to a technology called virtualization. But how does virtualization itself work?
In the second part of the Cloud Explained series, we’ll discuss how virtual machines connect to hardware, what software is needed to perform virtualization, and we’ll mention some of the most popular tools for virtualization.
What is virtualization?
Simply put, virtualization is the process by which a physical computer creates another virtual computer. This virtual machine is often referred to as a VPS, virtual machine or cloud instance. It allocates a specific capacity to the original physical computer. Like your regular computer, each instance comes with a specific amount of RAM, CPU cores, disks, and other resources. Although virtual, the newly created instance can be used to perform the same operations as the original non-virtual machine.
A simple example in the field of personal computing can be found in this screenshot:
As you can see, the desktop clearly belongs to Microsoft Windows. But in the left window, Linux Ubuntu is running. In this case, the host operating system is Microsoft Windows. Then we created a virtual machine powered by Ubuntu Linux. Ubuntu virtual machines run on Windows. The virtual operating system and the host operating system are independent of each other and can run simultaneously.
The same principle applies to the business environment. The difference is that the host system runs on a physical server somewhere in the data center. As a customer, you can order a portion of the physical server capacity in the form of a VPS. How much capacity is up to you and your wallet, but modern physical servers are powerful machines, and you’ll likely only be using a fraction of the total capacity. For example, our largest VPS XL runs on 10 CPU cores and 60 GB RAM, while the host system has 32 CPU cores and 512 GB RAM.
A virtual instance is a fully functional virtual machine with its own operating system.
The idea of splitting one physical server into multiple independent environments goes way back to the sixties and seventies when engineers from IBM experimented with so-called time-sharing. The motivation remains the same – multiple people can use one computer and share its resources.
Virtual Machines, Virtual Instances, and VPS
Although it may be confusing, the IT community uses different terms to describe virtual machines. Some people refer to them as virtual machines (VMs), others use the term virtual or cloud instance.
Other terms are used for sales purposes. The term cloud is closely related to virtual machines and describes more of them working together, as we explain later. A single instance is often referred to as a VPS. Or the vendor uses the product name, such as Amazon’s EC2 or Digital Ocean’s Droplet.
They both refer to the same concept.
Virtual Machines and Containers
Both are hot topics in the IT industry right now. Both use virtualization. But while a virtual machine consists of a completely separate virtual operating system, a container is a small portable instance that shares the capacity of the host operating system.
We’ll discuss containers in the next article in the Cloud Explained Series. This article focuses on virtual machines only.
How does it work?
Modern virtualization uses hypervisors
In the early days of virtualization, a new instance was created on top of the original operating system using software virtualization. This has proven to be less efficient, and modern virtualization is mostly hardware based. Hardware resources such as CPU, RAM, etc. are dynamically allocated to any number of virtual instances. The software responsible for this distribution is called a hypervisor.
A hypervisor is software installed directly on server hardware. It’s a bit like a hardware driver in an operating system kernel that communicates with bare metal parts very quickly. This makes the hypervisor software similar to the various drivers that computers use to communicate with things like printers or Wi-Fi cards.
There are two types of hypervisors – type 1 hypervisors and type 2 hypervisors. Type 1 hypervisors communicate directly with the hardware, while type 2 requires an operating system in between.
Both hypervisors are still in use, but Type 1 is typically used in commercial environments because of its faster response time. Type 1 hypervisors are also sometimes referred to as “managed hypervisors.” You may have heard names like Hyper-V, XEN, or Citrix, which are all commercial Type 1 hypervisors.
Type 2 hypervisors are for individual users who want to add an additional operating system on top of their standard operating system. Type 2 is more general, making it the perfect tool for software development. Did you notice the name of the application running our virtual Ubuntu in the first picture? This is Oracle VM VirtualBox, a Type 2 hypervisor.
How does the hypervisor manage hardware resources?
From the customer’s perspective, the virtual machine behaves as if the user were working on a normal non-virtual machine. While other virtual instances reside on the same physical server, their users are unaware of their neighbours.
The hardware capacity of each instance is constantly changing, depending on the actual needs of the guest operating system. The hypervisor sends enough resources from the hardware to satisfy the demands of a given virtual machine. Sometimes your virtual machine will consume more resources, sometimes your neighbour will put a lot of load on the physical server when you are using the least amount of RAM and CPU capacity. It is this principle that makes modern virtual instances resource efficient and therefore affordable.
Famous Virtualization Software
In the previous chapter, we explained that to create a virtual instance, you need special software called a hypervisor. Let’s take a quick look at some of the most popular hypervisors today. Since this series is primarily about the cloud, we’ll focus on hypervisors that you can find in enterprise environments.
All hypervisors mentioned in this chapter are Type 1 hypervisors; H. They are installed directly on the hardware without interfering with the operating system.
The business virtualization pioneer was acquired by Citrix in 2007. Developed at the University of Cambridge in the late 1990s, the Xen project marked one of the milestones in the deployment of business hypervisors, as the project’s goals were:
“Our design is targeted at hosting up to 100 virtual machine instances simultaneously on a modern server.”
University of Cambridge Computer Laboratory
It currently dominates the corporate sector.
• The most popular hypervisor on the market
• Extensive optimization options for experts
• Free trial, paid premium version
Microsoft’s proprietary solutions focus on customers who rely entirely on its products without resorting to open source software.
• Easy implementation for companies building on Microsoft products
• Cheaper than vSphere, but with fewer features
It is a cost-effective solution for commercial projects. The company is recognized as an industry leader in 3D graphics virtualization
• Cheaper than Hyper-V and vSphere
• Ideal for businesses using both Linux and Windows
• Optimized for 3D graphics
is open source software built directly into the Linux operating system, turning the Linux kernel itself into a hypervisor? Although it is open source, it is available as part of commercial packages, such as the Red Hat Virtualization Suite.
• Linux native – easy to integrate and fast for any Linux OS
• Cheap due to open source
KVM is currently the hypervisor of choice for Hollands Web.
The benefits of virtualization
Virtual machines are easy to scale
Because VPS instances are virtual, it is easy to expand hardware capacity by adding more RAM or more CPU cores or more disk space. Individual users use only a fraction of the entire provider’s server capacity. Your provider can instantly allocate more capacity to physical instances.
Upgrading your VPS instance will not disrupt your data in any way. The upgrade is seamless and instant, the only thing that changes is the new specs.
Note that we are not only talking about changing parameters from the same physical server but also the ability to move instances to different physical servers. Providers can move any instance to different hardware without stopping the workload.
Affordable virtual machines
The price of a VPS is several times lower than a dedicated server. While you can buy a VPS on Hollands Web for €18.33, our standard range of bare metal servers costs at least €139.
With the advent of VPS, even small businesses and individuals can have the independence that comes with having a private virtual server, their own IP address, and their own operating system.
However, it would be a mistake to think of VPS as only a low-end solution. Large companies sometimes buy VPS in bulk to build very complex cloud setups. Each server typically only needs to run a specific type of task, and the results are passed through the API to the next instance running a different task. In this way, it is easy to scale up tasks that become bottlenecks. It’s also a better setup from a security and debugging standpoint. Sometimes these clusters can get very large. Our largest customers use thousands of VPS simultaneously.
Virtual machines are secure
Each virtual machine runs independently of other instances in a separate environment. It is for this reason that developers use virtual machines as security sandboxes when testing new things or interacting with potentially malicious content. If something goes wrong, the other instances remain unchanged.
But the independence of each VPS is not only important to developers. If one instance fails or is hacked, the rest of the network is unaffected and business continues as usual.
We use hypervisor software KVM – Kernel-based Virtual Machine as a standard hypervisor. KVM allows near bear-metal performance and support of so-called para-virtualization drivers. These drivers are designated to enhance the performance of guests who run heavy tasks and applications.