(57)【特許請求の範囲】
【請求項１】
ネットワークに接続され、前記ネットワークを介して一つ以上のホスト計算機から受け付けたＩ／Ｏコマンドを実行するストレージシステムにおいて、
前記ストレージシステムは、
前記ネットワークに接続されるホストインターフェースと、前記ホストインターフェースと接続されるプロセッサと、前記プロセッサに接続されるメモリと、前記Ｉ／Ｏコマンドに従ってデータが読み書きされる記憶装置と、を備え、
所定の条件が設定された判定情報を保持し、
前記プロセッサは、前記Ｉ／Ｏコマンドを受け付けると、
前記判定情報に基づいて、前記受け付けたＩ／Ｏコマンドが前記所定の条件を満たすか否かを判定し、
前記所定の条件を満たす複数のＩ／Ｏコマンドを蓄積し、
前記蓄積された複数のＩ／Ｏコマンドを並べ替え、
前記並べ替えられた順に前記蓄積された複数のＩ／Ｏコマンドを実行し、
前記所定の条件を満たさないＩ／Ｏコマンドを、受け付けた順に実行し、
前記Ｉ／Ｏコマンドには、アクセス先のアドレス情報とは別に、当該Ｉ／Ｏコマンドの前記蓄積及び並べ替えによる実行の優先度が付与され、
前記判定情報には、前記所定の条件として、前記Ｉ／Ｏコマンドに付与された優先度の範囲が設定され、
前記プロセッサは、
前記受け付けたＩ／Ｏコマンドに付与された優先度が前記判定情報に設定された所定の範囲に含まれるか否かを判定し、
前記受け付けたＩ／Ｏコマンドに付与された優先度が前記判定情報に設定された所定の範囲に含まれる場合、前記受け付けたＩ／Ｏコマンドが前記所定の条件を満たすと判定することを特徴とするストレージシステム。
【請求項２】
ネットワークに接続され、前記ネットワークを介して一つ以上のホスト計算機から受け付けたＩ／Ｏコマンドを実行するストレージシステムにおいて、
前記ストレージシステムは、
前記ネットワークに接続されるホストインターフェースと、前記ホストインターフェースと接続されるプロセッサと、前記プロセッサに接続されるメモリと、前記Ｉ／Ｏコマンドに従ってデータが読み書きされる記憶装置と、を備え、
所定の条件が設定された判定情報を保持し、
前記プロセッサは、前記Ｉ／Ｏコマンドを受け付けると、
前記判定情報に基づいて、前記受け付けたＩ／Ｏコマンドが前記所定の条件を満たすか否かを判定し、
前記所定の条件を満たす複数のＩ／Ｏコマンドを蓄積し、
前記蓄積された複数のＩ／Ｏコマンドを並べ替え、
前記並べ替えられた順に前記蓄積された複数のＩ／Ｏコマンドを実行し、
前記所定の条件を満たさないＩ／Ｏコマンドを、受け付けた順に実行し、
前記判定情報には、前記所定の条件として、データが格納される領域を識別する第１識別子と、前記第１識別子に対応する第２識別子と、が設定され、
前記プロセッサは、
前記受け付けたＩ／Ｏコマンドが前記第２識別子を指定しているか否かを判定し、
前記受け付けたＩ／Ｏコマンドが前記第２識別子を指定している場合、前記受け付けたＩ／Ｏコマンドが前記所定の条件を満たすと判定し、
前記第２識別子に対応する前記第１識別子によって識別される領域を対象として、前記蓄積された複数のＩ／Ｏコマンドを実行することを特徴とするストレージシステム。
【請求項３】
前記プロセッサは、前記蓄積された複数のＩ／Ｏコマンドを、複数の記憶装置に対する処理が並列に実行されるように並べ替えることを特徴とする請求項１又は２に記載のストレージシステム。
【請求項４】
前記ストレージシステムは、前記所定の条件を満たすＩ／Ｏコマンドを蓄積する数又は時間が設定された管理情報を保持し、
前記プロセッサは、
前記管理情報にＩ／Ｏコマンドを蓄積する数が設定されている場合、前記所定の条件を満たすＩ／Ｏコマンドを前記設定された数蓄積し、
前記管理情報にＩ／Ｏコマンドを蓄積する時間が設定されている場合、前記所定の条件を満たすＩ／Ｏコマンドを前記設定された時間にわたって蓄積することを特徴とする請求項１又は２に記載のストレージシステム。
【請求項５】
前記ストレージシステムは、
管理ネットワークに接続される管理インターフェースを備え、
前記管理インターフェースには、管理計算機が接続され、
前記プロセッサは、前記管理計算機から受け付けた指示に従って、前記判定情報及び前記管理情報を設定することを特徴とする請求項４に記載のストレージシステム。
【請求項６】
前記プロセッサは、前記ホスト計算機から受け付けた制御コマンドに従って、前記判定情報及び前記管理情報を設定することを特徴とする請求項４に記載のストレージシステム。
【請求項７】
ネットワークに接続され、前記ネットワークを介して一つ以上のホスト計算機から受け付けたＩ／Ｏコマンドを実行するストレージシステムの制御方法において、
前記ストレージシステムは、
前記ネットワークに接続されるホストインターフェースと、前記ホストインターフェースと接続されるプロセッサと、前記プロセッサに接続されるメモリと、前記Ｉ／Ｏコマンドに従ってデータが読み書きされる記憶装置と、を備え、
所定の条件が設定された判定情報を保持し、
前記方法は、前記プロセッサが、前記Ｉ／Ｏコマンドを受け付けると、
前記判定情報に基づいて、前記受け付けたＩ／Ｏコマンドが前記所定の条件を満たすか否かを判定し、
前記所定の条件を満たす複数のＩ／Ｏコマンドを蓄積し、
前記蓄積された複数のＩ／Ｏコマンドを並べ替え、
前記並べ替えられた順に前記蓄積された複数のＩ／Ｏコマンドを実行し、
前記所定の条件を満たさないＩ／Ｏコマンドを、受け付けた順に実行し、
前記Ｉ／Ｏコマンドには、アクセス先のアドレス情報とは別に、当該Ｉ／Ｏコマンドの蓄積及び並べ替えによる実行の優先度が付与され、
前記判定情報には、前記所定の条件として、前記Ｉ／Ｏコマンドに付与された優先度の範囲が設定され、
前記プロセッサが、
前記受け付けたＩ／Ｏコマンドに付与された優先度が前記判定情報に設定された所定の範囲に含まれるか否かを判定し、
前記受け付けたＩ／Ｏコマンドに付与された優先度が前記判定情報に設定された所定の範囲に含まれると判定された場合、前記受け付けたＩ／Ｏコマンドが前記所定の条件を満たすと判定することを特徴とする方法。
【請求項８】
前記プロセッサは、前記蓄積された複数のＩ／Ｏコマンドを、複数の記憶装置に対する処理が並列に実行されるように並べ替えることを特徴とする請求項７に記載の方法。
【請求項９】
前記ストレージシステムは、前記所定の条件を満たすＩ／Ｏコマンドを蓄積する数又は時間が設定された管理情報を保持し、
前記方法は、前記プロセッサが、
前記管理情報にＩ／Ｏコマンドを蓄積する数が設定されている場合、前記所定の条件を満たすＩ／Ｏコマンドを前記設定された数蓄積し、
前記管理情報にＩ／Ｏコマンドを蓄積する時間が設定されている場合、前記所定の条件を満たすＩ／Ｏコマンドを前記設定された時間にわたって蓄積することをさらに含むことを特徴とする請求項７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願明細書で開示される技術は、ストレージシステムの性能向上に関し、特に、Ｉ／Ｏコマンドのキューイングを制御することによって最適な性能を実現する技術に関する。
【背景技術】
【０００２】
ストレージシステムは、ホスト計算機からＩ／Ｏコマンドを受け付けると、そのＩ／Ｏコマンドに従って、ディスクドライブに対するデータの書き込み又は読み出しを実行する。一つのＩ／Ｏコマンドの実行が終了する前に、ストレージシステムが次のＩ／Ｏコマンドを受け付けた場合、受け付けたＩ／Ｏコマンドは、ＦＩＦＯ型のメモリに一時的に格納され、実行されるのを待つ。このように、一つ以上のＩ／Ｏコマンドをメモリに蓄積し、実行を待たせることは、Ｉ／Ｏコマンドのキューイングと呼ばれる。複数のＩ／Ｏコマンドが実行を待っている場合、それらのＩ／Ｏコマンドを並べ替えて、受け付けた順序と異なる順序で実行することによって、実行に要する時間を短縮することができる場合がある。例えば、ディスクドライブのヘッドシーク時間又は回転待ち時間が最短となるようにＩ／Ｏコマンドを並べ替えることによってＩ／Ｏコマンドの実行時間を短縮する技術が開示されている（特許文献１参照）。
【特許文献１】特開平６−２５９１９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記の従来のストレージシステムは、レスポンスタイムの短縮を優先するため、ホスト計算機からＩ／Ｏコマンドを受け付けると、それを直ちに実行する。一方、短時間に大量のＩ／Ｏコマンドを受け付けた場合等、Ｉ／Ｏコマンドの実行待ちが発生した場合にのみ、上記のようなＩ／Ｏコマンドの並べ替えが実行される。
【０００４】
しかし、近年、計算機が管理するデータ量が爆発的に増加したため、プログラムがアクセスするストレージシステム内のデータ量も増大している。大量のデータにアクセスするプログラムの性能は、レスポンスタイムよりもスループットに強く依存する。スループット向上のためには、Ｉ／Ｏコマンドを直ちに実行できる場合であっても、積極的にキューイングを実行することによって大量のＩ／Ｏコマンドを蓄積し、順序を並べ替えて実行することが望ましい。その一方で、プログラムの種類又はそれが実行される状況等によっては、レスポンスタイムの短縮が要求される場合もある。そのような場合には、受け付けたＩ／Ｏコマンドをキューイングせずに直ちに実行することが望ましい。しかし、従来のストレージシステムは、キューイングの対象となるＩ／Ｏコマンドを判定し、積極的にキューイングを実行することができなかった。
【課題を解決するための手段】
【０００５】
本願で開示する代表的な発明は、ネットワークに接続され、前記ネットワークを介して一つ以上のホスト計算機から受け付けたＩ／Ｏコマンドを実行するストレージシステムにおいて、前記ストレージシステムは、前記ネットワークに接続されるホストインターフェースと、前記ホストインターフェースと接続されるプロセッサと、前記プロセッサに接続されるメモリと、前記Ｉ／Ｏコマンドに従ってデータが読み書きされる記憶装置と、を備え、所定の条件が設定された判定情報を保持し、前記プロセッサは、前記Ｉ／Ｏコマンドを受け付けると、前記判定情報に基づいて、前記受け付けたＩ／Ｏコマンドが前記所定の条件を満たすか否かを判定し、前記所定の条件を満たす複数のＩ／Ｏコマンドを蓄積し、前記蓄積された複数のＩ／Ｏコマンドを並べ替え、前記並べ替えられた順に前記蓄積された複数のＩ／Ｏコマンドを実行し、前記所定の条件を満たさないＩ／Ｏコマンドを、受け付けた順に実行することを特徴とする。
【発明の効果】
【０００６】
本発明の一実施形態によれば、システム管理者又はホスト計算機が、高いスループットを要求される処理について、Ｉ／Ｏコマンドのキューイングを実行するようにストレージシステムを設定することができる。その結果、任意の処理についてスループットを向上させることができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施の形態を、図面を参照して説明する。最初に、各実施の形態の概要を説明する。各実施の形態は、ホスト計算機から受け付けたＩ／Ｏコマンドがキューイングの対象であるか否かを判定する方法が異なる。
【０００８】
本発明の第１の実施の形態によれば、Ｉ／Ｏコマンドによって指定された領域（すなわち、データの書き込み又は読み出しの対象の領域）に基づいて、受け付けたＩ／Ｏコマンドがキューイングの対象であるか否かが判定される。具体的には、システム管理者が、データが格納される領域のうち所定の範囲（例えば、所定の論理ユニットの一部又は全部）に予めＩ／Ｏキューイング属性を付与する。ホスト計算機は、データの書き込み又は読み出しの対象として所定の領域を指定したＩ／Ｏコマンドを発行する。Ｉ／Ｏコマンドを受け付けたストレージシステムは、そのＩ／Ｏコマンドによって指定されている領域にＩ／Ｏキューイング属性が付与されている場合、そのＩ／Ｏコマンドがキューイングの対象であると判定する。ストレージシステムは、キューイングの対象と判定されたＩ／Ｏコマンドをキューイングする。すなわち、ストレージシステムは、キューイングの対象と判定された複数のＩ／Ｏコマンドをメモリに蓄積して、実行を待たせる。さらに、ストレージシステムは、蓄積されたＩ／Ｏコマンドの実行時間の総和が短くなるように並べ替えた後、指定された領域に対する書き込み又は読み出しを実行する。
【０００９】
本発明の第２の実施の形態によれば、Ｉ／Ｏコマンドを発行したホスト計算機に基づいて、受け付けたＩ／Ｏコマンドがキューイングの対象であるか否かが判定される。具体的には、Ｉ／Ｏコマンドを発行したホスト計算機が予め定められたホスト計算機である場合に、そのＩ／Ｏコマンドがキューイングの対象であると判定される。
【００１０】
本発明の第３の実施の形態によれば、Ｉ／Ｏコマンドに付与された優先度に基づいて、受け付けたＩ／Ｏコマンドがキューイングの対象であるか否かが判定される。
【００１１】
本発明の第４の実施の形態によれば、キューイングコマンド及びリリースコマンドによってキューイングを実行するか否かが制御される。具体的には、ストレージシステムは、キューイングコマンドを受け付けてからリリースコマンドを受け付けるまでの間に受け付けたＩ／Ｏコマンドをキューイングの対象であると判定する。
【００１２】
本発明の第５の実施の形態によれば、ホスト計算機によって指定された論理ユニット（ＬＵ）に基づいて、受け付けたＩ／Ｏコマンドがキューイングの対象であるか否かが判定される。具体的には、一つのＬＵが、キューイング対象のＬＵ（すなわちキューイングＬＵ）及びキューイング対象でないＬＵ（すなわち即時実行ＬＵ）の二つのＬＵとしてホスト計算機に提供される。ホスト計算機がキューイングＬＵを指定したＩ／Ｏコマンドを発行した場合、そのＩ／Ｏコマンドはキューイングの対象であると判定される。
【００１３】
次に、各実施の形態を詳細に説明する。
【００１４】
図１は、本発明の第１の実施の形態の計算機システムの構成を示すブロック図である。
【００１５】
本実施の形態の計算機システムは、ホスト１０１、ストレージシステム１０３及びストレージ管理装置１０４を備える。ホスト１０１及びストレージシステム１０３は、ネットワーク１０２を介して接続される。一方、ストレージ管理装置１０４及びストレージシステム１０３は、管理ネットワーク１０５を介して接続される。
【００１６】
ホスト１０１は、ストレージシステム１０３を使用する計算機である。具体的には、ホスト１０１は、アプリケーションプログラムを格納するメモリ（図示省略）と、そのアプリケーションプログラムを実行するプロセッサ（図示省略）と、ホスト１０１をネットワーク１０２に接続するためのインターフェース（図示省略）と、を備える。ネットワーク１０２がストレージエリアネットワーク（ＳＡＮ）である場合、インターフェースはいわゆるホストバスアダプタ（ＨＢＡ）であってもよい。アプリケーションプログラムは、必要に応じて、ストレージシステム１０３に対してデータＩ／Ｏコマンドを発行する。
【００１７】
ネットワーク１０２は、例えば、ファイバーチャネル（ＦＣ）プロトコルが適用されるストレージエリアネットワーク（ＳＡＮ）であるが、その他の任意の形態のネットワークであってもよい。例えば、ネットワーク１０２がインターネットプロトコル（ＩＰ）ネットワークであり、ホスト１０１及びストレージシステム１０３がｉＳＣＳＩプロトコルによって通信してもよい。
【００１８】
ストレージシステム１０３は、ホスト１０１から受け付けたＩ／Ｏコマンドに従って、データの書き込み又は読み出しを実行する。本実施の形態のストレージシステム１０３は、コマンド受付部１１１、キャッシュ管理部１１２、キューイング判定部１１３、キューイング処理部１１４、キューイング制御部１１５、アドレス変換部１１６、ドライブ制御部１１７、キューイング可否判定テーブル１３１、キューイング管理テーブル１３２、及び、記憶装置１２１から１２３を備える。
【００１９】
なお、後で図２０を参照して説明するように、コマンド受付部１１１、キャッシュ管理部１１２、キューイング判定部１１３、キューイング処理部１１４、キューイング制御部１１５、アドレス変換部１１６及びドライブ制御部１１７は、メモリ１４２に格納され、プロセッサ１４１によって実行されるプログラムである。したがって、以下の説明において上記の各部が実行する処理は、実際にはプロセッサ１４１によって実行される。また、キューイング可否判定テーブル１３１及びキューイング管理テーブル１３２は、メモリ１４２に格納され、上記のプログラムによって参照される。
【００２０】
コマンド受付部１１１は、ホスト１０１からネットワーク１０２を介してＩ／Ｏコマンドを受け付ける。
【００２１】
キャッシュ管理部１１２は、ストレージシステム１０３内のキャッシュメモリ１４３（図２０参照）を管理する。具体的には、キャッシュ管理部１１２は、Ｉ／Ｏコマンドのキャッシュヒット判定を実行する（図１９参照）。なお、キャッシュメモリ１４３を備えないストレージシステム１０３は、キャッシュ管理部１１２も備えない。このようなストレージシステム１０３においても、本発明を実施することができる。
【００２２】
キューイング判定部１１３は、キューイング可否判定テーブル１３１を参照して、Ｉ／Ｏコマンドをキューイングするか否かを判定する。
【００２３】
キューイング処理部１１４は、キューイング管理テーブル１３２の内容に従ってＩ／Ｏコマンドをキューイングし、実行に要する時間が最小になるようにＩ／Ｏコマンドを並べ替える。この並べ替えは、後述するように、従来と同じ方法によって実行されてもよい。
【００２４】
キューイング制御部１１５は、ストレージ管理装置１０４から受け付けた指示に従って、キューイング可否判定テーブル１３１及びキューイング管理テーブル１３２を設定する。
【００２５】
アドレス変換部１１６は、Ｉ／Ｏコマンドによって指定されたアドレスを、実際の記憶装置１２１等のアドレスに変換する。Ｉ／Ｏコマンドは、データの書き込み又は読み出しの対象を、仮想的なアドレス（例えば、論理ユニット番号（ＬＵＮ））によって指定する。アドレス変換部１１６は、そのＬＵＮ等を、物理的なアドレスに変換する。なお、Ｉ／Ｏコマンドが物理的なアドレスを直接指定する場合、アドレス変換部１１６はなくてもよい。
【００２６】
ドライブ制御部１１７は、Ｉ／Ｏコマンドに従って、記憶装置１２１等に対してデータの書き込み又は読み出しを実行する。
【００２７】
記憶装置１２１から１２３は、Ｉ／Ｏコマンドによって書き込まれたデータを格納する装置である。記憶装置１２１等は、ハードディスクドライブ（ＨＤＤ）、光ディスクドライブ、半導体記憶装置又はその他の記憶装置であってもよい。図１には三つの記憶装置１２１等を示すが、ストレージ１０３は、任意の数の記憶装置１２１等を備えることができる。複数の記憶装置１２１等は、ディスクアレイを構成してもよい。
【００２８】
記憶装置１２１等の記憶領域は、仮想的な記憶領域としてホスト１０１に認識される。仮想的な記憶領域とは、例えば、ボリュームグループ（ＶＧ）又は論理ユニット（ＬＵ）である。ＶＧとは、ディスクアレイの構成単位である。通常、一つのＶＧは複数の記憶装置１２１等を含む。論理ユニットとは、ホスト１０１が仮想的に一つの記憶装置として認識する領域である。一つの論理ユニットは、一つの記憶装置１２１等に対応してもよいし、記憶装置１２１等の一部又は複数の記憶装置１２１等と対応してもよい。あるいは、ホスト１０１は各記憶装置１２１等を直接認識してもよい。
【００２９】
ストレージ管理装置１０４は、管理ネットワーク１０５を介してストレージシステム１０３を制御する計算機である。具体的には、ストレージ管理装置１０４は、キューイング可否判定テーブル１３１及びキューイング管理テーブル１３２を設定する指示をキューイング制御部１１５に送信する。
【００３０】
ストレージ管理装置１０４は、システム管理者に対して管理画面を表示するための出力装置（図示省略）と、システム管理者が種々の指示を入力するための入力装置（図示省略）とを備える。出力装置に表示される画面については、後で詳細に説明する（図４等参照）。入力装置は、キーボード及びポインティングデバイス（例えば、マウス）を含んでもよい。
【００３１】
管理ネットワーク１０５は、例えばローカルエリアネットワーク（ＬＡＮ）であるが、他の種類のネットワークであってもよい。
【００３２】
図２０は、本発明の第１の実施の形態のストレージシステム１０３のハードウエア構成を示すブロック図である。
【００３３】
ストレージシステム１０３は、ホスト１０１及びストレージ管理装置１０４と通信して、記憶装置１２１等に対するデータのＩ／Ｏを制御するコントローラ１４０を備える。
【００３４】
コントローラ１４０は、相互に接続されたプロセッサ１４１、メモリ１４２、キャッシュメモリ１４３、ホストインターフェース（Ｉ／Ｆ）１４４、管理Ｉ／Ｆ１４５及びドライブＩ／Ｆ１４６を備える。
【００３５】
プロセッサ１４１は、メモリ１４２に格納されたプログラムを実行する。
【００３６】
メモリ１４２は、例えば半導体メモリであり、プロセッサ１４１によって実行されるプログラム及びそれらのプログラムが参照するデータを格納する。本実施の形態のメモリ１４２は、コマンド受付部１１１、キャッシュ管理部１１２、キューイング判定部１１３、キューイング処理部１１４、キューイング制御部１１５、アドレス変換部１１６、ドライブ制御部１１７、キューイング可否判定テーブル１３１及びキューイング管理テーブル１３２を格納する。
【００３７】
メモリ１４２は、さらに、キューイングの対象と判定されたＩ／Ｏコマンドを格納してもよい。
【００３８】
キャッシュメモリ１４３は、データＩ／Ｏ処理を高速化するために、記憶装置１２１等に書き込まれるデータ又は記憶装置１２１等から読み出されたデータを一時的に格納する半導体メモリである。高速な処理が要求されない場合、ストレージシステム１０３はキャッシュメモリ１４３を備えなくてもよい。その場合にも、本実施の形態を実現することができる。
【００３９】
ホストＩ／Ｆ１４４は、ネットワーク１０２を介してホスト１０１と通信するインターフェースである。
【００４０】
管理Ｉ／Ｆ１４５は、管理ネットワーク１０５を介してストレージ管理装置１０４と通信するインターフェースである。
【００４１】
ドライブＩ／Ｆ１４６は、ドライブ制御部１１７からの指示に従って、記憶装置１２１等に対するデータの書き込み又は読み出しを実行するインターフェースである。
【００４２】
本実施の形態において、コマンド受付部１１１、キャッシュ管理部１１２、キューイング判定部１１３、キューイング処理部１１４、キューイング制御部１１５、アドレス変換部１１６及びドライブ制御部１１７は、プロセッサ１４１によって実行されるプログラムであるが、これらを専用ハードウエアとして構成しても本実施の形態を実現することができる。
【００４３】
図１９は、本発明の第１の実施の形態のキャッシュ管理部１１２が実行する処理を示すフローチャートである。
【００４４】
コマンド受付部１１１がホスト１０１からＩ／Ｏコマンドを受け付けると、キャッシュ管理部１１２は、キャッシュヒットをしたか否かを判定する（１９０１）。言い換えると、キャッシュ管理部１１２は、受け付けたＩ／Ｏコマンドに対応するキャッシュがキャッシュメモリ１４３内に存在するか否かを判定する。
【００４５】
ステップ１９０１においてキャッシュヒットしたと判定された場合、キャッシュ管理部１１２は、キャッシュを参照して、ホスト１０１にデータを返す（１９０２）。この場合、キューイング判定部１１３は、図２において説明する処理を実行しない。
【００４６】
一方、ステップ１９０１においてキャッシュミスしたと判定された場合、キャッシュ管理部１１２は、受け付けたＩ／Ｏコマンドをキューイング判定部１１３に送る（１９０３）。そのＩ／Ｏコマンドを受け付けたキューイング判定部は、図２に示す処理を実行する。
【００４７】
なお、ストレージシステム１０３がキャッシュメモリ１４３を備えない場合、図１９の処理が実行されることはなく、全てのＩ／Ｏコマンドについて図２の処理が実行される。
【００４８】
図２は、本発明の第１の実施の形態のキューイング判定部１１３が実行する処理を示すフローチャートである。
【００４９】
キューイング判定部１１３は、最初に、キューイング可否判定テーブル１３１を参照して、受け付けたＩ／Ｏコマンドがキューイング可否判定テーブル１３１に設定された条件を満たすか否かを調査する（２０１）。このときに参照されるキューイング可否判定テーブル１３１については、後で詳細に説明する（図３参照）。
【００５０】
次に、キューイング判定部１１３は、ステップ２０１の調査の結果、Ｉ／Ｏコマンドが条件満たすか否かを判定する（２０２）。
【００５１】
本実施の形態のキューイング判定部１１３がステップ２０１及び２０２において実行する処理については、後で詳細に説明する（図５参照）。
【００５２】
ステップ２０２において条件を満たさないと判定された場合、受け付けたＩ／Ｏコマンドは、キューイングの対象でない。この場合、キューイング判定部１１３は、Ｉ／Ｏコマンドをアドレス変換部１１６に送る（２０４）。
【００５３】
アドレス変換部１１６は、Ｉ／Ｏコマンドが指定するＬＵＮ等を物理的なアドレスに変換して、そのアドレスをドライブ制御部１１７に送る。ドライブ制御部１１７は、物理的なアドレスに対して、Ｉ／Ｏコマンド（データの書き込み又は読み出し）を、受け付けた順に実行する。なお、Ｉ／Ｏコマンドが物理的なアドレスを直接指定している場合、アドレス変換部１１６の処理は省略される。この場合、ステップ２０４においてＩ／Ｏコマンドがドライブ制御部１１７に送られる。
【００５４】
一方、ステップ２０２において条件を満たすと判定された場合、受け付けたＩ／Ｏコマンドは、キューイングの対象である。この場合、キューイング判定部１１３は、キューイングを実行させるために、Ｉ／Ｏコマンドをキューイング処理部１１４に送る（２０３）。
【００５５】
キューイング処理部１１４は、キューイング管理テーブル１３２を参照して、所定の時間又は所定の数のＩ／Ｏコマンドをキューイングする。本実施の形態のキューイング処理部１１４は、キューイングの対象と判定されたＩ／Ｏコマンドを、メモリ１４２に格納することによって蓄積する。しかし、これらのＩ／Ｏコマンドは、他のメモリ又は記憶装置に格納されてもよい。キューイング管理テーブル１３２については、後で詳細に説明する（図６参照）。そして、キューイング処理部１１４は、キューイングによって蓄積されたＩ／Ｏコマンドを、実行時間の総和が短くなるように並べ替えた後、並べ替えられた順序で実行する。具体的には、蓄積されたＩ／Ｏコマンドを、並べ替えられた順にアドレス変換部１１６に送る。アドレス変換部１１６及びドライブ制御部１１７が実行する処理は、ステップ２０４において説明した通りである。
【００５６】
なお、ドライブ制御部１１７は、並べ替えられたＩ／Ｏコマンドを、並べ替えられた順に、連続して実行することが望ましい。言い換えると、ドライブ制御部１１７は、並べ替えられた複数のＩ／Ｏコマンドのうち最初のＩ／Ｏコマンドを実行してから最後のＩ／Ｏコマンドを実行するまでの間に、その並べ替えの対象となっていないＩ／Ｏコマンドを実行しないことが望ましい。
【００５７】
結局、ステップ２０２において条件を満たさないと判定されたＩ／Ｏコマンドは、受け付けた順に実行される（２０４）。一方、ステップ２０２において条件を満たさないと判定されたＩ／Ｏコマンドは、蓄積され、並べ替えられた順に実行される（２０３）。以上で、処理が終了する。
【００５８】
キューイング処理部１１４は、従来と同様の方法でＩ／Ｏコマンドを並べ替えることができる。ここで、キューイング処理部１１４が実行するＩ／Ｏコマンドの並べ替えについて説明する。
【００５９】
例えば、キューイング処理部１１４は、受け付けたＩ／Ｏコマンドを、それらのＩ／Ｏコマンドが指定するアドレス（例えば、ＬＢＡ）が昇順となるように並べ替えてもよい。例えば、簡単な具体例として、コマンド受付部１１１が、アドレス「１」、「４」、「２」及び「３」を指定しているＩ／Ｏコマンドを順次受け付け、これらの四つのＩ／Ｏコマンドがキューイングされている場合を説明する。キューイング処理部１１４は、これらのＩ／Ｏコマンドを「１」、「２」、「３」及び「４」の順に並べ替える。アドレスが「１」、「２」、「３」及び「４」である記憶装置１２１等の領域は、そのアドレスの順に物理的に連続して配置されている。このため、並べ替えられた順でコマンドを実行することによって、記憶装置１２１等の回転待ち時間及びシーク時間が最小となり、四つのコマンドの実行時間の総和が短縮される。
【００６０】
キューイング処理部１１４は、さらに、複数の記憶装置１２１等に対する処理が並列に実行されるようにＩ／Ｏコマンドを並べ替えてもよい。例えば、一つのＬＵが記憶装置１２１及び１２２に跨って設定されており、アドレス「１」及び「２」に対応する領域が記憶装置１２１に属し、アドレス「３」及び「４」に対応する領域が記憶装置１２２に属している場合、キューイング処理部１１４は、上記の四つのＩ／Ｏコマンドを「１」、「３」、「２」及び「４」の順に並べ替える。この場合、記憶装置１２１ではアドレス「１」及び「２」に対する処理が順次実行され、それらの処理と並列に、記憶装置１２２ではアドレス「３」及び「４」に対する処理が順次実行される。その結果、四つのコマンドの実行時間の総和が短縮される。
【００６１】
図３は、本発明の第１の実施の形態のキューイング可否判定テーブルの説明図である。
【００６２】
図３に示すキューイング可否判定テーブル３０１は、図１に示すキューイング可否判定テーブル１３１に相当する。
【００６３】
キューイング可否判定テーブル３０１は、項番３１１、ホストＬＵ番号３１２、ＬＢＡ３１３及びサイズ３１４からなる。
【００６４】
項番３１１は、キューイング可否判定テーブル３０１の各エントリ（行）を一意に識別する通し番号である。
【００６５】
ホストＬＵ番号３１２、ＬＢＡ３１３及びサイズ３１４は、Ｉ／Ｏキューイング属性が付与された領域を指定するフィールドである。Ｉ／Ｏキューイング属性とは、記憶装置１２１等の中のデータが格納される領域のうち、任意の範囲に、システム管理者によって付与される属性である。後述するように、キューイング属性が付与された領域を指定して発行されたＩ／Ｏコマンドは、キューイングの対象であると判定される。
【００６６】
ホストＬＵ番号３１２は、Ｉ／Ｏキューイング属性が付与された領域を含むＬＵをホスト１０１に提供するために、そのＬＵに付与された番号（ＬＵＮ）である。
【００６７】
ＬＢＡ３１３は、Ｉ／Ｏキューイング属性が付与された領域の始点の論理ブロックのアドレス（ＬＢＡ）である。
【００６８】
サイズ３１４は、Ｉ／Ｏキューイング属性が付与された領域の大きさである。
【００６９】
なお、ＬＢＡ３１３及びサイズ３１４の欄に「＊」が表示されている場合、ＬＢＡ３１３及びサイズ３１４の値が設定されていないことを意味する。この場合、ホストＬＵ番号３１２に設定されたＬＵ全体にＩ／Ｏキューイング属性が付与されている。
【００７０】
図３の例において、項番３１１が「１」である行のホストＬＵ番号３１２、ＬＢＡ３１３及びサイズ３１４は、それぞれ、「１」、「＊」及び「＊」である。これは、ＬＵＮが「１」であるＬＵ全体にＩ／Ｏキューイング属性が付与されていることを意味する。
【００７１】
一方、図３の例において、項番３１１が「２」である行のホストＬＵ番号３１２、ＬＢＡ３１３及びサイズ３１４は、それぞれ、「２」、「０」及び「１２８」である。これは、ＬＵＮが「２」であるＬＵ内の、「０」から「１２７」までのＬＢＡが付与された１２８個の論理ブロックにＩ／Ｏキューイング属性が付与されていることを意味する。
【００７２】
なお、図３は、ＬＵＮ、ＬＢＡ及びサイズによって領域を指定する例を示すが、別の方法によってＩ／Ｏキューイング属性が付与される領域を指定してもよい。例えば、Ｉ／Ｏキューイング属性が付与される領域の始点のＬＢＡと終点のＬＢＡが指定されてもよい。あるいは、Ｉ／Ｏキューイング属性が付与されるＶＧ又は記憶装置１２１等が指定されてもよい。
【００７３】
図４は、本発明の第１の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
【００７４】
図４に示すキューイング可否判定テーブル設定画面４０１は、図３に示すキューイング可否判定テーブル３０１を設定するためにストレージ管理装置１０４の出力装置に表示される画面である。キューイング可否判定テーブル設定画面４０１は、ホストＬＵ番号入力フィールド４１１、ＬＢＡ入力フィールド４１２、サイズ入力フィールド４１３、キューイング可否判定テーブル表示フィールド４１４、読み込みボタン４１５、保存ボタン４１６及び削除ボタン４１７を含む。
【００７５】
ホストＬＵ番号入力フィールド４１１、ＬＢＡ入力フィールド４１２及びサイズ入力フィールド４１３は、それぞれ、ホストＬＵ番号３１２、ＬＢＡ３１３及びサイズ３１４に設定される値を入力するためのフィールドである。
【００７６】
キューイング可否判定テーブル表示フィールド４１４には、キューイング可否判定テーブル３０１に既に設定されている値が表示される。システム管理者がいずれかの行を選択して読み込みボタン４１５を操作すると、その行に設定されている値がホストＬＵ番号入力フィールド４１１、ＬＢＡ入力フィールド４１２及びサイズ入力フィールド４１３に表示される。図４は、項番が「２」である行が選択された場合の例である。なお、行の選択及び各ボタンの操作は、例えば、マウスのクリックによって実行されてもよい（図７、図９、図１２及び図１７においても同様）。
【００７７】
システム管理者は、各入力フィールドに表示された値を変更することによって、キューイング可否判定テーブル３０１に設定される値を編集することができる。その後、システム管理者が保存ボタン４１６を操作すると、その時点で各入力フィールドに表示されている値がキューイング可否判定テーブル３０１に設定される。
【００７８】
システム管理者は、キューイング可否判定テーブル表示フィールド４１４に表示されている空欄の行を選択して、各入力フィールドに値を入力することによって、新たな値が設定された行を追加することができる。
【００７９】
一方、システム管理者は、既に設定されている行を選択して、削除ボタン４１７を操作することによって、その行を削除することができる。
【００８０】
図５は、本発明の第１の実施の形態のキューイング判定部１１３が実行する詳細な処理を示すフローチャートである。
【００８１】
図５に示す各ステップのうち、ステップ５０１から５０４は、図２のステップ２０１及び２０２を詳細に説明するものである。ステップ５０５及び５０６は、それぞれ、図２のステップ２０３及び２０４と同じであるため、説明を省略する。
【００８２】
最初に、キューイング判定部１１３は、キューイング可否判定テーブル３０１を参照して、受け付けたＩ／Ｏコマンドによって指定されたＬＵＮ（すなわち、そのＩ／Ｏコマンドによる書き込み又は読み出しの対象のＬＵＮ）がホストＬＵ番号３１２として設定されているか否かを調査する（５０１）。
【００８３】
次に、キューイング判定部１１３は、ステップ５０１の調査の結果、受け付けたＩ／Ｏコマンドによって指定されたＬＵＮが設定されているか否かを判定する（５０２）。
【００８４】
ステップ５０２において「設定されていない（すなわち、ＮＯ）」と判定された場合、受け付けたＩ／Ｏコマンドが指定する領域にはＩ／Ｏキューイング属性が付与されていない。すなわち、受け付けたＩ／Ｏコマンドは、キューイングの対象でない。この場合、処理はステップ５０６に進む。
【００８５】
一方、ステップ５０２において「設定されている（すなわち、ＹＥＳ）」と判定された場合、受け付けたＩ／Ｏコマンドが指定する領域にＩ／Ｏキューイング属性が付与されている可能性がある。この場合、キューイング判定部１１３は、キューイング可否判定テーブル３０１にＬＢＡ３１３及びサイズ３１４が設定されているか否かを判定する（５０３）。具体的には、キューイング判定部１１３は、受け付けたＩ／Ｏコマンドによって指定されたＬＵＮと同一のホストＬＵ番号３１２に対応するＬＢＡ３１３及びサイズ３１４に、「＊」以外の値が設定されているか否かを判定する。
【００８６】
ステップ５０３において「設定されていない（すなわち、ＮＯ）」と判定された場合、受け付けたＩ／Ｏコマンドによって指定されたＬＵ全体にＩ／Ｏキューイング属性が付与されている。すなわち、受け付けたＩ／Ｏコマンドは、キューイングの対象である。この場合、処理はステップ５０５に進む。
【００８７】
一方、ステップ５０３において「設定されている（すなわち、ＹＥＳ）」と判定された場合、受け付けたＩ／Ｏコマンドによって指定されたＬＵのうち、ＬＢＡ３１３及びサイズ３１４によって示される領域にＩ／Ｏキューイング属性が付与されている。このため、キューイング判定部１１３は、Ｉ／Ｏコマンドによって指定された領域がＬＢＡ３１３及びサイズ３１４によって示される領域に含まれているか否かを判定する（５０４）。
【００８８】
ステップ５０４において「含まれる（すなわち、ＹＥＳ）」と判定された場合、Ｉ／Ｏコマンドによって指定された領域にＩ／Ｏキューイング属性が付与されている。すなわち、受け付けたＩ／Ｏコマンドは、キューイングの対象である。この場合、処理はステップ５０５に進む。
【００８９】
一方、ステップ５０４において「含まれない（すなわち、ＮＯ）」と判定された場合、Ｉ／Ｏコマンドによって指定された領域にＩ／Ｏキューイング属性が付与されていない。すなわち、受け付けたＩ／Ｏコマンドは、キューイングの対象でない。この場合、処理はステップ５０６に進む。
【００９０】
なお、ステップ５０３において「ＮＯ」と判定された場合及びステップ５０４において「ＹＥＳ」と判定された場合が、図２のステップ２０２において条件を満たすと判定された場合に相当する。一方、ステップ５０２において「ＮＯ」と判定された場合及びステップ５０４において「ＮＯ」と判定された場合が、図２のステップ２０２において条件を満たさないと判定された場合に相当する。
【００９１】
例えば、コマンド受付部１１１が、ＬＵＮが「１」であるＬＵのいずれかの論理ブロックを指定したＩ／Ｏコマンドを受け付けた場合、キューイング判定部１１３は、キューイング可否判定テーブル３０１を参照する（５０１）。ホストＬＵ番号３１２に「１」が設定され、それに対応するＬＢＡ３１３及びサイズ３１４に値が設定されていないため、ステップ５０２及びステップ５０３では、それぞれ、「ＹＥＳ」及び「Ｎｏ」と判定され、ステップ５０５が実行される。
【００９２】
一方、例えば、コマンド受付部１１１が、ＬＵＮが「２」であるＬＵ内の、ＬＢＡが「２５６」でありサイズが「１６」である領域を指定したＩ／Ｏコマンドを受け付けた場合、キューイング判定部１１３は、キューイング可否判定テーブル３０１を参照する（５０１）。ホストＬＵ番号３１２に「２」が設定され、それに対応するＬＢＡ３１３に「０」、サイズ３１４に「１２８」が設定されている。この場合、Ｉ／Ｏコマンドによって指定された、ＬＢＡが「２５６」でありサイズが「１６」である領域が、「０」から「１２７」までの範囲にない。このため、ステップ５０２、５０３及び５０４において、それぞれ、「ＹＥＳ」、「ＹＥＳ」及び「ＮＯ」と判定され、ステップ５０６が実行される。
【００９３】
なお、Ｉ／Ｏコマンドが指定した領域が、キューイング可否判定テーブルが指定した領域に完全に含まれない（すなわちＩ／Ｏコマンドが指定した領域の一部が含まれる）場合、ステップ５０４では「ＮＯ」と判定される。例えば、ＬＵＮが「２」であるＬＵ内の、ＬＢＡが「１２０」でありサイズが「１６」である領域を指定したＩ／Ｏコマンドを受け付けた場合、ステップ５０２、５０３及び５０４において、それぞれ、「ＹＥＳ」、「ＹＥＳ」及び「ＮＯ」と判定され、ステップ５０６が実行される。
【００９４】
図６は、本発明の第１の実施の形態のキューイング管理テーブルの説明図である。
【００９５】
図６に示すキューイング管理テーブル６０１は、図１に示すキューイング管理テーブル１３２に相当する。キューイング管理テーブル６０１は、キューイング処理部１１４がどのようなキューイングを実行するかを設定するテーブルである。
【００９６】
キューイング管理テーブル６０１は、項番６１１、時間６１２及びコマンド数６１３からなる。
【００９７】
項番６１１は、キューイング可否判定テーブル３０１の項番３１１と対応する。例えば、項番６１１の値が「１」である行は、図３の項番３１１の値が「１」である行に対応する。一方、項番６１１の値が「＊」である行は、キューイング可否判定テーブル３０１の行のうち、項番６１１の値が「＊」である行以外の行と対応しない全ての行と対応する。図３及び図６の例では、図６の項番６１１の値が「＊」である行は、図３の項番３１１の値が「１」でない行に対応する。
【００９８】
時間６１２は、キューイングが実行される時間である。言い換えると、時間６１２に設定された時間にわたってＩ／Ｏコマンドがキューイングされる。
【００９９】
コマンド数６１３は、キューイングが実行されるコマンド数である。言い換えると、コマンド数６１３に設定された数のＩ／Ｏコマンドがキューイングされる。
【０１００】
例えば、図６の第１行には、項番６１１及び時間６１２として、それぞれ、「１」及び「１０ｍｓ」が設定されている。これは、受け付けたＩ／Ｏコマンドが図３の項番３１１の値「１」の行に設定された条件を満たす場合、Ｉ／Ｏコマンドが１０ミリ秒（ｍｓ）にわたってキューイングされることを意味する。すなわち、キューイング処理部１１４は、１０ｍｓの間に受け付けたＩ／Ｏコマンドをキューイングによって蓄積し、それらのＩ／Ｏコマンドを最適に並べ替えて実行する。
【０１０１】
一方、図６の第２行には、項番６１１及びコマンド数６１３として、それぞれ、「＊」及び「１６」が設定されている。これは、受け付けたＩ／Ｏコマンドが図３の項番「１」以外の行に設定された条件を満たす場合、Ｉ／Ｏコマンドは、１６個キューイングされることを意味する。すなわち、キューイング処理部１１４は、１６個のＩ／Ｏコマンドをキューイングによって蓄積し、それらのＩ／Ｏコマンドを最適に並べ替えて実行する。
【０１０２】
図７は、本発明の第１の実施の形態のキューイング管理テーブル設定画面の説明図である。
【０１０３】
図７に示すキューイング管理テーブル設定画面７０１は、図６に示すキューイング管理テーブル６０１を設定するためにストレージ管理装置１０４の出力装置に表示される画面である。キューイング管理テーブル設定画面７０１は、項番入力フィールド７１１、時間入力フィールド７１２、コマンド数入力フィールド７１３、キューイング管理テーブル表示フィールド７１４、読み込みボタン７１５、保存ボタン７１６及び削除ボタン７１７を含む。
【０１０４】
項番入力フィールド７１１、時間入力フィールド７１２及びコマンド数入力フィールド７１３は、それぞれ、項番６１１、時間６１２及びコマンド数６１３に設定される値を入力するためのフィールドである。
【０１０５】
キューイング管理テーブル表示フィールド７１４には、キューイング管理テーブル６０１に既に設定されている値が表示される。
【０１０６】
図７は、キューイング管理テーブル表示フィールド７１４において項番が「１」である行が選択された場合の例である。
【０１０７】
読み込みボタン７１５、保存ボタン７１６及び削除ボタン７１７の使用方法は、図４の読み込みボタン４１５、保存ボタン４１６及び削除ボタン４１７の使用方法と同じである。また、これらのボタンを使用してキューイング可否判定テーブル設定画面６０１に値を設定する方法は、図４に示す通りである。このため、これらの方法については、説明を省略する。
【０１０８】
以上の本発明の第１の実施の形態によれば、受け付けたＩ／Ｏコマンドによって指定された領域に応じて、そのＩ／Ｏコマンドをキューイングするか否かが判定される。
【０１０９】
例えば、ホスト１０１が複数のアプリケーションを実行し、それらのうち一つのアプリケーションが実行される際にはレスポンスタイムの短縮が要求され、別のアプリケーションが実行される際にはスループットの向上が要求される場合がある。このような場合、システム管理者は、前者のアプリケーションによって使用される領域を、予め、キューイング可否判定テーブル３０１に設定しておく。
【０１１０】
本実施の形態のキューイング判定部１１３は、受け付けたＩ／Ｏコマンドによって指定された領域が前者のアプリケーションによって使用される領域である場合、そのＩ／Ｏコマンドをキューイングの対象でないと判定する。一方、受け付けたＩ／Ｏコマンドによって指定された領域が後者のアプリケーションによって使用される領域である場合、本実施の形態のキューイング判定部１１３は、そのＩ／Ｏコマンドをキューイングの対象であると判定する。その結果、アプリケーションごとに望ましい性能を実現することができる。
【０１１１】
次に、本発明の第２の実施の形態について説明する。
【０１１２】
本発明の第２の実施の形態の計算機システムの構成は、キューイング可否判定テーブル１３１に設定される内容及びキューイング判定部１１３が実行する処理を除いて、第１の実施の形態と同様である。以下、第２の実施の形態が第１の実施の形態と相違する点のみについて説明する。
【０１１３】
図８は、本発明の第２の実施の形態のキューイング可否判定テーブルの説明図である。
【０１１４】
図８に示すキューイング可否判定テーブル８０１は、図１に示すキューイング可否判定テーブル１３１に相当する。
【０１１５】
キューイング可否判定テーブル８０１は、項番８１１、ＷＷＮ８１２及びホストＬＵ番号８１３からなる。
【０１１６】
項番８１１は、キューイング可否判定テーブル８０１の各エントリ（行）を一意に識別する通し番号である。
【０１１７】
ＷＷＮ８１２は、ホスト１０１を一意に識別するWorld Wide Nameである。ネットワーク１０２がＳＡＮである場合、ホスト１０１（より正確には、ホスト１０１をネットワーク１０２に接続するＨＢＡのポート）はＷＷＮによって一意に識別される。しかし、ネットワーク１０２がＩＰネットワークである場合、ＷＷＮ８１２の代わりにＩＰアドレス又はＭＡＣアドレスが設定されてもよい。
【０１１８】
ホストＬＵ番号８１３は、キューイングの対象と判定されるＩ／Ｏコマンドによって指定されるＬＵＮである。言い換えると、ＷＷＮ８１２に設定されたＷＷＮを持つホスト１０１からホストＬＵ番号８１３に設定されたＬＵＮを指定したＩ／Ｏコマンドが発行された場合、そのＩ／Ｏコマンドがキューイングの対象と判定される。ホストＬＵ番号８１３は、ホストＬＵ番号３１２と同様、ホスト１０１に提供されるＬＵＮである。ホストＬＵ番号８１３が「＊」である場合、Ｉ／ＯコマンドがいずれのＬＵＮを指定している場合であっても、そのＩ／Ｏコマンドがキューイングの対象と判定される。
【０１１９】
図８の例では、項番８１１の値「１」に対応するＷＷＮ８１２及びホストＬＵ番号８１３は、それぞれ、「０１：０２：０３：０４：０５：０６：０７：０８」及び「＊」である。これは、ＷＷＮが「０１：０２：０３：０４：０５：０６：０７：０８」であるポートを備えるホスト１０１が発行したＩ／Ｏコマンドは、それが指定するＬＵＮに関らず、キューイングの対象と判定されることを意味する。一方、項番８１１の値「２」に対応するＷＷＮ８１２及びホストＬＵ番号８１３は、それぞれ、「０１：０２：０３：０４：０５：０６：０７：０９」及び「０」である。ＷＷＮが「０１：０２：０３：０４：０５：０６：０７：０８」であるポートを備えるホスト１０１がＬＵＮ「０」を指定して発行したＩ／Ｏコマンドは、キューイングの対象と判定されることを意味する。
【０１２０】
図９は、本発明の第２の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
【０１２１】
図９に示すキューイング可否判定テーブル設定画面９０１は、図８に示すキューイング可否判定テーブル８０１を設定するためにストレージ管理装置１０４の出力装置に表示される画面である。キューイング可否判定テーブル設定画面９０１は、ＷＷＮ入力フィールド９１１、ホストＬＵ番号入力フィールド９１２、キューイング可否判定テーブル表示フィールド９１３、読み込みボタン９１４、保存ボタン９１５及び削除ボタン９１６を含む。
【０１２２】
ＷＷＮ入力フィールド９１１及びホストＬＵ番号入力フィールド９１２は、それぞれ、ＷＷＮ８１２及びホストＬＵ番号８１３に設定される値を入力するためのフィールドである。
【０１２３】
キューイング可否判定テーブル表示フィールド９１３には、キューイング可否判定テーブル８０１に既に設定されている値が表示される。
【０１２４】
図９は、キューイング可否判定テーブル表示フィールド９１３において項番が「２」である行が選択された場合の例である。
【０１２５】
読み込みボタン９１４、保存ボタン９１５及び削除ボタン９１６の使用方法は、図４の読み込みボタン４１５、保存ボタン４１６及び削除ボタン４１７の使用方法と同じである。また、これらのボタンを使用してキューイング可否判定テーブル設定画面９０１に値を設定する方法は、図４に示す通りである。このため、これらの方法については、説明を省略する。
【０１２６】
図１０は、本発明の第２の実施の形態のキューイング判定部１１３が実行する詳細な処理を示すフローチャートである。
【０１２７】
本発明の第２の実施の形態のキューイング判定部１１３は、第１の実施の形態のキューイング判定部１１３と同様、図２に示す処理を実行する。ただし、第２の実施の形態のキューイング判定部１１３がステップ２０１及び２０２において実行する具体的な処理は、第１の実施の形態と異なる。
【０１２８】
図１０に示す各ステップのうち、ステップ１００１から１００４は、第２の実施の形態のキューイング判定部１１３が図２のステップ２０１及び２０２において実行する処理を詳細に説明するものである。ステップ１００５及び１００６は、それぞれ、図２のステップ２０３及び２０４と同じであるため、説明を省略する。
【０１２９】
最初に、キューイング判定部１１３は、キューイング可否判定テーブル８０１を参照して、受け付けたＩ／Ｏコマンドの要求元のＷＷＮ（すなわち、そのＩ／Ｏコマンドを発行したホスト１０１のＨＢＡのポートのＷＷＮ）が、ＷＷＮ８１２として設定されているか否かを調査する（１００１）。
【０１３０】
次に、キューイング判定部１１３は、ステップ１００１の調査の結果、要求元のＷＷＮがＷＷＮ８１２として設定されているか否かを判定する（１００２）。
【０１３１】
ステップ１００２において「設定されていない（すなわち、ＮＯ）」と判定された場合、受け付けたＩ／Ｏコマンドはキューイングの対象でない。この場合、処理はステップ１００６に進む。
【０１３２】
一方、ステップ１００２において「設定されている（すなわち、ＹＥＳ）」と判定された場合、受け付けたＩ／Ｏコマンドがキューイングの対象である可能性がある。この場合、キューイング判定部１１３は、キューイング可否判定テーブル８０１にホストＬＵ番号８１３が設定されているか否かを判定する（１００３）。具体的には、キューイング判定部１１３は、受け付けたＩ／Ｏコマンドによって指定されたＷＷＮと同一のＷＷＮ８１２に対応するホストＬＵ番号８１３に「＊」以外の値が設定されているか否かを判定する。
【０１３３】
ステップ１００３において「設定されていない（すなわち、ＮＯ）」と判定された場合、受け付けたＩ／Ｏコマンドは、それが指定するＬＵＮに関らず、キューイングの対象である。この場合、処理はステップ１００５に進む。
【０１３４】
一方、ステップ１００３において「設定されている（すなわち、ＹＥＳ）」と判定された場合、受け付けたＩ／Ｏコマンドが指定するＬＵＮによって、そのＩ／Ｏコマンドがキューイングの対象であるか否かが判定される。このため、キューイング判定部１１３は、Ｉ／Ｏコマンドによって指定されたＬＵＮがホストＬＵ番号８１３として設定されている値と等しいか否かを判定する（１００４）。
【０１３５】
ステップ１００４において「等しい（すなわち、ＹＥＳ）」と判定された場合、受け付けたＩ／Ｏコマンドはキューイングの対象である。この場合、処理はステップ１００５に進む。
【０１３６】
一方、ステップ１００４において「等しくない（すなわち、ＮＯ）」と判定された場合、受け付けたＩ／Ｏコマンドはキューイングの対象でない。この場合、処理はステップ１００６に進む。
【０１３７】
なお、ステップ１００３において「ＮＯ」と判定された場合及びステップ１００４において「ＹＥＳ」と判定された場合が、図２のステップ２０２において条件を満たすと判定された場合に相当する。一方、ステップ１００２において「ＮＯ」と判定された場合及びステップ１００４において「ＮＯ」と判定された場合が、図２のステップ２０２において条件を満たさないと判定された場合に相当する。
【０１３８】
例えば、コマンド受付部１１１が、ＷＷＮ「０１：０２：０３：０４：０５：０６：０７：０８」によって識別されるホスト１０１から、ＬＵＮが「１」であるＬＵを指定したＩ／Ｏコマンドを受け付けた場合、キューイング判定部１１３は、キューイング可否判定テーブル８０１を参照する（１００１）。ＷＷＮ８１２に「０１：０２：０３：０４：０５：０６：０７：０８」が設定され、それに対応するホストＬＵ番号８１３が「＊」であるため、ステップ１００２及びステップ１００３では、それぞれ、「ＹＥＳ」及び「Ｎｏ」と判定され、ステップ１００５が実行される。
【０１３９】
一方、例えば、コマンド受付部１１１が、ＷＷＮ「０１：０２：０３：０４：０５：０６：０７：０９」によって識別されるホスト１０１から、ＬＵＮが「１」であるＬＵを指定したＩ／Ｏコマンドを受け付けた場合、キューイング判定部１１３は、キューイング可否判定テーブル８０１を参照する（１００１）。ＷＷＮ８１２に「０１：０２：０３：０４：０５：０６：０７：０９」が設定され、それに対応するホストＬＵ番号８１３として「０」が設定されているため、ステップ１００２、１００３及び１００４において、それぞれ、「ＹＥＳ」、「ＹＥＳ」及び「ＮＯ」と判定される。この場合、ステップ１００６が実行される。
【０１４０】
以上の本発明の第２の実施の形態によれば、Ｉ／Ｏコマンドを発行したホスト１０１に応じて、そのＩ／Ｏコマンドをキューイングするか否かが判定される。
【０１４１】
例えば、高いスループットが要求される処理を主に実行するホスト１０１と、速いレスポンスが要求される処理を主に実行するホスト１０１がストレージシステム１０３を使用する場合に、本実施の形態を適用することができる。この場合、前者のホストを識別するＷＷＮをキューイング可否判定テーブル８０１のＷＷＮ８１２に設定することによって、前者のホスト１０１によって発行されたＩ／Ｏコマンドがキューイングされ、並べ替えられた後に実行される。一方、後者のホスト１０１によって発行されたＩ／Ｏコマンドは、レスポンスタイム短縮のため、キューイングされずに直ちに実行される。その結果、Ｉ／Ｏコマンドを発行するホスト１０１ごとに望ましい性能を実現することができる。
【０１４２】
一方、一つのホスト１０１が、高いスループットが要求されるアプリケーションと、早いレスポンスが要求されるアプリケーションとを実行する場合にも、本実施の形態を適用することができる。この場合、ホストバスアダプタを複数設置したり、複数ポートをもつＨＢＡを使うことで、そのホスト１０１に複数のネットワークインタフェースを持たせる。この複数のインターフェースの内の１つを識別するＷＷＮをキューイング可否判定テーブル８０１のＷＷＮ８１２に設定し、さらに、前者のアプリケーションが使用するＬＵのＬＵＮをホストＬＵ番号８１３に登録する。前者のアプリケーションは、キューイング可否判定テーブル８０１に設定したＷＷＮを持つインターフェースを使ってストレージシステム１０３にアクセスする。その結果、前者のアプリケーションが発行したＩ／Ｏコマンドのみがキューイングされ、並べ替えられた後に実行される。後者のアプリケーションは、キューイング可否判定テーブル８０１に設定したＷＷＮ以外のＷＷＮを持つインターフェースを使ってストレージシステム１０３にアクセスする。その結果、後者のアプリケーションが発行したＩ／Ｏコマンドは、レスポンスタイム短縮のため、キューイングされずに直ちに実行される。その結果、Ｉ／Ｏコマンドを発行するアプリケーションごとに望ましい性能を実現することができる。
【０１４３】
次に、本発明の第３の実施の形態について説明する。
【０１４４】
本発明の第３の実施の形態の計算機システムの構成は、キューイング可否判定テーブル１３１に設定される内容及びキューイング判定部１１３が実行する処理を除いて、第１の実施の形態と同様である。以下、第３の実施の形態が第１の実施の形態と相違する点のみについて説明する。
【０１４５】
図１１は、本発明の第３の実施の形態のキューイング可否判定テーブルの説明図である。
【０１４６】
図１１に示すキューイング可否判定テーブル１１０１は、図１に示すキューイング可否判定テーブル１３１に相当する。
【０１４７】
キューイング可否判定テーブル１１０１は、項番１１１１、ホストＬＵ番号１１１２、プライオリティ１１１３及び範囲条件１１１４からなる。
【０１４８】
項番１１１１は、キューイング可否判定テーブル１１０１の各エントリ（行）を一意に識別する通し番号である。
【０１４９】
ホストＬＵ番号１１１２、プライオリティ１１１３及び範囲条件１１１４には、受け付けたＩ／Ｏコマンドがキューイングの対象であるか否かを判定するための条件として使用される値が設定される。具体的には、受け付けたＩ／Ｏコマンドによって指定されたＬＵがホストＬＵ番号１１１２に設定されており、かつ、そのＩ／Ｏコマンドに付与されているプライオリティがプライオリティ１１１３及び範囲条件１１１４によって定まる条件を満たしている場合、そのＩ／Ｏコマンドは、キューイングの対象であると判定される。
【０１５０】
図１１の例では、項番１１１１の値「１」に対応するホストＬＵ番号１１１２、プライオリティ１１１３及び範囲条件１１１４として、それぞれ、「１０」、「０９」、「以下」が設定されている。これは、ＬＵＮが「１０」であるＬＵを指定するＩ／Ｏコマンドに付与されているプライオリティが「０９」以下の値である場合に、そのＩ／Ｏコマンドがキューイングの対象であると判定されることを意味する。
【０１５１】
一方、項番１１１１の値「２」に対応するホストＬＵ番号１１１２、プライオリティ１１１３及び範囲条件１１１４として、それぞれ、「＊」、「１５」、「等しい」が設定されている。これは、ＬＵＮが他の項番１１１１において設定されていない値（図１１の例では、「１０」以外の値）であるＬＵを指定するＩ／Ｏコマンドに付与されているプライオリティが「１５」である場合に、そのＩ／Ｏコマンドがキューイングの対象であると判定されることを意味する。
【０１５２】
なお、範囲条件１１１４に設定される値は、図１１に例示したものの他、例えば、「以上」「より大きい」「より小さい」等であってもよい。
【０１５３】
図１２は、本発明の第３の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
【０１５４】
図１２に示すキューイング可否判定テーブル設定画面１２０１は、図１１に示すキューイング可否判定テーブル１１０１を設定するためにストレージ管理装置１０４の出力装置に表示される画面である。キューイング可否判定テーブル設定画面１２０１は、ホストＬＵ番号入力フィールド１２１１、プライオリティ入力フィールド１２１２、範囲条件入力フィールド１２１３、キューイング可否判定テーブル表示フィールド１２１４、読み込みボタン１２１５、保存ボタン１２１６及び削除ボタン１２１７を含む。
【０１５５】
ホストＬＵ番号入力フィールド１２１１、プライオリティ入力フィールド１２１２及び範囲条件入力フィールド１２１３は、それぞれ、ホストＬＵ番号１１１２、プライオリティ１１１３及び範囲条件１１１４に設定される値を入力するためのフィールドである。
【０１５６】
なお、範囲条件入力フィールド１２１３の右端の三角形を操作することによって、範囲条件１１１４に設定することができる値（例えば、「以上」「以下」「等しい」等）がメニュー表示されてもよい。この場合、システム管理者は、表示されたもののいずれかを選択することによって、範囲条件１１１４に設定される値を選択することができる。
【０１５７】
キューイング可否判定テーブル表示フィールド１２１４には、キューイング可否判定テーブル１１０１に既に設定されている値が表示される。
【０１５８】
図１２は、キューイング可否判定テーブル表示フィールド１２１４において項番が「１」である行が選択された場合の例である。
【０１５９】
読み込みボタン１２１５、保存ボタン１２１６及び削除ボタン１２１７の使用方法は、図４の読み込みボタン４１５、保存ボタン４１６及び削除ボタン４１７の使用方法と同じである。また、これらのボタンを使用してキューイング可否判定テーブル設定画面１２０１に値を設定する方法は、図４に示す通りである。このため、これらの方法については、説明を省略する。
【０１６０】
図１３は、本発明の第３の実施の形態のキューイング判定部１１３が実行する詳細な処理を示すフローチャートである。
【０１６１】
本発明の第３の実施の形態のキューイング判定部１１３は、第１の実施の形態のキューイング判定部１１３と同様、図２に示す処理を実行する。ただし、第３の実施の形態のキューイング判定部１１３がステップ２０１及び２０２において実行する具体的な処理は、第１の実施の形態と異なる。
【０１６２】
図１３に示す各ステップのうち、ステップ１３０１から１３０３は、第３の実施の形態のキューイング判定部１１３が図２のステップ２０１及び２０２において実行する処理を詳細に説明するものである。ステップ１３０４及び１３０５は、それぞれ、図２のステップ２０３及び２０４と同じであるため、説明を省略する。
【０１６３】
最初に、キューイング判定部１１３は、キューイング可否判定テーブル１１０１を参照して、受け付けたＩ／Ｏコマンドによって指定されたＬＵＮが、ホストＬＵ番号１１１２として設定されているか否かを調査する（１３０１）。
【０１６４】
次に、キューイング判定部１１３は、ステップ１３０１の調査の結果、指定されたＬＵＮが、ホストＬＵ番号１１１２として設定されているか否かを判定する（１３０２）。
【０１６５】
なお、ホストＬＵ番号１１１２に「＊」が設定されている場合、ステップ１３０２において、必ず「設定されている」と判定される。
【０１６６】
ステップ１３０２において「設定されていない（すなわち、ＮＯ）」と判定された場合、受け付けたＩ／Ｏコマンドはキューイングの対象でない。この場合、処理はステップ１３０５に進む。
【０１６７】
一方、ステップ１３０２において「設定されている（すなわち、ＹＥＳ）」と判定された場合、受け付けたＩ／Ｏコマンドがキューイングの対象である可能性がある。この場合、キューイング判定部１１３は、受け付けたＩ／Ｏコマンドに付与されているプライオリティが、プライオリティ１１１３及び範囲条件１１１４に設定されている条件を満たすか否かを判定する（１３０３）。
【０１６８】
ステップ１３０３において「条件を満たさない（すなわち、ＮＯ）」と判定された場合、受け付けたＩ／Ｏコマンドはキューイングの対象でない。この場合、処理はステップ１３０５に進む。
【０１６９】
一方、ステップ１３０３において「条件を満たす（すなわち、ＹＥＳ）」と判定された場合、受け付けたＩ／Ｏコマンドはキューイングの対象である。この場合、処理はステップ１３０４に進む。
【０１７０】
なお、ステップ１３０３において「ＹＥＳ」と判定された場合が、図２のステップ２０２において条件を満たすと判定された場合に相当する。一方、ステップ１３０２において「ＮＯ」と判定された場合及びステップ１３０３において「ＮＯ」と判定された場合が、図２のステップ２０２において条件を満たさないと判定された場合に相当する。
【０１７１】
例えば、コマンド受付部１１１が、ＬＵＮが「１０」であるＬＵを指定したＩ／Ｏコマンドを受け付け、そのＩ／Ｏコマンドに付与されているプライオリティの値が「０５」であった場合、キューイング判定部１１３は、キューイング可否判定テーブル１１０１を参照する（１３０１）。ホストＬＵ番号１１１２に「ＬＵＮ１０」が設定され、それに対応するプライオリティ１１１３及び範囲条件１１１４がそれぞれ「０９」及び「以下」であるため、ステップ１３０２及びステップ１３０３では、それぞれ、「ＹＥＳ」及び「ＹＥＳ」と判定され、ステップ１３０４が実行される。
【０１７２】
一方、例えば、コマンド受付部１１１が、ＬＵＮが「５」であるＬＵを指定したＩ／Ｏコマンドを受け付け、そのＩ／Ｏコマンドに付与されているプライオリティの値が「１０」であった場合、キューイング判定部１１３は、キューイング可否判定テーブル１１０１を参照する（１３０１）。ホストＬＵ番号１１１２に「＊」が設定され、それに対応するプライオリティ１１１３及び範囲条件１１１４がそれぞれ「１５」及び「等しい」であるため、ステップ１３０２及びステップ１３０３では、それぞれ、「ＹＥＳ」及び「ＮＯ」と判定され、ステップ１３０５が実行される。
【０１７３】
以上の本発明の第３の実施の形態によれば、Ｉ／Ｏコマンドに付与されたプライオリティに応じて、そのＩ／Ｏコマンドをキューイングするか否かが判定される。
【０１７４】
Ｉ／Ｏコマンドに付与されるプライオリティは、どのような形態のものであってもよい。例えば、本実施の形態のネットワーク１０２にＳＣＳＩプロトコルが適用される場合、本実施の形態のプライオリティは、ＳＣＳＩコマンド中に設定されるプライオリティであってもよい。あるいは、本実施の形態のプライオリティは、アプリケーションによって設定される任意の値であってもよい。
【０１７５】
次に、本発明の第４の実施の形態について説明する。
【０１７６】
図１４は、本発明の第４の実施の形態の計算機システムの構成を示すブロック図である。
【０１７７】
本発明の第１から第３の実施の形態と異なり、第４の実施の形態の計算機システムにおいては、ストレージ管理装置１０４がホスト１０１に接続されている。このため、本実施の形態のストレージ管理装置１０４は、ホスト１０１及びネットワーク１０２を介してキューイング可否判定テーブル１３１及びキューイング管理テーブル１３２を設定する。ストレージシステム１０３は、ネットワーク１０２を介して、ホスト１０１によって発行されたＩ／Ｏコマンドだけでなく、ストレージ管理装置１０４によって発行されたキューイング制御コマンドも受け付ける。その他の点に関しては、第４の実施の形態は、第１から第３の実施の形態と同様である。
【０１７８】
以下、第４の実施の形態が第１から第３の実施の形態と相違する点のみについて説明する。
【０１７９】
図１５は、本発明の第４の実施の形態のコマンド受付部１１１が実行する処理を示すフローチャートである。
【０１８０】
コマンド受付部１１１は、最初に、受け付けたコマンドがキューイング制御コマンドであるかＩ／Ｏコマンドであるかを調査する（１５０１）。
【０１８１】
次に、コマンド受付部１１１は、ステップ１５０１の調査の結果、受け付けたコマンドがキューイング制御コマンドであるか否かを判定する（１５０２）。
【０１８２】
ステップ１５０２において、受け付けたコマンドがキューイング制御コマンドであると判定された場合、コマンド受付部１１１は、受け付けたキューイング制御コマンドをキューイング制御部１１５に送る（１５０３）。キューイング制御部１１５は、キューイング制御コマンドを実行して、キューイング可否判定テーブル１３１又はキューイング管理テーブル１３２を設定する。
【０１８３】
一方、ステップ１５０２において、受け付けたコマンドがキューイング制御コマンドでない（すなわち、受け付けたコマンドがＩ／Ｏコマンドである）と判定された場合、コマンド受付部１１１は、受け付けたＩ／Ｏコマンドをキャッシュ管理部１１２に送る（１５０３）。キャッシュ管理部１１２が実行する処理は、図１９を参照して説明した通りである。その後キューイング判定部１１３が実行する処理は、前述した第１から第３の実施の形態又は後述する第５の実施の形態と同様であってよい。
【０１８４】
以上の本発明の第４の実施の形態によれば、ストレージ管理装置１０４は、任意のタイミングでキューイングの実行を開始し、又は、キューイングの実行を解除することができる。例えば、ある時点で、所定の条件を満たすＩ／Ｏコマンドをキューイングの対象とするためのキューイング制御コマンドが発行された場合、そのキューイング制御コマンドより後にコマンド受付部１１１が受け付けたＩ／Ｏコマンドは、設定された条件を満たす場合には、キューイングの対象となる。その後、その条件を満たすＩ／Ｏコマンドをキューイングの対象から外すためのキューイング制御コマンドが発行された場合、そのキューイング制御コマンドより後にコマンド受付部１１１が受け付けたＩ／Ｏコマンドは、同じ条件を満たしている場合であっても、キューイングの対象にならない。
【０１８５】
なお、図１４には、ホスト１０１にストレージ管理装置１０４が接続される形態を示したが、ホスト１０１とストレージ管理装置１０４が物理的に一つの計算機によって実現されてもよい。例えば、ホスト１０１のメモリ（図示省略）にストレージ管理プログラム（図示省略）が格納され、ホスト１０１のプロセッサ（図示省略）がそのストレージ管理プログラムを実行することによってストレージシステム１０３にキューイング制御コマンドを発行してもよい。あるいは、ホスト１０１のアプリケーションがキューイング制御コマンドを発行してもよい。
【０１８６】
以上の本発明の第４の実施の形態は、時間によってキューイングを実行するか否かを切り替える場合に適用することができる。例えば、ホスト１０１のアプリケーションであるデータベース処理プログラム（図示省略）が、大量のＩ／Ｏコマンドを発行する処理を実行する前に、キューイング制御コマンドを発行して、それらのＩ／Ｏコマンドがキューイングされるようにキューイング可否判定テーブル１３１を設定してもよい。その後発行されたＩ／Ｏコマンドは、キューイング可否判定テーブル１３１等の設定に従ってキューイングされるため、スループットが向上する。その処理が終了すると、データベース処理プログラムは、その後に発行されるＩ／Ｏコマンドがキューイングされないようにキューイング可否判定テーブル１３１を設定してもよい。
【０１８７】
あるいは、ホスト１０１が、昼間は短いレスポンスタイムが要求される処理を実行し、夜間は高いスループットが要求されるバッチ処理等を実行する場合に本実施の形態が適用されてもよい。この場合、夜間の処理が開始される前に、ホスト１０１がキューイング制御コマンドを発行してキューイングの実行を設定する。そして、夜間の処理が終了した後で、キューイング制御コマンドを発行してキューイングの実行を解除する。
【０１８８】
このように、本発明の第４の実施の形態によれば、ストレージ管理装置１０４がなくても、ホスト１０１がキューイングを制御することができるため、利便性が向上する。
【０１８９】
次に、本発明の第５の実施の形態について説明する。
【０１９０】
本発明の第５の実施の形態の計算機システムの構成は、キューイング可否判定テーブル１３１に設定される内容及びキューイング判定部１１３が実行する処理を除いて、第１の実施の形態と同様である。以下、第５の実施の形態が第１の実施の形態と相違する点のみについて説明する。
【０１９１】
図１６は、本発明の第５の実施の形態のキューイング可否判定テーブルの説明図である。
【０１９２】
図１６に示すキューイング可否判定テーブル１６０１は、図１に示すキューイング可否判定テーブル１３１に相当する。
【０１９３】
キューイング可否判定テーブル１６０１は、項番１６１１、ホストＬＵ番号１６１２及びＬＵ番号１６１３からなる。
【０１９４】
項番１６１１は、キューイング可否判定テーブル１６０１の各エントリ（行）を一意に識別する通し番号である。
【０１９５】
ホストＬＵ番号１１１２は、ストレージシステム１０３がキューイングの対象となるＩ／Ｏコマンドを受け付けるためにホスト１０１に提供するＬＵＮである。
【０１９６】
ＬＵ番号１６１３は、ホストＬＵ番号１１１２と対応する実際のＬＵＮである。
【０１９７】
図１６の例では、項番１６１１の値「１」に対応するホストＬＵ番号１６１２及びＬＵ番号１６１３として、それぞれ、「１１」及び「１」が設定されている。これは、ＬＵＮが「１」であるＬＵが、二つのＬＵ（すなわち、ＬＵＮが「１１」であるＬＵ及びＬＵＮが「１」であるＬＵ）としてホスト１０１に提供されていることを意味する。ホスト１０１は、直ちに実行される必要があるＩ／Ｏコマンドを、ＬＵＮ「１」を指定して発行する。そして、同じＬＵを対象とした高いスループットが要求されるＩ／Ｏコマンドを、ＬＵＮ「１０」を指定して発行する。
【０１９８】
図１６の例では、さらに、項番１６１１の値「２」に対応するホストＬＵ番号１６１２及びＬＵ番号１６１３として、それぞれ、「１２」及び「２」が設定されている。これは、上記と同様に、ホスト１０１が、ＬＵＮが「２」であるＬＵに対してキューイングの対象となるＩ／Ｏコマンドを発行する場合、ＬＵＮ「１２」を指定することを意味する。
【０１９９】
図１７は、本発明の第５の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
【０２００】
図１７に示すキューイング可否判定テーブル設定画面１７０１は、図１６に示すキューイング可否判定テーブル１６０１を設定するためにストレージ管理装置１０４の出力装置に表示される画面である。キューイング可否判定テーブル設定画面１７０１は、ホストＬＵ番号入力フィールド１７１１、ＬＵ番号入力フィールド１７１２、キューイング可否判定テーブル表示フィールド１７１３、読み込みボタン１７１４、保存ボタン１７１５及び削除ボタン１７１６を含む。
【０２０１】
ホストＬＵ番号入力フィールド１７１１及びＬＵ番号入力フィールド１７１２は、それぞれ、ホストＬＵ番号１６１２及びＬＵ番号１６１３に設定される値を入力するためのフィールドである。
【０２０２】
キューイング可否判定テーブル表示フィールド１７１３には、キューイング可否判定テーブル１６０１に既に設定されている値が表示される。
【０２０３】
図１７は、キューイング可否判定テーブル表示フィールド１７１３において項番が「２」である行が選択された場合の例である。
【０２０４】
読み込みボタン１７１４、保存ボタン１７１５及び削除ボタン１７１６の使用方法は、図４の読み込みボタン４１５、保存ボタン４１６及び削除ボタン４１７の使用方法と同じである。また、これらのボタンを使用してキューイング可否判定テーブル設定画面１７０１に値を設定する方法は、図４に示す通りである。このため、これらの方法については、説明を省略する。
【０２０５】
図１８は、本発明の第５の実施の形態のキューイング判定部１１３が実行する詳細な処理を示すフローチャートである。
【０２０６】
本発明の第５の実施の形態のキューイング判定部１１３は、第１の実施の形態のキューイング判定部１１３と同様、図２に示す処理を実行する。図１８は、本実施の形態のキューイング判定部１１３が実行する図２の処理を、より詳細に説明するものである。図１８に示す各ステップのうち、ステップ１８０４及び１８０５は、それぞれ、図２のステップ２０３及び２０４と同じであるため、説明を省略する。
【０２０７】
最初に、キューイング判定部１１３は、キューイング可否判定テーブル１６０１を参照して、受け付けたＩ／Ｏコマンドによって指定されたＬＵＮが、ホストＬＵ番号１６１２として設定されているか否かを調査する（１８０１）。
【０２０８】
次に、キューイング判定部１１３は、ステップ１８０１の調査の結果、指定されたＬＵＮが、ホストＬＵ番号１６１２として設定されているか否かを判定する（１８０２）。
【０２０９】
ステップ１８０２において「設定されていない（すなわち、ＮＯ）」と判定された場合、受け付けたＩ／Ｏコマンドはキューイングの対象でない。この場合、処理はステップ１８０５に進む。
【０２１０】
一方、ステップ１８０２において「設定されている（すなわち、ＹＥＳ）」と判定された場合、受け付けたＩ／Ｏコマンドはキューイングの対象である。この場合、キューイング判定部１１３は、受け付けたＩ／Ｏコマンドによって指定されているホストＬＵ番号１６１２を、そのＬＵ番号１６１２に対応するＬＵ番号１６１３の値に置き換える（１８０３）。その後、処理はステップ１８０４に進む。その結果、置き換えられたＬＵ番号１６１３の値によって識別されるＬＵを対象として、ステップ１８０４の処理が実行される。
【０２１１】
なお、ステップ１８０２において「ＹＥＳ」と判定された場合が、図２のステップ２０２において条件を満たすと判定された場合に相当する。一方、ステップ１８０２において「ＮＯ」と判定された場合が、図２のステップ２０２において条件を満たさないと判定された場合に相当する。
【０２１２】
例えば、コマンド受付部１１１が、ＬＵＮが「１０」であるＬＵを指定したＩ／Ｏコマンドを受け付けた場合、キューイング判定部１１３は、キューイング可否判定テーブル１６０１を参照する（１８０１）。ホストＬＵ番号１６１２に「１０」が設定されているため、ステップ１８０２において、「ＹＥＳ」と判定される。キューイング可否判定テーブル１６０１のホストＬＵ番号１６１２の値「１０」と対応して設定されているＬＵ番号１６１３の値は、「１」である。このため、Ｉ／Ｏコマンドによって指定されたＬＵＮ「１０」が、「１」に置き換えられる。その後、ＬＵＮが「１」であるＬＵを対象として、ステップ１８０４が実行される。
【０２１３】
一方、例えば、コマンド受付部１１１が、ＬＵＮが「２」であるＬＵを指定したＩ／Ｏコマンドを受け付けた場合、キューイング判定部１１３は、キューイング可否判定テーブル１６０１を参照する（１８０１）。ホストＬＵ番号１６１２に「２」が設定されていないため、ステップ１８０２において、「ＮＯ」と判定される。この場合、ＬＵＮが「２」であるＬＵを対象として、ステップ１８０５が実行される。
【０２１４】
以上の本発明の第５の実施の形態によれば、一つのＬＵが、異なるＬＵＮを持つ二つのＬＵとしてホスト１０１に提供される。その一方のＬＵＮを指定して発行されたＩ／Ｏコマンドは、ストレージシステム１０３によってキューイングされる。このため、ホスト１０１は、同じＬＵにＩ／Ｏコマンドを発行する場合でも、高いスループットを要求する場合には、短いレスポンスタイムを要求する場合と異なるＬＵＮを指定することによって、望ましい性能を実現することができる。第３の実施の形態でも同様の効果が期待できるが、第５の実施の形態は、複数のネットワークインタフェースを必要としない点で、第３の実施の形態と異なる。
【図面の簡単な説明】
【０２１５】
【図１】本発明の第１の実施の形態の計算機システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態のキューイング判定部が実行する処理を示すフローチャートである。
【図３】本発明の第１の実施の形態のキューイング可否判定テーブルの説明図である。
【図４】本発明の第１の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
【図５】本発明の第１の実施の形態のキューイング判定部が実行する詳細な処理を示すフローチャートである。
【図６】本発明の第１の実施の形態のキューイング管理テーブルの説明図である。
【図７】本発明の第１の実施の形態のキューイング管理テーブル設定画面の説明図である。
【図８】本発明の第２の実施の形態のキューイング可否判定テーブルの説明図である。
【図９】本発明の第２の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
【図１０】本発明の第２の実施の形態のキューイング判定部が実行する詳細な処理を示すフローチャートである。
【図１１】本発明の第３の実施の形態のキューイング可否判定テーブルの説明図である。
【図１２】本発明の第３の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
【図１３】本発明の第３の実施の形態のキューイング判定部が実行する詳細な処理を示すフローチャートである。
【図１４】本発明の第４の実施の形態の計算機システムの構成を示すブロック図である。
【図１５】本発明の第４の実施の形態のコマンド受付部が実行する処理を示すフローチャートである。
【図１６】本発明の第５の実施の形態のキューイング可否判定テーブルの説明図である。
【図１７】本発明の第５の実施の形態のキューイング可否判定テーブル設定画面の説明図である。
【図１８】本発明の第５の実施の形態のキューイング判定部が実行する詳細な処理を示すフローチャートである。
【図１９】本発明の第１の実施の形態のキャッシュ管理部が実行する処理を示すフローチャートである。
【図２０】本発明の第１の実施の形態のストレージシステムのハードウエア構成を示すブロック図である。
【符号の説明】
【０２１６】
１０１  ホスト
１０２  ネットワーク
１０３  ストレージシステム
１０４  ストレージ管理装置
１０５  管理ネットワーク
１１１  コマンド受付部
１１２  キャッシュ管理部
１１３  キューイング判定部
１１４  キューイング処理部
１１５  キューイング制御部
１１６  アドレス変換部
１１７  ドライブ制御部
１２１、１２２、１２３  記憶装置
１３１、３０１、８０１、１１０１、１６０１  キューイング可否判定テーブル
１３２、６０１  キューイング管理テーブル
１４０  コントローラ
１４１  プロセッサ
１４２  メモリ
１４３  キャッシュメモリ
１４４  ホストインターフェース（Ｉ／Ｆ）
１４５  管理インターフェース（Ｉ／Ｆ）
１４６  ドライブインターフェース（Ｉ／Ｆ）
【図１】
0004804175.tif 000002
【図２】
0004804175.tif 000003
【図３】
0004804175.tif 000004
【図４】
0004804175.tif 000005
【図５】
0004804175.tif 000006
【図６】
0004804175.tif 000007
【図７】
0004804175.tif 000008
【図８】
0004804175.tif 000009
【図９】
0004804175.tif 000010
【図１０】
0004804175.tif 000011
【図１１】
0004804175.tif 000012
【図１２】
0004804175.tif 000013
【図１３】
0004804175.tif 000014
【図１４】
0004804175.tif 000015
【図１５】
0004804175.tif 000016
【図１６】
0004804175.tif 000017
【図１７】
0004804175.tif 000018
【図１８】
0004804175.tif 000019
【図１９】
0004804175.tif 000020
【図２０】
0004804175.tif 000021