关于本地 SSD 磁盘


如果您的工作负载需要高性能、低延迟的临时存储,请考虑在创建虚拟机时使用本地固态硬盘(本地 SSD)磁盘。本地 SSD 磁盘是 Compute Engine 虚拟机的始终加密的固态存储。

如果您需要为以下任何应用场景选择存储,那么本地 SSD 磁盘是理想的选择:

  • 用于存储临时性的低价值数据的缓存或存储
  • 用于高性能计算或数据分析的暂存处理空间
  • 临时数据存储,例如用于 Microsoft SQL Server 的 tempdb 系统数据库

Persistent DiskGoogle Cloud Hyperdisk 相比,本地 SSD 磁盘提供卓越的每秒 I/O 操作次数 (IOPS) 性能和极低的延迟。这是因为本地 SSD 磁盘以物理方式挂接到托管虚拟机的服务器。出于同样的原因,本地 SSD 磁盘只能提供临时存储

由于本地 SSD 仅适用于临时存储,因此您必须在我们的某个持久性存储方案中存储非临时性质的数据。

每个本地 SSD 磁盘都有固定大小,您可以在创建虚拟机时将多个本地 SSD 磁盘挂接到单个虚拟机。可以挂接到虚拟机的本地 SSD 磁盘的数量取决于虚拟机的机器类型。如需了解详情,请参阅选择有效的本地 SSD 磁盘数量

如果本地 SSD 磁盘不符合您的冗余或灵活性要求,您可以将本地 SSD 磁盘与其他存储方案结合使用。

性能

本地 SSD 性能取决于多种因素,包括挂接的本地 SSD 磁盘的数量、选择的磁盘接口(NVMeSCSI)以及虚拟机的机器类型。当您将更多本地 SSD 磁盘挂接到虚拟机时,可用的性能会提高。

本地 SSD 性能(按挂接的磁盘数量)

下表列出了使用 NVMe 和 SCSI 挂接的本地 SSD 磁盘的最大 IOPS 和吞吐量。指标按挂接到虚拟机的本地 SSD 磁盘的总容量列出。

NVMe 本地 SSD 性能

挂接的
本地 SSD 磁盘数量
存储空间 (TiB) 每个磁盘的容量 IOPS 吞吐量
(MB/秒)
读取 写入 读取 写入
1 0.375 375 GiB 170,000 90,000 660 350
2 0.750 375 GiB 340,000 180,000 1,320 700
3 1.125 375 GiB 510,000 270,000 1980 1,050
4 1.5 375 GiB 680,000 360,000 2,650 1,400
5 1.875 375 GiB 680,000 360,000 2,650 1,400
6 2.25 375 GiB 680,000 360,000 2,650 1,400
7 2.625 375 GiB 680,000 360,000 2,650 1,400
8 3 375 GiB 680,000 360,000 2,650 1,400
16 6 375 GiB 1,600,000 800,000 6,240 3,120
24 9 375 GiB 2,400,000 1,200,000 9,360 4,680
32 12 375 GiB 3,200,000 1,600,000 12,480 6,240
12 36 3 TiB * 6,000,000 6,000,000 36,000 30000

* 仅适用于 Z3(预览版)机器系列。

SCSI 本地 SSD 性能

本地 SSD
磁盘总数
存储空间 (TiB) IOPS 吞吐量
(MB/秒)
读取 写入 读取 写入
1 0.375 (375 GiB) 100,000 70,000 390 270
2 0.750 (750 GiB) 200,000 140,000 780 550
3 1.125 300,000 210,000 1,170 820
4 1.500 400,000 280,000 1,560 1,090
5 1.875 400,000 280,000 1,560 1,090
6 2.250 400,000 280,000 1,560 1,090
7 2.625 400,000 280,000 1,560 1,090
8 3 400,000 280,000 1,560 1,090
16 6 900,000 800,000 6,240 3,120
24 9 900,000 800,000 9,360 4,680

配置虚拟机以最大限度地提高性能

要达到上述性能水平,您必须按如下方式配置虚拟机:

  • 使用 NVMe 接口挂接本地 SSD 磁盘。使用 SCSI 接口挂接的磁盘性能较低。

  • 以下机器类型还需要最小 vCPU 数量,才能达到这些最大值:

    • N2N2DA2 机器类型至少需要 24 个 vCPU。
    • N1 机器类型至少需要 32 个 vCPU。
  • 如果您的虚拟机使用自定义 Linux 映像,则该映像必须使用 4.14.68 版或更高版本的 Linux 内核。如果您使用 Compute Engine 提供的公共映像,则无需执行任何进一步操作。

如需了解可以提高本地 SSD 性能的其他虚拟机和磁盘配置设置,请参阅优化本地 SSD 性能

如需详细了解如何选择磁盘接口,请参阅选择磁盘接口

本地 SSD 数据持久性

在某些情况下,Compute Engine 会保留本地 SSD 磁盘上的数据,而在其他情况下,Compute Engine 不保证本地 SSD 数据的持久性。

以下信息描述了这些场景,并适用于挂接到虚拟机的每个本地 SSD 磁盘。

Compute Engine 保留本地 SSD 数据的场景

只有在发生以下事件时,本地 SSD 磁盘上的数据才会保留:

Compute Engine 可能无法持久保留本地 SSD 数据的场景

如果虚拟机上发生主机错误,并且 Compute Engine 无法在指定时间内将虚拟机重新连接到本地 SSD 磁盘,则本地 SSD 磁盘上的数据可能会丢失。

您可以使用本地 SSD 恢复超时来控制尝试恢复数据所用的时间(如果有)。如果 Compute Engine 在超时之前无法重新连接到磁盘,则虚拟机会重启。虚拟机重启时,本地 SSD 数据不可恢复。Compute Engine 会将空白本地 SSD 磁盘挂接到重启的虚拟机。

本地 SSD 恢复超时是虚拟机主机维护政策的一部分。如需了解详情,请参阅本地 SSD 恢复超时

Compute Engine 不持久保留本地 SSD 数据的场景

发生以下事件时,本地 SSD 磁盘上的数据不会持久保留:

  • 关闭客机操作系统并强制停止虚拟机。
  • 将虚拟机配置为可抢占,并且虚拟机会经过抢占过程。
  • 将虚拟机配置为在发生主机维护事件时停止,并且该虚拟机经历主机维护事件。
  • 错误配置本地 SSD 使其无法访问。
  • 停用项目结算功能会导致虚拟机停止。

如果 Compute Engine 无法恢复虚拟机的本地 SSD 数据,则 Compute Engine 会重启虚拟机,并且虚拟机会针对每个先前挂接的本地 SSD 磁盘装载并挂接一个本地 SSD 磁盘。

本地 SSD 加密

Compute Engine 在数据写入本地 SSD 存储空间时会自动加密数据。您不能将客户提供的加密密钥用于本地 SSD 磁盘。

本地 SSD 数据备份

由于您无法使用磁盘映像、标准快照或磁盘克隆来备份本地 SSD 数据,因此 Google 建议您始终将有价值的数据存储在持久性存储选项中。

如果您需要保留本地 SSD 磁盘上的数据,请将 Persistent Disk 永久性磁盘或 Google Cloud Hyperdisk 挂接到虚拟机。装载 Persistent Disk 永久性磁盘或 Hyperdisk 后,将数据从本地 SSD 磁盘复制到新挂接的磁盘。

选择磁盘接口

为实现最高的本地 SSD 性能,您必须将磁盘挂接到使用 NVMe 接口的虚拟机。如果使用 SCSI 接口,性能会降低。

您选择的磁盘接口还取决于虚拟机使用的机器类型和操作系统。Compute Engine 中的某些可用机器类型允许您选择 NVMe 或 SCSI 接口,而其他机器类型仅支持 NVMe 或 SCSI 之一。同样,Compute Engine 提供的某些公共操作系统映像可能同时支持 NVMe 和 SCSI,也可能仅支持两者之一。

磁盘接口支持(按机器类型和操作系统映像)

以下页面详细介绍了可用的机器类型和支持的公共映像,以及性能详情。

  • 各个机器类型支持的接口:请参阅机器系列比较。在选择要比较的虚拟机属性列表中,选择磁盘接口类型

  • 操作系统映像:如需查看 Compute Engine 提供的哪些公共操作系统映像支持 SCSI 或 NVMe,请参阅操作系统详细信息文档中每个表的接口标签页。

自定义映像的 NVMe 的注意事项

如果您的虚拟机使用自定义 Linux 映像,您必须使用 4.14.68 或更高版本的 Linux 内核,以获得最佳 NVMe 性能。

自定义映像的 SCSI 的注意事项

如果您的现有设置需要使用 SCSI 接口,请考虑使用多队列 SCSI,以实现比标准 SCSI 接口更好的性能。

如果您使用的是导入的自定义映像,请参阅启用多队列 SCSI

选择有效的本地 SSD 磁盘数量

Compute Engine 上提供的大多数机器类型支持本地 SSD 磁盘。某些机器类型始终默认包含固定数量的本地 SSD 磁盘,而其他机器类型则允许您添加特定数量的磁盘。您只能在创建虚拟机时添加本地 SSD 磁盘。虚拟机创建后无法添加本地 SSD 磁盘。

对于基于 Z3(预览版)机器系列创建的虚拟机,每个挂接的磁盘都具有 3,000 GiB 的容量。对于所有其他机器系列,您挂接的每个磁盘的容量为 375 GiB。

自动挂接本地 SSD 磁盘的机器类型

下表列出了默认包含本地 SSD 磁盘的机器类型,并显示了在创建虚拟机时挂接的磁盘数量。

机器类型 每个虚拟机自动挂接的
本地 SSD 磁盘数量
C3 机器类型
只有 C3 机器类型的 -lssd 变体支持本地 SSD
c3-standard-4-lssd 1
c3-standard-8-lssd 2
c3-standard-22-lssd 4
c3-standard-44-lssd 8
c3-standard-88-lssd 16
c3-standard-176-lssd 32
C3D 机器类型
只有 C3D 机器类型的 -lssd 变体支持本地 SSD
c3d-standard-8-lssd 1
c3d-standard-16-lssd 1
c3d-standard-30-lssd 2
c3d-standard-60-lssd 4
c3d-standard-90-lssd 8
c3d-standard-180-lssd 16
c3d-standard-360-lssd 32
A3 Ultra 机器类型
a3-highgpu-8g 16
A2 Ultra 机器类型
a2-ultragpu-1g 1
a2-ultragpu-2g 2
a2-ultragpu-4g 4
a2-ultragpu-8g 8
每个磁盘的大小为 3 TiB。
Z3 机器类型(预览版
z3-standard-88-lssd 12
z3-standard-176-lssd 12

需要您选择本地 SSD 磁盘数量的机器类型

下表中列出的机器类型不会自动将本地 SSD 磁盘挂接到新创建的虚拟机。由于您无法在创建虚拟机后向其添加本地 SSD 磁盘,因此请使用本部分中的信息来确定在创建虚拟机时要挂接多少个本地 SSD 磁盘。

N1 机器类型 每个虚拟机允许的本地 SSD 磁盘数
所有 N1 机器类型 1 - 8、16 或 24 个
N2 机器类型
具有 2 - 10 个 vCPU 的机器类型 1、2、4、8、16 或 24
具有 12 - 20 个 vCPU 的机器类型 2、4、8、16 或 24
具有 22 - 40 个 vCPU 的机器类型 4、8、16 或 24
具有 42 - 80 个 vCPU 的机器类型 8、16 或 24
具有 82 个到 128 个 vCPU(含 82 和 128)的机器类型 16 或 24
N2D 机器类型
具有 2 - 16 个 vCPU 的机器类型 1、2、4、8、16 或 24
具有 32 个或 48 个 vCPU 的机器类型 2、4、8、16 或 24
具有 64 个或 80 个 vCPU 的机器类型 4、8、16 或 24
具有 96 - 224 个 vCPU 的机器类型 8、16 或 24
C2 机器类型
具有 4 或 8 个 vCPU 的机器类型 1、2、4 或 8
具有 16 个 vCPU 的机器类型 2、4 或 8
具有 30 个 vCPU 的机器类型 4 或 8
具有 60 个 vCPU 的机器类型 8
C2D 机器类型
具有 2 - 16 个 vCPU 的机器类型 1、2、4、8
具有 32 个 vCPU 的机器类型 2、4、8
具有 56 个 vCPU 的机器类型 4、8
具有 112 个 vCPU 的机器类型 8
A2 标准机器类型
a2-highgpu-1g 1、2、4 或 8
a2-highgpu-2g 2、4 或 8
a2-highgpu-4g 4 或 8
a2-highgpu-8ga2-megagpu-16g 8
G2 机器类型
g2-standard-4 1
g2-standard-8 1
g2-standard-12 1
g2-standard-16 1
g2-standard-24 2
g2-standard-32 1
g2-standard-48 4
g2-standard-96 8
M1 机器类型
m1-ultramem-40 不可用
m1-ultramem-80 不可用
m1-megamem-96 1 至 8
m1-ultramem-160 不可用
M3 机器类型
m3-ultramem-32 4、8
m3-megamem-64 4、8
m3-ultramem-64 4、8
m3-megamem-128 8
m3-ultramem-128 8
E2、Tau T2D、Tau T2A 和 M2 机器类型 这些机器类型不支持本地 SSD 磁盘。

价格

对于您创建的每个本地 SSD 磁盘,您需要按照它挂接到的虚拟机生命周期内的总磁盘容量付费。

如需详细了解本地 SSD 价格和可用折扣,请参阅本地 SSD 价格

本地 SSD 磁盘和 Spot 虚拟机实例

如果您启动具有本地 SSD 磁盘的 Spot 虚拟机或抢占式虚拟机,则 Compute Engine 将按本地 SSD 使用量收取提供折扣的 Spot 价格。挂接到 Spot 虚拟机或抢占式虚拟机的本地 SSD 磁盘的工作方式类似于普通的本地 SSD 磁盘,它们保留相同的数据持久性特性,并在生命周期内保持挂接状态虚拟机。

如果 Compute Engine 在虚拟机开始运行后一分钟内被抢占,则 Compute Engine 不会针对 Spot 虚拟机或抢占式虚拟机上的本地 SSD 磁盘使用费向您收费。

预留可享受承诺使用折扣的本地 SSD 磁盘

如需预留特定可用区中的本地 SSD 资源,请参阅预留 Compute Engine 可用区级资源

如需获得特定可用区中本地 SSD 磁盘的承诺使用折扣,您必须为本地 SSD 资源购买基于资源的承诺,并将指定匹配本地 SSD 资源的预留附加到您的承诺。如需了解详情,请参阅将预留附加到基于资源的承诺

将本地 SSD 磁盘与虚拟机搭配使用

如需将本地 SSD 磁盘与虚拟机搭配使用,您必须完成以下步骤:

Linux 虚拟机上的设备命名

挂接到虚拟机的磁盘的 Linux 设备名称取决于您在创建磁盘时选择的接口。使用 lsblk 操作系统命令查看磁盘设备时,它会显示通过 NVMe 接口连接的磁盘的前缀 nvme,以及通过 SCSI 接口连接的磁盘的前缀 sd

磁盘编号或 NVMe 控制器的顺序在虚拟机重启后是无法预测的,也可能不会保持一致。首次启动时,永久性磁盘可能是 nvme0n1(或 sda,对于 SCSI)。第二次启动时,同一永久性磁盘的设备名称可能是 nvme2n1nvme0n3(或 sdc,对于 SCSI)。

访问挂接的磁盘时,您应改用在 /dev/disk/by-id/ 中创建的符号链接。这些名称会在重新启动后保留。如需详细了解符号链接,请参阅挂接到虚拟机的磁盘的符号链接

SCSI 设备名称

对于第一个挂接的磁盘,使用 SCSI 挂接的磁盘设备的格式为 sda。磁盘分区显示为 sda1。每个额外的磁盘都使用顺序字母,例如 sdbsdc。达到 sdz 后,后续添加的磁盘的名称为 sdaasdabsdac,最多为 sddx

NVMe 设备名称

在 Linux 操作系统中,挂接了 NVMe 的磁盘设备的格式为 nvmenumbernnamespacenumber 表示 NVMe 磁盘控制器编号,namespace 是由 NVMe 磁盘控制器分配的 NVMe 命名空间 ID。对于分区,pn 附加到设备名称,其中 n 是一个数字,从 1 开始,表示第 n 个分区。

控制器编号从 0 开始。挂接到虚拟机的单个 NVMe 磁盘的设备名称为 nvme0n1。大多数机器类型使用单个 NVMe 磁盘控制器。然后,本地 SSD 设备名称为 nvme0n1nvme0n2nvme0n3,依此类推。

第三代机器系列虚拟机(C3、C3D、Z3 [预览版] 和 H3)上本地 SSD 磁盘的每个磁盘都有单独的 NVMe 控制器。在这些虚拟机上,本地 SSD NVMe 挂接设备的名称类似于 nvme0n1nvme1n1nvme2n1。挂接的本地 SSD 磁盘的数量取决于虚拟机的机器类型。

第三代机器系列虚拟机将 NVMe 用于 Persistent Disk 和 Hyperdisk 以及本地 SSD 磁盘。每个虚拟机的 Persistent Disk 和 Hyperdisk 有 1 个 NVMe 控制器,每个本地 SSD 磁盘有 1 个 NVMe 控制器。Persistent Disk 和 Hyperdisk NVMe 控制器对所有挂接的磁盘都有一个 NVMe 命名空间。因此,具有 2 个 Persistent Disk 永久性磁盘(每个磁盘有 2 个分区)和 2 个未格式化的本地 SSD 磁盘的第三代机器系列虚拟机使用以下设备名称:

  • nvme0n1 - 第一个 Persistent Disk 永久性磁盘
  • nvme0n1p1
  • nvme0n1p2
  • nvme0n2 - 第二个 Persistent Disk 永久性磁盘
  • nvme0n2p1
  • nvme0n2p2
  • nvme1n1 - 第一个本地 SSD
  • nvme2n1 - 第二个本地 SSD

停止具有本地 SSD 的虚拟机

当您停止或暂停虚拟机时,Compute Engine 默认会舍弃挂接到该虚拟机的所有本地 SSD 磁盘的数据。

如果您要保留挂接到虚拟机的本地 SSD 磁盘的数据,则必须使用 gcloud CLI 并添加 --discard-local-ssd=false 标志来停止暂停虚拟机。此操作会开始以托管方式将本地 SSD 数据迁移到永久性存储空间,并且在重启虚拟机之前,您需要为额外的存储空间利用率付费。重启虚拟机后,您可能需要将本地 SSD 磁盘重新装载到文件系统中。

限制

  • --discard-local-ssd=false 仅处于公开预览版阶段,不遵守 Compute Engine 正式版条款。
  • Compute Engine 仅支持在挂接了最多 16 个本地 SSD 磁盘的虚拟机中使用 --discard-local-ssd=false
  • 如果您从 Google Cloud 控制台停止或暂停虚拟机,则无法保留本地 SSD 数据。您必须使用 Google Cloud CLI、Cloud 客户端库或 Compute Engine API。
  • 保存本地 SSD 数据的过程很慢。只有在收到 suspendstop 请求后,系统才会开始复制本地 SSD 数据。
  • 使用 Spot 虚拟机或抢占式虚拟机时,抢占可能会随时发生,并且可能会中断暂停或恢复尝试。在这种情况下,虚拟机会被停止(抢占)而非暂停,并且在虚拟机恢复或重启时,不会将任何本地 SSD 数据保留在永久性存储空间中。

移除本地 SSD 磁盘

如需移除或删除本地 SSD 磁盘,请删除它们挂接的虚拟机。在删除具有本地 SSD 磁盘的虚拟机之前,请确保将本地 SSD 磁盘中的关键数据迁移到永久性磁盘、Hyperdisk 或其他虚拟机。