【问题标题】:Attach existing EBS as root device in spot instance request在 Spot 实例请求中附加现有 EBS 作为根设备
【发布时间】:2019-02-06 01:06:24
【问题描述】:

是否可以在 Spot 实例请求中包含现有的、未附加的、可用的 EBS 卷作为根设备?我想创建一个设置,当满足现货价格时系统启动并运行,在终止并且现货价格回到范围后,我可以重新请求并在我离开的地方启动一个实例。

谢谢!

【问题讨论】:

  • 不确定你是否能得到这个答案,如果不能告诉我们。据我所知,如果 EBS 与实例位于同一区域,您应该能够做到这一点。
  • @RakeshS - 我不知道这样的选项,请参阅my respective answer 了解详情;因此,如果您有解决 Mark 要求的解决方案或解决方法,请告诉我们。

标签: amazon-web-services amazon-ec2 amazon-ebs


【解决方案1】:

虽然Overriding the AMI's Block Device Mapping 是可能的,但不幸的是,根设备是个例外:

您自动启动的任何实例都包含 AMI 的块储存设备映射。您可以通过以下方式覆盖该映射 使用您想要的更改指定块储存设备映射 发射时间。在您的覆盖中,您可以修改任何 除根设备卷以外的存储设备[强调我的]

这也反映在AWS Management Console 中的各个向导中,它们只允许调整根卷大小,而不是它所基于的快照,请参见其中的图像 Changing the Root Device Volume to Persist.

【讨论】:

  • 从那以后情况有变化吗?我们仍然无法为现有 AMI 重新分配根设备?
【解决方案2】:

您可以使用默认点卷启动,然后 pivot_root 初始化到单独的 EBS 卷。

EC2 Spotter 工具可以为您管理此问题。 EC2 Spotter 文档中的 sn-p:

启动脚本使用用户数据创建启动时脚本, 将指定的 EBS 卷附加到 /dev/xvdf 然后继续执行 一个 pivot_root 和 chroot 以便将其用作主系统磁盘 /dev/xvda 的位置。首次创建或重新启动实例时 中断后,基于 AMI 的 EBS 卷上的 /sbin/init (/dev/xvda1) 被替换为一个小的 shell 脚本,它执行 魔术 pivot_root 和 chroot 然后链式加载 /sbin/init 从 指定的持久 EBS 卷 (/dev/xvdf1)。额外的重启是 当实例第一次出现时执行,以确保一个干净的状态。 最终结果是在持久卷上运行完整的 Linux 系统 dev/xvdf 安装为 /。临时磁盘仍然安装在 /old-root 并且可以根据需要卸载。

另请参阅 StackOverflow 答案:AWS EC2: How to remount previous EBS volume using pivot_root?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 2012-12-06
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 2011-01-06
    • 2014-10-05
    相关资源
    最近更新 更多