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






 

posted @ 2018-03-21 14:42  小⑦  阅读(670)  评论(0编辑  收藏  举报