OpenVZ · 3 min read · Jan 04, 2026
Dividindo Recursos Uniformemente Entre VMs OpenVZ Com vzsplit
Dividindo Recursos Uniformemente Entre VMs OpenVZ Com vzsplit
Versão 1.0
Autor: Falko Timme
Este guia curto mostra como você pode dividir os recursos do seu host OpenVZ uniformemente entre várias máquinas virtuais com a ajuda do vzsplit. O vzsplit gera um arquivo de configuração de contêiner de exemplo com um determinado conjunto de parâmetros de controle de recursos do sistema que você pode então aplicar às suas máquinas virtuais.
Não dou nenhuma garantia de que isso funcionará para você!
Usando vzsplit
Dê uma olhada em
man vzsplitpara saber mais sobre seu uso.
Agora vamos supor que queremos executar 5 máquinas virtuais no host OpenVZ. Chamamos o vzsplit da seguinte forma:
vzsplit -n 5 -f max-limits-n 5 especifica o número de máquinas virtuais.
server1:~# vzsplit -n 5 -f max-limits
O tamanho ideal do espaço de swap é 2022 Mb, duas vezes maior que o tamanho da RAMWARNING: O tamanho mínimo recomendado da partição que contém /var/lib/vz/private/ é 20Gb!
Config /etc/vz/conf/ve-max-limits.conf-sample foi criada
server1:~#Como você pode ver, isso criou o arquivo /etc/vz/conf/ve-max-limits.conf-sample que contém os valores máximos das configurações para cada uma das 5 máquinas virtuais. Dê uma olhada nesse arquivo:
vi /etc/vz/conf/ve-max-limits.conf-sample| # Arquivo de configuração gerado pelo vzsplit para 5 contêineres # no HN com a quantidade total de memória física 1011 Mb # memória baixa 883 Mb, tamanho do swap 2047 Mb, Máx. threads 8000 # Nível de compromisso de recursos 0: # Distribuição de recursos livre. Quaisquer parâmetros podem ser aumentados # Parâmetros primários NUMPROC="1600:1600" AVNUMPROC="452:452" NUMTCPSOCK="1600:1600" NUMOTHERSOCK="1600:1600" VMGUARPAGES="135985:2147483647" # Parâmetros secundários 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 você pode ver, este arquivo não contém configurações específicas da VM, como nome do host, endereço IP, servidores de nomes, etc., o que faz sentido porque não queremos sobrescrever essas configurações.
Agora vamos supor que queremos aplicar essas configurações à nossa VM com o ID 101. É assim que fazemos:
vzctl set 101 --applyconfig max-limits --saveDepois, você pode iniciar/reiniciar a VM 101:
vzctl start 101Você pode ver algo assim:
server1:~# vzctl start 101
Iniciando contêiner ...
vzquota : (aviso) block_hard_limit [129115] < block_current_usage [139856]
Contêiner está montado
Adicionando endereço(s) IP: 192.168.0.101
bash: linha 402: printf: erro de escrita: Cota de disco excedida
bash: linha 416: printf: erro de escrita: Cota de disco excedida
bash: linha 421: echo: erro de escrita: Cota de disco excedida
bash: linha 447: printf: erro de escrita: Cota de disco excedida
Configurando unidades de CPU: 8587
Configurar meminfo: 155342
Definir nome do host: test.example.com
awk: falha ao fechar o arquivo /dev/stdout (Cota de disco excedida)
ERRO: Não é possível alterar o arquivo /etc/hosts
vzquota : (aviso) block_hard_limit [129015] < block_current_usage [139856]
Início do contêiner em progresso...
server1:~#Por algum motivo, o vzsplit calculou um tamanho de disco errado. Você pode corrigir isso da seguinte forma (isso definirá um tamanho de disco com um limite suave de 10GB e um limite rígido de 11GB - ajuste isso conforme suas necessidades):
vzctl set 101 --diskspace "10000000:11000000" --saveEntão reinicie a VM:
vzctl restart 101Você pode dar uma olhada nas novas configurações da VM da seguinte forma:
vzctl exec 101 cat /proc/user_beancountersserver1:/etc/vz/conf# vzctl exec 101 cat /proc/user_beancounters
Versão: 2.5
uid recurso mantido maxheld barreira 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#A coluna failcnt é muito importante, ela deve conter apenas zeros; se não contiver, isso significa que a VM precisa de mais recursos do que os atualmente alocados à VM.
Para descobrir sobre a memória alocada à VM, execute
vzctl exec 101 freeserver1:~# vzctl exec 101 free
total usado livre compartilhado buffers cached
Mem: 621368 3268 618100 0 0 0
-/+ buffers/cache: 3268 618100
Swap: 0 0 0
server1:~#Links
- OpenVZ: http://openvz.org
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.