LVS之ipvsadm命令
目录:
- 安装
- 基本描述
- 用法
- 命令选项
- 示例
【安装】
可使用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