OpenStack创建虚拟机过程

2024-09-08 10:38

本文主要是介绍OpenStack创建虚拟机过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

OpenStack创建虚拟机过程

一、在分析OpenStack创建虚拟机的过程之前,先来梳理一下需要用用到哪些组件。

二、每一步都需要去keystone去进行验证,下图有详细的流程。

  1. 登录界面或命令行通过RESTful API向keystone获取认证信息。
  2. keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。
  3. 界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带auth-token)。
  4. nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户和token。
  5. keystone验证token是否有效,如有效则返回有效的认证和对应的角色(注:有些操作需要有角色权限才能操作)。
  6. 通过认证后nova-api和数据库通讯。
  7. 初始化新建虚拟机的数据库记录。
  8. nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(Host ID)。
  9. nova-scheduler进程侦听消息队列,获取nova-api的请求。
  10. nova-scheduler通过查询nova数据库中计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机。
  11. 对于有符合虚拟机创建的主机,nova-scheduler更新数据库中虚拟机对应的物理主机信息。
  12. nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。
  13. nova-compute会从对应的消息队列中获取创建虚拟机请求的消息。
  14. nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。(Flavor)
  15. nova-conductor从消息队队列中拿到nova-compute请求消息。
  16. nova-conductor根据消息查询虚拟机对应的信息。
  17. nova-conductor从数据库中获得虚拟机对应信息。
  18. nova-conductor把虚拟机信息通过消息的方式发送到消息队列中。
  19. nova-compute从对应的消息队列中获取虚拟机信息消息。
  20. nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求glance-api获取创建虚拟机所需要镜像。
  21. glance-api向keystone认证token是否有效,并返回验证结果。
  22. token验证通过,nova-compute获得虚拟机镜像信息(URL)。
  23. nova-compute通过keystone的RESTfull API拿到认证k的token,并通过HTTP请求neutron-server获取创建虚拟机所需要的网络信息。
  24. neutron-server向keystone认证token是否有效,并返回验证结果。
  25. token验证通过,nova-compute获得虚拟机网络信息。
  26. nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求cinder-api获取创建虚拟机所需要的持久化存储信息。
  27. cinder-api向keystone认证token是否有效,并返回验证结果。
  28. token验证通过,nova-compute获得虚拟机持久化存储信息。
  29. 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创建虚拟机过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147883

相关文章

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程

《SpringBoot集成LiteFlow实现轻量级工作流引擎的详细过程》LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑,下面给大... 目录一、基础概念1.1 组件(Component)1.2 规则(Rule)1.3 上下文(Conte

Java中实现线程的创建和启动的方法

《Java中实现线程的创建和启动的方法》在Java中,实现线程的创建和启动是两个不同但紧密相关的概念,理解为什么要启动线程(调用start()方法)而非直接调用run()方法,是掌握多线程编程的关键,... 目录1. 线程的生命周期2. start() vs run() 的本质区别3. 为什么必须通过 st

Spring Boot 整合 Apache Flink 的详细过程

《SpringBoot整合ApacheFlink的详细过程》ApacheFlink是一个高性能的分布式流处理框架,而SpringBoot提供了快速构建企业级应用的能力,下面给大家介绍Spri... 目录Spring Boot 整合 Apache Flink 教程一、背景与目标二、环境准备三、创建项目 & 添

Macos创建python虚拟环境的详细步骤教学

《Macos创建python虚拟环境的详细步骤教学》在macOS上创建Python虚拟环境主要通过Python内置的venv模块实现,也可使用第三方工具如virtualenv,下面小编来和大家简单聊聊... 目录一、使用 python 内置 venv 模块(推荐)二、使用 virtualenv(兼容旧版 P

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

Pytorch介绍与安装过程

《Pytorch介绍与安装过程》PyTorch因其直观的设计、卓越的灵活性以及强大的动态计算图功能,迅速在学术界和工业界获得了广泛认可,成为当前深度学习研究和开发的主流工具之一,本文给大家介绍Pyto... 目录1、Pytorch介绍1.1、核心理念1.2、核心组件与功能1.3、适用场景与优势总结1.4、优

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧