Linux(centos 6.X)环境下LVS-NAT模式高可用负载均衡集群系统快速配置

本文简单记录下Linux环境下lvs-nat模式(基础调度器路由转发)负载均衡简单配置,揭开这个神秘东西的面纱,让你五分钟钟搞定配置LVS-NAT。

  • 环境配置: 三台centos 6.5
  • 调度器: DIP:192.168.1.11 VIP:192.168.1.110
  • web服务器: RIP:192.168.1.9 RIP:192.168.1.10

一、前期服务器环境搭建

由于是之前kvm克隆了dr模式下的服务器,这里和dr下边的IP和服务器环境信息是一样的。只不过是web服务器取消了arp禁响应和VIP配置。

(1) 配置lamp环境,这里不做演示。
(2)关闭selinux、调度器和所有web服务器上的iptables
(3)设置时间同步,保证服务器时间一致(后期nfs或数据同步用到,包括session同步需要)

二、配置调度器

1. 开启IP转发

vi /etc/sysctl.conf
net.ipv4.ip_forward = 1

sysctl -p可以查看是否开启。

2. 调度器安装ipvsadm和keepalived

首先安装依赖包:

yum -y install gcc make openssl-devel openssl net-snmp net-snmp-devel popt popt-devel

安装ipvs和keepalived:

yum install ipvsadm  keepalived  -y
chkconfig ipvsadm on
chkconfig keepalived on

修改keepalived.conf配置文件配置服务器IP信息:

! Configuration File for keepalived

global_defs {   
   router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER             #备用机器这里需要更改成BACKUP
    interface eth0           
    virtual_router_id 51     
    priority 100             #备机优先级设置低于100的数值。数值越高优先级越高。
    advert_int 1             
    authentication {         
        auth_type PASS       
        auth_pass 1111       
    }
    virtual_ipaddress {      
        192.168.1.110        
    }
}

virtual_server 192.168.1.110 80 {
    delay_loop 6       
    lb_algo rr        
    lb_kind NAT        
    nat_mask 255.255.255.0
    persistence_timeout 50  
    protocol TCP            

    real_server 192.168.1.9 80 {       
        weight 3                       
        TCP_CHECK {  
            connect_timeout 3          
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
    real_server 192.168.1.10 80 {
        weight 3
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }

}

配置完以后启动keepalived:

service keepalived start

现在通过ipvsadm查看ip信息:

[[email protected] ~]# ipvsadm  -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.110:http rr persistent 50
  -> 192.168.0.9:http             Masq    3      0          0         
  -> 192.168.0.10:http            Masq    3      0          0  

三、真实服务器配置

这个无需做特殊配置,只是把网关设置成VIP就可以了。设置以后可以用route查看网关。

好了。配置完成。测试下论坛访问,依旧是1.9和1.10轮流提供web访问。

拓展部分:

如果需要进行nfs系统配置,请参考《Linux下网络文件系统NFS的配置实现数据共享》
如果要进行mysql主从配置,请参考《mysql数据库如何设置互为主从》
DR模式配置过程,请参考《Linux(centos 6.X)环境下LVS-DR模式负载均衡集群系统快速配置》

补充LVS添加url检测防止假死:

real_server 192.168.1.120 80  {
     weight  50
     HTTP_GET {
        url {
            path   /ok.php
            status_code 200
        }
        connect_timeout  10
        nb_get_retry 3
        delay_before_retry 3
     }
}