Nos últimos anos, continuamos a experimentar como o desempenho do armazenamento está ficando mais rápido, o que tem desafiado os antigos protocolos de armazenamento que se tornaram um gargalo para os data centers. Apesar de usar a mais recente velocidade de malha de 100 GbE e novos padrões de rede, como InfiniBand, essas tecnologias de protocolo de rede lenta restringem o desempenho do dispositivo flash, mantendo-o dentro do próprio dispositivo e isolado na caixa. Neste artigo, damos uma olhada rápida no Non-Volatile Memory Express (NVMe). Além disso, apresentamos uma visão geral de NVMe over Fabrics (NVMe-oF) e NVMe over RDMA over Converged Ethernet (NVMe over RoCE), uma nova especificação de protocolo desenvolvida para resolver os gargalos das redes de armazenamento modernas.
Nos últimos anos, continuamos a experimentar como o desempenho do armazenamento está ficando mais rápido, o que tem desafiado os antigos protocolos de armazenamento que se tornaram um gargalo para os data centers. Apesar de usar a mais recente velocidade de malha de 100 GbE e novos padrões de rede, como InfiniBand, essas tecnologias de protocolo de rede lenta restringem o desempenho do dispositivo flash, mantendo-o dentro do próprio dispositivo e isolado na caixa. Neste artigo, damos uma olhada rápida no Non-Volatile Memory Express (NVMe). Além disso, apresentamos uma visão geral de NVMe over Fabrics (NVMe-oF) e NVMe over RDMA over Converged Ethernet (NVMe over RoCE), uma nova especificação de protocolo desenvolvida para resolver os gargalos das redes de armazenamento modernas.
Devido à sempre demanda por baixa latência e alta taxa de transferência nas nuvens e data centers, há muita discussão em torno do NVMe sobre Fabrics. A especificação NVMe existe há menos de uma década e, como o NVMe-oF também é relativamente novo, ainda há muitos mal-entendidos sobre sua prática e como ela beneficia os negócios. Essa tecnologia tem evoluído persistentemente e é amplamente adotada na indústria de TI. Estamos começando a ver vários fornecedores de rede fornecendo produtos relacionados a NVMe-oF para o mercado corporativo. Portanto, para acompanhar as tecnologias avançadas de data center, é essencial entender o que é NVMe-oF, seus recursos e suas características de desempenho. Além disso, como ela pode ser implantada e como combinamos essa tecnologia em diferentes e novas soluções.
NVMe e NVMe-oF
Os arrays totalmente flash (AFA) surgiram nos datacenters para atender ao chamado de alto desempenho, pois são muito mais rápidos que o armazenamento legado, podendo atingir o sempre prometido 1M IOPS no mercado sem esforço. No entanto, muitos desses arrays continuaram usando uma tecnologia de armazenamento quase herdada, o SATA SSD. Este tipo de armazenamento é baseado no protocolo de comando AHCI (Advanced Host Controller Interface) e suporta IDE. O AHCI foi construído essencialmente para o disco giratório e não para as unidades avançadas baseadas em flash. Esta tecnologia baseada em SCSI cria um gargalo para os atuais controladores de SSDs e matrizes de armazenamento, pois o barramento SATA III com AHCI permite apenas velocidades de transferência de dados de até 600 MB/s.
tabela 1: Velocidade comum dos ônibus
Para desbloquear a capacidade total dos SSDs, precisávamos de uma nova tecnologia para descarregar o flash em velocidade mais rápida. NVMe é uma especificação que permite que o armazenamento em flash (ou SSDs) aproveite o benefício real do desempenho do flash. Essa tecnologia foi introduzida pela primeira vez em 2014 para melhorar o tempo de resposta do aplicativo, apresentando novos e melhores recursos. Existem muitos fatores de forma da unidade de estado sólido NVMe, e os mais conhecidos são AIC (placa complementar), U.2, U.3 e M.2. Os SSDs NVMe aproveitam o barramento de alta velocidade Peripheral Component Interconnector Express (PCIe) no computador ou servidor, conectando-o diretamente a ele. Substancialmente, o NVMe reduz a sobrecarga da CPU e agiliza as operações que reduzem a latência, aumentam as operações de entrada/saída por segundo (IOPS) e a taxa de transferência. Por exemplo, os SSDs NVMe fornecem velocidades de gravação superiores a 3,000 MB/s. Se compararmos com os SSDs SATA, isso significa 5x mais rápido ou 30x mais rápido que os discos giratórios.
Usando NVMe, o IOPS é executado em paralelo, permitindo muitos cálculos ao mesmo tempo. Tarefas grandes podem ser divididas em várias tarefas menores para serem processadas independentemente. Semelhante a uma CPU multi-core, trabalhando com vários threads. Cada núcleo da CPU pode funcionar independentemente um do outro para executar tarefas específicas.
As profundidades da fila (QD) são outra vantagem do NVMe sobre o AHCI. Enquanto ACHI e SATA podem lidar com profundidades de fila de 32 (1 fila e 32 comandos), o NVMe pode lidar com profundidades de fila de até 65K. São filas de 65 mil, onde cada fila pode conter até 65 mil comandos por fila. Juntamente com a redução da latência, isso acelera o desempenho de servidores ocupados processando solicitações simultâneas.
Tabela 2: Comparação de filas
No entanto, o problema dos data centers permanece nos protocolos de rede de armazenamento. Apesar da ascensão do NVMe, seus ganhos são limitados a cada aparelho individual. E o fato é que o armazenamento flash e outros dispositivos de nível empresarial (caros), como AFAs, não se destinam a isolar seu notável desempenho dentro do chassi. Em vez disso, eles devem ser usados em clusters maciços de computadores paralelos, conectando-os a dispositivos adicionais e múltiplos, como outros servidores e armazenamento. Essa interconexão de dispositivos é o que chamamos de malha, a rede de armazenamento, incluindo switches, roteadores, pontes de protocolo, dispositivos de gateway e cabos.
Em 2016, o padrão da indústria NVMe-oF foi lançado. A especificação do protocolo estende o incrível desempenho do NVMe dos controladores de matriz de armazenamento para a malha, usando Ethernet, Fibre Channel, RoCE ou InfiniBand. O NVMe-oF usa um protocolo de transporte de dados alternativo (sobre malhas) como um mapeamento de transporte, em vez do barramento PCIe usado pelo NVMe. Fabrics são construídos com base no conceito de envio e recebimento de mensagens sem memória compartilhada entre terminais. Os transportes de mensagens de malha NVMe encapsulam comandos e respostas NVMe em um sistema baseado em mensagens que inclui um ou mais comandos ou respostas NVMe.
No NVMe-oF, os destinos são apresentados como namespaces, o que equivale a SCSI LUNs. O NVMe-oF permite que os hosts se comuniquem com esses destinos de armazenamento em distâncias muito maiores, mantendo a latência ultrabaixa, em níveis de microssegundos (μs). Simplificando, obtemos melhor desempenho entre os sistemas e o armazenamento flash sem adicionar substancialmente a latência da malha. Essa baixa latência, em parte, é possível devido às profundidades de fila NVMe mencionadas anteriormente. NVMe-oF pode lidar com as mesmas filas que NVMe, 65K. Esse número notável torna o NVMe-oF possível projetar uma arquitetura altamente paralela entre hosts e drives, usando uma fila separada para cada um desses dispositivos.
Transportes de Tecidos NVMe
Três tipos de transportes de malha suportados e usados pelo NVMe são NVMe-oF usando RDMA, NVMe-oF usando Fibre Channel e NVMe-oF usando TCP.
NVMe-oF sobre RDMA
Esta especificação usa Remote Direct Memory Access (RDMA) e permite que os dados e a memória sejam transferidos entre o computador e os dispositivos de armazenamento pela rede. RDMA é uma forma de trocar informações entre a memória principal de dois computadores em uma rede sem envolver o processador, o cache ou o sistema operacional de nenhum dos computadores. Como o RDMA evita o sistema operacional, geralmente é o mecanismo mais rápido e de menor sobrecarga para transmitir dados em uma rede.
NVMe-oF sobre RDMA usa o protocolo de transporte TCP para entregar dados em redes IP. As implementações típicas de RDMA incluem a Arquitetura de Interface Virtual, RDMA sobre Ethernet Convergente (RoCE), InfiniBand, Omni-Path e iWARP. RoCE, InfiniBand e iWARP são atualmente os mais usados.
NVMe sobre Fibre Channel
A combinação de uso de NVMe sobre Fibre Channel (FC) costuma ser chamada de FC-NVMe, NVMe sobre FC ou, às vezes, NVMe/FC. Fibre Channel é um protocolo robusto para transferência de dados entre matrizes de armazenamento e servidores, e a maioria dos sistemas SAN corporativos o utiliza. No FC-NVMe, os comandos são encapsulados dentro dos quadros do FC. Ele é baseado nas regras FC padrão e corresponde ao protocolo FC padrão que suporta o acesso ao flash NVMe compartilhado. Os comandos SCSI são encapsulados em quadros FC; no entanto, uma penalidade de desempenho é imposta para interpretá-los e traduzi-los em comandos NVMe.
NVMe sobre TCP/IP
Esse tipo de transporte é um dos desenvolvimentos mais recentes do NVMe-oF. NVMe sobre TCP (Protocolo de Controle de Transporte) usa NVMe-oF e o protocolo de transporte TCP para transferir dados através de redes IP (Ethernet). NVMe transportado dentro de datagramas TCP sobre Ethernet como o transporte físico. Apesar de ter RDMA e Fibre Channel, o TCP oferece uma alternativa provavelmente mais barata e flexível. Além disso, comparando-o com o RoCE, que também usa Ethernet, o desempenho do NVMe/TCP é mais parecido com o FC-NVMe porque eles usam a semântica de mensagens para E/S.
O uso de NVMe-oF com RDMA, Fibre Channel ou TCP cria uma solução completa de armazenamento NVMe de ponta a ponta. Essas soluções fornecem desempenho notavelmente alto, mantendo a latência muito baixa disponível via NVMe.
NVMe sobre RDMA sobre Ethernet Convergente (RoCE)
Dentre os protocolos RDMA, destaca-se o RoCE. Sabemos o que são RDMA e NVMe-oF e agora temos Converged Ethernet (CE), o suporte de RDMA em uma rede Ethernet. CE é como uma versão Ethernet aprimorada, também conhecida como Data Center Bridging e Data Center Ethernet. Ele encapsula o pacote de transporte InfiniBand pela Ethernet. Sua solução fornece o mecanismo Link Level Flow Control para garantir perda zero, mesmo quando a rede está saturada. O protocolo RoCE permite latências mais baixas do que seu antecessor, o protocolo iWARP.
Existem duas versões RoCE, RoCE v1 e RoCE v2. RoCE v1 é um protocolo Ethernet de camada 2 (link), permitindo a comunicação entre dois hosts no mesmo domínio de transmissão Ethernet. Portanto, ele não pode rotear entre sub-redes. A nova opção é o RoCE v2, um protocolo sobre o protocolo UDP/IPv4 ou UDP/IPv6. RoCE v2 é um protocolo Ethernet de camada 3 (internet), o que significa que seus pacotes podem ser roteados. O suporte de software para RoCE v2 ainda está surgindo. Mellanox OFED 2.3 ou posterior tem suporte RoCE v2 e também Linux Kernel v4.5.
NVMe sobre RoCE é um novo tipo de SAN. Esse protocolo fornece o mesmo desempenho e flexibilidade de serviços de dados corporativos de hardware e software SAN. Embora o protocolo RoCE se beneficie da característica de uma rede Ethernet convergente, o protocolo também pode ser usado em uma rede Ethernet tradicional ou não convergente. Para configurar o NVMe sobre a malha de armazenamento RoCE, o NIC, o switch e o AFA devem suportar Ethernet convergente. A NIC (chamada de R-NIC) e a matriz totalmente flash devem fornecer suporte para RoCE. Servidores com R-NICs e AFAs com interfaces NVMe sobre RoCE serão plug-and-play com switches CE instalados.
Suporte NVMe-oF sobre RoCE para VMware
A VMware adicionou suporte para armazenamento NVMe compartilhado usando NVMe-oF. Para conectividade externa, NVMe sobre Fibre Channel e NVMe sobre RDMA são suportados no vSphere 7.0. Os hosts ESXi podem usar RDMA sobre Ethernet convergente v2 (RoCE v2). Para habilitar e acessar o armazenamento NVMe usando RDMA, o host ESXi usa um adaptador R-NIC em seu host e um adaptador de armazenamento SW NVMe sobre RDMA. A configuração deve ser definida em ambos os adaptadores para usá-los para descoberta de armazenamento NVMe.
Os destinos são apresentados como namespaces para um host nos modos de acesso ativo/ativo ou assimétrico (ALUA) ao usar NVMe-oF. Isso permite que os hosts ESXi descubram e usem os namespaces apresentados. O ESXi emula alvos NVMe-oF como alvos SCSI internamente e os apresenta como alvos SCSI ativos/ativos ou alvos SCSI ALUA implícitos.
Requisitos NVMe sobre RDMA:
- Matriz NVMe compatível com transporte RDMA (RoCE v2)
- Host ESXi compatível
- Switches Ethernet que suportam uma rede sem perdas.
- Adaptador de rede compatível com RoCE v2
- Adaptador SW NVMe sobre RDMA
- controlador NVMe
- O RoCE é executado hoje em malhas com perdas que suportam ZTR (Zero Touch RoCE) ou requer uma rede configurada para tráfego de informações sem perdas apenas na camada 2 ou nas camadas 2 e 3 (usando PFC)
Ao configurar o NVMe-oF em um host ESXi, algumas práticas devem ser seguidas.
- Não misture tipos de transporte para acessar o mesmo namespace.
- Certifique-se de que todos os caminhos ativos sejam apresentados ao host.
- NMP não é usado/suportado; em vez disso, o HPP (plug-in de alto desempenho) é usado para destinos NVMe.
- Você deve ter links dedicados, VMkernels e adaptadores RDMA para seus destinos NVMe.
- VLAN de camada 3 dedicada ou conectividade de camada 2
- Limites:
-
- Espaços para nome-32
- Paths=128 (máximo de 4 caminhos/namespace em um host)
Conclusão
Com cada vez mais pessoas dependendo de dados em serviços de nuvem, há uma demanda crescente por armazenamento de back-end mais rápido em data centers. O NVMe é uma maneira mais recente de interagir com dispositivos flash e, junto com o NVMe-oF, as tecnologias têm avançado nas opções de conectividade externa. O NVMe-oF e seus diferentes tipos de transportes estão começando a ser reconhecidos como o futuro do armazenamento de dados. Esses dispositivos e dispositivos de armazenamento são considerados o coração dos data centers, pois cada milissegundo conta dentro da malha interconectada. A tecnologia NVMe reduz os comandos de entrada/saída mapeados na memória e acomoda os drivers de dispositivo do sistema operacional para maior desempenho e menor latência.
O NVMe tornou-se cada vez mais popular devido à sua velocidade multitarefa em baixa latência e alto rendimento. Embora o NVMe também esteja sendo usado em computadores pessoais para melhorar a edição de vídeo, jogos e outras soluções, o benefício real é visto na empresa, por meio do NVMe-oF. Setores, como TI, Inteligência Artificial e Aprendizado de Máquina, continuam avançando e a demanda por desempenho aprimorado continua a crescer. Agora é comum ver fornecedores de software e rede, como VMware e Mellanox, entregando mais produtos e soluções relacionados a NVMe-oF para o mercado corporativo. Com clusters de computadores modernos e massivamente paralelos, quanto mais rápido pudermos processar e acessar nossos dados, mais valiosos serão para nossos negócios.
Recursos
Hub de armazenamento: VMware NVMeoF vSphere
NVMexpress: NVMe sobre tecidos
Análise NetApp AFF A800 NVMeOF
Envolva-se com a StorageReview
Newsletter | YouTube | Podcast iTunes/Spotify | Instagram | Twitter | Facebook | RSS feed