管理openstack多region介绍与实践

转:http://www.cnblogs.com/zhoumingang/p/5514853.html

概念介绍

所谓openstack多region,就是多套openstack共享一个keystone和horizon。每个区域一套openstack环境,可以分布在不同的地理位置,只要网络可达就行。个人认为目的就是为了提供环境隔离的功能,选择启虚拟机的时候可以根据自己所处的位置就近选择。

既然提到region了,那不如就此总结下openstack中其他的至上而下的不同的区域概念。

Region

每个region都有个完整的Openstack部署环境, 有自己的一套服务的endpoint(服务入口)。

不同的region共享一套keystone和horizon来提供访问控制与web操作,regions之间完全隔离,但是多个regions之间共享同一个keystone和dashboard。

Cells

cell英译细胞,主要解决openstack的扩展性和规模瓶颈(rabbitmq和database组件),通过每个cell引进自己独立的rabbitmq和db来解决。

cell被实现为树形的分级调度,在每个cell中引入cell的概念:

(1)Messages的路由,即父cell通过nova-cell将Messages路由到子cell的AMQP模块。

(2)分级调度功能,即调度某个instances的时候先要进行cell的选择,根据调度策略。
(3)资源统计,子cell定时的将自己的资源信息上报给父cell,用来给分级调度策略提供决策数据和基于cell的资源监控。
(4)cell之间的通信(通过rpc完成)
  最后,所有的子cell公用底层cell的nova-api,子cell包含除了nova-api之外的其他nova服务,当然所有的cell都共用keystone服务。
(注:nova-*是指除了nova-api之外的其他nova服务,子cell + 父cell才构成了完整的nova服务)

小结一下:我的理解就是在原来的nova-api访其他服务之前加了一层,先选择哪个子cell来提供计算服务。父cell才有nova api服务,子cell提供nova的其他服务,cell之间通过nova-cell把消息传递到子cell的rabbitmq(AMQP)。

AZ(Availability Zones)

region中的计算结点可以被逻辑上划分为不同的availability zones,具有独立的电力供应设备,如下图。用户可见,在启动虚拟机时,可以指定特定的AZ来启动该虚拟机实例,通常你看到的就是默认nova。

修改availability zone,直接修改 nova.conf中的 字段node_availability_zone即可。

机器之间是否有明确的物理隔离,或者是考虑冗余。 如果的确有,则可考虑AZ。

Host Aggregate

除了AZ,计算结点也可以被逻辑上划分为主机集合,具有相同特性的集群,比如使用一个带有SSD磁盘的主机集合,或一个装有万兆网卡的主机集合。Host Aggregates是用户不可见的概念。

小结一下:AZ用于让用户指定从哪个特定的服务器组合里发起虚拟机,主机集合主要用来为具有特定性能的主机分组以此让调度器根据某种特性在特定的集合中发起虚拟机。

是否有基于硬件能力的隔离, 如果有很可能要使用HA。

以上是一些openstack的区域分级的概念,当然keystone里面还有分domain,project,Telnet,user,role等的概念后面另外再介绍。

多region的实践

openstack多region,就是多套openstack共享一个keystone和horizon,那么很容易想到,在一套openstack的keystone的服务实例中创建另外一个区域的服务入口点,只不过认证的服务endpoint一样罢了,horizon自动识别region。

环境介绍

以我自己的例子,先搭建了两套openstack环境,因为是为了实践,所以我简单的搞了两套allinone的。

A主机是10.133.47.95 ,定义成我的region one;

B主机是10.133.47.20,定义成我的region two。

配置

1.在A主机上创建nova、glance、cinder服务入口endpoint,定义为region two。

[[email protected] ~(keystone_admin)]# keystone endpoint-create --service-id $(keystone service-list | awk ‘/ compute / {print $2}‘) --publicurl http://10.133.47.95:5000/v2.0 --internalurl http://10.133.47.95:5000/v2.0 --adminurl http://10.133.47.95:35357/v2.0 --region RegionTwo

[[email protected] ~(keystone_admin)]# keystone endpoint-list|grep RegionTwo

注意:1.这里的endpoint地址都是主机B上的openstack环境中的服务endpoint。

2.glance,cinder以及其他服务,一样操作。

2.在主机B上对相应的服务配置修改

①编辑nova配置文件,在/etc/nova/nova.conf

auth_uri=http://10.133.47.95:5000/v2.0

identity_uri=http://10.133.47.95:35357

admin_token = 3a64046c0c9a4ef4af3d13819a451461

admin_user=nova

admin_password=cd2b0a687cd14376

admin_tenant_name=services

注:1.原来uri这里是47.20,因为我们要和regionone共享keystone,所以认证url改为主机A上的keystone。

2.admin_token需要增加,也是主机Akeystone配置文件中的,必须要加不然认证没法通过,user和password要和A的文件中的一致。

[neutron]

url=http://10.133.47.20:9696

admin_username=neutron

admin_password=072bdefd676644ca

admin_tenant_name=services

admin_auth_url=http://10.133.47.95:5000/v2.0

2.修改cinder.conf文件

[keystone_authtoken]

auth_uri = http://10.133.47.95:5000/v2.0

region_name = RegionTwo

identity_uri = http://10.133.47.95:35357

admin_user = cinder

admin_password = e3cdaaf26e774509

admin_token = 3a64046c0c9a4ef4af3d13819a451461

admin_tenant_name = services

3.glance配置修改和nova cinder类似,只不过要改api.conf和register.conf。

[keystone_authtoken]

auth_uri=http://10.133.47.95:5000/v2.0

identity_uri=http://10.133.47.95:35357

admin_user=glance

admin_password=bdda12a1e36e4d70

admin_tenant_name=services

admin_token = 3a64046c0c9a4ef4af3d13819a451461

[keystone_authtoken]

auth_uri=http://10.133.47.95:5000/v2.0

identity_uri=http://10.133.47.95:35357

admin_user=glance

admin_password=bdda12a1e36e4d70

admin_token = 3a64046c0c9a4ef4af3d13819a451461

admin_tenant_name=services

总结:要将B机器上所有的验证url都改成A的验证url,另外注意将B中各种配置文件中的token改成A中的admin_token。还有注意两台机器的时间一定要接近,不然还是会出现未授权的错误。

验证:

修改好之后就可以登录到horizon上去看了,horizon不需要修改,它可以自己识别多region。

至此,我们就可以通过一个horizon界面去操作不同环境的openstack去创建虚拟机,资源是完全隔离的,是不是很方便了。

以上,是我在完成后再写的步骤,细节的地方可能会有纰漏,但是思路基本就是这样。

另外,cell的实验会在后续介绍。

时间: 03-16

管理openstack多region介绍与实践的相关文章

ssh批量管理分发项目实战介绍与实践

ssh认证类型: 基于口令的安全验证,批量管理?expect,pssh,sshpass m01 机器(钥匙)私钥 被管理机器(锁)公钥      m01 nfs01 backup web01 1.在上面4台机器上面操作:创建用户及密码 useradd oldgirl echo 123456|passwd --stdin oldgirl id oldgirl su - oldgirl 2.创建密钥对 在m01上面操作如下: [[email protected] ~]$ ssh-keygen -t

微软云计算介绍与实践(实践之二十)

接上面章节,有同学说为什么要搞这么一些东西,刚好我给大家贴一张图,看一下微软私有云解决方案中这几大组件相互关系,看完后大家也就明白我今天为什么还在做各种环境搭建,配置准备工作了. 一.配置System Center 2012虚拟机管理器集成包 上一章节,小张同学可以使用已有的的集成包,但他需要配置一下它们,让其和服务器正确连接.在接下来的步骤中,小张同学是要配置的是他刚刚注册和部署的四个集成包.关于使用集成包的先决条件.可以参考如下TechNet网页:http://technet.microso

微软云计算介绍与实践(实践之十五)

-- 接上回,继续动态扩展负载的存储. 26.关闭向导前选中创建卷选项,然后点击关闭. 27.随后会打开新建卷向导,点击下一步. 28.查阅设置并点击下一步. 29.确认磁盘容量为 21.9GB 然后点击下一步. 30.选择驱动器盘符 E: 并点击下一步. 31.更改卷标为 Data 然后点击下一步. 32.点击创建. 33.随后将创建一个新卷.点击关闭. 34.在服务器管理器中点击文件与存储服务,然后点击卷.确认新卷已经显示在这里,并且可用空间符合实际情况.如果给新建的卷分配的盘符不是 E:,

XenServer管理网络做网卡Bond最佳实践

在 XenServer 安装期间,系统会为每个物理网络接口卡 (NIC) 创建一个网络.向资源池添加服务器 时,这些默认网络会进行合并,以便设备名称相同的所有物理 NIC 均连接到同一网络. 通常情况下,如果您想要创建内部网络,使用现有 NIC 设置新 VLAN,或创建 NIC 绑定,只需添加一个新网络即可. 在 XenServer 中您可以配置四种不同类型的网络: 外部网络,与物理网络接口相关联,可在虚拟机与连接到网络的物理网络接口之间提供桥接,从而使虚拟机能够通过服务器的物理网络接口卡连接到

微软云计算介绍与实践(实践之二十一)

接前面两篇,告诉大家一个坏消息和一个好消息:坏消息是本篇依旧环境搭建.配置准备工作,好消息是这是最后一篇. 一.数据仓库注册 小张下面注册数据仓库. 1.在System Center 2012 Service Manager控制台,转至管理 2.在管理概述页面,点击注册与服务管理数据仓库 3.在开始之前页面,选择下一步 4.在数据仓库页面,输入服务器名称ServiceMgrDW并选择Test Connection按钮 5.如果连接测试成功,请选择下一步 6.在认证页面,选择DW_ServiceM

微软云计算介绍与实践(实践之十九)

以下板块的实践着重于如何通过自动化来提升效率,通过自助服务和授权控制,并对基础设施提供统一的管理,这些实践中使用的重要组件为Service Manager.Orchestrator.App Controller 以及 Virtual Machine Manager. 一.微软私有云中的自动化自助服务 关于微软私有云中的自动化自助服务,相关背景知识和产品功能介绍,我就不多说了,贴上几张图,大家看了明白个大概就行. (IT需求和System Center功能) (租户和应用程序所有者的场景) 二.O

微软云计算介绍与实践(实践之二十七)

创建服务目录组 我们小张创建一个服务目录组,将用于基于角色的特定服务访问请求.比如小张希望人力资源组用户只显示基于AD的可用资源.特别说明:在服务管理器中的用户角色权限是累积的.下面是他的操作步骤: 1.从系统中心服务管理控制台,依次单击库 2.然后选择服务目录 3.在右侧栏中,单击创建目录组 4.从创建组向导点击下一步 5.接着我们小张创建一个目录组名为Contoso的服务目录组,并增加所有服务内容 6.从附加的成员界面点击添加 7.选择创建私有云和基础设施服务,然后单击确定 8.确认创建私有

微软云计算介绍与实践(实践之十二)

今天主要实践使用远程 SMB 存储共享保存 VHD.由于周末要看球等原因,内容不多,有料就行.(^_^) 接前面,公司私有云管理员小张已经执行了迁移,他还需要在最近已部署的 Virtual Machine Manager 环境中检查虚拟机设置.所以下一步小张需要确认 Guest01 的存储已经位于 HyperV02 上的 SMB 3.0 共享中,并且虚拟机通过 EvalCluster 群集运行. 1.打开 Virtual Machine Management 控制台,输入用户名 CONTOSO\

软件项目量化管理(CMMI高成熟度)实践经验谈——之项目管理过程监督与控制篇

续:软件项目量化管理(CMMI高成熟度)实践经验谈--之概述篇 续:软件项目量化管理(CMMI高成熟度)实践经验谈--之项目管理过程策划篇 2.项目监督与控制 项目监控是围绕项目实施计划,跟踪进度.成本.质量.资源,掌握各项工作现状,以便进行适当的资源调配和进度调整,确定活动的开始和结束时间,并记录实际的进度情况,在一定情况下进行路径.风险.决策.度量.量化管理等方面的分析.在实施项目的过程中,要随时对项目进行跟踪监控,以使项目按计划规定的进度.技术指标完成,并提供现阶段工作的反馈信息,以利后续