LVS 配置之DR模式

LVS 负载均衡 之 DR模式

场景:

LVS机器L1 (IP:192.168.1.1)
LVS机器L2 (IP:192.168.1.2)
服务机器S1 (IP:192.168.1.3)
服务机器S2 (IP:192.168.1.4)
LVS集群虚拟IP VIP(192.168.1.5)

拓扑图

        L1   S1
        |    /
 --->VIP|   /
      \ |  /
        L2 -- S2

解释:L1 L2公用 VIP,但同时只有一台LVS机器能使用VIP,另一台机器处于空闲状态,也叫做热备份,L1与L2之间有健康心跳交互检测对方,如果使用VIP的机器出现了问题,VIP会漂移到正常的备份机器上,备份机器开始使用VIP对外服务。使用VIP的L机器根据配置的调度算法(有8种)来进行负载均衡,最终把接入的TCP连接选择接入到S机器集群的一台机器上。

配置步骤

1.在L机器上安装相应的软件

yum install keepalived (我这里是centos系统)
yum install ipvsadm

2.在L机器上配置keepalived

配置文件路径:/etc/keepalived/keepalived.conf
这里我们把L1配置成master, 让他一开始就使用VIP工作,L2配置成backup,

L1配置如下:

! Configuration File for keepalived
global_defs {
        router_id ld-1
}

vrrp_instance VI_1 {
        interface eth0 # 设置对外服务的接口
        state MASTER # L1处于启用MASTER(必须大写)即启用状态
        virtual_router_id 82 # 设置虚拟路由表示,L2也要设置为这个值
        priority 180  # 设置优先级,数值越大,优先级越高
        vrrp_unicast_bind 192.168.1.1 #本机,这里是L1
        vrrp_unicast_peer 192.168.1.2 # 对端L机器, 这里是L2
        authentication {
                auth_type PASS
                auth_pass nenad
        }
        virtual_ipaddress {
                192.168.1.5/24 dev eth0 # VIP 后面注意这里要填自己使用的网络接口
        }
}

virtual_server_group VSG_1 {
        192.168.1.5 8080 # VIP和S端服务的端口号
}

virtual_server group VSG_1 {
        delay_loop 6  # 健康检查时间间隔
        lb_algo wlc # 负载均衡算法
        lb_kind DR  # 负载均衡模式:Direct Routing
        protocol TCP
        real_server 192.168.1.3 8080 { # 后端服务S1
                weight 100
                TCP_CHECK {
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 3
                        connect_port 8080
                }
        }

        real_server 192.168.1.4 8080 { # 后端服务S2
                weight 100
                TCP_CHECK {
                        connect_timeout 3
                        nb_get_retry 3
                        delay_before_retry 3
                        connect_port 8080
                }
        }
}

L2配置如下:

### 配置 LVS-DR 模式 LVS (Linux Virtual Server) 是一种高效的四层负载均衡解决方案,其 DR (Direct Routing) 模式通过共享虚拟 IP 地址 (VIP),使得客户端请求可以直接路由到真实服务器而无需经过负载均衡器转发数据包[^1]。 #### 1. 基本架构说明 在 LVS-DR 模式下,负载均衡器和真实服务器都需绑定同一个 VIP 地址。为了防止 ARP 广播引发冲突,仅允许负载均衡器对外部网络回应 ARP 请求,而真实服务器则不回应外部的 ARP 请求[^3]。 #### 2. 环境准备 假设环境如下: - **Director(负载均衡器)**: `192.168.1.1` (公网接口),`192.168.10.1`(私网接口) - **Real Servers(真实服务器)**: - RS1: `192.168.10.2` - RS2: `192.168.10.3` - **VIP地址**: `192.168.1.1` #### 3. Director 的配置 ##### 安装 ipvsadm 工具 ```bash yum install -y ipvsadm ``` ##### 添加服务规则 执行以下命令来设置 LVS-DR 模式的调度策略: ```bash ipvsadm -A -t 192.168.1.1:80 -s rr ``` 其中 `-A` 表示添加一条新的虚拟服务记录;`-t` 表明这是 TCP 协议的服务;`rr` 表示轮询算法。 ##### 将 Real Servers 加入集群 分别将两台真实服务器加入到该虚拟服务中: ```bash ipvsadm -a -t 192.168.1.1:80 -r 192.168.10.2:80 -m ipvsadm -a -t 192.168.1.1:80 -r 192.168.10.3:80 -m ``` 这里 `-a` 参数用于向已存在的虚拟服务添加一台真实的服务器实例;`-m` 则指定了采用 DR 方式工作[^4]。 #### 4. 实际服务器端配置 每台实际服务器都需要安装 Web 服务程序并确保能够正常运行。例如对于 Apache HTTPD 可以这样操作: ```bash yum install -y httpd && echo "This is server rs1" >> /var/www/html/index.html && systemctl start httpd ``` 同时还需要手动指定回环设备 lo 使用 VIP 来接收来自 director 发送过来的数据流: ```bash ifconfig lo:0 192.168.1.1 netmask 255.255.255.255 up route add -host 192.168.1.1 dev eth0 echo "1" > /proc/sys/net/ipv4/conf/eth0/arp_ignore echo "2" > /proc/sys/net/ipv4/conf/eth0/arp_announce sysctl -p ``` 以上步骤完成了基本的 LVS-DR 架构部署过程[^2]。 ### 注意事项 - 所有真实服务器必须位于同一物理局域网内以便能直接访问彼此。 - 如果需要持久会话等功能,则可能还需进一步调整参数或引入额外组件支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值