Conectando dos zOS por XCF (Sysplex) - Tercera Parte - Final

Escrito por Javier

Terminamos la entrada anterior haciendo una copia del sistema que hemos estado modificando desde que empezamos a configurar el Sysplex. Ahora vamos a arrancar el segundo sistema, el que será ZOS2. Para este arranque podemos usar el LOADPARM “CS”, porque vamos a configurarlo, pero cuando vaya a formar parte del anillo, este sistema lo tendremos que arrancar con un parámetro con arranque WARM, por lo tanto, tenemos que usar uno distinto de CS. Yo voy a elegir arrancar con el parámetro DB, que arranca con WARM y además arranca DB2 y CICS.

Vamos a la librería SYS1.IPLPARM y editamos el miembro LOADDB (os recuerdo que no está catalogada, hay que poner el volumen).

 

Ponemos “PLEXHERC” como nombre de Sysplex. Nos fijamos que el sufijo de los miembros de la librería PARMLIB es DB.

 

Editamos el miembro IEASYSDB de la librería ADCD.Z110.PARMLIB. Ponemos:

COUPLE=01,

GRS=JOIN,

GRSRNL=EXCLUDE, (este hay que añadirlo)

PLEXCFG=MULTISYSTEM,  

 

Editamos el miembro BPXPRMDB.

 

Modificamos ROOT     FILESYSTEM('HFS.&SYSPLEX..ROOT')  por ROOT     FILESYSTEM('HFS.ADCD.ROOT') 

 

Ahora editamos el miembro JES2PARM, tenemos que cambiar el nombre del “OWNNODE” a ZOS2.

 

Vamos a la librería ADCD.Z110.VTAMLST y editamos el miembro ATCSTR00. Ponemos ZOS2 en el parámetro NETID.

 

Editamos el miembro COUPLE01 de la librería ADCD.Z110.PARMLIB.

 

Cambiamos el número del dispositivo de PATHOUT a 0E41 y de PATHIN a 0E40.

 

Ahora editamos el miembro IEASYM00.

 

En SYSNAME ponemos ZOS2, por ejemplo. Y en SYSCLONE ponemos Z2.

 

Ya podemos parar el sistema ZOS2.

Ahora vamos a ir al archivo de configuración de Hércules del primer sistema (ZOS1). Añadimos los siguientes parámetros, si no los tenemos (todos son necesarios):

ARCHLVL   ENABLE bit44 

SHRDPORT  3990

LPARNAME  ZOS1

LPARNUM   01 

 

El parámetro SHRDPORT sirve para compartir discos con Hércules. Gracias a esto podemos usar un mismo disco por dos Hércules a la vez. Además de servir para crear el Sysplex, gracias a esto, también se puede tener un spool compartido por varios sistemas, etc. Los otros sistemas se conectarán a estos discos por el puerto 3990.

Podéis encontrar más información sobre discos compartidos en este blog:

http://mainframecorner.com/?p=1561

Ahora vamos al final del fichero y añadimos lo siguiente:

# CTC Adapters 

0E40    CTCE        31880    localhost             31882

0E41    CTCE        31884    localhost             31886

 

Esto sirve para hacer la conexión CTC con el Hércules. Con este tipo de conexiones podemos conectar dos zOS por XCF, por nodos NJE, etc. Si los dos Hércules están en el mismo PC, podremos usar “localhost”, pero los números de puerto deben ser distintos. En este caso, el dispositivo 0E40 escucha en el puerto 31880 y se conecta con otro dispositivo que escuche en el puerto 31882.

Si queremos conectarnos con otro equipo cuya IP del sistema operativo (NO DEL z/OS) es 192.168.1.11, pondríamos:

 # CTC Adapters

0E40    CTCE        31880    192.168.1.11      31882

0E41    CTCE        31884    192.168.1.11      31886

 

Como son dos máquinas distintas, podemos usar los mismos puertos:

# CTC Adapters

0E40    CTCE        31880    192.168.1.11      31880

0E41    CTCE        31884    192.168.1.11      31884

 

Ya hemos modificado el primer archivo de configuración, ahora vamos a por el archivo de configuración de ZOS2. Primero cambiamos el puerto del parámetro CNSLPORT a 3271 para que nos podamos conectar con los terminales a través del puerto 3271 en vez del 3270, que es el que usara el sistema ZOS1.

Añadimos los parámetros anteriores (todos son necesarios):

ARCHLVL   ENABLE bit44 

SHRDPORT  3990

LPARNAME  ZOS2

LPARNUM   21

 

Ahora vamos a modificar los discos. Los dispositivos 0A9B y 0A9C son los discos SHR001 y SHR002. Como queremos usar los mismos que va a usar el sistema ZOS1, debemos quitar la dirección del disco y poner “localhost” y, por defecto, irá a buscar los discos en el puerto 3990.

0A9B    3390    localhost

0A9C    3390    localhost

 

Si el Hércules que sirve los discos está en otro PC cuya IP del sistema operativo (NO DEL z/OS) es 192.168.1.10, podremos poner:

0A9B    3390    192.168.1.10

0A9C    3390    192.168.1.10

O también:

0A9B    3390    192.168.1.10:3990

0A9C    3390    192.168.1.10:3990

 

Por último pondremos los CTCs:

# CTC Adapters

0E40    CTCE        31882    localhost             31880

0E41    CTCE        31886    localhost             31884

 

En este caso, el dispositivo 0E40 escuchará en el puerto 31882 y se conectará con el otro Hércules que escucha en el puerto 31880. Y el dispositivo 0E40 escuchará en el puerto 31882 y se conectará con el puerto 31884 del otro Hércules-

Si queremos conectarnos con otro equipo cuya IP del sistema operativo (NO DEL z/OS) es 192.168.1.10, pondríamos:

# CTC Adapters

0E40    CTCE        31880    192.168.1.10      31882

0E41    CTCE        31884    192.168.1.10      31886

 

Como son dos máquinas distintas, podemos usar los mismos puertos:

# CTC Adapters

0E40    CTCE        31880    192.168.1.10      31880

0E41    CTCE        31884    192.168.1.10      31884

 

Ya hemos terminado todas las configuraciones, por lo tanto, vamos a proceder a arrancar los sistemas.

Primero vamos a arrancar el sistema ZOS1 que es el que tiene el parámetro “GRS=START” y además es el que hace de servidor de discos. Usaremos el mismo parámetro de arranque para que hayamos hecho toda la configuración de la PARMLIB (CS).

IMPORTANTE: Si usamos la interfaz gráfica HERCGUI, mostrará un error indicando que el archivo de configuración no es válido, tenemos que darle a IGNORAR, ya que para el Hércules si es correcto.

Cuando arranquemos, saldrán los mensajes “SYSTEM ZOS1 IS NOW ACTIVE IN SYSPLEX PLEXHERC” y “GRS COMPLEX STARTED”.

NOTA: Es posible que en arranque muestre un reply para inicializar el sysplex, responderemos “00,I”.

 

Una vez haya terminado de cargar. Abrimos otro Hércules para cargar el sistema ZOS2. Tenemos que hacer “POWER ON” en el Hércules del sistema ZOS2, pero todavía NO hay que hacer el LOAD.

NOTA: Tenemos que tener dos instalaciones de Hercules (en carpetas distintas), si usamos el mismo, abriendo la aplicación dos veces, es muy posible que no funcione. 

En el Hércules de ZOS2 veremos mensajes similares a estos:

09:10:42.932 00000CAC HHC00414I 0:0A9A CKD file cckd/sares1.cckd: cyls 3339 heads 15 tracks 50085 trklen 56832

09:10:42.935 00000CAC HHC00721I 0:0A9B Shared: connected to file localhost

09:10:42.936 00000CAC HHC00708I 0:0A9B Shared: file localhost cyls 3339 heads 15 tracks 50085 trklen 56832

09:10:42.937 00000CAC HHC00721I 0:0A9C Shared: connected to file localhost

09:10:42.937 00000CAC HHC00708I 0:0A9C Shared: file localhost cyls 3339 heads 15 tracks 50085 trklen 56832

09:10:42.938 00000CAC HHC05063I 0:0E40 CTCE: Awaiting inbound connection :31883 <- 127.0.0.1:31880

09:10:42.938 00000CAC HHC05063I 0:0E41 CTCE: Awaiting inbound connection :31887 <- 127.0.0.1:31884

09:10:42.938 00000CAC HHC01541I HDL: dyngui.dll initiated

 

Ahora vamos a la consola de ZOS1 y vamos a poner online los dispositivos 0E40 y 0E41. Usaremos estos comandos:

V 0E40,ONLINE

V 0E41,ONLINE

 

Ahora si, hacemos el LOAD del segundo sistema. En este caso, yo voy a cargarlo con el LOADPARM 0A95DB..

Pasados unos segundos comprobamos que aparece el mensaje “SYSTEM ZOS2 IS NOW ACTIVE IN SYSPLEX PLEXHERC” y también “SYSTEM ZOS1 ASSISTING IN GRS JOIN PROCCESSING”.

Si no conecta, deberemos revisar los mensaje que hayan podido salir en Hércules. También podemos comprobar el estado de los nodos en ZOS1 con los comandos:

D XCF,PATHIN,DEV=ALL

D XCF,PATHOUT,DEV=ALL

 

Como no hemos modificado el miembro CONSOL00 de la PARMLIB, los mensajes de la consola de ZOS2 saldrán por la consola de ZOS1 y la consola de ZOS2 se quedará como aparece arriba (con las letras azules). No pasa nada.

 

Con el comando “d grs” vemos que tenemos ambos sistemas activos.

 

El mensaje DFHPA1909 ocurre por no haber arrancado nunca antes con un LOADPARM COLD en el que arrancase también el CICS. Con arrancar una vez, sin sysplex, con el parámetro DC, quedará solucionado. En futuras ocasiones pondremos arrancar con DB.

Vamos a “rutear” un comando a ZOS2, es decir, vamos a dar un comando desde el sistema ZOS1 al sistema ZOS2, por ejemplo el siguiente:

ro NOMBRE_SISTEMA,comando (ro se refiere a route)

ro ZOS2,d a,l

 

Vemos que las tareas con del sistema ZOS2. Si queremos ver las tareas de ZOS1, damos un “d a,l” normal.

 

Vemos que las tareas arrancadas de ZOS1 son distintas a las de ZOS2. Vamos a parar ZOS2 con el comando “ro ZOS2,s shutall”. Vamos parando el sistema como si se tratase de uno normal, teniendo en cuenta que, como solo tenemos una consola, tenemos que "rutear" los comandos al sistema ZOS2.

 

Ahora vamos a sacar ZOS2 del anillo. Es muy importante hacerlo porque, en un entorno real, si no lo sacas del anillo, es más que probable que haya que hacer IPL a los sistemas que comparten el anillo. Además, si intentas hacer el arranque y sale la reply que indica que va a inicializar el sysplex, si respondes “00,I”, el resto de sistemas del anillo se caerán. Mejor sacarlos del anillo SIEMPRE. Usaremos el comando:

v xcf,ZOS2,offline

 

Siempre generará un reply para confirmar la acción, respondemos lo siguiente:

08,SYSNAME=ZOS2

 

Generará otro último reply, responderemos 09,DOWN. En un entorno normal, primero se haría reset clear a la partición, después se respondería a esta reply y después se haría de nuevo el load de la partición para que arranque de nuevo. Como nosotros vamos a parar todo, respondemos DOWN.

 

El sistema estará completamente fuera del anillo.


 

Ya podremos parar ZOS1 también. Ya hemos terminado la configuración para tener dos zOS independientes en Sysplex y, aparentemente, funciona bien. Dentro de poco seguiré probando cosas en este tipo de configuración.

Visto: 2755

Comentarios  

-1 #1 Urtzi Larrieta 27-05-2016 14:12
Solo te falta rutar bien los mensajes de las consolas.

Para que todo funciona bien, has de saber que los miembros CONSOLXX de la PARMLIB de esa instalación, les falta un parametro muy importante cuando tenemos un SYSPLEX: MSCOPE. Si añades a cada definición de consola, MSCOPE(*ALL), por dicha consola se rutaran todos los mensajes de todas las LPARes que conforman el SYSPLEX. Sin embargo, si pones MSCOPE(*), solo los mensajes de esa LPAR serán los que se muestren.
Citar
-1 #2 Urtzi Larrieta 27-05-2016 14:15
También ten cuidado si copias el CONSOLXX de una LPAR a otra, ya que te puede fallar porque los CNGRP se llaman igual. Yo los cambiaría por GRPZOS1 para ZOS1 y GRPZOS2 para ZOS2, lo mismo para los nombres de la consola y sus direcciones físicas: si pones en cada hercules que la dirección de la master console sea de 700, te saldrá un warning en el NIP (texto turquesa de arranque del IPL) diciendo que esa dirección ya la tiene pillada el otro z/OS que ya has arrancado, así que ten cuidado. En mi caso, he creado consolas nuevas en la dirección 800 modificando el IODF y he cambiado el VTAMLST creando un miembro NSNA80X desde NSNA70X teniendo cuidado de cambiar los CUNUMBR por las direcciones correctas, y modificar el ATCCON00 para poner NSNA80X en el lugar del NSNA70X. Así, una LPAR podrías tener la Master console en la 700, y las sesiones TSO de la 701 en adelante, y en la otra LPAR  podrías tener la 800 como master console y la 801 en adelante para los terminales TSO.
Citar
-1 #3 Urtzi Larrieta 27-05-2016 14:17
Si esos pasos los realizas correctamente, se te verán las dos consolas sin problemas (en mi caso, para hacer pruebas, una LPAR la tengo con MSCOPE(*ALL) para que me ponga todos los mensajes de todo el sysplex, mientras que en la otra LPAR tengo MSCOPE(*) para solo sacar mensajes de su propia LPAR). 

Espero que esto te sirva para añadir a este excelente tutorial la guinda del pastel ;)
Citar
+1 #4 Javier 02-06-2016 08:02
Que gran aporte acabas de hacer! Y el trabajo que me has ahorrado :D
A ver si tengo un rato para probarlo y añadirlo a la entrada (indicando que es un aporte tuyo, claro está).

Muchas gracias!!!
Citar

Escribir un comentario


Código de seguridad
Refescar