Google Compute Engine 常见问题解答


关于 Compute Engine

什么是 Compute Engine?它有何用途?

Compute Engine 是基础架构即服务产品,提供在 Google 基础架构上托管的灵活、自行管理的虚拟机 (VM)。Compute Engine 包含在 KVM、本地和持久存储方案中运行的基于 Linux 和 Windows 的虚拟机,还提供了一个基于 REST 的简单 API,用于进行配置和控制。该服务与 Cloud StorageApp EngineBigQuery 等 Google Cloud 技术集成,除了基本的计算功能之外,可提供更多功能供您创建更复杂、更先进的应用。

Compute Engine 中的虚拟 CPU 是什么?

在 Compute Engine 上,每个虚拟 CPU (vCPU) 是在其中一个可用的 CPU 平台上以单个硬件超线程的形式实现的。在 Intel Xeon 处理器上,Intel 超线程技术允许每个物理处理器内核上运行多个应用线程。您可以通过这些超线程中的一个或多个将 Compute Engine 虚拟机配置为 vCPU。机器类型指定实例具有的 vCPU 数量。

您可以通过下列其中一种选项来确定适合您的实例的具体 CPU 平台。

如果要更改实例的 CPU 平台,您可以指定最低要求 CPU 平台

App Engine 和 Compute Engine 之间有何关系?

两者是相辅相成的关系。App Engine 是 Google 的平台即服务产品,而 Compute Engine 是 Google 的基础架构即服务产品。App Engine 适合用来运行 Web 应用、业务线应用和移动后端,Compute Engine 则适用于需要更进一步控制底层基础架构的使用场景。例如,如果您拥有高度自定义的业务逻辑或需要运行自己的存储系统,则可以使用 Compute Engine。

如何开始使用?

请参阅该服务的相关入门指南。看完快速入门后,请参阅虚拟机实例概览,开始了解 Compute Engine。

您可能符合免费试用资格。如需了解如何免费试用产品(包括与配额相关的信息),请参阅免费试用指南

结算

如何计费?购买时是否有量的要求?

Compute Engine 根据计算实例、存储空间和网络的用量计费。虚拟机按秒计费,起步计费时间为 1 分钟。存储空间费用按您存储的数据量计算。网络费用依据虚拟机实例在相互通信以及与互联网通信的过程中传输的数据量计算。如需了解详情,请查看价格表

价格是否含税?

价格表不包含税费。

支持与反馈

是否提供付费支持?

是,我们为企业客户提供付费支持。如需了解详情,请与我们的销售部门联系。

是否提供服务等级协议 (SLA)?

是,提供 Compute Engine SLA

如何提供反馈?

如果是与结算相关的问题,您可以将问题反馈至相应的支持渠道

如果是功能请求和 bug 报告方面的问题,请向我们的问题跟踪器提交问题。

身份验证

如何向 Compute Engine API 进行身份验证?

如何向 Compute Engine API 进行身份验证取决于访问 API 所用的方法:客户端库、Google Cloud CLI 或 REST。如需了解详情,请参阅向 Compute Engine 进行身份验证

如需向 Google Cloud API 对应用或工作负载进行身份验证,请参阅选择工作负载身份验证方法

什么是服务账号?

服务账号是一种代表应用(而不是代表最终用户)的 Google 账号。此类账号可用于授权 Compute Engine 代表用户访问非敏感信息。服务账号决不会用于访问用户信息。服务账号可以为用户处理授权流程,从而简化从 Compute Engine 向其他服务进行身份验证的过程。

Compute Engine 开发者通常在其应用中使用 Compute Engine 服务账号。如需详细了解服务账号,请参阅服务账号

如何创建服务账号?

Compute Engine 会在您创建新实例并为该实例指定服务账号范围时自动创建服务账号。

项目

什么是项目?

项目是一种用于容纳所有 Compute Engine 资源的容器。每个项目都是完全分隔的个体;项目之间不会共享资源,具有不同的所有者和用户,单独计费,并且项目之间要相互访问比您邻居家的计算机访问您家的计算机还难实现。

如何创建项目?

  1. 登录您的 Google 账号。如果您还没有 Google 账号,请注册新账号
  2. 转到 Google Cloud 控制台。出现提示时,选择某个现有项目或创建新项目。
  3. 按照提示设置结算信息。如果您刚开始接触 Google Cloud,则可以使用免费试用赠金为所用实例付费。

项目编号与项目 ID 有何区别?

每个项目都可以通过项目编号和项目 ID 这两种方式来识别。项目编号由系统在您创建项目时自动创建,项目 ID 则是由您或项目创建者创建的。项目 ID 在很多服务中都是可选项,但在 Compute Engine 中为必需项。如需了解详情,请参阅 Google Cloud 控制台项目

可以在何处找到项目 ID?

您可以在 Google Cloud 控制台上找到项目 ID。登录该控制台之后便可看到项目列表及对应的项目 ID。

可以在何处为项目申请更多配额?

默认情况下,对于各种资源类型,所有 Compute Engine 项目都有默认配额。不过,这些默认配额可以按项目增加。您可在 Google Cloud 控制台的“配额”页面上查看您的配额限值和使用情况。如果已达到资源使用量上限且需要更多配额,请在“IAM 配额”页面申请增加某些资源的配额。点击该页面顶部的修改配额按钮即可申请。

实例

可以为实例选择哪种机器配置(内存、RAM、CPU)?

Compute Engine 为实例提供了多种配置。您也可以创建自定义配置,以满足对实例的确切需求。如需查看可用选项的完整列表,请参阅机器类型页面。

如果我不小心误删了实例,还能找回吗?

不能,无法找回已删除的实例。不过,如果您只是停止了某个实例,则可以再次启动它。

实例可以在哪些操作系统上运行?

Compute Engine 支持多种操作系统映像和第三方映像。此外,您也可以创建自定义版本的映像,或者构建您自己的映像

可以在哪些可用区创建实例?

如需查看可用的区域和可用区的列表,请参阅区域和可用区

如何查看已用配额或剩余配额?

您可在 Google Cloud 控制台的“配额”页面上查看您的配额限值和使用情况。如果您已达到资源用量上限且需要更多配额,请点击“配额”页面上的申请增加配额按钮,然后填写申请表。

实例上要运行哪种虚拟 CPU?

请通过下列选项之一确定适合您的实例的具体 CPU 平台:

什么是抢占式虚拟机实例?它与常规实例有何不同?

抢占式实例是指您能以比常规实例低得多的价格创建和运行的实例,不过,如果 Compute Engine 需要收回相应计算容量以分配给其他虚拟机,则这些实例可能会停止。如需了解详情,请参阅创建抢占式虚拟机实例

如何从 Compute Engine 实例发送出站电子邮件?

通常情况下,Compute Engine 会屏蔽流经这些已屏蔽端口的出站流量。不过,您可以设置使用 SMTP 通过 Google 发送电子邮件的邮件网关。如需了解详情,请参阅从实例发送电子邮件

我的虚拟机出现主机错误,然后重启了。这是怎么回事?

主机错误 (compute.instances.hostError) 意味着托管虚拟机的物理机器上存在硬件或软件问题,进而导致虚拟机崩溃。如果主机错误涉及硬件完全无法运行或其他硬件问题,则可能会阻止虚拟机实时迁移。如果您的虚拟机设置为自动重启(这是默认设置),Google 通常会在检测到错误后的 3 分钟内重启您的虚拟机。重启可能最多需要 5.5 分钟,具体取决于问题。

具有本地 SSD 磁盘的虚拟机

如果挂接了一个或多个本地 SSD 磁盘的虚拟机上出现主机错误,Compute Engine 会尽力重新连接到该虚拟机并保留本地 SSD 数据。在 Compute Engine 恢复您的虚拟机和本地 SSD 磁盘时,主机系统和底层磁盘无响应。

您可以通过设置本地 SSD 恢复超时来指定 Compute Engine 尝试恢复本地 SSD 数据的时间。

如需详细了解发生主机错误时本地 SSD 磁盘的行为,请参阅本地 SSD 数据持久性

无响应的虚拟机

有时,虚拟机可能会在检测到主机错误之前无响应。您可以通过设置主机错误恢复超时(预览版)来缩短 Compute Engine 等待重启或终止虚拟机的时间。如需了解详情,请参阅设置可用性政策

物理硬件故障和软件故障可能会不时发生,但这种情况很少见。为了保护您的应用和服务免受这些可能具有中断性的系统事件的影响,请查看以下资源:

Google 还提供 App Engine 等代管式服务以及 App Engine 柔性环境

如需确定主机错误是否导致虚拟机关停,请参阅诊断虚拟机关停和重新启动

映像

我需要先启用 Cloud Storage 服务,然后才能将映像存储在外部存储空间吗?

是的,如需将映像存储在外部存储空间,您需要启用 Cloud Storage 服务。

永久性磁盘

如何为永久性磁盘选择合适的大小?

永久性磁盘的性能因其大小而异。您可以使用永久性磁盘性能图表帮助您确定合适的磁盘大小。如果无法确定,请阅读如何确定永久性磁盘大小的相关文档。

永久性磁盘是否进行缓存写入?

不,永久性磁盘不进行缓存写入。只有在将数据转移到稳定介质后,才会成功完成写入命令。

适用于 Compute Engine 的 LVM

Google Cloud 提供的映像不支持 Logical Volume Manager (LVM)。

我们建议采用以下方法在 Compute Engine 中进行卷管理:

  • 使用辅助磁盘。您可以使用没有分区的辅助磁盘,从而避免调整根磁盘的大小。在某些场景中,使用辅助磁盘可以降低错误导致的中断风险。
  • 调整可用区永久性磁盘上文件系统和分区的大小。在进行任何文件系统修改之前,请通过截取快照来备份磁盘。如果调整文件系统的大小失败,您可以使用快照来恢复磁盘。
  • 基于您拥有的现有映像创建具有 LVM 根的自定义映像。

Google 采取了哪些措施来保护数据?

请参阅磁盘加密

能否将永久性磁盘挂接到多个实例?

如果永久性磁盘处于只读模式,您可以将其挂接到多个实例。多写入者模式下的 SSD 永久性磁盘可以挂接到两个 N2 虚拟机 (VM) 实例。一个永久性磁盘不能同时以读写模式和只读模式挂接。如需了解详情,请参阅在虚拟机之间共享永久性磁盘

何时应使用永久性磁盘,而非 Cloud Storage?

永久性磁盘和 Cloud Storage 都可用于存储文件,不过二者之间存在很大差别。Cloud Storage 是一种大型文件容器,用于存储可供全球访问的海量相对静态数据,包括来自 Compute Engine 虚拟机实例的数据。

下表中列出了一些信息,说明了这两种产品的特性及其最佳用途。

Cloud Storage 永久性磁盘
特性
  • 无障碍功能
    • 全局可访问性(包括非 Compute Engine 系统)
    • 支持从众多系统进行读写访问
  • 扩缩
    • 数 PB 级存储桶
  • 使用方式
    • REST 接口;延迟高于本地连接的块存储
    • 仅在文件级写入语义
    • 提供版本控制功能
    • 文件隐含在 Cloud Storage 中
  • 无障碍功能
    • 区域可访问性,仅可由 Compute Engine 实例访问
    • 在读写模式下,只能由一个实例访问;在只读模式下,可由许多 Compute Engine 实例访问
  • 扩缩
    • 容量上限为 64 TB
  • 使用方式
    • SCSI 接口;延迟较低
    • 写入语义为事务型 - 随机修改
    • 不提供版本控制功能;持续修改
    • 必须将文件系统格式化才能存储文件
目标用途
  • 移动、消费类、游戏和 SaaS 领域的内容分发
  • 富媒体
  • 适用于可并行执行的 HPC 任务(例如渲染、基因组学领域)的只读输入
  • 备份和归档
  • Hadoop(通过 GHFS)
  • Compute Engine 启动设备
  • 要构建的原始块数据存储区
    • SQL 服务器(例如 MySQL)
    • NoSQL 服务器(例如 Cassandra/Mongo)
    • 文件服务器(例如 Gluster)
    • 键值对持久性存储(例如 Redis)

网络

在何处可以找到 Compute Engine IP 范围?

Google 会在 cloud.json 中发布客户可用的全球和区域外部 IP 地址范围的 JSON 格式列表。

其他 Google Cloud IP 范围:

为什么 traceroute 不显示指向互联网绑定的目标的跃点?

在 Compute Engine 虚拟机实例上运行 traceroute 时,要么仅显示目标,要么仅显示指向互联网绑定的目标的某些跃点。如需了解详情,请参阅 VPC 文档中的跟踪互联网绑定的目标的 Traceroute

可用区

我可以选择使用选定国家/地区的区域性数据中心吗?

可以,Compute Engine 在全球都部署了数据中心。这些数据中心选项旨在为相应区域提供低延时的连接体验。如需了解具体的区域信息(包括区域的地理位置),请参阅区域和可用区

如何辨别某个可用区是否处于离线状态?

Google Cloud 控制台中的 Compute Engine 可用区部分显示每个可用区的状态。此外,您还可以通过使用命令行工具运行 gcloud compute zones list 命令或在 Compute Engine API 中使用 compute.zones.list 方法来获取可用区的状态。

启动脚本

自定义的启动脚本会在何时运行?

启动脚本在启动过程结束时开始运行。

基础架构维护事件

什么是基础架构维护事件?

Compute Engine 可能需要定期对可用区进行计划性维护,这可能会对您的实例造成影响。所有实例默认都会配置为将此类维护事件对您的应用和工作负载保持透明。维护活动可能会导致一定程度的性能降低情况,不过,您的实例将始终保持在线状态。如需了解详情,请参阅透明维护

计划性基础架构维护事件多久进行一次?

基础架构维护事件相隔的时间不固定,但通常是每两周一次。

如何判断实例是否正在经历基础架构维护事件?

如果 Compute Engine 要在不久后开始执行维护事件,则在尝试对待执行基础架构维护事件所涉及的虚拟机进行实时迁移或终结以及重新启动之前,它会更改相应虚拟机元数据服务器中的一项特殊特性。maintenance-event 特性将在事件前后更新,以便您在此类事件即将发生时检测到此情况。借助此信息,您可以帮助自动执行要在维护事件之前和/或之后运行的任何脚本或命令。如需了解详情,请参阅透明维护通知文档。