我有兩台帶有共享 glusterfs 磁碟的伺服器,都運行 dovecot 並從該共享磁碟提供郵件。使用者只會從其中一台伺服器讀取郵件,但郵件會同時傳送到兩台伺服器。有時,我在訪問收件匣 maildir 資料夾時會遇到問題:
IMAP(使用者):開啟(/home/user/Maildir/dovecot-uidlist)失敗:權限被拒絕
使用者無法開啟收件匣。存取其他資料夾工作正常。如果我刪除 dovecot 索引檔案並重新啟動 dovecot 一切正常。
我該怎麼做才能讓這個設定更可靠?
我在兩台伺服器上的鴿舍設置:
mmap_disable = no
dotlock_use_excl = yes
mail_nfs_storage = yes
mail_nfs_index = no
如果一切都失敗了,如果日誌中有錯誤,我可以建立一個 bash 腳本來清理 dovecot 索引檔案...
答案1
我為幾個專案部署了 glusterfs,但沒有將其用作 IMAP/SMTP 儲存的後端儲存。
但根據經驗可以說幾點:
首先,我不建議任何人在 IMAP 和 SMTP 等高事務工作負載上使用分散式檔案系統作為儲存後端。由於它們不能很好地工作,主要是因為兩個原因:高延遲和檔案鎖定問題。
其次,在 gluster freenode 頻道上花了相當長的時間看到人們報告 Dovecot 抱怨 gluster 的索引不斷損壞。因此,我強烈建議您使用其他一些後台儲存複製解決方案、dsync 複製或類似的解決方案。
希望這可以幫助。
答案2
我認為你應該設定 mail_nfs_index = yes,並確保使用始終將相同 IP 重定向到相同後端伺服器的代理。此連結可以幫助: https://wiki.dovecot.org/MailLocation/SharedDisk