Patrones de arquitectura para cargas de trabajo de automatización de diseño electrónico en NetApp Volumes

En esta página, se describen los patrones de arquitectura para las cargas de trabajo de automatización de diseño electrónico (EDA) en Google Cloud NetApp Volumes.

NetApp Volumes proporciona almacenamiento compartido NFS altamente escalable para admitir cargas de trabajo de EDA. Estas cargas de trabajo procesan conjuntos de datos a escala de petabytes que comprenden millones de archivos pequeños, ejecutan operaciones de directorio con muchos metadatos y generan E/S paralelas con picos en miles de núcleos de procesamiento. NetApp Volumes mantiene accesibles las bibliotecas de diseño, las cadenas de herramientas y los datos temporales mediante el escalamiento de volúmenes de tamaño de proyecto a volúmenes de gran capacidad, con FlexCache opcional para diseños híbridos y fan-out. Los siguientes patrones asignan modelos de implementación de EDA comunes a estas capacidades.

Para obtener implementaciones de referencia de GitHub, como eda-all-on-cloud y eda-hybrid-cloud, consulta los ejemplos de EDA de Cluster Toolkit.

Patrones de arquitectura

En la siguiente tabla, se resumen los patrones comunes para las cargas de trabajo de EDA. El mejor patrón para tu caso de uso depende de dónde residan tus datos principales y de cómo quieras escalar el rendimiento de lectura y el procesamiento.

Diseño Caso de uso Capacidades principales de NetApp Volumes
Volúmenes de gran capacidad para clústeres de procesamiento Los datos de diseño y las cadenas de herramientas residen en Google Cloud y requieren un solo espacio de nombres compartido a gran escala Grupos y volúmenes de gran capacidad, diseño de varios volúmenes y ciclo de vida del grupo de implementación
Pico de actividad en la nube Los conjuntos de datos principales residen en un entorno local o en otra región, y necesitas procesamiento en la nube para satisfacer la demanda máxima FlexCache desde el origen ONTAP local, el llenado previo y los volúmenes preexistentes
Escalamiento del rendimiento a través de cachés fan-out Las fases con mucha lectura requieren más capacidad de procesamiento agregada o ubicación que la que puede proporcionar una sola exportación Varios volúmenes de FlexCache o varios extremos de almacenamiento por volumen grande

Usa volúmenes de gran capacidad como almacenamiento de archivos para clústeres de procesamiento

Usa este patrón cuando el procesamiento y los datos persistentes se ejecuten en Google Cloud, por ejemplo, granjas de EDA nuevas, centros de diseño migrados o particiones de pico de actividad en la nube dedicadas que poseen sus conjuntos de datos.

Desafíos resueltos por los volúmenes de gran capacidad

Los volúmenes de gran capacidad abordan los requisitos de alta capacidad, rendimiento y simultaneidad de las cargas de trabajo de EDA a gran escala. Esta configuración resuelve los siguientes desafíos:

  • Restricciones de capacidad: Se adapta a grandes conjuntos de datos, como bibliotecas, bloques de IP y datos temporales de regresión.

  • Alta carga de metadatos y E/S: Maneja rutas de metadatos intensivas (incluidas las operaciones readdir y stat), E/S aleatorias pequeñas y un ancho de banda secuencial alto.

En lugar de colocar todos tus datos en un solo volumen grande, particiona tus datos en varios volúmenes según su ciclo de vida y patrones de acceso.

En la siguiente tabla, se describe el diseño recomendado para particionar tus datos:

Función del volumen Tipos comunes de datos Patrones de acceso y ciclo de vida
Herramientas Objetos binarios del proveedor e instalaciones de EDA con licencia Principalmente lectura, retención prolongada y exportaciones estables
Bibliotecas PDK, celdas estándar y diseños de referencia Principalmente lectura, gran cantidad de archivos y beneficios del ajuste de la caché de atributos en los clientes
Página principal Archivos de configuración del usuario y estado de proyectos pequeños Tasas mixtas de lectura/escritura y metadatos moderadas
Desde cero Ejecuta directorios y resultados intermedios Alta rotación, mayor capacidad y mayor demanda de IOPS

El modelo de Cluster Toolkit eda-all-on-cloud aprovisiona este diseño con particiones de Compute Engine administradas por Slurm que activan NetApp Volumes a través de NFS.

Cuándo usar volúmenes de gran capacidad

Para volúmenes superiores a 4.8 TiB (Flex Unified) o 15 TiB (Premium y Extreme), crea volúmenes de gran capacidad. Estos volúmenes se escalan a una capacidad muy grande y proporcionan límites superiores de capacidad de procesamiento y IOPS. Los volúmenes temporales y de biblioteca que superan los límites de un solo extremo son adecuados para esta configuración.

Distribución de clientes en volúmenes grandes

Un volumen de gran capacidad expone varios extremos de almacenamiento (direcciones IP) a la misma exportación. Distribuye los clientes de NFS en varios extremos para escalar la capacidad de procesamiento agregada y evitar que una sola dirección IP se convierta en un cuello de botella. Puedes usar una de las siguientes opciones:

  • DNS de turnos rotativos (recomendado a gran escala): Crea un registro A de Cloud DNS que enumere varias direcciones IP. Activa con el FQDN para que cada cliente se resuelva en una dirección en el momento de la activación. Vuelve a activar si cambias los registros DNS.

  • Fragmentación estática: Divide los clientes en varios grupos y activa cada grupo en un extremo elegido para la ubicación determinista de la carga.

En una arquitectura completamente en la nube, aprovisionas exportaciones de NetApp Volumes separadas en una Google Cloud región para herramientas, bibliotecas y datos temporales. Las herramientas y las bibliotecas contienen datos de referencia principalmente de lectura; los datos temporales contienen directorios de ejecución y puntos de control, y suelen ser un volumen de gran capacidad. Los nodos de Compute Engine administrados por Slurm en la misma VPC activan cada exportación con NFS. El almacenamiento se implementa en un grupo de implementación base y el procesamiento en un grupo cluster para permitirte escalar o borrar el clúster sin borrar los volúmenes.

Pico de actividad en la nube

Usa este patrón cuando los datos de diseño autorizados permanezcan en un entorno local o en un sistema ONTAP remoto y quieras ejecutar trabajos de regresión, caracterización o trabajos de capacidad máxima en Google Cloud el procesamiento sin copiar primero bibliotecas completas.

Resuelve los desafíos de almacenamiento en la nube híbrida con FlexCache

Los volúmenes de FlexCache resuelven los desafíos comunes de almacenamiento en la nube híbrida para entornos de EDA, ya que proporcionan los siguientes beneficios:

  • Rendimiento de acceso similar a LAN: La latencia y el ancho de banda de la WAN limitan la velocidad con la que los núcleos de procesamiento en la nube pueden leer conjuntos de datos locales. FlexCache entrega fases con mucha lectura y operaciones de metadatos de forma local después de que los conjuntos de datos se almacenan en caché para contrarrestar este problema.

  • Almacenamiento en caché a nivel de bloque a pedido: Copiar bibliotecas completas en la nube antes de cada trabajo introduce demoras en el inicio y duplica el almacenamiento. FlexCache almacena en caché solo los bloques de datos a los que se accede, lo que minimiza los tiempos de inicio y reduce el uso general del almacenamiento en la nube.

  • Fuente de origen cohesiva: En lugar de administrar copias desconectadas de tus datos, puedes usar una exportación NFS local en la nube y, aun así, mantener una sola copia coherente en el volumen de origen local.

Comportamiento y características de FlexCache

Crea un volumen de FlexCache en NetApp Volumes que apunte a un volumen de origen ONTAP existente. Las lecturas de datos almacenados en caché se entregan con Google Cloud. Las lecturas en frío recuperan bloques del volumen de origen ONTAP una vez y, luego, los entregan de forma local. De forma predeterminada, las operaciones de escritura usan una escritura diferida: la caché reenvía las operaciones de escritura al origen y anula los datos almacenados en caché afectados, lo que preserva la coherencia en las cachés.

Las siguientes son las características clave de FlexCache para entornos de EDA:

  • Almacenamiento en caché a nivel de bloque y solo de extracción: Solo los datos a los que se accede consumen capacidad de caché. Los volúmenes dispersos son eficientes para bibliotecas grandes a las que se accede parcialmente por ejecución.

  • Lecturas coherentes y actuales: Los datos leídos de la caché o el origen son coherentes. Este enfoque es adecuado para bibliotecas de referencia compartidas cuando los patrones de escritura coinciden con las instrucciones de FlexCache.

  • Latencia de lectura similar a LAN después del calentamiento: Las fases de lectura con muchos metadatos y capacidad de procesamiento, como el recorrido de la biblioteca y los archivos de referencia repetidos, se benefician una vez que los conjuntos de datos se almacenan en caché.

  • Llenado previo: Para evitar una penalización de lectura en frío en el primer acceso, llena previamente los directorios para las listas de ejecución conocidas antes de iniciar un trabajo.

Modelo de referencia híbrido

eda-hybrid-cloud activa volúmenes preexistentes, como herramientas, bibliotecas, página principal y datos temporales, con pre-existing-network-storage. Los volúmenes pueden ser exportaciones estándar de NetApp Volumes, volúmenes de gran capacidad o volúmenes de FlexCache. El aprovisionamiento de almacenamiento fuera del esquema del clúster evita la eliminación accidental cuando desarmas el cómputo y admite orígenes de FlexCache que administras en ONTAP.

Ten en cuenta los siguientes lineamientos operativos:

  • Dimensiona los volúmenes de caché para el conjunto de datos, no para la capacidad completa del volumen de origen.

  • Inhabilita o limita las actualizaciones de la hora de acceso en el volumen de origen (-atime-update en ONTAP) para evitar la anulación innecesaria de la caché. Para obtener más información, consulta Descripción general de FlexCache.

  • Habilita el bloqueo de archivos global solo si tu flujo requiere una semántica estricta de denegación de lectura entre cachés. Este enfoque agrega latencia y vincula la disponibilidad al vínculo de origen.

  • Planifica la conectividad de red y el ancho de banda entre el origen y Google Cloud. Las fases con mucha escritura permanecen vinculadas al origen o al vínculo de red cuando usas la escritura diferida.

En la arquitectura de pico de actividad de lectura híbrida, las herramientas autorizadas y los datos de la biblioteca residen en un sistema ONTAP local. NetApp Volumes aloja volúmenes de FlexCache en Google Cloud que hacen referencia a esos orígenes con una WAN o un vínculo privado. Los nodos de Slurm en Google Cloud activan las exportaciones de FlexCache. Las lecturas se entregan desde la caché cuando los datos están activos; las lecturas en frío recuperan bloques del origen local. Para los datos temporales y los puntos de control que reciben mucho tráfico de escritura del procesamiento en la nube, crea un volumen temporal nativo de la nube independiente en la misma región que el clúster para mantener las escrituras locales, en lugar de enrutar el tráfico de escritura sostenido a través de un FlexCache con un origen local.

Escalamiento del rendimiento a través de cachés de fan-out

Usa este patrón cuando una sola exportación, incluso un volumen de gran capacidad, no proporcione suficiente capacidad de procesamiento de lectura agregada o fan-out de clientes para una fase del flujo.

Puedes implementar fan-out de dos maneras:

Volúmenes de FlexCache de distribución

Crea varios volúmenes de FlexCache respaldados por el mismo volumen de origen y activa diferentes grupos de procesamiento (o tipos de trabajo) en diferentes cachés. Cada caché se calienta de forma independiente, escala la E/S de lectura en extremos de NetApp Volumes separados y aísla la sobrecarga entre las cargas de trabajo, por ejemplo, el procesamiento previo de la biblioteca en comparación con la regresión prolongada.

En la siguiente tabla, se comparan los enfoques de implementación de FlexCache único y múltiple.

Enfoque Escala Desventajas
FlexCache único Simplicidad, una ruta de activación Una capacidad de caché y un límite de capacidad de procesamiento
Varios FlexCache (fan-out) Capacidad de procesamiento de lectura almacenada en caché agregada; aislamiento por grupo Más volúmenes para administrar; conjunto de datos dividido en cachés
Solo origen (sin caché) Coherencia de escritura más sólida en un solo sitio Latencia de WAN para el procesamiento en la nube

Si conoces las entradas de tu trabajo con anticipación, usa el llenado previo en cada caché de fan-out.

Fan-out en volúmenes de gran capacidad con varios endpoints

Los volúmenes de gran capacidad y los volúmenes de FlexCache a gran escala exponen varias direcciones IP por volumen. Trata cada IP como un extremo de almacenamiento con su propio presupuesto de ranura de conexión.

Si tienes cientos o miles de clientes de NFS, ten en cuenta lo siguiente:

  • Entradas de tabla de ranuras RPC por cliente más bajas: Por ejemplo, 8 ranuras por cliente en NFSv3, de modo que las operaciones pendientes totales por extremo permanezcan dentro de los límites recomendados (aproximadamente 10,000 ranuras por extremo en la granja). Para obtener más información, consulta Simultaneidad de NFS de Linux.

  • Distribuye las activaciones en los extremos: Usa la distribución de turnos rotativos de Cloud DNS o la fragmentación estática.

Para implementar la distribución de FlexCache, usa un volumen de origen (ONTAP local o un volumen en modo ONTAP de la nube) para respaldar varios volúmenes de FlexCache en NetApp Volumes. Activa cada caché con diferentes consumidores, como una partición de Slurm o una clase de trabajo, para aislar los conjuntos de datos y las cargas de lectura en las exportaciones.

Para implementar la distribución de varios fan-out de endpoint, usa un volumen de gran capacidad que exponga la misma exportación de NFS en varias direcciones IP. Distribuye los clientes en esos extremos asignando grupos de clientes fijos a cada dirección IP o activando un nombre de DNS que se resuelva en una dirección por activación. Cada extremo tiene su propio presupuesto de conexión; la distribución de clientes ayuda a evitar la concentración de E/S en toda la granja en una sola dirección IP.

Combina patrones

Para los entornos de EDA de producción, puedes combinar estos patrones de arquitectura para optimizar el rendimiento:

  • Completamente en la nube: Usa volúmenes temporales de gran capacidad más volúmenes estándar más pequeños para herramientas y la página principal.

  • Híbrido: Usa FlexCache para bibliotecas y herramientas, con un volumen temporal aprovisionado en la nube para la salida del trabajo.

  • Fan-out: Usa FlexCache por sitio o por cola de planificador, además de DNS de varios extremos para un volumen temporal grande nativo de la nube.

Haz coincidir el nivel de servicio del volumen y el tipo de grupo (Flex Unified regular en comparación con la gran capacidad) con las necesidades de capacidad y rendimiento de cada nivel. Para obtener más información, consulta niveles de servicio.

¿Qué sigue?