Crear un iSCSI target en CentOS 7

Un target iSCSI es básicamente un disco compartido. Es decir, en una máquina indicas que disco quieres compartir y luego en el cliente lo único que hay hacer es montar el disco y este se montará como si hubiésemos añadido un disco físicamente.

En esta práctica lo que se va a hacer es:
En el servidor (CentOS 7 ) crear un disco, este disco convertirlo en LVM y de el crear 2 volúmenes lógicos y luego crear un iSCSI  con un target y añadir los 2 LVMs. Una vez hecho esto ir al Cliente (Debian 8) y añadir los discos iSCSI.

Servidor

LVM

Para empezar, hay que crear una partición con formato LVM para eso usar el comando fdisk

# fdisk /dev/sda
Orden (m para obtener ayuda): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
Orden (m para obtener ayuda): t
Número de partición (1-3, default 3): 3
Hex code (type L to list all codes): L

 0  Vacía           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  Unidad C: ocult c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux extendida c7  Syrinx         
 5  Extendida       41  PPC PReP Boot   86  Conjunto de vol da  Datos sin SF   
 6  FAT16           42  SFS             87  Conjunto de vol db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux plaintext de  Utilidad Dell  
 8  AIX             4e  QNX4.x segunda  8e  Linux LVM       df  BootIt         
 9  AIX bootable    4f  QNX4.x tercera  93  Amoeba          e1  DOS access     
 a  OS/2 Boot Manag 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  Hibernación de  eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 Ext'd (LBA) 54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  inicio Linux/PA
11  FAT12 oculta    56  Golden Bow      a8  UFS de Darwin   f1  SpeedStor      
12  Compaq diagnost 5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  FAT16 oculta <3 61  SpeedStor       ab  arranque de Dar f2  DOS secondary  
16  FAT16 oculta    63  GNU HURD o SysV af  HFS / HFS+      fb  VMFS de VMware
17  HPFS/NTFS ocult 64  Novell Netware  b7  BSDI fs         fc  VMKCORE de VMwa
18  SmartSleep de A 65  Novell Netware  b8  BSDI swap       fd  Linux raid auto
1b  Hidden W95 FAT3 70  DiskSecure Mult bb  Boot Wizard hid fe  LANstep        
1c  Hidden W95 FAT3 75  PC/IX           be  arranque de Sol ff  BBT            
1e  Hidden W95 FAT1 80  Old Minix      
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sda1   *        2048   131074047    65536000   83  Linux
 /dev/sda2       131074048   139266047     4096000   82  Linux swap / Solaris
 /dev/sda3       139266048  3905945599  1883339776   8e  Linux LVM
Orden (m para obtener ayuda): w
 ¡Se ha modificado la tabla de particiones!

Informar al sistema del cambio de tablas

 # partprobe

Crear el disco físico LVM

 # pvcreate /dev/sda3

Crear el grupo LVM

 # vgcreate glvm1 /dev/sda3

Crear los volúmenes lógicos LVM

 # lvcreate -L 900G -n lvm1 gvlm1
 # lvcreate -L 896G -n lvm2 gvlm1

Ver si se ha creado correctamente todo

# pvs && vgs && lvs

 PV         VG    Fmt  Attr PSize PFree
 /dev/sda3  gvlm1 lvm2 a--  1,75t 92,00m
 VG    #PV #LV #SN Attr   VSize VFree
 gvlm1   1   2   0 wz--n- 1,75t 92,00m
 LV   VG    Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
 lvm1 gvlm1 -wi-a----- 900,00g
 lvm2 gvlm1 -wi-a----- 896,00g

iSCSI

Agregar los repositorios EPEL

 # yum install epel-release
 # wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
 # rpm -Uvh epel-release-7*.rpm

Instalar el paquete para crear los targets iSCSI

 # yum  install scsi-target-utils

Editar el archivo targets.conf y añadir los targets que se quieren crear. En este caso se creará solo uno con los 2 LVMs pero se podrían crear mas targets.

 # vim /etc/tgt/targets.conf
[...]
 <target iqn.2015-02.com.operativoslinux:server.target1>
  backing-store /dev/gvlm1/lvm1 #Lun1
  backing-store /dev/gvlm1/lvm2 #Lun2
 </target>

La nomenclatura para los target ISCSI es de la siguiente manera:
  iqn.<AÑO>-<MES>.<DOMINO_INVERTIDO>:<NOMBRE_DE_LA_MÁQUINA>.<TARGET><NÚMERO>

Iniciar el servicio tgtd

 # systemctl start tgtd.service
 # systemctl enable tgtd.service

(opcional) Si se quiere reiniciar el servicio

 # systemctl restart tgtd.service

Comprobar los iSCSIs añadidos

 # tgt-admin -s
Target 1: iqn.2015-02.com.operativoslinux:server.target1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 966368 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rdwr
            Backing store path: /dev/gvlm1/lvm1
            Backing store flags: 
        LUN: 2
            Type: disk
            SCSI ID: IET     00010002
            SCSI SN: beaf12
            Size: 962073 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            SWP: No
            Thin-provisioning: No
            Backing store type: rdwr
            Backing store path: /dev/gvlm1/lvm2
            Backing store flags: 
    Account information:
    ACL information:
        ALL

Habilitar en Iptables las conexiones a iSCSI

 # iptables -A INPUT -i eth0 -p tcp --dport 860 -m state --state NEW,ESTABLISHED -j ACCEPT
 # iptables -A INPUT -i eth0 -p tcp --dport 3260 -m state --state NEW,ESTABLISHED -j ACCEPT 
 # iptables-save
 # systemctl reload firewalld.service

 

Cliente

Instalar el iniciador iSCSI

 # aptitude install open-iscsi

Editar el archivo iscsid.conf

 # vim /etc/iscsi/iscsid.conf
    node.startup = automatic

Reiniciar el servicio

 # /etc/init.d/open-iscsi restart

Conectarse a los iSCSI del servidor creados

 # iscsiadm -m discovery -t sendtargets -p ISCSI-SERVER-DIRECCION-IP

(opcional) Desconectar un iSCSI

 # iscsiadm -m node --targetname "iqn.2015-02.com.operativoslinux:server.target1" --portal "ISCSI-SERVER-DIRECCION-IP" --logout

(opcional) Si se quiere borrar un iSCSI

 # iscsiadm -m node -o delete -T "iqn.2015-02.com.operativoslinux:server.target1" --portal "ISCSI-SERVER-DIRECCION-IP"

Reiniciar el servicio iSCSI

 # /etc/init.d/open-iscsi restart

Ver los ISCSI conectados

 # iscsiadm -m node

Ver los discos conectados

 # fdisk -l
Disk /dev/sdf: 966.4 GB, 966367641600 bytes
255 heads, 63 sectors/track, 117487 cylinders, 1887436800 sectores en total
Units = sectores of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificador del disco: 0x00000000

El disco /dev/sdf no contiene una tabla de particiones válida

Disk /dev/sdg: 962.1 GB, 962072674304 bytes
255 heads, 63 sectors/track, 116965 cylinders, 1879048192 sectores en total
Units = sectores of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificador del disco: 0x00000000

El disco /dev/sdg no contiene una tabla de particiones válida

Luego, hay que crear las particiones. En este caso se va ha hacer con el comando cfdisk. Pero se podría hacer con fdisk como se ha hecho antes.

 # cfdisk /dev/sdg

Selección_040

Selección_041

Selección_042

Selección_043

Selección_044

Selección_045

Selección_046       Selección_047

Una vez hecho esto con las particiones si se hace un fdisk se verán con formato.

 # fdisk -l
Disco /dev/sdg: 900 GiB, 966367641600 bytes, 1887436800 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x00000000

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdg1  *       63 1887436799 1887436737  900G 83 Linux

Disco /dev/sdh: 896 GiB, 962072674304 bytes, 1879048192 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x00000000

Device     Boot Start        End    Sectors  Size Id Type
/dev/sdh1          63 1879048191 1879048129  896G 83 Linux

Dar formato a las unidades, en este caso ext4

 # mkfs.ext4 /dev/sdg1
 # mkfs.ext4 /dev/sdh1

Hacer que se monten automáticamente en el inicio del sistema

 # mkdir /storage1 /storage2

Añadir las siguientes líneas en fstab

 # vim /etc/fstab
[...]
/dev/sdg1      /storage1        ext4    defaults,auto,_netdev 0 0
/dev/sdh1      /storage2        ext4    defaults,auto,_netdev 0 0

Reiniciar el sistema y comprobar que todo esta OK

 # reboot

 

Fuente:

http://www.tecmint.com/create-luns-using-lvm-in-iscsi-target/
https://www.howtoforge.com/using-iscsi-on-debian-squeeze-initiator-and-target

 

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *