部署
| 1 | 略 | 
空间不足问题
在使用期间我们也观察到 Load 一直突高不下的情况,经检查发现 etcd 内的数据量已达到 600 多兆,所以我们采取了定期压缩 etcd 的措施,将历史事物数据全部清除。具体代码可参考:
- 获取当前的版本 - 1 - rev=$(ETCDCTL_API=3 etcdctl --endpoints=:2379 endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*') 
- 压缩当前版本之前的所有记录 - 1 - ETCDCTL_API=3 etcdctl compact $rev 
- 清理多余的碎片空间 - 1 
 2
 3
 4- 清理当前 etcd 节点的碎片空间 
 ETCDCTL_API=3 etcdctl defrag
 清理集群的碎片空间
 ETCDCTL_API=3 etcdctl defrag --cluster
- 解除警告 - 1 
 2- 一定要解除警告,否则 etcd 集群还是异常状态 
 ETCDCTL_API=3 etcdctl alarm disarm
备份脚本
| 1 | !/usr/bin/env bash | 
恢复脚本
| 1 | 略 |