iSCSI

  • 0

iSCSI

En esta entrada vamos a ver iSCSI en un servidor linux y usaremos clientes tanto linux como Windows:

 

1- En primer lugar creamos las maquinas en OpenStack una maquina Windows, una maquina Ubuntu que usaremos como servidor y otra maquina debian que la usaremos de cliente al igual que Windows.
2- A continuación nos vamos a la maquina ubuntu donde crearemos un grupo de volumenes en su disco secundarios que en este caso es “/dev/vdb”, pero antes debemos de desmosntar el disco para poder crearlo:

root@san:/home/ubuntu# umount /dev/vdb
root@san:/home/ubuntu#

Luego creamos el volumen físico:

root@san:/home/ubuntu# pvcreate /dev/vdb
Physical volume "/dev/vdb" successfully created
root@san:/home/ubuntu#

Para verificar que se ha creado correctamente ejecutamos “pvdisplay”:

root@san:/home/ubuntu# pvdisplay
"/dev/vdb" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name /dev/vdb
VG Name
PV Size 10.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID xSGoR9-K4Zj-qXPE-0xHY-fHql-519H-2h1YQr
root@san:/home/ubuntu#

Ahora debemos de crear el grupo al que llamaremos “SAN”:

root@san:/home/ubuntu# vgcreate san /dev/vdb
Volume group "san" successfully created
root@san:/home/ubuntu#
root@san:/home/ubuntu# vgdisplay
--- Volume group ---
VG Name san
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 10.00 GiB
PE Size 4.00 MiB
Total PE 2559
Alloc PE / Size 0 / 0
Free PE / Size 2559 / 10.00 GiB
VG UUID 7Jd0re-Uabx-NHce-G0Mp-iKNz-a0Pr-YTR2py

root@san:/home/ubuntu#

3- El siguiente paso que debemos de dar es crear 4 volumenes lógicos, para eso vamos a hacer lo siguiente:

root@san:/home/ubuntu# lvcreate -n v1 -L 2.5G san
Logical volume "v1" created
root@san:/home/ubuntu# lvcreate -n v2 -L 2.5G san
Logical volume "v2" created
root@san:/home/ubuntu# lvcreate -n v3 -L 2.5G san
Logical volume "v3" created
root@san:/home/ubuntu# lvcreate -n v4 -L 2G san
Logical volume "v4" created
root@san:/home/ubuntu#

Luego hacemos un “lvdisplay” y vemos que se han creado correctamente los 4 volumenes lógicos:

root@san:/home/ubuntu# lvdisplay
--- Logical volume ---
LV Path /dev/san/v1
LV Name v1
VG Name san
LV UUID mlqf49-1FXe-hgH5-aIAg-K2oo-3aps-B7pGq6
LV Write Access read/write
LV Creation host, time san, 2014-12-05 14:11:59 +0000
LV Status available
# open 0
LV Size 2.50 GiB
Current LE 640
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0

--- Logical volume ---
LV Path /dev/san/v2
LV Name v2
VG Name san
LV UUID F7kzJg-opIx-oeRQ-a78z-qYa1-Bva8-qz9mm8
LV Write Access read/write
LV Creation host, time san, 2014-12-05 14:12:10 +0000
LV Status available
# open 0
LV Size 2.50 GiB
Current LE 640
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1

--- Logical volume ---
LV Path /dev/san/v3
LV Name v3
VG Name san
LV UUID eBfc0Y-nwPd-Kjs4-y431-hzP5-JXWg-Rgej7w
LV Write Access read/write
LV Creation host, time san, 2014-12-05 14:12:17 +0000
LV Status available
# open 0
LV Size 2.50 GiB
Current LE 640
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:2

--- Logical volume ---
LV Path /dev/san/v4
LV Name v4
VG Name san
LV UUID EXUnxm-HZWU-3PLn-OCS0-PZFu-PfVy-NRDIAu
LV Write Access read/write
LV Creation host, time san, 2014-12-05 14:12:33 +0000
LV Status available
# open 0
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:3

root@san:/home/ubuntu#

4- Luego debemos de instalar el paquete “tgt”:

root@san:/home/ubuntu# apt-get install tgt

5- Ahora debemos de configurar iSCSI para que exporte un target, para eso primero debemos de crearlos en el fichero “/etc/tgt/targets.conf” de la siguiente manera.

<target iqn.2014-12.com.tecmint:tgt1>
backing-store /dev/san/v1
</target>

Y luego reiniciamos el servicios tgt:

root@san:/home/ubuntu# /etc/init.d/tgt reload
* Reloading configuration of target framework daemon tgtd [ OK ]
root@san:/home/ubuntu#

Para verificar que esta creado el target ejecutamos el siguiente comando:

tgtadm --mode target --op show

Y nos mostrará lo siguiente:

root@san:/home/ubuntu# tgtadm --mode target --op show
Target 1: iqn.2014-12.com.tecmint:tgt1
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:
Account information:
ACL information:
ALL
root@san:/home/ubuntu#

Luego nos vamos a la maquina cliente e instalamos el paquete “iscsi-initiator-utils” y luego hacemos debemos de hacer un discover con el siguiente comando:

root@san-cliente:/home/debian# iscsiadm -m discovery -t st -p 10.0.0.28
10.0.0.28:3260,1 iqn.2014-12.com.tecmint:tgt1
root@san-cliente:/home/debian#

6- A continuación lo que vamos a hacer es que iSCSI exporte un target con autenticación para ello lo que debemos de hacer es irnos al fichero “/etc/tgt/targets.conf” de nuevo y editamos otro target pero esta vez le añadiremos los parametros para que sean con autenticación:

<target iqn.2014-12.com.tecmint:tgt2>
backing-store /dev/san/v2
IncomingUser usuario usuario
</target>

7- El siguiente paso que vamos a realizar es configurar iSCSI para que los dos volumenes que nos quedan los exportemos como unos solo para ello lo unico que hay que hacer es introducir en el target los dos volumenes que quedan:

<target iqn.2014-12.com.tecmint:tgt3.tgt4>
backing-store /dev/san/v3
backing-store /dev/san/v4
</target>

8- El siguiente paso es inicializar el primer target en la maquina cliente y formatearlo en XFS y luego lo montaremos en la carpeta /mnt:
Hacemos un “discovery” para visualizar los targets y vemos que son los que hemos configurado anteriormente:

root@san-cliente:/home/debian# iscsiadm -m discovery -t st -p 10.0.0.28
10.0.0.28:3260,1 iqn.2014-12.com.tecmint:tgt1
10.0.0.28:3260,1 iqn.2014-12.com.tecmint:tgt2
10.0.0.28:3260,1 iqn.2014-12.com.tecmint:tgt3.tgt4
root@san-cliente:/home/debian#

Luego conectamos el target al cliente, sera el primero de todos el que termina en “tdt1”:

root@san-cliente:/home/debian# iscsiadm -m node --targetname iqn.2014-12.com.tecmint:tgt1 --portal 10.0.0.28:3260 --login
Logging in to [iface: default, target: iqn.2014-12.com.tecmint:tgt1, portal: 10.0.0.28,3260] (multiple)
Login to [iface: default, target: iqn.2014-12.com.tecmint:tgt1, portal: 10.0.0.28,3260] successful.
root@san-cliente:/home/debian#

El siguiente paso es formatear el disco que se nos ha añadido que es en este caso “/dev/sda” y lo montamos en /mnt:

root@san-cliente:/home/debian# mkfs.xfs /dev/sda
meta-data=/dev/sda isize=256 agcount=4, agsize=163840 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=655360, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
root@san-cliente:/home/debian# mount /dev/sda /mnt
root@san-cliente:/home/debian#

Para comprobar ques esta montado hacemos un “df -h”:

root@san-cliente:/home/debian# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 1007M 677M 280M 71% /
udev 10M 0 10M 0% /dev
tmpfs 50M 144K 50M 1% /run
/dev/vda1 1007M 677M 280M 71% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 100M 0 100M 0% /run/shm
/dev/sda 2.5G 33M 2.5G 2% /mnt
root@san-cliente:/home/debian#

9- A continución vamos a montar el segundo target en la maquina Windows, en primer lugar lo que debemos de hacer es inicializar iSCASI en Windows, para ello nos vamos a “Herramientas Administrativas” y hacemos clic en “Iniciador de iSCASI”:

Nos vamos a pestaña “Discovery” e instroducimos las dirección IP del servidor.

captura1

Luego volvemos a irnos a la pestaña “Target” y vemos que nos aparecen los distintos targets creados en el servidor:

captura2

Ahora los que debemos de hacer es coger el target que queramos usar y pinchar en “connect” e inmediatamente nos paracera como conectado:

captura3

Luego nos vamos al administrador de disco y vemos que efectivamente se ha conectado. Ahora debemos de formatearlos con el sistema de fichero NTFS, no debemos de olvidar de tenemos que poner el disco en “online” haciendo clic secundario:

captura4

captura5

Una vez hecho esto nos vamos al disco y añadimos un fichero con contenido:

captura6

10- Lo siguiente que vamos a hacer es inicializar el 3º target en la maquina cliente de linux y formatearemos los volumenes en “ext3” y en “vfat”:
Nos conectamos como hemos hecho anteriormente:

root@san-cliente:/home/debian# iscsiadm -m node --targetname iqn.2014-12.com.tecmint:tgt3.tgt4 --portal 10.0.0.28:3260 --login
Logging in to [iface: default, target: iqn.2014-12.com.tecmint:tgt3.tgt4, portal: 10.0.0.28,3260] (multiple)
Login to [iface: default, target: iqn.2014-12.com.tecmint:tgt3.tgt4, portal: 10.0.0.28,3260] successful.
root@san-cliente:/home/debian#

Una vez hecho esto procedemos a formatear los dos volumenes que contiene el target:

root@san-cliente:/home/debian# mkfs.ext3 /dev/sdb
mke2fs 1.42.5 (29-Jul-2012)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
163840 inodes, 655360 blocks
32768 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=671088640
20 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Allocating group tables: done
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: 1/20
done

root@san-cliente:/home/debian#

Ahora creamos la farticion que necesita vfat para poder formatear y realizamos el formateo:

root@san-cliente:/home/debian# mkfs.vfat -n datos -F 32 /dev/sdc1
mkfs.vfat 3.0.13 (30 Jun 2012)
root@san-cliente:/home/debian#

11- Ahora lo que debemos de hacer es redimensionar el LUN1, para poder visualizar los LUN que tenemos ejecutamos el comando “tgtadm –lld iscsi –mode target –op show”:

LUN: 1
Type: disk
SCSI ID: IET 00030001
SCSI SN: beaf31
Size: 2684 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/san/v3
Backing store flags:

Vemos que el tamaño del LUN:1 tiene un tamaño de 2684 MB, lo que queremos hacer es que cambie de tamaño:

root@san:/home/ubuntu# lvextend -L +100 /dev/san/v1
Extending logical volume v1 to 2.60 GiB
Logical volume v1 successfully resized
root@san:/home/ubuntu# tgtadm --op delete --mode logicalunit --tid=1 --lun=1
root@san:/home/ubuntu# tgtadm --op new --mode logicalunit --tid=1 --lun=1 --backing-store=/dev/san/v1
root@san:/home/ubuntu#

Luego nos vamos al cliente y vemos que el tamaño ha aumentado, como lo hemos desmontado antes, al montarlo de nuevo se pone en en /dev/sdd.

root@san-cliente:/home/debian# fdisk -l /dev/sdd

Disk /dev/sdd: 2789 MB, 2789212160 bytes
86 heads, 62 sectors/track, 1021 cylinders, total 5447680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdd doesn't contain a valid partition table
root@san-cliente:/home/debian#

12- A continuación vamos a desconectar los targets 2 y 3 de las maquinas windows y debian respectavamente para ello hacemos lo siguiente:

En la maquina debian ejecutamos el siguiente comando:

root@san-cliente:/home/debian# iscsiadm -m node --targetname iqn.2014-12.com.tecmint:tgt3.tgt4 --portal 10.0.0.28:3260 --logout
Logging out of session [sid: 2, target: iqn.2014-12.com.tecmint:tgt3.tgt4, portal: 10.0.0.28,3260]
Logout of [sid: 2, target: iqn.2014-12.com.tecmint:tgt3.tgt4, portal: 10.0.0.28,3260] successful.
root@san-cliente:/home/debian#

Y luego para desconectarlo desde windows con solo pinchar en el boton “Disconect” es suficiente:

captura7

captura8

13- Ahora conectamos el “target3” a la maquina Windows y vemos que es lo que pasa:

captura9

Como vemos en la imagen vemos que la partición que tenemos en “ext3” no esta montada y sin embargo la “vfat” sí

14- Por ultimo lo que vamos a conectar el “target2” en la maquina Debian, para ello ejecutamos los siguientes comandos:

root@san-cliente:/home/debian# iscsiadm -m node --targetname iqn.2014-12.com.tecmint:tgt2 -p 10.0.0.28 -o update -n node.session.auth.authmethod -v CHAP
root@san-cliente:/home/debian# iscsiadm -m node --targetname iqn.2014-12.com.tecmint:tgt2 -p 10.0.0.28 -o update -n node.session.auth.username -v usuario
root@san-cliente:/home/debian# iscsiadm -m node --targetname iqn.2014-12.com.tecmint:tgt2 -p 10.0.0.28 -o update -n node.session.auth.password -v usuario
root@san-cliente:/home/debian# iscsiadm -m node --targetname iqn.2014-12.com.tecmint:tgt2 --portal 10.0.0.28:3260 --login Logging in to [iface: default, target: iqn.2014-12.com.tecmint:tgt2, portal: 10.0.0.28,3260] (multiple)
Login to [iface: default, target: iqn.2014-12.com.tecmint:tgt2, portal: 10.0.0.28,3260] successful.
root@san-cliente:/home/debian#

Y hasta aquí hemos terminado con iSCSI en esta entrada.