修复磁盘空间不足的主节点
编辑修复磁盘空间不足的主节点
编辑Elasticsearch 使用主节点来协调集群。如果主节点或任何符合主节点资格的节点磁盘空间不足,您需要确保它们有足够的磁盘空间来运行。如果健康 API 报告您的主节点磁盘空间不足,您需要增加主节点的磁盘容量。
- 登录到Elastic Cloud 控制台。
- 在 Elasticsearch Service 面板上,点击与您的部署名称对应的
管理部署
列下的齿轮图标。 -
转到
操作 > 编辑部署
,然后转到主节点实例
部分 - 从下拉菜单中选择一个比预选容量更大的配置,然后单击
保存
。等待计划应用,问题应该会得到解决。
为了增加主节点的磁盘容量,您需要将所有主节点替换为具有更高磁盘容量的主节点。
-
首先,检索指示需要多少磁盘空间的磁盘阈值。相关的阈值是高水位线,可以通过以下命令检索
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,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
- 期望的情况是将磁盘使用率降至相关阈值以下,在我们的示例中为 90%。考虑添加一些填充,使其不会很快超过阈值。如果您有多个主节点,则需要确保所有主节点都具有此容量。假设您已准备好新节点,请对每个主节点执行以下三个步骤。
- 关闭其中一个主节点。
-
启动一个新的主节点,并等待它加入集群。您可以通过以下方式检查
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
- 仅在您确认集群具有初始数量的主节点后,才能继续下一个节点,直到替换完所有初始主节点。