IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux项目实战---lamp架构(五)LVS负载均衡 -> 正文阅读

[系统运维]linux项目实战---lamp架构(五)LVS负载均衡

一.LVS负载均衡

1. LVS简介

  • LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,其体系结构如图1所示,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台Web服务器,比如,轮询算法可以将外部的请求平均分发给后端的所有服务器,终端用户访问LVS调度器虽然会被转发到后端真实的服务器,但如果真实服务器连接的是相同的存储,提供的服务也是相同的服务,最终用户不管是访问哪台真实服务器,得到的服务内容都是一样的,整个集群对用户而言都是透明的。最后根据LVS工作模式的不同,真实服务器会选择不同的方式将用户需要的数据发送到终端用户,LVS工作模式分为NAT模式、TUN模式、FULLNAT模式以及DR模式。

2.基于DR的LVS负载均衡

在LVS(TUN)模式下,由于需要在LVS调度器与真实服务器之间创建隧道连接,这同样会增加服务器的负担。与LVS(TUN)类似,DR模式也叫直接路由模式,其体系结构如图4所示,该模式中LVS依然仅承担数据的入站请求以及根据算法选出合理的真实服务器,最终由后端真实服务器负责将响应数据包发送返回给客户端。与隧道模式不同的是,直接路由模式(DR模式)要求调度器与后端服务器必须在同一个局域网内,VIP地址需要在调度器与后端所有的服务器间共享,因为最终的真实服务器给客户端回应数据包时需要设置源IP为VIP地址,目标IP为客户端IP,这样客户端访问的是调度器的VIP地址,回应的源地址也依然是该VIP地址(真实服务器上的VIP),客户端是感觉不到后端服务器存在的。由于多台计算机都设置了同样一个VIP地址,所以在直接路由模式中要求调度器的VIP地址是对外可见的,客户端需要将请求数据包发送到调度器主机,而所有的真实服务器的VIP地址必须配置在Non-ARP的网络设备上,也就是该网络设备并不会向外广播自己的MAC及对应的IP地址,真实服务器的VIP对外界是不可见的,但真实服务器却可以接受目标地址VIP的网络请求,并在回应数据包时将源地址设置为该VIP地址。调度器根据算法在选出真实服务器后,在不修改数据报文的情况下,将数据帧的MAC地址修改为选出的真实服务器的MAC地址,通过交换机将该数据帧发给真实服务器。整个过程中,真实服务器的VIP不需要对外界可见
在这里插入图片描述

DR知识点:

  • mac转换为rs的地址

  • 不处理数据,只改mac,转发

  • 只有获取vip才能与RS连接

  • dr模式必须要在一个vlan

  • 在同一个vlan要屏蔽相同vip,避免冲突

  • mac地址在第二层 数据链路层

  • 只有DR vip对外响应

  • DR>TUN>NAT>FULLNAT 性能对比

  • DR 对后端没有健康检测,DNS也没有后端健康监测

  • Client----DR—RS–Client

ipvsadm:

  • ipvs与iptables优先级,iptables优先级最高
  • 内核里用netfiter
  • firewall 企业8使用 门槛低
  • netfiter----ipvs iptables----firewalld
  • iptables允许:80进入 ipvs 进行执行设置好lvs策略

二.ipvsadm实现Apache负载均衡横

实现基本负载均衡需要三台虚拟机,server1作为转换端,server2/3提供Apache服务

  • server1:172.25.3.1
  • server2:172.25.3.2
  • server3:172.25.3.3
  • vip:172.25.3.100

server1:


yum install -y ipvsadm

ip addr add 172.25.3.100/24 dev eth0  #添加vip

ipvsadm -A -t 172.25.3.100:80 -s rr
ipvsadm  -a -t 172.25.3.100:80 -r 172.25.3.2:80 -g
ipvsadm  -a -t 172.25.3.100:80 -r 172.25.3.3:80 -g
ipvsadm -ln # 查看配置信息

在这里插入图片描述
server1 MAC地址及ip:
在这里插入图片描述

server2/3配置:
二者配置一致,ip分别为2/3

yum install -y httpd
 systemctl  start httpd.service 
 echo server2 > /var/www/html/index.html

在这里插入图片描述

添加vip:

ip addr add 172.25.3.100/24 dev eth0
ip addr

在这里插入图片描述
测试负载均衡:
for i in {1…10};do curl 172.25.3.100;done

在这里插入图片描述
测试达到效果,连接到的100 ip对应也是server1的MAC地址,但如果将 访问的删除,ping通100,将得到server3的MAC地址,此时将绕过server1,直接获取server3信息,不满足负载均衡的定义。
删除地址:
在这里插入图片描述
获取server3 MAC:
在这里插入图片描述
访问100:
在这里插入图片描述

因此,我们需要配置ip隐藏策略,即设置不可以通过vip 172.25.3.100直接访问server2/3,又能保证提供server2/3服务。
配置ip隐藏策略:

yum install -y arptables.x86_64 

arptables -A INPUT -d 172.25.3.100 -j DROP
arptables -A OUTPUT -s 172.25.3.100 -j mangle --mangle-ip-s 172.25.3.2
arptables-save 
arptables-save  > /etc/sysconfig/arptables #arp设置存入
systemctl  restart  arptables.service  #重启,写入设置

arptables -nL

在这里插入图片描述

在这里插入图片描述

测试:

成功
在这里插入图片描述

三.keepalive实现DR模式故障检测

之前简介中,讲述过DR模式的缺点是无法发现客户端故障,依旧按照LVS策略进行访问客户端,出现connection reject问题,本节将通过keepalive实现故障检测。

首先,删除server1之前的3.100的配置,server2/3配置不变

 ip addr del 172.25.3.100/24 dev eth0

#清空ipvs配置    
 ipvsadm -C      
 ipvsadm -ln

在这里插入图片描述

安装mail用于接受故障邮件:
在这里插入图片描述

安装及配置keepalive:

cd /etc/keepalived/

vim keepalived.conf

systemctl  start keepalived.service

在这里插入图片描述
配置内容:

global_defs {
   notification_email {
	root@localhost
   }
   notification_email_from keepalived@localhost
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   #vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 3
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
	172.25.3.100
    }
}

#ipvs配置自动生成

virtual_server 172.25.3.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    #persistence_timeout 50
    protocol TCP

    real_server 172.25.3.2 80  {
        weight 1
        TCP_CHECK  {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
    real_server 172.25.3.3 80  {
        weight 1
        TCP_CHECK  {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

测试:
正常状态

vip自动生成:
在这里插入图片描述
查看ipvsadn:
在这里插入图片描述

for i in {1..10};do curl 172.25.3.100;done

在这里插入图片描述

stop server2:

systemctl stop httpd

在这里插入图片描述
在这里插入图片描述

错误邮件信息:

[root@server1 keepalived]# mail
Heirloom Mail version 12.5 7/5/10.  Type ? for help.
"/var/spool/mail/root": 1 message 1 new

>N  1 keepalived@localhost  Sat Jul 10 03:13  17/634   "[LVS_DEVEL] Realserve"
>& 1
>Message  1:
>From keepalived@localhost.localdomain  Sat Jul 10 03:13:22 2021
>Return-Path: <keepalived@localhost.localdomain>
>X-Original-To: root@localhost
>Delivered-To: root@localhost.localdomain
>Date: Sat, 10 Jul 2021 03:13:22 -0400
>From: keepalived@localhost.localdomain
>Subject: [LVS_DEVEL] Realserver [172.25.3.2]:80 - DOWN
>X-Mailer: Keepalived
>To: root@localhost.localdomain
>Status: R

四.keepalive实现LVS高可用

由于server1为LVS策略服务提供者,当server1宕机时候,将导致访问及负载均衡都无法进行,因此需要采用高可用方式,双机热备确保LVS稳定性。

高可用描述:配置一台BACKUP 端server4,具备与server1相同LVS策略配置,当server1出现故障宕机时,将vip转移至server4,并切换server4为MASTER,继续提供服务。当server1恢复正常,再将vip及MASTER转移至server1(server1优先级大于server4)

配置新虚拟机server4:172.25.3.4

安装keepalived、ipvsadm

修改配置文件 backup、priority

vrrp_instance VI_1 {
    state BACKUP #此处与server1不同 身份为BACKUP
    interface eth0
    virtual_router_id 3
    priority 50 # 优先级50 小于MASTER
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        172.25.3.100
    }
}
#其余配置内容同server1

启动服务
在这里插入图片描述

在这里插入图片描述

当lvs宕机,vip进行漂移,backup转为master

systemctl stop keepalived

vip 已经不在server1上
在这里插入图片描述
server4日志查看身份转换:

在这里插入图片描述
vip漂移至server4:
在这里插入图片描述

此时负载均衡依旧有效,但访问的mac地址转为server4地址

在这里插入图片描述

在这里插入图片描述

重启server1,MAC转为server1地址,说明MASTER又切换为server1:

ststemctl start keepalived

在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-11 16:57:23  更:2021-07-11 16:58:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:22:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码