【问题标题】:Detach root volume of ec2 instance分离 ec2 实例的根卷
【发布时间】:2017-09-28 04:14:31
【问题描述】:

我正在使用一个 Spot 实例来做一些工作并保存数据,我正在重新安装一个以前存在的卷作为我当前实例的根卷。因此,实例启动的根卷不再使用,我想将其删除以节省成本。

我已经卸载了以前的根卷,并尝试使用和不使用 --force 参数将其从 cli 中分离出来,并且都以失败告终,并出现此错误:

An error occurred (IncorrectState) when calling the DetachVolume operation: Unable to detach root volume 

我意识到这是因为 aws 将初始根安装在 xv/s da1 中,而 aws 阻止我将其分离。

我可以遵循任何步骤来分离卸载的根卷吗?

【问题讨论】:

    标签: linux amazon-web-services amazon-ec2 hardware


    【解决方案1】:

    不,没有。分离根卷需要停止实例,并且无法停止 Spot 实例。

    为了保留数据,我将重新挂载以前存在的卷作为当前实例的根卷。

    这并不是真正正确的做法。 Spot 实例本质上是短暂的,重复使用根卷不是预期的操作。

    使用 Elastic File System(如果您所在地区可用)是实现此目的的理想选择。 EFS 文件系统可以挂载到您需要的任何层次结构中,例如/srv/data,这些文件系统也可以同时挂载到多个实例。

    也可以使用 S3,但您的代码必须考虑到这一点。

    或者,如果您想移动卷,请将您的工作保存在不是根卷的 EBS 卷上。

    【讨论】:

    • 感谢您的回答。但是我必须重用根卷,我正在构建一些库,构建时间超过 45 分钟,我不想每次都重建它们,我开始做一些事情。我必须在标准 /usr/lib 等位置安装一些库才能构建 lib。我想如果我继续使用相同的 ami 并在单独的文件系统中构建 lib,它可能会工作。
    • 不,不...按照您想要的方式构建机器,制作机器的自定义 AMI,并从自定义 AMI 启动您未来的 Spot 实例。每次 Spot 机器启动时,您的所有库都会在自定义根卷的新克隆副本上。
    • 我怎么没想到。 :) 我可以从我存储的数据中创建一个 AMI 吗?所以每次,我想关闭实例,创建一个 AMI,它将存储所有数据 + 库,然后从该 AMI 启动一个新实例?那可能吗 ? aws 是否会为创建 AMI 收费。再次感谢您的帮助。
    • 每次从 AMI 启动时,您创建 AMI 时计算机 EBS 卷上的所有内容都将存在。 AMI 是免费的,但您需要为支持它们的快照支付 EBS 快照存储费用。
    • 请记住,如果您删除 AMI 也可以删除快照。每个 EBS 卷都会有一个快照。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多