Snapshot / Backup

    • Offizieller Beitrag

    Hallo,


    ich möchte euch heute gerne etwas zeigen, was die meisten nicht benutzen, da sie der Meinung sind, es sei unnötig oder man würde es nie verwenden. Oder es liegt einfach nur daran, dass man es noch nicht kennt bzw. nicht weis, wie es funktioniert. :whistling:


    Inhaltsverzeichnis

    • Was sind Snapshots?
    • Was speichert ein Snapshot und was nicht?
    • Was ist bei Snapshots zu beachten?
    • Wie erstellt man einen Snapshot?
    • Wie spielt man einen Snapshot ein?
    • Hilfsskripte zur Benutzung der Snapshot Funktion


    Die nachfolgenden Informationen sollten sich nicht ändern, aber zur Sicherheit nenne ich trotzdem mal den aktuellen Stand: 2014-04-14 (Aktuellste TeamSpeak Server Version 3.0.10.3)

    • Was sind Snapshots?
      Snapshots sind um genau zu sein einfache Text-Dateien, die Informationen zum Aufbau eines virtuellen TeamSpeak 3 Servers speichern.
      (Welche Informationen zum Aufbau gespeichert werden, könnt ihr im 2. Punkt "Was speichert ein Snapshot und was nicht?" nachlesen.)


      Sprich in jedem Snapshot stehen jeweils nur die Informationen über einen einzelnen virtuellen Server drin und nicht über die Instanz oder mehrere virtuelle Server. Da ein virtueller TeamSpeak 3 Server mit Standardeinstellungen bereits extrem viele Informationen besitzt, zeige ich jetzt kein Beispiel. Vom Prinzip erhält jeder Snapshot einen eindeutigen "Hash", sowie alle weiteren Informationen. Nachfolgend ein Teilausschnitt eines Snapshots:

      Code
      hash=X1n3zqr32Q5SksC2NAvFNJPDd6k=|virtualserver_unique_identifier=7uCMlaljATPJS+0zbot4OxaIQIDM= virtualserver_name=FascinatingGaming™\s[FG] virtualserver_welcomemessage=Willkommen\sauf\sdem\sTeamSpeak\s3\sServer\svon\sFascinatingGaming™!\n\nBei\sFragen\/Problemen\swendet\seuch\sbitte\san\sdie\sLeader\/Co-Leader\soder\sAdmins.\sDanke! virtualserver_maxclients=124 [ ... ]


      So bilden Snapshots ein exaktes Abbild eines virtuellen TeamSpeak 3 Servers. Damit kann man den aktuellen Status eines virtuellen Servers sichern und später wieder einspielen, falls was am Server geändert wurde und beispielsweise nicht mehr zurück geändert werden kann. Man kann mit Hilfe eines Snapshots auch den virtuellen Server auf eine andere TeamSpeak 3 Server Instanz migrieren - unabhängig vom (Server) Betriebssystem.


      Migrieren - was bedeutet das? Das bedeutet, dass man bestimmte Daten von dem Server A auf den Server B umzieht. In unserem Beispiel ziehen wir einen virtuellen TeamSpeak 3 Server um. ;)


    • Was speichert ein Snapshot und was nicht?
      Ein Snapshot speichert alles bis auf die Dateien, Avatare und Icons von den Servern. Somit beinhaltet ein Snapshot folgende Daten:

      • Alle Server sowie Channelgruppen auf dem ausgewählten Server sowie die Rechte in all diesen Gruppen.
      • Sämtliche Channel sowie deren Rechte, Beschreibungen, Topic, Password und dergleichen.
      • Alle Nutzer die in der Datenbank dem ausgewählten Server zugewiesen sind, sowie deren Rechte.
      • Alle Einstellungen des Servers wie Name, Passwort, Slots, Banner und dergleichen.
        Quelle: TeamSpeak Support FAQ


    • Was ist bei Snapshots zu beachten?
      Durch das Editieren eines Snapshots wird dieser sofort ungültig. Man kann diesen im Normalfall danach noch einspielen, jedoch kann dies verherrende Folgen haben. Ich persönlich habe es mal getestet und dann wurden mehrere virtuelle TeamSpeak 3 Server gestoppt und der eingespielte Snapshot zerstörte den virtuellen Zielserver nur, anstatts ihn auf den Stand des Snapshots zurück zu setzen.


      TeamSpeak selbst sagt hierzu auch folgendes:

      Zitat von TeamSpeak Support FAQ

      Snapshots werden durch einen Hash vor Manipulationen geschützt. Jede Änderung am Snapshot kann dazu führen das der Hash ungültig wird, was dazu führt das der Snapshot nicht mehr verwendet werden kann. Einige Programme verändern beispielsweise automatisch die Zeilenumbrüche beim öffnen einer Datei, wodurch der Hash ungültig wird!


      Zudem sollte man drauf achten, von welcher TeamSpeak Server Version der Snapshot stammt und auf welcher TeamSpeak Server Version man den Snapshot einspielen möchte. Wenn die neuere Version des TeamSpeak Servers grundlegende Änderungen von Rechten (Namensänderungen, altes Rechte wurde gelöscht,...) oder Funktionen aufweist, kann es sein, dass der Snapshot nicht mehr funktioniert. Mein persönlicher Tipp hierbei ist, dass man alte Snapshots nach einem Server Update einfach löscht und sofort neue anlegt. So spart man sich eine Menge unnötigen Ärger. :)


    • Wie erstellt man einen Snapshot?
      Hierfür gibt es den ServerQuery Befehl "serversnapshotcreate", welcher folgende Syntax besitzt:

      Code
      serversnapshotcreate


      Sprich: Einfach ausführen und man erhält jede Menge Informationen zurück. :D


      Joa... Mehr kann man dazu nicht sagen.


    • Wie spielt man einen Snapshot ein?
      Um einen Snapshot wieder ein zu spielen, sprich um ihn zu "deployen" gibt es dann wiederum einen Befehl: serversnapshotdeploy


      Dieser Befehl hat folgende Syntax:

      Code
      serversnapshotdeploy hash=bnTd2E1kNITHjJYRCFjgbKKO5P8=|virtualserver_...


      Wobei "hash=bnTd2E1kNITHjJYRCFjgbKKO5P8=|virtualserver_..." die Informationen aus dem "serversnapshotcreate" Befehl sind.


      Es gibt hierbei zwei verschiedene Typen zum Einspielen des Snapshots:

      • Migration / Neuen virtuellen Server mit dieser Konfiguration erstellen
        Sollte der virtuelle Server mit der Unique ID (= virtualserver_unique_identifier) des Snapshots auf der Instanz des TeamSpeak 3 Servers noch nicht existieren, kann dieser mit einem Snapshot erstellt werden. Hierzu müssen folgende Schritte ausgeführt werden:
        a) Als "serveradmin" einloggen:

        Code
        login serveradmin sehrGeheimes$Passwort2014


        b) Mit der Instanz verbinden:

        Code
        use 0


        c) Snapshot deployen:

        Code
        serversnapshotdeploy [Snapshot Text]


        Beispiel:

        Code
        serversnapshotdeploy hash=bnTd2E1kNITHjJYRCFjgbKKO5P8=|virtualserver_...


      • Bestehenden virtuellen Server auf den Stand des Snapshots bringen
        Sollte der virtuelle Server mit der Unique ID (= virtualserver_unique_identifier) des Snapshots bereits auf der Instanz des TeamSpeak 3 Servers existieren, kann der virtuelle Server auf den Stand des Snapshots zurück gesetzt werden. Hier muss man dann folgende Schritte ausführen:
        a) Als "serveradmin" einloggen:

        Code
        login serveradmin sehrGeheimes$Passwort2014


        b) Mit dem virtuellen Server verbinden:

        Code
        use 1


        oder

        Code
        use sid=1


        oder

        Code
        use port=9987


        c) Snapshot deployen:

        Code
        serversnapshotdeploy [Snapshot Text]


        Beispiel:

        Code
        serversnapshotdeploy hash=bnTd2E1kNITHjJYRCFjgbKKO5P8=|virtualserver_...


    • Hilfsskripte zur Benutzung der Snapshot Funktion
      TeamSpeak bietet zur Vereinfachung auch vorgefertige Skripte zur Verwaltung der Snapshots an. Für weitere Informationen siehe auch direkt im TeamSpeak Forum: http://forum.teamspeak.com/sho…ripts?p=224498#post224498


      Die meisten Webinterfaces bieten diese Funktion meistens auch an, sodass man per Klicken alles erledigen kann. Psychokiller's Webinterface, sowie meine TS3 WebApp bietet das zum Beispiel an. :)

    Ja, soviel zum Thema Snapshots. Sollte es noch Fragen geben, stehe ich natürlich gerne zur Verfügung. :)

    Viele Grüße,
    Sebbo

    ---

    DevOps Engineer <3