Migrace herního serveru na nový node v Pterodactylu
Jak přesunout servery mezi nody v Pterodactylu – vestavěný Transfer, ruční přesun dat přes rsync a stěhování celého nodu na nový stroj včetně Wings.
Dřív nebo později budete server stěhovat – na výkonnější stroj, k jinému poskytovateli nebo protože starý node končí. Pterodactyl nabízí vestavěný přenos serverů mezi nody, pro větší přesuny se ale hodí znát i ruční postup. V článku najdete obě varianty a také přesun celého nodu.
Kde leží data serveru
Na nodu má každý server adresář pojmenovaný podle svého UUID:
/var/lib/pterodactyl/volumes/<uuid>/
UUID najdete v administraci u serveru (pole UUID v záložce About) – krátké ID z URL je jen jeho začátek. Lokální zálohy jsou v /var/lib/pterodactyl/backups/, konfigurace Wings v /etc/pterodactyl/config.yml.
Samotné nastavení serveru (limity, egg, proměnné, alokace) je v databázi Panelu. Při přesunu mezi nody se tedy stěhují jen soubory.
Varianta 1: vestavěný Transfer
V administraci otevřete server → Manage → Transfer Server:
- Vyberte cílový node.
- Zvolte primární alokaci na cílovém nodu (případně další alokace).
- Potvrďte.
Co se stane: zdrojový Wings vytvoří archiv dat serveru a cílový Wings si ho stáhne a rozbalí. Po úspěchu Panel přepne server na nový node a data na starém smaže.
Předpoklady:
- Oba nody jsou online (zelené srdíčko) a vidí se navzájem – cílový Wings stahuje archiv přímo ze zdrojového přes jeho API (port 8080).
- Na cílovém nodu je dost místa pro archiv i rozbalená data a volná alokace.
- Server je během přenosu vypnutý.
- Běží
pteroqna Panelu.
Pro servery do desítek GB je to nejpohodlnější cesta. U velmi velkých serverů může přenos trvat dlouho a při přerušení začíná znovu.
Po přenosu
- Změnila se IP adresa, a tedy adresa, na kterou se hráči připojují. Pokud používáte doménu (
mc.example.cz), upravte DNS A záznam. U Minecraftu se SRV záznamem upravte i port, pokud se změnil. - Snižte TTL DNS záznamu (např. na 300 s) den před migrací, aby se změna projevila rychle.
Varianta 2: ruční přesun přes rsync
Hodí se pro velmi velké servery nebo když se nody přímo nevidí. Princip: v Panelu „přesunete“ server, ale data zkopírujete sami.
1. Předkopírování za běhu (zkrátí výpadek – zkopíruje většinu dat dopředu):
# na starém nodu
rsync -aHAX --info=progress2 /var/lib/pterodactyl/volumes/<uuid>/ root@novy-node:/root/migrace/<uuid>/
2. Vypněte server v Panelu.
3. Dokopírujte změny stejným příkazem – teď to proběhne rychle.
4. Na cílovém nodu vytvořte server. Nejjednodušší je v Panelu vytvořit nový server se stejným eggem a nastavením na cílovém nodu, nechat ho nainstalovat, zastavit ho a pak nahradit jeho data:
# na novém nodu
NEW=/var/lib/pterodactyl/volumes/<nove-uuid>
rm -rf "$NEW"/*
rsync -a /root/migrace/<uuid>/ "$NEW"/
chown -R 988:988 "$NEW"
Wings ve výchozím nastavení spouští kontejnery pod uživatelem pterodactyl. Jeho UID/GID zjistíte příkazem id pterodactyl nebo ve config.yml v sekci system.user – číslo 988 výše je jen příklad, použijte skutečnou hodnotu.
5. Spusťte server, ověřte funkčnost a teprve potom smažte starý server.
Nevýhoda: nový server má jiné UUID a ID, takže uživatelům se změní odkaz a vazby (subuživatelé, plány, zálohy) je potřeba nastavit znovu.
Varianta 3: stěhování celého nodu
Pokud měníte stroj, ale chcete zachovat node v Panelu (všechny servery, ID, nastavení):
- Na novém stroji nainstalujte Docker a Wings (viz Instalace Wings), Wings zatím nespouštějte.
- Zkopírujte konfiguraci a data:
bash rsync -aHAX /etc/pterodactyl/ root@novy:/etc/pterodactyl/ rsync -aHAX --info=progress2 /var/lib/pterodactyl/ root@novy:/var/lib/pterodactyl/ - Zastavte všechny servery a Wings na starém stroji, dokopírujte změny (druhý rsync).
- Přesměrujte FQDN nodu (DNS) na novou IP. Pokud jste používali Let’s Encrypt, zkopírujte také
/etc/letsencrypt/nebo vystavte certifikát znovu. - V Panelu u nodu upravte alokace – mají starou IP. Při změně IP je nutné vytvořit alokace s novou IP a servery na ně přepnout (Build Configuration), staré pak smazat.
- Spusťte Wings:
systemctl enable --now wings, zkontrolujte srdíčko a spusťte servery.
Kontejnery a Docker image se na novém stroji vytvoří znovu automaticky při prvním startu serveru.
Checklist před migrací
- [ ] Čerstvá záloha serverů i databáze Panelu
- [ ] Snížené TTL DNS záznamů
- [ ] Dost místa na cílovém nodu (
df -h) - [ ] Oznámení hráčům s časem výpadku
- [ ] Otevřené porty na novém nodu (8080, 2022, herní porty)
Ověření po migraci
# na novém nodu
systemctl status wings
docker ps
ss -tulpn | grep 25565
Zkuste se připojit do hry, otevřít konzoli a SFTP. Starý stroj nechte pár dní vypnutý, ale nesmazaný – kdyby se ukázalo, že něco chybí, máte kam sáhnout.