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
通过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