Linux
SMTP/IMAP 故障轉移,文件系統選項?
給定兩台執行 SMTP 和 IMAP 服務的主機,您如何最好地讓它們成為冗餘主機,以便在另一台出現故障時輕鬆接管?
請記住,沒有其他伺服器可以託管網路文件系統,並且您必須假設兩者中的任何一個都可能中斷。
rsync 肯定會失去郵件,除非它可以被 fanotify 或 inotify 之類的東西觸發。即便如此,我什至不想考慮該設置的磁碟 i/o。
您正在尋找的是 DRBD 以保持文件系統同步http://www.drbd.org/。自 2.6.33 起,這已包含在 linux 核心中
三思而後行。讓一個客戶端(或更糟糕的兩個)同時訪問不同主機上的同一個 IMAP 郵箱可能會破壞一切。所以你會破壞生產中的東西,而你只是想確保在緊急情況下獲得故障轉移。
徹底測試所有可能性和選項。為了讓事情更容易,我會使用第二個作為半冷待機。所有 SMTP 和 IMAP 都將位於一台伺服器上,並通過分佈式文件系統 (DRBD) 連接到另一台伺服器。在緊急情況下,您先關閉第一個,然後在另一個上切換 IP 並重新啟動另一個。在這種情況下,對郵箱儲存的訪問更容易管理,沒有並發,因此也沒有不一致。
另一方面,您可能希望在分割郵箱的位置進行負載平衡。一半在一台伺服器上傳遞,另一半在另一台伺服器上傳遞。當您複製儲存時,您可以(在緊急情況下)切換到干淨的機器並在那裡執行所有郵箱。
總結:問題是對儲存的並發訪問。解決該問題,您就可以進行故障轉移/高可用性/負載平衡。