Frage So schützen Sie sich gegen Serververlust bei einem Budget


Ich bin ein kleines Unternehmen mit wenig Budget, das Websites und Datenbanken für wohltätige und nicht gewinnorientierte Kunden bereitstellt.

Ich habe ein paar Debian-Linux-VPS-Server und stelle sicher, dass ich tägliche Backups auf einem anderen VPS habe als dem, auf dem der Dienst gehostet wird.

Kürzlich hat mir eines meiner Hosting-Unternehmen gesagt, dass zwei Laufwerke gleichzeitig ausgefallen sind und die Daten für immer verloren sind. Es passiert etwas, sie haben sich entschuldigt, was können sie sonst noch tun? Aber es hat mich dazu gebracht, mich über kosteneffektive Wege zu wundern, wie man einen VPS im Falle eines Hardware- oder anderen Host-bedingten Ausfalls im Prinzip wieder hochfindet.

Momentan müsste ich

  1. Spin up ein neues VPS
  2. Holen Sie sich das Backup des letzten Tages (bestehend aus Datenbanken, web root und website-spezifischer Konfiguration) auf das VPS und konfigurieren Sie es wie das letzte usw.
  3. Aktualisieren Sie DNS und warten Sie, bis es sich verbreitet hat.

Es würde wahrscheinlich einen Tag oder so dauern, dies zu erreichen, wobei die DNS-Verbreitung eine große Unbekannte ist, obwohl ich die TTL ziemlich niedrig eingestellt habe (Stunde oder so).

Einige Hosts stellen Snapshots bereit, die zum Replizieren eines Setups auf ein neues VPS verwendet werden können, aber es gibt immer noch die IP, und dies hilft nicht, wenn das Host-Unternehmen ein Konto sofort abbricht / aussetzt (ich habe darüber gelesen) Verhalten von bestimmten Hosting-Providern und es hat mir Angst gemacht! Ich mache nichts spammy / dodgy und behalte die Sicherheit im Auge, aber ich merke, dass sie buchstäblich die Macht haben, dies zu tun und ich bin ziemlich risikoscheu).

Ist dies zusammen mit der Wahl seriöser Gastgeber das Beste, was ich tun kann, ohne eine unglaublich teure Lösung zu wählen?


22
2018-02-12 10:19


Ursprung


Sehr skeptisch gegenüber einer Behauptung, dass 2 Laufwerke gleichzeitig versagten, besonders bei einem vps - symcbean
Anscheinend versagte man dann wieder, während der neue umbaute. - artfulrobot
Sieh dir das an drbd.linbit.com Dies könnte Ihren Anforderungen entsprechen. - The Unix Janitor
@symcbean: Das Problem besteht darin, dass eine RAID-5-Neuerstellung das Lesen aller Daten aller verbleibenden Festplatten erfordert. Das ist eine ziemlich lange Operation (Stunden, wenn nicht Tage). Ein günstiges RAID-5-System kann ein 9 + 1-Setup mit Desktop-Laufwerken haben. Alle diese 9 Festplatten werden bei einem RAID-Neuaufbau über die Grenzen des Designs hinaus belastet. Ein Versagen ist dann tatsächlich zu erwarten. - MSalters
Nun, eigentlich haben sie Speicherpools und Prozessor + Speicherpools als separate Einheiten, aber die Frage ist nicht, was passiert ist oder nicht bei einem bestimmten Anbieter; es ist allgemeiner als eine spezifische Implementierung. - artfulrobot


Antworten:


Die Auswahl seriöser Hosts und die Durchführung regelmäßiger Backups, die Sie beide bereits durchführen, ist für Sie so gut wie möglich, ohne dass Sie über Business Continuity-Planung, Hochverfügbarkeits-Setups, SLAs usw. nachdenken.

Ich sage den Leuten, dass Sie 99% freie Zeit haben (dh ohne etwas auszugeben) extra auf hohe Verfügbarkeit). Das sind ungefähr dreieinhalb Tage Ausfallzeit pro Jahr. Jedes Extra 9 Auf diese Uptime erhöht sich die Kosten um zwischen drei und zehn Mal.

Wenn die Leute nicht bereit sind, diese Art von Geld zu bezahlen, ist es meiner Meinung nach ein Fehler, sie in die Irre zu führen, dass sie denken, dass sie irgendeinen zusätzlichen Schutz von irgendeiner Bedeutung erhalten können.


28
2018-02-12 10:42



Das ist eine großartige Antwort. Ich habe eine sehr ähnliche Einrichtung und Art von Kunden zu @artfulrobot (wir verwenden sogar die gleiche Hosting-Firma), und seine Frage und Ihre Antwort haben mich erkennen lassen, dass es meine Verantwortung ist, meinen Kunden die Grenzen und Risiken mitzuteilen, in sehr einfachem Englisch, um sicherzustellen, dass sie realistische Erwartungen haben. Die meisten von ihnen sind sehr nicht-teccie, also gibt es eine sehr reale Wahrscheinlichkeit, dass sie denken, dass alles irgendwie magisch funktionieren wird, non-stop und ad infinitum. Ich möchte nicht ihre Erwartungen während / nach einem großen Fehler verwalten, ich muss es vorher tun! - Simon Blackbourn
Ich sage nicht, dass Fehler völlig unkorreliert sind, aber 1 + 1 Redundanz in der Theorie sollte Ihnen geben zwei Extra Neunen für das Doppelte der Kosten. Sie schlagen vor, dass die Kosten für zwei zusätzliche Neunen irgendwo zwischen 9 mal und 100 mal liegen. 2x gegen ~ 30x ist ein großer Unterschied. - MSalters
@MSaliert, dass es wahr ist, gegen bestimmte Arten von Fehlern (Serverfehler). Gegen zB Site-Fehler, tut es nichts, außer die beiden Server befinden sich an verschiedenen Standorten und Das wird sehr komplex in Bezug auf den Netzwerkadministrator. Sie berücksichtigen auch nur die Kapitalkosten und übersehen die erhöhten Betriebskosten. Es ist nicht trivial, zwei Server perfekt synchron zu halten, je nachdem, was sie gerade tun, und die Verwaltungskosten von Load-Balancern. Mein Gefühl ist, dass redundante Server an einem einzigen Standort, die LB-Last teilen, Ihnen weitere neun im Austausch für das 3-4-fache der Kosten geben. - MadHatter
Gute und einfache Art, es zu präsentieren. (Aber ... ich würde nur irgendwo einen Preis hinzufügen, da 3 bis 10 mal "frei" noch frei ist;). Oder meinen Sie natürlich die Gesamtkosten des Dienstes selbst? ) - Olivier Dulac
@OlivierDulac genau so! - MadHatter


Kleine Unternehmen mit kleinen Budgets, insbesondere gemeinnützige Organisationen, werden sich in der Regel keine hohe Verfügbarkeit leisten können. Die Frage ist: Wenn Sie praktisch kein Budget haben, wie es in solchen Situationen häufig der Fall ist, was ist Ihre Wiederherstellungsstrategie?

Ich habe solche Kunden, und das mache ich:

Erstens, für einige von ihnen habe ich eine inkrementelle Sicherung und vollständige Datenbankauszug alle sechs Stunden. Ein Kunde hat bereits CrashPlan Pro benutzt, also habe ich ihn gerade benutzt. Was auch immer Sie tun, Sie müssen sicherstellen, dass Sie ein wiederherstellbares Backup haben.

Ich habe ein einfaches ansprechbares Playbook, das ich in ungefähr einer Stunde zusammengestellt habe (ohne zuvor mit ansible gearbeitet zu haben), das nginx, php-fpm und MariaDB installiert und sie darauf vorbereitet, eine Website oder Websites zu hosten. Das Ausführen dieses Playbooks führt zu einem Server (oder zu Servern), der bereit ist, eine typische Webanwendung zu hosten, und ich kann einfach den virtuellen Host, die Anwendungsdateien und die Datenbank von nginx wiederherstellen.

Das Ergebnis davon ist, dass ich eine solche Website in wenigen Minuten aus dem Backup holen kann, im Gegensatz zum manuellen Weg, der eine Stunde oder länger dauern kann.


8
2018-02-12 10:56



Hey, das klingt genau richtig. Ich werde das untersuchen. Vielen Dank. - artfulrobot
Hochverfügbarkeit ist auch für kleine Kunden von guten Anbietern leicht verfügbar. Sie erhalten Skaleneffekte. - JamesRyan
@ JamesRyan Ja, aber Sie bekommen keine Wirtschaft von ... Wirtschaft. Sagen Sie mir, ob es sinnvoll ist, zwei Amazon-Instanzen und einen Elastic Load Balancer für eine Website mit 300 Zugriffen pro Monat auszuführen. - Michael Hampton♦
@MichaelHampton das ist nicht einmal im Entferntesten was ich vorschlug. Ein Unternehmen, das VPS für hunderte von Clients hostet, kann diese auf redundante Hardware verteilen, anstatt einfach eine Menge von ihnen auf einen einzigen physischen Server zu legen und ihnen die Daumen zu drücken. - JamesRyan


Die Komplexität der Implementierung hängt vom Anwendungsstapel ab, aber idealerweise sollten Sie einen "Hot Standby" (bei einem anderen Anbieter) einrichten, wobei die Daten in Echtzeit (oder so nahe wie möglich in Echtzeit) repliziert werden.

Der Business Case für 2 "Live" -Server ist so einfach, wie den potenziellen Umsatzverlust während einer Periode "Wiederherstellung von Bildern" mit den Kosten eines anderen Servers zu vergleichen.


4
2018-02-12 10:28



Vielen Dank. Ich benutze einen LAMP-Stack. Ich denke, Echtzeit wäre etwas wie MySQL-Replikation, obwohl das ziemlich schwierig zu verwalten sein kann. Und es verdoppelt die Server, die ich verwalten muss. Vielleicht würde es Sinn machen, eine Low-Spec-Box zu haben, die eine Live-Kopie aller anderen Server hat, also war es nur die DNS-Verbreitung. Dann könnte ich das wieder zu einem neuen VPS klonen und den DNS ändern (hmmm.). - artfulrobot
Die MySQL-Replikation ist normalerweise recht einfach einzurichten und zu konfigurieren, abgesehen von der Zeit, die für die Übertragung des ursprünglichen Datasets aufgewendet wurde. Wie für DNS, respektieren die meisten Resolver niedrige TTLs in diesen Tagen, und das Einstellen einer TTL eines Datensatzes so niedrig wie 60 Sekunden funktioniert normalerweise gut. - Mark R.
Die MySQL-Replikation ist komplexer, wenn Sie neue zusätzliche Datenbanken hinzufügen müssen, und ich glaube, es ist immer noch schwierig, einen Server als Slave für mehr als einen Master zu verwenden (mehrere dbs auf einem Standby-Server zu replizieren). Natürlich müssen Sie auch den Zugriff zwischen Servern sichern, z. Stunnel, das ist also eine PKI, die man pflegen kann, es sei denn, man hat ein privates LAN, aber das ist ausgeschlossen, weil dies mit einer separaten Hosting-Firma geschehen muss. - artfulrobot
Es gibt immer replicate-do-db und SSH-Tunnel mit Schlüsseln. - Mark R.
Verwendet, um Standard-SSH-Tunnel zu betreiben, aber es war nicht zuverlässig. Stunnel ist brillant, wenn du es erst einmal in Gang gebracht hast. - artfulrobot


Denken Sie daran, dass die Betriebszeit nicht mit der Datenintegrität identisch ist. Sie können eine Verfügbarkeit von 99,99% haben und haben alle Daten zweimal im Jahr verloren, solange der Server "schnell genug" neu gestartet wurde. Die meisten VPS-Anbieter garantieren, dass Ihr Server läuft, NICHT dass Ihre Daten sicher sind. Ihre Daten sind Ihr Problem :(.

Was Sie suchen, ist etwas, das Ihre Backups auf einem separaten Server und (IMHO) nicht einmal im selben Anbieter speichern wird. Abhängig von der Datengröße, über die Sie sprechen, könnte eine tragbare Festplatte als dritte Verteidigungslinie für die Offline-Verteidigung verwendet werden. Sichern Sie Ihre Daten wie gewohnt und kopieren Sie diese dann (oder nur die Änderungen, wenn möglich) regelmäßig auf die tragbare Festplatte oder sogar auf einen lokalen Computer. Es gibt auch relativ günstige Optionen wie Backblaze für Backup-Lösungen, aber der Preis hängt von der Menge der Daten ab, über die Sie sprechen. Wenn Sie inkrementelle Backups durchführen können, ist dies viel billiger als vollständige Backups, aber inkrementelle Backups können sehr schwierig sein, je nachdem, wo die Daten gespeichert sind (flache Dateien = einfach, Datenbank = nicht so einfach).


2
2018-02-12 22:42



Ja, ich mache das :-) Und ja, Hosting-Unternehmen kümmern sich nicht um Daten, ich habe auch schon einmal mit der Beschädigung der Festplatte zu tun gehabt! - artfulrobot


Die Antwort hängt völlig von Ihrer Architektur und Ihren Anforderungen ab. Vor einiger Zeit scheiterten 3 Discs auf einem Server von mir und nahmen 20+ VMs herunter, als ein Raid 6 fehlschlug.

Ich habe darüber geschrieben

https://www.linkedin.com/pulse/20140827173324-2064263-how-i-nearly-lost-my-business-to-3-hard-discs

Aber: Da dies kritisch ist, hatten wir Backups - täglich für nicht wichtige Dinge, 15 Minuten für Datenbanken und E-Mails. Verdammt, jetzt habe ich einen Server hinzugefügt, der alle 30 Sekunden auf einen anderen Rechner repliziert wird.

Sie sagen nichts über den Stack, nichts über jedes Budget - daher ist der beste und einzige Rat hier, zu einem Cloud-Anbieter zu gehen und seine Backup-Mechanismen zu verwenden. Aber fang an zu definieren, was du wirklich brauchst.

Außerdem sollte das Budget für diese Sicherung in Ihrer Preisgestaltung enthalten sein. Es muss bezahlt werden. Und welche Infrastruktur Sie auch brauchen ... Sie brauchen sie. Es ist dann nicht "lächerlich teuer".


0
2018-02-12 10:44



TomTom: aoe + openfiler und ein paar Boxen und du kannst ein sehr hoch verfügbares micro-san bauen - symcbean