Knowledge base

Upgrade een plan met zo min mogelijk downtime

Cores, geheugen en schijf kunnen groeien terwijl de instantie draait; een familieverandering niet. Wat de gast moet doen voordat hij de nieuwe hardware opmerkt.

Wat kan er hot gedaan worden

  • Cores: live toegevoegd, mits de doelgrootte op de huidige host past. Dat doet het meestal.
  • Geheugen: live toegevoegd, zelfde voorwaarde.
  • Extra NVMe: live toegevoegd, altijd.
  • Rootschijf: live gegroeid, met het bestandssysteem dat onder je wordt uitgebreid.

Wat niet kan: iets verkleinen, en verhuizen tussen families. Ryzen naar EPYC is een andere machine, dus het is een verhuizing in plaats van een upgrade — dezelfde procedure als het veranderen van locatie, minus de verandering van stad.

Het doen

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" weigert de wijziging in plaats van opnieuw op te starten wanneer het niet live kan. Gebruik dat. De permissieve standaard is hoe instanties op vrijdag om elf uur opnieuw opstarten.

De gast het laten merken

Nieuwe cores komen op sommige kernels offline aan:

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

Maak dat automatisch zodat de volgende upgrade niets van je nodig heeft:

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

Geheugenblokken vertellen hetzelfde verhaal:

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

Die instelling overleeft een herstart niet. Voeg memhp_default_state=online toe aan de kernelcommandoregel om het te behouden.

Het rootbestandssysteem groeien

Het blokapparaat wordt groter. De partitie en het bestandssysteem volgen niet vanzelf:

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

Op XFS is de laatste stap xfs_growfs /. Beide images bevatten al growpart. De kloof tussen het groeien van de partitie en het vergroten van het bestandssysteem is de ene seconde waarin een stroomuitval onhandig zou zijn.

Applicaties merken het ook niet

De meeste daemons lezen het aantal cores een keer, bij het opstarten. Een webserver die vier workers koos op een instantie met vier cores draait nog steeds vier workers op je nieuwe met twaalf cores. Herstart de services, of stel worker-aantallen expliciet in in plaats van ze op auto te laten:

nproc
systemctl restart nginx

Alles wat een geheugenpool vasthoudt heeft dezelfde aandacht nodig. Het verdubbelen van het RAM doet helemaal niets voor een database die nog steeds de instructie heeft om vier gigabyte buffer te gebruiken.

Wat het kost

Naar rato per seconde. Het verschil tussen oud en nieuw plan, voor de rest van de cyclus, wordt van je accountsaldo afgehaald als dat er is en gefactureerd als dat niet zo is. Downgrades crediteren het saldo in plaats van uit te betalen naar een chain, omdat het terugsturen van een kleine hoeveelheid coin meer aan netwerkkosten kost dan het tegoed waard is.

De verlengdatum verandert niet. Een upgrade op de twintigste verlengt op de twintigste, net als voorheen. Huidige tarieven staan op de prijspagina.

Wanneer het faalt

Als de host de nieuwe grootte niet kan hebben, zegt de API dat en er verandert niets. Van daar wordt het een verhuizing: zelfde schijf, andere machine, een paar minuten downtime, en de planwijziging toegepast aan de andere kant. Wij doen dat deel; je krijgt een e-mail met het tijdvenster.

Klaar wanneer jij dat bent

Kies een stad. Kies een formaat. Betaal in munt.

Geen formulieren over wie je bent, geen wachten op een mens die je goedkeurt, geen telefoontje om iets te verifiëren. De factuur wordt betaald en de inloggegevens belanden in je inbox.