通俗易懂版知识点:Keepalived + LVS + Web + NFS 高可用集群到底是干什么的?

news2025/5/12 15:45:40

实验开始前,先搞懂为什么要部署该集群?

这个方案的目标是让网站 永不宕机,即使某台服务器挂了,用户也感觉不到。它主要涉及 负载均衡(LVS) + 高可用(Keepalived) + 共享存储(NFS),下面用最易懂的方式解释每个部分的作用和关键知识点。


1. Keepalived(高可用 VIP 管理)

作用:让两台服务器(主+备)共同管理一个 虚拟IP(VIP),如果主服务器挂了,备服务器自动接管这个IP,用户无感知。

核心知识点

  • VRRP协议(类似"选举"机制):

    • 主服务器(Master)平时持有VIP,并不断向备服务器(Backup)发送心跳包。

    • 如果备服务器收不到心跳,就认为主服务器挂了,自己接管VIP。

  • 健康检查

    • Keepalived 可以监控 LVS 或 Web 服务是否正常,如果发现服务挂了,就自动切换。

  • 配置示例

    vrrp_instance VI_1 {
        state MASTER    # 主服务器是MASTER,备服务器是BACKUP
        interface eth0  # 网卡名称
        virtual_router_id 51  # 主备必须一致
        priority 100    # 主服务器优先级高(比如100),备服务器低(比如90)
        virtual_ipaddress {
            192.168.1.100  # 虚拟IP(VIP),用户访问这个IP
        }
    }


2. LVS(负载均衡,分摊流量)

作用:把用户请求 均匀分发 到多台 Web 服务器,避免单台服务器压力过大。

核心知识点

  • 三种工作模式(最常用的是DR模式)

    • DR模式(直接路由)(性能最好):

      • LVS 只修改请求的MAC地址,让数据包直接返回给用户,不经过LVS。

    • NAT模式(较慢):

      • LVS 修改IP地址,所有流量都要经过它,容易成为瓶颈。

    • TUN模式(IP隧道,适用于跨机房):

      • 用IP封装技术,让请求可以跨网络传输。

  • 调度算法

    • rr(轮询):依次分发给每台服务器。

    • wrr(加权轮询):给性能好的服务器更多请求。

    • lc(最少连接):谁当前连接数少,就发给谁。

  • 配置示例(DR模式)

    ipvsadm -A -t 192.168.1.100:80 -s rr  # 对VIP的80端口使用轮询
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g  # 添加Web服务器1(DR模式)
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -g  # 添加Web服务器2


3. Web服务器(Nginx/Apache)

作用:真正处理用户请求的服务器,多台Web服务器通过LVS分摊流量。

核心知识点

  • 所有Web服务器内容要一致

    • 通过 NFS 共享存储 或者 rsync同步 保证文件一致。

  • Session会话保持(如果网站需要登录):

    • 方法1:用 ip_hash(Nginx)让同一用户始终访问同一台Web服务器。

    • 方法2:用 Redis 存储Session,所有Web服务器共用。

  • 健康检查

    • LVS 或 Keepalived 会定期检查Web服务器是否存活,挂了的机器会被踢出集群。


4. NFS(共享存储,让多台Web服务器用同一套文件)

作用:所有Web服务器挂载同一个NFS目录,保证网站内容一致(比如上传的图片、配置文件等)。

核心知识点

  • NFS服务器配置

    # NFS服务器(假设IP是192.168.1.200)
    vim /etc/exports
    /data/web 192.168.1.0/24(rw,sync,no_root_squash)  # 允许Web服务器读写/data/web

  • Web服务器挂载NFS

    mount -t nfs 192.168.1.200:/data/web /var/www/html

  • 注意事项

    • NFS单点故障:如果NFS服务器挂了,所有Web服务器都会受影响!解决方案:

      • NFS + DRBD(实时同步到另一台备份NFS)

      • 改用分布式存储(如GlusterFS、Ceph)


整体架构图



常见问题 & 优化

  1. LVS DR模式ARP问题

    • 要在Web服务器上隐藏VIP,避免它们响应ARP请求:

      echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
      echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
  2. NFS性能慢

    • 可以换用 GlusterFS 或 Ceph 这类分布式存储。

  3. Session不一致

    • 用Redis存Session,所有Web服务器共用。


总结

  • Keepalived = 高可用,VIP自动切换(主备模式)。

  • LVS = 负载均衡,把请求分发给多台Web服务器。

  • Web服务器 = 真正处理请求的机器,多台保证冗余。

  • NFS = 共享存储,让所有Web服务器数据一致。

这样,即使某台Web服务器、LVS、甚至Keepalived主节点挂了,整个网站仍然可以正常访问! 🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2374042.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

https,http1,http2,http3的一些知识

温故知新,突然有人问我项目中🤔有使用http3么,一下不知从何说起,就有了这篇文章的出现。 https加密传输,ssltls https 验证身份 提供加密,混合加密 : 对称加密 非对称加密 原理&#xff1a…

go 通过汇编学习atomic原子操作原理

文章目录 概要一、原理1.1、案例1.2、关键汇编 二、LOCK汇编指令2.1、 LOCK2.2、 原理2.2.1、 缓存行2.2.2、 缓存一致性之MESI协议2.2.3、lock原理 三、x86缓存发展四、x86 DMA发展参考 概要 在并发操作下,对一个简单的aa2的操作都会出错,这是因为这样…

WebRTC 源码原生端Demo入门-1

1、概述 我的代码是比较新的,基于webrtc源码仓库的main分支的,在windows下把源码仓库下载好了后,用visual stdio 2022打开进行编译调试src/examples/peerconnection_client测试项目,主要是跑通这个demo来入手和调试,纯看代码很难…

【MySQL】第二弹——MySQL表的增删改查(CRUD)

文章目录 🎓一. CRUD🎓二. 新增(Create)🎓三. 查询(Rertieve)📖1. 全列查询📖2. 指定列查询📖3. 查询带有表达式📖4. 起别名查询(as )📖 5. 去重查询(distinct)📖6. 排序…

基于zernike 拟合生成包裹训练数据-可自定义拟合的项数

可以看到拟合误差其实还是有很多的,但是这个主要是包裹噪声产生的,用到了github 上的zernike 库,直接pip install 一下安装就可以了 import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot3d import Axes3D import matpl…

大模型赋能:2D 写实数字人开启实时交互新时代

在数字化浪潮席卷全球的当下,人工智能技术不断突破创新,其中大模型驱动的 2D 写实数字人正成为实时交互领域的一颗新星,引领着行业变革,为人们带来前所未有的交互体验。 一、2D 写实数字人概述 2D 写实数字人是通过计算机图形学…

5G-A来了!5G信号多个A带来哪些改变?

5G-A来了!5G信号多个A带来哪些改变? 随着科技不断进步,通信网络的迭代升级也在加速。自4G、5G的推出以来,我们见证了通信技术的飞跃式发展。最近,越来越多的用户发现自己手机屏幕右上角的5G标识已经变成了“5G-A”。那…

Chroma:一个开源的8.9B文生图模型

Chroma 模型讲解 一、模型概述 Chroma 是一个基于 FLUX.1-schnell 的 8.9B 参数模型。它采用了 Apache 2.0 许可证,完全开源,允许任何人使用、修改和在其基础上进行开发,不存在企业限制。该模型目前正在训练中,训练数据集从 20M…

[强化学习的数学原理—赵世钰老师]学习笔记01-基本概念

[强化学习的数学原理—赵世钰老师]学习笔记01-基本概念 1.1 网格世界的例子1.2 状态和动作1.3 状态转移1.4 策略1.5 奖励1.6 轨迹、回报、回合1.6.1 轨迹和回报1.6.2 回合 1.7 马尔可夫决策过程 本人为强化学习小白,为了在后续科研的过程中能够较好的结合强化学习来…

1、Kafka与消息队列核心原理详解

消息队列(Message Queue, MQ)作为现代分布式系统的基础组件,极大提升了系统的解耦、异步处理和削峰能力。本文以Kafka为例,系统梳理消息队列的核心原理、架构细节及实际应用。 Kafka 基础架构及术语关系图 术语简要说明 Produce…

免费公共DNS服务器推荐

当自动获取的DNS或本地运营商的DNS出现问题,可能导致软件无法连接服务器。此时,手动修改电脑的DNS设置或许能解决问题。许多用户觉得电脑上网速度慢、游戏卡顿,归咎于DNS问题。确实,我们可以自行设置一个DNS来改善网络体验。不少用…

【统计以空格隔开的字符串数量】2021-11-26

缘由一提标准的大一oj提木-编程语言-CSDN问答 void 统计以空格隔开的字符串数量() {//缘由https://ask.csdn.net/questions/7580109?spm1005.2025.3001.5141int n 0, x 0, g 0, k 1;string s "";cin >> n;getchar();while (n--){getline(cin, s);while …

OSCP备战-kioptrixvm3详细解法

探测IP arp-scan -l 得出目标IP:192.168.155.165 也可以使用 netdiscover -i eth0 -r 192.168.155.0/24 也可以使用 nmap -sN 192.168.155.0/24 --min-rate 1000 修改hosts文件 找到IP后,通过之前读取README.txt了解到,我们需要编辑host…

《从零构建大模型》PDF下载(中文版、英文版)

内容简介 本书是关于如何从零开始构建大模型的指南,由畅销书作家塞巴斯蒂安• 拉施卡撰写,通过清晰的文字、图表和实例,逐步指导读者创建自己的大模型。在本书中,读者将学习如何规划和编写大模型的各个组成部分、为大模型训练准备…

大数据应用开发和项目实战-电商双11美妆数据分析

数据初步了解 (head出现,意味着只出现前5行,如果只出现后面几行就是tail) info shape describe 数据清洗 重复值处理 这个重复值是否去掉要看实际情况,比如说:昨天卖了5瓶七喜,今天卖了5瓶七…

招行数字金融挑战赛数据分析赛带赛题二

赛题描述:根据提供的脱敏资讯新闻数据,选手需要对提供的训练集进行特征工程,构建资讯分类模型,对与测试集进行准确的新闻分类。 最终得分:0.8120。十二点关榜没看到排名,估算100? 训练集很小&am…

卡尔曼滤波算法(C语言)

此处感谢华南虎和互联网的众多大佬的无偿分享。 入门常识 先简单了解以下概念:叠加性,齐次性。 用大白话讲,叠加性:多个输入对输出有影响。齐次性:输入放大多少倍,输出也跟着放大多少倍 卡尔曼滤波符合这…

ENSP-OSPF综合实验

AR4中通过ospf获取的其他区域路由信息,并且通过路由汇总后简化路由信息 实现全网通,以及单向重发布,以及通过缺省双向访问, 通过stub简化过滤四类五类lsa,简化ospf路由信息 通过nssa简化ospf信息 区域汇总简化R4路由信…

电池单元和电极性能

电芯设计中的挑战 对于电池制造商来说,提高电池能量和功率密度至关重要。在高功率密度和长循环寿命之间取得平衡是电池设计中的关键挑战,通常需要仔细优化材料、电极结构和热管理系统。另一个关键挑战是通过优化重量体积比来降低电池单元的总体成本。 工…

软件设计师-错题笔记-软件工程基础知识

1. 解析: A:体系结构设计是概要设计的重要内容,它关注系统整体的架构,包括系统由哪些子系统组成、子系统之间的关系等 B:数据库设计在概要设计阶段会涉及数据库的逻辑结构设计等内容,如确定数据库的表结…