etcd miantain历史数据压缩碎片清理

2019-02-03  本文已影响0人  骆的沙

overview

由于etcd保留了集群中所有版本的确切的历史记录,所以需要定期压缩历史记录以避免性能下降及最终将存储空间耗尽。etcd集群需要定期维护才能保持可靠性,etcd的维护通常可以自动执行,无需停机,也不会影响性能下降。

压缩历史数据会丢弃给定的压缩版本之前所有的历史数据,在压缩数据后,后端数据存储可能会出现内部碎片,碎片仍会占用存储空间,因此需要对碎片进行整理将空间释放回文件系统。

etcd 维护流程

$ cat etcd-snapshot  #etcd-snapshot脚本
#!/bin/bash
BACKUP_PATH=/var/lib/etcd-backup
mkdir -p $BACKUP_PATH
SNAP_FILE="etcd-snapshot-`date +%Y%m%d-%H%M%S`"
. /etc/etcd/etcdrc; /usr/local/bin/etcdctl snapshot save "${BACKUP_PATH}/${SNAP_FILE}"
cd $BACKUP_PATH; tar -czvf ${SNAP_FILE}.tar.gz $SNAP_FILE
cd $BACKUP_PATH; find ./ -mtime +7 -type f -delete
rm -f ${BACKUP_PATH}/${SNAP_FILE}
$ sh etcd-snapshot #执行脚本备份

2019-01-22 18:28:41.665959 I | warning: ignoring ServerName for user-provided CA for backwards compatibility is deprecated
Snapshot saved at /var/lib/etcd-backup/etcd-snapshot-20190122-182841
etcd-snapshot-20190122-182841
$ etcdctl endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*'
39042173

$ etcdctl --command-timeout=300s compact 39042073
$ etcdctl --command-timeout=300s defrag  --endpoints=https://10.5.xx.xx:2379
Finished defragmenting etcd member[https://10.xx.xx.xxx:2379]
上一篇下一篇

猜你喜欢

热点阅读