[Erledigt] Lag beim Backup vermeiden
#1
Lag beim Backup vermeiden
Da ich es schon mitbekommen habe, dass der Server bei einem Backup einige Sekunden lang gar nicht ansprechbar war und Razen mir gesagt hat, das für das Backup ein Plugin genutzt wird mal ein technischer Vorschlag von mir, wie man das Backup "unbemerkt" vom Server erstellen kann.
Das ganze lässt sich sogar recht unkompliziert realisieren.
Einfach zum Server den Befehl schicken, dass AutoSave ausgeschaltet wird, danach wird die komplette Map gespeichert (das ist der einzige Punkt an dem man nicht vermeiden kann, dass es zu kleinen Lags kommen könnte), ein Archiv des Servers erstellt und AutoSave wieder einschaltet.

Ich gehe bei meinem Beispiel mal davon aus, dass der Server unter /home/minecraft/ liegt und Backups unter /backups gespeichert werden.
Beide Verzeichnisse können am Anfang festgelegt werden.
Der Server läuft unter einem Screen mit dem Namen "mc-server".

Code:
#!/bin/bash

# Zeit als Variable Speichern
TIME=$(date +"%Y-%m-%d.%H:%M")
# Zielverzeichnis und Serververzeichnis festlegen
DEST="/backup/backup-$TIME.tar.gz"
SRC="/home/minecraft"

# Autosave wird ausgeschaltet
screen -S mc-server -X stuff "save-off $(printf '\r')"
# Welt wird komplett gespeichert
screen -S mc-server -X stuff "save-all $(printf '\r')"

# Archiv erzeugen
tar czf $DEST $SRC

# Autosave wird wieder eingeschaltet
screen -S mc-server -X stuff "save-on $(printf '\r')"

Edit: Das ganze Script dann natürlich per crontab in den gewünschten Abständen automatisch laufen lassen Wink

Technischer Hintergrund:
Der Minecraft-Server berechnet abgesehen von Kleinigkeiten wie dem Chat und dem I/O alles in einem einzigen Thread. Somit bringen einem bei Leistungshungrigen Plugins mehrere CPU-Kerne auf einem root-Server nichts.
Wenn das Backup nun unabhängig vom Minecraft-Server erstellt wird, wird ein neuer Thread für das Backup geöffnet welcher sich einen wenig ausgelasteten Kern aussucht. Somit läuft der Minecraft-Server unbehelligt weiter während ein Backup erstellt wird.


Noch eine Frage:
Werden die Backups nachdem sie erstellt wurden auch automatisch auf ein zweites Serversystem übertragen?

Steakbroetchen out
Zitieren
#2
RE: Lag beim Backup vermeiden
Moin Steakbroetchen,

Vielen Dank für den Post und besonders auch für die dort gemachten Vorschläge. Ich möchte Dir gerne dazu eine Antwort und ein paar weitere Infos geben.

Die Entscheidung, wie die Autosaves + Backups auf dem Server erstellt werden ist gefallen, als Maccy den Server auf neue Hardware umgezogen hat. In diesem Rahmen hatten er und ich auch das Thema AutoSave und Backupstrategie diskutiert. Hier standen seinerzeit zwei möglich Alternativen zur Auswahl, die Pluginlösung (Maccys Favorit) und eine externe Lösung mit einem modifizierten minecraft-init (Mein Favorit).

Die Entscheidung zugunsten der Pluginlösung fiel seinerzeit schlicht und einfach aus "persönlichen Präferenzen". Im Grunde sprach und spricht da auch weiter nichts dagegen und bisher hat es keinem der User irgendein Kopfzerbrechen bereitet (die Backuplaggs im Sekundenbereich provozierten maximal ein kurzes "Lagg?" im Chat Wink ).

Das ganze ist nun allerdings auch schon wieder Monate her, der Server entwickelt sich weiter, die "Geheimprojekt"-Map kam dazu. Kurz um, die Backupmasse wuchs kontinutierlich.
Grund genug die Anmerkung von Deiner Seite ernst zu nehmen und das Thema auf die Agenda zu setzen (ein Server lebt schließlich von seinen Usern), zumal ich den von Dir beschriebenen Ansatz auch grundsätzlich unterstütze. Ich werde das Thema mit Razen und Maccy bei nächster Gelegenheit mal besprechen.

Über die weiteren technischen Details und eine Diskussion darüber würde ich lieber im TS anstatt im Forum diskutieren. Ich verstehe den von Dir dargestellten Ansatz als grob umrissenen Vorschlag, denn Praxistauglich ist er so noch nicht, denn dafür gibt es eine Reihe weiterer Randbedingungen die es zu beachten gilt (von der Tatsache, das gesamt Userhome pauschal zu backupen mal abgesehen). Gleiches gilt für die Darstellung des technischen Hintergrundes, der aus meiner Sicht nicht in allen Teilen korrekt ist.

Eine kleine Beruhigungspille zur letzten Frage... Ja, die Backups werden nicht nur auf dem Server selber gespeichert, sondern darüber hinaus auch zentral auf Backupsystemen des Serverproviders.

Wie gesagt, diskutieren kann man darüber trefflich. Ich würde das aber eher im Rahmen eines Gesprächs sehen. Weniger im Forum, denn dafür ist die Materie als solche zu komplex und auch der Einstieg ins Thema, den Du durch Deinen Post vorgegeben hast, zu tief. Wink

So long,
Asgarioth

P.S.: Falls Du Dich über eine Antwort zu dem Thema von mir wunderst ist das erstmal okay. Der erste Blick mag an der Stelle täuschen. Meine Antwort dazu kommt nicht aus purem Eigenantrieb und ohne Rücksprache. Wink
Zitieren
#3
RE: Lag beim Backup vermeiden
Kleines Update zu diesem Vorschlag:

Im Rahmen von ein paar anderen Änderungen am Server selber wird das Backupverfahren auf Blockminers geändert. Im Wesentlichen entspricht das der vorgeschlagenen Variante, wird also aus MC selber herausgelöst und unabhängig ausgeführt (vom notwendigen Suspend des Autosaves während der Zeit mal abgesehen Wink ).

Die Änderung werde ich allerdings, sofern ich heute Nacht nicht doch last minute dazu komme erst Anfang September umgesetzt.
Zitieren
#4
RE: Lag beim Backup vermeiden
Sorry für die späte Antwort, das freut mich Smile
Zitieren
#5
RE: Lag beim Backup vermeiden
Erledigt. Wink
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste