增加数据节点的磁盘容量
编辑增加数据节点的磁盘容量
编辑为了增加集群中数据节点的磁盘容量
- 登录到 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.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
或直到运行状况磁盘指示器变为绿色
。