jav*_*vaj 39 linux cloud-computing amazon-ec2
是否可以从现有的半虚拟化 (PV) AMI 创建硬件虚拟机 (HVM) AMI。
我最初的想法是启动一个新的 PV 实例并使用该ec2-create-image命令创建一个新映像,同时将 HVM 指定为虚拟化类型。但是,ec2-create-image没有命令行参数来指定虚拟化类型。
有没有其他方法可以做到这一点?
Jef*_*unk 22
AWS has enabled this feature in the EC2 API. It is available as the --virtualization-type option to aws ec2 register-image in the new Boto based awscli.
Yes! Unfortunately, there is not a direct way to do so. Also, some PV instances may need kernel and bootloader modifications.
ec2-create-image在 HVM 实例上运行。如果这不起作用,那么在第 5 步之前,您需要将该卷附加到正在运行的实例,设置 chroot,并为您的发行版安装内核和引导加载程序。您可能还想清除日志和任何 cloud-init 缓存。
tol*_*orf 13
就我而言,我必须手动进行转换,因为我使用创建的实例aws ec2 register-image没有启动。我的解决方案是基于这篇文章的AWS EC2论坛。
确保所有卷都在同一个可用区中。
通过 SSH 连接到要从中迁移的 PV 机器并应用所有更新,然后注销。
转到 AWS 控制台并通过选择创建 PV 系统的相同基础 AMI(在我的例子中是 Amazon 64 位 Linux AMI)来启动一个新的 HVM 实例。
SSH 到这个新实例并应用所有更新,然后注销。
转到 AWS 控制台并停止 PV 实例。拍摄根设备的快照并SOURCE VOLUME从此快照创建新卷 ( )。
停止 HVM 实例。在新实例上拍摄根设备的快照,并TARGET VOLUME从该快照创建一个新卷 ( )。
使用 AWS 控制台:
SOURCE VOLUME到新实例作为/dev/xvdf.TARGET VOLUME到新实例作为/dev/xvdg.SSH 到新实例并获得 root 访问权限:
sudo su
Run Code Online (Sandbox Code Playgroud)挂载源驱动器和目标驱动器。
mkdir -p /mnt/source && mount /dev/xvdf /mnt/source
mkdir -p /mnt/target && mount /dev/xvdg1 /mnt/target
Run Code Online (Sandbox Code Playgroud)
就我而言,设备是
/dev/xvdf(源)和/dev/xvdg1(目标)。这些可能会根据分区数量和附加位置而在您的配置中发生变化(请参阅准备中的步骤 6)。用ls -al /dev/xvd*看的驱动器。
备份/lib/modules/*(如果 PV ami 的内核与新的 HVM 机器不同。此模块被 AWS 的某些服务使用。)
删除/boot目标卷上的所有内容:
cd /mnt/target && ls | grep -v boot | xargs rm -Rf
Run Code Online (Sandbox Code Playgroud)/boot在源卷上删除:
rm -Rf /mnt/source/boot
Run Code Online (Sandbox Code Playgroud)将源卷的数据复制到保留所有属性的目标卷:
rsync -aAXHPv /mnt/source/ /mnt/target
Run Code Online (Sandbox Code Playgroud)编辑/mnt/target/etc/fstab为/分区,以便它引用的TARGET VOLUME安装在在步骤(8)其最终位置时。要么使用标签,要么简单地使用一些东西:
/dev/xvda1 / ext4 defaults,barrier=0 1 1
Run Code Online (Sandbox Code Playgroud)然后恢复/lib/modules/在步骤 3 中备份的内容。(如果 PV ami 的内核与新的 HVM 机器不同。)
使用 AWS 控制台停止系统并分离所有卷。将TARGET VOLUME新实例上的附加为/dev/xvda。
请务必注意原始根设备的安装位置。在大多数情况下,它应该是
/dev/xvda。
启动您的 HVM 实例。它现在应该是您的光伏系统的精确副本。如果一切正常,您现在可以删除您的 PV 实例以及SOURCE VOLUME.
小智 10
域名注册地址:
ec2-register -a x86_64 -d '3.15.7-200.fc20.x86_64' -n 'Fedora_20_HVM_AMI' --sriov simple --virtualization-type hvm -s snap-b44feb18 --root-device-name /dev/sda1
Run Code Online (Sandbox Code Playgroud)
详细步骤:
根据Jeff Strunk 的回复进一步回答以简化步骤并提供有关 ec2 寄存器映像的更多详细信息:
使用 PV Image 创建实例。进行/更新您想要的任何更改。
从上面的实例创建 Image。
在 EC2 控制台中的 EC2 > Elastic Block Store > Snapshot 下找到上述 AMI 使用的快照 ID。
或者如果您有 ec2 api 工具设置:
ec2-describe-images ami-id_of_above_created_ami
并找到 ami 的快照 ID
.. 进一步步骤的假设:您的 ec2 密钥和 api 工具已设置并可以使用:
使用上面的快照注册一个新的 HVM AMI:示例:
ec2-register -a x86_64 -d '3.15.7-200.fc20.x86_64' -n 'Fedora_20_HVM_AMI' --sriov simple --virtualization-type hvm -s snap-b44feb18 --root-device-name /dev/sda1
在哪里
想要查询更多的信息: