Etcd特性学习2——数据操作

本文介绍了Etcd的数据操作,包括endpoint的用途,如检查健康状态和获取集群信息;重点讨论了碎片整理(defrag)功能,它能有效减小DB文件大小,释放磁盘空间;并解析了compaction过程,如何清除修订版(revision)以释放存储空间,以及对revision全局特性的理解。此外,文章比较了Etcd与ZooKeeper在数据操作上的便利性差异。
摘要由CSDN通过智能技术生成

0x01 endpoint

endpoint即意为端点,指向客户端提供服务的一个服务入口。Etcd集群中每个节点都可以提供一个端点。严格来说,endpoint不属于数据操作范畴,但与后续defrag有关联,是理解defrag的前提,就先放这里了。

提供了3个子命令。

  1. hashkv 打印出KV历史的hash值。是用来检查请求发生时各端点的记录是否一致。可以计算指定的revison版本。
  2. health 检查端点是否健康。可以用于检查端点是否健康。可以通过-w json的全局选项,返回json格式,方便使用方解析。
  3. status 返回端点的状态。包含集群ID,成员ID和当前的leader节点,对管理Etcd集群非常有帮助。

小结:

设计基础服务时,要考虑方便使用者,尽可能多提供一些选项。对于输出信息来说,最好有全局的能用选项。如-w选项指定输出的格式。

0x02 碎片整理 defrag

根据文档中的说明可知,当通过删除和压缩key回收空间时,Etcd仅是把空间挂在一个空闲列表上了,对应的后端DB文件大小是不变的。经过碎片整理,Etcd可以真正减小DB文件的大小,将磁盘空间归还给系统。

通过了解其功能知道,对于管理Etcd来说,这个特性是必须的,特别是k8s环境中会经常删除一些资源的(升级时旧的pod、水平缩容时删除的pod),key删除磁盘空间却没释放的话,用户就会困惑。

defrag的参数很少,但也能看出设计很灵活。

  1. --cluster 用来指定操作的端点范围。默认为false,为true时代表使用集群中所有的endpoint。
  2. --data-dir 可选的。可以用来对一个已经有的Etcd DB目录操作,即offline。通常可以去操作Etcd的备份。

0x03 compaction

Etcd为每个key都维护了多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值