已知问题

本页面介绍在使用 Compute Engine 时可能遇到的已知问题。

Linux 虚拟机实例的已知问题

以下为已知的 Linux 映像问题:

更新软件包时出现 GPG 错误:EXPKEYSIG 3746C208A7317B0F

在基于 Debian 和 Ubuntu 的系统(包括本地工作站)上,您可能会遇到类似于以下示例的错误:

W: An error occurred during the signature verification.
The repository is not updated and the previous index files will be used.
GPG error: http://packages.cloud.google.com/apt cloud-sdk-stretch InRelease:
The following signatures were invalid: EXPKEYSIG 3746C208A7317B0F
Google Cloud Packages Automatic Signing Key <gc-team@google.com>

此错误让您无法获取多个 Google Cloud 工具的最新更新,包括以下各项:

要解决此错误,请从 https://packages.cloud.google.com 获取最新的有效 apt-key.gpg 密钥文件:

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

另外,在运行 Debian 或 Ubuntu 映像的 Compute Engine 虚拟机实例上,如果您使用以下映像版本重新创建实例,则可以获取最新密钥:

  • 映像项目 debian-cloud
    • debian-9-stretch-v20180401 或映像系列 debian-9
    • debian-8-jessie-v20180401 或映像系列 debian-8
  • 映像项目 ubuntu-os-cloud
    • ubuntu-1710-artful-v20180315 或映像系列 ubuntu-1710
    • ubuntu-1604-xenial-v20180323 或映像系列 ubuntu-1604-lts
    • ubuntu-1404-trusty-v20180308 或映像系列 ubuntu-1404-lts

Red Hat Enterprise Linux 7 和 CentOS 7 只读根文件系统问题

运行公共映像 rhel-7-v20170719 及更早版本或 centos-7-v20170719 及更早版本的虚拟机实例可能会在启动时将根文件系统装载为只读模式。需要根文件系统的写入访问权限的应用、守护程序或脚本将会失败。

如果正在运行的实例使用了受影响的公共映像,请不要重新启动这些实例,否则它们将卡在只读模式下。如果实例已卡在只读模式下,您可以远程恢复对根文件系统的读写模式,然后修复该问题。

确定受影响的实例:

使用以下 gcloud compute disks list 命令可确定可能受影响的实例:

RHEL 7:

gcloud compute disks list --filter="sourceImage ~ rhel-7-v201[4-6].* OR sourceImage ~ rhel-7-v20170[1-7].*" --uri

CentOS 7:

gcloud compute disks list --filter="sourceImage ~ centos-7-v201[4-6].* OR sourceImage ~ centos-7-v20170[1-7].*" --uri

如果这些磁盘已附加到实例,您可以在相应实例上修正问题。如何修正受影响的实例取决于您用于创建实例的映像版本。

使用版本介于 rhel-7-v20160418rhel-7-v20170719 之间的 RHEL 7 映像或介于 centos-7-v20160418centos-7-v20170719 之间的 CentOS 7 映像创建的实例:

如果实例使用自动更新,yum-cron 将自动安装修复的软件包并从 /etc/fstab 文件中移除损坏的装载选项。如果实例未启用自动更新,您可以通过以下过程来修复该实例:

  1. 使用 SSH 连接实例。如果连接失败,则实例可能会陷入只读模式。不过,您可以尝试将其恢复。如果您之前已通过 SSH 连接受影响的实例,则您的公共 SSH 密钥已存在于根文件系统上并将继续正常运作。通过 ssh 运行远程命令,以将文件系统重新装载为 rw 模式。例如,您可以使用以下 gcloud 命令来重新装载根文件系统:

    gcloud compute ssh [INSTANCE_NAME] --command "sudo mount -o remount,rw /dev/sda1 /"
    

    当文件系统重新装载为读写模式后,请通过 SSH 连接实例

  2. 运行 sudo yum -y update 以更新所有已安装的软件包,包括含修复程序的 gce-disk-expand 软件包。

现在,实例重新启动时就不会将根文件系统装载为只读模式了。

使用在 rhel-7-v20160418 之前创建的 RHEL 7 映像或在 centos-7-v20160418 之前创建的 CentOS 7 映像创建的实例:

  1. 使用 SSH 连接实例。如果连接失败,则实例可能会陷入只读模式。不过,您可以尝试将其恢复。如果您之前已通过 SSH 连接受影响的实例,则您的公共 SSH 密钥已存在于根文件系统上并将继续正常运作。通过 ssh 运行远程命令,以将文件系统重新装载为 rw 模式。例如,您可以使用以下 gcloud 命令来重新装载根文件系统:

    gcloud compute ssh [INSTANCE_NAME] --command "sudo mount -o remount,rw /dev/sda1 /"
    

    当文件系统重新装载为读写模式后,请通过 SSH 连接实例

  2. 修改 /etc/fstab 文件并移除该文件中的任何 barrier=1 装载选项。default 装载选项必须是为根文件系统条目设置的唯一装载选项。您可以使用以下命令修正此损坏的装载选项:

    sudo sed -i 's/defaults,barrier[^ ,]*/defaults/' /etc/fstab
    

    移除 barrier=1 装载选项后,/etc/fstab 文件中的根文件系统条目应类似于以下示例,只是 UUID 值不同:

    UUID=b5e54172-67e3-4d52-95f4-4314e71b25fd / xfs defaults 0 0
    

现在,实例重新启动时就不会将根文件系统装载为只读模式了。

CentOS 映像 v20131120 引入了一项重大更改,默认会启用 iptables

v20131120 版 CentOS 6 映像 centos-6-v20131120 具有一项重大更改,即默认启用 iptables。这将阻止外部流量到达运行 centos-6-v20131120 的 CentOS 实例,即使存在允许此类连接的相关防火墙规则资源也不例外。

作为变通办法,用户将需要停用 iptables 或更新 iptables 以允许所需连接(还可以使用防火墙规则来允许流量)。要停用 iptables,请运行:

# Save your iptable settings
user@centos-instance:~$ sudo service iptables save
# Stop the iptables service
user@centos-instance:~$ sudo service iptables stop
# Disable iptables on start up
user@centos-instance:~$ sudo chkconfig iptables off

要更新 iptables,请查看 iptables 文档。

Google 提供的映像具有已知错误,在稳定 Debian 和 CentOS 内核中使用 ext4/scsi 驱动程序可能会出现问题

对于 centos-6-v20131120 和 debian-7-wheezy-v20131120 映像,已知的 ext4 错误可能导致当永久性磁盘负载极高时出现内存泄漏和虚拟机实例的最终崩溃。如需了解详情,请参阅此 Linux 内核邮件列表线程

长度超过 32 个字符的实例名称可能导致各种 UNIX 工具出现问题

报告日期:2012 年 6 月

尽管实例名称最多可以包含 63 个字符,但长度超过 32 个字符的名称却可能会导致某些工具不可靠,包括可能在启动期间运行的工具。为解决此问题,请选择长度小于 32 个字符的实例名称。

使用操作系统登录名的实例在连接后返回登录消息

在某些使用操作系统登录名的实例上,您可能会在连接建立后收到以下错误消息:

/usr/bin/id: cannot find name for group ID 123456789

请忽略此错误消息。

Windows 虚拟机实例的已知问题

以下为已知的 Windows 映像问题:

  • 虽然 Windows 实例可以将 NVMe 接口用于本地 SSD,但是 Windows 上对于 NVMe 的支持仍处于测试版阶段,我们不保证其性能与 Linux 实例相同。
  • 在 Windows 2008 R2 上,只有已安装 Visual C++,才能安装 Python 2.7.9 或更高版本。Python 2.7.8 没有此要求,但我们建议安装最新版本。
  • Compute Engine 尚不支持 IPv6。即使您在某个 Windows 实例中通过选择相关选项启用了 IPv6,系统也会忽略此设置。
  • 在创建新的实例后,您无法立即连接到该实例。所有新的 Windows 实例都会使用系统准备 (sysprep) 工具来设置您的实例,这可能需要 5-10 分钟才能完成。
  • 如果没有与 kms.windows.googlecloud.com 建立网络连接,Windows Server 映像将无法激活,而如果这些映像未在 30 天内进行初始身份验证,则会停止运行。由 KMS 激活的软件必须每 180 天重新激活一次,但是 KMS 会尝试每 7 天重新激活一次。请为您的 Windows 实例创建一个外部 IP,以便这些实例能够定期进行身份验证。
  • 内核软件如果访问非模拟的模型专用寄存器,将会产生一般保护性错误,这可能会导致系统崩溃,具体取决于客机操作系统。
此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Compute Engine 文档