本文档介绍单租户节点。如需了解如何在单租户节点上预配虚拟机,请参阅在单租户节点上预配虚拟机。
借助单独租用,您可以拥有单租户节点的独占访问权限;单租户节点是一台 Compute Engine 物理服务器,该服务器专门用于仅托管您的项目的虚拟机。使用单租户节点可以将您的虚拟机与其他项目中的虚拟机进行物理隔离,或者将您的虚拟机汇集到同一主机硬件上,如下图所示。您还可以创建单租户节点组,并指定您是否希望该节点组与其他项目还是与整个组织共享。
在单租户节点上运行的虚拟机可以使用的 Compute Engine 功能与其他虚拟机所用的相同,包括透明调度和块存储,但增加了一层硬件隔离。为了让您能够全面控制物理服务器上的虚拟机,每个单租户节点都会与支持该节点的物理服务器保持一对一的映射。
在单租户节点中,您可以在各种规模的机器类型上预配多个虚拟机,从而高效地使用专用主机硬件的底层资源。此外,如果您选择不与其他项目共享主机硬件,则可以满足需要与其他工作负载或虚拟机物理隔离的工作负载的安全性或合规性要求。如果您的工作负载仅需要暂时单独租用,您可以根据需要修改虚拟机租用。
单租户节点可以帮助您满足自带许可 (BYOL)(每个核心或每个处理器都要有许可)情况下的专用硬件要求。使用单租户节点时,您可以大致了解底层硬件,从而跟踪核心和处理器使用情况。为了跟踪此类使用情况,Compute Engine 会报告安排了虚拟机的物理服务器的 ID。然后,您可以使用 Cloud Logging 查看虚拟机的服务器历史使用情况。为优化主机硬件的使用,您可以过度使用单租户虚拟机 CPU、共享单租户节点组以及手动实时迁移虚拟机。
通过可配置的主机维护政策,您可以控制单租户节点在宿主机进行维护时的行为。您可以指定维护发生的时间,以及虚拟机是否与特定物理服务器保持亲和性,或者已移至节点组中的其他单租户节点。
工作负载注意事项
使用单租户节点可以带来以下类型的工作负载:
具有性能要求的游戏工作负载。
具有安全和合规性要求的财务或医疗保健工作负载。
具有许可要求的 Windows 工作负载。
机器学习、数据处理或图像渲染工作负载。对于这些工作负载,请考虑预留 GPU。
需要增加每秒输入/输出操作 (IOPS) 并缩短延迟时间的工作负载,或者以临时存储空间的形式缓存、处理空间或低价值数据的工作负载。对于这些工作负载,请考虑预留本地 SSD。
节点模板
节点模板是一种区域资源,用于定义节点组中每个节点的属性。通过节点模板创建节点组时,该节点模板的属性会一成不变地复制到该节点组中的每个节点。
创建节点模板时,您必须指定节点类型。您可以视需要在创建节点模板时指定节点亲和性标签。您只能在节点模板上指定节点亲和性标签。您不能在节点组上指定节点亲和性标签。
节点类型
配置节点模板时,请指定节点类型以应用于基于节点模板创建的节点组中的所有节点。单租户节点类型(由节点模板引用)指定了在使用该模板的节点组中创建的节点的 vCPU 核心和内存总量。例如,n2-node-80-640
节点类型具有 80 个 vCPU 和 640 GB 内存。
添加到单租户节点的虚拟机必须与节点模板中指定的节点类型相同。例如,n2
单租户节点类型仅与使用 n2
机器类型创建的虚拟机兼容。您可以将多个虚拟机添加到一个单租户节点,直到 vCPU 或内存总量超过该节点的容量。
使用节点模板创建节点组时,该节点组中的每个节点都会沿用该节点模板的节点类型规范。节点类型适用于节点组中的每个单独节点(而不是整个节点组中的所有节点)。因此,如果您创建了一个节点组,其中包含两个均为 n2-node-80-640
节点类型的节点,则系统会为每个节点分配 80 个 vCPU 和 640 GB 内存。
根据您的工作负载要求,您可能会在节点中放置多个运行于各种规模的机器类型上的较小虚拟机,这些机器类型包括预定义机器类型、自定义机器类型以及具有扩展内存的机器类型。如果某个节点已满载,您就无法在该节点上安排其他实例。
下表显示了可用的节点类型。如需查看可用于项目的节点类型列表,请运行 gcloud compute sole-tenancy
node-types list
命令或 nodeTypes.list
REST 请求。如需了解这些节点类型的价格,请参阅单租户节点价格。
节点类型 | 处理器 | vCPU | GB | vCPU:GB | 套接字 | 核心:套接字 | 总核心数 |
---|---|---|---|---|---|---|---|
h3-node-88-352 |
Sapphire Rapids | 88 | 352 | 1:4 | 2 | 48 | 96 |
c3d-node-360-708 |
AMD EPYC Genoa | 360 | 708 | 1:2 | 2 | 96 | 192 |
c3d-node-360-1440 |
AMD EPYC Genoa | 360 | 1440 | 1:4 | 2 | 96 | 192 |
c3d-node-360-2880 |
AMD EPYC Genoa | 360 | 2880 | 1:8 | 2 | 96 | 192 |
c3-node-176-352 |
Sapphire Rapids | 176 | 352 | 1:2 | 2 | 48 | 96 |
c3-node-176-704 |
Sapphire Rapids | 176 | 704 | 1:4 | 2 | 48 | 96 |
c3-node-176-1408 |
Sapphire Rapids | 176 | 1408 | 1:8 | 2 | 48 | 96 |
c2-node-60-240 |
Cascade Lake | 60 | 240 | 1:4 | 2 | 18 | 36 |
g2-node-96-384 |
Cascade Lake | 96 | 384 | 1:4 | 2 | 28 | 56 |
g2-node-96-432 |
Cascade Lake | 96 | 432 | 1:4.5 | 2 | 28 | 56 |
m1-node-96-1433 |
Skylake | 96 | 1433 | 1:14.9 | 2 | 28 | 56 |
m1-node-160-3844 |
Broadwell E7 | 160 | 3844 | 1:24 | 4 | 22 | 88 |
m2-node-416-11776 |
Cascade Lake | 416 | 11776 | 1:28.3 | 8 | 28 | 224 |
m3-node-128-1952 |
Ice Lake | 128 | 1952 | 1:15.25 | 2 | 36 | 72 |
m3-node-128-3904 |
Ice Lake | 128 | 3904 | 1:30.5 | 2 | 36 | 72 |
n1-node-96-624 |
Skylake | 96 | 624 | 1:6.5 | 2 | 28 | 56 |
n2-node-80-640 |
Cascade Lake | 80 | 640 | 1:8 | 2 | 24 | 48 |
n2-node-128-864 |
Ice Lake | 128 | 864 | 1:6.75 | 2 | 36 | 72 |
n2d-node-224-896 |
AMD EPYC Rome | 224 | 896 | 1:4 | 2 | 64 | 128 |
n2d-node-224-1792 |
AMD EPYC Milan | 224 | 1792 | 1:8 | 2 | 64 | 128 |
所有节点都让您可以安排不同形状的虚拟机。节点 n
类型是通用节点,您可以在这些节点上安排自定义机器类型虚拟机。如需有关选择哪种节点类型的建议,请参阅针对机器类型的建议。如需了解性能,请参阅 CPU 平台。
节点组和虚拟机预配
单租户节点模板定义了节点组的属性;在 Google Cloud 地区中创建节点组之前,您必须先创建节点模板。创建节点组时,请指定节点组上的虚拟机的主机维护政策、节点组的节点数,以及该节点组与其他项目还是与整个组织共享。
一个节点组可以有零个或更多节点;例如,如果您不需要在某个节点组中的节点上运行任何虚拟机,则可以将该节点组中的节点数量减少到零,或者您可以启用节点组自动扩缩程序来自动管理该节点组的大小。
在单租户节点上预配虚拟机之前,您必须先创建单租户节点组。节点组是特定地区中的同类单租户节点集合。节点组可以包含在各种规模的机器类型(只要机器类型具有两个或更多 vCPU 即可)上运行的多个虚拟机。
创建节点组时,请启用自动扩缩功能,以便自动调整节点组的大小以满足工作负载的需求。如果工作负载需求固定不变,则您可以手动指定节点组的大小。
创建节点组后,您可以在该节点组或该节点组中的特定节点上预配虚拟机。如需进一步加强控制,请使用节点亲和性标签在具有匹配的亲和性标签的任何节点上安排虚拟机。
在节点组上预配虚拟机并选择性地分配亲和性标签(以便在特定节点组或节点上预配虚拟机)后,请考虑为资源添加标签以帮助管理虚拟机。标签是键值对,可帮助您对虚拟机进行分类,以便您出于结算等原因汇总查看这些虚拟机。例如,您可以使用标签来标记虚拟机的角色、其租用、许可类型或其位置。
主机维护政策
根据您的许可场景和工作负载,您可能希望限制虚拟机使用的物理核心数量。您选择的主机维护政策可能取决于某些因素(例如您的许可或合规性要求),或者您可能希望选择允许您对物理服务器的使用进行限制的政策。对于所有这些维护政策,您的虚拟机都会保留在专用硬件上。
在单租户节点上安排虚拟机时,您可以从以下三项不同的主机维护政策选项中进行选择,以便确定 Compute Engine 在主机事件期间(大约每 4 到 6 周进行一次)如何以及是否实时迁移虚拟机。在维护期间,Compute Engine 会将主机上的所有虚拟机作为一个组实时迁移到其他单租户节点,但在某些情况下,Compute Engine 可能会将虚拟机分成较小的组,并实时迁移每个较小的虚拟机组来分隔单租户节点。
默认主机维护政策
这是默认主机维护政策,使用此政策配置的节点组上的虚拟机遵循非单租户虚拟机的传统维护行为。也就是说,根据虚拟机宿主机的宿主机维护时设置,虚拟机会在宿主机维护事件发生之前实时迁移到节点组中的新单租户节点,并且此新单租户节点仅运行客户的虚拟机。
此政策最适合需要在主机事件期间进行实时迁移的基于用户或基于设备的许可。此设置不会将虚拟机迁移限制在固定的一组物理服务器内,我们建议您将此设置用于对物理服务器没有要求并且不需要现有许可的常规工作负载。
由于使用此政策时虚拟机会实时迁移到任何服务器而不考虑现有服务器亲和性,因此此政策不适合在主机事件期间需要最大限度减少物理核心使用量的场景。
下图展示了默认主机维护政策的动画。
重启就地主机维护政策
使用此主机维护政策时,Compute Engine 会在主机事件期间停止虚拟机,然后在主机事件完成后在同一物理服务器上重启虚拟机。使用此政策时,您必须将虚拟机的宿主机维护时设置设为 TERMINATE
。
此政策最适合以下情况:具有容错性并且在主机事件期间可能遇到大约一小时停机的工作负载、必须保留在同一物理服务器上的工作负载、不需要实时迁移的工作负载,或者您的许可基于物理核心或处理器的数量。
使用此政策时,可以使用 node-name
、node-group-name
或节点亲和性标签将实例分配给节点组。
下图展示了就地重新启动维护政策的动画。
在节点组主机内迁移政策
使用此主机维护政策时,Compute Engine 会在主机事件期间实时迁移固定大小物理服务器组中的虚拟机,这有助于限制虚拟机使用的唯一物理服务器的数量。
此政策最适合具备基于物理核心或处理器数量的许可的高可用性工作负载,原因是使用此主机维护政策时,节点组中的每个单租户节点都会固定到固定的一组物理服务器,这与允许虚拟机迁移到任何服务器的默认政策不同。
为了确保实时迁移的容量,Compute Engine 会为您预留的 20 个节点预留 1 个受限节点。下表显示了 Compute Engine 保留的受限节点数量(取决于您为节点组预留的节点数)。
节点组中的节点总数 | 为实时迁移预留的受限节点 |
---|---|
1 | 不适用。必须至少预留 2 个节点。 |
2 至 20 | 1 |
21 至 40 | 2 |
41 至 60 | 3 |
61 至 80 | 4 |
81 至 100 | 5 |
使用此政策时,每个实例都必须使用 node-group-name
亲和性标签来定位单个节点组,并且不能分配给任何特定节点 node-name
。在发生主机事件时,您必须执行此操作才能让 Compute Engine 将虚拟机实时迁移到受限节点。请注意,虚拟机可以使用任何自定义节点亲和性标签,只要为这些虚拟机分配 node-group-name
而不是 node-name
即可。
下图展示了在节点组内迁移主机维护政策的动画。
维护期
如果您正在管理工作负载(例如,经过微调的数据库可能对实时迁移可能受到的影响),您可以确定维护操作于何时开始单租户节点组,只需在创建节点组时指定维护期即可。 创建节点组后,您便无法修改维护窗口。
维护期是 4 小时的时间段,可用于指定 Google 何时对单租户虚拟机执行维护。维护事件发生频率是大约每 4 周到每 6 周一次。
维护期适用于单租户节点组中的所有虚拟机,并且仅在维护开始时指定。维护窗口不能保证在维护期内完成,无法保证维护频率发生。具有在节点组内迁移主机维护政策的节点组不支持维护窗口。
模拟主机维护事件
您可以模拟主机维护事件,以测试单租户节点上运行的工作负载在主机维护事件期间的行为。这样一来,您就可以查看单租户虚拟机的主机维护政策对虚拟机上运行的应用的效果。
主机错误
当主机(单租户或多租户)上发生罕见的关键硬件故障时,Compute Engine 会执行以下操作:
停用物理服务器及其唯一标识符。
撤消项目对物理服务器的访问权限。
将发生故障的硬件替换为具有新的唯一标识符的新物理服务器。
将虚拟机从发生故障的硬件移动到替换节点。
如果您将受影响的虚拟机配置为自动重启,则重启这些虚拟机。
节点亲和性和反亲和性
单租户节点可以确保您的虚拟机不会与其他项目中的虚拟机共享主机,除非您使用共享单租户节点组。使用共享单租户节点组时,组织中的其他项目可以在同一主机上预配虚拟机。不过,您可能仍希望将多个工作负载汇集到同一单租户节点上,或者将您的工作负载彼此隔离到不同节点上。例如,为了帮助满足某些合规性要求,您可能需要使用亲和性标签将敏感工作负载与非敏感工作负载隔开。
创建虚拟机时,您可以通过指定节点亲和性或反亲和性来请求单独租用,并引用一个或多个节点亲和性标签。您可以在创建节点模板时指定自定义节点亲和性标签;Compute Engine 会自动在每个节点上添加一些默认的亲和性标签。通过在创建虚拟机时指定亲和性,您可以在一个节点组中的一个特定节点或多个节点上一起安排多个虚拟机。通过在创建虚拟机时指定反亲和性,您可以确保某些虚拟机不会一起安排在一个节点组中的同一节点或多个节点上。
节点亲和性标签是分配给节点的键值对,并且继承自节点模板。借助亲和性标签,您可以:
- 控制系统将各个虚拟机实例分配给节点的方式。
- 控制系统如何将基于模板创建的虚拟机实例(例如由托管实例组创建的虚拟机实例)分配给节点。
- 将敏感虚拟机实例汇集到特定节点或节点组,与其他虚拟机分开。
默认亲和性标签
Compute Engine 会为每个节点分配以下默认亲和性标签:
- 用于节点组名称的标签:
- 键:
compute.googleapis.com/node-group-name
- 值:节点组的名称。
- 键:
- 用于节点名称的标签:
- 键:
compute.googleapis.com/node-name
- 值:单个节点的名称。
- 键:
- 用于共享节点组的项目的标签:
- 键:
compute.googleapis.com/projects
- 值:包含节点组的项目的 ID。
- 键:
自定义亲和性标签
您可以在创建节点模板时创建自定义节点亲和性标签。这些亲和性标签会分配给基于节点模板创建的节点组中的所有节点。创建节点组后,您无法向该节点组中的节点添加更多自定义亲和性标签。
如需了解如何使用亲和性标签,请参阅配置节点亲和性。
价格
为了帮助您最大限度地降低单租户节点的费用,Compute Engine 提供了承诺使用折扣和持续使用折扣。此外,由于您已经为单租户节点的 vCPU 和内存付费,因此您不需要为单租户节点上的虚拟机支付额外费用。
如果您为单租户节点挂接 GPU 或本地 SSD,则需要为预配的每个节点中的所有 GPU 或本地 SSD 付费。单租户附加费不适用于 GPU 或本地 SSD。
可用情况
单租户节点可以在部分可用区使用。如需确保高可用性,请在不同可用区的单租户节点上安排虚拟机。
在单租户节点上使用 GPU 或本地 SSD 之前,请确保预留资源的可用区中有足够的 GPU 或本地 SSD 配额。
Compute Engine 支持在支持 GPU 的可用区中的
n1
和g2
单租户节点类型上使用 GPU。下表显示了可以挂接到n1
和g2
节点的 GPU 类型以及创建节点模板时必须挂接的 GPU 数量。GPU 类型 GPU 数量 单租户节点类型 NVIDIA L4 8 g2
NVIDIA P100 4 n1
NVIDIA P4 4 n1
NVIDIA T4 4 n1
NVIDIA V100 8 n1
Compute Engine 支持在支持本地 SSD 的可用区中的
n1
、n2
、n2d
和g2
单租户节点类型上使用本地 SSD。
限制
单租户虚拟机无法指定满足最低要求的 CPU 平台。
如果虚拟机指定了满足最低要求的 CPU 平台,则您无法将虚拟机迁移到单租户节点。如需将虚拟机迁移到单租户节点,请先将满足最低要求的 CPU 平台规范设为自动以将其移除,然后再更新虚拟机节点亲和性标签。
单租户节点不支持抢占式虚拟机实例。
如需了解在单租户节点上使用本地 SSD 的限制,请参阅本地 SSD 数据持久性。
如需了解使用 GPU 对实时迁移的影响,请参阅实时迁移的限制。
具有 GPU 的单租户节点不支持没有 GPU 的虚拟机。
C3 和 C3D 单租户节点不支持过度使用 CPU。
C3 单租户节点不支持在同一单租户节点上使用不同的 C3 虚拟机配置 - 例如,您不能将
c3-standard
虚拟机放在与c3-highmem
虚拟机相同的单租户节点上。您无法更新活跃节点组的维护政策。
后续步骤
了解如何创建、配置和使用单租户节点。
了解如何过度使用单租户虚拟机上的 CPU。
了解如何自带许可。