You are previewing Learning OpenStack High Availability.
O'Reilly logo
Learning OpenStack High Availability

Book Description

Build a resilient and scalable OpenStack cloud, using advanced open source tools

About This Book

  • Leverage the power of OpenStack to achieve high availability

  • Get to grips with concepts such as Galeria Cluster for Glance and Cinder, MariaDB, and validation

  • Using clustering and high-availability solutions, this book provides a comprehensive plan for you to connect them with Red Hat Enterprise Linux OpenStack Platform

  • Who This Book Is For

    This book is for OpenStack administrator, cloud administrator, cloud engineer, or cloud developer with some real time understanding of cloud computing, OpenStack and familiarity with Linux command is essential to start with this book.

    What You Will Learn

  • Grasp an understanding of what a highly available design should be using RTO, MTTR, and SLA concepts

  • Set up and configure Galera and RabbitMQ clusters to build an efficient and reliable messaging cluster

  • Get to know the advanced areas of network load balancing using configurations of HAproxy and keepalived

  • Control active/passive OpenStack services by setting up a cluster for two or more nodes

  • Gain a deeper understanding of how OpenStack services work in cooperation with a stateless mode to offer a scalable cloud framework

  • Configure and run a distributed neutron installation based on openvswitch and different tunneling protocols

  • Explore the rudimental configuration of different shared storage options and provide backup services of OpenStack

  • Get acquainted with how an OpenStack-based cloud can survive various failures using network partitioning split brain, automatic failover, and geo-replication

  • Distribute applications and services among availability zones in OpenStack to achieve maximum uptime and reliability of service

  • Control and maintain a cloud with key concepts and tools to correctly measure and control the operations of an OpenStack cloud

  • Get to know more about the relevant HA deployments of OpenStack with use cases

  • In Detail

    OpenStack is one of the most popular open source cloud computing platforms, and it is used most of all for deploying Infrastructure as a Service (IaaS) solutions. Enabling high availability in OpenStack is a required skill for cloud administrators and cloud engineers in today’s world.

    This book helps you to achieve high availability and resiliency to OpenStack. This means clustering, fencing, load-balancing, distributed networking, leveraging shared storage, automatic failover, and replication. We start with a basic understanding of what a highly available design is meant to achieve in OpenStack and various ways to achieve high availability in OpenStack through simple step-by-step procedures.

    Through hands-on examples, you will develop a solid knowledge of horizontally-scalable, fault-resistant, and highly-available OpenStack clusters and will be able to apply the techniques from this book in your day-to-day projects. This book also sheds light on the principles of application design for high availability, and monitoring for high availability, with examples.

    Style and approach

    This is a step-by-step guide that uses clustering and high-availability solutions available in the market and provides a comprehensive plan to connect them with Red Hat Enterprise Linux OpenStack Platform to make you a competent OpenStack administrator.

    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 http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the code file.

    Table of Contents

    1. Learning OpenStack High Availability
      1. Table of Contents
      2. Learning OpenStack High Availability
      3. Credits
      4. About the Author
      5. About the Reviewers
      6. www.PacktPub.com
        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. Downloading the color images of this book
          3. Errata
          4. Piracy
          5. Questions
      8. 1. An Introduction to High Availability Concepts
        1. What does High Availability (HA) mean?
        2. How to measure high availability
        3. Common content in the contract
        4. How to achieve high availability
        5. Architecture design for high availability
        6. High availability in OpenStack
        7. Summary
      9. 2. Database and Messaging Services
        1. Installing MariaDB with Galera clustering
        2. Installation of high availability RabbitMQ cluster
          1. Configuring the nodes to know each other
          2. Installing RabbitMQ on the two nodes
          3. Constructing a RabbitMQ broker
          4. Restarting the RabbitMQ services on the nodes
          5. Formation of cluster
          6. Check the status of a cluster
        3. Summary
      10. 3. Load Balancing for Active/Active Services
        1. The installation of HAProxy and keepalived
          1. The requirement for an experimental setup
            1. The keepalived configuration on controller_2
            2. Defining the HAProxy configuration
            3. HAProxy configuration for the controller_1 node
            4. The HAProxy configuration for the controller_2 node
            5. Making the controller_1 node active
            6. Making the controller_2 node active
        2. Summary
      11. 4. Clustering, Fencing, and Active/Passive Services
        1. Installing Corosync and Pacemaker
          1. Requirements for the experimental setup
            1. A secure Socket Host setup
            2. Installing the Corosync package
            3. Sharing and generating Corosync keys
            4. Creating a configuration file
            5. Starting Corosync
            6. Starting Pacemaker
            7. Setting the cluster properties
        2. The load balancing of high availability MySQL
          1. DRBD replicated storage
            1. Installing MySQL
        3. High availability RabbitMQ via AMQP
          1. Configuring DRDB
            1. Creating a filesystem
            2. Preparing RabbitMQ for Pacemaker high availability
            3. Adding the RabbitMQ resources to Pacemaker
            4. Configuring OpenStack services for highly available RabbitMQ
        4. Summary
      12. 5. Highly Available OpenStack Services
        1. High availability compute services
          1. Installing and configuring the Nova packages
          2. Creating the Nova database
          3. Populating a database
          4. The load balancing of compute services
          5. Reloading the HAProxy services
        2. High availability dashboard services
          1. Installing and configuring the dashboard
          2. Configuring Memcache
          3. Restarting the Memcache services
          4. Load balancing of dashboard services
          5. Reloading the HAProxy services
        3. High availability object storage services
          1. Installing and configuring object storage
          2. Creating a disk partition
          3. Creating directories
          4. Replicating data on storage nodes
          5. Installing a Swift proxy
          6. Configuring Memcache
          7. Creating a proxy configuration file
          8. Configuring a Swift ring
          9. The load balancing object store services
        4. High availability image services
          1. Installing and configuring image services
          2. Creating the Glance database
          3. Populating the databases
        5. The load balancing of image services
        6. The load balancing HTTP REST API
          1. Creating a load balancing pool
          2. Adding a Virtual IP (VIP)
          3. Launching instances
          4. Security group creation
          5. Adding members to the load balancing pool
          6. Setting a sample web server
          7. Validating web servers with index.html
        7. Summary
      13. 6. Distributed Networking
        1. Installing a high availability distributed virtual routing
          1. Control node setup
          2. Disabling reverse path filtering
            1. Loading a new kernel
            2. Configuring the neutron
            3. Configuring the ML2 plugin
            4. Restarting the services
          3. A network node setup
            1. Enabling packet forwarding and disabling reverse path filtering
            2. Loading a new kernel
            3. Configuring the neutron
            4. Configuring the ML2 plugin
            5. Configuring the L3 agent
            6. Configuring the DHCP agent
            7. Configuring the metadata agent
            8. Restarting the services
          4. A compute node setup
            1. Enabling packet forwarding and disabling reverse path filtering
            2. Loading a new kernel
            3. Configuring neutron
            4. Configuring the ML2 plugin
            5. Configure the L3 agent
            6. Configuring the metadata agent
            7. Restarting the services
            8. Verifying the service operation
        2. Summary
      14. 7. Shared Storage
        1. An introduction to GlusterFS
        2. Installing GlusterFS
          1. Configuring GlusterFS for block storage
          2. Installation of GlusterFS
          3. Configuring the nodes for communication
          4. The status of peers
          5. Creating a data point
          6. Starting the volume services
        3. An introduction to Ceph
        4. Installing Ceph
          1. Installing Openssh
          2. Connecting to the Ceph node
          3. Configuring the Ceph node
          4. Configuring a storage node
          5. Checking the status of Ceph
        5. Summary
      15. 8. Failure Scenario and Disaster Recovery
        1. Network partition split-brain
          1. Preventing a split-brain
            1. Setting the server-side quorum
            2. Setting the client-side quorum
          2. A real-time failure scenario of split-brain
            1. Steps to resolve a split-brain
              1. Choosing a split-brain victim
              2. Force discard of the victim
              3. Resynchronization
        2. Automatic failover
          1. Load balance as a service
            1. The working of a failover
            2. Getting all the failed routers
            3. An LBaaS agent failover
        3. Geo-replication
          1. Creating geo-replication sessions
          2. Starting geo-replication
            1. Verifying a successful geo-replication deployment
          3. A real-time failure scenario
            1. Issues in the master log file
              1. Issues in the Slave log file
              2. Issue in data synchronization
              3. Issues in the geo-replication status display
        4. Summary
      16. 9. The Principles of Design for Highly Available Applications
        1. The principles of design features
          1. Micro services and scalability
          2. Fault tolerance
          3. Cloud automation
          4. RESTful application programming interface (APIs)
        2. A sample application deployment
          1. The application programming interface
          2. Database
          3. Web interface
          4. Queue services
          5. Worker services
        3. An interaction of the application with OpenStack
          1. Choosing the OpenStack SDK
          2. Flavors and images
          3. Launching an instance
          4. Destroying an instance
          5. Deploying the application on a new instance
          6. Booting and configuring an instance
          7. Associating a floating IP for external connectivity
          8. Accessing the application
        4. Summary
      17. 10. Monitoring for High Availability
        1. The Nagios monitoring service
          1. Installation of the Nagios monitoring service
            1. Installation of Nagios related packages
            2. Installation of the Nagios remote plugin executor
            3. Configuring Nagios
            4. HTTPD configuration
            5. Accessing the Nagios web interface
            6. OpenStack services configuration
            7. OpenStack services configuration
            8. Service definition creation
        2. Graphite monitoring tool
          1. Installing Graphite
            1. Ceilometer configuration
            2. Adding publisher
            3. Carbon installation
        3. Logstash, Elasticsearch and Kibana
          1. Installing Logstash
          2. An Elasticsearch store
          3. The Kibana frontend
        4. Summary
      18. 11. Use Cases and Real-World Examples
        1. A case study of Cisco WebEx
        2. Challenges with the infrastructure of Cisco WebEx
          1. The solution with OpenStack
          2. The final outcome
        3. Case study of Huawei
          1. Challenges with the infrastructure of Huawei
          2. The solution with OpenStack
          3. The final outcome
        4. Case study of Multiscale Health Networks
        5. Challenges with the infrastructure of Multiscale
          1. The solution with OpenStack
          2. The final outcome
        6. Case study of eBay
          1. Challenges with eBay business process
          2. The solution with OpenStack
          3. The final outcome
        7. Summary
      19. Index