启动、停止与销毁
三种操作
| 操作 | 在实例处于什么状态时可用 | 作用 | 通常耗时 | 是否可逆 |
|---|---|---|---|---|
| 停止 | running | 关闭容器,保留磁盘,占住 GPU 名额 | 几秒 | 是,可用启动恢复 |
| 启动 | stopped | 在同一台机器、同一块磁盘上把同一个容器重新拉起来 | 几秒 | 是,可用停止撤回 |
| 销毁 | running、stopped 或 error | 移除容器,删除磁盘,把 GPU 归还市场 | 几秒 | 否 |
在使用第三个操作之前,先读停止与销毁的对比。这个决定关系到你是否保住数据、是否继续付费,这里不再重复。
按钮在哪里
实例列表的每一行都带有适用于该实例当前状态的操作,实例详情页的页头也有同一组按钮。不适用的按钮不会显示——运行中的实例没有启动按钮,已停止的实例没有停止按钮。
销毁会先要求确认,弹出的对话框会写明将要删除哪些东西。其他操作都不会问第二遍。
点击之后会发生什么
这三个操作都不是瞬间完成的。实例会进入一个过渡状态,状态标记开始闪动,控制台持续轮询直到机器返回结果:
| 你点击的操作 | 处理期间的状态 | 完成后的状态 |
|---|---|---|
| 停止 | stopping | stopped |
| 启动 | starting | running |
| 销毁 | destroying | destroyed |
实例处于过渡状态时不接受任何进一步的操作。硬要发起操作会返回 409 INVALID_STATE,消息中会指出是哪个状态挡住了它,例如 Cannot stop an instance while it is creating。等过渡完成后再试。哪个状态能转到哪个状态,完整的映射见实例状态。
重新启动
启动需要余额。如果你所在组织的余额为零或为负,启动会被拒绝并返回 402 INSUFFICIENT_BALANCE,实例不会有任何变化——先充值余额。实例停止期间累积的存储费会在你启动它的那一刻结算,因此之后你看到的余额已经算上了整个停止时段。
启动会把你放回同一台机器、同一块磁盘上。不过连接信息会重新签发,所以要重新复制 SSH 命令,不要沿用旧的。参见通过 SSH 连接。
处于 error 的实例
没能成功启动起来的实例会落到 error。它既不能启动,也不能停止。唯一可用的操作是销毁。读日志搞清楚哪里出了问题,然后销毁它并重新部署。
通过 API 操作
以下示例使用 $SUPERHEAT_API 和 $SUPERHEAT_KEY,请按 API 概览 中的说明设置。
curl -X POST -H "Authorization: Bearer $SUPERHEAT_KEY" \
$SUPERHEAT_API/v1/instances/$INSTANCE_ID/stop
curl -X POST -H "Authorization: Bearer $SUPERHEAT_KEY" \
$SUPERHEAT_API/v1/instances/$INSTANCE_ID/start
curl -X DELETE -H "Authorization: Bearer $SUPERHEAT_KEY" \
$SUPERHEAT_API/v1/instances/$INSTANCE_ID
每个请求都会返回处于新的过渡状态的实例。轮询 GET /v1/instances/{id} 观察它何时完成。参见实例。
平台替你执行的操作
当组织的钱花完时,这三个操作中有两个会自动执行:
| 余额 | 会发生什么 |
|---|---|
| 降到 $0 | 运行中的实例被停止;磁盘保留 |
| 降到 −$5 | 实例被销毁;磁盘被删除 |
参见自动停止与自动销毁。