本文主要是介绍OpenStack创建虚拟机过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
OpenStack创建虚拟机过程
一、在分析OpenStack创建虚拟机的过程之前,先来梳理一下需要用用到哪些组件。
二、每一步都需要去keystone去进行验证,下图有详细的流程。
- 登录界面或命令行通过RESTful API向keystone获取认证信息。
- keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。
- 界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带auth-token)。
- nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户和token。
- keystone验证token是否有效,如有效则返回有效的认证和对应的角色(注:有些操作需要有角色权限才能操作)。
- 通过认证后nova-api和数据库通讯。
- 初始化新建虚拟机的数据库记录。
- nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(Host ID)。
- nova-scheduler进程侦听消息队列,获取nova-api的请求。
- nova-scheduler通过查询nova数据库中计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机。
- 对于有符合虚拟机创建的主机,nova-scheduler更新数据库中虚拟机对应的物理主机信息。
- nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。
- nova-compute会从对应的消息队列中获取创建虚拟机请求的消息。
- nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。(Flavor)
- nova-conductor从消息队队列中拿到nova-compute请求消息。
- nova-conductor根据消息查询虚拟机对应的信息。
- nova-conductor从数据库中获得虚拟机对应信息。
- nova-conductor把虚拟机信息通过消息的方式发送到消息队列中。
- nova-compute从对应的消息队列中获取虚拟机信息消息。
- nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求glance-api获取创建虚拟机所需要镜像。
- glance-api向keystone认证token是否有效,并返回验证结果。
- token验证通过,nova-compute获得虚拟机镜像信息(URL)。
- nova-compute通过keystone的RESTfull API拿到认证k的token,并通过HTTP请求neutron-server获取创建虚拟机所需要的网络信息。
- neutron-server向keystone认证token是否有效,并返回验证结果。
- token验证通过,nova-compute获得虚拟机网络信息。
- nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求cinder-api获取创建虚拟机所需要的持久化存储信息。
- cinder-api向keystone认证token是否有效,并返回验证结果。
- token验证通过,nova-compute获得虚拟机持久化存储信息。
- nova-compute根据instance的信息调用配置的虚拟化驱动来创建虚拟机。
三、客户从界面下发创建vm
1,horizon去keystone认证
2, horizon 将请求发送给api(带认证)
3,api 再去认证
4,api修改数据库虚拟机信息
5,api 让scheduler确认在哪台主机
6,scheduler 确认主机信息后 修改数据库
7,scheduler向compute发送创建虚拟机请求信息
8,compute(请求,包括创建虚拟机请求) 让conductor去数据库查询具体信息,
9,compute从conductor获取了vm的具体信息后 请求glance 调用镜像(glance去keystone认证)
10,compute从conductor获取了vm的具体信息后 请求neutron 调用网络(neutron去keystone认证)
11,compute从conductor获取了vm的具体信息后 请求cinder 调用磁盘(glance去cinder认证)
12,compute 根据具体vm信息调用虚拟化驱动来创建虚拟机。
参考链接:
https://www.cnblogs.com/zhou2019/p/11045284.html
https://www.cnblogs.com/scottsofia/articles/12674096.html
https://blog.csdn.net/qq_36357820/article/details/77836759
https://blog.51cto.com/arkling/2329742
https://www.cnblogs.com/popsuper1982/p/3927390.html
https://www.yisu.com/zixun/25737.html
这篇关于OpenStack创建虚拟机过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!