JP4410178B2 - Raid装置におけるライトバック方法 - Google Patents
Raid装置におけるライトバック方法 Download PDFInfo
- Publication number
- JP4410178B2 JP4410178B2 JP2005274830A JP2005274830A JP4410178B2 JP 4410178 B2 JP4410178 B2 JP 4410178B2 JP 2005274830 A JP2005274830 A JP 2005274830A JP 2005274830 A JP2005274830 A JP 2005274830A JP 4410178 B2 JP4410178 B2 JP 4410178B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- write
- update
- reference value
- updated
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, i.e. caches used in RAID system with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1066—Parity-small-writes, i.e. improved small or partial write techniques in RAID systems
Description
ホストコンピュータ等からRAID制御装置に送られる更新データは、RAID制御装置によってストライピングされる。そして、キャッシュメモリに更新対象のデータが存在する場合には、当該データが更新データによって更新される。
同図に示すデータ1は、4つのディスク(同図に示すDisk#0〜#3)で構成されるRAID5のデータを示し、#0〜#3にストライピングされている。
更新する全データストライプ(データストライプ#0〜#2)がキャッシュメモリ上にあるので、Disk#0〜#3からのリード処理を行なうことなく、パリティデータ(データストライプ#3)を生成することができる。そして、生成したデータ1は、Disk#0〜#3に格納される(以下、この書込み方式を「Bandwidth Write方式」という)。
同図に示すデータ2も図10と同様に、4つのディスク(同図に示すDisk#0〜#3)で構成されるRAID5のデータを示し、#0〜#3にストライピングされている。
この場合、ストライプの一部のデータのみキャッシュメモリ上にあるため、Disk#0、#1、及び#3から更新前データを読込み、更新データ(データストライブ#0及び#1)と排他的論理和(以下、単に「XOR」という)をとることによってパリティデータを生成する必要がある。そして、更新データと生成したパリティデータとをそれぞれDisk#0、#1、及び#3に格納する(以下、この書込み方式を「Small Write方式」という)。
図1は、本発明の原理図を示している。
図1に示すRAID制御装置3は、データを一時的に格納するキャッシュメモリ4と、キャッシュメモリ4に格納されているデータの更新情報(更新箇所、更新位置)を格納する更新情報管理テーブル5と、キャッシュメモリ4に格納されているデータの更新を検出し、この更新情報を更新情報管理テーブル5に格納する更新情報記憶手段6と、更新情報管理テーブル5から更新情報を取得し、この更新情報からSmall Write方式及びRead & Bandwidth Write方式によるライトバック処理の負荷を表す基準値を生成する基準値生成処理7と、この基準値から書込み方式(Small Write方式/Read & Bandwidth Write方式)を決定する書込み方式決定手段8と、決定した方式によってRAID制御装置3に接続されるディスク装置群(ディスクアレイ)16にライトバック処理を行なう書込み手段9と、を少なくとも備えている。
(1)ディスク装置群16へのコマンド発行回数、
(2)RAID制御装置3−ディスク装置群16間のデータ転送量、及び
(3)更新パリティを生成するためのXOR処理回数
を使用する。
図2に示すRAID装置は、CA(Channel Adapter)13aを介してホストコンピュータ14と接続されるRAID制御装置のCM3aと、CM3aとルータ15aを介して接続されるディスク装置群16aと、を少なくとも備えている。
ディスク装置群16aは、Disk#0〜#3の磁気ディスクで構成されるRAIDディスクドライブである。
キャッシュメモリ11aを制御するキャッシュメモリ制御部等からライトバック処理要求がない状態では、図3に示すライトバック処理は実行されない。
図4に示す更新情報管理テーブル5は、ホストコンピュータ14から送られる更新データの番号(更新データ番号)と、各更新データ番号の更新データを構成するデータストライプの番号(データストライプ番号)と、各データストライプ番号のデータストライプを構成するブロックの番号(ブロック番号)と、各ブロック番号のブロックの更新の有無を表すブロック更新フラグと、で構成されている。
ステップS304において、CM3aは、ステップS303で取得した(a)コマンド発行回数が予め設定された上限値を超えているか否かのチェックを行なう。そして、コマンド発行回数が上限値を超えている場合には、処理をステップS305に移行し、ステップS303で一時決定した方式とは別の方式を書込み方式に決定する。
ステップS306において、CM3aは、ステップS303で取得した(b)データ転送量が予め設定された上限値を超えているか否かのチェックを行なう。そして、データ転送量が上限値を超えている場合には、処理をステップS305に移行し、ステップS303で一時決定した方式とは別の方式を書込み方式に決定する。
ステップS307において、CM3aは、ステップS303で取得した(c)XOR回数が上限値を超えているか否かのチェックを行なう。そして、XORの回数が上限値を超えている場合には、処理をステップS305に移行し、ステップS303で一時決定した方式とは別の方式を書込み方式に決定する。
ステップS308において、CM3aは、RAM12aに記憶されている更新情報管理テーブル5を参照して更新情報(更新箇所)を取得し、第1及び第2の基準値を生成する。そして、第1の基準値と第2の基準値との比較結果に基づいて書込み方式を決定する。なお、ステップS308の詳細については、図5で説明する。
図3に示したステップS307において、(c)XORの回数が上限値を超えていない場合には、処理をステップS500に移行して処理方式最終決定処理を開始する。
(1a)ディスク装置群16aへのコマンド発行回数、
(2a)RAID制御装置3−ディスク装置群16a間のデータ転送量、及び
(3a)更新パリティを生成するためのXOR処理回数の生成方法
について説明し、次に、本実施例に係る第2の基準値、すなわち、Read & Bandwidth Write方式によるライトバック処理時の
(1b)ディスク装置群16aへのコマンド発行回数、
(2b)RAID制御装置3−ディスク装置群16a間のデータ転送量、及び
(3b)更新パリティを生成するためのXOR処理回数の生成方法
について説明する。
(1a)ディスク装置群16aへのコマンド発行回数
CM3aは、更新情報管理テーブル5から取得した更新情報に基づいて、更新データによって更新された領域(例えば、図6に示す更新後データ20aにおける領域#00、#11、#13及び#20)と更新されていない領域(例えば、図6に示す更新後データ20aにおける領域#12)とに各データストライプを分割する。
同様に、CM3aは、更新データによって更新された領域の更新後データと更新後パリティをディスク装置群16aに書き込む。この時、CM3aがディスク装置群16aに対して発行するWrite命令の回数は、次式により算出できる。
(2a)RAID制御装置3−ディスク装置群16a間のデータ転送量
Small Write方式によるライトバック処理の場合、CM3aは、更新データによって更新された領域の更新前データと更新前パリティをディスク装置群16aから読出し、更新データによって更新された領域の更新後データと更新後パリティをディスク装置群16aに書き込む。
(Read時のデータ転送量)=(データストライプの数)
×(1データストライプのブロック数)
−(更新されない領域のブロック数) ・・・(3)
(Write時のデータ転送量)=(データストライプの数)
×(1データストライプのブロック数)
−(更新されない領域のブロック数)・・・(4)
(3a)更新パリティを生成するためのXOR処理回数
Small Write方式によるライトバック処理の場合、CM3aは、更新データによって更新された領域と更新されない領域とに分割されたデータストライプ(例えば、図6に示す更新後データ20a)について、さらに、各データストライプ内の領域が同じ構成となるように分割する(例えば、図6に示す更新後データ20bの領域#01〜#03、#11〜#13及び#21〜#23)。
したがって、この時のXOR処理回数は、次式により算出される。
+(1データストライプ内の領域の数) ・・・(5)
(1b)ディスク装置群16aへのコマンド発行回数
Read & Bandwidth Write方式によるライトバック処理の場合、CM3aは、更新データによって更新されなかった領域の更新前データをディスク装置群16aから読出す。この時、CM3aがディスク装置群16aに対して発行するRead命令の回数は、次式により算出できる。
また、Small Write方式によるライトバック処理の場合と同様に、CM3aは、更新データによって更新された領域の更新後データと更新後パリティをディスク装置群16aに書き込む。この時、CM3aがディスク装置群16aに対して発行するWrite命令の回数は、式(2)により算出できる。
(2b)RAID制御装置3−ディスク装置群16a間のデータ転送量
Read & Bandwidth Write方式によるライトバック処理の場合、CM3aは、更新データによって更新されなかった領域の更新前データのみをディスク装置群16aから読出し、更新データによって更新された領域の更新後データと更新後パリティをディスク装置群16aに書き込む。
(Read時のデータ転送量)=(更新なし領域のブロック数) ・・・(7)
(Write時のデータ転送量)=(データストライプの数)
×(1データストライプのブロック数)
−(更新なし領域のブロック数) ・・・(8)
(3b)更新パリティを生成するためのXOR処理回数
Read & Bandwidth Write方式によるライトバック処理の場合のXOR処理回数は、全てを更新されたデータストライプ(例えば、図7に示す更新後データ20cのデータストライプ#0、#2)と更新されない領域を含むデータストライプ(例えば、図7に示す更新前データ30cのデータストライプ#1)とについてXOR処理を行うので、次式により算出される。
・・・(9)
以上に説明したように、ステップS501において、第1及び第2の基準値を生成すると、CM3aは、処理をステップS502に移行する。
ステップS503において、CM3aは、(2)データ転送量について第1の基準値と第2の基準値とを比較し、データ転送量の少ない方に点数を加算する。
ステップS505において、CM3aは、ステップS502〜S504で取得した第1の基準値の点数と第2の基準値の点数とを比較する。そして、比較の結果、第1の基準値の点数の方が大きい場合には、処理をステップS506に移行し、書込み方式をSmall Write方式に設定する。
以下、図6〜図9に基づいてライトバック処理時の(1)ディスク装置群16aへのコマンド発行回数、(2)CM3a−ディスク装置群16a間のデータ転送量及び(3)更新パリティを生成するためのXOR処理回数の具体例を示して説明する。
図6は、データストライプの一部に更新されないデータがある場合のSmall Write方式によるライトバック処理について説明する図である。
(1a)ディスク装置群16aへのコマンド発行回数
Small Write方式によるライトバック処理において、CM3aは、ディスク装置群16aに対してRead命令を発行する。そして、更新後データ20aに対応する更新前データをディスク装置群16aから読出して、更新前データ30aを生成する。
(2a)CM3a−ディスク装置群16a間のデータ転送量
Small Write方式によるライトバック処理では、CM3aは、更新パリティを生成するために、更新後データ20aの領域#00(16ブロック)、#11(8ブロック)、#13(4ブロック)及び#20(16ブロック)の更新前データと、更新前パリティ(16ブロック)をディスク装置群16aから読出して更新前データ30aの領域#30、#41、#43、#50及び#60に記憶するので、合計60ブロックのデータをディスク装置群16aから読出すことになる。
(3a)更新パリティを生成するためのXOR処理回数
Small Write方式によるライトバック処理では、更新パリティを生成するXOR処理を行なうために、CM3aは、更新後データ20aを各データストライプ内の領域が同じ構成となるように領域分割して更新後データ20bを生成し、同様に、更新前データ30aを各データストライプ内の領域が同じ構成となるように領域分割して更新後データ30bを生成する。
(#71)=(#01)XOR(#11)XOR(#21)
XOR(#31)XOR(#41)XOR(#51)XOR(#61)
(#72)=(#02)XOR(#22)XOR(#32)
XOR(#52)XOR(#62)
(#73)=(#03)XOR(#13)XOR(#23)
XOR(#33)XOR(#43)XOR(#53)XOR(#63)
ここで、(領域番号)は、該当する領域内のデータを示す。例えば、(#30)は、領域#30のデータを示す。
図7は、データストライプの一部に更新されないデータがある場合のRead & Bandwidth Write方式によるライトバック処理について説明する図である。
(1b)ディスク装置群16aへのコマンド発行回数
Read & Bandwidth Write方式によるライトバック処理において、CM3aは、更新対象でない更新前データをディスク装置群16aから読出すために、ディスク装置群16aに対してRead命令を発行する。そして、更新後データ20cに対応する更新前データをディスク装置群16aから読出して、更新前データ30cを生成する。
(2b)CM3a−ディスク装置群16a間のデータ転送量
Read & Bandwidth Write方式によるライトバック処理では、CM3aは、更新後データ20cの領域#12の更新前データをディスク装置#1から読出すので、4ブロックのデータをディスク装置群16aから読出すことになる。
(3b)更新パリティを生成するためのXOR処理回数
Read & Bandwidth Write方式によるライトバック処理では、更新パリティを生成するために、以下の計算を行なう。
したがって、(#70)を算出するために2回のXOR演算が行なわれる。
図8は、データストライプの2箇所に更新されないデータがある場合のSmall Write方式によるライトバック処理について説明する図である。
(1a)ディスク装置群16aへのコマンド発行回数
Small Write方式によるライトバック処理において、CM3aは、ディスク装置群16aに対してRead命令を発行する。そして、更新後データ22aに対応する更新前データをディスク装置群16aから読出して、更新前データ31aを生成する。
(2a)CM3a−ディスク装置群16a間のデータ転送量
Small Write方式によるライトバック処理では、CM3aは、更新パリティを生成するために、更新後データ22aの領域#00(16ブロック)、#12(4ブロック)及び#21(4ブロック)の更新前データと、更新前パリティ(16ブロック)をディスク装置群16aから読出して更新前データ31aの領域#30、#43、#51及び#60に記憶するので、合計40ブロックのデータをディスク装置群16aから読出すことになる。
(3a)更新パリティを生成するためのXOR処理回数
Small Write方式によるライトバック処理では、更新パリティを生成するXOR処理を行なうために、CM3aは、更新後データ22aを各データストライプ内の領域が同じ構成となるように領域分割して更新後データ22bを生成し、同様に、更新前データ31aを各データストライプ内の領域が同じ構成となるように領域分割して更新後データ31bを生成する。
(#71)=(#01)XOR(#21)XOR(#31)
XOR(#51)XOR(#61)
(#72)=(#02)XOR(#32)XOR(#62)
(#73)=(#03)XOR(#12)XOR(#33)
XOR(#43)XOR(#63)
したがって、(#71)を算出するために4回、(#72)を算出するために2回、(#73)を算出するために4回、合計10回のXOR演算が行なわれる。
(1b)ディスク装置群16aへのコマンド発行回数
Read & Bandwidth Write方式によるライトバック処理において、CM3aは、更新対象でない更新前データをディスク装置群16aから読出すために、ディスク装置群16aに対してRead命令を発行する。そして、更新後データ22cに対応する更新前データをディスク装置群16aから読出して、更新前データ31cを生成する。
(2b)CM3a−ディスク装置群16a間のデータ転送量
Read & Bandwidth Write方式によるライトバック処理では、CM3aは、ディスク装置#1から更新後データ22cの領域#11、ディスク装置#2から領域#22の更新前データをそれぞれ読出すので、8ブロック(4ブロック+4ブロック)のデータをディスク装置群16aから読出すことになる。
(3b)更新パリティを生成するためのXOR処理回数
Read & Bandwidth Write方式によるライトバック処理では、更新パリティを生成するために、以下の計算を行なう。
したがって、(#70)を算出するために2回のXOR演算が行なわれる。
以上に説明したように、本実施例に係るRAID制御装置は、第1及び第2の基準値を生成して比較を行ない、より基準値の低い書込み方式によるライトバック処理を行なうことによって、ライトバック処理時の負荷を減らしてRAID装置の性能(例えば、ディスク装置群へのアクセス速度、時間等)を向上することが可能となる。
(付記2) 前記第1及び第2の基準値には、前記ディスク装置に対して発行するコマンド発行回数、前記ディスク装置との間で送受信されるデータ転送量、更新後データのパリティデータを生成するために必要なXOR演算回数、の少なくとも1つを用いる、ことを特徴とする請求項1に記載のライトバック方法。
(付記3) 前記書込み方式決定処理は、前記第2の基準値より前記第1の基準値が小さい場合にSmall Write方式に決定し、前記第1の基準値より前記第2の基準値が小さい場合にRead & Bandwidth Write方式に決定する、ことを特徴とする請求項1に記載のライトバック方法。
(付記4) 前記書込み方式決定処理は、前記ディスク装置に対して発行するコマンド発行回数と、前記ディスク装置との間で送受信されるデータ転送量と、及び更新後データのパリティデータを生成するために必要なXOR演算回数と、をそれぞれ前記第1及び第2の基準値に用いて比較をし、該比較の結果、前記コマンド発行回数、前記データ転送量、及び前記XOR演算回数の少なくとも2以上について、前記第2の基準値より前記第1の基準値が小さい場合にSmall Write方式に決定し、前記第1の基準値より前記第2の基準値が小さい場合にRead & Bandwidth Write方式に決定する、ことを特徴とする請求項1に記載のライトバック方法。
(付記5) 前記書込み方式決定処理は、前記ディスク装置に対して発行するコマンド発行回数、前記ディスク装置との間で送受信されるデータ転送量、更新後データのパリティデータを生成するために必要なXOR演算回数に、上限値を設け、該上限値を超えた場合には、Small Write方式とRead & Bandwidth Write方式のうち前記上限値を超えない方に決定する、ことを特徴とする請求項1に記載のライトバック方法。
(付記6) ホストコンピュータから送られる更新データによって更新されたキャッシュメモリに格納されている更新後データの更新情報を更新情報管理テーブルに記憶する更新情報記憶手段と、該更新情報管理テーブルから前記更新後データの更新情報を取得し、該更新情報から、Small Write方式による書込み処理の負荷を表す第1の基準値と、Read & Bandwidth Write方式による書込み処理の負荷を表す第2の基準値と、を生成する基準値生成手段と、該基準値生成手段によって生成された前記第1の基準値と前記第2の基準値とを比較し、該比較結果に基づいて、Small Write方式とRead & Bandwidth Write方式とのいずれかの方式を書込み方式に決定する書込み方式決定手段と、前記キャッシュメモリに格納された前記更新後データのデータストライプを読出し、前記書込み方式決定手段で決定した方式によって前記データストライプの更新を行なう書込み手段と、を備えるRAID制御装置。
(付記7) 前記第1及び第2の基準値には、前記ディスク装置に対して発行するコマンド発行回数、前記ディスク装置との間で送受信されるデータ転送量、更新後データのパリティデータを生成するために必要なXOR演算回数、の少なくとも1つを用いる、ことを特徴とする請求項6に記載のRAID制御装置。
(付記8) 前記書込み方式決定手段は、前記第2の基準値より前記第1の基準値が小さい場合にSmall Write方式に決定し、前記第1の基準値より前記第2の基準値が小さい場合にRead & Bandwidth Write方式に決定する、ことを特徴とする請求項6に記載のRAID制御装置。
(付記9) 前記書込み方式決定手段は、前記ディスク装置に対して発行するコマンド発行回数と、前記ディスク装置との間で送受信されるデータ転送量と、及び更新後データのパリティデータを生成するために必要なXOR演算回数と、をそれぞれ前記第1及び第2の基準値に用いて比較をし、該比較の結果、前記コマンド発行回数、前記データ転送量、及び前記XOR演算回数の少なくとも2以上について、前記第2の基準値より前記第1の基準値が小さい場合にSmall Write方式に決定し、前記第1の基準値より前記第2の基準値が小さい場合にRead & Bandwidth Write方式に決定する、ことを特徴とする請求項6に記載のRAID制御装置。
(付記10) 前記書込み方式決定手段は、前記ディスク装置に対して発行するコマンド発行回数、前記ディスク装置との間で送受信されるデータ転送量、更新後データのパリティデータを生成するために必要なXOR演算回数に、上限値を設け、該上限値を超えた場合には、Small Write方式とRead & Bandwidth Write方式のうち前記上限値を超えない方に決定する、ことを特徴とする請求項6に記載のRAID制御装置。
(付記11) ホストコンピュータから送られる更新データを格納するための複数の記憶部を備えるRAID装置であって、前記更新データによって更新されたキャッシュメモリに格納されている更新後データの更新情報を更新情報管理テーブルに記憶する更新情報記憶手段と、該更新情報管理テーブルから前記更新後データの更新情報を取得し、該更新情報から、Small Write方式による書込み処理の負荷を表す第1の基準値と、Read & Bandwidth Write方式による書込み処理の負荷を表す第2の基準値と、を生成する基準値生成手段と、該基準値生成手段によって生成された前記第1の基準値と前記第2の基準値とを比較し、該比較結果に基づいて、Small Write方式とRead & Bandwidth Write方式とのいずれかの方式を書込み方式に決定する書込み方式決定手段と、前記キャッシュメモリに格納された前記更新後データのデータストライプを読出し、前記書込み方式決定手段で決定した方式によって前記データストライプを前記複数の記憶部に格納する書込み手段と、を備えるRAID装置。
(付記12) 前記第1及び第2の基準値には、前記記憶部に対して発行するコマンド発行回数、前記記憶部との間で送受信されるデータ転送量、更新後データのパリティデータを生成するために必要なXOR演算回数、の少なくとも1つを用いる、ことを特徴とする請求項11に記載のRAID装置。
(付記13) 前記書込み方式決定手段は、前記第2の基準値より前記第1の基準値が小さい場合にSmall Write方式に決定し、前記第1の基準値より前記第2の基準値が小さい場合にRead & Bandwidth Write方式に決定する、ことを特徴とする請求項11に記載のRAID装置。
(付記14) 前記書込み方式決定手段は、前記記憶部に対して発行するコマンド発行回数と、前記記憶部との間で送受信されるデータ転送量と、及び更新後データのパリティデータを生成するために必要なXOR演算回数と、をそれぞれ前記第1及び第2の基準値に用いて比較をし、該比較の結果、前記コマンド発行回数、前記データ転送量、及び前記XOR演算回数の少なくとも2以上について、前記第2の基準値より前記第1の基準値が小さい場合にSmall Write方式に決定し、前記第1の基準値より前記第2の基準値が小さい場合にRead & Bandwidth Write方式に決定する、ことを特徴とする請求項11に記載のRAID装置。
(付記15) 前記書込み方式決定手段は、前記記憶部に対して発行するコマンド発行回数、前記記憶部との間で送受信されるデータ転送量、更新後データのパリティデータを生成するために必要なXOR演算回数に、上限値を設け、該上限値を超えた場合には、Small Write方式とRead & Bandwidth Write方式のうち前記上限値を超えない方に決定する、ことを特徴とする請求項11に記載のRAID装置。
4 キャッシュメモリ
5 更新情報管理テーブル
6 更新情報記憶手段
7 基準値生成手段
8 書き込み方式決定手段
9 書き込み手段
10a、10b マイクロプロセッサ
11a、11b キャッシュメモリ
12a、12b RAM
13a、13b CA
14 ホストコンピュータ
16a、16b ディスク装置群
Claims (5)
- ホストコンピュータから送られる更新データによって更新されたキャッシュメモリに格納されている更新後データの更新部分を示す更新情報を更新情報管理テーブルに記憶する更新情報記憶処理と、
該更新情報管理テーブルから前記更新後データの更新情報を取得し、該更新情報が示す更新部分を有する前記更新後データについて、Small Write方式による書込み処理を行なう場合の負荷を表す第1の基準値と、Read & Bandwidth Write方式による書込み処理を行なう場合の負荷を表す第2の基準値と、を生成する基準値生成処理と、
該基準値生成処理によって生成された前記第1の基準値と前記第2の基準値とを比較し、該比較結果に基づいて、Small Write方式とRead & Bandwidth Write方式とのいずれかの方式を書込み方式に決定する書込み方式決定処理と、
前記キャッシュメモリに格納された前記更新後データのデータストライプを読出し、前記書込み方式決定処理で決定した方式によって前記データストライプの更新を行なう書込み処理と、
をRAID制御装置に行なわせることを特徴とするライトバック方法。 - 前記第1及び第2の基準値には、前記ディスク装置に対して発行するコマンド発行回数、前記ディスク装置との間で送受信されるデータ転送量、更新後データのパリティデータを生成するために必要なXOR演算回数、の少なくとも1つを用いる、
ことを特徴とする請求項1に記載のライトバック方法。 - 前記書込み方式決定処理は、前記第2の基準値より前記第1の基準値が小さい場合にSmall Write方式に決定し、前記第1の基準値より前記第2の基準値が小さい場合にRead & Bandwidth Write方式に決定する、
ことを特徴とする請求項1に記載のライトバック方法。 - ホストコンピュータから送られる更新データによって更新されたキャッシュメモリに格納されている更新後データの更新部分を示す更新情報を更新情報管理テーブルに記憶する更新情報記憶手段と、
該更新情報管理テーブルから前記更新後データの更新情報を取得し、該更新情報からが示す更新部分を有する前記更新後データについて、Small Write方式による書込み処理を行なう場合の負荷を表す第1の基準値と、Read & Bandwidth Write方式による書込み処理を行なう場合の負荷を表す第2の基準値と、を生成する基準値生成手段と、
該基準値生成手段によって生成された前記第1の基準値と前記第2の基準値とを比較し、該比較結果に基づいて、Small Write方式とRead & Bandwidth Write方式とのいずれかの方式を書込み方式に決定する書込み方式決定手段と、
前記キャッシュメモリに格納された前記更新後データのデータストライプを読出し、前記書込み方式決定手段で決定した方式によって前記データストライプの更新を行なう書込み手段と、
を備えるRAID制御装置。 - ホストコンピュータから送られる更新データを格納するための複数の記憶部を備えるRAID装置であって、
前記更新データによって更新されたキャッシュメモリに格納されている更新後データの更新部分を示す更新情報を更新情報管理テーブルに記憶する更新情報記憶手段と、
該更新情報管理テーブルから前記更新後データの更新情報を取得し、該更新情報が示す更新部分を有する前記更新後データについて、Small Write方式による書込み処理を行なう場合の負荷を表す第1の基準値と、Read & Bandwidth Write方式による書込み処理を行なう場合の負荷を表す第2の基準値と、を生成する基準値生成手段と、
該基準値生成手段によって生成された前記第1の基準値と前記第2の基準値とを比較し、該比較結果に基づいて、Small Write方式とRead & Bandwidth Write方式とのいずれかの方式を書込み方式に決定する書込み方式決定手段と、
前記キャッシュメモリに格納された前記更新後データのデータストライプを読出し、前記書込み方式決定手段で決定した方式によって前記データストライプを前記複数の記憶部に格納する書込み手段と、
を備えるRAID装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005274830A JP4410178B2 (ja) | 2005-09-22 | 2005-09-22 | Raid装置におけるライトバック方法 |
US11/356,287 US7370145B2 (en) | 2005-09-22 | 2006-02-17 | Write back method for RAID apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005274830A JP4410178B2 (ja) | 2005-09-22 | 2005-09-22 | Raid装置におけるライトバック方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007087094A JP2007087094A (ja) | 2007-04-05 |
JP4410178B2 true JP4410178B2 (ja) | 2010-02-03 |
Family
ID=37885638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005274830A Expired - Fee Related JP4410178B2 (ja) | 2005-09-22 | 2005-09-22 | Raid装置におけるライトバック方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7370145B2 (ja) |
JP (1) | JP4410178B2 (ja) |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7697326B2 (en) | 2006-05-12 | 2010-04-13 | Anobit Technologies Ltd. | Reducing programming error in memory devices |
CN103258572B (zh) | 2006-05-12 | 2016-12-07 | 苹果公司 | 存储设备中的失真估计和消除 |
US8156403B2 (en) | 2006-05-12 | 2012-04-10 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US8239735B2 (en) | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
WO2008026203A2 (en) * | 2006-08-27 | 2008-03-06 | Anobit Technologies | Estimation of non-linear distortion in memory devices |
CN101601094B (zh) * | 2006-10-30 | 2013-03-27 | 苹果公司 | 使用多个门限读取存储单元的方法 |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7924648B2 (en) * | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
US8151163B2 (en) | 2006-12-03 | 2012-04-03 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
US7706182B2 (en) * | 2006-12-03 | 2010-04-27 | Anobit Technologies Ltd. | Adaptive programming of analog memory cells using statistical characteristics |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
EP2118746B1 (en) * | 2007-01-11 | 2019-01-02 | Red Bend Ltd. | Method and system for in-place updating content stored in a storage device |
US7751240B2 (en) * | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US8151166B2 (en) | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
CN101715595A (zh) * | 2007-03-12 | 2010-05-26 | 爱诺彼得技术有限责任公司 | 存储器单元读取阈的自适应估计 |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US8060696B2 (en) * | 2007-04-27 | 2011-11-15 | Siemens Medical Solutions Usa, Inc. | Positron emission tomography event stream buffering |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8234545B2 (en) | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
JP5124217B2 (ja) * | 2007-09-18 | 2013-01-23 | 株式会社日立製作所 | ストレージ装置 |
US8174905B2 (en) * | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US7773413B2 (en) * | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8527819B2 (en) * | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8270246B2 (en) * | 2007-11-13 | 2012-09-18 | Apple Inc. | Optimized selection of memory chips in multi-chips memory devices |
US7797501B2 (en) * | 2007-11-14 | 2010-09-14 | Dell Products, Lp | Information handling system including a logical volume and a cache and a method of using the same |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US8209588B2 (en) | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US8085586B2 (en) * | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
US7924587B2 (en) | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US7864573B2 (en) * | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US8230300B2 (en) | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8059457B2 (en) | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US8498151B1 (en) | 2008-08-05 | 2013-07-30 | Apple Inc. | Data storage in analog memory cells using modified pass voltages |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
WO2010049928A1 (en) * | 2008-10-27 | 2010-05-06 | Kaminario Tehnologies Ltd. | System and methods for raid writing and asynchronous parity computation |
US8261159B1 (en) | 2008-10-30 | 2012-09-04 | Apple, Inc. | Data scrambling schemes for memory devices |
US8208304B2 (en) * | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8174857B1 (en) | 2008-12-31 | 2012-05-08 | Anobit Technologies Ltd. | Efficient readout schemes for analog memory cell devices using multiple read threshold sets |
US8248831B2 (en) * | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
JP5218147B2 (ja) * | 2009-02-26 | 2013-06-26 | 富士通株式会社 | ストレージ制御装置,ストレージ制御方法およびストレージ制御プログラム |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8832354B2 (en) * | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8572311B1 (en) | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8103904B2 (en) | 2010-02-22 | 2012-01-24 | International Business Machines Corporation | Read-other protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
US8583866B2 (en) | 2010-02-22 | 2013-11-12 | International Business Machines Corporation | Full-stripe-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
US8103903B2 (en) | 2010-02-22 | 2012-01-24 | International Business Machines Corporation | Read-modify-write protocol for maintaining parity coherency in a write-back distributed redundancy data storage system |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
JP2012185687A (ja) * | 2011-03-07 | 2012-09-27 | Fujitsu Ltd | 制御装置、制御方法およびストレージ装置 |
JP5923964B2 (ja) | 2011-12-13 | 2016-05-25 | 富士通株式会社 | ディスクアレイ装置、制御装置、およびプログラム |
WO2014155525A1 (ja) * | 2013-03-26 | 2014-10-02 | 株式会社日立製作所 | ストレージシステム及び制御方法 |
US9104597B2 (en) * | 2013-04-16 | 2015-08-11 | International Business Machines Corporation | Destaging cache data using a distributed freezer |
US9298398B2 (en) | 2013-04-16 | 2016-03-29 | International Business Machines Corporation | Fine-grained control of data placement |
US9329938B2 (en) | 2013-04-16 | 2016-05-03 | International Business Machines Corporation | Essential metadata replication |
US9619404B2 (en) | 2013-04-16 | 2017-04-11 | International Business Machines Corporation | Backup cache with immediate availability |
US9423981B2 (en) | 2013-04-16 | 2016-08-23 | International Business Machines Corporation | Logical region allocation with immediate availability |
US9104332B2 (en) | 2013-04-16 | 2015-08-11 | International Business Machines Corporation | Managing metadata and data for a logical volume in a distributed and declustered system |
US9298617B2 (en) | 2013-04-16 | 2016-03-29 | International Business Machines Corporation | Parallel destaging with replicated cache pinning |
CN104571959A (zh) * | 2014-12-31 | 2015-04-29 | 曙光信息产业股份有限公司 | 数据处理方法和装置 |
JP7355616B2 (ja) | 2019-11-26 | 2023-10-03 | 株式会社日立製作所 | 分散ストレージシステムおよび分散ストレージシステムのパリティ更新方法 |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200715B2 (en) | 2002-03-21 | 2007-04-03 | Network Appliance, Inc. | Method for writing contiguous arrays of stripes in a RAID storage system using mapped block writes |
US7035974B2 (en) * | 2002-11-06 | 2006-04-25 | Synology Inc. | RAID-5 disk having cache memory implemented using non-volatile RAM |
JP4435705B2 (ja) * | 2005-03-14 | 2010-03-24 | 富士通株式会社 | 記憶装置、その制御方法及びプログラム |
-
2005
- 2005-09-22 JP JP2005274830A patent/JP4410178B2/ja not_active Expired - Fee Related
-
2006
- 2006-02-17 US US11/356,287 patent/US7370145B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2007087094A (ja) | 2007-04-05 |
US7370145B2 (en) | 2008-05-06 |
US20070067667A1 (en) | 2007-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4410178B2 (ja) | Raid装置におけるライトバック方法 | |
JP4634157B2 (ja) | ストレージシステム | |
JP5923964B2 (ja) | ディスクアレイ装置、制御装置、およびプログラム | |
JP4788528B2 (ja) | ディスク制御装置、ディスク制御方法、ディスク制御プログラム | |
JP4372134B2 (ja) | データ比較機能を有するストレージシステム | |
US7127557B2 (en) | RAID apparatus and logical device expansion method thereof | |
JP3249868B2 (ja) | アレイ形式の記憶装置システム | |
US20070168754A1 (en) | Method and apparatus for ensuring writing integrity in mass storage systems | |
JP4675881B2 (ja) | 磁気ディスク装置およびその制御方法 | |
JP4712102B2 (ja) | 記憶装置、データ処理方法およびデータ処理プログラム | |
EP0701208A2 (en) | Disk array subsystem and data generation method therefor | |
JP2006318017A (ja) | Raid構成変換方法、装置及びプログラム並びにこれを用いたディスクアレイ装置 | |
JP4461089B2 (ja) | ストレージ制御装置およびストレージ制御方法 | |
JP6052288B2 (ja) | ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム | |
JP2006072435A (ja) | ストレージシステムおよびデータ記録方法 | |
JP2006252165A (ja) | ディスクアレイ装置、及びコンピュータシステム | |
JP4373450B2 (ja) | Raid制御装置及びその制御方法 | |
JP2008003857A (ja) | ストレージ装置の容量拡張方法、プログラム、およびストレージ装置 | |
JP5505329B2 (ja) | ディスクアレイ装置及びその制御方法 | |
JP2003241904A (ja) | ディスクアレイ装置、及びその制御方法 | |
WO2016175762A1 (en) | Storage cache management | |
JP2018063491A (ja) | 制御装置、制御方法及びプログラム | |
JP6875237B2 (ja) | ストレージ制御装置、ストレージ制御システム、ストレージ制御方法、及び、ストレージ制御プログラム | |
JPH08202505A (ja) | アレイ型記憶装置 | |
JP2017054303A (ja) | ディスクアレイ装置、ディスクアレイシステム、制御方法、および、制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090804 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091005 |
|
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: 20091110 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091112 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4410178 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121120 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121120 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131120 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |