Building Clustered Linux Systems
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 BookThe 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 ConventionsThroughout 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 thecourier italicfont for text that requires specific values to be substituted, such as "<ip-address>-kickstart". Bothboldanditalicare used in the text for emphasis.Using This BookThe 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.