zoukankan      html  css  js  c++  java
  • A20. openstack架构实战-虚拟机创建的流程

    创建虚机的请求流如下:

    1. Dashboard 或者 CLI 获取用户的登录信息,调用 Keystone 的 REST API 去做用户身份验证。(无论是登入openstack的web页面还是在web页面上执行openstack的操作,都会先去调用keystone)
    2. Keystone 对用户登录信息进行校验,然后产生验证token并发回。它会被用于后续 REST 调用请求。
    3. Dashboard 或者 CLI 将创建虚机的 REST请求中的‘launch instance’ 或‘nova-boot’ 部分进行转换,然后调用 nova-api 的 REST 接口。(这时候,dashboard会带着keystone返回的token进行)
    4. nova-api 接到请求,向 keystone 发送 auth-token 校验和权限认证请求。
    5. Keystone 校验 token,并将 auth headers 发回,它包括了 roles 和 permissions。
    6. nova-api 和 nova-database 进行交互。
    7. nova-database 为新实例创建一个数据库条目。(nova-api会将虚拟机的请求信息保存到数据库中)
    8. nova-api 向 nova-scheduler 发送  rpc.call 请求,期望它能通过附带的 host ID 获取到数据库条目。
    9. nova-scheduler 从 queue 中获取到请求。
    10. nova-scheduler 和 nova-database 交互,获取集群中计算节点的信息和状态。
    11. nova-scheuler 通过过滤(filtering)和称重(weighting)找到一个合适的计算节点(host)。
    12. nova-scheduler 向找到的那个host上的 nova-compute 发送 rpc.cast 请求去启动虚机。
    13. 目标 host 上的 nova-compute 从 queue 中获取到请求。
    14. nova-compute 向 nova-condutor 发送 rpc.call 请求去获取待创建虚机的信息比如 host ID 和 flavor 等。
    15. nova-conductor 从queue 中获取到请求。
    16. nova-conductor 和 nova-database 交互。
    17. nova-database 向 nova-conductor 返回虚机的信息。
    18. nova-conductor 向 nova-compute 发送 rpc.call,附带所请求的信息。图中应该是遗漏了一个步骤,就是 nova-compute 从queue 中获取返回的数据。
    19. nova-compute 调用 glance-api 的 REST API,传入 auth-token,去根据镜像 ID 获取镜像 URI,从镜像存储中下载(原文为upload)镜像。
    20. glance-api 向 keystone 校验 auth-token。
    21. nova-compute 获取 image 的元数据。
    22. nova-compute 调用 Neutron API ,传入 auth-token,去分配和配置网络,比如虚机的IP地址。
    23. neutron-server 通过 keystone 校验 auth-token。
    24. nova-compute 获得网络信息。
    25. nova-compute 调用 Cinder API,传入 auth-token,去将 volume 挂接到实例。
    26. cinder-api 通过 keystone 校验 auth-token。
    27. nova-compute 获得块存储信息。
    28. nova-compute 为 hypervisor driver 产生数据,并调用 Hypersior 执行请求(通过 libvirt 或者 api)。
  • 相关阅读:
    人月神话
    Rails 最佳实践
    萧伯纳名言名句大全
    听话,照做,执行,别发挥
    So Good They Can't Ignore You
    谈谈遵守公司作战纪律
    如何让自己有动力去长久地做一件事情
    新架构优化问题总结
    Markdown 入门
    关于代码版本管理的思考和建议
  • 原文地址:https://www.cnblogs.com/zhaopei123/p/13060622.html
Copyright © 2011-2022 走看看