介绍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 负责实际的负载均衡,形成一个完整的高可用负载均衡解决方案。

相关推荐
Ap04154 天前
LVS介绍以及模式实现
lvs
天蓝不会忘记024 天前
lvs,haproxy,keepalived,nginx,tomcat介绍和实验
nginx·tomcat·lvs
qizhideyu4 天前
LVS(Linux virual server)
linux·运维·lvs
nzxzn4 天前
Keepalived 核心知识点
运维·keepalived
在这habit之下4 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
Yiiz.4 天前
LVS实验
lvs
️️(^~^)4 天前
LVS实验
linux·服务器·lvs
qianshanxue114 天前
网关什么意思
智能路由器
gx23484 天前
1-LVS
linux·服务器·lvs
unfeeling_4 天前
LVS实验
lvs