この章では、オプションのコマンド行インタフェース (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
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
コマンド行ユーティリティーは 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_status
が in_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
をバッチモードで使用すると、より複雑な管理タスクを実行できます。たとえば、複数のボリュームまたは複数のドライブを割り当てまたは割り当て解除する操作は、多くの場合バッチモードでもっとも効率的に実行されます。
この例では、SL8500 モジュールのレール 2 のすべての 9840 ドライブを論理ライブラリ 1002 に割り当てます。
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
同じ 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
コマンドテキストに満足したら、ここで出力をテキストファイルに送信できます。
$ lib_cmd display drive -u 0 | grep 9840 | grep 0,1,.,. | awk '{print "assign drive "$1" 1002"}' > /tmp/assignDr
最後に、コマンドファイルに加えた変更を編集してから、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
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