当前位置: 首页 > news >正文

LVS高可靠

概述

以下是基于 CentOS 7 搭建 LVS(Linux Virtual Server)高可靠 集群的完整指南。LVS 是一个高性能的负载均衡解决方案,常用于构建高可用的 Web、数据库等服务。

快速开始

一、LVS 高可用架构

我们将采用 LVS + Keepalived 的经典组合

客户端

[虚拟 IP (VIP): 192.168.1.100]

[主 LVS 调度器] (LVS + Keepalived) ←→ VRRP 通信
[备 LVS 调度器] (LVS + Keepalived)
↓ (负载均衡)
[真实服务器 1] (Web1: 192.168.1.20)
[真实服务器 2] (Web2: 192.168.1.21)

  • LVS:负责将客户端请求分发到后端真实服务器。
  • Keepalived:实现 LVS 调度器的高可用,通过 VRRP 协议管理虚拟 IP(VIP)。

二、环境准备

服务器IP 地址角色
LVS-1192.168.1.10主 LVS 调度器
LVS-2192.168.1.11备 LVS 调度器
Web1192.168.1.20真实服务器(Real Server)
Web2192.168.1.21真实服务器(Real Server)
VIP192.168.1.100虚拟 IP(对外服务地址)

三、部署步骤

步骤 1:在所有服务器上安装 Nginx(作为 Web 服务)

# 安装 Nginx
sudo yum install -y nginx# 创建测试页面
echo "Hello from Web Server $(hostname)" | sudo tee /usr/share/nginx/html/index.html# 启动 Nginx
sudo systemctl enable nginx --now

步骤 2:在 Web 服务器上配置 ARP 抑制(DR 模式必需)

LVS 有多种工作模式,我们使用性能最高的 DR(Direct Routing)模式

Web1 和 Web2 上执行:

# 创建 ARP 配置脚本
cat > /etc/sysconfig/network-scripts/ifcfg-lo:0 << 'EOF'
DEVICE=lo:0
IPADDR=192.168.1.100
NETMASK=255.255.255.255
ONBOOT=yes
ARPCHECK=no
EOF# 应用配置
sudo ifup lo:0# 抑制 ARP 响应
echo "net.ipv4.conf.all.arp_ignore = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.conf.all.arp_announce = 2" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.conf.lo.arp_ignore = 1" | sudo tee -a /etc/sysctl.conf
echo "net.ipv4.conf.lo.arp_announce = 2" | sudo tee -a /etc/sysctl.conf# 生效配置
sudo sysctl -p

步骤 3:在 LVS 调度器上安装 LVS 和 Keepalived

LVS-1LVS-2 上执行:

# 安装 ipvsadm (LVS 管理工具) 和 keepalived
sudo yum install -y ipvsadm keepalived# 启用并启动 keepalived
sudo systemctl enable keepalived --now

步骤 4:配置 Keepalived(主调度器 LVS-1)

编辑 /etc/keepalived/keepalived.conf

sudo tee /etc/keepalived/keepalived.conf > /dev/null << 'EOF'
global_defs {router_id LVS_MASTER
}vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.1.100/24}
}virtual_server 192.168.1.100 80 {delay_loop 6lb_algo rrlb_kind DRnat_mask 255.255.255.0persistence_timeout 50protocol TCPreal_server 192.168.1.20 80 {weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.1.21 80 {weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}
EOF

步骤 5:配置 Keepalived(备调度器 LVS-2)

LVS-2 上,配置几乎相同,仅修改以下部分:

vrrp_instance VI_1 {state BACKUPpriority 90  # 低于主节点...
}

其余配置与 LVS-1 一致。

步骤 6:启动服务

LVS-1LVS-2 上执行:

sudo systemctl restart keepalived

四、验证高可用性

1. 检查 VIP 是否生效

在 LVS-1 上执行:

ip addr show eth0

你应该看到 192.168.1.100 出现在主节点上。

2. 查看 LVS 转发规则

ipvsadm -Ln

输出应显示两个 Real Server:

Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.100:80 rr-> 192.168.1.20:80              Route   1      0          0-> 192.168.1.21:80              Route   1      0          0

3. 测试访问

在浏览器或命令行中访问:

curl http://192.168.1.100

你应该看到来自 Web1Web2 的响应,且每次请求可能轮询到不同服务器。

4. 测试故障转移

  • 关闭 LVS-1sudo shutdown -h now
  • 观察 LVS-2 是否自动接管 VIP(ip addr show
  • 访问 http://192.168.1.100,服务应不受影响
http://www.dtcms.com/a/321382.html

相关文章:

  • [激光原理与应用-184]:光学器件 - 光学器件中晶体的用途、分类、特性及示例
  • CSS--后端也有自己的CSS要学
  • 化工厂安全升级:分布式光纤传感的 “实时监测 + 精准预警” 方案
  • 【mongoose】E11000 duplicate key error collection: test.counters
  • [hot100]和为K的子数组-Python3
  • AI入门学习--RAG是什么?
  • TyDi QA:面向语言类型多样性的信息检索问答基准
  • Selenium + Python + Pytest + Yaml + POM
  • Java 大视界 -- 基于 Java 的大数据分布式计算在气象灾害数值模拟与预警中的应用(388)
  • 机器视觉的笔记本辅料贴合应用
  • camera人脸识别问题之二:【FFD】太阳逆光场景,人像模式后置打开美颜和滤镜,关闭heif拍摄格式对着人脸拍照,成像口红出现位置错误
  • 嵌入式系统GUI
  • 基于linux环境在centos7上部署gitlab
  • LLM驱动的数据分析组合(HoraeDB+Polars+Snorkel AI)
  • Transformer Encoder 与 Decoder:从结构到功能的深度解析
  • 【MATLAB技巧】打开脚本(m文件)后,中文乱码的解决方案
  • Spring Boot 核心原理
  • 【面向对象编程】从类到控件:面向对象思想的具象化演进
  • 进程关系与守护进程
  • 常见通信协议详解:TCP、UDP、HTTP/HTTPS、WebSocket 与 RPC
  • 全栈:如何判断自己应该下载哪个版本的Tomcat
  • PyQT+OpenCV实现一键抠图换背景:制作AI证件照精修工厂
  • IPC总结
  • Vue 服务端渲染(SSR)详解
  • 探索人类底层逻辑一致性的跨学科研究框架:建议、方法与展望
  • Android 缓存日志(Logcat)导出与分析全攻略
  • [深度学习] 大模型学习4-RAG技术全景解析
  • 机器学习——KMeans聚类算法(算法原理+超参数详解+实战案例)
  • Mysql与Ooracle 索引失效场景对比
  • 机械学习--k-means