我想使用 GCE 服务器和 VNC 来运行我编写的一些桌面程序。但是,我不想让 GCE 服务器一直运行(以节省资金),并且我希望保持我的 VNC 桌面设置(以节省时间)。似乎最简单的方法是让 GCE 实例休眠。有没有办法从脚本或命令行执行此操作?
2 回答
我知道目前唯一受支持的技术是使用可启动的永久磁盘,它比虚拟机的寿命更长,因此您可以删除并重新启动虚拟机,启动时间适中(30 秒以下),但我认为这不会满足您的需求,因为除非您的应用程序具有内置的、强大的检查点/恢复逻辑,否则您可能无法从桌面上的中断处继续。
解决此问题的另一种方法是使用轻量级容器,例如Docker,它的设计中内置了暂停/恢复和检查点。您目前无法在 Google Compute Engine 上运行 Docker 容器,但我们有兴趣探索 Docker 在 GCE 上的潜力,敬请期待。
听起来您真正想要的是具有近乎瞬时恢复的本机挂起功能,并且对于处于挂起状态的虚拟机不收费或收费非常低。我认为这是一个有趣的想法 - 我已向 Compute Engine 工程团队提交了内部功能请求以供将来考虑。
Compute Engine 具有暂停虚拟机的 alpha 支持。该文档的引用:
gcloud alpha compute instances suspend
用于暂停 Google Compute Engine 虚拟机。挂起 VM 相当于睡眠或待机模式:来宾接收到 ACPI S3 挂起信号,之后所有 VM 状态都保存到临时存储中。实例只能在处于 RUNNING 状态时暂停。暂停的实例将处于 SUSPENDED 状态。
该命令在 Compute Engine Web UI 中尚不可用,但可以从命令行调用,例如:
gcloud alpha compute instances suspend my-vm