LVS负载均衡

LVS是一个建立在真实服务器(apache或者nginx或者tomcat)集群上的,高伸缩性,高可用的服务,是一个在linux上运行的负载均衡器,对用户透明,用户在访问的时候是一个高性能的虚拟服务器,

image

一、为什么要使用LVS+NGINX?

image
image
image.png

二、LVS的三种模式

image

NAT模式:基于网络地址的转换的模式,这个模式跟nginx的模式很像,都是要经过LVS,这样的缺点就在于请求过来过去都是要经过LVS,如果并发高,流量大的时候,这个模式是撑不住的。

image

隧道模式:这一种模式与上一种模式的区别在于服务器相应完之后会直接返回到用户而不是经过LVS,这样的话就大大提高了系统的吞吐量和相应速度,上行压力小,但是下行压力就大了,而且在这个模式是需要在每台服务器都配置一个网卡,这样的缺点就在于将各个服务器暴露在了外网。

image

直接路由模式:direct router,我们可以看到这个模式把后台所有服务器都打包一起,然后经过路由,之后再返回给用户,这样的好处就在于我们所有的后台服务器不再是暴露给外网了,而是经过一个虚拟ip之后再返回到前端,而且相应速度也比较快,因为不经过LVS。

image

三、配置LVS

1.首先关掉网络配置

systemctl stop NetworkManager
systemctl disable NetworkManager

2.找到自己的网卡,进行配置

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:1
vim  ifcfg-ens33:1

查看自己的默认网卡是什么,我这边是ifcfg-ens33,然后cp一份修改新的配置,把多余的删掉,仅保留这几行,修改下信息即可:

image

保存完之后需要重启一下网络配置:

service network restart

修改完之后,我们使用命令ip addr查看:

image

发现我们的配置已经生效

四、LVS的集群管理工具

yum install ipvsadm
ipvsadm -Ln    

ipvsadm -Ln 是查看版本信息以及集群信息

四、为两台RS配置虚拟IP

两台rs服务器也就是两台nginx服务器,我们需要配置一下虚拟ip
首先我们需要关闭network

systemctl stop NetworkManager
systemctl disable NetworkManager

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:1

然后修改ifcfg-lo这个配置文件,修改配置信息,那么这次为什么是lo配置呢, 我们可以这么理解,我们需要一个虚拟ip,而这个虚拟ip仅返回数据给用户,不需要访问到真实的物理ip,那么就使用这个。

image

刷新一下网络配置

ifup lo

然后ip addr:

image

第二台服务器与第一台服务器配置相同。

四、为两台RS配置arp

image
image

为了更加精准的相应用户的请求,这里我们需要给服务器配置arp
配置信息,all代表所有网卡,default代表默认网卡,lo代表lo网卡

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

vim /etc/sysctl.conf

将配置贴到文末,然后刷新

sysctl -p

然后在第二台服务器做相同的操作。

之后需要添加一个路由

route add -host 192.168.1.150 dev lo:1

用户接收数据报文,然后交给lo处理
查看一下: route -n

image

路由的配置不是开机自启动的,所以我们需要添加到开机自启动:

echo "route add -host 192.168.1.150 dev lo:1" >> /etc/rc.local

之后可以通过查看 /etc/rc.local 来查看下是否有了,第二台服务器是需要做同样的操作的。

五、使用ipvsadm配置集群规则

搭建LVS-DR模式- 使用ipvsadm配置集群规则
1. 创建LVS节点,用户访问的集群调度者
ipvsadm -A -t 192.168.1.150:80 -s rr -p 5
-A:添加集群
-t:tcp协议
ip地址:设定集群的访问ip,也就是LVS的虚拟ip
-s:设置负载均衡的算法,rr表示轮询
-p:设置连接持久化的时间
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模式
3. 保存到规则库,否则重启失效
ipvsadm -S
4. 检查集群
查看集群列表
ipvsadm -Ln
查看集群状态
ipvsadm -Ln --stats
5. 其他命令:
# 重启ipvsadm,重启后需要重新配置
service ipvsadm restart
# 查看持久化连接
ipvsadm -Ln --persistent-conn
# 查看连接请求过期时间以及请求源ip和目标ip
ipvsadm -Lnc
# 设置tcp tcpfin udp 的过期时间(一般保持默认)
ipvsadm --set 1 1 1
# 查看过期时间
ipvsadm -Ln --timeout
6. 更详细的帮助文档:
ipvsadm -h
man ipvsadm

查看使用说明:

ipvsadm -h

创建集群,-A代表创建集群 -t 代表要添加的服务器的ip和端口 -s代表使用负载均衡的算法,rr 代表轮询的意思

ipvsadm -A -t 192.168.1.150:80 -s -rr

查看集群的状态,发现已经添加了一个集群信息

ipvsadm -Ln

image

下面构建一个真实的服务器节点,-r代表真实服务器,-g代表DR模式:

ipvsadm -a -t 192.168.1.150:80 -r 192.168.121.171:80 -g
ipvsadm -a -t 192.168.1.150:80 -r 192.168.121.172:80 -g

上述命令添加了两台真实的服务器到虚拟的集群,然后我们再看一下集群的状态会发现,节点都已经添加上去了:

image

查看详细的集群情况,in代表上行,out代表下行

image

我们发现这个时候访问页面,还是一直是一个服务器的页面,持续刷新也并没有访问到另一个,说白了就是感觉负载均衡并没有生效,什么原因呢,原来lvs是有一个持久化的操作

如果想详细的查看lvs如何设置,可以使用man ipvsadm

image

可以看到关于持久化的详细内容,在用户访问过来的第一个请求,在300s之内仍然存在,不会变换。直到300s之后,轮询功能才会生效。

我们设置一下持久化的时间看下效果:

ipvsadm -E -t 192.168.1.150:80 -s rr -p 5
ipvsadm -Ln

image

设置完持久化时间之后我们发现请求了即使过了5s,访问还是同一个页面,这是因为还有一个超时的配置:

image

给各个请求的协议过期时间设置为1分钟

ipvsadm --set 1 1 1
ipvsadm -Lnc

image

我们不断的刷新发现超时时间不断的减少,如果我们不访问,那么在超时时间减少到0之后就没有请求数据了,然后我们访问页面,发现这个信息又多了一条

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

推荐阅读更多精彩内容

  • LVS是一个建立在真实服务器(apache或者nginx或者tomcat)集群上的,高伸缩性,高可用的服务,是一个...
    那钱有着落吗阅读 243评论 0 0
  • 转载:http://blog.51cto.com/xuding/1740228 一、LVS概述 1.LVS:Lin...
    SkTj阅读 1,736评论 0 8
  • 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群。常用的负载均衡开源软件有ngin...
    jiangmo阅读 1,321评论 0 1
  • 负载均衡简介 在网站架构中,负载均衡集群是网站架构伸缩性的主要方案。例如当并发用户压力过大时,通过在集群中增加服务...
    li_zw阅读 202评论 0 0
  • 一、DR模式 二、实验环境实验目的:利用lVS实现网站的高并发架构三台CentOS-7.5虚拟机lVS负载均衡器:...
    probie_rise阅读 295评论 0 1