OpenStack里如何实现跨数据中心以及异构hypervisor管理

原创 2015年11月17日 19:33:54

OpenStack的多Region配置主要用于需要跨数据中心(2层没有打通)管理,以及异构的Hypervisor管理。通常每一个Hypervisor集群对应一个Region。也可以一个Region上部署多个Hypervisor集群(通常不这样做,因为管理复杂,容易因为误操作出故障)。


网上有一些关于多Region的配置,比如在数据库层面将第二个Region的endpoint拷贝到第一个Region。这样做其实比较麻烦,手工干预较多,不适合规范性的大规模部署。本文尝试从多Region支持的基本原理出发,给出最简洁、有效的配置方法。


对于OpenStack的多Region支持,其基本实现原理是要求多个Region之间共享同一个认证服务(keystone identity服务)。这样做的好处是可以对租户进行集中管理和授权。为了便于说明,我们以两个Region(RegionOne和RegionTwo)为例,其中RegionOne为Master Region,RegionTwo作为Slave Region,每个Region的认证都通过keystone identity服务实现。总体来说,从技术层面实现需要注意如下几方面:

1. 所有Region上的keystone服务共享一个数据库,这个数据库里会存放所有的service, endpoint以及租户信息等。

2. 所有Region上keystone identity服务的endpoint都应该和Master Region上identity服务的endpoint一致。

3. 除identity服务之外的其它服务(glance, nova, neutron, cinder等)的endpoint中指向的IP或主机名都应该是所在Region的controller IP或者主机名。


详细的配置过程如下:

1. 按照常规方式安装配置RegionOne。具体请参考社区安装配置文档。


2. 在RegionOne节点上为RegionTwo的identity服务创建endpoint,注意所有的URL都要指向Master节点的keystone endpoint。

# openstack endpoint create \
  --publicurl http://$MASTER_CONTROLLER:5000/v2.0 \
  --internalurl http://$MASTER_CONTROLLER:5000/v2.0 \
  --adminurl http://$MASTER_CONTROLLER:35357/v2.0 \
  --region RegionTwo \
  identity

3. 在RegionOne节点上为RegionTwo的image(glance)服务创建endpoint,注意所有的URL都要指向Slave节点

# openstack endpoint create \
  --publicurl http://$SLAVE_CONTROLLER:9292 \
  --internalurl http://$SLAVE_CONTROLLER:9292 \
  --adminurl http://$SLAVE_CONTROLLER:9292 \
  --region RegionTwo \
  image

4. 按照步骤3为RegionTwo的其他服务(nova, neutron等)创建endpoint

# openstack endpoint create \
  --publicurl http://$SLAVE_CONTROLLER:8774/v2/%\(tenant_id\)s \
  --internalurl http://$SLAVE_CONTROLLER:8774/v2/%\(tenant_id\)s \
  --adminurl http://$SLAVE_CONTROLLER:8774/v2/%\(tenant_id\)s \
  --region RegionTwo \
  compute

# openstack endpoint create \
  --publicurl http://$SLAVE_CONTROLLER:9696 \
  --internalurl http://$SLAVE_CONTROLLER:9696 \
  --adminurl http://$SLAVE_CONTROLLER:9696 \
  --region RegionTwo \
  network

5. 检查配置是否正确。可以切换到V2版本的keystone,然后执行keystone endpoint-list检查,因为输出太多,就不贴出来了。


6. 安装RegionTwo,和常规的安装方法不同,因为在RegionOne里我们已经为RegionTwo定义了各种服务的endpoint以及租户信息,这样就不需要在RegionTwo的创建过程中再重新来一遍。整个安装过程和RegionOne一致,只是要去掉所有有关service, endpoint以及租户信息的创建。注意安装过程中所有服务的数据库和认证密码都应该和RegionOne中一致。


7. 在RegionTwo上对所有服务(glance, nova, neutron, cinder等)的配置文件进行修改,把和keystone认证有关的url和uri都修改为指向RegoinOne的keystone identity服务的endpoint。以nova服务为例,修改如下,注意$MASTER_CONTROLLER要替换为RegionOne的controller IP。修改完成后需要重启各个服务。

[keystone_authtoken]
auth_uri = http://$MASTER_CONTROLLER:5000
auth_url = http://$MASTER_CONTROLLER:35357


同时注意将RegionTwo上keystone的数据库连接指向RegionOne上的数据库,如下。修改完后需要重启RegionTwo的keystone服务。

[database]
connection mysql://keystone:$KEYSTONE_DBPASS@$MASTER_CONTROLLERE/keystone

8. 如果需要在Horizon Dashboard上能够切换Region,还需要在RegionOne上修改/etc/openstack-dashboard/local_settings文件,在AVAILABLE_REGIONS里添加endpoint和title,如下。注意所有的endpoint都是Master节点identity服务的endpoint,区别在后面的title部分。

AVAILABLE_REGIONS = [
    ('http://controller:5000/v2.0', 'RegionOne'),
    ('http://controller:5000/v2.0', 'RegionTwo'),
]


9. 在RegionOne上重启httpd,然后就可以看到选择Region的登陆界面了。



也可以登陆后进行Region的切换:


基于OpenStack异构混合云实践

日前, 2016中国云计算技术大会(CCTC)在北京盛大开幕。北京天云融创软件技术有限公司研发总监&首席架构师贾琨参加了本次大会并接受CSDN记者的专访。他介绍了自己对云计算的认识、基于OpenSta...
  • horsefoot
  • horsefoot
  • 2016年05月23日 18:39
  • 18261

跨数据中心场景下,kafka集群部署模式

kafka在多数据中心场景下和单数据中心的场景部署是一样的吗?kafka的性能对分布式系统而言,非常重要。一旦延迟较大的情况下,应该如何部署。 一、为什么要跨数据中心部署? 大型的分布...
  • douliw
  • douliw
  • 2017年03月04日 06:37
  • 1683

OpenStack从数据库中删除掉Compute节点(hypervisor)

1.查询数据库格式 2.查询ID 3.查看deleted状态栏 4.把compute节点的deleted状态置为1 5.再次查询 这样就成功了...
  • Tomstrong_369
  • Tomstrong_369
  • 2017年03月15日 18:43
  • 429

OpenStack 中混合 Hypervisor 场景的原理分析与最佳实践

http://www.ibm.com/developerworks/cn/cloud/library/1312_yan IBM Bluemix点击按钮,开始云上的开发! 开始您的试用 ...
  • lotusbeauty
  • lotusbeauty
  • 2015年11月16日 23:46
  • 620

openstack 命令行管理十七 - 宿主主机管理 (备忘)

利用 nova 命令获得一些计算节点下的物理信息
  • signmem
  • signmem
  • 2014年02月20日 00:17
  • 3470

基于OpenStack异构混合云实践

日前, 2016中国云计算技术大会(CCTC)在北京盛大开幕。北京天云融创软件技术有限公司研发总监&首席架构师贾琨参加了本次大会并接受CSDN记者的专访。他介绍了自己对云计算的认识、基于OpenSta...
  • horsefoot
  • horsefoot
  • 2016年05月23日 18:39
  • 18261

OpenStack 高可用和灾备方案(上)

作者:Sammy Liu  (刘世民)   1. 基础知识 1.1 高可用 (High Availability,简称 HA) 高可用性是指提供在本地系统单个组件故障情况下,能继续访问应用的能...
  • xiongchun11
  • xiongchun11
  • 2016年12月26日 15:11
  • 897

KVM openstack 之间的区别与联系

首先介绍一下虚拟化的类型 1.全虚拟化(Full Virtualization) 全虚拟化也成为原始虚拟化技术,该模型使用虚拟机协调guest操作系统和原始硬件,VMM在guest操作系统和裸硬件...
  • daguaishou007
  • daguaishou007
  • 2017年05月12日 09:43
  • 1107

Neutron印象10: OpenStack中实现混合Hypervisor原理剖析

作者:张华  发表于:2014-01-15 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) ...
  • jincm13
  • jincm13
  • 2014年08月22日 09:22
  • 527

跨数据中心场景下,kafka集群部署模式

kafka在多数据中心场景下和单数据中心的场景部署是一样的吗?kafka的性能对分布式系统而言,非常重要。一旦延迟较大的情况下,应该如何部署。 一、为什么要跨数据中心部署? 大型的分布...
  • douliw
  • douliw
  • 2017年03月04日 06:37
  • 1683
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenStack里如何实现跨数据中心以及异构hypervisor管理
举报原因:
原因补充:

(最多只允许输入30个字)