/ 2017-07-13
由于历史原因,我司存在两个独立的OpenStack集群,运行在CentOS-6.8上面的Icehouse集群和运行在CentOS-7.2上的Mitaka集群,每次管理都需要登录两个不同Dashboard。所以2017年前准备将集群进行整合,变更为OpenStack多区域的方式管理,进行统一验证和登录管理。
OpenStack multi-region介绍
所谓openstack多region,就是多套openstack共享一个keystone和horizon。一个region一般对应一个物理集群,多个region之间共享Dashboard Service和Identity Service,其他服务均是各个region独立的拥有。可以在Dashboard上进行Region的切换,如下图所示:
操作简介
本项目的实施计划是以Mitaka版本的Keystone和Horzion为主,不再使用Icehouse集群的Keystone和Horzion。在Mitaka版本新增一个区域RegionTow。
主要有两个坑:
· 两个不同发布版的Keystone版本问题,I版的Keystone是V2版本,M版的Keystone是V3版本,需要兼容。
· 已有数据库更新,由于使用统一的KeyStone,对于Icehouse老集群来说,用户和项目的数据都发生了变更,必然存在相关数据库表的更新。
操作步骤
下面将当时操作的记录,经过简单的整理发布出来,希望可以帮助到有类似需求的朋友,避免踩坑。
1. KeyStone数据库备份
备份OpenStack Mitaka版本的Keystone,以备恢复使用。
# mysqldump-u root -p keystone > keystone_20161230.sql
2.创建RegionTwo
在OpenStack Mitaka版本的Keystone上增加RegionTwo的service和endpoint。
# sourceadmin-openrc
Keystone:
# openstack endpoint create --region RegionTwo identity public http://192.168.11.53:5000/v2.0
# openstack endpoint create --region RegionTwo identity internal http://192.168.11.53:5000/v2.0
# openstack endpoint create --region RegionTwo identity admin http://192.168.11.53:35357/v2.0
Glance:
# openstack endpoint create --region RegionTwo image public http://192.168.11.53:9292
# openstack endpoint create --region RegionTwo image internal http://192.168.11.53:9292
# openstack endpoint create --region RegionTwo image admin http://192.168.11.53:9292
Nova:
# openstack endpoint create --region RegionTwo compute public http://192.168.11.53:8774/v2/%\(tenant_id\)s
# openstack endpoint create --region RegionTwo compute internal http://192.168.11.53:8774/v2/%\(tenant_id\)s
# openstack endpoint create --region RegionTwo compute admin http://192.168.11.53:8774/v2/%\(tenant_id\)s
Neutron:
# openstack endpoint create --region RegionTwo network public http://192.168.11.53:9696
# openstack endpoint create --region RegionTwo network internal http://192.168.11.53:9696
# openstack endpoint create --region RegionTwo network admin http://192.168.11.53:9696
3.Icehouse版本配置变更
修改OpenStack Icehouse集群的所有服务(Glance、Nova、Neutron、Cinder等),其中Keystone配置为Mitaka版本的KeyStone,并重启。当然你需要选择一个夜深人静的时刻,至少不会有云主机管理的操作再进行。
4.修改Mitaka Keystone支持V2.0版本
OpenStack Mitaka的Keystone是可以支持V2.0版本的,需要做一些变更:
1.获取默认的Default Domain的ID
# openstackdomain list
2. 修改Keystone配置
# vim/etc/keystone/keystone.conf
[identity]
default_domain_id = d0e436a913f94ec28f3a1892e0a7a240
3.再次同步数据库
# su -s/bin/sh -c "keystone-manage db_sync" keystone
4.为兼容KeyStone V2.0,需要生成PKI的相关证书
# keystone-manage pki_setup --keystone-user root --keystone-group root
# systemctl restart httpd
5.更新IceHouse版本集群的数据库
对于老版本的Icehouse集群来说,由于更换了新的Keystone。用户ID和项目ID均发生了变化,但是之前创建的镜像、云主机、网络等都有关系的用户和项目信息,需要全部更新。
新的Mitaka集群Keystone:
cloud:
· user_id:d510530fad43489e87632e6ef70055b7
· project_id:8934d133f7634f7593dfa1ed3df4a556
(8)