Guía A4 – Configuración del servicio iSCSI en el datastore ds01
I. Descripción del escenario de la guía.
II. Solución al desafío del escenario de la guía.
1. Pasos para crear un recurso compartido por iSCSI
Paso 1 - Ingresar a configurar los parámetros del servicio iSCSI
Paso 2 – Configurar las opciones del Servidor
Paso 3. Creación de los usuarios CHAP en lado de servidor iSCSI
Paso 5 – Definir las reglas de acceso para los iniciadores
Paso 6 – Crear target y asociar ID de portal e ID de usuario CHAP
Paso 7 – Crear medio a compartir
Paso 8 – Asignar los LUN en los Target
Paso 9 – Iniciar servicio iSCSI
2. Pasos para probar la conectividad del servidor iSCSI
Paso 1 Probar que exista comunicación entre los dos equipos.
Paso 2 Verificar que el servicio iSCSI esté ejecutándose en el target
Paso 3 Comprobar el socket de escucha del portal miPortal01
Paso 4 Crear un MV en VirtualBox y utilizar su el cliente iSCSI
Configurar el protocolo iSCSI en el servidor FreeNAS de manera que se tengan un portal con tres target y cada target ofrece un LUN de 8 GiB, utilizando la autenticación CHAP de un solo sentido.
Para esta práctica se utilizará el siguiente software.
· Un equipo con FreeNAS instalado con 8 GB de memoria RAM como mínimo, un lagg (De preferencia), y redundancia en el almacenamiento (De preferencia)
· Dos volúmes tipo zvol de 8 GiB como mínimo.
· VirtualBox en su versión más reciente, si no se cuenta con el equipo físico
· Conexión a Internet.
La EMPRESA Y ha contratado los servicios profesionales de vuestro equipo para realizar las siguientes tareas:
· Instalar y configurar el servicio iSCSI con FreeNAS.
· Publicar dos portales: mi Portal01 y miPortal02
· Para miPortal01 se publicarán dos target
o miDestino01 estará asociado al volumen miZvol01 (8GiB)
o miDestino02 estará asociado al volumen miZvol01 (8GiB)
· Para usar la función “discover”, se creará el usuario CHAP: usuchapdis/123456123456
· Para crear políticas de seguridad de acceso se crearán las siguientes condiciones:
o El datasore ds01 solo estará en escucha en la dirección 192.168.50+Y.2
o Un usuario CHAP “usuchapinuno/123456123456” en modalidad “One Way”, para miDestino01
o Un usuario CHAP “usuchapindos/123456123456” en modalidad “One Way”, para miDestino02
· El portal miPortal02 no tendrá target a publicar por el momento
· Aplicar las especificaciones del cuadro 1 y 2
En la EMPRESA Y se tienen las siguientes condiciones:
· Una red LAN de alta velocidad (1 GBps) para la la red.
· Un equipo físico para el Datastore01 con FreeNAS con las siguientes especificaciones (o una Máquina virtual)
o Dos tarjetas de red de 1 GBps
o Cuatro discos SCSI o SATA de 10 GB y 10K rpm en arreglo RAID 1+0
En la figura 1 se ilustra la implementación del servicio iSCSI, en donde, el target tendrá la capacidad de brindar servicio a dos clientes iSCSI. El iniciador01 será un servidor Windows 2012 R2 y el iniciador02 será un CentOS 7.X
Figura 1 – Representación gráfica del cuadro 1 (elaboración propia)
En la figura 02 y el cuadro 01 se detallan los parámetros de configuración del servicio iSCSI.
Figura No. 2 – identificación IQN e IPv4 de la red SAN (elaboración propia)
1. Datos para el protocolo iSCSI |
||
IQN del servidor iSCSI |
iqn.2018-06.sv.com.empresay:ds01 |
|
IQN del cliente iSCSI 01 |
iqn.2018-06.sv.com.empresay:ini01 |
|
IQN del cliente iSCSI 02 |
iqn.2018-06.sv.com.empresay:ini02 |
|
2. Datos para los portales (en ds01 – FreeNAS) |
||
Nombre |
miPortal01 |
miPortal02 |
Dirección de escucha |
192.168.50+Y.2 |
cualquier dirección IP del ds01 |
Puerto de escucha |
3260 (estándar) |
3261 |
Tipo de descubrimiento |
CHAP |
CHAP |
Usuario para descubrimiento |
usuchapdis |
usuchapdis |
Contraseña usuario |
123456123456 |
123456123456 |
3. Accesos de red para el portal (en ds01 – FreeNAS) |
||
Se permitirá el acceso de |
cualquier iniciador conectado a la red de la SAN |
|
Comentario o Alias: |
Acceso desde cualquier red |
|
4. Datos para la conexión de los usuarios |
||
Nombre de usuario: |
Usuchapinuno |
|
Contraseña: |
123456123456 (palabra entre 12 a 16 caracteres) |
|
Nombre de usuario: |
Usuchapindos |
|
Contraseña: |
123456123456 (palabra entre 12 a 16 caracteres) |
Cuadro 1 – Información para el protocolo iSCSI
Figura 3 – Representación gráfica del cuadro 2 (elaboración propia)
5. Datos para los target publicados en miPortal01 |
||||
Nombre y alias: |
miDestino01 |
miDestino02 |
||
Serial: |
1001 |
1002 |
||
Portal de publicación |
miPortal01 |
miPortal01 |
||
Grupo de iniciadores |
Acceso desde cualquier red |
Acceso desde cualquier red |
||
Método de Autenticación |
CHAP |
CHAP |
||
ID del grupo de autenticación |
1 |
2 |
||
6. Medios a compartir (extender) |
||||
Nombre: |
lun_para_ini01 |
lun_para_ini02 |
||
Tipo de medio: |
Dispositivo |
Dispositivo |
||
Nombre del dispositivo |
miRAID01/miZvol01 |
miRAID01/miZvol02 |
||
Tamaño del PV: |
8 GiB |
8 GiB |
||
Tamaño de bloque: |
512 |
1024 |
||
Comentario: |
Primer zvol 512 |
Segundo zvol 512 |
||
LUN RPM: |
SSD |
SSD |
||
7. Publicación de los LUN (destinos asociados) |
||||
LUN ID |
0 |
1 |
||
Target |
midestino01 |
midestino01 |
||
LUN |
lun_para_ini01 |
lun_para_ini02 |
||
Cuadro 2 – Información de los recursos a publicar
En la siguiente figura se muestra cómo se verán los dos LUN compartidos; ya sea, en un equipo tipo UNIX/LINUX o un Servidor Windows
Figura 4. Representación final de los recursos en los clientes iSCSI en Linux o Windows
El identificador final para cada recurso será:
Aunque los dos LUN podrían ser conectados por ambos iniciadores, miDestino01 será utilizado por el iniciador Microsoft Windows Server 2016 y miDestino02 será utilizado por el iniciador Linux CentOS 7.X
0.1 Verifique que el equipo ds01 tenga configurado un tipo de lagg para la redundancia.
0.2 Verifique que el equipo ds01 tenga un RAID tipo 1+0 o similar, en estado ON-LINE
0.3 Verifique que haya espacio para tres volúmenes, dos de 8 GB y uno de 6 GB
Método 1 |
Método 2 |
Método 3 |
Clic en menú “Servicios” Clic en el icono “tool” de iSCSI |
Expanda Servicios Seleccione iSCSI |
Clic menú “Compartido” Clic opción “Block (iSCSI)” |
· Nombre base: iqn.2018-06.sv.com.empresay:ds01
· Servidor iSNS: Ninguno
· Pool Available Space Threshold (%):
· ID de grupo: 1
· Nombre del usuario chap de ingreso: usuchapinuno
· Contraseña: 123456123456
· Confirmar contraseña: 123456123456
Dar clic en el botón “OK”
· ID de grupo: 2
· Nombre del usuario chap de ingreso: usuchapindos
· Contraseña: 123456123456
· Confirmar contraseña: 123456123456
Dar clic en el botón “OK”
· ID de grupo: 3
· Nombre del usuario chap de ingreso: usuchapdis
· Contraseña: 123456123456
· Confirmar contraseña: 123456123456
· Nombre del portal (Comentarios): miPortal01
· Tipo de autenticación: CHAP
· Grupo de usuarios a conectarse (Descubrir Grupo Autorizador): 3
· Dirección IPv4 de escucha: 0.0.0.0
· Puerto de escucha: 3260
@Nota: En la figura aparece 192.168.50.2, pero para facilitar las pruebas de conexión, definir 0.0.0.0
· Nombre del portal (Comentarios): miPortal02
· Tipo de autenticación: CHAP
· Grupo de usuarios a conectarse (Descubrir Grupo Autorizador): 3
· Dirección IPv4 de escucha: 0.0.0.0
· Puerto de escucha: 3261
· Iniciador: ALL (nombre de la regla)
· Red Autorizada: ALL (IPv4 del iniciador)
· Comentario: "Acceso desde cualquier red"
@Nota: En la vida real se deben definir los iqn de los iniciadores que podrán usar los LUN publicados, y la red para desde dónde podrán establecer, por ejemplo: 192.168.50+Y.0
“Iniciadores ha sido actualizado correctamente”
· Nombre del destino: miDestino01
· Alias del destino: Target para Windows
· ID del Portal del Grupo: 1 (miPortal01) ß Seleccionar
· ID del grupo iniciador: 2 (Acceso desde cualquier red) ß Seleccionar
· Método de Autentificación: CHAP ß Seleccionar (Niguno/ CHAP / CHAP mutuo)
· Número de Autenticación de Grupo: 1
· Nombre del destino: miDestino02
· Alias del destino: Target para Linux
· ID del Portal del Grupo: 1 (miPortal01) ß Seleccionar
· ID del grupo iniciador: 2 (Acceso desde cualquier red) ß Seleccionar
· Método de Autentificación: CHAP ß Seleccionar (Niguno/ CHAP / CHAP mutuo)
· Número de Autenticación de Grupo: 2
· Nombre del medio: lun_para_ini01
· Tipo de medio: Dispositivo
· Dispositivo: Seleccionar à miRaid01/miZvol01 (8.0 GiB)
· Serial: 1001
· Tamaño de bloque lógico: 512
· Disable Physical Block Size Reporting: No
· Comentario: “LUN para datos en iniciador01”
· Enable TPC: Si
· Xen initiator compat mode: No
· LUN RPM: SSD
· Solo lectura: No
· Nombre del medio: lun_para_ini02
· Tipo de medio: Dispositivo
· Dispositivo: Seleccionar à miRaid01/miZvol02 (8.0 GiB)
· Serial: 1002
· Tamaño de bloque lógico: 1024
· Disable Physical Block Size Reporting: No
· Comentario: “LUN para datos en iniciador02”
· Enable TPC: Si
· Xen initiator compat mode: No
· LUN RPM: SSD
· Solo lectura: No
Debido a que esta estos LUN contendrán la información del cliente iSCSI, es necesario ubicar la ruta desde la consola de texto para verificar posibles errores
Digite los siguientes comandos
[root@datastore01] ~# ls /dev/zvol/
./ ../ miRaid01/
[root@datastore01] ~# ls -l /dev/zvol/miRaid01/
total 1
crw-r----- 1 root operator 0x83 Sep 15 23:43 miZvol01
crw-r----- 1 root operator 0x86 Sep 15 23:47 miZvol02
crw-r----- 1 root operator 0x88 Sep 15 23:51 miZvol03
· Destino: mitarget01
· LUN ID: 0
· Medio (Extent): lun_ini01
· Destino: mitarget02
· LUN ID: 0
· Medio (Extent): lun_ini02
El icono color rojo debe cambiar a color verde.
Digitar el siguiente comando en la consola de texto
root@ds01:/etc # service ctld status
ctld is running as pid 26612.
root@ds01:/etc # ctladm devlist
LUN Backend Size(Blocks) BS Serial_Number Device ID
0 block 16777216 512 1001 iSCSI Disk 1001
1 block 8388608 1024 1002 iSCSI Disk 1002
@Nota: Con la opción –v se puede listar el detalle de cada LUN. ctladm devlist -v
Digitar en la consola de texto cualquiera de los siguientes comandos:
[root@ds01] ~# netstat -a -f inet | grep LISTEN
tcp4 0 0 ds01.iscsi-target *.* LISTEN
tcp4 0 0 localhost.8542 *.* LISTEN
tcp4 0 0 localhost.9042 *.* LISTEN
tcp4 0 0 ds01.http *.* LISTEN
tcp4 0 0 *.ssh *.* LISTEN
tcp4 0 0 localhost.8003 *.* LISTEN
tcp4 0 0 localhost.8002 *.* LISTEN
tcp4 0 0 localhost.8001 *.* LISTEN
tcp4 0 0 localhost.x11 *.* LISTEN
[root@ds01] ~# netstat -an -f inet | grep LISTEN
tcp4 0 0 192.168.50.2.3260 *.* LISTEN
tcp4 0 0 127.0.0.1.8542 *.* LISTEN
tcp4 0 0 127.0.0.1.9042 *.* LISTEN
tcp4 0 0 192.168.50.2.80 *.* LISTEN
tcp4 0 0 *.22 *.* LISTEN
tcp4 0 0 127.0.0.1.8003 *.* LISTEN
tcp4 0 0 127.0.0.1.8002 *.* LISTEN
tcp4 0 0 127.0.0.1.8001 *.* LISTEN
tcp4 0 0 127.0.0.1.6000 *.* LISTEN
root@ds01:/etc # cat /etc/ctl.conf
portal-group default {
}
auth-group ag4pg1 {
chap usuchapinuno "123456123456"
}
portal-group pg1 {
tag 0x0001
discovery-filter portal-name
discovery-auth-group ag4pg1
listen 192.168.50.2:3260
option ha_shared on
}
auth-group ag4pg2 {
chap usuchapindos "123456123456"
}
portal-group pg2 {
tag 0x0002
discovery-filter portal-name
discovery-auth-group ag4pg2
listen 192.168.50.2:3261
option ha_shared on
}
lun "lun_ini01" {
ctl-lun 0
path "/dev/zvol/miRaid01/miZvol01"
blocksize 512
serial "1001"
device-id "iSCSI Disk 1001 "
option vendor "FreeNAS"
option product "iSCSI Disk"
option revision "0123"
option naa 0x6589cfc0000006e28d56d8c21a014d28
option insecure_tpc on
option rpm 1
}
lun "lun_ini02" {
ctl-lun 1
path "/dev/zvol/miRaid01/miZvol02"
blocksize 1024
serial "1002"
device-id "iSCSI Disk 1002 "
option vendor "FreeNAS"
option product "iSCSI Disk"
option revision "0123"
option naa 0x6589cfc000000448d46c3dcba9e6634e
option insecure_tpc on
option rpm 1
}
auth-group ag4tg1_1 {
chap usuchapinuno "123456123456"
}
target iqn.2018-03.sv.com.empresay:ds1:mitarget01 {
alias "targetPWin"
portal-group pg1 ag4tg1_1
lun 0 "lun_ini01"
}
auth-group ag4tg2_2 {
chap usuchapindos "123456123456"
}
target iqn.2018-03.sv.com.empresay:ds1:mitarget02 {
alias "targetPLin"
portal-group pg1 ag4tg2_2
lun 0 "lun_ini02"
}
root@ds01:~ # ctladm port -l
Port Online Frontend Name pp vp
0 YES tpc tpc 0 0
1 NO camsim camsim 0 0 naa.500000098562df02
2 YES ioctl ioctl 0 0
3 YES iscsi iscsi 1 1 iqn.2018-06.sv.com.empresay:ds01:midestino01,t,0x0001
4 YES iscsi iscsi 1 2 iqn.2018-06.sv.com.empresay:ds01:midestino02,t,0x0001
En este paso se probará lo siguiente:
· Que el portal esté disponible vía IPv4.
· Que se pueda hacer una conexión iSCSI desde VirtualBox ejecutándose en un equipo Windows 10.
· Que el LUN0 del primer target del portal puede ser reconocido como un disco duro.
Enviar paquetes ICMP desde el datastore01 y el equipo Windows 10 y verificar que no haya problemas de comunicación
[root@datastore01] ~# ping -c 4 192.168.50+Y.155
PING 192.168.50+Y.155 (192.168.50+Y.3): 56 data bytes
64 bytes from 192.168.50+Y.155: icmp_seq=0 ttl=128 time=1.048 ms
64 bytes from 192.168.50+Y.155: icmp_seq=1 ttl=128 time=0.850 ms
64 bytes from 192.168.50+Y.155: icmp_seq=2 ttl=128 time=0.984 ms
64 bytes from 192.168.50+Y.155: icmp_seq=3 ttl=128 time=1.112 ms
[root@datastore01] ~# service ctld status
ctld is running as pid 1819.
Nota: si no estuviera activo: /Panel de la izquierda / Servicios / Control de servicios / iSCSI -> ON
@Nota: Este paso solo es para verificar que se puede reconocer los discos duros, se escogió utilizar VirtualBox, para evitar instalar otro sistema operativo en la prueba. Posteriormente se utilizarán: un equipo con Windows 2016 y otro equipo con CentOS 7.X para conectarse a mitarget01 y mitarget02 respectivamente.
La máquina virtual tendrá las siguientes especificaciones:
· Nombre de la máquina virtual: “prueba-iscsi”
· Puede utilizar cualquier sistema operativo
· No agregar disco duro
· Agregar una tarjeta controladora SATA si el asistente no la hubiera creado
· NO agregar los discos Duros a la tarjeta SATA
· prueba-iscsi ß Nombre de la máquina virtual a utilizar
· storagectl SATA ß tipo de controladora
· device 0 ß número de disco
· type hdd ß tipo de dispositivo
· port 0 ß puerto
· medium iscsi ß forma en la cual se accederá al disco duro
· server 192.168.50+Y.2 ß IPv4 del target iSCSI
· target iqn.2018-03.sv.com.empresay:ds1 ß iqn del target del servidor iSICI:target
· username usuchapinuno ß nombre del usuario
· password 123456123456 ß la contraseña
· tport 3260 ß Puerto de escucha del target iSCSI
· lun 0 ß Se conectará al primer LUN del portal.
C:\> cd "Program Files\Oracle\VirtualBox\”
VBoxManage storageattach "prueba-iscsi" --storagectl SATA --device 0 --type hdd --port 0 --medium iscsi --server 192.168.50+Y.2 --target iqn.2018-03.sv.com.empresay:ds01:mitarget01 --username usuchapinuno --password 123456123456 --tport 3260 --lun 0
iSCSI disk created. UUID: 7d4609e5-6bcb-4dc5-9494-cc7579828196
Si todo está bien en el administrador de discos aparecerá el disco y en la máquina virtual también.
@Nota: El disco duro debe aparecer sin ningún mensaje
de advertencia, si aparece un triángulo amarillo, significa que la conexión
iSCSI no se realizó de manera satisfactoria.
Para target
# service ctld reload
#
service ctld start
[root@datastore01] ~# ctladm devlist
LUN Backend Size (Blocks) BS Serial Number Device ID
0 block 6291456 1024 10011 iSCSI Disk 10011
1 block 16777216 512 10012 iSCSI Disk 10012
Se puede usar la opción –v para el detalle de cada LUN
[root@datastore01] ~# ctladm port -o on
Front End Ports enabled
[root@datastore01] ~# ctladm port -l
Port Online Type Name pp vp WWNN WWPN
0 YES IOCTL ioctl 0 0 0 0
1 YES INTERNAL camsim 0 0 0x5000000d1bdd9b00 0x5000000d1bdd9b02
2 YES INTERNAL kernel 0 0 0 0
3 YES INTERNAL tpc 0 0 0 0
4 YES ISCSI iscsi 2 1 0 0
[root@datastore01] ~# ctladm lunlist
(7:0:0/0): <FreeBSD iSCSI Disk 0123> Fixed Direct Access SCSI-6 device
(7:0:1/1): <FreeBSD iSCSI Disk 0123> Fixed Direct Access SCSI-6 device
[root@datastore01] ~# ctladm port -o off
Front End Ports disabled
[root@datastore01] ~# ctladm port -l
Port Online Type Name pp vp WWNN WWPN
0 NO IOCTL ioctl 0 0 0 0
1 NO INTERNAL camsim 0 0 0x5000000d1bdd9b00 0x5000000d1bdd9b02
2 NO INTERNAL kernel 0 0 0 0
3 NO INTERNAL tpc 0 0 0 0
4 NO ISCSI iscsi 2 1 0 0
Para iniciador
#
service iscsid start
Referencia para la equivalencia de RAID
http://www.zfsbuild.com/2010/05/26/zfs-raid-levels/
https://www.freebsd.org/doc/handbook/network-iscsi.html
Referencia para comados iSCSI en VirtualBOX
https://www.virtualbox.org/manual/ch08.html#vboxmanage-storageattach