Karl Kopper - "Linux Enterprise Cluster: ..."

Posted By: Alexpal
Ну что, будем кластеры строить? :)

Karl Kopper, "Linux Enterprise Cluster: Build a Highly Available Cluster with Commodity Hardware and Free Software"
No Starch Press | ISBN 1593270364 | May 15, 2005 Year | CHM | 4 Mb | 464 Pages

The Linux Enterprise Cluster is a straightforward guide to building a network of multiple computers that pool their resources to act as one powerful computer. An accompanying CD-ROM provides all the software needed to build a Linux Enterprise Cluster on top of one's current Linux distribution, including the Linux kernel, rsync, the Systemlmager package, the Heartbeat package, the Linux Virtual Server package, the Mon monitoring package, and the Ganglia package. Chapters cover everything from handling packets and compiling the kernel to synchronizing servers, applying theory and practice, balancing loads, simple maintenance and management protocol, and more. Though intended for Linux users who are already familiar with the software's basics, The Linux Enterprise Cluster walks one through projects and pitfalls step-by-step with the expected thoroughness of a No Starch Press manual. A "must-have" for anyone interested in harnessing the power of a cluster using a much less expensive Linux base rather than purchasing a large, monolithic server.
The Linux Enterprise Cluster is a how-to book and explains how to convert two or more PCs into a high-reliability, high-availability cluster based on Linux and inexpensive hardware using free and mainly open source software - what would have been an unthinkable configuration back when mainframes ruled the earth.

The book starts by exploring what is meant when we talk about a "cluster" and offers the definition of a system that can be used as "a single computing resource" using "a local computing system comprising a set of independent computers and a network interconnecting them."

Key to the whole concept is that a cluster must not have a single point of failure. Should any of the individual computers in the cluster (the "nodes") fail, there must not be a failure of any service provided by the cluster. This means that any node in the cluster can fail and be rebooted without users of the cluster being aware of the events.

This leads to the four basic properties of a cluster, which are all about what we could quite reasonably, call "transparency":
— Users accessing cluster services don't know that they are using a cluster.
— Nodes that comprise the cluster don't need to be aware that they are part of a cluster.
— Applications running on nodes don't need to know they are running in a cluster environment.
— Servers that are not part of the cluster don't need to know when they are providing services to nodes in a cluster.

The basic architectural elements of a cluster are a load balancer, shared data storage and output devices. The load balancer sits between the nodes and the users and distributes the incoming workload to the node services. The shared data storage must support lock arbitration to ensure exclusive access for each process to items (files, blocks or bytes, as required) in the file system. The final basic architectural element, output devices, covers printers, fax lines, and so on.

To manage a cluster, we can have one more optional architectural element, a Cluster Node Manager. The cluster node manager can provide an application license service — a centralized user database and a performance-monitoring console.

Building a true enterprise-class cluster system is obviously quite a complex and challenging task. The book's approach is to use a number of readily available subsystems. These subsystems include server data synchronization using the rsync package; failover management using the open source Heartbeat software, which includes Stonith (which stands for "Shoot The Other Node In The Head") to ensure a failed system is really dead; the Linux Virtual Server project kernel patches to enable load balancing; and the Ganglia package for collecting and displaying node and cluster performance statistics.

This book is fascinating, and while it is quite technical in places, it also explains the topics clearly enough for those not quite so familiar with Linux to develop an understanding of what a cluster is.