OpenStack是什么
-
是一个开源的云计算管理项目,而且它并不是代指一个特定的软件,而是一系列软件开源项目的组合,它的主要任务是给用户提供IaaS服务(基础架构即服务),其中提供了IT底层的基础设施服务,包含了处理能力,储存空间和网络资源。由NASA和Rackspace共同发起,是一个以apache许可证授权的开源代码项目,由Python编写,目前世界范围内拥有130多家企业和上千名开发者共同开发和完善,也是目前云平台管理的首选方案,
-
简单来说OpenStack是一个简化管理云平台的开源软件组,由多个组件组成并协调完成一系列工作,是一个为了能更好的创建和管理建立在服务器之上的逻辑实例(即“虚拟机”)的软件集合。
OpenStack的核心组件
OpenStack主要由以下9个组件组成
- 项目名称: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中的所有,按量计费和管理,为平台运营商提供便于记录收费依据的便捷途径。
OpenStack的优势
- 完全开源的平台,所有组件都使用API接口提供服务,方便在源架构上扩展第三方程序,
- 兼容性很强,便于客户迁移部署
- 模块化,支持横向扩展
- 众多大型企业都是其开发者,后续开发的功能回更加完善
OpenStack的架构
大致结构如下图所示
上图中的组件大致可以分为:
全局组件:向所有组件提供服务
核心组件:是创建管理服务实例和客户的核心组件
外部组件:一般多为扩展功能组件
关于组件
- 组件中还包含了众多的小组件,小组件之间使用mq承载和传递数据
- 组件之间使用暴露API接口的方式实现相互协同工作,也是依托这种方式所以在OpenStack中加入新的组件会非常方便
- api接口的主要作用是负责发送和监听消息,其本身并不具有处理请求的能力,如果请求数过多,会将请求按优先级形成队列,逐个处理