虚拟机停止并启动后,Google Compute Engine 虚拟机是否会在不同的物理主机上启动?

虚拟机停止并启动后,Google Compute Engine 虚拟机是否会在不同的物理主机上启动?

例如在 AWS 中,当一个实例停止然后启动时,它会在物理主机之间切换。

当您停止 EBS 启动实例时,您将放弃服务器正在运行的物理硬件,并且 EC2 可以自由地在那里启动其他人的实例。

您的 EBS 启动卷(和其他附加的 EBS 卷)仍会保留,但它们实际上并未绑定到物理或虚拟服务器。它们只是与不在任何地方运行的实例 ID 相关联。

当您再次启动实例时,EC2 会选择一些硬件来运行它,绑定 EBS 卷并再次启动它。

当你停止/开始时发生变化的事情包括:

新的内部 IP 地址,但可能随机相同。[VPC 实例通过停止/启动保持相同的内部 IP 地址。]

新的外部 IP 地址(但可能随机相同)。

如果在实例停止之前已将弹性 IP 地址与实例关联,则您需要在启动后重新关联该地址。[VPC 实例通过停止/启动保持弹性 IP 地址关联。]

实例以前的临时存储上的所有内容都将被清除,并且您将获得新的临时存储(通常安装为 /mnt)。

您可以让实例停止运行任意长的时间,并且不会因运行时间而收取费用(尽管 EBS 卷存储的费用要低得多)。请参阅下一点。

再次启动实例时,将开始新的计费小时。例如,如果您启动一个新实例,然后在前 60 分钟内停止/启动它 3 次,则将收取 4 小时的费用,而不是 1 小时的费用。

当您想要重新启动实例时,EC2 可能会没有正确实例类型的可用插槽来运行您的实例。我遇到过这种情况,并暂时切换到其他可用实例类型以使其再次运行。

重新启动时,只需在操作系统级别进行简单的重新启动,实例将继续在相同的硬件上运行,具有相同的私有和公共 IP 地址,保留相同的弹性 IP 地址(如果已关联),并保留相同的临时存储而不会被擦除。重新启动时不会开始新的计费时间,您也不会放弃实例硬件。

来源 - https://alestic.com/2011/09/ec2-reboot-stop-start/

因此,如果物理主机性能下降或者将进行未来的维护,则只需正常停止实例,然后重新启动它,它就会移动到不同的物理主机上(并非总是保证,但通常是正确的)。

重新启动 AWS 实例可使虚拟机保持在同一物理主机上运行。

有人可以阐明当实例停止/启动以及重新启动时 Google Compute Engine VM 的行为吗?

我在与 GCP 的一张票中提出了这个问题,但被定向到以下两个文档 URL,而它们并没有真正回答这个问题:

我提出这个问题的背景是,想知道在 GCP 由于主机错误自动重新启动虚拟机后,我们的虚拟机是否继续在同一物理主机上运行。

答案1

发生主机错误意味着您的虚拟机所在的物理机出现硬件或软件问题,从而导致主机错误。如果您将虚拟机设置为自动重启(这是默认值),则您的虚拟机将在另一台物理机上重启。

您可以在我们的公开文档中查看https://cloud.google.com/compute/docs/faq#hosterror

当您对虚拟机执行停止操作时,Compute Engine 会向实例发送 ACPI 电源关闭信号。当虚拟机停止时,临时外部 IP 地址将从实例中释放,您需要为仍附加到虚拟机实例的资源(例如静态 IP 和持久磁盘数据)付费。

当您启动一台已停止的虚拟机时,它可能会被分配到另一台物理机上,也可能会被分配到同一台物理机上。

在虚拟机上执行重置操作类似于在计算机上执行硬重置,您可以按下重置按钮或按住电源按钮。重置实例会擦除计算机的内存内容并将虚拟机重置为其初始状态。重置操作会保留其临时 IP 地址、持久磁盘、计算机类型等。但是,除非您备份数据,否则存储在内存中的任何数据都将被重置。

您可以在我们的公共文档中查看实例生命周期https://cloud.google.com/compute/docs/instances/instance-life-cycle

相关内容