CentOS 7 系统下 LVS 集群部署指南
LVS 基础概念
LVS(Linux Virtual Server)是 Linux 内核实现的负载均衡集群系统,通过 IP 负载均衡技术将网络请求分发至后端多台真实服务器(Real Server),提升服务可用性与处理能力,其核心组件包括 调度器(Director) 和 真实服务器(RS),支持多种调度算法(如轮询 RR、加权轮询 WRR 等)。
环境准备与规划
在部署前需明确以下配置:
- 节点角色:1 台 Director(192.168.1.100)、2 台 RS(192.168.1.101/102),所有节点运行 CentOS 7 系统。
- 网络拓扑:Director 配置双网卡,内网网卡(eth1)用于连接 RS,外网网卡(eth0)对外提供服务;RS 仅需单网卡(eth0)连接内网。
- 软件依赖:确保所有节点内核版本 ≥ 3.10(CentOS 7 默认满足),并关闭防火墙
systemctl stop firewalld
及 SELinuxsetenforce 0
。
安装与配置 LVS 调度器(Director)
安装 ipvsadm 工具:
yum install -y ipvsadm
配置 Director 双网卡:
编辑/etc/sysconfig/network-scripts/ifcfg-eth0
(外网):DEVICE=eth0 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8
编辑
/etc/sysconfig/network-scripts/ifcfg-eth1
(内网):DEVICE=eth1 TYPE=Ethernet ONBOOT=yes BOOTPROTO=static IPADDR=192.168.2.100 NETMASK=255.255.255.0
启用 IP 转发:
修改/etc/sysctl.conf
,添加:net.ipv4.ip_forward = 1
执行
sysctl -p
生效。配置虚拟服务:
使用ipvsadm
创建虚拟 IP(VIP)与服务规则:# 清空现有规则 ipvsadm -C # 添加虚拟服务(以 HTTP 为例,端口 80) ipvsadm -A -t 192.168.1.100:80 -s wrr # 虚拟服务地址 + 端口,调度算法为加权轮询 # 添加真实服务器(权重均为 1) ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.101:80 -g # 直接路由模式(DR) ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.102:80 -g # 保存规则 service ipvsadm save
配置真实服务器(RS)
设置回环接口 VIP:
在每台 RS 上创建虚拟 IP(与 Director 的 VIP 一致),编辑/etc/sysconfig/network-scripts/ifcfg-lo:0
:DEVICE=lo:0 IPADDR=192.168.1.100 NETMASK=255.255.255.255 ONBOOT=yes
启动接口:
ifup lo:0
,验证ip addr show lo:0
。调整 ARP 抑制:
防止 RS 响应 ARP 广播(避免与 Director 冲突),编辑/etc/sysctl.conf
:net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2
执行
sysctl -p
生效。启动 Web 服务(示例):
安装 Nginx 并启动:yum install -y nginx systemctl start nginx echo "RS1" > /usr/share/nginx/html/index.html # 区分 RS
测试与验证
访问 VIP 测试:
从客户端浏览器访问http://192.168.1.100
,观察是否交替显示 RS1/RS2 内容(若使用 RR 算法)。查看连接状态:
在 Director 上执行ipvsadm -L -n
,确认 RS 列表及连接状态:IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.1.100:80 wrr -> 192.168.2.101:80 Route 1 5 0 -> 192.168.2.102:80 Route 1 5 0
常见问题与解决方案
问题现象 | 可能原因 | 解决方法 |
---|---|---|
客户端无法访问 VIP | 防火墙未关闭 | 所有节点执行 systemctl stop firewalld |
RS 无流量分配 | 调度器规则错误 | 检查 ipvsadm -L -n 规则是否正确 |
RS 响应 ARP 广播冲突 | 未配置 ARP 抑制 | 确保 net.ipv4.conf.all.arp_ignore=1 |
FAQs
Q1:为什么选择 DR 模式而非 NAT?
A:DR 模式(直接路由)性能更高,因数据包无需经过 Director 转发,仅修改 MAC 地址,适合高并发场景;NAT 模式虽配置简单,但易成为瓶颈。
Q2:如何动态添加/删除 RS?
A:使用 ipvsadm
命令动态操作:
- 添加 RS:
ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.103:80 -g
- 删除 RS:
ipvsadm -d -t 192.168.1.100:80 -r 192.168.2.103:80
操作后无需重启服务,即时生效。
通过以上步骤,即可在 CentOS 7 环境下完成 LVS 集群的稳定部署,实现服务的高可用与负载均衡。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复