[英]What happens to my EC2 instance data (EBS) when I stop the instance?
[英]Can I change the root EBS device of my amazon EC2 instance?
我有一个 EBS 支持的 Amazon EC2 实例。 我想更改此实例上的根设备。 能请教go这方面的最佳途径吗?
我只找到有关更改块设备的几个属性的文档,但它们似乎不包括将其设置为根设备。
是的,这很容易:
/dev/sda1
当然,这前提是您的备用 EBS 卷是可引导的——它必须包含可引导的操作系统映像。
我没有足够的代表来为所选答案添加评论,但我确实想指出, /dev/sda1
不起作用(未以 root 身份附加),但使用/dev/xvda
起作用(作为根附加)。 该实例是使用 HVM 的较新的 t2.micro 实例之一。
要详细说明 Diomidis Spinellis 在已接受答案的评论线程中的评论,请务必检查您尝试作为新根设备切换的设备的文件系统标签。 在对我自己的服务器迁移进行故障排除时,我必须在我的实例启动之前执行以下操作:
使用e2label
命令更改您为新根设备创建的 ext2/ext3/ext4 文件系统上的标签。
首先,检查当前根设备的文件系统标签。
$ sudo e2label /dev/xvda1
cloudimg-rootfs
将新设备设置为具有相同的文件系统标签。
$ sudo e2label /dev/xvdg 'cloudimg-rootfs'
就我而言,标签是cloudimg-rootfs
。 有时它只是/
。
了解 e2label 的工作原理很重要; 检查您机器上的man e2label
或访问http://linux.die.net/man/8/e2label了解更多信息。
这是 aws 建议的解决方案您可以在停止根卷后从原始实例中分离它。 根卷附加在 /dev/sda1。 分离后,请将其附加到新实例。 附加卷后,您可能必须从操作系统安装它。 挂载后,您应该会看到其中的数据。
添加完新密钥后,您可以将其分离并附加到 /dev/sda1 处的原始实例。
我建议在进行任何更改之前创建根卷的快照。
在尝试任何解决方案之前,只需在不重要的实例或现场实例中进行尝试
如果您想通过 CloudFormation 执行此操作,则需要执行以下操作:
部署您的堆栈。 这将重新创建您的实例,因此请确保您使用的是弹性 IP 地址或具有 DNS 访问权限。
您必须执行此解决方法的原因是因为 CF 不允许您调整 EC2 BlockDeviceMappings 上的根卷大小,或调整根卷的 SnapshotId。
当你的卷被挂载时,它会得到一个带有数字的后缀,例如:当/dev/sda
被挂载时,它被挂载为/dev/sda1, /dev/sda2
这取决于你所做的分区。 当我们安装根设备本身时,它假定设备已经安装,因此我们需要提供/dev/sda1
以将卷安装为根设备。 注意:不应附加任何根卷。
请按照下列步骤操作: 1) 转到您的卷,从操作中选择附加卷。 2) 选择您的实例 3) 要以 root 身份安装,请将设备名称指定为/dev/sda1
4) 启动您的实例。
/dev/sda1
上周 AWS 宣布了一种新方法,可以用更少的停机时间和无需停止和启动 EC2 实例来替换根卷。 请看下面的链接。 EC2 替换根卷
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.