解决ETCD mvcc: database space exceeded问题

问题描述:
    变更无法生效,相关报错信息:etcd mvcc: database space exceeded。查询etcd节点状态,发现"NOSPACE"的告警信息,并且DB SIZE=2.1G

原因分析:
    etcd的官方文档常见问题(FAQ)版块针对这个场景有明确的说明,这个报错信息是etcd服务端返回的,用来提示应用etcd服务端空间不足了。etcd服务默认不会开启自动压缩参数,如果变更频繁,会导致空间和内存的浪费,最终将耗尽etcd的存储空间,Etcd v3 的默认的存储空间是2GB,如果不压缩,超过这个限制后,就会报错:”mvcc: database space exceeded”,导致数据无法写入。

问题解决:
    1.为了保证数据的安全,最好做一下数据的备份(非必须)
    ./etcdctl snapshot save backup.db --user=root --password="e63Sdv3xZ5JmTE"
    2.获取版本号revision
    ./etcdctl endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*'
    3.执行空间压缩
    export ETCDCTL_API=3
    ./etcdctl compact $revision
    4.整理碎片
    ./etcdctl defrag --user=root --password="e63Sdv3xZ5JmTE"
    5.清除告警信息(必须)
    etcdctl alarm disarm

以上操作需要在etcd集群中每一个节点都执行一遍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值