6

ノードごとに単一のトークン、合計22ノード、ノードごとの平均負荷が500GbのCassandraクラスターがあります。メインキースペースとSimpleSnitch用のSimpleStrategyがあります。

すべてのデータを新しいデータセンターに移行し、ダウンタイムなしで古いデータセンターをシャットダウンする必要があります。新しいクラスターには28個のノードがあります。vnodeが必要です。

私は次のプロセスを考えています:

  1. 古いクラスターをvnodeに移行します
  2. vnodeを使用して新しいクラスターをセットアップします
  3. 新しいクラスターから古いクラスターにノードを追加し、すべてのバランスがとれるまで待ちます
  4. クライアントを新しいクラスターに切り替えます
  5. 古いクラスターからノードを1つずつ廃止します

しかし、技術的な詳細はたくさんあります。まず、vnodeの移行後に古いクラスターをシャッフルする必要がありますか?次に、NetworkTopologyStrategyとGossipingPropertyFileSnitchに切り替える最良の方法は何ですか?新しいクラスターには別々の電源/ネットワークスイッチを備えた2つの異なるラックがあるため、NetworkTopologyStrategyに切り替えたいと思います。

4

2 に答える 2

5

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の間)。重要な場合は、古いノードを廃止する前に修復を実行して、損失がないことを保証するか、高い整合性レベルで書き込むことができます。

于 2013-03-12T15:40:59.820 に答える
-1

vnodeを使用して新しいクラスターに移行しようとしている場合は、Partitionerを変更する必要はありません。ドキュメントには、異なるパーティショナー間でデータを移行することはお勧めできません。

于 2013-07-22T00:30:44.750 に答える