[Dovecot] distributed mdbox

Timo Sirainen tss at iki.fi
Mon Apr 9 10:15:37 EEST 2012


Yeah, not caching then. I know Glusterfs people implemented some fixes/workarounds to make Dovecot work better. I don't know if all of those fixes are in the public glusterfs.

On 6.4.2012, at 18.39, James Devine wrote:

> As it turns out I can duplicate this problem with a single dovecot server
> and a single gluster server using mdbox, so maybe not caching?  This being
> the case I don't think director would help
> 
> On Thu, Apr 5, 2012 at 7:16 PM, James Devine <fxmulder at gmail.com> wrote:
> 
>> 
>> 
>> On Fri, Mar 23, 2012 at 7:39 AM, <list at airstreamcomm.net> wrote:
>> 
>>> On Wed, 21 Mar 2012 09:56:12 -0600, James Devine <fxmulder at gmail.com>
>>> wrote:
>>>> Anyone know how to setup dovecot with mdbox so that it can be used
>>> through
>>>> shared storage from multiple hosts?  I've setup a gluster volume and am
>>>> sharing it between 2 test clients.  I'm using postfix/dovecot LDA for
>>>> delivery and I'm using postal to send mail between 40 users.  In doing
>>>> this, I'm seeing these errors in the logs
>>>> 
>>>> Mar 21 09:36:29 test-gluster-client2 dovecot: lda(testuser34): Error:
>>> Fixed
>>>> index file /mnt/testuser34/mdbox/storage/dovecot.map.index:
>>> messages_count
>>>> 272 -> 271
>>>> Mar 21 09:36:30 test-gluster-client2 dovecot: lda(testuser28): Error:
>>> Log
>>>> synchronization error at seq=4,offset=3768 for
>>>> /mnt/testuser28/mdbox/storage/dovecot.map.index: Append with UID 516,
>>> but
>>>> next_uid = 517
>>>> Mar 21 09:36:30 test-gluster-client2 dovecot: lda(testuser28): Error:
>>> Log
>>>> synchronization error at seq=4,offset=4220 for
>>>> /mnt/testuser28/mdbox/storage/dovecot.map.index: Extension record update
>>>> for invalid uid=517
>>>> Mar 21 09:36:30 test-gluster-client2 dovecot: lda(testuser28): Error:
>>> Log
>>>> synchronization error at seq=4,offset=5088 for
>>>> /mnt/testuser28/mdbox/storage/dovecot.map.index: Extension record update
>>>> for invalid uid=517
>>>> Mar 21 09:36:30 test-gluster-client2 dovecot: lda(testuser28): Warning:
>>>> fscking index file /mnt/testuser28/mdbox/storage/dovecot.map.index
>>>> Mar 21 09:36:30 test-gluster-client2 dovecot: lda(testuser34): Warning:
>>>> fscking index file /mnt/testuser34/mdbox/storage/dovecot.map.index
>>>> 
>>>> 
>>>> This is my dovecot config currently:
>>>> 
>>>> jdevine at test-gluster-client2:~> dovecot -n
>>>> # 2.0.13: /etc/dovecot/dovecot.conf
>>>> # OS: Linux 3.0.0-13-server x86_64 Ubuntu 11.10
>>>> lock_method = dotlock
>>>> mail_fsync = always
>>>> mail_location = mdbox:~/mdbox
>>>> mail_nfs_index = yes
>>>> mail_nfs_storage = yes
>>>> mmap_disable = yes
>>>> passdb {
>>>>  driver = pam
>>>> }
>>>> protocols = " imap"
>>>> ssl_cert = </etc/ssl/certs/dovecot.pem
>>>> ssl_key = </etc/ssl/private/dovecot.pem
>>>> userdb {
>>>>  driver = passwd
>>>> }
>>> 
>>> I was able to get dovecot working across a gluster cluster a few weeks ago
>>> and it worked just fine.  I would recommend using the native gluster mount
>>> option (need to install gluster software on clients), and using
>>> distributed
>>> replicated as your replication mechanism.  If you're running two gluster
>>> servers you should have a replica count of two with distributed
>>> replicated.
>>> You should test first to make sure you can create a file in both mounts
>>> and see it from every mount point in the cluster, as well as interact with
>>> it.  It's also very important to make sure your servers are running with
>>> synchronized clocks from an NTP server.  Very bad things happen to a
>>> (dovecot or gluster) cluster out of sync with NTP.
>>> 
>>> What storage method are you using?  I'm able to produce errors within
>> seconds of starting postal with more than one thread



More information about the dovecot mailing list