この章では、ライブラリストレージモジュール (LSM) 間のパススルーアクティビティー中のライブラリのパフォーマンスを最大化する方法について説明します。ACSLS は、いくつかの方法でパススルーアクティビティーを最小限に抑えるように機能します。これらの ACSLS 機能を使用してパススルーアクティビティーを最小限に抑えることにより、パフォーマンスを向上させることができます。それらの機能を次に示します。
十分な並行マウントおよびマウント解除リクエストの送信
複数の SL8500 への接続
LSM 間のパススルーアクティビティーの最小化
マウント解除中のカートリッジのフロート
ライブラリへのカートリッジの挿入
ライブラリからのカートリッジの取り出し
ライブラリ内の空のストレージセルの保持
ACSAPI リクエストと ACSLS コマンドを使用したパススルーアクティビティーの最小化
これらの ACSAPI リクエストおよび ACSLS コマンドの使用
一部のクライアントアプリケーションは、1 回につき 1 つのリクエストのみを処理する単純な SCSI メディアチェンジャーライブラリ用に設計されています。ただし、ACSLS と SL8500 と SL3000 ライブラリは、多数のリクエストを同時に処理するように設計されています。各ライブラリのキューには少なくとも 40 から 50 の並行リクエストが含まれており、ACSLS キューは基本的に無制限です。
クライアントは、ACSLS に数百の並行マウントおよびマウント解除リクエストを送信できます。ライブラリのパフォーマンスを最大化するには、ライブラリ内のロボットやその他のすべてをビジー状態に維持するために、クライアントは ACSLS に十分な数のリクエストを送信するべきです。
クライアントが ACSLS に限られた数の並行リクエストしか送信できない場合は、ACSLS に複数のクライアントを接続できます。たとえば、特定のクライアントアプリケーションが ACSLS に 1 回につき 1 つのマウントまたはマウント解除リクエストしか送信できない場合は、ACSLS に SL8500 あたり 12 から 16 のクライアントアプリケーションを接続することによって、ACSLS に SL8500 内のすべてのロボットをビジー状態に維持するための十分な並行マウントおよびマウント解除リクエストを送信できます。
次に、ライブラリのロボットをビジー状態に維持するために並行リクエストがいくつ必要になる可能性があるかを理解するための詳細を示します。
ライブラリは、ドライブがロードされて準備が完了するまで、ACSLS にマウント応答を返しません。このようにして、ACSLS は、そのマウントが成功したかどうかを認識します。
約 3000 のストレージセルを備えた小規模な SL8500 では、ロボットがカートリッジをドライブに移動するまでに約 10-15 秒かかります。
ただし、LTO ドライブがカートリッジをロードして準備を完了するには約 19 秒かかります。
レール上の 1 つのロボットをビジー状態に維持するのにさえ、そのレールに対する少なくとも 3 つの重複したマウントリクエストが必要です。
これにより、カートリッジを受信する最初のドライブがロードして準備を完了している間に、ロボットがほかのマウントを処理できるようになります。レールあたり 2 つのロボットの場合は、レールあたり少なくとも 4 つの並行マウントまたはマウント解除が必要になる可能性があります。
SL8500 には 4 つのレールがあるため、SL8500 内のすべてのロボットをビジー状態に維持するには、SL8500 あたり 12 から 16 の並行マウントおよびマウント解除リクエストが必要です。
これらの並行リクエストのすべてが 1 つの ACSAPI クライアントから来ることも、それぞれが 1 回につき 1 つのリクエストを発行し、次のリクエストを発行する前にその応答を待機するだけの 12 から 16 の異なるクライアントから来ることもあります。
ACSLS サーバーが、パススルーポート経由で接続された SL8500 の文字列を管理している場合は、その文字列内の各 SL8500 に接続します。これにより、ACSLS はステータスに応答するか、またはカートリッジの移動を開始したライブラリにリクエストをルーティングすることによって、ライブラリのパフォーマンスを最適化できます。
文字列内の複数の SL8500 への接続の詳細は、マルチ TCP/IP サポートを参照してください。
テープライブラリのパフォーマンスを向上させるには、あるライブラリから別のライブラリへのパススルーアクティビティーを最小限に抑えることが重要です。カートリッジとドライブが接続済みのライブラリ内にある場合は、ドライブとカートリッジの両方が同じ LSM (ライブラリ内のレール) 内にあるときにテープマウントが発生することが常に望まれます。マウントに必要なパススルーが少ないほどパフォーマンスが向上します。
図L-1 は、カートリッジとドライブが別の LSM 内にあるときに必要になる可能性のあるパススルーを示しています。
詳細は、エレベータおよび PTP アクティビティーを最小限に抑える、ワークロードをサポートするためのテープドライブの構成、および カートリッジの場所の管理を参照してください。
カートリッジがマウント解除されると、ACSLS はそのカートリッジの古いホームセルがドライブとは別の LSM 内にある場合は常に新しいホームセルを割り当てることによって、LSM 間のパススルーアクティビティーを回避しようとします。これは ACSLS のデフォルトの動作です。この機能を無効にするには、LSM の「拡張ストア」機能を使用します。マウント解除されているカートリッジは、LSM 間の移動を回避するために新しいホームセルに「フロート」されます。
すべてのストレージセルがいっぱいになると、ACSLS は、マウント解除でカートリッジを LSM に「フロート」できません。同様に、いっぱいになった LSM にカートリッジが挿入された場合は、そのカートリッジを空のセルを含む LSM にパススルーする必要があります。
パフォーマンスを最適化するには、StreamLine アクセスのためにライブラリ内に保持する必要のないカートリッジを識別し、それらのカートリッジをライブラリから取り出し (eject
) ます。また、いっぱいになった LSM から十分な空のセルを含むほかの LSM にカートリッジを移動して、すべての LSM に空のストレージセルが含まれるようにすることもできます。アクティブな LSM からの、もっとも長い間アクセスされていないカートリッジの移動を参照してください。
注:
ライブラリ内のカートリッジの管理は、そのライブラリがマウントリクエストでビジー状態になっていないときに実行するようにしてください。ACSLS とクライアントアプリケーションの間でマウントおよびマウント解除のタイムアウトを調整する必要があります。クライアントのタイムアウトは、SL8500 のレールとライブラリの間のパススルーを必要とするマウントおよびマウント解除が完了できるように、十分に長くする必要があります。また、リクエストがパススルーポートを待機する可能性がある場合は特に、複数の並行リクエストが完了できるように十分に長くすることも必要です。
ACSLS はまた、ライブラリまたはテープドライブの一時的な停止中はリクエストを自動的にキューに入れ、そのライブラリまたはドライブが使用可能になったら再試行します。これにより、冗長電子デバイスの切り替え中、ライブラリまたはドライブがリブートされたとき、またはライブラリのアクセスドアが開かれているときのリクエストの失敗が回避されます。
マウントおよびマウント解除をキューに入れるデフォルトの時間 (MOUNT_RETRY_TIME_LIMIT
) は 20 分です。顧客は、これを 5 から 80 分までの任意の時間に設定できます。ACSLS はまた、ライブラリがキューに入れられたリクエストを処理できるかどうかを MOUNT_RETRY_DELAY
ごとにチェックします。これらはどちらも動的変数、つまり、ACSLS の実行中に変更できる変数であるため、その変更はただちに有効になります。
ACSAPI クライアントのタイムアウトを、大規模なライブラリコンプレックス内のリクエストが完了できるように調整してください。また、MOUNT_RETRY_TIME_LIMIT
を ACSAPI クライアントのマウントおよびマウント解除のタイムアウトと調整してください。
カートリッジがライブラリに挿入されると、各カートリッジには、CAP にもっとも近い LSM 内のホームセルが割り当てられます。CAP を含む LSM に空のセルがある場合、ホームセルは、この LSM 内に割り当てられます。CAP を含む LSM がいっぱいである場合、ホームセルは、空のセルを含むもっとも近い LSM 内に割り当てられます。
パフォーマンスを最適化するには、カートリッジを、そのカートリッジと互換性があるテープドライブを含む LSM に挿入 (enter
) します。たとえば、9940 カートリッジは T9840B テープドライブのみを含む LSM ではなく、T9940B テープドライブを含む LSM に挿入 (enter
) します。そうでない場合は、9940 カートリッジを T9940B テープドライブを含む LSM にパススルーする必要があります。
カートリッジがライブラリから取り出される場合は、そのカートリッジを指定された CAP に移動する必要があります。
パフォーマンスを最適化するには、カートリッジを、そのカートリッジが配置されている LSM 内の CAP に取り出し (eject
) ます。カートリッジが複数の LSM 内に配置されている場合は、大部分のカートリッジに近い CAP を選択します。
これらの ACSAPI リクエストおよび ACSLS cmd_proc
コマンドは、LSM 間の不必要なパススルーアクティビティーを回避するのに役立ちます。
次は、クライアントから ACSLS への ACSAPI リクエストと、cmd_proc
を使用して入力された ACSLS コマンドの両方に適用されます。「リクエスト」という用語は、ACSAPI リクエストと cmd_proc
コマンドの両方に使用されます。
これは、データカートリッジか、または選択した特定のスクラッチ (空の) カートリッジのどちらかのマウントに適用されます。次のコマンドを使用します。
query mount
mount
指定されたカートリッジ (vol_id) について、そのカートリッジのメディアタイプと互換性があるドライブのリスト (そのカートリッジに近い順) を返します。(もっとも近い LSM 内の互換性のあるドライブが最初に表示され、以降も同様です。)
ACSLS 7.3 以降のリリースでは、カートリッジから同じパススルー距離にあるドライブは、もっとも以前に使用された順になります。
例: カートリッジの LSM 内の互換性のあるドライブのうち、カートリッジがマウント解除されてからもっとも長い時間が経過したものが最初で、次に長い時間が経過したドライブが 2 番目になります。以降も同様です。
コマンド: query mount
vol_id
次のセクションでは、ACSLS によって選択されたスクラッチカートリッジのマウントについて説明します。
指定されたスクラッチプールについて、指定されたスクラッチプール内のカートリッジのメディアタイプと互換性があるすべてのドライブのリストが返されます。特定のメディアタイプを指定すると、ドライブを指定したメディアタイプと互換性があるもののみに制限できます。
返されるドライブのリストは、もっとも密度の高いスクラッチプールにもっとも近いドライブが最初に表示されるように順序付けられます。
コマンド:
ACSAPI
cmd_proc
query mount scratch
query mount * pool_id [media media_type]
特定のメディアタイプか、または ALL_MEDIA_TYPE
(cmd_proc
コマンド内の media *
) のどちらかを指定できます。ANY_MEDIA_TYPE
はサポートされていません。
注:
ALL_MEDIA_TYPE
が指定されている場合は、もっとも密度の高いスクラッチプールを決定するために、ドライブと互換性があるメディアを含むカートリッジが選択されます。指定されたドライブについて、スクラッチ (空の) カートリッジを選択してマウントします。オプションで、指定されたスクラッチプールのカートリッジまたは指定されたメディアタイプのカートリッジ、あるいはその両方を選択します。ACSLS は、ドライブにもっとも近い LSM 内の互換性のあるスクラッチカートリッジを選択します。すべてのカートリッジ間で使用をローテーションするために、選択された LSM 内のもっとも以前のアクセス日付を持つ互換性のあるカートリッジが選択されます。
コマンド:
ACSAPI
cmd_proc
mount scratch
mount *
drive_id [
pool_id] [media
media_type]
ACSAPI リクエストの場合は、drive_id、pool_id、および media_type
を指定する必要があります。(media_type には、特定のメディアタイプ、ALL_MEDIA_TYPE
、ANY_MEDIA_TYPE
のいずれかを指定できます。)
cmd_proc
mount *
コマンドでは、pool_id が指定されていない場合、デフォルトで共通プール (プール 0) になります。
特定のメディアタイプを識別できます。media *
が指定されている場合は、ANY_MEDIA_TYPE
が選択されます。メディアが指定されていない場合は、ALL_MEDIA_TYPE
が選択されます。
ANY_MEDIA_TYPE と ALL_MEDIA_TYPE の特殊な media_type 値は、次のように処理されます。
ALL_MEDIA_TYPE
が指定されている場合は、ドライブと互換性があるメディアタイプを持つカートリッジが選択されます。(これは media_compatibility
ファイルに基づきます。)
ANY_MEDIA_TYPE
が指定されている場合は、scratch_preferences
ファイルによって、ドライブにマウントするメディアの優先リストが識別されます。
このセクションでは、テープライブラリのパフォーマンスを向上させるための ACSAPI リクエストおよびコマンドを使用する方法について説明します。
次の説明で、「リクエスト
」という用語は、ACSAPI リクエストと cmd_proc
コマンドの両方に使用されます。
特定のカートリッジをマウントする場合 (ここで、vol_id
は既知です):
mount
リクエストの前に query mount
リクエストを発行します。
最初の「使用可能な
」ドライブを選択し、mount
リクエストでこのドライブを指定します。
特定のドライブにスクラッチカートリッジをマウントする場合は、次の 2 つのオプションがあります。
特定のドライブにもっとも近いスクラッチカートリッジを選択するには:
ドライブ、およびオプションでスクラッチプールを指定した mount scratch
リクエストを使用します。
ACSAPI
リクエストの場合は、次のいずれかを指定します。
ALL_MEDIA_TYPE
(互換性のあるメディアが選択されます)
ANY_MEDIA_TYPE
(スクラッチ優先順位リストを使用します)。
cmd_proc
コマンドの場合は、次のいずれかを選択します。
メディアタイプを指定しません (互換性のあるメディアが選択されます)
media *
を指定します (スクラッチ優先順位リスト
を使用します)。
ドライブのリストから特定のドライブを選択したあと、もっとも近いスクラッチカートリッジを選択するには:
ドライブを選択してから、scratch tape:
を選択します。これにより、そのドライブが確実にスクラッチカートリッジに近くなります。
目的のスクラッチプール内の大部分のスクラッチメディアにもっとも近い使用可能なドライブを識別するには、query mount scratch
リクエストを入力します。
選択されたドライブにスクラッチカートリッジをマウントするには、mount scratch
リクエストを入力します。オプションで、スクラッチプールを指定します。
ACSAPI
リクエストの場合は、次のいずれかを指定します。
ALL_MEDIA_TYPE
(互換性のあるメディアが選択されます)、または
ANY_MEDIA_TYPE
(スクラッチ優先順位リストを使用します)。
cmd_proc
コマンドの場合は、次のいずれかを指定します。
メディアタイプを指定しません (互換性のあるメディアが選択されます)、または
media *
を指定します (スクラッチ優先順位リストを使用します)。