第一章:架构

Overview

OpenStack是一个可以支持多种类型云计算环境的开源云平台项目,旨在建立实施简单、高扩展性且功能丰富的云平台产品。目前已有众多云计算专家加入到此开源项目中。
OpenStack通过多种服务,提供一个完整的IaaS层的解决方案。每种服务都提供开放API以便集成。以下提供OpenStack的几个服务:

Dashboard:

项目名称:Horizon
项目描述:提供基于web的UI界面,提供给用户对OpenStack进行操作。该服务与OpenStack的其他各项服务进行交互,实现例如创建虚拟机,分配IP或者配置访问权限等功能。

Compute:

项目名称:Nova
项目描述:提供OpenStack环境中的虚拟机生命周期管理,包括创建、调度、停止等操作。

Networking:

项目名称:Neutron
项目描述:为OpenStack的其他服务(例如Nova)提供网络服务。对用户提供API来定义网络和接入方式。Neutron是一个插件式的架构,可以支持多种网络提供商和网络技术。

Object Storage:

项目名称:Swift
项目描述:通过RESTful API提供任意无结构数据对象的读写。通过数据复制和架构的扩展提供高容错性。它的实现和可以直接挂载为目录的文件服务不同。

Block Stroage:

项目名称:Cinder
项目描述:给正在运行的虚拟机提供持久化的块存储。插件式的driver使其可以促进其对块存储设备的创建及管理。

Identity service:

项目名称:Keystone
项目描述:为OpenStack的其他服务提供授权及其相关服务。为所有OpenStack服务记录访问入口。

Image Service:

项目名称:Glance
项目描述:提供虚拟机磁盘镜像存储。Nova会在创建虚拟机的时候使用Glance服务。

Telemetry:

项目名称:Ceilometer
项目描述:为计费、标记、弹性计算和统计服务提供监控和计量OpenStack数据。

Ochestration:

项目名称:Heat
项目描述:通过OpenStack-native REST API或AWS CloudFormation-compatible Query API,使用本地HOT 模板或AWS CloudFormation模板来编排复合型的云应用。

Database Service:

项目名称:Trove
项目描述:为关系型和非关系型数据库引擎提供安全可扩展的云数据库服务。
本指南讲述了如何在测试环境中部署以上服务,并且会说明如何部署一个生产环境。

逻辑架构

启动一个虚拟机需要调用许多交互服务。下图提供了一个典型的OpenStack环境架构:
openstack_havana_conceptual_arch (1)

架构示例

OpenStack是一个高可配的系统,通过选择不同的计算服务、网络和存储来适应不同的需求。
本指南使用如下架构:

使用neutron的3节点架构:

Controller Node(控制节点):运行Keystone,Glance,Compute和Networking 的管理模块,Networking插件和dashboard,包括其他服务例如Database,Message broker,NTP。
Network Node(网络节点):运行Networking 插件,2层agent和一些3层agent用来提供和操作租户网络。2层服务包括虚拟网络和隧道;3层服务包括路由,NAT和DHCP。该节点也处理来自虚拟机内部和外部的网络连接。
Compute Node(计算节点):Hypervisor部分(操作租户、虚拟机)。默认使用KVM作为hyperviser。计算节点也可以提供资源、操作租户网络和实现安全组。可以添加多个计算节点。
Compute node也可以自由安装计量服务的agent。该组件提供更多的其他功能。
installguide_arch-neutron

使用nova-network的2节点架构:

Controller Node(控制节点):运行Keystone,Glance,Compute和Networking 的管理模块,dashboard,包括其他服务例如Database,Message broker,NTP。
Compute Node(计算节点):Hypervisor部分(操作租户、虚拟机)。默认使用KVM作为hyperviser。计算节点也可以提供资源、操作租户网络和实现安全组。可以添加多个计算节点。
Compute node也可以自由安装计量服务的agent。该组件提供更多的其他功能。
installguide_arch-nova