Upgrade einer Minecraft-Welt erzwingen

Meine mittlerweile über fünfzehnjährige Minecraft-Welt Akaria, belegt speichertechnisch bereits etliche Gigabyte auf der Festplatte. Allerdings ist dies bei solchen gewachsenen Welten nicht unbedingt das Problem. Bedingt durch viele Upgrades der Minecraft-Server-Versionen und damit einhergehenden Änderungen, wie z.B. am Chunk-Format, befindet sich irgendwann ein buntes Sammelsurium an Daten in den Weltordnern. An sich ist dies kein Problem, da Chunks beim Laden im Spiel automatisch konvertiert werden.

Ein Teil der Minecraft-Welt Akaria

Allerdings kann dies bei vielen Chunks mit Performanceeinbußen verbunden sein und die Chunks könnten teilweise noch Daten enthalten, die nur aufgrund vorheriger Versionen in diesen schlummern, aber in dieser Form nicht mehr benötigt werden. In einem solchen Fall bietet es sich an ein Upgrade aller Chunks und Regionen zu erzwingen:

screen java -Xms16G -Xmx16G -jar server.jar --forceUpgrade --recreateRegionFiles --eraseCache

Durch den Screen-Befehl kann die Session im Hintergrund weiterlaufen, nachdem sie detached wurde (Strg + A, anschließend Strg + D; Wiederaufruf mittels screen -r).

Damit beginnt der Minecraft-Server die Entities, POIs und Chunks zu upgraden. Während dieses Vorgangs, der je nach Welt, etliche Stunden dauern kann, ist der Minecraft-Server nicht erreichbar. In der Log-Datei latest.log kann der Fortschritt verfolgt werden:

[20:21:17] [Server thread/INFO]: 3% completed (10558 / 343881 chunks)...
[20:21:18] [Server thread/INFO]: 3% completed (10613 / 343881 chunks)...
[20:21:19] [Server thread/INFO]: 3% completed (10661 / 343881 chunks)...
[20:21:20] [Server thread/INFO]: 3% completed (10736 / 343881 chunks)...
[20:21:21] [Server thread/INFO]: 3% completed (10818 / 343881 chunks)...
[20:21:22] [Server thread/INFO]: 3% completed (10869 / 343881 chunks)...
[20:21:23] [Server thread/INFO]: 3% completed (10906 / 343881 chunks)...

Während die Option forceUpgrade dafür sorgt, dass der Upgradeprozess überhaupt angestartet wird, sorgt recreateRegionFiles dafür das neue und saubere Region-Dateien erzeugt werden, anstatt die alten Dateien nur zu bearbeiten. Die Option eraseCache löscht cacheähnliche Daten aus den NBT-Daten, darunter unter anderem Heightmaps, BlockLight und SkyLight. Diese Daten werden beim Neuladen der Chunks im Server ebenfalls wieder neu erzeugt.

Ist der Vorgang am Ende abgeschlossen, kann der temporär gestartete Server beendet werden und der Minecraft-Server wieder im Produktivbetrieb gestartet werden. Durch das Upgrade, das Löschen der Caches und der Neuanlage der Regionen, sollten viele Altlasten und potenzielle Probleme aus den Daten entfernt werden. Dies schlägt sich im Endeffekt auch positiv auf die Performance des Spieles im Serverbetrieb nieder.

Minecraft-Karten über BlueMap rendern

Für die Welten in Minecraft existieren eine Reihe von Lösungen, um diese als Karte zu rendern. Bis vor einiger Zeit nutze ich Mapcrafter als Renderer. Allerdings wurde dieser nicht mehr weiter gepflegt, sodass es mit neueren Minecraft-Versionen zu Darstellungsfehlern und ähnlichen Problemen kommt. Eine Alternative kann in einem solchen Fall BlueMap sein.

BlueMap mit einer Map

Während Mapcrafter die Daten der Minecraft-Welt nutzte, um die Karten mit Leaflet anzuzeigen, integriert sich BlueMap in Server wie Paper als Plugin.

Die 3D-Ansicht in der BlueMap

Nach der Installation und entsprechender Konfiguration kann BlueMap anschließend im Browser genutzt werden. Das Rendering findet hierbei im Minecraft-Serverprozess statt, sodass die Karte immer aktuell ist.

SSH-Schlüssel neu generieren

Um Verbindung mittels SSH aufzubauen bzw. solche entgegenzunehmen, wird ein SSH-Schlüssel benötigt. Für den OpenSSH-Server finden sich diese Schlüssel im Verzeichnis /etc/ssh/. Um die Schlüssel für den Server neu zu generieren, müssen die alten Schlüssel gelöscht werden:

rm /etc/ssh/ssh_host_*

Anschließend wird der OpenSSH-Server neu konfiguriert, damit neue Schlüssel erzeugt werden:

dpkg-reconfigure openssh-server

Nachdem dies geschehen ist, muss im letzten Schritt der SSH-Server neu gestartet werden:

systemctl restart ssh

Damit sind die Schlüssel ausgetauscht. Bei einem erneuten Verbindungsversuch, wird ein entsprechender Client deshalb eine entsprechende Warnmeldung ausgeben, welche dann bestätigt werden muss.

Spieleerinnerungen #2

In dieser Episode von Deus ex machina rede ich mit Felix wieder über Spiele, die uns im Gedächtnis geblieben sind und uns nachhaltig beeinflusst haben. Konkret geht es diesmal um EVE Online, Minecraft und To the Moon.

Falls noch nicht geschehen, könnt ihr Deus ex machina in eurem Podcatcher abonnieren oder eine Bewertung auf Apple Podcasts hinterlassen. Daneben ist die Unterstützung über Tone H möglich.

Selfhosting in fünfter Auflage erschienen

Vor einigen Tagen ist mein Buch Selfhosting: Server aufsetzen und betreiben in der fünften Auflage erschien. Die erste Auflage des Buches erschien im Jahr 2015. Im Gegensatz zu den Vorgängerausgaben, erscheint diese Ausgabe, neben der E-Book-Variante, auch gedruckt als Soft- und Hardcover-Ausgabe. Behandelt wird im Buch der Betrieb eines eigenen Servers mitsamt entsprechender Dienste unter der Nutzung der Linux-Distribution Ubuntu. Neben den bisherigen Inhalten wurde viele Kapitel um entsprechende Hintergründe erweitert.

Selfhosting

Nach einer kurzen Einleitung behandelt das Buch die Beschaffung eines Servers, die anschließende Installation und Grundeinrichtung. Dabei wird auch das Setup von verschlüsselten Servern behandelt. Nach der Vermittlung von Linux– und Netzwerk-Grundlagen, wird anschließend die Einrichtung unterschiedlichster Servertypen, wie Mail-, Game- oder Webserver behandelt. Neben diesen werden Dienste wie Git und XMPP besprochen. In weiteren Abschnitten des Buches wird auf Themen wie das Backup von Servern, die Sicherheit, Wartung und Verwaltung derselben eingegangen.

Die Hard- und Softcover-Ausgaben

Erhältlich ist das Buch als E-Book, sowie in einer Soft- und Hardcover-Variante. Es kann es unter anderem bei Amazon, Beam, Google Play, eBook.de und iTunes bezogen werden. Direkt bestellt werden kann das Buch über den Shop von Tredition.