SAN con iSCSI y sistemas de ficheros OCFS2

CDA 2018/19


Índice General

1 Descripción

Simular un escenario de despliegue de una solución SAN (Storage Area Network) combinando:

Recursos complementarios

2 Entorno de prácticas

2.1 Software de virtualización VIRTUALBOX

En estas prácticas se empleará el software de virtualización VIRTUALBOX para simular los equipos GNU/Linux sobre los que se realizarán las pruebas.

2.2 Imágenes a utilizar

  1. Scripts de instalación

    Notas:

  2. Imágenes descargadas

  3. Usuarios configurados e inicio en el sistema

2.3 Máquinas virtuales y redes creadas

Image iscsi_ocfs2

3 PREVIO 1: Uso básico de iSCSI en GNU/Linux [no entregable]

3.1 Elementos iSCSI

3.2 Configuración del Target iSCSI y exposición el dispositivo /dev/sdf

  1. Crear target (servidor que expone los dispositivos de bloque) asignando un iqn y un identificador interno (tid=1)
    root@discos:~# tgtadm --lld iscsi --mode target --op new --tid=1 --targetname iqn.2018-09.net.cda.discos:pruebas
    
    root@discos:~# tgtadm --lld iscsi --mode target --op show
    Target 1: iqn.2018-09.net.cda.discos:pruebas
      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:
    

  2. Añadir un LUN (dispositivo de bloque a exponer) dentro del target creado (tid=1) vinculado al dispositivo de bloques local /dev/sdf (parámetro --backing-store)

    Nota: El LUN 0 está reservado, identifica al controlador del propio target $\Rightarrow$ LUN se empiezan a asignar desde 1

    root@discos:~# tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 --backing-store /dev/sdf
    
    root@discos:~# tgtadm --lld iscsi --mode target --op show
    Target 1: iqn.2018-09.net.cda.discos:pruebas
      System information:
        Driver: iscsi
        State: ready
      I_T nexus information:
      LUN information:
        LUN: 0
          Type: controller
          ...
        LUN: 1
          Type: disk
          SCSI ID: IET     00010001
          SCSI SN: beaf11
          Size: 105 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/sdf
          Backing store flags: 
      Account information:
      ACL information:
    

  3. Control de accesos
    1. Restringir acceso al target a las direcciones IP de los initiators de CLIENTE1 (192.168.100.22) y CLIENTE2 (192.168.100.33)
      root@discos:~#  tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.100.22   
      root@discos:~#  tgtadm --lld iscsi --mode target --op bind --tid 1 --initiator-address 192.168.100.33
      

      Nota 1: con la opción --op unbind se deshabilita el acceso desde una dirección IP dada Nota 2: puede habilitarse/deshabilitarse el acceso a cualquier dirección IP usando el valor ALL (no aplicable en nuestro caso)

      tgtadm --lld iscsi --mode target --op bind   --tid 1 --initiator-address ALL 
      tgtadm --lld iscsi --mode target --op unbind --tid 1 --initiator-address ALL
      

    2. Definir usuario y contraseñas para control de acceso mediante CHAP

      En iSCSI se puede usar un mecanismo de autenticación mutua (initiator ante target [initiator authentication] y, opcionalmente, de target ante initiator [target authentication]) basado en el protocolo CHAP Challenge-Handshake Authentication Protocol.

      • Es necesario crear el par usuario-contraseña y vincular el usuario al target (y opcionalmente al initiator en autenticación inversa).

      Initiator authetication: el initiator es autneticado por el target

      1. Crear un par usuario-contraseña (cda/cdapass)
        root@discos:~# tgtadm --lld iscsi --mode account --op new --user cda --password cdapass
        
      2. Vincular usuario cda con el target al que tendrá acceso (tid=1)
        root@discos:~# tgtadm --lld iscsi --mode account --op bind --tid 1 --user cda
        
      Nota: En los initiators open-iscsi debe habilitarse la autenticación CHAP e incluirse el par cda/cdapass en el fichero de configuración /etc/iscsi/iscsid.conf (parámetros node.session.auth.{username,password})

    3. Verificar resultado

      root@discos:~# tgtadm --lld iscsi --mode target --op show
      Target 1: iqn.2018-09.net.cda.discos:pruebas
        System information:
          Driver: iscsi
          State: ready
        I_T nexus information:
        LUN information:
          LUN: 0
            Type: controller
            ...
          LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 105 MB, Block size: 512
            Online: Yes
            ...
            Backing store path: /dev/sdf
            ...
        Account information:
          cda
        ACL information:
          192.168.100.22
          192.168.100.33
      

  4. (Opcional) Eliminar LUNs y target (por ese orden)
    root@discos:~# tgtadm --lld iscsi --mode logicalunit --op delete --tid 1 --lun 1
    
    root@discos:~# tgtadm --lld iscsi --mode target --op delete --tid 1
    

3.2.1 EXTRA: Configuración permanente de targets

<pendiente>

3.3 Configuración y uso de los initiators

  1. Configurar los initiators !open-iscsi! de CLIENTE1 y CLIENTE2
    1. Establecer valores del fichero /etc/iscsi/initiatorname.iscsi (en ambos initiators)

      Nota: este paso no es estrictamente necesario, en una instalación normal del paquete open-iscsi se genera este fichero con un nombre de initiator aleatorio. En nuestro caso, como ambas máquinas comparten la misma imagen base es necesario forzar que sean diferentes, volviendo a generar esos nombres.

      root@cliente1:~# echo "InitiatorName="`iscsi-iname` > /etc/iscsi/initiatorname.iscsi 
      
      root@cliente2:~# echo "InitiatorName="`iscsi-iname` > /etc/iscsi/initiatorname.iscsi
      

    2. Habilitar la autenticación mediante CHAP y establecer las credenciales de acceso en /etc/iscsi/iscsid.conf (en ambos initiators)

      root@cliente1:~# nano /etc/iscsi/iscsid.conf 
      	
      root@cliente2:~# nano /etc/iscsi/iscsid.conf 
      
      
      --- CONTENIDO A EDITAR ----
      
      ...
      # *************
      # CHAP Settings
      # *************
      node.session.auth.authmethod = CHAP
      node.session.auth.username = cda 
      node.session.auth.password = cdapass
      ...
      
      --- CONTENIDO A EDITAR ----
      

    3. Reiniciar el demonio iscsid para que cargue la nueva configuración (en ambos initiators)

           	
      root@cliente1:~# systemctl restart iscsid.service
      
      root@cliente2:~# systemctl restart iscsid.service
      

  2. Consultar la lista de iqn de los targets disponibles en la máquina discos.cda.net (192.168.100.11) (comando sendtargets del modo discover desde ambos initiators)

     
    root@cliente1:~# iscsiadm --mode discovery --type sendtargets --portal 192.168.100.11
    192.168.100.11:3260,1 iqn.2018-09.net.cda.discos:pruebas
    	    	
    root@cliente2:~# iscsiadm --mode discovery --type sendtargets --portal 192.168.100.11
    192.168.100.11:3260,1 iqn.2018-09.net.cda.discos:pruebas
    

    Como resultado de este comando sendtarget se actualiza la información de los target conocidos que se mantiene en el directorio /etc/iscsi/nodes/[iqn]/[port]/defult.

  3. Conectar con el target seleccionado de la máquina discos.cda.net (192.168.100.11) indicando su iqn (comando login del modo node desde ambos initiators)
     
    root@cliente1:~# iscsiadm  --m node  --targetname iqn.2018-09.net.cda.discos:pruebas --portal 192.168.100.11 --login
    Logging in to [iface: default, target: iqn.2018-09.net.cda.discos:pruebas, portal: 192.168.100.11,3260] (multiple)
    Login to [iface: default, target: iqn.2018-09.net.cda.discos:pruebas, portal: 192.168.100.11,3260] successful.
    
    
    root@cliente2:~# iscsiadm  --m node  --targetname iqn.2018-09.net.cda.discos:pruebas --portal 192.168.100.11 --login
    Logging in to [iface: default, target: iqn.2018-09.net.cda.discos:pruebas, portal: 192.168.100.11,3260] (multiple)
    Login to [iface: default, target: iqn.2018-09.net.cda.discos:pruebas, portal: 192.168.100.11,3260] successful.
    

  4. Si la conexión ha tenido éxito en ambas máquinas (CLIENTE1 y CLIENTE2) deberá aparecer un nuevo dispositivo de bloques de tipo SCSI, vinculado a /dev/sdc y con 100 MB de capacidad.
     
    root@cliente1:~# lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   16G  0 disk 
    |--sda1   8:1    0   16G  0 part /
    sdb      8:16   0    1G  0 disk 
    |--sdb1   8:17   0 1022M  0 part [SWAP]
    sdc      8:32   0  100M  0 disk 
    	
    root@cliente1:~# parted -l
    Model: ATA VBOX HARDDISK (scsi)
    Disk /dev/sda: 17,2GB
    ...
    
    Model: ATA VBOX HARDDISK (scsi)
    Disk /dev/sdb: 1074MB
    ...
    
    Error: /dev/sdc: unrecognised disk label
    Model: IET VIRTUAL-DISK (scsi)                                            
    Disk /dev/sdc: 105MB
    Sector size (logical/physical): 512B/512B
    Partition Table: unknown
    Disk Flags:
    

     
    root@cliente1:~# lsblk
    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda      8:0    0   16G  0 disk 
    |--sda1   8:1    0   16G  0 part /
    sdb      8:16   0    1G  0 disk 
    |--sdb1   8:17   0 1022M  0 part [SWAP]
    sdc      8:32   0  100M  0 disk 
    	
    root@cliente2:~# parted -l	
    Model: ATA VBOX HARDDISK (scsi)
    Disk /dev/sda: 17,2GB
    ...	
    	
    Model: ATA VBOX HARDDISK (scsi)
    Disk /dev/sdb: 1074MB
    ...	
    	
    Error: /dev/sdc: unrecognised disk label
    Model: IET VIRTUAL-DISK (scsi)                                            
    Disk /dev/sdc: 105MB
    Sector size (logical/physical): 512B/512B
    Partition Table: unknown
    Disk Flags:
    

    También puede verificarse desde el target en la máquina DISCOS la existencia de dos initiators accediendo al LUN 1 mediante iSCSI.

     
    root@discos:~# tgtadm --lld iscsi --mode target --op show
    Target 1: iqn.2018-09.net.cda.discos:pruebas
      System information:
        Driver: iscsi
        State: ready
      I_T nexus information:
        I_T nexus: 65
          Initiator: iqn.2005-03.org.open-iscsi:b8876af7eaa alias: cliente1.cda.net
          Connection: 0
            IP Address: 192.168.100.22
        I_T nexus: 66
          Initiator: iqn.2005-03.org.open-iscsi:202d6339674d alias: cliente2.cda.net
          Connection: 0
            IP Address: 192.168.100.33
      LUN information:
        LUN: 0
          Type: controller
          ...
        LUN: 1
          Type: disk
          ... 
      Account information:
        cda
      ACL information:
        192.168.100.22
        192.168.100.33
    

  5. Desconexión de un target (comando logout del modo node) [no necesario de momento en nuestro ejemplo]
     
    root@cliente1:~# iscsiadm  --m node  --targetname iqn.2018-09.net.cda.discos:pruebas --portal 192.168.100.11 --logout
    	
    root@cliente2:~# iscsiadm  --m node  --targetname iqn.2018-09.net.cda.discos:pruebas --portal 192.168.100.11 --logout
    

3.3.1 Uso incorrecto de dispositivos iSCSI compartidos

En este punto del ejemplo ambos initiator (CLIENTE1 y CLIENTE2) cuentan con un nuevo dispositivo de bloques SCSI (con el nombre /dev/sdc), que se corresponde con el dispositivo /dev/sdf expuesto mediante iSCSI por el target DISCOS.

  1. Formatear el dispositivo iSCSI compartido con un sistema de ficheros ext3 desde la máquina CLIENTE1, crear un punto de montaje, montarlo como ext3, crear uno o más ficheros y desmontar el dispositivo
    root@cliente1:~# mkfs.ext3 /dev/sdc
    	
    root@cliente1:~# mkdir /mnt/prueba_en_uno
    	
    root@cliente1:~# mount -t ext3  /dev/sdc /mnt/prueba_en_uno
    	
    root@cliente1:~# touch /mnt/prueba_en_uno/creado_por_uno_{0,1,2}.txt
    	
    root@cliente1:~# umount /dev/sdc
    

  2. En la máquina CLIENTE2, crear un punto de montaje, montar el dispositivo iSCSI compartido como ext3 y verificar que los archivos creados por CLIENTE1 están en el disco.

    Nota: no es necesario formatearlo de nuevo, ya se hizo en CLIENTE1

    root@cliente2:~# mkdir /mnt/prueba_en_dos
    	
    root@cliente2:~# mount -t ext3  /dev/sdc /mnt/prueba_en_dos
    	
    root@cliente2:~# ls -l /mnt/prueba_en_dos/
    
    root@cliente2:~# touch /mnt/prueba_en_dos/creado_por_dos_{0,1,2}.txt
    	
    root@cliente2:~# umount /dev/sdc
    

  3. Montar en ambas máquinas el dispositivo iSCSI compartido como ext3 y probar varias operaciones (crear, modificar, borrar ficheros) sobre el sistema de ficheros alternando ambas máquinas.

  4. Si se desmonta el dispositivo en ambas máquinas y se vuelve a montar, comprobar qué cambios se han mantenido y cuáles se han perdido

    Conclusión: No es posible usar sistemas de ficheros convencionales (ext3, por ejemplo) simultáneamente en dos o más equipos que compartan un mismo dispositivo iSCSI.

3.3.2 EXTRA: Configuración permanente de initiators

<pendiente>

4 PREVIO 2: Uso del sistema de ficheros en cluster OCFS2 [no entregable]

 

4.1 Funcionamiento OCFS2 y comandos básicos

Como se ha comprobado, en un escenario como el utilizado en este ejemplo (un dispositivo de bloques expuesto en la red mediante iSCSI) u otros similares donde varios equipos puedan acceder simultáneamente a un dispositivo de bloques compartido, los sistema de ficheros convencionales (ext3, ext4, ntfs y similares) no pueden ser utilizados, dado que por su diseño asumen que el dispositivo de bloques sólo es accedido por una única máquina. Sólo en el caso de garantizar el montaje en modo sólo escritura del dispositivo compartido por parte de todos los participantes, se podría usar esa opción de modo fiable.

Para garantizar la consistencia de los datos y evitar la corrupción de las estructuras de datos propias del sistema de ficheros ante ese uso concurrente del dispositivo de almacenamiento, es necesario hacer uso de sistemas de ficheros ”de cluster”. Se trata de sistemas de ficheros que añaden una capa de coordinación adicional sobre el almacenamiento compartido que coordina el acceso de los equipos finales a los bloques de datos mediante mecanismos de bloqueo (lock) distribuidos.

Ejemplos de este tipo de sistemas de ficheros serían:

4.1.1 Paquetes necesarios (ya instalados)

	root@cliente1:~# apt-get install ocfs2-tools 
	
	root@cliente2:~# apt-get install ocfs2-tools

4.1.2 Comandos básicos

Como resultado de la instalación del paquete ocsf2-tools estarán disponibles, entre otros, los siguientes comandos/herramientas

En el caso de OCFS2 los nodos que forman parte del cluster se comunican y coordinan a través del puerto TCP 7777 (puerto por defecto).

4.2 Configuración y uso del cluster OSCF2

 
  1. Declarar el cluster formado por las máquinas CLIENTE1 y CLIENTE2

    El script o2cb, instalado como parte del paquete ocf2-tools, se encarga de la gestión del cluster

    1. Editar el fichero de definición del cluster /etc/ocfs2/cluster.conf en CLIENTE1 (creándolo si no existe)
      root@cliente1:~# nano /etc/ocfs2/cluster.conf
      			
      cluster:
      	heartbeat_mode = local
      	node_count = 2
      	name = clustercda
      
      node:
      	number = 0
      	cluster = clustercda
      	ip_port = 7777
      	ip_address = 192.168.100.22
      	name = cliente1
      
      node:
      	number = 1
      	cluster = clustercda
      	ip_port = 7777
      	ip_address = 192.168.100.33
      	name = cliente2
      

      Nota: Otra alternativa es configurar el cluster OCSFS2 empleando el comando o2cb

      root@cliente1:~# o2cb add-cluster clustercda
      root@cliente1:~# o2cb add-node clustercda cliente1 --ip 192.168.100.22
      root@cliente1:~# o2cb add-node clustercda cliente2 --ip 192.168.100.33
      

      Importante: Las tabulaciones de las diferentes secciones del documento son relevantes.

    2. Copiar el fichero /etc/ocfs2/cluster.conf a CLIENTE2 (o volver a crearlo desde cero)
      			root@cliente1:~# scp /etc/ocfs2/cluster.conf root@192.168.100.33:/etc/ocfs2/
      

      Importante: Para que esta copia remota con scp pueda hacerla el usuario root, debe habilitarse en CLIENTE2 la opción de login SSH como root (deshabilitada por defecto como medida de seguridad) y reiniciar el servicio.

      			root@cliente2:~# nano /etc/ssh/sshd_config 
      			
      			...
      			# Authentication:	
      			#PermitRootLogin without-password
      			PermitRootLogin yes
      			...
      			
      			root@cliente2:~# service sshd restart
      

    3. Editar en ambas máquinas (CLIENTE1 y CLIENTE2) el fichero /etc/default/o2cb con la configuración de inicio del servicio o2cb
      root@cliente1:~# nano /etc/default/o2cb 
      root@cliente2:~# nano /etc/default/o2cb
      

      Asegurar, en ambos casos, que el parámetro O2CB_ENABLED está habilitado (indica que se inicie OCFS2 en el arranque) y que el parámetro O2CB_BOOTCLUSTER se corresponde con el nombre de nuestro cluster (indica el cluster a iniciar/unirse).

      ...
      # O2CB_ENABLED: 'true' means to load the driver on boot.
      O2CB_ENABLED=true 
      			
      # O2CB_BOOTCLUSTER: If not empty, the name of a cluster to start.
      O2CB_BOOTCLUSTER=clustercda
      ...
      

      • Extra: También es posible configurar los parámetros del servicio o2cb reconfigurando el paquete ocfs2-tools (no necesario en nuestro caso)
        root@cliente1:~# dpkg-reconfigure ocfs2-tools
        				
        root@cliente2:~# dpkg-reconfigure ocfs2-tools
        

    4. Arrancar/reiniciar el servicio o2cb en ambas máquinas para cargar la nueva configuración
      root@cliente1:~# service o2cb stop
      root@cliente1:~# service o2cb start
      root@cliente1:~# service o2cb status
      root@cliente1:\~{}\# service o2cb status
      * o2cb.service - LSB: Load O2CB cluster services at system boot.
         Loaded: loaded (/etc/init.d/o2cb; generated; vendor preset: enabled)
         Active: active (running) since Tue 2018-09-25 09:37:50 CEST; 20s ago
           Docs: man:systemd-sysv-generator(8)
         Process: 1823 ExecStop=/etc/init.d/o2cb stop (code=exited, status=0/SUCCESS)
         Process: 1873 ExecStart=/etc/init.d/o2cb start (code=exited, status=0/SUCCESS)
           Tasks: 1 (limit: 4915)
           CGroup: /system.slice/o2cb.service
                   |-- 1922 o2hbmonitor
      
      sep 25 09:37:49 cliente1.cda.net systemd[1]: Starting LSB: Load O2CB cluster services at system boot....
      sep 25 09:37:49 cliente1.cda.net o2cb[1873]: Loading stack plugin "o2cb": OK
      sep 25 09:37:49 cliente1.cda.net o2cb[1873]: Loading filesystem "ocfs2\_dlmfs": OK
      sep 25 09:37:49 cliente1.cda.net o2cb[1873]: Creating directory '/dlm': OK
      sep 25 09:37:49 cliente1.cda.net o2cb[1873]: Mounting ocfs2\_dlmfs filesystem at /dlm: OK
      sep 25 09:37:49 cliente1.cda.net o2cb[1873]: Setting cluster stack "o2cb": OK
      sep 25 09:37:50 cliente1.cda.net o2cb[1873]: Registering O2CB cluster "clustercda": OK
      sep 25 09:37:50 cliente1.cda.net o2cb[1873]: Setting O2CB cluster timeouts : OK
      sep 25 09:37:50 cliente1.cda.net systemd[1]: Started LSB: Load O2CB cluster services at system boot..
      sep 25 09:37:50 cliente1.cda.net o2hbmonitor[1922]: Starting
      			
      
      root@cliente2:~# service o2cb stop
      root@cliente2:~# service o2cb start
      root@cliente2:~# service o2cb status
      * o2cb.service - LSB: Load O2CB cluster services at system boot.
         Loaded: loaded (/etc/init.d/o2cb; generated; vendor preset: enabled)
         Active: active (running) since Tue 2018-09-25 09:40:16 CEST; 1s ago
           Docs: man:systemd-sysv-generator(8)
         Process: 2036 ExecStop=/etc/init.d/o2cb stop (code=exited, status=0/SUCCESS)
         Process: 2086 ExecStart=/etc/init.d/o2cb start (code=exited, status=0/SUCCESS)
           Tasks: 1 (limit: 4915)
           CGroup: /system.slice/o2cb.service
                   |-2134 o2hbmonitor
      
      sep 25 09:40:15 cliente2.cda.net systemd[1]: Starting LSB: Load O2CB cluster services at system boot....
      sep 25 09:40:16 cliente2.cda.net o2cb[2086]: Loading stack plugin "o2cb": OK
      sep 25 09:40:16 cliente2.cda.net o2cb[2086]: Loading filesystem "ocfs2_dlmfs": OK
      sep 25 09:40:16 cliente2.cda.net o2cb[2086]: Creating directory '/dlm': OK
      sep 25 09:40:16 cliente2.cda.net o2cb[2086]: Mounting ocfs2_dlmfs filesystem at /dlm: OK
      sep 25 09:40:16 cliente2.cda.net o2cb[2086]: Setting cluster stack "o2cb": OK
      sep 25 09:40:16 cliente2.cda.net o2cb[2086]: Registering O2CB cluster "clustercda": OK
      sep 25 09:40:16 cliente2.cda.net o2cb[2086]: Setting O2CB cluster timeouts : OK
      sep 25 09:40:16 cliente2.cda.net systemd[1]: Started LSB: Load O2CB cluster services at system boot..
      sep 25 09:40:16 cliente2.cda.net o2hbmonitor[2134]: Starting
      

      • Nota 1: en lugar de service o2cb start podría haberse usado la combinación service o2cb load, seguido de service o2cb online cluster_cda (en este caso los resultados son idénticos, esta alternativa tendría sentido en un escenario con varios clusters OCFS2 definidos)

      • Nota 2: En este momento, desde cualquiera de los nodos del cluster se puede ejecutar la herramienta gráfica ocfs2console, para ver y gestionar el cluster (añadir/liminar nodos, formatear dispositivos, montar el sistema de ficheros).

  2. Formatear en una de las máquinas el dispositivo AoE expuesto en el apartado anterior con un sistema de ficheros OCFS2

    root@cliente1:~# mkfs -t ocfs2 /dev/sdc
    mkfs.ocfs2 1.8.4
    Cluster stack: classic o2cb
    Label: 
    Features: sparse extended-slotmap backup-super unwritten inline-data strict-journal-super xattr indexed-dirs refcount discontig-bg
    Block size: 1024 (10 bits)
    Cluster size: 4096 (12 bits)
    Volume size: 104857600 (25600 clusters) (102400 blocks)
    Cluster groups: 4 (tail covers 2560 clusters, rest cover 7680 clusters)
    Extent allocator size: 2097152 (1 groups)
    Journal size: 4194304
    Node slots: 2
    Creating bitmaps: done
    Initializing superblock: done
    Writing system files: done
    Writing superblock: done
    Writing backup superblock: 0 block(s)
    Formatting Journals: done
    Growing extent allocator: done
    Formatting slot map: done
    Formatting quota files: done
    Writing lost+found: done
    mkfs.ocfs2 successful
    

  3. Montar en ambos ”clientes” el sistema de ficheros OCFS2 sobre el punto de montaje del ejemplo anterior (/mnt/prueba_en_uno, /mnt/prueba_en_dos) y comprobar su funcionamiento (crear archivos en una máquina, comprobar que son visibles desde la otra, eliminar y/o modificar archivos en máquinas distintas, etc)
    root@cliente1:~# mkdir /mnt/prueba_en_uno
    root@cliente1:~# mount -t ocfs2 /dev/sdc /mnt/prueba_en_uno
    root@cliente1:~# touch /mnt/prueba_en_uno/ocfs_en_uno.{a,b,c}
    
    root@cliente2:~# mkdir /mnt/prueba_en_dos
    root@cliente2:~# mount -t ocfs2 /dev/sdc /mnt/prueba_en_dos
    root@cliente1:~# touch /mnt/prueba_en_dos/ocfs_en_dos.{a,b,c}
    
    root@cliente1:~# ls /mnt/prueba_en_uno
    
    root@cliente2:~# ls /mnt/prueba_en_dos
    

5 Tareas entregables

 

5.1 Eliminar trazas del ejemplo anterior (no entregable)

  1. Desmotar el sistema de ficheros
    root@cliente1:~# umount /mnt/prueba_en_uno
    
    root@cliente2:~# umount /mnt/prueba_en_dos
    

  2. Desconectar ambos initiator del target
     
    root@cliente1:~# iscsiadm  --m node  --targetname iqn.2018-09.net.cda.discos:pruebas --portal 192.168.100.11 --logout
    	
    root@cliente2:~# iscsiadm  --m node  --targetname iqn.2018-09.net.cda.discos:pruebas --portal 192.168.100.11 --logout
    

  3. Eliminar la definición actual de LUNs y target en la máquina DISCOS
    root@discos:~# tgtadm --lld iscsi --mode logicalunit --op delete --tid 1 --lun 1
    	
    root@discos:~# tgtadm --lld iscsi --mode target --op delete --tid 1
    

5.2 Tareas a realizar (entregable)

 
  1. Definir un array de discos RAID5 con los 4 dispositivos disponibles en la máquina DISCOS (/dev/sdc,/dev/sdd,/dev/sde,/dev/sdf)
  2. Crear un grupo de volúmenes LVM empleando como volumen físico el array RAID5 anterior y definir tres volúmenes lógicos con 50 MB de capacidad cada uno (con los nombres UNO,DOS,COMPARTIDO)
  3. Definir el/los target/targets para hacer disponibles mediante iSCSI estos tres volúmenes lógicos
    1. sólo CLIENTE1 tendrá acceso al volumen lógico UNO
    2. sólo CLIENTE2 tendrá acceso al volumen lógico DOS
    3. CLIENTE1 y CLIENTE2 tendrán ambos acceso al volumen lógico COMPARTIDO
  4. Configurar y conectar los initiator de CLIENTE1 y CLIENTE2 conforme a las restricciones anteriores
  5. Formatear y montar los dispositivos iSCSI en las máquinas CLIENTE1 y CLIENTE2
    1. En CLIENTE1 se formateará como ext3 el LUN correspondiente al volumen lógico UNO y se montará en /mnt/uno
    2. En CLIENTE2 se formateará como ext3 el LUN correspondiente al volumen lógico DOS y se montará en /mnt/dos
    3. En CLIENTE1 se formateará como ocfs2 (configurando previamente el cluster OCFS2 si fuera necesario) el LUN correspondiente al volumen lógico COMPARTIDO y tanto en CLIENTE1 como en CLIENTE2 se montará en /mnt/compartido
  6. Comprobar el correcto montaje y funcionamiento de los dispositivos montados.

6 Entrega

Práctica individual

Documentación entregable (un único archivo PDF [sin tildes ni espacios en el nombre])

Entrega: hasta Domingo 21/10/2018 en FATIIC