Here are some book recommendations to get you started on High Availability and Clustering, both as an administrator or developer:
Blueprints for High Availability by Evan Marcus, Hal Stern
Everybody who had the chance to chat with LarsMarowskyBree and ask him some questions will have noticed that he keeps pointing out that all of them are answered in this book. And: That is most likely true. This book is a true gem, aimed at a person who wishes to understand what High Availability is all about and how to deploy High Availability systems. It starts with explaining how RAID works, the caveats of uninterruptible power supplies, of course clustering and eventually ends with a discussion of how to implement disaster resilence and how to get your data centre plus the admin staff over to the backup site. All is clearly written, real world examples, anecdotes and checklists provide additional value.
The Linux Enterprise Cluster: Build a highly available cluster using commodity hardware and free software by Karl Kopper. It provides a good introduction to both Linux-HA (heartbeat) clusters along with other topics such as
LVS clusters, and the use of tools like System Imager. Karl is a member of the Linux-HA community and has been on our mailing lists for a while now. AlanRobertson and horms acted as technical reviewers for this book.
In Search of Clusters by Gregory F. Pfister A general introduction to the different kinds of clustering, and their merits. A real classic.
Fault tolerance in Distributed Systems by Pankaj Jalote
A hands-on book for programmers looking for algorithms to use. Starting with a definition of vocabulary, it explains everything from communication fundamentals through distributed transactions upto data replication and distributed snapshots. In LarsMarowskyBree's opinion, a must read for any developer.
Distributed Algorithms by Nancy Lynch A very through book describing and proving many fundamental algorithms used in distributed systems. And in particular, showing the impossibility results. A book which will be highly useful to an ambitious developer or researcher, but which will prove a dry read for someone looking for hands-on experience.
Transaction Processing: Concepts and Techniques by Jim Gray, Andreas Reuter
Most of the stuff we are doing has already been researched for Online Transaction Processing. If you need to understand transactions, atomicity, or need to implement a journal, or even understand how journaled filesystems really work, this is the book to read. However, it is not an easy read; this tackles very complex topics.