2016-05-04 10 views
0

プロダクションサーバの通常のドライブから新しいSSDドライブにデータを移行する必要があります。 4時間以内にノードを落とすことなく、それをどうやってやり遂げることができますか(4分のハンドオフを示唆)、私たちのデータは数百ギガバイトです。cassandraデータを通常のドライブからプロダクションサーバのSSDに移動

データをディスクにフラッシュして古いドライブから新しいドライブにデータを転送し、古いディスクを取り外してノードをオンラインに戻すときに、ノードごとに1つのノードでcassandraを停止することが考えられました。これは正しいアプローチですか?もしそうなら、私の大きな懸念は ですが、新しいディスクへのデータ移行には4時間以上かかることがありますが、ヒントは失われます。

データを新しいディスクに移行する方法はありますか?

答えて

0

ディスクを追加します。

rsync -avz --delete /old/data/dir /new/data/dirを使用して、1つの(回転する)ドライブからもう1つの(ssd)ドライブにステーブルをコピーします。これは、cassandraの実行中に実行することができます.IOの競合による遅延の増加以外のリスクはありません。 niceioniceを使用して、遅延の増加を制御できます。

rsyncを実行すると、移行プロセスの上限がわかります。また、最初のスナップショットもあります。もう一度やり直してください。もう一度やり直してください。これはかなり速くなるでしょう。変更されていないファイルを残し、削除されたファイルを削除し、新しいファイルをすべてコピーします。これが4時間より速い場合は、nodetool flushnodetool drainを実行し、cassandraを停止し、rsyncを3回実行します。 rsyncが完了したら、yamlのデータファイルディレクトリへのパスを変更し、start cassandra - ヒントが届き、あなたはうまく行きます。

また、同じことをすることもできますが、4時間のヒントウィンドウよりも時間がかかる場合は、nodetool repairに従って、ヒントが失効したときに逃した書き込みを選択します。

関連する問題