集群故障模拟方案》系列,共包含以下文章:

  • 1️⃣ 集群故障模拟方案(一):节点宕机、节点离线
  • 2️⃣ 集群故障模拟方案(二):磁盘空间满、重选主节点

😊 如果您觉得这篇文章有用 ✔️ 的话,请给博主一个一键三连 🚀🚀🚀 吧 (点赞 🧡、关注 💛、收藏 💚)!!!您的支持 💖💖💖 将激励 🔥 博主输出更多优质内容!!!

集群故障模拟方案(二):磁盘空间满、重选主节点

  • 1.磁盘空间满模拟
    • 1.1 方案描述
    • 1.2 操作步骤
    • 1.3 命令说明
      • 1.3.1 dd if=/dev/zero of=...
      • 1.3.2 fallocate
      • 1.3.3 对比
  • 2.主节点选举问题模拟
    • 2.1 方案描述
    • 2.2 操作步骤
  • 3.安全注意事项
  • 4.监控与验证

1.磁盘空间满模拟

1.1 方案描述

模拟节点磁盘空间耗尽的情况。

1.2 操作步骤

  • 识别数据目录
    • 检查 elasticsearch.yml 配置文件中的 path.data 设置。
    • 也可通过 GET _nodes/stats/fs?pretty 命令查询。
  • 填充磁盘空间
    # 创建一个占满磁盘的大文件
    dd if=/dev/zero of=/path/to/es_data/fill_disk bs=1G count=100# 或者使用fallocate快速创建
    fallocate -l 10G /path/to/es_data/fill_disk
    

    🚀 注意:fill_disk 是一个文件名。

  • 观察集群反应
    # 观察集群状态(分片可能变为 UNASSIGNED)
    curl -XGET 'http://localhost:9200/_cluster/allocation/explain?pretty'
    curl -XGET 'http://localhost:9200/_cat/allocation?v'
    
  • 清理磁盘空间
    rm /path/to/es_data/fill_disk
    

1.3 命令说明

1.3.1 dd if=/dev/zero of=…

dd if=/dev/zero of=/path/to/es_data/fill_disk bs=1G count=100

这条命令使用 dd 创建一个 100GB 的大文件,用于快速占满磁盘空间,模拟 Elasticsearch 节点磁盘耗尽的情况。

部分
说明
dd数据复制工具,用于按块读写文件或设备
if=/dev/zero输入文件Input File):从 /dev/zero(Linux 零设备)读取数据(全零字节)
of=/path/to/es_data/fill_disk输出文件Output File):写入到指定路径(通常选 Elasticsearch 数据目录)
bs=1G块大小Block Size):每次读写 1GB1G = 1 Gigabyte)
count=100块数量:总共写入 100 块(100 × 1GB = 100GB)
  • 生成一个 100GB 的 fill_disk 文件,内容全为零(/dev/zero 提供无限零字节流)。
  • 快速消耗磁盘空间,模拟 Elasticsearch 节点因磁盘满而无法写入的情况。

1.3.2 fallocate

fallocate -l 10G /path/to/es_data/fill_disk

这条命令同样用于快速分配磁盘空间,模拟磁盘被占满的场景(如测试 Elasticsearch 在磁盘空间不足时的行为)。

部分
说明
fallocateLinux 文件空间预分配工具,直接创建大文件(比 dd 更快)
-l 10G指定文件大小为 10GB(10G = 10 Gigabytes)
/path/to/es_data/fill_disk文件生成路径(通常选择 Elasticsearch 的数据目录)
  • 立即占用 10GB 磁盘空间,生成一个名为 fill_disk 的空文件。
  • 相比 dd if=/dev/zero of=...fallocate 不实际写入数据,而是直接修改文件系统元数据,因此速度极快(即使分配 1TB 也只需几秒)。

关键参数

参数
说明
-l--length指定文件大小(支持单位:K / M / G / T,如 1K=1KB,2M=2MB)
-o--offset可选,从文件指定偏移量开始分配(默认从 0 开始)

1.3.3 对比

以上方法适用于测试:

  • Elasticsearch 的 磁盘水位检测(如 cluster.routing.allocation.disk.watermark)。
  • 分片是否会自动迁移(当磁盘空间不足时)。
  • 集群是否进入 read-only 模式(防止数据丢失)。
方法速度是否实际写数据适用场景
fallocate⚡️ 极快❌ 只修改元数据快速测试磁盘空间不足
dd if=/dev/zero🐢 慢(需写全零)✅ 是需要真实占用磁盘 I/O 的场景
truncate -s 10G⚡️ 快❌ 稀疏文件(不占实际空间)仅需逻辑大文件时

注意事项

  • 需要 root 权限(如果目标目录权限受限)。
  • 确保路径正确,避免误填其他关键目录。
  • Elasticsearch 默认磁盘水位阈值:
    • 低水位low):85%85\%85% 占用时停止分配新分片。
    • 高水位high):90%90\%90% 占用时尝试迁移分片。
    • 强制只读flood_stage):95%95\%95% 占用时设为只读模式。

2.主节点选举问题模拟

2.1 方案描述

模拟主节点不可用时的选举过程。

2.2 操作步骤

  • 识别当前主节点
    curl -XGET 'http://localhost:9200/_cat/nodes?v&h=name,node.role,master'
    
  • 停止主节点
    systemctl stop elasticsearch
    
  • 观察选举过程
    watch -n 1 curl -s 'http://localhost:9200/_cat/master?v'
    
  • 恢复原主节点
    systemctl start elasticsearch
    

3.安全注意事项

  • 在生产环境谨慎操作,建议先在测试环境验证。
  • 确保有备份,避免数据丢失。
  • 监控集群状态,准备好快速恢复方案。
  • 避免在业务高峰期 进行故障模拟。

4.监控与验证

在执行故障模拟时,建议同时监控以下指标:

  • 集群健康状态/_cluster/health
  • 节点状态/_cat/nodes
  • 分片分配情况/_cat/shards
  • 未分配分片解释/_cluster/allocation/explain

以上模拟可以帮助你了解集群的容错能力和恢复机制,为制定应急预案提供依据。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React中的Hooks

在React 16.8版本之前,组件主要分为两种:类组件(Class Components) 和 函数组件(Function Components)。类组件可以使用 state 来管理内部状态,也能使用生命周期方法(如 componentDi…

【21】C# 窗体应用WinForm ——图片框PictureBox属性、方法、实例应用

文章目录12. 图片框PictureBox12.2 PictureBox插入、删除图片12.2.1 插入方式一:右键导入12.2.2 插入方式二:程序路径读入12.2.3 删除图片:右键清除12.3 实例:一键实现图片交换12.4 图片与窗口尺寸——SizeMode属性——实例对比1 …

Vue-Router 4.0:新一代前端路由管理

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…

vuhub Corrosion2靶场攻略

靶场下载: 下载地址:https://download.vulnhub.com/corrosion/Corrosion2.ova 靶场使用: 我这里是使用Oracle VirtualBox虚拟机打开靶场,使用VMware打开攻击机kali,要使这两个机器能互相通信,需要将这两…

定制开发开源AI智能名片S2B2C商城小程序的特点、应用与发展研究

摘要:本文聚焦定制开发开源AI智能名片S2B2C商城小程序,深入剖析其技术特点、功能优势。通过分析在实体店与线上营销、新零售闭环生态构建、智慧场景赋能以及微商品牌规范化运营等方面的应用,探讨其发展趋势。旨在为营销技术专家中的营销创客及…

ulimit参数使用详细总结

目录 1. 基本介绍 1.1 核心功能 1.2 作用范围 1.3 限制类型 2. 基本语法 3. 常用选项​ 3.1 常见options 3.2 查看当前限制 4. 核心概念 4.1 软限制(Soft Limit) 4.2 硬限制(Hard Limit) 5. 修改限制 5.1 临时修改 …

基于ASIC架构的AI芯片:人工智能时代的算力引擎

基于ASIC架构的AI芯片:人工智能时代的算力引擎在深度学习模型参数量呈指数级增长、训练与推理需求爆炸式发展的今天,通用处理器(CPU、GPU)在能效比和计算密度上的局限日益凸显。基于ASIC(Application-Specific Integra…

Linux信号机制:从硬件中断到用户态处理

当你在终端按下 CtrlC 时,一个简单的组合键触发了操作系统最精妙的异步通信机制。这种跨越硬件与软件的协作,正是Linux信号系统的精髓所在。本文将带你深入探索信号处理的全过程,从CPU中断到用户态函数调用,揭示Linux最强大的进程…

C语言基础:动态申请练习题

1. 动态申请一个具有10个float类型元素的内存空间&#xff0c;从一个已有的数组中拷贝数据&#xff0c;并找出第一次出现 12.35 的下标位置&#xff0c;并输出。#include <stdio.h> #include <stdlib.h> #include <string.h>int main() {// 动态申请10个flo…

MATLAB 实现 SRCNN 图像超分辨率重建

MATLAB 实现 SRCNN 图像超分辨率重建 MATLAB代码实现&#xff0c;用于基于三层卷积神经网络的图像超分辨率重建。代码参考了多个来源&#xff0c;结合了SRCNN的典型实现步骤。 1. MATLAB代码实现 % 超分辨率卷积神经网络(SRCNN)的测试代码 % 参考文献&#xff1a;Chao Dong, Ch…

知识蒸馏 - 基于KL散度的知识蒸馏 HelloWorld 示例

知识蒸馏 - 基于KL散度的知识蒸馏 HelloWorld 示例 flyfish 知识蒸馏 - 蒸的什么 知识蒸馏 - 通过引入温度参数T调整 Softmax 的输出 知识蒸馏 - 对数函数的单调性 知识蒸馏 - 信息量的公式为什么是对数 知识蒸馏 - 根据真实事件的真实概率分布对其进行编码 知识蒸馏 - …

从结构到交互:HTML5进阶开发全解析——语义化标签、Canvas绘图与表单设计实战

一、语义化标签进阶&#xff1a;重构页面结构的「逻辑语言」 在 HTML5 的舞台上&#xff0c;语义化标签是熠熠生辉的主角&#xff0c;它们为网页赋予了清晰的逻辑结构&#xff0c;使其更易被搜索引擎理解和被开发者维护。其中&#xff0c;<section>与<article>标签…

标准七层网络协议和TCP/IP四层协议的区别

分别是什么? OSI七层协议是国际标准组织制定的标准协议。其中七层分别是物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。 TCP/IP协议是美国军方在后期网络技术的发展中提出来的符合目前现状的协议。其中四层分别是网络接口层对应七层中的物理层和数据链路层,…

前端面试手撕题目全解析

以下是前端面试中常遭遇的“手撕”基础题目汇总&#xff0c;涵盖 HTML→JS→Vue→React&#xff0c;每题附经典实现&#xff0f;原理解析&#xff0c;可现场答题或后端总结。 HTML 基础题 &#x1f4dd; 语义化卡片&#xff08;Semantic Card ARIA&#xff09; <article cl…

道格拉斯-普克算法 - 把一堆复杂的线条变得简单,同时尽量保持原来的样子

道格拉斯-普克算法 - 把一堆复杂的线条变得简单&#xff0c;同时尽量保持原来的样子 flyfish 道格拉斯-普克算法&#xff08;Douglas-Peucker Algorithm解决的问题其实很日常&#xff1a;把一堆复杂的线条&#xff08;比如地图上的道路、河流&#xff0c;或者GPS记录的轨迹&…

团购商城 app 系统架构分析

一、引言 团购商城 APP 作为一种融合了电子商务与团购模式的应用程序&#xff0c;近年来在市场上取得了显著的发展。它为用户提供了便捷的购物体验&#xff0c;同时也为商家创造了更多的销售机会。一个完善且高效的系统架构是保障团购商城 APP 稳定运行、提供优质服务的基础。本…

【AI平台】n8n入门7:本地n8n更新

✅0、前言 目标&#xff1a;本地n8n部署后&#xff0c;有新版本&#xff0c;然后进行更新。官方文档&#xff1a;Docker | n8n Docs特别说明&#xff1a; n8n镜像更新后&#xff0c;容器重建&#xff0c;所以之前在n8n配置的东西&#xff0c;就莫有了&#xff0c;工作流提前导…

还在使用Milvus向量库?2025-AI智能体选型架构防坑指南

前言说明&#xff1a;数据来源&#xff1a;主要基于 Milvus&#xff08;v2.3&#xff09;和 Qdrant&#xff08;v1.8&#xff09;的最新稳定版&#xff0c;参考官方文档、GitHub Issues、CNCF报告、以及第三方评测&#xff08;如DB-Engines、TechEmpower&#xff09;。评估原则…

3-verilog的使用-1

verilog的使用-1 1.判断上升沿 reg s_d0; reg s_d1; wire signal_up ; //判断信号的上升沿 assign signal_up (~touch_key_d1) & touch_key_d0; always (posedge clk or negedge rst_n) beginif(rst_n 1b0) begins_d0< 1b0;s_d1< 1b0;endelse begins_d0&…

ESXI虚拟交换机 + H3C S5120交换机 + GR5200路由器组网笔记

文章目录一、组网拓扑与核心逻辑1. 拓扑结构2. 核心逻辑二、详细规划方案1. VLAN 与 IP 地址规划2. 设备连接规划三、配置步骤1. H3C S5120 交换机配置&#xff08;VLAN 与端口&#xff09;2. H3C GR5200 路由器配置&#xff08;路由、网关、NAT&#xff09;3. ESXi 虚拟交换机…