LVS管理工具ipvsadm
分享
LVS现在已经集成在Linux内核模块中,但整个LVS环境有分为内核层与用户层,内核层负责核心算法的实现,用户层需要安装ipvsadm工具,通过命令将管理员需要的工作模式与实现算法传递给内核来实现。LVS的内核模块名称为ip_vs,命令工具在CentOS6.5光盘中已经自带,我们可以使用YUM方式安装ipvsadm,也可以自行去官网下载使用源码安装
1:YUM安装
yum install -y ipvsadm
安装完成后会生成一个命令工具我们需要使用该命令来管理配置LVS虚拟服务器组和相应的调度算法
ipvasdm命令的描述和用法如下
描述:Linux虚拟服务器管理工具
用法:ipvasdm 选项 服务器地址 -s 算法
ipvasdm 选项 服务器地址 -r 真实服务器地址 [工作模式][权重]...
选项:
-A 添加一个虚拟服务器,使用IP地址、端口号、协议来唯一定义一个虚拟服务器
-E 编辑一个虚拟服务器
-D 删除一个虚拟服务器
-C 清空一个虚拟服务器表
-R 从标准来输入中还原虚拟服务规则
-S 保存虚拟服务规则至标准输出,输出的规则可以使用-R导入还原
-a 在虚拟服务中添加一台真实服务器
-e 在虚拟服务中编辑一台真实服务器
-d 在虚拟服务中减少一台真实服务器
-L 显示虚拟服务列表
-t 使用TCP服务,该参数后需要跟主机与端口信息
-u 使用UDP服务,该参数后需要跟主机与端口信息
-s 指定LVS所采用的调度算法
-r 设置真实服务器IP地址与端口信息
-g 设置LVS工作模式为DR直连路由模式
-i 设置LVS工作模式为TUN隧道模式
-m 设置LVS工作模式为NAT地址转换模式
-w 设置指定服务器的权重
-c 连接状态,需要配合-L使用
-n 数字格式输出
命令实例:
查看LVS规则表:
[root@arthur ~]# 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.1.106的80端口的请求,最终被调度器通过NAT模式转发给了192.168.1.105、192.168.108这两个主机的80端口:
[root@arthur ~]# ipvsadm -A -t 192.168.1.106:80 -s rr
[root@arthur ~]# ipvsadm -a -t 192.168.1.106:80 -r 192.168.1.105:80 -m
[root@arthur ~]# ipvsadm -a -t 192.168.1.106:80 -r 192.168.1.108:80 -m
[root@arthur ~]# 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.1.106:80 rr
-> 192.168.1.105:80 Masq 1 0 0
-> 192.168.1.108:80 Masq 1 0 0
查看IPVS调度状态:
ipvsamd -Lnc
删除为虚拟服务提供Web功能的真实服务器192.168.01.108
[root@arthur ~]# ipvsadm -d -t 192.168.1.106:80 -r 192.168.1.108
虚拟服务规则备份与还原:
[root@arthur ~]# ipvsadm -S > /tmp/ip_vs.bak ##-S 备份虚拟服务规则
[root@arthur ~]# ipvsadm -C ##-C 删除虚拟服务规则
[root@arthur ~]# ipvsadm -Ln ##查看现在的虚拟服务规则
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn ##已清空
[root@arthur ~]# ipvsadm -R < /tmp/ip_vs.bak ## -R 还原规则
[root@arthur ~]# 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.1.106:80 rr
-> 192.168.1.105:80 Masq 1 0 0
修改虚拟服务的调度算法:
[root@arthur ~]# ipvsadm -E -t 192.168.1.106:80 -s wrr
[root@arthur ~]# 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.1.106:80 wrr ######原来是rr,被修改为wrr
-> 192.168.1.105:80 Masq 1 0 0
创建一个使用WRR算法的虚拟服务,工作模式为直接路由(DR)模式,在该虚拟服务上添加两台真实服务器,并为每台真实服务器设置权重
[root@arthur ~]# ipvsadm -A -t 192.168.1.106:80 -s wrr
[root@arthur ~]# ipvsadm -a -t 192.168.1.106:80 -r 192.168.1.105 -g -w 1
[root@arthur ~]# ipvsadm -a -t 192.168.1.106:80 -r 192.168.1.108 -g -w 2
[root@arthur ~]# 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.1.106:80 wrr
-> 192.168.1.105:80 Route 1 0 0
-> 192.168.1.108:80 Route 2 0 0