This content is part of the Essential Guide: The essential guide to open source virtualization platforms

Reduce the cost of virtualization with open source Proxmox

Thanks to its open source availability and full-featured graphical interface, Proxmox makes for an excellent alternative to more expensive virtualization platforms.

There are many excellent virtualization platforms available, but most come with a high cost. While there are numerous free options available, often these platforms are not user-friendly. In this article, we'll take a closer look at an alternative virtualization platform called Proxmox. This platform, which is based on KVM virtualization, is free to use, includes a full-featured graphical interface and offers support at a low cost.

Proxmox's combination of open source capability, ease of use, and robust web interface help set it apart from other virtualization products. Out-of-the-box features include high availability and live migration between cluster nodes. Follow these simple instructions to set up a standalone Proxmox environment.

Installing the Proxmox virtualization platform

There are a few prerequisites you'll need to check for prior to installation. To use Proxmox virtualization, you'll need working domain name system (DNS) forward and reverse lookups. You must also ensure that Intel VT-d is enabled on your new Proxmox host. Finally, I strongly recommended that you have a static IP.

Once you have met these prerequisites, boot the ISO install media. Below is a step-by-step walkthrough:

  1. Select Install Proxmox from the menu. You will be presented with the end-user license agreement; click I agree.
  2. Next is regional setup. If any of the settings are wrong, they can be altered to configure region, time zone and keyboard layout.
  3. For the administrator configuration, set a strong password for the local root account. This functions as the initial user credentials for the web login. You need to give an email address to associate with the installation.
  4. Set up IP and DNS details.
  5. At this time, the machine will configure the storage and install the hypervisor and dependencies. This process will take several minutes.
  6. Remove the media and reboot.

Once the installation is complete, you can use the web interface to manage the Proxmox server. Proxmox uses the nonstandard port 8006.

When you log in, you will see a warning saying that there is an insecure connection. Accept this. On the Proxmox login screen, use the credentials you set before to log in. You will see a warning about valid subscriptions; ignore this and click OK. To be clear, a subscription is not required to use any Proxmox functionality.

Basic Proxmox interface.
Figure A. A basic Proxmox interface.

The interface shown in Figure A is where most of the day-to-day work is done. Like most hypervisors, there are multiple views, including Storage View, Server View, Folder View and so on. Each view presents a different context view and menu options.

Click on your Proxmox server on the left-hand panel to configure server related items. The menu bar at the top allows for several configuration modifications, including the option to add additional DNS servers, Active Directory integration.

If you expand the Proxmox node, you will see two disk nodes. The one marked Local holds the Proxmox hypervisor details, and the local logical volume management can be used for VM storage. In a production or clustered setup, you could use Network File System, iSCSI or Fibre Channel storage.

One of the nice things about Proxmox virtualization is that uploading installation images for various operating systems (OSes) is easy. Before installing Ubuntu VM, as an example, upload an ISO installation media. The available disks should be visible from the Server View. Click on the local disk and select the Template button from the menu ribbon. Then, select ISO File from the content drop down list. Finally, select the ISO image by clicking the Select File button, choosing the image and pressing Upload.

Creating a basic VM in Proxmox

Proxmox's combination of open source capability, ease of use and robust web interface help set it apart from other virtualization products.

To create a basic VM, click the blue button titled Create VM at the top of the screen. This will start a VM creation wizard. In order to create the VM, you'll have to fill in several fields, starting with the node, which indicates where the VM will reside. It will default to a single node for now. Then, enter the VM ID. Each VM should have a uniquely-assigned ID. Leave this as default. Next, enter a name, as per title. I've called mine UbuntuTest. Finally, there is the resource pool; at present, no pools exist, so leave that alone for now. Once you have completed these steps, click Next.

The next several pages allow the administrator to configure the OS. Choose the Linux 4.x/3.x/2.6 kernel from the Linux/Other OS types selection; then click Next. On the CD/DVD page, leave the selection as default -- boot from stored ISO -- for now. The ISO image dropdown will allow you to choose the ISO image you uploaded before. Select this and click Next. On the hard disk page, you can choose your hard disk setup. I recommend substituting VirtIO from the dropdown menu rather than using the Integrated Drive Electronics bus default. You can also configure items such as storage locations and disk sizes, depending on requirements.

The next page is the CPU page. I would suggest leaving everything as default except the number of virtual sockets, which I recommend changing to 2. Set the memory to 2048 megabytes, and then click Next. The networking configuration allows you to choose different bridges and Ethernet drivers, but at the moment we haven't added any additional network infrastructure. The VirtIO network driver is the best option for this, because it provides optimized virtual performance. Setting up any recent Linux distribution should be just as easy, because the superior performance virtualized drivers are built into the base OS. This eliminates the need to install helper tools, like you would with VMware. Building a Windows virtual guest is not quite as easy and is a bit more involved in the initial stages, but once you have a Windows template, deploying from it becomes a breeze.

Once you've completed this step, click Next and review and confirm everything is correct. If you look at the tasks list, you will see the option to create a new task to create your new VM.

At this point, select Pool View and you will see the VM you created earlier. Right-click on the VM and select Start. Then, select Console from the VM menu at the top. You can interact with this web-based console to install the server from here. The console is only there for initial configuration and you should use Secure Shell -- or Remote Desktop Protocol for Windows -- to manage the host going forward.

Next Steps

Choosing the right virtual disk file for a multi-hypervisor VM

Should you avoid open source virtualization software?

Nutanix's KVM-based hypervisor poses a threat to VMware

Dig Deeper on Open source virtualization