• principal_3

    Desde 2015, enseñando sobre el sistema operativo z/OS de IBM en esta web. z/OS se utiliza en máquinas llamadas Mainframe.

  • principal_1

    Para realizar el contenido, utilizo el producto de IBM llamado z/Development and Test Environtment Personal Edition. Este software permite emular un Mainframe y así poder utilizar z/OS para aprender.

  • principal_2

    Es utilizado por grandes empresas (bancos, aseguradoras...). Aquí aprenderás a instalar y configurar productos relacionados con z/OS.

  • principal_4

    ADCD es una distribución de z/OS que contiene productos de IBM como IMS, DB2, CICS, ZOWE, TWS, NetView, System Automation, etc.

IBM Z Development and Test Environment - Crear, inicializar y compartir discos

Adjuntos:
Descargar este archivo (JOB_INIT_NO-SMS.txt)JOB_INIT_NO-SMS[Inicializa volumen NO-SMS]0.5 kB
Descargar este archivo (JOB_INIT_SMS.txt)JOB_INIT_SMS[Inicializa volumen SMS]0.5 kB

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) y compartirlos con otro sistema (ZD&T y z/OS).

Como referencia utilizaremos el Redbook de zPDT

 

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-A (EAV – Extended Address Volumes – cyl: 65.667)

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

 001 watermark

 

Tamaño de modelo 3390-3.

002 watermark

 

003 watermark

 

Tamaño de modelo 3390-9.

004 watermark

 

005 watermark

 

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

006 watermark

 

007 watermark

 

Tamaño de modelo EAV – 72.345 cyl.

008 watermark

 

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).

009 watermark

 

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

010 watermark

 

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

 

Para inicializar un disco NO-SMS, tendemos que:

Poner offline la unidad. Comando:

VARY xxxx,OFFLINE

Por ejemplo:

V 0AA2,OFFLINE

011 watermark

 

Ejecutar el job para inicializar el disco.

El job se puede descargar al principio de la entrada.

 

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)), pero 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. 

012 watermark

 

Respondemos “U” al reply.

013 watermark

 

Terminará correctamente.

014 watermark

 

Poner online la unidad. Comando:

VARY xxxx,ONLINE

Por ejemplo:

V 0AA2,ONLINE

015 watermark

 

Ahora podremos comprobar la unidad.

016 watermark

 

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

017 watermark

 

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

018 watermark

 

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.

019 watermark

 

020 watermark

 

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.

En el siguiente enlace se explica:

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.

021 watermark

 

Inicializar disco SMS

 

Para inicializar un disco SMS, tendemos que:

Poner offline la unidad. Comando:

VARY xxxx,OFFLINE

Por ejemplo:

V 0AA4,OFFLINE

Ejecutar el job para inicializar el disco.

El job se puede descargar al principio de la entrada.

 

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)), pero 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.

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

022 watermark

 

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

023 watermark

 

Poner online la unidad. Comando:

VARY xxxx,ONLINE

Por ejemplo:

V 0AA4,ONLINE

 

Añadir el 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.

024 watermark

 

Opción 0 – User Mode Selection.

025 watermark

 

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

026 watermark

 

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

027 watermark

 

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.

028 watermark

 

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

029 watermark

 

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

030 watermark

 

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

D SMS

031 watermark

 

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.

032 watermark

 

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

033 watermark

 

En la opción “SMS Vol Status”, podemos poner una de las opciones que aparecen a la derecha. En mi caso, pondré “ENABLE”.

034 watermark

 

035 watermark

 

Pulsamos F3 y veremos el mensaje “ALL VOLUMES DEFINED”.

036 watermark

 

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

037 watermark

 

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

038 watermark

 

Marcamos la opción “Perform Activation”.

039 watermark

 

Aparecerá mensaje de confirmación.

040 watermark

 

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

041 watermark

 

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

 

Compartir discos entre dos sistemas z/OS

 

Lo primero que 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

042 watermark

 

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)

043 watermark

 

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

044 watermark

 

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…).

045 watermark

 

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

046 watermark

 

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

apt-get install nfs-common

047 watermark

 

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.

048 watermark

 

Ahora los tendremos disponibles:

049 watermark

 

Los añadimos al fichero de configuración:

050 watermark

 

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

051 watermark

 

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

052 watermark

 

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

053 watermark

 

 

¡Espero que este post os haya gustado!

 

 

 

Publish modules to the "offcanvs" position.