通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索

军衔等级:

  列兵

注册:2013-7-16
跳转到指定楼层
1#
发表于 2014-9-16 19:08:00 |只看该作者 |倒序浏览
LVS配置方法
1.1、服务脚本
        将Keepalived做成服务启动(MASTER和BACKUP都是必须的),具体步骤如下:
        (1)拷贝服务启动脚本
        #cp ./keepalived/etc/init.d /etc/init.d   
        (2)拷贝配置文件
        #mkdir /etc/keepalived
        #cp ./keepalived/etc/keepalived/keepalived.conf /etc/keepalived
        (3)拷贝可执行文件
        #cp ./bin/keepalived /usr/bin
        (4)启动/停止服务
        #service keepalived start
        #service keepalived stop
1.2、配置MASTER
        备份并打开配置文件修改部分内容,尤其注意红色部分,具体如下:
        #cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
        #vi /etc/keepalived/keepalived.conf
        vrrp_instance VI_1 {
            state MASTER    # 状态实际MASTER,备份服务器上将 MASTER 改为 BACKUP
            interface eth0    # 监测网络接口
            virtual_router_id 51      #主、备机的 virtual_router_id 必须相同
            priority 100     # 主、备机取不同的优先级,主机值较大,备份机值较小
            advert_int 1    #VRRP Multicast 广播周期秒数
            authentication {
                auth_type PASS   #VRRP 认证方式
                auth_pass 1111   #VRRP 口令字
            }
            virtual_ipaddress {        # 虚拟IP地址列表,即VIP
                172.28.19.200
                172.28.19.201
                172.28.19.202
            }
        }
        virtual_server 172.28.19.200 8080 {
            delay_loop 6  # 每隔6 秒查询 realserver 状态
            lb_algo wlc  #lvs 算法
            lb_kind DR   # DR模式
            persistence_timeout 50  # 同一IP 的连接60 秒内被分配到同一台realserver
            protocol TCP    # 用 TCP 协议检查 realserver状态
            real_server 172.28.19.100 8080 {
                weight 1             # 权重(权重越高处理的请求越多)
                TCP_CHECK {
                    connect_timeout 3
                    nb_get_retry 3
                    delay_before_retry 3
                    connect_port 8080
                }
            }
            real_server 172.28.19.101 8080 {
                weight 1                  # 权重(权重越高处理的请求越多)
                TCP_CHECK {
                    connect_timeout 3
                    nb_get_retry 3
                    delay_before_retry 3
                    connect_port 8080
                }
            }
            real_server 172.28.19.102 8080 {
                weight 1                  # 权重(权重越高处理的请求越多)
                TCP_CHECK {
                    connect_timeout 3
                    nb_get_retry 3
                    delay_before_retry 3
                    connect_port 8080
                }
            }
        }
        virtual_server 172.28.19.201 25 {
            delay_loop 6
            lb_algo wlc
            lb_kind DR                    # DR模式
            persistence_timeout 50
            protocol TCP
            real_server 172.28.19.103 25 {
                weight 1                  # 权重(权重越高处理的请求越多)
                TCP_CHECK {
                    connect_timeout 3
                    nb_get_retry 3
                    delay_before_retry 3
                    connect_port 25
                }
            }
            real_server 172.28.19.104 25 {
                weight 1                  # 权重(权重越高处理的请求越多)
                TCP_CHECK {
                    connect_timeout 3
                    nb_get_retry 3
                    delay_before_retry 3
                    connect_port 25
                }
            }
            real_server 172.28.19.105 25 {
                weight 1                  # 权重(权重越高处理的请求越多)
                TCP_CHECK {
                    connect_timeout 3
                    nb_get_retry 3
                    delay_before_retry 3
                    connect_port 25
                }
            }
        }
        virtual_server 172.28.19.202 21 {
            delay_loop 6
            lb_algo wlc
            lb_kind DR                    # DR模式
            persistence_timeout 50
            protocol TCP
            real_server 172.28.19.106 21 {
                weight 1                  # 权重(权重越高处理的请求越多)
                TCP_CHECK {
                    connect_timeout 3
                    nb_get_retry 3
                    delay_before_retry 3
                    connect_port 21
                }
            }
            real_server 172.28.19.107 21 {
                weight 1                  # 权重(权重越高处理的请求越多)
                TCP_CHECK {
                    connect_timeout 3
                    nb_get_retry 3
                    delay_before_retry 3
                    connect_port 21
                }
            }
            real_server 172.28.19.108 21 {
                weight 1                  # 权重(权重越高处理的请求越多)
                TCP_CHECK {
                    connect_timeout 3
                    nb_get_retry 3
                    delay_before_retry 3
                    connect_port 21
                }
            }
        }
1.3、配置BACKUP
        BACKUP配置与MASTER基本一致,除了红色部分外,具体如下:
        #cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak
        #vi /etc/keepalived/keepalived.conf
        vrrp_instance VI_1 {
            state BACKP            # 状态实际BACKUP
            ...
            priority 99                # 优先级99(比MASTER优先级100低)
            ...
        }
1.4、配置Realserver
        为Realserver的某块网卡创建启动脚本,脚本内容如下:
        #vi realserverd
        #!/bin/bash
        VIP=172.28.19.200
        . /etc/rc.d/init.d/functions
        case "$1" in
        start)
            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
            ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
            /sbin/route add -host $VIP dev lo:0
            sysctl -p > /dev/null 2>&1
            echo "realserver start OK"
            ;;
        stop)
            echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore
            echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce
            echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
            echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
            ifconfig lo:0 down
            /sbin/route del $VIP > /dev/null 2>&1
            echo "realserver stoped"
            ;;
        *)
            echo "Usage0 {start|stop}"
            exit 1
        esac
        exit 0
        注意脚本中红色部分,每块网卡绑定一个虚拟IP地址,如果绑定多个虚拟IP,则需要为每块网卡创建一个脚本,并且指定lo:X(比如:lo:0,lo:1等),另外,.和/etc/rc.d/funtions之间有空格。
        启动keepalived服务,并执行上述脚本,然后用ip a能确认是否有VIP地址。
        输入ipvsadm -Ln查看LVS工作状态。
        停止MASTER的keepalived服务,BACKUP能接管VIP地址,再次启动MASTER的keepalived服务,MASTER又能再一次接管VIP地址。

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

版规|手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2025-8-9 14:43 , Processed in 0.403874 second(s), 17 queries , Gzip On.

Copyright © 1999-2025 C114 All Rights Reserved

Discuz Licensed

回顶部