(57)【要約】      （修正有）【課題】２以上のシャトル・コネクション（ＳＣ）を利用するライブラリのシャトル・コンプレックスにおいて、カートリッジのライブラリ・ストリング（ＬＳ）間での移動を効率的かつ短時間でおこなわせる。【解決手段】中継点のＬＳの一方の側のＬＳに存在する特定カートリッジをマウントするコマンドを受け取り、前記特定カートリッジをマウントすべき目標ドライブを複数の前記ＬＳの中から検索し、前記特定カートリッジの存在する前記ＬＳに対して、前記中継点のＬＳを挟んで他方の側に存在するＬＳから、目標ドライブを検索し、前記特定カートリッジを検索された目標ドライブに少なくとも２つの前記ＳＣを使用して移動させるために、複数の前記中継点のＬＳから１つを選択し、前記特定カートリッジが前記選択された中継点のＬＳに到着するまでの間、前記選択された中継点のＬＳ以外の残りの中継点のＬＳにおいて新たな空ドライブが発生するかを検索する。【選択図】図５
2014026709.tif 000002
【特許請求の範囲】
【請求項１】
複数のライブラリ・ストリング（ＬＳ）を
少なくとも２つ以上のシャトル・コネクション（ＳＣ）で接続し、
前記シャトル・コネクションが移動可能なカーを利用してＬＳの少なくとも２つの中継点のＬＳ（中継点ＬＳ）を経由して記憶媒体を含むカートリッジを前記ＬＳ間において移動させるシャトル・コンプレックス・システムにおいて、
ライブラリ・マネージャが、特定のカートリッジ（特定カートリッジ）をマウントすべき空きドライブ（目標ドライブ）に移動する際に前記中継点ＬＳを決定する方法において、
（ａ）アプリケーションから、前記中継点ＬＳの一方の側のライブラリ・ストリングに存在する特定カートリッジをマウントするコマンドを受け取るステップと、
（ｂ）特定カートリッジをマウントすべき目標ドライブを複数の前記ＬＳの中から検索するステップであって、特定カートリッジの存在するＬＳに対して、前記中継点ＬＳを挟んで他方の側に存在するＬＳから、目標ドライブを検索するステップと、
（ｃ）特定カートリッジを前記検索された目標ドライブに少なくとも２つの前記ＳＣを使用して移動させるために、所定の条件に基づき複数の前記中継点ＬＳから１つを選択するステップと、
（ｄ）特定カートリッジが前記選択された中継点ＬＳ（選択中継点ＬＳ）に到着するまでの間、前記選択中継点ＬＳ以外の残りの中継点ＬＳにおいて新たな空ドライブ（新空ドライブ）が発生するかを検索するステップとを備える、中継点ＬＳを決定する方法。
【請求項２】
前記新空ドライブを検索するステップ（ｄ）は、新空ドライブが発生する場合、目標ドライブに代えて新空きドライブの存在するＬＳに特定カートリッジを移動するステップ、を含む請求項１に記載の方法。
【請求項３】
前記新空ドライブを検索するステップ（ｄ）は、新空ドライブが発生しない場合、当初の目標ドライブのＬＳに特定カートリッジを移動する、請求項１に記載の方法。
【請求項４】
前記ライブラリ・ストリングが同数のテープドライブ数を有する場合、
前記中継点ＬＳを選択するステップ（ｃ）は、前記選択中継点ＬＳから目標ドライブのＬＳ以外の複数のＬＳから新空ドライブが発生することを考慮する所定の条件に基づき、複数の中継点ＬＳから１つを選択する請求項２又は３に記載の方法。
【請求項５】
前記中継点ＬＳを選択するステップ（ｃ）は、前記選択中継点ＬＳから目標ドライブのＬＳ以外のＬＳへの平均輸送時間に基づき複数の中継点ＬＳから１つを選択する請求項４に記載の方法。
【請求項６】
前記中継点ＬＳを選択するステップ（ｃ）は、前記選択中継点ＬＳから目標ドライブのＬＳ以外のＬＳへの平均輸送時間と特定カートリッジが前記中継点候補に到達するまでに目標ドライブのＬＳ以外の複数のＬＳにおいてドライブが空く確率との積で定義される期待所要時間に基づき複数の中継点ＬＳから１つを選択する請求項５に記載の方法。
【請求項７】
前記中継点ＬＳを選択するステップ（ｃ）は、選択された中継点ＬＳからに目標ドライブのＬＳ以外のＬＳへの前記平均輸送時間又は前記期待所要時間が最短時間となるＬＳを中継点として選択する請求項５又は６に記載の方法。
【請求項８】
前記ライブラリ・ストリングが異なるテープドライブ数を有する場合、前記中継点ＬＳを選択するステップ（ｃ）は、候補である前記中継点ＬＳについて多くのドライブ数を有する中継点ＬＳを１つ選択する請求項２又は３に記載の方法。
【請求項９】
複数のライブラリ・ストリング（ＬＳ）を
少なくとも２つ以上のシャトル・コネクション（ＳＣ）で接続し、
前記シャトル・コネクションが移動可能なカーを利用してＬＳの少なくとも２つの中継点のＬＳ（中継点ＬＳ）を経由して記憶媒体を含むカートリッジを前記ＬＳ間において移動させるシャトル・コンプレックス・システムにおいて、
ライブラリ・マネージャが、特定のカートリッジ（特定カートリッジ）をマウントすべき空きドライブ（目標ドライブ）に移動する際に前記中継点ＬＳを決定する、シャトル・コンプレックス・システムであっって、
（ａ）アプリケーションから、前記中継点ＬＳの一方の側のライブラリ・ストリングに存在する特定カートリッジをマウントするコマンドを受け取るステップと、
（ｂ）特定カートリッジをマウントすべき目標ドライブを複数の前記ＬＳの中から検索するステップであって、特定カートリッジの存在するＬＳに対して、前記中継点ＬＳを挟んで他方の側に存在するＬＳから、目標ドライブを検索するステップと、
（ｃ）特定カートリッジを前記検索された目標ドライブに少なくとも２つの前記ＳＣを使用して移動させるために、所定の条件に基づき複数の前記中継点ＬＳから１つを選択するステップと、
（ｄ）特定カートリッジが前記選択された中継点ＬＳ（選択中継点ＬＳ）に到着するまでの間、前記選択中継点ＬＳ以外の残りの中継点ＬＳにおいて新たな空ドライブ（新空ドライブ）が発生するかを検索するステップと、
を実行するシャトル・コンプレックス・システム。
【請求項１０】
複数のライブラリ・ストリング（ＬＳ）を
少なくとも２つ以上のシャトル・コネクション（ＳＣ）で接続し、
前記シャトル・コネクションが移動可能なカーを利用してＬＳの少なくとも２つの中継点のＬＳ（中継点ＬＳ）を経由して記憶媒体を含むカートリッジを前記ＬＳ間において移動させるシャトル・コンプレックス・システムにおいて、
特定のカートリッジ（特定カートリッジ）をマウントすべき空きドライブ（目標ドライブ）に移動する際に前記中継点ＬＳを決定するプログラムであって、
（ａ）アプリケーションから、前記中継点ＬＳの一方の側のライブラリ・ストリングに存在する特定カートリッジをマウントするコマンドを受け取るステップと、
（ｂ）特定カートリッジをマウントすべき目標ドライブを複数の前記ＬＳの中から検索するステップであって、特定カートリッジの存在するＬＳに対して、前記中継点ＬＳを挟んで他方の側に存在するＬＳから、目標ドライブを検索するステップと、
（ｃ）特定カートリッジを前記検索された目標ドライブに少なくとも２つの前記ＳＣを使用して移動させるために、所定の条件に基づき複数の前記中継点ＬＳから１つを選択するステップと、
（ｄ）特定カートリッジが前記選択された中継点ＬＳ（選択中継点ＬＳ）に到着するまでの間、前記選択中継点ＬＳ以外の残りの中継点ＬＳにおいて新たな空ドライブ（新空ドライブ）が発生するかを検索するステップと、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライブラリ・ストリング間でのカートリッジの移動方法に関する。
より具体的には、本発明は、シャトル・コネクションで接続された複数のＬＳをまたがったカートリッジのマウント要求の効率的に実行のために、中継点のライブラリ・ストリングの選択する方法に関する。
【背景技術】
【０００２】
テープ等の記憶媒体のライブラリを複数連結したライブラリ・ストリング（ＬＳ：Library String）を列状に複数配置したシャトル・コンプレックスが提案されている。シャトル・コンプレックスは、ライブラリ・ストリング間をシャトル・コネクション（ＳＣ：Shuttle Connection）で接続したストレージライブラリーである（IBM社のSystem Storage TS3500等）。シャトル・コンプレックスでは、ＳＣ内を移動可能なカーを利用して、テープ等の記憶媒体を含むカートリッジをＬＳ間で移動（「輸送」とも言う）させて、移動先の指定するライブラリ・フレーム内のテープドライブ（ドライブ）に搭載またはスロットに保管させる。
【０００３】
大規模なシャトル構成のライブラリ群では段階的なスケールアップが行われるため全てのライブラリ・ストリング間での直接接続されたシャトル・コネクションの存在は保障されとは限らない。マウント要求について、２以上のシャトル・コネクションを使用し、中継点のＬＳ（中継点ＬＳ）を経なければカートリッジを転送できないシャトル・コンプレックスが存在する。２つのライブラリ・ストリング間を直接つなぐシャトル・コネクションが存在しない場合、中継点ＬＳの選択がカートリッジのデータの書込み読み出しパフォーマンスに影響する。
【０００４】
ここで、２以上のシャトル・コネクションを利用するシャトル・コンプレックスにおいて、シャトル経由でカートリッジを運ぶことは、ひとつのテープライブラリ内部でのカートリッジの移動に比べて時間がかかる。さらに中継点を経たカートリッジの移動の際に、中継点ＬＳの選択を無作為に行うのはカートリッジ移動のパフォーマンスとしては最適ではない。
【０００５】
特許文献１及び２は、ライブラリ間でのカートリッジの移動を示す。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−０３０４０５号公報
【特許文献２】特開平８−２２７５４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、本発明の対象は、特定カートリッジを含むＬＳと目標ドライブを含むＬＳとの間を２以上のＳＣを使用して移動する必要があるシャトル・コネクション構成である。カートリッジが中継点に到着した時点で、現在使用中のシャトル・コネクションに接続されているライブラリ・ストリングのドライブの空き状況を再度確認する。当初転送先として設定したライブラリ・ストリングよりも近くに空きドライブのあるテープ・ライブラリ・ストリングがあればそちらへ送る。ここで本発明は、複数の中継点の中から転送効率の向上につながる中継点ＬＳを選択することを提案する。
【０００８】
本発明の目的は、２以上のシャトル・コネクションを利用するライブラリのシャトル・コンプレックスにおいて、カートリッジのライブラリ・ストリング間での移動を効率的かつ短時間でおこなわせることである。
【課題を解決するための手段】
【０００９】
かかる目的のもと、本発明は、複数のライブラリ・ストリング（ＬＳ）を(1)少なくとも２つ以上のシャトル・コネクション（ＳＣ）で接続し、(2)前記シャトル・コネクションが移動可能なカーを利用してＬＳの少なくとも２つの中継点のＬＳ（中継点ＬＳ）を経由して記憶媒体を含むカートリッジを前記ＬＳ間において移動させるシャトル・コンプレックス・システムにおいて、(3)ライブラリ・マネージャが、特定のカートリッジ（特定カートリッジ）をマウントすべき空きドライブ（目標ドライブ）に移動する際に前記中継点ＬＳを決定する方法である。この中継点ＬＳを決定する方法は、
（ａ）アプリケーションから、前記中継点ＬＳの一方の側のライブラリ・ストリングに存在する特定カートリッジをマウントするコマンドを受け取るステップと、
（ｂ）特定カートリッジをマウントすべき目標ドライブを複数の前記ＬＳの中から検索するステップであって、特定カートリッジの存在するＬＳに対して、前記中継点ＬＳを挟んで他方の側に存在するＬＳから、目標ドライブを検索するステップと、
（ｃ）特定カートリッジを前記検索された目標ドライブに少なくとも２つの前記ＳＣを使用して移動させるために、所定の条件に基づき複数の前記中継点ＬＳから１つを選択するステップと、
（ｄ）特定カートリッジが前記選択された中継点ＬＳ（選択中継点ＬＳ）に到着するまでの間、前記選択中継点ＬＳ以外の残りの中継点ＬＳにおいて新たな空ドライブ（新空ドライブ）が発生するかを検索するステップとを備える。
【００１０】
また、この中継点ＬＳを決定する方法において、前記新空ドライブを検索するステップ（ｄ）は、新空ドライブが発生する場合、目標ドライブに代えて新空きドライブの存在するＬＳに特定カートリッジを移動するステップ、を含むことを特徴とする。
【００１１】
また、この中継点ＬＳを決定する方法において、前記新空ドライブを検索するステップ（ｄ）は、新空ドライブが発生しない場合、当初の目標ドライブのＬＳに特定カートリッジを移動することを特徴とする。
【００１２】
また、この中継点ＬＳを決定する方法において、前記ライブラリ・ストリングが同数のテープドライブ数を有する場合、前記中継点ＬＳを選択するステップ（ｃ）は、前記選択中継点ＬＳから目標ドライブのＬＳ以外の複数のＬＳから新空ドライブが発生することを考慮する所定の条件に基づき、複数の中継点ＬＳから１つを選択することを特徴とする。
【００１３】
また、この中継点ＬＳを決定する方法において、前記中継点ＬＳを選択するステップ（ｃ）は、前記選択中継点ＬＳから目標ドライブのＬＳ以外の複数のＬＳへの平均輸送時間に基づき複数の中継点ＬＳから１つを選択すること特徴とする。
【００１４】
また、この中継点ＬＳを決定する方法において、前記中継点ＬＳを選択するステップ（ｃ）は、前記選択中継点ＬＳから目標ドライブのＬＳ以外のＬＳへの平均輸送時間と特定カートリッジが前記中継点候補に到達するまでに目標ドライブのＬＳ以外の複数のＬＳにおいてドライブが空く確率との積で定義される期待所要時間に基づき複数の中継点ＬＳから１つを選択することを特徴とする。
【００１５】
また、この中継点ＬＳを決定する方法において、前記中継点ＬＳを選択するステップ（ｃ）は、選択された中継点ＬＳからに目標ドライブのＬＳ以外のＬＳへの前記平均輸送時間又は前記期待所要時間が最短時間となるＬＳを中継点として決定することを特徴とする。
【００１６】
また、この中継点ＬＳを決定する方法において、前記ライブラリ・ストリングが異なるテープドライブ数を有する場合、前記中継点ＬＳを選択するステップ（ｃ）は、候補である前記中継点ＬＳについて多くのドライブ数を有する中継点ＬＳを１つ選択することを特徴とする。
【００１７】
更に、本発明は、複数のライブラリ・ストリング（ＬＳ）を
(1)少なくとも２つ以上のシャトル・コネクション（ＳＣ）で接続し、
(2)前記シャトル・コネクションが移動可能なカーを利用してＬＳの少なくとも２つの中継点のＬＳ（中継点ＬＳ）を経由して記憶媒体を含むカートリッジを前記ＬＳ間において移動させるシャトル・コンプレックス・システムにおいて、
(3)ライブラリ・マネージャが、特定のカートリッジ（特定カートリッジ）をマウントすべき空きドライブ（目標ドライブ）に移動する際に前記中継点ＬＳを決定する、シャトル・コンプレックス・システムである。このシャトル・コンプレックス・システムは、
（ａ）アプリケーションから、前記中継点ＬＳの一方の側のライブラリ・ストリングに存在する特定カートリッジをマウントするコマンドを受け取るステップと、
（ｂ）特定カートリッジをマウントすべき目標ドライブを複数の前記ＬＳの中から検索するステップであって、特定カートリッジの存在するＬＳに対して、前記中継点ＬＳを挟んで他方の側に存在するＬＳから、目標ドライブを検索するステップと、
（ｃ）特定カートリッジを前記検索された目標ドライブに少なくとも２つの前記ＳＣを使用して移動させるために、所定の条件に基づき複数の前記中継点ＬＳから１つを選択するステップと、
（ｄ）特定カートリッジが前記選択された中継点ＬＳ（選択中継点ＬＳ）に到着するまでの間、前記選択中継点ＬＳ以外の残りの中継点ＬＳにおいて新たな空ドライブ（新空ドライブ）が発生するかを検索するステップと、を実行する。
【００１８】
更に、本発明は、複数のライブラリ・ストリング（ＬＳ）を
(1)少なくとも２つ以上のシャトル・コネクション（ＳＣ）で接続し、
(2)前記シャトル・コネクションが移動可能なカーを利用してＬＳの少なくとも２つの中継点のＬＳ（中継点ＬＳ）を経由して記憶媒体を含むカートリッジを前記ＬＳ間において移動させるシャトル・コンプレックス・システムにおいて、
(3)特定のカートリッジ（特定カートリッジ）をマウントすべき空きドライブ（目標ドライブ）に移動する際に前記中継点ＬＳを決定するプログラムである。このプログラムは、（ａ）アプリケーションから、前記中継点ＬＳの一方の側のライブラリ・ストリングに存在する特定カートリッジをマウントするコマンドを受け取るステップと、
（ｂ）特定カートリッジをマウントすべき目標ドライブを複数の前記ＬＳの中から検索するステップであって、特定カートリッジの存在するＬＳに対して、前記中継点ＬＳを挟んで他方の側に存在するＬＳから、目標ドライブを検索するステップと、
（ｃ）特定カートリッジを前記検索された目標ドライブに少なくとも２つの前記ＳＣを使用して移動させるために、所定の条件に基づき複数の前記中継点ＬＳから１つを選択するステップと、
（ｄ）特定カートリッジが前記選択された中継点ＬＳ（選択中継点ＬＳ）に到着するまでの間、前記選択中継点ＬＳ以外の残りの中継点ＬＳにおいて新たな空ドライブ（新空ドライブ）が発生するかを検索するステップと、をコンピュータに実行させる。
【００１９】
上述の手段を適用することにより、２以上のシャトル・コネクションを利用するシャトル・コンプレックスにおいて特定カートリッジを空いたドライブにマウントすることに、時間短縮ができる。
【図面の簡単な説明】
【００２０】
【図１】本発明のシャトル・コンプレックスの外観を示す図である。
【図２】本発明のライブラリ・ストリング１０を構成するライブラリ・フレーム２０の例を示す図である。
【図３】本発明のシャトル・コンプレックス１００を含むシステムの構成例を示す。
【図４】本発明の中継点を決定する方法を適用する典型的な複数のＬＳ及び複数のＳＣから構成されたライブラリ・システムを示す。
【図５】特定カートリッジをマウントすべき空きドライブに移動する際に中継点ＬＳを選択するフローチャートを示す。
【図６】本発明の中継点ＬＳを決定する実施例１−１を示す。
【図７】本発明の中継点ＬＳを決定する実施例１−２の評価値をまとめた表である。
【図８】本発明の中継点ＬＳを決定する実施例２−１及び２−２を示す。
【発明を実施するための形態】
【００２１】
本発明の中継点ライブラリ・ストリングの選択（決定）する実施の形態（実施例）を説明する。
図１は、本発明のシャトル・コンプレックスの外観を示す図である。
シャトル・コンプレックス１００は、３つのライブラリ・ストリング（ＬＳ）１０と、３つのライブラリ・ストリング１０を接続するシャトル・コネクション（ＳＣ）３０を含む。ライブラリ・ストリング１０の各々は、Ｘ方向で列状に接続された複数のライブラリ・フレーム２０を含む。
【００２２】
ライブラリ・ストリング１０の数は３つに限定されず、任意の数を選択できる。シャトル・コネクション３０の数も３つに限定されず、ライブラリ・ストリング１０のＸ方向の長さに応じて任意の数を選択できる。シャトル・コネクション３０のＺ方向の長さは、ライブラリ・ストリング１０の数が増えるにつれて長くすることができる。シャトル・コネクション３０内には、レール上を移動するカーが配置され、各ライブラリ・ストリング１０の位置で停止しながらライブラリ・ストリング１０内外へカートリッジを移送する。
【００２３】
図１に示した通り今回登場したシャトル技術は、これまでＸ方向のみ可能であった拡張性をＺ方向へも可能にしたものである。各シャトル・コネクション内にはカートリッジを運搬するためのカーが１台搭載されている。ＬＳ間でカートリッジを直接移動することができる。例えばあるＬＳのドライブがすべて使用中の時に、そのＬＳから利用可能なドライブがある別のＬＳにカートリッジをＳＣを使用して移動し、マウントすることなどが可能となる。
【００２４】
図２は、本発明のライブラリ・ストリング１０を構成するライブラリ・フレーム２０の例を示す図である。図２（ａ）は、ライブラリ・ストリング１０の一例である。ライブラリ・ストリング１０は、連結された６つのライブラリ・フレーム２０を含む。図２（ｂ）は、１つのライブラリ・フレーム２０の拡大図である。ライブラリ・フレーム２０は、筐体２０５の中に、Ｘ方向のレール２１０上およびＹ方向のレール（図示なし）上を移動可能なロボットアーム２２０と、記憶媒体を含むカートリッジを搭載してデータを読み書きするための複数のドライブ２３０と、複数のカートリッジを収納できるスロット２４０を含む。
【００２５】
Ｘ方向のレール２１０は、隣接するライブラリ・フレーム２０内のレールと連結してロボットアーム２２０が連結された６つのライブラリ・フレーム２０内を移動できる。ロボットアーム２２０は、カートリッジを保持することができ、レール上を高速に移動しながら指定されたドライブ２３０やスロット２４０へカートリッジを移動／マウントさせる。ドライブ２３０としては、記憶媒体の種類（磁気テープ、光磁気メディア等）やカートリッジのタイプ（磁気テープの3592、ＬＴＯ等）に対応したドライブをそれぞれ必要な数だけ選択して任意に配置することができる。
【００２６】
図３は、本発明のシャトル・コンプレックス１００を含むシステムの構成例を示す。
シャトル・コンプレックス１００は、ＬＳ１〜ＬＳ４の４つのライブラリ・ストリング１０を含む。各ライブラリ・ストリングには、ＳＣ１のシャトル・コネクション３０により接続されている。シャトル・コネクション３０は複数、例えば２つ以上設けてもよい。シャトル・コネクション３０内には、カー３１０が移動可能に配置されている。ライブラリ・ストリング１０およびシャトル・コネクション３０のＳＣ１は、ストレージエリアネットワーク（ＳＡＮ）５３０を介してライブラリ・マネージャ５０によって制御される。ライブラリ・ストリング１０は、ＳＡＮ５３０を介してアプリケーション６０の各々とデータのやりとり（読み書き）をおこなう。アプリケーション６０は、ライブラリ内のカートリッジをドライブにマウントし、データを読み書きするための専用のソフトウェアであり、一例としては、ＩＢＭ社のTivoli Storage Manager が該当する。
【００２７】
ライブラリ・マネージャ５０は、アプリケーション６０と各ライブラリ・ストリングとの間にあって、ドライブ２３０やカートリッジを集中管理し、仮想化するための１つのソフトウェアである。ライブラリ・マネージャ５０の一例としては、ＩＢＭ社のTape System Library Manager(TSLM)が該当する。ライブラリ・マネージャ５０は、アプリケーション６０からのコマンドをコマンド・キュー５１０に一時保管しながら、デバイスドライバ制御して各コマンドに対応したＳＣＳＩコマンドなどを各ライブラリ・ストリングに向けて出力させる。
【００２８】
アプリケーション６０は、カートリッジを含むライブラリを利用したいときにはライブラリ・マネージャ５０に要求を出す。また、ライブラリ・マネージャ５０が、実際のカートリッジの管理、割り当てを集中して行う。ライブラリ・マネージャにより、ライブラリ内のカートリッジの共有は容易になる。さらに、ライブラリの追加、削除などの構成の変更もすべてライブラリ・マネージャ５０が管理するため、各アプリケーションはこうした変更を意識する必要がなくなる。
【００２９】
図４は、本発明の中継点を決定する方法を適用する典型的な複数のＬＳ及び複数のＳＣから構成されたライブラリ・システムを示す。
ライブラリ・システムは、２以上のＬＳ(中継点ＬＳ)が少なくとも２つ以上のシャトル・コネクション（ＳＣ）で接続される。このシステムは、ＳＣを移動可能なカーを利用して２以上の中継点ＬＳのうち１つを経由して記憶媒体を含むカートリッジを移動させるシャトル・コンプレックス・システムである。このシステムにおいて、ライブラリ・マネージャ（ＬＭ：Library Manager）が、特定カートリッジをマウントすべき空きドライブ（目標ドライブ）に移動する際に中継点ＬＳを決定する方法を提供する。
【００３０】
シャトル・コネクション（ＳＣ）のテープ・ライブラリ・ストリングへの接続方法は自由である。例えば、４つのライブラリ・ストリングＬＳ１,ＬＳ２,ＬＳ３,ＬＳ４があるとすると、２つのシャトル・コネクションＳＣ１,ＳＣ２は、全てのライブラリ・ストリングＬＳ１〜ＬＳ４につながなければいけないというわけではない。既存のライブラリ・システムに対して拡張・増設する場合は１つのＳＣが必ずしも全体のＬＳに移動可能な構成とはならない。ＬＳ１〜ＬＳ３をつなぐシャトル・コネクションＳＣ１と、ＬＳ２〜ＬＳ４をつなぐＳＣ２との２つのシャトル・コネクションの構成でも良い。この場合、ＬＳ１からＬＳ４のライブラリ・ストリングへカートリッジを移動させるには一旦ＬＳ１でＳＣ１を使用して中継点ＬＳ２またはＬＳ３まで移動する。更に、中継点ＬＳを経由して、中継点ＬＳ２またはＬＳ３からＳＣ２を使用してカートリッジを運ぶ必要がある。
【００３１】
図４において、ライブラリ・マネージャ（ＬＭ：Library  Manager）５０がアプリケーション６０からコマンドとして、リモート・マウント・コマンド１（ＬＳ１−＞ＬＳ４）５１２を受け取る。このコマンドはコマンド・キュー５１０にある。コマンド・キュー５１０内のコマンドは、受け取った順番に実行される。通常はリモート・マウント・コマンド１（ＬＳ１−＞ＬＳ４）５１２が実行される場合、ＬＭは空きドライブ（「空ドライブ」と言う）を全体のＬＳから検索する。マウントを要求されたカートリッジ（特定カートリッジ）をマウント可能な空ドライブ（目標ドライブ）の存在するＬＳ移動させるためである。
【００３２】
各シャトル・コネクション３０内のカー１（３１０）及びカー２（３１２）は、それぞれライブラリ・ストリング１０のＬＳ１、ＬＳ３の位置している。ドライブ２３０は、ライブラリ・ストリング１０内にある。各ＬＳは各ライブラリ・フレーム２０内にドライブを含み、１又は複数のドライブを保持する。符号２５０は、ライブラリ・ストリング１０内の各ライブラリ・フレーム２０内のスロット２４０に収納されたカートリッジを意味する。実際には多数のカートリッジが存在する。
【００３３】
アプリケーション６０は、特定のカートリッジＣＡを空きドライブにマウント（mount）することを要求する。他のアプリケーションもドライブの使用を要求しているため、自身のＬＳ１には空ドライブは存在しない。ライブラリ・マネージャＬＭ５０は空きドライブを全てのＬＳ、即ちＬＳ１,ＬＳ２,ＬＳ３,ＬＳ４から検索する。ＬＭ５０は、特定カートリッジＣＡを含むＬＳ１に対して中継点ＬＳ２及びＬＳ３を挟んで反対側のＬＳ４に空きドライブを発見した状態である。
【００３４】
本発明の適用される形態は、中継点ＬＳ（ＬＳ２,ＬＳ２）に対して特定ＬＳが一方の側のＬＳにあり、目標ドライブが他方の側のＬＳに存在する場合である。ＬＳ１の特定カートリッジをＬＳ４の空ドライブに移動する場合、中継点ＬＳ２及びＬＳ３の何れかを距離的には優位差はない。しかし、選択した中継点ＬＳに到着する迄に別のＬＳにおいて新たな空きドライブが発生する場合がある。到着した中継地点ＬＳから新たに発生した空きドライブ（「新空ドライブ」とも言う）への移動が、当初の目標ドライブへのＬＳに移動するより短時間で済む場合がある。本発明では中継点ＬＳの選択を、途中で空きドライブのＬＳは発生することを考慮して、行う点にある。
【００３５】
複数のテープ・ライブラリ・ストリング構成で、カートリッジを運ぶとき、ひとつのシャトル・コネクションで直接運ぶのが簡単である。しかし、既存のストレージ・システム構成を維持しつつ段階的にライブラリ・ストリングを増設する場合、図４に示すシャトル・コネクションの接続は珍しくはない。本発明では、いくつかの中継点ＬＳを経て、特定のカートリッジを目標ドライブを有するライブラリ・ストリングへ運ぶ可能性を考える。
【００３６】
図５は、特定カートリッジをマウントすべき空きドライブに移動する際に中継点ＬＳを選択するフローチャートを示す。
典型的なシャトル・コンプレックス構成において、ライブラリ・マネージャ（ＬＭ）５０が、特定カートリッジをマウントすべき空きドライブ（目標ドライブ）に移動する際に複数の中継点ＬＳ候補から１つを選択する方法を説明する。
（５１０）アプリケーションから、中継点ＬＳの一方の側のライブラリ・ストリングに存在する特定カートリッジをマウントするコマンドを受け取る。
（５２０）ＬＭ５０は、特定カートリッジの存在するＬＳを確認する。また、複数の中継点ＬＳが存在するか確認する。例えば、図４のシャトル・コンプレックス構成で、特定カートリッジは中継点ＬＳの一方の側のＬＳ１に存在を確認できる。
（５３０）ＬＭ５０は、特定カートリッジをマウントすべき目標ドライブを複数のＬＳの中から検索する。特定カートリッジの存在するＬＳに対して、目標ドライブのＬＳは、中継点ＬＳを挟んで他方の側に存在する。
（５４０）特定カートリッジを目標ドライブに少なくとも２つのＳＣを使用して移動させる。この移動の際に、後述する実施例で説明される所定の条件に基づき複数の中継点ＬＳの候補から１つを選択する。
（５５０）特定カートリッジが選択された中継点ＬＳ（選択中継点ＬＳ）に到着するまでの間、選択中継点ＬＳ以外の残りのＬＳにおいて新空ドライブが発生するかを検索する。
（５６０）新空ドライブを検索するステップ（５５０）は、選択中継点ＬＳ以外のＬＳにおいて新空ドライブが発生する場合、目標ドライブに代えて新空きドライブの存在するＬＳに特定カートリッジを移動する。特定カートリッジを新空ドライブにマウントする。
（５７０）新空ドライブを検索するステップ（５５０）において、選択中継点ＬＳ以外の中継点ＬＳにおいて新空ドライブが発生しない場合、当初の目標ドライブのＬＳに特定カートリッジを移動する。特定カートリッジを目標ドライブにマウントする。
【００３７】
図６（ａ）は、７つのＬＳを２つのＳＣにより５つの中継点ＬＳの１つを経由して、両端のＬＳ間を移動するシャトル・コンプレックス構成の模式図を示す。
図を参照して本発明の中継点ＬＳを決定方法の実施例を説明する。
ＬＭ５０は、アプリケーションからマウント要求されたカートリッジ（「特定カートリッジ」と言う）がＬＳ０にあることを確認する。そのマウント要求時点で、ＬＭは、空のドライブ（目標ドライブと呼ぶ）がＬＳ６に存在することを確認している。ＬＳ０からＬＳ６へは直接つながった１つのシャトル・コネクション（ＳＣ）は存在しない。このシャトル・コンプレックスは、中継点領域を挟んで両端領域のＬＳ間の移動は、２つのシャトル・コネクションSC1,SC2を使用しなければならない。
ＬＳ０にある特定カートリッジを目標ドライブに運ぶには、SC1及びSC2で接続されている中継点ＬＳ１からＬＳ５の何れか１つを選ぶ。特定カートリッジを移動するのに、何れかの中継点ＬＳでSC1からSC2への乗り換えが必要となる。シャトル・コネクションでのカートリッジの輸送は、カートリッジの送り出し時点で輸送先のライブラリ・ストリングを決定される。中継点ＬＳの決定の変更は、特定カートリッジの輸送中はできない。
しかし、特定カートリッジが中継点ＬＳ到着でのＳＣの乗換えの際は、その時点で送り先の決定を行う機会がある。目標ドライブを含むＬＳ６へ送るよりは小さな輸送時間のＬＳに新たに空きドライブが発生する場合がある。中継点ＬＳから近くのＬＳのテープドライブに空きがあればそのテープドライブを確保する。空ドライブが存在するライブラリ・ストリングへ移動したほうが、テープのマウントの時間の短縮をはかることができる。極端な例は、中継点ＬＳにおいてテープドライブに空きがあればその空ドライブへマウントできるので余計な輸送時間が省かれマウントの短縮化ができる。
【００３８】
図６（ａ）を参照して、複数の中継点ＬＳから１つを選択する実施例１−１を説明する。実施例１−１では、各ＬＳに同数のドライブがあり、それぞれのドライブが空き率は等しい場合である。
各ライブラリ・ストリングの間、(例えばＬＳ０とＬＳ１の間)のカートリッジの輸送時間は等しくたとえば５秒とする。ＬＳ０にある特定カートリッジをＬＳ６に送る輸送時間は中継点(ＬＳ１からＬＳ５)の選択にかかわらず５×６＝３０秒となる。
各中継点への移動時間はそれぞれＬＳ１からＬＳ５への順に長くなるが、移動時間に比例して中継点でのドライブが空く可能性は高くなる。中継点のドライブの空きを継続的に監視し、空きがあれば確保するという方式をとる場合はＬＳ１からＬＳ５までの選択に関して優劣はつけられない。そこで、中継点での空ドライブが無かった場合、次の中継点ＬＳの選択として移動距離の小さくなるものを選択することにする。
【００３９】
●たとえば、ＬＳ１を中継点として選択した場合、カートリッジがＬＳ１に到着したときにＬＳ２からＬＳ５までのドライブを確保することができれば輸送時間は 10から25秒までである。この輸送時間は、目標ドライブを含むＬＳ６に送る時間よりも短くなる。ただし、その時点で必ずしもドライブが空くとは限らないので、その場合はドライブが空かない場合はＬＳ６に輸送する。中継点ＬＳ１から目標ドライブがあるＬＳ以外(ＬＳ２,ＬＳ３,ＬＳ４,ＬＳ５)への平均輸送時間は、(5 + 10 + 15 + 20) / 4 = 12.5 秒である。
●たとえばＬＳ３を中継点として選択した場合、中継点ＬＳ３から目標ドライブがあるＬＳ以外(ＬＳ１, ＬＳ２, ＬＳ４, ＬＳ５)への平均輸送時間は ((5 + 10 + 5 + 10) /4 = 7.5 秒である。
●たとえばＬＳ４を中継点として選択した場合、中継点ＬＳ４から目標ドライブがあるＬＳ以外(ＬＳ１,ＬＳ２,ＬＳ３ＬＳ５)への平均輸送時間は (5 + 5 +10 + 15)/ 4 = 8.75秒である。
【００４０】
図６（ｂ）は、以上の決定方法の計算を各中継点ＬＳ１〜ＬＳ５について示した表である。実施例１−１では、中継点から目標ドライブがあるＬＳ以外への平均輸送時間に基づいて最終的な１つの中継点を決定する。この場合、中継点ＬＳ１からＬＳ５までの中間点ＬＳ３を選ぶことになる。
【００４１】
図７は、本発明の中継点ＬＳを決定する実施例１−２の評価値をまとめた表である実施例１−２では、各ＬＳに同数のドライブがあり、それぞれのドライブが空き率は等しい場合である。各ライブラリ・ストリングの間、(例えばＬＳ０とＬＳ１の間)のカートリッジの輸送時間は等しくたとえば５秒とする。ＬＳ０にある特定カートリッジをＬＳ６に送る輸送時間は中継点(ＬＳ１からＬＳ５)の選択にかかわらず５×６＝３０秒となる。
【００４２】
次に、どの中継点も空きドライブが発生しない確率をQとしておく。この確率の値は、待ち時間が短ければ1に近く長くなればなるほど 0に近くなる。待機時間ｔの関数Q(ｔ)として与える。たとえば、ＬＳ１を中継点として選択した場合、カートリッジがＬＳ１に到着したときにＬＳ２からＬＳ５までのドライブを確保できる場合がある。この輸送時間は 10から25秒までの間となってＬＳ６に送る時間よりも短くなる。ただし、その時点で必ずしもドライブが空くとは限らないので、その場合はドライブが空かない場合はＬＳ６に輸送する。
【００４３】
●中継点ＬＳ１から目標ドライブがあるＬＳ以外(ＬＳ２,ＬＳ３,ＬＳ４,ＬＳ５)への平均輸送時間は (5 + 10 + 15 + 20) / 4 = 12.5 秒である。
カートリッジがマウントできるまでの期待所要時間を次の1から3の総和とする。
１．ＬＳ１までの所要時間 : 5秒
２．目標ドライブがあるＬＳ以外(ＬＳ２,ＬＳ３,ＬＳ４,ＬＳ５)への平均輸送時間 × (1−Q(5秒)) 
３．目標ドライブのあるＬＳへの輸送時間 × Q(5)
●さらに、たとえばＬＳ３を中継点として選択した場合、中継点ＬＳ３から目標ドライブがあるＬＳ以外(ＬＳ１,ＬＳ２,ＬＳ４,ＬＳ５)への平均輸送時間は ((5 + 10 + 5 + 10) /4 = 7.5 秒である。
カートリッジがマウントできるまでの期待所要時間は次の1から3の総和とする。
１．ＬＳ３までの所要時間 : 15秒
２．目標ドライブがあるＬＳ以外((ＬＳ１,ＬＳ２,ＬＳ４,ＬＳ５)への平均輸送時間 × (1−Q(15秒)) 
３．目標ドライブのあるＬＳへの輸送時間 × Q(15)
●たとえばＬＳ４を中継点として選択した場合、中継点ＬＳ４から目標ドライブがあるＬＳ以外(ＬＳ１,ＬＳ２,ＬＳ３,ＬＳ５)への平均輸送時間は (5 + 5 + 10 + 15)/ 4 = 8.75秒である。
カートリッジがマウントできるまでの期待所要時間は次の1から3の総和とする。
１．ＬＳ４までの所要時間 : 20秒
２．目標ドライブがあるＬＳ以外(ＬＳ１,ＬＳ２,ＬＳ３,ＬＳ５)への平均輸送時間 × (1−Q(20秒)) 
３．目標ドライブのあるＬＳへの輸送時間 × Q(20)
図７の表は、上述の例に倣って全ての５つの中継点ＬＳについて期待所要時間を計算した評価項目１〜８についてまとめた表である。
【００４４】
図７の表の評価項目について、次のように説明される。
１は中継点までの所要時間である。
２は中継点から目標ドライブがあるＬＳ以外への平均輸送時間にどれかの中継点のドライブが空く確率を掛けたものである。
３は目標ドライブへの所要時間に中継点のどのドライブも空かない確率を掛けたもの
４は1,2,3の総和である。
５はQ(5), Q(10), Q(15), Q(20), Q(25)は, どの中継点も空きドライブが発生しない確率である。各Ｑ(ｔ)の値は、それぞれ待機時間ｔに半比例するとしてQ(5)をqとしてこれを基準として書き直すとQ(5)=q, Q(10)=q/2, Q(15)=q/3,Q(20)=q/4,Q(25)=q/5と書き直したものとなる。
６はq =0.1とした場合、 ＬＳ１を選ぶとカートリッジがマウントできるまでの期待所要時間が最小になる。
７はq=0.5とした場合、8はq=0.9とした場合でどちらもＬＳ２を選ぶとカートリッジがマウントできるまでの期待所要時間が最小になる。
一方、ＬＳ５については30秒超えているので目標ドライブがあるＬＳ以外のドライブを待機する利点はない。なお、ドライブの空き確率ｑの値は、ＬＭ５０を介する複数のアプリケーションによるＩ／Ｏアクセス頻度に依存する量である。
【００４５】
図８は、本発明の中継点ＬＳを決定する実施例２−１及び２−２を示す。
図８（ａ）は、７つのＬＳを２つのＳＣにより５つの中継点ＬＳを経由して、両端のＬＳ間を移動するシャトル・コンプレックス構成の模式図を示す。実施例２−１及び２−２は、各ＬＳのドライブ数にばらつきがある場合である。ただし、各ドライブの空き率は同じとする。この実施例では、ドライブ数にばらつきがあり、各ドライブの空き率に差はないとする。ドライブの数の多いＬＳ (上の例ではＬＳ１)を中継点として選ぶ方針をとれば、ＬＳ１にカートリッジが到達した時点で、中継点のドライブを使用できる可能性が高く,目標ドライブのあるＬＳへのカートリッジの移動は必要なくなる。
【００４６】
図８（ｂ）は、各ＬＳが有するドライブ数にバラツキがある場合、各ドライブ空き確率を考慮して、期待空きドライブ数を評価した表である。ただし、カートリッジが中継点へ移動している間、中継点のドライブの空きを継続的に監視し、空きがあれば確保するという方式をとる場合は必ずしもドライブ数の多いＬＳを中継点として選ぶのが最適とはいえない。
ドライブの空き率を1/10 (10分の間に１分使用していない時間がある)とし、ドライブの空き率にドライブの空きを待つ時間をかけたものを期待できる空きドライブの数（期待空ドライブ数）とすると図８（ｂ）の表のようになる。期待空ドライブ数の最大の中継点ＬＳ４を選択すると、空ドライブへの速いマウントの可能性が高まり、データの読み書きパフォーマンスの向上が図られる。
【００４７】
上述により、２以上のシャトル・コネクションを利用するシャトル・コンプレックスにおいて、特定カートリッジを空いたドライブにマウントすることに、時間短縮が可能となる。
【００４８】
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
【符号の説明】
【００４９】
１０  ライブラリ・ストリング
２０  ライブラリ・フレーム
３０  シャトル・コネクション
５０  ライブラリ・マネージャ
６０  アプリケーション
２２０  ロボットアーム
２３０  ドライブ
２４０  スロット
３１０、３１２  カー
１００  シャトル・コンプレックス
【図１】
2014026709.tif 000003
【図２】
2014026709.tif 000004
【図３】
2014026709.tif 000005
【図４】
2014026709.tif 000006
【図５】
2014026709.tif 000007
【図６】
2014026709.tif 000008
【図７】
2014026709.tif 000009
【図８】
2014026709.tif 000010