搭建LVS-DR模式

1、配置LVS节点与ipvsadm

前期准备
1.1、 服务器与ip规划:
LVS - 1台

  • VIP(虚拟IP):192.168.1.150
  • DIP(转发者IP/内网IP):192.168.1.151

Nginx - 2台(RealServer)

  • RIP(真实IP/内网IP):192.168.1.171
  • RIP(真实IP/内网IP):192.168.1.172

1.2、 所有计算机节点关闭网络配置管理器,因为有可能会和网络接口冲突:

systemctl stop NetworkManager  
systemctl disable NetworkManager 

创建子接口

  1. 进入到网卡配置目录,找到咱们的ens33:


  1. 拷贝并且创建子接口:
cp ifcfg-lo ifcfg-lo:1
  • 注:数字1为别名,可以任取其他数字都行
  1. 修改子接口配置:
    vim ifcfg-lo:1
  2. 配置参考如下:
DEVICE=lo:1
IPADDR=192.168.1.150
NETMASK=255.255.255.255
NETWORK=127.0.0.0

BROADCAST=127.255.255.255
ONBOOT=yes 
NAME=loopback

2、为两台RS配置虚拟IP

2.1、 进入到网卡配置目录,找到lo(本地环回接口,用户构建虚拟网络子接口),拷贝一份新的随后进行修改:



2.2. 修改内容如下



2.3. 重启后通过ip addr 查看如下,表示ok

3、两台RS配置arp

ARP响应级别与通告行为 的概念

  1. arp-ignore:ARP响应级别(处理请求)
    0:只要本机配置了ip,就能响应请求
    1:请求的目标地址到达对应的网络接口,才会响应请求
  2. arp-announce:ARP通告行为(返回响应)
    0:本机上任何网络接口都向外通告,所有的网卡都能接受到通告
    1:尽可能避免本网卡与不匹配的目标进行通告 2:只在本网卡通告

配置ARP
3.1、 打开sysctl.conf:
vim /etc/sysctl.conf
3.2、 配置 所有网卡 、 默认网卡 以及 虚拟网卡 的arp响应级别和通告行为,分别对应: all , default , lo :

# configration for lvs 
net.ipv4.conf.all.arp_ignore = 1 
net.ipv4.conf.default.arp_ignore = 1 
net.ipv4.conf.lo.arp_ignore = 1 
 
net.ipv4.conf.all.arp_announce = 2 
net.ipv4.conf.default.arp_announce = 2 
net.ipv4.conf.lo.arp_announce = 2

3.3、 刷新配置文件:



3.4、 增加一个网关,用于接收数据报文,当有请求到本机后,会交给lo去处理:

vim   /etc/rc.local
#在rc.loacl追加 host(192.168.1.150):设置的IP dev(lo:1):静态路由
route add -host 192.168.1.150 dev lo:1
#查看
route -n

4、使用ipvsadm配置集群规则

4.1、 创建LVS节点,用户访问的集群调度者
ipvsadm -A -t 192.168.1.150:80 -s rr -p 5
-A:添加集群 -t:tcp协议 ip地址:设定集群的访问ip,也就是LVS的虚拟ip -s:设置负载均衡的算法,rr表示轮询 -p:设置连接持久化的时间
4.2、 创建2台RS真实服务器

ipvsadm -a -t 192.168.1.150:80 -r 192.168.1.171:80 -g 
ipvsadm -a -t 192.168.1.150:80 -r 192.168.1.172:80 -g 

-a:添加真实服务器 -t:tcp协议 -r:真实服务器的ip地址 -g:设定DR模式

4.3、 保存到规则库,否则重启失效
ipvsadm -S
4.4、 检查集群
查看集群列表
ipvsadm -Ln
查看集群状态
ipvsadm -Ln --stats
4.5、 其他命令:

# 重启ipvsadm,重启后需要重新配置 
service ipvsadm restart     # 查看持久化连接 
ipvsadm -Ln --persistent-conn     # 查看连接请求过期时间以及请求源ip和目标ip 
ipvsadm -Lnc 
# 设置tcp tcpfin udp 的过期时间(一般保持默认) 
ipvsadm --set 1 1 1     # 查看过期时间 
ipvsadm -Ln --timeout 

4.6、 更详细的帮助文档:

ipvsadm -h 
man ipvsadm 

附:LVS的负载均衡算法 LVS的负载均衡算法

静态算法
静态:根据LVS本身自由的固定的算法分发用户请求。

  1. 轮询(Round Robin 简写’rr’):轮询算法假设所有的服务器处理请求的能力都一样的,调度器会把所有的请求平均分配给每个真实服务器。(同Nginx的轮
  2. 加权轮询(Weight Round Robin 简写’wrr’):安装权重比例分配用户请求。权重越高,被分配到处理的请求越多。(同Nginx的权重)
  3. 源地址散列(Source Hash 简写’sh’):同一个用户ip的请求,会由同一个RS来处理。(同Nginx的ip_hash)
  4. 目标地址散列(Destination Hash 简写’dh’):根据url的不同,请求到不同的RS。(同Nginx的url_hash)
    动态算法
    动态:会根据流量的不同,或者服务器的压力不同来分配用户请求,这是动态计算的。
    1. 最小连接数(Least Connections 简写’lc’):把新的连接请求分配到当前连接数最小的服务器。
    2. 加权最少连接数(Weight Least Connections 简写’wlc’):服务器的处理性能用数值来代表,权重越大处理的请求越多。Real Server 有可能会存在性能上 动态获取不同服务器的负载状况,把请求分发到性能好并且比较空闲的服务器。
    3. 最短期望延迟(Shortest Expected Delay 简写’sed’):特殊的wlc算法。举例阐述,假设有ABC三台服务器,权重分别为1、2、3 。如果使用wlc算法的话 求进来,它可能会分给ABC中的任意一个。使用sed算法后会进行如下运算:
      A:(1+1)/1=2 B:(1+2)/2=3/2 C:(1+3)/3=4/3 最终结果,会把这个请求交给得出运算结果最小的服务器。
    4. 最少队列调度(Never Queue 简写’nq’):永不使用队列。如果有Real Server的连接数等于0,则直接把这个请求分配过去,不需要在排队等待运算了(se

总结:
LVS在实际使用过程中,负载均衡算法用的较多的分别为wlc或wrr,简单易用。
附1:
参考文献:官方文档
附2:

作为架构师,对lvs集群的负载算法有一定的了解即可,因为你要和运维人员进行有效沟通;但是如果作为运维的话那么是要深入钻研LVS了,一个企业如果发 使用到LVS了,那么业务量是十分巨大的,并且也会有专门的运维团队来负责网络架构的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352