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