web-dev-qa-db-ja.com

cassandra本番サーバー上の通常のドライブからSSDへのデータ移行

本番サーバーの通常のドライブから新しいSSDドライブにデータを移行したいと考えています。ノードを4時間以内に停止せずにそれを行う方法(ヒント付きのハンドオフは4時間)データは数百ギガバイトです。

私が考えていたのは、一度に1つのノードでcassandraを停止し、データをディスクにフラッシュしてから、古いドライブから新しいドライブにデータを転送し、古いディスクをアンマウントしてノードをオンラインに戻すことです。これは正しいアプローチ??もしそうなら、私の主な関心事は、新しいディスクへのデータ移行に平均4時間以上かかりますが、ヒントは失われます。

新しいディスクにデータを移行するためのより良いアプローチはありますか?

1
user6288321

Cassandraの実行中に、HDからSSDにrsyncします。ハードリンクと削除されたsstables/commitlogsに対処するには、-Hフラグと--deleteフラグを使用してください。コミットログがある場合は忘れないでください。同じデバイス上で。データの大部分を転送し、後続のrsyncが比較的迅速に完了するポイントに到達したら、そのcassandraインスタンスをドレインして停止し、最後のrsyncを実行します。 、data_dirパスを変更します。これにより、ノードのダウンタイムが数分に短縮されます。これは、シャーシがHDとSSDの両方に同時に適合すると仮定すると、最終的なrsyncにかかる時間とほぼ同じです。

2
Dave

または、レプリケーションが1より大きい場合は、デッドノードをシミュレートしてから、新しいSSDレイアウトでbootstrapし、クラスターに再参加させます。