Marco Burmeister

  private Homepage



Proxmox Umgang mit VMs / Tipps zur Bedienung

Hier sammel ich Tipps im Umgang mit Proxmox. Die Sammlung wird im Laufe der Zeit ausgebaut werden.
Hier soll sich alles wiederfinden, was nicht direkt mit der Installation oder Migrationsthemen beschäftigt.

Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!

Die Seite ist in die folgenden Bereiche eingeteilt:




top Fehlermeldung: Keine gültige Subscription

Nach der Installation kann im Heim-Umfeld die folgende Fehlermeldung im Proxmox angezeigt werden:


You do not have a valid subscription	

Damit diese Meldung verschwindet, habe ich den folgenden Befehl ausgeführt, nachdem ich mich als OS User root angemeldet hatte:
sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

Um diese Meldung dauerhaft zu unterdrücken, habe ich einen Crontab-Eintrag erstellt, der beim Boot des Proxmox-Servers ausgeführt wird und den o.a. Befehl dann ausführt. Anderenfalls wird die Meldung immer wieder kommen.
Crontab-Eintrag:
@reboot /root/scripts/unterdruecken_support_meldung.sh > /dev/null 2>&1

Das Script hat folgenden Inhalt:

(Anmerkung: ✂ = Zeilenumbruch nur in Darstellung hier)

#!/bin/sh

####  add a crontab for this script
# crontab -e
# # m h  dom mon dow   command
# 23 0 * * * /root/scripts/remove-subscription-banner.sh


# Init
if [ -f $HOME/.profile ];
then
        . $HOME/.profile
fi

# Start
echo ""
echo "Remove Subscription Banner"
echo ""

# Change
if ! fgrep -q 'void({ //Ext.Msg.show({' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; then
        echo "patching ..."
        sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

else
        echo "nothing to do"
fi
echo ""


#!/bin/sh

####  add a crontab for this script
# crontab -e
# # m h  dom mon dow   command
# 23 0 * * * /root/scripts/remove-subscription-banner.sh


# Init
if [ -f $HOME/.profile ];
then
        . $HOME/.profile
fi

# Start
echo ""
echo "Remove Subscription Banner"
echo ""

# Change
if ! fgrep -q 'void({ //Ext.Msg.show({' ✂
  /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; then
        echo "patching ..."
        sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: ✂
        gettext\('No valid sub)/void\(\{ \/\/\1/g" ✂
        /usr/share/javascript/proxmox-widget-toolkit/✂
        proxmoxlib.js ✂
        && systemctl restart pveproxy.service

else
        echo "nothing to do"
fi
echo ""
	

top Stoppen einer VM von Kommando_Zeile

Wenn eine VM falsch konfiguriert ist, kann es passieren, dass eine VM in eine Dauerboot-Schleife endet und via graphischer Oberfläche ein Stoppen nicht möglich ist.

Stopp einer VM von Kommando-Zeile

Vorgehen:

  1. Anmelden via SSH an Proxmox Server als OS User root
  2. Ermitteln der ID einer VM mit dem u.a. Befehl oder aus der Weboberfläche:
    cat /etc/pve/.vmlist
  3. Stoppen der VM:
    Der folgende Befehl stoppt eine VM:
    qm stop <VMID-Nummer>

VM locked (gesperrt) -> unlock (entsperren)

Eine VM kann gesperrt sein, wenn versucht wurde, während der Ausführung einer Datensicherung, die VM zu stoppen.
Diese Sperre kann aber wie folgt aufgehoben werden:

  1. Anmelden via SSH an Proxmox Server als OS User root
  2. Ermitteln der ID einer VM mit dem u.a. Befehl oder aus der Weboberfläche:
    cat /etc/pve/.vmlist
  3. Entsperren der VM:
    Der folgende Befehl entsperrt eine VM:
    qm unlock <VMID-Nummer>

VM hart beenden

Eine VM in einer Dauerboot-Schleife kann manchmal über keinen der oben aufgeführten Wege gestoppt werden. Dann hilft nur noch das harte Beenden.
Die Ausführung einer VM kann mit den folgenden Befehlen hart abgebrochen werden:

  1. Anmelden via SSH an Proxmox Server als OS User root
  2. Ermitteln der ID einer VM mit dem u.a. Befehl oder aus der Weboberfläche:
    cat /etc/pve/.vmlist
  3. Ermitteln der Prozess-ID (PID-Nummer) einer VM mit dem Befehl:
    ps aux | grep "/usr/bin/kvm -id <VMID-Nummer>"
  4. Entsperren der VM:
    Der folgende Befehl beendet eine VM im OS hart ( entspricht einem Ausschalter):
    kill -9 k <PID-Nummer>


top VM mit Tag versehen

Um bei vielen VM die Übersicht zu behalten, bietet es sich an, eine Tag-Struktur zu überlegen und einzusetzen. Jeder VM können verschiedene Tags zugeordnet werden. Über die Suche kann dann später nicht nur nach Namen sondern auch nach Tags gesucht werden, was das Auffinden bestimmter VM Gruppen erleichtern kann.
So kann einer VM verschiedene Tags zugewiesen werden, um verschiedene Suchen / Gruppierungen zu ermöglichen.
Beispiele für Tag-Namen:

ZweckBeispiele-Name
Betriebssysteme unterscheidenLinux
Windows
 
Projekte unterscheidenProjektA
MeinProjekt
 
Installierte Software unterscheidenSAP
Oracle
PostgreSQL
 
Staginglevel unterscheidenProd
NonProd
 
Status unterscheidenaktiv
im Aufbau
 

top Start Linux VM - volume group "xxx" not found / device xxx not found

Problembeschreibung

Bei der Migration von VMs / Servern mit älteren Linux-Releases kann es beim Start / Boot der VM im Proxmox zu einer Fehlermeldung der folgenden Art kommen:
(xxx steht dann für den Namen einer Volue Group bzw. eines Devices)


Unter Proxmox 8.1.4 konnte ich das Problem auch nachvollziehen und nachstellen.

Lösungsansatz

Zunächst würde ich raten, die VM und deren Filesysteme auf Funktionalität zu testen. Also mit einer aktuellen LiveCD wie Knopppix die VM starten und dann die Filesysteme temporär mounten. Vielleicht muss auch ein Filesystem-Check durchgeführt werden.

Sind hier keine Probleme zu erkennen und die Filesysteme können erfolgreich gemountet werden, so liegt der eingangs beschriebene Fehler beim Start der VM höchstwahrscheinlich an fehlenden Treibern für den Festplatten-Controller, der damals noch nicht im Betriebssystem bekannt war.

Das Problem kann u.a. bei älteren openSUSE / SUSE Releases wie SLES 10 bis vermutlich SP3 und SLES 11 bis SP2 auftreten. Laut der Erläuterung "Dealing with a Legacy Suse Linux 10 SP1 moving to KVM" hilft bei SUSE SLES 10 der Wechsel auf SLES 10 SP4. Zusätzlich sind weitere Umstellungen wie beschrieben vorzunehmen bzw. zu prüfen.

SLES 11 ab SP3 scheint auch die richtigen Treiber mitzuliefern.

Möglicher allgemeiner Lösungsansatz

Eine Aktualisierung des Betriebssystems auf ein neueres Release wäre für mich der erste Lösungsansatz.

Wie immer gilt: Vor den Arbeiten an der VM eine Sicherung vornehmen. Für den Fall, dass ein Versuchsansatz nicht funktioniert hat, kann so auf einen alten Stand zurückgegangen werden.

Die oben beschriebenen Betriebssysteme sind eh sehr veraltet und eine VM mit einem solchen Betriebssystem sollte nicht mehr verwendet werden.

top Install-ISO zu Proxmox hochladen

Proxmox benötigt ISO-Dateien mit dem Betriebssystem, um neue VMs mit einem Betriebssystem versorgen zu können. Im späteren Verlauf könnten auch Templates verwendet werden.

Das Hochladen kann via Web-Oberfläche durchgeführt werden. Alternativ können ISO-Dateien auch via SCP direkt auf den Server hochgeladen werden. Hierzu ist eine Anmeldung an den Proxmox Server via SCP notwendig. Dann kann in das Verzeichnis /var/lib/vz/template/iso gewechselt und die ISO-Dateien hochgeladen werden.

top Extra LV für /var/lib/vz

Einleitung

Bei meiner Installation war der Bereich zum Ablage von ISO-Dateien, Templates und Images gefühlt ein wenig klein eingerichtet. Aber es gibt Möglichkeiten, diesem Bereich eine eigene LV (Logical Volume) zu geben und kann dann den verfügbaren Platz freier gestalten.

Extra LV anlegen

Um einen eigenen Platz anzulegen, ist wie folgt vorzugehen:

top LVM-Thin Disk für VM Datendisks als Storage einbinden

Einleitung / Voraussetzungen

Hier geht es darum, im Proxmox System eine Disk einzurichten, die die VM Datendisks halten soll. Nach einer Standard-Installation ist die erste Disk im System eingerichtet. Weitere Disks, die eventuell im System befindlich sind, werden aber nicht eingerichtet.

Folgende Ausgangssituation:

LVM-Thin Disk einrichten

Das Vorgehen ist eigentlich einfach. Aber es müssen die richtigen Befehle in der richtigen Reihenfolge ausgeführt werden. Einiges kann auch aus der Web-Oberfläche ausgeführt werden. Das geht aber nicht für alle Schritte, weshalb ich hier nur den Weg via Kommando-Zeile verwende, damit ich nicht hin und her springen muss.


top Links zum Thema


Hinweis:
Für die Richtigkeit der Daten übernehme ich keine Gewähr!
Für den Inhalt von Internet-Seiten, auf die von dieser Seite verwiesen wird, übernehme ich keine Verantwortung!