Este documento pretende explicar como instalar una unidad de cinta IBM 3590 Magstar en un PC con Hercules. De esta forma, se podrían leer cintas reales escritas por mainframes en el hercules, con todos los beneficios que ello supone.
Configuración Hardware
Una unidad IBM 3590, tanto de un robot 3494 como standalone, es básicamente como cualquier unidad de cinta que puedes encontrar en el mercado. Tiene dos interfaces SCSI y por tanto, se pueden conectar a cualquier tarjeta SCSI que puedes encontrar en el mercado, ya sea una tarjeta para PC, para unidad de control de un robot (A50, A60, etc) o lo que sea. En este documento, voy a abordar la instalación y configuración de una unidad 3590-B1A que fue retirada de un robot 3494 en funcionamiento, porque fue sustituida por unas unidades 3592-H1A, con mayor densidad y rapidez que sus antecesoras. Estas unidades estaban conectadas dentro de una unidad de control A60 dentro de un frame del robot 3494.
Unidad 3950-B1A
Por tanto, tenemos una unidad que pesa como unos 20 Kg que en la parte delantera dispone de un panel de control y la boca para insertar los cartuchos y que en su parte trasera tenemos 3 conectores, dos SCSI de 78 pines llamados PORT 0 y PORT 1 y el conector de corriente (monofásico de 220V) y un interruptor que enciende o apaga la unidad.

Fig. 1: Trasera de la Unidad
PC con Hercules y tarjeta SCSI PCI
El PC es una máquina con Linux y tiene instalado Hercules y z/OS. Dicho sistema funciona con normalidad, y hasta el momento, toda cinta que se montaba era de fichero emulado AWS o HET.
Para conectar la unidad de cinta 3590 al PC, hemos instalado una tarjeta PCI Adaptec 2944-UW que, OJO a esto, es una tarjeta DIFFERENTIAL – HVD. Lo comento porque las tarjetas que normalmente se venden en tiendas de informática suelen ser todas SINGLE-ENDED o LVD (de bajo voltaje 5 Voltios ). Estas tarjetas Single Ended en apariencia son EXACTAMENTE IGUALES, aunque su número de serie (en el caso del ejemplo de Adaptec) es AHA-2940UW, y no AHA-2944UW que es la diferencial. Por tanto, la unidad 3590 funciona con interfaz DIFFERENTIAL, que es un bus SCSI de alto voltaje (12 Voltios).

Fig 2: Tarjeta SCSI Diferencial Adaptec 2944UW
Si enchufáramos la unidad de cintas 3590 que es HVD a una tarjeta LVD, lo mas seguro que es el humo que tienen en su interior los circuitos integrados que hace que los susodichos funcionen correctamente, se escape al exterior y por lo tanto dejen de funcionar. Por tanto, si vemos que en la salida del conector pone SCSI-SE, esa tarjeta NO es la apropiada. La tarjeta correcta sería SCSI-DIFF.
He elegido esa tarjeta Adaptec porque es la mas común de todas y se puede encontrar en cualquier web de componentes de segunda mano como eBay y cuestan dos duros.
Cableado
En este tipo de instalaciones SCSI, sobre todo en las de índole DIFFERENTIAL, se deben instalar terminadores activos. Me explico: En una cadena SCSI normal, la cual desde la tarjeta SCSI a los dispositivos conectados a ella se conectan en un modo daisy-chain o la salida de un dispositivo se conecta a la entrada del otro, la salida de este otro a la entrada del siguiente y así sucesivamente, al final de la cadena se suele instalar un terminador que indica el final del bus. La mayoría de los casos en los que la cadena se encuentra en el interior del equipos (por ejemplo, discos RAID) el terminador suele ser pasivo y lo emula la tarjeta. Pero en este caso, es necesario instalar un terminador DIFFERENTIAL en el.


Fig 3 y 4: Terminador Diferencial y cable con zapatas SCSI
El tipo de cable también es especial: La unidad 3590 tiene una particularidad que no tienen otros equipos SCSI: No dispone de un puerto de entrada y otro de salida, solo dispone de un puerto, por lo que el cable debe proveer de un conexionado daisy-chain, que por un extremo es de conexión normal, pero que el otro extremo tiene una zapata con dos conectores que hacen las veces de SCSI IN y OUT en el mismo cable. Como cuando me dieron la unidad, me regalaron también los cables, pues a este respecto no he tenido problemas para encontrar este tipo de cables, porque son bastante complicados de encontrar a menos que los compremos a un broker y por tanto, tengamos que desembolsar bastante dinero.

Fig. 5: Conexión del cable con el terminador activo en la 3590
Por lo tanto, para conectar el cable, conectaremos el extremo normal del cable SCSI a la tarjeta SCSI del PC (con el PC apagado) y por el otro, conectaremos la zapata macho al conector hembra de la unidad 3590 y en el conector hembra de la zapata, colocaremos el terminador activo.

Fig. 6: El otro extremo del cable SCSI conectado a la tarjeta del PC
Con esto, tenemos la parte hardware conectada.
Configuración Firmware 3590
Ahora lo que hay que hacer es configurar la unidad 3590 para que pueda hablar con el PC sin problemas. Por un lado, hay que configurar el número de puerto SCSI que queremos que el sistema configure y por otro lado, hay que configurar el tipo de operación de la unidad (Si esta dentro del robot, no funciona de la misma manera que si es standalone, etc).
Lo primero que haremos será configurar el puerto SCSI. Esta unidad tiene 2 puertos SCSI y dos conectores. Esto hace que la unidad pueda ser compartida por dos sistemas distintos, y a cada puerto se le puede configurar un numero SCSI distinto.
Para ello, encenderemos la unidad y esperaremos a que pase los tests. Una vez pasados, en el panel de control elegiremos con las flechas de cursor el menu Service, y de ahi elegiremos Set Offline. En el menú Offline, elegiremos que queremos poner Offline ambos puertos, asi que pulsaremos sobre Both.
Una vez puestos Offline, si volvemos al menú Service, podemos elegir la opción Set Address y elegimos el puerto al que queremos dar la dirección. Generalmente le daremos la dirección 0, a no ser que el mismo bus tenga algún otro dispositivo con esa misma dirección y por tanto, debamos dar otra. Lo que no se puede hacer es darle la dirección 7, ya que esa suele ser la dirección que reserva la propia tarjeta SCSI del PC.
Una vez cambiada la dirección, la salvaremos, y resetearemos la unidad, para que tenga la nueva dirección configurada. Si los puertos siguen Off-Line, y dado que solo vamos a utilizar uno de ellos, desde el Menú Service podemos poner Online el puerto SCSI al que va conectado el cable del PC.
Por otro lado, hay que configurar el modo de operación de la unidad. La unidad 3590 en función de que si está en un robot o en modo standalone, tiene muchos modos de operación y modos de compatibilidad con otras unidades de cinta. En nuestro caso, y dado que la unidad la sacamos de un robot y ahora la queremos poner standalone, debemos cambiar la modalidad de la unidad. Para ello, seguiremos los siguientes pasos:
1.- Sacaremos el panel de control del sitio donde esta alojado. Eso hará que se muestren 2 botones que estaban ocultos cuando el panel se encuentra en la posición original: Uno de ellos tiene un símbolo de una llave inglesa. Es el modo de Servicio de IBM (CE) y que hará que al pulsarlo se muestre un menú con muchas opciones que ni sabíamoss que existían. Pues lo pulsaremos.
2.- Seleccionaremos Config/Install. Y de ahí, iremos a Drv Options. En el, debemos estar seguros que esta desactivada la opción Disable CU Mode. Si esta la opción “punteada” es que esta desactivada.
3.- Dentro de ese mismo menú, seleccionaremos la opción Drv Features y cambiaremos lo que estaba por la opción B1A/E1A Deskside.
4.- Seleccionaremos a Yes para salvar todos los datos, y una vez hecho, resetearemos la unidad o bien apagándola y encendiéndola, o bien pulsando el botón que esta a la izquierda del de la llave inglesa que es el de reset.
Configuración PC
Ahora, toca arrancar el PC. Con la unidad encendida y con los diagnósticos pasados, encenderemos el PC. En el arranque del firmware de la tarjeta SCSI, deberíamos ver como ahora en la dirección 0 existe un dispositivo llamado IBM3590B1A. Si se ve, la instalación ha sido un éxito.

Fig. 7: Unidad 3590 correctamente detectada por la tarjeta SCSI
En principio, ahora si arrancamos GNU/Linux, debería autodetectar la unidad y darle un nombre de dispositivo, como por ejemplo, /dev/st0.
Para probar que la unidad funciona, haremos una prueba sencilla: Realizaremos un tar de unos ficheros a la unidad de cinta y luego los recuperaremos. Para ello, lo primero que haremos será introducir una cinta 3590 en la unidad y esperar a que la cargue. Cuando en el panel de control aparezca un READY AT LOAD POINT, la unidad está dispuesta. Entonces, ejecutaremos un comando tal que tar -cvf /dev/st0 /home/prueba.txt siendo prueba.txt un fichero de texto normalito que esta en la /home, y debería grabarlo como un rayo.
Para verificar que restaura, si hacemos un tar -xvf /dev/st0 debería dejarnos en /home el fichero prueba.txt grabado anteriormente. Si esto lo ha hecho bien, la unidad, su configuración y GNU/Linux funcionan perfectamente.
Configuración Hercules
Para añadir esa unidad de cinta al Hercules, basta con editar el fichero de configuración hercules.cnf que reside por defecto en /etc/hercules.cnf y añadir la siguiente línea:
0500 3490 /dev/st0
Esto hace que la unidad de cinta esté conectada a la dirección 0500 y si nuestro z/OS tiene esa dirección en el IODF configurada como unidad 3490 o 3590, será suficiente.
NOTA: Como hercules no reconoce unidades 3590, hemos definido la unidad como 3490. Esto realmente no afecta al grabado de cintas, por lo que si desde z/OS del hercules, mandamos una copia a cinta, a pesar de que la unidad se vea como una 3490, se grabara en formato 3590 con la capacidad de cartuchos 3590 J y K y podrá ser leída desde cualquier mainframe real.