[erlang-questions] Fault-Tolerant TCP/IP Servers

Rodrigo Ahumada <>
Wed Jul 16 17:27:22 CEST 2008


David Mercer escribió:
> Say I have a TCP/IP server (e.g., a web server, FTP server, etc.) 
> written in Erlang, and I want it to work through hardware failures; I 
> need at least two of them.  The problem is, clients are connecting to 
> the primary’s IP address, so when it fails, client connections are 
> refused instead of being rerouted to the secondary.  What is the Erlang 
> approach to solving this?
> 
>  
> 
> My thought is that you have the secondary detect the failure and send 
> the appropriate commands to the network to redirect traffic for the 
> primary server’s IP address to the secondary.  That’s my idea, but I 
> don’t really know if this is the appropriate solution, nor how to 
> implement something like this in Erlang.

i think you want something like CARP-PFSync from OpenBSD. The problem is 
that CARP is only to have a shared IP, it does nothing with TCP 
connections running in the box.

OpenBSD pfsync is also a kernel system, and is aware of CARP, that's way 
it can detect when a CARP master is down, and also is in the kernel 
managing TCP and firewal connections, so it can do failover on TCP.

I don't know if there is some kernel notification of changes in CARP 
configuration to userspace program... if there is one, you could build a 
failover erlang server around that. (i think there is one: 
http://www.openbsd.org/cgi-bin/man.cgi?query=ifstated&sektion=8 )

excuse my english

	

	
		
__________________________________________________ 
Preguntá. Respondé. Descubrí. 
Todo lo que querías saber, y lo que ni imaginabas, 
está en Yahoo! Respuestas (Beta). 
¡Probalo ya! 
http://www.yahoo.com.ar/respuestas 




More information about the erlang-questions mailing list