直接回答:etcd 运维四件事:备份(定期 snapshot)、压紧(compact 清理历史版本)、碎片整理(defrag 回收磁盘空间)、容量与性能监控。备份用 etcdctl snapshot save(加 --cacert/--cert/--key 走 2379),恢复是 snapshot restore 生成新数据目录再指向启动;托管集群(EKS/GKE)etcd 不可见,备份诉求转化为启用厂商的集群备份或把资源导出成声明式清单。

展开解析:备份策略:快照是 Crash-consistent 的(etcd 内有一致性保证),建议每小时快照加异地存储,恢复演练必须定期做——没演练过的备份等于没有备份。性能背景:etcd 默认 2GB 存储配额(可调到 8GB),历史 revision 累积会撑爆配额触发 alarm(NOSPACE),表现为集群只读,处置是 compact 到近期 revision 后 defrag 再解除 alarm;这就是为什么自动化脚本要定期 compact(保留最近若干小时)加 defrag(注意 defrag 阻塞期间该成员延迟上升,滚动逐节点做)。写性能受磁盘 fsync 延迟支配,必须用 SSD 并监控 wal_fsync_duration 的 P99。集群拓扑:三或五成员跨可用区,扩容缩容一次只动一个成员(Raft 成员变更约束)。K8s 侧缓解读压:大集群把 events 拆到独立 etcd、合理配置 watch 缓存与 list 分页。

追问方向:defrag 为什么要放在 compact 之后?NOSPACE alarm 如何解除?

(约 500 字)