Planung für eine Katastrophe

18

Ich arbeite für eine kleine Marketingfirma, die auch Webdesign und -entwicklung betreibt. Wir hosten alle unsere Webdesign- und Entwicklungskunden auf einem dedizierten Server bei Hostgator. Wir haben einen dedizierten Server mit RAID 1 konfigurierten Festplatten. Wir führen auch wöchentliche Backups durch, die über cPanel automatisiert und von einer automatisierten FTP-Software lokal heruntergeladen werden.

Heute diskutierten wir darüber, was wir tun würden, wenn Hostgator einen katastrophalen Ausfall hätte. Es könnte sein, dass der Server explodiert ist, Hostgator schwerwiegende Netzwerkprobleme hatte, das FBI einen seiner berühmten "take every server we see" -Razzien durchführte usw. Grundsätzlich jedes Szenario, in dem ein längerer Ausfall zu erwarten ist. Wir haben es dann auf die nächste Stufe gebracht und uns gefragt, was wir tun würden, wenn Hostgator einen längeren Ausfall hätte und wir nicht auf unsere lokalen Backups zugreifen könnten. Dies könnte an Feuer, Überschwemmungen usw. liegen. Ich weiß, dass die Wahrscheinlichkeit groß ist, dass unser Server für längere Zeit nicht erreichbar ist und unsere lokalen Dateien gleichzeitig nicht erreichbar sind, aber alles, was es braucht, sind nur zweischlechte Dinge passieren und das ist, wo wir stehen würden. (Wenn Sie jemals einen platten Reifen bekommen haben und feststellen, dass Ihr Reserverad platt ist oder fehlt, wissen Sie, wie einfach es ist, wenn zwei schlimme Dinge gleichzeitig passieren).

Selbstverständlich möchten wir auf Ereignisse vom Typ "Worst-Case-Szenario" vorbereitet sein, da dies uns mit ziemlicher Sicherheit aus dem Geschäft bringen würde. Meine beiden Fragen lauten also:

  1. Was können wir tun, um auf einen längeren Ausfall von Hostgator vorbereitet zu sein? In einem idealen Szenario sind die Websites unserer Kunden und hoffentlich auch E-Mails schnell wieder einsatzbereit.

  2. Was würde ein robuster Sicherungsplan beinhalten, damit niemals wichtige Daten verloren gehen? Eine ideale Lösung wird automatisiert.

Sie können davon ausgehen, dass die Kosten bei Ihren Antworten keine Rolle spielen. Je günstiger eine Lösung ist, desto besser.

John Conde
quelle
Scheint, als ob die Antworten hier bereits eine Menge guter Gründe abdecken. Ich kann dafür bürgen, dass Amazon Cloud als Backup-Lösung bisher sehr wirtschaftlich war. Keine Ahnung, was die Zukunft bringt, aber wenn nicht anders, ist dies ein guter Weg, um zu lernen, wie die Cloud funktioniert.
JMC
Hier ist der geschätzte Kostenrechner für AWS, falls Sie ihn noch nicht kennen: calculator.s3.amazonaws.com/calc5.html
JMC
@ John Conde: Welche Erfahrungen haben Sie mit HostGator gemacht? Wenn ja, wie lange war die Hauptausfallzeit, an die Sie sich erinnern?
Marco Demaio
@Marco Demaio, wir hatten überhaupt keine Ausfallzeiten mit Hostgator. Sie waren äußerst zuverlässig und ihre Unterstützung ist fantastisch.
John Conde

Antworten:

15

Ich würde vorschlagen, dass Sie:

  1. Spiegeln Sie den gesamten Inhalt und die Konfiguration Ihres Hauptservers automatisch auf einen sekundären Sicherungsserver in einem vollständig separaten Netzwerk in einem anderen Rechenzentrum. Verwenden Sie RSync, FXP, cPanel voodoo oder eine andere Methode, um die Synchronisierung zu automatisieren.

  2. Verwenden Sie die DNS-Failover-Umschaltung, um den Datenverkehr automatisch an den Sicherungsserver weiterzuleiten, falls der Hostgator-Server nicht mehr reagiert.

Dies bedeutet, dass Sie ständig ein "heißes" Backup haben, das auf das Schlimmste wartet, und nicht ein "kaltes" Backup, das manuelle Eingriffe und viel Herumwirbeln und Panik erfordert. Dies bedeutet auch, dass Ihre Kunden nie erfahren werden, dass ihre Website vor Ihnen ausgefallen ist, was für alle Beteiligten ärgerlich sein kann.

Sie können Failover-DNS mit einem Anbieter wie DNS Made Easy einrichten . Für jede von Ihnen gehostete Domain würden Sie bis zu fünf Sicherungs-IP-Adressen einrichten, eine für jeden Ihrer Sicherungsserver. Sobald das erledigt ist ...

  1. DNS Made Easy überprüft Ihren primären Server alle zwei bis vier Minuten und leitet den Datenverkehr an die sekundäre IP-Adresse weiter, wenn keine Antwort erkannt wird.

  2. DNS Made Easy überprüft weiterhin den Primärserver. Wenn das Problem auftritt, wird der Datenverkehr zum ersten Server umgeleitet oder - wenn Sie es vorziehen - in der Sicherungskopie aufbewahrt, während Sie den Fehler diagnostizieren und den primären Server reparieren.

Natürlich erhöht diese Lösung Ihre Betriebskosten, die Sie auf irgendeine Weise an die Kunden weitergeben müssen. Wenn Sie sich jedoch in einer Branche befinden, in der Sie aufgrund von Ausfallzeiten aus dem Geschäft geraten, lohnt es sich wahrscheinlich, für einen weitgehend redundanten Server zu zahlen es für dieses eine Mal rettet es die Firma.

Darüber hinaus:

Duplizieren, duplizieren, duplizieren

Je mehr unabhängige Backups Sie haben, desto besser. Ich speichere Remote-Backups auf einer lokalen Festplatte, die auf einer externen Festplatte gespiegelt ist, in Dropbox, einem Git-Repository und einem Remote-FTP-Konto. Gehen Sie kein Risiko ein. Dupliziere so viel du kannst. Wenn Sie von einer manuellen Sicherung wiederherstellen müssen, ist es besser, eine Auswahl von fünf als eine Auswahl von eins zu haben. Paranoia wird unterschätzt.

Üben Sie, die Sicherungen manuell wiederherzustellen

Wenn Sie noch nie versucht haben, eine Ihrer Sicherungen wiederherzustellen, woher wissen Sie, dass sie funktionieren? Es lohnt sich, Notfallübungen durchzuführen, um zu sehen, was passieren würde, wenn Ihre automatisierten Verfahren fehlschlagen.


UPDATE: Einige andere Dienste, die ich kürzlich entdeckt habe und die in Bezug auf die Sicherung der Site, die Wiederherstellung nach einem Katastrophenfall und die Aufrechterhaltung der Betriebszeit erwähnenswert sind:

  • Cloudflare bietet Sicherheits- und Caching-Funktionen, um die Verfügbarkeit von Websites zu gewährleisten, wenn Ihr Server ausfällt. (Sie spiegeln Ihre Site und bedienen sie über ihren global verteilten Cache anstatt direkt über Ihren Server.)
  • Codeguard, der automatisierte Sicherungen und Rollbacks des Website-Codes (nur FTP) bereitstellt.
  • Site Auto Backup bietet automatisierte Sicherungen und Rollbacks von Website-Code, E-Mail-Daten und MySQL-Informationen über cPanel-Sicherungen. Beachten Sie, dass dies von Hostgator ausgeführt wird. Daher ist es nicht unbedingt geeignet, wenn Sie Ihre Site auch mit diesen hosten, aber möglicherweise anderen helfen.

Insbesondere Cloudflare scheint nützlich zu sein, um Ausfallzeiten zu vermeiden und die Reaktionsfähigkeit der Website im Allgemeinen zu verbessern.

Nick
quelle
Ich wusste nicht, dass so etwas wie leicht gemachtes DNS existiert. Das wäre eine großartige Möglichkeit, die Websites im Falle eines Ausfalls des Primärservers schnell umzuleiten.
John Conde
Sie eignen sich auch hervorragend für das allgemeine DNS-Hosting. Ich kaufe Domains bei meinem bevorzugten Registrar, verwende aber DNS Made Easy, um die DNS-Einträge zu hosten. Sie haben mehrere Nameserver auf der ganzen Welt, sodass Websites schnell aufgelöst werden, beim ersten Mal schneller geladen werden und nicht ausfallen, wenn die Nameserver Ihres Registrars ersticken. Es ist auch nicht so teuer.
Nick
@Nick: hier heißt es, dass DNS-Failover (ich denke, der Dienst, den Sie in DNS Made Easy syggest) nicht empfohlen wird: serverfault.com/questions/60553/… Was denkst du?
Marco Demaio
@Marco Sie weisen zu Recht darauf hin, dass es nicht narrensicher ist, aber für ein paar kleine Web-Apps, die ich verwalte, hat es sich für mich hervorragend bewährt.
Nick
1
Übrigens nutzt Stack Exchange auch DNS-Failover. Das primäre Rechenzentrum befindet sich in New Yourk, das sekundäre in Oregon. meta.stackexchange.com/a/231138/238706 meta.stackexchange.com/q/207653/238706
Palec
6

Die Notfallwiederherstellung kann eine große Aufgabe sein, insbesondere wenn mehrere Server, Standorte und Datenbanken betroffen sind. Zwei wichtige Elemente, die bei der von Ihnen ausgewählten Lösung berücksichtigt werden müssen, sind die Wiederherstellungszeitziele (RTOs) und die Wiederherstellungspunktziele (RPOs).

RTO ist im Wesentlichen die Erwartung, wie lange es dauern sollte, bis die Websites wieder verfügbar sind. Wenn Sie eine RTO von ein oder zwei Minuten (oder weniger) haben, sollten Sie eine Lösung in Betracht ziehen, die dem entspricht, was Nick vorgeschlagen hat, und die eine Echtzeitreplikation Ihrer Dateien und Daten in ein sekundäres Rechenzentrum und ein automatisches Failover von DNS beinhaltet, das dies könnte Dies kann mit einem kostenpflichtigen Dienst oder mit Hardware in beiden Rechenzentren (z. B. dem BIG-IP Global Traffic Manager) erfolgenvon F5 Networks. Dies kann teuer werden, hängt jedoch weitgehend von der Beantwortung der Frage "Was sind die Kosten für Ausfallzeiten?" Ab. Wenn Ihre RTO ein paar Stunden oder sogar ein paar Tage dauert, können Sie Disaster Recovery-Verfahren in Betracht ziehen, die möglicherweise mehr manuelle Eingriffe erfordern, z. B. das Einschalten von Servern, das Wechseln von DNS usw. Mühsam, aber auf jeden Fall kostengünstig, wenn Ihre RTO dies zulässt.

RPO ist im Grunde genommen, wie oft Sicherungen durchgeführt werden und wie viele Daten Sie im Katastrophenfall verlieren möchten. Wenn Änderungen an Inhalten und / oder Daten häufig vorkommen, beträgt der RPO möglicherweise einige Minuten oder Stunden und es handelt sich möglicherweise um Echtzeitreplikationen oder Hochfrequenzsicherungen. Wenn sich der Inhalt nicht so oft ändert oder Sie Kunden haben, denen es nicht unbedingt wichtig ist, dass sie einige Tage lang Daten verlieren, können Ihre Backups seltener durchgeführt werden.

Wie ich bereits sagte, stimme ich vielem zu, was Nick zu sagen hatte. Eine andere Alternative, die Sie in Betracht ziehen könnten, ist die Nutzung von Cloud-basierten Diensten von einem der größeren Cloud-basierten Anbieter wie Rackspace oder Amazon. Insbesondere diese beiden Anbieter verfügen über eine massive Infrastruktur, um mit nahezu allen Katastrophen fertig zu werden. Bei einer Cloud-Site oder einem Cloud-Server (von Rackspace verwendete Begriffe) haben Sie den Vorteil, dass Sie auch skalieren können und sich nicht unbedingt um die physische Hardware kümmern müssen.

In Rackspace stehen außerdem benutzerdefinierte Optionen zur Verfügung, mit denen Sie Ihre Infrastruktur mischen können, indem Sie eine Kombination aus Cloud-Servern, physischen Servern und Cloud-Dateien als Teil Ihrer Lösung verwenden. Ein hybrider Ansatz kann je nach Kundenbedürfnissen in Betracht gezogen werden, wenn Sie keinen einheitlichen Ansatz wählen möchten.

Wenn es hilft, gibt es auf der Rackspace-Site auch eine Seite für die Notfallwiederherstellung, die hier zu finden ist . (Auch für die Aufzeichnung, ich bin nicht mit Rackspace verbunden, habe aber ihre Dienste in der Vergangenheit verwendet).

Hoffe das hat geholfen.

EDIT : Dachte, dies könnte helfen, wenn Sie Cloud-Lösungen evaluieren. Der Gartner Magic Quadrant-Bericht für Infrastruktur und als Service und Webhosting gibt Ihnen möglicherweise einen Einblick in andere Lösungsanbieter.

rauben
quelle
Ich habe noch nie daran gedacht, Cloud-Hosting als Backup-Server zu verwenden. Das wäre eine sehr kostengünstige Möglichkeit, ein Backup schnell einsatzbereit zu machen.
John Conde
2

Eine vollständige Replikation des Servers in einer anderen Einrichtung eines anderen Hosting-Unternehmens scheint die naheliegendste Lösung zu sein.

Dateien können mit Tools wie rsync und unisono synchron gehalten werden. SQL-Backups können ebenfalls synchronisiert und dann per Skript in die Slave-Datenbank hochgeladen werden.

ZJR
quelle
1

Stellen Sie sicher, dass Sie die Versionskontrolle für Ihren gesamten Code mit einem Quellcode-Repository (SVN oder GIT) ausführen. Verwenden Sie SVN oder GIT?

Sie können ein Konto (kostenlos oder kostenpflichtig) bei einem Drittanbieter-Repository wie Project Locker einrichten . Wenn Sie während der Arbeit Ihren gesamten Code versionieren, wird im Grunde alles in Ihrem Repository gesichert, das sich an einem dritten Speicherort befindet . Dadurch wird die Wahrscheinlichkeit, dass Sie alle Arbeiten auf einmal verlieren, weiter verringert (fast auf Null).

Sie können Ihre SVN-Commits / Checkouts entweder über die Befehlszeile oder über einen Client wie Versions (für Mac) oder TortoiseSVN (für Windows) ausführen.

Joel Glovier
quelle
Einziges Problem mit einem Quellcode-Repository, es
sichert
Wahr. Sie können jedoch eine Speicherauszugsdatei Ihrer Datenbank erstellen und diese dem Repository hinzufügen. Sie könnten sogar ein Skript schreiben, um dies zu einem automatischen Prozess zu machen. Mit oder ohne Datenbank ist es mindestens ein weiterer Ort, an dem Ihr Code und Ihre Assets gesichert werden können, wobei die Versionskontrolle sowieso den Hauptvorteil hat.
Joel Glovier
Leider verwenden wir keine Versionskontrolle. In der Tat, bevor ich hier anfing, wurde die ganze Arbeit auf der Live-Site erledigt ! Ich konnte eine Entwicklungsumgebung vor Ort einrichten, so dass zumindest diese Praxis offiziell tot ist.
John Conde