Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 9 Nov 2002 22:13:15 +0100 (MET)
From:      Michael Grant <mg-fbsd3@grant.org>
To:        freebsd-cluster@FreeBSD.ORG
Subject:   Re: clustering freebsd
Message-ID:  <200211092113.gA9LDFG28495@splat.grant.org>

next in thread | raw e-mail | index | archive | help

Alex wrote:
> For most application it means rewriting the software for the use in a
> cluster.

That's a shame, that will make it much much harder, I don't really
want to start messing with apache, imapd, or stuff like that where I
would end up having to support a parrallel version.  Surely there must 
be an easier way?

> Check the port system for the strings cluster, MPI, there is
> thirty option but i forgot this. (you find it on some site looking for
> MPI; could be MVP but i'm not sure).

then Greg Lewis wrote:
> PVM.  There are variants of MPI too, MPICH, LAM, etc.  There are even
> variants for specific hardware like Myrinet.
>
> You may also want to look into the PBS port, although its sort of old
> and should be updated to a more recent OpenPBS version (I have 2.3.14,
> which is free from the nastier license terms).  There is also a SLURM
> port that has appeared recently and someone was working on a SGE port
> too.
>
> These are more HPC clustering tools though and you seem to be looking
> in the HA space instead.

Wow, alphabet soup!  I admit that I've never heard of MPI, PVM, MPICH, 
LAM, or HPC.  I have heard of beowulf.  I'll do some more reading on
these.  Thanks.

> "Clustering software" is rather a broad category.  There is software
> in that category that runs on FreeBSD, but you'll need to be more
> specific to get better answers :).

It's possible that what I want doesn't exist (yet). I would like to
make something highly reliable, but not necessarily something that
involves failover to a hot spare.  In my mind, I'd rather have 2 or
more boxes there available to answer requests rather than one sitting
there uselessly until the other fails.

I imagine having multiple machines, they may be running an identical
image of the OS or they may each have their own OS, at any rate, I
don't want to take down the entire cluster to upgrade the OS.

I imagine the user's files available on all machines in the cluster.
This means that if they log into a shell on one box, they modify a
file, the modifications are seen by the other boxes.  For example,
they modify their web page, all the web servers see the change.  They
delete a message from their mailbox, all servers in the cluster see
the change.  So either the data is mirrored in real time or there's
some other back end disk farm somewhere.

Whether the sharing is done via iSCSI or double-ended SCSI or a LAN
mirror, I'm not sure what's best.  The iSCSI stuff sounds pretty neat
if you could actually mount the disk read/write on more than one
machine and run Vinum on them as Charles Rouzer says.  I never heard
of this, but it sounds like what I had in mind to share the user data
between machines.

I have seen double-ended SCSI used in a failover situation where only
one machine mounts the SCSI disk(s) read/write.  I saw this at Sun
nearly 10 years ago.

> I don't believe FreeBSD currently has anything for transparent process
> migration like BProc or MOSIX (although IIRC MOSIX was originally 
> written for BSD).

As for process migration, that would be nice.  Andy's phase-2 stuff
sounds like it will do that someday.  As of today, I could certainly
live with having to kick the shell user's off and having them log back 
into another server.  imap and web users probably wouldn't notice a
thing if the server they were connected to went down, maybe just a
slight timeout before the clients reconnected to one of the up
servers.  

It's not my goal to build a cluster to run some massively parrallel
program to grind out an answer, my goal is oriented towards spreading
out the workload amongst multiple boxes and creating something that's
very highly available.

I also do not want to modify each individual application to run on the 
cluster, I want to run stuff that's out of the box, out of the ports
collection or something that I can just type "make install".  Imagine
if I had to modify apache by hand every time a new version of apache
came out!  Ok, that's not a reasonable example.  Imagine that I use
something from the ports collection that nobody took the time to
modify to run on some freebsd cluster.  I'd have to modify it and
probably end up supporting it.  That could be a nightmare.

Does this rambling help you understand more what I'm looking for?
Does it exist today or is Andy's phase-2 stuff what I want?

Still unanswered, for a cluster of machines, is there some front end
machine that somehow directs requests around like NAT/ip-masquerading
to the back-end machines?  Alex mentioned "Virtual IP addresses".  Is
this something that happens at the router/hub level?

Thanks for your responses, this is getting interesting!

Michael Grant

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-cluster" in the body of the message




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