zoukankan      html  css  js  c++  java
  • LVS+KEEPALIVED(1/3)

    LVS

    准备三台虚拟机,一台当做LVS,另外两台当做real server

    实验前先做一个软链接

    ln -s /usr/src/kernels/(uname -r)/  /usr/src/linux
    
    #如果没有/usr/src/kernels/uname -r 路径,很可能是因为缺少kernel-develop-(uname -r) 软件包, 可通过 yum install kernel-devel -y 安装

    编译安装ipvsadm

    wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
    
    yum install libnl* popt * -y
    
    tar zxf ipvsadm-1.26.tar.gz
    
    cd ipvsadm-1.26
    
    make
    
    make install 
    
    lsmod | grep ip_vs
    
    /sbin/ipvsadm  或者  modprobe ip_vs    #动态加载ip_vs模块
    
    cd ../
    
    lsmod | grep ip_vs

     配置ipvsadm

    ipvsadm -C
    
    ipvsadm --set 30 5 60    #--set tcp tcpfin udp           set connection timeout values
    
    ipvsadm -A -t 10.0.0.10:80 -s wrr
    
    ipvsadm -a -t 10.0.0.10:80 -r 10.0.0.8:80 -g -w 1
    
    ipvsadm -a -t 10.0.0.10:80 -r 10.0.0.9:80 -g -w 1

    # 此处都是临时操作,重启电脑配置全无,需要编写脚本

    LVS的调度算法

        固定(静态)调度方法:rr,wrr,dh,sh

        动态调度算法:wlc,lc,lblc,lblcr,SED,NQ

    一般的网络服务,如HTTP、Mail、MySQL等,常用的LVS调度算法为:

    ipvsadm命令参数

    1.定义集群服务格式:
    (1).添加集群服务:
    ipvsadm -A|E -t|u|f service-address [-s scheduler]
                  [-p [timeout]] [-M netmask]
    -A:                  表示添加一个新的集群服务
    -E:                  编辑一个集群服务
    -t:                  表示tcp协议
    -u:                  表示udp协议
    -f:                  表示firewall-Mark,防火墙标记
    service-address:     集群服务的IP地址,即VIP
    -s                    指定调度算法
    -p                    持久连接时长,如#ipvsadm -Lcn ,查看持久连接状态
    -M                    定义掩码
    ipvsadm -D -t|u|f service-address      删除一个集群服务
    ipvsadm -C                             清空所有的规则
    ipvsadm -R                             重新载入规则
    ipvsadm -S [-n]                        保存规则
    
    2.向集群服务添加RealServer规则:
    (1).添加RealServer规则
    ipvsadm -a|e -t|u|f service-address -r server-address
                  [-g|i|m] [-w weight]
    -a                 添加一个新的realserver规则
    -e                 编辑realserver规则
    -t                 tcp协议
    -u                 udp协议
    -f                 firewall-Mark,防火墙标记
    service-address    realserver的IP地址
    -g                 表示定八义为LVS-DR模型
    -i                 表示定义为LVS-TUN模型
    -m                 表示定义为LVS-NAT模型
    -w                 定义权重,后面跟具体的权值
    . /etc/init.d/functions
    
    VIP=10.0.0.10
    PORT=80
    RIP=(
    10.0.0.8
    10.0.0.9
    10.0.0.82
    )
    
    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 "ipvs is started"
                    ;;
            stop)
                    stop
                    echo "ipvs is stopped"
                   ;;
            restart)
                    stop
                    echo "ipvs is stopped"
                    start
                    echo "ipvs is started"
                    ;;
            *)
                    echo "Usage:$0 {start|stop|restart}"
            esac

    每台real server端执行

    yum install httpd -y
    echo "10.0.0.8" < /var/www/html/index.html
    #为了区分俩台real server的内容,另一台写入10.0.0.9
    ifconfig
    lo:0 10.0.0.10/32 up route add -host 10.0.0.10 dev lo

    抑制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

    # 1 - 只回答目标IP地址是来访问接口本地地址的ARP查询请求
    # 2 - 对查询目标使用最适当的本地地址,在此模式下将忽略这个IP数据包的源地址并尝试选择能与该地址通信的本地地址,首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址。如果没有合适的地址呗发现,将选择当前发送网络接口或其他的有可能接受到该ARP回应的网络接口来进行发送,限制了使用本地的VIP地址作为有限的网络接口

     测试:

     客服端访问 VIP

    页面会显示其中一个 real server上的内容,重复访问,页面会切换到另一个real server上的内容,实现负载均衡

  • 相关阅读:
    (参考)爬虫5-爬取中国大学排名情况
    005_软件安装之_常用办公软件
    004_软件安装之_Altium Designer
    001_基础硬件电路_二极管
    添加QQ群
    024_STM32程序移植之_ESP8266_TCP
    020_C语言常用函数
    004——转载C#禁止改变窗体大小
    003转载----C#打开网页
    002_Python基础学习网站
  • 原文地址:https://www.cnblogs.com/cnxy168/p/11502892.html
Copyright © 2011-2022 走看看