Saltar al contenido principal

Crear, inicializar y compartir discos

En cualquier sistema debemos tener discos de usuario para poder guardar nuestros datos.
Veremos cómo:

  • Crear discos en ZD&T (3390 modelo 1, 2, 3, 9, 27, 54 y EAV),
  • Iniciarlos en z/OS (SMS y NO-SMS)
  • Compartirlos con otro sistema (ZD&T y z/OS).
info

Como referencia utilizaremos el Redbook de zPDT.
http://www.redbooks.ibm.com/redbooks/pdfs/sg248205.pdf

Para crear discos emulados, usaremos el comando alcckd.

alcckd file_name -ddevice_type

Se pueden crear modelos predefinidos mediante la opción device_type. Los modelos pueden ser:

  • 3390-1 (cyl: 1.113)
  • 3390-2 (cyl: 2.226)
  • 3390-3 (cyl: 3.339)
  • 3390-9 (cyl: 10.017)
  • 3390-27 (cyl: 32.760)
  • 3390-54 (cyl: 65.520)
  • 3390-A (EAV – Extended Address Volumes – cyl: 65.667)

Crear discos en IBM ZD&T

Por ejemplo: Mod 3390-3 (cyl: 3.339)

alcckd /home/ibmsys1/volumes/PRD000 –d3390-3

Mod 3390-9 (cyl: 10.017)

alcckd /home/ibmsys1/volumes/PRD000 –d3390-9

Mod 3390-A EAV (cyl: 65.667)

alcckd /home/ibmsys1/volumes/PRD000 –d3390-A

Emuframe image

Tamaño de modelo 3390-3.

Emuframe image

Emuframe image

Tamaño de modelo 3390-9.

Emuframe image

Emuframe image

También podemos crear otros modelos que no sean “predefinidos”, como el modelo 3390-27, 3390-54 y EAV (más de 65.520 cilindros). Usaremos el comando:

alcckd file_name -d3390 -snumber_of_cylinders

Por ejemplo: Mod 3390-27 (cyl: 32.760)

alcckd /home/ibmsys1/volumes/PRD000 –d3390 -s32760

Mod 3390-54 (cyl: 65.520)

alcckd /home/ibmsys1/volumes/PRD000 –d3390 -s65520

Mod 3390-A EAV (más de cyl: 65.667. Siempre debe ser múltiplo de 1.113 cyl, por ejemplo, 72.345 cyl)

alcckd /home/ibmsys1/volumes/PRD000 –d3390 –s72345

Emuframe image

Emuframe image

Tamaño de EAV – 72.345 cyl.

Emuframe image

Para poder acceder a estos discos desde z/OS, debemos añadirlos al fichero de configuración (de la misma forma que los volúmenes que ya tenemos).

Emuframe image

Montar discos

Si ya tenemos arrancado un sistema, podemos añadirlos al fichero y, después, asignarlos al sistema de forma dinámica con el comando:

awsmount device -m volumen_path

Por ejemplo:

awsmount 0AA5 -m /home/ibmsys1/volumes/PRD001

Podemos comprobar el disco que tenemos montado en un dispositivo con el comando:

awsmount device -q

Por ejemplo:

awsmount 0AA5 -q

Emuframe image

Una vez tenemos los discos montados en el sistema z/Os, vamos a inicializarlos para poder empezar a utilizarlos.

Antes de inicializar un disco debemos decidir si este disco será SMS (si lo incluiremos en un Storage Group) o si será NO-SMS.
Vamos a ver ambos ejemplos:

Inicializar disco NO-SMS en z/OS

Para inicializar un disco NO-SMS, tendemos que:

Poner offline la unidad. Comando:

VARY xxxx,OFFLINE

Por ejemplo:

V 0AA2,OFFLINE

Emuframe image

Job para inicializar el disco NO-SMS

//DISKNSMS JOB CLASS=A,MSGCLASS=Q,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//*
//ICKDSF EXEC PGM=ICKDSF,REGION=4096K
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
INIT UNITADDRESS(0AA2) NOVERIFY VOLID(PRD003) PURGE -
VTOC(0,1,149) INDEX(15,0,100)
/*

UNITADDRESS Unidad que pusimos offline.

VOLID Nombre que le daremos al volumen. Debe ser único.

VTOC Volume Table Of Contents. Este número puede ser variable porque depende del número de ficheros que tendremos en el disco. Los tres parámetros que usaremos son: cylinder, head y extent. Cylinder y head es la “posición” en el disco y extent, lo que ocupará.

INDEX Es el índice de la VTOC. Los tres parámetros que usaremos son: cylinder, head y extent. Cylinder y head es la “posición” en el disco y extent, lo que ocupará. El índice se puede poner a continuación de la VTOC dentro del disco (si nuestra VTOC son 149 tracks, el siguiente cilindro sería el 10 (150 tracks dividido entre 15)).

tip

Si queremos extender esta VTOC porque se ha llenado, pienso que es más fácil mover cualquier otro fichero a otro disco, que mover el índice, por lo tanto, no lo pongo seguido.
Otra opción es poner primero el índice y luego la VTOC.

Emuframe image

Respondemos U al reply.

Emuframe image

Terminará correctamente.

Emuframe image

Poner online la unidad. Comando:

VARY xxxx,ONLINE

Por ejemplo:

V 0AA2,ONLINE

Emuframe image

Ahora podremos comprobar la unidad.

Emuframe image

Cuando tenemos un disco EAV veremos la información de la VTOC de la siguiente forma.

Emuframe image

Si tenemos un disco de hasta modelo 54, lo veremos así.

Emuframe image

Montar disco - VATLSTxx

Este paso es opcional
Ahora vamos montar una unidad. En mi caso, uso el comando:

m /0AA5,vol=(sl,PRD001),use=STORAGE
NOTA

Si el comando se da desde SDSF, será:

/m /0AA5,vol=(sl,PRD001),use=STORAGE

El atributo use puede ser uno de los siguientes:

PRIVATE Solo se crearán nuevas librerías en ese disco, si al crearlos especificamos que se haga en ese volumen (VOL=SER=xxxxxx).

PUBLIC Se guardarán las librerías temporales, si no se especifica un volumen al crearlas. También se guardarán las librerías que, al crearlas, especifiquemos que se haga en ese volumen (como ocurre en private).

STORAGE Se guardarán librerías permanentes y temporales en las que no se especifique un volumen al crearlas. También aquellas que especifiquemos que se guarden en ese volumen.

Emuframe image

Emuframe image

Además, podemos añadir el disco NO-SMS al miembro VATLSTxx de la PARMLIB para que se monte automáticamente después de un IPL.

Los parámetros para cada entrada siguen la siguiente estructura:

Columna 1 a 6. Es el nombre del volumen. Podemos usar los comodines: * o %.

Columna 8. 0 para "resident volumes" y 1 para "reserved volumes".

Columna 10. Para definir el atributo de uso. 0 - STORAGE, 1 - PUBLIC, 2 - PRIVATE.

Columna 12 a 19. Es el tipo de disco. Es necesario poner bien el tipo, ya que cuando arranquemos el sistema, lo desmontará si no es correcto.

Columna 21. (Y o N) Indica si el volumen es necesario para que arranque el sistema. Si ponemos "Y" aparecerá una reply solicitando que se monte el disco.

Columna 23 a 71. Se usa para comentarios.

Emuframe image

Inicializar disco SMS en z/OS

Para inicializar un disco SMS, tendemos que:

Poner offline la unidad. Comando:

VARY xxxx,OFFLINE

Por ejemplo:

V 0AA4,OFFLINE

Emuframe image

Job para inicializar el disco SMS

//DISKSMS  JOB CLASS=A,MSGCLASS=Q,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//*
//ICKDSF EXEC PGM=ICKDSF,REGION=4096K
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
INIT UNITADDRESS(0AA4) NOVERIFY VOLID(PRD002) PURGE -
VTOC(0,1,149) INDEX(15,0,100) -
STORAGEGROUP
/*

UNITADDRESS Unidad que pusimos offline.

VOLID Nombre que le daremos al volumen. Debe ser único.

VTOC Volume Table Of Contents. Este número puede ser variable porque depende del número de ficheros que tendremos en el disco. Los tres parámetros que usaremos son: cylinder, head y extent. Cylinder y head es la “posición” en el disco y extent, lo que ocupará.

INDEX Es el índice de la VTOC. Los tres parámetros que usaremos son: cylinder, head y extent. Cylinder y head es la “posición” en el disco y extent, lo que ocupará. El índice se puede poner a continuación de la VTOC dentro del disco (si nuestra VTOC son 149 tracks, el siguiente cilindro sería el 10 (150 tracks dividido entre 15)).

tip

Si queremos extender esta VTOC porque se ha llenado, pienso que es más fácil mover cualquier otro fichero a otro disco, que mover el índice, por lo tanto, no lo pongo seguido.
Otra opción es poner primero el índice y luego la VTOC.

STORAGEGROUP Requerido para inicializar el disco como SMS y poder añadirlo a un Storage Group.

Emuframe image

Respondemos el reply. El job debería termina correctamente.

Emuframe image

Poner online la unidad. Comando:

VARY xxxx,ONLINE

Por ejemplo:

V 0AA4,ONLINE

Añadir disco a un STORAGE GROUP.

Vamos a ver un ejemplo de añadir un disco a un storage group.
Entramos en ISMF.
Si es la primera vez que entramos, es posible que no veamos todas las opciones. Entramos en la opción 0 – ISMF Profile.

Emuframe image

Opción 0 – User Mode Selection.

Emuframe image

Marcamos la opción 2 – For a Storage Administrator (SA). Pulsamos enter, salimos y entramos en ISMF de nuevo.

Emuframe image

Ya tendemos la opción 6 – Storage Group disponible.

Emuframe image

Si queremos consultar la configuración SMS activa, debemos poner ACTIVE en el campo CDS Name. Ponemos * en Storage Group Name.

Pulsamos enter para ver el listado de todos los Storage Groups.

Emuframe image

Si queremos ver los discos que contiene un SG, usamos el comando LISTV.

Emuframe image

En mi caso, hay muchos discos definidos, pero solo está online en el sistema el disco A4USR1.

Emuframe image

Para añadir un disco al storage group SGBASE, primero debemos conocer el nombre del fichero CSD.
En SDSF, usamos el comando:

D SMS

Emuframe image

En CDS Name, ponemos el nombre que hemos visto con el comando D SMS.
En Storage Group Name, ponemos el storage group en el que lo añadiremos.
Elegimos la opción 5 – Volume.

Emuframe image

Elegimos la opción 2 – Define y ponemos el nombre del disco. Pulsamos enter.

Emuframe image

En la opción SMS Vol Status, podemos poner una de las opciones que aparecen a la derecha.

En mi caso, pondré ENABLE.

Emuframe image

Emuframe image

Pulsamos F3 y veremos el mensaje ALL VOLUMES DEFINED.

Emuframe image

Activamos la nueva configuración, para que el nuevo volumen sea usado.
Entramos en la opción 8 – Control Data Set del panel principal.

Emuframe image

En CDS Name, ponemos el nombre de dataset.
Elegimos la opción 5 – Activate.

Emuframe image

Marcamos la opción Perform Activation.

Emuframe image

Aparecerá mensaje de confirmación.

Emuframe image

Si comprobamos los discos del storage group en la configuración activa (ACTIVE), veremos el nuevo disco.

Ya tendremos el disco SMS inicializado y añadido a un Storage Group.

Emuframe image

Compartir discos entre dos sistemas z/OS (aplicable a IBM ZD&T)

Necesitamos es tener instalado un servidor NFS (Network File System) en el sistema Ubuntu que compartirá los discos (SERVIDOR).

Podemos instarlo con el comando:

apt-get install nfs-kernel-server

Emuframe image

El siguiente paso es añadir al fichero /etc/exports el directorio que queremos compartir y la IP que tendrá acceso.
Por ejemplo:

/home/ibmsys1/volumes 192.168.1.0/24(rw,sync,no_subtree_check)

Emuframe image

Ahora usaremos el siguiente comando para cargar los permisos que hemos puesto en el fichero /etc/exports:

exportfs -a

Reiniciamos el servicio del servidor NFS:

systemctl restart nfs-kernel-server

Emuframe image

En el fichero de configuración del emulador debemos añadir el parámetro --shared en la definición de los discos.
De esta forma, el emulador sabrá que esos ficheros se comparten y podrá gestionar su uso (lectura, escritura…).

Emuframe image

Cuando arranquemos el emulador del sistema z/OS, veremos lo siguiente:

Emuframe image

Ahora en el sistema Ubuntu cliente (el sistema que utilizará los discos compartidos), instalamos el cliente NFS.
Comando:

apt-get install nfs-common

Emuframe image

Una vez instalado, creamos un directorio para montar el recurso compartido:

mkdir -p /mnt/zdt-volumes

Montamos el recurso compartido (en mi caso, la IP del servidor es 192.168.1.34) y el directorio que acabamos de crear. Por ejemplo:

mount 192.168.1.34:/home/ibmsys1/volumes /mnt/zdt-volumes
NOTA

Si vamos a usar estos discos compartidos de forma habitual, es recomendable añadirlos para que se monten cuando arranque el sistema Ubuntu.

Emuframe image

Ahora los tendremos disponibles:

Emuframe image

Los añadimos al fichero de configuración:

Emuframe image

Cuando arranquemos el segundo sistema z/OS, deberíamos poder acceder al disco.

Emuframe image

Ahora voy a crear un dataset desde el primer sistema z/OS.

Emuframe image

Desde el segundo sistema z/OS, al acceder por disco (ya que los catálogos no son compartidos), veremos el dataset creado.

Emuframe image