15 lib_cmd

この章では、オプションのコマンド行インタフェース (CLI)、lib_cmd について説明します。このツールは主に ACSLS の論理ライブラリの管理に使用することを目的としていますが、一部のコマンドは、ある種の特定のコンテキストで ACSLS GUI または cmd_proc の代替として便利な場合があります。lib_cmd CLI は、長い (42 より大きい) ボリュームリストを指定する機能を含む、取り出し操作をサポートしています。

はじめに

ACSLS は、バージョン 8.0 で論理ライブラリの概念を導入しました。論理ライブラリのクライアント操作には、ファイバチャネル接続経由で SCSI Media Changer Emulation (SMCE) を介し、SCSI コマンドを使用してアクセスします。クライアントは、ライブラリがクライアントアプリケーションに直接接続されているかのように操作することで、テープのマウント (mount)、マウント解除 (dismount)、挿入 (enter)、および取り出し (eject) を行なったり、SMCE インタフェースを使用してその独自のテープインベントリを管理したりできます。

ACSLS 8.2 まで、論理ライブラリ管理設定機能は、ACSLS グラフィカルユーザーインタフェース (同様に ACSLS 8.0 で導入) を介して行われていました。そのようなタスクには、目的の数のストレージセルとテープドライブスロットを含む論理テープライブラリの作成、クライアントのイニシエーターとターゲットの関係の確立、ライブラリへの物理ドライブの割り当て、およびテープボリュームの割り当てが含まれます。

これらの管理タスクは、UNIX コマンド行インタフェース (CLI) を使用して実行することもできます。CLI は、クリティカルな管理機能へのより高速なパスを提供し、バッチ処理の UNIX シェルスクリプトを使用して論理ライブラリを管理する手段を提供することで、論理ライブラリの操作性を拡張します。

コマンド

lib_cmd 

パス名

$ACS_HOME/bin/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 ]

lib_cmd の使用

lib_cmd コマンド行ユーティリティーは ACSLS GUI の代替機能であり、ACSLS 論理ライブラリのリソースを管理およびモニターできます。lib_cmd を使用して、ACSLS 管理者は、論理ライブラリの作成、編集、または削除、論理ライブラリへのボリュームまたはテープドライブの割り当てまたは割り当て解除、イニシエーターまたはターゲットのリフレッシュ、クライアント通信用のイニシエーターとターゲットのマッピングの作成、論理ライブラリのステータスの表示、構成されている物理ライブラリまたは論理ライブラリ内のボリュームやドライブのステータスの表示を行うことができます。

論理ライブラリの管理に加えて、lib_cmd は、cmd_proc の代わりにライブラリのコンテンツの表示または単一の CAP (SL3000 AEM など) への大量のボリュームの取り出しに使用できる、一般的なライブラリコマンドの小さいセットを備えています。

これらの操作は、ACSLS グループのユーザー (root を含む) が実行できます。

lib_cmd は、対話型モードまたはバッチモードで操作できます。対話型モードは、単独でのコマンドによって、引数を指定せずに呼び出されます。

lib_cmd

対話型モードは、指定できるすべてのサブコマンドと引数をリストする「ヘルプ」機能をサポートしています。各サブコマンドのコンテキスト内で指定できる引数とオプションのリストは、リクエスト時に表示できます。指定できる有効な入力文字列がわからない場合は、<Enter> キーを押して、即時コンテキストで指定できるすべての引数のリストを取得できます。

バッチモードには、このユーティリティーとユーザー生成のスクリプトとの併用をより適切にサポートする対話機能はありません。バッチモードでは、目的のオプションと引数のすべてをコマンドとともに発行する必要があります。そうでない場合は、エラーメッセージが返されます。

オプション

  • -f (Command file input specification)

    -f オプションがリクエストされると、ユーティリティーは、指定された入力ファイル内で検出した一連のコマンドを実行します。入力ファイルには、完全形式のリクエストのみが含まれている必要があります。

サブコマンド

このセクションでは、サブコマンドについて説明します。

assign drive drive_id lib_id

指定したドライブを指定したライブラリに割り当てます。drive_id は、物理ライブラリ (acs,lsm,panel,drive) 内のドライブの標準的な表記で表されます。引数 lib_id は、論理ライブラリの割り当て済みの ID です。論理ライブラリ ID は 1001 から始まり、ライブラリが作成されると増分で増加します。

unassign drive lib_id logical_drive_id

指定した論理ドライブを論理ライブラリ構成から削除します。ドライブはその論理アドレス (アドレス 500 で始まる) によって指定されます。論理ライブラリ ID は 4 桁の数字 (1001 で始まる) です。

assign volume vol_id | vol-range lib_id

論理ライブラリ内での排他的な使用のためにボリュームを割り当てます。ボリュームは、標準の 6 またはバーコードラベル形式によって表されます。ライブラリは、その数値の論理ライブラリ ID によって表されます。ボリュームは「割り当て可能」である必要があります。つまり、まだ割り当て済みではなく、所有されていなくて、マウント済み、予約済み、転送中、あるいは使用中ではありません。

範囲は、低い ACSII 値文字列と高い ASCII 値文字列をダッシュで区切って指定します。ボリューム範囲がリクエストされると、lib_cmd が指定された範囲内のボリュームのバッキング ACS を検索します。範囲内のすべての割り当て可能なボリュームが、指定された論理ライブラリに割り当てられます。

unassign volume vol_id | vol-range lib_id

論理ライブラリインベントリからボリュームを削除します。ボリュームはそのホームセル内に存在する必要があり、保留中の移動操作のためには予約できません。

範囲は、低い ACSII 値文字列と高い ASCII 値文字列をダッシュで区切って指定します。ボリューム範囲がリクエストされると、lib_cmd が指定された範囲内のボリュームの指定された論理ライブラリを検索します。範囲内の使用中ではない割り当て済みのボリュームは、ライブラリから割り当て解除されます。

create library lib_name backing_acs cell_capacity drive_capacity

新しい論理ライブラリを作成します。create library のあと、この順序の 4 つの引数が必要です: ライブラリ別名 (文字列)、バッキング ACS ID (整数)、ストレージセルの数 (整数)、およびドライブスロットの数 (整数)。

create mapping initiator_id target_id library_id

指定したライブラリにイニシエーターとターゲット (クライアント - サーバー) の関係を構築します。

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

既存の論理ライブラリの構成を変更します。特定のライブラリは、4 桁の数値 ID によって表されます。任意の 1 つのオプションを指定でき、その 1 つのフィールドのみが、このオプションで指定された引数を使用して変更されます。次のオプションがあります。

  • -n ライブラリの別名

  • -c 論理ストレージセルの容量

  • -d 論理ドライブスロットの数

  • -f ボリュームラベル形式

  • -x 論理インポート / エクスポート (CAP) セルの数

ボリュームラベル形式は次のいずれかで表現できます。

  • 6     6 文字のレガシーボリュームラベル

  • 8p  メディアタイプコードの接頭辞を付加した 8 文字

  • 8s   メディアタイプコードの接尾辞を付加した 8 文字

  • all  すべてのラベル形式を受け入れます

refresh initiator

現在 ACSLS が認識しているすべてのイニシエーターを取得します。

refresh target

現在 ACSLS が認識しているすべてのターゲットを取得します。

delete initiator initiator_id (y/n)

指定したイニシエーターを構成から削除します。指定した削除を確定するには確認 (y) が必要です。

delete library lib_id (y/n)

指定した論理ライブラリを ACSLS 構成から削除します。これによりカスケード式の delete が作成され、割り当てられていたボリュームとドライブの、ライブラリとの関連付けが解除されます。ライブラリは、削除を試みる前にオフラインにする必要があります。ライブラリ内の論理ボリュームの 1 つ以上が現在使用中の場合、削除は失敗します。指定した削除を確定するには確認 (y) が必要です。

delete mapping lib_id (y/n)

指定した論理ライブラリからイニシエーターとターゲットのすべてのマッピングを削除します。この操作は、現在のクライアント接続をすべて無効化します。指定した削除を確定するには確認 (y) が必要です。

delete target target_id (y/n)

指定したターゲットを構成から削除します。指定した削除を確定するには確認 (y) が必要です。

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

指定したドライブまたは指定したライブラリ内のすべてのドライブのサマリーを生成します。

この表示には、ドライブの物理および論理アドレス、ドライブタイプ、ドライブの状態、ドライブステータスが含まれ、drive_statusin_use を示している場合は、マウントされているカートリッジの VOLSER が表示されます。

------------------------ 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
-------------------------------------------------------------
  • オプションを指定せずに display drive all を発行すると、各物理 ACS に含まれているすべてのボリュームのリストが生成されます。

  • -t オプションを指定すると、指定したドライブタイプのドライブのみが表示されます。

  • -p オプションを指定すると、指定した物理 ACS 内のドライブのみが表示されます。

  • -l オプションを含めると、指定した論理ライブラリに割り当てられているドライブのみが表示されます。-l オプションのあとに all を指定すると、構成されている論理ライブラリのそれぞれに関連付けられているすべてのドライブが表示に含められます。

  • -u オプションは、関連する ACS に含まれている未割り当てのドライブのみを表示します。このオプションのあとには、目的の ACS を指定する引数が続いている必要があります。

display initiator

ACSLS が識別できるすべてのイニシエーターのリストを生成します。各イニシエーターは、World Wide 名と別名でリストされます。

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

リクエストされたライブラリ ID の属性を表示します。論理ライブラリの場合は -l、物理 ACS の場合は「-p」を指定します。

  • -l を指定すると、ユーティリティーが次のように論理ライブラリ構成のサマリーを生成します。

    数値 ID、名前、状態 (目的の状態)

    バッキング ACS ID、状態 (目的の状態)。

    割り当て済みのインポート/エクスポートセルの数

    割り当て済みのドライブスロットの数

    割り当て済みのドライブの数

    割り当て済みのストレージセルの数

    空きセルの数

    割り当て済みのボリュームの数 (これらのうちアクセス不能の数)

    ボリュームラベル形式

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

    アクセス不能なボリュームは、次のいずれかの理由で論理ライブラリからアクセスできない、割り当て済みのボリュームです。

  • ボリュームが物理ライブラリから取り出し済みです。

  • ボリュームがクライアントアプリケーションによって eject とマークされています。

  • 割り当て済みのボリュームは物理ライブラリ内に存在しますが、論理ライブラリがそのストレージ容量を超えています。

  • 数値 lib_id の代わりに引数 all を指定すると、構成されている論理ライブラリごとにこの表示が繰り返されます。バッチモードでは、引数を指定せずに -l を渡すと、引数 all を使用した場合と同じ結果になります。

  • オプション -p を指定された ACS ID とともに指定すると、ユーティリティーはその 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
    --------------------------------------------------------------------------
    
  • -p オプションを指定して引数 all を渡すと、構成されている物理 ACS ごとにこの表示が繰り返されます。

    all 引数は、バッチモードでのリクエストに対するデフォルトの表示です。引数を指定しない -p オプションは、all をリクエストした場合と同じ結果になります。

display mapping [ lib_id | all ]

各ライブラリ ID (または、すべてのライブラリ) のイニシエーターとターゲットのマッピングのリストを生成します。

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

指定したボリュームまたはボリュームセットのサマリー情報を生成します。

----------------------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
-------------------------------------------------------------
  • ボリュームがマウントされている場合、論理アドレスと物理的な位置には、ボリュームがマウントされているドライブのアドレスが反映されます。それ以外の場合は、ボリュームの論理および物理ホームアドレスがリストされます。論理アドレスは、論理ライブラリにボリュームが割り当てられている場合にのみ取り込まれます。

  • ボリュームの範囲は、低い ACSII 値文字列と高い ASCII 値文字列をダッシュで区切って指定できます。この表示には、指定された範囲内の各ボリュームのステータスサマリーが示されます。

  • オプションを指定せずに display volume all を発行した場合、この表示には各物理 ACS に含まれているすべてのボリュームが示されます。

  • -p オプションを指定して物理 ACS ID を渡した場合、リストはその指定された物理 ACS に存在するボリュームに限定されます。-p を指定して
    all を発行すると、すべての物理 ACS に含まれているボリュームが表示されます。

  • -l オプションを指定して論理ライブラリの数値 ID (lib_id) を渡すと、その特定の論理ライブラリに関連付けられたボリュームのセットのみが表示されます。-l オプションを指定して単語 all を渡すと、ユーティリティーは、構成されている各論理ライブラリに関連付けられているすべてのボリュームを表示します。

  • -u オプションは、指定した物理 ACS に含まれる未割り当てのボリュームに限定された表示を生成します。

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

lib_cmd eject は、長い (42 より大きい) ボリュームリストを指定する機能を含む、取り出し操作をサポートしています。ボリュームは、ユーザーの入力として、またはボリュームリストが含まれているテキストファイルへのパスを指定することによって入力できます。複数のボリュームは、大文字または小文字で 1 行に入力できます。

  • <cap_id>

    • これは、ライブラリ構成内の特定の既存の CAP である必要があります。

    • ワイルドカードはサポートされていません。

    • CAP のリストが使用できます。

  • [-verbose | -v]

    • verbose オプションは、すべてのボリュームを表示することを指定します。

    • デフォルトは verbose「ではなく」、最大 10 個プラス 1 のボリュームが表示されます。

  • <vol_id>

    • 1 行に 1 つまたは複数のボリューム識別子を指定できます。

    • 対話型モードで実行されているときは、<Return> を押してリストを終了します。

  • <path_to_volume_list>

    • テキストファイルの相対またはフルパスを指定します。

    • 1 行に複数のボリューム識別子を指定できます。

    • すべてのコメント行 (「#」で始まる) または空白行は無視されます。

どちらの形式でも指定できるボリュームの数に既知の制限はありません。1 つの取り出し操作は、いったんすべてのボリュームが指定されたあとで ACSLS によって実行され、可能性のあるすべてのボリュームが取り出されるまで、必要に応じて指定された CAP が入力されます。

出力の表示には、ボリューム数のレポート (指定したボリューム、取り出し済みのボリュームと取り出されていないボリューム、またはそのいずれかのボリューム) が含まれます。verbose オプションは、すべてのボリュームを示す出力を生成します (デフォルトでは、リストごとに 10 個のボリュームのプレビューが生成されます)。取り出されていないボリュームの場合は、ボリューム識別子と理由を示す行が表示されます。

vary drive lib_id drive_id [online|offline|diagnostic]

論理ドライブの目的の状態を、指定した (オンライン、オフライン、診断) 状態に変更します。

vary library lib_id [online|offline|diagnostic]

論理ライブラリの目的の状態を、指定した (オンライン、オフライン、診断) 状態に変更します。

バッチモードでの lib_cmd の使用

lib_cmd をバッチモードで使用すると、より複雑な管理タスクを実行できます。たとえば、複数のボリュームまたは複数のドライブを割り当てまたは割り当て解除する操作は、多くの場合バッチモードでもっとも効率的に実行されます。

この例では、SL8500 モジュールのレール 2 のすべての 9840 ドライブを論理ライブラリ 1002 に割り当てます。

  1. lib_cmd を使用して、acs-0 のすべての未割り当てのドライブをリストし、grep を使用して、レール 2 (acs-0、lsm-1) 上に存在する 9840 ドライブのみをフィルタします。

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

    レール 2 のすべての未割り当てのドライブが、5 つのフィールドの表示でリストされます。

      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
    

    ここではこの表示からドライブ ID のみが必要なため、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. 同じ awk print 文に、ドライブを論理ライブラリ 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. コマンドテキストに満足したら、ここで出力をテキストファイルに送信できます。

    $ lib_cmd display drive -u 0 | grep 9840 | grep 0,1,.,. | awk '{print "assign drive "$1" 1002"}'  > /tmp/assignDr
    
  4. 最後に、コマンドファイルに加えた変更を編集してから、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. lib_cmd display コマンドを使用して、割り当てを確認します。

    $ 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