French word Orchestrator originated from
“Orchastra”. Orchastra means group of
music performers and orchestrator is to compose or arrange music for
performance e.g. planning/sequencing/harmonizing
performance of performers for the audience.
In cloud computing world, Orchestrator
is system manager which arranges complex workflows among various cloud
elements, to realize user request.
When Openstack Orchestrator receives request , it triggers following chain of actions:
1)
Service request for
VM provisioning from Horizon(dashboard) from CLI, Horizon or via Heat template
2)
Service is authenticated
by Keystone
3)
Nova service
interacts with compute node’s hypervisor to reserve the required virtual
resources.
4)
Nova service
interacts with Cinder node to reserve required storage capacity for VM
5)
Nova service
interacts with Neutron node/SDN plugin
to create network(IP address/DHCP) for the VM
6)
Neutron service
co-ordinates with L2 & DHCP agent, to get network details. Network details
passed to Nova via MQ.
7)
Nova service
interacts with Glance to download required guest OS image for VM
8)
Nova service
notifies User about successful VM instantiation
Openstack Orchestration platform
will carry out above mentioned activities in sequential & harmonized manner
to provision a virtual machine, as shown in figure below. (more details at https://bugs.launchpad.net/openstack-manuals/+bug/1359722
).
Application
Application will interact with
Openstack at Guest OS level.
Application’s OS
image should be available in Glance
image repository. Orchestration will download it during VM provisioning. In other
words, Application’s touch-point with Openstack Glance service is through guest
OS Image. DPDK aware Applications connect to user-space directly and bypass Guest OS. In this scenario, Neutron supposed to provide virtual Switch ports, which supports DPDK. This requirement should be specified in image Meta data or via Heat Templates.
Hypervisor
-
Openstack services
interacts with Libvert drivers to communicate with Hypervisors. Openstack Nova
interacts with Libvert to reserve virtual resources (CPU, RAM) for VM and
Neutron interacts with Libvert to get OpenVswitch/VRouter port details. Thus
any new feature in hypervisor (DPDK, Cpu pinning etc) requires some
modification in Libvert drivers.
Network
-
Openstack provides
Neutron APIs to interact with networking elements. Networking Vendors (Cisco,
Arista, Juniper) have developed Plugins to communicate with Neutron. Using
Plug-ins and Neutron API services, Openstack Orchestration should be able
configure various agents (Open
Vswitch/vRouter), residing in hypervisor. These networking agents configure
traffic among VMs and traffic to external gateway. Thus networking team
requires their plugin to be fully interoperable with neutron API service.
-
Neutron has
possibility to interact with SDN controller (e.g Opencontrail), which controls
network agents. In this scenario, network configuration can be done by
SDN controller or Openstack.. This demarcation of responsibilities between SDN
and Openstack is required.
Openstack Orchestrator
is kind of system manager which deals with complex system workflows in cloud
environment.