设为首页 收藏本站
查看: 1762|回复: 0

[经验分享] LVS负载均衡详解

[复制链接]

尚未签到

发表于 2019-1-5 11:43:15 | 显示全部楼层 |阅读模式
1LVS基本介绍
LVS(linuxvirtualserver)其实就是针对高可伸缩、高可用网络服务的需求,给出基于ip层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。所以,lvs需要内核有ipvs支持,linux-2.4.23以后ipvs都编译到内核里,如果你是之前版本确保你的内核支持ipvs后,只需安装ipvsadm就可以把一台服务器配置成负载调度器(LoadBalancer)。对外提供服务的IP,也就是我们访问的IP称做VIP。调度器LB的任务主要是分发请求,真正处理的是真实服务器(RealServer)。

1.1LVS的三种工作原理
网络地址传输模式工作原理

LB收到用户请求包后,LB将请求包中虚拟服务器的IP地址转换为某个选定RS的IP地址,转发给RS;RS将应答包发给LB,LB将应答包中RS的IP转为虚拟服务器的IP地址,回送给用户。

LVS-NAT模型特征

1、所有Realserver与LVS主机在同一个子网中

2、Realserver真实服务器ip地址为私有地址,仅用于集群节点之间使

3、客户端的请求,响应都要经过LVS主机

4、Realserver网关指向DIP

5、可以实现端口映射80

6、Realserver可以是任何操作系统

7、LVS主机可能成为系统瓶颈


直接路由模式工作原理

LB收到请求包后,将请求包中目标MAC地址转换为某个选定Realserver的MAC地址后将包转发出去,Realserver收到请求包后,可直接将应答内容传给用户。此时要求LB和所有RealServer都必须在一个物理段内,且LB与Realserver群共享一个虚拟IP。

LVS-DR模型特征

1、集群节点必须在一个物理网络上(mac)

2、Realserverip可以使用公网地址

3、LVS主机处理入站请求,

4、Realserver网关不指向LVS主机

5、不支持端口映射

6、大多数操作系统支持realserver

7、DR模式比NAT模式性能优越

IP隧道模式(IPTunneling)

LB收到用户请求包后,根据IP隧道协议封装该包,然后传给某个选定的RS;RS解出请求信息,直接将应答内容传给用户。此时要求RS和LB都要支持IP隧道协议。

LVS-TUN模型特征

集群节点可跨互联网

1、LVS主机和realserver不需要在一个网络中

2、Realserverip一定不是私有地址

3、LVS主机仅处理入站请求

4、Realserver网关不能指向LVS主机ip

5、不支持端口映射

6、仅有支持ip遂道功能操作系统才能用在Realserver

1.2LVS调度算法
静态调度4个

特点:不考虑后端realserver的连接状态,而动态的要考虑后端的链接数为标准

1.Round-robin(RR)轮询

既第一次访问A,第二次访问B,第三次再访问A..循环下去

2.WeightedRound-RobinWRR加权轮询

加强论调:提高后台服务器的响应能力
根据后方服务器的响应能力,来定义权重,根据权重来转发请求,权重大的优先访问
3.DestinationhashingDH
目的:实现针对目标地址的请求做固定转发

4.SoucehashingSH

目的:将来自同一个用户的地址,始终转发到router或者firewall

动态调度6个

1.最少链接(LeastConnections)

2.加权最少链接(WeightedLeastConnections)WLC

3.linux默认的调度shortestexpecteddelaySED

4.永不排队算法neverqueueNQ

5.基于本地的最少链接(Locality-BasedLeastConnections:DH)LBLC

6.带复制的基于本地最少链接(Locality-BasedLeastConnectionswithReplication)LBLCR

1.3Ipvsadm命令详细介绍
1.定义集群服务

语法:

ipvsadm-A|-E-t|-uVIP:port-sscheduler-s后面指调度算法

ipvsadm-D-t|-uVIP:port

-A在虚拟服务器表中添加新的虚拟服务器记录

-E编辑内核虚拟服务器表中虚拟服务器记录。

-D删除虚拟服务器表中虚拟服务器记录。

-L查看

-t|-u代表tcp和udp服务

VIP指虚拟服务器ip地址,即LVS与internet通信的网卡地址

2.Realserver服务器的规则定义

ipvsadm-a|e-t|uVIP:port-rREALSERVER-g|-i|-m[-wweight]

ipvsadm-d-t|-uVIP:port-rREALSERVER

-a在虚拟服务器表的添加一条新的真实服务器

-e编辑虚拟服务器记录中真实服务器记录

-d删除虚拟服务器记录的真实服务器记录

-r提供服务响应的真实服务器

-g指LVS的工作模式为直接路由模式

-i指LVS的工作模式为隧道模式

-m指LVS的工作模式为NAT模式

-Z清空计数器

-n数字的方式来显示地址

2LVS-DR模式分析
LVS与互联网的虚拟serverip地址,简称为VIP

LVS与内部真实服务器通信的ip地址,简称为DIP

RealServer简称RS

准备工作:

一台客户机,一台LVS服务器,两台WEB服务器,配置好LVS服务器yum源。

LVS服务器与两台Realserver系统为Centos5.532位。

LVS:10.80.0.60

WEB1:10.80.0.61

WEB2:10.80.0.62

VIP:10.80.0.65


LVS-DR模式拓扑图


3LVS实现过程
3.1LVS服务器配置
开启路由功能

[root@localhost~]#vim/etc/sysctl.conf

#ControlsIPpacketforwarding

net.ipv4.ip_forward=1

[root@localhost~]#sysctl–p#使路由功能生效

使用yum安装ipvsadm工具

[root@localhost~]#yuminstall-yipvsadm

填加一个VIP地址

[root@localhost~]ifconfigeth0:010.80.0.65netmask255.255.255.255

Ipvsadm配置

定义一个集群服务,-s指调度算法为rr

[root@localhost~]#ipvsadm-A-t10.80.0.65:80-srr

向集群服务添加WEB1-g为DR方式

[root@localhost~]#ipvsadm-a-t10.80.0.65:80-r10.80.0.61–g

向集群服务添加WEB2-g为DR方式

[root@localhost~]#ipvsadm-a-t10.80.0.65:80-r10.80.0.62–g

[root@localhost~]#serviceipvsadmsave#对规则进行保存

SavingIPVStableto/etc/sysconfig/ipvsadm:[确定]

[root@localhost~]#serviceipvsadmstart

#查看规则是否生效

[root@localhost~]#ipvsadm–l

IPVirtualServerversion1.2.1(size=4096)

ProtLocalAddress:PortSchedulerFlags

->RemoteAddress:PortForwardWeightActiveConnInActConn

TCP10.80.0.65:httprr

->10.80.0.61:httpRoute100

->10.80.0.62:httpRoute100

3.2RS服务器配置
  #处理LB转发的数据包目的地为VIP本机处理.不会在转到LB服务器
  ifconfiglo:010.80.0.65netmask255.255.255.255
  #使Realserver不响应ARP请求
  echo"1">/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo"2">/proc/sys/net/ipv4/conf/lo/arp_announce
  echo"1">/proc/sys/net/ipv4/conf/all/arp_ignore
  echo"2">/proc/sys/net/ipv4/conf/all/arp_announce
4实验验证
  为了验证方便,两台web1和web2服务器都安装了apache.并在var/www/html/目录下建立文件index.html.,web1服务器index.html内容WEB1,web2服务器index.html内容WEB2。通过LVS服务器的VIP地址进行访问http://10.80.0.65。如下图


  
5总结
其实上方的方案并不全没有对RealServer服务器健康检测功能和LVS服务器的热备的功能,这次写这个案例主要是让大家对LVS这一款软件进行了解。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-659627-1-1.html 上篇帖子: 9.负载均衡lvs+keepaived 下篇帖子: LVS之二:DR模型工作原理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表