Linux实战教学笔记33:lvs+keepalived集群架构服务无情站长

LVS是LinuxVirtualServer的简写(也叫做IPVS),意即Linux虚拟服务器,是一个虚拟的服务器集群系统,可以在UNIX/LINUX平台下实现负载均衡集群功能。

从上图我们看出,LVS负载均衡调度技术是在Linux内核中实现的,因此,被称之为Linux虚拟服务器(LinuxVirtualServer)。我们使用该软件配置LVS时候,不能直接配置内核中的ipbs,而需要使用ipvs管理工具ipvsadm进行管理,或者通过Keepalived软件直接管理ipvs。

LVS基本工作过程如下图所示:

为了方便大家探讨LVS技术,LVS社区提供了一个命名的约定,内容如下表:

LVS集群内部的节点称为真实服务器(RealServer),也叫做集群节点。请求集群服务的计算机称为客户端计算机。与计算机通常在网上交换数据包的方式相同,客户端计算机,Director和真实服务器使用IP地址彼此进行通信。不同架构角色命名情况如下图:

IP虚拟服务器软件IPVS

LVS的四种工作模式

VirtualServerviaNetworkAddressTranslation(VS/NAT)

调度时:目的IP改成RIP(DNAT)返回时:源IP改成VIP(SNAT)

NAT模式特点小结:

增加一个IP头部。通过IP隧道进行通信(可以跨网段找到RS节点)

TUN模式特点小结:

VirtualServerviaDirectRouting(VS/DR)

VS/DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器将响应后的处理结果直接返回给客户端用户。同VS/TUN技术一样,VS/DR技术可极大地提高集群系统的伸缩性。而且,这种DR模式没有IP隧道的开销,对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器LB与正式服务器RS节点都有一块网卡连在同一物理网段上,即必须在同一个局域网环境。

只修改目标MAC地址,通过MAC找到RS节点(无法跨网段找到RS节点)

DR模式特点小结:

淘宝的LVS应用模式

FULLANT特点:1,源IP改成不同的VIP和目的IP改成RIP2,RS处理完毕返回时,返回给不同的LVS调度器3,所有LVS调度器之间通过session表进行ClientAddress的共享

10种调度算法见如下表格(rr,wrr,wlc重点):

实际使用中,这些算法的适用范围不限于这些。我们最好参考内核中的连接调度算法的实现原理,根据具体业务需求合理的选型。

LVS集群的特点可以归结如下:

(1)功能:

(2)适用性

1)后端真实服务器可运行任何支持TCP/IP的操作系统,包括Linux,各种Unix(如FreeBSD,SunSolaris,HPUnix等),Mac/OS和windowsNT/2000等。

2)负载均衡调度器LB能够支持绝大多数的TCP和UDP协议:

无需对客户机和服务作任何修改,可适用大多数Internet服务。

3)调度器本身当前不支持windows系统。支持大多数的Linux和UINIX系统。

(3)性能

LVS服务器集群系统具有良好的伸缩性,可支持几百万个并发连接。配置100M网卡,采用VS/TUN或VS/DR调度技术,集群系统的吞吐量可高达1Gbits/s;如配置千兆网卡,则系统的最大吞吐量可接近10Gbits/s

(4)可靠性

LVS服务器集群软件已经在很多大型的,关键性的站点得到很好的应用,所以它的可靠性在真实应用得到很好的证实。

(5)软件许可证

LVS集群软件是按GPL(GNUPublicLicense)许可证发行的自由软件,这意味着你可以得到软件的源代码,有权对其进行修改,但必须保证你的修改也是以GPL方式发行。

1)数据库及memcache等对内业务的负载均衡环境

特别提示:上面的环境为内部环境的负载均衡模式,即LVS服务是对内部业务的,如数据库及memcache等的负载均衡

2)web服务或webcache等负载均衡环境

提示:这个表格一般是提供Web或Webcache负载均衡的情况,此种情况特点为双网卡环境。这里把192.168.0.0/24假设为内网卡,192.168.200.0/24假设为外网卡。

以下的安装都是在LVSLB192.168.0.210上

[root@lvs01~]#lsmod|grepip_vs#查看linux内核是否有ipvs服务[root@lvs01~]#uname-r#查看内核版本2.6.32-431.el6.x86_64[root@lvs01~]#cat/etc/redhat-release#查看系统版本CentOSrelease6.5(Final)[root@lvs01~]#yum-yinstallkernel-devel#光盘安装[root@lvs01~]#ls-ld/usr/src/kernels/2.6.32-431.el6.x86_64/drwxr-xr-x.2rootroot4096Aug919:28/usr/src/kernels/2.6.32-431.el6.x86_64/#安装完就会出现此目录[root@lvs01~]#ln-s/usr/src/kernels/2.6.32-431.el6.x86_64//usr/src/linux#做一个软连接[root@lvs01~]#ll-d/usr/src/linux/drwxr-xr-x.2rootroot4096Aug919:28/usr/src/linux/[root@lvs01~]#ll/usr/src/total8drwxr-xr-x.2rootroot4096Sep232011debugdrwxr-xr-x.3rootroot4096Aug919:28kernelslrwxrwxrwx.1rootroot39Aug919:28linux->/usr/src/kernels/2.6.32-431.el6.x86_64/[root@lvs01~]#特别注意:此ln命令的链接路径要和uname-r输出结果内核版本对应,工作中如果做安装虚拟化可能有多个内核路径如果没有/usr/src/kernels/2.6.32-431.el6.x86_64/路径,很可能是因为缺少kernel-devel软件包。可通过yum进行安装centos5.x版本不能用ipvs1.26

3)安装lvs命令:

[root@lvs01~]#yum-yinstalllibnl*popt*#需要通过公网源安装[root@lvs01~]#cd/usr/src/ipvsadm-1.26/[root@lvs01ipvsadm-1.26]#make#直接编译不需要./configure[root@lvs01ipvsadm-1.26]#makeinstall[root@lvs01~]#whichipvsadm/sbin/ipvsadm[root@lvs01~]#ipvsadmIPVirtualServerversion1.2.1(size=4096)ProtLocalAddress:PortSchedulerFlags->RemoteAddress:PortForwardWeightActiveConnInActConn[root@lvs01~]#lsmod|grepip_vs#执行完/sbin/ipvsadm就会有信息ip_vs1252200libcrc32c12461ip_vsipv6317340270ip_vs,ip6t_REJECT,nf_conntrack_ipv6,nf_defrag_ipv6#==>出现这个内容就表示LVS已经安装好,并加载到了内核LVS安装小结:1,CentOS5.X安装lvs,使用1.24版本。2,CentOS6.X安装lvs,使用1.26版本。3,安装lvs后,要执行ipvsadm把ip_vs模块加载到内核。

(1)配置LVS虚拟IP(VIP)

[root@lvs01~]#ifconfigeth0:0192.168.0.240broadcast192.168.0.240netmask255.255.255.0up[root@lvs01~]#ifconfigeth0:0eth0:0Linkencap:EthernetHWaddr00:0C:29:D5:7F:9Dinetaddr:192.168.0.240Bcast:192.168.0.240Mask:255.255.255.255UPBROADCASTRUNNINGMULTICASTMTU:1500Metric:1(2)手工执行配置添加LVS服务并增加两台RS

[root@lvs01~]#ipvsadm-L-nIPVirtualServerversion1.2.1(size=4096)ProtLocalAddress:PortSchedulerFlags->RemoteAddress:PortForwardWeightActiveConnInActConnTCP192.168.0.240:80rrpersistent20->192.168.0.223:80Route100->192.168.0.224:80Route100(4)ipvs配置删除方法

[root@web01~]#echo"1">/proc/sys/net/ipv4/conf/lo/arp_ignore[root@web01~]#echo"2">/proc/sys/net/ipv4/conf/lo/arp_announce[root@web01~]#echo"1">/proc/sys/net/ipv4/conf/all/arp_ignore[root@web01~]#echo"2">/proc/sys/net/ipv4/conf/all/arp_announce2.2.5配置网关型防火墙防火墙的双网卡都不要设置网关,因为自己的就网关

内网客户端用于模拟lvs应用于内网的负载均衡情况比如lvs数据库读负载均衡,比如lvsmemcached缓存组负载均衡由于这类型的负载均衡请求都是由内网服务器发起,因此用内网客户端来模拟

#内网客户端访问测试root@LanClient~]#hostname-I192.168.0.220#内网客户端IP[root@LanClient~]#route-n#默认路由为网关防火墙KernelIProutingtableDestinationGatewayGenmaskFlagsMetricRefUseIface192.168.0.00.0.0.0255.255.255.0U000eth0169.254.0.00.0.0.0255.255.0.0U100200eth00.0.0.0192.168.0.1000.0.0.0UG000eth0[root@LanClient~]#curl192.168.0.240192.168.0.224bbs[root@LanClient~]#curl192.168.0.240192.168.0.223bbs[root@LanClient~]#curl192.168.0.240192.168.0.224bbs[root@LanClient~]#curl192.168.0.240192.168.0.223bbs#从上面可以看出,内网客户端模拟访问lvs负载均衡器,成功!2.2.7配置外网客户端外网客户端模拟的是lvs转发外网用户访问需求给RS节点处理的情况模拟外网客户端,要求客户端不能配置任何网关

由于外网客户端要访问内网的LVS需要经过网关防火墙的跳转,因此需要在防火墙服务器上做iptables的DNAT和SNAT,配置如下:

过程略

[root@lvs01~]#yum-yinstallkeepalived#光盘安装即可3.5仅实现LVS负载均衡器主和备的keepalived高可用功能LVS负载均衡器主的keepalived配置文件内容如下

[root@lvs01~]#sed-n'1,30p'/etc/keepalived/keepalived.conf!ConfigurationFileforkeepalivedglobal_defs{notification_email{215379068@qq.com}notification_email_fromyunjisuansmtp_server127.0.0.1smtp_connect_timeout30router_idLVS01}vrrp_instanceVI_1{stateMASTERinterfaceeth0virtual_router_id55priority150advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{192.168.0.240/24deveth0labeleth0:240}}LVS负载均衡器主的keepalived配置文件内容如下

[root@localhost~]#sed-n'1,30p'/etc/keepalived/keepalived.conf!ConfigurationFileforkeepalivedglobal_defs{notification_email{215379068@qq.com}notification_email_fromyunjisuansmtp_server127.0.0.1smtp_connect_timeout30router_idLVS02}vrrp_instanceVI_1{stateBACKUPinterfaceeth0virtual_router_id55priority100advert_int1authentication{auth_typePASSauth_pass1111}virtual_ipaddress{192.168.0.240/24deveth0labeleth0:240}}3.6添加LVS的负载均衡规则以下操作过程,在LVS主和备上完全一样

[root@lvs01~]#/etc/init.d/keepalivedstop#关闭主LVS的keepalived服务Stoppingkeepalived:[OK][root@lvs01~]#ipvsadm-Ln#没有ipvs规则IPVirtualServerversion1.2.1(size=4096)ProtLocalAddress:PortSchedulerFlags->RemoteAddress:PortForwardWeightActiveConnInActConn[root@lvs01~]#ipa|grep240#没有VIP[root@lvs01~]#/etc/init.d/keepalivedstart#启动keepalived服务Startingkeepalived:[OK][root@lvs01~]#ipvsadm-Ln#出现ipvs规则IPVirtualServerversion1.2.1(size=4096)ProtLocalAddress:PortSchedulerFlags->RemoteAddress:PortForwardWeightActiveConnInActConnTCP192.168.0.240:80rr->192.168.0.223:80Route100->192.168.0.224:80Route100[root@lvs01~]#ipa|grep240#出现VIPinet192.168.0.240/24scopeglobalsecondaryeth0:240附录:LVS集群分发请求RS不均衡生产环境实战解决生产环境中ipvsadm-L-n发现两台RS的负载不均衡,一台有很多请求,一台没有。并且没有请求的那台RS经测试服务正常,lo:VIP也有。但是就是没有请求。

IPVirtualServerversion1.2.1(size=4096)ProtLocalAddress:PortSchedulerFlags->RemoteAddress:PortForwardWeightActiveConnInActConnTCP192.168.0.240:80rrpersistent10->192.168.0.223:80Route100->192.168.0.224:80Route1812758问题原因:

persistent10的原因,persistent会话保持,当clientA访问网站的时候,LVS把请求分发给了52,那么以后clientA再点击的其他操作其他请求,也会发送给52这台机器。

解决办法:

到keepalived中注释掉persistent10然后/etc/init.d/keepalivedreload,然后可以看到以后负载均衡两边都均衡了。

THE END
1.社工备考:社区工作方法的三大模式对比(2)【练习1】小章在春华社区开展服务时,鼓励大家参与进来,针对社区的车辆乱停乱放问题,开展居民会议,广泛听取大家的意见,制定了方案,在大家的共同努力下,对车辆的停放进行了很好的规划。上述案例中体现的是社区工作的: A.危机介入模式 B.社区照顾模式 C.地区发展模式 ...https://bijie.huatu.com/2024/1115/1918322.html
2.学习语丨推动新时代社会工作高质量发展近日,习近平总书记对社会工作作出重要指示指出,坚持以人民为中心,践行新时代党的群众路线,坚定不移走中国特色社会主义社会治理之路,推动新时代社会工作高质量发展。党的十八大以来,习近平总书记围绕为什么要加强社会工作、怎样加强社会工作,作出一系列重要论述,为做好新时代社会工作指明了方向。今天,党建网梳理了习近平总书...http://www.dangjian.cn/xxy/2024/11/14/detail_202411147002720.html
3.2018级高职康复治疗技术专业人才培养方案(8.29)以综合型康复治疗工作岗位为主,为专科康复治疗工作岗位:如物理治疗、作业治疗、言语治疗、传统治疗等,分布于基层医院康复医学科、康复中心(民政、残联、工伤)、养老院、福利院、社区医疗机构康复部(社区康复站)、假肢矫形中心、特殊教育学校等单位。 工作一年后,可参加全国卫生技术人员系列资格(职称)考试,合格者可以获得...https://jwc.wfhlxy.com/info/1023/1376.htm
1.社区工作者的日常工作究竟是什么?社区工作其实可以分为两大...社区工作者的日常工作究竟是什么? 社区工作其实可以分为两大类:管理岗位和综合岗位。 管理岗位:领导者与协调者 ? 管理岗位主要是由社区服务站站长、社区书记、主任等人员担任。他们负责整个社区的全面工作,包括制定社区发展规划并组织实施,协调社区与各部门之间的关系,协助开展公共服务和其他公益服务,以及日常...https://www.yoojia.com/article/5004801511114707019.html
2.社会工作者从事什么工作?社会工作者从事什么工作? 摘要社会工作者是现代社会中不可或缺的职业之一,他们致力于帮助个人、家庭和社区解决社会问题,促进社会福祉。本文将详细介绍社会工作者的工作内容、工作方式、面临的挑战以及未来的工作前景,旨在为有志于从事社会工作的人士提供全面的了解。https://www.hqwx.com/shgzz-kaoshi/news/17314839551667.html
3.公共服务与责任分担民法典下社区管理模式演进公共服务与责任分担民法典下社区管理模式演进 在新时代背景下,民法典的颁布与实施,为我们提供了一个全新的法律框架,它不仅规范了个人之间的关系,还对社会组织和社区管理提出了新的要求。其中,关于公共服务与责任分担这一方面,是民法典对我们生活意义的一个重要体现。https://www.cjan6a6c.cn/mei-ti-bao-dao/389032.html
4.细聊工作中常见的分支开发模式腾讯云开发者社区细聊工作中常见的分支开发模式 1. 前言 相信大家一直都在困惑,我们日常工作是如何进行代码开发工作的,以及我们的代码是如何部署到线上服务器的,其实这里有一个很重要的点,也是很多人都会忽略的点,那就是分支开发模式,分支开发模式一共分为三种,分别是:主干开发,主干发布;主干开发,分支发布;分支开发,主干发布。https://cloud.tencent.com/developer/article/2164188
5.SRE&运维面试相关高频题库sre面试题21、Apache三种工作模式 prefork模式 安全 一对一 不能处理高并发 worker模式主进程-子进城-多个线程可以处理高并发 event模式 keepli 长链接一定时间段内减少请求次数 22、Apache优化 1.利用apache自带的rotatelogs工具,做日志切割减少文件大小,保证单个日志文件不过大。 https://blog.csdn.net/qq_38326500/article/details/125660658
6.社区工作人员年度述职报告范文(精选17篇)时光在流逝,从不停歇;万物在更新,而我们在成长,回顾这段时间以来的工作,我们取得了不错的成绩,述职报告也应跟上时间的脚步了。那么问题来了,述职报告应该怎么写?下面是小编精心整理的社区工作人员年度述职报告范文,仅供参考,希望能够帮助到大家。 社区工作人员年度述职报告 1 ...https://www.ruiwen.com/baogao/6880053.html
7.教育评估与督导填空三六、从基础教育管理职权的纵向划分上看,并存着三种主要模式是什么?答一是县、乡、村三级办学,三级管理二是县、乡村三级办学,县、乡两级统筹三是县、乡、村分级办学按管理内容的性质分工管理 三七、地方教育工作评估的内容?答 1、地方各级政府及教育行政部门贯彻执行《中华人民共和国教育法》等法律法规的情况 2...https://www.yxfsz.com/view/1677668480718049282
8.中级社会工作者考试《社会工作综合能力》各章重点复习内容第七章:社区工作方法 1社区工作的特点和目标 主要是能够区分任务目标和过程目标。 2社区工作的主要模式 能够区分三种不同的模式,重点关注各个模式的主要关注点(模式的特点)、实施策略和社会工作者的主要角色。 3社区工作各阶段的工作重点 掌握各阶段社会工作者的主要工作内容。 4社区工作的技巧 重点关注发展社区支持网...https://www.wangxiao.cn/shg/2983471.html
9.智慧家庭医生专题报告:调研工作站落地进展,解决家医服务五大痛点...上海作为国内最先试水家庭医生签约服务的城市,其主要优先满足60岁以上老年人和慢性病群体的需求,通过1家社区卫生服务中心、1家区级医院和1家市级医院的“1+1+1”组织结构,为签约居民提供医疗服务。 而且,家庭医生服务模式灵活,可以采取家庭医生工作室、医护组合模式、社区自愿者与家庭医生相结合等。 https://news.hexun.com/2019-05-14/197176861.html
10.SMTXOS社区版安装使用中常见问题合集–SmartX自SMTX OS 社区版发布以来,有许多用户下载了和尝试部署 SMTX OS ,在过程中遇到一些问题并在社区中提问,本文是将这些有代表性的问题集合在一起,并按照不同阶段进行分类,希望能帮助用户快速获得解决问题的思路。https://www.smartx.com/blog/2022/02/smtx-os-faqs/
11.品牌如何通过社会理念营销,搭建自己的信任体系?二、商业向善的三种常见模式 为了研究企业如何将善意融合进商业模式中,我们将目前市场上社会理念营销模式进行分类,其中以自我为出发点的理念倡导、one for one、全方位协助模式是在社会理念营销中运用得比较成熟的几种模式。 1、以自我为出发点的理念倡导 https://www.digitaling.com/articles/291325.html
12.2017年社会工作实务基醇点2社区工作的主要模式 地区发展模式:该模式是在一个地域内鼓励居民通过自助及互助去解决社区内的问题,工作重点是提高居民的民主参与意识与挖掘、培养当地人才。用于那些比较简单的社区。 社会计划模式:该模式依靠专家的意见,通过有关专家的调研、论证、计划,然后落实、推行,去解决社区内的问题,用于处理复杂的社会问题。 https://www.yjbys.com/edu/shehuigongzuo/240584.html