LVS 集群的搭建及搜集的一些博客

ifconfig的介绍 https://blog.csdn.net/u011857683/article/details/83758503
LVS四种实现模式详解 https://blog.51cto.com/wuhf2015/1654648
LVS-DR(Direct Routing)直接路由模式实现负载均衡 https://blog.csdn.net/lyy962464/article/details/82882609
LVS负载均衡集群服务搭建详解 https://blog.51cto.com/xuding/1740228
Linux内核参数之arp_ignore和arp_announcehttps://www.cnblogs.com/lipengxiang2009/p/7451050.html
Linux ip_forward 数据包转发https://www.jianshu.com/p/134eeae69281

arp_ignore参数的作用是控制系统在收到外部的arp请求时,是否要返回arp响应。
  arp_ignore参数常用的取值主要有0,1,2,3~8较少用到:
0:响应任意网卡上接收到的对本机IP地址的arp请求(包括环回网卡上的地址),而不管该目的IP是否在接收网卡上。
1:只响应目的IP地址为接收网卡上的本地地址的arp请求。
2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。
3:如果ARP请求数据包所请求的IP地址对应的本地地址其作用域(scope)为主机(host),则不回应ARP响应数据包,如果作用域为全局(global)或链路(link),则回应ARP响应数据包。

arp_announce的作用是控制系统在对外发送arp请求时,如何选择arp请求数据包的源IP地址。(比如系统准备通过网卡发送一个数据包a,这时数据包a的源IP和目的IP一般都是知道的,而根据目的IP查询路由表,发送网卡也是确定的,故源MAC地址也是知道的,这时就差确定目的MAC地址了。而想要获取目的IP对应的目的MAC地址,就需要发送arp请求。arp请求的目的IP自然就是想要获取其MAC地址的IP,而arp请求的源IP是什么呢? 可能第一反应会以为肯定是数据包a的源IP地址,但是这个也不是一定的,arp请求的源IP是可以选择的,控制这个地址如何选择就是arp_announce的作用)
  arp_announce参数常用的取值有0,1,2。
0:允许使用任意网卡上的IP地址作为arp请求的源IP,通常就是使用数据包a的源IP。
1:尽量避免使用不属于该发送网卡子网的本地地址作为发送arp请求的源IP地址。
2:忽略IP数据包的源IP地址,选择该发送网卡上最合适的本地地址作为arp请求的源IP地址。

要让Linux系统具有路由转发功能,需要配置一个Linux的内核参数net.ipv4.ip_forward。这个参数指定了Linux系统当前对路由转发功能的支持情况;其值为0时表示禁止进行IP转发;如果是1,则说明IP转发功能已经打开。

术语

在这里插入图片描述

LVS scheduler调度算法

1.静态方法:仅根据算法本身进行调度

  (1)RR :round robin,轮询机制,依次分配请求,方式简单但时负载均衡的效果一般

  (2)WRR :weighted rr,加权轮询,权重越大承担负载越大

  (3)SH :source ip hash,源地址哈希,将来自同一个ip请求通过记录在ip hsash表中绑定在同一个服务器,实现session保持

               缺点:调度粒度大,对负载均衡效果差;session黏性不同,连接时长保持不同

  (4)DH :desination ip hash,目标地址哈希。能实现连接追踪,但不考虑负载均衡效果

正向web代理,负载均衡内网用户对互联网的请求;

Client–> Director --> Web Cache Server(正向代理)

2.动态方法:根据算法及各RS当前的负载状态进行评估

Overhead

负载值,VS转发时记录每个RS的Active和Inactive数量(甚至权重)进行算法计算

Active

活动链接值,当发起新请求后保持在ESTABLISHED状态时,仍有请求响应

Inactive

非活动链接值,在ESTABLISHED状态时,尚未断开保持空闲等待状态

(1)LC:least connection,最少连接

        Overhead=Active*256+Inactive

          后端的RS谁的连接少就分发请求至那台RS,若overhead一样则自上而下轮询列表中的RS

(2)WLC:weighted least connection,加权最小连接

          Overhead=(Active*256+Inactive)/weight,计算结果小的将为选中的下一跳RS服务器

         缺点:当Overhead一样时,自上而下轮询响应,权重小的若在列表上方则其会响应

(3)SED:Shortest Expection Delay,最短期望延迟

           Overhead=(Active+1)*256/weight

          缺点:解决WLC问题,但时无法确保权重小的主机一定响应

(4)NQ:never Queue,永不排队,SED算法改进

        RS权重大小排列,每台RS服务器先分配一个请求,其余的按照权重大小计算分配

(5)LBLC:Locality-Based LC,基于本地的最少连接,动态的 DH连接算法

(6)LBLCR:LBLC with Replication,带复制功能的LBLC

ipvsadm命令

1.管理集群服务:

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

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

-A:添加、-E:修改、-D:删除

service-address

服务地址和 -t|u|f 结合使用,具体格式如下

-t, tcp, vip:port

TCP的ip和port

-u, udp, vip:port

UDP的ip和port

-f, fwm, MARK

防火墙标记

-s scheduler:默认为WLC调度算法,可省;

-p [timeout] :超出时长,持久连接相关,默认时长为300秒

2.管理集群服务上的RS:

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

ipvsadm -d -t|u|f service-address -rserver-address

-a:添加一个RS、-e:修改一个RS、-d:删除一个RS

server-address指的是rip[:port],端口可省表示与之前的service-address相同,只有nat模式支持端口映射才会使用

[-g|i|m]

-g:GATEWAY (默认),lvs-dr模型

-i: IPIP, lvs-tun隧道模型

-m: MASQUERADE,lvs-nat模型

3.查看

      ipvsadm -L|l[options]

-n:numeric,数字格式显示地址和端口;

-c:connection,显示ipvs连接;

–stats:显示统计数据;

–rate:速率

–exact:精确值,不经过单位换算的数值

4.清空规则:

ipvsadm -C

5.数器清零:

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

6.保存和重载:

保存:

ipvsadm-S > /PATH/TO/SOME_RULE_FILE

ipvsadm-save > /PATH/TO/SOME_RULE_FILE

重载:

ipvsadm -R < /PATH/FROM/SOME_RULE_FILE

ipvsadm-restore< /PATH/FROM/SOME_RULE_FILE

     注意:需要结合重定向一起使用,从自定义的规则文件中导入导出

附录(ipvsadm -h):

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

[-p[timeout]] [-M netmask] [-b sched-flags]

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

ipvsadm-C

ipvsadm-R

ipvsadm-S [-n]

ipvsadm-a|e -t|u|f service-address -r server-address

[-g|i|m][-w weight] [-x upper] [-y lower]

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

ipvsadm-L|l [options]

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

ipvsadm–set tcp tcpfin udp

ipvsadm-h

配置 2台 Real Sever
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
ifconfig lo:8 192.168.180.100 netmask 255.255.255.255
安装 ipvsadm
[root@linux1 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward 
[root@linux1 ~]# ifconfig eth0:0 192.168.180.100/24
[root@linux1 ~]# ipvsadm -A -t 192.168.180.100:80 -s rr
[root@linux1 ~]# ipvsadm -a -t 192.168.180.100:80 -r 192.168.180.102:80 -g
[root@linux1 ~]# ipvsadm -a -t 192.168.180.100:80 -r 192.168.180.103:80 -g
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值