lvs-DR的keepalived高可用集群,keepalive配置文件选项解析
时间: 2025-07-19 08:33:37 浏览: 17
<think>嗯,用户需要详细解释LVS-DR模式下Keepalived配置文件的各项参数含义。从用户的问题和引用材料来看,ta正在搭建高可用集群,对底层网络原理和参数细节有明确需求。
用户可能已经掌握了LVS-DR的基本架构,但需要深入配置层面的指导。引用材料中提到的ARP抑制、VIP配置、健康检查等关键点都需要在配置文件中体现。特别要注意的是,用户引用了三篇技术文档,其中[^3]明确提到了DR模式的ARP参数调整,这将是重点解释内容。
准备从五个维度展开配置解析:全局定义、VRRP实例、虚拟服务器、健康检查、ARP相关参数。需要特别强调几个易错点:1) virtual_router_id在双机热备中的一致性要求 2) lvs_sched调度算法选择 3) persistence_timeout对会话保持的影响。
注意到用户提供的引用[^1][^2]中都有DR模式工作原理图示,虽然无法直接展示,但可以在描述virtual_ipaddress时类比"浮动IP"的概念。对于TCP_CHECK配置,要提醒用户实际端口需与后端服务一致,比如Web集群通常检查80端口。
用户可能遇到的典型问题包括:VIP不通(ARP问题)、负载不均衡(调度算法配置错误)、脑裂(认证参数不一致)。这些都需要在参数说明中预先警示。最后考虑补充一个完整的配置示例,帮助用户建立整体认知。</think>以下是基于LVS-DR模式的Keepalived配置文件核心参数详解,结合技术原理说明:
---
### **一、全局定义段 (`global_defs`)**
```nginx
global_defs {
notification_email {
[email protected] # 故障通知邮箱
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL # 集群唯一标识,需双机不同!
}
```
- **`router_id`**:集群节点标识符,**主备节点必须不同**(如 `LVS_MASTER`/`LVS_BACKUP`)。
- **`notification_email`**:故障告警接收邮箱(需邮件服务器支持)。
---
### **二、VRRP实例段 (`vrrp_instance`)**
```nginx
vrrp_instance VI_1 {
state MASTER # 主节点:MASTER;备节点:BACKUP
interface eth0 # 绑定VRRP的物理网卡
virtual_router_id 51 # 主备相同!范围0-255
priority 100 # 主>备(如主100,备90)
advert_int 1 # VRRP组播间隔(秒)
authentication {
auth_type PASS # 认证方式
auth_pass 1111 # 密码(主备一致)
}
virtual_ipaddress {
192.168.1.100/24 # VIP,需与RS同网段
}
}
```
- **关键原理**:通过VRRP协议实现VIP在主备节点间漂移[^2]。
- **`virtual_router_id`**:**主备必须相同**,用于标识同一个VRRP组。
- **`priority`**:优先级决定主备角色,主节点故障时备节点接管VIP。
- **`virtual_ipaddress`**:配置LVS的虚拟IP(VIP),客户端访问的入口地址。
---
### **三、虚拟服务器段 (`virtual_server`)**
```nginx
virtual_server 192.168.1.100 80 { # VIP:Port
delay_loop 6 # 健康检查间隔(秒)
lb_algo wrr # 调度算法:wrr|lc|wlc等
lb_kind DR # LVS模式:DR|NAT|TUN
persistence_timeout 50 # 会话保持时间(秒)
protocol TCP # 后端协议类型
# 真实服务器配置(RS)
real_server 192.168.1.11 80 {
weight 1 # 权重
TCP_CHECK { # 健康检查方式
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.12 80 {
weight 1
TCP_CHECK {...}
}
}
```
- **`lb_kind DR`**:指定LVS工作模式为**直接路由**(Direct Routing)[^1]。
- **`lb_algo`**:调度算法(如 `wrr`加权轮询、`wlc`加权最小连接)。
- **`persistence_timeout`**:会话保持时间,解决连接漂移问题。
- **`real_server`**:后端真实服务器(RS)IP和端口。
- **健康检查**:`TCP_CHECK`检测后端服务可用性,失败则剔除RS。
---
### **四、LVS-DR模式特殊配置**
1. **ARP抑制**(所有RS节点需配置):
```bash
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
```
- 防止RS直接响应VIP的ARP请求,确保流量经Director转发[^3]。
2. **RS配置VIP到lo网卡**:
```bash
ifconfig lo:0 192.168.1.100 netmask 255.255.255.255
```
- 用于接收目标为VIP的数据包。
---
### **五、完整配置示例**
```nginx
! Configuration File for keepalived
global_defs {
router_id LVS_MASTER
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100/24
}
}
virtual_server 192.168.1.100 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
persistence_timeout 30
protocol TCP
real_server 192.168.1.11 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
```
---
### **常见问题排查**
1. **VIP不通**:
- 检查主备节点 `virtual_router_id` 是否一致。
- 确认防火墙放行VRRP组播(IP协议号112)[^2]。
2. **调度不均**:
- 调整 `lb_algo` 算法(如改用 `wlc`)。
3. **脑裂问题**:
- 确保主备 `priority` 配置正确,网络心跳正常。
> 参考资料:
> [^1]: LVS-DR模式需关闭RS的ARP响应,确保Director处理请求转发。
> [^2]: VRRP协议通过组播通信实现主备切换,默认组播地址 `224.0.0.18`。
> [^3]: ARP抑制参数防止RS暴露VIP,避免ARP表混乱。
---
**相关问题**
1. LVS-DR模式下如何解决后端服务器的ARP冲突问题?
2. Keepalived健康检查支持哪些协议?如何配置HTTP检查?
3. 如何通过`ipvsadm`命令实时监控LVS的连接状态和调度情况?
阅读全文
相关推荐



















