Как мне найти причину сбоя узла данных? (Elasticsearch 6.5) - PullRequest
0 голосов
/ 10 июня 2019

Мы уже несколько лет проводим поиск на эластичных дисках. Мы запустили простой кластер из 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). Все узлы работают по существу в ванильных конфигурациях. У нас всего около 5 миллионов документов и менее 60 ГБ данных для кластера. Конфигурация выглядит примерно так:

# 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 дня произошел сбой одного из моих трех узлов данных. Возвращение его в оперативный режим и избавление от испорченных частей индексов - это много часов работы и обучения. Я не могу понять, что заставляет их терпеть крах. Я вижу ошибки в журнале, которые ссылаются на «Failed Node» и «CorruptIndexException», но я понятия не имею, что вызвало сбой реального узла. Я проверил лог-файлы всех серверов, и хотя все они показывают ошибки, ни на одном из них нет ничего, что помогло бы мне точно определить причину сбоя. 2 из 3 узлов данных вышли из строя.

Похоже, что в веб-сетях наиболее распространенной причиной является аппаратное обеспечение. К сожалению, я не вижу никаких доказательств того, что проблема в оборудовании.

Может кто-нибудь предложить какой-нибудь совет, как я могу выяснить, почему происходит сбой узлов данных?

1 Ответ

1 голос
/ 11 июня 2019

«CorruptIndexException» означает, что какой-то сегмент поврежден. возможно из-за плохого блока (плохого сектора) на жестком диске. Я рекомендую запустить checkdisk на жестком диске, а затем использовать инструменты эластичного поиска (расположенные в $ ELASTIC-HOME / bin /) для проверки и исправления поврежденных сегментов. возможно, путь к сегменту записывается в файл журнала.

Краткое руководство для эластичного поиска-шарда:

./elasticsearch-shard remove-corrupted-data --index cl6-blah-blah-index  --shard-id 3 

обратите внимание, что эластичный поиск-осколок доступен только на 6.5.

еще одно важное замечание: fsck иasticsearch-shard может привести к потере данных. хотя учтите, что данные сейчас повреждены и восстановить их невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...