JP2007249457A - ストレージシステム及びストレージシステムの制御方法 - Google Patents

ストレージシステム及びストレージシステムの制御方法 Download PDF

Info

Publication number
JP2007249457A
JP2007249457A JP2006070224A JP2006070224A JP2007249457A JP 2007249457 A JP2007249457 A JP 2007249457A JP 2006070224 A JP2006070224 A JP 2006070224A JP 2006070224 A JP2006070224 A JP 2006070224A JP 2007249457 A JP2007249457 A JP 2007249457A
Authority
JP
Japan
Prior art keywords
prefetch
unit
data
host
storage system
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.)
Granted
Application number
JP2006070224A
Other languages
English (en)
Other versions
JP4915774B2 (ja
Inventor
Masaru Nomura
賢 野村
Hiroshi Mine
博史 峯
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006070224A priority Critical patent/JP4915774B2/ja
Priority to US11/435,251 priority patent/US20070220208A1/en
Priority to DE602006008888T priority patent/DE602006008888D1/de
Priority to EP06255792A priority patent/EP1835409B1/en
Publication of JP2007249457A publication Critical patent/JP2007249457A/ja
Priority to US12/265,094 priority patent/US7774550B2/en
Application granted granted Critical
Publication of JP4915774B2 publication Critical patent/JP4915774B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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
    • 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/6026Prefetching based on access pattern detection, e.g. stride based prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】本発明のストレージシステムは、シーケンシャルなデータ配置が期待されるデータへのシーケンシャルアクセスに対する応答性能を改善する。
【解決手段】記憶部2には、ストリーミング配信されるデータが格納されている。ホスト3は、記憶部2から読み出したデータを、各ユーザマシン4に送信する。プリフェッチ部1Cは、ホスト3により読み出されるデータを、先回りして記憶部2から読出し、キャッシュメモリ1Bに記憶させる。断片化検出部1Dは、キャッシュヒット率に応じて、データ配置の断片化の程度を検出する。断片化の度合が大きくなるほど、プリフェッチ量算出部1Eは、より少ないプリフェッチ量を算出する。プリフェッチ動作制御部1Fは、データ配置の断片化の度合が大きい場合、プリフェッチ動作を停止させ、断片化の度合が低下した場合、プリフェッチ動作を再開させる。
【選択図】図1

Description

本発明は、ストレージシステム及びストレージシステムの制御方法に関する。
近年では、例えば、映画、ドラマ、ニュース、教育番組等のような映像や音声等のコンテンツデータを、ネットワークを介して、ユーザに直接的に配信する技術が普及し始めている。ここで、コンテンツデータをユーザに供給する方法は、ダウンロード方式とストリーミング方式とに大別される。
ダウンロード方式の場合は、コンテンツデータの全体がユーザのコンピュータに記憶された後で、そのコンテンツデータの視聴が可能となる。このため、コンテンツの再生開始までに時間がかかり、使い勝手が低い。これに対し、ストリーミング方式の場合は、コンテンツデータの一部がユーザのコンピュータに受信された時点で、そのコンテンツデータを視聴することができる。
このため、現在では、ストリーミング方式によるコンテンツデータの配信(以下、ストリーミング配信)が広く普及しつつある。一方、コンテンツデータの画質等も年々向上しているため、コンテンツデータのサイズ及びビットレートも増大する傾向にある。従って、ストリーミング配信では、データサイズの大きなコンテンツデータを、より滑らかに配信することが求められる。
ところで、ストリーミング配信されるコンテンツデータは、ストレージシステムによって管理される。ストリーミング配信の高速性が求められるに従って、ストレージシステムの応答性能にも高速化が要求される。ストリーミング配信では、予め決定されたビットレートに従ってコンテンツデータを配信する必要があるため、ストレージシステムには、データの転送性能(スループット)の向上だけではなく、応答性能(レイテンシ)の向上も求められる。このような要求を解決するための従来技術も提案されている(特許文献1,特許文献2)。
特開2003−345519号公報 特開平8−137754号公報
特許文献1では、ストライピングを使用した構成のディスクアレイ装置において、シーケンシャルリードの要求に対するプリフェッチ処理を、積極的に複数のドライブで実施することにより、キャッシュヒット率の向上を図っている。
しかし、この第1の従来技術は、データが記録媒体にシーケンシャルに配置されていることを前提条件としており、データが記録媒体にシーケンシャルに配置されていない場合について考察されていない。
一般的に、ファイルシステムがデータの追加や削除を繰り返すたびに、記録媒体に記憶されているデータは、断片化していく。データの断片化が進めば進むほど、プリフェッチによるデータの先読みが無駄となり、応答性能が低下していく。データの断片化の度合が進むと、プリフェッチを行った場合の応答性能の方が、プリフェッチを行わずに直接記録媒体からデータを読み出した場合の応答性能よりも低下する。従って、第1の従来技術は、データが記録媒体に予めシーケンシャルに配置されており、かつ、そのシーケンシャルな配置が崩れないという保証がある場合にのみ成立する。即ち、第1の従来技術は、ごく限られた用途でのみ効果を発揮し、使い勝手が低い。
また、特許文献2に記載の第2の従来技術では、ホストコンピュータからのファイルアクセス要求がシーケンシャルアクセスであるか否かを判断する。そして、シーケンシャルアクセスの場合は、アクセスの連続性に基づいてプリフェッチ量を算出し、プリフェッチを行うようになっている。
しかし、第2の従来技術は、単一のシーケンシャルアクセスを前提としており、複数のシーケンシャルアクセスが同時に発生する多重シーケンシャルアクセスには対応することができない。特に例えば、ストリーミング配信では、複数のユーザに、コンテンツデータをそれぞれ配信する。ストレージシステム側から見る場合、高多重シーケンシャルアクセス(複数ストリーム)は、全体として単一のシーケンシャルアクセスにならないため、第2の従来技術では、プリフェッチを行うことができない。即ち、第2の従来技術は、ストリーム数が1つの場合でなければ、その効果を発揮しない。
本発明は、上記の問題点に鑑みてなされたもので、その目的は、シーケンシャルな読出しが期待されるデータへのシーケンシャルアクセスの応答性能を改善できるようにしたストレージシステム及びストレージシステムの制御方法を提供することにある。本発明の他の目的は、データ配置の連続性が失われた場合でも、シーケンシャルアクセスの応答性能が所定値以下まで低下するのを防止でき、使い勝手を改善できるようにしたストレージシステム及びストレージシステムの制御方法を提供することにある。本発明の更なる目的は、後述する実施の形態の記載から明らかになるであろう。
上記課題を解決すべく、本発明に従うストレージシステムは、シーケンシャルな読出しが期待されるデータを記憶する書換可能な記憶デバイスを少なくとも1つ以上備えた記憶装置と、記憶装置から読み出されるデータを記憶するためのキャッシュメモリと、上位装置からのシーケンシャルなリードアクセスを受け付けるよりも前に、記憶装置に記憶されたデータを予め読み出してキャッシュメモリに記憶させるプリフェッチ部と、記憶装置に記憶されているデータの配置の連続性を判定するための連続性判定部と、連続性判定部による判定結果と上位装置からのリードアクセスの状況とに基づいて、プリフェッチ量を算出するプリフェッチ量算出部と、プリフェッチ量算出部により算出されたプリフェッチ量をプリフェッチ部に設定し、かつ、連続性判定部による判定結果に基づいてプリフェッチ部の動作を制御するためのプリフェッチ動作制御部と、を備える。
本発明では、連続性判定部は、リードアクセスのキャッシュヒット率に基づいて、記憶部に記憶されているデータの配置の連続性を数値化して出力する。
本発明では、プリフェッチ動作制御部は、連続性判定部による判定結果が予め設定された所定値以下の場合に、プリフェッチ部によるプリフェッチ動作を停止させる。
本発明では、プリフェッチ動作制御部は、連続性判定部による判定結果が予め設定された他の所定値以上の場合に、プリフェッチ部によるプリフェッチ動作を作動させる。
本発明では、プリフェッチ動作制御部は、連続性判定部による判定結果が予め設定された所定値以下の場合に、プリフェッチ部によるプリフェッチ動作を停止させ、判定結果が予め設定された他の所定値以上の場合に、プリフェッチ動作を再開させる。
本発明では、連続性判定部は、リードアクセスのキャッシュヒット率に基づいて、記憶部に記憶されているデータの配置の連続性を数値化して出力するものであり、かつ、プリフェッチ動作が停止されている場合は、プリフェッチ動作の停止期間におけるキャッシュヒット率を予測することにより、プリフェッチ動作の停止期間におけるデータの配置の連続性を判定する。
本発明では、プリフェッチ量算出部は、プリフェッチ部によるプリフェッチ動作の一周期内に上位装置から読出しを要求される最大データ量に基づいて、プリフェッチ量を算出する。
本発明では、プリフェッチ量算出部は、プリフェッチ部によるプリフェッチ動作の一周期内に上位装置から読出しを要求される最大データ量を最大プリフェッチ量とし、この最大プリフェッチ量に、数値化される連続性判定部による判定結果を乗算することにより、プリフェッチ量を算出する。
本発明では、プリフェッチ動作制御部は、プリフェッチ部によるプリフェッチ動作を停止させる場合、警報を出力させる。
本発明では、プリフェッチ動作制御部は、プリフェッチ部によるプリフェッチ動作を停止させる場合に警報を出力し、記憶装置に記憶されているデータを連続的に配置させるための再配置処理を起動させる。
本発明では、プリフェッチ部と、連続性判定部と、プリフェッチ量算出部及びプリフェッチ動作制御部は、記憶デバイスに設けられる論理ボリューム毎にそれぞれ動作する。
本発明では、プリフェッチ動作制御部は、プリフェッチ量算出部により算出されるプリフェッチ量をプリフェッチ部に設定することによりプリフェッチ動作を行わせる第1モードと、予め設定された初期値に基づいてプリフェッチ部にプリフェッチ動作を行わせる第2モードとを備えている。
本発明では、プリフェッチ動作制御部は、プリフェッチ量算出部及び連続性判定部が作動可能となるまでの間は、第2モードでプリフェッチ部を作動させ、プリフェッチ量算出部及び連続性判定部が作動可能になった場合に、第2モードから第1モードに移行させる。
本発明の他の観点に従うストレージシステムの制御方法は、上位装置からのシーケンシャルなリードアクセスに応じて、データを上位装置に送信するストレージシステムを制御するための制御方法であって、上位装置からのシーケンシャルなリードアクセスを受け付けるよりも前に、記憶装置に記憶されているデータを所定周期で予め読み出して、キャッシュメモリに記憶させるプリフェッチ動作を実行するプリフェッチステップと、上位装置からのリードアクセスのキャッシュヒット率に基づいて、記憶装置に記憶されているデータの配置の連続性を判定する連続性判定ステップと、連続性判定ステップによる判定結果と、所定周期内におけるリードアクセスで要求される最大データ量とに基づいて、プリフェッチ動作で使用されるプリフェッチ量を算出するプリフェッチ量算出ステップと、連続性判定ステップによる判定結果に基づいて、プリフェッチ動作を作動または停止させるプリフェッチ動作制御ステップと、を実行させる。
本発明のさらに別の観点に従う記憶制御装置は、シーケンシャルな読出しが期待されるデータを記憶する書換可能な記憶デバイスを少なくとも1つ以上備えた記憶装置と、この記憶装置にシーケンシャルなリードアクセスを発行する上位装置とにそれぞれ接続される記憶制御装置であって、記憶装置から読み出されるデータを記憶するためのキャッシュメモリと、上位装置からのシーケンシャルなリードアクセスを受け付けるよりも前に、記憶装置に記憶されたデータを予め読み出してキャッシュメモリに記憶させるプリフェッチ部と、記憶装置に記憶されているデータの配置の連続性を判定するための連続性判定部と、連続性判定部による判定結果と上位装置からのリードアクセスの状況とに基づいて、プリフェッチ量を算出するプリフェッチ量算出部と、プリフェッチ量算出部により算出されたプリフェッチ量をプリフェッチ部に設定し、かつ、連続性判定部による判定結果に基づいてプリフェッチ部の動作を制御するためのプリフェッチ動作制御部と、を備える。
本発明の各手段、各部、各ステップの少なくとも一部は、コンピュータプログラムによって実行可能な場合がある。そして、このコンピュータプログラムは、各種記録媒体に固定された状態で配布したり、あるいは、通信媒体を介して送信することができる。
以下、図面に基づき、本発明の実施形態を説明する。図1は、本発明の全体概念を模式的に示す説明図である。本実施形態では、ストリーミング配信システムに用いた場合を例に挙げて説明する。
ストレージシステムは、例えば、記憶制御装置1及び記憶部2を備えている。記憶制御装置1は、「上位装置」としてのホストコンピュータ(以下「ホスト」)3に、通信経路5を介して接続されている。また、記憶制御装置1は、別の通信経路6を介して、記憶部2に接続されている。記憶制御装置1は、ホスト3から発行されたアクセス要求に基づいて、記憶部2からデータを読み出したり、記憶部2にデータを書き込む。
ホスト3は、例えば、映像や音声等のコンテンツデータを各ユーザマシン4にストリーミング配信するものである。ホスト3は、通信ネットワーク7を介して、複数のユーザマシン4にそれぞれ接続されている。ホスト3は、例えば、サーバマシン、メインフレームマシン等のように構成される。
ホスト3は、データ配信部3A及び再配置処理部3Bを備えている。データ配信部3Aは、記憶制御装置1を介して記憶部2からストリーミング配信用のコンテンツデータを取得し、このコンテンツデータを所定のビットレートで、各ユーザマシン4にそれぞれ配信するためのものである。
再配置処理部3Bは、記憶部2に記憶されているコンテンツデータを再配置し、データを順番に記憶させるものである。再配置処理は、後述のプリフェッチ動作制御部1Fから出力される警報に基づいて、自動的に行うことができる。また、ストリーミング配信されているファイルデータを格納する領域(論理ボリューム)についてのみ、再配置処理を行うこともできる。
ホスト3は、ストレージシステムからコンテンツデータを読出しながら、この読み出したコンテンツデータを所定のビットレートに従って、各ユーザマシン4に、それぞれ送信する。ユーザマシン4は、例えば、パーソナルコンピュータやワークステーションあるいは携帯情報端末等として構成される。
ここで、通信経路5,6として、例えば、SAN(Storage Area Network)等を用い、通信ネットワーク7として、LAN(Local Area Network)やインターネット等を用いることができる。但し、本発明は、種々の通信ネットワークや通信プロトコルに対応可能であり、SANやLAN等に限定されない。
記憶制御装置1の構成を説明する。記憶制御装置1は、例えば、ディスクアレイサブシステムのコントローラとして構成される。これに限らず、記憶制御装置1は、ホスト3と記憶部2との間に設けられるスイッチ装置等のように構成することもできる。
以下の説明では、記憶制御装置1を、ディスクアレイサブシステムの一部として構成する場合を例に挙げるが、本発明はこれに限定されない。記憶制御装置1は、例えば、アクセス要求処理部1Aと、キャッシュメモリ1Bと、プリフェッチ部1Cと、断片化検出部1Dと、プリフェッチ量算出部1Eと、プリフェッチ動作制御部1Fとを備えることができる。
アクセス要求処理部1Aは、ホスト3から発行されたアクセス要求を処理するためのものである。アクセス要求としては、例えば、リードアクセス及びライトアクセスを挙げることができる。
ホスト3がリードアクセスを要求する場合、アクセス要求処理部1Aは、要求されたデータがキャッシュメモリ1B上に存在するか否かを判定する。アクセス要求処理部1Aは、要求されたデータがキャッシュメモリ1B上に記憶されている場合、そのデータを読み出してホスト3に転送する。要求されたデータがキャッシュメモリ1Bに記憶されていない場合、アクセス要求処理部1Aは、記憶部2にアクセスしてデータを読出し、このデータをキャッシュメモリ1Bに保存してから、ホスト3に送信する。
ホスト3がライトアクセスを要求する場合、アクセス要求処理部1Aは、書込みを要求されたデータ(ライトデータ)を、キャッシュメモリ1Bに記憶し、ホスト3に書込み完了を報告する。その後、アクセス要求処理部1Aは、適当なタイミングで、キャッシュメモリ1Bに記憶されたライトデータを記憶部2に書き込む。あるいは、アクセス要求処理部1Aは、ライトデータを記憶部2に書き込んだ後で、ホスト3に書込み完了を報告することもできる。
なお、ホスト3は、例えば、記憶部2に記憶されているデータの削除を要求したり、記憶部2の構成(ボリューム構成等)の変更を要求することもできる。
キャッシュメモリ1Bは、上述のように、例えば、ホスト3と記憶部2との間でデータを受け渡すために使用される。ホスト3により読み出されるリードデータ及びホスト3から書き込まれるライトデータは、いずれもキャッシュメモリ1Bを経由する。
プリフェッチ部1Cは、ホスト3によって読み出されることが期待されるデータを、事前に記憶部2から読み出して、キャッシュメモリ1Bに記憶させるものである。プリフェッチ部1Cは、プリフェッチ動作制御部1Fによって、そのプリフェッチ動作のオンオフが制御される。また、プリフェッチ部1Cは、プリフェッチ動作制御部1Fによって設定されたプリフェッチ量に応じて、キャッシュメモリ1Bに所定量(プリフェッチ量)のデータを記憶させる。
なお、プリフェッチ部1Cがデータを読み出す単位(i/oサイズ)は、ホスト3がキャッシュメモリ1Bからデータを読み出す単位と一致している必要はない。例えば、ホスト3がキャッシュメモリ1Bからデータを読み出す単位よりも大きい単位で、プリフェッチ部1Cはデータを読み出すことができる。また、例えば、データ読出し位置(アクセス要求先アドレス)を変更することにより、データ読出しの効率を改善することもできる。
断片化検出部1Dは、「連続性判定部」に対応する。断片化検出部1Dは、ホスト3から発行されたリードアクセスのキャッシュヒット率を監視しており、このキャッシュヒット率に基づいて、データの断片化の度合を検出する。データの断片化とは、データ配置の連続性が失われ、1つまたは一連のファイルのデータが不連続に記憶されていることを意味する。
もしも、記憶部2内にデータが連続して配置されている場合、ホスト3からのシーケンシャルリードアクセスに先回りして、順番にデータを読み出せば、キャッシュヒット率は高くなると考えられる。これに対し、順番にデータを読み出しているにもかかわらず、キャッシュヒット率が低下した場合、データの断片化が発生しており、連続的配置が期待されているデータが別々の場所(ブロック)に記憶されていると推定可能である。そこで、断片化検出部1Dは、キャッシュヒット率に基づいて、記憶部2内のデータ配置の乱れを間接的に検出する。
さらに、断片化検出部1Dは、プリフェッチ動作が停止している期間中においても、キャッシュヒット率を予測して、データの断片化の度合を監視している。即ち、断片化検出部1Dは、プリフェッチ動作の停止期間内に、もしも今プリフェッチ動作を行っていたとしたら、キャッシュヒットしたか否かを判定する。このような予測されるキャッシュヒット率に基づいて、断片化検出部1Dは、プリフェッチ動作の停止期間内にも、データの断片化を検出することができる。
プリフェッチ量算出部1Eは、プリフェッチ部1Cによってプリフェッチされるデータの量を算出するものである。プリフェッチ量算出部1Eは、例えば、断片化検出部1Dにより検出されたデータ配置の断片化の度合とホスト3によるリードアクセスの発生頻度とに基づいて、適切と考えられるプリフェッチ量を算出する。例えば、プリフェッチ量算出部1Eは、データ配置の断片化が進むにつれてプリフェッチ量が少なくなるように、プリフェッチ量を算出する。
プリフェッチ動作制御部1Fは、プリフェッチ部1Cによるプリフェッチ動作を制御するものである。プリフェッチ動作制御部1Fは、断片化検出部1Dにより検出されたデータ配置の断片化の度合に基づいて、プリフェッチ動作を行わせるか否かを制御する。また、プリフェッチ動作制御部1Fは、プリフェッチ動作を行わせる場合のプリフェッチ量を、プリフェッチ部1Cに設定する。
プリフェッチ動作制御部1Fは、データの断片化の度合が大きくなった場合、即ち、プリフェッチ動作による効果を期待できない場合、プリフェッチ動作の停止を決定することができる。プリフェッチ動作の停止を決定する場合、プリフェッチ動作制御部1Fは、警報を出力することができる。また、プリフェッチ動作制御部1Fは、データの断片化が小さくなった場合、即ち、プリフェッチ動作による効果を期待できる場合、プリフェッチ動作の再開を決定することができる。
記憶部2は、ホスト3によって利用されるデータを記憶するものである。記憶部2は、例えば、ハードディスクドライブや半導体メモリドライブ等のような書換可能な記憶デバイスを少なくとも1つ以上備えている。1つまたは複数の記憶デバイスが提供する物理的な記憶領域上には、1つまたは複数の論理ボリュームを設定可能である。この論理ボリュームには、ホスト3のファイルシステムによりアクセスされる少なくとも1つ以上のファイルのデータが記憶される。
本実施形態の動作を説明する。記憶部2には、ホスト3によってストリーミング配信されるコンテンツデータが格納されている。ホスト3は、記憶制御装置1を介して記憶部2からコンテンツデータを読出し、この読み出したコンテンツデータのパケットを各ユーザマシン4に、それぞれ送信する。
プリフェッチ部1Cは、ホスト3により読み出されるデータを、先回りして記憶部2から読出し、キャッシュメモリ1Bに記憶させておく。これにより、ホスト3は、必要なデータをより速やかに入手することができる。
例えば、ホスト3が最初に記憶部2の所定箇所からD1を読み出した場合、プリフェッチ部1Cは、D1の次に読み出されることが期待されるD2を、ホスト3からのリードアクセスが発行されるよりも前に、記憶部2から読み出してキャッシュメモリ1Bに記憶させる。
同様に、プリフェッチ部1Cは、ホスト3からリードアクセスが発行されるよりも前に、D2の次に配置されているデータを記憶部2から読み出してキャッシュメモリ1Bに記憶させる。しかし、記憶部2内でデータの断片化が生じているために、記憶部2内において、D2の次に配置されているデータがD3ではなく、D5であるとする。この場合、キャッシュメモリ1Bには、D2に続いてD5が記憶される。しかし、ホスト3の要求するデータは、D3であってD5ではないため、キャッシュミスヒットが発生する。
断片化検出部1Dは、キャッシュヒット率に応じて(裏返せば、キャッシュミスヒット率に応じて)、記憶部2内で生じているデータの断片化の程度を検出する。記憶部2内には、ホスト3からシーケンシャルに読み出される1つまたは複数のファイルに関するデータが連続的に順番に配置されるべきである。従って、キャッシュミスヒットの増大は、記憶部2内におけるデータ配置の断片化(フラグメンテーション)の発生であると判断可能である。
記憶部2内でデータの断片化が生じている場合、プリフェッチ量算出部1Eは、より少ないプリフェッチ量を算出する。プリフェッチするデータの量を少なくすれば、キャッシュミスヒットの発生する可能性を低減できるためである。
プリフェッチ動作制御部1Fは、記憶部2内のデータ配置の断片化の程度に応じて、プリフェッチ部1Cを作動させるか、あるいは停止させるかを決定する。キャッシュミスヒットが増大した場合(キャッシュヒット率が低下した場合)、プリフェッチ動作制御部1Fは、プリフェッチ部1Cの作動を停止させる。
プリフェッチ動作が停止すると、アクセス要求処理部1Aは、ホスト3から要求されたデータを記憶部2から読み出して、ホスト3に転送する。即ち、プリフェッチ動作停止後は、ホスト3からリードアクセスされるたびに、記憶部2からデータが読み出されてホスト3に送信される。従って、プリフェッチ動作停止後において、リードアクセスに対する応答性能は、記憶部2の応答性能に依存する。
そして、プリフェッチ動作制御部1Fは、プリフェッチ動作を停止させた後、警報を出力することができる。この警報は、データの断片化のためにプリフェッチ動作が停止されたことを示す。この警報は、例えば、ホスト3に実装された管理プログラムを介して、または、記憶制御装置1に接続された管理端末を介して、管理者に通知可能である。さらに、この警報を用いて、再配置処理部3Bを自動的に起動させることもできる。
ところで、記憶部2内のデータ配置の断片化が所定値以下まで低下した場合、このデータ配置の断片化の度合の低下は、断片化検出部1Dにより検出される。例えば、再配置処理部3Bによって、記憶部2内のデータの再配置が完了した場合、断片化が解消する。あるいは、記憶部2内のデータ配置の断片化が部分的に生じている場合、ホスト3からのリードアクセスが、その断片化発生領域を通過すると、断片化の度合が低下する。
プリフェッチ動作制御部1Fは、データ配置の断片化の度合が低下すると、プリフェッチ部1Cの作動を再開させる。プリフェッチ量算出部1Eは、適切と考えられるプリフェッチ量を算出する。プリフェッチ動作制御部1Fは、算出されたプリフェッチ量をプリフェッチ部1Cに設定する。これにより、プリフェッチ部1Cは、ホスト3からのリードアクセスに先回りして、記憶部2からデータを読出し、キャッシュメモリ1Bに記憶させる。この結果、リードアクセスに対する応答性能が高まる。
本実施形態のストレージシステムは、上述のように、断片化検出部1Dによって、プリフェッチ部1Cの作動を制御する構成とした。即ち、本実施形態では、効果を期待できる状況下ではプリフェッチ動作を行い、効果を期待できない状況下ではプリフェッチ動作を停止させることができる。この結果、本実施形態では、記憶部2が本来的に備える応答性能以上の応答性能を保証することができ、信頼性や使い勝手が向上する。
もしも、データ配置の断片化が生じているにもかかわらず、比較的多量のデータをプリフェッチする場合、キャッシュミスヒットが多発する。従って、この場合、リードアクセスの発行時に記憶部2から直接データを読み出す場合に比べて、ストレージシステムの応答性能は低下する。これに対し、本実施形態では、記憶部2内でデータが連続的に配置されている場合(データ配置の断片化が生じていない場合)は、プリフェッチ動作を作動させて、プリフェッチによる効果を得ることができる。また、記憶部2内でデータ配置の断片化が生じている場合は、プリフェッチ動作を停止させることにより、記憶部2の有する応答性能で、ホスト3にデータを送信することができる。
本実施形態では、キャッシュヒット率に基づいて、データ配置の断片化の度合を間接的に推定する構成とした。即ち、本実施形態では、キャッシュヒット率をデータ配置の断片化の度合の指標として採用することにより、記憶部2内の実際のデータ配置を調査することなく、データ配置の断片化を検出することができる。従って、記憶部2の記憶内容をスキャン等する必要がなく、比較的少ない低負荷でデータ配置の断片化を検出することができ、データ配置の断片化検出に伴って記憶制御装置1の性能が低下するのを、防止することができる。
本実施形態では、データ配置の断片化のためにプリフェッチ動作が停止されると、警報を出力させる構成とした。従って、管理者(ホスト3または記憶制御装置1のユーザ)は、この警報に基づいて、例えば、再配置処理の実行を命じたり、ストリーミング配信先のユーザ数やビットレートを調節等することができ、使い勝手が向上する。また、本実施形態では、前記警報によって再配置処理部3Bを自動的に起動させることができるため、さらに使い勝手が向上する。以下、本実施形態を詳細に説明する。
図2は、本実施例によるストレージシステム10の全体構成を示す説明図である。ストレージシステム10は、例えば、コントローラ100及び記憶部200を備えて構成することができる。ストレージシステム10は、少なくとも1つ以上のホスト20と接続されている。
先に、図2と図1との対応関係を述べる。コントローラ100は「記憶制御装置1」に、記憶部200は「記憶部2」に、ホスト20は「ホスト3」に、ユーザマシン40は「ユーザマシン4」に、通信経路CN1は「通信経路5」に、通信経路CN2は「通信経路6」に、通信ネットワークCN3は「通信ネットワーク7」に、それぞれ対応する。
ストレージシステム10は、例えば、SANやLAN等の通信経路CN1を介して、ホスト20に接続されている。ホスト20は、複数のユーザマシン40と通信ネットワークCN3を介してそれぞれ接続されている。ユーザマシン40は、例えば、パーソナルコンピュータや携帯情報端末等である。ホスト20は、各ユーザマシン40からの配信要求に応じて、ストレージシステム10からデータを読出す。そして、ホスト20は、この読み出したデータ(コンテンツデータ)を、所定のビットレートで、各ユーザマシン40にそれぞれ配信する。このデータ転送手順を、ストリーム配信と呼ぶ。
また、ストレージシステム10は、例えば、LAN等の通信経路CN4を介して、管理端末30に接続されている。管理端末30は、ストレージシステム10の構成を設定したり、ストレージシステム10内の各種状態を収集して管理する。管理端末30を、さらにネットワーク上の管理サーバに接続させることもできる。なお、管理端末30を廃止して、ホスト20内でストレージシステム10の構成等を管理することもできる。
次に、ストレージシステム10の内部構成を説明する。まず最初にコントローラ100の構成を説明し、続いて記憶部200の構成を説明する。
コントローラ100は、例えば、プロセッサ110と、メモリ120と、ホストインターフェース(図中「ホストI/F」)140と、ドライブインターフェース(図中「ドライブI/F」)150と、管理用インターフェース(図中、「管理用I/F」)160とを備えて構成される。これら各部110,120,140,150,160は、バス170によって相互に接続されている。
プロセッサ110は、例えば、少なくとも1つ以上のマイクロプロセッサ(CPU)から構成される。1つのプロセッサ110内に複数のCPUコアが設けられる場合もある。プロセッサ110は、メモリ120に記憶されているプログラムモジュールを読み出して実行することにより、後述する各機能をそれぞれ実現させる。なお、複数の機能の全てをソフトウェア処理でそれぞれ実現する構成に限定されない。必要に応じて、一部の機能をハードウェア回路で構成したり、1つまたは複数の機能の一部をハードウェア回路で支援等する構成でもよい。このようなハードウェア回路は、例えば、高度集積回路(LSI)のように構成されて、バス170に接続される。
メモリ120は、プログラムモジュール121〜129を記憶するプログラム領域と、キャッシュデータを記憶するキャッシュ領域130とを備えている。本実施例では、メモリ120内にプログラムとキャッシュデータとを混在させる構成を示すが、これに代えて、プログラムを記憶するためのプログラムメモリと、キャッシュデータを記憶させるキャッシュメモリとを分離する構成でもよい。従って、以下の説明では、キャッシュ領域130を、キャッシュメモリと呼ぶ場合もある。キャッシュ領域130は、図1中の「キャッシュメモリ1B」に対応する。
プリフェッチ処理モジュール121は、プリフェッチを行うためのプログラムモジュールであり、図1中の「プリフェッチ部1C」に対応する。
プリフェッチ動作制御モジュール122は、プリフェッチ処理モジュール121の作動を制御するためのプログラムモジュールである。プリフェッチ動作制御モジュール122は、図1中の「プリフェッチ動作制御部1F」に対応する。プリフェッチ動作制御モジュール122は、後述のように、データ配置の断片化の度合に応じて、プリフェッチ処理モジュール121に適切なプリフェッチ量を設定し、また、プリフェッチ動作の停止及び再開を指示するようになっている。
データ断片化指数算出(予測)モジュール123は、キャッシュヒット率に基づいて、記憶部200内におけるデータ配置の断片化の度合を検出または予測するためのプログラムモジュールである。データ断片化指数とは、データ配置の断片化の程度を示す指標である。データ断片化指数算出(予測)モジュール123は、図1中の「断片化検出部1D」に対応する。以下、データ断片化指数算出(予測)モジュール123を、単に、データ断片化指数算出モジュール123と呼ぶ。データ断片化指数算出モジュール123は、プリフェッチ動作が行われている期間中、キャッシュヒット率に基づいてデータ配置の断片化を間接的に検出する。また、データ断片化指数算出モジュール123は、プリフェッチ動作が停止されている期間においても、プリフェッチを行っていたと仮定した場合のキャッシュヒット率に基づいてデータ配置の断片化を予測する。
プリフェッチ量算出モジュール124は、プリフェッチ量を算出するためのプログラムモジュールであり、図1中の「プリフェッチ量算出部1E」に対応する。プリフェッチ量算出モジュール124は、データ断片化指数算出モジュール123から出力されるデータ断片化指数に応じて、適切なプリフェッチ量を算出する。簡単には、例えば、データ断片化が大きくなるほどプリフェッチ量が小さくなるように、プリフェッチ量算出モジュール124は、プリフェッチ量を算出する。算出されたプリフェッチ量は、プリフェッチ動作制御モジュール122により、プリフェッチ処理モジュール121に設定される。
警報モジュール125は、プリフェッチ動作制御モジュール122からの指示に基づいて、所定の警報を発するためのプログラムモジュールである。この警報は、例えば、ホスト20や管理端末30のユーザインターフェースを介して、管理者に通知される。あるいは、この警報を契機として、データ配置の断片化を解消するための再配置処理を、ホスト20内で起動させることもできる。
モニタモジュール126は、ストレージシステム10内で管理される各種統計情報や履歴を管理するためのプログラムモジュールである。モニタモジュール126は、例えば、キャッシュヒット率、ホスト20からアクセスを要求された時刻、アクセスされたデータのサイズ等の情報を管理する。
管理インターフェースモジュール127は、ホスト20や管理端末30から、ストレージシステム10の動作設定や構成変更等を行うためのプログラムモジュールである。
ホストI/O処理モジュール128は、ホスト20からのリードアクセス(リード要求)やライトアクセス(ライト要求)を処理するためのプログラムモジュールである。
ドライブI/O処理モジュール129は、記憶部200内のディスクドライブ210にアクセスして、ディスクドライブ210からデータを読み出したり、または、ディスクドライブ210にデータを書き込んだりするためのプログラムモジュールである。ホストI/O処理モジュール128及びドライブI/O処理モジュール129は、図1中の「アクセス要求処理部1A」に対応する。
ホストインターフェース140は、通信経路CN1を介して、ホスト20との間で通信を行うものである。ドライブインターフェース150は、通信経路CN2を介して、記憶部200内のディスクドライブ210との間で通信を行うものである。管理用インターフェース160は、通信経路CN4を介して、管理端末30との間で通信を行うものである。
ホスト20がいわゆるオープン系のサーバである場合、ホスト20とストレージシステム10とは、例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)やFCP(Fibre Channel Protocol)等のプロトコルに従って、データ通信を行う。ホスト20がメインフレームマシンである場合、ホスト20とストレージシステム10とは、例えば、FICON(Fibre Connection:登録商標)、ESCON(Enterprise System Connection:登録商標)、ACONARC(Advanced Connection Architecture:登録商標)、FIBARC(Fibre Connection Architecture:登録商標)等のプロトコルに従って、データ通信を行う。
次に、記憶部200の構成を説明する。記憶部200は、例えば、複数のディスクドライブ210を備えている。ディスクドライブ210としては、例えば、ハードディスクドライブ、半導体メモリドライブ、光ディスクドライブ、光磁気ディスクドライブ、磁気テープドライブ等の種々の記憶デバイスを用いることができる。また、ハードディスクドライブを使用する場合、例えば、FC(Fibre Channel)ディスク、SATA(Serial AT Attachment)ディスク、SCSI(Small Computer System Interface)ディスクのように、種々の種類のハードディスクドライブを利用可能である。また、記憶部200内に、異なる種類の記憶デバイスを混在させることもできる。
RAIDレベル等によっても相違するが、所定数のディスクドライブ210によってRAIDグループ220を構成することができる。例えば、3個のデータディスクと1個のパリティディスクとから、RAID5の構成を得ることができる(3D+1P)。また、1個の正ディスクと1個の副ディスクとから、RAID1の構成を得ることもできる。
RAIDグループ220は、冗長化された物理的な記憶領域であり、物理的な記憶デバイスと呼ぶこともできる。このRAIDグループ220の提供する物理的な記憶領域上に、論理的な記憶領域230を1つまたは複数設定することができる。論理的な記憶領域230は、例えば、論理ボリューム(図中「LU」と表示)と呼ばれる。この論理ボリューム230は、ホスト20のアクセス対象となる。
記憶部200内のディスクドライブ210(論理ボリューム230)には、ストリーミング配信の対象となるデータ(コンテンツデータ)が記憶されている。コンテンツデータは、例えば、映像や音声等を含んでおり、一般的にデータサイズが大きい。コンテンツデータは、ランダムアクセスされるデータベースや、必要な命令だけが読み出されるプログラムコード等とは異なり、データの先頭から順番に読み出されて使用される。コンテンツデータは、順番通りに連続して読み出される場合が多いため、論理ボリューム230上の連続した領域に、連続して配置される。
なお、記憶部200は、少なくとも1つ以上のディスクドライブ210を備えていればよく、複数のディスクドライブ210を備える必要はない。単独のディスクドライブ210に論理ボリューム230を設定することもできる。
また、コントローラ100と記憶部200とを同一の筐体内に設けることもできるし、それぞれ別々の筐体内に設けることもできる。また、後述するプリフェッチ動作の制御機能を、例えば、通信経路CN1上に設けられるスイッチ装置に実装してもよい。
次に、本実施例の動作を説明する。以下に述べる各動作は、コントローラ100のプロセッサ110が、メモリ120に記憶されている各プログラムモジュール121〜129を必要に応じて読み出して実行することにより、実現される。説明の便宜上、動作の主体をコントローラ100として述べる。
ストレージシステムの動作を説明する前に、本実施例のストレージシステムが考慮している特徴的問題点について説明する。この特徴的問題点は、本発明の理解に役立つものである。しかし、本発明の範囲は特許請求の範囲の記載に基づいて定まるべきものであり、以下に述べる特徴的問題点は、本発明の範囲を何ら限定するものではない。
本実施例では、上述のように、ホスト20から各ユーザマシン40に所定のビットレートでデータを送信する。このようなストリーム配信では、一般に、各ユーザマシン40からそれぞれ個別に配信要求が出されるため、ホスト20は、複数のユーザマシン40のそれぞれに向けて、同時並行的に、データを送る必要がある。
即ち、多数のユーザが、それぞれ別々のタイミングで、同一のコンテンツ(映画等)を視聴するため、ストリーミング配信が多重で実行される。あるユーザマシン40には、ある論理ボリューム230内に記憶されたコンテンツデータが読み出されて配信され、また、別のあるユーザマシン40には、別の論理ボリューム230内に記憶されたコンテンツデータが読み出されて、配信される。
この結果、ホスト20からストレージシステム10に、高多重のシーケンシャルアクセスが発生する。即ち、ホスト20は、各ユーザマシン40へのストリーミング配信を行うために、多数のシーケンシャルアクセス(リードアクセス)を同時に発行する。
各ストリーミング配信の1つ1つについて見ると、ホスト20からストレージシステム10へのアクセス要求は、それぞれシーケンシャルである。つまり、個別のストリーミング配信に着目すれば、連続的なデータの読出しが行われている。しかし、上述のように、多数のストリーミング配信が同時並行的に処理されるため、ストレージシステム10は、各ストリーミング配信にそれぞれ対応したアクセス要求を受信する。ホスト20とストレージシステム10との間には、複数のシーケンシャルアクセスが存在するため、これら複数のシーケンシャルアクセスの全体としては、シーケンシャルなアクセスに見えないという特徴を有する。本実施例は、この特徴を考慮して、プリフェッチ動作(プリフェッチ機能)を制御する。
さらに述べるならば、各ユーザマシン40へのストリーミング配信をそれぞれ独立して行うために、ホスト20は、各ユーザマシン40毎に必要となるデータを、ストレージシステム10からそれぞれ順番に読み出す。ここで、留意すべき点は、プリフェッチされてキャッシュ領域130に記憶されたデータは、いったんホスト20によって読み出された後、基本的に二度と使用されることはないという点である。ストリーミング配信の場合、基本的に、一度使用されたデータは、二度と使用されない。この点で、単なるメモリアクセスの高速化を図るためのキャッシュ制御技術や、プログラムの実行速度を上げるための技術とは異なる。
図3は、ホスト20からのリード要求を処理するためのリード要求処理を示すフローチャートである。このリード要求処理は、コントローラ100のホストI/O処理モジュール128(あるいは、ホストI/O処理モジュール128及びドライブI/O処理モジュール129)を中心として実現される。
なお、以下に述べる各フローチャートは、本発明の理解及び実施に必要な範囲で、処理の概要を示しており、実際のプログラムとは相違する場合がある。また、ステップを「S」と略記する。
コントローラ100は、ホスト20からのリード要求を受信すると(S11)、要求されたデータがキャッシュ領域130に記憶されているか否かを判定する(S12)。本実施例では、リード要求が発行されるよりも前に、先回りしてデータをキャッシュ領域130に記憶させることが可能である。
ホスト20から要求されたデータが既にキャッシュ領域130に記憶されている場合(S12:YES)、コントローラ100は、キャッシュ領域130に記憶されているデータを読み出して、ホスト20に送信する(S13)。そして、コントローラ100は、キャッシュヒット率を更新する(S17)。このキャッシュヒット率の更新は、モニタモジュール126によって実行される。モニタモジュール126は、キャッシュヒット率管理テーブル1261を備えている。この管理テーブル1261は、例えば、各論理ボリューム230毎に、それぞれのキャッシュヒット率を対応付けて管理するための情報である。ホスト20のファイルシステムは、一般的に、1つの論理ボリューム230の全体を支配し、各論理ボリューム230毎にコンテンツデータが格納される場合が多い。データ配置の断片化は、各ファイルシステム毎にそれぞれ異なるため、各論理ボリューム230毎に、それぞれキャッシュヒット率を管理している。
ホスト20から要求されたデータがキャッシュ領域130に記憶されていない場合(S12:NO)、コントローラ100は、記憶部200内のディスクドライブ210にアクセスして、データを読み出す(S14)。具体的には、例えば、リードコマンド内で明示された読出し先論理アドレスをドライブ上の物理アドレスに変換し、所定のディスクドライブ210からデータを取り出す。所定のディスクドライブ210とは、要求されたデータを保有する論理ボリューム230を構成するディスクドライブである。
コントローラ100は、ディスクドライブ210から読み出したデータをキャッシュ領域130に記憶させた後(S15)、このデータをホスト20に送信し(S16)、キャッシュヒット率を更新させる(S17)。
上述したS12→S13の流れは、プリフェッチ効果が生じている場合であり、S12→S14→S15→S16の流れが、プリフェッチ効果が生じていない場合(プリフェッチ動作が停止している場合、及びキャッシュミスヒットの場合)である。
図4は、プリフェッチ処理を示すフローチャートである。この処理は、コントローラ100のプリフェッチ処理モジュール121を中心に実現される。コントローラ100は、プリフェッチ量DPを取得する(S21)。このプリフェッチ量DPは、図5と共に後述するプリフェッチ動作制御処理において設定される。プリフェッチ量DPは、データ断片化指数に応じて適宜調節される。
コントローラ100は、既にキャッシュ領域130にプリフェッチされているデータ量DPbを取得し(S22)、プリフェッチ量DPとプリフェッチ済みデータ量DPbとを比較する(S23)。
プリフェッチ済みのデータ量DPbの方がプリフェッチ量DPよりも少ない場合(S23:YES)、コントローラ100は、ディスクドライブ210から所定量のデータを読み出して(S24)、キャッシュ領域130に記憶させる(S25)。そして、コントローラ100は、S21に戻る。このようにして、設定されたプリフェッチ量DP分のデータがキャッシュ領域130に記憶されるまで、S21〜S25のステップが繰り返される。
プリフェッチ済みのデータ量DPbがプリフェッチ量DPよりも多くなると(S23:NO)、コントローラ100は、新たなデータをプリフェッチすることなく、S21に戻る。なお、プリフェッチ済みのデータがホスト20によって読み出されるたびに、プリフェッチ済みのデータ長DPbの値は、減少していく。
図5は、プリフェッチ動作制御処理を示すフローチャートである。この処理は、コントローラ100のプリフェッチ動作制御モジュール122を中心に実現される。この処理は、例えば、ホスト20からのリードアクセスを受けるたびに実行される。これに代えて、例えば、数秒程度の所定周期で、プリフェッチ動作制御処理を実行してもよい。
コントローラ100は、プリフェッチ動作がオン状態か否かを判断する(S31)。プリフェッチ動作がオン状態とは、プリフェッチ機能が作動する状態である。プリフェッチ動作がオフ状態とは、プリフェッチ機能が停止されている状態である。
プリフェッチ機能がオン状態に設定されている場合(S31:YES)、コントローラ100は、データ断片化指数FIを算出する(S32)。データ断片化指数FIの算出方法については、図6と共に後述する。簡単に説明すると、コントローラ100は、キャッシュヒット率に基づいて、論理ボリューム230内のデータ配置の断片化をデータ断片化指数FIとして検出する。
次に、コントローラ100は、データ断片化指数FI及び最大プリフェッチ量DPmaxに基づいて、プリフェッチ量DPを算出する(S33)。最大プリフェッチ量DPmaxの算出方法については、図9,図10と共に後述する。コントローラ100は、予め用意されているプリフェッチ量算出用の関数fに、データ断片化指数FI及び最大プリフェッチ量DPmaxを入力することにより、最新のプリフェッチ量DPを求める(DP=f(DPmax,FI))。
簡単な例を挙げると、プリフェッチ量DPは、最大プリフェッチ量DPmaxにデータ断片化指数FIを乗算することにより得ることができる(DP=DPmax×FI)。後述のように、データ断片化指数FIは、データ配置の断片化が進行するにつれて、”1”から”0”に向けて減少していく。データ配置の断片化が最も進行した場合、FIは”0”となるか、または負の値となる。データ配置の断片化が発生していない場合、FI=1となる。従って、正の値である最大プリフェッチ量DPmaxにデータ断片化指数FIを乗算して得られるプリフェッチ量DPは、データ配置の断片化が進行すればするほど、小さくなっていく。なお、以上の説明は、簡単な一例を示すものであり、本発明はこれに限定されない。データ配置の断片化の度合が進むほど、プリフェッチ量DPを小さくできる関数であれば、構わない。また、関数を用いて算出する方法に代えて、プリフェッチ量DPとデータ断片化指数FIとの対応関係を記述したテーブルを用意しておき、このテーブルを参照することによりプリフェッチ量を求める構成でもよい。
コントローラ100は、プリフェッチ量DPを算出した後(S33)、この算出されたプリフェッチ量DPが0以下であるか否かを判定する(S34)。上述のように、データ配置の断片化が進行すると、FIの値は、0となる。FIが0になった場合、プリフェッチ量DPも0となる。
プリフェッチ量DPが0になった場合(S34:YES)、コントローラ100は、プリフェッチ機能を停止させる(S36)。プリフェッチ機能がオン状態からオフ状態に遷移すると、コントローラ100は、警報を出力する(S37)。この警報は、警報モジュール125によって生成される。生成された警報は、管理インターフェースモジュール127からホストインターフェース140を介して、通信経路CN1に送り出され、ホスト20によって受信される。
ユーザは、コントローラ100からの警報によって、プリフェッチ機能が停止した旨を確認することができる。なお、後述のように、コントローラ100からの警報によって、ホスト20内で、データ再配置処理を自動的に実行させることもできる。
S33で算出されたプリフェッチ量DPが0ではない場合(S34:NO)、コントローラ100は、プリフェッチ機能のオン状態を継続させる(S35)。この場合、コントローラ100は、S33で算出されたプリフェッチ量DPに基づいて、図4で述べたプリフェッチ処理を実行する。
プリフェッチ機能がオフ状態に設定された場合(S31:NO)、コントローラ100は、データ断片化指数FIの予測を行う(S38)。データ断片化指数FIの予測方法については後述する。
コントローラ100は、予測されたデータ断片化指数FIが0以下であるか否かを判定する(S39)。データ断片化指数FIが0以下の場合(S39:YES)、論理ボリューム230内に記憶されているコンテンツデータの連続性が失われており、プリフェッチ効果を期待することができない場合である。そこで、コントローラ100は、プリフェッチ機能のオフ状態をそのまま継続させる(S40)。プリフェッチ機能の停止期間中、コントローラ100は、ホスト20からリードアクセスされた時点で、ディスクドライブ210からデータを読み出してホスト20に送信する。
これに対し、S38で予測されたデータ断片化指数FIが0より大きい値になった場合(S39:NO)、データ断片化の度合が低下しており、プリフェッチ効果を期待することができる場合である。そこで、コントローラ100は、プリフェッチ機能をオフ状態からオン状態に遷移させる(S41)。
このように、コントローラ100は、データ断片化指数FIに応じて、プリフェッチ動作のオンオフ制御を行う。また、コントローラ100は、プリフェッチ動作を有効にする場合(プリフェッチ機能をオン状態に設定する場合)、データ断片化指数FIに応じた適切なプリフェッチ量DPを使用する。従って、ストレージシステム10は、データ断片化の度合に応じて、プリフェッチ動作を適切に制御することができる。
図6は、データ断片化指数FIを検出(予測)する方法を模式的に示す説明図である。データ断片化指数算出モジュール123は、例えば、下限値定数記憶部1231と、キャッシュヒット率予測部1232と、下限値定数管理テーブル1233と、予測キャッシュヒット率管理テーブル1234と、複数の演算式1235,1236を備えて構成することができる。
下限値定数記憶部1231には、演算式1235,1236で使用される定数bが予め記憶されている。定数bは、例えば、キャッシュヒット率と応答性能との関係を実測し、プリフェッチ効果を得られなくなるキャッシュヒット率を調べることにより、得られる値である。即ち、定数bは、プリフェッチ効果を得ることができない限界点を示す。定数bは、”0”よりも大きく”1”よりも小さい値を取る(0<b<1)。
ディスクドライブ210の種類が予め定まっている場合、定数bには、予め設定された固定値を用いることができる。定数bは、ディスクドライブの性能に依存する。複数種類のディスクドライブ210に対応する場合は、ディスクドライブの種類に応じた定数bを記憶する下限値定数管理テーブル1233を用意すればよい。下限値定数管理テーブル1233は、各ディスクドライブの種類毎に、定数bの値が予め設定されている。なお、ホスト20や管理端末30から、定数bを設定することも可能である。
キャッシュヒット率予測部1232は、プリフェッチ機能がオフ状態の場合に使用されるもので、ホスト20からのリードアクセスがキャッシュヒットであるかキャッシュミスヒットであるかを判定する。判定結果は、予測キャッシュヒット率管理テーブル1234に記録される。この予測キャッシュヒット率管理テーブル1234は、上述のキャッシュヒット率管理テーブル1261と同様に、各論理ボリューム230毎に、それぞれについて予測されたキャッシュヒット率が対応付けられている。
第1の演算式1235は、プリフェッチ機能がオン状態の場合に使用される。第1の演算式1235は、実際に観測されたキャッシュヒット率CH(0≦CH≦1)と定数b(0<b<1)とから、下記の式1に従って、データ断片化指数FIを算出する。
FI=(CH−b)/(1−b)・・・(式1)
第2の演算式1236は、プリフェッチ機能がオフ状態の場合に使用される。第2の演算式1236は、予測されたキャッシュヒット率CHe(0≦CHe≦1)と定数bとから、下記の式2に従って、データ断片化指数FIeを予測する。
FIe=(CHe−b)/(1−b)・・・(式2)
ストリーミング配信に使用される本実施例のストレージシステム10は、データがドライブ上(論理ボリューム230内に)にシーケンシャルに配置されていると仮定して、プリフェッチ動作を行う。従って、ドライブ上のデータ配置が断片化していると、プリフェッチに失敗することになる。このとき、キャッシュ領域130上には、ホスト20から要求されたデータは存在しないため、キャッシュミスヒットとなり、キャッシュヒット率が低下する。従って、データ配置の断片化の程度は、キャッシュヒット率CHを指標とすることで検出可能である。ドライブ内を実際にスキャンすることなく、データ配置の断片化の程度を把握することができる。
キャッシュヒット率CHは、モニタモジュール126が管理する統計情報の1つであり、例えば、キャッシュヒット率管理テーブル1261に記録されている。プリフェッチが完全に成功した場合、ホスト20から要求されたデータは、常にキャッシュ領域130に存在するため、キャッシュヒット率は、”1(100%”)に近づく。これとは逆に、プリフェッチに失敗するほど、キャッシュヒット率CHは、”0”に近づく。
即ち、第1の演算式1235で定義されるデータ配置の断片化指数FIは、データがドライブ上に完全にシーケンシャルに配置されている場合に、おおよそ最大値の”1”となり、データ配置の断片化の進行に伴って、次第に小さな値となる。そして、データ配置の断片化が進行してプリフェッチ効果が得られなくなると、”0”になる。つまり、データ配置の断片化指数FIが”0”以下の場合、プリフェッチ機能をオフ状態に設定すればよく、FIが”0”より大きい場合は、プリフェッチ機能をオン状態に設定すればよい。
第2の演算式1236も、第1の演算式1235で述べた理由で、データ断片化指数FIを、第1の演算式1235と同様に定義する。定数bは、第1の演算式1235と共通のものを使用する。従って、データ配置の断片化が進むほどFIは0に近づき、データ配置が連続するほどFIは”1”に近づく。
第2の演算式1236によるデータ断片化指数FIの予測は、プリフェッチ機能をオフ状態からオン状態に変更するために必要となる。FIを予測するためには、キャッシュヒット率として予測値CHeを用いる必要がある。
プリフェッチ機能がオフ状態に設定されている場合、データ配置が連続しているか断片化しているかにかかわらず、リードアクセスがキャッシュヒットすることはなく、実際に観測されるキャッシュヒット率CHは、基本的に0%となるためである。実際に観測されるキャッシュヒット率CHを用いると、FIの値も”0”近傍の値となるため、プリフェッチ機能をオフ状態からオン状態に変更することができなくなる。
ここで、例えば、プリフェッチ機能がオフ状態の期間中に、定期的にプリフェッチ機能をオン状態に戻して、キャッシュヒット率を確認する方法も考えられる。しかし、このような試験的に確認する方法では、キャッシュミスヒットとなった場合に、ストレージシステム10の応答性能(読出し性能)が大幅に低下する。
つまり、試験的にプリフェッチ機能をオン状態にした場合に、プリフェッチ効果が得られなかったとすると、キャッシュミスヒットとなり、改めてディスクドライブ210へのアクセスが行われる。このような二度手間が発生するため、プリフェッチに失敗した場合のストレージシステム10の応答性能は、ディスクドライブ210に最初からアクセスした場合の応答性能(最低保障性能と呼ぶ場合がある)よりも、大幅に劣る。
そこで、本実施例では、プリフェッチ機能をオフ状態にしたままで、プリフェッチ機能がオン状態であったならば得られたと見込まれるキャッシュヒット率を予測する。これにより、ストレージシステム10の応答性能を最低保障性能よりも低下させることなく、プリフェッチ機能の作動を制御することができる。
図7,図8に基づいて、キャッシュヒット率の予測方法を説明する。図7は、プリフェッチ機能をオフ状態にしたままで、キャッシュヒット率の予測値CHeを得る様子を模式的に示す説明図である。
まず、基本的なプリフェッチ機能について説明する。プリフェッチ機能がオフ状態の場合、初期状態では、キャッシュ領域130にデータは1つも記憶されていない。従って、例えば、データブロック”00”についてのリード要求がホスト20から発行された場合、キャッシュ領域130にデータブロック”00”が読み込まれた後、ホスト20にデータブロック”00”の内容が送信される。キャッシュ領域130に読み込まれたデータブロック”00”の内容は、そのままキャッシュ領域130に残される。
これに対し、プリフェッチ機能がオン状態の場合、初期状態では、キャッシュ領域130に1つもデータが記憶されていない。従って、ホスト20が、1番目のデータブロック”00”にアクセスする場合の動作は、プリフェッチ機能をオフ状態に設定している場合と同様である。しかし、これ以降の動作は、プリフェッチ機能をオフ状態にしている場合と異なる。
ストリーミング配信では順番にデータを読み出すため、データブロック”00”についてリード要求が発行されたならば、次のリード要求のアクセス先は、データブロック”00”に隣接する2番目のデータブロック”01”となる。
従って、隣接するデータブロック”00”の内容がキャッシュ領域130上に記憶されている場合、それに続くデータブロック”01”が読み込まれると予想される。同様に、データブロック”01”へのリードアクセスがあった場合、このデータブロック”01”に隣接するデータブロック”02”へのリードアクセスが予測される。そこで、コントローラ100は、データブロック”00”,”01”がキャッシュ領域130に存在する場合、次のデータブロック”02”については、ホスト20からリードアクセスされるよりも前に、キャッシュ領域130に記憶させる。即ち、データブロック”02”の内容をプリフェッチする。
このような手順を繰り返すことにより、データブロック”03”,”04”,”05”の内容が、ホスト20からのリードアクセスに先行してプリフェッチされる。なお、プリフェッチするデータブロックの数(プリフェッチ量DP)は、最大プリフェッチ量DPmaxを超えることはない。
次に、プリフェッチ機能をオフ状態にしたままで、キャッシュヒット率を予測する場合を説明する。キャッシュ領域130には、コンテンツデータの1番目のデータブロック”00”及び2番目のデータブロック”01”が既に記憶されているものとする。
ホスト20がデータブロック”01”にリードアクセスする場合(S51)、このデータブロック”01”の内容は、既にキャッシュ領域130に記憶されているため、キャッシュヒットとなる。
ホスト20が3番目のデータブロック”02”にリードアクセスした場合(S52)、プリフェッチ機能はオフ状態に設定されているので、データブロック”02”の内容は、キャッシュ領域130に記憶されていない。このため、このリードアクセスは、キャッシュミスヒットを発生させる。
しかし、キャッシュヒット率を予測する場合は、データブロック”02”に関するキャッシュミスヒットを、キャッシュヒットに分類して記録する(S53)。リード要求されたデータブロック”02”の直前のデータブロック”00”,”01”は、キャッシュ領域130に存在しており、もしも、プリフェッチ機能をオン状態に設定していたならば、データブロック”02”がプリフェッチされて、キャッシュヒットとなったはずだからである。
なお、もしも、データブロック”01”へのリードアクセスの次に、データブロック”05”へのリードアクセスが行われた場合(S54)、データブロック”05”の内容はキャッシュ領域130に記憶されていないため、キャッシュミスヒットが生じる。このキャッシュミスヒットは、そのままキャッシュミスヒットに分類される(S55)。データブロック”05”の直前のデータブロック”04”がキャッシュ領域130に記憶されておらず、たとえプリフェッチ機能をオン状態に設定していたとしても、キャッシュミスヒットとなるのを避けられないためである。
図8は、キャッシュヒット率の予測処理を示すフローチャートである。予測処理の基本的考え方は既に述べた通りである。改めて説明すると、コントローラ100は、リード要求が発行された場合(S61:YES)、要求されたデータがキャッシュ領域130に記憶されているか否かを判定する(S62)。
キャッシュミスヒットと判定された場合(S62:NO)、コントローラ100は、もしもプリフェッチ機能をオン状態に設定していたならば、キャッシュヒットになったか否かを判定する(S63)。プリフェッチ機能をオン状態に設定したならばキャッシュヒットになったであろうと判定される場合(S63:YES)、コントローラ100は、S62で検出されたキャッシュミスヒットを、キャッシュヒットとしてカウントする(S64)。そして、コントローラ100は、予測キャッシュヒット率管理テーブル1234の記憶内容を更新させる(S65)。
図9,図10に基づいて、最大プリフェッチ量DPmaxの算出方法を説明する。既に述べたように、最大プリフェッチ量DPmaxは、プリフェッチ量DPを算出するための基礎となり、データ断片化指数FIが”1”に近づくほど、プリフェッチ量DPも最大プリフェッチ量DPmaxに近づいていく。
図9は、ホスト20からのリードアクセスのタイミングと、データをプリフェッチするタイミングとの関係を模式的に示す説明図である。横軸は、時間経過を示す。論理ボリューム230からキャッシュ領域130へデータを予め記憶させるプリフェッチは、所定の動作周期1/Tpのサイクルで実行される。
つまり、プリフェッチは、所定の時間Tp毎に行われる。このプリフェッチ間隔を規定する時間Tpは、定数である。単純には、例えば、十数ミリ秒程度の適当な値を選んで、Tpとして用いてもよい。あるいは、モニタモジュール126が管理しているリードアクセスの統計情報から、リードアクセスの平均受信間隔を求め、この値を時間Tpとして使用する構成でもよい。なお、リードアクセスの平均受信間隔を用いる場合、論理ボリューム230毎に、それぞれ異なる値をTpとして設定するのが好ましい。各論理ボリューム230毎に、リードアクセスの頻度は、それぞれ相違する場合があるためである。
図9に示す例は、1つの論理ボリューム230に対する一連のシーケンシャルアクセスを模式的に示している。図9に示すように、プリフェッチ機能を作動させることにより、所定のTp時間毎に、データブロック”00”,”01”,”02”が、キャッシュ領域130に順番に記憶されていく。一回のプリフェッチ毎に、最大プリフェッチ量DPmax分のデータがキャッシュ領域130に記憶される。図9に示す例では、Tp時間毎に1ブロックのデータをキャッシュ領域130に記憶させている。従って、この場合の最大プリフェッチ量DPmaxは、1ブロックである。
データブロック”00”の記憶内容(データ)は、ホスト20からリードアクセスされるよりも前に、キャッシュ領域130に記憶されているため、キャッシュヒットとなり、プリフェッチは成功したことになる。
同様に、データブロック”01”についても、ホスト20からリードアクセスされる前に、キャッシュ領域130に記憶されているため、キャッシュヒットとなる。従って、データブロック”01”のプリフェッチも成功する。
これに対し、データブロック”02”の場合は、プリフェッチが間に合わなかったため、キャッシュミスヒットとなっている。ホスト20からのリードアクセスの間隔は、常に一定であるとは限らず、ゆらぎを生じるため、プリフェッチのタイミングがリードアクセスのタイミングに遅れる場合がある。このようなリードアクセス間隔のばらつきは、ホスト20のファイルシステムの作動状態等によって生じる。例えば、ファイルシステムが、ストレージシステム10内のプリフェッチとは別に、独自のプリフェッチを行う場合、比較的短い周期でリード要求が発行される。また、ホスト20からユーザマシン40にデータを配信する速度(ビットレート)等によって、ホスト20がストレージシステム10にアクセスするタイミングが異なる。
本実施例では、上述のように、キャッシュヒット率CHをデータ断片化指数FIの算出に使用している。従って、データの断片化以外の要因によるキャッシュヒット率の低下は、好ましくない。そこで、本実施例では、プリフェッチのタイミングがリードアクセスのタイミングに間に合うように、十分なプリフェッチ量DPを確保する。
即ち、本実施例では、プリフェッチ間隔Tp内にホスト20からリードアクセスされる最大のデータ量(バースト長)を、プリフェッチ量DPを算出するための基礎となる最大プリフェッチ量DPmaxとして使用する。これにより、時間Tp内にホスト20から要求されうる最大量DPmax分のデータを、プリフェッチすることが可能となり、キャッシュヒット率の低下を抑制することができる。
図10は、最大プリフェッチ量を設定するための処理を示すフローチャートである。この処理は、プリフェッチ量算出モジュール124を中心に実現される。この処理では、バースト長BSに応じて最大プリフェッチ量DPmaxを制御する。
ここで、バースト長BSは、上述のように、例えば、ホスト20におけるファイルシステムレベルでのプリフェッチ動作や、各ユーザマシン40に配信しているストリームのビットレート等に依存してそれぞれ異なると考えられる。通常、1つの論理ボリューム230に1つのファイルシステムが対応しているため、バースト長BSは、論理ボリューム230毎に異なる可能性が高い。そこで、本実施例では、各論理ボリューム230毎に、バースト長BSをそれぞれ算出する。従って、本実施例では、各論理ボリューム230毎に、データ断片化の度合に応じた適切なプリフェッチ量DPをそれぞれ設定し、ドライブの最低保障性能以上の応答性能を確保する。
コントローラ100は、ホスト20からのリードアクセスを検出すると、バースト長を前回確認した時点からT1時間が経過したか否かを判定する(S71)。時間T1は、バースト長確認周期であり、任意の適当な値に設定される。
前回のバースト長確認時から所定時間T1が経過していない場合(S71:NO)、コントローラ100は、仮のバースト長BStに、今回のリードアクセスで要求されたデータ長(ホストI/Oサイズ)を加算して(S72)、S71に戻る。即ち、コントローラ100は、所定時間T1が経過するまでの間、BSt=BSt+ホストI/Oサイズの演算を繰り返し、バースト長を計測する。
ここで、仮バースト長BSt,バースト長BSの初期値は、ともに0である。また、ホスト20からのリードアクセスされた時刻及び読出しを要求されたデータのサイズは、モニタモジュール126から取得することができる。
前回のバースト長確認時から所定時間T1が経過した場合(S71:YES)、コントローラ100は、前回検出されたバースト長(つまり、現在使用中のバースト長)BSよりも仮バースト長BStの方が大きいか否かを判定する(S73)。
現在のバースト長BSの方が仮バースト長BStよりも大きい場合(S73:NO)、コントローラ100は、現在のバースト長BSをそのまま継続して使用する。コントローラ100は、仮バースト長BStをリセットして(S74)、S71に戻る。そして、コントローラ100は、再び所定時間T1内にホスト20からリードアクセスされたデータのサイズを積算して、最新の仮バースト長BStを求める。
現在のバースト長BSよりも仮バースト長BStの方が大きい場合(S73:YES)、コントローラ100は、仮バースト長BStの値を新たなバースト長BSとして採用する(S75)。そして、コントローラ100は、更新されたバースト長BSと最大プリフェッチ量DPmaxとを比較する(S77)。
最大プリフェッチ量DPmaxの方がバースト長BSよりも大きい場合(S77:NO)、コントローラ100は、最大プリフェッチ量DPmaxを更新することなく、現在の設定のままでプリフェッチ処理を継続する(S78)。
これに対し、バースト長BSの方が最大プリフェッチ量DPmaxよりも大きい場合(S77:YES)、上述のように、プリフェッチに失敗する可能性があるため、コントローラ100は、最大プリフェッチ量DPmaxの値をバースト長BSの値に設定する(S79)。最新のバースト長BSに応じて最大プリフェッチ量DPmaxを更新することにより、プリフェッチの失敗を低減することができる。そして、プリフェッチ失敗によるキャッシュミスヒットを抑制して、データ断片化指数FIの信頼性低下を抑制できる。
なお、上述の方法とは異なる他の方法で、最大プリフェッチ量DPmaxを算出する構成でもよい。例えば、ストリーミング配信されるストリーム数が予め定められている場合、キャッシュ領域130のサイズをストリーム数で除算することにより、最大プリフェッチ量DPmaxを求めることもできる(DPmax=キャッシュ領域サイズ/ストリーム数)。
図11は、プリフェッチ機能の停止によって、ホスト20内で起動されるデフラグメンテーション処理を示すフローチャートである。図5と共に述べたように、論理ボリューム230内のデータ配置が断片化し、データ配置の連続性が失われると、コントローラ100は、プリフェッチ機能を自動的に停止し(S36)、警報を出力する(S37)。
ホスト20は、コントローラ100からの警報を受信すると(S81:YES)、デフラグメンテーション対象の論理ボリューム230を特定して、デフラグメンテーション実行の可否を、ホスト20の管理者に問い合わせる(S82)。
ホスト20のユーザインターフェースを介して、ホスト20の管理者は、データ断片化の発生している論理ボリューム230を確認し、デフラグメンテーションを実行させるか否かを判断することができる。
ホスト20の管理者が、ホスト20のユーザインターフェースを介して、デフラグメンテーション実行を指示すると(S83:YES)、ホスト20は、デフラグメンテーション対象の論理ボリューム230についてデフラグメンテーションを実行する(S84)。
なお、例えば、承認を必要とする確認モードと承認不要の自動モードとを予め用意しておき、自動モードが予め設定されている場合には、管理者の承認を待たずにデフラグメンテーションを開始する構成でもよい。
また、コントローラ100が、例えば、NAS(Network Attached Storage)のようなファイルシステムを備えている場合、データの再配置処理をコントローラ100が行うこともできる。
さらに、ホスト20上で動作するストリーミング配信処理とデフラグメンテーション処理とを連動させることにより、現在アクセス中のファイル等のように、特定のファイルデータについてのみデフラグメンテーション処理を行わせることもできる。
本実施例は、上述のように構成されるので、以下の効果を奏する。本実施例では、ストリーミング配信が行われている期間内に、プリフェッチによる効果を期待できるか否かを判定し、プリフェッチによる効果を期待できる場合にのみプリフェッチ機能をオン状態に設定し、かつ、データ断片化の度合(FI)に応じてプリフェッチ量DPを適切に制御する構成とした。従って、データ配置が断片化している場合でも、ストレージシステム10の応答性能がディスクドライブ210の備える応答性能以下になるのを防止して、信頼性を高めることができる。
この点について、図12を参照して説明する。図12(a)は、本実施例によるプリフェッチ機能の制御を行った場合のストレージシステム10の応答性能を示す。図12(b)は、本実施例によるプリフェッチ機能の制御を行わない場合のストレージシステム10の応答性能を示す。図12の各特性図の横軸は、時間軸を示し、縦軸はストレージシステム10の応答性能を示す。
既に述べたように、ホスト20からのリードアクセスに先行してデータをプリフェッチし、そのプリフェッチが成功した場合には、ストレージシステム10の応答性能を高めることができる。これに対し、プリフェッチしたデータがキャッシュミスヒットとなった場合、つまり、プリフェッチに失敗した場合、ストレージシステム10の応答性能は、ディスクドライブ210の有する応答性能以下に低下する。
図12中のPPは、プリフェッチに成功した場合の応答性能を示す。プリフェッチ成功時の応答性能PPは、ストレージシステム10の最大応答性能となる。図12中のPDは、ディスクドライブ210の応答性能を示す。つまり、PDは、ホスト20からリードアクセスされた場合に、ディスクドライブ210からデータを読み出すときの応答性能である。プリフェッチ成功時における応答性能PPは、ディスクドライブ210の応答性能PDよりも高い(PP>PD)。
図12(a)に示すように、期間T11においては、データがシーケンシャルに配置されている。この場合、プリフェッチが成功する確率は高くなるため、ストレージシステム10の応答性能はPPに近づく。従って、ストレージシステム10は、ディスクドライブ210の応答性能PDよりも、ΔP1だけ高い応答性能を発揮する(ΔP1=PP−PD)。
しかし、論理ボリューム230に記憶されるコンテンツデータは、即ち、ディスクドライブ210に記憶されるコンテンツデータは、必要に応じて編集等されるため、データ配置の連続性は、次第に失われていく。例えば、ホスト20の管理者は、コンテンツデータに埋め込まれる広告情報を入れ替えたり、ある場面のデータを削除したり、新たな場面のデータを追加したりすることがある。
このような編集作業が行われることにより、期間T12では、データ配置の断片化が進行していく。ある時間ΔTが経過したとき、ストレージシステム10の応答性能は、最大値のPPからPDまで低下する。しかし、本実施例では、キャッシュヒット率に基づいてデータ配置の断片化の程度を検出し、プリフェッチ機能が有効に働かないと判定された場合は、プリフェッチ機能を自動的に停止させる。従って、ストレージシステム10の応答性能が、ディスクドライブ210の応答性能PDを下回ることはない。つまり、本実施例のストレージシステム10は、ディスクドライブ210の応答性能PDを、ストレージシステムが最低限保証する応答性能として確保する。従って、ストレージシステム10を利用するホスト20(管理者)は、常時、ディスクドライブ210の応答性能PD以上の応答性能を、ストレージシステム10に期待することができる。
また、本実施例では、データ配置の断片化の程度(FI)に応じて、プリフェッチ量DPを適切に制御する。即ち、データ配置の断片化が進むほど、プリフェッチ量DPを小さくすることにより、キャッシュミスヒットの生じる可能性を低減する。従って、データ配置の断片化が進行している期間T12において、ストレージシステム10の応答性能が最大値PPから最低保証値PDまで低下していく角度θ1を、比較的小さくすることができる。これにより、ストレージシステム10の応答性能がPPからPDに低下するまでの時間ΔTを比較的長くすることができる。この結果、ストレージシステム10の平均応答性能を高くすることができ、信頼性や使い勝手が向上する。
そして、プリフェッチ機能がオフ状態に変更された場合、コントローラ100からホスト20に向けて警報が出力される。この警報を契機として、データ再配置処理(デフラグメンテーション処理)が行われると、データ配置の連続性が回復する(T13)。
以上が本実施例によるストレージシステム10の応答性能である。これに対し、図12(b)に示すように、プリフェッチ機能を制御しない場合、ストレージシステムの応答性能は、データ配置の断片化が進行するに従って、最大値PPから低下していき、やがて、ディスクドライブの応答性能PDを下回ってしまう。
しかも、プリフェッチ量を固定にしたままでプリフェッチを継続するため、プリフェッチ失敗率は、データ配置の断片化が進むほど大きくなる。従って、ストレージシステムの応答性能は、比較的大きな角度θ2で、急激に低下する(θ2>θ1)。
このように、本実施例では、適切なプリフェッチ制御を行うため、ストレージシステム10の応答性能がディスクドライブ210の応答性能PDを下回るのを防止でき、信頼正当を向上させることができる。
本実施例では、キャッシュヒット率に基づいて、データ配置の断片化の度合を間接的に推定する。従って、論理ボリューム230内の実際のデータ配置を調査することなく、データ配置の断片化の度合を間接的に測定可能であり、ストレージシステム10に大きな負荷を与えることなく、プリフェッチ制御を行うことができる。
本実施例では、プリフェッチ機能をオン状態からオフ状態に変更した場合に、警報を出力させる。従って、ホスト20の管理者は、この警報に基づいて、断片化の有無等を確認することができる。また、この警報によって自動的にデータ再配置処理を起動させることもできる。従って、使い勝手が向上する。
図13,図14に基づいて第2実施例を説明する。本実施例を含む以下の実施例は、第1実施例の変形例に該当する。本実施例では、プリフェッチ量DPの値を調整せずに、プリフェッチ機能だけをオンオフ制御する。
図13は、本実施例によるプリフェッチ動作制御処理を示すフローチャートである。このフローチャートは、図5に示すフローチャートに含まれるS31〜S41のうち、S33以外の全てのステップを備えている。
つまり、本実施例のプリフェッチ動作制御処理では、データ断片化指数FIに基づいてプリフェッチ量DPを更新していない。プリフェッチ量DPを固定したままで、プリフェッチ機能のオンオフだけを制御する。
図14は、本実施例によるストレージシステム10の応答性能の特性を示す。図14と図12(a)とを比較するとわかるように、本実施例では、プリフェッチ量DPを調節しないため、ストレージシステム10の応答性能が最大値PPから最低保障値PDに低下する角度θ3は、図12(a)中のθ1よりも大きくなる(θ3>θ1)。即ち、本実施例のストレージシステム10は、データ配置の断片化が進行するにつれて、応答性能がPDまで急激に低下しうる。しかし、ストレージシステム10の応答性能は、最低保障値であるPDを下回ることはない。
このように構成される本実施例も、プリフェッチ量の更新に関する効果を除いて、第1実施例と同様の効果を奏する。これに加えて、本実施例では、プリフェッチ量を固定するため、第1実施例よりも制御内容を簡素化することができる。
図15に基づいて第3実施例を説明する。本実施例では、第1実施例で述べたプリフェッチ動作制御を行うために必要な統計情報が蓄積されるまでの間は、プリフェッチ動作制御を開始しない。
図15は、プリフェッチ動作制御を起動させる処理を示すフローチャートである。コントローラ100は、モニタモジュール126によって、プリフェッチ動作の制御(プリフェッチ量の設定、プリフェッチ機能のオンオフ)を行うために必要な統計情報が収集されたか否かを判定する(S91)。統計情報としては、キャッシュヒット率、リードアクセス時刻、リードアクセスされたデータのサイズを挙げることができる。
プリフェッチ動作制御の開始に十分な統計情報が蓄積された場合(S91:YES)、コントローラ100は、プリフェッチ動作制御の開始についてユーザ(ホストの管理者)の承認が得られているか否かを判定する(S92)。
事前にまたは事後に、承認が得られた場合(S92:YES)、コントローラ100は、上述したプリフェッチ動作の制御を開始する。
このように構成される本実施例も上述した第1実施例と同様の効果を奏する。これに加えて、本実施例では、プリフェッチ動作の制御に必要な統計情報が蓄積されるまで、プリフェッチ動作を制御しないため、より高精度にプリフェッチ動作を制御することができ、ストレージシステム10の信頼性を向上させることができる。
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
本発明の実施形態の全体概念を示す説明図である。 ストレージシステムの構成を示すブロック図である。 リード要求の処理を示すフローチャートである。 プリフェッチ処理を示すフローチャートである。 プリフェッチ動作を制御する処理を示すフローチャートである。 データ配置の断片化の度合を検出する様子を模式的に示す説明図である。 プリフェッチ機能がオフ状態に設定されている期間内に、キャッシュヒット率を予測する様子を模式的に示す説明図である。 キャッシュヒット率を予測する処理を示すフローチャートである。 ホストからのリード要求(リードアクセス)のタイミングとプリフェッチのタイミングとの関係を模式的に示す説明図である。 最大プリフェッチ量を算出するための処理を示すフローチャートである。 警報を契機としてデータを再配置させる処理を示すフローチャートである。 (a)は、本実施例によるプリフェッチ動作制御を行った場合のストレージシステムの応答性能を、(b)は、本実施例によるプリフェッチ動作制御を行わない場合のストレージシステムの応答性能を、それぞれ示す特性図である。 第2実施例に係るストレージシステムにより実行されるプリフェッチ動作制御処理を示すフローチャートである。 ストレージシステムの応答性能を示す特性図である。 第3実施例に係るストレージシステムにより実行されるプリフェッチ動作制御を起動させるための処理を示すフローチャートである。
符号の説明
1…記憶制御装置、1A…アクセス要求処理部、1B…キャッシュメモリ、1C…プリフェッチ部、1D…断片化検出部、1E…プリフェッチ量算出部、1F…プリフェッチ動作制御部、2…記憶部、3…ホスト、3A…データ配信部、3B…再配置処理部、4…ユーザマシン、5,6…通信経路、7…通信ネットワーク、10…ストレージシステム、20…ホスト、30…管理端末、40…ユーザマシン、100…コントローラ、110…プロセッサ、120…メモリ、121…プリフェッチ処理モジュール、122…プリフェッチ動作制御モジュール、123…データ断片化指数算出モジュール、124…プリフェッチ量算出モジュール、125…警報モジュール、126…モニタモジュール、127…管理インターフェースモジュール、128…ホストI/O処理モジュール、129…ドライブI/O処理モジュール、130…キャッシュ領域、140…ホストインターフェース、150…ドライブインターフェース、160…管理用インターフェース、170…バス、200…記憶部、210…ディスクドライブ、220…RAIDグループ、230…論理ボリューム

Claims (15)

  1. シーケンシャルな読出しが期待されるデータを記憶する書換可能な記憶デバイスを少なくとも1つ以上備えた記憶装置と、
    前記記憶装置から読み出される前記データを記憶するためのキャッシュメモリと、
    上位装置からのシーケンシャルなリードアクセスを受け付けるよりも前に、前記記憶装置に記憶された前記データを予め読み出して前記キャッシュメモリに記憶させるプリフェッチ部と、
    前記記憶装置に記憶されている前記データの配置の連続性を判定するための連続性判定部と、
    前記連続性判定部による判定結果と前記上位装置からのリードアクセスの状況とに基づいて、プリフェッチ量を算出するプリフェッチ量算出部と、
    前記プリフェッチ量算出部により算出された前記プリフェッチ量を前記プリフェッチ部に設定し、かつ、前記連続性判定部による判定結果に基づいて前記プリフェッチ部の動作を制御するためのプリフェッチ動作制御部と、
    を備えたストレージシステム。
  2. 前記連続性判定部は、前記リードアクセスのキャッシュヒット率に基づいて、前記記憶部に記憶されている前記データの配置の連続性を数値化して出力する請求項1に記載のストレージシステム。
  3. 前記プリフェッチ動作制御部は、前記連続性判定部による前記判定結果が予め設定された所定値以下の場合に、前記プリフェッチ部によるプリフェッチ動作を停止させる請求項1に記載のストレージシステム。
  4. 前記プリフェッチ動作制御部は、前記連続性判定部による前記判定結果が予め設定された他の所定値以上の場合に、前記プリフェッチ部によるプリフェッチ動作を作動させる請求項1に記載のストレージシステム。
  5. 前記プリフェッチ動作制御部は、前記連続性判定部による前記判定結果が予め設定された所定値以下の場合に、前記プリフェッチ部によるプリフェッチ動作を停止させ、前記判定結果が予め設定された他の所定値以上の場合に、前記プリフェッチ動作を再開させる請求項1に記載のストレージシステム。
  6. 前記連続性判定部は、前記リードアクセスのキャッシュヒット率に基づいて、前記記憶部に記憶されている前記データの配置の連続性を数値化して出力するものであり、かつ、前記プリフェッチ動作が停止されている場合は、前記プリフェッチ動作の停止期間における前記キャッシュヒット率を予測することにより、前記プリフェッチ動作の停止期間における前記データの配置の連続性を判定する請求項3または請求項5のいずれかに記載のストレージシステム。
  7. 前記プリフェッチ量算出部は、前記プリフェッチ部によるプリフェッチ動作の一周期内に前記上位装置から読出しを要求される最大データ量に基づいて、前記プリフェッチ量を算出する請求項1に記載のストレージシステム。
  8. 前記プリフェッチ量算出部は、前記プリフェッチ部によるプリフェッチ動作の一周期内に前記上位装置から読出しを要求される最大データ量を最大プリフェッチ量とし、この最大プリフェッチ量に、数値化される前記連続性判定部による判定結果を乗算することにより、前記プリフェッチ量を算出する請求項1に記載のストレージシステム。
  9. 前記プリフェッチ動作制御部は、前記プリフェッチ部によるプリフェッチ動作を停止させる場合、警報を出力させる請求項1に記載のストレージシステム。
  10. 前記プリフェッチ動作制御部は、前記プリフェッチ部によるプリフェッチ動作を停止させる場合に警報を出力し、前記記憶装置に記憶されている前記データを連続的に配置させるための再配置処理を起動させる請求項1に記載のストレージシステム。
  11. 前記プリフェッチ部と、前記連続性判定部と、前記プリフェッチ量算出部及び前記プリフェッチ動作制御部は、前記記憶デバイスに設けられる論理ボリューム毎にそれぞれ動作する請求項1に記載のストレージシステム。
  12. 前記プリフェッチ動作制御部は、前記プリフェッチ量算出部により算出される前記プリフェッチ量を前記プリフェッチ部に設定することによりプリフェッチ動作を行わせる第1モードと、予め設定された初期値に基づいて前記プリフェッチ部にプリフェッチ動作を行わせる第2モードとを備えている請求項1に記載のストレージシステム。
  13. 前記プリフェッチ動作制御部は、前記プリフェッチ量算出部及び前記連続性判定部が作動可能となるまでの間は、前記第2モードで前記プリフェッチ部を作動させ、前記プリフェッチ量算出部及び前記連続性判定部が作動可能になった場合に、前記第2モードから前記第1モードに移行させる請求項12に記載のストレージシステム。
  14. 上位装置からのシーケンシャルなリードアクセスに応じて、データを前記上位装置に送信するストレージシステムを制御するための制御方法であって、
    上位装置からのシーケンシャルなリードアクセスを受け付けるよりも前に、記憶装置に記憶されているデータを所定周期で予め読み出して、キャッシュメモリに記憶させるプリフェッチ動作を実行するプリフェッチステップと、
    前記上位装置からのリードアクセスのキャッシュヒット率に基づいて、前記記憶装置に記憶されている前記データの配置の連続性を判定する連続性判定ステップと、
    前記連続性判定ステップによる判定結果と、前記所定周期内における前記リードアクセスで要求される最大データ量とに基づいて、前記プリフェッチ動作で使用されるプリフェッチ量を算出するプリフェッチ量算出ステップと、
    前記連続性判定ステップによる判定結果に基づいて、前記プリフェッチ動作を作動または停止させるプリフェッチ動作制御ステップと、
    を実行させるストレージシステムの制御方法。
  15. シーケンシャルな読出しが期待されるデータを記憶する書換可能な記憶デバイスを少なくとも1つ以上備えた記憶装置と、この記憶装置にシーケンシャルなリードアクセスを発行する上位装置とにそれぞれ接続される記憶制御装置であって、
    前記記憶装置から読み出される前記データを記憶するためのキャッシュメモリと、
    上位装置からのシーケンシャルなリードアクセスを受け付けるよりも前に、前記記憶装置に記憶された前記データを予め読み出して前記キャッシュメモリに記憶させるプリフェッチ部と、
    前記記憶装置に記憶されている前記データの配置の連続性を判定するための連続性判定部と、
    前記連続性判定部による判定結果と前記上位装置からのリードアクセスの状況とに基づいて、プリフェッチ量を算出するプリフェッチ量算出部と、
    前記プリフェッチ量算出部により算出された前記プリフェッチ量を前記プリフェッチ部に設定し、かつ、前記連続性判定部による判定結果に基づいて前記プリフェッチ部の動作を制御するためのプリフェッチ動作制御部と、
    を備えた記憶制御装置。
JP2006070224A 2006-03-15 2006-03-15 ストレージシステム及びストレージシステムの制御方法 Expired - Fee Related JP4915774B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2006070224A JP4915774B2 (ja) 2006-03-15 2006-03-15 ストレージシステム及びストレージシステムの制御方法
US11/435,251 US20070220208A1 (en) 2006-03-15 2006-05-12 Storage system and storage system control method
DE602006008888T DE602006008888D1 (de) 2006-03-15 2006-11-10 Speichersystem und Verfahren zur Steuerung des Speichersystems
EP06255792A EP1835409B1 (en) 2006-03-15 2006-11-10 Storage system and storage system control method
US12/265,094 US7774550B2 (en) 2006-03-15 2008-11-05 Storage system and storage system control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006070224A JP4915774B2 (ja) 2006-03-15 2006-03-15 ストレージシステム及びストレージシステムの制御方法

Publications (2)

Publication Number Publication Date
JP2007249457A true JP2007249457A (ja) 2007-09-27
JP4915774B2 JP4915774B2 (ja) 2012-04-11

Family

ID=38166790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006070224A Expired - Fee Related JP4915774B2 (ja) 2006-03-15 2006-03-15 ストレージシステム及びストレージシステムの制御方法

Country Status (4)

Country Link
US (2) US20070220208A1 (ja)
EP (1) EP1835409B1 (ja)
JP (1) JP4915774B2 (ja)
DE (1) DE602006008888D1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012185771A (ja) * 2011-03-08 2012-09-27 Nec Corp 情報処理装置、デフラグメンテーション方法、およびデフラグメンテーションプログラム
JP2014038511A (ja) * 2012-08-17 2014-02-27 Fujitsu Ltd 情報処理装置、情報処理方法、及び情報処理プログラム
JP2015513741A (ja) * 2012-02-29 2015-05-14 ネットアップ,インコーポレイテッド 重複排除のオペレーションを実行するためのフラグメンテーションのコントロール
US9684459B2 (en) 2014-11-17 2017-06-20 Kabushiki Kaisha Toshiba Memory system
US9977624B2 (en) 2015-03-31 2018-05-22 Fujitsu Limited Storage control apparatus and storage control method
US10324631B2 (en) 2016-11-11 2019-06-18 Fujitsu Limited Control apparatus, storage apparatus and method

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007241927A (ja) * 2006-03-13 2007-09-20 Toshiba Corp データ記憶装置及び方法
JP2007334564A (ja) * 2006-06-14 2007-12-27 Matsushita Electric Ind Co Ltd ユニファイドメモリシステム
US8990396B2 (en) * 2006-07-07 2015-03-24 Avaya Communication Israel Ltd. Cache memory storage
US7809883B1 (en) * 2007-10-16 2010-10-05 Netapp, Inc. Cached reads for a storage system
US8375190B2 (en) * 2007-12-11 2013-02-12 Microsoft Corporation Dynamtic storage hierarachy management
US8255635B2 (en) 2008-02-01 2012-08-28 International Business Machines Corporation Claiming coherency ownership of a partial cache line of data
US8250307B2 (en) * 2008-02-01 2012-08-21 International Business Machines Corporation Sourcing differing amounts of prefetch data in response to data prefetch requests
US8117401B2 (en) * 2008-02-01 2012-02-14 International Business Machines Corporation Interconnect operation indicating acceptability of partial data delivery
US8266381B2 (en) 2008-02-01 2012-09-11 International Business Machines Corporation Varying an amount of data retrieved from memory based upon an instruction hint
US8140771B2 (en) * 2008-02-01 2012-03-20 International Business Machines Corporation Partial cache line storage-modifying operation based upon a hint
US8108619B2 (en) 2008-02-01 2012-01-31 International Business Machines Corporation Cache management for partial cache line operations
US8117390B2 (en) 2009-04-15 2012-02-14 International Business Machines Corporation Updating partial cache lines in a data processing system
US8140759B2 (en) 2009-04-16 2012-03-20 International Business Machines Corporation Specifying an access hint for prefetching partial cache block data in a cache hierarchy
US20120278560A1 (en) * 2009-10-04 2012-11-01 Infinidat Ltd. Pre-fetching in a storage system that maintains a mapping tree
US9218264B2 (en) * 2011-09-20 2015-12-22 Cloudbyte, Inc. Techniques for translating policies into storage controller requirements
US8839429B2 (en) 2011-11-07 2014-09-16 Qualcomm Incorporated Methods, devices, and systems for detecting return-oriented programming exploits
US9110595B2 (en) 2012-02-28 2015-08-18 AVG Netherlands B.V. Systems and methods for enhancing performance of software applications
KR102074329B1 (ko) 2013-09-06 2020-02-06 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 처리 방법
US10013344B2 (en) * 2014-01-14 2018-07-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Enhanced SSD caching
US10776317B1 (en) * 2015-03-31 2020-09-15 EMC IP Holding Company LLC Metadata analytics for online fragmentation detection on Unix file systems and common block file systems
US10482019B2 (en) 2016-02-24 2019-11-19 Hitachi, Ltd. Storage apparatus and control method thereof
US10496448B2 (en) 2017-04-01 2019-12-03 Intel Corporation De-centralized load-balancing at processors
US10474578B2 (en) * 2017-08-30 2019-11-12 Oracle International Corporation Utilization-based throttling of hardware prefetchers
US11550723B2 (en) * 2018-08-27 2023-01-10 Qualcomm Incorporated Method, apparatus, and system for memory bandwidth aware data prefetching
US11520703B2 (en) * 2019-01-31 2022-12-06 EMC IP Holding Company LLC Adaptive look-ahead configuration for prefetching data in input/output operations
CN109992209B (zh) * 2019-03-29 2023-02-03 新华三技术有限公司成都分公司 数据处理方法、装置及分布式存储系统
US11182321B2 (en) 2019-11-01 2021-11-23 EMC IP Holding Company LLC Sequentiality characterization of input/output workloads
US11294808B2 (en) 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
US20210390053A1 (en) * 2020-06-15 2021-12-16 Micron Technology, Inc. Host-Assisted Memory-Side Prefetcher
US11422934B2 (en) 2020-07-14 2022-08-23 Micron Technology, Inc. Adaptive address tracking
US11409657B2 (en) 2020-07-14 2022-08-09 Micron Technology, Inc. Adaptive address tracking
KR20220117747A (ko) * 2021-02-17 2022-08-24 삼성전자주식회사 데이터 프리페치 제어 기능을 갖는 스토리지 컨트롤러, 스토리지 컨트롤러의 동작 방법, 및 스토리지 장치의 동작 방법
US11656986B2 (en) * 2021-08-20 2023-05-23 Google Llc Distributed generic cacheability analysis

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6373351A (ja) * 1986-09-17 1988-04-02 Hitachi Ltd 先読み・まとめ書きスケジユ−リング方法
JPH0218645A (ja) * 1988-07-07 1990-01-22 Ricoh Co Ltd メモリ管理方式
JPH10289063A (ja) * 1997-04-15 1998-10-27 Hitachi Ltd 情報処理装置および情報処理装置の制御方法
JP2000250809A (ja) * 1999-02-25 2000-09-14 Nec Corp キャッシュメモリ装置
US20050154825A1 (en) * 2004-01-08 2005-07-14 Fair Robert L. Adaptive file readahead based on multiple factors
WO2005114427A2 (en) * 2004-05-14 2005-12-01 Micron Technology, Inc. Memory hub and method for memory sequencing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119244A (ja) 1992-04-20 1994-04-28 Hitachi Ltd ディスク制御装置およびキャッシュ制御方法
US5452440A (en) * 1993-07-16 1995-09-19 Zitel Corporation Method and structure for evaluating and enhancing the performance of cache memory systems
JPH08137754A (ja) 1994-11-10 1996-05-31 Fuji Xerox Co Ltd ディスクキャッシュ装置
MXPA01012371A (es) * 2001-11-30 2003-06-05 Fernando Mejias Butron Manuel Metodo para optimizar el desempe°o de una computadora y medio principal de almacenamiento no volatil optimizado con secciones de proposito especifico.
EP1320037A1 (en) * 2001-12-11 2003-06-18 Thomson Licensing S.A. Storage device
JP2003345519A (ja) 2002-05-23 2003-12-05 Nec Corp ディスクアレイ装置及びディスクアレイ制御方法
US7120759B2 (en) * 2003-08-29 2006-10-10 International Business Machines Corporation Storage system and method for prestaging data in a cache for improved performance
JP4622397B2 (ja) 2004-09-06 2011-02-02 住友ベークライト株式会社 カレンダー成形用ポリ乳酸系樹脂組成物およびシート

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6373351A (ja) * 1986-09-17 1988-04-02 Hitachi Ltd 先読み・まとめ書きスケジユ−リング方法
JPH0218645A (ja) * 1988-07-07 1990-01-22 Ricoh Co Ltd メモリ管理方式
JPH10289063A (ja) * 1997-04-15 1998-10-27 Hitachi Ltd 情報処理装置および情報処理装置の制御方法
JP2000250809A (ja) * 1999-02-25 2000-09-14 Nec Corp キャッシュメモリ装置
US20050154825A1 (en) * 2004-01-08 2005-07-14 Fair Robert L. Adaptive file readahead based on multiple factors
WO2005114427A2 (en) * 2004-05-14 2005-12-01 Micron Technology, Inc. Memory hub and method for memory sequencing

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012185771A (ja) * 2011-03-08 2012-09-27 Nec Corp 情報処理装置、デフラグメンテーション方法、およびデフラグメンテーションプログラム
JP2015513741A (ja) * 2012-02-29 2015-05-14 ネットアップ,インコーポレイテッド 重複排除のオペレーションを実行するためのフラグメンテーションのコントロール
JP2014038511A (ja) * 2012-08-17 2014-02-27 Fujitsu Ltd 情報処理装置、情報処理方法、及び情報処理プログラム
US9330008B2 (en) 2012-08-17 2016-05-03 Fujitsu Limited Information processing device for detecting sequential accesses and prefetching
US9684459B2 (en) 2014-11-17 2017-06-20 Kabushiki Kaisha Toshiba Memory system
US9977624B2 (en) 2015-03-31 2018-05-22 Fujitsu Limited Storage control apparatus and storage control method
US10324631B2 (en) 2016-11-11 2019-06-18 Fujitsu Limited Control apparatus, storage apparatus and method

Also Published As

Publication number Publication date
US20090063778A1 (en) 2009-03-05
EP1835409A3 (en) 2007-12-19
EP1835409B1 (en) 2009-09-02
US20070220208A1 (en) 2007-09-20
EP1835409A2 (en) 2007-09-19
US7774550B2 (en) 2010-08-10
DE602006008888D1 (de) 2009-10-15
JP4915774B2 (ja) 2012-04-11

Similar Documents

Publication Publication Date Title
JP4915774B2 (ja) ストレージシステム及びストレージシステムの制御方法
US6381677B1 (en) Method and system for staging data into cache
US8874854B2 (en) Method for selectively enabling and disabling read caching in a storage subsystem
US8590001B2 (en) Network storage system with data prefetch and method of operation thereof
JP5958020B2 (ja) ストレージシステム
US8281076B2 (en) Storage system for controlling disk cache
US8458125B1 (en) Dynamic creation of replicas of streaming data from a storage device without added load
US9213488B2 (en) Adaptive record caching for solid state disks
US9471240B2 (en) Performing read and write operations with respect to at least one solid state disk and at least one non-solid state disk
US8578089B2 (en) Storage device cache
US20120089782A1 (en) Method for managing and tuning data movement between caches in a multi-level storage controller cache
JP2014038511A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2007293442A (ja) ストレージシステム及びその制御方法
JP2008084270A (ja) データ比較機能を有するストレージシステム
US7640381B1 (en) Input/output decoupling system method having a cache for exchanging data between non-volatile storage and plurality of clients having asynchronous transfers
JP4508608B2 (ja) 統合キャッシュを備えた記憶装置アダプタ
KR20150025274A (ko) 하이브리드 캐시 기반의 메모리 시스템에서 캐시를 관리하는 장치 및 방법과, 그 메모리 시스템
JP2007058637A (ja) ストレージシステム、管理計算機及びデータ移動方法
JP2014059850A (ja) ストレージ装置、内部処理制御方法および内部処理制御プログラム
KR20080104998A (ko) 저장 장치에 의한 내부 작동의 관리
WO2012157029A1 (en) Storage control apparatus and management method for semiconductor-type storage device
JP2015184883A (ja) 計算機システム
JP2004103004A (ja) 適応性を具えた指令とデータアクセス方法と構造
JP6256133B2 (ja) ストレージ装置,キャッシュ制御方法及びキャッシュ制御プログラム
JP2011044056A (ja) ストレージシステム、キャッシュ制御装置、キャッシュ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110616

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120118

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees