一、ipvs与ipvsadm

   ipvs称之为IP虚拟服务器(IP Virtual Server,简写为IPVS)。是运行在LVS下的提供负载平衡功能的一种技术。

   ipvs是LVS的关键,因为LVS的IP负载平衡技术就是通过ipvs模块(已经整合进kernel)来实现的,ipvs是LVS集群系统的核心软件,它的主要作用是:安装在Director Server上,同时在Director Server上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问服务。这个虚拟IP一般称为LVS的VIP,即Virtual IP。访问的请求首先经过VIP到达负载调度器,然>后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求。

   ipvs具体实现是由ipvsadm这个程序来完成,因此判断一个系统是否具备ipvs功能,只需要察看ipvsadm 程序是否被安装。察看ipvsadm程序最简单的办法就是在任意路径执行命令ipvsadm。

   ipvsadm规则使用格式:

#ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p
[timeout]] [-M netmask]
    -A: 添加一个集群服务
    -E:修改定义过的集群服务
        -t: tcp
        -u: udp
        -f: firewall mark通常用于将两个或以上的服务绑定为一个服务进行处理时使用;                                                                                                                         
      service-address:
           -t IP:port
           -u ip:port
           -f firewall_mark                                                                                                                          
        -s 调度方法,默认为wlc
            这样几个选项:rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq                                                                                                                         
        -p timeout: persistent connection, 持久连接,自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒 
     M  netmask :persistent granularity mask         
#ipvsadm -D -t|u|f virtual-service-address
    删除指定的集群服务
#ipvsadm -C
    清空所有的集群服务
#ipvsadm -R
    载入指定的规则:(使用输入重定向)
#ipvsadm -S [-n]
    保存规则:(使用输出重定向)
#ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port
[-g|i|m] [-w weight]
    -a:向指定的CS中添加RS
    -e: 修改指定的RS属性
         -t|-u|-f service-address:指明将RS添加至哪个Cluster Service中
         -r: 指定RS,可包含{IP[:port]},只有支持端口映射的LVS类型才允许此处使用跟集群服务中不同的端口
        LVS类型:
                -g: Gateway, DR
                -i: ipip, TUN
                -m: masquerade, NAT
    -w weight 真实服务器的权值
#ipvsadm -d -t|u|f service-address -r server-address
    删除指定的RS
#ipvsadm -L|l [options]
     -L [options]:查看规则
        -n: 数字格式显示IP地址
        -c: 显示连接数相关信息
        --stats: 显示统计数据
        --rate: 速率
        --exact:显示统计数据的精确值
#ipvsadm -Z [-t|u|f service-address]
    -Z: 计数器清零;
#ipvsadm --set tcp tcpfin udp
    设置连接超时值
#ipvsadm --start-daemon state [--mcast-interface interface]
    启动同步守护进程。他后面可以是master 或backup,用来说明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的VRRP 功能。
    --mcast-interface interface 指定组播的同步接口
#ipvsadm --stop-daemon
    --stop-daemon 停止同步守护进程
#ipvsadm -h
    -h --help 显示帮助信息


二、VS/NAT配置

  清空iptables,至少清空filter,才能配置ipvs

   使用三机器来演示配置:

       一台Director(调度器),内网网卡,外网网卡

               外网eth0 : 172.16.251.188

               外网eth0:0 (vip):172.16.251.184

               内网eth1 : 192.168.1.1

       两台做RS(Realserver), 内网网卡

               eth0: 192.168.1.2

                      192.168.1.3

               gateway: 192.168.1.1

1.Director基础配置

       a).配置虚拟ip地址(vip)

# ifconfig eth0:0 172.16.251.184/16 up   //配置
# ifconfig       //检查

       b).开启路由间转发功能

# vim /etc/systcl.conf
    net.ipv4.ip_forward = 1     //开启路由转发
# sysctl -p      //即时生效

2.RS配置

       a).RS1

# ifconfig eth0 192.168.1.2/24 up    //配置内网ip地址
# ifconfig                           //检查
# route add default gw 192.168.1.1   //添加网关,指向DIP
# route -n                           //检查

       b).RS2

# ifconfig eth0 192.168.1.3/24 up    //配置内网ip地址
# ifconfig                           //检查
# route add default gw 192.168.1.1   //添加网关,指向DIP
# route -n                           //检查

3.Director配置集群,添加RS

# yum -y install ipvsadm         //安装ipvsadm
# ipvsadm -A -t 172.16.251.184:80 -s rr     //添加集群服务
# ipvsadm -a -t 172.16.251.184:80 -r 192.168.1.2 -m  //在集群服务中添加RS1
# ipvsadm -a -t 172.16.251.184:80 -r 192.168.1.3 -m  //在集群服务中添加RS2
# ipvsadm -L -n   //检查

4.测试

       分别在RS上安装httpd,提供测试页,看是否轮训