OpenStack云计算快速入门(1)

OpenStack云计算快速入门(1)html


    

    该教程基于Ubuntu12.04版,它将帮助读者创建起一份OpenStack最小化安装。我是五岳之巅,翻译中多采用意译法,因此个别词与原版有出入,请你们谅解。我不是英语专业,我觉着搞技术最重要的就是理解,而不是四级和考研中那烦人的英译汉,因此个人目标是忠于原意、通俗表达,Over。英文原文在这里(http://docs.openstack.org/es@***/openstack-compute/starter/content/ ,请将ex@***中的@去掉,CU屏蔽的F词,下面步入正题:web



第一部分 OpenStack及其构成简介



1、云计算


    云计算是一种计算模型,它将诸如运算能力、存储、网络和软件等资源抽象成为服务,以便让用户经过互联网远程享用,付费的形式也如同传统公共服务设施同样。因需而定、提供方便、动态改变和无限的虚拟化扩展能力是云计算的几个重要特征。算法

不一样的“云”对应着不一样的基础设施。下面是三种广义的“云”:api

基础设施即服务(IaaS安全

平台即服务(PaaS服务器

软件即服务(SaaS网络


译者注:Open为开放之意,Stack则是堆砌,OpenStack合起来如其名,就是许多Open的Softwares堆积的集合,但1 + 1 > 2,系统的功能更为强大。架构


2、OpenStack


(一)OpenStack概要


OpenStack是一整套开源软件项目的综合,它容许企业或服务提供者创建、运行本身的云计算和存储设施。RackspaceNASA是最初重要的两个贡献者,前者提供了“云文件”平台代码,该平台加强了OpenStack对象存储部分的功能,然后者带来了“Nebula”平台造成了OpenStack其他的部分。而今,OpenStack基金会已经有150多个会员,包括不少知名公司如“CanonicalDELLCitrix”等。负载均衡

如下是5OpenStack的重要构成部分:异步

Nova - 计算服务

Swift - 存储服务

Glance - 镜像服务

Keystone - 认证服务

Horizon - UI服务

22414998_1341451566HFQA.png

1 OpenStack基本构架


下图展现了KeystoneDashboard两者与其它OpenStack部分的交互。

22414998_134145158058qB.png



(二)OpenStack计算设施----Nova


NovaOpenStack计算的弹性控制器。OpenStack云实例生命期所需的各类动做都将由Nova进行处理和支撑,这就意味着Nova以管理平台的身份登场,负责管理整个云的计算资源、网络、受权及测度。虽然Nova自己并不提供任何虚拟能力,可是它将使用libvirt API与虚拟机的宿主机进行交互。Nova经过Web服务API来对外提供处理接口,并且这些接口与AmazonWeb服务接口是兼容的。


功能及特色

实例生命周期管理

计算资源管理

网络与受权管理

基于RESTAPI

异步连续通讯

支持各类宿主:XenXenServer/XCPKVMUMLVMware vSphereHyper-V


OpenStack计算部件

Nova弹性云包含如下主要部分:

API Servernova-api

消息队列(rabbit-mq server

运算工做站(nova-compute

网络控制器(nova-network

卷管理(nova-volume

调度器(nova-scheduler



API服务器(nova-api

API服务器提供了云设施与外界交互的接口,它是外界用户对云实施管理的惟一通道。经过使用web服务来调用各类EC2API,接着API服务器便经过消息队列把请求送达至云内目标设施进行处理。做为对EC2-api的替代,用户也可使用OpenStack的原生API,咱们把它叫作“OpenStack API”。


消息队列(Rabbit MQ Server

OpenStack内部在遵循AMQP(高级消息队列协议)的基础上采用消息队列进行通讯。Nova对请求应答进行异步调用,当请求接收后便则当即触发一个回调。因为使用了异步通讯,不会有用户的动做被长置于等待状态。例如,启动一个实例或上传一份镜像的过程较为耗时API调用就将等待返回结果而不影响其它操做,在此异步通讯起到了很大做用,使整个系统变得更加高效。


运算工做站(nova-compute

    运算工做站的主要任务是管理实例的整个生命周期。他们经过消息队列接收请求并执行,从而对实例进行各类操做。在典型实际生产环境下,会架设许多运算工做站,根据调度算法,一个实例能够在可用的任意一台运算工做站上部署。



网络控制器(nova-network

网络控制器处理主机的网络配置,例如IP地址分配,配置项目VLAN,设定安全群组以及为计算节点配置网络。


卷工做站(nova-volume

卷工做站管理基于LVM的实例卷,它可以为一个实例建立、删除、附加卷,也能够从一个实例中分离卷。卷管理为什么如此重要?由于它提供了一种保持实例持续存储的手段,好比当结束一个实例后,根分区若是是非持续化的,那么对其的任何改变都将丢失。但是,若是从一个实例中将卷分离出来,或者为这个实例附加上卷的话,即便实例被关闭,数据仍然保存其中。这些数据能够经过将卷附加到原实例或其余实例的方式而从新访问。

所以,为了往后访问,重要数据务必要写入卷中。这种应用对于数据服务器实例的存储而言,尤其重要。



调度器(nova-scheduler

调度器负责把nova-API调用送达给目标。调度器以名为“nova-schedule”的守护进程方式运行,并根据调度算法从可用资源池中恰当地选择运算服务器。有不少因素均可以影响调度结果,好比负载、内存、子节点的远近、CPU架构等等。强大的是nova调度器采用的是可插入式架构。

目前nova调度器使用了几种基本的调度算法:

随机化:主机随机选择可用节点;

可用化:与随机类似,只是随机选择的范围被指定;

简单化:应用这种方式,主机选择负载最小者来运行实例。负载数据能够从别处得到,如负载均衡服务器。



(三)OpenStack镜像服务器----Glance

OpenStack镜像服务器是一套虚拟机镜像发现、注册、检索系统,咱们能够将镜像存储到如下任意一种存储中:

本地文件系统(默认)

OpenStack对象存储

S3直接存储

S3对象存储(做为S3访问的中间渠道)

HTTP(只读)


功能及特色

提供镜像相关服务


Glance构件

Glance控制器

Glance注册器



(四)OpenStack存储设施----Swift


SwiftOpenStack提供一种分布式、持续虚拟对象存储,它相似于Amazon Web ServiceS3简单存储服务。Swift具备跨节点百级对象的存储能力。Swift内建冗余和失效备援管理,也可以处理归档和媒体流,特别是对大数据(千兆字节)和大容量(多对象数量)的测度很是高效。


功能及特色

海量对象存储

大文件(对象)存储

数据冗余管理

归档能力-----处理大数据集

为虚拟机和云应用提供数据容器

处理流媒体

对象安全存储

备份与归档

良好的可伸缩性


Swift组件

Swift帐户

Swift容器

Swift对象

Swift代理

Swift RING

Swift代理服务器

用户都是经过Swift-API与代理服务器进行交互,代理服务器正是接收外界请求的门卫,它检测合法的实体位置并路由它们的请求。

此外,代理服务器也同时处理实体失效而转移时,故障切换的实体重复路由请求。


Swift对象服务器

对象服务器是一种二进制存储,它负责处理本地存储中的对象数据的存储、检索和删除。对象都是文件系统中存放的典型的二进制文件,具备扩展文件属性的元数据(xattr)。

注意:xattr格式被Linux中的ext3/4XFSBtrfsJFSReiserFS所支持,可是并无有效测试证实在XFSJFSReiserFSReiser4ZFS下也一样能运行良好。不过,XFS被认为是当前最好的选择。

Swift容器服务器

容器服务器将列出一个容器中的全部对象,默认对象列表将存储为SQLite文件(译者注:也能够修改成MySQL,安装中就是以MySQL为例)。容器服务器也会统计容器中包含的对象数量及容器的存储空间耗费。

Swift帐户服务器

帐户服务器与容器服务器相似,将列出容器中的对象。


Ring(索引环)

Ring容器记录着Swift中物理存储对象的位置信息,它是真实物理存储位置的实体名的虚拟映射,相似于查找及定位不一样集群的实体真实物理位置的索引服务。这里所谓的实体指帐户、容器、对象,它们都拥有属于本身的不一样的Rings

(五)OpenStack认证服务(Keystone


Keystone为全部的OpenStack组件提供认证和访问策略服务,它依赖自身REST(基于Identity API)系统进行工做,主要对(但不限于)SwiftGlanceNova等进行认证与受权。事实上,受权经过对动做消息来源者请求的合法性进行鉴定。以下图所示:

22414998_1341479467M2KU.png

Keystone采用两种受权方式,一种基于用户名/密码,另外一种基于令牌(Token)。除此以外,Keystone提供如下三种服务:

l 令牌服务:含有受权用户的受权信息

目录服务:含有用户合法操做的可用服务列表

策略服务:利用Keystone具体指定用户或群组某些访问权限

认证服务组件

服务入口:如NovaSwiftGlance同样每一个OpenStack服务都拥有一个指定的端口和专属的URL,咱们称其为入口(endpoints)。


区位:在某个数据中心,一个区位具体指定了一处物理位置。在典型的云架构中,若是不是全部的服务都访问分布式数据中心或服务器的话,则也称其为区位。


用户:Keystone受权使用者

译者注:表明一个个体,OpenStack以用户的形式来受权服务给它们。用户拥有证书(credentials),且可能分配给一个或多个租户。通过验证后,会为每一个单独的租户提供一个特定的令牌。[来源:http://blog.sina.com.cn/s/blog_70064f190100undy.html ]


服务:整体而言,任何经过Keystone进行链接或管理的组件都被称为服务。举个例子,咱们能够称GlanceKeystone的服务。


角色:为了维护安全限定,就云内特定用户可执行的操做而言,该用户关联的角色是很是重要的。

译者注:一个角色是应用于某个租户的使用权限集合,以容许某个指定用户访问或使用特定操做。角色是使用权限的逻辑分组,它使得通用的权限能够简单地分组并绑定到与某个指定租户相关的用户。 


l 租间:租间指的是具备所有服务入口并配有特定成员角色的一个项目。

译者注:一个租间映射到一个Nova的“project-id”,在对象存储中,一个租间能够有多个容器。根据不一样的安装方式,一个租间能够表明一个客户、账号、组织或项目。



(六)OpenStack管理的Web接口----Horizon


Horizon是一个用以管理、控制OpenStack服务的Web控制面板,它能够管理实例、镜像、建立密匙对,对实例添加卷、操做Swift容器等。除此以外,用户还能够在控制面板中使用终端(console)或VNC直接访问实例。总之,Horizon具备以下一些特色:

实例管理:建立、终止实例,查看终端日志,VNC链接,添加卷等

访问与安全管理:建立安全群组,管理密匙对,设置浮动IP

偏好设定:对虚拟硬件模板能够进行不一样偏好设定

镜像管理:编辑或删除镜像

查看服务目录

管理用户、配额及项目用途

用户管理:建立用户等

卷管理:建立卷和快照

对象存储处理:建立、删除容器和对象

为项目下载环境变量