Inscreva-se no feed

Muitas empresas e organizações estão migrando de plataformas de virtualização tradicionais para soluções de nuvem híbrida. Recentemente, um grupo de engenheiros da Red Hat passou por essa jornada: eles realizaram uma migração em larga escala do Red Hat Virtualization para o Red Hat OpenShift usando o kit de ferramentas de migração para máquinas virtuais, um recurso avançado para transferir cargas de trabalho virtuais para o OpenShift.

Nosso ambiente do Red Hat Virtualization operou centenas de máquinas virtuais (VMs) por mais de uma década. Algumas eram usadas por engenheiros no desenvolvimento e em testes, e outras eram voltadas às cargas de trabalho de produção. No entanto, à medida que o fim da vida útil do Red Hat Virtualization se aproximava, decidimos que era hora de migrar as máquinas virtuais para o OpenShift.

Considerando a natureza das máquinas virtuais que eram executadas no Red Hat Virtualization e nossa intenção de diminuir as interrupções para os usuários finais, optamos por continuar operando as cargas de trabalho das VMs no OpenShift por meio do OpenShift Virtualization. Para isso, usamos o kit de ferramentas de migração para máquinas virtuais 2.4, que era a versão mais avançada na época e incluía funcionalidades de migração aprimoradas.

A jornada do Red Hat Virtualization para o OpenShift trouxe muitos desafios não só para nós, mas também para os usuários. Neste artigo, explicaremos como lidamos com esses desafios e oferecer outros insights com base na nossa experiência.

Preparação e planejamento

Um planejamento minucioso foi essencial para o sucesso da migração. À medida que começamos o planejamento, percebemos que enfrentaríamos diversos desafios.

Em primeiro lugar, era preciso assegurar que o cluster de destino do OpenShift tivesse recursos suficientes para lidar com as cargas de trabalho migradas. Começamos identificando as máquinas virtuais que não haviam sido usadas recentemente no Red Hat Virtualization, além daquelas que não deveriam ser migradas para o novo ambiente do OpenShift a pedido dos proprietários. Essas VMs não foram incluídas no processo. Depois, asseguramos que havia espaço de armazenamento suficiente no OpenShift para os discos das máquinas virtuais que seriam migradas. Também verificamos na VLAN de destino do OpenShift se havia endereços IP suficientes para alocar para as VMs.

Em segundo lugar, percebemos ser preciso conectar os modelos de provisionamento usados no Red Hat Virtualization e no ambiente do OpenShift Virtualization. No Red Hat Virtualization, as novas máquinas virtuais eram atribuídas aos usuários pelos administradores. Por outro lado, no OpenShift Virtualization, os usuários são atribuídos aos projetos pelos administradores e podem criar máquinas virtuais nos próprios projetos.

Em terceiro lugar, no kit de ferramentas de migração para máquinas virtuais, tanto os provedores de origem como os de destino são definidos com credenciais de usuário. Assim, os usuários podem definir um provedor de origem de onde as máquinas virtuais serão migradas (caso tenham permissão para isso) e um provedor de destino onde as VMs serão criadas em nome dele. No nosso caso, em vez de pedir que cada usuário migrasse sua própria máquina virtual, preferimos transferir todas elas de uma só vez. Portanto, foi preciso operar com usuários que tinham privilégios de administrador nas duas plataformas, permitindo o acesso a todas as máquinas virtuais no Red Hat Virtualization e a criação de novas VMs em todos os projetos do OpenShift.

Descobrimos que não era fácil identificar quais máquinas virtuais haviam sido usadas recentemente (no nosso caso, no ano passado) e o tamanho dos discos delas para determinar se o cluster de destino do OpenShift tinha capacidade de armazenamento suficiente. Além disso, tivemos o trabalho extra de fazer com que os proprietários das máquinas virtuais do Red Hat Virtualization criassem os projetos correspondentes no OpenShift para conectar os diferentes modelos de provisionamento. Para superar esses desafios, implementamos scripts Python.

O primeiro grupo de scripts coletava dados do Red Hat Virtualization usando o SDK oVirt. Com base nesses dados, identificamos quando as máquinas virtuais foram usadas pela última vez e filtramos as que não foram utilizadas no último ano. Após estabelecer a lista final de máquinas virtuais que seriam migradas, coletamos os detalhes sobre o tamanho dos discos delas e seus respectivos proprietários. As informações coletadas do Red Hat Virtualization mostravam que não havia espaço de armazenamento suficiente no cluster do OpenShift para os dados das máquinas virtuais migradas. Para solucionar esse problema, aumentamos o espaço no cluster do OpenShift com a adição de uma nova classe de armazenamento.

Usamos um segundo grupo de scripts para preparar os projetos no cluster do OpenShift por meio da API do Kubernetes. Com os dados coletados do primeiro grupo de scripts, identificamos os conjuntos de proprietários de cada uma das máquinas virtuais migradas. Para cada um desses conjuntos, criamos um projeto no cluster do OpenShift e o atribuímos aos proprietários, concedendo a eles a função ClusterRole com permissões de administrador.

Para fins de ilustração, vamos imaginar uma VM chamada shared_vm que é de dois usuários do Red Hat Virtualization: Alice e Bob. No OpenShift, criamos um projeto chamado alice-bob-ns, em que tanto Alice como Bob têm permissões. Em seguida, migramos a máquina virtual shared_vm para o projeto alice_bob_ns. Outras máquinas virtuais de propriedade de Alice e Bob no Red Hat Virtualization também podem ser migradas para o mesmo projeto, alice_bob_ns. É possível atribuir Alice e Bob a outros projetos com máquinas virtuais do Red Hat Virtualization que eles possuem individualmente ou com outros usuários. Seguindo essa abordagem, podemos lidar com os diferentes modelos de provisionamento nos ambientes do Red Hat Virtualization e do OpenShift.

Após solucionar esse problema, passamos para a migração das máquinas virtuais.

Execução

A migração em si teve várias etapas:

  1. Implantação do kit de ferramentas de migração para máquinas virtuais no cluster de destino do OpenShift. Com esse kit, é possível migrar máquinas virtuais para o cluster do OpenShift em que elas serão executadas ou para clusters remotos do OpenShift adicionados como provedores de destino. No nosso caso, como todas as máquinas virtuais foram migradas para um único cluster do OpenShift, instalamos nele o operador do kit de ferramentas de migração para máquinas virtuais.
  2. No console web do OpenShift, utilizamos um usuário administrador para configurar o cluster do OpenShift para a migração. Fizemos o seguinte:
    1. Criamos um projeto de gerenciamento designado para o processo de migração.
    2. Criamos o provedor de origem do Red Hat Virtualization, o cluster local do OpenShift como um provedor de destino e os mapeamentos de armazenamento e rede no projeto de gerenciamento.
  3. Devido ao grande número de planos de migração que foram necessários transferir para os projetos de destino, automatizamos a criação e a execução deles usando scripts com privilégios de administrador. Esses scripts realizaram as seguintes ações:
    1. Criar um plano de migração frio por projeto de destino. Escolhemos a migração fria porque não estávamos preocupados com o downtime das máquinas virtuais, e ela normalmente é mais rápida do que a morna.
    2. Criar um plano de migração a migração para acionar os planos de migração.

A maioria dos planos de migração de máquinas virtuais foi concluída com sucesso, mas enfrentamos dois desafios interessantes durante o processo.

Primeiro, enquanto aguardávamos a conclusão da primeira migração de máquinas virtuais, percebemos que ela demorava mais do que o esperado. Isso era a consequência de executar inúmeros planos de migração ao mesmo tempo.

No kit de ferramentas de migração para máquinas virtuais, é possível limitar a quantidade de migrações de VMs executadas em paralelo como parte de um plano de migração. No entanto, não há como restringir o número de migrações executadas em diferentes planos de migração. Por isso, ao executar muitos planos de migração ao mesmo tempo, esgotamos a largura de banda da rede, o que deixou as migrações de máquinas virtuais mais lentas.

No nosso caso, o tempo necessário para transferir todos os planos de migração era mais importante do que o downtime de cada máquina virtual migrada. Além disso, o tempo geral da migração não foi afetado por essa escolha. No entanto, é preciso implementar os planos de migração gradualmente ou realizar migrações mornas quando o tempo geral do processo é afetado pelo esgotamento da largura de banda da rede. Isso pode acontecer quando as migrações de máquinas virtuais expiram, ou quando o downtime de cada VM precisa ser minimizado.

O segundo desafio é que três em cada 120 migrações de máquinas virtuais falharam. Após investigar essas falhas, descobrimos que elas ocorriam devido a um bug na nossa base de código. Corrigimos o bug com rapidez e depois migramos com sucesso todas as máquinas virtuais usando uma versão corrigida do kit de ferramentas de migração para máquinas virtuais. A correção desse problema está incluída no kit de ferramentas de migração para máquinas virtuais 2.5.

Com esses ajustes, todas as máquinas virtuais foram migradas com sucesso para o OpenShift.

Validação de máquinas virtuais (VM) no OpenShift

Depois que todas as migrações foram concluídas com o kit de ferramentas de migração para máquinas virtuais, realizamos verificações de integridade em várias VMs selecionadas aleatoriamente no OpenShift Virtualization, e cada uma delas foi aprovada. Em seguida, coletamos mais feedback dos proprietários dessas máquinas virtuais. Em geral, recebemos comentários positivos dos usuários em relação às máquinas virtuais migradas no OpenShift Virtualization, mas alguns problemas foram relatados.

Um problema envolvia algumas máquinas virtuais que falhavam na inicialização e exibiam a mensagem "nenhum sistema operacional encontrado". Depois de uma investigação, descobrimos que isso acontecia apenas nas máquinas virtuais com vários discos e somente quando um disco incorreto era escolhido para a inicialização. A solução foi modificar a ordem de inicialização das máquinas virtuais manualmente para assegurar que elas fossem inicializadas a partir do disco inicializável. Esse problema foi devidamente corrigido no kit de ferramentas de migração para máquinas virtuais 2.5.

Além disso, algumas interrupções de serviço foram relatadas. Durante a migração, as máquinas virtuais alteravam a VLAN delas devido a restrições da infraestrutura. Algumas cargas de trabalho e serviços nessas VMs ficaram inacessíveis depois da inicialização. Isso acontecia porque a nova VLAN tinha registros DNS configurados com nomes de domínio totalmente qualificados (FQDNs) e endereços IP diferentes. Para solucionar esse problema, orientamos os usuários a adaptarem as cargas de trabalho e os clientes externos às novas configurações de FQDN.

Lições aprendidas

Mudar de data centers tradicionais para soluções de nuvem híbrida é um desafio. Há várias abordagens compatíveis com diferentes ferramentas que os usuários podem escolher. Neste artigo, descrevemos uma migração de máquinas virtuais do Red Hat Virtualization para o OpenShift feita internamente na Red Hat.

Ela exigiu um planejamento cuidadoso e abrangente, além de uma comunicação clara com todos os stakeholders da organização. Embora o kit de ferramentas de migração para máquinas virtuais ofereça soluções para facilitar as migrações para o OpenShift Virtualization, ele nem sempre abrange todas as etapas técnicas necessárias.

Neste artigo, você descobriu como usamos o kit de ferramentas de migração para máquinas virtuais com scripts implementados para as operações que o kit não pode manipular. Esses scripts estão disponíveis no GitHub. Com essas ferramentas, conseguimos migrar 120 máquinas virtuais com 12 TB de dados, que agora são executadas no OpenShift.

À medida que o Red Hat Virtualization se aproxima do fim da vida útil, nossa expectativa é que muitas organizações considerem fazer uma migração semelhante. Esperamos que nossa experiência e ferramentas ajudem você a migrar máquinas virtuais para o OpenShift usando o kit de ferramentas de migração para máquinas virtuais. Ele inclui as correções para problemas mencionados nesta publicação e muitas outras melhorias.


Sobre os autores

Joined Red Hat in 2020, initially as an engineer in the storage virtualization team. Later transitioned to work on diverse proof-of-concept and research projects centered around OpenShift as a virtualization platform and its orchestration. Currently part of the MTV team, dedicated to developing new features and capabilities, and implementing migrations from traditional virtualization platforms to OpenShift virtualization.

Read full bio

Arik is a hands-on engineering manager that leads the Migration Toolkit for Virtualization team. During his time at Red Hat since joining in 2012, Arik primarily contributed to Red Hat Virtualization, OpenShift Virtualization and other OpenShift projects as an individual contributor, prior to managing Red Hat Virtualization engineering teams.

Read full bio
UI_Icon-Red_Hat-Close-A-Black-RGB

Navegue por canal

automation icon

Automação

Últimas novidades em automação de TI para empresas de tecnologia, equipes e ambientes

AI icon

Inteligência artificial

Descubra as atualizações nas plataformas que proporcionam aos clientes executar suas cargas de trabalho de IA em qualquer ambiente

open hybrid cloud icon

Nuvem híbrida aberta

Veja como construímos um futuro mais flexível com a nuvem híbrida

security icon

Segurança

Veja as últimas novidades sobre como reduzimos riscos em ambientes e tecnologias

edge icon

Edge computing

Saiba quais são as atualizações nas plataformas que simplificam as operações na borda

Infrastructure icon

Infraestrutura

Saiba o que há de mais recente na plataforma Linux empresarial líder mundial

application development icon

Aplicações

Conheça nossas soluções desenvolvidas para ajudar você a superar os desafios mais complexos de aplicações

Original series icon

Programas originais

Veja as histórias divertidas de criadores e líderes em tecnologia empresarial