etcd碎片整理

etcd自动压缩 之后,后端数据库可能会出现内部碎片。内部碎片空间可以被 etcd 使用,但是这部分空间不会释放给文件系统,也就是意味着不会回收磁盘空间(从操作系统角度来看)。

备注

我理解 etcd 空间压缩一般就能够保证etcd正常工作了,因为我们通常都是独立运行 etcd ,对于操作系统不回收这部分磁盘空间不重要,只要这部分空间能够继续被 etcd 自己使用就可以了。

所以通常应该不需要defragmentation

备注

每天一次告警也有点烦,尝试defrag

准备工作

etcd 环境设置

  • 执行 defragmentation 之前,先检查一次etcd集群健康状态:

etcd_status 命令查看etcd健康状态
+----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
|          ENDPOINT          |        ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| https://192.168.8.116:2379 | 3ff555f9837c69b9 |   3.5.6 |  7.8 MB |      true |      false |        16 |    2014832 |            2014832 |        |
| https://192.168.8.117:2379 | 4a784b4a93b49575 |   3.5.6 |  7.9 MB |     false |      false |        16 |    2014832 |            2014832 |        |
| https://192.168.8.118:2379 | cb79cdeb0f0fe1cb |   3.5.6 |  7.9 MB |     false |      false |        16 |    2014832 |            2014832 |        |
+----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+

执行

  • 执行 etcd 碎片整理:

执行 etcdctl defrag 进行碎片整理
etcdctl defrag

这个执行速度很快,秒级完成,并且是依次对所有 etcd - 分布式kv存储 服务器进行碎片整理,此时显示输出:

执行 etcdctl defrag 进行碎片整理输出信息
Finished defragmenting etcd member[https://192.168.8.116:2379]
Finished defragmenting etcd member[https://192.168.8.117:2379]
Finished defragmenting etcd member[https://192.168.8.118:2379]
  • 再次执行 etcd_status 检查碎片整理后的etcd:

完成defrag之后再次 etcd_status 命令查看etcd健康状态
+----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
|          ENDPOINT          |        ID        | VERSION | DB SIZE | IS LEADER | IS LEARNER | RAFT TERM | RAFT INDEX | RAFT APPLIED INDEX | ERRORS |
+----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
| https://192.168.8.116:2379 | 3ff555f9837c69b9 |   3.5.6 |  1.9 MB |      true |      false |        16 |    2015548 |            2015548 |        |
| https://192.168.8.117:2379 | 4a784b4a93b49575 |   3.5.6 |  1.9 MB |     false |      false |        16 |    2015548 |            2015548 |        |
| https://192.168.8.118:2379 | cb79cdeb0f0fe1cb |   3.5.6 |  1.9 MB |     false |      false |        16 |    2015548 |            2015548 |        |
+----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+

备注

以上实践记录是在我的线下测试环境执行实践,实际生产环境数据量比这个要大很多

参考