(58)【調査した分野】(Int.Cl.,DB名)
前記維持処理実行手段は、前記維持処理範囲の先頭から、前記維持処理範囲の末尾に最も近い前記書き込みデータ及び前記コピーデータのいずれかが格納されている領域までを、前記リビルド及び前記整合性チェックの少なくともいずれかを実行する領域とする
請求項1記載のストレージ制御装置。
前記コピー手段は、前記維持処理範囲の前記書き込みデータ及び前記コピーデータのいずれも格納されていない空き領域の、前記維持処理範囲の先頭からの近さに基づいて、前記空き領域へ前記コピーデータを書き込む
請求項2記載のストレージ制御装置。
前記維持処理範囲決定手段は、前記書き込みデータが格納された前記物理ディスクの範囲の、前記物理ディスクの全体の範囲に占める割合が、所定の閾値以上に達した場合に、前記維持処理範囲を決定する
請求項4記載のストレージ制御装置。
【発明を実施するための形態】
【0023】
本発明を実施するための形態について図面を参照して詳細に説明する。尚、各図面及び明細書記載の各実施形態において、同様の構成要素には同一の符号を付与し、説明を適宜省略する。また、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【0024】
<<<第1の実施形態>>>
図1は、本発明の第1の実施形態に係るストレージ制御装置101の構成を示すブロック図である。
図1に示すように、本実施形態に係るストレージ制御装置101は、維持処理実行部110とコピー部120とコピーバック部130と記憶部150とを含む。
【0025】
図1に示す各構成要素のそれぞれは、回路によって実現されてよい。その回路は、ハードウェア単位の回路でも、マイクロチップに含まれるモジュールでも、コンピュータであってもよい。例えば、その回路は、LSI(Large Scale Integration)やPGA(Programmable Gate Array)であってもよく、そのLSIやそのPGAは、シングルチップで構成されても、マルチチップで構成されてもよい。更に、その回路は、サーバ或いは、サーバとローカルデバイスの組み合わせであってもよい。ここでは、
図1に示す構成要素が、コンピュータで実現される、機能単位に分割された構成要素であるものとして説明する。尚、
図1に示すストレージ制御装置101は、あるサーバに実装され、ネットワークを介して利用可能にされてよいし、
図1に示す各構成要素がネットワーク上に分散して設置されて利用可能にされてもよい。
【0026】
図2は、本実施形態に係るストレージ制御装置101を含む情報処理システム10の構成を示すブロック図である。
図2に示すように、情報処理システム10は、ストレージ装置300及びホスト400を備える。
【0027】
ホスト400は、ストレージ装置300に対し、論理アドレスを指定してアクセス要求を送信する。
【0028】
ストレージ装置300は、ストレージ制御装置101及びディスク部200を含む。ストレージ制御装置101は、ホスト400からのアクセス要求を受信し、そのアクセス要求に基づいてディスク部200へのアクセスを実行し、そのアクセスの結果をホスト400に送信する。
【0029】
ディスク部200は、例えば、複数の物理ディスク装置(不図示)を含む、所望のRAIDシステムを構成するディスクアレイである。ディスク部200は、ストレージ制御装置101を介して、ホスト400からアクセスされる。
【0030】
次に、
図1に示す実施形態をコンピュータで実現する場合のハードウェア単位の構成要素について、説明する。
図3は、本実施形態におけるストレージ制御装置101を実現する、コンピュータ700のハードウェア構成の一例を示す図である。
【0031】
図3に示すように、コンピュータ700は、プロセッサ701、メモリ702、記憶装置703、入力部704、出力部705、ホストインタフェース部706及びディスクインタフェース部708を含む。更に、コンピュータ700は、外部から供給される記録媒体(または記憶媒体)707を含む。例えば、記録媒体707は、情報を非一時的に記憶する不揮発性記録媒体(非一時的記録媒体)である。また、記録媒体707は、情報を信号として保持する、一時的記録媒体であってもよい。
【0032】
プロセッサ701は、オペレーティングシステム(不図示)を動作させて、コンピュータ700の全体の動作を制御する。例えば、プロセッサ701は、記憶装置703に装着された記録媒体707から、プログラムやデータを読み込み、読み込んだそのプログラムやそのデータをメモリ702に書き込む。ここで、そのプログラムは、例えば、後述の
図9及び
図10に示すフローチャートの動作をコンピュータ700に実行させるためのプログラムである。
【0033】
そして、プロセッサ701は、その読み込んだプログラムに従って、またその読み込んだデータに基づいて、
図1に示す維持処理実行部110、コピー部120及びコピーバック部130として各種の処理を実行する。
【0034】
尚、プロセッサ701は、通信網(不図示)に接続される外部コンピュータ(不図示)から、メモリ702にそのプログラムやそのデータをダウンロードしてもよい。
【0035】
メモリ702は、そのプログラムやそのデータを記憶してよい。また、メモリ702は、
図1に示す記憶部150として、ストレージ制御装置101が扱う任意のデータを記憶してよい。
【0036】
記憶装置703は、例えば、コンピュータ読み取り可能な媒体を含む、ハードディスクドライブ、光ディスクドライブ、フレキシブルディスクドライブ及び磁気光ディスクドライブなどである。また、記憶装置703は、フラッシュメモリなどの半導体記憶装置などであってもよい。記憶装置703は、そのプログラムやそのデータを記憶してよい。また、記憶装置703は、
図1に示す記憶部150として、ストレージ制御装置101が扱う任意のデータを記憶してよい。
【0037】
入力部704は、オペレータによる操作の入力や外部からの情報の入力を受け付ける。入力操作に用いられるデバイスは、例えば、マウスや、キーボード、内蔵のキーボタン及びタッチパネルなどである。入力部704は、維持処理実行部110、コピー部120及びコピーバック部130の一部として含まれてよい。
【0038】
出力部705は、例えばディスプレイで実現される。出力部705は、例えばGUI(GRAPHICAL User Interface)によるオペレータへの入力要求や、オペレータに対する出力提示などのために用いられる。出力部705は、維持処理実行部110、コピー部120及びコピーバック部130の一部として含まれてよい。
【0039】
ホストインタフェース部706は、
図2に示すホスト400とのインタフェースを実現する。ホストインタフェース部706は、維持処理実行部110の一部として含まれてよい。
【0040】
ディスクインタフェース部708は、
図2に示すディスク部200とのインタフェースを実現する。ディスクインタフェース部708は、維持処理実行部110、コピー部120及びコピーバック部130の一部として含まれてよい。
【0041】
以上説明したように、
図1に示すストレージ制御装置101の機能単位の各構成要素は、
図3に示すハードウェア構成のコンピュータ700によって実現される。但し、コンピュータ700が備える各部の実現手段は、上記に限定されない。すなわち、コンピュータ700は、物理的に結合した1つの装置により実現されてもよいし、物理的に分離した2つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
【0042】
尚、上述のプログラムのコードを記録した記録媒体707が、コンピュータ700に供給される場合、プロセッサ701は、記録媒体707に格納されたそのプログラムのコードを読み出して実行してよい。或いは、プロセッサ701は、記録媒体707に格納されたそのプログラムのコードを、メモリ702、記憶装置703またはその両方に格納してもよい。すなわち、本実施形態は、コンピュータ700(プロセッサ701)が実行するそのプログラム(ソフトウェア)を、一時的にまたは非一時的に、記憶する記録媒体707の実施形態を含む。尚、情報を非一時的に記憶する記録媒体は、非一時的記録媒体或いは不揮発性記録媒体とも呼ばれる。
【0043】
以上が、本実施形態におけるストレージ制御装置101を実現するコンピュータ700の、ハードウェア単位の各構成要素についての説明である。
【0044】
図1に戻って、ストレージ制御装置101の機能単位の各構成要素について説明する。
【0045】
===維持処理実行部110===
維持処理実行部110は、ディスク部(物理ディスクとも呼ばれる)200の特定の領域である維持処理範囲について、維持処理を実行する。維持処理は、ディスク部200に構築されるRAIDシステムの冗長性を維持するための処理であり、リビルド及び整合性チェックのいずれかを少なくとも含む。尚、維持処理は、RAID処理とも呼ばれる。
【0046】
維持処理範囲は、維持処理の実行対象とされる、ディスク部200の特定の領域である。ストレージ制御装置101は、例えば、図示しない手段により関連技術に示す特許文献2に記載された技術を用いて維持処理範囲を決定してよい。この場合、ストレージ制御装置101は、同じく図示しない手段により、後述する使用状態テーブル152を生成してもよい。
【0047】
また、維持処理範囲は、理論的、経験的或いは試行錯誤的に予め決定されてよい。この場合、維持処理範囲は、
図3に示すメモリ702或いは記憶装置703に、予め記憶されていてよい。また、ストレージ制御装置101は、
図3に示す入力部704を介して操作者が入力した、維持処理範囲を取得してもよい。また、ストレージ制御装置101は、図示しない機器から、維持処理範囲を受信してもよい。また、ストレージ制御装置101は、
図3に示す記憶装置703を介して、記録媒体707に記録された維持処理範囲を取得してもよい。
【0048】
図4は、維持処理範囲情報151の一例を示す図である。
図4において、維持処理範囲は、維持処理範囲の先頭アドレスと末尾アドレスとで示される。
図4において、「0xXXXXXX(XXXXXXは、16進数で表される数値)」は維持処理範囲の先頭アドレスを、「0xYYYYYY(YYYYYYは、16進数で表される数値)」は維持処理範囲の末尾アドレスを、示す。即ち、
図4は、ディスク部200における「0xXXXXXX」から「0xYYYYYY」までの領域が維持処理範囲であることを示す。
【0049】
図5は、ディスク部200における、維持処理範囲202と維持処理範囲外201との一例を示す図である。
図5に示すように、ディスク部200は、物理ディスク装置210を含む。尚、
図5の例に係わらずディスク部200は、任意の台数の物理ディスク装置210を含んでよい。
図5に示すように、物理ディスク装置210の「先頭アドレス0xXXXXXX」から「末尾アドレス0xYYYYYY」までが、維持処理範囲202である。物理ディスク装置210の先頭から「先頭アドレス0xXXXXXX」の1つ前のアドレス、及び、「末尾アドレス0xYYYYYY」から物理ディスク装置210の末尾までが維持処理範囲外201である。尚、本実施形態において、維持処理範囲202は、連続していることが望ましいが、維持処理範囲202が分割して存在することを除外するものではない。
【0050】
===コピー部120===
コピー部120は、維持処理範囲外201への書き込み要求に基づいて、維持処理範囲202のいずれかの空き領域へその書き込み要求で指定される書き込みデータをコピーデータとして書き込む。具体的には、ストレージ制御装置101は、ホスト400からアクセス要求を受信する。そして、受信したアクセス要求が維持処理範囲外201への書き込み要求である場合に、コピー部120は、維持処理範囲202のいずれかの空き領域に、その書き込みデータを書き込む。即ち、コピー部120は、維持処理範囲外201への書き込み要求に基づいて、維持処理範囲202のいずれかの空き領域にその書き込みデータのコピーを格納する。
【0051】
図6は、物理ディスク装置210に格納された書き込みデータ及びコピーデータの一例を示す図である。
図6において、例えば、書き込みデータ211(図中の「DataC」は書き込みデータ211のデータ識別子)は、その書き込み要求に基づいてストレージ制御装置101によってディスク部200に書き込まれた書き込みデータである。また、そして、コピーデータ212(図中の「DataC′」はコピーデータ212のデータ識別子)は、コピー部120によって、ディスク部200に書き込まれた(コピーされた)コピーデータである。また、書き込みデータ213(図中の「DataA」は書き込みデータ213のデータ識別子)及び書き込みデータ214(図中の「DataB」は書き込みデータ214のデータ識別子)は、書き込みデータである。
【0052】
コピー部120は、例えば、以下のように、そのコピー状態を管理する。
図7は、コピーアドレス管理テーブル155の一例を示す図である。
図7に示されるコピーアドレス管理テーブル155は、
図6に示す書き込みデータ211「DataC」に対応する、コピー元データ識別子、コピー元アドレス「0xZZZZZZ(ZZZZZZは、16進数で表される数値)」、コピー先データ識別子及びコピー先アドレス「0xCCCCCC(CCCCCCは、16進数で表される数値)」を示す。
【0053】
尚、コピー部120は、維持処理範囲202の使用状態(空き状態)を、直接管理してよいし、ディスク部200に問い合わせてもよい。
図8は、コピー部120が管理する使用状態テーブル152の一例を示す図である。
図8に示すように、使用状態テーブル152は、維持処理範囲202について、予め定められたサイズに区切られたレコード番号毎にその使用状態(例えば、「1」は使用、「0」は未使用)を示す。即ち、コピー部120は、使用状態テーブル152を参照して使用状態が未使用であるレコードに、そのコピーを格納する。
【0054】
===コピーバック部130===
コピーバック部130は、コピーデータに対応する維持処理範囲外201に格納されている書き込みデータを、そのコピーデータに対して維持処理が実行されたデータである処理済みデータで、上書きする。
【0055】
具体的には、コピーバック部130は、維持処理実行部110により維持処理が正常に実行された場合、コピーアドレス管理テーブル155に基づいて、維持処理範囲外201へ、維持処理が正常に実行された処理済みデータを書き戻す。例えば、コピーバック部130は、維持処理範囲外201に格納されているデータ(例えば、書き込みデータ211)を、維持処理範囲202に格納されているデータ(例えば、コピーデータ212)に対して維持処理が正常に実行されたデータで、上書きする。
【0056】
以上が、ストレージ制御装置101の機能単位の各構成要素についての説明である。
【0057】
次に本実施形態の動作について、図面を参照して詳細に説明する。
【0058】
図9及び
図10は、本実施形態の動作を示すフローチャートである。尚、このフローチャートによる処理は、前述したプロセッサ701によるプログラム制御に基づいて、実行されてよい。また、処理のステップ名については、S601のように、記号で記載する。
【0059】
ストレージ制御装置101は、ホスト400から書き込み要求のアクセス要求を受信したことを契機に、
図9に示すフローチャートの動作を開始する。
【0060】
コピー部120は、受信したアクセス要求が維持処理範囲外201への書き込み要求であるか否かを判定する(ステップS601)。
【0061】
否である場合(ステップS601でNO)、処理は終了する。
【0062】
そのアクセス要求が維持処理範囲外201への書き込み要求である場合(ステップS601でYES)、コピー部120は、使用状態テーブル152に基づいて、維持処理範囲202のいずれかの空き領域に、その書き込み要求で示される書き込みデータを書き込む(ステップS602)。
【0063】
次に、コピー部120は、その書き込みデータを書き込んだ領域に対応する使用状態テーブル152の使用状態を「1」に変更する(ステップS603)。
【0064】
次に、コピー部120は、その書き込みデータに対応するレコードをコピーアドレス管理テーブル155に追加する(ステップS604)。
【0065】
ストレージ制御装置101は、ホスト400から維持処理要求のアクセス要求を受信したことを契機に、
図10に示すフローチャートの動作を開始する。尚、ストレージ制御装置101は、予め定められる特定の期間のそれぞれが終了したことを契機に、
図10に示すフローチャートの動作を開始する。また、ストレージ制御装置101は、
図3に示す入力部704を介して操作者から指示を受けたことを契機に、
図10に示すフローチャートの動作を開始してもよい。ストレージ制御装置101は、図示しない経路を介して、外部から要求を受信したことを契機に、
図10に示すフローチャートの動作を開始してもよい。
【0066】
維持処理実行部110は、維持処理要求に基づいて維持処理を実行する(ステップS611)。
【0067】
次に、コピーバック部130は、維持処理が正常に実行されたか否かを判定する(ステップS612)。
【0068】
否の場合(ステップS612でNO)、処理は終了する。
【0069】
維持処理が正常に実行された(ステップS612でYES)場合、コピーバック部130は、コピーアドレス管理テーブル155に基づいて、維持処理範囲外201へ、その維持処理が正常に実行された処理済みデータを書き戻す。(ステップS613)。
【0070】
以上が、ストレージ制御装置101の動作の説明である。
【0071】
上述した本実施形態における第1の効果は、ディスクへの無駄なアクセスによる処理時間を短縮することが可能になる点である。
【0072】
その理由は、以下のような構成を含むからである。即ち、第1にコピー部120が、維持処理範囲外201への書き込み要求に基づいて、維持処理範囲202のいずれかの領域へその書き込み要求で指定される書き込みデータをコピーデータとして書き込む。第2に、維持処理実行部110が、維持処理範囲202について、維持処理を実行する。第3に、コピーバック部130が、そのコピーデータに対応する維持処理範囲外201書き込みデータを、そのコピーデータに対して維持処理が実行されたデータである処理済みデータで、上書きする。
【0073】
一般に、RAIDシステムに記録される書き込みデータの格納先は上位アプリケーションからの書き込み要求に従う。このため、書き込みデータが書き込まれたアドレスに連続性は無い。そして、そのように連続性の無い、データ未使用領域が多く含まれる状態で記録された書き込みデータを、上位アプリケーションに影響しないようにHW側で整列させ、未使用領域を減らすことは、困難である。従って、関連技術では、そのように連続性の無い、データ未使用領域が多く含まれる領域について、維持処理を実行しなければならない場合が発生する。
【0074】
本実施形態のストレージ制御装置101は、維持処理を実行する範囲をディスク部200の限定された領域である維持処理範囲202に絞り込むことができる。そして、ストレージ制御装置101は、維持処理範囲202内を、未使用領域が少ない、データ使用率の高い状態にできるため、維持処理をより効率的に実行することが可能になる。
【0075】
<<<第1の実施形態の第1の変形例>>>
第1の実施形態の第1の変形例は、第1の実施形態に比べて、以下の点が異なる。
【0076】
維持処理実行部110は、維持処理範囲202の先頭から、維持処理範囲202の末尾に最も近い書き込みデータ及びコピーデータのいずれかが格納されている領域までを、維持処理を実行する領域とする。具体的には、維持処理実行部110は、維持処理範囲202の先頭から、維持処理範囲202の末尾に最も近い「使用状態テーブル152の使用状態が「1」であるレコード」までについて、維持処理を実行する。換言すると、維持処理実行部110は、維持処理実行部110は、「使用状態テーブル152の使用状態が「0」であるレコード」が維持処理範囲202の末尾まで続く、維持処理範囲202の後半についての維持処理を実行しない。
【0077】
図11は、本変形例における維持処理実行部110が維持処理を実行する範囲の一例を示す図である。
図11に示すように、本変形例の維持処理実行部110は、維持処理範囲外201の先頭から、コピーデータ212の末尾までを、維持処理を実行する実行領域203とする。
【0078】
本第1の変形例は、維持処理実行部110が維持処理を実行する領域を、維持処理範囲202の一部に更に限定することで、維持処理の実行時間を更に短縮することを可能にする。
【0079】
<<<第1の実施形態の第2の変形例>>>
第1の実施形態の第2の変形例は、第1の実施形態の第1の変形例に比べて、以下の点が異なる。
【0080】
コピー部120は、維持処理範囲202の書き込みデータ及びコピーデータのいずれも格納されていない空き領域の、維持処理範囲202の先頭からの近さに基づいて、その空き領域へコピーデータを書き込む。具体的には、コピー部120は、維持処理範囲202の先頭から順に「使用状態テーブル152の使用状態が「0」であるレコード」を探査し、検出したレコードにコピーデータを格納する。
【0081】
図12は、本変形例におけるコピーデータと維持処理実行部110が維持処理を実行する範囲の一例を示す図である。
図12に示すように、本変形例の維持処理実行部110は、維持処理範囲外201の先頭から、書き込みデータ214の末尾までを、維持処理を実行する実行領域204とする。
【0082】
本第2の変形例は、維持処理実行部110が維持処理を実行する領域を、維持処理範囲202の一部に、第1の変形例より更に限定することで、維持処理の実行時間を第1の変形例より更に短縮することを可能にする。
【0083】
<<<第1の実施形態の第3の変形例>>>
図13は、第1の実施形態の変形例である情報処理システム501を示す図である。図に示すように、情報処理システム501は、情報処理装置510、情報処理装置520、情報処理装置530及び記憶装置550を含む。情報処理装置510、情報処理装置520、情報処理装置530及び記憶装置550は、ネットワーク509を介して接続される。尚、
図13に示す例に係わらず、情報処理装置510、情報処理装置520、情報処理装置530及び記憶装置550の任意の組み合わせは、1台の
図3に示すようなコンピュータ700であってよい。或いは、情報処理装置510、情報処理装置520、情報処理装置530及び記憶装置550の任意のいずれかどうしは、ネットワークを介することなく直接接続されてもよい。即ち、情報処理装置510、情報処理装置520、情報処理装置530及び記憶装置550は、任意に、ネットワーク109を介して接続されてよい。
【0084】
情報処理装置510は、
図1に示す維持処理実行部110を含む。情報処理装置520は、
図1に示すコピー部120を含む。情報処理装置530は、
図1に示すコピーバック部130を含む。記憶装置550は、記憶部150を含む。
【0085】
上述した本実施形態における変形例の効果は、情報処理システム501の構築を柔軟に(例えば、設置場所等の制限が低減されて)実現することが可能になる点である。
【0086】
その理由は、情報処理装置510、情報処理装置520、情報処理装置530及び記憶装置550を、任意に、ネットワーク509を介して接続するからである。
【0087】
<<<第2の実施形態>>>
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
【0088】
図14は、本発明の第2の実施形態に係るストレージ制御装置102の構成を示すブロック図である。
【0089】
図14に示すように、本実施形態におけるストレージ制御装置102は、第1の実施形態のストレージ制御装置101と比べて、維持処理範囲決定部140を更に含む点が異なる。
【0090】
ストレージ制御装置102は、
図1に示すストレージ制御装置101と同様に、
図3に示すコンピュータ700によって実現されてよい。
【0091】
この場合、プロセッサ701は、その読み込んだプログラムに従って、またその読み込んだデータに基づいて、
図14に示す維持処理実行部110、コピー部120、コピーバック部130、更に維持処理範囲決定部140としても、各種の処理を実行する。ここで、そのプログラムは、例えば、後述の
図16に示すフローチャートの動作をコンピュータ700に実行させるためのプログラムである。
【0092】
また、メモリ702は、
図14に示す記憶部150として、ストレージ制御装置102が扱う任意のデータを記憶してよい。記憶装置703は、
図14に示す記憶部150として、ストレージ制御装置102が扱う任意のデータを記憶してよい。
【0093】
また、入力部704は、更に維持処理範囲決定部140の一部としても含まれてよい。出力部705は、更に維持処理範囲決定部140の一部としても含まれてよい。ホストインタフェース部706は、更に維持処理範囲決定部140の一部としても含まれてよい。
【0094】
===維持処理範囲決定部140===
維持処理範囲決定部140は、書き込みデータが格納されたディスク部200の範囲に基づいて、維持処理範囲情報151の先頭アドレス及び末尾アドレス、即ち維持処理範囲202、を決定する。
【0095】
維持処理範囲決定部140は、例えば、以下のように維持処理範囲202を決定する。
【0096】
第1に、維持処理範囲決定部140は、ホスト400から書き込み要求を受信した場合、維持処理範囲情報151に基づいて、書き込みデータが格納されたディスク部200の範囲が特定の条件を満たすか否かを判定する。特定の条件は、例えば、「既に書き込みデータが格納されているディスク部200の領域の、最小アドレスから最大アドレスまでの範囲の、ディスク部200の全体の範囲に占める割合が所定の閾値以上である」という条件である。また、特定の条件は、「既に書き込みデータが格納されているディスク部200の領域の、最小アドレスから最大アドレスまでの範囲が所定の閾値以上である」という条件であってもよい。尚、その最小アドレスからその最大アドレスの間には、書き込みデータが格納されていない領域を含んでよいものとする。特定の条件は、上述の例に係わらず、任意の適切な条件であってよい。
【0097】
図15は、閾値156の一例を示す図である。
図15は、特定の条件「既に書き込みデータが格納されているディスク部200の領域の、最小アドレスから最大アドレスまでの範囲の、ディスク部200の全体の範囲に占める割合が所定の閾値以上である」の閾値である格納範囲率が、「0.4」であることを示す。尚、閾値は、例えば、理論的、経験的或いは試行錯誤的に予め決定される。例えば、閾値は、
図3に示すメモリ702或いは記憶装置703に、予め記憶されていてよい。また、ストレージ制御装置102は、
図3に示す入力部704を介して操作者が入力した、閾値を取得してもよい。また、ストレージ制御装置102は、図示しない機器から、閾値を受信してもよい。また、ストレージ制御装置102は、
図3に示す記憶装置703を介して、記録媒体707に記録された閾値を取得してもよい。
【0098】
第2に、特定の条件が満たされない場合、維持処理範囲決定部140は、維持処理範囲情報151を更新する。維持処理範囲決定部140は、ホスト400から受信した書き込み要求で指定される最小アドレスが、維持処理範囲情報151の先頭アドレス未満である場合、その最小アドレスで維持処理範囲情報151の先頭アドレスを更新する。また、維持処理範囲決定部140は、ホスト400から受信した書き込み要求で指定される最大アドレスが、維持処理範囲情報151の末尾アドレスを超える場合、その最大アドレスで維持処理範囲情報151の末尾アドレスを更新する。
【0099】
第3に、維持処理範囲決定部140は、その更新した維持処理範囲情報151に基づいて書き込みデータが格納されたディスク部200の範囲が特定の条件を満たすか否かを判定する。次に、維持処理範囲決定部140は、特定の条件が満たされる場合、使用状態テーブル152を生成する。
【0100】
図16は、本実施形態に係るストレージ制御装置102の動作を示すフローチャートである。尚、このフローチャートによる処理は、前述したプロセッサ701によるプログラム制御に基づいて、実行されてよい。また、処理のステップ名については、S601のように、記号で記載する。
【0101】
ストレージ制御装置102は、ホスト400から書き込み要求のアクセス要求を受信したことを契機に、
図16に示すフローチャートの動作を開始する。
【0102】
尚、ここでは、特定の条件を「既に書き込みデータが格納されているディスク部200の領域の、最小アドレスから最大アドレスまでの範囲の、ディスク部200の全体の範囲に占める割合が所定の閾値以上である」とする。
【0103】
維持処理範囲決定部140は、維持処理範囲情報151に基づいて、書き込みデータが格納されたディスク部200の範囲が特定の条件を満たすか否かを判定する。(ステップS621)。
【0104】
その範囲が特定の条件を満たす場合(ステップS621でYES)、処理はステップS601へ進む。
【0105】
否である場合(ステップS621でNO)、維持処理範囲決定部140は、維持処理範囲情報151を更新する(ステップS622)。
【0106】
次に、維持処理範囲決定部140は、ステップS622で更新された維持処理範囲情報151に基づいて、書き込みデータが格納されたディスク部200の範囲が特定の条件を満たすか否かを判定する。(ステップS623)。否である場合(ステップS623でNO)、処理は終了する。
【0107】
その範囲が特定の条件を満たす場合(ステップS623でYES)、維持処理範囲決定部140は、使用状態テーブル152を生成する(ステップS624)。そして、処理はステップS601へ進む。
【0108】
図16に示すステップS601からステップS604までの動作は、
図9に示すステップS601からステップS604までの動作と同等である。以上が、本実施形態におけるストレージ制御装置102の動作の説明である。
【0109】
図17は、維持処理範囲決定部140により決定される維持処理範囲202の一例を示す図である。
図17は、「書き込みデータ213の最小アドレスから書き込みデータ214の最大アドレスまでの範囲が、特定の条件を満たしていることを示す。そして、
図17は、「書き込みデータ213の最小アドレスが維持処理範囲情報151の先頭アドレス、書き込みデータ214の最大アドレスが維持処理範囲情報151の末尾アドレスとして、維持処理範囲202が決定されていることを示す。尚、
図17は、ディスク部200に含まれる1台の物理ディスク装置210についてのみ図示しているが、特定の条件は、ディスク部200全体、或いはディスク部200の一部の任意の適切な範囲で設定されてよい。
【0110】
図18は、維持処理範囲決定部140により決定される維持処理範囲202における、維持処理実行部110よる維持処理が実行される実行領域206の一例を示す図である。
図18に示すように、維持処理範囲202に、アドレス範囲外へ書き込み要求のあった書き込みデータのコピーデータが格納されるため、限定され、かつ使用率の高い実行領域206に対して維持処理が実行される。こうして処理時間の大幅短縮が実現される。
【0111】
上述した本実施形態におけるは、第1の実施形態の効果に加えて、更に、ディスクへの無駄なアクセスによる処理時間を短縮することが可能になる点である。
【0112】
その理由は、維持処理範囲決定部140が、書き込みデータが格納されたディスク部200の範囲に基づいて、維持処理範囲202を決定するからである。例えば、維持処理範囲決定部140が、書き込みデータが格納されたディスク部200の範囲の、ディスク部200の全体の範囲に占める割合が、所定の閾値以上に達した場合に、維持処理範囲を決定するからである。
【0113】
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要は無い。例えば、複数個の任意のその構成要素が1個のモジュールとして実現されてよい。また、その構成要素の内の任意のひとつが複数のモジュールで実現されてもよい。また、その構成要素の内の任意のひとつがその構成要素の内の任意の他のひとつであってよい。また、その構成要素の内の任意のひとつの一部と、その構成要素の内の任意の他のひとつの一部とが重複してもよい。
【0114】
以上説明した各実施形態における各構成要素及び各構成要素を実現するモジュールは、必要に応じ、可能であれば、ハードウェア的に実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、コンピュータ及びプログラムで実現されてよい。また、各構成要素及び各構成要素を実現するモジュールは、ハードウェア的なモジュールとコンピュータ及びプログラムとの混在により実現されてもよい。
【0115】
そのプログラムは、例えば、磁気ディスクや半導体メモリなど、コンピュータが読み取り可能な非一時的記録媒体に記録され、コンピュータに提供される。そして、そのプログラムは、コンピュータの立ち上げ時などに、非一時的記録媒体からコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施形態における構成要素として機能させる。
【0116】
また、以上説明した各実施形態では、複数の動作をフローチャートの形式で順番に記載してあるが、その記載の順番は複数の動作を実行する順番を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の順番は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障を来さない範囲内で、変更することができる。
【0117】
更に、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障を来さない範囲内で、ある動作の実行中に他の動作が発生してよい。また、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障を来さない範囲内で、ある動作と他の動作との実行タイミングが部分的に乃至全部において重複してもよい。
【0118】
更に、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作との関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障を来さない範囲内で、変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障を来さない範囲内で変更されてよい。
【0119】
以上、各実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。