当前位置: 首页 > news >正文

宁波网站建设优化东莞网络营销渠道

宁波网站建设优化,东莞网络营销渠道,网站打不开dns修改,沈阳网站营销推广问题背景 换节点 我们线上有一套ES集群,三台机器,共运行了6个节点。一直在线上跑了几个月也一直没出什么问题。然而好巧不巧,就在昨天,集群中的3号节点磁盘出现故障,导致机器直接瘫痪。本来大家觉得问题不大&#xf…

问题背景

换节点

我们线上有一套ES集群,三台机器,共运行了6个节点。一直在线上跑了几个月也一直没出什么问题。然而好巧不巧,就在昨天,集群中的3号节点磁盘出现故障,导致机器直接瘫痪。本来大家觉得问题不大,ES不是有容灾吗,换个新节点上去不就能自动分配分片了。

unassigned

当我们信心满满换了个新节点上去之后,集群状态一直为red,我们发现一直存在180多个unassigned shards。

curl -XGET http://localhost:9200/_cluster/health{"cluster_name": "escluster","status": "red","timed_out": false,"number_of_nodes": 6,"number_of_data_nodes": 6,"active_primary_shards": 498,"active_shards": 767,"relocating_shards": 0,"initializing_shards": 0,"unassigned_shards": 185,"delayed_unassigned_shards": 0,"number_of_pending_tasks": 0,"number_of_in_flight_fetch": 0,"task_max_waiting_in_queue_millis": 0,"active_shards_percent_as_number": 80.5672268907563
}
curl -XGET http://localhost:9200/_cat/shards | grep UNASSIGNED

image-20220727145303496

问题排查

分片恢复并发数❌

既然出现Unassigned shards,也就是说有一些分片未被分片。期初我们想当然的认为应该是节点新加入集群,分片还没有完成恢复。为了加速分片分配,我们调大了分片恢复并发数。

curl -XPUT http://localhost:9200/_cluster/settings -H 'Content-Type: application/json' -d'
{"persistent": {"cluster.routing.allocation.node_concurrent_recoveries": 10 }
}
'

然而并没有什么卵用,等了半天还是没什么变化。

allocation explain

随后我们使用allocation explain指令来查看分片的分配状态

curl -XGET http://localhost:9200/_cluster/allocation/explain?pretty

image-20220727150428645

通过unassigned_info我们可以看到,NODE_LEFT,就是说节点无了。last_allocation_status说的更明确: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,大意就是集群节点上找不到能用的副本。

我们也很疑惑啊,为了让ES容灾,ES索引默认都有1个副本的呀,按照ES分片的策略,副本分片不会和主分片分发在同一台机器上,昨天宕机宕了1个节点,不应该主分配与副本分片都丢失吧。莫非…莫非这索引没副本???

抱着试一试的心态,我们查看了其中一个丢失的索引的信息

curl -XGET http://localhost:9200/XXX-2022.03.15/_settings
{"XXX-2022.03.15": {"settings": {"index": {"routing": {"allocation": {"require": {"box_type": "hot"}}},"number_of_shards": "1","provided_name": "XXX-2022.03.15","creation_date": "1647273614797","number_of_replicas": "0","uuid": "Dy7G3ZaESYqLB_aFk8M3Cg","version": {"created": "7080099"}}}}
}

不查不知道,一查吓一跳,这索引分片数为1,且没有副本…我副本呢???赶紧与研发确认了一下,由于机器磁盘比较小,为了节约存储,开发在写入索引时把就没留副本!!!

好家伙,我直接好家伙,合着我们还指望ES容灾呢,这还容个锤子灾。破案了,问题找到了,但数据也是找不回来了。

解决方案

数据是找不回来了,但集群也不能一直red啊,还有180多个unassigned的分片得处理呢。

reroute❌

通过在网上搜索相关的解决方案,得知可以通过重建所以路由是可以解决问题的。

curl -H 'Content-Type: application/json' \-XPOST http://localhost:9200/_cluster/reroute?pretty -d '{"commands" : [ {"allocate_stale_primary" :{"index" : "XXX", "shard" : 0,"node" : "target-data-node-id","accept_data_loss" : true}}]
}'

但我们由于数据节点已经丢失了,所以会收到如下报错:

image-20220727153403732

这意味着什么呢,就是说除非丢失的节点重新加入集群,否则数据将消失。

allocate_empty_primary

数据是没法恢复了,所以我们只能将分片进行清空处理了。

curl -H 'Content-Type: application/json' \-XPOST http://localhost:9200/_cluster/reroute?pretty -d '{"commands" : [ {"allocate_empty_primary" :{"index" : "XXX", "shard" : 0,"node" : "target-data-node-id","accept_data_loss" : true}}]
}'

删除索引

还有一种更彻底的解决方案,就是把坏了的索引都删了就完事了,反正数据也没有了,没有数据的索引跟咸鱼有什么两样?眼不见为净完事了。

参考资料

  • ElasticSearch Node Failure - Stackover Flow
  • ES分片被删除后如何恢复 - CSDN
  • ES集群中出现UNASSIGNED分片时的解决思路 - CSDN
  • Elasticsearch 最佳实践系列之分片恢复并发故障 - 腾讯云开发者社区
http://www.ritt.cn/news/20760.html

相关文章:

  • 网站建设案例展示最好用的搜索引擎
  • wordpress好用的模板下载地址宁波seo网络推广外包报价
  • 做个网站怎么赚钱百度知道
  • 扬州网站建设推广厦门seo排名扣费
  • 龙岗网站开发公司杭州seo公司
  • 西安做网站公司百度人工客服24小时
  • 网站开发目标天津seo推广
  • 动画视频模板网站培训心得体会模板
  • 网站关键词策略网站推广计划书
  • h5做的网站如何连接数据库windows7系统优化工具
  • 杭州网站建设模板营销型企业网站推广的方法有哪些
  • 网站怎样自动文字排版网络营销系统
  • 网站制作开发的步骤和方法网页设计用什么软件
  • bt 天堂资源在线官网游戏优化大师官网
  • 涉密项目单位网站建设流程可以推广的软件有哪些
  • 福州 网站建设电商网站如何避免客户信息泄露
  • 自己怎么做机构网站百度一下你就知道百度首页
  • 17网站一起做网店株洲想学编程去哪里找培训班
  • 中国2020年哪里大建设网站功能优化的方法
  • 淘宝客网站都用什么做百度推广工作怎么样
  • 江门免费建站公司怎样才能在百度上面做广告宣传
  • 网站开发表格整体页面居中百度如何发布信息推广
  • 黑龙江龙采做网站如何河南企业站seo
  • 建立手机网站大二网络营销实训报告
  • 物流网站建设评析seog
  • 鄂尔多斯市建设网站精准的搜索引擎优化
  • 河南建设厅八大员查询网站松原今日头条新闻
  • 红鹊豆网络网站站建设北京百度推广优化
  • 模拟网站平台怎么做百度seo怎么关闭
  • 天津专业智能建站现在推广用什么平台