Cuando Microsoft anunció por primera vez en 2017 que instalaría Windows Server en los procesadores Arm, parecía una excelente manera de obtener servidores que podrían ser más baratos, más pequeños y con menos consumo de energía. Con CPU de servidor que superan los 200 W y la tendencia a colocar varias GPU o aceleradores personalizados en un chasis que puede consumir hasta 10 kW de energía (para cargas de trabajo de análisis o aprendizaje automático pesados), equilibrar esto con servidores basados ​​en Arm de baja potencia es una idea atractiva. para el centro de datos.

Pero mientras que la especificación del Proyecto Olympus que usa Microsoft para servidores x86 y Arm en Azure es de código abierto y está disponible comercialmente de fabricantes de servidores como Wiwynn, Windows Server para Arm no está disponible fuera de Microsoft. Los procesadores Arm han estado apareciendo en los gabinetes NAS durante algún tiempo, pero no hay señales de un dispositivo Almacenamiento Spaces Direct hiperconvergente para competir con ellos.

VER: Consejos para construir una carrera exitosa como ingeniero de software (PDF gratuito) (TechRepublic)

En ese momento, el destacado ingeniero de Microsoft, Leendert van Doorn, dijo que Microsoft no veía una oportunidad comercial para Windows Server on Arm. ¿Podría el auge de la IoT y la computación perimetral, junto con la próxima arquitectura Neoverse N1 de Arm, cambiar eso?

Índice

Faltan placas base

La idea de los servidores Arm ha existido durante varios años, pero Intel ha seguido siendo dueña del mercado de servidores. Primero fue la falta de procesadores de 64 bits y un rendimiento lo suficientemente potente, luego fue la necesidad de mover el software del servidor y las cargas de trabajo a la plataforma.

Un número creciente de distribuciones, herramientas y cargas de trabajo de Linux se ejecutan en ARM 64 (y se promete compatibilidad con VMware ESXi). El rendimiento fue lo suficientemente bueno para Azure en 2017; de hecho, fue tan bueno que el rendimiento, en lugar de la potencia o el costo, fue la razón por la que Microsoft adoptó Arm.

Pero dado que Arm solo diseña procesadores y deja que los clientes los fabriquen, el problema se convirtió en encontrar proveedores. La especificación Arm's Server Base System Architecture (SBSA) se diseñó para reducir la fragmentación y permitió a Microsoft usar procesadores Qualcomm y Cavium en el chasis del Proyecto Olympus. La construcción de procesadores es costosa, y muchos fabricantes de procesadores de servidor Arm esperanzados han quebrado o han sido adquiridos (Cavium ahora es parte de Marvell, mientras que Qualcomm ha abandonado su desarrollo Centriq).

Esto significa que incluso empresas como Cloudflare que planeaban cambiar por completo al hardware Arm terminaron con el silicio de Intel. “Transportamos toda nuestra pila a Arm, a los procesadores Qualcomm Centriq”, nos dijo el CEO de Cloudflare, Matthew Prince. Los proyectos de Linux que necesitaban ya se estaban ejecutando en ARM64. "El rendimiento fue realmente bueno, habíamos negociado los acuerdos sobre quién iba a construir los servidores para nosotros, íbamos a toda máquina, luego Qualcomm lo cerró".

Cloudflare ahora usa CPU Intel que tienen muchos núcleos para las cargas de trabajo paralelas que ejecuta, pero tienen un precio y una potencia relativamente bajos. La experiencia dejó a Prince preguntándose si los proveedores pueden suministrar hardware de servidor Arm: gran parte del equipo de Centriq se ha mudado a Ampere, pero el rendimiento no coincide con los sistemas de Centriq que Cloudflare había probado. Los servidores Arm de mejor rendimiento actualmente provienen de Huawei, señaló Prince, pero Arm se vio obligado a retirar la licencia del procesador de Huawei.

AWS resolvió el problema del proveedor al construir sus propios procesadores Graviton Arm para poder ofrecer IaaS basado en Arm como parte de EC2. Graviton se basa en el trabajo realizado por Annapurna Labs para crear aceleradores de red y almacenamiento para AWS y, hasta ahora, muchas CPU Arm que aparecen en los servidores se han utilizado para descarga en lugar de como CPU principal.

VER: Consejos prácticos de Windows 10: accesos directos secretos a sus configuraciones favoritas (Investigación profesional de tecnología)

Las instancias de AWS A1 Arm están diseñadas para cargas de trabajo de escalamiento horizontal, como microservicios, alojamiento web y aplicaciones escritas en Ruby y Python. Al igual que las cargas de trabajo de Cloudflare, estas son tareas que se benefician de la paralelización masiva y el alto ancho de banda de memoria proporcionado por Arm. En Azure, Windows Server on Arm no ejecuta máquinas virtuales, porque la emulación x86 compromete el rendimiento por un bajo consumo de energía, sino cargas de trabajo PaaS altamente paralelas, como la generación de índices de búsqueda de Bing, el almacenamiento y el procesamiento de grandes datos.

Por primera vez, una supercomputadora basada en Arm (construida por HPE con procesadores Marvell ThunderX2) llegó a la lista de los 500 mejores sistemas HPC, otra carga de trabajo altamente paralela. Y la arquitectura Arm Neoverse N1 de próxima generación está diseñada específicamente para servidores e infraestructura.

hacer un servidor

Parte de esto es que Arm proporciona un diseño de referencia de procesador de servidor completo, no solo una especificación de procesador, lo que facilita la creación de servidores N1. Se espera que los primeros productos basados ​​en N1 estén disponibles a finales de 2019 o principios de 2020, seguidos de una segunda generación a finales de 2020 o principios de 2021.

Además, la nueva arquitectura de procesador está diseñada para cargas de trabajo de servidor con uso intensivo de datos, como Memcached, NGINX, MySQL, Kubernetes, .NET y Java. N1 también es compatible con lo que Arm llama virtualización de "grado de servidor" para hipervisores Tipo 1 y Tipo 2 con mejoras para el cambio de contexto; eso significa hipervisores bare metal como Hyper-V, así como hipervisores alojados como Xen, y el director senior de administración de productos de Arm, Brian Jeff, nos dijo que "hemos incorporado todos los ganchos para admitir Hyper-V".

Con hasta 128 núcleos en una CPU, los núcleos necesitan una interconexión más eficiente que la que usaba anteriormente Arm Ring. Con N1, los núcleos ahora están directamente interconectados en una malla. "Eso significa que puedes dedicar la mitad de la CPU a una tarea y la otra mitad a otra", nos dijo Jeff. “Al inicio, configura su tarjeta de memoria y se divide entre las dos mitades; cada lado tiene su propio caché y memoria y está completamente separado del otro. Es como NUMA, tiene afinidad de caché para cada lado, por lo que si tiene una VM de alta prioridad o una tarea que desea mantener aislada del lado de propósito general del sistema, puede hacerlo.

La nueva arquitectura es definitivamente algo que Windows Server podría aprovechar. Microsoft también ha ampliado Windows on Arm (que actualmente solo está disponible en portátiles); Actualmente, Hyper-V no es compatible, pero pronto estará disponible, no solo para ejecutar máquinas virtuales o contenedores Hyper-V, sino también para seguridad basada en virtualización como Windows Defender System Guard. También se requiere VBS para la función Always Encrypted de SQL Server. Durante Build 2019, Microsoft también mostró versiones ARM64 nativas de las herramientas Sysinternals, junto con Firefox y el nuevo navegador Edge basado en Chromium. Recompilar aplicaciones de Windows de 64 bits en ARM64 ahora es bastante simple.

Los servidores perimetrales como el ThinkSystem SE350 de Lenovo podrían ser una plataforma adecuada para una versión Arm de Windows Server IoT 2019. (El SE350 actualmente está basado en Xeon).
Imagen: Lenovo

Eso no significa que una versión Arm de propósito general de Windows Server sea más probable ahora que en 2017, pero un lugar donde los servidores Arm tienen especial sentido es en el perímetro, y Azure SQL Base de datos Edge se ejecutará tanto en Arm como en Procesadores x64, primero en Linux, luego también en Windows. Es una versión "pequeña" (alrededor de 250 MB) de SQL Server optimizada para datos de series temporales (como una serie de lecturas de sensores) y modelos de aprendizaje automático en ejecución que se ejecutan en un contenedor y transmiten datos a Azure Stream Analytics y a una base de datos. como Azure Data Warehouse, Cosmos DB o SQL Server para el almacenamiento.

La idea es que los dispositivos IoT producen tantos datos que no se pueden transmitir todos a la nube, y cuando se agrega el aprendizaje automático, como el reconocimiento de imágenes, para verificar las botellas de cerveza que bajan por un atasco de tráfico o los paquetes que pasan por una cinta transportadora, necesita tomar decisiones en tiempo real en lugar de esperar a que los datos vayan a la nube y la decisión regrese. Por lo tanto, necesita una base de datos donde pueda ejecutar el aprendizaje automático local para manejar esto, utilizando un modelo que se entrenó en la nube. Pero también puedes enviar parte de los datos a la nube para mejorar el modelo de aprendizaje automático.

Azure SQL Base de datos Edge puede ejecutarse en un dispositivo IoT, lo que significa Windows 10 IoT Core con el tiempo de ejecución de Azure IoT Edge administrado a través de Azure IoT Central, en lugar de Windows Server. Pero Microsoft también quiere ejecutarlo en servidores de puerta de enlace que agregan múltiples dispositivos IoT y servidores perimetrales que se conectan a la nube o a sus otros servidores.

Lenovo, por ejemplo, fabrica servidores perimetrales diseñados para entrar en el tipo de entornos en los que los servidores tradicionales no funcionan bien, como el suelo de una fábrica con vibraciones y polvo, o el armario de una ferretería sin seguridad ni cable Ethernet. Si hay una versión Arm del Lenovo ThinkSystem SE350 Edge Server en lugar de solo un modelo Xeon, y si ejecuta Windows en lugar de Linux, es posible que esté ejecutando Windows Server en lugar de Windows 10 IoT Enterprise (el reemplazo de Windows Embedded que está diseñado para usuarios fijos). -dispositivos funcionales como cajeros automáticos y sistemas de punto de venta).

ARM64 Process Explorer ejecutándose en una computadora portátil Qualcomm Snapdragon 850 versión 2019.
Imagen: Mary Branscombe/TechRepublic

Microsoft ya tiene Windows Server IoT 2019, que es el nuevo nombre de Windows Embedded Server, y tiene redes de alto rendimiento y almacenamiento de alta disponibilidad con clústeres de dos nodos para escenarios de borde más exigentes, como el reconocimiento de imágenes en tiempo real en tiempo de ejecución de 16 cámaras en una vez. , para monitorear una fila completa. Una versión Arm de esto podría tener sentido y la arquitectura N1 encajaría perfectamente.

Pero también, algunos OEM están interesados ​​en usar Windows 10 Enterprise ejecutándose en dispositivos Qualcomm Snapdragon 850 (lo que usan las computadoras portátiles Windows on Arm); el LTE incorporado es ideal para enviar datos desde lugares que no tienen conexiones de red tradicionales.

Ya sea que se trate de Windows Enterprise o de una versión IoT especializada de Windows Server, Windows on Arm será una opción para la informática industrial y perimetral. Pero a menos que la arquitectura N1 realmente revitalice el mercado de servidores Arm, no espere un servidor Windows de uso general en Arm solo porque el silicio podría hacer que funcione.