Apache CassandraからDataStax Enterpriseへのアップグレード

Apache CassandraからDataStax Enterpriseへのアップグレード手順。

重要: アップグレードの前にこれらの手順を読み、理解しておいてください。計画およびアップグレード手順を細かく確認しておくと、スムーズなアップグレードが保証され、不備や不満が生じるのを避けることができます。

DataStaxドライバーの変更点

DataStaxドライバーには2つのタイプがあります。

  • DataStax Enterprise用DataStaxドライバー:DSE 4.8以降用
  • Apache Cassandra用DataStaxドライバー:Apache CassandraおよびDSE 4.7以前のバージョン用
注: Apache Cassandraドライバー用のDataStaxドライバーは、DSE 5.0以降のクラスターに接続できますが、DSEドライバーにアップグレードすることを強くお勧めします。DSEドライバーでは、DataStax Enterpriseのすべての機能を使用できます。
1. アップグレードの情報は、各ドライバーのガイドに含まれています。
DataStax Enterprise用DataStaxドライバー Apache Cassandra用DataStaxドライバー
C/C++ C/C++
C# C#
Java Java
Node.js Node.js
Python Python
メンテナンス・モード・ドライバー
DataStaxでサポートされますが、新しいバージョンには重大なバグの修正のみが含まれます。
PHP PHP
Ruby Ruby
追加のドライバーのドキュメント
すべてのドライバー バージョンの互換性

アップグレードの順序

アップグレードの順序は重要です。ノードは以下の順序でアップグレードします。

  • 複数データ・センター・クラスターでは、1つのデータ・センター内のすべてのノードをアップグレードしてから、別のデータ・センターに進みます。
  • データ・センター内のシード・ノードを最初にアップグレードします。
アップグレード・パス
アップグレードは、アップグレード前のバージョンとアップグレード後のバージョンによって影響を受けます。現在のバージョンとターゲット・バージョン間のギャップが大きいほど、アップグレードは複雑になります。以前のバージョンからのアップグレードには、必要なバージョンへの中間アップグレードが必要な場合があります。
現在のバージョン 必要な中間バージョン ターゲット・バージョン
Apache Cassandra 3.11 DataStax Enterprise 6.0.4 DSE 6.0または6.7、SSTableのアップグレードが必要
Apache Cassandra 3.x なし DSE 5.1
Cassandra 3.0 DataStax Enterprise 5.0 DSE 5.1
Cassandra 2.1 DataStax Enterprise 4.8 DSE 5.0
Cassandra 2.0以前 Cassandra 2.1

質問がある場合は、DataStaxサポートにお問い合わせください。

アップグレード中の一般的な制限事項
  • 新しい機能を有効にしないでください
  • nodetool repairを実行しないでください。OpsCenter Repair Serviceが構成されている場合は、Repair Serviceをオフにします
  • OpsCenterの互換性を確認してください。DSE 6.0クラスターを管理するには、OpsCenter 6.5が必要です。「DataStax OpsCenterとDataStax Enterpriseの互換性」を参照してください。
  • アップグレード中は、ノードをブートストラップしたり、使用廃止にしたりしないでください。
  • ローリング再起動中に、DDLTRUNCATEのような種類のCQLクエリーを実行しないでください。
  • バージョンが混在しているクラスターではChange Data Capture(CDC)を有効にしないでください。すべてのノードをDSE 5.1以降にアップグレードしてからCDCを有効にしてください。
  • 必要なときにSSTableをアップグレードしなかった場合、パフォーマンスが大幅に低下し、ディスク使用量が増加します。アップグレードは、SSTableがアップグレードされるまで完了しません。
注: アップグレード中、異なるバージョン上のノードでスキーマの不一致が発生する場合があります。
  • NodeSyncは、すべてのノードがアップグレードされるまで起動を待機します。
  • バージョンが混在しているクラスターではChange Data Capture(CDC)を有効にしないでください。すべてのノードをアップグレードしてからCDCを有効にしてください。
任意の種類のセキュリティを使用するノードの制限事項
  • アップグレードの完了後まで、セキュリティ認証情報またはパーミッションを変更しないでください。
ドライバー・バージョンに互換性がない場合のドライバーのアップグレードと被る可能性のある影響
ドライバーの互換性を必ず確認してください。ドライバー・バージョンによっては、クライアント・アプリケーション・コードの再コンパイルが必要になる場合があります。参照先: DataStaxドライバーの変更点
クラスターでドライバーのバージョンが混在している場合、アップグレード中にドライバー固有の影響がある場合があります。クラスターにバージョンの混在がある場合、プロトコル・バージョンはドライバーが接続する最初のホストとネゴシエートされます。アップグレード中にドライバーのバージョン互換性の喪失を回避するには、以下の回避策のいずれかを使用してください。
  • プロトコル・バージョン:一部のドライバーでは異なるプロトコル・バージョンを使用できるため、起動時にプロトコル・バージョンを強制します。たとえば、ドライバー・アップグレード中はJavaドライバーを現在のプロトコル・バージョンのままにしておきます。クラスター内のすべてのノードでアップグレードが完了してから、はじめてJavaドライバーを新しいプロトコル・バージョンに切り替えてください。
  • 初期のコンタクト・ポイント:初期のコンタクト・ポイントのリストに、最も古いドライバー・バージョンのあるホストのみが含まれることを確認します。たとえば、初期のコンタクト・ポイントにはJavaドライバーv2のみが含まれます。
プロトコル・バージョンのネゴシエーションの詳細については、ご使用のJavaドライバー・バージョン(たとえばJavaドライバー)の「混在クラスターのあるプロトコル・バージョン」を参照してください。
アップグレードの順序
アップグレードの順序は重要です。複数データ・センター・クラスターでは、1つのデータ・センター内のすべてのノードをアップグレードしてから、別のデータ・センターをアップグレードします。
  1. Analyticsデータ・センター:最初にシード・ノード、その後残りのAnalyticsノード。
  2. Cassandra(トランザクション)ノードまたはデータ・センター
  3. Searchノードまたはデータ・センター
若干の例外はありますが、クラスター内のすべてのノードがアップグレードされるまで、クラスターはDataStax Enterpriseの以前のバージョンであるかのように機能し続けます。ノードは1つずつアップグレードして再起動してください。クラスター内の他のノードは、すべてのノードがアップグレードされるまで、最も古いバージョンで動作します。

手順

各ノードで次の手順に従います。

  1. Apache CassandraバージョンからDataStax Enterpriseにアップグレードする前に、DataStaxでは、バージョン・アップグレードの前に、ログ、カスタム構成などのデータをバックアップすることを推奨しています。バックアップすることによって、必要に応じて前のバージョンで使用したすべてのデータに戻したり、そのデータを復元したりすることができます。 Cassandraデータのバックアップと復元を参照してください。
  2. リリースの変更点と機能についてよく理解しておいてください。
    • DataStax Enterprise 4.74.85.0、および5.1のリリース・ノート。
    • アップグレードに関する一般的なアドバイスおよびCassandraの機能については、NEWS.txt/DSE CHANGES.txtに記載されています。以前のリリースからアップグレードする場合は、NEWS.txtで現在ご使用のバージョンに関する箇所まですべてお読みください。
    • ご使用のCassandraバージョンがDataStax Enterpriseで使用されているCassandraのバージョンに直接アップグレード可能であることを確認します。Cassandraでの変更点については、CHANGES.txt/DSE CHANGES.txtに記載されています。
  3. すべてのSSTableが最新バージョンとなるように、各ノード上のSSTableをアップグレードしてください。
    nodetool upgradesstables
    警告: 必要なときにSSTableをアップグレードしなかった場合、パフォーマンスが大幅に低下し、ディスク使用量が増加します。
  4. 次のようにnodetool drainを実行し、古いインストールのコミット・ログをフラッシュします。
    nodetool -h hostname drain
    この手順により、アップグレード後のノードの起動時に時間が節約されるほか、DSE Searchノードでデータに再度インデックス付けする手間を省くことができます。
  5. ノードを停止します。(2.12.23.0
  6. 構成ファイルのバックアップを取得します。

    構成ファイルがデフォルト値で上書きされないように、構成をバックアップします。

  7. Cassandraをアンインストールします。
    APTリポジトリーまたはRPMリポジトリーのパッケージからCassandraをインストールした場合は、適切なリポジトリーからDataStax Enterpriseをセットアップおよびインストールする前に、パッケージを除去する必要があります。
    • APTリポジトリーからインストールしたパッケージの場合:
      sudo apt-get autoremove "dsc*" "cassandra*" "apache-cassandra*"

      Cassandraが依然として実行されている場合は、このアクションによってシャットダウンされます。

    • Yumリポジトリーからインストールしたパッケージの場合:
      sudo yum remove "dsc*" "cassandra*" "apache-cassandra*"

      古いCassandraの構成ファイルの名前はcassandra.yaml.rpmsaveに変更される可能性があります。

      warning: /etc/cassandra/default.conf/cassandra.yaml
      saved as /etc/cassandra/default.conf/cassandra.yaml.rpmsave
    • バイナリーtarボールを使用してCassandraがインストールされている場合:
      ps auwx | grep cassandra
      $ sudo  kill cassandra_pid

      その後、Cassandraインストール・ディレクトリーを削除します。

  8. 以下のいずれかを使用してDataStax Enterpriseをインストールしてください。
  9. 製品を構成するには、バックアップされた構成ファイルを使用して必要な変更をすべて新しい構成ファイルにマージします。
  10. ノードを起動します。
    • パッケージおよびInstaller-Servicesのインストール:「DataStax Enterpriseをサービスとして起動」を参照してください(4.85.05.1)。
    • Installer-No Servicesおよびtarボール・インストール:「DataStax Enterpriseをスタンドアローン・プロセスとして起動」を参照してください(4.85.05.1)。
  11. オプション: 最適なパフォーマンスを確保するには、アップグレードの完了後に各ノードでSSTableをアップグレードします。
    nodetool upgradesstables
    SSTableが既に現在のバージョンになっている場合、このコマンドは即座に終了し、アクションは発生しません。
  12. 警告、エラー、および例外がないか、ログを確認します。
    多くの場合、警告、エラー、および例外は、アップグレードしたノードの起動時にログに表示されます。これらのログ・エントリーの一部は、固有のアップグレード関連の手順を実行するときに役立ちます。予想しなかった警告、エラー、または例外が表示された場合は、DataStaxサポートまでお問い合わせください。
  13. アップグレード後のデータ・センター名がキースペース・スキーマ定義で使用されたデータ・センター名と一致することを確認します。
    nodetool status
  14. 推奨される順序に従って、クラスター内の各ノードでアップグレードを繰り返します。