LVS(Linux Virtual Server)是一种基于 Linux 内核的开源负载均衡软件,支持多种负载均衡算法和多种调度策略,其中 NAT 模式和 DR 模式是 LVS 中两种常见的负载均衡方式。
NAT 模式(Network Address Translation)是指在 LVS 负载均衡器和后端服务器之间建立一条虚拟的网络连接,通过对客户端请求进行 IP 地址转换,将请求转发到后端服务器。DR 模式(Direct Routing)则是将 LVS 负载均衡器和后端服务器连接在同一物理网络中,通过修改目标 MAC 地址实现直接路由转发。
下面是 NAT 模式和 DR 模式各自的优势:
NAT 模式的优势:
DR 模式的优势:
综上所述,NAT 模式和 DR 模式各有优劣,选择哪种模式需要根据具体的业务场景和需求来进行权衡。
1. 准备网络环境
在 LVS 集群中,LVS 负载均衡器和后端服务器应该在同一子网中,且需要开启 IP 转发功能。
2. 安装 LVS 软件包
在 LVS 负载均衡器上安装 keepalived 和 ipvsadm 软件包,后端服务器上只需要安装 ipvsadm 软件包。
yum install keepalived ipvsadm -y
3. 配置 LVS 负载均衡器
在 LVS 负载均衡器上配置 LVS 的虚拟服务器和真实服务器。配置文件一般在 /etc/sysconfig/network-scripts/ifcfg-eth0:0 中,示例如下:
DEVICE=eth0:0
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.0.0.100
NETMASK=255.255.255.0
ARP=yes
VIPA=`hostname -i`
VIPS=`hostname -i`
在上面的示例中,10.0.0.100 是 LVS 负载均衡器的虚拟 IP 地址,VIP 和 VIPS 分别是 LVS 负载均衡器的虚拟 IP 地址和后端服务器的真实 IP 地址。需要注意的是,VIP 和 VIPS 必须在同一子网中。
4. 配置 keepalived
keepalived 是 LVS 集群中的关键组件,用于检测后端服务器的健康状态和 LVS 负载均衡器的状态,并根据配置文件中的指令来控制 LVS 负载均衡器的行为。在 LVS 负载均衡器上配置 keepalived,示例如下:
global_defs {
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/bin/check_apache.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface eth0:0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.100/24
}
track_script {
chk_http_port
}
}
在上面的示例中,配置了一个名为 VI_1 的 VRRP 实例,该实例使用 eth0:0 接口作为 LVS 负载均衡器的虚拟 IP 地址,并且将 10.0.0.100/24 设置为虚拟 IP 地址。chk_http_port 脚本用于检测后端服务器的健康状态,并且在配置文件中设置了优先级为 100,因此该 LVS 负载均衡器将成为主节点。
5. 配置后端服务器
在后端服务器上配置 IP 转发功能和默认路由,示例如下:
echo 1 > /proc/sys/net/ipv4/ip_forward
route add default gw 10.0.0.100
6. 配置 LVS 负载均衡规则
在 LVS 负载均衡器上配置 LVS 的负载均衡规则,示例如下:
ipvsadm -A -t 10.0.0.100:80 -s wlc
ipvsadm -a -t 10.0.0.100:80 -r 192.168.0.2:80 -g
ipvsadm -a -t 10.0.0.100:80 -r 192.168.0.3:80 -g
在上面的示例中,创建了一个监听 IP 为 10.0.0.100,端口为 80 的 LVS 虚拟服务器,并将两个后端服务器的 IP 地址添加到该虚拟服务器中。
7. 测试 LVS 集群
通过访问 LVS 负载均衡器的虚拟 IP 地址,测试 LVS 集群是否正常工作。
以上是基于 CentOS 7 构建 LVS-DR 群集的步骤,需要根据具体的业务需求进行相应的调整和优化。