本節說明 Cassandra 的定期維護工作。
防熵維護
Apache Cassandra 環形節點需要定期維護,以確保所有時程的一致性 節點。如要執行這項維護作業,請使用下列指令:
apigee-service apigee-cassandra apigee_repair -pr
Apigee 建議在執行這個指令時採取下列做法:
- 在所有區域或資料中心的每個 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 設定,分配記錄檔的儲存空間容量。
- 編輯「
/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 會自動執行下列作業來減少 自己的磁碟使用率:
- 權杖過期時刪除驗證權杖。不過 可能要幾週的時間來釋出權杖所使用的磁碟空間,實際情況取決於您的 此外還會從 0 自動調整資源配置 您完全不必調整資源調度設定如果自動刪除仍不足以維護 磁碟空間充足,請與支援團隊聯絡,瞭解如何手動刪除權杖以復原權杖 空白鍵。
資料壓縮注意事項:從 Private Cloud 4.51.00 開始,新安裝的 Apigee Cassandra 會使用 進階壓縮策略。
安裝升級至私有雲的舊版 Edge for Private Cloud 私有雲 4.51.00 會繼續沿用先前的壓縮策略。如果現有的 壓縮策略是 SizeTieredCompactionStrategy,建議變更為 LeveledCompactionStrategy,可提供更好的磁碟使用率。
注意:Cassandra 執行資料壓縮時,可能會耗費大量的 CPU 週期
和記憶體不過在壓縮完成後,資源使用率應可恢復正常。
您可以在每個節點上執行 'Nodetool compactionstats'
指令
檢查壓縮是否正在執行。compactionstats
的輸出結果會通知您
尚待執行的壓縮作業,以及預估的完成時間。