Backups über verteilte Dateisysteme

Backups über verteilte Dateisysteme

Ich hoffe, ich kann meine Frage möglichst präzise formulieren.

Ich suche nach einer Möglichkeit, so schnell und häufig wie möglich Backups für meine VM-Server zu erstellen, da die Daten, die sie verarbeiten/produzieren, wertvoll sind. Ich habe einen KVM-Host und mindestens 2 Gäste: einen Webserver (Apache/PHP) und einen Datenbankserver (MySQL/Solr). Der Host ist mir egal, die Gäste sind mir wichtiger. Ich möchte nicht, dass Sie sich für dieses Thema eingehend mit KVM oder Virtualisierung befassen. Dieser Thread sollte auf alle VM-basierten Umgebungen und auch auf alle anderen Umgebungen anwendbar sein. Das VM-Szenario passt gut, weil es kniffliger ist und eine der komplexesten Situationen darstellt, die ich mir vorstellen kann. Zumindest brauche ich das auf dieser Grundlage.

Aktuell verfüge ich über In-VM Backups und LVM-basierte Snapshots, die ich 1-2 mal täglich erstelle. Bei einem Hardwaredefekt (was ich vor Kurzem hatte) fehlen mir im besten Fall eine ganze Menge Daten.

Eine Möglichkeit könnte darin bestehen, jede Anwendung/jeden Dienst herunterzufahren und die beste verfügbare Backup-Strategie anzuwenden. Dies sollte in jedem Einzelfall berücksichtigt werden.

Ein weiterer interessanter Weg scheint die Verwendung eines verteilten Dateisystems zu sein. Die Idee ist, ein Dateisystem zu haben, das sich ähnlich wie das Binärprotokoll von MySQL verhält. Oder allgemeiner: Es erfasst alle Schreibvorgänge auf dem Dateisystem und repliziert sie asynchron auf eine andere Maschine. Je nach Netzwerk und Menge der geschriebenen Daten kann dies zu einer Latenz von Sekunden oder Minuten führen und es werden natürlich alle im Cache zurückgehaltenen Aktionen übersehen. Ich habe also eine VM, die auf einem verteilten Dateisystem sitzt, das auf dem VM-Host installiert ist. Jeder Schreibvorgang wird dann asynchron auf einem (sagen wir) Backup-Server ausgeführt. Wenn es jetzt zu einem Hardwarefehler kommt, kann ich (theoretisch) auf den Backup-Server als neuen Master umschalten oder die Dateien einfach auf den wiederhergestellten Master-Server zurückkopieren, falls Ausfallzeiten akzeptabler sind als Datenverlust. Der Effekt sollte sein, dass sich die virtuelle Maschine so verhält, als wäre sie unmittelbar vor Sekunden oder Minuten ausgeschaltet worden. Aber nicht Stunden. Ich strebe keine Master-Master-Replikation auf Dateisystemebene an, da dies von den meisten Anwendungen, insbesondere Datenbankservern wie MySQL, nicht unterstützt wird!

Meine Frage ist also: Gibt es jemanden, der bereits Erfahrungen mit solchen Konfigurationen gemacht hat oder Erkenntnisse hat, die sowohl positiv als auch negativ für diesen Versuch der Datensicherung sind? Ich habe keine tieferen Erfahrungen mit diesen Dateisystemen. Insbesondere nicht hinsichtlich Zuverlässigkeit und Leistung.

Antwort1

Ein verteiltes Dateisystem ist kein Backup, sondern Redundanz. Es sichert auch Ihre versehentlichen Löschungen.

Das gesagt,DRBD.

Antwort2

Die beste Lösung für Ihre Situation ist Cluster-Speicher, bei dem Daten redundant auf Blockebene gespeichert werden. Es gibt verschiedene Möglichkeiten, dies umzusetzen, aber das Beste, was ich mir vorstellen kann (zumindest für Ihre Verfügbarkeitsspezifikationen), wäre ein Open-Stack-Cluster. OpenStack verteilt sowohl Speicher als auch Berechnung, sodass im Falle eines Hardwarefehlers sowohl Ausführung als auch Speicherung redundant und ununterbrochen sind. Mit anderen Worten: Der beste Weg, Datenintegrität und Verfügbarkeit aufrechtzuerhalten, besteht darin, sicherzustellen, dass die Anwendung gar nicht erst abstürzt. Wie yoonix anmerkte, schützt Sie dies nicht vor Benutzer-/Logikfehlern, aber OpenStack enthält auch Tools für Disk-Imaging/Backup – das Laden eines Images und Booten dauert Minuten, wenn nicht Sekunden. Amazon Web Services und Rackspace sind Beispiele für OpenStack-Bereitstellungen. http://www.openstack.org/

Ein guter Ausgangspunkt für OpenStack ist DevStack (im Wesentlichen ein Bereitstellungsskript mit verschiedenen Bereitstellungsmodi zum Testen). http://devstack.org/

Die Schwäche dieser Implementierung ist der Mangel an Hardware. Dieses System ist nicht gerade ideal für kleine Büros mit nur zwei physischen Servern oder Ähnlichem (funktioniert jedoch hervorragend mit Blade-Systemen).

Antwort3

Haben Sie darüber nachgedacht, auf eine VMware-Plattform zu migrieren und hierfür deren Lösungen zu verwenden?

„Fehlertoleranz“ (mit vLockstep) hält eine zweite „Standby“-Kopie jeder VM mit allen Änderungen an der primären Version der VM auf dem neuesten Stand. Wenn mit der primären Version etwas passiert, wird das System sofort auf die sekundäre VM umgeschaltet. (kaum bis keine Ausfallzeit oder Auswirkungen)

„Hohe Verfügbarkeit“ hält eine Standby-VM vorbereitet, die Standby-VM bleibt jedoch ausgeschaltet. Falls die primäre VM ausfällt, schaltet sich das System automatisch auf der Standby-VM ein. (mehrere Minuten Ausfallzeit)

Dieses Zeug funktioniert großartig und ist sehr zuverlässig. Aber ... es ist teuer. Wenn Sie nicht über das Budget für die Lizenzen verfügen, die für den Einsatz dieser Technologien erforderlich sind, hilft Ihnen dieser Vorschlag überhaupt nicht. Hoffentlich gibt er Ihnen zumindest einige weitere Ideen, welche Tools es gibt.

verwandte Informationen