评估 Linux 上的 SQL Server - AWS 规范指引

评估 Linux 上的 SQL Server

概览

自 SQL Server 2017 开始,可以在 Linux 操作系统上安装 SQL Server。Linux 上的 SQL Server 已为企业做好准备,同时具备灵活性、高性能、安全功能、较低的 TCO、HA/DR 功能以及出色的用户体验等优势。您可以从 Windows Server 上的 SQL Server 切换到 Linux 上的 SQL Server,以节省 Windows Server 的许可费用。

对于 Linux,SQL Server 可以在 Red Hat Enterprise Linux(RHEL)、SUSE Linux Enterprise Server(SLES)、Ubuntu 和 Amazon Linux 2 上部署。SQL Server 数据库引擎在 Windows Server 和 Linux 上的运行方式是相同的,但在使用 Linux 系统时,某些任务存在一些根本性的变化。在 Linux 和 Windows 上运行 SQL Server Always On 应用程序的一个关键区别与失效转移群集有关。如果您在 Windows Server 主机上部署 Always On 可用性组,则可以利用 Windows Server 失效转移群集(WSFC)和 Active Directory 作为支持失效转移群集的内置功能。但是,WSFC 和 Active Directory 都无法在 Linux 上支持失效转移群集。如果您想启动 Linux 上的 SQL Server 的失效转移群集,您可以使用 AWS Launch Wizard 通过利用 ClusterLabs Pacemaker 来简化集群设置和 Linux 实例上的 SQL 安装。

Windows 和 Linux 上的 SQL Server 共享一个共同的代码库。也就是说,SQL Server 核心引擎根本没有任何更改即可在 Linux 上运行。SQL Server 引入了平台抽象层(SQLPAL),如下图所示。

序列服务器平台抽象层(SQLPAL)

SQLPAL 负责对 SQL Server 与底层操作系统之间的调用及通信进行抽象处理。主机扩展只是一个原生的 Linux 应用程序。低级操作系统函数是针对优化 I/O、内存和 CPU 使用情况而进行的原生调用。当主机扩展启动时,它会加载并初始化 SQLPAL,随后便会启动 SQL Server。SQLPAL 会启动独立的软件进程,这些进程会为其余的代码提供所需的转换服务。在 SQL Server 架构中新增这一层意味着,那些使 SQL Server 在 Windows 系统上表现如此强大的企业级核心功能和优势,在任何操作系统环境下都能得以实现。

成本影响

对于 r5.2xlarge 实例,在每种情况下,Windows Server 的许可费用均降低约 268 美元。与使用价格较低的 SQL Server 版本相比,此次成本削减占服务器总成本的比例更高。下表显示成本节省情况。

实例 版本 Windows 上的 SQL Server 的每月费用 Linux 上的 SQL Server 的每月费用 节省成本
r5.2xlarge Web 735 美元 466 美元 37%
r5.2xlarge Standard 1337 美元 1068 美元 20%
r5.2xlarge 企业 2826 美元 2558 美元 10%
注意

上表中的价格估算基于 us-east-1 区域的按需定价,可以直接在 AWS 定价计算器 中查看。

以一个示例场景为例,一家处于 SMB 细分领域的 ISV 客户希望在其开发环境方面节省成本。他们已经在一组 Windows 服务器上使用了 SQL Server 开发人员版。通过从使用 SQL Server 开发人员版的 Windows 切换到使用 SQL Server 开发人员版的 Linux,ISV 客户可以节省 33% 的开发工作负载费用。以下表格列出了此情景下的相关估算成本。

估算 月度成本
Windows + SQL Server 9307.72 美元
Linux + SQL Server 6218.36 美元
预估的成本节省 3089.36 美元(33%)

在另一个示例场景中,一家公司将包含许可证的 SQL Server EC2 实例从 Windows 迁移到了 Linux。该公司每年在 Windows Server 的许可费用上节省了总计 30 万美元——约占其整个 AWS 费用的 20%。

成本优化建议

我们建议您考虑以下几点:

  • 从 SQL Server 2017 开始,Linux 上的 SQL Server 受到支持。

  • 为了帮助进行切换,您可以使用适用于 Microsoft SQL Server 数据库的 Windows 到 Linux 平台更换助手。平台更换助手是一款脚本工具,能够帮助您将现有的 SQL Server 工作负载从 Windows 迁移到 Linux 操作系统。它会检查常见的不兼容性,从 Windows 主机中导出数据库,然后将这些数据库导入到在 Ubuntu 16.04 上运行 Microsoft SQL Server 2017 的 EC2 实例中。

  • 您也可以使用 SQL Server 中的备份和还原功能从 Windows 上的 SQL Server 切换到 Linux。

  • 您可以使用 AWS Launch Wizard 轻松快速地部署到 Linux 或 Ubuntu 上的 SQL Server。Launch Wizard 可以根据您的应用程序需求,在独立部署和高可用性场景下,在 Linux 或 Ubuntu 系统上部署 SQL Server。有关更多信息,请参阅 AWS 博客上的 Microsoft 工作负载中的使用 AWS Launch Wizard 部署到 Linux 上的 SQL Server Always

下图展示了采用 Microsoft SQL Server 数据库的 Windows 到 Linux 更换平台助手的解决方案架构。

Windows 到 Linux 的更换平台助手架构

其他资源