What is Proxmox? Well, depending on your industry, your organization’s options for cloud-based solutions might be limited. Whether it’s strict external regulations, concerns over privacy and security, or simply the utilization of resource-intensive software, public cloud solutions aren’t for everyone.
But cloud environments have so many advantages to offer. What other option do these organizations have?
If you’re seeking the flexibility and dynamic agility of the cloud while retaining full control over your hardware and network, then read on to learn how a Proxmox private cloud solution from Hivelocity can offer you the best of both worlds. With a Proxmox virtualized environment, you can turn your dedicated server into its own virtual cloud.
What is Proxmox VE?
Proxmox VE is a complete, open source, virtualization management solution. It offers users everything needed to create and maintain the virtual machines (VMs) used to build cloud-like environments. By unifying Kernel-based Virtual Machine (KVM) hypervisor technology with Linux Containers (LXC), Proxmox gives users the flexibility to create different VMs for different scenarios. In addition to utilizing both KVM and LXC, Proxmox also integrates software defined storage, network functionality, disaster recovery, and more. Together, these features can eliminate the need for additional tools, management nodes, and external databases. Lastly, with its web-based interface, virtualization and management of even the most demanding applications can be handled with just a few clicks.
First released in 2008, Proxmox was developed in Austria under the GNU General Public License. Based on the Debian GNU/Linux operating system, since its beginning, Proxmox has focused on flexibility and convenience. As an open source tool with strong community support, Proxmox easily integrates with hundreds of available packages, offering users a high degree of adaptability.
By unifying Kernel-based Virtual Machine (KVM) hypervisor technology with Linux Containers (LXC), Proxmox gives users the flexibility to create different VMs for different scenarios.
While Proxmox isn’t the only virtualization platform available, it’s variety of out-of-the-box features combined with its open source customization options, make it one of the best options on the market.
In the following sections, we’ll take a look at several of the features that lend to Proxmox’s flexibility, functionality, and ease of use.
A Combination of KVM and LXC Technologies
Proxmox assists users in the virtualization of their environments by combining two powerful virtualization tools: KVM and LXC.
KVM: KVM is an industry-leading, Linux-based technology for full-virtualization. It gives users the ability to run both Linux and Windows operating systems inside their VMs. With KVM virtualization, each VM maintains private access to its own virtual hardware. This includes network cards, disks, graphics adapters, and more.
LXC: Linux containers is a container-based virtualization technology that offers a lightweight alternative to the more resource intensive full-virtualization of KVM. As an OS-level virtualization environment, LXC is ideal for running multiple, isolated instances of Linux on a single host. This makes LXC perfect for hosting applications, giving them access to their own separate resources without the need for separate kernels.
Web-Based GUI and Command Line Interface
When Proxmox was first developed, it was created to fulfill a specific need: providing users with a GUI-based solution for building VMs utilizing KVM and OpenVZ. Over the years, OpenVZ was replaced with newer LXC technology, but this commitment to user convenience never changed. These days, Proxmox is certainly not the only virtualization tool with a user interface. However, much of its longevity can still be attributed to its continued focus on user experience.
Since its beginning, Proxmox has focused on flexibility and convenience.
In this commitment to the user, Proxmox offers two methods for creating and interfacing with your virtual machines:
Command Line: Not every user likes learning new interfaces. For those who are used to, or prefer, interfacing with their servers directly through the shell, Proxmox also offers access to a command line interface. With intelligent tab completion and full Unix man page documentation, the command line interface gives advanced users the option to build and manipulate VMs using whichever method proves most comfortable.
Flexible Storage Options
Proxmox is built to maximize flexibility. This is true of its storage models as well. Users can choose to store virtual machine images in one of several local or shared storage options, including NFS and SAN. While users are free to choose the solution which best fits their preferences and needs, there is one big advantage to the shared storage available: live-migration of your VMs while they’re still running. This is because shared storage gives direct access to your VM disk images to all nodes in your cluster. Since each node can interact with each VM directly, you can migrate your machines without incurring downtime.
As of version 6.2, Proxmox currently supports the following Network and Local storage types:
- LVM Group
- iSCSI target
- NFS Share
- CIFS Share
- Ceph RBD
- Directly use iSCSI LUNs
- Directory (local storage on the existing filesystem)
Bridged Networking Model
Another useful feature of Proxmox is its bridged networking model. Acting like physical network switches, bridges form virtual cables connecting each guest to the host. Virtual guests can either all share a single bridge or each have their own, with hosts able to support up to 4,094 different bridges. The host server is then connected to the physical network adapters and assigned a TCP/IP network configuration. This allows your VMs to communicate with the outside world as well as the other devices on your network.
Additionally, Proxmox also supports VLANs, bonding, and network aggregations.
Live/Online Migration & High Availability Clusters
In addition to supporting VM live migrations through shared storage, Proxmox also allows users to implement high availability clusters to balance workloads across different hosts. With the use of high availability clusters, or fail-over clusters, you can ensure your VMs stay running. In the event a physical host should fail, VMs and containers configured as highly available will automatically restart on one of the remaining cluster nodes. Additionally, should you need to perform hardware maintenance, running VMs can be transferred to another node without fear of downtime.
Backups and Recovery
Using an integrated backup tool called vzdump, Proxmox gives users the ability to easily create snapshots of their containers and KVM guests. These backups can even be performed live on running VMs, or can be scheduled to run at the user’s discretion. All backup and recovery efforts can be controlled from within the Proxmox GUI or accessed via the command line interface. KVM live backups can be created for all available storage types and are formatted to optimize speed and efficiency.
To control which users have access to which VMs, storage, and nodes, Proxmox features a role-based administration system. From within the GUI, administrators can assign roles to each user, defining specific privileges and permissions based on the corresponding role-type. Roles can be updated and changed as needed, and permissions can be modified as new VMs are added.
Another Proxmox feature useful in the development of private cloud environments is its integrated firewall. While the idea of a firewall is nothing revolutionary, what makes this unique is it allows administrators to set access rules not only for the cloud as a whole, but for each individual VM as well. These rules then remain with their associated VM, controlling access regardless of which node the VM is currently running on.
For example, let’s say you have one specific VM which needs to remain isolated from the rest of your network. Rather than segregating it to another physical machine, firewall rules can be applied to this individual VM controlling what parts of the network, if any, have access to it.
In addition to providing greater security and control, this also improves bandwidth. Unlike hardware firewalls, which create a single point of entry for traffic, and thus a single point of failure, cloud firewalls can be applied differently to each individual node. This gives each node its own point of entry, allowing greater volumes of traffic to flow with reduced bottlenecking.
JSON-Based RESTful API
Proxmox uses a RESTful API defined using the JSON Schema. This makes integration of Proxmox into your existing infrastructure even easier, allowing object management by third party management tools such as Terraform and Ansible. By combining Proxmox with these external tools, you can automate the creation and management of your VMs. This allows for instant, codified deployment of new virtual machines, giving your private cloud the same ease-of-use seen in public cloud solutions.
Using the unique Proxmox Cluster file system (pmxcfs), Proxmox is capable of storing configuration files for thousands of virtual machines. This database-driven file system replicates configuration files to all cluster nodes in real time using corosync. With the GUI’s search-driven interface, these VMs can be easily located and modified as needed. Whether you need a handful of VMs or a few thousand, Proxmox offers users everything they need to manage virtual environments of any size.
So Why Proxmox?
In general, virtualization technology offers many benefits. Because VMs utilize available resources more efficiently, they help cut IT costs, reducing the number of physical servers needed to achieve a desired environment. This also cuts down on hardware maintenance, letting your IT departments focus on development instead of upkeep. Since VMs are easily replicated, it’s simple to spin up test environments as needed. Should a physical machine fail, high availability clusters ensure your VMs migrate quickly and reliably, reducing downtime. If a VM does fail completely, backups can restore previous iterations in a matter of minutes.
As cloud technology evolves, open source solutions like Proxmox are able to grow alongside these innovations.
Beyond these advantages general to virtualization as a whole, what specifically makes Proxmox so useful is the flexibility it offers. By combining multiple virtualization technologies, storage types, networking methods, and interfaces, it gives you greater control over the specifics of your virtual environment. In this way, Proxmox offers organizations a single, unified solution.
Additionally, since Proxmox is open source and supports a large community of users, there are hundreds of modifications available. This open source status not only offers greater customization options, it also ensures Proxmox’s longevity. Unlike other virtualization platforms, which may eventually grow outdated and stop receiving support, Proxmox is supported by its users. As cloud technology evolves, open source solutions like Proxmox are able to grow alongside these innovations.
Proxmox & Hivelocity: Your Private Cloud Provider
At Hivelocity, all of our private cloud solutions begin with a consultation. Our team of cloud experts analyze your organization’s current and future needs and work with you to develop an ideal solution. For some, that solution will involve Proxmox. For others, that perfect solution might best be met through a different software, such as Openstack, Nutanix, or VMware. Proxmox is great, but it’s not the only virtualization tool out there. In the end, the best virtualization platform is the one which best meets your specific needs.
Take back control over your network and hardware with Proxmox and a custom private cloud solution from Hivelocity.
– Sean Kelly