OpenStack High Availability(高可用)

一、环境

系统是CentOS 7,使用OpenStack Liberty版本。

拓扑

  • 每个服务器两张网卡
  • 每个服务器的硬盘除了sda之外都做ceph存储

推荐配置

  • ceph 集群大概需要12块硬盘(小企业),最好是SSD
  • 每个服务器需要8张网卡,两两做bund,提供管理网络,业务网络,外部网络,存储网络
  • 计算节点需要超过128g内存

服务关系

二、 Controller

2.1 基础配置

使用redhat的快速安装工具,CONFIG_COMPUTE_HOSTS只需要在一个controller上填写即可,不需要所有controller上都写上

安装完成

2.2 删除一个服务

修改

三、High Availability

3.1 RabbitMQ HA

注:不特别标注的话,每个节点都需要

Rabbitmq 官方(www.rabbitmq.com)文档上搭建高可用集群的方式有两种:
对rabbitmq 官方cluster 文档的中文翻译http://m.oschina.net/blog/93548
尽管rabbitmq 本身支持cluster,但是cluster 并没有高可用。
一、 消息队列高可用(active/active)
二、 使用pacemaker+drbd(active/standby)
这里我们介绍的是第一种高可用方式。

启动管理插件
[root@controller001 ~(keystone_admin)]# find / -name rabbitmq-plugins

启用插件

[root@controller2 ~(keystone_admin)]# /usr/sbin/rabbitmq-plugins enable

3.2 rabbitmq界面

注意事项

  1. 为了防止数据丢失的发生,在任何情况下都应该保证至少有一个 node 是采用磁盘
    node 方式。RabbitMQ 在很多情况下会阻止创建仅有内存 node 的 cluster ,但是如
    果你通过手动将 cluster 中的全部磁盘 node 都停止掉或者强制 reset 所有的磁盘
    node 的方式间接导致生成了仅有内存 node 的 cluster ,RabbitMQ 无法阻止你。你这
    么做本身是很不明智的,因为会导致你的数据非常容易丢失。
  2. 当整个 cluster 不能工作了,最后一个失效的 node 必须是第一个重新开始工作的那
    一个。如果这种情况得不到满足,所有 node 将会为最后一个磁盘 node 的恢复等待 30
    秒。如果最后一个离线的 node 无法重新上线,我们可以通过命令 forget_cluster_node
    将其从 cluster 中移除 - 具体参考 rabbitmqctl 的使用手册。

3.3 MangoDB HA(单个节点即可)

Mongodb 简介
MongoDB 是一个高性能,开源,无模式的文档型数据库,是当前NoSql 数据库中比较热门的一种。它在
许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo 使用C++开发。Mongo 的官方网
站地址是:http://www.mongodb.org/,读者可以在此获得更详细的信息。

配置时候把controller1和controller2加入,controller3作为仲裁节点

提示上述报错,说明需要删除从节点的数据

再尝试把controller2加入s1集群

为了满足副本集内部选举算法的条件,还要添加一个仲裁节点

三个节点都ok了

3.4 Mariadb HA(按指定节点配置)

Mariadb 简介

Galera 本质是一个wsrep 提供者(provider),运行依赖于wsrep 的API 接口。Wsrep API
定义了一系列应用回调和复制调用库,来实现事务数据库同步写集(writeset)复制以及相似应用。
目的在于从应用细节上实现抽象的,隔离的复制。虽然这个接口的主要目标是基于认证的多主复
制,但同样适用于异步和同步的主从复制。

安装rsync

创建数据库的账号密码(只需要在controller1上配置,slave节点不需要)

编辑文件(controller1和controller2上需要配置,controller3作为仲裁节点不需要配置)

在controller2上进行如下配置:

安装rsync

重启mariadb报错

有多少跟数据库有关的openstack服务全删除

看一下log

把controller2上的数据全删除,再从controller1上拷贝

controller3的配置

garbd是仲裁服务

可以看到集群的cluster size是3了

最后一步,在controller1上改回这样的配置

3.5 Keepalived(三个controller都安装)

检查keepalived是否安装

关闭selinux

更改配置
为了防止虚拟IP乱飘,controller之间的priority可以设置为200,150,100

创建脚本

自启动配置

3.6 HAproxy(三个controller都安装)

安装包

把keystone的数据库的IP地址全部换掉,换成haproxy的虚拟IP,可以使用navicat图形化界面

编辑文件

在/etc/hosts中加入虚拟IP

加入/etc/haproxy/haproxy.cfg末尾

可以看到haproxy在一台controller上是开启的

3.7 keystone

在/etc/keystone/keystone.conf中,将controller2,controller3上的密码改成与controller1一致的,端口号为haproxy的端口号

重启服务

更改keystonerc_admin文件,再source一下

查看端口号是否被占用

在vim /etc/haproxy/haproxy.cfg末尾加入下面配置

更改keystonerc_admin文件,改为虚拟端口5001,再source一下

注意点
当controller和haproxy在同一台机器上时,才有端口冲突问题,在上面改端口号的方法之外,还可以编辑下面文件,就可以解决端口冲突问题

3.8 glance

在vim /etc/haproxy/haproxy.cfg末尾加入下面配置

在每个controller的
/etc/glance/glance-api.conf进行更改

/etc/glance/glance-registry.conf进行更改

重启glance服务

重启keepalived服务

先启动程序在后台,可用于检查配置是否有问题

检查glance服务是否OK

3.9 nova

在vim /etc/haproxy/haproxy.cfg末尾加入下面配置

改为下面配置,做适当修改,可用wscp拷贝,再进行相应修改

在再每个节点上重启keepalived

3.10 neutron

在vim /etc/haproxy/haproxy.cfg末尾加入下面配置

在/etc/neutron/neutron.conf中修改

重启neutron服务

查看 neutron agent-list


3.11 cinder

配置cinder
编辑文件vi /etc/cinder/cinder.conf

在vim /etc/haproxy/haproxy.cfg末尾加入下面配置

重启服务

验证服务

3.12 ceilometer

更改ceilometer配置

重启ceilometer服务

在vim /etc/haproxy/haproxy.cfg末尾加入下面配置

  • 注意点:每次添加完/etc/haproxy/haproxy.cfg配置后都需要在各个controller上重启keepalived或者在active的haproxy节点上重启haproxy服务

    [api]

listen dashboard
bind controller:80
balance source
option httpchk
option tcplog
server controller1 controller1:80 check inter 10s
server controller2 controller2:80 check inter 10s
server controller3 controller3:80 check inter 10s

http://192.168.53.58:8080/haproxy_stats

http://192.168.53.24/dashboard

作者简介:蒋暕青@上海宽带技术及应用工程研究中心:SDN技术实践者,大四北上思博伦实习半年,现工作地点上海


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/17961.html
分享到:
相关文章
条评论

登录后才可以评论

蒋暕青 发表于16-10-17
1