Hello,

We would like to use a shared filesystem. Will ALL the accounts on 
each server. Then we would use a load balancing package ( Resonate )
in front of the servers. Should one server fail the service would
continue.

                            Network
                              /\
                             /  \
                            /    \
                           /      \ 
                ResonateMaster-----ResonateSlave
                        |\          /|
                        | \        / |
                        |  \      /  |
                        |   \    /   |
                        |    \  /    |
                        |     \/     |
                        |     /\     |
                        |    /  \    |
                        |   /    \   |
                        |  /      \  |
                        | /        \ |
                        |/          \|
                     cyrusbox1   cyrusbox2
                         \           /
                          \         /
                           \       /
                            \     /
                             \   /
                              \ /
                              San ( shared filesystem)


More cyrusboxes can be added to access the San and be linked back to
the resonate boxes. This allows us to scale the service as necessary
and provide redundancy in the event of a failure. If an imap server
fails then the Resonate machines would not route ( bad choice of
words perhaps but thats basically what Resonate does ) requests to it.
So, each imap server must see the same filesystem and since one
connection can come from one server to a mailbox and another from
a different server some form of locking mechanism must be used to
garuantee mutual exclusion. The big question as already asked is,
Does a clustering file system that allows such file system sharing
provide sufficient protection or would the application
itself (in this case cyrus) need to be made aware that accesses to its
data could be made by processes running on a different machine?

We already do this with our web servers using AFS instead of a SAN.
But the web servers deliver static data so doing this is very simple
for them. No one's trying to write while the web servers are reading.




Ken Murchison wrote:
> 
> [EMAIL PROTECTED] wrote:
> >
> > Here is the idea:
> >
> >             CyrusBox1         CyrusBox2
> >                   \           /
> >                    `-------------\    __/
> >                             SAN
> >
> > The questions are:
> > 1) Can it be done with out modifications to cyrus code?
> > 2) if not, what has to be done
> > 3) perhaps someone would like to do it for a reward in american presidents?
> 
> What are you trying to accomplish with the SAN?  Are your trying to have
> a shared filesystem, or just shared storage (each server has its own
> partition on the array)?
> 
> If you're just looking for shared storage, than Cyrus _should_ work
> as-is.
> 
> If you're looking for a shared filesystem, then I think you want to look
> below the application layer to something like SGI's CXFS (Clustered XFS
> filesystem).
> 
> Which president in particular?  I'm partial to several Ben Franklins
> myself ;-)
> 
> Ken
> --
> Kenneth Murchison     Oceana Matrix Ltd.
> Software Engineer     21 Princeton Place
> 716-662-8973 x26      Orchard Park, NY 14127
> --PGP Public Key--    http://www.oceana.com/~ken/ksm.pgp

Reply via email to