Linux 使用ipvsadm管理LVS
2022/11/9 5:24:01
本文主要是介绍Linux 使用ipvsadm管理LVS,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
-
lvs是内核里面的功能,在内核中叫做ipvs
-
用户空间使用ipvsadm这个工具包提供的工具来管理内核中的ipvs功能
ipvsadm 命令
ipvsadm核心功能:
-
集群服务管理:增、删、改
-
集群服务的RS管理:增、删、改
-
查看
使用 ipvsadm 管理集群服务:增、改、删
增、修改:
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
说明:
-A:表示新增 -E:表示修改 service-address:集群的地址(VIP:port) -t|u|f: # 指定这个vip端口使用的协议类型 -t: TCP协议的端口,VIP:TCP_PORT 如: -t 10.0.0.100:80 -u: UDP协议的端口,VIP:UDP_PORT 如:-u 10.0.0.100:80 -f:firewall MARK,标记,一个数字 [-s scheduler]:指定集群的调度算法,默认为wlc
例如:表示创建了一个负载均衡集群,lvs的ip为10.0.0.100
ipvsadm -A -t 10.0.0.100:80 -s wrr
例如:修改lvs的调度算法为rr
[root@lvs ~]# ipvsadm -E -t 192.168.10.100:80 -s rr [root@lvs ~]# ipvsadm -l IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP lvs:http rr -> 10.0.0.7:http Masq 1 0 0 -> 10.0.0.17:http Masq 1 0 0
删除:
ipvsadm -D -t|u|f service-address
说明:
-D:表示删除
使用 ipvsadm 管理集群上的RS:增、改、删
增、改:
ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
说明:
server-address: #在添加rs的时候,指定前面创建的集群地址 rip[:port] #如省略port,不作端口映射 -r: 后端服务器rs的RIP地址 选项: lvs类型: #表示指定lvs使用的功能模式 -g: gateway, dr类型,默认使用dr这种工作模式 -i: ipip, tun类型 -m: masquerade(伪装), nat类型 -w weight:权重 指定这个rs的权重
范例:新增rs到集群中
ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.8:8080 -m -w 3
范例:修改rs的权重,默认为1
[root@lvs ~]# ipvsadm -e -t 192.168.10.100:80 -r 10.0.0.17 -m -w 3 [root@lvs ~]# ipvsadm -l IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP lvs:http rr -> 10.0.0.7:http Masq 1 0 0 -> 10.0.0.17:http Masq 3 0 0
删:
ipvsadm -d -t|u|f service-address -r server-address
清空定义的所有内容:
ipvsadm -C
信息查看:
ipvsadm -L|l [options] -L:查看创建的集群信息
例如:查看集群的信息
[root@lvs ~]# ipvsadm -L IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP lvs:http wrr -> 10.0.0.7:http Masq 1 0 0 -> 10.0.0.17:http Masq 1 0 0
--numeric, -n:以数字形式输出地址和端口号 --exact:扩展信息,精确值 --connection,-c:当前IPVS连接输出,查看连接信息 --stats:统计信息 --rate :输出速率信息
ipvs规则:
/proc/net/ip_vs
例如:
#存放在内存中的 十六进制格式显示 [root@lvs ~]# cat /proc/net/ip_vs IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn #InActConn表示的是非活动的链接 TCP C0A80A64:0050 wrr -> 0A000011:0050 Masq 1 0 0 -> 0A000007:0050 Masq 1 0 0
ipvs连接:
/proc/net/ip_vs_conn
例如:
[root@lvs ~]# cat /proc/net/ip_vs_conn #存放的是pvs的连接信息 十六进制显示 Pro FromIP FPrt ToIP TPrt DestIP DPrt State Expires PEName PEData TCP C0A80A06 A5B8 C0A80A64 0050 0A000011 0050 TIME_WAIT 115 TCP C0A80A06 A5B0 C0A80A64 0050 0A000011 0050 TIME_WAIT 113 TCP C0A80A06 A5C2 C0A80A64 0050 0A000007 0050 TIME_WAIT 117 TCP C0A80A06 A5C4 C0A80A64 0050 0A000011 0050 TIME_WAIT 117 TCP C0A80A06 A5BA C0A80A64 0050 0A000007 0050 TIME_WAIT 115 TCP C0A80A06 A5AC C0A80A64 0050 0A000011 0050 TIME_WAIT 112 TCP C0A80A06 A5AE C0A80A64 0050 0A000007 0050 TIME_WAIT 113 TCP C0A80A06 A5C0 C0A80A64 0050 0A000011 0050 TIME_WAIT 116 TCP C0A80A06 A5B6 C0A80A64 0050 0A000007 0050 TIME_WAIT 115 TCP C0A80A06 A5AA C0A80A64 0050 0A000007 0050 TIME_WAIT 106 TCP C0A80A06 A5C6 C0A80A64 0050 0A000007 0050 TIME_WAIT 118 TCP C0A80A06 A5B4 C0A80A64 0050 0A000011 0050 TIME_WAIT 114 TCP C0A80A06 A5BE C0A80A64 0050 0A000007 0050 TIME_WAIT 116 TCP C0A80A06 A5B2 C0A80A64 0050 0A000007 0050 TIME_WAIT 114 TCP C0A80A06 A5BC C0A80A64 0050 0A000011 0050 TIME_WAIT 116
lvs规则的保存:
规则默认是保存在内存中的。需要写入一个对应的文件,开启的时候重新加载他生效。
建议保存至/etc/sysconfig/ipvsadm
ipvsadm-save > /PATH/TO/IPVSADM_FILE ipvsadm -S > /PATH/TO/IPVSADM_FILE
lvs的Uint服务:
[root@lvs ~]# cat /usr/lib/systemd/system/ipvsadm.service [Unit] Description=Initialise the Linux Virtual Server After=syslog.target network.target [Service] Type=oneshot ExecStart=/bin/bash -c "exec /sbin/ipvsadm-restore < /etc/sysconfig/ipvsadm" #会自动保存规则至/etc/sysconfig/ipvsadm ExecStop=/bin/bash -c "exec /sbin/ipvsadm-save -n > /etc/sysconfig/ipvsadm" #会自动加载/etc/sysconfig/ipvsadm中规则 ExecStop=/sbin/ipvsadm -C #会自动清空内存中的规则 RemainAfterExit=yes [Install] WantedBy=multi-user.target
这篇关于Linux 使用ipvsadm管理LVS的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南