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.
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.
lib_cmd
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 ]
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.
-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.
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).
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.
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
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
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
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
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