LVS的DR模型实战应用(一)|学习笔记

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 快速学习LVS的DR模型实战应用

发者学堂课程【LVS负载均衡实战LVS的DR模型实战应用学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/553/detail/7635


LVS的DR模型实战应用(一)


内容介绍:

一、ipvsadm 命令

二、LVS

三、实验:多个集群服务在一个 VLAN 上调度

四、实验:实现单网络的 DR 的 LVS  

五、总结

六、RS 和 VS 的配置脚本


一、 ipvsadm 命令

定义的调度算法 DH ,总往一个服务器调度,因为底层原理不同,ipvs 基于四成,内核级的识别不了 http 协议,而 url 是基于应用成的。

所以目标哈希基于访问目标地址,并不关心访问的是那个 url 路径,实际上 hash 时hash的是 vip 路径,并不是期望 hash 的 url 路径,像希望实现为hash(http://vip/test1.html),而实际hash(vip)要想实现 hash(url) 功能。

要实现应用层代理功能,指的是lvs,则此处lvs功能未实现,lvs 实现的是传输层以下的反向代理,调度功能,所以要使用nginx或则 haproxy 应用级高级反向代理服务器实现,可识别应用层协议及以下。

如集群LVS基于传输层(通用),而应用层(专用)是针对特定协议,自定义的请求模型分类,ipvs工具的使用,http包含nginx,httpd,haproxy没有提到LVS,因为LVS属于传输层以下,nginx,haproxy也属于传输层以下,但功能更强大,可以做到识别应用层协议。

工具的使用:

◆清空定义的所有内容: ipvsadm -C,清除策略,如:

[root@centos7 ~]#ipvsadm -C

[ root@centos7 ~] #ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096 )

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

◆清空计数器: ipvsadm -Z [-t|u|f service-address],清空计数器重新开始,如:

[ root@centos7 ~]#ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes

-> RemoteAddress:Port

TCP 172.20.0.200:80   11770 70652 47106 4822599 5525034

-> 192.168.30.17 : 8080  0     0     0      0        0

-> 192.168.30.27: 80   11770 70652 47106 4822599 5525034

[ root@centos7 ~ ] #ipvsadm -Z

[ root@centos7 ~]#ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Conns InPkts 0utPkts InBytes OutBytes

-> RemoteAddress:Port

TCP 172.20.0.200: 80    0     0     0      0        0

-> 192.168.30.17 : 8080  0     0     0      0        0

-> 192.168.30.27 :80    0     0     0      0        0

◆查看: ipvsadm -L[|I [options]

-- numeric, -n :以数字形式不解析输出地址和端口号,如下8080端口解析成webcache 认为应该webcache用逗号。

遇到这种情况最好不要解析,解析出名字可能不正确:

[ root@centos7 ~ ] #ipvsadm -L

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port    Forward  Weight ActiveConn InActConn

TCP centos7. localdomain:http dh

-> 192. 168.30.17 :webcache Masq  1   0   0

-> 192.168.30.27:http Masq  1 0 0

[ root@centos7 ~] #ipvsadm -Ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

-> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP 172.20.0.200:80 dh

-> 192. 168.30.17 : 8080  Masq    1       0           0

-> 192. 168.30.27: 80     Masq    1       0           0

--exact :扩展信息,精确值,当达到一定量后会以兆,k显示

--connection , -c:当前IPVS连接输出情况,客户端地址,VIP,被调度到那个服务器上,如,

[ root@centos7 -]#ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096 )

Prot LocalAddress :Port  Conns InPkts 0utPkts InBytes OutBytes

-> RemoteAddress:Port

TCP 172.20.0.200: 80     11764 70594 47075 4812063 5520344

-> 192. 168.30.17 :8080   0     0       0     0        0

-> 192.168.30.27:80    11764  70594 47075 4812063 5520344

--stats :统计信息,连接数Conns,传入数据包InPkts,输出数据报文OutPkts以包的个数为单位,以字节为单位输入输出InBytes 、outBytes,如:

[ root@centos7 ~]#ipvsadm -Ln --stats

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Conns InPkts OutPkts InBytes outBytes

-> RemoteAddress:Port

TCP 172.20.0.200:80  11764 70594 47075 4812063 5520344

-> 192.168.30.17 : 8080  0     0      0      0        0

-> 192.168.30.27 :80  11764 70594 47075 4812063  5520344

--rate : 输出速率信息

每秒传入,传出数据包文个数InPPS OutPPS ,每秒传入,传出字节个数InBPSOutBPS,如:

[ root@centos7 -]#ipvsadm -Ln -- rate

IP Virtual Server version 1.2.1 (size=4096 )

Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS

-> RemoteAddress: Port

TCP 172.20.0.200: 80   0   2     1      432   186

-> 192.168.30.17: 8080  0   0     0       0     0

-> 192.168.30.27:80     0   2     1     432   186

ipvs规则:

/proc/net/ip_vs,也是存放在内存中的,C0A81E1B:0050为十六进制地址,为用户看起更方便统一以十六进制显示,

[ root@centos7 -]#cat /proc/net/1p_vs

IP Virtual Server version 1.2.1 (Size=4096)

Prot LocalAddress:Port Scheduler Flags

> RemoteAddress:Port Forward Weight ActiveConn InActConn

TCP AC1400C8 :0050 dh

-> C0A81E1B:0050     Masq     1       0         211

-> C0A81E11: 1F90     Masq     1       0          0

◆ipvs连接: /proc/net/ip_ vs_conn

◆保存:

建议保存至/etc/sysconfig/ipvsadm,首先通过wlc变相定义http协议80端口,默认就是wlc,可以不写,带权重的最小连接。

要想存住上面的策略,可以用ipvsadm-save,实际上命令本身只是显示出策略,并不是真正的保存,

如:

[ root@centos7 ~]#ipvsadm-save > /etc/sysconfig/ipvsadm

因为S后没加n阻止反向解析会报错,所以要加上n阻止反向解析,

如:

[ root@centos7 ~]#ipvsadm -C

[root@centos7 ~] #ipvsadm -A -t 172.20.0.200:80

[root@centos7~]#ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.17 :8080 -m -w 3

[root@centos7~]#ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.27 -m

[ root@centos7 ~ ]#ipvsadm - Sn

-A -t 172.20.0.200:80 -s wlc

-a -t 172.20.0.200:80 -r 192.168.30.17:8080 -m -w 3

-a -t 172.20.0.200:80 -r 192.168.30.27:80 -m -w 1

[ root@centos7 ~ ]#ipvsadm -Sn > /etc/sysconfig/ipvsadm

当这一步执行#systemct stop ipvsadm.service服务停止后文件才开始自动保存到路径 

systemct| enable ipvsadm

//重启机器后开机自动加载策略

◆重载:

ipvsadm-restore < /PATH/FROM/IPVSADM_FILE

ipvsadm -R < /PATH/FROM/IPVSADM_ FILE

systemct| restart ipvsadm.service

相关文章
|
6月前
|
运维 负载均衡 网络协议
LVS详解(六)——LVS DR模式实战
LVS详解(六)——LVS DR模式实战
159 5
|
负载均衡 应用服务中间件 Linux
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
企业实战(13)LVS负载均衡NAT(网络地址转换)模式实战详解(一)
167 0
|
存储 负载均衡 网络协议
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
企业实战(13)LVS负载均衡DR(直接路由)模式实战详解(二)
215 0
|
6月前
|
负载均衡 网络协议 算法
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
LVS 负载均衡部署的三种模式 与搭建dr模式具体步骤
|
3月前
|
Kubernetes Linux API
在Linux中,LVS-DR模型的特性是什么?
在Linux中,LVS-DR模型的特性是什么?
|
3月前
|
负载均衡 算法 Linux
在Linux中,LVS-NAT模型的特性是什么?
在Linux中,LVS-NAT模型的特性是什么?
|
6月前
|
负载均衡 监控 Linux
CentOS6.5高可用集群LVS+Keepalived(DR模式)
CentOS6.5高可用集群LVS+Keepalived(DR模式)
|
6月前
|
负载均衡 监控 调度
Keepalived+Lvs(dr)调度器主备配置小实验
Keepalived和LVS(Linux Virtual Server)是两个常用的开源软件,通常结合使用以提供高可用性和负载均衡的解决方案。 Keepalived是一种用于实现高可用性的软件,它可以监控服务器的健康状态,并在主服务器出现故障时自动切换到备份服务器。
206 2
|
存储 负载均衡 网络协议
LVS负载均衡群集—DR直接路由
LVS负载均衡群集—DR直接路由
105 0
|
2月前
|
运维 负载均衡 网络协议
LVS+Keepalived 负载均衡
LVS+Keepalived 负载均衡
68 8
LVS+Keepalived 负载均衡