Arquitectura de SAS en Azure

Azure Virtual Machines
Azure Virtual Network

Esta solución ejecuta cargas de trabajo de análisis de SAS en Azure. La guía abarca varios escenarios de implementación. Por ejemplo, hay disponibles varias versiones de SAS. Puede ejecutar software de SAS en máquinas virtuales autoadministradas. También puede implementar versiones basadas en contenedores mediante Azure Kubernetes Service (AKS).

Architecture

Architecture diagram showing how to deploy SAS products on Azure.

El diagrama contiene un rectángulo grande con la etiqueta Azure Virtual Network. Dentro de él, otro rectángulo grande muestra la etiqueta Grupo con ubicación por proximidad. Hay dos rectángulos dentro de él. Están colocados verticalmente y cada uno tiene la etiqueta Grupo de seguridad de red. Cada rectángulo de grupo de seguridad contiene varios iconos de equipos que están organizados en filas. En el rectángulo superior, los iconos de equipos del lado izquierdo de la fila superior muestran la etiqueta Capa media. Los iconos de la derecha presentan la etiqueta Capa de metadatos. La fila inferior de iconos tiene la etiqueta Capa de proceso. En el rectángulo inferior, la fila superior de iconos de equipos muestra la etiqueta Servidores MGS y MDS. La fila inferior presenta la etiqueta Servidores OST y OSS.

Descargue un archivo Visio de esta arquitectura.

Flujo de trabajo

Las implementaciones de SAS de Azure contienen normalmente tres capas:

  • Una API o capa de visualización. Dentro de esta capa:

    • La capa de metadatos proporciona a las aplicaciones cliente acceso a los metadatos sobre orígenes de datos, recursos, servidores y usuarios.
    • Las aplicaciones web proporcionan acceso a los datos de inteligencia en la capa intermedia.
  • Una plataforma de proceso, donde los servidores de SAS procesan datos.

  • Una capa de almacenamiento que SAS utiliza para el almacenamiento permanente. Las opciones más populares en Azure son:

    • Lustre
    • IBM Spectrum Scale
    • Network File System (NFS)

Una instancia de Azure Virtual Network aísla el sistema en la nube. Dentro de esa red:

  • Un grupo de ubicación por proximidad reduce la latencia entre máquinas virtuales.
  • Los grupos de seguridad de red protegen los recursos de SAS del tráfico no deseado.

Prerrequisitos

Antes de implementar una carga de trabajo de SAS, asegúrese de que existen los siguientes componentes:

  • Una recomendación de dimensionamiento de un equipo de dimensionamiento de SAS
  • Un archivo de licencias de SAS
  • Acceso a un grupo de recursos para implementar los recursos
  • Una cuota de suscripción de CPU virtual que tiene en cuenta el documento de dimensionamiento y la elección de la máquina virtual
  • Acceso a un servidor de Protocolo ligero de acceso a directorios (LDAP) seguro

Detalles del escenario

Además de analizar las distintas implementaciones, esta guía también se ajusta a los principios del Marco de buena arquitectura de Microsoft Azure para lograr la excelencia en las áreas de costo, DevOps, resistencia, escalabilidad y seguridad. No obstante, además de utilizar esta guía, consulte con un equipo de SAS para obtener una validación adicional de su caso de uso concreto.

Como asociados, Microsoft y SAS están trabajando para desarrollar una hoja de ruta dirigida a las organizaciones que innovan en la nube. Ambas empresas se comprometen a garantizar implementaciones de alta calidad de productos y soluciones de SAS en Azure.

Introducción a SAS

El software de análisis de SAS proporciona un conjunto de servicios y herramientas para obtener información detallada de los datos y poder tomar decisiones inteligentes. Las plataformas de SAS son totalmente compatibles con sus soluciones para áreas como administración de datos, detección de fraudes, análisis de riesgos y visualización. SAS ofrece estas plataformas principales que Microsoft ha validado:

  • SAS Grid 9.4
  • SAS Viya

Se han probado las siguientes arquitecturas:

  • SAS Grid 9.4 en Linux
  • SAS 9 Foundation
  • SAS Viya 3.5 con arquitecturas de procesamiento de multiproceso simétrico (SMP) y de procesamiento paralelo masivo (MPP) en Linux
  • SAS Viya 2020 y versiones posteriores con una arquitectura de procesamiento paralelo masivo en AKS

En esta guía se proporciona información general para ejecutar SAS en Azure y no información específica de la plataforma. En estas directrices se da por supuesto que hospeda su propia solución de SAS en Azure en su propio inquilino. SAS no hospeda una solución para el usuario en Azure. Para más información sobre los servicios de hospedaje y administración de Azure que proporciona SAS, consulte SAS Managed Application Services (Servicios de aplicaciones administradas de SAS).

Recomendaciones

Al diseñar la implementación, tenga en cuenta los puntos de las siguientes secciones.

La documentación de SAS proporciona requisitos por núcleo, lo que significa por núcleo de CPU físico. Pero Azure proporciona listas de CPU virtuales. En las máquinas virtuales que se recomienda utilizar con SAS, hay dos CPU virtuales para cada núcleo físico. En consecuencia, para calcular el valor de un requisito de CPU virtual, utilice la mitad del valor del requisito de núcleo. Por ejemplo, un requisito de núcleo físico de 150 MBps equivale a 75 MBps por CPU virtual. Para más información sobre el rendimiento informático de Azure, consulte Unidad de proceso de Azure (ACU).

Nota

Si va a escalar verticalmente y conservar los datos en una implementación de SAS de un único nodo (y no en un sistema de archivos externalizado), la documentación de SAS recomienda un ancho de banda de al menos 150 MB/s. Para lograr este ancho de banda, debe seccionar varios discos P30 Premium (o más grandes).

Sistemas operativos

Linux funciona mejor cuando ejecuta cargas de trabajo de SAS. SAS admite versiones de 64 bits de los siguientes sistemas operativos:

  • Red Hat 7 o posterior
  • SUSE Linux Enterprise Server (SLES) 12.2
  • Oracle Linux 6 o posterior

Para más información sobre versiones específicas de SAS, consulte la matriz de compatibilidad del sistema operativo SAS. En entornos que utilizan varias máquinas, es mejor ejecutar la misma versión de Linux en todas las máquinas. Azure no admite implementaciones de Linux de 32 bits.

Para optimizar la compatibilidad y la integración con Azure, comience con una imagen del sistema operativo de Azure Marketplace. Si utiliza una imagen personalizada sin configuraciones adicionales, es posible que el rendimiento de SAS se degrade.

Problemas de kernel

Al elegir un sistema operativo, tenga en cuenta el problema de bloqueo flexible que afecta a toda la serie Red Hat 7.x. Se produce en estos kernels:

  • Kernels de Linux 3.x
  • Versiones anteriores a 4.4

Un problema con la memoria y administración de E/S de Linux e Hyper-V provoca la incidencia. Cuando surge, los registros del sistema contienen entradas como esta que mencionan una interrupción no enmascarable (NMI):

Message from syslogd@ronieuwe-sas-e48-2 at Sep 13 08:26:08
kernel:NMI watchdog: BUG: soft lockup - CPU#12 stuck for 22s! [swapper/12:0]

Hay otro problema que afecta a las versiones anteriores de Red Hat. En concreto, puede ocurrir en versiones que cumplen estas condiciones:

  • Tienen kernels de Linux que preceden a 3.10.0-957.27.2
  • Utilizan unidades de memoria rápida no volátiles (NVMe)

Cuando el sistema experimenta una presión de memoria alta, es posible que el controlador NVMe de Linux genérico no asigne memoria suficiente para una operación de escritura. En consecuencia, el sistema notifica un bloqueo flexible que se deriva de un interbloqueo real.

Actualice el kernel para evitar los dos problemas. También puede intentar esta posible solución alternativa:

  • Establezca /sys/block/nvme0n1/queue/max_sectors_kb en 128 en lugar de usar el valor predeterminado, 512.
  • Cambie esta configuración en cada dispositivo de NVMe y en cada arranque de máquina virtual.

Ejecute estos comandos para ajustar esta configuración:

# cat /sys/block/nvme0n1/queue/max_sectors_kb
512
# echo 128 >/sys/block/nvme0n1/queue/max_sectors_kb
# cat /sys/block/nvme0n1/queue/max_sectors_kb
128

Recomendación de dimensionamiento de máquinas virtuales

Las implementaciones de SAS suelen utilizar las siguientes SKU de máquina virtual:

Serie Edsv5

Las máquinas virtuales de la serie Edsv5 son las máquinas SAS predeterminadas para Viya y Grid. Ofrecen estas características:

  • Núcleos restringidos. Con muchas máquinas de esta serie, puede restringir el recuento de CPU virtuales de máquinas virtuales.
  • Una buena relación entre la CPU y la memoria.
  • Un disco conectado localmente de alto rendimiento. La velocidad de E/S es importante para carpetas como SASWORK y la caché de Cloud Analytics Services (CAS), CAS_CACHE, que SAS usa para los archivos temporales.

Si las máquinas virtuales de la serie Edsv5 no están disponibles, se recomienda usar la generación anterior. Las máquinas virtuales de la serie Edsv4 se han probado y funcionan bien en las cargas de trabajo de SAS.

Serie Ebsv5

En algunos casos, el disco conectado localmente no tiene suficiente espacio de almacenamiento para SASWORK o CAS_CACHE. Para obtener un directorio de trabajo mayor, use la serie Ebsv5 de máquinas virtuales con discos conectados premium. Estas máquinas virtuales ofrecen estas características:

  • Mismas especificaciones que las máquinas virtuales Edsv5 y Esv5
  • Alto rendimiento en disco conectado remoto, hasta 4 GB/s, lo que le proporciona un tamaño de SASWORK o CAS_CACHE según sea necesario en las necesidades de E/S de SAS.

Si las máquinas virtuales de la serie Edsv5 ofrecen suficiente almacenamiento es mejor usarlas, ya que son más rentables.

Serie M

Muchas cargas de trabajo utilizan máquinas virtuales de la serie M, entre las que se incluyen:

  • Implementaciones del entorno de tiempo de ejecución de programación (SPRE) de SAS que utilizan un enfoque de Viya para la arquitectura de software.
  • Algunas cargas de trabajo de SAS Grid.

Las máquinas virtuales de la serie M ofrecen estas características:

  • Núcleos restringidos
  • Hasta 3,8 TiB de memoria, adecuado para cargas de trabajo que utilizan una gran cantidad de memoria
  • Alto rendimiento en discos remotos, lo que funciona bien para la carpeta SASWORK cuando el disco disponible local no es suficiente

Serie Ls

Ciertos entornos pesados de E/S deben usar máquinas virtuales de la serie Lsv2 o Lsv3. En concreto, las implementaciones que necesiten una velocidad de E/S rápida con poca latencia y una gran cantidad de memoria sacan partido de este tipo de máquinas. Algunos ejemplos son los sistemas que hacen un uso intensivo de la carpeta SASWORK o CAS_CACHE.

Nota

SAS optimiza sus servicios para utilizarlos con la biblioteca Intel Math Kernel Library (MKL).

  • Con cargas de trabajo que hacen un uso intensivo de las matemáticas, evite las máquinas virtuales que no utilicen procesadores Intel: Lsv2 y Lasv3.
  • Al seleccionar una CPU de AMD, valide el rendimiento de MKL en ella.

Advertencia

Si es posible, evite usar máquinas virtuales de Lsv2. Use las máquinas virtuales Lsv3 con conjuntos de chips Intel en su lugar.

Con Azure, puede escalar sistemas de SAS Viya a petición para cumplir con las fechas límite:

  • Al aumentar la capacidad de proceso del grupo de nodos.
  • Mediante la escalabilidad automática de clústeres de AKS para agregar nodos y escalar horizontalmente.
  • Con el escalado vertical temporal de la infraestructura para acelerar una carga de trabajo de SAS.

Nota

Al escalar componentes informáticos, considere también la posibilidad de escalar verticalmente el almacenamiento para evitar cuellos de botella de E/S de almacenamiento.

Con las cargas de trabajo de Viya 3.5 y Grid, Azure no admite el escalado horizontal o vertical en este momento. Viya 2022 admite el escalado horizontal.

Consideraciones de la ubicación de red y máquinas virtuales

Las cargas de trabajo de SAS son a menudo locuaces. Por ello, pueden transferir una cantidad significativa de datos. Con todas las plataformas de SAS, siga estas recomendaciones para reducir los efectos de la locuacidad:

  • Implemente plataformas de SAS y de almacenamiento en la misma red virtual. Este enfoque también evita incurrir en costos de emparejamiento.
  • Coloque las máquinas de SAS en un grupo con ubicación por proximidad para reducir la latencia entre los nodos.
  • Cuando sea posible, implemente máquinas de SAS y plataformas de almacenamiento de datos basadas en máquinas virtuales en el mismo grupo con ubicación por proximidad.
  • Implemente dispositivos de SAS y de almacenamiento en la misma zona de disponibilidad para evitar la latencia entre zonas. Si no puede confirmar que los componentes de la solución están implementados en la misma zona, póngase en contacto con el soporte técnico de Azure.

SAS presenta requisitos específicos de nombres de dominio completos para las máquinas virtuales. Establezca los nombres de dominio completos de las máquinas correctamente y asegúrese de que funcionen los servicios del sistema de nombres de dominio (DNS). Puede establecer los nombres con Azure DNS. También puede editar el archivo hosts en la carpeta de configuración etc.

Nota

Active las redes aceleradas en todos los nodos de la implementación de SAS. Al desactivar esta característica, el rendimiento se verá afectado de manera importante.

Para activar las redes aceleradas en una máquina virtual, siga estos pasos:

  1. Ejecute este comando en la CLI de Azure para desasignar la máquina virtual:

    az vm deallocate --resource-group <resource_group_name> --name <VM_name>

  2. Desactive la máquina virtual.

  3. Ejecute este comando en la CLI:

    az network nic update -n <network_interface_name> -g <resource_group_name> --accelerated-networking true

Al migrar datos o interactuar con SAS en Azure, se recomienda utilizar una de estas soluciones para conectar recursos locales a Azure:

En el caso de las cargas de trabajo de SAS de producción en Azure, ExpressRoute proporciona una conexión privada, dedicada y confiable que ofrece estas ventajas a través de una VPN de sitio a sitio:

  • Mayor velocidad
  • Menor latencia
  • Una seguridad más estricta

Tenga en cuenta las interfaces sensibles a la latencia entre las aplicaciones de SAS y las que no son de SAS. Considere la posibilidad de mover orígenes y receptores de datos cerca de SAS.

Administración de identidades

Las plataformas de SAS pueden utilizar cuentas de usuario locales. También pueden usar un servidor LDAP seguro para validar a los usuarios. Se recomienda ejecutar un controlador de dominio en Azure. A continuación, utilice la característica de unión a un dominio para administrar correctamente el acceso de seguridad. Si no ha configurado controladores de dominio, considere la posibilidad de implementar Microsoft Entra Domain Services (Microsoft Entra Domain Services). Cuando utilice la característica de unión a un dominio, asegúrese de que los nombres de las máquinas no superen el límite de 15 caracteres.

Nota

En algunos entornos, existe un requisito de conectividad local o conjuntos de datos compartidos entre entornos de SAS locales y los hospedados en Azure. En estas situaciones, se recomienda expresamente implementar un controlador de dominio en Azure.

El bosque de Microsoft Entra Domain Services crea usuarios que se pueden autenticar en dispositivos de Microsoft Entra, pero no en recursos locales y viceversa.

Orígenes de datos

A menudo, las soluciones de SAS acceden a datos de varios sistemas. Estos orígenes de datos se dividen en dos categorías:

  • Conjuntos de datos de SAS, que SAS almacena en la carpeta SASDATA
  • Bases de datos en las que SAS suele colocar una carga pesada

Para obtener el mejor rendimiento:

  • Coloque los orígenes de datos lo más cerca posible de la infraestructura de SAS.
  • Limite el número de saltos de red y dispositivos entre los orígenes de datos y la infraestructura de SAS.

Nota

Si no puede mover orígenes de datos cerca de la infraestructura de SAS, evite ejecutar análisis en ellos. En su lugar, ejecute los procesos de extracción, transformación y carga (ETL) primero y el de análisis después. Aplique el mismo enfoque a los orígenes de datos que están sometidos a esfuerzo.

Almacenamiento remoto permanente para datos de SAS

SAS y Microsoft han probado una serie de plataformas de datos que puede utilizar para hospedar conjuntos de datos de SAS. Los blogs de SAS documentan los resultados en detalle, incluidas las características de rendimiento. Las pruebas incluyen las siguientes plataformas:

SAS ofrece scripts de pruebas de rendimiento para las arquitecturas Viya y GRID. Los foros de SAS proporcionan documentación sobre las pruebas con scripts en estas plataformas.

Sycomp Storage Fueled by IBM Spectrum Scale (GPFS)

Para más información sobre cómo cumple Sycomp Storage Fueled by IBM Spectrum Scale las expectativas de rendimiento, consulte SAS review of Sycomp for SAS Grid (Revisión de SAS de Sycomp para SAS Grid).

Para el dimensionamiento, Sycomp realiza las siguientes recomendaciones:

  • Proporcione un nodo de escalado GPFS por cada ocho núcleos con una configuración de 150 MBps por núcleo.
  • Utilice un mínimo de cinco unidades P30 por instancia.
DDN EXAScaler Cloud (Lustre)

DDN, que adquirió la empresa Lustre de Intel, proporciona EXAScaler Cloud, que se basa en el sistema de archivos en paralelo de Lustre. La solución está disponible en Azure Marketplace como parte del paraguas de EXAScaler Cloud de DDN. Diseñado para una implementación con un uso intensivo de datos, proporciona un alto rendimiento a bajo costo.

Las pruebas muestran que EXAScaler de DDN puede ejecutar cargas de trabajo de SAS de forma paralela. DDN recomienda ejecutar este comando en todos los nodos de cliente al implementar EXAScaler o Lustre:

lctl set_param mdc.*.max_rpcs_in_flight=128 osc.*.max_pages_per_rpc=16M osc.*.max_rpcs_in_flight=16 osc.*.max_dirty_mb=1024 llite.*.max_read_ahead_mb=2048 osc.*.checksums=0  llite.*.max_read_ahead_per_file_mb=256
Azure NetApp Files (NFS)

Las pruebas de SAS se han asegurado del rendimiento de NetApp para SAS Grid. En concreto, las pruebas muestran que Azure NetApp Files es una opción de almacenamiento principal viable para clústeres de SAS Grid de hasta 32 núcleos físicos en varias máquinas. Cuando se usan optimizaciones proporcionadas por NetApp y características de Linux, Azure NetApp Files puede ser la opción principal para clústeres de hasta 48 núcleos físicos en varias máquinas.

Al utilizar este servicio, tenga en cuenta los siguientes puntos:

  • Azure NetApp Files funciona bien con las implementaciones de Viya. No use Azure NetApp Files para la caché de CAS en Viya, ya que el rendimiento de escritura no es el adecuado. Si es posible, utilice en su lugar el disco efímero local de la máquina virtual.
  • En SAS 9 Foundation con Grid 9.4, el rendimiento de Azure NetApp Files con SAS para archivos SASDATA es adecuado para clústeres de hasta 32 núcleos físicos. Y llega a 48 núcleos cuando se aplica la optimización.
  • Para garantizar un buen rendimiento, seleccione al menos un nivel de servicio de capa de almacenamiento Ultra o Prémium al implementar Azure NetApp Files. Puede elegir el nivel de servicio Estándar para volúmenes muy grandes. Considere la posibilidad de empezar con el nivel Prémium y cambiar a Ultra o Estándar más adelante. Los cambios de nivel de servicio se pueden realizar en línea, sin interrupciones ni migraciones de datos.
  • Los rendimientos de lectura y escritura son diferentes para Azure NetApp Files. El rendimiento de escritura para SAS alcanza los límites de unos 1600 MiB/s mientras que el rendimiento de lectura va más allá, hasta unos 4500 MiB/s. Si necesita un alto rendimiento de escritura de forma continua, es posible que Azure NetApp Files no sea una buena opción.

Otros orígenes de datos

Las plataformas de SAS admiten varios orígenes de datos:

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.

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.

La salida de las cargas de trabajo de SAS puede ser uno de los recursos críticos de su organización. La salida de SAS proporciona información sobre las eficiencias internas y puede desempeñar un rol fundamental en la estrategia de informes. Por lo tanto, es importante proteger el acceso a la arquitectura de SAS. Para lograr este objetivo, utilice la autenticación segura y trate los puntos vulnerables de la red. Utilice el cifrado para proteger todos los datos que se mueven dentro y fuera de la arquitectura.

Azure ofrece SAS mediante un modelo en la nube de infraestructura como servicio (IaaS). Microsoft crea protecciones de seguridad en el servicio en los niveles siguientes:

  • Centro de datos físico
  • Red física
  • Host físico
  • Hipervisor

Evalúe cuidadosamente los servicios y tecnologías que seleccione para las áreas que hay encima del hipervisor, como el sistema operativo invitado para SAS. Asegúrese de proporcionar los controles de seguridad adecuados para la arquitectura.

Actualmente, SAS no admite completamente el identificador de Microsoft Entra ID. Para la autenticación en la capa de visualización para SAS, puede usar Microsoft Entra ID. Pero para la autorización de back-end, utilice una estrategia similar a la autenticación local. Al administrar recursos de IaaS, puede usar Microsoft Entra ID para la autenticación y autorización en Azure Portal. Al usar Microsoft Entra Domain Services, no se pueden autenticar cuentas de invitado. Se producirá un error en los intentos de inicio de sesión de los invitados.

Utilice grupos de seguridad de red para filtrar el tráfico de red hacia y desde los recursos en la red virtual. Con estos grupos, puede definir reglas que concedan o denieguen el acceso a los servicios de SAS. Algunos ejemplos son:

  • Puede dar acceso a los puertos de trabajo de CAS desde intervalos de direcciones IP locales.
  • Puede bloquear el acceso a los servicios de SAS desde Internet.

Puede utilizar Azure Disk Encryption para el cifrado en el sistema operativo. Esta solución usa la característica DM-Crypt de Linux. Pero actualmente no se recomienda utilizar Azure Disk Encryption. Puede degradar seriamente el rendimiento, en particular, cuando se usan archivos SASWORK a nivel local.

El cifrado del lado servidor (SSE) de Azure Disk Storage protege los datos. También le ayuda a satisfacer los compromisos de seguridad y cumplimiento de la organización. Con discos administrados de Azure, SSE cifra los datos en reposo al conservarlos en la nube. Este comportamiento se aplica de forma predeterminada a los discos de datos y del sistema operativo. Puede utilizar claves administradas por la plataforma o sus propias claves para cifrar el disco administrado.

Protección de la infraestructura

Controle el acceso a los recursos de Azure que implemente. Cada suscripción de Azure tiene una relación de confianza con un inquilino de Microsoft Entra. Use el control de acceso basado en rol de Azure (Azure RBAC) para otorgar a los usuarios de la organización los permisos correctos para los recursos de Azure. Para conceder el acceso, asigne los roles de Azure a usuarios o grupos en un ámbito determinado. El ámbito puede ser una suscripción, un grupo de recursos o incluso un solo recurso. Asegúrese de auditar todos los cambios realizados en la infraestructura.

Administre el acceso remoto a las máquinas virtuales mediante Azure Bastion. No exponga ninguno de estos componentes en Internet:

  • Máquinas virtuales
  • Puertos del protocolo Secure Shell (SSH)
  • Puertos del protocolo de escritorio remoto (RDP)

Implementación de este escenario

Es mejor implementar cargas de trabajo mediante un proceso de infraestructura como código (IaC). Las cargas de trabajo de SAS pueden ser sensibles a las configuraciones incorrectas que suelen producirse en implementaciones manuales y reducen la productividad.

Al crear el entorno, consulte el material de referencia de inicio rápido en CoreCompete SAS 9 o Viya en Azure.

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Creadores de entidad de seguridad:

Otro colaborador:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes

Si desea obtener ayuda para comenzar, consulte los recursos siguientes:

Para obtener ayuda con el proceso de automatización, consulte las siguientes plantillas que proporciona SAS: