LXC (abbreviation for Linux Containers) allows several independent Linux systems to operate on a single host. In doing so, LXC does not create any virtual machines, rather it uses environments that have their own processes but share the use of the host’s kernel.
The VirtualBox virtualization software was developed by InnoTek, which was taken over by Sun Microsystems in 2008.
It is used to virtualize various operating systems.
The software enables the operation of untailored guest systems and makes computer hardware (hard drives, graphics, sound, network cards, etc.) available to these systems in an emulated form. The processor and RAM are not emulated. Part of the RAM is permanently assigned to the guest system and an attempt is made to execute all the commands of the guest operating system directly on the host’s processor. Privileged processor commands are transferred to the host processor for execution after they are intercepted by the Code Scan and Analysis Manager (CSAM) and the patch manager (PATM). If necessary, VirtualBox can also use the hardware virtualization technologies provided by modern processors.
VirtualBox is compatible with Linux, Windows, macOS, as well as Solaris and OpenSolaris, and 32-bit as well as 64-bit x86 systems are supported as guest systems.
The VirtualBox is available in a closed source variant and as an Open Source edition (OSE). The source text for the Open Source edition can be downloaded from the project page .
Xen is virtualization software that enables the parallel operation of multiple virtual machines on a physical computer. The software originates from a research project conducted at the University of Cambridge.
Xen can be used for paravirtualization as well as in the area of true virtualization.
Modification of the guest systems is necessary on systems that do not offer hardware-based virtualization to allow them to run under Xen. These modifications enable the guest operating systems to cooperate with Xen, in which case paravirtualized systems operate with virtually no loss of speed. The relevant patches are available for a range of popular operating systems, such as Linux, OpenSolaris, and the BSD derivatives.
Xen also enables true virtualization with the presence of hardware-based virtualization functions, as can be found in modern processors. This has the benefit that the guest systems do not need to be modified.
Operation
Xen Hypervisor operates at the lowest level. It divides the virtual machines, which are referred to as domains. It is also responsible for managing processes, resources, and interrupts. The host system, Domain-0, is responsible for managing the guest systems as well as the use of the hardware. The outstanding hardware support of the Linux kernel, which is compatible with Domain-0, therefore also benefits all guest systems. The guest operating systems run exclusively as user domains (DomUs).
Alternatively, there is also the option of operating NetBSD or OpenSolaris in Domain-0.
Xen is free software; the source code is freely available on the project page .
oVirt is a complete Open Source virtualization management platform. oVirt is based on the kernel-based Linux Hypervisor KVM and the RHEV-M Management server, which was released to the Open Source community by Red Hat.
This includes comprehensive, web-based user interfaces for administrators and users. oVirt supports the live migration of virtual machines and hard drives between hosts and storage systems. Hosts, storage, and network configurations can be managed and maintained via the user interface.
Proxmox Virtual Environment (or Proxmox VE) is a comprehensive open source virtualization platform for Qemu KVM and LXC. Proxmox as a virtualization solution is based on the Linux distribution Debian and enables an uncomplicated, efficient deployment of virtual machines and containers. Administration and configuration is carried out either via a user-friendly web interface, an API or via the regular command line, which also enables the entire administration via classic configuration management tools such as Ansible or Puppet.
Proxmox VE can be operated both as a stand-alone machine or in a cluster consisting of several machines, which offers further advantages in terms of availability. In cluster operation, CoroSync is used to distribute the configuration.
With Software-Defined Networking (SDN), Proxmox VE enables the creation and management of complex network configurations. Virtual networks (VNets) can be set up and network traffic can be efficiently managed across multiple nodes and clusters.
With its many options for integrating hard disk storage, Proxmox VE leaves nothing to be desired. Distributed storage solutions such as Ceph, central NFS or iSCSI solutions or local data storage with ZFS and snapshots are just some of the many options available. The use of NVMe-oF in conjunction with Proxmox enables a significant increase in performance in virtualized environments by enabling fast and low-latency access to NVMe storage over networks, which improves the efficiency of data-intensive applications and enables optimized resource utilization.
Proxmox VE is continuously being improved. For example, the Proxmox Backup Server is a backup solution that enables the backup and recovery of VMs and containers, both as stand-alone software and with full integration into Proxmox VE. The ecosystem around Proxmox VE is also constantly growing. Proxmox can be managed wonderfully with Ansible or Terraform.
We offer tech insights articles on Proxmox in our blog.
Vagrant is a tool for managing virtualized development environments.
Virtual machines with all the components necessary for development can be created in just a few short steps.
This allows all developers in a team to work in a uniform environment.
Vagrant makes use of existing virtualization software, such as VirtualBox.
Various tools, such as Puppet and Ansible can be used to provision the virtual machines.
The Kernel-based Virtual Machine is the Linux kernel’s virtualization solution developed by Qumranet.
It is based on hardware virtualization technologies of Intel (VT) or AMD (AMD-V) processors, which results in a significant performance improvement compared to paravirtualization.
No tailoring by the guest systems is required.
KVM has been a fixed part of the Linux kernel since version 2.6.20 and is also responsible for overall control and management, as well as for resource management. This means that the project directly benefits from further developments of the Linux kernel.
Besides the functions relating to processor access, KVM uses a modified version of Qemu, which emulates the other hardware, such as BIOS, hard drives, or graphics cards.
KVM is distinguished by its simple installation and administration. Even system migrations during live operation are possible with KVM.
KVM is free software, and the source code is available from Qumranet .
Openshift is an Open Source cloud platform for automated, easily scalable applications. Containers are used to quickly and securely virtualize even complex applications with various requirements.
OpenStack is a Linux-based cloud operating system that manages large pools of computer, storage, and network resources in a host cluster or data center, which are all managed via a shared dashboard. This gives the administrators complete control of this cloud.
Users also have the option of creating and maintaining resources, such as virtual machines, etc. OpenStack serves the compute, storage and networking segments.
Docker is Open Source virtualization software. The main feature of this software is that the virtualization does not occur via a virtual machine, which is usually the case, but via containers. Docker was released as Open Source software in March 2013 after it was developed as an internal project under dotCloud, a “platform-as-a-service” provider.
Integration is an important point for Docker, which is the reason that it can be easily integrated into a wide range of infrastructure tools. AWS, Ansible, CFEngine, Chef, and Google Cloud Platform are just a few examples. By far Docker’s most important component is the use of containers. Instead of using applications on a fully established, independent virtual machine (as is the case in traditional virtualization software), Docker packages the application together with all relevant system-related data of the relevant operating system in a container. This enables the application to access all the necessary system, configuration, and other files without having to communicate with a separate, active virtual machine. Besides a significant improvement in availability, this process supports the host system directly, as it uses a minimum amount of resources compared to conventional virtualization.
Similar to Vagrant, Docker supports automated virtualization, Ansible, Puppet, etc.
Ganeti is a virtualization management solution that was developed by Google and is available under the BSD2 license.
Kubernetes is an Open Source system originally developed by Google in order to provide, manage, and scale container applications in a cluster. Together with Docker swarm mode, for example, this now effectively represents the standard for distributed container applications and is also supported by major cloud providers, such as Azure, Google, and AWS. It supports a range of container tools, incl. Docker as probably the most well-known representative, but also other types of containers, such as Rocket.
Various extended systems, such as Red Hat’s Openshift, which extend Kubernetes with additional functions, are also available.
Google has since transferred Kubernetes to the Cloud Native Computing Foundation (CNCF), which promotes the development of various container technologies and now also offers a Kubernetes certified administrator. It offers the following functions, among others:
- Automatic distribution of containers to the provided cluster nodes
- Configuration of the network within the cluster with automatic load balancing
- Resource configuration for individual containers (incl. CPU, RAM, HDD)
- Scaling of the container services via the deployment of multiple instances
Kubernetes makes it possible to operate and extend its container applications on virtualized as well as dedicated hardware with virtually any scaling. The master-slave architecture allows every system on which Docker or the Kubernetes client (Kubelets) is activated and available to be added to as well as removed from the cluster.