優化 Zimbra Collaboration Suite 中的郵件存儲

在我們的一所 以前的文章致力於在企業中實施 Zimbra Collabortion Suite 時進行基礎設施規劃,據說該解決方案運行的主要限制是郵件儲存中磁碟設備的 I/O 速度。 事實上,當企業的數百名員工同時存取相同郵件儲存時,從硬碟寫入和讀取資訊的通道寬度可能不足以滿足服務的回應操作。 如果對於 Zimbra 的小型安裝來說這不是一個特殊問題,那麼對於大型企業和 SaaS 提供者來說,所有這些都可能導致電子郵件無回應,從而導致員工效率下降以及違規SLA。 這就是為什麼在設計和操作大規模 Zimbra 安裝時,應特別注意優化郵件儲存中硬碟的效能。 讓我們來看看兩種情況,並嘗試找出在每種情況下可以應用哪些最佳化磁碟儲存負載的方法。

優化 Zimbra Collaboration Suite 中的郵件存儲

1. 設計大型 Zimbra 安裝時的最佳化

在高負載 Zimbra 安裝的設計階段,管理者必須選擇使用哪個儲存系統。 為了解決這個問題,您應該知道硬碟上的主要負載來自 Zimbra 協作套件中包含的 MariaDB DBMS、Apache Lucene 搜尋引擎和 Blob 儲存。 這就是為什麼為了在高負載條件下運行這些軟體產品,需要使用高速且可靠的設備。

正常情況下,Zimbra既可以安裝在硬碟的RAID上,也可以安裝在透過NFS協定連接的儲存空間上。 對於非常小的安裝,您可以將 Zimbra 安裝在常規 SATA 驅動器上。 然而,在大型安裝的情況下,所有這些技術都表現出各種缺點,例如記錄速度降低或可靠性低,這對於大型企業和 SaaS 供應商來說都是不可接受的。

這就是為什麼在大規模 Zimbra 基礎設施中最好使用 SAN。 正是這項技術目前能夠為儲存設備提供最大的吞吐量,同時由於能夠連接大量緩存,其使用實際上不會為企業帶來任何重大風險。 使用 NVRAM 是個好主意,許多 SAN 都使用 NVRAM 來加快寫入速度。 但最好停用磁碟本身上記錄資料的緩存,因為如果發生電源問題,可能會導致媒體無法修復的損壞和資料遺失。

至於選擇檔案系統,最好的選擇是使用標準的Linux Ext3/Ext4。 與檔案系統相關的主要細微差別是它應該使用參數安裝 -noatime。 此選項將停用記錄上次存取檔案的時間的功能,這意味著它將大大減輕讀寫的負擔。 一般來說,為 Zimbra 建立 ext3 或 ext4 檔案系統時,應使用下列實用程式參數 mke2fs:

-j — 建立檔案系統日誌 使用 ext3/ext4 日誌建立檔案系統。
-L 名稱 - 建立一個磁碟區名稱,然後在 /etc/fstab 中使用
-O 目錄索引 - 使用散列搜尋樹來加速大型目錄中的檔案搜索
-m 2 — 在大型檔案系統中為根目錄保留 2% 的捲
-J尺寸=400 — 創作一本大型雜誌
-b 4096 — 決定區塊大小(以位元組為單位)
-i 10240 - 對於訊息存儲,此設定應對應於平均訊息大小。 您應該密切注意該參數,因為它的值以後無法更改。

也建議啟用 目錄同步 用於 blob 儲存、Lucene 搜尋元資料儲存和 MTA 佇列儲存。 應該這樣做,因為 Zimbra 通常使用該實用程序 同步 確保將包含資料的 blob 寫入磁碟。 但是,當 Zimbra 郵件儲存或 MTA 在郵件傳遞期間建立新檔案時,有必要將相應資料夾中發生的變更寫入磁碟。 這就是為什麼,即使文件已經使用寫入磁碟 同步,其新增至目錄的記錄可能沒有時間寫入磁碟,因此可能會因伺服器突然故障而遺失。 感謝使用 目錄同步 這些問題是可以避免的。

2. Zimbra 基礎設施運作時的最佳化

常發生這樣的情況:使用 Zimbra 幾年後,其用戶數量顯著增加,而服務的反應速度卻一天比一天慢。 擺脫這種情況的方法很明顯:您只需向基礎架構添加新伺服器,以便服務能夠像以前一樣快速地運行。 同時,並非總是可以立即向基礎設施添加新伺服器以提高其效能。 IT經理通常需要花很長時間與會計或安全部門協調新伺服器的採購;此外,供應商常常會延遲交付新伺服器,甚至交付錯誤的東西,從而讓他們感到失望。

當然,最好是建立一個有儲備的 Zimbra 基礎設施,以便始終為它的擴展保留儲備,而不是依賴於任何人,但是,如果已經犯了錯誤,IT 經理只能抹平其後果:盡可能多。 例如,IT 經理可以透過暫時停用在運行期間定期存取硬碟的 Linux 系統服務來實現生產力的小幅提升,從而對 Zimbra 的效能產生負面影響。 因此,您可以暫時停用:

自動檔案系統、網路檔案系統 - 遠端檔案系統發現服務
— 列印服務
xinetd、vsftpd - 您可能不需要的內建 *NIX 服務
連接埠映射、rpcsvcgssd、rpcgssd、rpcidmapd — 遠端過程呼叫服務,通常與網路檔案系統結合使用
dovecot、cyrus-imapd、sendmail、exim、postfix、ldap — Zimbra 協作套件中包含的主要實用程式的副本
定位/更新資料庫 - 由於 Zimbra 將每個訊息儲存在單獨的檔案中,每天執行 updateb 服務可能會導致問題,因此可以在伺服器負載最小的情況下手動執行此操作

停用這些服務所節省的系統資源不會非常顯著,但即使在接近不可抗力的情況下,這也非常有用。 將新伺服器新增至 Zimbra 基礎架構後,建議重新啟用先前已停用的服務。

您也可以透過將 syslog 服務移至單獨的伺服器來最佳化 Zimbra 的操作,以便在操作期間它不會載入郵件儲存的硬碟。 幾乎所有電腦都適合這些用途,甚至是便宜的單板 Raspberry Pi。

來源: www.habr.com

添加評論