lunes, 19 de marzo de 2018

La red de centro de datos de Facebook de próxima generación

Los más de 1,350 millones de personas que usan Facebook de manera continua, confían en un rendimiento ininterrumpido y "siempre activo". En "La Trastienda" tenemos muchos subsistemas e infraestructuras avanzadas en su lugar, que hacen posible una experiencia en tiempo real. Nuestra red escalable de alto rendimiento es uno de ellos.

La red de producción de Facebook en sí misma es un gran sistema distribuido, con niveles y tecnologías especializados para diferentes tareas: Frontera (edge), Columna Vertebral (backbone) y Centros de Datos (data centers). En esta entrada al Blog Tecnológico, nos enfocaremos en los últimos desarrollos en la red de centros de datos en Facebook y revelaremos la arquitectura de próxima generación que han implementado con éxito en sus nuevas instalaciones de Altoona, Pennsylvania: el tejido principal del centro de datos.

Moviéndose rápido, @escala

La infraestructura de red de Facebook necesita escalar y evolucionar constantemente, adaptándose rápidamente a las necesidades de la aplicación. La cantidad de tráfico de Facebook a Internet, tráfico de "máquina a usuario", es grande y está en aumento a medida que más personas se conectan y son creados nuevos productos y servicios. Sin embargo, este tipo de tráfico es solo la punta del iceberg. Lo que sucede dentro de los centros de datos de Facebook (el tráfico de "máquina a máquina") es varios órdenes de magnitud mayor que lo que sale en Internet.

Nuestros niveles de servicios de back-end y aplicaciones, se distribuyen y se interconectan de manera lógica. Todo se basa en una relación de confianza sobre una amplia "cooperación" en tiempo real entre sí, para ofrecer una experiencia rápida y fluida en la Capa de Presentación (front end), personalizada para cada usuario que usa las aplicaciones y el sitio. Facebook está optimizando constantemente la eficiencia de la aplicación interna, pero no obstante la tasa de crecimiento de tráfico de máquina a máquina, sigue siendo exponencial y el volumen se ha duplicado en un intervalo de menos de un año.

La capacidad de avanzar rápido y apoyar un crecimiento rápido es el núcleo de nuestra filosofía de diseño de infraestructura. Al mismo tiempo, siempre nos esforzamos por mantener nuestra infraestructura de red lo suficientemente simple como para que equipos de ingenieros pequeños y altamente eficientes puedan administrarla. Nuestro objetivo es hacer que la implementación y operación de nuestras redes sea más fácil y más rápida con el tiempo, a pesar de la escala y el crecimiento exponencial.

Los límites de los clusters

Las redes de centros de datos Facebook anteriores se construyeron usando clusters. Un clúster es una unidad grande de implementación, que involucra cientos de gabinetes de servidores con switches de la parte superior del bastidor (ToR), agregados en un conjunto de switches de clúster grandes y de gran "radix".

Hace más de tres años, se desarrolló una arquitectura confiable de capa 3 "a cuatro postes", que ofrece redundancia de conmutación de clúster 3+1 y 10 veces la capacidad de los diseños de clúster anteriores. Pero a pesar de ser tan eficaz como lo fue en las primeras versiones de centros de datos, la arquitectura centrada en clusters presentó sus limitaciones.

Primero, el tamaño de un clúster está limitado por la densidad del puerto del mismo. Para crear los clusters más grandes, fueron necesarios los dispositivos de red más grandes, y esos dispositivos solo están disponibles a partir de un conjunto limitado de proveedores.

Además, la necesidad de tantos puertos en una caja es ortogonal al deseo de proporcionar la mayor infraestructura de ancho de banda posible. Las transiciones evolutivas a la siguiente velocidad de interfaz no llegan a las mismas densidades "XXL" rápidamente.

Operacionalmente, las cajas más grandes no son las mejores tampoco. Tienen arquitecturas internas propietarias que requieren amplios conocimientos de hardware y software, específicos de la plataforma para operar y solucionar problemas. Con grandes áreas del centro de datos que dependen de unas pocas cajas, el impacto de las fallas de hardware y software también puede ser significativo.

Aún más difícil es mantener un equilibrio óptimo a largo plazo entre el tamaño del clúster, el ancho de banda del bastidor y el ancho de banda fuera del clúster. Todo el concepto de un "clúster" nació de una limitación de red; fue dictada por la necesidad de colocar una gran cantidad de recursos informáticos (racks de servidores) dentro de un área de alto rendimiento de red, soportada por la capacidad interna de los switches de clúster grandes. .

Tradicionalmente la conectividad entre clústeres está sobresuscrita, con mucho menos ancho de banda disponible entre los clusters que dentro de ellos. Esto asume y dicta que la mayoría de las comunicaciones dentro de la aplicación ocurren dentro del clúster. Sin embargo, la aplicación escala al ser distribuida y no debe estar limitada por estos límites estrechos.

Hay muchos clusters en nuestro centro de datos típico, y el tráfico de máquina a máquina crece entre ellos y no solo dentro de ellos. La asignación de más puertos para acomodar el tráfico entre clústeres elimina los tamaños de clúster. Con un crecimiento rápido y dinámico, este acto de equilibrio nunca termina, a menos que cambie las reglas.

Presentando "El Entramado" o "La Tela" (The Fabric)

Para el diseño de red de centro de datos de próxima generación, se impone un gran desafío para hacer que todo el centro de datos construya una red de alto rendimiento, en lugar de un sistema jerárquicamente sobresuscrito de clusters.

También se hizo necesario una ruta clara y fácil para una rápida implementación de la red y escalabilidad del rendimiento, sin dañar o personalizar las infraestructuras previas masivas cada vez que necesitamos construir más capacidad.

Para lograr esto, tomemos en cuenta un enfoque desagregado: en lugar de los grandes dispositivos y clusters, dividamos la red en pequeñas unidades idénticas (servidores) y creemos una conectividad uniforme de alto rendimiento, entre todos los Puntos de Entrega (Point of Delivery o "PoDs") en el centro de datos.

No hay nada particularmente especial en un "PoD": es como un microconjunto de Capa 3. El "PoD" no está definido por ninguna propiedad física dura; es simplemente una "unidad de red" estándar en el nuevo Entramado o Tejido.

Cada "PoD" está servido por un conjunto de cuatro dispositivos que llamamos conmutadores (Fabric), manteniendo las ventajas de la actual arquitectura 3+1 de cuatro publicaciones para enlaces ascendentes Conexión Punto a Punto dentro del Gabinete (Top-of-Rack o ToR) de servidores, y escalables más allá si es necesario. Cada ToR tiene actualmente 4x40G de enlaces ascendentes, que proporcionan una capacidad de ancho de banda total de 160G para un rack de servidores conectados a 10G.

Figura 1: Un PoD de muestra: nuestra nueva unidad de red

Lo que es diferente es el tamaño mucho más pequeño de las nuevas unidades en la infraestructura de Facebook: cada "PoD" tiene solo 48 bastidores de servidores y este factor de forma, siempre es el mismo para todos los "PoDs". Es un bloque de construcción eficiente que se adapta muy bien a varios planos de planta del Centro de Datos, sólo requiriendo conmutadores básicos de tamaño medio para agregar los ToR.

La menor densidad de puertos de los conmutadores "Fabric" hace que su arquitectura interna sea muy simple, modular y robusta, habiendo varias opciones fáciles de encontrar disponibles de múltiples fuentes.

Otra diferencia notable es cómo los "PoDs" están conectados para formar una red de centro de datos. Para cada puerto de enlace descendente a un ToR, estamos reservando una cantidad igual de capacidad de enlace ascendente en los conmutadores de estructura del "PoD", lo que permite escalar el rendimiento de la red hasta estadísticamente sin bloqueo.

Para implementar la conectividad en todo el edificio, fueron creados cuatro "planos" independientes de conmutadores de columna, cada uno con capacidad para hasta 48 dispositivos independientes dentro de un plano.

Cada switch en el Entramado de cada "PoD" se conecta a cada switch de columna dentro de su plano local. Juntos los "PoDs" y los planos forman una topología de red modular, capaz de acomodar cientos de miles de servidores conectados a tecnología 10G, escalando a ancho de banda de bisección multi-petabit, cubriendo los edificios del centro de datos con un rendimiento rack-a-rack sin exceso de suscripción.

Figura 2: Esquema de la topología de red de tejido del centro de datos de Facebook

Para la conectividad externa, se equipó el Entramado con una cantidad flexible de módulos de frontera, cada uno capaz de proporcionar hasta 7.68Tbps a la red troncal y a los Entramados entre edificios en los centros de datos, escalables a 100G y velocidades de puerto más altas dentro del mismo dispositivo, formando factores.

Este diseño altamente modular permite escalar rápidamente la capacidad en cualquier dimensión, dentro de un marco simple y uniforme. Cuando se requiere más capacidad de cómputo, son agregados más "PoDs" de servidores. Cuando se necesita más capacidad de red dentro de la estructura, agregamos switches centrales en todos los planos. Cuando es necesario más conectividad extra-fabric, se agregan módulos de frontera o enlaces ascendentes de escala, en los switches de frontera ya existentes.

Cómo se hace

Cuando se pensó en la construcción del Entramado por primera vez, parecía complicado e intimidante debido a la cantidad de dispositivos y enlaces. Sin embargo, lo que se logró terminó siendo más simple, elegante y eficiente desde el punto de vista operativo, de lo que eran los diseños de clúster habituales. Así es como se llegó hasta ese punto.

Tecnología de redes

Se adoptó un enfoque de "arriba hacia abajo": pensar primero en términos de la red en general y luego traducir las acciones necesarias a elementos y dispositivos de topología individuales. Fue posible construir el Entramado usando BGP4 estándar como el único protocolo de enrutamiento. Para simplificar, usamos solo las características de protocolo mínimas necesarias.

Esto nos permitió aprovechar el rendimiento y la escalabilidad de un plano de control distribuido para la convergencia, al tiempo que ofrece una gestión de propagación de enrutamiento estrecha y granular, que garantiza la compatibilidad con una amplia gama de sistemas y software existentes.

Al mismo tiempo, se desarrolló un controlador BGP centralizado que puede anular cualquier ruta de enrutamiento en el tejido, mediante decisiones de software puro. Llamamos a este enfoque híbrido flexible "control distribuido, sustitución centralizada".

La red es todo Capa 3, desde los enlaces ascendentes de ToR hasta el borde. Al igual que todas las redes en esta solución, es de doble pila y compatible de forma nativa con IPv4 e IPv6. Se diseñó el enrutamiento de una manera que se minimiza el uso de los recursos Bases de Información de Enrutamiento (RIB por sus siglas en inglés) y Bases de Información de Reenvío (FIB por sus siglas en inglés), lo que permite aprovechar el "silicio" comercial y mantener los requisitos de los switches lo más básico posible.

Para la mayoría del tráfico, el Entramado hace un uso intensivo del Enrutamiento de Mismo Costo de Ruta Múltiple (Equal-cost multi-path routing ECMP), con "hashing" basado en flujo. Hay una gran cantidad de flujos concurrentes diversos en un centro de datos de Facebook, y estadísticamente se observó una distribución de carga casi ideal en todos los enlaces de estructura.

Para evitar que las "manadas o flujos de elefantes" ocasionales se apoderen y degraden una ruta de extremo a extremo, se creó la red de varias velocidades, con enlaces 40G entre todos los switches, al tiempo que se conectaron los servidores en puertos 10G en los ToR. También se contó con medios del lado del servidor para "alejarse" y enrutar los puntos problemáticos, si estos se producen.

Escalabilidad gradual

Si bien se necesita una ruta clara y predecible para ampliar la capacidad, no necesariamente es necesario una red sin bloqueo en cada implementación desde el primer día.

Para lograr la capacidad de crecimiento sin problemas, se diseñó y planeó toda la red como un entorno de extremo a extremo, sin exceso de suscripción. Se han asignado todos los recursos físicos necesarios, para el parque completo de dispositivos Fabric y se pre-construyeron todos los componentes esqueleto de la infraestructura pasiva, que consumen mucho tiempo.

Pero el punto de partida inicial fue la sobresuscripción de Entramado 4:1 de rack a rack, con solo 12 "spines" por plano, de 48 posibles. Este nivel ha permitido lograr la misma capacidad de reenvío para todo el edificio, como lo que antes se tenía dentro del clúster.

Cuando llega la necesidad, es posible aumentar la capacidad en pasos granulares, o se puede pasar rápidamente a la sobresuscripción 2: 1. Incluso es posible pasar al estado completo sin sobresuscripción 1: 1 a la vez.

Todo lo que se tuvo que hacer es agregar más dispositivos de "columna vertebral" a cada uno de los planos, así como a todos los recursos físicos y lógicos para eso que ya están en su lugar, para que sea una operación rápida y sencilla.

Infraestructura física

A pesar de la gran escala de cientos de miles de filamentos de fibra, la infraestructura física y de cableado del Entramado es mucho menos compleja de lo que parece, a partir de los dibujos de topología de red lógica.

Trabajaron juntos varios equipos de Infraestructura de Facebook, para optimizar sus diseños de construcción de centros de datos de tercera generación para redes de fibra, acortar la duración del cableado y permitir una implementación rápida. El centro de datos de Altoona, Pennsylvania es la primera implementación de este nuevo diseño de edificios.

Figura 3: Topología física del centro de datos de Facebook, optimizado para Entramados esquemáticos

Desde el punto de vista de Main Distribution Frame (MDF) de rack de servidores o data rack, casi no hay cambios: los ToR se conectan a sus cuatro puntos de agregación independientes, al igual que con los clusters anteriores. Para los dispositivos de "espina dorsal" y de "borde", se les diseñó ubicaciones independientes especiales en el centro del edificio, que llamamos salas BDF.

Los BDF se están construyendo y pre-equipando con Entramado al inicio del proceso de activación del edificio. Las salas de datos se unen de forma idéntica a los BDF a medida que se crean, lo que reduce drásticamente el tiempo de aprovisionamiento de la red.

La fibra masiva se ejecuta desde los switches de estructura en los MDF de la sala de datos a los switches de columna en los BDF, que son en realidad troncales sencillas e idénticas, en "línea recta".

Toda la complejidad del Entramado se localiza dentro de los BDF, donde es muy administrable. Consideramos que cada plano vertebral, con sus troncales y vías correspondientes, es un dominio de falla que podemos sacar de servicio de forma segura en cualquier momento, sin impacto en la producción.

Para optimizar aún más las longitudes de fibra, también hemos posicionado nuestros dispositivos troncales en las salas MPOE directamente sobre los BDF del Entramado. Esto nos permitió usar troncales verticales cortas en una topología simple y físicamente redundante.

Además, todos los planos de lomo de Entramado en los BDF son clones idénticos por diseño, y el cableado se localiza dentro de cada plano de columna independiente. Los diseños de puertos son visuales y repetitivos, y todos los mapas de puertos son generados y validados automáticamente por nuestro software.

Todo esto hace que el aprovisionamiento del Entramado y el cableado sea un trabajo sencillo, eficiente y virtualmente libre de errores, y es un gran ejemplo de cómo los requisitos de red pueden influir positivamente en el diseño del edificio.

Al final, la cantidad de tiempo para el aprovisionamiento de la red del sitio en Altoona, desde el piso de concreto hasta los bits que fluyen a través de los interruptores, se redujo en gran medida.

Automatización

Una red de fibra grande, que tiene una topología más compleja y una mayor cantidad de dispositivos e interconexiones, definitivamente no es el tipo de entorno que puede configurarse y operarse de forma rígida y/o de forma manual. Pero la uniformidad de la topología ayuda a permitir una mejor programación y podemos usar enfoques basados ​​en software, para introducir más automatización y más modularidad en la red.

Para automatizar el Entramado, se ajustaron las ideas para que sean más "de arriba hacia abajo": lógica holística de red primero, luego dispositivos individuales y componentes en segundo lugar: abstracción de especificaciones de plataformas individuales y funcionamiento, con grandes cantidades de componentes similares a la vez.

Hemos hecho que nuestras herramientas sean capaces de manejar diferentes topologías de Entramado y factores de forma, creando una solución modular que se puede adaptar a centros de datos de diferentes tamaños.

También fue importante la desagregación del hardware y la automatización: el plano de reenvío del Entramado es en realidad independiente de las herramientas y viceversa. Esto permite reemplazar cualquier componente específico sin cambios principales en el software, haciendo que una gama más amplia de plataformas de hardware sea compatible con dichas herramientas.

El trabajo de configuración ocurre en el nivel de estructura (a diferencia del nivel del dispositivo) utilizando la cantidad mínima de configuraciones de alto nivel necesarias para definir la red, sus componentes básicos y la lógica de enrutamiento.

Todas las direcciones específicas, las políticas de enrutamiento, los mapas de puertos y los parámetros del componente independiente del proveedor, se derivan de estas configuraciones de alto nivel, se procesan en los formularios específicos de la plataforma aplicables y se envían a las cajas. Para cada plataforma individual, solo se requiere definir algunas acciones simples y plantillas de sintaxis básicas.

Para agilizar el aprovisionamiento y los cambios, se establecieron mecanismos simples y robustos para desplegar automáticamente las configuraciones, en los dispositivos y descubrir los roles de los nuevos dispositivos en el Entramado. Esto permite desplegar de forma eficiente grandes conjuntos de componentes del Entramado en paralelo, en un modo prácticamente desatendido.

La escala del Entramado también está cambiando fundamentalmente la manera en que son supervisados y solucionados los problemas. Hay muchos componentes y enlaces, pero la mayoría de ellos se comportan igual.

Se recopilaron una gran cantidad de estadísticas de la red, pero para la solución de problemas, la preocupación principal. se concentró más en las líneas de base y los valores atípicos, confiando más en la auditoría activa de problemas, alertas de prioridad y auto reparación que en lugar de mirar gráficos.

Para cada tipo de componente, se definieron reglas automáticas y acciones de botón para retirarlo, repararlo o volverlo a poner en producción. Los componentes individuales en un Entramado son prácticamente irrelevantes, y las cosas que no funcionan bien no requieren una reparación inmediata. El comportamiento general es mucho más importante que una caja o enlace individual, que es un cambio de paradigma.

Esto es lo que esto significa en la práctica:

  • Cuando un problema detectado automáticamente es básico y conocido, se realiza una reparación automática y/o se dispara una alerta.
  • Cuando sucede algo desconocido, se dispara una alerta para solucionarlo y luego se hace que los "robots" puedan arreglarlo la próxima vez que ocurra.
  • Cuando se detecta una falla, las máquinas se desplazan.
  • Cuando se requiere aislar un problema, se comparan comportamientos y correlacionan eventos.
  • Cuando se necesita una evaluación rápida de alto nivel, se usan mapas de calor.
  • Cuando se requiere profundizar o revisar la tendencia, todos los datos están a disposición.
Transición transparente

Como se mencionó anteriormente, el concepto de "clúster" nació originalmente de una limitación de red. Pero desde entonces ha evolucionado en un significado mucho más amplio como unidad de aprovisionamiento y capacidad.

Muchos otros sistemas y flujos de trabajo se han diseñado en torno a este concepto, en múltiples disciplinas técnicas diferentes. Desde el principio, hemos observado que el mundo entero no se podía renovar de la noche a la mañana. Es necesario asegurarnos de que todos los sistemas y operaciones continúe funcionando sin problemas, a pesar de tener una red diferente debajo.

Para hacer que la transición al Entramado sea transparente y permitir la compatibilidad con versiones anteriores, es importante conservar el concepto lógico del "clúster", pero ahora lo implementamos como una colección de "PoDs".

Desde el punto de vista de la conexión en red, un clúster se ha convertido simplemente en un "área con nombre" virtual en el Entramado, mientras que físicamente los "PoDs" que forman un clúster pueden ubicarse en cualquier parte del piso del centro de datos.

Pero para todos los demás fines, las propiedades de denominación y direccionamiento en dichos "clústeres virtuales", son totalmente compatibles con el parque de clústeres físicos en ejecución, haciéndolos lucir y sentirse exactamente iguales para equipos que no sean de red y sistemas de automatización de administración de servidores.

El Entramado introdujo una nueva flexibilidad para localizar recursos informáticos de "clústeres virtuales", en diferentes áreas del centro de datos dondequiera que haya "PoDs" libres disponibles.

Ya no es necesario mantener los clústeres confinados en espacios físicos contiguos específicos, y los nuevos tamaños de clúster pueden ser tan grandes como todo el edificio o tan pequeños como un "PoD". Pero no forzamos una necesidad inmediata de grandes cambios operacionales; solo permitimos aprovechar estos nuevos beneficios según sea necesario.

Como resultado, pudimos desplegar una arquitectura de red completamente nueva en producción sin interrupciones. Hubo una diferencia notable: el Entramado en realidad se aprovisionó más rápido y más fácil que la cantidad equivalente de clústeres.

Conclusión

Al tratar con algunas de las redes de mayor escala del mundo, el equipo de ingeniería de red de Facebook ha aprendido a adoptar el principio de "mantenerlo simple".

Por naturaleza, los sistemas con los que trabajamos pueden ser grandes y complejos, pero nos esforzamos por mantener sus componentes lo más básicos y robustos posible, reduciendo la complejidad operativa a través del diseño y la automatización.

Nuestro nuevo Entramado no fue una excepción a este enfoque. A pesar de la topología de gran escala y aspecto complejo, es un sistema muy modular, con muchos elementos repetitivos. Es fácil de automatizar e implementar, y es más fácil de operar que una colección más pequeña de clústeres personalizados.

Las redes de fibra o "Fabrics" ofrecen una multitud de rutas iguales entre todos los puntos de la red, lo que hace que los circuitos y dispositivos individuales no sean importantes, una red así es capaz de sobrevivir múltiples fallas simultáneas de componentes sin ningún impacto.

Dispositivos más pequeños y simples significan una solución de problemas más fácil. La automatización que el tejido requirió para crear y mejorar, hizo que su aprovisionamiento fuera más rápido que nuestras redes de centros de datos anteriores, a pesar del aumento en el número de cajas y enlaces.

Nuestro diseño modular y el tamaño de los componentes nos permiten utilizar las mismas plataformas de hardware de conmutadores de tamaño medio, para todos los roles de la red (switches de estructura, switches de columna y de frontera), lo que los convierte en simples bloques de construcción como "Lego", que podemos adquirir desde múltiples fuentes.

Con menores densidades de puertos de dispositivos y necesidades mínimas de Bases de Información de Reenvío (FIB por sus siglas en inglés) y plano de control, lo que comenzó como nuestra primera red 40G actual se podrá actualizar rápidamente a 100G y más en un futuro no muy lejano, mientras aprovecha la misma infraestructura y la misma planta de fibra.

Con la primera iteración del Entramado en el centro de datos de Altoona, ya se ha logrado un aumento de 10 veces en la capacidad de la red intraconstrucción, en comparación con el diseño de clúster equivalente, y podemos crecer fácilmente hasta más de 50 veces dentro de las mismas velocidades de puerto.

Consulte este video para obtener una descripción general de nuestro tejido de centro de datos.



No hay comentarios:

Publicar un comentario

Todos los derechos reservados.
Copyright © 2025.