Preparing for the Certified OpenStack Administrator Exam
上QQ阅读APP看书,第一时间看更新

A traditional OpenStack cloud

A typical production OpenStack cloud consists of the following:

  • Controller: The controller is the backbone of the OpenStack cloud. It usually contains:
    • MariaDB database: A community-developed fork of the MySQL relational database. Most OpenStack services use a SQL database for storing data in tables of columns and rows. For example, imagine viewing all the tables inside a Nova database. You would see names of the instances, their unique identifiers (UUIDs), the projects that own those instances, and other Nova-related metadata.
    • RabbitMQ: A popular message queue service that provides messaging services via the AMQP protocol. RabbitMQ allows the daemons within a specific service to communicate status information and coordinate fulfillment of specific actions. Although OpenStack supports a variety of message queue programs, RabbitMQ is most commonly used because most Linux distributions support it.
    • API daemons: All the API daemons associated with OpenStack-related services run on the controller. Think of these APIs as the primary gateway to each service. When users want to interact with a service, they send API calls to the API daemon that resides on the controller.
    • Horizon dashboard: The Horizon dashboard runs under the popular Apache web server and also resides on the controller.
  • Network nodes: The network node contains the Neutron daemons, which provide DHCP services so instances can automatically obtain IP addresses. Network nodes also contain Layer-3 services, which allow users to create routers that connect Neutron networks to each other. There are also network plugin agents to assist in connecting instances to these networks, as well as the Neutron metadata daemon (inspired by Amazon Web Service's popular EC2 Metadata Service).
  • Compute nodes: If the controller is considered the brain of the OpenStack cloud, then the compute nodes are the muscle. Compute nodes provide disk, CPU, and memory resources that are consumed by the instances. Each node contains a Type-1 hypervisor, as well as the Nova-compute daemon for talking directly to that hypervisor. There is also a Neutron plugin agent on these servers to assist the instances in getting plugged into the virtual network infrastructure.
  • Block storage nodes: The block storage nodes provide Cinder block volumes to instances running in OpenStack. They typically run Logical Volume Manager (LVM), a popular Linux program for managing storage, as well as an iSCSI target daemon. When a user wants to attach a volume to an instance, an iSCSI connection is initiated from the instance's compute node to the block storage server where the volume resides.
  • Object storage nodes: The object storage nodes make up the Swift object storage system. These nodes consist of commodity servers with cheap, high-capacity storage. The Swift daemons running on these servers are responsible for ensuring data replication and integrity across the entire object storage cluster.