2012-10-11 9 views
20

Es wäre interessant, wenn jemand seine besten "Hot-Backup" -Strategien für ElasticSearch teilen könnte.Elasticsearch Hot-Backup-Strategien

Auch, zögern Sie nicht, Tools und Bibliotheken für dieses Problem zu teilen und können helfen.

Aktualisiert: Danke @javanna für Ihre Antwort, dann ist es ganz vollständig und bietet eine gute Richtung für weitere Aktionen.

Ich habe auch eine kleine Recherche und fand einige Artikel/Diskussionen, die helfen können, wenn jemand Interesse hat.

Update: Elasticsearch 1.0 ein "offizielle" Backup-Lösung - Snapshot/Restore API und das ist der einzige Weg, um es jetzt. ElasticSearch wird Master-Shards identifizieren und auf Konsistenz achten. Die Sicherung wird inkrementell durchgeführt, so dass Sie es sehr schnell und beliebig oft ausführen können.

Antwort

8

Replikate sind eine Art von Sicherungskopie, und elasticsearch weist niemals einen Knoten auf demselben Knoten zu, auf dem sich der ursprüngliche primäre Shard befindet. Aber dann besteht immer noch das Risiko, Daten zu verlieren, je nachdem wie viele Shards, Replikate und Knoten Sie in Ihrem Cluster haben.

Ich würde das Modul Gateway betrachten, über das Sie den Index und die Cluster-Metadaten speichern können. Es gibt verschiedene Arten von Gateways. Ich würde zum Beispiel die Shared FS betrachten, die es ermöglicht, den Index und die Metadaten in ein Dateisystem zu kopieren, das zwischen all Ihren Knoten geteilt wird. Sie können einen Snapshot auch manuell über die Gateway Snapshot API starten.

Sie können auch eine Kopie des Datenverzeichnisses (auf jedem Knoten) erstellen, nachdem Sie die index.translog.disable_flush index setting gelöscht haben. Auf diese Weise stellen Sie sicher, dass während des Kopiervorgangs kein Lucene-Commit ausgegeben wird. Nachdem Sie die Kopie erstellt haben, müssen Sie die Spülung erneut aktivieren.

UPDATE

die Gateway-Typen Alle, mit Ausnahme für die lokale ein veraltet und wird in einer zukünftigen Version entfernt werden. Elasticsearch 1.0 wird mit einer besseren Backup-Lösung veröffentlicht.

+0

Danke, es sieht wie ein richtiger Weg aus! – gakhov

+1

'Das S3-Gateway ist veraltet und wird in einer zukünftigen Version entfernt. Bitte verwenden Sie stattdessen das lokale Gateway. http://www.elasticsearch.org/guide/reference/modules/gateway/s3/ – mikemaccana

+1

@nailer Richtig, ich habe meine Antwort aktualisiert. Vielen Dank – javanna

-4

Das ist also nicht so, wie ElasticSearch funktioniert, aber ich würde zwei separate ElasticSearch-Instanzen in Betracht ziehen, die sich nicht bewusst sind. In Ihrem App-Code wird jeder Befehl an beide Instanzen gesendet. Wenn ein Befehl für 1 Instanz fehlschlägt, wiederholen Sie diesen Befehl 1 Minute später und versuchen Sie es erneut. Jetzt können Sie eine der Instanzen als Hot-Backup beibehalten oder sie sogar verwenden, um die Leistung zu verbessern, indem Sie die Abfragen zwischen den beiden Instanzen verteilen.

Der Grund, warum ich nicht gerne Replikate in ElasticSearch einrichten ist es ist ein Schmerz zu konfigurieren, welcher Knoten welches Replikat erhält, und wenn Sie die Organisation in der Zukunft neu anordnen möchten, müssen Sie im Grunde gehen durch eine Menge Reifen. ElasticSearch macht hinter den Kulissen eine Menge Balance und versucht alles für Sie zu tun. Was kann gut sein ..wenn du mächtige Server hast und egal was was bekommt .. aber sonst kann es ein Schmerz sein.

Verwandte Themen