15 lib_cmd

Ce chapitre décrit l'interface de ligne de commande (CLI) facultative lib_cmd. Cet outil est principalement conçu pour administrer les bibliothèques logiques d'ACSLS, mais certaines commandes peuvent être utiles comme alternative à l'interface graphique ACSLS ou à cmd_proc dans certains cas précis. La CLI lib_cmd prend en charge les opérations d'éjection, y compris la possibilité de spécifier des listes de plus de 42 volumes.

Introduction

ACSLS introduit le concept de bibliothèque logique dans sa version 8.0. L'exploitation client de bibliothèque logique est accessible grâce aux commandes SCSI au moyen de l'interface SMCE (émulation de l'interface de changeur de média SCSI) via une connexion Fibre Channel. Les clients peuvent effectuer les opérations de bande mount, dismount, enter et eject, et gérer leur propre inventaire de bandes grâce à l'interface SMCE, comme si la bibliothèque était directement connectée à l'application client.

Jusqu'à ACSLS 8.2, les fonctions de configuration administrative des bibliothèques logiques s'exécutaient à partir de l'interface graphique ACSLS (également introduite dans ACSLS 8.0). De telles tâches comprennent la création d'une bibliothèque logique de bandes dotée du nombre souhaité de cellules de stockage et d'emplacements de lecteur de bande, la mise en place d'une relation initiateur-cible, l'affectation d'unités physiques à la bibliothèque et l'affectation de volumes de bande.

Ces tâches administratives peuvent également être accomplies au moyen d'une interface de ligne de commande UNIX (CLI). La CLI étend les capacités d'utilisation des bibliothèques logiques en fournissant un chemin plus rapide vers les fonctions administratives essentielles et les moyens d'administrer les bibliothèques logiques avec les scripts UNIX shell de traitement par lots.

Commande

lib_cmd 

Nom de chemin

$ACS_HOME/bin/lib_cmd

Résumé

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 ]

Utilisation de la commande lib_cmd

L'utilitaire de ligne de commande lib_cmd représente une alternative à l'interface GUI ACSLS quand il s'agit de gérer et de surveiller les ressources des bibliothèques logiques ACSLS. Avec lib_cmd, l'administrateur d'ACSLS peut créer, modifier ou supprimer une bibliothèque logique, affecter ou désaffecter des volumes ou des lecteurs de bande à une bibliothèque logique, créer des mappages initiateur-cible pour la communication client, afficher l'état des bibliothèques logiques ou afficher l'état des volume ou des unités au sein des bibliothèques physiques ou logiques configurées.

En plus de l'administration des bibliothèques logiques, lib_cmd offre un petit ensemble de commandes générales de bibliothèque qui peuvent servir à la place de l'interface cmd_proc pour afficher les contenus de la bibliothèque ou pour éjecter de grandes quantités de volumes vers un seul CAP (tel que le SL3000 AEM).

Ces opérations peuvent être effectuées par n'importe quel utilisateur appartenant au groupe ACSLS, y compris root.

La commande lib_cmd peut être utilisée en mode interactif ou en mode par lots. Le mode interactif est invoqué directement par la commande et ne requiert pas d'argument.

lib_cmd

Le mode interactif prend en charge les fonctions 'help' qui répertorient toutes les sous-commandes et tous les arguments possibles. Dans le contexte de chaque sous-commande, une liste d'arguments et d'options possibles peut être affichée à la demande. Lorsque vous n'êtes pas sûr de la validité d'une saisie, vous pouvez appuyez sur <Enter> pour obtenir une liste des arguments possibles en fonction du contexte donné.

L'interactivité n'est pas disponible en mode par lots afin de mieux prendre en charge l'utilisation de scripts générés par l'utilisateur. En mode par lots, l'ensemble des options et des arguments souhaités doit être soumis avec la commande. Sinon, un message d'erreur s'affiche.

Option

  • -f (spécification d'entrée de fichier de commandes)

    Lorsque l'option -f est requise, l'utilitaire exécute l'ensemble des commandes spécifiées dans le fichier d'entrée. Le fichier d'entrée ne doit contenir que des demandes complètes.

Sous-commandes

Cette section traite des sous-commandes.

assign drive drive_id lib_id

Affecte l'unité indiquée à la bibliothèque indiquée. drive_id est représenté par la notation standard des unités dans une bibliothèque physique (acs,lsm,panel,drive). L'argument lib_id correspond à l'ID de la bibliothèque logique affecté. Le premier ID bibliothèque logique est 1001. Ce numéro augmente de façon croissante à chaque fois qu'une bibliothèque est ajoutée.

unassign drive lib_id logical_drive_id

Supprime le lecteur logique spécifié de la configuration de bibliothèque logique. L'unité est précisée par son adresse logique (qui débute à l'adresse 500). L'ID bibliothèque logique est un numéro à quatre chiffres (qui débute à 1001).

assign volume vol_id | vol-range lib_id

Affecte l'utilisation exclusive d'un volume dans une bibliothèque logique. Le volume est représenté par son format standard à six chiffres ou par un code barres. La bibliothèque est représentée par son ID numérique de bibliothèque logique. Le volume doit être en mesure d'être affecté ('assignable'). C'est-à-dire qu'il ne doit pas être assigné, avoir de propriétaire et être monté, réservé, en transit ou en cours d'utilisation.

Une plage est spécifiée par une chaîne de valeurs ACSII inférieure et une chaîne de valeurs ACSII supérieure séparées par un tiret. Lorsqu'une plage de volumes est demandée, lib_cmd recherche les volumes appartenant à la plage spécifiée au sein de l'ACS d'arrière-plan. Tout volume de la plage en mesure d'être affecté est affecté à la bibliothèque logique spécifiée.

unassign volume vol_id | vol-range lib_id

Supprime un volume de l'inventaire d'une bibliothèque logique. Le volume doit résider dans sa cellule d'origine et ne peut pas être réservé dans le cadre d'une opération de déplacement prévue.

Une plage est spécifiée par une chaîne de valeurs ACSII inférieure et une chaîne de valeurs ACSII supérieure séparées par un tiret. Lorsqu'une plage de volumes est demandée, lib_cmd recherche les volumes appartenant à la plage spécifiée au sein de la bibliothèque logique spécifiée. Tout volume affecté appartenant à la plage et qui n'est pas en cours d'utilisation verra son affectation à la bibliothèque annulée.

create library lib_name backing_acs cell_capacity drive_capacity

Crée une bibliothèque logique. Quatre arguments sont requis à la suite de create library : l'alias de la bibliothèque (chaîne), l'ID de l'ACS en arrière-plan (entier), le nombre de cellules de stockage (entier) et le nombre d'emplacements d'unité (entier).

create mapping initiator_id target_id library_id

Etablit une relation initiateur-cible (client-serveur) pour la bibliothèque spécifiée.

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

Modifie la configuration d'une bibliothèque logique existante. La bibliothèque spécifique est représentée par son ID à quatre chiffres. Toute option peut être fournie, et seul le champ correspondant est modifié au moyen de l'argument fourni avec l'option. Exemples d'option :

  • -n alias de bibliothèque

  • -c capacité des cellules de stockage logique

  • -d nombre d'emplacements de lecteur logique

  • -f format de l'étiquette de volume

  • -x nombre de cellules (CAP) d'import/export logiques

L'étiquette de volume peut prendre l'un des formats suivants :

  • 6     étiquettes de volume héritées à six caractères

  • 8p   préfixe à huit caractères avec code de type de média

  • 8s    suffixe à huit caractères avec code de type de média

  • all   accepte tous les formats d'étiquette

refresh initiator

Récupère tous les initiateurs actuellement reconnus par ACSLS.

refresh target

Récupère toutes les cibles actuellement reconnues par ACSLS.

delete initiator initiator_id (y/n)

Supprime l'initiateur spécifié de la configuration. Un confirmation (y) est requise afin de valider la suppression spécifiée.

delete library lib_id (y/n)

Supprime la bibliothèque logique spécifiée de la configuration ACSLS. Cela entraîne une suppression en cascade ( delete), dissociant tous les volumes et lecteurs assignés de la bibliothèque. La bibliothèque doit être mise hors ligne avant de tenter toute suppression. La suppression échoue si un ou plusieurs volumes logiques de la bibliothèque sont en cours d'utilisation. Un confirmation (y) est requise afin de valider la suppression spécifiée.

delete mapping lib_id (y/n)

Supprime tous les mappages initiateur-cible de la bibliothèque logique spécifiée. L'opération désactive toutes les connexions client actuelles. Un confirmation (y) est requise afin de valider la suppression spécifiée.

delete target target_id (y/n)

Supprime la cible spécifiée de la configuration. Un confirmation (y) est requise afin de valider la suppression spécifiée.

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

Génère un résumé relatif au lecteur spécifié ou à tous les lecteurs de la bibliothèque spécifiée.

Le contenu affiché comprend l'adresse physique et logique des unités, le type d'unité, l'état de l'unité, et si drive_status affiche in_use, l'élément VOLSER de la cartouche montée s'affiche.

------------------------ 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 la commande display drive all est soumise sans options, l'utilitaire génère une liste de tous les volumes contenus dans chaque ACS physique.

  • Si l'option -t est utilisée, seuls les lecteurs du type de lecteur spécifié sont affichés.

  • L'option -p limite la liste aux lecteurs de l'ACS physique spécifié.

  • Si l'option -l est utilisée, seuls les lecteurs assignés à la bibliothèque logique spécifiée sont affichés. Si l'option all est spécifiée à la suite de l'option -l, un écran s'affiche indiquant tous les lecteurs associés à chacune des bibliothèques logiques configurées.

  • L'option -u permet d'afficher uniquement les lecteurs non assignés dans l'ACS associé. Cette option doit être suivie d'un argument spécifiant l'ACS souhaité..

display initiator

Génère une liste de tous les initiateurs identifiés par ACSLS. Chaque initiateur est répertorié d'après son nom WWN et son alias.

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

Affiche les attributs de l'ID bibliothèque demandé. Spécifiez -l pour les bibliothèques logiques ou '-p' pour les ACS physiques.

  • Si -l est indiqué, l'utilitaire génère un résumé de la configuration de la bibliothèque logique, comme suit :

    ID numérique, nom, état (état souhaité)

    ID de l'ACS en arrière-plan, état (état souhaité)

    Nombre de cellules d'importation/d'exportation allouées

    Nombre d'emplacements d'unité alloués

    Nombre d'unités affectées

    Nombre de cellules de stockage allouées

    Nombre de cellules libres

    Nombre de volumes affectés (parmi ceux-ci, nombre de volumes accessibles)

    Format de l'étiquette de volume

    -----------------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)
    --------------------------------------------------------
    

    Les volumes inaccessibles sont les volumes affectés qui sont hors de portée de la bibliothèque logique, pour n'importe quelles des raisons suivantes :

  • Le volume a été éjecté de la bibliothèque physique.

  • Le volume a été marqué comme eject par l'application client.

  • Le volume affecté réside dans la bibliothèque physique, mais la capacité de stockage de la bibliothèque logique est saturée.

  • Si l'argument all est spécifié à la place de la valeur numérique lib_id, l'opération d'affichage se répète pour chaque bibliothèque logique configurée. En mode par lots, le fait d'exécuter -l sans argument a un effet identique à l'argument all.

  • Lorsque l'option -p est indiquée avec l'ID d'un ACS précis, l'utilitaire génère un affichage qui résume la configuration de la bibliothèque pour cet 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 l'argument all est introduit avec l'option -p, l'opération d'affichage se répète pour chaque ACS physique configuré.

    L'argument all correspond à l'affichage par défaut des demandes en mode par lots. L'option -p sans argument a le même effet qu'avec l'argument all.

display mapping [ lib_id | all ]

Génère une liste de mappages initiateur-cible pour chaque ID bibliothèque (ou toutes les bibliothèques).

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

Génère des informations récapitulatives sur le volume ou l'ensemble de volumes spécifié:

----------------------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 le volume est monté, l'adresse logique et l'emplacement physique reflètent l'adresse de l'unité hôte. Sinon, les adresses logiques et physiques d'origine des volumes sont répertoriées. L'adresse logique est alimentée uniquement dans les cas pour lesquels le volume a été affecté à une bibliothèque logique.

  • Une plage de volumes peut être spécifiée par une chaîne de valeurs ACSII inférieure et une chaîne de valeurs ACSII supérieure séparées par un tiret. Un résumé d'état est affiché pour chaque volume appartenant à la plage spécifiée.

  • Si la commande display volume all est soumise sans options, tous les volumes contenus dans chaque ACS physique sont affichés.

  • Si l'ID ACS physique accompagne l'option -p, la liste se limite aux volumes qui résident dans l'ACS physique spécifié. Si all est soumis avec
    -p, les volumes contenus dans tous les ACS physiques sont affichés.

  • Si l'ID numérique d'une bibliothèque logique (lib_id) est soumis avec l'option -l option, seul l'ensemble des volumes associés à cette bibliothèque logique est affiché. Si l'expression all est soumise avec l'option -l, l'utilitaire affiche tous les volumes associés à chaque bibliothèque logique configurée.

  • L'option -u permet d'afficher les volumes non affectés contenus dans l'ACS physique indiqué.

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

lib_cmd eject prend en charge les opérations d'éjection, y compris la possibilité de spécifier des listes de plus de 42 volumes. Les volumes peuvent être entrés par l'utilisateur ou en spécifiant le chemin d'accès à un fichier texte contenant une liste de volumes. Il est possible d'entrer plusieurs volumes sur une ligne, que ce soit en majuscules ou en minuscules.

  • <cap_id>

    • Il doit s'agir d'un CAP précis qui existe dans la configuration de la bibliothèque.

    • Les caractères génériques ne sont pas pris en charge.

    • Un liste de CAP est disponible.

  • [-verbose | -v]

    • L'option verbose indique que tous les volumes doivent être affichés.

    • L'option verbose étant désactivée par défaut, seuls 10 volumes accompagnés d'un compteur sont affichés.

  • <vol_id>

    • Il est possible d'indiquer un ou plusieurs identificateurs par ligne.

    • En mode interactif, appuyez sur <Return> pour terminer la liste.

  • <path_to_volume_list>

    • Spécifiez le chemin du fichier texte comme relatif ou complet

    • Il est possible d'indiquer plusieurs identificateurs par ligne.

    • Les lignes de commentaire (qui commencent par "#") les lignes vierges sont ignorées.

Il n'existe pas de limite connue quant à la quantité de volumes susceptibles d'être spécifiée dans chacune des configurations. Une seule opération d'éjection est effectuée par ACSLS une fois que les volumes ont été fournis. Elle continue de remplir le CAP spécifié comme requis jusqu'à ce que tous les volumes possibles aient été éjectés.

L'affichage de sortie inclut un rapport du nombre de volumes (volumes spécifiés, volumes éjectés ou non éjectés). L'option verbose permet d'afficher tous les volumes (par défaut, un aperçu de 10 volumes est affiché pour chaque liste). Une ligne indique l'identificateur de volume et la raison pour laquelle le volume n'a pas été éjecté.

vary drive lib_id drive_id [online|offline|diagnostic]

Remplace l'état souhaité du lecteur logique par l'état spécifié (en ligne, hors ligne, diagnostic).

vary library lib_id [online|offline|diagnostic]

Remplace l'état souhaité de la bibliothèque logique par l'état spécifié (en ligne, hors ligne, diagnostic).

Utilisation de la commande lib_cmd en mode par lots

L'utilisation de la commande lib_cmd en mode par lots vous permet d'effectuer des tâches administratives plus complexes. Par exemple, les opérations qui affectent ou annulent l'affectation de plusieurs volumes ou de plusieurs unités sont le plus souvent exécutées avec plus d'efficacité en mode par lots.

Dans cet exemple, nous affecterons l'ensemble des unités 9840 à la bibliothèque logique 1002 sur le 2e rail d'un module SL8500.

  1. La commande lib_cmd permet de répertorier toutes les unités non affectées dans ACS-0. L'instruction grep permet de filtrer uniquement les unités 9840 qui résident sur le 2e rail (acs-0, lsm-1)

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

    Toutes les unités non affectées du 2e rail seront répertoriées sur un écran doté de cinq champs :

      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
    

    Dans le cadre de cet exemple, seul l'ID unité est requis, donc nous n'imprimons que le premier champ grâce à l'instruction 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. Dans la même instruction d'impression awk, il est possible d'ajouter du texte pour construire la commande requise pour affecter les unités à la bibliothèque logique 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. Satisfaits du texte de la commande, nous pouvons désormais diriger la sortie vers un fichier texte :

    $ lib_cmd display drive -u 0 | grep 9840 | grep 0,1,.,. | awk '{print "assign drive "$1" 1002"}'  > /tmp/assignDr
    
  4. Enfin, nous sommes en mesure d'éditer toute modification apportée au fichier de commande, puis d'exécuter le fichier avec la commande 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. Nous confirmons l'affectation avec la commande d'affichage lib_cmd :

    $ 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