6

Click here to load reader

ISCSI

Embed Size (px)

Citation preview

Page 1: ISCSI

Storage Networking y el almacenamiento sobre internet: iSCSI

1

Storage Networking y el almacenamiento sobre internet: iSCSI

Francisco Matas Albaladejo

Storage Networking y el almacenamiento sobre internet: iSCSI

2

1 - Introducción 2 - Storage Networking 2.1 -Var iantes del Storage Networking 2.1.1 - DAS: Direct Attached Storage 2.1.2 - SAN: Storage Area Networks 2.1.3 - NAS: Network Attached Storage 2.1.4 - NAS Gateways 2.1.5 – SANergy 3 – El protocolo iSCSI

3.1 - SCSI 3.2 - ISCSI 3.3 - Arquitectura de red iSCSI 3.4 - Modelo del protocolo iSCSI 3.5 – Direcciones y nombres iSCSI 3.6 - Mantenimiento de sesiones 3.7 – Manejo de errores 3.8 - Segur idad en iSCSI

4 - Conclusiones 5 - Bibliografía

Page 2: ISCSI

Storage Networking y el almacenamiento sobre internet: iSCSI

3

1 - Introducción

El almacenamiento es una parte esencial de la infraestructura de cualquier empresa, en una red con aplicaciones cliente/servidor y otras aplicaciones especificas la mayor parte del tiempo que los servidores no funcionan es debido a problemas con el almacenamiento, las pérdidas de productividad debido a problemas relacionados con el almacenamiento son el problema número 1.

Para solucionar estos problemas aparecieron las redes de almacenamiento y diversos protocolos de transporte de comandos de entrada/salida para permitir el intercambio eficiente de información. Este documento intentará dar una visión general de lo que se entiende por una red de almacenamiento y se hablará con un poco más de detalle del protocolo iSCSI, que es el que se espera que acabe imponiéndose en el mercado. 2 - Storage Networking

Storage Networking es una tecnología emergente del trabajo realizado en el entorno de computación de alto rendimiento llamado “High Performance Data System” por el IEEE, y fue originalmente desarrollada para obtener una red de altas prestaciones para la transferencia de datos. Con Storage Networking se establece una red dedicada de alto rendimiento para conectar directamente los dispositivos de almacenamiento, lo que permite a los archivos

Storage Networking y el almacenamiento sobre internet: iSCSI

4

y datos ser directamente transferidos entre dispositivos de almacenamiento y maquinas cliente, saltándose el tradicional cuello de botella del servidor y el control de la red. Al separarse control y datos se incrementa la flexibili dad y el rendimiento. Los procesos de gestión del almacenamiento pueden operar en segundo plano y continuamente, sin entrar en conflicto con el tráfico de la red, y el rendimiento de esta se mantiene e incluso aumenta.

2.1 - Variantes del Storage Networking Las distintas variantes de redes de almacenamiento son las siguientes: 2.1.1 - DAS: Direct Attached Storage

El almacenamiento (normalmente discos o cintas), está directamente conectado

con un cable al ordenador, un único dispositivo de almacenamiento es conectado a un único ordenador (host) o a veces a dos hosts en un pequeño cluster. Para un procesador

Page 3: ISCSI

Storage Networking y el almacenamiento sobre internet: iSCSI

5

aislado como un pc de sobremesa , un portátil , o el servidor de una empresa pequeña, el almacenamiento normalmente reside dentro del propio ordenador como una forma simple de DAS. Las peticiones de entrada/salida (también llamadas protocolos o comandos) acceden a los dispositivos directamente. 2.1.2 - SAN: Storage Area Networks

El almacenamiento reside en una red dedicada para los dispositivos de almacenamiento y los procesadores que acceden a estos dispositivos. Como en un DAS las peticiones de entrada/salida acceden a los dispositivos directamente.

Las peticiones de entrada/salida en una SAN se llaman “block I/Os” , porque como en discos conectados directamente a los ordenadores, los comandos de entrada/salida de lectura y escritura identifican un dispositivo específico (unidad de disco o de cinta), y en el caso de disco especifica un bloque (sector) del disco.

El concepto de SAN no depende de la red que haya por debajo, actualmente la mayoría de SANs utili zan Fibre Channel como medio para conseguir una conexión cualquiera-a-cualquiera para procesadores y almacenamiento en esta red, pero Ethernet y el protocolo de entrada/salida iSCSI (que será descrito más adelante) están rápidamente ganando terreno a partir de 2001 debido al aumento de prestaciones de Ethernet con la aparición de Gigabite Ethernet.

Se espera que iSCSI y Ethernet acaben eclipsando totalmente a Fibre Channel,. La máxima velocidad alcanzable actualmente por la capa física Fibre Channel es de 2.5 Gbps, y el grupo de trabajo IEEE 802.3ae ya está hablando de 100 Gbps para Ethernet. Además Ethernet es más barato y más simple, el único inconveniente que tiene está en el lado del “software” y es que de momento el protocolo iSCSI sobre Ethernet tiene un rendimiento menor que SCSI sobre Fibre Channel, pero se espera que mejore con

Storage Networking y el almacenamiento sobre internet: iSCSI

6

tiempo y experiencia, lo que hace razonable pensar que en muy poco tiempo Ethernet desplazará a Fibre Channel. 2.1.3 - NAS: Network Attached Storage

Un NAS es un dispositivo que reside en una red que puede ser compartida con tráfico que no sea de almacenamiento. La red suele ser Ethernet, pero podría ser cualquier otra que soportase los protocolos basados en IP que un NAS usa.

En contraste con “block I/O” usado por DAS y SAN, las peticiones I/O de NAS son llamadas “ file I/Os” . Una “file I/O” es una petición de un tipo de nivel más alto, en esencia, especifica el archivo a ser accedido, un desplazamiento dentro de ese archivo y un número de bytes a leer o escribir a partir de ese desplazamiento. Dentro del NAS un sistema operativo sabrá dónde esta cada archivo en disco y traducirá esta petición “ file I/O” a una petición “block I/O” que la satisfaga.

Un NAS nunca puede ser conectado directamente a un ordenador, siempre se hace mediante una red.

Un NAS es normalmente más facil de instalar y mantener que un SAN, normalmente se pueden poner en una LAN/WAN ya existente muy fácilmente mientras que un SAN conlleva un trabajo de planificación muy importante, aunque normalmente son más rápidos. 2.1.4 - NAS Gateways

Page 4: ISCSI

Storage Networking y el almacenamiento sobre internet: iSCSI

7

Un NAS Gateway da la funcionalidad de un NAS convencional, pero sin almacenamiento integrado. El almacenamiento en disco está unido externamente al gateway y acepta peticiones “ file I/O” usando el protocolo NFS o CIFS y las traduce a peticiones SCSI “block I/O” para acceder a los discos conectados externamente. 2.1.5 – SANergy

SANergy es un software de IBM y Tivoli que proporciona compartir archivos como con NAS, pero ahora los datos son enviados sobre la SAN en lugar de la LAN para aumentar el rendimiento. Soporta los protocolos que un NAS convencional soporta pero con mayor rendimiento al no requerir un procesador dedicado NAS que haga de front-end al almacenamiento en disco. 3. - El protocolo iSCSI 3.1 – SCSI

Para describir iSCSI primero hay que ver en qué consiste SCSI. El Small Computer Systems Interface (SCSI) es una popular familia de protocolos para comunicaciones con dispositivos de entrada/salida, especialmente dispositivos de almacenamiento. Hay dos tipos de dispositivos en el protocolo SCSI, los SCSI Initiators (iniciadores, clientes) que son los que inician la comunicación y los Target (servidores, objetivos), que son los que responden. Un objetivo es una colección de unidades lógicas (LU), normalmente del mismo tipo y directamente direccionables. Un LU es lo que ejecuta un comando. La estructura usada para comunicar un comando desde una aplicación cliente a un servidor de dispositivos es llamado Command Descriptor Block (CDB). Un comando SCSI o una unión de varios es denominado “ task” . La ejecución de comandos SCSI se realiza en dos fases, la fase de datos en la que los datos viajan de un initiator a un target cuando se trata de un comando WRITE o de un target a un initiator como sucede en el comando READ, y la fase de estado, donde el target devuelve el estado final de la operación. La respuesta de estado termina un comando SCSI o tarea.

Storage Networking y el almacenamiento sobre internet: iSCSI

8

3.2 – iSCSI

El protocolo iSCSI es un Internet draft standard definido para permitir que los comandos SCSI sean transportados sobre el protocolo TCP/IP . Los Internet drafts son documentos desarrollados por el Internet Engineering Task Force (IETF) junto con grupos de trabajo. Cisco e IBM desarrollaron un draft standard para iSCSI en enero de 2000 para su estandarización, que quedó bien definido al final de 2001. Se espera que dentro de un año (2003) se convierta en un RFC.

ISCSI permite a los hosts realizar operaciones de entrada/salida de bloques de datos con una gran variedad de dispositivos. Los dispositivos target pueden tener dispositivos de disco, cinta, dispositivos ópticos de almacenamiento, escaners, impresoras ... La conexión del SCSI tradicional con un host se hace con cableado paralelo, que tiene limitaciones en cuanto a la distancia y los dispositivos soportados. Las redes de almacenamiento sobre IP basadas en capas de transporte gigabit solucionan los problemas de distancia, rendimiento y escalabili dad de las implementaciones de SCSI paralelo. 3.3 – Arquitectura de red iSCSI

La arquitectura SCSI está basada en un modelo cliente/servidor e iSCSI tiene esto en cuenta para conseguir la funcionalidad del almacenamiento sobre redes TCP/IP . El cliente es normalmente un host como un servidor de ficheros que hace peticiones de lectura o escritura de datos. El servidor es un dispositivo como un array de discos que responde las peticiones de los clientes. Los servidores tienen unidades lógicas (LUNs) que procesan las peticiones de los iniciadores o clientes. Los comandos procesados por una unidad lógica están contenidos en un Command Descriptor Block (CDB), que es creado por un host. El CBD enviado a una unidad lógica determinada comienza la transferencia de los bloques pedidos del objetivo al iniciador, con un estado que indicará la terminación de la petición. La principal misión de iSCSI es encapsular y distribuir las transacciones CDB entre iniciadores y objetivos sobre redes TCP/IP. En la figura 1 se puede ver una red iSCSI de almacenamiento IP compuesta por iniciadores (servidores de ficheros) y objetivos (arrays de discos).

Page 5: ISCSI

Storage Networking y el almacenamiento sobre internet: iSCSI

9

Cada host y cada dispositivo de almacenamiento tiene un interfaz Gigabit Ethernet y soporta la pila del protocolo iSCSI, esto hace que los medios de almacenamiento aparezcan en la red como cualquier otro dispositivo IP. Para que los iniciadores puedan descubrir los recursos de almacenamiento se utili za el protocolo Internet Storage Name Service (iSNS), en el ejemplo un iniciador iSCSI pregunta a un servidor iSNS las ips de los posibles objetivos y luego establece conexiones TCP/IP con ellos. 3.4 Modelo del protocolo iSCSI

La capa iSCSI hace de interface con el conjunto de instrucciones SCSI del sistema operativo. La capa iSCSI incluye comandos SCSI encapsulados y capacidad de informar sobre los datos y el estado. Cuando el sistema operativo o una aplicación requiere una operación el CDB SCSI debe ser encapsulado para su transporte sobre un enlace serie gigabit y llevado al destino u objetivo. El protocolo iSCSI monitorizará la trasferencia del bloque de datos y validará la consecución de la operación de entrada/salida. Entre un iniciador y un objetivo puede haber muchas conexiones TCP concurrentes y por tanto varias transacciones entre ellos.

¿Cómo funciona iSCSI?

El driver SCSI construye un CDB con las peticiones realizadas por la aplicación y los envía a la capa de transporte iSCSI. El driver SCSI también recibe CDBs de la capa iSCSI y envia los datos a la capa de aplicación. La capa de transporte iSCSI encapsula los CDBs en PDUs (iSCSI Protocol Data Unit) y los envía a la capa de transporte TCP.

En una lectura la capa iSCSI extrae los CDBs de los PDUs que recibe de la capa TCP y envía los CDBs a la capa genérica SCSI. 3.5 - Direcciones y nombres iSCSI

iSCSI proporciona a Initiators y Targets un identificador o nombre único y además tiene un método para encontrarse entre ellos.

Storage Networking y el almacenamiento sobre internet: iSCSI

10

Igual que SCSI, iSCSI implementa un modelo cliente/servidor entre iniciadores y objetivos, que en este caso son miembros de una red IP. Clientes y servidores tienen una identidad en la red que es equivalente a la dirección IP que tienen asignada. Una identidad de red puede contener uno o más nodos iSCSI.

Un nodo iSCSI identifica a un dispositivo SCSI dentro de una entidad de red

accesible a través de la red. Un portal de red es la combinación de las direcciones de red asignadas a los nodos y sus puertos TCP. Cada nodo iSCSI es identificado por un único nombre iSCSI que puede ser de hasta 255 bytes. La combinación de una dirección IP y un puerto TCP se genera una dirección única de red para un dispositivo iSCSI. Un nodo tiene por tanto un nombre iSCSI y una dirección, lo que hace que si el nodo es cambiado de lugar y por tanto también su dirección, sea fácil encontrarlo gracias a su nombre que no cambia. La asignación de nombres se hace por software y por tanto es independiente del hardware usado. El nombre iSCSI está compuesto por tres partes: un especificador de tipo, la autoridad encargada de dar los nombres y un identificador único dado por esta autoridad. Además de los nombres, iSCSI tiene la opción de hacer alias de nombres. Los nombres y alias iSCSI siguen la codificación de texto UTF-8, que les permite incluir caracteres internacionales además de ASCII. Un ejemplo de nombre iSCSI podría ser iscsi.com.acme.sn.8675309.

Descubrir la localización usando nombres iSCSI puede hacerse usando iSNS u otros localizadores. 3.6 – Mantenimiento de sesiones iSCSI

El protocolo iSCSI establece sesiones de comunicación entre initiators y targets, así como métodos para que se autentifiquen entre ellos. Una sesión iSCSI puede contener una o más conexiones TCP y suministra métodos de recuperación si la conexión falla.

Una sesión entre dos entidades iSCSI debe ser iniciada a través de un proceso de login en el que se negocian varios parámetros varibles entre ellos. Si el login es rechazado la conexión TCP se rompe. Una entidad de red puede tener más de un portal de red, además de poder contener también varios nodos iSCSI. A cada sesión iniciada entre dos nodos se le da un identificador ID. Un login de un iniciador sobre un objetivo incluiría su nombre iSCSI y un identificador ID de la sesión del iniciador (ISID), cuya combinación dará una identificación única en su entidad de red. Cuando el login se completa, la sesión iSCSI

Page 6: ISCSI

Storage Networking y el almacenamiento sobre internet: iSCSI

11

deja la fase de login y entra en una fase de posibili dades completas para transacciones SCSI normales. Los comandos y las respuestas fluirán por la conexión TCP. Una operación iSCSI es un intercambio de comandos y respuestas entre iniciador y objetivo. Para enviar comandos CDB se usan PDUs (iSCSI Protocol Data Units). El estado del transporte de datos SCSI es monitoriz ado por secuencias de estado y datos y el tamaño de los campos buffer offset/tamaño de la trasnferencia en el PDU. Las sesiones iSCSI permanecen abiertas esperando comandos SCSI adicionales de las capas más altas de aplicación. El comando de logout de iSCSI suministra los codigos de terminación de sesión o conexiones dentro de una sesión, pudiéndose usar los CID para especificar qué conexión terminar. 3.7 – Manejo de errores en iSCSI El SCSI tradicional asume un entorno relativamente libre de errores. En iSCSI iniciadores y objetivos deben tener la capacidad de mantener un buffer con comandos y respuestas hasta que estos sean reconocidos, indicando que han sido recibidos y pueden aceptar más. Además los dispositivos iSCSI deben ser capaces de selectivamente reconstruir los PDUs perdidos o corruptos para su retransmisión.. La jerarquía de detección de errores y recuperación incluye, en el nivel más bajo, detección y recuperación dentro de una tarea SCSI, y la retransmisión de los PDUs perdidos o corruptos. En la siguiente capa la conexión TCP que transporta la tarea puede sufrir un error o fallo, en este caso se recuperará la conexión mediante un comando de reinicio. Un PDU individual puede tener errores en algún campo o puede que sea inconsistente o le falte algo, a esto se le llama error de formato y genera una respuesta Reject iSCSI PDU, que contendrá un indicador de desplazamiento hasta el primer byte erróneo de la cabecera PDU. El comando para pedir la retransmisión de los PDUs perdidos es el SNACK PDU. 3.8 - Segur idad en iSCSI Al estar en un entorno IP, las especificaciones de iSCSI permiten usar los métodos de seguridad usados en IP. 4.- Conclusiones

Con el aumento de prestaciones de Ethernet, el protocolo iSCSI y los SANs basados en Ethernet se acabarán imponiendo porque iSCSi nos permite acceso universal a dispositivos de almacenamiento o a SANs sobre redes TCP/IP basadas en Ethernet, siendo compatible con las infraestructuras Ethernet IP ya existentes, y nos permite mantener las ventajas de las redes IP en cuanto a mantenimiento, escalabili dad, seguridad y coste.

5. - Bibliografía 1. White Paper - Storage Networking http://www.networkbuyersguide.com/search/105112.htm

Storage Networking y el almacenamiento sobre internet: iSCSI

12

2. Demystifying DAS, SAN, NAS, NAS Gateways, Fibre Channel, and iSCSI. (IBM) 3. iSCSI Technical White Paper.(NISHAN SYSTEMS) 4. iSCSI Protocol Concepts and Implementation.(CISCO SYSTEMS) Los 3 documentos anteriores se pueden encontrar en formato pdf en la web http://www.diskdrive.com 5. InfoStor Magazine - Storage Device News and Trends http://is.pennnet.com/Articles/Article_Display.cfm?Section=Archives&Subsection=Display&ARTICLE_ID=101411 6. Internet Draft draft-ietf-ips-iSCSI-12.txt http://www.ietf.org/