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...

OpenStack让数据中心随时就绪

移动化、云、社交媒体、大数据以及物联网(IoT)的爆炸式增长给当今的商业市场带来了不可估量的新机遇,但同时也伴随着各种新的威胁。面对飞速增长的数字经济,业界所有企业都亟待开创新的商业模式和服务,这使得...

openstack热迁移机制分析(libvirt热迁移模型、nova热迁移控制逻辑、调试方法)

前段时间在解决大内存热迁移失败的时候,查阅了下openstack热迁移相关知识,有了一些记录跟大家分享下。以基于L版openstack+qemu/kvm,跟大家分享下API库libvirt的热迁移机制...

【OpenStack源码分析之八】openstack中虚拟机在线迁移

转自:https://www.ibm.com/developerworks/cn/cloud/library/1508_wangyx_openstacklivemigrate/本文尝试回答与 Live...

云数据中心异构资源管理大有可为

随着行业信息化与IT战略在全社会的广泛推进,国内数据中心、IDC市场进入了崭新的发展阶段。在需求端,IDC业务逐步呈现灵活化、快速化、定制化的趋势特征,推动数据中心迎来整合、云化转变的大潮。而运营模式...

使用zookeeper实现静态数据中心化配置管理

各个项目都会存在静态数据配置,这些数据平台变化很少,为提高性能一般采用缓存的方式缓存数据。如果采用分布式缓存,网络成本比较高不太适合  一般采用本地缓存,在单机环境下修改缓存数据方式比较简单,更新数...
  • wmq534
  • wmq534
  • 2015年01月15日 20:20
  • 520

程辉:OpenStack构建云计算数据中心

  • 2015年09月22日 16:39
  • 4.87MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenStack里如何实现跨数据中心以及异构hypervisor管理
举报原因:
原因补充:

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