(57)【要約】【課題】ストレージ装置のストレージポートでQueue Fullが発生することを抑制できるストレージ仮想化装置を提供する。【解決手段】ストレージ仮想化装置１０は、他のストレージ仮想化装置１０との情報交換により、各ストレージポート５１内の処理未完コマンド総数を管理し、サーバ６０からのアクセス要求の受信時に、アクセス対象ストレージポート５１に関する処理未完コマンド総数が規定数を超えていなかった場合には、アクセス対象ストレージポート５１に対するコマンドの発行処理を含むアクセス要求応答処理をその完了を遅らせない形で実行し、処理未完コマンド総数が規定数を超えている場合には、アクセス要求応答処理をその完了を遅らせる形で実行する。【選択図】図３
2014010476.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージ装置の複数のストレージポートに接続されるストレージ仮想化装置であって、
前記複数のストレージポートのそれぞれについて、各ストレージポートを有する前記
ストレージ装置による処理が未完了のコマンドの数である処理未完コマンド数を記憶する第１記憶部と、
前記複数のストレージポートのいずれかに接続されている他のストレージ仮想化装置から、前記他のストレージ仮想化装置において計数された各ストレージポートの処理未完コマンド数を取得し、ストレージポート毎に、前記他のストレージ仮想化装置から取得した処理未完コマンド数及び前記第1記憶部から取得した処理未完コマンド数の総和である処
理未完コマンド総数を第２記憶部に記憶させる制御部と、
前記複数のストレージ装置のいずれかに対するアクセス要求を受信したときに、受信したアクセス要求に対応するストレージポートの処理未完コマンド総数を前記第２記憶部から取得し、取得した処理未完コマンド総数が規定数を超えている場合、当該アクセス要求に対するアクセス要求応答処理の完了タイミングを遅延させるアクセス要求処理部と、
を備えることを特徴とするストレージ仮想化装置。
【請求項２】
前記アクセス要求応答部は、受信したアクセス要求に応じたストレージポートに関する前記処理未完コマンド総数が前記規定数を超えている場合、当該ストレージポートに対するコマンドの発行処理を行った後、当該コマンドに対する応答の前記サーバへの返送を、前記処理未完コマンド総数が第２規定数以下となるまで遅らせる
ことを特徴とする請求項１記載のストレージ仮想化装置。
【請求項３】
前記アクセス要求応答部は、受信したアクセス要求に応じたストレージポートに関する前記処理未完コマンド総数が前記規定数を超えていた場合、当該処理未完コマンド総数が第２規定数以下となるまで、受信したアクセス要求についてのアクセス要求応答処理の開始を遅らせる
ことを特徴とする請求項１記載のストレージ仮想化装置。
【請求項４】
ライト要求に対して前記アクセス要求応答部が行う前記アクセス要求応答処理が、当該ライト要求をメモリへ記憶し、当該ライト要求に対する応答完了を前記サーバへ通知してから、当該ライト要求に応じたストレージポートに対してコマンドを発行する処理である
ことを特徴とする請求項１から３のいずれか一項に記載のストレージ仮想化装置。
【請求項５】
複数のストレージ装置を１つ以上の仮想ボリュームとして機能させるためのストレージ仮想化方法であって、
前記複数のストレージ装置の複数のストレージポートと接続された第１のストレージ仮想化装置が、
前記複数のストレージポートのそれぞれについて、各ストレージポートを有する前記
ストレージ装置による処理が未完了のコマンドの数である処理未完コマンド数を第１記憶部に記憶し、
前記複数のストレージポートのいずれかに接続されている他のストレージ仮想化装置から、前記他のストレージ仮想化装置において計数された各ストレージポートの処理未完コマンド数を取得し、ストレージポート毎に、前記他のストレージ仮想化装置から取得した処理未完コマンド数及び前記第1記憶部から取得した処理未完コマンド数の総和である処
理未完コマンド総数を第２記憶部に記憶し、
前記複数のストレージ装置のいずれかに対するアクセス要求を受信したときに、受信したアクセス要求に対応するストレージポートの処理未完コマンド総数を前記第２記憶部から取得し、取得した処理未完コマンド総数が規定数を超えている場合、当該アクセス要求
に対するアクセス要求応答処理の完了タイミングを遅延させる
ことを特徴とするストレージ仮想化方法。
【請求項６】
複数のストレージ装置の複数のストレージポートに接続されたコンピュータに、
前記複数のストレージポートのそれぞれについて、各ストレージポートを有する前記ストレージ装置による処理が未完了のコマンドの数である処理未完コマンド数を第１記憶部に記憶させ、
前記複数のストレージポートのいずれかに接続されている他のストレージ仮想化装置から、前記他のストレージ仮想化装置において計数された各ストレージポートの処理未完コマンド数を取得させ、ストレージポート毎に、前記他のストレージ仮想化装置から取得した処理未完コマンド数及び前記第1記憶部から取得した処理未完コマンド数の総和である
処理未完コマンド総数を第２記憶部に記憶させ、
前記複数のストレージ装置のいずれかに対するアクセス要求を受信したときに、受信したアクセス要求に対応するストレージポートの処理未完コマンド総数を前記第２記憶部から取得させ、取得した処理未完コマンド総数が規定数を超えている場合、当該アクセス要求に対するアクセス要求応答処理の完了タイミングを遅延させる
ことを特徴とするストレージ仮想化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のストレージ装置を仮想化するためのストレージ仮想化装置、ストレージ仮想化方法及びストレージ仮想化プログラムに関する。
【背景技術】
【０００２】
近年、殆どの作業（業務）がコンピュータを利用して行われるようになったため、データを保存しておくために使用されるストレージ装置の台数も増大している。そして、多数のストレージ装置を管理することは大変なことなので、システム管理者の負担の軽減等を目的として、ストレージを仮想化することが行われている。
【０００３】
ストレージの仮想化は、図１に模式的に示したように、複数のストレージ装置と複数のサーバとを、複数のストレージ仮想化装置（図示略）からなるストレージ仮想化装置クラスタを介して接続することにより行われる。
【０００４】
ストレージ仮想化装置は、複数のストレージ装置内の全論理ユニットを、仮想的な１つのストレージプールとして統合的に管理し、そのストレージプールより、サーバからは１つのストレージ装置に見える任意サイズの仮想ボリュームを切り出せる装置である。
【０００５】
ストレージ仮想化装置は、或る仮想モジュールに対するアクセス要求をサーバから受信した場合、内部に設定されているマッピング情報を参照することにより、受信したアクセス要求に応じたコマンドの発行先とすべきストレージポートを特定する。そして、ストレージ仮想化装置は、特定したストレージポートに対してコマンドを発行する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２９５８６０号公報
【特許文献２】特開２００５−３２６９３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ストレージ装置のストレージポートは、或る程度の数のコマンドをキューイングすることができる。ただし、大量のコマンドが連続的に入力された結果としてストレージポートでQueue Fullが発生した場合（ストレージポート内のコマンドキューが満杯となった場合）、ストレージポートはコマンドを受け付けない状態となる。
【０００８】
ストレージ仮想化装置と接続されるストレージ装置（図１参照）は、通常、冗長化された２つのストレージポートを有している。従って、一方のストレージポートでQueue Fullが発生しても、他方のストレージポートを利用することにより、ストレージ装置内の論理ユニットにアクセスすることが出来る。ただし、或るストレージポートでQueue Fullが発生している場合、それまで２つのストレージポートで受信していたコマンドをQueue Fullが発生していない方のストレージポートのみで受信することになるため、当該ストレージポートにQueue Fullが発生し易くなる。
【０００９】
そして、或るストレージ装置の全てのストレージポートでQueue Fullが発生した場合、そのストレージ装置（内の論理ユニット）が関係する全ての論理ボリュームが利用できなくなる。例えば、図１におけるストレージ装置＃１の２つのストレージポートでQueue Fu
llが発生し、ストレージ装置＃１が関係する論理ボリュームが２つ存在していた場合には、図２に模式的に示したように、それら２つの論理ボリュームが利用できなくなる。
【００１０】
従って、ストレージ仮想化装置を用いたシステム（図１）には、いずれのストレージ装置のいずれのストレージポートでもQueue Fullが発生しないことが望まれる。しかしながら、いずれのストレージポートでもQueue Fullが発生しないようにストレージ仮想化装置を設計／運用することは極めて困難であるため、そのような設計／運用が出来ていないのが現状である。
【００１１】
開示の技術の課題は、ストレージ装置のストレージポートでQueue Fullが発生することを抑制できるストレージ仮想化装置及びストレージ仮想化方法と、コンピュータをストレージ装置のストレージポートでQueue Fullが発生することを抑制できる装置として機能させること出来るストレージ仮想化とを提供することにある。
【課題を解決するための手段】
【００１２】
開示の技術の一態様のストレージ仮想化装置は、
複数のストレージ装置の複数のストレージポートに接続されるストレージ仮想化装置であって、
前記複数のストレージポートのそれぞれについて、各ストレージポートを有する前記
ストレージ装置による処理が未完了のコマンドの数である処理未完コマンド数を記憶する第１記憶部と、
前記複数のストレージポートのいずれかに接続されている他のストレージ仮想化装置から、前記他のストレージ仮想化装置において計数された各ストレージポートの処理未完コマンド数を取得し、ストレージポート毎に、前記他のストレージ仮想化装置から取得した処理未完コマンド数及び前記第1記憶部から取得した処理未完コマンド数の総和である処
理未完コマンド総数を第２記憶部に記憶させる制御部と、
前記複数のストレージ装置のいずれかに対するアクセス要求を受信したときに、受信したアクセス要求に対応するストレージポートの処理未完コマンド総数を前記第２記憶部から取得し、取得した処理未完コマンド総数が規定数を超えている場合、当該アクセス要求に対するアクセス要求応答処理の完了タイミングを遅延させるアクセス要求処理部と、
を備える。
【００１３】
また、開示の技術の一態様のストレージ仮想化方法は、複数のストレージ装置を１つ以上の仮想ボリュームとして機能させるためのストレージ仮想化方法であって、
複数のストレージ装置を１つ以上の仮想ボリュームとして機能させるためのストレージ仮想化方法であって、
前記複数のストレージ装置の複数のストレージポートと接続された第１のストレージ仮想化装置が、
前記複数のストレージポートのそれぞれについて、各ストレージポートを有する前記
ストレージ装置による処理が未完了のコマンドの数である処理未完コマンド数を第１記憶部に記憶し、
前記複数のストレージポートのいずれかに接続されている他のストレージ仮想化装置から、前記他のストレージ仮想化装置において計数された各ストレージポートの処理未完コマンド数を取得し、ストレージポート毎に、前記他のストレージ仮想化装置から取得した処理未完コマンド数及び前記第1記憶部から取得した処理未完コマンド数の総和である処
理未完コマンド総数を第２記憶部に記憶し、
前記複数のストレージ装置のいずれかに対するアクセス要求を受信したときに、受信したアクセス要求に対応するストレージポートの処理未完コマンド総数を前記第２記憶部から取得し、取得した処理未完コマンド総数が規定数を超えている場合、当該アクセス要求に対するアクセス要求応答処理の完了タイミングを遅延させる。
前記複数のストレージ装置の複数のストレージポートと接続された第１のストレージ仮想化装置が、
前記複数のストレージポートのそれぞれについて、そのストレージポートに対して自ストレージ仮想化装置から発行されたが、そのストレージポートを有する前記ストレージ装置による処理が未完了のコマンドの数である処理未完コマンド数を計数し、
前記複数のストレージポートのいずれかに接続されている他の各ストレージ仮想化装置から、周期的に、各ストレージ仮想化装置が各ストレージポートについて計数した前記処理未完コマンド数を取得して、ストレージポート毎に、他の各ストレージ仮想化装置から取得した処理未完コマンド数及び自身が計数している処理未完コマンド数の総和である処理未完コマンド総数を算出して管理し、
サーバからのアクセス要求を受信したときに、当該アクセス要求に応じたストレージポートに関する前記処理未完コマンド総数が規定数を超えていなかった場合には、当該ストレージポートに対するコマンドの発行処理を含むアクセス要求応答処理をその完了を遅らせない形で実行し、当該処理未完コマンド総数が前記規定数を超えている場合には、前記アクセス要求応答処理をその完了を遅らせる形で実行する。
【００１４】
また、開示の技術の一態様のストレージ仮想化プログラムは、
複数のストレージ装置の複数のストレージポートに接続されたコンピュータに、
前記複数のストレージポートのそれぞれについて、各ストレージポートを有する前記ストレージ装置による処理が未完了のコマンドの数である処理未完コマンド数を第１記憶部に記憶させ、
前記複数のストレージポートのいずれかに接続されている他のストレージ仮想化装置から、前記他のストレージ仮想化装置において計数された各ストレージポートの処理未完コマンド数を取得させ、ストレージポート毎に、前記他のストレージ仮想化装置から取得した処理未完コマンド数及び前記第1記憶部から取得した処理未完コマンド数の総和である
処理未完コマンド総数を第２記憶部に記憶させ、
前記複数のストレージ装置のいずれかに対するアクセス要求を受信したときに、受信したアクセス要求に対応するストレージポートの処理未完コマンド総数を前記第２記憶部から取得させ、取得した処理未完コマンド総数が規定数を超えている場合、当該アクセス要求に対するアクセス要求応答処理の完了タイミングを遅延させる。
【発明の効果】
【００１５】
開示の技術を用いてストレージを仮想化すれば、ストレージ装置のストレージポートでQueue Fullが発生することを抑制できる。
【図面の簡単な説明】
【００１６】
【図１】図１は、ストレージを仮想化したシステムの説明図である。
【図２】図２は、ストレージを仮想化したシステムで生ずる問題の説明図である。
【図３】図３は、第１実施形態に係るストレージ仮想化装置の構成及び使用形態の説明図である。
【図４】図４は、第１実施形態に係るストレージ仮想化装置の構成図である。
【図５】図５は、第１実施形態に係るストレージ仮想化装置のクラスタ制御部が実行する情報交換処理の流れ図である。
【図６】図６は、第１実施形態に係るストレージ仮想化装置の仮想ボリューム制御部が実行する仮想ボリューム制御処理の流れ図である。
【図７】図７は、第２実施形態に係るストレージ仮想化装置の機能ブロック図である。
【図８】図８は、第２実施形態に係るストレージ仮想化装置の仮想ボリューム制御部が実行するライト要求応答処理の流れ図である。
【図９】図９は、第３実施形態に係るストレージ仮想化装置の機能ブロック図である。
【図１０】図１０は、第３実施形態に係るストレージ仮想化装置の仮想ボリューム制御部が実行するライト要求応答処理の流れ図である。
【図１１】図１１は、第３実施形態に係るストレージ仮想化装置の機能の説明図である。
【発明を実施するための形態】
【００１７】
以下、本発明の、幾つかの実施の形態について、図面を参照して詳細に説明する。
【００１８】
《第１実施形態》
まず、図３及び図４を用いて、第１実施形態に係るストレージ仮想化装置１０の用途及び構成を説明する。
【００１９】
図３に示してあるように、本実施形態に係るストレージ仮想化装置１０は、複数のサーバ８０と複数のストレージ装置５０との間を接続するストレージ仮想化装置クラスタ１の構成要素として使用される装置である。
【００２０】
ストレージ仮想化装置１０は、自身に接続された複数のストレージ装置５０を、１つ以上の仮想ボリュームとして機能させる装置である。図３に示してあるように、ストレージ仮想化装置１０は、クラスタ制御部１１、記憶部１２及び仮想ボリューム制御部１３を備える。また、ストレージ仮想化装置１０は、他のストレージ仮想化装置１０との間の通信用のポート１５（例えば、ＬＡＮポート）、サーバ８０との間の通信用のポート１６（例えば、ファイバーチャネルポート）を備える。さらに、ストレージ仮想化装置１０は、複数のストレージ装置５０の複数のストレージポート５１と接続される２つのポート１７（例えば、ＳＡＳ（Serial Attached SCSI）ポート）を備える。
【００２１】
尚、図３には、複数のディスクドライブと、ストレージポート５１を有する２つのコントローラモジュール（ＣＭ）とを備えたストレージ装置５０を示してあるが、ストレージ仮想化装置１０は、ストレージポート５１を１つしか有さないストレージ装置５０（図示略）にも接続できる。
【００２２】
また、本実施形態に係るストレージ仮想化装置１０は、実際には、図４に示したように、一般的な構成を有するコンピュータ２０のＨＤＤ（Hard Disk Drive）２３に、ＣＤ−
ＲＯＭ等の可搬型記録媒体（図示略）からストレージ仮想化プログラム３０をインストールした装置となっている。ストレージ仮想化装置１０のクラスタ制御部１１及び仮想ボリューム制御部１３（図３）は、いずれも、ストレージ仮想化プログラム３０に従って特定の処理を実行しているＣＰＵ（Central Processing Unit）２１に相当するものである。
また、記憶部１２は、このコンピュータ２０のＨＤＤ２３及びＲＡＭ（Randum Access Memory）２２に相当するものであり、ポート１５〜１７は、コンピュータ２０が備える各種インタフェース回路（図４における“ＩＦ”）に相当するものである。
【００２３】
以下、本実施形態に係るストレージ仮想化装置１０の構成及び動作をさらに具体的に説明する。
【００２４】
ストレージ仮想化装置１０（図３）には、コマンド数差を計数しながら、或るストレージポート５１に対して多数のコマンドを発行し、当該ストレージポート５１が、コマンドを受け付けられなくなった時点（Queue Fullとなった時点）のコマンド数差（以下、キューイング可能コマンド数と表記する）を出力する機能が付与されている。尚、コマンド数差とは、発行したコマンド数と応答が得られたコマンド数との間の差（“発行したコマンド数”−“応答が得られたコマンド数”）のことである。
【００２５】
ストレージ仮想化装置クラスタ１の運用開始時（セットアップ時）には、上記機能を利用して、各ストレージ仮想化装置１０と接続される各ストレージポート５１についてのキューイング可能コマンド数が計測される。その後、“キューイング可能コマンド数＞上閾値＞下閾値”が成立する上閾値と下閾値とがストレージポート５１毎に決定され、各ストレージポート５１について決定された上閾値及び下閾値が、各ストレージ仮想化装置１０の記憶部１２内に登録される。
【００２６】
尚、上閾値及び下閾値の決定時には、キューイング可能コマンド数のみならず、後述するステップＳ１０２の処理（図５）の実行周期やサーバ８０からのアクセス要求の頻度が考慮される。また、キューイング可能コマンド数を既に計測しているストレージポート５１と仕様が同一であることが分かっている各ストレージポート５１については、キューイング可能コマンド数の計測が省略される。そして、そのような各ストレージポート５１についての上閾値及び下閾値としては、他の同仕様のストレージポート５１についてのキューイング可能コマンド数の計測結果から定めた上閾値及び下閾値が登録される。
【００２７】
ストレージ仮想化装置クラスタ１の運用開始時には、マスタ仮想化装置（詳細は後述）として動作させるストレージ仮想化装置１０を設定（指定）する作業や、仮想ボリュームを登録する作業（各仮想ボリュームと実際のディスクドライブとの対応関係を示すマッピング情報を各ストレージ仮想化装置１０の記憶部１２に登録する作業）も行われる。
【００２８】
上記のような各種作業（以下、セットアップ作業と表記する）が完了すると、ストレージ仮想化装置１０の各部が実際に機能する状態となる。
【００２９】
まず、クラスタ制御部１１の動作を説明する。尚、以下の説明において、マスタ仮想化装置とは、マスタ仮想化装置として動作している（マスタ仮想化装置として動作すべきことが設定されている）ストレージ仮想化装置１０のことである。また、スレーブ仮想化装置とは、マスタ仮想化装置ではないストレージ仮想化装置１０のことである。
【００３０】
セットアップ作業が完了すると、マスタ仮想化装置内のクラスタ制御部１１は、図５に示した手順の情報交換処理を開始する。
【００３１】
すなわち、この情報交換処理を開始した、マスタ仮想化装置内のクラスタ制御部１１は、まず、所定のコマンド数差提供要求の送信により各ストレージポート５１に関するコマンド数差を各スレーブ仮想装置（他の各ストレージ仮想化装置１０）から取得する（ステップＳ１０１）。
【００３２】
各ストレージポート５１に関するコマンド数差（発行したコマンド数と応答が得られたコマンド数との間の差）の更新手順については後述するが、各コマンド数差は、各ストレージ仮想化装置１０内の記憶部１２に記憶されている。また、コマンド数差提供要求は、スレーブ仮想化装置内のクラスタ制御部１１が受信する要求となっており、スレーブ仮想化装置内のクラスタ制御部１１は、コマンド数差提供要求を受信した場合、記憶部１２から各ストレージポート５１に関するコマンド数差を読み出してマスタ仮想化装置に返送する。
【００３３】
ステップＳ１０１の処理を終えたクラスタ制御部１１は、ストレージポート５１毎に、各スレーブ仮想化装置から取得した各コマンド数差及び自身が記憶部１２内の情報として管理しているコマンド数差の総和である処理未完コマンド総数を算出する（ステップＳ１０２）。すなわち、マスタ仮想化装置内のクラスタ制御部１１は、『或るストレージポート５１にいずれかのストレージ仮想化装置１０から入力されたが、ストレージ装置５０内
での処理が完了していないコマンドの数』に相当する処理未完コマンド総数を、ストレージポート５１毎に、算出する。
【００３４】
クラスタ制御部１１は、ステップＳ１０２にて、算出した各ストレージポート５１に関する処理未完コマンド総数で記憶部１２内の各ストレージポート５１に関する処理未完コマンド総数を書き換える処理も行う。
【００３５】
さらに、クラスタ制御部１１は、ステップＳ１０２にて、算出した各処理未完コマンド総数を、他の各ストレージ仮想化装置１０（スレーブ仮想化装置）に配布する処理も行う。そして、各種処理未完コマンド総数がマスタ仮想化装置から配布された各スレーブ仮想化装置内では、クラスタ制御部１１により、配布された各ストレージポート５１に関する処理未完コマンド総数で、記憶部１２内の対応する処理未完コマンド総数を書き換える処理が行われる。
【００３６】
ステップＳ１０２の処理を終えたクラスタ制御部１１は、規定時間の経過を待機（ステップＳ１０３）してから、再びステップＳ１０１以降の処理を実行する。
【００３７】
次に、仮想ボリューム制御部１３の動作を説明する。
【００３８】
セットアップ作業が完了すると、各ストレージ仮想化装置１０（マスタ／スレーブ仮想化装置）内の仮想ボリューム制御部１３は、仮想ボリュームに対するアクセス要求を或るサーバ８０から受信した際に、図６に示した手順の仮想ボリューム制御処理を開始する状態となる。
【００３９】
すなわち、アクセス要求をサーバ８０から受信した仮想ボリューム制御部１３は、まず、マッピング情報を参照することにより、当該アクセス要求に応答するためのコマンドを発行するストレージポート５１（以下、アクセス対象ポートと表記する）を特定する（ステップＳ２０１）。そして、仮想ボリューム制御部１３は、アクセス対象ポートに関するものとして記憶部１２に記憶されている処理未完コマンド総数と上閾値とを比較する（ステップＳ２０１）。
【００４０】
アクセス対象ポートに関する処理未完コマンド総数がアクセス対象ポートに関する上閾値以下であった場合（ステップＳ２０１；ＮＯ）、仮想ボリューム制御部１３は、アクセス対象ポートをリザーブすると共に、他の各ストレージ仮想化装置１０にリザーブ通知を送信する（ステップＳ２０３）。
【００４１】
次いで、仮想ボリューム制御部１３は、受信したアクセス要求で指定されている内容のリード／ライト処理をストレージ装置５０（内のＣＭ）に行わせるためのリード／ライトコマンドを、アクセス対象ポートに対して発行する（ステップＳ２０４）。
【００４２】
また、仮想ボリューム制御部１３は、記憶部１２に記憶されている、アクセス対象ポートに関するコマンド数差を更新する処理（ステップＳ２０５）を行う。既に説明したように、コマンド数差は、発行したコマンド数と応答が得られたコマンド数との間の差（“発行したコマンド数”−“応答が得られたコマンド数”）である。そのため、このステップＳ２０５では、アクセス対象ポートに関するコマンド数差に“１”を加算する処理が行われる。
【００４３】
ステップＳ２０５の処理を終えた仮想ボリューム制御部１３は、アクセス対象ポートからライト／リード処理の完了応答（ライト処理が完了した旨の情報、リード処理により読み出されたデータ）が送信されてくるのを待機する（ステップＳ２０６）。
【００４４】
完了応答を受信した仮想ボリューム制御部１３は、アクセス対象ポートのリザーブを解除すると共に、他の各ストレージ仮想化装置１０にリザーブ解除通知を送信する（ステップＳ２０７）。続くステップＳ２０８にて、仮想ボリューム制御部１３は、アクセス対象ポートに関するコマンド数差を更新する処理（記憶部１２内のアクセス対象ポートに関するコマンド数差から“１”を減ずる処理）を行う。
【００４５】
そして、仮想ボリューム制御部１３は、アクセス要求の送信元サーバ８０に対して、正常応答（ライト処理が完了した旨の情報、リード処理より読み出されたデータ）を返送（ステップＳ２０９）してから、この仮想ボリューム制御処理を終了する。
【００４６】
一方、処理未完コマンド総数が上閾値を超えていた場合（ステップＳ２０１；ＹＥＳ）、仮想ボリューム制御部１３は、アクセス対象ポートに関する処理未完コマンド総数が、アクセス対象ポートに関する下閾値以下の値となるのを待機する（ステップＳ２０２）。
【００４７】
すなわち、仮想ボリューム制御部１３は、アクセス対象ポート内にキューイングされているコマンドの処理が進み、情報交換処理（図５）により、アクセス対象ポートに関する処理未完コマンド総数がアクセス対象ポートに関する下閾値以下の値に書き換えられるのを待機する。
【００４８】
そして、仮想ボリューム制御部１３は、アクセス対象ポートに関する処理未完コマンド総数が、アクセス対象ポートに関する下閾値以下の値となったときに（ステップＳ２０２；ＹＥＳ）、既に説明したステップＳ２０３〜Ｓ２０９の処理を実行してから、この仮想ボリューム制御処理を終了する。
【００４９】
以上、説明したように、本実施形態に係るストレージ仮想化装置１０は、各ストレージポート５１に関するコマンド数差（自身が発行したコマンド数から応答が得られたコマンド数を減じた値）を常時計数している。そして、マスタ仮想化装置は、周期的に、各スレーブ仮想化装置から各ストレージポート５１に関するコマンド数差を取得し、ストレージポート５１毎に、自身が計数したコマンド数差と各スレーブ仮想化装置が計数したコマンド数差の総和である処理未完コマンド総数を算出する。また、マスタ仮想化装置は、算出結果を内部（記憶部１２）に記憶すると共に各スレーブ仮想化装置に配布し、各ストレージポート５１に関する処理未完コマンド総数が配布された各スレーブ仮想化装置は、それらの値を内部（記憶部１２）に記憶する。
【００５０】
また、ストレージ仮想化装置１０（マスタ／スレーブ仮想化装置）は、サーバ８０からのアクセス要求を受信した場合、アクセス対象ポートに関する処理未完コマンド総数と、キューイング可能コマンド数に基づき定められているアクセス対象ポートに関する上閾値とを比較する（図６；ステップＳ２０１）。そして、ストレージ仮想化装置１０は、処理未完コマンド総数が上閾値を超えていた場合（ステップＳ２０１；ＹＥＳ）には、処理未完コマンド総数が下閾値（＜上閾値）以下となるのを待って（ステップＳ２０２；ＮＯ）から、受信したアクセス要求に対する実際の処理（ステップＳ２０３〜Ｓ２０９）を開始する。
【００５１】
要するに、ストレージ仮想化装置クラスタ１内の各ストレージ仮想化装置１０は、複数のストレージポート５１のそれぞれについて、そのストレージポート５１内のキューに残っているコマンド数にほぼ相当する処理未完コマンド総数を保持した状態で動作する。そして、各ストレージ仮想化装置１０は、アクセス対象ポートが、コマンドが集中的に入力されるとQueue Fullが発生しそうな状態にある場合、アクセス対象ポートのキュー内のコマンドがある程度処理されるのを待ってから、アクセス対象ポートに対してコマンドを発
行する。
【００５２】
本実施形態に係るストレージ仮想化装置１０は、以上のように動作するものとなっている。従って、ストレージ仮想化装置１０を用いてストレージを仮想化すれば、ストレージ装置５０のストレージポート５１でQueue Fullが殆ど発生することがないシステムを、簡単に（各ストレージ装置５０の性能等を考慮したシステム設計が不必要な形で）、構築できる。
【００５３】
《第２実施形態》
以下、第２実施形態に係るストレージ仮想化装置の構成及び動作を、上記した第１実施形態に係るストレージ仮想化装置１０と異なる部分を中心に、説明する。
【００５４】
図７に、第２実施形態に係るストレージ仮想化装置１０Ｂの機能ブロック図を示す。尚、ストレージ仮想化装置１０Ｂは、ストレージ仮想化装置１０と同様の形態（図３）で使用されるものである。また、ストレージ仮想化装置１０Ｂも、ストレージ仮想化装置１０と同様に、コンピュータ２０に、ストレージ仮想化プログラム３０（但し、第１実施形態のそれとは内容が異なるもの）をインストールした装置となっている。
【００５５】
図７に示してあるように、ストレージ仮想化装置１０Ｂは、クラスタ制御部１１、記憶部１２及び仮想ボリューム制御部１３Ｂを備える。また、ストレージ仮想化装置１０Ｂは、他のストレージ仮想化装置１０Ｂとの間の通信用のポート１５、サーバ８０（図３参照）との間の通信用のポート１６、複数のストレージ装置５０の複数のストレージポート５１（図３参照）と接続される２つのポート１７を備える。
【００５６】
このストレージ仮想化装置１０Ｂのクラスタ制御部１１、記憶部１２、ポート１５〜１７は、それぞれ、ストレージ仮想化装置１０のクラスタ制御部１１、記憶部１２、ポート１５〜１７と同じものである。ただし、ストレージ仮想化装置１０Ｂの記憶部１２の一部の記憶領域（図４のＲＡＭ２２の一部の記憶領域）は、キャッシュメモリ１２Ｂとして使用されている。
【００５７】
仮想ボリューム制御部１３Ｂは、仮想ボリューム制御部１３に、キャッシュメモリ１２Ｂを利用する機能を付加したユニット（機能ブロック）である。
【００５８】
以下、仮想ボリューム制御部１３Ｂの動作を、リード要求に対する動作とライト要求に対する動作とに分けて、説明する。
【００５９】
・リード要求に対する動作
リード要求を受信した場合、仮想ボリューム制御部１３Ｂは、まず、キャッシュメモリ１２Ｂ上に当該リード要求で読み出しが要求されているデータが存在しているか否かを判断する。
【００６０】
リード要求で読み出しが要求されているデータがキャッシュメモリ１２Ｂ上に存在していた場合、仮想ボリューム制御部１３Ｂは、キャッシュメモリ１２Ｂから当該データを読み出す。そして、仮想ボリューム制御部１３Ｂは、読み出したデータをリード要求の送信元サーバ８０に返送してから、受信したリード要求に対する処理を終了する。
【００６１】
一方、リード要求で読み出しが要求されているデータがキャッシュメモリ１２Ｂ上に存在していなかった場合、仮想ボリューム制御部１３Ｂは、上記した仮想ボリューム制御処理（図６）に、ストレージ装置５０から読み出したデータをキャッシュするステップを加えたものに相当する処理を行う。そして、当該処理を終えた仮想ボリューム制御部１３Ｂ
は、受信したリード要求に対する処理を終了する。
【００６２】
・ライト要求に対する動作
ライト要求を受信した場合、仮想ボリューム制御部１３Ｂは、図８に示した手順のライト要求応答処理を実行する。
【００６３】
すなわち、ライト要求を受信した仮想ボリューム制御部１３Ｂは、まず、受信したライト要求をキャッシュメモリ１２Ｂにキャッシュする（ステップＳ３０１）。
【００６４】
続くステップＳ３０２にて、仮想ボリューム制御部１３Ｂは、既に説明したステップＳ２０１の処理（図６）と同内容の処理（判断）を行う。そして、仮想ボリューム制御部１３Ｂは、アクセス対象ポートに関する処理未完コマンド総数がアクセス対象ポートに関する上閾値以下であった場合（ステップＳ３０２；ＮＯ）には、ライト要求の送信元サーバ８０に正常応答（書込完了通知）を返送する（ステップＳ３０４）。
【００６５】
その後、仮想ボリューム制御部１３Ｂは、ステップＳ３０５〜Ｓ３１０にて、それぞれ、既に説明したステップＳ２０３〜Ｓ２０８の処理と同じ処理を行う。そして、ステップＳ３１０の処理を終えた仮想ボリューム制御部１３Ｂは、このライト要求応答処理を終了する。
【００６６】
一方、処理未完コマンド総数が上閾値を超えていた場合（ステップＳ３０２；ＹＥＳ）、仮想ボリューム制御部１３Ｂは、アクセス対象ポートに関する処理未完コマンド総数が、アクセス対象ポートに関する下閾値以下の値となるのを待機する（ステップＳ３０３）。
【００６７】
そして、仮想ボリューム制御部１３Ｂは、アクセス対象ポートに関する処理未完コマンド総数が、アクセス対象ポートに関する下閾値以下の値となったときに（ステップＳ３０２；ＹＥＳ）、ステップＳ３０４以降の処理を実行する。
【００６８】
以上の説明から明らかなように、このストレージ仮想化装置１０Ｂも、仮想ボリューム制御部１３と同様に、アクセス対象ポートに関する処理未完コマンド総数が上閾値を超えていた場合には、当該処理未完コマンド総数が下閾値以下となるのを待ってから、受信したアクセス（リード／ライト）要求に対する実際の処理を開始する装置となっている。従って、ストレージ仮想化装置１０Ｂを用いてストレージを仮想化すれば、ストレージ装置５０のストレージポート５１でQueue Fullが殆ど発生することがないシステムを、簡単に（各ストレージ装置５０の性能等を考慮したシステム設計が不必要な形で）、構築できる。
【００６９】
また、ストレージ仮想化装置１０Ｂは、キャッシュメモリ１２Ｂを利用してアクセス要求に応答する。従って、ストレージ仮想化装置１０Ｂは、ストレージ仮想化装置１０よりもアクセス要求に対する応答が早い装置となっていると言うことも出来る。
【００７０】
《第３実施形態》
以下、第３実施形態に係るストレージ仮想化装置の構成及び動作を、上記した第１実施形態に係るストレージ仮想化装置１０と異なる部分を中心に、説明する。
【００７１】
図９に、第３実施形態に係るストレージ仮想化装置１０Ｃの構成を示す。尚、このストレージ仮想化装置１０Ｃも、ストレージ仮想化装置１０、１０Ｂと同様の形態（図３）で使用されるものである。また、ストレージ仮想化装置１０Ｃも、ストレージ仮想化装置１０、１０Ｂと同様に、コンピュータ２０に、ストレージ仮想化プログラム３０（但し、第
１、第２実施形態のそれとは内容が異なるもの）をインストールした装置となっている。
【００７２】
図９に示してあるように、ストレージ仮想化装置１０Ｃは、クラスタ制御部１１、記憶部１２及び仮想ボリューム制御部１３Ｃを備える。また、ストレージ仮想化装置１０Ｃは、他のストレージ仮想化装置１０Ｃとの間の通信用のポート１５、サーバ８０（図３参照）との間の通信用のポート１６、複数のストレージ装置５０の複数のストレージポート５１（図３参照）と接続される２つのポート１７を備える。
【００７３】
ストレージ仮想化装置１０Ｃのクラスタ制御部１１、記憶部１２、ポート１５〜１７は、ストレージ仮想化装置１０のクラスタ制御部１１、記憶部１２、ポート１５〜１７と同じものである。
【００７４】
仮想ボリューム制御部１３Ｃは、サーバ８０からのアクセス要求を受信した際に、図１０に示した手順の仮想ボリューム制御処理を行うユニット（機能ブロック）である。
【００７５】
すなわち、アクセス要求をサーバ８０から受信した仮想ボリューム制御部１３Ｃは、マッピング情報を参照することにより、当該アクセス要求に応答するためのコマンドの送信先ストレージポート５１（以下、アクセス対象ポートと表記する）を特定する（ステップＳ４０１）。そして、仮想ボリューム制御部１３Ｃは、アクセス対象ポートをリザーブすると共に、他の各ストレージ仮想化装置１０（図１０では、仮想化装置）にリザーブ通知を送信する（ステップＳ４０１）。
【００７６】
次いで、仮想ボリューム制御部１３Ｃは、受信したアクセス要求で指定されている内容のリード／ライト処理をストレージ装置５０（内のＣＭ）に行わせるためのリード／ライトコマンドを、アクセス対象ポートに対して発行する（ステップＳ４０２）。
【００７７】
また、仮想ボリューム制御部１３Ｃは、記憶部１２に記憶されている、アクセス対象ポートに関するコマンド数差を更新する（ステップＳ４０３）。より具体的には、仮想ボリューム制御部１３Ｃは、アクセス対象ポートに関するコマンド数差に“１”を加算する。
【００７８】
ステップＳ４０３の処理を終えた仮想ボリューム制御部１３Ｃは、アクセス対象ポートからライト／リード処理の完了応答（ライト処理が完了した旨の情報、リード処理により読み出されたデータ）が送信されてくるのを待機する（ステップＳ４０４）。
【００７９】
そして、完了応答を受信した仮想ボリューム制御部１３Ｃは、アクセス対象ポートのリザーブを解除すると共に、他の各ストレージ仮想化装置１０にリザーブ解除通知を送信する（ステップＳ４０５）。また、仮想ボリューム制御部１３Ｃは、アクセス対象ポートに関するコマンド数差を更新する処理（記憶部１２内のアクセス対象ポートに関するコマンド数差から“１”を減ずる処理）を行う（ステップＳ４０６）。
【００８０】
その後、仮想ボリューム制御部１３Ｃは、アクセス対象ポートに関するものとして記憶部１２に記憶されている処理未完コマンド総数と上閾値とを比較する（ステップＳ４０７）。
【００８１】
処理未完コマンド総数が上閾値以下であった場合（ステップＳ４０７；ＮＯ）、仮想ボリューム制御部１３Ｃは、アクセス要求の送信元サーバ８０に対して、正常応答（ライト処理が完了した旨の情報、リード処理より読み出されたデータ）を返送する（ステップＳ４０９）。そして、仮想ボリューム制御部１３Ｃは、この仮想ボリューム制御処理を終了する。
【００８２】
一方、処理未完コマンド総数が上閾値を超えていた場合（ステップＳ４０７；ＹＥＳ）、仮想ボリューム制御部１３Ｃは、アクセス対象ポートに関する処理未完コマンド総数が、アクセス対象ポートに関する下閾値以下の値となるのを待機する（ステップＳ４０８）。
【００８３】
そして、仮想ボリューム制御部１３Ｃは、アクセス対象ポートに関する処理未完コマンド総数が、アクセス対象ポートに関する下閾値以下の値となったときに（ステップＳ４０８；ＹＥＳ）、アクセス要求の送信元サーバ８０に正常応答を返送（ステップＳ４０９）してから、仮想ボリューム制御処理を終了する。
【００８４】
以上、説明したように、ストレージ仮想化装置１０Ｃも、ストレージ仮想化装置１０、１０Ｂと同様に、各ストレージポート５１に関するコマンド数差を常時計数している。そして、マスタ仮想化装置は、図１１に模式的に示してあるように、周期的に、各スレーブ仮想化装置から各ストレージポート５１に関するコマンド数差（図１１では、“差”）を取得し、ストレージポート５１毎に、自身が計数したコマンド数差と各スレーブ仮想化装置が計数したコマンド数差の総和である処理未完コマンド総数（図１１では、“総数”）を算出する。また、マスタ仮想化装置は、算出結果を内部（記憶部１２）に記憶すると共に各スレーブ仮想化装置に配布し、各ストレージポート５１に関する処理未完コマンド総数が配布された各スレーブ仮想化装置も、それらの値を内部（記憶部１２）に記憶する。
【００８５】
また、ストレージ仮想化装置１０Ｃ（マスタ／スレーブ仮想化装置）は、サーバ８０からのアクセス要求を受信した場合、アクセス対象ポートに対してコマンドを発行する。発行したコマンドに対する完了応答が得られた場合、ストレージ仮想化装置１０Ｃは、処理未完コマンド総数が上閾値を超えているか否かを判断する。すなわち、アクセス対象ポートのキュー内の処理待ちコマンド数（≒処理未完コマンド総数）が上閾値を超えているか否かを判断する。
【００８６】
そして、ストレージ仮想化装置１０Ｃは、処理未完コマンド総数が上閾値を超えていた場合には、処理未完コマンド総数が下閾値以下となるまで待ってから、完了応答をアクセス要求の送信元サーバ８０に返送する。
【００８７】
本実施形態に係るストレージ仮想化装置１０Ｃは、以上のように動作するものとなっている。そして、アクセス要求に対する完了応答の返送を遅らせば、サーバ８０の次のアクセス要求の送信タイミングを遅らせることが出来る。従って、ストレージ仮想化装置１０Ｃを用いてストレージを仮想化すれば、ストレージ装置５０のストレージポート５１でQueue Fullが殆ど発生することがないシステムを、簡単に（各ストレージ装置５０の性能等を考慮したシステム設計が不必要な形で）、構築できることになる。
【００８８】
《変形形態》
上記した各実施形態に係るストレージ仮想化装置（１０、１０Ｂ又は１０Ｃ）は、各種の変形を行うことが出来るものである。例えば、各実施形態に係るストレージ仮想化装置を、下閾値が上閾値と一致している装置（両閾値として同じ値が設定される装置、１つの値が下閾値及び上閾値として使用される装置等）に変形することが出来る。
【００８９】
ストレージ仮想化装置１０Ｃを、キャッシュメモリを備えた装置に変形することも出来る。各実施形態に係るストレージ仮想化装置を、マスタ／スレーブの区別がない装置、つまり、“処理未完コマンド総数を他のストレージ仮想化装置から取得しない装置であって、他の各ストレージ仮想化装置から周期的にコマンド数差を取得して処理未完コマンド総数を算出する装置”に変形することも出来る。
【００９０】
また、ストレージ仮想化装置として機能させるコンピュータ２０の構成が図４に示したものでなくても良いことや、ストレージ仮想化装置を、コンピュータ２０にプログラムをインストールした装置ではなく、専用の装置として実現しても良いことなどは、当然のことである。
【００９１】
以上、開示した技術に関し、更に以下の付記を開示する。
【００９２】
（付記１）  複数のストレージ装置の複数のストレージポートに接続されるストレージ仮想化装置であって、
前記複数のストレージポートのそれぞれについて、各ストレージポートを有する前記
ストレージ装置による処理が未完了のコマンドの数である処理未完コマンド数を記憶する第１記憶部と、
前記複数のストレージポートのいずれかに接続されている他のストレージ仮想化装置から、前記他のストレージ仮想化装置において計数された各ストレージポートの処理未完コマンド数を取得し、ストレージポート毎に、前記他のストレージ仮想化装置から取得した処理未完コマンド数及び前記第1記憶部から取得した処理未完コマンド数の総和である処
理未完コマンド総数を第２記憶部に記憶させる制御部と、
前記複数のストレージ装置のいずれかに対するアクセス要求を受信したときに、受信したアクセス要求に対応するストレージポートの処理未完コマンド総数を前記第２記憶部から取得し、取得した処理未完コマンド総数が規定数を超えている場合、当該アクセス要求に対するアクセス要求応答処理の完了タイミングを遅延させるアクセス要求処理部と、
を備えることを特徴とするストレージ仮想化装置。
【００９３】
（付記２）  前記アクセス要求応答部は、受信したアクセス要求に応じたストレージポートに関する前記処理未完コマンド総数が前記規定数を超えている場合、当該ストレージポートに対するコマンドの発行処理を行った後、当該コマンドに対する応答の前記サーバへの返送を、前記処理未完コマンド総数が第２規定数以下となるまで遅らせる
ことを特徴とする付記１記載のストレージ仮想化装置。
【００９４】
（付記３）  前記アクセス要求応答部は、受信したアクセス要求に応じたストレージポートに関する前記処理未完コマンド総数が前記規定数を超えていた場合、当該処理未完コマンド総数が第２規定数以下となるまで、受信したアクセス要求についてのアクセス要求応答処理の開始を遅らせる
ことを特徴とする付記１記載のストレージ仮想化装置。
【００９５】
（付記４）  ライト要求に対して前記アクセス要求応答部が行う前記アクセス要求応答処理が、当該ライト要求をメモリへ記憶し、当該ライト要求に対する応答完了を前記サーバへ通知してから、当該ライト要求に応じたストレージポートに対してコマンドを発行する処理である
ことを特徴とする付記１から３のいずれか一項に記載のストレージ仮想化装置。
【００９６】
（付記５）  前記規定数が、ストレージポート毎に定められている値である
ことを特徴とする付記１から４のいずれか一項に記載のストレージ仮想化装置。
【００９７】
（付記６）  前記第２規定数が前記規定数と同じ値である
ことを特徴とする付記１から５のいずれか一項に記載のストレージ仮想化装置。
【００９８】
（付記７）  複数のストレージ装置を１つ以上の仮想ボリュームとして機能させるためのストレージ仮想化方法であって、
前記複数のストレージ装置の複数のストレージポートと接続された第１のストレージ仮
想化装置が、
前記複数のストレージポートのそれぞれについて、各ストレージポートを有する前記
ストレージ装置による処理が未完了のコマンドの数である処理未完コマンド数を第１記憶部に記憶し、
前記複数のストレージポートのいずれかに接続されている他のストレージ仮想化装置から、前記他のストレージ仮想化装置において計数された各ストレージポートの処理未完コマンド数を取得し、ストレージポート毎に、前記他のストレージ仮想化装置から取得した処理未完コマンド数及び前記第1記憶部から取得した処理未完コマンド数の総和である処
理未完コマンド総数を第２記憶部に記憶し、
前記複数のストレージ装置のいずれかに対するアクセス要求を受信したときに、受信したアクセス要求に対応するストレージポートの処理未完コマンド総数を前記第２記憶部から取得し、取得した処理未完コマンド総数が規定数を超えている場合、当該アクセス要求に対するアクセス要求応答処理の完了タイミングを遅延させる
ことを特徴とするストレージ仮想化方法。
【００９９】
（付記８）  前記第１のストレージ装置は、受信したアクセス要求に応じたストレージポートに関する前記処理未完コマンド総数が前記規定数を超えていた場合、当該処理未完コマンド総数が第２規定数以下となるまで、受信したアクセス要求についてのアクセス要求応答処理の開始を遅らせる
ことを特徴とする付記７記載のストレージ仮想化方法。
【０１００】
（付記９）  前記第１のストレージ装置は、受信したアクセス要求に応じたストレージポートに関する前記処理未完コマンド総数が前記規定数を超えている場合、当該ストレージポートに対するコマンドの発行処理を行った後、当該コマンドに対する応答の前記サーバへの返送を当該処理未完コマンド総数が第２規定数以下となるまで遅らせる
ことを特徴とする付記７記載のストレージ仮想化方法。
【０１０１】
（付記１０）  複数のストレージ装置の複数のストレージポートに接続されたコンピュータに、
前記複数のストレージポートのそれぞれについて、各ストレージポートを有する前記ストレージ装置による処理が未完了のコマンドの数である処理未完コマンド数を第１記憶部に記憶させ、
前記複数のストレージポートのいずれかに接続されている他のストレージ仮想化装置から、前記他のストレージ仮想化装置において計数された各ストレージポートの処理未完コマンド数を取得させ、ストレージポート毎に、前記他のストレージ仮想化装置から取得した処理未完コマンド数及び前記第1記憶部から取得した処理未完コマンド数の総和である
処理未完コマンド総数を第２記憶部に記憶させ、
前記複数のストレージ装置のいずれかに対するアクセス要求を受信したときに、受信したアクセス要求に対応するストレージポートの処理未完コマンド総数を前記第２記憶部から取得させ、取得した処理未完コマンド総数が規定数を超えている場合、当該アクセス要求に対するアクセス要求応答処理の完了タイミングを遅延させる
ことを特徴とするストレージ仮想化プログラム。
【０１０２】
（付記１１）  複数のストレージ装置を１つ以上の仮想ボリュームとして機能させるストレージ仮想化装置クラスタであって、
それぞれ、前記複数のストレージ装置の複数のストレージポートと接続された第１ストレージ仮想化装置と１台以上の第２ストレージ仮想化装置とを含み、
前記第１ストレージ仮想化装置は、
前記複数のストレージポートのそれぞれについて、そのストレージポートに対して自ストレージ仮想化装置から発行されたが、そのストレージポートを有する前記ストレージ装
置による処理が未完了のコマンドの数である処理未完コマンド数を計数する計数部と、
前記複数のストレージポートのいずれかに接続されている他の各ストレージ仮想化装置から、周期的に、各ストレージ仮想化装置が各ストレージポートについて計数した前記処理未完コマンド数を取得し、ストレージポート毎に、他の各ストレージ仮想化装置から取得した処理未完コマンド数及び前記計数部により計数されている処理未完コマンド数の総和である処理未完コマンド総数を算出して各第２ストレージ仮想化装置に送信すると共に管理する管理部と、
サーバからのアクセス要求を受信したときに、当該アクセス要求に応じたストレージポートに対するコマンドの発行処理を含むアクセス要求応答処理を行うアクセス要求応答部であって、前記管理部により管理されている当該ストレージポートに関する前記処理未完コマンド総数が規定数を超えている場合には、受信したアクセス要求についてのアクセス要求応答処理の完了を遅らせるアクセス要求応答部と、
を備え、
前記第２ストレージ仮想化装置は、
前記複数のストレージポートのそれぞれについて、そのストレージポートに対して自ストレージ仮想化装置から発行されたが、そのストレージポートを有する前記ストレージ装置による処理が未完了のコマンドの数である処理未完コマンド数を計数する第２計数部と、
前記第２計数部により計数されている各ストレージポートについての処理未完コマンド数を前記第１ストレージ仮想化装置に対して送信する送信部と、
前記第１ストレージ仮想化装置から送信されてきた各ストレージポートに関する処理未完コマンド総数を管理する第２管理部と、
サーバからのアクセス要求を受信したときに、当該アクセス要求に応じたストレージポートに対するコマンドの発行処理を含むアクセス要求応答処理を行うアクセス要求応答部であって、前記第２管理部により管理されている当該ストレージポートに関する前記処理未完コマンド総数が前記規定数を超えている場合には、受信したアクセス要求についてのアクセス要求応答処理の完了を遅らせる第２アクセス要求応答部と、
を備える
ことを特徴とするストレージ仮想化装置クラスタ。
【符号の説明】
【０１０３】
１  ストレージ仮想化装置クラスタ
１０、１０Ｂ、１０Ｃ  ストレージ仮想化装置
１１  クラスタ制御部
１２  記憶部
１２Ｂ  キャッシュメモリ
１３、１３Ｂ，１３Ｃ  仮想ボリューム制御部
１５、１６、１７  ポート
２０  コンピュータ
２１  ＣＰＵ
２２  ＲＡＭ
２３  ＨＤＤ
３０  ストレージ仮想化プログラム
５０  ストレージ装置
５１  ストレージポート
８０  サーバ
【図３】
2014010476.tif 000003
【図４】
2014010476.tif 000004
【図５】
2014010476.tif 000005
【図６】
2014010476.tif 000006
【図７】
2014010476.tif 000007
【図８】
2014010476.tif 000008
【図９】
2014010476.tif 000009
【図１０】
2014010476.tif 000010
【図１】
2014010476.tif 000011
【図２】
2014010476.tif 000012
【図１１】
2014010476.tif 000013