Install and config Proxmox 7.2 on a HP server
Download the ISO
You can find on the official website, Download ISO
Install Proxmox
Easy installation, make sure you select the right hard-drive and put the right configuration for your network. later you can configure VLANS
When finish install, the machine will reboot and will be ready. You’ll see the URL on the screen:
1
https://192.168.70.180:8006
Configurations
Most of this configuration can be done on Proxmox GUI but here I’ll use the CLI.
Repositories:
Add no subscription proxmox repo:
1
nano /etc/apt/sources.list
Add to the end:
1
deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription
You can remove/comment the enterprise repo,
1
nano /etc/apt/sources.list.d/pve-enterprise.list
Make sure you have all updated packages:
1
apt update && apt upgrade -y && apt dist-upgrade -y
Patch Kernel and modules for PCI passthrough (HP SERVERS):
In my case I use a DL380 G9 and couldn’t pass my 4 NIC PCI to the pfsense, I need to change the kernel to alow it. I found this GitHub page from MichaelTrip, a big thanks to him!!
1 - Download the patched kernel
At the shell:
1
mkdir iommu && cd iommu
and download the patched kernel:
1
2
3
4
5
wget https://github.com/MichaelTrip/relax-intel-rmrr/releases/download/v1.0.8/linux-tools-5.13-dbgsym_5.13.19-4_amd64.deb
wget https://github.com/MichaelTrip/relax-intel-rmrr/releases/download/v1.0.8/linux-tools-5.13_5.13.19-4_amd64.deb
wget https://github.com/MichaelTrip/relax-intel-rmrr/releases/download/v1.0.8/pve-headers-5.13.19-2-pve-relaxablermrr_5.13.19-4_amd64.deb
wget https://github.com/MichaelTrip/relax-intel-rmrr/releases/download/v1.0.8/pve-kernel-5.13.19-2-pve-relaxablermrr_5.13.19-4_amd64.deb
wget https://github.com/MichaelTrip/relax-intel-rmrr/releases/download/v1.0.8/pve-kernel-libc-dev_5.13.19-4_amd64.deb
Install the kernek,
1
dpkg -i *.deb
2 - Set the kernel as default
Find the new kernel IDs,
1
grep menu /boot/grub/grub.cfg
From the previus output you will need to find the submenu option ID, something like this gnulinux-advanced-83ea5c69-120d-4ba6-8d91-e3de2dc98b0a and the relaxablermrr gnulinux-5.13.19-2-pve-relaxablermrr-advanced-83ea5c69-120d-4ba6-8d91-e3de2dc98b0a
Copy both from your output, you’ll need it to set them as a default kernel in each boot.
Edit grub,
1
nano /etc/default/grub
On the GRUB_DEFAULT you need to paste the IDs that you copy early in this format:
1
GRUB_DEFAULT="SUBMENU_ID>MENUENTRY_ID"
You’ll need to add intel_iommu=on,relax_rmrr iommu=pt to the line GRUB_CMDLINE_LINUX_DEFAULT="quiet" to look like this,
1
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on,relax_rmrr iommu=pt"
3 - Load the neccessary modules
Edit /etc/modules and add to the end:
1
2
3
4
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
And to finish, one last option need to be add:
1
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
Now you can reboot, finger crossed that all was done right,
1
shutdown -r now
After boot you can confir wich kernel you using by typing,
1
uname -r
You should get 5.13.19-2-pve-relaxablermrr at the time I was writing this page. And you can check if IOMMU was loaded,
1
dmesg | grep 'Intel-IOMMU'
Expand local volume (merge all the volumes)
On the proxmox webgui go to Datacenter --> Storage select local-lvm and remove it!
Go to proxmox shell and,
1
2
3
lvremove /dev/pve/data
lvresize -l +100%FREE /dev/pve/root
resize2fs /dev/mapper/pve-root
This should it, you can see that now you just have local and all the free space is in local.
Again, go to Datacenter --> Storage and edit local to be use for all the purpose, ‘Disk image’, ‘ISO image’…all of them in my case!
Container Templates
If is missing some templates from the list, special the TurnKey you’ll need to run the follow command on the shell:
1
pveam update
Network
NIC TEAM (LACP)
To enable port bound on a network just edit interfaces file and add the follow lines:
1
nano /etc/network/interfaces
1
2
3
4
5
6
auto bond0
iface bond0 inet manual
bond-slaves enp3s0f0 enp3s0f1
bond-miimon 100
bond-mode 802.3ad
bond-xmit-hash-policy layer2+3
NOTE: bond-slaves are the name of the both ports you want to bond, you’ll need to look for the names that your system are using.
VLANS
You can make a interfaces vlan aware just by adding the last 2 lines of code to the interfaces file:
1
nano /etc/network/interfaces
1
2
3
4
5
6
7
8
9
auto vmbr0
iface vmbr0 inet static
address 172.31.12.99/24
gateway 172.31.12.254
bridge-ports bond0
bridge-stp off
bridge-fd 0
bridge-vlan-aware yes
bridge-vids 2-4094
For a more complex VLAN setup you can create a Linux VLAN and then create a Linux Brigde to that VLAN. When create a VM or a container you can pick what bridge you want to give to the VM/Container.
1
nano /etc/network/interfaces
Example:
1
2
3
4
5
6
7
8
9
10
11
12
13
auto enp3s0f2.50
iface enp3s0f2.50 inet manual
#This is VLAN 50 for ADMIN
auto vmbr0
iface vmbr0 inet static
address 172.31.50.99/24
gateway 172.31.50.190
bridge-ports enp3s0f2.50
bridge-stp off
bridge-fd 0
#This is VLAN 50 for ADMIN
This way you don’t need to tell the Bridge about the VLANS
PS: MAKE SURE YOUR SWITCH ARE PROPERLY SETUP FOR VLANS
Restart the network
1
systemctl restart networking.service