LA PERMANENCIA Y CONTINUIDAD DE IBM
Por: Téc. M. Macluskey - Especialista en Informática - España
A principios de los ochenta aproveché una buena oferta y trabajé en otro Banco Nacional. El cambio supuso una mejora económica (pequeña) y un nuevo y apasionante proyecto.
El ordenador de este Banco era un nuevo IBM 3081, con dos procesadores (¡nada menos!) y 16 Mb de memoria.
MAINFRAME IBM
HISTORIA
Un gran mainframe de IBM, de lo más que había en la época (casi lo único que había como ordenador central). Este ordenador era evolución de la serie IBM 303x, que a su vez lo era del mítico IBM 370, que había sustituido en los primeros setenta al no menos mítico IBM 360.
Su Sistema Operativo era MVS, y tenía Bases de Datos IMS (DL/1) y gestor de teleproceso IMS/DC, ambos recién estrenados, y que iban a dar servicio al nuevo Sistema Integrado Online de dicho Banco (que había que construir desde cero, claro. Cuando yo decía que era un proyecto apasionante, no exageraba ni lo más mínimo…).
Se programaba en Cobol (salvo ciertos módulos de Sistema, que se escribían en Assembler), es decir, todo el software de Aplicación estaba programado en Cobol. Es más, en estos tiempos (que yo sepa) sigue programado en Cobol. Y, en una buena parte, siguen siendo los mismos programas, remozados, cambiados, modernizados… pero los mismos.
El método de trabajo en estas máquinas ya no era el mismo que el que seguíamos en el otro Banco, con su Century 200. Entraré más en detalles de la forma de trabajar en la época en otra entrada más amplia.
MAINFRAME IBM 3081 |
Los grandes mainframes actuales de IBM (sucesores de aquellos cacharros), programados casi todos en Cobol, siguen siendo las piezas básicas que mantienen al mundo en movimiento. Por ello, voy a dedicar este artículo describir sucintamente a estas máquinas, las grandes desconocidas de la mayoría de la población, e incluso de la mayoría de informáticos de nuevo cuño, que piensan que un servidor Linux de gran potencia es lo más de lo más… y no por su culpa: es lo que han visto, oído, leído, y les han enseñado durante toda su vida.
Si este artículo contribuye a que conozcan un poco más a estas bestias pardas, habrá cumplido su función. Por ello, no sólo voy a describir los mainframes de los años 80, sino también los de hoy en día.
Veréis que esto no es tan extraño como parece: aunque con potencia infinitamente superior, los z/Series de hoy se parecen mucho, de cara a sus programadores y usuarios, al venerable IBM/370 de hace casi cuarenta años.
MAINFRAME IBM 360 |
Entonces, lo primero que hay que mencionar es la estabilidad de esta gama de ordenadores. Se han producido, y se siguen produciendo, gigantescos avances en ellos igual que en el resto de ramas de la informática, pero, al estar todos ellos sin excepción dedicados a operaciones críticas, la estabilidad es la primera máxima de diseño. Eso quiere decir, por ejemplo, que un programa escrito y compilado en los años setenta sigue funcionando hoy en día en los ordenadores actuales… ¡sin necesidad siquiera de compilarse de nuevo con cada cambio de versión!.
El código máquina de estos ordenadores es hoy el mismo que hace cuarenta años. Naturalmente, los procesadores son muchíiisimo más complejos ahora, hay muchos más códigos de instrucción para hacer cosas cada vez más sofisticadas… pero los códigos originales se mantienen. Es decir, hay una compatibilidad hacia delante que, simplemente, no existe en ninguna otra gama de ordenador, de la marca que sea.
Los mainframes actuales se denominan IBM z/Series, y no son más que la evolución de los 360, 370, 303x, 308x, 3090, 390, etc. En esta entrada tenéis a vuestra disposición TODA la información que deseéis sobre cómo es y cómo funcionan estos Sistemas: El “IBM z/Architecture Principles of Operation“, de estudio obligado para todo Técnico de Sistemas de estos ordenadores.
La principal diferencia es, además de su potencia, varios órdenes de magnitud superior, el tamaño: el 3081 con que operaba aquél banco, más todo sus dispositivos (discos, cintas magnéticas, impresoras, unidades de comunicaciones, etc) atestaba él solito la Sala de Ordenadores entera, con sus doscientos cincuenta o trescientos metros cuadrados… y ahora en ese espacio cabrían decenas de mainframes.
MAINFRAME IBM 370 |
Son máquinas realmente potentes (los datos que cito a continuación son del z10Ec, el más potente de los actuales mainframes de IBM):
* Hasta 64 procesadores de alta capacidad por ordenador. Son procesadores de cuatro núcleos a 4,4 Ghz de reloj. Esto significa un ciclo de reloj de 0,22 nanosegundos, es decir, 220 picosegundos. Con una configuración “normal”, de 16 ó 24 procesadores (en España no creo que haya ningún mainframe con 64), es capaz de procesar algunos miles de MIPS (Millones de Instrucciones por Segundo: Millones reales (y verificables) de Instrucciones cada Segundo, no Millones teóricos, que es lo que se acostumbra a medir en otros Sistemas.
* Hasta 1,5 Tb de memoria de alta velocidad (eso es Mucha memoria…).
* Hasta 1024 Canales de Entrada/Salida. Son canales de Alta Capacidad y velocidades de transferencia muy elevadas, de varios Gb por segundo.
Y sin embargo, viendo las características físicas no parece tan potente, comparado con máquinas especializadas de procesamiento en paralelo, como la propia “Blue Gene” de IBM, que tienen miles y miles de procesadores. Y es que la diferencia está en su Software.
Su Sistema Operativo por excelencia es, hablando con propiedad, el único Sistema Operativo que existe (se trata del antiguo MVS, que tras varios cambios de nombre ahora se llama z/OS; IBM ofrecía también por aquella época, en los años 70 y 80, el DOS/VSE, igual que ahora también ofrece Linux para z/Series, ignoro con qué éxito comercial).
MAINFRAME IBM Z10EC |
Cuando se enumeran las funciones y características que, teóricamente, debe tener todo Sistema Operativo, sólo MVS (perdón, z/OS; es que todos los que hemos trabajado con él le seguimos llamando “MVS”) cumple todas ellas. Por ejemplo:
1- Disponibilidad total. IBM dice en su marketing que tiene un 99,999% de disponibilidad, y no sólo es cierto, sino que yo creo que es un 100%. De hecho, los mainframes de IBM sólo suelen apagarse una vez al año (generalmente en Navidades, Viernes Santo, o así), más bien por el prurito de hacer un Arranque en Frío al menos una vez al año (o sea, apagar y encender, vaya) y así limpiar la memoria de posibles zonas muertas, que porque haga realmente falta.
2- Independencia del Sistema Operativo de las Aplicaciones (incluso las propias del Sistema). Es decir, absolutamente todos los productos, sean cuales fueren, se pueden instalar en caliente, sin necesidad de apagar y encender nada. Esto reza incluso para el propio Sistema Operativo: se puede subir de versión sin necesidad de pararlo. Y desde luego, para todos los productos, por críticos que resulten: IMS, CICS, DB2, RACF, VTAM, etc. Y, por descontado, el MVS (perdón otra vez, el z/OS, la costumbre…) no se cae nunca. Al menos, yo no lo he visto en años.
3- Absoluta garantía de que una partición no puede acceder a datos de otra, ni por error, ni a posta. Además, no hay virus (al menos, que yo conozca) para mainframes: la seguridad es máxima.
4- Capacidad de configurar varias máquinas lógicas (particiones) dentro de una única máquina física. Con ello se puede trabajar como si tuviéramos tres o cuatro máquinas diferentes, más pequeñas, pero que se comportan a todos los efectos como si fueran máquinas físicas diferentes. Además, la partición se realiza no distribuyendo partes físicas de la máquina (canales o procesadores, por ejemplo) sino por MIPS. Podemos definir una máquina de 150 MIPS, otra de 400 MIPS y otra de 700 MIPS, por ejemplo. Y, naturalmente, se puede reconfigurar los tamaños de cada partición en cualquier momento… y sin parar nada, claro.
5- Rendimiento combinado inalcanzable para cualquier otra máquina. Por ejemplo, un mainframe típico (no el más grande, repito) es capaz de dar servicio él solo a:
500 ó 600 trabajos batch (en la jerga “mainframera”, iniciadores), donde se están ejecutando trabajos batch: liquidaciones, extractos de cuentas, abonos de dividendo, tareas de backup, pruebas de programas, etc, todo lo que no necesite hacerse online. No 500 ó 600 al día, no. 500 ó 600 a la vez, continuamente, todo el día sin parar, todo el año sin parar.
Varios gestores de teleproceso diferentes (IMS ó CICS), sirviendo cada uno algunos millones de transacciones online diarias. Para que os hagáis una idea: un Banco nacional típico puede tener quizá diez o quince millones de transacciones online diarias, una operadora de Telecomunicaciones, quizá registre 80 millones de llamadas diarias, etc: se procesa online muchísima información hoy en día. ¿Os hacéis una idea de la tasa de transacciones por segundo que supone esta carga?… 200, 300, 400 transacciones por segundo, cada segundo, todos los segundos. Son realmente muchas. Estas transacciones, habitualmente subsegundo, pueden ser servidas por uno sólo de estos gestores, por ejemplo, un IMS. Y suele haber otros gestores de Teleproceso dedicados a otras cosas, como la Contabilidad, los Seguros, etc.
Varios centenares de particiones de time-sharing, el famoso TSO, (donde cada usuario ve la máquina como si fuera literalmente para él solo). Por ejemplo, programadores editando y compilando programas, usuarios finales lanzando peticiones de información, operadores gestionando el sistema, etc. Con tiempos de respuesta generalmente subsegundo también.
…SIMULTÁNEAMENTE. Es decir, todo lo anterior, a la vez. Un mainframe de IBM está habitualmente usando su CPU (todas ellas) al 100%. Horas y horas, días y días, meses y meses, sin parar. Es normal verlo incluso al 102% (cosa aparentemente imposible, debida al prefetch de instrucciones, que permite ganar algo de tiempo al solapar la ejecución de instrucciones consecutivas). Y no pasa nada. Muchos otros sistemas operativos, al llegar al 80% de uso de CPU comienzan a dar señales de lentitud. Y a partir del 90%, se vuelven inestables. El z/OS, no. Es más, casi todos los que trabajamos normalmente con ellos “sabemos” que cuando están a menos del 90%, están “vagos”, como si les costara más de lo normal despachar los diferentes trabajos… Vale, ya lo sé, es una sensación que no tiene base alguna, pero es que la tenemos mucha gente…
MAINFRAME IBM SERIES Z10 |
Aunque son sistemas muy fiables por su diseño, también en los mainframes se producen errores y roturas de hardware, como es natural. Con 12 o 16 procesadores que funcionan día y noche, es posible que, por muy fiables que sean, tarde o temprano uno de ellos falle y tenga que ser reemplazado, y lo mismo ocurre con el resto de componentes: memoria, discos magnéticos, unidades de comunicaciones, etc.
Imaginemos, por ejemplo, una moderna instalación, que puede tener del orden de 150 Tb de espacio en disco disponible (no sólo se necesita para guardar la información permanente, sino para espacio de trabajo, copias, etc). Dependiendo de en qué momento se fueron incorporando los diferentes discos a la instalación, estos tendrán una tecnología u otra, girarán más o menos rápido, y su capacidad individual estará más o menos entre 50 y 500 Gb. Supongamos una media de 150 Gb por disco, lo que puede ser una cifra bastante real.
Pues bien, en esta instalación prototipo, sólo discos de mainframe hay unos 1.000, más o menos antiguos, girando 24 horas diarias a un mínimo de 7200 vueltas por minuto. Supongamos también que estos discos tienen un MTBF (Tiempo Medio Entre Fallos, una medida de la fiabilidad de un componente) de 200.000 horas, que no está nada mal. O sea, si tenemos un solo disco, podemos esperar, si tenemos suerte, que falle de media cada 200.000 horas, que son… ¡veintitrés años! Pero es que… ¡tenemos 1.000 discos, o más! Sin hacer muchas cuentas complicadas, podemos darnos cuenta de que en realidad podemos esperar un fallo de un disco individual cada quizá 150 ó 200 horas, o sea, tendremos un disco roto cada par de semanas o así. Y puede fallar cualquiera, desde el menos importante, que sólo sirva como espacio de trabajo, al propio disco donde se encuentra el Sistema Operativo.
MAINFRAME IBM SERIES Z10 EN APLICACIONES CRITICAS |
Pues… la instalación no puede pararse por un disco roto, sea cual sea el que se rompa; y lo mismo si lo que falla es cualquier otro componente, por crítico que sea.
En los mainframes es poco menos que imposible encontrar un componente aislado cuya rotura origine una parada total del sistema, y toda sustitución de un elemento hardware estropeado se realiza sin necesidad de parar el resto de los componentes (ni los iguales, ni otros distintos) ni, desde luego, el Sistema Operativo, que simplemente marcará ese dispositivo como inutilizable mientras dure la avería, y volverá a utilizarlo cuando ésta se subsane. Aunque no es propiamente un Sistema “Fault Tolerant“, se trata de un sistema realmente fiable.
En fin, la gran mayoría de grandes Cajas y Bancos, los diferentes Organismos de la Administración (Hacienda, Trabajo y Seguridad Social, Interior, etc), las grandes compañías industriales y comerciales, sobre todo las que llevan bastantes años en el mercado, casi todas ellas continúan usando mainframes de IBM para sus Operaciones, y que yo sepa, ninguna tiene la menor intención de cambiar a otro tipo de máquinas.
Porque, además, resulta un Sistema muy barato de administrar. Con una veintena de Técnicos de Sistemas (muy bien pagados, eso sí) se puede gestionar el parque de mainframes de una gran empresa… cuando con toda seguridad la misma empresa necesitaría cientos de ellos para administrar un Sistema de Información similar basado en, por ejemplo, UNIX.
Ojo, no me malinterpretéis, yo no he dicho que un mainframe de IBM sea una máquina barata: en absoluto lo es. Su coste es muy superior, sobre el papel, al de un Sistema UNIX o Linux equivalente, y no digamos Windows… Agravado por el hecho de que los programas imprescindibles (Sistema, Base de Datos, Gestor de Teleproceso, Gestor de Seguridad…) IBM no los vende, sino que son alquilados: no se adquiere una licencia permanente de uso (la que permite utilizar de por vida el producto mientras no se actualice… y mientras siga funcionando, claro), sino sólo el derecho a usar el software durante un cierto tiempo, generalmente un año, incluyendo el mantenimiento, nuevas versiones, solución de problemas, etc. Y no se trata de productos baratos, precisamente.
Pero si nuestra empresa no se puede arriesgar a que una simple actualización de, digamos, el software de la impresora, te deje frita la Aplicación de Cuentas Corrientes, o la Aplicación de Pedidos… es la mejor opción. Además, como dije, no se conocen virus para z/OS. No digo que no los haya, sino que de momento no se conocen, así que la seguridad ante intrusiones es máxima. Esto es debido a que, por su arquitectura interna, es bastante difícil que un hacker pueda encontrar una vulnerabilidad expotable en el Sistema. ¡Y a que ya nadie enseña Ensamblador del z/Series!, exceptuando a la propia IBM, que cobra una fortuna por ello.
Y recordad, Aplicaciones escritas en los años 80 (cuando no había prácticamente ninguna alternativa importante a los mainframes de IBM) siguen funcionando hoy en día sin problemas, incluso sin siquiera compilar de nuevo los programas, lo que les otorga un Retorno de la Inversión realmente elevado.
…Y no, no trabajo, ni he trabajado nunca, en IBM. Considero que no estoy haciendo publicidad alguna, pues todo lo que cuento lo he experimentado yo mismo y visto con mis propios ojos, pero cuando hablo con muchos compañeros de profesión que nunca han trabajado con estos Sistemas, me doy cuenta del enorme nivel de desconocimiento que existe en la actualidad acerca de esta gama de máquinas y sus aplicaciones.