目录:
- 安装
- 基本描述
- 用法
- 命令选项
- 示例
【安装】
可使用yum安装或者从官网下载安装包源码安装,两种方式皆可
先检查是否已经安装ipvsadm
[root@v_machine1 ~]# yum list installed | grep ipvsadm
若没有安装,则使用以下命令安装ipvsadm
[root@v_machine1 ~]# yum -y install ipvsadm
【基本描述】
ipvsadm是linux下的LVS虚拟服务器的管理工具,LVS工作于内核空间,而ipvsadm则提供了用户空间的接口;
【用法】
基本用法如下,分别用于设置虚拟服务算法和后端真实服务器
ipvsadm 选项 服务器地址 -s 算法
ipvsadm 选项 服务器地址 -r 真实服务器地址 [工作模式][权重]...
【命令选项】
-A 添加一个虚拟服务,使用ip地址、端口号、协议来唯一定义一个虚拟服务
-E 编辑一个虚拟服务
-D 删除一个虚拟服务
-C 清空虚拟服务列表
-R 从标准输入中还原虚拟服务列表
-S 保存虚拟服务规则至标准输出,输出规则可使用-R选项还原
-L 显示虚拟服务列表
-Z 虚拟服务器列表计数器清零(清空当前连接数)
-a 添加一台真实服务器
-e 编辑一台真实服务器
-d 减少一台真实服务器
-t 使用TCP服务,该参数后需加主机与端口信息
-u 使用UDP服务,该参数后需加主机与端口信息
-s 指定lvs的调度算法
-r 设置真实服务器IP与端口
-g 设置lvs工作模式为DR直连路由
-i 设置lvs工作模式为TUN隧道
-m 设置lvs工作模式为NAT地址转换模式
-w 指定真实服务器权重
-c 连接状态,配和-L使用
-n 数字格式显示
--stats 显示统计信息
--rate 显示速率信息
--sort 对虚拟服务器和真实服务器排序输出
--set tcp tcpfin udp
设置ipvs连接超时值,三个参数分别代表tcp会话超时时间、收到FIN包后tcp会话超时时间、udp超时时间
--timeout
显示tcp tcpfin udp的timeout值
--start-daemon
启动同步守护进程
--stop-daemon
停止同步守护进程
【示例】
添加虚拟服务,设置调度算法为轮询:
[root@v_machine1 ~]# ipvsadm -A -t 192.168.237.131:80 -s rr
[root@v_machine1 ~]# 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.237.131:80 rr
让80端口请求通过NAT模式转发给两个后端真实服务器:
[root@v_machine1 ~]# ipvsadm -a -t 192.168.237.131:80 -r 192.168.237.171:80 -m
[root@v_machine1 ~]# ipvsadm -a -t 192.168.237.131:80 -r 192.168.237.172:80 -m
[root@v_machine1 ~]# 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.237.131:80 rr
-> 192.168.237.171:80 Masq 1 0 0
-> 192.168.237.172:80 Masq 1 0 0
修改调度算法为加权轮询:
[root@v_machine1 ~]# ipvsadm -E -t 192.168.237.131:80 -s wrr
规则表备份与还原:
[root@v_machine1 ~]# ipvsadm -S > /tmp/ip_vs.bak
[root@v_machine1 ~]# cat /tmp/ip_vs.bak
-A -t v_machine1:http -s rr
-a -t v_machine1:http -r 192.168.237.171:http -m -w 1
-a -t v_machine1:http -r 192.168.237.172:http -m -w 1
[root@v_machine1 ~]# ipvsadm -C
[root@v_machine1 ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@v_machine1 ~]# ipvsadm -R < /tmp/ip_vs.bak
[root@v_machine1 ~]# 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.237.131:80 rr
-> 192.168.237.171:80 Masq 1 0 0
-> 192.168.237.172:80 Masq 1 0 0