【发布时间】:2019-06-11 13:52:13
【问题描述】:
我们已经运行 elasticsearch 几年了。我们运行了一个 2 节点的简单集群(1.7 版)。该集群支持一些内部实用程序,因此使用率相对较低。在过去的 4 年中,该集群从未崩溃、重新启动甚至打嗝。
我们决定建立一个更加注重生产的集群。我做了很多研究,这是我为新集群提出的:
2 Client Nodes (a.k.a. Coordinating nodes) [4 core, 8GB memory, 300GB HD, Virtual]
3 Master Nodes[4 core, 8GB memory, 300GB HD, Virtual]
3 Data Nodes[48 core, 64GB memory, 3TB HD (Raid 0), Physical]
这个集群运行的是 ES 6.5.4 CENTOS 7(我计划很快升级到 7.1)。 所有节点都在本质上是普通配置上运行。我们只有大约 500 万个文档,集群的数据总量不到 60GB。配置如下所示:
# Example Master Config
cluster.name: MYCLUSTER
node.name: MASTER01
node.master: true
node.data: false
node.ingest: false
cluster.remote.connect: false
path.repo: /repo/nfs/path
# Example Data Config
cluster.name: MYCLUSTER
node.name: DATA01
node.master: false
node.data: true
node.ingest: false
cluster.remote.connect: false
path.repo: /repo/nfs/path
# Example Client Config
cluster.name: MYCLUSTER
node.name: CLIENT01
node.master: false
node.data: false
node.ingest: false
cluster.remote.connect: false
# All have
http.port: MY_ES_PORT
discovery.zen.ping.unicast.hosts: MY_LIST_OF_SERVERS(8)
discovery.zen.minimum_master_nodes: 2
在 jvm.options 中,所有节点的堆空间默认为 1G,但数据节点为 26G。
问题是我的数据节点不断崩溃。在过去 3 天里,我的 3 个数据节点中的一个发生了 3 次崩溃。将其重新上线并摆脱损坏的索引片段已经花费了许多小时的工作和学习。我不知道是什么让他们崩溃。我在日志中看到涉及“失败节点”和“CorruptIndexException”的错误,但我不知道是什么导致实际节点失败。我检查了所有服务器的日志文件,虽然它们都显示错误,但似乎没有任何东西可以帮助我查明失败的原因。 3 个数据节点中有 2 个发生故障。
互联网似乎表明最常见的原因是硬件。不幸的是,我没有看到任何证据表明硬件是问题所在。
任何人都可以就如何找出数据节点崩溃的原因提供任何建议吗?
【问题讨论】:
标签: elasticsearch centos7