OpenStack基本架构

OpenStack 是一个利用虚拟资源池构建和管理私有云和公共云的平台。那些包含 OpenStack 平台的各个工具(称作“项目”)负责处理计算、网络、存储、身份和镜像服务等核心云计算服务。还可将十余个可选项目捆绑到一起,创建与众不同的可部署云。在虚拟化环境中,诸如存储、CPU 和 RAM 等资源都是从诸多供应商特定的项目中提取出来,然后由虚拟机监控程序进行拆分并按需进行分配。OpenStack 使用一组一致的应用编程接口(API),进一步将这些虚拟资源提取为离散池,用于辅助标准云计算工具,供管理员和用户直接交互使用。

open stack基本原理图

在这里插入图片描述

运用范围

美国国家航空航天局的Nebula运算平台。
OpenStack是基础设施即服务(IaaS)软件,让任何人都可以自行创建和提供云计算服务。

此外,OpenStack也用作创建防火墙内的“私有云”(Private Cloud),提供机构或企业内各部门共享资源。
技术资料
以Python编程语言编写
集成Tornado网页服务器、Nebula运算平台
使用Twisted软件框架
遵循Open Virtualization Format、AMQP、SQLAlchemy等标准
虚拟机软件支持包括:KVM、Xen、VirtualBox、VMware、Hyper-V

核心组件

组件名称功能
Nova(计算服务)管理虚拟机的整个生命周期:创建、运行、挂起、调度、关闭、销毁等。这是真正的执行部件。接受 DashBoard 发來的命令并完成具体的动作。但是 Nova 不是虛拟机软件,所以还需要虚拟机软件(如 KVM、Xen、Hyper-v 等)配合
Neutron(网络服务)管理网络资源,提供/一组应用编程接口(API),用户可以调用它们来定义网络(如 VLAN ),并把定义好的网络附加给租户。Networking 是一个插件式结构,支持当前主流的网络设备和最新网铬技术
Swift(对象存储)是 NoSQL 数据库,类似 HBase,为虚拟机提供非结构化数据存储,它把相同的数据存储在多台计箅机上,以确保数据不会丢失。用户可通过 RESTful 和 HTTP 类型的 API 来和它通信。这是实际的存储项目,类似 Ceph,不过在 OpcnStack 具体实施时,人们更愿意采用 Ceph。
Cinder(块存储)管理块设备,为虚拟机管理 SAN 设备源。但是它本身不是块设备源, 需要一个存储后端来提供实际的块设备源(如 iSCSI、FC等)。Cinder 相当于一个管家,当虚拟机需要块设备时,询问管家去哪里获取具体的块设备。它也是插件式的,安装在具体的 SAN 设备里。
Keystone(认证服务)为其他服务提供身份验证、权限管理、令牌管理及服务名册管理。要使用云计算的所有用户事先需要在 Keystone 中建立账号和密码,并定义权限(注意:这里的“用户”不是指虚拟机里的系统账户,如 Windows 7 中的 Administrator )。另外,OpenStack 服务(如 Nova、Neutron、Swift、Cinder 等)也要在里面注册,并且登记具体的 API,Keystone 本身也要注册和登记 API
Glance(镜像服务)存取虚拟机磁盘镜像文件,Compute 服务在启动虚拟机时需要从这里获取镜像文件。这个组件不同于上面的 Swift 和 Cinder,这两者提供的 存储是在虚拟机里使用的
Horizon(仪表板)提供了一个网页界面,用户登录后可以做这些操作:管理虚拟机、配置权限、分配 IP 地址、创建租户和用户等。本质上就是通过图形化的 操作界面控制其他服务(如 Compute、Networking 等)。当然,如果你熟悉命令,也可以直接采用命令来完成相应的任务
Ceilometer结合 Aodh、CloudKitty 两个组件,完成计费任务,如结算、消耗的 资源统计、性能监控等。OpenStack 之所以能管理公共云,一是因为 Ceilometer 的存在,二是因为引人了租户的概念

可选组件

组件名称功能
Heat (编排)如果要在成千上万个虚拟机里安装和配置同一个软件,该怎么办?采用 Orchestrates 是一个不错的主意,它向每个虚拟机里注人一个名叫 heat-cfntools 的客户端工具,然后就能同时操作很多虚拟机
Sahana使用户能够在 OpenStack 平台上(利用虚拟机)一键式创建和管理 Hadoop 集群,实现类似 AWS 的 EMR(Amazon Elastic MapReduce Service)功能。用户只需要提供简单的配置参数和模板,如版本信息(CDH 版本)、集群拓扑(几个 Slave、几个 Datanode)、节点配置信息(CPU、内存)等,Sahara 服务就能够在几分钟内根据提供的模板快速 部署 Hadoop、Spark 及 Storm 集群。Sahana 是一个大数据分析项目
Ironic把裸金属机器(与虚拟机相对)加人到资源池中
ZaqarZaqar 为 Web 和移动开发者提供多租户云消息和通知服务,开发人员可以通过 REST API 在其云应用的不同组件中通过不同的通信模式(如 生产者/消费者或发布者/订阅者)来传递消息
Barbican是 OpenStack 的密钥管理组件,其他组件可以调用 Barbican 对外暴露的 REST API 来存储和访问密钥
Manila为虚拟机提供文件共享服务,不过需要存储后端的配合
其他组件:Congress(策略服务)、Designate(DNS 服务)、Freezer(备份及还原服务)、Magnum(容器支持)、Mistral(工作流服务)、Monasca(监控服务)、Searchlight(索引和搜索)、Senlin(集群服务)、Solum(APP集成开发平台)、Tacker(网络功能 虚拟化)、Trove(数据库服务)

各个组件点的
在这里插入图片描述
OpenStack项目并不是单一的服务,其含有子组件,子组件内由模块来实现各自的功能,通过消息队列和数据库,各个组件可以相互调用,互相通信。这样的消息传递方式解耦了组件、项目间的依赖关系,所以才能灵活地满足我们实际环境的需要,组合出适合我们的架构。每个项目都有各自的特性,大而全的架构并非适合每一个用户,OpenStack的成长是在生产环境中不断被检验,然后再将需求反馈给社区,由社区来实现的一个过程,可以说OpenStack并非脱离实际的理想化开源社区项目,而是与生产实际紧密结合的,可以复制应用的云计算方案。

OpenStack 本身是一个分布式系统,不但各个服务可以分布部署,服务中的组件也可以分布部署。
这种分布式特性让 OpenStack 具备极大的灵活性、伸缩性和高可用性

项目名称:Nova
负责提供compute(计算服务)
功能:Nova是最核心的组件之一,是一套虚拟化管理控制程序,可供用户管理网络,存储和实例的生命周期,创建和释放实例,屏蔽虚拟机监视器,且多个组件都为nova提供服务,组件本身支持多种虚拟化技术,

项目名称:Neutron
负责提供Network(网络服务)
功能:负责管理虚拟化后的网络架构,为实例提供根据需求自定义化的网络拓扑结构,可以由云平台的最终用户自行定义,且从逻辑上隔离了每个用户之间的的实例网络。

项目名称:Keystone
负责提供Identity(身份认证)
功能:对最终用户进行识别,鉴权和授权,当其他组件继续对请求继续预处理时,会事先询问keystone,该用户是否拥有使用该资源的权限,且支持多认证机制

项目名称:“Horizon”
负责提供Dashboard(控制面板服务)
功能:提供能通过web访问的图形化管理界面,可以直接使用网页访问OpenStack底层访问进行交互,大大降低了管理难度,

项目名称“Glance”
负责提供Image Service(镜像服务)
功能:可以为最终用户提供镜像的下载和创建服务,在创建虚拟机时可以直接调用镜像创建,同时也为弹性伸缩提供了镜像,支持多个格式的镜像

项目名称“Cinder”
负责提供Block Storage(块存储服务)
功能:为实例提供储存空间,且支持扩展,按需计费,支持多种后端储存

项目名称“Swift”
负责提供Ojbect Storage (对象存储服务)
功能:为实例提供具有弹性存储,通过弹性存储来帮助群集实例消除单点故障

项目名称“Ceilometer”
负责提供Telemetry(计量服务)
功能:负责对最终用户使用的资源继续监控,ceilometer几乎可以收集OpenStack中的所有,按量计费和管理,为平台运营商提供便于记录收费依据的便捷途径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值