如果heketi管理的集群出现如下问题
[heketi] ERROR 2018/07/02 09:08:19 /src/github.com/heketi/heketi/apps/glusterfs/app.go:172: Heketi was terminated while performing one or more operations. Server may refuse to start as long as pending operations are present in the db.
那么,就会导致heketi服务无法启动,这是因为某些异常操作导致在heketi.db文件里面有一些pending的信息。这些信息会阻止heketi服务的重启。可以根据以下几步进行修复。
第一步:导出heketi的heketi.db文件,文件的路径在heketi.json文件里面,如下图
导出命令:heketi db export --dbfile=/var/lib/heketi/heketi.db --jsonfile=/tmp/heketidb1.json (其中--dbfile文件路径可以根据上图配置的实际路径写,--jsonfile 文件是导出文件的存放路径,这个自己随意设置就行)
第二步:打开导出的db文件,比如上文的/tmp/heketidb1.json,查找```pendingoperations```选项,找到之后把与它相关的内容删除。
第三步:将修改后的文件保存,切记要保存为json后缀。然后将db文件再按照如下命令导入:
heketi db import --jsonfile=/tmp/succ.json --dbfile=/var/lib/heketi/heketi.db (--jsonfile 为第二步修改后保存的文件, --dbfile为第一步配置中的heketi. db文件路径。
第四步:重启heketi 服务.
systemctl start heketi
如果看到以上信息,证明issue已经fixed了。可以正常使用heketi了。
参考信息:
https://github.com/heketi/heketi/blob/master/docs/troubleshooting.md