免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1276 | 回复: 0
打印 上一主题 下一主题

用keepalived实现lvs--左右手均衡 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-04 17:51 |只看该作者 |倒序浏览
用keepalived实现lvs--左右手均衡
Drunkard
2010-01-02
    闲来无事,我设想了一种lvs的做法. 一般情况下,通常使用一个LB,另一个作为热备,随时可以切换;这样似乎有些浪费. 这仅仅是个设想,还没测试;
    这个想法的目的是让2个LB同时跑流量,当其中一个当掉后,另一个能够自动顶上,接收所有流量. 利用的就是VRRP竞争的优先级(priority)值高低. 在此设想的基础上可以实现同时使用3个LB,4个LB...等情况;
# 使用的软件:
    内核有ipvs支持;
    keepalived,ipvs管理软件和VRRP功能;
    ipvsadm用于查看ipvs的连接状态);
    ip,用于查看本机的IP配置情况,keepalived配置的IP貌似用ifconfig看不到(或者人品问题);
    ifconfig,不可能没用的;
    iptstate,查看内核的netfilter连接状态(也能用conntrack);
    atop,htop,iotop,iftop很好的几个软件,都是top风格的,我每次必装的管理软件;
    bash-completion
关于VIP的数量
    我的理解是这样的,DNS会简单的轮询,所以过多的VIP可能导致会话分散,这样人品差的人使用的时候可能会有问题. LB数量==VIP数量就行了. web的请求流量和响应流量平均为1:10以上,所以2个千兆网卡的LB可以撑起20G流量的应用了...
    这里用2个VIP,可能是为了玩,穷尽各种玩乐的方法,呵呵.
    VIP1和VIP2分别主要跑在LB1和LB2上,LB1挂掉时LB2可以接替它的VIP1,LB2挂掉时LB1可以接替它的VIP2. 配置简单:
在LB1和LB2的keepalived里都写上2个vrrp_instance,二者都对自己的VIP设置高priority,对别的VIP设置低priority;
virtual_server这里要老老实实地加上,LB1和LB2都要加2个VIP的配置;
real_server这里如果怕检测过于频繁,可以在LB1和LB2上都只设置1次;
以下写了一个配置示例. 在LB1上的keepalived.conf这样写:
global_defs {
    notification_email {
        girl@gmail.com
    }
    notification_email_from trouble@my.org
    smtp_server 211.X.X.X
    smtp_connect_timeout 30
    router_id squid_124
}
vrrp_instance VI_1 {
    state MASTER
    smtp_alert
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass My_SQU1D
    }
    virtual_ipaddress {
        192.168.100.122
    }
}
virtual_server 192.168.100.122 80 {
    delay_loop 6
    lb_algo sed
    lb_kind DR
    persistence_timeout 120
    protocol TCP
    #sorry_server 192.168.100.125 81
    real_server 192.168.100.65 80 { # squid65
        weight 500
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 2
            connect_port 80
        }
    }
    # 如果想要更多瓢,照着上面画就行了.
}
vrrp_instance VI_2 {
    state MASTER
    smtp_alert
    interface eth0
    virtual_router_id 52
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass My_SQU1D
    }
    virtual_ipaddress {
        192.168.100.123
    }
}
virtual_server 192.168.100.123 80 {
    delay_loop 6
    lb_algo sed
    lb_kind DR
    persistence_timeout 120
    protocol TCP
    #sorry_server 192.168.100.125 81
    real_server 192.168.100.65 80 { # squid65
        weight 500
        }
    }
    # 如果想要更多瓢,照着上面画就行了.
}
LB2上的keepalived.conf配置文件这样写:
global_defs {
    notification_email {
        girl@gmail.com
    }
    notification_email_from trouble@my.org
    smtp_server 211.X.X.X
    smtp_connect_timeout 30
    router_id squid_125
}
vrrp_instance VI_1 {
    state MASTER
    smtp_alert
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass My_SQU1D
    }
    virtual_ipaddress {
        192.168.100.122
    }
}
virtual_server 192.168.100.122 80 {
    delay_loop 6
    lb_algo sed
    lb_kind DR
    persistence_timeout 120
    protocol TCP
    real_server 192.168.100.65 80 { # squid65
        weight 500
    }
    # 如果想要更多瓢,照着上面画就行了.
}
vrrp_instance VI_2 {
    state MASTER
    smtp_alert
    interface eth0
    virtual_router_id 52
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass My_SQU1D
    }
    virtual_ipaddress {
        192.168.100.123
    }
}
virtual_server 192.168.100.123 80 {
    delay_loop 6
    lb_algo sed
    lb_kind DR
    persistence_timeout 120
    protocol TCP
    real_server 192.168.100.65 80 { # squid65
        weight 500
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 2
            connect_port 80
        }
    }
    # 如果想要更多瓢,照着上面画就行了.
}
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/100419/showart_2139264.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP