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

[经验分享] LVS负载均衡

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-28 08:32:20 | 显示全部楼层 |阅读模式
相关术语:
跟Host相关:
Director:调度器----提供调度的主机
Real Server: RS,后端提供服务的主机
跟IP相关:
Client: CIP----客户端ip地址
Director Virtual IP: VIP---面向客户端的ip地址(做单点高可用时用vip)
Directory IP: DIP---跟后端主机的ip地址
Real IP: RIP---实际提供服务的ip地址


一、LVS简介
LVS是什么呢?lvs的全称是Linux Virtual Server,由国防科技大学副教授章文嵩在1998年5月研发的一个虚拟的服务器集群系统。
LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。

二、LVS组成部分以及类型
1.LVS的组成部分
    LVS是由ipvs和ipvsadm两部分组成。ipvs工作在内核,ipvsadm工作在用户空间,是一个为ipvs提供定义集群服务、以及使用何种调度方法的工具,类似于netfilter跟iptables的关系。此外,ipvs工作于netfilter的INPUT链; ipvsadm用于在ipvs上定义集群服务:同时也得定义此集群服务对应于有哪个后端主机可用;根据所指定的调度方法(算法)作出调度决策;真正实现调度的是工作于内核空间的ipvs,而且ipvs将接受来自ipvsadm所生成的规则,并让这个规则在INPUT链上真正生效起来。

wKiom1VljxXCDvksAAHO05Nh-qw958.jpg
2.lvs的四种类型:

lvs-nat也称masquerade,基于地址伪装
lvs-dr也称directrouting,直接路由
lvs-tuntunneling,有隧道之意,基于ip隧道
lvs-fullnatfullnat,完全nat,既改目标ip又改源ip

2.1.lvs-nat:类似于iptables中的DNAT, 但支持多目标转发;
它通过修改请求报文的目标地址为根据调度算法所挑选出的某RS的RIP来进行转发;

                     架构特性:
(1) RS应该使用私有地址,即RIP应该为私有地址;各RS的网关必须指向DIP;
(2) 请求和响应报文都经由Director转发;高负载场景中,Director易于成为系统瓶颈;
(3) 支持端口映射;
(4) RS可以使用任意类型的OS;
(5) RS的RIP必须与Director的DIP在同一网络;

2.2.lvs-dr:直接路由
Director在实现转发时不修改请求的IP首部,而是通过直接封装MAC首部完成转发;目标MAC是Director根据调度方法挑选出某RS的MAC地址;拓扑结构有别有NAT类型;

                     架构特性:
(1) 保证前端路由器将目标地址为VIP的请求报文通过ARP地址解析后送往Director
解决方案两种:
(1)静态绑定:在前端路由直接将VIP对应的目标MAC静态配置为Director的MAC地址;
(2)arptables:在各RS上,通过arptables规则拒绝其响应对VIP的ARP广播请求;
(3)内核参数(容易实现的方案):在RS上修改内核参数,并结合地址的配置方式实现拒绝响应对VIP的ARP广播请求;
(2) RS的RIP可以使用私有地址;但也可以使用公网地址,此时可通过互联网上的主机直接对此RS发起管理操作;
(3) 请求报文必须经由Director调度,但响应报文必须不能经由Director;
(4)各RIP必须与DIP在同一个物理网络中;
(5) 不支持端口映射;
(6) RS可以使用大多数的OS;
(7) RS的网关一定不能指向Director;

2.3.lvs-tun: 不修改请求报文IP首部,而是通过IP隧道机制在原有的IP报文之外再封装IP首部,经由互联网把请求报文交给选定的RS;

架构特性:
(1) RIP, DIP, VIP都是公网地址;
(2) RS的网关不能,也不可能指向DIP;
(3) 请求报文由Director分发,但响应报文直接由RS响应给Client;
(4) 不支持端口映射;
(5) RS的OS必须得支持IP隧道;

2.4.lvs-fullnat:通过请求报文的源地址为DIP,目标为RIP来实现转发;对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发;

架构特性:
(1) RIP,DIP可以使用私有地址;
(2) RIP和DIP可以不在同一个网络中,且RIP的网关未必需要指向DIP;
(3) 支持端口映射;
(4) RS的OS可以使用任意类型;
(5) 请求报文经由Director,响应报文经由Direct

三、LVS的scheduler(LVS调度方法)

wKioL1VlkR-zo529AAIx3TrLQ9o075.jpg

wKiom1Vlj6HzikFuAANsNDxjO08782.jpg


四、ipvsadm工具的使用
4.1管理集群服务:
a.创建或修改集群服务:
ipvsadm -A|E -t|u|f service-address [-sscheduler]
选项:
-A: 添加
-E:修改

-t: 承载的应用层协议为基于TCP协议提供服务的协议;其service-address的格式为“VIP:PORT”,如“172.16.100.6:80”;
-u: 承载的应用层协议为基于UDP协议提供服务的协议;其service-address的格式为“VIP:PORT”,如“172.16.100.6:53”;
-f:承载的应用层协议为基于TCP或UDP协议提供服务的协议,但此类报文会经由iptables/netfilter打标记,即为防火墙标记;其service-address的格式为“FWM”,即一个数字,例如“10”;(比如将web服务的80端口和https的443端口归类为同一个服务类,此时就需要将此类报文都打上防火墙标记为10,即可归为同一类了)

-s scheduler: 指明调度方法;默认为wlc;

b.删除集群服务:
ipvsadm -D -t|u|f service-address

4.2管理集群服务上的RS:
a.添加或修改RS(在现存的集群服务上):
ipvsadm -a|e -t|u|fservice-address -r server-address [-g|i|m] [-w weight]
选项:
                   -rserver-address: 指明RS,server-address格式一般为“IP[:PORT]”;
【注意,只支持端口映射的lvs类型中才应该显式定义此处端口,否则不用写port,比如NAT,FULLNAT 需要指明端口】例如:-r 192.168.10.7:80

    [-g|i|m]: 指明lvs类型
    -g: gateway,意为dr类型;
    -i: ipip, 意为tun类型;
    -m: masquerade(伪装之意), 意为nat类型;
    [-w weight]:当前RS的权重;
【注意:仅对于支持加权调度的scheduler,权重才有意义;】
        b.删除RS:
ipvsadm -d -t|u|f service-address -r server-address

4.3清空所有集群服务的定义:
    ipvsadm -C

4.4保存及恢复集群服务及RS的定义:
ipvsadm -S > /etc/sysconfig/ipvsadm
ipvsadm-save > /etc/sysconfig/ipvsadm
service ipvsadm save


ipvsadm -R < /etc/sysconfig/ipvsadm
ipvsadm-restore < /etc/sysconfig/ipvsadm
service ipvsadm restart

4.5查看规则:
ipvsadm -L|l [options]
-c: 列出当前所有connection;
--stats: 列出统计数据
--rate: 列出速率
-n,--numeric: 数字格式显示IP及端口;(而不要反解成服务名或主机名)    --exact: 精确值;

4.6清空计数器:
ipvsadm -Z[-t|u|f service-address]


运维网声明 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-71312-1-1.html 上篇帖子: LVS 负载均衡集群学习笔记 下篇帖子: LVS基础理论之负载均衡集群
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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