2016-05-04 16 views
0

Wir möchten unsere Daten von regulären Laufwerken auf dem Produktionsserver auf neue SSD-Laufwerke migrieren. Wie können wir das machen, ohne den Knoten nicht länger als 4 Stunden herunterzufahren (die angedeutete Übergabe beträgt 4 Stunden), liegen unsere Daten in einigen hundert Gigabytes.cassandra Datenmigration von regulärem Laufwerk zu SSD auf Produktionsserver

was ich dachte ist stoppen Cassandra auf einem Knoten zu einer Zeit Daten auf Festplatten zu leeren und dann Daten von alten Laufwerken auf neue Laufwerke zu übertragen und alte Festplatte zu demontieren und Knoten online zurückbringen. Ist das ein richtiger Ansatz? Wenn ja, was ist meine Hauptsorge ist, dauert die Datenmigration auf neue Festplatte mehr als 4 Stunden in der Mitte, während ich Hinweise verlieren werde.

Gibt es einen besseren Ansatz für die Migration von Daten auf neue Festplatten?

Antwort

0

Fügen Sie die Festplatte hinzu.

Verwenden Sie rsync -avz --delete /old/data/dir /new/data/dir, um die STABLE von einem (rotierenden) Laufwerk auf das andere (SSD) Laufwerk zu kopieren. Sie können dies ausführen, während Cassandra ausgeführt wird - kein anderes Risiko als eine erhöhte Latenz aufgrund von IO-Konflikten. Sie können die Erhöhung der Latenz mithilfe von nice und ionice steuern.

Sobald Sie rsync ausgeführt haben, haben Sie eine Vorstellung von der Obergrenze des Migrationsprozesses. Sie haben auch einen ersten Schnappschuss. Führen Sie es erneut aus, und wiederholen Sie es ein zweites Mal - es wird wahrscheinlich wesentlich schneller - es bleiben Dateien, die nicht geändert wurden, löschen Sie Dateien, die gelöscht wurden, und kopieren Sie neue Dateien. Wenn dies schneller als 4 Stunden ist (und es wird wahrscheinlich sein), können Sie fortfahren, nodetool flush und nodetool drain ausführen, beenden Sie Cassandra, und führen Sie Rsync ein drittes Mal. Sobald rsync abgeschlossen ist, ändern Sie den Pfad zum Datendateiverzeichnis in der yaml und starten Sie cassandra - Hinweise werden geliefert und Sie können loslegen.

Alternativ können Sie genau dasselbe tun, und wenn es länger dauert als das 4-Stunden-Hinweisfenster, folgen Sie ihm mit nodetool repair, um alle Schreibvorgänge zu übernehmen, die Sie verpasst haben, als die Hinweise abgelaufen sind.