1. LVS介绍
-
LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士1998年5月发起的自由软件项目
-
我们通过LVS可以实现一个拥有高性能、高可用性、易扩展的服务器集群
-
在Linux2.4内核之后,LVS已经是Linux内核的一部分,无需重新编译
2. LVS的组成
LVS有两部分组成:IPVS和ipvsadm
2.1 IPVS(ip virtual server)
工作在内核空间,真正的调度由它来完成,无法对它直接操作。
2.2 ipvsadm管理工具
用户空间管理工具ipvsadm来管理IPVS,负责为ipvs内核框架编写规则,定义虚拟服务器,定义后端真实的服务器(Real Server),定义工作模式和调度算法等。虚拟服务器(VS)负责接受请求,然后将请求通过算法调度给后端的真实服务器(RS)
3. ipvsadm管理工具介绍(操作均基于centos6操作系统)
3.1 安装
ipvsadm可以直接使用yum安装
yum -y install ipvsadm
3.2 基本命令格式
虚拟服务器:
ipvsadm 选项 虚拟服务器地址 -s 算法
真实服务器:
ipvsadm 选项 虚拟服务器地址 -r 真实服务器地址 -w 权重值工作模式
3.3 常用参数
-A 添加一个虚拟服务器,可跟ip或者ip:80(端口)
-E 编辑一个虚拟服务器
-D 删除一个虚拟服务器
-C 清空虚拟服务器
-R 还原规则-s保存规则
-a 添加一个真实服务器(RS)
-e 编辑一个真实服务器
-d 删除一个真实服务器
-t 使用tcp
-u 使用udp
-L list 查看虚拟服务器列表
-s 指定算法
-r 指定真实服务器RIP
-g 指定工作模式为DR模式
-i 指定工作模式为tunl模式
-m 指定工作模式为NAT模式
-w 指定RS权重不能超过100
-c 查看连接状态可与L使用
-n 以数字的形式显示输出结果
3.4 实例
3.4.1 添加虚拟服务器
添加一个虚拟服务器IP地址为192.168.153.188,tcp服务,端口为80,算法为rr
[root@localhost ~]# ipvsadm -A -t 192.168.153.188:80 -s rr
3.4.2 添加真实服务器
添加一个真实服务器地址为192.168.153.163,端口为80,权重为1,工作模式为nat模式
[root@localhost ~]# ipvsadm -a -t 192.168.153.188:80 -r 192.168.153.163:80 -w 1 -m
添加一个真实服务器地址为192.168.153.167,端口为80,权重为1,工作模式为nat模式
[root@localhost ~]# ipvsadm -a -t 192.168.153.188:80 -r 192.168.153.167:80 -w 1 -m
3.4.3 使用 ipvsadm -Ln 命令查看添加结果
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.153.188:80 rr
-> 192.168.153.163:80 Local 1 0 0
-> 192.168.153.167:80 Masq 1 0 0
3.4.4 保存配置结果(不然重启之后配置会丢失)
[root@localhost ~]# service ipvsadm save
ipvsadm: Saving IPVS table to /etc/sysconfig/ipvsadm: [ OK ]
3.4.5 查看保存配置的文件
[root@localhost ~]# cat /etc/sysconfig/ipvsadm
-A -t 192.168.153.188:80 -s rr
-a -t 192.168.153.188:80 -r 192.168.153.163:80 -g -w 1
-a -t 192.168.153.188:80 -r 192.168.153.167:80 -m -w 1
3.4.6 删除真实服务器
删除上面添加的163真实服务器
[root@localhost ~]# ipvsadm -d -t 192.168.153.188:80 -r 192.168.153.163:80
3.4.7 使用 ipvsadm -Ln 命令查看删除结果
163真实服务器已经被删除
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.153.188:80 rr
-> 192.168.153.167:80 Masq 1 0 0
3.4.8 删除虚拟服务器
[root@localhost ~]# ipvsadm -D -t 192.168.153.188:80
3.4.9 清空虚拟服务器
[root@localhost ~]# ipvsadm -C
3.4.10 重新读取保存的配置文件并查看
所有的配置已经恢复(上面的删除操作并没有保存)
[root@localhost ~]# service ipvsadm restart
ipvsadm: Clearing the current IPVS table: [ OK ]
ipvsadm: Unloading modules: [ OK ]
ipvsadm: Clearing the current IPVS table: [ OK ]
ipvsadm: Applying IPVS configuration: [ OK ]
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.153.188:80 rr
-> 192.168.153.163:80 Local 1 0 0
-> 192.168.153.167:80 Masq 1 0 0
LVS负载均衡NAT和DR模式配置案列: https://blog.csdn.net/m0_46674735/article/details/109742418