OpenStack 是一个可伸缩,易管理的云平台服务,由美国航天局和racespace 公司共同研制的一个开源、免费的云项目,它是一个巨大分布式框架。OpenStack是一个强大的IaaS基础设施云服务平台,能够实现对计算、存储、网络等虚拟资源进行管理。
核心项目
此文仅对核心项目进行简要介绍,详情见各项目介绍
OpenStack是一个分布式架构,通过独立的项目实现对特定的虚拟资源进行管理监管。OpenStack的概念图如下图所示
核心的项目主要如下:
nova(计算)
nova项目是计算资源管理项目,实现对虚拟资源的控制管理,对虚拟机进行控制管理,并协调其他资源。
功能及特点:虚拟机生命周期管理、计算资源管理、基于REST 的API、异步连续通信、支持各种虚拟化技术:Xen、XenServer、KVM、VMware vSphere 及Hyper-V。当前也实现对容器的支持。
neutron(网络)
neutron 是OpenStack 管理内部网络和对接外部网络的一个项目。它可以分配公网IP,维护dhcp 服务,实现安全组,流量控制,划分vlan 等。Neutron 主要是通过虚拟交换机(openVSwitch或linuxbridge)来实现二层网络,三层和高层网络。neurton 主要提供了下面几种
服务:
(1) dhcp 服务
(2) 安全组设置
(3) 数据路由
(4) 对接外网
(5) 划分vlan 等
cinder(块存储)
cinder项目为虚拟机提供块存储服务,存储虚拟机的系统数据,或者用户数据,通过建立系统磁盘、数据磁盘,通过存储协议映射到宿主机提供为虚拟机使用
一旦虚拟机使用块存储作为虚拟机存储,便提供共享存储服务,但虚拟机所在的服务器宕机异常,并不影响虚拟机的系统数据,虚拟机可以通过cinder块存储在其他服务器启动虚拟机继续提供服务。
glance(镜像)
OpenStack 镜像服务器glance是一套虚拟机镜像发现、注册、检索系统,我们可以将镜像存储到以下任意一种存储中
horizon(UI)
Horizon 是一个用以管理、控制OpenStack 服务的Web 控制面板,它可以管理实例、镜像、
创建密匙对,对实例添加卷、操作Swift 容器等。除此之外,用户还可以在控制面板中使用终
端(console)或VNC 直接访问实例。总之,Horizon 具有如下一些特点:
(1)实例管理:创建、终止实例,查看终端日志,VNC 连接,添加卷等
(2)访问与安全管理:创建安全群组,管理密匙对,设置浮动IP 等
(3)偏好设定:对虚拟硬件模板可以进行不同偏好设定
(4)镜像管理:编辑或删除镜像
(5)查看服务目录
(6)管理用户、配额及项目用途
(7)用户管理:创建用户等
(8)卷管理:创建卷和快照
(9)对象存储处理:创建、删除容器和对象
(10)为项目下载环境变量
keystone(用户认证)
keystone 为所有的OpenStack 组件提供用户管理、用户认证和访问策略服务,它依赖自身REST(基于Identity API)系统进行工作,主要对(但不限于)Swift、Glance、Nova 等进行认证与授权。事实上,授权通过对动作消息来源者请求的合法性进行鉴
项目通信
openstack各项目之间通过restful api进行通信,相同项目内不同组件进程组件之间通过消息总线进行通信。服务进程通过向消息总线上发送和获取消息,openstack是基于消息驱动的。
详情见文章《OpenStack项目组件通信机制》
OpenStack项目组件通信机制