Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Устранение неполадок

Решение проблемы недостатка места на узлах-мастерах

Elasticsearch использует узлы-мастера для координации кластера. Если у узла-мастера или любого узла, имеющего право быть узлом-мастером, недостаточно места на диске, необходимо убедиться, что у них достаточно места на диске для работы. Если API health API сообщает, что на вашем узле-мастере недостаточно места, необходимо увеличить емкость диска ваших узлов-мастеров.

  1. Войдите в консоль Elastic Cloud.
  2. На панели Сервис Elasticsearch щелкните шестеренку в столбце, соответствующем имени вашего развертывания.
  3. Перейдите в Actions > Edit deployment, а затем в раздел Master instances:

    Increase disk capacity of master nodes
  4. Выберите конфигурацию емкости, большую, чем предварительно выбранная, из раскрывающегося списка и щелкните save. Подождите, пока план будет применен, и проблема должна быть решена.

Для увеличения емкости диска узла-мастера вам необходимо заменить все узлы-мастера узлами-мастерами с большей емкостью диска.

  1. Сначала получите порог для диска, который укажет, сколько места на диске нужно. Соответствующий порог — это высокий порог, который можно получить с помощью следующей команды:

    resp = client.cluster.get_settings(
        include_defaults=True,
        filter_path="*.cluster.routing.allocation.disk.watermark.high*",
    )
    print(resp)
    response = client.cluster.get_settings(
      include_defaults: true,
      filter_path: '*.cluster.routing.allocation.disk.watermark.high*'
    )
    puts response
    const response = await client.cluster.getSettings({
      include_defaults: "true",
      filter_path: "*.cluster.routing.allocation.disk.watermark.high*",
    });
    console.log(response);
    GET _cluster/settings?include_defaults&filter_path=*.cluster.routing.allocation.disk.watermark.high*

    Ответ будет выглядеть так:

    {
      "defaults": {
        "cluster": {
          "routing": {
            "allocation": {
              "disk": {
                "watermark": {
                  "high": "90%",
                  "high.max_headroom": "150GB"
                }
              }
            }
          }
        }
      }

    Вышесказанное означает, что для решения проблемы нехватки места на диске нам нужно либо снизить использование диска ниже 90%, либо иметь более 150 ГБ доступного места. Подробнее о том, как работает этот порог, читайте здесь.

  2. Следующий шаг — определить текущее использование диска. Это позволит рассчитать, сколько дополнительного места нужно. В следующем примере показаны только узлы-мастера для лучшей читаемости:

    resp = client.cat.nodes(
        v=True,
        h="name,master,node.role,disk.used_percent,disk.used,disk.avail,disk.total",
    )
    print(resp)
    response = client.cat.nodes(
      v: true,
      h: 'name,master,node.role,disk.used_percent,disk.used,disk.avail,disk.total'
    )
    puts response
    const response = await client.cat.nodes({
      v: "true",
      h: "name,master,node.role,disk.used_percent,disk.used,disk.avail,disk.total",
    });
    console.log(response);
    GET /_cat/nodes?v&h=name,master,node.role,disk.used_percent,disk.used,disk.avail,disk.total

    Ответ будет выглядеть так:

    name                master node.role disk.used_percent disk.used disk.avail disk.total
    instance-0000000000 *      m                    85.31    3.4gb     500mb       4gb
    instance-0000000001 *      m                    50.02    2.1gb     1.9gb       4gb
    instance-0000000002 *      m                    50.02    1.9gb     2.1gb       4gb
  3. Желательно снизить использование диска ниже соответствующего порога, в нашем примере 90%. Подумайте о добавлении некоторого запаса, чтобы использование не превысило порог вскоре. Если у вас несколько узлов-мастеров, необходимо убедиться, что у всех узлов-мастеров будет такая же емкость. Предполагая, что у вас готовы новые узлы, следуйте следующим трём шагам для каждого узла-мастера.
  4. Остановите один из узлов-мастеров.
  5. Запустите один из новых узлов-мастеров и подождите, пока он не присоединится к кластеру. Вы можете проверить это с помощью:

    resp = client.cat.nodes(
        v=True,
        h="name,master,node.role,disk.used_percent,disk.used,disk.avail,disk.total",
    )
    print(resp)
    response = client.cat.nodes(
      v: true,
      h: 'name,master,node.role,disk.used_percent,disk.used,disk.avail,disk.total'
    )
    puts response
    const response = await client.cat.nodes({
      v: "true",
      h: "name,master,node.role,disk.used_percent,disk.used,disk.avail,disk.total",
    });
    console.log(response);
    GET /_cat/nodes?v&h=name,master,node.role,disk.used_percent,disk.used,disk.avail,disk.total
  6. Только после подтверждения того, что ваш кластер имеет первоначальное количество узлов-мастеров, переходите к следующему, пока все первоначальные узлы-мастера не будут заменены.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/fix-master-node-out-of-disk.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API