<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2722.900" name=GENERATOR></HEAD>
<BODY style="MARGIN-TOP: 2px; FONT: 8pt Tahoma; MARGIN-LEFT: 2px">
<DIV><FONT size=1>Morning again,</FONT></DIV>
<DIV><FONT size=1></FONT> </DIV>
<DIV><FONT size=1>Thank you very much for pointing me in the right
direction.</FONT></DIV>
<DIV><FONT size=1></FONT> </DIV>
<DIV><FONT size=1>I just want to comment on the BRILLIANT and QUICK responses to
all questions. I appreciate it.</FONT></DIV>
<DIV> </DIV>
<DIV>Regards</DIV>
<DIV>Daniel</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>Danie Schutte<BR>Phone: +27 - 11 - 203 - 1613<BR>Mobile:
084-468-3138<BR>e-Mail: <A
href="mailto:Daniesc@tebabank.com">Daniesc@tebabank.com</A><BR><BR>>>>
Klacke <klacke@bluetail.com> 12/06/02 11:23AM >>><BR>On Fri, Dec
06, 2002 at 09:31:18AM +0200, DANIESC SCHUTTE wrote:<BR>> Morning
all,<BR>> <BR>> this morning I'm asking, a hopefully trivial question,
about making a system more robust, and the more I see from Erlang, the more I am
impressed.<BR>> <BR>> I have the following scenario, I have EXTERNAL
clients, connecting to a specific IP and Port and an Erlang Server managing the
connections and requests. Unfortuanately the External clients are stupid
and can NOT change the IP they connect to when that box fails.<BR>> <BR>>
Is there a way of creating a "virtual ip address" to which external clients can
connect, but which is handled and failed over between / among erlang nodes as
there are multiple nodes available for processing? <BR>> <BR>> Or is the
only solution a server cluster with hardware failover?<BR><BR><BR>This is the
sort of software that we have written at Alteon<BR>for years now. There are no
libraries in the erlang distro<BR>to do this. You have to write it
yourself.<BR><BR>One way to do it is:<BR><BR>1. Decide which node should have
the IP.<BR><BR>2. Bring up virtual interface on that machine. (This is even
<BR> doable on win32, I did that a couple of years ago)<BR><BR>3.
Start to listen for incoming tcp conns.<BR><BR>4. All nodes monitor each other.
If they see that a node<BR> goes down, they must migrate the virt
IPs that were previously<BR> on that node to themselves.<BR><BR>5.
Once they have decided which node has which IP, the surviving<BR>
nodes bring up virt interfaces and <BR> do gratiotous (uhhh is that
hard to spell or what) ARP on the IPs<BR> thereby moving the IP
address from one dead machine to themselves.<BR><BR><BR>This was done in the
eddie project initially and I think you can<BR>find at least some useable erlang
code in that project that you can<BR>snitch. Search google for
eddie.<BR><BR><BR><BR>/klacke<BR><BR><BR>-- <BR>Claes
Wikstrom
-- Caps lock is nowhere and<BR>Alteon
WebSystems
-- everything is under
control <BR><A
href="http://www.bluetail.com/~klacke ">http://www.bluetail.com/~klacke </A>
<BR>cellphone: +46 70 2097763<BR></DIV></BODY></HTML>