- Kubernetes DaemonSets - Wed, Sep 6 2023
- Static Pods in Kubernetes - Fri, Sep 1 2023
- Encrypt Kubernetes Secrets at rest - Mon, Aug 28 2023
Recommended hardware requirements
The recommended hardware specifications for running Proxmox VE on a production server are as follows:
- Processor: 64-bit CPU (Intel EM64T or AMD64) with virtualization support. Intel VT-d/AMD-d support is required for PCI(e) passthrough.
- Memory: Minimum 2 GB memory for Proxmox VE services, with additional memory for guest VMs.
- OS storage: Hardware RAID with battery-backed write cache or software RAID with ZFS.
- VM storage: For local storage, hardware RAID with battery-backed write cache or software RAID for ZFS. Shared and distributed storage are also supported.
- NIC: Two or more gigabit network interfaces.
Prerequisites
Below are the prerequisites to follow with this guide:
- A bare-metal server (or a desktop with virtualization support) to install Proxmox VE
- A client computer with a web browser to access the Proxmox web interface
- A USB flash drive to store the contents of the Proxmox ISO installer
- Proxmox VE ISO installer file
- The ISO image of your choice to install on the guest VM
Download ISO and prepare USB
First, download the ISO installer of Proxmox VE.
The ISO installer is a hybrid image that you can easily burn to a DVD, but we will write the image to a USB flash drive, as it is more convenient. On a Linux system, you can use the dd command to write the image to USB:
dd if=/home/surender/proxmox-ve_7.2-1.iso of=/dev/sdb bs=1M conv=fdatasync status=progress
Writing the ISO image to a USB flash drive in Linux with the dd command
On Windows, you can use the portable version of balenaEtcher to write the ISO file to the USB flash drive.
Install Proxmox VE
Now that you have a bootable USB drive ready, plug it in to your server (or desktop), and follow these steps:
- On the Welcome screen, select Install Proxmox VE, and press Enter.
- Click the I Agree button to accept the end user license agreement.
- Now, you will see an option to select a target disk for installation. The installer will automatically partition the selected disk with the ext4 file system.
You can click Options to configure any other file system. Proxmox also supports more resilient file systems such as xfs, btrfs, and zfs.
- On the location and time zone selection screen, you can configure your country, time zone, and keyboard layout.
- On the administration password and email address screen, configure the password and email address for the superuser account, which will be used for administration.
- On the management network configuration screen, select a network interface that you want to dedicate as a management interface, and define TCP/IP configurations such as IP address, netmask in CIDR format, gateway, and DNS server.
- You can review your settings on the summary screen at the end. Then, click the Install button to start the installation. You can select the option to automatically reboot after a successful installation. If something goes wrong, you can see the errors in the second TTY by pressing the Ctrl + Alt + F2 keys simultaneously.
Access Proxmox VE
A URL will be displayed on the server's screen to access and manage the Proxmox VE server through a web interface. Open a web browser, and type the URL in the address bar. Your browser will display a certificate error, since the Proxmox server uses a self-signed SSL certificate out of the box. Here, you need to acknowledge the certificate error and click Proceed. You can install a valid certificate later on for better security and to avoid certificate errors.
You will now see a login page, as shown below:
Now type root as a username and the password you set during installation. Under Realm, make sure the Linux PAM standard authentication option is selected, since you're logging in with the default root user. You can create additional users through a web interface to log in with the Proxmox VE authentication server realm.
You will see a No valid subscription popup after successful login. Although Proxmox VE is open source and free to use, you need to buy a subscription to use it in an enterprise environment. A subscription gives you access to the enterprise repository to receive updates, fixes, and technical support. Because we are using it in a lab environment, we can simply ignore this.
The following screen gives you some information about a Proxmox VE node in server view. On the Summary page, you can see various statistics for the server, including uptime, CPU usage, server load, memory usage, and network traffic with neat real-time graphs.
You can now start managing the selected Proxmox VE node. If you select the Datacenter node, you will see a different set of options.
In Datacenter view, you can manage settings such as cluster, storage, backup, replication, users, permissions, roles, realms, firewall, etc.
Configure storage
Proxmox VE allows you to use local storage or shared storage, such as NAS or SAN. We will mount a remote SMB share located on a Windows-based file server to store all the ISO images needed for OS installation in the guest VMs. To do so, make sure the Datacenter node is selected in the left pane, click Storage, and then click Add. Now, select SMB/CIFS from the dropdown list. You can see a list of storage types supported by Proxmox VE.
Now, configure the settings, as shown below:
- ID: Name of storage without spaces.
- Server: Name or IP address of the server hosting an SMB/CIFS share.
- Username/Password: Credentials of a user having read/write access to the SMB share.
- Share: The name of the SMB share.
- Content: Specify the content type. In our case, it is an ISO image.
- Domain: Domain name of the SMB server.
We are essentially mounting a shared directory located on a remote Windows server. You will now see a new SMB share mounted under Datacenter storage.
You may see an error, as shown below:
create storage failed: mkdir /mnt/pve/ISO/template: Permission denied at /usr/share/perl5/PVE/Storage/Plugin.pm line 1323. (500)
If you get this error while adding SMB/CIFS storage, make sure the SMB user has a Change or Full Control share-level permissions on the SMB share, as shown in the screenshot below.
Finally, upload your ISO images to this SMB/CIFS storage. To do so, expand the Proxmox node, select the ISO storage we just created, click the ISO Images option, and click Upload.
The hashing algorithm is optional. Now, wait for the ISO image to upload in the shared storage.
In a similar way, you need to create another storage for VM virtual disks. On a production server, you should use storage that gives you redundancy in case of hardware failure (e.g., ZFS or LVM). Note that ZFS does not support hardware RAID controllers. For this demo, I will simply create a /VM directory and use it to store the virtual disks of the VMs.
Configure networking
Proxmox VE uses a Linux Bridge, which is kind of like a virtual switch. On a production server, you need to use multiple NICs to separate management traffic from the VM network. When you make network-related changes on a node, Proxmox VE makes changes directly to the /etc/network/interfaces file.
Instead, it creates a new temporary file, /etc/network/interfaces.new, which allows you to make multiple changes at once and verify those changes without disrupting the existing network. For this demo, we will create a bridge. To do so, select Proxmox node, click Network, click the Create button, and select Linux Bridge from the dropdown menu.
You may create an OVS bridge if you need more advanced features, such as RSTP support, VXLANs, OpenFlow, and support for multiple VLANs on a single bridge.
In the Create: Linux Bridge dialog box, enter the information, including bridge name, IPv4/CIDR, bridge ports, and comment, as shown in the screenshot.
There are multiple NICs on a production server, so in this case, you should use different bridge ports to keep the management traffic isolated from the VM network.
Create a virtual machine
We now have everything needed to create a VM. Follow these steps to create a VM in Proxmox VE:
- In the Proxmox VE web interface, click the Create VM button available on the top right side.
This launches the Create VM wizard.
- Under the node field, select your Proxmox node, and under the name field, type the name for the new VM. Then click Next.
- On the OS tab, make sure the Use CD/DVD disc image file (iso) radio button is selected. Then select the shared storage we created earlier under the storage field, select the ISO file under the ISO image field, and click Next.
- On the System tab, you can leave all the defaults, and click Next. If you're installing an OS that requires TPM hardware (e.g., Windows 11), you can select the Add TPM checkbox to enable TPM support.
- On the Disks tab, select the storage you created earlier for storing VM disks, allocate the disk size, and click Next.
- On the CPU tab, allocate the CPU cores for the VM, and click Next.
- On the Memory tab, allocate the memory, and click Next.
- On the Network tab, select the Linux Bridge you created earlier. Under the model field, select VirtIO (paravirtualized), and click Next.
- On the Confirm tab, review all the settings, select the checkbox Start after created, and click Finish.
Your VM is now created and started. - On the left pane, click the VM name, and then click Console.
You can now go ahead, install the OS, and start using your VM. If something goes wrong while your VM is starting up, you can see the logs in the Tasks and Cluster log tabs available at the bottom of the Proxmox VE web interface.
If the VM fails to start due to a lack of KVM support, you can click Options and disable the KVM hardware virtualization.
Congratulations! You just installed Proxmox VE on your server and got your first VM running on it. Note that this article does not cover the recommended deployment scenario for running a production workload. You can use this article to learn how to get started with Proxmox VE. Visit the official wiki docs to learn more. That was it for this guide.
In my next post, I will compare Proxmox VE, VMware ESXi and Hyper-V.
Great article, I will be happy to see more articles about Proxmox 🙂
Yes, more articles are coming up for Proxmox. Thank you for the comment.