Gravatar de Kujaku

Hardware e interconexionado de un Mainframe

En esta nueva entrega, trataré de explicar que se cuece en las tripas de un mainframe (en adelante, Host) y por qué funciona como funciona.

En primer lugar, debo comentar que cualquier analogía con un PC es pura coincidencia, un host no se parece ni de lejos a un PC.

Por tanto, preguntas como “¿Cuántas veces es mas potente un host comparado con un PC?” y similares no tienen respuesta, debido a que dichas preguntas se deben enfocar como un todo y hay mil y una diferencias con respecto a estas dos plataformas y porque el propósito de cada máquina es bien distinto, de la misma forma que no se pueden mezclar churras con merinas.

Y sin mas preámbulo, paso a explicar el meollo del aparato a nivel hardware:

Una de las particularidades por las que un host es diferente es por la arquitectura hardware. Sin entrar en detalles de la redundabilidad extrema del aparato, y la posibilidad de que el fallo de un componente sea imperceptible de cara a explotación, el host tiene una capacidad de ampliación que abarca un gran numero de componentes.

Por un lado esta el procesador, que es un cajón donde se encuentra la memoria y el (los) procesador(es). Y, por otro lado, se encuentran todos los periféricos.

Lo interesante de estos periféricos es que todos (absolutamente todos) se comunican con el mismo protocolo de comunicaciones, como si de un sistema USB se tratara. Este protocolo de comunicaciones viaja por una conexión llamada “Canal” (Channel), que puede ser de cobre, o de fibra óptica (en la actualidad todas son de fibra).

Y dentro de la tecnología de fibra, existen dos sistemas: ESCON (Enterprise System CONnection), que transmite a 17 MB/seg y lleva desde 1990 dando caña o FICON (FIber CONnection) que lleva desde el año 2000 y transmite a 100MB/seg la primera generación, a 200 MB/seg la segunda –ahora vamos por la cuarta- y se parece mucho al sistema Fiber-Channel de las unidades SAN de almacenamiento.

Además, y al contrario que con los USBs, un dispositivo puede tener más de un canal, por lo que puedes jugar con la ampliación de un componente tanto en capacidad como en ancho de banda ya que el host automáticamente equilibra el ancho de banda entre más de un canal de ese dispositivo si le añades mas conexiones.

Con esta introducción, habréis imaginado que las posibilidades son terribles: Varios procesadores pueden estar conectados a un mismo dispositivo y varios dispositivos se pueden conectar a un mismo procesador. Incluso se pueden conectar los dispositivos entre ellos (por ejemplo, entre dos sistemas de discos y montar un PPRC –Peer to Peer Remote Copy- para redundancia de datos).

También entre procesadores, pasándose mensajes entre ellos en una arquitectura Sysplex (Cluster de mainframes) o montando una red TCP/IP virtual encima de ellos de alta velocidad para que se interconecten (este tipo de configuración se denomina Channel-To- Channel o CTC).

La probabilidad de exclusiones por reservas de dispositivos (por ejemplo, dos procesadores quieren acceder a los mismos discos) son casi imposibles, debido a que por un lado los protocolos de canal no se pegan entre sí, y por otro, existen utilidades en los sistemas operativos como colas GRS (Global Resource Serialization) que impiden acceder al mismo dato, del mismo disco en el mismo instante de tiempo.

Bien, hemos hablado de procesadores y periféricos que conforman un host, y también los canales que se utilizan para comunicarse entre ellos. Veamos ahora como los ve un Host.

El host dispone de una utilidad llamada IOCP (Input-Output Configuration Program), donde defines todo lo que se le puede conectar. Tiene 3 partes de configuración:

En la primera parte, se definen el numero de canales que el host va a utilizar contra todos los dispositivos de la instalación. Ojo, un procesador puede tener muchos mas canales instalados, pero aquí solo se definen los que se van a usar. Estos canales vienen en tarjetas que se pinchan sobre el backplane del procesador, y tienes tarjetas de 4, 8 o 16 canales.

¿Qué quieres más canales? Pues compra una tarjeta y la pinchas en el procesador, siguiendo unas normas de colocación en el bastidor. Luego, se le dice que dirección hardware tiene cada canal, como pasaba en las antiguas tarjetas de sonido Sound Blaster, que le teníamos que decir en el juego que tenía la dirección 220h, y que en el caso de los canales, a esta dirección se la denomina CHPID (CHannel Path IDentification) y que tipo de canal es (puede ser ESCON, FICON, Paralelo, CTC, etc).

En la segunda parte, se definen las unidades de control donde esos canales están conectados. En un texto anterior comenté que todo dispositivo tiene una unidad de control, con un microcódigo que se encarga de gestionar el periférico y su control de errores (análogamente, es como si fuera la controladora IDE de un PC, al que luego se le conectan discos).

Esas unidades de control a su vez tienen una direccion hardware que debes configurar a priori cuando compras la unidad, llamada CUNUMBR (Control Unit NUMBeR), asi que el IOCP debe tener constancia de ello, por lo que en el IOCP se le debe decir la dirección de la unidad de control y luego a que canales esta conectada (recordad que se pueden conectar a mas de un canal).

Y la tercera y última parte, se configuran los dispositivos periféricos en sí. Cada dispositivo tendrá una dirección hardware llamada IODEVICE (Input-Output DEVICE), que deberá también ser reflejada en el IOCP, así como a la unidad de control a la que está conectada.

Como os habréis imaginado, en una instalación host muy grande, por ejemplo, con varios procesadores interconectados con cientos de Terabytes repartidos en cientos de discos duros, impresoras, sistemas de comunicaciones, robots de cintas, etc., la lista de configuración puede llegar a ser muy larga, pero existe una utilidad para simplificar las tareas de mantenimiento en el sistema operativo, llamada HCD (Hardware Configuration Dialogs) que ofrece algunos asistentes y ayudas para configurar el sistema (aunque lo he sufrido en mis carnes y hasta que le coges el truco, es jodido de usar).

Afortunádamente, rara vez se cambia la instalación de un host, mas que para ampliarlo, de modo que tampoco se hace un uso muy frecuente de esta herramienta.

Bien, hasta aquí hemos llegado por hoy. En anteriores entregas he explicado la historia, las aplicaciones que manejan y en esta, el hardware y su interconexionado. En las siguientes entregas, a menos que os aburra demasiado, os podría explicar las funcionalidades y utilidades del Sistema Operativo de estos mastodontes. ¿Qué opináis?

6 Comentarios (feed)

  1. Gravatar de Paladi Paladi nos comenta:

    uhm… llego siguiendo toda la saga y me parece muy interesante :)

    Esperando ya una de Sistemas Operativos de estas maquinitas

    Saludos y gracias por compartir tus conocimientos

    Sábado, 25 de Noviembre/2006 @ 19:56

  2. Gravatar de Gura Gura nos comenta:

    No sabía que posteases aquí. Si recuerdas, a mi me explicaste el tema en la Euskal Encounter 14, aunque bastante más por encima xD

    Sábado, 25 de Noviembre/2006 @ 19:56

  3. Gravatar de Gura Gura nos comenta:

    Hay aquí un audio donde habla algo del OS360 (si no recuerdo mal se llamaba así). A mi la verdad que me gusta más escuchar una charla que leerlo.

    http://euskadigital.net/enredando_net/euskal_13/audios/mainframes.mp3
    http://euskadigital.net/enredando_net/euskal_13/docs/mainframe.pdf

    Sábado, 25 de Noviembre/2006 @ 20:21

  4. Gravatar de Jordi Planas Manzano Jordi Planas Manzano nos comenta:

    Muchas gracias por tus artículos, que a un dinosaurio de la informática como yo, me hacen sentir nostálgico y recordar cosas ya olvidadas.
    Repito, muchas gracias.

    Domingo, 26 de Noviembre/2006 @ 9:49

  5. Gravatar de GURB GURB nos comenta:

    Bravo Kujaku, lo has vuelto a clavar, pero te aseguro que al principio no existía el HCD y cada modificación era un infierno, empezando por el sistemas de copia de los IOCP’S, IOCDS’S, IODF’S. Espero la siguiente entrega

    Lunes, 27 de Noviembre/2006 @ 12:17

  6. Gravatar de Kujaku Kujaku nos comenta:

    GURB: No creas, no he querido decir mas por no complicar las cosas, pero cuando instale mi primer GNU/Linux Debian en un vetustísimo ES/9000 9121, tuve que leerme el manual de 500 páginas IOCP User’s Guide y codificarme a mano las macrointrucciones CNTLUNIT, IODEVICE, y CHPID… y si, la verdad es que hasta que pude hacerlo funcionar, fue un infierno :) -y no te digo nada cuando me toco customizar una unidad de control 3174 con los disquetes de 5,1/4 de Utility y de Control… otro infierno mas ;) -

    Martes, 28 de Noviembre/2006 @ 11:02

Comentarios cerrados