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

【ETCD】【实操篇(十七)】 etcd 集群定期维护指南

在这里插入图片描述

目录

      • 概述
      • Raft 日志保留
      • 键空间历史压缩:v3 API 键值数据库
      • 碎片整理
      • 空间配额
      • 快照备份

概述

为了保持 etcd 集群的可靠性,需要定期进行维护。根据 etcd 应用程序的需求,这些维护通常可以自动化进行,并且不会导致停机或性能显著下降。

所有 etcd 维护都涉及管理 etcd 键空间消耗的存储资源。如果无法有效控制键空间大小,存储空间配额将触发集群范围的警报,使系统进入受限操作的维护模式。为了避免键空间耗尽可写入空间,必须对 etcd 键空间历史进行压缩。同时,通过对 etcd 成员进行碎片整理,可以回收存储空间。此外,定期快照备份 etcd 成员状态,有助于在操作错误导致数据丢失或损坏时进行恢复。

Raft 日志保留

--snapshot-count 配置在压缩前要保留在内存中的已应用 Raft 条目数量。当达到 --snapshot-count 时,服务器会先将快照数据持久化到磁盘,然后截断旧的条目。如果一个较慢的跟随者请求的日志在压缩索引之前,领导者会发送快照,强制跟随者覆盖其状态。

较高的 --snapshot-count 会在快照之前保留更多的 Raft 条目,导致更高的内存使用率。然而,由于领导者会保留最新的 Raft 条目更长时间,较慢的跟随者有更多时间赶上快照。

从 v3.2 开始,--snapshot-count 的默认值已从 10,000 改为 100,000。

键空间历史压缩:v3 API 键值数据库

由于 etcd 会保留其键空间的完整历史,因此必须定期压缩历史数据,以避免性能下降和存储空间耗尽。历史压缩会丢弃给定修订版本之前的所有旧键值信息,从而释放存储空间供新数据写入。

  • 手动压缩
    使用 etcdctl 手动触发压缩:
$ etcdctl compact 3
  • 自动压缩
    使用 --auto-compaction-* 选项设置自动压缩周期:
$ etcd --auto-compaction-retention=1

碎片整理

在压缩键空间之后,后端数据库可能会出现内部碎片。这些碎片占据磁盘空间,但无法被主机文件系统直接使用。碎片整理的目的是将这些空间释放回文件系统。

  • 对单个成员进行碎片整理
$ etcdctl defrag
  • 对集群所有端点进行碎片整理
$ etcdctl defrag --cluster

空间配额

etcd 的空间配额确保集群的稳定运行。如果键空间过大,etcd 可能会出现性能问题,甚至耗尽存储空间,导致不可预测的集群行为。

  • 设置空间配额
$ etcd --quota-backend-bytes=$((16*1024*1024))
  • 清理空间超限告警
$ ETCDCTL_API=3 etcdctl compact $rev
$ ETCDCTL_API=3 etcdctl defrag
$ ETCDCTL_API=3 etcdctl alarm disarm

快照备份

定期对 etcd 集群进行快照备份,可作为键空间的持久备份。通过快照,etcd 集群可以恢复到特定的时间点。

  • 创建快照
$ etcdctl snapshot save backup.db
  • 检查快照状态
$ etcdutl --write-out=table snapshot status backup.db

通过以上维护操作,etcd 集群可以保持高可用性和稳定性,同时避免因存储空间不足导致的性能下降或系统故障。


http://www.kler.cn/a/453347.html

相关文章:

  • K8s DaemonSet的介绍
  • 通过GRE协议组建VPN网络
  • Leecode刷题C语言之字符串及其反转中是否存在同一子字符串
  • UE5 崩溃问题汇总!!!
  • linux RCU调优
  • unity弹出新的类似独立场景窗口独立运行一般怎么实现?
  • springai 简易聊天机器人设计
  • 矩阵碰一碰发视频源码技术解析,支持OEM
  • EXCEL使用宏实现筛选重复项并对该行进行填充内容的操作
  • 配置Beremiz,环境ubuntu:20.04
  • 【Python】基于界面库PyQt5+Qt Dsigner的环境配置和界面绘制
  • Three.js中调整相机视角的方式
  • 【conda】Ubuntu 24.04 安装CUDA 12.04
  • 【AIGC-ChatGPT进阶副业提示词】星际占卜师:探索星象能量的艺术【限时免费阅读,一天之后自动进入进阶课程】
  • js控制文字溢出显示省略号
  • Go快速开发框架2.6.0版本更新内容快速了解
  • Unity设置中文
  • MongoDB深度解析与实践案例
  • 解决PDF.js部署到IIS服务器上后报错mjs,.ftl 404 (Not Found)
  • 【Linux】编写简易shell 深度理解命令行解释器 环境变量 内建命令
  • 一、Hadoop概述
  • 南山企业保租房瑧山河周边转转
  • 运维相关知识科普
  • DeepSeek V3:新一代开源 AI 模型,多语言编程能力卓越
  • 关于JS中的this指向问题
  • Xdebug