intra-mart Accel Platform Cassandra管理者ガイド 第15版 2018-12-01

10. Cassandra のバージョンアップ

ここでは Cassandra 、および、 Cassandra が利用する JDK のバージョンアップの方法を紹介します。
また、Cassandra 1.1.12 で運用を行っている環境において Java 11 対応版 Cassandra 1.1.12 への移行を行う方法について紹介します。

コラム

Cassandra 1.1.12 にていくつかの不具合(運用中にデータが破損して再起動に失敗する恐れのある不具合など)が修正されているため、 Cassandra 1.1.4 で既に運用している場合はバージョンアップを推奨します。
2013 Winter(Felicia)以前にリリースされた intra-mart Accel Platform においても、 Cassandra 1.1.12 での動作を確認しております。

10.1. Cassandra のバージョンアップ手順

Cassandra 1.1.4 から Cassandra 1.1.12 にバージョンアップを行う場合、以下の手順が必要です。
バージョンアップ前には、 スナップショット を取得しておくことを推奨します。
  1. Cassandra 1.1.4 を起動します。

  2. Cassandra 1.1.4 を nodetool コマンドの drain で書き込み操作の受け入れを停止します。

    • Windows の場合、コマンドプロンプトを起動し、以下のコマンドを実行します。

      %CASSANDRA_HOME%/bin/nodetool drain
      
    • Linux の場合、以下のコマンドを実行します。

      # /usr/local/cassandra/bin/nodetool drain
      
  3. 起動中のCassandra に「DRAINED」が表示され、 Cassandra が停止します。

  4. Cassandra 1.1.12 の<%CASSANDRA_HOME%/conf/cassandra.yaml>ファイルにある、以下のプロパティを Cassandra 1.1.4 で設定しているディレクトリとは異なるディレクトリに設定します。

    • 「data_file_directories」プロパティ
    • 「commitlog_directory」プロパティ
    • 「saved_caches_directory」プロパティ

    注意

    Cassandra 1.1.12 のcommitlog_directory、saved_caches_directoryを Cassandra 1.1.4 と同一ディレクトリに設定した場合、データ不整合が発生する恐れがあるため、commitlog_directory、saved_caches_directoryは別ディレクトリを設定してください。
  5. Cassandra 1.1.12 で新しく設定した「data_file_directories」プロパティの保存先ディレクトリ内に、 Cassandra 1.1.4 で設定していた「data_file_directories」プロパティの保存先ディレクトリ内をコピーします。

    注意

    Cassandra 1.1.4 のスナップショットは、Cassandra 1.1.12 で設定する「data_file_directories」プロパティのディレクトリ内にコピーする必要はありません。
    スナップショットの格納場所、および、削除方法についての詳細は「スナップショット」を参照してください。
  6. Cassandra 1.1.12 を起動し、nodetool コマンドの upgradesstables でデータの再構築を行います。

    • Windowsの場合、コマンドプロンプトを起動し、以下のコマンドを実行します。

      %CASSANDRA_HOME%/bin/nodetool upgradesstables
      
    • Linuxの場合、以下のコマンドを実行します。

      # /usr/local/cassandra/bin/nodetool upgradesstables
      
  7. Cassandra の再構築が正常終了した時点で、バージョンアップの手順は完了です。

コラム

10.2. JDK のバージョンアップ手順

Cassandra が利用する JDK のバージョンアップを行う場合、以下の手順が必要です。
バージョンアップ前には、 スナップショット を取得しておくことを推奨します。
  1. Cassandra を起動します。

  2. Cassandra を nodetool コマンドの drain で書き込み操作の受け入れを停止します。

    • Windows の場合、コマンドプロンプトを起動し、以下のコマンドを実行します。

      %CASSANDRA_HOME%/bin/nodetool drain
      
    • Linux の場合、以下のコマンドを実行します。

      # /usr/local/cassandra/bin/nodetool drain
      
  3. 起動中の Cassandra に「DRAINED」が表示され、Cassandra が停止します。

  4. JDK のバージョンアップを行います。

  5. 再度 Cassandra を起動して、バージョンアップの手順は完了です。

コラム

  • Cassandra をクラスタ構築している場合には、各ノード毎にバージョンアップを行ってください。

10.3. Java 11 対応版 Cassandra 1.1.12 への移行

Java 8 を利用して Cassandra 1.1.12 を利用しており、Java 11 での運用に切り替える場合、以下の手順が必要です。
Java 11 対応版 Cassandra 1.1.12 の取得方法については Java 11 対応版 Cassandra 1.1.12 の取得 を参照してください。
バージョンアップ前には、 スナップショット を取得しておくことを推奨します。
  1. Java 8 で運用中の Cassandra 1.1.12 を起動します。

  2. Java 8 で運用中の Cassandra 1.1.12 を nodetool コマンドの drain で書き込み操作の受け入れを停止します。

    • Windows の場合、コマンドプロンプトを起動し、以下のコマンドを実行します。

      %CASSANDRA_HOME%/bin/nodetool drain
      
    • Linux の場合、以下のコマンドを実行します。

      # /usr/local/cassandra/bin/nodetool drain
      
  3. 起動中の Cassandra に「DRAINED」が表示され、Cassandra が停止します。

  4. Java 8 で運用中の <%CASSANDRA_HOME%/conf/cassandra.yaml>ファイルにある、以下のプロパティが指し示すディレクトリの内容を、Java 11 対応版の<%CASSANDRA_HOME%/conf/cassandra.yaml>ファイルにある、以下のプロパティが指し示すディレクトリにそれぞれコピーします。または、同じディレクトリを指し示すようにプロパティを変更します。

    • 「data_file_directories」プロパティ
    • 「commitlog_directory」プロパティ
    • 「saved_caches_directory」プロパティ
  5. JDK のバージョンアップを行います。

  6. Java 11 対応版 Cassandra 1.1.12 を起動して、バージョンアップの手順は完了です。

コラム