Importe imágenes de disco virtual a Oracle Cloud Infrastructure Block Volumes mediante Apache Airflow

A medida que las organizaciones continúan migrando a la nube, a menudo se enfrentan al desafío de transferir y gestionar sin problemas sus volúmenes en bloque existentes. Ya sea para migrar cargas de trabajo locales, implementar estrategias de recuperación ante desastres u optimizar su infraestructura en la nube, la capacidad de importar discos virtuales con facilidad se convierte en una necesidad crítica.

Aquí es donde la sinergia de Oracle Cloud Infrastructure Functions (OCI Functions), OCI Object Storage, Apache Airflow, qemu-img y arquitecturas controladas por eventos permite a los usuarios automatizar la importación de archivos de imagen de disco virtual en Oracle Cloud Infrastructure Block Volumes.

Note:

Como esta solución utiliza Apache Airflow para la orquestación, la experiencia previa permitirá a los usuarios supervisar los flujos de trabajo de importación de discos virtuales, solucionar problemas y reintentar cualquier flujo de conversión interrumpido.

Arquitectura

La arquitectura de un flujo de trabajo típico de importación de imágenes de disco virtual se describe en la siguiente sección.

  1. El usuario carga una nueva imagen de disco virtual en el cubo de OCI Object Storage.
  2. Cuando finaliza la carga del archivo de imagen de disco virtual, el evento dispara la ejecución de una función de OCI.
  3. La función recuperará los metadatos del objeto de disco virtual y llamará a la API de Apache Airflow para iniciar la ejecución de DAG (Directed Acyclic Graph).
  4. Apache Airflow DAG gestionará la importación de la imagen de disco virtual en OCI Block Volume en 14 pasos. Algunos de los pasos más importantes son:
    • Cree una nueva instancia informática de trabajador que gestione la importación de imágenes de disco virtual.
    • Configure las herramientas necesarias en la nueva instancia: qemu-img, oci-cli.
    • Descargue la imagen de disco virtual del cubo a la instancia de trabajador.
    • Determine el tamaño real de la imagen de disco virtual mediante qemu-img y aprovisione un nuevo volumen en bloque de OCI (denominado imagen de disco virtual).
    • Asocie OCI Block Volume a la instancia informática del trabajador.
    • Escriba el contenido de la imagen de disco virtual en OCI Block Volume.
    • Ejecute fsck en OCI Block Volume.
    • Desasocia OCI Block Volume.
    • Cesar la instancia de trabajador.
    • (Opcional) Actualice la política de copia de seguridad en OCI Block Volume.
  5. Los usuarios pueden supervisar la ejecución de DAG conectándose a Apache Airflow.

El siguiente diagrama ilustra esta arquitectura de referencia.



virtual-disco-import-arch-oracle.zip

La arquitectura tiene los siguientes componentes:

  • Región

    Una región de Oracle Cloud Infrastructure es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones, y grandes distancias pueden separarlos (entre países e incluso continentes).

  • Dominios de Disponibilidad

    Los dominios de disponibilidad son centros de datos independientes dentro de una región. Los recursos físicos de cada dominio de disponibilidad están aislados de los recursos de los otros dominios de disponibilidad, lo que proporciona tolerancia a fallos. Los dominios de disponibilidad no comparten infraestructura, como la alimentación o la refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, es poco probable que un fallo en un dominio de disponibilidad afecte a los otros dominios de disponibilidad de la región.

  • Red y subredes virtuales en la nube (VCN)

    Una VCN es una red personalizable y definida por software que se configura en una región de Oracle Cloud Infrastructure. Al igual que las redes de los centros de datos tradicionales, las redes virtuales le proporcionan un control completo de su entorno de red. Una VCN puede tener varios bloques de CIDR no superpuestos que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, las cuales se pueden acotar a una región o a un dominio de disponibilidad. Cada subred está formada por un rango contiguo de direcciones que no se solapan con las demás subredes de la VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.

  • Object Storage

    Object Storage proporciona acceso rápido a grandes cantidades de datos estructurados y no estructurados de cualquier tipo de contenido, incluidas copias de seguridad de base de datos, datos analíticos y contenido rico como imágenes y vídeos. Puede almacenar datos de forma segura y, a continuación, recuperarlos directamente desde Internet o desde la plataforma en la nube. Puede ampliar el almacenamiento sin problemas sin experimentar ninguna degradación del rendimiento ni de la fiabilidad del servicio. Utilice el almacenamiento estándar para el almacenamiento de acceso directo al que debe acceder de forma rápida, inmediata y frecuente. Utilice el almacenamiento de archivo para el almacenamiento "frío" que conserva durante largos períodos de tiempo y al que rara vez accede.

  • Eventos

    Los servicios de Oracle Cloud Infrastructure generan eventos, que son mensajes estructurados que describen los cambios en los recursos. Los eventos se emiten para operaciones de creación, lectura, actualización o supresión (CRUD), cambios de estado del ciclo de vida de los recursos y eventos del sistema que afectan a los recursos en la nube.

  • Functions

    Oracle Cloud Infrastructure Functions es una plataforma de funciones como servicio (FaaS) totalmente gestionada, multicliente, altamente escalable y bajo demanda. Está alimentado por el motor de origen abierto Fn Project. Las funciones le permiten desplegar el código y llamarlo directamente o dispararlo en respuesta a eventos. Oracle Functions utiliza contenedores de Docker alojados en Oracle Cloud Infrastructure Registry.

  • DevOps

    El servicio DevOps es una plataforma integral de integración y entrega continuas (CI/CD) para desarrolladores que facilita el proceso de creación de artefactos y despliegue en los servicios informáticos de OCI (Functions, Oracle Container Engine (OKE) o Compute Instances).

  • Política

    Una política de Oracle Cloud Infrastructure Identity and Access Management especifica quién puede acceder a qué recursos y cómo. El acceso se otorga en el nivel de grupo y compartimento, lo que significa que puede escribir una política que proporcione a un grupo un tipo específico de acceso dentro de un compartimento específico o al arrendamiento.

  • Volumen en bloque

    Con los volúmenes de almacenamiento en bloque, puede crear, asociar, conectar y mover volúmenes de almacenamiento, así como cambiar el rendimiento del volumen para que se ajuste a sus requisitos de almacenamiento, rendimiento y aplicación. Después de asociar y conectar un volumen a una instancia, puede utilizar el volumen como si se tratara de una unidad de disco duro normal. También puede desconectar un volumen y asociarlo a otra instancia sin perder datos.

  • Máquinas Virtuales

    Las máquinas virtuales de Oracle Cloud Infrastructure (OCI) Compute proporcionan capacidad informática segura y flexible en la nube para cargas de trabajo que van desde pequeños proyectos de desarrollo hasta aplicaciones globales a gran escala, como plataformas de comunicación en tiempo real. Las unidades flexibles permiten a los usuarios optimizar los recursos de VM con valores de procesador y memoria personalizados para mejorar el rendimiento de precios.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida. Es posible que sus requisitos difieran de la arquitectura que se describe aquí.
  • VCN

    Al crear una VCN, determine el número de bloques de CIDR necesarios y el tamaño de cada bloque en función del número de recursos que planea asociar a las subredes de la VCN. Utilice bloques CIDR que estén dentro del espacio de dirección IP privada estándar.

    Seleccione bloques de CIDR que no se solapen con ninguna otra red (en Oracle Cloud Infrastructure, su centro de datos local u otro proveedor en la nube) en la que desee configurar conexiones privadas.

    Después de crear una VCN, puede cambiar, agregar y eliminar sus bloques de CIDR.

    Al diseñar las subredes, tenga en cuenta el flujo de tráfico y los requisitos de seguridad. Asocie todos los recursos de un nivel o rol específico a la misma subred, que puede servir como límite de seguridad.

  • Seguridad

    Se recomienda encarecidamente que el usuario que despliega la pila sea miembro del grupo de administradores. En caso de que el usuario exponga Apache Airflow a Internet mediante la variable allowed_source_cidr, se recomienda rellenar un bloque CIDR de subred de IP específica.

Consideraciones

Tenga en cuenta los siguientes puntos al desplegar esta arquitectura de referencia.

  • Seguridad

    La instancia que ejecuta instancias de Apache Airflow y de trabajador temporal se autoriza mediante un grupo dinámico para gestionar instancias, volúmenes en bloque y objetos de lectura en el compartimento al que pertenecen. La función está autorizada para realizar operaciones de lectura en los recursos de objeto del compartimento.

  • Disponibilidad

    La API de Apache Airflow en el puerto 8080 de la instancia de Apache Airflow es accesible desde Internet solo cuando se crea una nueva VCN, la instancia tiene una dirección IP pública y la variable allowed_source_cidr incluye la IP de origen desde la que se intenta la conexión.

  • Costo

    Se crea una instancia informática temporal para gestionar cada operación de importación de disco virtual en Oracle Cloud Infrastructure Block Volumes. Al finalizar correctamente el flujo de trabajo, se termina la instancia.

  • Ubicación

    La ubicación del volumen en bloque se puede personalizar mediante los metadatos "ad_number": 1/2/3 en el archivo de imagen de disco virtual cargado en OCI Object Storage.

Despliegue

El código de Terraform para configurar y desplegar los recursos de esta arquitectura de referencia está disponible en GitHub.

  1. Vaya a GitHub.
  2. Clone o descargue el repositorio en la computadora local.
  3. Siga las instrucciones del documento README.

Explorar más

Para obtener más información sobre Oracle Cloud Infrastructure, Apache Airflow y qemu-img, consulte los siguientes recursos.

Agradecimientos

Author: Andrei Ilas