15 lib_cmd

En este capítulo, se describe la interfaz de línea de comandos (CLI) opcional, lib_cmd. Esta herramienta está destinada principalmente a usarse para administrar bibliotecas lógicas en ACSLS, pero algunos comandos pueden ser útiles como alternativa a la GUI de ACSLS o a cmd_proc en determinados contextos específicos. La CLI lib_cmd admite operaciones de expulsión, incluida la posibilidad de especificar listas de volúmenes extensas (más de 42).

Introducción

ACSLS incorporó el concepto de las bibliotecas lógicas en la versión 8.0. Para acceder a la operación de cliente de biblioteca lógica, se usan comandos SCSI mediante la emulación del cambiador de medios de SCSI (SMCE) mediante una conexión de canal de fibra. Los clientes pueden ejecutar operaciones mount (montar), dismount (desmontar), enter (introducir) y eject (expulsar) en las cintas y administrar su propio inventario de cintas mediante la interfaz de SMCE, como si la biblioteca estuviera directamente conectada a la aplicación de cliente.

Hasta ACSLS 8.2, las funciones de configuración administrativa de la biblioteca lógica se establecían por medio de la Interfaz gráfica del usuario de ACSLS (también incorporada en ACSLS 8.0). Este tipo de tareas incluye crear una biblioteca de cintas lógica con la cantidad deseada de celdas de almacenamiento y ranuras de unidad de cinta, establecer una relación iniciador-destino de cliente, asignar unidades físicas a la biblioteca y asignar volúmenes de cinta.

Estas tareas administrativas también pueden llevarse a cabo mediante una interfaz de línea de comandos de UNIX (CLI). La CLI extiende la capacidad de uso de las bibliotecas lógicas, lo cual proporciona una ruta más rápida a las funciones administrativas críticas y proporciona los medios para administrar bibliotecas lógicas usando secuencias de comandos del shell de UNIX para procesamiento en lotes.

Comando

lib_cmd 

Nombre de ruta

$ACS_HOME/bin/lib_cmd

Síntesis

lib_cmd
lib_cmd [-f infile]
lib_cmd assign drive drive_id lib_id
lib_cmd assign volume [vol_id | vol-range] lib_id
lib_cmd unassign volume [ vol_id | vol-range ] lib_id 
lib_cmd unassign drive lib_id  logical_drive_id
lib_cmd create library lib_name backing_acs cell_capacity drive_capacity
lib_cmd create mapping initiator_id target_id library_id
lib_cmd edit initiator initiator_id alias
lib_cmd edit library lib_id [-n name ] 
                            [-c capacity ] 
                            [-d drive_slots ]
                            [-f volume_label_format [6|8p|8s|all] 
                            [-x imp/exp_cell_count ]
lib_cmd edit target target_id alias
lib_cmd refresh initiator
lib_cmd refresh target
lib_cmd delete initiator initiator_id (y/n)
lib_cmd delete library lib_id (y/n)
lib_cmd delete mapping lib_id (y/n)
lib_cmd delete target target_id  (y/n)
lib_cmd display drive [drive_id ]
                      [-p acs_id | all ] 
                      [-l lib_id | all ] 
                      [-t drive_type ] 
                      [-u acs_id ]
lib_cmd display initiator
lib_cmd display library [ -p acs_id | all ]
                        [ -l lib_id | all ]
lib_cmd display mapping [ lib_id | all ]
lib_cmd display target
lib_cmd display volume [ vol_id ] | vol-range ] 
                       [ -p acs_id | all ]
                       [ -l lib_id | all ]
                       [ -u acs_id ]
lib_cmd eject cap <cap_id> [-verbose] volume <vol_id...vol_id> | file <path_to_volume_list>
lib_cmd vary library lib_id [online|offline|diagnostic]
lib_cmd vary drive lib_id drive_id  [online|offline|diagnostic]
lib_cmd [ exit | quit | log ]

Uso de lib_cmd

La utilidad de línea de comandos lib_cmd es una alternativa a la GUI de ACSLS para gestionar y supervisar recursos en bibliotecas lógicas de ACSLS. Con lib_cmd, el administrador de ACSLS puede crear, editar o suprimir una biblioteca lógica; asignar volúmenes o unidades de cinta a una biblioteca lógica o anular dicha asignación; refrescar iniciadores o destinos; crear asignaciones de iniciador-destino para la comunicación de cliente; mostrar el estado de bibliotecas lógicas; o mostrar el estado de volúmenes o unidades dentro de las bibliotecas físicas o lógicas configuradas.

Además de la administración de bibliotecas lógicas, lib_cmd ofrece un pequeño juego de comandos de biblioteca generales que se pueden usar en lugar de cmd_proc para mostrar el contenido de la biblioteca o para expulsar grandes cantidades de volúmenes a un único CAP (como el AEM de SL3000).

Cualquier usuario del grupo de ACSLS puede realizar estas operaciones, incluso root.

La utilidad lib_cmd puede usarse en modo interactivo o en modo de lotes. El modo interactivo se invoca mediante el comando solamente, sin argumentos.

lib_cmd

El modo interactivo admite las funciones "help", que enumeran todos los posibles subcomandos y argumentos. Dentro del contexto de cada subcomando, se puede mostrar una lista de posibles argumentos y opciones a petición. Cuando tenga dudas sobre las posibles cadenas de entrada válidas, puede pulsar <Enter> para obtener una lista de todos los posibles argumentos para el contexto inmediato.

No se ofrece interactividad en el modo de lotes a fin de admitir mejor el uso de esta utilidad con secuencias de comandos generadas por el usuario. En el modo de lotes, todas las opciones y los argumentos deseados deben enviarse con el comando. De lo contrario, se muestra un mensaje de error.

Opción

  • -f (especificación de entrada de archivo de comandos)

    Cuando se solicita la opción -f, la utilidad ejecuta el juego de comandos que encuentra en el archivo de entrada especificado. El archivo de entrada debe contener solo solicitudes completamente formadas.

Subcomandos

En esta sección, se describen los subcomandos.

assign drive drive_id lib_id

Asigna la unidad especificada a la biblioteca especificada. El drive_id se expresa mediante la notación estándar para unidades de una biblioteca física (acs,lsm,panel,drive). El argumento lib_id es el ID asignado de la biblioteca lógica. Los ID de biblioteca lógica comienzan a 1001 y aumentan incrementalmente a medida que se crean bibliotecas.

unassign drive lib_id logical_drive_id

Elimina la unidad lógica especificada de la configuración de biblioteca lógica. La unidad se especifica mediante su dirección lógica (que comienza con la dirección 500). El ID de biblioteca lógica es un número de cuatro dígitos (a partir de 1001).

assign volume vol_id | vol-range lib_id

Asigna un volumen para uso exclusivo dentro de una biblioteca lógica. El volumen se expresa mediante el formato de etiqueta de seis caracteres o de códigos de barras estándar. La biblioteca se expresa mediante el ID numérico de biblioteca lógica. El volumen debe poder asignarse. Es decir, no debe estar asignado, tener propietario ni estar montado, reservado, en tránsito ni en uso de ninguna otra forma.

Se especifica un rango mediante una cadena de valor ACSII bajo y una cadena de valor ASCII alto separadas por un guion. Cuando se solicita un rango de volumen, lib_cmd busca volúmenes en el ACS de respaldo dentro del rango especificado. Cualquier volumen del rango que pueda asignarse se asigna a la biblioteca lógica especificada.

unassign volume vol_id | vol-range lib_id

Elimina un volumen del inventario de biblioteca lógica. El volumen debe residir en su celda de origen y no puede reservarse para una operación de movimiento pendiente.

Se especifica un rango mediante una cadena de valor ACSII bajo y una cadena de valor ASCII alto separadas por un guion. Cuando se solicita un rango de volumen, lib_cmd busca volúmenes en la biblioteca lógica especificada dentro del rango especificado. Se anula la asignación de los volúmenes asignados de la biblioteca que están dentro del rango pero no están en uso.

create library lib_name backing_acs cell_capacity drive_capacity

Crea una nueva biblioteca lógica. Después de create library, se requieren cuatro argumentos en este orden: nombre de alias de biblioteca (cadena); ID de ACS de respaldo (entero), número de celdas de almacenamiento (entero) y número de ranuras de unidad (entero).

create mapping initiator_id target_id library_id

Establece una relación iniciador-destino (cliente-servidor) para la biblioteca especificada.

edit library lib_id [-n name ] [-c capacity ] [-d drive_slots ] [-f volume_label_format [6|8p|8s|all] [-x imp/exp_cell_count ]

Altera la configuración de la biblioteca lógica existente. La biblioteca específica se expresa mediante el ID numérico de cuatro dígitos. Se puede proporcionar cualquier opción individual, y solo ese campo se modifica por medio del argumento suministrado con la opción. Entre las opciones, se incluyen:

  • -n: nombre de alias de biblioteca

  • -c: capacidad de celda de almacenamiento lógico

  • -d: número de ranuras de unidad lógica

  • -f : formato de etiqueta de volumen

  • -x: número de celdas de importación/exportación (de CAP) lógicas

El formato de etiqueta de volumen se puede expresar con cualquiera de las siguientes opciones:

  • 6: etiquetas de volúmenes heredados de seis caracteres

  • 8p: ocho caracteres con un prefijo de código de tipo de medio

  • 8s: ocho caracteres con un sufijo de código de tipo de medio

  • all: se aceptan todos los formatos de etiqueta

refresh initiator

Recupera todos los iniciadores conocidos actualmente para ACSLS.

refresh target

Recupera todos los destinos conocidos actualmente para ACSLS.

delete initiator initiator_id (y/n)

Elimina el iniciador especificado de la configuración. Se requiere una aceptación (y) para confirmar la supresión especificada.

delete library lib_id (y/n)

Elimina la biblioteca lógica especificada de la configuración de ACSLS. Esto genera una operación delete en cascada, que disocia las unidades y los volúmenes asignados de la biblioteca. Se debe poner la biblioteca fuera de línea antes de intentar la supresión. La eliminación falla si uno o más de los volúmenes lógicos de la biblioteca están en uso actualmente. Se requiere una aceptación (y) para confirmar la supresión especificada.

delete mapping lib_id (y/n)

Elimina todas las asignaciones iniciador-destino de la biblioteca lógica especificada. La operación desactiva todas las conexiones de clientes actuales. Se requiere una aceptación (y) para confirmar la supresión especificada.

delete target target_id (y/n)

Elimina el destino especificado de la configuración. Se requiere una aceptación (y) para confirmar la supresión especificada.

display drive drive_id  [-t drive_type ]  [-p acs_id | all ]  [-l lib_id | all ] [-u acs_id ]

Genera un resumen de la unidad especificada o de todas las unidades de la biblioteca especificada.

La pantalla incluye la dirección física y lógica de las unidades, el tipo de unidad, el estado de unidad y, si drive_status indica in_use, se muestra el VOLSER del cartucho montado.

------------------------ Example ----------------------------
$ lib_cmd display drive 0,0,10,1
 Physical   Logical    Drive     Drive     Drive      Mounted
 Location   Address    Type      State     Status     Volume
 0,0,10,1   1001:502   9840      Online    in use     RIFF21
-------------------------------------------------------------
  • Si se ejecuta display drive all sin opciones, la utilidad genera una lista de todos los volúmenes incluidos en cada ACS físico.

  • Si se transfiere la opción -t, solo se muestran las unidades del tipo de unidad especificado.

  • La opción -p limita la visualización a las unidades del ACS físico especificado.

  • Si se incluye la opción -l, se muestran solo las unidades asignadas a la biblioteca lógica especificada. Si se especifica all después de la opción -l, se genera una visualización que muestra todas las unidades asociadas con cada una de las bibliotecas lógicas configuradas.

  • La opción -u solo muestra las unidades no asignadas del ACS asociado. Esta opción debe estar seguida de un argumento que especifique el ACS deseado.

display initiator

Genera una lista de todos los iniciadores identificados por ACSLS. Cada iniciador aparece con su world wide name y el nombre de alias.

display library [ -l lib_id | all ][ -p acs_id | all ]

Muestra los atributos del ID de biblioteca solicitado. Especifique -l para bibliotecas lógicas o -p para ACS físicos.

  • Si se especifica -l, la utilidad genera un resumen de la configuración de biblioteca lógica, de la siguiente manera:

    ID numérico, nombre, estado (estado deseado)

    ID de ACS de respaldo, estado (estado deseado).

    Número de celdas de importación/exportación asignadas

    Número de ranuras de unidad asignadas

    Número de unidades asignadas

    Número de celdas de almacenamiento asignadas

    Número de celdas libres

    Número de volúmenes asignados (cantidad de estos que no están accesibles)

    Formato de etiqueta de volumen

    -----------------Example-----------------------------------
    ACS 1001 'logLib01' Offline (Desired Online)
       Backing ACS 0 Offline (Desired Online)
       2 import/export cells
       5 Tape Drive Slots
       2 Tape Drives
       999 Storage Cells
       993 Free Cells
       106 Volumes (6 Inaccessible):
       Volume Label Format: Six character (classic)
    --------------------------------------------------------
    

    Los volúmenes que no están accesibles son volúmenes asignados que están fuera del alcance de la biblioteca lógica, por cualquiera de los siguientes motivos:

  • El volumen se ha expulsado de la biblioteca física.

  • La aplicación de cliente ha marcado el volumen para eject.

  • El volumen asignado reside en la biblioteca física, pero la biblioteca lógica ha superado su capacidad de almacenamiento.

  • Si se especifica el argumento all en lugar del lib_id numérico, la visualización se repite para cada biblioteca lógica configurada. En el modo de lotes, transferir -l sin argumento tiene el mismo efecto que si se usa el argumento all.

  • Cuando se especifica la opción -p con un ID de ACS específico, la utilidad genera una visualización que resume la configuración de biblioteca para ese ACS:

    -------------------------------- Example ----------------------------------
    $ lib_cmd display lib -p 0
    Physical ACS 0 Online 56 Drives:
    1 LSM:
    LSM  Library   LSM     LSM    Drive  Vol     Free Cell
    ID    Type    Status  State   Count  Count   Count
    0,0   SL3000  Normal  Online   56    62      4321
    10 CAPs:
     ID     Mode        State    Status     Condition    Size     Availability     
    0,0,1   Manual     Online   Available   Operative    26       shared
    0,0,2   Manual     Online   Available   Operative    26       shared
    0,0,3   Manual     Online   Available   Operative    26       shared
    0,0,4   Manual     Online   Available   Operative    26       shared
    0,0,5   Manual     Online   Available   Operative    26       shared
    0,0,6   Automatic  Online   Available   Operative    26       shared
    0,0,7   Manual     Online   Available   Operative    26       shared
    0,0,8   Manual     Online   Available   Operative    26       shared
    0,0,9   Manual     Online   Available   Operative    26       shared
    0,0,10  Manual     Online   Available   Operative    26       shared
    --------------------------------------------------------------------------
    
  • Si se transfiere el argumento all con la opción -p, la visualización se repite para cada ACS físico configurado.

    El argumento all es la visualización por defecto para solicitudes en el modo de lotes. La opción -p sin argumento tiene el mismo efecto que si se solicita all.

display mapping [ lib_id | all ]

Genera una lista de asignaciones iniciador-destino para cada ID de biblioteca (o todas las bibliotecas).

display volume [ vol_id ] | vol-range ] [ -p [ acs_id | all ] [ -l [ lib_id | all ] [ -u acs_id ]

Genera información resumida para el juego de volúmenes o el volumen especificado:

----------------------Example -----------------------------
$ lib_cmd display volume ST0212
   Volume       media     current      physical     logical
     ID         type      status       location     address
   ST0212       STK1R     Home        0,0,2,6,0     1001:100
-------------------------------------------------------------
  • Si se monta el volumen, la dirección lógica y la ubicación física reflejan la dirección de la unidad en la que se monta el volumen. De lo contrario, se indican las direcciones lógica y física de origen de los volúmenes. La dirección lógica se completa solamente en casos en los que se ha asignado el volumen a una biblioteca lógica.

  • Se puede especificar un rango de volúmenes mediante una cadena de valor ACSII bajo y una cadena de valor ACSII alto separadas por un guion. La visualización muestra un resumen de estado para cada volumen del rango especificado.

  • Si se envía display volume all sin opciones, la visualización muestra todos los volúmenes incluidos en cada ACS físico.

  • Si el ID de ACS físico se transfiere con la opción -p, la lista se limita a los volúmenes que residen en ese ACS físico específico. Si se envía all con
    -p, se muestran los volúmenes incluidos en todos los ACS físicos.

  • Si se transfiere el ID numérico de una biblioteca lógica (lib_id) con la opción -l, solo se muestra el juego de volúmenes asociados con esa biblioteca lógica específica. Si se transfiere la palabra all con la opción -l, la utilidad muestra todos los volúmenes asociados con cada biblioteca lógica configurada.

  • La opción -u genera una visualización que se limita a los volúmenes no asignados incluidos en el ACS físico especificado.

eject cap <cap_id> [-verbose] volume <vol_id...vol_id> | file <path_to_volume_list>

lib_cmd eject admite operaciones de expulsión, incluida la capacidad de especificar listas extensas de volúmenes (más de 42). Se pueden introducir volúmenes como entrada de usuario o mediante la especificación de la ruta a un archivo de texto que incluya una lista de volúmenes. Se pueden introducir varios volúmenes en una línea, en mayúsculas o minúsculas.

  • <cap_id>

    • Debe ser un CAP específico o existente en la configuración de biblioteca.

    • No se admiten comodines.

    • Está disponible una lista de CAP.

  • [-verbose | -v]

    • La opción verbose especifica que se muestren todos los volúmenes.

    • El valor por defecto NO es verbose y muestra hasta 10 volúmenes más un recuento.

  • <vol_id>

    • Se pueden especificar uno o más identificadores de volumen por línea.

    • En modo interactivo, pulse <Return> para finalizar la lista.

  • <path_to_volume_list>

    • Especifique una ruta relativa o completa al archivo de texto.

    • Se pueden especificar varios identificadores de volumen por línea.

    • Todas las líneas de comentario (que comienzan con "#") y las líneas en blanco se omiten.

No hay un límite conocido para la cantidad de volúmenes que pueden especificarse en cualquiera de los formatos. ACSLS lleva a cabo una única operación de expulsión una vez que se han proporcionado todos los volúmenes y continúa completando el CAP especificado según sea necesario hasta que se hayan expulsado todos los volúmenes posibles.

La visualización de salida incluye un informe de recuentos de volúmenes (volúmenes especificados, volúmenes expulsados o no expulsados). La opción verbose genera una salida que muestra todos los volúmenes (por defecto, se genera una vista previa de 10 volúmenes para cada lista). Para los volúmenes no expulsados, se muestra una línea que indica el identificador de volumen y el motivo.

vary drive lib_id drive_id [online|offline|diagnostic]

Cambia el estado deseado de la unidad lógica al estado especificado (en línea, fuera de línea, diagnóstico).

vary library lib_id [online|offline|diagnostic]

Cambia el estado deseado de la biblioteca lógica al estado especificado (en línea, fuera de línea, diagnóstico).

Uso de lib_cmd en el modo de lotes

El uso de lib_cmd en el modo de lotes permite realizar tareas administrativas más complejas. Por ejemplo, las operaciones que asignan o anulan la asignación de varios volúmenes o unidades, con frecuencia, se logran más eficazmente en el modo de lotes.

En este ejemplo, asignaremos todas las unidades 9840 en la guía 2 de un módulo de SL8500 a la biblioteca lógica 1002.

  1. Ejecute lib_cmd para enumerar todas las unidades no asignadas en acs-0 y ejecute grep para filtrar solamente las unidades 9840 que residen en la guía 2 (acs-0, lsm-1).

    $ lib_cmd display drive -u 0  |  grep 9840 | grep 0,1,.,.
    

    Todas las unidades no asignadas de la guía 2 se mostrarán en una visualización de cinco campos:

      Physical Logical   Drive  Drive   Drive      Mounted
      Location Address   Type   State   Status     Volume
      0,1,1,0            9840   Online  available
      0,1,1,1            9840   Online  available
      0,1,1,2            9840   Online  available
      0,1,1,3            9840   Online  available
      0,1,1,4            9840   Online  available
    

    Para los fines de esta descripción, solo se requiere el ID de unidad de esta visualización, de modo que se imprime solamente el primer campo, mediante awk.

      $ lib_cmd display drive -u 0 | grep 9840|grep 0,1,.,.|awk ’{print $1}’
      0,1,1,0
      0,1,1,1
      0,1,1,2
      0,1,1,3
      0,1,1,4
    
  2. Con la misma sentencia de impresión awk, podemos agregar texto a fin de construir los comandos necesarios para asignar las unidades a la biblioteca lógica 1002.

    $ lib_cmd display drive -u 0 | grep 9840|grep 0,1,.,.|awk ’{print ”assign drive ”$1”1002}’
    assign drive 0,1,1,0 1002
    assign drive 0,1,1,1 1002
    assign drive 0,1,1,2 1002
    assign drive 0,1,1,3 1002
    assign drive 0,1,1,4 1002
    
  3. Una vez que esté satisfecho con el texto del comando, puede dirigir la salida a un archivo de texto:

    $ lib_cmd display drive -u 0 | grep 9840 | grep 0,1,.,. | awk '{print "assign drive "$1" 1002"}'  > /tmp/assignDr
    
  4. Por último, puede editar el archivo de comandos para realizar los cambios que desee y luego ejecutar el archivo mediante lib_cmd:

    $ lib_cmd -f ./tmp./assignDr
    --ACSLS 8.2.0--
    Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
    Drive 0,1,1,0 now assigned to logLib02 at 1002:500
    Drive 0,1,1,1 now assigned to logLib02 at 1002:501
    Drive 0,1,1,2 now assigned to logLib02 at 1002:502
    Drive 0,1,1,3 now assigned to logLib02 at 1002:503
    Drive 0,1,1,4 now assigned to logLib02 at 1002:504 
    
  5. Utilice el comando de visualización lib_cmd para confirmar la asignación:

    $ lib_cmd  display  drives  -l  1002
    ACS 1002 LOG lIB02:20 Drive Slots 5 Drives
    Physical   Logical      Drive  Drive   Drive       Mounted
    Location   Address      Type   State   Status      Volume
    0,1,1,0    1002:500     9840   Online  available
    0,1,1,1    1002:501     9840   Online  available
    0,1,1,2    1002:502     9840   Online  available
    0,1,1,3    1002:503     9840   Online  available
    0,1,1,4    1002:504     9840   Online  available