Com o novo shape do tipo Flex, a configuração do ambiente se tornou cada vez mais flexível, permitindo uma infinidade de combinações de CPU e memória (e também valor).
Recebemos uma demanda de um cliente que era alterar algumas máquinas que já existiam com shape Intel(VM.Standard2) para o Shape Flex(VM.Standard.E3.Flex), caso você esteja rodando com uma imagem compatível (depois de Março de 2020 para linux e abril de 2020 para Windows), essa mudança pode ser feita diretamente pelo dashboard, mas caso não seja, o seguinte erro vai ser apresentado:
Either the image isn’t compatible with flexible shapes, or flexible shapes aren’t supported in this availability domain
Depois de analisar as possibilidades junto ao cliente, fizemos uma solução de contorno que descrevo aqui, dessa forma ele não precisou reinstalar todas as suas aplicações, também explico algumas coisas que tentamos e não deu certo.
Lembrando que não me responsabilizo por nenhum erro que possa acontecer caso siga os procedimentos e sempre faça um backup antes!
Criar um clone, selecionar o shape AMD e depois alterar para o Flex
Essa foi a primeira opção que tentamos realizar, principalmente para validar se a máquina iria dar boot com um processador diferente pois ela estava usando uma imagem de 2019.
Infelizmente ao criar o clone, você fica limitado aos shapes que a “máquina” original era compatível:
Custom image
Depois de algum tempo quebrando a cabeça, lembrei de uma migração que fizemos entre regiões onde geramos custom images de todas as máquinas da origem e exportamos elas para uma outra região.
Essa foi a opção que funcionou para o ambiente, o ponto de atenção aqui é que diferente do Clone que é feito com a máquina no ar, quando mandamos fazer uma custom image isso vai causar um downtime pois o sistema operacional é reiniciado.
Para criar a Custom image, basta ir na instância -> More Actions -> Create Custom image, ao clicar em Create, sua máquina vai ser reiniciada de forma automática, por isso é importante que você pare todos os serviços que estejam executando nela(ou pelo menos aqueles que escrevam no disco) para realizar um backup consistente.
Após a custom image ter sido criada, vá nela e altere para que o Shape Flex esteja disponível na criação das VMs:
Pulo do gato (Jump of the cat)
Você já criou a custom image e agora basta dar o boot nela e ser feliz, certo? Mais ou menos, caso você crie a imagem e mantenha a opção Let Oracle Cloud Infrastructure choose the best networking type marcada nas opções de rede, existe uma grande chance dela subir e não reconhecer a placa de rede, sendo assim, recomendo que você selecione a opção Paravirtualized networking ou deixe os drivers compatíveis dentro da máquina antes de realizar o procedimento, lembre que estamos fazendo isso pois a imagem é mais antiga então talvez não existisse suporte na época aos outros drivers.