Google Compute Engine 常见问题解答

关于 Compute Engine

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

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

Compute Engine 中的虚拟 CPU 是什么?

在 Compute Engine 上,每个虚拟 CPU (vCPU) 是在其中一个可用的 CPU 平台上以单个硬件超线程的形式实现的。在 Intel Xeon 处理器上,Intel 超线程技术允许每个物理处理器内核上运行多个应用线程。您可以配置使用一个或多个此类超线程作为 vCPU 的 Compute Engine 虚拟机实例。机器类型指定实例具有的 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 报告方面的问题,请在我们的 User Voice 论坛上提交问题。

身份验证

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

您可以使用 OAuth 2.0 向 Compute Engine API 进行身份验证。您可以通过客户端库进行身份验证,也可以直接借助访问令牌进行身份验证

什么是服务帐号?

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

Compute Engine 开发者通常在其应用中使用 Compute Engine 服务帐号。如需详细了解服务帐号,请参阅身份验证概览

如何创建服务帐号?

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

项目

什么是项目?

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

如何创建项目?

  1. 登录您的 Google 帐号。如果您还没有 Google 帐号,请注册新帐号
  2. 访问 Google Cloud Platform Console。出现提示时,选择某个现有项目或创建新项目。
  3. 按照提示设置计费方式。如果您刚开始接触 Google Cloud Platform,则可以使用免费试用赠金为所用实例付费。

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

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

可以在何处找到项目 ID?

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

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

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

实例

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

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

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

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

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

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

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

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

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

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

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

您可以通过下列方法之一确定适合您的实例的具体 CPU 平台:

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

抢占式实例是指您能以比常规实例低得多的价格创建和运行的实例,不过,如果 Compute Engine 需要将这些资源用于其他任务,您可能需要终止此类实例。如需了解详情,请参阅创建抢占式虚拟机实例

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

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

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

出现主机错误意味着托管相应虚拟机的物理机上存在硬件或软件问题,进而导致虚拟机崩溃。如果 Compute Engine 检测到此类事件,我们会在您的操作日志中添加一个 compute.instances.hostError 条目。如果您将虚拟机设置为自动重启(这是默认设置),Google 还会在另一台物理机上重启您的虚拟机。

通常情况下,物理硬件故障和软件故障可能会不时发生,但这种情况很少见。为了保护您的应用和服务免受这些可能具有破坏性的系统事件的影响,请确保设计稳健的系统构建可扩缩、弹性佳的 Web 应用。使用托管实例组对 Compute Engine 实例组执行运行状况检查并灵活扩缩。

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

映像

是否需要先注册 Cloud Storage,然后才能将映像存储在外部存储空间?

是的,要将映像存储在外部存储空间,您需要先注册 Cloud Storage

永久性磁盘

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

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

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

请参阅磁盘加密

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

如果永久性磁盘处于只读模式,您可以将其挂接到多个实例。如果磁盘处于读写模式,则只能挂接到单个实例。一个永久性磁盘不能同时以读写模式和只读模式挂接。

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

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

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

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

网络

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

Google Cloud Platform 使用的 IP 地址范围很广,且会随时间发生变化。Google Cloud Platform 在 _cloud-netblocks.googleusercontent.com 的 SPF 记录中发布了其公共 IP 地址列表。

如果您需要 Google Cloud Platform 的文本 IP 地址,请使用一种常见的 DNS 查找命令(nslookupdighost)来检索网域 _cloud-netblocks.googleusercontent.com 的 TXT 记录:

$ dig @8.8.8.8 -t TXT _cloud-netblocks.googleusercontent.com

系统会返回 Google SPF 记录中所含网域的列表,例如:

_cloud-netblocks.googleusercontent.com.    3599 IN TXT "v=spf1 include:_cloud-netblocks1.googleusercontent.com include:_cloud-netblocks2.googleusercontent.com include:_cloud-netblocks3.googleusercontent.com include:_cloud-netblocks4.googleusercontent.com include:_cloud-netblocks5.googleusercontent.com ?all"

然后,查找与上述网域关联的 DNS 记录(每次针对一个网域进行查找):

$ dig @8.8.8.8 -t TXT _cloud-netblocks1.googleusercontent.com
$ dig @8.8.8.8 -t TXT _cloud-netblocks2.googleusercontent.com
$ dig @8.8.8.8 -t TXT _cloud-netblocks3.googleusercontent.com
$ dig @8.8.8.8 -t TXT _cloud-netblocks4.googleusercontent.com
$ dig @8.8.8.8 -t TXT _cloud-netblocks5.googleusercontent.com

上述命令返回的结果中包含当前地址范围。

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

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

地区

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

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

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

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

启动脚本

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

启动脚本在启动过程结束时开始运行。在使用 systemd 或 upstart 的新型系统上,启动脚本会在 google_instance_setup 完成后开始运行。

基础架构维护事件

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

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

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

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

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

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

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档