CentOS High Performance - Gabriel Canepa - E-Book

CentOS High Performance E-Book

Gabriel Canepa

0,0
31,19 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

Create high availability clusters to enhance system performance using CentOS 7

About This Book

  • Master the concepts of high performance and high availability to eliminate performance bottlenecks
  • Maximize the uptime of services running in a CentOS 7 cluster
  • A step-by-step guide that will provide knowledge of methods and approaches to optimize the performance of CentOS clusters

Who This Book Is For

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.

What You Will Learn

  • Install a CentOS 7 cluster and network infrastructure
  • Configure firewall, networking, and clustering services and settings
  • Set up and test a HAC (high-availability cluster) to host an Apache web server and a MariaDB database server
  • Monitor performance and availability
  • Identify bottlenecks and troubleshoot issues
  • Improve performance and ensure high availability

In Detail

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.

Style and approach

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:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 159

Veröffentlichungsjahr: 2016

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

CentOS High Performance
Credits
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why subscribe?
Free access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Cluster Basics and Installation on CentOS 7
Clustering fundamentals
Why Linux and CentOS 7?
Downloading CentOS
Setting up CentOS 7 nodes
Installing CentOS 7
Setting up the network infrastructure
Installing the packages required for clustering
Key software components
Setting up key-based authentication for SSH access
Summary
2. Installing Cluster Services and Configuring Network Components
Configuring and starting clustering services
Starting and enabling clustering services
Troubleshooting
Security fundamentals
Letting in and letting out
Getting acquainted with PCS
Managing authentication and creating the cluster
Setting up a virtual IP for the cluster
Adding a virtual IP as a cluster resource
Viewing the status of the virtual IP
Summary
3. A Closer Look at High Availability
Failover – an introduction to high availability and performance
Fencing – isolating the malfunctioning nodes
Installing and configuring a STONITH device
Split-brain – preparing to avoid inconsistencies
Quorum – scoring inside your cluster
Configuring our cluster with PCS GUI
Summary
4. Real-world Implementations of Clustering
Setting up storage
ELRepo repository and DRBD availability
Configuring DRBD
Adding DRBD as a PCS cluster resource
Installing the web and database servers
Configuring the web server as a cluster resource
Mounting the DRBD resource and using it with Apache
Testing the DRBD resource along with Apache
Setting up a high-availability database with replicated storage
Troubleshooting
Summary
5. Monitoring the Cluster Health
Cluster services and performance
Monitoring the node status
Monitoring the resources
When a resource refuses to start
Checking the availability of core components
Summary
6. Measuring and Increasing Performance
Setting up a sample database
Downloading and installing the Employees database
Introducing initial cluster tests
Test 1 – retrieving all fields from all records
Test 2 – performing JOIN operations
Performing a failover
Measuring and improving performance
Apache's configuration and settings
Loading and disabling modules
Placing limits on the number of Apache processes and children
Database resource
Creating indexes
Using query cache
Moving to an A/A cluster
Summary
Index

CentOS High Performance

CentOS High Performance

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

Credits

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

About the Author

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.

About the Reviewers

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.

www.PacktPub.com

Support files, eBooks, discount offers, and more

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.

Why subscribe?

Fully searchable across every book published by PacktCopy and paste, print, and bookmark contentOn demand and accessible via a web browser

Free access for Packt account holders

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.

Preface

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.

What this book covers

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.

What you need for this book

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.

Who this book is for

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.

Conventions

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:

HWADDR="08:00:27:C8:C2:BE" TYPE="Ethernet" BOOTPROTO="static" NAME="enp0s3" ONBOOT="yes" IPADDR="192.168.0.2" NETMASK="255.255.255.0"

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 ".

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

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.

Customer support

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.

Downloading the example code

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.

Errata

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

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.

Questions

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.

Chapter 1. Cluster Basics and Installation on CentOS 7

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.

Clustering fundamentals

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.

Why Linux and CentOS 7?

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.