Las arquitecturas de almacenamiento en la nube tradicionales que ejecutan iSCSI sobre TCP/IP estándar incurren en una sobrecarga sustancial de copia en búfer de sockets del núcleo y manejo de interrupciones, lo que impone de 2 a 5 milisegundos de latencia añadida en el almacenamiento de bloques remoto. Para bases de datos relacionales de alto rendimiento y cargas de trabajo analíticas en tiempo real, esta latencia de red crea cuellos de botella de E/S graves. Al integrar NVMe over Fabrics (NVMe-oF) con RDMA over Converged Ethernet (RoCEv2), los clústeres de almacenamiento Ceph empresariales transfieren comandos NVMe directamente entre espacios de memoria del host con tiempos de ejecución de submilisegundos.
La arquitectura de NVMe over Fabrics (NVMe-oF)
NVMe-oF amplía el paralelismo ligero de 64,000 colas del conjunto de comandos PCIe NVMe a través de estructuras de Ethernet sin pérdidas sin traducción de protocolos SCSI. Cuando se combina con adaptadores de red Mellanox/NVIDIA ConnectX configurados para Control de Flujo Prioritario (PFC) y Notificación Explícita de Congestión (ECN), los iniciadores de almacenamiento se comunican con los Daemons de Almacenamiento de Objetos (OSDs) de Ceph remotos a velocidades PCIe casi locales.
El acceso remoto directo a memoria (RDMA) omite por completo la pila TCP/IP del sistema operativo host. Las colas de envío y finalización de NVMe se asignan directamente a los pares de colas (QPs) del hardware de la tarjeta de red, reduciendo la latencia de E/S de bloques aleatorios 4K p99 a menos de 250 microsegundos en redes spine-leaf de 100GbE.
Comparación de rendimiento de protocolos de almacenamiento
Evaluación de la latencia de lectura aleatoria 4K, los límites máximos de IOPS por núcleo y la sobrecarga de interrupciones de la CPU del host en los protocolos de transporte de almacenamiento:
| Estructura de almacenamiento | Latencia de lectura aleatoria 4K | IOPS máx. por núcleo | Sobrecarga de la CPU del host |
|---|---|---|---|
| iSCSI heredado / TCP | 2.4 – 4.8 ms | 80,000 IOPS |
Alta (Interrupciones de sockets del núcleo & copias sk_buff) |
| Cliente nativo Ceph RBD (msgr v2) | 1.1 – 1.8 ms | 180,000 IOPS |
Moderada (Sondeo de hilos librbd en espacio de usuario) |
| NVMe-oF sobre RoCEv2 RDMA | 0.18 – 0.35 ms |
1,200,000+ IOPS |
Casi cero (Registro de memoria DMA por hardware) |
Configuración del iniciador host NVMe-oF en Linux
Conecte un nodo de cálculo de Linux a una puerta de enlace de destino Ceph NVMe-oF remota a través de una red RoCEv2 de 100GbE sin pérdidas utilizando nvme-cli y E/S multirruta (ANA):
# Load kernel NVMe RDMA initiator and multipath modules
modprobe nvme-rdma
modprobe nvme-core multipath=Y
# Discover remote NVMe-oF subsystems over RoCEv2 port 4420
nvme discover -t rdma -a 192.168.100.50 -s 4420
# Connect to redundant Ceph NVMe-oF gateway group
nvme connect-all -t rdma -a 192.168.100.50 -s 4420
Implemente infraestructura en la nube resiliente con WinWinHost
Acelere sus aplicaciones críticas para el negocio con almacenamiento en la nube y servidores dedicados (bare-metal) empresariales. Revise nuestra guía sobre Linux eBPF & Filtrado DDoS XDP, inspeccione Archivos registrados io_uring de Linux, o contacte a nuestros ingenieros de arquitectura en la nube.