iSCSI Extensions for RDMA ( iSER ) es un protocolo de red informática que extiende el protocolo Internet Small Computer System Interface ( iSCSI ) para utilizar Remote Direct Memory Access ( RDMA ). RDMA puede proporcionarse mediante el Protocolo de control de transmisión (TCP) con servicios RDMA ( iWARP ), que utiliza una configuración Ethernet existente y, por lo tanto, tiene menores costos de hardware, RoCE ( RDMA over Converged Ethernet ), que no necesita la capa TCP y, por lo tanto, proporciona una latencia menor, o InfiniBand . iSER permite que los datos se transfieran directamente dentro y fuera de los búferes de memoria de computadora SCSI (aquellos que conectan computadoras y dispositivos de almacenamiento) sin copias de datos intermedias y con una participación mínima de la CPU .
El 31 de mayo de 2002 se anunció un consorcio RDMA, con el objetivo de implementar productos para 2003. [1] El consorcio publicó su propuesta en julio de 2003. [2] Las especificaciones del protocolo se publicaron como borradores en septiembre de 2004 en el Grupo de trabajo de ingeniería de Internet y se emitieron como RFC en octubre de 2007. [3] [4] La OpenIB Alliance cambió su nombre en 2007 a OpenFabrics Alliance , y luego lanzó un paquete de software de código abierto . [5]
La motivación de iSER es utilizar RDMA para evitar la copia innecesaria de datos en el destino y el iniciador. La arquitectura Datamover (DA) define un modelo abstracto en el que el movimiento de datos entre nodos finales iSCSI está lógicamente separado del resto del protocolo iSCSI; iSER es un protocolo Datamover. La interfaz entre iSCSI y un protocolo Datamover, iSER en este caso, se denomina interfaz Datamover (DI).
La principal diferencia entre el iSCSI estándar y el iSCSI sobre iSER es la ejecución de comandos de lectura/escritura SCSI. Con iSER, el destino controla toda la transferencia de datos (con la excepción de los datos no solicitados de iSCSI) mediante la emisión de operaciones de escritura/lectura RDMA, respectivamente. Cuando la capa iSCSI emite un PDU de comando iSCSI, llama a la primitiva Send_Control, que es parte de la DI. La primitiva Send_Control envía la STag con el PDU. La capa iSER en el lado del destino notifica al destino que se recibió el PDU con la primitiva Control_Notify (que es parte de la DI). El destino llama a las primitivas Put_Data o Get_Data (que son parte de la DI) para realizar una operación de escritura/lectura RDMA respectivamente. Luego, el destino llama a la primitiva Send_Control para enviar una respuesta al iniciador. En las figuras se muestra un ejemplo (el tiempo avanza de arriba hacia abajo).
Todas las PDU de tipo control iSCSI contienen un encabezado iSER, que permite al iniciador anunciar las etiquetas STag que se generaron durante el registro del búfer. El destino utilizará las etiquetas STag más adelante para operaciones de lectura/escritura de RDMA.