增加数据节点的磁盘容量
编辑增加数据节点的磁盘容量
编辑为了增加集群中数据节点的磁盘容量
- 登录 Elastic Cloud 控制台。
- 在 Elasticsearch 服务 面板中,点击对应于部署名称的
管理部署
列下的齿轮。 -
如果自动扩展可用但未启用,请启用它。您可以点击如下所示横幅上的
启用自动扩展
按钮来实现。或者您可以进入
操作 > 编辑部署
,选中自动扩展
复选框,然后点击页面底部的保存
。 -
如果自动扩展成功,集群应恢复到
健康
状态。如果集群仍然磁盘空间不足,请检查自动扩展是否已达到其限制。您将通过以下横幅收到通知或者您可以进入
操作 > 编辑部署
并查找如下所示的标签LIMIT REACHED
如果您看到横幅,请点击
更新自动扩展设置
以进入编辑
页面。否则,您已在编辑
页面中,点击编辑设置
以增加自动扩展限制。执行更改后,点击页面底部的保存
。
为了增加集群中的数据节点容量,您需要计算所需的额外磁盘空间量。
-
首先,检索相关的磁盘阈值,这些阈值将指示应有多少空间可用。相关的阈值是除冻结层之外的所有层的 高水位线 以及冻结层的 冻结洪水阶段水位线。以下示例演示了热层中的磁盘短缺,因此我们只检索高水位线
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.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
状态,或磁盘健康指示器变为绿色
。