miércoles, 6 de mayo de 2015

Configuración iscsi (targetcli)- Proyecto - SAN (Storage Area Network)

Configuración iSCSI (targetcli)- Proyecto - SAN (Storage Area Network)

En paralelo a nuestra configuración de los targets para nuestros canales de fibra se puede configurar target iSCSI para llegar a servidor que no tengan una targeta de fibra. Configurar iSCSI en plataforma de bajo presupuesto es una buena alternativa para implementar un sistema de "disaster recovery". Otra alternativa en lugar de usar targetcli es Openfiler viene preparado con una interfaz gráfica y permite gestionar desde los volúmenes, permisos, targets ...



Otra gran ventaja de iSCSI es la recuperación automática de la sesión en caso de cortes o pérdida de red. En entornos donde hay que priorizar la alta disponibilidad se puede usar DM-multipath, otra beneficio directo es aprovechar un load-balancing y mayor ancho de banda. Poniendo a práctica este interesante escenario en cada controladora hay que agrupar las LUN y crear un solo mapeo por controladora HBA o RED(para iSCSI). En la gran mayoria de los sistemas de virtualización se puede usar iSCSI y los principales sistemas operativos lo tienen integrado. El ancho de banda necesario es proporcional a las necesidades y conviene usar tarjetas de varios puertos o 10-Gigabit-Ethernet. Para aumentar el rendimiento  se puede hacer VLAN trunk dependiendo del tráfico.

A continuación explicamos la configuración a realizar en el servidor SAN y Cliente-Servidor (SRV-Mysql-2).

Servidor SAN:

Entramos en targetcli y creamos un objeto:

/backstores> /backstores/iblock/ create name=mysql­2 dev=/dev/sda4


 Activamos el target por iSCSI:

cd /iscsi
create
La opción de crear un portal de forma automática no está activada.



Creamos un portal:


/> /iscsi create

Created target iqn.2003­01.org.linux-
iscsi.san.x8664:sn.284ffa240148.

Selected TPG Tag 1.

Successfully created TPG 1.



Añadimos una LUN:


cd /iscsi/iqn.2003­01.org.linux-
iscsi.san.x8664:sn.284ffa240148/tpgt1

luns/ create /backstores/iblock/mysql­2


Creamos una ACL:

Previamente tendremos que conseguir el nombre del iniciador, instalamos opem-iscsi (en el servidor cliente). listamos el nombre,


cat /etc/iscsi/initiatornmae.iscsi
 
Ejemplo:
root@mysql-2:/# cat /etc/iscsi/initiatorname.iscsi
## DO NOT EDIT OR REMOVE THIS FILE!
## If you remove this file, the iSCSI daemon will not start.
## If you change the InitiatorName, existing access control lists
## may reject this initiator.  The InitiatorName must be unique
## for each iSCSI initiator.  Do NOT duplicate iSCSI InitiatorNames.
InitiatorName=iqn.1993-08.org.debian:01:a4b591a99cfa

 


Regresamos al servidor SAN y continuamos con la configuración del ACL:



/iscsi/iqn.20...c1/tpgt1/acls>
 
/iscsi/iqn.20...c1/tpgt1/acls> create iqn.1993­08.org.debian:01:a4b591a99cfa
Successfully created Node ACL for iqn.1993­08.org.debian:01:a4b591a99cfa
Created mapped LUN 0.

Añadimos usando la autenticación CHAP,  un usuario y una contraseña:

/iscsi/iqn.20...:a4b591a99cfa> ls
o­ iqn.1993­08.org.debian:01:a4b591a99cfa ................................................. [1Mapped LUN]
o­ mapped_lun0 ................................................................................................ [lun0 (rw)]
/iscsi/iqn.20...:a4b591a99cfa> set auth userid=usrmysql2
Parameter userid is now 'usrmysql2'.
/iscsi/iqn.20...:a4b591a99cfa> set auth password=123456
Parameter password is now '123456'.

NO OLVIDAMOS GUARDAR LA CONFIGURACIÓN:
/iscsi/iqn.20....03efa1d619c1> cd ..
/iscsi> cd ..
/> saveconfig


Servidor Mysql-2:

Instalamos open-iscsi, previamente realizando para la obtención del nombre iniciador para la configuración del access-list en targetcli.


root@mysql-2:/# apt-get install open-iscsi

Nombre del iniciador:

root@mysql-2:/# cat /etc/iscsi/initiatorname.iscsi

 Configuración del tipo de autenticación, usuario y contarseña:

node.session.auth.authmethod = CHAP
node.session.auth.username =
usrmysql2
 node.session.auth.password = 123456


 Reiniciamos el servicio open-iscsi:

root@mysql-2:/# /etc/init.d/open-iscsi


Ejecutamos iscsiadm en modo discover:

root@mysql-2:/# iscsiadm --mode discovery --type sendtargets --portal 192.168.1.113

192.168.1.113:3260,1 iqn.2003-01.org.linux-iscsi.san.x8664:sn.03efa1d619c1

Ejecutamos iscsiadm en modo nodo:


root@mysql-2:/# iscsiadm --mode node --targetname iqn.2003-01.org.linux-iscsi.san.x8664:sn.03efa1d619c1 --portal 192.168.1.113 --login
 
Logging in to [iface: default, target: iqn.2003-01.org.linux-iscsi.san.x8664:sn.03efa1d619c1, portal: 192.168.1.113,3260] (multiple)
Login to [iface: default, target: iqn.2003-01.org.linux-iscsi.san.x8664:sn.03efa1d619c1, portal: 192.168.1.113,3260] successful.


Verificamos que el recurso este en modo (RW) lectura y escritura:

root@mysql-2:/# lsblk | egrep "NAME|sda"
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0  14.9G  0 disk



Una vez el recurso disponible se puede crear el file system:


root@mysql-2:/# mkfs.ext4 /dev/sda


Se puede añadir en el fstab para que este disponbible en el próximo aranque:

root@mysql-2:/# blkid | grep "/dev/sda"
/dev/sda: UUID="4b5f702a-8319-47a4-9b55-7e439db385c3" TYPE="ext4"



root@mysql-2:/# echo "UUID=4b5f702a-8319-47a4-9b55-7e439db385c3" >> /etc/fstab


root@mysql-2:/# echo "UUID=4b5f702a-8319-47a4-9b55-7e439db385c3" >> /etc/fstab

Editamos /etc/fstab:

UUID=4b5f702a-8319-47a4-9b55-7e439db385c3 /mnt/sda ext4 _netdev 0 0

_netdev: Indicamos que es una unidad y que depende de la conexión antes hacer el mount.









No hay comentarios:

Publicar un comentario