Desplegar un sistema de archivos ampliable y distribuido mediante GlusterFS

Un sistema de archivos de red escalable y distribuido es adecuado para tareas que requieren muchos datos, como el procesamiento de imágenes y la transmisión de medios. Cuando se utiliza en entornos de recursos informáticos de alto rendimiento (HPC), GlusterFS proporciona acceso de alto rendimiento a grandes conjuntos de datos, especialmente archivos inmutables.

Arquitectura

Esta arquitectura de referencia contiene los componentes de infraestructura necesarios para un sistema de archivos de red distribuido. Contiene tres instancias con hardware dedicado, que es el mínimo necesario para configurar una alta disponibilidad para GlusterFS.

En una configuración de tres servidores, al menos dos servidores deben estar en línea para permitir operaciones de escritura en el cluster. Los datos se replican en todos los nodos, como se muestra en el diagrama.

Descripción de glusterfs-oci.png a continuación
Descripción de la ilustración glusterfs-oci.png

glusterfs-oci-oracle.zip

  • 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 las grandes distancias pueden separarlas (entre países e incluso continentes).

  • Dominio de disponibilidad

    Los dominios de disponibilidad son centros de datos independientes e 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 alimentación o refrigeración, ni la red interna del dominio de disponibilidad. Por lo tanto, es improbable que un fallo en un dominio de disponibilidad afecte a los otros dominios de disponibilidad de la región.

  • Dominio de errores

    Un dominio de errores es una agrupación de hardware e infraestructura dentro de un dominio de disponibilidad. Cada dominio de disponibilidad tiene tres dominios de errores con alimentación y hardware independientes. Cuando distribuye recursos en varios dominios de errores, las aplicaciones pueden tolerar fallos del servidor físico, mantenimiento del sistema y fallos de alimentación dentro de un dominio de errores.

  • Redes virtuales en la nube y subredes

    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 del centro de datos tradicionales, las VCN le proporcionan un control total de su entorno de red. Una VCN puede tener varios bloques CIDR no solapados que puede cambiar después de crear la VCN. Puede segmentar una VCN en subredes, que se pueden acotar a una región o a un dominio de disponibilidad. Cada subred consta de un rango de direcciones contiguas que no se solapan con las otras subredes de VCN. Puede cambiar el tamaño de una subred después de la creación. Una subred puede ser pública o privada.

    Esta arquitectura utiliza dos subredes: una subred pública para crear la DMZ y alojar el servidor bastión, y una subred privada para alojar los nodos GlusterFS.

  • Grupo de seguridad de red (NSG)

    Los NSG actúan como firewalls virtuales para sus recursos en la nube. Con el modelo de seguridad sin confianza de Oracle Cloud Infrastructure, se deniega todo el tráfico y puede controlar el tráfico de red dentro de una VCN. Un NSG está formado por un conjunto de reglas de seguridad de entrada y salida que se aplican sólo a un conjunto especificado de VNIC en una única VCN.

  • Lista de Seguridad

    Para cada subred, puede crear reglas de seguridad que especifiquen el origen, el destino y el tipo de tráfico que se debe permitir dentro y fuera de la subred.

  • Nodos GFS

    Estas son las cabeceras GlusterFS, con 1 TB de almacenamiento de bloques asociado a cada instancia.

  • /gfs-data

    En la arquitectura de referencia, el cliente monta el volumen GlusterFS en el punto de montaje /gfs-data, mediante el cual la aplicación accede al sistema de archivos. Varios servidores pueden acceder a los nodos de cabecera en paralelo.

  • Host bastión

    El bastion host es una instancia informática que sirve de punto de entrada controlado y seguro a la topología desde fuera de la nube. El host bastión se aprovisiona normalmente en una zona desmilitarizada (DMZ). Le permite proteger los recursos confidenciales colocándolos en redes privadas a las que no se puede acceder directamente desde fuera de la nube. La topología tiene un único punto de entrada conocido que puede supervisar y auditar con regularidad. Por lo tanto, puede evitar exponer los componentes más sensibles de la topología sin comprometer el acceso a ellos.

Recomendaciones

Los requisitos pueden ser diferentes de la arquitectura que se describe aquí. Utilice las siguientes recomendaciones como punto de partida.

  • Arquitectura GlusterFS

    Esta arquitectura utiliza volúmenes GlusterFS replicados; los datos se replican en todos los nodos. Esta configuración proporciona la mayor disponibilidad de datos, pero también utiliza la mayor cantidad de espacio. Como se muestra en el diagrama de arquitectura, cuando se crea File1, se replica en los nodos.

    GlusterFS admite las siguientes arquitecturas. Seleccione una arquitectura que se ajuste a sus requisitos:
    • Volúmenes distribuidos

      Esta arquitectura es la configuración GlusterFS por defecto y se utiliza para obtener el tamaño y la escalabilidad máximos del volumen. No hay redundancia de datos. Por lo tanto, si falla un ladrillo en el volumen, provocará la pérdida completa de datos.

    • Volúmenes replicados

      Esta arquitectura se utiliza más cuando la alta disponibilidad es fundamental. Los problemas de pérdida de datos derivados de fallos de ladrillo se evitan replicando datos en dos o más ladrillos. Esta arquitectura de referencia utiliza la configuración de volúmenes replicados.

    • Volúmenes replicados distribuidos

      Esta arquitectura es una combinación de volúmenes distribuidos y replicados y se utiliza para obtener tamaños de volumen más grandes que un volumen replicado y mayor disponibilidad que un volumen distribuido. En esta configuración, los datos se replican en un subconjunto del número total de ladrillos. El número de ladrillos debe ser un múltiplo del recuento de réplicas. Por ejemplo, cuatro ladrillos de 1 TB cada uno le dará un espacio distribuido de 2 TB con una replicación doble.

    • Volúmenes segmentados

      Esta arquitectura se utiliza para archivos grandes que se dividirán en fragmentos más pequeños y cada fragmento se almacena en un ladrillo. La carga se distribuye entre los ladrillos y el archivo se puede recuperar más rápido, pero no hay redundancia de datos disponible.

    • Volúmenes distribuidos segmentados

      Esta arquitectura se utiliza para archivos grandes con distribución en más número de ladrillos. La desventaja con esta configuración es que si desea aumentar el tamaño del volumen, debe agregar ladrillos en múltiplos del recuento de segmentos.

  • Unidades informáticas

    Esta arquitectura utiliza una unidad con hardware dedicado (BM.Standard2.52) para todos los nodos GlusterFS. Estas instancias informáticas con hardware dedicado tienen dos NIC físicas que pueden enviar tráfico a 25 Gbps cada una. La segunda NIC física está dedicada al tráfico GlusterFS.

  • Almacenamiento de bloques

    Esta arquitectura utiliza 1 TB de almacenamiento de bloques. Se recomienda configurar un gestor de volúmenes lógicos (LVM) para permitir que el volumen crezca si necesita más espacio. Cada volumen en bloque está configurado para usar un rendimiento equilibrado y proporciona IOPS de 35K y 480 MB/s de rendimiento.

  • Red virtual en la nube (VCN)

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

    Seleccione bloques CIDR que no se superpongan con ninguna otra red (en Oracle Cloud Infrastructure, su centro de datos local u otro proveedor en la nube) a 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 los requisitos de flujo de tráfico y seguridad. Conecte todos los recursos de un nivel o rol específico a la misma subred, que puede servir como límite de seguridad.

  • Grupos de seguridad de red (NSG)

    Puede utilizar NSG para definir un juego de reglas de entrada y salida que se apliquen a VNIC específicas. Recomendamos utilizar NSG en lugar de listas de seguridad, porque los NSG permiten separar la arquitectura de subred de la VCN de los requisitos de seguridad de la aplicación. En la arquitectura de referencia, toda la comunicación de red se controla mediante NSG.

  • Listas de seguridad

    Utilice listas de seguridad para definir reglas de entrada y salida que se aplican a toda la subred.

Consideraciones

  • Rendimiento

    Para obtener el mejor rendimiento, utilice NIC dedicadas para la comunicación de la aplicación a los usuarios y a las cabeceras GlusterFS. Utilice la NIC principal para la comunicación entre la aplicación y los usuarios. Utilice la NIC secundaria para la comunicación con las cabeceras GlusterFS. También puede cambiar el rendimiento del volumen para el almacenamiento en bloque para aumentar o reducir la IOPS y el rendimiento global del disco.

  • Disponibilidad

    Los dominios de errores proporcionan la mejor resiliencia dentro de un dominio de disponibilidad. Si necesita una mayor disponibilidad, considere el uso de varios dominios de disponibilidad o varias regiones. Para las cargas de trabajo fundamentales, considere utilizar volúmenes GlusterFS distribuidos segmentados.

  • Costo
    El costo del despliegue de GlusterFS depende de los requisitos de rendimiento y disponibilidad del disco:
    • Puede elegir entre las siguientes opciones de rendimiento: alto rendimiento, rendimiento equilibrado y bajo costo.
    • Para obtener una mayor disponibilidad, necesita un mayor número de nodos y volúmenes GlusterFS.

Desplegar

El código necesario para desplegar esta arquitectura de referencia está disponible en GitHub. Puede obtener el código en Oracle Cloud Infrastructure Resource Manager con un solo clic, crear la pila y desplegarla. También puede descargar el código de GitHub en su computadora, personalizar el código y desplegar la arquitectura mediante la CLI de Terraform.

  • Desplegar mediante Oracle Cloud Infrastructure Resource Manager:
    1. Haga clic en Despliegue en Oracle Cloud.

      Si aún no ha iniciado sesión, introduzca las credenciales de arrendamiento y usuario.

    2. Revise y acepte las condiciones.
    3. Seleccione la región en la que desea desplegar la pila.
    4. Siga las indicaciones de la pantalla e instrucciones para crear la pila.
    5. Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
    6. Espere a que termine el trabajo y revise el plan.

      Para realizar cambios, vuelva a la página Detalles de pila, haga clic en Editar pila y realice los cambios necesarios. A continuación, vuelva a ejecutar la acción Plan.

    7. Si no es necesario realizar más cambios, vuelva a la página Detalles de pila, haga clic en Acciones de Terraform y seleccione Aplicar.
  • Realice el despliegue con la CLI de Terraform:
    1. Vaya a GitHub.
    2. Clone o descargue el repositorio en su equipo local.
    3. Siga las instrucciones del documento README.

Log de Cambios

Este log muestra cambios importantes: