[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [SAGE] number of eggs in a basket



On 2005-01-06 at 17:32 -0500, Jan Schaumann wrote:

> I have a system that basically is a single point of failure:  if it's
> down, nothing goes.  The services on that machine are WWW, NIS, NFS and
> mail.  Mail is delivered to ~/.mail so mail can be read via NFS and need
> not be fetched.

The answer is "it depends."  :-)

Services that can fail over automaticly to moderately easily are
perfectly reasonable to put on a pair of servers -- one's the primary,
ones' the backup.  If the primary fails, cut over to the backup.  (Hand
wave, hand wave - it's rarely quite that easy).

Other services depend a lot on just how you've got them deployed.
Take DNS and web service as examples.

With DNS, any machine that has a copy of the zone files and can do
virtual IP interfaces will work just fine.  When primary DNS dies,
you activate a virtual interface with the address of the DNS server
and manually start DNS.  Instant restoration of service, cheap and
easy.

With web service, it depends strongly on whether your raw HT files
are on the local disk or a server, if you access thru a DB or not,
what kinds of certificates you need, what kind of software you might
have that is or isn't too expensive to duplicate, ya-da, ya-da.  But
assuming these aren't insurmountable difficulties, the principle is
the same -- bring up a virtual interface, start up httpd on the
second server, and you're off.

Things get a bit more complex but still manageable when you start
putting multiple services on a single machine and still want to
fail them over.  In a case like that, I'd allocate a name and
address for each service: dns, www, dhcp, etc.  Then have the
primary server put up one virtual interface for each service.  If
an individual service dies (db corruption, lose the spindle with
DNS data but not the HT files, etc) you can even have both machines
running at the same time -- provided they don't both try to provide
the same service, of course.

With a situation like that, you put as many services on a pair of
machines as they can handle.  The services that can't be paired
you put on individual machines.


Some other downsides to one server per service:

Most of us have or will soon have limited power and cooling capacity
in our server rooms.  One server per service can suck up a fair 
amount of capacity.

Server-class machines aren't cheap.  But if you can run a bunch of
services on a pair of machines, you don't need server-class machines.
Just machines fast enough for those services.

Conversely, if you put those services on old PCs running Linux, they'll
have all the reliability of old PCs.  IMHO better to buy a couple of
good ones.

Fewer machines to maintain and admin means lower cost.  Granted, it
may not be a *lot* lower, depending on the rest of your environment.
But it will be lower.


YMMV, offer only available to adults over 18, not valid where explicitly
prohibited by law, etc, etc.

Steve
-- 
"There's a lot of my personality in my characters. I think that's why
 smart-asses are over-represented."
    Christopher Moore, in http://www.chrismoore.com/world_domination.htm