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 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:
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.
-
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.
-
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
-
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
-
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
-
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
-
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.
-
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
-
Accepts API requests and routes them to cinder-volume
-
cinder-scheduler
-
Picks optimal Block Storage provider node on which to create volume
-
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
-
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.
-
a server daemon that serves the Glance API, which receives the restful requests form other components.
-
glance-registry
-
maintains Image registries.
-
maintains Image registries.
-
heat-api-cfn
-
Provides AWS-style query API and processes API requests
-
Provides AWS-style query API and processes API requests
-
heat-api
-
Provides OpenStack native REST API that processes requests
-
Provides OpenStack native REST API that processes requests
-
heat-engine
-
Orchestrates launch of templates and provides events back to API consumer
-
Orchestrates launch of templates and provides events back to API consumer
-
losetup
-
Creates loop back device for cinder.
-
Creates loop back device for cinder.
-
nova-api
-
Accepts and responds to end-user Compute API calls. It processes the REST request
-
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–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.
-
Proxies database connections primarily for Nova.
-
nova-consoleauth
-
Manages token authentication for both console proxies
-
Manages token authentication for both console proxies
-
nova-novncproxy
-
Allows Compute service to access instances through virtual network computing (VNC) clients
-
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.
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.
-
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.
-
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.
-
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.
-
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.
-
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
-
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
-
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.
-
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
-
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
-
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
2) Only basic and important features are installed.
3) Operating System : RHEL7.1
Great blog.. It nicely explain Openstack Deployment step by step. How Openstack work. Thanks for sharing with us
ReplyDelete