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

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

Info

Publication number
JP6928247B2
JP6928247B2 JP2017173629A JP2017173629A JP6928247B2 JP 6928247 B2 JP6928247 B2 JP 6928247B2 JP 2017173629 A JP2017173629 A JP 2017173629A JP 2017173629 A JP2017173629 A JP 2017173629A JP 6928247 B2 JP6928247 B2 JP 6928247B2
Authority
JP
Japan
Prior art keywords
data
parity
storage
read
write
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
JP2017173629A
Other languages
English (en)
Other versions
JP2019049856A (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 JP2017173629A priority Critical patent/JP6928247B2/ja
Priority to US16/120,532 priority patent/US10608670B2/en
Publication of JP2019049856A publication Critical patent/JP2019049856A/ja
Application granted granted Critical
Publication of JP6928247B2 publication Critical patent/JP6928247B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Correction Of Errors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、ストレージ制御装置およびストレージ制御プログラムに関する。
ストレージシステムでは、RAID(Redundant Arrays of Inexpensive Disks)技術が広く利用されている。RAID技術によれば、データが2つ以上の記憶装置に冗長化されるような記録制御が行われることで、記録されるデータの安全性が高められる。また、RAID技術には、複数の記録制御方式(RAIDレベル)がある。例えば、RAID−4,RAID−5,RAID−6といった記録制御方式では、パリティを用いることでデータが冗長化される。具体的には、一定数のデータに基づいて1以上のパリティが算出され、これらの各データおよび各パリティがすべて異なる記憶装置に記録されるように制御される。
このようにパリティが用いられる記録制御方式では、書き込み処理時に、RAIDで制御される記憶装置群に対して複数回アクセスする必要があり、その分だけ書き込み処理にかかる時間が長くなり、その処理負荷が高くなるという問題がある。例えば、RAID−5の場合、あるデータの更新が要求されると、更新前の旧データと、旧データを用いて算出された旧パリティとが記憶装置群から読み出される。そして、旧データおよび旧パリティと更新後の新データとを基に新パリティが算出され、新データと新パリティとが記憶装置群に書き込まれる。このように、書き込み処理の際には旧データおよび旧パリティの読み出しというアクセスが行われ、これらのアクセスは「ライトペナルティ」と呼ばれる。このようなライトペナルティの発生によって書き込み処理負荷が高くなると、ストレージシステム全体のアクセス性能が低下する可能性がある。
これに対して、データの読み出しが要求されたとき、読み出しデータ(旧データに対応)とともに、この読み出しデータを用いて算出されたパリティ(旧パリティに対応)をキャッシュメモリにステージングしておく技術が提案されている。この技術によれば、データの書き込みが要求されたとき、キャッシュメモリにステージングされていた旧データおよび旧パリティと書き込みデータ(新データに対応)とを基に、新パリティを算出できる。したがって、記憶装置群からの旧データおよび旧パリティの読み出しが不要になり、ライトペナルティが発生しなくなる。
特開2003−263365号公報 特開平7−110788号公報
しかし、上記のように旧データと旧パリティをあらかじめステージングしておく場合、それらを格納するための記憶領域が必要となり、記憶領域の容量が増大するという問題がある。
1つの側面では、本発明は、小さい記憶容量で書き込み処理負荷を軽減可能なストレージ制御装置およびストレージ制御プログラムを提供することを目的とする。
1つの案では、記憶部と制御部とを有するストレージ制御装置が提供される。制御部は、ホスト装置からのアクセス要求に応じて、複数の記憶装置によって実現される論理記憶領域に対するアクセス制御を実行する。このアクセス制御では、制御部は、ホスト装置からの書き込み要求に応じた書き込み処理を、パリティを用いてデータが冗長化されるように制御する。また、制御部は、論理記憶領域に対するアクセス要求の監視結果に基づいて、論理記憶領域の中から、読み出しが要求された後に書き込みが要求される可能性の高い特定領域を特定する。制御部は、特定領域に含まれる第1のデータの読み出し要求を受信した場合、第1のデータを複数の記憶装置のいずれかから読み出して記憶部に格納するとともにホスト装置に送信し、さらに、第1のデータを用いて算出された第1のパリティを複数の記憶装置のいずれかから読み出して記憶部に格納する。制御部は、第1のデータを更新するための第2のデータの書き込み要求を受信した場合、ホスト装置から受信した第2のデータと、記憶部からそれぞれ読み出した第1のデータおよび第1のパリティとに基づいて、第2のパリティを算出する。制御部は、第2のデータを複数の記憶装置のいずれかに書き込むとともに、第2のパリティを複数の記憶装置のいずれかに書き込む。
また、1つの案では、上記のストレージ制御装置と同様の処理をコンピュータに実行させるストレージ制御プログラムが提供される。
1つの側面では、小さい記憶容量で書き込み処理負荷を軽減できる。
第1の実施の形態に係るストレージ制御装置の構成例および処理例を示す図である。 第2の実施の形態に係るストレージシステムの構成例を示す図である。 CMが備える処理機能の構成例を示すブロック図である。 キャッシュ管理情報のデータ構成例を示す図である。 履歴情報のデータ構成例を示す図である。 読み出し処理の例を示すフローチャートである。 書き込み処理の例を示すフローチャート(その1)である。 書き込み処理の例を示すフローチャート(その2)である。 ライトバック処理の例を示すフローチャートである。 読み出し処理および書き込み処理の具体例を示す図である。 対象ボリューム管理処理についての第1の例を示すフローチャートである。 対象ボリューム管理処理についての第2の例を示すフローチャートである。
以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るストレージ制御装置の構成例および処理例を示す図である。図1に示すストレージ制御装置1には、記憶装置2a,2b,2c,2d,・・・とホスト装置3とが接続されている。ストレージ制御装置1は、ホスト装置3からのアクセス要求に応じて、論理記憶領域4に対するアクセス制御を実行する。論理記憶領域4は、記憶装置2a,2b,2c,2d,・・・のうちの複数の記憶装置を用いて実現される。
ストレージ制御装置1は、記憶部1aと制御部1bを有する。記憶部1aは、例えば、ストレージ制御装置1が備える図示しない記憶装置の記憶領域として実現される。制御部1bは、例えば、ストレージ制御装置1が備えるプロセッサとして実現される。
記憶部1aは、後述するように、記憶装置2a,2b,2c,2d,・・・から読み出されたデータやパリティが格納される。また、本実施の形態では、例として、記憶部1aにはアクセス状況情報1a1が記憶される。アクセス状況情報1a1には、ホスト装置3から発行される、論理記憶領域4に対するアクセス要求の監視結果を示す情報が登録される。
制御部1bは、ホスト装置3からのアクセス要求に応じて、論理記憶領域4に対するアクセス制御を実行する。このアクセス制御では、制御部1bは、ホスト装置3からの書き込み要求に応じた書き込み処理を、パリティを用いてデータが冗長化されるように制御する。
例えば、制御部1bは、論理記憶領域4上の連続するアドレス領域に存在する所定数のデータの書き込み処理を行う際、これらのデータに基づいてパリティを算出する。制御部1bは、これらのデータおよびパリティを、論理記憶領域4に割り当てられている複数の記憶装置のうち、それぞれ異なる記憶装置に書き込む。
また、制御部1bは、ホスト装置3から発行される、論理記憶領域4に対するアクセス要求を監視する(ステップS1)。本実施の形態では、制御部1bは、アクセス要求の監視結果をアクセス状況情報1a1に登録する。
制御部1bは、アクセス状況情報1a1に登録されたアクセス要求の監視結果に基づいて、論理記憶領域4の中から、読み出しが要求された後に書き込みが要求される可能性の高い記憶領域を特定する(ステップS2)。以下、特定された記憶領域を「特定領域」と呼ぶ。図1では、特定領域4aが特定されたとする。
この後、特定領域4aに対するアクセス要求が発行されると、次のような処理が実行される。
制御部1bは、特定領域4aに含まれるデータD1の読み出し要求をホスト装置3から受信したとする。ここで、データD1は記憶装置2aに格納されており、データD1を用いて算出されたパリティP1は記憶装置2cに格納されているとする。制御部1bは、読み出しが要求されたデータD1を記憶装置2aから読み出し、記憶部1aに格納するとともに、ホスト装置3に送信する。さらに、制御部1bは、パリティP1を記憶装置2cから読み出し、記憶部1aに格納する(ステップS3)。
その後、制御部1bは、データD1を更新するためのデータD1aの書き込み要求をホスト装置3から受信したとする。ここでは、ライトバック処理が非同期に実行される方式が採用されるとすると、制御部1bは、ホスト装置3から受信したデータD1aを記憶部1aに格納して、書き込み完了応答をホスト装置3に送信する(ステップS4)。ただし、データD1aは、更新前のデータD1とは別の記憶領域に格納される。
そして、制御部1bはその後に、データD1aのライトバック処理を次のように実行する。制御部1bは、データD1とパリティP1とデータD1aとを記憶部1aから読み出し、これらに基づいて新たなパリティP1aを算出する。制御部1bは、データD1aを記憶装置2aに格納してデータD1を更新するとともに、パリティP1aを記憶装置2cに格納してパリティP1を更新する(ステップS5)。
このライトバック処理では、更新前のデータD1と更新前のパリティP1とをそれぞれ記憶装置2a,2cから読み出す必要がない。このため、ライトバック処理にかかる時間が短縮され、その処理負荷が軽減される。その結果、書き込み要求に応じた書き込み処理全体にかかる時間を短縮でき、その処理負荷を軽減できる。
なお、書き込み完了応答を送信する前にライトバック処理が実行されるライトスルー方式が採用された場合、書き込み完了応答の送信前に次のようなライトバック処理が実行される。制御部1bは、記憶部1aから読み出したデータD1およびパリティP1と、ホスト装置3から受信したデータD1aとに基づいて、パリティP1aを算出する。制御部1bは、データD1aを記憶装置2aに格納してデータD1を更新するとともに、パリティP1aを記憶装置2cに格納してパリティP1を更新する。
このようにライトスルー方式が採用された場合でも、ライトバック処理の際に、更新前のデータD1と更新前のパリティP1とをそれぞれ記憶装置2a,2cから読み出す必要がない。このため、ライトバック処理にかかる時間が短縮され、その処理負荷が軽減される。その結果、書き込み要求に応じた書き込み処理全体にかかる時間を短縮でき、その処理負荷を軽減できる。
以上のような制御部1bの処理によれば、論理記憶領域4の中から、読み出しが要求された後に書き込みが要求される可能性の高い記憶領域が、特定領域4aとして特定される。そして、特定領域4aに含まれるデータの読み出しが要求されると、そのデータとともに、そのデータを基に算出されたパリティが記憶部1aに格納される。
これにより、ライトバック時に新たなパリティを算出するために使用される可能性の高い旧パリティだけが、記憶部1aにあらかじめ格納されるようになる。その結果、書き込み処理全体の処理時間の短縮効果やその処理負荷の軽減効果を維持しながら、パリティを格納するための記憶部1aの記憶容量を削減できる。したがって、小さい記憶容量で、書き込み処理全体の処理時間を短縮でき、また、その処理負荷を軽減できる。
〔第2の実施の形態〕
図2は、第2の実施の形態に係るストレージシステムの構成例を示す図である。図2に示すストレージシステムは、ストレージ装置10とホスト装置20を含む。また、ストレージ装置10は、CM(Controller Module)100とDE(Drive Enclosure)200を有する。ホスト装置20は、CM100と接続されている。
CM100は、ホスト装置20からの要求に応じて、DE200に搭載された記憶装置にアクセスするストレージ制御装置である。具体的には、CM100は、DE200に搭載された記憶装置の記憶領域を用いた論理ボリュームを設定し、ホスト装置20から論理ボリュームに対するアクセス要求を受け付ける。
DE200には、ホスト装置20からのアクセス対象の記憶装置として、HDD(Hard Disk Drive)201,202,203,・・・が搭載されている。なお、DE200に搭載される記憶装置は、HDDに限らず、例えば、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置であってもよい。
ホスト装置20は、例えば、種々の業務処理を実行するコンピュータである。なお、ホスト装置20とCM100との間は、例えば、ファイバチャネル(FC:Fibre Channel)やiSCSI(Internet Small Computer System Interface)などを用いたSAN(Storage Area Network)を介して接続される。
次に、図2を参照しながら、CM100のハードウェア構成例について説明する。CM100は、プロセッサ101、RAM(Random Access Memory)102、SSD103、ホストインタフェース(I/F)104およびドライブインタフェース(I/F)105を有する。
プロセッサ101は、CM100全体を統括的に制御する。プロセッサ101は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、GPU(Graphics Processing Unit)、PLD(Programmable Logic Device)のいずれかである。また、プロセッサ101は、CPU、MPU、DSP、ASIC、GPU、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、CM100の主記憶装置である。RAM102は、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
SSD103は、CM100の補助記憶装置である。SSD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、CM100は、補助記憶装置として、SSD103の代わりにHDDを備えていてもよい。
ホストインタフェース104は、ホスト装置20と通信するためのインタフェースである。ドライブインタフェース105は、DE内のHDD201,202,203,・・・と通信するためのインタフェースである。
図3は、CMが備える処理機能の構成例を示すブロック図である。CM100は、記憶部110、ホストI/O制御部120、RAID制御部130および対象ボリューム設定部140を有する。記憶部110は、CM100が備える記憶装置(例えば、RAM102)の記憶領域として実現される。ホストI/O制御部120、RAID制御部130および対象ボリューム設定部140の処理は、プロセッサ101が所定のプログラムを実行することで実現される。
記憶部110には、キャッシュ領域111が確保される。キャッシュ領域111には、論理ボリュームに対して読み書きされるデータがキャッシュされる。また、キャッシュ領域111には、後述する関連パリティも格納される。
記憶部110には、さらに、キャッシュ管理情報112、ボリューム管理情報113、履歴情報114および対象ボリューム情報115が格納される。
キャッシュ管理情報112は、キャッシュ領域111の使用状況を管理するための情報である。キャッシュ管理情報112は、キャッシュ領域111内のキャッシュページごとのエントリを有し、各エントリには、キャッシュページに格納されているデータに関する情報が登録される。
ボリューム管理情報113には、CM100に設定された論理ボリュームに関する情報が登録される。例えば、ボリューム管理情報113には、論理ボリュームを識別するボリューム名、論理ボリュームの書き込み制御に用いられるRAIDレベル、論理ボリュームの物理記憶領域として割り当てられたHDDの識別情報が登録される。
履歴情報114には、ホスト装置20から各論理ボリュームに対して要求された読み出し要求の履歴が登録される。
対象ボリューム情報115には、設定された論理ボリュームのボリューム名のうち、後述する関連パリティのステージングを行う対象とする「対象ボリューム」のボリューム名が登録される。
記憶部110には、さらに、対象ボリュームを決定するために用いる統計データとして、書き込み合計数Ntと書き込み数Nwが格納される。書き込み合計数Ntと書き込み数Nwは、それぞれ論理ボリュームごとに設定される。書き込み合計数Ntは、論理ボリュームに対して書き込みが要求されたトータルの回数を示す。書き込み数Nwは、論理ボリューム上の同じブロックに対して読み出しが要求された直後に書き込みが要求された回数を示す。書き込み数Nwは、あるブロックに対して読み出しが要求されてから、そのブロックに対して一定時間内に書き込みが要求されたときに、カウントアップされる。
なお、書き込み合計数Ntと書き込み数Nwは、履歴情報114とともに、対象ボリュームを決定するための統計データとして用いられる。
ホストI/O制御部120は、ホスト装置20から各論理ボリュームに対するI/O要求(読み出し要求または書き込み要求)を受信し、I/O要求に応じた論理ボリュームに対するI/O処理を実行する。その際、ホストI/O制御部120は、キャッシュ領域111を利用する。
例えば、ホストI/O制御部120は、ある論理ボリュームからのデータの読み出し要求を受信すると、キャッシュ管理情報112を参照して、読み出しデータがキャッシュ領域111に格納されているかを判定する。読み出しデータがキャッシュ領域111に格納されていた場合、ホストI/O制御部120は、読み出しデータをキャッシュ領域111から読み出してホスト装置20に送信する。
一方、読み出しデータがキャッシュ領域111に格納されていない場合、ホストI/O制御部120は、読み出しデータをRAID制御部130を介してDE200から取得する。ここで、読み出し元の論理ボリュームが対象ボリュームに設定されている場合、ホストI/O制御部120は、読み出しデータに対応する関連パリティを、RAID制御部130を介してDE200から取得する。関連パリティとは、読み出しデータがその後に更新され、更新されたデータがDE200にライトバックされる際に、新たなパリティを算出するために必要なパリティである。また、関連パリティは、読み出しデータを用いて算出され、DE200に書き込まれたパリティである。
ホストI/O制御部120は、取得した読み出しデータをキャッシュ領域111に格納するとともに、ホスト装置20に送信する。また、ホストI/O制御部120は、取得した関連パリティもキャッシュ領域111に格納する。このように、対象ボリュームに設定されている論理ボリュームからの読み出しが要求された場合には、読み出しデータとともに関連パリティがキャッシュ領域111にステージングされる。
また、ホストI/O制御部120は、ある論理ボリュームに対するデータの書き込み要求を受信すると、書き込みデータをキャッシュ領域111に格納する。このとき、論理ボリュームが対象ボリュームに設定され、書き込みデータに対応する関連パリティがキャッシュ領域111に格納されている場合には、ホストI/O制御部120は、書き込みデータ(新データ)を、キャッシュ領域111のうち更新前の旧データとは別の領域に格納する。ホストI/O制御部120は、その後の所定のタイミングで、キャッシュ領域111に格納した書き込みデータ(新データ)をDE200に反映させるライトバック処理を、RAID制御部130に実行させる。
RAID制御部130は、論理ボリュームの物理記憶領域を実現するDE200内のHDDに対するアクセスを、RAIDによって制御する。本実施の形態では、RAIDレベルとしてRAID−5が用いられるものとする。すなわち、RAID制御部130は、論理ボリュームを一定サイズのストリップに分割する。そして、RAID制御部130は、連続する所定数のストリップとそれらに基づくパリティとがそれぞれ異なるHDDに格納され、かつ、ストライプ(所定数のストリップ)ごとにパリティが異なるHDDに分散されるように制御する。
ここで、RAID制御部130は、対象ボリュームに設定されている論理ボリュームにおいて更新された新データをライトバックする場合、新データに対応する関連パリティがキャッシュ領域111に格納されているかを判定する。関連パリティがキャッシュ領域111に格納されている場合、RAID制御部130は、キャッシュ領域111から新データ、旧データおよび関連パリティを読み出し、それらに基づいて新パリティを算出する。RAID制御部130は、新データと新パリティとを、それぞれDE200内の対応するHDDに書き込む。このように、関連パリティがキャッシュ領域111に格納されている場合には、旧パリティをDE200から読み出す処理が実行されなくなり、ライトペナルティの発生回数を低減できる。
対象ボリューム設定部140は、論理ボリュームに対する書き込みが要求されるたびに、その論理ボリュームに対応する書き込み合計数Ntをカウントアップする。これとともに、対象ボリューム設定部140は、履歴情報114に基づき、書き込みが要求された同じ領域に対する読み出しがそれ以前の一定時間内に要求されていた場合には、その論理ボリュームに対応する書き込み数Nwをカウントアップする。そして、対象ボリューム設定部140は、書き込み合計数Ntと書き込み回数Nwに基づいて、その論理ボリュームにおいて、読み出し直後の書き込み回数が多いと判定した場合には、その論理ボリュームを対象ボリュームに設定する。その場合、対象ボリューム設定部140は、その論理ボリュームのボリューム名を対象ボリューム情報115に登録する。
図4は、キャッシュ管理情報のデータ構成例を示す図である。キャッシュ管理情報112は、キャッシュ領域111内のキャッシュページごとのエントリ112a,112b,112c,・・・を含む。そして、エントリ112a,112b,112c,・・・は、所定の方法で、それぞれキャッシュ領域111上のいずれかのキャッシュページに対応付けられる。
なお、キャッシュページは、論理ボリューム上の所定数の論理ブロック分のサイズを有するものとする。例えば、論理ブロックのサイズは512バイトであり、キャッシュページのサイズは1メガバイトである。そして、キャッシュページには、連続する所定数の論理ブロックの読み出しデータまたは書き込みデータが格納されるものとする。さらに、本実施の形態では、キャッシュページには、読み出しデータおよび書き込みデータの他に、関連パリティも格納され得る。
各エントリは、ボリューム番号、論理アドレス、ビットマップ、属性の各項目を有する。ボリューム番号は、エントリに対応するキャッシュページに格納されたデータがどの論理ボリュームに属するかを示す。論理アドレスは、エントリに対応するキャッシュページに格納されたデータについての、論理ボリューム上の先頭論理アドレスを示す。ビットマップは、キャッシュページにおける論理ブロックのサイズごとのビット値を有し、各ビット値は、対応する論理ブロックのデータが書き込まれているか否かを示す。
属性は、キャッシュページに格納されたデータの属性を示す。属性としては、読み出しデータ属性、書き込みデータ属性、新データ属性、パリティ属性がある。読み出しデータ属性は、読み出し要求に応じてキャッシュページにステージングされた読み出しデータを示す。書き込みデータ属性は、対応する関連パリティがキャッシュ領域111に格納されていない状態において、書き込み要求に応じてキャッシュページに格納された書き込みデータを示す。新データ属性は、対応する関連パリティがキャッシュ領域111に格納されている状態において、書き込み要求に応じてキャッシュページに格納された書き込みデータを示す。パリティ属性は、関連パリティを示す。
図5は、履歴情報のデータ構成例を示す図である。履歴情報114は、時刻、ボリューム番号、先頭アドレス、データサイズの各項目を有する。履歴情報114には、ホスト装置20から読み出し要求を受信するたびに、上記各項目に対応する情報を含むレコードが登録される。
時刻は、読み出し要求を受信した時刻を示す。ボリューム番号、先頭アドレスおよびデータサイズは、読み出し要求において指定された読み出し範囲に関する情報を示す。ボリューム番号は、読み出し範囲が属する論理ボリュームの識別番号を示し、先頭アドレスは、読み出し範囲の先頭論理アドレスを示し、データサイズは、読み出し範囲のサイズを示す。
次に、CM100の処理についてフローチャートを用いて説明する。
まず、図6は、読み出し処理の例を示すフローチャートである。なお、説明を簡単にするために、図6では、1回で読み出しを要求できるデータサイズの上限をストライプサイズとする。
[ステップS11]ホストI/O制御部120は、ホスト装置20から読み出し要求を受信する。
[ステップS12]ホストI/O制御部120は、対象ボリューム情報115を参照し、読み出しが要求された論理ボリュームが対象ボリュームに設定されているかを判定する。ホストI/O制御部120は、論理ボリュームが対象ボリュームに設定されている場合、ステップS13の処理を実行し、論理ボリュームが対象ボリュームに設定されていない場合、ステップS14の処理を実行する。
[ステップS13]ホストI/O制御部120は、読み出しが要求されたデータサイズがストライプサイズであるかを判定する。ホストI/O制御部120は、データサイズがストライプサイズである場合、ステップS14の処理を実行し、データサイズがストライプサイズより小さい場合、ステップS15の処理を実行する。
[ステップS14]ホストI/O制御部120は、読み出しが要求された読み出しデータがキャッシュ領域111に格納されていない場合(ミスヒットの場合)には、読み出しデータをRAID制御部130を介してDE200から取得する。ホストI/O制御部120は、取得した読み出しデータをキャッシュ領域111にステージングする。このとき、ステージング先のキャッシュページに対応する、キャッシュ管理情報112のエントリは、読み出しデータ属性に設定される。そして、そのエントリには、読み出しが要求された論理ボリューム上のアドレス範囲に読み出しデータが格納されたことを示す情報が登録される。
なお、読み出しデータがキャッシュ領域111に格納されている場合(キャッシュヒットの場合)、ステップS14の処理はスキップされる。
[ステップS15]ホストI/O制御部120は、キャッシュ管理情報112のエントリのうち、パリティ属性が登録されたエントリを参照して、読み出しデータに対応する関連パリティがキャッシュ領域111にステージング済みであるかを判定する。ホストI/O制御部120は、関連パリティがステージング済みの場合、ステップS17の処理を実行し、関連パリティがステージング済みでない場合、ステップS16の処理を実行する。
[ステップS16]ホストI/O制御部120は、ステップS14と同様に、読み出しが要求された読み出しデータがキャッシュ領域111に格納されていない場合(ミスヒットの場合)には、読み出しデータをRAID制御部130を介してDE200から取得する。ホストI/O制御部120は、取得した読み出しデータをキャッシュ領域111にステージングする。
これに加えて、ホストI/O制御部120は、読み出しデータに対応する関連パリティを、RAID制御部130介してDE200から取得する。ホストI/O制御部120は、取得した関連パリティを、キャッシュ領域111における読み出しデータとは別のキャッシュページにステージングする。このとき、ステージング先のキャッシュページに対応する、キャッシュ管理情報112のエントリに、関連パリティが格納されたことを示す情報が登録される。また、そのエントリには、パリティ属性が登録される。
なお、読み出しデータがキャッシュ領域111に格納されている場合(キャッシュヒットの場合)、ステップS16では関連パリティのステージングのみが行われる。
[ステップS17]ホストI/O制御部120は、読み出しデータをホスト装置20に送信することで、ホスト装置20に応答する。なお、ステップS16が実行された場合、ホストI/O制御部120は、読み出しデータがDE200から取得されていれば、関連パリティがDE200から取得される前にホスト装置20に応答することができる。
[ステップS18]ホストI/O制御部120は、履歴情報114に、ステップS11で受信した読み出し要求に関する情報を含むレコードを登録する。
以上の図6の処理では、ホストI/O制御部120は、対象ボリュームからの読み出し要求を受信すると、読み出しデータに加えてその関連パリティもDE200からキャッシュ領域111にステージングする。ただし、ホストI/O制御部120は、読み出しデータのサイズがストライプサイズと同じ場合には、関連パリティをステージングしない。これは、ストライプサイズと同じサイズの読み出しデータがキャッシュ領域111にステージングされていれば、その読み出しデータに対して更新が要求され、更新後のデータをライトバックする際に、関連パリティを用いずにステージング済みの更新前の読み出しデータを用いることで新パリティを算出できるからである。したがって、このようなケースでは関連パリティをステージングしないようにすることで、図6の読み出し処理にかかる時間を短縮できるとともに、キャッシュ領域111の使用効率を高めることができる。
次に、図7、図8は、書き込み処理の例を示すフローチャートである。なお、説明を簡単にするために、図7、図8では、1回で書き込みを要求できるデータサイズの上限をストライプサイズとする。
[ステップS21]ホストI/O制御部120は、ホスト装置20から書き込み要求を受信する。
[ステップS22]ホストI/O制御部120は、対象ボリューム情報115を参照し、書き込みが要求された論理ボリュームが対象ボリュームに設定されているかを判定する。ホストI/O制御部120は、論理ボリュームが対象ボリュームに設定されている場合、ステップS24の処理を実行し、論理ボリュームが対象ボリュームに設定されていない場合、ステップS23の処理を実行する。
[ステップS23]ホストI/O制御部120は、書き込みが要求されたアドレス範囲のデータ(旧データ)がキャッシュ領域111に格納されている場合(キャッシュヒットの場合)には、キャッシュ領域111の旧データを書き込みが要求された新データによって上書きする。このとき、旧データが格納されているキャッシュページに対応する、キャッシュ管理情報112のエントリが読み出しデータ属性である場合、書き込みデータ属性に更新される。また、上書きによりキャッシュページに格納された新データは、ライトバックが必要なダーティデータとして管理される。
なお、ホストI/O制御部120は、旧データがキャッシュ領域111に格納されていない場合(ミスヒットの場合)、新データをキャッシュ領域111の新たなキャッシュページに格納する。
[ステップS24]ホストI/O制御部120は、旧データがキャッシュ領域111に格納されている場合(キャッシュヒットの場合)には、新データをキャッシュ領域111上の旧データとは別のキャッシュページに書き込む。このとき、新データが書き込まれたキャッシュページに対応する、キャッシュ管理情報112のエントリは、新データ属性に設定される。そして、そのエントリには、書き込みが要求された論理ボリューム上のアドレス範囲に書き込みデータが格納されたことを示す情報が登録される。また、旧データが格納されているキャッシュページに対応する、キャッシュ管理情報112のエントリが読み出しデータ属性である場合、書き込みデータ属性に更新される。さらに、旧データは、ライトバックが必要なダーティデータとして管理される。
なお、ホストI/O制御部120は、旧データがキャッシュ領域111に格納されていない場合(ミスヒットの場合)、新データをキャッシュ領域111における書き込みデータ属性のキャッシュページに格納する。
[ステップS25]ホストI/O制御部120は、書き込み完了通知をホスト装置20に送信することで、ホスト装置20に応答する。
この後、ホストI/O制御部120は、対象ボリューム設定部140に図8の処理を実行させる。
[ステップS31]対象ボリューム設定部140は、書き込みが要求された論理ボリュームに対応する書き込み合計数Ntをカウントアップする。
[ステップS32]対象ボリューム設定部140は、履歴情報114を参照して、書き込みが要求された論理ボリューム上のアドレス範囲を指定して、所定時間前から現在までの間に読み出しが行われたかを判定する。対象ボリューム設定部140は、読み出しが行われた場合、ステップS33の処理を実行し、読み出しが行われていない場合、処理を終了する。
[ステップS33]対象ボリューム設定部140は、書き込みが要求された論理ボリュームに対応する書き込み数Nwをカウントアップする。
[ステップS34]対象ボリューム設定部140は、次の2つの条件が満たされるかを判定する。第1の条件は、書き込み合計数Ntが所定の閾値TH1より大きいという条件である。第2の条件は、書き込み数比率が所定の閾値TH2より大きいという条件である。書き込み数比率とは、書き込み合計数Ntに対する書き込み数Nwの割合を示す。
対象ボリューム設定部140は、上記2つの条件が両方満たされる場合、ステップS35の処理を実行し、条件が1つでも満たされない場合、処理を終了する。
[ステップS35]対象ボリューム設定部140は、書き込みが要求された論理ボリュームを対象ボリュームに設定する。具体的には、対象ボリューム設定部140は、書き込みが要求された論理ボリュームのボリューム名を、対象ボリューム情報115に登録する。
ここで、ステップS34では、第2の条件が満たされる場合、該当論理ボリュームにおいて、読み出しから一定時間内に同じアドレス範囲への書き込みが行われた回数が多いと判定される。一方、第2の条件に基づく判定の精度は、書き込み数比率の分母である書き込み合計数Ntがある程度大きい方が高くなる。そこで、本実施の形態では、第2の条件に加えて第1の条件が満たされる場合に該当論理ボリュームを対象ボリュームに決定することで、対象ボリュームを正確に決定できるようになる。
[ステップS36]対象ボリューム設定部140は、書き込みが要求された論理ボリュームに対応する書き込み数Nwを「0」にリセットする。
次に、図9は、ライトバック処理の例を示すフローチャートである。ホストI/O制御部120は、キャッシュ領域111に格納されている、ダーティデータとして管理されているデータの中から、ライトバック対象データを選択する。例えば、ダーティデータとして管理されているデータのうち、最新の更新時刻が最も早いデータが、ライトバック対象データとして選択される。ホストI/O制御部120は、選択されたライトバック対象データを示すアドレス情報(論理ボリュームのボリューム名、論理アドレス、データサイズ)をRAID制御部130に指定して、ライトバック処理の実行を依頼する。これにより、図9の処理が開始される。
[ステップS41]RAID制御部130は、ライトバック対象データのサイズがストライプサイズであるかを判定する。RAID制御部130は、データのサイズがストライプサイズである場合、ステップS42の処理を実行し、データのサイズがストライプサイズより小さい場合、ステップS43の処理を実行する。
[ステップS42]RAID制御部130は、ライトバック対象データを基に新パリティを計算する。
[ステップS43]RAID制御部130は、対象ボリューム情報115を参照し、ライトバック対象データが属する論理ボリュームが対象ボリュームに設定されているかを判定する。RAID制御部130は、該当論理ボリュームが対象ボリュームに設定されている場合、ステップS44の処理を実行し、設定されていない場合、ステップS45の処理を実行する。
[ステップS44]RAID制御部130は、キャッシュ管理情報112を参照し、ライトバック対象データに対応する関連パリティと旧データとがキャッシュ領域111に格納されているかを判定する。RAID制御部130は、これらが両方ともキャッシュ領域111に格納されている場合、ステップS46の処理を実行し、これらのうち一方でもキャッシュ領域111に格納されていない場合、ステップS45の処理を実行する。
なお、関連パリティがキャッシュ領域111に格納されていないケースとは、キャッシュ管理情報112に、ライトバック対象のアドレス範囲に対応するパリティがキャッシュページに格納されていることを示すパリティ属性のエントリが存在しないケースである。
また、旧データがキャッシュ領域111に格納されていないケースとは、旧データが新データによって上書きされているケースである。このケースでは、キャッシュ管理情報112に、ライトバック対象のアドレス範囲のデータがキャッシュページに格納されていることを示す書き込みデータ属性のエントリだけが存在し、同じアドレス範囲のデータがキャッシュページに格納されていることを示す新データ属性のエントリは存在しない。
[ステップS45]RAID制御部130は、ライトバック対象のアドレス範囲に対応する旧データと旧パリティをDE200から読み出す。なお、ステップS44で関連パリティのみ格納されていないと判定された場合には、旧パリティのみDE200から読み出される。
[ステップS46]RAID制御部130は、ライトバック対象のアドレス範囲に対応する旧データ、旧パリティ、新データを基に、新パリティを計算する。
ここで、ステップS44〜S46に関して説明を補足する。ステップS44で関連パリティのみ格納されていない判定された場合、RAID制御部130は、ステップS45において、旧データを含むストライプ全体のデータがキャッシュ領域111に格納されているかを判定する。ストライプ全体のデータがキャッシュ領域111に揃っていない場合、RAID制御部130は、ステップS45において、旧パリティのみDE200から読み出す。
一方、ストライプ全体のデータがキャッシュ領域111に格納されている場合には、RAID制御部130は、次のようにして新パリティを計算する。RAID制御部130は、キャッシュ領域111に格納されているストライプ全体のデータのうち、旧データの領域を新データで上書きする。RAID制御部130は、上書きが行われたストライプ全体のデータをキャッシュ領域111から読み出し、読み出したこれらのデータを基に新パリティを算出する。この場合には、ライトペナルティは発生しない。
[ステップS47]RAID制御部130は、新データと、ステップS42またはステップS46で算出された新パリティとを、DE200内の該当するHDDに書き込む。
[ステップS48]RAID制御部130は、旧データがキャッシュ領域111に格納されている場合、この旧データを破棄する。例えば、RAID制御部130は、キャッシュ領域111上の旧データを新データによって上書きし、元の新データをキャッシュ領域111から消去する。また、破棄した旧データに対応する関連パリティがキャッシュ領域111に格納されている場合、RAID制御部130は、この関連パリティを算出された新パリティによって上書きする。これにより、古い関連パリティが更新される。RAID制御部130は、このようにしてキャッシュ領域111に残された更新後の関連パリティを、その後に新データの再更新が要求された場合に、再更新後のデータに対応する新パリティの算出のために使用することができる。
以上のCM100の処理によれば、図8のステップS34で「書き込み数比率が所定の閾値TH2より大きい」という条件が満たされた論理ボリュームが、対象ボリュームに設定される。これにより、読み出しが要求されてから短時間で同じアドレス範囲に対する書き込みが要求される可能性が高い論理ボリュームを、対象ボリュームに設定することができる。
そして、このようにして対象ボリュームに設定された論理ボリューム上のデータに対応する関連パリティが、図9の処理により、キャッシュ領域111にあらかじめステージングされる。これにより、ライトバック処理時に新パリティ算出のために利用される可能性の高い関連パリティだけが、キャッシュ領域111にあらかじめステージングされるようになる。その結果、キャッシュ領域111の利用効率を高めつつ、ライトバック処理時のライトペナルティ発生回数を低減できる。
ライトペナルティ発生回数の低減により、ライトバック処理の負荷を軽減でき、その結果として、ホスト装置20からのアクセス要求に応じたCM100の応答性能を向上させることができる。したがって、キャッシュ領域111の必要容量を抑制しながらも、CM100によるストレージ制御動作の性能を向上させることができる。
なお、キャッシュ領域111にステージングされた関連パリティは、新パリティの算出のために必ず使用されるとは限らない。そこで、キャッシュ領域111を有効利用するために、関連パリティは次のような処理によってキャッシュ領域111から削除される。
例えば、RAID制御部130は、キャッシュ領域111の残容量が所定量以下に低下した場合に、キャッシュ領域111に存在する関連パリティのうち、キャッシュ領域111への格納時刻(更新された場合は更新時刻)が最も古い所定数の関連パリティを削除する。この場合、未使用期間が最も長い所定数の関連パリティが削除される。あるいは、RAID制御部130は、キャッシュ領域111に存在する関連パリティを、その関連パリティのキャッシュ領域111への格納時刻(更新された場合は更新時刻)から一定時間後に削除してもよい。この場合、未使用期間の長さが一定時間に達した関連パリティが削除される。
また、RAID制御部130は、キャッシュ領域111の残容量低下に伴ってキャッシュ領域111から古いデータを追い出す際に、そのデータに対応する関連パリティがキャッシュ領域111に存在する場合には、関連パリティもキャッシュ領域111から削除する。
ここで、図10は、読み出し処理および書き込み処理の具体例を示す図である。図10では、論理ボリュームLV1が対象ボリュームに設定されたものとする。また、論理ボリュームLV1には、DE200に搭載されたHDD211〜214が割り当てられている。そして、論理ボリュームLV1はRAID−5で制御されるものとする。
さらに、論理ボリュームLV1における連続するアドレス空間には、データD11〜D16が存在している。そして、データD11,D12,D13は、それぞれHDD211,212,213に格納され、データD11〜D13に基づいて算出されたパリティP11がHDD214に格納されている。また、データD14,D15,D16は、それぞれHDD211,212,214に格納され、データD14〜D16に基づいて算出されたパリティP12がHDD213に格納されている。
この状態で、ホスト装置20からデータD12の読み出しが要求されたとする。この場合、図10の左側に示すように、データD12がHDD212から読み出される。読み出されたデータD12は、キャッシュ領域111に格納されるとともに、ホスト装置20に送信される。これとともに、関連パリティであるパリティP11がHDD214から読み出され、キャッシュ領域111に格納される。
この後、ホスト装置20から、データD12をデータD12aによって更新するための書き込みが要求されたとする。この場合、図10の右側に示すように、データD12aは、キャッシュ領域111上のデータD12とは別の領域に格納され、ホスト装置20に対する応答が行われる。そして、データD12aのライトバック処理では、更新前のデータD12、更新前のパリティP11、更新後のデータD12aがそれぞれキャッシュ領域111から読み出され、これらの排他的論理和(XOR)が計算されることで、更新後のパリティP11aが算出される。更新後のデータD12aはHDD212に書き込まれ、更新後のパリティP11aはHDD214に書き込まれる。
このように、パリティ算出のために必要となるデータD12およびパリティP11があらかじめキャッシュ領域111にステージングされていることで、ライトバック処理の際にこれらをHDD212,214からそれぞれ読み出す必要がなくなる。したがって、ライトバック処理にかかる時間を短縮でき、その処理負荷を軽減できる。
なお、以上のCM100の処理では、対象ボリュームに設定され得る論理ボリュームがRAID−5で制御されるものとしたが、RAID−4やRAID−6で制御される論理ボリュームについても対象ボリュームに設定できる。例えば、RAID−6で制御される論理ボリュームが対象ボリュームに設定された場合、2つの関連パリティがキャッシュ領域111にステージングされ、ライトバック処理の際には、これら2つの関連パリティを用いて新たな2つの関連パリティが算出される。
次に、対象ボリュームに設定された論理ボリュームについて、どのような条件で対象ボリュームから除外するかを判定する対象ボリューム管理処理について説明する。ここでは、対象ボリューム管理処理として2つの例を示す。
図11は、対象ボリューム管理処理についての第1の例を示すフローチャートである。この図11の処理は、例えば、対象ボリュームに設定された各論理ボリュームについて定期的に実行される。
[ステップS51]対象ボリューム設定部140は、対象ボリュームに設定された論理ボリュームについての書き込み数比率(図8のステップS34参照)が、閾値TH2以下であるかを判定する。対象ボリューム設定部140は、書き込み数比率が閾値TH2以下である場合、ステップS52の処理を実行し、書き込み数比率が閾値TH2より大きい場合、処理を終了する。
[ステップS52]対象ボリューム設定部140は、書き込み数比率が閾値TH2以下であると連続して判定された回数が、所定回数以上かを判定する。対象ボリューム設定部140は、判定された回数が所定回数以上の場合、ステップS53の処理を実行し、判定された回数が所定回数より小さい場合、処理を終了する。
[ステップS53]対象ボリューム設定部140は、処理対象の論理ボリュームのボリューム名を、対象ボリューム情報115から削除する。これにより、処理対象の論理ボリュームは、対象ボリュームから除外される。
図12は、対象ボリューム管理処理についての第2の例を示すフローチャートである。この図12の処理は、例えば、対象ボリュームに設定された各論理ボリュームについて定期的に実行される。
[ステップS61]対象ボリューム設定部140は、対象ボリュームに設定された論理ボリュームについての書き込み数比率(図8のステップS34参照)が、閾値TH3以下であるかを判定する。この閾値TH3は、図8のステップS34で使用された閾値TH2より低い値に設定される。対象ボリューム設定部140は、書き込み数比率が閾値TH3以下である場合、ステップS62の処理を実行し、書き込み数比率が閾値TH3より大きい場合、処理を終了する。
[ステップS62]対象ボリューム設定部140は、処理対象の論理ボリュームのボリューム名を、対象ボリューム情報115から削除する。これにより、処理対象の論理ボリュームは、対象ボリュームから除外される。
ここで、図11に示した第1の例では、書き込み数比率が所定回数以上閾値TH2以下になるまで、処理対象の論理ボリュームは対象ボリュームに設定されたままになる。また、図12に示した第2の例では、書き込み数比率が、閾値TH2より低い閾値TH3以下になるまで、処理対象の論理ボリュームは対象ボリュームに設定されたままになる。いずれの処理でも、書き込み数比率が閾値TH2以下になっただけでは、処理対象の論理ボリュームは対象ボリュームから除外されない。これにより、論理ボリュームが対象ボリュームに設定されることと、対象ボリュームから除外されることとが頻繁に繰り返されないようにすることができる。
なお、対象ボリューム管理処理の他の例として、次のような処理を適用することもできる。例えば、ホスト装置20での業務処理が実行されている時間帯などの特定の時間帯にのみ、論理ボリュームを対象ボリュームに設定できるようにする。そして、ある論理ボリュームが対象ボリュームに設定されると、上記の特定の時間帯が終了するまで、その論理ボリュームを対象ボリュームに設定したままにする。
なお、上記の各実施の形態に示した装置(例えば、ストレージ制御装置1、CM100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたCD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
以上の各実施の形態に関し、さらに以下の付記を開示する。
(付記1) 記憶部と、
ホスト装置からのアクセス要求に応じて、複数の記憶装置によって実現される論理記憶領域に対するアクセス制御を実行し、前記アクセス制御では、前記ホスト装置からの書き込み要求に応じた書き込み処理を、パリティを用いてデータが冗長化されるように制御し、
前記論理記憶領域に対するアクセス要求の監視結果に基づいて、前記論理記憶領域の中から、読み出しが要求された後に書き込みが要求される可能性の高い特定領域を特定し、
前記特定領域に含まれる第1のデータの読み出し要求を受信した場合、前記第1のデータを前記複数の記憶装置のいずれかから読み出して前記記憶部に保持するとともに前記ホスト装置に送信し、さらに、前記第1のデータを用いて算出された第1のパリティを前記複数の記憶装置のいずれかから読み出して前記記憶部に格納し、
前記第1のデータを更新するための第2のデータの書き込み要求を受信した場合、前記ホスト装置から受信した前記第2のデータと、前記記憶部からそれぞれ読み出した前記第1のデータおよび前記第1のパリティとに基づいて、第2のパリティを算出し、
前記第2のデータを前記複数の記憶装置のいずれかに書き込むとともに、前記第2のパリティを前記複数の記憶装置のいずれかに書き込む、
制御部と、
を有するストレージ制御装置。
(付記2) 前記特定領域の特定では、前記論理記憶領域上の同一範囲に対して読み出しが要求されてから一定時間内に書き込みが要求された回数に基づいて、前記特定領域を特定する、
付記1記載のストレージ制御装置。
(付記3) 前記論理記憶領域は、複数の部分領域に区分され、
前記特定領域の特定では、
前記論理記憶領域上の同一範囲に対して読み出しが要求されてから一定時間内に書き込みが要求された要求回数を、前記複数の部分領域のそれぞれについて計数し、
前記複数の部分領域のそれぞれにおける前記要求回数の計数結果に基づいて、前記複数の部分領域の中から前記特定領域を特定する、
付記1記載のストレージ制御装置。
(付記4) 前記特定領域の特定では、
前記複数の部分領域のうち一の部分領域について、前記一の部分領域に対して書き込みが要求された合計回数に対する前記要求回数の比率が、所定の第1の閾値を超えた場合に、前記一の部分領域を前記特定領域として特定する、
付記3記載のストレージ制御装置。
(付記5) 前記特定領域の特定では、前記比率が前記第1の閾値を超え、かつ、前記合計回数が所定の第2の閾値を超えた場合に、前記一の部分領域を前記特定領域として特定する、
付記4記載のストレージ制御装置。
(付記6) 前記第2のパリティの算出では、
前記第2のデータの書き込み要求を受信したとき、前記記憶部における前記第1のデータとは別の記憶領域に前記第2のデータを格納して、書き込み完了通知を前記ホスト装置に送信し、
前記書き込み完了通知の送信後の所定のタイミングで、前記記憶部からそれぞれ読み出した前記第1のデータ、前記第2のデータおよび前記第1のパリティに基づいて、前記第2のパリティを算出する、
付記1乃至6のいずれか1つに記載のストレージ制御装置。
(付記7) コンピュータに、
ホスト装置からのアクセス要求に応じて、複数の記憶装置によって実現される論理記憶領域に対するアクセス制御を実行し、前記アクセス制御では、前記ホスト装置からの書き込み要求に応じた書き込み処理を、パリティを用いてデータが冗長化されるように制御し、
前記論理記憶領域に対するアクセス要求の監視結果に基づいて、前記論理記憶領域の中から、読み出しが要求された後に書き込みが要求される可能性の高い特定領域を特定し、
前記特定領域に含まれる第1のデータの読み出し要求を受信した場合、前記第1のデータを前記複数の記憶装置のいずれかから読み出して前記コンピュータが備える記憶部に保持するとともに前記ホスト装置に送信し、さらに、前記第1のデータを用いて算出された第1のパリティを前記複数の記憶装置のいずれかから読み出して前記記憶部に格納し、
前記第1のデータを更新するための第2のデータの書き込み要求を受信した場合、前記ホスト装置から受信した前記第2のデータと、前記記憶部からそれぞれ読み出した前記第1のデータおよび前記第1のパリティとに基づいて、第2のパリティを算出し、
前記第2のデータを前記複数の記憶装置のいずれかに書き込むとともに、前記第2のパリティを前記複数の記憶装置のいずれかに書き込む、
処理を実行させるストレージ制御プログラム。
(付記8) 前記特定領域の特定では、前記論理記憶領域上の同一範囲に対して読み出しが要求されてから一定時間内に書き込みが要求された回数に基づいて、前記特定領域を特定する、
付記7記載のストレージ制御プログラム。
(付記9) 前記論理記憶領域は、複数の部分領域に区分され、
前記特定領域の特定では、
前記論理記憶領域上の同一範囲に対して読み出しが要求されてから一定時間内に書き込みが要求された要求回数を、前記複数の部分領域のそれぞれについて計数し、
前記複数の部分領域のそれぞれにおける前記要求回数の計数結果に基づいて、前記複数の部分領域の中から前記特定領域を特定する、
付記7記載のストレージ制御プログラム。
(付記10) 前記特定領域の特定では、
前記複数の部分領域のうち一の部分領域について、前記一の部分領域に対して書き込みが要求された合計回数に対する前記要求回数の比率が、所定の第1の閾値を超えた場合に、前記一の部分領域を前記特定領域として特定する、
付記9記載のストレージ制御プログラム。
(付記11) 前記特定領域の特定では、前記比率が前記第1の閾値を超え、かつ、前記合計回数が所定の第2の閾値を超えた場合に、前記一の部分領域を前記特定領域として特定する、
付記10記載のストレージ制御プログラム。
(付記12) 前記第2のパリティの算出では、
前記第2のデータの書き込み要求を受信したとき、前記記憶部における前記第1のデータとは別の記憶領域に前記第2のデータを格納して、書き込み完了通知を前記ホスト装置に送信し、
前記書き込み完了通知の送信後の所定のタイミングで、前記記憶部からそれぞれ読み出した前記第1のデータ、前記第2のデータおよび前記第1のパリティに基づいて、前記第2のパリティを算出する、
付記7乃至11のいずれか1つに記載のストレージ制御プログラム。
1 ストレージ制御装置
1a 記憶部
1a1 アクセス状況情報
1b 制御部
2a,2b,2c,2d 記憶装置
3 ホスト装置
4 論理記憶領域
4a 特定領域
D1,D1a データ
P1,P1a パリティ
S1〜S5 ステップ

Claims (7)

  1. 記憶部と、
    ホスト装置からのアクセス要求に応じて、複数の記憶装置によって実現される論理記憶領域に対するアクセス制御を実行し、前記アクセス制御では、前記ホスト装置からの書き込み要求に応じた書き込み処理を、パリティを用いてデータが冗長化されるように制御し、
    前記論理記憶領域に対するアクセス要求の監視結果に基づいて、前記論理記憶領域の中から、読み出しが要求された後に書き込みが要求される可能性の高い特定領域を特定し、
    前記特定領域に含まれる第1のデータの読み出し要求を受信した場合、前記第1のデータを前記複数の記憶装置のいずれかから読み出して前記記憶部に保持するとともに前記ホスト装置に送信し、さらに、前記第1のデータを用いて算出された第1のパリティを前記複数の記憶装置のいずれかから読み出して前記記憶部に格納し、
    前記第1のデータを更新するための第2のデータの書き込み要求を受信した場合、前記ホスト装置から受信した前記第2のデータと、前記記憶部からそれぞれ読み出した前記第1のデータおよび前記第1のパリティとに基づいて、第2のパリティを算出し、
    前記第2のデータを前記複数の記憶装置のいずれかに書き込むとともに、前記第2のパリティを前記複数の記憶装置のいずれかに書き込む、
    制御部と、
    を有するストレージ制御装置。
  2. 前記特定領域の特定では、前記論理記憶領域上の同一範囲に対して読み出しが要求されてから一定時間内に書き込みが要求された回数に基づいて、前記特定領域を特定する、
    請求項1記載のストレージ制御装置。
  3. 前記論理記憶領域は、複数の部分領域に区分され、
    前記特定領域の特定では、
    前記論理記憶領域上の同一範囲に対して読み出しが要求されてから一定時間内に書き込みが要求された要求回数を、前記複数の部分領域のそれぞれについて計数し、
    前記複数の部分領域のそれぞれにおける前記要求回数の計数結果に基づいて、前記複数の部分領域の中から前記特定領域を特定する、
    請求項1記載のストレージ制御装置。
  4. 前記特定領域の特定では、
    前記複数の部分領域のうち一の部分領域について、前記一の部分領域に対して書き込みが要求された合計回数に対する前記要求回数の比率が、所定の第1の閾値を超えた場合に、前記一の部分領域を前記特定領域として特定する、
    請求項3記載のストレージ制御装置。
  5. 前記特定領域の特定では、前記比率が前記第1の閾値を超え、かつ、前記合計回数が所定の第2の閾値を超えた場合に、前記一の部分領域を前記特定領域として特定する、
    請求項4記載のストレージ制御装置。
  6. 前記第2のパリティの算出では、
    前記第2のデータの書き込み要求を受信したとき、前記記憶部における前記第1のデータとは別の記憶領域に前記第2のデータを格納して、書き込み完了通知を前記ホスト装置に送信し、
    前記書き込み完了通知の送信後の所定のタイミングで、前記記憶部からそれぞれ読み出した前記第1のデータ、前記第2のデータおよび前記第1のパリティに基づいて、前記第2のパリティを算出する、
    請求項1乃至のいずれか1項に記載のストレージ制御装置。
  7. コンピュータに、
    ホスト装置からのアクセス要求に応じて、複数の記憶装置によって実現される論理記憶領域に対するアクセス制御を実行し、前記アクセス制御では、前記ホスト装置からの書き込み要求に応じた書き込み処理を、パリティを用いてデータが冗長化されるように制御し、
    前記論理記憶領域に対するアクセス要求の監視結果に基づいて、前記論理記憶領域の中から、読み出しが要求された後に書き込みが要求される可能性の高い特定領域を特定し、
    前記特定領域に含まれる第1のデータの読み出し要求を受信した場合、前記第1のデータを前記複数の記憶装置のいずれかから読み出して前記コンピュータが備える記憶部に保持するとともに前記ホスト装置に送信し、さらに、前記第1のデータを用いて算出された第1のパリティを前記複数の記憶装置のいずれかから読み出して前記記憶部に格納し、
    前記第1のデータを更新するための第2のデータの書き込み要求を受信した場合、前記ホスト装置から受信した前記第2のデータと、前記記憶部からそれぞれ読み出した前記第1のデータおよび前記第1のパリティとに基づいて、第2のパリティを算出し、
    前記第2のデータを前記複数の記憶装置のいずれかに書き込むとともに、前記第2のパリティを前記複数の記憶装置のいずれかに書き込む、
    処理を実行させるストレージ制御プログラム。
JP2017173629A 2017-09-11 2017-09-11 ストレージ制御装置およびストレージ制御プログラム Active JP6928247B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017173629A JP6928247B2 (ja) 2017-09-11 2017-09-11 ストレージ制御装置およびストレージ制御プログラム
US16/120,532 US10608670B2 (en) 2017-09-11 2018-09-04 Control device, method and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017173629A JP6928247B2 (ja) 2017-09-11 2017-09-11 ストレージ制御装置およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2019049856A JP2019049856A (ja) 2019-03-28
JP6928247B2 true JP6928247B2 (ja) 2021-09-01

Family

ID=65631720

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017173629A Active JP6928247B2 (ja) 2017-09-11 2017-09-11 ストレージ制御装置およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US10608670B2 (ja)
JP (1) JP6928247B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022143243A (ja) * 2021-03-17 2022-10-03 キオクシア株式会社 メモリシステムおよびその制御方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3188071B2 (ja) 1993-10-14 2001-07-16 富士通株式会社 ディスクキャッシュ装置
JP3159118B2 (ja) 1997-04-18 2001-04-23 日本電気株式会社 ライトバックデータ選択方法及びプログラムを記録した機械読み取り可能な記録媒体
JP2002182859A (ja) * 2000-12-12 2002-06-28 Hitachi Ltd ストレージシステムおよびその利用方法
JP3849648B2 (ja) 2003-01-27 2006-11-22 株式会社日立製作所 記憶装置制御方法および記憶装置サブシステム
JP5124217B2 (ja) * 2007-09-18 2013-01-23 株式会社日立製作所 ストレージ装置
JP4947040B2 (ja) * 2008-11-28 2012-06-06 富士通株式会社 記憶装置,記憶システム及び制御方法
JP5655344B2 (ja) * 2010-03-31 2015-01-21 富士通株式会社 ストレージ装置、ストレージ装置制御プログラムおよびストレージ装置制御方法
JP5459102B2 (ja) * 2010-06-24 2014-04-02 富士通株式会社 ストレージ制御装置、ストレージシステム及びストレージ制御方法
WO2012147123A1 (en) * 2011-04-26 2012-11-01 Hitachi, Ltd. Storage apparatus and control method therefor
JP5776436B2 (ja) * 2011-08-22 2015-09-09 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
WO2014002160A1 (ja) * 2012-06-25 2014-01-03 富士通株式会社 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
WO2014102879A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Data storage apparatus and control method thereof
US20140189204A1 (en) * 2012-12-28 2014-07-03 Hitachi, Ltd. Information processing apparatus and cache control method
JP6136460B2 (ja) * 2013-03-28 2017-05-31 富士通株式会社 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法
WO2015011825A1 (ja) * 2013-07-26 2015-01-29 株式会社日立製作所 ストレージシステムおよびストレージシステムの制御方法
US9753653B2 (en) * 2015-04-14 2017-09-05 Sandisk Technologies Llc High-priority NAND operations management

Also Published As

Publication number Publication date
JP2019049856A (ja) 2019-03-28
US20190081643A1 (en) 2019-03-14
US10608670B2 (en) 2020-03-31

Similar Documents

Publication Publication Date Title
EP3210121B1 (en) Cache optimization technique for large working data sets
US9411742B2 (en) Use of differing granularity heat maps for caching and migration
US8281076B2 (en) Storage system for controlling disk cache
US9417808B2 (en) Promotion of partial data segments in flash cache
JP5944587B2 (ja) 計算機システム及び制御方法
JP6711121B2 (ja) 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
US20130111134A1 (en) Management of partial data segments in dual cache systems
JP2015518987A (ja) フラッシュストレージのためのi/oアクセスパターンの特殊化
JP5908118B2 (ja) 第1キャッシュと第2キャッシュとストレージ・システムとを含むキャッシュ・システムにおいてデータを管理するプログラム、システム、及び方法
JP6011153B2 (ja) ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US20180307440A1 (en) Storage control apparatus and storage control method
JP6867578B2 (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US9471252B2 (en) Use of flash cache to improve tiered migration performance
US20200225981A1 (en) Information processing system and management device
JP6928247B2 (ja) ストレージ制御装置およびストレージ制御プログラム
JP6107341B2 (ja) データ管理プログラム,データ管理装置およびデータ管理方法
US10579541B2 (en) Control device, storage system and method
US20210263648A1 (en) Method for managing performance of logical disk and storage array
JP2017134700A (ja) 情報処理システム、記憶制御装置、記憶制御方法および記憶制御プログラム
JP2022108619A (ja) 情報処理システム、情報処理装置、及び、情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200611

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200625

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200625

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210604

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210719

R150 Certificate of patent or registration of utility model

Ref document number: 6928247

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150