openstack介绍

为什要用云?
简单的说就是对资源更加合理的分配,使用,比如硬件的数量,带宽等等这些,因为你不能机器买来不需要了再卖掉(当然也可以),带宽跟机房签合同得来一年的,中间不够了也不能加,超了也不退钱
还有就是可以有一个可以统一管理的操作平台,可以快速的对基础设施进行建设配置等等,方便了许多
云计算是个什么鬼?
资源可以循环利用的一个过程(PS:没有虚拟化就没有云,因此这两者没什么可比性)
现有云模式
1.IaaS:基础设施即服务:用户通过网络获取虚机、存储、网络,然后用户根据自己的需求操作获取的资源
2.PaaS:平台即服务:将软件研发平台作为一种服务, 如Eclipse/Java编程平台,服务商提供编程接口/运行平台等
3.SaaS:软件即服务 :将软件作为一种服务通过网络提供给用户,如web的电子邮件、HR系统、订单管理系统、客户关系系统等。用户无需购买软件,而是向提供商租用基于web的软件,来管理企业经营活动
OpenStack起源
OpenStack 是 Rackspace(一 家 美 国 的 云 计 算 厂 商 ) 和 美 国 国 家 航 空 航 天 局(National Aeronautics and Space Administration, 简称 NASA) 在 2010 年共同发起了OpenStack 项目。 由 Rackspace 贡献存储源码(Swift)、 NASA 贡献计算源码(Nova)。在 2010 年的 7 月发起了 OpenStack 项目。
什么是OpenStack?
OpenStack 是一个通过数据中心控制计算资源、 存储资源和网络资源的云平台。 同时它又是一款开源软件, 以 Apache 许可证授权的自由软件和开放源代码项目, 支持所有类型的云环境。
OpenStack 的目标是提供简单实施、 可扩展以及丰富的功能集的云产品, 来自全世界的云计算专家共同维护该云项目。 OpenStack 通过多种补充服务提供了 IaaS 解决方案,每一种服务均提供了相应的应用程序接口(Application Programming Interface, 简称 API),以促进各组件之间的整合。
OpenStack 被用来提供公有云以及私有云的建设以及管理。 作为一个开源项目, 其社区规模涵盖 130 家企业以及 1350 位开发人员。这些机构与个人都将 OpenStack 作为 IaaS 资源的通用前端。
OpenStack 覆盖了网络、 虚拟化、 操作系统、 服务器等各个方面。 一般情况下, 每半年左右更新一次版本。 下面表中列出了常见的 8个核心项目(即 OpenStack 服务)。
OpenStack常见的8个核心项目

Compute(计算服务)Nova项目负责实例生命周期的管理, 计算资源的单位。 对 Hypervisor 进行屏蔽, 支持多种虚拟化技术(红帽默认为 KVM), 支持横向扩展。
Network(网络服务)Neutron项目负责虚拟网络的管理, 为实例创建网络的拓扑结构。 是面向租户的网络管理, 可以自定义网络, 并使租户之间互不影响。
Identity(身份认证服务)Keystone项目类似于 LDAP 服务, 对用户、 租户和角色、 服务进行认证与授权, 并且支持多认证机制。
Dashboard(控制面板服务)Horizon服务提供一个 Web 管理界面, 与 OpenStack 底层服务进行交互。
Image Service(镜像服务)Glance项目提供虚拟机镜像模板的注册与管理, 将做好的操作系统复制为镜像模板, 在创建虚拟机时直接使用。 可支持多格式的镜像。
Block Storage(块存储服务)Cinder负责为运行实例提供持久的块存储设备, 可进行方便的扩展, 按需付费, 支持多种后端存储。
Object Storage(对象存储服务)SwiftSwift 为 OpenStack 项目提供基于云的弹性存储, 支持集群无单点故障。
Telemetry(计量服务)Ceilometer项目用于度量、 监控和控制数据资源的集中来源, 为 OpenStack 用户提供记账途径。

OpenStack的优势
OpenStack 在控制性、 兼容性、 可扩展性、 灵活性方面具备有优势, 它可能成为云计算领域的行业标准。
控制性: 完全开源的平台, 模块化的设计, 提供相应的 API 接口, 方便与第三方技术集成, 从而满足自身业务需求。
兼容性: OpenStack 兼容其他公有云, 方便用户进行数据迁移
可扩展性: Openstack 采用模块化的设计, 支持主流发行版本的 Linux, 可以通过横向扩展, 增加节点、 添加资源。
灵活性: 用户可以根据自己的需要建立基础设施, 也可以轻松地为自己的群集增加规模 。
Openstack 项目采用 Apache2 许可, 意味着第三方厂家可以重新发布源代码。行业标准: 众多 IT 领军企业都加入到 OpenStack 项目, 意味着 OpenStack 在未来可能形成云计算行业标准。

OpenStack架构**
概述
OpenStack由多种服务组成,每种服务具有独立的命名。在整个OpenStack架构中, Keystone提供认证服务,接收来自用户和服务的认证请求,并对其身份进行认证。
各个服务之间通过公用的API接口进行交互。大部分服务均包含一个API进程,用于侦听API请求,根据服务的性质选择处理请求或转发请求。服务进程之间的通讯通过消息队列实现,如AMQP。
在部署完成的云系统平台上,用户通过 Dashboard或 RestaRt方式在经 Keystone模块认证授权后,可以执行创建虚拟机服务。通过Nova模块创建虚拟机实例,Nova调用 Glance模块提供的镜像服务,然后调用 Neutron模块提供网络服务。根据需要可以选择给虚拟机増加存储卷,卷功能由 Cinder模块提供服务。整个过程在Ceilometer模块的资源监控下完成。同时 Cinder提供的 Volume和 Glance提供的镜像可以诵讨 Swift对象存储机制讲行保存
在这里插入图片描述
在这里插入图片描述

通过以上解析可以看到 OpenStack 云平台服务的提供主要是依靠 Nova、Glance、Cinder 和 Neutron 四个核心模块完成的,四个辅助模块 Horizen、Ceilometer、Keystone、Swift 提供的访问、监控、权限和对象存储功能。
这里面所有的服务都是围绕着VM进行提供服务的,虚拟机需要什么资源,我们就提供什么资源
  我们可以将服务分为两大类,一个是服务的提供者,一个是服务的消费者。提供者是我可以提供某个服务,消费者是我可以用到这个服务。
  openstack默认是没有创建虚拟机的功能,是通过调用KVM来创建虚拟机还可以调用esxi来创建虚拟机,总之openstack没有创建虚拟机的功能都是通过调用其他服务来进行操作。openstack就是一个框架,它可以调用其他的服务,所以openstack也就是一个管理平台

流程介绍
在这里插入图片描述
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的信息调用配置的虚拟化驱动来创建虚拟机。

这里面可以看出组件之间的通讯都是通过restapi实现的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值