1

既存のクラスター用に新しいデータセンターをプロビジョニングしています。VPN 接続がかなり不安定なためnodetool rebuild、新しい DC のブートストラップを作成できません。興味深いことに、新しい DC と同じ場所に完全な新しいデータベース スナップショット/バックアップがあります (VPN の外部に転送されます)。現在、次のアプローチを検討しています。

  1. クライアントが古い DC を使用していることを確認してください。
  2. 新しい DC で新しいノードをプロビジョニングします。
  3. ALTER新しい DC でレプリカを有効にするためのキースペース。これにより、古い DC から新しい DC へのすべての書き込みの複製が開始されます。
  4. 上記gc_grace_secondsの操作 3) の後sstableloader、バックアップを新しいノードにストリーミングするために使用します。
  5. 安全上の理由から、完全な修理を行ってください。

これは機能しますか?

4

2 に答える 2

1

はい、アプローチはうまくいくはずです。私は、Cassandra コミュニティ内の 2 人の知識のある人に確認しました。ただし、次の 2 つの点に注意してください。

  • ミューテーションが新しいデータセンターに書き込まれ始めた後に、スナップショットが取得されていること。
  • バックアップが作成されてから gc_grace_seconds 前に、バックアップを完全にインポートする必要があります。そうしないと、ゾンビ データがポップアップする危険があります。
于 2016-04-21T14:06:56.853 に答える
1

私たちのチームも同様の状況に直面しました。Amazon EC2 で C* を実行しています。

そのため、最初に既存のノードのスナップショットを準備し、それらを使用して他のデータセンター用に作成しました (大量のデータ転送を避けるため)。

私たちが従った手順:

  1. すべての DC1 サーバーのレプリケーション戦略を simple-strategy から networkTopologyStrategy {DC1:x, DC2:y} に変更します
    1. cassandra.yaml を変更
      • endpoint_snitch: GossipingPropertyFileSnitch
      • DC2 ノード IP をシード リストに追加する
      • 他は変更不要
    2. cassandra-rackdc.properties を変更します
      • DC=DC1
      • ラック=RAC1
    3. ノードを 1 つずつ再起動します。
      • 最初にシード ノードを再起動します
    4. キースペースを変更します。 ALTER KEYSPACE keyspace_name WITH REPLICATION = { 'class' : 'NetworkTopologyStrategy', 'DC1' : x, 'DC2':y };
      • DC1 のすべてのキースペースに対して行う
    5. 修理する必要はありません。
    6. クエリでシステムが安定しているかどうかを確認する
  2. DC2 サーバーを新しいデータ センターとして DC1 データ センターに追加する
    • https://docs.datastax.com/en/cassandra/2.1/cassandra/operations/ops_add_dc_to_cluster_t.html
      1. DC2 データベースでは、cassandra.yaml > auto_bootstrap: false
      2. シード、endpoint_snitch、クラスター名を修正
        • Node1 DC1 IP、Node2 DC2 IP をシードとして。
        • 推奨 endpoint_snitch : GossipingPropertyFileSnitch
        • クラスター名、DC1 と同じ: test-cluster
      3. gossiping-property-file-snith を修正: cassandra-rackdc.properties
        • DC=DC2
        • ラック=RAC1
      4. DC2 ノードを 1 つずつ起動する
        • 最初にシード ノード
      5. キースペースを networkTopologyStrategy {DC1:x, DC2:y} に変更します
      6. DC2 データベースは DC1 からコピーされているため、再構築ではなく修復する必要があります
于 2016-04-20T07:51:57.763 に答える