Tuesday 22 November 2016

OpenStack Services :: what runs where on MultiNode deployment

OpenStack is an open source infrastructure for cloud which is deployed as IAAS (Infrastructure as a service). It was launched in Jul 2010 by NASA and Rackspace. Openstack is a collection of various modules/projects. The first release of OpenStack, which is Austin, has only two components Nova and Swift later on many modules like Nova,Neutron,Horizon,Heat,Ceilometer,Glance,Cinder,keystone etc have been added. Full list of openstack projects you can find it on link mentioned at bottom of this page.

OpenStack can be deployed in various ways. All projects can be clubbed into single machine which is called SingleNode deployment or projects can be functionally separated onto various machines like networking features can be hosted on one physical box, storage onto another separate machine or compute features onto another separate machine and so on. Each module or project of OpenStack consists of sub services and runs on machine based on deployment model.

For this page, the reference has been taken from a 4-node RDO deployment: One Controller node where nova,keystone,heat,ceilometer,cinder,glance services runs. One Network node where only network related services runs and 2-Compute nodes where hyper-visor services runs.
Storage services can also be made to run on separate physical box.
Below is the list of services on each nodes:

Openstack Deployment 

               

Controller Node:


The Controller node has one dashboard service, one image store, and one identity service. This node also includes MySQL, RabbitMQ, and compute, block storage, and networking services.
  • neutron-server
    • Accepts API requests and then routes them to the appropriate Neutron plug-in for action.
  • ceilometer-alarm-evaluator
    • Determines when alarms fire due to the associated statistic trend crossing a threshold over a sliding time window.
  • ceilometer-alarm-notifier
    • Initiates alarm actions such as calling out to webhook with description of alarm state transition
  • ceilometer-api
    • Presents aggregated metering data to consumers such as billing engines and analytic tools
  • ceilometer-central
    • Polls public RESTful APIs of other OpenStack services such as Glance, Swift, Cinder, and Neutron to monitor resources
  • ceilometer-collector
    • Consumes AMQP notifications from agents and other OpenStack services and dispatches data to metering store
  • ceilometer-notification
    • Notification agents consuming messages from services, daemon which monitors the message bus for data being provided by other OpenStack components such as Nova, Glance, Cinder, Neutron, Swift, Keystone, and Heat, as well as Ceilometer internal communication.
  • cinder-api.service
    • Accepts API requests and routes them to cinder-volume
  • cinder-scheduler
    • Picks optimal Block Storage provider node on which to create volume
  • cinder-volume
    • Responds to requests and persists the changes made to stateful database. Also interacts with other processes, and can interact with a variety of storage providers through driver architecture
  • glance-api
    • a server daemon that serves the Glance API, which receives the restful requests form other components.
  • glance-registry
    • maintains Image registries.
  • heat-api-cfn
    • Provides AWS-style query API and processes API requests
  • heat-api
    • Provides OpenStack native REST API that processes requests
  • heat-engine
    • Orchestrates launch of templates and provides events back to API consumer
  • losetup
    • Creates loop back device for cinder.
  • nova-api
    • Accepts and responds to end-user Compute API calls. It processes the REST request
  • nova-cert
    • nova–cert is a server daemon that serves the Nova Cert service for X509 certificates. Used to generate certificates for euca-bundle-image. Only needed for EC2 API.
  • nova-conductor
    • Proxies database connections primarily for Nova.
  • nova-consoleauth
    • Manages token authentication for both console proxies
  • nova-novncproxy
    • Allows Compute service to access instances through virtual network computing (VNC) clients
  • nova-scheduler
    • Handles VM instance request from the queue and determines where the VM should run [decides which host gets each instance]

Network Node

Network node runs Openstack Neutron module. Neutron provides "network connectivity as a service" between interface devices managed by other OpenStack services (most likely Nova). The service works by allowing users to create their own networks and then attach interfaces to them. Like many of the OpenStack services, Neutron is highly configurable due to its plug-in architecture.
Please be mindful that neutron-server runs on controller node not here.
  • neutron-dhcp-agent
    • Provides DHCP services to tenant networks. This agent is the same across all plug-ins and is responsible for maintaining DHCP configuration. The neutron-dhcp-agent requires message queue access. Optional depending on plug-in.
  • neutron-l3-agent
    • Provides L3/NAT forwarding for external network access of VMs on tenant networks. Requires message queue access. Optional depending on plug-in.
  • neutron-metadata-agent:
    • Provides instance’s network related data.
  • neutron-openvswitch-agent
    • Runs on each compute node and network node to manage local open virtual switch (vswitch) configuration. The plug-in that you use determine which agents run.

Compute Node1:

The Compute node is where VM instances are installed.
  • neutron-openvswitch-agent
    • Runs on each compute node and network node to manage local open virtual switch (vswitch) configuration. The plug-in that you use determine which agents run.
  • ceilometer-compute
    • Polls local libvirt daemon to acquire instance performance data and emits data as AMQP notifications
  • nova-compute
    • Creates and terminates VM instances via hypervisor APIs

Compute Node2:

  • neutron-openvswitch-agent
    • Runs on each compute node and network node to manage local open virtual switch (vswitch) configuration. The plug-in that you use determine which agents run.
  • ceilometer-compute
    • Polls local libvirt daemon to acquire instance performance data and emits data as AMQP notifications
  • nova-compute
    • Creates and terminates VM instances via hypervisor APIs

Assumptions:

1) OpenStack release : Kilo
2) Only basic and important features are installed.
3) Operating System : RHEL7.1

References: 

1 comment:

  1. Great blog.. It nicely explain Openstack Deployment step by step. How Openstack work. Thanks for sharing with us

    ReplyDelete