dovecot 在 nfs 儲存環境設定
這問題在我更換大硬碟之後將 mail 實際存放改到 nfs 磁碟, 就出現 imap 搬移信件到特定目錄 lock 失敗的困擾, 剛剛終於解決..
我的目的不是多台 mail server 共享讀取 nfs 的檔案資料, 只是一台安裝在 VMWare 內的 mail server 讀取實體主機上面硬碟, 當 mail server 掛點, 可以快速切換恢復上線的需求.
- 在 nfs 開放的 storage 設定
[root@pd920 data]# cat /etc/exports : /data/maildata/ vm-mail(rw,no_root_squash,no_all_squash) :
主要是去掉 sync 參數, 原本設定為
/data/maildata/ vm-mail(rw,no_root_squash,no_all_squash,sync)
/data/maildata/ vm-mail(rw,no_root_squash,no_all_squash,sync)
- 在 dovecot 的參數設定
[root@vm-mail home]# cat /etc/dovecot.conf | grep -v "#" : protocols = imap pop3 mmap_disable = yes lock_method = dotlock mbox_read_locks = dotlock mbox_write_locks = dotlock mbox_lock_timeout = 30 protocol imap { imap_client_workarounds = delay-newmail outlook-idle netscape-eoh } :
主要是將 lock 機制都改成 dotlock , 增加以下這兩個設定就能迅速開啟 nfs 目錄的信件
mbox_read_locks = dotlock
mbox_write_locks = dotlock
mbox_read_locks = dotlock
mbox_write_locks = dotlock
- 信件目錄權限
後來發現搬移信件過程出現以下的錯誤訊息
cat /var/log/maillog : Apr 30 11:23:39 vm-mail dovecot: IMAP(jtsai): file_lock_dotlock() failed with mbox file /var/mail/jtsai: Permission denied Apr 30 11:23:39 vm-mail dovecot: IMAP(jtsai): file_lock_dotlock() failed with mbox file /var/mail/jtsai: Permission denied :
所以後來將存放 mail 的 /var/mail 開放可寫入權限來解決這問題