openstack基础篇云管理员指南_第1页
openstack基础篇云管理员指南_第2页
openstack基础篇云管理员指南_第3页
openstack基础篇云管理员指南_第4页
openstack基础篇云管理员指南_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、OpenStack 入门之 OpenStack 云管理员指南OpenStack CloudAdministrator Guide 是一个面向云管理员册,主要作用是 manage and troubleshoot an OpenStack cloud。读它可以对各组件有一个整体上的把握。这里是第一章Get started with OpenStack 的穷人版翻译。服务简述OpenStack 的服务从下面这可以看得很清楚,包括了 Heat 和 Ceilometer。逻辑架构OpenStack 的模块是由守护进程(mon),(Script)以及命令行接口(CLI)组成。守护进程在 linux表现为

2、服务用于虚拟环境的安装及测试;CLI 允许用户通过易用令向OpenStack 的服务提交 API 请求。服务介绍Compute service(Nova)计算服务是云计算的结构控制器,它下:了系统的主要部分。它的如APIo nova-api service.接受和响应终端用户的计算 API 请求。支持,OpenStack Compute API, the Amazon EC2 API, 和一个特殊的AdminAPI 供用户实现管理的操作。同时, 初始化大部分orchestration 活动, 譬如启动一台虚拟机,实施某些策略。o nova-api-metadata service.从虚拟机接受

3、元数据请求。需要注意的是,通常情况下,此 API 仅在安装 nova-network 的 multi-host 模式下使 用。(在大便系统中,它属于 nova-api 包的一部分)Compute coreopute pros.一个通过hypervisor API 来创建和终止虚拟机实例的工作进程。譬如,XenServer/XCP 的 XenAPI, KVM or QEMU的 libvirt, VMware 的 VMwareAPI,等等。进程的执行相当复杂,但是基本原理却很简单:从消息队列中接受相应的动作(actions),然后在更新数据库中的状态的时候执行一系列的系统命令(比如启动一台 KVM

4、 实例)Accept actions from the queue and perform a series of mands, like launching a KVM instance, to carry them outwhile updating snova-schedulerehe database.从概念上来讲这是pute 中最简单的一o块代码了。从队列中获取一个虚拟机的请求然后决定它应该在哪个compute server host 中响应(run)。协调pute 和数据库的交互。目的nova-conductor在于减少opute 对云数据库的直接。由于该模块是水平的伸缩,因此不要

5、部署在任何pute 运行的节点上。Networking for VMso nova-network work类似于pute,它从队列中接受关于网络的任务(比如修改桥接的接口,或是修改 iptables 的规则)并执行,从而实现对网络的控制。这项功能正在被迁移到一个独立的服务 OpenStack Networking(Neutron),o nova-dhcpbridge script.通过dnsmasq 的dhcp-scriptIP 地址的租Neutron 中。约并把它们在数据库中。它同样正被迁移到Neutron 提供了一个不同的。Consoleerfacenova-consoleauth da

6、emon.认证控制台提供给用户的令牌。这个o服务必须运行在控制台 才能工作。Many proxies of either type can be run against a singlenovaconsoleauthservice in a cluster configurationnova-novncproxy daemon.通过 VNC 连接来提供一个运行的虚o拟机的。支持基于浏览器的novnc 客户端。nova-console daemon.在 G 版被弃用,由下面一个进程替代。oovncproxy daemon.通过 VNC 连接来运行状态的虚拟nova-x机的。支持一种专为OpenS

7、tack 设计的 Java 客户端。nova-cert daemon.管理 x509。oImage management(EC2Scenario)nova-objectstore daemon. 提供一个 S3(Simple Storage Service,o服务)接口供 Glance(镜像服务)来镜像。主要Amazon在支持 euca2ools 的情况下是使用。euca2ools 工具用 S3 的语法告知 nova-objectstore,然后 nova-objectstore 把 S3 请求转换为Glance请求。uca2ools cnt.一组用来管理云资源令。尽管它不是 OpenStac

8、ko的模块,仍然可以通过配置 nova-api 来支持这个EC2 的接口。d-line cnts and othererfanova cnt.允许用户以租户管理者或者终端用户的令。nova-manage cnt.允许云管理员来提交明亮。来提交命ooOther componentso The queue.在守护进程中传递消息的。通常是由 RabbitMQ 来实现的,但也可以是任何MQ。o SQL database.为云基础设施Q 的队列,如 Apache Q或者 Zero大部分构建时以及运行时的信息,包括可以使用的虚拟机类型,正在使用的虚拟机,可用的网络和项目。理论上来说,Nova 支持任何 S

9、QL 类型的数据库,但是目前仅有和tgreSQL 是广泛使用的,3 仅在测试和开发工作中表现正常。Storage conceptsObject Storage serviwift)Swift 是一个有高度伸缩以及可持续性的多租户对象RESTful HTTP API 为大量非结构化的数据以极低的开销来提供系统,它通过服务。它包括以下:Proxy servers(swift-proxy-server).接受Object Storage API和原生HTTP 请求,如上传文件,修改元数据和创建容器等。同时它也为 web 浏览器提供文件和容器列表(?)。为了性能服务器可以任选使用哪种 cache,不过

10、通常情况下都部署在memcache 下。Account servers(swift-account-server).管理定义了对象服务的账户。Container servers(swift-container-server).管理使用了 swift 的容器或者文件夹的。Object servers(swift-object-server).管理实际的对象,例如件。节点上的文A number of periodic proses.执行任务。主从同步服务(replicationservi)保证了集群中的持续性和可用性。其他一些周期性进程包括审计,更新,以及获取(auditors,updaters,

11、rers)。可配置的 WSGI 中间件负责认证,通常是由Keystone 负责。Block Storage Service(Cinder)块服务允许对卷(volumes),卷快照,卷类型的管理。它包括以下组件:cinder-api. 接受 API 请求并根据一定的策略把它们转发(routes) 到cinder-volume 来执行。cinder-volume.响应对块数据库的读写请求来状态(maain se),通过一个消息队列和其他进程(如 cinder-scheduler)进行交互,并直接基于块提供硬件或。它可以通过一个驱动架构来和大多数提供的服务交互。cinder-scheduler da

12、emon.像 nova-scheduler 一样,选取最合适的提供块存储的节点来创建卷。Messaging queue.在 cinder 的进程cinder 为 nova 提供虚拟机的卷。互(routes)信息。Networking service overview(Neutron)为设备接口提供网络连接即服务(network-connectivity-as-a-service),这类设备通常由 OpenStack 的服务Compute 所管理。它允许用户创建和添加网络接口。像 OpenStack 的其他服务一样,模块化可插拔的架构使得它可以高度的配置。这些插件整合了不同的网络设备和大的变化。

13、它包括了如下组件:,因此,它的架构和部署会发生很neutron-server.接受 API 请求并转发到合适的网络插件中去执行。 OpenStack Networking plug-ins and agents.绑定以及解绑端口,创建网络和子网,并提供 IP 地址。这些插件和(agent)通常在特定的云中依据代理商和使用的技术而定。目前 Neutron 支持(ships)的一些插件和有Cisco 的虚拟和物理交换机,Nicira 的 NVP 产品,NEC OpenFlow 产品,Open vSwitch, Linux bridging,和 Ryu 网络操作系统。通用的是L3(layer 3),

14、DHCP 和插件。Messaging queue. 大部分的 Neutron 安装版本都利用了消息队列在neutron-server 和各种件的网络状态。间传递消息,并利用一个数据库来特定插Dashboard(Horizon)dashboard 是一个模块化的Django web 应用,为 OpenStack 的服务提供图形化接口。它通常通过 mod_wsgi 部署在 Apache 下。你可以对代码进行修改使他适合不同的站点。从网络架构的观点来看,它必须可以被客户和 OpenStack 的其他服务通过公用 API。而想要使用其他服务的管理员功能,它必须可以连接到管理员API 端点(Admin

15、API endpos),因为这个端点是不能被客户直接的。Identity Service concepts(Keystone)Identity 服务进行如下操作:用户管理。用户及他们的权限。服务目录。提供可用的服务以及他们的 API 端点的目录。想要理解 Keystone,必须理解一下概念:User使用 OpenStack 云服务的人,系统或服务的数字表象(账号?)。Keystone 负责验证请求是否由所需要的用户发出。用户可以登录并被授予令牌来使用资源。用户可以直接被分配到某一租户下,就像是本身就是租户的一部分一样。Credentials仅能被某一用户识别的表示他们的数据,就像Keyston

16、e 中的用户名和,用户名和 API key,由 Keystone 提供的认证令牌等。Authentication验证一个用户证请求。的动作。Keystone 通过用户提供的一系列(credentials)来验这些由用户名或者用户名和API key 进行初始化。Keystone 响应这些证书请求,发给用户一个认证的令牌,用户在随后的请求中使用此令牌即可。Token一个用来资源的随机生成的比特序列。每个令牌都有一个起作用的资源的范围。一个令牌可以在有限的时间内用于认证,也可以在任何时间被撤销。尽管在当前版本中(Havana)Keystone 支持基于令牌的认证,但是它的主要作用在于在未来支持额外的

17、协议。它的目的在于成为一个重要的集成服务,而非一的解决方案。个负责和管理Tenant一组或单独的资源和(或)标识对象的容器。(A container used to group or isolate resourand/or identityobjects.)依据服务的使用者不同,一个租户可以对应一个用户(customer),账号(account),组织(anization),或者项目(project).Service类似于 Compute(Nova),Object Storage(Swift),Image Service(Glance)的 OpenStack 服务。提供一个或多个端点(end

18、pos)供用户使用资源或进行操作。Endpo一个可以在网络上进行的地址,通常在使用服务的时候是以 URL 的形式表示。如果想在模板上进行扩展,你可以创建一个表示所有可以跨区(regions)使用的服务的端点模板,Role一个允许用户进行一系列指定操作的ality)。一个角色包括一系列权(利以及权限。一个拥有指定角色的用户等于继承了该角色的权利以及权限。在 Keystone 中,授予一个用户的令牌包括了用户拥有的角色列表。用户请求哪个服务取决于怎样翻译(些操作以及资源。ret)用户拥有的角色以及每个角色可以哪下图表示了Keystone 的工作流程:Image Service overview(G

19、lance)Glance 包括如下组件:Glance-api.接受镜像 API 请求来搜索(discovery),检索(retrieval)和(storage)镜像。Glance-registry.,处理,检索镜像的元数据,例如大小,类型等。Database.镜像元数据。你可以根据自己的喜好选择合适的数据库,大部分人使用和。Storage reitory for image files.在逻辑结构图中,Glance 是一个镜像仓库。但是你也可以配置一个不同的仓库。 Glance 支持普通的文件系统,RADOS 块设备,Amazon S3 和 HTTP。一些系统仅能提供只读数据的功能。在 Gla

20、nce 中有一些周期性的进程用来支持缓存(caching)。主从同步服务(replication servi)保证了集群中的持续性和可用性。其他一些周期性进程包括审计,更新,以及获取(auditors,updaters,rers)。在概念架构图上可以看到,Glance 是整个层中的中心。它接受终端用户或者Nova 处理镜像或镜像元数据的API 请求,然后可以把磁盘文件中。到SwiftTheemetry Service(Ceilometer)emetry 服务:OpenStack高效的收集CPU 和网络开销的计量数据。通过服务发出或者轮询基础设施来收集数据。可以配置收集数据的类型来满足不同操作的

21、需求。通过 REST API 来获取和数据。通过额外的插件扩展框架来收集客户的使用数据。生成有签名的计量信息,这些信息是不可否认的。(Produsignedmetering messagest cannot be repudiated)系统包括如下基本组件:A compute agent(cepute).运行在每一个 compute 节点上并轮询资源使用的统计数据。在未来可能有其他类型的 agents,但目前专注于创建compute agent。A central agent(ceilometer-agent-central).在中枢管理服务器上运行,轮询那些与虚拟机或计算节点独立(not t

22、ied)的资源利用的统计数据。A collector(ceilometer-collector).运行在一个或多个中枢管理服务器上来消息队列(通知和来自 agent 的计量数据)。通知消息被处理后被转换为计量消息并使用恰当的emetry 消息不做修改直接写入数据库。发回给消息总线。arm notifier(ceilometer-alarm-notifier).运行在一个或多个中枢管理服务器,并基于值来设定警报。的样本进行评估所得到的一个阈A data store.一个支持并发读写数据的数据库,其中写入数据来自一个或多个收集计量数据的虚拟机,读数据是从API server 读。An API se

23、rver(ceilometer-api).运行在一个或多个中枢管理服务器来提供数据库中的数据。这些服务使用标准OpenStack 消息总线进行交互。只有collector 和 API server 有权数据库。Orchestration service overview(Heat)Heat 对云应用提供了基于模板编排(orchestration 无力) 管理, 通过OpenStack 的 API 调用来生成运行的云应用。它把 OpenStack 的其它组件整合到了一个单文件模板系统。这套模板允许你创建大部分 OpenStack 资源类型,比如虚拟机,浮动 IP,卷,安全组和用户等。它同时提供了

24、很多更高级的功能,比如虚拟机的高可用性,虚拟机动态伸缩以及嵌套栈等。通过对 OpenStack组件的紧密整合,所有 OpenStack 的user base)。组件可以得到一个更大的用户群(a larger这项服务允许部署直接整合该服务或者可以自定义插件。Heat 包括如下组件:heatd-line cnt.一个命令行界面,可以和 heat-api 交互来调用 AWS CloudFormation(就是 Amazon的模板) APIs. 终端开发者同样可以直接调用Orchestration REST API。heat-api component.提供一个 OpenStack 原生(OpenSt

25、ack-native)REST API 来处理 API 请求,并使用 RPC把请求转发到heat-engine。heat-api-cfn component.提供一个和 AWS CloudFormation 兼容的 AWS Query API,并使用RPC 把请求转发到 heat-engine。heat-engine.整理模板的启动并把事件(events)发回给 API 请求者。OpenStack 云管理指南(二)Keystone、horizon一、KeystoneOpenStackIdentity Service,代码名称叫Keystone,是 OpenStack 默认的管理系统。在安装了I

26、dentity Service 后,你可以在etc/keystone.conf 下配置它,或者也可以通过一个单独的日志配置文件(separaogging configuration file)。通过使用 keystone 命令行接口来初始化IdentityService 的数据。服务概念User management用户管理的主要部分有:User代表一个拥有关联信息(如用户名,用户名为 alice 的用户的例子:$ keystone user-create -name=alice,邮件)的个人用户。下面是一个创建-pass=mypassword123- Tenant一个项目,组或者。当你请求O

27、penStack 服务的时候,你必须指定一个租户(tenant)。例如,你想要查询计算服务(Compute service)来获取正在运行的虚拟机列表,你必须在查询的时候指定是哪个租户中的虚拟机列表。下面是创建一个叫 acme 的租户的例子:$ keystone tenant-create -name=acmel 因为在早期的Compute 版本中使用的是 project 而不是 tenant,所以一些命令行工具使用-project_id 而不是tenant-id 或者os-tenant-id 来表示一个 tenant的 idRole.指明在指定的租户中用户可以进行的操作。下面是创建一个名叫

28、compute-user的角色的例子:$ keystone rolpute-userl 在个别如 Compute 和 ImageService 中,会给一个role 指定意义。但在Identity Service 中,一个 role 仅仅是一个名字。Identity Service 为一个用户(user)指定一个租户(tenant)和一个角色(role)。你可以在 acme 租户中把compute-user 角色赋给alice 用户。$ keystone user-list+| id | enabled | name |+|alice |+| 892585 | True |+$ keyston

29、e role-list+| id | name |+| 9a764e | compute-user |+$ keystone tenant-list+| id | name | enabled |+| 6b8fd2 | acme | True |+$ keystone user-role-add-user=892585 -role=9a764e -tenant-id=6b8fd2一个用户可以在不同的租户中有不同的角色。比如说,alice 用户也可以在Cyberdyne 租户里拥有admin 角色。一个用户也可以在同一租户里有多种角色。/etc/SERVICE_CODENAME/policy.j

30、son 文件控制了在指定服务中用户可以进行哪些操作。比如说,/etc/nova/policy.json 指定了 Compute 中的权限。省略一些更详细的说明。需要参见原文。Service managementIdentityService 提供了,令牌,目录,和策略服务。包括了:keystone-all.在一个独立进程中开启提供catalog,authorization 和 authentication servi务和管理 API。的服Identity Service functions.每个服务都有一个可插拔的后端以提供不同的方式来使用特殊的服务。大部分都支持标准的后端,如LDAP 或 S

31、QL。IdentityService 为每个服务都一个相应的用户,比如一个叫 nova 的用户对应 Compute 服务,还有一个叫 service 的特殊服务租户(spel service tenant)。Group一个组是一个用户的集合。管理员可以创建组并添加用户,然后可以给一个组的用户赋予角色,而不需在单独指定每个用户。每个组都在一个域( 内。组在 IdentityAPI 的第三版(Identity 服务的 Grizzly 版本)中才被引入。IdentityAPI V3 提供了如下的组相关的操作:创建、删除、更新(修改名字或描述)组,为组增加、删除用户,列举所有组成员,列举某用户所在的所

32、有组,为组增加基于租户的角色,为组增加基于域的角色,查询组所拥有的角色。 Identity service 服务器可能不会允许所有的操作。比如说如果你用LDAP 作为 Identity 的后端,则更新组会被禁用,因此,请求创建,删除,或者更新组都会失败。)s域定义了对实体的管理边界。一个域可能代表一个,一个公司,或者一个运营商自有的空间。它用来直接向系统用户(system users)管理活动。User CRUDIdentity 服务提供了一个用户 CRUD(Create,Retrieve,Update,Delete)过滤器。这个过滤器可以被添加到 public_api 管道中,同时允许永续使

33、用一个 HTTP PATCH来修改他们的。要使用这个扩展你需要先定义一个 user_crud_exten过滤器,在 keystone.conf 文件的 *_body 中间件后和 public_apiWSGI 管道的 public_service 应用之前它。如下:filter:user_crud_extenpaste.filter_factory =keystone.contrib.user_crud:CrudExtenpipeline:public_api.factorypipeline = ss_monitoringurl_normalize token_auth admin_token_auth xml_bodyjson_body debugec2_extenuser_crud_extenpublic_service然后每个用户就可以通过 HTTP PATCH 来修改$ curl -X PATCHContent-type:application/json 了: -H-H X_Auth_Token: -d user: password:ABCD,original_password:DCBA在修改之后,用户当前所有的令牌都会被删除。(如果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论