While a VPS is sold as a service by an Internet hosting provider, they are practically virtual containers with their own operating system running within a dedicated server.
On a physical server we host multiple virtual machines, each cut-off from the others.
In the world of VPS hosting, a VPS node is a physical dedicated server configured to create and run virtual machines using a hypervisor software.
The computer on which we run the hypervisor is called a host machine, while each VPS is called a guest machine. There are 2 types of hypervisors:
Type-1 native or bare-metal hypervisors
This type of hypervisor is installed directly on the physical server and used to control the operating system on the virtual machine, also being called bare metal hypervisors.
Examples:
AntsleOs, Xen, XCP-ng, Oracle VM Server, Microsoft Hyper-V and VMware ESX/ESXi.
Type-2 hosted hypervisors
This type of hypervisor runs on a regular host operating system, just like any computer software. The VM OS runs as a process on the host machine.
Examples:
VMware Workstation, VMware Player, VirtualBox, Parallels Desktop for Mac and QEMU.
You can’t always define very clearly the difference between the 2 types of hypervisor, for example Linux’s Kernel-based Virtual Machine (KVM) is a kernel module that transforms the host OS into a native hypervisor, while being categorized as a type 2 hypervisor.
VPS types
There are 2 different types of VPS, each with their own characteristics:
Full virtualization VPS, or virtual machines, provide virtual replacements that act just like physical servers. They have their own complete operating system, using native execution to share and manage hardware, through hardware-assisted virtualization, mainly from the host CPU.
Process virtual machines, or containers, share the operating system kernel and are designed to run software in a platform-independent environment. Containers can be created instantly, use fewer resources than a VM would use, allowing you to run 5-6 times more containers than VMs on a host machine.
A VPS can be considered a dedicated server with limited resources. To create a VPS, the host machine is divided into multiple virtual sections (CPU, RAM, HDD/SSD, bandwidth).
With a VPS, every resource is split according to the guest machine specifications.
We need to allow the software on the VPS to run on the resources allocated to the VPS, but not extend pass the quota allocated for it.
This can be important if not done correctly, as the IOPS from one VPS can affect other VPS, so we need to take into consideration that when allocating the maximum number of VPS that can exist simultaneously on a host machine.
It can have the same performance as the physical server on which it is built, with a slight difference accounting for the virtualization overhead.
Superuser access is always provided, so you can install almost any software that runs on the OS, which a bigger variety of programs than what you would be able to run in a shared hosting environment.
Every single VPS is allowed to select their own specific operating system, configure existing components and software, install new ones at will and restart or shutdown processes at any given moment.