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 vzsplitper 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 RAMATTENZIONE: 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 --saveSuccessivamente, puoi avviare/riavviare la VM 101:
vzctl start 101Potresti 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" --saveQuindi riavvia la VM:
vzctl restart 101Puoi dare un’occhiata alle nuove impostazioni per la VM come segue:
vzctl exec 101 cat /proc/user_beancountersserver1:/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 freeserver1:~# 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
- OpenVZ: http://openvz.org
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.