DataStax Enterprise 6.0から6.7へのアップグレード
DSE 6.0から6.7へのアップグレード手順
dse.yaml
dse.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/dse.yaml |
tarボール・インストール | installation_location/resources/dse/conf/dse.yaml |
DataStax EnterpriseおよびApache Cassandra™の構成ファイル
構成ファイル | Installer-Servicesおよびパッケージ・インストール | Installer-No Servicesおよびtarボール・インストール |
---|---|---|
DataStax Enterpriseの構成ファイル | ||
byoh-env.sh | /etc/dse/byoh-env.sh | install_location/bin/byoh-env.sh |
dse.yaml | /etc/dse/dse.yaml | install_location/resources/dse/conf/dse.yaml |
logback.xml | /etc/dse/cassandra/logback.xml | install_location/resources/logback.xml |
spark-env.sh | /etc/dse/spark/spark-env.sh | install_location/resources/spark/conf/spark-env.sh |
spark-defaults.conf | /etc/dse/spark/spark-defaults.conf | install_location/resources/spark/conf/spark-defaults.conf |
Cassandraの構成ファイル | ||
cassandra.yaml | /etc/cassandra/cassandra.yaml | install_location/conf/cassandra.yaml |
cassandra.in.sh | /usr/share/cassandra/cassandra.in.sh | install_location/bin/cassandra.in.sh |
cassandra-env.sh | /etc/cassandra/cassandra-env.sh | install_location/conf/cassandra-env.sh |
cassandra-rackdc.properties | /etc/cassandra/cassandra-rackdc.properties | install_location/conf/cassandra-rackdc.properties |
cassandra-topology.properties | /etc/cassandra/cassandra-topology.properties | install_location/conf/cassandra-topology.properties |
jmxremote.password | /etc/cassandra/jmxremote.password | install_location/conf/jmxremote.password |
Tomcatサーバーの構成ファイル | ||
server.xml | /etc/dse/resources/tomcat/conf/server.xml | install_location/resources/tomcat/conf/server.xml |
cassandra.yaml
cassandra.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストール | /etc/dse/cassandra/cassandra.yaml |
tarボール・インストール | installation_location/resources/cassandra/conf/cassandra.yaml |
Cassandraのメジャー・バージョンのアップグレード
Apache Cassandraのメジャー・リリースを含むアップグレードには、SSTableのアップグレードが必要です。- DataStax Enterprise 6.7はCassandra 3.11と互換性があります。
- DataStax Enterprise 6.0はCassandra 3.11と互換性があります。
- DataStax Enterprise 5.1はCassandra 3.11を使用します。
- DataStax Enterprise 5.0はCassandra 3.0を使用します。
- DataStax Enterprise 4.7~4.8はCassandra 2.1を使用します。
- DataStax Enterprise 4.0~4.6はCassandra 2.0を使用します。
DataStaxドライバーの変更点
DataStaxドライバーには2つのタイプがあります。
- DataStax Enterprise用DataStaxドライバー:DSE 4.8以降用
- Apache Cassandra™用DataStaxドライバー:Apache Cassandra™およびDSE 4.7以前のバージョン用
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 |
追加のドライバーのドキュメント | |
すべてのドライバー | バージョンの互換性 |
OpsCenterバージョン | DSEバージョン |
---|---|
6.7 | 6.7、6.0、5.1 |
6.5 | 6.0、5.1、5.0 |
6.1 | 5.1、5.0 |
6.0 | 5.0 |
アップグレードの順序
ノードは以下の順序でアップグレードします。- 複数データ・センター・クラスターでは、1つのデータ・センター内のすべてのノードをアップグレードしてから、別のデータ・センターをアップグレードします。
- データ・センター内のシード・ノードを最初にアップグレードします。
- ノードは以下の順序でアップグレードします。
- DSE Analyticsデータ・センター
- トランザクション/DSE Graphデータ・センター
- DSE Searchデータ・センター
DataStax Enterpriseのアップグレード・プロセスは、ダウンタイムの最小化(ゼロ・ダウンタイムが理想)を実現します。プロセス中、他のノードがオンラインで稼働し続けている状態でノードを1つずつアップグレードして再起動します。若干の例外はありますが、クラスター内のすべてのノードがアップグレードされるまで、クラスターはDataStax Enterpriseの以前のバージョンであるかのように機能し続けます。
DataStax Enterprise(DSE)6.0からDSE 6.7にアップグレードするには、以下の手順に従います。
必ず現行バージョンの最新のパッチ・リリースにアップグレードしてから、新しいバージョンにアップグレードしてください。最新のパッチ・リリースに含まれている修正によって、アップグレード・プロセスが向上するか、スムーズになる場合があります。
DSEの最新の6.0xバージョンは6.0.4です。
Apache Cassandra™のバージョン変更
- DataStax Enterprise 6.7はCassandra 3.11と互換性があります。
- DataStax Enterprise 6.0はCassandra 3.11と互換性があります。
- DataStax Enterprise 5.1はCassandra 3.11を使用します。
- DataStax Enterprise 5.0はCassandra 3.0を使用します。
- DataStax Enterprise 4.7~4.8はCassandra 2.1を使用します。
- DataStax Enterprise 4.0~4.6はCassandra 2.0を使用します。
一般的な推奨事項
DataStaxでは、バージョン・アップグレードの前に、ログ、カスタム構成などのデータをバックアップすることを推奨しています。バックアップすることによって、必要に応じて前のバージョンで使用したすべてのデータに戻したり、そのデータを復元したりすることができます。
アップグレードの制限事項
制限事項は、クラスターの一部が部分的にアップグレードされている状態で適用されます。
これらの例外により、クラスター内のすべてのノードがアップグレードされるまで、クラスターはDataStax Enterpriseの以前のバージョンであるかのように機能し続けます。
- アップグレード・プロセス中の一般的な制限事項
-
- 新しい機能を有効にしないでください。
- nodetool repairを実行しないでください。OpsCenter Repair Serviceが構成されている場合は、Repair Serviceをオフにします。
- OpsCenterの互換性を確認してください。DSE 6.7クラスターを管理するには、OpsCenter 6.7が必要です。 互換性テーブルを参照してください。
- アップグレード中は、ノードをブートストラップしたり、使用廃止にしたりしないでください。
- ローリング再起動中に、DDL、TRUNCATEのような種類のCQLクエリーを実行しないでください。
- 必要なときにSSTableをアップグレードしなかった場合、パフォーマンスが大幅に低下し、ディスク使用量が増加します。アップグレードは、SSTableがアップグレードされるまで完了しません。
- NodeSyncは、すべてのノードがアップグレードされるまで起動を待機します。
注: アップグレード中、異なるバージョン上のノードでスキーマの不一致が発生する場合があります。 - DSE Analytic(Spark)ノードの制限事項
-
- すべてのノードがアップグレードされるまで、分析ジョブを実行しないでください。
- SparkワーカーおよびSparkマスターが起動する前にクラスター内のすべてのノードを新しいバージョンにアップグレードしておく必要があります。
- DSE Graphノードの制限事項
- グラフノードには、実行するワークロードと同じ制限事項があります。アップグレード中はグラフ・スキーマを変更しないでください。アップグレード中にOLAPクエリーを実行しないなどの、ワークロードに固有の制限事項は、analyticsおよびsearchノードに適用されます。
- DSE Searchアップグレードの制限事項
-
- スキーマを更新しないでください。
- アップグレード中にDSE Searchノードにインデックスを付け直さないでください。
- 任意の種類のセキュリティを使用するノードの制限事項
-
- すべてのノードでアップグレードが完了するまで、セキュリティ認証情報またはパーミッションを変更しないでください。
- Kerberosをまだ使用していない場合は、アップグレードの前にKerberos認証を設定しないでください。最初にクラスターをアップグレードしてからKerberosをセットアップしてください。
- ドライバー・バージョンに互換性がない場合のドライバーのアップグレードと被る可能性のある影響
- ドライバーの互換性を必ず確認してください。ドライバー・バージョンによっては、クライアント・アプリケーション・コードの再コンパイルが必要になる場合があります。参照先: DataStaxドライバーの変更点。
アップグレードの準備
- 「DataStax Enterpriseのアップグレードの計画」を注意して確認してください。
- アップグレードの前に、各ノードに十分な量の空きディスク領域があることを確認してください。
必要なディスク領域は、コンパクション戦略によって異なります。「ディスク領域」を参照してください。
- このリリースの変更点と機能について十分理解してください。
- DataStax Enterprise 6.7のリリース・ノート。
- 任意のバージョンのアップグレードに関する一般的なアドバイス。NEWS.txtを現在ご使用のバージョンの箇所まで必ずお読みください。
- DataStax Enterpriseの変更点については、CHANGES.txtに記載されています。
- DataStaxドライバーの変更点。
- 現在の製品バージョンがDSE 6.0.0以降であることを確認してください。
dse -v
これらの手順は、DSE 6.0からDSE 6.7へのアップグレードにのみ有効です。 - 現行バージョンの最新のパッチ・リリースにアップグレードします。DSEの最新の6.0xバージョンは6.0.4です。
必ず現行バージョンの最新のパッチ・リリースにアップグレードしてから、新しいバージョンにアップグレードしてください。最新のパッチ・リリースに含まれている修正によって、アップグレード・プロセスが向上するか、スムーズになる場合があります。
- 問題の発生の可能性を回避するには、すべてのSSTableが最新バージョンとなるように、各ノード上のSSTableをアップグレードしてください。
nodetool upgradesstables
SSTableが既に現在のバージョンになっている場合、このコマンドは即座に終了し、アクションは発生しません。
- Java Runtimeバージョンを確認し、推奨バージョンにアップグレードしてください。
java -version
- 推奨。OpenJDK 8(1.8.0_151以上) 注: Oracle JRE/JDK 8の公開更新が終了したため、推奨が変更になりました。Oracle Java SE Support Roadmapを参照してください。
- サポートされているもの。Oracle Java SE 8(JREまたはJDK)(1.8.0_151以上)
重要: Oracle JRE/JDK 8はサポートされていますが、DataStaxでは、OpenJDK 8でさらに広範なテストを実施しています。 - 推奨。OpenJDK 8(1.8.0_151以上)
- nodetool repairを実行して、各レプリカ上のデータと他のノード上のデータの整合性を確保します。
- 最適なパフォーマンスを得るためにlibaioパッケージをインストールしてください。RHELプラットフォーム:
sudo yum install libaio
Debian:sudo apt-get install libaio1
- 使用する構成 ファイルを、コマンドを通常実行するディレクトリーにないフォルダーにバックアップします。
構成ファイルは、新しいバージョンのインストール中にデフォルト値で上書きされます。
アップグレード手順
- 古いインストールのコミット・ログをフラッシュするには、次のようにします。
nodetool -h hostname drain
この手順により、アップグレード後のノードの起動時に時間が節約されるほか、DSE Searchノードでデータに再度インデックス付けする手間を省くことができます。重要: SSTable形式を変更し、前のバージョンのコミット・ログのレンダリングが新しいバージョンと互換性がないCassandraのメジャー・バージョン間でアップグレードを行う場合、この手順は必須です。 - ノードを停止します。「DataStax Enterpriseノードの停止」を参照してください。
- サービスとして実行しているDataStax Enterpriseを停止する方法:
sudo service dse stop
- スタンドアローン・プロセスとして実行しているDataStax Enterpriseを停止する方法:
bin/dse cassandra-stop
- サービスとして実行しているDataStax Enterpriseを停止する方法:
- 適切な方法を使用して、サポートされるプラットフォームに新しい製品バージョンをインストールします。注: システム上にある同じインストール・タイプを使用して新しい製品バージョンをインストールします。そうでない場合、問題が発生する可能性があります。
- 新しいバージョンを構成するには:
- バックアップ 構成 ファイルを新しい構成ファイルと比較します。廃止予定、削除済み、または変更済みの設定を探します。
- cassandra.yaml およびdse.yamlの変更点を確認します。
アップグレード後、6.7.0を再起動する前に、廃止予定の設定を削除し、新しい設定を使用してください。
cassandra.yaml の変更点
memtableの設定 廃止予定のcassandra.yaml設定 memtable_heap_space_in_mb memtable_offheap_space_in_mb
これらは、次の設定に置き換わります。 memtable_space_in_mb
自動memtableフラッシュのしきい値を設定するために、ヒープおよびオフヒープのスペース割り当てを制御します。計算されたデフォルトは、ヒープ・サイズの1/4です。
変更された設定 memtable_allocation_type: offheap_objects
データベースがmemtableメモリーの割り当てと管理に使用するデフォルトの方法は、offheap_objectsです。
ユーザー定義関数(UDF)の設定 廃止予定のcassandra.yaml設定 user_defined_function_warn_timeout user_defined_function_fail_timeout
これらは次の設定に置き換わります。 user_defined_function_warn_micros: 500 user_defined_function_fail_micros: 10000 user_defined_function_warn_heap_mb: 200 user_defined_function_fail_heap_mb: 500 user_function_timeout_policy: die
Java UDFの実行が高速であるため、設定はマイクロ秒単位で行います。新しいタイムアウトは廃止された設定と同等ではありません。
ノード間の暗号化の設定 廃止されるcassandra.yamlの設定 server_encryption_options: store_type:JKS
これらは次の設定に置き換わります。 server_encryption_options: keystore_type: JKS truststore_type: JKS
有効なタイプのオプションはJKS、JCEKS、PKCS12、またはPKCS11です。
ノード間の暗号化の設定 廃止されるcassandra.yamlの設定 server_encryption_options: store_type:JKS
これらは次の設定に置き換わります。 server_encryption_options: keystore_type: JKS truststore_type: JKS
有効なタイプのオプションはJKS、JCEKS、PKCS12、またはPKCS11です。
クライアントとノード間の暗号化の設定 廃止されるcassandra.yamlの設定 client_encryption_options: store_type:JKS
これらは次の設定に置き換わります。 client_encryption_options: keystore_type: JKS truststore_type: JKS
有効なタイプのオプションはJKS、JCEKS、PKCS12、またはPKCS11です。
dse.yaml の変更点
Sparkリソースおよび暗号化のオプション 廃止されるdse.yamlの設定 spark_ui_options: server_encryption_options: store_type: JKS
これらは次の設定に置き換わります。 spark_ui_options: server_encryption_options: keystore_type: JKS truststore_type: JKS
有効なオプションはJKS、JCEKS、PKCS12、またはPKCS11です。
- cassandra.yaml およびdse.yamlの変更点を確認します。
- 該当する構成ファイルの変更を新しいバージョンにマージします。
- バックアップ 構成 ファイルを新しい構成ファイルと比較します。廃止予定、削除済み、または変更済みの設定を探します。
- キースペース・レプリケーション係数が環境に適していることを確認してください。
- analyticsキースペースのキースペース・レプリケーション係数を確認してください。
- system_authおよびdse_securityキースペースのキースペース・レプリケーション係数を確認してください。
- ノードを起動します。
- アップグレード後のデータ・センター名がキースペース・スキーマ定義内のデータ・センター名と一致することを確認します。
nodetool status
- 警告、エラー、および例外がないか、ログを確認します。
多くの場合、警告、エラー、および例外は、アップグレードしたノードの起動時にログに表示されます。これらのログ・エントリーの一部は、固有のアップグレード関連の手順を実行するときに役立ちます。予想しなかった警告、エラー、または例外が表示された場合は、DataStaxサポートまでお問い合わせください。
- 推奨されるアップグレード 順序に従って、クラスター内の各ノードでアップグレードを繰り返します。
アップグレード後
すべてのノードをアップグレードしてDSE 6.7で実行したら、以下の手順を完了します。
- OpsCenter Repair Serviceを使用する場合は、Repair Serviceをオンにします。
- DSEインストールのクラスパスから、以前にインストールしたJTS JARファイルをすべて削除します。JTS(Java Topology Suite)は、DSE 6.7とともに配布されます。
- Spark Jobserverは、DSEカスタム・バージョン8.0.4.45を使用します。アプリケーションがDataStaxリポジトリから互換性のあるSpark Jobserver APIを使用していることを確認してください。