将AWS EC2 m3.large迁移到m4.large

新的m4实例看起来比以前的m3实例(性能和pice)要好得多,所以我将把它们作为我们云服务的默认实例。 这些服务之前在m3实例上运行,所以我想使用“更改实例types”选项执行定期升级。 但它似乎不适用于m3-to-m4迁移。 我知道,通过从原始磁盘映像创build磁盘映像,然后根据映像启动新实例,可以将服务从一个实例“移动”到另一个实例。 问题是,是否有可能以更优雅的方式执行此迁移? 任何意见表示赞赏。

你有两个select:

1 – 重新configuration

正如EEAA提到的那样,您可以使用configurationpipe理工具(如果服务器在生产环境中使用,您应该使用configuration)来configuration它,或者恢复备份,然后迁移您的服务并重新指向DNS 。

如果使用configurationpipe理或自动调节,这种方法非常简单。

2 – resize

2.1 EBS支持的实例

您可以通过Amazon控制台手动调整实例的大小。 有关详细说明,请参阅Amazon文档 。

当你有一个独立的实例时,这种方法很有用。

2.2 – 实例存储支持的实例

如果使用实例存储支持的实例,则需要通过创build实例的AMI来进行迁移,销毁当前实例并使用刚刚创build的AMI创build新实例。 有关如何执行此操作的详细信息位于相同的Amazon文档资源中 。

回答:

  1. 启动一个Ubuntu HVM linux,任何版本,新的

  2. 使用我现有的AMI / PVM linux启动一个Ubuntu /并安装grub软件包: apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists

  3. 停止PVM linux

  4. 在PVM linux分离根(/ dev / sda1)分区

  5. 将PVM linux根分区连接到某处运行HVM linux,例如:/ dev / sdf

  6. 在HVM linux上: mkdir -p /mnt/xvdf && mount /dev/xvdf /mnt/xvdf

  7. rsync -avzXA /boot/ /mnt/xvdf/boot/

  8. mount -o bind /dev /mnt/xvdf/dev && mount -o bind /dev/pts /mnt/xvdf/dev/pts && mount -o bind /proc /mnt/xvdf/proc && mount -o bind /sys /mnt/xvdf/sys

  9. chroot /mnt/xvdf

  10. grub-install --no-floppy --recheck --force /dev/xvdf

  11. update-grub2

  12. 退出chroot:CTRL + D

  13. 停止HVM Linux

  14. 分离/ dev / sda1原始根目录并分离/ dev / sdf PVM根目录

  15. 将PVM root作为/ dev / sda1附加到HVM linux

  16. 启动HVM linux,voilà!

  17. 从正在运行的HVM linux创build一个新的AMI映像,它将被HVM虚拟化。

取自: https : //stackoverflow.com/posts/26276763/edit

如果您可以忍受几分钟的停机时间:

  • 创buildm4实例,但不要启动它,也不要创build或附加存储
  • 停止m3实例
  • 将现有的EBS卷从m3实例附加到新的m4实例
  • 启动m4实例。 它应该和m3实例一样