Comprender los requisitos de hardware y almacenamiento de NVMe

16

Estoy un poco confundido acerca de los desarrollos recientes en el almacenamiento basado en PCIe, particularmente en lo que respecta a la especificación NVMe y su compatibilidad de hardware.

Si bien he trabajado extensamente con SSD en formato de disco y algunos dispositivos PCIe de gama alta como Fusion-io , estoy en una posición en la que no entiendo los conceptos básicos de NVMe y estoy buscando aclaraciones sobre qué tipo de servidor El hardware es compatible.

Por ejemplo, una copia de este anuncio de Supermicro es confusa.

... CPU de alto rendimiento PCI-E Gen3 con conexión directa a dispositivos NVMe.

Estoy tratando con una solución de almacenamiento definido por software basada en Linux y quería usar dispositivos Fusion-io de repuesto, que usan un controlador propietario ( presentando nombres de dispositivo / dev / fioX al sistema operativo ).

Cuando le pedí ayuda al vendedor, la respuesta fue:

La nueva interfaz del dispositivo NVMe deja obsoleta la denominación de dispositivos "fioX". Significa que compramos adaptadores obsoletos para agregar soporte que nadie más ha pedido.

Esto parece un poco duro. No pensé que los adaptadores Fusion-io fueran obsoletos.

La escasa información que encuentro en línea parece insinuar que NVMe solo es compatible con las últimas generaciones de hardware de servidor ( ¿CPUs Intel E5-2600v3 y conjuntos de chips PCI 3.0? ). Pero no puedo verificar esto.

¿Es esto cierto?

¿Cuál es la tasa de adopción? ¿Es esto algo que los ingenieros tienen en cuenta en sus decisiones de diseño, o estamos hablando de un "estándar" que no está completamente formado?

Si NVMe es algo que solo se aplica a los sistemas más nuevos del mercado, ¿es razonable sugerir (al proveedor) que mi base de instalación de sistemas más antiguos no puede ser compatible con NVMe, por lo que vale la pena agregar el soporte que solicité?

ewwhite
fuente

Respuestas:

4

NVMe está basado en PCIe y utiliza diferentes controladores diseñados para eso. Básicamente, puede tomar un M2 formfactor NVM, introducirlo en el adaptador apropiado y ejecutarlo en cualquier sistema Linux, Windows o BSD con los controladores adecuados.

Esencialmente, todo lo que hace NVMe es estandarizar los SSD basados ​​en PCIe en un solo conjunto de controladores, diseñados para aprovecharlos al máximo.

Lo más probable es que si pudieras arrancar desde un pci ssd no estándar , puedes arrancar desde esto, con los controladores apropiados en el sistema operativo. Si está utilizando esto para el almacenamiento en caché y otros fines, no hay razón para que NVMe no funcione.

Sus sistemas más antiguos probablemente sean compatibles, suponiendo que pueda obtener un sistema operativo suficientemente nuevo con un núcleo suficientemente moderno.

Journeyman Geek
fuente
2

Mis dos centavos...

NVMe consiguió que los diversos SSD mfg se enfocaran y adoptaran un estándar base ... Básicamente, puede obtener el rendimiento de Nand Flash de un SSD conectado a servidores NVMe por NET menos. También hay más características de NVMe que de tela (con las que aún no estoy tan familiarizado)

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

Contenido "El impacto en el rendimiento de NVMe y NVMe sobre los tejidos" • Una descripción general de la iniciativa NVMe sobre los tejidos • Soporte de NVMe para múltiples tejidos, incluido Ethernet con RDMA (iWARP) • Cómo NVM Express elimina de forma integral la latencia de traducción SCSI • Alcanzar el rendimiento beneficios comparables a cientos de SSD: locales y remotos

William Moore NetDirect CA
fuente
¿Qué pasa con los requisitos de hardware / plataforma / chipset necesarios para acomodar esto?
ewwhite
2

Necesitaba probar esto por mí mismo ...

Compré cuatro SSD Intel 750 PCIe NVMe para instalar en servidores HP ProLiant DL380p Gen8 . Los servidores no son las CPU de la serie Intel 2600v3 de la generación actual, sino las CPU 2600v2.

La comida para llevar:

NVMe es una especificación de interfaz. En Linux, los dispositivos se enumeran como /dev/nvmeXnY, por ejemplo, /dev/nvme0n1y /dev/nvme1n1.

El factor de forma de los dispositivos que utilicé fue PCIe 3.0 x4. Los servidores ProLiant Gen8 tienen dos ranuras PCIe 3.0 en la jaula vertical predeterminada. Estas tarjetas PCIe NVMe funcionarán en ranuras PCIe más lentas (o PCIe 2.0), pero estarán limitadas por el bus en ese punto.

Entonces, para mi caso de uso, NVMe está algo impulsado por el sistema operativo, pero definitivamente es compatible con el hardware de mi servidor un poco más antiguo.

ewwhite
fuente
ewwhite-- También estoy interesado en cambiar a estas tarjetas NVMe en nuestros servidores HP gen8. ¿Tuvo que suministrar SATA externo u otros cables de alimentación para que todo funcione? Tenemos una combinación de SSD OCZ y Mushkin PCIe, pero todos usan controladores SATA3 o SCSI para interactuar. Estoy empezando a escuchar que estas unidades NVMe se están volviendo más comunes.
Usé tarjetas PCIe NVMe. Se deslizan hacia adentro. Solo 2 de las 3 ranuras en un elevador PCIe Gen8 son PCIe 3.0, así que tenga cuidado con eso.
ewwhite
2

Escribí un artículo en Thinkmate que intenta dar una buena visión general de NVMe y funciona como una pequeña guía para elegir la unidad y el sistema correctos, algo que descubrí que faltaba en línea. Principalmente vendemos servidores Supermicro, y estoy de acuerdo: las cosas pueden ser un poco confusas ... ¡Por eso escribí el artículo!

En cuanto a la adopción, no puedo hablar por la industria en general, pero en Thinkmate el interés en NVMe ha sido significativo, y los comentarios que recibimos de nuestros clientes son que están muy satisfechos con su compra, principalmente debido a los beneficios de rendimiento .

Veo mucho sobre el precio, pero creo que lo más importante a considerar es el valor, no el precio. La elección de la memoria flash debe depender en gran medida del valor que cada solución aportará a su aplicación durante la vida útil del disco y el sistema.

Eli Domingues
fuente
1

Agregué una tarjeta nvme Intel 750 de 400 GB a una DL 380p gen 8 sin ningún problema. La BIOS lo reconoció como un dispositivo de almacenamiento masivo.

Estoy usando FreeBSD 9.3 y reconoció el disco nvme de inmediato, funciona perfectamente bien y es muy rápido. No puedo comentar sobre el arranque desde la unidad, ya que estoy usando esto como una segunda unidad.

Phil
fuente
Tenga en cuenta que solo las ranuras PCIe 1,2,4,5 y 6 son capaces de alcanzar velocidades PCIe 3.0. La ranura # 3 es un mal lugar para una tarjeta NVMe.
ewwhite
1

Hay un detalle en el siguiente artículo que creo que es significativo, y lo lleva más allá de la 'just pcie'.

Son las 32k solicitudes en cola simultáneas, que podrían transformar algunas aplicaciones. Si lo he leído bien, eso no está disponible a través de la solución 'ajustarlo en una ranura que lo lleva'. Necesita una placa NVMe adecuada.

Sólo por información. ¡Yo también estoy aprendiendo!

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

Andrew Mather
fuente