En Facebook, ponemos énfasis en la construcción de nuestros centros de datos con hardware completamente abierto y desagregado diseñado por nuestros ingenieros y de código abierto a través del Open Compute Project (OCP). Al desagregar nuestra pila, podemos reemplazar el hardware o el software tan pronto como haya una mejor tecnología disponible. Este enfoque ha permitido obtener impresionantes ganancias de rendimiento en las capas de computación, almacenamiento y redes.
A medida que las demandas de nuestros centros de datos siguen creciendo, buscamos continuamente formas de manejar los datos de manera más eficiente y a velocidades cada vez más rápidas. Nuestra estrategia es construir centros de datos de 100 G, y Wedge 100, nuestro switch de red de rack superior de segunda generación, es uno de los componentes clave que nos ayuda a lograr ese objetivo.
Hoy, nos complace anunciar que la especificación Wedge 100 ha sido aceptada en OCP. La industria ya ha creado un ecosistema de software sólido a su alrededor, y esperamos que esta incorporación a la comunidad acelere el ritmo de la innovación y permita a otros llevar 100 G a sus centros de datos también.
En esta entrada de blog, describiremos el ecosistema actual de hardware y software, y compartiremos algunas de nuestras experiencias con Wedge 100 en producción.En Facebook Facebook, utilizamos Wedge 100 en nuestros entornos de producción y seguimos implementándolo a escala en nuestros centros de datos. Es un componente de nuestra estrategia de red de centro de datos de 100G, al tiempo que nos permite mantener la compatibilidad con versiones anteriores con dispositivos 40G existentes. En el lado del software, seguimos utilizando FBOSS y OpenBMC, nuestras propias implementaciones de gestión de tableros base y pila de redes, lo que nos da la flexibilidad para iterar rápidamente e introducir nuevas características e innovaciones en nuestra red.
Crear Wedge 100 fue una tarea compleja, pero pudimos iterar en el hardware y el software con confianza debido a lo que aprendimos al crear e implementar Wedge 40. Reutilizamos muchos de los mismos componentes de hardware e hicimos cambios clave para abordar los puntos débiles que sentimos con Wedge 40. En Wedge 100, también ejecutamos el mismo software FBOSS que Wedge 40, pero lo ampliamos para admitir la nueva plataforma con chips ASIC de 100 G y ópticas.
Actualizaciones de hardware
Construimos Wedge 100 con un módulo COM-Express Tipo 6 en el factor de forma compacto (95 mm x 95 mm) como microservidor; esto es un buen augurio para plataformas de interruptores de 100 G y velocidades más altas. Wedge 100 también admite el factor de forma del módulo COM-Express (95 mm x 125 mm), lo que permite un diseño flexible en caso de que se requieran CPU más avanzadas para aplicaciones especiales.
La capacidad de servicio es un enfoque clave para nosotros en Facebook. Tenemos miles de switches de cuña implementados y solo unos pocos técnicos de centros de datos, lo que significa que necesitamos poder reparar y reparar un switch de forma rápida y sin esfuerzo, sin herramientas. Hicimos mejoras importantes en la capacidad de servicio del interruptor con Cuña 100. La cubierta superior ahora se puede quitar sin herramientas, lo que proporciona un fácil acceso al funcionamiento interno de los conmutadores para nuestros técnicos de centros de datos. Las bandejas de ventilador enchufables en caliente ahora se pueden quitar presionando un clip en lugar de quitando un tornillo de mariposa. Además, los técnicos del centro de datos pueden ver fácilmente el estado de la bandeja del ventilador a través de un LED de estado junto a cada bandeja del ventilador. La combinación de estos permite una depuración muy rápida y un reemplazo en el campo si es necesario.
Para los enlaces ascendentes de Wedge 100 en los centros de datos de Facebook, utilizamos ópticas que vienen con un límite de temperatura en minúsculas de 55 C, en lugar del rango de temperatura comercial estándar de 70 C. Pusimos mucho esfuerzo en el diseño térmico del sistema, incluida la adición de una bandeja de ventilador más, deflectores de aire para separar las rutas de aire entre la fuente de alimentación y la placa de conmutación principal, y el diseño de apertura del panel frontal para maximizar el flujo de aire.
El chasis Wedge 100 está diseñado para un rack de 19″ estándar de la industria, por lo que puede ser adoptado fácilmente por la comunidad de redes. Sin embargo, nuestros centros de datos utilizan Racks Abiertos, y también nos gustaría alimentar a Wedge 100 con las Unidades de Fuente de alimentación V2 de Rack Abierto con clasificación de Titanio altamente eficientes a través de la barra colectora de 12 V en la parte trasera del rack. Así que diseñamos una bandeja de adaptador de rack abierta de 21″ que ayuda a montar Wedge 100 en dicho rack. También diseñamos un módulo de paso de fuente de alimentación que conecta la barra colectora de 12 V a la entrada de 12 V de la placa de conmutación principal Wedge 100. Está en el mismo factor de forma que la fuente de alimentación de CA/CC estándar y contiene un controlador de intercambio en caliente de 12 V.
Puede encontrar las especificaciones de diseño para Wedge 100 aquí.
Actualizaciones de software
Nuestra pila de software para Wedge100 es casi idéntica a la pila para Wedge 40. Ejecutamos los mismos demonios de conmutación y enrutamiento de FBOSS, y usamos el mismo conjunto de herramientas para administrar los conmutadores en producción. Siempre hay trabajo que hacer para admitir una nueva plataforma, pero uno de los principios rectores de FBOSS es construir el conjunto de características mínimas que necesitamos para nuestro entorno. Esto nos permite mantener nuestro código ágil y adaptarlo fácilmente a nuevos entornos y plataformas, en lugar de comenzar desde cero o administrar bases de código paralelas. Obtener el conjunto de protocolos que soportamos (NDP, DHCP, ARP, LLDP, ECMP, ICMP) y las características que necesitamos para operar (arranque cálido), trabajar en Wedge100 fue más bien un ejercicio iterativo, ya que teníamos experiencia ejecutando Wedge 40 en producción. Esto nos permitió poner en marcha el proyecto Wedge100 y usarlo como una oportunidad para endurecer nuestra pila de software FBOSS.
Debido a que habíamos estado administrando Wedge 40 en producción durante casi dos años y teníamos la infraestructura instalada, comenzamos a probar Wedge100 en un entorno de producción casi de inmediato. Los interruptores en funcionamiento que sirven al tráfico de producción nos dan la mejor señal para los cambios que necesitamos hacer. Como resultado, descubrimos que nuestro mayor desafío estaba en el lado operativo, específicamente la configuración, el aprovisionamiento y la administración de Wedge 40 y Wedge 100 en paralelo en nuestra red. En Facebook, el equipo de FBOSS escribe tanto el software que realiza el reenvío de paquetes como el conjunto de herramientas que utilizamos para administrar los switches de forma operativa. Debido a esto, tuvimos un ciclo de retroalimentación positiva y, al final, las lecciones aprendidas en la producción informaron las decisiones de software, e incluso de hardware. De esta manera, pudimos centrarnos en las características que realmente necesitábamos y obtener switches Wedge 100 que reenvían el tráfico de producción muy rápidamente.
Otro desafío al que nos enfrentamos al construir Wedge 100 fue hacer que nuestra plataforma de software fuera más flexible. Cuando implementamos Wedge 40, nos beneficiamos del hecho de que el conjunto de configuraciones que necesitábamos soportar estaban bastante limitadas, y podíamos soportarlas fácilmente. Con Wedge 100, este no era el caso. Queríamos lanzar un Wedge 100 en cualquier lugar de nuestra red que tuviera un Wedge 40. Las velocidades de enlace descendente y los tipos de cable pueden variar. Las velocidades de enlace ascendente pueden variar entre clústeres antiguos y nuevos. La configuración correcta es especialmente importante para los enlaces de 100G, ya que tienen un margen de potencia óptica mucho menor y pueden presentar más desafíos para establecer enlaces y optimizar el rendimiento, lo que requiere una configuración mucho más cuidadosa que la de los enlaces de 40G. La compatibilidad con estos nuevos entornos requería cambios desde la capa física hasta nuestra pila de monitorización. Ampliamos nuestro soporte de la especificación SFF para poder operar ópticas CWDM4 que funcionan a varias velocidades cambiando dinámicamente la clase de potencia, CDR, selección de velocidad, FEC, énfasis previo y otros para admitir estos diferentes ajustes. También hemos rediseñado muchos de nuestros flujos de trabajo de configuración y aprovisionamiento para poder admitir todas estas posibilidades.
Por último, tener nuestra propia pila de software hace que la corrección de errores o la adición de funcionalidad a estos dispositivos sea mucho más rápida para Facebook. Por ejemplo, observamos que las ópticas de 100 G alcanzan temperaturas operativas más altas, por lo que cambiamos la lógica de control del ventilador en nuestro controlador de administración de placas, OpenBMC, para lograr un mejor perfil térmico cuando esos módulos están presentes. Otras veces, nos encontramos con pánico del núcleo en el microservidor. Dado que contamos con un equipo de ingeniería que gestiona nuestras propias versiones del núcleo, podríamos aprovechar su experiencia para depurar los problemas. Poseer toda la pila también nos permite hacer otras cosas interesantes, como simplificar los procedimientos de mantenimiento del dispositivo modificando el significado de los LED del panel frontal en estos switches, en función de los comentarios que recibimos del equipo de operaciones del centro de datos.
El código FBOSS es de código abierto y está disponible en GitHub. El año pasado, abrimos nuestro software de código abierto y desde entonces hemos pasado a un ciclo de publicación continuo, empujando las diferencias internas automáticamente a GitHub. Si desea obtener más información sobre en qué estamos trabajando, consulte el código.
Ecosistema de hardware y software
El switch Wedge 100 ya está disponible como producto comercial de Edgecore Networks y sus socios de canal de todo el mundo. El Wedge 100-32X de Edgecore es totalmente compatible con la especificación Wedge 100 OCP y está fabricado por la empresa matriz de Edgecore, Accton Technology, que también fabrica el Wedge 100 para nuestra implementación de red. El switch de hardware Wedge 100 – 32X incluye una garantía de tres años y se entrega con diagnóstico, firmware OpenBMC y el cargador universal NOS de Entorno de instalación de red abierta.
También hemos visto un gran interés de los proveedores de transceptores por calificar sus módulos en la plataforma. Para satisfacer esta demanda, nos asociamos con el Laboratorio de Interoperabilidad de la Universidad de New Hampshire (UNH-IOL) para que cualquier módulo pueda ser probado profesionalmente en sus instalaciones. El UNH-IOL sigue siendo líder en la prestación de servicios de conformidad de normas y pruebas neutrales y de amplia base para la industria de las redes.
En el lado del software, varias empresas están construyendo sus soluciones sobre la plataforma Wedge 100. En la capa del sistema operativo, tenemos Redes de Conmutación Grandes y Canónicas; y en las partes superiores de la pila, tenemos SnapRoute, FRINX y Apstra.
- Big Switch Networks continúa impulsando Open Network Linux (ONL), el primer sistema operativo de red de código abierto que admite el Wedge 40 original y ahora Wedge 100; FBOSS de Facebook también está disponible en este momento en la parte superior de ONL en Wedge 40 y pronto en Wedge 100. ONL es parte del proyecto Open Compute y admite más de 30 switches de red abiertos OCP y no OCP diferentes. También utilizan ONL internamente como base de sus productos comerciales Big Monitoring Fabric y Big Cloud Fabric.
- Canonical traerá Ubuntu Core, su nuevo sistema operativo para dispositivos en la nube y IoT, a la plataforma Wedge 100. Ubuntu Core puede ejecutar una serie de pilas de red diferentes como FBOSS o SnapRoute como broches de presión, y habilitar el aprovisionamiento básico para software grande como OpenStack, Hadoop y Kubernetes en la capa de cómputo del centro de datos desde el conmutador de la parte superior del bastidor.
- SnapRoute anunció la disponibilidad del software FlexSwitch en la parte superior de la plataforma Wedge 100. FlexSwitch es una pila de red L2/L3 de código abierto que se puede ejecutar en múltiples plataformas de hardware. Su objetivo es cambiar la economía de la operación de red al proporcionar un plano de control totalmente personalizable y programable y ofrecer un marco integral para realizar la automatización del ciclo de vida y el análisis de red. Está construido alrededor de los conceptos de modularidad completa, promoviendo la idea de ejecutar solo el conjunto de funcionalidades que la red requiere, en oposición al enfoque tradicional de talla única.
- FRINX se centra en integrar OpenDaylight, una plataforma SDN de código abierto, en Wedge 100. Están trabajando para crear una solución compatible lista para usar para implementaciones de centros de datos, basada completamente en componentes de código abierto.
- Apstra funciona en una capa superior con el Sistema Operativo Apstra (AOS), un sistema operativo distribuido independiente del proveedor que puede traducir la intención del usuario en una infraestructura validada continuamente. Están trabajando en una solución que puede administrar pilas basadas en ONL y Snaproute, así como otros sistemas operativos de red, disponibles a principios de 2017.
Estamos encantados de tener un conjunto tan completo y diverso de tecnologías en el espacio de hardware de red abierta, y continuaremos trabajando con otras empresas en Wedge 100. A principios del próximo año, planeamos mostrar estas soluciones de software y hardware de redes de la comunidad de OCP, incluidas las creadas en Wedge 100, y continuaremos compartiendo nuestras experiencias con redes desglosadas. ¡Estén atentos!
Gracias a todos los equipos y personas que contribuyeron a este proyecto.