本節將說明 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 修復功能的包裝函式,會在執行 Cassandra 修復功能前執行額外檢查。
詳情請參閱下列資源:
記錄檔維護
Cassandra 記錄會儲存在每個節點的 /opt/apigee/var/log/apigee-cassandra
目錄中。根據預設,最多可建立 50 個記錄檔,每個記錄檔的大小上限為 20 MB;一旦達到這個限制,系統會在建立較新的記錄時刪除較舊的記錄。
如果您發現 Cassandra 記錄檔會佔用過多空間,可以編輯 log4j 設定,修改分配給記錄檔的空間量。
- 編輯
/opt/apigee/customer/application/cassandra.properties
以設定下列屬性。如果該檔案不存在,請建立該檔案:conf_logback_maxfilesize=20MB # max file size conf_logback_maxbackupindex=50 # max open files
- 使用下列指令重新啟動 Cassandra:
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
磁碟空間維護
您應定期監控 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
的輸出內容會告知您是否有待執行的壓縮作業,以及預估完成時間。