我在弗吉尼亚州有一个Windows EC2 AMI和实例,但想把它迁移到俄勒冈州。 我的猜测是一个实例迁移可能是不可能的,因为它是活的,但至lessAMI + EBS卷转移将有所帮助!
另外,我知道这个问题之前已经被问过了,但是截至2011年底没有任何答案。
旧的解决scheme1,2 @ 是否可以将AWS EC2 AMI从一个区域移动到另一个区域,如果是这样的话? 。 问题 :解决scheme1需要不再支持的ElastiFox(从3.6开始,无法在Firefox上运行)。 解决scheme2只是Linux
旧的solution3 @ Amazon EC2从一个地区迁移到另一个地区 。 问题 :需要现在不支持/不兼容的ElastiFox
'Partial'solution4 @ http://blog.taggesell.de/index.php?/archives/85-Amazon-EC2-How-to-migrate-an-EBS-backed-image-from-US-to-EU-或 – where.html 。 问题 :这在AWS系统的“外部”通过创build图像然后作为stream发送它。 另外,还不清楚stream如何防止腐败(如丢包等)。 编辑: netcat是在TCP / IP,所以它是可靠的运输。 在启动时,窗口检查磁盘还是很不错的。
嗯,没有反应,所以我继续前进,并尝试了解决scheme的变种4.原来的解决scheme,因为失败了
所以我会logging什么对我有用。
设置它
我们将使用Linux在整个networking上以字节为单位复制Windows卷。 其实很简单,我刚刚给了详细的指导来帮助新手。
1.在源区域备份Windows EBS卷
2.在你使用Ubuntu的同一个区域,在你的源代码区域创build一个Linux实例 (search“ubuntu / images”AMIs)。 或者访问http://alestic.com/ ,你会发现最新官方Ubuntu AMI的链接。 我用AMI ami-20f97410作为参考。
sudo apt-get install cpipe 3.在目的地区域创build一个空白的EBS卷
4.在同一个区域的目标区域中创build一个Linux实例请阅读关于Linux实例的以上部分(#2)。 再次确保目标区域内的Linux和Windows卷区域相同。 在此磁盘写入操作期间,我的Ubuntu 11.10 32位“服务器”t1.micro实例正在打击80%的CPU。
开始复制过程
1.目的地login到Linux EC2实例并input
sudo sh -c 'netcat -p 9999 -l > /dev/xvdf'
2.源login到Linux EC2实例并input
sudo sh -c 'cpipe -vt -b 1024 < /dev/xvdf | netcat -q 1 dest-aws-ip-dns-address.com 9999'
注意 :更多新的/当前的内核将使用Windows卷的/ dev / xvdf。 较早的内核将其称为/ dev / sdf
note2 netcat有时会被别名为nc,以防你正在使用另一个Linux发行版。 cpipe只是给你的反馈进度和转让率。 netcat运行在TCP / IP上,所以它对于丢失/损坏的数据包是健壮的。 一旦传输完成,您仍然希望对目标执行一次Windows磁盘检查。
3.等待从东到西的整个操作过程中,我已经准确地获得了3.00MB /秒(兆字节,而不是兆位)。 我的30GB图像需要2小时50分钟。
4.创build新的Windows EC2实例我们有一个卷,但需要一个EC2实例/机器来实际启动任何东西。 如果使用AWS控制台GUI进行卷 – >快照 – > AMI,AWS会错误地创build一个不启动的Linux (?!?)虚拟机,因为EC2configuration现在是垃圾。 我们通过
5.清理记住,你只做了以下
如果你终止了上述,那么它永远消失了,没有AMI可以重新启动它。 所以,我会强烈推荐
结论这是一个很长的写作,但我没有留下新手的细节。 上述工作从美东(弗吉尼亚州)迁移到美西(俄勒冈州)100%。 我在加利福尼亚州,这样做是为了让虚拟机靠近我,而不会影响北加州的高收费。