- OpenStack CLI or Horizon Dashboard gets user credentials and authenticates with identity service.
- The identity service (Keystone) authenticates the user with the user credentials and then generates and sends back an auth token.
- that auth-token which will be used for sending the request to other components through
- OpenStack CLI converts a new instance request specified in the launch instance or nova boot command to a REST API request and sends it to nova-API.
- Then nova-API service gets the request and sends that request to the identity service (Keystone) for validation of auth-token and access permission,
- Keystone service validates the token and sends the updated authentication headers with roles and permissions.
- After getting the response from keystone, the nova-API checks for conflicts with the nova-database, and then it creates an initial database entry for a new instance.
- nova-api sends the rpc.call request to nova-scheduler expecting to get updated instance entry with host id specified
- Now nova-scheduler picks the request from the queue
- nova-scheduler talks to nova-database to locate a host using filtering and weighing mechanism
- then the nova-scheduler returns the updated instance entry with the appropriate host ID after filtering and weighing.
- nova-scheduler sends the rpc.cast request to nova compute for launching an instance on the appropriate host.
- nova-compute picks the request from the queue and it sends the rpc.call request to nova-conductor to get the VM or instance info such as host id and flavor (RAM,CPU and Disk)
- nova-conductor takes the request from queue and communicate with nova-database to get the instance info then sends it to nova compute service
- nova-compute connects to glance-api by making a REST Call using auth-token and then nova-compute uses the image id to get the image url from image service and loads the image from image storage.
- glance-api validates the auth-token with keystone and after that nova-compute gets the image metadata
- Nova-compute make the REST-call by passing the auth-token to Network API (Neutron) to allocate and configure network so that vm gets the IP address
- Neutron-server validates the auth-token with keystone and after that nova-compute retrieves the network information.
- Nova-Compute makes the REST-call by passing the auth-token to Volume API to attach the volume to the instance or VM.
- cinder-api validates the auth-token with keystone and then nova-compute gets the block storage information.
- nova-compute generates data for the hypervisor driver and executes the request on the hypervisor using libvirt or API and then finally a VM is created on the hypervior.
We can see that VM in Dashboard and also using “openstack server list” command.
to get details about the instance we can use "openstack server show Server-ID" command
also we can access instance cosole