(58)【調査した分野】(Int.Cl.,DB名)
前記第2の再配置部は、前記第3の論理チャンクの組の選択を、選択される第3の論理チャンクの組を変えて繰り返し、前記第3の論理チャンクの組が選択された場合、前記第2の記憶領域が割り当てられている第4の論理チャンクの組に、前記第3の記憶領域内の元の領域を再割り当てし、且つ前記選択された第3の論理チャンクの組に前記第2の記憶領域内の物理チャンクの組を再割り当てし、
前記評価部は、前記第2の記憶領域の前記再割り当ての効果に関する評価結果の第1の履歴と、前記物理チャンクの組が再割り当てされた前記第3の論理チャンクの組に前記再割り当ての前に割り当てられていた前記第3の記憶領域内の物理チャンクの組を示す物理チャンク一覧の第2の履歴とを、前記ストレージコントローラ内の記憶装置に保存する
請求項1記載の階層化ストレージシステム。
前記第2の再配置部は、前記第1の履歴及び前記第2の履歴に基づいて、評価結果が最も高い第1の再割り当ての状態を復元する請求項2記載の階層化ストレージシステム。
前記第2の再配置部は、前記第2の履歴に基づいて、前記第1の再割り当てにおいて前記物理チャンクの組が再割り当てされた前記第3の論理チャンクの組に前記第1の再割り当ての前に割り当てられていた前記第3の記憶領域内の物理チャンクの組を特定し、前記特定された物理チャンクの組のデータを前記第2の記憶領域にコピーすることにより、前記第1の再割り当ての状態を復元する請求項3記載の階層化ストレージシステム。
前記第2の再配置部は、前記第3の記憶領域から、前記第2の記憶領域に対応する数の物理チャンクを単位に物理チャンクの組をシーケンシャルに選択し、前記第3の記憶領域から物理チャンクの組が選択された場合、前記選択された物理チャンクの組に割り当てられている論理チャンクの組を前記第3の論理チャンクの組として選択する請求項2記載の階層化ストレージシステム。
前記第2の再配置部は、前記第1の記憶領域内の物理チャンクに割り当てられた論理チャンクがそれぞれ当該割り当て前に割り当てられていた前記第3の記憶領域内の物理チャンクを順次選択し、前記第3の記憶領域から物理チャンクが選択された場合、前記選択された物理チャンクの周辺の物理チャンクの組が割り当てられている論理チャンクの組を前記第3の論理チャンクの組として選択する請求項2記載の階層化ストレージシステム。
前記評価部は、前記第2の記憶領域の前記再割り当てに応じて、前記論理ボリュームへのランダムリードアクセス及び前記論理ボリュームの第4の記憶領域へのシーケンシャルリードアクセスの少なくとも一方を実行して、前記ランダムリードアクセス及び前記シーケンシャルリードアクセスの前記少なくとも一方のスループットを測定し、当該測定されたスループットを、前記第2の記憶領域の前記再割り当ての効果に関する評価結果として取得する請求項2記載の階層化ストレージシステム。
第1のサイズを有する複数の物理チャンクを含む記憶領域を備えた第1のストレージ装置と、前記第1のサイズを有する複数の物理チャンクを含む記憶領域を備え、且つ前記第1のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第2のストレージ装置とを具備する階層化ストレージシステムにおいて、前記第1のストレージ装置及び前記第2のストレージ装置を制御するストレージコントローラであって、
前記第1のサイズを有する複数の論理チャンクを含み、且つホストコンピュータに提供される論理ボリュームであって、前記第1のストレージ装置の第1の記憶領域、前記第1のストレージ装置の第2の記憶領域、及び前記第2のストレージ装置の第3の記憶領域が前記物理チャンクを単位に割り当てられる論理ボリュームを管理する論理ボリューム管理部と、
前記論理ボリュームにおける前記複数の論理チャンクそれぞれへのアクセスの状況を表すアクセス頻度統計値を収集するアクセス統計収集部と、
アクセス頻度統計値が大きい第1の論理チャンクを選択し、前記第1の論理チャンクに前記第3の記憶領域内の第1の物理チャンクが割り当てられている場合、前記第1の論理チャンクよりもアクセス頻度統計値が小さい第2の論理チャンクに割り当てられている前記第1の記憶領域内の第2の物理チャンクを前記第1の論理チャンクに再割り当てし、且つ前記第1の物理チャンクを前記第2の論理チャンクに再割り当てする第1の再配置部と、
前記第2の記憶領域が再割り当てされるべき第3の論理チャンクの組を、前記第3の論理チャンクの組に前記第3の記憶領域が割り当てられていることを条件に選択して、前記第3の論理チャンクの組に前記第2の記憶領域を再割り当てする第2の再配置部と、
前記第2の記憶領域の前記再割り当ての効果を評価する評価部と
を備えるストレージコントローラ。
第1のサイズを有する複数の物理チャンクを含む記憶領域を備えた第1のストレージ装置と、前記第1のサイズを有する複数の物理チャンクを含む記憶領域を備え、且つ前記第1のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第2のストレージ装置とを具備する階層化ストレージシステムにおいて、前記第1のストレージ装置及び前記第2のストレージ装置を制御ストレージコントローラに、
前記論理ボリューム管理部は、前記第1のサイズを有する複数の論理チャンクを含み、且つホストコンピュータに提供される論理ボリュームであって、前記第1のストレージ装置の第1の記憶領域、前記第1のストレージ装置の第2の記憶領域、及び前記第2のストレージ装置の第3の記憶領域が前記物理チャンクを単位に割り当てられる論理ボリュームを管理することと、
前記論理ボリュームにおける前記複数の論理チャンクそれぞれへのアクセスの状況を表すアクセス頻度統計値を収集することと、
アクセス頻度統計値が大きい第1の論理チャンクを選択し、前記第1の論理チャンクに前記第3の記憶領域内の第1の物理チャンクが割り当てられている場合、前記第1の論理チャンクよりもアクセス頻度統計値が小さい第2の論理チャンクに割り当てられている前記第1の記憶領域内の第2の物理チャンクを前記第1の論理チャンクに再割り当てし、且つ前記第1の物理チャンクを前記第2の論理チャンクに再割り当てすることと、
前記第2の記憶領域が再割り当てされるべき第3の論理チャンクの組を、前記第3の論理チャンクの組に前記第3の記憶領域が割り当てられていることを条件に選択して、前記第3の論理チャンクの組に前記第2の記憶領域を再割り当てすることと、
前記第2の記憶領域への前記再配置の効果を評価することと
を実行させるためのプログラム。
【発明を実施するための形態】
【0015】
以下、種々の実施の形態につき図面を参照して説明する。
図1は、1つの実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。コンピュータシステムは、階層化ストレージシステム10及びn台のホストコンピュータ(以下、ホストと称する)20_1乃至20_nから構成される。本実施形態において、nは1より大きい整数である。つまりコンピュータシステムは、複数のホストを備えている。しかし、nが1であっても構わない。つまりコンピュータシステムが、単一のホストを備えていても良い。
【0016】
ホスト20_1乃至20_nは、階層化ストレージシステム10を自身の外部記憶装置として利用する。ホスト20_1乃至20_nは、例えば、スイッチングハブ(ネットワークスイッチ)のようなスイッチ30を介して階層化ストレージシステム10(より、詳細には、階層化ストレージシステム10のストレージコントローラ13)と接続される。以下の説明では、ホスト20_1乃至20_nを特に区別する必要がない場合には、ホスト20_1乃至20_nの各々をホスト20_*と表記する。
【0017】
階層化ストレージシステム10は、高速ストレージ装置(第1のストレージ装置)11と、低速ストレージ装置(第2のストレージ装置)12と、ストレージコントローラ13を備えている。高速ストレージ装置11及び低速ストレージ装置12は、スイッチ30と同様のスイッチ14を介してストレージコントローラ13と接続されている。
【0018】
高速ストレージ装置11は、例えば、フラッシュアレイのような、アクセス応答性能に優れた(つまり、アクセス速度が高速な)フラッシュストレージ装置から構成される。フラッシュストレージ装置は、複数のフラッシュメモリボードを用いて実現される。フラッシュメモリボードの各々は、フラッシュメモリの集合を含む。本実施形態では、複数のフラッシュメモリボードの各々はハードディスクドライブ(HDD)との互換性を有していないものとする。しかし、複数のフラッシュメモリボードに代えて、HDDとの互換性を有する複数のソリッドステートドライブ(SSD)が用いられても構わない。
【0019】
一方、低速ストレージ装置12は、例えば、高速ストレージ装置11(フラッシュストレージ装置)と比較してアクセス応答性能が低い(つまり、アクセス速度が低速である)ものの記憶容量が大きい、ハードディスクドライブ(HDD)アレイから構成される。HDDアレイは、例えば、複数のHDDを備えたRAID(Redundant Arrays of Inexpensive DisksまたはRedundant Arrays of Independent Disks)構成のストレージ装置である。なお、高速ストレージ装置11及び低速ストレージ装置12が必ずしもアレイ構成を有している必要はない。
【0020】
上述のように、
図1に示される階層化ストレージシステム10には、アクセス速度(つまりアクセス応答性能)の異なる2つ(2種類)のストレージ装置(つまり、高速ストレージ装置111及び低速ストレージ装置112)が存在する。この場合、高速ストレージ装置111は上位階層(高速階層、第1の階層)に、低速ストレージ装置112は下位階層(低速階層、第2の階層)に、それぞれ割り当てられる。なお、階層化ストレージシステム10が、例えば磁気テープ装置のような、低速ストレージ装置112よりも更に低速(低階層、第3の階層)のストレージ装置(第3の階層のストレージ装置)を備えていても良い。
【0021】
ストレージコントローラ13は、ホスト20_*から与えられる、論理アドレスを用いたデータアクセス(リードアクセスまたはライトアクセス)の要求(入出力要求)を受けて、要求された入出力(I/O)を実行する。このI/Oの実行に際し、ストレージコントローラ13は、周知のアドレス変換機能を用いて、論理アドレスを物理ボリューム識別子(ID)及び物理アドレスに変換する。論理アドレスは、ホスト20_*によって認識される論理ボリューム(論理ディスク)内のアドレスを指す。物理アドレスは、論理アドレスに対応付けられた、ストレージ装置内の物理位置を示し、物理ボリュームIDは、当該ストレージ装置の物理ボリューム(つまり、物理的な記憶領域)のIDを示す。ストレージコントローラ13は、この物理ボリュームID及び物理アドレスに基づいて、高速ストレージ装置11または低速ストレージ装置12にアクセスする。本実施形態において、高速ストレージ装置11または低速ストレージ装置12は、第2のサイズの領域を最小単位としてアクセスが可能である。この第2のサイズの領域はブロック(またはセクタ)と呼ばれる。本実施形態において、第2のサイズは512バイト(B)である。
【0022】
ストレージコントローラ13は、ホストインタフェースコントローラ(以下、HIFCと称する)130と、ストレージインタフェースコントローラ(以下、SIFCと称する)131と、メモリ132と、HDD133と、CPU134とを備えている。
【0023】
HIFC130は、当該HIFC130とホスト20_*との間のデータ転送(データ転送プロトコル)を制御する。HIFC130は、ホスト20_*からの論理ボリュームに対するI/O要求(リードアクセス要求またはライトアクセス要求)を受信し、当該I/O要求に対する応答を返信する。HIFC130は、ホスト20_*からI/O要求を受信すると、当該I/O要求を、CPU134に伝達する。I/O要求を受け取ったCPU134は、当該I/O要求を処理する。
【0024】
SIFC131は、CPU134が受信したホスト20_*からのI/O要求(論理ボリュームに対するライトアクセス要求またはリードアクセス要求)に基づくアクセス要求(物理ボリュームに対するライトアクセス要求またはリードアクセス要求)を、CPU134から受信する。SIFC131は、受信されたアクセス要求に応じて、高速ストレージ装置111または低速ストレージ装置113へのアクセスを実行する。
【0025】
メモリ132は、DRAMのような書き換えが可能な揮発性メモリである。メモリ132の一部の領域は、HDD133からロードされるストレージ制御プログラム420(
図4)を格納するのに用いられる。メモリ132の他の一部の領域は、CPU134のためのワーク領域として用いられる。メモリ132の更に他の一部の領域は、種々のテーブルを格納するのに用いられる。これらのメモリマップの詳細は後述する。
【0026】
HDD133には、ストレージ制御プログラム420が格納されている。CPU134は、ストレージコントローラ13が起動されたときにイニシャルプログラムローダ(IPL)を実行することにより、HDD133に格納されているストレージ制御プログラム420をメモリ132にロードする。IPLは、読み出し専用メモリ(ROM)またはフラッシュROM(FROM)のような不揮発性メモリに格納されている。また、メモリ132に格納されている各種のテーブルは、適宜HDD133に保存される。HDD133に保存された各種のテーブルは、必要に応じて(例えば、当該ストレージコントローラ13の起動時に)HDD133からメモリ132にロードされる。
【0027】
CPU134は、メモリ132にロードされたストレージ制御プログラム420に従い、後述の論理ボリューム管理部400、第1の再配置部401、第2の再配置部402、アクセス統計収集部403及び評価部404として機能する。つまりCPU134は、メモリ132に格納されているストレージ制御プログラム420を実行することで、階層化ストレージシステム10全体(特にストレージコントローラ13内の各部)を制御する。
【0028】
本実施形態においてストレージコントローラ13は、
図1に示されているようにホスト20_1乃至20_nから独立して備えられている。しかし、ストレージコントローラ13が、ホスト20_1乃至20_nのいずれか(ホスト20_*)に内蔵されていても構わない。この場合、ストレージコントローラ13(より詳細には、ストレージコントローラ13の機能)が、ホスト20_*の有するオペレーティングシステム(OS)の機能の一部を用いて実現されても構わない。
【0029】
また、ストレージコントローラ13が、ホスト20_*のカードスロットに装着して用いられるカードに備えられていても構わない。また、ストレージコントローラ13の一部がホスト20_*に内蔵され、当該ストレージコントローラ13の残りがカードに備えられていても構わない。また、ホスト20_*と、ストレージコントローラ13と、高速ストレージ装置11及び低速ストレージ装置12の一部または全部とが、1つの筐体に収められていても構わない。
【0030】
図2は、
図1に示される階層化ストレージシステム10における記憶領域の典型的な階層構造を説明するための図である。高速ストレージ装置11及び低速ストレージ装置12は、それぞれ物理ボリューム110及び120を含む。以下の説明では、高速ストレージ装置11の物理ボリューム110を高速物理ボリューム110と呼び、低速ストレージ装置12の物理ボリューム120を低速物理ボリューム120と呼ぶ。
【0031】
高速物理ボリューム110及び低速物理ボリューム120は、管理のために、ストレージコントローラ13によって第1のサイズのチャンク(つまり物理チャンク)に分割される。即ち高速物理ボリューム110及び低速物理ボリューム120の各々は、複数のチャンクを備えている。本実施形態において、第1のサイズ(つまり、物理チャンクのサイズ)は4キロバイト(KB)であり、第2のサイズ(512B)の8倍である。つまり、1チャンクは、8セクタから構成される。勿論、第1のサイズが、4KB以外、例えば4メガバイト(MB)であっても構わない。
【0032】
高速物理ボリューム110内のチャンクの群及び低速物理ボリューム120内のチャンクの群は、
図2に示されるように、ボリュームプール15を用いて管理される。ボリュームプール15は、高速物理ボリューム110内のチャンクの群及び低速物理ボリューム120内のチャンクの群を論理的に収容する(集める)のに用いられる。本実施形態では、ボリュームプール15は、高速ボリュームグループ151及び低速ボリュームグループ152から構成される。高速物理ボリューム110内のチャンクの群はボリュームプール15の高速ボリュームグループ151に集められ、低速ストレージ装置12内のチャンクの群はボリュームプール15の低速ボリュームグループ152に集められる。
【0033】
ボリュームプール15に集められたチャンクの群の例えば一部は、論理ボリューム16に割り当てられる。論理ボリューム16は、管理のために、ストレージコントローラ13によって前述の物理チャンクと同一サイズ(第1のサイズ)のチャンク(つまり論理チャンク)に分割される。即ち論理ボリューム16は、複数のチャンクを備えている。
【0034】
論理ボリューム16は、マッピング領域161及びフリースペース162から構成される。論理ボリューム16のマッピング領域161は、
図2において矢印171及び172で示されるように、ボリュームプール15の高速ボリュームグループ151及び低速ボリュームグループ152から選択された(集められた)チャンクの集合をマッピングする(割り当てる)のに用いられる。フリースペース163は、物理チャンクが割り当てられていない領域を指す。
【0035】
論理ボリューム16の状態は、ホスト20_*からはストレージコントローラ13を介して認識可能である。つまり、ホスト20_*は、高速ストレージ装置11及び低速ストレージ装置12それぞれの物理チャンクが割り当てられた論理ボリューム16を、1つの論理ディスクとして認識可能である。そしてホスト20_*は、論理アドレスを用いて論理ボリューム16にアクセスする場合、当該論理アドレスで指定される論理的な記憶領域にマッピングされた物理的な記憶領域を意識することなく、当該物理的な記憶領域にアクセス可能である。
【0036】
そのためにストレージコントローラ13(より詳細には、ストレージコントローラ13の論理ボリューム管理部400)は、論理ボリューム16内のそれぞれの論理チャンクと、当該それぞれの論理チャンクにマッピングされた物理チャンクとの対応を論理−物理チャンク変換テーブル421(
図4)を用いて管理する。論理−物理チャンク変換テーブル421の各エントリに保持される情報は、一種のアドレス変換情報である。ストレージコントローラ13は、ホスト20_*からリードアクセスまたはライトアクセスのためのI/O要求が送られた場合、当該I/O要求で指定された論理アドレスを、論理−物理チャンク変換テーブル421(更には、後述の物理チャンク管理テーブル422)に基づいて、物理ボリュームID及び物理アドレスに変換する。ストレージコントローラ13は、この物理ボリュームID及び物理アドレスに基づいて、高速ストレージ装置11(高速物理ボリューム110)または低速ストレージ装置12(低速物理ボリューム120)、つまり物理レイヤのストレージ(物理的な記憶領域)にアクセスする。
【0037】
本実施形態では、論理ボリューム16のマッピング領域161に割り当てられた第1の集合及び第2の集合の間で、チャンクを単位にデータが移動される。つまり、高速ストレージ装置11(高速物理ボリューム110)と低速ストレージ装置12(低速物理ボリューム120)との間で、チャンクを単位にデータが移動される。このデータ移動は、ストレージコントローラ13の制御の下で行われる。このようなデータ移動が行われても、論理−物理チャンク変換テーブル421が正しく更新されるならば、ストレージコントローラ13は当該データ移動をホスト20_*に気付かせることなく、当該データ移動を実行できる。
【0038】
図3は、
図2に示される論理ボリューム16の典型的な構成を説明するための図である。なお、
図3では、論理ボリューム16のフリースペース162は省略されている。
図3に示されるように、論理ボリューム16のマッピング領域161に割り当てられるチャンクの集合の一部(以下、第1の集合と称する)は高速物理ボリューム110に存在し、当該チャンクの集合の残り(以下、第2の集合と称する)は低速物理ボリューム120に存在する。
【0039】
さて従来技術では、論理ボリューム16に割り当てられる高速物理ボリューム110内の記憶領域(つまり、第1の集合の領域)は、例えばアクセス頻度統計値(アクセス頻度)が大きい(高い)論理チャンクのデータを格納するのに用いられる。このような高速物理ボリューム110内の記憶領域は、高アクセス頻度領域と呼ばれる。
【0040】
これに対して本実施形態では、論理ボリューム16に割り当てられる、高速物理ボリューム110内の記憶領域は、
図3に示されるように、トライアル領域(以下、T領域と称する)111及び高アクセス頻度領域(以下、HAF領域と称する)112の2つの記憶領域を含む。HAF領域(第1の記憶領域)112は、従来技術と同様に、アクセス頻度統計値が大きい論理チャンクの集合への割り当てに用いられる。つまり、HAF領域112が割り当てられる論理チャンクの条件(以下、第1の条件と称する)は、アクセス頻度統計値がより大きいことである。
【0041】
一方、T領域(第2の記憶領域)111は、アクセス頻度統計値とは異なる尺度に基づいて選択された論理チャンクの集合への再割り当てと、その再割り当ての効果の評価に用いられる。本実施形態において、T領域111が再割り当てされる論理チャンクの集合は、低速物理ボリューム120内の記憶領域(つまり、第2の集合の領域)121が割り当てられている論理ボリューム16内の論理チャンクの群から選択される。
【0042】
つまり、T領域111が再割り当てされる論理チャンクの条件(以下、第2の条件と称する)は、少なくとも低速物理ボリューム120内の記憶領域(第3の記憶領域)121が割り当てられていることである。より詳細には、T領域111が再割り当てされる論理チャンクの条件(以下、第2の条件と称する)は、低速物理ボリューム120内の記憶領域121が割り当てられていて、且つT領域111が未割り当てであったことである。この低速物理ボリューム120内の記憶領域121は、論理ボリューム16のマッピング領域161内の論理チャンク群のうち、アクセス頻度統計値(アクセス頻度)が小さな(低い)論理チャンクのデータを格納するのに用いられる。そこで、この記憶領域121は、低アクセス頻度領域(以下、LAF領域と称する)121と呼ばれる。
【0043】
ストレージコントローラ13(より詳細には、ストレージコントローラ13の論理ボリューム管理部400)は、ホスト20_*からの論理ボリューム作成要求、或いはストレージコントローラ13のユーザインタフェース介してユーザから与えられる論理ボリューム作成要求に基づいて、論理ボリューム16を作成する。この論理ボリューム16の作成に際し、ストレージコントローラ13は、高速ストレージ装置11の高速物理ボリューム110及び低速ストレージ装置12の低速物理ボリューム120を含むボリュームプール15を作成する。前述のように、ボリュームプール15は高速ボリュームグループ151及び低速ボリュームグループ152から構成される。
【0044】
ストレージコントローラ13は、論理ボリューム作成要求に基づき、高速ボリュームグループ151及び低速ボリュームグループ152からそれぞれ第1のチャンクの集合及び第2のチャンクの集合を切り出して、論理ボリューム16のマッピング領域161に割り当てる。
【0045】
論理ボリューム16におけるマッピング領域161及びフリースペース162の割合は、ホスト20_*(またはユーザ)から指定可能である。また、マッピング領域161に割り当てられる第1の集合及び第2の集合の割合も、ホスト20_*(またはユーザ)から指定可能である。また、高速物理ボリューム110におけるT領域111及びHAF領域112の割合も、ホスト20_*(またはユーザ)から指定可能である。更に、論理ボリューム16全体の記憶容量も、予め定められた上限値を超えない範囲で、ホスト20_*(またはユーザ)から指定可能である。
【0046】
図4は、
図1に示されるストレージコントローラ13の典型的な機能構成を主として示すブロック図である。ストレージコントローラ13は、論理ボリューム管理部400、第1の再配置部401、第2の再配置部402、アクセス統計収集部403及び評価部404を備えている。これらの機能要素400乃至404は、
図1に示されるストレージコントローラ13のCPU134がストレージ制御プログラム420を実行することにより実現されるソフトウェアモジュールである。しかし、機能要素400乃至404の少なくとも1つがハードウェアモジュールによって実現されても構わない。
【0047】
メモリ132は、制御プログラム領域410、テーブル領域411及びワーク領域412を含む。制御プログラム領域410は、CPU134によって実行されるストレージ制御プログラム420の少なくとも一部を格納するのに用いられる。このストレージ制御プログラム420は、前述したようにHDD133に予め格納されており、当該ストレージ制御プログラム420の少なくとも一部は、ストレージコントローラ13の起動時に当該HDD133から制御プログラム領域410にロードされる。
【0048】
テーブル領域411は、HDD133に格納されている各種のテーブルの少なくとも一部を格納するのに用いられる。ワーク領域412は、CPU134がストレージ制御プログラム420を実行する際に利用される一時的なデータを格納するのに用いられる。
【0049】
HDD133は、上述のストレージ制御プログラム420に加えて、論理−物理チャンク変換テーブル421、物理チャンク管理テーブル422、論理チャンク管理テーブル423、チャンク履歴管理テーブル424、評価結果管理テーブル425、及びアクセスカウンタテーブル426を格納する。これらのテーブル421乃至426は、例えばストレージコントローラ13の起動時に、HDD133からメモリ132のテーブル領域411にロードされて用いられる。このためメモリ132にロードされたテーブルが更新された場合、その更新がHDD133内の対応するテーブルに適宜反映される。但し、以降の説明では簡略化のために、テーブル421乃至426は、HDD133に格納されている状態で用いられるものとする。
【0050】
図5は、
図4に示される論理−物理チャンク変換テーブル421のデータ構造の例を示す。論理−物理チャンク変換テーブル421は、
図2に示される論理ボリューム16の論理チャンクに対応付けられたエントリを有する。論理−物理チャンク変換テーブル421の各エントリは、論理チャンク番号と物理チャンク番号との対を保持するのに用いられる。論理チャンク番号は、対応する論理チャンク(つまり、論理ボリューム16内の論理チャンク)を示す。物理チャンク番号は、対応する論理チャンクに割り当てられた物理チャンクを示す。
【0051】
本実施形態において階層化ストレージシステム10は、論理ボリューム16を含む複数の論理ボリュームを備えている。但し
図2では、論理ボリューム16以外の論理ボリュームは、作図の都合で省略されている。このように、階層化ストレージシステム10が複数の論理ボリュームを備えている本実施形態では、
図5に示す論理−物理チャンク変換テーブル421を含む複数の論理−物理チャンク変換テーブルが、複数の論理ボリュームにそれぞれ対応付けて用意されている。しかし、論理−物理チャンク変換テーブルのエントリ情報に論理ボリュームIDを含めるならば、複数の論理−物理チャンク変換テーブルに代えて、1つの論理−物理チャンク変換テーブルを用いても良い。論理ボリュームIDは、対応するエントリに保持されている論理チャンク番号の示す論理チャンクを含む論理ボリュームを指す。なお、階層化ストレージシステム10が論理ボリューム16のみを備えていても良い。
【0052】
図6は、
図4に示される物理チャンク管理テーブル422のデータ構造の例を示す。物理チャンク管理テーブル422は、ボリュームプール15に集められた物理チャンクに対応付けられたエントリを有する。物理チャンク管理テーブル422の各エントリは、物理チャンク番号と、物理ボリュームIDと、セクタ番号と、ステータス(ステータスフラグ)との組を保持するのに用いられる。
【0053】
物理チャンク番号は、対応する物理チャンクを示す。物理ボリュームIDは、対応する物理チャンクを含む物理ボリュームを示す。本実施形態では、物理チャンク番号は、対応する物理チャンクがいずれの物理ボリューム(ストレージ装置)に属するかに無関係にユニークである。しかし、物理チャンク番号が、対応する物理チャンクが属する物理ボリューム内でのみユニークであっても構わない。この場合、論理−物理チャンク変換テーブル421のエントリ情報に、論理チャンク番号及び物理チャンク番号に加えて物理ボリュームIDを含めれば良い。物理ボリュームIDは、対応する論理チャンクに割り当てられた物理チャンクが属する物理ボリュームを示す。
【0054】
次にセクタ番号は、対応する物理チャンクを構成するセクタの列の先頭セクタを示す。ステータスは、対応する物理チャンクが割り当てられている論理チャンクに、T領域111内の物理チャンクが割り当てられたことがあるか(ステータス=1の場合)否か(ステータス=0の場合)を示す。
【0055】
図7は、
図4に示される論理チャンク管理テーブル423のデータ構造の例を示す。論理チャンク管理テーブル423は、階層化ストレージシステム10が備えている複数の論理ボリューム(より詳細には、論理ボリューム16を含む複数の論理ボリューム)を構成する全ての論理チャンクにそれぞれ対応付けられたエントリを有する。論理チャンク管理テーブル423の各エントリは、論理チャンク番号と、論理ボリュームIDと、セクタ番号との組を保持するのに用いられる。論理チャンク番号は、対応する論理チャンクを示す。論理ボリュームIDは、対応する論理チャンクを含む論理ボリュームを示す。セクタ番号は、対応する論理チャンクを構成するセクタの列の先頭セクタを示す。
【0056】
図8は、
図4に示されるチャンク履歴管理テーブル424のデータ構造の例を示す。チャンク履歴管理テーブル424は、第2の再配置処理の履歴(以下、チャンク履歴と称する)を管理するのに用いられる。第2の再配置処理とは、低速物理ボリューム120のLAF領域121内の物理チャンクと対応付けられていた論理チャンクに、高速物理ボリューム110のT領域111内の物理チャンクを再割り当てする(対応付ける)処理を指す。第2の再配置処理は、この再割り当ての効果を評価する処理を含む。
【0057】
チャンク履歴管理テーブル424は、チャンク履歴(第2の履歴)に対応付けられたエントリを有する。チャンク履歴管理テーブル424の各エントリは、チャンク履歴番号と、日時情報と、物理チャンク一覧との組を保持するのに用いられる。チャンク履歴番号は、チャンク履歴の取得順を指す。本実施形態では、チャンク履歴番号が小さいほど、より新しいチャンク履歴であることを示す。日時情報は、対応するチャンク履歴が取得された日時を示す。物理チャンク一覧は、対応する第2の再配置処理でT領域111内の物理チャンクの集合が再割り当てされた論理チャンクに、当該再割り当て前にそれぞれ対応付けられていたLAF領域121内の物理チャンクの集合を示す。本実施形態では、T領域111は4000の物理チャンクから構成されている。したがって、物理チャンク一覧は、4000の物理チャンクの集合を示す。
【0058】
図9は、
図4に示される評価結果管理テーブル425のデータ構造の例を示す。評価結果管理テーブル425は、チャンク履歴取得時の第2の再配置処理において実行される評価処理の結果(評価結果)の履歴を管理するのに用いられる。
【0059】
評価結果管理テーブル425は、評価結果の履歴(第1の履歴)に対応付けられたエントリを有する。評価結果管理テーブル425の各エントリは、評価結果番号と、日時情報と、スループット情報との組を保持するのに用いられる。評価結果番号は、評価結果(評価結果の履歴)の取得順を指し、対応するチャンク履歴のチャンク履歴番号に一致する。本実施形態では、評価結果番号が小さいほど、より新しい評価結果であることを示す。日時情報は、対応する評価結果(チャンク履歴)が取得された日時を示す。スループット情報は、対応する評価結果を示す。本実施形態では、対応する評価結果としてスループットが用いられる。このスループットについては後述する。
【0060】
次に、本実施形態で適用される第1の再配置処理について
図10を参照して説明する。
図10は、ストレージコントローラ13(より詳細には、ストレージコントローラ13の第1の再配置部401)によって実行される第1の再配置処理の典型的な手順を説明するためのフローチャートである。第1の再配置処理は、例えば、第1の期間(監視期間)において、チャンク(例えば論理チャンク)毎にアクセス頻度統計情報(アクセス頻度統計値)を取得する処理を含む。第1の再配置処理は更に、取得されたアクセス頻度統計値に基づいて、アクセス頻度が高い論理チャンクに、高速物理ボリューム110のHAF領域112内の物理チャンクを再割り当てする処理を含む。第1の再配置処理は、例えば、第1の期間に相当する周期で定期的に実行される。
【0061】
本実施形態では、第1の再配置処理及び第2の再配置処理は独立して実行される。そのため、第1の再配置処理及び第2の再配置処理は、互いに排他的に実行される。即ち、いずれか一方の再配置処理の実行中は、他方の再配置処理は待ち状態となり、実行中の再配置処理の完了後に、他方の再配置処理の待ち状態が解除される。
【0062】
そこでストレージコントローラ13の第1の再配置部401は、まず第2の再配置処理が実行中であるかを判定する(ステップS1)。もし、第2の再配置処理が実行中であるならば(ステップS1のYes)、第1の再配置部401は第2の再配置処理の完了を待つ。
【0063】
これに対し、第2の再配置処理が実行中でないならば(ステップS1のNo)、第1の再配置部401は、アクセス統計収集部403を起動する。するとアクセス統計収集部403は、第1の期間におけるそれぞれの論理チャンクへのアクセスを監視して、当該それぞれの論理チャンクへの例えばアクセスの頻度を取得する(ステップS2)。より具体的に述べるならば、アクセス統計収集部403は、アクセスカウンタテーブル426を用いて、それぞれの論理チャンクへのアクセスの頻度を、アクセス頻度統計情報(アクセス頻度値)として収集する。このそれぞれの論理チャンクへのアクセスの頻度は、当該それぞれの論理チャンクへのアクセスの状況を示す指標を表す。アクセスカウンタテーブル426の各エントリは、対応する論理チャンクへのアクセスの回数(例えば、データリードの回数とデータライトの回数との合計)を示すアクセスカウントを保持するのに用いられる。このアクセスカウントは、対応する論理チャンクがアクセスされる都度、1インクリメントされる。なおアクセス統計収集部403が、それぞれの論理チャンクへのアクセスのデータ量の総和を、アクセス頻度統計情報として収集しても良い。
【0064】
監視期間が経過すると、即ちアクセス統計収集部403によってアクセス頻度統計情報が取得されると(ステップS2)、第1の再配置部401は、当該アクセス頻度統計情報(アクセスカウンタテーブル426)に基づいて、アクセス頻度が最も高い論理チャンク、つまりアクセスカウント(アクセス頻度統計値)が最大の論理チャンクを選択する(ステップS3)。次に第1の再配置部401は、選択された論理チャンク(以下、第1の論理チャンクと称する)に低速物理ボリューム120(LAF領域121)内の物理チャンクが割り当てられているかを、次のように判定する(ステップS4)。
【0065】
まず第1の再配置部401は、第1の論理チャンクの論理チャンク番号に基づいて論理−物理チャンク変換テーブル421を参照する。そして第1の再配置部401は、第1の論理チャンクに対応付けられている物理チャンクの物理チャンク番号を特定する。次に第1の再配置部401は、特定された物理チャンク番号に基づいて物理チャンク管理テーブル422を参照する。そして第1の再配置部401は、特定された物理チャンク番号と組をなす物理ボリュームIDを特定する。この特定された物理ボリュームIDに基づき、第1の再配置部401は、第1の論理チャンクに低速物理ボリューム120内(つまり、低速領域側)の物理チャンクが割り当てられているかを判定する。
【0066】
もし、第1の論理チャンクに低速物理ボリューム120内の物理チャンクが割り当てられているならば(ステップS4のYes)、第1の再配置部401はステップS5に進む。ステップS5において第1の再配置部401は、HAF領域112(より詳細には、HAF領域112内の物理チャンク)が割り当てられている未選択の論理チャンクの中から、アクセス頻度が最も低い、つまりアクセスカウント(アクセス頻度統計値)が最小の論理チャンクを次のように選択する。まず第1の再配置部401は、HAF領域112を含む高速物理ボリューム110の物理ボリュームIDに基づいて物理チャンク管理テーブル422を参照する。これにより第1の再配置部401は、高速物理ボリューム110の物理ボリュームIDと組をなす物理チャンク番号を特定する。次に第1の再配置部401は論理−物理チャンク変換テーブル421を参照して、特定された物理チャンク番号と組をなす未選択の論理チャンク番号を特定する。次に第1の再配置部401は、アクセスカウンタテーブル426を参照して、特定された論理チャンク番号の示す未選択の論理チャンクの中から、アクセス頻度が最も低い論理チャンク(以下、第2の論理チャンクと称する)を選択する。
【0067】
次に第1の再配置部401は、第1の論理チャンク及び第2の論理チャンク(つまり選択された両チャンク)のデータの配置先を入れ替える(ステップS6)。より具体的に述べるならば、第1の再配置部401は、第1の論理チャンクに割り当てられた、LAF領域121内の物理チャンク(以下、第1の物理チャンクと称する)のデータと、第2の論理チャンクに割り当てられた、HAF領域112内の物理チャンク(以下、第2の物理チャンクと称する)のデータとを入れ替える。つまり第1の再配置部401は、第1の論理チャンクのデータを第2の物理チャンクに再配置し、第2の論理チャンクのデータを第1の物理チャンクに再配置する。
【0068】
次に第1の再配置部401は、上述のデータ配置先の入れ替え(再配置)に基づいて、第1の論理チャンク及び第2の論理チャンクにそれぞれ対応付けられた、論理−物理チャンク変換テーブル421のエントリの情報を更新する(ステップS7)。即ち第1の再配置部401は、上述のデータ配置先の入れ替えが反映されるように、第1の論理チャンク及び第2の論理チャンクにそれぞれ対応付けられた、論理−物理チャンク変換テーブル421のエントリの情報を更新する。より詳細に述べるならば、第1の再配置部401は、第1の論理チャンクに対応付けられた、論理−物理チャンク変換テーブル421のエントリ中の物理チャンク番号を、第1の物理チャンクを示す番号から第2の物理チャンクを示す番号に更新する。同様に第1の再配置部401は、第2の論理チャンクに対応付けられた、論理−物理チャンク変換テーブル421のエントリ中の物理チャンク番号を、第2の物理チャンクを示す番号から第1の物理チャンクを示す番号に更新する。
【0069】
第1の再配置部401はステップS7を実行すると、ステップS8に進む。また、第1の論理チャンクに低速物理ボリューム120内の物理チャンクが割り当てられていない場合にも(ステップS4のNo)、第1の再配置部401はステップS8に進む。ステップS8において第1の再配置部401は、HAF領域112に対応する数の論理チャンクが選択されたかを判定する。HAF領域112に対応する数の論理チャンクとは、当該HAF領域112を構成する物理チャンクの数と同一の数の論理チャンクを指す。
【0070】
もし、HAF領域112に対応する数の論理チャンクが選択されていないならば(ステップS8のNo)、第1の再配置部401はステップS9に進む。ステップS9において第1の再配置部401は、アクセスカウンタテーブル426に基づいて、次にアクセス頻度が高い論理チャンクを、第2の論理チャンクとして選択する。そして第1の再配置部401は、ステップS4に戻る。
【0071】
このようにして第1の再配置部401は、LAF領域121内の物理チャンクが割り当てられていた論理チャンクのうちアクセス頻度が高い論理チャンクのデータの配置先と、HAF領域112に配置されていた論理チャンクのうち、アクセス頻度が低い論理チャンクのデータの配置先とを入れ替える。やがて、HAF領域112に対応する数の論理チャンクが選択されたならば(ステップS8のYes)、第1の再配置部401はステップS10に進む。ステップS10において第1の再配置部401は、アクセス頻度統計情報(つまりアクセスカウンタテーブル426)の初期化が、ユーザインタフェースを介してユーザによって指定されているかを判定する。
【0072】
もし、初期化が指定されているならば(ステップS10のYes)、第1の再配置部401は、アクセス頻度統計情報を初期化して(ステップS10)、第1の再配置処理を終了する。これに対し、初期化が指定されていないならば(ステップS10のNo)、第1の再配置部401は、ステップS10をスキップして第1の再配置処理を終了する。第1の再配置処理は、前述したように、第1の期間に相当する周期で定期的に実行される。
【0073】
上述の説明では、簡略化のために、第1の論理チャンクのアクセス頻度が、第2の論理チャンクのアクセス頻度よりも常に高い場合を想定している。しかし実際には、第1の論理チャンクのアクセス頻度が、第2の論理チャンクのアクセス頻度よりも低い場合もあり得る。このような場合、第1の再配置部401は、ステップS6乃至S8をスキップしてステップS10に進めば良い。
【0074】
次に、本実施形態で適用される第2の再配置処理について
図11及び12を参照して説明する。
図11は、ストレージコントローラ13(より詳細には、ストレージコントローラ13の第2の再配置部402)によって実行される第2の再配置処理の典型的な手順を説明するためのフローチャートである。
図12は、
図11に示される第2の再配置処理において実行される評価処理の典型的な手順を説明するためのフローチャートである。
【0075】
ストレージコントローラ13の第2の再配置部402は、まず第1の再配置処理が実行中であるかを判定する(ステップS21)。もし、第1の再配置処理が実行中であるならば(ステップS21のYes)、第2の再配置部402は第1の再配置処理の完了を待つ。これに対し、第1の再配置処理が実行中でないならば(ステップS21のNo)、第2の再配置部402はステップS22に進む。ステップS22において第2の再配置部402は、第2の再配置処理における初回の再配置(再割り当て)であるかを判定する。
【0076】
もし、第2の再配置処理における初回の再配置であるならば(ステップS22のYes)、第2の再配置部402はステップS23に進む。このように初回の再配置である場合、本実施形態では、T領域111内の物理チャンクのいずれも論理チャンクに割り当てられていない。ステップS23において第2の再配置部402は、例えば、LAF領域121の先頭から、T領域111に対応する数Qの物理チャンクを選択する。T領域111に対応する数Qとは、当該T領域111を構成する物理チャンクの数を指す。ここでは、T領域111は、4,000の物理チャンクを備えており、したがってQは4,000であるものとする。
【0077】
次に第2の再配置部402は、選択されたQ個の物理チャンク(以下、第3の物理チャンクと称する)のデータをT領域111にコピーする(ステップS24)。次に第2の再配置部402は、このコピーに基づいて、論理−物理チャンク変換テーブル421のエントリの情報を更新する(ステップS25)。即ち第2の再配置部402は、論理−物理チャンク変換テーブル421において、選択されたQ個の第3の物理チャンクを対応付ける論理チャンク番号を変更する。より詳細に述べるならば、第2の再配置部402は、論理−物理チャンク変換テーブル421において、選択されたQ個の第3の物理チャンクが、これまで対応付けられていたQ個の論理チャンク(以下、第3の論理チャンクと称する)に対応付ける物理チャンク番号を、第3の物理チャンクを示す番号からT領域111内のQ個の物理チャンク(以下、第4の物理チャンクと称する)を示す番号に更新する。このように第2の再配置部402は、選択されたQ個の第3の物理チャンクにそれぞれ対応付けられているQ個の第3の論理チャンクに、T領域111内のQ個の第4の物理チャンクを対応付けることによって、物理チャンクの再割り当てをする。更に、ステップS25において第2の再配置部402は、第3の物理チャンクに対応付けられている物理チャンク管理テーブル422のエントリ中のステータスを1に設定する。
【0078】
第2の再配置部402はステップS25を実行すると、評価部404を起動する。すると評価部404は、LAF領域121からT領域111への物理チャンクのデータのコピー(ステップS24)の効果を評価する。つまり評価部404は、選択された論理チャンクに割り当てられる物理チャンクを、LAF領域121内の物理チャンクからT領域111内の物理チャンクに変更した再割り当ての効果を、
図12に示されるフローチャートに従って次のように評価する(ステップS26)。
【0079】
まず評価部404は、ブロック(I/Oブロック)のサイズ(第2のサイズ)を設定する(ステップS41)。前述したように、ブロックは、高速ストレージ装置11及び低速ストレージ装置12へのアクセスの最小単位である。次に評価部404は、階層化ストレージシステム10(ストレージコントローラ13)内に用意されているシステム時計から、現在の時刻(つまり、システム時刻)を取得する(ステップS42)。
【0080】
次に評価部404は、論理ボリューム16へのランダムリードアクセスを実行する(ステップS43)。評価部404は、このランダムリードアクセスにおけるスループット[MB/s]を、当該ランダムリードアクセスの開始時点から終了時点までの時間[s]と、当該ランダムリードアクセスでリードされたデータの量[MB]とに基づいて算出する(ステップS44)。そして評価部404は、チャンク履歴管理テーブル424及び評価結果管理テーブル425にエントリ情報を次のように追加する(ステップS45)。
【0081】
まず評価部404は、チャンク履歴番号(=1)と、ステップS42で取得されたシステム時刻(日時)を示す日時情報と、ステップS23で選択されたQ個の第3の物理チャンクの物理チャンク番号とを含むエントリ情報(チャンク履歴情報)を生成する。このとき、チャンク履歴管理テーブル424に、1つ以上の有効なエントリ(例えば、複数のエントリ)が存在するものとする。この場合、第1の再配置部401は、複数のエントリの各々のチャンク履歴情報を後続のエントリに移動し、且つ各チャンク履歴情報中のチャンク履歴番号を1インクリメントする。そして評価部404は、生成されたチャンク履歴情報を、チャンク履歴管理テーブル424の先頭エントリに設定する。なおチャンク履歴番号が、対応するチャンク履歴情報の生成に応じてシーケンシャルに生成され、i番目(i=1,2,3,…)に生成されたチャンク履歴情報が、チャンク履歴管理テーブル424のi番目のエントリに保持される構成であっても良い。
【0082】
また評価部404は、評価結果番号(=1)と、ステップS42で取得されたシステム時刻(日時)を示す日時情報と、ステップS44で算出されたスループットを示すスループット情報とを含むエントリ情報(評価結果情報)を生成する。評価部404は、チャンク履歴情報をチャンク履歴管理テーブル424に追加するのと同様に、生成された評価結果情報を評価結果管理テーブル425に追加する。評価部404は、ステップS45を実行すると、評価処理(ステップS26)を終了する。
【0083】
すると第2の再配置部402は、LAF領域121内に未選択の物理チャンク(つまり、ステップS23で選択されていない物理チャンク)があるかを判定する(ステップS27)。もし、未選択の物理チャンクがあるならば(ステップS27のYes)、第2の再配置部402はステップS22に戻る。ステップS22において第2の再配置部402は、前述したように、第2の再配置処理における初回の再配置であるかを判定する。
【0084】
この例のように初回の再配置でないならば(ステップS22のNo)、次の再配置のために第2の再配置部402はステップS28に進む。ステップS28において第2の再配置部402は、T領域111内の全ての物理チャンク(つまりQ個の第4の物理チャンク)のデータを、低速ストレージ装置12の元の領域に移動する。元の領域とは、直近のステップS24でT領域111内のQ個の物理チャンクにデータがコピーされた際に、当該データが格納されていた、LAF領域121内のQ個の物理チャンク(以下、第5の物理チャンクと称する)の領域、つまり直近のステップS24で実行されたコピーのコピー元を指す。このLAF領域121内の元の領域(つまり、ステップS28で実行される移動の移動先)は、チャンク履歴管理テーブル424の先頭エントリ(つまり、チャンク履歴番号が1のエントリ)のチャンク一覧に基づいて特定される。このように、ステップS28において第2の再配置部402は、現在T領域111内のQ個の第4の物理チャンクが割り当てられているQ個の論理チャンク(以下、第4の論理チャンクと称する)に、LAF領域121内の元の領域を再割り当てする。
【0085】
次に第2の再配置部402は、LAF領域121の後続位置から、Q個の物理チャンクを選択する(ステップS29)。LAF領域121の後続位置とは、ステップS28において、T領域111のデータが移動された領域に後続する位置を指す。次に第2の再配置部402は、初回の再配置においてステップS23を実行した場合と同様に、ステップS24及びS25を次のように実行する。
【0086】
まず第2の再配置部402は、ステップS29で選択されたQ個の物理チャンク(以下、第3の物理チャンクと称する)のデータをT領域111にコピー(再配置)する(ステップS24)。即ち第2の再配置部402は、ステップS29で選択されたQ個の第3の物理チャンクにそれぞれ対応付けられているQ個の論理チャンク(以下、第3の論理チャンクと称する)に、T領域111内のQ個の物理チャンク(第4の物理チャンク)を再割り当てする。
【0087】
次に第2の再配置部402は、上述のコピー(再割り当て)に基づいて、選択されたQ個の第3の物理チャンクに対応付けられた、論理−物理チャンク変換テーブル421のエントリの情報(つまり、Q個の第3の論理チャンクに対応付けられた、論理−物理チャンク変換テーブル421のエントリの情報)を更新する(ステップS25)。より詳細に述べるならば、第2の再配置部402は、Q個の第3の論理チャンクにそれぞれ対応付けられた、論理−物理チャンク変換テーブル421のエントリ中の物理チャンク番号を、第3の物理チャンクを示す番号から第4の物理チャンクを示す番号に更新する。また、ステップS25において第2の再配置部402は、Q個の第4の物理チャンクが割り当てられていたQ個の第4の論理チャンクに対応付けられた、論理−物理チャンク変換テーブル421のエントリの情報も更新する。より詳細に述べるならば、第2の再配置部402は、Q個の第4の論理チャンクにそれぞれ対応付けられた、論理−物理チャンク変換テーブル421のエントリ中の物理チャンク番号を、第4の物理チャンクを示す番号から第5の物理チャンクを示す番号に更新する。
【0088】
これにより、例えば4回目の再配置であれば、まず、T領域111内の全ての物理チャンクのデータが、
図8チャンク履歴管理テーブル424の先頭エントリ中の物理チャンク一覧により示されるLAF領域121内の物理チャンク8,000乃至11,999(つまり、物理チャンク番号が8,000乃至11,999の物理チャンク)に移動される(ステップS28)。つまり、T領域111内の4,000個の物理チャンクが割り当てられていた4,000個の論理チャンクに、物理チャンク8,000乃至11,999がそれぞれ再割り当てされる。
【0089】
次に、LAF領域121内の物理チャンク12,000乃至15,999(つまり、物理チャンク番号が12,000乃至15,999の物理チャンク)のデータがT領域111にコピーされる(ステップS29及びS24)。つまり、LAF領域121内の物理チャンク12,000乃至15,999が割り当てられていた4,000個の論理チャンクに、T領域111内の4,000個の物理チャンクがそれぞれ再割り当てされる。次に、ステップS26及びS27が再び実行される。
【0090】
第2の再配置部402は、前述のステップS22,S28,S29,及びS24乃至27を繰り返す。やがて、LAF領域121内の全ての物理チャンクが選択された結果、未選択の物理チャンクがなくなったならば(ステップS27のNo)、第2の再配置部402はステップS30に進む。ステップS30において第2の再配置部402は、チャンク履歴管理テーブル424及び評価結果管理テーブル425に基づいて、評価が最も高い(つまり、スループットが最大の)物理チャンクの組を次のように選択する(ステップS31)。まず第2の再配置部402は、評価結果管理テーブル425を参照して、スループットが最大の評価結果を示す評価結果番号を特定する。次に第2の再配置部402はチャンク履歴管理テーブル424を参照して、特定された評価結果番号に一致するチャンク履歴番号を含むエントリを特定する。そして第2の再配置部402は、特定されたチャンク履歴管理テーブル424のエントリに設定されている物理チャンク一覧の示す物理チャンクの組(Q個の物理チャンク)を、評価が最も高い物理チャンクの組として選択する。
【0091】
次に第2の再配置部402は、選択されたQ個の物理チャンクのデータをT領域111に再配置(コピー)する(ステップS31)。即ち第2の再配置部402は、選択されたQ個の物理チャンクが割り当てられているQ個の論理チャンクのデータをT領域111に再配置することにより、評価が最も高い再配置の状態を復元する。
図11のフローチャートでは省略されているが、第2の再配置部402は、この再配置(ステップS31)の前後で、それぞれステップS28及びS25に相当する処理を実行する。なお、第2の再配置部402が評価結果管理テーブル425の示す評価結果の一覧を、ユーザインタフェースを介してユーザに提示して、当該評価結果の一覧から所望の評価結果をユーザに選択させても良い。この場合、第2の再配置部402は、ユーザによって選択された評価結果が得られた物理チャンクの組を選択すれば良い。
【0092】
第2の再配置部402はステップS31を実行すると、第2の再配置処理に関するステータス(より詳細には、チャンク履歴管理テーブル424及び評価結果管理テーブル425)を初期化することが、ユーザによって指定されているかを判定する(ステップS32)。もし、ステータスの初期化が指定されているならば(ステップS32のYes)、第2の再配置部402は当該ステータスを初期化して(ステップS33)、第2の再配置処理を終了する。これに対し、ステータスの初期化が指定されていないならば(ステップS32のNo)、第2の再配置部402はステップS33をスキップして、第2の再配置処理を終了する。この場合、次に第2の再配置処理が起動された場合に、現在のチャンク履歴管理テーブル424及び評価結果管理テーブル425が継続して用いられる。
【0093】
本実施形態では、第2の再配置部402は、第2の再配置処理における上述の再配置(例えば、ステップS22,S28,S29,及びS24乃至27)を、定期的(例えば1時間毎)に実行する。しかし、この再配置が実行される周期が、当該評価処理における評価結果が前回よりも良いか否かに基づいて変更されても良い。具体的には、評価結果が前回よりも良い場合、この状態をより長く維持するために、次の再配置が開始される時期を第2の再配置部402が遅らせても良い。逆に、評価結果が前回よりも悪い場合、次の再配置が開始される時期を第2の再配置部402が早めても良い。また、第2の再配置処理が、例えば、ユーザの指示に応じて適宜実行されても、或いは定期的に実行されても構わない。
【0094】
図13及び
図14は、本実施形態における第2の再配置処理の概要を説明するための図である。
図13は、第2の再配置処理における初回の再配置の概要を説明するための図であり、
図14は、第2の再配置処理における初回以外の再配置の概要を説明するための図である。
【0095】
初回の再配置では(ステップS22のYes)、低速物理ボリューム120のLAF領域121の先頭からQ個の物理チャンクが選択される(ステップS23)。そして、選択されたQ個の物理チャンクのデータが、
図13において矢印A1で示されるように、高速物理ボリューム110のT領域111にコピー(再配置)される(ステップS24)。なお、
図13及び14では、作図の都合でQ=5の場合が示されている。
【0096】
初回以外の再配置では(ステップS22のNo)、まずT領域111のデータが、
図14において矢印A11で示されるように、LAF領域121の元の領域に移動(再配置)される(ステップS28)。次に、LAF領域121の後続位置の先頭からQ個の物理チャンクが選択される(ステップS29)。そして、選択されたQ個の物理チャンクのデータが、
図14において矢印A12で示されるように、T領域111にコピー(再配置)される(ステップS24)。
【0097】
このように本実施形態において第2の再配置部402は、アクセス頻度(アクセス頻度統計値)に基づく再配置では、高速物理ボリューム110側に配置されることのないような物理チャンクの組(低速物理ボリューム120側の物理チャンクの組)のデータを、当該高速物理ボリューム110内のT領域111に再配置する(ステップS24)。この状態で評価部404は、この再配置(つまり、LAF領域121からT領域111へのデータの再配置)の効果を評価する(ステップS26)。つまり本実施形態によれば、アクセス頻度に基づく再配置では選択されないような(つまり、効果を確かめることができないような)物理チャンクの組のデータを高速物理ボリューム110内のT領域111に再配置して、その再配置の効果を評価することができる。また本実施形態によれば、このような再配置及び評価を、LAF領域121内の連続するQ個の物理チャンク毎に実行して、その再配置及び評価の履歴を、それぞれチャンク履歴管理テーブル424及び評価結果管理テーブル425に記録する。よって本実施形態によれば、チャンク履歴管理テーブル424及び評価結果管理テーブル425に基づいて、評価の最も高い配置に対応するQ個の物理チャンクを特定し、当該特定されたQ個の物理チャンクのデータをT領域111に再配置(復元)することができる。これにより、階層化ストレージシステム10の性能をより一層向上することができる。
【0098】
なお評価部404が、LAF領域121からT領域111への論理チャンクのデータの再配置の効果を評価するのに、論理ボリューム16へのランダムリードアクセスに代えて、論理ボリューム16内の任意の記憶領域(第4の記憶領域)へのシーケンシャルリードアクセスを実行しても良い。この場合、評価部404は、シーケンシャルリードアクセスにおけるスループットを評価結果として取得すれば良い。ここで、任意の記憶領域として、シーケンシャルリードアクセスの性能向上が特に要求される記憶領域、例えば特定のバックアップデータが格納されている記憶領域が指定されても良い。また、上述の任意の記憶領域が、論理ボリューム16全体であっても構わない。更に評価部404が、上述のランダムリードアクセスとシーケンシャルリードアクセスとをそれぞれ実行して、当該両アクセスにおけるスループットの例えば平均値を評価結果として取得しても良い。
【0099】
<変形例>
次に前記実施形態の変形例について説明する。前記実施形態では、第2の配置処理において、低速物理ボリューム120のLAF領域121から、Q個の物理チャンクを単位に、物理チャンクがシーケンシャルに選択される。そしてQ個の物理チャンクが選択される都度、当該選択されたQ個の物理チャンクのデータが高速物理ボリューム110のT領域111に再配置される。これに対して本変形例では、T領域111にデータが再配置されるQ個の物理チャンクを、前記実施形態と異なる方法で選択する。
【0100】
まず、アクセス頻度に基づいて、低速物理ボリューム120のLAF領域121内の物理チャンクから高速物理ボリューム110のHAF領域112内の物理チャンクにデータが配置(コピー)されるものとする。このような場合におけるLAF領域121内の物理チャンクを、高アクセス頻度物理チャンクと称する。本変形例の特徴は、新たにHAF領域112からT領域111にデータが再配置された高アクセス頻度物理チャンク毎に、その周辺のQ個の物理チャンクのデータをT領域111に再配置することにある。
【0101】
以下、本変形例で適用される第2の再配置処理(つまり、第2の再配置処理の変形例)について、
図15を参照して説明する。
図15は、本変形例において第2の再配置部402によって実行される第2の再配置処理の典型的な手順を説明するためのフローチャートである。本変形例では、第2の再配置処理は、第1の再配置処理の終了に応じて実行されるものとする。また、第1の再配置処理において第1の再配置部401は、LAF領域121からHAF領域112に新たにデータが配置された物理チャンクの一覧を生成する。
【0102】
第2の再配置処理において第2の再配置部402は、第1の再配置部401によって生成された物理チャンクの一覧を取得する(ステップS51)。次に第2の再配置部402は、変数p及びqを初期値1に設定する(ステップS52)。変数pは、LAF領域121におけるi番目の物理チャンクCHK_iを基準とする物理チャンクの相対位置を示す。例えば、物理チャンクCHK_i−p及びCHK_i+pは、LAF領域121におけるそれぞれi−p番目及びi+p番目の物理チャンクを示す。つまり物理チャンクCHK_i−p及びCHK_i+pは、物理チャンクCHK_iに対してそれぞれpチャンク先行及び後続する。変数qは、T領域111における物理チャンクの相対位置を示す。例えば、物理チャンクCHK_qは、T領域111におけるq番目の物理チャンクを示す。
【0103】
次に第2の再配置部402は、取得された物理チャンクの一覧に基づいて、物理チャンク(第6の物理チャンク)CHK_iを選択する(ステップS53)。次に第2の再配置部402は、選択された物理チャンクCHK_iと変数pとに基づいて、LAF領域121から物理チャンクCHK_i−pを選択する(ステップS54)。次に第2の再配置部402は、選択された物理チャンクCHK_i−pに対応付けられた物理チャンク管理テーブル422のエントリ中のステータスを参照して、当該ステータス(つまり、物理チャンクCHK_i−pのステータス)が未配置を示しているかを判定する(ステップS55)。
【0104】
もし、未配置であるならば(ステップS55のYes)、第2の再配置部402は、T領域111からq番目の物理チャンクCHK_qを選択する(ステップS56)。次に第2の再配置部402は、選択された物理チャンクCHK_qのデータを、前記実施形態におけるステップS28と同様に、低速ストレージ装置12(低速物理ボリューム120)内の元の領域に移動する(ステップS57)。
【0105】
次に第2の再配置部402は、選択された物理チャンクCHK_i−pのデータを選択された物理チャンクCHK_qにコピーする(ステップS58)。このように第2の再配置部402は、物理チャンク(第3の物理チャンク)CHK_i−pのデータをT領域111内の物理チャンク(第4の物理チャンク)CHK_qに再配置する。つまり第2の再配置部402は、物理チャンクCHK_i−pが割り当てられていた論理チャンク(第3の論理チャンク)に、物理チャンクCHK_qを再割り当てする。
【0106】
次に第2の再配置部402は、上述のデータ移動(ステップS57)及びデータコピー(ステップS58)が反映されるように論理−物理チャンク変換テーブル421を更新する(ステップS59)。ステップS59において第2の再配置部402は、物理チャンクCHK_i−pに対応付けられている物理チャンク管理テーブル422のエントリ中のステータスを1に設定する。次に第2の再配置部402は、変数qを1インクリメントする(ステップS60)。そして第2の再配置部402は、インクリメントされた変数qがQを超えているかを判定する(ステップS61)。Qは前述したように、T領域111における物理チャンクの数を示す。
【0107】
もし、インクリメントされた変数qがQを超えていないならば(ステップS61のNo)、第2の再配置部402は、次の物理チャンクを選択するためにステップS62に進む。また、物理チャンクCHK_i−pのステータスが配置済みを示している場合にも(ステップS55のNo)、第2の再配置部402はステップS62に進む。ステップS62において第2の再配置部402は、LAF領域121から物理チャンクCHK_i+pを選択する。次に第2の再配置部402は、選択された物理チャンクCHK_i+pに対応付けられた物理チャンク管理テーブル422のエントリ中のステータスを参照して、当該ステータス(つまり、物理チャンクCHK_i+pのステータス)が未配置を示しているかを判定する(ステップS63)。
【0108】
もし、未配置であるならば(ステップS63のYes)、第2の再配置部402は、T領域111からq番目の物理チャンクCHK_qを選択する(ステップS64)。次に第2の再配置部402は、選択された物理チャンクCHK_qのデータを、低速ストレージ装置12内の元の領域に移動する(ステップS65)。
【0109】
次に第2の再配置部402は、選択された物理チャンクCHK_i+pのデータを物理チャンクCHK_qにコピーする(ステップS66)。このように第2の再配置部402は、物理チャンクCHK_i+pのデータをT領域111内の物理チャンクCHK_qに再配置する。つまり第2の再配置部402は、物理チャンクCHK_i+pが割り当てられていた論理チャンクに、物理チャンクCHK_qを再割り当てする。
【0110】
次に第2の再配置部402は、上述のデータ移動(ステップS65)及びデータコピー(ステップS66)が反映されるように論理−物理チャンク変換テーブル421を更新する(ステップS67)。ステップS67において第2の再配置部402は、物理チャンクCHK_i+pに対応付けられている物理チャンク管理テーブル422のエントリ中のステータスを1に設定する。次に第2の再配置部402は、変数qを1インクリメントする(ステップS68)。そして第2の再配置部402は、インクリメントされた変数qがQを超えているかを判定する(ステップS69)。
【0111】
もし、インクリメントされた変数qがQを超えていないならば(ステップS69のNo)、第2の再配置部402は、次の物理チャンクを選択するためにステップS70に進む。また、物理チャンクCHK_i+pのステータスが配置済みを示している場合にも(ステップS63のNo)、第2の再配置部402はステップS70に進む。ステップS70において第2の再配置部402は、変数pを1インクリメントする。そして、第2の再配置部402はステップS54に戻り、ステップS43で選択された物理チャンクCHK_iとインクリメントされた変数pとに基づいて、LAF領域121から物理チャンクCHK_i−pを選択する。このようにして第2の再配置部402は、インクリメントされた変数qがQを超えるまで(ステップS61またはS69のYes)、ステップS54乃至S70を繰り返す。
【0112】
やがて、インクリメントされた変数qがQを超えたものとする(ステップS61またはS69のYes)。この場合、第2の再配置部402は、LAF領域121に含まれている、物理チャンクCHK_iの周辺(つまり前後)のQ個の物理チャンクのデータが、T領域111に再配置されたものと判断する。そこで第2の再配置部402は、この再配置の効果を評価するために、前記実施形態における評価処理(ステップS26)と同様の評価処理を実行する(ステップS71)。
【0113】
第2の再配置部402は、評価処理(ステップS71)を実行すると、ステップS51で取得された物理チャンクの一覧の中に未選択の物理チャンクがあるかを判定する(ステップS72)。もし、未選択の物理チャンクがあるならば(ステップS72のYes)、第2の再配置部402はステップS53に戻って、未選択の物理チャンクCHK_iを選択する。このようにして第2の再配置部402は、未選択の物理チャンクがなくなるまで(ステップS72のNo)、ステップS53乃至S72を繰り返す。
【0114】
やがて、未選択の物理チャンクがなくなったものとする(ステップS72のNo)、この場合、第2の再配置部402は、
図11のステップS30以降の処理を実行する。なお、最初に物理チャンクCHK_iが選択された場合、第2の再配置部402は、当該物理チャンクCHK_iの周辺のQ個の物理チャンクのデータをT領域111に再配置する前に、当該T領域111のデータを低速ストレージ装置12の元の領域に移動する必要はない。但し、
図15のフローチャートでは簡略化のために、最初に物理チャンクCHK_iが選択された場合の処理手順は省略されている。
【0115】
また、
図15のフローチャートでは省略されているが、物理チャンクCHK_i−pがLAF領域121から外れている場合、第2の再配置部402はステップS55乃至S61をスキップする。同様に、物理チャンクCHK_i+pがLAF領域121から外れている場合、第2の再配置部402はステップS63乃至S69をスキップする。また、物理チャンクCHK_i−p及びCHK_i+pがいずれもLAF領域121から外れている場合、第2の再配置部402は、T領域111内の再配置済みのデータをLAF領域121の元の領域に戻して、
図11のステップS30以降の処理を実行する。
【0116】
図16は、本変形例における第2の再配置処理の概要を説明するための図である。
図16において、LAF領域121内の物理チャンクCHK_iが選択されたものとする(ステップS53)。物理チャンクCHK_iのデータは、今回の第2の再配置処理に先行する第1の配置処理で、HAF領域112内の物理チャンクCHK_jのデータと、
図16において矢印A21で示されるように入れ替えられている(ステップS6)。
【0117】
T領域111内のQ個の物理チャンクのデータは、
図16において矢印A22で示されるように、LAF領域121内の元の領域に移動(再配置)される(ステップS57及びS65)。一方、選択された物理チャンクCHK_iの周辺のQ個の物理チャンクのデータは、
図16において矢印A23及びA24で示されるように、T領域111内のQ個の物理チャンクにコピー(再配置)される(ステップS58及びS66)。
【0118】
このように本変形例において第2の再配置部402は、第1の再配置部401によって新たにLAF領域121からHAF領域112にデータが再配置された高アクセス頻度物理チャンク毎に、その周辺のQ個の物理チャンクを選択する。そして第2の再配置部402は、選択されたQ個の物理チャンクのデータをT領域111に再配置する。つまり第2の再配置部402は、高アクセス頻度物理チャンク毎に、その周辺のQ個の物理チャンクのデータをT領域111に再配置する。この状態で評価部404は、この再配置の効果を評価する(ステップS71)。よって、本変形例によれば、LAF領域121からQ個の物理チャンクを単位に、物理チャンクがシーケンシャルに選択される前記実施形態と比較して、再配置の効果がより一層期待される物理チャンクの組を選択することができる。
【0119】
以上説明した少なくとも1つの実施形態によれば、アクセス頻度が低いチャンクにも高速領域が割り当てられる機会を与えて、その割り当てがシステム性能に及ぼす効果を評価することができる。
【0120】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
実施形態によれば、階層化ストレージシステムは、第1のストレージ装置と、前記第1のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第2のストレージ装置と、ストレージコントローラとを備える。前記ストレージコントローラは、第1の再配置部と、第2の再配置部とを備える。前記第1の再配置部は、前記第2のストレージ装置の第3の記憶領域が割り当てられている第1の論理チャンクのデータの配置先と、前記第1のストレージの第1の記憶領域が割り当てられていて、且つ前記第1の論理チャンクよりもアクセス頻度統計値が小さい第2の論理チャンクのデータの配置先とを入れ替える。第2の再配置部は、前記第3の記憶領域が割り当てられている論理チャンクの組に、前記第1のストレージ装置の第2の記憶領域を再割り当てする。