前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch Snapshot 恢复数据分片显示未分片??

Elasticsearch Snapshot 恢复数据分片显示未分片??

原创
作者头像
南非骆驼说大数据
修改2020-07-12 18:05:33
1.8K0
修改2020-07-12 18:05:33
举报

问题场景:

记一次ES离线快照数据恢复过程

客户需要将云上ES中的数据恢复到本地集群,但是恢复到本地后,索引分片显示未分片状态,数据不可用。如下图所示:

索引分片状态
索引分片状态

那么本文将讲解如何解决此类数据恢复的问题,这里以客户实际案例为环境:ES6.4.3

一、本地搭建客户环境

步骤如下:

1,搭建一个3个节点的集群,ES6.4.3

2,将用户云上集群的快照文件打包上传到自己的COS桶

3,在自建集群上安装6.4.3COS插件,并执行COS恢复

4,解决数据恢复过程中遇到的分片分配的问题

在前面的四步中,我们重点讲最后一步数据如何解决分片的问题,其它三步可以参考本博文中关于COS的博文内容。

二、数据恢复分片未分片怎么解决?

在快照在本地恢复后,查看索引状态,显示所有分片未分片,通过GET _cluster/allocation/explain 查看分片为何报错?

explainAPI 解释原因
explainAPI 解释原因

我们可以发现以下原因:

分片未分片的原因为集群索引中有设置分片过滤原则,恢复到本地集群后,发现本地索引规则设置不匹配,导致数据无法正常分片。而源集群分片索引策略的设置可能又与集群的冷热属性有关。

那么知道了原因,我们就来在本地集群改一下索引分片策略,我们针对索引取消分片策略:如下图:

取消本地分片策略
取消本地分片策略

然后,我们再来看此索引分片的效果,结果无效

那么取消本地集群的索引分片设置,分片还是无法自动恢复激活状态。那么我们看一下官方介绍:通过忽略以下方法来进行恢复看看

然后结果还是显示未分片,还是不行。那怎么办呢?用户催得很。再次查阅官方文档,终于得到如下信息:

官网介绍
官网介绍

那么以上得意思是:

跨集群恢复快照时,如果源集群有设置分片过滤规则,新得目标集群也要有相应得分片设置。否则,索引分片将无法正常运行。

因此知道原因了,我马上跟用户联系,看用户集群是否有特殊配置,比如是否配置了冷热集群、磁盘是否选择SSD,经过沟通,用户集群的配置非冷热集群,但是磁盘属性为SSD

用户集群配置
用户集群配置

因此,我们再找一个索引看看其设置,是否设置分片过滤规则

云集群索引分片设置
云集群索引分片设置

那么这个设置是怎么来得呢?是腾讯云通过模板为那些配置了SSD磁盘的用户默认设置的。因此问题就出在这里。那么到底如何解决这个问题呢?

我们需要将本地集群的磁盘属性标记为HOT属性,同时设置索引分片过滤原则。那么我去本地集群改一下集群属性:

通过es配置文件更改如下配置,并重启集群

然后再次执行数据恢复并查看索引分片恢复状态:索引分配成功

分片分配成功
分片分配成功

果然,数据未分配,就是跟集群的分片过滤设置以及跨级群快照恢复的注意事项,那么到此为止,问题得到有效解决。将方案同步用户,用户问题也迎刃而解。特发时间记录这次故障的解决过程

三、总结

本节以一个实际列子讲到如何将一个COS快照恢复到本地,以及重点讲了如何将数据从未分片更改为正常激活状态,保证用户服务快速可用的过程。整个过程需要重点关注:

1,explain API 的使用,expalin API每次只会对集群故障的一个索引信息进行输出。解决完这个后,再解决另外的索引问题。

2,需要关注本次需要参考的文档:

https://www.elastic.co/guide/en/elasticsearch/reference/7.2/shard-allocation-filtering.html https://www.elastic.co/guide/en/elasticsearch/reference/7.2/modules-snapshots.html

3,自定义集群COS插件如果是低版本比如6.0.0的安装直接再es plungins 目录下新建文件夹,然后将插件包上传到plugins目录,重启ES服务即可,与高版本COS插件安装不同。

4,COS插件与ES插件的版本需要一致,无论是云上集群还是自建集群。都要求版本一致。否则会因为版本问题而导致数据恢复异常。

5,ES快照的原理是会将源集群的索引mapping、Settings这些信息全部执行文件拷贝。因此如果目标集群规则设置不准确的话,也会到导致用户ES集群的数据恢复失败。

那么以上,就是本次数据恢复的总结。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题场景:
    • 记一次ES离线快照数据恢复过程
      • 一、本地搭建客户环境
        • 步骤如下:
      • 二、数据恢复分片未分片怎么解决?
        • 分片未分片的原因为集群索引中有设置分片过滤原则,恢复到本地集群后,发现本地索引规则设置不匹配,导致数据无法正常分片。而源集群分片索引策略的设置可能又与集群的冷热属性有关。
      • 三、总结
      相关产品与服务
      Elasticsearch Service
      腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档