Skip links

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:

  1. Verificar módulos inativos:
    grep line /sys/devices/system/memory/*/state 
  2. 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.

Leave a comment

This website uses cookies to improve your web experience.