no Facebook, colocamos uma ênfase na construção de nossos centros de dados com hardware totalmente aberto e desagregado projetado por nossos engenheiros e de fonte aberta através do projeto Open Compute (OCP). Ao desagregar nossa pilha, podemos substituir hardware ou software assim que uma melhor tecnologia esteja disponível. Esta abordagem tem permitido ganhos de desempenho impressionantes em todas as camadas de computação, armazenamento e rede.
à medida que as exigências em nossos centros de dados continuam crescendo, estamos continuamente buscando maneiras de lidar com os dados de forma mais eficiente e a velocidades cada vez mais rápidas. Nossa estratégia é construir centros de dados 100G, e Wedge 100, nossa segunda geração de switch de rede top-of-rack, é um dos componentes-chave que nos ajuda a alcançar esse objetivo.Hoje, estamos entusiasmados em anunciar que a especificação wedge 100 foi aceite na OCP. A indústria já construiu um ecossistema de software robusto em torno dele, e esperamos que esta adição à comunidade irá acelerar o ritmo de inovação e permitir que outros tragam 100G para seus centros de dados também.
neste post, vamos delinear o ecossistema de hardware e software atual, e vamos compartilhar algumas das nossas experiências usando Wedge 100 em produção.
Wedge 100 no Facebook
no Facebook, usamos Wedge 100 em nossos ambientes de produção, e continuamos a implantá-lo em escala em nossos centros de dados. É um componente de nossa estratégia de rede 100G data center, ao mesmo tempo que nos permite manter a compatibilidade com dispositivos 40G existentes. Do lado do software, continuamos a usar o FBOSS e o OpenBMC, a nossa própria pilha de rede e implementações de gerenciamento de baseboard, o que nos dá a flexibilidade para iterar rapidamente e introduzir novas funcionalidades e inovações em nossa rede.
criar o Wedge 100 foi um esforço complexo, mas nós fomos capazes de iterar no hardware e software com confiança por causa de nossos aprendizes de criar e implantar o Wedge 40. Reutilizamos muitos dos mesmos componentes de hardware e fizemos mudanças fundamentais para abordar os pontos de dor que sentimos com o Wedge 40. No Wedge 100, também executamos o mesmo software FBOSS que o Wedge 40, mas expandimo-lo para apoiar a nova plataforma com 100g de chips ASIC e óptica.
Hardware updates
we built Wedge 100 with a COM-Express Type 6 module in the compact form factor (95mm x 95mm) as the microserver; this bodes well for 100G and higher speed switch platforms. Wedge 100 também suporta com-Express module form factor (95mm x 125mm), que permite um design flexível no caso de CPUs mais avançadas são necessárias para aplicações especiais.
a utilização é um foco chave para nós no Facebook. Temos milhares de interruptores de cunha implantados e apenas alguns técnicos do centro de dados, o que significa que precisamos ser capazes de servir e reparar um interruptor rapidamente e sem esforço, sem quaisquer ferramentas. Fizemos grandes melhorias na utilização do interruptor com o Wedge 100. A capa de topo pode agora ser removida sem ferramentas, proporcionando fácil acesso a switch internals para os nossos técnicos de data center. Os tabuleiros dos ventiladores podem agora ser removidos pressionando um clipe versus removendo um parafuso do polegar. Além disso, os técnicos do data center podem facilmente ver o estado da bandeja do ventilador através de um estado conduzido ao lado de cada bandeja do ventilador. A combinação destes permite uma depuração muito rápida e na substituição de campo, se necessário.
para os links de Wedge 100 nos centros de dados do Facebook, usamos óticas que vêm com um limite de temperatura de caso mais baixo de 55 C, em oposição à faixa de temperatura comercial padrão de 70 C. Nós colocamos um monte de esforço no design térmico do sistema, incluindo a adição de mais um tabuleiro de ventilador, baffles de ar para separar os caminhos de ar entre a PSU e a placa de comutação principal, e o projeto de abertura do painel frontal para maximizar o fluxo de ar.
o chassis Wedge 100 foi projetado para um rack padrão da indústria 19″, para que possa ser facilmente adotado pela comunidade de rede. No entanto, os nossos centros de dados usam porta-estacas abertas, e nós também gostaríamos de energizar Wedge 100 usando a altamente eficiente, Rack aberto de titânio unidades de alimentação V2 através da barra de ônibus 12V na parte traseira do rack. Então nós projetamos uma bandeja de adaptador Rack 21″ aberta que ajuda a montar o Wedge 100 em tal rack. Também projetamos um módulo de passagem PSU através do qual conecta a barra de ônibus 12V à entrada de 12V da placa principal Wedge 100. Ele está no mesmo fator de forma que o padrão AC/DC PSU, e contém um controlador de permuta quente 12V.
pode encontrar aqui as especificações de design para o wedge 100.
actualizações de Software
a nossa pilha de software para o Wedge100 é quase idêntica à pilha para o wedge 40. Nós executamos o mesmo fboss comutação e roteamento de daemons, e nós usamos o mesmo conjunto de ferramentas para gerenciar os switches na produção. Há sempre trabalho que precisa ser feito para apoiar uma nova plataforma, mas um dos princípios orientadores para a FBOSS é construir o conjunto de recursos mínimos que precisamos para o nosso ambiente. Isso nos permite manter o nosso código lean e adaptá-lo facilmente a novos ambientes e plataformas, em vez de começar do zero ou gerenciar bases de código paralelas. Obter o conjunto de protocolos que apoiamos — NDP, DHCP, ARP, LLDP, ECMP, ICMP — e os recursos que precisamos para operar — boot quente — trabalhar em Wedge100 foi mais de um exercício iterativo, uma vez que tínhamos experiência executando Wedge 40 em produção. Isto permitiu-nos atingir o terreno em execução no projeto Wedge100 e usá-lo como uma oportunidade para endurecer a nossa pilha de software FBOSS.Porque nós estávamos gerindo Wedge 40s em produção por quase dois anos e tinha a infra-estrutura em vigor, começamos a testar Wedge100 em um ambiente de produção quase imediatamente. Comutadores que servem o tráfego de produção nos dá o melhor sinal para as mudanças que precisamos fazer. Ao que parece, descobrimos que nosso maior desafio estava no lado operacional-especificamente a configuração, provisionamento e gerenciamento de Wedge 40 e Wedge 100 em paralelo em nossa rede. No Facebook, a equipe FBOSS escreve tanto o software que realiza encaminhamento de pacotes quanto o conjunto de ferramentas que usamos para gerenciar os switches operacionalmente. Por causa disso, tivemos um ciclo de feedback positivo e, no final, lições aprendidas na produção de software informado — e até mesmo hardware — decisões. Desta forma, conseguimos concentrar-nos nos recursos de que realmente precisávamos e obter Wedge 100 interruptores reencaminhando o tráfego de produção muito rapidamente.Outro desafio que enfrentámos ao construir o Wedge 100 foi tornar a nossa plataforma de software mais flexível. Quando implantamos o Wedge 40, nos beneficiamos do fato de que o conjunto de configurações que precisávamos apoiar eram muito limitados, e poderíamos facilmente apoiá-los. Com o Wedge 100, não foi o caso. Queríamos lançar uma cunha de 100 em qualquer local da nossa rede que tivesse uma cunha de 40. As velocidades de Downlink e os tipos de cabo podem variar. As velocidades de Uplink podem variar entre clusters antigos e novos. A configuração correta é especialmente importante para links de 100G, pois eles têm uma margem de energia ótica muito menor e podem apresentar mais desafios no estabelecimento de link e otimização do desempenho, exigindo uma configuração muito mais cuidadosa do que 40G fez. Apoiar estes novos ambientes requer mudanças desde a camada física até a nossa pilha de monitoramento. Expandimos o nosso apoio ao SFF spec para ser capaz de operar a óptica CWDM4 a várias velocidades, alterando a classe de potência, CDR, rate-select, FEC, pre-emphasis e outros dinamicamente para suportar estas diferentes configurações. Também reformulamos muitas de nossas configurações e fluxos de trabalho de provisionamento para poder suportar todas essas possibilidades.Por último, possuir a nossa própria pilha de software torna a correcção de erros ou a adição de funcionalidade a estes dispositivos muito mais rápida para o Facebook. Por exemplo, observamos que a ótica de 100G atinge temperaturas operacionais mais altas, então mudamos a lógica de controle de ventilador em nosso controlador de administração, OpenBMC, para alcançar um melhor perfil térmico quando esses módulos estão presentes. Outras vezes, nós encontramos panics do kernel no microserver. Uma vez que temos uma equipe de engenharia que gerencia nossos próprios lançamentos de kernel, nós poderíamos alavancar sua experiência para depurar os problemas. Possuir a pilha inteira também nos permite fazer outras coisas interessantes, como simplificar os procedimentos de manutenção do dispositivo, modificando o significado dos LEDs do painel frontal nesses switches, com base no feedback que recebemos da equipe de operações do centro de dados.
o código FBOSS é todo de fonte aberta e disponível no GitHub. Nós abrimos nosso software no ano passado e desde então nos movemos para um ciclo de lançamento contínuo, empurrando os diffs internos automaticamente para o GitHub. Se quiser saber mais sobre o que estamos a trabalhar, por favor verifique o código.
ecossistema de Hardware e software
o interruptor Wedge 100 está agora disponível como um produto comercial das redes Edgecore e seus parceiros de canal em todo o mundo. A Wedge 100-32X da Edgecore é totalmente compatível com a especificação wedge 100 OCP e é fabricada pela empresa-mãe da Edgecore, Accton Technology, que também fabrica a Wedge 100 para a nossa implantação de rede. O Wedge 100-32X hardware switch inclui uma garantia de três anos e é enviado com diagnósticos, firmware OpenBMC, e o ambiente de instalação de rede aberta ambiente universal nos loader.
também vimos forte interesse dos fornecedores de transcetores para qualificar seus módulos na plataforma. Para atender a essa demanda, estamos em parceria com o Laboratório de interoperabilidade da Universidade de New Hampshire (UNH-IOL) para que todos os módulos possam ser testados profissionalmente em suas instalações. O UNH-IOL continua a ser um líder na prestação de serviços neutros e de ampla base de testes e de Conformidade de normas para a indústria de redes.No lado do software, várias empresas estão construindo suas soluções no topo da plataforma Wedge 100. Na camada do sistema operacional, temos grandes redes de Switch e Canônico; e nas partes superiores da pilha, temos SnapRoute, FRINX e Apstra.
- Big Switch Networks continua a conduzir Open Network Linux (ONL), o primeiro sistema operacional de rede aberta a suportar o original Wedge 40, e agora Wedge 100; O fboss do Facebook também está disponível agora no topo da ONL no Wedge 40 e logo Wedge 100. ONL é parte do projeto Open Compute e suporta 30 + diferentes opções OCP e não-OCP Open networking switches. Eles também usam o ONL internamente como base de seus produtos comerciais de Grande Tecido de monitoramento e tecido de Grande Nuvem.
- Canonical irá trazer o núcleo Ubuntu, seu novo sistema operacional para dispositivos de nuvem e IoT, para a plataforma Wedge 100. Ubuntu Core pode executar uma série de diferentes pilhas de rede, como FBOSS ou SnapRoute como snaps, e permitir o provisionamento de Metais nua para grandes softwares como OpenStack, Hadoop e Kubernetes na camada computada do data center a partir do interruptor top-of-rack.
- o SnapRoute anunciou a disponibilidade de software FlexSwitch no topo da plataforma Wedge 100. FlexSwitch é uma pilha de rede L2/L3 de código aberto que pode ser executada através de várias plataformas de hardware. Ele tem como objetivo mudar a economia da operação de rede, fornecendo um plano de controle totalmente personalizável e programável e oferecendo um quadro abrangente para fazer automação de ciclo de vida e análise de rede. Ele é construído em torno dos conceitos de plena modularidade, promovendo a ideia de executar apenas o conjunto de funcionalidade que a rede Requer, em oposição à abordagem tradicional de tamanho único.
- FRINX está focado na integração do OpenDaylight, uma plataforma SDN de código aberto, no Wedge 100. Eles estão trabalhando para a criação de uma solução Out-of-the-box suportada para implementações de data center, baseada inteiramente em componentes de código aberto.Apstra está operando em uma camada superior com o Sistema Operacional Apstra (AOS), Um sistema operacional distribuído pelo vendedor-agnóstico que pode traduzir a intenção do usuário em uma infra-estrutura continuamente validada. Eles estão trabalhando em uma solução que pode gerenciar pilhas com base em ONL e Snaproute, bem como outros sistemas operacionais de rede, disponíveis no início de 2017.Estamos entusiasmados por ter um conjunto tão completo e diversificado de tecnologias no espaço de hardware de rede aberta, e continuaremos a trabalhar com outras empresas na Wedge 100. No início do próximo ano, planejamos mostrar essas soluções de software de rede e hardware da comunidade OCP, incluindo aqueles construídos na Wedge 100, e continuaremos a compartilhar nossas experiências com redes desagregadas. Fiquem atentos!Obrigado a todas as equipas e pessoas que contribuíram para este projecto.