Failover Strategien für die Systemadministration

(Last Updated On: 13. Mai 2015)

sie administrieren hochkomplexe oder auch weniger komplexe Serversysteme. Sei es nur eine NAS, ein Raspberry Pi oder ein anderes kleines Gerät, ein VServer oder Root SErver im Internet oder ein Enterprise Serversystem.

Sie führen auf diesem System administrative Tätigkeiten durch. Dabei kann es durchaus einmal sein, dass etwas schief gehen kann.

In diesem Post zeige ich Ihnen, Strategien, mit denen Sie in jedem Fall wieder auf Ihren alten Stand zurück können.

Erster Schritt: Snapshot oder Image im funktionstüchtigen Zustand

Der erste Schritt, bevor Sie einen systemrelevanten Change durchführen, sollte immer ein Image Ihres Systems sein.

virtualisierte Server

Wenn es sich bei Ihrem Server um ein virtualisiertes Betriebssystem handelt, ist die Angelegenheit ganz einfach, weil Sie einen Snapshot erstellen können. Dabei ist die beste Form des Snapshots eigentlich immer die, in dem das Serverbetriebssystem komplett heruntergefahren ist. Möglicherweise wollen Sie aber aus Sicherheitsgründen bereits einen Snapshot machen, wenn das System noch online ist, damit Sie, falls das System aufgrund einer fehlerhaften Systemdatei nicht mehr durchstartet, diesen Fehler beheben können. Grundsätzlich sollten Sie so vorgehen:

  1. machen Sie einen Live-Snapshot, auf welchem sowohl der Serverdienst als auch das Betriebssystem noch laufen. Snapshoten Sie hierbei unbedingt den Arbeitsspeicherinhalt der virtuellen Maschine mit
  2. Machen Sie einen Live-Snaptshot, auf welchem der Serverdienst heruntergefahren ist, aber das Betriebssystem noch läuft. Auch hier snapshoten Sie den Arbeitsspeicherinhalt mit.
  3. Versuchen Sie, den Anwendungsserver neu zu starten. Kommt er hoch? Sollte er, denn bisher haben Sie keine Änderungne vorgenommen. Falls nicht, sollten Sie ggf. auf einen onch älteren Snapshot zurückgreifen oder zumindest dne Snapshot aus Schritt 1 laden.
  4. Schalten Sie das System komplett aus und machen Sie erneuteinen Snapshot. Hier lassen Sie den Arbeitsspeicherinhalt weg.
  5. Starten Sie das System komplett neu durch. Wenn das Betriebssystem schon jetzt nicht mehr durchstartet, laden Sie den Snapshot aus Schritt 2.
  6. Wenndas Betriebssystem und der Serverdienst sauber neu durchstarten, löschen Sie die snapshots aus Schritt 1 und 2 und behalten den Snapshot aus Schritt 4. erst jetzt beginnen sie mit wieteren Änderungen am System.

Physikalische Server

Wenn Ihr Server nicht virtuell, sondern physikalisch ist, dann müssen Sie auf Festplatten-Imaging Tools wie cloneZilla, Norton Ghost oder Acronis True Image zurückgreifen. Da hier die einzelnen Imaging-Prozesse viel länger dauenr als das Snapshoten, ist die vorgehensweise hier ein wenig anders

  1. Festplatten-Images retten Sie hier sowieso nicht, weil Sie den ARbeitsspeicherinhalt nicht mit imagen können. Sie könnten höchstens den SErver in den ruhezustand versetzen und dann die Ruhezustands-Datei mitimagen, aber dann haben Sie auch nicht den 100%igen Arbeitsspeicherinhalt, der Ihnen den Ursprungszustand wiedergeben würde
  2. deswegen stellen Sie einfach sicher, dass Anwendungsserverdienst und Betriebssytsem jeweils neu starten können. Falls dem nicht so ist, haben Sie hoffentlihc noch aus früheren Zeiten ein FEstplatten-Image, bei dem dies noch so ist.
  3. Machen Sie bei heruntergefahrenem System ein sauberes Image des kompletten Systems mit allen Partitionen, die für das System relevant sind
  4. Maschen Sie desweiteren ein Image der Partition, auf der sie demnächst Änderungen vornehmen wollen. Wenn Sie beispielsweise etwas an der Datenbank vornehmen wollen, dann haben Sie hoffentlich die Datenbank-Dateien auf einer anderen Partition als die restlichen Serverdienste. Falls dann bei den Datenbankänderungen etwas schief geht, müssen Sie meistens nur die Dtenbankpartition zurückspielen, was wesentlich kürzer in der Dauer wäre als das komplette Festplattenimage zurückzuspielen.

Auf Linux-Systemen können Sie alternativ nur den Live-System-Lösungen wie CloneZilla oder Norton Ghost auch Systemtools nutzen, die ich in meinem post Systemimages machen beschrieben habe.

Zweiter Schritt: Binary- und Datenbankbackup im funktionstüchtigen Zustand

Im zweiten Schritt holen wir uns den Binary-Ordner des Anwendungsserverdienstes. Wir kopieren also beispielsweise den kompletten Ordner, in dem bspw. unser Apache-Webserver liegt, heraus – inklusive sämtlicher Konfigurationsdateien, System-Binaries und Bibliotheken, weg.

Wenn der Ordner des Serverdienstes viel zu groß wäre – beispielsweise der Ordner eines SAP-Systems, dann kopieren Sie wirklich nur die Ordner weg, in denen die Profile/Konfigurationsdateien liegen.

Im Anschluss führen Sie ein Datenbankbackup durch. Empfehlenswert ist hier ein Datenbankdump, in welchem das DAtenbankmanagementsytem den inhalt der Datenbank als .dump oder .sql-Dateien ablegt, damit der Datenbankinhalt aus dieser Datei wiederhergstellt werden kann.

Wenn Sie genügend Ressourcen und Zeit haben, können Sie zusätzlich zum Dump ein Dateisystem-Backup der Datenbank durchführen, indem Sie die Datenbankdateien auf Dateisystemebene ebenfalls wegkopieren.

Dritter Schritt: die Systemumgebung im funktionstüchtigen Zustand

zu guter letzt kopieren Sie die aktuelle Systemumgebung im funktionstüchtigen Zustand weg.

  • Geben Sie unter windows oder Linux das kommando set ein und leiten Sie die Ausgabe in eine textdatei um. Somit haben Sie alle Systemvariablen, die im funktionstüchtigen Zustand gesetzt sind, im Blick
  • unter Windows exportieren Sie zusätzlich den gesamten registry-Baum mittels regedit, indem sie über Start / ausführen / regedit auf den Knoten Computer rechtsklicken und Extrahieren wählen.
  • Nun listen Sie alle Dateisystem-Links, die auf dem System exisiteren, und leiten diese in eine Datei um. Unter Windows gibt es die funktion der Links erst seit Windows Vista.
    • unter Windows listen Sie alle Links in der Eingabeauffordeurng über
      dir /AL /S c:\
    • unter Linux listen Sie alle Soft-Links über
      find / -type l
      und alle hard Links über
      find / -type f -links +2
    • leiten Sie die ausgabe der kommandos in eine Datei um und speichern sich somit alle Links in eine Textdatei weg.
  • Sichern Sie alle Laufzeitbibliotheken, die derzeit von Serverprozessen geladen werden. Beispiel: sie wollen wissen, welche Laufzeitbilbiotheken der Apache Webserver geladen hat
    • unter Windows laden Sie sich das Sysinternals-Utility ListDLLs und geben ein listdlls -v apache sowie listdlls -u
    • unter Linux können Sie die tools pldd, ldd, pmap sowie cat /proc/PID/maps nutzen.
    • unter Max OS X können Sie vmmap $pid nutzen.
    • leiten Sie die Ausgaben wieder in eine Datei um
  • zu guter letzt sichern Sie sich alle Konfigurationsdateien, die durch Ihre geplanten Änderungen betroffen sein könnten, nochmal manuell weg (obwohl Sie sie eventuell über das Binary-Backup im zweiten Schrittbereits gesichert haben und auch dann, wenn der Awnendungsserver selbst eine Funktionalität bietet, um verschiedene Versionen der Konfigurationsdateien zu versionieren).

Änderungen machen

Erst wenn Sie die drei oben genannten Schritte durchgeführt haben, führen Sie Ihre geplanten Änderungen durch. ‚Dabei sollten Sie auch hier so arbeiten, dass Sie möglichst immer einen kleinen Rollback durchführen könne, das heißt:

  • wenn Sie Dateien durch neue ersetzen, überschreiben Sie die alten Dateien nicht einfach, sondern benennen diese vorher in <datei>.BAK um
  • Wenn sie Dateien in Ordner reinkopieren, erstellen Sie vorher eine Kopie des Ordners in dem Zustand, in dem die Dateien noch nicht drin sind
  • Sie löschen Dateien nicht, sie benennen Sie nur um nach <datei>.remove
  • wenn Sie eine Konfigurationsdatei umschreiben, dann legen Sie vor der änderung der Konfigurationsdtei einer Kopie der Datei an
  • wenn Sie eine Umgebungsvariable ändern, dann erzeugen sie vorher wie oben beschrieben einen Dump Ihrer Umgebungsvariablen oder dokumentieren den alten Wert.
  • wenn Sie etwas an der Windows-Registry ändern, machen Sie vor einen kompletten Export der Gesamtregistry oder exportieren zumindest den Schlüssel, den Sie ändern.

fehleranalyse

Jetzt tritt irgendwann während ihrer Änderungen ein Fehler ein. DAs System startet nicht mehr durch. Erste Position für Ihre Fehleranalyse sollten die Logs der Anwendungsserverdienste und der Datenbank sowie sonstige Fehlermeldungen auf der Kommandozeile sein.

Als zweite Instanz können sie zur Fehleranalyse die aktuellen Daten des Systems mit Ihren weggesicherten Daten vergleichen.

  • als erstes vergleichen Sie die weggesicherten Profil- und Konfigurationsdateien.
    • dazu können Sie biespielsweise die inhalte beider versionen von Konfigurationsdateien in ein Online Tool wie diffchecker.com einfüpgen
    • unter Windows können Sie das tool WinMerge verwenden.
    • unter Linux verwenden Sie den Befehl diff <dateiversion1> <dateiversion2> auf die beiden Dateiversionen der konfigurationsdateien an.
  • auif die gleiche Weise vergleichen Sie nun den Dump ihrer Umgebungsvariablen im funktionstüchtigen Zustand mit einem aktuellen Dump all Ihrer umgebugnsvariablen
  • das selbe machen sie mit einem Dump all Ihrer Links auf dem Betriebssystem
  • unter windows vergleichen Sie jetzt noch zwei Dumps ihrer Windows-Registry mit WinMerge.
  • wir vergleichen außerdem den Dump der geladenen Laufzeitbibliotheken.
  • zu guter letzt vergleichen Sie die Inhalte der Ordner, die sie aus dem Binary-Backup gesichert haben
    • unter Windows können Sie hierzu das Tool WinMerge verwenden
    • unter Linux können Sie auch hier wieder das Kommando diff verwenden im Format diff <ordner1> <ordner2>
  • wenn Sie jetzt noch einen Dump Ihrer Datenbank in Textform haben, etwa weil Sie aus dem oberen Schritt einen Datenbankdump in eine .sql-Datei gemacht haben, können Sie zu guter Letzt noch den damaligen .sql-Dump der Datenbank mit einem aktuellen .sql-Dump vergleichen. Die Methodiken zum Vergleichen sind dabei die gleichen wie beim Vergleichen von Textdateien.
  • Wenn sie jetzt all ihre Vergleichsmethoden ausgeschöpft haben, wird es an der Zeit, sich entweder im Internet auf Fehlersuche zu machen, oder einfach das letzte Image / den letzten Snapshot zurückzuspielen.

Ich hoffe diese Methodik hilft Ihnen, einen fehlerträchtigen Zustand eines Systems mit einem funktionstüchtigen zu vergleichen und immer daran zu denken, wie Sie einen funktionstüchtigen Zustand sauber backupen.

 

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

DaFRK

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

Das könnte Dich auch interessieren...

Kommentar verfassen

This site uses Akismet to reduce spam. Learn how your comment data is processed.