当前位置: 首页 > news >正文

LVS与Keepalived详解(二)LVS负载均衡实现实操

文章目录

  • 前言
  • 一、LVS-DR 模式详解
    • 1.1 数据包流向分析
    • 1.2 DR 模式的特点
  • 二、LVS-DR 集群部署实战
    • 2.1 环境准备
    • 2.2 配置负载调度器(Director Server)
    • 2.3 配置节点服务器(Real Server)
    • 2.4 测试验证
  • 三、前期回顾
    • 3.1 LVS 三种工作模式及其区别?
    • 3.2 LVS 调度算法
  • 总结


好的,我已经为您将提供的文档整理成了一篇结构清晰、层次分明的博客文章,并按照要求添加了前言和总结。


前言

负载均衡是构建高可用服务的核心技术之一,Linux Virtual Server (LVS) 的 DR(Direct Routing)模式以其高性能和低延迟成为热门选择。本文将深入解析 LVS-DR 的工作原理,并通过实战演示如何快速搭建一个高效的负载均衡集群,助您轻松掌握这一关键技能。

一、LVS-DR 模式详解

1.1 数据包流向分析

LVS-DR 模式的工作流程可以清晰地分为以下几个步骤,理解此流程是掌握 DR 模式的关键:

  1. 客户端发送请求:客户端(CIP)向负载均衡器(Director Server)的虚拟 IP(VIP)发送请求报文。报文源地址为 CIP,目标地址为 VIP。
  2. 负载均衡器接收并转发:请求报文到达 Director Server 的内核空间。IPVS(IP 虚拟服务器)模块判断该请求的服务是否为已定义的集群服务。如果是,IPVS 会重新封装数据包的 MAC 头,将源 MAC 地址改为 Director Server 的 MAC 地址,将目标 MAC 地址改为选定的真实服务器(Real Server, RIP)的 MAC 地址。IP 头保持不变(源 IP 为 CIP,目标 IP 为 VIP)。
  3. 真实服务器处理请求:由于 MAC 地址匹配,Real Server 会接收该数据包。解包后,应用程序(如 Web 服务器)发现目标 IP(VIP)配置在本机的 lo 接口上,于是处理这个请求。
  4. 真实服务器直接响应客户端:处理完成后,Real Server 会构建响应报文。该报文不经过 Director Server,而是直接通过其默认网关发送给客户端。响应报文的源 IP 地址为 VIP,目标 IP 地址为 CIP。

1.2 DR 模式的特点

基于其工作流程,DR 模式具有以下显著特点:

  1. 同一网络:Director Server 和所有 Real Server 必须位于同一个物理网络(同一广播域)中,以便能通过 MAC 地址进行二层通信。
  2. IP 地址灵活:Real Server 可以使用私有地址,也可以使用公网地址。
  3. 非网关角色:Director Server 仅作为流量的入口,不作为 Real Server 的网关,极大地减轻了其负担。
  4. 响应直接返回:响应数据包由 Real Server 直接返回给客户端,性能极高。这是 DR 模式高吞吐量的主要原因。
  5. 网关指向:Real Server 的网关必须指向能够连接互联网的路由器,绝不能指向 Director Server。
  6. 本地回环接口配置 VIP:每台 Real Server 都需要在 lo 接口上配置 VIP 地址,以便处理目标为 VIP 的请求。

二、LVS-DR 集群部署实战

以下是一个完整的 LVS-DR 模式部署流程。

2.1 环境准备

角色IP 地址主机名
客户端192.168.10.200client
Director Server192.168.10.23 (DIP)lvs-dr
192.168.10.180 (VIP)
Real Server 1192.168.10.16 (RIP)web01
Real Server 2192.168.10.17 (RIP)web02
NFS 共享存储服务器192.168.10.19nfs

2.2 配置负载调度器(Director Server)

  1. 关闭防火墙与 SELinux

    systemctl stop firewalld.service
    setenforce 0
    
  2. 加载 IP_VS 模块并安装管理工具

    modprobe ip_vs
    cat /proc/net/ip_vs # 确认模块是否加载
    yum -y install ipvsadm
    
  3. 配置虚拟 IP 地址(VIP)
    编辑网卡配置文件 /etc/sysconfig/network-scripts/ifcfg-ens33:0

    DEVICE=ens33:0
    ONBOOT=yes
    IPADDR=192.168.10.180
    NETMASK=255.255.255.255
    

    启用并查看 VIP:

    ifup ens33:0
    ifconfig ens33:0
    
  4. 调整内核参数(/etc/sysctl.conf

    net.ipv4.ip_forward = 0
    net.ipv4.conf.all.send_redirects = 0
    net.ipv4.conf.default.send_redirects = 0
    net.ipv4.conf.ens33.send_redirects = 0
    

    使配置生效:sysctl -p

  5. 配置负载分配策略

    ipvsadm-save > /etc/sysconfig/ipvsadm # 初始化保存文件
    systemctl start ipvsadmipvsadm -C # 清空现有规则
    ipvsadm -A -t 192.168.10.180:80 -s rr # 添加虚拟服务,调度算法为轮询(rr)
    ipvsadm -a -t 192.168.10.180:80 -r 192.168.10.16:80 -g # 添加 Real Server,-g 代表 DR 模式
    ipvsadm -a -t 192.168.10.180:80 -r 192.168.10.17:80 -gipvsadm -ln # 查看配置,确认模式为 Route (DR)
    

2.3 配置节点服务器(Real Server)

以下操作需要在 web01 和 web02 上分别执行。

  1. 配置虚拟 IP 地址(VIP)到 lo:0
    编辑文件 /etc/sysconfig/network-scripts/ifcfg-lo:0

    DEVICE=lo:0
    ONBOOT=yes
    IPADDR=192.168.10.180
    NETMASK=255.255.255.255
    

    启用并添加路由:

    ifup lo:0
    ifconfig lo:0
    route add -host 192.168.10.180 dev lo:0
    

    为了重启后依然生效,将路由命令加入 /etc/rc.local

    echo '/sbin/route add -host 192.168.10.180 dev lo:0' >> /etc/rc.local
    chmod +x /etc/rc.d/rc.local
    
  2. 调整内核 ARP 参数
    编辑 /etc/sysctl.conf,添加以下行:

    net.ipv4.conf.lo.arp_ignore = 1
    net.ipv4.conf.lo.arp_announce = 2
    net.ipv4.conf.all.arp_ignore = 1
    net.ipv4.conf.all.arp_announce = 2
    

    使配置生效:sysctl -p

  3. 安装服务并挂载共享存储

    yum -y install nfs-utils rpcbind httpd
    systemctl start httpd
    systemctl start rpcbind
    
    • web01 上:
      mount.nfs 192.168.10.19:/opt/kgc /var/www/html
      echo 'this is kgc web!' > /var/www/html/index.html
      
    • web02 上:
      mount.nfs 192.168.10.19:/opt/benet /var/www/html
      echo 'this is benet web!' > /var/www/html/index.html
      

2.4 测试验证

在客户端(192.168.10.200)打开浏览器,多次访问 http://192.168.10.180/。页面内容应在 this is kgc web!this is benet web! 之间交替显示,这表明 LVS 负载均衡集群已经成功运行。

三、前期回顾

3.1 LVS 三种工作模式及其区别?

  • NAT:通过网络地址转换实现。请求和响应都经过 Director,Director 易成为瓶颈。Real Server 可以是任何操作系统。
  • DR:使用直接路由技术。只有请求经过 Director,响应直接由 Real Server 返回,性能极高。要求 Director 和 Real Server 在同一个局域网。
  • TUN:通过 IP 隧道技术实现。能跨机房部署,Real Server 可以不在同一个局域网。Real Server 需要支持隧道协议。

3.2 LVS 调度算法

  • 固定调度算法:轮询(rr)、加权轮询(wrr)、目标地址哈希(dh)、源地址哈希(sh)。
  • 动态调度算法:最少连接(lc)、加权最少连接(wlc)、基于地址的最少连接(lblc)。

总结

LVS-DR 模式通过智能路由实现请求的高效分发,大幅提升服务响应能力。尽管部署时需要精细调整网络参数,但其卓越的性能表现值得投入。本文从理论到实践完整呈现了 LVS-DR 的部署流程,掌握这一技术后,您将能够为企业构建更强大、更可靠的网络服务体系。



文章转载自:

http://7vu4nl6a.Lcbgf.cn
http://CWPT6weP.Lcbgf.cn
http://x1lL2Knu.Lcbgf.cn
http://lC2lqfqK.Lcbgf.cn
http://kSFge4o2.Lcbgf.cn
http://rsOOui3S.Lcbgf.cn
http://oOevan0q.Lcbgf.cn
http://TXF025FB.Lcbgf.cn
http://T5dd4akE.Lcbgf.cn
http://9CEYvUut.Lcbgf.cn
http://492BE873.Lcbgf.cn
http://bqD8MrH8.Lcbgf.cn
http://1vzqzUjA.Lcbgf.cn
http://HoLltr3M.Lcbgf.cn
http://O5dSfo2G.Lcbgf.cn
http://EgUZvKTK.Lcbgf.cn
http://Vwga5XSc.Lcbgf.cn
http://QFOGKZDE.Lcbgf.cn
http://pUqT0Mzr.Lcbgf.cn
http://fRoYBQY5.Lcbgf.cn
http://cnAcKxpE.Lcbgf.cn
http://6aXjSOzY.Lcbgf.cn
http://QzOBm4zr.Lcbgf.cn
http://C0pfCCgN.Lcbgf.cn
http://wDB5HXVC.Lcbgf.cn
http://kOWhgPvO.Lcbgf.cn
http://4DsVDOOo.Lcbgf.cn
http://mnz83Igg.Lcbgf.cn
http://KkxDnoyV.Lcbgf.cn
http://4uXujgcv.Lcbgf.cn
http://www.dtcms.com/a/384689.html

相关文章:

  • 闪电科创-无人机轨迹预测SCI/EI会议辅导
  • 自动驾驶中的传感器技术48——Radar(9)
  • HDLBits 解题更新
  • Python 自动化测试开发教程:Selenium 从入门到实战(1)
  • 树莓派4B实现网络电视详细指南
  • Docker:在Windows上安装和使用,加速容器应用开发
  • Android中怎么使用C动态库
  • Redis 安装实战:在 CentOS 中通过源码包安装
  • 抛砖引玉:神经网络的激活函数在生活中也有
  • Java生成与解析大疆无人机KMZ航线文件
  • Mysql 主从复制、读写分离
  • Linux网络设备驱动结构
  • 第四阶段C#通讯开发-3:串口通讯之Modbus协议
  • 使用生成式 AI 和 Amazon Bedrock Data Automation 处理大规模智能文档
  • 可可图片编辑 HarmonyOS(7)图片绘画
  • django登录注册案例(上)
  • 查看iOS设备文件管理 访问iPhone用户文件、App沙盒目录 系统日志与缓存
  • 基于Echarts+HTML5可视化数据大屏展示-白茶大数据溯源平台V2
  • android 框架—网络访问Okhttp
  • CUDA 中Thrust exclusive_scan使用详解
  • Quat 四元数库使用教程:应用场景概述
  • GitHub 热榜项目 - 日榜(2025-09-15)
  • 让AI数据中心突破性能极限
  • Self-supervised Feature Adaptation for 3D Industrial Anomaly Detection 论文精读
  • 【3D图像算法技术讨论】如何给基于3dgs重建的城市街景增加碰撞的属性,满足仿真的要求?
  • numpy学习笔记
  • Oracle体系结构-归档日志文件(Archive Log Files)
  • 唐源电气:机器视觉与AI Agent引领智能运维
  • 【Python】在pycharm中使用environment.ylm文件配置虚拟环境
  • 2025前端面试题及答案-2(详细)