JP5707540B1 - 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法 - Google Patents

階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法 Download PDF

Info

Publication number
JP5707540B1
JP5707540B1 JP2014530441A JP2014530441A JP5707540B1 JP 5707540 B1 JP5707540 B1 JP 5707540B1 JP 2014530441 A JP2014530441 A JP 2014530441A JP 2014530441 A JP2014530441 A JP 2014530441A JP 5707540 B1 JP5707540 B1 JP 5707540B1
Authority
JP
Japan
Prior art keywords
data
cache
area
physical volume
storage
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
JP2014530441A
Other languages
English (en)
Other versions
JPWO2015114809A1 (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 JP5707540B1 publication Critical patent/JP5707540B1/ja
Publication of JPWO2015114809A1 publication Critical patent/JPWO2015114809A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

実施形態によれば、階層化ストレージシステムのストレージコントローラが提供される。階層化ストレージシステムは、第1の階層の第1の物理ボリュームを含む第1のストレージ装置と、第1の階層よりも低い第2の階層の第2の物理ボリュームを含む第2のストレージ装置とを具備する。ストレージコントローラのキャッシュ制御部は、前記第1の物理ボリューム内の記憶領域を、データ領域の集合とキャッシュ領域の集合とに分割する。前記キャッシュ制御部は、前記第2の物理ボリュームから前記第1の物理ボリュームに移動されるべき第1のデータが前記第1の物理ボリュームの第1のキャッシュ領域にも格納されている場合に、前記第1のキャッシュ領域を第1のデータ領域に変更する。

Description

本発明の実施形態は、階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法に関する。
近年、ストレージ階層化技術を利用した種々のストレージ装置が開発されている。ストレージ階層化技術は、性能の異なる複数種類のストレージ装置の物理的な記憶領域(以下、物理ボリュームと称する)を束ねる。これによりストレージ階層化技術は、複数の物理ボリュームを実体として有する少なくとも1つの仮想的な記憶領域(以下、論理ボリュームと称する)を構成する。論理ボリュームは、ホストコンピュータから認識可能であり、当該ホストコンピュータに提供される。ストレージ階層化技術はさらに、データが格納されるべきストレージ装置を、アクセス頻度のようなデータの特性に応じて決定する。つまりストレージ階層化技術では、データは複数のストレージ装置に階層的に格納される。ストレージ階層化技術では、同種類のストレージ装置(物理ボリューム)の集合は、「階層」と呼ばれる。一般に性能が高いストレージ装置ほど、上位の階層に位置付けられる。ストレージ階層化技術を適用したストレージシステムは、階層化ストレージシステムと呼ばれる。
階層化ストレージシステムにおいて、ストレージコントローラは、論理ボリュームに例えばアクセス頻度の高いデータを格納する場合、当該データを、当該論理ボリュームを構成する物理ボリュームのうち、より性能が高い(つまり、より上位の階層の)ストレージ装置の物理ボリュームに格納するのが一般的である。また、アクセス頻度のようなデータ特性は、時間の経過と共に変化する。そこでストレージコントローラは、データの特性の変化に応じて、データの格納先を変更する。つまりストレージコントローラは、データの特性の変化に応じて、物理ボリューム(階層)間でデータの移動・再配置を行う。
一般に、頻繁にアクセスされるデータ、或いは高い応答性能が求められるデータは、ストレージ装置に格納されるデータの一部に限られる。このため、高性能なストレージ装置ほど単位記憶容量当たりの単価が高くなることを鑑みると、すべてのデータが高性能なストレージ装置に格納されることは好ましくない。そこで階層化ストレージシステムにおいてストレージコントローラは、アクセス頻度が高いデータを、フラッシュストレージ装置のようなアクセス性能に優れたストレージ装置(上位階層)に格納する。またストレージコントローラは、アクセス頻度が低いデータを、ハードディスクドライブまたは磁気テープ装置のような、安価なストレージ装置(下位階層)に格納する。これにより、データの大半を安価なストレージ装置に格納できるため、ストレージシステムを構築するのに要するコストを削減できる。
特開2010−108341号公報 特開2012−252514号公報 特開2009−43030号公報
階層化ストレージシステムでは、データの特性が変化した場合に、前述したように、階層間で当該データが移動される。このデータ移動のためにストレージコントローラは、データごとに(より詳細には、一定サイズのデータの塊ごとに)、アクセス頻度のようなデータ特性を収集する。そしてストレージコントローラは、データごとのデータ特性に基づき、例えば一定の時間間隔Tで、格納先の階層が変更されるべきデータを決定する。ストレージコントローラは、決定されたデータを移動する。
しかし、時間間隔Tが比較的大きな値に設定された場合、特性が変化したデータを即座に移動することは難しい。一方、時間間隔Tが比較的小さな値に設定された場合、データ移動が頻繁に行われる。すると、下位階層から上位階層へのデータ移動、或いは上位階層から下位階層へのデータ移動のいずれの場合にも、ストレージ装置間のデータ入出力(以下、データ移動入出力と称する)の回数が増大する。このデータ移動入出力の回数の増大は、通常のデータアクセスにおける入出力性能の劣化を招く。また、上位階層に移動されたデータへのアクセス集中が一過性のものであった場合、例えば当該データへのアクセス頻度が低下した後に、当該データは下位階層に移動されることが望ましい。しかし、そのためのデータ移動入出力が発生する。
このように従来の階層化ストレージシステムでは、「階層間のデータ移動の抑制」と「入出力性能の維持(下位階層へのデータアクセスの抑制)」とはトレードオフの関係にある。
一方、低速なストレージ装置に対するアクセスを高速化する方法として、従来からキャッシュ技術が知られている。また、高速なストレージ装置の一部の記憶領域を、低速なストレージ装置のキャッシュとして利用するキャッシュ技術も知られている。キャッシュに格納されたデータに関しては、階層間のデータ移動なしに、入出力性能を維持することが可能となる
ここで、従来のキャッシュ技術が従来の階層化ストレージシステムに適用されるものとする。また、下位階層のデータがキャッシュに格納されているものとする。この場合、従来技術は、下位階層へのデータアクセスを抑制することはできる。しかし従来技術は、データが階層化ストレージ機能によって上位階層に移動される場合に発生するデータ移動入出力を抑制することは難しい。
また従来技術は、いずれの階層へのデータアクセスであるかに無関係に、キャッシュにデータを格納する。このため、キャッシュには、上位階層のデータと下位階層のデータが混在する。特に、キャッシュにおいて、上位階層のデータの占める割合は高い。その理由は、上位階層のデータの方が一般にアクセス頻度が高いことによる。このため、下位階層のデータをキャッシュするための領域が少なくなり、その結果として下位階層へのデータアクセスが増大する。
本発明が解決しようとする課題は、階層間の物理的なデータ移動を抑制しつつも入出力性能を維持することができる、階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法を提供することにある。
実施形態によれば、階層化ストレージシステムにおいて、ホストコンピュータからの入出力要求を処理するストレージコントローラが提供される。前記階層化ストレージシステムは、第1の物理ボリュームを含む第1のストレージ装置と、第2の物理ボリュームを含み、かつ前記第1のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第2のストレージ装置とを具備する。前記ストレージコントローラは、論理ボリューム管理部と、階層管理部と、キャッシュ制御部とを具備する。前記論理ボリューム管理部は、前記第1の物理ボリュームと前記第2の物理ボリュームとから構成された論理ボリュームを前記ホストコンピュータに提供する。前記階層管理部は、前記第1の物理ボリュームを第1の階層、前記第2の物理ボリュームを前記第1の階層よりも低い第2の階層として管理し、かつデータの特性に基づき、当該データが格納されるべき階層を決定または変更する。前記キャッシュ制御部は、前記第1の物理ボリューム内の記憶領域を、データが格納されるデータ領域の集合とキャッシュデータが格納されるキャッシュ領域の集合とに分割し、前記キャッシュ領域の集合を前記階層化ストレージシステムのキャッシュとして機能させる。前記キャッシュ制御部はさらに、前記第2の物理ボリュームに格納されている第1のデータが前記第1の物理ボリュームに移動されるべきであると前記階層管理部によって判断され、かつ前記第1のデータが前記第1の物理ボリュームの第1のキャッシュ領域に格納されている場合に、前記第1のキャッシュ領域を第1のデータ領域に変更する。
図1は、実施形態に係るコンピュータネットワークシステムの典型的なハードウェア構成を示すブロック図である。 図2は、図2は、図1に示されるストレージコントローラの典型的な機能構成を主として示すブロック図である。 図3は、図2に示される物理ボリューム管理テーブルのデータ構造例を示す図である。 図4は、図2に示される論理ボリューム管理テーブルのデータ構造例を示す図である。 図5は、図2に示されるキャッシュ管理テーブルのデータ構造例を示す図である。 図6は、同実施形態における階層間のデータ移動の例を示す図である。 図7は、同実施形態で適用される階層変更処理の典型的な手順を示すフローチャートである。 図8は、階層変更処理に含まれている領域置換処理の典型的な手順を示すフローチャートである。 図9は、同実施形態で適用される入出力処理の典型的な手順を示すフローチャートである。 図10は、領域置換処理に含まれているデータ領域解放処理の典型的な手順を示すフローチャートである。 図11は、同実施形態で適用されるキャッシュ領域解放処理の典型的な手順を示すフローチャートである。 図12は、同実施形態で適用されるキャッシュ同期化処理の典型的な手順を示すフローチャートである。
以下、種々の実施の形態につき図面を参照して説明する。
図1は、1つの実施形態に係るコンピュータネットワークシステムの典型的なハードウェア構成を示すブロック図である。コンピュータネットワークシステムは、階層化ストレージシステム10、ホストコンピュータ(以下、ホストと称する)20、及びネットワーク30から構成される。階層化ストレージシステム10(より詳細には、階層化ストレージシステム10のストレージコントローラ13)は、ネットワーク30を介してホスト20と接続されている。ホスト20は、階層化ストレージシステム10を外部ストレージ装置として利用する。ネットワーク30は、例えば、ストレージエリアネットワーク(SAN)、インターネット或いはイントラネットである。インターネット或いはイントラネットは、例えばイーサネット(登録商標)により構成される。
階層化ストレージシステム10は、高速ストレージ装置(以下、高速ストレージと称する)11と、低速ストレージ装置(以下、低速ストレージと称する)12と、ストレージコントローラ13と、ストレージインタフェースバス14とを備えている。高速ストレージ11は、例えば、フラッシュRAID(Redundant Arrays of Inexpensive DisksまたはRedundant Arrays of Independent Disks)と呼ばれるフラッシュストレージアレイから構成される。本実施形態において高速ストレージ11は、複数のフラッシュメモリボード110を用いて実現される。フラッシュメモリボード110の各々は、フラッシュメモリの集合を含む。なお、フラッシュメモリボード110の各々が、フラッシュメモリ以外の書き換え可能な不揮発性メモリの集合を含んでいても良い。高速ストレージ11は、ストレージインタフェースバス14に接続されている。
高速ストレージ11の記憶領域は、データ領域の集合とキャッシュ領域の集合とに分割して用いられる。本実施形態において、データ領域の集合の総サイズとキャッシュ領域の集合の総サイズは固定ではなく、後述されるように動的に変更される。データ領域は、通常のデータ(実データ)が格納される記憶領域として用いられる。キャッシュ領域は、キャッシュデータが格納される記憶領域(キャッシュ)として用いられる。
低速ストレージ12は、例えば、RAIDと呼ばれるHDD(Hard Disk Drive)アレイから構成される。本実施形態において低速ストレージ12は、フラッシュメモリよりもアクセス速度が遅い複数のHDD120を用いて実現される。つまり低速ストレージ12のアクセス性能(アクセス速度)は、高速ストレージ11のそれよりも低い。低速ストレージ12はストレージインタフェースバス14に接続されている。なお、高速ストレージ11及び低速ストレージ12が必ずしもアレイ構成を有している必要はない。
一般にストレージ階層化技術では、同一種類のストレージ装置をまとめた単位は、階層と呼ばれる。また、アクセス性能で比較した場合に、アクセス性能が高いストレージ装置ほど、より上位の階層に位置付けられる。同様に、アクセス性能が低いストレージ装置ほど、より下位の階層に位置付けられる。図1に示される階層化ストレージシステムには、
アクセス性能の異なる2つの高速ストレージ11及び低速ストレージ12が存在する。この場合、高速ストレージ11は上位階層(第1の階層)に、低速ストレージ12は下位階層(第2の階層)に、それぞれ位置付けられる。つまり本実施形態は、ある基準のアクセス性能よりも高い第1のアクセス性能を有する高速ストレージ11の階層を上位階層と呼び、当該基準のアクセス性能よりも低い第2のアクセス性能を有する低速ストレージ12の階層を下位階層と呼ぶ。なお、階層化ストレージシステム10が、例えば磁気テープ装置のような、低速ストレージ12よりもさらに低速(低階層)の低速ストレージ(第3の階層の低速ストレージ)を備えていても良い。
ストレージコントローラ13は、ストレージインタフェースバス14を介して高速ストレージ11及び低速ストレージ12と接続されている。ストレージインタフェースバス14のインタフェース種別は、例えば、スモールコンピュータシステムインタフェース(SCSI)、ファイバチャネル(FC)、シリアルアタッチドSCSI(SAS)、或いはシリアルATアタッチメント(SATA)である。
ストレージコントローラ13は、高速ストレージ11及び低速ストレージ12を制御する。ストレージコントローラ13は、アレイ管理機能(アレイ管理部201)と、入出力(I/O)制御機能(I/O制御部202)と、論理ボリューム管理機能(論理ボリューム管理部203)と、階層管理機能(階層管理部204)と、キャッシュ制御機能(キャッシュ制御部205)とを有する。
ストレージコントローラ13(より詳細には、コントローラ13の後述のCPU136)は、複数のフラッシュメモリボード110から構成されるフラッシュストレージアレイ(つまり高速ストレージ11)を、アレイ管理機能を用いて構築する。同様にストレージコントローラ13(CPU136)は、複数のHDD120から構成されるHDDアレイ(つまり低速ストレージ12)を、アレイ管理機能を用いて構築する。
ストレージコントローラ13(CPU136)は、ホスト20から受信された要求を、I/O制御機能を用いて処理する。ホスト20からの要求がデータアクセス要求である場合、ストレージI/F132に処理を委譲する。
ストレージコントローラ13(CPU136)は、ホスト20に提供される(つまり、ホスト20により認識可能な)論理ボリュームを、論理ボリューム管理機能を用いて構築(定義)する。本実施形態において論理ボリュームは、高速ストレージ11及び低速ストレージ12内の物理ボリューム(第1及び第2の物理ボリューム)を用いて構成される仮想的な記憶領域である。つまり論理ボリュームは、高速ストレージ11及び低速ストレージ12内の物理的な記憶領域を実体として論理的に実現される。
ストレージコントローラ13(CPU136)は、階層管理機能を用いて、高速ストレージ11及び低速ストレージ12の記憶領域をそれぞれ上位階層及び下位階層として管理する。ストレージコントローラ13(CPU136)はまた、階層管理機能を用いて、データを階層的に管理する。つまりストレージコントローラ13(CPU136)は、アクセス頻度のようなデータ特性に応じて、論理ボリューム内のデータを上位階層または下位階層に分類する。ストレージコントローラ13(CPU136)はさらに、階層管理機能を用いて、階層間のデータ移動を行う。すなわちストレージコントローラ13(CPU136)は、後述の物理ボリューム管理テーブル135aに基づき、アクセス頻度のようなデータ特性に応じて、論理ボリューム内のデータに対応する物理記憶領域内のデータ(実データ)を、別の物理ボリュームに移動する。例えば、アクセス頻度が高いデータが低速ストレージ12(つまり、アクセス性能の低いストレージ装置)内の物理ボリュームに格納されている場合、ストレージコントローラ13(CPU136)は、当該実データを高速ストレージ11(つまり、アクセス性能の高いストレージ装置)内の物理ボリュームに移動する。このストレージ装置(階層)間のデータ移動は、ストレージI/F132を介して行われる。
ストレージコントローラ13(CPU136)は、キャッシュ制御機能を用いて、キャッシュ領域へのデータアクセス(つまり、キャッシュ領域へのデータの書き込みまたはキャッシュ領域からのデータの読み出し)を行う。ストレージコントローラ13(CPU136)はまた、高速ストレージ11の記憶領域の一部を、キャッシュ制御機能を用いてキャッシュとして管理する。すなわちストレージコントローラ13(CPU136)は後述のキャッシュ管理テーブル135cに基づき、高速ストレージ11の記憶領域を、キャッシュ制御機能を用いて、前述のデータ領域の集合とキャッシュ領域の集合とに分割して管理する。ストレージコントローラ13(CPU136)はさらに、ストレージ装置間のデータ移動(より詳細には、物理的なデータ移動)を抑制するためのキャッシュ制御を、キャッシュ制御機能を用いて実行する。
ストレージコントローラ13は、ホストインタフェースコントローラ(以下、ホストI/Fと称する)131と、ストレージインタフェイスコントローラ(以下、ストレージI/Fと称する)132と、フラッシュROM(FROM)133と、ローカルメモリ134と、ローカルHDD135と、CPU136と、チップセット137と、内部バス138とを備えている。ストレージコントローラ13は、ホストI/F131によりネットワーク30を介してホスト20と接続される。ホストI/F131のインタフェース種別は、例えば、FC、或いはインターネットSCSI(iSCSI)である。
ホストI/F131は、ホスト20との間のデータ転送(データ転送プロトコル)を制御する。ホストI/F131は、ホスト20からの論理ボリュームに対するデータアクセス要求(リード要求またはライト要求)を受信し、当該データアクセス要求に対する応答を返信する。ホストI/F131は、ホスト20からデータアクセス要求を受信すると、当該要求を、内部バス138及びチップセット137を経由してCPU136に伝達する。データアクセス要求を受け取ったCPU136は、後述のストレージ制御プログラムに従い、当該データアクセス要求を処理する。
ストレージI/F132は入出力(I/O)ドライバを有しており、CPU136(ストレージ制御プログラム)が受信したホスト20からのデータアクセス要求(論理ボリュームに対するライト要求またはリード要求)に基づくI/O要求を受信する。ストレージI/F132は、受信されたI/O要求に応じて、高速ストレージ11内のキャッシュ領域へのアクセス、高速ストレージ11内のデータ領域へのアクセスまたは低速ストレージ12へのアクセスを実行する。
FROM133は、書き換えが可能な不揮発性メモリである。FROM133には、イニシャルプログラムローダ(IPL)が格納されている。IPLは、ストレージコントローラ13が起動されたときに、CPU136によって最初に実行されるプログラムである。
ローカルメモリ134は、DRAMのような書き換えが可能な揮発性メモリである。ローカルメモリ134の一部の領域は、ローカルHDD135からコピーされたストレージ制御プログラムを格納するのに用いられる。ローカルメモリ134の他の一部の領域は、CPU136のためのワーク領域として用いられる。
ローカルHDD135は、CPU136により実行されるストレージ制御プログラムを格納するのに用いられる。CPU136は、ストレージコントローラ13が起動されたときにIPLを実行することにより、ローカルHDD135に格納されているストレージ制御プログラムをローカルメモリ134にロードする。なお、ストレージ制御プログラムがFROM133に格納されていても構わない。
CPU136は、ローカルメモリ134にロードされたストレージ制御プログラムのプログラムコードに従い、後述のアレイ管理部201、I/O制御部202、論理ボリューム管理部203、階層管理部204及びキャッシュ制御部205として機能する。つまりCPU136は、ローカルメモリ134に格納されているストレージ制御プログラムを、チップセット137を介して実行することで、階層化ストレージシステム10全体(特にストレージコントローラ13内の各部)を制御する。
チップセット137は、CPU136及びその周辺回路を内部バス138に結合するブリッジ回路である。内部バス138は汎用バスであり、例えばPCI(Peripheral Component Interconnect)expressバスである。ホストI/F131、ストレージI/F132及びチップセット137は、内部バス138により相互接続されている。また、FROM133、ローカルメモリ134、ローカルHDD135及びCPU136は、チップセット137を介して内部バス138に接続されている。
図2は、図1に示されるストレージコントローラ13の典型的な機能構成を主として示すブロック図である。ストレージコントローラ13は、アレイ管理部201、I/O制御部202、論理ボリューム管理部203、階層管理部204及びキャッシュ制御部205を備えている。これらの機能要素201乃至205は、図1に示されるストレージコントローラ13のCPU136がストレージ制御プログラムを実行することにより実現されるソフトウェアモジュールである。しかし、機能要素201乃至205の少なくとも1つがハードウェアモジュールによって実現されても構わない。
ローカルメモリ134は、制御プログラム領域134a、テーブル領域134b及びワーク領域134cを含む。制御プログラム領域134aは、CPU136によって実行されるストレージ制御プログラムの少なくとも一部を格納するのに用いられる。このストレージ制御プログラムは、前述したようにローカルHDD135に予め格納されており、当該ストレージ制御プログラムの少なくとも一部は、ストレージコントローラ13の起動時に当該ローカルHDD135から制御プログラム領域134aにロードされる。
テーブル領域134bは、ローカルHDD135に格納されている各種のテーブルの少なくとも一部を格納するのに用いられる。ワーク領域134cは、CPU136が制御プログラムを実行する際に利用される一時的なデータを格納するのに用いられる。
ローカルHDD135(つまり、ローカルストレージ装置)は、上述のストレージ制御プログラムに加えて、物理ボリューム管理テーブル135a、論理ボリューム管理テーブル135b及びキャッシュ管理テーブル135cを格納する。これらの管理テーブル135a,135b及び135cは、ストレージコントローラ13の起動時にローカルHDD135からローカルメモリ134のテーブル領域134bにロードされて用いられる。このためローカルメモリ134にロードされた管理テーブルが更新された場合、その更新がローカルHDD135内の対応する管理テーブルに適宜反映される。但し、以降の説明では簡略化のために、物理ボリューム管理テーブル135a、論理ボリューム管理テーブル135b及びキャッシュ管理テーブル135cは、ローカルHDD135に格納されている状態で用いられるものとする。
物理ボリューム管理テーブル135aの各エントリは、階層化ストレージシステム10(ここでは、階層化ストレージシステム10の高速ストレージ11及び低速ストレージ12)に含まれる物理ボリュームの記憶領域が、いずれの論理ボリュームのいずれの記憶領域に対応するかを示す情報を保持するのに用いられる。物理ボリューム管理テーブル135aの各エントリはさらに、物理ボリュームの記憶領域の各々のアクセス特性(例えば、アクセス頻度及びアクセス日時)を示す情報を保持するのにも用いられる。物理ボリューム管理テーブル135aの各エントリに保持される情報は、物理ボリューム管理情報と呼ばれる。
論理ボリューム管理テーブル135bの各エントリは、階層化ストレージシステム10内に構築される論理ボリュームの記憶領域が、いずれの物理ボリュームのいずれの記憶領域に対応するかを示す情報を保持するのに用いられる。論理ボリューム管理テーブル135bの各エントリに保持される情報は、論理ボリューム管理情報と呼ばれる。
本実施形態において、論理ボリュームの記憶領域は、論理ブロックアドレス(LBA)で指定されるLBA領域と呼ばれ、当該論理ボリュームの記憶領域(LBA領域)に対応する物理ボリュームの記憶領域はページ(物理ページ)と呼ばれる。LBA領域及びページは、複数のブロックから構成される。本実施形態において、ブロックはセクタとも呼ばれ、ストレージコントローラ13がストレージインタフェースバス14を介してストレージにアクセスする最小の単位である。上述のように本実施形態では、LBA領域のサイズは1ページのサイズに一致する。しかし、LBA領域のサイズが複数のページのサイズに一致しても良い。
キャッシュ管理テーブル135cの各エントリは、キャッシュ領域に格納されたデータ(つまりキャッシュデータ)が、いずれの論理ボリュームのいずれの記憶領域(LBA)に対応するかを示す情報を保持するのに用いられる。キャッシュ管理テーブル135cの各エントリに保持される情報は、キャッシュ管理情報と呼ばれる。
図3は、図2に示される物理ボリューム管理テーブル135aのデータ構造例を示す。物理ボリューム管理テーブル135aの各エントリは、物理ボリューム識別子(ID)フィールド、ページ番号フィールド、論理ボリュームIDフィールド、論理ブロックアドレス(LBA)フィールド、フラッシュストレージフィールド、キャッシュ利用フィールド、複製先::複製元フィールド、及びアクセス特性フィールドを含む。図3の物理ボリューム管理テーブル135aにおける表記N/Aは“該当無し”を示す。
物理ボリュームIDフィールドは、対応する物理ボリューム管理テーブル135aのエントリ(以下、対応エントリと称する)によって管理されるページ(物理ページ)Piを含む物理ボリュームPVjのIDを保持するのに用いられる。ページ番号フィールドは、ページPiのページ番号Piを保持するのに用いられる。図3の物理ボリューム管理テーブル135aにおいて、物理ボリュームID=0は高速ストレージ11の物理ボリュームを示し、物理ボリュームID=100は低速ストレージ12の物理ボリュームを示すものとする。
論理ブロックアドレス(LBA)フィールドは、対応エントリ中のページ番号Piの示すページPiに対応するLBA領域(より詳細には、論理ブロック内のLBA領域)を指し示すLBA(対応LBA)を保持するのに用いられる。論理ボリュームIDフィールドは、対応エントリ中のLBAの示すLBA領域を含む複数のLBA領域で構成される論理ボリュームのID(対応論理ボリュームID)を保持するのに用いられる。図3の物理ボリューム管理テーブル135aは、例えば、物理ボリュームIDが100の物理ボリューム(低速ストレージ12)内のページ番号が5のページが、論理ボリュームIDが2の論理ボリューム内のLBA領域LBA30と対応付けられていることを示す。
フラッシュストレージフィールドは、ページPiがフラッシュストレージアレイ(つまり高速ストレージ11)に存在するか否かを示すフラグ(フラッシュストレージフラグ)を保持するのに用いられる。ページPiがフラッシュストレージアレイに存在する場合、ページPiはデータ領域またはキャッシュ領域のいずれかに利用される。
キャッシュ利用フィールドは、ページPiがキャッシュ領域(ここでは、フラッシュストレージアレイ、つまり高速ストレージ11内のキャッシュ領域)として利用されているか否かを示すフラグ(キャッシュ利用フラグ)を保持するのに用いられる。本実施形態では、ページPiがキャッシュ領域として利用されていることがキャッシュ利用フラグによって示されている場合、ページPiがフラッシュストレージアレイに存在することがフラッシュストレージフラグによって示される。この場合、ページPiに対応する論理ボリュームID及びLBAはN/Aとなる。なお、ページPiに対応する論理ボリュームID及びLBAがN/A以外を示すのは、ページPiのデータが実データであり、かつページPiが使用されている(つまり空き領域でない)場合である。図3の物理ボリューム管理テーブル135aは、例えば、物理ボリュームIDが0の物理ボリューム(つまり高速ストレージ11)内のページ番号が4のページが、キャッシュ領域として使用されていることを示す。以下の説明では、物理ボリュームIDが0の物理ボリューム内のページ番号が4のページを、ページ0−4と表記する。
複製先::複製元フィールドは、ページPiの複製先及び複製元(複製先::複製元)に関する情報(複製先::複製元情報)を保持するのに用いられる。複製先::複製元情報N/A::N/Aは、ページPiの複製先も当該ページPiの複製元も存在しないことを示す。N/A::N/A以外の複製先::複製元情報は、ページPiの複製先または複製元が存在すること、つまりページPiのデータと同一内容のデータを有する別のページ(複製先または複製元)が存在することを示す。
具体的には、複製先::複製元情報a−b::N/Aは、ページPiが複製元であり、したがってページPiの複製先が存在し、かつ当該複製先のページがページa−bであることを示す。前述したように、ページa−bは、物理ボリュームIDがaの物理ボリューム内のページ番号がbのページを示す。同様に、複製先::複製元情報N/A::c−dは、ページPiが複製先であり、したがってページPiの複製元が存在し、かつ当該複製元のページがc−dであることを示す。
本実施形態では、ページPixが複製元でページPiyが複製先であり、かつページPix(複製元)に格納されているデータが更新された場合、ページPiy(複製先)に格納されているデータが削除される。この場合、ページPix及Piyの複製関係は解消される。つまり、ページPixの複製先及びページPiyの複製元はN/Aに変更される。
アクセス特性フィールドは、ページPiのアクセス回数及び最終アクセス日時を示す情報を保持するのに用いられる。この情報は、ページPiのデータの特性を表す。ページPiのアクセス回数は、ページPiがアクセスされる都度1インクリメントされる。
図4は、図2に示される論理ボリューム管理テーブル135bのデータ構造例を示す。論理ボリューム管理テーブル135bの各エントリは、論理ボリュームIDフィールド、LBAフィールド、物理ボリュームIDフィールド、及びページ番号フィールドを含む。
論理ボリューム管理テーブル135bの論理ボリュームIDフィールドは、対応エントリによって管理されるLBA領域LBApを含む論理ボリュームLVqのIDを保持するのに用いられる。論理ボリューム管理テーブル135bのLBAフィールドはLBA領域LBApの論理ブロックアドレスLBApを保持するのに用いられる。
論理ボリューム管理テーブル135bの物理ボリュームIDフィールドは、LBApに対応する物理ボリュームのIDを保持するのに用いられる。論理ボリューム管理テーブル135bのページ番号フィールドは、LBApに対応するページ(物理ボリューム内の対応するページ)のページ番号を保持するのに用いられる。
図5は、図2に示されるキャッシュ管理テーブル135cのデータ構造例を示す。キャッシュ管理テーブル135cの各エントリは、キャッシュIDフィールド、論理ボリュームIDフィールド、LBAフィールド、物理ボリュームIDフィールド、及びページ番号フィールドを含む。
キャッシュ管理テーブル135cのキャッシュIDフィールドは、対応エントリによって管理されるキャッシュ領域CAsのID(キャッシュID)を保持するのに用いられる。キャッシュ管理テーブル135cの論理ボリュームIDフィールドは、キャッシュ領域CAsに格納されるキャッシュデータに対応するLBA領域LBAtを含む論理ボリュームのIDを保持するのに用いられる。キャッシュ管理テーブル135cのLBAフィールドはLBA領域LBAtの論理ブロックアドレスLBAtを保持するのに用いられる。
キャッシュ管理テーブル135cの物理ボリュームIDフィールドは、論理ブロックアドレスLBAtに対応する物理ボリュームのIDを保持するのに用いられる。キャッシュ管理テーブル135cのページ番号フィールドは、論理ブロックアドレスLBAtに対応するページ(物理ボリューム内の対応するページ)のページ番号を保持するのに用いられる。図5のキャッシュ管理テーブル135cは、例えば、論理ボリュームIDが2の論理ボリューム内のLBA領域LBA30のデータが、物理ボリュームIDが0の物理ボリューム(高速ストレージ11)内のページ番号が4のページ(つまり、キャッシュページまたはキャッシュ領域)にキャッシュされていることを示す。
図6は、本実施形態における階層間のデータ移動の例を示す。図6に示される高速ストレージ11及び低速ストレージ12は、前述したように、それぞれ上位階層及び下位階層に位置付けられている。高速ストレージ11はページb3,b4及びb5を含み、低速ストレージ12はページa5,a6及びa7を含む。ここで、ページa5,a6及びa7には実データが格納されており、ページb3,b4及びb5には実データ(有効な実データ)が格納されていないものとする。つまり、ページb3,b4及びb5は、空きページ(領域)であるものとする。本実施形態において、ページのサイズは4キロバイト(KB)であり、ブロック(セクタ)のサイズは、512バイト(B)である。また、ブロック毎にアドレスが付与される。この場合、1ページは、連続する8つのアドレスに対応付けられた8つのブロックから構成される。
図6において、論理ボリューム60は、LBA領域の集合から構成される。LBA領域の集合は、LBA(論理ブロックアドレス)0,1,2,3及び4でそれぞれ指定されるLBA領域LBA0,LBA1,LBA2,LBA3及びLBA4を含む。LBA領域LBA0は、論理ボリューム60の先頭LBA領域であり、アドレス0乃至7の範囲に対応する。LBA領域LBA1はLBA領域LBA0に後続しており、アドレス8乃至15の範囲に対応する。LBA領域LBA2はLBA領域LBA1に後続しており、アドレス16乃至23の範囲に対応する。LBA領域LBA3はLBA領域LBA2に後続しており、アドレス24乃至31の範囲に対応する。LBA領域LBA4はLBA領域LBA3に後続しており、アドレス32乃至39の範囲に対応する。
今、低速ストレージ12のページa5,a6及びa7が、図6において破線61a,61b及び61cで示されるように、論理ボリューム60のLBA領域LBA1,LBA2及びLBA3にマッピングされているものとする。この状態で、ページa5,a6及びa7に格納されているデータのデータ特性(例えば、アクセス頻度)が変化(増加)したものとする。この場合、CPU136は階層管理部204として機能して、ページa5,a6及びa7に格納されているデータを、図6において矢印62で示されるように、低速ストレージ12から高速ストレージ11の例えばページb3,b4及びb5に移動する。このデータ移動の後、CPU136(階層管理部204)は、ページa5,a6及びa7とLBA領域LBA1,LBA2及びLBA3とのマッピングを解消し、ページb3,b4及びb5を、図6において実線63a,63b及び63cで示されるように、論理ボリューム60のLBA領域LBA1,LBA2及びLBA3に新たにマッピングする。つまりCPU136(階層管理部204)は、データ移動前に下位階層の3つのページそれぞれの物理アドレスに対応付けられたLBAを、データ移動後に上位階層の3つのページそれぞれの物理アドレスに対応付ける。
このように、下位階層のページa5,a6及びa7のデータが上位階層のb3,b4及びb5に移動されることにより、当該データの階層(より詳細には、LBA領域LBA1,LBA2及びLBA3のデータの階層)が、下位階層から上位階層に変更される。つまり階層変更は、一般に階層間のデータ移動(物理的なデータ移動)を伴う。本実施形態は、下位階層から上位階層へのデータの移動を極力抑制しつつ、データの階層を下位階層から上位階層に変更することができる階層変更処理を実現することを特徴とする。
次に、本実施形態で適用される階層変更処理について図7を参照して説明する。図7は、階層変更処理の典型的な手順を示すフローチャートである。階層変更処理は、主として階層管理部204及びキャッシュ制御部205によって実行される。
まず階層管理部204は、低速ストレージ12に含まれるページのうち、アクセス回数が上位のLページを、物理ボリューム管理テーブル135aからリストアップする(ステップS1)。ここでは、リストアップされるべきページの数Lは、例えばユーザーの操作に従ってホスト20によって指定されるものとする。しかし、このページの数Lが、予め定められていても良い。また、アクセス回数の閾値が、ホスト20によって指定されても、或いは予め定められていても良い。この場合、階層管理部204は、アクセス回数が閾値を超えるページをリストアップする。なお、アクセス回数が閾値を超えるページの数がLを超える場合、階層管理部204は、アクセス回数が上位のLページをリストアップしても良い。リストアップされたページのページ番号は、ローカルメモリ134のワーク領域134cに格納される。
階層管理部204は、ローカルメモリ134内に格納されているリストアップされたページの番号から1つを選択する。すなわち階層管理部204は、リストアップされたページの集合から1つのページPiを選択する(ステップS2)。
すると階層管理部204からキャッシュ制御部205に制御が渡される。キャッシュ制御部205は、ページPiに関する判定ステップS3を次のように実行する。まずキャッシュ制御部205は、ページPiの物理ボリュームID及びページ番号に基づいて物理ボリューム管理テーブル135aの対応するエントリを参照して、ページPiに対応する論理ボリュームIDs及び論理ブロックアドレスLBAtの対を特定する。次にキャッシュ制御部205はキャッシュ管理テーブル135cを参照して、ページPiに対応する論理ボリュームIDs及び論理ブロックアドレスLBAtの対が当該キャッシュ管理テーブル135cに存在するかを判定する。この判定結果に基づいてキャッシュ制御部205は、ページPiのデータが高速ストレージ11のキャッシュ領域に格納されているかを判定する。
もし、ページPiのデータが高速ストレージ11のキャッシュ領域に格納されていないならば(ステップS3のNo)、キャッシュ制御部205は低速ストレージ12内のページPiのデータ(実データ)は最新のデータであると判断する。この場合、キャッシュ制御部205は階層管理部204に制御を戻す。すると階層管理部204は、高速ストレージ11内のデータ領域の集合から1つの空きデータ領域(つまり、空きページPf)を確保する。階層管理部204は、ページPiのデータを、低速ストレージ12から高速ストレージ11内の確保された空きページPfに、ストレージI/F132によりコピーさせる(ステップS4)。
次に階層管理部204は、このコピー後の状態が反映されるように、論理ボリューム管理テーブル135bを次のように更新する(ステップS5)。まず階層管理部204は、論理ボリュームIDs及び論理ブロックアドレスLBAtの対を含む論理ボリューム管理テーブル135bのエントリを特定する。そして階層管理部204は、特定されたエントリ内の物理ボリュームID及びページ番号を、低速ストレージ12を示す物理ボリュームID及びページPiのページ番号から、高速ストレージ11を示す物理ボリュームID及びコピー先のページPfのページ番号に更新する。
次に階層管理部204はステップS6に進む。ステップS6において階層管理部204は、低速ストレージ12内のページPiの領域を解放する。すなわち階層管理部204は、ページPiの物理ボリュームID及びページ番号に対応する物理ボリューム管理テーブル135aのエントリに設定されている論理ボリュームID及びLBAの各々をN/Aに更新する。階層管理部204はまた、コピー先のページPfの物理ボリュームID及びページ番号に対応する物理ボリューム管理テーブル135aのエントリ(対応エントリ)に設定されている論理ボリュームID及び論理ブロックアドレスLBAを、ページPiの領域が解放される前に当該ページPiと対応付けられていた論理ボリュームIDs及び論理ブロックアドレスLBAtに更新する。以上のステップS4乃至S6により、低速ストレージ12内のページPiのデータ(実データ)は、高速ストレージ11内のページPfに移動されたことになる。
次に階層管理部204は、ステップS1でリストアップされたすべてのページについて処理が実行されたかを判定する(ステップS8)。もし、未処理のページが残されているならば(ステップS8のNo)、階層管理部204はステップS2に戻って、次のページPiを選択する。するとキャッシュ制御部205は、ページPiのデータが高速ストレージ11のキャッシュ領域に格納されているかを判定する(ステップS3)。
ここで、ページPiのデータが高速ストレージ11のキャッシュ領域(以下、対応キャッシュ領域と称する)に格納されているものとする(ステップS3のYes)。つまり、ページPiのデータ(実データ)が低速ストレージ12に格納されていることに加えて、当該ページPiのデータがキャッシュデータとして高速ストレージ11の対応キャッシュ領域(ページ)に格納(キャッシュ)されているものとする。この場合、キャッシュ制御部205は、ページPiのデータが低速ストレージ12から高速ストレージ11に物理的に移動されることなく、当該データを高速ストレージ11内のデータ領域に実質的に(論理的に)移動可能であると判断する。より具体的に述べるならば、キャッシュ制御部205は、高速ストレージ11の対応キャッシュ領域をデータ領域に定義し直すことにより、ページPiのデータを当該対応キャッシュ領域に論理的に移動可能であると判断する。この対応キャッシュ領域をデータ領域に定義し直す処理を、領域置換処理と呼ぶ。つまり領域置換処理とは、下位階層から上位階層へのデータ移動を抑制するために、高速ストレージ11内に確保されたキャッシュ領域の一部をデータ領域に変更する処理である。
前述したように、図3の物理ボリューム管理テーブル135a、図4の論理ボリューム管理テーブル135b及び図5のキャッシュ管理テーブル135cの例では、ページ100−5のキャッシュデータ(つまり、ページ100−5に対応する論理ボリュームIDが2の論理ボリューム内のLBA領域LBA30のデータ)が、ページ(キャッシュ領域)0−4に格納されている。したがって、ページPiが例えばページ100−5である場合、つまりページPiが物理ボリュームID=100及びページ番号=5のページである場合、ステップS3の判定はYesとなる。
ステップS3の判定がYesの場合、キャッシュ制御部205は、ページPi(例えば、ページ100−5)を領域の置き換えがなされるべきページであると判断する。この場合、キャッシュ制御部205は、ページPiに関する情報を領域置換リストに追加する(ステップS7)。領域置換リストは、ローカルメモリ134に格納されている。ページPiに関する情報は、当該ページPiの物理ボリュームID及びページ番号と、対応キャッシュ領域の物理ボリュームID及びページ番号を含む。ページPiがページ100−5である場合、ページPiに関する情報は、物理ボリュームID=100及びページ番号=5と、物理ボリュームID=0及びページ番号=4とを含む。
キャッシュ制御部205はステップS7を実行すると、階層管理部204に制御を返す。すると階層管理部204は、ステップS1でリストアップされたすべてのページについて処理が実行されたかを判定する(ステップS8)。もし、すべてのページについて処理が実行されたならば(ステップS8のYes)、階層管理部204は再びキャッシュ制御部205に制御を渡す。するとキャッシュ制御部205は、領域置換リストで示されるすべてのページについて、キャッシュ領域をデータ領域に変更するための領域置換処理を実行する(ステップS9)。これにより、階層変更処理は終了する。
このように本実施形態によれば、下位階層(低速ストレージ12)のページPiのデータが、アクセス特性(つまり、データ特性)の変化のために上位階層(高速ストレージ11)に移動されるべきであると判定された場合(ステップS1及びS2)、キャッシュ制御部205によってステップS3が実行される。ページPiのデータがキャッシュ領域にキャッシュされている場合(ステップS3のYes)、キャッシュ制御部205は、当該ページPiをキャッシュ領域(キャッシュページ)からデータ領域(実データページ)に変更する(ステップS9)。
本実施形態は、このような領域変更(置換)により、ページPiのデータを下位階層から上位階層に物理的に移動することなく、データ移動と同等の効果を得ることができる。つまり本実施形態は、ページPiのデータの属性を、キャッシュデータから実データに変更するだけで、データ移動と同等の効果を得ることができる。これにより本実施形態は、データ移動を抑制することができる。
また本実施形態によれば、高速ストレージ11内に確保されたキャッシュ領域の集合が、階層化ストレージシステム10のキャッシュとして用いられる。このため、下位階層(低速ストレージ12)に格納されているデータを上位階層(高速ストレージ11)にキャッシュすることができ、階層間のデータ移動なしに下位階層へのデータアクセスを抑制できる。
次に、上述の階層変更処理に含まれている領域置換処理(ステップS9)の詳細について、図8を参照して説明する。図8は領域置換処理の典型的な手順を示すフローチャートである。まずキャッシュ制御部205は、ローカルメモリ134内に格納されている領域置換リストから1つのページPj(より詳細には、ページPjに関する情報)を選択する(ステップS11)。前述したように領域置換リストは、階層変更処理で、高速ストレージ11のキャッシュ領域にキャッシュデータが格納されていると判定されたページの集合を示す。また、ページPjに関する情報は、当該ページPjの物理ボリュームID及びページ番号と、対応キャッシュ領域の物理ボリュームID及びページ番号を含む。
次にキャッシュ制御部205は、ページPjに対応する第1及び第2のエントリを次のように検索する(ステップS12)。まずキャッシュ制御部205は、ページPjの対応キャッシュ領域の物理ボリュームID及びページ番号に基づいて、物理ボリューム管理テーブル135aから第1のエントリを検索する。第1のエントリは、ページPjの対応キャッシュ領域の物理ボリュームID及びページ番号を含む。次にキャッシュ制御部205は、ページPjの物理ボリュームID及びページ番号に基づいて、物理ボリューム管理テーブル135aから第2のエントリを検索する。第2のエントリは、ページPjの物理ボリュームID及びページ番号を含む。ページPjがページ100−5である場合、対応キャッシュ領域の物理ボリュームID=0及びページ番号=4を含むエントリが第1のエントリとして検索され、物理ボリュームID=100及びページ番号=5を含むエントリが第2のエントリとして検索される。
次にキャッシュ制御部205は、物理ボリューム管理テーブル135aの第1のエントリのキャッシュ利用フィールドの内容(キャッシュ利用フラグ)を、“Yes”から“No”に変更する(ステップS13)。次にキャッシュ制御部205は、論理ボリューム管理テーブル135bにおける実データ(ページPjの実データ)に対応するエントリの物理ボリュームID及びページ番号を、現在ページPjのキャッシュデータが格納されているページ(つまりページPjの対応キャッシュ領域)を示すように変更する(ステップS14)。ページPjがページ100−5で、ページPjの対応キャッシュ領域がページ0−4である場合、ステップS14は次のように行われる。
まずキャッシュ制御部205は、キャッシュ管理テーブル135cを参照して、物理ボリュームIDが0で、ページ番号が4のエントリから、論理ボリュームID及び論理ブロックアドレスLBAとして、それぞれ2及びLBA30を取得する。次にキャッシュ制御部205は、取得された論理ボリュームID=2及び論理ブロックアドレスLBA=LBA30を含む、論理ボリューム管理テーブル135bの対応エントリを特定する。そしてキャッシュ制御部205は、特定された論理ボリューム管理テーブル135bの対応エントリの物理ボリュームID及びページ番号を、100及び5から、それぞれ0及び4に変更する。これにより、ページPjの対応キャッシュ領域(つまり、ページ0−4)はデータ領域に変更され、ページ0−4内のキャッシュデータは実データとして用いられる。
次にキャッシュ制御部205は、物理ボリューム管理テーブル135aの第1のエントリの複製先::複製元フィールドにおける複製先情報を、“N/A”から、実データ(より詳細には、ページPjの実データが格納されていた領域)を指し示す“物理ボリュームID−ページ番号”(つまり、第2のエントリ内の“物理ボリュームID−ページ番号”)に変更する(ステップS15)。次にキャッシュ制御部205は、物理ボリューム管理テーブル135aの第2のエントリの複製先::複製元フィールドにおける複製元情報を、“N/A”から、対応キャッシュ領域(より詳細には、現在ページPjのキャッシュデータが格納されている領域)を示す“物理ボリュームID−ページ番号” (つまり、第1のエントリ内の“物理ボリュームID−ページ番号”)に変更する(ステップS16)。ページPjがページ100−5で、ページPjの対応キャッシュ領域がページ0−4である場合、物理ボリューム管理テーブル135aの第1のエントリの複製先情報は100−5に変更され、物理ボリューム管理テーブル135aの第2のエントリの複製元情報は0−4に変更される。これにより、データ領域に変更された上位階層のページ0−4(ページ0−4の実データとして用いられるキャッシュデータ)及び下位階層のページ100−5(ページ100−5の旧実データ)が、それぞれ対応する複製先::複製元フィールドにより紐付けられる。
このように、複製先::複製元フィールドにより紐付けられた、上位階層のページ(より詳細には、データ領域に変更されたページ)0−4のデータと、下位階層のページ100−5のデータとは等しい。つまり、上位階層のページ0−4及び下位階層のページ100−5には同一内容のデータが格納されている。したがって、記憶領域の有効活用の観点からは、下位階層のページ100−5は未割り当て領域として解放されることが好ましい。その一方、領域定義の変更によって上位階層のページ0−4に論理的に移動されたデータが、将来、データ特性の変化(例えばアクセス頻度の低下)によって、再度下位階層に移動されるべきデータとなる場合に注意すべきである。このような場合に、下位階層のページ100−5が未割り当て領域として解放されているならば、上位階層のページ0−4のデータを下位階層に移動する動作が発生する。しかし、本実施形態によれば、下位階層のページ100−5は未割り当て領域として解放されずに、上位階層のページ(より詳細には、データ領域に変更されたページ)0−4と紐付けられる(ステップS13乃至S15)。この状態は、後述されるように、上位階層のページ0−4のデータが更新されるまで維持される(図9のステップS31及びS38乃至S41)。ここで、上位階層のページ0−4のデータを下位階層に移動する必要性が発生したものとする。もし、上位階層のページ0−4のデータが依然として未更新であるならば、当該データは、解放されずに残されている下位階層のページ100−5のデータと一致する。したがって本実施形態は、残されている下位階層のページ100−5のデータを利用することにより、上位階層のページ0−4のデータを物理的に下位階層に移動することなく、データ移動と同等の効果を得ることができる。つまり、本実施形態によれば、データ移動を抑制できる。
次にキャッシュ制御部205は、物理ボリューム管理テーブル135aの第1及び第2のエントリの論理ボリュームID及びLBAを相互に入れ替える(ステップS17)。この入れ替えの後、キャッシュ制御部205は、第2のエントリの論理ボリュームIDフィールド及びLBAフィールドを、いずれも“N/A”に変更する。次にキャッシュ制御部205は、キャッシュ管理テーブル135cからページPj(ページ100−5)のキャッシュデータに対応するエントリを削除する(ステップS18)。
次にキャッシュ制御部205は、領域置換リストの示すすべてのページについて処理が実行されたかを判定する(ステップS19)。もし、未処理のページが残されているならば(ステップS19のNo)、上述のステップS11乃至S18を再度実行する。このようにしてキャッシュ制御部205は、領域置換リストの示すすべてのページについてステップS11乃至S18を実行すると(ステップS19のYes)、ステップS20に進む。ステップS20においてキャッシュ制御部205は、データ領域解放処理を実行する。これにより、領域置換処理は終了する。データ領域解放処理とは、データ領域への変更によって減少したキャッシュ領域に相当するデータ領域を、新たにキャッシュ領域に変更するための処理である。
次に、本実施形態で適用されるI/O(入出力)処理について図9を参照して説明する。図9は、I/O処理の典型的な手順を示すフローチャートである。I/O処理は、I/O制御部202がI/O要求(コマンド)を受信した場合に、当該I/O制御部202及びキャッシュ制御部205によって実行される。I/O要求は例えばホスト20によって発行され、アクセス先を示す論理ボリュームID及びLBAの対と、I/Oの種別(リードまたはライト)を示す情報とを含む。
今、I/O制御部202が、ホスト20からのI/O要求をホストI/F131を介して受信したものとする。この場合、I/O制御部202は、受信I/O要求が例えばリード要求であるかを判定する(ステップS31)。もし、受信I/O要求がリード要求であるならば(ステップS31のYes)、I/O制御部202はキャッシュ制御部205に制御を渡す。
キャッシュ制御部205は、受信I/O要求の指定するデータが高速ストレージ11のキャッシュ領域に存在するキャッシュヒットであるかを判定する(ステップS32)。キャッシュ制御部205は、この判定を、受信I/O要求に含まれている論理ボリュームID及びLBAの対が存在するエントリをキャッシュ管理テーブル135cから検索できるかに基づいて実行する。
もし、キャッシュヒットでないならば(ステップS32のNo)、キャッシュ制御部205は、高速ストレージ11からのデータリードであるかを、次のように判定する(ステップS33)。まずキャッシュ制御部205は、受信I/O要求に含まれている論理ボリュームID及びLBAの対に対応付けられた物理ボリュームID及びページ番号の対を、論理ボリューム管理テーブル135bから検索する。次にキャッシュ制御部205は、検索された物理ボリュームID及びページ番号の対を含む物理ボリューム管理テーブル135aのエントリ中のフラッシュストレージフラグを参照する。キャッシュ制御部205は、この参照されたフラッシュストレージフラグの状態に基づいて、高速ストレージ11からのデータリードであるかを判定する。
もし、高速ストレージ11からのデータリードでないならば(ステップS33のNo)、キャッシュ制御部205はステップS34に進む。ステップS34においてキャッシュ制御部205は、検索された物理ボリュームID及びページ番号の対で指定される低速ストレージ12の領域から、I/O制御部202によってストレージI/F132を介してデータをリードさせる。次にキャッシュ制御部205は、低速ストレージ12の領域からリードされたデータを、高速ストレージ11のキャッシュ領域にストレージI/F132を介してキャッシュする(ステップS35)。そしてキャッシュ制御部205は、I/O制御部202に制御を返す。するとI/O制御部202は、低速ストレージ12からリードされたデータを、ホストI/F131によりホスト20に転送させる(ステップS37)。
これに対し、高速ストレージ11からのデータリードであるならば(ステップS33のYes)、キャッシュ制御部205はステップ36に進む。ステップS36においてキャッシュ制御部205は、検索された物理ボリュームID及びページ番号の対で指定される高速ストレージ11のデータ領域に格納されているデータを、I/O制御部202によりストレージI/F132を介してリードさせる。このように高速ストレージ11からのデータリードの場合、キャッシュ制御部205は、低速ストレージ12からのデータリードと異なり、リードされたデータを高速ストレージ11のキャッシュ領域にキャッシュすることを控えて、I/O制御部202に制御を返す。I/O制御部202は、高速ストレージ11からリードされたデータを、ホストI/F131によりホスト20に転送させる(ステップS37)。
一方、キャッシュヒットである場合(ステップS32のYes)、キャッシュ制御部205は、高速ストレージ11の対応するキャッシュ領域に格納されているキャッシュデータをストレージI/F132を介して取得する。このキャッシュ領域は、ステップS32での判定のためにキャッシュ管理テーブル135cから検索されたエントリ中の物理ボリュームID及びページ番号の対によって特定される。I/O制御部202は、特定されたキャッシュ領域からキャッシュ制御部205によって取得されたキャッシュデータを、ホストI/F131によりホスト20に転送させる(ステップS37)。
次に、受信I/O要求がリード要求でないものとする(ステップS31のNo)。つまり、受信I/O要求がライト要求であるものとする。この場合、キャッシュ制御部205は、受信I/O要求の指定するライトデータに対応するキャッシュデーが高速ストレージ11のキャッシュ領域に存在するキャッシュヒットであるかを判定する。キャッシュ制御部205は、この判定を、ステップS32と同様に実行する。
もし、キャッシュヒットでないならば(ステップS38のNo)、キャッシュ制御部205は高速ストレージ11に対するデータライトであるかを、次のように判定する(ステップS39)。まずキャッシュ制御部205は、受信I/O要求に含まれている論理ボリュームID及びLBAの対に対応付けられた物理ボリュームID及びページ番号の対を、論理ボリューム管理テーブル135bから検索する。次にキャッシュ制御部205は、検索された物理ボリュームID及びページ番号の対を含む物理ボリューム管理テーブル135aのエントリ中のフラッシュストレージフラグを参照する。キャッシュ制御部205は、この参照されたフラッシュストレージフラグの状態に基づいて、高速ストレージ11へのデータライトであるかを判定する。
もし、高速ストレージ11へのデータライトでないならば(ステップS39のNo)、キャッシュ制御部205はステップS40に進む。ステップS40においてキャッシュ制御部205は、受信I/O要求で指定されたライトデータを、高速ストレージ11の対応するキャッシュ領域にストレージI/F132を介してキャッシュする。
次にキャッシュ制御部205は、キャッシュデータが実データと複製関係にあるかを判定する(ステップS41)。もし、両データが複製関係にあるならば(ステップS41のYes)、キャッシュ制御部205は、キャッシュデータは実データとは異なることから、両者の複製関係が崩れると判断する。
そこでキャッシュ制御部205は、両者の複製関係を次のように解消する(ステップS42)。まずキャッシュ制御部205は、物理ボリューム管理テーブル135aから、受信I/O要求に含まれている論理ボリュームID及びLBAの対に対応付けられたエントリを検索する。つまりキャッシュ制御部205は、受信I/O要求で指定されたライト先のページに対応付けられた、物理ボリューム管理テーブル135aのエントリを検索する。そしてキャッシュ制御部205は、検索されたエントリの複製先::複製元フィールドにおける複製元情報を“N/A”に変更する。この変更がなされる前の複製元情報は、対応するキャッシュ領域に同じ内容のデータが存在していたときに“N/A”以外の値を示す。キャッシュ制御部205はまた、変更前の複製元情報で示されるキャッシュ領域に対応する物理ボリューム管理テーブル135aのエントリを検索する。そしてキャッシュ制御部205は、検索されたエントリの複製先::複製元フィールドにおける複製先情報を“N/A”に変更する。これによりキャッシュデータと実データとの複製関係が解消される。するとキャッシュ制御部205はI/O制御部202に制御を返す。I/O制御部202は、受信I/O要求の指定するライトデータをストレージI/F132を介して低速ストレージ12にライトする(ステップS43)。
これに対し、上述の両データが複製関係にないならば(ステップS41のNo)、キャッシュ制御部205はI/O制御部202に制御を返す。I/O制御部202は、受信I/O要求の指定するライトデータをストレージI/F132を介して低速ストレージ12にライトする(ステップS43)。
一方、キャッシュヒットである場合(ステップS38のYes)、キャッシュ制御部205はステップS44に進む。また、キャッシュヒットでなくても(ステップS38のNo)、高速ストレージ11に対するデータライトの場合にも(ステップS39のYes)、キャッシュ制御部205はステップS44に進む。ステップS44においてキャッシュ制御部205は、指定されたライトデータを高速ストレージ11の前記キャッシュ領域にキャッシュせずに、当該ライトデータを、検索された物理ボリュームID及びページ番号の対で指定される高速ストレージ11のデータ領域に、I/O制御部202によってストレージI/F132を介してライトさせる(ステップS44)。
このように本実施形態によれば、ホスト20からのI/O要求がリード要求であり(ステップS31のYes)、かつ当該リード要求が高速ストレージ11からのデータリードを指定していない場合(ステップS33のNo)、キャッシュ制御部205は、低速ストレージ12から読み出されたデータを高速ストレージ11のキャッシュ領域にキャッシュする(ステップS34及びS35)。これに対し、リード要求が高速ストレージ11からのデータリードを指定している場合(ステップS33のYes)、キャッシュ制御部205は、高速ストレージ11から読み出されたデータを高速ストレージ11のキャッシュ領域にキャッシュしない(ステップS36)。
また、ホスト20からのI/O要求がライト要求であり(ステップS31のNo)、かつ当該ライト要求が高速ストレージ11へのデータライトを指定していない場合(ステップS39のNo)、キャッシュ制御部205は、高速ストレージ11のキャッシュ領域にライトデータをキャッシュする(ステップS40)。これに対し、ライト要求が高速ストレージ11へのデータライトを指定している場合(ステップS39のYes)、キャッシュ制御部205は、ライトデータをキャッシュしない(ステップS44)。
このように本実施形態は、キャッシュ領域にキャッシュされるデータを下位階層のデータに限定し、上位階層(キャッシュ領域と同じストレージ装置、つまり高速ストレージ11)のデータがキャッシュ領域に格納されることを防ぐことができる。これにより、上位階層のデータもキャッシュ領域に保存される場合と比較して、下位階層のデータがキャッシュ領域に保存される容量が増えるため、結果的に下位階層へのデータアクセスを低減させる効果が得られる。また、上位階層のストレージ装置に同じデータが重複して保存されることによる記憶容量の圧迫の低減にも寄与する。
次に、前述の領域置換処理に含まれているデータ領域解放処理(ステップS20)の詳細について、図10を参照して説明する。図10はデータ領域解放処理の典型的な手順を示すフローチャートである。まずキャッシュ制御部205は、高速ストレージ11内に確保されるキャッシュのサイズ(キャッシュ量)が現在よりも増加されるべきかを判定する(ステップS51)。領域置換処理でキャッシュ領域がデータ領域に変更されると、キャッシュ量は減少する。このような状態で、例えば下位階層へのI/Oが増加したならば、階層化ストレージシステムのI/O性能が低下する可能性がある。そこで、階層化ストレージシステムのI/O性能の低下を防止するためには、キャッシュ量が適切に維持される必要がある。適切なキャッシュ量(以下、目標キャッシュ量と称する)は、例えば、データアクセスの局所性(つまり偏り)、或いは高速ストレージ11全体の記憶容量に基づいて決定される。このような目標キャッシュ量を算出する方法は、従来から知られている。
もし、領域置換処理によってキャッシュ量が目標キャッシュ量よりも減少したために階層化ストレージシステムのI/O性能が低下する可能性があるならば、キャッシュ制御部205は、キャッシュ量が増加されるべきであると判定する(ステップS51のYes)。この場合、キャッシュ制御部205は、目標キャッシュ量に対して不足するサイズを算出する(ステップS52)。ここでは、説明の簡略化のために、領域置換処理が実行される前のキャッシュ量が、目標キャッシュ量に一致しているものとする。そこでキャッシュ制御部205は、領域置換処理でキャッシュ領域からデータ領域に変更されたページの合計サイズを、不足サイズとして算出する。
次にキャッシュ制御部205は、不足サイズを補充するのに用いられるべき(つまり、データ領域からキャッシュ領域に変更されるべき)ページをリストアップする(ステップS53)。すなわちキャッシュ制御部205は、高速ストレージ11のデータ領域に含まれるページのうち、アクセス回数が下位のMページを、物理ボリューム管理テーブル135aからリストアップする。ここでは、アクセス回数の昇順にMページがリストアップされる。Mページのサイズは、不足サイズに等しい。
次にキャッシュ制御部205は、リストアップされたページの集合から1つのページPqを選択して(ステップS54)、階層管理部204に制御を渡す。すると階層管理部204は、キャッシュ制御部205の指示に基づき、ページPq(つまり高速ストレージ11内のページPq)のデータを、低速ストレージ12の例えばページPpdにコピー(移動)する(ステップS55)。ステップS55において階層管理部204は、ページPpdへのデータコピー(移動)に対応するように、物理ボリューム管理テーブル135a及び論理ボリューム管理テーブル135bを更新する。すなわち階層管理部204は、論理ボリューム管理テーブル135b内でページPqに対応付けられた論理ボリュームIDu及びLBAvが、新たにページPpdに対応付けられるように、論理ボリューム管理テーブル135b内の対応するエントリを更新する。また、ステップS55において階層管理部204は、物理ボリューム管理テーブル135a内でページPpdが新たに論理ボリュームIDu及びLBAvに対応付けられるように、当該ページPpdに対応する物理ボリューム管理テーブル135a内のエントリを更新する。そして階層管理部204は、キャッシュ制御部205に制御を返す。
するとキャッシュ制御部205は、ページPqを高速ストレージ11のデータ領域から削除(解放)して、当該ページPqをキャッシュ領域に変更する(ステップS56)。具体的には、キャッシュ制御部205は、ページPqに対応する物理ボリューム管理テーブル135a内のエントリのキャッシュフラグを“No”から“Yes”に変更する。またキャッシュ制御部205は、ページPqに対応する物理ボリューム管理テーブル135a内のエントリの、論理ボリュームID、LBA、複製先::複製元、及びアクセス特性を、すべて“N/A”に変更する。これにより、ページPqは、データ領域から解放されて、キャッシュ領域として利用可能な空き領域に変更される。
キャッシュ制御部205は、上述のステップS54乃至S56を、ステップS53でリストアップされたMページについて階層管理部204と協同して繰り返す(ステップS57)。なお、ステップS51の判定がNoであるならば、キャッシュ制御部205は、データ領域を解放することなく、データ領域解放処理を終了する。
このように本実施形態によれば、データ領域をキャッシュ領域に変更する必要がある場合に(ステップS51のYes)、キャッシュ制御部205は、アクセス回数が下位の上位階層のデータ領域(ページ)を優先的に解放する(ステップS53乃至S56)。アクセス回数が下位の上位階層のデータ領域に格納されているデータは、格納先が下位階層に変更されるべきデータである。一般に、上位階層のデータ領域を解放してキャッシュ領域に変更する場合、解放されるデータ領域のデータは下位階層に移動される必要がある。その理由は、上位階層のデータ領域が単に解放されただけでは、当該データ領域のデータが失われてしまうためである。そこで本実施形態は、データ領域のデータのうち、再度上位階層に移動される可能性が低いデータ(つまり、格納先が下位階層に変更されるべきデータ)を優先して下位階層に移動する。これにより、下位階層から上位階層へのデータ移動が抑制される。
次に、本実施形態で適用されるキャッシュ領域解放処理について、図11を参照して説明する。図11はキャッシュ領域解放処理の典型的な手順を示すフローチャートである。キャッシュ領域解放処理は、データ領域解放処理とは逆に、高速ストレージ11においてデータ領域が不足している場合に実行される。
まずキャッシュ制御部205は、解放されるべきキャッシュ領域のサイズを決定する(ステップS61)。次にキャッシュ制御部205は、決定されたサイズを補充するのに用いられるべき(つまり、キャッシュ領域からデータ領域に変更されるべき)ページ(キャッシュページ)をリストアップする(ステップS62)。すなわちキャッシュ制御部205は、高速ストレージ11のキャッシュ領域に含まれるページのうち、アクセス回数が下位のNページを、物理ボリューム管理テーブル135aからリストアップする。ここでは、アクセス回数の昇順にNページがリストアップされる。Nページのサイズは、ステップS61で決定されたサイズに等しい。
次にキャッシュ制御部205は、リストアップされたページの集合から1つのページ(キャッシュ)ページPrを選択する(ステップS63)。次にキャッシュ制御部205は、ページPr(つまり高速ストレージ11内のページPr)のキャッシュデータと複製関係のある実データが低速ストレージ12に存在するかを判定する(ステップS64)。キャッシュ制御部205は、この判定を、ページPrに対応する物理ボリューム管理テーブル135a内のエントリの複製先が“N/A”以外であるかに基づいて実行する。
もし、複製先が“N/A”であるならば、キャッシュ制御部205は、ページPrのキャッシュデータと複製関係のある実データが低速ストレージ12に存在しないと判定する(ステップS64のNo)。このように、ページPrのキャッシュデータと複製関係のある実データが存在しないということは、当該キャッシュデータがダーティデータであることを示す。つまり、キャッシュデータがダーティデータであるとは、当該キャッシュデータが、実データとして低速ストレージ12に反映されていないことを指す。
ステップS64の判定がNoの場合、キャッシュ制御部205は階層管理部204に制御を渡す。すると階層管理部204は、キャッシュ制御部205の指示に基づいて、ページPrのデータを、低速ストレージ12の例えばページPpcにコピー(移動)する(ステップS65)。ステップS65において階層管理部204は、ページPpcへのデータコピー(移動)に対応するように、前述のページPpdへのデータコピーの場合と同様に物理ボリューム管理テーブル135a及び論理ボリューム管理テーブル135bを更新する。そして階層管理部204は、キャッシュ制御部205に制御を返す。するとキャッシュ制御部205は、ステップS67に進む。
これに対し、複製先が“N/A”以外であるならば、キャッシュ制御部205は、ページPrのキャッシュデータと複製関係のある実データが低速ストレージ12に存在すると判定する(ステップS64のYes)。このように、ページPrのキャッシュデータと複製関係のある実データが存在するということは、当該キャッシュデータがダーティデータでないことを示す。ここでは、ページPrのキャッシュデータと複製関係のある実データが低速ストレージ12のページPpcに存在するものとする。この場合、ページPrのキャッシュデータの低速ストレージ12へのデータコピー(いわゆるキャッシュ同期化)が不要であることに注意されるべきである。
そこでキャッシュ制御部205は、ページPrのキャッシュデータの低速ストレージ12へのデータコピーを抑止する。そして、キャッシュ制御部205は、ステップ64で判定された複製関係を、前述のI/O処理におけるステップS42と同様の方法で解消し(ステップS66)、しかる後にステップS67に進む。
ステップS67においてキャッシュ制御部205は、ページPrを高速ストレージ11のキャッシュ領域から削除(解放)して、当該ページPrをデータ領域に変更する。具体的には、キャッシュ制御部205は、ページPrに対応する物理ボリューム管理テーブル135a内のエントリのキャッシュフラグを“Yes”から“No”に変更する。またキャッシュ制御部205は、ページPrに対応する物理ボリューム管理テーブル135a内のエントリの、論理ボリュームID、LBA、複製先::複製元、及びアクセス特性を、すべて“N/A”に変更する。これにより、ページPqは、キャッシュ領域から解放されて、データ領域として利用可能な空き領域に変更される。キャッシュ制御部205は、上述のステップS63乃至S67を、ステップS62でリストアップされたNページについて階層管理部204と協同して繰り返す(ステップS68)。
このように本実施形態によれば、キャッシュ制御部205は、アクセス回数が下位のキャッシュ領域(ページ)を優先的に解放する(ステップS62乃至S67)。つまり本実施形態は、上位階層に移動される可能性が低いデータ(つまり、格納先が上位階層に変更されるべきでないデータ)が格納されたキャッシュ領域を優先的に解放する。これにより、下位階層から上位階層へのデータ移動が抑制される。
また本実施形態によれば、解放されるべきキャッシュ領域(ページ)に、ダーティでないキャッシュデータ(つまり、非ダーティデータ)が格納されている場合(ステップS64のYes)、キャッシュ制御部205は、当該キャッシュデータの下位階層へのコピー(移動)を抑止する。具体的には、解放されるべきキャッシュ領域内のキャッシュデータと複製関係のある実データが低速ストレージ12に存在する場合、キャッシュ制御部205は、キャッシュ領域を解放して当該キャッシュ領域をデータ領域に変更する前に(ステップS67)、ステップS65に代えてステップS66を実行する。つまりキャッシュ制御部205は、解放されるべきキャッシュ領域内の非ダーティデータを下位階層へ移動する代わりに、当該非ダーティデータの複製関係を解消する(ステップS66)。これにより、キャッシュ領域をデータ領域に変更する際の上位階層から下位階層へのデータ移動を抑制できる。したがって、例えば、非ダーティデータが格納された第1のキャッシュ領域へのアクセスの回数とダーティデータが格納された第2のキャッシュ領域へのアクセスの回数とが同一の場合、キャッシュ制御部205は第1のキャッシュ領域を優先的に解放すると良い。
次に、本実施形態で適用されるキャッシュ同期化処理について、図12を参照して説明する。図12はキャッシュ同期化処理の典型的な手順を示すフローチャートである。キャッシュ同期化処理は、キャッシュ制御部205がキャッシュ同期化要求を受信した場合に、当該キャッシュ制御部205によって実行される。キャッシュ同期化要求は、キャッシュ領域にダーティデータ(つまり、ストレージに未反映のキャッシュデータ)が格納されている場合に、当該ダーティデータを、当該ダーティデータに対応する実データが格納されている領域にライト(コピーまたは反映)することをキャッシュ制御部205に指示するコマンド(つまり、ライト要求)である。キャッシュ同期化要求は、例えばオペレーティングシステム(OS)シャットダウンのようなイベントが発生した場合に、当該OSによって発行される。また、ダーティデータが格納されているキャッシュ領域を解放するために、当該キャッシュ領域から当該ダーティデータを追い出す必要がある場合にも、キャッシュ同期化要求は発行される。さらに、ストレージコントローラ13において予め設定されたスケジュールで、キャッシュ同期化要求が発行されることもある。
今、キャッシュ制御部205が、キャッシュ同期化要求を受信したものとする。この場合、キャッシュ制御部205は物理ボリューム管理テーブル135aに基づいて、キャッシュとして利用されている高速ストレージ11内のダーティなページ(キャッシュページ)を選択する(ステップS71)。ダーティなキャッシュページとは、ストレージ(ここでは低速ストレージ12)に未反映のキャッシュデータ(つまり、ダーティデータ)が格納されているページを指す。
次にキャッシュ制御部205は、選択されたキャッシュページに格納されているキャッシュデータ(つまり、ダーティデータ)が低速ストレージ12と同期化されるべきかを判定する(ステップS72)。キャッシュデータが低速ストレージ12と同期化されるとは、当該キャッシュデータが実データとして低速ストレージ12にコピーされることを指す。この判定は、選択されたキャッシュページのデータが低速ストレージ12に置かれる(格納される)ことが好ましいかに基づいて実行される。具体的にはキャッシュ制御部205は、選択されたキャッシュページのアクセス回数が、高速ストレージ11内のすべてのダーティなキャッシュページのうちの下位のF位内に入っているかに基づいて、判定ステップS72を実行する。なお、選択されたキャッシュページのアクセス回数が、閾値を下回るかに基づいて、キャッシュ制御部205が判定ステップS72を実行しても良い。
ステップS72の判定がYesの場合、キャッシュ制御部205は、選択されたキャッシュページのデータ(キャッシュデータ)を、低速ストレージ12に実データとしてコピーする(ステップS73)。より詳細に述べるならば、キャッシュ制御部205は、当該データに対応し、かつ低速ストレージ12に格納されている旧実データを、選択されたキャッシュページのデータに置き換える。これにより、選択されたキャッシュページのキャッシュデータは、低速ストレージ12と同期化される。
本実施形態によれば、ステップS73で高速ストレージ11(上位階層)から低速ストレージ12(下位階層)にデータが移動されるキャッシュページは、アクセス回数が下位のダーティキャッシュページに限られる。つまり本実施形態において、データが移動されるキャッシュページは、キャッシュデータが下位階層に置かれることが好ましいダーティキャッシュページに限られる。したがって本実施形態によれば、下位階層に移動されたデータが再び上位階層に移動されるのを抑制できる。
ここで、キャッシュデータが上位階層に置かれることが好ましいダーティキャッシュページについても、当該キャッシュデータが本実施形態と異なって上位階層から下位階層に移動されるものとする。この場合、下位階層に移動されたデータが再び上位階層に移動されことになる。つまり、無駄なデータ移動の往復が発生する。本実施形態は、このような無駄なデータ移動の往復を防止できる。
一方、ステップS72の判定がNoの場合、キャッシュ制御部205は、選択されたキャッシュページ(キャッシュ領域)を実ページ(データ領域)に変更するための領域置換処理を実行する(ステップS74)。このキャッシュ同期化処理における領域置換処理(ステップS74)は、階層変更処理における領域置換処理(ステップS9)と同様に実行される。
本実施形態においてキャッシュ制御部205は、アクセス回数が多いために高速ストレージ11に置かれるべきであると判定されたダーティキャッシュページのキャッシュデータを、同期化されるべきでないデータとして分類する(ステップS72のNo)。この場合、キャッシュ制御部205は上述のように、キャッシュ同期化に代えて、選択されたダーティキャッシュページ(キャッシュ領域)の実ページ(データ領域)への領域変換を行う(ステップS74)。これにより、ダーティキャッシュページ(キャッシュ領域)から変更された実ページの内容(実データ)は、当該ダーティキャッシュページの内容(キャッシュデータ)に一致する。但し、実ページに対応するキャッシュページ自体は存在しない。
よって本実施形態は、選択されたダーティキャッシュページのデータが高速ストレージ11に置かれるべきであると判定された場合(ステップS72のNo)、ステップS74を実行することにより、階層間のデータ移動(より詳細には、高速ストレージ11内のキャッシュページから低速ストレージ12内の実ページへのデータ移動)を抑制しながら、階層間のデータ移動を伴うキャッシュ同期化と同等の効果を得ることができる。
以上説明した少なくとも1つの実施形態によれば、階層間のデータ移動を抑制しつつも入出力性能を維持することができる階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法を提供できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。

Claims (9)

  1. 第1の物理ボリュームを含む第1のストレージ装置と、第2の物理ボリュームを含み、かつ前記第1のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第2のストレージ装置とを具備する階層化ストレージシステムにおいて、ホストコンピュータからの入出力要求を処理するストレージコントローラであって、
    前記第1の物理ボリュームと前記第2の物理ボリュームとから構成された論理ボリュームを前記ホストコンピュータに提供する論理ボリューム管理部と、
    前記第1の物理ボリュームを第1の階層、前記第2の物理ボリュームを前記第1の階層よりも低い第2の階層として管理し、かつデータの特性に基づき、当該データが格納されるべき階層を決定または変更する階層管理部と、
    前記第1の物理ボリューム内の記憶領域を、データが格納されるデータ領域の集合とキャッシュデータが格納されるキャッシュ領域の集合とに分割し、前記キャッシュ領域の集合を前記階層化ストレージシステムのキャッシュとして機能させるキャッシュ制御部と
    を具備し、
    前記キャッシュ制御部は、前記第2の物理ボリュームに格納されている第1のデータが前記第1の物理ボリュームに移動されるべきであると前記階層管理部によって判断され、かつ前記第1のデータが前記第1の物理ボリュームの第1のキャッシュ領域にも格納されている場合に、前記第1のキャッシュ領域を第1のデータ領域に変更する
    ストレージコントローラ。
  2. 前記キャッシュ制御部は、
    前記ホストコンピュータからの入出力要求がリード要求であり、かつ前記リード要求が前記第1の物理ボリュームの第1の記憶領域からのデータリードを指定している場合、前記第1の記憶領域からリードされたデータを前記第1の物理ボリュームのキャッシュ領域にキャッシュすることを控え、
    前記リード要求が前記第2の物理ボリュームの第2の記憶領域からのデータリードを指定している場合、前記第2の記憶領域からリードされたデータを前記第1の物理ボリュームのキャッシュ領域にキャッシュする
    請求項1記載のストレージコントローラ。
  3. 前記キャッシュ制御部は、キャッシュ領域からデータ領域への変更に応じて前記キャッシュのサイズが第1のサイズだけ減少した場合、前記第1のサイズに相当するデータ領域をキャッシュ領域に変更する請求項1記載のストレージコントローラ。
  4. 前記キャッシュ制御部は、前記第1のサイズに相当するデータ領域をキャッシュ領域に変更する場合、前記第2の物理ボリュームに格納先が変更されるべきデータが格納されているデータ領域を優先してキャッシュ領域に変更する請求項3記載のストレージコントローラ。
  5. 前記キャッシュ制御部は、キャッシュ領域をデータ領域に変更する場合、前記第2の物理ボリュームに格納先が変更されるべきキャッシュデータであって、かつ対応する実データに一致するキャッシュデータが格納されているキャッシュ領域を優先してデータ領域に変更する請求項4記載のストレージコントローラ。
  6. 前記キャッシュ制御部は、前記第1のキャッシュ領域が前記第1のデータ領域に変更された後、前記第1のデータ領域に格納されている前記第1のデータが更新された場合に、前記第1のデータ領域とは別に前記第1のデータが格納されている前記第2の物理ボリューム内の記憶領域を未割当て領域として解放する請求項1記載のストレージコントローラ。
  7. 前記キャッシュ制御部は、
    キャッシュ領域に格納されているデータを前記第2の物理ボリュームに反映することを指定するキャッシュ同期化要求を受信した場合、前記第2の物理ボリュームに未反映の第2のデータが格納されている第2のキャッシュ領域を選択し、
    前記第2のデータのデータ特性から、前記第2のデータが前記第1の物理ボリュームに格納されるべきであるかを判定し、
    前記第2のデータが前記第1の物理ボリュームに格納されるべきでない場合、前記第2のデータを前記第2の物理ボリュームに反映し、
    前記第2のデータが前記第1の物理ボリュームに格納されるべきである場合、前記第2のキャッシュ領域をデータ領域に変更する
    請求項1記載のストレージコントローラ。
  8. 第1の物理ボリュームを含む第1のストレージ装置と、
    第2の物理ボリュームを含み、かつ前記第1のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第2のストレージ装置と、
    ホストコンピュータからの入出力要求を処理するストレージコントローラと
    を具備し、
    前記ストレージコントローラは、
    前記第1の物理ボリュームと前記第2の物理ボリュームとから構成された論理ボリュームを前記ホストコンピュータに提供する論理ボリューム管理部と、
    前記第1の物理ボリュームを第1の階層、前記第2の物理ボリュームを前記第1の階層よりも低い第2の階層として管理し、かつデータの特性に基づき、当該データが格納されるべき階層を決定または変更する階層管理部と、
    前記第1の物理ボリューム内の記憶領域を、データが格納されるデータ領域の集合とキャッシュデータが格納されるキャッシュ領域の集合とに分割し、前記キャッシュ領域の集合を前記階層化ストレージシステムのキャッシュとして機能させるキャッシュ制御部と
    を具備し、
    前記キャッシュ制御部は、前記第2の物理ボリュームに格納されている第1のデータが前記第1の物理ボリュームに移動されるべきであると前記階層管理部によって判断され、かつ前記第1のデータが前記第1の物理ボリュームの第1のキャッシュ領域に格納されている場合に、前記第1のキャッシュ領域を第1のデータ領域に変更する
    階層化ストレージシステム。
  9. 第1の物理ボリュームを含む第1のストレージ装置と、第2の物理ボリュームを含み、かつ前記第1のストレージ装置よりもアクセス速度が低速で記憶容量が大きい第2のストレージ装置とを具備し、前記第1の物理ボリュームと前記第2の物理ボリュームとから構成された論理ボリュームを前記ホストコンピュータに提供し、かつ前記第1の物理ボリュームを第1の階層、前記第2の物理ボリュームを前記第1の階層よりも低い第2の階層として管理する階層化ストレージシステムにおいて、ホストコンピュータからの入出力要求を処理するストレージコントローラに適用される階層間のデータ移動を代替する方法であって、
    前記第1の物理ボリューム内の記憶領域を、データが格納されるデータ領域の集合とキャッシュデータが格納されるキャッシュ領域の集合とに分割し、
    前記キャッシュ領域の集合を前記階層化ストレージシステムのキャッシュとして機能させ、
    前記第2の物理ボリュームに格納されているデータのデータ特性に基づき、前記第2の物理ボリュームから前記第1の物理ボリュームに移動されるべき第1のデータを選択し、
    前記第1のデータが前記第1の物理ボリュームの第1のキャッシュ領域にも格納されている場合に、前記第1のデータを前記第1の物理ボリュームに移動する代わりに、前記第1のキャッシュ領域を第1のデータ領域に変更する
    階層間のデータ移動を代替する方法。
JP2014530441A 2014-01-31 2014-01-31 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法 Active JP5707540B1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/052309 WO2015114809A1 (ja) 2014-01-31 2014-01-31 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法

Publications (2)

Publication Number Publication Date
JP5707540B1 true JP5707540B1 (ja) 2015-04-30
JPWO2015114809A1 JPWO2015114809A1 (ja) 2017-03-23

Family

ID=53277132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014530441A Active JP5707540B1 (ja) 2014-01-31 2014-01-31 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法

Country Status (4)

Country Link
US (1) US9454317B2 (ja)
JP (1) JP5707540B1 (ja)
CN (1) CN104969170B (ja)
WO (1) WO2015114809A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016157274A1 (ja) * 2015-03-27 2016-10-06 株式会社日立製作所 ストレージ管理計算機
JP2016218877A (ja) * 2015-05-25 2016-12-22 日本電気株式会社 ストレージシステム、サーバ、キャッシュ方法およびプログラム
US10481829B2 (en) 2016-12-22 2019-11-19 Fujitsu Limited Information processing apparatus, non-transitory computer-readable recording medium having stored therein a program for controlling storage, and method for controlling storage

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104679661B (zh) 2013-11-27 2019-12-10 阿里巴巴集团控股有限公司 混合存储的控制方法及混合存储系统
WO2015140931A1 (ja) * 2014-03-18 2015-09-24 株式会社 東芝 トライアル領域を備えた階層化ストレージシステム、ストレージコントローラ及びプログラム
CN106612619B (zh) * 2015-08-25 2019-05-21 株式会社东芝 分级存储系统、利用分级存储装置的计算机及校正对文件的访问计数的计算机
WO2017046871A1 (ja) * 2015-09-15 2017-03-23 株式会社日立製作所 情報処理装置、拡張メモリおよび情報処理装置のメモリ制御方法
US10320936B2 (en) 2015-10-20 2019-06-11 International Business Machines Corporation Populating a secondary cache with unmodified tracks in a primary cache when redirecting host access from a primary server to a secondary server
US10127152B2 (en) * 2015-10-20 2018-11-13 International Business Machines Corporation Populating a second cache with tracks from a first cache when transferring management of the tracks from a first node to a second node
JP6067819B1 (ja) * 2015-10-21 2017-01-25 株式会社東芝 階層化ストレージシステム、ストレージコントローラ、並びに重複排除及びストレージ階層化のための方法
WO2017175350A1 (ja) * 2016-04-07 2017-10-12 株式会社日立製作所 計算機システム
JP6708928B2 (ja) * 2016-07-08 2020-06-10 富士通株式会社 ストレージ管理装置、ストレージ管理プログラム、およびストレージシステム
CN107870729B (zh) * 2016-09-23 2020-11-20 伊姆西Ip控股有限责任公司 一种用于缓存数据的方法、设备和系统
JP6981019B2 (ja) * 2017-03-14 2021-12-15 日本電気株式会社 ストレージ装置、ストレージシステム、ストレージ装置の制御方法、プログラム
US10956078B2 (en) * 2018-03-27 2021-03-23 EMC IP Holding Company LLC Storage system with loopback replication process providing object-dependent slice assignment
US10866969B2 (en) 2018-03-28 2020-12-15 EMC IP Holding Company LLC Storage system with loopback replication process providing unique identifiers for collision-free object pairing
US11599557B2 (en) * 2018-06-12 2023-03-07 Open Text Corporation System and method for persistence and replication of changes to a data store
JP6995728B2 (ja) * 2018-09-28 2022-01-17 株式会社日立製作所 ストレージ装置、管理方法及びプログラム
KR102263040B1 (ko) * 2019-04-23 2021-06-09 삼성전자주식회사 멀티 코어 솔리드 스테이트 드라이브의 운용 방법
US11030106B2 (en) * 2019-06-18 2021-06-08 Western Digital Technologies, Inc. Storage system and method for enabling host-driven regional performance in memory
US20220382478A1 (en) * 2021-06-01 2022-12-01 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for page migration in memory systems

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7840753B1 (en) * 2006-09-07 2010-11-23 Marvell International Ltd. Hard disk drive as hybrid drive
JP2009043030A (ja) * 2007-08-09 2009-02-26 Hitachi Ltd ストレージシステム
JP4727705B2 (ja) 2008-10-31 2011-07-20 株式会社日立製作所 階層型ストレージシステム
JP2011090460A (ja) * 2009-10-21 2011-05-06 Toshiba Corp データ記憶装置およびデータ記憶装置における制御方法
JP2012118853A (ja) * 2010-12-02 2012-06-21 Toshiba Corp 記憶装置
JP5175953B2 (ja) * 2011-06-02 2013-04-03 株式会社東芝 情報処理装置およびキャッシュ制御方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016157274A1 (ja) * 2015-03-27 2016-10-06 株式会社日立製作所 ストレージ管理計算機
JPWO2016157274A1 (ja) * 2015-03-27 2017-08-17 株式会社日立製作所 ストレージ管理計算機
JP2016218877A (ja) * 2015-05-25 2016-12-22 日本電気株式会社 ストレージシステム、サーバ、キャッシュ方法およびプログラム
US10481829B2 (en) 2016-12-22 2019-11-19 Fujitsu Limited Information processing apparatus, non-transitory computer-readable recording medium having stored therein a program for controlling storage, and method for controlling storage

Also Published As

Publication number Publication date
JPWO2015114809A1 (ja) 2017-03-23
CN104969170A (zh) 2015-10-07
WO2015114809A1 (ja) 2015-08-06
US9454317B2 (en) 2016-09-27
US20150220280A1 (en) 2015-08-06
CN104969170B (zh) 2017-09-08

Similar Documents

Publication Publication Date Title
JP5707540B1 (ja) 階層化ストレージシステム、ストレージコントローラ、及び階層間のデータ移動を代替する方法
US11347428B2 (en) Solid state tier optimization using a content addressable caching layer
US9063877B2 (en) Storage system, storage controller, and method for managing mapping between local address and physical address
JP5593577B2 (ja) ストレージシステム及びその制御情報の管理方法
KR101717644B1 (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
US8886882B2 (en) Method and apparatus of storage tier and cache management
US9383942B2 (en) Storage system capable of managing a plurality of snapshot families and method of operating thereof
JP5944587B2 (ja) 計算機システム及び制御方法
US9411742B2 (en) Use of differing granularity heat maps for caching and migration
US9075754B1 (en) Managing cache backup and restore
WO2015076354A1 (ja) ストレージ装置と方法並びにプログラム
US9021222B1 (en) Managing incremental cache backup and restore
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
KR20150105323A (ko) 데이터 스토리지 방법 및 시스템
US11392614B2 (en) Techniques for performing offload copy operations
US10127156B1 (en) Caching techniques
US20200349074A1 (en) Caching techniques for migrating and replicating data
US10620850B1 (en) Caching techniques duplicating dirty data in secondary cache
JP2018181202A (ja) ストレージ制御装置、ストレージ制御方法及びストレージ制御プログラム
US11010059B2 (en) Techniques for obtaining metadata and user data
US10853257B1 (en) Zero detection within sub-track compression domains
WO2019026221A1 (ja) ストレージシステム及びストレージ制御方法
US20240319876A1 (en) Caching techniques using a unified cache of metadata leaf objects with mixed pointer types and lazy content resolution
US12093183B1 (en) Caching techniques using a mapping cache and maintaining cache coherency using physical to logical address mapping
US12050775B2 (en) Techniques for determining and using temperature classifications with adjustable classification boundaries

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: 20150203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150302

R150 Certificate of patent or registration of utility model

Ref document number: 5707540

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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