我有这个问题,我需要克隆一个EC2实例,但不能创build我的运行实例的图像。 哪里有问题? 我希望你们中有人知道AWS并能帮助我。
http://screencast.com/t/9l1wSb0Fjas
问候,弗雷德里克
您会注意到,图片中的灰色选项是针对EBS支持的实例,而您的实例具有实例存储(即S3支持的)根卷。
为了克隆这个实例,你有两个select。
选项1:如果您希望您的(新)实例也是实例存储,您可以创build现有实例的AMI并从中启动一个新实例。 它将与您当前的实例相同(但只有根卷 – 如果其他临时磁盘上有数据,则需要单独处理)。 对于这种方法:
ec2-bundle-vol -d /mnt -k $EC2_PRIVATE_KEY -c $EC2_CERT -u USERID -s SIZE ec2-upload-bundle -b BUCKETNAME -m MANIFESTFILE -a ACCESSKEY -s SECRETKEY
(如果你正在运行诸如绑定之类的东西,你会想在捆绑前停下来 – 事实上,最好是停止任何你可以获得一致的映像的服务 – 这取决于你的服务器的使用情况,你也可以考虑冻结文件系统)
选项2:将根文件系统复制到EBS卷,然后从中创buildAMI。
附上一个EBS卷,用于保存根卷的数据挂载您的EBS卷,然后使用以下命令复制数据:
rsync -aHAXxSP /source /target
根据您的新EBS卷启动实例(您将需要在启动时或创buildAMI时明确指定您的实例包含的任何临时存储(即块映射))。
我写了一篇文章描述如何从正在运行的实例存储实例创build一个AMI:
通过重新绑定运行实例为EC2创build新映像
http://alestic.com/2009/06/ec2-ami-bundle
这是在EBS启动实例可用之前的2009年。
你的文件系统不一致的风险很小,但是很less见。
我build议您切换到EBS启动实例,在这些实例中,创buildAMI以及其他一系列优点变得更加容易。
你不能制作一个镜像,因为你不能做一个真正的文件系统的完整磁盘克隆 – 否则你会试图复制中间操作导致腐败的文件。
如果实例停止,该选项将变为可用。
这是一个古老的,但非常好的和深入的答案如何做到你正在寻找的。
http://robrohan.com/2009/01/30/saving-a-customised-linux-amazon-instance-ec2-and-s3/