LVS负载基础知识
# LVS基本概述
# 什么是LVS
LVS
的英文全称是Linux virtual server
,即Linux虚拟服务器。其实它是一种cluster
集群技术,主要用于负载均衡,将用户请求均匀的调度到不同的服务器上执行。
注意:
LVS
是基于四层IP:PORT
的负载均衡。
# LVS组成部分
ipvs
:工作在内核空间,实现集群服务的"调度",借鉴了iptables
的实现方式;ipvsadm
:工作在用户空间,负责为ipvs
内核框架编写规则。定义谁是集群服务,谁是后端服务器,数据包如何调度,调度到哪个节点。
# LVS相关名词
接下来我们需要了解LVS中的名词,比如:DS、RS、CIP、VIP、DIP、RIP
,通过下面的图来做了解其含义。
名称 | 详细名称 | 描述 |
---|---|---|
DS | Director Server | 目标服务器,即负载均衡器LVS |
RS | Real Server | 真实应用服务,即后端服务器 |
CIP | Client lP | 客户端请求lP |
VIP | Virtual lP | 直接面向用户的IP地址,通常为公网IP |
DIP | Director Server lP | 用于与后端RIP通信的IP地址 |
RIP | Real Server IP | 后端真实服务器的IP地址 |
# LVS应用场景
腾讯云负载均衡场景示例 (opens new window)
阿里云负载均衡场景示例 (opens new window)
# LVS常见模型
LVS
负载均衡模型有NAT、DR、TUN、FULL-NAT
,较为常见的模型有NAT、DR
,使用最为广泛的模型是DR
# NAT模型
NAT
:通过修改请求报文的目标IP
地址,然后根据算法挑选出某台RS
进行转发。(请求进入负载均衡器LVS
时做DNAT
,后端返回数据报文出负载均衡时做SNAT
)
# DR模型
DR
:通过修改请求报文的目标MAC
地址,然后根据算法挑选出某台RS
进行转发。(请求进入负载均衡器LVS
时做MAC
地址转换,后端返回数据报文不经过负载均衡,所以无需做转换)
# LVS集群命令介绍
ipvsadm
的用法大概分类如下两类:管理集群服务(定义负载均衡配置)
管理后端RS(定义负载均衡后端节点的增删改查)
ipvsadm - Linux virtual server administration ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine] [-b sched-flags] ipvsadm -D -t|u|f service-address ipvsadm -C ipvsadm -R ipvsadm -S [-n] ipvsadm -a|e -t|u|f service-address -r server-address [options] ipvsadm -d -t|u|f service-address -r server-address ipvsadm -L|l [options] ipvsadm -Z [-t|u|f service-address] ipvsadm --set tcp tcpfin udp ipvsadm --start-daemon state [--mcast-interface interface] [--syncid sid] ipvsadm --stop-daemon state # COMIMANDS-cluster -A , --add-service # 添加一个集群服务 -E , --edit-service # 修改已添加的集群服务 -D , --delete-service # 删除虚拟服务 -C , --clear # 清空集群所有规则 -R , --restore # 从文件中恢复集群 -S , --save # 将集群信息报文至文件中 -L|-l , --list # 列出当前集群信息 -Z , --zero # 清空集群计数器 -n # 数字格式显示ip和port,注意-n只能写在-L之后 # COMMANDS-RS -a , --add-server # 表示要添加RS节点 -e , --edit-server # 表示要修改RS节点 -d , --delete-server # 表示要删除RS节点 -t , service-address # 指定操作哪个节点地址与端口 # host[:port],tcp协议 -u , service-address # 指定操作哪个节点地址与端口 # host[:port],udp协议 -r , --real-server # 指定RS节点地址与端口 -w , --weight # 指定RS节点的权重 -m , --masquerading # 指定LVS工作模型(NAT模型) -g , --gatewaying # 指定LVS工作模型(DR模型) -i , --ipip # 指定LVS工作模型(tun模型) -s , --schedu1er # 指定LVS调度策略,默认为wlc -p , --persistent # 持久连接超时时间 -f , --fwmark-service # 防火墙标记 -c , --connection # 显示ipvs连接信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Last Updated: 2022/03/30, 11:09:09