LVS小试牛刀

Posted liugp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS小试牛刀相关的知识,希望对你有一定的参考价值。

一、ipvsadm命令
1、基本命令操作
1.1)添加规则

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p timeout] [-M netmast] [--pepersistence_engine] [-b sched-flags] 

1.2)删除规则

ipvsadm -D -t|u|f service-address

1.3)清空定义的所有内容

ipvsadm -C

1.4)重载

ipvsadm -R

1.4)保存

ipvsadm -S [-n]

1.5)增、改RS规则

ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]

1.6)删除RS规则

ipvsadm -d -t|u|f service-address -r server-address

1.7)查看规则列表

ipvsadm -Ln|l [options]
 --numeric, -n: 以数字形式输出地址和端口号
 --exact: 扩展信息,精确值
 --stats: 统计信息
 --rate: 输出速率信息

1.8)清空计数器

ipvsadm -Z [-t|u|f service-address]

1.9)ipvs规则

/proc/net/ip_vs

2.0)ipvs连接

/proc/net/ip_vs_conn

2、保存及重载规则
2.1)保存:建议保存至/etc/sysconfig/ipvsadm

ipvsadm-save -n > /PATH/TO/IPVSADM_FILE
ipvsadm -Sn > /PATH/TO/IPVSADM_FILE
systemctl stop ipvsadm.service

2.2)重载:

ipvsadm-restore < /PATH/TO/IPVSADM_FILE
ipvsadm -R < /PATH/TO/IPVSADM_FILE
systemctl restart ipvsadm.service

3.lvs-nat:
设计要点:
1)RIP与DIP在同一IP网络,RIP的网关要指向DIP
2)支持端口映射
3)Director要打开核心转发功能

配置:
4.管理集群服务:增,改,删
4.1)增、改:

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p timeout]

4.2)删除:

ipvsadm -D -t|u|f service-address

4.3)service-address:

-t|u|f:
-t:TCP协议的端口,VIP:TCP_PORT
-u:UDP协议的端口,VIP:UDP_PORT
-f:firewall MARK,标记,一个数字
[-s scheduler]:指定集群的调度算法:默认为wlc

5.管理集群上的RS:增、改、删
5.1)增、改:ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
5.2)server-address:
rip[:port] 如省略port,不作端口映射
5.3)选项:
lvs类型:

-g:gateway, dr类型,默认
-i:ipip, tun类型
-m:masquerade,nat类型
-w weight:权重

6.ipvs scheduler
6.1)ipvs scheduler:根据其调度是否考虑各RS当前的负载状态
两种:静态方法和动态方法
6.2)静态方法:仅根据算法本身进行调度

1、RR: roundrobin, 轮训
2、WRR: Weighted RR, 加权轮训
3、SH: Source Hashing, 实现session sticky, 源IP地址hash; 将来自同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定
4、DH: Destination Hashing; 目标地址哈希,将发往同一个目标地址的请求始终转发至第一次挑中的RS, 典型使用场景是正向代理缓存场景中的负载均衡,如:带宽运营商

实验:实现NAT模式的LVS(必须原路返回

ip_forward=1
route add default gw 192.168.0.201
# -t:tcp, -s wrr:加权 轮训
ipvsadm -A -t 172.20.0.200:80 -s wrr

# -m: NAT模式;默认:DR模式,不支持映射到不同端口;-w:权重,默认是1
ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.17:8080 -m -w 3
ipvsadm -a -t 172.20.0.200:80 -r 192.168.30.27:8080 -m

2.router:路由器配置
ip_forward=1
route add default gw 192.168.0.200

LVS-DR

1.DR模型中各主机上均需要配置VIP,解决地址冲突的方式有三种:

1.1) 在前端网关做静态绑定
1.2) 在各RS使用arptables
1.3) 在各RS修改内核参数,来限制arp响应和通告的级别

2.限制响应级别:arp_ignore

2.1) 0:默认值,表示可使用本地任意接口上配置在任意地址响应
2.2) 1:仅在请求目标IP配置在本地主机的接收到请求报文的接口上时,才给予响应

3.限制通告级别:arp_announce

3.1) 0:默认值,把本机所有接口的所有信息向每个接口的网络进行通知
3.2) 1:尽量避免将接口信息向非直接连接网络进行通知
3.3) 2:必须避免将接口信息向非网络进行通告

实验:实现DR模式的LVS(不原路返回

1.LVS
VIP: ip add a 192.168.30.7/32 dev lo
DIR: 192.168.30.100/24 eth0
GATEWAY: 192.168.30.X]

ipvsadm -A -t 192.168.30.7:80 -s rr
ipvsadm -a -t 192.168.30.7:80 -r 192.168.30.17 [-g]
ipvsadm -a -t 192.168.30.7:80 -r 192.168.30.27 [-g]

2RS
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
ip add a 192.168.30.7/32 dev lo

以上是关于LVS小试牛刀的主要内容,如果未能解决你的问题,请参考以下文章

小试牛刀

ansible小试牛刀

前端试题-小试牛刀

爬虫 --- 小试牛刀

[sqoop] sqoop 小试牛刀

系统设计你管这破玩意儿叫负载均衡?