Importar imagens de disco virtual para o Oracle Cloud Infrastructure Block Volumes usando o Apache Airflow

À medida que as organizações continuam migrando para a nuvem, muitas vezes se deparam com o desafio de transferir e gerenciar perfeitamente seus volumes em blocos existentes. Seja para migrar cargas de trabalho locais, implementar estratégias de recuperação de desastres ou otimizar sua infraestrutura de nuvem, a capacidade de importar discos virtuais com facilidade se torna uma necessidade crítica.

É aqui que a sinergia das arquiteturas Oracle Cloud Infrastructure Functions (OCI Functions), OCI Object Storage, Apache Airflow, qemu-img e orientadas a eventos permite que os usuários automatizem a importação de arquivos de imagem de disco virtual para o Oracle Cloud Infrastructure Block Volumes.

Observação:

Como essa solução usa o Apache Airflow para orquestração, a experiência anterior permitirá que os usuários monitorem os fluxos de trabalho de importação de disco virtual, solucionem problemas e repitam qualquer fluxo de conversão interrompido.

Arquitetura

A arquitetura de um fluxo de trabalho típico de importação de imagem de disco virtual é descrita na seção a seguir.

  1. O usuário faz upload de uma nova imagem de disco virtual para o bucket do OCI Object Storage.
  2. Quando o upload do arquivo de imagem de disco virtual é finalizado, o evento aciona a execução de uma Função do OCI.
  3. A função extrairá os metadados do objeto de disco virtual e chamará a API do Apache Airflow para iniciar a execução do DAG (Directed Acyclic Graph).
  4. O Apache Airflow DAG tratará a importação da imagem de disco virtual para o OCI Block Volume em 14 etapas. Alguns dos passos mais importantes são:
    • Crie uma nova instância de computação worker que tratará a importação de imagem de disco virtual.
    • Configure as ferramentas necessárias na nova instância: qemu-img, oci-cli.
    • Faça download da imagem de disco virtual do bucket para a instância do trabalhador.
    • Determine o tamanho real da imagem de disco virtual usando qemu-img e provisione um novo Volume em Blocos do OCI (denominado imagem de disco virtual).
    • Anexe o OCI Block Volume à instância de computação do trabalhador.
    • Grave o conteúdo da imagem de disco virtual no OCI Block Volume.
    • Execute fsck no OCI Block Volume.
    • Desanexe o Volume em Bloco do OCI.
    • Encerre a instância do colaborador.
    • (Opcional) Atualize a política de backup no OCI Block Volume.
  5. Os usuários podem monitorar a execução do DAG conectando-se ao Apache Airflow.

O diagrama a seguir ilustra essa arquitetura de referência.



disco virtual-import-arch-oracle.zip

A arquitetura tem os seguintes componentes:

  • Região

    Região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominada domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou até mesmo continentes).

  • Domínios de disponibilidade

    Domínios de disponibilidade são data centers stand-alone e independentes dentro de uma região. Os recursos físicos de cada domínio de disponibilidade são isolados dos recursos de outros domínios de disponibilidade, o que oferece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou refrigeração ou a rede interna do domínio de disponibilidade. Desse modo, é improvável que uma falha em um domínio de disponibilidade afete os outros domínios de disponibilidade na região.

  • VCN (rede virtual na nuvem) e sub-redes

    Uma VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes tradicionais de data center, as VCNs oferecem total controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após a criação da VCN. Você pode segmentar uma VCN em sub-redes, com escopo definido para uma região ou para um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não se sobrepõem a outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.

  • Object Storage

    O armazenamento de objetos oferece acesso rápido a grandes quantidades de dados estruturados e não estruturados de qualquer tipo de conteúdo, incluindo backups de bancos de dados, dados de análise e conteúdo avançado, como imagens e vídeos. Você pode armazenar de forma segura e depois recuperar dados diretamente da internet ou de dentro da plataforma da nuvem. Você pode dimensionar facilmente o armazenamento sem prejudicar o desempenho ou a confiabilidade do serviço. Use o armazenamento padrão para armazenamento "quente" que você precisa para acessar de forma rápida, imediata e com frequência. Use o armazenamento de arquivos compactados para armazenamento "frio" que você mantém por longos períodos de tempo e raramente acessa.

  • Eventos

    Os serviços do Oracle Cloud Infrastructure emitem eventos, que são mensagens estruturadas que descrevem as alterações em recursos. Os eventos são emitidos para operações de criação, leitura, atualização ou exclusão (CRUD), alterações no estado do ciclo de vida do recurso e eventos do sistema que afetam os recursos da nuvem.

  • Serviço Functions

    O Oracle Cloud Infrastructure Functions é uma plataforma Functions-as-a-Service (FaaS) totalmente gerenciada, multitenant, altamente escalável e sob demanda. Ele é alimentado pelo mecanismo de código aberto do Fn Project. As funções permitem que você implante seu código e o chame diretamente ou o acione em resposta a eventos. O Oracle Functions usa contêineres Docker hospedados no Oracle Cloud Infrastructure Registry.

  • Serviço DevOps

    O serviço DevOps é uma plataforma completa de integração contínua e entrega contínua (CI/CD) para desenvolvedores que facilita o processo de criação de artefatos e implantação nos serviços de computação do OCI (Functions, Oracle Container Engine (OKE) ou Compute Instances).

  • Política

    Uma política do Oracle Cloud Infrastructure Identity and Access Management especifica quem pode acessar quais recursos e como. O acesso é concedido no nível de grupo e compartimento. Isso significa que você pode gravar uma política que dá a um grupo um tipo específico de acesso em um compartimento específico ou à tenancy.

  • Serviço Block Volume

    Com volumes de armazenamento em blocos, você pode criar, anexar, conectar e mover volumes de armazenamento e alterar o desempenho do volume para atender aos requisitos de armazenamento, desempenho e aplicativo. Depois de anexar e conectar um volume a uma instância, você pode usar o volume como disco rígido comum. Também é possível desconectar um volume e anexá-lo a outra instância sem perder dados.

  • Máquinas Virtuais

    As VMs de computação da Oracle Cloud Infrastructure (OCI) fornecem capacidade de computação segura e elástica na nuvem para cargas de trabalho que variam de pequenos projetos de desenvolvimento a aplicativos globais de larga escala, como plataformas de comunicação em tempo real. Formas flexíveis permitem que os usuários otimizem recursos de VM com valores personalizados de processador e memória para melhor desempenho de preço.

Recomendações

Use as recomendações a seguir como ponto de partida. Seus requisitos podem ser diferentes da arquitetura descrita aqui.
  • VCN

    Ao criar uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar às sub-redes na VCN. Use blocos CIDR que estejam dentro do espaço de endereço IP privado padrão.

    Selecione blocos CIDR que não se sobreponham a qualquer outra rede (no Oracle Cloud Infrastructure, seu data center local ou outro provedor de nuvem) para a qual você pretende configurar conexões privadas.

    Depois de criar uma VCN, você poderá alterar, adicionar e remover seus blocos CIDR.

    Ao projetar as sub-redes, considere seus requisitos de fluxo de tráfego e segurança. Anexe todos os recursos dentro de uma camada ou função específica à mesma sub-rede, que pode servir como um limite de segurança.

  • Segurança

    É altamente recomendável que o usuário que implanta a pilha seja membro do grupo de administradores. Caso o usuário exponha o Apache Airflow para a internet usando a variável allowed_source_cidr, é altamente recomendável preencher um bloco CIDR de IP e sub-rede específico.

Considerações

Considere os pontos a seguir ao implantar essa arquitetura de referência.

  • Segurança

    A instância que executa o Apache Airflow e as instâncias de worker temporárias são autorizadas usando um grupo dinâmico para gerenciar instâncias, volumes em blocos e objetos de leitura no compartimento ao qual pertencem. A função está autorizada a executar operações de leitura nos recursos do objeto no compartimento.

  • Disponibilidade

    A API do Apache Airflow na porta 8080 da instância do Apache Airflow só pode ser acessada pela internet quando uma nova VCN é criada, a instância tem um endereço IP público e a variável allowed_source_cidr inclui o IP de origem de onde a conexão é tentada.

  • Custo

    Uma instância de computação temporária é criada para tratar cada operação de importação de disco virtual para o Oracle Cloud Infrastructure Block Volumes. Na conclusão bem-sucedida do workflow, a instância será encerrada.

  • Colocação

    O posicionamento do volume em blocos pode ser personalizado usando os metadados "ad_number": 1/2/3 no arquivo de imagem de disco virtual submetido a upload para o OCI Object Storage.

Implante

O código do Terraform para configurar e implantar os recursos dessa arquitetura de referência está disponível em GitHub.

  1. Vá até GitHub.
  2. Clone ou faça download do repositório no seu computador local.
  3. Siga as instruções no documento README.

Explorar Mais

Para saber mais sobre o Oracle Cloud Infrastructure, o Apache Airflow e o qemu-img, consulte os recursos a seguir.

Agradecimentos

Author: Andrei Ilas