2010年7月,Rackspace和NASA正式启动开源的云管理软件OpenStack。OpenStack通过一系列相关的服务提供基础设施服务(IaaS)解决方案。每个服务提供一个应用编程的API,这样有利于集成。管理员可以根据自己的需求安装部分或者全部服务。该篇文章将对OpenStack Havana版本的构架做总体的介绍,为后面多节点部署OpenStack打下基础。
1 OpenStack的服务
OpenStack Havana版本的构架由9个服务组成,分别是Dashboard、Compute、Networking、Object Storage、Block Storage、Identity、Image Registry and Delivery Service、Telemetry和Orchestration。
各服务的描述及对应的项目名称如下表所示:
2 OpenStack概念构架
下图显示了OpenStack服务与服务、服务与虚拟机之间的关系:
真正服务于VM的服务只有Nova、Glance、Neutron、Cinder:
- Nova调派资源实例化虚拟机
- Glance提供虚拟机实例化时需要的镜像
- Neutron提供网络连接
- Cinder提供外接的块存储服务
Ceilometer从上面与虚拟机相关的几个服务中收集数据,用于统计、监控、计费、报警等
Swift可以为Glance提供镜像的存储服务,可以为Cinder提供卷的备份服务
Keystone为所有服务提供认证、授权等服务
Horizon为所有服务提供基于Web的操作接口
通过Heat可以方便地将各组件组织起来
3 OpenStack逻辑构架
云管理员必须了解OpenStack的逻辑构架才能设计、安装和配置云平台。下图给出了OpenStack最常见的一种逻辑构架,但不是唯一的。Ceilometer和Heat与服务逻辑无关,所以未在图中显示。
终端用户可以通过Dashboard、CLIs和APIs进行交互,所有的服务通过一个共同的认证服务进行身份验证,除了特殊的管理员命令外,每个单独的服务通过公共API进行交互。
Nova
计算服务是OpenStack的核心服务,它由nova-compute模块通过libvirt、XenAPI等管理hypervisor,从而管理虚拟机,此外它还通过nova-api服务向外提供如EC2兼容、管控功能等的接口,通过nova-scheduler模块提供虚拟机调研逻辑等,这些模块间的通信全部通过消息队列完成。
Swift
对象存储服务是OpenStack最早期的两个服务之一(另一个是计算服务),在OpenStack平台中,任何的数据都是一个对象,swift-proxy模块对外提供如HTTP(S)、OpenStack Object API及与S3兼容的存取接口。对象的存取经swift-proxy接入后,还需要经三个模块进行定位,即account、container、object,这是因为在OpenStack中一个对象被描述为:某个帐户下某个容器中的某个对象。
Glance
Glance的出现是解决虚拟机镜像的管理问题,在生成一个镜像后,需要将镜像注册到系统的数据库中。当要实例化一个虚拟机时,需要将镜像分派到一台具体的实机上用来以启动虚拟机。因而Glance最重要的接口是镜像的注册和分派。
Cinder
Essex将nova的卷管理api独立化后,Folsom终于将卷管理服务抽离成了Cinder,Cinder管理所有的块存储设备,块设备可以挂接在虚拟机的实例中,然后虚拟机里的guest系统可以像操作本地卷一样操作块存储设备。Cinder需要处理的主要问题应该是接入各种块设备,如本地磁盘、LVM或各大广商提供的设备如EMC、NetApp、HP、华为,还有如Vmware提供的虚拟块设备等。
Neutron
经过一定时间的演变,网络管理也抽离成一个独立的服务。在OpenStack的网络管理流程中,通常需要经过以下几个步骤:创建一个网络;创建一个子网;启动一个虚拟机,将一块网卡对接到指定的网络上;删除虚拟机;删除网络端口;删除网络。
Keystone
身份服务需要进行认证凭证的验证及关于用户、角色等的信息,及所有相关的元数据,这些数据全都由Keystone服务管理,并提供CRUD的操作方法,另外这些信息可以从另一个认证服务中获取,例如使用LDAP做Keystone的后端。
4 OpenStack构架示例
OpenStack是高度可配置的,可以根据需要设置不同的计算、网络和存储选项,在本节只介绍其中一种构架示例,后期将按照该构架部署OpenStack。
OpenStack Networking (Neutron)基础构架图:
- Controller节点安装服务:Identity、Image、Dashbord以及Compute和Networking的管理部分。该节点还包含相关的API服务、MySQL数据库和消息传递系统。
- Network节点安装服务:Networking插件代理和3层代理。该节点给租户提供网络以及路由、NAT和DHCP服务,同时还为租户虚拟机提供外部连接(互联网)服务。
- Compute节点安装服务:Compute的hypervisor部分。该节点运营租户的虚拟机,默认情况下使用KVM作为hypervisor。Compute节点还负责Networking插件代理部分,为租户提供网络并实现安全组。您可以运行多个Compute节点。
注:您还可以为该构架添加Block Storage或者Object Storage服务。
以上是对OpenStack Havana版本整体构架的简单介绍,如有不合理之处,欢迎纠正!