Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Sep 2005 11:59:35 -0700
From:      Danny Howard <dannyman@toldme.com>
To:        freebsd-questions@freebsd.org
Cc:        freebsd-scsi@freebsd.org
Subject:   Fibre Channel disks to two Systems?
Message-ID:  <20050909185935.GI31865@ratchet.nebcorp.com>

next in thread | raw e-mail | index | archive | help
[NOTE: If posting followup, please mind the
       cross-post to -questions and -scsi.]

Hello,

We host our PostgreSQL database on FreeBSD.  Until now, we have just
built the beefiest DB server we can spec, and then dump the data every
thirty minutes to a backup DB server, so if the primary DB server fails,
we load the database on the backup and fail over to the backup server.

But I'd rather offload the disk to an external storage device, then I
can have two identical DB servers, and if one fails, I swap the disks
over to the other DB server, mount the filesystem, possibly run data
consistency checks, and proceed from there.

>From my research, I am thus far most impressed with the SANbloc 2Gb,
which holds fourteen FC drives in a 3U rackmount.  It can be had with
redundant RAID controllers, or as a JBOD.  There are similar products
from other vendors as well.

I could concievably do the RAID in software by running a gstripe across a
set of gmirrors.

As I understand it, I can have an FC loop with one or more drives,
connected to two servers, and either server can talk to one or the other
drives exclusively.  My QUESTION is: how is the arbitration done in
FreeBSD?  You run camcontrol on either server and activate / deactivate
drives in the loop?

What happens if say, the primary server locks up in some weird manner?
Can it block the backup server from talking to the drives?  (We can
always have a NOC tech turn off a badly failed primary database, and
power-cycle the disk array, if needed ...)

A really far-out idea I had was that with fourteen drive bays I could
have two hot spares, and then set up a stripe across four mirrored pairs
(4x2 = 8-disk RAID10) and then with the remaining four drives assign
each to be a third component of the gmirrored pairs, let the gmirrors
sync up, then detach those drives from the gmirrors, mount them on the
backup database, gstripe those containers together, and have a
point-in-time "snapshot" of the drive array that could be mounted on the
backup server, from which I could run database dumps, or conduct
failover tests, etc.  (I could kick this around -geom. :)

Uhmmm, has anyone done similar?  Suggestions?  Feedback?  Advice?

Or, should I try to get a NetApp, or similar device, even though FreeBSD
does not support iSCSI, because NFS performance over GigE may still beat
FC?

Also, does anyone have a FreeBSD-friendly storage systems integrator or
other vendor they can reccomend, particularly one near the San Francisco
area?  I keep contacting various vendors who then fail to get back to
me. :(

Thanks for all feedback and suggestions!

Sincerely,
-danny

-- 
http://dannyman.toldme.com/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050909185935.GI31865>