【问题标题】:How can I hibernate a Google Compute Engine server?如何休眠 Google Compute Engine 服务器?
【发布时间】:2013-11-14 14:46:02
【问题描述】:

我想使用 GCE 服务器和 VNC 来运行我编写的一些桌面程序。但是,我不想让 GCE 服务器一直运行(以节省资金),并且我希望保持我的 VNC 桌面设置(以节省时间)。似乎最简单的方法是让 GCE 实例休眠。有没有办法从脚本或命令行执行此操作?

【问题讨论】:

    标签: power-management google-compute-engine


    【解决方案1】:

    我知道目前唯一受支持的技术是使用可引导的永久性磁盘,它比虚拟机的寿命更长,因此您可以删除并重新启动虚拟机,但启动时间适中(30 秒以下),但我没有认为这会满足您的需求,因为除非您的应用具有内置的、强大的检查点/恢复逻辑,否则您可能无法从桌面上的中断处继续。

    解决此问题的另一种方法是使用轻量级容器,例如 Docker,它的设计中内置了暂停/恢复和检查点。您目前无法在 Google Compute Engine 上运行 Docker 容器,但我们有兴趣探索 Docker 在 GCE 上的潜力,敬请期待。

    听起来您真正想要的是具有近乎瞬时恢复的本机挂起功能,并且对于处于挂起状态的虚拟机不收费或收费非常低。我认为这是一个有趣的想法 - 我已向 Compute Engine 工程团队提交了内部功能请求以供将来考虑。

    【讨论】:

    • 我希望有像 pm-hibernate (cyberciti.biz/faq/…) 这样的东西,但我猜 GCE 内核不支持它。感谢您添加功能请求。
    【解决方案2】:

    Compute Engine 有 alpha support for suspending virtual machines。该文档的引用:

    gcloud alpha compute instances suspend 用于暂停 Google Compute Engine 虚拟机。挂起 VM 相当于睡眠或待机模式:来宾接收到 ACPI S3 挂起信号,之后所有 VM 状态都保存到临时存储中。实例只能在处于 RUNNING 状态时暂停。暂停的实例将处于 SUSPENDED 状态。

    该命令在 Compute Engine 网页界面中尚不可用,但可以从命令行调用,例如:

    gcloud alpha compute instances suspend my-vm
    

    【讨论】:

    • 处于挂起状态的虚拟机是否仍然像运行状态一样产生费用?
    • 有什么更新吗?此功能似乎仍处于 Alpha 阶段,需要注册。任何人都知道在哪里注册或可以阐明@killjoy 关于暂停期间收费的问题?
    • @killjoy 在这里他们描述了与收费相关的方面,但通常是的,您需要为暂停的虚拟机付费,但收费率降低 + PDs + IPs + 存储状态cloud.google.com/compute/docs/reference/rest/beta/instances/…
    猜你喜欢
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 2015-01-29
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多