El artículo de hoy trata de explicar como funciona el sistema de
mantenimiento de software en MVS o z/OS, o dicho de otro modo, como
mantener el software e instalar parches que arreglan cagadas de
software.
A pesar de que el sistema operativo MVS tenga mas de 40 años y su
desarrollo, robustez e implantación es de sobra probado, cada día salen
arreglos de software o fixes que solventan alguna carencia, error u
optimización de programas del sistema. Y los que no salen, siempre se
recurre a "It is NOT a bug: It's a Feature", je, je.
Y sí, MVS es lo que es y como todo, requiere la instalación de parches
y más parches, porque siempre hay un humano por detrás que mete la gamba
programándolo. Afortunadamente, son gambas controladas porque de lo
contrario, seria de risa, pero una de las razones por las que MVS es tan
robusto es por el magnifico soporte y seguimiento software que tiene
(lógico, cuesta la hostia de dinero tener una licencia de MVS, como para
dejar que pete, no te fastidia).
El 90% de las veces, salen PTFs (a partir de ahora diré PTF, con
"arreglo" no me siento identificado, je, je) de módulos de software que
nunca en la vida has utilizado pero que ahí están y no deben ser
ignorados. La política de algunas instalaciones es no instalar PTFs que
no incumben en programas producto que no se utilicen, en un afán muy
conservador que sigue la máxima de "¿Funciona? Pues no lo toques".
En otras instalaciones, la política es instalar todo lo que sale. En
cualquier caso cada política tiene sus pros y sus contras, ya que
algunas PTFs, sobre todo las que tocan cosas del SYSPLEX o del
SYS1.NUCLEUS requieren hacer IPL, y esto en un ambiente de rabioso 24x7
con miles de usuarios conectados concurrentemente es una putada gorda.
Este sistema, al contrario que en Windows, que se instalan
automáticamente, en la mayoría de instalaciones es el deber del
programador de sistemas el controlar que PTFs hay, en que afecta al
sistema y que módulos parchea. Esto es muy importante, así que, al
contrario que en Windows, que se instalan y se reinicia el equipo
automáticamente y muy chupiguay todo, en mainframe no se puede permitir
que una PTF haga un reinicio automático teniendo a 40.000 personas
tirando de un CICS, así que hay que LEER mucho.
Cuando tienes la PTF te viene siempre con un documento de ayuda y
despliegue, y te dice todo lo que hace, en que afecta al sistema, si hay
dependencias (es decir, que para instalar esa PTF hayas tenido antes que
instalar otras PTFs), y como aplicarla.
Para ello, se utiliza un "Producto" que viene con el sistema operativo,
llamado SMP/E (System Modification Program/Extensions). Mediante este
producto, podemos tener controlado perfectamente todo el software
instalado en el Mainframe, que versión de productos tiene y toda la
gestión de PTFs.
Como funciona el SMP/E
SMP/E trabaja con ZONAS SMP: Existe la zona GLOBAL, la DLIB y la
TARGET. Digamos que se estructuran jérarquicamente.
La zona GLOBAL es la zona raíz, y en ella se contiene información,
mucha información, acerca de los productos instalados, cuando se
instalaron, como se instalaron, aplicación de parches, versiones de
productos, situación en disco, librerías, etc, viene a ser un índice de
todo lo que tenemos, como si fuera el Registro de Windows, pero solo la
rama de Software, y en GNU/Linux el gestor de paquetes dpkg, por ejemplo
(ni se acerca, pero esto lo digo más o menos para que lo entendáis).
La zona DLIB es una zona donde se tiene un índice de todos los módulos
que suministra IBM con los productos: Pueden ser fuentes, programas
objeto, módulos de procedimientos, etc. Siguiendo con la analogía, una
zona DLIB podría ser la /usr/src en GNU/Linux.
La zona TARGET en cambio, es la zona donde se controla todos los
programas ejecutables y productos finales. Siguiendo con la analogía,
seria la /lib y la /bin en GNU/Linux o todo ejecutable EXE o DLL en
Windows.
Pues bien, ¿cómo funciona todo esto? Pues en tiempo de instalación
(SYSGEN), para crear un programa ejecutable en MVS, se "linkedita" con
los módulos que sean necesarios de la DLIB y se crea el ejecutable en la
Target, que a su vez se guarda en el disco que corresponda dentro de la
librería que corresponda, como si se pareciera a un Makefile, oyes. Como
veréis, este sistema de funcionamiento tiene muchas analogías con montar
una Gentoo desde cero...
Vale, pero ¿Cómo instalo un parche?
El proceso de PTF tiene 3 fases bien diferenciadas: Recepción,
Aplicación y Aceptación. La fase de recepción (RECEIVE) es cuando
descargas la PTF de internet y la metes en el MVS y le dices a la GLOBAL
que tienes una PTF descargada y lista para instalar. La GLOBAL entonces
examina la PTF y determina que trozos de programas deben ser tocados,
con la información de la TARGET y la DLIB.
La fase de Aplicación (APPLY) es la fase en la que instalas la PTF que te toca los módulos y programas que están en la TARGET, traduciendo, es cuando la PTF te toca el código para que inmediatamente quede instalada.
Y la ultima fase, la de aceptación (ACCEPT), es cuando ves que la PTF
no ha "roto" nada y por tanto, esa PTF también toca la zona de DLIB para
que los módulos fuente y objeto queden parcheados.
Esto da mucho juego, ya que si se instala mal la PTF siempre puedes
volver atrás (siempre y cuando no hayas hecho un ACCEPT) en caso de que
algo deje de funcionar, cosa poco probable, pero no imposible.
También comentar que según como quieras configurar el sistema, la
instalación SMP/E puede tener varias zonas GLOBAL, varias DLIBs y varias
TARGET, ya que IBM cataloga todos sus productos para mainframe en 4
bloques bien diferenciados: El Bloque OS, que incluye el z/OS, Cobol,
VM, PL/I, y el sistema básico de un sistema operativo.
Luego está el DB, que incluye todo lo relacionado con bases de datos y
tratamientos de datos: DB2, IMSDB, ImagePlus, etc.
El tercer bloque hace referencia a todo lo transaccional, CICS, IMS, etc, y por último, el cuarto bloque es el del NCP o Communication Server, en el que se incluyen el propio NCP, el VTAM, TCP/IP, SNA, etc.
Por tanto, se pueden llegar a tener, dependiendo de la instalación
hasta 4 SMP/E distintos con toda su parafernalia de GLOBAL, DLIB y
TARGET.
Así a primera vista parece que este sistema es muy manual, pero en
realidad no lo es tanto, para mi es un sistema en el que controlas todo
en todo momento y es muy eficaz y no te pasa como en Windows, que no
sabes que hace cuando te instala algo (y lo peor es que una vez
instalado un update en Windows, no lo puedes desinstalar).
Lo bueno de obligarte a leer los requisitos de una PTF es que aprendes
mucho sobre la estructura interna y funcionamiento a nivel de
programación de como se ensambla todo un sistema operativo, de verdad
que si os gusta andar con las tripas de un ordenador, esto os
encantará.
En un siguiente artículo, expondré un caso practico de cómo aplicar una PTF a un producto concreto para que veáis la mecánica, que no es tan difícil.


Comentarios