Saltar a contenidoSaltar a navegación de páginas: página anterior [tecla acceso p]/página siguiente [tecla acceso n]
Se aplica a SUSE Enterprise Storage 7

6 Instalación de iSCSI Gateway Edit source

iSCSI es un protocolo de red de área de almacenamiento (SAN) que permite a los clientes (denominados iniciadores) enviar comandos SCSI a dispositivos de almacenamiento SCSI (destinos) en servidores remotos. SUSE Enterprise Storage 7 incluye una utilidad que permite gestionar el almacenamiento de Ceph en diversos clientes, como Microsoft Windows* y VMware* vSphere, mediante el protocolo iSCSI. El acceso iSCSI de múltiples rutas aporta disponibilidad y capacidad de ampliación para estos clientes, mientras que el protocolo iSCSI estandarizado también proporciona una capa adicional de aislamiento de seguridad entre los clientes y el clúster de SUSE Enterprise Storage 7. La utilidad de configuración se denomina ceph-iscsi. Mediante ceph-iscsi, los administradores de almacenamiento de Ceph pueden definir volúmenes de provisión ligera, replicados y de alta disponibilidad compatibles con las instantáneas de solo lectura, los clones de lectura y escritura y el cambio de tamaño automático con el dispositivo de bloques RADOS (RBD) de Ceph. Los administradores pueden, a continuación, exportar volúmenes a través de un host de pasarela ceph-iscsi único o a través de varios hosts de pasarela que admitan failover de múltiples rutas. Los hosts de Linux, Microsoft Windows y VMware pueden conectarse a los volúmenes mediante el protocolo iSCSI, por lo que están disponibles igual que cualquier otro dispositivo de bloques SCSI. Esto significa que los clientes de SUSE Enterprise Storage 7 pueden ejecutar de forma eficaz un subsistema completo de infraestructura de almacenamiento de bloques en Ceph que proporcione todas las funciones y ventajas de una SAN convencional, lo que permite el crecimiento en el futuro.

Este capítulo presenta información detallada para configurar una infraestructura de clúster de Ceph junto con una pasarela iSCSI para que los hosts del cliente puedan utilizar los datos almacenados de forma remota como dispositivos de almacenamiento local mediante el protocolo iSCSI.

6.1 Almacenamiento de bloques iSCSI Edit source

iSCSI es una implementación del conjunto de comandos Small Computer System Interface (SCSI, interfaz de sistema informático pequeño) que usa el protocolo de Internet (IP) especificado en la RFC 3720. iSCSI se implementa como un servicio en el que un cliente (iniciador) se comunica con un servidor (destino) a través de una sesión en el puerto TCP 3260. La dirección IP y el puerto de un destino iSCSI se denominan portal iSCSI, y un destino puede quedar expuesto mediante uno o varios portales. La combinación de un destino y uno o más portales se denomina grupo de portal de destino (TPG).

El protocolo de capa de enlace de datos subyacente para iSCSI suele ser Ethernet. Más concretamente, las infraestructuras iSCSI modernas utilizan 10 GigE Ethernet o redes más rápidas para un rendimiento óptimo. Se recomienda encarecidamente usar conectividad 10 Gigabit Ethernet entre iSCSI Gateway y el clúster de procesador final de Ceph.

6.1.1 Destino iSCSI de kernel de Linux Edit source

El destino iSCSI de kernel de Linux se denominaba originalmente LIO para linux-iscsi.org, el dominio y sitio Web originales del proyecto. Durante cierto tiempo, había al menos cuatro implementaciones de destino iSCSI compitiendo para la plataforma Linux, pero, al final, LIO prevaleció como el único destino iSCSI de referencia. El código de kernel de la línea principal de LIO utiliza el sencillo, aunque algo ambiguo, nombre de "destino" y distingue entre "núcleo de destino" y una variedad de módulos de destino de interfaz de usuario y procesador final.

El módulo de interfaz de usuario utilizado con mayor frecuencia es, posiblemente, iSCSI. Sin embargo, LIO también admite Fibre Channel (FC), Fibre Channel over Ethernet (FCoE) y otros protocolos de interfaz de usuario. En este momento, SUSE Enterprise Storage solo admite el protocolo iSCSI.

El módulo de procesador final de destino más utilizado es simplemente, cualquiera capaz de reexportar cualquier dispositivo de bloques disponible en el host de destino. Este módulo se denomina iblock. Sin embargo, LIO también tiene un módulo de procesador final RBD específico que admite el acceso de E/S de múltiples rutas paralelizado a imágenes RBD.

6.1.2 Iniciadores iSCSI Edit source

Esta sección presenta una breve descripción de los iniciadores iSCSI utilizados en plataformas Linux, Microsoft Windows y VMware.

6.1.2.1 Linux Edit source

El iniciador estándar para la plataforma Linux es open-iscsi. open-iscsi lanza un daemon, iscsid, que el usuario puede utilizar para descubrir destinos iSCSI en cualquier portal, entrar en los destinos y asignar volúmenes iSCSI. iscsid se comunica con la capa intermedia SCSI para crear dispositivos de bloques en el kernel que este, a continuación, puede tratar como cualquier otro dispositivo de bloques SCSI del sistema. El iniciador open-iscsi se puede distribuir junto con la utilidad Device Mapper Multipath (dm-multipath) para proporcionar un dispositivo de bloques iSCSI de alta disponibilidad.

6.1.2.2 Microsoft Windows e Hyper-V Edit source

El iniciador de iSCSI por defecto para el sistema operativo Microsoft Windows es el iniciador iSCSI de Microsoft. El servicio iSCSI se puede configurar a través de una interfaz gráfica de usuario (GUI) y es compatible con E/S de múltiples rutas para la alta disponibilidad.

6.1.2.3 VMware Edit source

El iniciador iSCSI por defecto para VMware vSphere y ESX es el iniciador iSCSI de VMware ESX, vmkiscsi. Si está habilitado, puede configurarse desde el cliente de vSphere o a través del comando vmkiscsi-tool. A continuación, puede dar formato a los volúmenes de almacenamiento conectados a través del adaptador de almacenamiento iSCSI de vSphere con VMFS y utilizarlos como cualquier otro dispositivo de almacenamiento de máquina virtual. El iniciador de VMware también es compatible con E/S de múltiples vías para la alta disponibilidad.

6.2 Información general sobre ceph-iscsi Edit source

ceph-iscsi combina las ventajas de los dispositivos de bloques RADOS con la versatilidad extendida de iSCSI. Si se emplea ceph-iscsi en un host de destino iSCSI (conocido como iSCSI Gateway), cualquier aplicación que necesite hacer uso del almacenamiento de bloques puede beneficiarse de Ceph, incluso si no utiliza ningún protocolo de cliente de Ceph. En su lugar, los usuarios pueden utilizar iSCSI o cualquier otro protocolo de interfaz de usuario de destino para conectarse a un destino LIO, que traduce todas las comunicaciones de E/S de destino en operaciones de almacenamiento RBD.

Clúster de Ceph con una sola instancia de iSCSI Gateway
Figura 6.1: Clúster de Ceph con una sola instancia de iSCSI Gateway

Por naturaleza, ceph-iscsi es de alta disponibilidad y admite operaciones de múltiples rutas. Por lo tanto, los hosts de iniciador descendentes pueden utilizar varias instancias de iSCSI Gateway para obtener tanto alta disponibilidad como capacidad de ampliación. Cuando se comunican con una configuración iSCSI con más de un pasarela, los iniciadores pueden equilibrar la carga de las peticiones iSCSI entre varias pasarelas. En caso de fallo de una pasarela, por ejemplo si no se pueda acceder temporalmente o si está inhabilitada por mantenimiento, las comunicaciones de E/S continuarán de forma transparente a través de otra pasarela.

Clúster de Ceph con varias instancias de iSCSI Gateway
Figura 6.2: Clúster de Ceph con varias instancias de iSCSI Gateway

6.3 Elementos a tener en cuenta para la distribución Edit source

Una configuración mínima de SUSE Enterprise Storage 7 con ceph-iscsi consta de los siguientes componentes:

  • Un clúster de almacenamiento de Ceph. El clúster de Ceph está formado por un mínimo de cuatro servidores físicos que alojan al menos ocho daemons de almacenamiento de objetos (OSD) cada uno. En una configuración de este tipo, tres nodos de OSD también funcionan como host de monitor (MON).

  • Un servidor de destino iSCSI con el destino iSCSI LIO en ejecución, configurado mediante ceph-iscsi.

  • Un host de iniciador iSCSI, con open-iscsi (Linux) en ejecución, el iniciador iSCSI de Microsoft (Microsoft Windows) o cualquier otra distribución de iniciador iSCSI compatible.

Una configuración de producción recomendada de SUSE Enterprise Storage 7 con ceph-iscsi consta de:

  • Un clúster de almacenamiento de Ceph. Un clúster de producción de Ceph formado por cualquier número de nodos de OSD (normalmente más de 10), que por lo general ejecutan de 10 a 12 daemons de almacenamiento de objetos (OSD) cada uno, con no menos de tres hosts MON dedicados.

  • Varios servidores de destino iSCSI en los que se ejecuta el destino iSCSI LIO, configurado mediante ceph-iscsi. Para el failover y el equilibrio de carga iSCSI, estos servidores deben ejecutar un kernel que admita el módulo target_core_rbd. Hay disponibles paquetes de actualización en el canal de mantenimiento de SUSE Linux Enterprise Server.

  • Cualquier número de hosts de iniciador iSCSI, con open-iscsi (Linux) en ejecución, el iniciador iSCSI de Microsoft (Microsoft Windows) o cualquier otra implementación de iniciador iSCSI compatible.

6.4 Instalación y configuración Edit source

En esta sección se describen los pasos necesarios para instalar y configurar una instancia de iSCSI Gateway en SUSE Enterprise Storage.

6.4.1 Distribución de iSCSI Gateway en un clúster de Ceph Edit source

La distribución de Ceph iSCSI Gateway sigue el mismo procedimiento que la distribución de otros servicios de Ceph mediante cephadm. Para obtener más información, consulte la Sección 5.4.3.5, “Distribución de pasarelas iSCSI Gateway”.

6.4.2 Creación de imágenes RBD Edit source

Las imágenes RBD se crean en el almacén de Ceph y, posteriormente, se exportan a iSCSI. Se recomienda utilizar un repositorio RADOS dedicado para este propósito. Es posible crear un volumen desde cualquier host que sea posible conectar al clúster de almacenamiento mediante la utilidad de línea de comandos rbd de Ceph. Esto requiere que el cliente tenga al menos un archivo de configuración ceph.conf mínimo y credenciales de autenticación adecuadas para CephX.

Para crear un volumen nuevo y exportarlo posteriormente a través de iSCSI, use el comando rbd create especificando el tamaño del volumen en megabytes. Por ejemplo, para crear un volumen de 100 GB denominado testvol en el repositorio denominado iscsi-images ejecute:

cephuser@adm > rbd --pool iscsi-images create --size=102400 testvol

6.4.3 Exportación de imágenes RBD a través de iSCSI Edit source

Para exportar imágenes RBD mediante iSCSI, puede utilizar la interfaz Web de Ceph Dashboard o la utilidad de línea de comandos de pasarela ceph-iscsi. En esta sección nos centraremos solo en esta utilidad y se mostrará cómo crear un destino iSCSI que exporte una imagen RBD mediante la línea de comandos.

Nota
Nota

Las imágenes RBD con las siguientes propiedades no se pueden exportar mediante iSCSI:

  • Imágenes con el registro transaccional habilitado.

  • Imágenes con una unidad de franja de menos de 4096 bytes

Como usuario root, introduzca el contenedor de iSCSI Gateway:

root # cephadm enter --name CONTAINER_NAME

Como usuario root, inicie la interfaz de línea de comandos de iSCSI Gateway:

root # gwcli

Diríjase a iscsi-targets y cree un destino con el nombre iqn.2003-01.org.linux-iscsi.iscsi.ARQUITECTURA-SISTEMA:testvol:

gwcli >  /> cd /iscsi-targets
gwcli >  /iscsi-targets> create iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol

Cree las pasarelas iSCSI especificando el nombre y la dirección IP de la pasarela:

gwcli >  /iscsi-targets> cd iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/gateways
gwcli >  /iscsi-target...tvol/gateways> create iscsi1 192.168.124.104
gwcli >  /iscsi-target...tvol/gateways> create iscsi2 192.168.124.105
Sugerencia
Sugerencia

Utilice el comando help para mostrar la lista de comandos disponibles en el nodo de configuración actual.

Añada la imagen RBD con el nombre testvol en el repositorio iscsi-images:

gwcli >  /iscsi-target...tvol/gateways> cd /disks
gwcli >  /disks> attach iscsi-images/testvol

Asigne la imagen RBD al destino:

gwcli >  /disks> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/disks
gwcli >  /iscsi-target...testvol/disks> add iscsi-images/testvol
Nota
Nota

Puede utilizar herramientas de nivel inferior, como targetcli, para consultar la configuración local, pero no para modificarla.

Sugerencia
Sugerencia

Puede utilizar el comando ls para revisar la configuración. Algunos nodos de configuración también admiten el comando info, que se puede utilizar para mostrar información más detallada.

Tenga en cuenta que, por defecto, la autenticación de ACL está habilitada para que no se pueda acceder aún a este destino. Consulte la Sección 6.4.4, “Autenticación y control de acceso” para obtener más información sobre la autenticación y el control de acceso.

6.4.4 Autenticación y control de acceso Edit source

La autenticación iSCSI es flexible y cubre muchas posibilidades de autenticación.

6.4.4.1 Inhabilitación de la autenticación de ACL Edit source

Sin autenticación significa que cualquier iniciador podrá acceder a cualquier LUN en el destino correspondiente. Para habilitar Sin autenticación, inhabilite la autenticación de ACL:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts
gwcli >  /iscsi-target...testvol/hosts> auth disable_acl

6.4.4.2 Uso de la autenticación de ACL Edit source

Si se utiliza la autenticación de ACL basada en el nombre del iniciador, solo se permite que se conecten los iniciadores definidos. Para definir un iniciador, haga lo siguiente:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts
gwcli >  /iscsi-target...testvol/hosts> create iqn.1996-04.de.suse:01:e6ca28cc9f20

Los iniciadores definidos podrán conectarse, pero solo tendrán acceso a las imágenes RBD que se hayan añadido explícitamente al iniciador:

gwcli >  /iscsi-target...:e6ca28cc9f20> disk add rbd/testvol

6.4.4.3 Habilitación de la autenticación CHAP Edit source

Además de ACL, puede habilitar la autenticación CHAP especificando un nombre de usuario y una contraseña para cada iniciador:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts/iqn.1996-04.de.suse:01:e6ca28cc9f20
gwcli >  /iscsi-target...:e6ca28cc9f20> auth username=common12 password=pass12345678
Nota
Nota

Los nombres de usuario deben tener entre 8 a 64 caracteres y pueden incluir caracteres alfanuméricos, ., @, -, _ o bien :.

Las contraseñas deben tener entre 12 y 16 caracteres y pueden incluir caracteres alfanuméricos, @, -, _ o /.

Opcionalmente, también puede habilitar la autenticación CHAP mutua especificando los parámetros mutual_username y mutual_password en el comando auth.

6.4.4.4 Configuración de la autenticación de descubrimiento y mutua Edit source

la autenticación de descubrimiento es independiente de los métodos de autenticación anteriores. Requiere credenciales para la navegación, es opcional y se puede configurar mediante:

gwcli >  /> cd /iscsi-targets
gwcli >  /iscsi-targets> discovery_auth username=du123456 password=dp1234567890
Nota
Nota

Los nombres de usuario deben tener una longitud de entre 8 a 64 caracteres y solo pueden incluir letras, ., @, -, _ o bien :.

Las contraseñas deben tener entre 12 y 16 caracteres y solo pueden incluir letras, @, -, _ o /.

Opcionalmente, también puede especificar los parámetros mutual_username y mutual_password en el comando discovery_auth.

La autenticación de descubrimiento se puede inhabilitar mediante el siguiente comando:

gwcli >  /iscsi-targets> discovery_auth nochap

6.4.5 Configuración avanzada Edit source

ceph-iscsi puede configurarse con parámetros avanzados que posteriormente se pasan al destino de E/S LIO. Los parámetros se dividen en parámetros de destino y de disco.

Aviso
Aviso

A no ser que se indique lo contrario, no se recomienda cambiar los valores por defecto de estos parámetros.

6.4.5.1 Visualización de los ajustes de destino Edit source

Puede ver el valor de estos ajustes mediante el comando info:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol
gwcli >  /iscsi-target...i.SYSTEM-ARCH:testvol> info

Y para cambiar un valor se usa el comando reconfigure:

gwcli >  /iscsi-target...i.SYSTEM-ARCH:testvol> reconfigure login_timeout 20

Los ajustes de destino disponibles son:

default_cmdsn_depth

Profundidad de CmdSN (número de secuencia de comando) por defecto. Limita la cantidad de peticiones que un iniciador iSCSI puede tener pendientes en cualquier momento.

default_erl

Nivel de recuperación de error por defecto.

login_timeout

Valor de tiempo límite de entrada a la sesión en segundos.

netif_timeout

Tiempo límite de fallo de NIC en segundos.

prod_mode_write_protect

Si se establece en 1, se impide que se pueda escribir en los LUN.

6.4.5.2 Visualización de los ajustes de disco Edit source

Puede ver el valor de estos ajustes mediante el comando info:

gwcli >  /> cd /disks/rbd/testvol
gwcli >  /disks/rbd/testvol> info

Y para cambiar un valor se usa el comando reconfigure:

gwcli >  /disks/rbd/testvol> reconfigure rbd/testvol emulate_pr 0

Los ajustes de disco disponibles son:

block_size

Tamaño de bloque del dispositivo subyacente.

emulate_3pc

Si se establece en 1, se habilita la opción Third Party Copy (Copia por parte de terceros).

emulate_caw

Si se establece en 1, se habilita la opción Compare and Write (Comparar y escribir).

emulate_dpo

Si se establece en 1, se activa la opción Disable Page Out (Inhabilitar página saliente).

emulate_fua_read

Si se establece en 1, se habilita la lectura de Force Unit Access (Forzar acceso a la unidad).

emulate_fua_write

Si se establece en 1, se habilita la escritura de Force Unit Access (Forzar acceso a la unidad).

emulate_model_alias

Si se establece en 1, se utiliza el nombre del dispositivo de procesador final para el alias del modelo.

emulate_pr

Si se define en 0, se inhabilita la compatibilidad con las reservas SCSI, incluidas las reservas de grupo persistente. Mientras está inhabilitada, la pasarela iSCSI Gateway de SES puede ignorar el estado de la reserva, lo que mejora la latencia de las peticiones.

Sugerencia
Sugerencia

Se recomienda definir en backstore_emulate_pr el valor 0 si los iniciadores iSCSI no requieren compatibilidad con la reserva SCSI.

emulate_rest_reord

Si se establece en 0, la opción Queue Algorithm Modifier (Modificador de algoritmo de cola) tiene restringido el cambio de orden.

emulate_tas

Si se establece en 1, se habilita la opción Task Aborted Status (Estado cancelado de tarea).

emulate_tpu

Si se establece en 1, se habilita la opción Thin Provisioning Unmap (Anular asignación de provisión ligera).

emulate_tpws

Si se establece en 1, se habilita la opción Thin Provisioning Write Same (Misma escritura en provisión ligera).

emulate_ua_intlck_ctrl

Si se establece en 1, se habilita la opción Unit Attention Interlock (Interbloqueo de atención en la unidad).

emulate_write_cache

Si se establece en 1, se activa la opción Write Cache Enable (Habilitar caché de escritura).

enforce_pr_isids

Si se establece en 1, se fuerzan los ISID de reserva persistente.

is_nonrot

Si se establece en 1, el almacén de respaldo es un dispositivo sin rotación.

max_unmap_block_desc_count

Número máximo de descriptores de bloque para UNMAP.

max_unmap_lba_count:

Número máximo de LBA para UNMAP.

max_write_same_len

Longitud máxima de WRITE_SAME.

optimal_sectors

Tamaño de la petición óptima en sectores.

pi_prot_type

Tipo de garantía de DIF.

queue_depth

Profundidad de la cola.

unmap_granularity

Granularidad de UNMAP.

unmap_granularity_alignment

Alineación de la granularidad de UNMAP.

force_pr_aptpl

Si está habilitado, LIO siempre escribirá el estado reserva persistente en el almacenamiento persistente, independientemente de si el cliente lo ha pedido a través de aptpl=1. Esto no tiene ningún efecto en el back-end RBD del kernel para LIO, ya que siempre persiste el estado PR. En circunstancias ideales, la opción target_core_rbd debería aplicar el valor "1" y producir un error si alguien intenta inhabilitarlo a través de la configuración.

unmap_zeroes_data

Afecta a si LIO anunciará LBPRZ a los iniciadores SCSI, lo que indica que los ceros se leerán desde una región después de UNMAP o WRITE SAME con un bit de desasignación.

6.5 Exportación de imágenes del dispositivo de bloques RADOS mediante tcmu-runner Edit source

ceph-iscsi admite los almacenes rbd (basado en el kernel) y user:rbd (tcmu-runner), lo que hace que toda la gestión sea transparente e independiente del almacén.

Aviso
Aviso: tecnología en fase preliminar

Las distribuciones de iSCSI Gateway basadas en tcmu-runner son actualmente una tecnología en fase preliminar.

A diferencia de las distribuciones de iSCSI Gateway basadas en kernel, las basadas en tcmu-runner no ofrecen compatibilidad con E/S de múltiples rutas ni con las reservas persistentes SCSI.

Para exportar una imagen de dispositivo de bloque RADOS mediante tcmu-runner, todo lo que necesita hacer es especificar el almacén user:rbd al conectar el disco:

gwcli >  /disks> attach rbd/testvol backstore=user:rbd
Nota
Nota

Si utiliza tcmu-runner, la imagen RBD exportada debe tener habilitada la función exclusive-lock.

Imprimir esta página