Prática da solução NetEase Shufan Bare Metal baseada em OpenStack Ironic e DPU

fundo

Atualmente, todas as tecnologias de VM que afirmam ter baixa perda de desempenho, na verdade, têm uma perda de 5 a 15% ou até mais. Como alternativa, conforme previsto no relatório de 2015 do Gartner " Tendências de mercado: a ascensão da nuvem e contêineres Bare-Metal ", após anos de boom de virtualização, os produtos Bare Metal quase se tornaram padrão baseado em nuvem na plataforma. Atualmente, as principais plataformas de nuvem, como AWS e Azure em países estrangeiros, e Alibaba, Tencent e Huawei na China, têm negócios de bare metal.

Entre todos os serviços bare metal, AWS e Alibaba são semelhantes, pois ambos usam hardware proprietário e suportam hypervisors. O GuestOS ainda é executado no hypervisor, mas o GuestOS pode acessar diretamente o hardware, como armazenamento e rede; Tencent e Huawei não. Hypervisor- sistemas BMS baseados, como o Tencent Bare Metal 2.0, atualizam e evoluem os recursos principais da nuvem sob o sistema de arquitetura NIC inteligente.

Dentro da NetEase, a maior parte dos negócios foi executada na nuvem, que é suportada por hosts e contêineres de nuvem. No entanto, ainda existem alguns negócios que não são adequados para serem executados diretamente na camada de virtualização, como clusters de computação de alto desempenho, hosts de banco de dados com requisitos de desempenho mais altos e assim por diante. Por um lado, esperamos que os servidores físicos possam alcançar o mesmo gerenciamento de ciclo de vida eficiente que os hosts de nuvem, e também esperamos que os servidores possam fornecer maior desempenho de rede e computação. Portanto, a pesquisa e o desenvolvimento de serviços bare metal também se tornaram uma demanda rígida no NetEase Shufan. Queremos que nossas ofertas de serviços bare metal:

Primeiro, é totalmente compatível com plataformas de hospedagem em nuvem e redes VPC existentes.

Segundo, desempenho extremo de rede e computação.

Terceiro, operação automatizada e gerenciamento de manutenção, entrega em nível de minuto.

seleção de plano

plano de controle

Como um componente de software de serviço público de infraestrutura em nuvem maduro, praticamente comprovado e amplamente implantado no setor, o OpenStack fornece uma plataforma de gerenciamento de computação em nuvem com implementação simples, expansão em larga escala e padrão unificado para máquinas virtuais, bare metal e contêineres. Ironic é um subprojeto do OpenStack que fornece gerenciamento de servidor bare metal. Ele pode ser implantado independentemente para a implantação e gerenciamento de servidores bare metal; também pode ser usado como parte do OpenStack e integrado a serviços como OpenStack Nova, Keystone, Glance, etc., para que instâncias de servidores bare metal possam acessar perfeitamente plataformas de hospedagem em nuvem , que fornecem a mesma experiência do usuário que os serviços de hospedagem em nuvem. O status de Ironic aqui é equivalente ao papel que libvirt desempenha em ambientes de virtualização tradicionais. Correspondente ao libvirt, o Ironic combina drivers de máquinas físicas de vários fabricantes para fornecer um conjunto de APIs de hipervisor para operar máquinas físicas.

Com base nas características do negócio existente e na solução de gerenciamento do plano de controle do ambiente de nuvem privada atual, optamos por conduzir o desenvolvimento secundário com base em código aberto e usar a integração de serviços relacionados ao Ironic e OpenStack como o plano de controle do o produto de serviço bare metal.

plano de dados

Há muitas opções para o plano de dados. Por exemplo, nossa solução de servidor bare metal de primeira geração escolheu a forma de "servidor de máquina física + placa de rede comum", e as máquinas virtuais do lado do bare metal e do lado da VPC são conectadas por meio de uma linha dedicada . A vantagem desta solução é que ela fornece o desempenho de uma máquina física e a escalabilidade e flexibilidade de uma máquina virtual, a desvantagem é que a operação, manutenção e implantação são complicadas e o custo é muito alto. Proporciona maior desempenho de rede.

A NIC inteligente que tem sido popular na indústria nos últimos dois anos é outra solução. À medida que a largura de banda de processamento de IO, como rede e armazenamento, aumenta, a carga de trabalho da infraestrutura subjacente ocupa cada vez mais recursos de CPU, deixando cada vez menos recursos de CPU para aplicativos do usuário, enquanto a DPU vai além das placas de rede inteligentes. funções como , rede, etc., todas as tarefas na camada de infraestrutura podem ser transferidas da CPU Host para a DPU ou IPU, e a CPU pode ser totalmente entregue às aplicações de negócios, conseguindo a separação de negócios e gerenciamento.

Atualmente, os fabricantes de placas de rede inteligentes disponíveis no mercado são principalmente NVIDIA (NVIDIA), Intel (Intel) e Broadcom (Broadcom). Entre eles, o BlueField-1 é baseado no design ConnectX5, suporta aceleração ASAP2 e pode descarregar cargas de trabalho relacionadas à rede para o eSwitch. O BlueField-2 é baseado no CX6-DX e possui funções e desempenho aprimorados com base na placa de rede de primeira geração. Ao mesmo tempo, fornece uma interface de gerenciamento fora de banda de 1 Gbps, que melhora a operação e a manutenção função de gerenciamento da própria placa de rede.

tecnologia chave

Todas as Smart NICs têm seu próprio sistema de placa de rede independente.Como mostrado na figura abaixo, podemos executar o Agente SDN, OVS, etc. neste sistema de placa de rede e descarregar as regras de rede para a placa de rede através do Agente.

As NICs inteligentes BlueField oferecem dois modos de NIC:

  • Modo de host separado. Nesse modo, o servidor host e a NVIDIA BlueField DPU podem compartilhar a placa de rede integrada como um host múltiplo. O recurso de descarregamento do NVIDIA BlueField DPU não está habilitado neste modo. (As descrições de artigos a seguir são coletivamente chamadas de modo de placa de rede normal)
  • Modo Embedded (ECPF – Embedded CPU Physical Function). Nesse modo, a carga de trabalho da rede do servidor host é descarregada para o NVIDIA BlueField DPU e a aceleração ASAP2 (Accelerated Switch and Packet Processing) é habilitada. (As descrições de artigos a seguir são coletivamente chamadas de modo de cartão de rede inteligente)

A alternância entre esses dois modos pode ser feita com o seguinte comando:

# 切换到智能网卡模式(bluefield2 要把设备名称换成mt41686)
mlxconfig -y -d /dev/mst/mt41682_pciconf0 s INTERNAL_CPU_MODEL=1 
# 切换到普通网卡模式
mlxconfig -d -y /dev/mst/mt41682_pciconf0 s HIDE_PORT2_PF=0

Nosso objetivo é gerenciar e agendar uniformemente servidores físicos e conectá-los à rede VPC existente. Na solução bare metal do Openstack Ironic + BlueFiled, precisamos resolver vários problemas importantes:

  1. Como conectar um nó de NIC inteligente bare metal a uma rede VPC existente?
  2. Como alcançar o desempenho ideal da rede?
  3. A DPU possui seu próprio Subsistema, que geralmente precisa ser modificado e customizado de acordo com os requisitos Quando e como instalar o subsistema?

Acesso à rede VPC

Na arquitetura VPC da NetEase Cloud Computing, existem principalmente as seguintes redes:

  1. Rede de negócios. A rede é usada para transportar o tráfego comercial do locatário.
  2. Gerencie a rede. Esta rede é usada para transportar o tráfego de gerenciamento e controlar o tráfego.

Diferente da rede Openstack Neutron, nossa arquitetura VPC é autodesenvolvida, e não há tráfego da camada 2, seja dentro da mesma sub-rede ou entre sub-redes, ou todo o tráfego que acessa a rede externa passa pela camada 3. O tráfego entre elas passa pelo túnel VXLAN, e o ARP e DHCP da máquina virtual são substituídos pelo nó de computação local, de modo que o modelo de tráfego é muito simples. Como mencionado acima, o BlueField tem dois modos de trabalho. O melhor desempenho de rede pode ser alcançado apenas no modo de placa de rede inteligente. Para maximizar o uso da largura de banda da placa de rede, também precisamos vincular as duas portas de uplink no BlueField. Finalmente, obtemos a seguinte topologia de rede:

No modo smart NIC, cada porta de rede no HOST corresponderá a uma porta representativa no DPU, mas vemos que apenas a interconexão entre eth0 no HOST e sua porta representativa é desenhada. Isso não é para ser preguiçoso ao desenhar, mas para conectar pf0hpf/eth0 ou pf1hpf/eth1 no modo bond para obter o mesmo efeito. Neste momento, a largura de banda máxima real que pode ser usada no HOST ainda é p0+p1. número total de portas de rede.

Além disso, podemos usar o seguinte comando para exibir apenas uma placa de rede no HOST:

mlxconfig -d /dev/mst/mt41682_pciconf0 s HIDE_PORT2_PF=1 #在HOST上只显示一个网口

No processo de teste real, verifica-se que se você modificar as características da placa de rede MTU no HOST, isso afetará as propriedades das portas p0 e p1 no DPU. Portanto, geralmente precisamos desabilitar algumas permissões de a placa de rede HOST através dos seguintes comandos:

mlxprivhost -d /dev/mst/mt41682_pciconf0 r --disable_port_owner #在HOST上禁用网卡的一些权限

Instalação do sistema DPU

Quando o NIC inteligente é enviado de fábrica, geralmente há um sistema padrão, mas a maioria dos clientes tem alguns requisitos específicos e precisa personalizá-lo, como mudar para o sistema Debian, como instalar o pacote de ambiente virtual java e assim por diante. Além disso, mesmo que o sistema padrão possa atender aos requisitos, também precisamos fazer alguma configuração de rede no subsistema ARM da DPU e instalar um agente SDN específico para fazer a placa de rede funcionar.

O manual do usuário do BlueField DPU fornece duas maneiras de instalar o subsistema ARM, uma é o método PXE, que precisa construir um servidor pxe no dispositivo HOST; a outra é o método nonePXE, carregando o driver rshim do BlueField no HOST, através do rshim pcie maneira de instalar, a linha de comando é a seguinte:

cat installcentosXXX.bfb > /dev/rshim0/boot

O que usamos aqui é o método nonePXE. Mas ainda há dois problemas neste momento:

  • Pergunta 1: O sistema HOST no nó bare metal pertence ao lado comercial. Quando o subsistema ARM está instalado, o sistema HOST não foi instalado. Como posso usar o método rshim pcie para instalar o sistema para o ARM?
  • Pergunta 2: Além da placa de rede DPU, nenhuma outra placa de rede é adicionada ao nó bare metal Como configurar a rede quando o sistema HOST está instalado?

Para a primeira pergunta, o Ironic nos deu uma ideia. Atualmente, na arquitetura OpenStack, o Ironic ainda é chamado através do Nova, simulando um driver de virtualização do Nova (outros drivers de virtualização incluem KVM, VMware, Xen, etc.) Para o Nova, implantar uma máquina física por meio do Ironic tem o mesmo processo de chamada que implantar uma máquina virtual. Ambos são executados por meio da interface do Nova para criar uma instância, mas os drivers subjacentes nova-scheduler e nova-compute são diferentes. O driver usa tecnologia de virtualização , enquanto a máquina física usa a tecnologia PXE e IPMI. Portanto, podemos instalar o sistema pequeno ramdisk através do PXE (o driver rshim e o driver ofed do BlueField precisam ser instalados) e, em seguida, obter o arquivo de imagem DPU ARM Subsystem através da rede. Neste momento, podemos usar o método nonePXE .Para conseguir o sistema DPU instalado.

Em todo o ciclo de vida da implantação bare metal, ela é dividida em 3 estágios:

  1. Para registrar um nó bare metal, as informações do UUID do nó serão usadas para o gerenciamento subsequente do ciclo de vida do bare metal.Ao registrar, você pode escolher o modo de driver bare metal.
  2. inspect obtém as informações de hardware (incluindo CPU, memória, disco rígido, placa de rede, etc.)
  3. deploy instala um sistema bare metal. Ou seja, os usuários podem implantar instâncias bare metal especificando imagens, redes e outras informações de acordo com as necessidades de negócios. Agendamento de recursos, instalação do sistema operacional, configuração de rede e outras tarefas são concluídas automaticamente pela plataforma em nuvem.

O tempo de instalação do sistema da máquina física geralmente é relativamente longo, pelo menos em minutos. Portanto, para melhorar a experiência do usuário, a instalação do sistema para a DPU precisa ser colocada antes da fase de implantação. Optamos por colocá-lo diretamente na etapa de inspeção. O processo geral é o seguinte. Mostrar:

Exceto pela instalação do sistema para a placa de rede, os demais processos são basicamente os mesmos da inspeção Ironic da comunidade. ironic-inspector inicia uma solicitação. Depois de receber a solicitação, o condutor irônico configura o nó bare metal para inicialização PXE por meio de IPMI e inicializa-o. O próximo passo é obter o IP por meio de DHCP e obter a imagem do ramdisk com IPA (Ironic Python Agent ) do servidor HTTP. Faça download da imagem NIC especificada do servidor HTTP por meio dos parâmetros do kernel na imagem do ramdisk e notifique o Ironic inspect para encerrar todo o processo após a conclusão da instalação.

A configuração da rede no DPU e a instalação do pacote do Agente SDN podem ser concluídas neste estágio. Após a instalação do sistema DPU, configure o SNAT no HOST, para que o subsistema DPU ARM possa acessar a rede externa através da rede HOST e obter o pacote desejado e a configuração correspondente.

Para a pergunta 2, se você deseja apenas instalar um sistema para o HOST, então com o pequeno sistema ramdisk mencionado acima, ainda existe uma maneira relativamente simples, como baixar a imagem do host e dd diretamente no disco raiz. Mas seja para instalar o sistema para o DPU ou o sistema para o HOST, há um problema central que não pode ser evitado: o método PXE requer suporte de rede. Que tipo de modo de implantação de rede pode atender aos requisitos de rede de alto desempenho da empresa e aos requisitos de capacidade instalada?

Arquitetura de implantação de rede

Usando o iPXE para instalar o sistema, haverá os seguintes pacotes na rede:

  • Mensagem DHCP, usada para obter um endereço IP para a placa de rede;
  • mensagem TFTP, usada para obter a imagem do sistema pequeno do ramdisk;
  • As mensagens HTTP são usadas para se comunicar com o gerenciamento e controle, e para obter a imagem do sistema host, etc.;

Como mencionado anteriormente, apenas o DPU no modo smart NIC pode obter um desempenho de rede ideal, portanto, há várias opções a serem consideradas ao instalar a máquina:

  1. Quando o sistema é instalado, o tráfego normal de negócios do usuário usa o modo de cartão de rede inteligente e ambos usam o túnel de sobreposição vxlan;

  2. Quando o sistema está instalado e o tráfego normal de negócios do usuário, o modo de cartão de rede inteligente é usado, mas o tráfego de rede instalado e o tráfego normal de negócios do usuário devem ser diferenciados.

    O tráfego de rede instalado vai para o underlay e o tráfego de negócios do usuário vai para o overlay vxlan;

  3. Quando o sistema é instalado, o tráfego está no modo de placa de rede normal e o tráfego normal de negócios do usuário está no modo de placa de rede inteligente.

Quando o sistema é instalado no modo PXE, os pacotes são DHCP, UDP e TCP comuns. Portanto, não é realista distinguir se o tráfego pertence aos pacotes de serviço do usuário. Se o tráfego de negócios usa o mesmo conjunto de tabelas de fluxo, é necessário implantar um conjunto de serviços específicos de PXE (servidor DHCP, servidor http, etc.) no ambiente de sobreposição. o tráfego PXE instalado usa um conjunto de tabelas de fluxo e o tráfego de serviço de usuário usa outro conjunto de tabelas de fluxo, a verificação real mostra que quando o Subsistema ARM é instalado na DPU no modo NIC inteligente, a rede será desconectada.

Quando a placa de rede BlueField DPU é enviada da fábrica, o padrão é o modo normal da placa de rede. Portanto, finalmente escolhemos a opção 3, que usa um modo de placa de rede diferente durante a instalação e quando o usuário o usa normalmente. Somente quando a implantação do sistema HOST abre o tráfego comercial com sucesso, o modo de placa de rede inteligente é usado e o modo de placa de rede comum é usado em outros casos.

Conforme mostrado na figura acima, o host no modo NIC normal não possui uma porta representativa no DPU. Conecte ambas as portas de rede ao switch TOR. O switch é usado para ligação, mas o HOST não é usado para ligação. No entanto, a função de porta de borda LACP precisa ser habilitada no switch. Neste momento, qualquer porta de rede no HOST pode obter um endereço IP através de DHCP.

Sob esse esquema, há três tipos de redes para implantação de nó bare metal de NIC inteligente:

  1. Rede de negócios. A finalidade dessa rede é conectar nós bare metal à VPC para transportar os pacotes de serviço dos locatários.
  2. Gerencie a rede. O objetivo desta rede é gerenciar nós bare metal, transportando o tráfego de gerenciamento e controlando o tráfego.
  3. Implante a rede. Usado para se comunicar com o nó de controle durante a inspeção e implantação, como download de imagens do servidor HTTP.

Conforme mostrado na figura acima, a rede de serviço é um pacote overlay, que é transportado por VXLAN; a rede de implantação e a rede de gerenciamento são pacotes underlay, e essas três redes estão em VLANs diferentes. A rede instalada é acessada com acesso, de forma que ao utilizar o PXE para instalar a máquina, não é necessário configurar a VLAN, e obter diretamente o IP para o nó bare metal do servidor DHCP conectado diretamente à rede de implantação, e utilizar o IP para comunicação com os nós de gerenciamento e controle, Servidor HTTP, etc.

Sob este esquema, não precisamos mais alterar a configuração do switch através do netconf, precisamos apenas configurar o switch TOR diretamente conectado ao bare metal para trunk permitir (VLAN de rede de implantação, VLAN de rede de negócios, VLAN de rede de gerenciamento) quando a máquina estiver colocar na prateleira e configurar o pvid do tronco pode ser usado para implantar vlan de rede.

Resumir

Use placa de rede de porta dupla NVDIA BlueField1 25Gbps (na verdade conectada ao switch 10G), use iperf2 para simplesmente testar a largura de banda e PPS entre dois nós bare metal, a largura de banda é 18,3 Gbps, pps 11 milhões, o mesmo método de teste é usado para o Teste do servidor físico da placa de rede 82599 Isso é quase 6 milhões de PPS. Pode-se ver que depois de usar o DPU para descarregar os pacotes de dados, o desempenho realmente melhorou muito. Claro, alguns problemas também foram encontrados durante o teste, como o desempenho de conexões curtas TCP, os pacotes após o descarregamento não podem ser capturados diretamente pelo tcdump, o tempo de instalação do subsistema DPU é muito longo, etc., todos os quais precisam para ser ainda mais otimizado.

Em geral, os produtos bare metal são incorporados em seu próprio sistema de produtos, formando um circuito fechado, conectando-se com produtos existentes, e ser compatível com APIs existentes é apenas o primeiro passo; já que o desenvolvimento do DPU ainda está em seu estágio inicial, e o preço das placas de rede DPU Comparado com as placas de rede comuns, o preço é muito maior. Portanto, se a função do produto for mais estável, o desempenho é mais forte, a operação e a manutenção são mais fáceis e os requisitos cada vez mais rigorosos de clientes podem ser continuamente atendidos, e a vantagem de custo pode ser formada ao mesmo tempo.O desenvolvimento de DPU e servidores bare metal definitivamente brilharão.

O autor deste artigo: Equipe de tecnologia de rede NetEase Shufan

{{o.name}}
{{m.name}}

Acho que você gosta

Origin my.oschina.net/u/4565392/blog/5452100
Recomendado
Clasificación