什么是多region:
简单理解为多套Openstack集群用一套dashboard 来管理。
大体架构图:
OpenStack 多Region_第1张图片

多Region的应用场景:
1、Openstack 集群位于不同的区域时,可以用多Region来管理,比如阿里云的北京地区的云主机、上海区的云主机等
2、可用于异构管理,比如当Kvm和Vcenter 同时被Openstack管理时,由于网络、镜像等原因 必须使用独立的环境来纳管,此时使用多Region来管理。

开始搭建多Region

环境:
本次采用Ansible 脚本搭建Openstack,我们搭建两套环境 来模拟 RegionOne 和RegionTwo
Ansible 构建脚本:https://github.com/Erick-shi/Openstack-ansible-ocata

思路:
在regionOne上机器操作
创建RegionTwo的keystone 的endpoint 此时 endpoint的url的ip地址要以RegionOne 的ip一样;
创建除了keystone服务的service 对于的endpoint 此时url的ip要和RegionTwo 的IP地址一致
在RegionTwo上操作:
修改 nova.conf、glance-api.conf、neutron.conf 、cinder.conf 等,把有关keyston 认证的密码改为RegionOne的对于的admin的密码。 并且把os_region_name=“RegionTwo”
并重新启动其服务。

vi /etc/openstack-dashboard/local_settings(可选)

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

重启httpd服务即可

下面我们来实操下:

RegionOne:
ip:192.168.1.7
hostname: vcenter
RegionTwo:
ip: 192.168.1.11
hostname: localhost

1、在regionOne上创建RegionTwo 的keyston 的endpoint

keystone-manage bootstrap --bootstrap-password ADMIN_PASS \
  --bootstrap-admin-url http://192.168.1.7:35357/v3/ \
  --bootstrap-internal-url http://192.168.1.7:5000/v3/ \
  --bootstrap-public-url http://192.168.1.7:5000/v3/ \
  --bootstrap-region-id RegionTwo

2、在regionOne上为RegionTwo创建 其他服务的endpoint

openstack endpoint create --region RegionTwo   image public http://192.168.1.11:9292
openstack endpoint create --region RegionTwo   image internal http://192.168.1.11:9292
openstack endpoint create --region RegionTwo   image admin http://192.168.1.11:9292
openstack endpoint create --region RegionTwo   compute public http://192.168.1.11:8774/v2.1
openstack endpoint create --region RegionTwo   compute internal http://192.168.1.11:8774/v2.1
openstack endpoint create --region RegionTwo   compute admin http://192.168.1.11:8774/v2.1
openstack endpoint create --region RegionTwo placement public http://192.168.1.11:8778
openstack endpoint create --region RegionTwo placement internal http://192.168.1.11:8778  
openstack endpoint create --region RegionTwo placement admin http://192.168.1.11:8778
openstack endpoint create --region RegionTwo   network public http://192.168.1.11:9696
openstack endpoint create --region RegionTwo   network internal http://192.168.1.11:9696
openstack endpoint create --region RegionTwo   network admin http://192.168.1.11:9696

3、在RegionTwo上
修改 nova.conf、glance-api.conf、neutron.conf 、cinder.conf 等,把有关keyston 认证的密码改为RegionOne的对于的admin的密码。 并且把os_region_name=“RegionTwo”
并重新启动其服务。

4、重启RegionOne上的httpd 服务,便可以出现以下效果
OpenStack 多Region_第2张图片

注意事项:
被对接的第二个Region 要保证资源为空,换言之要为一个干净的环境,否则会在web上报错。
一旦对接成功, 列车的endpoint信息是RegionOne和RegonTwo上所有的endpoint的信息。 用户是共享的用户