vnodeの移行後に古いクラスターをシャッフルする必要がありますか?
あなたはする必要はありません。ノードごとに1つのトークンから256(デフォルト)に移行すると、各ノードはその範囲を256の隣接する同じサイズの範囲に分割します。これは、データが存在する場所には影響しません。ただし、新しいDCの新しいノードでブートストラップすると、プロセス全体でバランスが保たれることを意味します。
NetworkTopologyStrategyとGossipingPropertyFileSnitchに切り替える最良の方法は何ですか?
難しいのは、データをクラスター内で移動する必要があるため、レプリケーション戦略の切り替えは一般に安全ではないということです。NetworkToplogyStrategy(NTS)は、ノードが異なるラックにあることを通知すると、データを異なるノードに配置します。このため、新しいノードを追加する前にNTSに移動する必要があります。
古いクラスターをvnodeにアップグレードした後(上記のステップ1)、これを行う方法は次のとおりです。
1a。プロパティファイルで、既存のすべてのノードをDC0にあるものとしてリストします。新しいノードをDC1とその正しいラックにあるものとしてリストします。
1b。オプションDC0:3(または現在のレプリケーション係数が何であれ)およびDC1:0を使用して、レプリケーション戦略をNTSに変更します。
次に、新しいノードを追加するには、次のプロセスに従います:http ://www.datastax.com/docs/1.2/operations/add_replace_nodes#adding-a-data-center-to-a-cluster 。トークンの数はデフォルトで1になるため、忘れずに256に設定してください。
手順5では、DC0のレプリケーション係数を0に設定する必要があります。つまり、レプリケーションオプションをDC0:0、DC1:3に変更します。現在、これらのノードは使用されていないため、廃止措置によってデータがストリーミングされることはありませんが、電源をオフにしてリングから削除するのではなく、ノードを使用する必要があります。
1つのリスクは、古いノードに対して低い整合性レベルで行われた書き込みが失われる可能性があることです。これを防ぐために、新しいDCに切り替えた後、CL.LOCAL_QUORUMに書き込むことができます。書き込みが失われる可能性のある小さなウィンドウがまだあります(ステップ3と4の間)。重要な場合は、古いノードを廃止する前に修復を実行して、損失がないことを保証するか、高い整合性レベルで書き込むことができます。