Atualizar
A AWS ativou esse recurso na API do EC2. Está disponível como --virtualization-type
opção aws ec2 register-image
no novo awscli baseado em Boto.
Resposta original
Sim! Infelizmente, não há uma maneira direta de fazer isso. Além disso, algumas instâncias de PV podem precisar de modificações no kernel e no carregador de inicialização.
- Crie um volume a partir da sua PV AMI existente. Se fosse sua própria AMI de PV, você pode criar um volume a partir da captura instantânea. Se for uma AMI de terceiros, será necessário iniciar uma instância e tirar uma captura instantânea.
- Inicie uma instância HVM com qualquer AMI.
- Pare essa instância do HVM.
- Desanexe o volume raiz dessa instância.
- Anexe o volume PV como o volume raiz (/ dev / sda1 ou / dev / sda se tiver sido particionado) à instância do HVM.
- Execute
ec2-create-image
na instância HVM.
- Inicie outras instâncias com sua nova HVM AMI.
Se isso não funcionar, antes da etapa 5, você precisará anexar esse volume a uma instância em execução, configurar um chroot e instalar um kernel e um gerenciador de inicialização para sua distribuição. Você também pode limpar logs e qualquer cache de inicialização na nuvem.
aws ec2 register-image
o sinalizador --virtualization-type no instantâneo da imagem PV. Vejaaws ec2 register-image help
para detalhes.aws ec2 register-image
. Então, lancei uma nova instância HVM a partir dessa imagem. No entanto, o sistema não inicializa.No meu caso, eu tive que fazer a conversão manualmente, pois a instância que eu criei usando
aws ec2 register-image
não foi inicializada. Minha solução é baseada nesta postagem no AWS EC2 Forum .Preparação
SSH para sua máquina fotovoltaica da qual você deseja migrar e aplicar todas as atualizações e, em seguida, efetue logout.
Vá para o Console da AWS e inicie uma nova instância HVM selecionando a mesma AMI base da qual o sistema fotovoltaico foi criado (no meu caso, a AMI Linux da Amazon de 64 bits).
SSH para esta nova instância, aplique todas as atualizações e efetue logout.
Vá para o AWS Console e pare a instância do PV. Tire uma captura instantânea do dispositivo raiz e crie um novo volume (
SOURCE VOLUME
) a partir dessa captura instantânea.Pare a instância HVM. Tire uma captura instantânea do dispositivo raiz na nova instância e crie um novo volume (
TARGET VOLUME
) a partir dessa captura instantânea.Usando o console da AWS:
SOURCE VOLUME
à nova instância como/dev/xvdf
.TARGET VOLUME
à nova instância como/dev/xvdg
.Processo de conversão
SSH para a nova instância e obtenha acesso root:
Monte as unidades de origem e destino.
Backup
/lib/modules/*
(se o kernel do PV ami diferir da nova máquina HVM. Este módulo é usado por alguns serviços da AWS.)Exclua tudo, menos
/boot
o volume de destino:Exclua
/boot
no volume de origem:Copie os dados do volume de origem no volume de destino, preservando todos os atributos:
Edite
/mnt/target/etc/fstab
para/
partição, para que ele faça referência aTARGET VOLUME
quando montado em seu local final na etapa (8). Usando um rótulo ou simplesmente algo junto:Em seguida, restaure
/lib/modules/
o backup na Etapa 3. (Se o kernel do PV ami diferir da nova máquina HVM.)Pare o sistema e desconecte todos os volumes usando o console da AWS. Anexe o
TARGET VOLUME
na nova instância como/dev/xvda
.Inicie sua instância do HVM. Agora deve ser uma duplicata exata do seu sistema fotovoltaico. Se tudo estiver correto, agora você pode excluir sua instância do PV e também
SOURCE VOLUME
.fonte
rm -f /boot
ecp -a /mnt/source/boot /mnt/target
?TLDR:
Etapas detalhadas:
Respondendo ainda com base na resposta de Jeff Strunk para simplificar as etapas e fornecer um pouco mais de detalhes sobre a imagem do registro ec2:
Crie Instância usando Imagem PV. Faça / atualize as alterações que desejar.
Crie imagem da instância acima.
Encontre o ID do instantâneo usado pela AMI acima em EC2> Elastic Block Store> Instantâneo no EC2 Console.
ou se você tiver a configuração das ferramentas da API do ec2:
ec2-description-images ami-id_of_above_created_ami
e encontre o ID da captura instantânea para o ami
.. Pressupostos para etapas adicionais: Suas chaves ec2 e ferramentas de API estão definidas e prontas para uso:
Registre uma nova HVM AMI usando o instantâneo acima: exemplo:
Onde
Para maiores informações:
fonte
Você pode fazer isso de dentro da interface da web da AWS. Navegue para os instantâneos , clique no instantâneo desejado que deseja converter para hvm, clique em ações e depois crie a imagem . Na lista suspensa no assistente para criar imagem, selecione HVM .
fonte
Tendo tentado todas as sugestões aqui contidas, nenhuma das quais funcionou para mim, encontrei uma excelente entrada de blog sobre o assunto em https://www.opswat.com/blog/aws-2015-why-you-need-switch- pv-hvm .
Os elementos (detalhes) do procedimento são:
Instale
grub
na instância PV a ser migrada (instância de origem).Faça uma captura instantânea de precaução do volume raiz na instância de origem (volume de origem, SV).
Crie uma instância temporária da HVM que migrará o volume.
Crie um volume de destino (DV) e conecte este e o SV à instância temporária.
O DV deve ser pelo menos tão grande quanto o SV.
Anexe o SV como
/dev/{sd,xvd}f
e o DV como/dev/{sd,xvd}g
.Particione o DV:
parted /dev/xvdg --script 'mklabel msdos mkpart primary 1M -1s print quit'
partprobe /dev/xvdg
udevadm settle
Redimensione para o tamanho mínimo do FS do SV e use a
dd
imagem no DV.Limpe o FS do volume de origem:
e2fsck -f /dev/xvdf
Minimize o mesmo:
resize2fs -M /dev/xvdf
Observe a saída do resize2fs (por exemplo
Resizing the file system on /dev/xvdf to 269020 (4k) blocks
) e anote-a no próximo passo.Duplicar SV para 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>
Expanda o FS na nova partição:
resize2fs /dev/xvdg1
Instale
grub
no bloco de inicialização do DVCrie temporariamente arquivos de dispositivo no DV:
mount /dev/xvdg1 /mnt; cp -a /dev/xvdg /dev/xvdg1 /mnt/dev/
Instale arquivos 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
Depois de fazer outras pequenas alterações no volume de destino, ajuste o volume e faça uma AMI a partir dele.
Arrume os arquivos temporários do dispositivo:
rm -f /mnt/dev/xvdg /mnt/dev/xvdg1
Em
/mnt/boot/grub/grub.conf
, muderoot (hd0)
pararoot (hd0,0)
, adicione (ou substituaconsole=*
)console=ttyS0
à linha do kernel e, se necessário, substituaroot=*
porroot=LABEL=/
na linha do kernelEm
/mnt/etc/fstab
, verifique se a linha do FS raiz contém uma referência rotulada, por exemploLABEL=/ / ext4 defaults,noatime 1 1
Rotule o novo FS raiz com
e2label /dev/xvdg1 /
Desmonte o DV da instância temporária, desconecte o SV e o DV da instância temporária.
Encaixe o DV e, a partir desse encaixe, crie uma imagem AMI.
Inicie uma instância HVM dessa HMI. Essa é a sua instância migrada.
fonte