JP5362145B1 - 論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法 - Google Patents

論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法 Download PDF

Info

Publication number
JP5362145B1
JP5362145B1 JP2013517503A JP2013517503A JP5362145B1 JP 5362145 B1 JP5362145 B1 JP 5362145B1 JP 2013517503 A JP2013517503 A JP 2013517503A JP 2013517503 A JP2013517503 A JP 2013517503A JP 5362145 B1 JP5362145 B1 JP 5362145B1
Authority
JP
Japan
Prior art keywords
chunk
state
access
storage device
status
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.)
Active
Application number
JP2013517503A
Other languages
English (en)
Other versions
JPWO2014155666A1 (ja
Inventor
史郎 中瀬
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Application granted granted Critical
Publication of JP5362145B1 publication Critical patent/JP5362145B1/ja
Publication of JPWO2014155666A1 publication Critical patent/JPWO2014155666A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/122Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

実施形態によれば、ストレージコントローラのマッピング管理部は、第1のチャンクへのアクセスの状況が高速アクセスを必要とする第1の状況で、且つ前記第1のチャンクが、前記第1のチャンクの第1の論理アドレスが第1のストレージ装置と比較して低速で且つ大容量の第2のストレージ装置側の第1の物理アドレスにマッピングされる第2の状態にあるならば、前記第1のチャンクを前記第2の状態から第3の状態に変更する。これにより前記第1の論理アドレスは、前記第1のストレージ装置側の第2の物理アドレス及び前記第2のストレージ装置側の前記第1の物理アドレスの両方にマッピングされる。

Description

本発明の実施形態は、論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法に関する。
近年、アクセス速度の異なる第1及び第2のストレージ装置を備えたストレージシステムが開発されている。ここで、第1のストレージ装置は高速且つ小容量であり、第2のストレージ装置は、第1のストレージ装置と比較して低速且つ大容量であるものとする。ストレージシステムは、第1のストレージ装置(以下、高速ストレージ装置と称する)及び第2のストレージ装置(以下、低速ストレージ装置と称する)を階層的に組み合わせることにより実現される。そこで、ストレージシステムは、階層化ストレージシステムとも呼ばれる。
ストレージシステムは、ストレージコントローラを更に備えている。ストレージコントローラは、ホストコンピュータ(以下、ホストと称する)からの読み出し要求または書き込み要求に応じて、高速ストレージ装置または低速ストレージ装置にアクセスする。一般に論理ユニット(つまり論理ボリューム)は、一定サイズを有する複数のデータの塊に分割して管理される。このようなデータの塊はチャンクと呼ばれる。論理ユニットとは、ホストによって論理的なストレージドライブとして認識される記憶領域を指す。論理ユニット内のチャンクの集合のうち、少なくともホストによって利用されるチャンクの論理アドレスは、高速ストレージ装置または低速ストレージ装置いずれかの物理記憶領域の物理アドレスにマッピングされる。つまりホストによって利用されるチャンクは、高速ストレージ装置または低速ストレージ装置いずれかにマッピングされる。
ストレージコントローラは、チャンク毎に、当該チャンクへのアクセスの状況を監視する。このアクセスの状況を表す指標として、一定期間(監視期間)におけるチャンク毎のアクセス頻度(使用頻度)またはアクセスデータ量の総和に代表されるアクセス統計情報が用いられるのが一般的である。
ストレージコントローラは、低速ストレージ装置側の物理記憶領域が割り当てられているチャンク毎のアクセスの状況(アクセス統計情報)に基づき、高速アクセスが必要なチャンクを選択する。つまりストレージコントローラは、アクセス頻度が高いまたはアクセスデータ量が多いチャンクを、高速アクセスが必要なチャンクとして選択する。このような高速アクセスが必要なチャンクのアクセス状況を第1の状況と称する。
ここで、第1の監視期間におけるチャンク毎のアクセスの状況に基づき、第1のチャンクが選択されたものとする。また、第1のチャンクの第1の論理アドレスが、低速ストレージ装置の第1の物理記憶領域の第1の物理アドレスにマッピングされているものとする。
この場合、ストレージコントローラは第1のチャンクへの高速アクセスを実現するために、第1のチャンクのマッピング状態を次のように変更する。即ちストレージコントローラは、第1のチャンクの第1の論理アドレスを高速ストレージ装置の第2の物理記憶領域の第2の物理アドレスに再マッピングする。つまりストレージコントローラは、第1のチャンクのマッピング先を低速ストレージ装置側から高速ストレージ装置側に変更する。同時にストレージコントローラは、第1の物理記憶領域のデータを第2の物理記憶領域に移動し、しかる後に第1の物理記憶領域を解放する。以後、ホストから第1のチャンクへのアクセスが要求された場合、ストレージコントローラは、第2の物理記憶領域にアクセスする。これにより、第1のチャンクへのアクセス要求(つまり、アクセス頻度が高いまたはアクセスデータ量が多いチャンクへのアクセス要求)を、再マッピング前よりも高速に実行することができる。
またストレージコントローラは、高速ストレージ装置側の物理記憶領域が割り当てられているチャンク毎のアクセスの状況(アクセス統計情報)に基づき、高速アクセスが不要なチャンクを選択する。つまりストレージコントローラは、アクセス頻度が低いまたはアクセスデータ量が少ないチャンクを、高速アクセスが不要なチャンクとして選択する。このような高速アクセスが不要なチャンクのアクセス状況を第2の状況と称する。
ここで、第1のチャンクが高速ストレージ装置側に再マッピングされた後、第1の監視期間の次の第2の監視期間における第1のチャンクのアクセス状況が第2の状況から第1の状況に変化したものとする。この場合、ストレージコントローラは、低速ストレージ装置の第3の物理記憶領域を取得して、第1のチャンクのマッピング先を再び低速ストレージ装置側に変更する。同時にストレージコントローラは、第2の物理記憶領域のデータを第3の物理記憶領域に移動し、しかる後に第2の物理記憶領域を解放する。以後、ホストから第1のチャンクへのアクセスが要求された場合、ストレージコントローラは、第3の物理記憶領域にアクセスする。
特開2007−4710号公報
上述のように、再マッピングされるべきチャンクは、監視期間が経過する毎に選択される。ところが、第1の監視期間における第2のチャンクへのアクセスの状況が次の第2の監視期間においても同様であるとは必ずしも限らない。例えば、第2のチャンクへのアクセスの状況が、第1の状況と第2の状況との境界近傍にあるものとする。このような第2のチャンクでは、再マッピングが頻繁に実行される可能性が高い。つまり、第2のチャンクのマッピング状態が頻繁に変更されて、低速ストレージ装置から高速ストレージ装置へのデータ移動と、高速ストレージ装置から低速ストレージ装置へのデータ移動とが頻繁に発生する可能性が高い。このような現象を、状態遷移の振動と称する。
また、通常は第2の状況にある第3のチャンクのアクセスの状況が、例えば、単一の監視期間だけ第1の状況に変化した場合、次のようなマッピング状態の遷移も発生する。つまり、第3のチャンクが一時的に高速ストレージ装置(より詳細には、高速ストレージ装置の物理記憶領域)にマッピングされ、その後、再び低速ストレージ装置にマッピングされるケースも発生する。その逆に、通常は第1の状況にある第4のチャンクのアクセスの状況が、単一の監視期間だけ第2の状況に変化した場合、次のようなマッピング状態の遷移も発生する。つまり、第4のチャンクが一時的に低速ストレージ装置にマッピングされ、その後、再び高速ストレージ装置にマッピングされるケースも発生する。ストレージコントローラが、これらのケースを予測することは難しい。
マッピング状態の遷移時には、上述のようにデータの移動が発生する。つまり、マッピング状態の遷移の対象となるチャンク全体について、低速ストレージ装置から高速ストレージ装置へのデータの移動、または高速ストレージ装置から低速ストレージ装置へのデータの移動が発生する。高速ストレージ装置へのデータの移動は、低速ストレージ装置からのデータの読み出しを伴い、低速ストレージ装置へのデータの移動は、低速ストレージ装置へのデータの書き込みを伴う。このため、監視期間毎に実行されるマッピング状態変更処理において、対象となるチャンクの数が多くなると、低速ストレージ装置へのアクセスに多大な時間を要し、全体の処理時間が長くなる。
本発明が解決しようとする課題は、論理アドレスと物理アドレスとの間のマッピング状態の変更に要する処理時間を短縮することができる、ストレージシステム、ストレージコントローラ及び方法を提供することにある。
実施形態によれば、ストレージシステムは、第1のストレージ装置と、第2のストレージ装置と、ストレージコントローラとを具備する。前記第2のストレージ装置は、前記第1のストレージ装置と比較して低速で且つ大容量である。前記ストレージコントローラは、前記第1のストレージ装置へのアクセス及び前記第2のストレージ装置へのアクセスを制御する。前記ストレージコントローラは、マッピング管理部と、アドレス変換部と、アクセスコントローラとを具備する。前記マッピング管理部は、論理ユニット内の第1のサイズの各チャンクが、前記チャンクの論理アドレスが前記第1のストレージ装置内の物理記憶領域の物理アドレスに第1のタイプのマッピング情報によってマッピングされる第1の状態、前記論理アドレスが前記第2のストレージ装置内の物理記憶領域の物理アドレスに前記第1のタイプのマッピング情報によってマッピングされる第2の状態、または前記論理アドレスが前記第1のストレージ装置内の物理記憶領域の物理アドレスに前記第1のタイプのマッピング情報によってマッピングされ且つ前記第2のストレージ装置内の物理記憶領域の物理アドレスに第2のタイプのマッピング情報によってマッピングされる第3の状態のいずれにあるかを管理する。前記アドレス変換部は、ホスト装置からの読み出し要求または書き込み要求の指定する論理アドレスを、前記第1のタイプのマッピング情報によってマッピングされた前記第1のストレージ装置または前記第2のストレージ装置内の物理記憶領域の物理アドレスに変換する。前記アクセスコントローラは、前記変換された物理アドレスに基づいて前記第1のストレージ装置または前記第2のストレージ装置にアクセスする。前記マッピング管理部は、前記論理ユニット内のチャンク毎に当該チャンクへのアクセスの状況を監視する。前記マッピング管理部は、第1のチャンクへのアクセスの状況が高速アクセスを必要とする第1の状況で、且つ前記第1のチャンクが前記第2の状態にあるならば、前記第1のチャンクを前記第2の状態から前記第3の状態に変更する。前記マッピング管理部は、前記第2の状態から前記第3の状態への変更の後も前記第1の状況が継続しているならば、前記第1のチャンクを前記第3の状態から前記第1の状態に変更する。前記マッピング管理部は、前記第2の状態から前記第3の状態への変更の後、前記第1のチャンクへのアクセスの状況が前記高速アクセスを不要とする第2の状況に変化したならば、前記第1のチャンクを前記第3の状態から前記第2の状態に変更する。
図1は、実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。 図2は、図1に示されるストレージコントローラの典型的な機能構成を主として示すブロック図である。 図3は、論理ユニットがチャンクの集合を備えている例を示す図である。 図4は、同実施形態で適用される3種のマッピング状態の例を説明するための図である。 図5は、同実施形態で適用される3種のマッピング状態の例を説明するための図である。 図6は、アドレス変換情報及びビットマップのデータ構造例を示す図である。 図7は、アドレス変換情報に含まれる逆変換テーブルのデータ構造例を示す図である。 図8は、遷移候補リストのデータ構造例を示す図である。 図9は、同実施形態における読み出し処理の典型的な手順を説明するためのフローチャートである。 図10は、同実施形態における書き込み処理の典型的な手順を説明するためのフローチャートである。 図11は、同実施形態におけるマッピング状態変更処理の典型的な手順を説明するためのフローチャートの一部を示す図である。 図12は、同マッピング状態変更処理の典型的な手順を説明するためのフローチャートの残りを示す図である。 図13は、同実施形態における第1の状態変更処理の典型的な手順を説明するためのフローチャートである。 図14は、同実施形態における第2の状態変更処理の典型的な手順を説明するためのフローチャートである。 図15は、同実施形態における第3の状態変更処理の典型的な手順を説明するためのフローチャートである。 図16は、同実施形態における第4の状態変更処理の典型的な手順を説明するためのフローチャートである。
以下、各種実施形態につき図面を参照して説明する。
図1は、実施形態に係るコンピュータシステムの典型的なハードウェア構成を示すブロック図である。図1に示されるコンピュータシステムは、ストレージシステム10及びホストコンピュータ(以下、ホストと称する)20から構成される。ストレージシステム10は、ホストインタフェースバス30を介してホスト20と接続されている。本実施形態においてホストインタフェースバス30は、ファイバチャネル(FC)である。しかしホストインタフェースバス30が、スモールコンピュータシステムインタフェース(SCSI)、シリアルアタッチドSCSI(SAS)、インターネットSCSI(iSCSI)、イーサネット(登録商標)、或いはシリアルATアタッチメント(SATA)のような、FC以外のインタフェースバスであっても構わない。
ホスト20は、サーバ、或いはクライアントパーソナルコンピュータ(クライアントPC)のような物理計算機である。ホスト20内では、ストレージシステム10内のデータにアクセスするためのアプリケーションプログラムが動作する。このアプリケーションプログラムに従い、ホスト20はホストインタフェースバス30を介してストレージシステム10を利用する。
ストレージシステム10は、高速ストレージ装置(第1のストレージ装置)11、低速ストレージ装置(第2のストレージ装置)12及びストレージコントローラ13を備えている。高速ストレージ装置11は、例えば、高速で且つ低容量のフラッシュストレージ装置から構成される。低速ストレージ装置12は、例えば、高速ストレージ装置11と比較して低速で且つ大容量のハードディスクドライブ(HDD)アレイ装置から構成される。このHDDアレイ装置(つまり、低速ストレージ装置12として用いられるHDDアレイ装置)は、例えば、複数のHDDを備えたRAID(Redundant Arrays of Inexpensive DisksまたはRedundant Arrays of Independent Disks)構成のストレージ装置である。
一方、フラッシュストレージ装置(つまり、高速ストレージ装置11として用いられるフラッシュストレージ装置)は、例えば、複数のフラッシュメモリが搭載されたメモリボードの群を備えたRAID構成のストレージ装置である。本実施形態では、メモリボードの群の各々はHDDとの互換性を有していないものとする。しかし、メモリボードの群の各々に代えて、HDDとの互換性を有するソリッドステートドライブ(SSD)が用いられても構わない。
高速ストレージ装置11及び低速ストレージ装置12は、ストレージインタフェースバス14を介してストレージコントローラ13と接続されている。本実施形態においてストレージインタフェースバス14はFC(ファイバチャネル)である。しかしストレージインタフェースバス14が、ホストインタフェースバス30と同様に、FC以外のインタフェースバスであっても構わない。
ストレージコントローラ13は、ホスト20から論理アドレスの指定による読み出し要求または書き込み要求を受け付ける。ストレージコントローラ13は、指定された論理アドレスを、アドレス変換機能により、当該論理アドレスがマッピングされたストレージ装置内の物理記憶領域を示す物理アドレス(より詳細には、ストレージ装置の装置番号及び物理アドレス)に変換する。ストレージコントローラ13は、この物理アドレスに基づいて、高速ストレージ装置11または低速ストレージ装置12にアクセスする。
ストレージコントローラ13は、CPU131、メモリ132及びHDD133を備えている。CPU131は、後述する制御プログラム領域132aに格納されている制御プログラムのプログラムコードに従い、ストレージコントローラ13に要求される処理を実行する。
メモリ132は、例えば、複数のDRAMを用いて構成される揮発性メモリである。メモリ132は、高速ストレージ装置11よりも更に高速である。HDD123は、ローカルなストレージ装置であり、後述する制御プログラム及びアドレス変換情報を格納するのに用いられる。なお、HDD123に代えて、複数のフラッシュメモリが搭載されたストレージ装置を用いることも可能である。
メモリ132は、制御プログラム領域132a、ワーク領域132b、キャッシュメモリ領域132c、アドレス変換情報領域132d及びライト位置情報領域132eを含む。制御プログラム領域132aは、CPU131によって実行される制御プログラムを格納するのに用いられる。この制御プログラムは、HDD133に予め格納されており、ストレージコントローラ13の起動時に当該HDD133から制御プログラム領域132aにロードされる。
ワーク領域132bは、CPU131が制御プログラムを実行する際に利用される一時的なデータを格納するのに用いられる。キャッシュメモリ領域132cは、高速ストレージ装置11または低速ストレージ装置12から読み出されたデータを一時格納するためのキャッシュメモリとして用いられる。
アドレス変換情報領域132dは、アドレス変換情報を格納するのに用いられる。ライト位置情報領域132eは、ライト位置情報を格納するのに用いられる。アドレス変換情報及びライト位置情報については後述する。
本実施形態においてストレージコントローラ13は、図1に示されているように、ホスト20から独立して備えられている。しかし、ストレージコントローラ13が、ホスト20に内蔵されていても構わない。この場合、ストレージコントローラ13(より詳細には、ストレージコントローラ13の機能)が、ホスト20の有するオペレーティングシステム(OS)の機能の一部を用いて実現されても構わない。
また、ストレージコントローラ13が、ホスト20のカードスロットに装着して用いられるカードに備えられていても構わない。また、ストレージコントローラ13の一部がホスト20に内蔵され、当該ストレージコントローラ13の残りがカードに備えられていても構わない。また、ホスト20と、ストレージコントローラ13と、高速ストレージ装置11及び低速ストレージ装置12の一部または全部とが、1つの筐体に収められていても構わない。
図2は、図1に示されるストレージコントローラ13の典型的な機能構成を主として示すブロック図である。ストレージコントローラ13は、論理ユニット管理部134、アドレス変換部135、アクセス統計収集部136及びアクセスコントローラ137を備えている。本実施形態において上述の機能要素134乃至137は、図1に示されるストレージコントローラ13のCPU131が制御プログラムを実行することにより実現されるソフトウェアモジュールである。しかし、機能要素134乃至137の一部または全部がハードウェアモジュールによって実現されても構わない。
論理ユニット管理部134は、1つ以上の論理ユニットを管理する。論理ユニットとは、ホスト20によって論理的なストレージドライブとして認識される記憶領域を指す。本実施形態では、説明の簡略化のために、1つの論理ユニットLU(図3参照)が論理ユニット管理部134によって管理されるものとする。論理ユニット管理部134は、論理ユニットLUの記憶領域(より詳細には、論理記憶領域)全体を第1のサイズ(例えば、4メガバイト)のチャンク(より詳細には、論理チャンク)CHKに分割して管理する。つまり、論理ユニットLUはチャンクCHKの集合を備えている。この場合、高速ストレージ装置11及び低速ストレージ装置12の記憶領域全体も、チャンクCHKと同一サイズの物理記憶領域PSAに分割して管理される。
図3は、論理ユニットLUがチャンクCHK1乃至CHK10を含むチャンクCHKの集合を備えている例を示す。本実施形態では、ストレージシステム10が、ブロック単位でアクセスされるブロックデバイスとして機能する場合を想定している。このため、各チャンクCHKは、第2のサイズのブロックに分割して管理される。この第2のサイズは、第1のサイズ(4メガバイト)のn分の1(nは1より大きい整数)である。本実施形態において、第2のサイズは512バイトであり、したがってnは8,192(4メガバイト/512バイト)である。つまり、各チャンクCHKは、8,192ブロックを備えている。
再び図2を参照する。論理ユニット管理部134は、高速ストレージ装置11及び低速ストレージ装置12の記憶領域を仮想化することにより、論理ユニットLUを定義(構築)する。本実施形態において、論理ユニットLUは、高速ストレージ装置11及び低速ストレージ装置12の容量の総和よりも大容量である。論理ユニットLUは、論理ボリュームとも呼ばれる。ストレージシステム10を利用するホスト20のような装置からの読み出し/書き込みは、この論理ユニットLUを対象に実行される。
論理ユニット管理部134はマッピング管理部134aを含む。マッピング管理部134aは、アドレス変換情報領域132d及びライト位置情報領域132e、更にはワーク領域132bを用いて、論理ユニットLU内のチャンクCHK毎のマッピング状態を管理する。チャンクCHKは、第1の状態、第2の状態及び第3の状態のいずれか1つの状態に設定される。
第1の状態は、チャンクCHKの論理アドレスが、高速ストレージ装置11内の物理記憶領域の物理アドレスに第1のタイプのマッピング情報MIaによってマッピングされる状態を指す。以降の説明では、第1の状態を、通常の高速状態(または高速状態)と称する。
第2の状態は、論理アドレスが、低速ストレージ装置12内の物理記憶領域の物理アドレスに第1のタイプのマッピング情報MIaによってマッピングされる状態を指す。以降の説明では、第2の状態を、低速状態と称する。
第3の状態は、論理アドレスが、高速ストレージ装置11内の物理記憶領域の物理アドレスに第1のタイプのマッピング情報MIaによってマッピングされ且つ低速ストレージ装置12内の物理記憶領域の物理アドレスに第2のタイプのマッピング情報MIbによってマッピングされる状態を指す。以降の説明では、第3の状態を、仮の高速状態と称する。
マッピング管理部134aは、論理ユニットLU内のチャンクCHK毎に、当該チャンクCHKへのアクセスの状況を監視する。より詳細に述べるならば、マッピング管理部134aは、アクセス統計情報を参照することにより、各チャンクCHKへのアクセスの状況を監視する。本実施形態においてアクセス統計情報は、各チャンクCHKの第1のタイプのマッピング情報MIaに含まれるアクセスカウンタCNTの値である。マッピング管理部134aは、各チャンクCHKへのアクセスの状況に基づいて、当該チャンクCHKのマッピング状態を変更する。
アドレス変換部135は、ホスト20からの読み出し要求または書き込み要求の指定する論理アドレスLAaを、アドレス変換情報に基づいて、高速ストレージ装置11または低速ストレージ装置12の物理アドレスPAa(より詳細には、装置番号DN及び物理アドレスPAa)に変換する。
アクセス統計収集部136は、各チャンクCHKへのアクセスの状況を表すアクセス統計情報を収集する。前述したように、アクセス統計情報は、各チャンクCHKの第1のタイプのマッピング情報MIaに含まれるアクセスカウンタCNT(つまり、チャンクCHKに対応するアクセスカウンタCNT)の値である。ここで、チャンクCHKtに対応するアクセスカウンタをCNT_tと表記する。
本実施形態においてアクセスカウンタCNT_tは、チャンクCHKtへのアクセスの回数をカウントするのに用いられる。より詳細に述べるならば、アクセスカウンタCNT_tは、チャンクCHKtへの読み出しアクセス及び書き込みアクセスの両方の回数を、アクセスの回数としてカウントするのに用いられる。アクセスカウンタCNT_tは、予め定められたアクセス状況の監視期間が開始される都度、初期値0にクリアされる。本実施形態では、監視期間は一定である。しかし、監視期間は必ずしも一定である必要はない。この場合、アクセスカウンタCNT_tの値が、監視期間の長さに応じて正規化されれば良い。
また、アクセスカウンタCNT_tが、チャンクCHKtへのアクセスのデータ量の総和、例えば読み出しアクセス及び書き込みアクセスの両アクセスのデータ量の総和をカウントするのに用いられても構わない。
アクセスコントローラ137は、論理アドレスLAaから変換された物理アドレスPAa(装置番号DN及び物理アドレスPAa)に基づいて、高速ストレージ装置11または低速ストレージ装置12にアクセスする。
メモリ132は、図1及び図2に示されているように、ワーク領域132b、アドレス変換情報領域132d及びライト位置情報領域132eを有する。ワーク領域132bの一部の領域は、図2に示されているように遷移候補リストCLを格納するのに用いられる。アドレス変換情報領域132dは、アドレス変換情報ATIを格納するのに用いられる。アドレス変換情報ATIは、図2に示されているように、ハッシュテーブルHT、アドレス変換ハッシュリストHL_0乃至HL_n−1、第2のタイプのマッピング情報MIb及び逆変換テーブルITTを含む。ライト位置情報領域132eは、データが書き込まれた位置を各チャンクに対応付けてブロックを単位に示すライト位置情報を格納するのに用いられる。本実施形態では、ライト位置情報としてビットマップBMが用いられる。これらの情報は、HDD133に保存されており、例えばストレージシステム10の起動時にHDD133からメモリ132にロードされる。また、メモリ132にロードされた情報は、適宜、またはストレージシステム10の電源の遮断時に、HDD133にセーブされる。
図4及び図5は、本実施形態で適用される3種のマッピング状態の例を説明するための図である。図4において、論理ユニットLU内のチャンクCHK1及びCHK2は、通常の高速状態にある。つまり、チャンクCHK1及びCHK2の論理アドレスは、高速ストレージ装置11内の物理記憶領域PSAa1及びPSAa2の物理アドレスにマッピングされている。このマッピング状態(つまり通常の高速状態)は、第1のタイプのマッピング情報MIaを用いて管理される。ホスト20からチャンクCHK1またはCHK2へのアクセスが要求された場合、アクセスコントローラ137は物理記憶領域PSAa1またはPSAa2にアクセスする。
また図4において、論理ユニットLU内のチャンクCHK3乃至CHK8は、低速状態にある。つまり、チャンクCHK3乃至CHK8の論理アドレスは、低速ストレージ装置12内の物理記憶領域PSAb3乃至PSAb8の物理アドレスにマッピングされている。このマッピング状態(つまり低速状態)は、第1のタイプのマッピング情報MIaを用いて管理される。ホスト20からチャンクCHK3乃至CHK8のいずれかのチャンクへのアクセスが要求された場合、アクセスコントローラ137は物理記憶領域PSAb3乃至PSAb8のうちの対応する物理記憶領域にアクセスする。
従来技術では、各チャンクが取り得るマッピング状態は、上述した高速状態(第1の状態)及び低速状態(第2の状態)の2種である。しかし本実施形態では、各チャンクが取り得るマッピング状態として、高速状態及び低速状態に加えて、前述したように、第3の状態である仮の高速状態が存在する。
図4において、論理ユニットLU内のチャンクCHK9及びCHK10は、仮の高速状態にある。つまり、チャンクCHK9及びCHK10の論理アドレスは、高速ストレージ装置11内の物理記憶領域PSAa9及びPSAa10にマッピングされ、且つ低速ストレージ装置12内の物理記憶領域PSAb9及びPSAb10にもマッピングされている。前者のマッピング状態は第1のタイプのマッピング情報MIaを用いて管理され、後者のマッピング状態は第2のタイプのマッピング情報MIbを用いて管理される。
このように、チャンクCHK9及びCHK10のマッピング状態(仮の高速状態)は、第1のタイプのマッピング情報MIa及び第2のタイプのマッピング情報MIbを用いて管理される。このようなマッピングから明らかなように、仮の高速状態にあるチャンクCHK9及びCHK10のデータ(実データ)は、高速ストレージ装置11及び低速ストレージ装置12の両方に存在する。
ホスト20から仮の高速状態にあるチャンクCHK9またはCHK10へのアクセス(読み出しアクセスまたは書き込みアクセス)が要求された場合、アクセスコントローラ137は物理記憶領域PSAa9またはPSAa10にアクセスする。これによりアクセスコントローラ137は、チャンクCHK9またはCHK10が、アクセス頻度が高い(またはアクセスデータ量が多い)チャンクであったとしても、当該チャンクCHK9またはCHK10へのアクセス要求を高速に実行することができる。
ここで、例えばチャンクCHK10への書き込みが要求されたものとする。この書き込み要求が、チャンクCHK10全体への書き込みを要求しているとは限らない。そこで本実施形態では、書き込み要求が、チャンクCHK10内の一部の領域へのブロック単位の書き込みを要求していることも考慮されている。具体的にはマッピング管理部134aは、チャンクに含まれていて且つデータが書き込まれた(更新された)ブロックの位置を、当該チャンクに対応付けられたビットマップBM(図6参照)を用いて管理する。
さて、仮の高速状態にあるチャンクCHK9及びCHK10のいずれか一方のアクセス頻度が高い状態は一時的であるものとする。ここでは、チャンクCHK10のアクセス頻度が高い状態は一時的であり、当該チャンクCHK10が、例えばアクセス頻度が低い状態に戻ったものとする。一方、チャンクCHK9のアクセス頻度が高い状態は継続しているものとする。
この場合、マッピング管理部134aは、チャンクCHK9を仮の高速状態から通常の高速状態に変更する。またマッピング管理部134aは、チャンクCHK10を仮の高速状態から低速状態に変更する。図5は、このときのチャンクCHK9及びCHK10のマッピング状態を含む、チャンクCHK1乃至CHK10のマッピング状態の例を示す。
図5から明らかなように、チャンクCHK9(より詳細には、チャンクCHK9の論理アドレス)は、高速ストレージ装置11内の物理記憶領域PSAa9(より詳細には、物理記憶領域PSAa9の物理アドレス)のみにマッピングされる。このマッピング状態は第1のタイプのマッピング情報MIaを用いて管理される。チャンクCHK9が低速ストレージ装置12内の物理記憶領域PSAb9にマッピングされていた状態は解除される。つまり、チャンクCHK9に関する第2のタイプのマッピング情報MIbは無効化される。ここで、チャンクCHK9のマッピング状態を仮の高速状態から通常の高速状態に変更するのに、高速ストレージ装置11及び低速ストレージ装置12の間のデータの移動が発生しないことに注意されるべきである。
一方、チャンクCHK10は、低速ストレージ装置12内の物理記憶領域PSAb10のみにマッピングされる。このマッピング状態は第1のタイプのマッピング情報MIaを用いて管理される。つまり、第1のタイプのマッピング情報MIaは、チャンクCHK10を高速ストレージ装置11内の物理記憶領域PSAa10にマッピングする状態から、チャンクCHK10を低速ストレージ装置12内の物理記憶領域PSAb10にマッピングする状態に更新される。この場合、チャンクCHK10に関する第2のタイプのマッピング情報MIbは無効化される。ここで、チャンクCHK10のマッピング状態を仮の高速状態から低速状態に変更するのに、高速ストレージ装置11及び低速ストレージ装置12の間のデータの移動が発生しないことに注意されるべきである。
図6は、アドレス変換情報ATI及びビットマップBM(ライト位置情報)のデータ構造例を示す。アドレス変換情報ATIは、ハッシュテーブルHT及びn個のアドレス変換ハッシュリストHL_0乃至HL_n−1を含む。またアドレス変換情報ATIは、第2のタイプのマッピング情報MIbを含む。アドレス変換情報ATIは更に逆変換テーブルITTを含む。但し、逆変換テーブルITTは図6に示されていない。
ハッシュテーブルHTは、それぞれ異なるハッシュ値HV0乃至HVn−1に対応するエントリENT_0乃至ENT_n−1を有する。本実施形態において、論理ユニットLU内の全チャンクCHKの論理アドレスは、当該論理アドレスのハッシュ値別にn個のグループG0乃至Gn−1に分類される。グループGi(i=0,1,…,n−1)は、ハッシュ値がHVi(HVi=i)の論理アドレスの集合である。ハッシュテーブルHTのエントリENT_i(つまり、ハッシュ値HViに対応するエントリENT_i)は、アドレス変換ハッシュリストHL_iの先頭の要素HLEを指し示すリストポインタLPiを格納する。
アドレス変換ハッシュリストHL_iの各要素(以下、ハッシュリスト要素と称する)HLEは、フィールドF1及びF2を有する。ハッシュリスト要素HLEのフィールドF1には、第1のタイプのマッピング情報MIaが設定される。ハッシュリスト要素HLEのフィールドF2には、次ポインタNPaが設定される。次ポインタNPaはアドレス変換ハッシュリストHL_i内の次のハッシュリスト要素HLEを指し示す。但し、アドレス変換ハッシュリストHL_i内の最後のハッシュリスト要素HLEのフィールドF2には、後続のハッシュリスト要素HLEが存在しないことを示すNULL(つまりNPa=NULL)が設定される。
第1のタイプのマッピング情報MIaは、フィールドF11乃至F15を有する。第1のタイプのマッピング情報MIaのフィールドF11には、論理アドレスLAaが設定される。論理アドレスLAaは、第1のタイプのマッピング情報MIaによってマッピング状態が管理されるチャンクCHKの論理アドレスであり、グループGiに属する。
第1のタイプのマッピング情報MIaのフィールドF12には、物理アドレスPAaが設定される。物理アドレスPAaは、チャンクCHKの論理アドレスLAaがマッピングされたストレージ装置(高速ストレージ装置11または低速ストレージ装置12)内の物理記憶領域PSAを示す。第1のタイプのマッピング情報MIaのフィールドF13には、装置番号DNが設定される。装置番号DNは、フィールドF13に設定される物理アドレスPAaの示す物理記憶領域PSAが属するストレージ装置を識別するための識別子であり、当該ストレージ装置に固有の番号である。つまり装置番号DNは、フィールドF11に設定された論理アドレスLAaがマッピングされたストレージ装置を示す。
第1のタイプのマッピング情報MIaのフィールドF14には、マッピング情報ポインタMPbが設定される。マッピング情報ポインタMPbが有効(非NULL)である場合、当該有効なマッピング情報ポインタMPbは第2のタイプのマッピング情報MIbを指し示す。この場合、第1のタイプのマッピング情報MIaに含まれている物理アドレスPAaは、高速ストレージ装置11内の物理記憶領域PSA(=PSAa)を示す。このような有効なマッピング情報ポインタMPbは、第1のタイプのマッピング情報MIaに含まれている論理アドレスLAaが、高速ストレージ装置11内の物理記憶領域PSAaの物理アドレスPAaだけでなく、低速ストレージ装置12内の物理記憶領域PSAbの物理アドレスPAbにもマッピングされる場合に、当該第1のタイプのマッピング情報MIaのフィールドF14に設定される。
第1のタイプのマッピング情報MIaのフィールドF15には、アクセスカウンタCNTが設定される。アクセスカウンタCNTは、前述したように、第1のタイプのマッピング情報MIaに基づいて管理されるチャンクCHK(つまり、論理アドレスLAaを有するチャンクCHK)へのアクセスの回数をカウントするのに用いられる。このように、第1のタイプのマッピング情報MIaは、論理アドレスLAa、物理アドレスPAa、装置番号DN、マッピング情報ポインタMPb及びアクセスカウンタCNTから構成される。
一方、第2のタイプのマッピング情報MIbは、フィールドF21及びF22を有する。上述したように、第2のタイプのマッピング情報MIbは、第1のタイプのマッピング情報MIaに含まれているマッピング情報ポインタMPbによって指し示される。第2のタイプのマッピング情報MIb(より詳細には、第1のタイプのマッピング情報MIaと関連付けられた第2のタイプのマッピング情報MIb)のフィールドF21には、物理アドレスPAbが設定される。物理アドレスPAbは、第1のタイプのマッピング情報MIaの示すチャンクCHKがマッピングされた低速ストレージ装置12内の物理記憶領域PSAbを示す。
第2のタイプのマッピング情報MIbのフィールドF22には、ビットマップポインタBPが設定される。ビットマップポインタBPは、ビットマップBMを指し示す。ビットマップBMは、第1のタイプのマッピング情報MIaの示すチャンクCHKに含まれるブロックの数8,192(n=8,192)に一致するビットの列から構成される。つまりビットマップBMの大きさは、1キロバイト(8,192ビット)である。ビットマップBMの各ビットは、チャンクCHK内の対応するブロックへのデータ書き込みにより当該ブロックのデータが更新されたか否かを記録するのに用いられる。つまり、ビットマップBMは、チャンクCHK内のデータが更新された(書き込まれた)ブロックの位置(ライト位置)を示す。
なお本実施形態とは異なって、第2のタイプのマッピング情報MIbが、第1のタイプのマッピング情報MIaに含まれても構わない。この場合、アドレス変換情報ATIは、有効な第2のタイプのマッピング情報MIbが存在するか否かに無関係に、第1のタイプのマッピング情報MIa毎に、第2のタイプのマッピング情報MIbのためのフィールドを持つ必要がある。したがって、アドレス変換情報ATIを格納するのに必要なメモリ132の領域(つまり、アドレス変換情報領域132d)のサイズも大きくなる。
そこでアドレス変換情報ATIのサイズが大きくなるのを防ぐために、第1のタイプのマッピング情報MIaのいずれかのフィールドの未使用の1ビット(例えば最上位ビット)を次のようなフラグビットとして用いても良い。このフラグビットは、第1のタイプのマッピング情報MIaの示すチャンクCHKのマッピング状態が、仮の高速状態にあるか否かを示す。この場合、第2のタイプのマッピング情報MIbが、第1のタイプのマッピング情報MIaと同様に、ハッシュリストに格納されると良い。
図7は、アドレス変換情報ATIに含まれる逆変換テーブルITTのデータ構造例を示す。図7に示す逆変換テーブルITTはN個のエントリを有する。Nは、例えば高速ストレージ装置11に含まれていて、且つチャンクCHKと同一のサイズを有する物理記憶領域PSAの数を示す。逆変換テーブルITTは、N個の物理記憶領域PSAの物理アドレス0乃至N−1を、当該物理アドレス0乃至N−1にマッピングされるチャンクCHKの論理アドレスと対応付けて格納するのに用いられる。逆変換テーブルITTに含まれていて、且つチャンクCHKがマッピングされていない物理アドレスに対応付けられたエントリには、論理アドレスに代えて特定の値が設定される。本実施形態では、この特定の値は、負の値であり、例えば−1である。
図7に示す逆変換テーブルITTは、高速ストレージ装置11の物理記憶領域PSAの物理アドレスを、アドレス変換部135が論理アドレスに高速に変換(つまり逆変換)するのに用いられる。この高速変換により、マッピング状態を変更するための後述するマッピング状態変更処理の処理時間を短縮することができる。
なお、逆変換テーブルITTは、アドレス変換部135が高速ストレージ装置11の物理アドレスを論理アドレスに変換するのに必ずしも必要でない。つまり、アドレス変換部135は、アドレス変換ハッシュリストHL_iを探索することによっても、高速ストレージ装置11の物理アドレスを論理アドレスに変換することができる。但し、逆変換テーブルITTを用いる場合に比べて、変換速度は低下する。また、アドレス変換情報ATIが、逆変換テーブルITTに加えて、低速ストレージ装置12の物理アドレスを論理アドレスに変換するのに用いられる逆変換テーブルを含んでいても構わない。
図8は、遷移候補リストCLのデータ構造例を示す。遷移候補リストCLは、低速状態から仮の高速状態に変更されるべきチャンクCHKを遷移候補として格納するのに用いられる。遷移候補リストCLは、リストポインタLP、及び当該遷移候補リストCLの要素(以下、遷移候補リスト要素と称する)CLEの配列を含む。リストポインタLPは、遷移候補リスト要素CLEの配列における先頭の遷移候補リスト要素CLEを指し示す。
各遷移候補リスト要素CLEは、フィールドF31及びF32を有する。遷移候補リスト要素CLEのフィールドF31には、次ポインタNPcが設定される。次ポインタNPcは、当該次ポインタNPcを含む遷移候補リスト要素CLEの次に遷移候補リストCLに追加された遷移候補リスト要素CLEを指し示す。但し、最後に追加された遷移候補リスト要素CLEのフィールドF31には、後続の遷移候補リスト要素CLEが存在しないことを示すNULL(つまりNPc=NULL)が設定される。
遷移候補リスト要素CLEのフィールドF32には、マッピング情報ポインタMIPcが設定される。マッピング情報ポインタMIPcは、対応するチャンクの現在のマッピング状態を示す第1のマッピング情報MIaを含むハッシュリスト要素HLE(図6参照)を指し示す。
本実施形態においてマッピング管理部134aは、現在低速状態にあるチャンクCHKへのアクセスの回数が、アクセス処理(読み出し処理または書き込み処理)において閾値(第1の閾値)TH1に達した場合、当該チャンクCHKを遷移候補として遷移候補リストCLに追加する。つまりマッピング管理部134aは、遷移候補に対応する第1のタイプのマッピング情報MIaを指し示す遷移候補リスト要素CLEを、遷移候補リストCLに追加する。
マッピング管理部134aは、マッピング状態変更処理(第1の状態変更処理)において遷移候補リストCLを参照するだけで、低速状態から仮の高速状態に変更されるべきチャンク(遷移候補)を簡単に特定できる。しかし、遷移候補リストCLは必ずしも必要でない。つまり、マッピング管理部134aは、アドレス変換ハッシュリストHL_iのハッシュリスト要素HLEを探索することによっても、低速状態から仮の高速状態に変更されるべきチャンクを特定することができる。つまりマッピング管理部134aは、アクセスカウンタCNTが閾値TH1以上で、且つマッピング情報ポインタMPbがNULLである第1のタイプのマッピング情報MIaを、アドレス変換ハッシュリストHL_0乃至HL_n−1から探索すれば良い。但し、低速ストレージ装置12の記憶容量は高速ストレージ装置11のそれと比較して大きいことから、低速状態にあるチャンクの数は一般に非常に多い。このため、遷移候補リストCLを用いる場合に比べて、遷移候補を探索するのに要する時間は長くなる。
次に、本実施形態における読み出し処理について、図9を参照して説明する。図9は、読み出し処理の典型的な手順を説明するためのフローチャートである。今、ホスト20からホストインタフェースバス30を介してストレージシステム10に、データの読み出しを指定する読み出し要求が送られたものとする。そして、ストレージシステム10のストレージコントローラ13が、ホスト20からの読み出し要求を受信したものとする。ここでは説明の簡略化のために、論理アドレスLAa_tで指定されるチャンクCHKt(つまり対象チャンクCHKt)の先頭のブロック(つまり対象ブロック)のデータの読み出しが、ホスト20からの読み出し要求によって要求されたものとする。この場合、対象ブロックの対象チャンクCHKt内の相対位置を示すオフセットアドレスは0である。
以下の説明では、対象チャンクCHKtに関する第1のタイプのマッピング情報をMIa_tと表記する。また、第1のタイプのマッピング情報MI_tに含まれている物理アドレス及び装置番号を、それぞれPAa_t及びDN_tと表記する。また第1のタイプのマッピング情報MI_tに含まれているマッピング情報ポインタ及びアクセスカウンタを、それぞれMPb_t及びCNT_tと表記する。また、マッピング情報ポインタMPb_tが非NULLの場合に、当該マッピング情報ポインタMPb_tが指し示す第2のタイプのマッピング情報をMIb_tと表記する。また、第2のタイプのマッピング情報MIb_tに含まれている物理アドレス及びビットマップポインタを、それぞれPAb_t及びBP_tと表記する。また、ビットマップポインタBP_tが指し示すビットマップをBM_tと表記する。更に、対象チャンクCHKtを遷移候補として示す遷移候補リストCL内の遷移候補リスト要素をCLE_tと表記する。
ストレージコントローラ13のアドレス変換部135は、ホスト20からの読み出し要求で指定される対象ブロックを含む対象チャンクCHKtの論理アドレスLAa_tに基づいて、当該論理アドレスLAa_tのハッシュ値HVxを計算する(ステップS1)。ハッシュ値HVx(HVx=x)は、0乃至n−1のいずれか1つである。
次にアドレス変換部135は、ハッシュ値HVxに対応するハッシュテーブルHTのエントリENT_xに設定されているリストポインタLPxを取得する(ステップS2)。ステップS2においてアドレス変換部135は、リストポインタLPxの指し示すアドレス変換ハッシュリストHL_xから、論理アドレスLAa_tを含む第1のタイプのマッピング情報MIa_tを検索する。これによりアドレス変換部135は、第1のタイプのマッピング情報MIa_tに含まれている物理アドレスPAa_t(より詳細には、物理アドレスPAa_t及び装置番号DN)を取得する。つまりアドレス変換部135は、論理アドレスLAa_tを物理アドレスPAa_tに変換する。なお、マッピング情報(アドレス変換情報)の検索に、アドレス変換ハッシュリストHL_iに代えて、例えば平衡木(バランスドツリー)のような他のデータ構造を用いても良い。
アクセスコントローラ137は、物理アドレスPAa_tの示す、高速ストレージ装置11または低速ストレージ装置12の物理記憶領域からデータ(実データ)を読み出す(ステップS3)。但し、対象ブロックが対象チャンクCHKt内の先頭でない場合、アドレス変換部135は、データが読み出される物理記憶領域の物理アドレス(対象物理アドレス)を次のように算出する必要がある。アドレス変換部135は、対象ブロックの対象チャンクCHKt内の相対位置を示すオフセットアドレスを、物理アドレスPAa_tに加算する。これにより、対象物理アドレスが算出される。また、高速ストレージ装置11または低速ストレージ装置12のいずれからデータが読み出されるべきかは、第1のタイプのマッピング情報MIa_tに含まれている装置番号DN_tによって示される。
ステップS3が実行されると、アクセス統計収集部136は、第1のタイプのマッピング情報MIa_tに含まれているアクセスカウンタCNT_tを1増加する(ステップS4)。アクセスカウンタCNT_tが1増加されると、マッピング管理部134aは、当該アクセスカウンタCNT_tを閾値TH1と比較することにより、当該アクセスカウンタCNT_tの値CNT_tが閾値TH1に等しいかを判定する(ステップS5)。アクセスカウンタCNT_tは、第1のタイプのマッピング情報MIa_tを用いてマッピング状態が管理される対象チャンクCHKtへのアクセスの状況(アクセス頻度)を示すアクセス統計情報である。したがって、マッピング管理部134aがカウンタ値CNT_tを閾値TH1と比較することは、対象チャンクCHKtへのアクセスの状況を監視することと等価である。
もし、カウンタ値CNT_tが閾値TH1に等しいならば(ステップS5のYes)、マッピング管理部134aは、対象チャンクCHKtへのアクセスの状況が、高速ストレージ装置11を用いた高速アクセスを必要とする第1の状況であると判定する。この場合、マッピング管理部134aは、ステップS3でデータが読み出されたストレージ装置が低速ストレージ装置12であるかを判定する(ステップS6)。つまり。マッピング管理部134aは、第1のタイプのマッピング情報MIa_tに含まれている装置番号DN_tが低速ストレージ装置12を示しているかを判定する。更に述べるならば、マッピング管理部134aは、対象チャンクCHKtのマッピング状態が低速状態にあるかを判定する。
もし、データが読み出されたストレージ装置が低速ストレージ装置12であるならば(ステップS6のYes)、マッピング管理部134aは、第1の状況にある対象チャンクCHKtを、低速状態から仮の高速状態に変更する必要があると判定する。この場合、マッピング管理部134aは、対象チャンクCHKtを遷移候補リストCLに追加する(ステップS7)。即ちマッピング管理部134aは、第1のタイプのマッピング情報MIa_tを指し示すマッピング情報ポインタMIPc_tが設定された遷移候補リスト要素CLE_tを、遷移候補リストCLに追加する。これにより読み出し処理は終了する。
一方、カウンタ値CNT_tが閾値TH1に等しくないならば(ステップS5のNo)、マッピング管理部134aは、対象チャンクCHKtが既に遷移候補リストCLに追加されているか、当該対象チャンクCHKtへのアクセスの状況が、高速アクセスを不要とする第2の状況であると判定する。前者の場合、カウンタ値CNT_tは閾値TH1以上であり、後者の場合、カウンタ値CNT_tは閾値TH1未満である。この場合、読み出し処理は終了する。また、データが読み出されたストレージ装置が低速ストレージ装置12でない場合(ステップS6のNo)にも、読み出し処理は終了する。
次に、本実施形態における書き込み処理について、図10を参照して説明する。図10は、書き込み処理の典型的な手順を説明するためのフローチャートである。今、ホスト20からホストインタフェースバス30を介してストレージシステム10に、データの書き込みを指定する書き込み要求が送られたものとする。そして、ストレージシステム10のストレージコントローラ13が、ホスト20からの書き込み要求を受信したものとする。ここでは、説明の簡略化のために、論理アドレスLAa_tで指定されるチャンクCHKt(つまり対象チャンクCHKt)の先頭のブロック(つまり対象ブロック)へのデータの書き込みが、ホスト20からの書き込み要求によって要求されたものとする。
まず、ストレージコントローラ13のアドレス変換部135は、前述の読み出し処理におけるステップS1及びS2に相当するステップS11及びS12を実行することにより、論理アドレスLAa_tを含む第1のタイプのマッピング情報MIa_tを検索する。
アドレス変換部135は、この第1のタイプのマッピング情報MIa_tに基づいて論理アドレスLAa_tを物理アドレスPAa_tに変換する。
アクセスコントローラ137は、物理アドレスPAa_tの示す、高速ストレージ装置11または低速ストレージ装置12の物理記憶領域にデータ(実データ)を書き込む(ステップS13)。但し、対象ブロックが対象チャンクCHKt内の先頭でない場合、データが書き込まれる物理記憶領域の物理アドレスは、前述したように、対象ブロックの対象チャンクCHKt内の相対位置を示すオフセットアドレスを用いて算出される必要がある。ステップS13が実行されると、アクセス統計収集部136は、第1のタイプのマッピング情報MIa_tに含まれているアクセスカウンタCNT_tを1増加する(ステップS14)。
一方、マッピング管理部134aは、第1のタイプのマッピング情報MIa_tに含まれているマッピング情報ポインタMPb_tが非NULL(つまり有効)であるかを判定する(ステップS15)。もし、マッピング情報ポインタMPb_tが非NULLであるならば(ステップS15のYes)、マッピング管理部134aはステップS16に進む。
ステップS16において、マッピング管理部134aはまず、マッピング情報ポインタMPb_tの指し示す第2のタイプのマッピング情報MIb_tを参照し、当該第2のタイプのマッピング情報MIb_tに含まれているビットマップポインタBP_tの指し示すビットマップBM_tを特定する。ステップS16において、マッピング管理部134aは更に、ビットマップBM_tに含まれていて、且つデータが書き込まれたブロックの位置に対応するビットに、1をセットする。
マッピング管理部134aはステップS16を実行すると、ステップS17に進む。また、マッピング情報ポインタMPb_tがNULLである場合(ステップS15のNo)、マッピング管理部134aはステップS16をスキップしてステップS17に進む。ステップS17においてマッピング管理部134aは、アクセスカウンタCNT_tの値CNT_tが閾値TH1に等しいかを判定する(ステップS17)。もし、カウンタ値CNT_tが閾値TH1に等しいならば(ステップS17のYes)、マッピング管理部134aは、対象チャンクCHKtへのアクセスの状況が、高速ストレージ装置11を用いた高速アクセスを必要とする第1の状況であると判定する。この場合、マッピング管理部134aは、ステップS13でデータが書き込まれたストレージ装置が低速ストレージ装置12であるかを判定する(ステップS18)。
もし、データが書き込まれたストレージ装置が低速ストレージ装置12であるならば(ステップS18のYes)、マッピング管理部134aは、第1の状況にある対象チャンクCHKtを、低速状態から仮の高速状態に変更する必要があると判定する。この場合、マッピング管理部134aは、対象チャンクCHKtを遷移候補リストCLに追加する(ステップS19)。これにより書き込み処理は終了する。
一方、カウンタ値CNT_tが閾値TH1に等しくないならば(ステップS17のNo)、マッピング管理部134aは、対象チャンクCHKtが既に遷移候補リストCLに追加されているか、当該対象チャンクCHKtへのアクセスの状況が、高速アクセスを不要とする第2の状況であると判定する。この場合、書き込み処理は終了する。また、データが書き込まれたストレージ装置が低速ストレージ装置12でない場合(ステップS18のNo)にも、書き込み処理は終了する。
本実施形態では、第1のタイプのマッピング情報MIa_tに含まれているアクセスカウンタCNT_tは、読み出しアクセス及び書き込みアクセスに共通に用いられる。つまり、アクセスカウンタCNT_tは、チャンクCHKtへのアクセスの回数(アクセス頻度)を、読み出しアクセスまたは書き込みアクセスのいずれであるかに無関係にカウントする。しかし、第1のタイプのマッピング情報MIa_tが、例えば、チャンクCHKtへの読み出しアクセスの回数をカウントする第1のアクセスカウンタ及び当該対応するチャンクCHKへの書き込みアクセスの回数をカウントする第2のアクセスカウンタを含んでいても良い。この場合、アクセス統計収集部136は、第1及び第2のアクセスカウンタの値にそれぞれ読み出しアクセス及び書き込みアクセスに固有の重みを付けて、チャンクCHKtへのアクセスの状況を表す統計情報を取得すれば良い。また、アクセスカウンタCNT_tが、チャンクCHKtへの読み出しアクセスまたは書き込みアクセスのいずれか一方の回数を、アクセスの回数としてカウントするのに用いられても構わない。これらは、アクセスカウンタCNT_t(または、第1及び第2のアクセスカウンタ)がチャンクCHKtへのアクセスのデータ量の総和をカウントするのに用いられる場合にも当てはまる。
次に本実施形態において、チャンクのマッピング状態を変更するためのマッピング状態変更処理について、図11及び図12を参照して説明する。図11は、マッピング状態変更処理の典型的な手順を説明するためのフローチャートの一部を示す図、図12は同マッピング状態変更処理の典型的な手順を説明するためのフローチャートの残りを示す図である。
マッピング管理部134aは、予め定められた監視期間が経過する毎に、図11及び図12のフローチャートで示されるマッピング状態変更処理を次のように実行する。まずマッピング管理部134aは、変数jを初期値0に設定する(ステップS21)。変数jは、逆変換テーブルITTのj番目のエントリを指し示す。逆変換テーブルITTのj番目のエントリは、高速ストレージ装置11の物理アドレスj(つまり物理アドレスjで指定される物理記憶領域j)に対応付けられている。
次にマッピング管理部134aは、逆変換テーブルITTのj番目のエントリを参照することにより、高速ストレージ装置11の物理記憶領域jに対応するチャンクCHKxが存在するかを判定する(ステップS22)。マッピング管理部134aは、この判定を、逆変換テーブルITTのj番目のエントリに、物理アドレスjに対応付けて有効な論理アドレスLAa_x(つまり、−1以外の値)が設定されているかに基づいて実行する。
もし、高速ストレージ装置11の物理記憶領域jに対応するチャンクCHKxが存在するならば(ステップS22のYes)、マッピング管理部134aはステップS23に進む。ここで、物理記憶領域jに対応するチャンクCHKxが存在するとは、当該チャンクCHKxの論理アドレスLAa_xが当該物理記憶領域jの物理アドレスjにマッピングされていることを示す。この場合、チャンクCHKxは、通常の高速状態または仮の高速状態のいずれか一方の状態にある。
そこでステップS23においてマッピング管理部134aは、チャンクCHKxが仮の高速状態にあるかを判定する(ステップS23)。この判定のためにマッピング管理部134aは、読み出し処理におけるステップS1及びS2、または書き込み処理におけるステップS11及びS12に相当する処理により、チャンクCHKxの論理アドレスLAa_xを含む第1のタイプのマッピング情報MIa_xを検索する。そしてマッピング管理部134aは、第1のタイプのマッピング情報MIa_xに含まれているマッピング情報ポインタMPb_xが非NULLである場合に、チャンクCHKxが仮の高速状態にあると判定する。
このように、チャンクCHKxが仮の高速状態にあるならば(ステップS23のYes)、マッピング管理部134aはステップS24に進む。ステップS24において、マッピング管理部134aは、第1のタイプのマッピング情報MIa_xに含まれるアクセスカウンタCNT_xの値CNT_xが閾値(第2の閾値)TH2よりも小さいかを判定する。閾値TH2は閾値TH1よりも小さい。
もし、カウンタ値CNT_xが閾値TH2よりも小さいならば(ステップS24のYes)、マッピング管理部134aは、現在チャンクCHKxは仮の高速状態にあるものの、当該チャンクCHKxへのアクセスの状況は高速アクセスが不要な第2の状況にあると判定する。そこでマッピング管理部134aは、チャンクCHKxを仮の高速状態から低速状態に変更するための第4の状態変更処理を実行する(ステップS25)。この第4の状態変更処理の手順については後述する。マッピング管理部134aは、ステップS25を実行すると、ステップS30に進む。
これに対し、カウンタ値CNT_xが閾値TH2よりも小さくないならば(ステップS24のNo)、マッピング管理部134aはステップS28に進む。ステップS28においてマッピング管理部134aは、カウンタ値CNT_xが閾値TH1以上であるかを判定する(ステップS28)。
もし、カウンタ値CNT_xが閾値TH1以上であるならば(ステップS28のYes)、マッピング管理部134aは、仮の高速状態にあるチャンクCHKxへのアクセスの状況は第2の状況を継続していると判定する。この場合、マッピング管理部134aは、チャンクCHKxを仮の高速状態から通常の高速状態に変更するための第3の状態変更処理を実行する(ステップS29)。この第3の状態変更処理の手順については後述する。マッピング管理部134aは、ステップS29を実行すると、ステップS30に進む。
これに対し、カウンタ値CNT_xが閾値TH1未満であるものとする(ステップS28のNo)。ここで、カウンタ値CNT_xは閾値TH2以上である(ステップS24のNo)。このように、カウンタ値CNT_xが閾値TH2以上で(ステップS24のNo)、且つ閾値TH1未満であるならば(ステップS28のNo)、マッピング管理部134aは、仮の高速状態にあるチャンクCHKxへのアクセスの状況は第3の状況にあると判定する。第3の状況とは、チャンクCHKxへのアクセスの状況が、高速アクセスを必要とするか、高速アクセスを不要とするかの判定を保留すべき状況にあることを示す。そこでマッピング管理部134aは、チャンクCHKxを仮の高速状態に維持するために、ステップS29をスキップしてステップS30に進む。
一方、チャンクCHKxが仮の高速状態にないならば(ステップS23のNo)、マッピング管理部134aは、当該チャンクCHKxは通常の高速状態にあると判定する。この場合、マッピング管理部134aはステップS24と同様に、第1のタイプのマッピング情報MIa_xに含まれるアクセスカウンタCNT_xの値CNT_xが閾値TH2よりも小さいかを判定する(ステップS26)。
もし、カウンタ値CNT_xが閾値TH2よりも小さいならば(ステップS26のYes)、マッピング管理部134aは、チャンクCHKxは通常の高速状態にありながら、当該チャンクCHKxへのアクセスの状況は高速アクセスが不要な第2の状況にあると判定する。そこでマッピング管理部134aは、チャンクCHKxを通常の高速状態から仮の高速状態に変更するための第2の状態変更処理を実行する(ステップS27)。この第2の状態変更処理の手順については後述する。マッピング管理部134aは、ステップS27を実行すると、ステップS30に進む。
これに対し、カウンタ値CNT_xが閾値TH2よりも小さくないならば(ステップS26のNo)、マッピング管理部134aは、通常の高速状態にあるチャンクCHKxへのアクセスの状況は第1の状況を継続していると判定する。この場合、マッピング管理部134aは、チャンクCHKxを通常の高速状態に維持するために、ステップS27をスキップしてステップS30に進む。
ステップS30において、マッピング管理部134aは変数jを1増加する(ステップS30)。次にマッピング管理部134aは、増加された変数jが高速ストレージ装置11の物理アドレスの最大値(N−1)+1、つまりNに等しいかを判定する(ステップS31)。
もし、増加された変数jがNに等しくないならば(ステップS31のNo)、マッピング管理部134aは、高速ストレージ装置11の次の物理アドレス(物理記憶領域)について処理するために、ステップS22に戻る。これに対し、増加された変数jがNに等しいならば(ステップS31のYes)、マッピング管理部134aは、高速ストレージ装置11の全ての物理アドレス(物理記憶領域)について処理をしたと判定する。この場合、マッピング管理部134aは、遷移候補リストCLに登録されたチャンクCHK_tを、低速状態から仮の高速状態に変更するために、ステップS32に進む。
ステップS32においてマッピング管理部134aは、遷移候補リストCLにおける先頭の遷移候補リスト要素CLEを参照するために、対象の遷移候補リスト要素CLEを指し示す変数pに、リストポインタLP(図8参照)を設定する。マッピング管理部134aは、変数p(ここでは、p=LP)がNULLであるかを判定する(ステップS33)。つまり、変数pの指し示す有効な遷移候補リスト要素CLEが存在するかを判定する。
ここでは、図8に示されるように、変数p(p=LP)がNULLでないものとする(ステップS33のNo)。この場合、変数pの指し示す遷移候補リスト要素CLEが存在し、当該遷移候補リスト要素CLEに対応付けられている第1のタイプのマッピング情報が存在する。この第1のタイプのマッピング情報が、チャンクCHK_tに対応付けられた第1のタイプのマッピング情報MIa_tであるものとする。つまり、変数pの指し示す遷移候補リスト要素CLEに登録された遷移候補がチャンクCHK_tであるものとする。
この場合、マッピング管理部134aは、第1のタイプのマッピング情報MIa_tに基づいて、対応する遷移候補(チャンクCHK_t)を低速状態から仮の高速状態に変更するための第1の状態変更処理を実行する(ステップS34)。この第1の状態変更処理の手順については後述する。
マッピング管理部134aは、ステップS34を実行すると、ステップS35に進む。このとき変数pは、直前に実行された第1の状態変更処理(ステップS34)で用いられた遷移候補リスト要素CLEを指している。マッピング管理部134aは、変数pを、当該変数pが現在指し示している遷移候補リスト要素CLEに含まれている次ポインタNPcに更新する(ステップS35)。この次ポインタNPcをNPc(p)と表記する。つまりマッピング管理部134aは、変数pをNPc(p)に更新する。マッピング管理部134aはステップS35を実行すると、ステップS33に戻る。
このようにしてマッピング管理部134aは、遷移候補リストCLにおける全ての遷移候補リスト要素CLEの各々に対応付けられている第1のタイプのマッピング情報MIa_tに基づいて、対応する遷移候補(チャンクCHK_t)を低速状態から仮の高速状態に変更するための第1の状態変更処理を実行する。つまりマッピング管理部134aは、遷移候補リストCLに登録された全ての遷移候補を対象に第1の状態変更処理を実行する。
ここで、最後の遷移候補を対象に第1の状態変更処理が実行されたものとする(ステップS34)。このとき変数pは、遷移候補リストCLの最後の遷移候補リスト要素CLEを指し示している。マッピング管理部134aは、この変数pを、最後の遷移候補リスト要素CLEに含まれている次ポインタNPc(つまりNPc(p))に更新する(ステップS35)。
最後の遷移候補リスト要素CLEに含まれている次ポインタNPc(p=NPc(p))はNULLである(ステップS33のYes)。この場合、マッピング管理部134aは、遷移候補リストCLに登録された全ての遷移候補を対象に第1の状態変更処理を実行したと判定する。そこでマッピング管理部134aは、遷移候補リストCLをワーク領域132bから削除して、マッピング状態変更処理を終了する。
次に第1の状態変更処理の詳細について図13を参照して説明する。図13は、第1の状態変更処理の典型的な手順を説明するためのフローチャートである。ここでは、低速状態から仮の高速状態に変更されるべき遷移候補がチャンクCHK_tであるものとする。チャンクCHK_tは、変数pの指し示す遷移候補リスト要素CLEに対応付けられている第1のタイプのマッピング情報MIa_tに基づいて特定される。
第1のタイプのマッピング情報MIa_tは、論理アドレスLAa_t、物理アドレスPAa_t、装置番号DV_t及びマッピング情報ポインタMPb_tを含む。この例では、装置番号DV_tは低速ストレージ装置12を示す。また、マッピング情報ポインタMPb_tは無効マッピング情報ポインタ(MPb_t=NULL)である。つまり、チャンクCHK_tは低速状態にあり、当該チャンクCHK_tのデータは、低速ストレージ装置12のみに格納されている。また、物理アドレスPAa_tが第1の物理アドレスであるものとする。
マッピング管理部134aは、高速ストレージ装置11に含まれていて且つチャンクCHK_tと同一サイズを有する空き物理記憶領域の集合から、1つの空き物理記憶領域を選択する(ステップS41)。つまりマッピング管理部134aは、高速ストレージ装置11から1つの空き物理記憶領域を取得する。取得された物理記憶領域の物理アドレスが第2の物理アドレスであるものとする。
次にマッピング管理部134aは、第1の物理アドレスで指定される低速ストレージ装置12の物理記憶領域に格納されているデータ(つまりチャンクCHK_tのデータ)を、第2の物理アドレスで指定される高速ストレージ装置11の物理記憶領域(つまり、ステップS41で取得された物理記憶領域)にコピーする(ステップS42)。これによりチャンクCHK_tのデータは、高速ストレージ装置11及び低速ストレージ装置12の両方に存在する。
次にマッピング管理部134aは、チャンクCHK_t内のデータが書き込まれた(更新された)ブロックの位置を記録するのに用いられるビットマップBM_tのための領域を、メモリ132のライト位置情報領域132eから取得する(ステップS43)。マッピング管理部134aは、取得された領域の全ビット、つまりビットマップBM_tの全ビットを、“0”にクリアする(ステップS44)。
次にマッピング管理部134aは、第2のタイプのマッピング情報MIb_tのための領域を、メモリ132のアドレス変換情報領域132dから取得する(ステップS45)。そしてマッピング管理部134aは、クリアされたビットマップBM_tを指し示すビットマップポインタBP_tを、第2のタイプのマッピング情報MIb_tのフィールドF22に設定する(ステップS46)。またマッピング管理部134aは、現在チャンクCHK_tの論理アドレスLAa_tに対応付けて第1のタイプのマッピング情報MIa_tに設定されている物理アドレスPAa_t(つまり、第1の物理アドレス)を、第2のタイプのマッピング情報MIb_tにPAb_tとして設定する(ステップS47)。つまり、第1の物理アドレスが、第2のタイプのマッピング情報MIb_tのフィールドF21に設定される。
次にマッピング管理部134aは、第2のタイプのマッピング情報MIb_tを指し示すマッピング情報ポインタMPbを、第1のタイプのマッピング情報MIa_tのフィールドF14に設定する(ステップS48)。つまりマッピング管理部134aは、第1のタイプのマッピング情報MIa_tに含まれている無効マッピング情報ポインタMPb_t(MPb_t=NULL)を、第2のタイプのマッピング情報MIb_tを指し示す有効なマッピング情報ポインタMPb_tに更新する。
次にマッピング管理部134aは、チャンクCHK_tのデータがコピーされた高速ストレージ装置11の物理記憶領域を指定する第2の物理アドレスを、第1のタイプのマッピング情報MIa_tにPAa_tとして設定する(ステップS49)。つまり、第2の物理アドレスが、第2のタイプのマッピング情報MIb_tのフィールドF21に設定される。これにより、チャンクCHK_tは、当該チャンクCHK_tの論理アドレスLAa_tが低速ストレージ装置12側の第1の物理アドレスのみにマッピングされる低速状態から、当該論理アドレスLAa_tが高速ストレージ装置11側の第2の物理アドレス及び低速ストレージ装置12側の第1の物理アドレスの両方にマッピングされる仮の高速状態に遷移する。
マッピング管理部134aは更に、第2の物理アドレス(つまり、チャンクCHK_tのデータがコピーされた第2の物理アドレス)に対応付けられた逆変換テーブルITTのエントリに、チャンクCHK_tの論理アドレスLAa_tを設定する(ステップS50)。これにより、1つの遷移候補(チャンクCHK_t)についての第1の状態変更処理が終了する。
ここで、チャンクCHK_t(つまり、仮の高速状態に遷移したチャンクCHK_t)からのデータの読み出しまたはチャンクCHK_tへのデータの書き込みが、ホスト20からストレージコントローラ13に要求されたものとする。この場合、前述の読み出し処理及び書き込み処理から明らかなように、チャンクCHK_tからのデータの読み出しまたはチャンクCHK_tへのデータの書き込みは、当該チャンクCHK_tに対応付けられた第1のタイプのマッピング情報MIaに基づいて実行される。つまり、チャンクCHK_tの論理アドレスLAa_tがマッピングされた高速ストレージ装置11の第2の物理アドレスの指定する物理記憶領域がアクセスされる。これにより、仮の高速状態にあるチャンクCHK_tへのアクセスが、通常の高速状態にあるチャンクへのアクセスのように高速化される。
次に第2の状態変更処理の詳細について図14を参照して説明する。図14は、第2の状態変更処理の典型的な手順を説明するためのフローチャートである。ここでは、通常の高速状態から仮の高速状態に変更されるべき遷移候補がチャンクCHKxであるものとする。また、チャンクCHKxに対応付けられた第1のタイプのマッピング情報がMIa_xであり、当該第1のタイプのマッピング情報MIa_xは、論理アドレスLAa_x、物理アドレスPAa_x、装置番号DV_x及びマッピング情報ポインタMPb_xを含むものとする。この例では、装置番号DV_xは高速ストレージ装置11を示す。また、マッピング情報ポインタMPb_xは無効マッピング情報ポインタ(MPb_x=NULL)である。
マッピング管理部134aは、低速ストレージ装置12に含まれていて且つチャンクCHKxと同一サイズを有する空き物理記憶領域の集合から、1つの空き物理記憶領域を選択する(ステップS61)。つまりマッピング管理部134aは、低速ストレージ装置12から1つの空き物理記憶領域を取得する。取得された物理記憶領域の物理アドレスが物理アドレスPAb_xであるものとする。
次にマッピング管理部134aは、物理アドレスPAa_xで指定される高速ストレージ装置11の物理記憶領域に格納されているデータ(つまりチャンクCHKxのデータ)を、物理アドレスPAb_xで指定される低速ストレージ装置12の物理記憶領域(つまり、ステップS61で取得された物理記憶領域)にコピーする(ステップS62)。これによりチャンクCHKxのデータは、高速ストレージ装置11及び低速ストレージ装置12の両方に存在することになる。
次にマッピング管理部134aは、チャンクCHKx内のデータが書き込まれた位置を記録するのに用いられるビットマップBM_xのための領域を、メモリ132のライト位置情報領域132eから取得する(ステップS63)。マッピング管理部134aは、ビットマップBM_xの全ビットを“0”にクリアする(ステップS64)。
次にマッピング管理部134aは、第2のタイプのマッピング情報MIb_xのための領域を、メモリ132のアドレス変換情報領域132dから取得する(ステップS65)。そしてマッピング管理部134aは、クリアされたビットマップBM_xを指し示すビットマップポインタBP_xを、第2のタイプのマッピング情報MIb_xのフィールドF22に設定する(ステップS66)。またマッピング管理部134aは、チャンクCHKxのデータがコピーされた低速ストレージ装置12の物理記憶領域を指定する物理アドレスPAb_xを、第2のタイプのマッピング情報MIb_xのフィールドF21に設定する(ステップS67)。
次にマッピング管理部134aは、第2のタイプのマッピング情報MIb_xを指し示すマッピング情報ポインタMPb_xを、第1のタイプのマッピング情報MIa_xのフィールドF14に設定する(ステップS68)。つまりマッピング管理部134aは、第1のタイプのマッピング情報MIa_xに含まれている無効マッピング情報ポインタMPb_x(MPb_x=NULL)を、第2のタイプのマッピング情報MIb_xを指し示す有効なマッピング情報ポインタMPb_xに更新する。これにより、チャンクCHKxについての第2の状態変更処理が終了する。
次に第3の状態変更処理の詳細について図15を参照して説明する。図15は、第3の状態変更処理の典型的な手順を説明するためのフローチャートである。ここでは、仮の高速状態から通常の高速状態に変更されるべき遷移候補がチャンクCHKxであるものとする。また、チャンクCHKxに対応付けられた第1のタイプのマッピング情報がMIa_xであり、当該第1のタイプのマッピング情報MIa_xは、論理アドレスLAa_x、物理アドレスPAa_x、装置番号DV_x及びマッピング情報ポインタMPb_xを含むものとする。この例では、装置番号DV_xは高速ストレージ装置11を示す。また、マッピング情報ポインタMPb_xは非NULL(有効)であり、第2のタイプのマッピング情報MIb_xを指し示す。
まずマッピング管理部134aは、第2のタイプのマッピング情報MIb_xに設定されている物理アドレスPAb_xの指定する低速ストレージ装置12側の物理記憶領域を解放する(ステップS71)。次にマッピング管理部134aは、第2のタイプのマッピング情報MIb_xに設定されているビットマップポインタBP_xの指し示すビットマップBM_xの領域を解放する(ステップS72)。
またマッピング管理部134aは、第2のタイプのマッピング情報MIb_xの領域を解放する(ステップS73)。次にマッピング管理部134aは、第1のタイプのマッピング情報MIa_xに含まれている有効なマッピング情報ポインタMPb_xを、NULL(無効マッピング情報ポインタMPb_x)に更新する(ステップS74)。つまりマッピング管理部134aは、第1のタイプのマッピング情報MIa_xのフィールドF14にNULLを設定する。これにより、チャンクCHKxについての第3の状態変更処理が終了する。
次に第4の状態変更処理の詳細について図16を参照して説明する。図16は、第4の状態変更処理の典型的な手順を説明するためのフローチャートである。ここでは、仮の高速状態から低速状態に変更されるべき遷移候補がチャンクCHKxであるものとする。また、チャンクCHKxに対応付けられた第1のタイプのマッピング情報がMIa_xであり、当該第1のタイプのマッピング情報MIa_xは、論理アドレスLAa_x、物理アドレスPAa_x、装置番号DV_x及びマッピング情報ポインタMPb_xを含むものとする。この例では、装置番号DV_xは高速ストレージ装置11を示す。また、マッピング情報ポインタMPb_xは非NULL(有効)であり、第2のタイプのマッピング情報MIb_xを指し示す。第2のタイプのマッピング情報MIb_xは、物理アドレスPAb_x及びビットマップポインタBP_xを含む。ビットマップポインタBP_xは、ビットマップBM_xを指し示す。
まずマッピング管理部134aは、ビットマップポインタBP_xの指し示すビットマップBM_xを参照して、“1”がセットされているビットを全て検索する(ステップS81)。ステップS81においてマッピング管理部134aは、物理アドレスPAa_xの指定する高速ストレージ装置11の物理記憶領域に含まれていて、且つ検索されたビットに対応する全てのブロックを特定する。ステップS81においてマッピング管理部134aは、特定された全てのブロック(第1のブロック)のデータを、物理アドレスPAb_xの指定する低速ストレージ装置12の物理記憶領域内の対応するブロック(第2のブロック)にコピー(反映)する。これにより、物理アドレスPAb_xの指定する低速ストレージ装置12の物理記憶領域のデータは、物理アドレスPAa_xの指定する高速ストレージ装置11の物理記憶領域のデータに一致する。
次にマッピング管理部134aは、現在の物理アドレスPAb_x(つまり、現在第2のタイプのマッピング情報MIb_xに設定されている物理アドレスPAb_x)を、第1のタイプのマッピング情報MIa_xのフィールドF12にPAa_xとして設定する(ステップS82)。次にマッピング管理部134aは、ビットマップBM_xの領域を解放し(ステップS83)、且つ第2のタイプのマッピング情報MIb_xの領域を解放する(ステップS84)。
次にマッピング管理部134aは、第1のタイプのマッピング情報MIa_xに含まれている有効なマッピング情報ポインタMPb_xを、NULL(無効マッピング情報ポインタMPb_x)に更新する(ステップS85)。つまりマッピング管理部134aは、第1のタイプのマッピング情報MIa_xのフィールドF14にNULLを設定する。そしてマッピング管理部134aは、物理アドレスPAa_xに対応付けられた逆変換テーブルITTのエントリに無効値(−1)を設定する(ステップS86)。これにより、チャンクCHKxについての第4の状態変更処理が終了する。
本実施形態における上述の動作と効果とを以下に整理して示す。例えば、第1のチャンクに対応する第1のアクセスカウンタの値が、第1の監視期間内に閾値TH1に達したものとする(ステップS5またはS17のYes)。つまり、第1の監視期間における第1のチャンクへのアクセスの回数(頻度)が閾値TH1以上であり、高速アクセスを必要とする第1の状況にあるものとする。しかも、第1のチャンクは、第1の監視期間の開始時に低速状態(第2の状態)にあるものとする(ステップS6またはS18のYe)。
この場合、従来技術であれば、第1のチャンクは、第1の監視期間の次の第2の監視期間が開始される前に、低速状態から高速状態(本実施形態における通常の高速状態に相当)に変更される。ここでは、第1のチャンクのデータは、低速ストレージ装置12から高速ストレージ装置11にコピーされる。このとき、低速ストレージ装置12側のデータは破棄(無効化)される。つまり、第1のチャンクのデータは、低速ストレージ装置12から高速ストレージ装置11に移動される。
ここで、第1のチャンクへのアクセスの状況が、通常は高速アクセスを必要としない第2の状況にあり、第1の監視期間だけ高速アクセスを必要とする第1の状況に変化したものとする。この場合、従来技術では、通常は低速状態にある第1のチャンクが、第1の監視期間の後だけ低速状態から高速状態に変更され、次の第2の監視期間の後に再び低速状態に変更される。
第1のチャンクの状態がこのように遷移する場合、この状態遷移に伴うデータの移動に必要な低速ストレージ装置12へのアクセスが、低速状態から高速状態への遷移時と、高速状態から低速状態への遷移時とにそれぞれ発生する。このように、一時的なマッピング状態の変更に伴うデータ移動のために低速ストレージ装置12へのアクセスが増加することは、監視時間が経過する毎に行われるマッピング状態変更処理の効率の低下を招く。このようなマッピング状態変更処理の効率の低下は、第1のチャンクへのアクセスの回数が閾値TH1の近傍と閾値TH2の近傍との範囲内で変動する場合にも発生する。つまり、マッピング状態変更処理の効率の低下は、マッピング状態の遷移の振動が発生する場合にも発生する。この振動を防止するために、本実施形態でも適用されているように、2つの閾値TH1及びTH2(TH2<TH1)を用いることが考えられる。閾値TH1は、マッピング状態を高速側へ変更するか否かを判定するのに用いられる第1の判定条件である。閾値TH2は、マッピング状態を低速側へ変更するか否かを判定するための第2の判定条件である。しかし、単に2つの閾値TH1及びTH2を適用するだけでは、例えば閾値TH1及びTH2の差が小さいならば、状態遷移の振動を十分に防ぐことは難しい。逆に閾値TH1及びTH2の差が大きいならば、本来マッピング状態が変更されるべきチャンクのマッピング状態が変更されない可能性が高くなる。
これに対して本実施形態では、第1の監視期間におけるアクセスの回数から、第1のチャンクのマッピング状態が例えば高速側へ変更されるべきであるものとすると、当該第1のチャンクは、第1の監視期間の後に低速状態から仮の高速状態に変更される(ステップS34)。ここでは、第1のチャンクのデータは、低速ストレージ装置12から高速ストレージ装置11にコピーされる。このとき、第1のチャンクが低速ストレージ装置12の第1の物理記憶領域にマッピングされた状態を維持するために、第1のタイプのマッピング情報(旧マッピング情報)に基づいて、第2のタイプのマッピング情報が設定される。また、第1のチャンクを高速ストレージ装置11側にもマッピングするために、高速ストレージ装置11から空きの第2の物理記憶領域が取得される。そして、第1のタイプのマッピング情報が、第1のチャンクを第1の物理記憶領域にマッピングする状態から、当該第1のチャンクを第2の物理記憶領域にマッピングする状態に更新される。これにより、第1のチャンクのデータは、高速ストレージ装置11及び低速ストレージ装置12の両方に存在する。
このため本実施形態では、第1のチャンクが仮の高速状態にある第2の監視期間に当該第1のチャンクへの書き込みが要求されないならば、たとえ当該第2の監視期間の後に仮の高速状態から低速状態に変更されるとしても、当該状態遷移に伴う低速ストレージ装置12へのアクセスは発生しない。よって本実施形態によれば、第1のチャンクが“低速状態→仮の高速状態→低速状態”のように遷移する場合に、従来技術において第1のチャンクが“低速状態→高速状態→低速状態の”ように遷移する場合と比較して、低速ストレージ装置12へのアクセスを1回減少することができる。つまり本実施形態によれば、監視期間が経過する毎に実行されるマッピング状態変更処理の効率の低下を防止して、当該状態変更処理がストレージシステム10の運用に及ぼす影響を低減できる。
マッピング状態変更処理は、一般には、ストレージシステム10の本来の運用(通常の業務)に影響が少ない時間帯(例えば、ストレージシステム10へのアクセスが少ない時間帯)に行われる。このためストレージシステム10のストレージコントローラ13には、マッピング状態変更処理を短時間で実行することが要求される。本実施形態の上述の効果は、このような要求を満たすことができる。この効果は、マッピング状態変更処理が頻繁に行われる場合に特に顕著となる。
本実施形態では前述したように、第1のチャンクへのアクセスが要求された場合、当該第1のチャンクが仮の高速状態にあるならば、実際のアクセスは高速ストレージ装置11の第2の物理記憶領域を対象に行われる。このため、第1のチャンクが仮の高速状態にある期間に当該第1のチャンクへの書き込みが要求されたならば、実データは高速ストレージ装置11の第2の物理記憶領域のみに書き込まれる。これにより、低速ストレージ装置12の第1の物理記憶領域のデータと高速ストレージ装置11の第2の物理記憶領域のデータとは一致しなくなる。
このため本実施形態においても、第1のチャンクが仮の高速状態にある監視期間に当該第1のチャンクへの書き込みが実行され、且つ当該監視期間の経過後に当該第1のチャンクが仮の高速状態から低速状態に変更される場合には(ステップS25)、低速ストレージ装置12へのアクセスが発生する。但し、このアクセスでは、高速ストレージ装置11の第2の物理記憶領域において書き込み(更新)が発生したブロックのデータ(更新データ)が、低速ストレージ装置12の第1の物理記憶領域の対応するブロックに反映される(書き込まれる)だけである。この更新データの反映の後、第1のタイプのマッピング情報が、第1のチャンクを第2の物理記憶領域にマッピングする状態から、当該第1のチャンクを第1の物理記憶領域にマッピングする状態に更新され、第2の物理記憶領域のデータは破棄(無効化)される。
監視期間の経過後に第1のチャンクが仮の高速状態から低速状態に変更される状況では、当該監視期間における第1のチャンクのアクセス回数は少なく、閾値TH2未満である。この場合、監視期間において第2の物理記憶領域に書き込まれるべきブロックの数も少ないことが期待される。このため、一旦仮の高速状態に遷移した第1のチャンクを低速状態に戻すために、第1の物理記憶領域へのデータの書き込みが発生したとしても、当該データの量は大きく削減される。よって、仮の高速状態から低速状態への変更に伴う第1の物理記憶領域へのデータの書き込みに要する時間は、第2の物理記憶領域の全ブロック(ここでは、8,192ブロック)のデータを第1の物理記憶領域に反映する(書き込む)場合と比較して短くて済む。このように本実施形態によれば、一旦低速状態から仮の高速状態に変更された第1のチャンクへのアクセス回数が次の監視期間に少なくなった場合に、当該第1のチャンクを短時間で低速状態に戻すことができる。これにより、仮の高速状態にありながらアクセス回数が少くなった第1のチャンクの存在が、ストレージシステム10全体の効率に悪影響を及ぼすのを防ぐことができる。
また本実施形態では、データが書き込まれた第2の物理記憶領域のブロック位置が、ビットマップBMを用いて管理される。このビットマップBMは、高速ストレージ装置11よりも高速なメモリ132のライト位置情報領域132eに格納される。本実施形態では、第1のチャンクへの書き込みが要求された場合、当該第1のチャンクが仮の高速状態にあるならば、実データは第2の物理記憶領域に高速で書き込まれる。このとき、実データが書き込まれた第2の物理記憶領域内のブロックの位置を記録するために、ビットマップBMの対応するビットに1がセットされる。しかし、このビット操作は、メモリ132上で行われる。このため、仮の高速状態にある第1のチャンクにデータを書き込む際の性能は、通常の高速状態にあるチャンクにデータを書き込む際の性能と殆ど変わらない。
ビットマップBMがメモリ132に格納される場合、例えばストレージシステム10の電源の突然の遮断により、当該ビットマップBMの示すライト位置情報が失われる可能性がある。しかし、実データ自体は高速ストレージ装置11(第2の物理記憶領域)に残っている。したがって、ライト位置情報が失われた場合には、第2の物理記憶領域全体のデータが低速ストレージ装置12(第1の物理記憶領域)にコピーされれば良い。
なお、本実施形態で適用されるストレージシステム10は、ブロック単位でアクセスされるブロックデバイスとして機能する場合を想定している。しかし、ストレージシステム10が、ファイル単位でアクセスされても構わない。この場合、実データが書き込まれた高速ストレージ装置11の物理記憶領域内の位置をストレージコントローラ13(アクセスコントローラ137)が記録するのに、必ずしもビットマップを使う必要はない。例えば、物理記憶領域内のデータが書かれた位置を示すオフセットアドレス及び当該データの組が順次記録されるライト位置情報を、ストレージコントローラ13が用いても良い。
さて本実施形態では、上述のように低速状態から仮の高速状態に変更された第1のチャンクへのアクセスの回数が、第2の監視期間においても閾値TH1以上の場合(ステップS284のYes)、当該第1のチャンクは仮の高速状態から通常の高速状態に変更される(ステップS29)。この変更のためには、第1のチャンクが第1の物理記憶領域にマッピングされている状態が解除(無効化)されれば良く、データのコピー(移動)を必要としない。このため本実施形態によれば、仮の高速状態から通常の高速状態へ短時間で変更することができる。ここでは、低速ストレージ装置12(第1の物理記憶領域)に残っているデータとライト位置情報とは無効化される。
次に、第3の監視期間において第1のチャンクが通常の高速状態にあり(ステップS23のNo)、この第3の監視期間における当該第1のチャンクへのアクセスの回数が閾値TH2未満であるものとする(ステップS26のYes)。この場合、従来技術であれば、第1のチャンクは、第3の監視期間の後に、高速状態から低速状態に変更される。ここでは、第1のチャンクのデータは、高速ストレージ装置11から低速ストレージ装置12にコピーされる。このとき、高速ストレージ装置11側のデータは破棄される。つまり、第1のチャンクのデータは、高速ストレージ装置11から低速ストレージ装置12に移動される。
ここで、第3の監視期間の次の第4の監視期間における第1のチャンクへのアクセスの回数が閾値TH1以上となったものとする。この場合、従来技術であれば、第1のチャンクは、第4の監視期間の後に、低速状態から再び高速状態に変更される。このとき、低速ストレージ装置12のデータは高速ストレージ装置11に移動される。
これに対して本実施形態では、第1のチャンクは、第3の監視期間の後に高速状態(通常の高速状態)から仮の高速状態に変更される(ステップS27)。ここでは、低速ストレージ装置12から空きの第1の物理記憶領域が取得される。そして第1のチャンクのデータが、高速ストレージ装置11(第2の物理記憶領域)から低速ストレージ装置12(第1の物理記憶領域)にコピーされる。このとき、第1のチャンクが、低速ストレージ装置12の第1の物理記憶領域にもマッピングされるように、第2のタイプのマッピング情報が設定される。しかも本実施形態では、第1のチャンクが高速ストレージ装置11の第2の物理記憶領域にマッピングされた状態は維持される。つまり、第1のチャンクのデータは、高速ストレージ装置11及び低速ストレージ装置12の両方に存在する。
このため本実施形態によれば、第4の監視期間における第1のチャンクへのアクセスの回数が閾値TH1以上となった場合(ステップS28のYes)、低速ストレージ装置12からのデータの読み出しを必要とすることなく、当該第1のチャンクを仮の高速状態から通常の高速状態に短時間で戻すことができる。
このように本実施形態によれば、各チャンクの状態として、低速状態と高速状態との中間に位置する仮の高速状態を用いることで、予想外のアクセス数の変化またはマッピング状態の変更の振動が発生するチャンクのマッピングに関する処理時間を、従来より低減することができる。また本実施形態によれば、低速状態にありながら、アクセス数が多いことが予測されるチャンクは、一旦仮の高速状態に短時間で変更され、当該仮の高速状態においても依然としてアクセス数が多いことが予測されるならば、高速状態(通常の高速状態)に短時間で変更される。仮の高速状態にあるチャンクへのアクセスは、通常の高速状態にあるチャンクへのアクセスと同様に高速アクセスが可能である。また、たとえ仮の高速状態にあるチャンクへのアクセスの状況が変化して、当該チャンクを低速状態に変更すべき場合にも、当該チャンクを短時間で低速状態に変更できる。このため本実施形態で適用される状態遷移の方法は、状態遷移の振動を防止するために、単に低速状態から高速状態への移動を先送りする方法よりも優れている。
同様に、本実施形態によれば、高速状態(通常の高速状態)にありながら、アクセス数が少ないことが予測されるチャンクは、一旦仮の高速状態に短時間で変更され、当該仮の高速状態においても依然としてアクセス数が少ないことが予測されるならば、低速状態に短時間で変更される。また、たとえ仮の高速状態にあるチャンクへのアクセスの状況が変化して、当該チャンクを通常の高速状態に変更すべき場合にも、当該チャンクを短時間で通常の高速状態に変更できる。このため本実施形態で適用される状態遷移の方法は、状態遷移の振動を防止するために、単に高速状態から低速状態への移動を先送りする方法よりも優れている。
なお、前記実施形態では、遷移候補リストCLに登録されたチャンクは、高速ストレージ装置11に空きの物理記憶領域が存在する限り、全て低速状態から仮の高速状態に変更される。しかし、遷移候補リストCLに登録された全てのチャンクが、以下に述べるように必ずしも仮の高速状態に変更される必要はない。ここで、遷移候補リストCLに登録されたチャンク群(つまり、低速状態から仮の高速状態に変更されるべき候補群)を、第1の候補群と呼ぶ。また、通常の高速状態にあって、且つアクセス数が閾値TH2を下回ったチャンク群(つまり、通常の高速状態から仮の高速状態に変更されるべき候補群)を、第2の候補群と呼ぶ。また、仮の高速状態にある群を第3の候補群と呼ぶ。
マッピング管理部134aは、第1の候補群を、当該第2の候補群へのアクセスの回数(またはデータ量の総和)の降順に順位付けする。またマッピング管理部134aは、第2の候補群を、当該第2の候補群へのアクセスの回数(またはデータ量の総和)の昇順に順位付けする。マッピング管理部134aは更に、第3の候補群を、当該第3の候補群へのアクセスの回数(またはデータ量の総和)の降順及び昇順に順位付けする。この場合、アクセスの回数(またはデータ量の総和)の降順に順位付けられた候補群は、仮の高速状態から通常の高速状態に変更されるべき候補の順位を示す。これに対し、アクセスの回数(またはデータ量の総和)の昇順に順位付けられた候補群は、仮の高速状態から低速状態に変更されるべき候補の順位を示す。
マッピング管理部134aは上述の順位付けの結果に基づき、通常の高速状態にあるチャンクの数と仮の高速状態にあるチャンクの数の総和が、所定数または所定の範囲に入る数となるように、それぞれの候補群の上位の候補から順に、マッピング状態の遷移先を決定する。つまりマッピング管理部134aは、それぞれの候補群の上位の候補から順に、通常の高速状態、仮の高速状態または低速状態のいずれに遷移するか、それとも現在の状態を維持するかを決定する。これにより、低速ストレージ装置12よりも小容量の高速ストレージ装置11の物理記憶領域にマッピングされるチャンクの数を、所定数または所定の範囲に収めることができる。
また、前記実施形態では、閾値TH1及びTH2は予め定められた値に固定されている。しかし、マッピング状態変更処理において、より高速側に変更されるべき候補(チャンク)の数CN1と、より低速側に変更されるべき候補(チャンク)の数CN2とに偏りがある場合、次回のマッピング状態変更処理から、閾値TH1及びTH2が変更されても良い。例えば、CN1及びCN2の差の絶対値が所定数αを超えている場合、閾値TH1及びTH2が変更されても良い。例えば、第1の監視期間の後に仮の高速状態にある全てのチャンクのアクセス数の最大値と最小値を、それぞれ、次の第2の監視期間における新たな閾値TH1及びTH2としても良い。
また前記実施形態では、マッピング状態の変更の判定に2つの閾値TH1及びTH2が用いられる。しかし、マッピング状態の変更の判定に1つの閾値THだけを用いても構わない。この場合、マッピング管理部134aは、低速状態にあるチャンクへのアクセスの回数(またはデータ量の総和)が閾値THを超えたならば、当該チャンクを仮の高速状態に変更し、仮の高速状態にあるチャンクへのアクセスの回数(またはデータ量の総和)が閾値THを超えたならば、当該チャンクを通常の高速状態に変更する。また、マッピング管理部134aは、通常の高速状態にあるチャンクへのアクセスの回数(またはデータ量の総和)が閾値THを下回ったならば、当該チャンクを仮の高速状態に変更し、仮の高速状態にあるチャンクへのアクセスの回数(またはデータ量の総和)が閾値THを下回ったならば、当該チャンクを低速状態に変更する。
また、マッピング状態の変更の判定に閾値TH1及びTH2に加えて、閾値TH3及びTH4を用いても構わない。ここで、閾値TH3は閾値TH1よりも大きく、閾値TH4は閾値TH2よりも小さい。つまり、閾値TH1,TH2,TH3及びTH4の間には、
TH4<TH2<TH1<TH3
のような関係がある。
この場合、マッピング管理部134aは、低速状態にあるチャンクへのアクセスの回数(またはデータ量の総和)が閾値TH1を超えたならば、当該チャンクへのアクセスの状況は高速アクセスを必要とする第1の状況にあると判定する。そしてマッピング管理部134aは、このチャンクを仮の高速状態に変更する。またマッピング管理部134aは、仮の高速状態にあるチャンクへのアクセスの回数(またはデータ量の総和)が閾値TH3を超えたならば、仮の高速状態への変更の後も第1の状況が継続していると判定する。そしてマッピング管理部134aは、このチャンクを通常の高速状態に変更する。
またマッピング管理部134aは、通常の高速状態にあるチャンクへのアクセスの回数(またはデータ量の総和)が閾値TH2を下回ったならば、当該チャンクへのアクセスの状況は高速アクセスを不要とする第2の状況にあると判定する。そしてマッピング管理部134aは、このチャンクを仮の高速状態に変更する。またマッピング管理部134aは、仮の高速状態にあるチャンクへのアクセスの回数(またはデータ量の総和)が閾値TH4を下回ったならば、仮の高速状態への変更の後も第2の状況が継続していると判定する。そしてマッピング管理部134aは、このチャンクを低速状態に変更する。
以上説明した少なくとも1つの実施形態によれば、論理アドレスと物理アドレスとの間のマッピング状態の変更に要する処理時間を短縮することができる、ストレージシステム、ストレージコントローラ及び方法を提供できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (16)

  1. 第1のストレージ装置と、
    前記第1のストレージ装置と比較して低速で且つ大容量の第2のストレージ装置と、
    前記第1のストレージ装置へのアクセス及び前記第2のストレージ装置へのアクセスを制御するストレージコントローラとを具備し、
    前記ストレージコントローラは、
    論理ユニット内の第1のサイズの各チャンクが、前記チャンクの論理アドレスが前記第1のストレージ装置内の物理記憶領域の物理アドレスに第1のタイプのマッピング情報によってマッピングされる第1の状態、前記論理アドレスが前記第2のストレージ装置内の物理記憶領域の物理アドレスに前記第1のタイプのマッピング情報によってマッピングされる第2の状態、または前記論理アドレスが前記第1のストレージ装置内の物理記憶領域の物理アドレスに前記第1のタイプのマッピング情報によってマッピングされ且つ前記第2のストレージ装置内の物理記憶領域の物理アドレスに第2のタイプのマッピング情報によってマッピングされる第3の状態のいずれにあるかを管理するマッピング管理部と、
    ホスト装置からの読み出し要求または書き込み要求の指定する論理アドレスを、前記第1のタイプのマッピング情報によってマッピングされた前記第1のストレージ装置または前記第2のストレージ装置内の物理記憶領域の物理アドレスに変換するアドレス変換部と、
    前記変換された物理アドレスに基づいて前記第1のストレージ装置または前記第2のストレージ装置にアクセスするアクセスコントローラとを具備し、
    前記マッピング管理部は、
    前記論理ユニット内のチャンク毎に当該チャンクへのアクセスの状況を監視し、
    第1のチャンクへのアクセスの状況が高速アクセスを必要とする第1の状況で、且つ前記第1のチャンクが前記第2の状態にあるならば、前記第1のチャンクを前記第2の状態から前記第3の状態に変更し、
    前記第2の状態から前記第3の状態への変更の後も前記第1の状況が継続しているならば、前記第1のチャンクを前記第3の状態から前記第1の状態に変更し、
    前記第2の状態から前記第3の状態への変更の後、前記第1のチャンクへのアクセスの状況が前記高速アクセスを不要とする第2の状況に変化したならば、前記第1のチャンクを前記第3の状態から前記第2の状態に変更する
    ストレージシステム。
  2. 前記マッピング管理部は、前記第1のチャンクを前記第2の状態から前記第3の状態に変更するために、前記第1のチャンクに対応する前記第1のタイプの第1のマッピング情報によって前記第1のチャンクの第1の論理アドレスにマッピングされた第1の物理アドレスの指定する前記第2のストレージ装置内の第1の物理記憶領域のデータを、新たに取得される前記第1のストレージ装置内の第2の物理記憶領域にコピーし、且つ前記第1のマッピング情報に設定されている前記第1の物理アドレスを前記第2の物理記憶領域の第2の物理アドレスで置き換え、且つ前記第1の物理アドレスを前記第1のチャンクに対応する前記第2のタイプの第2のマッピング情報に設定する
    請求項1記載のストレージシステム。
  3. 前記アクセスコントローラは、前記第1のチャンクが前記第3の状態にあり、且つ前記第1のチャンクへのデータ書き込みが第1の書き込み要求によって指定された場合、前記第1の物理記憶領域及び前記第2の物理記憶領域のうちの前記第2の物理記憶領域に実データを書き込む請求項2記載のストレージシステム。
  4. 前記マッピング管理部は、
    前記第3の状態にあるチャンク毎に、書き込みアクセスによってデータが変更された書き込み位置を書き込み位置情報に基づいて管理し、
    前記第1のチャンクが前記第3の状態にあり、且つ前記第1のチャンクへの前記データ書き込みの指定に応じて前記第2の物理記憶領域に前記実データが書き込まれた場合、データが変更された書き込み位置を示す情報を前記第1のチャンクに対応付けられた第1の書き込み位置情報に追加し、
    前記第1のチャンクを前記第3の状態から前記第2の状態に変更するために、前記第1の書き込み位置情報によって示される前記第2の物理記憶領域内の変更されたデータを前記第1の物理記憶領域に反映し、且つ前記第1のマッピング情報に設定されている前記第2の物理アドレスを前記第2のマッピング情報に設定されている前記第1の物理アドレスで置き換え、且つ前記第2のマッピング情報を無効化し、且つ前記第1の書き込み位置情報のための第1の記憶領域、及び前記第2の物理記憶領域を解放する
    請求項3記載のストレージシステム。
  5. 前記マッピング管理部は、前記第1のチャンクを前記第3の状態から前記第1の状態に変更するために、前記第2のマッピング情報を無効化し、且つ前記第1の記憶領域及び前記第1の物理記憶領域を解放する
    請求項4記載のストレージシステム。
  6. 前記ストレージコントローラは、前記書き込み位置情報が格納される記憶領域を有する、前記第1のストレージ装置よりも高速のメモリを更に具備する請求項4記載のストレージシステム。
  7. 前記マッピング管理部は、
    前記第1のチャンクへのアクセスの状況が前記第2の状況で、且つ前記第1のチャンクが前記第1の状態にあるならば、前記第1のチャンクを前記第1の状態から前記第3の状態に変更し、
    前記第1の状態から前記第3の状態への変更の後も前記第2の状況が継続しているならば、前記第1のチャンクを前記第3の状態から前記第2の状態に変更し、
    前記第1の状態から前記第3の状態への変更の後、前記第1のチャンクへのアクセスの状況が前記第1の状況に変化したならば、前記第1のチャンクを前記第3の状態から前記第1の状態に変更する
    請求項1記載のストレージシステム。
  8. 前記マッピング管理部は、前記第1のチャンクを前記第1の状態から前記第3の状態に変更するために、前記第1のチャンクに対応する前記第1のタイプの第1のマッピング情報によって前記第1のチャンクの第1の論理アドレスにマッピングされた第2の物理アドレスの指定する前記第1のストレージ装置内の第2の物理記憶領域のデータを、新たに取得される前記第2のストレージ装置内の第1の物理記憶領域にコピーし、且つ前記第1の物理記憶領域の第1の物理アドレスを前記第1のチャンクに対応する前記第2のタイプの第2のマッピング情報に設定する
    請求項7記載のストレージシステム。
  9. 前記チャンク毎に、監視期間内に発生する当該チャンクへのアクセスの回数またはデータ量の総和をカウントするアクセスカウンタを更に具備し、
    前記マッピング管理部は、前記監視期間を単位に、前記チャンク毎の前記アクセスカウンタの値に基づいて当該チャンクへのアクセスの状況を判断する
    請求項7記載のストレージシステム。
  10. 前記マッピング管理部は、
    前記第1のチャンクに対応する第1のアクセスカウンタの値が閾値よりも大きいならば、前記第1のチャンクへのアクセスの状況が前記第1の状況にあると判断し、
    前記第1のアクセスカウンタの値が前記閾値よりも小さいならば、前記第1のチャンクが前記第2の状況にあると判断する
    請求項9記載のストレージシステム。
  11. 前記マッピング管理部は、
    前記第1のチャンクに対応する第1のアクセスカウンタの値が第1の閾値よりも大きいならば、前記第1のチャンクへのアクセスの状況が前記第1の状況にあると判断し、
    前記第1のアクセスカウンタの値が、前記第1の閾値よりも小さな第2の閾値よりも小さいならば、前記第1のチャンクへのアクセスの状況が前記第2の状況にあると判断する
    請求項9記載のストレージシステム。
  12. 前記マッピング管理部は、
    前記第1のアクセスカウンタの値が、前記第1の閾値と前記第2の閾値との間にあるならば、前記第1のチャンクへのアクセスの状況が第3の状況にあると判断し、
    前記第1のチャンクへのアクセスの状況が前記第3の状況で、且つ前記第1のチャンクが前記第3の状態にあるならば、前記第1のチャンクを前記第3の状態に維持する
    請求項11記載のストレージシステム。
  13. 前記マッピング管理部は、
    前記第1のチャンクに対応する第1のアクセスカウンタの値が第1の閾値よりも大きいならば、前記第1のチャンクへのアクセスの状況が前記第1の状況にあると判断し、
    前記第1のアクセスカウンタの値が前記第1の閾値よりも小さな第2の閾値よりも小さいならば、前記第1のチャンクへのアクセスの状況が前記第2の状況にあると判断し、
    第1の監視期間における前記第1のアクセスカウンタの第1の値に基づいて前記第1のチャンクを前記第3の状態に変更した後、前記第1の監視期間の次の第2の監視期間における前記第1のアクセスカウンタの第2の値が前記第1の閾値よりも大きな第3の閾値よりも大きいならば、前記第1の状況が継続していると判断し、
    第3の監視期間における前記第1のアクセスカウンタの第3の値に基づいて前記第1のチャンクを前記第3の状態に変更した後、前記第3の監視期間の次の第4の監視期間における前記第1のアクセスカウンタの第4の値が前記第2の閾値よりも小さな第4の閾値よりも小さいならば、前記第2の状況が継続していると判断する、
    請求項9記載のストレージシステム。
  14. 前記マッピング管理部は、
    前記第1のアクセスカウンタの値が、前記第3の閾値と前記第4の閾値との間にあるならば、前記第1のチャンクへのアクセスの状況が第3の状況にあると判断し、
    前記第1のチャンクへのアクセスの状況が前記第3の状況で、且つ前記第1のチャンクが前記第3の状態にあるならば、前記第1のチャンクを前記第3の状態に維持する
    請求項13記載のストレージシステム。
  15. 第1のストレージ装置へのアクセス、及び前記第1のストレージ装置と比較して低速で且つ大容量の第2のストレージ装置へのアクセスを制御するストレージコントローラにおいて、
    論理ユニット内の第1のサイズの各チャンクが、前記チャンクの論理アドレスが前記第1のストレージ装置内の物理記憶領域の物理アドレスに第1のタイプのマッピング情報によってマッピングされる第1の状態、前記論理アドレスが前記第2のストレージ装置内の物理記憶領域の物理アドレスに前記第1のタイプのマッピング情報によってマッピングされる第2の状態、または前記論理アドレスが前記第1のストレージ装置内の物理記憶領域の物理アドレスに前記第1のタイプのマッピング情報によってマッピングされ且つ前記第2のストレージ装置内の物理記憶領域の物理アドレスに第2のタイプのマッピング情報によってマッピングされる第3の状態のいずれにあるかを管理するマッピング管理部と、
    ホスト装置からの読み出し要求または書き込み要求の指定する論理アドレスを、前記第1のタイプのマッピング情報によってマッピングされた前記第1のストレージ装置または前記第2のストレージ装置内の物理記憶領域の物理アドレスに変換するアドレス変換部と、
    前記変換された物理アドレスに基づいて前記第1のストレージ装置または前記第2のストレージ装置にアクセスするアクセスコントローラとを具備し、
    前記マッピング管理部は、
    前記論理ユニット内のチャンク毎に当該チャンクへのアクセスの状況を監視し、
    第1のチャンクへのアクセスの状況が高速アクセスを必要とする第1の状況で、且つ前記第1のチャンクが前記第2の状態にあるならば、前記第1のチャンクを前記第2の状態から前記第3の状態に変更し、
    前記第2の状態から前記第3の状態への変更の後も前記第1の状況が継続しているならば、前記第1のチャンクを前記第3の状態から前記第1の状態に変更し、
    前記第2の状態から前記第3の状態への変更の後、前記第1のチャンクへのアクセスの状況が前記高速アクセスを不要とする第2の状況に変化したならば、前記第1のチャンクを前記第3の状態から前記第2の状態に変更する
    ストレージコントローラ。
  16. 第1のストレージ装置へのアクセス、及び前記第1のストレージ装置と比較して低速で且つ大容量の第2のストレージ装置へのアクセスを制御するストレージコントローラにおいて論理アドレスと物理アドレスとの間のマッピングを管理する方法であって、
    論理ユニット内の第1のサイズの各チャンク毎に当該チャンクへのアクセスの状況を監視し、
    第1のチャンクへのアクセスの状況が高速アクセスを必要とする第1の状況で、且つ前記第1のチャンクが、前記第1のチャンクの第1の論理アドレスが前記第1のストレージ装置内の第2の物理記憶領域の第2の物理アドレスに第1のタイプの第1のマッピング情報によってマッピングされる第1の状態、前記第1の論理アドレスが前記第2のストレージ装置内の第1の物理記憶領域の第1の物理アドレスに前記第1のマッピング情報によってマッピングされる第2の状態、または前記第1の論理アドレスが前記第2の物理アドレスに前記第1のマッピング情報によってマッピングされ且つ前記第1の物理アドレスに第2のタイプの第2のマッピング情報によってマッピングされる第3の状態のうちの前記第2の状態にあるならば、前記第1のチャンクを前記第2の状態から前記第3の状態に変更し、
    前記第2の状態から前記第3の状態への変更の後も前記第1の状況が継続しているならば、前記第1のチャンクを前記第3の状態から前記第1の状態に変更し、
    前記第2の状態から前記第3の状態への変更の後、前記第1のチャンクへのアクセスの状況が前記高速アクセスを不要とする第2の状況に変化したならば、前記第1のチャンクを前記第3の状態から前記第2の状態に変更し、
    ホスト装置からの読み出し要求または書き込み要求の指定する論理アドレスを、前記第1のタイプのマッピング情報によってマッピングされた前記第1のストレージ装置または前記第2のストレージ装置内の物理記憶領域の物理アドレスに変換し、
    前記変換された物理アドレスに基づいて前記第1のストレージ装置または前記第2のストレージ装置にアクセスする
    方法。
JP2013517503A 2013-03-29 2013-03-29 論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法 Active JP5362145B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/059527 WO2014155666A1 (ja) 2013-03-29 2013-03-29 論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法

Publications (2)

Publication Number Publication Date
JP5362145B1 true JP5362145B1 (ja) 2013-12-11
JPWO2014155666A1 JPWO2014155666A1 (ja) 2017-02-16

Family

ID=49850326

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013517503A Active JP5362145B1 (ja) 2013-03-29 2013-03-29 論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法

Country Status (4)

Country Link
US (1) US9063877B2 (ja)
JP (1) JP5362145B1 (ja)
CN (1) CN104246721B (ja)
WO (1) WO2014155666A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5730446B1 (ja) * 2014-03-18 2015-06-10 株式会社東芝 トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム
WO2016016989A1 (ja) * 2014-07-31 2016-02-04 株式会社 東芝 階層化ストレージシステム、ストレージコントローラ及びプログラム
US9891828B2 (en) 2016-03-16 2018-02-13 Kabushiki Kaisha Toshiba Tiered storage system, storage controller, and tiering control method
US10235071B2 (en) 2016-11-29 2019-03-19 Kabushiki Kaisha Toshiba Tiered storage system, storage controller and tiering control method
KR20220081787A (ko) 2020-12-09 2022-06-16 (주)세고스 냉장고용 선반 제조방법 및 그를 이용한 선반

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6107625B2 (ja) * 2013-12-02 2017-04-05 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US9876714B2 (en) * 2014-11-14 2018-01-23 Nicira, Inc. Stateful services on stateless clustered edge
US11533255B2 (en) 2014-11-14 2022-12-20 Nicira, Inc. Stateful services on stateless clustered edge
EP3219058B1 (en) * 2014-11-14 2020-11-18 Nicira Inc. Stateful services on stateless clustered edge
US10044617B2 (en) 2014-11-14 2018-08-07 Nicira, Inc. Stateful services on stateless clustered edge
US9866473B2 (en) 2014-11-14 2018-01-09 Nicira, Inc. Stateful services on stateless clustered edge
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
GB2539435B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
GB2539433B8 (en) 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
EP3113026B1 (en) * 2015-06-29 2019-07-24 aicas GmbH Automatic memory management using a memory management unit
CN106372000B (zh) * 2015-07-20 2019-10-11 群联电子股份有限公司 映射表更新方法、存储器控制电路单元及存储器存储装置
US10127103B2 (en) * 2016-09-07 2018-11-13 Sandisk Technologies Llc System and method for detecting and correcting mapping table errors in a non-volatile memory system
US9916256B1 (en) 2016-09-12 2018-03-13 Toshiba Memory Corporation DDR storage adapter
CN107844259B (zh) * 2016-09-18 2020-06-16 华为技术有限公司 数据访问方法、路由装置和存储系统
US11296984B2 (en) 2017-07-31 2022-04-05 Nicira, Inc. Use of hypervisor for active-active stateful network service cluster
US11570092B2 (en) 2017-07-31 2023-01-31 Nicira, Inc. Methods for active-active stateful network service cluster
US10951584B2 (en) 2017-07-31 2021-03-16 Nicira, Inc. Methods for active-active stateful network service cluster
US11153122B2 (en) 2018-02-19 2021-10-19 Nicira, Inc. Providing stateful services deployed in redundant gateways connected to asymmetric network
US10698630B2 (en) * 2018-06-13 2020-06-30 EMC IP Holding Company LLC Intra-cluster migration for elastic cloud storage devices
US11023129B2 (en) 2018-12-03 2021-06-01 EMC IP Holding Company LLC Hybrid intra-cluster migration of data between storage devices using chunk usage efficiency
US10936501B2 (en) 2019-02-01 2021-03-02 Kinaxis Inc. Cache management for search optimization
US11556470B2 (en) 2021-02-02 2023-01-17 Kinaxis Inc. Cache management for search optimization
US11775433B2 (en) 2019-02-01 2023-10-03 Kinaxis Inc. Cache management for search optimization
US11237981B1 (en) 2019-09-30 2022-02-01 Amazon Technologies, Inc. Memory scanner to accelerate page classification
US11799761B2 (en) 2022-01-07 2023-10-24 Vmware, Inc. Scaling edge services with minimal disruption
US11962564B2 (en) 2022-02-15 2024-04-16 VMware LLC Anycast address for network address translation at edge
US20230325321A1 (en) * 2022-04-11 2023-10-12 Samsung Electronics Co., Ltd. Systems and methods for pre-populating address translation cache

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006139552A (ja) * 2004-11-12 2006-06-01 Hitachi Ltd ストレージ装置及びストレージ装置のデータライフサイクル管理方法
JP2007316995A (ja) * 2006-05-26 2007-12-06 Hitachi Ltd 記憶システム及びデータ管理方法
JP2010097359A (ja) * 2008-10-15 2010-04-30 Hitachi Ltd ファイル管理方法および階層管理ファイルシステム
WO2011076565A1 (en) * 2009-12-22 2011-06-30 International Business Machines Corporation Hybrid storage subsystem
JP2011192259A (ja) * 2010-03-16 2011-09-29 Hitachi Ltd ストレージシステムのためのi/o変換方法及び装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396619A (en) * 1993-07-26 1995-03-07 International Business Machines Corporation System and method for testing and remapping base memory for memory diagnostics
US6480948B1 (en) * 1999-06-24 2002-11-12 Cirrus Logic, Inc. Configurable system memory map
JP2007004710A (ja) 2005-06-27 2007-01-11 Nec Corp ストレージアクセス方式、データ転送装置、ストレージアクセス方法、及びプログラム
US8316182B2 (en) * 2009-08-11 2012-11-20 International Business Machines Corporation Hierarchical storage management for database systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006139552A (ja) * 2004-11-12 2006-06-01 Hitachi Ltd ストレージ装置及びストレージ装置のデータライフサイクル管理方法
JP2007316995A (ja) * 2006-05-26 2007-12-06 Hitachi Ltd 記憶システム及びデータ管理方法
JP2010097359A (ja) * 2008-10-15 2010-04-30 Hitachi Ltd ファイル管理方法および階層管理ファイルシステム
WO2011076565A1 (en) * 2009-12-22 2011-06-30 International Business Machines Corporation Hybrid storage subsystem
JP2011192259A (ja) * 2010-03-16 2011-09-29 Hitachi Ltd ストレージシステムのためのi/o変換方法及び装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5730446B1 (ja) * 2014-03-18 2015-06-10 株式会社東芝 トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム
WO2016016989A1 (ja) * 2014-07-31 2016-02-04 株式会社 東芝 階層化ストレージシステム、ストレージコントローラ及びプログラム
JPWO2016016989A1 (ja) * 2014-07-31 2017-04-27 株式会社東芝 階層化ストレージシステム、ストレージコントローラ及びプログラム
US10095439B2 (en) 2014-07-31 2018-10-09 Kabushiki Kaisha Toshiba Tiered storage system, storage controller and data location estimation method
US9891828B2 (en) 2016-03-16 2018-02-13 Kabushiki Kaisha Toshiba Tiered storage system, storage controller, and tiering control method
US10235071B2 (en) 2016-11-29 2019-03-19 Kabushiki Kaisha Toshiba Tiered storage system, storage controller and tiering control method
KR20220081787A (ko) 2020-12-09 2022-06-16 (주)세고스 냉장고용 선반 제조방법 및 그를 이용한 선반

Also Published As

Publication number Publication date
US9063877B2 (en) 2015-06-23
JPWO2014155666A1 (ja) 2017-02-16
CN104246721B (zh) 2017-02-22
WO2014155666A1 (ja) 2014-10-02
CN104246721A (zh) 2014-12-24
US20140297964A1 (en) 2014-10-02

Similar Documents

Publication Publication Date Title
JP5362145B1 (ja) 論理アドレスと物理アドレスとの間のマッピングを管理するストレージシステム、ストレージコントローラ及び方法
US9465554B2 (en) Tiered caching and migration in differing granularities
US9411742B2 (en) Use of differing granularity heat maps for caching and migration
US9430404B2 (en) Thinly provisioned flash cache with shared storage pool
JP5707540B1 (ja) 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法
US10671309B1 (en) Predicting usage for automated storage tiering
WO2014142337A1 (ja) ストレージ装置と方法及びプログラム
US9471252B2 (en) Use of flash cache to improve tiered migration performance
CN109002400B (zh) 一种内容感知型计算机缓存管理系统及方法
JP6165909B1 (ja) 階層化ストレージシステム、ストレージコントローラ、及び階層化制御方法
JP6022116B1 (ja) 階層化ストレージシステム、ストレージコントローラ及びレプリケーション初期化方法
WO2012143980A1 (en) Storage system and its data processing method
US20240111429A1 (en) Techniques for collecting and utilizing activity metrics
US20240176741A1 (en) Caching techniques using a two-level read cache

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130806

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130903

R150 Certificate of patent or registration of utility model

Ref document number: 5362145

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350