Latest on Cyrus and GFS?

Stephen L. Ulmer ulmer at ufl.edu
Fri Jan 17 16:04:48 EST 2003


 "jwatkins" == Jared Watkins <jwatkins at snowcrash.homeip.net> writes:

  jwatkins> I've not been able to find the answer to the GFS question
  jwatkins> in the archives.. so here goes.  If one were using a dual
  jwatkins> attach scsi cabinet.. or fibre channel..  would it
  jwatkins> possible to use cyrus on GFS from two or more servers all
  jwatkins> with r/w access?  I'm thinking of a setup that would have
  jwatkins> all user mailboxes visible to all cyrus servers.. but
  jwatkins> clients would be directed to different systems with
  jwatkins> perdition to balance the load.  So if one server needed to
  jwatkins> come down.. you would simply take that system out of the
  jwatkins> pool and direct the users hitting it to the remaining
  jwatkins> cyrus servers.. increasing their load... but leaving the
  jwatkins> clients none the wiser. Jared


We were attempting to use IBM's GPFS to do exactly this.  It isn't
going to work well.

The main problem is that Cyrus makes heavy usage of MMAP, and if you
turn of MMAP in Cyrus, you've still got locking issues within
BerkeleyDB.  I posted a patch to this list a few weeks ago that get
you about 85% of the way to using BerkleyDB's built-in RPC abstraction
for the mailboxes.db, but it's just not going to work as well as
Murder.

There are also uses of MMAP within Cyrus that are looked on as
unconventional.  For example, Cyrus will MMAP a file (for r/w), then
open the same file (from the same process) for writing -- thus
invalidating the map.  In a distributed filesystem, you've locked the
mmap'd region of the file across the cluster -- that invalidation if
*very* expensive.

There will also be regular-old file locking issues.  Since distributed
filesystems are slow with meta-data updates, stat(), fcntl(), and
friends are going to be painful.

A Murder allows segmentation (for most purposes) of the mailboxes.db,
which is the single-most-contended-for resource in Cyrus (as far as I
can tell).  The problem that *isn't* addresses is availability of each
IMAP back-end.  We're hoping to use IBM's HACMP for this, I think that
there is a Linux-ish, scriptable-takeover-on-hearbeat-failure hooya,
though I don't know what it is called.

Can it be done?  Yes.  It won't give you even close to the same
performance of a Murder.  In our environment, it just sucked and we
found out the hard way.


Regards,

--
Stephen L. Ulmer                              ulmer at nersp.nerdc.ufl.edu
Senior Systems Programmer                         http://www.ulmer.org/
Northeast Regional Data Center                      VOX: (352) 392-2061
University of Florida                               FAX: (352) 392-9440





More information about the Info-cyrus mailing list