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以前のバージョン用
注: 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
追加のドライバーのドキュメント
すべてのドライバー バージョンの互換性
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つのデータ・センター内のすべてのノードをアップグレードしてから、別のデータ・センターをアップグレードします。
  • データ・センター内のシード・ノードを最初にアップグレードします。
  • ノードは以下の順序でアップグレードします。
    1. DSE Analyticsデータ・センター
    2. トランザクション/DSE Graphデータ・センター
    3. DSE Searchデータ・センター

DataStax Enterpriseのアップグレード・プロセスは、ダウンタイムの最小化(ゼロ・ダウンタイムが理想)を実現します。プロセス中、他のノードがオンラインで稼働し続けている状態でノードを1つずつアップグレードして再起動します。若干の例外はありますが、クラスター内のすべてのノードがアップグレードされるまで、クラスターはDataStax Enterpriseの以前のバージョンであるかのように機能し続けます。

DataStax Enterprise(DSE)6.0からDSE 6.7にアップグレードするには、以下の手順に従います。

必ず現行バージョンの最新のパッチ・リリースにアップグレードしてから、新しいバージョンにアップグレードしてください。最新のパッチ・リリースに含まれている修正によって、アップグレード・プロセスが向上するか、スムーズになる場合があります。

DSEの最新の6.0xバージョンは6.0.4です。

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

Apache Cassandraのバージョン変更

SSTablesのアップグレードは、Cassandraのメジャー・バージョン の変更を含むDataStax Enterpriseのアップグレードに必要です。
  • 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では、バージョン・アップグレードの前に、ログ、カスタム構成などのデータをバックアップすることを推奨しています。バックアップすることによって、必要に応じて前のバージョンで使用したすべてのデータに戻したり、そのデータを復元したりすることができます。

ヒント: OpsCenterでは、Backup Service(バックアップ・サービス)が提供されます。このサービスは、DataStax Enterpriseクラスターの企業全体のバックアップ操作と復元操作を管理します。OpsCenter 6.5以降が推奨されます。

アップグレードの制限事項

制限事項は、クラスターの一部が部分的にアップグレードされている状態で適用されます。

これらの例外により、クラスター内のすべてのノードがアップグレードされるまで、クラスターはDataStax Enterpriseの以前のバージョンであるかのように機能し続けます。

アップグレード・プロセス中の一般的な制限事項
  • 新しい機能を有効にしないでください
  • nodetool repairを実行しないでください。OpsCenter Repair Serviceが構成されている場合は、Repair Serviceをオフにします
  • OpsCenterの互換性を確認してください。DSE 6.7クラスターを管理するには、OpsCenter 6.7が必要です。 互換性テーブルを参照してください。
  • アップグレード中は、ノードをブートストラップしたり、使用廃止にしたりしないでください。
  • ローリング再起動中に、DDLTRUNCATEのような種類のCQLクエリーを実行しないでください。
  • 必要なときにSSTableをアップグレードしなかった場合、パフォーマンスが大幅に低下し、ディスク使用量が増加します。アップグレードは、SSTableがアップグレードされるまで完了しません。
  • NodeSyncは、すべてのノードがアップグレードされるまで起動を待機します。
注: アップグレード中、異なるバージョン上のノードでスキーマの不一致が発生する場合があります。
DSE Analytic(Spark)ノードの制限事項
  • すべてのノードがアップグレードされるまで、分析ジョブを実行しないでください。
  • SparkワーカーおよびSparkマスターが起動する前にクラスター内のすべてのノードを新しいバージョンにアップグレードしておく必要があります。
DSE Graphノードの制限事項
グラフノードには、実行するワークロードと同じ制限事項があります。アップグレード中はグラフ・スキーマを変更しないでください。アップグレード中にOLAPクエリーを実行しないなどの、ワークロードに固有の制限事項は、analyticsおよびsearchノードに適用されます。
DSE Searchアップグレードの制限事項
  • スキーマを更新しないでください。
  • アップグレード中にDSE Searchノードにインデックスを付け直さないでください。
任意の種類のセキュリティを使用するノードの制限事項
  • すべてのノードでアップグレードが完了するまで、セキュリティ認証情報またはパーミッションを変更しないでください。
  • Kerberosをまだ使用していない場合は、アップグレードの前にKerberos認証を設定しないでください。最初にクラスターをアップグレードしてからKerberosをセットアップしてください。
ドライバー・バージョンに互換性がない場合のドライバーのアップグレードと被る可能性のある影響
ドライバーの互換性を必ず確認してください。ドライバー・バージョンによっては、クライアント・アプリケーション・コードの再コンパイルが必要になる場合があります。参照先: DataStaxドライバーの変更点
クラスターでドライバーのバージョンが混在している場合、アップグレード中にドライバー固有の影響がある場合があります。クラスターにバージョンの混在がある場合、プロトコル・バージョンはドライバーが接続する最初のホストとネゴシエートされます。アップグレード中にドライバーのバージョン互換性の喪失を回避するには、以下の回避策のいずれかを使用してください。
  • プロトコル・バージョン:一部のドライバーでは異なるプロトコル・バージョンを使用できるため、起動時にプロトコル・バージョンを強制します。たとえば、ドライバー・アップグレード中はJavaドライバーを現在のプロトコル・バージョンのままにしておきます。クラスター内のすべてのノードでアップグレードが完了してから、はじめてJavaドライバーを新しいプロトコル・バージョンに切り替えてください。
  • 初期のコンタクト・ポイント:初期のコンタクト・ポイントのリストに、最も古いドライバー・バージョンのあるホストのみが含まれることを確認します。たとえば、初期のコンタクト・ポイントにはJavaドライバーv2のみが含まれます。
プロトコル・バージョンのネゴシエーションの詳細については、ご使用のJavaドライバー・バージョン(たとえばJavaドライバー)の「混在クラスターのあるプロトコル・バージョン」を参照してください。

アップグレードの準備

以下の手順に従い、DSE 6.0からDSE 6.7にアップグレードするために各ノードを準備します。
注: これらの手順は、現在のバージョンで実行され、DSE 6.0のマニュアルを使用します。
  1. DataStax Enterpriseのアップグレードの計画」を注意して確認してください。
  2. アップグレードの前に、各ノードに十分な量の空きディスク領域があることを確認してください。

    必要なディスク領域は、コンパクション戦略によって異なります。「ディスク領域」を参照してください。

  3. このリリースの変更点と機能について十分理解してください。
  4. 現在の製品バージョンがDSE 6.0.0以降であることを確認してください。
    dse -v
    これらの手順は、DSE 6.0からDSE 6.7へのアップグレードにのみ有効です。
  5. 現行バージョンの最新のパッチ・リリースにアップグレードします。DSEの最新の6.0xバージョンは6.0.4です。

    必ず現行バージョンの最新のパッチ・リリースにアップグレードしてから、新しいバージョンにアップグレードしてください。最新のパッチ・リリースに含まれている修正によって、アップグレード・プロセスが向上するか、スムーズになる場合があります。

  6. 問題の発生の可能性を回避するには、すべてのSSTableが最新バージョンとなるように、各ノード上のSSTableをアップグレードしてください。
    nodetool upgradesstables

    SSTableが既に現在のバージョンになっている場合、このコマンドは即座に終了し、アクションは発生しません。

  7. Java Runtimeバージョンを確認し、推奨バージョンにアップグレードしてください。
    java -version
    重要: Oracle JRE/JDK 8はサポートされていますが、DataStaxでは、OpenJDK 8でさらに広範なテストを実施しています。
  8. nodetool repairを実行して、各レプリカ上のデータと他のノード上のデータの整合性を確保します。
  9. 最適なパフォーマンスを得るためにlibaioパッケージをインストールしてください。
    RHELプラットフォーム:
    sudo yum install libaio
    Debian:
    sudo apt-get install libaio1
  10. 使用する構成 ファイルを、コマンドを通常実行するディレクトリーにないフォルダーにバックアップします。

    構成ファイルは、新しいバージョンのインストール中にデフォルト値で上書きされます。

アップグレード手順

DSE 6.0からDSE 6.7へアップグレードするには、推奨される順序に従って、各ノードで次の手順を実行します。 アップグレード・プロセス中、ノードは1つずつアップグレードして再起動してください。
注: これらの手順は、アップグレードされたバージョンで実行され、DSE 6.7のマニュアルを使用します。
  1. 古いインストールのコミット・ログをフラッシュするには、次のようにします。
    nodetool -h hostname drain
    この手順により、アップグレード後のノードの起動時に時間が節約されるほか、DSE Searchノードでデータに再度インデックス付けする手間を省くことができます。
    重要: SSTable形式を変更し、前のバージョンのコミット・ログのレンダリングが新しいバージョンと互換性がないCassandraのメジャー・バージョン間でアップグレードを行う場合、この手順は必須です。
  2. ノードを停止します。「DataStax Enterpriseノードの停止」を参照してください。
    • サービスとして実行しているDataStax Enterpriseを停止する方法:
      sudo service dse stop
    • スタンドアローン・プロセスとして実行しているDataStax Enterpriseを停止する方法:
      bin/dse cassandra-stop
  3. 適切な方法を使用して、サポートされるプラットフォームに新しい製品バージョンをインストールします。
    注: システム上にある同じインストール・タイプを使用して新しい製品バージョンをインストールします。そうでない場合、問題が発生する可能性があります。
  4. 新しいバージョンを構成するには:
    1. バックアップ 構成 ファイルを新しい構成ファイルと比較します。廃止予定、削除済み、または変更済みの設定を探します。
      • 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です。

    2. 該当する構成ファイルの変更を新しいバージョンにマージします。
  5. キースペース・レプリケーション係数が環境に適していることを確認してください。
  6. ノードを起動します。
  7. アップグレード後のデータ・センター名がキースペース・スキーマ定義内のデータ・センター名と一致することを確認します。
    nodetool status
  8. 警告、エラー、および例外がないか、ログを確認します。

    多くの場合、警告、エラー、および例外は、アップグレードしたノードの起動時にログに表示されます。これらのログ・エントリーの一部は、固有のアップグレード関連の手順を実行するときに役立ちます。予想しなかった警告、エラー、または例外が表示された場合は、DataStaxサポートまでお問い合わせください。

  9. 推奨されるアップグレード 順序に従って、クラスター内の各ノードでアップグレードを繰り返します。

アップグレード後

すべてのノードをアップグレードしてDSE 6.7で実行したら、以下の手順を完了します。

  1. OpsCenter Repair Serviceを使用する場合は、Repair Serviceをオンにします
  2. DSEインストールのクラスパスから、以前にインストールしたJTS JARファイルをすべて削除します。JTS(Java Topology Suite)は、DSE 6.7とともに配布されます。
  3. Spark Jobserverは、DSEカスタム・バージョン8.0.4.45を使用します。アプリケーションがDataStaxリポジトリから互換性のあるSpark Jobserver APIを使用していることを確認してください。