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

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

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

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

apigee-service apigee-cassandra apigee_repair -pr

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

  • (すべてのリージョンまたはデータセンターにある)すべての Cassandra ノードに対して実行します。
  • リング内のすべてのノードの整合性を保つため、一度に 1 つのノードに対して実行します。 複数のノードで同時に修復ジョブを実行すると 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 repair のラッパーです。Cassandra の修復を実行する前に、追加のチェックを行います。

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

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

Cassandra ログは、各ノードの /opt/apigee/var/log/apigee-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. 次のコマンドを使用して Cassandra を再起動します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

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

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

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

  • トークンの有効期限が切れたときの認証トークンの削除。ただし、構成によっては、トークンが使用していたディスク容量が解放されるまでに数週間かかることがあります。自動削除では十分なディスク容量を維持できない場合は、サポートにお問い合わせのうえ、トークンを手動で削除して容量を回復する方法をご確認ください。
  • データの圧縮: Edge for Private Cloud 4.51.00 以降では、Apigee Cassandra の新規 インストールで、 Leveled Compaction Strategy を使用してキースペースが作成されます。

    Edge for Private Cloud 4.54.00 にアップグレードされた以前のバージョンの Edge for Private Cloud のインストールでは、以前の圧縮戦略が保持されます。既存の圧縮戦略が SizeTieredCompactionStrategyの場合は、ディスク使用率が向上する LeveledCompactionStrategyに変更することをおすすめします。手順については、 Cassandra の圧縮戦略を変更する をご覧ください。

注: Cassandra がデータの圧縮を行うと、かなりの量の CPU サイクル とメモリが消費される可能性があります。ただし、圧縮が完了すると、リソース使用率は通常に戻ります。 各ノードで 'Nodetool compactionstats' コマンドを実行して、圧縮が実行されているかどうかを確認できます。compactionstats の出力には、実行を待機している圧縮があるかどうかと、完了までの推定時間が表示されます。