Mike Kiev - Fotolia

Tip

Open source virtualization expands VM hardware and OS options

Dive into open source virtualization software with VirtualBox, KVM or QEMU. Each offers customizable VM management capabilities and legacy hardware support.

You don't have to use proprietary virtualization software to run virtual machines. The open source community boasts offerings for all different virtualization needs, so you can assemble a program that has exactly the features you want without high upfront costs or tricky service-level agreements.

Open source virtualization software can help you avoid the costs that come with proprietary software from vendors such as VMware. It also enables you to get updates more frequently, and you can change the source code when necessary.

But one caveat of open source virtualization is the potential lack of support. These programs might not include the level of support you get with a proprietary offering, but there are still plenty of forums and mailing lists to find help or documentation.

You can start with VirtualBox, Kernel-based Virtual Machine (KVM) or Quick Emulator (QEMU). These programs provide a standard set of virtualization functions for your data center, and they enable you to customize your virtual environment as needed.

VirtualBox

VirtualBox is a popular open source virtualization option. It is compatible with Windows, Linux, Mac and even Solaris hosts, and it runs on off-the-shelf hardware.

VirtualBox can run any number of guest virtual machines (VMs) from the following operating systems: Windows NT, Windows Server 2003, Linux 2.4 to 4.x, Solaris, OpenSolaris, DOS/Windows, OS/2 and OpenBSD. It can also run macOS as a guest.

VirtualBox open source program for virtualization
Figure A: VirtualBox running Windows 10 and Ubuntu Desktop 18.10 guests

VirtualBox is under constant development, but it has a lot of features for VM management. One of the main benefits of VirtualBox is the Snapshots function. With Snapshots, you can easily roll back a VM to a previous state. This is useful for VM testing and configuration, which can include a lot of trial and error.

You can also create clones with VirtualBox to configure a base VM of a clean host and clone it as needed; this is beneficial for troubleshooting issues.

With virtual network support, you can run VMs on your own subnet for testing purposes or even create a subnet only your local area network can reach.

VirtualBox's latest version has a File Manager functionality. The tool's dialog-based windows make it easy to transfer files to and from guests and hosts with a few clicks.

If you want a better connection between guests and hosts, VirtualBox offers Guest Additions device drivers that boost performance and usability on a guest-by-guest basis.

KVM

KVM is another open source virtualization offering that runs Linux on x86 hardware with Intel Virtualization Technology or AMD Virtualization extensions. The program lets you run multiple VMs with either Windows or Linux images.

The KVM feature list is quite lengthy, and it includes standard functions for live migration, scheduling, job prioritization and resource control. But there are features that make KVM stand out.

One capability is nested guest creation for testing or development use cases, or if you need multiple hypervisors. KVM also supports kernel samepage merging, which enables you to share identical memory pages among different processes or virtualized guests.

If you need device management, KVM makes it easy to assign specific devices -- such as a network card -- to specific guests. This is useful for hosts that contain numerous devices, but you don't want every device to be available to every guest.

KVM open source software
Figure B: Choosing a storage volume for a guest OS

Note that if you use KVM, new guest setup isn't quite as user-friendly as it is in VirtualBox. To create a guest, you must create storage volumes and pools. KVM has all the necessary drivers included in the official kernel tree, so you don't have to install them via Guest Additions.

QEMU

QEMU has four different modes for open source virtualization, so you can decide the type of virtual environment you want. QEMU supports the following operating modes:

  1. User-mode emulation: QEMU runs individual Linux or Darwin/macOS programs designed to run on a different computing architecture.
  2. System emulation: QEMU emulates an entire operating system and any peripherals. The emulator virtually hosts several virtual desktops on a single computer.
  3. KVM hosting: QEMU helps set up and migrate KVM images.
  4. Xen hosting: QEMU only emulates the hardware and Xen executes the guest.

QEMU emulates the following architectures: IA-32, ARM development boards, MicroBlaze, x86-64 PCs, MIPS64, Sun Sparc, SH4 Shix, RISC-V and PowerPC.

Emulation support for these architectures is handy, especially if your department oversees certain legacy technology or difficult-to-find hardware.

QEMU is a command-line-based tool and it requires a third-party plugin if you want a visual interface. This, of course, means QEMU has a steeper learning curve, but it is a great option for running GUI-less hosts or deploying GUI-less guest servers.

Virt-Manager GUI
Figure C: The Virt-Manager GUI for easier QEMU management

If you prefer a GUI, you can always install Virt-Manager for a user-friendly virtual environment deployment.

Dig Deeper on Data center ops, monitoring and management