vCore 购买模型 - Azure SQL 托管实例
适用于:Azure SQL 托管实例
本文介绍了 Azure SQL 托管实例的虚拟核心购买模型。
概述
虚拟核心 (vCore) 表示一个逻辑 CPU,使用它可以选择硬件的物理特性(例如核心数、内存和存储大小)。 基于 vCore 的购买模型提供使用单项资源的灵活性、控制度和透明度,并提供简单明了的方法将本地工作负荷要求转换到云。 此模型优化了价格,允许根据工作负荷需求来选择计算、内存和存储资源。
在基于 vCore 的购买模型中,成本取决于以下各项的选择情况和使用量:
- 服务层级
- 硬件配置
- 计算资源(vCore 数量和内存量)
- 保留的数据库存储
- 实际备份存储
Azure SQL 托管实例使用的虚拟核心 (vCore) 购买模型具有以下优势:
- 控制硬件配置,以更好地匹配工作负载的计算和内存要求。
- Azure 混合权益 (AHB) 的定价折扣。
- 为驱动计算的硬件细节提供更高的透明度,有助于规划从本地部署进行的迁移。
- 缩放粒度更高,有多个可用的计算大小。
计算
SQL 托管实例计算提供特定数量的计算资源,这些资源是独立于工作负荷活动持续预配的,针对预配的计算资源量按固定的小时价格计费。
由于在“业务关键”服务层级中自动分配了三个额外的副本,因此价格大约是“常规用途”服务层级的 2.7 倍。 同理,“业务关键”服务层的每 GB 存储价格更高,对应的是本地 SSD 存储的 IO 限制更高,延迟更低。
数据和日志存储
以下因素会影响用于数据和日志文件的存储量,并适用于“常规用途”和“业务关键”层级。
- 在“常规用途”服务层级中,
tempdb
使用本地 SSD 存储,此存储成本包含在 vCore 价格中。 - 在“业务关键”服务层级中,
tempdb
与数据和日志文件共享本地 SSD 存储,tempdb
存储成本包含在 vCore 价格中。 - SQL 托管实例的最大存储大小必须指定为 32 GB 的倍数。
重要
在这两种服务层级中,你将按照为托管实例配置的最大存储大小付费。
若要监视 SQL 托管实例的已消耗实例存储大小总计,请使用 storage_space_used_mb 指标。 若要使用 T-SQL 监视数据库中单个数据文件和日志文件的当前已分配和已用存储大小,请使用 sys.database_files 视图和 FILEPROPERTY(... , 'SpaceUsed') 函数。
备份存储
分配用于数据库备份的存储以支持 SQL 托管实例的功能。 此存储独立于数据和日志文件存储,并单独计费。
- 时间点还原 (PITR):存储消耗量取决于数据库变化率以及为备份配置的保留期。 为每个数据库配置单独的保持期时,可以为 SQL 托管实例配置 1 到 35 天的保持期。 提供与配置的最大数据大小相等的备份存储量,不收取额外费用。
- 长期保留 (LTR):可以选择将完整备份的长期保留期配置为最多 10 年。 所选配置决定了多少存储将用于 LTR 备份。
服务层
服务层级通常定义存储体系结构、空间和 I/O 限制,以及与可用性和灾难恢复相关的业务连续性选项。
Azure SQL 托管实例有两个服务层级:
- 常规用途。
- 业务关键。
有关服务层级之间的详细比较,请查看资源限制,但可使用下表获得简要概述:
类别 | 常规用途 | 业务关键 |
---|---|---|
最适用于 | 大多数业务工作负荷。 提供预算导向的、均衡且可缩放的计算和存储选项。 | 它使用多个独立副本为商业应用程序提供最高级别的故障恢复能力,并提供最高的 I/O 性能。 |
最大 vCore 数目 | 80 | 80 |
最大实例存储大小 | 16 TB | 16 TB |
每个实例最大数据库数 | 100 | 100 |
只读副本 | 0 | 1 |
可用性副本 | 备用节点有助实现高可用性 | 三个高可用性副本,1 也是只读副本 |
定价/计费 | vCore、保留存储和备份存储收费。 IOPS 不收取费用 |
vCore、保留存储和备份存储收费。 IOPS 不收取费用。 |
注意
有关服务级别协议 (SLA) 的详细信息,请参阅 Azure SQL 托管实例的 SLA。
常规用途
“常规用途”服务层级的体系结构模型基于计算和存储的分离。 此体系结构模型依赖于 Azure Blob 存储的高可用性和可靠性,旨在以透明方式复制数据库文件,并确保在发生底层基础结构故障时不会丢失数据。
下图显示了计算层和存储层已隔离的标准体系结构模型中的四个节点。
“常规用途”服务层级的体系结构模型中有两个层:
- 无状态计算层,该层运行
sqlservr.exe
进程,仅包含暂时性的缓存数据(例如 - 计划缓存、缓冲池和列存储池)。 此无状态节点由 Azure Service Fabric 操作。Service Fabric 初始化进程、控制节点运行状况,并根据需要执行到另一位置的故障转移。 - 有状态数据层:包含存储在 Azure Blob 存储中的数据库文件 (.mdf/.ldf)。 Azure Blob 存储保证任何数据库文件中的任何记录不会发生数据丢失。 Azure 存储具有内置的数据可用性/冗余,确保即使进程崩溃,也能保留日志文件中的每条记录或者数据文件中的页面。
每当升级数据库引擎或操作系统、底层基础结构的某个部件发生故障,或者在 sqlservr.exe
进程中检测到某个严重问题时,Azure Service Fabric 会将无状态进程移到另一个无状态计算节点。 发生主节点故障转移时,将有一组备用节点等待运行新的计算服务,以尽量减少故障转移时间。 Azure 存储层中的数据不受影响,数据/日志文件将附加到新初始化的进程。 默认情况下,此过程保证 99.99% 的可用性。 由于需要转换时间,加上新节点是从冷缓存启动的,可能会影响正在运行的重型工作负载造成的性能。
何时选择此服务层级
“常规用途”服务层级是 Azure SQL 托管实例中的默认服务层级,专为大多数常规工作负载而设计。 如果需要一个具有默认 SLA 且存储延迟在 5 到 10 毫秒之间的完全托管数据库引擎,则可选择“常规用途”层级。
业务关键
“业务关键”服务层级模型基于数据库引擎进程群集。 此体系结构模型依赖于始终存在可用数据库引擎节点的仲裁,以最大限度地减少对工作负载性能的影响,即使在执行维护活动期间也是如此。 Azure 以透明方式升级和修补底层操作系统、驱动程序和 SQL Server 数据库引擎,同时尽量减少最终用户的停机时间。
在“业务关键”模型中,计算和存储在每个节点上集成。 通过在一个四节点群集的每个节点上的数据库引擎进程之间复制数据可实现高可用性,其中每个节点都使用本地附加的 SSD 作为数据存储。
SQL Server 数据库引擎进程和底层 .mdf/.ldf 文件都放置在同一个节点上,该节点在本地附加了 SSD 存储,使工作负载保持较低的延迟。 高可用性是使用类似于 SQL Server Always On 可用性组的技术来实现的。
每个实例都是由数据库引擎节点组成的群集,其中包含实例上所有数据库的副本,一个可供客户工作负载访问的主数据库,三个包含数据副本的辅助数据库,已做好故障转移准备。 主节点不断地将更改推送到辅助节点,以确保在主节点出于任何原因失败时,可在次要副本上提供数据。
故障转移由 SQL Server 数据库引擎处理 - 一个次要副本成为主节点,并创建新的次要副本来确保群集中有足够的节点。 工作负荷自动重定向到新的主节点。
此外,业务关键群集具有内置的读取扩展功能,该功能提供免费的只读副本,用于运行不会影响主要副本上的工作负载性能的只读查询(例如报告)。
何时选择此服务层级
“业务关键”服务层级专为具有以下特点的应用程序而设计:需要来自基础 SSD 存储的低延迟响应(平均 1-2 毫秒)、在底层基础结构发生故障时需要更快速的恢复或需要将报告、分析和只读查询分流到主数据库的免费可读次要副本。
选择“业务关键”服务层级而不是“常规用途”层级的主要原因包括:
- 低 I/O 延迟要求 - 需要存储层快速做出响应(平均 1-2 毫秒)的工作负载应使用“业务关键”层级。
- 工作负载包含可重定向到免费辅助只读副本的报告和分析查询。
- 提高复原能力,并在故障后更快地恢复。 发生系统故障时,主实例上的数据库将处于脱机状态,某个次要副本将立即成为新的读写主实例,该实例随时可以处理查询。 数据库引擎不需要分析和重做日志文件中的事务,也不需要将数据加载到内存缓冲区中。
- 高级数据损坏防护。 由于“业务关键”层级在后台使用数据库副本,因此该服务利用镜像和可用性组提供的自动页修复来帮助缓解数据损坏。 如果副本由于数据完整性问题而无法读取某个页面,则会从另一个副本检索该页面的全新副本,并替换不可读的页面,而不会造成数据丢失或客户停机。 如果托管实例具有异地次要副本,则此功能在“常规用途”层级中可用。
- 更高的可用性 - 采用多可用性区域配置的“业务关键”层级提供区域故障复原能力和更高的可用性 SLA。
- 快速异地恢复 - 如果配置了故障转移组,针对 100% 的已部署小时,“业务关键”层级会有一个有保证的 5 秒的恢复点目标 (RPO) 和 30 秒的恢复时间目标 (RTO)。
在模板或脚本中指定服务层级时,会使用其名称提供层级。 下表适用于:
硬件 | 名称 |
---|---|
常规用途 | 常规用途 |
业务关键 | BusinessCritical |
硬件配置
vCore 模型中的硬件配置选项包括标准系列 (Gen5)、高级系列和内存优化高级系列。 硬件配置通常定义计算和内存限制,以及影响工作负载性能的其他特征。
有关硬件配置规格和限制的详细信息,请参阅硬件配置特征。
在 sys.dm_user_db_resource_governance 动态管理视图中,使用 Intel® SP-8160 (Skylake) 处理器的实例的硬件代系会显示为 Gen6,而使用 Intel® 8272CL (Cascade Lake) 的实例的硬件代系会显示为 Gen7。 高级系列和经过内存优化的高级系列硬件代系使用的 Intel® 8370C (Ice Lake) CPU 显示为 Gen8。 不管处理器是什么类型(Broadwell、Skylake 或 Cascade Lake),所有标准系列 (Gen5) 实例的资源限制都相同。
选择硬件配置
你可以在创建实例时选择硬件配置,也可以更改现有实例的硬件。
创建 SQL 托管实例时选择硬件配置
有关详细信息,请参阅创建 SQL 托管实例。
在“基本信息”选项卡上,选择“计算 + 存储”部分中的“配置数据库”链接,然后选择所需的硬件:
更改现有 SQL 托管实例的硬件
在“SQL托管实例”页面中,选择“设置”下面的“计算 + 存储”:
在“计算 + 存储”页面上,你可以使用 vCore 和存储的滑块在“硬件生成”下面更改硬件。
在模板或脚本中指定硬件参数时,通过硬件名称提供硬件。 下表适用于:
硬件 | 名称 |
---|---|
标准系列 (Gen5) | Gen5 |
高级系列 | G8IM |
内存优化高级系列 | G8IH |
SKU 名称
注意
在模板或脚本中指定硬件和服务层级时,可以单独指定,也可以提供 SKU 名称。 指定 SKU 名称时,下表适用:
SKU | 服务层级 | 硬件 |
---|---|---|
GP_Gen5 | 常规用途 | 标准系列 |
GP_G8IM | 常规用途 | 高级系列 |
GP_G8IH | 常规用途 | 高级系列内存优化 |
BC_Gen5 | 业务关键 | 标准系列 |
BC_G8IM | 业务关键 | 高级系列 |
BC_G8IH | 业务关键 | 高级系列内存优化 |
硬件可用性
标准系列 (Gen5) 和高级系列
标准系列 (Gen5) 和高级系列硬件在所有区域均可用。
内存优化高级系列硬件目前为预览版,并且区域可用性有限。 有关详细信息,请参阅 Azure SQL 托管实例资源限制。