OpenVZ · 3 min read · Jan 04, 2026

Divisione delle risorse in modo uniforme tra le VM OpenVZ con vzsplit

Divisione delle risorse in modo uniforme tra le VM OpenVZ con vzsplit

Versione 1.0
Autore: Falko Timme

Questa breve guida mostra come puoi dividere le risorse del tuo host OpenVZ in modo uniforme tra più macchine virtuali con l’aiuto di vzsplit. vzsplit genera un file di configurazione del contenitore di esempio con un certo insieme di parametri di controllo delle risorse di sistema che puoi quindi applicare alle tue macchine virtuali.

Non fornisco alcuna garanzia che questo funzionerà per te!

Utilizzo di vzsplit

Dai un’occhiata a

man vzsplit

per saperne di più sul suo utilizzo.

Ora supponiamo di voler eseguire 5 macchine virtuali sull’host OpenVZ. Chiamiamo vzsplit come segue:

vzsplit -n 5 -f max-limits

-n 5 specifica il numero di macchine virtuali.

server1:~# vzsplit -n 5 -f max-limits  
La dimensione ottimale dello spazio di swap è 2022 Mb, due volte più grande della dimensione della RAM
ATTENZIONE: La dimensione minima consigliata della partizione che contiene /var/lib/vz/private/ è 20Gb!  
Il file di configurazione /etc/vz/conf/ve-max-limits.conf-sample è stato creato  
server1:~#

Come puoi vedere, questo ha creato il file /etc/vz/conf/ve-max-limits.conf-sample che contiene i valori massimi delle impostazioni di configurazione per ciascuna delle 5 macchine virtuali. Dai un’occhiata a quel file:

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

| # File di configurazione generato da vzsplit per 5 contenitori # su HN con un totale di memoria fisica di 1011 Mb # memoria bassa 883 Mb, dimensione dello swap 2047 Mb, Max treads 8000 # Livello di impegno delle risorse 0: # Distribuzione gratuita delle risorse. Qualsiasi parametro può essere aumentato # Parametri primari NUMPROC="1600:1600" AVNUMPROC="452:452" NUMTCPSOCK="1600:1600" NUMOTHERSOCK="1600:1600" VMGUARPAGES="135985:2147483647" # Parametri secondari KMEMSIZE="37052743:40758017" TCPSNDBUF="5797314:12350914" TCPRCVBUF="5797314:12350914" OTHERSOCKBUF="2898657:9452257" DGRAMRCVBUF="2898657:2898657" OOMGUARPAGES="135985:2147483647" PRIVVMPAGES="155342:170876" # Parametri ausiliari 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" |

Come puoi vedere, questo file non contiene impostazioni specifiche per la VM come nome host, indirizzo IP, server DNS, ecc. il che ha senso perché non vogliamo sovrascrivere queste impostazioni.

Ora supponiamo di voler applicare queste impostazioni alla nostra VM con l’ID 101. Ecco come lo facciamo:

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

Successivamente, puoi avviare/riavviare la VM 101:

vzctl start 101

Potresti vedere qualcosa del genere:

server1:~# vzctl start 101  
Avvio del contenitore ...  
vzquota : (avviso) block_hard_limit [129115] < block_current_usage [139856]  
Il contenitore è montato  
Aggiunta indirizzo(i) IP: 192.168.0.101  
bash: line 402: printf: errore di scrittura: Quota disco superata  
bash: line 416: printf: errore di scrittura: Quota disco superata  
bash: line 421: echo: errore di scrittura: Quota disco superata  
bash: line 447: printf: errore di scrittura: Quota disco superata  
Impostazione delle unità CPU: 8587  
Configurare meminfo: 155342  
Imposta nome host: test.example.com  
awk: chiusura non riuscita sul file /dev/stdout (Quota disco superata)  
ERRORE: Impossibile modificare il file /etc/hosts  
vzquota : (avviso) block_hard_limit [129015] < block_current_usage [139856]  
Avvio del contenitore in corso...  
server1:~#

Per qualche motivo vzsplit ha calcolato una dimensione del disco errata. Puoi correggerlo come segue (questo imposterà una dimensione del disco con un limite morbido di 10GB e un limite rigido di 11GB - adatta questo alle tue esigenze):

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

Quindi riavvia la VM:

vzctl restart 101

Puoi dare un’occhiata alle nuove impostazioni per la VM come segue:

vzctl exec 101 cat /proc/user_beancounters
server1:/etc/vz/conf# vzctl exec 101 cat /proc/user_beancounters  
Versione: 2.5  
       uid  risorsa           tenuta    maxheld    barriera      limite    failcnt  
      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#

La colonna failcnt è molto importante, dovrebbe contenere solo zeri; se non lo fa, significa che la VM ha bisogno di più risorse di quelle attualmente allocate alla VM.

Per scoprire la memoria allocata alla VM, esegui

vzctl exec 101 free
server1:~# vzctl exec 101 free  
             totale       usato       libero     condiviso    buffer     cached  
Mem:        621368       3268     618100          0          0          0  
-/+ buffer/cache:       3268     618100  
Swap:            0          0          0  
server1:~#

Link

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.