Implementando DFHSM

Escrito por Javier

Después de configurar nuestra librería de cintas emulada, usando MFNetDisk, vamos a aprovechar para implementar DFHSM. Anteriormente ya hicimos la configuración de NFNetDisk. Además de SMS, RMM y OAM.

MFNetDisk - Emulando VTS - Parte 1/2

Comentar que tuve que instalar MFNetDisk en un Windows XP ya que con Windows 10, daba bastantes errores.

He logrado configurar DFHSM en la versión de z/OS 1.10 y 1.13. Aparentemente, funciona bien. En z/OS 2.3, no he logrado hacerlo funcionar por problemas con MFNetDisk, pero, como el objetivo del blog es aprender, se mostrará la instalación en z/OS 1.13.

Para esta entrada nos guiaremos con el siguiente manual de IBM:

DFSMShsm starter set

El manual es de la versión 2.1, pero, en principio, nos servirá.

En la librería SYS1.SAMPLIB encontraremos un job llamado ARCSTRST que sirve para crear todos los ficheros que utilizaremos para implementar HSM.

Primero lo copiaremos a una librería nuestra, para modificarlo.

 001 watermark

 

Este job creará una librería que, por defecto, se llamará HSM.SAMPLE.CNTL con todos los siguientes miembros:

Member

Description

STARTER

Contains the DFSMShsm starter set.

ARCCMD01

Contains DFSMShsm parameter specifications for using migration level 2 tape.

ARCCMD90

Contains sample ADDVOL commands for the starter set.

ARCCMD91

Contains sample ADDVOL commands for the starter set using migration level 2 tape.

HSMHELP

Contains a sample of the help file listing DFSMShsm commands and syntax.

HSMLOG

Contains a job to print the DFSMShsm log.

HSMEDIT

Contains a job to print the edit-log.

ALLOCBK1

Contains a sample job to allocate four control data set backup version data sets for each control data set.

ALLOSDSP

Contains a sample job to allocate a small data set packing data set.

HSMPRESS

Contains a job to reorganize the control data sets.

Ahora lo editamos para poner una ficha job. Además yo he cambiado el nombre de la librería por HSM1.SAMPLE.CNTL para evitar problemas al crear un alias más adelante. Hay que cambiarlo en dos sitios. Lo ejecutamos.

001 watermark

 

Terminará correctamente.

Entramos en la librería que acabamos de crear y editamos el miembro STARTER, que creará varios ficheros. Con este job crearemos un HSM básico.

NOTA: Antes de empezar con este job, he inicializado varios discos modelo 3390-3 (HSM000-HSM009) para utilizarlos con HSM.

Empezaremos añadiendo la ficha job y modificaremos los siguientes parámetros antes de ejecutar el job. Es mejor utilizar el comando “change” para cambiarlos ya que pueden aparecer en varias líneas.

?MCDSVOL   -  MCDS VOLUME > HSM001

?MCDSUNT   -  UNIT MCDS VOLUME > 3390                

?BCDSVOL   -  BCDS VOLUME > HSM002

?BCDSUNT   -  UNIT BCDS VOLUME > 3390               

?OCDSVOL   -  OCDS VOLUME > HSM003 

?OCDSUNT   -  UNIT OCDS VOLUME > 3390               

?CDSSIZE   -  CYLINDERS TO INITIALLY ALLOCATE FOR ANY CONTROL DATA SET > 20

?JRNLVOL   -  JOURNAL VOLUME > HSM004

?JRNLUNT   -  UNIT JOURNAL VOLUME > 3390            

?LOGVOL    -  LOG VOLUME > HSM004

?LOGUNIT   -  UNIT LOG VOLUME > 3390                

?TRACEVOL  - PROBLEM DETERMINATION AID VOLUME > HSM004

?TRACEUNIT -  UNIT PROBLEM DETERMINATION AID VOLUME > 3390

?UCATNAM   -  NAME USER CATALOG FOR DATA SETS. > CATALOG.HSM

?UCATVOL   -  USER CATALOG VOLUME > HSM004

?UCATUNT   -  UNIT USER CATALOG VOLUME > 3390 

?CTLAUTH   -  THE USER ID THAT CAN ISSUE DFSMSHSM AUTH COMMANDS > HSM

?UID       -  AUTHORIZED USER ID (1 - 7 CHARACTERS) FOR THE      

              DFSMSHSM-STARTED PROCEDURE IN A NON-FACILITY CLASS 

              ENVIRONMENT (SEE NOTE BELOW).  THIS IS THE         

              HIGH-LEVEL QUALIFIER FOR DFSMSHSM DATA SETS.        > HSM

?JESVER    -  THE JOB ENTRY SUBSYSTEM (JES); EITHER JES2 OR JES3  > JES2

?JOBPARM   -  JOB CARD PARAMETERS > Los correspondientes a cada instalación

?SCLOGNM   -  STORAGE CLASS FOR LOG AND JOURNAL > No lo uso. Además, quito las referencias a este parámetro para evitar errores.

?SCCDSNM   -  STORAGE CLASS NAME FOR CONTROL DATA SETS > No lo uso. Además, quito las referencias a este parámetro para evitar errores.

?MCDFHSM   -  MANAGEMENT CLASS NAME FOR DATA SETS > No lo uso. Además, quito las referencias a este parámetro para evitar errores.

?HOSTID    -  PROCESSING UNIT ID FOR THE PROBLEM DETERMINATION   

              AID FACILITY AND FOR IDENTIFYING THE HOST TO       

              DFSMSHSM                                            > 1

?PRIMARY   -  YES OR NO; DEFINES THE HOST PERFORMS AS A PRIMARY HOST  > YES              

?NEW       -  EXTENSION OF CDS NAME FOR IMPORT (HSMPRESS)  > Se modifica en el job HSMPCTLAUTH RESS. > NUEVO

Este job crea unos ficheros en SYS1.PROCLIB y SYS1.PARMLIB. Si queremos tenerlos en otras librerías, debemos cambiar estos parámetros en varios lugares del job.

Una vez modificados todos los parámetros, lo ejecutamos.

001 watermark

 

Terminará correctamente.

001 watermark

 

De forma opcional, podemos renombrar la STC que hemos creado “DFSMSHSM” con un nombre más corto, como HSM.

001 watermark

 

Como queremos que HSM pueda migrar ficheros a cinta, editaremos el miembro HSM1.SAMPLE.CNTL(ARCCMD01) porque nuestras cintas son tipo 3490.

001 watermark

 

Ahora lo copiamos al final del fichero de parámetros ADCD.Z113.PARMLIB(ARCCMD00) de nuestra parmlib.

001 watermark

 

Modificamos el miembro HSM1.SAMPLE.CNTL(ARCCMD91) para indicar las cintas que serán usadas para migrar ficheros. Yo añadiré varias cintas para probar. La unidad, en mi caso, es 3490.

001 watermark

 

Como hicimos con el fichero anterior, copiamos el miembro HSM1.SAMPLE.CNTL(ARCCMD91) al final del fichero ADCD.Z113.PARMLIB(ARCCMD00).

001 watermark

 

Modificaremos el fichero ARCCMD90 de HSM1.SAMPLE.CNTL. Este fichero de configuración sirve para añadir discos que usará HSM (ML1, Backup, Recall, etc.).

En mi caso, el nombre de los discos empieza por HSM* (unidad 3390) y las cintas por MTP* (unidad 3490).

Por ejemplo, en el disco HSM000 se guardarán los ficheros que se recuperen mediante recall.

Para las cintas, usaré el rango de MTP000 a MTP031, que definiremos más adelante en el programa MFNetDisk.

Revisad los comentarios que contiene el fichero para entender cada una de las opciones.

001 watermark

001 watermark

001 watermark

 

Como hicimos con los ficheros anteriores, copiamos el miembro HSM1.SAMPLE.CNTL(ARCCMD90) al final del fichero ADCD.Z113.PARMLIB(ARCCMD00).

001 watermark

 

Además, debemos cambiar todas las referencias que se hagan a unidades 3590-1 por 3490 en el fichero ARCCMD00, ya que es el tipo de cinta que se usa en MFNetDisk.

001 watermark

 

Para evitar que cuando intentemos recuperar un fichero migrado nos aparezca el reply de la imagen, modificaremos los siguientes parámetros del fichero ARCCMD00.

001 watermark

 

Pondremos los parámetros TAPEINPUTPROMPT a NO.

001 watermark

 

Ya tenemos nuestro fichero de parámetros.

Ahora vamos a ver la configuración necesaria en MFNetDisk.

Primero editamos el fichero de parámetros MPC.V013.SAMPLIB(MPCOPT).

Ponemos en el parámetro TPDRV el número de unidad inicial que simula las “bocas” del robot y cuantas tendremos. En mi caso, las unidades serán 8 de 0580 a 0587.

TAPEDRV  MVSDVNUM=0580,RANGE=8

NOTA: Cojo la unidad 0580 porque es la que está definida en el IODF (HCD) como 3490. No puedo usar la unidad 0570, que definimos en entradas anteriores, porque se usa para la librería de cintas.

En el parámetro TAPELOC definimos el nombre del volumen de las cintas y la cantidad. En mi caso, 32 cintas cuyo rango de nombres será MPT000 a MPT031.

NOTA: Debemos tener en cuanta que deben ser un rango que incluya las cintas que definimos en el fichero ARCCMD00 de HSM.

001 watermark

 

Vamos al programa PCTOOL y añadimos el rango de cintas que será NO-MTL. Config -> Tape -> TapesRange -> AddTapesRange -> NonMTL

001 watermark

 

Rellenamos el comando poniendo el nombre del volumen (MPT000) y el número de cintas (32).

001 watermark

 

Ahora arrancamos la tarea MPC con el comando S MPC,PRM=COLD.

001 watermark

 

Ponemos las unidades de las “bocas” online. En mi caso, pondré 6 con el comando V 0580-0585,ONLINE.

001 watermark

001 watermark

 

Ya tenemos la parte de las cintas terminada.

Antes de arrancar HSM, debemos revisar la tarea en la librería PROCLIB para confirmar que la parmlib del parámetro HSMPARM es la correcta. También podemos borrar o comentar este parámetro para usar la concatenación de parmlibs del sistema (comando “d parmlib”).

//HSMPARM  DD DSN=SYS1.PARMLIB,DISP=SHR

En mi caso sería:

//HSMPARM  DD DSN=ADCD.Z113.PARMLIB,DISP=SHR

001 watermark

 

Ahora arrancaremos HSM.

001 watermark

 

Nos aparecerá un warning de RACF, pero continuará cargando.

ARC0099E WARNING - RACF SPECIFIED WITH TAPESECURITY  899             

ARC0099E (CONT.) PARAMETER BUT RACF TAPEVOL RESOURCE CLASS NOT ACTIVE

001 watermark

 

Nos fijaremos que aparezca el mensaje “DFSMSMHSM INITIALIZATION SUCCESSFUL”.

001 watermark

 

Ahora voy a coger un dataset para realizar pruebas de backup, migrado y recall.

Empezaremos migrando el fichero con el comando HMIG.

Con las opciones por defecto, intentará migrarlo a ML1 (Migration Level 1), es decir, lo migrará a uno de los discos (HSM*) que definimos anteriormente.

001 watermark

 

Aparecerá un mensaje indicando que le proceso ha terminado.

001 watermark

 

El volumen del dataset será MIGRAT1.

Si entramos en el fichero, con Browse, por ejemplo, o ponemos el comando “HRECALL”. Recuperaremos el fichero. La diferencia es que con una “B” nos dejará la sesión pillada hasta que se desmigre el fichero y con “HRECALL” no.

001 watermark

001 watermark

 

Si nos fijamos en el volumen, ahora será el HSM000. Esto es debido a la definición que hicimos en el fichero de parámetros.

Ahora vamos a intentar migrar el fichero a ML2 (Migration Level 2), que, en nuestro caso, se trata de cintas.

La configuración más habitual que he visto, en los clientes que he trabajado, es migrar directamente a ML2, sin tener ML1 configurado. Normalmente, lo tienen así por el precio. Intentaré hacer una entrada para mostrar cómo quitar ML1 de la configuración y dejar sólo ML2.

Usaremos el comando TSO HMIG nombre_fichero ML2. En mi caso, TSO HMIG IBMUSER.PRUEBA.HSM ML2.

001 watermark

 

En mi caso, aparecer un mensaje indicando que el fichero necesita un backup antes de poder ser migrado.

001 watermark

 

Usaremos el comando HBACK.

001 watermark

 

Terminará correctamente.

001 watermark

 

Volvemos a intentar migrarlo a ML2.

001 watermark

 

001 watermark

 

Ahora aparecerá en MIGRAT2.

001 watermark

 

Cuando tenemos ML1 y ML2, la migración de ficheros de ML1 a ML2 se puede hacer de forma automática según lo que definamos en los parámetros de HSM o también se puede hacer de forma manual.

Si queremos liberar uno o varios volúmenes de ML1, podremos migrarlos a ML2 usando el comando “TSO HSEND FREEVOL MIGRATIONVOLUME(nombre_disco) AGE(antigüedad_en_ML1)”.

Por ejemplo:

Tenemos el siguiente dataset migrado a ML1 (MIGRAT1).

001 watermark

 

Sé que el único disco que uso para migrar ML1 es el HSM005.

001 watermark

 

Si compruebo el contenido del disco HSM005 desde 3.4, veo lo siguiente:

001 watermark

 

Para migrar a ML2 los ficheros que están en ML1 en este disco, usaré el siguiente comando desde la opción 6 de ISPF:

“HSEND FREEVOL MIGRATIONVOLUME(HSM005) AGE(0)”.

En el parámetro AGE, pongo 0 porque el fichero ha sido migrado hoy. Si pusiese AGE(1), migraría los ficheros que llevasen 1 día o más en ML1.

001 watermark

001 watermark

 

Si volvemos a buscar el contenido del disco HSM005, veremos que ya no estará el fichero.

001 watermark

 

Si buscamos el fichero IBMUSER.PRUEBA.HSM, veremos que ahora está en ML2 (MIGRAT2).

001 watermark

 

 

Espero que os haya gustado esta entrada. Aunque es una configuración muy básica, sirve para poder profundizar más en ello en el futuro.

 

 

 

Visto: 742

Escribir un comentario


Código de seguridad
Refescar