
# 扩容
当OpenSearch集群的数据量持续增长或内存占用过高时，集群可能无法有效应对业务负载和性能需求。此时，可以通过横向扩展方式增加节点数量和类型，或纵向扩展方式提升节点的存储容量。
表1扩容场景介绍 
| 扩容类型           | 适用场景                                                                                                                                                                                                                                                                                                                                                                                                                                                          | 变更流程                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| 增加节点数量         | 当集群的数据量持续增长或内存占用过高时，可以扩容节点数量保证集群的可用性。                                                                                                                                                                                                                                                                                                                                                                                                                         | 增加数据节点数或冷数据节点数的变更流程如下： 1. 创建新节点并修改集群配置。  2. 系统自动触发分片重平衡机制，逐步将部分数据分片迁移至新节点。  3. 分片迁移完成后，新节点将开始承接查询和索引请求。   增加Master节点数或Client节点数不涉及数据迁移。 整个扩容过程中，系统会确保每个分片至少保留可用副本，保障服务连续性，不会中断现有业务。 |
| 添加Master节点     | 随着集群的数据面业务增长，为了更有效地管理集群节点，可以动态增加Master节点，提升集群稳定性和可靠性。                                                                                                                                                                                                                                                                                                                                                                                                         | 添加节点类型的变更流程：创建新节点并修改集群配置。由于添加Master节点不涉及数据迁移，因此该变更不会中断现有业务。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| 添加Client节点     | 随着集群的数据面业务增长，为了更高效地处理高负载查询和写入请求，减轻数据节点的压力，可以动态增加Client节点，提高集群扩展性。                                                                                                                                                                                                                                                                                                                                                                                             | 添加节点类型的变更流程：创建新节点并修改集群配置。由于添加Client节点不涉及数据迁移，因此该变更不会中断现有业务。 但是，添加Client节点会改变集群访问地址，从原来的数据节点地址变更为Client节点地址，建议客户端同步修改访问地址，否则Client节点无法起作用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| 添加冷数据节点        | 随着集群数据量的持续增长，存在大量不常访问但对分析有用的历史数据，为了优化存储成本和查询性能，可以动态增加冷数据节点，用于存储历史数据。                                                                                                                                                                                                                                                                                                                                                                                          | 添加节点类型的变更流程：创建新节点并修改集群配置。由于添加冷数据节点不涉及数据迁移，因此该变更不会中断现有业务。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| 增加节点存储容量（扩容磁盘） | - 当集群的数据量持续增长，磁盘容量不够时，可以扩容节点存储容量。  - 当集群的磁盘使用率持续偏高时，可以扩容节点存储容量。   | 1. 给云硬盘EVS服务下发所有集群节点的云硬盘扩容请求。  2. 云硬盘扩容完成后，所有节点一起扩展已有磁盘卷的大小。   整个扩容过程中，不会中断现有业务。                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
#### 计费影响
如果是按需计费的集群，在扩容确认页面可以查看变更后的价格。变更完成后，集群将按照更新后的价格计费。计费规则请参见[云搜索服务价格计算器](https://www.huaweicloud.com/pricing/calculator.html#/search)。
如果是包周期的集群，在扩容确认页面会触发新的订单，可以查看价格信息。
 #### 约束限制
- 集群的节点存储容量只支持扩容不支持缩容，请基于业务量合理选择节点存储容量。
- 不支持同时扩容"节点数量"和"节点存储"。
- 集群的Master节点和Client节点的存储容量不支持扩容。
- 本地盘类型的数据节点不支持扩容节点存储容量。
- 多可用区集群添加Client节点的节点数量要求：Client节点数量≥可用区数量（双可用区的Client节点数量≥2，三可用区的Client节点数量≥3）。
- 多可用区集群添加冷数据节点的配置规则：
  - 节点数量要求：双可用区集群**要求** 冷数据节点数量≥4（即每个可用区至少2个节点）；三可用区集群**要求**冷数据节点数量≥3（即每个可用区至少1个节点）。
  
  - 性能优化：建议确保冷数据节点数量为可用区数量的整数倍，避免出现数据分布不均，影响集群的查询或写入性能。
   
- 扩容集群的节点数量时，不同节点类型的取值范围请参见[表2]。
   表2节点数量的取值说明 
  | 节点类型     | 取值范围                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  |:---|:---|
  | 数据节点     | - 集群没有Master节点时：1\~32  - 集群有Master节点时：1\~200（当数据节点与冷数据节点总数超过100时，建议选用16u及以上规格，避免CPU不足影响集群读写性能。）   |
  | Master节点 | 3、5、7、9（必须是3\~9之间的奇数）                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  | Client节点 | 1\~64                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  | 冷数据节点    | 1\~32                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
     
  
 
#### 变更影响
在扩容前，您需要了解以下关键影响和操作建议，以便合理规划变更，最小化业务影响。
扩容节点存储容量（纵向扩展）对业务没有影响，而增加节点数量或增加节点类型（横向扩展）可能产生以下影响：
- 性能影响 扩容节点不会中断业务，但是扩容过程中数据分片需要均衡到新节点以分摊负载。此过程会消耗IO性能，建议在业务低峰期执行。
  建议在业务低峰期提高数据迁移速率以缩短任务耗时，并在业务高峰期**前** 降低迁移速率以减轻对集群性能的影响。数据迁移速率由"indices.recovery.max_bytes_per_sec"参数决定，该参数值默认是"CPU核数 × 8MB"（如4核CPU默认32MB）。可根据业务需求调整。
  ```
  PUT /_cluster/settings  
  {  
    "transient": {  
      "indices.recovery.max_bytes_per_sec": "128MB"  
    }  
  }
  ```
  
- 变更过程特性 扩容任务一旦启动就无法中止，直到任务成功或失败才会结束。
  
 
#### 扩容时长
- 增加节点数量或增加节点类型（横向扩展）的时长预计为10\~30分钟，主要和集群本身的调度能力相关。
- 扩容节点存储容量（纵向扩展）的时长预计为10\~15分钟。
 
#### 前提条件
- 确认集群处于"可用"状态，且无正在进行的任务。
- 确认CSS服务有足够的配额支持变更，在形态变更页面可以查看当前可用资源。
  图1查看可用资源   
  ![](https://support.huaweicloud.com/usermanual-css/figure/zh-cn_image_0000002495832617.png "点击放大") 
 
#### 增加节点数量或节点存储容量
当集群的数据量持续增长或内存占用过高时，可以扩容节点数量或节点存储容量，提升节点的可用性和数据的持久性。
1. 登录[云搜索服务管理控制台](https://console.huaweicloud.com/elasticsearch/)。
2. 在左侧导航栏，选择"集群管理 \> OpenSearch"。
3. 在集群列表，选择目标集群，单击操作列的"更多 \> 形态变更"进入形态变更页面。
4. 选择"更改集群规格"页签。
5. 在更改集群规格页面，设置扩容参数。
   表3扩容节点数量和节点存储容量 
   | 参数    | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   |:---|:---|
   | 变更类型  | 选择"扩容"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 变更的资源 | 显示本次变更任务增加的资源。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 变更的角色 | - 在"节点类型"列选择要扩容的节点类型，每次扩容仅可选一种节点类型。  - 在"节点数量"列增加节点数量。节点数量的取值范围请参见[约束限制]。  - 在"节点存储"列增加节点存储容量。节点存储容量的取值范围由"节点规格"决定，且只支持配置为20的倍数。   不支持同时扩容"节点数量"和"节点存储"。 |
      
   图2集群扩容   
   ![](https://support.huaweicloud.com/usermanual-css/figure/zh-cn_image_0000002209905109.png "点击放大") 
6. 单击"下一步"。
7. 确认变更信息后，单击"提交申请"。
8. 单击"返回集群列表"跳转到集群列表页面。集群的"任务状态"列显示为"扩容"，表示集群正在扩容。当集群状态变为"可用"，则表示扩容成功。
 
 #### 添加节点类型
当集群本身没有独立的Master节点、Client节点或冷数据节点时，随着数据面业务增长，需要动态增加节点类型时，可以添加"Master节点"、"Client节点"或"冷数据节点"。
1. 登录[云搜索服务管理控制台](https://console.huaweicloud.com/elasticsearch/)。
2. 在左侧导航栏，选择"集群管理 \> OpenSearch"。
3. 在集群列表，选择目标集群，单击操作列的"更多 \> 形态变更"进入形态变更页面。
4. 选择"添加节点类型"页签。 当集群同时拥有Master节点、Client节点和冷数据节点时，形态变更页面将不存在"添加节点类型"页签。
   
5. 在添加节点类型页面，完成节点配置。
   表4添加节点类型 
   | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   |:---|:---|
   | 启用节点类型 | 勾选本次要添加的节点类型。 - 此处只显示集群本身不具备的节点类型。例如，当集群本身具备Master节点时，此处只有"启用Client节点"和"启用冷数据节点"两个选项。  - 一次任务只能添加一种节点类型。例如，当集群需要同时添加Master和Client节点时，需要执行两次添加节点类型任务。   |
   | 节点规格   | 根据需求选择节点规格。                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 节点数量   | 设置该节点类型的节点数量，取值范围请参见[约束限制]。                                                                                                                                                                                                                                                                                                                                              |
   | 节点存储   | 设置该节点的存储类型。 Master节点和Client节点的存储容量为40GB，且不支持修改。                                                                                                                                                                                                                                                                                                                                                                                           |
      
   图3添加节点类型   
   ![](https://support.huaweicloud.com/usermanual-css/figure/zh-cn_image_0000002489352048.png "点击放大") 
6. 单击"下一步"。
7. 确认变更信息后，单击"提交申请"。 返回集群列表页面，集群的"任务状态"列中显示为"扩容中"。当"集群状态"变为"可用"时表示节点添加成功。
   - 添加Client节点时，当"集群状态"变为"可用"后，可选择是否重启数据节点和冷数据节点，下线Cerebro和OpenSearch Dashboards进程以避免冲突。
   
   - 添加冷数据节点时，当"集群状态"变为"可用"后，必须重启数据节点以激活hot标签，从而正常使用冷数据节点功能。当冷数据节点添加成功后，需要手动将历史数据迁移到冷数据节点，操作指导请参见[配置冷热数据切换](https://support.huaweicloud.com/usermanual-css/css_01_0200.html)。
   
   
   重启操作请参见[重启集群](https://support.huaweicloud.com/usermanual-css/css_01_0286.html)。
   
 
#### 相关文档
- OpenSearch集群还支持升级节点规格和云硬盘类型。操作指导请参见[变更节点规格](https://support.huaweicloud.com/usermanual-css/css_01_0246.html)。
- 在扩容过程中，如果遇到可用区资源不足时，可以将该可用区下的节点迁移到其他资源充足的可用区，然后再新可用区扩容。操作指导请参见[可用区架构改造](https://support.huaweicloud.com/usermanual-css/css_01_0311.html)。
 
