JP6079347B2 - 制御装置、ストレージシステム、及び制御プログラム - Google Patents

制御装置、ストレージシステム、及び制御プログラム Download PDF

Info

Publication number
JP6079347B2
JP6079347B2 JP2013058575A JP2013058575A JP6079347B2 JP 6079347 B2 JP6079347 B2 JP 6079347B2 JP 2013058575 A JP2013058575 A JP 2013058575A JP 2013058575 A JP2013058575 A JP 2013058575A JP 6079347 B2 JP6079347 B2 JP 6079347B2
Authority
JP
Japan
Prior art keywords
unit
control device
prefetch
read
storage area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013058575A
Other languages
English (en)
Other versions
JP2014182755A (ja
Inventor
岳志 渡辺
岳志 渡辺
和彦 池内
和彦 池内
親志 前田
親志 前田
一宏 浦田
一宏 浦田
由嘉莉 土山
由嘉莉 土山
典秀 久保田
典秀 久保田
小林 賢次
賢次 小林
良太 塚原
良太 塚原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2013058575A priority Critical patent/JP6079347B2/ja
Priority to US14/196,290 priority patent/US9529721B2/en
Priority to EP14158050.6A priority patent/EP2782002A2/en
Publication of JP2014182755A publication Critical patent/JP2014182755A/ja
Application granted granted Critical
Publication of JP6079347B2 publication Critical patent/JP6079347B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/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)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、ストレージシステムの制御に関する。
ストレージシステムにおいては、物理的な記憶装置を直接計算機に提供するのではなく、物理的な記憶装置を組み合わせた論理的な記憶領域を仮想的に提供する技術がある。具体的なストレージシステムの仮想化機能としては、システム内の複数の物理記憶装置を組み合わせて冗長化及び高速化を実現するRAID(Redundant Array of Independent Disks)機能がある。
また、複数の物理記憶装置を所定のRAIDレベルで一つにまとめたものをRAIDグループと呼び、RAIDグループを複数組み合わせて、論理的な記憶領域を仮想的に提供し、ストレージシステムの記憶容量の拡張性の向上が図られている。このようなストレージシステムにおいて、論理ボリュームが複数のRAIDグループに分散配置されるワイドストライピング(Wide Striping)機能が知られている。このワイドストライピング機能により、入出力(I/O)負荷を各RAIDにグループに分散することで、ランダムI/Oの性能を向上させることができる。
ワイドストライピング機能を実装したストレージシステムにおいて、複数のRAIDグループのそれぞれを制御する担当制御モジュールを別々にすることで、RAIDグループへのアクセスパスやキャッシュメモリ等も分散できるため、I/O性能の向上が見込める。
しかしながら、独立した制御モジュール毎にワイドストライピング化された論理ボリューム(以下、WSVと記す)に対するI/Oを制御するため、論理ボリューム全体としての制御を行うことは難しい。特に、論理ボリュームをシーケンシャルにリードする際、複数の異なる制御モジュールを介してアクセスが行われるため、複数のRAIDグループにまたがってWSVを先読みする処理を行なうことができず、リードのI/Oの性能を向上させることが難しい。
一方、ホスト装置に対する接続ポートが複数パスあるディスクアレイ装置において、以下の機能を持つことにより、I/Oを複数ポートに分割して要求されてもスループットの向上を図ることができる技術がある。この装置が持つ機能とはすなわち、アクセスするデータが自系キャッシュメモリに保管されているかどうかを検索する自系キャシュサーチ機能と、他系キャッシュメモリに保管されているかどうかをデータパスを介して検索する他系キャシュサーチ機能である。
特開2008−27316号公報 特開2001−125753号公報 特開2007−241927号公報
しかしながら、このような自系および他系のキャッシュメモリを相互にアクセスする手法を利用した場合、制御モジュール間通信パスの帯域を消費し、制御モジュールの性能が低下する虞がある。
そこで、1つの側面では、本発明は、ストレージシステムへのリード要求があった場合における制御装置間の通信負荷を軽減させる技術を提供する。
一態様の第1の制御装置は、第1の判定部、及び第1の通知部を含む。第1の判定部は、読み出し処理が自制御装置配下の単位記憶領域に格納された情報を論理アドレス順に読み出すシーケンシャル読み出し処理であり、シーケンシャル読み出し処理の読み出し対象領域が単位記憶領域における最終アドレスを含むか否かを判定する。第1の通知部は、第1の判定部により判定された最終アドレスを含むシーケンシャル読み出し処理に関する制御情報を他の制御装置に通知する。
一態様の第2の制御装置は、第2の判定部、及びプリフェッチ部を含む。第2の判定部は、他の制御装置から通知された制御情報に基づいて、自制御装置配下の単位記憶領域の読み出し処理と通知元の制御装置の読み出し処理とがシーケンシャル読み出し処理であるかを判定する。プリフェッチ部は、第2の判定部により判定されたシーケンシャル読み出し処理に関わる自制御装置配下の単位記憶領域の情報を予め読み出してキャッシュメモリに記憶させるプリフェッチを行う。
本実施形態に係る情報処理装置によれば、ストレージシステムへのリード要求があった場合における制御装置間の通信負荷を軽減させることができる。
ストレージシステムの機能ブロック図の一例を示す。 第1の実施形態に係るストレージ装置のハードウェア構成の一例を示す ワイドストライピングを説明するための図である。 第1の実施形態に係るストレージ装置のCMの構成を示す図である。 ワイドストライピングを実行しているストレージ装置の読み込み要求受信時におけるステージング開始までの動作を説明するための図である。 分割した読み込み要求コマンドのデータ構造の一例である。 ワイドストライピングを実行しているストレージ装置に対する読み込み要求発行時のステージング開始からホストに応答するまでの動作を説明するための図である。 検出テーブルの一例を示す。 読み込み対象領域がWSVユニットバウンダリを含む場合の検出回数の引継ぎを説明するための図である。 CMのシーケンシャル性の検出およびプリフェッチステージングの動作フローを示す。 検出回数通知を受信したCMの動作フローを示す。 プリフェッチ対象領域が自CM以外のCMが管理するSLUに及ぶ場合の一例を示す。 プリフェッチステージングにおいて、プリフェッチする領域が自CM以外のCMが管理するSLUに及ぶ場合のストレージ装置の動作フローを示す。 プリフェッチ対象領域通知を受信した際のストレージ装置の動作フローを示す。 第2の実施形態に係るストレージ装置のハードウェア構成の一例を示す。 第3の実施形態に係るストレージ装置のハードウェア構成の一例を示す。
図1は、ストレージシステムの機能ブロック図の一例を示す。ストレージシステム12は、第1の制御装置1、第2の制御装置8、記憶装置11を含む。
第1の制御装置1は、第1の判定部2、第1の通知部3、計測部4、記憶部5、第3の判定部6、及び第2の通知部7を含む。
第1の判定部2は、読み出し処理が自制御装置配下の単位記憶領域に格納された情報を論理アドレス順に読み出すシーケンシャル読み出し処理であり、シーケンシャル読み出し処理の読み出し対象領域が単位記憶領域における最終アドレスを含むか否かを判定する。
第1の通知部3は、第1の判定部により判定された最終アドレスを含むシーケンシャル読み出し処理に関する制御情報を他の制御装置に通知する。また、第1の通知部は、読み出し処理の読み出し対象領域が自制御装置配下の単位記憶領域における最終アドレスを含む場合、計測された回数を他の制御装置に通知する。
計測部4は、シーケンシャル読み出し処理における論理アドレス順の読み出し回数を計測する。
記憶部5は、プリフェッチにより読み出す情報の情報量を記憶する。
第3の判定部6は、記憶部に記憶された情報量に基づいて、プリフェッチにより読み出すプリフェッチ対象領域が、他の制御装置配下の単位記憶領域を含むか否かを判定する。
第2の通知部7は、プリフェッチ対象領域が他の制御装置配下の単位記憶領域を含むと判定された場合、他の制御装置配下の単位記憶領域に関するプリフェッチ情報を他の制御装置に通知する。
第2の制御装置8は、第2の判定部9、及びプリフェッチ部10を含む。
第2の判定部9は、他の制御装置から通知された制御情報に基づいて、自制御装置配下の単位記憶領域の読み出し処理と通知元の制御装置の読み出し処理とがシーケンシャル読み出し処理であるかを判定する。
プリフェッチ部10は、第2の判定部により判定されたシーケンシャル読み出し処理に関わる自制御装置配下の単位記憶領域の情報を予め読み出してキャッシュメモリに記憶させるプリフェッチを行う。また、プリフェッチ部10は、自制御装置において論理アドレス順の読み出し回数に通知された回数を加算した値が、所定の閾値以上の場合、プリフェッチを行う。また、プリフェッチ部10は、他の制御装置からプリフェッチ情報が通知された場合、通知されたプリフェッチ情報に基いて、プリフェッチ情報に対応する単位記憶領域の情報のプリフェッチを行う。
記憶装置11は、所定の情報が所定単位で分割された情報である分割情報が分散されて格納され、複数の記憶装置11のそれぞれは、分割情報を単位記憶領域に格納する。
(実施形態1)
図2は、第1の実施形態に係るストレージ装置のハードウェア構成の一例を示す。
ストレージ装置21は、複数のディスクを含み、それらを一つの論理ボリュームとして扱うことのできるRAIDを構成する。
ストレージ装置21は、コントローラモジュール#0(以下、CM#0と記す)(CM22A)、コントローラモジュール#1(以下、CM#1と記す)(CM22B)、デバイスエンクロージャ(以下、DEと記す)(DE23)を含む。また、ストレージ装置21は、例えばネットワークを介してホスト20に接続される。
CM#0、CM#1は、ストレージシステムにおける種々の制御を行なうものであり、ホスト20から送信されたI/Oコマンドに基づいて、DE23に対するアクセス制御を行なう。CM#0とCM#1は、それぞれ接続されるDE23内の記憶装置が異なる。また、CM#0とCM#1は、例えばルータを介して、PCI Express等のバス29またはネットワークで接続される。尚、図の例ではCMの数は2つであるが、さらにCMが接続された構成としてもよい。
CM#0は、CPU(Central Processing Unit)24A、キャッシュメモリ25A、CA(Channel Adapter)26A、DI(Disk Interface)27Aを含む。以下、キャッシュメモリを「キャッシュ」と称する。
CM#1は、CPU24B、キャッシュ25B、CA26B、DI27Bを含む。
以下の説明では、CM22AとCM22Bを特に区別しない場合には単にCM22と記す。同様に、それぞれ、CPU24AとCPU24B、キャッシュ25Aとキャッシュ25B、CA26AとCA26B、DI27AとDI27Bを特に区別しない場合には、単にCPU24、キャッシュ25、CA26、DI27と記す。
CPU24は、プログラムを実行することにより種々の演算および制御を行なう演算装置であり、図示しないメモリやROMに格納されたプログラムを実行することにより各種機能を実現する。
キャッシュ25は、DI27に格納された情報をホスト20に転送する際、その転送効率を向上させるために使用される記憶領域である。
CA26は、ホスト20と接続するためのアダプタである。
DI27は、CM22内に配置され、DE23と接続されるインターフェースである。
DE23は、複数のディスクを含むエンクロージャである。DE23はCM#0、CM#1のDI27にバス等で接続される。図2においては、DE23と各CM22とを接続する経路は2つであるが、この経路の数は限定されない。さらに、DE23とDI27の間に種々の中継装置を設けてもよい。また、DE23が含むものはディスクに限定されず、種々の記憶装置としてもよい。
DE23内の複数のディスクはディスクグループを構成する。一つのディスクグループは複数のディスクから構成される。このようなディスクグループをRLU(RAID Group Logical Unit)と呼ぶ。
図2の例の場合、RLU#0(RLU28A)はCM#0に管理され、RLU#1(RLU28B)はCM#1に管理される。尚、RLUの数は2つに限定されない。
ホスト20が認識する論理ボリューム(OLU:Open volume Logical Unit)は、RLU#0及びRLU#1の領域から構成される。そして、この論理ボリュームに記憶されるデータは、RLU#0及びRLU#1をまたいでストライピングされて記憶される。
ここで、複数のRLUをまたいでストライピングが行われる論理ボリュームをワイドストライピングボリューム(WSV:Wide Striping Volume)と記す。また、RLUをまたいだストライピングをワイドストライピングと記す。
ワイドストライピングにおいては、所定のデータ量毎にWSVの領域を分割して、分割した領域を所定の順序で複数のRLUに分散して割り当てる。分割した所定のデータ量のデータをWSVユニットと呼び、WSVユニットのデータのサイズをWSVユニットサイズと呼ぶ。
また、RLUの所定のサイズの領域をSLU(Shared Logical Unit)と呼ぶ。
ワイドストライピングボリュームを構成するRLUのうちの1つのRLUはWSVの代表RLUとして設定される。また、各RLUには一意の識別番号であるRLU番号が振られる。代表RLUは、WSVユニットを所定の順序で複数のRLUに分散して割り当てる際に起点となるRLUである。WSVユニットが各RLUに割り当てられる際には、代表RLUに先頭のWSVユニットが割り当てられる。次以降のWSVユニットは、例えばRLU番号の昇順でRLUに割り当てられ、WSVユニットがすべてのRLUに割り当てられると、次のWSVユニットは先頭RLU(代表RLU)に戻って割り当てられる。
図3は、ワイドストライピングを説明するための図である。
図3の例では、複数のディスクから構成されるRLUが複数構成されている(RLU#0、RLU#1、RLU#2、RLU#3)。また、RLU#1は、WSVの代表RLUとして設定される。OLUはホスト20が認識する論理ボリュームである。図3のOLUでは異なるCM22により管理される複数のRLUにまたがってストライピングが行われている。そのため、このOLUはワイドストライピングボリューム(WSV)であるともいえる。図3に示すように、所定のデータ量ごとに分割されたWSVの領域の各々がWSVユニットであり、所定の順序で複数のRLUに分散して割り当てられている。また、SLUはRLUの所定のサイズの領域であり、SLUには複数のWSVユニットが含まれる。図3においては、先頭WSVユニットであるWSVユニット「1」の領域は代表RLUであるRLU#0の「1」の領域に割り当てられる。そして、次のWSVユニット「2」の領域はRLU#1の「2」の領域に、WSVユニット「3」の領域はRLU#2の「3」の領域に・・・と順に割り当てられる。
尚、各RLUは異なるRAIDレベルを構成してもよい。また、ホスト20は例えばサーバである。
図4は、第1の実施形態に係るストレージ装置21のCM22の構成を示す図である。CM22は、キャッシュ31、キャッシュ制御部32、検出部33、プリフェッチ制御部34、記憶部35、及び通信部36を含む。キャッシュ制御部32は、プリフェッチ部10の一例である。検出部33は、第1の判定部2、第1の通知部3、計測部4、第2の判定部9の一例である。プリフェッチ制御部34は、第3の判定部6、第2の通知部7の一例である。記憶部35は、記憶部5の一例である。
キャッシュ31は、ホスト20から読み込み要求があった際に、DE23のディスクに格納されているデータをホスト20に対して転送する効率を向上させるために使用される記憶領域である。尚、キャッシュ31は図2のキャッシュ25に対応している。
キャッシュ制御部32は、ホスト20から読み込み要求があった場合、先ず、キャッシュ31内に読み込み対象データが存在するか否かを判定し、存在する場合キャッシュ31内のデータをホスト20に返す。また、読み込み対象データがキャッシュ31内に存在しない場合、ディスクから読み込み対象データをキャッシュ31に読み出すとともに、その読み込み対象データをホスト20に返す。また、キャッシュ制御部32は、ホスト20から書き込み要求があった場合は、先ず、キャッシュ31内に書き込み対象データが存在するか否かを判定し、存在する場合キャッシュ31内のデータを書き換える。また、書き込み対象データがキャッシュ31内に存在しない場合、ディスクから書き込み対象データをキャッシュ31に読み出し、その読み込み対象データに対して書き込みを行う。書き込み処理が行われたキャッシュ31内のデータは、キャッシュ31内のデータに対して書き込み処理が行われた直後にディスクに書き込まれてもよいし、所定のタイミングでディスクに書き込まれてもよい。
キャッシュ制御部32は、ホスト20からの読み込み要求に対してシーケンシャル性が検出された場合に、後続する読み込み要求を待たずに、論理ボリュームのアドレスが連続する記憶装置内のデータを予めキャッシュ31に先読みする。この先読み動作をプリフェッチステージング(Prefetch Staging)と呼ぶ。プリフェッチステージングを行うことで、ホスト20からのシーケンシャルな読み込み要求(READ I/O)のスループットを向上させることができる。プリフェッチステージングの読み込み動作のタイミング及び、先読みする対象領域のアドレスの情報については、キャッシュ制御部32はプリフェッチ制御部34から受け取る。キャッシュ制御部32の機能は、CPU24により提供される。
検出部33は、ホスト20からの読み込み要求に対してシーケンシャル性を検出し、プリフェッチ制御部34に対して、プリフェッチステージングの実行を指示する。具体的には、検出部33は、読み込み対象の論理ブロックアドレスが連続する読み込み要求が所定の閾値以上連続した場合に、プリフェッチ制御部34にプリフェッチステージングの実行を指示する。これにより、WSVに対する読み込み要求については、SLU、及びコントローラをまたいだシーケンシャル性の検出が可能である。検出部33の機能は、CPU24により提供される。
プリフェッチ制御部34は、検出部33からプリフェッチステージングの実行通知を受けると、プリフェッチステージングの対象領域を算出する。そしてプリフェッチ制御部34は、算出した対象領域の情報とともに、キャッシュ制御部にプリフェッチステージングの実行を指示する通知を送信する。また、プリフェッチ制御部34は、他CM22が管理するSLUにプリフェッチステージングの対象領域が及ぶ場合、他CM22のプリフェッチ制御部34に対してその対象領域のプリフェッチを行うように通信部36を介して指示する。プリフェッチ制御部34の機能は、CPU24により提供される。
記憶部35は、検出部33がシーケンシャル性の検出のために用いる検出テーブルを記憶する。また、OLUを構成するWSVユニットがどのRLU28に割り当てられているかを示す情報、及び、各WSVユニットの境界のアドレス(以下、WSVユニットバウンダリと記す)の情報を記憶する。ここで、OLUを構成するWSVユニットがどのRLU28に割り当てられているかを示す情報には、WSVユニットのRLUへの割り当て順及びRLU28を管理するCMの情報が含まれる。OLUを構成するWSVユニットがどのRLU28に割り当てられているかを示す情報、及び各WSVユニットの境界のアドレスは、例えばWSVを構成するRLUのリスト、代表RLU、及びWSVユニットサイズから算出できるのでこれらの情報を記憶してもよい。また、記憶部35は、プリフェッチステージングにおけるプリフェッチ量の情報が格納される。
記憶部35の機能は、図2には図示していないが、RAM(Random Access Memory)、ROM(Read Only Memory)、またはフラッシュメモリ等の半導体メモリによって提供される。
通信部36は、各CM22が管理するWSVユニットをまたがって論理ボリューム全体としてシーケンシャル性を検出するために、他CM22に対してシーケンシャル性検出に関する情報の送受信を行う。また、通信部36は、プリフェッチステージングにおいて、プリフェッチする領域が自CM以外のCM22が管理するSLUに及ぶ場合、他のCM22に対してプリフェッチ対象領域の情報の送受信を行う。
次に、ホスト20からの読み込み要求発生時のストレージ装置の動作を説明する。図5、図6は、ワイドストライピングを実行しているストレージ装置21が読み込み要求を受信したときの動作を説明するための図である。
先ず図5を参照して、ワイドストライピングを実行しているストレージ装置21の読み込み要求受信時におけるステージング開始までの動作を説明する。
CM#0は、ホスト20から発行された読み込み要求コマンドを受信すると、受信した読み込み要求コマンドに記された読み込み対象領域を参照する。そして、CM#0は、読み込み対象領域がどのRLU28に位置するかを特定する。CM#0は、受信した読み込み要求コマンドの読み込み対象領域が、自身が管理するRLU28以外のRLU28のアドレスを含む場合、異なるCM22が管理する読み込み対象領域ごとに、読み込み要求コマンドを生成する(1)。図5の例では、CM#0は、読み込み要求コマンドR0とR1を生成する。R0は、読み込み要求コマンドの読み込み対象アドレスのうち、CM#0が管理するRLU28AのSLUの領域を読み込み対象とする読み込みコマンドである。R1は、CM#1が管理するRLU28BのSLUの領域を読み込み対象とする読み込みコマンドである。
ここで、分割した読み込み要求コマンドが含むデータ構造の一例を示す。図6は、生成した読み込み要求コマンドのデータ構造の一例である。読み込み要求コマンド50は、「SLU番号」51、「先頭SLBA」52、「最終SLBA」53を含む。
「SLU番号」51は、読み込み要求コマンド51の読み込み対象であるSLUの識別情報を示す。「先頭SLBA」52、「最終SLBA」53は、それぞれ、「SLU番号」51に格納されたSLU番号で表されるSLUの読み込み対象領域の先頭SLBA、最終SLBAのアドレスを示す。図6の例は、「SLU番号」51、「先頭SLBA」52、「最終SLBA」53の値として、それぞれ「a」、「b」、「c」が格納されている例を示している。
尚、読み込み要求コマンドの読み込み対象アドレスがOLUの論理アドレスで記されている場合には、CM#0はアドレス変換テーブル等を用いて物理アドレスに変換する動作を行ってもよい。
次にCM#0は、CM間通信を通じてCM#1にR1を転送する(2)。
次にCM#0及びCM#1は、R0またはR1の読み込み対象データがキャッシュ25A,25Bに存在するか否かを判定する(3)。キャッシュ25A,25Bに読み込み対象データが存在しない場合、CM#0及びCM#1は、R0またはR1に対してシーケンシャル性の判定を行い、シーケンシャル性を検出した場合はプリフェッチステージングを開始する。また、CM#0及びCM#1はシーケンシャル性を検出しなかった場合は、読み込み対象データをRLUの物理アドレスからキャッシュへの読み出しを開始する(4)。
次に、図7を参照してワイドストライピングを実行しているストレージ装置に対する読み込み要求発行時のステージング開始からホスト20に応答するまでの動作を説明する。
CM#0は、R0の読み込み領域に格納されていたデータであるData0をキャッシュ25Aに読み出す。また、CM#1は、R1の読み込み領域に格納されていたデータであるData1をキャッシュ25Bに読み出す(5)。尚、(3)、(4)、(5)の処理はCM#0とCM#1で並行して実行される。
次に、CM#1は、キャッシュ25BのData1をCM#0のキャッシュ25Aにバス29を通じて転送する(6)。
次に、CM#0は、Data0とData1を結合して、ホスト20から読み込み要求のあったデータであるDataを生成する(7)。そして、CM#0はホスト20に生成したDataを転送する(8)。
尚、読み込み要求コマンドの分割及び結合の処理は、CM22のCPU24が行う。以下の説明では、検出部33が受信する読み込み要求コマンドは分割後の読み込み要求コマンドとして説明する。
次に、ワイドストラインピングを実行しているストレージ装置において、シーケンシャル性の検出動作について詳細に説明する。
記憶部35はシーケンシャル性の検出のために使用する検出テーブルをSLU毎に対応付けて保持する。図8に検出テーブルの一例を示す。検出テーブル40は、「SLU番号」41、「先頭SLBA(SLU Logical Block Address)」42、「最終SLBA」43、「検出回数44」、及び「タイムスタンプ」45のデータ項目を含む。
「SLU番号」41は、対応するSLUの識別情報が格納される。「先頭SLBA」42は、読み込み要求の読み込み対象領域の先頭のSLBAの値が示される。「最終SLBA」43は、直近の読み込み要求においてアクセス対象となったSLBAの値が示される。「検出回数」44は、読み込み対象の論理ブロックアドレスが連続する読み込み要求が、直近で何回連続して発生しているかを示す値が格納される。「タイムスタンプ」45は、検出テーブルが更新された日時を示す情報が格納される。
記憶部35は1つのSLUに対応する検出テーブル40を複数保持し、CM22は1つのSLUに対応する検出テーブル40の数だけの多重度のシーケンシャル読み込み要求を検出することができる。ここで、1つのSLUに対応する検出テーブル40の数の最大値をMとする。
1つのSLUに対してホスト20からの読み込み要求が並行して多数発生した場合、検出部33は、シーケンシャル性検出のためそれぞれの読み込み要求に付き1つの検出テーブル40を使用して、シーケンシャル性を検出する。検出テーブル40の数が最大値Mに達しているときに新たに読み込み要求が発生した場合、検出部33は「タイムスタンプ」45が最も古く現在使用されていない検出テーブル40を削除して、新たに検出テーブル40を作成する。
検出部33は、ホスト20からの読み込み要求を受信すると、最終SLBA43の値がホスト20からの読み込み要求の先頭のSLBAに対して連続している検出テーブル40を検索する。そして検出部33は、検索した結果発見された検出テーブル40の検出回数44の値をインクリメントする。インクリメントした結果、検出回数44の値が所定の閾値を超えた場合、検出部33は、ホスト20からの読み込み要求に対してシーケンシャル性が検出されたと判定する。
検出部33はシーケンシャル性を検出した場合、プリフェッチ制御部34に対してプリフェッチステージングの実行を指示する。プリフェッチ制御部34は、プリフェッチステージングの実行指示を受け取ると、プリフェッチ対象領域を算出する。具体的には、プリフェッチ制御部34は、検出テーブル40の最終SLBA43に対応するOLBAの次のアドレスから、OLBAにおいてアドレスが連続するプリフェッチデータ量のデータが格納されている領域を、プリフェッチ対象領域として算出する。ここで、プリフェッチデータ量の情報は記憶部35に格納されている。そして、プリフェッチ制御部34は、プリフェッチ対象領域の情報とともに、プリフェッチステージングの実行指示をキャッシュ制御部32に送信する。キャッシュ制御部32は、プリフェッチ制御部34からプリフェッチステージングの実行指示を受信すると、プリフェッチ対象領域に格納されたデータをキャッシュ25に読み出す。
読み込み要求の対象領域がWSVユニットバウンダリを含む場合、検出部33は、次のWSVユニットを管理するCM22に対して検出回数を通知し、通知を受けたCM22の検出部33は、その検出回数を引き継ぐ。これにより、各CM22が管理するWSVユニットをまたがって、論理ボリューム全体としてシーケンシャル性を検出することができる。ただし、次のWSVユニットを管理するCM22が自装置である場合、通知は行わなくてもよい。図9は、読み込み対象領域がWSVユニットバウンダリを含む場合の検出回数の引継ぎを説明するための図である。
図9の例の場合、WSVユニット901はRLU#Aに含まれ、WSVユニット902はRLU#Bに含まれる。また、RLU#Aを管理するCM22はCM#0であり、RLU#Bを管理するCM22はCM#1である。
WSVユニット901に対する読み込み要求がWSVユニットバウンダリに達した場合、CM#0の検出部33は、次のWSVユニットが含まれるRLU#Bを管理するCM#1に、検出テーブル40の検出回数44の値と最終SLBA43の値とを通知する。
CM#1はシーケンシャル性についての互いに関連のない読み込み要求毎の複数の検出テーブル40を保持しているため、通知された値に関する読み込み要求に対応する検出テーブル40を特定する。具体的にはCM#1の検出部33は、自CM22がもつ検出テーブル40のうち、先頭SLBA42の値に相当するOLBAが、通知された最終SLBA43に相当するOLBAの次のLBAであるテーブルを検索し、抽出する。そして、CM#1の検出部33は、抽出した検出テーブル40の検出回数44に、CM#0から通知された検出回数44の値を加算する。そしてCM#1の検出部33は、検出回数44の値が所定の閾値を超えた場合、ホスト20からの読み込み要求に対してシーケンシャル性が検出されたと判定する。
次に、シーケンシャル性検出とプリフェッチステージングの動作フローを説明する。図10は、CM22のシーケンシャル性の検出およびプリフェッチステージングの動作フローを示す。図10のフローは各CMが、CM毎に分割された読み込み要求を受信した場合に開始される。
検出部33は、読み込み要求を受信する(S401)と、最終SLBA43の値が読み込み要求の読み込み対象領域の先頭SLBAに対して連続する検出テーブル40を検索する(S402)。
最終SLBA43の値が読み込み対象領域の先頭SLBAに対して連続する検出テーブル40が存在しない場合(S402でNo)、検出部33はタイムスタンプ45が最も古い検出テーブル40を削除する(S403)。
そして、検出部33は、受信した読み込み要求に関する検出テーブル40を新規作成する(S404)。また、検出部33は、検出テーブル40の作成時刻を検出テーブル40のタイムスタンプ45に格納する。
次に、検出部33はS404で作成した検出テーブル40の先頭SLBA42、最終SLBA43、及び検出回数44の値を設定する(S405)。すなわち検出部33は、受信した読み込み要求の読み込み対象領域の先頭SLBAを検出テーブル40の先頭SLBA42に格納し、読み込み対象領域の最終SLBAを検出テーブルの最終SLBA43に格納する。また、検出部33は、検出テーブル40の検出回数44の値を「0」に設定する。そして、処理は終了する。
S402における検索の結果、条件に該当する検出テーブル40を発見した場合(S402でNo)、検出部33は、発見したテーブルの最終SLBA43の値を読み込み対象領域の最終SLBAに更新する(S406)。また検出部33は、検出テーブル40のタイムスタンプ45の値を、最終SLBA43が更新された時刻に更新する。
次に、検出部33は、検出テーブル40の検出回数44の値をインクリメントする(S407)。
次に、検出部33は、検出テーブル40の検出回数44の値が所定の閾値以上か否かを判定する(S408)。
所定の閾値以上と判定した場合(S408でYes)、検出部33は、シーケンシャル性が検出されたと判定し、プリフェッチ制御部34に対してプリフェッチステージングを実行するよう通知する。通知を受信すると、プリフェッチ制御部34は、プリフェッチ対象領域を算出し、キャッシュ制御部32にプリフェッチの実行指示とプリフェッチ対象領域の情報を送信する。キャッシュ制御部32はプリフェッチ実行指示とプリフェッチ対象領域の情報を受信すると、プリフェッチステージングを実行する(S409)。
次に、検出部33は、検出テーブル40の最終SLBA43の値をS409でプリフェッチされたデータの最終SLBAの値に更新する(S410)。
そして、検出部33は、検出テーブル40の検出回数44の値を0にする(S411)。そして処理は終了する。
S408において、所定の閾値未満と判定した場合(S408でNo)、検出部33は、最終SLBA43の値がWSVユニットバウンダリに到達したか否かを判定する(S412)。例えば、検出部33は、最終SLBA43がWSVユニットバウンダリか否かを判定する。
最終SLBA43の値がWSVユニットバウンダリに到達していないと判定された場合(S412でNo)、処理は終了する。
S412において、最終SLBA43の値がWSVユニットバウンダリに到達したと判定した場合(S412でNo)、検出部33は、最終SLBA43と検出回数44を、検出回数通知として他のCM22に送信する(S413)。ここで、検出部33が通知する他のCM22は、最終SLBAに対応するOLBAにおけるアドレスの次のアドレスに対応するRLU28を管理するCM22である。検出部33は、記憶部35に記憶されたOLUを構成するWSVユニットがどのRLU28に割り当てられているかを示す情報を参照し、通知するCM22を特定する。尚、検出部33は、通信部36を介して他のCM22に検出回数通知を送信する。
そして、処理は通知を受けたCM22の処理へ移行する。
次に、S413で発行された検出回数通知を受信したCM22の動作について説明する。図11は、検出回数通知を受信したCM22の動作フローを示す。
検出部33は検出回数通知を受信すると(S500)、自CM22がもつ検出テーブル40のうち、先頭SLBA42の値に相当するOLBAが、通知された最終SLBA43に相当するOLBAの次のLBAであるテーブルを検索する(S501)。ここで検索により抽出された検出テーブル40を検出テーブル40bと記す。
そして、S501で検出テーブル40bを抽出した場合(S501でYes)、検出部33は、検出回数通知に基づいて検出テーブル40bの情報を更新する(S502)。具体的には、検出部33は、検出テーブル40bの検出回数44に、検出回数通知の検出回数44の値を加える。
そして、検出部33は、検出テーブル40bの検出回数44の値が所定の閾値以上か否かを判定する(S503)。所定の閾値未満である場合(S503でNo)、処理は終了する。
所定の閾値以上と判定した場合(S503でYes)、検出部33は、シーケンシャル性が検出されたと判定し、プリフェッチ制御部34に対してプリフェッチステージングを実行するよう通知する。通知を受信すると、プリフェッチ制御部34は、プリフェッチ対象領域を算出し、キャッシュ制御部32にプリフェッチの実行指示とプリフェッチ対象領域の情報を送信する。キャッシュ制御部32はプリフェッチ実行指示とプリフェッチ対象領域の情報を受信すると、プリフェッチステージングを実行する(S504)。
次に、検出部33は、検出テーブル40bの最終SLBA43の値をS504でプリフェッチされたデータの最終SLBAの値に更新する(S505)。
そして、検出部33は、検出テーブル40の検出回数44の値を0にする(S506)。そして処理は終了する。
S501において、先頭SLBA42の値に相当するOLBAが、通知された最終SLBA43に相当するOLBAの次のLBAであるテーブルが見つからなかった場合、検出部33は検出テーブル40を新規作成する(S507)。
そして、検出部はS507で作成した検出テーブル40の検出回数44の値を、検出回数通知の検出回数44の値に設定する(S508)。そして、処理は終了する。
プリフェッチステージングにおいて、プリフェッチが開始されるアドレスやプリフェッチ量によっては、プリフェッチ対象領域が自CM以外のCM22が管理するSLUに及ぶ場合がある。この場合の動作について説明する。
図12は、プリフェッチ対象領域が自CM以外のCM22が管理するSLUに及ぶ場合の一例を示す。
図12の例では、ワイドストライピングにおいて、SLU#0、SLU#1、SLU#2、SLU#3、SLU#0、SLU#1、・・・の順でWSVユニットにデータの書き込みが行われる。図12の例の場合、プリフェッチステージングのプリフェッチ対象範囲は網かけ部分となり、自CM以外のCM22が管理するSLUに及んでいる。すなわち、プリフェッチ対象範囲は、SLU#0のプリフェッチ開始OLBA相当SLBAからスタートし、SLU#1、SLU#2、SLU#3を経由してSLU#0の次WSVユニットのプリフェッチ終了OLBA相当SLBAまでである。
シーケンシャル性が検出され、検出部33からプリフェッチステージングの実行通知を受けると、プリフェッチ制御部34はプリフェッチステージングの対象領域を算出する。そして、プリフェッチ制御部34は、他CM22が管理するSLUにプリフェッチステージングの対象領域が及ぶ場合、他CM22に対してその対象領域のプリフェッチを行うように指示する。他のCM22に対するプリフェッチステージングの指示には、指示するCM22が行うプリフェッチステージングのプリフェッチ対象領域のアドレスの情報を含む。図12の例の場合、CM#0のプリフェッチ制御部34は、SLU#2及びSLU#3を管理するCM#1に対して、網掛け部分の領域のデータをステージングするように指示する。
次に、プリフェッチステージングにおいて、プリフェッチする領域が自CM以外のCM22が管理するSLUに及ぶ場合の動作フローについて説明する。図13は、プリフェッチステージングにおいて、プリフェッチする領域が自CM以外のCM22が管理するSLUに及ぶ場合のストレージ装置の動作フローを示す。
シーケンシャル性が検出され、検出部33からプリフェッチを実行するよう通知を受けると、プリフェッチ制御部34は、先ずプリフェッチステージングの対象領域を算出する(S601)。具体的には、プリフェッチ制御部34は記憶部35に記憶されたプリフェッチ量を取得する。また、プリフェッチ制御部34は検出テーブル40の最終SLBA43の値を取得する。そして、プリフェッチ制御部34は、最終SLBA43の値に対応するOLBAの次のアドレスからプリフェッチ量の範囲のOLBAのアドレスまでをプリフェッチ対象領域として算出する。
次に、プリフェッチ制御部34は、自CM22が管理するRLU28内にプリフェッチ対象領域が収まるか否かを判定する(S602)。すなわち、プリフェッチ制御部34はプリフェッチ対象領域が、他CM22により管理されるWSVユニットとのWSVユニットバウンダリをまたぐか否かを判定する。自CM22が管理するRLU内にプリフェッチ対象領域が収まると判定された場合(S602でYes)、処理はS604に遷移する。
自CM22が管理するRLU内にプリフェッチ対象領域が収まらないと判定された場合(S602でNo)、プリフェッチ制御部34は、プリフェッチ対象領域を含むSLUを管理する他のCM22にプリフェッチ対象領域を通知する(S603)。具体的には、プリフェッチ制御部34は、記憶部35に記憶されている、OLUを構成するWSVユニットがどのRLU28に割り当てられているかを示す情報、及び各WSVユニットの境界のアドレスの情報を参照する。そして、プリフェッチ制御部34は、OLBAにおけるプリフェッチ対象領域を元に、SLU毎の、プリフェッチ領域の先頭SLBAとプリフェッチデータ量を求める。そして、プリフェッチ制御部34は、各SLUを管理するCM22に対して、そのSLUに対応する、プリフェッチ先頭SLBAとプリフェッチデータ量の情報をプリフェッチ対象領域通知として送信する。
そして、プリフェッチ制御部34は自CM22内のRLUのプリフェッチ対象領域に対してプリフェッチを行い(S604)、処理が終了する。
次に、S603において発行されたプリフェッチ対象領域通知を受信したCM22の動作を説明する。図14は、プリフェッチ対象領域通知を受信した際のストレージ装置の動作を示す。
プリフェッチ対象領域通知を受信すると(S700)、プリフェッチ制御部34は、受信した通知に含まれるプリフェッチ先頭SLBAとプリフェッチデータ量とに基づいて、プリフェッチ対象領域を特定する。そして、プリフェッチ制御部34は、キャッシュ制御部32にプリフェッチ対象領域のデータをプリフェッチステージングするよう指示し、キャッシュ制御部32は、プリフェッチステージングを実施する(S701)。そして処理は終了する。
本実施形態では、WSVのデータ配置を考慮することで、CM間のデータのやりとりを最小化しつつ、独立した複数CM22で連携してプリフェッチステージングが可能となる。プリフェッチステージングを検出するための検出テーブルは各CM22で独立して記憶される。CM22は、検出テーブル上の最終LBAがWSVユニットバウンダリを超えた場合に他CM22にテーブル情報を通信するため、CM間の通信を極小化できる。
また、CM22は、プリフェッチステージングの対象範囲が他CMにまたがるかどうかを判定し、またがる場合には他CMに対してそのCMで実行するプリフェッチ対象領域を通知することで、CM間にまたがったプリフェッチステージングの実行を可能とする。
(実施形態2)
実施形態2のストレージシステムは、実施形態1におけるストレージ装置21を筐体間で接続した構成である。図15は実施形態2に係るストレージシステムのハードウェア構成の一例を示す。
実施形態2に係るストレージシステムは、ストレージ装置21とストレージ装置101とがバスまたはネットワーク102で接続されている。ストレージ装置21とストレージ装置101は、スイッチやルータを介して接続されてもよい。
ストレージ装置21は、実施形態1で説明したものと同様である。ストレージ装置101は、CM22とDE23を一つずつ含む構成となっているが、これに限定されず、複数台ずつ含んでもよい。CM22C及びDE23Cの各機能は実施形態1で説明したCM22及びDE23にそれぞれ対応する。RLU28A、RLU28B、及びRLU28Cでワイドストライピングボリュームが構成される。
(実施形態3)
実施形態3のストレージシステムでは、実施形態1におけるCM22の機能の一部を、例えばサーバ等のプロセッサユニット(以下、PUと記す)が実現する。図16は実施形態3に係るストレージシステムのハードウェア構成の一例を示す。
実施形態3に係るストレージシステムは、基本ノード82及び拡張ノード83を含む。基本ノード82はPU#1(84A)、PU#2(84B)、スイッチ(以下、SWと記す)#1(SW85A)、SW#2(SW85B)、ストレージユニット(以下、SUと記す)#1(SU86A)を含む。拡張ノード83は、PU#3(PU84C)、SW#3(SW85C)、SU#2(SU86B)を含む。基本ノード82及び拡張ノード83は、例えばLAN(Local Area Network)81等のネットワークを介して業務サーバ80等のホストコンピュータに接続される。また、PU#1、PU#2、PU#3、SU#1、及びSU#2は、SW#1またはSW2を介して、バスまたはネットワークで接続され、データの送受信が行われる。各PU84と各SU86に対して、スイッチを介して交差してアクセスできる。
以下の説明では、PU84A、PU84B、PU84Cのそれぞれを特に区別しない場合には、単にPU84と記す。同様に、SW、SU、CPU、メモリについても同様に記す。
PU84は、CPU87とメモリ88を含んで構成される。
CPU87は、業務サーバ80からSU86のディスクに対するI/Oの制御を行う。また、CPU87は、PU84及びSU86の種々の動作を制御する。また、CPU87は、SU86A及びSU86Bのディスクの領域で構成されたWSVの管理を行う。
メモリ88は、例えば半導体メモリであり、RAM(Random Access Memory)領域およびROM(Read Only Memory)領域を含んで構成される。
SU86は、図16に図示してはいないが、実施形態1のCM22とDE23の構成を含む。また、SU86AとSU86Bのディスクの領域にはWSVが構成されている。
実施形態3に係るストレージシステムの構成は図4に示したものと同じである。ただし、検出部33、プリフェッチ制御部34、及び通信部36の機能はSU内の図示しないCPUによってではなく、CPU87により提供される。また、記憶部35の機能はSU内の図示しないメモリによってではなく、メモリ88により提供される。
キャッシュ31は、SU86の図示しないキャッシュにより実現されるとしたが、PU84にキャッシュメモリを設けて、PU内のキャッシュメモリにより実現してもよい。また、キャッシュ制御部32は、SU86の図示しないCPUにより実現されるとしたが、CPU87により実現してもよい。
尚、本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。
上記実施形態に関し、更に以下の付記を開示する。
(付記1)
自制御装置配下の単位記憶領域と他の制御装置配下の単位記憶領域に分散して格納された情報の読み出し処理を制御する制御装置であって、
前記読み出し処理が自制御装置配下の単位記憶領域に格納された情報を論理アドレス順に読み出すシーケンシャル読み出し処理であり、該シーケンシャル読み出し処理の読み出し対象領域が該単位記憶領域における最終アドレスを含むか否かを判定する第1の判定部と、
前記第1の判定部により判定された前記最終アドレスを含むシーケンシャル読み出し処理に関する制御情報を前記他の制御装置に通知する第1の通知部と、
を備えることを特徴とする制御装置。
(付記2)
前記他の制御装置から通知された前記制御情報に基づいて、自制御装置配下の単位記憶領域の読み出し処理と通知元の制御装置の読み出し処理とが前記シーケンシャル読み出し処理であるかを判定する第2の判定部と、
前記第2の判定部により判定されたシーケンシャル読み出し処理に関わる自制御装置配下の単位記憶領域の情報を予め読み出してキャッシュメモリに記憶させるプリフェッチを行うプリフェッチ部と、
を備えることを特徴とする付記1に記載の制御装置。
(付記3)
前記制御装置は、さらに、
前記シーケンシャル読み出し処理における前記論理アドレス順の読み出し回数を計測する計測部
を備え、
前記第1の通知部は、前記読み出し処理の読み出し対象領域が自制御装置配下の単位記憶領域における最終アドレスを含む場合、計測された前記回数を前記他の制御装置に通知し、
前記プリフェッチ部は、自制御装置において前記論理アドレス順の読み出し回数に前記通知された回数を加算した値が、所定の閾値以上の場合、前記プリフェッチを行う
ことを特徴とする付記2に記載の制御装置。
(付記4)
前記制御装置は、さらに、
前記プリフェッチにより読み出す情報の情報量を記憶する記憶部と、
前記情報量に基づいて、前記プリフェッチにより読み出すプリフェッチ対象領域が、前記他の制御装置配下の単位記憶領域を含むか否かを判定する第3の判定部と、
前記プリフェッチ対象領域が前記他の制御装置配下の単位記憶領域を含むと判定された場合、前記他の制御装置配下の前記単位記憶領域に関するプリフェッチ情報を前記他の制御装置に通知する第2の通知部と、
を備え、
前記プリフェッチ部は、他の制御装置から前記プリフェッチ情報が通知された場合、通知された該プリフェッチ情報に基いて、該プリフェッチ情報に対応する単位記憶領域の情報の前記プリフェッチを行う
ことを特徴とする付記1〜3のうちいずれか1項に記載の制御装置。
(付記5)
第1の制御装置配下の単位記憶領域と第2の制御装置配下の単位記憶領域に分散して格納された情報の読み出し処理を行なうストレージシステムであって、
前記第1の制御装置は、
前記読み出し処理が第1の制御装置配下の単位記憶領域に格納された情報を論理アドレス順に読み出すシーケンシャル読み出し処理であり、該シーケンシャル読み出し処理の読み出し対象領域が該単位記憶領域における最終アドレスを含むか否かを判定する第1の判定部と、
前記第1の判定部により判定された前記最終アドレスを含むシーケンシャル読み出し処理に関する制御情報を前記第2の制御装置に通知する第1の通知部と、を備え、
前記第2の制御装置は、
前記第1の制御装置から通知された前記制御情報に基づいて、第2の制御装置配下の単位記憶領域の読み出し処理と通知元の第1の制御装置の読み出し処理とが前記シーケンシャル読み出し処理であるかを判定する第2の判定部と、
前記第2の判定部により判定されたシーケンシャル読み出し処理に関わる第2の制御装置配下の単位記憶領域の情報を予め読み出してキャッシュメモリに記憶させるプリフェッチを行うプリフェッチ部と、
を備えることを特徴とするストレージシステム。
(付記6)
前記第1の制御装置は、さらに、
前記シーケンシャル読み出し処理における前記論理アドレス順の読み出し回数を計測する計測部
を備え、
前記第1の判定部は、前記読み出し処理の読み出し対象領域が前記第1の制御装置配下の単位記憶領域における最終アドレスを含む場合、計測された前記回数を前記第2の制御装置に通知し、
前記プリフェッチ部は、前記第2の制御装置において前記論理アドレス順の読み出し回数に前記通知された回数を加算した値が、所定の閾値以上の場合、前記プリフェッチを行う
ことを特徴とする付記5に記載のストレージシステム。
(付記7)
前記第2の制御装置は、さらに、
前記プリフェッチにより読み出す情報の情報量を記憶する記憶部と、
前記情報量に基づいて、前記プリフェッチにより読み出すプリフェッチ対象領域が、第3の制御装置配下の単位記憶領域を含むか否かを判定する第3の判定部と、
前記プリフェッチ対象領域が前記第3の制御装置配下の前記単位記憶領域を含むと判定された場合、前記第3の制御装置配下の前記単位記憶領域に関するプリフェッチ情報を前記第3の制御装置に通知する第2の通知部と、
を備え、
前記プリフェッチ部は、第4の制御装置から前記プリフェッチ情報が通知された場合、通知された該プリフェッチ情報に基いて、該プリフェッチ情報に対応する単位記憶領域の情報の前記プリフェッチを行う
ことを特徴とする付記5または6に記載のストレージシステム。
(付記8)
前記ストレージシステムは、複数のストレージ装置を筐体間で接続したものであり、各ストレージ装置は、前記筐体内に、前記単位記憶領域を割り当てる記憶装置群と該記憶装置群を制御する制御部を含む記憶ユニットと、前記前記第1の制御装置および前記第2の制御装置として動作する制御ユニットを備える
ことを特徴とする付記5〜7のうちいずれか1項に記載のストレージシステム。
(付記9)
前記制御ユニットは、前記筐体内に設けられたサーバであり、筐体間で接続された他のストレージ装置の前記記憶ユニットに対する入出力処理を行なう
ことを特徴とする付記8に記載のストレージシステム。
(付記10)
自制御装置配下の単位記憶領域と他の制御装置配下の単位記憶領域に分散して格納された情報の読み出し処理を制御する処理をプロセッサに実行させる制御プログラムであって、
前記読み出し処理が自制御装置配下の単位記憶領域に格納された情報を論理アドレス順に読み出すシーケンシャル読み出し処理であり、該シーケンシャル読み出し処理の読み出し対象領域が該単位記憶領域における最終アドレスを含むか否かを判定し、
前記判定された前記最終アドレスを含むシーケンシャル読み出し処理に関する制御情報を前記他の制御装置に通知する
処理をプロセッサに実行させることを特徴とする制御プログラム。
(付記11)
プロセッサに、
前記シーケンシャル読み出し処理における前記論理アドレス順の読み出し回数を計測し、
前記読み出し処理の読み出し対象領域が前記自制御装置配下の単位記憶領域における最終アドレスを含む場合、計測された前記回数を前記他の制御装置に通知する
処理を実行させることを特徴とする付記10に記載の制御プログラム。
(付記12)
プロセッサに、
記憶部に記憶されたプリフェッチにより読み出す情報の情報量に基づいて、前記プリフェッチにより読み出すプリフェッチ対象領域が、前記他の制御装置配下の単位記憶領域を含むか否かを判定し、
前記プリフェッチ対象領域が前記他の制御装置配下の単位記憶領域を含むと判定された場合、前記他の制御装置の配下の前記単位記憶領域に関するプリフェッチ情報を前記他の制御装置に通知する
処理を実行させることを特徴とする付記11に記載の制御プログラム。
(付記13)
自制御装置配下の単位記憶領域と他の制御装置配下の単位記憶領域に分散して格納された情報の読み出し処理を制御する処理をプロセッサに実行させる制御プログラムであって、
前記他の制御装置配下の単位記憶領域に格納された情報を論理アドレス順に読み出すシーケンシャル読み出し処理の読み出し対象領域の前記単位記憶領域における最終アドレスを含む、前記他の制御装置から通知されたシーケンシャル読み出し処理に関する制御情報に基づいて、自制御装置配下の単位記憶領域の読み出し処理と通知元の制御装置の読み出し処理とがシーケンシャル読み出し処理であるかを判定し、
前記判定されたシーケンシャル読み出し処理に関わる自制御装置配下の単位記憶領域の情報を予め読み出してキャッシュメモリに記憶させるプリフェッチを行う
処理をプロセッサに実行させることを特徴とする制御プログラム。
(付記14)
プロセッサに、
前記他の制御装置の前記シーケンシャル読み出し処理における前記論理アドレス順の読み出し回数を、自制御装置における論理アドレス順の読み出し回数に加算した値が、所定の閾値以上の場合、前記プリフェッチを行う
処理を実行させることを特徴とする付記13に記載の制御プログラム。
(付記15)
プロセッサに、
前記他の制御装置から通知された、自制御装置配下の単位記憶領域に関するプリフェッチ情報に基いて、該プリフェッチ情報に対応する単位記憶領域の情報の前記プリフェッチを行う
処理を実行させることを特徴とする付記14に記載の制御プログラム。
1 第1の制御装置
2 第1の判定部
3 第1の通知部
4 計測部
5 記憶部
6 第3の判定部
7 第2の通知部
8 第2の制御装置
9 第2の判定部
10 プリフェッチ部
11 記憶装置
12 ストレージシステム
20 ホスト
21 ストレージ装置
22 CM
23 DE
24 CPU
25 キャッシュ
26 CA
27 DI
28 RLU
29 バス
31 キャッシュ
32 キャッシュ制御部
33 検出部
34 プリフェッチ制御部
35 記憶部
36 通信部
40 検出テーブル
41 SLU番号
42 先頭SLBA
43 最終SLBA
44 検出回数
45 タイムスタンプ

Claims (8)

  1. 自制御装置配下の単位記憶領域と他の制御装置配下の単位記憶領域に分散して格納された情報の読み出し処理を制御する制御装置であって、
    前記読み出し処理が自制御装置配下の単位記憶領域に格納された情報を論理アドレス順に読み出すシーケンシャル読み出し処理であり、該シーケンシャル読み出し処理の読み出し対象領域が前記他の制御装置配下の単位記憶領域における最終アドレスを含むか否かを判定する判定部と、
    記判定部により判定された前記最終アドレスを含むシーケンシャル読み出し処理に関する制御情報を前記他の制御装置に通知し、前記他の制御装置配下の単位記憶領域における読み出し処理の実行指示を行う通知部と、
    を備えることを特徴とする制御装置。
  2. 前記自制御装置は、更に、記シーケンシャル読み出し処理に関わる自制御装置配下の単位記憶領域の情報を予め読み出してキャッシュメモリに記憶させるプリフェッチを行うプリフェッチ部を備え、
    前記プリフェッチの読み出し対象領域が他の制御装置配下の単位記憶領域にまたがる場合であって、該読み出し対象領域が前記自制御装置の境界アドレスに達した場合に、前記プリフェッチに関する制御情報を前記他の制御装置に通知し、前記他の制御装置配下の単位記憶領域におけるプリフェッチの実行指示を行う
    ことを特徴とする請求項1に記載の制御装置。
  3. 前記制御装置は、さらに、
    前記シーケンシャル読み出し処理における前記論理アドレス順の読み出し回数を計測する計測部
    を備え、
    記通知部は、更に、前記読み出し処理の読み出し対象領域が自制御装置配下の単位記憶領域において計測された前記回数を前記他の制御装置に通知する
    ことを特徴とする請求項2に記載の制御装置。
  4. 前記制御装置は、さらに、
    前記プリフェッチにより読み出す情報の情報量に基づいて、前記プリフェッチにより読み出すプリフェッチ対象領域が、前記他の制御装置配下の単位記憶領域を含むか否かを判定す
    ことを特徴とする請求項〜3のうちいずれか1項に記載の制御装置。
  5. 第1の制御装置配下の単位記憶領域と第2の制御装置配下の単位記憶領域に分散して格納された情報の読み出し処理を行なうストレージシステムであって、
    前記第1の制御装置は、
    前記読み出し処理が第1の制御装置配下の単位記憶領域に格納された情報を論理アドレス順に読み出すシーケンシャル読み出し処理であり、該シーケンシャル読み出し処理の読み出し対象領域が該単位記憶領域における最終アドレスを含むか否かを判定する第1の判定部と、
    前記第1の判定部により判定された前記最終アドレスを含むシーケンシャル読み出し処理に関する制御情報を前記第2の制御装置に通知する第1の通知部と、を備え、
    前記第2の制御装置は、
    前記第1の制御装置から通知された前記制御情報に基づいて、第2の制御装置配下の単位記憶領域の読み出し処理と通知元の第1の制御装置の読み出し処理とが前記シーケンシャル読み出し処理であるかを判定する第2の判定部と、
    前記第2の判定部により判定されたシーケンシャル読み出し処理に関わる第2の制御装置配下の単位記憶領域の情報を予め読み出してキャッシュメモリに記憶させるプリフェッチを行うプリフェッチ部と、
    を備えることを特徴とするストレージシステム。
  6. 前記ストレージシステムは、複数のストレージ装置を筐体間で接続したものであり、各ストレージ装置は、前記筐体内に、前記単位記憶領域を割り当てる記憶装置群と該記憶装置群を制御する制御部を含む記憶ユニットと、前記第1の制御装置および前記第2の制御装置として動作する制御ユニットを備える
    ことを特徴とする請求項5に記載のストレージシステム。
  7. 自制御装置配下の単位記憶領域と他の制御装置配下の単位記憶領域に分散して格納された情報の読み出し処理を制御する処理をプロセッサに実行させる制御プログラムであって、
    前記読み出し処理が自制御装置配下の単位記憶領域に格納された情報を論理アドレス順に読み出すシーケンシャル読み出し処理であり、該シーケンシャル読み出し処理の読み出し対象領域が前記他の制御装置配下の単位記憶領域における最終アドレスを含むか否かを判定し、
    前記判定された前記最終アドレスを含むシーケンシャル読み出し処理に関する制御情報を前記他の制御装置に通知し、前記他の制御装置配下の単位記憶領域における読み出し処理の実行指示を行う
    処理をプロセッサに実行させることを特徴とする制御プログラム。
  8. 自制御装置配下の単位記憶領域と他の制御装置配下の単位記憶領域に分散して格納された情報の読み出し処理を制御する処理をプロセッサに実行させる制御プログラムであって、
    前記他の制御装置配下の単位記憶領域に格納された情報を論理アドレス順に読み出すシーケンシャル読み出し処理の読み出し対象領域の前記単位記憶領域における最終アドレスを含む、前記他の制御装置から通知されたシーケンシャル読み出し処理に関する制御情報に基づいて、自制御装置配下の単位記憶領域の読み出し処理と通知元の制御装置の読み出し処理とがシーケンシャル読み出し処理であるかを判定し、
    前記判定されたシーケンシャル読み出し処理に関わる自制御装置配下の単位記憶領域の情報を予め読み出してキャッシュメモリに記憶させるプリフェッチを行う
    処理をプロセッサに実行させることを特徴とする制御プログラム。
JP2013058575A 2013-03-21 2013-03-21 制御装置、ストレージシステム、及び制御プログラム Active JP6079347B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013058575A JP6079347B2 (ja) 2013-03-21 2013-03-21 制御装置、ストレージシステム、及び制御プログラム
US14/196,290 US9529721B2 (en) 2013-03-21 2014-03-04 Control device, and storage system
EP14158050.6A EP2782002A2 (en) 2013-03-21 2014-03-06 Control device, storage system, and control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013058575A JP6079347B2 (ja) 2013-03-21 2013-03-21 制御装置、ストレージシステム、及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2014182755A JP2014182755A (ja) 2014-09-29
JP6079347B2 true JP6079347B2 (ja) 2017-02-15

Family

ID=50272315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013058575A Active JP6079347B2 (ja) 2013-03-21 2013-03-21 制御装置、ストレージシステム、及び制御プログラム

Country Status (3)

Country Link
US (1) US9529721B2 (ja)
EP (1) EP2782002A2 (ja)
JP (1) JP6079347B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10001927B1 (en) * 2014-09-30 2018-06-19 EMC IP Holding Company LLC Techniques for optimizing I/O operations
US11314446B2 (en) * 2020-06-25 2022-04-26 Micron Technology, Inc. Accelerated read translation path in memory sub-system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694581A (en) * 1993-09-07 1997-12-02 Industrial Technology Research Institute Concurrent disk array management system implemented with CPU executable extension
DE69521549T2 (de) * 1994-04-04 2001-10-25 Hyundai Electronics America, Milpitas Verfahren zur Verwaltung gemeinsamer Mittel mehrerer Verarbeitungseinheiten
JP2845162B2 (ja) * 1995-05-10 1999-01-13 日本電気株式会社 データ転送装置
JP2001125753A (ja) 1999-10-28 2001-05-11 Nec Corp ディスクアレイ装置
US6546459B2 (en) * 2001-03-15 2003-04-08 Hewlett Packard Development Company, L. P. Redundant data storage systems and methods of operating a redundant data storage system
JP4969795B2 (ja) * 2005-05-12 2012-07-04 株式会社日立製作所 記憶制御システム
US7653783B2 (en) * 2005-10-07 2010-01-26 Agere Systems Inc. Ping-pong state machine for storage-device array
JP2007241927A (ja) * 2006-03-13 2007-09-20 Toshiba Corp データ記憶装置及び方法
JP2008027316A (ja) 2006-07-24 2008-02-07 Nec Corp ディスクアレイ装置、ディスクアレイ装置におけるデータ読み出し方法及びデータ読み出しプログラム
JP5057755B2 (ja) * 2006-11-28 2012-10-24 株式会社日立製作所 記憶制御装置及びその制御方法
JP2008250961A (ja) * 2007-03-30 2008-10-16 Nec Corp 記憶媒体の制御装置、データ記憶装置、データ記憶システム、方法、及び制御プログラム
JP4934820B2 (ja) * 2007-05-29 2012-05-23 富士通株式会社 Raid装置及びraid装置のストライプ変換制御方法
JP4686564B2 (ja) * 2008-03-28 2011-05-25 株式会社東芝 負荷分散システム
JP2010049502A (ja) * 2008-08-21 2010-03-04 Hitachi Ltd ストレージサブシステム、及びこれを有するストレージシステム

Also Published As

Publication number Publication date
EP2782002A2 (en) 2014-09-24
US20140289478A1 (en) 2014-09-25
US9529721B2 (en) 2016-12-27
JP2014182755A (ja) 2014-09-29

Similar Documents

Publication Publication Date Title
US10296255B1 (en) Data migration techniques
US10042560B2 (en) Method and storage array for processing a write data request
US8566550B2 (en) Application and tier configuration management in dynamic page reallocation storage system
JP6074056B2 (ja) 計算機システムおよびデータ制御方法
EP2751698B1 (en) Computer system with processor local coherency for virtualized input/output
KR101378270B1 (ko) Sas 확장기를 포함하는 저장 시스템에서 데이터 판독을 가능하게 하기 위한 방법, 시스템 및 sas 확장기 디바이스
US11698868B2 (en) Logging pages accessed from I/O devices
KR20140040998A (ko) 로그기반 데이터 저장 시스템의 관리방법
CN107797763B (zh) 固态驱动器、驱动器和控制固态驱动器的方法
JP6068676B2 (ja) 計算機システム及び計算機システムの制御方法
EP3037949B1 (en) Data duplication method and storage array
US10101917B1 (en) Evaluating and selecting data caching techniques
JP6079347B2 (ja) 制御装置、ストレージシステム、及び制御プログラム
CN109947667A (zh) 数据访问预测方法和装置
KR101456370B1 (ko) 스토리지 관리 방법 및 장치
JP6232936B2 (ja) 情報処理装置、記憶装置制御回路及び記憶装置の制御方法
CN114327272A (zh) 一种数据处理方法、固态硬盘控制器及固态硬盘
US11347637B2 (en) Memory system and non-transitory computer readable recording medium
US9632950B2 (en) Storage control device controlling access to a storage device and access controlling method of a storage device
KR20090007084A (ko) 디스크 어레이 매스 프리페칭 방법
CN101221539B (zh) 提高缓存性能的方法及缓存系统
JP6200100B2 (ja) 計算機システム
WO2017168690A1 (ja) ストレージ装置、及び方法
WO2014155772A1 (ja) 記憶装置制御システム、記憶装置制御装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170102

R150 Certificate of patent or registration of utility model

Ref document number: 6079347

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150