Base de conhecimento

Faça upgrade de um plano com o mínimo de tempo de inatividade possível

Cores, memória e disco podem crescer enquanto a instância roda; uma mudança de família não. O que o convidado precisa fazer antes de notar o novo hardware.

O que pode ser feito a quente

  • Núcleos: adicionados ao vivo, desde que o tamanho desejado caiba no host atual. Normalmente cabe.
  • Memória: adicionada ao vivo, mesma condição.
  • NVMe extra: adicionado ao vivo, sempre.
  • Disco raiz: ampliado ao vivo, com o filesystem estendido por baixo.

O que não pode: reduzir qualquer coisa e migrar entre famílias. Ryzen para EPYC é uma máquina diferente, então é uma migração em vez de um upgrade — o mesmo procedimento de mudar de site, sem a mudança de cidade.

Como fazer

curl -s -X POST https://paragonvps.com/api/v1/instances/<instance-id>/resize -H "Authorization: Bearer $Paragon_TOKEN" -H "Content-Type: application/json" -d '{"plan":"r-12","mode":"hot"}'

"mode":"hot" recusa a alteração em vez de reiniciar quando não pode ser feito ao vivo. Use isso. O padrão permissivo é como as instâncias acabam reiniciando às onze da noite de uma sexta-feira.

Fazendo o convidado perceber

Núcleos novos chegam offline em alguns kernels:

lscpu | head
grep . /sys/devices/system/cpu/cpu*/online
echo 1 > /sys/devices/system/cpu/cpu8/online

Torne isso automático para que o próximo upgrade não exija nada de você:

cat > /etc/udev/rules.d/80-cpu-hotplug.rules <<EOF
SUBSYSTEM=="cpu", ACTION=="add", TEST=="online", ATTR{online}=="0", ATTR{online}="1"
EOF
udevadm control --reload

Blocos de memória contam a mesma história:

free -h
echo online > /sys/devices/system/memory/auto_online_blocks

Essa configuração não sobrevive a uma reinicialização. Adicione memhp_default_state=online à linha de comando do kernel para manter isso.

Aumentando o filesystem raiz

O dispositivo de bloco fica maior. A partição e o filesystem não acompanham sozinhos:

lsblk
growpart /dev/vda 1
resize2fs /dev/vda1

No XFS, o passo final é xfs_growfs /. Ambas as imagens já carregam growpart. A lacuna entre aumentar a partição e redimensionar o filesystem é o único segundo em que uma queda de energia seria inconveniente.

Aplicações também não percebem

A maioria dos daemons lê a contagem de CPUs uma vez, na inicialização. Um servidor web que escolheu quatro workers em uma instância de quatro núcleos ainda está rodando quatro workers na sua nova de doze núcleos. Reinicie os serviços ou defina contagens de workers explicitamente em vez de deixá-los em auto:

nproc
systemctl restart nginx

Qualquer coisa que segure um pool de memória precisa da mesma atenção. Dobrar a RAM não faz nada por um banco de dados ainda instruído a usar quatro gigabytes de buffer.

Quanto custa

Proporcional ao segundo. A diferença entre o plano antigo e o novo, pelo restante do ciclo, é deduzida do seu saldo, se houver, e faturada se não houver. Downgrades creditam o saldo em vez de pagar em uma rede, porque devolver uma pequena quantia de moeda custa mais em taxas de rede do que o crédito vale.

A data de renovação não muda. Um upgrade no dia 20 renova no dia 20, como antes. As taxas atuais estão na página de preços.

Quando falha

Se o host não suportar o novo tamanho, a API informa e nada muda. A partir daí, vira uma migração: mesmo disco, máquina diferente, alguns minutos de inatividade e a alteração de plano aplicada na outra ponta. Fazemos essa parte; você recebe um email com a janela.

Pronto quando você estiver

Escolha uma cidade. Escolha um tamanho. Pague em cripto.

Sem formulários sobre quem você é, sem esperar aprovação de um humano, sem ligação para verificar nada. O pagamento é confirmado e as credenciais chegam na sua caixa de entrada.