Modelado basado en imágenes digitales en Azure

Azure Blob Storage
Azure Key Vault
Azure Virtual Machines

Precaución

En este artículo se hace referencia a CentOS, una distribución de Linux que está cerca de su estado Final de ciclo vida (EOL). Tenga en cuenta su uso y planifique en consecuencia. Para obtener más información, consulte la Guía de fin de ciclo de vida de CentOS.

En este escenario de ejemplo se proporciona una guía de arquitectura y diseño para organizaciones que quieren realizar el modelado basado en imágenes en una infraestructura como servicio (IaaS) de Azure. El escenario está diseñado para ejecutar software de fotogrametría en Azure Virtual Machines (VM) con almacenamiento de alto rendimiento que acelera el tiempo de procesamiento. El entorno se puede escalar o reducir verticalmente según sea necesario y admite terabytes de almacenamiento sin sacrificar el rendimiento.

Architecture

Diagrama de una arquitectura para ejecutar modelos basados en imágenes en la IaaS de Azure.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

  1. El usuario envía una serie de imágenes a PhotoScan.
  2. El programador de PhotoScan se ejecuta en una máquina virtual Windows que actúa como nodo principal y dirige el procesamiento de las imágenes del usuario.
  3. PhotoScan busca puntos comunes en las fotografías y construye la geometría (malla) mediante los nodos de procesamiento de PhotoScan que se ejecutan en máquinas virtuales con unidades de procesamiento de gráficos (GPU).
  4. Avere vFXT for Azure proporciona una solución de almacenamiento de alto rendimiento en Azure basada en la versión 3 de Network File System (NFSv3) y consta de al menos cuatro máquinas virtuales.
  5. PhotoScan representa el modelo.

Componentes

  • Agisoft PhotoScan: el programador de PhotoScan se ejecuta en una máquina virtual Windows Server 2016 y los nodos de procesamiento usan cinco máquinas virtuales con GPU que ejecutan CentOS Linux 7.5.
  • Avere vFXT for Azure es una solución de almacenamiento en caché de archivos que usa almacenamiento de objetos y almacenamiento conectado a la red (NAS) tradicional para optimizar el almacenamiento de grandes conjuntos de datos. Incluye:
    • Controlador de Avere. Esta máquina virtual ejecuta el script que instala el clúster de Avere vFXT y ejecuta Ubuntu 18.04 LTS. La máquina virtual se puede usar posteriormente para agregar o quitar nodos del clúster y también para destruir el clúster.
    • Clúster de vFXT. Se usan al menos tres máquinas virtuales, una para cada uno de los nodos de Avere vFXT en Avere OS 5.0.2.1. Estas máquinas virtuales forman el clúster de vFXT, que está conectado a Azure Blob Storage.
  • Los controladores de dominio de Microsoft Active Directory permiten el acceso host a los recursos de dominio y proporcionan resolución de nombres DNS. Avere vFXT agrega una serie de registros A; por ejemplo, cada registro A de un clúster de vFXT apunta a la dirección IP de cada nodo de Avere vFXT. En esta configuración, todas las máquinas virtuales usan el patrón round robin para acceder a las exportaciones de vFXT.
  • Otras máquinas virtuales funcionan como hosts de salto que usa el administrador para acceder al programador y procesar los nodos. El JumpBox de Windows es obligatorio para permitir que el administrador acceda al nodo principal mediante el protocolo de escritorio remoto. El segundo JumpBox es opcional y ejecuta Linux para la administración de los nodos de trabajo.
  • Los grupos de seguridad de red limitan el acceso a la dirección IP pública (PIP) y permiten los puertos 3389 y 22 para el acceso a las VM asociadas a la subred del JumpBox.
  • El emparejamiento de redes virtuales conecta una red virtual de PhotoScan a una red virtual de Avere.
  • Azure Blob Storage funciona con Avere vFXT como filtro principal para almacenar los datos confirmados que se van a procesar. Avere vFXT identifica los datos activos almacenados en blobs de Azure y los dispone en capas en unidades de estado sólido (SSD) usadas para el almacenamiento en caché en sus nodos de proceso mientras se ejecuta un trabajo de PhotoScan. Si se realizan cambios, los datos se vuelven a confirmar de forma asincrónica en el archivador principal.
  • Azure Key Vault se usa para almacenar las contraseñas de administrador y el código de activación de PhotoScan.

Alternativas

  • Para aprovechar las ventajas de los servicios de Azure para administrar un clúster de HPC, use herramientas como Azure CycleCloud o Azure Batch en lugar de administrar los recursos mediante plantillas o scripts.
  • Implemente el sistema de archivos virtual paralelo BeeGFS como almacenamiento de back-end en Azure en lugar de Avere vFXT. Use la plantilla de BeeGFS para implementar esta solución de extremo a otro en Azure.
  • Implemente la solución de almacenamiento de su elección, como GlusterFS, Lustre o Espacios de almacenamiento directo de Windows. Para ello, edite la plantilla de PhotoScan para trabajar con la solución de almacenamiento que desee.
  • Implemente los nodos de trabajo con el sistema operativo Windows en lugar de Linux, la opción predeterminada. Al utilizar los nodos de Windows, las opciones de integración de almacenamiento no se ejecutan mediante las plantillas de implementación. Debe integrar manualmente el entorno con una solución de almacenamiento existente, o bien personalizar la plantilla de PhotoScan para proporcionar dicha automatización, como se describe en el repositorio.

Detalles del escenario

En este ejemplo se describe el uso de software de fotogrametría de Agisoft PhotoScan respaldado por el almacenamiento de Avere vFXT. PhotoScan fue elegido por su popularidad en aplicaciones de sistema de información geográfica (GIS), documentación de patrimonio cultural, desarrollo de juegos y producción de efectos visuales. Es adecuado para fotogrametría de corto alcance y fotogrametría aérea.

Los conceptos de este artículo se aplican a cualquier carga de trabajo de informática de alto rendimiento (HPC) basada en un programador y a los nodos de trabajo administrados como infraestructura. En esta carga de trabajo, se seleccionó Avere vFXT por su rendimiento superior durante las pruebas comparativas. Sin embargo, en el escenario se desacopla el almacenamiento del procesamiento para que puedan usarse otras soluciones de almacenamiento (consulte alternativas más adelante en este documento).

Esta arquitectura también incluye controladores de dominio de Active Directory para controlar el acceso a recursos de Azure y proporcionar resolución de nombres interna mediante el sistema de nombres de dominio (DNS). Los hosts de salto proporcionan al administrador acceso a las máquinas virtuales Windows y Linux que ejecutan la solución.

Posibles casos de uso

Los casos de uso pertinentes incluyen:

  • Modelado y medición de edificios, estructuras de ingeniería y escenas de accidentes forenses.
  • Creación de efectos visuales en videojuegos y películas.
  • Uso de imágenes digitales para generar indirectamente medidas de objetos de diferentes escalas para la planificación urbana y otras aplicaciones.

Consideraciones

Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.

Este escenario está diseñado específicamente para proporcionar almacenamiento de alto rendimiento para una carga de trabajo HPC, tanto si se implementa en Windows como en Linux. En general, la configuración del almacenamiento de la carga de trabajo HPC debe coincidir con los procedimientos recomendados adecuados usados en las implementaciones locales.

Las consideraciones sobre la implementación dependen de las aplicaciones y servicios que se usen, pero se aplican algunas observaciones:

  • Al crear aplicaciones de alto rendimiento, use Azure Premium Storage y optimice la capa de aplicación. Optimice el almacenamiento de acceso frecuente con el nivel de acceso frecuente de Azure Blob.
  • Use una opción de replicación que cumpla los requisitos de disponibilidad y rendimiento. En este ejemplo, Avere vFXT está configurado de forma predeterminada para alta disponibilidad, con almacenamiento con redundancia local (LRS). Para el equilibrio de carga, todas las máquinas virtuales de esta configuración usan el patrón round robin para acceder a las exportaciones de vFXT.
  • Si tanto los clientes Windows como Linux van a consumir el almacenamiento de back-end, use servidores Samba para admitir los nodos de Windows. Una versión de este escenario de ejemplo basado en BeeGFS usa Samba para admitir el nodo de programador de la carga de trabajo HPC (PhotoScan) que se ejecuta en Windows. Un equilibrador de carga se implementa para que funcione como un reemplazo inteligente para el patrón round robin de DNS.
  • Ejecute aplicaciones HPC con el tipo de máquina virtual más adecuado para su carga de trabajo Windows o Linux.
  • Para aislar la carga de trabajo HPC de los recursos de almacenamiento, implemente cada uno en su propia red virtual y, luego, use el emparejamiento de red virtual para conectar los dos. El emparejamiento crea una conexión de baja latencia y alto ancho de banda entre los recursos de diferentes redes virtuales y enruta el tráfico por la infraestructura de red troncal de Microsoft solo mediante direcciones IP privadas.

Seguridad

La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para más información, consulte Introducción al pilar de seguridad.

Este ejemplo se centra en la implementación de una solución de almacenamiento de alto rendimiento para una carga de trabajo HPC y no es una solución de seguridad. Asegúrese de que el equipo de seguridad esté al tanto de los posibles cambios.

Para mayor seguridad, esta infraestructura de ejemplo permite que todas las máquinas virtuales Windows se unan a un dominio y usen Active Directory para la autenticación central. También proporciona servicios DNS personalizados para todas las máquinas virtuales. Para ayudar a proteger el entorno, esta plantilla se basa en grupos de seguridad de red. Los grupos de seguridad de red ofrecen filtros básicos de tráfico y reglas de seguridad.

Tenga en cuenta las siguientes opciones para mejorar la seguridad en este escenario:

Optimización de costos

La optimización de costos trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para más información, vea Información general del pilar de optimización de costos.

El costo de ejecutar este escenario puede variar enormemente en función de varios factores. el número y tamaño de las máquinas virtuales, la cantidad de almacenamiento necesaria y la cantidad de tiempo para realizar un trabajo.

El siguiente perfil de costo de ejemplo de la calculadora de precios de Azure se basa en una configuración típica de Avere vFXT y PhotoScan:

  • 1 VM Ubuntu A1_v2 para ejecutar el controlador de Avere.
  • 3 VM con el sistema operativo Avere D16s_v3, una para cada uno de los nodos de Avere vFXT que formen el clúster de vFXT.
  • 5 VM Linux NC24_v2 para proporcionar las GPU necesarias para los nodos de procesamiento de PhotoScan.
  • 1 VM CentOS D8s_v3 para el nodo de programador de PhotoScan.
  • 1 CentOS DS2_v2 usado como JumpBox de administrador.
  • 2 VM DS2_v2 para los controladores de dominio de Active Directory.
  • Discos administrados Premium.
  • Almacenamiento de blobs de uso general v2 (GPv2) con LRS y nivel de acceso frecuente (solo las cuentas de almacenamiento GPv2 exponen el atributo de nivel de acceso).
  • Red virtual con compatibilidad para la transferencia de datos de 10 TB.

Pasos siguientes

Los siguientes recursos proporcionarán más información sobre los componentes utilizados en este escenario, junto con enfoques alternativos para la computación por lotes en Azure.