我有一个EC2实例,其中有“实例存储”设备作为根设备。 现在,我想附加一个EBS卷到同一个实例, 只有我想它是的根设备。 这可能吗? 这种情况下,实例存储设备会发生什么变化?Amazon EC2 - 使用EBS设备交换根实例存储设备
在此先感谢
我有一个EC2实例,其中有“实例存储”设备作为根设备。 现在,我想附加一个EBS卷到同一个实例, 只有我想它是的根设备。 这可能吗? 这种情况下,实例存储设备会发生什么变化?Amazon EC2 - 使用EBS设备交换根实例存储设备
在此先感谢
您可以将正在运行的实例迁移到EBS支持的AMI。以下是我做的:
DD BS = 65536若=的/ dev/SDD
的fsck的/ dev/SDD
安装的/ dev/SDD /根/ EBS-体积
VIM /根/ EBS-体积/ etc/fstab中
卸除的/ dev/SDD
EC2注册-s管理单元12345 -a I386 -d “AMI的说明” -n “名称的图像” -k AKI-12345 -r ARI-12345
ec2-run-instances ami-54321 -t m1。小-n 1 -g默认--availability区=欧盟 - 西-1A -k EC2-key1的-b的/ dev/sda1的=管理单元12345:20:假
resize2fs的/ dev/sda1的
我不知道这将是多么容易的现有实例转换,但是当你创建一个新的实例亚马逊现在提供the ability to boot directly from an EBS volume。
您也可以尝试以下将实例存储AMI转换为的工具一个EBS启动AMI: https://cloudyscripts.com/tool/show/2
代替其他长注释的就在这里,我用下面的命令来做到这一点:
EC2注册--snapshot管理单元9eb4ecf6 --architecture I386 - 名称“centos上的Zenoss Enterprise 3.0 beta 2” - 描述“这是来自zenoss核心beta 1和zenoss enterprise beta 2的3.0版本(或内部2.5.70 217)的安装。 “--root-device-name/dev/sda1 --kernel aki-9b00e5f2
AlexM
已经到来了,并且ebs被快照了,然后ebs被快照了,并且基于此。 。了良好的步骤
您也有兴趣检查此链接: 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
这可以在不创建一个新的AMI和无需启动完成新实例。完成后,原来的根卷保持连接在/ dev/sda1上(或者最初挂载的任何位置,/ dev/sda1是许多AMI的默认设置)。原始根卷不会被挂载到文件系统 - 您需要通过“mount”命令自行完成。
该技术需要最新的Ubuntu内核,即在10.04和10.10版本中运行的内核。查看alestic.com获取这些Ubuntu版本的最新AMI ID。这些最新的内核被配置为从卷标为“uec-rootfs”的任何连接设备启动。如果您正在运行其中一个内核,则只需将当前(实例存储)根卷的卷标改为其他内容,将新根的卷标改为uec-rootfs,然后重新引导。如果你没有运行这些内核之一,你就不能使用这种技术。
这是代码。在实例上把这个文件(reroot.sh):
#! /bin/bash
device=$1
# change the filesystem labels
e2label /dev/sda1 old-uec-rootfs
e2label $device uec-rootfs
首先你会附上要作为新的根采取行动,以现有的设备之一EBS卷/dev/sdf../dev/SDP。这可以通过直接的EC2 API调用,与EC2 Command Line API tools(ec2-attach-volume)或库(如boto)或通过AWS管理控制台UI完成。
然后,运行reroot.sh脚本根,并为您提供安装在新的根卷的设备,如下所示:
sudo reroot.sh /dev/sdp
这将做肮脏的工作。然后你只需重新启动:
sudo shutdown -r now
中提琴。
要测试这个,你应该创建一个EBS卷,你知道会正确启动。我喜欢通过从上面提到的Ubuntu AMI中快照EBS支持的AMI的根卷来做到这一点。从该快照中,您可以在任何可用区域创建一个新的可启动EBS卷。确保你可以告诉运行实例的原始根体积和新的EBS根卷之间的区别 - 您运行reroot以上过程,你可以把一个“标志”文件中的旧根卷上之前:
cd
touch this-is-the-original-root-volume
然后,当您重新根据并重新启动时,如果该文件存在于您的主目录中,您仍然使用原始根卷运行。如果它不在那里,那么重新启动和重新启动工作。
这里有两个例子用例这种技术,具有全面的讲解:
http://shlomoswidler.com/2011/02/play-chicken-with-spot-instances.html
http://shlomoswidler.com/2011/02/recapture-unused-ec2-minutes.html
+1,并感谢您在我的答案上做笔记...现在已删除。 – kdgregory 2011-03-31 12:19:43
+1很好的说明,但我不认为这是OP想要什么。 – kdgregory 2010-01-20 12:57:29
非常感谢您的全面回答。这太好了 – Sug 2010-02-03 21:46:12
我们基本上做了同样的事情,但是使用rsync与excludes而不是dd,也像魅力一样工作。 还有一件事需要注意(我知道这很明显,但它会一遍又一遍地发生):创建EBS卷时,请确保重复检查它与要附加到的实例位于同一区域; - ) – 2010-03-10 14:56:05