7.8 KiB
Modul 158: Softwaremigration Planen und Durchführen
Inhaltsverzeichnis
Einleitung
Das ist die Dokumentation für die Migration von einem Pterodactyl Panel von einem alten Server auf einen neuen.
Es wird von einem Netcup vServer zu einem Hetzner Dedicated Server migriert. Diese Migration entspricht also nicht nur einem Hardware- sondern auch einem Anbieterwechsel.
Informieren
Planen
Damit die Migration von dem Pterodactyl Gameserver Panel reibungslos verläuft, sollten wir am besten einige Ziele und Zeitpläne festlegen. So kann am effizientesten gearbeitet werden.
Ziele
Must-have
- Minecraft Server 100% migriert (inkl. save data)
- Funktionelles Wings Backend
- Virtualisiertes Wings & Panel
- Reverse Proxy
- Backups
Nice to have
- Virtualisiertes Wings Panel mit dedizierter IP Adresse
- 2FA
Low priority
- no tasks here
To-do
Panel
- Setup LXC CT
- Check if all dependecies are met (PHP, MYSQL, etc...)
- Download extra pterodactyl files
- Database Setup
- Crontab configurations
- Configure Reverse Proxy
Wings
- Setup VM
- Check if all dependencies are met. (
curl
,docker
) - Download and Configure Wings
Post-Installation
- Add new host as a node to the old host
- Transfer server eggs
- Delete the old host from the new host
Migrationsplan
Serverressourcen
Damit die Migration so flüssig wie möglich verlaufen kann, muss man garantieren, dass der neue Server genau so viel (oder mehr) Ressourcen wie der letzte hat. Natürlich kann man das auch anders lösen, was dann in einem Fall wie im Runterskalieren besser wäre.
In unserem Fall aber haben wir Gameserver, die migriert werden müssen, die man schlecht downscalen kann. Man müsste deren Welten und Mods modifizieren, was auf keinem Fall passieren darf, da das zu Korruption im bestehenden Spielstand führen kann. Heisst, wir brauchen gleich viel oder mehr Hardwareressourcen.
In einer robusteren Umgebung könnte man auch mehrere kleine Server zu einem Wings-Cluster bilden. Da wären mind. 3 Server ideal.
Hier haben wir aber nur einen Server zur Verfügung, also müssen wir keine Cluster erstellen. Das würde sich nicht lohnen.
Folgendes sind die Serverresourcen von den zwei Hosts:
@netcup
(alter Server, panel.sangelo.space):
Hardware | Specs |
---|---|
CPU | Host: AMD EPYC 7702P VPS: 10 vCores @ 2GHz, max. 3.35 GHz |
RAM | 32 GB |
Storage | 1TB VHD on SSD |
OS | Debian 11 + YunoHost |
@kubelo
(neuer Server, lunivity.com):
Hardware | Specs |
---|---|
CPU | Intel Xeon E3-1275 v6 4 Cores, 8 Threads @ 3.80GHz |
RAM | 64 GB |
Storage | 2x Samsung SM963 512 GB 1x Samsung PM9A1/PM9A3/980PRO 512 GB Usable: 1 TB (RAID 5) |
OS | Proxmox 8.1.4 |
Wie man sieht, hat der neue Server zwar weniger nutzbare Cores/Threads, dafür aber hat er doppelt so viel RAM wie der Letzte.
Der Grossteil der Gameserver, die migriert werden, sind Minecraft Server. Dieses Spiel ist dafür bekannt, single-threaded zu laufen und RAM-hungrig zu sein.
Es werden nicht alle Server gleichzeitig laufen, maximal einen oder zwei aufs Mal. Das heisst, dass CPU in diesem Fall kein grosses Downgrade sein sollte, und fast unbemerkbar ist. Die höhere Clockspeed der CPU vom neuen Server wäre sogar ein Upgrade in einigen Bereichen vom Spiel.
Bezüglich RAM ist mein jetziger Fussabdruck auf dem @kubelo
Node noch nicht zu gross, also sollte für die Wings-VM 20GB oder sogar 32GB gut möglich sein. Das würde ich in Zukunft wenn nötig entweder runterskalieren (und im Endeffekt einfach weniger Gameserver parallel online halten), oder ich würde dann mehr RAM einbauen.
Entscheiden
Dieses Kapitel dient zur Zeiteinteilung, wir entscheiden, wer was wann macht. Unten ist eine Tabelle die das genau einteilt und einplant.
Aufgabe | Tag | Zeiteinschätzung | Wer? |
---|---|---|---|
Panel | -h | ||
Setup LXC Container | 4 | 30min | Stelian |
Docker Image erstellen | 4 | 5h (mit Troubleshooting) | Milena |
Deployment Panel | 5 | 1.5h | Aleksander |
Reverse Proxy | 5 | 20min | Aleksander |
2FA | 5 | 5min | Stelian |
Wings | -h | ||
Setup VM | 4 | 1h | Stelian |
Installation Wings | 6 | 2.5h | Milena |
Daemonizing | 6 | 30min | Stelian |
Gameservermigration | 3h + 5h (server-transfer) | ||
Vom alten Node migrieren | 5-6 | 5h (im Hintergrund) | Stelian |
Gameserver testen | 6 | 2h | Aleksander |
Altes Node auflösen | 7 | 1h | Milena |
Restliche Sachen | |||
Dokumentation | - | 5h | Aleksander, Milena |
Total | -h |
Realisieren
Dieser Teil der Dokumentation wurde zur Lesbarkeit in verschiedene Dateien aufgeteilt. Folgend ist eine Liste mit diesen Kapiteln.
TODO: update this table of contents once docs are finished