B03-openstack高可用-rabbitmq集群+memcache集群
1:下载rabbitmq的相关软件包(所有节点)
[root@controller01 ~]# yum install erlang rabbitmq-server -y
[root@controller01 ~]# systemctl enable rabbitmq-server.service
2:任选1个控制节点首先启动rabbitmq服务,这里选择controller01节点
[root@controller01 ~]# systemctl start rabbitmq-server.service
[root@controller01 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@controller01
[{nodes,[{disc,[rabbit@controller01]}]},
{running_nodes,[rabbit@controller01]},
{cluster_name,<<"rabbit@controller01">>},
{partitions,[]},
{alarms,[{rabbit@controller01,[]}]}]
3:分发.erlang.cookie
[root@controller01 ~]# scp /var/lib/rabbitmq/.erlang.cookie root@10.100.214.203:/var/lib/rabbitmq/
[root@controller01 ~]# scp /var/lib/rabbitmq/.erlang.cookie root@10.100.214.202:/var/lib/rabbitmq/
4:修改controller02/03节点.erlang.cookie文件的用户/组,以controller02节点为例
[root@controller03 ~]# chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
[root@controller02 ~]# chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
# 注意修改全部控制节点.erlang.cookie文件的权限,默认即400权限,可不修改 [root@controller02 ~]# ll /var/lib/rabbitmq/.erlang.cookie
5:启动controller02/03节点的rabbitmq服务
[root@controller02 ~]# systemctl start rabbitmq-server
[root@controller03 ~]# systemctl start rabbitmq-server
6:构建集群,controller02/03节点以ram节点的形式加入集群
[root@controller02 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@controller02
[root@controller02 ~]# rabbitmqctl join_cluster --ram rabbit@controller01
Clustering node rabbit@controller02 with rabbit@controller01
[root@controller02 ~]# rabbitmqctl start_app
Starting node rabbit@controller02
[root@controller03 ~]# rabbitmqctl stop_app
Stopping rabbit application on node rabbit@controller03
[root@controller03 ~]# rabbitmqctl join_cluster --ram rabbit@controller01
Clustering node rabbit@controller03 with rabbit@controller01
[root@controller03 ~]# rabbitmqctl start_app
Starting node rabbit@controller03
7:任意节点可验证集群状态
[root@controller01 ~]# rabbitmqctl cluster_status
Cluster status of node rabbit@controller01
[{nodes,[{disc,[rabbit@controller01]},
{ram,[rabbit@controller03,rabbit@controller02]}]},
{running_nodes,[rabbit@controller03,rabbit@controller02,rabbit@controller01]},
{cluster_name,<<"rabbit@controller01">>},
{partitions,[]},
{alarms,[{rabbit@controller03,[]},
{rabbit@controller02,[]},
{rabbit@controller01,[]}]}]
8:创建rabbitmq账号
[root@controller01 ~]# rabbitmqctl add_user openstack huayun
Creating user "openstack"
9:设置新建账号的状态
[root@controller01 ~]# rabbitmqctl set_user_tags openstack administrator
Setting tags for user "openstack" to [administrator]
10:设置新建账号的权限
[root@controller01 ~]# rabbitmqctl set_permissions -p "/" openstack ".*" ".*" ".*"
Setting permissions for user "openstack" in vhost "/"
11:查看账号
[root@controller01 ~]# rabbitmqctl list_users
Listing users
openstack [administrator]
guest [administrator]
12:设置镜像队列ha
[root@controller01 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
Setting policy "ha-all" for pattern "^" to "{\"ha-mode\":\"all\"}" with priority "0"
13:查看镜像队列策略
[root@controller01 ~]# rabbitmqctl list_policies
Listing policies
/ ha-all all ^ {"ha-mode":"all"} 0
14:安装web管理插件
# 在全部控制节点安装web管理插件,以controller01节点为例
[root@controller01 ~]# rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
amqp_client
cowlib
cowboy
rabbitmq_web_dispatch
rabbitmq_management_agent
rabbitmq_management
Applying plugin configuration to rabbit@controller01... started 6 plugins.
访问任意节点,如:http://10.100.214.201:15672/
memcache集群:
Memcached是无状态的,各控制节点独立部署,openstack各服务模块统一调用多个控制节点的memcached服务即可。
1:安装memcache的软件包(三个节点安装)
[root@controller01 ~]# yum install memcached python-memcached -y
2: 设置memcached
[root@controller01 ~]# sed -i 's|127.0.0.1,::1|0.0.0.0|g' /etc/sysconfig/memcached
[root@controller01 ~]# cat /etc/sysconfig/memcached
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 0.0.0.0"
3:开机启动
[root@controller01 ~]# systemctl start memcached
[root@controller01 ~]# systemctl enable memcached