Da 10 TB gesichert werden müssen, wird dies etwas kompliziert.
Replikate sind kein Ersatz für ordnungsgemäße Sicherungen
Verspätete Replikatsatzmitglieder bieten zwar eine relativ einfache Möglichkeit, Ihnen bei versehentlichen Vorgängen zu helfen, es gibt jedoch keinen Ersatz für ordnungsgemäße Sicherungen, so wie RAID keinen Ersatz für dateisystembasierte Sicherungen darstellt.
Empfehlungen
Das hängt stark davon ab, wie Ihr Setup aussieht.
SAN-Snapshots
Bei 10 TB haben Sie vermutlich eine Art SAN angeschlossen. Der einfachste Weg, um MongoDB in diesen Umgebungen zu sichern, besteht darin, sicherzustellen, dass Sie das Journaling sowohl im Dateisystem als auch in MongoDB aktiviert haben, und einfach einen Snapshot des SAN-Volumes eines der Secondaries zu erstellen, wahrscheinlich einen versteckten, um sicherzustellen, dass Ihre Vorgänge nicht ausgeführt werden nicht unterbrochen werden. Dies dauert in der Regel nur Sekunden, aber stellen Sie sicher, dass Ihr Replikations-Oplog-Fenster ausreicht. Andernfalls müssen Sie möglicherweise die Sekundärdaten erneut synchronisieren.
Verwenden Sie keinen Mongodump
Ich muss mit RolandoMySQLDBA über die Verwendung von Mongodump nicht einverstanden sein. Zunächst werden dem Server Sperren auferlegt. Obwohl sie relativ schnell aufgehoben werden, kann sich die Anzahl der Sperren summieren und Ihre Vorgänge beeinträchtigen, es sei denn, sie werden auf einem verborgenen Knoten ausgeführt oder es gibt keine Lesevorlieben, die auf die sekundären Knoten treffen. Außerdem ist es nicht gerade schnell. Ich würde davon ausgehen, dass es stundenlang läuft und höchstwahrscheinlich länger dauert als Ihr Backup-Fenster. Randnotiz: Immer Mongodump mit der --oplog
Option ausführen. Denken Sie auch daran, dass mongodump keine Indizes sichert, sondern die Operationen zum Erstellen von Indizes. Diese Indizes müssen während einer Wiederherstellung neu erstellt werden. Dies kann die dafür erforderliche Zeit erheblich verlängern. Wenn Sie eine Datenbank wiederherstellen müssen, möchten Sie sie meiner Erfahrung nach so schnell wie möglich haben. Ein weiterer Grund, warum Mongodump nicht zum Sichern von 10 TB geeignet ist.
Hinweise zu LVM-Snapshots
Sie können einen LVM-Snapshot auf einer laufenden Mongod-Instanz erstellen, vorausgesetzt, Sie haben das Journaling in Mongod aktiviert (und meiner Erfahrung nach tut es nicht weh, es auch auf der FS-Ebene zu aktivieren). LVM-Snapshots haben jedoch einige Auswirkungen. Erstens müssen Sie offensichtlich über genügend Speicherplatz verfügen, um die Änderungen während der Sicherungsvorgänge durchführen zu können. Lassen Sie mich das klarstellen.
Angenommen, Sie haben eine stündliche Änderungsrate von 500 GB. Und dass Sie möchten, dass Ihr Backup gelöscht wird, bevor es in einen Speicher hochgeladen wird. Selbst bei Verwendung von parallelem bzip2 würde die Komprimierung von 10 TB einige Stunden dauern, einfach weil die Tatsache, dass der Massenspeicher-Durchsatz am wahrscheinlichsten ist, zu Ihrem begrenzenden Faktor wird. Nehmen wir an, es würde 2 Stunden dauern, um die Daten auf 2 TB zu komprimieren. Inzwischen benötigen wir also 2 TB + 2 * 500 GB freien Speicherplatz, 1 TB für den LVM-Snapshot. Dies würde dazu führen, dass Ihr Dateisystem mindestens um mehr als das erforderliche Maß bereitgestellt werden muss30%. Wenn Sie eine angemessene Sicherheitsmarge wünschen, kann sich diese leicht auf 60-70% erhöhen (20% für einen Auslastungsfaktor von 0,8 für das ursprüngliche Dateisystem, das gleiche für die Größe des Snapshots plus den für das betreffipped Backup selbst benötigten Speicherplatz) ). In den meisten Produktionsumgebungen wäre dies inakzeptabel, da die Überbereitstellung statisch wäre (Sie möchten nicht, dass ein Sicherungsskript dynamisch mit Ihrem LVM zusammenarbeitet, oder?).
MMS-Sicherung
Während MMS-Backup einige großartige Funktionen bietet (kontinuierliches Backup, einfache Wiederherstellung zu einem bestimmten Zeitpunkt), weist es einen schwerwiegenden Nachteil auf: Der Preis für große Bereitstellungen kann leicht bei Tausenden liegen. Bei einer angenommenen stündlichen Änderungsrate von 500 GB für diese 10 TB wäre dies eine mittlere sechsstellige Summe für Cloud-Backups . Monatlich.
Mein Vorschlag wäre, ein Unternehmensabonnement für Ihre Server abzuschließen, um eine lokale MMS-Instanz, einschließlich Sicherung, zu erhalten.
Zusammenfassung
Hier sind die Optionen, die ich in absteigender Reihenfolge auswählen würde.
- SAN-Snapshots: einfach zu implementieren, relativ günstig
- Enterprise-Abonnement: Beste Funktionen. Installiere es, konfiguriere es, vergiss es, es ist da, wenn du es brauchst
- LVM-Snapshots: Einfach zu implementieren, aber die Kosten für die erforderliche Über-Bereitstellung können sich mit der Zeit summieren.