1、修改globals.yaml高可用部分的文件
enable_masakari的值改为“yes”;
conrosync_bindnetaddr的值修改为对应心跳网络的网段(如果没有单独的心跳网络,可以复用管理网和存储网,但是建议有限万兆)
corosync_expected_votes的值根据(计算节点数量/2-1)得出的结果需要是奇数个,如果为偶数减一即可(记住算出来的偶数,后面高可用域分组的数量按照这个数记录)
2、正式部署高可用
执行kolla-ansible -i /kylincloud/multinode deploy (由于幂等性之前部署过得组件会自动跳过)
就会部署上高可用对应的组件
部署完成之后查看 /etc/kolla/corosync/corosync.conf和/etc/kolla/pacemaker/corosync.conf (两个文件是相同的)
其中member的IP是心跳网络对应的具体IP,menber的数量是根据corosync_expected_votes分组的决定的,(例如corosync_expected_votes的值为7,则member的数量就是7)则interface中的7个节点的配置文件一样,除了bindnetaddr(这个为本机心跳IP)。其他分组的节点需要填写其他分组的内容(比如计算1-8为一组,则配置文件填写1-8的IP,9-18为一组,则配置文件填写9-18的IP)
3、配置高可用域
登录云平台------系统配置-----高可用-----打开高可用域-----保存更改
然后刷新一下云平台界面会发现在左侧菜单中多出来了一个高可用
然后点击创建高可用域
自定义高可用域的名字,添加完成之后会在页面当中出现(如果没有出现数据,说明高可用组件部署出现问题),然后点击添加物理主机,选择需要高可用的物理主机(状态为激活、勾选保留、勾掉维护)
每组高可用需要对应之前corosync_expected_votes的值
4、简单的运维
在部署完成,配置完成之后
查看一下/etc/kolla/masakari-hostmonitor/masakari-monitors.conf里面的corosync_multicast_interfaces 的值(需要每个高可用节点都查看)
需要改成心跳网的网卡(如果不是需要修改)
修改完成之后重启服务:
docker restart masakari_hostmonitor
5、查看日志
通过
tail -30f /var/lib/docker/volumes/kola_logs/_data/masakari-hostmonitor.log
查看高可用的日志
第一个标红的地方为配置的心跳网卡状态
第二个标红的地方为测试节点poweroff之后高可用服务是否可以检查到该节点已经下线
如果这些正常说明高可用服务正常,等待5-10分钟故障节点的虚拟机就会自动迁移
注意事项:
- 如果云平台集群重启之后,发现高可用页面编辑之后无法正确的修改状态,点击确认之后发现状态没有修改过来,则用一下方法解决
cat /etc/kolla/masakari-engine/masakari.conf
[database]
connection=mysql+pymysql://masakari:m2AYHWE17xCO1CcfzspJ6yjuy31UMRuVgNMu45Jm@5.9.103.88:3306/masakari
用这个信息填写下面的数据库登录内容,登录进去修改数据库
mysql -h 5.9.103.88 -u masakari pm2AYHWE17xCO1CcfzspJ6yjuy31UMRuVgNMu45Jm -D masakari
update notifications set deleted=1 \G
2、执行完成上面的内容之后,回到ui界面重新编辑状态