(57)【要約】【課題】ハードディスク装置等のストレージの運用上の性能低下を抑制するための技術を提供する。【解決手段】監視Ｉ／Ｏアクセスチェック機構１０６は、ホスト２からＲＡＩＤグループ１２５のハードディスク装置１２０へのアクセスを要求する、監視用に発行されるコマンドである監視Ｉ／Ｏ２１０によるアクセスを行うアクセス先を、キャッシュ１３０、ＣＭ１０用のグループ１２６を構成するハードディスク装置１２０、及びＲＡＩＤグループ１２５のサブグループ１２５ａを構成するハードディスク装置１２０のなかから設定する。その設定により、ＲＡＩＤグループ１２５を構成するハードディスク装置１２０の全て、或いはサブグループ１２５ａを除く全てのハードディスク装置１２０は、低消費電力モードへの移行時、監視Ｉ／Ｏ２１０を受信しても、低消費電力モードが維持される。【選択図】図２
2014238771.tif 000002
【特許請求の範囲】
【請求項１】
ストレージへのアクセスを要求するコマンドを受信する受信部と、
前記受信部が受信したコマンドのなかから、前記ストレージへの監視用のアクセスを要求する監視コマンドを検出する検出部と、
前記検出部が検出した前記監視コマンドによる前記ストレージへのアクセスを制限するアクセス制御部と、
を有することを特徴とするストレージ制御装置。
【請求項２】
前記アクセス制御部は、前記アクセスの対象とする第１の記憶装置を設定し、前記監視コマンドによるアクセスを前記第１の記憶装置に対して行うことにより、前記監視コマンドによる前記ストレージへのアクセスを制限する、
ことを特徴とする請求項１記載のストレージ制御装置。
【請求項３】
前記ストレージが複数、存在する場合、前記アクセス制御部は、前記複数のストレージのなかの一部を前記第１の記憶装置の候補とする、
ことを特徴とする請求項１、または２記載のストレージ制御装置。
【請求項４】
前記検出部は、前記コマンドの種類、前記コマンドがアクセスを要求するアドレス、及び前記コマンドが要求するデータ長を基に、前記受信部が受信したコマンドのなかから前記監視コマンドを特定し、該特定結果を用いて、前記受信部が受信するコマンドが監視コマンドか否か判定する、
ことを特徴とする請求項１、２、または３記載のストレージ制御装置。
【請求項５】
前記検出部は、前記監視コマンドの特定を、前記種類、前記アドレス、及び前記データ長が一致するコマンドを監視コマンドの候補として抽出し、該抽出した候補のなかで受信間隔が一定とみなせる候補を更に抽出することで行う、
ことを特徴とする請求項４記載のストレージ制御装置。
【請求項６】
前記ストレージ制御装置は、前記ストレージとしてハードディスク装置を複数台、備えたディスクアレイ装置に搭載された制御装置である、
ことを特徴とする請求項１〜５の何れか１項に記載のストレージ制御装置。
【請求項７】
１つ以上のストレージの制御に用いられる情報処理装置に、
受信したコマンドのなかから、前記ストレージへの監視用のアクセスを要求する監視コマンドを検出させ、
検出された前記監視コマンドによる前記ストレージへのアクセスを制限させる、
ことを特徴とするアクセス制御方法。
【請求項８】
１つ以上のストレージの制御に用いられる情報処理装置に、
受信したコマンドのなかから、前記ストレージへの監視用のアクセスを要求する監視コマンドを検出させ、
検出された前記監視コマンドによる前記ストレージへのアクセスを制限させる、
処理を実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、コマンドによるストレージへのアクセスを制御するための技術に関する。
【背景技術】
【０００２】
コンピュータ等の情報処理装置に処理させるデータ量は増大傾向にある。現在では、非常に大きいデータ量を情報処理装置に処理させることも普通になっている。大量のデータを処理させる場合、データの格納に要するコストも非常に大きくなる。このことから、データの格納に要するコストを抑えつつ、高速なアクセスを可能にさせるストレージの階層化が多く採用されている。
【０００３】
情報処理装置では、使用する、或いは使用する可能性の高いデータは主記憶装置上に格納され、使用する可能性の低いデータはより低速のストレージ上に格納される。主記憶装置と比較して低速のストレージとしては、ハードディスク装置が広く採用されている。以降、混乱を避けるために、ストレージとしてハードディスク装置を想定する。
【０００４】
ハードディスク装置へのアクセスは、基本ソフトウェア（以降「ＯＳ」と表記。ＯＳはOperating Systemの略記である）によって実行される。ＯＳは、仕様によって、パス監視、デバイス監視、或いはファイルシステム監視等を目的にしたコマンドを発行し、ハードディスク装置へのアクセスを行うようになっている。以降、監視用にハードディスク装置へのアクセスのために発行されるコマンドは「監視コマンド」と表記する。
【０００５】
この監視コマンドは、情報処理装置が本来、行うべきデータ処理のためのコマンド（以降「ユーザコマンド」と表記）ではない。発行された監視コマンドは、ハードディスク装置へのアクセスのためのリソースを消費させる。そのため、発行された監視コマンドは、ユーザコマンドが利用できるリソース量を低減させ、ハードディスク装置のアクセス速度を低下させる可能性がある。ハードディスク装置がビジーの状況下では、発行された監視コマンドは、ハードディスク装置のアクセス速度を確実に低下させる。
【０００６】
ハードディスク装置のようなストレージには、低消費電力機能が用意される場合が多い。この低消費電力機能とは、例えば一定時間、アクセスが行われない場合、ハードディスクの回転を停止させ、消費電力を抑制させるものである。
【０００７】
監視コマンドは、ユーザコマンドとは別に発行される。監視コマンドの発行により、ハードディスク装置へのアクセスが実行される。そのため、監視コマンドの発行は、通常モードから低消費電力機能が有効となる低消費電力モードへの移行を阻害し、低消費電力モード時には通常モードへの移行を助長する。このようなことから、発行される監視コマンドは、低消費電力機能を事実上、低下させる。
【０００８】
ハードディスク装置のアクセス速度の低下、及び低消費電力機能の低下は何れも、ハードディスク装置の運用上の性能低下に相当する。そのため、監視コマンドの発行によるハードディスク装置の運用上の性能低下を抑制することも重要と思われる。これは、ハードディスク装置以外のストレージであっても同様である。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−３１０７４１号公報
【特許文献２】特開２０１０−１９８４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
一側面では、本発明は、ハードディスク装置等のストレージの運用上の性能低下を抑制するための技術を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明を適用した１システムは、ストレージへのアクセスを要求するコマンドを受信する送受信部と、送受信部が受信したコマンドのなかから、ストレージへの監視用のアクセスを要求する監視コマンドを検出する検出部と、検出部が検出した監視コマンドによるストレージへのアクセスを制限するアクセス制御部と、を有する。
【発明の効果】
【００１２】
本発明を適用した場合には、ハードディスク装置等のストレージの運用上の性能低下を抑制することができる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態によるストレージ制御装置を搭載したディスクアレイ装置の機能構成例を説明する図である。
【図２】監視Ｉ／Ｏによるアクセスを行うアクセス先として決定される記憶装置の例を説明する図である。
【図３】履歴テーブルの構成例を表す図である。
【図４】監視対象テーブルの構成例を表す図である。
【図５】本実施形態によるストレージ制御装置であるＣＭの構成例を表す図である。
【図６】アクセス先決定処理のフローチャートである。
【図７】コマンド処理のフローチャートである。
【図８】監視Ｉ／Ｏ検出処理のフローチャートである。
【図９】通常運転処理のフローチャートである。
【図１０】低消費電力運転処理のフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態によるストレージ制御装置を搭載したディスクアレイ装置の機能構成例を説明する図である。
【００１５】
図１に表すように、ディスクアレイ装置１は、ホスト・コンピュータ（以降「ホスト」と略記）２がデータ処理に必要なデータを提供するために設置されたものである。ディスクアレイ装置１には、２つのＣＭ（Control Module）１０（１０−１、１０−２）、及び複数台のハードディスク装置１２０を有するハードディスク装置群１２が搭載されている。本実施形態によるストレージ制御装置は、ＣＭ１０として実現されている。
【００１６】
ハードディスク装置群１２には、複数のＲＡＩＤ（Redundant Arrays of Inexpensive Disks）グループ１２５（１２５−０〜１２５−２）が構築されている。１２６は、各ＣＭ１０用に割り当てられたグループであり、グループ１２６に属するハードディスク装置１２０には、システムファイルが格納される。１２７は、各ＲＡＩＤグループ１２５のホットスペアとして使用されるハードディスク装置１２０の集合としてのグループである。
【００１７】
なお、グループ１２６を構成するハードディスク装置１２０は、ハードディスク装置群１２を構成するハードディスク装置１２０のなかから割り当てられているが、必ずしもそうする必要はない。つまり、グループ１２６を構成するハードディスク装置１２０は、ハードディスク装置群１２とは別にディスクアレイ装置１上に搭載させても良い。
【００１８】
各ＣＭ１０は、ホスト２から受信したコマンドを処理し、ハードディスク装置群１２へのアクセスを行う制御装置である。各ＣＭ１０は、２つのＣＡ（Channel Adaptor）１０１、２つのＤＡ（Device Adaptor）１０２、キャッシュ（Cache）制御部１０３、ＲＡＩＤ制御部１０４、記憶部１０５、及び監視Ｉ／Ｏ（Input/Output）アクセスチェック機構１０６を備える。
【００１９】
２つのＣＡ１０１は、ホスト２との間で通信を可能にさせるインタフェースである。各ＣＡ１０１がホスト２から受信したコマンドはキャッシュ制御部１０３に出力される。各ＣＡ１０１は、キャッシュ制御部１０３から入力したデータをホスト２に送信する。
【００２０】
２つのＤＡ１０２は、ハードディスク装置群１２を構成する各ハードディスク装置１２０との通信を行うためのインタフェースである。各ＤＡ１０２は、ＲＡＩＤ制御部１０４によって制御される。
【００２１】
キャッシュ制御部１０３は、図２、及び図５に表すキャッシュメモリ（以降「キャッシュ」と略記）１３０を管理する。キャッシュ１３０には、ホスト２からコマンドと共に受信したデータ、及びハードディスク装置群１２から読み出されたデータ等が格納される。キャッシュ制御部１０３は、ホスト２からリードコマンドで要求されたデータがキャッシュ１３０に存在する場合、要求されたデータをキャッシュ１３０から読み出し、ＣＡ１０１を介してホスト２に送信する。リードコマンドで要求されたデータがキャッシュ１３０に存在しない場合、キャッシュ制御部１０３は、そのリードコマンドをＲＡＩＤ制御部１０４に出力する。
【００２２】
ＲＡＩＤ制御部１０４は、キャッシュ制御部１０３から入力したコマンドを処理する。そのコマンドが何れかのハードディスク装置１２０へのアクセスを要求するコマンドであった場合、ＲＡＩＤ制御部１０４は、そのコマンドがアクセスを要求するハードディスク装置１２０に対し、ＤＡ１０２を介してアクセスを行う。
【００２３】
ＲＡＩＤグループ１２５の構築は、ホスト２から受信するコマンドに従って行わせることができる。ＲＡＩＤ制御部１０４は、コマンドに従って、ＲＡＩＤグループ１２５を構成するハードディスク装置１２０の組合せを決定する。
【００２４】
記憶部１０５には、構成定義情報１０５ａ、履歴テーブル１０５ｂ、及び監視対象テーブル１０５ｃが保存される。
【００２５】
構成定義情報１０５ａは、ＲＡＩＤグループ１２５毎に、そのＲＡＩＤグループ１２５を構成するハードディスク装置１２０の組合せを表す構成情報、その設定情報、及びデータチェックの管理情報、等を含む。ＲＡＩＤ制御部１０４は、ホスト２から送信されたコマンドに従って、ＲＡＩＤグループ１２５を新たに構築した場合、及び既存のＲＡＩＤグループ１２５を構成するハードディスク装置１２０の組合せを変更した場合、構成定義情報１０５ａを更新する。
【００２６】
監視Ｉ／Ｏアクセスチェック機構１０６は、ホスト２からパス監視、デバイス監視、或いはファイルシステム監視等を目的に発行される、ハードディスク装置１２０へのアクセスを要求するコマンド（以降「監視Ｉ／Ｏ」と表記）を特定する。記憶部１０５に保存された履歴テーブル１０５ｂは、監視Ｉ／Ｏの特定に用いられる。監視対象テーブル１０５ｃは、特定された監視Ｉ／Ｏを表す情報の格納に用いられる。
【００２７】
図３は、履歴テーブルの構成例を表す図である。図３に表すように、履歴テーブル１０５ｂには、ホスト２から受信したコマンド毎に、受信日時（図３中「ｔｉｍｅ」と表記）、コマンド種別（図３中「ｃｏｍｍａｎｄ」と表記）、アクセスを要求したアドレス（図３中「ａｄｄｒｅｓｓ」と表記）、アクセスを要求したデータ長（図３中「ｄａｔａ  ｌｅｎｇｔｈ」と表記）、周期（受信間隔。図３中「ｃｙｃｌｅ」と表記）、及び受信回数（図３中「ｃｏｕｎｔ」と表記）の各データが格納される。
【００２８】
監視Ｉ／Ｏには、通常、リード（ｒｅａｄ）コマンド、及びライト（ｗｒｉｔｅ）コマンドの両方が存在する。１つのＯＳが同じ種類の監視Ｉ／Ｏを発行する間隔は一定であることが多く、その監視Ｉ／Ｏがアクセスを要求するアドレス、及びデータ長も同じであることが多い。データ長は、余り大きくないのが普通である。このことから、本実施形態では、データ長が予め定めた閾値以下であり、且つコマンド種別、アドレス、及びデータ長が同じという条件（以降「コマンド条件」と表記する）を満たすコマンドを監視Ｉ／Ｏの候補とする。本実施形態では、候補のなかで、周期が一定となっている（許容範囲内で受信間隔が一致する）候補を監視Ｉ／Ｏと特定する。
【００２９】
監視Ｉ／Ｏ以外のコマンド（以降、便宜的に「ユーザコマンド」と表記）であっても、上記コマンド条件を満たす可能性がある。ユーザコマンドを誤って監視Ｉ／Ｏと特定しないようにするためには、上記コマンド条件、及び周期を満たすコマンドが最低５回連続することも条件（以降、この条件を「継続条件」と表記する）とするのが望ましい。本実施形態では、より高い精度を実現させるために、継続条件は１０回としている。受信回数は、候補が継続条件を連続して満たした回数を計数するためのデータである。
【００３０】
監視Ｉ／Ｏアクセスチェック機構１０６は、データ長が閾値以下のコマンドから抽出される各種データを履歴テーブル１０５ｂに格納する。監視Ｉ／Ｏアクセスチェック機構１０６は、履歴テーブル１０５ｂを参照し、コマンド条件を満たすコマンド（エントリ）を特定して、周期、及び受信回数の各データを格納（更新）する。その結果、受信回数の値は、コマンド条件を満たし、且つ周期が同じコマンドを受信した場合、インクリメントされる。
【００３１】
図４は、監視対象テーブルの構成例を表す図である。図４に表すように、監視対象テーブル１０５ｃには、特定された監視Ｉ／Ｏ毎に、コマンド種別、アドレス、及びデータ長、の各データが格納される。
【００３２】
コマンド種別、アドレス、及びデータ長は、監視Ｉ／Ｏを特定可能にするデータの組合せである。それにより、ホスト２から送信された監視Ｉ／Ｏは、監視対象テーブル１０５ｃの参照により検出することができる。これらのデータは、受信回数が１０となるコマンドから抽出することができる。
【００３３】
図２は、監視Ｉ／Ｏによるアクセスを行うアクセス先として決定される記憶装置の例を説明する図である。
【００３４】
本実施形態では、通常モードから低消費電力機能が有効となる低消費電力モードへの移行はＲＡＩＤグループ１２５単位で行うようにしている。図２では、１つのＲＡＩＤグループ１２５のみに着目し、監視Ｉ／Ｏ２１０によるアクセスを行うアクセス先として決定される記憶装置の例を表している。
【００３５】
監視Ｉ／Ｏは、ハードディスク装置１２０にアクセスするうえでのリソースを消費させる。そのため、特にビジー状態となっているハードディスク装置１２０ではアクセス速度を低下させる原因となる。また、監視Ｉ／Ｏは、ハードディスク装置１２０の消費電力を抑制する低消費電力機能が有効となるのを阻害する可能性がある。より具体的には、低消費電力機能を有効とさせない、低消費電力機能が有効となる期間を短縮させる、といった可能性がある。アクセス速度の低下、及び低消費電力機能の低下は、共に、ハードディスク装置１２０の運用上の性能を低下させる。そのような性能の低下を抑制するために、本実施形態では、監視Ｉ／Ｏによるアクセスを行うアクセス先として、その監視Ｉ／Ｏが指定するハードディスク装置１２０とは別の記憶装置を設定可能にしている。
【００３６】
本実施形態では、ハードディスク装置１２０を停止させることによる消費電力の低減をより重視している。そのため、本実施形態では、低消費電力機能が有効となる低消費電力モード時に、監視Ｉ／Ｏによるアクセス先を、設定した記憶装置に変更させる。
【００３７】
なお、監視Ｉ／Ｏによるアクセス先の変更は、通常モード時にのみ行うようにしても良い。通常モード時、及び低消費電力モード時ともに、監視Ｉ／Ｏによるアクセス先の変更を行うようにしても良い。監視Ｉ／Ｏによるアクセス先の変更を行う状況、或いは期間を任意にオペレータが設定できるようにしても良い。監視Ｉ／Ｏの本来の目的を達成させるうえでは、監視Ｉ／Ｏによるアクセス先の変更を行わない期間を設けるのが望ましい。
【００３８】
ホスト２では、ＯＳ、及び各種アプリケーション・プログラム等のプログラム群２１が実行される。監視Ｉ／Ｏ２１０は、例えばプログラム群２１を構成するＯＳによって発行され、発行された監視Ｉ／Ｏ２１０は例えばＨＢＡ（Host Bus Adapter）２２、及びネットワークケーブル等の物理パス２００を介してディスクアレイ装置１に送信される。
【００３９】
上記監視Ｉ／Ｏアクセスチェック機構１０６は、ディスクアレイ装置１に存在する記憶装置を確認し、監視Ｉ／Ｏ２１０によるアクセスを行うアクセス先とする記憶装置を決定する。図２に表す点線の各矢印２１０ａ〜２１０ｃは、監視Ｉ／Ｏ２１０によるアクセスを行うアクセス先として決定される記憶装置を表している。つまり、本実施形態では、監視Ｉ／Ｏ２１０によるアクセスを、キャッシュ１３０、グループ１２６に属するハードディスク装置１２０、及びＲＡＩＤグループ１２５中のサブグループ１２５ａを構成するハードディスク装置１２０のうちの何れかに対して行うようにしている。各ＲＡＩＤグループ１２５のサブグループ１２５ａは、構成定義情報１０５ａにより定義されている。
【００４０】
キャッシュ１３０、及びグループ１２６に属するハードディスク装置１２０は、ＲＡＩＤグループ１２０に属するハードディスク装置１２０とは異なる記憶装置である。このため、監視Ｉ／Ｏ２１０によるアクセス先をそれらのうちの何れかに決定した場合、ＲＡＩＤグループ１２５に属するハードディスク装置１２０の監視Ｉ／Ｏ２１０によるアクセス速度の低下は回避される。また、ＲＡＩＤグループ１２５全体を低消費電力モードに移行させている場合には、監視Ｉ／Ｏ２１０による通常モードへの復帰が回避される。これらの結果、ＲＡＩＤグループ１２５全体で監視Ｉ／Ｏ２１０による性能の低下を回避することができる。
【００４１】
監視Ｉ／Ｏ２１０によるアクセス先を、ＲＡＩＤグループ１２５中のサブグループ１２５ａを構成するハードディスク装置１２０に決定した場合、監視Ｉ／Ｏ２１０によってアクセス速度が低下するのはサブグループ１２５ａのハードディスク装置１２０のみとなる。低消費電力モードへの移行は、ＲＡＩＤグループ１２５のサブグループ１２５ａを除くハードディスク装置１２０で行うことができる。監視Ｉ／Ｏ２１０によって低消費電力モードから通常モードに復帰しないようにすることもできる。これらの結果、ＲＡＩＤグループ１２５全体で監視Ｉ／Ｏ２１０による性能の低下を抑制することができる。
【００４２】
図５は、本実施形態によるストレージ制御装置であるＣＭの構成例を表す図である。次に、図５を参照し、ＣＭ１０の構成例について詳細に説明する。
【００４３】
２つのＣＭ１０−１、及び１０−２は、同じ構成である。図５に表すように、各ＣＭ１０は、２つのＣＡ１０１、２つのＤＡ１０２、及びキャッシュ１３０の他に、ＣＰＵ５１、及びメモリ５２を備えている。それらはバスに接続され、ＣＭ１０−２もそのバスに接続されている。
【００４４】
メモリ５２は、ＣＰＵ５１のワークに用いられる。図１に表す記憶部１０５は、例えばメモリ５２に相当する。構成定義情報１０５ａ、履歴テーブル１０５ｂ、及び監視対象テーブル１０５ｃは、例えばグループ１２６を構成するハードディスク装置１２０にも格納される。
【００４５】
グループ１２６を構成するハードディスク装置１２０には、例えばＣＰＵ５１が実行するプログラム（以降「制御プログラム」と表記）も格納されている。キャッシュ制御部１０３、ＲＡＩＤ制御部１０４、及び監視Ｉ／Ｏアクセスチェック機構１０６は、ＣＰＵ５１が、グループ１２６を構成するハードディスク装置１２０から制御プログラムをメモリ５２上に読み出して実行することで実現される。
【００４６】
上記制御プログラムは、サブプログラムとして、監視Ｉ／Ｏ２１０のアクセス先を決定する決定プログラム、及びホスト２から受信したコマンドを処理する処理プログラム等を含む。以降、図６〜図１０に表す各種フローチャートを参照し、決定プログラム、及び処理プログラムによるＣＰＵ５１の動作について詳細に説明する。
【００４７】
図６は、アクセス先決定処理のフローチャートである。このアクセス先決定処理は、監視Ｉ／Ｏ２１０によるアクセス先を決定するための処理であり、上記決定プログラムをＣＰＵ５１が実行することで実現される。
【００４８】
上記のように、監視Ｉ／Ｏ２１０によるアクセス先の決定、及びモード移行は、ＲＡＩＤグループ１２５単位で行われる。図６、及び図７以降でも、便宜的に１つのＲＡＩＤグループ１２５にのみ着目する形でフローチャートを表している。ここでは、混乱を避けるために、１つのＲＡＩＤグループ１２５にのみに着目して説明を行う。
【００４９】
監視Ｉ／Ｏ２１０によるアクセス先は、通常、例えばＣＭ１０の交換、ＲＡＩＤグループ１２５を構成するハードディスク装置１２０の組合せの変更、等が発生し、ディスクアレイ装置１の構成が変更されない限り、変更する必要性はない。このことから、アクセス先決定処理は、ＣＭ１０の起動時、或いはディスクアレイ装置１を管理するオペレータの指示等により実行される。
【００５０】
先ず、ＣＰＵ５１は、キャッシュ１３０の容量がαＧＢ以上か否か判定する（Ｓ１）。このαは、監視Ｉ／Ｏ２０１によるアクセスを行わせるうえでキャッシュ１３０に十分な容量が存在するか否か判定するために設定された閾値である。そのため、キャッシュ１３０が十分に大きい容量であった場合、Ｓ１の判定はＹ（Ｙｅｓ）となってＳ２に移行する。キャッシュ１３０が十分に大きい容量でない場合、Ｓ１の判定はＮ（Ｎｏ）となってＳ３に移行する。
【００５１】
Ｓ２では、ＣＰＵ５１は、監視Ｉ／Ｏ２１０によるアクセス先としてキャッシュ１３０を設定する。このとき、ＣＰＵ５１は、例えばキャッシュ１３０のなかでアクセスさせる領域を併せて決定する。その後、このアクセス先決定処理が終了する。
【００５２】
Ｓ３では、ＣＰＵ５１は、グループ１２６を構成するハードディスク装置（図６中「System Disk」と表記）１２０が搭載されているか否か判定する。グループ１２６を構成するハードディスク装置１２０が存在する場合、Ｓ３の判定はＹとなってＳ４に移行する。グループ１２６を構成するハードディスク装置１２０が存在しない場合、Ｓ３の判定はＮとなってＳ５に移行する。
【００５３】
Ｓ４では、ＣＰＵ５１は、監視Ｉ／Ｏ２１０によるアクセス先として、グループ１２７を構成する何れか１台のハードディスク装置１２０を設定する。その後、このアクセス先決定処理が終了する。
【００５４】
Ｓ５では、ＣＰＵ５１は、対象とするＲＡＩＤグループ１２５にＲＡＩＤ５、或いはＲＡＩＤ６が採用されているか否か判定する。対象とするＲＡＩＤグループ１２５にＲＡＩＤ５、或いはＲＡＩＤ６が採用されていた場合、Ｓ５の判定はＹとなってＳ７に移行する。対象とするＲＡＩＤグループ１２５にＲＡＩＤ５、及びＲＡＩＤ６の何れも採用されていない場合、Ｓ５の判定はＮとなってＳ６に移行する。ＲＡＩＤグループ１２５に採用されているＲＡＩＤ５、及びＲＡＩＤ６等を含む仕様は、構成定義情報１０５ａから特定することができる。
【００５５】
Ｓ６では、ＣＰＵ５１は、監視Ｉ／Ｏ２１０によるアクセス先としてキャッシュ１３０を設定する。このときもＣＰＵ５１は、キャッシュ１３０のなかでアクセスさせる領域を併せて決定する。その後、このアクセス先決定処理が終了する。
【００５６】
Ｓ７では、ＣＰＵ５１は、対象とするＲＡＩＤグループ１２５を構成するハードディスク装置１２５が５台以上か否か判定する。対象とするＲＡＩＤグループ１２５に５台以上のハードディスク装置１２０が属する場合、Ｓ７の判定はＹとなってＳ８に移行する。対象とするＲＡＩＤグループ１２５を構成するハードディスク装置１２０が４台以下であった場合、Ｓ７の判定はＮとなって上記Ｓ６に移行する。
【００５７】
Ｓ８では、ＣＰＵ５１は、監視Ｉ／Ｏ２１０によるアクセス先として、対象とするＲＡＩＤグループ１２５を構成するサブグループ１２５ａのハードディスク装置１２０を設定する。その後、このアクセス先決定処理が終了する。
【００５８】
ＲＡＩＤ５では、１台のハードディスク装置１２０の故障に対応でき、ＲＡＩＤ６では、２台までのハードディスク装置１２０の故障に対応できる。しかし、故障は、データを復旧する処理を生じさせる。その処理を実行しなければならない可能性は、ＲＡＩＤグループ１２０を構成するハードディスク装置１２０の台数が少なくなるほど高くなる。本実施形態では、データを復旧する処理を行うことに伴うアクセス速度の低下を抑える意味から、対象とするＲＡＩＤグループ１２５のサブグループ１２５ａをアクセス先とする条件として、ハードディスク装置１２０が５台以上という条件を設けている。
【００５９】
また、本実施形態では、キャッシュ１３０（半導体記憶装置）を優先的にアクセス先として設定するようにしている。これは、ハードディスク装置１２０と比較して、キャッシュ１３０へのアクセスは高速に行える、ハードディスク装置１２０のハードディスクの停止による消費電力の削減効果が大きい、といった利点があるためである。
【００６０】
図７は、コマンド処理のフローチャートである。このコマンド処理は、ホスト２から受信したコマンドを処理するために実行され、上記処理プログラムをＣＰＵ５１が実行することで実現される。上記のように、図７では、混乱を避けるために、１つのＲＡＩＤグループ１２５にのみに着目してフローチャートを表している。次に図７を参照して、コマンド処理について詳細に説明する。
【００６１】
通常モードから低消費電力モードへの移行は、例えば予め定められた一定時間、対象とするＲＡＩＤグループ１２５へのアクセスが行われなかった場合に行われる。図７では、コマンド処理として、最後に行われたアクセスから一定時間の経過を判定する必要上、常に実行されるものを想定している。
【００６２】
一定時間の経過を判定するための計時は、ＣＰＵ５１に搭載されたタイマを用いて行うことができる。ここでは、ＲＡＩＤグループ１２５を構成する何れかのハードディスク装置１２０へのアクセスにより、タイマをリセット、例えばその値に０を設定すると想定する。
【００６３】
先ず、ＣＰＵ５１は、ホスト２からコマンドを受信したか否か判定する（Ｓ１１）。ホスト２から送信されたコマンドをＣＡ１０１が受信した場合、Ｓ１１の判定はＹとなってＳ１２に移行する。ホスト２から送信されたコマンドをＣＡ１０１が受信していない場合、Ｓ１１の判定はＮとなってＳ１６に移行する。なお、ホストから送信されたコマンドとは、より正確には、ホスト２から対象とするＲＡＩＤグループ１２５へのアクセスを要求するコマンドのことである。
【００６４】
Ｓ１２では、ＣＰＵ５１は、ホスト２から受信したコマンドのなかから監視Ｉ／Ｏ２１０を検出するための監視Ｉ／Ｏ検出処理を実行する。その監視Ｉ／Ｏ検出処理の実行後はＳ１３に移行する。
【００６５】
図８は、監視Ｉ／Ｏ検出処理のフローチャートである。ここで図８を参照し、監視Ｉ／Ｏ検出処理について詳細に説明する。
【００６６】
先ず、ＣＰＵ５１は、受信したコマンドのなかからリードコマンド、及びライトコマンドを検出する（Ｓ３１）。リードコマンド、及びライトコマンドを検出するのは、リードコマンド、及びライトコマンドは共にハードディスク装置１２０へのアクセスを要求するコマンドだからである。ここでは説明の便宜上、検出されたコマンドは１つのみと想定する。特には図示していないが、リードコマンド、及びライトコマンドの何れも検出されなかった場合、監視Ｉ／Ｏ検出処理はここで終了する。
【００６７】
リードコマンド、或いはライトコマンドを検出した場合、ＣＰＵ５１は、履歴テーブル１０５ｂ、及び監視対象テーブル１０５ｃの各エントリに格納されたデータを取得する（Ｓ３２）。次にＣＰＵ５１は、検出したコマンドのデータ長が閾値として定めた９ブロックサイズ以下か否か判定する（Ｓ３３）。検出したコマンドが９ブロックサイズを超えるデータの読み出し、或いは書き込みを要求するコマンドであった場合、Ｓ３３の判定はＮとなり、ここで監視Ｉ／Ｏ検出処理が終了する。検出したコマンドが９ブロックサイズ以下のデータの読み出し、或いは書き込みを要求するコマンドであった場合、Ｓ３３の判定はＹとなってＳ３４に移行する。ブロックとは、ハードディスク装置１２０にアクセスするうえでの単位領域である。ブロックサイズは、ブロックを単位として表すデータ長である。
【００６８】
Ｓ３４では、ＣＰＵ５１は、検出したコマンドが監視対象テーブル１０５ｃに登録済みか否か判定する。検出したコマンドと同じコマンド種別、アドレス、及びデータ長の各データを格納したエントリが監視対象テーブル１０５ｃに存在する場合、Ｓ３４の判定はＹとなり、ここで監視Ｉ／Ｏ検出処理が終了する。検出したコマンドと同じコマンド種別、アドレス、及びデータ長の各データを格納したエントリが監視対象テーブル１０５ｃに存在しない場合、Ｓ３４の判定はＮとなってＳ３５に移行する。
【００６９】
Ｓ３５では、ＣＰＵ５１は、検出したコマンドが１回目のコマンドか否か判定する。検出したコマンドが履歴テーブル１０５ｂに登録されていないコマンドであった場合、Ｓ３５の判定はＹとなってＳ３８に移行する。検出したコマンドが履歴テーブル１０５ｂに登録されているコマンドであった場合、Ｓ３５の判定はＮとなってＳ３６に移行する。
【００７０】
検出したコマンドが履歴テーブル１０５ｂに登録されていないコマンドとは、検出したコマンドと同じコマンド種別、アドレス、及びデータ長の各データを格納したエントリが履歴テーブル１０５ｂに存在しないコマンドである。ここでは周期は比較の対象から除外される。これは、監視Ｉ／Ｏ２１０と内容が一致するユーザコマンドが発行されたとしても、それらを区別することが困難だからである。
【００７１】
そのようなエントリの特定を行うことから、Ｓ３６への移行時には、検出したコマンドと同じコマンド種別、アドレス、及びデータ長の各データを格納したエントリが特定されている。特定されたエントリは、便宜的に「対象エントリ」と表記して区別する。
【００７２】
Ｓ３６では、ＣＰＵ５１は、検出したコマンドが１０回、採取されたものか否か判定する。履歴テーブル１０５ｂで特定した対象エントリに格納されている受信日時と現在日時から計算される周期が、そのエントリに格納されている周期と許容範囲内で一致し、且つその対象エントリに格納されている受信回数が９であった場合、Ｓ３６の判定はＹとなる。そのため、Ｓ３７に移行する。対象エントリに格納されている受信日時と現在日時から計算される周期が、その対象エントリに格納されている周期と許容範囲内で一致しない、或いはその対象エントリに格納されている受信回数が９でない場合、Ｓ３６の判定はＮとなる。そのため、Ｓ３８に移行する。受信回数の９とは、受信回数の初期値を０と想定した場合の値である。
【００７３】
Ｓ３７では、ＣＰＵ５１は、検出したコマンドを監視対象テーブル１０５ｃに登録する。その登録は、監視対象テーブル１０５ｃにエントリを追加し、追加したエントリに、検出したコマンドのコマンド種別、アドレス、及びデータ長の各データを格納することで行われる。そのような登録を行った後、監視Ｉ／Ｏ検出処理が終了する。
【００７４】
Ｓ３８では、ＣＰＵ５１は、検出したコマンドの履歴テーブル１０５ｂへの登録、或いはエントリの更新を行う。Ｓ３５からの移行では、例えば履歴テーブル１０５ｂにエントリを追加し、追加したエントリに、受信日時、検出したコマンドのコマンド種別、アドレス、及びデータ長の各データ、並びに受信回数を格納する。ＣＰＵ５１は、周期を格納せず、受信回数として０を格納する。
【００７５】
Ｓ３６からの移行では、判定がＮとなった理由によって対象エントリの更新内容が異なる。周期が許容範囲内で一致しないためにＳ３６の判定がＮとなった場合、ＣＰＵ５１は、受信日時を格納し、周期として例えば今回、計算された周期、受信回数として例えば１を格納する。対象エントリに格納されている受信回数が９でないためにＳ３６の判定がＮとなった場合、ＣＰＵ５１は、周期は変更せず、受信日時、及び受信回数を更新する。受信回数の更新は、現在、格納されている受信回数の値をインクリメントすることで行われる。
【００７６】
上記監視Ｉ／Ｏ検出処理は、ホスト２から受信したコマンドを対象に実行される。そのため、ホスト２から送信される監視Ｉ／Ｏ２１０は、自動的に検出され、監視対象テーブル１０５ｃに登録される。監視Ｉ／Ｏ２１０を発行するＯＳの追加、そのＯＳの仕様変更等にオペレータが対応する必要性は低いことから、オペレータにとって利便性は高いものとなっている。
【００７７】
図７の説明に戻る。
上記監視Ｉ／Ｏ検出処理の実行後に移行するＳ１３では、ＣＰＵ５１は、通常運転、つまり対象とするＲＡＩＤグループ１２５は通常モードか否か判定する。対象とするＲＡＩＤグループ１２５が通常モードであった場合、Ｓ１３の判定はＹとなってＳ１４に移行する。対象とするＲＡＩＤグループ１２５が通常モードでない場合、つまり低消費電力モードであった場合、Ｓ１３の判定はＮとなってＳ１５に移行する。
【００７８】
Ｓ１４では、ＣＰＵ５１は、通常モードでのアクセスに対応した通常運転処理を実行する。その通常運転処理の実行後は、上記Ｓ１１に戻る。
【００７９】
Ｓ１５では、ＣＰＵ５１は、低消費電力モードでのアクセスに対応した低消費電力運転処理を実行する。その低消費電力運転処理の実行後は、上記Ｓ１１に戻る。
【００８０】
上記Ｓ１１の判定がＮとなって移行するＳ１６では、ＣＰＵ５１は、ハードディスク装置１２０への最後のアクセスから一定時間が経過したか否か判定する。上記タイマによって計時された時間が一定時間以上であった場合、Ｓ１６の判定はＹとなってＳ１７に移行する。そのタイマによって計時された時間が一定時間未満であった場合、Ｓ１６の判定はＮとなり、上記Ｓ１１に戻る。
【００８１】
Ｓ１７では、ＣＰＵ５１は、現在、対象となるＲＡＩＤグループ１２５は通常運転か否か判定する。そのＲＡＩＤグループ１２５が通常モードであった場合、Ｓ１７の判定はＹとなってＳ１８に移行する。そのＲＡＩＤグループ１２５が通常モードでなかった場合、Ｓ１７の判定はＮとなり、上記Ｓ１１に戻る。
【００８２】
Ｓ１８では、ＣＰＵ５１は、対象とするＲＡＩＤグループ１２５を低消費電力モードに移行させる。監視Ｉ／Ｏ２１０によるアクセス先をＲＡＩＤグループ１２５のサブグループ１２５ａのハードディスク装置１２０と設定していなければ、低消費電力モードの移行により、そのＲＡＩＤグループ１２５を構成する全てのハードディスク装置１２０の動作が停止する。監視Ｉ／Ｏ２１０によるアクセス先をＲＡＩＤグループ１２５のサブグループ１２５ａのハードディスク装置１２０と設定していれば、低消費電力モードの移行により、そのサブグループ１２５ａのハードディスク装置１２０を除く全てのハードディスク装置１２０の動作が停止する。そのような低消費電力モードに移行後、上記Ｓ１１に戻る。
【００８３】
図９は、上記Ｓ１４として実行される通常運転処理のフローチャートである。次に図９を参照し、通常運転処理について詳細に説明する。
【００８４】
ホスト２から受信するコマンドには、ハードディスク装置１２０へのアクセスを要求するコマンド以外のコマンドも含まれる。しかし、ここでは、混乱を避けるために、ホスト２から受信するコマンドとしては、ハードディスク装置１２０へのアクセスを要求するコマンド、つまりリードコマンド、及びライトコマンドのみを想定する。
【００８５】
先ず、ＣＰＵ５１は、受信したコマンドがリードコマンドか否か判定する（Ｓ５１）。受信したコマンドがリードコマンドであった場合、Ｓ５１の判定はＹとなってＳ５２に移行する。受信したコマンドがライトコマンドであった場合、Ｓ５１の判定はＮとなってＳ５５に移行する。
【００８６】
Ｓ５２では、ＣＰＵ５１は、受信したリードコマンドが要求するデータがキャッシュ１３０上に存在するか否か判定する。要求されたデータがキャッシュ１３０上に存在する場合、Ｓ５２の判定はＹとなる。その結果、ＣＰＵ５１は、要求されたデータをキャッシュ１３０から読み出し、読み出したデータを、ＣＡ１０１を介してホスト２に送信する（Ｓ５３）。通常運転処理は、その後に終了する。要求されたデータがキャッシュ１３０上に存在しない場合、Ｓ５２の判定はＮとなってＳ５４に移行する。
【００８７】
Ｓ５４では、ＣＰＵ５１は、ＤＡ１０２を用いて、リードコマンドが要求するデータを、そのリードコマンド中のアドレスによって特定されるハードディスク装置（図９中「ＨＤＤ」と表記）１２０から読み出し、読み出したデータを、ＣＡ１０１を介してホスト２に送信する。次にＣＰＵ５１は、タイマをリセットする（Ｓ５８）。その後、通常運転処理が終了する。Ｓ５８におけるタイマのリセットにより、ハードディスク装置１２０への最後のアクセスから経過した時間が、タイマによって計時される。
【００８８】
上記Ｓ５１の判定がＮとなって移行するＳ５５では、ＣＰＵ５１は、受信したコマンドがライトコマンドか否か判定する。受信したコマンドがライトコマンドであった場合、Ｓ５５の判定はＹとなってＳ５６に移行する。受信したコマンドがライトコマンドでない場合、つまり受信したコマンドがリードコマンド、及びライトコマンド以外のコマンドであった場合、Ｓ５５の判定はＮとなる。そのため、上記のように、通常運転処理が終了する。
【００８９】
Ｓ５６では、ＣＰＵ５１は、ライトコマンド中のデータをキャッシュ１３０に書き込む。次にＣＰＵ５１は、ＤＡ１０２を用いて、キャッシュ１３０に書き込んだデータを、ライトコマンド中のアドレスによって特定されるハードディスク装置１２０に書き込む（Ｓ５７）。その後、上記Ｓ５８に移行する。
【００９０】
図１０は、図７に表すコマンド処理内でＳ１５として実行される低消費電力運転処理のフローチャートである。最後に図１０を参照し、低消費電力運転処理について詳細に説明する。
【００９１】
ホスト２から受信するコマンドには、ハードディスク装置１２０へのアクセスを要求するコマンド以外のコマンドも含まれる。しかし、ここでも上記通常運転処理と同様に、ホスト２から受信するコマンドとしては、ハードディスク装置１２０へのアクセスを要求するコマンド、つまりリードコマンド、及びライトコマンドのみを想定する。
【００９２】
先ず、ＣＰＵ５１は、受信したコマンドがリードコマンドか否か判定する（Ｓ７１）。受信したコマンドがリードコマンドであった場合、Ｓ７１の判定はＹとなってＳ７２に移行する。受信したコマンドがライトコマンドであった場合、Ｓ７１の判定はＮとなってＳ７７に移行する。
【００９３】
Ｓ７２では、ＣＰＵ５１は、監視対象テーブル１０５ｃを参照し、受信したリードコマンドが監視Ｉ／Ｏ２１０か否か判定する。受信したリードコマンドとコマンド種別、アドレス、及びデータ長が一致するエントリが監視対象テーブル１０５ｃに存在する場合、Ｓ７２の判定はＹとなってＳ７６に移行する。受信したリードコマンドとコマンド種別、アドレス、及びデータ長が一致するエントリが監視対象テーブル１０５ｃに存在しない場合、Ｓ７２の判定はＮとなってＳ７３に移行する。
【００９４】
Ｓ７３では、ＣＰＵ５１は、受信したリードコマンドが要求するデータがキャッシュ１３０上に存在するか否か判定する。要求されたデータがキャッシュ１３０上に存在する場合、Ｓ７３の判定はＹとなる。その結果、ＣＰＵ５１は、要求されたデータをキャッシュ１３０から読み出し、読み出したデータを、ＣＡ１０１を介してホスト２に送信する（Ｓ７４）。低消費電力運転処理は、その後に終了する。要求されたデータがキャッシュ１３０上に存在しない場合、Ｓ７３の判定はＮとなってＳ７５に移行する。
【００９５】
Ｓ７５では、ＣＰＵ５１は、ＤＡ１０２を用いて、リードコマンドが要求するデータを、そのリードコマンド中のアドレスによって特定されるハードディスク装置１２０から読み出し、読み出したデータを、ＣＡ１０１を介してホスト２に送信する。次にＣＰＵ５１は、通常運転を開始、つまり通常モードに移行させる（Ｓ８１）。その後、低消費電力運転処理が終了する。通常モードへの移行により、ＲＡＩＤグループ１２５を構成する全てのハードディスク装置１２０は動作を開始する。
【００９６】
上記Ｓ７２の判定がＹとなって移行するＳ７６では、図６に表すアクセス先決定処理の実行によって設定されたアクセス先に、監視Ｉ／Ｏ２１０によるアクセスを行う。このとき、監視Ｉ／Ｏ２１０はリードコマンドであることから、ＣＰＵ５１は、ＣＡ１０１を介して、アクセスによって読み出したデータをホスト２に送信する。その後、低消費電力運転処理が終了する。
【００９７】
上記Ｓ７１の判定がＮとなって移行するＳ７７では、ＣＰＵ５１は、受信したコマンドがライトコマンドか否か判定する。受信したコマンドがライトコマンドであった場合、Ｓ７７の判定はＹとなってＳ７８に移行する。受信したコマンドがライトコマンドでない場合、つまり受信したコマンドがリードコマンド、及びライトコマンド以外のコマンドであった場合、Ｓ７７の判定はＮとなる。そのため、上記のように、低消費電力運転処理が終了する。
【００９８】
Ｓ７８では、ＣＰＵ５１は、監視対象テーブル１０５ｃを参照し、受信したライトコマンドが監視Ｉ／Ｏ２１０か否か判定する。受信したライトコマンドとコマンド種別、アドレス、及びデータ長が一致するエントリが監視対象テーブル１０５ｃに存在する場合、Ｓ７８の判定はＹとなってＳ７６に移行する。受信したライトコマンドとコマンド種別、アドレス、及びデータ長が一致するエントリが監視対象テーブル１０５ｃに存在しない場合、Ｓ７８の判定はＮとなってＳ７９に移行する。
【００９９】
Ｓ７９では、ＣＰＵ５１は、ライトコマンド中のデータをキャッシュ１３０に書き込む。次にＣＰＵ５１は、ＤＡ１０２を用いて、キャッシュ１３０に書き込んだデータを、ライトコマンド中のアドレスによって特定されるハードディスク装置１２０に書き込む（Ｓ８０）。その後、上記Ｓ８１に移行する。
【０１００】
Ｓ７８からＳ７６に移行した場合、ＣＰＵ５１は、図６に表すアクセス先決定処理の実行によって設定されたアクセス先に、監視Ｉ／Ｏ２１０であるライトコマンド中のデータを書き込むアクセスを行う。その後、低消費電力運転処理が終了する。
【０１０１】
なお、本実施形態では、ディスクアレイ装置１に搭載されているＣＭ１０に本発明に基づく１例を適用しているが、本発明に基づく１例を適用可能なストレージ制御装置は、ディスクアレイ装置１とは別の装置に搭載されるものであっても良い。ストレージ制御装置は、例えばパーソナルコンピュータ、サーバ等のストレージを内蔵した情報処理装置（コンピュータ）に搭載されたものであっても良い。例えば搭載されたＣＰＵがコントローラを介してストレージにアクセスする構成の情報処理装置では、そのコントローラに本発明に基づく１例を適用することができる。ストレージもハードディスク装置１２に限定されない。例えばストレージは、ハードディスク（磁気ディスク）とは異なる種類のディスクを回転させるものであっても良い。
【符号の説明】
【０１０２】
１    ディスクアレイ装置
２    ホスト
１０、１０−１、１０−２    ＣＭ
１２    ハードディスク装置
５１    ＣＰＵ
５２    メモリ
１０１    ＣＡ
１０２    ＤＡ
１０３    キャッシュ制御部
１０４    ＲＡＩＤ制御部
１０５    記憶部
１０５ａ    構成定義情報
１０５ｂ    履歴テーブル
１０５ｃ    監視対象テーブル
１０６    監視Ｉ／Ｏアクセスチェック機構
１２０    ハードディスク装置
１２５、１２５−０〜１２５−２    ＲＡＩＤグループ
１２６、１２７    グループ
１３０    キャッシュ
【図１】
2014238771.tif 000003
【図２】
2014238771.tif 000004
【図３】
2014238771.tif 000005
【図４】
2014238771.tif 000006
【図５】
2014238771.tif 000007
【図６】
2014238771.tif 000008
【図７】
2014238771.tif 000009
【図８】
2014238771.tif 000010
【図９】
2014238771.tif 000011
【図１０】
2014238771.tif 000012