lvs的配置

1、环境准备:

   三台虚拟机:分配ip(注意lvs调度器对外提供服务的VIP ,另外两台保证web可以提供正常服务)


2、工作中常用的版本1.24 和 1.2.6,如果是centos5用1.24,如果是6用1.26 (lvs不需要用高版本)


3、lsmod命令――显示已载入系统的内核模块 lsmod 其实就是list modules的缩写。

LB配置:

4、首先解决依赖关系:yum install libnl* popt*  -y


5、下载lvs ,注意此处使用的是centos6,完成后解压编译。

    wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz

    tar zxf ipvsadm-1.26.tar.gz
    cd ipvsadm-1.26
    make
    make install
    lsmod |grep ip_vs
    /sbin/ipvsadm  #?modprobe ip_vs
    cd ../


6、查看结果lsmod |grep ip_vs

    ip_vs                 125220  0
    libcrc32c               1246  1 ip_vs
    ipv6                  317340  78 ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6


7、因为lvs基于内核的 ,所以:ln -s /usr/src/kernels/2.6.32-431.el6.x86_64/ /usr/src/linux

   如果没有,可能是缺少:kernel-devel-这个包。


7、手动配置lvs之前最好看看帮助信息,这里简单注释一下,不过够用了。


    --add-service     -A  (虚拟服务添加)

    add virtual service with options


    --add-server      -a   指定节点               

    add real server with options


    --tcp-service  -t service-address   节点ip

    service-address is host[:port]


    --tcp-service      -t 指定一个vip地址和端口

     service-address 


    --save            -S    指定算法              

    save rules to stdout


    --persistent      -p [timeout]  汇话保持

    persistent service


    指定模式:-g DR模式 -i TUN模式 -m NAT模式

    -w权重

    

8、添加一个vip 和两个节点。

    网卡设置:

        ifconfig  eth0:0 10.10.70.14/24 up
        检查:ping 10.10.70.14
        PING 10.10.70.14 (10.10.70.14) 56(84) bytes of data.
        64 bytes from 10.10.70.14: icmp_seq=1 ttl=64 time=0.238 ms
        64 bytes from 10.10.70.14: icmp_seq=2 ttl=64 time=0.040 ms

        注:工作中要将这个vip要绑定在域名上。

          linux ARP广播而进行新的地址解析。
          具体命令:
          /sbin/arping -I eth0 -c 3 -s 10.0.0.162 10.0.0.253
          /sbin/arping -U -I eth0 10.0.0.162


   清空所有配置:

        ipvsadm  -C 


   设置超时:ipvsadm --set 30 5 60  (可以不配)


   vip添加 : ipvsadm -A -t 10.10.70.14:80 -s rr -p 20

  

   节点添加: ipvsadm -a -t 10.10.70.14:80 -r 10.10.70.10 -g -w 1

              ipvsadm -a -t 10.10.70.14:80 -r 10.10.70.11 -g -w 1


9、查看:ipvsadm -L -n

        IP Virtual Server version 1.2.1 (size=4096)
    Prot LocalAddress:Port Scheduler Flags
      -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
    TCP  10.10.70.14:80 rr persistent 20
      -> 10.10.70.11:80               Route   1      0          0         
      -> 10.10.70.11:80               Route   1      0          0   



10、节点删除范例:ipvsadm -d -t 10.10.70.14:80 -r 10.10.70.12

    vip删除范例 :ipvsadm -D -t 10.10.70.14:80

节点配置:

12、在两台节点服务器上绑定vip:

    ifconfig  lo:0 10.10.70.14/32 up

    注意:

    a)vip绑定在环回接口lo 设备上(其广播地址是其本身),子网掩码是255.255.255.255,保证不冲突;

    b)把绑定的vip做成配置文件,例如:vi /etc/sysconfig/network-scripts/lo:0

    c)RS节点自身提供服务的检查(DR不能端口转换)

    d)排查的工具tcpdump 或 ping 例如:tcpdump i eth0 port 80


            

13、抑制arp相应:

   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


14、完毕后测试,也可以使用watch -n 1 ipvsadm -L -n 在LB上查看。

    查看:ipvsadm -L -n --stats --sort  等等。


注意了:上边的全部配置都是临时配置。~~~~!!! 解决办法:写脚本。

如下:

#!/bin/bash
. /etc/init.d/functions
VIP=10.10.70.14
PORT=80
RIP=(
10.10.70.11
10.10.70.10
)
start(){
ifconfig eth0:0 $VIP/24 up
route add -host $VIP dev eth0
ipvsadm -C
ipvsadm --set 30 5 60
ipvsadm -A -t $VIP:$PORT -s rr -p 20
for ((i=0;i<${#RIP[*]};i++))
do
ipvsadm -a -t $VIP:$PORT -r ${RIP[$i]} -g -w 1
done
}
stop(){
ipvsadm -C
ifconfig eth0:0 down
route del -host $VIP dev eth0
}
case "$1" in
    start)
    start
    echo "yes"
    ;;
    stop)
    stop
    echo "no"
    ;;
    restart)
    echo "restart ok"
    ;;
    *)
    echo "USAGE:$0 {STOP|START|RESTAT}"
esac






         

    


    

本文出自 “思想大于技术” 博客,谢绝转载!

你可能感兴趣的:(LVS,配置)