Dynamic Scaling: quando aplicar no CloudStack
Quando as cargas crescem de forma imprevisível, manter a operação contínua se torna prioridade absoluta. Por isso, equipes que utilizam Apache CloudStack buscam alternativas para ampliar CPU e memória sem desligar máquinas virtuais. Nesse contexto, o Dynamic Scaling oferece uma maneira eficiente de realizar escalonamento vertical em VMs e garantir continuidade operacional. Além disso, o recurso se integra perfeitamente ao KVM, desde que os requisitos corretos estejam habilitados.
O que é Dynamic Scaling
O Dynamic Scaling representa uma abordagem de escalonamento vertical que ajusta CPU, memória e velocidade do processador com a VM em execução. Com isso, as operações evitam janelas de manutenção e respondem rapidamente a picos de demanda. Embora o CloudStack suporte distintos hipervisores, o KVM possui condições específicas que precisam ser atendidas antes do uso.
Requisitos para habilitar Dynamic Scaling no KVM
Para que o Dynamic Scaling funcione corretamente, diversos critérios precisam ser seguidos. Por exemplo:
-
A VM precisa ser “dynamically scalable”
O recurso só funciona se a VM estiver marcada como dynamically scalable. Portanto, o hypervisor reconhece a capacidade de ajustar recursos durante o deploy inicial.
-
O compute offering deve ser custom
O CloudStack exige compute offerings das famílias:
- custom constrained
- custom unconstrained
Ambas permitem alterar CPU, RAM e CPU speed conforme necessário.
-
O sistema operacional deve aceitar hot add
Além disso, cada distribuição Linux reage de forma diferente ao escalonamento. Por isso, o Dynamic Scaling depende do suporte nativo do sistema operacional.
-
Reduções não são permitidas
O escalonamento vertical apenas aumenta CPU e memória, nunca reduz.
-
A troca de vGPU não é compatível
O CloudStack não permite substituir famílias de vGPU enquanto a VM permanece ligada.
-
O parâmetro global precisa estar ativo
Por fim, o parâmetro enable.dynamic.scale.vm=true deve estar configurado para liberar o recurso na plataforma.
Como preparar templates para Dynamic Scaling
Os templates podem nascer com suporte ao Dynamic Scaling. Para isso, basta acessar o template desejado, selecionar Edit e ativar a opção Dynamically Scalable. Assim, qualquer VM criada a partir desse template já possui suporte ao ajuste dinâmico, o que evita retrabalhos e padroniza o ambiente.
Como habilitar Dynamic Scaling em VMs existentes
Quando a VM já existe, ainda é possível ativar o recurso, desde que a instância permaneça desligada. O KVM grava essas definições no DOM do deploy e, portanto, não permite a alteração com a VM ligada. Logo após desligar a instância, você pode acessar Edit Instance e ativar a opção Dynamically Scalable antes de reiniciar.
Ajustando o sistema operacional após o escalonamento
Ativando CPUs no Ubuntu
Para a ativação de CPUs adicionais no Ubuntu. é preciso primeiro tornar-se root. Depois, executar:
echo 1 > /sys/devices/system/cpu/cpu<NUMERO>/online
Assim, você ativa cada núcleo conforme ele é adicionado, repetindo o comando para cada CPU disponível.
Ativando memória no CentOS e RHEL
Para ativar RAM no CentOS/RHEL, é preciso seguir dois passos:
- Verificar módulos inativos:
grep line /sys/devices/system/memory/*/state - Ativar cada módulo:
echo online > /sys/devices/system/memory/memory<number>/state
Dessa forma, o sistema operacional reconhece toda a memória adicionada pelo Dynamic Scaling.
Como ajustar CPU e RAM via API (CloudMonkey)
O comando completo usado para escalonar CPU, memória e velocidade:
scale virtualmachine id=<ID> serviceofferingid=<ID> \
Memória:
details[0].memory=<VALOR>
Número de CPUs
details[0].cpuNumber=<NUMERO>
Velocidade da CPU
details[0].cpuSpeed=<VELOCIDADE>
Além disso, eles reforçam pontos importantes:
- memory e cpuNumber são obrigatórios
- memória precisa ser múltiplo de 128
- compute offerings custom unconstrained exigem cpuSpeed
- é permitido enviar o valor atual caso você não deseje modificar
Como resultado, o CloudMonkey se torna ideal para automatizar rotinas de escala vertical.
Alterando recursos pela interface do CloudStack
O usuário pode realizar escalonamento vertical diretamente pela interface, ajustando compute offerings conforme documentado. Assim, mesmo equipes que não utilizam scripts conseguem aproveitar o recurso com facilidade.
Quando utilizar o Dynamic Scaling
O Dynamic Scaling se aplica especialmente a momentos de pico, como eventos sazonais, altas de tráfego, cargas analíticas e processamento intenso. Além disso, o recurso evita interrupções e mantém a disponibilidade enquanto amplia capacidade sob demanda.
Conclusão sobre o Dynamic Scaling
Por fim, o Dynamic Scaling no Apache CloudStack com KVM oferece uma maneira eficaz de ampliar recursos de forma rápida, previsível e contínua. Como você precisa seguir passos específicos para habilitar o recurso, logo, a configuração correta garante que CPU e memória possam crescer com segurança. Depois disso, o ambiente ganha flexibilidade e estabilidade mesmo em cenários de alta demanda.
Se você deseja habilitar Dynamic Scaling ou aprimorar seu ambiente CloudStack, a SC Clouds pode ajudar sua operação a escalar com segurança e precisão. Fale com nossa equipe e saiba mais.