OpenStack —— 虚拟机的启动过程简述(八)_第1张图片


  1. Dashboard or CLI gets the user credential and does the REST call to Keystone for authentication.

  2. Keystone authenticate the credentials and generate & send back auth-token which will be used for sending request to other Components through REST-call.

  3. Dashboard or CLI convert the new instance request specified in  ‘launch instance’ or ‘nova-boot’ form to REST API request and send it to nova-api.

  4. nova-api receive the request and sends the request for validation auth-token and access permission to keystone.

  5. Keystone validates the token and sends updated auth headers with roles and permissions.

  6. nova-api interacts with nova-database.

  7. Creates initial db entry for new instance.

  8.  nova-api sends the rpc.call request to nova-scheduler excepting to get  updated instance entry with host ID specified.

  9. nova-scheduler picks the request from the queue.

  10. nova-scheduler interacts with nova-database to find an appropriate host via filtering and weighing.

  11. Returns the updated instance entry with appropriate host ID after filtering and weighing.

  12. nova-scheduler sends the rpc.cast request to nova-compute for ‘launching instance’ on appropriate host .

  13. nova-compute picks the request from the queue.

  14. nova-compute send the rpc.call request to nova-conductor to fetch the instance information such as host ID and flavor( Ram , CPU ,Disk).

  15. nova-conductor picks the request from the queue.

  16. nova-conductor interacts with nova-database.

  17. Return the instance information.

  18. nova-compute picks the instance information from the queue.

  19. nova-compute does the REST call by passing auth-token to glance-api  to get the Image URI by Image ID from glance and upload image from image storage.

  20. glance-api validates the auth-token with keystone. 

  21. nova-compute get the image metadata.

  22. nova-compute does the REST-call by passing auth-token to Network API to allocate and configure the network such that instance gets the IP address. 

  23. quantum-server validates the auth-token with keystone.

  24. nova-compute get the network info.

  25. nova-compute does the REST call by passing auth-token to Volume API to attach volumes to instance.

  26. cinder-api validates the auth-token with keystone.

  27. nova-compute gets the block storage info.

  28. nova-compute generates data for hypervisor driver and executes request on Hypervisor( via libvirt or api).