Apache Cassandra 維護工作

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

防熵維護

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

apigee-service apigee-cassandra apigee_repair -pr

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

  • 在所有區域或資料中心的每個 Cassandra 節點上執行。
  • 每次在一個節點上執行,確保環形中的所有節點一致。 在多個節點上同時執行修復工作 影響 Cassandra 的健康狀態

    如要確認節點上的修復工作是否順利完成,請查看節點的 名為 system.log 個檔案 ,以最新維修工作階段的 UUID,和「session finished」字樣。 以下是記錄項目範例:

    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 「forgotten deletes」。
  • 在不同日期的不同節點執行,或是安排時段 每節點執行需要數小時的時間
  • 使用 -pr 選項 (分區器範圍) 來指定主要分區器範圍 僅執行節點的 Pod

如果您為 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 節點工具修復的包裝函式。 ,在執行 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. 使用下列指令重新啟動 Cassandra:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

磁碟空間維護

建議您定期監控 Cassandra 磁碟使用率,確保至少 50% 每個磁碟都是免費的如果磁碟使用率超過 50%,建議您 新增更多磁碟空間,以減少使用的百分比。

Cassandra 會自動執行下列作業來減少 自己的磁碟使用率:

  • 權杖過期時刪除驗證權杖。不過 可能要幾週的時間來釋出權杖所使用的磁碟空間,實際情況取決於您的 此外還會從 0 自動調整資源配置 您完全不必調整資源調度設定如果自動刪除仍不足以維護 磁碟空間充足,請與支援團隊聯絡,瞭解如何手動刪除權杖以復原權杖 空白鍵。
  • 資料壓縮。建議將鍵空間的壓縮策略變更為 LeveledCompactionStrategy,需要 的磁碟使用率策略優於預設的 SizeTieredCompactionStrategy。詳情請見 進階壓縮策略

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