前言
本系列文档按照openstack官方queens版本安装文档进行讲解,目的是通过搭建一个测试环境的openstack对其有更深入的了解。
一、openstack概念
openstack可以理解为一个云操作系统,他是将底层的物理资源抽象成一个资源池,而其上运行着每一个虚拟机(也成为实例)不需要关心自己具体在哪一个物理主机上,openstack根据其类型可以分为IaaS、PaaS、SaaS,下图是openstack的3种类型与传统架构的比较用图:
在传统架构中企业上线一套应用,从底层的硬件、网络、存储到上层应用都需要自己维护。IaaS是为客户节省了物理主机以下的成本,直接为客户提供了一个安装好的操作系统,可以在其上安装自己的应用。PaaS则更进一步的为用户提供了应用程序所需要的环境,客户只需要在其上部署应用系统。SaaS是所有的环节都由供应商提供,客户只需要有一个可以访问互联网的接口就能使用,比如office365。
二、openstack的组成
openstack是有apache软件基金会支持的开源项目,由核心组件和可选组件组成,openstack架构如下图:
其中红色框中的为核心组件,其功能为:
- Keystone:提供所有组件的认证及编目,按照openstack的通信流程,所有组件之间是通过消息队列异步通信,每一个组建都需要先与Keystone通信的原因就是除了认证之外还需要在Keystone处查询其他组建的API接口。
- Glance:为实例提供映像文件,映像文件可以存放在本地磁盘上,也可以是类似于swift的对象存储上,此处需要说明的是,每一个实例在启动时是先将映像文件下载到该实例所在节点的本地磁盘后才进行启动,当实例结束时,映像下载到本地磁盘的映像文件也随之销毁。
- Nova:计算节点,为没一个实例提供具体的资源。
- Neutron:提供网络功能,openstack最复杂的组建当属网络组件,后续中会有详细介绍。
以上是openstack的4个核心组件,用的比较多的2个可选组件为:
1.Cinder:通过上面知道当实例关闭时通过Glance下载到本地磁盘的映像文件会随着一并销毁,Cinder就是提供存放持久数据的组建。
2.Horizon:提供一个控制面板,便于管理。
另外除了上述openstack组件外,openstack的实现还需要借助于额外的组件,例如RabbitMQ,MariaDB等,逻辑结构如下图所示:
三、opsenstack间的通信
组件之间通过API相互通信,组建内部则是通过RPC(远程调用)通信,以启动一个实例进行说明,其通信的步骤为:
- 用户发起认证请求;
- Keystone认证后根据用户的角色返回令牌;
- 用户拿着令牌向Nova节点发起请求;
- Nova节点验证令牌后向Glance节点发起下载映像文件请求;
- Glance节点验证后将映像文件发送至Nova节点本地磁盘;
- Nova节点启动映像文件后在向Neutron节点发起网络连接请求;
- Neutron节点验证后为实例创建虚拟网络设备,并将结果反馈给Nova节点,需要注意的是,当实例结束后,创建的虚拟网络设备也会跟着销毁;
- Nova节点给用户反馈实力启动完成。
有上述过程可以看到,每一个组件都会先于Keystone进行通信,从而进行认证和获取其他相关组件的API。
四、实验说明
本次实验按照官方手册说明进行,采用2节点方式,后期会引入第3个节点用于安装Cinder组件,节点配置要求如下:
此实验架构与标准最小化的openstack生产架构区别在于:
- 网络代理安装在控制节点上,生产环境中Neutron节点应该由1个或多个物理机组成。
- 在self-service网络模式下,流量走的是管理网络,升级生产环境中,所有实例的流量都会经过Neutron节点,所以该节点的性能和带宽要足够大。
五、实验拓扑
原文地址:http://blog.51cto.com/arkling/2133779