2022.1.10 openstack学习笔记(未完成)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、Openstack简介

1、IaaS(Infranstracture As A Service) : 基础设施服务,这个阶段实现了时间灵活性和空间灵活性,实现了计算,网络,存储资源的弹性,称此为资源层面的弹性,管理资源的云平台,称为基础设施服务,这层的作用是提供虚拟机或者其他资源作为服务提供给用户。
2、Paas (Platform As A Service):平台服务,把服务器平台或者开发环境作为一种服务提供的商业模式,通过PaaS这种模式,用户可以在一个包括SDK,文档和测试环境等在内的开发平台上非常方便地编写应用,而且不论是在部署,或者在运行的时候,用户都无需为服务器,操作系统,网络和存储等资源的管理操心,这些繁琐的工作都由PaaS供应商负责处理,这层的作用是将开发平台作为服务提供给用户。
3、SaaS (Software As A Service):软件服务,用户只要接上网络,并通过浏览器,就能直接使用在云端上运行的应用,而不需要顾虑类似安装等琐事,并且免去初期高昂的软硬件投入。这层的作用是将应用作为服务提供给客户。

在这里插入图片描述openstack 是一个云计算平台,他能管理数据中心的大量计算 存储 网络资源,并且向用户提供一个管理资源的Web界面,同时提供功能相同的命令行 和 RESTful API接口

在这里插入图片描述

二、Openstack基本架构

在这里插入图片描述
在这里插入图片描述

三、Openstack组件介绍

1、Heat 组件

Heat 组件位于最上层,这个组件的主要作用是对OpenStack中的资源进行编排,例如,通过Heat组件,我们可以编排出网络资源,也可以编排出存储资源,还可以编排出虚拟机资源。
但最常使用的还是用Heat进行系统编排,例如,通过Heat可以编排出弹性扩缩容的主机组,也可以编排出Redis集群,还可以编排出负载均衡器等。随着OpenStack组件的不断发展,Heat现在还可以对容器进行编排。

2、Horizon 组件

这个组件的主要作用是提供OpenStack的UI服务,可以对OpenStack中的资源进行可视化展示,对于OpenStack的用户而言,通过Horizon可以很方便地创建诸如虚拟机、网络、存储等资源而不需要记忆烦琐的命令。这个组件极大地提高了OpenStack的易用性。

3、Neutron 组件

这个组件用来提供OpenStack中的网络相关的服务,比如,创建Network、Subnet、防火墙、安全组等。这个组件也是OpenStack中比较复杂的一个组件,参与这个组件开发的人员众多,代码的风格也不尽相同,所以如果想学习OpenStack代码的话,不建议从这个组件入手,可以从Nova组件入手。 Cinder 组件 为OpenStack提供块存储服务

4、Nova 组件(计算资源管理)

为OpenStack提供计算服务,通过这个组件可以在OpenStack 中创建虚拟机,可以选择不同CPU/RAM的配置来创建虚拟机。

Nova是OpenStack中最早的核心组件之一,主要负责OpenStack 中的计算服务,直白点儿说就是它主要服务于虚拟机,对虚拟机的生命周期进行管控,但Nova本身并不会提供任何虚拟化能力,它仅仅是调用相关的API与第三方 Hypervisor进行交互。

当Nova进行虚拟机生命周期管理时,同样也需要与OpenStack 中的其他组件进行交互。虚拟机创建过程中,首先需要有相应的镜像,虚拟机获取镜像的方式是调用Glance 的API 从 Glance中获取镜像;其次虚拟机中网络创建时,Nova也需要调用Neutron的相关API进行创建。

在OpenStack 中比较重要的一点就是,当需要调用相关组件的API时,首先要做的事情就是得通过Kestone的认证,当通过认证拿到Token后,才能再去调用其他组件,同样的,当其他组件收到REST请求后,需要拿这个Token再次到负责认证的组件进行二次认证,只有通过认证后,此组件才会为其他组件提供服务。

作为OpenStack的核心组件之一,Nova的主要功能和特点如下:

    虚拟机生命周期管理;
    提供REST风格API;
    使用RPC进行通信;
    管理计算资源;
    支持不同的虚拟化方式。 

为方便对虚拟机生命周期进行管理,Nova内部维护了一个针对虚拟机的状态机,从虚拟机开始创建到最终的删除操作,都有相应的状态与之对应。虚拟机创建成功后,会在数据库中存放一条与之对应的记录;当虚拟机被删除时,与虚拟机相关的记录会被“软删除”,即记录还是存在的,只是这条记录中的某个字段被设置为1,用以表示此记录被删除。

图1.3简单列出了Nova中虚拟机的一些状态。这个状态并非虚拟机的全部状态,只是列出了其中比较常用的几种,有关虚拟机的所有状态信息,可以参考Nova的代码: nova/compute/vm_states.py,里面是虚拟机的所有状态。
————————————————
版权声明:本文为CSDN博主「45℃」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_45598161/article/details/122234908

5、Glance 组件

提供镜像服务,通过Glance提供的镜像一般会被Nova创建虚拟机时使用。

6、Swift 组件

提供对象存储服务。

7、Ceilometer 组件

提供数据监控与告警服务。这里需要注意的是,在Ocata版以后的版本中,Ceilometer组件的功能(如数据存储、告警)被拆分了出去,分别由其他组件负责,Ceilometer更多的关注于数据的采集。

8、Keystone 组件

这是一个与其他组件交互最多的组件,它的主要功能是为其他组件提供认证服务,用户只有通过了Keystone的认证才有资格执行其他操作。例如,Nova创建虚拟机时,需要通过Glance来获取镜像,Nova发送请求时需要从Keystone中获取认证信息,当Glance接收到Nova的请求,需要拿认证信息到Keystone中再次确认。

四、Openstack组件运行步骤

在这里插入图片描述

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

总结

提示: 只学习了一部分,学习内容到核心组件部分 原文链接:https://blog.csdn.net/qq_45598161/article/details/122234908
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值