如何解决同层仪表节点丢失怎么解决过多

Elasticsearch中健康的集群是一个均衡的集群:主仪表节点丢失怎么解决和副本分片分布在所有仪表节点丢失怎么解决上,以便在仪表节点丢失怎么解决发生故障时具有持久的可靠性

但是当你看到碎片在UNASSIGNED状态中挥之不去时,你该怎么办


在我们深入研究一些解决方案之前,让我们验证未分配的分片是否包含我们需要保留的数据(如果不是删除这些分片是解决问题的最直接的方法)。如果您已经知道数据值得保存请跳转到解决方案:


本文中的命令是在假设您在默认端口(9200)上运行每个Elasticsearch实例的HTTP服务的情况下格式化的。它们也被定向到localhost它假定您在本地提交请求;否则,将localhost替换为您儀表节点丢失怎么解决的IP地址

每行列出索引的名称,分片编号是主分片(p)还是副本(r)分片,以及它未分配的原因:


如果您运行的昰Elasticsearch5+版本您还可以使用群集分配说明API来尝试获取有关分片分配问题的更多信息:

生成的输出将提供有关群集中某些分片未分配的原因的囿用详细信息:
在这种情况下,API清楚地解释了副本分片保持未分配的原因:“分片无法分配到已存在分片副本的同一仪表节点丢失怎么解決”要查看有关此特定问题的更多详细信息以及如何解决此问题,请跳至本文后面的部分


如果看起来未分配的分片属于您认为已删除嘚索引,或者您不再需要的过时索引则可以删除索引以将群集状态恢复为绿色:


如果这没有解决问题,请继续阅读以尝试其他解决方案

原因1:故意分配碎片分配
当仪表节点丢失怎么解决离开集群时,主仪表节点丢失怎么解决暂时延迟分片重新分配以避免在原始仪表节點丢失怎么解决能够在特定时间段(默认为一分钟)内恢复时不必要地在重新平衡分片上浪费资源。如果是这种情况您的日志应如下所礻:


您可以动态修改延迟时间,如下所示:

延迟期结束后您应该开始看到主分配这些分片。如果没有请继续阅读以探索其他潜在原因嘚解决方案。
原因2:分片太多仪表节点丢失怎么解决不够
当仪表节点丢失怎么解决加入和离开集群时,主仪表节点丢失怎么解决会自动偅新分配分片确保分片的多个副本未分配给同一仪表节点丢失怎么解决。换句话说主仪表节点丢失怎么解决不会将主分片分配给与其副本相同的仪表节点丢失怎么解决,也不会将同一分片的两个副本分配给同一仪表节点丢失怎么解决如果没有足够的仪表节点丢失怎么解决来相应地分配分片,则分片可能会以未分配的状态停留


要避免此问题,请确保使用下面的公式初始化群集中的每个索引每个主分爿的副本数少于群集中的仪表节点丢失怎么解决数:


其中N是群集中的仪表节点丢失怎么解决数,R是群集中所有索引的最大分片复制因子

在丅面的屏幕截图中many-shards索引存储在四个主分片上,每个主分片有四个副本索引的20个分片中有8个未分配,因为我们的群集只包含三个仪表节點丢失怎么解决尚未分配每个主分片的两个副本,因为三个仪表节点丢失怎么解决中的每个仪表节点丢失怎么解决都已包含该分片的副夲
要解决此问题,您可以向群集添加更多数据仪表节点丢失怎么解决或减少副本数在我们的示例中,我们要么需要在集群中添加至少兩个仪表节点丢失怎么解决要么将复制因子减少到两个,如下所示:


减少副本数量后查看Kopf以查看是否已分配所有分片。

原因3:您需要偅新启用分片分配
在下面的Kopf屏幕截图中一个仪表节点丢失怎么解决刚加入群集,但尚未分配任何分片


默认情况下,在所有仪表节点丢夨怎么解决上启用分片分配但您可能在某些时候禁用了分片分配(例如,为了执行滚动重新启动)并且忘记重新启用它。


如果这解决叻问题则KopfDatadog仪表板应显示未成功分片的数量,因为它们已成功分配给仪表节点丢失怎么解决


启用分配后未分配的分片更新的Kopf仪表板显礻在重新启用分片分配后,已分配了许多以前未分配的分片 看起来这解决了所有未分配的分片的问题,但有一个例外:常量更新索引的汾片0让我们探讨碎片保持未分配的其他可能原因。

原因4:群集中不再存在分片数据


在这种情况下常量更新索引的主分片0未分配。它可能是在没有任何副本的仪表节点丢失怎么解决上创建的(一种用于加速初始索引过程的技术)并且仪表节点丢失怎么解决在可以复制数據之前离开了集群。主服务器在其全局群集状态文件中检测到分片但无法在群集中找到分片的数据。


另一种可能性是仪表节点丢失怎么解决在重新启动时可能遇到问题通常,当仪表节点丢失怎么解决恢复其与群集的连接时它会将有关其磁盘分片的信息中继到主服务器,然后主服务器将这些分片从未分配转换为已分配/已启动当此过程由于某种原因而失败时(例如,仪表节点丢失怎么解决的存儲已经以某种方式损坏)分片可能保持未分配状态。


在这种情况下您必须决定如何继续:尝试让原始仪表节点丢失怎么解决恢复并重噺加入群集(并且不强制分配主分片),或者使用Reroute API强制分配分片并使用重新索引丢失的数据原始数据源或来自备份。

如果您决定分配未汾配的主分片请确保在请求中添加“allow_primary”:“true”标志:
如果没有“allow_primary”:“true”标志,我们会遇到以下错误:
 
强制分配主分片的警告是你将分配一个“空”分片如果包含原始主分片数据的仪表节点丢失怎么解决稍后将重新加入群集,则其数据将被新创建的(空)主分片覆盖洇为它将被视为数据的“较新”版本。
 
您现在需要重新索引丢失的数据或使用快照和还原API从备份快照中尽可能多地还原。
 



如果没有足够嘚磁盘空间仪表节点丢失怎么解决主仪表节点丢失怎么解决可能无法分配分片(它不会将分片分配给使用率超过85%的磁盘的仪表节点丢夨怎么解决)。一旦仪表节点丢失怎么解决达到此磁盘使用级别或Elasticsearch称之为低磁盘水印,则不会为其分配更多分片

您可以通过查询cat API來检查群集中每个仪表节点丢失怎么解决上的磁盘空间(并查看每个仪表节点丢失怎么解决上存储的分片):

如果任何特定仪表节点丢失怎么解决的磁盘空间不足(删除过时的数据并将其存储在群集外,添加更多仪表节点丢失怎么解决升级硬件等),请参阅此文章以获取囿关如何操作的选项
 

如果希望在群集重新启动时保持配置更改,请将“transient”替换为“persistent”或者在配置文件中更新这些值。您可以选择使用芓节或百分比值来更新这些设置但请务必记住Elasticsearch文档中的这一重要说明:百分比值是指已用磁盘空间,而字节值是指可用磁盘空间


此问题仅出现在运行多个Elasticsearch版本的集群中(可能在滚动升级过程中)。根据Elasticsearch文档主仪表节点丢失怎么解决不会将主分片的副本分配给运行舊版本的任何仪表节点丢失怎么解决。例如如果主分片在1.4版上运行,则主分区将无法将该分片的副本分配给运行1.4之前的任何版本的任何儀表节点丢失怎么解决

如果您尝试将分片从较新版本仪表节点丢失怎么解决手动重新路由到较旧版本仪表节点丢失怎么解决,您将看到洳下错误:

Elasticsearch不支持回滚到以前的版本只支持升级。升级运行旧版本的仪表节点丢失怎么解决应解决该问题如果这确实是目前需要的问題。
你试过把它关掉再打开吗



尽快修复未分配的分片非常重要,因为它们表明数据丢失/不可用或者您的群集未配置为最佳可靠性。如果您已经在使用Datadog请打开Elasticsearch集成,您将立即开始监控未分配的分片和其他关键的Elasticsearch性能和运行状况指标如果您不使用Datadog但愿意,请注册免费试鼡版

文章源自广州致远电子有限公司转载或引用请注明出处

总线是当前应用最广泛的现场总线之一,但其复杂的故障排查经常困扰到

应用工程师本文笔者结合工作经验为夶家推荐几种快速定位

总线故障的原因多种多样,

仪表节点丢失怎么解决掉线甚至整条总线被拖垮

一个故障仪表节点丢失怎么解决或者隱患仪表节点丢失怎么解决往往会危害到整个产品的安全,

如新能源车的控制总线中

仪表节点丢失怎么解决导致仪表盘数据更新滞后、顯示错误导致司机判断错误引发道路安全事故。

仪表节点丢失怎么解决一个一个往总线上接

该方法相信是绝大多数现场应用工程师都有嘗试,

往往可以零成本揪出问题仪表节点丢失怎么解决

当总线仪表节点丢失怎么解决过多或者总线布线复杂时往往使工程师抓

狂;其二,假如故障原因是各仪表节点丢失怎么解决容抗、阻抗控制不好导致的往往多个仪表节点丢失怎么解决的累积效应才

导致问题出现,因此最后一个挂上去且总线出问题的仪表节点丢失怎么解决不可避免要“背锅”

我要回帖

更多关于 目前博弈搜索算法研究的热点 的文章

 

随机推荐