Nova
components
Installations
# yum install nova-api nova-cert nova-conductor nova-consoleauth nova-novncproxy
nova-scheduler python-novaclient
# yum install nova-compute
On Controller Node
On Compute Node
Components
nova-novncproxy
nova-cert
nova-consoleauth
nova-network
nova-api-metadata
nova-api nova-conductor
nova-scheduler nova-computequeue
database
Components
nova-novncproxy
nova-cert
nova-consoleauth
nova-network
nova-api-metadata
nova-api nova-conductor
nova-scheduler nova-computequeue
database
Components
nova-novncproxy
nova-cert
nova-consoleauth
nova-network
nova-api-metadata
Neutron
nova-api nova-conductor
nova-scheduler nova-computequeue
database
Components
nova-novncproxy
nova-cert
nova-consoleauth
nova-api nova-conductor
nova-scheduler nova-computequeue
database
Components
nova-api nova-conductor
nova-scheduler nova-computequeue
database
Nova and External Services
Components > nova-api
nova-api nova-conductor
nova-scheduler nova-computequeue
database
HTTP Web Service!
Accepts & Responds to User’s Compute API calls
Supports OpenStack Compute API, Amazon EC2
API, Admin API.
Initiates Orchestration Activities.
POST /v2/{tenant_id}/servers/{server_id}/action
Components > nova-api
POST /v2/{tenant_id}/servers
Request Body
{
"server": {
"name": "server-test-1",
"imageRef": "b5660a6e-4b46-4be3-9707-6b47221b454f",
"flavorRef": "2",
"max_count": 1,
"min_count": 1,
"networks": [
{
"uuid": "d32019d3-bc6e-4319-9c1d-6722fc136a22"
}
],
"security_groups": [
{
"name": "default"
},
{
"name": "another-secgroup-name"
}
]
}
}
202 Accepted
Response Body
{
Components > nova-conductor
nova-api nova-conductor
nova-scheduler nova-computequeue
database
Database Proxy!
Acting as an intermediary between the compute
node and the database node and the database.
Components > nova-conductor
Why?
Auditing database operations, revoking access privileges.
That’s Difficult!
They host tenant instances.
Compute nodes are the least trusted of the services in OpenStack.
Components > nova-conductor
They strongly recommends
Be isolated to a management network,
Use SSL,
Create unique user accounts per service endpoint.
Restrict services to executing with parameters, …
Prevent directly accessing or modifying.
Unfortunately, it complicates fine-grained access control
and audit data access.
Because, it Focus on improving Security, effectively modifying.
Components > nova-conductor
-> Compute nodes are the least trusted
of the services in OpenStack. Because they host tenant instances.
-> Do not deploy it on Compute Nodes.
Components > nova-conductor
nova-api nova-conductor
nova-scheduler nova-computequeue
database
push
pop
push
pop
Components > nova-scheduler
nova-api nova-conductor
nova-scheduler nova-computequeue
database
Scheduler!
Takes VM requests from the queue.
Determine on which compute node host it.
Components > nova-scheduler
nova-api nova-conductor
nova-scheduler queue
mysql
nova-compute1
nova-compute2
nova-compute3
NEW Instance
Instance B
takes
determines
Create Instance
nova-scheduler
 Takes a VM instance and determine where it should run
(on which host).
 2 step process
nova-scheduler
• FilterScheduler is a default scheduler
– Supports filtering and weighting
• Filtering
– RetryFilter
• Prevents the scheduler from selecting the host that fails
to respond.
– AvailablilityZoneFilter
• Filters hosts by availability zone.
– RamFilter
• Select hosts that have sufficient RAM.
• Can overcommitment by configuration.
– ComputeFilter
• Passes all hosts that are operational and enabled.
nova-scheduler > filter scheduler
– ComputeCapabilitiesFilter
• Satisfy the extra specs associated with the instance type.
– ImagePropertiesFilter
• Filters hosts based on properties defined on the
instance's image.
nova-scheduler > filter scheduler
RAM-Filter
Availability Zone-Filter
Compute-Filter
Weighing
●Scheduler applies cost functions on each host and
calculates the weight.
●The least weighted host wins.
• Weighing
– Each time the scheduler selects a host and
subsequent selections are adjusted accordingly.
– Virtually consumes resources.
nova-scheduler > filter scheduler
In the end...
●The scheduler manager sends an rpc call to the
compute manager of selected hosts.
●The compute manager receives it from the queue and
runs its create_instance method and we get a running
VM instance.
Components > nova-compute
nova-api nova-conductor
nova-scheduler nova-computequeue
database
Worker Daemon!
Creates and terminates VMs through hypervisor APIs,
such as Xen, QEMU, KVM, Vmware, ….
It Supports multiple hypervisors.
Because, it Has an abstraction layer, Driver.
Components > nova-compute
nova-compute
Compute Agent
(KVM)
libvirt
KVM
VM VM
nova-compute
Compute Agent
(Hyper-v)
Hyper-v
VM VM
nova-scheduler
nova-compute
Abstraction layer,
Driver
any hypervisor
VM VM
Components > nova-compute
nova-api nova-conductor
nova-scheduler
nova-compute
queue
database
hypervisor
VM
VM launch
Hypervisor Types
• Type-1: bare metal hypervisor
• Type-2: hosted hypervisor
nova-compute > hypervisors
• Ironic
– OpenStack Component for managing and
provisioning Bare Metal servers.
– Not VMs.
– Makes physical servers as easy to provision as
VMs in cloud.
nova-compute > hypervisors
Components > nova-compute
keystone
Glance
Neutron
Cinder
Horizon or CLI
4
5
3
1
2
In more detail…
Provisioning Instance

Nova Componets