设为首页 收藏本站
查看: 868|回复: 0

[经验分享] 通过keepalived搭建高可用的LVS负载均衡集群

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-9-7 14:36:24 | 显示全部楼层 |阅读模式
一、keepalived软件简介
keepalived是基于vrrp协议实现高可用功能的一种软件,它可以解决单点故障的问题,通过keepalived搭建一个高可用的LVS负载均衡集群时,keepalived还能检测后台服务器的运行状态。

二、vrrp协议原理简介
vrrp(虚拟路由器冗余协议),是为了解决网络上静态路由出现的单点故障的问题,举个例子,如下图
wKioL1fOteTgGJseAAAiC5Hq1OE050.jpg
主机A和B均在同一个局域网内,C和D均是该局域网的网关,即A和B想与外网通信,需指网关到C或D,那究竟指向C好还是指向D好呢?都不好!当指向C时,如果C出故障时,局域网内的主机就没法与外界通信了,指向D问题也是一样,vrrp这时候就有用了,在C和D之间运行vrrp协议,vrrp将C和D虚拟成一个设备E,对外提供一个虚拟ip地址,A和B将网关指向虚拟ip地址即可,在vrrp组内,将各成员分为MASTER和BACKUP(一个组内只能有1个MASTER,可以有多个BACKUP),MASTER就是实际上提供服务的节点,MASTER和BACKUP的选举通过优先级选举,优先级高的即为MASTER,VRRP运行时MASTER定时发送VRRP通告信息,表示MASTER工作正常,BACKUP只接收VRRP数据,不发送数据,如果一定时间内没有接收到MASTER的通告信息,各BACKUP将宣告自己成为MASTER,发送通告信息,重新进行MASTER选举状态。

三、实验部分
ip地址分配:
    VIP:192.168.56.110

    Director Server1 IP:192.168.56.101

    Director Server2 IP:192.168.56.102
    Realserver1 IP:192.168.56.103

    Realserver2 IP:192.168.56.104
LVS相关配置方案:
    模型:DR

    调度算法:rr(轮循)

安装配置过程:
通过keepalived搭建LVS高可用集群配置非常简单,lvs的配置和节点的监控均在keepalived配置文件中配置完成
1、安装前先检查/usr/src/kernels目录下有没有内核的源码,后面keepalived编译时要用到,如果没有,则先安装
1
yum install kernel-devel



2、编译安装keepalived
1
2
3
4
5
tar zxvf keepalived-1.2.23.tar.gz
cd keepalived-1.2.23
./configure --sysconf=/etc --with-kernel-dir=/usr/src/kernels/2.6.32-642.4.2.el6.x86_64/
make && make install
ln -sv /usr/local/sbin/keepalived /sbin/keepalived    #创建链接(不创建的话启动/etc/init.d/keepalived脚本时会报错)



3、修改配置文件/etc/keepalived/keepalived.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#全局定义部分
global_defs {
   notification_email {
     root@lzs.com
     zsgg@lzs.com
   }                    #设置发生异常时向哪个邮箱发通知,可以设>置多个邮箱,每个一行,服务器上的sendmail服务必须开启
   notification_email_from keepalived@lzs.com   #设置邮件的发送方
   smtp_server 192.168.56.1    #设置smtp服务器的ip地址
   smtp_connect_timeout 30      #设置连接smtp服务器的超时时间
   router_id LVS_LZS            #keepalived服务器的标识,将显示在报警邮件的主题>中      
}

#定义vrrp实例
vrrp_instance VI_1 {
    state MASTER                #指定此主机的角色是MASTER,注意要大写
    interface eth0              #指定绑定的接口,即配置虚拟ip地址的接口
    virtual_router_id 51        #指定VRID,该标识为一个数字,同一个vrrp实例中的MASTER和BACKUP的VRID必须一致
    priority 100                #指定优先级,MASTER的优先级必须高于BACKUP
    advert_int 1                #指定MASTER发送通告信息的时间间隔
    authentication {            #设置同一个vrrp组中各节点的验证类型和验证密码,>即同一vrrp组下,各节点的验证类型和验证密码必须一致才能互相通信
        auth_type PASS          #设置验证类型,有PASS和HA两种
        auth_pass 1111          #设置验证密码,
    }
    virtual_ipaddress {         #设置虚拟ip地址,可多个
        192.168.56.110
        192.168.56.120
    }
}

#虚拟服务器定义(在这部分配置LVS)
virtual_server 192.168.56.110 80 {      #设置虚拟服务器的ip和端口,用空格隔开
    delay_loop 6                #每隔6秒对realserver进行健康状态检查
    lb_algo rr                  #设置调度算法
    lb_kind DR                  #设置LVS的类型,有DR、NAT和TUN
    persistence_timeout 50      #设置会话保持时间,用户在请求页面后,若在50s内有操作时,请求会一直分发到同一服务节点上,并重新开始计时
    protocol TCP                #指定转发协议类型,有UDP和TCP

    real_server 192.168.56.103 80 {     #配置realserver的ip和端口,用空格隔开
        weight 1                        #设置权重
        TCP_CHECK {                     #对realserver状态检查的设置
            connect_timeout 3           #3秒无响应时超时
            nb_get_retry 3              #表示重试的次数
            delay_before_retry 3        #表示重试的时间间隔
        }
    }
    real_server 192.168.56.104 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}



    注意要点:keepalived启动时默认查找/etc/keepalived/keepalived.conf配置文件,若想指定配置文件,可”keepalived -f 配置文件 “启动。

4、将MASTER的配置文件复制到BACKUP上,并修改配置文件中的state和priority
1
2
state BACKUP
priority 70    #改得比MASTER小




5、配置realserver服务器
    1、编写启动脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
vim /etc/init.d/lvs_rs

#! /bin/bash
VIP=192.168.56.110
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
        /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP up
        ;;
stop)
        /sbin/ifconfig lo:0 down
        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
        ;;
*)
        echo "usage:$0 {start|stop}"
        exit 1
        ;;
esac



    2、添加执行权限

1
chmod +x /etc/init.d/lvs_rs



    3、启动脚本

1
./etc/init.d/lvs_rs



6、启动MASTER和BACKUP上的keepalived服务
1
/etc/init.d/keepalived start




至此,搭建的LVS集群系统已正常运行了~~~~



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-269023-1-1.html 上篇帖子: Keepalived基本问题定位方法 下篇帖子: LVS+Keepalived
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表