
Xen Cloud Platform (XCP)
XCP contains a subset of features of the commercial distribution XenServer from Citrix. It includes a Xen API toolstack which offers host system pool management, multi-tenancy, storage repositories, SLA support, and pre-integration of network and disk functionality (e.g. Open vSwitch). XCP can be installed via ISO similarly to XenServer with all the same drivers. While not identical to XenServer, they share much of the same code base. XCP can also be obtained and configured via XCP-XAPI packages installed under the package manager in Debian GNU/Linux and Ubuntu Linux. The ISO is CentOS 5.x based, managed locally using XAPI and supports most XenServer features. However, it is a black box style appliance that works only on CentOS, whereas the XCP-XAPI packages are easy to customize, easy to build from source, come as packages so you can assemble your own system around them. The downside is that XCP-XAPI has some feature restrictions in comparison to the ISOs similar to XenServer, and supports only a limited number of storage repository types where the ISO supports most.
KVM
The Kernel Based Virtual Machine (KVM) is an open source project written for GNU/Linux that runs on x86 hardware. With a loadable Linux kernel module (kvm.ko), it integrates with the GNU/Linux system it is installed on, including processor specific Linux kernel modules (kvm-intel.ko or kvm-amd.ko). A complete virtualization system, there are many external programs written to manage KVM images. KVM can run multiple images of GNU/Linux or Microsoft Windows systems, including access to private network cards, disks, graphics, USB and so on. While KVM is integrated with the Linux kernel (as of Linux 2.6.20 KVM is part of the mainline code) hypervisors like Xen are external, having to take control of the machine it is installed on and utilizing resource management; KVM acts as part of the system, using the Linux scheduler and memory management. Currently KVM requires QEMU (an open source emulator) to work, but as of this writing, the project is working to replace that dependency.
VirtualBox
For non-commercial ease-of-use, VirtualBox works on multiple platforms with easy installation and setup. Offering x86 and AMD64/Intel64 virtualization, it can easily be leveraged in both the home and enterprise arenas. It can run on Windows, Linux, Macintosh, and Solaris hosts, and supports host installation of Windows (NT 4.0, 2000, XP, Server 2003, Vista, Windows 7, Windows 8), DOS/Windows 3.x, Linux (2.4, 2.6 and 3.x), Solaris and OpenSolaris, OS/2, and OpenBSD. Among the compelling features, VirtualBox makes running multiple OS guests easy; your limits are primarly dictated by your system memory and CPU capability. Virtual networks can be set up using VirtualBox for lab settings like penetration testing, build farm prototyping and Beowulf cluster templates. A feature called "snapshots" allows the user to save virtual machine states and revert back to those if needed. You can also build systems, configure them and deliver the VMs for use in customer VirtualBox instances. In comparison to some other well known commercial virtualization solutions, VirtualBox has been noted one of the least memory and CPU intensive.
OpenVZ
Based upon "container" technology, OpenVZ is not a true virtualization application. It has a modified Linux kernel (meaning host systems can only be some flavor of GNU/Linux) that is tailored to support OpenVZ containers. The containers are separate entities, relying on resource management and checkpointing through the one modified Linux kernel, behaving for the most part as a normal server would, with filesystems, applications, users, groups, etc. Host memory is more flexible for OpenVZ containers in that memory not being used by one container can be shifted for use by another. Resource management in OpenVZ consists of user beancounters, disk I/O schedulers, CPU schedulers, and two-level disk quota. No reboot is needed to change these resources during runtime, which is an attractive feature for developers and testers, or folks running live systems with users engaging them. The containers are secure, isolated, and promote less conflict on the server between applications who may otherwise share libraries or directory space. OpenVZ is released under the GNU Public License (GPL) and is free software.
LXC
Like OpenVZ, LXC is a container technology, existing as a userspace interface for the containment features in the Linux kernel. These features include Kernel namespaces (ipc, uts, mount, pid, network, user), profiles from Apparmor and SELinux, Seccomp policies, chroots via pivot_root, and cgroups (control groups). Not quite a virtual machine, LXC still can provide a similar environment to a Linux install as found on virtual machines like in VirtualBox. However, there is no need for a separate kernel under LXC since it takes root in the host kernel. Like OpenVZ LXC uses the resource management and checkpointing of the host kernel. LXC consists of a variety of container templates, standard tools for managing containers, bindings for multiple languages (Ruby, Python, Go, Lua, etc), and the liblxc library (libvirt is considered an alternative library). LXC is free software, most of the code is released under the terms of the GNU LGPL license (see the LXC website for details on non-LGPL licensed components).
- Advantages of Open Source Cloud Computing Software
- Open Source Hypervisors
- Open Source Cloud Appliances
- Open Source Compute Clouds (IaaS)
- Open Source Cloud Storage Software
- Open Source Platform as a Service (PaaS)
- Open Source Software Defined Networking Tools
- Open Source NoSQL Databases
- Open Source Provisioning Tools
- Open Source Configuration Management Tools