Etcd怎么执行碎片整理defrag释放物理磁盘空间

轻静吖_4689

轻静吖_4689

2026-10-01

397人浏览

原创

defrag必须在compact之后执行才能真正释放物理磁盘空间;仅compact无法缩小etcd.db文件体积,defrag通过重写数据回收被标记删除的空闲块,并需用节点实际证书验证、逐节点操作、超时保护及alarm disarm验证。

etcd怎么执行碎片整理defrag释放物理磁盘空间

当 etcd 数据库因 MVCC 历史版本堆积导致物理磁盘空间持续增长、甚至触发 database space exceeded 告警时,必须执行 defrag 才能真正回收被标记为“删除”的空闲块——仅靠 compact 不会缩小 etcd.db 文件体积。

确认当前 etcd 状态与权限准备

先检查集群健康状态和证书路径,避免因 endpoint 不可达或证书错误导致 defrag 中断:

运行 ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key endpoint health,输出应含 healthy;若报 x509: certificate signed by unknown authority,说明证书路径错误或 ca.crt 不匹配,【必须用该节点实际使用的 etcd peer 或 server 证书,不可混用 client 证书】。

这一步操作起来很简单,直接把命令复制进终端回车就行。

执行 defrag 回收物理空间

defrag 是在线操作,不影响读写服务,但会短暂升高 I/O 和 CPU 使用率;建议在业务低峰期执行,且单节点逐个操作,避免多节点并发引发集群响应抖动。

方法一:基础命令(适用于单节点、证书路径明确)

ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key defrag

方法二:带超时保护(适用于数据量大、磁盘响应慢的环境)

Skill
Skill

一款AI工具,主要用于后台本地运行 Codex,即时回执并保存日志与补丁产物,可选 Telegram 通知,支持显式工作目录,适合需要提升相关任务效率的用户。

下载

添加 --command-timeout=300s 防止因长时间 I/O 等待被意外中断:ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --command-timeout=300s defrag

注意:defrag 必须在 compact 之后执行,否则无实际空间释放效果——compact 只是逻辑清理,defrag 才是物理重写。

验证 defrag 是否生效

第一步:查看 etcd.db 文件大小变化

执行 ls -lh /var/lib/etcd/member/snap/db(Kubernetes 默认路径)或根据 ETCD_DATA_DIR 实际值定位,对比 defrag 前后文件大小。典型场景下,5GB 的 db 文件经 defrag 后可回落至 1.8GB 左右。

第二步:检查磁盘占用是否下降

运行 df -h | grep etcd,确认挂载点可用空间增加;若未变化,说明 defrag 未成功执行或目标文件非主存储文件。

第三步:确认告警已解除(关键验证)

执行 ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key alarm list,输出应为空;若仍有 NOSPACE,需立即执行 alarm disarm,否则 etcd 拒绝所有写入请求。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

0

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

0

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

0

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

0

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

0

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

220

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

120

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

100

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

60

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程