December 19, 2018
VMware vs. Virtual Box: Comprehensive Comparison
Oracle and VMware are leaders in providing virtualization solutions in the modern IT industry. Oracle provides VirtualBox as a hypervisor for running virtual machines (VMs) while VMware provides multiple products for running VMs in different use cases. Both platforms are fast, reliable, and include a wide array of interesting features. Some of these features are available in both platforms, but there are also some features that are unique to each platform. The choice between VMware and Oracle VirtualBox virtualization solutions may be difficult. If you are comparing VirtualBox to VMware, this blog post can help you to select the virtualization solution that meets your needs best.
Hypervisor Types of VMware’s and Oracle’s Virtualization Products
Hypervisor is a special software product that can simultaneously run multiple virtual machines on a physical machine. The VMs are logically isolated from each other and the underlying physical machine; this is due to the abstraction layer of a hypervisor that makes VMs independent from the hardware that is used by a physical machine. This setup enables one of the advantages of virtualization – easy copying machines from one host to another. Another benefit is hardware resource redistribution between VMs.
There are two types of hypervisors: type 1 and type 2. A type 1 hypervisor is also called a native hypervisor, and can run on bare metal by accessing the hardware directly. A type 1 hypervisor doesn’t require an underlying operating system (OS) because the hypervisor works as the operating system in this case. Using type 1 is optimal for large production environments.
A type 2 hypervisor runs on an existing host operating system as an application. This type provides virtualization services by coordinating calls for CPU, memory, disk, and other I/O (input/output) resources through the host OS. Using a type 2 hypervisor is convenient for users who want to run a VM on their personal computers.
Oracle VirtualBox is a type 2 hypervisor and must be installed on the host OS as a software application.
VMware Player, Workstation, and Fusion are type 2 hypervisors, and must also be installed on the underlying host OS.
VMware ESXi is a type 1 hypervisor and must be installed on bare metal.
Oracle VirtualBox is a free open source software product that is distributed under the GNU General Public License, version 2 (GPLv2). The latest version of VirtualBox that is currently available (at the time of this blog post’s creation) is VirtualBox 5.2.22.
VirtualBox Extension Pack is a closed-source pack that adds some additional features to the product including USB2.0/3.0 support, VirtualBox RDP, PXE Boot, VM disk encryption (must be installed on a host OS). VirtualBox Extension Pack is free for evaluation, personal use, or educational purposes (distributed under the VirtualBox Extension Pack Personal Use and Evaluation License). However, you should order an Enterprise license for commercial use.
VMware Player (VMware Workstation Player is the full name of the product) is free for personal, educational, and non-commercial use. Business and non-profit organizations must obtain a commercial license (for about $150) that allows you to run Restricted VMs created in Workstation/Fusion, and provides better support for mass deployments. You are able to quickly create (from v3.0) and easily run VMs with VMware Player.
VMware Workstation (VMware Workstation Pro is the full name of the product) has a 30-day trial period available for you to evaluate the product. Generally, you need to buy a license (VMware Workstation 15 Pro costs about $250). While VMware Player only includes basic features, VMware Workstation includes a full set of virtualization features provided by VMware for desktops.
VMware Fusion is the equivalent of VMware Workstation for computers that have a macOS operating system. There are two editions of VMware Fusion – VMware Fusion ($80) and VMware Fusion Pro ($160). VMware Fusion Pro includes slightly more enterprise-grade features as compared to VMware Fusion, which is primarily oriented towards home users.
VMware ESXi must be licensed with vSphere licenses, starting from $495 for VMware vSphere Essentials Kit. There is the evaluation period of 60 days for ESXi. You can also get a free ESXi license for an unlimited time period, but with limited features: ESXi host cannot be managed with vCenter Server; 2 physical CPUs (the number of CPU cores is unlimited); the number of vCPUs per a VM is 8.
Note: The first version of VirtualBox (which is formerly known as Sun VirtualBox) was released in 2007 by Innotek GmbH. In 2007 Innotek was acquired by Sun Microsystems. In 2008 Sun Microsystems was acquired by Oracle, and since 2008 the product’s name has been Oracle VirtualBox. The current version of VirtualBox is v.5.2.22.
The first version of VMware was released in 1999. The full name of the product was VMware 1.0. Later, with the release of the third version in 2003, the product was renamed VMware Workstation 3.0. Now VMware is a family of multiple virtualization applications and tools.
VMware Player 1.0 was released in 2008. The version numeration of VMware Player and VMware Workstation was different until Player v.7 and Workstation v.11. In 2015, with the release of VMware Workstation v.12, the version numeration was aligned and the new version (12) of Player was released in the same year. The current version of VMware Workstation and Player is 15.0.2.
VMware Fusion 1.0 was released in 2007. The version numeration of VMware Fusion and VMware Workstation is distinct. While the latest version of VMware Workstation is 15.0.2, the latest version of VMware Fusion is 11.0.1.
VMware ESX 1.0 was released in 2001 (ESX – Elastic Sky X). In 2007 VMware released ESXi 3.5 (ESX 3.5 was released in 2008) as a more progressive alternative to ESX. ESX is no longer available (the latest version 4.1.0 build 2168595 was released in 2014). VMware vSphere 5 and later vSphere versions are only compatible with ESXi (Elastic Sky X Integrated). The current version of ESXi is version 6.7.
Hardware and Software Virtualization
Hardware virtualization uses a hypervisor to emulate hardware devices for virtual machines. Intel VT-x or AMD-V CPU features are required on a physical (host) machine to make hardware virtualization possible, and must be enabled in UEFI/BIOS. Some guest codes can run directly on the host hardware, which increases the overall performance of the VM. The host and guest systems must use the same platform, for example, x86-64.
Both VMware and VirtualBox support hardware virtualization.
Software virtualization requires the host system to completely emulate the whole guest platform, including CPU instructions by using special software. Hardware virtualization features are not required for the host machine’s CPU, but the performance is less than what it is for hardware virtualization. The host and guest platforms can differ.
VirtualBox supports software virtualization, which means that you can run virtual machines with VirtualBox - even on the old hardware on which CPU doesn’t support hardware virtualization features.
Host Operating Systems on Which Products Can Be Installed
Oracle VirtualBox is a cross-platform solution that can be installed on Linux, Windows, Solaris, macOS, FreeBSD.
In a case of using VMware products the situation differs. VMware Workstation and Player can be installed on Linux as well as Windows; and VMware Fusion can be installed on macOS.
As you can see, VirtualBox supports a higher number of host operating systems.
Support for Guest Operating Systems
The following guest operating systems can be installed on VMs running on VirtualBox: Linux, Windows, Solaris, FreeBSD, macOS.
VMware products support the installation of the following guest operating systems: Linux, Windows, Solaris, FreeBSD, macOS*. Be aware that macOS can only be officially installed as a guest OS on VMware Fusion/Fusion Pro. Technically, macOS can be installed on VMware Workstation and ESXi by using a special patch, but make sure that the license agreement is respected before using the patch.
User Interface (GUI and CLI)
VirtualBox provides a VirtualBox Manager with a convenient graphical user interface (GUI), and VBoxManage as a powerful command line interface (CLI). By using VirtualBox CLI you can access all of the features and settings of the virtualization engine, including the settings that are not available in GUI.
VMware Workstation provides a powerful user-friendly GUI as well as the vmrun command line utility for managing virtual machines - including guest operating systems. You can also use the vmware command with appropriate options in cases such as starting Workstation, starting a VM, switching to a full screen mode, etc. The vmrun command-line utility can be used for VMware Player after installing the VMware-VIX API libraries. VMware Player provides a simplified GUI.
The GUI of VMware Player is shown on the screenshot below. You can compare the interface of VMware Player with the interface of VMware Workstation.
VMware Fusion provides a GUI that differs from Workstation’s GUI, because it is adopted for macOS users. The tabs to switch between VMs as well as the left pane with the VM list are missing. The vmrun command-line utility is also available.
VMware ESXi has a console interface that can be accessed either directly on the server, or with remote SSH connection. You can use a graphical interface if you connect to the ESXi server with a browser by using VMware Host Client.
Shared folders allow you to conveniently exchange files between a host OS and a guest OS, via the network. You can easily create a shared folder in the host OS with a virtualization application, and then transfer files from a host system to a guest system, or vice versa. Using a shared folders feature is more convenient than creating a shared folder manually with the built-in tools of the operating system. Shared folders are available in Oracle VirtualBox, VMware Workstation, VMware Player, and VMware Fusion. There is no Shared Folders feature available for VMs running on ESXi hosts – you have to create a shared folder manually on a physical or virtual machine with the built-in tools of the OS. VirtualBox Guest Additions and VMware Tools must be installed on the guest OS to enable shared folders accordingly.
VirtualBox Guest Additions vs VMware Tools
VirtualBox Guest Additions is a set of drivers and system applications for guest operating systems, which can be used to improve VM performance and usability. Guest Additions are provided for all supported guest operating systems, as the VBoxGuestAdditions.iso file is located in the directory where VirtualBox is installed. In order to install Guest Additions, you should mount the ISO image to the virtual DVD drive of the VM, and run the installer. The ISO images of different versions can be downloaded from VirtualBox's site. You can use a command line package manager to install Guest Additions on Linux systems from software repositories.
VMware Tools is the analog of VirtualBox Guest Additions for virtual machines that are running on the VMware platform. VMware Tools are provided for each supported guest OS as a separate ISO image (windows.iso, linux.iso, solaris.iso, etc.) that is located in the directory of the application (VMware Workstation, Player, Fusion). As for ESXi, VMware Tools can be located in the /usr/lib/vmware/isoimages/ directory. If you cannot find the appropriate ISO images, you can manually download the VMware Tools installer from the VMwareְ's site; or you can use a command line package manager to install open-vm-tools from software repositories for your Linux guest operating systems.
After installing VirtualBox Guest Additions or VMware Tools, the following features become available: Shared folders, Drag & Drop, Shared Clipboard, Integrated mouse pointer, Autologon, better video output, time synchronization, etc.
VirtualBox Seamless Mode vs. VMware Unity
VirtualBox Seamless mode and VMware Unity are the equivalent features that allow you to display windows of guest applications, similarly to how windows of host applications are displayed.
Generally, the windows of guest applications that are running on the guest OS are displayed in a single window of the VM. The VM window vanishes after enabling the Seamless mode or Unity mode. Programs that are running on the guest OS look like the programs that are running on the host OS. Security is not violated by this, because the programs continue to run on the isolated VM.
Using guest applications without a VM window makes the workspace more integrated and convenient. For example, you can run Photoshop on your Windows VM, enable VirtualBox Seamless mode/VMware Unity mode, and then operate with the window of Photoshop similarly to how you operate with regular windows of your Linux host OS.
VirtualBox Guest Additions are required for using the Seamless mode, and VMware Tools are required when using the VMware Unity mode accordingly. The Unity mode cannot be used for remote VMs that are running on ESXi hosts.
VirtualBox supports the Seamless mode for Linux, Windows, and Solaris guests (macOS is not supported).
VMware supports the Unity mode for Windows and Linux guests (unfortunately, the support of the Unity mode in Linux guests was removed in VMware Workstation 12). Unity for macOS guests is not supported.
Snapshots allow you to save a VM state for a particular moment in time. Both VirtualBox and VMware products (except VMware Player) support VM snapshots. You can create multiple snapshots, and then roll back a VM to one of the snapshots in order to restore the VM state. A VM can either be powered off or powered on when a snapshot is taken. When a snapshot of the running VM is taken, the virtual memory is also saved to a file.
When you take a snapshot, a differencing virtual disk is created; and from that particular moment, all changes are written to that differencing virtual disk. When you take the next snapshot, another differencing virtual disk is created. You can take multiple snapshots, but be aware that snapshots slow down the performance of the VM.
When a snapshot is deleted, the differencing virtual disk is merged with a parent virtual disk (the differencing virtual disk of the previous snapshot can also be considered as a parent virtual disk).
Snapshots are useful for testing. For example, if you do not know whether the application would work properly after installation, take a snapshot before installing the application. Thus, if something were to go wrong, you can revert a VM state to the snapshot. The VM cannot be running in order to restore from a snapshot.
USB Devices Support
With USB devices support, you can attach a USB device to a host machine and connect the USB device to a guest machine. This feature is useful for attaching USB hard disk drives, web cameras, WI-FI adapters, printers, scanners etc. to the VM. A virtual USB controller must be enabled for the virtual machine.
VirtualBox and VMware platforms (including VMware Player, Workstation, Fusion, ESXi) support the connecting of USB devices to virtual machines. You can use VM options for removable devices to connect/disconnect a USB device from host to guest.
The closed source Extension Pack must be installed in VirtualBox for USB 2.0/3.0 support, and VirtualBox Guest Additions are required. VMware provides USB devices support out of the box.
3D Graphics Support
Some software, such as applications for creating and rendering 3D models, may need 3D acceleration support.
VirtualBox has limited support for 3D graphics (up to OpenGL 3.0, Direct3D 9). 3D acceleration must be enabled in the VM settings manually. A maximum 128 MB of video memory is supported. Graphics drivers must be installed on the host machine, and VirtualBox Guest Additions must be installed on the guest machine.
VMware provides 3D graphics with DirectX 10 and OpenGL 3.3 support for Player, Workstation, Fusion and ESXi. 3D acceleration is enabled by default for the latest versions of Workstation VMs. VMware Tools are required. You can set up to 2 GB of video memory. Graphics drivers must be installed on the host OS and hardware acceleration must be enabled.
Generally, in this category, VMware provides better 3D graphics support for guest VMs.
Virtual Disk Format
Virtual disks are emulated like other virtual hardware for virtual machines. Virtual disk files, which represent special containers for holding data, are attached to the VMs.
VirtualBox supports for the following virtual disk formats:
- VDI (Virtual Disk Image) is a native VirtualBox format of virtual disks. This format is used by default when you create a new VM in VirtualBox.
- VMDK (Virtual Machine DisK) is a virtual disk format developed by VMware, and is used for VMware virtual machines. Other vendors also use this format.
- VHD (Virtual Hard Disk) is a virtual disk format developed by Microsoft for Hyper-V.
- HDD virtual disk images of Parallels Desktop 2 format (is popular on macOS).
VMware supports a VMDK format of virtual disks for virtual machines. This is the only virtual disk format supported by VMware.
Virtual Disk Allocation Type
When you create a virtual disk, there are two types of disk allocation that you can use:
You can pre-allocate the entire space at the moment of creation. For example, if you create a 10GB virtual disk, the virtual disk file would consume 10 GB of space on storage right after creation. In VirtualBox such disks are called fixed disks, while in VMware such disks are called thick provisioned disks.
You can create a dynamically allocated virtual disk file that is able to grow as data is written to the disk. This type of virtual disk is very small at the moment of creation, and gradually grows as data is written onto new blocks, until the disk size reaches the maximum provisioned size. The disks of this type are called dynamically allocated disks in VirtualBox, and thin provisioned disks in VMware. Read the blog post about thick and thin provisioning to learn more.
Support of Linked Clones
A linked clone is a virtual machine that has a virtual disk linked to another virtual disk of another VM. It only saves data that differs from the data that is stored on a disk of a linked (parent) virtual machine. For example, you can create a basic VM with updates and software installed on it. Then, you can create multiple linked clones and install different specialized software on each linked clone that would be used for each appropriate purpose. This approach allows you to save storage space because only the differences are written to the virtual disks of linked the clones. Furthermore, it allows you to save time spent on the clone creation. A snapshot is created automatically for a basic VM when you create a linked clone, which is then used as a base for the linked clone. A linked clone must always have access to a parent VM.
Linked clones are supported by VirtualBox, VMware Workstation, VMware Fusion Pro. As for VMware ESXi, you can create linked clones manually by writing special scripts for PowerCLI. VMware also provides linked clones for VMware Horizon VDI (a virtual desktop infrastructure solution that works with vSphere).
VirtualBox provides the following network modes:
Not attached. In this mode a virtual network adapter is enabled for a VM, but an unplugged network cable is emulated. As a result, the VM has no network connection.
NAT (Network Address Translation). This mode allows you to enable a private network for a VM behind a virtual router, which is integrated into a VirtualBox engine. A guest machine can access the host machine and other hosts in the network to which the host machine is connected. A guest machine can also access external hosts and has Internet access (similar to that of the host machine). The VM is unreachable from a host machine and external networks (you can manually configure port forwarding to fix this). An integrated DHCP server is used for assigning IP addresses to VM network adapters. NAT is a default-networking mode that is used when a VM is created.
NAT Network (Service). This mode is more advanced than the NAT mode explained above, and allows VMs in the NAT Network (behind the NAT) to access each other over the network. Do not forget to create a virtual network by going to File > Preferences > Network for configuring NAT network. You should manually configure port forwarding if you want to enable network access to VMs from a host machine.
Bridged adapter. In this mode, a VM connects to the same network as a host machine does. In this case, a VM looks like a physical machine connected by using a network cable to the same switch as a host machine. Different techniques of bridging are used for wired and wireless network adapters of host machines.
Internal network. This mode allows VMs to connect with each other. In this case, a networking scheme looks as if virtual machines are connected to the switch, and the switch is not connected to any routers or physical machines.
Host-only adapter. VMs can communicate with each other and with a host machine, while the host can access guest VMs via network. The VirtualBox Host-Only network adapter is created in the host OS.
Let’s compare network modes for VirtualBox VMs in the table:
|VM -> Host||VM <- Host||VM1 <-> VM2||VM -> LAN||VM <- LAN||Virtual network adapter in host OS|
|NAT||+||Port forwarding||-||+||Port forwarding||-|
|NAT Network||+||Port forwarding||+||+||Port forwarding||-|
*LAN is a physical local area network to which a host machine is connected.
VMware provides the following VM networking modes: Bridged, NAT, and Host only. These modes are available for VMware Player, Workstation, Fusion, Fusion Pro. VMware Workstation and Fusion Pro include a virtual network editor, while Player and Fusion do not.
NAT. In this mode, virtual machines are connected to a private network behind the NAT. The VMs are able to communicate with each other, a host machine and other hosts with which the host machine can communicate outside the VM NAT network. A host machine can communicate with VMs, but other hosts outside of the NAT network cannot communicate with such VMs in this way. A default name for the NAT network is VMNet8. A virtual network adapter is added to the host operating system when a NAT network is added. A built-in virtual router and DHCP Server are used by VMware products in order to establish the NAT network connection for VMs.
The working principle of NAT networking for VMware VMs is similar to the NAT Network mode in VirtualBox. However, you do not need to manually add port forwarding rules (except if you need to connect from any hosts of your physical LAN to the VM).
Bridged. This mode makes your VM work similarly to any other machine in your physical network. The working principle is similar to the working principle of the bridged connection for VirtualBox. A default name of the bridged network is VMNet0.
Host-only. In this mode VMs are connected to an isolated network, and can communicate with each other as well as with a host. A host can communicate with VMs. A connection scheme looks as if the VMs and the host are connected to the same switch, and the switch is not connected to any router (similarly to VirtualBox). A virtual network adapter is created in the host OS, and the default name of this network is VMNet1. A virtual DHCP server is included with VMware products in order to assign IP addresses to VM network adapters that are connected in the Host-only mode.
You can add, edit, and delete the virtual networks in the virtual network editor (including a network address, the IP address of the router, settings of the DHCP Server, etc.). The maximum number of VM networks is 20 (VMNet0 to VMNet19).
Network modes provided by VMware are compared in the table:
|VM -> Host||VM < Host||VM1 <-> VM2||VM -> LAN||VM <- LAN||Virtual network adapter in host OS|
VMware ESXi includes slightly different tools for connecting VMs to networks. The default VM network connection method is similar to the bridged mode. The virtual network adapter of a VM connects to a port of a default vSwitch, which is connected to a physical switch by using the physical network interface controller (NIC) of the ESXi host. Multiple port groups can be created on the vSwitch. You can set VLAN IDs for different port groups of a virtual switch, and then (by using L2 switches) connect them to a physical or virtual router. The VMs that have virtual network adapters that are connected to these ports, are connected to the appropriate networks. VMware provides NSX for virtualizing routers as well as building software defined networks (SDN), however this topic is out of the scope of this article. Read more about virtual switches and ESXi networking by reading this blog post. The maximum number of virtual network adapters per VM is 4 for VirtualBox, and 10 for VMware.
Shared Storage (iSCSI) Support
iSCSI is a popular network protocol that is used to access shared storage on a block level. iSCSI storage is convenient to attach as a remote disk by using an Ethernet network. You cannot see any difference from the guest OS of the VM. A server that provides shared storage is called an iSCSI target, while a client who initiates a connection to the server is called an iSCSI initiator. Using shared iSCSI storage as a virtual disk for a VM is especially useful when you need to migrate the VM between hosts. A VM uses the same shared iSCSI target to store a virtual disk, but consumes the computing resources of another host after migration.
VirtualBox includes a built-in iSCSI initiator. A command line must be used to connect an iSCSI target to a VM in VirtualBox. After attaching the iSCSI target to a VM, the internal VM files are stored directly onto the iSCSI disk. No virtual disk file is created in this case.
VMware ESXi supports the attachment of an iSCSI target to be used as a datastore for storing VM files, including virtual disks. The main difference with VirtualBox is that VirtualBox VMs only use iSCSI targets directly without creating virtual disks, while ESXi uses iSCSI targets as datastores to store virtual disk files of VMs. It is recommended that you configure a dedicated storage network for attaching iSCSI targets to ESXi hosts. You can use raw device mapping (RDM) to store the data of VMware VMs directly onto the iSCSI disk, bypassing the virtual disk file; however, be aware that the VM performance is not increased in this case.
VMware Workstation, Player, and Fusion do not support iSCSI, and do not have an iSCSI initiator. The only way to store virtual disks on an iSCSI storage is through connecting an iSCSI target by using the built-in iSCSI initiator of the host operating system (if such initiator exists in the OS), and then using the mounted disk to store the virtual disk files for VMs.
VirtualBox also supports NFS and SMB shared storage, while VMware ESXi supports NFS and Fibre Channel storage. NFS and SMB (CIFS) are file-level access protocols.
VM Live Migration – VirtualBox Teleportation vs. VMware vMotion
VirtualBox supports VM live migration from one VirtualBox host to another over the TCP/IP network, even if the VM is running. This feature is called Teleportation in VirtualBox. A shared storage (iSCSI, NFS or SMB) must be used for a virtual disk, and must be accessed by both VirtualBox hosts. A virtual disk is not migrated from one host to another, rather, a state of the VM is transferred - with minimal downtime if the VM is running. As a result, the VM consumes the computing resources (CPU, Memory) of the target host, but not resources of the source host. A VM can be migrated between hosts regardless of the host OS; for example, a VM can be migrated from a Linux host (source) to a Windows host (target).
Another requirement is the configuration of a VirtualBox VM on a target host. A VM with hardware settings that are identical to the hardware settings of the source VM must be created (amount of virtual memory must be the same). The VM names may be different. A command line interface (VBoxManage) must be used to perform VM Teleportation between VirtualBox hosts. Using processors of the same family on VirtualBox hosts is recommended for maximum compatibility.
VMware provides the vMotion feature for migrating VMs between ESXi hosts in vSphere over network, and without downtime if the VMs are running. VM workloads (CPU and memory) are transferred seamlessly, thus, as a result the services and applications of the VM are not interrupted. Virtual disks are not migrated when vMotion is used. Storage vMotion is used for migrating virtual disks from one datastore to another.
The main requirements are: vCenter Server, a shared datastore that is accessible by both ESXi hosts, and processors of the same family on ESXi hosts. Unlike VirtualBox Teleportation, you do not need to create a new empty VM for live migration of VMware VMs with vMotion. It is recommended that you use a dedicated network for vMotion. You can perform vMotion by using the graphical user interface of VMware vSphere Client or with PowerCLI.
VMware Player, Workstation, and Fusion do not support any VM live migration features such as vMotion.
Interface for Centralized (and Remote) Management
PhpVirtualBox is a web interface that is similar to the standard interface of VirtualBox. It allows you to manage remote VirtualBox instances with a web browser. PhpVirtualBox is written on PHP and is a free open source solution. PhpVirtualBox and VirtualBox do not have to be installed on the same machine, as the communication between them is performed over the network. As a result, you can deploy PhpVirtualBox to manage multiple VirtualBox instances installed on different hosts (even if a host OS doesn’t have GUI).
VMware provides vCenter Server for the centralized management of ESXi hosts and other components of vSphere. You can connect to vCenter with VMware vSphere Client or VMware vSphere Web client (both have GUI). VMware promotes vSphere Web client, which can be accessed with a web browser and recommends the use the vSphere Web Client. VMware vSphere Client is a standalone application that can be installed on Windows. If you do not have vCenter Server, you can manage standalone ESXi hosts by using VMware Host Client in a browser, or by using VMware vSphere Client (Windows application). VMware also provides a PowerCLI, which is a command line interface (CLI) for managing ESXi hosts and vSphere with vCenter. PowerCLI is a collection of cmdlets for Windows PowerShell.
VM Encryption Support
VirtualBox has a built-in encryption feature that allows you to encrypt the virtual disk of a VM. Configuring VM encryption is not difficult: you should select the encryption cypher (XTS-AES-256 or XTS-AES-128) and enter a password in the VM settings. VM disk encryption may take some time, depending on the size of the virtual disk. You are required to enter a password when you power on an encrypted VM. Virtual disk encryption is transparent for a guest OS. Later, you can disable encryption in VM options if needed. VirtualBox Extension Pack must be installed in order to enable VM encryption options.
VMware also provides VM encryption/restriction options, which are different for each VMware product. Similarly to VirtualBox, the virtual disks of VMware VMs can be encrypted. If you set an expiration date for a VM, users are able to use the VM until the expiration date comes. Thereafter, administrator has to enter the password used for the VM encryption in order to reset or prolong VM restriction options.
VMWare Player. VMs cannot be encrypted with VMware Player, but VMware Player can play already encrypted VMs (a commercial license is required in this case).
VMware Workstation allows you to configure VM encryption – you can enable or disable encryption, edit already encrypted or restricted VMs, as well as set the expiration date for the encrypted VM. All encryption and restriction features are available. AES-256 encryption algorithm is used to encrypt virtual disk files of VMs.
VMware Fusion. You can enable and disable encryption for VMs that have not been encrypted yet. The only change that can be made is that of the password – if the VM was previously encrypted/restricted with another VMware product (other encryption and restrictions settings are read-only for VMware Fusion). If these options are not sufficient for you, consider using VMware Fusion Pro.
VMware Fusion Pro. You can enable, disable, and edit encryption settings for VMs that already have restrictions enabled. All encryption and restrictions options are available for VMs through the use of VMware Fusion Pro.
VMware ESXi. There are more encryption options available for virtual machines and VM files if you use ESXi hosts with vCenter in vSphere. You can encrypt VM files (VMDK, NVRAM, VSWP, VMSN) or virtual disks (VMDK). XTS-AES-256 algorithm is used for the creation of data encryption keys (DEK); and AES-256 is used for creating key encryption keys (KEK). A Key Management Service (KMS) is used to provide keys for vCenter. VMware vSphere client must be used to encrypt particular VM files. Log files, VM configuration files (VMX, VMSD), and virtual disk descriptor files are not encrypted.
Memory Overcommit (also called Memory Ballooning) is a memory reclamation technique that allows a host to retrieve the unused memory from certain running VMs, and to redistribute this memory to running VMs that need more memory. This feature is activated when the host is running out of physical memory. A host cannot use the memory retrieved from VMs for its own tasks.
A hypervisor creates a special driver locked ballooning process, which simulates the consumption of a part of the VM memory. This process prevents the use of this part of memory by other guest applications, while a hypervisor can redistribute the ballooned memory to other VMs. For example, if a host has 16 GB of physical memory, Memory Overcommit allows you to run 3 VMs that are configured to use 6 GB of memory for each VM in the VM settings (3x6=18>16). If a guest VM with memory filled by the ballooning process needs additional memory, a swap file is used by a guest OS.
VirtualBox supports memory ballooning. This feature can only be configured with VBoxManage in the command line. VirtualBox Guest Additions must be installed on the VMs for the use of memory ballooning because a special driver that is a part of Guest Additions is required. Memory ballooning is only supported on 64-bit hosts, and is not supported on macOS hosts.
VMware provides memory ballooning for VMware Workstation, Fusion, and ESXi. Unlike VirtualBox, this feature can be configured by using GUI. VMware Tools are required because they contain a special vmmemctl.sys balloon driver.
Unfortunately, VirtualBox doesn’t provide clustering features at this time.
VMware provides the ability to deploy two types of clusters by using ESXi servers and vCenter in vSphere: a High Availability (HA) cluster and a Distributed Resource Scheduler (DRS) cluster. The HA cluster can perform VM failover in a case of hardware failure of ESXi hosts, while ensuring minimal downtime. The DRS cluster provides the rational consumption of hardware resources by VMs, and can initiate migration of VMs from the overloaded ESXi host to a host with free computing resources. VMware also provides Fault Tolerance, which is a great feature for the HA cluster, and helps you perform VM failover without downtime in a case of hardware failure. Learn more about VMware clustering by reading this e-book.
VMware Player, Workstation, and Fusion don’t support clustering.
Providing API for Developers
VirtualBox provides a powerful API (application programming interface) for developing applications that interact with VirtuaBox; while also making the integration of created applications easier and more convenient. Oracle also provides VirtualBox SDK (software development kit).
VMware provides different APIs and SDKs for developers, including the ability of the integration of development and testing tools, such as Eclipse. You can set up Eclipse Integrated Virtual Debugger Environment for VMware Workstation by using the Eclipse plugin. VMware also provides VMware Studio - a free development tool for building vApps and virtual appliances.
Now when main VirtualBox and VMware features have been explained and compared, here is a summary table with the most important characteristics of the considered virtualization products.
|VirtualBox 5.2.22||Player 15||Workstation 15||Fusion 11||Fusion Pro 11||ESXi 6.7|
|Licensing||Free||Free||From 250 $||80 $||160 $||Free/Paid (from 495$)|
|Virtualization||Hardware + Software||Hardware||Hardware||Hardware||Hardware||Hardware|
|Host OS||Linux, Windows, Solaris, macOS, FreeBSD||Linux, Windows||Linux, Windows||macOS||macOS||---|
|Guest OS||Linux, Windows, Solaris, FreeBSD, macOS||Linux, Windows, Solaris, FreeBSD||Linux, Windows, Solaris, FreeBSD||Linux, Windows, Solaris, FreeBSD, macOS||Linux, Windows, Solaris, FreeBSD, macOS||Linux, Windows, Solaris, FreeBSD|
|USB for VMs||With Extension Pack||Out of the box||Out of the box||Out of the box||Out of the box||Out of the box|
|3D graphics in VMs||DirectX 9, OpenGL 3.0||DirectX 10, OpenGL 3.3||DirectX 10, OpenGL 3.3||DirectX 10, OpenGL 3.3||DirectX 10, OpenGL 3.3||DirectX 10, OpenGL 3.3|
|Max.VM video memory||128 MB||2 GB||2 GB||2 GB||2 GB||2 GB|
|Virtual Disk Format||VDI, VMDK, VHD, HDD*||VMDK||VMDK||VMDK||VMDK||VMDK|
|Linked clones support||Yes||No||Yes||No||Yes||No*|
|Shared storage support||iSCSI, NFS, SMB (CIFS)||No*||No*||No*||No*||iSCSI, NFS, Fibre Channel|
|VM Live Migration||Yes (Teleportation)||No||No||No||No||Yes (vMotion)|
|VM Encryption||Yes, with Ext. Pack||Yes (limited)||Yes||Yes (limited)||Yes||Yes|
VirtualBox and VMware are the top two virtualization platforms on market, which makes it difficult to choose between the products. The most important VirtualBox and VMware features have been explained and compared in this blog post to help you make a choice that is right, and that suits you best. There are some recommendations you can refer to:
- If you need a free virtualization solution for a desktop, you can select VirtualBox.
- If you need to have a free virtualization solution for running VMs on a server, select VirtualBox or VMware ESXi Free Edition.
- If you need an ultimate solution for desktop with extended 3D graphics support and a wide list of settings, select VMware Workstation (or VMware Fusion for Mac computers).
- If you need a free virtualization solution that only needs to run VMware VMs on desktop with basic options, you can select VMware Player.
- If you need maximum integration between a VMware desktop solution and a VMware vSphere (vCenter server, ESXi hosts), select VMware Workstation or VMware Fusion Pro. You can use VMware Workstation or Fusion Pro for connecting to vCenter Server or ESXi host remotely, and can manage virtual machines residing on these resources. VMware provides a free VMware vCenter Converter for converting VMs of the Workstation format to VMs of the ESXi format (and vice versa).
- If you have an old computer with a processor that does not support hardware virtualization technologies, select VirtualBox, which provides software virtualization.
- If you need the ultimate enterprise-grade solution for deploying multiple servers, running a high number of VMs, using clustering features, etc., select VMware vSphere based on ESXi servers with vCenter.
Both VirtualBox and VMware provide performance and high reliability. The final decision is up to you. Evaluate which features and advantages are vital for your infrastructure, and select the most suitable product. If you want to learn more about virtualization solutions, you can also compare VirtualBox with Hyper-V.