Antes de empezar a diseñar grandes infraestructuras en producción, que desconozco en un porcentaje elevado, diseño prototipos para asegurar toda la integridad y una mejor salida cara al producto final.
Imaginemos que queremos crear prototipos como un RAC (real application server), un cluster que contenga ocfs, gfs, gfs2 etc para poner un espacio compartido para dos FrontEnd o para los Backend de BBDD, etc. Una forma de hacerlo es emulando un servidor virtual una especie de NAS exportando volúmenes por NFS, por ejemplo. Pero esto nos limita mucho cara a montar o emular sistemas que se conectarán en un futuro con una SAN vía protocolo iscsi o Fibre channel.
En este post, voy hacer una breve introducción al proyecto OpenFiler donde por medio del protocolo iscsi, exportaremos el dispositivo físico por medio de su identificador LUN y el cliente sera capaz de ver los diferentes volúmenes de dicho grupo.
OpenFiler esta ya preparado para distintos clientes Virtuales. En mi caso uso VirtualBox, así que lo tengo que hacer es la instalación partiendo del fichero .iso. Una vez instalado desde el ordenador HOST solo hay que escribir:
https://URL_A_OPENFILER:446
nombre de usuario: openfiler
contraseña: password
Como el servidor OpenFiler, es quien va a exportar los disco, agregamos a este un disco virtual creado para la ocasión. Yo le llamé: BigDisk (100GB)
NOTA: Aseguraremos que la red esta en modo bridge para así tener el mismo rango de IP y poder acceder desde el Host al servidor Virtual.
Una vez dentro debemos activar el servicio iscsi-target. Esto lo podemos hacer de forma manual desde /etc/init.d/ o desde el panel de openfiler:
Lo primero que haremos es insertar los servidores a los que queremos exportar los dispositivos. Si a los servidores no les da permiso estos no podrán ver los dispositivos. En mi caso tengo servidores de proyectos anteriores pero el proceso es el mismo.
Pinchamos sobre /dev/sdb para crear las particiones y luego los volúmenes sobre este dispositivo (como si fuesen las particiones).
Sobre el dispositivo físico /dev/sdb asignaos todo el espacio y solo creamos una partición. Luego sobre esta crearemos volúmenes:
Los volúmenes que vayamos a crear tienen que estar asignado a un grupo y ese grupo a dispositivos físicos. Por lo tanto antes de crear volúmenes, creamos un Grupo que contendrá nuestro dispositivo físico /deb/sdb. En este ejemplo yo tengo uno creado de un cluster de Red Hat pero el nuevo que voy a crear lo voy a llamar nuevoGrupo.
Ahora llega lo bonito!!!! Vamos a crear nuestros espacios. Estos los repartiremos en nuestros 100GB a nuestro antojo. No es necesario asignar todo el espacio. Luego podemos ampliar los volúmenes en base a nuestras necesidades. Voy a crear dos volúmenes. Unos pensado para una BBDD y otro pensado para el contenido del FrontEnd.
Hasta aquí tenemos ya nuestro disco preparado para exportar su grupo con su volúmenes. Pero antes debemos crear nuestra LUN (Logical Unit number) o disco virtual de nuestra SAN. Después debemos realizar los diversos mapeos. Es decir, que volúmenes queremos que se vean sobre esa LUN, así como los permisos que queramos sobre esta. Aquí los permisos son sobre las LUNs, es decir podríamos crear diversas configuraciones. Una LUN con los volúmenes creados, dos LUNs con un volumen cada una, etc.
Ahora solo queda conectarnos al servidor client2, casserver, etc y hacer un discover, para ver las LUNs. Y para cada una de las LUNs, hacemos un login.
Antes de nada, veo los dispositivos que tengo en mi servidor:
[root@client2 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.18 192.168.0.18:3260,1 iqn.2006-01.com.openfiler:clusterrh.virtual 192.168.0.18:3260,1 iqn.2006-01.com.nuevoGrupo:tsn.944a7d61e9ed 192.168.0.18:3260,1 iqn.2006-01.com.openfiler:clusterrh.systemd [root@client2 ~]# iscsiadm -m node -T iqn.2006-01.com.nuevoGrupo:tsn.944a7d61e9ed -p 192.168.0.18 -l Logging in to [iface: default, target: iqn.2006-01.com.nuevoGrupo:tsn.944a7d61e9ed, portal: 192.168.0.18,3260] Login to [iface: default, target: iqn.2006-01.com.nuevoGrupo:tsn.944a7d61e9ed, portal: 192.168.0.18,3260]: successful [root@client2 ~]# fdisk -l Disk /dev/sdc: 21.4 GB, 21474836480 bytes 64 heads, 32 sectors/track, 20480 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Disk /dev/sdc doesn't contain a valid partition table Disk /dev/sdd: 31.4 GB, 31474057216 bytes 64 heads, 32 sectors/track, 30016 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Disk /dev/sdd doesn't contain a valid partition table
Ahora con fdisk, por ejemplo creamos una particion primaria en cada dispositivo y lo formateamos con el sistema de ficheros que necesitemos.
NOTA: cuando hacemos el iscsiadm en los clientes, puede que el S.O. reasigne mal los dispositivos físicos con los volúmenes de la SAN. Es decir, a lo mejor /dev/sdc que era datosfrontend puede ser datosbackend tras un reinicio. Para solucionar esto se debe utilizar algún tipo de script o bien usar multipathing.












