OpenStack - Theory and Practice

openstack logo

Sean M. Collins

@sc68cal

author photo

tl;dr

Original Project - Nova

Components - Essex Era

OpenStack - Essex

essex architecture diagram

Keystone

Glance

Nova

Flavors have:

Nova API Request

{
    "server" : {
	"name" : "new-server-test",
	"imageRef" : 
		"http://openstack.example.com/openstack/images/
		70a599e0-31e7-49b7-b260-868f441e862b",
	"flavorRef" : 
		"http://openstack.example.com/openstack/
		flavors/1",
	"metadata" : {
	    "My Server Name" : "Apache1"
	},
    }
}
				

Nova API response

{
    "server": {
        "adminPass": "wfksH3GTTseP",
        "id": "440cf918-3ee0-4143-b289-f63e1d2000e6",
        "links": [
            {
		"href": "http://openstack.example.com/v2/
			openstack/servers/440cf918-3ee0-4143-b289-f63e1d2000e6",
                "rel": "self"
            },
            {
		"href": "http://openstack.example.com/openstack/
			servers/440cf918-3ee0-4143-b289-f63e1d2000e6",
                "rel": "bookmark"
            }
        ]
    }
}
			    

OpenStack Architecture

Compute API Example: "Create a VM "

Plugins for each hypervisor handle how to accomplish this request

OpenStack - Folsom

folsom architecture diagram

Notes about Folsom Architecture

Networking

Nova-Network

Nova Networking Internals on Compute nodes

Nova Networking Internals on Nova-Network host

In simple setups, one machine runs Nova-Network and provides L3 connectivity

Instance Networking

Security Groups

Security Group API calls are translated into iptables chains, on the host running nova-network

Nova-Network FlatDHCPManager

nova network flatdhcpmanager

Nova-Network multi host configuration

nova multi_node

Nova-Network VLANManager

nova network vlanmanager

* Image credit - Mirantis

Openstack Quantum

Quantum - Concepts

Quantum Network

A network is an isolated virtual layer-2 broadcast domain that is typically reserved for the tenant who created it unless the network is configured to be shared. Tenants can create multiple networks until they reach the thresholds specified by per-tenant quotas.

In the Quantum API v2.0, the network is the main entity. Ports and subnets are always associated with a network.

Quantum Subnet

A subnet represents an IP address block that can be used to assign IP addresses to virtual instances. Each subnet must have a CIDR and must be associated with a network. IPs can be either selected from the whole subnet CIDR or from allocation pools that can be specified by the user.

A subnet can also optionally have a gateway, a list of dns name servers, and host routes. This information is pushed to instances whose interfaces are associated with the subnet

Quantum Port

A port represents a virtual switch port on a logical network switch. Virtual instances attach their interfaces into ports. The logical port also defines the MAC address and the IP address(es) to be assigned to the interfaces plugged into them. When IP addresses are associated to a port, this also implies the port is associated with a subnet, as the IP address was taken from the allocation pool for a specific subnet.

Quantum - Plugins

quantum architecutre

Technologies used by plugins

Quantum Plugins

Quantum - Flat Networking

quantum single flat

Quantum - Multiple Flat Networks

quantum multi flat

Quantum - Provider Router

Quantum single router

Quantum - Tenant Routers

Quantum single router

Demo

Client Libraries