Linux.conf.au 2003 | AbstractsHigh Availability using Reliable Server PoolingThomas Dreibholz, Michael TuexenBioPaper AudioOther files (eg source code)
Providing fault tolerancy is crucial for a growing number of IP-based applications. There exist a lot of proprietary solutions for this problem, but free alternatives are rare. Currently the IETF RSerPool working group (http://www.ietf.org/html.charters/rserpool-charter.html) is standardizing a protocol suite for Reliable Server Pooling, which copes with the challenge of providing high availability by providing redundant servers. Servers for the same service are grouped into a server pool, which is identified by a pool handle (PH). A server in a pool is called pool element (PE), a user of a pool is called pool user (PU). When a PE fails, its PUs simply select another one from the pool and initiate an application-specific failover procedure. This failover is supported by the RSerPool protocol suite. Each PE registers at a name server and is then continously supervised by that specific name server. All name servers of an operational scope provide a redundant system for name resolution from pool handles to transport addresses of pool elements to pool users. RSerPool uses SCTP (RFC 2960) to provide network fault tolerance and address scoping functionality.The rsplib is a prototype implementation of the RSerPool protocol suite developed under the GNU Public License in cooperation between Siemens (http://www.siemens.com) and the Computer Networking Technology Group (http://tdrwww.exp-math.uni-essen.de) of the University of Essen. It runs under Linux, FreeBSD and Darwin and uses our SCTP implementation available from http://www.sctp.de/sctp.html or the Linux and FreeBSD kernel implementations. It is available from http://www.sctp.de/rserpool.html. This work is partially funded by BMBF (http://www.bmbf.de). Our paper covers aspects of designing and implementing highly available applications using RSerPool with our rsplib implementation. First we will give an introduction of the RSerPool protocol suite and an overview of the rsplib components. Then we describe the rsplib API especially focussing on the implementation of pool element and pool user programs to provide high reliability. All API descriptions are accompanied by code examples for better understanding. We present applications for the RSerPool framework, showing the problems of today's Internet applications and how to improve them by using RSerPool and our rsplib implementation. Therefore we cover not only new applications but also look at existing software and describe methods for improving them by using RSerPool. Finally we show how distributed computing architectures can make use of the RSerPool architecture. The original Tux penguin is copyright by Larry Ewing. Linux is a trademark of Linus Torvalds. © 2002 Linux Australia. |