新的 m4 实例看起来比以前的 m3 实例好得多(就性能和价格而言),所以我打算将它们作为我们云服务的默认实例。这些服务之前在 m3 实例上运行过,所以我想使用“更改实例类型”选项执行常规升级。但似乎它不适用于 m3 到 m4 的迁移。我知道,可以通过从原始实例创建磁盘映像,然后基于该映像启动新实例,将服务从一个实例“移动”到另一个实例。问题是,是否有可能以更优雅的方式执行此迁移?任何建议都值得赞赏。
答案1
您有两个选择:
1 - 重新配置
正如 EEAA 所提到的,您可以启动一个新实例,使用配置管理工具对其进行配置(如果服务器用于生产,则应该使用配置)或恢复备份,然后迁移您的服务并重新指向 DNS。
如果您使用配置管理或自动缩放,这种方法非常简单。
2 - 调整大小
2.1 EBS 支持的实例
您可以通过 Amazon 控制台手动调整实例大小。请参阅亚马逊文档了解详细说明。
当您有一个独立实例时,这种方法很有用。
2.2 - 实例存储支持的实例
如果你使用实例存储支持实例,您需要通过创建实例的 AMI、销毁当前实例并使用刚创建的 AMI 创建新实例来进行迁移。有关如何执行此操作的详细信息位于同一亚马逊文档资源。
答案2
回答:
启动 Ubuntu HVM Linux,任何版本,新
使用我现有的 AMI / PVM Linux 启动 Ubuntu / 并在其上安装 grub 包:
apt-get install grub-pc grub-pc-bin grub-legacy-ec2 grub-gfxpayload-lists
停止 PVM Linux
在 PVM Linux 上分离根 (/dev/sda1) 分区
将 PVM Linux 根分区附加到正在运行的 HVM Linux 的某个位置,例如:/dev/sdf
在 HVM Linux 上:
mkdir -p /mnt/xvdf && mount /dev/xvdf /mnt/xvdf
rsync -avzXA /boot/ /mnt/xvdf/boot/
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
chroot /mnt/xvdf
grub-install --no-floppy --recheck --force /dev/xvdf
update-grub2
退出 chroot:CTRL+D
停止HVM Linux
分离 /dev/sda1 原始根目录并分离 /dev/sdf PVM 根目录
将 PVM 根目录附加到 HVM Linux 作为 /dev/sda1
启动 HVM linux,瞧!
从正在运行的 HVM linux 创建一个新的 AMI 映像,它将是 HVM 虚拟化的。
答案3
如果您可以忍受几分钟的停机时间:
- 创建 m4 实例,但不要启动它,也不要创建或附加存储
- 停止 m3 实例
- 将 m3 实例中的现有 EBS 卷附加到新的 m4 实例
- 启动 m4 实例。其行为应与 m3 实例相同