applies to:Azure SQL Managed Instance
本文可帮助你确定Azure SQL Managed Instance的相应子网大小和 IP 地址范围。
概述
Azure SQL 托管实例由托管在专用隔离虚拟机集上的服务组件组成,这些组件被安置在由虚拟群集托管的一个或多个虚拟机(VM)组中,并部署在 Azure 虚拟网络中。
与虚拟网络中的单个子网关联的虚拟群集可以托管一个或多个 SQL 托管实例。 可以在子网中部署的实例数取决于该子网的大小(子网范围)。
创建 SQL 托管实例时,Azure根据所选的服务层分配虚拟机数。 由于这些虚拟机与子网关联,因此它们需要 IP 地址。 Azure可以分配更多虚拟机,以确保在常规作和服务维护期间实现高可用性。 子网中所需的 IP 地址数通常大于该子网中的 SQL 托管实例数。
确定子网大小
仔细规划 SQL 托管实例部署的子网大小。
根据设计,每个 SQL 托管实例在一个子网中至少需要 32 个 IP 地址。 定义子网 IP 范围时,可以使用最小子网掩码 /27。
确定子网大小时,可以参考以下考虑因素列表:
- 实例相关的注意事项:
- SQL 托管实例数
- 实例的服务级别
- 虚拟群集相关的注意事项:
- 硬件配置
- 维护窗口配置
- 管理操作相关的注意事项:
- 计划增加/减少或更改服务层、硬件配置或维护时段
可借助以下参数进行计算:
- Azure在子网中使用五个 IP 地址以满足自己的需求。
- 每个 VM 组 分配更多的 8 个地址。
- 每个 SQL 托管实例使用的地址数取决于服务层。
- 常规用途 SQL 托管实例使用三个地址
- 业务关键 SQL 托管实例使用五个地址
- 每个缩放请求会临时增加为要缩放的实例分配的地址数。
重要
当子网中存在资源时,不支持更改子网地址范围。 因此,最好使用更大的子网而不是较小的子网来防止将来的问题。
已部署的单个实例
下表显示了部署到每个服务层级的子网中单个实例所需的 IP 地址数:
| 服务层 | Azure usage1 | VM 组使用情况2 | 实例使用情况 | 区域冗余 (ZR) | 总计3 |
|---|---|---|---|---|---|
| 常规用途 | 5 | 8 | 2 | 0 | 15 |
| 业务关键 | 5 | 8 | 5 | 2 | 18(20 含 ZR) |
1 Azure使用的地址在子网中的所有实例之间共享。
VM 组使用的 2 个地址在位于同一组内的实例之间共享。
3 实例使用的地址总数。 为业务关键服务层级中的实例启用区域冗余时,会分配其他 IP 地址。
将实例添加到子网时会增加该实例使用的地址数,从而增加地址总数。
多实例子网
本部分中的公式计算子网中多个实例所需的地址数。 该公式考虑到在后续实例创建或更新请求期间创建新 VM 组的潜力,以及虚拟群集的维护时段和硬件要求。
使用以下公式,根据实例数计算 IP 地址总数:
5 + (gp * 4) + (bc * 10) + (bc_zr * 2) + (vmg * 8),其中
- gp = 常规用途实例数
- bc = 业务关键实例数
- bc_zr = 区域冗余业务关键实例数
- vmg = 不同 VM 组的数目
以下列表解释了公式中使用的数字:
- 5 是Azure保留的 IP 地址数
- 每个常规用途实例 4 个地址(2 个用于初始部署,2 个用于最终缩放作)
- 每个业务关键实例 10 个地址(5 个用于初始部署,5 个用于最终缩放作)
- 每个 VM 组 8 个地址
重要
由于可以加入组的虚拟机数有限制,因此现有组中的空间不足可能会导致创建具有相同规范的 VM 组。 具有大量实例的子网可以具有具有相同配置的多个 VM 组,超过 9 个 VM 组。
示例 1
你计划将三个常规用途实例和两个业务关键实例部署在同一个子网中。 所有实例都具有相同的维护时段,在同一硬件配置上运行,且无区域冗余。
将这些值替换到公式中会生成以下公式: 5 + (3 * 4) + (2 * 10) + 0 + (1 * 8) = 45
由于 IP 范围以 2 的幂定义,因此为了支持 45 个 IP 地址,子网需要此部署的最低 IP 范围为 64(2^6)。 保留子网掩码为 /26 的子网。
示例 2
你计划将总共七个实例部署到同一子网、四个常规用途实例和三个业务关键实例。 三个是在标准系列硬件上运行的开发/测试实例,具有默认维护时段(VM 组 1),其余四个实例在生产环境中,在具有周末维护时段(VM 组 2)的高级系列硬件上运行。 其中两个业务关键实例具有区域冗余功能。
将这些值替换到公式中会生成以下公式: 5 + (4 * 4) + (3 * 10) + (1 * 2) + (2 * 8) = 69
由于 IP 范围以 2 的幂定义,因此为了支持 69 个 IP 地址,子网需要此部署的最低 IP 范围为 128 (2^7)。 需要保留子网掩码为 /25 的子网。
注意
尽管可以将实例部署到小于计算得出大小的子网中,但这样做可能会妨碍您添加实例或完成需要临时 IP 地址的扩展和维护作业。 若要避免服务中断,请保留比最小子网更大的子网,并计划将来的增长、其他 VM 组,以及某些作期间 IP 使用率的临时增加。
更新场景
在扩展操作期间,实例需要暂时添加 IP 容量,这取决于服务等级。
下表显示了不需要创建新的 VM 组的扩展操作所需的临时额外 IP 地址数量:
| 服务层 | 情景 | 更多地址 |
|---|---|---|
| 全科医生 | 缩放 vCores | 2 |
| 全科医生 | 扩展存储 | 0 |
| 全科医生 | 正在切换到BC系统 | 5 |
| 公元前 | 缩放 vCores | 5 |
| 公元前 | 扩展存储 | 5 |
| 公元前 | 正在切换到 GP | 2 |
导致创建新虚拟机 (VM) 组的操作(例如更改硬件版本或维护时间段)需要为新组额外分配 6 个永久地址。
相关内容
- 什么是Azure SQL Managed Instance?
- Azure SQL 托管实例的连接体系结构
- 虚拟集群架构 - Azure SQL 托管实例
为 Azure SQL Managed Instance - 在 Azure SQL 托管实例中解析专用域名