Base de conocimientos

Mejora un plan con la mínima inactividad posible

Los núcleos, la memoria y el disco pueden crecer mientras la instancia se ejecuta; un cambio de familia no puede. Lo que el invitado tiene que hacer antes de notar el nuevo hardware.

Qué se puede hacer en caliente

  • Núcleos: se añaden en caliente, siempre que el tamaño objetivo quepa en el host actual. Normalmente cabe.
  • Memoria: se añade en caliente, misma condición.
  • NVMe extra: se añade en caliente, siempre.
  • Disco raíz: se amplía en caliente, con el sistema de archivos extendido por debajo.

Lo que no se puede: reducir nada, y cambiar de familia. Ryzen a EPYC es una máquina distinta, así que es una migración más que una mejora: el mismo procedimiento que cambiar de sitio, menos el cambio de ciudad.

Hacerlo

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" rechaza el cambio en lugar de reiniciar cuando no se puede hacer en caliente. Úsalo. El valor por defecto permisivo es cómo las instancias acaban reiniciándose a las once un viernes.

Hacer que el invitado se entere

Los núcleos nuevos llegan sin conexión en algunos kernels:

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

Haz que eso sea automático para que la próxima mejora no requiera nada de ti:

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

Los bloques de memoria cuentan la misma historia:

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

Ese ajuste no sobrevive a un reinicio. Añade memhp_default_state=online a la línea de comandos del kernel para mantenerlo.

Ampliar el sistema de archivos raíz

El dispositivo de bloque se agranda. La partición y el sistema de archivos no lo siguen por sí solos:

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

En XFS el paso final es xfs_growfs /. Ambas imágenes ya incluyen growpart. El hueco entre ampliar la partición y redimensionar el sistema de archivos es el único segundo en el que un corte de luz sería inconveniente.

Las aplicaciones tampoco se enteran

La mayoría de los demonios leen el número de CPUs una vez, al arrancar. Un servidor web que eligió cuatro workers en una instancia de cuatro núcleos sigue ejecutando cuatro workers en tu nueva de doce núcleos. Reinicia los servicios, o configura los números de workers explícitamente en lugar de dejarlos en auto:

nproc
systemctl restart nginx

Cualquier cosa que mantenga un pool de memoria necesita la misma atención. Duplicar la RAM no hace nada en absoluto para una base de datos que aún tiene instrucciones de usar cuatro gigabytes de buffer.

Qué cuesta

Prorrateado al segundo. La diferencia entre el plan antiguo y el nuevo, por el resto del ciclo, se descuenta de tu saldo si lo hay y se factura si no lo hay. Las bajadas abonan el saldo en lugar de pagar a una cadena, porque devolver una pequeña cantidad de moneda cuesta más en comisiones de red de lo que vale el crédito.

La fecha de renovación no se mueve. Una mejora el día veinte renueva el día veinte, igual que antes. Las tarifas actuales están en la página de precios.

Cuando falla

Si el host no puede aceptar el nuevo tamaño, la API lo dice y no cambia nada. A partir de ahí se convierte en una migración: mismo disco, máquina distinta, unos minutos de inactividad, y el cambio de plan aplicado al final. Esa parte la hacemos nosotros; recibes un correo con la ventana.

Listo cuando tú lo estés

Elige una ciudad. Elige un tamaño. Paga con monedas.

Sin fórmulas sobre quién eres, sin esperar a que un humano te apruebe, sin llamada telefónica para verificar nada. La factura se liquida y las credenciales llegan a tu bandeja de entrada.