Linux Virtual Server简介

Linux Virtual Server简介

一、LVS的介绍

二、LVS的工作原理

三、LVS的集群体系结构

四、LVS功能

五、LVS应用场景

六、LVS工作模式和相关命令

七、LVS的十种算法介绍

八、LVS相关软件

九、防火墙标记

十、持久连接

十一、实战案例(搭建DR模型)

一、LVS的介绍

**LVS:Linux Virtual Server(Linux虚拟服务器):是负载调度器,内核集成。**
LVS官网:http://www.linuxvirtualserver.org/

阿里LVS官网:http://github.com/alibaba/LVS

二、LVS工作原理

**VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS。LVS是内核级功能,工作在INPUT链的位置,将发往INPUT的流量进行“处理”**

三、LVS集群体系架构

在这里插入图片描述

四、LVS功能

负载均衡的应用场景为高访问量的业务,提高应用程序的可用性和可靠性

五、LVS应用场景

1、音视频大流量场景
对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全和高可靠的云存储服务。

2、网络游戏动静分离场景
动态请求流量分发:动态请求流量大,采用多台云服务器计算处理,并利用负载均衡服务随时进行流量分发。
静态请求快速加载:静态内容选择对象存储,接入CDN服务,进一步优化内容分发链路,让内容即刻加载。

3、多层次容灾架构场景
4、海量访问流量分发场景

六、LVS工作模式和相关命令

LVS集群类型中的术语
VS:Virtual Server(虚拟服务器),Director Server(DS),Dispatcher(调度器),Load Balancer(负载均衡器)
RS:Real server(真正的服务器,通常指服务器)
CIP:Client IP(客户端IP)
VIP:Virtual server IP(VS外网的IP)
DIP:Director IP (VS内网的IP)
RIP:Real server(真正的服务器IP)
访问流程:CIP<-->VIP==DIP<-->RIP
工作模式
lvs-nat:修改请求报文的目标IP,多目标IP的DNAT
lvs-dr: 操纵封装新的MAC地址
lvs-tun: 在原请求IP报文之外新加一个IP首部
lvs-fullnat: 修改请求报文的源和目标IP
1、LVS的NAT模式

在这里插入图片描述

过程:
(1)用户发送请求经过公网到负载均衡器
(2)负载均衡器调度和重写数据包把数据包发送给中心开关
(3)服务器处理请求后,将回复包发给负载均衡调度器
(4)负载均衡调度器重写回复数据包通过虚拟IP通道把回复请求发给用户
lvs-nat:本质是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发
(1)RIP和DIP应在同一个IP网络里,且应使用私网地址;RS的网关要指向DIP
(2)请求报文和响应报文都必须经由Director转发,Director易于成为系统瓶颈
(3)支持端口映射,可修改请求报文的目标PROT
(4)VS必须是Linux系统,RS可以是任意OS系统
这里Director :调度器
2、LVS的DR模式

在这里插入图片描述

过程:
(1)用户发送请求通过公网到虚拟服务器上
(2)虚拟服务器重新封装MAC头部后在内部网络(必须在同一个物理段)通过直接路由发送给RS
(3)RS处理完请求后直接返回给用户
LVS-DR:Direct Routing(直接路由),LVS默认模式,应用最广泛,通过请求报文重新封装一个MAC头部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址,源IP/PORT,以及目标IP/PORT均保持不变。

在这里插入图片描述

DR模式的特点:
1、Director和各RS都配置有VIP
2、确保前端路由器将目标IP为VIP的请求报文发往Director
       (1)在前端网关做静态绑定VIP和Director的MAC地址
       (2)在RS上使用arptables工具
               arptables -A IN -d $VIP -j DROP
               arptables -A OUT -s $VIP -j mangle --mangle-ip-s $RIP
        (3)在RS上修改内核参数以限制arp通告及应答级别
                 /proc/sys/net/ipv4/conf/all/arp_ignore
                 /proc/sys/net/ipv4/conf/all/arp_announce
 3、RS的RIP可以使用私网地址,也可以是公网地址;RIP和DIP在同一IP网络;RIP的网关不能指向DIP,以确保响应报文不会经由Director
 4、RS和Director要在同一个物理网络
 5、请求报文要经由Director,但响应报文不经由Director,而由RS直接发往Client
 6、不支持端口映射(端口不能修改)
 7、无需开启ip_forward
 8、RS可使用大多数OS系统

七、LVS的十种算法介绍

1、静态方法:仅根据算法本身进行调度
(1)RR:roundrobin(设置轮流捡取),轮询算法,较常用
(2)WRR:Weighted RR,加权轮询,较常用
(3)SH:Source Hashing(y源散列)实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定
(4)DH:Destination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请求始终发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如:Web缓存。
2、动态方法:主要根据每RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度
(1)LC:least connections(至少连接) 适用于长连接应用
    Overhead=activeconns*256+inactiveconns
(2)WLC:Weighted LC,默认调度方法,较常用
    Overhead=(activeconns*256+inactiveconns)/weight
(3)SED:Shortest Expection Delay,初始连接高权重优先,只检查活动连接,而不考虑非活动连接
    Overhead=(activeconns+1*256/weight
(4)NQ:Never Queue,第一轮均匀分配,后续SED
(5)LBLC:Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理,实现Web Cache等
(6)LBCR:LBLC with Relication, 带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制到负载轻的RS,实现Web Cache等

八、LVS相关软件

1、程序包:ipvsadm
Unit File:ipvsadm.server
主程序:/usr/sbin/ipvsadm
规则保存工具:/usr/sbin/ipvsadm-save
规则重载工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config
ipvs调度规则文件:/etc/sysconfig/ipvsadm
2、ipvsadm命令
ipvsadm核心功能:
   集群服务管理:增、删、改
   集群服务的RS管理:增、删、改
   查看
ipvsadm 工具用法:

在这里插入图片描述

管理集群服务:增、删、改
增、修改:
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
说明:

在这里插入图片描述

删除:ipvsadm -D -t|u|f service-address

在这里插入图片描述

清空定义的所有内容:ipvsadm -C
清空计数器:ipvsadm -Z [-t|u|f service-address]
查看:ipvsadm -L|l [options]

在这里插入图片描述

ipvs规则:/proc/net/ip_vs
ipvs连接:/proc/net/ip_vs_conn
保存:建议保存至/etc/sysconfig/ipvsadm
     ipvsadm-save > /PATH/TO/IPVSADM_FILE
     ipvsadm -S > /PATH/TO/IPVSADM_FILE
     systemctl stop ipvsadm.service #会自动保存规则至/etc/sysconfig/ipvsadm
重载:
ipvsadm-restore < /PATH/FROM/IPVSADM_FILE
systemctl start ipvsadm.service #会自动加载/etc/sysconfig/ipvsadm中规则

九、防火墙标记

FWM:FireWall Mark (防火墙标记)
MARK target 可用于给特定的报文打标记
--set-mark value
其中:value 可为0xffff格式,表示十六进制数字
借助于防火墙标记来分类报文,而后基于标记定义集群服务;可将多个不同的应用使用同一个集群服务进行调度
实现方法:
在Director主机打标记:
iptables -t mangle -A PREOUTING -d $vip $proto -m multiport --dports $port1,$port2,... -j MARK --set-mark NUMBER
在Director主机基于标记定义集群服务
ipvsadm -A -f NUMBER [options]

十、LVS持久连接

session绑定:对共享同一组RS的多个集群服务,需要统一进行绑定,lvs sh算法无法实现持久连接(lvs persistence) 模板:实现无论使用任何调度算法,在一段时间内(默认360s),能够实现将来自同一个地址的请求始终发往同一个RS
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
持久连接实现方式:
    每端口持久(PPC):每个端口定义为一个集群服务,每集群服务单独调度
    每防火墙标记持久(PFWMC):基于防火墙标记定义集群服务;可实现将多个端口上的应用统一调度,即所谓的port Affinity
    每客户端持久(PCC):基于0端口(表示所有服务)定义集群服务,即将客户端对所有应用的请求都调度至后端主机,必须定义为持久模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值