openstack HA--1(rabbitMQ cluster)
2014-06-19 11:27
357 查看
主要参考了openstack官方HA的文档
http://docs.openstack.org/high-availability-guide/content/index.html
服务器2台
在1台服务器上安装RDO 另一台安装centos6.5
首先采用active/active模式
安装rabbitMQ
安装epel源
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm 参考http://www.rabbitmq.com/install-rpm.html
安装erlang yum install erlang
下载rabbitMQ
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.2/rabbitmq-server-3.3.2-1.noarch.rpm 安装rabbitmq
rpm --importhttp://www.rabbitmq.com/rabbitmq-signing-key-public.asc
yum install rabbitmq-server-3.3.2-1.noarch.rpm
节点1:192.168.1.83 HAtest1
节点2:192.168.1.84 HAtest2
修改/etc/hosts文件,加入节点描述
测试开启rabbitmq
或者rabbitmq-server start 执行完这个,好像不会退出,使用ctrl+z退出
rdo默认采用qpid,已经安装qpid可能会提示5672端口被占用无法开启,把qpid关闭就好了
关闭qpid开机启动 打开rabbitmq开机启动
使用 -detached 参数运行各节点
将node2 与 node1 组成集群:
如果要使用内存节点,则可以使用
node2 #rabbitmqctl join_cluster --ram rabbit@node1 加入集群
遇到
Error:mnesia_unexpectedly_running
需要stop_app 修改完后再start
更多命令可以直接help查询
设置镜像队列策略
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。
到此,RabbitMQ 高可用集群就已经搭建好了,下面要配置openstack参数。
首先是对rabbitmq的配置,删除默认用户
然后新建用户
配置openstack
参考文档
http://docs.openstack.org/trunk/config-reference/content/configuring-rpc.html
修改每个组件的配置文件
为了保证不出意外,先把qpid相关的全部注释掉(后面发现不注释好像也不会有问题)
配置完成后,重启所有服务
openstack-servicerestart
结果重启完后认证失败,想到是数据库的问题 果然使用默认的用户名密码数据库访问不了 应该是设置了hosts的问题(未验证)
解决办法是先修改个组件mysql的用户名为root
重启各组件 正常
验证rabbitmq集群在openstack是否起到作用
在节点1关闭rabbitmq
虚拟机创建成功
再关闭节点2 rabbitmq
虚拟机无法创建
说明rabbitmq cluster起到了作用
开启任意节点的rabbitmq后,虚拟机成功创建。
还有加入采用haproxy的方法(未验证)
参考文档:http://openstack.redhat.com/RabbitMQ
http://docwiki.cisco.com/wiki/OpenStack_Havana_Release:_High-Availability_Manual_Deployment_Guide#Load_Balancer_Node_Installation
http://docs.openstack.org/high-availability-guide/content/index.html
服务器2台
在1台服务器上安装RDO 另一台安装centos6.5
首先采用active/active模式
安装rabbitMQ
安装epel源
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm 参考http://www.rabbitmq.com/install-rpm.html
安装erlang yum install erlang
下载rabbitMQ
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.2/rabbitmq-server-3.3.2-1.noarch.rpm 安装rabbitmq
rpm --importhttp://www.rabbitmq.com/rabbitmq-signing-key-public.asc
yum install rabbitmq-server-3.3.2-1.noarch.rpm
节点1:192.168.1.83 HAtest1
节点2:192.168.1.84 HAtest2
修改/etc/hosts文件,加入节点描述
192.168.1.83 HAtest1 192.168.1.84 HAtest2
测试开启rabbitmq
service rabbitmq-server start
或者rabbitmq-server start 执行完这个,好像不会退出,使用ctrl+z退出
rdo默认采用qpid,已经安装qpid可能会提示5672端口被占用无法开启,把qpid关闭就好了
关闭qpid开机启动 打开rabbitmq开机启动
chkconfig qpidd off chkconfig rabbitmq-server on
拷贝erlang cookie到各个节点
scp/var/lib/rabbitmq/.erlang.cookie root@HAtest2:/var/lib/rabbitmq/.erlang.cookie<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
使用 -detached 参数运行各节点
# rabbitmqctl stop # rabbitmq-server -detached |
将node2 与 node1 组成集群:
[root@HAtest2yum.repos.d]# rabbitmqctl stop Stoppingand halting node rabbit@HAtest2 ... ...done. [root@HAtest2yum.repos.d]# rabbitmq-server -detached Warning:PID file not written; -detached was passed. [root@HAtest2yum.repos.d]# rabbitmqctl stop_app Stoppingnode rabbit@HAtest2 ... ...done. [root@HAtest2yum.repos.d]# rabbitmqctl join_cluster rabbit@HAtest1 Clusteringnode rabbit@HAtest2 with rabbit@HAtest1 ... ...done. [root@HAtest2yum.repos.d]# rabbitmqctl start_app Startingnode rabbit@HAtest2 ... ...done.
如果要使用内存节点,则可以使用
node2 #rabbitmqctl join_cluster --ram rabbit@node1 加入集群
遇到
Error:mnesia_unexpectedly_running
需要stop_app 修改完后再start
更多命令可以直接help查询
设置镜像队列策略
rabbitmqctl set_policy HA '^(?!amq\.).*' '{"ha-mode": "all"}' |
到此,RabbitMQ 高可用集群就已经搭建好了,下面要配置openstack参数。
首先是对rabbitmq的配置,删除默认用户
rabbitmqctl delete_user guest
然后新建用户
<pre name="code" class="html">rabbitmqctl add_user openstack_rabbit_useropenstack_rabbit_password rabbitmqctl set_permissions -p / openstack_rabbit_user".*" ".*" ".*" rabbitmqctl list_users rabbitmqctl list_user_permissions openstack_rabbit_user
配置openstack
参考文档
http://docs.openstack.org/trunk/config-reference/content/configuring-rpc.html
修改每个组件的配置文件
为了保证不出意外,先把qpid相关的全部注释掉(后面发现不注释好像也不会有问题)
nova.conf rpc_backend=nova.openstack.common.rpc.impl_kombu rabbit_ha_queues=True rabbit_hosts=HAtest1:5672,HAtest2:5672 rabbit_port=5672 rabbit_retry_interval=1 rabbit_retry_backoff=2 rabbit_max_retries=0 rabbit_durable_queues=false rabbit_userid=mytest rabbit_password=mytest neutron.conf rpc_backend=neutron.openstack.common.rpc.impl_kombu rabbit_userid=mytest rabbit_password=mytest rabbit_ha_queues=True rabbit_hosts=HAtest1:5672,HAtest2:5672
cinder.conf rpc_backend=cinder.openstack.common.rpc.impl_kombu rabbit_ha_queues=True rabbit_hosts=HAtest1:5672,HAtest2:5672 rabbit_port=5672 rabbit_retry_interval=1 rabbit_retry_backoff=2 rabbit_max_retries=0 rabbit_durable_queues=false rabbit_userid=mytest rabbit_password=mytest
ceilometer.conf rpc_backend=ceilometer.openstack.common.rpc.impl_kombu rabbit_ha_queues=True rabbit_hosts=HAtest1:5672,HAtest2:5672 rabbit_port=5672 rabbit_retry_interval=1 rabbit_retry_backoff=2 rabbit_max_retries=0 rabbit_durable_queues=false rabbit_userid=mytest rabbit_password=mytest glance-api.conf notifier_strategy=rabbit
glance-api.conf rabbit_ha_queues=True rabbit_hosts=HAtest1:5672,HAtest2:5672 rabbit_port=5672 rabbit_retry_interval=1 rabbit_retry_backoff=2 rabbit_max_retries=0 rabbit_durable_queues=false rabbit_userid=mytest rabbit_password=mytest
配置完成后,重启所有服务
openstack-servicerestart
结果重启完后认证失败,想到是数据库的问题 果然使用默认的用户名密码数据库访问不了 应该是设置了hosts的问题(未验证)
解决办法是先修改个组件mysql的用户名为root
重启各组件 正常
验证rabbitmq集群在openstack是否起到作用
在节点1关闭rabbitmq
虚拟机创建成功
再关闭节点2 rabbitmq
虚拟机无法创建
说明rabbitmq cluster起到了作用
开启任意节点的rabbitmq后,虚拟机成功创建。
还有加入采用haproxy的方法(未验证)
参考文档:http://openstack.redhat.com/RabbitMQ
http://docwiki.cisco.com/wiki/OpenStack_Havana_Release:_High-Availability_Manual_Deployment_Guide#Load_Balancer_Node_Installation
相关文章推荐
- 理解 OpenStack 高可用(HA)(5):RabbitMQ HA
- openstack rabbitmq cluster
- 理解 OpenStack 高可用(HA)(5):RabbitMQ HA
- 理解 OpenStack 高可用(HA)(5):RabbitMQ HA
- small-mid-scale openstack cluster HA
- RabbitMQ概念及环境搭建 -- RabbitMQ cluster
- OpenStack中RabbitMQ RPC 调用研究
- OpenStack部署之支撑性服务(mariadb/rabbitmq/memcache)
- Openstack中RabbitMQ RPC代码分析
- RabbitMQ cluster
- RabbitMQ概念及环境搭建(三)RabbitMQ cluster
- RabbitMQ Cluster
- OpenStack中RabbitMQ RPC 调用研究
- rabbitmq HA
- openstack安装rabbitmq时查看rabbitmq插件出现failed to connect rabbitmq@controller
- How To Cluster Rabbit-MQ--reference
- Rabbitmq for openstack
- How To Cluster Rabbit-MQ
- openstack HA--1(rabbitMQ cluster)
- Linux下面安装RabbitMQ Cluster