3.1.3计算服务开源 OpenStack|学习笔记(二)

简介: 快速学习3.1.3计算服务开源 OpenStack

开发者学堂课程【高校精品课-长安大学 -基于混合式教学的云计算课程建设3.1.3计算服务开源 OpenStack】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/1073/detail/15473


3.1.3计算服务 开源 OpenStack  


内容介绍:

二.虚拟机


二.虚拟机

1.虚拟机状态介绍

image.png

当运行这个命令,比如 nova list 的时候,会看到这个虚拟机的状态。那么在虚拟机的状态里,会看到它有三个,一个叫vm_state ,一个叫 task_state ,一个叫 power_state 。首先来看一下虚拟机的状态类型,它分为四种, vm_state 是数据库中记录的虚拟机的状态; task_state 是当前这个虚拟机的任务状态,一般是中间态或者 None ;power_stat 是从 hypervisor 中获取的虚拟机的真实状态; Status 是对外呈现的虚拟机状态。那么这些状态之间是什么关系呢?在 nova 的系统内部,它只记录了vm_state 和 task_state,power_state 这些状态。对外的 status ,它是由 vm_state 和 task_state 联合生成的。比如,我的 vm_state 是 active ,而我的 task_state 是 rebooting 状态,那么 status 的状态就是 REBOOT;如果我的 vm_state 是 building 状态,那么 status 就是 BUILD 的状态。所以它对外呈现的状态是这样得到的。  

2.虚拟机状态组合

image.png

如图是一个虚拟机的状态列表,它有两列, vm_state 和 task_state ,最后它得到一个对外的另外的一个 status ,它的这个状态的一个列表。通过这个列表,我们可以看到它不同的状态所对应的不同的 vm_state 和 task_state 所对应的 status 。

3.Nova 创建虚拟机流程

image.png

现在看一下 nova 创建一个虚拟机的流程。这个虚拟机的流程它分为很多的步骤,来分别看一下。  

第一步,是用户通过这个 Dashboard ,也就是 OpenStack CLI 即命令行这个接口申请创建虚拟机,并以 restap 的方式来请求 keystone 的授权。那么keystone 鉴定后就会给它返回一个认证通过的 author taken ,这样的话,它就获得了授权。获得了授权以后,  

第二步,它就将虚拟机的请求转换成 API 发送给 nova API ,Nova API 在收到请求以后他就会向 keystone 发送请求验证它的 author taken 并获得权限,那么 keystone 验证了以后,就会发送这个角色和权限更新的这种认证信息返回。  

第四步, Nova-api 就会去联系 nova 的数据库,为新的实例创建一个初始的数据库条目,这个时候它的虚拟机的状态就会变成 building 状态。  

第五步,nova API 它直接就会发送请求给 nova scheduler ,获得需要安装虚拟机的主机,他是通过Message Queue 来发给他的。  

第六步, nova scheduler从 Message Queue 中拿到请求以后。  

第七步, nova scheduler 也会去联系 Database ,然后通过过滤和权衡,来查找一个最合适的主机。查找到以后,他就会把请求发送到 nova compute ,他也是通过 Message Queue发送的。  

第八步, Nova compute 从Message Queue 中拿到请求,然后发送给 Nova conductor。那么,Nova compute 就会给nova conductor ,它就可以获取选定的主机的信息,比如规格, CPU ,它的磁盘等。同样, nova conductor,它也是从 Message Queue 中拿到请求。然后,他会联系 nova 的数据库。那么返回,它同样也会联系数据库,然后返回选定主机的信息。这时候, nova 也会将信息发送到 Message Queue 里,那么 Nova compute 就会从这个 Message Queue 里,得到选定的主机信息。

这时候, Nova compute , 他就会去第十步,去找 glass 请求镜像服务。  

第十一步,glass 的 API 会与 keystone 进行验证。验证完以后, Nova compute 就得到了这个镜像的原数据。  

接下来,Nova compute 就会进行第十二步,它就会和网络的这个 API Neutron 进行交互,获取网络服务,同样,这个网络 Neutron ,也会和这个 keystone 进行验证,验证完以后, nova compute 这时候就得到了网络的信息。  

然后 Nova compute 就会第十四步,它就会去和 Cinder API 进行调用,获得块存储的服务。  

同样第十五步, Cinder API 也会与 keystone 进行验证,验证完以后,nova compute 就得到了这个块存储的服务。当 nova compute 获取了 glass 的镜像的信息、Neutron 网络的信息、块存储的信息,这时候它就可以驱动在它上面的这个 Hypervisor ,生成这个虚拟机了,生成了虚拟机就完成了虚拟机的创建。那么,当虚拟机的创建完成以后,在创建的过程中,实际上它也会设定像安全组这些信息。当安全组的规则配置好了的时候,我们的客户端就可以通过 SSH 或者 HTTP 等方式来访问我们的这个虚拟机。这就是一个 nova 创建虚拟机的流程。至此,就学习完了所有的 IAS 计算服务的全部内容,包括 AWS, EC2 ,还有阿里云的 ECS 以及 OpenStack。接下来,会学习 IAS 的存储服务。

相关文章
|
6月前
|
存储 消息中间件 数据库
云计算|OpenStack|社区版OpenStack安装部署文档(八--- 存储服务cinder的安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(八--- 存储服务cinder的安装部署---Rocky版)
271 0
|
6月前
|
运维 数据可视化 Linux
云计算|OpenStack|社区版OpenStack安装部署文档(七--- 仪表盘服务dashboard的安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(七--- 仪表盘服务dashboard的安装部署---Rocky版)
158 0
|
3月前
|
安全 API 网络安全
OpenStack的 网络服务(Neutron)
【8月更文挑战第23天】
204 10
|
6月前
|
存储 关系型数据库 MySQL
云计算|OpenStack|社区版OpenStack安装部署文档(四 --- 镜像服务glance安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(四 --- 镜像服务glance安装部署---Rocky版)
174 0
|
2月前
|
存储 消息中间件 算法
深入解析OpenStack Cinder:块存储服务详解
本文介绍了OpenStack及其块存储服务Cinder。OpenStack是一个开源云计算管理平台,提供基础设施即服务(IaaS),核心服务包括计算、网络、存储等。Cinder主要用于为虚拟机提供持久性块存储,具备多种功能,如卷操作、备份、快照及与实例的交互等。此外,还详细介绍了Cinder的工作流程、命令行操作及不同存储插件的使用。
402 8
|
6月前
|
Linux 网络安全 API
云计算|OpenStack|社区版OpenStack安装部署文档(五 --- 计算服务nova安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(五 --- 计算服务nova安装部署---Rocky版)
352 0
|
API 数据库 数据安全/隐私保护
(五)Open Stack(M)----Neutron服务安装与配置(上)
(五)Open Stack(M)----Neutron服务安装与配置(上)
119 0
|
6月前
|
Linux API 数据库
云计算|OpenStack|社区版OpenStack安装部署文档(六 --- 网络服务neutron的安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(六 --- 网络服务neutron的安装部署---Rocky版)
192 0
|
6月前
|
关系型数据库 MySQL 数据库
云计算|OpenStack|社区版OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky版)
云计算|OpenStack|社区版OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky版)
170 0
|
API 数据库
(五)Open Stack(M)----Neutron服务安装与配置(下)
(五)Open Stack(M)----Neutron服务安装与配置(下)
121 0