(57)【要約】【課題】ストレージ装置の性能最適化に伴う作業負担を軽減する。【解決手段】ストレージ制御装置１は、ホストコンピュータ９から論理ボリュームへのＩ／Ｏ要求７を受け付ける。ストレージ制御装置１は、複数のストレージ装置５（５ａ，５ｂ，…，５ｎ）の組合せから論理ボリュームを生成する。設定部２は、論理ボリュームに対して単位時間当たりに発行可能なＩ／Ｏ発行可能数６を設定する。発行制御部３は、論理ボリュームに対して受け付けたＩ／Ｏ要求７を要求蓄積部４に蓄積する。発行制御部３は、要求蓄積部４が蓄積するＩ／Ｏ要求７から論理ボリュームにＩ／Ｏ要求の発行をおこなう。このとき、発行制御部３は、単位時間当たりのＩ／Ｏ発行数をＩ／Ｏ発行可能数６の範囲に制限する。【選択図】図１
2015026183.tif 000002
【特許請求の範囲】
【請求項１】
論理ボリュームにおけるストレージ装置の構成、および前記ストレージ装置の性能にもとづいて前記論理ボリュームに対して単位時間当たりに発行可能なＩ／Ｏ発行可能数を設定する設定部と、
前記論理ボリュームに対して受け付けたＩ／Ｏ要求を要求蓄積部に蓄積し、前記要求蓄積部が蓄積する前記Ｉ／Ｏ要求のうちから、単位時間当たりのＩ／Ｏ発行数を前記Ｉ／Ｏ発行可能数の範囲に制限して前記論理ボリュームに前記Ｉ／Ｏ要求の発行をおこなう発行制御部と、
を備えることを特徴とするストレージ制御装置。
【請求項２】
前記設定部は、前記ストレージ装置の構成、および前記ストレージ装置の性能ごとに要求される性能情報にもとづいて、前記論理ボリュームごとに前記性能情報から導出される前記Ｉ／Ｏ発行可能数を設定することを特徴とする請求項１記載のストレージ制御装置。
【請求項３】
前記設定部は、前記発行制御部が所定時間の間に発行した前記Ｉ／Ｏ要求の転送単位に応じて前記Ｉ／Ｏ発行可能数を変更することを特徴とする請求項１または請求項２記載のストレージ制御装置。
【請求項４】
前記発行制御部は、前記所定時間の間に発行した前記Ｉ／Ｏ要求の転送単位を統計情報として保持し、前記統計情報にもとづいて前記転送単位を選択することを特徴とする請求項３記載のストレージ制御装置。
【請求項５】
前記設定部は、前記論理ボリュームの生成時に前記性能情報にもとづいて転送単位ごとに対応するＩ／Ｏ発行可能数を算出することを特徴とする請求項４記載のストレージ制御装置。
【請求項６】
コンピュータに、
論理ボリュームにおけるストレージ装置の構成、および前記ストレージ装置の性能にもとづいて前記論理ボリュームに対して単位時間当たりに発行可能なＩ／Ｏ発行可能数を設定し、
前記論理ボリュームに対して受け付けたＩ／Ｏ要求を要求蓄積部に蓄積し、前記要求蓄積部が蓄積する前記Ｉ／Ｏ要求のうちから、単位時間当たりのＩ／Ｏ発行数を前記Ｉ／Ｏ発行可能数の範囲に制限して前記論理ボリュームに前記Ｉ／Ｏ要求の発行をおこなう、
処理を実行させることを特徴とするストレージ制御プログラム。
【請求項７】
コンピュータが、
論理ボリュームにおけるストレージ装置の構成、および前記ストレージ装置の性能にもとづいて前記論理ボリュームに対して単位時間当たりに発行可能なＩ／Ｏ発行可能数を設定し、
前記論理ボリュームに対して受け付けたＩ／Ｏ要求を要求蓄積部に蓄積し、前記要求蓄積部が蓄積する前記Ｉ／Ｏ要求のうちから、単位時間当たりのＩ／Ｏ発行数を前記Ｉ／Ｏ発行可能数の範囲に制限して前記論理ボリュームに前記Ｉ／Ｏ要求の発行をおこなう、
処理を実行することを特徴とするストレージ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法に関する。
【背景技術】
【０００２】
複数のＨＤＤ（Hard Disk Drive）を１つの論理ボリュームとして扱うストレージ制御装置としてＲＡＩＤ（Redundant Array of Inexpensive Disks）装置が知られている。ＲＡＩＤ装置は、複数のＨＤＤを搭載したドライブエンクロージャ（以下、ＤＥ（Drive Enclosure））を備え、ＤＥ内のＨＤＤからＲＡＩＤを構成する。また、ＲＡＩＤ装置は、ＤＥ内のＨＤＤの交換や追加、あるいはＤＥの交換や追加によりＨＤＤ構成を更新可能にする。
【０００３】
ＲＡＩＤ装置は、ＨＤＤ構成に変更が生じても安定した性能値（たとえば、スループット、ＩＯＰＳ（Input/Output Per Second））を提供することが求められる。そのため、ＲＡＩＤ装置は、所定の性能を有することを検証されたＨＤＤを搭載している。ＨＤＤに求められる所定の性能は、その下限だけでなく上限も規定した基準の範囲内に適合することが求められる。
【０００４】
ＲＡＩＤ装置ベンダとＨＤＤベンダは、ＨＤＤに求められる性能の上限がＨＤＤ内部の処理に委ねられることから、ファームウェアの変更と検証を繰り返してファームウェアの最適化を図っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−６９３５９号公報
【特許文献２】特開平８−６３２９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、市場や生産拠点のグローバル化に伴うサプライチェーンの最適化を図る上で、ＨＤＤのマルチベンダ化が進展している。このようなマルチベンダ化の流れは、自然災害や政情不安などの不安定要因に対抗するため一層進展する傾向にある。
【０００７】
また、ユーザのニーズにより細やかに対応するため、ＨＤＤの多機種化（サイズ、回転数など）に伴い様々な性能特性を有するＨＤＤが存在する。
ＲＡＩＤ装置ベンダとＨＤＤベンダによるファームウェアの最適化を図るための作業負担は、ますます増大する傾向にある。
【０００８】
１つの側面では、本発明は、ストレージ装置の性能最適化に伴う作業負担を軽減可能なストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、以下に示すような、ストレージ制御装置が提供される。ストレージ制御装置は、設定部と、発行制御部を備える。設定部は、論理ボリュームにおけるストレージ装置の構成、およびストレージ装置の性能にもとづいて論理ボリュームに対して単位時間当たりに発行可能なＩ／Ｏ発行可能数を設定する。発行制御部は、論理ボリュームに対して受け付けたＩ／Ｏ要求を要求蓄積部に蓄積し、要求蓄積部が蓄積するＩ／Ｏ要求のうちから、単位時間当たりのＩ／Ｏ発行数をＩ／Ｏ発行可能数の範囲に制限して論理ボリュームにＩ／Ｏ要求の発行をおこなう。
【００１０】
また、上記目的を達成するために、以下に示すような、ストレージ制御プログラム、およびストレージ制御方法が提供される。ストレージ制御プログラムは、以下に示すような処理をコンピュータに実行させ、ストレージ制御方法は、以下に示すような処理をコンピュータが実行する。コンピュータは、論理ボリュームにおけるストレージ装置の構成、およびストレージ装置の性能にもとづいて論理ボリュームに対して単位時間当たりに発行可能なＩ／Ｏ発行可能数を設定し、論理ボリュームに対して受け付けたＩ／Ｏ要求を要求蓄積部に蓄積し要求蓄積部が蓄積するＩ／Ｏ要求のうちから、単位時間当たりのＩ／Ｏ発行数をＩ／Ｏ発行可能数の範囲に制限して論理ボリュームにＩ／Ｏ要求の発行をおこなう処理を実行する。
【発明の効果】
【００１１】
１態様によれば、ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法において、ストレージ装置の性能最適化に伴う作業負担を軽減する。
【図面の簡単な説明】
【００１２】
【図１】第１の実施形態のストレージ制御装置の構成例を示す図である。
【図２】第２の実施形態のストレージシステムの構成例を示す図である。
【図３】異なるＨＤＤ種別におけるＲＡＩＤ性能の測定例を示す図である。
【図４】第２の実施形態のコントローラモジュールの構成例を示す図である。
【図５】第２の実施形態のＲＡＩＤ装置のハードウェア構成例を示す図である。
【図６】第２の実施形態のＲＡＩＤグループ追加処理のフローチャートを示す図である。
【図７】第２の実施形態の性能情報テーブルの一例を示す図である。
【図８】第２の実施形態のＩ／Ｏ発行数管理テーブルの一例を示す図である。
【図９】第２の実施形態のＲＡＩＤグループＩ／Ｏ受付処理のフローチャートを示す図である。
【図１０】第２の実施形態の統計情報管理テーブルの一例を示す図である。
【図１１】第２の実施形態のＲＡＩＤグループＩ／Ｏ発行数管理処理のフローチャートを示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照して実施の形態を詳細に説明する。
［第１の実施形態］
まず、第１の実施形態のストレージ制御装置について図１を用いて説明する。図１は、第１の実施形態のストレージ制御装置の構成例を示す図である。
【００１４】
ストレージ制御装置１は、ホストコンピュータ９から論理ボリュームへのＩ／Ｏ要求７を受け付ける。ストレージ制御装置１は、複数のストレージ装置５（５ａ，５ｂ，…，５ｎ）の組合せから論理ボリュームを生成する。論理ボリュームは、たとえば、ＲＡＩＤがある。
【００１５】
ストレージ装置５は、たとえば、ＨＤＤであるが、フラッシュメモリドライブなどのＳＳＤ（Solid State Drive）などであってもよい。また、ストレージ装置５は、ストレージ制御装置１が内蔵するものであってもよいし、ストレージ制御装置１に外付けされるものであってもよい。
【００１６】
ストレージ制御装置１は、設定部２と、発行制御部３と、要求蓄積部４を含む。設定部２は、論理ボリュームに対して単位時間当たりに発行可能なＩ／Ｏ発行可能数６を設定する。設定部２は、論理ボリュームにおけるストレージ装置５の構成、およびストレージ装置５の性能にもとづいて、Ｉ／Ｏ発行可能数を設定する。
【００１７】
これにより、ストレージ制御装置１は、論理ボリュームを構成するストレージ装置５の性能を反映したＩ／Ｏ発行可能数を設定することができる。
発行制御部３は、論理ボリュームに対して受け付けたＩ／Ｏ要求７を要求蓄積部４に蓄積する。発行制御部３は、要求蓄積部４が蓄積するＩ／Ｏ要求７から論理ボリュームにＩ／Ｏ要求の発行をおこなう。このとき、発行制御部３は、単位時間当たりのＩ／Ｏ発行数をＩ／Ｏ発行可能数６の範囲に制限する。
【００１８】
これにより、ストレージ制御装置１は、ストレージ装置５が過大な応答性能を有する場合があっても、論理ボリュームが過大な応答性能を有することを抑制する。このようなストレージ制御装置１は、論理ボリュームを構成するストレージ装置５の組合せに変更が生じても安定した性能値を発揮することができる。そのため、ストレージ制御装置１は、ストレージ装置５の性能最適化に伴う作業負担を軽減することができる。
【００１９】
［第２の実施形態］
次に、第２の実施形態のストレージ装置の接続例について図２を用いて説明する。図２は、第２の実施形態のストレージシステムの構成例を示す図である。
【００２０】
ストレージシステム１０は、１以上のホストコンピュータ１１と、ホストコンピュータ１１と通信可能に接続する１以上のＲＡＩＤ装置１２とを含んで構成される。ＲＡＩＤ装置１２は、複数のＨＤＤ１９を１つの論理ボリュームとして扱うストレージ装置の１つである。ＲＡＩＤ装置１２は、ＲＡＩＤへのＩ／Ｏ要求をホストコンピュータ１１から受け付ける。ＲＡＩＤ装置１２は、コントローラモジュール（以下、ＣＭ（Controller Module））１３と、ドライブエンクロージャ（ＤＥ）１４とを含む。
【００２１】
ＤＥ１４は、複数のＨＤＤ１９を収容する筐体である。ＤＥ１４は、複数のＨＤＤ１９への電源供給を担うとともに、ＨＤＤ１９とＣＭ１３とを接続するインタフェースを有する。ＲＡＩＤ装置１２は、ＤＥ１４が収容する複数のＨＤＤ１９の組合せによりＲＡＩＤを構成する。なお、ＤＥ１４は、ＲＡＩＤ装置１２が内蔵するものであってもよいし、ＲＡＩＤ装置１２に外付けされるものであってもよい。また、図示するＲＡＩＤ装置１２は、１つのＤＥ１４を備えるが２以上のＤＥ１４を備えてもよい。
【００２２】
ＣＭ１３は、ストレージ制御装置の一形態であり、ホストコンピュータ１１からのＩ／Ｏ要求（たとえば、Ｗｒｉｔｅ要求、Ｒｅａｄ要求など）を受け付けて、ＤＥ１４が備える複数のＨＤＤ１９へのアクセスを制御する。ＣＭ１３は、ホストＩ／Ｏ制御部１５と、ＲＡＩＤ制御部１６と、ディスクＩ／Ｏ制御部１７を含む。なお、図示するＲＡＩＤ装置１２は、１つのＣＭ１３を備えるが２以上のＣＭ１３を備える冗長構成としてもよい。
【００２３】
ホストＩ／Ｏ制御部１５は、ホストコンピュータ１１とＣＭ１３とのインタフェース制御をおこなう。ＣＭ１３は、ホストＩ／Ｏ制御部１５を介してホストコンピュータ１１との間で所要のデータの送受信をおこなう。ＲＡＩＤ制御部１６は、ＲＡＩＤグループごとのＩ／Ｏ発行数を管理する。ディスクＩ／Ｏ制御部１７は、ＤＥ１４とＣＭ１３とのインタフェース制御をおこなう。ＣＭ１３は、ディスクＩ／Ｏ制御部１７を介してＤＥ１４との間で所要のデータの送受信をおこなう。
【００２４】
ここで、異なるＨＤＤ種別におけるＲＡＩＤ性能の測定例について図３を用いて説明する。図３は、異なるＨＤＤ種別におけるＲＡＩＤ性能の測定例を示す図である。
ＨＤＤ＿ＡとＨＤＤ＿Ｂとは、ＲＡＩＤ装置１２において相互に交換可能なＨＤＤである。所定条件下でアクセス性能を測定したとき、ＨＤＤ＿ＡはＰ１（ＭＢ／ｓ）、ＨＤＤ＿ＢはＰ２（ＭＢ／ｓ）であり、ＨＤＤ＿ＡとＨＤＤ＿Ｂの間にｄ１（ＭＢ／ｓ）の性能差がある。
【００２５】
ＨＤＤ＿Ａは、要求性能下限ＰＬと要求性能上限ＰＨを満足するが、ＨＤＤ＿Ｂは、要求性能下限ＰＬを満足するものの要求性能上限ＰＨを満足していない。たとえば、ＨＤＤ＿Ｂを含むＨＤＤの組合せで、ユーザが要求する性能を満足するＲＡＩＤを構成していたときに、ＨＤＤ＿ＢをＨＤＤ＿Ａに交換するとユーザが要求する性能を満たさなくなってしまう場合がある。
【００２６】
このように、ＨＤＤごとのＩ／Ｏ発行数に上限値を設けたとしてもＩ／Ｏ要求の発行後の処理は、ＨＤＤ側に任せられるため、ＲＡＩＤ性能は、ＨＤＤ内部の処理方法に委ねられる。そのため、従来であれば、ＨＤＤ＿ＡとＨＤＤ＿Ｂが互換性を有して運用できるように、設計段階でＨＤＤのファームウェア性能の最適化を図っている。
【００２７】
たとえば、ＲＡＩＤ装置ベンダは、新規のＨＤＤの性能測定を実施し、測定結果にもとづいて要求性能値を算出してＨＤＤベンダに通知する。ＨＤＤベンダは、通知された要求性能値にもとづいてＨＤＤのファームウェアを更新してＲＡＩＤ装置ベンダに提供する。ＲＡＩＤ装置ベンダとＨＤＤベンダは、要求性能値が満たされるまで上記作業を反復する。
【００２８】
このようなＨＤＤの性能最適化に伴う作業負担を軽減するための処理を実行するＲＡＩＤ制御部について、図４を用いて説明する。図４は、第２の実施形態のコントローラモジュールの構成例を示す図である。
【００２９】
ＣＭ（コントローラモジュール）１３は、前述した通り、ホストＩ／Ｏ制御部１５と、ＲＡＩＤ制御部１６と、ディスクＩ／Ｏ制御部１７を含む。ホストＩ／Ｏ制御部１５は、Ｉ／Ｏ受付部２０と、Ｉ／Ｏ完了受付部２１を含む。Ｉ／Ｏ受付部２０は、ホストコンピュータ１１からＩ／Ｏ要求を受け付けてＲＡＩＤ制御部１６にＩ／Ｏ要求を通知する。Ｉ／Ｏ完了受付部２１は、ＲＡＩＤ制御部１６からＩ／Ｏ完了応答を受け付けてホストコンピュータ１１にＩ／Ｏ完了応答を通知する。
【００３０】
ＲＡＩＤ制御部１６は、Ｉ／Ｏ受付部２２と、Ｉ／Ｏ発行可能数算出部２５と、Ｉ／Ｏ完了受付部２８を含む。Ｉ／Ｏ受付部２２は、ホストＩ／Ｏ制御部１５からＩ／Ｏ要求を受け付けて、ＲＡＩＤグループごとに時間当たりのＩ／Ｏ発行数を制限してディスクＩ／Ｏ制御部１７にＩ／Ｏ要求を通知する。Ｉ／Ｏ受付部２２は、Ｉ／Ｏ発行数管理部２３と、管理時間監視部２４を含む。
【００３１】
Ｉ／Ｏ発行数管理部２３は、Ｉ／Ｏ受付部２２が受け付けたＩ／Ｏ要求をＩ／Ｏ発行待ちキューに蓄積し、時間当たりのＩ／Ｏ発行数をＩ／Ｏ発行可能数２７の範囲に制限しながらディスクＩ／Ｏ制御部１７にＩ／Ｏ要求の発行（Ｉ／Ｏ発行）をおこなう。管理時間監視部２４は、Ｉ／Ｏ発行数を制限する際の単位時間を管理時間として監視する。
【００３２】
Ｉ／Ｏ発行可能数算出部２５は、あらかじめ設定される性能情報テーブル２６を保持し、性能情報テーブル２６にもとづいてＲＡＩＤグループごとにＩ／Ｏ発行可能数２７を算出し、Ｉ／Ｏ発行可能数２７を保持する。性能情報テーブル２６は、ＲＡＩＤの構成条件別の要求性能を示す。性能情報テーブル２６の詳細は、後で図７を用いて説明する。Ｉ／Ｏ完了受付部２８は、ディスクＩ／Ｏ制御部１７からＩ／Ｏ完了応答を受け付けてホストＩ／Ｏ制御部１５にＩ／Ｏ完了応答を通知する。
【００３３】
ディスクＩ／Ｏ制御部１７は、Ｉ／Ｏ受付部２９と、Ｉ／Ｏ完了受付部３０を含む。Ｉ／Ｏ受付部２９は、ＲＡＩＤ制御部１６からＩ／Ｏ要求を受け付けてＲＡＩＤを構成するＨＤＤ１９にＩ／Ｏ要求を通知する。ＨＤＤ１９は、Ｉ／Ｏ要求を受け付け、Ｉ／Ｏ要求に対応するコマンド処理をおこなう。ＨＤＤ１９は、コマンド処理の実行後にＩ／Ｏ完了受付部３０にＩ／Ｏ完了応答を通知する。Ｉ／Ｏ完了受付部３０は、ＨＤＤ１９からＩ／Ｏ完了応答を受け付けてＲＡＩＤ制御部１６にＩ／Ｏ完了応答を通知する。
【００３４】
次に、第２の実施形態のＲＡＩＤ装置のハードウェア構成について図５を用いて説明する。図５は、第２の実施形態のＲＡＩＤ装置のハードウェア構成例を示す図である。
ＲＡＩＤ装置１２は、チャネルアダプタ３１と、コントローラモジュール１３と、ＤＥ１４を備える。ＲＡＩＤ装置１２は、チャネルアダプタ３１を介してホストコンピュータ１１と接続する。コントローラモジュール１３は、チャネルアダプタ３１を複数（たとえば、２つ）備え、複数のチャネルアダプタ３１による冗長構成のもと複数系統でホストコンピュータ１１と接続する。コントローラモジュール１３は、ディスクアダプタ３４を介して、ＤＥ１４が収容するＨＤＤ１９と接続する。
【００３５】
コントローラモジュール１３は、プロセッサ３２、メモリ３３、ディスクアダプタ３４を備え、図示しないバスを介して接続されている。プロセッサ３２は、コントローラモジュール１３全体を制御し、ＲＡＩＤ制御を含むストレージ制御をおこなう。プロセッサ３２は、マルチプロセッサであってもよい。プロセッサ３２は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ３２は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組合せであってもよい。
【００３６】
メモリ３３は、たとえば、ＲＡＭ（Random Access Memory）や不揮発性メモリを含む。メモリ３３は、ＨＤＤ１９からデータを読み出したときにデータを保持するほか、Ｉ／Ｏ要求を一時的に蓄積するＩ／Ｏ発行待ちキューやＨＤＤ１９にデータを書き込むときのバッファとなる。また、メモリ３３は、ユーザデータや制御情報を格納する。ディスクアダプタ３４は、ＨＤＤ１９とのインタフェース制御（アクセス制御）をおこなう。たとえば、ＲＡＭは、コントローラモジュール１３の主記憶装置として使用される。ＲＡＭには、プロセッサ３２に実行させるオペレーティングシステム（Operating System）のプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭには、プロセッサ３２による処理に必要な各種データが格納される。また、ＲＡＭは、各種データの格納に用いるメモリと別体にキャッシュメモリを含むものであってもよい。
【００３７】
不揮発性メモリは、ＲＡＩＤ装置１２の電源遮断時においても記憶内容を保持する。不揮発性メモリは、たとえば、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）やフラッシュメモリなどの半導体記憶装置や、ＨＤＤなどである。不揮発性メモリには、オペレーティングシステムのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
【００３８】
以上のようなハードウェア構成によって、第２の実施形態のＲＡＩＤ装置１２、コントローラモジュール１３の処理機能を実現することができる。なお、第１の実施形態に示したストレージ制御装置１も、図示したＲＡＩＤ装置１２、コントローラモジュール１３と同様のハードウェアにより実現することができる。
【００３９】
次に、第２の実施形態のＲＡＩＤ制御部１６が実行するＲＡＩＤグループ追加処理について図６を用いて説明する。図６は、第２の実施形態のＲＡＩＤグループ追加処理のフローチャートを示す図である。ＲＡＩＤグループ追加処理は、新規のＲＡＩＤグループが追加されたときにＲＡＩＤ制御部１６により、より詳しくはＩ／Ｏ発行可能数算出部２５により実行される。ＲＡＩＤグループ追加処理は、新規に追加されたＲＡＩＤグループについてＩ／Ｏ発行可能数を決定し、決定したＩ／Ｏ発行可能数のもとでＩ／Ｏ制御を開始する処理である。
【００４０】
［ステップＳ１１］ＲＡＩＤ制御部１６は、新規に追加されたＲＡＩＤグループのＲＡＩＤレベルを取得する。ＲＡＩＤレベルは、たとえば、ＲＡＩＤ１、ＲＡＩＤ５、ＲＡＩＤ６、ＲＡＩＤ１＋０、ＲＡＩＤ５＋０などがあるが、その他のＲＡＩＤレベルであってもよい。
【００４１】
［ステップＳ１２］ＲＡＩＤ制御部１６は、ディスク種別を取得する。ディスク種別は、ＨＤＤの回転数である。ＨＤＤの回転数は、たとえば、１５ｋｒｐｍ（revolution per minute）、１０ｋｒｐｍ、７．２ｋｒｐｍなどがある。なお、ディスク種別は、ディスクの性能を区別する指標であれば、ＨＤＤの回転数に限らず、ＨＤＤのサイズや記録容量、バッファ容量、最大読み出し速度や最大書き込み速度、ＭＴＢＦ（平均故障間隔）などであってもよい。また、ディスクの性能を区別する指標は、１つに限らず複数あってもよい。また、ディスクは、ＨＤＤに限らず、ＳＳＤなどであってもよい。
【００４２】
［ステップＳ１３］ＲＡＩＤ制御部１６は、ディスク実構成数を取得する。ディスク実構成数は、新規に追加されたＲＡＩＤグループに割り当てられたディスクの数である。
［ステップＳ１４］ＲＡＩＤ制御部１６は、性能情報テーブルを参照する。性能情報テーブルは、あらかじめＲＡＩＤレベル、ディスク種別に用意される。たとえば、性能情報テーブルは、メモリ３３に保持されるが、ホストコンピュータ１１など外部装置から取得されるものであってもよい。
【００４３】
ここで、性能情報テーブルについて図７を用いて説明する。図７は、第２の実施形態の性能情報テーブルの一例を示す図である。性能情報テーブル１００は、あらかじめ用意されている性能情報テーブルの一例である。性能情報テーブル１００は、ＲＡＩＤレベル、ディスク種別（回転数）、基本構成ディスク数、転送単位（ｋｂｙｔｅ）、および要求性能（ＭＢ／ｓ）を項目として有する。ＲＡＩＤレベル、ディスク種別（回転数）は、あらかじめ用意されている性能情報テーブルのうちから対応する性能情報テーブルを参照するためのインデックスとなる項目である。性能情報テーブル１００は、新規に追加されたＲＡＩＤグループが、ＲＡＩＤレベル「ＲＡＩＤ５」、ディスク種別「１５ｋｒｐｍ」であるときに参照される。基本構成ディスク数は、ＲＡＩＤレベルに応じたディスク数であり、ＲＡＩＤレベル「ＲＡＩＤ５」の基本構成ディスク数は、「５」である。
【００４４】
転送単位は、ＲＡＩＤグループに設定される転送単位である。たとえば、転送単位は、基本転送単位Ｎを基準にして７段階に分けられている。まず、第１段階が「Ｎ×８より大きい範囲」、第２段階が「Ｎ×８からＮ×４の範囲」、第３段階が「Ｎ×４からＮ＋１の範囲」、第４段階が「Ｎ」、第５段階が「Ｎ−１からＮ／４の範囲」、第６段階が「Ｎ／４からＮ／８の範囲」、第７段階が「Ｎ／８より小さい範囲」である。なお、転送単位は、たとえば、５段階や１０段階など任意の段階に設定してもよい。また、各段階の刻み幅も任意の刻み幅に設定してもよい。
【００４５】
なお、転送単位の初期値は、第４段階のＮ（たとえば、メインフレーム用途で「８」ｋｂｙｔｅ、バックアップ用途で「１０００」ｋｂｙｔｅなど）が設定される。転送単位は、ＲＡＩＤグループの稼働状態に応じて所要のタイミングで更新される。要求性能は、転送単位ごとに要求される性能である。たとえば、転送単位Ｎのとき、要求性能は、「２００」ＭＢ／ｓである。
【００４６】
［ステップＳ１５］ＲＡＩＤ制御部１６は、ＲＡＩＤグループにおける単位時間当たりのＩ／Ｏ処理数を算出する。ＲＡＩＤ制御部１６は、性能情報テーブル１００の要求性能を転送単位で除することにより単位時間当たりのＩ／Ｏ処理数を算出する。たとえば、要求性能「２００」ＭＢ／ｓ、転送単位Ｎのとき、単位時間当たりのＩ／Ｏ処理数は、「２００／Ｎ」である。
【００４７】
［ステップＳ１６］ＲＡＩＤ制御部１６は、ＲＡＩＤグループにおける構成ディスク比率を算出する。ＲＡＩＤ制御部１６は、ステップＳ１３で取得したディスク実構成数を性能情報テーブル１００の基本構成ディスク数で除することにより構成ディスク比率を算出する。たとえば、ディスク実構成数「５」、基本構成ディスク数「５」のとき、構成ディスク比率は、「１」であり、ディスク実構成数「６」、基本構成ディスク数「５」のとき、構成ディスク比率は、「１．２」である。構成ディスク比率は、「１」以上の値をとり、値が大きいほどＩ／Ｏ発行可能数を大きくすることができる。
【００４８】
［ステップＳ１７］ＲＡＩＤ制御部１６は、管理時間当たりのＩ／Ｏ発行可能数を算出する。ＲＡＩＤ制御部１６は、ステップＳ１５で算出した単位時間当たりのＩ／Ｏ処理数と、ステップＳ１６で算出した構成ディスク比率と、管理時間の積により管理時間当たりのＩ／Ｏ発行可能数を算出する。たとえば、単位時間当たりのＩ／Ｏ処理数「２００／Ｎ」、構成ディスク比率「１」、管理時間「１（秒）」のとき、管理時間当たりのＩ／Ｏ発行可能数は、「２００／Ｎ（＝（２００／Ｎ）×１×１）」である。なお、管理時間は、あらかじめ設定される値である。
【００４９】
［ステップＳ１８］ＲＡＩＤ制御部１６は、Ｉ／Ｏ発行数管理テーブルを生成する。Ｉ／Ｏ発行数管理テーブルは、ＲＡＩＤグループごとに生成される。
ここで、Ｉ／Ｏ発行数管理テーブルについて図８を用いて説明する。図８は、第２の実施形態のＩ／Ｏ発行数管理テーブルの一例を示す図である。Ｉ／Ｏ発行数管理テーブル１１０は、ＲＡＩＤ制御部１６がＲＡＩＤグループごとに生成するＩ／Ｏ発行数管理テーブルの一例である。Ｉ／Ｏ発行数管理テーブル１１０は、ＲＡＩＤグループ識別情報、転送単位（ｋｂｙｔｅ）、およびＩ／Ｏ発行可能数を項目として有する。ＲＡＩＤグループ識別情報は、ＲＡＩＤグループを一意に特定可能な識別情報である。Ｉ／Ｏ発行数管理テーブル１１０は、ＲＡＩＤグループ「＃１」のＩ／Ｏ発行数管理テーブルである。転送単位（ｋｂｙｔｅ）は、所定の転送単位を示す。Ｉ／Ｏ発行数管理テーブル１１０の転送単位は、性能情報テーブル１００の転送単位と同じである。Ｉ／Ｏ発行可能数は、ステップＳ１７で算出した値を、転送単位「Ｎ」に対応するＩ／Ｏ発行可能数「Ｍ」に設定する。その他の転送単位のＩ／Ｏ発行可能数は、転送単位「Ｎ」に対応するＩ／Ｏ発行可能数「Ｍ」に所定の計数を乗じた値が設定される。たとえば、転送単位「Ｎ×４からＮ＋１の範囲」に対応するＩ／Ｏ発行可能数は、「ｋ３×Ｍ」である。所定の計数「ｋ１」，「ｋ２」，「ｋ３」，「ｋ４」，「ｋ５」，「ｋ６」は、転送単位ごとにあらかじめ設定される。
【００５０】
ＲＡＩＤ制御部１６は、生成したＩ／Ｏ発行数管理テーブルをメモリ３３に保持する。したがって、ＲＡＩＤ制御部１６は、ＲＡＩＤグループごとにＩ／Ｏ発行数管理テーブルをメモリ３３に保持する。
【００５１】
［ステップＳ１９］ＲＡＩＤ制御部１６は、Ｉ／Ｏ発行数管理テーブルを参照して、設定されている転送単位に対応するＩ／Ｏ発行可能数を取得して設定する。たとえば、ＲＡＩＤ制御部１６は、Ｉ／Ｏ発行数管理テーブル１１０を参照して、初期値として設定されている転送単位「Ｎ」に対応するＩ／Ｏ発行可能数「Ｍ」を取得し、ＲＡＩＤグループ「＃１」のＩ／Ｏ発行可能数に「Ｍ」を設定する。
【００５２】
［ステップＳ２０］ＲＡＩＤ制御部１６は、新規に追加されたＲＡＩＤグループのＩ／Ｏ制御を開始し、ＲＡＩＤグループ追加処理を終了する。
次に、第２の実施形態のＲＡＩＤ制御部１６が実行するＲＡＩＤグループＩ／Ｏ受付処理について図９を用いて説明する。図９は、第２の実施形態のＲＡＩＤグループＩ／Ｏ受付処理のフローチャートを示す図である。ＲＡＩＤグループＩ／Ｏ受付処理は、ＲＡＩＤ制御部１６がホストＩ／Ｏ制御部１５からＩ／Ｏ要求を受け付けることにより実行される。ＲＡＩＤグループＩ／Ｏ受付処理は、ホストＩ／Ｏ制御部１５から受け付けたＩ／Ｏ要求をＩ／Ｏ発行待ちキューにキューイングするとともに、ＲＡＩＤグループ追加処理で設定したＩ／Ｏ発行可能数を更新する処理である。
【００５３】
［ステップＳ２１］ＲＡＩＤ制御部１６（より詳しくはＩ／Ｏ発行可能数算出部２５）は、Ｉ／Ｏ受付部２２がホストＩ／Ｏ制御部１５から受け付けたＩ／Ｏ要求を、Ｉ／Ｏ要求に対応するＲＡＩＤグループごとのＩ／Ｏ発行待ちキューにキューイングする。
【００５４】
［ステップＳ２２］ＲＡＩＤ制御部１６は、ＲＡＩＤグループごとのＩ／Ｏ要求の統計情報を更新する。統計情報は、所定の監視時間当たりの転送単位使用頻度を含み、統計情報管理テーブルに記録される。統計情報管理テーブルは、メモリ３３に保持される。ここで、統計情報管理テーブルについて図１０を用いて説明する。図１０は、第２の実施形態の統計情報管理テーブルの一例を示す図である。
【００５５】
統計情報管理テーブル１２０は、ＲＡＩＤ制御部１６がＲＡＩＤグループごとに管理する統計情報管理テーブルの一例である。統計情報管理テーブル１２０は、ＲＡＩＤグループ識別情報、転送単位（ｋｂｙｔｅ）、および受付Ｉ／Ｏ数を項目として有する。ＲＡＩＤグループ識別情報は、ＲＡＩＤグループを一意に特定可能な識別情報である。
【００５６】
統計情報管理テーブル１２０は、ＲＡＩＤグループ「＃１」のＩ／Ｏ発行数管理テーブルである。転送単位（ｋｂｙｔｅ）は、所定の転送単位を示す。統計情報管理テーブル１２０の転送単位は、性能情報テーブル１００の転送単位、およびＩ／Ｏ発行数管理テーブル１１０の転送単位と同じである。受付Ｉ／Ｏ数は、所定の監視時間当たりの転送単位使用頻度である。より詳しくは、受付Ｉ／Ｏ数は、Ｉ／Ｏ受付部２２が受け付けたＩ／Ｏ要求のデータサイズに対応する転送単位ごとのＩ／Ｏ要求の受付数である。たとえば、転送単位「Ｎ」の受付Ｉ／Ｏ数「３０」は、所定の監視時間の間に、データサイズ「Ｎ」のＩ／Ｏ要求を３０回受け付けたことを示す。
【００５７】
なお、所定の監視時間は、たとえば、６０分など統計的に有意な情報を収集できる時間を任意に設定することができる。監視時間は、ＲＡＩＤグループで共通の値としてもよいし、ＲＡＩＤグループごとに異なる値としてもよい。また、監視時間は、あらかじめ設定する固定値としてもよいし、時間帯や時間当たりのＩ／Ｏ要求数に応じた可変値としてもよい。
【００５８】
［ステップＳ２３］ＲＡＩＤ制御部１６は、Ｉ／Ｏ発行可能数の更新タイミングであるか否かを判定する。更新タイミングは、あらかじめ設定した更新周期（たとえば、１分など）であってもよいし、所定のトリガ検出（たとえば、統計情報管理テーブル１２０の受付Ｉ／Ｏ数のいずれかが所定値を超えたなど）であってもよい。ＲＡＩＤ制御部１６は、Ｉ／Ｏ発行可能数の更新タイミングである場合にステップＳ２４にすすみ、Ｉ／Ｏ発行可能数の更新タイミングでない場合にＲＡＩＤグループＩ／Ｏ受付処理を終了する。
【００５９】
［ステップＳ２４］ＲＡＩＤ制御部１６は、統計情報管理テーブルを参照して受付Ｉ／Ｏ数のボリュームゾーンを選択する。たとえば、ＲＡＩＤ制御部１６は、統計情報管理テーブル１２０を参照して、受付Ｉ／Ｏ数のボリュームゾーンとして受付Ｉ／Ｏ数が最大の「１０００」となる転送単位「Ｎ／４からＮ／８の範囲」を選択する。なお、ボリュームゾーンとして選択する転送単位は、受付Ｉ／Ｏ数が最大となる場合に限らず、平均値や中央値など所定の選択基準に従い選択されるものであってもよい。
【００６０】
［ステップＳ２５］ＲＡＩＤ制御部１６は、Ｉ／Ｏ発行数管理テーブルを参照して、選択した転送単位に対応するＩ／Ｏ発行可能数を取得して設定する。たとえば、ＲＡＩＤ制御部１６は、転送単位「Ｎ／４からＮ／８の範囲」を選択した場合、Ｉ／Ｏ発行数管理テーブル１１０を参照して、転送単位「Ｎ／４からＮ／８の範囲」に対応するＩ／Ｏ発行可能数「ｋ５×Ｍ」を取得し、ＲＡＩＤグループ「＃１」のＩ／Ｏ発行可能数に「ｋ５×Ｍ」を設定する。ＲＡＩＤ制御部１６は、Ｉ／Ｏ発行可能数を設定した後、ＲＡＩＤグループＩ／Ｏ受付処理を終了する。
【００６１】
このように、Ｉ／Ｏ発行可能数は、受け付けたＩ／Ｏ要求に応じて適宜更新される。
次に、第２の実施形態のＲＡＩＤ制御部１６が実行するＲＡＩＤグループＩ／Ｏ発行数管理処理について図１１を用いて説明する。図１１は、第２の実施形態のＲＡＩＤグループＩ／Ｏ発行数管理処理のフローチャートを示す図である。ＲＡＩＤグループＩ／Ｏ発行数管理処理は、ＲＡＩＤグループのＩ／Ｏ制御の開始を受けて実行される。ＲＡＩＤグループＩ／Ｏ受付処理は、Ｉ／Ｏ発行待ちキューにキューイングされているＩ／Ｏ要求をＩ／Ｏ発行可能数の範囲に制限しながらＲＡＩＤグループにＩ／Ｏ要求を発行する処理である。
【００６２】
［ステップＳ３１］ＲＡＩＤ制御部１６（より詳しくはＩ／Ｏ発行数管理部２３）は、Ｉ／Ｏ発行待ちキューにキューイングされているＩ／Ｏ要求の数（受付Ｉ／Ｏ発行数）が「０」より大きいか否かを判定する。すなわち、ＲＡＩＤ制御部１６は、Ｉ／Ｏ発行待ちキューにキューイングされているＩ／Ｏ要求があるか否かを判定する。ＲＡＩＤ制御部１６は、Ｉ／Ｏ発行待ちキューにキューイングされているＩ／Ｏ要求がある場合にステップＳ３２にすすみ、Ｉ／Ｏ要求がない場合にＩ／Ｏ発行待ちキューへのキューイングを待ち受ける。
【００６３】
［ステップＳ３２］ＲＡＩＤ制御部１６は、受付Ｉ／Ｏ発行数がＲＡＩＤグループに設定されているＩ／Ｏ発行可能数を超えているか否かを判定する。ＲＡＩＤ制御部１６は、受付Ｉ／Ｏ発行数がＩ／Ｏ発行可能数を超えている場合にステップＳ３３にすすみ、受付Ｉ／Ｏ発行数がＩ／Ｏ発行可能数を超えていない場合にステップＳ３４にすすむ。
【００６４】
［ステップＳ３３］ＲＡＩＤ制御部１６は、Ｉ／Ｏ発行待ちキューにキューイングされているＩ／Ｏ要求のうちからＩ／Ｏ発行可能数だけＩ／Ｏ要求をディスクＩ／Ｏ制御部１７に向けて発行する。
【００６５】
［ステップＳ３４］ＲＡＩＤ制御部１６は、Ｉ／Ｏ発行待ちキューにキューイングされているＩ／Ｏ要求をディスクＩ／Ｏ制御部１７に向けて発行する。
［ステップＳ３５］ＲＡＩＤ制御部１６は、Ｉ／Ｏ要求の発行後の管理時間の経過を待つ。管理時間は、ＲＡＩＤグループ追加処理のステップＳ１７でＩ／Ｏ発行可能数を算出した際に用いた管理時間である。ＲＡＩＤ制御部１６は、Ｉ／Ｏ要求の発行後の管理時間を経過している場合にステップＳ３１にすすみ、Ｉ／Ｏ要求の発行後の管理時間を経過していない場合に管理時間の経過を待つ。
【００６６】
このようにして、ＲＡＩＤ制御部１６は、ＲＡＩＤグループに向けて発行するＩ／Ｏ要求の数を、管理時間当たりＩ／Ｏ発行可能数の範囲に制限することができる。したがって、ＲＡＩＤグループを構成する一部のＨＤＤ１９の処理性能が過大であっても、ＲＡＩＤグループのＩ／Ｏ処理数が過大になることがない。
【００６７】
したがって、ＲＡＩＤ装置１２は、性能の上限が多様なＨＤＤ１９を搭載しても、ＲＡＩＤグループを構成したときに所定の性能値を得ることができる。このようなＲＡＩＤ装置１２は、搭載するＨＤＤ１９のマルチベンダ化の推進の障害となることがない。また、このようなＲＡＩＤ装置１２は、搭載するＨＤＤ１９の性能最適化に伴う、ＲＡＩＤ装置ベンダおよびＨＤＤベンダの作業負担を軽減することができる。
【００６８】
また、このようなＲＡＩＤ装置１２は、ＲＡＩＤグループを構成するＨＤＤ１９を故障などにより交換したような場合に、ＲＡＩＤグループの応答性能が著しく変化することがない。したがって、ＲＡＩＤ装置１２は、メンテナンスの前後においてユーザに対して安定した性能を発揮するＲＡＩＤグループを提供することができる。
【００６９】
また、ＲＡＩＤ装置１２は、新規にＲＡＩＤグループを構成したときに、新規に構成したＲＡＩＤグループとすでにあるＲＡＩＤグループとの間で性能差が過大になることがない。したがって、ＲＡＩＤ装置１２は、ユーザに対して安定した性能を発揮するＲＡＩＤグループを提供することができる。
【００７０】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ制御装置１、ＲＡＩＤ装置１２、コントローラモジュール１３などが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００７１】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７２】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００７３】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【００７４】
１  ストレージ制御装置
２  設定部
３  発行制御部
４  要求蓄積部
５  ストレージ装置
６  Ｉ／Ｏ発行可能数
７  Ｉ／Ｏ要求
９  ホストコンピュータ
１０  ストレージシステム
１１  ホストコンピュータ
１２  ＲＡＩＤ装置
１３  コントローラモジュール（ＣＭ）
１４  ドライブエンクロージャ（ＤＥ）
１５  ホストＩ／Ｏ制御部
１６  ＲＡＩＤ制御部
１７  ディスクＩ／Ｏ制御部
１９  ＨＤＤ
２０，２２，２９  Ｉ／Ｏ受付部
２１，２８，３０  Ｉ／Ｏ完了受付部
２３  Ｉ／Ｏ発行数管理部
２４  管理時間監視部
２５  Ｉ／Ｏ発行可能数算出部
２６  性能情報テーブル
２７  Ｉ／Ｏ発行可能数
３１  チャネルアダプタ
３２  プロセッサ
３３  メモリ
３４  ディスクアダプタ
１００  性能情報テーブル
１１０  Ｉ／Ｏ発行数管理テーブル
１２０  統計情報管理テーブル
【図１】
2015026183.tif 000003
【図２】
2015026183.tif 000004
【図３】
2015026183.tif 000005
【図４】
2015026183.tif 000006
【図５】
2015026183.tif 000007
【図６】
2015026183.tif 000008
【図７】
2015026183.tif 000009
【図８】
2015026183.tif 000010
【図９】
2015026183.tif 000011
【図１０】
2015026183.tif 000012
【図１１】
2015026183.tif 000013