From the Inside Flap
Welcome! This book will introduce you to building computing solutions from groups of interconnected systems running the Linux operating system. If you want to learn practical information about building this type of solution, often called a Linux "cluster," read on!
I am writing this book because I believe the time has come for Linux cluster solutions to move into the mainstream information technology (IT) world from their current homes in universities and research institutes. This cannot happen until Linux clustered solutions, or "clusters," are introduced and de-mystified for mainstream system administrators and IT solution architects. If this information is what you are looking for, read on!
In this book, we examine some of the architectures, processes, and collections of technologies that may be used to build clustered Linux systems. We examine the reasons that Linux may make the best choice as the base operating system for a cluster. We will do this while attempting to avoid the assumptions and jargon that currently make building Linux clusters the domain of a small club of high-performance computing specialists. If this approach is what you are looking for, read on!
Learning to build Linux clusters is a journey, like learning any other complex technical task. One of the most difficult parts in any journey is just getting started. There is a folk saying that goes something like, "A map does you no good if you don't know where you are." This book will pick a starting point, identify some of the opportunities for Linux cluster solutions, define a process for creating a cluster solution, introduce you to some of the necessary components, and give concrete examples of cluster design and construction.
Let's begin the journey, shall we?About This Book
The intent of this book is to provide an introduction to clustered Linux systems for an audience that may not have any experience working with this type of solution. A cluster comprises multiple physical systems, interconnected and configured to act in concert with each other as if they were a single resource. Throughout, I assume a basic understanding of computer hardware, network, and operating system concepts or the ability to research required topics. I do not, however, assume previous experience with clustered systems.
This book is not intended to be an introduction to Linux system administration or TCP/IP network administration. I will make every attempt to point you to appropriate reference books and external sources of information as we proceed. Experience administering Linux or Unix systems and an understanding of network connections is essential to getting the most useful information from this book.
This book attempts to tie together the "big picture" for those system administrators and system architects that already understand the individual elements of that picture. Our goal is to learn how to configure and use Linux subsystems and tools on multiple physical computers to create the appearance of a single system "clustered" solution. This is a potentially complex endeavor that relies foremost on understanding the basic operation of the Linux operating system and subsystems which may involve network connections.Notation and Conventions
Throughout this book we will examine only clusters based on the Linux operating system. Indeed, that is why the title of the book is "Building Clustered Linux Systems." To avoid the constant repetition of the phrases "Linux clusters" and "Linux cluster," wherever I use the term "cluster" I am referring to a Linux cluster, unless specifically noted otherwise.
Whenever I need to illustrate Linux commands, subsystem names, command-line options, or URLs for Web sites, I will use the courier font to set the information apart from regular text. I will use the courier italic font for text that requires specific values to be substituted, such as "<ip-address>-kickstart". Both bold and italic are used in the text for emphasis.Using This Book
The initial chapter introduces the concept of a cluster and defines the term "cluster" as we will use it. Part one introduces the hardware components that make up a cluster, along with an architectural model that shows the relationship between the individual hardware components in various types of clusters. Part two applies Linux and open-source software to the software architecture of a cluster, pointing out available solutions and approaches. Part three discusses the economics and physical construction of cluster hardware, detailing the design and implementation details.
If you are an experienced system architect, and are anxious to get right to the Linux part of building clusters, start out with part two. If you wish to review hardware components and cluster architecture, begin at part one and progress through the remainder of the book. If you want to see details and processes for implementing clusters, you may start with part three, then progress to parts one and two, as desired.
From the Back Cover
Praise for Building Clustered Linux Systems
"The author does an outstanding job of presenting a very complicated subject. I very much commend this work. The author sets the pace and provides vital resources and tips along the way. He also has a very good sense of humor that is crafted in the text in such a way that makes the reading enjoyable just when the subject may demand a break. This book should be a requirement for those that are clustering or considering clustering and especially those considering investing a great deal of financial resource toward that goal."
¿Joe Brazeal, Information Technician III, Southwest Power Pool
"This book is for Beginner and Intermediate level system administrators, engineers, and researchers, who want to learn how to build Linux clusters. The book covers everything very well."
¿Ibrahim Haddad, Senior Researcher, Ericsson Corporate Unit of Research
"Nothing that I know of exists yet that covers this subject in as much depth and detail. The practical ¿hands-on¿ approach of this book on how to build a Linux cluster makes this a very valuable reference for a very popular, highly demanded technology."
¿George Vish, II, Linux Curriculum Program Manager and Senior Education Consultant, HP
"In my opinion there is a significant lack of literature on this subject. Most of the currently available books are either dated or do not address the complete picture of the range of decisions that must go into building a Linux cluster. I feel comfortable recommending this to anyone interested in building a Linux cluster to better understand both the technical aspects of building and designing a Linux cluster, but also the business aspects of the same."
¿Randall Splinter Ph.D., Senior Solution Architect, HP
"The author has set a precedent in the cluster design and integration process that is lacking in the industry today."
--Stephen Gray, Senior Applications Engineer, Altair Engineering, Inc.
The Practical, Step-by-Step Guide to Building and Running Linux Clusters
Low-cost, high-performance Linux clusters are the best solution for an increasingly wide range of technical and business problems. Until now, however, building and managing Linux clusters has required more specialized knowledge than most IT organizations possess. This book dramatically lowers the learning curve, bringing together all the hands-on knowledge and step-by-step techniques you'll need to get the job done.
Using practical examples, Robert Lucke simplifies every facet of cluster design and integration: networking, hardware, architecture, operating environments, data sharing, applications, and more. Lucke, who helped prototype and implement one of the world's largest Linux clusters, systematically addresses the key issues you'll encounter and the key decisions you'll have to make. Coverage includes:
- Basic clustering concepts, hardware components, and architectural models
- A step-by-step cluster creation process: design, installation, and testing
- Choosing and implementing the optimal hardware configuration for your environment
- Life in the fast LAN: high-speed cluster interconnects
- Software issues: distributions, bootup, disks, partitioning, file systems, middleware, and more