Entendendo os requisitos de armazenamento e hardware do NVMe

16

Estou um pouco confuso sobre os desenvolvimentos recentes no armazenamento baseado em PCIe, principalmente no que se refere à especificação NVMe e sua compatibilidade de hardware.

Embora tenha trabalhado extensivamente com SSDs no formato de disco e em alguns dispositivos PCIe de última geração, como o Fusion-io , estou em uma posição em que não entendo o básico do NVMe e busco esclarecimentos sobre o tipo de servidor hardware é suportado.

Por exemplo, uma cópia de anúncio como essa da Supermicro é confusa.

... CPU PCI-E Gen3 de alto desempenho, conexão direta a dispositivos NVMe.

Estou lidando com uma solução de armazenamento definido por software baseada em Linux e queria usar dispositivos Fusion-io sobressalentes, que usam um driver proprietário ( apresentando nomes de dispositivos / dev / fioX ao sistema operacional ).

Quando solicitei ajuda do fornecedor, a resposta foi:

A nomeação do dispositivo "fioX" é tornada obsoleta pela nova interface do dispositivo NVMe. Isso significa que compramos adaptadores obsoletos para adicionar suporte que ninguém mais pediu.

Isso parece um pouco duro. Não achei que os adaptadores Fusion-io fossem obsoletos.

As escassas informações que encontro online parecem sugerir que o NVMe é suportado apenas nas gerações mais recentes de hardware de servidor ( CPUs Intel E5-2600v3 e chipsets PCI 3.0? ). Mas não posso verificar isso.

Isso é verdade?

Qual é a taxa de adoção? Isso é algo que os engenheiros estão respondendo em suas decisões de projeto ou estamos falando de um "padrão" que não está totalmente formado?

Se o NVMe é algo que se aplica apenas aos sistemas mais novos do mercado, é razoável sugerir (ao fornecedor) que minha base de instalação de sistemas mais antigos não pode ser compatível com o NVMe, por isso vale a pena adicionar o suporte que solicitei?

ewwhite
fonte

Respostas:

4

O NVMe é baseado em PCIe e usa diferentes drivers projetados para isso. Você pode essencialmente pegar um NVM M2 de fator de forma, inseri-lo no adaptador apropriado e executá-lo em qualquer sistema Linux, Windows ou BSD com drivers apropriados.

Essencialmente, tudo o que o NVMe faz é padronizar SSDs baseados em PCIe para um único conjunto de drivers, projetado para tirar o máximo proveito deles.

As chances são de que, se você pudesse inicializar a partir de um pci ssd não padrão , você pode inicializá-lo com os drivers apropriados no sistema operacional. Se você estiver usando isso para armazenamento em cache e outros fins, não há motivo para o NVMe não funcionar.

Seus sistemas mais antigos provavelmente são compatíveis, supondo que você possa obter um sistema operacional suficientemente novo com um kernel moderno o suficiente.

Journeyman Geek
fonte
2

Meus dois centavos...

O NVMe tem vários SSD mfg para focar e adotar um padrão básico ... Basicamente, você pode obter desempenho Nand Flash de um SSD conectado a servidores NVMe por menos NET. Além disso, o NVMe tem mais recursos de malha (com os quais ainda não estou familiarizado)

Consulte https://www.brighttalk.com/webcast/663/132761

Conteúdo "O impacto no desempenho do NVMe e do NVMe sobre tecidos" • Uma visão geral da iniciativa NVMe sobre tecidos • Suporte do NVMe para várias malhas, incluindo Ethernet com RDMA (iWARP) • Como o NVM Express de ponta a ponta elimina a latência da tradução SCSI • Alcançando desempenho benefícios comparáveis ​​a centenas de SSDs - locais e remotos

William Moore NetDirect CA
fonte
E os requisitos de hardware / plataforma / chipset necessários para acomodar isso?
ewwhite
2

Eu precisava testar isso sozinho ...

Comprei quatro SSDs Intel 750 PCIe NVMe para instalar nos servidores HP ProLiant DL380p Gen8 . Os servidores não são os processadores da série Intel 2600v3 da geração atual, mas sim os processadores 2600v2.

O takeaway:

NVMe é uma especificação de interface. No Linux, os dispositivos são enumerados como /dev/nvmeXnY, por exemplo, /dev/nvme0n1e /dev/nvme1n1.

O fator de forma dos dispositivos que usei foi o PCIe 3.0 x4. Os servidores Gen8 ProLiant possuem dois slots PCIe 3.0 na caixa riser padrão. Essas placas NVMe PCIe funcionarão em slots PCIe mais lentos (ou PCIe 2.0), mas serão limitadas pelo barramento nesse ponto.

Portanto, para o meu caso de uso, o NVMe é um pouco controlado pelo sistema operacional, mas é definitivamente compatível com o meu hardware de servidor um pouco mais antigo.

ewwhite
fonte
ewwhite-- Estou interessado em mudar para essas placas NVMe em nossos servidores HP gen8 também. Você precisou fornecer cabos SATA externos ou outros cabos de energia para fazer as coisas funcionarem? Temos uma mistura de SSDs OCZ e Mushkin PCIe, mas todos usam controladores SATA3 ou SCSI para fazer a interface. Estou apenas começando a ouvir mais dessas unidades NVMe se tornando mais comuns.
Eu usei placas NVMe PCIe. Eles deslizam para a direita. Somente 2 dos 3 slots em um riser Gen8 PCIe são PCIe 3.0, portanto, tenha cuidado.
ewwhite
2

Escrevi um artigo na Thinkmate que tenta fornecer uma boa visão geral do NVMe e funciona como um pequeno guia sobre como escolher a unidade e o sistema certos, algo que achei que faltava online. Nós vendemos principalmente servidores Supermicro, e eu concordo - as coisas podem ficar um pouco confusas ... Foi por isso que escrevi o artigo!

Quanto à adoção, não posso falar pela indústria como um todo, mas o interesse da Thinkmate no NVMe tem sido significativo, e o feedback que recebemos de nossos clientes é que eles estão muito satisfeitos com sua compra, principalmente devido aos benefícios de desempenho .

Eu vejo muita conversa sobre preço, mas acho que a coisa mais importante a considerar é valor, não preço. Sua escolha de memória flash deve depender muito do valor que cada solução trará para o seu aplicativo ao longo da vida útil da unidade e do sistema.

Eli Domingues
fonte
1

Adicionei um cartão Intel 750 400GB nvme a um DL 380p gen 8 sem nenhum problema. O BIOS o reconheceu como um dispositivo de armazenamento em massa.

Estou usando o FreeBSD 9.3 e ele reconheceu o drive nvme imediatamente, funciona perfeitamente bem e é muito rápido. Não posso comentar sobre a inicialização a partir da unidade, pois estou usando isso como uma segunda unidade.

Phil
fonte
Esteja ciente de que apenas os slots PCIe 1,2,4,5 e 6 são capazes de velocidades PCIe 3.0. O slot nº 3 é um local ruim para uma placa NVMe.
ewwhite
1

Há um detalhe no artigo a seguir que considero significativo e vai além do 'just pcie'.

São as solicitações em fila simultâneas de 32k, que podem transformar alguns aplicativos. Se eu li direito, isso não está disponível na solução 'encaixe em um slot que aceite'. Ele precisa de uma placa NVMe adequada.

Apenas para informação. Eu também estou aprendendo!

http://www.pcworld.com/article/2899351/everything-you-need-to-know-about-nvme.html

Andrew Mather
fonte