31,19 €
Create high availability clusters to enhance system performance using CentOS 7
This book is targeted at system administrators: those who want a detailed, step-by-step guide to learn how to set up a high-availability CentOS 7 cluster, and those who are looking for a reference book to help them learn or refresh the necessary skills to ensure their systems and respective resources are utilized optimally. No previous knowledge of high-availability systems is needed, though the reader is expected to have at least some degree of familiarity with any spin-off of the Fedora family of Linux distributions, preferably CentOS.
CentOS is the enterprise level Linux OS, which is 100% binary compatible to Red Hat Enterprise Linux (RHEL). It acts as a free alternative to RedHat's commercial Linux offering, with only a change in the branding. A high performance cluster consists in a group of computers that work together as one set parallel, hence minimizing or eliminating the downtime of critical services and enhancing the performance of the application.
Starting with the basic principles of clustering, you will learn the necessary steps to install a cluster with two CentOS 7 servers. We will then set up and configure the basic required network infrastructure and clustering services. Further, you will learn how to take a proactive approach to the split-brain issue by configuring the failover and fencing of the cluster as a whole and the quorum of each node individually. Further, we will be setting up HAC and HPC clusters as a web server and a database server. You will also master the art of monitoring performance and availability, identifying bottlenecks, and exploring troubleshooting techniques.
At the end of the book, you'll review performance-tuning techniques for the recently installed cluster, test performance using a payload simulation, and learn the necessary skills to ensure that the systems, and the corresponding resources and services, are being utilized to their best capacity.
An easy-to-follow and step-by-step guide with hands-on instructions to set up real-world simple cluster scenarios that will start you on the path to building more complex applications on your own.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 159
Veröffentlichungsjahr: 2016
Copyright © 2016 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: January 2016
Production reference: 1250116
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78528-868-5
www.packtpub.com
Author
Gabriel Cánepa
Reviewers
Muhammad Kamran Azeem
Denis Fateyev
Lekshminarayanan K
Oliver Pelz
Commissioning Editor
Veena Pagare
Acquisition Editor
Subho Gupta
Content Development Editor
Zeeyan Pinheiro
Technical Editor
Vivek Pala
Copy Editor
Pranjali Chury
Project Coordinator
Suzanne Coutinho
Proofreader
Safis Editing
Indexer
Mariammal Chettiyar
Graphics
Disha Haria
Production Coordinator
Nilesh Mohite
Cover Work
Nilesh Mohite
Gabriel Cánepa is a Linux Foundation certified system administrator (LFCS-1500-0576-0100) and web developer from Villa Mercedes, San Luis, Argentina. He works for a worldwide leading consumer product company and takes great pleasure in using FOSS tools to increase productivity in all areas of his daily work. When he's not typing commands or writing code or articles, he enjoys telling bedtime stories with his wife to his two little daughters and playing with them, which is a great pleasure in his life.
I would like to thank God for the many blessings and the growth opportunities in personal, family, and professional life that He has given throughout my life.
I would like to thank my mother, who always encouraged me to get as much education as possible and to excel in everything I do. I'd also like to thank my wife, Monica, and our two daughters, Camila and Francesca, for their support, understanding, and patience during the long hours of troubleshooting and writing this book.
Next, I'd like to thank Andrea de Ampalio and Diego Cordoba from Carrera Linux Argentina (www.carreralinux.com.ar), who helped me learn and love Linux in the best Linux training academy—their people and Linux skills are without match, and Subho Gupta, Manasi Pandire, Zeeyan Pinheiro and Vivek Pala from Packt Publishing for their remarkable talent and support while we worked together on this book.
Last but not least, I'd like to thank Andrew Beekhoff and the team at Cluster Labs (http://clusterlabs.org/) for putting together the best and most complete cluster resource information guide out there, which served as the main source of my research.
Muhammad Kamran Azeem is a seasoned IT professional with twenty years of experience in IT. He started working as a PC technician in 1995 and gradually got into database administration, system administration, high performance computing, and, lately, information security. He also taught undergraduate and graduate level courses for C/C++, data structures and algorithm design, Oracle developer, and a lot more, in different universities in Pakistan.
Kamran holds a master's degree in IT, and is certified under CISSP, CEH, RHCE, OCP, and CCNA programs. He is the author of Pakistan's first book on Linux system administration titled Linux Pocket Reference for System.
Administrators, and many training videos on using Linux as the main desktop operating system, as well as Linux system administration, all available through his website http://wbitt.com.
He is an advocate of Free and Open Source Software (FOSS), and for the last ten years, he is the driving force behind the wave of adaptation of Linux in Pakistan.
He is currently working as a senior DevOps consultant for Praqma AS in Oslo, Norway, helping companies adopt modern software and IT infrastructure practices.
First, I would like to thank my wife, Rohina, for being the greatest support in what I do. I would also like to thank Mike Long, my employer, for encouraging me to undertake this book review project.
Denis Fateyev holds a master's degree in Computer Science and has been working with Linux for more than 10 years (mostly with RedHat and CentOS). He currently works as a Perl programmer and DevOps for a small German company. He has reviewed several books mostly related to CentOS, DevOps, and high availability technologies, including GitLab Cookbook, CentOS High Availability, CentOS High Performance by Packt Publishing. Being a keen participant in the open source community, he is a package maintainer at Fedora and Repoforge projects. He has a passion for foreign languages, namely, German and Spanish, and linguistics.
He can be reached at [email protected].
Lekshminarayanan K has been administering Linux/Unix servers since 2009. He had his first experience with the open source on Ubuntu 8.04 ever since then he has experienced many flavors of Linux like CentOS, Red-hat, Fedora and Debian. Lekshminarayan is also experienced in application administrations like Apache, Qmail, SVN, and GIT. He is currently teaching himself Shell and Python scripting and working as a Linux administrator at COMODO Inc.
During his free time, he enjoys photography and is too fond of books.
Oliver Pelz has more than 10 years of experience as a software developer and system administrator. He graduated with a diploma in Bioinformatics and is currently working at the German Cancer Research center in Heidelberg, where he has authored and coauthored several scientific publications in the field of Bioinformatics. Next to developing web applications and biological databases for his department and scientists all over the world, he is administrating a division-wide Linux-based data center and has set up two high-performance CentOS clusters for the analysis of high-throughput microscope and genome sequencing data. He loves writing code, riding his mountain bike in the Black Forest of Germany and is an absolute Linux and open source enthusiast for many years. He has contributed to several open source projects in the past and is also the author of the book CentOS 7 Linux Server Cookbook, Packt Publishing. He maintains an IT tech blog at www.oliverpelz.de.
I would like to thank my family and especially my wonderful wife Beatrice and little son Jonah for their patience and understanding for all these long working hours and the folks at Packt Publishing for the opportunity to review this manuscript, it was a great pleasure for me.
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at <[email protected]> for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www2.packtpub.com/books/subscription/packtlib
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.
If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view 9 entirely free books. Simply use your login credentials for immediate access.
CentOS is the enterprise level Linux OS, which is 100% binary compatible with Red Hat Enterprise Linux (RHEL). It acts as a free alternative to RedHat's commercial Linux offering, with only a change in the branding. A high performance cluster consists of a group of computers that work together as one set parallel, hence minimizing or eliminating the downtime of critical services and enhancing the performance of the application.
Chapter 1, Cluster Basics and Installation on CentOS 7, reviews the basic principles of clustering and outlines the necessary steps to install a cluster with two CentOS 7 servers.
Chapter 2, Installing Cluster Services and Configuring Network Components, coversetting up and configuring the basic required network infrastructure and clustering services.
Chapter 3, A Closer Look at High Availability, lists the components of a cluster in detail and demonstrates how to approach the split-brain problem by configuring the failover and fencing the cluster as a whole and the quorum of each node individually.
Chapter 4, Real-world Implementations of Clustering, covers how to implement a web server and a database server in your cluster.
Chapter 5, Monitoring the Cluster Health, talks about how to monitor the performance and availability of your cluster.
Chapter 6, Measuring and Increasing Performance, reviews performance tuning techniques for your recently installed high availability cluster.
To follow along with this book, you will need to download a CentOS 7 minimal install image from the project's website. You will be asked to install other packages (pacemaker, corosync, and pcs, to name a few examples) in each chapter as required.
This book is directed toward two groups of system administrators—those who want a detailed, step-by-step guide to setting up a high-performance and high-availability CentOS 7 cluster and those who are looking for a reference book to help them learn the necessary skills to ensure that their systems and the corresponding resources, and services are being utilized at their best capacity. No previous knowledge of performance tuning is needed to start reading this book, but the reader is expected to have at least some degree of familiarity with any spin-off of the Fedora family of Linux distributions, preferably CentOS.
In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.
Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows. To download the Employees table, go to https://launchpad.net/testdb/:
A block of code is set as follows:
New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "Highlight Install CentOS 7 using the up and down arrows ".
Warnings or important notes appear in a box like this.
Tips and tricks appear like this.
Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.
To send us general feedback, simply send an e-mail to <[email protected]>, and mention the book title via the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the erratasubmissionform link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our website, or added to any list of existing errata, under the Errata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.
Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at <[email protected]> with a link to the suspected pirated material.
We appreciate your help in protecting our authors, and our ability to bring you valuable content.
You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.
In this chapter, we will introduce the basic principles of clustering and show how to set up two Linux servers as members of a cluster, step by step.
As part of this process, we will install the CentOS 7 Linux distribution from scratch, along with the necessary packages, and finally configure key-based authentication for SSH access from one computer to the other. All commands, except if noted otherwise, must be run as root and are indicated by a leading $ sign throughout this book.
In computer science, a cluster consists of a group of computers (with each computer referred to as a node or member) that work together so that the set is seen as a single system from the outside.
The enterprise and science environments often require high computing power to analyze massive amounts of data produced every day, and redundancy. In order for the results to be always available to people either using those services or managing them, we rely on the high availability and performance of computer systems. The need of Internet websites, such as those used by banks and other commercial institutions, to perform well when under a significant load is a clear example of the advantages of using clusters.
There are two typical cluster setups. The first one involves assigning a different task to each node, thus achieving a higher performance compared with several tasks being performed by a single member on its own. Another classic use of clustering is to help ensure high availability by providing failover capabilities to the set where one node may automatically replace a failed member to minimize the downtime of one or several critical services. In either case, the concept of clustering implies not only taking advantage of the computing functionality of each member alone, but also maximizing it by complementing it with the others.
This type of cluster setup is called high availability (HA), and it aims to eliminate system downtime by failing over services from one node to another in case one of them experiences an issue that renders it inoperative. As opposed to switchover, which requires human intervention, a failover procedure is performed automatically by the cluster without any downtime. In other words, this operation is transparent to end users and clients from outside the cluster.
The second setup uses its nodes to perform operations in parallel in order to enhance the performance of one or more applications, and is called a high-performance cluster (HPC). HPCs are typically seen in scenarios involving applications and processes that use large collections of data.
As mentioned earlier, we will build a cluster with two machines running Linux. This choice is supported by the fact that this involves low costs and stability associated with this setup—no paid operating system or software licenses, along with the possibility of running Linux on systems with small resources (such as a Raspberry Pi or relatively old hardware). Thus, we can set up a cluster with very little resources or money.
