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
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