Nova builds a virtual machine process

Source: Internet
Author: User
Tags http request message queue rabbitmq
Nova module Call Flowchart

Nova establishes virtual machine detailed process Basic Status

Horizon sends commands to Keystone authentication

The user sends a validation request through horizon to Keystone, sending an HTTP request through the RESTful API to Keystone,keytone, which is returned to the Horizon user token token after user authentication, for validation of the remaining process.
Nova-api receiving API requests

Horizon will set the parameters needed for the VM to pass through the RESTful API request to Nova-api

NOVA-API with token request Keystone authentication

after validation, NOVA-API initializes the DB

After validation, NOVA-API creates and initializes the Nova database for the new VM, which is done through Nova-conductor.

NOVA-API messages to nova-schedule through Message Queuing

Through the way of Rpc.call, request instance dispatch, give Nova-schedule to select the host that can build virtual machine according to dispatch strategy.

Nova-schedule Select the appropriate host in DB based on the filter and scheduling strategy

Nova-schedule The parameter to the nova-compute of the compute node for virtual machine creation

Nova-schedule The host ID is selected, the actual VM creation operation is performed by Rpc.cast to Nova-compute.

nova-compute–> queue–> nova-network

Nova-compute will assign network information to the virtual machine through Message Queuing Rpc.call request nova-network. If neutron is used here, there is no Message Queuing communication between Nova and neutron, so you need to communicate through the API

nova-compute–> hypervisor

Nova-compute will go to the Nova database to get the virtual machine information (that is, what was defined in the horizon at the beginning) and then send it to hypervisor via API or Libvirt.

hypervisor Creating a virtual machine hypervisor–> Glance or Image Store (Swift)

Hypervisor gets the image from the glance, or swift, depending on what is used by the backend of glance. The virtual machine is then created, and the information is returned after a successful creation.

Horizon Confirmation

Horizon uses the polling API to periodically get VM information, see if the VM is up, and then start the VM and then update the Nova DB database via NOVA-API. Here, a new virtual machine is set up to complete.

some information communication rules between components and within components

When communicating within a project using Message Queuing (communication of multiple processes within the Nova, such as Nova-api and Nova-compute), the Project and project (between Nova and neutron) use RESTful API communication, Within each project, there is a message queue for passing information. RPC Communication Rules

Nova implements two RPC calls based on RABBITMQ: Rpc.call and Rpc.cast, where Rpc.call is based on request and response, Rpc.cast only provides one-way requests, and two RPC invocation modes have different scenarios in Nova.
Reference blog:

RABBITMQ parsing in Nova source analysis--nova

Nova Module call Flowchart Nova Establish virtual machine detailed process basic state Horizon Send command to Keystone Verify NOVA-API receive API request NOVA-API with token request Keystone authentication After validation, NOVA-API initializes the DB Nova-api message queue to Nova-schedule Nova-schedule Select the appropriate host in DB based on the filter and scheduling policy Nova-schedule the parameter to the nova-compute of the compute node for VM creation Nova-compute queue nova-network Nova-compute hypervisor hypervisor Create a virtual machine hypervisor Glance or Image Store Swift Horizon confirms the communication rules between and within the components of an information component RPC communication rules

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.