Overview of Unfamiliar ComponentsImage storage on swift which has a Metadata layer for virtual machine images called Glance.
- Metadata in glance is used to spin up certain flavours
Ceilometer - Monitoring and metering of performance (eg. billing)
Heat - for orchestration that allows you to deploy templates from text files (json)
OpenStack API Call MethodThe way in which OpenStack communicates with the servers is that it uses a RabbitMQ service as a queuing layer such that the steps are as follows:
- Request made to Openstack API
- Response back as to what services are available in JSON
- All services behind the APIs are listening for associated commands and the API is able to queue the majority of the commands
- There is a scheduler component that is able to figure out how busy individual cells or machines are so that it is able to divide workloads
- Responses come back on the same radio frequencies so that the APIs know the status of each service
API requests are made through JSON using GET and POST requests
Nova ComponentsNova-Api - accepts and responds to end user compute API calles
Nova-Computer - is a daemon that can control virtual machines and power them on/off
nova-volume - attaches and detaches volumes to compute instances
nova-network - sets up network interfaces like bridging interfaces or changing iptables rules
nova-schedule - takes an instance and figures out where it should run
queue (RabbitMQ) - central hub for passing messages between daemons
SQL Database - build-time and runtime state for cloud infra. Instance types available, instances in use, networks available and projects
Nova-console - provides console server via nova-console, novncproxt and nova-consoleauth)
Swift - Storage
swift-proxy - allows you request file or containers
speaks http outside of the cluster of swift and is the only thing that can speak outside of swift.
uses PUT, PUT, POST, DELETE, HEAD requests to:
- update metadata
- list containers
- upload objects
- overwrites metadata
- creates containers
- delete objects or containers
- retrieves metadata for the account, container or object
Configure permissions on Container servers (which are like folders) and the access is controlled via Account servers.
keystone handles auth
GlanceStorage and retrieval for disk images
stored images can be used as templates and can store unlimited backups.
Images are stored in OpenStack Block Storage or other backend APIs
Has a REST interface to query and stream images
Users can choose available or create their own and snapshots exists as wel
Functions of Glance:
- Upload disk images
- retrieve disk images
- list available
- set permissions
- querying properties of disk images
requires a registry which stores and retrieves metadata information from the database. the database stores the image metadata.
The storage repository is where the actual images are stored which normally uses Swift as underlying storage. Glance is primarily an indexing service and references swift as its underlying storage layer.
Cinder - Block StorageProvides block storage to all hypervisors. Can attach and detach storage to each. Integrated into openstack and allows users to manage their storage needs via the web UI.
- Create and Delete volumes
- create and delete snapshot of volumes
- attach and detach volumes
- create new volumes from snapshots
- clone volumes
- can copy images to volumes using glance or copy volumes to images (volumes to glance)
- view stats of volumes (usage space, perf)
Neutron NetworkingCreate networks and attach to servers
Allows you to specify
private and floating IPs in order to allocate a segregated segment for which the VMs will communicate on
Neutron can emulate certain functions like switches, routers, ha-proxy, and other services that would normally be configurable in a physical network. Can implement either traditional linux bridges, or utilize openvswitch for some of these layer 2 services.
cisco virtual and physical switches
room network operating system
requires a database to store networking state for all of the plugins
Horizon - Web Dashboard
completely API call based
can allow individual users their own interfaces