LVS介绍

LVS(四层负载均衡)是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。LVS的具体实现是IPVS内核模块,因此,可简单将LVS和IPVS作为一个东西称呼。早在Linux2.2内核时,IPVS就已经以内核补丁的形式出现了。从2.4.23版本开始,IPVS软件就是合并到Linux内核的常用版本的内核补丁的集合。从2.4.24以后IPVS已经成为Linux官方标准内核的一部分。使用该软件配置LVS时候,不能直接配置内核中的ipvs,而需要使用ipvs的管理工具ipvsadm进行管理,当然还可通过Keepalived软件直接管理ipvs,ipvs的基础配置工具是ip。

术语命名:

VIP 虚拟IP地址 域名解析的IP地址。

RIP 真实IP地址 在集群下面节点上使用的IP地址,物理IP地址。

DIP Director IP 是 Director用于连接内外网络即物理网卡的IP地址。

CIP 客户端IP

LVS四种负载工作模式:

NAT模式(网络地址转换模式)

工作原理是:客户端访问LVS时,LVS通过重写请求报文的目标地址,且根据预设的调度算

法,将请求分派给后端真实服务器,真实服务器接收到请求处理后,发出响应报文也需要通过

LVS返回,返回时需要修改报文的源地址,然后返回给客户,完成整个负载调度过程

FULLNAT模式(完全网络地址转换模式)

该模式和NAT模式区别是:数据包进入时,除了做DNAT,还做SNAT(用户ip->内网ip),数据包

出时,除了做SNAT,还做DNAT(内网ip-->用户ip)从而实现LVS-RealServer间可以跨vlan通讯,

RealServer只需要连接到内网。

TUN模式(IP隧道模式)

当 LVS 分配请求到不同的 real server,real server 处理请求后直接回应给用户,这样 LVS

仅处理客户机与服务器的一半连接。IP TUN 技术极大地提高了 LVS 的调度处理能力,同时也极

大地提高了系统能容纳的最大节点数,可以超过 100 个节点。real server 可以在任何 LAN 或

WAN 上运行,这意味着允许地理上的分布,这在灾难恢复中有重要意义。但此模式要求所有服

务器必须支持 IP 隧道协议,因此只能在 linux 下使用。

DR模式(直接路由模式)

通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器将响应后

的处理结果直接返回给客户端用户,同TUN技术,DR技术可极大地提高集群系统伸缩性。没有

IP 封装的开销,但由于采用物理层(修改 MAC地址)技术,所有服务器都必须在同一个局域网

LVS调度算法(标红是我认为比较常用的):

应用:

说明一下:LVS没有健康检查

1. 实现LVS+keepalived db高可用

2. 实现Web4层负载及后端7层反代+Web节点

ipvsadm操作命令

-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录 -E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录 -D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录 -C --clear 清除内核虚拟服务器表中的所有记录 -R --restore 恢复虚拟服务器规则 -S --save 保存虚拟服务器规则,输出为 -R 选项可读的格式 -a --add-server 在内核虚拟服务器表的一条记录里添加一条新的real server服务器记录 -e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录 -d --delete-server 删除一条虚拟服务器记录中的某条real server服务器记录 -L|-l --list 显示内核虚拟服务器表 -Z --zero 虚拟服务表计数器清零(清空当前的连接数量等) --set tcp tcpfin udp 设置连接超时值 --start-daemon 启动同步守护进程,它后面可以是 master 或 backup,用来说明 LVS Router 是 master 或是 backup,在这个功能上也可以采用 keepalived 的 VRRP 功能 --stop-daemon 停止同步守护进程 -h --help 显示帮助信息 -t --tcp-service service-address 说明虚拟服务器提供的是 tcp 的服务[vip:port] or [real-server-ip:port] -u --udp-service service-address 说明虚拟服务器提供的是 udp 的服务[vip:port] or [real-server-ip:port] -f --fwmark-service fwmark 说明是经过 iptables 标记过的服务类型 -s --scheduler scheduler 使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq 默认的调度算法是:wlc -p --persistent [timeout] 持久稳固的服务,这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理,timeout 的默认值为 300 秒 -M --netmask netmask persistent granularity mask -r --real-server server-address 真实的服务器 [real-server:port] -g --gatewaying 指定 LVS 的工作模式为直接路由模式(也是 LVS 默认的模式) -i --ipip 指定 LVS 的工作模式为隧道模式 -m --masquerading 指定 LVS 的工作模式为 NAT 模式 -w --weight weight 真实服务器的权值 --mcast-interface interface 指定组播的同步接口 -c --connection 显示 LVS 目前的连接,如:ipvsadm -L -c --timeout 显示 tcp tcpfin udp 的 timeout 值,如:ipvsadm -L --timeout --daemon 显示同步守护进程状态 --stats 显示统计信息 --rate 显示速率信息 --sort 对虚拟服务器和真实服务器排序输出 --numeric -n 输出 IP 地址和端口的数字形式 设置超时时间用 ipvsadm --set tcp tcpfin udp 设置,比如 ipvsadm --set 120 20 100 表示 tcp 空闲等待时间为 120 秒、客户端关闭链接等待时间为 20 秒、udp 空闲等待为 100 秒

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一种常见的架构组合,用于构建高可用、负载均衡和容灾的Web应用系统。下面是每个组件的简要介绍LVS(Linux Virtual Server):LVS是一个在Linux内核中实现的负载均衡工具。它通过将输入流量分发到多个后端服务器,以提高系统的性能和可靠性。 keepalived:keepalived是一个基于VRRP(Virtual Router Redundancy Protocol)的高可用性解决方案。它可以监控服务器的健康状态,并在主服务器故障时自动切换到备份服务器。 nginx:nginx是一个高性能的HTTP和反向代理服务器。它可以同时处理静态和动态内容,并提供负载均衡和高可用性功能。 tomcat:tomcat是一个开源的Java Servlet容器,用于运行Java Web应用程序。它可以与nginx配合使用,处理动态内容。 mysql:mysql是一个流行的关系型数据库管理系统,常用于存储应用程序的数据。 MHA(MySQL Master High Availability):MHA是一个用于MySQL主从复制环境的高可用性解决方案。它可以自动监控主服务器的健康状态,并在主服务器故障时自动切换到备份服务器。 NFS(Network File System):NFS是一种分布式文件系统协议,允许远程服务器通过网络访问共享文件。在这种架构中,NFS可以用于共享静态文件或其他数据,以提供一致的内容访问。 这种架构组合可以提供高可用性、负载均衡和容灾能力,适用于大型Web应用系统。但是具体的实施和配置需要根据具体需求和环境来确定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值