(57)【要約】【課題】ストレージシステム全体としてのＩ／Ｏ性能を向上させながら、ストレージシステムの汎用性及び利便性を向上させ得るストレージ装置及びその制御方法を提案する。【解決手段】ホストコンピュータから与えられたリード要求又はライト要求に応じたコマンドを生成し、生成したコマンドを複数のポートのうちのいずれかのポートを介して外部ストレージ装置に発行する外部接続機能がストレージ装置に搭載されている場合に、コマンドの種別ごとに、テスト用コマンドを複数の発行方式で外部ストレージ装置に発行すると共に、発行方式ごとのＩ／Ｏ性能を測定し、発行方式ごとのＩ／Ｏ性能の測定結果を表示し、及び又は発行方式ごとのＩ／Ｏ性能の測定結果に基づいて、チャネルプロセッサが当該外部ストレージ装置に対してコマンドを発行する際の発行方式を設定するようにした。【選択図】図１１
2010026873.tif 000002
【特許請求の範囲】
【請求項１】
自己に接続された外部ストレージ装置が提供する１又は複数の論理ボリュームをそれぞれ仮想化してホストコンピュータに提供するストレージ装置において、
それぞれ異なるパスを介して前記外部ストレージ装置と接続された複数のポートと、
前記ホストコンピュータから与えられたリード要求又はライト要求に応じたコマンドを生成し、生成したコマンドを前記複数のポートのうちのいずれかのポートを介して前記外部ストレージ装置に発行するチャネルプロセッサと
を備え、
前記チャネルプロセッサは、前記コマンドの種別ごとに、
テスト用コマンドを複数の発行方式で前記外部ストレージ装置に発行すると共に、前記発行方式ごとのＩ／Ｏ性能を測定し、
前記発行方式ごとのＩ／Ｏ性能の測定結果を表示し、及び又は前記発行方式ごとのＩ／Ｏ性能の測定結果に基づいて、当該外部ストレージ装置に対して前記コマンドを発行する際の前記発行方式を設定する
ことを特徴とするストレージ装置。
【請求項２】
前記チャネルプロセッサは、
前記テスト用コマンドを前記複数の発行方式で、かつ発行方式ごとにそれぞれ１又は複数の発行パターンで前記外部ストレージ装置に発行すると共に、前記発行パターンごとのＩ／Ｏ性能を測定し、
前記発行パターンごとのＩ／Ｏ性能の測定結果を表示し、及び又は前記発行パターンごとのＩ／Ｏ性能の測定結果に基づいて、当該外部ストレージ装置に対して前記コマンドを発行する際の前記発行パターンを設定する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項３】
同じ前記発行方式の前記複数の発行パターンは、それぞれ１秒間にリード又はライトすべきデータの合計量が異なる
ことを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記コマンドの種別は、
少なくともシーケンシャルデータのリードを要求するシーケンシャルリードコマンドと、シーケンシャルデータのライトを要求するシーケンシャルライトコマンドと、ランダムデータのリードを要求するランダムリードコマンドと、ランダムデータのライトを要求するランダムライトコマンドとを含む
ことを特徴とする請求項１に記載のストレージ装置。
【請求項５】
前記複数の発行方式のうちの１つの発行方式は、
前記複数のポートのうちの前記外部ストレージ装置が提供する前記論理ボリュームごとにそれぞれ予め１つの優先ポートが定められ、前記論理ボリュームを対象とする前記コマンドを対応する前記優先ポートを介して前記外部ストレージ装置に発行する方式である
ことを特徴とする請求項１に記載のストレージ装置。
【請求項６】
前記複数の発行方式のうちの１つの発行方式は、
前記複数のポートのうちの１つのポートを介して前記外部ストレージ装置に前記コマンドを送信し、
当該ポートを介して送信した前記コマンドによりリード又はライトすべきデータの合計量が予め定められた第１の閾値を超えた場合に前記コマンドを送信するポートを前記複数のポートのうちの他のポートに切り替える方式である
ことを特徴とする請求項１に記載のストレージ装置。
【請求項７】
前記複数の発行方式のうちの１つの発行方式は、
前記複数のポートのうちの前記外部ストレージ装置が提供する前記論理ボリュームごとにそれぞれ予め１つの優先ポートが定められ、前記論理ボリュームを対象とする前記コマンドを、当該コマンドによりリード又はライトされるデータの合計量が予め定められた第２の閾値を超える分だけ貯めてから一度に、対応する前記優先ポートを介して前記外部ストレージ装置に発行する方式である
ことを特徴とする請求項１に記載のストレージ装置。
【請求項８】
前記複数の発行方式のうちの１つの発行方式は、
前記複数のポートのうちの１つのポートを介して前記コマンドを、当該コマンドによりリード又はライトされるデータの合計量が前記第１の閾値を超える分だけ貯めてから一度に、前記外部ストレージ装置に送信する
ことを特徴とする請求項１に記載のストレージ装置。
【請求項９】
自己に接続された外部ストレージ装置が提供する１又は複数の論理ボリュームをそれぞれ仮想化してホストコンピュータに提供するストレージ装置の制御方法において、
前記ホストコンピュータから与えられたリード要求又はライト要求に応じたコマンドを生成し、生成したコマンドを、それぞれ異なるパスを介して前記外部ストレージ装置と接続された複数のポートのうちのいずれかのポートを介して前記外部ストレージ装置に発行する機能が前記ストレージ装置に搭載され、
前記コマンドの種別ごとに、テスト用コマンドを複数の発行方式で前記外部ストレージ装置に発行すると共に、前記発行方式ごとのＩ／Ｏ性能を測定する第１のステップと、
前記発行方式ごとのＩ／Ｏ性能の測定結果を表示し、及び又は前記発行方式ごとのＩ／Ｏ性能の測定結果に基づいて、前記チャネルプロセッサが当該外部ストレージ装置に対して前記コマンドを発行する際の前記発行方式を設定する第２のステップと
を備えることを特徴とするストレージ装置の制御方法。
【請求項１０】
前記第１のステップでは、
前記テスト用コマンドを前記複数の発行方式で、かつ発行方式ごとにそれぞれ１又は複数の発行パターンで前記外部ストレージ装置に発行すると共に、前記発行パターンごとのＩ／Ｏ性能を測定し、
前記第２のステップでは、
前記発行パターンごとのＩ／Ｏ性能の測定結果を表示し、及び又は前記発行パターンごとのＩ／Ｏ性能の測定結果に基づいて、当該外部ストレージ装置に対して前記コマンドを発行する際の前記発行パターンを設定する
ことを特徴とする請求項９に記載のストレージ装置の制御方法。
【請求項１１】
同じ前記発行方式の前記複数の発行パターンは、それぞれ１秒間にリード又はライトすべきデータの合計量が異なる
ことを特徴とする請求項１０に記載のストレージ装置の制御方法。
【請求項１２】
前記コマンドの種別は、
少なくともシーケンシャルデータのリードを要求するシーケンシャルリードコマンドと、シーケンシャルデータのライトを要求するシーケンシャルライトコマンドと、ランダムデータのリードを要求するランダムリードコマンドと、ランダムデータのライトを要求するランダムライトコマンドとを含む
ことを特徴とする請求項９に記載のストレージ装置の制御方法。
【請求項１３】
前記複数の発行方式のうちの１つの発行方式は、
前記複数のポートのうちの前記外部ストレージ装置が提供する前記論理ボリュームごとにそれぞれ予め１つの優先ポートが定められ、前記論理ボリュームを対象とする前記コマンドを対応する前記優先ポートを介して前記外部ストレージ装置に発行する方式である
ことを特徴とする請求項９に記載のストレージ装置の制御方法。
【請求項１４】
前記複数の発行方式のうちの１つの発行方式は、
前記複数のポートのうちの１つのポートを介して前記外部ストレージ装置に前記コマンドを送信し、
当該ポートを介して送信した前記コマンドによりリード又はライトすべきデータの合計量が予め定められた第１の閾値を超えた場合に前記コマンドを送信するポートを前記複数のポートのうちの他のポートに切り替える方式である
ことを特徴とする請求項９に記載のストレージ装置の制御方法。
【請求項１５】
前記複数の発行方式のうちの１つの発行方式は、
前記複数のポートのうちの前記外部ストレージ装置が提供する前記論理ボリュームごとにそれぞれ予め１つの優先ポートが定められ、前記論理ボリュームを対象とする前記コマンドを、当該コマンドによりリード又はライトされるデータの合計量が予め定められた第２の閾値を超える分だけ貯めてから一度に、対応する前記優先ポートを介して前記外部ストレージ装置に発行する方式である
ことを特徴とする請求項９に記載のストレージ装置の制御方法。
【請求項１６】
前記複数の発行方式のうちの１つの発行方式は、
前記複数のポートのうちの１つのポートを介して前記コマンドを、当該コマンドによりリード又はライトされるデータの合計量が前記第１の閾値を超える分だけ貯めてから一度に、前記外部ストレージ装置に送信する
ことを特徴とする請求項９に記載のストレージ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置及びその制御方法に関し、特に外部接続機能が搭載されたストレージ装置に適用して好適なものである。
【背景技術】
【０００２】
従来、ストレージ装置の機能の１つとして、自己に接続された他のストレージ装置（以下、これを外部ストレージ装置と呼ぶ）が提供する論理ボリュームを仮想化する外部接続機能がある（例えば特許文献１参照）。
【０００３】
外部接続機能が搭載されたストレージ装置（以下、これをメインストレージ装置と呼ぶ）には、仮想化される外部ストレージ装置内に設定された論理ボリュームとそれぞれ対応付けて、仮想的な論理ボリュームが設定される。
【０００４】
そして、メインストレージ装置は、ホストコンピュータからある仮想ボリュームに対するリード要求やライト要求が与えられた場合、対応する論理ボリュームを有する外部ストレージ装置にそのリード要求又はライト要求に応じたコマンドを発行し、実際のリード処理やライト処理をその外部ストレージ装置に実行させる。
【０００５】
このような外部接続機能によれば、複数台の外部ストレージ装置がそれぞれ提供する論理ボリュームを一元管理することができるため、ストレージ装置の増設等を容易化させることができる利点がある。
【０００６】
なお、かかる特許文献１には、メインストレージ装置がホストコンピュータからのリード要求やライト要求に応じたコマンドを対応する外部ストレージ装置に送信する際に、外部ストレージ装置におけるリード処理やライト処理の処理状況をモニタし、必要に応じて負荷分散処理を行うことが開示されている（特許文献１）。
【特許文献１】特開２００６−３３１４５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、近年、外部ストレージ装置として用いられるストレージ装置には、種々の機能が搭載されたものや種々の特性を有するものがある。このようなストレージ装置の中には、メインストレージ装置からコマンドを送信するに際して、そのストレージ装置に搭載された機能やそのストレージ装置の特性に応じた発行パターンでコマンドを発行しなければＩ／Ｏ性能が劣化するものも存在する。
【０００８】
例えば、ストレージ装置に搭載される機能として、シーケンシャルデータ（連続したデータ）のリードコマンドが連続して与えられた場合に、次回以降に要求されると推測されるデータをキャッシュメモリに先読みしておくシーケンシャル学習機能があるが、このようなシーケンシャル学習機能が搭載されたストレージ装置の中には、Ｉ／Ｏ性能向上のためにメインストレージ装置から外部ストレージ装置に複数のパスを用いてコマンドを順次発行すると、リード対象のデータがシーケンシャルデータであることを認識できないものが存在する。
【０００９】
またストレージ装置に搭載される他の機能として、キャッシュメモリ上に保存されているデータに対するリード要求やライト要求のコマンドが与えられたときに、当該コマンドの送受信を担当するポート又はプロセッサが他のポート又は他のプロセッサがアクセスできないように排他処理を行う排他処理機能がある。
【００１０】
そしてシーケンシャル学習機能及び排他処理機能の双方が搭載されたストレージ装置を外部ストレージ装置として用い、さらにメインストレージ装置から外部ストレージ装置に複数のパスを用いてコマンドを順次発行すると、リード対象のデータがシーケンシャルデータである場合には、あるポートに送信したリードコマンドに基づきシーケンシャル学習機能によってキャッシュメモリに読み出されたデータを、次に他のポートに送信したリードコマンドによっては直ちに読み出すことができず、排他処理の解除があるまで待ち（排他解除待ち）が発生するという事態が生じる。
【００１１】
さらにかかる外部ストレージ装置として用いられるストレージ装置の中には、すべてのポートが万全に使用できるわけではなく、コマンドに応じたリード処理やライト処理を実行するプロセッサの数がポートの数に比べて少ないなどの理由により、あるポートを使用すると別のポートの処理機能が低下してしまうものもある。
【００１２】
従って、メインストレージ装置が外部ストレージ装置に対してコマンドを発行するに際しては、その外部ストレージ装置に搭載された機能や、その外部ストレージ装置の特性に適したパターンでコマンドを発行することが望まれ、そのようにすることによってシステム全体としてのＩ／Ｏ性能を向上させ得るものと考えられる。
【００１３】
しかしながら、ホストコンピュータ、メインストレージ装置及び外部ストレージ装置を含むストレージシステムを構築するに際して、ユーザが各外部ストレージ装置にそれぞれ搭載された機能や各外部ストレージ装置の特性を完全に把握し、メインストレージ装置に対して外部ストレージ装置ごとの当該外部ストレージ装置に適したコマンドの発行パターンを設定することは煩雑である。従って、かかるストレージシステムを構築するに際してこのような設定を容易に行うことができれば、ストレージシステムの汎用性及び利便性を向上させ得るものと考えられる。
【００１４】
本発明は以上の点を考慮してなされたもので、ストレージシステム全体としてのＩ／Ｏ性能を向上させながら、ストレージシステムの汎用性及び利便性を向上させ得るストレージ装置及びその制御方法を提案しようとするものである。
【課題を解決するための手段】
【００１５】
かかる課題を解決するため本発明においては、自己に接続された外部ストレージ装置が提供する１又は複数の論理ボリュームをそれぞれ仮想化してホストコンピュータに提供するストレージ装置において、それぞれ異なるパスを介して前記外部ストレージ装置と接続された複数のポートと、前記ホストコンピュータから与えられたリード要求又はライト要求に応じたコマンドを生成し、生成したコマンドを前記複数のポートのうちのいずれかのポートを介して前記外部ストレージ装置に発行するチャネルプロセッサとを備え、前記チャネルプロセッサは、前記コマンドの種別ごとに、テスト用コマンドを複数の発行方式で前記外部ストレージ装置に発行すると共に、前記発行方式ごとのＩ／Ｏ性能を測定し、前記発行方式ごとのＩ／Ｏ性能の測定結果を表示し、及び又は前記発行方式ごとのＩ／Ｏ性能の測定結果に基づいて、当該外部ストレージ装置に対して前記コマンドを発行する際の前記発行方式を設定することを特徴とする。
【００１６】
また本発明においては、自己に接続された外部ストレージ装置が提供する１又は複数の論理ボリュームをそれぞれ仮想化してホストコンピュータに提供するストレージ装置の制御方法において、前記ホストコンピュータから与えられたリード要求又はライト要求に応じたコマンドを生成し、生成したコマンドを、それぞれ異なるパスを介して前記外部ストレージ装置と接続された複数のポートのうちのいずれかのポートを介して前記外部ストレージ装置に発行する機能が前記ストレージ装置に搭載され、前記コマンドの種別ごとに、テスト用コマンドを複数の発行方式で前記外部ストレージ装置に発行すると共に、前記発行方式ごとのＩ／Ｏ性能を測定する第１のステップと、前記発行方式ごとのＩ／Ｏ性能の測定結果を表示し、及び又は前記発行方式ごとのＩ／Ｏ性能の測定結果に基づいて、前記チャネルプロセッサが当該外部ストレージ装置に対して前記コマンドを発行する際の前記発行方式を設定する第２のステップと備えることを特徴とする。
【００１７】
本ストレージ装置及びその制御方法を適用することにより、ストレージシステムを構築するに際して、ユーザが各外部ストレージ装置にそれぞれ搭載された機能や各外部ストレージ装置の特性を完全に把握する必要がなく、そのストレージ装置に対する外部ストレージ装置ごとの最適なコマンド発行パターンの設定を容易に行うことができる。
【発明の効果】
【００１８】
本発明によれば、ストレージシステム全体としてのＩ／Ｏ性能を向上させながら、ストレージシステムの汎用性及び利便性を向上させることができる。
【発明を実施するための最良の形態】
【００１９】
以下図面について、本発明の一実施の形態を詳述する。
【００２０】
（１）本実施の形態によるストレージシステムの全体構成
図１において、１は全体として本実施の形態によるストレージシステムを示す。このストレージシステム１では、１又は複数のホストコンピュータ２が第１のネットワーク３を介してメインストレージ装置４に接続されると共に、このメインストレージ装置４に直接又は第２のネットワーク５を介して外部ストレージ装置６が接続されて構成される。またメインストレージ装置４には、管理用端末７が接続されている。
【００２１】
ホストコンピュータ２は、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータやワークステーション、メインフレームなどから構成される。ホストコンピュータ２は、キーボード、スイッチやポインティングデバイス、マイクロホン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備える。
【００２２】
第１及び第２のネットワーク３，５は、例えばＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）、インターネット、公衆回線又は専用回線などから構成される。この第１のネットワーク３を介したホストコンピュータ２及びメインストレージ装置４間の通信及びメインストレージ装置４及び外部ストレージ装置６間の通信は、例えば第１及び第２のネットワーク３，５がＳＡＮである場合にはファイバーチャネルプロトコルに従って行われ、第１及び第２のネットワーク３，５がＬＡＮである場合にはＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。
【００２３】
メインストレージ装置４は、ホストコンピュータ２に対して外部ストレージ装置６が提供する１又は複数の論理ボリュームをそれぞれ仮想化してホストコンピュータ２に提供する外部接続機能が搭載されており、複数の物理記憶デバイス１０から構成される記憶部１１と、コントロール部１２とを備えて構成される。
【００２４】
物理記憶デバイス１０としては、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスク又はＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクが適用される。
【００２５】
これら物理記憶デバイス１０はコントロール部１２によりＲＡＩＤ方式で運用される。１又は複数の物理記憶デバイス１０が提供する物理的な記憶領域上に、１又は複数の論理ボリュームＶＯＬが設定される。そしてデータは、これら論理ボリュームＶＯＬに所定大きさのブロック（以下、これを論理ブロックと呼ぶ）単位で記憶される。
【００２６】
論理ボリュームＶＯＬには、それぞれ固有の識別子（ＬＵＮ：Logical Unit Number）が付与される。本実施の形態の場合、データの入出力は、このＬＵＮと、各ブロックにそれぞれ付与される固有の番号（ＬＢＡ：Logical Block Address）とを組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２７】
なお、メインストレージ装置４が提供する論理ボリュームＶＯＬの属性としては、実ボリューム及び仮想ボリュームがある。実ボリュームは、実体を有する論理ボリュームであり、記憶部１１の物理記憶デバイス１０が提供する物理的な記憶領域上に設定された論理ボリュームＶＯＬが該当する。
【００２８】
仮想ボリュームは、実体を有さない仮想的な論理ボリュームであり、メインストレージ装置４内の論理ボリュームＶＯＬや、外部ストレージ装置６内に設定された論理ボリュームと対応付けられる。外部接続機能は、仮想ボリュームに対するホストコンピュータ２からのリード要求及びライト要求に応じたコマンドを、その仮想ボリュームと対応付けられた論理ボリュームを有する外部ストレージ装置６に発行する機能であり、当該外部ストレージ装置においてその論理ボリュームに対してデータがリード／ライトされる。またこのときリードされたデータは、メインストレージ装置４を介してホストコンピュータ２に転送される。
【００２９】
一方、コントロール部１２は、複数のポート２０、複数のチャネルプロセッサ２１、キャッシュメモリ２２及び共有メモリ２３を備えて構成される。
【００３０】
ポート２０は、コントロール部１２を第１若しくは第２のネットワーク３，５又は外部ストレージ装置６と接続するためインタフェースであり、例えばＩＰ（Internet Protocol）アドレスやＷＷＮ（World Wide Name）などの固有のネットワークアドレスがそれぞれ割り当てられる。各ポート２０は、それぞれ異なるパスを介して外部ストレージ装置６と接続される。
【００３１】
チャネルプロセッサ２１は、ＣＰＵ２１Ａ及び内部メモリ２１Ｂ等を備えて構成され、ホストコンピュータ２又は外部ストレージ装置６から送信される各種コマンドを解釈して必要な処理を実行する。例えばチャネルプロセッサ２１は、外部接続機能に関連して、ホストコンピュータ２から与えられたリード要求やライト要求に応じたコマンドを生成し、生成したコマンドを対応するポート２０を介して対応する外部ストレージ装置６に発行する。
【００３２】
キャッシュメモリ２２及び共有メモリ２３は、チャネルプロセッサ２１により共有されるメモリである。キャッシュメモリ２２は、主に物理記憶デバイス１０に入出力するデータを一時的に保存するために利用される。また共有メモリ２３は、主にメインストレージ装置４全体の構成に関するシステム構成情報や、コマンド等を記憶するために利用される。
【００３３】
外部ストレージ装置６は、複数の物理記憶デバイスと、当該物理記憶デバイスに対するデータの入出力を制御するコントロール部とを備えて構成される。外部ストレージ装置６は、外部接続機能が搭載されていない点を除いてメインストレージ装置４と同様の構成を有するため、その詳細な説明は省略する。本実施の形態の場合、各外部ストレージ装置６は、それぞれ複数のパスを介してメインストレージ装置４と接続される。
【００３４】
管理用端末７は、メインストレージ装置４全体の動作を制御する端末装置であり、例えばノード型のパーソナルコンピュータから構成される。管理用端末７は、図示しないＬＡＮを介して各チャネルプロセッサ２１と接続されている。管理用端末７は、メインストレージ装置４から収集した情報を表示した情報画面や各種のＧＵＩ（Graphical User Interface）を表示したり、ＧＵＩを用いたユーザからの入力に応じたコマンドをメインストレージ装置４に送信する。
【００３５】
（２）Ｉ／Ｏ性能テスト機能
次に、メインストレージ装置４に搭載されたＩ／Ｏ性能テスト機能について説明する。なお、以下において、シーケンシャルリード及びシーケンシャルライトとは、それぞれ連続するデータ（シーケンシャルデータ）の読み出し又は書き込みを指し、ライトランダムリード及びランダムライトとは、それぞれ連続しないデータ（ランダムデータ）の読み出し又は書き込みを指す。
【００３６】
本ストレージシステム１の場合、メインストレージ装置４には、新たに接続された外部ストレージ装置６に対して複数種類のコマンド発行方式でテスト用コマンドをコマンド種別（シーケンシャルリードコマンド、シーケンシャルライトコマンド、ランダムリードコマンド及びランダムライトコマンド）ごとにそれぞれ発行し、その外部ストレージ装置６において最も良いＩ／Ｏ性能が得られたコマンド発行方式をコマンド種別ごとにそれぞれ検出するＩ／Ｏ性能テスト機能が搭載されている。
【００３７】
ここで、本実施の形態の場合、チャネルプロセッサ２１におけるコマンド（テスト用コマンドを含む）の発行方式としては、第１〜第４のコマンド発行方式が予め規定されている。
【００３８】
このうち第１のコマンド発行方式は、外部ストレージ装置６内の論理ボリュームごとにそれぞれ予め定められた特定のポート（以下、これを優先ポートと呼ぶ）２０を介して外部ストレージ装置６にコマンドを送信するコマンド発行方式である。このコマンド発行方式は、外部ストレージ装置６が以下の特徴をもつ場合に有効である。
【００３９】
(a) リード対象のデータがシーケンシャルであってもリードコマンドを受信するポートが異なるとシーケンシャルデータであると判断できない場合。
(b) 外部ストレージ装置６に排他処理機能が搭載されている場合。シーケンシャルデータを対象とする複数のコマンドを異なるパスを介して外部ストレージ装置６に送信した場合、排他解除待ちが発生することになる。
(c) 外部ストレージ装置６内の全ポートが万全に使用できるわけでなく、チャネルプロセッサの数がポートに比べて少ないなどの理由により、あるポートを使用すると他のポートの処理能力が低下してしまう場合。
【００４０】
また第２のコマンド発行方式は、メインストレージ装置４内の１つのポート２０を使用して外部ストレージ装置６にコマンドを順次発行し、そのポート２０から送信したコマンドによりリード又はライトするよう指定したデータの合計量（以下、これをコマンドサイズと呼ぶ）が予め定められた閾値を超えた場合に、コマンドの送信を行うポート２０を別のポートに切り替えるコマンド発行方式である。この第２のコマンド方式は、外部ストレージ装置６が上述した(a)〜(c)の特徴をもたない場合に有効である。
【００４１】
さらに第３のコマンド発行方式は、シーケンシャルリード及びシーケンシャルライトに限定したコマンド発行方式であり、第１のコマンド発行方式と同様に、優先ポート２０を介して外部ストレージ装置６にコマンドを送信するコマンド発行方式である。ただし、第３のコマンド発行方式は、コマンドを上述のコマンドサイズの閾値分だけ貯めてから一度に外部ストレージ装置６に送信するという点が第１のコマンド発行方式と異なる。この第３のコマンド発行方式は、外部ストレージ装置６が上述した(a)〜(c)の特徴をもつ場合や、外部ストレージ装置６における一つ一つのコマンド処理の内部処理が遅い場合に有効である。
【００４２】
さらに第４のコマンド発行方式は、第２のコマンド発行方式と同様に、シーケンシャルリード及びシーケンシャルライトに限定したコマンド発行方式であり、メインストレージ装置４内の１つのポート２０を使用して外部ストレージ装置６にコマンドを発行し、そのポート２０におけるコマンドサイズが上述のコマンドサイズの閾値を超えた場合に、コマンドの送信を行うポートを別のポート２０に切り替えるコマンド発行方式である。この第４のコマンド発行パターンは、コマンドを上述のコマンドサイズの閾値分だけ貯めてから一度に外部ストレージ装置６に送信するという点が第２のコマンド発行方式と異なる。この第４のコマンド発行方式は、外部ストレージ装置６が第２のコマンド発行方式に有効な特徴をもたない場合に有効である。
【００４３】
そしてメインストレージ装置４は、Ｉ／Ｏ性能テスト機能に基づくＩ／Ｏ性能テストの実行時、シーケンシャルリードコマンド及びシーケンシャルライトコマンドについては第１〜第４のコマンド発行方式で発行すると共に、ランダムリードコマンド及びランダムライトコマンドについては第１及び第２のコマンド発行方式で発行し、そのとき受け付けられたコマンドのコマンドサイズを計測する。
【００４４】
この際、メインストレージ装置４は、シーケンシャルリード及びシーケンシャルライトに関しては、第２〜第４のコマンド発行方式のそれぞれについて、コマンドサイズの閾値が「０」ＭＢ、「10000000」ＭＢ、「20000000」ＭＢ及び「50000000」ＭＢの場合についてＩ／Ｏ性能テストを行う。従って、本実施の形態の場合、シーケンシャルリード及びシーケンシャルライトについては、それぞれ第１のコマンド発行方式で１パターン、第２〜第４のコマンド発行方式でそれぞれ４パターンの合計13種類のパターン（以下、これらのパターンをそれぞれコマンド発行パターンと呼ぶ）のＩ／Ｏ性能テストが行われることになる。
【００４５】
またメインストレージ装置４は、ランダムリード及びランダムライトに関しても、コマンドサイズの閾値が「０」ＭＢ、「10000000」ＭＢ、「20000000」ＭＢ及び「50000000」ＭＢの場合についてＩ／Ｏ性能テストを行う。従って、本実施の形態の場合、ランダムリード及びランダムライトについては、第１のコマンド発行方式で１パターン、第２のコマンド発行方式で４パターンの合計５種類のコマンド発行パターンのＩ／Ｏ性能テストが行われることになる。
【００４６】
なお、コマンドサイズが「０」ＭＢの場合とは、１つのコマンドにより指定されるリード又はライト対象のデータのデータ量に関わりなく、１コマンドずつの区切りでコマンドを外部ストレージ装置６に送信する場合のことを意味する。例えば第２及び第４のコマンド発行方式の場合には、１つのコマンドを送信したら次のパスに移り（ラウンドロビン）、第３のコマンド発行方式の場合には、第１のコマンド発行方式と同じになる。従って、第３及び第４のコマンド方式の場合には、コマンドサイズを「０」ＭＢとする意味はない。
【００４７】
以上のようなＩ／Ｏ性能テストを実行するための手段として、チャネルプロセッサ２１の内部メモリ２１Ｂには、図１に示すように、Ｉ／Ｏ性能テストメインプログラム３０、運用時コマンド処理プログラム３１、ボリューム優先ポート設定プログラム３２、コマンドレスポンス応答プログラム３３及び周期処理プログラム３４が実装され、共有メモリ２３には、コマンド発行パターン管理テーブル３５、Ｉ／Ｏ性能テスト環境設定管理テーブル３６、運用時コマンド発行パターン管理テーブル３７、コマンド発行順序管理テーブル３８及びボリューム優先ポート管理テーブル３９が格納されている。
【００４８】
このうちＩ／Ｏ性能テストメインプログラム３０は、上述したＩ／Ｏ性能テストを実行するためのメインプログラムであり、運用時コマンド処理プログラム３１は、ストレージシステム１の通常運用時にチャネルプロセッサ２１が外部ストレージ装置６に対して必要なコマンドを発行するコマンド処理を行うためのプログラムである。
【００４９】
またボリューム優先ポート設定プログラム３２は、Ｉ／Ｏ性能テスト時や通常運用時に外部ストレージ装置６に対して上述した第１又は第３のコマンド発行方式でコマンドを発行する際に利用する優先ポート２０を外部ストレージ装置６内の論理ボリュームごとにそれぞれ設定するためのプログラムである。
【００５０】
さらにコマンドレスポンス応答プログラム３３は、外部ストレージ装置６に発行したコマンドに対するその外部ストレージ装置６からの応答を受信したときのコマンドレスポンス応答処理を行うためのプログラムであり、周期処理プログラム３４は、Ｉ／Ｏ性能テスト時や通常運用時に外部ストレージ装置６に対して上述した第２又は第４のコマンド発行方式でコマンドを発行する際に当該コマンドを発行するポート２０を切り替えるためのプログラムである。
【００５１】
一方、コマンド発行パターン管理テーブル３５は、コマンド発行パターンの設定及びＩ／Ｏ性能テストのテスト結果を管理するためのテーブルであり、図２に示すように、外部ストレージ種別欄３５Ａ、コマンド発行パターン番号欄３５Ｂ、コマンド発行方式欄３５Ｃ、コマンドサイズ欄３５Ｄ及び測定結果欄３５Ｅから構成されている。
【００５２】
そして、外部ストレージ種別欄３５Ａには、Ｉ／Ｏ性能テストのテスト対象となる外部ストレージ装置６の種別（識別情報）が格納される。またコマンド発行方式欄３５Ｃには、その行（エントリ）に対応するコマンド発行方式（第１〜第４のコマンド発行方式）が格納される。図２の例の場合、「Ａ」〜「Ｄ」がそれぞれ第１〜第４のコマンド発行方式に対応する。またコマンドサイズ欄３５Ｄには、その行に対応するコマンド発行パターンにおけるコマンドサイズの閾値が格納される。
【００５３】
さらに本実施の形態の場合、上述のようにコマンド発行方式（第１〜第４のコマンド発行方式）と、コマンドサイズの閾値（「０」、「10000000」、「20000000」及び「50000000」）との組み合わせで合計１３種類のコマンド発行パターンが存在するが、これらのコマンド発行パターンにそれぞれ付与された番号（以下、これをパターン番号と呼ぶ）がコマンド発行パターン番号欄３５Ｂに格納される。
【００５４】
測定結果欄３５Ｅは、シーケンシャルリード欄３５Ｆ、シーケンシャルライト欄３５Ｇ、ランダムリード欄３５Ｈ及びランダムライト欄３５Ｉから構成される。これらシーケンシャルリード欄３５Ｆ、シーケンシャルライト欄３５Ｇ、ランダムリード欄３５Ｈ及びランダムライト欄３５Ｉは、それぞれ有効／無効欄３５ＦＡ，３５ＧＡ，３５ＨＡ，３５ＩＡ及び測定結果格納欄３５ＦＢ，３５ＧＢ，３５ＨＢ，３５ＩＢから構成されている。
【００５５】
そして有効／無効欄３５ＦＡ，３５ＧＡ，３５ＨＡ，３５ＩＡには、そのエントリのコマンド発行パターンがそのシーケンシャルリード欄３５Ｆ、シーケンシャルライト欄３５Ｇ、ランダムリード欄３５Ｈ及びランダムライト欄３５Ｉに対応するコマンド種別（シーケンシャルリードコマンド、シーケンシャルライトコマンド、ランダムリードコマンド又はランダムライトコマンド）において有効なコマンド発行パターンであるか否かを表す情報（有効のときには「○」、無効のときには「×」）が格納される。
【００５６】
また測定結果格納欄３５ＦＢ，３５ＧＢ，３５ＨＢ，３５ＩＢには、Ｉ／Ｏ性能テストにおいてその行に対応するコマンド発行パターンでコマンドを発行した場合に得られた測定結果が格納される。例えば、図２の上から３行目のシーケンシャルリード欄３５Ｆの測定結果格納欄３５ＦＡ及び同じ行のシーケンシャルライト欄３５Ｇの測定結果格納欄３５ＧＢには、それぞれシーケンシャルリードコマンド又はシーケンシャルライトコマンドのコマンドサイズが「10000000」ＭＢのときに結果的に読み出され又は書き込まれたデータの合計量が格納される。また図２のコマンド発行パターン管理テーブル３５における同じ行のランダムリード欄３５Ｈの測定結果格納欄３５ＨＢ及び同じ行のランダムライト欄３５Ｉの測定結果格納欄３５ＩＢには、ランダムリードコマンド又はランダムライトコマンドのコマンドサイズが「10000000」ＭＢのときに結果的に処理されたコマンド数がそれぞれ格納される。
【００５７】
他方、Ｉ／Ｏ性能テスト環境設定管理テーブル３６は、外部ストレージ装置６ごとにかつコマンド種別ごとにそれぞれ予め設定された上述のＩ／Ｏ性能テストの条件を管理するためのテーブルであり、図３に示すように、外部ストレージ種別欄３６Ａ、コマンド種別欄３６Ｂ、テスト時間欄３６Ｃ、外部ストレージ発行ＬＵ数欄３６Ｄ、コマンド発行サイズ欄３６Ｅ及び使用ポート欄３６Ｆから構成される。
【００５８】
そして外部ストレージ種別欄３６Ａには、Ｉ／Ｏ性能テストの対象となる外部ストレージ装置６の識別情報が格納され、コマンド種別欄３６Ｂには、Ｉ／Ｏ性能テストの際に対応する外部ストレージ装置６に発行するコマンドのコマンド種別が格納される。
【００５９】
さらにテスト時間欄３６Ｃには、そのコマンド種別のコマンドによるＩ／Ｏ性能テストを行う時間（テスト時間）が格納され、外部ストレージ発行ＬＵ数欄３６Ｄには、そのＩ／Ｏ性能テスト時に対応するコマンド種別のコマンドを発行すべき論理ボリューム数が格納される。
【００６０】
さらにコマンド発行サイズ欄３６Ｅには、１つのコマンドでリード又はライトを要求するデータ量が格納され、使用ポート欄３６Ｆには、対応するコマンド種別のコマンドをテスト対象の外部ストレージ装置６に送信する際に使用するポート２０のポートＩＤが格納される。
【００６１】
他方、運用時コマンド発行パターン管理テーブル３７は、上述のようなＩ／Ｏ性能テストに基づいて、外部ストレージ装置６ごとにかつコマンド種別ごとに通常運用時に使用すべきコマンド発行パターンとして設定されたコマンド発行パターンを管理するためのテーブルであり、図４に示すように、外部ストレージ種別欄３７Ａ、コマンド種別欄３７Ｂ、コマンド発行パターン番号欄３７Ｃ及び適用時刻欄３７Ｄから構成される。
【００６２】
そして、外部ストレージ種別欄３７Ａには、メインストレージ装置４に接続された外部ストレージ装置６の識別情報が格納され、コマンド種別欄３７Ｂにはその外部ストレージ装置６に発行可能なコマンドのコマンド種別が格納される。またコマンド発行パターン番号欄３７Ｃには、対応するコマンド種別について通常運用時に使用するコマンド発行パターンとして設定されたコマンド発行パターンのパターン番号が格納される。なお、コマンド発行パターン番号欄に３７Ｃ格納されるパターン番号は、図２について上述したコマンド発行パターン管理テーブル３５のコマンド発行パターン番号欄３５Ｂに格納されたパターン番号と対応する。
【００６３】
従って、図４の例の場合、１行目のコマンド発行パターン番号欄に「11」という候補番号が格納されているため、「Hitachi USP(1111)」という外部ストレージ装置６のシーケンシャルリードについては、第４のコマンド発行方式で１秒間に「10000000」ＭＢのデータを読み出すコマンド発行パターン（図２参照）が通常運用時のコマンド発行パターンとして設定されていることが示されている。
【００６４】
また、適用時刻欄３７Ｄには、コマンド発行パターン番号欄３７Ｃにパターン番号が格納されたコマンド発行パターンを適用すべき時刻又は時間帯が格納される。図４において「default」は、対応する外部ストレージ装置６に対して対応するコマンド種別のコマンドを発行する際に、原則として対応するコマンド発行パターンを使用すべきことを意味する。
【００６５】
ただし、本実施の形態においては、後述のようにユーザが時間帯を指定して、その時間帯におけるコマンド発行パターンとして所望のコマンド発行パターンを設定することができるため、そのような場合にはその時間帯が適用時刻欄３７Ｄに格納される。そして適用時刻欄３７Ｄに時間帯が格納されている場合、その時間帯においては、同じ行のコマンド発行パターン番号欄３７Ｃに格納されたコマンド発行パターンが優先的に使用される。
【００６６】
例えば図４の場合、「Hitachi USP(1111)」という外部ストレージ装置６に関しては、通常はシーケンシャルリード、シーケンシャルライト、ランダムリード及びランダムライトのコマンド発行パターンとしてそれぞれパターン番号が「11」、「11」、「２」及び「２」のコマンド発行パターンが設定されている。しかしながら、「0:00から6:00まで」の時間帯については、シーケンシャルリード及びシーケンシャルライトのコマンド発行パターンとしてパターン番号が「13」のコマンド発行パターンが設定され、ランダムリード及びシランダムライトのコマンド発行パターンとしてパターン番号が「５」のコマンド発行パターンが設定されている。また、毎週日曜日については、シーケンシャルリード及びシーケンシャルライトのコマンド発行パターンとしてパターン番号が「13」のコマンド発行パターンが設定され、ランダムリード及びシランダムライトのコマンド発行パターンとしてパターン番号が「５」のコマンド発行パターンが設定されている。
【００６７】
コマンド発行順序管理テーブル３８は、Ｉ／Ｏ性能テスト時や通常運用時に１つのポート２０を介して送信したコマンドに基づきリード又はライトされるデータの累計サイズ（以下、これをコマンド送信累計サイズと呼ぶ）を管理するためのテーブルであり、外部ストレージ種別欄３８Ａ、ＬＵＮ欄３８Ｂ、コマンド種別欄３８Ｃ、送信ポートＩＤ欄３８Ｄ、開始ＬＢＡ欄３８Ｅ、合計サイズ欄３８Ｆ及び開始時間欄３８Ｇから構成される。
【００６８】
そして外部ストレージ種別欄３８Ａには、コマンドの送信先となる外部ストレージ装置６の識別情報が格納され、ＬＵＮ欄３８Ｂには、その外部ストレージ装置６内の論理ボリュームのうち、コマンドの宛先とした又は宛先としている論理ボリュームのＬＵＮが格納される。
【００６９】
またコマンド種別欄３８Ｃには、そのとき送信した又は送信するコマンドのコマンド種別が格納され、送信ポートＩＤ欄３８Ｄには、そのコマンドを送信するのに使用した又は使用しているポート２０のポートＩＤが格納される。さらに開始ＬＢＡ欄３８Ｅには、そのポート２０の使用を開始した最初のコマンドにおいてデータのリード又はライト先として指定したＬＢＡが格納され、合計サイズ欄３８Ｆには、そのポート２０を使用して送信したコマンドに基づいてリード又はライトされるデータの合計サイズが格納される。さらに開始時間欄３８Ｇには、そのポート２０の使用開始時刻が格納される。
【００７０】
ボリューム優先ポート管理テーブル３９は、各外部ストレージ装置６の各論理ボリュームについて予めユーザによりそれぞれ設定された優先ポート２０を管理するためのテーブルであり、図６に示すように、外部ストレージ種別欄３９Ａ、ＬＵＮ欄３９Ｂ及び優先ポートＩＤ欄３９Ｃから構成される。
【００７１】
そして外部ストレージ種別欄３９Ａには、対象とする外部ストレージ装置６の識別情報が格納され、ＬＵＮ欄３９Ｂには、その外部ストレージ装置６内に設けられた論理ボリュームのうち、メインストレージ装置４によって仮想化される論理ボリュームのＬＵＮが格納される。さらに優先ポートＩＤ欄３９Ｃには、対応する論理ボリュームについて設定された優先ポート２０のポートＩＤが格納される。
【００７２】
（３）Ｉ／Ｏ性能テストに関するＧＵＩ画面の構成
図７は、かかるＩ／Ｏ性能テストに関連して管理用端末７に表示されるＩ／Ｏ性能テストメイン画面４０を示す。このＩ／Ｏ性能テストメイン画面４０は、ユーザが管理用端末７を操作してＩ／Ｏ性能テストの対象とする外部ストレージ装置６を選択することによって管理用端末７に表示させることができる画面である。
【００７３】
Ｉ／Ｏ性能テストメイン画面４０では、その中央部にＩ／Ｏ性能テスト結果表示部４１が設けられ、このＩ／Ｏ性能テスト結果表示部４１に、そのとき設定されている各コマンド発行パターンの内容と、そのときＩ／Ｏ性能テストのテスト対象として選択された外部ストレージ装置６について先行して行われたＩ／Ｏ性能テストのテスト結果とが表示される。
【００７４】
具体的に、Ｉ／Ｏ性能テスト結果表示部４１には、コマンド発行パターン管理テーブル３５（図２）のエントリのうち、外部ストレージ種別欄３５Ａにそのとき選択された外部ストレージ装置６の識別情報が格納された各エントリのコマンド発行パターン番号欄３５Ｂ、コマンド発行方式欄３５Ｃ、コマンドサイズ欄３５Ｄ及び測定結果欄３５Ｅにそれぞれ格納された情報が格納される。
【００７５】
またＩ／Ｏ性能テスト結果表示部４１の周囲には、新規追加ボタン４２、編集ボタン４３、性能グラフボタン４４、測定開始ボタン４５、測定環境設定ボタン４６及び終了ボタン４７が表示される。
【００７６】
そしてＩ／Ｏ性能テストメイン画面４０では、新規追加ボタン４２をクリックすることによって、そのとき登録されているコマンド発行パターン（本実施の形態の場合、初期状態では１３パターン）に加えて新たなコマンド発行パターンを自ら定義してＩ／Ｏ性能テスト結果表示部４１に追加登録することができ、また編集ボタン４３をクリックすることによって、そのとき既に設定されている各コマンド発行パターンの内容を編集することができる。
【００７７】
またＩ／Ｏ性能テストメイン画面４０では、性能グラフボタン４４をクリックすることによって、そのときＩ／Ｏ性能テスト結果表示部４１に表示されているＩ／Ｏ性能テストのテスト結果をグラフ表示した図８に示すようなＩ／Ｏ性能テストグラフ表示画面４８を表示させることができ、測定環境設定ボタン４６をクリックすることによって、図９に示すような測定環境設定画面５０を表示させることができる。
【００７８】
さらにＩ／Ｏ性能テストメイン画面４０では、測定開始ボタン４５をクリックすることによって、そのときＩ／Ｏ性能テストのテスト対象として選択されている外部ストレージ装置６に対するＩ／Ｏ性能テストを開始させることができる。そして、このとき行われたＩ／Ｏ性能テストのテスト結果が当該Ｉ／Ｏ性能テストメイン画面４０のＩ／Ｏ性能テスト結果表示部４１に表示されると共に、図２について上述したコマンド発行パターン管理テーブル３５に反映される。
【００７９】
さらにＩ／Ｏ性能テストメイン画面４０では、かかるＩ／Ｏ性能テストの終了後に終了ボタンをクリックすることによって、図１０に示すような運用時コマンド発行パターン管理画面６０を表示させることができる。
【００８０】
図９は、Ｉ／Ｏ性能テストメイン画面４０の測定環境設定ボタン４６をクリックしたときに表示される測定環境設定画面５０を示す。この測定環境設定画面５０は、そのとき選択されている外部ストレージ装置６に対する測定環境（コマンド種別ごとのテスト時間、外部ストレージ発行ＬＵ数、コマンド発行サイズ及び使用ポート）を設定するための画面である。
【００８１】
実際上、測定環境設定画面５０では、画面中央に図３について上述したＩ／Ｏ性能テスト環境設定管理テーブル３６と同様の構成を有する測定環境設定部５１が表示される。そしてユーザは、この測定環境設定部５１を利用して、コマンド種別ごとのテスト時間、外部ストレージ発行ＬＵ数、コマンド発行サイズ及び使用ポートをそれぞれ設定することができる。そしてこのとき設定されたその外部ストレージ装置６に対するコマンド種別ごとのテスト時間、外部ストレージ発行ＬＵ数、コマンド発行サイズ及び使用ポートがＩ／Ｏ性能テスト環境設定管理テーブル３６に登録されて管理される。
【００８２】
また測定環境設定画面５０では、「性能が最大のパターンをdefaultに自動的に設定する」か否かを設定することができる。そしてこの設定に対応するチェックボックス５２にチェックを入れておいた場合、コマンド種別ごとに、この後行われるＩ／Ｏ性能テストにおいて最も良いＩ／Ｏ性能が得られたコマンド発行パターンがデフォルトのコマンド発行パターンとして設定される。
【００８３】
さらに測定環境設定画面５０では、「測定済のパターンに対しても再度測定を行う」か否かを設定することができる。そしてこの設定に対応するチェックボックス５３にチェックを入れた場合には、Ｉ／Ｏ性能テストの際に、すべてのコマンド種別のすべてのコマンド発行パターンによるテストが行われる。また、かかるチェックボックス５３にチェックを入れなかった場合には、既にＩ／Ｏ性能が測定されているコマンド発行パターンに関するＩ／Ｏ性能テストが行われず、新たに設定されたコマンド発行パターンや条件の編集が行われたコマンド発行パターンについてのみＩ／Ｏ性能テストが行われる。
【００８４】
なお、測定環境設定画面５０には、測定開始ボタン５４及び閉じボタン５５も表示される。そして測定環境設定画面５０では、測定開始ボタン５４をクリックすることによって、そのとき選択されている外部ストレージ装置６に対するＩ／Ｏ性能テストを開始させることができ、閉じボタン５５をクリックすることによって、この測定環境設定画面５０を閉じさせることができる。
【００８５】
一方、図１０は、外部ストレージ装置６に対するＩ／Ｏ性能テストが終了した後にＩ／Ｏ性能テストメイン画面４０の終了ボタン４７をクリックしたときに表示される運用時コマンド発行パターン管理画面６０を示す。この運用時コマンド発行パターン管理画面６０は、Ｉ／Ｏ性能テストのテスト対象として選択されている外部ストレージ装置６について、通常運用時にコマンド種別ごとにそれぞれ使用するコマンド発行パターンをユーザが設定及び管理するための画面である。
【００８６】
この運用時コマンド発行パターン管理画面６０では、画面中央部に設定コマンド発行パターン表示部６１が表示され、この設定コマンド発行パターン表示部６１内に、現在、対応する外部ストレージ装置６について設定されているコマンド種別ごとのコマンド発行パターンが表示される。
【００８７】
例えば図１０の例では、Ｉ／Ｏ性能テストのテスト対象として選択されていた外部ストレージ装置６は「HITACHI USP(1111)」であり、その外部ストレージ装置６について、シーケンシャルリード及びシーケンシャルライトに関する「default」のコマンド発行パターンとして候補番号が「11」のコマンド発行パターンがそれぞれ設定されており、ランダムリード及びランダムライトに関する「default」のコマンド発行パターンとして候補番号が「２」のコマンド発行パターンがそれぞれ設定されていることが示されている。
【００８８】
また運用時コマンド発行パターン管理画面６０には、設定コマンド発行パターン表示部６１の上下位置に新規追加ボタン６２、編集ボタン６３、再測定ボタン６４及び終了ボタン６５が表示される。
【００８９】
そしてユーザは、新規追加ボタン６２をクリックすることによって、そのとき対象としている外部ストレージ装置６に対するコマンド種別ごとのコマンド発行パターンとして新たなコマンド発行パターンを定義して登録することができる。具体的には、所望のコマンド種別について、所望するコマンド発行パターンのパターン番号と、そのコマンド発行パターンを適用すべき時間帯とを設定コマンド発行パターン表示部６１に入力するようにする。そしてこのときの登録内容が図４について上述した運用時コマンド発行パターン管理テーブル３７に反映される。
【００９０】
またユーザは、編集ボタン６３をクリックすることにより、既に設定コマンド発行パターン表示部６１に表示されている設定を編集することができ、再測定ボタン６４をクリックすることにより、そのとき対象としている外部ストレージ装置６に対するＩ／Ｏ性能テストを再度行わせることができる。そしてこのときの編集やＩ／Ｏ性能テストの再実行により設定コマンド発行パターン表示部６１に変更があった場合には、その変更内容が運用時コマンド発行パターン管理テーブル３７に反映される。さらにユーザは、終了ボタン６５をクリックすることによって、この運用時コマンド発行パターン管理画面６０を閉じることができる。
【００９１】
（４）Ｉ／Ｏ性能テスト機能に関する各種処理
（４−１）Ｉ／Ｏ性能テストに関する処理の流れ
図１１は、本ストレージシステム１におけるＩ／Ｏ性能テスト及び実運用に関する手続及び処理の流れを示す。
【００９２】
かかるＩ／Ｏ性能テストを実行するに際して、ユーザは、まずストレージシステム１を構築する（ＳＰ１）。ストレージシステム１の構築には、ホストコンピュータ２、メインストレージ装置４及び外部ストレージ装置６間の接続が含まれる。またストレージシステム１の構築には、メインストレージ装置４内の仮想ボリューム及び外部ストレージ装置６内の論理ボリュームの設定や、かかる仮想ボリューム及びかかる論理ボリューム間の対応付け、並びに図６について上述した外部ストレージ装置６内の論理ボリュームごとの優先ポート２０の設定なども含まれる。
【００９３】
続いて、ユーザは、管理用端末７を操作して、メインストレージ装置４に接続された各外部ストレージ装置６に対するＩ／Ｏ性能テストを実行させる。Ｉ／Ｏ性能テストは、外部ストレージ装置６ごとに行う。本ストレージシステム１の場合、このＩ／Ｏ性能テストのテスト結果に基づいて、外部ストレージ装置６ごとにコマンド種別ごとの最適なコマンド発行パターンがメインストレージ装置４に設定される（ＳＰ２）。
【００９４】
この後、ストレージシステム１の運用を開始する（ＳＰ３）。運用中、メインストレージ装置４は、外部ストレージ装置６に対してコマンドを発行する際には、ステップＳＰ２において設定し又はユーザにより設定されたコマンド発行パターンでコマンドを発行する。
【００９５】
この後、ストレージシステム１のシステム構成が変更された場合や、ストレージシステム１の運用形態が変更された場合、又は外部ストレージ装置６のＩ／Ｏ性能が低下した場合（ＳＰ４）、ユーザは、管理用端末７を操作することにより指定した外部ストレージ装置６に対するＩ／Ｏ性能テストを再度実行させることができる（ＳＰ４、ＳＰ５）。この結果、新たなシステム構成や新たな運用形態に最適なコマンド発行パターンが再度検出されてメインストレージ装置４に設定される。
【００９６】
（４−２）Ｉ／Ｏ性能テスト機能に関する管理用端末の処理内容
図１２は、図１１のステップＳＰ２において管理用端末７が実行するＩ／Ｏテストメイン処理を示す。図１１のステップＳＰ２において、ユーザは、まず管理用端末７を操作してＩ／Ｏ性能テストに関するプログラムを起動する。
【００９７】
そして管理用端末７は、かかるプログラムが起動されると、このプログラムに従って図１２に示すＩ／Ｏ性能テストメイン処理を開始し、まず、Ｉ／Ｏ性能テストのテスト対象となる外部ストレージ装置６がユーザにより選択されるのを待ち受ける（ＳＰ１０）。
【００９８】
そして管理用端末７は、やがてテスト対象の外部ストレージ装置６が選択されると、メインストレージ装置４の共有メモリ２３（図１）に格納されているコマンド発行パターン管理テーブル３５（図２）の各エントリのうち、そのとき選択された外部ストレージ装置６と同じ識別情報が外部ストレージ種別欄３５Ａに格納されたすべてのエントリの情報をコマンド発行パターン管理テーブル３５から読み出し、読み出した情報に基づいて図７について上述したＩ／Ｏ性能テストメイン画面４０を表示する（ＳＰ１１）。
【００９９】
続いて管理用端末７は、Ｉ／Ｏ性能テストメイン画面４０上におけるユーザ操作に応じて、Ｉ／Ｏ性能テストのための準備処理（以下、これをＩ／Ｏ性能テスト準備処理と呼ぶ）を実行し（ＳＰ１２）、この後、このＩ／Ｏ性能テストメイン処理を終了する。
【０１００】
なお、かかるＩ／Ｏ性能テストメイン処理のステップＳＰ１２における管理用端末７の具体的な処理内容を図１３に示す。
【０１０１】
管理用端末７は、Ｉ／Ｏ性能テストメイン処理のステップＳＰ１２に進むと、この図１３に示すＩ／Ｏ性能テスト準備処理を開始し、まず、Ｉ／Ｏ性能テストメイン画面４０上の新規追加ボタン４２がクリックされたか否かを判断する（ＳＰ２０）。
【０１０２】
そして管理用端末７は、この判断において肯定結果を得た場合、その後、ユーザが定義した新たなコマンド発行パターン（コマンド発行方式及びサイズ）をＩ／Ｏ性能テストメイン画面４０のＩ／Ｏ性能テスト結果表示部４１に追加登録すると共に、このコマンド発行パターンをコマンド発行パターン管理テーブル３５（図２）にも追加登録する。また管理用端末７は、この後、再度新規追加ボタン４２がクリックされるまで同様の処理を繰り返す（ＳＰ２１）。そして管理用端末７は、やがて新規追加ボタン４２がクリックされると、ステップＳＰ２０に戻る。
【０１０３】
一方、管理用端末７は、ステップＳＰ２０の判断において否定結果を得ると、Ｉ／Ｏ性能テストメイン画面４０上の編集ボタン４３がクリックされたか否かを判断する（ＳＰ２２）。
【０１０４】
そして管理用端末７は、この判断において肯定結果を得た場合、その後、Ｉ／Ｏ性能テストメイン画面４０のＩ／Ｏ性能テスト結果表示部４１に登録されているコマンド発行パターンの定義をユーザ操作に応じて変更すると共に、その変更をコマンド発行パターン管理テーブル３５（図２）にも反映させる。また管理用端末７は、この後、再度編集ボタン４３がクリックされるまで同様の処理を繰り返す（ＳＰ２３）。そして管理用端末７は、やがて編集ボタン４３がクリックされると、ステップＳＰ２０に戻る。
【０１０５】
他方、管理用端末７、ステップＳＰ２２の判断において否定結果を得ると、Ｉ／Ｏ性能テストメイン画面４０上の性能グラフボタン４４がクリックされたか否かを判断する（ＳＰ２４）。
【０１０６】
そして管理用端末７は、この判断において肯定結果を得た場合、Ｉ／Ｏ性能テストメイン画面４０のＩ／Ｏ性能テスト結果表示部４１に表示されている先行するＩ／Ｏ性能テストのテスト結果に基づいて図８に示すようなグラフを生成し、これをＩ／Ｏ性能テストグラフ表示画面４８として表示する。また管理用端末７は、この後、Ｉ／Ｏ性能テストグラフ表示画面４８内の閉じボタン４９（図８）がクリックされると、ステップＳＰ２０に戻る。
【０１０７】
さらに管理用端末７は、ステップＳＰ２４の判断において否定結果を得ると、Ｉ／Ｏ性能テストメイン画面４０上の測定環境設定ボタン４６がクリックされたか否かを判断する（ＳＰ２６）。
【０１０８】
そして管理用端末７は、この判断において肯定結果を得た場合、メインストレージ装置４の共有メモリ２３に格納されたＩ／Ｏ性能テスト環境設定管理テーブル３６を読み出し、このＩ／Ｏ性能テスト環境設定管理テーブル３６に基づいて図９に示す測定環境設定画面５０を表示する。また管理用端末７は、この後、ユーザ操作に応じて測定環境設定画面５０の測定環境設定部５１に表示された表示内容を変更すると共に、この変更をかかるＩ／Ｏ性能テスト環境設定管理テーブル３６にも反映させる。そして管理用端末７は、この後、測定環境設定画面５０の閉じボタン５６（図９）がクリックされると、この測定環境設定画面５０を閉じてステップＳＰ２０に戻る。
【０１０９】
さらに管理用端末７は、ステップＳＰ２６の判断において否定結果を得ると、Ｉ／Ｏ性能テストメイン画面４０上の測定開始ボタン４５がクリックされたか否かを判断する（ＳＰ２８）。
【０１１０】
そして管理用端末７は、この判断において肯定結果を得た場合、メインストレージ装置４に対してＩ／Ｏ性能テストを実行すべき旨のＩ／Ｏ性能テスト実行命令を送信し（ＳＰ２９）、この後ステップＳＰ２０に戻る。
【０１１１】
さらに管理用端末７は、ステップＳＰ２８の判断において否定結果を得ると、Ｉ／Ｏ性能テストメイン画面４０上の終了ボタン４７がクリックされたか否かを判断する（ＳＰ３０）。そして管理用端末７は、この判断において否定結果を得た場合にはステップＳＰ２０に戻り、この後ステップＳＰ３０において肯定結果を得るまでステップＳＰ２０〜ステップＳＰ３０の処理を繰り返す。
【０１１２】
そして管理用端末７は、やがてかかる終了ボタン４７がクリックされることによりステップＳＰ３０において肯定結果を得ると、図１０について上述した運用時コマンド発行パターン管理画面６０を表示する（ＳＰ３１）。
【０１１３】
また管理用端末７は、この後、この運用時コマンド発行パターン管理画面６０上で行われたユーザ操作に基づき、必要に応じて設定コマンド発行パターン表示部６１に新たなコマンド発行パターンの適用条件を追加登録したり、設定コマンド発行パターン表示部６１に表示されている既存のコマンド発行パターンの適用条件を更新する。そして管理用端末７は、設定コマンド発行パターン表示部６１に新たなコマンド発行パターンの適用条件を追加登録したり、既存のコマンド発行パターンの適用条件を更新した場合には、これを運用時コマンド発行パターン管理テーブル３７（図４）に反映する（ＳＰ３２）。
【０１１４】
そして管理用端末７は、やがて運用時コマンド発行パターン管理画面６０上の終了ボタン６５（図１０）がクリックされると、このＩ／Ｏ性能テスト準備処理を終了する。
【０１１５】
（４−３）Ｉ／Ｏ性能テスト機能に関するメチャネルプロセッサの処理内容
一方、図１４は、Ｉ／Ｏ性能テスト機能に関するメインストレージ装置４のチャネルプロセッサ２１（図１）の処理内容を示している。
【０１１６】
図１３のステップＳＰ２９において管理用端末７から送信されるＩ／Ｏ性能テスト実行命令を受信したメインストレージ装置４のチャネルプロセッサ２１は、内部メモリ２１Ｂ（図１）に格納されているＩ／Ｏ性能テストメインプログラム３０（図１）に基づいて、図１２のステップＳＰ１０においてユーザにより選択された外部ストレージ装置６に対するＩ／Ｏ性能テストを実行する。
【０１１７】
すなわち、チャネルプロセッサ２１は、管理用端末７から送信されるＩ／Ｏ性能テスト実行命令を受信すると、この図１４に示すＩ／Ｏ性能テスト実行処理を開始し、まず、共有メモリ２３（図１）に格納されたコマンド発行パターン管理テーブル３５（図２）のエントリ（行）のうち、Ｉ／Ｏ性能テスト実行命令において指定された外部ストレージ装置６の識別情報が外部ストレージ種別欄３５Ａ（図２）に格納されたエントリを１つ選択する（ＳＰ４０）。
【０１１８】
続いてチャネルプロセッサ２１は、Ｉ／Ｏ性能テストを行うコマンド種別をシーケンシャルリード、シーケンシャルライト、ランダムリード及びランダムライトの中から１つ選択し（ＳＰ４１）、この後、コマンド発行パターン管理テーブル３５を参照して、ステップＳＰ４１において選択したコマンド種別がステップＳＰ４０において選択したエントリについて有効か否かを判断する（ＳＰ４２）。
【０１１９】
そしてチャネルプロセッサ２１は、この判断において否定結果を得るとステップＳＰ４１に戻り、これに対して肯定結果を得ると、コマンド発行パターン管理テーブル３５を参照して、ステップＳＰ４１において選択したコマンド種別についてのＩ／Ｏ性能テストが未だ行われていない（未測定の状態）であるか否かを判断する（ＳＰ４３）。
【０１２０】
チャネルプロセッサ２１は、この判断において肯定結果を得るとステップＳＰ４５に進み、これに対して否定結果を得ると図９について上述した測定環境設定画面５０において、「測定済のパターンに対しても再度測定を行う」という項目に対応するチェックボックス５３がチェックされていたか否かを判断する（ＳＰ４４）。
【０１２１】
チャネルプロセッサ２１は、この判断において否定結果を得るとステップＳＰ４１に戻り、これに対して肯定結果を得ると、そのときテスト対象として選択されている外部ストレージ装置６に対して、コマンド発行パターン管理テーブル３５上のステップＳＰ４０において選択されたエントリに対応するコマンド発行パターンで、ステップＳＰ４１において選択されたコマンド種別のＩ／Ｏ性能テストを実行する（ＳＰ４５）。
【０１２２】
この後、チャネルプロセッサ２１は、すべてのコマンド種別についてのＩ／Ｏ性能テストが終了したか否かを判断し（ＳＰ４６）、否定結果を得るとステップＳＰ４１に戻る。そしてチャネルプロセッサ２１は、この後、ステップＳＰ４１において選択するコマンド種別を順次他のコマンド種別に切り替えながら、ステップＳＰ４１〜ステップＳＰ４６の処理を繰り返す。
【０１２３】
またチャネルプロセッサ２１は、やがてコマンド発行パターン管理テーブル３５のステップＳＰ４０において選択されたエントリに対応するコマンド発行パターンについてすべてのコマンド種別によるＩ／Ｏ性能テストを完了することによりステップＳＰ４６において肯定結果を得ると、コマンド発行パターン管理テーブル３５のすべてのエントリについて（すべてのコマンド発行パターンについて）同様の処理を終えたか否かを判断する（ＳＰ４７）。
【０１２４】
そしてチャネルプロセッサ２１は、この判断において否定結果を得ると、この後、ステップＳＰ４０において選択するコマンド発行パターン管理テーブル３５のエントリを順次他のエントリに切り替えながら、ステップＳＰ４０〜ステップＳＰ４７の処理を繰り返す。
【０１２５】
またチャネルプロセッサ２１は、コマンド発行パターン管理テーブル３５のすべてのエントリについて（すべてのコマンド発行パターンについて）同様の処理を終えることによりステップＳＰ４７において肯定結果を得ると、図９について上述した測定環境設定画面５０において、「性能が最大のパターンをdefaultに自動的に設定する」という項目に対応するチェックボックス５２がチェックされていたか否かを判断する（ＳＰ４８）。
【０１２６】
そしてチャネルプロセッサ２１は、この判断において否定結果を得ると、このＩ／Ｏ性能テスト実行処理を終了し、これに対して肯定結果を得ると、コマンド種別（シーケンシャルリード、シーケンシャルライト、ランダムリード及びランダムライト）ごとにステップＳＰ４０〜ステップＳＰ４７の処理においてＩ／Ｏ性能が最大のコマンド発行パターンをそれぞれデフォルト（default）として運用時コマンド発行パターン管理テーブル３７（図４）に設定し（ＳＰ４９）、この後、このＩ／Ｏ性能テスト実行処理を終了する。
【０１２７】
（４−４）Ｉ／Ｏ性能テスト処理
図１５は、図１４について上述したＩ／Ｏ性能テスト実行処理のステップＳＰ４５におけるチャネルプロセッサ２１の具体的な処理内容を示している。
【０１２８】
チャネルプロセッサ２１は、Ｉ／Ｏ性能テスト実行処理のステップＳＰ４５に進むと、この図１５に示すＩ／Ｏ性能テスト処理を開始し、まず、Ｉ／Ｏ性能テストの開始時間として現在時刻を記憶する（ＳＰ５０）。
【０１２９】
続いてチャネルプロセッサ２１は、現在時刻を取得し（ＳＰ５１）、この後、ステップＳＰ５０において記憶した開始時刻と、ステップＳＰ５１において取得した現在時刻とに基づいて、そのとき実行しているコマンド種別についてＩ／Ｏ性能テスト環境設定管理テーブル３６（図３）上で規定されたテスト時間が経過したか否かを判断する（ＳＰ５２）。
【０１３０】
そしてチャネルプロセッサ２１は、この判断において否定結果を得ると、そのとき対象としているコマンド発行パターン用のテストコマンドを生成し（ＳＰ５３）、生成したテストコマンドをそのとき対象としている外部ストレージ装置６に送信した後（ＳＰ５４）、かかるテストコマンドに対する当該外部ストレージ装置６からの応答を待ち受ける（ＳＰ５５）。
【０１３１】
次いでチャネルプロセッサ２１は、ステップＳＰ５１に戻り、この後、そのとき実行しているコマンド種別についてのＩ／Ｏ性能テストを開始してからＩ／Ｏ性能テスト環境設定管理テーブル３６（図３）上で規定されたテスト時間が経過するまでステップＳＰ５１〜ステップＳＰ５５の処理を繰り返す。
【０１３２】
この後チャネルプロセッサ２１は、やがてステップＳＰ５２において肯定結果を得ると、上述のようにして外部ストレージ装置６に送信したテストコマンドに対する当該外部ストレージ装置６からの応答結果に基づいて、その外部ストレージ装置６における１秒当たりのデータの読み出し若しくは書き込み量（コマンド種別がシーケンシャルリード又はシーケンシャルライトの場合）、又は１秒当たりの処理コマンド数（コマンド種別がランダムリード又はランダムライトの場合）を算出し（ＳＰ５６）、算出結果をコマンド発行パターン管理テーブルに反映した後（ＳＰ５７）、このＩ／Ｏ性能テスト処理を終了する。
【０１３３】
（４−５）テストコマンド生成処理
図１６は、図１５について上述したＩ／Ｏ性能テスト処理のステップＳＰ５３におけるチャネルプロセッサ２１の具体的な処理内容を示す。
【０１３４】
チャネルプロセッサ２１は、Ｉ／Ｏ性能テスト処理のステップＳＰ５３に進むと、この図１６に示すテストコマンド生成処理を開始し、まず、そのとき発行すべきコマンドのコマンド種別を判定する（ＳＰ６０）。なお、このとき判定されるコマンド種別は、図１４について上述したＩ／Ｏ性能テスト実行処理のステップＳＰ４１において選択したコマンド種別である。
【０１３５】
続いてチャネルプロセッサ２１は、外部ストレージ装置６内のコマンドの発行対象となる論理ボリュームを決定する。具体的に、チャネルプロセッサ２１は、Ｉ／Ｏ性能テスト環境設定管理テーブル３６（図３）上の対応する使用ポート欄３６Ｆ（図３）に格納されている各ポートＩＤのポートとそれぞれ対応付けられた論理ボリュームの中から当該Ｉ／Ｏ性能テスト環境設定管理テーブル３６上の対応する外部ストレージ発行ＬＵ数欄３６Ｄ（図３）に格納された数だけ選択することになる（ＳＰ６１）。
【０１３６】
続いてチャネルプロセッサ２１は、このとき選択した各論理ボリュームをそれぞれ対象とするコマンド（そのとき対象としているコマンド種別のコマンド）を生成し、生成したコマンドをキャッシュメモリ２２（図１）に格納する（ＳＰ６２）。そしてチャネルプロセッサ２１は、この後、このテストコマンド生成処理を終了してＩ／Ｏ性能テスト処理に戻る。
【０１３７】
（４−６）コマンド送信メイン処理
一方、図１７は、図１５について上述したＩ／Ｏ性能テスト処理のステップＳＰ５４におけるチャネルプロセッサ２１の具体的な処理内容を示す。
【０１３８】
チャネルプロセッサ２１は、Ｉ／Ｏ性能テスト処理のステップＳＰ５４に進むと、この図１７に示すコマンド送信メイン処理を開始し、まず、対象とする外部ストレージ装置６に送信するコマンドのコマンド発行パターンを決定する（ＳＰ７０）。このとき決定されるコマンド発行パターンは、図１４について上述したＩ／Ｏ性能テスト実行処理のステップＳＰ４１において選択したコマンド種別のコマンド発行パターンであって、未だＩ／Ｏ性能テストが行われていないコマンド発行パターンである。
【０１３９】
続いてチャネルプロセッサ２１は、図１６について上述したコマンド生成処理において生成したコマンドを、ステップＳＰ７０において決定したコマンド発行パターンでテスト対象の外部ストレージ装置６に送信する（ＳＰ７１）。そしてチャネルプロセッサ２１は、この後、このコマンド送信メイン処理を終了してＩ／Ｏ性能テスト処理に戻る。
【０１４０】
（４−７）コマンド送信処理
図１８〜図２１は、図１７について上述したコマンド送信メイン処理のステップＳＰ７１において行なわれるコマンド送信処理の具体的な処理内容を示す。チャネルプロセッサ２１は、そのときテストを行うコマンド発行方式が第１のコマンド発行方式であるときには、図１８に示す第１のコマンド送信処理によりコマンドを外部ストレージ装置６に送信し、そのときテストを行うコマンド発行方式が第２のコマンド発行方式であるときには、図１９に示す第２のコマンド送信処理によりコマンドを外部ストレージ装置６に送信する。
【０１４１】
またチャネルプロセッサ２１は、そのときテストを行うコマンド発行方式が第３のコマンド発行方式であるときには、図２０に示す第３のコマンド送信処理によりコマンドを外部ストレージ装置６に送信し、そのときテストを行うコマンド発行方式が第４のコマンド発行方式であるときには、図２１に示す第４のコマンド送信処理によりコマンドを外部ストレージ装置６に送信する。
【０１４２】
（４−７−１）第１のコマンド発行方式によるコマンド送信処理
図１８は、そのときテストを行うコマンド発行方式が第１のコマンド発行方式であるときのチャネルプロセッサ２１の具体的な処理内容を示す。
【０１４３】
この場合、チャネルプロセッサ２１は、図１８に示す第１のコマンド送信処理手順に従って、図１６について上述したテストコマンド生成処理により生成したコマンドを、外部ストレージ装置６内の対応する各論理ボリューム（図１６のステップＳＰ６１において選択した論理ボリューム）に対して、当該論理ボリュームについて設定された優先ポート２０をそれぞれ介して送信する。そしてチャネルプロセッサ２１は、この後、この第１のコマンド送信処理を終了してコマンド送信メイン処理に戻る。
【０１４４】
（４−７−２）第２のコマンド発行方式によるコマンド送信処理
一方、図１９は、そのときテストを行うコマンド発行方式が第２のコマンド発行方式であるときのチャネルプロセッサ２１の具体的な処理内容を示す。
【０１４５】
この場合、チャネルプロセッサ２１は、まず、コマンド発行順序管理テーブル３８（図５）を参照して、テスト対象の外部ストレージ装置６内の論理ボリュームのうち、そのとき対象とする論理ボリュームに対して送信するコマンドのコマンド種別がそれまで継続して送信していたコマンド種別と一致するか否かを判断する（ＳＰ９０）。
【０１４６】
そしてチャネルプロセッサ２１は、この判断において肯定結果を得ると、かかるコマンド発行順序管理テーブル３８の対応するエントリの合計サイズ欄３８Ｆ（図５）に格納された合計サイズを、今回送信するコマンドにより読み書きされるデータサイズ分だけ増加させる（ＳＰ９１）。
【０１４７】
これに対してチャネルプロセッサ２１は、ステップＳＰ９０の判断において否定結果を得ると、コマンド発行順序管理テーブル３８を初期化し、対応するエントリのＬＵＮ欄３８Ｂ（図５）、コマンド種別欄３８Ｃ（図５）及び開始時間欄３８Ｇ（図５）にそれぞれ対応する情報を格納する。またチャネルプロセッサ２１は、今回送信するコマンドにより読み書きされるデータ量をそのエントリの合計サイズ欄３８Ｆに格納する（ＳＰ９２）。
【０１４８】
続いてチャネルプロセッサ２１は、コマンド発行順序管理テーブル３８において設定されたポート２０を介して外部ストレージ装置６に対応するコマンドを第２のコマンド発行方式で送信し（ＳＰ９３）、この後、コマンド発行順序管理テーブル３８の対応するエントリの合計サイズ欄３８Ｆに格納された合計サイズが、コマンド発行パターン管理テーブル３５（図２）の対応するエントリのコマンドサイズ欄３５Ｄ（図２）に格納されたサイズを超えたか否かを判断する（ＳＰ９４）。
【０１４９】
チャネルプロセッサ２１は、この判断において否定結果を得ると、この図１９に示す第２のコマンド送信処理を終了してコマンド送信メイン処理に戻る。
【０１５０】
これに対してチャネルプロセッサ２１は、この判断において肯定結果を得ると、コマンド発行順序管理テーブル３８（図５）の対応するエントリの送信ポートＩＤ欄３８Ｄ（図５）に格納されたポートＩＤを次のポートのポートＩＤに変更する（ＳＰ９５）。
【０１５１】
続いてチャネルプロセッサ２１は、そのエントリの合計サイズ欄３８Ｆ（図５）に格納された合計サイズを初期化（「０」にリセット）し（ＳＰ９６）、この後、この図１９に示す第２のコマンド送信処理を終了してコマンド送信メイン処理に戻る。
【０１５２】
（４−７−３）第３のコマンド発行方式によるコマンド送信処理
他方、図２０は、そのときテストを行うコマンド発行方式が第３のコマンド発行方式であるときのチャネルプロセッサ２１の具体的な処理内容を示す。
【０１５３】
この場合、チャネルプロセッサ２１は、ステップＳＰ１００〜ステップＳＰ１０２を図１９について上述した第２のコマンド送信処理のステップＳＰ９０〜ステップＳＰ９２と同様に処理する。そしてチャネルプロセッサ２１は、この後、コマンド発行順序管理テーブル３８の対応するエントリの合計サイズ欄３８Ｆに格納された合計サイズが、コマンド発行パターン管理テーブル３５（図２）の対応するエントリのコマンドサイズ欄３５Ｄ（図２）に格納されたコマンドサイズの閾値を超えたか否かを判断する（ＳＰ１０３）。
【０１５４】
チャネルプロセッサ２１は、この判断において否定結果を得ると、この第３のコマンド送信処理を終了してコマンド送信メイン処理に戻る。
【０１５５】
これに対してチャネルプロセッサ２１は、ステップＳＰ１０３の判断において肯定結果を得ると、コマンド発行順序管理テーブル３８の対応するエントリの合計サイズ欄３８Ｆに格納された合計サイズと、コマンド発行パターン管理テーブル３５（図２）の対応するエントリのコマンドサイズ欄３５Ｄ（図２）に格納されたコマンドサイズの閾値との差分に相当するデータ量分のリード又はライトを行うためのコマンドを、そのとき対象としている論理ボリュームの優先ポート２０を介して外部ストレージ装置６に送信する（ＳＰ１０４）。
【０１５６】
次いでチャネルプロセッサ２１は、コマンド発行順序管理テーブル３８の対応するエントリの合計サイズ欄３８Ｆ（図５）に格納された合計サイズを初期化（「０」にリセット）し（ＳＰ１０５）、この後、この第３のコマンド送信処理を終了してコマンド送信メイン処理に戻る。
【０１５７】
（４−７−４）第４のコマンド発行方式によるコマンド送信処理
図２１は、そのときテストを行うコマンド発行方式が第４のコマンド発行方式であるときのチャネルプロセッサ２１の具体的な処理内容を示す。
【０１５８】
この場合、チャネルプロセッサ２１は、ステップＳＰ１１０〜ステップＳＰ１１４を図２０について上述した第３のコマンド送信処理のステップＳＰ１００〜ステップＳＰ１０４と同様に処理する。そしてチャネルプロセッサ２１は、この後、コマンド発行順序管理テーブル３８上の対応するエントリの送信ポートＩＤ欄３８Ｄに格納されているポートＩＤを次のポート２０のポートＩＤに変更する（ＳＰ１１５）。
【０１５９】
次いでチャネルプロセッサ２１は、コマンド発行順序管理テーブル３８の対応するエントリの合計サイズ欄３８Ｆ（図５）に格納された合計サイズを初期化（「０」にリセット）し（ＳＰ１１６）、この後、この第４のコマンド送信処理を終了してコマンド送信メイン処理に戻る。
【０１６０】
（４−８）運用時におけるチャネルプロセッサのコマンド処理
（４−８−１）運用時コマンド処理
図２２は、運用時にホストコンピュータ２（図１）から送信されたコマンド（シーケンシャルリードコマンド、シーケンシャルライトコマンド、ランダムリードコマンド又はランダムライトコマンド）を受信したメインストレージ装置４のチャネルプロセッサ２１の具体的な処理内容を示している。かかるチャネルプロセッサ２１は、内部メモリ２１Ｂ（図１）に格納された運用時コマンド処理プログラム３１（図１）に基づいてこの図２２に示す運用時コマンド処理を実行する。
【０１６１】
すなわち、かかるチャネルプロセッサ２１は、ホストコンピュータ２からのコマンドを受信すると、この運用時コマンド処理を開始し、まず、受信したコマンドにおいて指定されたデータのリード又はライト先の論理ボリュームは外部ストレージ装置６が提供する論理ボリュームと対応付けられた仮想ボリュームであるか否かを判断する（ＳＰ１２０）。
【０１６２】
この判断において否定結果を得ることは、受信したコマンドにおいて指定されたデータのリード又はライト先の論理ボリュームが、メインストレージ装置４が提供する実体を有する論理ボリュームであることを意味する。
【０１６３】
かくしてこのときチャネルプロセッサ２１は、かかるコマンドにおいて指定されたデータを当該コマンドにおいて指定された論理ボリュームからリード又はライトし（ＳＰ１２１）、この後、この運用時コマンド処理を終了する。
【０１６４】
これに対してステップＳＰ１２０の判断において肯定定結果を得ることは、受信したコマンドにおいて指定されたデータの最終的なリード又はライト先の論理ボリュームが、外部ストレージ装置６が提供する論理ボリュームであることを意味する。
【０１６５】
かくしてこのときチャネルプロセッサ２１は、仮想ボリュームと、外部ストレージ装置６内の論理ボリュームとの対応関係を管理するための図示しないテーブルを参照して、かかる仮想ボリュームと対応付けられた論理ボリュームが存在する外部ストレージ装置６を特定する（ＳＰ）。
【０１６６】
次いでチャネルプロセッサ２１は、その外部ストレージ装置６に対して指定されたデータをリード又はライトさせるためのコマンドを送信し（ＳＰ１２３）、この後、この運用時コマンド処理を終了する。
【０１６７】
（４−８−２）運用時コマンド送信メイン処理
図２３は、図２２について上述した運用時コマンド処理のステップＳＰ１２３におけるチャネルプロセッサ２１の具体的な処理内容を示す。
【０１６８】
チャネルプロセッサ２１は、運用時コマンド処理のステップＳＰ１２３に進むと、この図２３に示す運用時コマンド送信メイン処理を開始し、まず、そのとき受信したコマンドがライトコマンドであるか否かを判断する（ＳＰ１３０）。
【０１６９】
チャネルプロセッサ２１は、この判断において肯定結果を得ると、メインストレージ装置４内のキャッシュメモリ２２（図１）上にライトデータを一時的に格納するための領域を確保できるか否かを判断する（ＳＰ１３１）。
【０１７０】
チャネルプロセッサ２１は、この判断において否定結果を得ると、所定時間待機し（ＳＰ１３２）、この後ステップＳＰ１３１に戻る。そしてチャネルプロセッサ２１は、この後、ステップＳＰ１３１において肯定結果を得るまで、ステップＳＰ１３１及びステップＳＰ１３２の処理を繰り返す。
【０１７１】
やがてチャネルプロセッサ２１は、ステップＳＰ１３１において肯定結果を得ると、かかるライトコマンドと共にホストコンピュータ２から送信されるライトデータをメインストレージ装置４内のキャッシュメモリ２２に格納し（ＳＰ１３３）、この後、ホストコンピュータ２にライト処理が完了した旨を通知する（ＳＰ１３４）。
【０１７２】
続いてチャネルプロセッサ２１は、それまでに受信したコマンドに基づいて、かかるライトコマンドがシーケンシャルライトコマンド及びランダムライトコマンドのいずれであるかを判断する（ＳＰ１３５）。
【０１７３】
そしてチャネルプロセッサ２１は、この判断結果に基づいて、かかるライトコマンドに基づいて対応する外部ストレージ装置に送信すべきライトコマンドのコマンド発行パターンを決定する（ＳＰ１３６）。具体的に、チャネルプロセッサ２１は、ステップＳＰ１３５における判断結果と、運用時コマンド発行パターン管理テーブル３７と、現在時刻となどを参照して、かかるコマンド発行パターンを決定することになる。
【０１７４】
そしてチャネルプロセッサ２１は、この後、対応する外部ストレージ装置に対して、ステップＳＰ１３６において決定したコマンド発行パターンでライトコマンドを送信する（ＳＰ１３７）。なお、このときのコマンドの送信方法は、図１８〜図２１について上述した方法のうちの対応する方法が用いられる。そしてチャネルプロセッサ２１は、この後、この運用時コマンド送信メイン処理を終了する。
【０１７５】
一方、チャネルプロセッサ２１は、ステップＳＰ１３０の判断において否定結果を得ると、メインストレージ装置４のキャッシュメモリ２２（図１）上にリードデータを格納するための領域を確保し（ＳＰ１３９）、この後、リード対象のデータがキャッシュメモリ２２上に存在するか否かを判断する（ＳＰ１４０）。
【０１７６】
チャネルプロセッサ２１は、この判断において否定結果を得ると、ステップＳＰ１３５に進み、この後ステップＳＰ１３５〜ステップＳＰ１３７について上述した処理を順次実行することにより、対応する外部ストレージ装置６にコマンドを送信する。これによりチャネルプロセッサ２１は、その外部ストレージ装置６にホストコンピュータ２からのリードコマンドにおいて指定されたリード対象のデータを読み出させる。
【０１７７】
そしてチャネルプロセッサ２１は、その外部ストレージ装置６からリード対象のデータが転送されてくると、このデータをホストコンピュータ２に転送し（ＳＰ１３８）、この後、この運用時コマンド送信メイン処理を終了する。
【０１７８】
これに対してチャネルプロセッサ２１は、ステップＳＰ１３９の判断において肯定結果を得ると、キャッシュメモリ２２からリード対象のデータを読み出し（ＳＰ１４１）、読み出したデータをホストコンピュータ２に送信する（ＳＰ１４２）。そしてチャネルプロセッサ２１は、この後、この運用時コマンド送信メイン処理を終了する。
【０１７９】
（４−８−３）コマンドレスポンス応答処理
一方、図２４は、図２２について上述した運用時コマンド処理と並行してチャネルプロセッサ２１が行うコマンドレスポンス応答処理の処理手順を示す。
【０１８０】
チャネルプロセッサ２１は、運用時にホストコンピュータ２（図１）から送信されたコマンドを受信すると、内部メモリ２１Ｂ（図１）に格納されたコマンドレスポンス応答プログラム３３（図１）に基づいて、このコマンドレスポンス応答処理を実行する。
【０１８１】
すなわちチャネルプロセッサ２１は、運用時にホストコンピュータ２からのコマンドを受信すると、このコマンドレスポンス応答処理を開始し、図２３のステップＳＰ１３６において対応する外部ストレージ装置６にコマンドを送信した後に、当該外部ストレージ装置６から送信されるそのコマンドに対する応答を受信するのを待ち受ける（ＳＰ１５１）。
【０１８２】
そしてチャネルプロセッサ２１は、かかる応答を受信すると、そのときホストコンピュータ２から与えられたコマンド要求がリード要求であったか否かを判断する（ＳＰ１５２）。そしてチャネルプロセッサ２１は、この判断において否定結果を得ると、このコマンドレスポンス応答処理を終了する。
【０１８３】
これに対してチャネルプロセッサ２１は、ステップＳＰ１５１の判断において肯定結果を得ると、かかるリード要求を送信してきたホストコンピュータ２に対してリード完了通知を送信し（ＳＰ１５２）、この後、このコマンドレスポンス応答処理を終了する。
【０１８４】
（４−８−４）周期処理
上述のように第３及び第４のコマンド発行方式では、コマンド発行パターン管理テーブル３５（図２）において設定されたサイズ分のコマンドを貯めてから一度に外部ストレージ装置６にコマンドを送信する。
【０１８５】
このため、例えば図２３について上述した運用時コマンド送信メイン処理のステップＳＰ１３６において、コマンド発行パターンとして第３又は第４のコマンド発行パターンが決定された場合、その後、ホストコンピュータ２からのコマンドの到達頻度が少ないと、コマンドの待ち状態が長く続いてホストコンピュータ２から見たメインストレージ装置４の性能が低下する問題がある。
【０１８６】
そこで、本実施の形態のメインストレージ装置４においては、コマンド発行パターンとして第３又は第４のコマンド発行パターンが決定された場合、周期的にコマンド発行順序管理テーブルを検索し、開始時間から長く放置されているケースが存在する場合には、コマンド発行パターン管理テーブル３５において設定されたサイズ分のコマンドが貯められていない状態であっても、それまでに貯めたコマンドを外部ストレージ装置６に送信する。
【０１８７】
図２５は、このような制御処理に関するチャネルプロセッサ２１の具体的な処理内容を示している。チャネルプロセッサ２１は、内部メモリ２１Ｂ（図１）に格納された周期処理プログラム３４に基づいて、この図２５に示す周期処理を実行する。
【０１８８】
すなわちチャネルプロセッサ２１は、メインストレージ装置４の電源が投入されると、この図２５に示す周期処理を開始し、まず、現在時刻を取得する（ＳＰ１６０）。
【０１８９】
続いてチャネルプロセッサ２１は、コマンド発行順序管理テーブル３８（図５）のエントリ（行）を１つ選択し（ＳＰ１６１）、この後、そのエントリの開始時間欄３８Ｇ（図５）を参照して、当該エントリについて、コマンドを貯め始めてから予め定められた所定時間が経過したか否かを判断する（ＳＰ１６２）。
【０１９０】
チャネルプロセッサ２１は、この判断において否定結果を得るとステップＳＰ１７０に進み、これに対して肯定結果を得ると、そのエントリにおけるコマンド発行方式が第２のコマンド発行方式であるか否かを判断する（ＳＰ１６３）。
【０１９１】
チャネルプロセッサ２１は、この判断において肯定結果を得ると、コマンド発行順序管理テーブル３８のそのエントリの送信ポートＩＤ欄３８Ｄ（図５）に格納されている送信ポートＩＤを次のポート２０のポートＩＤに変更し（ＳＰ１６４）、この後ステップＳＰ１６９に進む。
【０１９２】
これに対してチャネルプロセッサ２１は、ステップＳＰ１６３の判断において否定結果を得ると、そのエントリにおけるコマンド発行方式が第３のコマンド発行方式であるか否かを判断する（ＳＰ１６３）。
【０１９３】
そしてチャネルプロセッサ２１は、この判断において肯定結果を得ると、新たなコマンドを生成して対応する優先ポート２０に送信し（ＳＰ１６６）、この後ステップＳＰ１６９に進む。
【０１９４】
これに対してチャネルプロセッサ２１は、新たなコマンドを生成して、そのコマンドをコマンド発行順序管理テーブル３８のそのエントリの送信ポートＩＤ欄３８Ｄ（図５）に格納されている送信ポートＩＤのポート２０に送信し（ＳＰ１６７）、この後、当該送信ポートＩＤ欄３８Ｄに格納されている送信ポートＩＤを次のポート２０のポートＩＤに変更する（ＳＰ１６８）。
【０１９５】
続いてチャネルプロセッサ２１は、コマンド発行順序管理テーブル３８におけるそのエントリの合計サイズ欄３８Ｆに格納されている合計サイズを初期化（「０」にリセット）する（ＳＰ１６９）。
【０１９６】
次いでチャネルプロセッサ２１は、コマンド発行順序管理テーブル３８におけるすべてのエントリについて同様の処理を終えたか否かを判断する（ＳＰ１７０）。そしてチャネルプロセッサ２１は、この判断において否定結果を得るとステップＳＰ１６１に戻り、この後、ステップＳＰ１７０において肯定結果を得るまで同様の処理を繰り返す。
【０１９７】
そしてチャネルプロセッサ２１は、やがてコマンド発行順序管理テーブル３８におけるすべてのエントリについて同様の処理を終えることによりステップＳＰ１７０において肯定結果を得ると、ステップＳＰ１６０〜ステップＳＰ１７０の処理を実行する周期として予め定められた所定時間が経過するのを待ち受ける（ＳＰ１７１）。
【０１９８】
そしてチャネルプロセッサ２１は、やがてかかる所定時間が経過すると、ステップＳＰ１６０に戻り、この後、同様の処理を繰り返す。
【０１９９】
（４−８−５）ボリューム優先ポート設定処理
図２６は、ストレージシステム１の運用時にシーケンシャルリード、シーケンシャルライト、ランダムリード及び又はランダムライトのコマンド発行パターンとして第１又は第３のコマンド発行方式のコマンド発行パターンが選択又は設定された場合における優先ポート２０の設定に関するチャネルプロセッサ２１の処理内容を示している。チャネルプロセッサ２１は、この図２６に示すボリューム優先ポート設定処理を、内部メモリ２１Ｂ（図１）に格納されたボリューム優先ポート設定プログラム３２（図１）に従って実行する。
【０２００】
すなわちチャネルプロセッサ２１は、ある外部ストレージ装置６に対するシーケンシャルリード、シーケンシャルライト、ランダムリード及び又はランダムライトのコマンド発行パターンとして第１又は第３のコマンド発行方式のコマンド発行パターンが選択又は設定された場合、まず、ボリューム優先ポート管理テーブル３９（図６）を参照して、仮想化した論理ボリュームごとに優先ポート２０を設定する（ＳＰ１８０）。そしてチャネルプロセッサ２１は、この後、この図２６に示すボリューム優先ポート設定処理を終了する。
【０２０１】
（５）本実施の形態の効果
以上のように本実施の形態によるストレージシステム１では、チャネルプロセッサ２１が、コマンド種別ごとに、テスト用コマンドを複数のコマンド発行パターンで外部ストレージ装置６に発行すると共に、コマンド発行パターンごとのＩ／Ｏ性能を測定し、コマンド発行パターンごとのＩ／Ｏ性能の測定結果を表示したり、コマンド発行パターンごとのＩ／Ｏ性能の測定結果に基づいて、当該外部ストレージ装置６に対してコマンドを発行する際のコマンド発行パターンとして最適なコマンド発行パターンを設定するため、ストレージシステム１を構築する際や新たな外部ストレージ装置６を導入したときなどに、ユーザが外部ストレージ装置６に搭載された機能や外部ストレージ装置６の特性を完全に把握する必要がなく、メインストレージ装置４に対する外部ストレージ装置６ごとの最適なコマンド発行パターンの設定を容易に行うことができる。かくするにつきストレージシステム１全体としてのＩ／Ｏ性能を向上させながら、ストレージシステム１の汎用性及び利便性を向上させることができる。
【０２０２】
（６）他の実施の形態
なお上述の実施の形態においては、本発明を図１のように構成されたストレージシステム１に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成のストレージシステムに広く適用することができる。
【０２０３】
また上述の実施の形態においては、コマンド発行方式として第１〜第４のコマンド発行方式を採用するようにした場合について述べたが、本発明はこれに限らず、この他種々のコマンド発行方式を広く適用することができる。
【０２０４】
さらに上述の実施の形態においては、コマンドサイズの閾値（第１及び第２の閾値）を「０」ＭＢ、「10000000」ＭＢ、「20000000」ＭＢ及び「50000000」ＭＢとするようにした場合について述べたが、本発明はこれに限らず、この他種々のサイズを広く適用することができる。
【産業上の利用可能性】
【０２０５】
外部接続機能が搭載されたストレージ装置に広く適用することができる。
【図面の簡単な説明】
【０２０６】
【図１】本実施の形態によるストレージシステムの全体構成を示すブロック図である。
【図２】コマンド発行パターン管理テーブルを示す概念図である。
【図３】Ｉ／Ｏ性能テスト環境設定管理テーブルを示す概念図である。
【図４】運用時コマンド発行パターン管理テーブルを示す概念図である。
【図５】コマンド発行順序管理テーブルを示す概念図である。
【図６】ボリューム優先ポート管理テーブルを示す概念図である。
【図７】Ｉ／Ｏ性能テストメイン画面を示す図である。
【図８】Ｉ／Ｏ性能テストグラフ表示画面を示す図である。
【図９】測定環境設定用画面を示す図である。
【図１０】運用時コマンド発行パターン管理画面を示す図である。
【図１１】実施の形態によるストレージシステムにおけるＩ／Ｏ性能テスト及び実運用に関する手続及び処理の流れを示すフローチャートである。
【図１２】Ｉ／Ｏ性能テストメイン処理の処理手順を示すフローチャートである。
【図１３】Ｉ／Ｏ性能テスト準備処理の処理手順を示すフローチャートである。
【図１４】Ｉ／Ｏ性能テスト実行処理の処理手順を示すフローチャートである。
【図１５】Ｉ／Ｏ性能テスト処理の処理手順を示すフローチャートである。
【図１６】テストコマンド生成処理の処理手順を示すフローチャートである。
【図１７】コマンド送信メイン処理の処理手順を示すフローチャートである。
【図１８】第１のコマンド送信処理手順の処理手順を示すフローチャートである。
【図１９】第２のコマンド送信処理手順の処理手順を示すフローチャートである。
【図２０】第３のコマンド送信処理手順の処理手順を示すフローチャートである。
【図２１】第４のコマンド送信処理手順の処理手順を示すフローチャートである。
【図２２】運用時コマンド処理の処理手順を示すフローチャートである。
【図２３】運用時コマンド送信メイン処理の処理手順を示すフローチャートである。
【図２４】コマンドレスポンス応答処理の処理手順を示すフローチャートである。
【図２５】周期処理の処理手順を示すフローチャートである。
【図２６】ボリューム優先ポート設定処理の処理手順を示すフローチャートである。
【符号の説明】
【０２０７】
１……ストレージシステム、２……ホストコンピュータ、６……外部ストレージ装置、７……管理用端末、１０……物理記憶デバイス、１２……コントロール部、２０……ポート（優先ポート）、２１……チャネルプロセッサ、２２……キャッシュメモリ、２３……共有メモリ、３０……Ｉ／Ｏ性能テストメインプログラム、３１……運用時コマンド処理プログラム、３２……ボリューム優先ポート設定プログラム、３３……コマンドレスポンス応答プログラム、３４……周期処理プログラム、３５……コマンド発行パターン管理テーブル、３６……Ｉ／Ｏ性能テスト環境設定管理テーブル、３７……運用時コマンド発行パターン管理テーブル、３８……コマンド発行順序管理テーブル、３９……ボリューム優先ポート管理テーブル、４０……Ｉ／Ｏ性能テストメイン画面、４８……Ｉ／Ｏ性能テストグラフ表示画面、５０……測定環境設定画面、６０……運用時コマンド発行パターン管理画面。
【図１】
2010026873.tif 000003
【図２】
2010026873.tif 000004
【図３】
2010026873.tif 000005
【図４】
2010026873.tif 000006
【図５】
2010026873.tif 000007
【図６】
2010026873.tif 000008
【図７】
2010026873.tif 000009
【図８】
2010026873.tif 000010
【図９】
2010026873.tif 000011
【図１０】
2010026873.tif 000012
【図１１】
2010026873.tif 000013
【図１２】
2010026873.tif 000014
【図１３】
2010026873.tif 000015
【図１４】
2010026873.tif 000016
【図１５】
2010026873.tif 000017
【図１６】
2010026873.tif 000018
【図１７】
2010026873.tif 000019
【図１８】
2010026873.tif 000020
【図１９】
2010026873.tif 000021
【図２０】
2010026873.tif 000022
【図２１】
2010026873.tif 000023
【図２２】
2010026873.tif 000024
【図２３】
2010026873.tif 000025
【図２４】
2010026873.tif 000026
【図２５】
2010026873.tif 000027
【図２６】
2010026873.tif 000028