etcd碎片整理
在 etcd自动压缩 之后,后端数据库可能会出现内部碎片。内部碎片空间可以被 etcd
使用,但是这部分空间不会释放给文件系统,也就是意味着不会回收磁盘空间(从操作系统角度来看)。
备注
我理解 etcd
空间压缩一般就能够保证etcd正常工作了,因为我们通常都是独立运行 etcd
,对于操作系统不回收这部分磁盘空间不重要,只要这部分空间能够继续被 etcd
自己使用就可以了。
所以通常应该不需要defragmentation
备注
每天一次告警也有点烦,尝试defrag
准备工作
执行 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 | |
+----------------------------+------------------+---------+---------+-----------+------------+-----------+------------+--------------------+--------+
备注
以上实践记录是在我的线下测试环境执行实践,实际生产环境数据量比这个要大很多