僵尸索引 Dangling indices

当遇到Elasticsearch集群中存在无法分配的3个索引分片时,可能面临僵尸索引(Dangling indices)问题。这类索引在磁盘上存在,但在集群状态中却找不到。产生的原因包括直接删除索引数据目录、节点长时间离线等。解决办法包括在集群内删除索引,或者在物理机上强制删除。若删除后仍出现,需深入调查并采取物理删除措施。

现象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JNFZeA4m-1589961988913)(%E5%83%B5%E5%B0%B8%E7%B4%A2%E5%BC%95.assets/image-20200506100934028.png)]
集群有3个索引分片无法分配,查看原因:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BEMCFaXd-1589961988920)(%E5%83%B5%E5%B0%B8%E7%B4%A2%E5%BC%95.assets/image-20200506101021240.png)]

{
  "index": "brock**********************000_7",
  "shard": 0,
  "primary": true,
  "current_state": "unassigned",
  "unassigned_info": {
    "reason": "DANGLING_INDEX_IMPORTED",
    "at": "2020-05-05T22:32:38.904Z",
    "last_allocation_status": "no_valid_shard_copy"
  },
  "can_allocate": "no_valid_shard_copy",
  "allocate_explanation": "cannot allocate because a previous copy of the primary shard existed but can no longer be found on the nodes in the cluster",
  "node_allocation_decisions": [ ... ]

分析

DANGLING_INDEX_IMPORTED:僵尸索引/悬空索引:磁盘中存在,而集群状态中不存在的索引;

github上关于悬空索引的文章,https://github.com/elastic/ela … 18250

可能产生原因:

  • 直接在物理机上删除了某个索引的UUID数据目录;
  • 有节点长时间离线,索引已经删除了,但节点重新加入集群后,还保存有这个索引的信息;
  • 从别的集群拷贝了一个索引的数据目录到当前集群;

解决方案

1、在集群中删除僵尸索引;

2、如果步骤1执行后,僵尸索引又重新出现,则只能从物理机上硬删了

参考文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值