[go: up one dir, main page]

JP2015207123A - ストレージ装置、ストレージ制御方法およびストレージ制御プログラム - Google Patents

ストレージ装置、ストレージ制御方法およびストレージ制御プログラム Download PDF

Info

Publication number
JP2015207123A
JP2015207123A JP2014086849A JP2014086849A JP2015207123A JP 2015207123 A JP2015207123 A JP 2015207123A JP 2014086849 A JP2014086849 A JP 2014086849A JP 2014086849 A JP2014086849 A JP 2014086849A JP 2015207123 A JP2015207123 A JP 2015207123A
Authority
JP
Japan
Prior art keywords
storage
area
storage device
access
high load
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014086849A
Other languages
English (en)
Inventor
聡 岩田
Satoshi Iwata
聡 岩田
和一 大江
Kazuichi Oe
和一 大江
河場 基行
Motoyuki Kawaba
基行 河場
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014086849A priority Critical patent/JP2015207123A/ja
Priority to US14/682,145 priority patent/US9594519B2/en
Publication of JP2015207123A publication Critical patent/JP2015207123A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/0871Allocation or management of cache space
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6024History based prefetching

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 Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】アクセス要求に対する応答速度を向上させる。
【解決手段】抽出部12は、第1の記憶装置21における一定サイズ毎の単位記憶領域A1〜A6のうち、アクセス回数が0より大きい所定回数以上かつ類似する複数の単位記憶領域が連続する記憶領域を、監視領域として一定時間間隔で抽出する。予測部13は、抽出された監視領域のうち同一サイズの監視領域21a,21bの第1の記憶装置21における位置が時間経過にしたがって移動したことを検知したとき、監視領域21a,21bの移動方向に基づいて、アクセスが予測される予測記憶領域21cを第1の記憶装置21の記憶領域から特定する。予測部13は、予測記憶領域21cの内容が第1の記憶装置21よりアクセス速度が高い第2の記憶装置22へコピーされるように制御する。
【選択図】図1

Description

本発明は、ストレージ装置、ストレージ制御方法およびストレージ制御プログラムに関する。
ストレージシステムにおいて、ホスト装置からのアクセス要求に対する応答速度を向上させる技術として、先読み技術がある。“先読み”とは、近い将来にホスト装置からアクセスが要求される可能性が高いデータを予測して、そのデータをアクセス要求先の記憶装置から予め読み出し、より高速な記憶装置に格納しておくことを意味する。ストレージシステムの制御装置は、先読みしたデータに対してホスト装置からアクセスが要求された場合、本来のアクセス要求先の記憶装置ではなく、より高速な記憶装置に対してアクセスすることで、アクセス要求に応じた処理を行うことができる。そのため、先読みしたデータに対してホスト装置からアクセスが要求される確率が高くなるほど、ホスト装置に対する応答速度が高くなり、応答性能が向上する。
先読み技術の代表的な例として、ホスト装置からシーケンシャルなアクセスが要求された場合に、アクセスが要求された範囲よりも先のデータまで高速な記憶領域に先読みする方法が挙げられる。
また、他の先読み技術の例として、アクセスコマンドのログと現アクセスコマンドに基づいて近傍領域を決定し、決定した近傍領域のアクセス出現率が一定値以上である場合に、現アクセスコマンドの指定する記憶領域の近傍領域のデータをキャッシュメモリに先読みする技術が提案されている。
特開2008−293111号公報
ホスト装置からシーケンシャルなアクセスが要求された場合に先読みを行う方法では、先読みすべきデータを判定する条件が限定的であり、アクセス要求に対する応答速度の向上効果が十分に得られているとは言えなかった。
1つの側面では、本発明は、アクセス要求に対する応答速度を向上させることが可能なストレージ装置、ストレージ制御方法およびストレージ制御プログラムを提供することを目的とする。
1つの案では、第1の記憶装置と、第1の記憶装置よりアクセス速度が高い第2の記憶装置と、制御装置とを有するストレージ装置が提供される。制御装置は、抽出部、予測部およびアクセス制御部を有する。抽出部は、第1の記憶装置における一定サイズ毎の単位記憶領域のうち、アクセス回数が0より大きい所定回数以上かつ類似する複数の単位記憶領域が連続する記憶領域を、監視領域として一定時間間隔で抽出する。予測部は、抽出部によって抽出された監視領域のうち同一サイズの監視領域の第1の記憶装置における位置が時間経過にしたがって移動したことを検知したとき、同一サイズの監視領域の移動方向に基づいて、アクセスが予測される予測記憶領域を第1の記憶装置の記憶領域から特定する。予測部は、予測記憶領域の内容が第2の記憶装置へコピーされるように制御する。アクセス制御部は、第1の記憶装置の記憶領域に対するアクセス要求を受けたとき、アクセス要求先の記憶領域の内容が第2の記憶装置にコピーされている場合には、第2の記憶装置におけるコピー先の記憶領域へのアクセスが行われるように制御し、アクセス要求先の記憶領域の内容が第2の記憶装置にコピーされていない場合には、第1の記憶装置におけるアクセス要求先の記憶領域へのアクセスが行われるように制御する。
また、1つの案では、上記ストレージ装置と同様の処理をコンピュータが実行するストレージ制御方法が提供される。
さらに、1つの案では、上記ストレージ装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
一側面では、アクセス要求に対する応答速度を向上させることができる。
第1の実施の形態のストレージシステムの構成例およびその動作例を示す図である。 第2の実施の形態のストレージシステムの構成例を示す図である。 ストレージ制御装置のハードウェア構成例を示す図である。 シーケンシャルなアクセスパターンの例を示す図である。 巨視的にみるとシーケンシャルなアクセスパターンの例を示す図である。 ストレージ制御装置の機能構成例を示すブロック図である。 アクセス回数情報テーブルの例を示す図である。 高負荷領域情報テーブルの例を示す図である。 先読み管理テーブルの例を示す図である。 高負荷領域を検出する例を示す図である。 高負荷領域を検出する例を示す図(続き)である。 先読みの有無を判定する例を示す図である。 先読みの実行方法の例を示す図である。 先読みの実行方法の別の例を示す図である。 先読みの有無を判定する処理の例を示すフローチャートである。 先読みの有無を判定する処理の例を示すフローチャート(続き)である。 先読み処理の例を示すフローチャートである。 アクセス制御処理の例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージ装置の構成例およびその動作例を示す図である。第1の実施の形態のストレージ装置1は、制御装置10、第1の記憶装置21および第2の記憶装置22を有する。
第1の記憶装置21は、例えば記録媒体としてHDD(Hard Disk Drive)を備える。第2の記憶装置22は、第1の記憶装置21よりアクセス速度が速い記憶装置であり、例えば記録媒体としてSSD(Solid State Drive)を備える。なお、第1の記憶装置21と第2の記憶装置22の少なくとも一方は、ストレージ装置1の外部に設けられていてもよい。また、第1の記憶装置21と第2の記憶装置22の少なくとも一方は、制御装置10の内部に搭載されていてもよい。
制御装置10は、第1の記憶装置21および第2の記憶装置22に対するアクセスを制御する。また、制御装置10には、ホスト装置23が接続されている。ホスト装置23は、制御装置10に対して、第1の記憶装置21の記憶領域に対するアクセスを要求する。制御装置10は、ホスト装置23からのアクセス要求に応じてアクセス処理を行う。
制御装置10は、アクセス制御部11、抽出部12および予測部13を有する。
アクセス制御部11は、ホスト装置23からのアクセス要求を受け付けて、アクセス要求に応答する。アクセス制御部11は、第1の記憶装置21の記憶領域に対するアクセス要求を受けたとき、アクセス要求先の記憶領域の内容が第2の記憶装置22にコピーされていない場合には、第2の記憶装置22におけるコピー先の記憶領域へのアクセスが行われるように制御する。一方、アクセス要求先の記憶領域の内容が第2の記憶装置22にコピーされている場合には、第1の記憶装置21におけるアクセス要求先の記憶領域へのアクセスが行われるように制御する。これにより、アクセスが要求されてからの応答速度が向上する。
抽出部12は、第1の記憶装置21における一定サイズ毎の単位記憶領域のうち、アクセス回数が0より大きい所定回数以上かつ類似する複数の単位記憶領域が連続する記憶領域を、監視領域として一定時間間隔で抽出する。なお、各単位記憶領域のアクセス回数が類似する場合とは、例えば、各単位記憶領域のアクセス回数のばらつき度合いが所定の範囲内である場合である。
予測部13は、抽出部12によって抽出された監視領域のうち同一サイズの監視領域の第1の記憶装置21における位置が、時間経過にしたがって移動したことを検知したとき、これらの同一サイズの監視領域の移動方向に基づいて、アクセスが予測される予測記憶領域を第1の記憶装置21の記憶領域から特定する。そして、特定された予測記憶領域の内容が第2の記憶装置22へコピーされるように制御する。
抽出部12および予測部13の処理により、その後にホスト装置23からアクセスが要求されることが予測される予測記憶領域が、正確に特定される。そして、このように特定された予測記憶領域の内容が、その後にアクセスが要求されるより前に第2の記憶装置22にコピーされることで、その記憶領域へのアクセスが要求された際のアクセス速度を高速化できる。したがって、全体として、アクセス要求に対する制御装置10の応答速度を向上させることができる。
次に、抽出部12および予測部13の処理の具体例について、図1の左下の図を用いて説明する。図1の左下の図は、第1の記憶装置21の記憶領域のうち、アクセスが要求される記憶領域の時間経過に伴う推移の例を示す。
時刻“t”,“t+1”,“t+2”は、それぞれ一定の長さの連続する時間帯を示す。また、単位記憶領域A1〜A6は、第1の記憶装置21において連続して配置されている。
時刻“t”で表される時間帯では、隣接する単位記憶領域A1,A2において、ともにアクセス回数が0より大きい所定回数以上であり、なおかつ、それらのアクセス回数が類似していたとする。この場合、抽出部12は、単位記憶領域A1,A2を結合した記憶領域21aを監視領域として特定する。
また、時刻“t+1”で表される次の時間帯では、隣接する単位記憶領域A3,A4において、ともにアクセス回数が0より大きい所定回数以上であり、なおかつ、それらのアクセス回数が類似していたとする。この場合、抽出部12は、単位記憶領域A3,A4を結合した記憶領域21bを監視領域として特定する。
ここで、各時間帯で監視領域として特定された記憶領域21a,21bのサイズは同一であり、また、第1の記憶装置21での位置が異なっている。このため、予測部13は、監視領域の位置が時間経過にしたがって移動したと判定する。すなわち、記憶領域21aは移動前の監視領域であり、記憶領域21bは移動後の監視領域であると判定される。
予測部13は、監視領域の移動方向に基づいて、その後にアクセスが要求されることが予測される予測記憶領域を特定する。図1の例では、時刻“t”から時刻“t+1”までの時間に、監視領域が単位記憶領域2つ分の量だけ、アドレスが大きくなる方向に移動している。このため、予測部13は、時刻“t+2”で表される次の時間帯において、単位記憶領域A5,A6を結合した記憶領域21cに対して、ホスト装置23からのアクセス要求がある程度集中すると予測する。すなわち、予測部13は、記憶領域21cを予測記憶領域として特定する。予測部13は、記憶領域21cの内容が第2の記憶装置22へコピーされるように制御する。
以上の処理において、予測部13によって特定される監視領域では、ある時間帯において、その記憶領域内でほぼ均等にアクセスが要求されている。このような監視領域が時間経過に伴って移動した場合、巨視的にみるとシーケンシャルなアクセスが行われていると判断できる。このようなアクセスの傾向は、例えば、ホスト装置23で同一のアプリケーションが実行されることでアクセスが行われている場合等にみられる。
このため、監視領域の位置が移動したことが検知された場合に、その移動方向に基づいて予測記憶領域が特定されることで、その後にホスト装置23からアクセスが要求されることが予測される記憶領域が正確に特定される。そして、このように特定された予測記憶領域の内容が、その後にアクセスが要求されるより前に第2の記憶装置22にコピーされることで、アクセス要求先の記憶領域の内容が第2の記憶装置22にコピーされている確率が高くなる。その結果、アクセス要求に対する制御装置10の応答速度を向上させることができる。
[第2の実施の形態]
次に、上記の第1の記憶装置として複数のHDDを使用し、第2の記憶装置としてSSDを使用したストレージ装置の例について説明する。
図2は、第2の実施の形態のストレージ装置の構成例を示す図である。図2に示すストレージ装置2は、ストレージ制御装置100およびディスクアレイ200を有する。また、ストレージ装置2には、ホスト装置300が接続されている。
ディスクアレイ200は、ストレージ制御装置100によるアクセス制御対象となる記憶装置である。ディスクアレイ200は、SSD201およびHDD202a,202b,202c,…202nを有する。なお、SSD201の数は、複数であってもよい。
なお、ストレージ制御装置100は、第1の実施の形態のストレージ装置1の制御装置10の一例である。SSD201は、第1の実施の形態のストレージ装置1の第2の記憶装置22の一例である。HDD202a,202b,202c,…202nは、第1の実施の形態のストレージ装置1の第1の記憶装置21の一例である。ホスト装置300は、第1の実施の形態のストレージ装置1のホスト装置23の一例である。
HDD202a,202b,202c,…202nは、ホスト装置300によるアクセス要求の対象となるデータを記憶する。SSD201は、HDD202a,202b,202c,…202nと比較して高速にアクセス可能な記憶装置である。SSD201は、ストレージ制御装置100の制御の下で、HDD202a,202b,202c,…202nに記憶されているデータの一部を記憶する。なお、SSD201は、HDD202a,202b,202c,…202nに記憶されているデータの一部の他、ストレージ装置2で用いられるアプリケーションやOS(Operating System)等のプログラムや、その他の各種のデータを記憶してもよい。
ストレージ制御装置100は、ホスト装置300からのアクセス要求に応じて、SSD201またはHDD202a,202b,202c,…202nに対してコマンドを発行することで、これらの記憶装置に対するアクセスを制御する。また、ストレージ制御装置100は、HDD202a,202b,202c,…202nによって実現される物理記憶領域を管理し、これらの物理記憶領域に対するアクセスを制御する。物理記憶領域を管理方法の例として、RAID(Redundant Arrays of Inexpensive Disks)が挙げられるが、これに限定されるものではない。
ストレージ制御装置100は、HDD202a,202b,202c,…202nの記憶領域のうち、近い将来にホスト装置300からのアクセス要求(読み出し要求および書き込み要求)が集中する可能性の高い記憶領域を予測して、その記憶領域の内容を読み出す。ストレージ制御装置100は、読み出した内容をSSD201に書き込む。すなわち、ストレージ制御装置100は、アクセス要求が集中する可能性が高いと予測した記憶領域の全体の内容を、そのままSSD201へコピーする。以下、上記のような、データの予測から、SSD201への書き込みまでの一連の動作を“先読み”と記載する場合がある。
ストレージ制御装置100は、HDD202a,202b,202c,…202nのいずれかに記憶されたデータの読み出し要求をホスト装置300から受信したとき、読み出しが要求されたデータがSSD201に記憶されている場合には、HDDではなくSSD201から当該データを読み出す。一方、当該データがSSD201に記憶されていない場合には、HDDから当該データを読み出す。
一方、ストレージ制御装置100は、HDD202a,202b,202c,…202nのいずれかに対して、データの書き込み要求をホスト装置300から受信したとき、要求された書き込み先の記憶領域の内容がSSD201に書き込まれている場合には、HDDではなくSSD201の対応する記憶領域に対して書き込みを要求されたデータを書き込む。一方、当該記憶領域の内容がSSD201に書き込まれていない場合には、HDDに対して当該データを書き込む。
すなわち、先読みしたデータに対してホスト装置300からアクセス要求があった場合、ホスト装置300からのアクセス要求に対するデータのアクセス処理が高速化される。したがって、先読みしたデータに対して、ホスト装置300からアクセスが要求される確率が上がるほど、ホスト装置300からのアクセス要求に対するストレージ装置2のアクセスの応答性能が向上することになる。
ホスト装置300は、ユーザの操作に応じて、ストレージ制御装置100に対して、HDD202a,202b,202c,…202nによって実現される記憶領域へのアクセスを要求する。ホスト装置300は、例えば、ユーザの操作に応じて、ストレージ制御装置100を通じて、HDD202a,202b,202c,…202nからのデータの読み出しを行うことができる。また、ホスト装置300は、例えば、ユーザの操作に応じて、ストレージ制御装置100を通じて、HDD202a,202b,202c,…202nに対するデータの書き込みを行うことができる。
図3は、ストレージ制御装置のハードウェア構成例を示す図である。
ストレージ制御装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、RAM(Random Access Memory)102および複数の周辺機器が、バス109を介して接続されている。RAM102は、ストレージ制御装置100の主記憶装置として使用され、プロセッサ101に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。
プロセッサ101には、周辺機器の例として、HDD103、表示装置104、入力装置105、読み取り装置106、ホストインタフェース107およびディスクインタフェース108が接続されている。
HDD103は、ストレージ制御装置100の二次記憶装置として使用され、プロセッサ101によって実行されるプログラムやその実行に必要な各種のデータ等を記憶する。なお、二次記憶装置としては、例えば、SSD等の他の種類の不揮発性記憶装置が使用されてもよい。
表示装置104は、プロセッサ101からの命令にしたがって、ストレージ制御装置100が備えるディスプレイに画像を表示させる。なお、ディスプレイとしては、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機EL(Electro Luminescence)等を用いることができる。
入力装置105は、ストレージ制御装置100のユーザによる入力操作により出力された出力信号をプロセッサ101に送信する。入力装置105の例として、タッチパッドやキーボード等が挙げられる。
読み取り装置106は、記録媒体106aに記録されたプログラムやデータを読み取る駆動装置である。記録媒体106aとして、例えば、フレキシブルディスク(FD:Flexible Disk)やHDD等の磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)等の光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。
ホストインタフェース107は、ホスト装置300とストレージ制御装置100との間でデータを送受信するインタフェース処理を実行する。ディスクインタフェース108は、ディスクアレイ200とストレージ制御装置100との間でデータを送受信するインタフェース処理を実行する。
なお、ストレージ制御装置100は、読み取り装置106を備えていなくてもよく、専ら他の端末装置から制御される場合には、表示装置104や入力装置105を備えていなくてもよい。
ところで、ストレージ制御装置100は、ホスト装置300からのアクセス要求の傾向が特定できれば、そのアクセス要求の傾向に応じて先読みすることで、先読みしたデータに対して、ホスト装置300からアクセスが要求される可能性が上がる。図4〜5では、ホスト装置300からのアクセス要求がある傾向を持つ場合の例として、シーケンシャルなアクセスパターンと、巨視的にみるとシーケンシャルなアクセスパターンとについて説明する。
図4〜5の説明では、便宜的に、HDD202a,202b,202c…202nをまとめて “HDD202”と表す。また、これ以降、HDD202a,202b,202c…202nを区別せずに説明する場合には、“HDD202”という表記を使用する。すなわち、HDD202は、ホスト装置300からのアクセスの対象となる記憶領域を実現する記憶装置を示す。
図4は、シーケンシャルなアクセスパターンの例を示す図である。グラフ31は、ホスト装置300からアクセス要求があったHDD202内の記憶領域と、アクセス要求があったときの時刻との対応関係を示す。グラフ31の縦軸は、HDD202の記憶領域のアドレスを示す。グラフ31の横軸は、HDD202の記憶領域に対してアクセス要求があったときの時刻を示す。また、グラフ31において、矩形領域の下端は、アクセスが要求されたHDD202の記憶領域の先頭アドレスを示し、矩形領域の上端は、アクセスが要求されたHDD202の記憶領域の末尾アドレスを示す。
ここで、グラフ31を用いて、ホスト装置300からストレージ制御装置100へのアクセス要求の傾向の一例について説明する。
グラフ31に示すように、先頭アドレスが“0"であり末尾アドレスが“3"であるHDD202の記憶領域、先頭アドレスが“4"であり末尾アドレスが“7"であるHDD202の記憶領域、先頭アドレスが“8"であり末尾アドレスが“11"である記憶領域、先頭アドレスが“12"であり末尾アドレスが“15"である記憶領域の順に、ホスト装置300からストレージ制御装置100へアクセス要求がされている。
この場合、時刻"0"〜時刻“t”までの間に、ホスト装置300からストレージ制御装置100へのアクセス要求の傾向は、シーケンシャルなアクセスが行われる傾向にあると判断できる。このとき、ストレージ制御装置100は、時刻“t”の経過後、先頭アドレスが“16"であり、末尾アドレスが“19"である記憶領域に対して、ホスト装置300からアクセスが要求される可能性が高いと判断できる。そのため、ストレージ制御装置100は、時刻“t”の時点で、先頭アドレスが“16"であり末尾アドレスが“19"である記憶領域を先読みすることで、先読みしたデータに対してホスト装置300がアクセスを要求する確率を増加させることができる。
このように、シーケンシャルな読み出しが行われる傾向にあるアクセスパターン(シーケンシャルなアクセスパターン)が発生したと判断できれば、そのアクセスパターンに基づく先読みをストレージ制御装置100が実行することで、ストレージ装置2のアクセス要求に対する応答速度が向上する。
図5は、巨視的にみるとシーケンシャルなアクセスパターンの例を示す図である。グラフ32は、図4のグラフ31と同様に、ホスト装置300からアクセス要求があったHDD202内の記憶領域と、アクセス要求があったときの時刻との対応関係を示す。図5では、図4と同じ内容の説明を省略する場合がある。
ここで、グラフ32を用いて、ホスト装置300からストレージ制御装置100へのアクセス要求の傾向の一例について説明する。
グラフ32に示すように、まず、先頭アドレスが“0”であり末尾アドレスが“3”であるHDD202の記憶領域、先頭アドレスが“20”であり末尾アドレスが“23”であるHDD202の記憶領域の順に、ホスト装置300からストレージ制御装置100へアクセス要求がされている。次に、先頭アドレスが“8”であり末尾アドレスが“11”であるHDD202の記憶領域、先頭アドレスが“24”であり末尾アドレスが“27”であるHDD202の記憶領域の順に、ホスト装置300からストレージ制御装置100へアクセス要求がされている。そして、先頭アドレスが“20”であり末尾アドレスが“23”である記憶領域、先頭アドレスが“36”であり末尾アドレスが“39”である記憶領域の順に、ホスト装置300からストレージ制御装置100へアクセス要求がされている。すなわち、時刻“0”〜時刻“t”までの間に、ホスト装置300からストレージ制御装置100へのシーケンシャルなアクセス要求の傾向はみられない。
しかし、ホスト装置300からのアクセス要求が集中する一定の大きさの記憶領域が、時間の経過に伴いシーケンシャルに移動する傾向がみられる場合がある。例えば、グラフ32では、一定時間内におけるホスト装置300からのアクセス要求が、記憶領域の大きさが“30”である記憶領域内に集中し、その記憶領域が時間の経過に伴いシーケンシャルに移動する傾向がみられる。以下、上記のようなアクセスの傾向にあるアクセスパターンを“巨視的にみるとシーケンシャルなアクセスパターン”と記載する場合がある。
この場合、ストレージ制御装置100は、時刻“t”の経過後、先頭アドレスが“20”であり、末尾アドレスが“50”である記憶領域に対して、ホスト装置300からアクセス要求がある程度集中する可能性が高いと判断できる。そのため、ストレージ制御装置100は、時刻“t”の時点で、先頭アドレスが“20”であり末尾アドレスが“50”である記憶領域を先読みすることで、先読みしたデータに対してホスト装置300がアクセスを要求する確率を増加させることができる。
このように、巨視的にみるとシーケンシャルなアクセスパターンの発生を判断できれば、そのアクセスパターンに基づく先読みをストレージ制御装置100が実行することで、ホスト装置300からのアクセス要求に対するストレージ装置2の応答性能が向上する。しかしながら、巨視的にみるとシーケンシャルなアクセスパターンは、図4に示した通常のシーケンシャルなアクセスパターンのように、実際にアクセスが要求された記憶領域の履歴から容易に判断することができない。
図6以降では、巨視的にみるとシーケンシャルなアクセスパターンの発生を判断し、そのアクセスパターンに対応した先読みを実行するための、ストレージ制御装置100の機能について説明する。
図6は、ストレージ制御装置の機能構成例を示すブロック図である。図6において、図2と同じ内容について説明を省略する場合がある。
ストレージ制御装置100は、アクセス回数情報記憶部110、先読み管理情報記憶部120、アクセス制御部130、アクセス回数取得部140、高負荷領域判定部150、先読み判定部160および先読み実行部170を有する。また、SSD201は、先読み領域201aを有する。
アクセス回数情報記憶部110および先読み管理情報記憶部120は、RAM102またはHDD103に確保した記憶領域として実現できる。アクセス制御部130、アクセス回数取得部140、高負荷領域判定部150、先読み判定部160および先読み実行部170の処理は、例えば、プロセッサ101が所定のプログラムを実行することで実現される。
なお、アクセス制御部130は、第1の実施の形態の読み出し制御部11の一例である。また、高負荷領域判定部150は、第1の実施の形態の抽出部12の一例である。また、先読み判定部160および先読み実行部170は、第1の実施の形態の予測部13の一例である。
アクセス回数情報記憶部110は、一定時間内における単位セグメント毎のアクセス回数を一時的に格納するアクセス回数情報テーブルを記憶する。ここで、“単位セグメント”は、ディスクアレイ200内のHDDにおける記憶領域を、一定の大きさに分割したときの記憶領域を意味する。
先読み管理情報記憶部120は、高負荷領域に関する情報を格納する高負荷領域情報テーブルを記憶する。ここで、“高負荷領域”は、単位時間当たりのホスト装置300からのアクセス回数が閾値以上であり、そのアクセス回数がほぼ均一な記憶領域を意味する。また、先読み管理情報記憶部120は、先読みされた記憶領域に関する情報を一時的に格納する先読み管理テーブルを記憶する。
アクセス制御部130は、ホスト装置300からのアクセス要求に応じて、ディスクアレイ200内のいずれかのHDD内のデータにアクセスする。この際、アクセス制御部130は、先読み管理テーブルを用いて、SSD201の一部の記憶領域を先読み領域201aとして使用しながら、ディスクアレイ200内のHDDに対するアクセス制御を行う。
すなわち、アクセス制御部130は、ホスト装置300から読み出し要求を受信したとき、先読み管理テーブルを参照して、読み出しが要求されたデータが先読み領域201aに記憶されているかを判定する。そして、アクセス制御部130は、読み出しが要求されたデータが先読み領域201aに記憶されている場合には、当該データを先読み領域201aから読み出してホスト装置300に送信する。一方、アクセス制御部130は、読み出しが要求されたデータが先読み領域201aに記憶されていない場合には、当該データをHDDから読み出してホスト装置300に送信する。
また、アクセス制御部130は、ホスト装置300から書き込み要求を受信したとき、先読み管理テーブルを参照して、書き込み先の記憶領域の内容が先読み領域201aに記憶されているかを判定する。そして、アクセス制御部130は、書き込み先の記憶領域の内容が先読み領域201aに記憶されている場合には、当該データを先読み領域201aにおける対応する記憶領域へ書き込み、書き込み要求に対する応答をホスト装置300に送信する。一方、アクセス制御部130は、書き込み先の記憶領域の内容が先読み領域201aに記憶されていない場合には、当該データを先読み領域201aではなくHDDへ書き込み、書き込み要求に対する応答をホスト装置300に送信する。
また、アクセス制御部130は、先読み管理テーブルを用いて、先読み領域201aを管理する。第2の実施の形態では、アクセス制御部130は、先読み管理テーブルを参照して一定時間使用されていない先読み領域201a内の記憶領域を特定する。そして、特定した記憶領域のデータを先読み領域201aから削除する。その際、先読み領域201aの特定された記憶領域の中に、ホスト装置300からの書き込み要求に応じて更新されたデータが存在する場合、当該データをディスクアレイ200内のHDDの対応する記憶領域へ書き込む。これにより、HDD上の更新前のデータと、先読み領域201a上の更新後のデータとの整合性が保たれる。
なお、先読み領域201に記憶されたデータのうち、ホスト装置300からの書き込み要求に応じて更新されたデータは、上記以外のタイミングでHDDの対応する領域へ書き込まれてもよい。
アクセス回数取得部140は、一定時間間隔毎に、その時間内にホスト装置300からアクセスが要求された回数を単位セグメント毎に監視し、監視したアクセス回数に関する情報をアクセス回数情報テーブルに一時的に格納する。
高負荷領域判定部150は、アクセス回数情報テーブルに登録されたセグメント毎のアクセス回数に基づいて高負荷領域を一定時間間隔毎に特定し、特定した高負荷領域に関する情報を高負荷領域情報テーブルへ登録する。
先読み判定部160は、登録された高負荷領域について時間経過に伴う位置の推移を一定時間間隔毎に監視する。具体的には、先読み判定部160は、登録された高負荷領域のうち、一定時間内のアクセス回数がほぼ同等で、記憶領域の大きさが一致する高負荷領域の先頭アドレスの位置関係を判定することで、高負荷領域について時間経過に伴う位置の推移を監視する。先読み判定部160は、監視した高負荷領域についての時間経過に伴う位置の推移に基づいて、巨視的にみるとシーケンシャルなアクセスパターンが発生したか判定する。
先読み実行部170は、一定時間内のアクセス回数がほぼ同等で、記憶領域の大きさが一致する高負荷領域の位置が、時間経過に伴って移動した場合に、この高負荷領域の位置の推移が巨視的にみるとシーケンシャルなアクセスパターンに該当すると判定する。この場合、先読み実行部170は、監視された高負荷領域についての時間経過に伴う位置の推移に基づいて、先読みに関する情報を算出する。先読みに関する情報には、先読みを開始する開始アドレスと、先読みする全記憶領域の大きさ(先読み総サイズ)と、先読みする速度(先読み速度)とが含まれる。
そして、先読み実行部170は、算出した先読みに関する情報に基づいて、一定時間間隔毎にディスクアレイ200内のHDDから先読み領域201aへ先読みする。このとき、先読み実行部170は、先読みされた記憶領域に関する情報を先読み管理テーブルへ登録する。
先読み領域201aは、先読み実行部170がディスクアレイ200内のHDDのいずれかの記憶領域から先読みした内容を一時的に格納する。
次に、図7〜9を用いて、ストレージ装置2が用いるテーブルについて説明する。
図7は、アクセス回数情報テーブルの例を示す図である。アクセス回数情報テーブル111は、一定時間内における単位セグメント毎のアクセス回数に関する情報を一時的に格納する。アクセス回数情報テーブル111は、アクセス回数情報記憶部110に記憶されている。アクセス回数情報テーブル111の内容は、一定時間間隔毎に更新される。アクセス回数情報テーブル111は、先頭アドレスおよびアクセス回数の項目を有する。
先頭アドレスの項目には、ディスクアレイ200内のHDD内の各単位セグメントの先頭アドレスを示す情報が設定される。なお、図7の例では、単位セグメントの大きさは"256MB"である。
アクセス回数の項目には、一定時間内における単位セグメントへのアクセス回数を示す情報が設定される。なお、以下の説明では、例として、アクセス回数を検出する単位時間を"1分"とする。この場合、アクセス回数情報テーブル111は1分毎に更新される。
図8は、高負荷領域情報テーブルの例を示す図である。高負荷領域情報テーブル121は、高負荷領域に関する情報を格納する。高負荷領域情報テーブル121は、先読み管理情報記憶部120に記憶されている。高負荷領域情報テーブル121は、検出時刻、先頭アドレス、領域サイズ、平均アクセス回数および継続時間の項目を有する。
検出時刻の項目には、高負荷領域を検出した時刻を示す情報が設定される。検出時刻の項目に設定される時刻は、高負荷領域が検出された時間帯を識別するものであり、この時間帯は、高負荷領域の検出の基になるアクセス回数が検出された時間帯と一致する。
先頭アドレスの項目には、高負荷領域の先頭アドレスを示す情報が設定される。領域サイズの項目には、高負荷領域の大きさを示す情報が設定される。平均アクセス回数の項目には、高負荷領域に含まれる単位セグメント毎のアクセス回数の平均値を示す情報が設定される。
先読み判定部160は、異なる時間帯に検出された高負荷領域の中から、アクセス回数がほぼ同等で記憶領域の大きさが一致する高負荷領域を、対応する高負荷領域と見なして、位置の監視対象とする。対応する高負荷領域の監視は、その位置(具体的には、高負荷領域の先頭アドレス)が移動するまで継続される。継続時間の項目には、高負荷領域の位置の監視が継続されている時間を示す情報が設定される。また、継続時間の初期値としては、高負荷領域を検出する処理を実行するときの時間間隔が設定される。例えば、高負荷領域が1分毎に検出される場合、継続時間の初期値は図8のように"1"となる。
図8の高負荷領域情報テーブル121を例にすると、検出時刻“t1”で検出された、領域サイズが“768MB”で平均アクセス回数が“4562”の高負荷領域と、次の検出時刻“t+1”で検出された、領域サイズが“768MB”で平均アクセス回数が“4522”の高負荷領域とが、対応する高負荷領域として特定されて、位置の監視対象となる。領域サイズが“768MB”の高負荷領域が検出時刻“t1”で初めて検出されたものとすると、上記各高負荷領域のうち、前者の高負荷領域に対応する継続時間は“1”となり、後者の高負荷領域に対応する継続時間は“2”となる。
図9は、先読み管理テーブルの例を示す図である。先読み管理テーブル122は、先読みされた記憶領域に関する情報を一時的に格納する。先読み管理テーブル122は、先読み管理情報記憶部120に記憶されている。先読み管理テーブル122は、ホスト装置300からのアクセス要求に応じて、データのアクセスを行う際に用いられる。先読み管理テーブル122は、読み出し元アドレス、書き込み先アドレス、領域サイズおよび先読み時刻の項目を有する。
読み出し元アドレスの項目には、ディスクアレイ200内のHDDにおける、先読みされた記憶領域の先頭アドレスを示す情報が設定される。書き込み先アドレスの項目には、先読み領域201a内における、先読みされた内容の書き込み先の記憶領域の先頭アドレスを示す情報が設定される。領域サイズの項目には、先読みされた記憶領域の大きさを示す情報が設定される。先読み時刻の項目には、先読みが実行された時刻を示す情報が設定される。
なお、先読み管理テーブル122は、先読み時刻の項目の代わりに、または先読み時刻の項目と共に、読み出し元アドレスへのアクセス回数を示す情報を設定するための項目を有してもよい。
次に、図10〜11を用いて、高負荷領域判定部150が高負荷領域を検出する例について説明する。高負荷領域判定部150は、図10〜11で説明する方法により、アクセス回数が閾値以上で、領域内でほぼ均等にアクセスが行われたと見なされる記憶領域を、高負荷領域として特定する。
図10は、高負荷領域を検出する例を示す図である。ヒストグラム112は、ディスクアレイ200内のHDDにおける単位時間毎および単位セグメント毎の読み出し回数を、ヒストグラムとして表した図である。ヒストグラム112の縦軸は、単位セグメントのアクセス回数を示し、ヒストグラム112の横軸は、ディスクアレイ200内のHDDにおける単位セグメントを示す。
図10上段のヒストグラム112に示すように、ある時間帯において、ディスクアレイ200内のHDDの単位セグメントR1のアクセス回数は“1750”であり、単位セグメントR2のアクセス回数は“1800”であり、単位セグメントR3のアクセス回数は“500”であり、単位セグメントR4のアクセス回数は“600”であり、単位セグメントR5のアクセス回数は“450”であり、単位セグメントR6のアクセス回数は“2750”であったとする。
この場合、まず、高負荷領域判定部150は、アクセス回数が閾値以上である単位セグメントを抽出する。なお、閾値としては"0"より大きい値が用いられる。図10において閾値を"1500"とすると、図10下段のヒストグラム112に示すように、単位セグメントR1,R2,R6が抽出される。
図11は、高負荷領域を検出する例を示す図(続き)である。
次に、高負荷領域判定部150は、図10で説明した方法で抽出した、アクセス回数が閾値以上である単位セグメントのうち、アクセス回数がほぼ同等であり、かつ、隣接する単位セグメントを結合する。なお、図11の例では2つの単位セグメントが結合されるが、3つ以上の隣接する単位セグメントが結合される場合もある。
図11上段のヒストグラム112に示すように、抽出した単位セグメントR1,R2,R6のうち、隣接する単位セグメントは、単位セグメントR1,R2である。また、アクセス回数がほぼ同等であることを、例えば、処理対象の単位セグメントのアクセス回数のうち、最大値と最小値との差が、最大値(または最小値)の所定割合(例えば、10%)以下となることによって判定する。単位セグメントR1,R2はこの条件に合致するので、高負荷領域判定部150は、図11下段のヒストグラム112に示すように、単位セグメントR1,R2,R6のうち、単位セグメントR1,R2を結合する。単位セグメントの結合の際、結合後のセグメントのアクセス回数は、結合前の各単位セグメントのアクセス回数の平均値になるようにする。
そして、高負荷領域判定部150は、図11下段のヒストグラム112に示すような2つのセグメントを高負荷領域と特定して、特定した高負荷領域に関する情報を高負荷領域情報テーブル121へ登録する。
図10〜11で説明したように、高負荷領域判定部150は、ディスクアレイ200内のHDDにおける各単位セグメントから、アクセス回数が閾値以上であり、ほぼ均等にアクセスが行われた高負荷領域を検出する。その後、取得された高負荷領域についての時間経過に伴う位置の推移を先読み判定部160が監視することで、巨視的にみるとシーケンシャルなアクセスパターンが発生したか判定できる。
ここで、巨視的にみるとシーケンシャルなアクセスパターンは、ホスト装置300における同一のアプリケーションの実行により発生する可能性が高い。また、同一のアプリケーションによりアクセスが要求された記憶領域は、その領域内でほぼ均等にアクセスが行われる可能性が高い。そのため、領域内でほぼ均等にアクセスが行われた記憶領域についての時間経過に伴う位置の推移を監視することで、巨視的にみるとシーケンシャルなアクセスパターンの発生を精度よく判定できる。
一方、領域内でのアクセス箇所のばらつき度合いが大きい記憶領域は、異なるアプリケーションによりアクセスが要求されている可能性が高い。例えば、ある記憶領域の一部に対して、あるアプリケーションがシーケンシャルなアクセス要求をし、同時に他のアプリケーションが一時的に大量のアクセス要求を行った場合、その記憶領域においてアクセス箇所のばらつきが大きくなり、均等にアクセスが行われたとは言えなくなる。このような記憶領域については、アクセス要求が、先読み精度の向上に寄与するようなある特定の傾向を有するとは言えない。
図11で説明したように、高負荷領域判定部150は、単位セグメントあたりのアクセス回数の差がほぼ同等で隣接した単位セグメント同士を結合し、結合した記憶領域を高負荷領域として特定する。これにより、先読み判定部160の監視対象である記憶領域として、均等なアクセスが行われた記憶領域を検出することができる。よって、巨視的にみるとシーケンシャルなアクセスパターンの発生を精度よく判定できる。
また、図10で説明したように、高負荷領域判定部150は、アクセス回数が閾値以上である単位セグメントを、高負荷領域の対象とする。これにより、ホスト装置300からのアクセス要求がある程度集中した記憶領域を抽出でき、その結果、巨視的にみるとシーケンシャルなアクセスパターンの発生を精度よく判定できる。
また、アクセス回数が閾値以上である記憶領域に高負荷領域を限定することで、高負荷領域の位置の推移を監視する処理によるプロセッサ101の負荷を低減でき、高負荷領域を管理するための、RAM102やHDD103等の記憶装置内の記憶領域を節約できる。
次に、図12を用いて、先読み判定部160が先読みの有無を判定する例について説明する。先読み判定部160は、図12で説明する方法により高負荷領域判定部150が検出した高負荷領域についての時間経過に伴う位置の推移を監視し、巨視的にみるとシーケンシャルなアクセスパターンに該当するかを判定することにより、先読みの有無を判定する。
図12は、先読みの有無を判定する例を示す図である。ヒストグラム113,114は、検出された高負荷領域毎の平均アクセス回数を示す。ヒストグラム113,114の縦軸は、高負荷領域に含まれる単位セグメント毎の平均アクセス回数を示し、ヒストグラム113,114の横軸は、検出された高負荷領域の範囲を示す。
ヒストグラム113は、平均アクセス回数が“1750"である高負荷領域R11と、平均アクセス回数が"2750"である高負荷領域R21と、平均アクセス回数が"2000"である高負荷領域R31とが検出されたことを示す。
ヒストグラム114は、平均アクセス回数が“1800"である高負荷領域R12と、平均アクセス回数が"2800"である高負荷領域R22と、平均アクセス回数が"1950"である高負荷領域R32とが検出されたことを示す。
ここで、時刻"t"において、ヒストグラム113に示すような高負荷領域が検出され、次に、直近の時刻"t+1"において、ヒストグラム114に示すような高負荷領域が検出されたとする。
この場合、まず、先読み判定部160は、直近に検出された高負荷領域と、同じ領域の大きさであり、かつ、平均アクセス回数がほぼ同等の高負荷領域を、対応する高負荷領域として、前回に検出された高負荷領域から抽出する。平均アクセス回数がほぼ同等であることは、例えば、平均アクセス回数の差が、一方の平均アクセス回数(例えば、前の時刻での平均アクセス回数)の所定割合(例えば、10%)以下となることで判定される。
図12に示すように、高負荷領域R11,12は、平均アクセス回数がほぼ同等であり、大きさが同じである。そのため、直近である時刻"t+1"に検出された高負荷領域R12に対応する高負荷領域として、前回(時刻"t")に検出された高負荷領域から高負荷領域R11が抽出される。
また、図12に示すように、高負荷領域R21,R22は、平均アクセス回数がほぼ同等であり、大きさが同じである。そのため、直近である時刻"t+1"に検出された高負荷領域R22に対応する高負荷領域として、前回(時刻"t")に検出された高負荷領域から高負荷領域R21が抽出される。
さらに、図12に示すように、高負荷領域R31,R32は、平均アクセス回数がほぼ同等であり、大きさが同じである。そのため、直近である時刻"t+1"に検出された高負荷領域R32に対応する高負荷領域として、前回(時刻"t")に検出された高負荷領域から高負荷領域R31が抽出される。
次に、先読み判定部160は、抽出した高負荷領域と、直近に検出された対応する高負荷領域との位置関係に基づいて、高負荷領域の移動の有無を次のように判定する。
高負荷領域R11と高負荷領域R12とは、重複している。この場合、先読み判定部160は、時刻"t"から時刻"t+1"の間に、高負荷領域R11から高負荷領域R12へ移動したと判定する。このとき、先読み判定部160は、高負荷領域R11,R12におけるアクセスについて、巨視的にみるとシーケンシャルなアクセスパターンに該当すると判定する。また、この場合、先読み判定部160は、高負荷領域R11ついての位置の推移の監視を終了し、高負荷領域R12についての位置の推移の監視を開始する。
なお、図示していないが、抽出した高負荷領域と、直近に検出された高負荷領域とが接する場合においても、先読み判定部160は、巨視的にみるとシーケンシャルなアクセスパターンに該当すると判定する。
また、高負荷領域R21は、高負荷領域R22と記憶領域が一致している。この場合、先読み判定部160は、時刻"t"から時刻"t+1"の間に、高負荷領域R22が高負荷領域R21から移動していないと判定する。このとき、先読み判定部160は、高負荷領域R22について、今後、巨視的にみるとシーケンシャルなアクセスパターンに該当する可能性があると判定し、高負荷領域R22についての位置の推移の監視を継続する。
また、高負荷領域R31は、高負荷領域R32と重複しておらず、接してもいない。この場合、先読み判定部160は、高負荷領域R31についての位置の推移の監視を終了し、高負荷領域R32についての位置の推移の監視を開始する。
このように、先読み判定部160は、領域の大きさが同じであり、平均アクセス回数がほぼ同等である高負荷領域についての時間経過に伴う位置の推移に基づいて、巨視的にみるとシーケンシャルなアクセスパターンの発生の有無を判定することができる。
次に、図13を用いて、先読み実行部170が先読みに関する情報を算出する例について説明する。先読み実行部170は、先読み判定部160が監視した高負荷領域についての時間経過に伴う位置の推移に基づいて、先読みするディスクアレイ200内のHDDの記憶領域を取得すると共に、先読みする速度を算出する。また、図13において、高負荷領域が検出される一定の時間間隔は"1"であるものとし、先読みの時間間隔も同様であるものとする。
図13は、先読みの実行方法の例を示す図である。図13上段は、高負荷領域が検出される時刻と、高負荷領域若しくは先読みする記憶領域との対応関係を示す図である。
高負荷領域161aは、時刻"t"において検出された高負荷領域である。高負荷領域161aの先頭アドレスは"0"であり、高負荷領域161aの大きさは"512MB"である。高負荷領域161bは、時刻"t+1"において検出された高負荷領域である。高負荷領域161aと同様に、高負荷領域161bの先頭アドレスは"0"であり、高負荷領域161bの大きさは"512MB"である。高負荷領域161cは、時刻"t+2"において検出された高負荷領域である。高負荷領域161cの先頭アドレスは"512"であり、高負荷領域161cの大きさは"512MB"である。
高負荷領域161a,161b,161cそれぞれの間の平均アクセス回数は、ほぼ同等と判定されたものとする。また、図13上段に示すように、高負荷領域161bと高負荷領域161cとは、接している。そのため、高負荷領域161a,161b,161cに対するアクセスについて、先読み判定部160は、巨視的にみるとシーケンシャルなアクセスパターンに該当すると判定する。
この場合、先読み実行部170は、時刻“t+3"に、先頭アドレス“512”であり、大きさが"512MB"である記憶領域161dに対して、ホスト装置300からのアクセス要求がある程度集中すると予測する。また、先読み実行部170は、時刻“t+4"に、先頭アドレス“1024”であり、大きさが"512MB"である記憶領域161eに対して、ホスト装置300からのアクセス要求がある程度集中すると予測する。
このケースでは、先読み実行部170は、高負荷領域の次の移動先として予測される記憶領域161eの先読みを行う。
ここで、記憶領域161eは、時刻“t+3”の時間帯においてはアクセスが集中する可能性が低い。このため、記憶領域161eの内容については、即座に先読み領域201aに格納される必要はなく、時刻“t+4”の時間帯の開始タイミングまでの間に先読み領域201aへ格納されればよい。そこで、先読み実行部170は、記憶領域161eの内容を、対応する高負荷領域の移動速度に応じた転送速度で、HDDから先読み領域201aへ転送させる。
具体的には、先読み実行部170は、先読み時のデータ転送速度を、“(先読み対象領域のサイズ)/{(高負荷領域の移動に要した時間)−(高負荷領域を検出する単位時間)}”という式によって算出する。ここで、“高負荷領域の移動に要した時間”は、高負荷領域の移動が検知された時点で、その移動直前の高負荷領域に対応づけて高負荷領域情報テーブル121に登録されている継続時間の値に等しい。また、“高負荷領域を検出する単位時間”とは、アクセス回数を検出する際の単位時間と同じであり、ここでは“1分”とする。
また、上記の式の分母は、現在の時刻から、高負荷領域の位置が次に移動することが予測される時間帯の開始時刻までの時間を示す。すなわち、上記の式は、高負荷領域の位置が次に移動することが予測される時間帯が開始されるまでの期間内に、先読み対象領域の内容全体の先読みを完了するためのデータ転送速度を算出するものである。
ただし、上記の式の分母においては、“高負荷領域の移動に要した時間”と“高負荷領域を検出する単位時間”とが同じ値になる場合がある。このケースでは、先読み対象領域の内容をできるだけ短時間で先読み領域201aへ転送することが望ましい。このため、先読み実行部170は、例えば、転送速度の上限値でデータ転送を行う。
図13の例では、先読み対象領域のサイズは、記憶領域161eのサイズである“512MB”であり、高負荷領域の移動に要した時間は、“(t+2)−t=2[分]”となる。したがって、先読み時のデータ転送速度は、“512/(120−60)=8.5[MB/秒]”と算出される。
先読み実行部170は、時刻“t+3”の時間帯の開始時刻を起点として、算出された転送速度で先読み対象領域の内容を先読み領域201aへ転送(コピー)させる。例えば、先読み実行部170は、先読み対象領域を同一サイズの複数の記憶領域に分割する。そして、分割した記憶領域それぞれの内容を、高負荷領域の位置が次に移動することが予測される時間帯の開始時刻までの期間、すなわち、上記の式の分母が示す長さの時間内に、同じ時間間隔で分散させて転送させる。これにより、先読み対象領域の内容が、上記の式によって算出された転送速度で先読み領域201aへ転送されるようになる。
図13の下側に示す例では、先読み対象領域が4つの分割領域162a〜162dに分割されている。そして、先読み実行部170は、時刻“t+3”の時間帯の開始時を起点とした1分の期間に、分割領域162a〜162dそれぞれの内容の読み出しが等間隔で行われるように読み出し要求コマンドを発行する。
ストレージ制御装置100では、先読みが実行される期間にも、ホスト装置300からの要求に応じたHDDへのアクセスも実行されている。上記のように高負荷領域の移動速度に応じた転送速度で先読みを行うことで、HDDに対するアクセス負荷が必要以上に高くなる可能性を低減できる。その結果、先読みによるアクセス処理が、ホスト装置300からの要求に応じたHDDへのアクセス処理に与える影響を小さくすることができ、ホスト装置300からの要求に対する応答性能の低下を抑制できる。
なお、先読み時のデータ転送速度を算出するための上記の式において、“高負荷領域の移動に要した時間”と“高負荷領域を検出する単位時間”とが同じ値になる場合には、先読み実行部170は、例えば、先読み対象領域のデータを、読み出し要求コマンドを1回だけ発行することによって一度に転送させる。
また、先読み実行部170は、記憶領域161dに記憶されたデータについても先読みを行ってもよい。ただし、記憶領域161dに記憶されたデータを先読みする意義があるケースは、対応する高負荷領域が最初に移動したことが検知されたケースのみである。なぜなら、対応する高負荷領域が2回目に移動したことが検知された場合、移動前の高負荷領域のデータは、1回目に移動したことが検知された時点ですでに先読みされているからである。
図14は、先読みの実行方法の別の例を示す図である。
図14において、高負荷領域163aは、時刻"t"において検出された高負荷領域である。高負荷領域163aの先頭アドレスは"0"であり、高負荷領域163aの大きさは"512MB"である。高負荷領域163bは、時刻"t+1"において検出された高負荷領域である。高負荷領域163aと同様に、高負荷領域163bの先頭アドレスは"0"であり、高負荷領域163bの大きさは"512MB"である。高負荷領域163cは、時刻"t+2"において検出された高負荷領域である。高負荷領域163cの先頭アドレスは"256"であり、高負荷領域163cの大きさは"512MB"である。
高負荷領域163a,163b,163cそれぞれの間の平均アクセス回数は、ほぼ同等と判定されるものとする。また、高負荷領域163cの一部は、高負荷領域163bと重複している。そのため、高負荷領域163a,163b,163cに対するアクセスについて、先読み判定部160は、巨視的にみるとシーケンシャルなアクセスパターンに該当すると判定する。
この場合、先読み実行部170は、時刻“t+3"に、先頭アドレス“256”であり、大きさが"512MB"である記憶領域163dに対して、ホスト装置300からのアクセス要求がある程度集中すると予測する。また、先読み実行部170は、時刻“t+4"に、先頭アドレス“512”であり、大きさが"512MB"である記憶領域163eに対して、ホスト装置300からのアクセス要求がある程度集中すると予測する。
このケースでも、先読み実行部170は、高負荷領域の次の移動先として予測される記憶領域163eの先読みを行う。また、記憶領域163eの先読み時におけるデータ転送速度は、“512/(120−60)=8.5[MB/秒]”と算出される。先読み実行部170は、例えば、記憶領域163eを複数の分割領域に分割する。そして、先読み実行部170は、時刻“t+4”に対応する時間帯の開始時刻までの1分の期間に、分割領域それぞれの内容の読み出しが等間隔で行われるように読み出し要求コマンドを発行する。
なお、先読み実行部170は、高負荷領域の次の移動先として予測される記憶領域163eのうち、それ以前に検出された高負荷領域163a〜163cと重複していない記憶領域163e2の内容のみを先読みしてもよい。
ここで、記憶領域163eのうち、それ以前に検出された高負荷領域163a〜163cと重複している記憶領域163e1に記憶されたデータを先読みする意義があるケースは、対応する高負荷領域が最初に移動したことが検知されたケースのみである。なぜなら、対応する高負荷領域が2回目に移動したことが検知された場合、移動前の高負荷領域のうち、それより前に検出された高負荷領域と重複している記憶領域の内容は、1回目に移動したことが検知された時点ですでに先読みされているからである。
ここで、高負荷領域の次の移動先として予測される記憶領域のうち、それ以前に検出された高負荷領域と重複していない記憶領域の内容のみを先読みする処理について、図14の例を用いて具体的に説明する。
時刻“t+2”では、上記のように、高負荷領域の次の移動先として予測される記憶領域として、記憶領域163eが特定される。この時点では、それより前に検出された高負荷領域163a,163bの内容は先読み領域201aに格納されていない。このため、先読み実行部170は、記憶領域163e全体の内容を読み出して、先読み領域201aに書き込む。
また、時刻“t+4”において記憶領域163eが高負荷領域として実際に検出された場合には、高負荷領域の次の移動先として、先頭アドレスが“768”で大きさが“512MB”の記憶領域(図示せず)が予測される。しかし、先頭アドレスが“768”で大きさが“512MB”の記憶領域のうち、記憶領域163eと重複している、前半の256MBの記憶領域の内容は、時刻“t+2”に対応する時間帯の終了時点ですでに先読み領域201aに格納されている。このため、時刻“t+4”に対応する時間帯の終了時には、先頭アドレスが“768”で大きさが“512MB”の記憶領域のうち、記憶領域163eと重複していない、後半の256MBの記憶領域の内容だけが、先読み領域201aへ書き込まれればよい。
このように、先読み実行部170は、高負荷領域の次の移動先として予測される記憶領域のうち、それ以前に検出された高負荷領域と重複していない記憶領域163e2の内容のみを先読みしてもよい。これにより、HDD上の同じ記憶領域の内容が重複して先読み領域201aへ転送されることがなくなり、HDDに対するアクセス性能が低下することを抑制できる。
また、図14の例において、記憶領域163e1,163e2の両方の内容を先読みする場合には、記憶領域163e1,163e2それぞれのデータ転送速度が個別に算出されてもよい。図14でわかるように、記憶領域163e1は、時刻“t+4”より前の時刻“t+3”に対応する時間帯でも、ホスト装置300からのアクセス要求が集中する可能性が高い。このため、記憶領域163e1に記憶された内容については、可能な限り高速で先読み領域201aへ転送されることが望ましい。一方、記憶領域163e2については、時刻“t+3”に対応する時間帯にはホスト装置300からのアクセス要求が集中する可能性が低い。このため、記憶領域163e2については、領域内のすべての内容の転送(コピー)が、時刻“t+4”に対応する時間帯の開始時刻までの1分以内に完了できるように、転送速度が算出されればよい。
したがって、先読み実行部170は、記憶領域163e1については、転送速度の上限値でデータ転送を行い、記憶領域163e2については、前述した式を用いて算出した転送速度でデータ転送を行ってもよい。ただし、式の分子に設定される“先読み対象領域のサイズ”としては、記憶領域163e2のサイズが設定される。これにより、ホスト装置300から要求されたアクセス先の記憶領域について先読みが実行済みである確率を高めることができ、その結果、アクセス要求に対する応答性能を向上させることができる。
次に、図15〜18を用いて、ストレージ制御装置100が実行する処理について、フローチャートを用いて説明する。ここでは、ストレージ制御装置100は、ディスクアレイ200内のHDD202に対して処理を行うものとする。
図15は、先読みの有無を判定する処理の例を示すフローチャートである。図15〜16の処理は、一定時間間隔(ここでは、“1”分とする)毎に実行されるものとする。また、図14〜15の処理の開始前に、アクセス回数情報テーブル111の登録情報は、クリアされる。以下、図14〜15に示す処理をステップ番号に沿って説明する。
(S11)アクセス回数取得部140は、HDD202内の単位セグメント毎に、一定時間内におけるアクセス回数を取得し、取得した単位セグメント毎のアクセス回数に関する情報をアクセス回数情報テーブル111へ登録する。このとき、先頭アドレスの項目には、各単位セグメントの先頭アドレスが設定され、アクセス回数の項目には、対応する単位セグメントへのアクセス回数を示す情報が設定される。
単位セグメント毎のアクセス回数は、アクセス制御部130に対するホスト装置300からのアクセス要求を監視することにより取得できる。また、単位セグメント毎のアクセス回数は、ホスト装置300からのアクセス要求のログから取得することもできる。
(S12)高負荷領域判定部150は、アクセス回数が所定の閾値(ただし、“0”より大きい)以上である単位セグメントを、ステップS11で登録した各単位セグメントから抽出する。具体的には、高負荷領域判定部150は、アクセス回数が閾値以上であるレコードをアクセス回数情報テーブル111から検索する。
(S13)高負荷領域判定部150は、ステップS12で抽出された単位セグメントのうち、隣接する複数の単位セグメントを単位セグメント群として特定する。具体的には、高負荷領域判定部150は、先頭アドレスの差が単位セグメントの大きさである複数のレコードを、ステップS12で検索されたレコードから検索する。単位セグメントの大きさを示す情報は、例えば、アクセス回数情報記憶部110内の記憶領域に予め設定されており、以下同様とする。
高負荷領域判定部150は、特定された単位セグメント群から1つの単位セグメント群を選択する。
(S14)高負荷領域判定部150は、単位セグメント群に含まれる単位セグメント間のアクセス回数が、ほぼ同等であるかを判定する。高負荷領域判定部150は、例えば、選択された単位セグメント群に含まれる各単位セグメントのアクセス回数のうち、最大値と最小値との差が、最大値(または最小値)の所定割合(例えば、10%)以下となる場合に、アクセス回数がほぼ同等であると判定する。
アクセス回数がほぼ同等である場合、処理をステップS15へ進める。アクセス回数がほぼ同等と判定されなかった場合、処理をステップS16へ進める。
(S15)高負荷領域判定部150は、単位セグメント群に含まれる単位セグメントを結合し、結合した記憶領域を高負荷領域として高負荷領域情報テーブル121に登録する。このとき、検出時刻の項目には、前回登録したときの検出時刻に本処理が実行される時間間隔(ここでは、"1")を加算した時刻を示す情報が設定される。先頭アドレスの項目には、高負荷領域の先頭アドレス(上記各単位セグメントの先頭アドレスのうち最も小さいアドレス)が設定される。また、領域サイズの項目には、高負荷領域の大きさ(各単位セグメントの大きさの合計)が設定される。平均アクセス回数の項目には、上記各単位セグメントのアクセス回数の平均値が設定され、継続時間の項目には、本処理が実行される時間間隔(ここでは、"1")が暫定的に設定される。
なお、ステップS14〜S15において、単位セグメント群に3つ以上の単位セグメントが含まれているとき、一部の隣接する単位セグメントのみアクセス回数がほぼ同等となる場合がある。この場合、アクセス回数がほぼ同等となる上記一部の単位セグメントのみを結合して、高負荷領域情報テーブル121へ登録する。
(S16)高負荷領域判定部150は、ステップS13で特定された単位セグメント群を全て選択済か判定する。単位セグメント群を全て選択済である場合、処理をステップS17へ進める。未選択の単位セグメント群が存在する場合、処理をステップS13へ進める。
(S17)高負荷領域判定部150は、ステップS12で抽出された単位セグメントのうち、ステップS15で結合されていない単位セグメントを高負荷領域として、高負荷領域情報テーブル121へ登録する。高負荷領域情報テーブル121への登録内容のうち、検出時刻および継続時間の各項目への登録内容は、ステップS15と同様である。また、先頭アドレスの項目には、当該単位セグメントの先頭アドレスが設定され、平均アクセス回数の項目には、当該単位セグメントのアクセス回数がそのまま設定される。
図16は、先読みの有無を判定する処理の例を示すフローチャート(続き)である。
(S21)先読み判定部160は、現在処理対象としている最新の時間帯(すなわち、ステップS15,S17で登録した検出時刻が示す時間帯)に登録した高負荷領域を1つ選択する。具体的には、先読み判定部160は、最も大きい(直近の)検出時刻を含むレコードを高負荷領域情報テーブル121から検索し、検索したレコードの1つを選択する。
(S22)先読み判定部160は、ステップS21で選択した高負荷領域と同じ大きさの高負荷領域を、前回の時間帯に登録した高負荷領域から次のように検索する。まず、先読み判定部160は、前回の検出時刻(“直近の検出時刻−本処理が実行される時間間隔")を含むレコードを高負荷領域情報テーブル121から検索する。次に、先読み判定部160は、検索されたレコードから、ステップS21で選択したレコードの領域サイズと一致する領域サイズを含むレコードを検索する。
先読み判定部160は、前回の時間帯に登録されている高負荷領域から、同じ大きさの高負荷領域が検索されたか(すなわち、同じ大きさの高負荷領域が前回に登録されたか)判定する。同じ大きさの高負荷領域が前回に登録されている場合、処理をステップS23へ進める。同じ大きさの高負荷領域が前回に登録されていない場合、処理をステップS29へ進める。
(S23)先読み判定部160は、ステップS22で検索された高負荷領域の中から、平均アクセス回数が、ステップS21で選択した高負荷領域の平均アクセス回数とほぼ同等である高負荷領域を検索する。具体的には、先読み判定部160は、平均アクセス回数の登録値が、ステップS21で選択したレコードの平均アクセス回数とほぼ同等であるレコードを、ステップS22で検索されたレコードから検索する。
先読み判定部160は、平均アクセス回数がステップS21で選択した高負荷領域の平均アクセス回数とほぼ同等である高負荷領域が検索されたか判定する。すなわち、先読み判定部160は、ステップS22で検索された高負荷領域に、ステップS21で選択した高負荷領域とほぼ同等の平均アクセス回数の高負荷領域が存在するか判定する。
ステップS21で選択した高負荷領域とほぼ同等の平均アクセス回数の高負荷領域が存在する場合、処理をステップS24へ進める。ステップS21で選択した高負荷領域とほぼ同等の平均アクセス回数の高負荷領域が存在しない場合、処理をステップS29へ進める。
(S24)先読み判定部160は、ステップS23で検索された高負荷領域から、ステップS21で選択した高負荷領域と重複するか、または接する高負荷領域を検索する。ステップS21で選択した高負荷領域と重複するか、または接する高負荷領域が存在する場合、処理をステップS25へ進める。ステップS21で選択した高負荷領域と重複せず、かつ、接しない高負荷領域のみが存在する場合、処理をステップS29へ進める。
(S25)先読み判定部160は、ステップS24で検索された高負荷領域の先頭アドレスと、ステップS21で選択した高負荷領域の先頭アドレスとの差が“0”であるか判定する。具体的には、先読み判定部160は、ステップS21で選択したレコードの先頭アドレスと、ステップS24で検索されたレコードの先頭アドレスとが一致するか判定する。すなわち、先読み判定部160は、ステップS24で検索された高負荷領域と、ステップS21で選択した高負荷領域の位置とが一致するか判定する。
ステップS24で検索された高負荷領域と一致する場合、処理をステップS26へ移動する。ステップS24で検索された高負荷領域と一致しない場合(すなわち、ステップS24で検索された高負荷領域とその一部のみが重複するか、または、各高負荷領域が接する場合)、処理をステップS27へ移動する。
(S26)先読み判定部160は、ステップS21で選択した高負荷領域の継続時間を"ステップS24で検索された高負荷領域の継続時間+本処理が実行される時間間隔"で更新する。具体的には、先読み判定部160は、ステップS21で選択したレコードの継続時間を、"ステップS24で検索されたレコードの継続時間+本処理が実行される時間間隔"で更新する。そして、処理をステップS29へ進める。
(S27)ステップS25で"NO"と判定された場合、高負荷領域が移動したことが検知される。先読み実行部170は、まず、高負荷領域の位置の移動方向および移動量に基づいて、先読み対象領域を決定する。
先読み判定部160は、ステップS24で検索された高負荷領域の先頭アドレスと、ステップS21で選択した高負荷領域の先頭アドレスとの大小を比較することで、高負荷領域の移動方向を判定する。前者の方が小さい場合、高負荷領域の位置はアドレスが大きくなる方向に移動したと判定され、後者の方が小さい場合、高負荷領域の位置はアドレスが小さくなる方向に移動したと判定される。以下、アドレスが大きくなる方向を“後方”と記述し、アドレスが小さくなる方向を“前方”と記述する場合がある。
先読み判定部160は、ステップS21で選択した高負荷領域の位置を、ステップS24で検索された高負荷領域の先頭アドレスと、ステップS21で選択した高負荷領域の先頭アドレスとの差(すなわち、移動量)の分だけ、判定された移動方向にシフトした記憶領域を、先読み対象領域に決定する。
なお、図14で説明したように、上記手順で決定された先読み対象領域のうち、これより前に検出された高負荷領域と重複していない記憶領域のみが、最終的な先読み対象領域に決定されてもよい。
また、先読み判定部160は、高負荷領域の位置の移動量と、移動に要した時間とに基づいて、決定した先読み対象領域に記憶されたデータの転送速度を、前述した式にしたがって決定する。なお、移動に要した時間は、ステップS21で選択したレコードの継続時間の項目から取得できる。
(S28)先読み判定部160は、ステップS27で決定された、先読み対象領域を示す情報(例えば、先頭アドレスと領域のサイズ)とデータ転送速度とを先読み実行部170に通知して、先読みの実行を依頼する。これにより、先読み実行部170によって当該先読み対象領域の先読みが実行される。先読み処理の詳細は、図17において後述する。
なお、先読み判定部160は、先読み実行部170に対して、データ転送速度を通知する代わりに、先読み対象領域のサイズ(すなわち、上記の式の分子の値)と、高負荷領域の位置が次に移動することが予測される時間帯の開始時刻までの時間(すなわち、上記の式の分母の値)とを通知してもよい。
(S29)先読み判定部160は、最新の時間帯に登録した高負荷領域をステップS21で全て選択済みか判定する。高負荷領域を全て選択済みである場合、処理を終了する。未選択の高負荷領域が存在する場合、処理をステップS21へ進める。
図17は、先読み処理の例を示すフローチャートである。図17で説明する処理は、図16のステップS28で先読み依頼が通知されたことを契機に、先読み対象領域毎に実行される。この際、先読み通知依頼と共に、先読みに関する情報として、先読み対象領域を示す情報と、データ転送速度とが通知される。以下、図17に示す処理をステップ番号に沿って説明する。
(S41)先読み実行部170は、先読み対象領域を所定数の分割領域に分割する。なお、先読み対象領域の分割数や、先読み対象領域のサイズやデータ転送速度に応じて可変とされてもよい。
(S42)先読み実行部170は、各分割領域の内容が、先読み判定部160から通知されたデータ転送速度で先読み領域201aへ転送されるように、各分割領域についての読み出し時刻を算出する。各分割領域についての読み出し時刻は、等間隔に設定される。なお、先頭の分割領域についての読み出し時刻は、現在の時刻となる。
(S43)先読み実行部170は、読み出し時刻が現在時刻に一致した分割領域の内容を、HDD202から読み出して先読み領域201aへ転送するための読み出し要求コマンドを作成し、作成した読み出し要求コマンドをHDD202へ発行する。これにより、該当分割領域の内容全体がHDD202から先読み領域201aへコピーされる。
なお、先読み領域201aに空き領域が存在しない場合、先読み実行部170は、本処理(先読み処理)を終了してもよい。
(S44)先読み実行部170は、ステップS41で分割したすべての分割領域について、読み出し要求の発行が完了したかを判定する。すべての分割領域についての読み出し要求の発行が完了した場合、処理をステップS46に進める。読み出し要求を発行していない分割領域が存在する場合、処理をステップS45に進める。
(S45)先読み実行部170は、次に読み出しが要求される分割領域についての読み出し時刻になったかを判定する。このステップS45の判定処理は、現在時刻が該当読み出し時刻になるまで繰り返される。そして、現在時刻が該当読み出し時刻になった場合、処理をステップS43に進める。
(S46)ステップS44で“YES”と判定された場合、1つの先読み対象領域の内容の先読みが完了したことになる。先読み実行部170は、先読みが完了した先読み対象領域を示す情報(読み出し元アドレス、書き込み先アドレス、領域サイズおよび先読み時刻)を、先読み管理テーブル122に登録する。
図18は、アクセス制御処理の例を示すフローチャートである。図18の処理は、ホスト装置300からHDD202に対してアクセス要求が送信されたことを契機に実行される。アクセス要求には、アクセスの対象となるHDD202内の記憶領域の先頭アドレスを示す情報と、その記憶領域の大きさを示す情報とが含まれる。以下、図18に示す処理をステップ番号に沿って説明する。
(S51)アクセス制御部130は、アクセスが要求された記憶領域を示す情報と、先読み管理テーブル122とを照合することで、アクセスが要求された記憶領域が先読みされているかを判定する。アクセスが要求された記憶領域が先読みされている場合、処理をステップS52へ進める。アクセスが要求された記憶領域が先読みされていない場合、処理をステップS53へ進める。
(S52)アクセス制御部130は、先読み管理テーブル122に登録された情報に基づいて、SSD201の先読み領域201aに対してアクセスする。
具体的には、アクセス制御部130は、ホスト装置300から読み出しを要求された場合、先読み管理テーブル122に登録された情報に基づいて、読み出しが要求されたデータのSSD201における記憶領域の情報を取得する。アクセス制御部130は、取得した記憶領域の情報を読み出し元の情報として設定した読み出し要求コマンドを、SSD201へ発行する。これにより、SSD201の先読み領域201aから該当するデータが読み出され、アクセス制御部130は、読み出されたデータを受信する。
また、アクセス制御部130は、ホスト装置300から書き込みを要求された場合、先読み管理テーブル122に登録された情報に基づいて、書き込みが要求されたHDD202内の記憶領域に対応するSSD201における記憶領域の情報を取得する。アクセス制御部130は、取得した記憶領域の情報を書き込み先の情報として設定した書き込み要求コマンドをSSD201へ発行する。これにより、SSD201の先読み領域201aの該当領域へ、書き込みが要求されたデータが書き込まれ、その領域の内容が更新される。
なお、このようなデータの書き込みを行った場合、アクセス制御部130は、その後の所定のタイミングで、更新された先読み領域201a内のデータをHDD202の対応する記憶領域へ書き込む。これにより、先読み領域201a内のデータと、HDD202内のデータとが同期される。
(S53)アクセス制御部130は、HDD202のデータに対してアクセスする。具体的には、アクセス制御部130は、ホスト装置300から要求されたHDD202上の記憶領域をアクセス先として設定したアクセス要求コマンドを、HDD202へ発行する。
(S54)アクセス制御部130は、アクセス結果をホスト装置300へ送信する。具体的には、アクセス制御部130は、ホスト装置300からデータの読み出しを要求された場合、先読み領域201aまたはHDD202から読み出したデータを、ホスト装置300へ送信する。一方、アクセス制御部130は、ホスト装置300からデータの書き込みを要求された場合、書き込み完了通知をホスト装置300へ送信する。
図18で説明したように、アクセス制御部130は、ホスト装置300から読み出しが要求されたとき、読み出しが要求されたデータがSSD201上の先読み領域201aに記憶されている場合、先読み領域201aからデータを読み出す。一方、読み出しが要求されたデータが先読み領域201aに記憶されていない場合、HDD202上の記憶領域からデータを読み出す。
また、アクセス制御部130は、ホスト装置300から書き込みが要求されたとき、書き込みが要求された記憶領域が先読みされている場合、先読み領域201a内の対応する記憶領域へデータを書き込む。一方、書き込みが要求された記憶領域が先読みされていない場合、HDD202上の記憶領域からデータを読み出す。
SSD201に対するデータのアクセス速度は、HDD202より速い。そのため、先読みされている記憶領域に対してホスト装置300からアクセスが要求された場合、ストレージ制御装置100は、その要求に対して記憶領域に高速にアクセスできる。よって、先読みされている記憶領域に対してホスト装置300からアクセスが要求される確率が上がるほど、ホスト装置300からのアクセス要求に対するストレージ装置2の応答性能が向上する。
第2の実施の形態のストレージ装置2によれば、領域内でほぼ均等にアクセスが行われ、かつ、ある程度アクセス要求が集中した記憶領域を、高負荷領域として検出する。そして、検出した高負荷領域について時間経過に伴う位置の推移を監視することで、巨視的にみるとシーケンシャルなアクセスパターンが発生したかを判定できる。
また、巨視的にみるとシーケンシャルなアクセスパターンが発生したと判定した場合、高負荷領域についての位置の推移に基づいて今後アクセス要求が集中する記憶領域を予測し、予測した記憶領域から先読みを実行する。これにより、ホスト装置300からアクセスが要求される記憶領域の予測の精度が向上し、先読みした記憶領域に対してホスト装置300からアクセスが要求される確率が高くなる。よって、ホスト装置300からのアクセス要求に対するストレージ装置2の応答性能が向上する。
なお、第2の実施の形態のストレージ装置2では、先読みするデータの読み出し元としてHDD202内を用いて、先読みするデータの書き込み先としてSSD201を用いた。しかし、各用途に用いる記憶装置は、先読みするデータの読み出し元として用いる記憶装置より、先読みするデータの書き込み先として用いる記憶装置に対するアクセス速度が速ければ、上記に限定されるものではない。例えば、先読みするデータの読み出し元の記憶装置としてSSDを用いて、先読みするデータの書き込み先の記憶装置としてRAMを用いてもよい。
また、第2の実施の形態のストレージ装置2では、高負荷領域が検出される一定の時間間隔と同じ時間間隔で先読みを実行するが、高負荷領域が検出される一定の時間間隔と異なる時間間隔で先読みを実行してもよい。
また、第2の実施の形態のストレージ装置2では、先読み領域201aのうち、一定時間使用されていない記憶領域内のデータを削除するが、アクセス回数の小さい記憶領域内のデータを削除してもよい。
なお、前述のように、第1の実施の形態の情報処理は、ストレージ装置10にプログラムを実行させることで実現でき、第2の実施の形態の情報処理は、ストレージ制御装置100にプログラムを実行させることで実現できる。このようなプログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等を使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。
プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク経由でプログラムを配布することもできる。コンピュータは、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置(例えば、HDD103)に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、可搬記録媒体から読み込んだプログラムを直接実行してもよく、他のコンピュータからネットワークを介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)等の電子回路で実現することも可能である。
以上の第1および第2の実施の形態を含む実施の形態に関し、さらに以下の付記を開示する。
(付記1) 第1の記憶装置と、前記第1の記憶装置よりアクセス速度が高い第2の記憶装置と、制御装置とを有するストレージ装置において、
前記制御装置は、
前記第1の記憶装置における一定サイズ毎の単位記憶領域のうち、アクセス回数が0より大きい所定回数以上かつ類似する複数の単位記憶領域が連続する記憶領域を、監視領域として一定時間間隔で抽出する抽出部と、
前記抽出部によって抽出された前記監視領域のうち同一サイズの監視領域の前記第1の記憶装置における位置が時間経過にしたがって移動したことを検知したとき、前記同一サイズの監視領域の移動方向に基づいて、アクセスが予測される予測記憶領域を前記第1の記憶装置の記憶領域から特定し、前記予測記憶領域の内容が前記第2の記憶装置へコピーされるように制御する予測部と、
前記第1の記憶装置の記憶領域に対するアクセス要求を受けたとき、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされている場合には、前記第2の記憶装置におけるコピー先の記憶領域へのアクセスが行われるように制御し、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされていない場合には、前記第1の記憶装置におけるアクセス要求先の記憶領域へのアクセスが行われるように制御するアクセス制御部と、
を有することを特徴とするストレージ装置。
(付記2) 前記予測部は、隣接する時間帯に抽出された前記同一サイズの監視領域について、互いの監視領域の一部のみが重複するか、または監視領域が互いに接する場合に、前記同一サイズの監視領域の前記第1の記憶装置における位置が移動したと判定することを特徴とする付記1記載のストレージ装置。
(付記3) 前記予測部は、隣接する時間帯に抽出された、アクセス回数が類似する前記同一サイズの監視領域を、移動の判定対象とすることを特徴とする付記2記載のストレージ装置。
(付記4) 前記予測部は、隣接する時間帯に抽出された前記同一サイズの監視領域の前記第1の記憶装置における位置が移動したと判定すると、当該同一サイズの監視領域のうちの移動後の監視領域の位置をその移動方向側に移動量分だけシフトした記憶領域を、前記予測記憶領域として特定することを特徴とする付記2または3記載のストレージ装置。
(付記5) 前記予測部は、特定された前記予測記憶領域の内容のうち前記第2の記憶装置へコピー済みでない内容が前記第2の記憶装置へコピーされるように制御することを特徴とする付記4記載のストレージ装置。
(付記6) 前記予測部は、前記同一サイズの監視領域の前記第1の記憶装置における位置が時間経過にしたがって移動したことを検知して、前記予測記憶領域を特定したとき、前記同一サイズの監視領域の移動速度に基づいて、前記予測記憶領域の内容を前記第2の記憶装置へコピーする速度を制御することを特徴とする付記1乃至5のいずれか1つに記載のストレージ装置。
(付記7) 第1の記憶装置の記憶領域の内容の一部が、前記第1の記憶装置よりアクセス速度が高い第2の記憶装置にコピーされるように制御し、前記第1の記憶装置の記憶領域に対するアクセス要求を受けたとき、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされている場合には、前記第2の記憶装置におけるコピー先の記憶領域へのアクセスが行われるように制御し、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされていない場合には、前記第1の記憶装置におけるアクセス要求先の記憶領域へのアクセスが行われるように制御する制御装置におけるストレージ制御方法であって、
前記制御装置が、
前記第1の記憶装置における一定サイズ毎の単位記憶領域のうち、アクセス回数が0より大きい所定回数以上かつ類似する複数の単位記憶領域が連続する記憶領域を、監視領域として一定時間間隔で抽出し、
抽出された前記監視領域のうち同一サイズの監視領域の前記第1の記憶装置における位置が時間経過にしたがって移動したことを検知したとき、前記同一サイズの監視領域の移動方向に基づいて、アクセスが予測される予測記憶領域を前記第1の記憶装置の記憶領域から特定し、
前記予測記憶領域の内容が前記第2の記憶装置へコピーされるように制御する、
ことを特徴とするストレージ制御方法。
(付記8) 前記同一サイズの監視領域の移動の検知では、隣接する時間帯に抽出された前記同一サイズの監視領域について、互いの監視領域の一部のみが重複するか、または監視領域が互いに接する場合に、前記同一サイズの監視領域の前記第1の記憶装置における位置が移動したと判定することを特徴とする付記7記載のストレージ制御方法。
(付記9) 前記同一サイズの監視領域の移動の検知では、隣接する時間帯に抽出された、アクセス回数が類似する前記同一サイズの監視領域を、移動の判定対象とすることを特徴とする付記8記載のストレージ制御方法。
(付記10) 隣接する時間帯に抽出された前記同一サイズの監視領域の前記第1の記憶装置における位置が移動したと判定したとき、当該同一サイズの監視領域のうちの移動後の監視領域の位置をその移動方向側に移動量分だけシフトした記憶領域を、前記予測記憶領域として特定することを特徴とする付記8または9記載のストレージ制御方法。
(付記11) 前記第2の記憶装置への書き込みでは、特定された前記予測記憶領域の内容のうち前記第2の記憶装置へコピー済みでない内容が前記第2の記憶装置へコピーされるように制御することを特徴とする付記10記載のストレージ制御方法。
(付記12) 前記同一サイズの監視領域の前記第1の記憶装置における位置が時間経過にしたがって移動したことを検知して、前記予測記憶領域を特定したとき、前記同一サイズの監視領域の移動速度に基づいて、前記予測記憶領域の内容を前記第2の記憶装置へコピーする速度を制御することを特徴とする付記8乃至11のいずれか1つに記載のストレージ制御方法。
(付記13) 第1の記憶装置の記憶領域の内容の一部が、前記第1の記憶装置よりアクセス速度が高い第2の記憶装置にコピーされるように制御し、前記第1の記憶装置の記憶領域に対するアクセス要求を受けたとき、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされている場合には、前記第2の記憶装置におけるコピー先の記憶領域へのアクセスが行われるように制御し、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされていない場合には、前記第1の記憶装置におけるアクセス要求先の記憶領域へのアクセスが行われるように制御する処理を、コンピュータに実行させるストレージ制御プログラムにおいて、
前記コンピュータに、
前記第1の記憶装置における一定サイズ毎の単位記憶領域のうち、アクセス回数が0より大きい所定回数以上かつ類似する複数の単位記憶領域が連続する記憶領域を、監視領域として一定時間間隔で抽出し、
抽出された前記監視領域のうち同一サイズの監視領域の前記第1の記憶装置における位置が時間経過にしたがって移動したことを検知したとき、前記同一サイズの監視領域の移動方向に基づいて、アクセスが予測される予測記憶領域を前記第1の記憶装置の記憶領域から特定し、
前記予測記憶領域の内容が前記第2の記憶装置へコピーされるように制御する、
処理を実行させることを特徴とするストレージ制御プログラム。
1 ストレージ装置
10 制御装置
11 アクセス制御部
12 抽出部
13 予測部
21 第1の記憶装置
21a〜21c 記憶領域
22 第2の記憶装置
23 ホスト装置
A1〜A6 単位記憶領域

Claims (8)

  1. 第1の記憶装置と、前記第1の記憶装置よりアクセス速度が高い第2の記憶装置と、制御装置とを有するストレージ装置において、
    前記制御装置は、
    前記第1の記憶装置における一定サイズ毎の単位記憶領域のうち、アクセス回数が0より大きい所定回数以上かつ類似する複数の単位記憶領域が連続する記憶領域を、監視領域として一定時間間隔で抽出する抽出部と、
    前記抽出部によって抽出された前記監視領域のうち同一サイズの監視領域の前記第1の記憶装置における位置が時間経過にしたがって移動したことを検知したとき、前記同一サイズの監視領域の移動方向に基づいて、アクセスが予測される予測記憶領域を前記第1の記憶装置の記憶領域から特定し、前記予測記憶領域の内容が前記第2の記憶装置へコピーされるように制御する予測部と、
    前記第1の記憶装置の記憶領域に対するアクセス要求を受けたとき、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされている場合には、前記第2の記憶装置におけるコピー先の記憶領域へのアクセスが行われるように制御し、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされていない場合には、前記第1の記憶装置におけるアクセス要求先の記憶領域へのアクセスが行われるように制御するアクセス制御部と、
    を有することを特徴とするストレージ装置。
  2. 前記予測部は、隣接する時間帯に抽出された前記同一サイズの監視領域について、互いの監視領域の一部のみが重複するか、または監視領域が互いに接する場合に、前記同一サイズの監視領域の前記第1の記憶装置における位置が移動したと判定することを特徴とする請求項1記載のストレージ装置。
  3. 前記予測部は、隣接する時間帯に抽出された、アクセス回数が類似する前記同一サイズの監視領域を、移動の判定対象とすることを特徴とする請求項2記載のストレージ装置。
  4. 前記予測部は、隣接する時間帯に抽出された前記同一サイズの監視領域の前記第1の記憶装置における位置が移動したと判定すると、当該同一サイズの監視領域のうちの移動後の監視領域の位置をその移動方向側に移動量分だけシフトした記憶領域を、前記予測記憶領域として特定することを特徴とする請求項2または3記載のストレージ装置。
  5. 前記予測部は、特定された前記予測記憶領域の内容のうち前記第2の記憶装置へコピー済みでない内容が前記第2の記憶装置へコピーされるように制御することを特徴とする請求項4記載のストレージ装置。
  6. 前記予測部は、前記同一サイズの監視領域の前記第1の記憶装置における位置が時間経過にしたがって移動したことを検知して、前記予測記憶領域を特定したとき、前記同一サイズの監視領域の移動速度に基づいて、前記予測記憶領域の内容を前記第2の記憶装置へコピーする速度を制御することを特徴とする請求項1乃至5のいずれか1項に記載のストレージ装置。
  7. 第1の記憶装置の記憶領域の内容の一部が、前記第1の記憶装置よりアクセス速度が高い第2の記憶装置にコピーされるように制御し、前記第1の記憶装置の記憶領域に対するアクセス要求を受けたとき、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされている場合には、前記第2の記憶装置におけるコピー先の記憶領域へのアクセスが行われるように制御し、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされていない場合には、前記第1の記憶装置におけるアクセス要求先の記憶領域へのアクセスが行われるように制御する制御装置におけるストレージ制御方法であって、
    前記制御装置が、
    前記第1の記憶装置における一定サイズ毎の単位記憶領域のうち、アクセス回数が0より大きい所定回数以上かつ類似する複数の単位記憶領域が連続する記憶領域を、監視領域として一定時間間隔で抽出し、
    抽出された前記監視領域のうち同一サイズの監視領域の前記第1の記憶装置における位置が時間経過にしたがって移動したことを検知したとき、前記同一サイズの監視領域の移動方向に基づいて、アクセスが予測される予測記憶領域を前記第1の記憶装置の記憶領域から特定し、
    前記予測記憶領域の内容が前記第2の記憶装置へコピーされるように制御する、
    ことを特徴とするストレージ制御方法。
  8. 第1の記憶装置の記憶領域の内容の一部が、前記第1の記憶装置よりアクセス速度が高い第2の記憶装置にコピーされるように制御し、前記第1の記憶装置の記憶領域に対するアクセス要求を受けたとき、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされている場合には、前記第2の記憶装置におけるコピー先の記憶領域へのアクセスが行われるように制御し、アクセス要求先の記憶領域の内容が前記第2の記憶装置にコピーされていない場合には、前記第1の記憶装置におけるアクセス要求先の記憶領域へのアクセスが行われるように制御する処理を、コンピュータに実行させるストレージ制御プログラムにおいて、
    前記コンピュータに、
    前記第1の記憶装置における一定サイズ毎の単位記憶領域のうち、アクセス回数が0より大きい所定回数以上かつ類似する複数の単位記憶領域が連続する記憶領域を、監視領域として一定時間間隔で抽出し、
    抽出された前記監視領域のうち同一サイズの監視領域の前記第1の記憶装置における位置が時間経過にしたがって移動したことを検知したとき、前記同一サイズの監視領域の移動方向に基づいて、アクセスが予測される予測記憶領域を前記第1の記憶装置の記憶領域から特定し、
    前記予測記憶領域の内容が前記第2の記憶装置へコピーされるように制御する、
    処理を実行させることを特徴とするストレージ制御プログラム。
JP2014086849A 2014-04-18 2014-04-18 ストレージ装置、ストレージ制御方法およびストレージ制御プログラム Pending JP2015207123A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014086849A JP2015207123A (ja) 2014-04-18 2014-04-18 ストレージ装置、ストレージ制御方法およびストレージ制御プログラム
US14/682,145 US9594519B2 (en) 2014-04-18 2015-04-09 Prefetching monitored areas in a storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014086849A JP2015207123A (ja) 2014-04-18 2014-04-18 ストレージ装置、ストレージ制御方法およびストレージ制御プログラム

Publications (1)

Publication Number Publication Date
JP2015207123A true JP2015207123A (ja) 2015-11-19

Family

ID=54322072

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014086849A Pending JP2015207123A (ja) 2014-04-18 2014-04-18 ストレージ装置、ストレージ制御方法およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US9594519B2 (ja)
JP (1) JP2015207123A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017097746A (ja) * 2015-11-27 2017-06-01 富士通株式会社 情報処理装置、ストレージ制御プログラム、及びストレージ制御方法
JP2021514502A (ja) * 2018-02-21 2021-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ・ストレージ間でのデータ移行を管理する方法、そのデータ・ストレージ・システムおよびコンピュータ・プログラム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11983138B2 (en) 2015-07-26 2024-05-14 Samsung Electronics Co., Ltd. Self-configuring SSD multi-protocol support in host-less environment
US10296255B1 (en) * 2015-12-16 2019-05-21 EMC IP Holding Company LLC Data migration techniques
US10346041B2 (en) * 2016-09-14 2019-07-09 Samsung Electronics Co., Ltd. Method for using BMC as proxy NVMeoF discovery controller to provide NVM subsystems to host
US10210123B2 (en) 2016-07-26 2019-02-19 Samsung Electronics Co., Ltd. System and method for supporting multi-path and/or multi-mode NMVe over fabrics devices
US11461258B2 (en) 2016-09-14 2022-10-04 Samsung Electronics Co., Ltd. Self-configuring baseboard management controller (BMC)
JP7234704B2 (ja) * 2019-03-11 2023-03-08 富士通株式会社 情報処理装置及び情報処理プログラム
CN111857544B (zh) * 2019-04-26 2024-05-17 富联精密电子(天津)有限公司 存储资源管理装置及管理方法
US20220269645A1 (en) * 2019-08-13 2022-08-25 Neuroblade Ltd. Memory mat as a register file
US11740831B2 (en) * 2021-11-11 2023-08-29 International Business Machines Corporation Storage optimization for event streaming for multiple consumers

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6349358B1 (en) * 1998-08-31 2002-02-19 Nec Corporation Magnetic disc control apparatus capable of detecting a near sequential I/O and storing it to a cache memory, and a system thereof
JP2002182978A (ja) * 2000-12-19 2002-06-28 Hitachi Ltd 記憶サブシステム及び情報処理システム
WO2006008961A1 (ja) * 2004-07-16 2006-01-26 Sony Corporation 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP2009237939A (ja) * 2008-03-27 2009-10-15 Fujitsu Ltd ハイブリッド記録装置
JP2014038511A (ja) * 2012-08-17 2014-02-27 Fujitsu Ltd 情報処理装置、情報処理方法、及び情報処理プログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2776191B2 (ja) 1993-03-31 1998-07-16 株式会社日立製作所 グラフ編集方法
JPH10187505A (ja) 1996-12-24 1998-07-21 Toshiba Corp 情報記憶システム及び同システムに適用するデータ配置方法
JP4151977B2 (ja) * 2005-03-16 2008-09-17 インターナショナル・ビジネス・マシーンズ・コーポレーション 先読み装置、先読み方法、および先読みプログラム
JP4558003B2 (ja) 2007-05-22 2010-10-06 株式会社東芝 データアクセス処理方法及び記憶制御装置
US8775741B1 (en) * 2009-01-13 2014-07-08 Violin Memory Inc. Using temporal access patterns for determining prefetch suitability
US8214599B2 (en) * 2008-11-04 2012-07-03 Gridiron Systems, Inc. Storage device prefetch system using directed graph clusters

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6349358B1 (en) * 1998-08-31 2002-02-19 Nec Corporation Magnetic disc control apparatus capable of detecting a near sequential I/O and storing it to a cache memory, and a system thereof
JP2002182978A (ja) * 2000-12-19 2002-06-28 Hitachi Ltd 記憶サブシステム及び情報処理システム
WO2006008961A1 (ja) * 2004-07-16 2006-01-26 Sony Corporation 情報処理システム及び情報処理方法、並びにコンピュータプログラム
JP2009237939A (ja) * 2008-03-27 2009-10-15 Fujitsu Ltd ハイブリッド記録装置
JP2014038511A (ja) * 2012-08-17 2014-02-27 Fujitsu Ltd 情報処理装置、情報処理方法、及び情報処理プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017097746A (ja) * 2015-11-27 2017-06-01 富士通株式会社 情報処理装置、ストレージ制御プログラム、及びストレージ制御方法
JP2021514502A (ja) * 2018-02-21 2021-06-10 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ・ストレージ間でのデータ移行を管理する方法、そのデータ・ストレージ・システムおよびコンピュータ・プログラム
JP7139433B2 (ja) 2018-02-21 2022-09-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ・ストレージ間でのデータ移行を管理する方法、そのデータ・ストレージ・システムおよびコンピュータ・プログラム

Also Published As

Publication number Publication date
US20150301757A1 (en) 2015-10-22
US9594519B2 (en) 2017-03-14

Similar Documents

Publication Publication Date Title
JP2015207123A (ja) ストレージ装置、ストレージ制御方法およびストレージ制御プログラム
EP2539821B1 (en) Caching based on spatial distribution of accesses to data storage devices
US8886882B2 (en) Method and apparatus of storage tier and cache management
US9128855B1 (en) Flash cache partitioning
JP5271424B2 (ja) ダイナミックストレージ階層化によるオンラインデータ配置をボリュームに提供するためのアロケートオンライトのスナップショット機構
US9684590B2 (en) Storing corresponding data units in a common storage unit
US11461033B2 (en) Attribute-driven storage for storage devices
JP2017117179A (ja) 情報処理装置、キャッシュ制御プログラムおよびキャッシュ制御方法
US20080016273A1 (en) System And Method To Reduce Disk Access Time During Predictable Loading Sequences
JP2007241927A (ja) データ記憶装置及び方法
US9104578B2 (en) Defining address ranges used to cache speculative read data
JPH06505584A (ja) キャッシュメモリ
US20170220623A1 (en) Hot-Spot Adaptive Garbage Collection
JP2003131942A (ja) ハードディスク装置のキャッシュを制御する方法および装置
JP6417951B2 (ja) ストレージ制御装置およびストレージ制御プログラム
US10628331B2 (en) Demote scan processing to demote tracks from cache
JPH11288358A (ja) デ―タ転送/管理システム及び方法
US10346051B2 (en) Storage media performance management
JP6011153B2 (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US20170220476A1 (en) Systems and Methods for Data Caching in Storage Array Systems
JP7197783B2 (ja) 情報処理システム、管理装置および管理プログラム
JP6554990B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP2015225603A (ja) ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
JP2017072981A (ja) 情報処理装置、キャッシュ制御方法およびキャッシュ制御プログラム
JP4115204B2 (ja) 情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171107

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180501