Das ist die Dokumentation für die Migration von einem Pterodactyl Panel von einem alten Server auf einen neuen.<br>
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)
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.<br>
Wie man sieht, hat der neue Server zwar weniger nutzbare Cores/Threads, dafür aber hat er doppelt so viel RAM wie der Letzte.<br>
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.
| 1.1 | Panel (Admin), Reverse Proxy, 2FA | Der Zugriff auf das Panel mit einem Administratorenkonto soll versucht werden. | Der Zugriff sollte problemlos funktioneren und es sollte nach dem OTP fragen. Zusätzlich sollten alle Administratorfunktionen verfügbar sein. | |
| 1.2 | Panel (non Admin), Reverse Proxy, 2FA | Der Zugriff auf das Panel mit einem normalen Konto soll versucht werden. | Der Zugriff sollte problemlos funktionieren und es sollte nach dem OTP fragen. Zusätzlich sollten keine Administratorfunktionen verfügbar sein. | |
| 2.1 | Wings als Backend, Reverse Proxy | Der Zugriff auf Wings sollte nur über das Panel funktionieren. Im Browser soll man den Namen von Wings aufrufen. | ```$ curl https://nest.sangelo.space:2080 {"error":"The required authorization heads were not present in the request."}``` | ```[milena@mb-laptop ~]$ curl https://nest.sangelo.space:2080 {"error":"The required authorization heads were not present in the request."}``` |
| 2.2 | Wings als Backend, Reverse Proxy | Der Zugriff auf Wings sollte nur über das Panel funktionieren. Im Panel soll man kontrollieren, ob die Node verbunden ist. | Im Panel sollte die Node auffindbar sein. | |
| 2.3 | Wings als Backend, dedizierte IPv4 | Wings sollte über die dedizierte IPv4-Adresse mit curl antworten. | ```$ curl http://167.235.4.32:2080 Client sent an HTTP request to an HTTPS server.``` | ```[milena@mb-laptop ~]$ curl http://167.235.4.32:2080 Client sent an HTTP request to an HTTPS server.``` |
| 2.4 | Minecraft Server, Reverse Proxy | Der Zugriff auf Wings sollte über einen Game Launcher funktionieren. In einem Minecraft Launcher sollte man den Namen von Wings aufrufen. | Es sollte ein Minecraft Server auffrufbar sein unter dem Namen von Wings. | |
| 3.1 | Minecraft Server, Migration | Die fehlerfreie Übertragung der Minecraft Welten sollte erfolgreich abgeschlossen sein. Mit einem Laden einer ausgewählten Welt kann dies nachvollzogen werden. | Die übertragenen Welten des Minecraft Servers sollten ohne Schaden migriert sein. | |