openstack pike + ceph +高可用集成 -- http 负载均衡 (三)
## 高可用 负载均衡 ##Http + Haproxy + Corosync + Pacemaker + Pcs ######################## #所有控制节点 #安装Pacemake Corosync yum install corosync pacemaker pcs fence-agents resource-agents -y yum install haproxy httpd -y #启动pcsd systemctl enable pcsd.service systemctl start pcsd.service #修改群集用户hacluster密码 echo centos | passwd --stdin hacluster #http设置 cp /etc/httpd/conf/httpd.conf{,.bak} sed -i 's#^Listen 80#Listen 8080#' /etc/httpd/conf/httpd.conf echo "ServerName `hostname`:8080">>/etc/httpd/conf/httpd.conf tail -1 /etc/httpd/conf/httpd.conf systemctl start httpd.service netstat -antp|grep httpd echo `hostname`>/var/www/html/index.html #测试主页 ######################## #其中一节点执行 controller1 #创建、启动my_cluster集群 pcs cluster auth -u hacluster -p centos controller1 controller2 controller3 pcs cluster setup --start --name my_cluster controller1 controller2 controller3 pcs cluster enable --all #集群自启动 #pcs cluster start --all # 启动集群 pcs cluster status #集群状态 #检验 corosync-cfgtool -s #验证corosync corosync-cmapctl| grep members #查看成员 pcs status corosync #查看corosync状态 crm_verify -L -V #检查配置 pcs property set stonith-enabled=false #禁用STONITH pcs property set no-quorum-policy=ignore #无仲裁时,选择忽略 #创建 VIP pcs resource create vip ocf:heartbeat:IPaddr2 ip=192.168.0.71 cidr_netmask=24 op monitor interval=28s ############haproxy配置,所有节点执行 #允许没VIP时启动 echo "net.ipv4.ip_nonlocal_bind = 1" >>/etc/sysctl.conf sysctl -p #haproxy日志 echo ' $ModLoad imudp $UDPServerRun 514 $template Haproxy,"%rawmsg% \n" local0.=info -/var/log/haproxy.log;Haproxy local0.notice -/var/log/haproxy-status.log;Haproxy '>/etc/rsyslog.d/haproxy.conf systemctl status rsyslog.service systemctl restart rsyslog.service cp /etc/haproxy/haproxy.cfg{,.bak} #默认配置 echo ' ###########全局配置######### global log 127.0.0.1 local0 log 127.0.0.1 local1 notice daemon nbproc 1 #进程数量 maxconn 4096 #最大连接数 user haproxy #运行用户 group haproxy #运行组 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid ########默认配置############ defaults log global mode http #默认模式{ tcp|http|health } option httplog #日志类别,采用httplog option dontlognull #不记录健康检查日志信息 retries 2 #2次连接失败不可用 option forwardfor #后端服务获得真实ip option httpclose #请求完毕后主动关闭http通道 option abortonclose #服务器负载很高,自动结束比较久的链接 maxconn 4096 #最大连接数 timeout connect 5m #连接超时 timeout client 1m #客户端超时 timeout server 31m #服务器超时 timeout check 10s #心跳检测超时 balance roundrobin #负载均衡方式,轮询 ########统计页面配置######## listen stats bind 0.0.0.0:1080 mode http option httplog log 127.0.0.1 local0 err maxconn 10 #最大连接数 stats refresh 30s stats uri /admin #状态页面 http//ip:1080/admin访问 stats realm Haproxy\ Statistics stats auth admin:admin #用户和密码:admin stats hide-version #隐藏版本信息 stats admin if TRUE #设置手工启动/禁用 '>/etc/haproxy/haproxy.cfg #haproxy web代理配置 echo ' ########WEB############ listen dashboard_cluster bind controller:80 balance roundrobin option tcpka option httpchk option tcplog server controller1 controller1:8080 check port 8080 inter 2000 rise 2 fall 5 server controller2 controller2:8080 check port 8080 inter 2000 rise 2 fall 5 server controller3 controller3:8080 check port 8080 inter 2000 rise 2 fall 5 '>>/etc/haproxy/haproxy.cfg #重启haproxy systemctl restart haproxy.service systemctl status haproxy.service #systemctl disable haproxy.service
##配置 ceph dashboardUI
#启用dashboard (所有controller节点执行) ceph mgr module enable dashboard # 设置dashboard的ip和端口 # ceph config-key put mgr/dashboard/server_addr 192.168.0.71 # ceph config-key put mgr/dashboard/server_port 7000 # systemctl restart ceph-mgr@controller1 (不同节点,这里的服务名称不同,注意。如:systemctl restart ceph-mgr@controller2 ...)
#登录状态页面 http//ip:1080/admin 查看集群监控页面
#登录http//192.168.0.71:7000 查看ceph界面
##ceph界面排错
#如果配置完成之后无法访问
#1、查看 vip ip地址在哪个节点上面 命令:ip a
#2、ceph -s 查看 mgr服务 哪个节点是 active
#3、关闭 除vip所在节点的其它节点的mgr服务 让 vip所在节点的 mgr服务为 active就可以访问了
#vip 所在节点 mgr服务变为 active后,再启动其它节点的 mgr服务 变为 standbys状态
#关闭 mgr服务命令:systemctl stop ceph-mgr@controller2
#启动 mgr服务命令:systemctl start ceph-mgr@controller2