说明用于在 Azure 中部署 SQL Server 的 IaaS 选项
很多应用程序都要求使用运行 SQL Server 的 VM。 要使用此选项的一些原因包括:
旧版本的 SQL Server - 如果某应用程序要求使用旧版本的 SQL Server 来获取供应商支持,那么对这些应用程序来说,在 VM 中运行就是最好的选择,因为这使得应用程序能获得该供应商的支持。
使用其他 SQL Server 服务 - 虽然 Analysis Services 用作 PaaS 产品/服务,而在一定程度上 Integration Services(通过使用 Azure 数据工厂)也用作此类产品/服务,但很多用户会在数据库引擎所在的计算机上运行 SQL Server Analysis Services、Integration Services 或 Reporting Services,来最大程度地利用自己的许可。
常规应用程序不兼容 - 这一点原因有些笼统。 例如,Azure SQL 数据库不支持跨数据库查询,而托管实例却支持。 某些应用程序可能要求额外的服务以与 PaaS 产品/服务不兼容的方式与数据库实例共存。
借助基础结构即服务 (IaaS),管理员可通过底层基础结构的特定设置获取更精细的访问权限,而不是通过其他 Azure 产品/服务获取这种权限。 虽然由 Azure 平台来管理基础服务器和网络硬件,但你仍有权访问虚拟存储、虚拟网络配置,以及你可能在虚拟机中安装的任何其他软件。 这包括 Microsoft SQL Server。
上图显示了与其他 Azure SQL 产品/服务相比,使用 IaaS 时获得的掌控力更大。 虽然不同服务产品之间的具体配置选项有所不同,但在 SaaS 产品/服务中,管理员通常只负责用户安全,可能也会负责数据管理。 使用 PaaS 服务时,操作系统 (OS) 和其他软件由云提供商进行管理。 Azure 数据库平台就是一个很好的例子。在该平台上,操作系统和 RDBMS 由 Microsoft 进行安装和配置,让你能够快速开始构建数据库应用程序。 IaaS 解决方案是非常开放的;由你负责 OS 修补,还有网络和存储选项的优化配置。 使用 IaaS 部署时,软件配置也由你负责。
对于在 Azure 中运行的 IaaS 解决方案,Microsoft 将管理操作系统下的任何资源,包括物理服务器、存储和物理网络。 数据库管理员负责配置正在操作系统上运行的 SQL Server 实例。
你的某些应用程序可能不适用于其他 Azure 产品/服务(例如 Azure SQL 数据库),这是因为它们要求特定操作条件。 这些情况可能包括将 SQL Server 和 Windows 版本进行特定组合来获取供应商支持,或者需要随附 SQL Server 安装额外的软件。 与 Azure IaaS 平台搭配的 SQL Server 为很多组织提供了所需的控制选项,无论是 CLR 或复制等特定功能,还是要使用 Active Directory(而不是 Microsoft Entra ID)身份验证。 另一要求是,一些应用程序随附 SQL Server 安装软件,这要求直接访问基础操作系统。 PaaS 模型不支持直接访问 OS。 这些组织及其应用程序可获得移到云服务的好处,又不丢失其组织所需的关键功能。
SQL Server IaaS 代理扩展
从 Azure 市场部署 SQL Server VM 时,会安装 IaaS 代理扩展。
扩展是部署后在 VM 上执行的代码,通常是为了在部署后进行配置。 例如,安装防病毒功能或安装 Windows 功能。 SQL Server IaaS 代理扩展提供以下主要功能,有助于降低你的管理开销。
- 自动备份
- 自动修补
- Azure 密钥保管库集成
- Defender for Cloud 门户集成
- 在门户中查看磁盘使用情况
- 灵活许可
- 灵活的发行版本/产品版本
- SQL 最佳做法评估
除了这些功能外,还可通过扩展来查看 SQL Server 配置和存储利用率的相关信息。
SQL Server 许可模型
关于在使用 Azure IaaS 产品/服务时如何对 SQL Server 进行许可,有下面几种不同的选项。
如果你没有参与 Microsoft 软件保障 (SA) 计划,那么你可从 Azure 市场部署映像,包括预配置的 SQL Server 和按分钟数付费使用 SQL Server。 此选项被称为即用即付模型,SQL Server 许可证的费用包含在虚拟机费用中。
如果你在参与 Microsoft 软件保障 (SA) 计划,那么在如何对 SQL Server 进行许可方面,你拥有更大的灵活性:
你可采用之前的方法,从 Azure 市场部署一个包含 SQL Server 的虚拟机映像来按分钟数付费
在部署没有包含预配置的 SQL Server 实例的虚拟机时,你可使用自带许可 (BYOL)。 如果你已为本地基础结构购买了有效的 SQL Server 许可证,那么可使用此选项。 此许可证可应用于虚拟机来确保你获得适当许可。 你必须在实现虚拟机后 10 天内,使用许可移动性验证表向 Microsoft 报告你的许可证使用情况。
选择此方法时,可通过你已获得的媒体手动安装 SQL Server,也可选择将虚拟机映像上传到 Azure 中。
除了适合 SQL Server 的灵活许可选项外,还有 Windows Server 许可选项可供你使用。 这些 Windows Server 选项被称作 Azure 混合权益 (AHB)。 与应用你已购买的 SQL Server 许可证类似,你能够使用你已拥有的 Windows Server 许可证。
若想节约成本,还可预留 1 年到 3 年的虚拟机。 此承诺不要求预付费,而且可按月计费。 如果你知道工作负载将持续一段时间,那么使用预留选项很有益。 可实现大幅成本节约,尤其是对较大的 VM 来说。
虚拟机系列
部署到 Azure 虚拟机时,有多个系列的虚拟机可供选择。 每个系列都是满足特定要求的内存、CPU 和存储的一个组合。 例如,计算优化系列具有更高的 CPU 与内存比。 有很多选项,因此你可选择适合预期工作负载的硬件配置。 在下面 6 个系列中,当你通过选项来选择 VM 大小时,每个系列都有不同的大小可用。相关详细信息在 Azure 门户中有详尽的描述。
常规用途 - 这些 VM 使 CPU 和内存的比例达到平衡。 这类 VM 非常适合测试和开发、中小型数据库服务器,以及具有低到中等流量的 Web 服务器。
计算优化 - 计算优化 VM 具有较高的 CPU 与内存比,很适合具有中等流量的 Web 服务器、网络设备、批处理和应用程序服务器。 这些 VM 还可支持能从基于 GPU 的 VM 中获益的机器学习工作负载。
内存优化 - 这些 VM 提供较高的内存与 CPU 比。 这些 VM 涵盖范围广泛的 CPU 和内存选项(一直到达到 4 TB RAM),非常适合大多数的数据库工作负载。
存储优化 - 存储优化 VM 提供快速本地 NVMe 存储,这种存储是暂时的。 它们非常适合 Cassandra 等横向扩展数据工作负载。 可将它们与 SQL Server 一起使用,不过由于存储是暂时的,你需要务必使用 Always On 可用性组或日志传送等功能来配置数据保护。
GPU - 带有 GPU 的 Azure VM 面向的是两种主要类型的工作负载 - 自然图形处理操作(例如视频渲染和处理),但也适合可使用 GPU 的大规模并行机器学习工作负载。
高性能计算 - 高性能计算工作负载支持可水平扩展到数千个 CPU 核心的应用程序。 这种支持是由高性能 CPU 和远程直接内存访问 (RDMA) 网络提供的,该网络在 VM 之间提供低延迟通信。
要查看每个系列中的大小调整选项,最简单的方法是访问 Azure 门户。 从“创建 VM”边栏选项卡中,可单击“选项大小”选择并查看列表。
上图只显示了一小部分的系列和可用的大小。 对于每个选项,你可查看虚拟 CPU 的数量、RAM 的数量、数据磁盘的数量、最大 IOPS、所提供的临时存储,还可查看是否支持高级存储。
有关 VM 大小最佳做法的详细信息,请参阅 Azure VM 上的 SQL Server 的最佳做法。
Azure 市场
Azure 市场实质上是一个集中位置,你可在此根据预先设计的模板创建 Azure 资源。 例如,你可点击几下鼠标,再提供一些基本信息(比如虚拟机名称和一些 SQL Server 配置信息),在 Windows Server 2019 上快速地创建 SQL Server 2019 实例。 一旦提供,Azure 资源管理器就会开始创建虚拟机,几分钟内虚拟机就能启动并运行。
Azure 市场中 Windows Server 2019 上的 SQL Server 2019 边栏选项卡如下所示。 通过此边栏选项卡,你可获得支持 OLTP 或数据仓库数据库的预设配置,还可指定存储、修补和备份选项。
使用门户来创建 Azure 资源的好处是,这个过程不能轻易重复。 然而,使用门户很容易上手,在门户中可以快速地启动和运行资源。
SQL Server 配置
将 SQL Server 预配到 Azure 虚拟机时,还可以配置特定的 SQL Server 设置,例如安全性与网络、SQL 身份验证首选项、SQL 实例设置和其他几个选项。 这些选项位于“SQL Server 设置”选项卡上,如下图所示。
有关创建虚拟机时可用的 SQL Server 设置的详细信息,请参阅在 Azure VM(Azure 门户)上预配 SQL Server。