如何在Google Compute Engine服务器上进行休眠操作?

9

我想使用GCE服务器和VNC运行一些我编写的桌面程序。然而,为了节省费用,我不想让GCE服务器一直运行,同时我希望我的VNC桌面设置能够持久化(以节省时间)。似乎最简单的方法是通过某种方式使GCE实例进入休眠状态。是否有办法可以通过脚本或命令行来实现这一点?

2个回答

6
目前我所知道的唯一支持的技术是使用可持久化的引导盘,它可以在虚拟机过期后继续存在,因此您可以删除并重新启动虚拟机,启动时间相对较短(少于30秒),但我认为这可能无法满足您的需求,因为除非您的应用程序内置了强大的检查点/恢复逻辑,否则您可能无法在桌面上从上次离开的地方继续进行。

另一种方法是使用轻量级容器,例如Docker,它在设计中具有暂停/恢复和检查点功能。您目前无法在Google Compute Engine上运行Docker容器,但我们有兴趣探索Docker在GCE上的潜力,请继续关注。

听起来您真正想要的是本地挂起功能,具有几乎即时的恢复功能,并且处于挂起状态的VM没有或很低的费用。我认为这是一个有趣的想法-我已向Compute Engine工程团队提交了一个内部功能请求以供未来考虑。


1
我原本希望有像pm-hibernate这样的东西(http://www.cyberciti.biz/faq/linux-command-to-suspend-hibernate-laptop-netbook-pc/),但我猜GCE内核不支持。不过感谢您添加了这个功能请求。 - Thomas Johnson

3

Compute Engine提供了暂停虚拟机的Alpha版支持。以下是相关文档的引用:

gcloud alpha compute instances suspend用于暂停Google Compute Engine虚拟机。暂停虚拟机相当于休眠或待机模式:客户端接收到ACPI S3挂起信号后,所有虚拟机状态都将保存在临时存储中。只有在运行状态下才能暂停实例。暂停实例后,实例将处于SUSPENDED状态。

该命令还不可在Compute Engine Web UI中使用,但可以从命令行调用:

gcloud alpha compute instances suspend my-vm

9
一个处于暂停状态的虚拟机是否会像运行状态下一样累计费用? - killjoy
有更新吗?这个功能似乎仍处于alpha测试阶段,需要注册。有人知道在哪里注册或者能够解答@killjoy的问题,即在暂停期间是否会收费? - jrmerz
1
@killjoy 在这里他们描述了与费用相关的方面,但通常情况下,您将支付一个暂停的虚拟机,但是以降低的收费率+ PDs + IPs + 存储来存储状态。https://cloud.google.com/compute/docs/reference/rest/beta/instances/suspend - Hennadii Omelchenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接