heartbeat+lidirectord+keepalived

heartbeat的作用
通过HeartBeat,可以将资源(IP以及程序服务等资源)从一台已经故障的计算机快速转移到另一台正常运转的机器上继续提供服务,一般称之为高可用的服务。
heartberat的工作原理
通过修改配置文件,指定哪一台Heartbeat服务器作为主服务器,则另一台将自动成为备份服务器。然后在指定备份服务器上配置Heartbeat守护进程来监听来自主服务器的心跳。如果备份服务器在指定时间内未监听到来自主服务器的心跳,就会启动故障转移程序,并取得主服务器上的相关资源服务所有权,接替主服务器继续不间断的提供服务,从而达到资源服务高可用性的目的

以上描述的是Heartbeat主备的模式,Heartbeat还支持主主模式,即两台服务器互为主备,这时它们之间会相互发送报文来告诉对方自己当前的状态,如果在指定的时间内为收到对方发送的心跳报文,那么久认为对方失效或者宕机了,这时就会启动自身的资源接管模块来接管运行在对方主机上的资源或者服务,继续对用户提供服务。正常情况下,可以较好的实现主机故障后,业务仍不间断的持续运行。

lftp下载
heartbeat-3.0.4-2.el6.x86_64.rpm        heartbeat-libs-3.0.4-2.el6.x86_64.rpm
heartbeat-devel-3.0.4-2.el6.x86_64.rpm  ldirectord-3.9.5-3.1.x86_64.rpm
yum install hearbeat-* -y
cd /usr/share/doc/heartbeat-3.0.4/
 cp ha.cf authkeys haresources /etc/ha.d/
 cd /etc/ha.d
在vm1上
vim ha.cf
 48 keepalive 2
 61 warntime 10
71 initdead 60
 76 udpport 716
91 bcast   eth0  
211 node    server1
212 node    server4
220 ping 172.25.22.250
253 respawn hacluster /usr/lib64/heartbeat/ipfail
259 apiauth ipfail gid=haclient uid=hacluster
vim haresources
149 server1 IPaddr::172.25.22.100/24/eth0 httpd
vim authkeys
23 auth 1
24 1 crc
scp ha.cf haresource authkeys server4:/etc/ha.d
在vm1,vm4上/etc/init.d/hearbeat start

在作ipvsadm是两边/etc/init.d/hearbeat stop
打开vm2,vm3
在vm1上
ipvsadm -A -t 172.25.22.100:80 -s rr
ip addr add 172.25.22.100/24 dev eth0
ip addr
ipvsadm -l
ipvsadm -a -t 172.25.22.100:80 -r 172.25.22.2:80 -g
ipvsadm -a -t 172.25.22.100:80 -r 172.25.22.3:80 -g
/etc/init.d/ipvsadm save
在vm2上
yum install -y arptables_jf
ip addr add 172.25.22.100/32 dev eth0
arptables -A IN -d 172.25.22.100 -j DROP
arptables -A OUT -s 172.25.22.100 -j mangle --mangle-ip-s 172.25.22.2
/etc/init.d/arptables_jf save
arptables -F
vim /etc/sysconfig/arptables
/etc/init.d/arptables_jf start
在vm3上
yum install -y arptables_jf
ip addr add 172.25.22.100/32 dev eth0
arptables -A IN -d 172.25.22.100 -j DROP
arptables -A OUT -s 172.25.22.100 -j mangle --mangle-ip-s 172.25.22.3
/etc/init.d/arptables_jf save #进行策略保存
arptables -F  ##刷掉策略
vim /etc/sysconfig/arptables  
/etc/init.d/arptables_jf start  ##策略恢复
测试:curl 172.25.22.100

独立的lvs并不具备对后端服务器执行健康检查的机制,这时通常需要配合第三方的工具来一起使用。而ldirectord的作用就是用来监测Real Server,当Real Server失效时,把它从虚拟服务器列表中删除,恢复时重新添加到列表
在vm1上
vim ldirectord.cf
virtual=172.25.22.100:80
        real=172.25.22.2:80 gate
        real=172.25.22.3:80 gate
        fallback=127.0.0.1:80 gate
        service=http
        scheduler=rr
        #persistent=600
        #netmask=255.255.255.255
        protocol=tcp
        checktype=negotiate
        checkport=80
        request="index.html"
ipvsadm -l
ipvsadm -C
/etc/init.d/ldirectord start

ip addr del 172.25.22.100/24 dev eth0
vim /haresources
149 server1 IPaddr::172.25.22.100/24/eth0 httpd lidirectord
scp haresources ldirectord.cf server4:/etc/ha.d
打开heartbeat进行测试

keepalived
keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障
keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master,可以用来保证路由器的高可用。
keepalived主要有三个模块,分别是core、check和vrrp。 core:是keepalived的核心,负责主进程的启动和维护,全局配置文件的加载解析等 check: 负责healthchecker(健康检查),包括了各种健康检查方式,以及对应的配置的解析包括LVS的配置解析;可基于脚本检查对IPVS后端服务器健康状况进行检查。 vrrp:VRRPD子进程,VRRPD子进程就是来实现VRRP协议的
在vm1上
lfpt下载keepalived-1.2.20.tar.gz
tar zxf keepalived-1.2.20.tar.gz
yum install gcc openssl-devel -y
cd keepalived-1.2.20
./configure --prefix=/usr/local/keepalived --with-init=SYSV
make && make install
cd /usr/local
scp -r keepalived/ server4:/usr/local
ln -s /usr/local/keepalived/sbin/keepalived /sbin/
ln -s /usr/local/leepalived/etc/keepalived /etc/
ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
chmod +x keepalived
cd /etc/keepalined/
vim keepalived.conf
 global_defs {
  4    notification_email {
  5       root@localhost
  6    }
  7    notification_email_from keepalived@server1
  8    smtp_server 127.0.0.1
  9    smtp_connect_timeout 30
 10    router_id LVS_DEVEL
 11    vrrp_skip_check_adv_addr
 12    vrrp_strict
 13 }
 14
 15 vrrp_instance VI_1 {
 16     state MASTER
 17     interface eth0
 18     virtual_router_id 22
 19     priority 100
 20     advert_int 1
 21     authentication {
 22         auth_type PASS
 23         auth_pass 1111
 24     }
 25     virtual_ipaddress {
 26         172.25.22.100
 27     }
 28 }
 29
 30 virtual_server 172.25.22.100 80 {
 31     delay_loop 6
 32     lb_algo rr
 33     lb_kind DR
 34    #persistence_timeout 50
 35     protocol TCP
 36
 37     real_server 172.25.22.2 80 {
 38         weight 1
 39         TCP_CHECK {
 40             connect_timeout 3
 41             nb_get_retry 3
 42             delay_before_retry 3
 43         }
 44     }
 45     real_server 172.25.22.3 80 {
 46         weight 1
 47         TCP_CHECK {
 48             connect_timeout 3
 49             nb_get_retry 3
 50             delay_before_retry 3
 51         }
 52 }
 53 }


/etc/init.d/keepalived start

scp keepalived.conf 172.25.22.4:/etc/keepalived
建立和vm1上一样的软链接
vim keepalived.conf
改server1为server4,status MASTER 为BACKUP
安装keepalived-1.3.5,每次切换需要刷掉iptables规则
iptables -F

chkconfig heartbeat off

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值