Apache Cassandra 維護工作

本節說明 Cassandra 的定期維護工作。

反熵維護

Apache Cassandra 環狀節點需要定期維護,確保所有節點的一致性。如要執行這項維護作業,請使用下列指令:

apigee-service apigee-cassandra apigee_repair -pr

執行這項指令時,Apigee 建議採取下列做法:

  • 在每個 Cassandra 節點上執行 (跨所有區域或資料中心)。
  • 一次只在一個節點上執行,確保環中所有節點的一致性。 同時在多個節點上執行修復作業,可能會影響 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「忘記刪除」相關的問題。
  • 在不同節點上於不同天執行,或排定時間,讓每個節點之間間隔數小時。
  • 使用 -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 會使用分層壓縮策略建立鍵空間。

    如果安裝的是舊版 Edge for Private Cloud,但已升級至 Edge for Private Cloud 4.54.00,則會保留先前的壓縮策略。如果現有的壓縮策略是 SizeTieredCompactionStrategy,Apigee 建議改用 LeveledCompactionStrategy,以提高磁碟使用率。如需操作說明,請參閱「變更 Cassandra 壓縮策略」。

注意:Cassandra 執行資料壓縮時,可能會耗用大量 CPU 週期和記憶體。不過,壓縮作業完成後,資源使用率應會恢復正常。 您可以在每個節點上執行 'Nodetool compactionstats' 指令,檢查壓縮作業是否正在執行。compactionstats 的輸出內容會告知您是否有待執行的壓縮作業,以及預估完成時間。