OpenVZ · 2 min read · Jan 04, 2026

Ressourcen gleichmäßig zwischen OpenVZ-VMs mit vzsplit aufteilen

Ressourcen gleichmäßig zwischen OpenVZ-VMs mit vzsplit aufteilen

Version 1.0
Autor: Falko Timme

Diese kurze Anleitung zeigt, wie Sie die Ressourcen Ihres OpenVZ-Hosts gleichmäßig zwischen mehreren virtuellen Maschinen mit Hilfe von vzsplit aufteilen können. vzsplit generiert eine Beispiel-Container-Konfigurationsdatei mit einer bestimmten Reihe von Systemressourcensteuerungsparametern, die Sie dann auf Ihre virtuellen Maschinen anwenden können.

Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!

Verwendung von vzsplit

Sehen Sie sich an

man vzsplit

um mehr über die Verwendung zu erfahren.

Angenommen, wir möchten 5 virtuelle Maschinen auf dem OpenVZ-Host ausführen. Wir rufen vzsplit wie folgt auf:

vzsplit -n 5 -f max-limits

-n 5 gibt die Anzahl der virtuellen Maschinen an.

server1:~# vzsplit -n 5 -f max-limits  
Die optimale Swap-Speichergröße beträgt 2022 Mb, doppelt so groß wie die RAM-Größe
WARNUNG: Empfohlene minimale Größe der Partition, die /var/lib/vz/private/ enthält, beträgt 20Gb!  
Konfiguration /etc/vz/conf/ve-max-limits.conf-sample wurde erstellt  
server1:~#

Wie Sie sehen, wurde die Datei /etc/vz/conf/ve-max-limits.conf-sample erstellt, die die maximalen Werte der Konfigurationseinstellungen für jede der 5 virtuellen Maschinen enthält. Werfen Sie einen Blick auf diese Datei:

vi /etc/vz/conf/ve-max-limits.conf-sample

| # Konfigurationsdatei, die von vzsplit für 5 Container generiert wurde # auf HN mit einer Gesamtmenge an physischem Speicher von 1011 Mb # geringer Speicher 883 Mb, Swap-Größe 2047 Mb, Max. Threads 8000 # Ressourcen-Commit-Level 0: # Freie Ressourcenverteilung. Alle Parameter können erhöht werden # Primäre Parameter NUMPROC="1600:1600" AVNUMPROC="452:452" NUMTCPSOCK="1600:1600" NUMOTHERSOCK="1600:1600" VMGUARPAGES="135985:2147483647" # Sekundäre Parameter KMEMSIZE="37052743:40758017" TCPSNDBUF="5797314:12350914" TCPRCVBUF="5797314:12350914" OTHERSOCKBUF="2898657:9452257" DGRAMRCVBUF="2898657:2898657" OOMGUARPAGES="135985:2147483647" PRIVVMPAGES="155342:170876" # Hilfsparameter LOCKEDPAGES="1809:1809" SHMPAGES="15534:15534" PHYSPAGES="0:2147483647" NUMFILE="14464:14464" NUMFLOCK="1000:1100" NUMPTY="160:160" NUMSIGINFO="1024:1024" DCACHESIZE="8088605:8331264" NUMIPTENT="200:200" DISKSPACE="117286:129015" DISKINODES="110065:121072" CPUUNITS="8587" |

Wie Sie sehen, enthält diese Datei keine VM-spezifischen Einstellungen wie Hostname, IP-Adresse, Nameserver usw., was sinnvoll ist, da wir diese Einstellungen nicht überschreiben möchten.

Angenommen, wir möchten diese Einstellungen auf unsere VM mit der ID 101 anwenden. So machen wir das:

vzctl set 101 --applyconfig max-limits --save

Anschließend können Sie die VM 101 starten/neustarten:

vzctl start 101

Sie könnten etwas wie folgt sehen:

server1:~# vzctl start 101  
Container wird gestartet ...  
vzquota : (Warnung) block_hard_limit [129115] < block_current_usage [139856]  
Container ist gemountet  
IP-Adresse(n) hinzufügen: 192.168.0.101  
bash: Zeile 402: printf: Schreibfehler: Festplattenspeicher überschritten  
bash: Zeile 416: printf: Schreibfehler: Festplattenspeicher überschritten  
bash: Zeile 421: echo: Schreibfehler: Festplattenspeicher überschritten  
bash: Zeile 447: printf: Schreibfehler: Festplattenspeicher überschritten  
CPU-Einheiten festlegen: 8587  
Konfigurieren von meminfo: 155342  
Hostname festlegen: test.example.com  
awk: close fehlgeschlagen bei Datei /dev/stdout (Festplattenspeicher überschritten)  
FEHLER: Kann Datei /etc/hosts nicht ändern  
vzquota : (Warnung) block_hard_limit [129015] < block_current_usage [139856]  
Containerstart läuft...  
server1:~#

Aus irgendeinem Grund hat vzsplit eine falsche Festplattengröße berechnet. Sie können dies wie folgt korrigieren (dies setzt eine Festplattengröße mit einem Soft-Limit von 10GB und einem Hard-Limit von 11GB - passen Sie dies nach Ihren Bedürfnissen an):

vzctl set 101 --diskspace "10000000:11000000" --save

Dann starten Sie die VM neu:

vzctl restart 101

Sie können die neuen Einstellungen für die VM wie folgt einsehen:

vzctl exec 101 cat /proc/user_beancounters
server1:/etc/vz/conf# vzctl exec 101 cat /proc/user_beancounters  
Version: 2.5  
       uid  Ressource           gehalten    maxgehalten    Barriere      Limit    Fehlanzahl  
      101:  kmemsize         340278     580635   37052743   40758017          0  
            lockedpages           0          0       1809       1809          0  
            privvmpages         796       1655     155342     170876          0  
            shmpages              0          0      15534      15534          0  
            dummy                 0          0          0          0          0  
            numproc               5          9       1600       1600          0  
            physpages           486       1060          0 2147483647          0  
            vmguarpages           0          0     135985 2147483647          0  
            oomguarpages        486       1060     135985 2147483647          0  
            numtcpsock            1          2       1600       1600          0  
            numflock              1          2       1000       1100          0  
            numpty                0          1        160        160          0  
            numsiginfo            0          2       1024       1024          0  
            tcpsndbuf          8928          0    5797314   12350914          0  
            tcprcvbuf         16384          0    5797314   12350914          0  
            othersockbuf       2232       3624    2898657    9452257          0  
            dgramrcvbuf           0          0    2898657    2898657          0  
            numothersock          1          3       1600       1600          0  
            dcachesize            0          0    8088605    8331264          0  
            numfile             129        193      14464      14464          0  
            dummy                 0          0          0          0          0  
            dummy                 0          0          0          0          0  
            dummy                 0          0          0          0          0  
            numiptent            10         10        200        200          0  
server1:/etc/vz/conf#

Die Spalte failcnt ist sehr wichtig, sie sollte nur Nullen enthalten; wenn nicht, bedeutet dies, dass die VM mehr Ressourcen benötigt, als derzeit der VM zugewiesen sind.

Um die zugewiesene Speichermenge für die VM zu erfahren, führen Sie aus

vzctl exec 101 free
server1:~# vzctl exec 101 free  
             gesamt       verwendet       frei     geteilt    Puffer      Zwischenspeicher  
Mem:        621368       3268     618100          0          0          0  
-/+ Puffer/Zwischenspeicher:       3268     618100  
Swap:            0          0          0  
server1:~#

Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.