你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure Arc 优化对本地和多云环境中的 SQL Server 实例的管理

Azure
Azure Arc
Azure Kubernetes 服务 (AKS)
Azure 资源管理器
Azure SQL 托管实例

本参考体系结构介绍了如何使用 Azure Arc 在本地和多云环境中管理、维护和监视 SQL Server 实例。

体系结构

Diagram illustrating different scenarios that leverage Azure Arc to optimize administration of SQL Server instances residing on-premises or hosted by third-party cloud providers. The first group of scenarios consists of SQL Server instances running on physical servers or virtual machines. The second group of scenarios comprises on-premises, third-party cloud hosted Kubernetes clusters, or Azure Kubernetes Service clusters running on Azure Stack HCI, with Azure Arc data controller serving as an intermediary management layer. All of these scenarios offer integration with a range of Azure services, such as Azure Monitor and Log Analytics, Azure Policy, Microsoft Defender for Cloud, and Microsoft Sentinel.

下载此体系结构的 Visio 文件

组件

该体系结构包括以下组件和功能:

  • SQL Server。 此数据平台提供了各种开发语言、数据类型、本地或云环境以及操作系统选择。
  • Azure Arc。这是一项基于云的服务,它将基于 Azure 资源管理器的管理模型扩展到非 Azure 资源,包括虚拟机 (VM)、Kubernetes 群集和容器化数据库。
  • 已启用 Azure Arc 的服务器。 使用此混合服务,可以管理企业网络或其他云提供商中托管在 Azure 外部的 Windows 和 Linux 计算机。 此功能类似于管理本机 Azure VM 的方式。
  • 已启用 Azure Arc 的 SQL Server。 已启用 Azure Arc 的服务器上的此部分将 Azure 服务扩展到 SQL Server 实例,这些实例托管在 Azure 外部的客户数据中心、边缘或多云环境中。
  • Kubernetes。 这是一种可移植且可扩展的开放源代码平台,用于管理和编排容器化工作负载。
  • Azure Kubernetes 服务。 此服务可在 Azure 中轻松地部署托管的 Kubernetes 群集。
  • Azure Stack HCI (20H2)。 这是一种超融合基础设施 (HCI) 群集解决方案,它在混合的本地环境中托管虚拟化的 Windows 和 Linux 操作系统 (OS) 工作负载及其存储。 群集包含 2 到 16 个物理节点。
  • Azure Stack HCI 上的 Azure Kubernetes 服务。 这是一种 AKS 实现,可大规模自动运行容器化应用程序。
  • 已启用 Azure Arc 的 Kubernetes。 此混合服务可用于简化 Azure 内外部的 Kubernetes 群集的部署和管理。
  • 已启用 Azure Arc 的数据服务。 借助此混合服务,可以使用 Kubernetes 和你选择的基础结构在本地、边缘和公有云环境中运行 Azure 数据服务。
  • Azure SQL 托管实例。 这种可缩放的智能云数据库服务将最强的 SQL Server 数据库引擎兼容性与完全托管且经久不衰的平台即服务 (PAAS) 的所有优势相结合。
  • 已启用 Azure Arc 的 SQL 托管实例。 可以在所选用于托管已启用 Azure Arc 的数据服务的基础结构上创建此 Azure SQL 数据服务。
  • Azure 资源管理器。 Azure 资源管理器是 Azure 的部署和管理服务。 它提供了一个管理层,用于在 Azure 帐户中创建、更新和删除资源。 部署后,请使用访问控制、锁和标记等管理功能来保护和组织资源。
  • Azure Monitor。 此基于云的服务通过提供用于收集、分析和处理来自 Azure 和非 Azure 位置的遥测数据的综合解决方案,将应用程序和服务的可用性和性能最大化。
  • Log Analytics。 这是 Azure 门户中用于编写日志查询并以交互方式分析其结果的主要工具。
  • Microsoft Sentinel。 这是可缩放的云原生安全信息事件管理 (SIEM) 和安全业务流程自动响应 (SOAR) 解决方案。
  • Microsoft Defender for Cloud。 这是一个统一的基础结构安全管理系统,可增强数据中心的安全态势,并跨混合工作负载提供高级威胁防护。
  • Azure 备份。 Azure 备份服务提供简单、安全且经济高效的解决方案来备份数据,并从 Microsoft Azure 云恢复数据。

方案详细信息

此体系结构的典型用途包括:

  • 使用 Azure Monitor 评估已启用 Azure Arc 的 SQL Server 配置、可用性、性能和合规性。
  • 使用 Microsoft Defender for Cloud 和 Microsoft Sentinel 检测并修正针对已启用 Azure Arc 的 SQL Server 的安全威胁。
  • 在本地和多云环境中自动部署和管理已启用 Azure Arc 的 Kubernetes SQL 托管实例。
  • 在 Azure Stack HCI 上的 Azure Kubernetes 服务 (AKS) 上自动部署和管理已启用 Azure Arc 的 SQL 托管实例。

建议

以下建议适用于大多数方案。 除非有优先于这些建议的特定要求,否则请遵循这些建议。

通过使用 Azure 服务,评估、监视和优化已启用 Azure Arc 的 SQL Server 实例的性能、可用​​性、合规性和安全性

如果没有一致、统一的操作和管理模型,管理 SQL Server 的各个实例可能会导致大量开销成本。 如果没有一套合适的工具,则需要先进的技能并不断努力才能识别和维护高性能、可复原和安全的 SQL Server 配置。 随着业务技术环境的发展和越来越复杂化,多个 SQL Server 实例在跨本地数据中心、多个公有云和私有云以及边缘的不同硬件上运行,因此解决这些挑战尤为重要。

可以使用已启用 Azure Arc 的 SQL Server 实例,这些实例托管在 Azure 外部的物理计算机和虚拟机上,并将用于运行 Windows 或 Linux 操作系统以及本地安装的 Connected Machine Agent。 将 SQL Server 实例注册到 Azure 时,该代理会自动安装。 Azure Arc 使用代理在非 Azure 资源和 Azure 之间建立逻辑连接。 建立此连接后,非 Azure 资源将自动成为混合 Azure 资源,并包含自身的标识和 Azure 资源管理器资源 ID。 Azure 资源管理器充当管理界面,使你可以创建、修改和删除 Azure 资源。 在 Arc 启用非 Azure 资源后,你可以使用 Azure 资源管理器来促进其他 Azure 服务的实现,从而增强 SQL Server 实例的可管理性。

注意

安装 Azure Connected Machine Agent 也是实现已启用 Azure Arc 的服务器的一部分。 实际上,在已启用 Azure Arc 的服务器上实现已启用 Azure Arc 的 SQL Server 时,无需安装它。

满足已启用 Azure Arc 的 SQL Server 的所有先决条件(包括安装 Log Analytics 代理)后,你可以选择自动使用以下 Azure 功能:

  • 已启用 Azure Arc 的 SQL Server 的按需 SQL 评估。 评估依赖于 Log Analytics 代理来收集相关数据并将其上传到所指定的 Log Analytics 工作区。 将日志上传到工作区后,SQL Server 评估 Log Analytics 解决方案将管理数据分析,并允许你直接在 Azure 门户中查看其结果。 只要适用,该解决方案还会提供有关潜在改进的建议。 分析结果分为四类:评估质量、安全性和合规性、可用性和连续性以及性能和可伸缩性。 Log Analytics 代理定期扫描更新,并自动将它们上传到 Log Analytics 工作区,确保查看的结果是最新的。

注意

Log Analytics 代理通常称为 Microsoft Monitoring Agent (MMA)。

  • 适用于已启用 Azure Arc 的 SQL Server 的高级数据安全性。 此功能有助于检测并修正已启用 Azure Arc 的 SQL Server 实例的安全异常和威胁。 与按需 SQL 评估一样,要启用已启用 Azure Arc 的 SQL Server,需要在托管 SQL Server 实例的服务器上安装 Log Analytics 代理。 还必须启用 Microsoft Defender for Cloud 的 Microsoft Defender for Cloud 功能,以便自动定义数据收集的范围并对其进行分析。 可以在 Microsoft Defender for Cloud 中查看此分析的结果,并在加入 Microsoft Sentinel 后,根据此结果直接在 Azure 门户中进一步调查安全警报。

在本地和多云环境中自动部署和管理已启用 Azure Arc 的 SQL 托管实例

已启用 Azure Arc 的 SQL 托管实例将成为在已启用 Azure Arc 的数据服务上运行的容器化部署。 若要托管部署,可以使用以下选项:

  • 已启用 Azure Arc 的 Kubernetes 群集上的已启用 Azure Arc 的数据服务。 已启用 Azure Arc 的 Kubernetes 支持在虚拟或物理服务器上托管在云或本地环境中的各种 Kubernetes 分发。
  • 托管在本地物理 Azure Stack HCI 群集上的 AKS 群集上的已启用 Azure Arc 的数据服务。

这两个选项都支持等效 SQL Server 相关功能,因为这些功能依赖于已启用 Azure Arc 的数据服务层。 但是,使用 Azure Stack HCI 时,应实现 AKS,因为它可以简化 Kubernetes 基础结构及其工作负载的实现和管理。

已启用 Azure Arc 的 SQL 托管实例与最新的 SQL Server 数据库引擎几乎 100% 兼容。 这有助于以最少的应用程序和数据库更改直接迁移到已启用 Azure Arc 的数据服务。

已启用 Azure Arc 的 SQL 托管实例依赖 Azure Arc 数据控制器来建立和维护与 Azure 资源管理器控制平面的逻辑连接。 此数据控制器将成为在本地 Kubernetes 或 AKS 群集中运行的一组 Pod。 Pod 协调 SQL 托管实例的管理和操作任务,例如预配和取消预配、自动故障转移、更新、缩放、备份和还原以及监视。

规划已启用 Azure Arc 的数据服务时,需要确定数据控制器是在以下哪种连接模式下运行:直接连接或间接连接。 你的决定对管理功能和发送到 Azure 的数据量具有重要影响。 如果已启用 Azure Arc 的数据服务直接连接到 Azure,则可以使用基于标准 Azure 资源管理器的接口和工具来管理它们,包括 Azure 门户、Azure 命令行接口 (Azure CLI) 或 Azure 资源管理器模板。 如果已启用 Azure Arc 的数据服务间接连接到 Azure,则 Azure 门户提供的清单为只读模式。 同样,如果要为已启用 Azure Arc 的数据服务提供对 Microsoft Entra ID、Azure 基于角色的访问控制 (Azure RBAC) 的支持,或者将它们与 Azure 服务(如 Microsoft Defender for Cloud、Azure Monitor 或 Azure 备份)集成,则需要使用直接连接模式。

注意

间接连接这种连接模式需要每月至少一次将最少量的数据传送到 Azure 以用于盘存和计费目的。

虽然间接连接模式提供的功能更少,但它可以适应一系列阻止使用直接连接模式的场景。 例如,这适用于由于业务或法规要求或担心外部攻击或数据泄露而阻止直接的外部连接的本地数据中心。 它还支持边缘站点位置,这些位置与 Internet 的连接有限或没有直接连接。

已启用 Azure Arc 的 SQL 托管实例的常见功能集包括:

  • 支持自动更新。 Microsoft 经常通过 Microsoft 容器注册表 (MCR) 提供已启用 Azure Arc 的数据服务的更新。 这包括提供修补程序和新功能,并提供与 Azure 托管数据服务类似的体验。 但是,可以控制部署计划和节奏。
  • 弹性缩放。 基于容器的体系结构本质上支持弹性缩放,其限制取决于基础结构的容量。 此功能可以满足具有不稳定的需求的突发情况,包括需要以亚秒级响应时间实时引入和查询任意规模数据的情况。
  • 自助式预配。 使用基于 Kubernetes 的编排,可以使用图形界面或 Azure CLI 工具在几秒内预配数据库。
  • 灵活的监视和管理。 使用已启用 Azure Arc 的 SQL 托管实例,可以从 Kubernetes API 收集和分析日志和遥测数据,并使用 Kibana 和 Grafana 仪表板实现本地监视。 还可使用许多标准 SQL Server 管理工具(包括 Azure Data Studio 和 Azure CLI)以及 Kubernetes 管理工具(例如 Helm 和 kubectl)来预配和管理已启用 Azure Arc 的 SQL 托管实例。

此外,由于已启用 Azure Arc 的 SQL 托管实例在已启用 Azure Arc 的 Kubernetes 或 Azure Stack HCI 上的 AKS 上运行,你还可以使用它们的管理、安全性和合规性功能,包括:

注意

验证你打算在生产环境中使用的 Azure Arc 功能是否已正式发布。

注意事项

Microsoft Azure 架构良好的框架是此参考体系结构中遵循的一组指导原则。 以下注意事项是在这些原则的背景下提出的。

成本优化

成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述

  • Azure Arc 有助于最大限度地减少甚至消除对本地管理和监视系统的需求,从而降低操作复杂性和成本,尤其是在大型、多样化和分布式环境中。 这有助于抵消与 Azure Arc 相关服务相关的额外成本。 例如,已启用 Azure Arc 的 SQL Server 实例的高级数据安全性需要 Microsoft Defender for Cloud 的 Microsoft Defender for Cloud 功能,这对定价有影响
  • 使用已启用 Azure Arc 的 SQL 托管实例容器化 SQL Server 环境有助于提高工作负载的密度和移动性。 这有助于更有效地利用硬件,从而最大限度地提高投资回报率 (ROI) 并降低运营成本,从而有助于加快数据中心整合计划。

卓越运营

卓越运营涵盖了部署应用程序并使其在生产环境中保持运行的运营流程。 有关详细信息,请参阅卓越运营支柱概述

性能效率

性能效率是指工作负载能够以高效的方式扩展以满足用户对它的需求。 有关详细信息,请参阅性能效率要素概述

  • 已启用 Azure Arc 的 SQL 托管实例将代码库与最新的稳定版 SQL Server 共享,从而为同一组高可用性和性能功能提供支持。

  • 在计划部署启用了 Azure Arc 的 SQL 托管实例时,应确定运行 Azure Arc 数据控制器和预期的 SQL 托管实例服务器组所需的正确计算量、内存和存储量。 但是,请注意,可通过添加额外的计算节点或存储来灵活扩展底层 Kubernetes 或 AKS 群集的容量。

  • Kubernetes 或 AKS 提供基于虚拟化堆栈和硬件的抽象层。 存储类实现了这样的存储抽象。 预配 pod 时,需要确定要用于其卷的存储类。 从性能的角度来看,你的决定很重要,因为不正确的选择可能会导致性能不佳。 在计划部署启用了 Azure Arc 的 SQL 托管实例时,你应该考虑影响数据控制器数据库实例的存储配置 kubernetes-storage-class-factors 的一系列因素。

可靠性

可靠性可确保应用程序符合你对客户的承诺。 有关详细信息,请参阅可靠性支柱概述

  • 使用已启用 Azure Arc 的 SQL 托管实例时,从数据复原能力的角度来看,存储规划也至关重要。 如果发生硬件故障,则不正确的选择可能导致数据全部丢失。 若要避免此类风险,应考虑一系列影响数据控制器数据库实例存储配置 kubernetes-storage-class-factors 的因素。

  • 借助已启用 Azure Arc 的 SQL 托管实例,可以在单 Pod 或多 Pod 模式下部署单个数据库。 例如,开发人员或常规用途定价层实现单 Pod 模式,而高度可用业务关键定价层实现多 Pod 模式。 高度可用的 Azure SQL 托管实例使用 Always On 可用性组,以同步或异步方式将数据从一个实例复制到另一个实例。

  • 已启用 Azure Arc 的 SQL 托管实例将代码库与最新的稳定版 SQL Server 共享,从而为大多数高可用性功能提供支持。

  • 已启用 Azure Arc 的 SQL 托管实例提供自动本地备份,而不考虑连接模式。 在直接连接模式下,还可以选择应用 Azure 备份进行站点外长期备份保留。

安全性

安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅安全性支柱概述

  • 已启用 Azure Arc 的 SQL 托管实例将代码库与最新的稳定版 SQL Server 共享,从而为同一组安全功能提供支持。

  • 在直接连接模式下使用已启用 Azure Arc 的 SQL 托管实例时,应向数据控制器提供对 MCR 的直接访问,以便自动升级和修补。 或者,可选择从 MCR 导入容器映像,并在数据控制器可访问的本地专用容器注册表中使用这些映像。

  • Azure Connected Machine Agent 使用传输层安全性 (TLS) 协议通过 TCP 端口 443 与 Azure Arc 进行出站通信。

  • 在直接连接模式下使用已启用 Azure Arc 的 SQL 托管实例后,无需在本地数据中心外围打开任何入站端口。 数据控制器使用传输层安全性 (TLS) 协议通过 TCP 端口 443 以安全方式启动出站连接。

注意

要增强传输到 Azure 的数据的安全性,应将托管 SQL Server 实例的服务器配置为使用传输层安全性 (TLS) 1.2

后续步骤