Linux企业运维--LVS负载均衡

Linux运维企业架构实战系列 Linux运维企业架构项目实战系列 项目实战1—LNMP的搭建、nginx的ssl加密、权限控制的实现 项目实战2—LVS、nginx实现负载均衡系列 2.1 项目实战2.1—实现基于LVS负载均衡集群的电商网站架构 2.2 项目实战2.2—nginx 反向代理负载均衡、动静分离和缓存的实现 2.3 项目实战2.3—Tengine实现反向代理负载均衡 项目实战3—实现基于Keepalived+L... 阅读详情

-- LVS(Linux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,可以在unix/linux平台下实现负载均衡集群功能。LVS是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。
根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、以及DR模式

 -- DR模式

  • DR模式:通过直接路由实现虚拟服务器。DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。DR模式可以极大的提高集群系统的伸缩性,而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调度器与真实服务器都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。
  • 原理:LVS通过控制IP来实现负载均衡。ipvsadm是其具体的实现模块。
  • ipvsadm的主要作用:安装在调度器上面,在调度器上虚拟一个对外访问的IP(VIP)。用户访问VIP,到达调度器,调度器根据一定的规则选择一个真实服务器,处理完成后然后返回给客户端数据。

-- 使用DR模式实现负载均衡

实验环境:server1为调度器,负载流量均衡(基于4层即传输层进行调度,调度算法有WRR/WLC等,传输协议为TCP/UDP),server2和server3为真实服务器节点。
[root@server1 ~]# yum install -y ipvsadm server1安装ipvsadm(用于用户端管理LVS的策略规则

书写策略:在server1上添加虚拟一个对外访问的IP:172.25.15.100(vip),即提供虚拟服务的ip地址,也可以直接用原有IP,但最好独立出来

ipvsadm -A 添加规则;-t tcp协议;-s 调度;rr 轮叫

  • -a向tcp虚拟服务添加
  • -r real server
  • -g 直连即DR模式

ipvsadm -ln:查看当前连接情况(-ln不用解析),

Forward:转发方式,当前是路由转发;
Weight:权重;
ActiveConn:当前活跃的连接数;
InActConn:当前不活跃的连接数

server2和server3安装httpd服务,并开启 

LVS-DR集群类型要求,当用户向vip发起请求时,调度器和真实服务器上必须都要有vip,因此需要给server2和server3添加虚拟IP

[root@server2 ~]#  yum install  -y httpd

[root@server2 ~]# systemctl start httpd

[root@server2 ~]# echo server2 > /var/www/html/index.html

[root@server2 ~]#  ip addr add 172.25.15.100/32 dev eth0

[root@server3 ~]#  yum install  -y httpd

[root@server3 ~]# systemctl start httpd

[root@server3 ~]# echo server2 > /var/www/html/index.html

[root@server3 ~]#  ip addr add 172.25.15.100/32 dev eth0

此时真机使用curl 172.25.15.100,出现轮叫 

[root@westos_student74 images]# curl 172.25.15.100
server3
[root@westos_student74 images]# curl 172.25.15.100
server2
[root@westos_student74 images]# curl 172.25.15.100
server3

ARP协议是将IP地址映射为MAC地址的协议,其在协议上使用ARP请求及ARP应答报文来实现

arp -d是删除ARP缓存列表的命令,可以删除所有的ARP缓存,也可以删除指定的ARP缓存

此时使用arp -an查看本地ARP缓存的172.25.15.100对应的MAC地址为调度器server1的地址,当真机执行arp -d 删除指定虚拟IP的ARP缓存后,此时不能过滤得到172.25.15.100的MAC地址。再次Ping之后又可以得到,但是是server3的地址,不是调度器的地址(谁先响应就缓存谁的MAC地址)

[root@westos_student74 images]# arp -an | grep 100
? (172.25.6.100) at 52:54:00:ab:94:fc [ether] on br0
[root@westos_student74 images# arp -d 172.25.6.100
[root@westos_student74 images]# arp -an | grep 100
[root@westos_student74 images]# ping 172.25.6.100
PING 172.25.6.100 (172.25.6.100) 56(84) bytes of data.
64 bytes from 172.25.6.100: icmp_seq=1 ttl=64 time=0.300 ms
64 bytes from 172.25.6.100: icmp_seq=2 ttl=64 time=0.247 ms
^C
--- 172.25.6.100 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 37ms
rtt min/avg/max/mdev = 0.247/0.273/0.300/0.031 ms

 此时curl 172.25.33.100,只出现了server3的发布页面,说明此时客户端向vip发起请求时,并没有经过调度器直接到达了真实服务器

解决这一问题,需要给server2和server3安装ARP防火墙arptables(用于管理内核中的ARP包过滤规则表)

设定APR配置规则,DR模式要求服务器节点应该禁掉设备的APR响应

arptable_filter 只有一个表 filter ,不指定 -t 表名时默认就是 filter 表。
filter表有三个链,一个是INPUT,表示外面发进来的ARP包;另外一个是OUTPUT,表示本机发出的ARP包;第三个是FORWARD,转发ARP包。
-A:向规则链中追加规则;
-d:指定要匹配ARP包的目的IP地址;
-j:指定满足添加的规则时执行的动作;
-s:指定要匹配ARP包的源ip地址;
-g:直连
-r:真实服务器地址

当数据包的目的地址时100时就丢弃该数据包,当从本机发送出的数据包IP是100时,mangle转换数据包源地址,伪装源地址IP为172.25.15.2。

此时当真机执行arp -d 删除指定的虚拟IP,ping 之后,过滤得到172.25.15.100的MAC地址是server1的MAC地址,此时使用curl 172.25.15.100,可以轮叫

-- 问题解决

某台REALServer down 了,解决方法

[root@server2 ~]# systemctl stop httpd

此时curl 172.25.15.100 已经无法访问server2,客户端curl 172.25.15.100会报错,只能访问到server3

 但是在server1中ipvsadm -ln 仍能检测到server2

 

 

 

 解决办法:
使调度策略实时更新
server1:
(1)yum install keepalived (健康检测)
ipvsadm没有健康检测功能,即检测策略对应的后端服务是否正常,因此我们需要安装keepalived

[root@server ~]# ssh server4 yum install -y keepalived 

修改keepalived的主配置文件/etc/keepalived/keepalived.conf
(vrrp虚拟路由冗余协议,keepalived利用这一协议实现了高可用) 

[root@server1 keepalived]# vim keepalived.conf 

notification_email:设置通知邮件,出了问题给谁发送邮件notification_email_from:由谁发送
超时
路由id
注释vrrp_strict,这一参数功能是在出问题时抓取数据包 

主虚拟路由MASTER:向所有备用虚拟路由BACKUP发送“心跳包”,备用虚拟路由只负责接收,当备用虚拟路由接收不到时,priority优先级最高的备用虚拟路由代替MASTER提供虚拟服务,数字越高,优先级越高,所以MASTER优先级数字一定要最大
虚拟路由id:确认哪些虚拟路由是同一个LVS集群的; 修改vip:改成自己设置的vip; 

虚拟服务语句块:
delay_loop:每s/次健康检测;
lb_algo:调度算法;
persistence_timeout:持久连接,即在多长时间内DR会将所有连接请求持续调度给一个后端;(80端口没必要) 写真实服务器模块
(之后的删掉)

此时删掉server1上手动设置的虚拟ip172.25.33.100,ipvsadm -C清除设置的规则,启动keepalived软件 

[root@server2 ~]# systemctl start httpd  

server4 修改BACKUP、优先级

lvs down怎么办(LVS冗余,高可用)

查看server4的日志,可以看到此时的server4是BACKUP
当server1停止keepalived服务后,再次查看server4的日志,可以看到此时的server4是MASTER

 过滤得到172.25.15.100的MAC地址是server4的MAC地址

再次开启server1的 keepalived服务后,过滤得到172.25.15.100的MAC地址是server1的MAC地址,此时server4为BACKUP 

 [root@server2 ~]# systemctl stop httpd

[root@server1 keepalived]# systemctl reload keepalived.service

Linux云计算学习之企业级实战项目视频教程合集 随着互联网技术的不断进步和发展,对运维人员提出了更高的要求和挑战,如何才能将运维工作自动化,提升工作的效率?我给大家分享Linux大型网站高并发架构及自动化运维项目资料。 让大家学完后可以具备企业真正的大型网站搭建能力以及自动化运维的实战能力。在企业中运用zabbix监控企业数据,第一时间了解服务的运行状态,通过nginx+lvs+keeplived在企业中根据公司业务做七层负载以及四层负载。 ... 阅读详情

相关推荐

Keepalived简介

转载来自:https://www.zhihu.com/question/34822368/answer/59961752 keepalived是一个类似于layer3, 4 & 7交换机制的软件,也就是我们平时说的第3层、第4层和第7层交换。Keepalived是自动完成,不需人工干涉。 随着系统架构的逐渐演化,服务器的数量和结构会越来越复杂,例如web服务器集群的搭建,提高了系统

那又怎样?的博客 753

负载均衡之keepalived

DR实验存在的隐患 DR可能会挂,单点故障 RS可能会挂 解决方案: 解决单点故障 主备:准备多个DR备用机,做好配置,主机挂掉备用机顶上 主主 解决RS会挂的问题 给RS发送请求,如果收到200 ok回复则说明RS正常 keepalived keepalived就是实现了上述解决方法的工具,检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web服务器从系统中剔除,当web服务器工作正常后Keepalived自动将web服务器

会飞的鱼aaaa 527

LVS-DR-Keepalived

文章目录LVS+Keepalived 高可用群集KeepalivedKeepalived实现原理剖析LVS+Keepalived 高可用群集部署 LVS+Keepalived 高可用群集 1、LVS Linux虚拟服务器(Linux Virtual Server) LVS 实际上相当于基于IP地址的虚拟化应用, 为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法 Keepalived 1、支持故障自动切换(Failover) 2、支持节点健康状态检查(Health Checking) 判断LVS

weixin_53496421的博客 299

Linux中实现-LVS负载均衡集群

文章目录一、集群的类型1、负载均衡集群2、高可用集群3、高性能计算集群二、LVS--Linux Vritual Service1、调度算法 scheduler2、LVS的工作模式1)NAT模式2)DR模式3、NAT模式核心要素4、NAT模式的工作原理5、FULL NAT的工作原理三、案例:基于NAT模式配置web集群1、环境说明1、所有服务器关闭防火墙、SELinux、开启时间同步2、在调度器上事先安装ipvsadm、Web服务器安装httpd3、在调度器上分别配置VIP、DIP4、所有real serv

ljh451321的博客 1465

LVS+Keepalived群集

Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。...

qq_44363920的博客 740

Linux企业运维——LVS负载均衡

Linux企业运维——LVS负载均衡 (临时笔记,以后会详细修补) 文章目录Linux企业运维——LVS负载均衡1、LVS简介2、DR模式3、使用DR模式实现负载均衡4、问题解决5、LVS的10个调度算法简介 1、LVS简介 LVSLinux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,可以在unix/linux平台下实现负载均衡集群功能。LVS是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同

weixin_44310047的博客 3064

linux运维企业篇——LVS负载均衡之DR

一.LVSLinux Virtual Server) LVS是一个虚拟化的服务器集群(Cluster)系统,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障从而将一组服务器构成一个高性能,高可用的虚拟服务器。整个服务器集群的结构对客户是透明的而且无需修改客户端和服务器端的程序。 二.LVS负载均衡方式(四种...

weixin_44321116的博客 188

linux企业运维--LVS负载均衡集群

一、LVS简介 LVSLinux Virtual Server)即Linux虚拟服务器,是一个虚拟的服务器集群系统,可以在unix/linux平台下实现负载均衡集群功能。LVS是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序。 根据LVS工作模式的不同,真实服务

weixin_43635039的博客 295

Linux企业运维 6.7 -- LVS负载均衡

目录 一. LVS简介 二、lvs的三种工作模式 1、NAT模式 2、DR工作模式 3、TUN工作模式 三、DR模式实现负载均衡 四、ARP协议 五、LVS心跳检测——keepalived 六、LVS冗余——高可用 一. LVS简介 LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器,是一个虚拟的服务器集群系统 LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。但是,只能做代理使用,只支持四层协议。不支持正...

m0_53485346的博客 367

Linux企业运维--(9)LVS负载均衡

Linux企业运维 实验所用系统为Redhat-rhel7.6。 目录Linux企业运维Linux企业运维--(9)LVS负载均衡之DR模型一、LVS1、概述2、结构3、IP虚拟服务器软件IPVS1) Virtual Server via Network Address Translation(VS/NAT)2)Virtual Server via IP Tunneling(VS/TUN)3)Virtual Server via Direct Routing(VS/DR)二、DR模型(负载均衡+高可用

weixin_43849813的博客 699

Linux企业运维--7.LVS负载均衡

1. LVS LVS的英文全称是Linux Virtual Server,Linux虚拟服务器,是一个虚拟的服务器集群系统。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。 2. LVS的作用 LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。 它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器。 它易用,配置非常简单,且有多种负载均衡的方法。它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影.

yjy11223的博客 358

linux运维企业篇——LVS负载均衡之TUN

1.环境配置 1).在server1中: 删除之前的配置的DR模式策略 [root@server1 ~]# ipvsadm -l #查看之前的策略是直接路由模式 [root@server1 ~]# ipvsadm -C #清除之前策略 [root@server1 ~]# ipvsadm -l #再次查看已经没有 [root@server1 ~]# modprobe ipip #添加模块 [ro...

weixin_44321116的博客 301

Linux企业运维(一)LVS负载均衡原理、DR模式实现负载均衡

LVS概要、DR模式实现负载均衡

moumumu的博客 484

LInux企业运维进阶4——(1)LVS负载均衡简介

一.LVS是什么? LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。它是我们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。 二.LVS的功能? LVS主要用于多服务器的负载均衡。它工作在网络层,可以实现高性能,高可用的服务器集群技术。它廉价,可把许多低性能的服务器组合在一起形成一个超级服务...

qq_44285112的博客 208

Linux企业运维进阶教程4——(6)LVS负载均衡+HA高可用集群

一.HA(keepalived)高可用性集群简介 Keepalived是Linux下的一个轻量级别的高可用解决方案。高可用(High Avalilability,HA),其实俩种不同的含义:广义上来讲,是指整个系统的高可用性,狭义上来讲就是主机的冗余和接管 keepalived起初是为LVS设计的,专门用来监控集群系统中的各个服务的节点的状态,它根据TCP/IP参考模型的第三,第四,第五层交换机...

qq_44285112的博客 664

Linux运维新手的修炼手扎之第29天

本文介绍了iptables防火墙和LVS负载均衡的核心功能与应用。iptables方面重点讲解了SNAT(源地址转换)、DNAT(目标地址转换)和REDIRECT(重定向)三种网络地址转换技术,包括其语法配置、适用场景(如SNAT用于内网共享公网IP,DNAT用于内网服务器对外服务)以及MASQUERADE动态伪装功能。LVS部分详细说明了其作为四层负载均衡器的架构(CIP/VIP/DIP/RIP等术语)、安装配置方法、集群管理命令(增删改查后端服务器)以及三种工作模式(NAT/DR/TUN)的特点对比

qq_65634140的博客 1716
上一篇: Ansible中的角色使用
下一篇: Linux企业运维--Rhel7.6封装虚拟机
一叶存秋
博客等级 码龄5年 26粉丝 · 69原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值