pacemaker+haproxy

server2 172.25.5.2 httpd
server3 172.25.5.3 httpd
server5 172.25.5.5 haproxy corosync pacemaker crmsh
server6 172.25.5.6 haproxy corosync pacemaker crmsh

原理及简介:

HAProxy 提供高可用 负载均衡 以及基于 TCP 和 HTTP 应用的代理
是轻量级的 擅长处理并发
但与nginx不同的是 Haproxy 并不是 Http服务器。很多带反向代理均衡负载的产品,如nginx,apacheproxy,都清一色是 WEB 服务器。简单说,就是他们能自个儿提供静态(html,jpg,gif..)或动态(PHP,cgi..)文件的传输以及处理。而Haproxy仅仅,而且专门是一款的用于均衡负载的应用代理。其自身并不能提供http服务
它自带健康检测,1.3版本后还自带一些简单的规则匹配

动静分离,读写分离主要使用了acl函数,haproxy支持acl函数

配置haproxy:

yum install haproxy -y
版本有点低,凑合着用ovo

编辑配置文件:

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  main *:80
    acl url_static       path_beg       -i /static /images /javascript /stylesheets
    acl url_static       path_end       -i .jpg .gif .png .css .js

    use_backend static          if url_static
    default_backend             app

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend static
    balance     roundrobin
    server      static 127.0.0.1:80 check

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
    balance     roundrobin
    server  app1 172.25.5.2:80 check
    server  app2 172.25.5.3:80 check

两台httpd服务器:server2,srver3
这里写图片描述

测试haproxy的轮询:server5,和server6
这里写图片描述

haproxy能正常工作后,给server6也安装,scp配置文件,

开始配置corosync:

安装:

yum install crmsh-1.2.6-0.rc2.2.1.x86_64.rpm pssh-2.3.1-2.1.x86_64.rpm 
yum install pacemaker corosync -y

server5 ,server6配置:
corosync配置:(配置pacemaker在corosync启动时自动启动)

# Please read the corosync.conf.5 manual page
compatibility: whitetank

totem {
        version: 2
        secauth: off
        threads: 0
        interface {
                ringnumber: 0
                bindnetaddr: 172.25.5.0
                mcastaddr: 226.94.1.1
                mcastport: 5405
                ttl: 1
        }
}

logging {
        fileline: off
        to_stderr: no
        to_logfile: yes
        to_syslog: yes
        logfile: /var/log/cluster/corosync.log
        debug: off
        timestamp: on
        logger_subsys {
                subsys: AMF
                debug: off
        }
}
amf {
        mode: disabled
}
#让pacemakercorosync中以插件方式启动:
service{
        ver:0
        name:pacemaker
}
#运行身份
aisxec{
        user:root
        group:root
}

打开corosync后pacemaker自动启动:
这里写图片描述

配置corosync的key,并scp到server6,保证两台的key一致:
这里写图片描述

key创建是需要敲击键盘,
然后scp到另一台服务器。

配置crm:

禁用禁用stonith设备(如果没有stonith设备,最好禁用):
不禁用会出现问题。

configure
crm(live)configure# property stonith-enabled=false
crm(live)configure# commit

配置vip:
这里写图片描述

加入资源haproxy:

crm(live)configure# primitive haproxy lsb:haproxy op monitor interval=30s
crm(live)configure# commit

两个资源不再一台服务器工作:
这里写图片描述

建立web组:

crm(live)configure# group web haproxy vip 
crm(live)configure# commit 
crm(live)configure# cd
crm(live)# status
Last updated: Fri Aug  3 17:02:18 2018
Last change: Fri Aug  3 17:02:09 2018 via cibadmin on server6
Stack: classic openais (with plugin)
Current DC: server5 - partition with quorum
Version: 1.1.10-14.el6-368c726
2 Nodes configured, 2 expected votes
2 Resources configured


Online: [ server5 server6 ]

 Resource Group: web
     haproxy    (lsb:haproxy):  Started server6 
     vip    (ocf::heartbeat:IPaddr):    Started server6
crm(live)# quit

这里写图片描述

hosts:
这里写图片描述

服务已经正常开启:

这里写图片描述

注意:
如果集群里只有两个节点时:
将其中一个节点停止,资源就会消失而不是转移到另一个节点上,因为当前是两节点的集群,任何一个节点损坏,其它节点就没办法进行投票,status 中就会变成 WITHOUT quorum
所以我用了三个节点,当其中一个节点停止时,其他两个还能进行投票
当只剩下一个节点时,整个集群就会崩溃,上面的资源全部停掉,我们可以通过忽略投票的方式解决这个问题:

[root@server5 haproxy]# crm
crm(live)# configure 
crm(live)configure# property no-quorum-policy=ignore
crm(live)configure# commit 
crm(live)configure# quit
bye

这里写图片描述

取消ip后有会自动生成,
这里写图片描述

关掉haproxy后又会自动重启,

[root@server5 haproxy]# /etc/init.d/haproxy stop
Stopping haproxy:                                          [  OK  ]
[root@server5 haproxy]# /etc/init.d/haproxy status
haproxy is stopped
[root@server5 haproxy]# /etc/init.d/haproxy status
haproxy is stopped
[root@server5 haproxy]# /etc/init.d/haproxy status
haproxy is stopped
[root@server5 haproxy]# /etc/init.d/haproxy status
haproxy (pid  12220) is running...
[root@server5 haproxy]# /etc/init.d/haproxy status
haproxy (pid  12220) is running...
[root@server5 haproxy]# /etc/init.d/haproxy status
haproxy (pid  12220) is running...

这里写图片描述

有个问题是服务会自动重启,但不会调转到另一台服务器,还没整好,正在调式中…

还没添加fence。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值