Apache CassandraからDataStax Enterpriseへのアップグレード
Apache CassandraからDataStax Enterpriseへのアップグレード手順。
重要: アップグレードの前にこれらの手順を読み、理解しておいてください。計画およびアップグレード手順を細かく確認しておくと、スムーズなアップグレードが保証され、不備や不満が生じるのを避けることができます。
Cassandraデータのバックアップと復元
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のすべての機能を使用できます。
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の互換性」を参照してください。
- アップグレード中は、ノードをブートストラップしたり、使用廃止にしたりしないでください。
- ローリング再起動中に、DDL、TRUNCATEのような種類のCQLクエリーを実行しないでください。
- バージョンが混在しているクラスターではChange Data Capture(CDC)を有効にしないでください。すべてのノードをDSE 5.1以降にアップグレードしてからCDCを有効にしてください。
- 必要なときにSSTableをアップグレードしなかった場合、パフォーマンスが大幅に低下し、ディスク使用量が増加します。アップグレードは、SSTableがアップグレードされるまで完了しません。
注: アップグレード中、異なるバージョン上のノードでスキーマの不一致が発生する場合があります。- NodeSyncは、すべてのノードがアップグレードされるまで起動を待機します。
- バージョンが混在しているクラスターではChange Data Capture(CDC)を有効にしないでください。すべてのノードをアップグレードしてからCDCを有効にしてください。
- OpsCenterの互換性を確認してください。DSE 6.7クラスターを管理するには、OpsCenter 6.7が必要です。「DSE OpsCenterとDataStax Enterpriseの互換性」を参照してください。
- 任意の種類のセキュリティを使用するノードの制限事項
-
- アップグレードの完了後まで、セキュリティ認証情報またはパーミッションを変更しないでください。
- ドライバー・バージョンに互換性がない場合のドライバーのアップグレードと被る可能性のある影響
- ドライバーの互換性を必ず確認してください。ドライバー・バージョンによっては、クライアント・アプリケーション・コードの再コンパイルが必要になる場合があります。参照先: DataStaxドライバーの変更点。
- アップグレードの順序
- アップグレードの順序は重要です。複数データ・センター・クラスターでは、1つのデータ・センター内のすべてのノードをアップグレードしてから、別のデータ・センターをアップグレードします。
- Analyticsデータ・センター:最初にシード・ノード、その後残りのAnalyticsノード。
- Cassandra(トランザクション)ノードまたはデータ・センター
- Searchノードまたはデータ・センター
手順
各ノードで次の手順に従います。
- Apache Cassandra™バージョンからDataStax Enterpriseにアップグレードする前に、DataStaxでは、バージョン・アップグレードの前に、ログ、カスタム構成などのデータをバックアップすることを推奨しています。バックアップすることによって、必要に応じて前のバージョンで使用したすべてのデータに戻したり、そのデータを復元したりすることができます。 Cassandraデータのバックアップと復元を参照してください。
-
リリースの変更点と機能についてよく理解しておいてください。
- DataStax Enterprise 4.7、4.8、5.0、および5.1のリリース・ノート。
- アップグレードに関する一般的なアドバイスおよびCassandraの機能については、NEWS.txt/DSE CHANGES.txtに記載されています。以前のリリースからアップグレードする場合は、NEWS.txtで現在ご使用のバージョンに関する箇所まですべてお読みください。
- ご使用のCassandraバージョンがDataStax Enterpriseで使用されているCassandraのバージョンに直接アップグレード可能であることを確認します。Cassandraでの変更点については、CHANGES.txt/DSE CHANGES.txtに記載されています。
-
すべてのSSTableが最新バージョンとなるように、各ノード上のSSTableをアップグレードしてください。
nodetool upgradesstables
警告: 必要なときにSSTableをアップグレードしなかった場合、パフォーマンスが大幅に低下し、ディスク使用量が増加します。 -
次のようにnodetool drainを実行し、古いインストールのコミット・ログをフラッシュします。
nodetool -h hostname drain
この手順により、アップグレード後のノードの起動時に時間が節約されるほか、DSE Searchノードでデータに再度インデックス付けする手間を省くことができます。 - ノードを停止します。(2.1、2.2、3.0)
-
構成ファイルのバックアップを取得します。
構成ファイルがデフォルト値で上書きされないように、構成をバックアップします。
-
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インストール・ディレクトリーを削除します。
- APTリポジトリーからインストールしたパッケージの場合:
- 以下のいずれかを使用してDataStax Enterpriseをインストールしてください。
- 製品を構成するには、バックアップされた構成ファイルを使用して必要な変更をすべて新しい構成ファイルにマージします。
- ノードを起動します。
- オプション:
最適なパフォーマンスを確保するには、アップグレードの完了後に各ノードでSSTableをアップグレードします。
nodetool upgradesstables
SSTableが既に現在のバージョンになっている場合、このコマンドは即座に終了し、アクションは発生しません。 -
警告、エラー、および例外がないか、ログを確認します。
多くの場合、警告、エラー、および例外は、アップグレードしたノードの起動時にログに表示されます。これらのログ・エントリーの一部は、固有のアップグレード関連の手順を実行するときに役立ちます。予想しなかった警告、エラー、または例外が表示された場合は、DataStaxサポートまでお問い合わせください。
-
アップグレード後のデータ・センター名がキースペース・スキーマ定義で使用されたデータ・センター名と一致することを確認します。
nodetool status
- 推奨される順序に従って、クラスター内の各ノードでアップグレードを繰り返します。