终于正式进入 OpenStack 部分了。 今天开始,CloudMan 将带着你们一步一步揭开 OpenStack 的神秘面纱。 web
OpenStack 已经走过了 6 个年头。 每半年会发布一个版本,版本以字母顺序命名。如今已经到第 12 个版本 Liberty(字母 L)。 OpenStack最初只有两个模块(服务),如今已经有 20+(见下图),每一个模块做为独立的子项目开发。 数据库
面对如此庞大的阵容,做为初学者咱们如何起步呢? 这也是 CloudMan 写这个系列教程的初衷: 经过实际操做帮助初学者由浅入深地学习和实践 OpenStack,并最终具有实施 OpenStack 的能力。 网络
咱们会把学习的重点放在 OpenStack 最核心的地方。 那什么是核心呢?请看下图 架构
做为 IaaS 层的云操做系统,OpenStack 为虚拟机提供并管理三大类资源:计算、网络和存储。
分布式
这三个就是核心,因此咱们的学习重点就是: 搞清楚 OpenStack 是如何对计算、网络和存储资源进行管理的。 在 20+ 模块中,管理这三类资源的核心模块其实很少,这几个模块就是咱们的重点了。 ide
要达到这个目的,咱们天然须要研究 OpenStack 的总体架构。 架构里哪些核心模块负责管理计算资源、网络资源和存储资源?模块之间如何协调工做? 同时咱们会构建一个实验环境,进到各个模块的内部,经过实际操做真正理解和掌握 OpenStack。 学习
好,下面咱们就从架构开始吧。 spa
架构是个好东西,它能帮助咱们站在高处看清楚事物的总体结构,避免过早地进入细节而迷失方向。
操作系统
下图是 OpenStack 的 Conceptual Architecture 3d
中间菱形是虚拟机,围绕 VM 的那些长方形表明 OpenStack 不一样的模块(OpenStack 叫服务,后面都用服务这个术语),下面来分别介绍。
Nova:管理 VM 的生命周期,是 OpenStack 中最核心的服务。
Neutron:为 OpenStack 提供网络链接服务,负责建立和管理L二、L3 网络,为 VM 提供虚拟网络和物理网络链接。
Glance:管理 VM 的启动镜像,Nova 建立 VM 时将使用 Glance 提供的镜像。
Cinder:为 VM 提供块存储服务。Cinder 提供的每个 Volume 在 VM 看来就是一块虚拟硬盘,通常用做数据盘。
Swift:提供对象存储服务。VM 能够经过 RESTful API 存放对象数据。做为可选的方案,Glance 能够将镜像存放在 Swift 中;Cinder 也能够将 Volume 备份到 Swift 中。
Keystone:为 OpenStack 的各类服务提供认证和权限管理服务。简单的说,OpenStack 上的每个操做都必须经过 Keystone 的审核。
Ceilometer:提供 OpenStac k监控和计量服务,为报警、统计或计费提供数据。
Horizon:为 OpenStack 用户提供一个 Web 的自服务 Portal。
在上面的这些服务中,哪些是 OpenStack 的核心服务呢? 核心服务就是若是没有它,OpenStack 就跑不起来。 很显然
Nova 管理计算资源,是核心服务。
Neutron 管理网络资源,是核心服务。
Glance 为 VM 提供 OS 镜像,属于存储范畴,是核心服务。
Cinder 提供块存储,VM怎么也得须要数据盘吧,是核心服务。
Swift 提供对象存储,不是必须的,是可选服务。
Keystone 认证服务,没它 OpenStack 转不起来,是核心服务。
Ceilometer 监控服务,不是必须的,可选服务。
Horizon 你们都须要一个操做界面吧。
如今核心服务有了,接下来咱们将镜头拉近点,看看核心服务内部的组成结构。 Logical Architecture
在 Logical Architecture 中,能够看到每一个服务又由若干组件组成。 以 Neutron 为例,包含
Neutron Server、Neutron plugins 和 Neutron agents
Network provider
消息队列 Queue
数据库 Neutron Database
在后面 Neutron 章节咱们会展开学习这些组件。
这里想要强调一点: 上面是 Logical Architecture,描述的是 Neutron 服务各个组成部分以及各组件之间的逻辑关系。 而在实际的部署方案上,各个组件能够部署到不一样的物理节点上。
OpenStack 自己是一个分布式系统,不但各个服务能够分布部署,服务中的组件也能够分布部署。 这种分布式特性让 OpenStack 具有极大的灵活性、伸缩性和高可用性。 固然从另外一个角度讲,这也使得 OpenStack 比通常系统复杂,学习难度也更大。
后面章节咱们会深刻学习 Keystone、Glance、Nova、Neutron 和 Cinder 这几个 OpenStack 最重要最核心的服务。