我有一台使用“实例存储”设备作为根设备的EC2实例。 现在,我想将一个EBS卷附加到同一实例上, 只是我想让它成为根设备。 这种情况下是否可能? 实例存储设备会发生什么?
提前感谢。
我有一台使用“实例存储”设备作为根设备的EC2实例。 现在,我想将一个EBS卷附加到同一实例上, 只是我想让它成为根设备。 这种情况下是否可能? 实例存储设备会发生什么?
提前感谢。
dd bs=65536 if=/dev/sda1 of=/dev/sdd
fsck /dev/sdd
mount /dev/sdd /root/ebs-vol
vim /root/ebs-vol/etc/fstab
umount /dev/sdd
ec2-register -s snap-12345 -a i386 -d "Description of AMI" -n "name-of-image" -k aki-12345 -r ari-12345
ec2-run-instances ami-54321 -t m1.small -n 1 -g default --availability-zone=eu-west-1a -k ec2-key1 -b /dev/sda1=snap-12345:20:false
resize2fs /dev/sda1
#! /bin/bash
device=$1
# change the filesystem labels
e2label /dev/sda1 old-uec-rootfs
e2label $device uec-rootfs
sudo reroot.sh /dev/sdp
这将完成繁琐的工作。然后您只需重新启动:
sudo shutdown -r now
嗨。
为了测试这一点,您应该创建一个您知道可以正常启动的EBS卷。我喜欢通过对上述Ubuntu AMI的基于EBS的AMI的根卷进行快照来实现这一点。从该快照中,您可以在任何可用区域创建一个新的可引导EBS卷。确保您能够区分运行实例的原始根卷和新的EBS根卷 - 在运行上述重新根目录过程之前,您可以在旧的根卷上放置一个“标记”文件:
cd
touch this-is-the-original-root-volume
接着,当您重新获取root权限并重启设备时,如果该文件存在于您的主目录中,则您仍在使用原始的root卷。如果该文件不存在,则重新获取root权限和重启设备已成功。
以下是两个使用此技术的示例用例,并附有详细说明:
http://shlomoswidler.com/2011/02/play-chicken-with-spot-instances/
http://shlomoswidler.com/2011/02/recapture-unused-ec2-minutes/
/dev/sda1
分离原始卷,但它不允许我使用旧卷在/dev/sdf
上启动。所以我尝试重新将旧卷附加到/dev/sda1
,但我又回到了BIOS提示“引导硬盘失败。不是可引导的磁盘”的问题。唯一有效的是/dev/sda1
上的原始EBS和/dev/sdf
上的旧EBS。 - sourcedelicaAlexM
提出了很好的步骤。
您可能也会对检查此链接感兴趣: http://coderslike.us/2009/12/07/amazon-ec2-boot-from-ebs-and-ami-conversion/
编辑:另一个链接:http://www.elastician.com/2009/12/creating-ebs-backed-ami-from-s3-backed.html
我使用以下命令完成了这个操作:
ec2-register --snapshot snap-9eb4ecf6 --architecture i386 --name "Zenoss Enterprise 3.0 beta 2 on centOS" --description "This is from an install of zenoss core beta 1 and zenoss enterprise beta 2, both of version 3.0 (or internally 2.5.70 217). An ebs block device was attached, and the file system rsynced over, then ebs was snapshotted and this is basedd off that." --root-device-name /dev/sda1 --kernel aki-9b00e5f2