A tricky "Can I create a virtual IP grabbing Erlang Solution Or Is There an Easier Way

DANIESC SCHUTTE DANIESC.SCHUTTE@REDACTED
Fri Dec 6 10:26:23 CET 2002


Morning again,

Thank you very much for pointing me in the right direction.

I just want to comment on the BRILLIANT and QUICK responses to all questions.  I appreciate it.

Regards
Daniel



Danie Schutte
Phone: +27 - 11 - 203 - 1613
Mobile: 084-468-3138
e-Mail: Daniesc@REDACTED

>>> Klacke <klacke@REDACTED> 12/06/02 11:23AM >>>
On Fri, Dec 06, 2002 at 09:31:18AM +0200, DANIESC SCHUTTE wrote:
> Morning all,
> 
> 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.
> 
> 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.
> 
> 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? 
> 
> Or is the only solution a server cluster with hardware failover?


This is the sort of software that we have written at Alteon
for years now. There are no libraries in the erlang distro
to do this. You have to write it yourself.

One way to do it is:

1. Decide which node should have the IP.

2. Bring up virtual interface on that machine. (This is even 
   doable on win32, I did that a couple of years ago)

3. Start to listen for incoming tcp conns.

4. All nodes monitor each other. If they see that a node
   goes down, they must migrate the virt IPs that were previously
   on that node to themselves.

5. Once they have decided which node has which IP, the surviving
   nodes bring up virt interfaces and 
   do gratiotous (uhhh is that hard to spell or what) ARP on the IPs
   thereby moving the IP address from one dead machine to themselves.


This was done in the eddie project initially and I think you can
find at least some useable erlang code in that project that you can
snitch. Search google for eddie.



/klacke


-- 
Claes Wikstrom                        -- Caps lock is nowhere and
Alteon WebSystems                     -- everything is under control          
http://www.bluetail.com/~klacke      
cellphone: +46 70 2097763

#####################################################################################
The information contained in this message and or attachments is intended
only for the person or entity to which it is addressed and may contain
confidential and/or privileged material.  Any review, retransmission,
dissemination or other use of, or taking of any action in reliance upon,
this information by persons or entities other than the intended recipient
is prohibited. If you received this in error, please contact the sender and
delete the material from any system and destroy and copies.
#####################################################################################
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20021206/f2452018/attachment.htm>


More information about the erlang-questions mailing list