创建高级存储少于 1 TB 的 Azure SQL Server VM

创建高级存储少于 1 TB 的 Azure SQL Server VM

我对 Azure 还不熟悉,正在考虑设置 SQL Server。我想使用高级存储,但我不需要 1TB 的空间。数据库本身相对较小,如果需要,我可以将备份放在 HDD 上。

1TB 的价格为 P30(164 美元/月),而我实际上只需要 P10(24 美元/月)。

我尝试单击 SQL Server 设置并选择“存储配置”,但滑块已经完全向左移动,不允许我输入低于 5000 的 IOPS、96MBps 的吞吐量或 1TB 的存储。(这是在 DS2 v2 VM 上)

Azure

有没有简单/推荐的方法来实现我想要的效果?即使不是绝对必要,每月额外花费 24 美元购买 SSD 也不算什么,但每月 164 美元就有点太多了。

到目前为止,我已经研究过通过 API 调整磁盘大小,但似乎只能增加磁盘大小而不能减少磁盘大小。我还研究过创建另一个磁盘、连接它、将所有 SQL 内容移动到新驱动器并删除旧驱动器,但我是否会丢失设置工具提示中提到的任何存储优化内容?

答案1

我与 Azure 支持人员进行了交流,并通过远程会话完成了 VM 的创建。他们最终确认这是有意为之的设计。

如果您想部署具有高级存储的 SQL Server,那么您将获得(并支付)P30。他们这样做的理由是性能和优化优势。

编辑:我直接向 SQL 支持团队开了另一张票,他们提供了有关如何完成我们要求的操作的演练:

在配置时,当使用运行 SQL Server 的虚拟机的图库映像时,GUI 不允许使用任何低于当前 P30 等效值的高级磁盘。这并不完全令人惊讶,因为官方建议使用 2 个或更多 P30 磁盘(https://azure.microsoft.com/en-us/documentation/articles/virtual-machines-windows-sql-performance/)。但是,可以通过在部署后更改磁盘配置来解决此 GUI 设计问题。最好的部分是,它可以在 VM 运行时即时完成。我将向您介绍如何操作和配置存储空间对于只有几个磁盘的存储空间。

在此之前,请记住,如果每个存储空间使用超过 8 个磁盘,目前您必须以不同的方式执行(使用 PowerShell例子)。您至少应该有两个存储空间 - 一个用于数据库文件,一个用于事务日志文件。每个存储空间的磁盘都应具有相同的大小/性能级别。例如,您可能有两个存储空间,一个包含所有 P10 磁盘,另一个包含所有 P30 磁盘。您不应将 SQL Server 的存储空间与 P10/P20/P30/等混合使用。您无法在稍后将磁盘添加到存储空间并保持最佳性能,因此请提前了解您的要求。如果稍后添加磁盘,则必须重建存储空间,但这超出了我们这里的范围。拥有多个存储空间并不是一件坏事,因此您可以随时在新的存储空间中添加更多磁盘(如果您愿意)。如果您真的想要,您可以为每个数据库拥有两个或更多存储空间 - 一个或多个用于数据文件,一个用于事务日志文件。

  1. 使用 SQL Server 从库映像创建 Azure VM。在存储选项中,保留默认配置(除非您想要 P30 磁盘,然后相应增加)。注意:VM 大小决定 IO 吞吐量并且可能导致吞吐量低于磁盘配置本来可以实现的吞吐量。例如,DS3 VM 将 IO 吞吐量控制为 12,800 IOps/128MBps,但可以连接 8 个数据磁盘。这意味着即使3 个 P10 磁盘理论上可以达到 300MBps,如果连接到 DS3 机器,它们的速度将被控制在 128MBps。因此,请选择符合您的 CPU、内存和 IO 吞吐量要求的 VM 大小。

创建虚拟机

  1. 创建虚拟机后,继续连接到虚拟机。在文件资源管理器(此 PC)中,您应该看到 3 个卷 - 操作系统驱动器 (C)、临时存储 (D) 和 SQL 数据 (F)。我们将很快删除该 SQL 数据驱动器。如果您检查,您应该会看到所有系统数据库实际上都驻留在操作系统驱动器上。

  2. 如果不需要,请分离 P30 磁盘: 分离 P30 磁盘

  3. 连接您真正需要的磁盘:

    • 附加磁盘
    • 请记住 - 对于托管数据文件的磁盘,请启用读取缓存。禁用用于事务日志文件的磁盘的缓存:
      主机缓存选项
  4. 创建所需数量的磁盘后,实际上删除您不想要的磁盘(您可能对资源组/存储帐户使用了其他名称): 移除磁盘 删除磁盘 2

  5. 创建您的存储空间/卷:

    1. 在与 VM 的 RDP 会话中,打开磁盘管理控制台并初始化/联机磁盘:
      运行cmd 使磁盘联机
    2. 打开服务器管理器存储空间控制台:
      服务器管理存储空间
    3. 创建一个新的存储池。命名后,确保为添加到池中的每个磁盘的分配类型选择“手动”。
      新泳池 手动的
    4. 创建新的虚拟磁盘。确保为 OLTP 工作负载选择 64K 的交错大小,为数据仓库工作负载选择 256K 的交错大小。固定配置也是最佳选择。列数应等于池中的磁盘数:
      新建虚拟磁盘 配置 列
    5. 完成后,系统会自动弹出新卷向导。这个向导相当直观,因此我在这里省略了屏幕截图。

仅供参考,他们还表示他们正在考虑在未来做出改变。

相关内容