设为首页 收藏本站
查看: 1531|回复: 3

[经验分享] lvs+keepalived

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2013-11-20 11:02:37 | 显示全部楼层 |阅读模式
一、说明:
在《LVS之一:三种工作模式的优缺点比较(NAT/TUN/DR)》文章讲述了LVS的三种转发模式对比,我们先就用LVS的DR模式来实现Web应用的负载均衡。为了防止LVS服务器自身的单点故障导致整个Web应用无法提供服务,因此还得利用Keepalived实现lvs的高可用性,keepalived主要使用VRRP协议来保存链路的高可用性。而VRRP(Virtual Router Redundancy Protocol)协议本身是用于实现路由器冗余的协议。

LVS-DR模式的原理如下(借用别人的图):
即客户端访问VIP(域名解析到VIP),LVS接收情况后根据负载均衡调度算法,转发请求到真实服务器,真实服务器接收到客户端请求后,将处理结果直接返回给客户端。

二、网络拓扑及IP规划:
说明:
1、 LVS服务器和WEB服务器必须在同一网段;

2、 多台Web服务器间使用NFS服务器等共享存储存放用户上传附件,以保障数据的一致性(如上传图片)。下文讨论




IP地址规划:

VIP 172.16.23.200
LVS-MASTER 172.16.23.101
LVS-SLAVE 172.16.23.102
WEB1 172.16.23.99
WEB2 172.16.23.232


三、安装LVS+Keepalived:
1.使用YUM在线安装:
1
# yum install -y ipvsadm keepalived
2.检查安装结果:


# rpm -qa |grep keepalived
keepalived-1.2.7-3.el6.x86_64
# rpm -qa |grep ipvsadm
ipvsadm-1.25-10.el6.x86_64
3.服务配置:


# chkconfig keepalived on
# service keepalived start
四、配置LVS服务器:
1.修改keepalived配置文件:


# vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
   router_id LVS_MASTER      #设置LVS的ID,在一个网络内是唯一的。从的是LVS_BACKUP
}
vrrp_instance VI_1 {     #设置vrrp组,唯一且同一LVS服务器组要相同
    state MASTER      #备份LVS服务器设置为BACKUP
    interface eth2     #设置对外服务的接口
    virtual_router_id 42      #设置虚拟路由标识
    priority 100      #设置优先级,值越大,优先级越高。备份的是99
    advert_int 1      #设置同步时间间隔
    authentication {     #设置验证类型,master和backup一样
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {     #设置VIP,可以是多个,每个占一行
        172.16.23.200
    }
}
virtual_server 172.16.23.200 80 {
    delay_loop 6      #健康检查时间间隔,单位是S
    lb_algo wrr      #负载均衡调度算法
    lb_kind DR      #负载均衡转发规则
    nat_mask 255.255.252.0      #网络掩码,DR模式要保障真实服务器和LVS在同一网段
    persistence_timeout 60      #会话保持时间,单位是S
    protocol TCP           #协议
    real_server 172.16.23.99 80 {     #真实服务器配置,80为端口号
        weight 3      #权重
        TCP_CHECK {     #服务器检测方式
        connect_timeout 10      连接超时
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
        }
    }
    real_server 172.16.23.232 80{
        weight 3
        TCP_CHECK{
        connect_timeout 10
        nb_get_retry 3
        delay_before_retry 3
        connect_port 80
}
}
}
作为高可用的备份lvs服务器配置只需在上述配置中的master修改backup即可,priority 99,其他保持相同.

2.分别在两台LVS上重启服务:
# /etc/init.d/keepalived restart
Stopping keepalived: [  OK  ]
Starting keepalived: [  OK  ]
注:由于keepalived配置文件有语法错误也能启动,因此看到启动了lvs服务,不代表配置文件没有错误,如果遇到lvs不能正常转发,及时跟踪日志进行处理。

tailf /var/log/message

五、WEB服务器IP绑定配置:
在前面的文章中介绍DR模式时提到:负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。但实际上客户端访问时,IP都是指向的负载均衡器的ip(也就是LVS的VIP),如何能让真是服务器处理IP头为VIP的请求,这就需要做下面的操作,将VIP绑定到真实服务器的lo网口(回环),为了防止IP广播产生IP冲突,还需关闭IP广播,具体如下:

1.编辑开机启动脚本:


#!/bin/bash
#chkconfig:2345 79 20
#description:realserver
SNS_VIP=172.16.23.200
. /etc/rc.d/init.d/functions
case $1 in
        start)
                ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
                /sbin/route add -host $SNS_VIP dev lo:0
                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_snnounce
                sysctl -p > /dev/null 2>&1
                echo "RealServer Start OK"
        ;;
        stop)
                ifconfig lo:0 down
                route del $SNS_VIP > /dev/null 2>&1
                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 "RealServer Stoped"
        ;;
        *)
                echo "Usage:$0 {start|stop}"
                exit 1
esac
exit 0
脚本说明:
arp_ignore: 定义接收到ARP请求时的响应级别;

0:只要本地配置的有相应地址,就给予响应;默认;
1:仅在请求的目标地址配置在到达的接口上的时候,才给予响应;
arp_announce:定义将自己地址向外通告时的通告级别;

0:将本地任何接口上的任何地址向外通告;默认;
1:试图仅向目标网络通告与其网络匹配的地址;
2:仅向与本地接口上地址匹配的网络进行通告;

2、 设置脚本开机启动并立即启动:


# chkconfig --add realserver
# chkconfig realserver on
# chmod +x /etc/init.d/realserver
# /etc/init.d/realserver start
RealServer Start OK
3、 检测IP配置:


# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:50:56:82:15:17
          inet addr:172.16.23.5  Bcast:172.16.23.255  Mask:255.255.252.0
          inet6 addr: fe80::250:56ff:fe82:1517/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:18887342 errors:0 dropped:0 overruns:0 frame:0
          TX packets:147145 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1481870539 (1.3 GiB)  TX bytes:14163814 (13.5 MiB)
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:1669 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1669 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:122730 (119.8 KiB)  TX bytes:122730 (119.8 KiB)
lo:0      Link encap:Local Loopback
          inet addr:172.16.23.200  Mask:255.255.255.255
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
4、 测试LVS:


# watch -n 1 ipvsadm -ln
Every 1.0s: ipvsadm -ln                                                                                     Tue Nov 19 00:54:39 2013
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  172.16.23.200:80 wrr persistent 3
  -> 172.16.23.99:80              Route   1      0          0
  -> 172.16.23.232:80             Route   1      0          0
在多台客户端通过浏览器访问VIP或域名(域名需解析到VIP),看能否获取到正确的页面,且同时观察上述窗口的变化.
当MASTER BACKUP正常运行时,VIP只在MASTER上。
当MASTER 关机后,VIP会转到BACKUP上。
测试当MASTER KEEPALIVED服务停止,BACKUP KEEPALIVED能够使用VIP。



运维网声明 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-10589-1-1.html 上篇帖子: LVS负载均衡详解 下篇帖子: LVS客户端启动脚本

尚未签到

发表于 2013-12-6 15:49:52 | 显示全部楼层
拥有、笑过、哭过。太多理由。爱已经腐朽。

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

尚未签到

发表于 2013-12-18 03:00:54 | 显示全部楼层
》:_____生日快乐我对自己说蜡烛点了寂寞亮了

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

尚未签到

发表于 2013-12-26 17:01:44 | 显示全部楼层
我会努力找到/属于我的/江爱迪生/

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

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

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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