首页 新闻 会员 周边

docker swarm 更新 elasticsearch 部署时总是出现 "failed to obtain node locks" 问题

0
悬赏园豆:30 [已解决问题] 解决于 2020-05-28 09:21

在 docker swarm 集群上部署 elasticsearch ,每次更新部署时,对应的 service 总是启动失败,错误日志如下:

java.lang.IllegalStateException: failed to obtain node locks, tried [[/usr/share/elasticsearch/data/es-cluster]] with lock id [0]; maybe these locations are not writable or multiple nodes were started without increasing [node.max_local_storage_nodes] (was [1])?

请问如何解决?

dudu的主页 dudu | 高人七级 | 园豆:31048
提问于:2020-05-28 06:55
< >
分享
最佳答案
0

是 docker compose 配置文件中下面的部署配置引起的。

update_config:
  order: start-first

start-first 是先启动新容器,再关闭旧容器,在启动 es 新容器时,由于旧容器还在运行,node.lock 文件没有被释放,新容器获取不到 node.lock ,所以出现上面的错误。

去掉上面的配置,恢复为默认值 stop-first ,问题就解决了。

dudu | 高人七级 |园豆:31048 | 2020-05-28 09:21
其他回答(1)
0

不是基于docker部署的,也遇到这个问题了,楼主有其他解决办法吗

我有会飞的本事儿 | 园豆:29 (初学一级) | 2021-04-16 14:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册