Request Flow for Provisioning Instance in Openstack

One of the most important use-case in any cloud is provisioning a VM . In
this article we shall do a walk through about an instance(VM) being provisioned
in a Openstack based cloud. This article deals with the request flow and the
component interaction of various projects under Openstack. The end result will
be booting up a VM.

Provisioning a new instance involves the interaction between multiple
components inside OpenStack :

  • CLI Command Line Interpreter for submitting commands to
    OpenStack Compute.

  • Dashboard (“Horizon”) provides the interface for all the
    OpenStack services.

  • Compute (“Nova”) retrieves virtual disks images(“Glance”)
    , attach flavor and associated metadata and transforms end user API requests
    into running instances.

  • Network (“Quantum”) provides virtual networking for
    Compute which allows users to create their own networks and then link them to
    the instances.

  • Block Storage (“Cinder”) provides persistent storage
    volumes for Compute instances.

  • Image (“Glance”) can store the actual virtual disk files
    in the Image Store.

  • Identity (“Keystone”) provides authentication and
    authorization for all OpenStack services.

  • Message Queue(“RabbitMQ”) handles the internal
    communication within Openstack components such as Nova , Quantum and
    Cinder.

The request flow for provisioning an Instance goes like this:

  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).

The table represents the Instance state at various steps during the
provisioning :

Request Flow for Provisioning Instance in Openstack,布布扣,bubuko.com

时间: 2024-08-09 14:34:36

Request Flow for Provisioning Instance in Openstack的相关文章

[转]Request Flow for Provisioning Instance in Openstack

  One of the most important use-case in any cloud is provisioning a VM . In this article we shall do a walk through about an instance(VM) being provisioned in a Openstack based cloud. This article deals with the request flow and the component interac

An overview of the Spring MVC request flow

The Spring MVC request flow in short: When we enter a URL in the browser, the request comes to the dispatcher servlet. The dispatcher servlet then acts as a centralized entry point to the web application. The dispatcher servlet determines a suitable

Openstack nova组件基本原理总结

1.       nova-compute 在计算节点上运行,负责管理节点上的 instance. OpenStack 对 instance 的操作,最后都是交给 nova-compute 来完成的. nova-compute 与 Hypervisor 一起实现 OpenStack 对 instance 生命周期的管理. --------------------------------------------------------------------------- 2.nova-compu

《转》OpenStack Ceilometer 安装配置和API说明

1.概述 Ceilometer是OpenStack中的一个子项目,它像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑.Ceilometer的核心架构图如下: 图1 Ceilometer的核心架构图 图2 Ceilometer架构模型 2.安装 2.1安装服务 apt-get install ceilometer-api ceilometer-collector ceilometer-agent-central python-cei

openstack系列文章(四)

学习 openstack 的系列文章 - Nova Nova 基本概念 Nova 架构 openstack Log Nova 组件介绍 Nova 操作介绍 1. Nova 基本概念 Nova 是 openstack 最核心的服务,负责管理和维护云环境的计算资源,虚拟机的生命周期管理就是通过 Nova 来实现的 . 2. Nova 架构 2.1 Nova 基本组件 如上图所示,Nova 由多个组件构成,这些组件以子服务的形式运行 . 举例,通过  systemctl status openstac

OpenStack —— 虚拟机的启动过程简述(八)

Dashboard or CLI gets the user credential and does the REST call to Keystone for authentication. Keystone authenticate the credentials and generate & send back auth-token which will be used for sending request to other Components through REST-call. D

Openstack组件部署 — keystone(domain, projects, users, and roles)

目录 目录 前文列表 Create a domain projects users and roles domain projects users and roles的意义和作用 Create the default domain Create the service projecttenant 创建用于管理的用户租户和角色 Create the admin projecttenant Create the admin user Create the admin role Add the adm

OpenStack securityGroup

OpenStack DBaas 云数据即服务之?troveError 1,with OpenStack Networking launch an instance VMs 前创建Cloud image public key pair 2,launch an instance,you must at least specify the flavor,image name,network,security group,key,and instanceName 2.1 A flavor specifi

How to migrate from VMware and Hyper-V to OpenStack

http://superuser.openstack.org/articles/how-to-migrate-from-vmware-and-hyper-v-to-openstack Introduction I migrated >120 VMware virtual machines (Linux and Windows) from VMware ESXi to OpenStack. In a lab environment I also migrated from Hyper-V with