使用单租户节点运行虚拟机工作负载的最佳做法


在计划在单租户节点上运行虚拟机工作负载时,必须先确定如何部署单租户节点。特别是,您必须确定所需的节点组数量以及节点组应使用的维护政策:

  • 节点组:要选择适当数量的节点组,您必须权衡可用性和资源利用率。虽然少量节点组可让您优化资源利用率和费用,但它会限制您使用单个地区。跨多个区域部署节点组可以提高可用性,但可以降低资源利用率。

  • 自动扩缩和维护政策:根据您计划运行的操作系统和软件的许可要求,节点自动扩缩以及您对维护政策的选择可能会影响您的许可费用和可用性。

有关如何使用单租户节点的正确决策,您必须仔细考虑您的要求。

评估要求

以下部分列出了在确定所需的节点组数量以及节点组应使用的维护政策之前应考虑的几个要求。

BYOL 和按核心的许可

如果您打算向 Compute Engine 自带许可 (BYOL),单租户节点可以帮助您满足这些许可施加的硬件要求或限制。

某些软件和操作系统(例如 Windows Server)可以经过物理 CPU 核心许可,并且可以定义您允许更改底层虚拟机硬件的频率限制。节点自动扩缩和默认维护政策可能导致硬件的更改频率超出许可条款所允许的数量,从而产生额外的许可费用。

要针对每核心 BYOL 进行优化,请考虑以下最佳做法:

  • 在优化基础架构费用和许可费用之间取得平衡:要计算在 Compute Engine 上运行 BYOL 工作负载的总费用,您必须考虑基础架构费用和许可费用。在某些情况下,最大限度地降低基础架构费用可能会增加许可开销,反之亦然。例如,对于某些工作负载而言,使用具有大量核心的节点类型可能是最佳成本/性能角度,但如果许可按核心定价,则可能会导致额外的许可费用。

  • 为 BYOL 和非 BYOL 工作负载使用单独的节点组:如需限制需要许可的核心数量,请避免在单个节点组中混用 BYOL 和非 BYOL 工作负载请改用单独的节点组。

    如果您使用多个不同的 BYOL 许可模式(例如 Windows Server Datacenter 和 Standard),则按许可模式拆分节点组有助于简化许可跟踪并降低许可费用。

  • 使用具有高核心/内存比率的 CPU 过度使用和节点类型:节点类型在插座、核心和内存之间比率不同。使用具有更高核心(内存比率和启用 CPU 过度使用功能)的节点类型有助于减少需要许可的核心数量。

  • 避免缩减节点组自动扩缩可让您根据当前需求自动扩大或缩小节点组。节点组频繁增长和缩减意味着您经常更改虚拟机运行的硬件。

    如果您更频繁地更改硬件,可以在物理机器之间移动许可,则这些硬件更改可能会导致您获得实际使用的更多核心的许可。

    如果对物理机器之间的移动频率存在限制,则可以通过停用自动扩缩或将自动扩缩配置为仅横向扩容来避免过多许可费用。

  • 请勿使用默认维护政策:您可以通过默认维护政策优化虚拟机可用性,但可能会导致频繁更改硬件。如需最大限度地减少硬件更改并优化许可费用,请改用在节点组维护期间迁移就地重启政策。

对于不需要按核心许可的工作负载,请考虑以下最佳做法:

管理

如果您有多个工作负载,或者既有开发工作负载和生产工作负载需要在单租户节点上运行,请考虑以下最佳实践:

  • 为开发和生产环境使用单独的节点组:使用单独的节点组可帮助您将环境与其他环境隔离,并避免以下情况:

    • 开发虚拟机过度消耗 CPU、磁盘或网络资源(“相邻用户争用”)可能会影响生产虚拟机的性能。
    • 开发工作负载可能会耗尽节点组的容量,导致无法创建新的生产虚拟机。
  • 限制每个环境中的节点组数量:如果运行多个节点组,则很难充分利用每个节点组。要优化利用率,请组合每个环境的工作负载并将其安排在少量节点组上。

  • 使用专用项目来管理节点组:对于每个环境,请创建一个专用项目来管理节点组。然后,与包含工作负载的项目共享节点组

    此方法可让您为每个工作负载使用单独的项目来简化访问权限控制,同时通过跨工作负载共享节点组来优化资源利用率。

  • 与单个项目共享节点组:而不是与整个组织共享节点组,而是仅与各个项目共享节点组。单独选择项目有助于在环境之间保持分离,并避免将节点组的相关信息披露给其他项目。

  • 建立内部费用归因流程:运行节点组的费用在包含节点组的项目产生。如果您需要将此费用归因于各个项目或工作负载,请考虑跟踪单租户虚拟机的用量,并使用这些数据执行内部费用归因。

可用情况

您的工作负载在可用性要求方面可能会有所不同,并且是否可以在应用层实现高可用性,或者是否需要在基础架构层实现高可用性:

  • 聚簇应用:您的某些工作负载可能会使用复制和负载均衡等聚簇技术在应用中实现高可用性。

    此类工作负载的示例包括 Active Directory 网域控制器、SQL Server 故障切换集群实例和可用性组,或在 IIS 中运行的集群负载均衡应用。

    只要大多数虚拟机都保持可用,集群应用通常就可以维持单个虚拟机中断。

  • 非聚簇应用:您的某些工作负载可能未实现任何聚簇功能,而是要求虚拟机本身必须保持可用。

    此类工作负载的示例包括非复制的数据库服务器或有状态应用服务器。

    如需优化单个虚拟机的可用性,您需要确保虚拟机在即将发生节点维护事件时可以实时迁移

    默认维护政策在节点组内迁移维护政策支持实时迁移,但如果您使用就地维护政策重启

  • 非关键应用:批处理工作负载、开发/测试工作负载和其他优先级较低的工作负载可能没有特定的可用性要求。对于这些工作负载,如果节点虚拟机在维护期间不可用,则这些工作负载可能是可以接受的。

为了满足工作负载的可用性要求,请考虑以下最佳做法:

  • 使用不同地区或区域的节点组来部署聚簇工作负载:单租户节点和节点组是地区资源。为了防止发生区域服务中断,请在不同的区域或地区中部署多个节点组。使用节点亲和性来调度虚拟机,让您的集群应用的每个实例在不同地区或区域的不同节点上运行。

    如果两个或更多节点组使用默认或重启就地维护政策,请配置维护期,以便它们不太可能重叠。

    如果集群应用的多个实例必须在单个地区中运行,请使用反亲和性,以确保将虚拟机实例调度到不同的节点或节点组上。

  • 避免需要高可用性的非集群工作负载的就地维护政策:由于就地重启维护政策会在底层虚拟机关停虚拟机时节点需要维护,最好为运行需要高可用性的非集群工作负载的节点组使用不同的维护政策。

  • 使用代管实例组来提高工作负载的弹性和可用性:您可以使用代管式实例组来监控工作负载的运行状况,并进一步提高部署的弹性和可用性,从而根据需要自动重新创建虚拟机实例。您可以将代管实例组用于无状态有状态工作负载

性能

您的工作负载对性能波动的敏感度可能会有所不同。对于某些内部应用或测试工作负载,优化费用可能比确保全天一致的性能更重要。对于其他工作负载(例如面向外部的应用),性能可能至关重要,并且比资源利用率更重要。

要充分利用单租户节点,请考虑以下最佳做法:

  • 为性能不敏感的工作负载使用专用节点组和 CPU 过度使用功能CPU 过度使用功能可让您提高单租户节点上的虚拟机密度,并有助于降低所需的单租户节点数量。

    如需使用 CPU 过度使用功能,您必须使用支持 CPU 过度使用功能的节点类型。为节点组启用 CPU 过度使用功能会导致每个单租户节点产生额外费用。

    如果您将专用节点组用于适合 CPU 过度使用功能,并且仅为此节点组启用 CPU 过度使用功能,则 CPU 过度使用功能最具成本效益。为需要运行性能敏感型工作负载的任何节点组停用 CPU 过度使用功能。

  • 使用具有高核心的内存类型:CPU 过度使用内存比率:虽然 CPU 过度使用功能可让您在虚拟机之间共享核心,但它不会在虚拟机之间共享内存。使用每个 CPU 核心具有更多内存的节点类型有助于确保内存不会成为限制因素。

  • 为性能敏感的工作负载使用节点自动扩缩功能:如需满足对性能敏感的工作负载的不同资源需求,请将节点组配置为使用自动扩缩功能

部署模式

使用单租户节点的最佳方法取决于您的个别要求。以下部分介绍了一系列模式,您可以使用这些模式作为基础来根据自己的需求构建架构。

满足混合性能要求的多个节点组

如果您同时具有对性能敏感(例如面向客户的应用)和对性能不敏感的工作负载(例如内部应用),则可以使用多个使用不同节点类型的节点组:

满足混合性能要求的多个节点组

  • 一个节点组使用 CPU 过度使用功能,以及一个 vCPU 数量为 1:8 的节点类型。此节点组用于对性能无关的工作负载。
  • 第二个节点组使用具有 1:4 vCPU:内存比率且没有 CPU 过度使用功能的计算优化节点类型。此节点组用于性能关键型工作负载,并配置为按需扩缩。

集群按核心许可的工作负载的多地区高可用性

如果您正在运行使用按核心许可的许可的集群工作负载,并且需要最大限度地减少硬件更改,则可以通过使用具有不重叠维护期的多个节点组来平衡可用性和许可开销:

集群按核心许可的工作负载的多地区高可用性

  • 可以在不同地区或区域中部署多个节点组。
  • 所有节点组都使用重启维护政策。节点组使用不重叠的维护期,因此一次最多只能有一个节点组与维护相关服务中断。
  • 运行集群工作负载的虚拟机实例使用亲和性标签,以便将每个集群节点调度到不同区域的节点组上。

混合按核心许可的工作负载的多区域高可用性

如果您使用的是每个核心的许可,但并非所有工作负载都进行了聚簇,则您可以使用异构维护政策来扩展上一个模式:

混合按核心许可的工作负载的多区域高可用性

  • 主节点部署在 a 地区中,并运行集群和非集群工作负载。为了最大限度地减少由硬件维护引起的中断,节点组使用在节点组内迁移维护政策。
  • 一个或多个辅助节点组部署在其他地区或区域中。这些节点组使用重启维护政策,但不使用维护期重叠。
  • 运行集群工作负载的虚拟机实例使用亲和性标签,以便将每个集群节点调度到不同区域的节点组上。
  • 运行非集群工作负载的虚拟机实例使用亲和性标签,以便部署在主节点组中。

通过仅在辅助节点组上安排集群工作负载,您可以确保由重启维护政策导致的临时中断对整体可用性的影响最小。同时,仅使用主节点的在节点组内迁移维护政策来限制许可和基础架构开销。

后续步骤