Решение проблемы с узлами ролей, которые заполнили диск
Elasticsearch может использовать выделенные узлы для выполнения других функций помимо хранения данных или координации кластера, например, машинного обучения. Если один или несколько из этих узлов переполнены, необходимо убедиться, что у них достаточно дискового пространства для работы. Если API состояния сообщает, что узел, который не является узлом мастера и не содержит данных, переполнен, необходимо увеличить дисковое пространство этого узла.
- Войдите в консоль Elastic Cloud.
- На панели Сервис Elasticsearch нажмите на шестеренку в колонке, соответствующей имени вашей развертывания.
-
Перейдите к
Actions > Edit deployment, а затем к разделуCoordinating instancesилиMachine Learning instancesв зависимости от ролей, указанных в диагностике: - Выберите конфигурацию емкости, большую, чем предварительно выбранная, из раскрывающегося списка и нажмите
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.nodes( v=True, h="name,node.role,disk.used_percent,disk.used,disk.avail,disk.total", ) print(resp)response = client.cat.nodes( v: true, h: 'name,node.role,disk.used_percent,disk.used,disk.avail,disk.total' ) puts response
const response = await client.cat.nodes({ v: "true", h: "name,node.role,disk.used_percent,disk.used,disk.avail,disk.total", }); console.log(response);GET /_cat/nodes?v&h=name,node.role,disk.used_percent,disk.used,disk.avail,disk.total
Ответ будет выглядеть так:
name node.role disk.used_percent disk.used disk.avail disk.total instance-0000000000 l 85.31 3.4gb 500mb 4gb
- Целесообразно снизить использование дискового пространства ниже соответствующего порога, в нашем случае ниже 90%. Подумайте о добавлении некоторого запаса, чтобы вскоре не превысить порог. Предполагая, что у вас готов новый узел, добавьте этот узел в кластер.
-
Проверьте, присоединился ли новый узел к кластеру:
resp = client.cat.nodes( v=True, h="name,node.role,disk.used_percent,disk.used,disk.avail,disk.total", ) print(resp)response = client.cat.nodes( v: true, h: 'name,node.role,disk.used_percent,disk.used,disk.avail,disk.total' ) puts response
const response = await client.cat.nodes({ v: "true", h: "name,node.role,disk.used_percent,disk.used,disk.avail,disk.total", }); console.log(response);GET /_cat/nodes?v&h=name,node.role,disk.used_percent,disk.used,disk.avail,disk.total
Ответ будет выглядеть так:
name node.role disk.used_percent disk.used disk.avail disk.total instance-0000000000 l 85.31 3.4gb 500mb 4gb instance-0000000001 l 41.31 3.4gb 4.5gb 8gb
- Теперь вы можете удалить экземпляр, у которого закончилось место на диске.
© 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-other-node-out-of-disk.html