keepalived+lvs

本文详细介绍了如何在RHEL 6.5环境下搭建基于Keepalived和IPVS的高可用负载均衡系统。包括HTTP服务安装、ARP响应禁用、Keepalived及IPVS配置等步骤,并通过实际案例演示了故障转移的过程。

环境:

hostname角色releaseIP

Iptables and firewalld

server1Masterrhel6.5172.25.37.1/24Disabled
server2Web1rhel6.5172.25.37.2/24Disabled
server3Web2rhel6.5172.25.37.3/24Disbaled
server4BackUprhel6.5172.25.37.4/24Disavled

【1】在server2和server3上面安装httpd服务。

[root@server2 ~]# yum install -y httpd

[root@server2 ~]# /etc/init.d/httpd start

[root@server2 ~]# echo "<h1> server2 </h1>" > /var/www/html/index.html

测试:

[root@server3 ~]# yum install -y httpd

[root@server3 ~]# /etc/init.d/httpd start

[root@server3 ~]# echo "<h1> server3 </h1>" > /var/www/html/index.html

测试:

【2】在server2和server3上面禁用arp对虚拟IP的响应

[root@server2 ~]# yum install -y arptables_jf

[root@server2 ~]# arptables -A IN -d 172.25.37.100 -j DROP

[root@server2 ~]# arptables -A OUT -s 172.25.37.100 -j mangle --mangle-ip-s 172.25.37.2

[root@server2 ~]# /etc/init.d/arptables_jf save

Saving current rules to /etc/sysconfig/arptables:          [  OK  ]

[root@server2 ~]# ip addr add 172.25.37.100 dev eth0

 

[root@server3 ~]# yum install -y arptables_jf

[root@server3 ~]# arptables -A IN -d 172.25.37.100 -j DROP

[root@server3 ~]# arptables -A OUT -s 172.25.37.100 -j mangle --mangle-ip-s 172.25.37.3

[root@server3 ~]# /etc/init.d/arptables_jf save

Saving current rules to /etc/sysconfig/arptables:          [  OK  ]

[root@server3 ~]# ip addr add 172.25.37.100 dev eth0

 

【3】在server1上面安装keepalived和ipvsadm

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

[root@server1 ~]# cat /etc/keepalived/keepalived.conf 
! Configuration File for keepalived

global_defs {
   notification_email {
	root@localhost
   }
   notification_email_from root@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.37.100
    }
}

virtual_server 172.25.37.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 172.25.37.2 80 {
        weight 1
        TCP_CHECK {
	    connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.25.37.3 80 {
        weight 1
        TCP_CHECK {
	    connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

[root@server1 ~]# /etc/init.d/keepalived start

[root@server1 ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.25.37.100:80 rr persistent 50

  -> 172.25.37.2:80               Route   1      0          0         

  -> 172.25.37.3:80               Route   1      0          0         

测试:

关于不能在同一台主机实现轮询参考博客:

https://blog.youkuaiyun.com/xqj198404/article/details/52103465

【4】在server4进行与server1相同操作

注:server4的keepalived配置文件要将MASTER改为BACKUP,priority的值改为小于150的一个值。

开启keepalived

测试高可用:

[root@random rhel6.5]# curl 172.25.37.100

<h1> server3 </h1>

将master关闭模拟故障:

[root@server1 ~]# /etc/init.d/keepalived stop

再次访问,访问正常:

[root@random rhel6.5]# curl 172.25.37.100

<h1> server3 </h1>

在server4上面可以查看到ipvs信息。

[root@server4 ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  172.25.37.100:80 rr persistent 50

  -> 172.25.37.2:80               Route   1      0          0         

  -> 172.25.37.3:80               Route   1      0          2         

在server1上面看不到任何信息:

[root@server1 ~]# ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值