深入浅出学习 OpenStack
Reference:OpenStack 可以算的上是云计算行业中的明星人物。但是,您真了解它吗?比如它能做什么?它的功能和架构?它由什么语言来开发的?谁在用它?类似问题的答案就在这里! 如果您已经不是一个 OpenStack 的入门级选手了,那么开始动手搭建一个自己的 OpenStack 实验环境吧!难度有点高?其实很简单,这里有简单的操作步骤,跟着学就可以了,Follo
Reference:
OpenStack 可以算的上是云计算行业中的明星人物。但是,您真了解它吗?比如它能做什么?它的功能和架构?它由什么语言来开发的?谁在用它?类似问题的答案就在这里!
如果您已经不是一个 OpenStack 的入门级选手了,那么开始动手搭建一个自己的 OpenStack 实验环境吧!难度有点高?其实很简单,这里有简单的操作步骤,跟着学就可以了,Follow me!
在熟悉 OpenStack 的过程中,您会逐渐发现它是由许多的项目来组成的,每一个项目好像都很复杂,学习难度陡增。别慌,OpenStack 的项目其实是由几个主要的项目来组成的,包括:身份认证、计算、存储和网络。其中存储项目有些复杂,它又分为了块存储、镜像存储和对象存储等。当您对它重要项目的功能以及架构有所了解以后,您就会十分清楚地理解 OpenStack 的整体运行模式以及后续如何更好地对其进行调整和优化来服务于您的系统了。
-
身份认证 - Keystone:集中化管理 OpenStack 的所有身份认证工作,如果您希望使用任何 OpenStack 的服务,例如计算服务,都需要先和它进行交互,获得对应的身份令牌以后才能继续操作。
-
计算- Nova:Nova 是 OpenStack 的核心,所有的计算实例都是由它来进行管理和分配的。当然它还需要配合其他服务来运行,例如镜像服务-Glance。
-
存储服务:前面也说了,OpenStack 的存储分为三个方面。对象存储 - Swift,它可以实现类似网盘的服务,适合存储大量的文件形式的对象,比如:文档、图形、音视频文件。块存储 - Cinder,它提供类似硬盘的服务,虚拟机实例可以挂载这些存储来存储信息。镜像存储 - Glance,它提供了运行虚拟机实例镜像的存储服务,例如您有一个 Redhat Linux 的虚拟机镜像希望能够在 OpenStack 上运行,这个镜像就要事先存储到 Glance 中。
相信您学习 OpenStack 的最终目的是希望能够实际应用到自己管理的环境中,那么看看58 同城和网易公司在实践 OpenStack 过程中的经验和成果分享吧!
OpenStack 项目还在不断地发展和进化以适应最新的需求,我们会不断地为您总结最有价值的相关资源和案例让您可以更好地了解并使用它。欢迎您持续关注 developerWorks 中国网站发布的最新资源!
历史
从历史角度了解它的演变过程,这样做最容易理解 OpenStack 项目。
OpenStack 是由 Rackspace Cloud 和 NASA 在 2010 年发起的,集成了 NASA 的 Nebula 平台的代码与 Rackspace 的 Cloud Files 平台。第一个核心模块被称为 Compute and Object Storage(计算和对象存储),但更常见的是它们的项目名称,即 Nova 和 Swift。
OpenStack 最令人兴奋的事情之一是,它继续大幅、快速地成长,经常每年更新两个或两个以上的版本。因此,有关该技术的许多公开信息都是过时的,而且了解所有文件中所指的是哪个版本非常重要。
OpenStack 使用了 YYYY.N
表示法,基于发布的年份以及当时发布的主版本来指定其发布。例如,2011 (Bexar) 的第一次发布的版本号为 2011.1,而下一次发布(Cactus)则被标志为 2011.2。次要版本进一步扩展了点表示法(例如,2011.3.1)。
开发人员经常根据代号来指定发行版本,发行版是按字母顺序排列的(参见 表 1)。Austin 是第一个主发行版,其次是 Bexar、Cactus 和 Diablo。这些代号是通过 OpenStack 设计峰会上的民众投票选出的,一般使用峰会地点附近的地理实体名称。
表 1. OpenStack 发布
版本名称 | 版本编号 | 日期 |
---|---|---|
Austin | 2010.1 | 2010-10-21 |
Bexar | 2011.1 | 2011-02-03 |
Cactus | 2011.2 | 2011-04-15 |
Diablo | 2011.3 | 2011-09-22 |
2011.3.1 | 2012-01-19 | |
Essex | 2012.1 | 2012-04-05 |
2012.1.1 | 2012-06-22 | |
2012.1.2 | 2012-08-10 | |
2012.1.3 | 2012-10-12 | |
Folsom | 2012.2 | 2012-09-27 |
2012.2.1 | 2012-11-29 | |
2012.2.2 | 2012-12-13 | |
2012.2.3 | 2013-01-31 | |
2012.2.4 | 2013-04-11 | |
Grizzly | 2013.1 | 2013-04-04 |
2013.1.1 | 2013-05-09 | |
2013.1.2 | 2013-06-06 | |
2013.1.3 | 2013-08-08 | |
Havana | 2013-10-17 |
每一个版本都纳入了新的功能,添加了文档,并以增量的方式提高部署的简易性,但路线图也增加了组成该计划的项目的数量。
如上所述,Austin 版本仅包括两个核心项目:OpenStack Compute (Nova) 和 OpenStack Object Storage (Swift)。Bexar 在此基础上补充了 Image Service (Glance),它在许多方面与计算和存储有交集。镜像代表存储在 OpenStack 上的模板虚拟机,用于按需快速启动计算实例。
Essex 发布增加了两个核心项目。OpenStack Identity (Keystone) 隔离之前由 Nova 处理的用户管理元素,而 OpenStack Dashboard (Horizon) 的引入则标准化和简化了用户界面(UI),使之同时适用于每个租户和 OpenStack 管理人员。
Folsom 使得版本数量又增加了两个。该团队决定将网络组件(以前包含在 Nova 中)拆分到一个单独的项目中,最初称其为 Quantum,后来将其改名为 Neutron。与此同时,一个单独的团队开发了一个 OpenStack Block Storage 组件,其品牌是 Cinder。
模块
截至 Grizzly 版本,OpenStack 含七个核心项目:
- Compute (Nova)
- Networking (Neutron/Quantum)
- Identity Management (Keystone)
- Object Storage (Swift)
- Block Storage (Cinder)
- Image Service (Glance)
- User Interface Dashboard (Horizon)
OpenStack Compute (Nova)
OpenStack Compute (Nova) 控制云计算架构(基础架构服务的核心组件)。它是用 Python 编写的,创建一个抽象层,让 CPU、内存、网络适配器和硬盘驱动器等商品服务器资源实现虚拟化,并具有提高利用率和自动化的功能。
它的实时 VM 管理具有启动、调整大小、挂起、停止和重新引导的功能,这是通过集成一组受支持的虚拟机管理程序来实现的。还有一个机制可以在计算节点上缓存 VM 镜像,以实现更快的配置。在运行镜像时,可以通过应用程序编程接口(API)以编程方式存储和管理文件。
OpenStack Networking (Neutron/Quantum)
Networking (Neutron) 之前被称为 Quantum,它提供了管理局域网的能力,具有适用于虚拟局域网(VLAN)、动态主机配置协议和 Internet Protocol 版本 6 的一些功能。用户可以定义网络、子网和路由器,以配置其内部拓扑,然后向这些网络分配 IP 地址和 VLAN。浮动 IP 地址允许用户向 VM 分配(和再分配)固定的外部 IP 地址。
OpenStack Identity Management (Keystone)
OpenStack Identity Management (Keystone) 管理用户目录以及用户可以访问的 OpenStack 服务的目录。其目的是跨所有 OpenStack 组件暴露一个中央身份验证机制。Keystone 本身没有提供身份验证,它可以集成其他各种目录服务,如 Pluggable Authentication Module、Lightweight Directory Access Protocol (LDAP) 或 OAuth。通过这些插件,它能够实现多种形式的身份验证,包括简单的用户名密码凭据,以及复杂的多因子系统。
OpenStack Identity 使得管理员配置的集中式策略能够跨用户和系统得到应用。他们可以创建项目和用户并将其分配给管理域,定义基于角色的资源权限,并与其他目录(如 LDAP)集成。目录包含由单一注册表中所有已部署服务组成的一个列表。用户和工具可以检索一个服务列表,它们能够以编程方式发出请求或通过登录到仪表板来访问这些服务,它们还可以用这些服务来创建资源,并将这些资源分配给它们的帐户。
OpenStack Object Storage (Swift)
OpenStack Object Storage (Swift) 以 Rackspace Cloud Files 产品为基础,对于向外扩展的存储来说,它是理想的冗余存储系统。OpenStack 确保了在其池中的所有设备上的数据复制和分发,让用户可以利用商用硬盘和服务器,而不是更昂贵的设备。如果某个组件发生故障,那么 OpenStack 可以将来自其他活动系统的内容补充给新的集群成员。该架构还支持横向扩展,因为它很容易根据需要利用其他服务器来扩展存储集群。
Swift 是一个分布式存储系统,主要用于静态数据,比如 VM 镜像、备份和存档。该软件将文件和其他对象写入可能分布在一个或多个数据中心内的多个服务器上的一组磁盘驱动器,在整个集群内确保数据复制和完整性。
OpenStack Block Storage (Cinder)
OpenStack Block Storage (Cinder) 管理计算实例所使用的块级存储。块存储非常适用于有严格性能约束的场景,比如数据库和文件系统。
与 Cinder 配合使用的最常见存储是 Linux 服务器存储,但也有一些面向其他平台的插件,其中包括 Ceph、NetApp、Nexenta 和 SolidFire。云用户可通过仪表板管理他们的存储需求。该系统提供了用于创建块设备、附加块设备到服务器和从服务器分离块设备的接口。另外,也可以通过使用快照功能来备份 Cinder 卷。
OpenStack Image Service (Glance)
OpenStack Image Service (Glance) 为 VM 镜像(尤其是为启动 VM 实例中所使用的系统磁盘)提供了支持。除了发现、注册和激活服务之外,它还有快照和备份功能。
Glance 镜像可以充当模板,快速并且一致地部署新的服务器。API 服务器暴露了 Representational State Transfer(REST,具象状态传输)接口,用户可以利用它来列出并获取分配给一组可扩展后端存储(包括 OpenStack Object Storage)的虚拟磁盘镜像。
用户可采用多种格式为服务提供私有和公共镜像,这些格式包括 VHD(Microsoft(® Hyper-V®)、VDI(VirtualBox)、VMDK(VMware)、qcow2(Qemu/基于内核的虚拟机),以及 Open Virtualization Format。其他一些功能包括注册新的虚拟磁盘镜像、查询已公开可用的磁盘镜像的信息,以及流式传输虚拟磁盘镜像等。
依赖关系
典型的 OpenStack 实现将会集成大多数(如果不是所有)项目。
图 1. OpenStack 架构
三个元素将会与系统中的所有组件进行交互。Horizon 是图形用户界面,管理员可以很容易地使用它来管理所有项目。Keystone 处理授权用户的管理,Neutron 定义提供组件之间连接的网络。
Nova 被认为是 OpenStack 的核心,负责处理工作负载的流程。它的计算实例通常需要进行某种形式的持久存储,它可以是基于块的(Cinder)或基于对象的(Swift)。Nova 还需要一个镜像来启动一个实例。Glance 将会处理这个请求,它可以有选择地使用 Swift 作为其存储后端。
OpenStack 架构一直努力使每个项目尽可能的独立,这使得用户可以选择只部署一个功能子集,并将它与提供类似或互补功能的其他系统和技术相集成。然而,这种独立性不应掩盖这样一个事实:全功能的私有云很可能需要使用几乎所有功能才可以正常运作,而且各元素需要被紧密地集成。
路线图
在理解 OpenStack 时,需要牢记该系统仍在发展中,这一点很重要。用户有可能以 OpenStack 目前的形式来实现它,但还有大量其他项目也将启动。例如,Havana 发布了包含两个许多人期待已久的一个新项目:OpenStack Metering (Ceilometer) 和 OpenStack Orchestration (Heat)。
Ceilometer 是一种集中收集计量和监测数据的机制。它为各计费系统提供单一联系点,以获得整套 OpenStack 组件的使用信息。它支持一组可扩展的计数器,它们都是可追溯和可审计的。
Heat 是面向 OpenStack 的基于模板的协调引擎。它允许开发人员定义应用程序的部署模式,通过 RESTful API 协调复合云应用程序。该模板可以适应大多数 OpenStack 资源类型(例如,Nova 实例和浮动 IP 地址范围、Cinder 卷、Keystone 用户)。该模板还有一些高级功能,包括高可用性、自动扩展和嵌套栈。
更多推荐
所有评论(0)