jueves, 2 de abril de 2015

Fiber Channel Target - Proyecto - SAN (Storage Area Network)



Guía para instalar en Ubuntu 14.04 LTS un servidor Fiber Channel Target.
El Canal de Fibra (en Inglés Fiber Channel) es una tecnología de red utilizada principalmente para redes de almacenamiento,  con una tasa de transferencia que empieza en 1 Gbits/s (Actualmente se puede alcanzar los 16Gbits/s y para 2016 está proyectado alcanzar los 128Gbits/s).
La tecnología de fibra no se rige por el modelo OSI, está dividida en cinco capas:

FC4
Protocol mapping
LUN masking
FC3
Common services

FC2
Network
Fiber Channel fabric
Fiber Channel zoning
Registered State Change Notification
FC1
Data link
Fiber Channel 8B/10B enconding
FC0
Physical



Capa FC4: Protocolos de aplicación como SCSI o IP son encapsulados a en forma de PDU para ser entregado a FC2.
Capa FC3: Puede implementar funcionalidades como encriptación,  Algoritmo de redundancia para RAID.
Capa FC2: Definido por el Estándar FC-PI-2, es núcleo de la fibra. Protocolo que define una conexión de puerto a puerto.
Capa FC1: codificación de la señal.
Capa FC0: Conectores, cables el medio físico.

Las 3 principales topologías son:
-      Point-to-Point    (FC-P2P) - Dos dispositivos conectados directamente.
-      Arbitrated loop   (FC-AL) – Diseño en forma de anillo.
-      Switched Fabric (FC-SW) – Todos los dispositivos están conectados a un fiber cannel switch.
Algunos términos para familiarizarse:
(Iniciator): Es el extremo final y que inicia una sesión.
(Target): Destino, no inicia una sesión pero está a la espera del (iniciator).
                   Proporciona uno o más LUN al (Iniciator).
LUN: (Logical Unit Number), en términos de almacenamiento es una dirección para una unidad de disco duro y cuando hablamos de SAN se refiere a un disco entero sin particiones virtuales (o volumen) dentro de un conjunto RAID.
HBA:  (Host Bus Adapter) el Bus de datos, la tarjeta para acceder al medio físico, en este caso la fibra óptica.

Empezamos con la guía de instalación:
Para esta instalación no hay que escoger el tipo de particionado LVM, de lo contrario una vez instalado el sistema al reiniciar El Fiber Channel Target no funcionará.
Realizamos una instalación normal del sistema operativo.
A continuación instalamos LIO (open source) y su único propósito es proporcionar las LUN´s.  LIO soporta varios soportes para Fiber Fabric los más importantes o conocidos: FC(Fiber Channel), IEEE 1394, FCoE (FC over Ethernet), iSCSI…
OpenStack soporta nativamente LIO buena opción para desplegar una infraestructura Cloud.

Sudo apt-get install lio-utils

Sudo apt-get install targetcli

Configurar el driver para Fiber Channel
Previamente hay que cambiar la modalidad a (target mode) en el HBA

sudo vi /etc/modprobe.d/qla2xxx.conf

Añadir:

Options qla2xxx qlini_mode= "disabled"

Una vez el fichero guardado :

sudo update-initramfs –u –k all

Necesitamos reiniciar el servidor a continuación de este cambio:

sudo reboot

Creamos el objeto  Backstore:
(Backstores) son diferentes tipos de recursos  de almacenamiento local que targetcli podrá exportar.  El mapeado de cada recurso local que cada backstore crea son llamados objetos de almacenamiento.
Targetcli es un consola para ver, editar y guardar la configuración de cada subsistema del target en el kernel . Se puede asignar recursos locales (volumen, unidad local SCSI, un fichero o un disco RAM) y exportarlos al sistema remoto por la fábrica de red como iSCSI , FCoE o FC.

sudo targetcli
Y creamos un dispositivo iblock o un objeto con el comando siguiente:
/backstores/iblock/ create name=SAN-SERVER dev=/dev/sda

Obtener WWN:
Averiguar los WWN´s del HBA

Un World Wide Name (WWN) es un identificador único dentro de una SAN, que principalmente utilizamos para hacer el zoning de una HBA con otra. A diferencia del FCID, éste viene grabado de fábrica (aunque existen excepciones). Un WWN podríamos equipararlo, con matices, a una dirección MAC en un entorno Ethernet.
Un WWN es un número de 16 Bytes, formado a su vez por un WWNN de 8 Bytes y un WWPN de 8 Bytes. Aunque en el 90% de las conversaciones nos referimos a todo como WWN.

sudo apt-get install sysfsutils

Obtención de los WWN´s en el (Iniciator):

karim@anubis:/etc$ systool -c fc_host -A port_name

Class = "fc_host"



 Class Device = "host17"

    port_name           = "0x2101001b3229bd74"



    Device = "host17"





 Class Device = "host8"

    port_name           = "0x2100001b3209bd74"



    Device = "host8"

El número WWN empieza después de 0x y lo formateamos de esta forma:

0x2101001b3229bd74    -    21:01:00:1b:32:29:bd:74

Obtención de los WWN´s en el (Target):
En el servidor SAN la tarjeta HBA es un Qlogic qle2464 de 4 puerto. Usamos la misma herramienta sysfsutils. 

Con formato:
21:00:00:1b:32:8d:0c:f3

21:03:00:1b:32:ed:0c:f3

21:01:00:1b:32:ad:0c:f3

21:02:00:1b:32:cd:0c:f3

O se puede también obtener a través de la consola targetcli:

/qla2xxx/info



21:00:00:1b:32:8d:0c:f3

21:03:00:1b:32:ed:0c:f3

21:01:00:1b:32:ad:0c:f3

21:02:00:1b:32:cd:0c:f3

Acceder a targetcli:

targetcli

Creamos WWN´s en targetcli en cada puerto:

/qla2xxx create 21:00:00:1b:32:8d:0c:f3

/qla2xxx create 21:03:00:1b:32:ed:0c:f3

/qla2xxx create 21:01:00:1b:32:ad:0c:f3

/qla2xxx create 21:02:00:1b:32:cd:0c:f3

Creamos la instancia Target usando las WWN´s
/qla2xxx/21:00:00:1b:32:8d:0c:f3/luns/ create /backstores/iblock/SAN-SERVER

/qla2xxx/21:03:00:1b:32:ed:0c:f3/luns/ create /backstores/iblock/SAN-SERVER

/qla2xxx/21:01:00:1b:32:ad:0c:f3/luns/ create /backstores/iblock/SAN-SERVER

/qla2xxx/21:02:00:1b:32:cd:0c:f3/luns/ create /backstores/iblock/SAN-SERVER

Cremos el ACL:

/qla2xxx/21:00:00:1b:32:8d:0c:f3/acls/ create 21:00:00:1b:32:09:bd:74

/qla2xxx/21:03:00:1b:32:ed:0c:f3/acls/ create 21:00:00:1b:32:09:bd:74

/qla2xxx/21:01:00:1b:32:ad:0c:f3/acls/ create 21:00:00:1b:32:09:bd:74

/qla2xxx/21:02:00:1b:32:cd:0c:f3/acls/ create 21:00:00:1b:32:09:bd:74

Guardamos la configuración:

saveconfig

Mostramos la configuración en la consola targetcli usando “ls”:
                                                                                             

Para particionar un volumen con un tamaño superior a 2Gb se usa parted.

Parted (>2TB)

Servidor:
SAN-SERVER
sudo parted
(parted) select /dev/sdX
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) quit
sudo mkfs.ext4 /dev/sdX1

No hay comentarios:

Publicar un comentario