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

overview

由于etcd保留了集群中所有版本的确切的历史记录,所以需要定期压缩历史记录以避免性能下降及最终将存储空间耗尽。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
  • 获取当前etcd集群所有member endpoints

    • 导入ENV
    $ cat etcdrc 
    export ETCDCTL_API=3
    export ETCDCTL_ENDPOINTS="127.0.0.1:2379"
    export ETCDCTL_CACERT=/etc/etcd/ssl/ca.crt
    export ETCDCTL_CERT=/etc/etcd/ssl/etcd.crt
    export ETCDCTL_KEY=/etc/etcd/ssl/etcd.key
    $ source etcdrc # 执行
    
    • 获取member endpoints
    $ etcdctl member list
    b647a4c5532e517, started, vms70322, https://10.5.xx.93:2380, https://10.5.xx.93:2379
    c7eeae8975872e8, started, vms70324, https://10.5.xx.95:2380, https://10.5.xx.95:2379
    29a57fa29bbcf1a7, started, vms70323, https://10.5.xx.94:2380, https://10.5.xx.94:2379
    caedcb6700c3f637, started, vms70321, https://10.5.xx.92:2380, https://10.5.xx.92:2379
    f5c43730caf9ca87, started, vms70320, https://10.5.xx.91:2380, https://10.5.xx.91:2379
    
  • 获取当前最新的etcd revision版本$rev_num

$ etcdctl endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*'
39042173

  • 保留最新的100个revision版本,压缩($rev_num -100)旧版本数据

$ etcdctl --command-timeout=300s compact 39042073
  • 碎片整理(对每个member逐一进行,先非leader,再leader)

$ etcdctl --command-timeout=300s defrag  --endpoints=https://10.5.xx.xx:2379
Finished defragmenting etcd member[https://10.xx.xx.xxx:2379]
  • 维护结果

    数据压缩完成之后数据大小DB size将降低:


    DBSize.png

    disk.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 因为工作需求,公司需要使用ETCD来做gRPC服务的负载均衡,以及集群管理,所以对etcd做了一些研究,希望能给大...
    Jay_Guo阅读 46,564评论 8 47
  • Kubernetes作为容器应用的管理中心,通过对Pod的数量进行监控,并且根据主机或容器失效的状态将新的Pod调...
    辉耀辉耀阅读 4,591评论 0 13
  • 前言 尝到k8s甜头以后,我们就想着应用到生产环境里去,以提高业务迭代效率,可是部署在生产环境里有一个要求,就是k...
    我的橙子很甜阅读 12,880评论 0 15
  • docker实现了更便捷的单机容器虚拟化的管理, docker的位置处于操作系统层与应用层之间; 相对传统虚拟化(...
    Harvey_L阅读 19,888评论 3 44
  • 摘录。九型人格的感知情绪结构,能够帮助我们更好的理解和改造我们的个性,但它不是真理,不是事实。它只是有关性格的理论...
    九日郎阅读 371评论 0 0