JP2014238771A - ストレージ制御装置、アクセス制御方法、及び制御プログラム - Google Patents

ストレージ制御装置、アクセス制御方法、及び制御プログラム Download PDF

Info

Publication number
JP2014238771A
JP2014238771A JP2013121983A JP2013121983A JP2014238771A JP 2014238771 A JP2014238771 A JP 2014238771A JP 2013121983 A JP2013121983 A JP 2013121983A JP 2013121983 A JP2013121983 A JP 2013121983A JP 2014238771 A JP2014238771 A JP 2014238771A
Authority
JP
Japan
Prior art keywords
command
monitoring
storage
access
hard disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013121983A
Other languages
English (en)
Inventor
秀和 河野
Hidekazu Kono
秀和 河野
創 渡邉
So Watanabe
創 渡邉
潤 石崎
Jun Ishizaki
潤 石崎
千葉 博
Hiroshi Chiba
博 千葉
信和 桐ヶ谷
Nobukazu Kirigatani
信和 桐ヶ谷
佳治 伊藤
Yoshiharu Ito
佳治 伊藤
市川 浩
Hiroshi Ichikawa
浩 市川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013121983A priority Critical patent/JP2014238771A/ja
Priority to US14/251,737 priority patent/US20140365727A1/en
Publication of JP2014238771A publication Critical patent/JP2014238771A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Abstract

【課題】ハードディスク装置等のストレージの運用上の性能低下を抑制するための技術を提供する。【解決手段】監視I/Oアクセスチェック機構106は、ホスト2からRAIDグループ125のハードディスク装置120へのアクセスを要求する、監視用に発行されるコマンドである監視I/O210によるアクセスを行うアクセス先を、キャッシュ130、CM10用のグループ126を構成するハードディスク装置120、及びRAIDグループ125のサブグループ125aを構成するハードディスク装置120のなかから設定する。その設定により、RAIDグループ125を構成するハードディスク装置120の全て、或いはサブグループ125aを除く全てのハードディスク装置120は、低消費電力モードへの移行時、監視I/O210を受信しても、低消費電力モードが維持される。【選択図】図2

Description

開示の技術は、コマンドによるストレージへのアクセスを制御するための技術に関する。
コンピュータ等の情報処理装置に処理させるデータ量は増大傾向にある。現在では、非常に大きいデータ量を情報処理装置に処理させることも普通になっている。大量のデータを処理させる場合、データの格納に要するコストも非常に大きくなる。このことから、データの格納に要するコストを抑えつつ、高速なアクセスを可能にさせるストレージの階層化が多く採用されている。
情報処理装置では、使用する、或いは使用する可能性の高いデータは主記憶装置上に格納され、使用する可能性の低いデータはより低速のストレージ上に格納される。主記憶装置と比較して低速のストレージとしては、ハードディスク装置が広く採用されている。以降、混乱を避けるために、ストレージとしてハードディスク装置を想定する。
ハードディスク装置へのアクセスは、基本ソフトウェア(以降「OS」と表記。OSはOperating Systemの略記である)によって実行される。OSは、仕様によって、パス監視、デバイス監視、或いはファイルシステム監視等を目的にしたコマンドを発行し、ハードディスク装置へのアクセスを行うようになっている。以降、監視用にハードディスク装置へのアクセスのために発行されるコマンドは「監視コマンド」と表記する。
この監視コマンドは、情報処理装置が本来、行うべきデータ処理のためのコマンド(以降「ユーザコマンド」と表記)ではない。発行された監視コマンドは、ハードディスク装置へのアクセスのためのリソースを消費させる。そのため、発行された監視コマンドは、ユーザコマンドが利用できるリソース量を低減させ、ハードディスク装置のアクセス速度を低下させる可能性がある。ハードディスク装置がビジーの状況下では、発行された監視コマンドは、ハードディスク装置のアクセス速度を確実に低下させる。
ハードディスク装置のようなストレージには、低消費電力機能が用意される場合が多い。この低消費電力機能とは、例えば一定時間、アクセスが行われない場合、ハードディスクの回転を停止させ、消費電力を抑制させるものである。
監視コマンドは、ユーザコマンドとは別に発行される。監視コマンドの発行により、ハードディスク装置へのアクセスが実行される。そのため、監視コマンドの発行は、通常モードから低消費電力機能が有効となる低消費電力モードへの移行を阻害し、低消費電力モード時には通常モードへの移行を助長する。このようなことから、発行される監視コマンドは、低消費電力機能を事実上、低下させる。
ハードディスク装置のアクセス速度の低下、及び低消費電力機能の低下は何れも、ハードディスク装置の運用上の性能低下に相当する。そのため、監視コマンドの発行によるハードディスク装置の運用上の性能低下を抑制することも重要と思われる。これは、ハードディスク装置以外のストレージであっても同様である。
特開2008−310741号公報 特開2010−198464号公報
一側面では、本発明は、ハードディスク装置等のストレージの運用上の性能低下を抑制するための技術を提供することを目的とする。
本発明を適用した1システムは、ストレージへのアクセスを要求するコマンドを受信する送受信部と、送受信部が受信したコマンドのなかから、ストレージへの監視用のアクセスを要求する監視コマンドを検出する検出部と、検出部が検出した監視コマンドによるストレージへのアクセスを制限するアクセス制御部と、を有する。
本発明を適用した場合には、ハードディスク装置等のストレージの運用上の性能低下を抑制することができる。
本実施形態によるストレージ制御装置を搭載したディスクアレイ装置の機能構成例を説明する図である。 監視I/Oによるアクセスを行うアクセス先として決定される記憶装置の例を説明する図である。 履歴テーブルの構成例を表す図である。 監視対象テーブルの構成例を表す図である。 本実施形態によるストレージ制御装置であるCMの構成例を表す図である。 アクセス先決定処理のフローチャートである。 コマンド処理のフローチャートである。 監視I/O検出処理のフローチャートである。 通常運転処理のフローチャートである。 低消費電力運転処理のフローチャートである。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図1は、本実施形態によるストレージ制御装置を搭載したディスクアレイ装置の機能構成例を説明する図である。
図1に表すように、ディスクアレイ装置1は、ホスト・コンピュータ(以降「ホスト」と略記)2がデータ処理に必要なデータを提供するために設置されたものである。ディスクアレイ装置1には、2つのCM(Control Module)10(10−1、10−2)、及び複数台のハードディスク装置120を有するハードディスク装置群12が搭載されている。本実施形態によるストレージ制御装置は、CM10として実現されている。
ハードディスク装置群12には、複数のRAID(Redundant Arrays of Inexpensive Disks)グループ125(125−0〜125−2)が構築されている。126は、各CM10用に割り当てられたグループであり、グループ126に属するハードディスク装置120には、システムファイルが格納される。127は、各RAIDグループ125のホットスペアとして使用されるハードディスク装置120の集合としてのグループである。
なお、グループ126を構成するハードディスク装置120は、ハードディスク装置群12を構成するハードディスク装置120のなかから割り当てられているが、必ずしもそうする必要はない。つまり、グループ126を構成するハードディスク装置120は、ハードディスク装置群12とは別にディスクアレイ装置1上に搭載させても良い。
各CM10は、ホスト2から受信したコマンドを処理し、ハードディスク装置群12へのアクセスを行う制御装置である。各CM10は、2つのCA(Channel Adaptor)101、2つのDA(Device Adaptor)102、キャッシュ(Cache)制御部103、RAID制御部104、記憶部105、及び監視I/O(Input/Output)アクセスチェック機構106を備える。
2つのCA101は、ホスト2との間で通信を可能にさせるインタフェースである。各CA101がホスト2から受信したコマンドはキャッシュ制御部103に出力される。各CA101は、キャッシュ制御部103から入力したデータをホスト2に送信する。
2つのDA102は、ハードディスク装置群12を構成する各ハードディスク装置120との通信を行うためのインタフェースである。各DA102は、RAID制御部104によって制御される。
キャッシュ制御部103は、図2、及び図5に表すキャッシュメモリ(以降「キャッシュ」と略記)130を管理する。キャッシュ130には、ホスト2からコマンドと共に受信したデータ、及びハードディスク装置群12から読み出されたデータ等が格納される。キャッシュ制御部103は、ホスト2からリードコマンドで要求されたデータがキャッシュ130に存在する場合、要求されたデータをキャッシュ130から読み出し、CA101を介してホスト2に送信する。リードコマンドで要求されたデータがキャッシュ130に存在しない場合、キャッシュ制御部103は、そのリードコマンドをRAID制御部104に出力する。
RAID制御部104は、キャッシュ制御部103から入力したコマンドを処理する。そのコマンドが何れかのハードディスク装置120へのアクセスを要求するコマンドであった場合、RAID制御部104は、そのコマンドがアクセスを要求するハードディスク装置120に対し、DA102を介してアクセスを行う。
RAIDグループ125の構築は、ホスト2から受信するコマンドに従って行わせることができる。RAID制御部104は、コマンドに従って、RAIDグループ125を構成するハードディスク装置120の組合せを決定する。
記憶部105には、構成定義情報105a、履歴テーブル105b、及び監視対象テーブル105cが保存される。
構成定義情報105aは、RAIDグループ125毎に、そのRAIDグループ125を構成するハードディスク装置120の組合せを表す構成情報、その設定情報、及びデータチェックの管理情報、等を含む。RAID制御部104は、ホスト2から送信されたコマンドに従って、RAIDグループ125を新たに構築した場合、及び既存のRAIDグループ125を構成するハードディスク装置120の組合せを変更した場合、構成定義情報105aを更新する。
監視I/Oアクセスチェック機構106は、ホスト2からパス監視、デバイス監視、或いはファイルシステム監視等を目的に発行される、ハードディスク装置120へのアクセスを要求するコマンド(以降「監視I/O」と表記)を特定する。記憶部105に保存された履歴テーブル105bは、監視I/Oの特定に用いられる。監視対象テーブル105cは、特定された監視I/Oを表す情報の格納に用いられる。
図3は、履歴テーブルの構成例を表す図である。図3に表すように、履歴テーブル105bには、ホスト2から受信したコマンド毎に、受信日時(図3中「time」と表記)、コマンド種別(図3中「command」と表記)、アクセスを要求したアドレス(図3中「address」と表記)、アクセスを要求したデータ長(図3中「data length」と表記)、周期(受信間隔。図3中「cycle」と表記)、及び受信回数(図3中「count」と表記)の各データが格納される。
監視I/Oには、通常、リード(read)コマンド、及びライト(write)コマンドの両方が存在する。1つのOSが同じ種類の監視I/Oを発行する間隔は一定であることが多く、その監視I/Oがアクセスを要求するアドレス、及びデータ長も同じであることが多い。データ長は、余り大きくないのが普通である。このことから、本実施形態では、データ長が予め定めた閾値以下であり、且つコマンド種別、アドレス、及びデータ長が同じという条件(以降「コマンド条件」と表記する)を満たすコマンドを監視I/Oの候補とする。本実施形態では、候補のなかで、周期が一定となっている(許容範囲内で受信間隔が一致する)候補を監視I/Oと特定する。
監視I/O以外のコマンド(以降、便宜的に「ユーザコマンド」と表記)であっても、上記コマンド条件を満たす可能性がある。ユーザコマンドを誤って監視I/Oと特定しないようにするためには、上記コマンド条件、及び周期を満たすコマンドが最低5回連続することも条件(以降、この条件を「継続条件」と表記する)とするのが望ましい。本実施形態では、より高い精度を実現させるために、継続条件は10回としている。受信回数は、候補が継続条件を連続して満たした回数を計数するためのデータである。
監視I/Oアクセスチェック機構106は、データ長が閾値以下のコマンドから抽出される各種データを履歴テーブル105bに格納する。監視I/Oアクセスチェック機構106は、履歴テーブル105bを参照し、コマンド条件を満たすコマンド(エントリ)を特定して、周期、及び受信回数の各データを格納(更新)する。その結果、受信回数の値は、コマンド条件を満たし、且つ周期が同じコマンドを受信した場合、インクリメントされる。
図4は、監視対象テーブルの構成例を表す図である。図4に表すように、監視対象テーブル105cには、特定された監視I/O毎に、コマンド種別、アドレス、及びデータ長、の各データが格納される。
コマンド種別、アドレス、及びデータ長は、監視I/Oを特定可能にするデータの組合せである。それにより、ホスト2から送信された監視I/Oは、監視対象テーブル105cの参照により検出することができる。これらのデータは、受信回数が10となるコマンドから抽出することができる。
図2は、監視I/Oによるアクセスを行うアクセス先として決定される記憶装置の例を説明する図である。
本実施形態では、通常モードから低消費電力機能が有効となる低消費電力モードへの移行はRAIDグループ125単位で行うようにしている。図2では、1つのRAIDグループ125のみに着目し、監視I/O210によるアクセスを行うアクセス先として決定される記憶装置の例を表している。
監視I/Oは、ハードディスク装置120にアクセスするうえでのリソースを消費させる。そのため、特にビジー状態となっているハードディスク装置120ではアクセス速度を低下させる原因となる。また、監視I/Oは、ハードディスク装置120の消費電力を抑制する低消費電力機能が有効となるのを阻害する可能性がある。より具体的には、低消費電力機能を有効とさせない、低消費電力機能が有効となる期間を短縮させる、といった可能性がある。アクセス速度の低下、及び低消費電力機能の低下は、共に、ハードディスク装置120の運用上の性能を低下させる。そのような性能の低下を抑制するために、本実施形態では、監視I/Oによるアクセスを行うアクセス先として、その監視I/Oが指定するハードディスク装置120とは別の記憶装置を設定可能にしている。
本実施形態では、ハードディスク装置120を停止させることによる消費電力の低減をより重視している。そのため、本実施形態では、低消費電力機能が有効となる低消費電力モード時に、監視I/Oによるアクセス先を、設定した記憶装置に変更させる。
なお、監視I/Oによるアクセス先の変更は、通常モード時にのみ行うようにしても良い。通常モード時、及び低消費電力モード時ともに、監視I/Oによるアクセス先の変更を行うようにしても良い。監視I/Oによるアクセス先の変更を行う状況、或いは期間を任意にオペレータが設定できるようにしても良い。監視I/Oの本来の目的を達成させるうえでは、監視I/Oによるアクセス先の変更を行わない期間を設けるのが望ましい。
ホスト2では、OS、及び各種アプリケーション・プログラム等のプログラム群21が実行される。監視I/O210は、例えばプログラム群21を構成するOSによって発行され、発行された監視I/O210は例えばHBA(Host Bus Adapter)22、及びネットワークケーブル等の物理パス200を介してディスクアレイ装置1に送信される。
上記監視I/Oアクセスチェック機構106は、ディスクアレイ装置1に存在する記憶装置を確認し、監視I/O210によるアクセスを行うアクセス先とする記憶装置を決定する。図2に表す点線の各矢印210a〜210cは、監視I/O210によるアクセスを行うアクセス先として決定される記憶装置を表している。つまり、本実施形態では、監視I/O210によるアクセスを、キャッシュ130、グループ126に属するハードディスク装置120、及びRAIDグループ125中のサブグループ125aを構成するハードディスク装置120のうちの何れかに対して行うようにしている。各RAIDグループ125のサブグループ125aは、構成定義情報105aにより定義されている。
キャッシュ130、及びグループ126に属するハードディスク装置120は、RAIDグループ120に属するハードディスク装置120とは異なる記憶装置である。このため、監視I/O210によるアクセス先をそれらのうちの何れかに決定した場合、RAIDグループ125に属するハードディスク装置120の監視I/O210によるアクセス速度の低下は回避される。また、RAIDグループ125全体を低消費電力モードに移行させている場合には、監視I/O210による通常モードへの復帰が回避される。これらの結果、RAIDグループ125全体で監視I/O210による性能の低下を回避することができる。
監視I/O210によるアクセス先を、RAIDグループ125中のサブグループ125aを構成するハードディスク装置120に決定した場合、監視I/O210によってアクセス速度が低下するのはサブグループ125aのハードディスク装置120のみとなる。低消費電力モードへの移行は、RAIDグループ125のサブグループ125aを除くハードディスク装置120で行うことができる。監視I/O210によって低消費電力モードから通常モードに復帰しないようにすることもできる。これらの結果、RAIDグループ125全体で監視I/O210による性能の低下を抑制することができる。
図5は、本実施形態によるストレージ制御装置であるCMの構成例を表す図である。次に、図5を参照し、CM10の構成例について詳細に説明する。
2つのCM10−1、及び10−2は、同じ構成である。図5に表すように、各CM10は、2つのCA101、2つのDA102、及びキャッシュ130の他に、CPU51、及びメモリ52を備えている。それらはバスに接続され、CM10−2もそのバスに接続されている。
メモリ52は、CPU51のワークに用いられる。図1に表す記憶部105は、例えばメモリ52に相当する。構成定義情報105a、履歴テーブル105b、及び監視対象テーブル105cは、例えばグループ126を構成するハードディスク装置120にも格納される。
グループ126を構成するハードディスク装置120には、例えばCPU51が実行するプログラム(以降「制御プログラム」と表記)も格納されている。キャッシュ制御部103、RAID制御部104、及び監視I/Oアクセスチェック機構106は、CPU51が、グループ126を構成するハードディスク装置120から制御プログラムをメモリ52上に読み出して実行することで実現される。
上記制御プログラムは、サブプログラムとして、監視I/O210のアクセス先を決定する決定プログラム、及びホスト2から受信したコマンドを処理する処理プログラム等を含む。以降、図6〜図10に表す各種フローチャートを参照し、決定プログラム、及び処理プログラムによるCPU51の動作について詳細に説明する。
図6は、アクセス先決定処理のフローチャートである。このアクセス先決定処理は、監視I/O210によるアクセス先を決定するための処理であり、上記決定プログラムをCPU51が実行することで実現される。
上記のように、監視I/O210によるアクセス先の決定、及びモード移行は、RAIDグループ125単位で行われる。図6、及び図7以降でも、便宜的に1つのRAIDグループ125にのみ着目する形でフローチャートを表している。ここでは、混乱を避けるために、1つのRAIDグループ125にのみに着目して説明を行う。
監視I/O210によるアクセス先は、通常、例えばCM10の交換、RAIDグループ125を構成するハードディスク装置120の組合せの変更、等が発生し、ディスクアレイ装置1の構成が変更されない限り、変更する必要性はない。このことから、アクセス先決定処理は、CM10の起動時、或いはディスクアレイ装置1を管理するオペレータの指示等により実行される。
先ず、CPU51は、キャッシュ130の容量がαGB以上か否か判定する(S1)。このαは、監視I/O201によるアクセスを行わせるうえでキャッシュ130に十分な容量が存在するか否か判定するために設定された閾値である。そのため、キャッシュ130が十分に大きい容量であった場合、S1の判定はY(Yes)となってS2に移行する。キャッシュ130が十分に大きい容量でない場合、S1の判定はN(No)となってS3に移行する。
S2では、CPU51は、監視I/O210によるアクセス先としてキャッシュ130を設定する。このとき、CPU51は、例えばキャッシュ130のなかでアクセスさせる領域を併せて決定する。その後、このアクセス先決定処理が終了する。
S3では、CPU51は、グループ126を構成するハードディスク装置(図6中「System Disk」と表記)120が搭載されているか否か判定する。グループ126を構成するハードディスク装置120が存在する場合、S3の判定はYとなってS4に移行する。グループ126を構成するハードディスク装置120が存在しない場合、S3の判定はNとなってS5に移行する。
S4では、CPU51は、監視I/O210によるアクセス先として、グループ127を構成する何れか1台のハードディスク装置120を設定する。その後、このアクセス先決定処理が終了する。
S5では、CPU51は、対象とするRAIDグループ125にRAID5、或いはRAID6が採用されているか否か判定する。対象とするRAIDグループ125にRAID5、或いはRAID6が採用されていた場合、S5の判定はYとなってS7に移行する。対象とするRAIDグループ125にRAID5、及びRAID6の何れも採用されていない場合、S5の判定はNとなってS6に移行する。RAIDグループ125に採用されているRAID5、及びRAID6等を含む仕様は、構成定義情報105aから特定することができる。
S6では、CPU51は、監視I/O210によるアクセス先としてキャッシュ130を設定する。このときもCPU51は、キャッシュ130のなかでアクセスさせる領域を併せて決定する。その後、このアクセス先決定処理が終了する。
S7では、CPU51は、対象とするRAIDグループ125を構成するハードディスク装置125が5台以上か否か判定する。対象とするRAIDグループ125に5台以上のハードディスク装置120が属する場合、S7の判定はYとなってS8に移行する。対象とするRAIDグループ125を構成するハードディスク装置120が4台以下であった場合、S7の判定はNとなって上記S6に移行する。
S8では、CPU51は、監視I/O210によるアクセス先として、対象とするRAIDグループ125を構成するサブグループ125aのハードディスク装置120を設定する。その後、このアクセス先決定処理が終了する。
RAID5では、1台のハードディスク装置120の故障に対応でき、RAID6では、2台までのハードディスク装置120の故障に対応できる。しかし、故障は、データを復旧する処理を生じさせる。その処理を実行しなければならない可能性は、RAIDグループ120を構成するハードディスク装置120の台数が少なくなるほど高くなる。本実施形態では、データを復旧する処理を行うことに伴うアクセス速度の低下を抑える意味から、対象とするRAIDグループ125のサブグループ125aをアクセス先とする条件として、ハードディスク装置120が5台以上という条件を設けている。
また、本実施形態では、キャッシュ130(半導体記憶装置)を優先的にアクセス先として設定するようにしている。これは、ハードディスク装置120と比較して、キャッシュ130へのアクセスは高速に行える、ハードディスク装置120のハードディスクの停止による消費電力の削減効果が大きい、といった利点があるためである。
図7は、コマンド処理のフローチャートである。このコマンド処理は、ホスト2から受信したコマンドを処理するために実行され、上記処理プログラムをCPU51が実行することで実現される。上記のように、図7では、混乱を避けるために、1つのRAIDグループ125にのみに着目してフローチャートを表している。次に図7を参照して、コマンド処理について詳細に説明する。
通常モードから低消費電力モードへの移行は、例えば予め定められた一定時間、対象とするRAIDグループ125へのアクセスが行われなかった場合に行われる。図7では、コマンド処理として、最後に行われたアクセスから一定時間の経過を判定する必要上、常に実行されるものを想定している。
一定時間の経過を判定するための計時は、CPU51に搭載されたタイマを用いて行うことができる。ここでは、RAIDグループ125を構成する何れかのハードディスク装置120へのアクセスにより、タイマをリセット、例えばその値に0を設定すると想定する。
先ず、CPU51は、ホスト2からコマンドを受信したか否か判定する(S11)。ホスト2から送信されたコマンドをCA101が受信した場合、S11の判定はYとなってS12に移行する。ホスト2から送信されたコマンドをCA101が受信していない場合、S11の判定はNとなってS16に移行する。なお、ホストから送信されたコマンドとは、より正確には、ホスト2から対象とするRAIDグループ125へのアクセスを要求するコマンドのことである。
S12では、CPU51は、ホスト2から受信したコマンドのなかから監視I/O210を検出するための監視I/O検出処理を実行する。その監視I/O検出処理の実行後はS13に移行する。
図8は、監視I/O検出処理のフローチャートである。ここで図8を参照し、監視I/O検出処理について詳細に説明する。
先ず、CPU51は、受信したコマンドのなかからリードコマンド、及びライトコマンドを検出する(S31)。リードコマンド、及びライトコマンドを検出するのは、リードコマンド、及びライトコマンドは共にハードディスク装置120へのアクセスを要求するコマンドだからである。ここでは説明の便宜上、検出されたコマンドは1つのみと想定する。特には図示していないが、リードコマンド、及びライトコマンドの何れも検出されなかった場合、監視I/O検出処理はここで終了する。
リードコマンド、或いはライトコマンドを検出した場合、CPU51は、履歴テーブル105b、及び監視対象テーブル105cの各エントリに格納されたデータを取得する(S32)。次にCPU51は、検出したコマンドのデータ長が閾値として定めた9ブロックサイズ以下か否か判定する(S33)。検出したコマンドが9ブロックサイズを超えるデータの読み出し、或いは書き込みを要求するコマンドであった場合、S33の判定はNとなり、ここで監視I/O検出処理が終了する。検出したコマンドが9ブロックサイズ以下のデータの読み出し、或いは書き込みを要求するコマンドであった場合、S33の判定はYとなってS34に移行する。ブロックとは、ハードディスク装置120にアクセスするうえでの単位領域である。ブロックサイズは、ブロックを単位として表すデータ長である。
S34では、CPU51は、検出したコマンドが監視対象テーブル105cに登録済みか否か判定する。検出したコマンドと同じコマンド種別、アドレス、及びデータ長の各データを格納したエントリが監視対象テーブル105cに存在する場合、S34の判定はYとなり、ここで監視I/O検出処理が終了する。検出したコマンドと同じコマンド種別、アドレス、及びデータ長の各データを格納したエントリが監視対象テーブル105cに存在しない場合、S34の判定はNとなってS35に移行する。
S35では、CPU51は、検出したコマンドが1回目のコマンドか否か判定する。検出したコマンドが履歴テーブル105bに登録されていないコマンドであった場合、S35の判定はYとなってS38に移行する。検出したコマンドが履歴テーブル105bに登録されているコマンドであった場合、S35の判定はNとなってS36に移行する。
検出したコマンドが履歴テーブル105bに登録されていないコマンドとは、検出したコマンドと同じコマンド種別、アドレス、及びデータ長の各データを格納したエントリが履歴テーブル105bに存在しないコマンドである。ここでは周期は比較の対象から除外される。これは、監視I/O210と内容が一致するユーザコマンドが発行されたとしても、それらを区別することが困難だからである。
そのようなエントリの特定を行うことから、S36への移行時には、検出したコマンドと同じコマンド種別、アドレス、及びデータ長の各データを格納したエントリが特定されている。特定されたエントリは、便宜的に「対象エントリ」と表記して区別する。
S36では、CPU51は、検出したコマンドが10回、採取されたものか否か判定する。履歴テーブル105bで特定した対象エントリに格納されている受信日時と現在日時から計算される周期が、そのエントリに格納されている周期と許容範囲内で一致し、且つその対象エントリに格納されている受信回数が9であった場合、S36の判定はYとなる。そのため、S37に移行する。対象エントリに格納されている受信日時と現在日時から計算される周期が、その対象エントリに格納されている周期と許容範囲内で一致しない、或いはその対象エントリに格納されている受信回数が9でない場合、S36の判定はNとなる。そのため、S38に移行する。受信回数の9とは、受信回数の初期値を0と想定した場合の値である。
S37では、CPU51は、検出したコマンドを監視対象テーブル105cに登録する。その登録は、監視対象テーブル105cにエントリを追加し、追加したエントリに、検出したコマンドのコマンド種別、アドレス、及びデータ長の各データを格納することで行われる。そのような登録を行った後、監視I/O検出処理が終了する。
S38では、CPU51は、検出したコマンドの履歴テーブル105bへの登録、或いはエントリの更新を行う。S35からの移行では、例えば履歴テーブル105bにエントリを追加し、追加したエントリに、受信日時、検出したコマンドのコマンド種別、アドレス、及びデータ長の各データ、並びに受信回数を格納する。CPU51は、周期を格納せず、受信回数として0を格納する。
S36からの移行では、判定がNとなった理由によって対象エントリの更新内容が異なる。周期が許容範囲内で一致しないためにS36の判定がNとなった場合、CPU51は、受信日時を格納し、周期として例えば今回、計算された周期、受信回数として例えば1を格納する。対象エントリに格納されている受信回数が9でないためにS36の判定がNとなった場合、CPU51は、周期は変更せず、受信日時、及び受信回数を更新する。受信回数の更新は、現在、格納されている受信回数の値をインクリメントすることで行われる。
上記監視I/O検出処理は、ホスト2から受信したコマンドを対象に実行される。そのため、ホスト2から送信される監視I/O210は、自動的に検出され、監視対象テーブル105cに登録される。監視I/O210を発行するOSの追加、そのOSの仕様変更等にオペレータが対応する必要性は低いことから、オペレータにとって利便性は高いものとなっている。
図7の説明に戻る。
上記監視I/O検出処理の実行後に移行するS13では、CPU51は、通常運転、つまり対象とするRAIDグループ125は通常モードか否か判定する。対象とするRAIDグループ125が通常モードであった場合、S13の判定はYとなってS14に移行する。対象とするRAIDグループ125が通常モードでない場合、つまり低消費電力モードであった場合、S13の判定はNとなってS15に移行する。
S14では、CPU51は、通常モードでのアクセスに対応した通常運転処理を実行する。その通常運転処理の実行後は、上記S11に戻る。
S15では、CPU51は、低消費電力モードでのアクセスに対応した低消費電力運転処理を実行する。その低消費電力運転処理の実行後は、上記S11に戻る。
上記S11の判定がNとなって移行するS16では、CPU51は、ハードディスク装置120への最後のアクセスから一定時間が経過したか否か判定する。上記タイマによって計時された時間が一定時間以上であった場合、S16の判定はYとなってS17に移行する。そのタイマによって計時された時間が一定時間未満であった場合、S16の判定はNとなり、上記S11に戻る。
S17では、CPU51は、現在、対象となるRAIDグループ125は通常運転か否か判定する。そのRAIDグループ125が通常モードであった場合、S17の判定はYとなってS18に移行する。そのRAIDグループ125が通常モードでなかった場合、S17の判定はNとなり、上記S11に戻る。
S18では、CPU51は、対象とするRAIDグループ125を低消費電力モードに移行させる。監視I/O210によるアクセス先をRAIDグループ125のサブグループ125aのハードディスク装置120と設定していなければ、低消費電力モードの移行により、そのRAIDグループ125を構成する全てのハードディスク装置120の動作が停止する。監視I/O210によるアクセス先をRAIDグループ125のサブグループ125aのハードディスク装置120と設定していれば、低消費電力モードの移行により、そのサブグループ125aのハードディスク装置120を除く全てのハードディスク装置120の動作が停止する。そのような低消費電力モードに移行後、上記S11に戻る。
図9は、上記S14として実行される通常運転処理のフローチャートである。次に図9を参照し、通常運転処理について詳細に説明する。
ホスト2から受信するコマンドには、ハードディスク装置120へのアクセスを要求するコマンド以外のコマンドも含まれる。しかし、ここでは、混乱を避けるために、ホスト2から受信するコマンドとしては、ハードディスク装置120へのアクセスを要求するコマンド、つまりリードコマンド、及びライトコマンドのみを想定する。
先ず、CPU51は、受信したコマンドがリードコマンドか否か判定する(S51)。受信したコマンドがリードコマンドであった場合、S51の判定はYとなってS52に移行する。受信したコマンドがライトコマンドであった場合、S51の判定はNとなってS55に移行する。
S52では、CPU51は、受信したリードコマンドが要求するデータがキャッシュ130上に存在するか否か判定する。要求されたデータがキャッシュ130上に存在する場合、S52の判定はYとなる。その結果、CPU51は、要求されたデータをキャッシュ130から読み出し、読み出したデータを、CA101を介してホスト2に送信する(S53)。通常運転処理は、その後に終了する。要求されたデータがキャッシュ130上に存在しない場合、S52の判定はNとなってS54に移行する。
S54では、CPU51は、DA102を用いて、リードコマンドが要求するデータを、そのリードコマンド中のアドレスによって特定されるハードディスク装置(図9中「HDD」と表記)120から読み出し、読み出したデータを、CA101を介してホスト2に送信する。次にCPU51は、タイマをリセットする(S58)。その後、通常運転処理が終了する。S58におけるタイマのリセットにより、ハードディスク装置120への最後のアクセスから経過した時間が、タイマによって計時される。
上記S51の判定がNとなって移行するS55では、CPU51は、受信したコマンドがライトコマンドか否か判定する。受信したコマンドがライトコマンドであった場合、S55の判定はYとなってS56に移行する。受信したコマンドがライトコマンドでない場合、つまり受信したコマンドがリードコマンド、及びライトコマンド以外のコマンドであった場合、S55の判定はNとなる。そのため、上記のように、通常運転処理が終了する。
S56では、CPU51は、ライトコマンド中のデータをキャッシュ130に書き込む。次にCPU51は、DA102を用いて、キャッシュ130に書き込んだデータを、ライトコマンド中のアドレスによって特定されるハードディスク装置120に書き込む(S57)。その後、上記S58に移行する。
図10は、図7に表すコマンド処理内でS15として実行される低消費電力運転処理のフローチャートである。最後に図10を参照し、低消費電力運転処理について詳細に説明する。
ホスト2から受信するコマンドには、ハードディスク装置120へのアクセスを要求するコマンド以外のコマンドも含まれる。しかし、ここでも上記通常運転処理と同様に、ホスト2から受信するコマンドとしては、ハードディスク装置120へのアクセスを要求するコマンド、つまりリードコマンド、及びライトコマンドのみを想定する。
先ず、CPU51は、受信したコマンドがリードコマンドか否か判定する(S71)。受信したコマンドがリードコマンドであった場合、S71の判定はYとなってS72に移行する。受信したコマンドがライトコマンドであった場合、S71の判定はNとなってS77に移行する。
S72では、CPU51は、監視対象テーブル105cを参照し、受信したリードコマンドが監視I/O210か否か判定する。受信したリードコマンドとコマンド種別、アドレス、及びデータ長が一致するエントリが監視対象テーブル105cに存在する場合、S72の判定はYとなってS76に移行する。受信したリードコマンドとコマンド種別、アドレス、及びデータ長が一致するエントリが監視対象テーブル105cに存在しない場合、S72の判定はNとなってS73に移行する。
S73では、CPU51は、受信したリードコマンドが要求するデータがキャッシュ130上に存在するか否か判定する。要求されたデータがキャッシュ130上に存在する場合、S73の判定はYとなる。その結果、CPU51は、要求されたデータをキャッシュ130から読み出し、読み出したデータを、CA101を介してホスト2に送信する(S74)。低消費電力運転処理は、その後に終了する。要求されたデータがキャッシュ130上に存在しない場合、S73の判定はNとなってS75に移行する。
S75では、CPU51は、DA102を用いて、リードコマンドが要求するデータを、そのリードコマンド中のアドレスによって特定されるハードディスク装置120から読み出し、読み出したデータを、CA101を介してホスト2に送信する。次にCPU51は、通常運転を開始、つまり通常モードに移行させる(S81)。その後、低消費電力運転処理が終了する。通常モードへの移行により、RAIDグループ125を構成する全てのハードディスク装置120は動作を開始する。
上記S72の判定がYとなって移行するS76では、図6に表すアクセス先決定処理の実行によって設定されたアクセス先に、監視I/O210によるアクセスを行う。このとき、監視I/O210はリードコマンドであることから、CPU51は、CA101を介して、アクセスによって読み出したデータをホスト2に送信する。その後、低消費電力運転処理が終了する。
上記S71の判定がNとなって移行するS77では、CPU51は、受信したコマンドがライトコマンドか否か判定する。受信したコマンドがライトコマンドであった場合、S77の判定はYとなってS78に移行する。受信したコマンドがライトコマンドでない場合、つまり受信したコマンドがリードコマンド、及びライトコマンド以外のコマンドであった場合、S77の判定はNとなる。そのため、上記のように、低消費電力運転処理が終了する。
S78では、CPU51は、監視対象テーブル105cを参照し、受信したライトコマンドが監視I/O210か否か判定する。受信したライトコマンドとコマンド種別、アドレス、及びデータ長が一致するエントリが監視対象テーブル105cに存在する場合、S78の判定はYとなってS76に移行する。受信したライトコマンドとコマンド種別、アドレス、及びデータ長が一致するエントリが監視対象テーブル105cに存在しない場合、S78の判定はNとなってS79に移行する。
S79では、CPU51は、ライトコマンド中のデータをキャッシュ130に書き込む。次にCPU51は、DA102を用いて、キャッシュ130に書き込んだデータを、ライトコマンド中のアドレスによって特定されるハードディスク装置120に書き込む(S80)。その後、上記S81に移行する。
S78からS76に移行した場合、CPU51は、図6に表すアクセス先決定処理の実行によって設定されたアクセス先に、監視I/O210であるライトコマンド中のデータを書き込むアクセスを行う。その後、低消費電力運転処理が終了する。
なお、本実施形態では、ディスクアレイ装置1に搭載されているCM10に本発明に基づく1例を適用しているが、本発明に基づく1例を適用可能なストレージ制御装置は、ディスクアレイ装置1とは別の装置に搭載されるものであっても良い。ストレージ制御装置は、例えばパーソナルコンピュータ、サーバ等のストレージを内蔵した情報処理装置(コンピュータ)に搭載されたものであっても良い。例えば搭載されたCPUがコントローラを介してストレージにアクセスする構成の情報処理装置では、そのコントローラに本発明に基づく1例を適用することができる。ストレージもハードディスク装置12に限定されない。例えばストレージは、ハードディスク(磁気ディスク)とは異なる種類のディスクを回転させるものであっても良い。
1 ディスクアレイ装置
2 ホスト
10、10−1、10−2 CM
12 ハードディスク装置
51 CPU
52 メモリ
101 CA
102 DA
103 キャッシュ制御部
104 RAID制御部
105 記憶部
105a 構成定義情報
105b 履歴テーブル
105c 監視対象テーブル
106 監視I/Oアクセスチェック機構
120 ハードディスク装置
125、125−0〜125−2 RAIDグループ
126、127 グループ
130 キャッシュ

Claims (8)

  1. ストレージへのアクセスを要求するコマンドを受信する受信部と、
    前記受信部が受信したコマンドのなかから、前記ストレージへの監視用のアクセスを要求する監視コマンドを検出する検出部と、
    前記検出部が検出した前記監視コマンドによる前記ストレージへのアクセスを制限するアクセス制御部と、
    を有することを特徴とするストレージ制御装置。
  2. 前記アクセス制御部は、前記アクセスの対象とする第1の記憶装置を設定し、前記監視コマンドによるアクセスを前記第1の記憶装置に対して行うことにより、前記監視コマンドによる前記ストレージへのアクセスを制限する、
    ことを特徴とする請求項1記載のストレージ制御装置。
  3. 前記ストレージが複数、存在する場合、前記アクセス制御部は、前記複数のストレージのなかの一部を前記第1の記憶装置の候補とする、
    ことを特徴とする請求項1、または2記載のストレージ制御装置。
  4. 前記検出部は、前記コマンドの種類、前記コマンドがアクセスを要求するアドレス、及び前記コマンドが要求するデータ長を基に、前記受信部が受信したコマンドのなかから前記監視コマンドを特定し、該特定結果を用いて、前記受信部が受信するコマンドが監視コマンドか否か判定する、
    ことを特徴とする請求項1、2、または3記載のストレージ制御装置。
  5. 前記検出部は、前記監視コマンドの特定を、前記種類、前記アドレス、及び前記データ長が一致するコマンドを監視コマンドの候補として抽出し、該抽出した候補のなかで受信間隔が一定とみなせる候補を更に抽出することで行う、
    ことを特徴とする請求項4記載のストレージ制御装置。
  6. 前記ストレージ制御装置は、前記ストレージとしてハードディスク装置を複数台、備えたディスクアレイ装置に搭載された制御装置である、
    ことを特徴とする請求項1〜5の何れか1項に記載のストレージ制御装置。
  7. 1つ以上のストレージの制御に用いられる情報処理装置に、
    受信したコマンドのなかから、前記ストレージへの監視用のアクセスを要求する監視コマンドを検出させ、
    検出された前記監視コマンドによる前記ストレージへのアクセスを制限させる、
    ことを特徴とするアクセス制御方法。
  8. 1つ以上のストレージの制御に用いられる情報処理装置に、
    受信したコマンドのなかから、前記ストレージへの監視用のアクセスを要求する監視コマンドを検出させ、
    検出された前記監視コマンドによる前記ストレージへのアクセスを制限させる、
    処理を実行させる制御プログラム。
JP2013121983A 2013-06-10 2013-06-10 ストレージ制御装置、アクセス制御方法、及び制御プログラム Pending JP2014238771A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013121983A JP2014238771A (ja) 2013-06-10 2013-06-10 ストレージ制御装置、アクセス制御方法、及び制御プログラム
US14/251,737 US20140365727A1 (en) 2013-06-10 2014-04-14 Storage control device and access control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013121983A JP2014238771A (ja) 2013-06-10 2013-06-10 ストレージ制御装置、アクセス制御方法、及び制御プログラム

Publications (1)

Publication Number Publication Date
JP2014238771A true JP2014238771A (ja) 2014-12-18

Family

ID=52006491

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013121983A Pending JP2014238771A (ja) 2013-06-10 2013-06-10 ストレージ制御装置、アクセス制御方法、及び制御プログラム

Country Status (2)

Country Link
US (1) US20140365727A1 (ja)
JP (1) JP2014238771A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016151845A1 (ja) * 2015-03-26 2016-09-29 富士通株式会社 情報処理装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4428993B2 (ja) * 2003-11-27 2010-03-10 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
JP4775846B2 (ja) * 2006-03-20 2011-09-21 株式会社日立製作所 物理リンクの割当てを制御するコンピュータシステム及び方法
US9626126B2 (en) * 2013-04-24 2017-04-18 Microsoft Technology Licensing, Llc Power saving mode hybrid drive access management

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016151845A1 (ja) * 2015-03-26 2016-09-29 富士通株式会社 情報処理装置
US10416913B2 (en) 2015-03-26 2019-09-17 Fujitsu Limited Information processing device that monitors operation of storage utilizing specific device being connected to storage

Also Published As

Publication number Publication date
US20140365727A1 (en) 2014-12-11

Similar Documents

Publication Publication Date Title
US10019181B2 (en) Method of managing input/output(I/O) queues by non-volatile memory express(NVME) controller
US10635323B2 (en) Managing storage system
US8972662B2 (en) Dynamically adjusted threshold for population of secondary cache
US10152423B2 (en) Selective population of secondary cache employing heat metrics
US9164840B2 (en) Managing a solid state drive (‘SSD’) in a redundant array of inexpensive drives (‘RAID’)
US9201794B2 (en) Dynamic hierarchical memory cache awareness within a storage system
JP2007156597A (ja) ストレージ装置
US9898201B2 (en) Non-volatile memory device, and storage apparatus to reduce a read retry occurrence frequency and prevent read performance from lowering
JP2009163647A (ja) ディスクアレイ装置
US11137918B1 (en) Administration of control information in a storage system
US10621059B2 (en) Site recovery solution in a multi-tier storage environment
JP2014229144A (ja) 情報処理装置、情報処理システム、情報処理装置の制御方法および情報処理装置の制御プログラム
US10635154B2 (en) Intelligent SAS phy power management
CN111356991B (zh) 逻辑块寻址范围冲突爬虫
US8713257B2 (en) Method and system for shared high speed cache in SAS switches
US9798661B2 (en) Storage system and cache control method
US9298397B2 (en) Nonvolatile storage thresholding for ultra-SSD, SSD, and HDD drive intermix
JP2007048017A (ja) ストレージシステム及び記憶制御方法
JP2014238771A (ja) ストレージ制御装置、アクセス制御方法、及び制御プログラム
US20120215966A1 (en) Disk array unit and control method thereof
JP2008192020A (ja) Raid制御装置及びその制御方法
JP2013206009A (ja) ドライブ制御装置及びストレージシステム及びドライブ制御方法
US8566551B2 (en) Information apparatus and method for controlling the same
JP5761209B2 (ja) ストレージ制御装置、及び、そのプログラム
JP2022000824A (ja) サーバシステム、検出方法及びプログラム