Увеличение емкости диска узлов данных
Для увеличения емкости дисков узлов данных в вашем кластере:
- Войдите в консоль Elastic Cloud.
- На панели Сервис Elasticsearch нажмите значок шестеренки под столбцом
Manage deployment, соответствующим имени вашего развертывания. -
Если автоматическое масштабирование доступно, но не включено, включите его. Вы можете сделать это, нажав кнопку
Enable autoscalingна баннере, подобном представленному ниже:Или вы можете перейти в
Actions > Edit deployment, поставить галочкуAutoscaleи нажатьsaveвнизу страницы. -
Если автоматическое масштабирование успешно выполнено, кластер должен вернуться в состояние
healthy. Если кластер все еще испытывает недостаток места на диске, проверьте, не достигли ли пределы автоматического масштабирования. Об этом будет сообщено с помощью следующего баннера:или вы можете перейти в
Actions > Edit deploymentи найти меткуLIMIT REACHED, как показано ниже:Если вы видите баннер, нажмите
Update autoscaling settings, чтобы перейти на страницуEdit. В противном случае вы уже находитесь на страницеEdit, нажмитеEdit settings, чтобы увеличить пределы автоматического масштабирования. После внесения изменений нажмитеsaveвнизу страницы.
Для увеличения емкости узлов данных в вашем кластере вам необходимо рассчитать необходимое дополнительное дисковое пространство.
-
Сначала получите соответствующие пороговые значения диска, которые укажут, сколько места должно быть доступно. Соответствующие пороговые значения — это верхний порог для всех уровней, кроме замороженного, и порога затопления для замороженного уровня. Следующий пример демонстрирует недостаток места на диске на горячем уровне, поэтому мы получим только верхний порог:
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 ГБ доступного места, подробнее об этом пороге можно узнать здесь.
-
Следующим шагом является выяснение текущего использования диска, это укажет, сколько дополнительного места необходимо. Для простоты наш пример имеет один узел, но вы можете применить то же самое к каждому узлу, превышающему соответствующий порог.
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
-
Конфигурация верхнего порога указывает на то, что использование диска должно опуститься ниже 90%. Для этого возможно два варианта:
- добавить дополнительный узел данных в кластер (для этого требуется, чтобы в вашем кластере было более одного фрагмента), или
- расширить дисковое пространство текущего узла примерно на 20%, чтобы позволить этому узлу снизить использование до 70%. Это обеспечит достаточно места, чтобы этот узел вскоре не остался без места.
-
В случае добавления другого узла данных кластер не восстановится сразу. Может потребоваться некоторое время для перемещения фрагментов на новый узел. Вы можете отслеживать прогресс здесь:
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
|
|