OpenVZ · 3 min read · Jan 04, 2026
Dividiendo Recursos Uniformemente Entre VMs de OpenVZ Con vzsplit
Dividiendo Recursos Uniformemente Entre VMs de OpenVZ Con vzsplit
Versión 1.0
Autor: Falko Timme
Esta breve guía muestra cómo puedes dividir los recursos de tu host OpenVZ uniformemente entre múltiples máquinas virtuales con la ayuda de vzsplit. vzsplit genera un archivo de configuración de contenedor de muestra con un conjunto determinado de parámetros de control de recursos del sistema que luego puedes aplicar a tus máquinas virtuales.
¡No emito ninguna garantía de que esto funcione para ti!
Usando vzsplit
Echa un vistazo a
man vzsplitpara aprender más sobre su uso.
Ahora supongamos que queremos ejecutar 5 máquinas virtuales en el host OpenVZ. Llamamos a vzsplit de la siguiente manera:
vzsplit -n 5 -f max-limits-n 5 especifica el número de máquinas virtuales.
server1:~# vzsplit -n 5 -f max-limits
El tamaño óptimo del espacio de intercambio es 2022 Mb, el doble que el tamaño de la RAMADVERTENCIA: ¡El tamaño mínimo recomendado de la partición que contiene /var/lib/vz/private/ es 20Gb!
Se creó la configuración /etc/vz/conf/ve-max-limits.conf-sample
server1:~#Como ves, esto ha creado el archivo /etc/vz/conf/ve-max-limits.conf-sample que contiene los valores máximos de la configuración para cada una de las 5 máquinas virtuales. Echa un vistazo a ese archivo:
vi /etc/vz/conf/ve-max-limits.conf-sample| # Archivo de configuración generado por vzsplit para 5 contenedores # en HN con una cantidad total de memoria física de 1011 Mb # memoria baja 883 Mb, tamaño de intercambio 2047 Mb, Máx hilos 8000 # Nivel de compromiso de recursos 0: # Distribución de recursos libre. Cualquier parámetro puede ser aumentado # Parámetros primarios NUMPROC="1600:1600" AVNUMPROC="452:452" NUMTCPSOCK="1600:1600" NUMOTHERSOCK="1600:1600" VMGUARPAGES="135985:2147483647" # Parámetros secundarios KMEMSIZE="37052743:40758017" TCPSNDBUF="5797314:12350914" TCPRCVBUF="5797314:12350914" OTHERSOCKBUF="2898657:9452257" DGRAMRCVBUF="2898657:2898657" OOMGUARPAGES="135985:2147483647" PRIVVMPAGES="155342:170876" # Parámetros auxiliares 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" |
Como ves, este archivo no contiene configuraciones específicas de VM como nombre de host, dirección IP, servidores de nombres, etc. lo cual tiene sentido porque no queremos sobrescribir estas configuraciones.
Ahora digamos que queremos aplicar estas configuraciones a nuestra VM con el ID 101. Así es como lo hacemos:
vzctl set 101 --applyconfig max-limits --saveDespués, puedes iniciar/reiniciar la VM 101:
vzctl start 101Puedes ver algo como esto:
server1:~# vzctl start 101
Iniciando contenedor ...
vzquota : (advertencia) block_hard_limit [129115] < block_current_usage [139856]
El contenedor está montado
Agregando dirección(es) IP: 192.168.0.101
bash: línea 402: printf: error de escritura: Cuota de disco excedida
bash: línea 416: printf: error de escritura: Cuota de disco excedida
bash: línea 421: echo: error de escritura: Cuota de disco excedida
bash: línea 447: printf: error de escritura: Cuota de disco excedida
Configurando unidades de CPU: 8587
Configurar meminfo: 155342
Establecer nombre de host: test.example.com
awk: fallo al cerrar el archivo /dev/stdout (Cuota de disco excedida)
ERROR: No se puede cambiar el archivo /etc/hosts
vzquota : (advertencia) block_hard_limit [129015] < block_current_usage [139856]
Inicio del contenedor en progreso...
server1:~#Por alguna razón, vzsplit ha calculado un tamaño de disco incorrecto. Puedes corregir eso de la siguiente manera (esto establecerá un tamaño de disco con un límite suave de 10GB y un límite duro de 11GB - ajusta esto a tus necesidades):
vzctl set 101 --diskspace "10000000:11000000" --saveLuego reinicia la VM:
vzctl restart 101Puedes echar un vistazo a las nuevas configuraciones para la VM de la siguiente manera:
vzctl exec 101 cat /proc/user_beancountersserver1:/etc/vz/conf# vzctl exec 101 cat /proc/user_beancounters
Versión: 2.5
uid recurso sostenido máximo sostenido barrera límite 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 columna failcnt es muy importante, debería contener solo ceros; si no lo hace, esto significa que la vm necesita más recursos de los que actualmente están asignados a la VM.
Para averiguar sobre la memoria asignada a la VM, ejecuta
vzctl exec 101 freeserver1:~# vzctl exec 101 free
total usado libre compartido buffers cached
Mem: 621368 3268 618100 0 0 0
-/+ buffers/cache: 3268 618100
Swap: 0 0 0
server1:~#Enlaces
- OpenVZ: http://openvz.org
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.