stringtranslate.com

LIO (objetivo SCSI)

El Linux-IO Target (LIO) es una implementación de objetivo de interfaz de sistema de computadora pequeña (SCSI) de código abierto incluida con el kernel de Linux . [1]

A diferencia de los iniciadores, que inician sesiones, LIO funciona como un objetivo, presentando uno o más números de unidad lógica (LUN) a un iniciador SCSI , recibiendo comandos SCSI y administrando las transferencias de datos de entrada/salida. [2]

LIO admite una amplia gama de protocolos de almacenamiento y estructuras de transporte, incluidos, entre otros, Fibre Channel over Ethernet (FCoE), Fibre Channel , IEEE 1394 e iSCSI . [3]

Se utiliza en varias distribuciones de Linux y es una opción popular para entornos de nube debido a su integración con herramientas como QEMU / KVM , libvirt y OpenStack . [4]

El proyecto LIO es mantenido por Datera, Inc. , [ dudosodiscutir ] un proveedor de soluciones de almacenamiento con sede en Silicon Valley. El 15 de enero de 2011, LIO se fusionó con la línea principal del núcleo Linux con la versión 2.6.38, que se lanzó oficialmente el 14 de marzo de 2011. [5] [6] Las versiones posteriores del núcleo Linux han introducido módulos de estructura adicionales para ampliar su compatibilidad. [ cita requerida ]

LIO compite con otros módulos de destino SCSI en el ecosistema Linux. SCSI Target Framework (SCST) [7] es una alternativa destacada para la funcionalidad general de destino SCSI, mientras que para destinos específicos de iSCSI, los antiguos iSCSI Enterprise Target (IET) y SCSI Target Framework (STGT) también han sido adoptados por la industria. [8] [9]

Fondo

El estándar SCSI proporciona una abstracción semántica extensible para dispositivos de almacenamiento de datos informáticos y se utiliza con sistemas de almacenamiento de datos. Los estándares SCSI T10 [10] definen los comandos [11] y los protocolos del procesador de comandos SCSI (enviados en bases de datos SCSI ), y las interfaces eléctricas y ópticas para diversas implementaciones.

Un iniciador SCSI es un punto final que inicia una sesión SCSI . Un destino SCSI es el punto final que espera los comandos del iniciador y ejecuta las transferencias de datos de E/S requeridas . El destino SCSI generalmente exporta uno o más LUN para que los iniciadores operen en ellos.

El objetivo SCSI de Linux LIO implementa un objetivo SCSI genérico que proporciona acceso remoto a la mayoría de los tipos de dispositivos de almacenamiento de datos en todos los protocolos y estructuras de almacenamiento predominantes. LIO no accede directamente a los datos ni se comunica directamente con las aplicaciones.

Arquitectura

Arquitectura LIO

LIO implementa una arquitectura modular y extensible alrededor de un motor de procesamiento de comandos SCSI paralelizado. [12]

El motor de destino SCSI de LIO es independiente de módulos de estructura específicos o tipos de backstore. Por lo tanto, LIO admite la combinación y combinación de cualquier cantidad de estructuras y backstores al mismo tiempo. El motor de destino SCSI de LIO implementa un conjunto integral de características SPC-3/SPC-4 [13] con soporte para características de alta gama, incluidas las reservas persistentes (PR) SCSI-3/SCSI-4, la asignación de unidad lógica asimétrica (ALUA) SCSI-4, las API de VMware vSphere para la integración de matrices (VAAI), [14] T10 DIF , etc.

LIO se puede configurar a través de una API de kernel basada en configfs [15] y se puede administrar a través de una interfaz de línea de comandos y una API ( targetcli ).

Objetivo SCSI

El concepto de un destino SCSI no se limita a los dispositivos físicos en un bus SCSI, sino que proporciona un modelo generalizado para todos los receptores en una estructura SCSI lógica. Esto incluye sesiones SCSI a través de interconexiones sin ningún bus SCSI físico. Conceptualmente, el destino SCSI proporciona un servicio o servidor de almacenamiento en bloque genérico en este escenario.

Trastiendas

Los back-stores proporcionan al destino SCSI un acceso generalizado a los dispositivos de almacenamiento de datos importándolos a través de los controladores de dispositivos correspondientes. Los back-stores no necesitan ser dispositivos SCSI físicos.

Los tipos de medios de almacenamiento trasero más importantes son:

Como resultado, LIO proporciona un modelo generalizado para exportar almacenamiento en bloques.

Módulos de tela

Los módulos de estructura implementan el front-end del objetivo SCSI encapsulando y abstrayendo las propiedades de las diversas interconexiones admitidas. Están disponibles los siguientes módulos de estructura.

FCoE

Almacenamiento combinado y red de área local

El módulo de estructura Fibre Channel over Ethernet (FCoE) permite el transporte de tráfico del protocolo Fibre Channel (FCP) a través de redes Ethernet sin pérdidas . La especificación, respaldada por una gran cantidad de proveedores de redes y almacenamiento, es parte del estándar FC-BB-5 del Comité Técnico T11. [16]

LIO admite todas las NIC Ethernet estándar.

El módulo de estructura FCoE fue aportado por Cisco e Intel , y lanzado con Linux 3.0 el 21 de julio de 2011. [17]

Canal de fibra

Fibre Channel es una tecnología de red de alta velocidad que se utiliza principalmente para redes de almacenamiento. Está estandarizada en el Comité Técnico T11 [18] del Comité Internacional de Normas de Tecnologías de la Información (INCITS).

El módulo de estructura QLogic Fibre Channel admite velocidades de 4 y 8 gigabits con los siguientes HBA:

El módulo de estructura Fibre Channel [19] y el controlador de bajo nivel [20] (LLD) se lanzaron con Linux 3.5 el 21 de julio de 2012. [21]

Con Linux 3.9, también se admiten los siguientes HBA y CNA QLogic:

Esto convierte a LIO en el primer objetivo de código abierto que admite el canal de fibra de 16 gigabits.

IEEE 1394

Destino Firewire LIO para Mac OS X

El módulo de estructura FireWire SBP-2 permite a Linux exportar dispositivos de almacenamiento local a través de IEEE 1394 , de modo que otros sistemas puedan montarlos como un dispositivo de almacenamiento IEEE 1394 normal.

IEEE 1394 es un estándar de interfaz de bus serial para comunicaciones de alta velocidad y transferencia de datos isócrona en tiempo real. Fue desarrollado por Apple como "FireWire" a fines de la década de 1980 y principios de la de 1990, y las computadoras Macintosh admiten el "modo de disco de destino FireWire" desde 1999. [22]

El módulo de red FireWire SBP-2 se lanzó con Linux 3.5 el 21 de julio de 2012. [21] [23]

iSCSI

El módulo de estructura de interfaz de sistema de computadora pequeña de Internet ( iSCSI ) permite el transporte de tráfico SCSI a través de redes IP estándar.

Al transportar sesiones SCSI a través de redes IP, iSCSI se utiliza para facilitar las transferencias de datos a través de intranets y administrar el almacenamiento a largas distancias. iSCSI se puede utilizar para transmitir datos a través de redes de área local (LAN), redes de área amplia (WAN) o Internet, y puede permitir el almacenamiento y la recuperación de datos independientes de la ubicación y transparentes a la ubicación.

El módulo de estructura iSCSI de LIO también implementa una serie de funciones iSCSI avanzadas que aumentan el rendimiento y la resiliencia, como múltiples conexiones por sesión (MC/S) y niveles de recuperación de errores 0-2 (ERL=0,1,2).

LIO admite todas las NIC Ethernet estándar.

El módulo de estructura iSCSI se lanzó con Linux 3.1 el 24 de octubre de 2011. [24]

iSER

Las redes que admiten acceso directo a memoria remota (RDMA) pueden utilizar el módulo de estructura iSCSI Extensions for RDMA (iSER) para transportar tráfico iSCSI . iSER permite transferir datos directamente dentro y fuera de los buffers de memoria de computadora SCSI remota sin copias de datos intermedias ( colocación directa de datos o DDP) mediante RDMA. [25] RDMA es compatible con redes InfiniBand , en Ethernet con redes de puentes de centros de datos (DCB) a través de RDMA sobre Ethernet convergente (RoCE) y en redes Ethernet estándar con controladores de motor de descarga TCP mejorados iWARP .

El módulo de estructura iSER fue desarrollado en conjunto por Datera y Mellanox Technologies , y se lanzó por primera vez con Linux 3.10 el 30 de junio de 2013. [26]

Precio sugerido de venta

El módulo de estructura del protocolo SCSI RDMA (SRP) permite el transporte de tráfico SCSI a través de redes RDMA (ver arriba). A partir de 2013, SRP se utilizó más ampliamente que iSER, aunque es más limitado, ya que SCSI es solo un protocolo peer to peer, mientras que iSCSI es completamente enrutable. El módulo de estructura SRP admite los siguientes adaptadores de canal de host (HCA) Mellanox:

El módulo de estructura SRP se lanzó con Linux 3.3 el 18 de marzo de 2012. [27]

En 2012, la revista c't midió un rendimiento de casi 5000 MB/s con LIO SRP Target en un puerto Mellanox ConnectX-3 en modo FDR de 56 Gbit/s en un sistema Sandy Bridge PCI Express 3.0 con cuatro tarjetas de memoria flash Fusion-IO ioDrive PCI Express.

USB

El módulo USB Gadget permite a Linux exportar dispositivos de almacenamiento local a través del bus serie universal (USB), de modo que otros sistemas puedan montarlos como un dispositivo de almacenamiento normal.

El USB fue diseñado a mediados de la década de 1990 para estandarizar la conexión de los periféricos de computadora , y también se ha vuelto común para los dispositivos de almacenamiento de datos.

El módulo de red USB Gadget se lanzó con Linux 3.5 el 21 de julio de 2012. [28]

Objetivocli

targetcli es una interfaz de línea de comandos (CLI) de gestión de nodo único de espacio de usuario para LIO. [29] Admite todos los módulos de estructura y se basa en una arquitectura modular y extensible, con módulos complementarios para módulos de estructura o funcionalidades adicionales.

targetcli proporciona una CLI que utiliza una biblioteca de destino genérica subyacente a través de una API bien definida. Por lo tanto, la CLI se puede reemplazar o complementar fácilmente con una interfaz de usuario con otras metáforas, como una GUI.

targetcli está implementado en Python y consta de tres módulos principales:

Se pueden encontrar instrucciones detalladas sobre cómo configurar objetivos LIO en la wiki de LIO. [29]

Distribuciones de Linux

Targetcli y LIO están incluidos en la mayoría de las distribuciones Linux de forma predeterminada. A continuación, se incluye una descripción general de las más populares, junto con las fechas de inclusión iniciales:

Véase también

Notas

  1. ^ La versión de distribución donde se incluyó LIO por primera vez.
  2. ^ RHEL 6 incluía LIO, pero era el valor predeterminado solo para objetivos FCoE, mientras que STGT se usaba para iSCSI. En la versión beta de RHEL 7, LIO es el valor predeterminado para FCoE, iSCSI y para Mellanox InfiniBand iSER/SRP. [31]

Referencias

  1. ^ Target. 323328-001. linux-iscsi.org. 2012-10-23 . Consultado el 2012-12-25 .
  2. ^ RFC 7144 - Requisitos e implicaciones de la interfaz de sistemas informáticos pequeños de Internet (iSCSI) para el centro de datos (abril de 2014)
  3. ^ RFC 7144 - Requisitos e implicaciones de la interfaz de sistemas informáticos pequeños de Internet (iSCSI) para el centro de datos (abril de 2014)
  4. ^ "Una historia de dos objetivos SCSI". Lwn.net. Archivado desde el original el 2 de febrero de 2014. Consultado el 20 de enero de 2014.
  5. ^ Linus Torvalds (14 de enero de 2011). "Fusión trivial". Kernel.org . Consultado el 28 de septiembre de 2019 .
  6. ^ Thorsten Leemhuis (2 de marzo de 2011). "Registro del kernel: disponible en 2.6.38 (Parte 4) - Almacenamiento". Heise en línea.
  7. ^ "Una historia de dos objetivos SCSI". Lwn.net. Archivado desde el original el 2014-02-02 . Consultado el 20 de enero de 2014 .
  8. ^ Haas, Florian (mayo de 2012). "Replicate Everything! Highly Available iSCSI Storage with DRBD and Pacemaker". Linux Journal . Archivado desde el original el 20 de enero de 2014. Consultado el 28 de septiembre de 2019 .
  9. ^ Bolkhovitin, Vladislav (11 de abril de 2018). "SCST vs STGT". Subsistema de destino SCSI genérico para Linux . Consultado el 1 de abril de 2019 .
  10. ^ Comité Técnico T10. "Interfaces de almacenamiento SCSI". t10.org . Consultado el 24 de diciembre de 2012 .{{cite web}}: CS1 maint: numeric names: authors list (link)
  11. ^ Manual de referencia de comandos SCSI (PDF) . 100293068, Rev. C. Scotts Valley: Seagate Technology. Abril de 2010. Archivado desde el original (PDF) el 2012-07-31 . Consultado el 2012-12-25 .
  12. ^ Bellinger, Nicholas (2009). Estado actual y futuro de iSCSI en la plataforma Linux (PDF) . Conferencia de fontaneros de Linux.
  13. ^ Ralph Weber (17 de enero de 2011). "Comandos primarios SCSI - 4 (SPC-4)". t10.org . Consultado el 7 de marzo de 2011 .
  14. ^ Objetivo SCSI de Linux LIO (23 de diciembre de 2012). «VAAI». linux-iscsi.org . Consultado el 25 de diciembre de 2012 .
  15. ^ Jonathan Corbet (24 de agosto de 2005). "Configfs: una introducción". lwn.net . Consultado el 7 de marzo de 2011 .
  16. ^ "Fibre Channel: Backbone - 5 revisión 2.00" (PDF) . Estándar nacional estadounidense para la tecnología de la información Comité internacional de estándares de tecnología de la información Grupo técnico T11. 4 de junio de 2009 . Consultado el 5 de mayo de 2011 .
  17. ^ Linus Torvalds (18 de abril de 2011). «[SCSI] tcm_fc: Adición del proveedor FC_FC4 (tcm_fc) para compatibilidad con destino FCoE (TCM - núcleo de destino)». Kernel.org . Consultado el 28 de septiembre de 2019 .
  18. ^ "Página de inicio de T11". t11.org . Consultado el 25 de diciembre de 2012 .
  19. ^ Linus Torvalds (15 de mayo de 2012). «[SCSI] tcm_qla2xxx: Agregar módulo de estructura de la serie >= 24xx para el núcleo de destino». Kernel.org . Consultado el 28 de septiembre de 2019 .
  20. ^ Linus Torvalds (15 de mayo de 2012). «[SCSI] qla2xxx: Agregar infraestructura de modo de destino LLD para series >= 24xx». Kernel.org . Consultado el 28 de septiembre de 2019 .
  21. ^ ab Thorsten Leemhuis (3 de julio de 2012). "Kernel Log: Próximamente en 3.5 (Parte 2): sistemas de archivos y almacenamiento". Heise en línea . Consultado el 14 de enero de 2013 .
  22. ^ "Cómo utilizar y solucionar problemas del modo de disco de destino FireWire". apple.com . Consultado el 24 de diciembre de 2012 .
  23. ^ Linus Torvalds (15 de abril de 2012). «sbp-target: Fusión inicial de compatibilidad con el modo de destino Firewire/IEEE-1394». Kernel.org . Consultado el 28 de septiembre de 2019 .
  24. ^ Linus Torvalds (27 de julio de 2011). «Fusión iSCSI». Kernel.org . Consultado el 28 de septiembre de 2019 .
  25. ^ RFC  5041
  26. ^ Linus Torvalds (30 de abril de 2013). «Fusionar rama 'for-next-merge'». Kernel.org . Consultado el 28 de septiembre de 2019 .
  27. ^ Linus Torvalds (18 de enero de 2012). «Fusión de InfiniBand y SRP». Kernel.org . Consultado el 28 de septiembre de 2019 .
  28. ^ "Fusionar rama 'usb-target-merge'". Kernel.org . Consultado el 28 de septiembre de 2019 .
  29. ^ ab LIO Linux SCSI Target (2012-12-09). "Targetcli". linux-iscsi.org. Archivado desde el original el 2013-03-02 . Consultado el 2012-12-25 .
  30. ^ Jerome Martin (3 de agosto de 2011). «Paquete rtslib». daterainc.com . Consultado el 25 de diciembre de 2012 .
  31. ^ "Capítulo 6. Almacenamiento". Access.redhat.com . Consultado el 20 de enero de 2014 .

Enlaces externos