【LVS入门宝典】LVS核心原理与实战:Real Server(后端服务器)高可用配置指南

目录

引言

[1 LVS架构回顾与Real Server角色解析](#1 LVS架构回顾与Real Server角色解析)

[1.1 LVS三大核心组件](#1.1 LVS三大核心组件)

[1.2 Real Server的核心职责](#1.2 Real Server的核心职责)

[1.3 LVS工作模式与Real Server配置关系](#1.3 LVS工作模式与Real Server配置关系)

[2 Real Server基础环境准备](#2 Real Server基础环境准备)

[2.1 系统要求与建议](#2.1 系统要求与建议)

[2.2 网络基础配置](#2.2 网络基础配置)

[2.3 防火墙与SELinux配置](#2.3 防火墙与SELinux配置)

[3 LVS-DR模式Real Server详细配置](#3 LVS-DR模式Real Server详细配置)

[3.1 虚拟IP(VIP)配置](#3.1 虚拟IP(VIP)配置)

[3.2 ARP抑制机制详解](#3.2 ARP抑制机制详解)

[3.3 健康检查配置](#3.3 健康检查配置)

[4 高可用性与监控配置](#4 高可用性与监控配置)

[5 常见问题排查指南](#5 常见问题排查指南)

[6 总结](#6 总结)


1引言

Linux Virtual Server(LVS)作为一款成熟高效的负载均衡解决方案,通过将客户端请求智能分发到多台后端服务器(Real Server),实现了横向扩展和故障转移。虽然LVS的调度器(Director)常被视为系统的"大脑",但Real Server才是真正处理请求、承载业务的"肌肉"。

1 LVS架构回顾与Real Server角色解析

1.1 LVS三大核心组件

在深入Real Server配置之前,让我们先简要回顾LVS的整体架构:

  • 负载调度器(Director Server):整个集群系统的前端机,负责将客户端请求按照某种算法转发到Real Server
  • 服务器池(Server Pool):由多台Real Server组成,实际处理业务请求的后端服务器集群
  • 共享存储(Shared Storage):为服务器池提供共享数据存储,保证数据一致性

1.2 Real Server的核心职责

Real Server在LVS架构中承担着以下关键角色:

  • 请求处理器:接收并处理Director转发的客户端请求
  • 健康状态报告器:通过健康检查机制向Director报告自身状态
  • 业务逻辑执行器:运行实际的应用服务(Web、API、数据库等)

1.3 LVS工作模式与Real Server配置关系

  • L支持三种主要工作模式,每种模式对Real Server的配置要求不同:

2 Real Server基础环境准备

2.1 系统要求与建议

在配置Real Server之前,确保系统满足以下要求:

  • 操作系统:Linux内核2.4+(CentOS 7)
  • 网络配置:至少两个网络接口(生产环境建议千兆以太网卡)
  • 系统资源:根据实际应用需求分配CPU、内存和存储资源

2.2 网络基础配置

  • 每台Real Server需要正确配置网络参数,以下是在CentOS 7上的配置示例:

    查看网络接口信息

    ip addr show

    配置静态IP(编辑网卡配置文件)

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    文件内容示例:

    TYPE=Ethernet
    BOOTPROTO=static
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=192.168.10.31
    NETMASK=255.255.255.0
    GATEWAY=192.168.10.1
    DNS1=8.8.8.8

2.3 防火墙与SELinux配置

  • 根据安全策略适当调整防火墙和SELinux设置:

    禁用防火墙(生产环境建议配置精确规则)

    systemctl stop firewalld
    systemctl disable firewalld

    或配置防火墙规则允许必要端口

    firewall-cmd --permanent --add-port=80/tcp
    firewall-cmd --permanent --add-port=443/tcp
    firewall-cmd --reload

    禁用SELinux或设置为宽松模式

    setenforce 0
    sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config

3 LVS-DR模式Real Server详细配置

3.1 虚拟IP(VIP)配置

  • 在DR模式下,Real Server需要在loopback接口上配置VIP,但不应响应ARP请求:

    创建配置脚本

    vi /etc/init.d/realserver

    脚本内容如下:

    #!/bin/bash

    LVS script for Real Server

    VIP=192.168.1.100 # 虚拟IP地址

    case "1" in start) # 在lo接口添加VIP /sbin/ifconfig lo:0 VIP netmask 255.255.255.255 broadcast VIP up # 添加路由记录 /sbin/route add -host VIP dev lo:0
    # 抑制ARP响应
    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
    sysctl -p >/dev/null 2>&1
    echo "Real Server Started"
    ;;
    stop)
    /sbin/ifconfig lo:0 down
    /sbin/route del VIP >/dev/null 2>&1 echo "0" > /proc/sys/net/ipv4/conf/lo/arp_ignore echo "0" > /proc/sys/net/ipv4/conf/lo/arp_announce echo "0" > /proc/sys/net/ipv4/conf/all/arp_ignore echo "0" > /proc/sys/net/ipv4/conf/all/arp_announce echo "Real Server Stopped" ;; *) echo "Usage: 0 {start|stop}"
    exit 1
    esac
    exit 0

  • 使脚本可执行并设置开机自启:

    chmod +x /etc/init.d/realserver
    chkconfig --add realserver
    chkconfig realserver on

3.2 ARP抑制机制详解

  • 在DR模式下,ARP抑制是确保LVS正常工作的关键技术,其原理如下:

ARP相关内核参数说明:

  • arp_ignore=1:只响应目的IP为本地接口IP的ARP请求
  • arp_announce=2:始终使用最佳本地地址作为ARP源地址

3.3 健康检查配置

  • Real Server需要提供健康检查接口,供Director监控服务状态:

    安装Web服务用于健康检查

    yum install -y nginx

    创建健康检查页面

    vi /usr/share/nginx/html/healthcheck.html

    内容简单即可

    echo "OK" > /usr/share/nginx/html/healthcheck.html

    启动Nginx

    systemctl start nginx
    systemctl enable nginx

4 高可用性与监控配置

  • **实现Real Server高可用:**确保单台Real Server故障不影响整体服务

    安装并配置keepalived实现Real Server高可用

    yum install -y keepalived

    配置keepalived

    vi /etc/keepalived/keepalived.conf

    配置文件内容:

    vrrp_instance VI_1 {
    state BACKUP # 初始状态
    interface eth0 # 监控网卡
    virtual_router_id 51 # 虚拟路由ID
    priority 100 # 优先级(0-254)
    advert_int 1 # 检查间隔

    复制代码
      authentication {
          auth_type PASS
          auth_pass 1111
      }
      
      virtual_ipaddress {
          192.168.1.200/24   # 应用的VIP
      }
      
      # 服务检查脚本
      track_script {
          chk_nginx
      }

    }

    服务检查脚本定义

    vrrp_script chk_nginx {
    script "/usr/bin/killall -0 nginx" # 检查nginx进程是否存在
    interval 2 # 检查频率
    weight 2 # 权重
    }

5 常见问题排查指南

  • 问题一:Real Server无法接收请求

    检查网络连通性

    ping -c 4 <director_ip>

    检查VIP配置

    ip addr show lo:0

    检查路由配置

    route -n

    检查ARP设置

    sysctl -a | grep arp_ignore
    sysctl -a | grep arp_announce

  • 问题二:会话保持失效

    检查应用日志

    tail -f /var/log/nginx/lvs-access.log

    验证会话存储

    redis-cli keys 'session'

  • 问题三:性能瓶颈

    监控系统资源

    top
    htop

    检查网络流量

    iftop -i eth0

    检查连接状态

    ss -s
    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

6 总结

Real Server作为LVS集群中实际处理请求的工作节点,其正确配置对整个系统的稳定性、性能和可靠性至关重要。记住,一个优秀的集群系统不仅需要智能的负载调度器,更需要精心配置和优化的后端服务器集群。

相关推荐
weixin_436525072 小时前
linux-安装RabbitMQ并启动(yum版)
linux·运维·服务器
数字冰雹3 小时前
图观端渲染场景服务器
运维·服务器·数据可视化
路上阡陌3 小时前
nginx 介绍及作用
运维·nginx
mljy.3 小时前
Linux《线程同步和互斥(上)》
linux
小王努力学编程4 小时前
brpc远程过程调用
linux·服务器·c++·分布式·rpc·protobuf·brpc
花开富贵贼富贵4 小时前
Nginx 反向代理与缓存功能
运维·nginx·缓存
关关长语4 小时前
Docker在Linux中离线部署
linux·docker·容器
ybb_ymm4 小时前
Docker下的使用命令
运维·docker·容器
qq_10055170754 小时前
WordPress给指定分类文章添加一个自动化高亮(一键复制)功能
运维·前端·自动化·php