【ELasticsearch】集群故障模擬方案(二):磁盤空間滿、重選主節點

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

  • 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 虛擬交換機…