Proxmox mit NVME RAID

Support Wissensdatenbank

Du bist hier:
Print

Proxmox mit NVME RAID betreiben Leider ist es bis heute 15.1.2020 nicht möglich, Proxmox mit VROC laufen zu lassen. Die Unterstützung durch Proxmox und Intel sind mangelhaft, es fehlt an brauchbaren Treibern und Support. Auf ein Software RAID möchten wir bewusst verzichten. Dennoch möchten wir nicht auf ein schnelles NVME RAID verzichten. Beachte dass wir keine Garantie für diese Anleitung geben und diese Konfiguration von Proxmox nicht offiziell unterstützt wird. Die Nutzung erfolgt auf eigene Gefahr! Um dennoch NVME RAID zu betreiben benötigst du folgendes:

  • Schneller Server mit PCI-E x16 GEN3
  • Highpoint SSD7101A-1 RAID Kontroller mit NVME Disks
  • Normale Festplatten oder SSD Laufwerke
  • Die beiden Installationsdateien von Highpoint
  • Das Script proxmox_kernel_rebuild.sh

 

  1. Beginne nun mit der Installation von Proxmox auf deinen Festplatten. Nach dem du Proxmox installiert und konfiguriert hast muss du nun die NVME Treiber für Proxmox kompilieren.
  2. Verwende dazu das unten stehende Script, speichere es als proxmox_kernel_rebuild.sh ab und führe es aus. Achtung dieser Vorgang kann einige Stunden dauern!
  3. Installiere nun die soeben erstellten /pve-kernel/pve-headers-5.3.13-1*.deb und die /pve-kernel/pve-kernel-5.3.13-1*.deb. Achtung dieser Vorgang kann einige Stunden dauern!
  4. Falls auch nach 4h Wartezeit der Kernel nicht installiert werden konnte, so installiere GRUB und breche nach 4h mit “CTRL + C” ab und starte Punkt 3 erneut. apt-get install grub
  5. Starte den Server neu
  6. Blockiere nun weitere Kernelupdates (WICHTIG): apt-mark hold pve-headers-5.3.13-1 apt-mark hold pve-kernel-5.3.13-1
  7. Installiere nun die beiden Linux Treiber von Highpoint: ./rsnvme_linux_src_v1.2.18_19_12_11 ./RAID_Manage_Linux_v2.3.14_17_07_26

INFO: Solltes du mal ein Kernel update durchführen wollen, dann musst du einfach wieder bei Punkt 2 beginnen und den neuen Kernel kompilieren lassen.

Script: proxmox_kernel_rebuild.sh für Proxmox 6.0

#!/bin/bash

# chmod +x proxmox_kernel_rebuild.sh
# ./proxmox_kernel_rebuild.sh

if ! pveversion; then
echo "Not a proxmox machine."
return
fi

id=`id -u`
if test $id -ne 0; then
echo "Please run the script with root privilege"
return
fi

# NOTE 30GB or more free space is needed
avail=`df . --output=avail | grep -v Avail`
let avail=$avail/1024/1024
if test $avail -lt 30; then
echo "In order to build new kernel package, 30GB or more freespace is needed."
df .
echo "Quiting now."
exit 1
fi

# Install toolchain
apt-get --assume-yes install patch diffutils git make flex bison dpkg-dev debhelper dh-python sphinx-common dwarves
apt-get --assume-yes install asciidoc-base libssl-dev libdw-dev libelf-dev libiberty-dev libnuma-dev libslang2-dev
apt-get --assume-yes install lz4 xmlto zlib1g-dev lintian dwarves python3-all

# clone pve-kernel git
echo "Clone pve-kernel from upstream git repository, it may take hours."
rm -rf pve-kernel
git clone --single-branch --branch pve-kernel-5.4 git://git.proxmox.com/git/pve-kernel.git pve-kernel

cd pve-kernel/ || exit 1

# patch kernel to do not builtin nvme driver

diff="ZGlmZiAtLWdpdCBhL2RlYmlhbi9ydWxlcyBiL2RlYmlhbi9ydWxlcwppbmRleCBkMzQ0ZDRjLi5k
Yzc5N2JiIDEwMDc1NQotLS0gYS9kZWJpYW4vcnVsZXMKKysrIGIvZGViaWFuL3J1bGVzCkBAIC0z
Nyw3ICszNyw2IEBAIFBWRV9DT05GSUdfT1BUUz0gXAogLWUgQ09ORklHX0JMS19ERVZfU0QgXAog
LWUgQ09ORklHX0JMS19ERVZfU1IgXAogLWUgQ09ORklHX0JMS19ERVZfRE0gXAotLWUgQ09ORklH
X0JMS19ERVZfTlZNRSBcCiAtZSBDT05GSUdfTkxTX0lTTzg4NTlfMSBcCiAtZCBDT05GSUdfSU5Q
VVRfRVZCVUcgXAogLWQgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX09OREVNQU5EIFwK"

echo "$diff" | base64 -d | patch -p1 || exit 1

echo "Download kernel sources and build pve-kernel, it may take hours, please be patient."

make || exit 1

pvek=`ls pve-kernel*.deb`

if [ "$pvek" == "" ]; then
echo "Something is wrong, failed to generate pve-kernel package."
exit 1
else
echo "Now everything is ready, you can install the built $pvek package"
fi

Script: proxmox_kernel_rebuild.sh für Proxmox 7.0

#!/bin/bash

# chmod +x proxmox_kernel_rebuild.sh
# ./proxmox_kernel_rebuild.sh

if ! pveversion; then
    echo "Not a proxmox machine."
    return
fi

id=`id -u`
if test $id -ne 0; then
    echo "Please run the script with root privilege"
    return
fi

# NOTE 30GB or more free space is needed
avail=`df . --output=avail | grep -v Avail`
let avail=$avail/1024/1024
if test $avail -lt 30; then
        echo "In order to build new kernel package, 30GB or more freespace is needed."
        df .
        echo "Quiting now."
        exit 1
fi

# Install toolchain
apt-get --assume-yes install patch diffutils git make flex bison dpkg-dev debhelper dh-python sphinx-common
apt-get --assume-yes install asciidoc-base libssl-dev libdw-dev libelf-dev libiberty-dev libnuma-dev libslang2-dev
apt-get --assume-yes install lz4 xmlto zlib1g-dev lintian
apt-get --assume-yes install dwarves 

# clone pve-kernel git
echo "Clone pve-kernel from upstream git repository, it may take hours."
rm -rf pve-kernel
git clone git://git.proxmox.com/git/pve-kernel.git pve-kernel

cd pve-kernel/ || exit 1

# patch kernel to do not builtin nvme driver

diff="ZGlmZiAtLWdpdCBhL2RlYmlhbi9ydWxlcyBiL2RlYmlhbi9ydWxlcwppbmRleCBkMzQ0ZDRjLi5k
Yzc5N2JiIDEwMDc1NQotLS0gYS9kZWJpYW4vcnVsZXMKKysrIGIvZGViaWFuL3J1bGVzCkBAIC0z
Nyw3ICszNyw2IEBAIFBWRV9DT05GSUdfT1BUUz0gXAogLWUgQ09ORklHX0JMS19ERVZfU0QgXAog
LWUgQ09ORklHX0JMS19ERVZfU1IgXAogLWUgQ09ORklHX0JMS19ERVZfRE0gXAotLWUgQ09ORklH
X0JMS19ERVZfTlZNRSBcCiAtZSBDT05GSUdfTkxTX0lTTzg4NTlfMSBcCiAtZCBDT05GSUdfSU5Q
VVRfRVZCVUcgXAogLWQgQ09ORklHX0NQVV9GUkVRX0RFRkFVTFRfR09WX09OREVNQU5EIFwK"

echo "$diff" | base64 -d | patch -p1 || exit 1

echo "Download kernel sources and build pve-kernel, it may take hours, please be patient."

make SKIPABI=1 || exit 1

pvek=`ls pve-kernel*.deb`

if [ "$pvek" == "" ]; then
        echo "Something is wrong, failed to generate pve-kernel package."
        exit 1
else
        echo "Now everything is ready, you can install the built $pvek package"
fi

 

 

Das Skript ist derzeit so konfiguriert, dass der neuste Kernel der Version 5.4 installiert wird. Um eine andere Kernelversion zu Installieren, passe den Branch Tag auf Zeile 35 an.

War dieser Artikel hilfreich?
0 out Of 5 Stars
5 Stars 0%
4 Stars 0%
3 Stars 0%
2 Stars 0%
1 Stars 0%
Wie können wir diesen Artikel verbessern?
Please submit the reason for your vote so that we can improve the article.
Brauchst du Hilfe?
Related Post