Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Руководство [8.17] ›Устранение неполадок ›Устранение проблемы с узлами данных, у которых закончилось место на диске

Увеличение емкости диска узлов данных

Для увеличения емкости дисков узлов данных в вашем кластере:

  1. Войдите в консоль Elastic Cloud.
  2. На панели Сервис Elasticsearch нажмите значок шестеренки под столбцом Manage deployment, соответствующим имени вашего развертывания.
  3. Если автоматическое масштабирование доступно, но не включено, включите его. Вы можете сделать это, нажав кнопку Enable autoscaling на баннере, подобном представленному ниже:

    Autoscaling banner

    Или вы можете перейти в Actions > Edit deployment, поставить галочку Autoscale и нажать save внизу страницы.

    Enabling autoscaling
  4. Если автоматическое масштабирование успешно выполнено, кластер должен вернуться в состояние healthy. Если кластер все еще испытывает недостаток места на диске, проверьте, не достигли ли пределы автоматического масштабирования. Об этом будет сообщено с помощью следующего баннера:

    Autoscaling banner

    или вы можете перейти в Actions > Edit deployment и найти метку LIMIT REACHED, как показано ниже:

    Autoscaling limits reached

    Если вы видите баннер, нажмите Update autoscaling settings, чтобы перейти на страницу Edit. В противном случае вы уже находитесь на странице Edit, нажмите Edit settings, чтобы увеличить пределы автоматического масштабирования. После внесения изменений нажмите 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.allocation(
        v=True,
        s="disk.avail",
        h="node,disk.percent,disk.avail,disk.total,disk.used,disk.indices,shards",
    )
    print(resp)
    response = client.cat.allocation(
      v: true,
      s: 'disk.avail',
      h: 'node,disk.percent,disk.avail,disk.total,disk.used,disk.indices,shards'
    )
    puts response
    const response = await client.cat.allocation({
      v: "true",
      s: "disk.avail",
      h: "node,disk.percent,disk.avail,disk.total,disk.used,disk.indices,shards",
    });
    console.log(response);
    GET _cat/allocation?v&s=disk.avail&h=node,disk.percent,disk.avail,disk.total,disk.used,disk.indices,shards

    Ответ будет выглядеть следующим образом:

    node                disk.percent disk.avail disk.total disk.used disk.indices shards
    instance-0000000000           91     4.6gb       35gb    31.1gb       29.9gb    111
  3. Конфигурация верхнего порога указывает на то, что использование диска должно опуститься ниже 90%. Для этого возможно два варианта:

    • добавить дополнительный узел данных в кластер (для этого требуется, чтобы в вашем кластере было более одного фрагмента), или
    • расширить дисковое пространство текущего узла примерно на 20%, чтобы позволить этому узлу снизить использование до 70%. Это обеспечит достаточно места, чтобы этот узел вскоре не остался без места.
  4. В случае добавления другого узла данных кластер не восстановится сразу. Может потребоваться некоторое время для перемещения фрагментов на новый узел. Вы можете отслеживать прогресс здесь:

    resp = client.cat.shards(
        v=True,
        h="state,node",
        s="state",
    )
    print(resp)
    response = client.cat.shards(
      v: true,
      h: 'state,node',
      s: 'state'
    )
    puts response
    const response = await client.cat.shards({
      v: "true",
      h: "state,node",
      s: "state",
    });
    console.log(response);
    GET /_cat/shards?v&h=state,node&s=state

    Если в ответе состояние фрагментов — RELOCATING, это означает, что фрагменты все еще перемещаются. Подождите, пока все фрагменты не станут STARTED или пока индикатор состояния диска не станет green.

© 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/increase-capacity-data-node.html

Spec-Zone.ru

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