Apache Cassandra のメンテナンス タスク

このセクションでは、Cassandra の定期的なメンテナンス タスクについて説明します。

アンチエントロピー メンテナンス

Apache Cassandra リングノードは、すべてのノードの整合性を保つために定期的なメンテナンスが必要です。このメンテナンスを行うには、次のコマンドを使用します。

apigee-service apigee-cassandra apigee_repair -pr

Apigee では、このコマンドを実行する際に次のことをおすすめします。

  • (すべてのリージョンまたはデータセンターにある)すべての Cassandra ノードに対して実行します。
  • ノードの修復ジョブが正常に完了したかどうかを確認するには、ノードの system.log ファイルで、最新の修復セッションの UUID と「session completed successfully」というメッセージを含むエントリを探します。ログエントリの例を次に示します。

    INFO [AntiEntropySessions:1] 2015-03-01 10:02:56,245 RepairSession.java (line 282) [repair #2e7009b0-c03d-11e4-9012-99a64119c9d8] session completed successfully"
    Ref: https://support.datastax.com/hc/en-us/articles/204226329-How-to-check-if-a-scheduled-nodetool-repair-ran-successfully
  • ワークロードの負荷が比較的低いときに実行する(このツールはシステムに多大な負荷をかける)。
  • Cassandra の「忘れた削除」に関連する問題を排除するために、少なくとも 7 日ごとに実行します。
  • 日によって異なるノードで実行するか、各ノードで数時間を実行するようにスケジュールします。
  • ノードのプライマリ パーティション担当者の範囲を指定するには、-pr オプション(パーティション分割範囲)を使用します。

Cassandra に対して JMX 認証を有効にした場合は、nodetool を呼び出すときにユーザー名とパスワードを指定する必要があります。例:

apigee-service apigee-cassandra apigee_repair -u username -pw password -pr

次のコマンドを実行して、apigee_repair: でサポートされているオプションを確認することもできます。

apigee-service apigee-cassandra apigee_repair -h

注: apigee_repair は Cassandra の nodetool 修復のラッパーです。Cassandra の修復を実行する前に追加チェックを実行します。

詳しくは、次のリソースをご覧ください。

ログファイルのメンテナンス

Cassandra のログは、各ノードの /opt/apigee/var/log/cassandra ディレクトリに保存されます。デフォルトでは、最大 50 個のログファイル(各最大サイズが 20 MB)を作成できます。この上限に達すると、新しいログの作成時に古いログが削除されます。

Cassandra のログファイルが過剰な容量を占有している場合は、log4j の設定を編集して、ログファイルに割り当てる容量を変更できます。

  1. /opt/apigee/customer/application/cassandra.properties を編集して次のプロパティを設定します。このファイルが存在しない場合は作成します。
    conf_logback_maxfilesize=20MB
    # max file size
    conf_logback_maxbackupindex=50 # max open files
  2. /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
    コマンドを使用して Cassandra を再起動します。

ディスク容量のメンテナンス

Cassandra のディスク使用率を定期的にモニタリングして、各ディスクの 50% 以上が空いていることを確認してください。ディスク使用率が 50% を超えた場合は、ディスク容量を追加して、使用率を下げることをおすすめします。

Cassandra は、ディスク使用率を減らすために次のオペレーションを自動的に実行します。

  • トークンの有効期限が切れたときに認証トークンを削除する。ただし、構成によっては、トークンが使用していたディスク容量を解放するのに数週間かかることがあります。自動削除では十分なディスク容量を確保できない場合は、トークンを手動で削除して空き容量を回復する方法についてサポートにお問い合わせください。
  • データ コンパクションに関する注意: Edge for Private Cloud 4.51.00 以降、Apigee Cassandra の新規インストールで レベル コンパクション戦略を使用してキースペースが作成されます。

    Private Cloud 4.51.00 にアップグレードされた古いバージョンの Edge for Private Cloud のインストールでは、以前のコンパクション戦略が引き続き適用されます。既存の圧縮戦略が SizeTieredCompactionStrategy の場合は、ディスク使用率を向上させる LeveledCompactionStrategy に変更することをおすすめします。

注: Cassandra がデータ コンパクションを実行すると、相当量の CPU サイクルとメモリが消費されることがあります。ただし、コンパクションが完了すると、リソース使用率は通常に戻ります。各ノードで 'Nodetool compactionstats' コマンドを実行して、コンパクションが実行されているかどうかを確認できます。compactionstats の出力は、実行すべき保留中のコンパクションがあるかどうかと、完了までの推定時間を示します。