你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在 Azure 门户中,在具有高级 SSD v2 存储的 Azure VM 上部署 SQL Server(预览版)
本文介绍如何使用 Azure 门户,在具有高级 SSD v2 磁盘的 Azure 虚拟机 (VMs) 上部署 SQL Server。 高级 SSD v2 为需要亚毫秒级磁盘响应时间的应用程序提供高性能、低延迟和精细的可伸缩性。
注意
在 Azure 门户中,在具有高级 SSD v2 磁盘的 Azure VM 上部署 SQL Server 目前为预览版。
概述
可以使用 Azure 门户,部署具有高级 SSD v2 存储的 Ebdsv5 或 Ebsv5 系列 SQL Server VM。 高级 SSD v2 是专为 IO 密集型企业工作负载设计的新一代高级存储解决方案,这些工作负载需要亚毫秒级磁盘延迟、高 IOPS、高吞吐量和低成本。 对于云应用程序,此存储解决方案快速、灵活且经济高效。
高级 SSD v2 允许对磁盘大小、IOPS 和吞吐量进行精细控制,而无需将磁盘条带化来满足大部分性能需求。 高级 SSD v2 延迟较低,有助于解决托管缓存力图解决的一些核心问题,因此在使用高级 SSD v2 时无需缓存。 如果存储池是确保性能必不可缺的部分,则 Azure VM 上的 SQL Server 存储配置会在考虑所选虚拟机限制的情况下,通过自动创建存储池来简化存储池创建过程。
高级 SSD v2 提供以下关键功能:
- 为每个订阅的每个区域提供最多 34 TiB 的单个磁盘大小,但可以通过请求提供更大的容量。
- 最多支持 80,000 IOPS,单个磁盘的吞吐量高达 1,200 MB/s。
- 通过在条带化存储池中使用高级 SSD v2 磁盘实现超出单个磁盘限制的扩展。
- 允许自定义磁盘大小、IOPS 和吞吐量以满足特定需求。
- 在不停机的情况下动态调整性能值。
与高级 SSD 相比,高级 SSD v2 的整体成本更低、性能更高,尽管高级 SSD、高级 SSD v2 和超级磁盘之间的成本差异取决于各种因素,例如所选区域、磁盘大小、IOPS 和吞吐量。 使用 Azure 定价计算器根据特定需求估算每个磁盘类型的成本。 有关 Azure 中存储选项的全面比较,请查看磁盘类型比较。
若要使用 Azure 门户部署 SQL Server VM,并且希望使用高级 SSD v2,则当前仅限于 Ebdsv5 或 Ebsv5 系列虚拟机。 但是,如果手动创建具有高级 SSD v2 存储的 VM,然后将 SQL Server 手动安装到 VM,则可在支持高级存储的任何虚拟机上配置高级 SSD v2。 请务必将 SQL Server VM 注册到 SQL IaaS 代理扩展,以便可以利用该扩展提供的所有优势。
存储配置限制
配置高级 SSD v2 磁盘时,请考虑容量、IOPS(每秒输入/输出操作)和吞吐量之间的相关性。 增加存储容量时,IOPS 会按比例纵向扩展,而这会影响吞吐量。
将 SQL Server VM 配置为在 Azure 门户中使用高级 SSD v2 时,请使用滑块控件轻松调整和优化容量、IOPS 和吞吐量设置。 最大大小为 6 GiB 的磁盘提供免费的基线 3000 IOPS 和基线吞吐量 125 MB/s。 同样,对于作为存储池一部分的每个磁盘,将提供免费的 3,000 IOPS 和 125 MB/s,而这会影响存储池的最小值。 例如,拥有 4 个磁盘的存储池将提供免费的最低基线 12,000 IOPS。
超过 6 GiB 后,最大 IOPS 按 1 GiB 磁盘大小递增,同时最大吞吐量按配置的 IOPS 递增。 160 GiB 大小的磁盘及更大磁盘最多可配置为 80,000 IOPS 和 1,200 MB/s 吞吐量。 所有磁盘的累积配置值不应超过所选 VM 大小的最大限制。
例如,如果选择 100 GiB 磁盘,则最高可具有 50,000 IOPS,因为 100 GiB 磁盘具有 3000 + (500 * (100 - 6)) IOPS,因此要增加 IOPS,必须增加磁盘大小。
如果将 100 GiB 磁盘配置为仅使用 3,000 IOPS,则吞吐量将限制为 750 MB/s,因为大于 6 GiB 的磁盘的最大吞吐量为 0.25 MB/s,* 所配置的 IOPS 最高为 1,200 MB/s。 如需增加吞吐量,必须增加 IOPS。
下表提供了使用高级 SSD v2 时的 IOPS 大小和吞吐量规模,最大可配置值上限为:
磁盘大小 | 最大可用 IOPS | 最大可用吞吐量 (MB/s) |
---|---|---|
1 GiB 到 64 TiB | 3,000 到 80,000(每 GiB 递增 500 IOPS) | 125 到 1,200(按设置的 IOPS 递增 0.25 MB/s) |
注意
目前,高级 SSD v2 默认为每个订阅的每个区域最多提供 100 TiB,但可根据请求支持更高的容量。 若要增加容量,可联系 Azure 支持请求增加配额。
确定工作负荷要求
在使用高级 SSD v2 磁盘的 Azure VM 上部署 SQL Server 之前,请先了解应用程序的工作负载。 通过工作负载收集 IOPS 和吞吐量要求,获取数据库当前正在使用的存储大小,并将额外的 25% 添加到当前存储利用率,以留出未来的容量。 这种前瞻性方法可预测不断变化的环境需求,将灵活性和预见性纳入存储预配策略。
高级 SSD v2 磁盘速度取决于每秒可读取或写入的数据量(吞吐量),以及每秒可以读取或写入数据的次数 (IOPS)。 例如,每秒读取和写入次数较多的工作负载(例如 ERP 系统)往往需要更高的 IOPS。 这些工作负载通常涉及许多小型读取和写入操作,因此更高的 IOPS 可以帮助提高这些工作负载的性能。
由于当前无法在不拆离磁盘或解除分配 VM 的情况下调整高级 SSD v2 磁盘的存储大小,因此在 Azure VM 上预配 SQL Server 之前,必须预估大小需求。
使用以下 Windows 性能监视器 (PerfMon) 计数器来确定工作负载要求:
- IOPS
- \LogicalDisk\Disk Reads/Sec
- \LogicalDisk\Disk Writes/Sec
- 吞吐量
- \LogicalDisk\Disk Read Bytes/Sec
- \LogicalDisk\Disk Write Bytes/Sec
- “_Total”实例的存储大小
- \Databases\Data Files(s) Size (KB)
- \Databases\Log Files(s) Size (KB)
- \Databases\Log Files (s) Used Size (KB)
有关详细信息,请查看收集基线。
若要迁移至 Azure VM 上的 SQL Server,请考虑调整数据库以外的元素大小,例如 SSIS/DTS 包、任务、链接服务器、扩展事件 (XE) 会话、审核等。 这些组件可能会大大影响存储要求,因此应纳入容量计划。 有关其他迁移详细信息,请查看 Azure VM 上的 SQL Server 迁移指南
创建具有高级 SSD v2 的 SQL Server VM
将 AZURE VM 上的 SQL Server 部署到 Azure 门户中的 Ebdsv5 或 Ebsv5 虚拟机时,请使用高级 SSD v2。 为此,请按照以下步骤操作:
在 Azure 门户中,转到 Azure SQL 页面。
选择“+ 创建”以转到“选择 SQL 部署选项”页面。
在“SQL 虚拟机”下,使用下拉列表选择 SQL Server 映像,例如“免费 SQL Server 许可证:Windows Server 2022 上的 SQL Server 2022 Developer”。 选择“创建”以转到“创建虚拟机”页面。
在“基本信息”选项卡上,填写“项目详细信息”和“实例详细信息”的值。 对于“可用性选项”,选择“可用性区域”,因为它们是使用高级 SSD v2 的先决条件。
在“大小”下,选择“查看所有大小”以打开“选择 VM 大小”页面。 键入
bds_v5
或bs_v5
筛选“Ebdsv5”或“Ebsv5”系列虚拟机,这些虚拟机当前支持高级 SSD v2 和 Azure 门户中 Azure VM 上的 SQL Server。 选择符合需求的 VM 大小,然后使用“选择”导航回“创建虚拟机”页面。(可选)默认情况下,高级 SSD v2 使用基于 SCSI 的存储,但可以改为配置 NVMe 存储。 若要使用 NVMe 存储,请在“基本信息”选项卡上的“安全类型”下,从下拉列表中选择“标准”。 转到启用 NVMe 常见问题解答,详细了解 NVMe 的优势。
填写“基本信息”选项卡上的其余值,然后选择“下一步”转到以下选项卡。 将这些值保留为默认值,或根据需求进行修改。
(可选)若要使用 NVMe 存储,请在“高级”选项卡上的“性能 (NVMe)”部分中选中“使用 NVMe 提高远程磁盘存储性能”旁边的框。
在“SQL Server 设置”选项卡上的“存储配置”下,选中“使用高级 SSD v2”旁边的框,然后选择“更改配置”以打开“配置存储(预览版)”窗口。 如果检查框不可用,则说明所选 VM 大小不支持使用 SQL Server VM 的高级 SSD v2,或者尚未启用可用性区域。 返回“基本信息”选项卡,选择“查看所有大小”,然后在“选择 VM 大小”页面上选择支持的 VM 大小,或者确保已启用可用性区域。 若要使用超级磁盘或高级 SSD 磁盘,请勿选中该复选框。
在“配置存储(预览版)”窗口中,展开数据、日志和 tempdb 存储部分,然后使用滑块或在文本框中输入值来自定义磁盘大小、IOPS 和吞吐量。 如果之前启用了 NVMe,则 VM 大小名称具有 (NVMe) 后缀。
如果不使磁盘脱机,则无法修改磁盘大小。 应将额外的 25% 添加到当前存储利用率,以留出未来的容量。
选择“确定”以保存设置并关闭“配置存储”窗口。
重要
默认情况下,IOPS、吞吐量和磁盘数在 SQL Server VM 的所有驱动器之间均匀分布。 如果累积配置值超过所选 VM 大小的最大值,可能会遇到上限和性能问题。 如果配置值超出 VM 限制,则会显示黄色警告。 存储成本估算目前仅适用于即用即付 (PAYG) 订阅。 需使用 Azure 定价计算器估算其他订阅的存储成本。
更改“SQL Server 设置”和“标记”选项卡上的任何剩余设置。 选择“查看 + 创建”以查看 SQL Server VM 设置,然后选择“创建”以部署 SQL Server VM。
“部署正在进行”页面会自动打开,以便监视部署状态并导航到资源组。 还可以使用“通知”图标,检查部署进度。
调整性能值
目前只能使用 Azure CLI 或 PowerShell 对高级 SSD v2 磁盘进行性能值调整(例如 IOPS 或吞吐量)。 查看调整性能以了解详细信息。
注意
由于当前不支持在 Azure 门户中对 SQL Server VM 的高级 SSD v2 磁盘进行更改,因此 SQL 虚拟机资源的存储配置页面会显示高级 SSD v2 磁盘“不可扩展”。
如果高级 SSD v2 磁盘位于存储池中,则可使用 PowerShell 调整池中所有磁盘的 IOPS 和吞吐量。
考虑以下情况:
- 由于无法将磁盘与存储池和基础磁盘直接关联,因此必须手动进行关联。
- 为了保持容量和性能平衡,在扩展存储池时,请按池中的数字“列”进行扩展,该列定义了第一个条带集中的条带化磁盘数。 例如,如果开始时条带集中有 4 个磁盘,则会每次都会向该条带集添加 4 个磁盘。
- 即使磁盘类型已从高级 SSD 转换为高级 SSD v2,“列数”始终是存储池生命周期内的固定乘数。 例如,拥有两个 P30 的存储池的列数为
2
,如果将这两个磁盘转换为两个 P80,则列数为2
。
若要对存储池中的高级 SSD v2 磁盘进行更改,请先定义变量:
# Define the resource group and VM name
$resourceGroupName = '<resource group name>'
$vmName = '<name of the VM>' # replace with your VM name
$diskNames = @('AzureSQLVMwithPSSDv2_DataDisk_0', 'AzureSQLVMwithPSSDv2_DataDisk_1')
若要调整吞吐量,请使用以下 PowerShell 示例:
## This script updates the throughput for all the disks associated with the VM and RG:
# Get the VM
$vm = Get-AzVM -ResourceGroupName $resourceGroupName -Name $vmName
# Get all the disks attached to the VM
$disks = $vm.StorageProfile.DataDisks
# Loop through each disk and update the throughput
foreach ($disk in $disks) {
# Update the disk
$diskUpdateConfig = New-AzDiskUpdateConfig -DiskMBpsReadWrite 550
Update-AzDisk -ResourceGroupName $resourceGroupName -DiskName $disk.Name -DiskUpdate $diskUpdateConfig
}
# Confirm the update
foreach ($disk in $disks) {
# Get the updated disk
$updatedDisk = Get-AzDisk -ResourceGroupName $resourceGroupName -DiskName $disk.Name
# Output the updated IOPS
Write-Output ("Disk '{0}' throughput: {1}" -f $updatedDisk.Name, $updatedDisk.DiskMBpsReadWrite)
}
若要调整 IOPS,请使用以下 PowerShell 示例:
## This script updates the IOPS for a set list of the disks associated with a RG:
# Loop through each disk and update the IOPS
foreach ($diskName in $diskNames) {
# Get the disk
$disk = Get-AzDisk -ResourceGroupName $resourceGroupName -DiskName $diskName
# Update the disk
$diskUpdateConfig = New-AzDiskUpdateConfig -DiskIOPSReadWrite 5000
Update-AzDisk -ResourceGroupName $resourceGroupName -Disk $disk -DiskUpdate $diskUpdateConfig
}
# Confirm the update
foreach ($diskName in $diskNames) {
# Get the updated disk
$updatedDisk = Get-AzDisk -ResourceGroupName $resourceGroupName -DiskName $diskName
# Output the updated IOPS
Write-Output ("Disk '{0}' IOPS: {1}" -f $updatedDisk.Name, $updatedDisk.DiskIOPSReadWrite)
}
限制
在 Azure 门户中的 Azure VM 上部署 SQL Server 时,高级 SSD v2 仅:
- 适用于“新”SQL Server VM。 现有 SQL Server VM 无法将其存储更改为高级 SSD v2。
- 在 Ebdsv5 和 Ebsv5 虚拟机系列上受支持。
- 使用 Azure 门户部署 SQL Server VM 时可用。 使用 Azure CLI 或 PowerShell 部署 SQL Server VM 时,高级 SSD v2 当前不可用。
- 可在预配期间使用Azure 门户进行配置。 若要在预配 SQL Server VM 后进行更改,请使用 Azure CLI 或 PowerShell。 查看调整性能以了解详细信息。
- 作为唯一的存储解决方案受支持。 不支持将高级 SSD v2 与高级 SSD、超级磁盘和其他托管存储解决方案混合使用。
- Azure 门户中“创建虚拟机”页面的“配置存储(预览版)”窗口中的“存储成本估算”目前仅适用于即用即付 (PAYG) 订阅。 需使用 Azure 定价计算器估算其他订阅的存储成本。
以下限制适用于高级 SSD v2:
- 高级 SSD v2 可用于任何启用了高级存储的虚拟机大小。 导航到所需的虚拟机 (VM) 大小文章,以确定对高级存储的支持。
- 高级 SSD v2 磁盘不能用作 OS 磁盘。
- 高级 SSD v2 磁盘不能与 Azure Compute Gallery 一起使用。
- 目前,高级 SSD v2 磁盘仅在特定区域提供。
- 高级 SSD v2 磁盘只能附加到区域 VM。 创建新的 VM 或虚拟机规模集时,请在将高级 SSD v2 磁盘添加到配置之前指定所需的可用性区域。
- 目前不支持使用存储在另一个 Microsoft Entra ID 租户中的 Azure Key Vault,通过客户管理的密钥加密高级 SSD v2 磁盘。
- 宿主端加密在高级 SSD v2 磁盘上受支持,但存在一些限制。 有关详细信息,请参阅宿主端加密。
- 对于具有高级 SSD v2 磁盘的 VM,不支持 Azure 磁盘加密(通过 BitLocker/DM-Crypt 进行的来宾 VM 加密)。 建议使用平台管理的或客户管理的密钥进行静态加密,高级 SSD v2 支持此功能。
- 目前,高级 SSD v2 磁盘无法附加到可用性集中的 VM。
- 具有高级 SSD v2 磁盘的 VM 不支持 Azure Site Recovery。
- 高级 SSDv2 不支持主机缓存。
注意
高级 SSD v2 当前在特定区域中可用。