Linux中使用LVS实现负载均衡

什么是LVS

    LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。
同时LVS又被称为四层路由,工作于传输层上。

LVS技术简介

    LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转
移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、
高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。
为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。

LVS的组成部分

    LVS=ipvs+ipvsadm
    ipvs:是一种内核框架,工作于input链上,相当于IPtables的netfilter框架,该框架根据定义在
input链的上规则来进行数据包转发,试不能进入用户空间
    ipvsadm:相当于iptabels命令,用于定义ipvs的规则123123

LVS的名词解释

CIP:客户端IP
VIP:虚拟IP,可以实现转移,配置负载均衡服务器,与CIP进行通信。
real server:正真实现响应的服务器
DS:LVS服务器
DIP:用于与real server服务器交互的ip,与RIP进行通信,位于进行负载均衡的机器上。
RIP:real server的IP.

LVS的工作模型

 1. NAT模式:
    相当于DNAT:
    特征:
    a.RS的RIP为私有IP,且网关只想DIP
    b.RS的RIP和DIP必修在一个网段内
    C.请求和响应都进过LVS服务器
    d.可以进行端口映射 
 2. DR模式:
    请求进过LVS服务器,而响应不仅过LVS服务器,由RS直接响应给Client端。
    过程:客户端发送DIP.VIP的数据包到达DS,DS进行原目标MAC地址转化,转化为RS服务器中某一
 台主机的MAC,然后通过VIP网卡广播出去,到达RS,RS处理之后通过另外一个路由器发送出去,将数据
 包响应给客户端。    
 RS配置要求:
    配置RIP和VIP,且VIP配置在IO上。RS和DS要在同一网段之中
    特征:        
        RS的网关不能指向DIP,不支持端口映射
 3. RUN模式:
    使用IP隧道技术,在原有报文上进行再一次IP封装
    机制:
        客户端发送过来的CIP.VIP报文到达DS,DS将报文经二次封装变成CIP.VIP DIP.RIP的报文,
  进过DS进行转发从DIP接口出来发送值互联网,RS接受到报文之后,进行解析,发向目标ip伪RIP,
  进行接收,之后发向还有一层ip报文,再一次解析,发现目标IP为VIP,RS配置里VIP,所以接受进
  行响应,发送到互联网VIP.CIP的报文
    特性:    
        1,RIP,DIP,VIP都比需全是公网地址    
        2,RS的网关不指向DIP    
        3,不支持端口映射    
        4,RS的OS必须支持隧道功能

LVS调度算法

 1. 静态方法:
    rr:轮询调度算法
    wrr:加权轮询调度算法
    sh:原地址hash,实现同一IP定向至同一服务器
    dh:目标地址HASH 
 2. 动态方法:    
     lc:最少链接,RS的负载=活动链接数*256+非活动链接数
    wrc:加权最少链接,RS的负载/权重
    sed:最少期望延迟,改进版wrc,计算方法负载=(活动链接数+1)*256/wight
    nq:永不排队调度算法,开始时根据论寻将请求分给从大到小的。

ipvsadm命令编写规则

 1. 添加一个服务集群:
    ipvsadm -A|E -t|u|f VIP [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine]
        -A:添加一个服务集群        
            -t:TCP        
            -u:UDP        
            -f:防火墙标记        
            -s:调度算法    
         -E:修改服务器集群 
 2. 在服务集群中添加RS
    ipvsadm -a|e -t|u|f VIP -r DIP [options]
        -a:添加一个RS        
            -t:tcp        
            -u:udp        
            -f:防火墙        
            -r RIP    
        [option]:常用的
            -g:DR模式(默认)        
            -m:nat模式    
       -e:修改 
 3. 删除
     ipvsadm -D -t|u|f VIP           //删除一个服务集群
     ipvsadm -d -t|u|f VIP -r RIP

 4. 清除所有规则
     ipvsadm -C
 5. 保存
    ipvsadm -S [-n]
 6. 重载
    ipvsadm -R
 7. 查看
    ipvsadm -L|l [option]
    option:
        -n:数字格式显示IP地址        
        -c:显示连接数相关的信息        
        --stats:显示统计数据        
        --rate:每秒的平均速率 
 8. 计数器清零
    ipvsadm -Z [-t|u|f VIP]
 1. 结构
    DR:Clone1  192.168.80.150(VIP),192.168.100.1(DIP)
    RS:Clone2  192.168.100.2
    RS:Clone3  192.168.100.3
 2. 步骤:
     DS:
        ifconfig eth1 DIP_GW up
        ifconfig eth0:0 VIP
        ipvsadm -A -t VIP -s rr
        ipvsadm -a -t vip -r RIP -m
    RS:
        ifconfig eth0 RIP up
        route add default gw DIP

使用DR模式实现LVS的负载均衡

 1. 结构
    DS:    192.168.80.150(VIP)
    RS:        192.168.80.130
        192.168.80.131
 2. 步骤
    DS配置:
     ifconfig eth0:0 VIP up
     route add -host VIP dev eth0:0

     ipvsadm -A -t vip -s rr
     ipvsadm -a -t vip -r rip -g -w wight
    RS配置:
     echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
     echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
     echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
     echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

     ifconfig eth0 RIP 
     ifconfig lo:0 VIP netmask 255.255.255.255 broadcast VIP up
     route add -host VIP dev lo:0

LVS的持久性

 1. 持久客户端链接(PCC):在有效时间内,将来至同一客户端发往VIP的所有请求统统定向于统一RS。
    添加规则时:ipvsadm -A -t ip:0 -s rr  -p time 
 2. 持久端口链接(PPC):在有效时间内,将来自统一客户端发往VIP的某端口的所有请求统统定向于
 同一RS。ipvsadm默认是用ppc 
 3. 持久防火墙标记链接(PFMC):端口绑定,基于防火墙标记,将两个或者将两个或者两个以上的端
 口绑定为统一服务。
    添加防火墙标记:(多个端口标记为统一标记码,使用多次一下语句)    
        #iptable -t mangel -A PREROUTING -d VIP -p tcp --dport RS_port -j MARK --set-mark 标记码{0-99} 
        mangel:修改报文首部,及打标记。在input之前打标记。
    添加规则:    
        #ipvsadm -A -f 标记码 -s -p
        #ipvsadm -a -f 标记码 -r ip -g
时间: 2024-10-08 06:16:57

Linux中使用LVS实现负载均衡的相关文章

linux 负载均衡配置 keepalive lvs 使用nginx转发 CentOS7 搭建LVS+keepalived负载均衡

最近希望能够配置一下负载均衡,在虚拟机上面,但是网上找了很多资料很零散,对于不了解的人,很多不够详细,最近终于做好了,把具体的步骤写下来,方便各位网友查阅学习 这个实验需要安装nginx如果没有安装过,请参考: linux安装nginx:http://www.cnblogs.com/aspirant/p/6714548.html (1) 我们的系统是CentOS7 目前需要四台机器,分别为 Director机器 两台:master,slave 真实机器realserver1,realserver

使用LVS实现负载均衡原理及安装配置详解

转:http://www.cnblogs.com/liwei0526vip/p/6370103.html 使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director

【LVS】负载均衡集群NAT模式

LVS (Linux Virtual Server)是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.LVS可以实现LINUX平台下的简单负载均衡. 其中LVS/NAT是一种最简单的方式,所有的RealServer只需要将自己的网关指向Director即可. LVS负载均衡的NAT模式 一.实验准备 在VMware Workstation虚拟机环境下,准备三台服务器,一台作为director, 两台作为real server. 二.网络配置 director需要配置两

使用 LVS 实现负载均衡原理及安装配置详解

使用 LVS 实现负载均衡原理及安装配置详解 来源:肖邦linux 发布时间:2017-02-19 阅读次数:106 0 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学习 LVS 并对其进行了详细的总结记录. 一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用

Nginx/LVS/HAProxy负载均衡软件的优缺点详解

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂

基于LVS的负载均衡实现之NAT

一 什么是负载均衡 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器.FTP服务器.企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务. 二 什么是LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.LVS是负载均衡最著名的实现之一. 三 LVS基本工作原理 LVS集群采用IP负载均衡技术

Keepalived+LVS+Nginx负载均衡之高可用

Keepalived+LVS+Nginx负载均衡之高可用 上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常运行.针对系统架构设计的高可用要求,我们需要解决Nginx负载均衡出现单机故障时,系统正常运行的需求.所以系统架构引入Keepalived组件,实现系统高可用. 一.Keepalived介绍 Keepalived是分布式部署系统解决系统高可用的软件,结合LVS(Linux Virtual Serve

(总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解

PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时,可以考虑用LVS. 一种是通过硬件来进行进行,常见的硬件有比较昂

Nginx/LVS/HAProxy负载均衡软件的优缺点详解(转)

原文:http://www.ha97.com/5646.html PS:Nginx/LVS/HAProxy是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,参考了一些资料,结合自己的一些使用经验,总结一下. 一般对负载均衡的使用是随着网站规模的提升根据不同的阶段来使用不同的技术.具体的应用需求还得具体分析,如果是中小型的Web应用,比如日PV小于1000万,用Nginx就完全可以了:如果机器不少,可以用DNS轮询,LVS所耗费的机器还是比较多的:大型网站或重要的服务,且服务器比较多时