华为云弹性伸缩 AS 实战避坑:移除策略四选一、带宽步长三档与多规格配置的正确用法
# 前言
弹性伸缩(Auto Scaling,简称 AS)是华为云上控制成本与保障可用性的核心服务。但在实际配置中,很多人对几个关键参数的理解停留在"差不多"的层面,等到线上出现实例被误删、带宽扩容幅度不符合预期、或者伸缩配置选错规格时才回头排查。
本文结合华为云官方文档,把 AS 最容易踩坑的三组参数——**实例移除策略**、**带宽步长**、**伸缩配置的多规格与实例规格**——逐一讲清楚,并补充几个与 ECS、镜像服务容易混淆的相邻知识点。
---
## 一、实例移除策略:不是两种,而是四种
弹性伸缩组缩容时,需要决定"删掉哪台实例"。很多同学以为只有"删最早的"和"删最晚的"两种,实际上华为云 AS 提供了**四种**移除策略:
| 策略 | 含义 | 典型场景 |
| --- | --- | --- |
| 较早创建的实例 | 按实例创建时间升序,优先移除创建时间最早的 | 无状态服务,希望保留较新的实例 |
| 较晚创建的实例 | 按实例创建时间降序,优先移除创建时间最晚的 | 扩容后快速回收多余实例,保留已经"跑熟"的老实例 |
| 较早创建的配置中较早创建的实例 | 先按伸缩配置的新旧排序,再在该配置内按创建时间升序移除 | 多配置并存,希望优先回收旧配置产生的实例 |
| 较早创建的配置中较晚创建的实例 | 先按伸缩配置排序,再在该配置内按创建时间降序移除 | 多配置并存,希望保留旧配置中稳定运行较久的实例 |
### 为什么第三、四种策略容易被忽略
当伸缩组**只使用过一个伸缩配置**时,第三、四种策略退化成与第一、二种等价,所以很多人从未感知到它们的存在。只有当伸缩组历史中**更换过多次伸缩配置**时,这两种策略才有意义:
- 如果你把伸缩配置从 `config-v1` 升级到 `config-v2`(例如换了新的镜像或实例规格),那么"较早创建的配置"指的就是 `config-v1` 产生的那批实例。
- 选择"较早创建的配置中较早创建的实例",会让系统在缩容时**优先回收 v1 的实例**,从而把流量自然迁移到 v2 的实例上。这是一个非常优雅的**滚动替换**手段,不需要额外的发布系统。
### 实践建议
1. **无状态 Web 服务**:选"较晚创建的实例",缩容时优先回收最近扩容出来的实例,保留已经建立连接、本地缓存预热完成的实例。
2. **配置升级过渡期**:选"较早创建的配置中较早创建的实例",让旧配置实例自然退出。
3. **有状态服务慎用 AS**:无论哪种策略,AS 移除实例都是**释放资源**,不会做优雅下线的数据迁移。有状态场景建议配合生命周期挂钩(Lifecycle Hook)或改用其他方案。
---
## 二、带宽步长:只有三档,而且是"台阶"不是"线性"
给伸缩组配置带宽时,很多人误以为可以按任意粒度(比如每次扩 10 Mbit/s)调整。实际上华为云 AS 的**带宽步长是按当前带宽所在的区间决定的,只有三档**:
| 当前带宽区间 | 步长 |
| --- | --- |
| ≤ 300 Mbit/s | 1 Mbit/s |
| 300 Mbit/s ~ 1000 Mbit/s | 50 Mbit/s |
| > 1000 Mbit/s | 500 Mbit/s |
### 容易踩的坑
1. **没有 2000 Mbit/s 这一档**。有些资料里提到"大于 2000 Mbit/s 时步长为 1000 Mbit/s",这是错误的。实际只有上表三档,超过 1000 Mbit/s 之后的步长固定为 500 Mbit/s。
2. **步长是台阶式的,不是连续的**。以当前带宽 100 Mbit/s 为例,此时步长为 1 Mbit/s,你可以精确地扩到 101 Mbit/s;但当带宽增长到 300 Mbit/s 以上时,步长会突然变成 50 Mbit/s,此时**最小调整粒度就是 50 Mbit/s**,无法再做 1 Mbit/s 级别的微调。
3. **缩容同样受步长约束**。缩容时按同样的步长档位回落,如果带宽已经超过 1000 Mbit/s,一次缩容动作就会减少 500 Mbit/s,对成本和流量曲线的影响不小,做容量规划时要提前算进去。
### 实践建议
- **控制带宽规模在区间内**:如果你的业务带宽需求在 300 Mbit/s 上下波动,建议通过预估把基线控制在 300 Mbit/s 以下,以获得 1 Mbit/s 的精细调节能力。
- **配合告警阈值设计**:云监控的告警阈值应该按步长档位来设,避免出现"告警触发了但伸缩动作幅度远超需要"的情况。
- **成本敏感业务**:带宽一旦超过 1000 Mbit/s,单次伸缩的成本跳动会很明显,建议改用更平滑的扩容策略(如定时扩容 + 告警扩容组合)。
---
## 三、伸缩配置:一个配置里可以放多个实例规格
这是另一个高频误解:不少人认为"一个伸缩配置只能指定一种实例规格"。实际上华为云 AS 的伸缩配置**支持配置多个实例规格**,一个伸缩配置内**最多可以包含 10 个实例规格**。
### 为什么这很重要
多规格配置 + 竞价实例/可用区组合,是提升扩容成功率和降低成本的关键手段:
1. **规避规格库存不足**。单一规格在某个可用区可能临时售罄,配置了多个规格后,AS 会自动在备选规格中选择可用的,大幅提升扩容成功率。
2. **成本优化**。可以把多种同等算力的规格(例如不同代的通用型实例)放进同一个配置,让 AS 优先选择成本更低的。
3. **平滑代际迁移**。新旧两代实例规格可以同时存在于一个配置中,配合移除策略实现自然过渡。
### 配置建议
- 放入同一配置的多个规格应满足**算力与内存规格相近**,避免因规格差异过大导致业务表现不一致。
- 最多 10 个,不要贪多,规格过多会增加调度复杂度和排查难度。
- 如果使用了 GPU 型实例,注意变更规格的限制(见下一节)。
---
## 四、相邻知识点:几个同样容易搞错的 ECS / 镜像概念
### 4.1 ECS 变更规格:普通场景不需要关机
ECS 变更规格在**普通场景下支持在线变更,不需要关机**。但有一个重要例外:
> **GPU 加速型实例仅支持变更至同类型规格内的细分规格。**
也就是说,GPU 型 ECS 不能随意跨类型变更(例如从 GPU 型变更为非 GPU 型),只能在同一 GPU 规格族内部调整细分规格。此外,"如果之前规格没有 GPU,可以通过变更为拥有 GPU 规格的类型"这个说法也是**不成立**的——变更规格不支持这种跨类型升级。
### 4.2 ECS 数据盘数量上限:23 块
一台 ECS **最多可以挂载 23 块数据盘**。做存储规划时这是硬上限,超过后需要考虑改用文件存储(SFS)或对象存储(OBS)。
### 4.3 重置密码:离线重置要重启才生效
- **在线重置密码**:立即生效。
- **离线重置密码**:对运行中的实例,需要**重启后新密码才生效**。
排查"改了密码但登不上"的问题时,先确认用的是哪种重置方式。
### 4.4 BMS 裸金属服务器:四种网络类型全支持
BMS 支持以下**四种**网络类型,实际配置时不要漏掉后三种:
1. 虚拟私有云(VPC)
2. 高速网络
3. 自定义 VLAN 网络
4. IB 网络(InfiniBand)
### 4.5 IMS 整机镜像的来源
整机镜像的来源包括:
- 云服务器
- 云服务器备份
- 云备份
**不包括 ISO 镜像文件**。很多人把 ISO 注册为镜像的流程和整机镜像混为一谈,这两者是不同的镜像类型,能力和使用场景都不一样。
另外关于私有镜像共享:只有通过 ECS 或 CBR(云备份)创建的**整机镜像**可以共享,系统盘镜像和数据盘镜像同样支持共享,共享上限为 **128 个用户**。
---
## 总结
把本文的关键结论浓缩成一张清单:
| 知识点 | 正确结论 |
| --- | --- |
| AS 实例移除策略 | 共 **4 种**(含两种按伸缩配置排序的策略) |
| AS 带宽步长 | **3 档**:≤300→1;300~1000→50;>1000→500(单位 Mbit/s) |
| AS 伸缩配置实例规格 | 支持**多规格**,一个配置最多 **10 个** |
| ECS 变更规格 | 普通场景**不需关机**;GPU 型仅支持同类型内细分规格变更 |
| ECS 数据盘上限 | **23 块** |
| ECS 离线重置密码 | 运行中实例需**重启后**生效 |
| BMS 网络类型 | **4 种**全支持(VPC / 高速网络 / 自定义 VLAN / IB) |
| IMS 整机镜像源 | 云服务器 / 云服务器备份 / 云备份(**不含 ISO**) |
这些参数看起来细碎,但每一个都直接对应线上可能出现的问题。建议在创建伸缩组之前,先把移除策略和带宽步长这两个参数按业务特性定下来,而不是一路使用默认值。
---
> 本文基于华为云官方文档整理,参数以控制台实际可选值为准;如后续产品能力更新,请以最新文档为准。
- 点赞
- 收藏
- 关注作者
评论(0)