keepalived+LVS-DR集群搭建

一、    keepalived概述
    keepalived 是一个类似于 layer3, 4 & 5 交换机制的软件,也就是我们平时说的第 3 层、第 4 层和第 5层交换。 Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的web 服务器。
拓展:OSI七层
 
拓展:OSI七层相关协议

二、    keepalived工作原理

Layer3,4&5 工作在 IP/TCP 协议栈的 IP 层, TCP 层,及应用层,。
Layer3: Keepalived 使用 Layer3 的方式工作式时, Keepalived 会定期向服务器群中的服务器发送一个 ICMP 的数据包(既我们平时用的 Ping 程序) , 如果发现某台服务的 IP 地址没有激活,Keepalived 便报告这台服务器失效,并将它从服务器群中剔除,这种情况的典型例子是某台服务器被非法关机。 Layer3 的方式是以服务器的 IP 地址是否有效作为服务器工作正常与否的标准。
Layer4: 主要以 TCP 端口的状态来决定服务器工作正常与否。如 web server 的服务端口一般是80,如果 Keepalived 检测到 80 端口没有启动,则 Keepalived 将把这台服务器从服务器群中删除。
Layer5: Layer5 就是工作在具体的应用层了,比 Layer3,Layer4 要复杂一点,在网络上占用的带宽也要大一些。 Keepalived 将根据用户的设定检查服务器程序的运行是否正常,如果与用户的设定不相符,则 Keepalived 将把服务器从服务器群中剔除。

三、    keepalived的作用与构建
1)管理 VIP,VIP 会在 LVS 之间漂移
2)监控 LVS分发器
运行在主分发的 Keepalived 会以组播的形式向网络中宣告自己,即主分发器还活着,备用节点能收到。当备用节点,在一个时间单位中收不到组播,备用节点会认为主 LVS 挂了,开始接手主分发器工作,把 VIP 配给自己。

3)管理 RS
Keepalived 会每隔一个时间段去做一次类似于访问的操作如:
探针: elinks http://192.168.3.64 –dump
经典高可用web架构: LVS+keepalived+nginx+apache+php+eaccelerator(+nfs可选)
http://www.keepalived.org/
 
下载:http://www.keepalived.org/download.html

四、    搭建keepalived+lvs-dr集群
1、    实验环境

2、    拓扑图

3、    安装ipvsadm和keepalived
yum安装方法:

[root@xuegod120 ~]# yum -y install ipvsadm keepalived
[root@xuegod130 ~]# yum -y install ipvsadm keepalived

编译安装方法:
上传keepalived-1.2.16.tar.gz包到Linux主机


wget http://www.keepalived.org/software/keepalived-1.2.16.tar.gz            #直接在Linux主机上下载。

[root@xuegod120 ~]# tar xf keepalived-1.2.16.tar.gz 
[root@xuegod120 ~]# cd keepalived-1.2.16/
解决依赖
[root@xuegod120 keepalived-1.2.16]# yum -y install gcc openssl-devel libnfnetlink-devel
[root@xuegod120 keepalived-1.2.16]# ./configure --prefix=/usr/local/keepalived
Keepalived configuration
------------------------
Keepalived version       : 1.2.16
Compiler                 : gcc
Compiler flags           : -g -O2
Extra Lib                : -lssl -lcrypto -lcrypt 
Use IPVS Framework       : Yes
IPVS sync daemon support : Yes
IPVS use libnl           : No
fwmark socket support    : Yes
Use VRRP Framework       : Yes
Use VRRP VMAC            : Yes
SNMP support             : No
SHA1 support             : No
Use Debug flags          : No 
[root@xuegod120 keepalived-2.0.10]# make && make install

4、    扩展知识VRRP、HSRP
虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议。使用组播方式通信。
VRRP是一种路由容错协议,也可以叫做备份路由协议。一个局域网络内的所有主机都设置缺省路由(默认网关),当网内主机发出的目的地址不在本网段时,报文将被通过缺省路由发往外部路由器,从而实现了主机与外部网络的通信。当缺省路由器down掉(即端口关闭)之后,内部主机将无法与外部通信,如果路由器设置了VRRP时,那么这时,虚拟路由将启用备份路由器,从而实现全网通信。
工作流程如图:
 
HSRP:热备份路由器协议(HSRP)的设计目标是支持特定情况下 IP 流量失败转移不会引起混乱、并允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能维护路由器间的连通性。换句话说,当源主机不能动态知道第一跳路由器的 IP 地址时,HSRP 协议能够保护第一跳路由器不出故障,是CISCO的私有协议!该协议中含有多台路由器,对应一个HSRP组。该组中只有一个路由器承担转发用户流量的职责,这就是活动路由器。当活动路由器失效后,备份路由器将承担该职责,成为新的活动路由器。这就是热备份的原理。
HSRP和VRRP的区别:HSRP是cisco的专有协议.在Cisco的HSRP之后,internet工程任务小组(internet  engineering task force,IETF)也制定一种路由冗余协议:虚拟路由冗余协议(Virtual  Router  Redundancy  Protocol,VRRP),目前包括Csico在内的主流厂商均在其产品中支持VRRP协议!VRRP和HSRP也有很多不同。VRRP和HSRP 的一个主要的区别在安全方面:它允许参与VRRP组的设备间建立认证机制 。另一个主要区别 :VRRP中只有三种状态----初始状态(Initialize)、主状态(Master)、备份状态(Backup),而HSRP 有六种状态。其余在报文类型 、报文格式和通过TCP而非UDP发送的报文方面也有所不同

5、    了解keepalived的文件

[root@xuegod120 keepalived-1.2.16]# cd /usr/local/keepalived/  #源码编译路径
[root@xuegod120 keepalived]# ll
总用量 0
drwxr-xr-x 2 root root 21 11月 28 15:47 bin
drwxr-xr-x 5 root root 53 11月 28 15:47 etc
drwxr-xr-x 2 root root 24 11月 28 15:47 sbin
drwxr-xr-x 3 root root 17 11月 28 15:47 share 
#etc下有配置文件etc/keepalived/keepalived.conf

建立启动脚本
[root@xuegod120 keepalived]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ 

[root@xuegod120 keepalived]# grep "chkconfig" /usr/local/keepalived/etc/* -R
    #不知道脚本位置,搜索chkconfig字段的文件可以找到!
/usr/local/keepalived/etc/rc.d/init.d/keepalived:# chkconfig: - 21 79

[root@xuegod120 keepalived]# chmod +x /etc/init.d/keepalived

[root@xuegod120 keepalived]# ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/

[root@xuegod120 keepalived]# mkdir /etc/keepalived
[root@xuegod120 keepalived]# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
[root@xuegod120 keepalived]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

[root@xuegod120 keepalived]# vim /etc/sysconfig/keepalived
改:14  KEEPALIVED_OPTIONS="-D" 
为:14  KEEPALIVED_OPTIONS="-D -f /etc/keepalived/keepalived.conf
#修改指定 keepalived 要加载的配置文件,设置正确的服务启动参数
 [root@xuegod120 keepalived]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:45:f4:4c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.62/24 brd 192.168.1.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::aac4:2bc0:d52:a18a/64 scope link 
       valid_lft forever preferred_lft forever

6、    配置keepalived+LVS-DR集群
在这种模式下,虚拟 IP 在某时刻只能属于某一个节点,另一个节点作为备用节点存在。当主节点不可用时,备用节点接管虚拟 IP,提供正常服务。
配置参数: 
节点 xuegod120(主节点); 节点 xuegod130(备用节点) ;  
虚拟 IP 192.168.2.111对外提供服务的 IP。 要求默认情况下由节点 xuegod120提供服务,当节点 xuegod120 不可用时,由节点 xuegod130 提供服务(即虚拟 IP 漂移至节点 xuegod130)。
1)    主节点xuegod130配置

[root@xuegod120 ~]# cp /etc/keepalived/keepalived.conf{,.bak}
[root@xuegod120 ~]# >/etc/keepalived/keepalived.conf
[root@xuegod120 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
   notification_email {
     root@localhost                         #默认三个地址,修改可用地址
   }
   notification_email_from root@localhost
   smtp_server localhost
   smtp_connect_timeout 30
   router_id xuegod120                       #标识当前节点名字,两个节点的此项需要不相同。
}
#默认的配置文件中,使用第三方 smtp 服务器,但这在现实中几乎没有意义,发不出邮件,我们将其挃定为
 localhost, 我们也可以将通知信息的发送交给本地 sendmail 服务处理。

vrrp_instance apache {          #定义一个实例,一个集群就是一个实例。 默认VI_1 可以随意改。
    state MASTER        #指定 A 节点为主节点 备用节点上设置为 BACKUP 即可
    interface ens33         #绑定虚拟 IP 的网络接口
    virtual_router_id 51    #VRRP 组名,两个节点的设置必须一样,以指明各个节点属于同一 VRRP 组
    priority 100            #主节点的优先级(1-254 之间),备用节点必须比主节点优先级低
    advert_int 1             #组播信息发送间隔,两个节点设置必须一样
    authentication {         #设置验证信息,两个节点必须一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.111        #指定虚拟 IP, 两个节点设置必须一样
    }
}
virtual_server 192.168.0.111 80 {    #对虚拟IP63添加LVS相关内容
    delay_loop 6                    #Keepalived 多长时间监测一次 RS
    lb_algo rr                       #分发算法
    lb_kind DR                      #DR 模式    
    nat_mask 255.255.255.0
#  persistence_timeout 50  #同一 IP 50秒内的请求都发到同个real server ,这个会影响LVS的 rr 调度算法, 同一 IP 超过 50 秒后,再次访问,才会被转发到另一台 real server 上。 persistence 持久性的意思
    protocol TCP
    real_server 192.168.0.140 80 {               #配置服务节点 1,需要指定 realserver 的真实 IP 地址和端口,IP不同端口之间用空格隔开        
    weight 1    #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器        
TCP_CHECK {     #这段内容手动添加,把以前的内容删除                
         connect_timeout 3       #表示 3 秒无响应超时                
         nb_get_retry 3          #表示重试次数                
         delay_before_retry 3    #表示重试间隔
         connect_port 80         #检测端口
                }
    }
    real_server 192.168.0.150 80 {
        weight 1
        TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
                }
    }
}

2)    重启keepalibed服务,查看ipvsadm状态

[root@xuegod120 ~]# systemctl start keepalived.service
[root@xuegod120 ~]# systemctl enable keepalived.service
[root@xuegod120 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.111:80 rr


#这里没看到两台RS的地址,是因为两台RS的httpd服务还没有启动服务

查看ip地址,发现VIP地址192.168.0.111已经配置成功:

3)    备用节点xuegod130配置
同样的安装ipvsadm和keepalived软件,然后将xuegod120的keepalived的配置文件,复制到xuegod130上,进行修改:

[root@xuegod120 ~]# scp /etc/keepalived/keepalived.conf 192.168.0.130:/etc/keepalived/
[root@xuegod130 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
   notification_email {
     root@localhost                         #默认三个地址,修改可用地址
   }
   notification_email_from root@localhost
   smtp_server localhost
   smtp_connect_timeout 30
   router_id xuegod130                       #标识当前节点名字,两个节点的此项需要不相同。
}
#默认的配置文件中,使用第三方 smtp 服务器,但这在现实中几乎没有意义,发不出邮件,我们将其挃定为 localhost, 我们也可以将通知信息的发送交给本地 sendmail 服务处理。

vrrp_instance apache {          #定义一个实例,一个集群就是一个实例。 默认VI_1 可以随意改。
    state BACKUP        #指定 A 节点为主节点 备用节点上设置为 BACKUP 即可
    interface ens33         #绑定虚拟 IP 的网络接口
    virtual_router_id 51    #VRRP 组名,两个节点的设置必须一样,以指明各个节点属于同一 VRRP 组
    priority 90            #主节点的优先级(1-254 之间),备用节点必须比主节点优先级低
    advert_int 1             #组播信息发送间隔,两个节点设置必须一样
    authentication {         #设置验证信息,两个节点必须一致
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.111        #指定虚拟 IP, 两个节点设置必须一样
    }
}
virtual_server 192.168.0.111 80 {    #对虚拟IP63添加LVS相关内容
    delay_loop 6                    #Keepalived 多长时间监测一次 RS
    lb_algo rr                       #分发算法
    lb_kind DR                      #DR 模式
    nat_mask 255.255.255.0
  #  persistence_timeout 50  #同一 IP 50秒内的请求都发到同个real server ,这个会影响LVS的 rr 调度算法, 同一 IP 超过 50 秒后,再次访问,才会被转发到另一台 real server 上。 persistence 持久>性的意思
    protocol TCP
    real_server 192.168.0.140 80 {               #配置服务节点 1,需要指定 realserver 的真实 IP 地址和端口,IP不同端口之间用空格隔开
        weight 1    #配置服务节点的权值,权值大小用数字表示,数字越大,权值越高,设置权值大小可以为不同性能的服务器
        TCP_CHECK {     #这段内容手动添加,把以前的内容删除
                connect_timeout 3       #表示 3 秒无响应超时
                nb_get_retry 3          #表示重试次数
                delay_before_retry 3    #表示重试间隔
                connect_port 80         #检测端口
                }
    }
    real_server 192.168.0.150 80 {
        weight 1
TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
                }
    }
}

4)    重启keepalived服务

[root@xuegod130 ~]# systemctl start keepalived.service
[root@xuegod130 ~]# systemctl enable keepalived.service

5)    查看ipvsadm状态和VIP地址信息
[root@xuegod130 ~]# ipvsadm -L -n

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.0.111:80 rr


这里可以看到虽然ipvsadm的状态有VIP地址,但是真正的网卡信息中没有配置VIP地址,VIP地址还在主节点xuegod120上

6)    两台RS服务器安装httpd服务

[root@xuegod140 ~]# yum -y install httpd
[root@xuegod150 ~]# yum -y install httpd

编写首页文件
[root@xuegod140 ~]# echo xuegod140 > /var/www/html/index.html
[root@xuegod150 ~]# echo xuegod150 > /var/www/html/index.html

启动服务
[root@xuegod140 ~]# systemctl start httpd
[root@xuegod150 ~]# systemctl start httpd

7)    RS1服务器配置关闭ARP脚本

[root@xuegod140 ~]# vim /etc/init.d/lvsrsdr
#!/bin/bash
#description:start relserver
VIP=192.168.0.111
source /etc/init.d/functions                #加载环境变量(可以加载所有的环境变量)
case $1 in
start)
        echo 'start LVS of Realserver DR'
        /sbin/ifconfig lo:1 $VIP broadcast $VIP netmask 255.255.255.255 up
        /sbin/route add -host $VIP dev lo:1
        echo '1' > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo '2' > /proc/sys/net/ipv4/conf/lo/arp_announce
        echo '1' > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo '2' > /proc/sys/net/ipv4/conf/all/arp_announce
        ;;
stop)
        /sbin/ifconfig lo:1 down
        echo 'Close LVS of Realserver DR'
        echo '0' > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo '0' > /proc/sys/net/ipv4/conf/lo/arp_announce
        echo '0' > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo '0' > /proc/sys/net/ipv4/conf/all/arp_announce
        ;;
*)
        echo "Usage:$0 (start|stop)"
exit 1
esac

[root@xuegod140 ~]# vim /etc/init.d/lvsrsdr
[root@xuegod140 ~]# chmod +x /etc/init.d/lvsrsdr
[root@xuegod140 ~]# /etc/init.d/lvsrsdr start

查看VIP地址的信息
 
8)    RS2配置脚本
直接从RS1中拷贝过来即可
 

[root@xuegod140 ~]# scp /etc/init.d/lvsrsdr 192.168.0.150:/etc/init.d/

启动脚本

[root@xuegod150 ~]# /etc/init.d/lvsrsdr start


查看VIP的状态

9)    主节点上查看ipvsadm的状态

[root@xuegod120 ~]# ipvsadm -L -n


 
7、    测试效果
1)    使用客户端浏览器测试
 
等待一段时间,再刷新

2)    测试keepalived的主备切换,模拟主节点宕机
先在主节点查看ipvsadm的状态
 
在查看备用节点的ipvsadm状态

在主节点停掉keepalived的,模拟故障,查看主节点的状态

查看备用节点的状态
 
查看主节点的VIP地址

查看备用节点的VIP地址

通过日志查看漂移记录

3)    重新恢复主节点的keepalived

[root@xuegod120 ~]# systemctl start keepalived.service


可以看到VIP地址和RS的信息已经自动配置完成

查看VIP地址是否自动漂移过来

通过日志查看漂移记录
这里通过查看备用节点的日志记录

查看备用节点的VIP地址

总结:这里当主节点keepalived状态恢复后,VIP地址会自动切换回来,是因为我们配置keepalived是,给给主节点配置的优先级比备用节点的优先级高,所以会自动争夺回来VIP地址


五、    配置keepalived,实现互为主从
1、    互为主从概述
xuegod120/130两主机各绑定一个VIP,同时两台主机都为主服务向外提供一组资源,同时也是互为备用服务。
比如:
        当xuegod120主服务出现宕机的情况,会把业务迁移到xuegod130主机上,此时xuegod130就会绑定两个VIP,为两组服务提供资源。
        当xuegod130主服务出现宕机的情况,会把业务迁移到xuegod120主机上,此时xuegod62120就会绑定两个VIP,为两组服务提供资源。

2、    配置keepalived互为主从
1)    拓扑图

2)    配置主节点keepalived

[root@xuegod120 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
   notification_email {
     root@localhost                         
   }
   notification_email_from root@localhost
   smtp_server localhost
   smtp_connect_timeout 30
   router_id xuegod120                       
}
vrrp_instance apache {        
    state MASTER        
    interface ens33        
    virtual_router_id 51    
    priority 100            
    advert_int 1             
    authentication {         
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.111        
    }
}
vrrp_instance DR2 {
    state BACKUP                
    interface ens33
    virtual_router_id 53
    priority 100                
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 2222
    }
    virtual_ipaddress {
        192.168.0.222
    }
}

virtual_server 192.168.0.111 80 {   
delay_loop 6                        
lb_algo rr                          
lb_kind DR                      
nat_mask 255.255.255.0
  #  persistence_timeout 50 
protocol TCP
    real_server 192.168.0.140 80 {               
        weight 1    
        TCP_CHECK {     
                connect_timeout 3      
                nb_get_retry 3          
                delay_before_retry 3    
                connect_port 80        
                }
    }
    real_server 192.168.0.150 80 {
        weight 1
        TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
                }
    }
}
virtual_server 192.168.0.222 80 {    
    delay_loop 6                   
    lb_algo rr                      
    lb_kind DR                     
    nat_mask 255.255.255.0
  #  persistence_timeout 50  
    protocol TCP
real_server 192.168.0.140 80 {                       
weight 1  
        TCP_CHECK {     
                connect_timeout 3       
                nb_get_retry 3          
                delay_before_retry 3    
                connect_port 80        
                }
    }
    real_server 192.168.0.150 80 {
        weight 1
        TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
                }
    }
}

3)    配置备用节点
直接将配置文件拷贝,然后修改

[root@xuegod120 ~]# scp /etc/keepalived/keepalived.conf 192.168.0.130:/etc/keepalived/
global_defs {
   notification_email {
     root@localhost                         
   }
   notification_email_from root@localhost
   smtp_server localhost
   smtp_connect_timeout 30
   router_id xuegod120                       
}
vrrp_instance apache {        
    state BACKUP        
    interface ens33        
    virtual_router_id 51    
    priority 90            
    advert_int 1             
    authentication {         
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.0.111        
    }
}
vrrp_instance DR2 {
    state MASTER                
    interface ens33
    virtual_router_id 53
    priority 110                
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 2222
    }
    virtual_ipaddress {
        192.168.0.222
    }
}

virtual_server 192.168.0.111 80 {   
delay_loop 6                        
lb_algo rr                          
lb_kind DR                      
nat_mask 255.255.255.0
  #  persistence_timeout 50 
protocol TCP
    real_server 192.168.0.140 80 {               
        weight 1    
        TCP_CHECK {     
                connect_timeout 3      
                nb_get_retry 3          
                delay_before_retry 3    
                connect_port 80        
                }
    }
    real_server 192.168.0.150 80 {
        weight 1
        TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
                }
    }
}
virtual_server 192.168.0.222 80 {    
    delay_loop 6                   
    lb_algo rr                      
    lb_kind DR                     
    nat_mask 255.255.255.0
  #  persistence_timeout 50  
    protocol TCP
real_server 192.168.0.140 80 {                       
weight 1  
        TCP_CHECK {     
                connect_timeout 3       
                nb_get_retry 3          
                delay_before_retry 3    
                connect_port 80        
                }
    }
    real_server 192.168.0.150 80 {
        weight 1
        TCP_CHECK {
                connect_timeout 3
                nb_get_retry 3
                delay_before_retry 3
                connect_port 80
                }
    }
}

4)    重启keepalived服务

[root@xuegod120 ~]# systemctl restart keepalived.service
[root@xuegod130 ~]# systemctl restart keepalived.service

5)    查看主备节点的ipvsadm和VIP的状态
主节点的状态

备用节点的状态
 
6)    为两台RS服务器,配置新增加的VIP地址,关闭ARP转发
RS1的配置:

[root@xuegod140 ~]# vim /etc/init.d/lvsrsdr
#!/bin/bash
#description:start relserver
VIP1=192.168.0.111
VIP2=192.168.0.222
source /etc/init.d/functions                #加载环境变量(可以加载所有的环境变量)
case $1 in
start)
        echo 'start LVS of Realserver DR'
        /sbin/ifconfig lo:1 $VIP1 broadcast $VIP1 netmask 255.255.255.255 up
        /sbin/ifconfig lo:2 $VIP2 broadcast $VIP2 netmask 255.255.255.255 up
        /sbin/route add -host $VIP1 dev lo:1
        /sbin/route add -host $VIP2 dev lo:2
        echo '1' > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo '2' > /proc/sys/net/ipv4/conf/lo/arp_announce
        echo '1' > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo '2' > /proc/sys/net/ipv4/conf/all/arp_announce
        ;;
stop)
        /sbin/ifconfig lo:1 down
        /sbin/ifconfig lo:2 down
        echo 'Close LVS of Realserver DR'
        echo '0' > /proc/sys/net/ipv4/conf/lo/arp_ignore
        echo '0' > /proc/sys/net/ipv4/conf/lo/arp_announce
        echo '0' > /proc/sys/net/ipv4/conf/all/arp_ignore
        echo '0' > /proc/sys/net/ipv4/conf/all/arp_announce
        ;;
*)
        echo "Usage:$0 (start|stop)"
exit 1
esac

重新启动脚本
[root@xuegod140 ~]# /etc/init.d/lvsrsdr stop
[root@xuegod140 ~]# /etc/init.d/lvsrsdr start

查看VIP的配置信息
 
RS2配置:
直接将脚本文件,复制到RS2

启动脚本文件

3、    测试
使用浏览器测试
 
 
使用elinks测试
 
4、    测试高可用-模拟主节点故障
模拟主节点故障

查看备用节点的状态

访问测试


5、    恢复主节点

查看备用节点
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值