You are previewing CentOS High Performance.
O'Reilly logo
CentOS High Performance

Book Description

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.

    Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at If you purchased this book elsewhere, you can visit and register to have the code file.

    Table of Contents

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