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

[经验分享] LVS+Keepalived实现负载均衡

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-8-13 09:08:13 | 显示全部楼层 |阅读模式
       Lvs是由国防大学章文嵩博士发起的一个开源项目,用来实现服务器之间的负载均衡。全名为linux virtual server             软件包围ipvsadm.tar.gz  随着企业的规模扩大,服务器的访问越来越大。这时候只有两个方案解决服务器的负载能力。
            1: 向上扩展服务器的硬件配置。购买昂贵的机器来承担日益繁重的性能要求。
            2: 增加服务器的数量,以集群的方式来提高服务器的性能。
            第二种方式最好的办法就是使用lvs来进行负载均衡。
           lvs负载均衡的三种模式: NAT(network add translation),  DR(Direct Route) 和TUN模式
             第一种模式NAT:这种模式使用地址转换来进行负载均衡,工作在网络层。所有的请求都经过lvs来进行地址转换,realserver的网关指向lvs服务器,所有的应答由lvs来回送。这样导致lvs的压力非常大,在realserver达到十台时会出现网络瓶颈。 所有的realserver和lvs在一个内网中。
             第二种模式DR:  这种模式工作在数据链路层,在进行ARP时,只有lvs服务器对其相应,然后网关将请求送达至lvs服务器,lvs服务器再通过调度算法发送至realserver,在响应请求时,不需要经过Lvs服务器直接响应客户端,这样大大提高了速率和减轻了Lvs服务器的压力。


              keepalived是工作在lvs之上的,所谓的工作在之上,是keepalived通过自身的模块通过配置文件调用ipvsadm命令对LVS进行配置,实现负载均衡。keepalived和LVS是完全不是同一个概念,它们是独立互不影响的完成自己的工作的,lvs通过负载均衡实现对服务器的高扩展性,keepalived通过自身的子进程对lvs进行健康检查实现LVS的高可用性(即防止LVS崩溃和,发送主从服务器的健康状态和通知切换主从lvs)。
              keepalived有三个进程,VRRP协议子进程,healthcheck子进程和WatchDog父进程。
             VRRP协议子进程负责实现VRRP协议及主从之间的通信,healthcheck负责检查LVS和HTTP的健康状态,
             WatchDog进程管理两个子进程。Keepalived的模块都相对独立,可以实现不同复杂的功能,其中就有对LVS
             进行配置的模块。




            keepalived.conf配置文件详解:
                  global_defs{
                 router_id   50   用来标示主从的区域
           }               进行全局配置。           
         vrrp_instance   vrrp_name {
                     state  MASTER   表示主服务器
                     interface  eth0  在eth0监控
                    virtual_router_id     50  区域标示号
                    priority     50       主从优先级 ,主大于从
                    advert_int   2    主从互相探测是否工作时间的间隔
                     authentication{}  主从互相验证配置
                   virtual_server{
                               10.0.0.113  配置lvs的VIP(虚拟IP)
                                }
            }用来对lvs主从服务器进行配置的区域,使用vrrp组播方式   
      virtual_server 10.0.0.114 3 80 {
                          lb_algo rr  使用的调度算法是rr
                          lb_kind DR  使用的负载均衡模式为DR模式
                         persistence_timeout  3  测试realserver存活超时时间间隔为3秒
                         protocol  TCP  lvs与realserver之间的通信使用的协议为TCP协议
                   real_server  10.0.0.2  80{
                                      weight 1   真实服务器调度所占权重
                                     TCP_CHECK{
                                                    connect_timeout  3  连接超时时间
                                                    connect_port 80
                                                    nb_get_retry 3
                                        }
                                 }  配置realserver
                     } 配置对应的虚拟IP服务器
   
                查看Linux系统的服务和端口对应的配置文件为  /etc/servers文件
                设定系统的umask 使用命令umask 或者在配置文件 /etc/profile中设定。
               



运维网声明 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-23618-1-1.html 上篇帖子: keepalived高可用的常用功能介绍 下篇帖子: linux高级技巧:集群之keepalived
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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