JP6119533B2 - ストレージ装置,ステージング制御方法及びステージング制御プログラム - Google Patents

ストレージ装置,ステージング制御方法及びステージング制御プログラム Download PDF

Info

Publication number
JP6119533B2
JP6119533B2 JP2013202312A JP2013202312A JP6119533B2 JP 6119533 B2 JP6119533 B2 JP 6119533B2 JP 2013202312 A JP2013202312 A JP 2013202312A JP 2013202312 A JP2013202312 A JP 2013202312A JP 6119533 B2 JP6119533 B2 JP 6119533B2
Authority
JP
Japan
Prior art keywords
staging
amount
storage device
period
ssd
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
JP2013202312A
Other languages
English (en)
Other versions
JP2015069353A (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 JP2013202312A priority Critical patent/JP6119533B2/ja
Priority to US14/492,101 priority patent/US9501413B2/en
Publication of JP2015069353A publication Critical patent/JP2015069353A/ja
Application granted granted Critical
Publication of JP6119533B2 publication Critical patent/JP6119533B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • 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/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • 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
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージ装置,ステージング制御方法及びステージング制御プログラムに関する。
近年、記憶媒体にフラッシュ(Flash)メモリを採用したSSD(Solid State Drive)の低価格化や大容量化、高性能化が進んでいる。これに伴い、エンタープライズ向けのストレージ装置においては、DRAM(Dynamic Random Access Memory)やDDR SDRAM(Double Data Rate Synchronous DRAM))等の一般的な揮発性メモリに加え、SSDをデータキャッシュとして採用することで高性能化を図ることが行なわれている。
ここで、SSDは、上述した一般的な揮発性メモリ(以下、DRAM/DDRという)と比べて以下の特性を有する。
(1)容量が大きく、安価な不揮発メモリとして使用可能である。
(2)書込めるデータの総量に限界がある。すなわち、いわゆる寿命がある。なお、SSDの寿命は、SSD内に搭載されているフラッシュメモリの種類(SLC(Single Level Cell),MLC(Multi Level Cell))や搭載量により異なる。
(3)DRAM/DDRよりもアクセス性能が低い
一般に、アクセス性能が高いDRAM/DDRは1次キャッシュとして使用され、SSDは2次キャッシュとして使用されている。
特開平10−154101号公報 特開2008−310741号公報 特開2009−163647号公報
しかしながら、このような従来のストレージ装置において、SSDをストレージ装置の2次キャッシュとして使用する場合には、以下のような課題がある。
すなわち、上述の如くSSDには寿命があり、ステージングが多いと、この寿命が短くなる。なお、ステージングとは、HDD(Hard Disk Drive)等の記憶装置から読み出したデータを2次キャッシュ(SSD)に書き込むことをいう。
また、SSDにおいては、リードとライトの総性能に上限があり、SSDに一度に大量のステージング(ライト)を行なうと、その分リード性能が低下する。
図11はSSDにおけるライト量とリード性能との関係を示す図である。この図11に示すように、SSDにおいてライト量が増加すると(図中右方向参照)、リード性能が著しく低下する。これは、SSDでは一般的にリードに比べてライトの重みの方が大きいことによる。
1つの側面では、本発明は、半導体記憶装置を効率的に使用できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、このストレージ装置は、記憶装置と半導体記憶装置とを有するストレージ装置であって、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるキャッシュ制御部と、前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なうステージング制御部とを備える。
一実施形態によれば、半導体記憶装置を効率的に使用することができる。
実施形態の一例としてのストレージ装置のコントローラのハードウェア構成を示す図である。 実施形態の一例としてのストレージ装置のコントローラの機能構成を示す図である。 実施形態の一例としてのストレージ装置における1次キャッシュと2次キャッシュとの関係を示す図である。 実施形態の一例としてのストレージ装置におけるSSDのリード量及びステージング量の時間推移を示す図である。 実施形態の一例としてのストレージ装置におけるSSD性能特性テーブルを例示する図である。 実施形態の一例としてのストレージ装置における短周期テーブルを例示する図である。 実施形態の一例としてのストレージ装置における長周期テーブルを例示する図である。 実施形態の一例としてのストレージ装置における装置起動時の処理を説明するフローチャートである。 実施形態の一例としてのストレージ装置におけるSSDへのI/O要求が行なわれる場合の処理を説明するフローチャートである。 実施形態の一例としてのストレージ装置におけるステージング制限処理を説明するフローチャートである。 SSDにおけるライト量とリード性能との関係を示す図である。
以下、図面を参照して本ストレージ装置,ステージング制御方法及びステージング制御プログラムの実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
図1は実施形態の一例としてのストレージ装置1のコントローラのハードウェア構成を示す図、図2はその機能構成を示す図である。
ストレージ装置1は、1つ以上(図1に示す例では3つ)のHDD(Hard Disk Drive)25を備え、ホスト装置3(図3参照)に記憶領域を提供する。
ストレージ装置1は、図1に示すように、複数のHDD25を備えるとともに、コントローラ2を備える。
コントローラ2は、ストレージ装置1における種々の制御を行なうものであり、ホスト装置3からのストレージアクセス要求(アクセス制御信号:ホストI/O)に従って、HDD25へのアクセス制御等、各種制御を行なう。コントローラ2は、例えば、コントローラモジュール(Controller Module;CM)と呼ばれることもある。なお、ストレージ装置1においては、2つ以上のコントローラ2を備えてもよい。
コントローラ2は、ホスト接続用I/Oコントローラ21を介して図示しないネットワークに接続され、ホスト装置3からのリード/ライト等のコマンドを受け取り、HDD接続用I/Oコントローラ22を介してディスクの制御を行なう。
コントローラ2は、図2に示すように、ホスト接続用I/Oコントローラ21,プロセッサ10,HDD接続用I/Oコントローラ22,メインメモリ23及びSSD24を備える。又、コントローラ2において、これらのホスト接続用I/Oコントローラ21,プロセッサ10,HDD接続用I/Oコントローラ22,メインメモリ23及びSSD24はメインバス26を介して相互に通信可能に接続されている。
HDD25は、各種データやプログラム等を格納する記憶装置である。HDD25は2つ以下もしくは4つ以上備えてもよい。又、複数のHDD25を用いてRAID(Redundant Arrays of Inexpensive Disks)を形成してもよい。
ホスト接続用I/Oコントローラ21は、ホスト装置3とLAN(Local Area Network)や光回線等の通信回線を介して接続され、このホスト装置3との間で各種コマンドやデータの授受を行なう通信アダプタである。ホスト装置3から送信されるリードコマンドやライトコマンド等のI/Oコマンドや各種データは、このホスト接続用I/Oコントローラ21により受信される。又、HDD25等から読み出されたデータ等は、このホスト接続用I/Oコントローラ21を介してホスト装置3に送信される。
このホスト接続用I/Oコントローラ21としては、ストレージ装置1とホスト装置3との間のインタフェースの規格に応じて、例えば、LANインタフェースやCA(Channel Adapter)等、種々のインタフェースを用いることができる。
HDD接続用I/Oコントローラ22は、各HDD25と通信可能に接続され、これらのHDD25との間で各種コマンドやデータの授受を行なうストレージインタフェースである。このHDD接続用I/Oコントローラ22は、例えば、デバイスアダプタ(Device Adapter;DA)と呼ばれることもある。
このHDD接続用I/Oコントローラ22としては、ストレージ装置1とHDD25との間のインタフェースの規格に応じて、例えば、SCSI(Small Computer System Interface)やiSCSI,FC(Fibre Channel)等、種々のインタフェースを用いることができる。
メインメモリ23は、主記憶装置であり、プロセッサ10が各種処理を実行する際のワーキングメモリとして利用されるとともに、ストレージ装置1としての1次キャッシュとしても用いられる。このメインメモリ23としては、例えば、DRAMやDDR SDRAM等の一般的な揮発性メモリが用いられる。
SSD24は、記憶媒体に半導体素子メモリを用いた半導体記憶装置であり、ストレージ装置1としての2次キャッシュとして用いられる。このSSD24は、メインメモリ23よりもアクセス性能が低く(低速)、且つ、メインメモリ23よりも大容量である。
図3は実施形態の一例としてのストレージ装置1における1次キャッシュと2次キャッシュとの関係を示す図である。
この図3に示すように、HDD25から読み出されたデータは、2次キャッシュであるSSD24に格納(ステージング)される。又、このSSD24に格納されたデータは読み出され(キャッシュリード)、1次キャッシュであるメインメモリ23に格納される。
ホスト装置3からリード要求が行なわれると、コントローラ2は、リード対象のデータがメインメモリ23に格納されている場合には(キャッシュヒット)、このメインメモリ23から読み出したデータをホスト装置3に応答する。リード対象のデータがメインメモリ23に格納されていない場合には(キャッシュミス)、コントローラ2は、SSD24に読み出し対象のデータが格納されているか否かを確認する。
リード対象のデータがSSD24に格納されている場合には(キャッシュヒット)、このSSD24から読み出したデータをメインメモリ23に格納した後、ホスト装置3に応答する。一方、リード対象のデータがSSD24にも格納されていない場合(キャッシュミス)には、コントローラ2は、HDD25からリード対象のデータを読み出してSSD24にステージングし、メインメモリ23にキャッシュリードした後、ホスト装置3に応答する。
プロセッサ10は、種々の制御や演算を行なう処理装置(コンピュータ)であり、図示しないROM(Read Only Memory)やHDD25に格納されたOSやプログラム(デバイスドライバ)を実行することにより、種々の機能を実現する。なお、これらのOSやプログラムはSSD24に格納してもよい。
すなわち、プロセッサ10は、図2に示すように、ホストI/O制御部11,キャッシュ制御部12,ステージング制御部13,SDD制御部14及びストレージ制御部15として機能する。
なお、これらのホストI/O制御部11,キャッシュ制御部12,ステージング制御部13,SDD制御部14及びストレージ制御部15としての機能を実現するためのプログラム(デバイスドライバ,ステージング制御プログラム)は、例えば図示しない記録媒体に記録された形態で提供される。そして、プロセッサ10(コンピュータ)はその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してプロセッサ10に提供するようにしてもよい。
ホストI/O制御部11,キャッシュ制御部12,ステージング制御部13,SDD制御部14及びストレージ制御部15としての機能を実現する際には、内部記憶装置(本実施形態ではメインメモリ23等)に格納されたプログラムがプロセッサ10によって実行される。このとき、記録媒体に記録されたプログラムをプロセッサ10が読み取って実行するようにしてもよい。
ホストI/O制御部11は、ホスト装置3との通信を制御する。このホストI/O制御部11は、上述したホスト接続用I/Oコントローラ21を介して、ホスト装置3との間でI/Oコマンドや各種データの授受を行なう。
ストレージ制御部15は、HDD25のハードウェア制御を行なう。すなわち、ストレージ制御部15は、HDD25へのデータのリードやライトの制御を行なう。このストレージ制御部15は、例えば、キャッシュ制御部12から、データのリード要求を受信し、HDD25から、この指定されたデータを読み出す。
SDD制御部14は、SSD24のハードウェア制御を行なう。すなわち、SSD制御部14は、SSD24へのデータのリードやライトの制御を行なう。このSSD制御部14は、例えば、後述するステージング制御部13による制御に従って、SSD24に対しするデータの書き込みを行なう。
具体的には、SSD制御部14は、後述の如くステージング制御部13により求められたステージング量に応じて、SSD24に対するステージングを行なう。ステージングを行なう場合には、ストレージ制御部15がHDD25から読み出したデータをSSD制御部14がSSD24に書き込む。
これらのSSD制御部14及びストレージ制御部15としての機能は、例えば、ディスクドライバにより実現される。
キャッシュ制御部12は、メインメモリ23及びSSD24を用いたキャッシュ制御を行なう。
キャッシュ制御部12は、例えば、ホスト装置2からのリード要求に対応するデータがSSD24に格納されていない場合には、ストレージ制御部15に対象のデータをHDD25から読み出させる。そして、キャッシュ制御部12は、このHDD25から読み出させたデータを、SSD制御部14によりSSD24にステージングさせる。
また、キャッシュ制御部12は、ホスト装置2からのリード要求に対応するデータがメインメモリ23に格納されていない場合には、SSD制御部14に対象のデータをSSD24からキャッシュリードさせ、メインメモリ23に格納させる制御も行なう。
このキャッシュ制御部12としての機能は、例えば、キャッシュドライバにより実現される。
ステージング制御部13は、SSD制御部14によるステージングのライト量を制限(制御)する。具体的には、ステージング制御部13は、SSD(2次キャッシュ)24の使用状況について学習及び予測を行ない、最適なステージング量を決定する。そして、この決定したステージング量に基づきSSD制御部14によるキャッシュアクセス(ステージング及びリード)をコントロールする。
ここで、本ストレージ装置1の2次キャッシュとして用いられるSSD24は、例えば数TB程度の比較的大きな容量を有するので、安定運用に達するまでに時間を要する。ストレージ装置1においては、装置起動後、SSD24が安定運用状態に達するまでに、SSD24においてリード量とステージング量とがそれぞれ特有の推移を示す。
図4は実施形態の一例としてのストレージ装置1におけるSSD24のリード量及びステージング量の時間推移を示す図である。この図4においては、ストレージ装置1の起動時からの時間経過に伴うSSD24へのリード量とライト量との各変化を示している。この図4に示すように、SSD24においては、ステージング量は時間経過に従って減少する一方で、リード量は時間経過に従って増加することがわかる。
以下、SSD24の使用期間を、ステージング期(第1の期間),学習期(第2の期間)及び安定期(第3の期間)の3つに分けて考える。
本ストレージ装置1の起動後、SSD24へのステージング量(ライト量)が所定の第1の閾値を超えるまでの期間をステージング期(第1の期間)という。
また、ステージング期の後、SSD24からの単位時間当たりのリード量の変動が所定範囲内になるまでの期間を学習期(第2の期間)という。更に、学習期後の期間を安定期(第3の期間)という。
図4に示すように、ステージング期においては、ステージング量が多い一方で、SSD24におけるキャッシュヒット量、すなわち、リード量は少ない(ほとんどない)。又、学習期においては、ステージング量は減少する一方で、SSD24におけるキャッシュヒット(リード)量は増加する。更に、安定期においては、ステージング量は少ない状態で安定する一方で、キャッシュヒット(リード)量は多い状態で安定する。なお、ステージング量は、詳細に見ると変動がある(図4中破線丸参照)。
ステージング制御部13は、これらのステージング期、学習期及び安定期の各期間への切り替わりを検知する機能を備える。すなわち、ステージング制御部13は、本ストレージ装置1の起動後、SSD24へのステージング量(ライト量)が所定の第1の閾値を超えたことを検知するまでの間はステージング期と認識する。
また、SSD24へのステージング量(ライト量)が所定の第1の閾値を超えたことを検知した後、学習期であると認識する。その後、SSD24からの単位時間当たりのリード量の変動が所定範囲内に安定したことを検知すると安定期と認識する。
なお、ステージング制御部13は、これらの期間の切り替わりを検知すると、例えばメインメモリ23等における所定の領域等に、いずれの期間であるかを示すフラグ等を設定することが望ましい。
また、ステージング制御部13は、SSD性能特性テーブルT1を作成する機能を備えるとともに、SSD24における処理履歴を短周期テーブルT2及び長周期テーブルT3として作成する機能を有する。
以下に、ステージング制御部13による各テーブルの作成手法について説明する。
(1)SSD性能特性テーブルT1
ステージング制御部13は、例えば本ストレージ装置1の起動時に、SSD24のリード/ライト競合時の性能特性を測定し、この測定結果に基づいてSSD性能特性テーブルT1を作成する。
図5は実施形態の一例としてのストレージ装置1におけるSSD性能特性テーブルT1を例示する図である。
SSD性能特性テーブルT1は、SSD24の性能限界(性能飽和)状態でのライト(ライト性能)とリードの負荷(リード負荷)の組み合わせを示す性能特性情報であり、図5に示す例においては、ライト量とリード量との組み合わせとして構成されている。
ライト量は、ライト負荷量を表す値であって、SSD24にライト処理だけを行わせた場合における、ライトの最大処理性能の値(例えばコマンド数やデータ量)を100%とした場合の、この最大処理性能に対する比(単位:%)として表される。なお、ライトの最大処理性能は、例えば、それ以上ライト負荷を与えても処理量の増加が頭打ちとなることを検知することで判断することができる。
図5に示す例においては、SSD性能特性テーブルT1に、ライト量として、10%,20%,30%,・・・80%及び90%の9段階の負荷量が登録されている。
なお、このSSD性能特性テーブルT1におけるライト量はこれらの9段階に限定されるものではなく、8段階以下もしくは10段階以上のライト量を登録してもよく、種々変形して実施することができることは言うまでもない。
リード量は、単位時間当たり(例えば、1秒毎)にSSD24に書き込み可能なデータ量(例えば、単位:MB)であり、SSD24に上述したライト量で表されるライト負荷がかかっている状態で、リードすることができるデータ量である。そして、SSD性能特性テーブルT1においては、リード負荷とライト性能とが対応付けられている。
すなわち、このSSD性能特性テーブルT1に登録されているライト量とリード量との組み合わせは、当該ライト量のライト処理を行なわせた状態で、当該リード量のリード処理を実行させると、SSD24が性能限界状態となり、処理能力が飽和状態となることを示す。例えば、SSD24に、そのライトの最大処理性能の10%の負荷がかかっている状態においては、毎秒200MBのリード処理を行なわせると、当該SSD24の性能は飽和状態(性能限界)となる。
つまり、SSD性能特性テーブルT1を参照することで、各ライト負荷の状態で、どれだけのリード量を付加すればSSD24が性能限界状態となるかを知ることができる。
SSD性能特性テーブルT1は、例えば以下の(a1),(a2)の手順で作成することができる。
(a1)SSD24に対して、その負荷状況を測定しながら、ライト要求をその処理性能が飽和するまで多重発行することで、ライトの最大性能を特定する。すなわち、SSD24の負荷状態が頭打ちになった時のライト要求の発行量を求める。特定したライトの最大性能値をメインメモリ23等の記憶領域に格納する。なお、SSD24の負荷は、既知の種々の手法を用いて実現することができ、便宜上その説明は省略する。
(a2)求めたライト最大性能値を100%とした場合の、0%〜100%の範囲を複数段階に分割し、各段階のライト性能を示す値毎に、リード性能の増加が頭打ちになるリード負荷の上限値を求め、SSD性能特性テーブルT1に登録する。
図5においては、ライト量を、10%,20%,30%,40%,50%,60%,70%,80%及び90%の、10%刻みの9段階に分割した例を示している。
ステージング制御部13は、例えば、先ず、ライト最大性能値の10%のライト負荷となるように複数のライト要求を発行する。そして、この状態で、ステージング制御部13は、SSD24の負荷状況を測定しながら、SSD制御部14によりリード負荷を増加させていく。
ステージング制御部13は、リード性能が頭打ちになった時点でのリード量(飽和リード量;図5に示す例では200MB)を決定し、この飽和リード量をSSD性能特性テーブルT1に当該ライト量に対応付けて登録する。ステージング制御部13は、SSD性能特性テーブルT1における他のライト量についても同様の処理をそれぞれ行ない、各ライト負荷での飽和リード量をそれぞれ決定し、SSD性能特性テーブルT1に登録することで、SSD性能特性テーブルT1を完成させる。
(2)短周期テーブルT2及び長周期テーブルT3
ステージング制御部13は、SSD24へのリードアクセスやライトアクセスを行なう毎に、その処理実績(実績情報)に基づいて短周期テーブルT2及び長周期テーブルT3を作成する。
ここで、短周期テーブルT2は、SSD24へのリードアクセスとライトアクセスとの実績を短周期(例えば1時間間隔)で集計した、SSD24の処理履歴情報である。又、長周期テーブルT3は、SSD24へのリードアクセスとライトアクセスとの実績を短周期よりも長い長周期(例えば10日間隔)で集計した、SSD24の処理履歴情報である。
図6は実施形態の一例としてのストレージ装置1における短周期テーブルT2を例示する図、図7はその長周期テーブルT3を例示する図である。
これらの短周期テーブルT2及び長周期テーブルT3においては、リードアクセスの実績情報として、キャッシュ使用率及びヒット量(リード量)が格納される。又、ライトアクセスの実績情報として、ライト要求量及び実ライト量が格納される。
キャッシュ使用量は、SSD24に格納されているキャッシュデータ量を示す。図6及び図7に示す例では、キャッシュ使用量として、SSD24の容量に対する格納されているキャッシュデータのデータサイズの割合を%値で表している。
ヒット量は、SSD24においてリードリクエストに対して応答(リード)できた(キャッシュヒットした)データ量(リード量,キャッシュヒット量)である。
ライト要求量は、SSD24に対してライト要求が行なわれたデータ量であり、実ライト量は、実際にSSD24に書き込まれたデータ量である。
これらのキャッシュ使用率,ヒット量,ライト要求量及び実ライト量の各情報は、既知の手法で取得することができ、例えば、上述したキャッシュ制御部12によって管理される。
短周期テーブルT2においては、これらの情報を、所定期間(例えば1時間)毎に集計して登録している。なお、図6に示す例においては、時系列にエントリが並べて登録されており、図中上方が古い情報であり、最下部のエントリが直近(最新)の集計結果を示す。又、この図6に示す例においては、1時間単位で10日分の実績情報が登録されている。
例えば、図6に示す例において、最新の1時間においては、平均してSSD24の記憶領域の内56%の領域にキャッシュデータが格納されており、又、SSD24から合計で26MB分のリード応答が行なわれたことを示す。更に、この最新の1時間においては、SSD24に対して112,476MBのライト要求が行なわれ、又、この内、90,373MBのデータがSSD24に実際に格納されたことを示す。
長周期テーブルT3においては、上述したキャッシュ使用率,ヒット量,ライト要求量及び実ライト量の各情報を、短周期よりも長い所定期間(例えば10日)毎に集計して登録している。例えば、長周期テーブルT3に登録された各データを積算等することにより、長周期テーブルT3の各データを算出してもよい。
なお、図7に示す例においては、図中下方が古い情報であり、最上部のエントリが直近(最新)の10日間の集計結果を示す。又、この図7に示す例においては、10日間単位で100日分の実績情報が登録されている。
例えば、図7に示す例において、最新の10日間においては、平均してSSD24の記憶領域の内30%の領域にキャッシュデータが格納されており、又、SSD24から積算して68GB分のリード応答が行なわれたことを示す。更に、この最新の10日間においては、SSD24に対して積算して34,567GBのライト要求が行なわれ、又、この内、21,678GBのデータがSSD24に実際に格納されたことを示す。
なお、これらのSSD性能特性テーブルT1や短周期テーブルT2及び長周期テーブルT3は、メインメモリ23等の所定の領域に格納される。
また、ステージング制御部13は、上述した、ステージング期,学習期及び安定期の各期間で、それぞれSSD24の最適なステージング量を決定する。
(A)ステージング期
ステージング期においては、リード要求によるキャッシュヒットはほとんど見込めなく、又、SSD24を早く安定期に移行させるために、ステージング期においては、ステージング量の制限は行なわない。このステージング期においては、ステージング制御部13は、ステージングを優先して実施する(第1のステージング量制御)。
すなわち、この第1のステージング量制御においては、ステージング制御部13は、キャッシュ制御部12からの指示に従い、HDD25から読み出される全てのデータをSSD24にステージングさせる制御を行ない、SSD24へのステージング量の抑制は行なわない。リードはステージングの間に余裕があれば実施する。
(B)学習期
学習期においても、ステージング期と同様にステージングを優先して動作させる。ただし、リードについても、直近のヒット率から見込みを予測し、最低限のステージングの制限を実施する。
学習期においては、SSD24内のデータが短期的に変動するので、上述した短周期テーブルT2を参照して、直近1時間前のヒット量(キャッシュヒット量)と2時間前のヒット量とをそれぞれ読み出す。そして、これらのヒット量によって増加傾向を求め、その増加傾向に基づき、次の1時間でのヒット量を予測(ヒット量予測)する。
ステージング制御部13は、例えば、以下の式(1)に基づき、予測ヒット量を算出する。
予測ヒット量={(1時間前のヒット量)−(2時間前のヒット量)}
+(1時間前のヒット量)・・・(1)
ステージング制御部13は、算出した予測ヒット量に基づき、上述したSSD性能特性テーブルT1を参照して、このヒット量に対応するライト量を決定する。
例えば、図6に例示する短周期テーブルT2において、1時間前のヒット量は26MBであり、2時間前のヒット量は22MBであるので、上記式(1)により、予測ヒット量は、(26−22)+26=30MBとして求められる。
なお、このステージング制御部13によるヒット量予測は、上記式(1)により行なうことに限定されるものではなく、種々変形して実施することができる。例えば、直近の3つ以上のヒット量を用いて増加傾向を求めてもよい。
ステージング制御部13は、この予測ヒット量30MBに基づいて、図5に示すSSD性能特性テーブルT1を参照して、ライト量60%を決定する。このライト量60%との値は、30MBのリード量に影響を与えることなく、SSD24の最大限の性能を発揮できる値である。つまり、SSD24から予測ヒット量の30MBのリードを行なった状態では、SSD24のライトの最大性能の60%の負荷でライトを行なわせると、SSD24をその最高の性能で活用できることを示す。
なお、算出した予測ヒット量と同じ値がSSD性能特性テーブルT1にない場合には、SSD性能特性テーブルT1中における予測ヒット量に近似する値を用いることが望ましい。ただし、これに限定されるものではなく、予測ヒット量の値を、繰上げや繰り下げ、四捨五入等を行なうことで、SSD性能特性テーブルT1中から対応する値を決定してもよく、種々変形して実施することができる。
ステージング制御部13は、この決定したライト量に基づいて、SSD制御部14によるステージングを制限する。
具体的には、ステージング制御部13は、前述したSSD24のライトの最大処理性能の値に対して、決定したライト量をかけた値にSSD24の負荷量が収まるようにライト量の負荷を制限する。
例えば、決定されたライト量が60%である場合には、ステージング制御部13は、SSD24の負荷がSSD24の最大性能の60%となるようにライト量を制限する。
このように、学習期においては、ステージング制御部13は、リード性能に影響を与えることなくSSD24の最大限の性能を発揮できるステージング量を決定して、ステージング制御(第2のステージング量制御)を実現する。
これにより、SSD24を、予測されるヒット量(リード量)で稼動させた状態で、SSD24の性能を最大限に発揮できるライト量でSSD24を動作させることができる。すなわち、SSD24を効率的に稼動させることができる。
(C)安定期
安定期においては、リード(リードヒット)処理を優先して実行させ、ステージングについては、SSD24の寿命を全うさせられる量に制限し最低限に留める、第3のステージング量制御を行なう。
ステージング制御部13はSSD24をその寿命を全うさせて使用するための閾値(基準閾値)を以下の式(2)に基づいて算出する。
閾値=(SSD書込み可能量−既書込み量)÷(残使用年数×365×24−SSD既運用時間)÷(60分×60秒÷単位秒) ・・・(2)
ここで、SSD書込み可能量は、SSD24にのべ書き込み可能な総データ量(総書込み可能容量)であり、SSD24が寿命(耐用年数)を迎えるまでに書き込めるデータの総量(寿命性能情報)である。このSSD書込み可能量は、例えば、SSD24の製造メーカ等が提供する仕様等により知ることができる。既書込み量は、その時点で当該SSD24に書き込まれたデータの総量であり、例えば、SSD24の所定領域やストレージ装置1の管理情報から既知の手法で取得することができる。
残使用年数は、当該SSD24の使用を希望する期間(目標使用期間)であり、今後、当該SSD24を使用を予定する期間(例えば、年数)である。例えば、現在使用中のSSD24を後5年間使用し続けたいと考える場合には、残使用年数=5となる。
SSD既運用時間は、当該SSD24を運用した時間(使用実績情報)であり、例えば、SSD24の所定領域やストレージ装置1の管理情報から既知の手法で取得することができる。
単位秒は、ステージング量の制御を行なう単位時間であり、例えば、10秒である。安定期においては、ステージング制御部13は、この単位秒毎(10秒毎)にステージングの制御を行なう。この秒単位は、ユーザが任意に設定することができ、10秒以上もしくは10秒よりも短い時間を指定してもよい。以下、単位秒として10秒の例について示す。
ステージング制御部13は、上記式(2)により、使用中のSSD24を、今後、残使用年数の間使用するためのステージング量の閾値を算出する。
すなわち、安定期においては、ステージング制御部13は、SSD24の寿命を全うさせられる最低限のステージング量(閾値)を算出する。
そして、ステージング制御部13が、単位秒(例えば10秒)あたりに、算出した閾値以下のステージング量となるようにSSD制御部14を制御することで、使用中のSSD24を残使用年数いっぱいまで使用することが可能となる。
ステージング制御部13は、安定期においては、この算出した閾値に基づいて、SSD制御部14によるステージングを制限する。具体的には、ステージング制御部13は、単位時間(単位秒)あたりに、上述した閾値以下となるように、ステージング量を制限する。
また、ステージング制御部13は、安定期においては、上述した閾値に基づき、小さな波で表されるステージング量の変動を吸収する制御と、突発的に発生する大きな波で表されるステージング量の変動を吸収する制御とを行なう。
具体的には、図4中破線丸中に示したように、ステージング量には変動があり、微細な波を形成している。そして、このステージング量の変動において、上記単位秒内のステージングの総計において、前述した閾値を下回る場合もある。
ステージング制御部13は、このように、上記単位秒内のステージングの総計において閾値を下回った分については、その次の単位秒において相殺するようにステージング量を増加させるよう調整する。
例えば、上記式(2)により算出した閾値が10MBである場合に、単位秒としてのある10秒間に行なわれたステージング量が8MBであった場合には、ステージング制御部13は、その次の10秒間において、2MB余計にステージングを行なう。
このように、ステージング制御部13は、ある単位時間において、閾値よりも少ないステージング量であった部分については、閾値との差分のステージング量を、次の単位時間で余計に書き込めるようにする。すなわち、算出した閾値に基づき、書込が少ない部分があった場合に、次の単位時間に持ち越して行なうキャリーオーバーを実現する。なお、閾値との差分のステージング量であって、次の単位時間に持ち越されるステージング量をキャリーオーバー量という場合がある。
また、安定期において、ステージング制御部13は、前述した短周期テーブルT2等を参照して、当日のピーク値を予測する。例えば、直近の10日間のSSD24における、所定期間(例えば1時間)あたりのライトのピーク値とヒット量のピーク値とを取得し、これらの平均値を算出することで、当日のピーク値を予測する。
ステージング制御部13は、この予測したピーク値(予測ピーク値)において、上記式(2)により算出した閾値を超えるステージング量(余剰ステージング量)を算出する。そして、ステージング制御部13は、この余剰ステージング量を所定期間(例えば24時間)で分割した分割余剰ステージング量(キープ量)を、当該所定期間の閾値に加算することで、この24時間のステージング量を均等に減らす。キープ量は、例えば、以下の式(3)で表すことができる。
キープ量=(予測ピーク値−閾値)÷(24時間×60分×60秒÷単位秒)
・・・(3)
すなわち、安定期においては、ステージング制御部13は、予測したピーク値に備えて、予めステージング量を所定期間、均等にキープ量だけ差し引いておく(キープ)。これにより、ステージング量を一定に保つことができる。
これにより、ステージング制御部13が、所定期間内におけるステージング量が、算出した閾値以下のステージング量となり、使用中のSSD24を残使用年数いっぱいまで使用することが可能となる。
また、キャッシュ制御部12から突出して増大するステージング量のステージング要求が行なわれた場合、すなわち、ステージング量の突発的な波が発生した場合には、ステージング制御部13は、このステージング要求の突発的な波を吸収する処理を行なう。すなわち、ステージング量の突発的な波を検知した時点から所定期間(例えば、24時間)、閾値から分割余剰ステージング量を減算することで、この24時間のステージング量を均等に増加させる。
安定期において、ステージングのピークが発生した場合に、ステージング制御部13は、閾値を予め算出したキープ量だけ低下させることでステージング量を所定期間増加させて、発生したステージングのピークを吸収する。つまり、ステージング量を一定に保つことができる。
これにより、ステージング制御部13が、所定期間内におけるステージング量が、算出した閾値以下のステージング量となり、使用中のSSD24を残使用年数いっぱいまで使用することが可能となる。
なお、ステージング量の突発的な波の検知は、種々の手法を用いて行なうことができる。例えば、キャッシュ制御部12からのステージング要求量が、前記閾値を所定量以上(例えば、5倍以上)超える場合に、ステージング量の突発的な波が発生したと判断することができる。
上述の如く構成された実施形態の一例としてのストレージ装置1における装置起動時の処理を、図8に示すフローチャート(ステップA1,A2)に従って説明する。
装置起動時において、ステージング制御部13は、SSD性能特性テーブルT1を作成する。
ステップA1において、ステージング制御部13は、SSD24に対して、その負荷を測定しながら、ライト要求をその処理性能が飽和するまで多重発行することで、ライトの最大性能を特定する。
また、ステージング制御部13は、ライト最大性能値を段階的に減少させた複数の負荷割合となるようにライト要求を発行するとともに、各負荷割合において、リード性能が飽和するまで複数のリード要求を発行する。
ステップA2において、ステージング制御部13は、ライト負荷割合毎の飽和リード量をそれぞれ決定し、SSD性能特性テーブルT1を作成する。
次に、図9に示すフローチャート(ステップB1〜B6)に従って、実施形態の一例としてのストレージ装置1におけるSSD24へのI/O要求が行なわれる場合の処理を説明する。
SSD24対してI/O要求が行なわれると、ステップB1において、ステージング制御部13は、当該I/O要求に伴ってステージング(ライト)を行なうか否かを確認する。
ステージングを行なう場合には(ステップB1のYESルート参照)、ステップB5において、ステージング制御部13がステージング制限処理を行なう。なお、このステージング制限処理については、図10を用いて後述する。
その後、ステップB6において、ステージング制限がされているか否かを確認する。ステージング制限がされていない場合には(ステップB6のNOルート参照)、I/O要求に基づき、短周期テーブルT2や長周期テーブルT3を更新する(ステップB2,B3)。その後、ステップB4において、SSD制御部14がSSD24に対するI/O処理、すなわちステージング処理(ライト処理)を実行し、処理を終了する。
一方、ステージングを行なわない場合、すなわちI/O要求がリード要求である場合には(ステップB1のNOルート参照)、このI/O要求に基づき、短周期テーブルT2や長周期テーブルT3を更新する(ステップB2,B3)。その後、ステップB4において、SSD制御部14がSSD24に対するI/O処理(リード処理)を実行し、処理を終了する。
また、ステージングが制限されている場合には(ステップB6のYESルート参照)、ステージング要求を処理せずに終了する。すなわち、ステップB2〜B4の処理をスキップして、処理を終了する。この場合、2次キャッシュにのせておきたいデータ(将来使われる可能性があるデータ)のステージング要求は、条件が合わず実施されないが、当該データは所詮リードキャッシュのデータなので問題はない。この後に当該データが必要となった場合には、HDD25内から読み出すことになる。
次に、実施形態の一例としてのストレージ装置1におけるステージング制限処理を、図10に示すフローチャート(ステップC1〜C7)に従って説明する。
ステージング制御部13は、キャッシュ制御部12からステージング要求を受信すると、ステップC1において、ステージング期であるか否かを確認する。ステージング期である場合には(ステップC1のYESルート参照)、第1のステージング量制御を行なう。すなわち、SSD24へのステージング量の抑制を行なうことなく、HDD5から読み出される全てのデータをSSD24にステージングさせるべく、ステージング制御部13はステージング制御なしと決定する。その後、図9に示すフローチャートのステップB6に移行する。
また、ステージング期でない場合には(ステップC1のNOルート参照)、ステージング制御部13は、次に、ステップC2において、学習期であるか否かを確認する。学習期である場合には(ステップC2のYESルート参照)、第2のステージング量制御を行なう。すなわち、ステップC3において、ステージング制御部13は、リード性能に影響を与えない最大限のステージング量を計算する。
ステップC4において、ステージング制御部13は、受信したステージング要求を実行した場合に、ステージング量の総計がステップC3において算出したステージング量を超えるか否かを判定する。判定の結果、ステージング量の総計がステップC3において算出したステージング量を超える場合には(ステップC4のYESルート参照)、ステージング制御部13はステージング制御ありと決定して、図9に示すフローチャートのステップB6に移行する。
一方、ステージング量の総計がステップC3において算出したステージング量を超えない場合には(ステップC4のNOルート参照)、ステージング制御部13はステージング制御なしと決定して、図9に示すフローチャートのステップB6に移行する。
また、学習期でない場合には(ステップC2のNOルート参照)、以後、安定期の処理として、第3のステージング量制御を行なう。すなわち、ステップC5において、ステージング制御部13は、上記式(2)を用いて、SSD24の寿命を全うさせられる最低限の単位秒あたりのステージング量を算出する。
そして、ステップC6において、ステージング制御部13は、キャリーオーバー量を算出し、ステップC7において、ステージング制御部13は、受信したステージング要求を実行した場合に、単位時間において、受信したステージング量とキャリーオーバー量との総計が、上記式(2)を用いて算出した閾値を超えるか否かを判定する。すなわちステージング量超えとなるか否かの判定を行なう。
判定の結果、ステージング量超えとなる場合には(ステップC7のYESルート参照)、ステージング制御部13はステージング制御ありと決定して、図9に示すフローチャートのステップB6に移行する。又、ステージング量超えとならない場合には(ステップC7のNOルート参照)、ステージング制御部13はステージング制御なしと決定して、図9に示すフローチャートのステップB6に移行する。
このように、実施形態の一例としてのストレージ装置1によれば、SSD24の使用期間を、ステージング期,学習期及び安定期の3つに分けて、各期間においてそれぞれ最適な手法でステージング制御を行なうことで、SSD24を効率的に使用することができる。
すなわち、ステージング期においては、ステージングを優先的に行なわせる第1のステージング量制御を行なうことで、SSD24を短時間で安定期に移行させることができる。
学習期においては、ステージング制御部13は第2のステージング量制御を行なう。すなわち、ステージング制御部13は、短周期テーブルT2に基づきヒット量(リード量)予測を行ない、更に、算出した予測ヒット量に基づき、上述したSSD性能特性テーブルT1を参照して、このヒット量に対応するライト量を決定する。そして、この決定したライト量に基づいて、SSD制御部14によるステージングを制限する。
つまり、学習期においては、ステージング制御部13は、リード性能に影響を与えることなくSSD24の最大限の性能を発揮できるステージング量を決定して、ステージング制御を実現する。これにより、SSD24を、予測されるヒット量(リード量)のリード性能を阻害することなく、SSD24の性能を最大限に発揮できるライト量でSSD24を動作させることができる。すなわち、SSD24を効率的に稼動させることができる。
また、学習期においては、SSD24内のデータが短期的に変動するので、短周期テーブルT2を用いることで、信頼性の高いヒット量予測を行なうことができる。
安定期においては、ステージング制御部13は第3のステージング量制御を行なう。すなわち、ステージング制御部13は、上記式(2)を用いて、SSD24の寿命を全うさせられる最低限の単位秒あたりのステージング量(閾値)を算出する。そして、ステージング制御部13は、閾値よりも少ないステージング量であった部分については、閾値との差分のステージング量を次の単位時間に持ち越してステージングするキャリーオーバーを行なう。これにより、所定期間内におけるステージング量が算出した閾値以下となり、SSD24を指定する期間(残使用年数)いっぱいまで使用することが可能となり、SSD24を効率的に稼動させることができる。
また、安定期において、ステージング制御部13は、短周期テーブルT2を参照して予測ピーク値の算出を行ない、又、上記式(2)により算出した閾値を超える余剰ステージング量を算出する。そして、ステージング制御部13は、この余剰ステージング量を所定期間(例えば24時間)内で分割した分割余剰ステージング量(キープ量)を、当該所定期間の閾値に加算することで、この24時間のステージング量を均等に減らす。これにより、ステージング量を一定に保つことができ、使用中のSSD24を残使用年数いっぱいまで使用することが可能となる。
さらに、安定期において、テージングのピークが発生した場合には、ステージング制御部13は、閾値を予め算出したキープ量だけ低下させることでステージング量を所定期間増加させて、発生したステージングのピークを吸収する。つまり、ステージング量を一定に保つことができる。
装置起動時に、SSD24の性能限界となるリード量とライト量との組合せを示すSSD性能特性テーブルT1を作成することで、当該ストレージ装置1の装置状態に合ったステージング制御を行なうことができ、信頼性を向上させることができる。
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1) 記憶装置と半導体記憶装置とを有するストレージ装置であって、
前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるキャッシュ制御部と、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なうステージング制御部と
を備えることを特徴とする、ストレージ装置。
(付記2)
前記第1のステージング量制御は、
前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせる制御を含むことを特徴とする、付記1記載のストレージ装置。
(付記3)
前記第2のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、付記1又は2記載のストレージ装置。
(付記4)
前記第3のステージング量制御は、
単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、付記1〜3のいずれか1項に記載のストレージ装置。
(付記5)
前記第3のステージング量制御は、
前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、付記4記載のストレージ装置。
(付記6)
記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置におけるステージング制御方法であって、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なう
ことを特徴とする、ステージング制御方法。
(付記7)
前記第1のステージング量制御は、
前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせる制御を含むことを特徴とする、付記6記載のステージング制御方法。
(付記8)
前記第2のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、付記6又は7記載のステージング制御方法。
(付記9)
前記第3のステージング量制御は、
単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、付記6〜8のいずれか1項に記載のステージング制御方法。
(付記10)
前記第3のステージング量制御は、
前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を、所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、付記9記載のステージング制御方法。
(付記11)
記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置において、
前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なう
処理をコンピュータに実行させることを特徴とする、ステージング制御プログラム。
(付記12)
前記第1のステージング量制御は、
前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせる制御を含むことを特徴とする、付記11記載のステージング制御プログラム。
(付記13)
前記第2のステージング量制御は、
前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、付記11又は12記載のステージング制御プログラム。
(付記14)
前記第3のステージング量制御は、
単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、付記11〜13のいずれか1項に記載のステージング制御プログラム。
(付記15)
前記第3のステージング量制御は、
前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を、所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、付記14記載のステージング制御プログラム。
1 ストレージ装置
2 コントローラ
3 ホスト装置
10 プロセッサ
11 ホストI/O制御部
12 キャッシュ制御部
13 ステージング制御部
14 SSD制御部
15 ストレージ制御部
21 ホスト接続用I/Oコントローラ
22 HDD接続用I/Oコントローラ
23 メインメモリ
24 SSD
25 HDD
26 メインバス
T1 SSD性能特性テーブル
T2 短周期テーブル
T3 長周期テーブル

Claims (8)

  1. 記憶装置と半導体記憶装置とを有するストレージ装置であって、
    前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるキャッシュ制御部と、
    前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なうステージング制御部と
    を備えることを特徴とする、ストレージ装置。
  2. 前記第1のステージング量制御は、
    前記キャッシュメモリへのステージング量の抑制を行なうことなく、前記記憶装置から読み出されるデータを前記キャッシュメモリにステージングさせることを特徴とする、請求項1記載のストレージ装置。
  3. 前記第2のステージング量制御は、
    前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
    前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
    決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、請求項1又は2記載のストレージ装置。
  4. 前記第3のステージング量制御は、
    単位時間内におけるステージング量が、前記半導体記憶装置の寿命性能情報と使用実績情報とに基づいて算出した、当該半導体記憶装置を目標使用期間使用するための基準閾値を下回った場合には、当該ステージング量と前記基準閾値との差分に相当するステージング量を、次の所定期間内に加算する制御を含むことを特徴とする、請求項1〜3のいずれか1項に記載のストレージ装置。
  5. 前記第3のステージング量制御は、
    前記処理履歴情報に基づいて、ステージング量のピーク値を予測し、当該予測したピーク値において前記基準閾値を超える余剰ステージング量を所定期間で分割した分割余剰ステージング量を、当該所定期間におけるステージング量から均等に減らす制御を含むことを特徴とする、請求項4記載のストレージ装置。
  6. 記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置におけるステージング制御方法であって、
    前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なう
    ことを特徴とする、ステージング制御方法。
  7. 記憶装置と半導体記憶装置とを有し、前記記憶装置のデータ入出力を制御し、前記半導体記憶装置を前記記憶装置のキャッシュメモリとして機能させるストレージ装置において、
    前記記憶装置から前記キャッシュメモリへデータをステージングする場合に、当該ストレージ装置の起動後、前記キャッシュメモリへのステージング量が第1の閾値を超えるまでの第1の期間には第1のステージング量制御を行ない、前記第1の期間経過後、前記キャッシュメモリからの単位時間当たりのリード量の変動が所定範囲内になるまでの第2の期間には第2のステージング量制御を行ない、前記第2の期間後の第3の期間には第3のステージング量制御を行なう
    処理をコンピュータに実行させることを特徴とする、ステージング制御プログラム。
  8. 前記第2のステージング量制御は、
    前記キャッシュメモリの処理履歴情報と、前記キャッシュメモリにおけるキャッシュヒット量の増加傾向とに基づき、キャッシュヒット量の予測を行ない、
    前記半導体記憶装置のリード負荷とライト性能とを対応付けた性能特性情報を参照して、予測した前記キャッシュヒット量に対応するライト負荷量を決定し、
    決定した前記ライト負荷量を満たすステージング量で前記キャッシュメモリへのステージングを行なわせる制御を含むことを特徴とする、請求項7記載のステージング制御プログラム。
JP2013202312A 2013-09-27 2013-09-27 ストレージ装置,ステージング制御方法及びステージング制御プログラム Active JP6119533B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013202312A JP6119533B2 (ja) 2013-09-27 2013-09-27 ストレージ装置,ステージング制御方法及びステージング制御プログラム
US14/492,101 US9501413B2 (en) 2013-09-27 2014-09-22 Storage apparatus, staging control method, and computer-readable recording medium having stored staging control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013202312A JP6119533B2 (ja) 2013-09-27 2013-09-27 ストレージ装置,ステージング制御方法及びステージング制御プログラム

Publications (2)

Publication Number Publication Date
JP2015069353A JP2015069353A (ja) 2015-04-13
JP6119533B2 true JP6119533B2 (ja) 2017-04-26

Family

ID=52741303

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013202312A Active JP6119533B2 (ja) 2013-09-27 2013-09-27 ストレージ装置,ステージング制御方法及びステージング制御プログラム

Country Status (2)

Country Link
US (1) US9501413B2 (ja)
JP (1) JP6119533B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016170631A1 (ja) * 2015-04-22 2016-10-27 株式会社日立製作所 ストレージシステム
US10089227B1 (en) * 2015-05-06 2018-10-02 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with a write cache flushing algorithm
US10019362B1 (en) 2015-05-06 2018-07-10 American Megatrends, Inc. Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions
US10108344B1 (en) 2015-05-06 2018-10-23 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with an SSD filtering or SSD pre-fetch algorithm
US10055354B1 (en) 2015-05-07 2018-08-21 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with a hashing algorithm to maintain sibling proximity
US10176103B1 (en) 2015-05-07 2019-01-08 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with a cache replacement algorithm
US10114566B1 (en) 2015-05-07 2018-10-30 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with a read-modify-write offload algorithm to assist snapshots
CN106547476B (zh) * 2015-09-22 2021-11-09 伊姆西Ip控股有限责任公司 用于数据存储系统的方法和装置
JP6721821B2 (ja) * 2015-11-19 2020-07-15 富士通株式会社 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
US10671460B2 (en) * 2018-02-05 2020-06-02 Micron Technology, Inc. Memory access communications through message passing interface implemented in memory systems
TWI712886B (zh) * 2019-07-05 2020-12-11 大陸商合肥兆芯電子有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155833A (en) * 1987-05-11 1992-10-13 At&T Bell Laboratories Multi-purpose cache memory selectively addressable either as a boot memory or as a cache memory
JP3308554B2 (ja) * 1991-02-20 2002-07-29 株式会社日立製作所 制御装置及び制御装置の制御方法
JP3528094B2 (ja) * 1994-02-09 2004-05-17 株式会社日立製作所 バス利用方法および記憶制御装置
JPH10154101A (ja) * 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
JPH11212728A (ja) * 1998-01-26 1999-08-06 Hitachi Ltd 外部記憶サブシステム
WO2003085677A1 (fr) * 2002-04-05 2003-10-16 Renesas Technology Corp. Memoire non volatile
CN1332319C (zh) * 2003-12-22 2007-08-15 松下电器产业株式会社 存储系统控制方法
JP4494031B2 (ja) * 2004-02-06 2010-06-30 株式会社日立製作所 ストレージ制御装置、及びストレージ制御装置の制御方法
JP2008225914A (ja) * 2007-03-13 2008-09-25 Fujitsu Ltd プリフェッチ制御装置、記憶装置システムおよびプリフェッチ制御方法
US7996642B1 (en) * 2007-04-25 2011-08-09 Marvell International Ltd. Digital locked loop on channel tagged memory requests for memory optimization
JP2008310741A (ja) 2007-06-18 2008-12-25 Fujitsu Ltd キャッシュの最適化方法及び装置
JP5124217B2 (ja) * 2007-09-18 2013-01-23 株式会社日立製作所 ストレージ装置
JP2009104420A (ja) * 2007-10-23 2009-05-14 Hitachi Ltd 記憶制御装置及び記憶装置の障害検出方法
JP2009163647A (ja) 2008-01-10 2009-07-23 Hitachi Ltd ディスクアレイ装置
US20100017556A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
US8429349B2 (en) * 2008-09-18 2013-04-23 International Business Machines Corporation Techniques for cache injection in a processor system with replacement policy position modification
JP2010122730A (ja) * 2008-11-17 2010-06-03 Hitachi Ltd ストレージ制御装置及びストレージシステム
KR100998929B1 (ko) * 2009-01-23 2010-12-09 한국과학기술원 캐쉬 컨트롤러 장치, 캐쉬 컨트롤러 장치를 이용한 인터페이스 방법 및 프로그래밍 방법
US8285947B2 (en) * 2009-02-06 2012-10-09 Apple Inc. Store hit load predictor
CN102576333B (zh) * 2009-10-05 2016-01-13 马维尔国际贸易有限公司 非易失性存储器中的数据高速缓存
WO2011114384A1 (en) * 2010-03-19 2011-09-22 Hitachi, Ltd. Storage system and method for changing configuration of cache memory for storage system
US8688897B2 (en) * 2010-05-28 2014-04-01 International Business Machines Corporation Cache memory management in a flash cache architecture
US20120221813A1 (en) * 2011-02-28 2012-08-30 Hitachi, Ltd. Storage apparatus and method of controlling the same
JP5492156B2 (ja) * 2011-08-05 2014-05-14 株式会社東芝 情報処理装置およびキャッシュ方法
JP5117608B1 (ja) * 2011-09-30 2013-01-16 株式会社東芝 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法
US8688915B2 (en) * 2011-12-09 2014-04-01 International Business Machines Corporation Weighted history allocation predictor algorithm in a hybrid cache
WO2014061064A1 (en) * 2012-10-18 2014-04-24 Hitachi, Ltd. Cache control apparatus and cache control method
US9081686B2 (en) * 2012-11-19 2015-07-14 Vmware, Inc. Coordinated hypervisor staging of I/O data for storage devices on external cache devices
WO2014192051A1 (ja) * 2013-05-27 2014-12-04 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法

Also Published As

Publication number Publication date
US9501413B2 (en) 2016-11-22
JP2015069353A (ja) 2015-04-13
US20150095567A1 (en) 2015-04-02

Similar Documents

Publication Publication Date Title
JP6119533B2 (ja) ストレージ装置,ステージング制御方法及びステージング制御プログラム
CN107622022B (zh) 数据存储设备中的高速缓存超量配置
US9423970B2 (en) Method and system for predicting block failure in a non-volatile memory
US9916087B2 (en) Method and system for throttling bandwidth based on temperature
JP5719013B2 (ja) フラッシュ読取コマンド完了の時間推定に基づくホスト読取コマンドリターンのリオーダリング
US9329797B2 (en) Method and system for adjusting block erase or program parameters based on a predicted erase life
US8977803B2 (en) Disk drive data caching using a multi-tiered memory
US8719531B2 (en) System and method for performing data retention that incorporates environmental conditions
KR101894625B1 (ko) 데이터 저장 시스템들에 대한 우선순위 기반 가비지 수집
CN107622023B (zh) 限制数据存储设备中的访问操作
US9348520B2 (en) Lifetime extension of non-volatile semiconductor memory for data storage device
US9501406B2 (en) Storage control apparatus and storage control method
EP3338195B1 (en) Caching sensing device data in data storage device
US20180203631A1 (en) Storage system
US20170160953A1 (en) Data storage device that stabilizes write latency
US10310923B1 (en) Probabilistic aging command sorting
WO2021099863A1 (en) Memory controllers for solid-state storage devices
US11061814B1 (en) Managing data storage caching and tiering
US9886399B2 (en) Storage control device, storage device, information processing system, and storage control method therefor
JP5594647B2 (ja) ストレージ装置及びその制御方法
KR20140041408A (ko) 저장 위치 속성 및 데이터 사용량 통계에 기초하여 데이터 저장을 위한 저장 위치 선택
WO2012129987A1 (en) Managing high speed memory
US8364893B2 (en) RAID apparatus, controller of RAID apparatus and write-back control method of the RAID apparatus
JP6919277B2 (ja) ストレージシステム、ストレージ管理装置、ストレージ管理方法、及びプログラム
JP2016126656A (ja) ストレージ制御装置,制御プログラム及び制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170313

R150 Certificate of patent or registration of utility model

Ref document number: 6119533

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150