修复其他角色节点磁盘空间不足
编辑修复其他角色节点磁盘空间不足
编辑Elasticsearch 可以使用专用节点执行除了存储数据或协调集群之外的其他功能,例如机器学习。如果其中一个或多个节点即将耗尽磁盘空间,则需要确保它们有足够的磁盘空间才能正常运行。如果健康 API 报告一个非主节点且不包含数据的节点磁盘空间不足,则需要增加此节点的磁盘容量。
- 登录 Elastic Cloud 控制台。
- 在Elasticsearch 服务面板上,点击对应于部署名称的
管理部署
列下的齿轮。 -
转到
操作 > 编辑部署
,然后根据诊断中列出的角色转到协调实例
或机器学习实例
部分。 - 从下拉菜单中选择大于预选容量配置的容量,然后点击
保存
。等待计划应用,问题应该会得到解决。
为了增加任何其他节点的磁盘容量,您需要将耗尽磁盘空间的实例替换为具有更高磁盘容量的实例。
-
首先,检索将指示需要多少磁盘空间的磁盘阈值。相关的阈值是高水位线,可以通过以下命令检索
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%以下,或者拥有超过150GB的可用空间,更多关于此阈值的工作原理请点击此处了解。
-
下一步是找出当前的磁盘使用情况,这将有助于计算需要多少额外的空间。在下面的示例中,出于易读性考虑,我们仅显示一个机器学习节点
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
- 现在您可以删除磁盘空间不足的实例。