(57)【要約】      （修正有）【課題】記憶操作のためのキュー及び作業負荷による選択インタフェースの方法及び装置を提供する。【解決手段】記憶操作を処理するためのストレージサブシステムのインタフェースを選択し、各インタフェースは、対応するプロセッサに対応付けられる。管理サーバは複数のプロバイダを有し、各々のプロバイダは、対応するインタフェースを介して複数のプロセッサのうちの１つのプロセッサ上で記憶操作を実行する。プロバイダの各々の状態に関する情報を収集し、各プロバイダの状態に基づいて、各プロバイダの操作時間の操作特性を決定し、プロバイダの操作特性を比較し、処理すべき記憶操作の所定数の操作ユニットについて、当該所定数の操作ユニットのための操作時間が最小であるプロバイダを選択し、対応するプロセッサ上の特定されたインタフェースを介して記憶操作を実行する。【選択図】図２
2012146280.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してストレージサブシステムに接続された管理サーバのセレクタによって、前記ストレージサブシステムによって受信される記憶操作を処理するための前記ストレージサブシステムにおいて、複数のインタフェースから１つのインタフェースを選択する方法であって、前記複数のインタフェースは、キュー記憶操作のためのキューインタフェース及びバッチ記憶操作のためのバッチインタフェースを含み、各インタフェースは、前記ストレージサブシステムにおける複数のプロセッサのうちの対応するプロセッサに対応付けられ、前記管理サーバは、複数のプロバイダを有し、各プロバイダは、前記対応するインタフェースを介して前記複数のプロセッサのうちの１つのプロセッサ上で記憶操作を実行するように構成されるものであり、
前記プロバイダの各々の状態に関する情報を収集することと、
各プロバイダの前記状態に基づいて、各プロバイダのためのいくつかの操作ユニットの関数として操作時間の操作特性を決定することと、
前記複数のプロバイダの前記操作特性を比較することと、
処理されるべき前記受信された記憶操作における所定数の操作ユニットについて、前記所定数の操作ユニットのための操作時間が最小である１つのプロバイダを前記複数のプロバイダから選択することと、
前記対応するプロセッサ上の特定されたインタフェースを介して前記受信された記憶操作を実行するために使用される前記選択されたプロバイダに基づいて、前記インタフェースを特定することと
を含む、方法。
【請求項２】
前記プロバイダは、前記キューインタフェースを介して前記複数のプロセッサのうちのストレージプロセッサ上で記憶操作を実行するように構成されたキュープロバイダを含み、そして前記キュープロバイダが選択された場合、前記キュープロバイダは、前記ストレージプロセッサ上の前記キューインタフェースを介して、前記受信された記憶操作を連続して実行する、
請求項１に記載の方法。
【請求項３】
前記プロバイダは、前記バッチインタフェースを介して前記複数のプロセッサのうちのサービスプロセッサ上で記憶操作を実行するように構成されたバッチプロバイダを含み、そして前記バッチプロバイダが選択された場合、前記バッチプロバイダは、前記サービスプロセッサ上の前記バッチインタフェースを介して、前記受信された記憶操作をバッチで実行する、
請求項１に記載の方法。
【請求項４】
前記プロバイダは、前記キューインタフェースを介して前記複数のプロセッサのうちのストレージプロセッサ上で記憶操作を実行するように構成されたキュープロバイダを含み、
前記キュープロバイダの状態は、ゼロキューモードと最大キューモードの間の記憶操作のためのキューのサイズに依存し、及び
前記操作時間は、前記キューのサイズとともに増え、かつ前記最大キューモードは最大操作時間を要し、前記ゼロキューモードは最小操作時間を要する、
請求項１に記載の方法。
【請求項５】
前記プロバイダは、前記バッチインタフェースを介して前記複数のプロセッサのうちのサービスプロセッサ上で記憶操作を実行するように構成されたバッチプロバイダを含み、
前記バッチプロバイダの状態は、前記サービスプロセッサがノーマルモード、リフレッシュモード、又は更新モードで稼働するか否かに依存し、
前記リフレッシュモードは、前記ストレージサブシステムのメモリに格納された構成を前記サービスプロバイダにアップロードし、かつ前記受信された記憶操作に基づいて前記構成を修正した後で前記構成を前記サービスプロバイダから前記メモリにダウンロードするために、前記ノーマルモードよりも多くの操作時間を要し、及び
前記更新モードは、前記ストレージサブシステムの前記メモリに格納された構成を前記サービスプロバイダにアップロードする必要なしに前記構成を修正した後で、前記構成を前記サービスプロバイダから前記メモリにダウンロードするために、前記ノーマルモードよりも少ない操作時間を要する、
請求項１に記載の方法。
【請求項６】
前記構成の修正は、論理ユニット番号の付与、論理ユニット番号の付与取消、ボリュームの作成、及びボリュームの削除のうちの１つ以上を含む、
請求項５に記載の方法。
【請求項７】
前記操作ユニットは、論理ユニット番号である、
請求項１に記載の方法。
【請求項８】
ストレージサブシステムと、管理サーバを備えたネットワークを介して接続された１つ以上のホストコンピュータとを含む情報システムにおける管理サーバであって、前記ストレージサブシステムは複数のインタフェースを有し、当該複数のインタフェースは、キュー記憶操作のためのキューインタフェース及びバッチ記憶操作のためのバッチインタフェースを含み、各インタフェースは、前記ストレージサブシステムによって受信される記憶操作を処理するために前記ストレージサブシステムにおける複数のプロセッサのうちの対応するプロセッサに対応付けられる、管理サーバであり、
各プロバイダが前記対応するインタフェースを介して前記複数のプロセッサのうちの１つのプロセッサ上で記憶操作を実行するように構成される、複数のプロバイダと、
セレクタとを備え、当該セレクタは、
前記プロバイダの各々の状態に関する情報を収集し、
各プロバイダの前記状態に基づいて、各プロバイダのためのいくつかの操作ユニットの関数として操作時間の操作特性を決定し、
前記複数のプロバイダの前記操作特性を比較し、
処理されるべき前記受信された記憶操作における所定数の操作ユニットについて、前記所定数の操作ユニットのための操作時間が最小である１つのプロバイダを前記複数のプロバイダから選択し、及び
前記対応するプロセッサ上の特定されたインタフェースを介して前記受信された記憶操作を実行するために使用される前記選択されたプロバイダに基づいて、前記インタフェースを特定するように構成されている、管理サーバ。
【請求項９】
前記プロバイダは、前記キューインタフェースを介して前記複数のプロセッサのうちのストレージプロセッサ上で記憶操作を実行するように構成されたキュープロバイダを含み、そして前記キュープロバイダが選択された場合、前記キュープロバイダは、前記ストレージプロセッサ上の前記キューインタフェースを介して、前記受信された記憶操作を連続して実行する、
請求項８に記載の管理サーバ。
【請求項１０】
前記プロバイダは、前記バッチインタフェースを介して前記複数のプロセッサのうちのサービスプロセッサ上で記憶操作を実行するように構成されたバッチプロバイダを含み、そして前記バッチプロバイダが選択された場合、前記バッチプロバイダは、前記サービスプロセッサ上の前記バッチインタフェースを介して、前記受信された記憶操作をバッチで実行する、
請求項８に記載の管理サーバ。
【請求項１１】
前記プロバイダは、前記キューインタフェースを介して前記複数のプロセッサのうちのストレージプロセッサ上で記憶操作を実行するように構成されたキュープロバイダを含み、
前記キュープロバイダの状態は、ゼロキューモードと最大キューモードの間の記憶操作のためのキューのサイズに依存し、及び
前記操作時間は、前記キューのサイズとともに増え、かつ前記最大キューモードは最大操作時間を要し、前記ゼロキューモードは最小操作時間を要する、
請求項８に記載の管理サーバ。
【請求項１２】
前記プロバイダは、前記バッチインタフェースを介して前記複数のプロセッサのうちのサービスプロセッサ上で記憶操作を実行するように構成されたバッチプロバイダを含み、
前記バッチプロバイダの状態は、前記サービスプロセッサがノーマルモード、リフレッシュモード、又は更新モードで稼働するか否かに依存し、
前記リフレッシュモードは、前記ストレージサブシステムのメモリに格納された構成を前記サービスプロバイダにアップロードし、かつ前記受信された記憶操作に基づいて前記構成を修正した後で前記構成を前記サービスプロバイダから前記メモリにダウンロードするために、前記ノーマルモードよりも多くの操作時間を要し、及び
前記更新モードは、前記ストレージサブシステムの前記メモリに格納された構成を前記サービスプロバイダにアップロードする必要なしに前記構成を修正した後で、前記構成を前記サービスプロバイダから前記メモリにダウンロードするために、前記ノーマルモードよりも少ない操作時間を要する、
請求項８に記載の管理サーバ。
【請求項１３】
前記構成の修正は、論理ユニット番号の付与、論理ユニット番号の付与取消、ボリュームの作成、及びボリュームの削除のうちの１つ以上を含む、
請求項１２に記載の管理サーバ。
【請求項１４】
前記操作ユニットは、論理ユニット番号である、
請求項８に記載の管理サーバ。
【請求項１５】
ストレージサブシステムによって受信される記憶操作を処理するためのストレージサブシステムにおいて複数のインタフェースから１つのインタフェースを選択するために、管理サーバのデータプロセッサを制御するための複数の命令を記憶するコンピュータ読取可能記憶媒体であって、前記ストレージサブシステムはネットワークを介して前記管理サーバに接続され、前記複数のインタフェースは、キュー記憶操作のためのキューインタフェース及びバッチ記憶操作のためのバッチインタフェースを含み、各インタフェースは、前記ストレージサブシステムによって受信される記憶操作を処理するために前記ストレージサブシステムにおける複数のプロセッサのうちの対応するプロセッサに対応付けられ、前記管理サーバは、複数のプロバイダを有し、各プロバイダは、前記対応するインタフェースを介して前記複数のプロセッサのうちの１つのプロセッサ上で記憶操作を実行するように構成される、コンピュータ読取可能記憶媒体であり、
前記複数の命令は、
前記データプロセッサに、前記プロバイダの各々の状態に関する情報を収集させる命令と、
前記データプロセッサに、各プロバイダの前記状態に基づいて、各プロバイダのためのいくつかの操作ユニットの関数として操作時間の操作特性を決定させる命令と、
前記データプロセッサに、前記複数のプロバイダの前記操作特性を比較させる命令と、
前記データプロセッサに、処理されるべき前記受信された記憶操作における所定数の操作ユニットについて、前記所定数の操作ユニットのための操作時間が最小である１つのプロバイダを前記複数のプロバイダから選択させる命令と、
前記データプロセッサに、前記対応するプロセッサ上の特定されたインタフェースを介して前記受信された記憶操作を実行するために使用される前記選択されたプロバイダに基づいて、前記インタフェースを特定させる命令と
を含む、コンピュータ読取可能記憶媒体。
【請求項１６】
前記プロバイダは、前記キューインタフェースを介して前記複数のプロセッサのうちのストレージプロセッサ上で記憶操作を実行するように構成されたキュープロバイダを含み、そして前記キュープロバイダが選択された場合、前記複数の命令は、前記キュープロバイダに、前記ストレージプロセッサ上の前記キューインタフェースを介して、前記受信された記憶操作を連続して実行させる命令をさらに含む、
請求項１５に記載のコンピュータ可読ストレージ媒体。
【請求項１７】
前記プロバイダは、前記バッチインタフェースを介して前記複数のプロセッサのうちのサービスプロセッサ上で記憶操作を実行するように構成されたバッチプロバイダを含み、そして前記バッチプロバイダが選択された場合、前記複数の命令は、前記バッチプロバイダに、前記サービスプロセッサ上の前記バッチインタフェースを介して、前記受信された記憶操作をバッチで実行させる命令をさらに含む、
請求項１５に記載のコンピュータ可読ストレージ媒体。
【請求項１８】
前記プロバイダは、前記キューインタフェースを介して前記複数のプロセッサのうちのストレージプロセッサ上で記憶操作を実行するように構成されたキュープロバイダを含み、
前記キュープロバイダの状態は、ゼロキューモードと最大キューモードの間の記憶操作のためのキューのサイズに依存し、及び
前記操作時間は、前記キューのサイズとともに増え、かつ前記最大キューモードは最大操作時間を要し、前記ゼロキューモードは最小操作時間を要する、
請求項１５に記載のコンピュータ可読ストレージ媒体。
【請求項１９】
前記プロバイダは、前記バッチインタフェースを介して前記複数のプロセッサのうちのサービスプロセッサ上で記憶操作を実行するように構成されたバッチプロバイダを含み、
前記バッチプロバイダの状態は、前記サービスプロセッサがノーマルモード、リフレッシュモード、又は更新モードで稼働するか否かに依存し、
前記リフレッシュモードは、前記ストレージサブシステムのメモリに格納された構成を前記サービスプロバイダにアップロードし、かつ前記受信された記憶操作に基づいて前記構成を修正した後で前記構成を前記サービスプロバイダから前記メモリにダウンロードするために、前記ノーマルモードよりも多くの操作時間を要し、及び
前記更新モードは、前記ストレージサブシステムの前記メモリに格納された構成を前記サービスプロバイダにアップロードする必要なしに前記構成を修正した後で、前記構成を前記サービスプロバイダから前記メモリにダウンロードするために、前記ノーマルモードよりも少ない操作時間を要する、
請求項１５に記載のコンピュータ可読ストレージ媒体。
【請求項２０】
前記構成の修正は、論理ユニット番号の付与、論理ユニット番号の付与取消、ボリュームの作成、及びボリュームの削除のうちの１つ以上を含む、
請求項１９に記載のコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は、概してストレージシステムに関し、特に、記憶操作のためのキュー及び作業負荷によるインタフェースの選択に関する。
【背景技術】
【０００２】
０００２    ストレージサブシステムは、ストレージ管理のために異なる特性インタフェース（Ｉ／Ｆ）を提供し、Ｉ／Ｆの特性は、Ｉ／Ｆ処理及びＩ／Ｆのキューの状態に基づいて変更される。Ｉ／Ｆを効率的に選択することは難しい。例えば、逐次操作Ｉ／Ｆ（例えば、ＲＭＬＩＢ  ＡＰＩ）は、記憶操作（例えば、ＬＵＮ付与／付与取消操作）の数によるライナーオーダー時間である。ライナーの傾きは、記憶操作バッチ操作Ｉ／Ｆ（例、ＲＭＩ  ＡＰＩ）のためのストレージのキュー長によって変更され、記憶操作の数に拘わらず、一組の記憶操作についてほぼフラットな性能である。フラットライナーの切片は、サービスプロセッサ、即ちＳＶＰの状態によって変更される（更新＜ノーマル＜リフレッシュ）。従って、システムの利用者は、適切なＩ／Ｆを選択することができない。
【０００３】
０００３    インバンドストレージ管理Ｉ／Ｆの一例であるＲＭＬＩＢは、米国特許出願公開第２００２／０１４３９０３号に記載されている。その開示では、ストレージシステム３０は、１つ以上のコマンドデバイスを実装し得るもので、エージェント２９は、操作ＡＰＩ（ＲＭＬＩＢ）と等しくなり得るものであり、１つ以上のコマンドデバイスは、コマンドデバイス（この開示のＣＭ又はＣＭＤ）と機能的に等しくなり得る。エージェント２９は、ストレージシステム３０の論理ユニット（ＬＵ）への接続操作のための命令を提供するのに使用するためのアプリケーションプログラムインタフェース（ＡＰＩ）又はコマンドラインインタフェース（ＣＬＩ）を提供することができる。その開示は、ＣＭＤ上の要求のためのキューを教示していない。しかし、数個のホストからの要求を処理する必要がある。Ｉ／Ｆは、ボリュームにＬＵＮを付与し、ボリュームからＬＵＮを付与取消し、かつコピー操作を提供する機能を提供する。付与及び付与取消操作の機能の例は、米国特許第７,１９７,６０９号にある。
【０００４】
０００４    ＳＶＰ上のアウトバンドストレージインタフェースＲＭＩの一例は、米国特許第７,５１２,８８８号に記載されている。その開示では、図９は、別の管理サーバから制御するためのＩ／Ｆを提供するＲＭＩサーバ４０ｈを示す。ストレージの構成は、従来技術で教示されており、リフレッシュ操作の一例が米国特許出願公開第２００４／００３０７３０号で記載されている。その開示は、バッチ操作を教示していない。例えば、管理ソフトウェアは、ストレージサブシステムに一組の記憶操作を送信する。次に、各ストレージサブシステムは、当該一組の記憶操作を再度実行する。しかし、それは相当な技術的な操作である。また、Ｉ／Ｆの態様、特に操作スピードも、よく開示されていない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
０００５    本発明の例示的な実施形態は、管理ソフトウェアにおいて、ファクトリと呼ばれるＩ／Ｆ選択モジュールを提供する。この選択モジュールは、ストレージ管理のための要求のキュー及びストレージサブシステム上のＩ／Ｆ実行の状態に基づいて効率的な実行可能Ｉ／Ｆを評価する。少なくとも２つの異なるＩ／Ｆがある場合は、このセレクタは、１つのＩ／Ｆを選択し、サブシステム状態を考慮してユーザ実行コマンドを実行することができる。従来技術では、両方の特性Ｉ／Ｆの使用、又はその行動（すなわち、要求のキュー及びＩ／Ｆ実行の作業負荷などの状態）に基づいた１つのＩ／Ｆの選択は開示されていない。
【課題を解決するための手段】
【０００６】
０００６    本発明の一態様は、ネットワークを介してストレージサブシステムに接続された管理サーバのセレクタによって、前記ストレージサブシステムによって受信される記憶操作を処理するための前記ストレージサブシステムにおいて、複数のインタフェースから１つのインタフェースを選択する方法を対象とする。前記複数のインタフェースは、キュー記憶操作のためのキューインタフェース及びバッチ記憶操作のためのバッチインタフェースを含み、各インタフェースは、前記ストレージサブシステムにおける複数のプロセッサのうちの対応するプロセッサに対応付けられる。前記管理サーバは、複数のプロバイダを有し、各プロバイダは、前記対応するインタフェースを介して前記複数のプロセッサのうちの１つのプロセッサ上で記憶操作を実行するように構成される。前記方法は、前記プロバイダの各々の状態に関する情報を収集することと、各プロバイダの前記状態に基づいて、各プロバイダのためのいくつかの操作ユニットの関数として操作時間の操作特性を決定することと、前記複数のプロバイダの前記操作特性を比較することと、処理されるべき前記受信された記憶操作における所定数の操作ユニットについて、前記所定数の操作ユニットのための操作時間が最小である１つのプロバイダを前記複数のプロバイダから選択することと、前記対応するプロセッサ上の特定されたインタフェースを介して前記受信された記憶操作を実行するために使用される前記選択されたプロバイダに基づいて、前記インタフェースを特定することとを含む。
【０００７】
０００７    いくつかの実施態様では、前記プロバイダは、前記キューインタフェースを介して前記複数のプロセッサのうちのストレージプロセッサ上で記憶操作を実行するように構成されたキュープロバイダを含み、そして前記キュープロバイダが選択された場合、前記キュープロバイダは、前記ストレージプロセッサ上の前記キューインタフェースを介して、前記受信された記憶操作を連続して実行する。前記プロバイダは、前記バッチインタフェースを介して前記複数のプロセッサのうちのサービスプロセッサ上で記憶操作を実行するように構成されたバッチプロバイダを含み、そして前記バッチプロバイダが選択された場合、前記バッチプロバイダは、前記サービスプロセッサ上の前記バッチインタフェースを介して、前記受信された記憶操作をバッチで実行する。
【０００８】
０００８    特定の実施形態では、前記プロバイダは、前記キューインタフェースを介して前記複数のプロセッサのうちのストレージプロセッサ上で記憶操作を実行するように構成されたキュープロバイダを含み、前記キュープロバイダの状態は、ゼロキューモードと最大キューモードの間の記憶操作のためのキューのサイズに依存し、及び前記操作時間は、前記キューのサイズとともに増え、かつ前記最大キューモードは最大操作時間を要し、前記ゼロキューモードは最小操作時間を要する。前記プロバイダは、前記バッチインタフェースを介して前記複数のプロセッサのうちのサービスプロセッサ上で記憶操作を実行するように構成されたバッチプロバイダを含み、前記バッチプロバイダの状態は、前記サービスプロセッサがノーマルモード、リフレッシュモード、又は更新モードで稼働するか否かに依存し、前記リフレッシュモードは、前記ストレージサブシステムのメモリに格納された構成を前記サービスプロバイダにアップロードし、かつ前記受信された記憶操作に基づいて前記構成を修正した後で前記構成を前記サービスプロバイダから前記メモリにダウンロードするために、前記ノーマルモードよりも多くの操作時間を要し、及び前記更新モードは、前記ストレージサブシステムの前記メモリに格納された構成を前記サービスプロバイダにアップロードする必要なしに前記構成を修正した後で、前記構成を前記サービスプロバイダから前記メモリにダウンロードするために、前記ノーマルモードよりも少ない操作時間を要する。前記構成の修正は、論理ユニット番号の付与、論理ユニット番号の付与取消、ボリュームの作成、及びボリュームの削除のうちの１つ以上を含む。前記操作ユニットは、論理ユニット番号である。
【０００９】
０００９    本発明の別の態様は、ストレージサブシステムと、管理サーバを備えたネットワークを介して接続された１つ以上のホストコンピュータとを含む情報システムにおける管理サーバを対象とする。前記ストレージサブシステムは複数のインタフェースを有し、当該複数のインタフェースは、キュー記憶操作のためのキューインタフェース及びバッチ記憶操作のためのバッチインタフェースを含み、各インタフェースは、前記ストレージサブシステムによって受信される記憶操作を処理するために前記ストレージサブシステムにおける複数のプロセッサのうちの対応するプロセッサに対応付けられる。管理サーバは、各プロバイダが前記対応するインタフェースを介して前記複数のプロセッサのうちの１つのプロセッサ上で記憶操作を実行するように構成される、複数のプロバイダと、セレクタとを備え、当該セレクタは、前記プロバイダの各々の状態に関する情報を収集し、各プロバイダの前記状態に基づいて、各プロバイダのためのいくつかの操作ユニットの関数として操作時間の操作特性を決定し、前記複数のプロバイダの前記操作特性を比較し、処理されるべき前記受信された記憶操作における所定数の操作ユニットについて、前記所定数の操作ユニットのための操作時間が最小である１つのプロバイダを前記複数のプロバイダから選択し、及び前記対応するプロセッサ上の特定されたインタフェースを介して前記受信された記憶操作を実行するために使用される前記選択されたプロバイダに基づいて、前記インタフェースを特定するように構成されている。
【００１０】
００１０    本発明の別の態様は、ストレージサブシステムによって受信される記憶操作を処理するためのストレージサブシステムにおいて複数のインタフェースから１つのインタフェースを選択するために、管理サーバのデータプロセッサを制御するための複数の命令を記憶するコンピュータ読取可能記憶媒体を対象とする。前記ストレージサブシステムはネットワークを介して前記管理サーバに接続される。前記複数のインタフェースは、キュー記憶操作のためのキューインタフェース及びバッチ記憶操作のためのバッチインタフェースを含み、各インタフェースは、前記ストレージサブシステムによって受信される記憶操作を処理するために前記ストレージサブシステムにおける複数のプロセッサのうちの対応するプロセッサに対応付けられる。前記管理サーバは、複数のプロバイダを有し、各プロバイダは、前記対応するインタフェースを介して前記複数のプロセッサのうちの１つのプロセッサ上で記憶操作を実行するように構成される。前記複数の命令は、前記データプロセッサに、前記プロバイダの各々の状態に関する情報を収集させる命令と、前記データプロセッサに、各プロバイダの前記状態に基づいて、各プロバイダのためのいくつかの操作ユニットの関数として操作時間の操作特性を決定させる命令と、前記データプロセッサに、前記複数のプロバイダの前記操作特性を比較させる命令と、前記データプロセッサに、処理されるべき前記受信された記憶操作における所定数の操作ユニットについて、前記所定数の操作ユニットのための操作時間が最小である１つのプロバイダを前記複数のプロバイダから選択させる命令と、前記データプロセッサに、前記対応するプロセッサ上の特定されたインタフェースを介して前記受信された記憶操作を実行するために使用される前記選択されたプロバイダに基づいて、前記インタフェースを特定させる命令とを含む。
【００１１】
００１１    本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【００１２】
【図１】００１２    図１は、本発明の方法及び装置が適用され得る情報システムのハードウェア構成の一例を示す。
【図２】００１３    図２は、図１の構造に適用される本発明の論理構成の一例を示す。
【図３】００１４    図３（ａ）は、仮想マシンを作成するための計画の一例を示す。（ｂ）は、仮想マシンを記憶するための計画の一例を示す。
【図４】００１６    図４は、仮想マシンを展開するための計画の一例を示す。
【図５】００１７    図５は、実行済み計画のリストの詳細を提供する実行済み計画テーブルの一例を示す。
【図６】００１８    図６は、各Ｉ／Ｆへの記憶操作のための図２のセレクタ上のキューテーブルの一例を示す。
【図７】００１９    図７は、図２のサービスプロセッサ（ＳＶＰ）上のバッチ記憶操作のためのバッチテーブルの一例を示す。
【図８】００２０    図８は、図２のストレージプロセッサ（ＭＰ）上のキュー記憶操作のための操作キューテーブルの一例を示す。
【図９】００２１    図９は、ストレージサブシステム上の構造テーブルの一例を示す。
【図１０】００２２    図１０は、ＭＰ又はＳＶＰが構造テーブルを修正する方法を示す流れ図の一例を示す。
【図１１】００２３    図１１は、セレクタがプロバイダを選択する方法を示す流れ図の一例を示す。
【図１２】００２４    図１２（ａ）は、切片テーブルの一例を示す。（ｂ）は、傾きテーブルの一例を示す。（ｃ）は、２つのインタフェースの操作特性の交点のサンプル計算を図示するプロットである。
【発明を実施するための形態】
【００１３】
００２７    以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として（但し限定ではない）示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する（以下に説明し、かつ図面で示される通り）が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ／又はブロック図において図示している場合もある。
【００１４】
００２８    さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は（必ずしもそうではないが）、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に対応付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
【００１５】
００２９    本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等（但し、これらに限定されない）のコンピュータ読取可能記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び（情報）提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行され得る。
【００１６】
００３０    以下により詳細に示す本発明の例示的実施形態は、記憶操作のためのキュー及び作業付加によってインタフェースを選択するための装置、方法及びコンピュータプログラムを提供する。
【００１７】
００３１    図１は、本発明の方法及び装置が適用され得る情報システムのハードウェア構成の一例を示す。このシステムは、管理サーバ１１０を含むパーソナルコンピュータ（ＰＣ）と、少なくとも１つのホスト１３０と、ストレージサブシステム１４０とを有する。ＰＣは、ＳＡＮ（ストレージエリアネットワーク）などのネットワーク２６０を介してストレージサブシステム１４０に接続する。ＳＡＮは、一般的にファイバチャネルネットワークであり、よって、ファイバチャネルスイッチ及びケーブルを含む。ＳＡＮは、ｉＳＣＳＩ及びイーサネット（登録商標）ネットワークなどのＩＰネットワークをファイバチャネルオーバーイーサネット（登録商標）として使用し得る。この場合、我々は、ネットワークスイッチとしてイーサネット（登録商標）ケーブル及びイーサネット（登録商標）スイッチを使用する。ＰＣ１１０、１３０、及びストレージサブシステム１４０は、ＬＡＮ（ローカルエリアネットワーク）２７０によって接続される。ＬＡＮは、本実施形態ではイーサネット（登録商標）ネットワークを使用し、これはイーサネット（登録商標）スイッチ及びケーブルを含む。
【００１８】
００３２    各ＰＣ１１０、１３０は汎用コンピュータであり、ＣＰＵ、メモリ、及びディスクを含む。これは、ＳＡＮ２６０に接続するためにストレージ用のホストバスアダプタ（ＨＢＡ）を有する。ＨＢＡは、ワールドワイドネーム（ＷＷＮ）の形式の固有の識別子を有する。ＰＣはまた、ＬＡＮ２７０に接続するためのネットワークインタフェースカード（ＮＩＣ）を有する。ＮＩＣは、ＭＡＣアドレスを有する。
【００１９】
００３３    ストレージサブシステム１４０は、ストレージプロセッサ（ＭＰ）１６０、ディスク１４３、メモリ１７０、ＳＡＮ２６０に接続するポート１８０、及びサービスプロセッサ（ＳＶＰ）１５０を有する。ポート、ＭＰ、ディスク、及びメモリは、内部バス１４２によって接続される。メモリは、本実施形態ではＮＶＲＡＭである。ポート、メモリ、ディスク、ＭＰ、ＳＶＰ、及び内部バスは、システムの信頼性のために冗長であることができる。ＭＰ１６０は、ＣＰＵ、ローカルメモリ、及びＮＩＣを有する。このＮＩＣを使用して、ＭＰ１６０は、ＳＶＰ１５０と通信することができる。ＳＶＰ１５０は、内部ＬＡＮ１９０及び外部ＬＡＮ２７０のための２つのＮＩＣ、ＣＰＵ、メモリ１７０、及びディスク１４３を有する。
【００２０】
００３４    図２は、図１の構造に適用される本発明の論理構成の一例を示す。システムは、データセンター管理サーバ又は単に管理サーバ２１０、少なくとも１つの仮想マシン実行可能サーバ２３０、及びストレージサブシステム２４０を有する。管理サーバは、図１のＰＣ１１０を使用し得る。これは、ポータルサーバ２１１、実行のための計画２１２、セレクタ２１３によって選択される仮想ボリューム（Ｖ−ＶＯＬ）及びＬＵＮなどのための操作キュー、及び各インタフェース（Ｉ／Ｆ）のためのハードウェアプロバイダ２１４、２１５を有する。ポータルサーバは、仮想マシンの管理者が「計画」２１２を実行するためのグラフィカルユーザインタフェース（ＧＵＩ）を示す。計画２１２は、ビジネスオブジェクトに基づいたいくつかの実行動作を有する。例えば、ユーザは、ホスト２３０上に仮想マシンを作成し得る。このような計画２１２は、一組の動作を有する。動作tは、ストレージ又はいくつかの他のモジュール実行のユニットである。動作の１つは、ストレージサブシステム２４０に対する記憶操作を実行する。１つ以上の記憶操作動作は、セレクタ２１３の各記憶操作キューのために待ち行列に入れられる。この例では、キューは、ストレージサブシステム２４０上のボリュームを作成又は削除する操作のためのキューＶＯＬ（Ｖ−ＶＯＬ）、ボリュームをＬＵに付与又は付与取消する操作のためのキューＬＵ（論理ユニット）、及びボリュームをコピーする操作のためのキューコピーである。待機記憶操作の特性に基づいて、キューセレクタ２１３は、実行Ｉ／Ｆプロバイダを選択する。選択方法の詳細は以下に説明する。各プロバイダ２１４、２１５は、１つの記憶操作Ｉ／Ｆの実行モジュールである。例えば、プロバイダ１は、ＳＶＰ Ｉ／Ｆを使用してＳＶＰ１５０上で記憶操作を実行する。特性処理として、ＳＶＰ１５０は、１回の実行で一組の記憶操作を実行することができる。プロバイダ２は、ストレージサブシステム２４０によって提供されるＭＰ  Ｉ／Ｆを通してストレージプロセッサ（図２のＭＰとして示されている）上で各記憶操作を実行する。プロバイダ１及びプロバイダ２は、ＳＶＰの状態又はＭＰの状態を見つけるための状態値を有する。プロバイダは、ＭＰ又はＳＶＰの状態をそれぞれのＩ／Ｆを使用して問い合わせる。例えば、ＲＭＩ  Ｉ／Ｆをプロバイダ１Ｉ／Ｆとして、及びＲＭＬＩＢ  Ｉ／Ｆをプロバイダ２Ｉ／Ｆとして使用し得る。ＲＭＩ  ＡＰＩ及びＲＭＬＩＢ  Ｉ／Ｆは、当技術分野で周知である。
【００２１】
００３５    記憶操作は、管理サーバ２１０から送信され、ストレージサブシステム２４０によって受信される。記憶操作は、ＳＶＰ１５０のバッチ記憶操作１５１又はＭＰ１６０のキュー記憶操作１６１によって受信することができる。キューは、記憶操作及び待ち操作の順序を管理する。実行時に、ＳＶＰ１５０又はＭＰ１６０は、メモリ１７０上の構成テーブル１７１を修正する。ＳＶＰ１５０による修正は、バッチスタイルである。よって、ＳＶＰ１５０は、管理サーバ２１０によって要求された一組の記憶操作を実行し、メモリ１７０からロック１７４を取得した後で、受信された操作をメモリ１７０の構造テーブル上の一組の操作として修正する。構造テーブル１７１は、ボリュームプール情報１７２、ボリューム対ＬＵマッピングテーブル１７３、及び各テーブルのためのロック１７４を有する。構造テーブル１７１を変更するためには、構造テーブルをメモリ１７０からＳＶＰのメモリに構成１５２としてアップロードすることが必要である。操作を設定した後で、ＳＶＰ１５０は、構成１５２をメモリ１７０にダウンロードする。ストレージ管理サーバ２１０から送信された操作に基づいて、ストレージサブシステム２４０は、ボリュームを作成し、ホスト２３０から見えるようにするために論理ユニットをボリュームに付与し、又はボリュームから論理ユニットを付与取消してボリュームを削除することができる。論理ユニットは、ホスト２３０に向けたボリュームの表示である。識別子として、論理ユニット（ＬＵ）は、論理ユニット番号（ＬＵＮ）を使用する。ＬＵＮは、いくつかのポートに割り当てられる。本実施形態には、２つのタイプのポートがある。第１のタイプのポートは、ホスト未割り当てポート２８１であり、この場合いずれのホストもポート２８１上に割り当てボリュームを有していない。ボリュームがこのポート上にある場合は、それは、いずれのホストもボリュームを使用しておらず、ユーザがボリュームを候補として使用し得ることを意味する。第２のタイプのポートは、ホスト割り当てポート２８２であり、この場合はホスト２３０が既にポート上のボリュームを割り当てかつ使用している。
【００２２】
００３６    上記のように、ストレージサブシステム２４０が実行し得る操作の１つは、ボリュームを作成することである。ボリュームの作成は、割当使用技術（即ち、シン・プロビジョニング技術）を含み得る。よって、ストレージ２９０のプールは、作成のために使用され、ＲＡＩＤ（redundant array of independent disks）０、１、２、３、４、６によって保護される。ストレージ２９０のプールのプール情報は、構造テーブル１７１上に格納される。あるいは、作成は、ボリューム容量全体を割り当て得る。
【００２３】
００３７    ストレージサブシステム２４０によって、ホスト２３０は、ポート２８２を介してＬＵＮを有するボリュームを使用することができる。本実施形態は、仮想マシンがこのボリュームを使用することを想定する。よって、ホスト２３０は、ハイパーバイザ及び仮想マシン（ＶＭ）を有する。ＶＭは、ハイパーバイザ上で実行可能である。
【００２４】
００３８    図３（ａ）は、ＶＭを作成する計画の一例を示す。図３（ｂ）は、ＶＭを記憶するための計画の一例を示す。図４は、ＶＭを展開する計画の一例を示す。これらは、図２の管理サーバ２１０によって実行される計画２１２の例である。
【００２５】
００３９    図３（ａ）で示されるＶＭを作成かつ展開するために、ユーザは、動作の入力として、ボリュームの番号のゴールデンイメージを指定する。ステップ３０１では、管理サーバ２１０は、ボリュームを作成するために「ＶＯＬ作成動作」を実行する。本実施形態では、ボリュームの作成は、図２で示されるプール１７２からの書き込み操作で１ページにつき例えば４２ＭＢのページとしてストレージリソースを割り当てるためにシン・プロビジョニングを必要とする。このページサイズは、単に一例にすぎない。他の数字も適用可能である。あるいは、それは、作成時にボリュームリソース全体を割り当ててもよい。ステップ３０２では、管理サーバ２１０は、ボリュームを作成するために論理ユニット番号をアタッチする「ＶＯＬへのＬＵＮアタッチ動作」を実行する。ＬＵＮは、いずれのホストによっても割り当てられていないポートに付与される。ステップ３０３では、管理サーバ２１０は、作成されたボリュームに特定されたゴールデンイメージボリュームのコピーを実行する。ゴールデンイメージボリュームは、ＶＭイメージファイルを有する。これはファイルシステムによってフォーマットされ得る。
【００２６】
００４０    ＶＭを記憶する図３（ｂ）では、ステップ３０４において管理サーバ２１０は、仮想マシンを停止するためにハイパーバイザを開始する「ＶＭ停止動作」を実行する。ステップ３０５では、管理サーバ２１０は、指定されたボリュームからＬＵＮを付与取消するために「ＶＯＬ付与取消動作」を実行する。ＬＵＮは、ホスト割り当てポート２８２上にあると想定される。ステップ３０６では、管理サーバ２１０は、指定されたボリュームにＬＵＮをアタッチするための「ＬＵＮへのＶＯＬアタッチ動作」を実行する。ＬＵＮは、ホスト未割り当てポート２８１上にある。
【００２７】
００４１    ＶＭを展開する図４では、ステップ３０７において管理サーバ２１０は、ホスト未割り当てポート２８１上のＬＵＮからＶＯＬを付与取消するための「ＬＵＮからのＶＯＬ付与取消動作」を実行する。ステップ３０８では、管理サーバ２１０は、ホスト割り当てポート２８２上のＬＵＮにＶＯＬをアタッチするための「ＬＵＮへのＶＯＬアタッチ動作」を実行する。ステップ３０９では、管理サーバ２１０は、ＬＵＮ上のＶＭをランすることをハイパーバーザに要求するＶＭを展開するためのＶＭ展開動作を実行する。
【００２８】
００４２    図５は、実行済み計画のリストの詳細を提供する実行済み計画テーブルの例を示す。このテーブルは、ジョブＩＤ５０１、計画５０２、ＶＭの数５０３、及びＶＭ  ＩＤ５０４の欄を有する。例えば、ユーザは、ジョブＩＤ＃１でＶＭ作成計画を実行する。ユーザは、ＶＭの数を１００と指定する。ＶＭ  ＩＤは、計画実行の後で戻される。別の例は、ＶＭを記憶するジョブＩＤ＃３である。ユーザは、ＶＭの数を３とし、ターゲットＶＭ ＩＤを１、４、６として、ＶＭの記憶を実行する。
【００２９】
００４３    図６は、各Ｉ／Ｆへの記憶操作のための図２のセレクタ２１３上のキューテーブルの一例を示す。この例は、ＬＵＮキューについてのものである。このテーブルは、キュー項目番号６０１、計画のジョブ番号６０２、記憶操作６０３、及び記憶操作のためのパラメタ６０４の欄を有する。キューは、先入れ先出し方式（ＦＩＦＯ）である。例えば、キュー６０１の項目＃１は、昇順の項目の逐次実行によって最初に実行される。バッチスタイルの実行では、セレクタ２１３は、一組のキュー項目を選択する。例えば、セレクタ２１３は、キュー上のキュー項目番号１〜３を選択し、それらをすべて同時に実行する。同時に実行するキュー項目番号の数を指定し得る。
【００３０】
００４４    図７は、図２のＳＶＰ１５０上のバッチ記憶操作１５１のためのバッチテーブルの一例である。バッチテーブルは、キュー項目番号７０１、記憶操作７０２、及び記憶操作のためのパラメタ７０３の欄を有する。管理サーバ２１０からのバッチ要求に基づいて、ＳＶＰ１５０は、バッチで記憶操作を実行する。
【００３１】
００４５    図８は、図２のＭＰ１６０上のキュー記憶操作のための操作キューテーブルの一例を示す。操作キューテーブルは、キュー項目番号８０１、記憶操作８０２、及び記憶操作のためのパラメタ８０３の欄を有する。ＭＰ１６０上では、記憶操作のプロセスは、構造テーブル１７１上で直接変更される。従って、ＬＵＮ操作は、管理サーバ２１０からの各Ｉ／Ｏ操作に従ってストレージサブシステム２４０で実行される。さらに、ストレージサブシステム２４０は、管理サーバ２１０を含むいくつかのアプリケーションから記憶操作を受信する。それらはこのキューの中にある。キューが一杯である場合は、ストレージサブシステム２４０は、プロセスの実行速度を下げる。ＭＰ１６０の状態を確認するために、現在のキュー長８０４及び最大キュー長８０５が提供される。現在のキュー長は、ＭＰの処理速度によって定義され、最大キュー長は、ＭＰ１６０上のメモリサイズによって定義される。
【００３２】
００４６    図９は、ストレージサブシステム２４０上の構造テーブル１７１の一例を示す。リストは、特にボリューム（ＶＯＬ）対ＬＵのマッピングを示す。構造テーブル１７１は、ボリューム番号９０１、ポート番号９０２、及びＬＵＮ９０３の欄を有する。ポート番号は、ワールドワイドネーム（ＷＷＮ）に対応付けられる。本実施形態では、ホスト割り当てポートは、ポート＃０であり、ホスト未割り当てポートは、ポート＃１である。他の番号を使用することができる。構造テーブル１７１は、ＭＰ１６０及びＳＶＰ１５０によって修正される。従って、構造テーブル１７１用のロックがある。ロックは、プロセッサスレッドによってポートフィールド及びＬＵフィールドに対応付けられた数個のＶＯＬ記録についてロックを行う範囲ロックでもよく、又は構造テーブル１７１を保護するための、構造テーブル全体のロックを行う全体ロックでもよい。本実施形態は、プールテーブル（当技術分野では周知であるため、この詳細については記述しない）の使用を含む。このＶＯＬ対ＬＵのマッピングに基づいて、ＭＰ１６０は、ポート上のＬＵを介して適切なボリュームに対する読み取り／書き込み操作を処理する。このような操作のアクセスは、当技術分野では周知であるため、詳細な記述は行わない。
【００３３】
００４７    図１０は、ＭＰ１６０又はＳＶＰ１５０が構造テーブル１７１を修正する方法を示す流れ図の例を示す。ＭＰの場合を最初に説明する。上術のように、ＭＰ１６０は、図８の最後のエントリに基づいてメモリ１７０の構造テーブル１７１を直接修正する。操作の前に、ＭＰ１６０は、メモリ１７０の操作キューテーブルの最後のエントリをロックし、次に値を修正する。図１０のＬＵＮを付与する（ａ）の場合、ＭＰ１６０は、構造テーブル上のターゲットボリュームのためのＬＵＮを追加する。ＬＵＮを付与取消する（ｂ）の場合、ＭＰ１６０は、構造テーブル上のターゲットボリュームのためのＬＵＮを削除する。ボリュームを作成する（ｃ）の場合、ＭＰ１６０は、テーブル上のＬＵＮ番号なしで新しいボリューム番号を作成する。ボリュームを削除する（ｄ）の場合、ＭＰ１６０は、構造テーブル上のボリューム番号を削除する。ＳＶＰの場合、上術のように、ＳＶＰ１５０は、ロックを行い、構造テーブル１７１の一部又は全てをロードし、これを修正し、そしてメモリ１７０にロードする。修正は、（ａ）〜（ｄ）の場合のＭＰの場合と同じようにして実行される。
【００３４】
００４８    図１１は、セレクタ２１３がプロバイダ２１４、２１５を選択する方法を示す流れ図の一例を示す。基本シーケンスは、セレクタ２１３が各プロバイダの状態を収集し、次にプロバイダを選択するということである。ステップ１１０１では、セレクタ２１３は、プロバイダの状態情報に関連して現在のシステム状態をチェックする。プロバイダの状態情報に基づいて、セレクタ２１３は、Ｉ／Ｆ１用の切片（ｃ）を選択する。選択は、状態１２０１及び切片１２０２の欄を有する図１２（ａ）の切片テーブルで示される。ノーマルの状態では、切片はＣ２である。内部負荷構造テーブル上で（「リフレッシュ」という（メモリ１７０の構造テーブル１７１をＳＶＰ１５０の構成１５２としてアップロードしてから、操作を設定した後でダウンロードする））、切片はｃ１になる。ＳＶＰ１５０がＳＶＰ上の構成１５２を修正しているとき（「更新」という（メモリ１７０からアップロードする必要はないが、更新のためにメモリ１７０にダウンロードする必要のみある）、切片はｃ３に下がる。ストレージ状態を取得するために、ストレージサブシステム２４０上のＳＶＰ１５０は、ＲＭＩなどのそのフォーマットを使って照会命令を提供し、次に状態の結果（ノーマル、リフレッシュ、又は更新）を戻す。選択は、ＡＰＩの行動を使用し得る。例えば、ＳＶＰ１５０は、記憶操作の実行の後で、警告をリフレッシングとして戻す。次に、セレクタ２１３は、切片を「リフレッシュ」（ｃ１）に変更する。あるいは、ＳＶＰ１５０は、予想時間よりも速く結果を戻す。次に、セレクタ２１３は、切片を行動として「更新」（ｃ３）に変更する。ＳＶＰの状態を見つける利点は、管理ソフトウェアが緊密な統合を必要としないことである。
【００３５】
００４９    ステップ１１０２では、セレクタ２１３は、プロバイダの状態情報に関する現在のシステム状態をチェックする。プロバイダの状態情報に基づいて、セレクタ２１３は、Ｉ／Ｆ２用の傾き（ａ）を選択する。選択は、図１２（ｂ）の傾きテーブルに示されており、このテーブルは、キューの数１２０５及び傾き１２０６の欄を有する。ＭＰ１６０（１２０５）におけるキュー長の数に基づいて、ＭＰ１６０は、傾き（１２０６）を選択する。ストレージ状態を取得するために、ストレージサブシステム２４０上のＳＶＰ１５０は、自身のＡＰＩを用いて照会命令を提供した後、キュー長についての状態の結果を戻す。キューは、ＭＰ１６０への照会なしに、プロバイダ２１５上に配置されてもよい。この場合、キュー長の管理は、ストレージサブシステムの管理と比べて正確ではない。他方、ＭＰの条件を見つける利点は、緊密な統合を必要とせず、かつＭＰ１６０のオーバーヘッドが低いことである。
【００３６】
００５０    ステップ１１０３では、セレクタ２１３は、２つのインタフェースについて、ＬＵＮの数の関数（xによって示される）としての操作時間に基づき、ＬＵＮ（ｘ）（１２０１）として交点を計算する。図１２（ｃ）は、２つのインタフェース、すなわち、Ｉ／Ｆ１とＩ／Ｆ２の操作特性の交点のサンプル計算を図示するプロットである。この計算とは、ＬＵＮ（ｘ）（１２０１）＝切片（ｃ）（１２０４）／（傾き（ｂ）（１２０３）−傾き（ａ）（１２０２））である。切片（ｃ）を有する傾き（ａ）は、ＳＶＰの操作である。ＬＵの数がｘより小さい場合は、ＩＦ／２が選択され、ＬＵの数がｘより大きい場合は、操作時間を減らすためにＩＦ１が選択される。
【００３７】
００５１    図１２（ｃ）は、Ｉ／Ｆ１用のノーマル傾き（ａ）とＩ／Ｆ２用の待機ゼロ傾き（ｂ）（すなわち空キュー）との間の交点ＬＵＮ（ｘ）を示す。他の交点は、Ｉ／Ｆ１用のリフレッシュ傾き又は更新傾き及びＩ／Ｆ２用の待機最大傾き（すなわちフルキュー）に基づいて決定することができる。図１２（ｃ）に示されるように、５つの他の交点が、それらの他のシナリオについて可能である。図１２（ｃ）では、キュー記憶操作を含むＩ／Ｆ２（キューインタフェース）用のＬＵＮの数がゼロであるときの操作時間はゼロであるが、構成１５２のアップロード及びダウンロードのオーバーヘッドにより、バッチ記憶操作を含むＩ／Ｆ１（バッチインタフェース）用のＬＵＮの数がゼロであるときの操作時間はゼロではない。
【００３８】
００５２    ステップ１１０４では、セレクタ２１３は、操作のための現在のキューを評価する。ＬＵＮの数が交点ＬＵＮ（ｘ）よりも多い場合は、セレクタ２１３は、ステップ１１０５に進む。そうでなければ、セレクタ２１３は、ステップ１１０６に進む。ステップ１１０５では、セレクタ２１３は、プロバイダ１の記憶操作をバッチプロセスとして実行することを要求する。ステップ１１０６では、セレクタ２１３は、プロバイダ２の記憶操作を逐次プロセスとして実行することを要求する。
【００３９】
００５３    図１１及び１２に従って、セレクタ２１３は、プロバイダ２１４、２１５の各々の状態に関する情報を収集する。各プロバイダの状態に基づいて、各プロバイダのためのいくつかの操作ユニットの関数（function）として操作時間の操作特性を決定する（この例では操作ユニットはＬＵＮである）。プロバイダの操作特性を比較する。処理されるべき受信された記憶操作の所定数の操作ユニットについて、所定数の操作ユニットのための操作時間が最小である１つのプロバイダを複数のプロバイダから選択する。そして、対応するプロセッサ上の特定されたインタフェースを介して、受信された記憶操作を実行するために使用される選択されたプロバイダに基づいてインタフェースを特定する。プロバイダは、ストレージプロセッサ（ＭＰ）１６０上で記憶操作を実行するように構成されたキュープロバイダ、及びサービスプロセッサ（ＳＶＰ）１５０上で記憶操作を実行するように構成されたバッチプロバイダを含む。キュープロバイダの状態は、ゼロキューモードと最大キューモードの間の記憶操作のためのキューのサイズに依存する。操作時間は、キューのサイズとともに増え、最大キューモードは最大操作時間を要し、ゼロキューモードは最小操作時間を要する。
【００４０】
００５４    サブシステム状態情報は、ストレージサブシステム２４０に位置し、Ｉ／Ｆ（インタフェース）を使用して情報を取得することが可能である。この利点は、管理ソフトウェアがシステムを正確に制御することができることである。図１２の例では、２つのプロバイダがある。他の例では、特性が異なる場合は、２つよりも多いプロバイダが存在し得る。その場合、ステップ１１０１及び／又はステップ１１０２は、状態チェックを行うとともに、その定義又は特性に基づいて切片又は傾きを選択するように拡大される。さらに、図１２（ｃ）は、わかりやすくするために複数のプロットにおける直線を示している。Ｉ／Ｆ１とＩ／Ｆ２の間の交点の決定は、直線についてと曲線についてとでは概念的に同じである。
【００４１】
００５５    当然のことながら、図１及び図２に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のＩ／Ｏ装置（例えば、ＣＤ及びＤＶＤドライブ、フロッピー（登録商標）ディスクドライブ、ハードドライブ等）も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、無線ネットワーク、ストレージエリアネットワーク等を含む。
【００４２】
００５６    説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図、構成図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【００４３】
００５７    当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置（ハードウェア）を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体（ソフトウェア）上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び／又は暗号化形式で命令を媒体に記憶することができる。
【００４４】
００５８    上記により、本発明が、記憶操作のためのキュー及び作業負荷によってインタフェースを選択するための方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。
【図１】
2012146280.tif 000003
【図２】
2012146280.tif 000004
【図３】
2012146280.tif 000005
【図４】
2012146280.tif 000006
【図５】
2012146280.tif 000007
【図６】
2012146280.tif 000008
【図７】
2012146280.tif 000009
【図８】
2012146280.tif 000010
【図９】
2012146280.tif 000011
【図１０】
2012146280.tif 000012
【図１１】
2012146280.tif 000013
【図１２】
2012146280.tif 000014
【外国語明細書】
2012146280000001.pdf