Обновить
AWS включил эту функцию в API EC2. Он доступен в качестве --virtualization-type
опции aws ec2 register-image
в новом awscli на основе Бото.
Оригинальный ответ
Да! К сожалению, прямого пути для этого нет. Кроме того, некоторые экземпляры PV могут нуждаться в модификации ядра и загрузчика.
- Создайте том из вашего существующего PV AMI. Если это был ваш собственный PV AMI, вы можете сделать том из снимка. Если это сторонний AMI, вам нужно запустить экземпляр и сделать снимок.
- Запустите экземпляр HVM с любым AMI.
- Остановите этот экземпляр HVM.
- Отключите корневой том от этого экземпляра.
- Подключите том PV в качестве корневого тома (/ dev / sda1 или / dev / sda, если он был разделен) к экземпляру HVM.
- Запустите
ec2-create-image
экземпляр HVM.
- Запустите другие экземпляры с вашим новым HVM AMI.
Если это не сработает, то перед шагом 5 вам нужно будет подключить этот том к работающему экземпляру, настроить chroot и установить ядро и загрузчик для вашего дистрибутива. Вы также можете очистить журналы и любой облачный init-кеш.
aws ec2 register-image
флаг --virtualization-type на снимке изображения PV. Смотритеaws ec2 register-image help
подробности.aws ec2 register-image
. Затем я запустил новый экземпляр HVM из этого образа. Однако система не загружается.В моем случае мне пришлось выполнить преобразование вручную, так как экземпляр, который я создал с помощью
aws ec2 register-image
, не загрузился. Мое решение основано на этом посте на форуме AWS EC2 .подготовка
SSH к вашей PV-машине, с которой вы хотите перейти и применить все обновления, затем выйдите из системы.
Перейдите на консоль AWS и запустите новый экземпляр HVM, выбрав тот же базовый AMI, из которого была создана PV-система (в моем случае - Amazon 64-bit Linux AMI).
SSH к этому новому экземпляру и примените все обновления, затем выйдите из системы.
Перейдите на консоль AWS и остановите экземпляр PV. Сделайте снимок корневого устройства и создайте новый том (
SOURCE VOLUME
) из этого снимка.Остановите экземпляр HVM. Сделайте снимок корневого устройства на новом экземпляре и создайте новый том (
TARGET VOLUME
) из этого снимка.Использование консоли AWS:
SOURCE VOLUME
к новому экземпляру как/dev/xvdf
.TARGET VOLUME
к новому экземпляру как/dev/xvdg
.Процесс конверсии
SSH к новому экземпляру и получить root-доступ:
Смонтируйте исходные и целевые диски.
Резервное копирование
/lib/modules/*
(Если ядро PV ami отличается от нового компьютера HVM. Этот модуль используется некоторыми сервисами AWS.)Удалить все, кроме
/boot
целевого тома:Удалить
/boot
на исходном томе:Скопируйте данные исходного тома на целевой том, сохранив все атрибуты:
Правка
/mnt/target/etc/fstab
для/
раздела, так что он ссылается наTARGET VOLUME
при установке на его окончательное место на стадии (8). Либо с помощью метки, либо просто что-то вместе:Затем восстановите
/lib/modules/
резервную копию на шаге 3. (Если ядро PV ami отличается от новой машины HVM.)Остановите систему и отсоедините все тома с помощью консоли AWS. Прикрепить
TARGET VOLUME
на новый экземпляр как/dev/xvda
.Запустите свой экземпляр HVM. Теперь он должен быть точной копией вашей фотоэлектрической системы. Если все выглядит хорошо, вы можете удалить свой экземпляр PV, а также
SOURCE VOLUME
.источник
rm -f /boot
аcp -a /mnt/source/boot /mnt/target
?TLDR:
Подробные шаги:
Ответ далее, основанный на ответе Джеффа Струнка, чтобы упростить шаги и дать немного больше деталей на изображении регистра ec2:
Создайте экземпляр, используя PV Image. Внесите / обновите любые изменения, которые вы хотите.
Создать изображение из приведенного выше экземпляра.
Найдите идентификатор снимка, используемый вышеуказанным AMI, в EC2> Хранилище эластичных блоков> Снимок в консоли EC2.
или если у вас есть настройки eci api:
ec2-description-images ami-id_of_above_created_ami
и найдите идентификатор снимка для ами
.. Предположения для дальнейших действий: Ваши ключи ec2 и инструменты API настроены и готовы к использованию:
Зарегистрируйте новый HVM AMI, используя приведенный выше снимок экрана: пример:
где
За дополнительной информацией:
источник
Вы можете сделать это из веб-интерфейса AWS. Перейдите к снимкам , выберите нужный снимок, который вы хотите преобразовать в hvm, и нажмите « Действия», а затем создайте изображение . В раскрывающемся списке в мастере создания изображений выберите HVM .
источник
Перепробовав все приведенные здесь предложения, ни одно из которых не помогло мне, я нашел отличную запись в блоге на эту тему по адресу https://www.opswat.com/blog/aws-2015-why-you-need-switch-. PV-HVM .
Элементы (детали) процедуры:
Установите
grub
экземпляр PV, который необходимо перенести (исходный экземпляр).Сделайте предупредительный снимок корневого тома на исходном экземпляре (исходный том, SV).
Создайте временный экземпляр HVM, который перенесет том.
Создайте целевой том (DV) и присоедините и этот, и SV к временному экземпляру.
DV должно быть как минимум таким же большим, как SV.
Присоедините SV как
/dev/{sd,xvd}f
, а DV как/dev/{sd,xvd}g
.Раздел DV:
parted /dev/xvdg --script 'mklabel msdos mkpart primary 1M -1s print quit'
partprobe /dev/xvdg
udevadm settle
Измените размер до минимума FS FS, и используйте
dd
изображение на DV.Очистите FS исходного тома:
e2fsck -f /dev/xvdf
Минимизируйте то же самое:
resize2fs -M /dev/xvdf
Обратите внимание на вывод resize2fs (например
Resizing the file system on /dev/xvdf to 269020 (4k) blocks
) и запишите его для следующего шага.Дублировать SV в DV:
dd if=/dev/xvdf of=/dev/xvdg1 bs=<block size from previous step, here 4k> count=<use block count from last step, here 269020>
Разверните FS на новый раздел:
resize2fs /dev/xvdg1
Установите
grub
в загрузочный блок DVВременно создайте файлы устройства на DV:
mount /dev/xvdg1 /mnt; cp -a /dev/xvdg /dev/xvdg1 /mnt/dev/
Установите файлы grub:
rm -f /mnt/boot/grub/*stage*
cp /mnt/usr/*/grub/*/*stage* /mnt/boot/grub/
rm -f /mnt/boot/grub/device.map
cat << ARNIE | chroot /mnt grub --batch
device (hd0) /dev/xvdg
root (hd0,0)
setup (hd0)
ARNIE
Сделав некоторые другие незначительные изменения в томе назначения, сделайте снимок тома и сделайте из него AMI.
Уберите временные файлы устройства:
rm -f /mnt/dev/xvdg /mnt/dev/xvdg1
В
/mnt/boot/grub/grub.conf
, измененияroot (hd0)
кroot (hd0,0)
, добавьте (или заменитьconsole=*
)console=ttyS0
в строке ядра, и при необходимости заменитьroot=*
сroot=LABEL=/
в строке ядраВ
/mnt/etc/fstab
, убедитесь , что линия корневого FS содержит меченую ссылку, например ,LABEL=/ / ext4 defaults,noatime 1 1
Пометьте новый корневой файл FS с помощью
e2label /dev/xvdg1 /
Отключите DV от временного экземпляра, отсоедините SV и DV от временного экземпляра.
Сделайте привязку к DV, и из этого снимка создайте изображение AMI.
Запустите экземпляр HVM из этого HMI. Это ваш перенесенный экземпляр.
источник