介绍keepalived和LVS

Keepalived

什么是 Keepalived

Keepalived 是一个基于 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)实现的高可用解决方案,主要用于防止单点故障。

主要功能

  1. 高可用性(HA)

    • 通过 VRRP 协议实现主备切换
    • 提供虚拟 IP(VIP)漂移功能
    • 支持健康检查
  2. 负载均衡

    • 可以作为 LVS 的管理工具
    • 自动管理 LVS 规则

工作原理

复制代码
主服务器(MASTER)          备服务器(BACKUP)
    |                           |
    |<------- VRRP 心跳 ------->|
    |                           |
 VIP: 192.168.1.100         等待接管

配置示例

bash 复制代码
# /etc/keepalived/keepalived.conf
global_defs {
    router_id LVS_MASTER
}

vrrp_instance VI_1 {
    state MASTER          # 主节点
    interface eth0        # 网络接口
    virtual_router_id 51  # 虚拟路由器ID
    priority 100          # 优先级
    advert_int 1          # 心跳间隔
    
    authentication {
        auth_type PASS
        auth_pass 1234
    }
    
    virtual_ipaddress {
        192.168.1.100    # 虚拟IP
    }
}

LVS (Linux Virtual Server)

什么是 LVS

LVS 是 Linux 内核中的负载均衡解决方案,通过 IPVS(IP Virtual Server)模块实现四层负载均衡。

工作模式

  1. DR 模式(Direct Routing)

    复制代码
    客户端 --> Director --> Real Server
               |              |
               |<-- 直接响应 --|
    • 性能最好
    • Director 和 Real Server 必须在同一网段
    • 响应数据直接返回给客户端
  2. NAT 模式(Network Address Translation)

    复制代码
    客户端 <--> Director <--> Real Server
    • 所有流量都经过 Director
    • 支持端口映射
    • Director 成为瓶颈
  3. TUN 模式(IP Tunneling)

    复制代码
    客户端 --> Director --隧道--> Real Server
               |                      |
               |<---- 直接响应 ------|
    • 支持跨网段
    • 需要 Real Server 支持隧道

调度算法

  • 轮询(rr):依次分配
  • 加权轮询(wrr):根据权重分配
  • 最少连接(lc):选择连接数最少的服务器
  • 加权最少连接(wlc):默认算法
  • 源地址哈希(sh):相同 IP 分配到同一服务器

LVS 配置示例

bash 复制代码
# 添加虚拟服务
ipvsadm -A -t 192.168.1.100:80 -s wlc

# 添加真实服务器
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.10:80 -g -w 1
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.11:80 -g -w 1

# 查看配置
ipvsadm -Ln

Keepalived + LVS 集成

架构示例

复制代码
                    VIP: 192.168.1.100
                           |
        +------------------+------------------+
        |                                     |
   Director1(主)                         Director2(备)
   Keepalived                           Keepalived
   LVS/IPVS                            LVS/IPVS
        |                                     |
        +----------+----------+               |
        |          |          |               |
   RealServer1  RealServer2  RealServer3 -----+

集成配置示例

bash 复制代码
# Keepalived 配置中包含 LVS 配置
virtual_server 192.168.1.100 80 {
    delay_loop 6
    lb_algo wlc          # 调度算法
    lb_kind DR           # 工作模式
    protocol TCP
    
    real_server 192.168.1.10 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
    
    real_server 192.168.1.11 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            retry 3
            delay_before_retry 3
        }
    }
}

应用场景

Keepalived 适用场景

  • 数据库主从切换(MySQL、PostgreSQL)
  • Web 服务高可用
  • 任何需要 IP 漂移的场景

LVS 适用场景

  • 大流量网站负载均衡
  • 四层负载均衡需求
  • 对性能要求极高的场景

优缺点对比

Keepalived:

  • 优点:配置简单、支持健康检查、可管理 LVS
  • 缺点:仅提供高可用,负载均衡依赖 LVS

LVS:

  • 优点:性能极高、稳定可靠、内核级别
  • 缺点:仅四层负载、配置相对复杂、功能单一

这两个工具经常配合使用,Keepalived 负责高可用和健康检查,LVS 负责实际的负载均衡,形成一个完整的高可用负载均衡解决方案。

相关推荐
。1 天前
【无标题】
linux·服务器·负载均衡·lvs
智慧光迅AINOPOL1 天前
10~50 人规模办公网络组网技术分析:架构对比与选型参考
网络·架构·智能路由器
updayday8542 天前
印染产线电脑进程异常占用资源却要逐台排查 - Ping64 远程进程管理
大数据·网络·数据库·安全·智能路由器
treesforest2 天前
数据包是如何找到回家路的?
网络·智能路由器·nat·ip归属地查询
星恒讯工业路由器2 天前
5G RedCap、eRedCap与LTE Cat-1bis:中低速物联网的“三国杀“与选型指南
网络·智能路由器·工业路由器·工业物联网·5g redcap·lte cat-1bis·eredcap
Multipath7122 天前
以多链路聚合为通信底座,让低空飞行器“连得上、传得快、飞得稳、管得住”
网络·5g·安全·智能路由器·实时音视频
chengpei1473 天前
硬改斐讯K2路由器32M Flash编译适配immortalwrt固件
嵌入式硬件·智能路由器
updayday8544 天前
供应商补交资质文件时,采购难以核对缺件和新版本 - Ping64 文件收集
大数据·网络·数据库·安全·智能路由器
华允物联-HUAIOT4 天前
DTU和工业路由器有什么区别?
网络·智能路由器
wdfk_prog4 天前
LWIP教程 15:IPv4 与 IPv6——从网络层工作原理到嵌入式工程取舍
运维·开发语言·网络·笔记·学习·智能路由器·ip