Compute Engine 为虚拟机 (VM) 实例提供始终加密的本地固态硬盘 (SSD) 块存储。每个本地 SSD 的大小为 375 GB,但您最多可以挂接 24 个本地 SSD 分区,每个实例 9 TB。或者,您也可以设置多个本地 SSD 分区的格式并装载到一个逻辑卷中。
不同于永久性磁盘,本地 SSD 是以物理方式挂接到托管着虚拟机实例的服务器。与永久性磁盘相比,这种紧密耦合可提供卓越的性能、极高的每秒输入/输出操作数 (IOPS),以及极低的延迟。如需了解详情,请参阅配置磁盘以满足性能要求。
本地 SSD 只适合用于缓存、处理空间或低价值数据等临时存储用途。如需存储非暂时或非临时性质的数据,请使用我们的持久存储方案之一。
停止具有本地 SSD 的虚拟机
当您停止或暂停虚拟机时,本地 SSD 上的所有数据都会被舍弃。如需停止或暂停挂接了本地 SSD 磁盘的虚拟机,您可以使用以下方法之一。
您可以在
gcloud compute instances stop
和gcloud compute instances suspend
命令中添加--discard-local-ssd
或--discard-local-ssd=True
选项,以停止或暂停具有本地 SSD 的虚拟机。此选项表示在虚拟机停止时本地 SSD 磁盘的内容会被舍弃。如果您想保留本地 SSD 的内容,可以使用
--discard-local-ssd=False
停止或暂停虚拟机。此操作会在虚拟机终止或暂停后开始以代管方式将本地 SSD 数据迁移到永久性存储空间。在虚拟机未运行时,您需要为额外的存储空间利用率付费。如需了解详情,请参阅暂停文档。虚拟机重启后,可能需要将本地 SSD 重新装载到文件系统中。您还可以从客机操作系统中关停虚拟机。这不会保留本地 SSD 数据。
限制
--discard-local-ssd=False
目前为公开预览版,不在 Compute Engine 的正式版条款的涵盖范围内。目前,Compute Engine 仅支持在挂接了最多 1 个本地 SSD 磁盘的虚拟机中使用
--discard-local-ssd=False
。保存本地 SSD 的过程非常缓慢,只有在收到suspend
或stop
请求后才会开始复制 SSD 内容。任何中断都可能导致数据丢失,并且在虚拟机恢复/重启后,永久性存储空间中不会保留任何本地 SSD 数据。
在删除具有本地 SSD 磁盘的虚拟机之前,请确保将本地 SSD 磁盘中的关键数据迁移到永久性磁盘或其他虚拟机。
如果本地 SSD 不符合您的冗余或灵活性要求,您可以将本地 SSD 与其他存储方案结合使用。
最大 9 TB 容量
您可以创建满足以下条件的实例:
- 具有 16 个本地 SSD 分区,总共 6 TB 本地 SSD 空间,性能达到 160 万次读取 IOPS
- 具有 24 个本地 SSD 分区,总共 9 TB 本地 SSD 空间,性能达到 240 万次读取 IOPS
此方案适用于具有 N1、N2、N2D 和自定义机器类型的实例。如需在 N1 机器上实现最高性能,请选择具有 32 个或更多 vCPU 的机器类型。要在 N2 和 N2D 机器上实现最高性能,请选择具有 24 个或更多 vCPU 的机器类型。
请注意,读取和写入本地 SSD 磁盘需要虚拟机提供的 CPU 周期。为实现非常高且始终如一的 IOPS 水平,您必须让 CPU 能够有空闲时间来处理输入和输出操作。如需了解详情,请参阅配置磁盘以满足性能要求。
本地 SSD 数据持久性
在创建具有本地 SSD 的实例之前,必须了解哪些事件会保留本地 SSD 数据以及哪些事件可能会导致本地 SSD 数据无法恢复。
本地 SSD 上的数据只有在遇到以下事件时才会存留:
- 重新启动客机操作系统。
- 将实例配置为实时迁移,且实例经历主机维护事件。
- 如果主机系统遇到主机错误,Compute Engine 会尽力重新连接到虚拟机并保留本地 SSD 数据,但可能不会成功。如果尝试成功,虚拟机会自动重启。但如果尝试重新连接失败,虚拟机将重启,而不会保留任何数据。在 Compute Engine 恢复您的虚拟机和本地 SSD(此过程最多可能需要 60 分钟)时,主机系统和底层硬盘将不会响应。如需配置虚拟机实例在发生主机错误时的行为,请参阅设置实例可用性政策。
本地 SSD 上的数据在遇到以下事件时不会存留:
- 关闭客机操作系统并强制停止实例。
- 将实例配置为可抢占,并且该实例经历抢占过程。
- 将实例配置为在发生主机维护事件时停止,并且该实例经历主机维护事件。
- 当主机系统遇到主机错误,并且底层硬盘在 60 分钟内未恢复时,Compute Engine 不尝试保留本地 SSD 上的数据。 在 Compute Engine 恢复您的虚拟机和本地 SSD(此过程最多可能需要 60 分钟)时,主机系统和底层硬盘将不会响应。
- 错误配置本地 SSD 使其无法访问。
- 停用项目结算功能。实例将关闭,并且您的数据将丢失。
选择接口
您可以使用 NVMe 接口或 SCSI 接口将本地 SSD 连接到实例。大多数公共映像同时包含 NVMe 和 SCSI 驱动程序。 对于支持 SCSI 的公共映像,已启用多队列 SCSI。如需查看详细列表,请参阅操作系统详细信息文档中的支持的接口列。
自定义映像的 NVMe 的注意事项
大多数映像都包含一个内核,该内核具有经过优化的驱动程序,可让您的虚拟机通过 NVMe 实现最佳性能。如果导入的自定义 Linux 映像包含内核版本 4.14.68
或更高版本,则可以通过 NVMe 实现出色性能。
自定义映像的 SCSI 的注意事项
如果您的现有设置需要使用 SCSI 接口,请考虑使用多队列 SCSI,以实现比标准 SCSI 接口更好的性能。如果您使用的是导入的自定义映像,请参阅启用多队列 SCSI。
选择有效的本地 SSD 数量
如需将多个本地 SSD 附加到单个虚拟机实例,可以附加的有效本地 SSD 数量取决于虚拟机实例的机器类型。根据虚拟机的机器类型,您可以将 1 到 8、16 或 24 个本地 SSD 挂接到单个虚拟机。如需了解详情,请参阅本地 SSD 和机器类型限制。
性能
本地 SSD 性能在很大程度上取决于您所选择的接口。通过 SCSI 和 NVMe 接口都可以使用本地 SSD。如果选择使用 NVMe,则必须使用特殊的支持 NVMe 的映像才能获得最佳性能。如需了解详情,请参阅选择 NVMe 或 SCSI 接口。
如需使用 N1 机器类型达到性能上限,请使用 32 个或更多 vCPU。如需达到 N2、N2D 或 A2 机器类型的性能上限,请使用 24 个或更多 vCPU。与具有 N1、N2 或 A2 机器类型的虚拟机相比,具有 N2D 机器类型的虚拟机上的读写 IOPS 应该低 20%。
NVMe
存储空间 (GB) | 分区 | IOPS | 吞吐量 (MB/秒) |
||||
---|---|---|---|---|---|---|---|
读取 | 写入 | 读取 | 写入 | ||||
375 | 1 | 170000 | 90000 | 660 | 350 | ||
750 | 2 | 340000 | 180000 | 1320 | 700 | ||
1125 | 3 | 510000 | 270000 | 1980 | 1050 | ||
1500 | 4 | 680000 | 360000 | 2650 | 1400 | ||
1875 | 5 | 680000 | 360000 | 2650 | 1400 | ||
2250 | 6 | 680000 | 360000 | 2650 | 1400 | ||
2625 | 7 | 680000 | 360000 | 2650 | 1400 | ||
3000 | 8 | 680000 | 360000 | 2650 | 1400 | ||
6000 | 16 | 1600000 | 80 万 | 6240 | 3120 | ||
9000 | 24 | 2400000 | 1200000 | 9360 | 4680 |
SCSI
存储空间 (GB) | 分区 | IOPS | 吞吐量 (MB/秒) |
||||
---|---|---|---|---|---|---|---|
读取 | 写入 | 读取 | 写入 | ||||
375 | 1 | 100000 | 70000 | 390 | 270 | ||
750 | 2 | 200000 | 140000 | 780 | 550 | ||
1125 | 3 | 300000 | 210000 | 1170 | 820 | ||
1500 | 4 | 400000 | 280000 | 1560 | 1090 | ||
1875 | 5 | 400000 | 280000 | 1560 | 1090 | ||
2250 | 6 | 400000 | 280000 | 1560 | 1090 | ||
2625 | 7 | 400000 | 280000 | 1560 | 1090 | ||
3000 | 8 | 400000 | 280000 | 1560 | 1090 | ||
6000 | 16 | 900000 | 800000 | 6240 | 3120 | ||
9000 | 24 | 900000 | 800000 | 9360 | 4680 |
优化本地 SSD 性能
有几种虚拟机和磁盘配置设置可以提高本地 SSD 性能。如需了解详情,请参阅优化本地 SSD 性能。