2017-04-06 6 views
0

node1、node2、node3というノードを持つ3ノードクラスタがあるとしましょう。 ある日、クラスタ全体のスナップショットを作成し、スナップショットテーブルを各ノードから外部バックアップサーバにコピーしました。クラスタ内のノード数を変更した後でCassandra shapshotを復元する方法

時間が経過してクラスタが成長しました.3つのノードの代わりに5つのノードがあります。それに加えて、元のノードの1つはもはや存在しないので、クラスタは次のようになります。node1、node3、node4、node5、node6。

変更されたクラスタにスナップショットデータを正しく復元する方法はありますか? 上記のケースでそれを行う唯一の方法はsstableloaderを使うことです

trueの場合、Cassandraがインストールされていないバックアップサーバにスナップショットを提供する復元プロセスを開始するにはどうすればよいですか?そこにsstableloaderをインストールする必要がありますか、リモートで起動できますか?

どのくらい速くsstableloaderがデータを復元しますか?

答えて

0

あなたの最善の策は、次の時に読み取るために、次のようになります。

http://www.datastax.com/dev/blog/using-the-cassandra-bulk-loader-updated

要するにsstableローダーは、あなたがデータをプッシュしているし、クラスタのトポロジに気付くであろう。したがって、データは最終的に正しいノード上に置かれます。

何らかの理由で、ノードにスレッドを取得する方が適切な場合は、正しいフォルダに置いてからreloadやrestartを実行してもいいですが、それ以降はクリーンアップが可能ですが、sstableローダーと比べるとエレガントではありません。

+0

前述のケースでは、スナップショットが作成された時点からノードの数が変更されました。 ノード2のバックアップデータをnode5に配置しても問題ありませんか? nodetoolのクリーンアップにより、その後に必要なノード間でデータが拡散されますか? –

+0

クリーンアップを適用しても展開されない場合、クリーンアップはこのノード以外のすべてをドロップするだけです。理論的には、すべてのノードのバックアップを作成してからクリーンアップを実行する必要があります。あなたのケースでは、私はsstableローダーと行くだろう、それはクラスタ内の正しいノードにバックアップされたデータをストリーミングされます。あなたはコピークリーンアップコンボでこれを行うことができますが、それはただの時間/資源集中です。 –

+0

スナップショットをデータフォルダに戻す方法を検討したいと思います。ノードまたはレプリケーションの数が時間の経過と共に変更されたクラスタでは可能です。 –

関連する問題