ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux 使用ipvsadm管理LVS

2022-11-08 13:11:42  阅读:369  来源: 互联网

标签:网站 系统 解析 美元 DNS 模板 服务器 配置


  • 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

标签:网站,系统,解析,美元,DNS,模板,服务器,配置
来源:

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有