利用PaceMaker+Qpid(持久化消息)+NFS的Qpid高可用配置
环境说明:
Qpid-vip192.168.11.34
Qpid-server01192.168.11.22
Qpid-server02192.168.11.23
软件版本:
qpid-cpp-server-0.18
pacemaker-1.1.10
关于pacemaker详细配置请参见<OpenStack组件高可用手册>,这里只做简单配置介绍。
Qpid高可用
说明:pacemaker+qpid的方式存在消息丢失的可能,主备机需要配置Qpid消息持久化到本地并且使用NFS(或这其他共享形式)共享/var/lib/qpidd目录,但当主备服务切换过程中消息服务是不工作的,存在消息丢失的可能性。
以下操作在主备节点均操作
安装Qpid服务
yum install -y qpid-tools qpid-cpp-clientpython-qpid qpid-qmf python-qpid-qmf qpid-cpp-server qpid-cpp-server-store
关闭Qpid服务自启动操作,此目的是为了让pacemaker接管Qpid服务的启动关闭。
chkconfig qpidd off
增加持久化qpid消息参数
vim /etc/qpidd.conf
#增加如下参数
amqp_durable_queues=true
将主机的qpid配置复制到备机
scp -r /etc/qpid/ 192.168.11.23:/etc/
scp /etc/qpidd.conf 192.168.11.23:/etc/
本方案中Qpid在主备节点配置了消息持久化,因此需要共享/var/lib/qpidd/目录
mount 192.168.11.21:/nfs/qpid /var/lib/qpidd
在任意一台节点上配置Qpid crm 脚本
crm configure
primitive p_vip_qpidd ocf:heartbeat:IPaddr2 \
paramsip="192.168.11.34" cidr_netmask="24" \
opmonitor interval="30s" timeout="30s"
commit
exit
crm configure
primitive p_qpidd lsb:qpidd
op monitor interval="30s"timeout="30s"
group g_qpidd p_vip_qpidd p_qpidd
colocation col_p_qpidd_on_vip inf: p_qpiddp_vip_qpidd
order ord_vip_before_p_qpidd inf: p_vip_qpiddp_qpidd
commit
exit
#################
# 开启资源 #
#################
crm resource start g_qpidd
#################
# 停止资源 #
#################
crm resource stop g_qpidd
#################
# 删除资源 #
#################
crm resource cleanup g_qpidd
crm resource delete g_qpidd
修改OpenStack配置中的qpid IP地址为VIP并重启服务,确保服务正常
/etc/glance/glance-api.conf
/etc/glance/glance-registry.conf
/etc/cinder/cinder.conf
/etc/nova/nova.conf
/etc/neutron/neutron.conf
/etc/ceilometer/ceilometer.conf