你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
确定 Azure SQL 托管实例所需的子网大小和范围
适用于:Azure SQL 托管实例
本文可帮助你确定 Azure SQL 托管实例的相应子网大小和 IP 地址范围。
概述
Azure SQL 托管实例由服务组件构成,这些组件托管在一组专用的独立虚拟机上,这些虚拟机放入由虚拟群集托管且部署在 Azure 虚拟网络中的一个或多个虚拟机组。
与虚拟网络中的单个子网关联的虚拟群集可以托管一个或多个 SQL 托管实例。 可以在子网中部署的实例数取决于该子网的大小(子网范围)。
创建 SQL 托管实例时,Azure 会根据所选的服务层级分配多台虚拟机。 由于这些虚拟机与子网关联,因此它们需要 IP 地址。 为了确保在日常操作和服务维护期间的高可用性,Azure 可能会分配额外的虚拟机。 子网中所需的 IP 地址数通常大于该子网中的 SQL 托管实例数。
确定子网大小
建议为 SQL 托管实例部署仔细规划子网大小。
根据设计,每个 SQL 托管实例在一个子网中至少需要 32 个 IP 地址。 定义子网 IP 范围时,可以使用最小子网掩码 /27。
以下列出了确定子网大小时的注意事项:
- 实例相关的注意事项:
- SQL 托管实例数
- 实例的服务层级
- 虚拟群集相关的注意事项:
- 硬件配置
- 维护时段配置
- 管理操作相关的注意事项:
- 计划增加/减少或更改服务层、硬件配置或维护时段
可借助以下参数进行计算:
- Azure 使用子网中的 5 个 IP 地址来满足自身的需要。
- 每个虚拟机组分配额外六个地址。
- 每个 SQL 托管实例使用依赖于服务层级的多个地址。
- 常规用途 SQL 托管实例使用三个地址
- 业务关键 SQL 托管实例使用五个地址
- 每个缩放请求会暂时将分配给要缩放的实例的地址数量增加一倍
重要
由于子网中存在资源时不支持更改子网地址范围,因此最好使用较大的子网而不是较小的子网,以防止将来出现问题。
单个实例部署
下表显示了部署到每个服务层级的子网中单个实例所需的 IP 地址数:
服务层 | Azure 使用情况 1 | 虚拟机组使用情况 2 | 实例使用情况 | 总计3 |
---|---|---|---|---|
常规用途 | 5 | 6 | 3 | 14 |
业务关键 | 5 | 6 | 5 | 16 |
1 Azure 使用的地址在子网中的所有实例之间共享
2 虚拟机组使用的地址在位于同一组内的实例之间共享
3 该实例使用的地址总数
将实例添加到子网时会增加该实例使用的地址数,从而增加地址总数。
多实例子网
本部分中的公式用于计算子网中多个实例所需的地址数,并考虑到在后续创建实例或更新请求期间创建新的虚拟机组的可能性,以及虚拟群集的维护时段和硬件要求。
使用以下公式,根据实例数计算 IP 地址总数:
5 + (a * 6) + (b * 10) + (c * 6)
,其中
- a = GP 实例的数量
- b = BC 实例的数量
- c = 不同的虚拟机组的数量
以下列表解释了公式中使用的数字:
- 5 表示 Azure 保留的 IP 地址数
- 每个 GP 实例保留 6 个地址(3 个用于初始部署,3 个用于最终缩放操作)
- 每个 BC 实例保留 10 个地址(5 个用于初始部署,5 个用于最终缩放操作)
- 每个虚拟机组保留 6 个地址
重要
由于可以加入组的虚拟机的数量有限制,因此现有组中的空间不足可能会导致创建具有相同规格的虚拟机组。 包含大量实例的子网可以具有配置相同的多个虚拟机组,并且虚拟机组的数量超过 9 个。
示例 1
你计划将三个常规用途实例和两个业务关键实例部署在同一个子网中。 所有实例均采用相同的维护时段,并在相同的硬件配置上运行。
将这些值插入公式中:5 + (3 * 6) + (2 * 10) + (1 * 6) = 49
由于 IP 范围定义为 2 的 N 次方,因此为了支持 49 个 IP 地址,子网要求该部署的最小 IP 范围为 64 (2^6) 个地址。 保留子网掩码为 /26 的子网。
示例 2
你计划将总共七个实例部署在同一子网中,其中四个为常规用途实例,另外三个为业务关键实例。 其中三个是在标准系列硬件上运行的开发/测试实例,采用默认维护时段(虚拟机组 1),其余四个是在高级系列硬件上运行的生产实例,采用周末维护时段(虚拟机组 2)。
将这些值插入公式中:5 + (4 * 6) + (3 * 10) + (2 * 6) = 71
由于 IP 范围定义为 2 的 N 次方,因此为了支持 71 个 IP 地址,子网要求该部署的最小 IP 范围为 128 (2^7) 个地址。 需要保留子网掩码为 /25 的子网。
注意
尽管可以将 SQL 托管实例部署到 IP 地址数少于公式建议数的子网,但请始终考虑使用更大的子网,以避免将来因缺少 IP 地址而出现问题,例如无法在子网内创建其他实例或扩展现有实例。
更新场景
在执行扩展操作期间,实例临时需要额外的 IP 容量,该容量具体取决于服务层级。
下表显示了不需要创建新虚拟机组的扩展操作临时需要的额外 IP 地址数:
服务层 | 方案 | 更多地址 |
---|---|---|
GP | 缩放 Vcore 数目 | 3 |
GP | 缩放存储 | 0 |
GP | 正在切换到 BC | 5 |
BC | 缩放 Vcore 数目 | 5 |
BC | 缩放存储 | 5 |
BC | 正在切换到 GP | 3 |
导致创建新虚拟机组的操作(例如更改硬件代次或维护时段)需要为新组提供额外的 6 个永久地址。
后续步骤
- 有关概述,请参阅什么是 Azure SQL 托管实例?。
- 详细了解 SQL 托管实例中的连接体系结构。
- 浏览托管 Azure SQL 托管实例的虚拟群集体系结构
- 了解如何创建用于部署 SQL 托管实例的虚拟网络。
- 有关 DNS 问题,请参阅解析 Azure SQL 托管实例中的专用 DNS 名称。