JP2002207572A - ディスク制御システムおよびディスク制御方法 - Google Patents

ディスク制御システムおよびディスク制御方法

Info

Publication number
JP2002207572A
JP2002207572A JP2001001137A JP2001001137A JP2002207572A JP 2002207572 A JP2002207572 A JP 2002207572A JP 2001001137 A JP2001001137 A JP 2001001137A JP 2001001137 A JP2001001137 A JP 2001001137A JP 2002207572 A JP2002207572 A JP 2002207572A
Authority
JP
Japan
Prior art keywords
data
write
logical address
writing
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001001137A
Other languages
English (en)
Other versions
JP3592640B2 (ja
Inventor
Satoshi Mizuno
聡 水野
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2001001137A priority Critical patent/JP3592640B2/ja
Priority to EP01122025A priority patent/EP1221646A3/en
Priority to US09/954,303 priority patent/US7216199B2/en
Publication of JP2002207572A publication Critical patent/JP2002207572A/ja
Application granted granted Critical
Publication of JP3592640B2 publication Critical patent/JP3592640B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】専用の不揮発性メモリを使用しないで、主メモ
リとディスク装置を用いて、ディスク上のストライプに
連続的にデータを書き込むディスク制御システムを提供
する。 【解決手段】 複数のディスク装置により構成されるデ
ータストライプに対して連続的にデータを書いていくR
AIDコントローラを有するディスク制御システムにお
いて、ライトリクエストに応答して、複数のディスク上
の割り当てられた書き込み対象データストライプの空き
領域に、少なくとも1データブロックずつ逐次書き込
む。また、ライトリクエストに応答して、複数のディス
ク上の論理アドレスログ領域18b2に、アドレス変換
前のアドレス値である論理アドレスを論理アドレスログ
情報として書き込む。このデータと論理アドレスログ情
報の書き込み完了を持って、上位ファイルシステム50
に書き込み完了を通知する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ディスク制御シス
テムおよびディスク制御方法に関し、特に、RAID制
御装置に用いられていた書き込みバッファやアドレス変
換テーブルなどを構成する専用の不揮発性メモリを使用
しないで、主メモリとディスク装置だけを用いて、ディ
スク上のストライプに連続的にライトリクエストのデー
タを書き込むディスク制御システムおよびディスク制御
方法に関するものである。
【0002】
【従来の技術】RAID構成のディスク制御システムの
ライト方式は、例えば特開平6−214720号公報
や、特開平11−53235号公報に示すように、ラン
ダムライトを1つの連続した領域としての物理ストライ
プにまとめて書き込む方式が提案されている。しかしな
がら、従来技術では、書き込むデータを一度不揮発性メ
モリ(以下、NvRAMと称する)又は揮発性メモリに
書き込み、1ストライプ分の書込みデータが揃った時点
で、ディスク装置上の物理ストライプに書込みを行って
いた。また、上位ファイルシステムからの論理アドレス
をディスク上の物理アドレスに変換したアドレス変換テ
ーブルを上記NvRAMに記憶させていた。
【0003】この様に、一度、NvRAMにデータを書
き込むことにより、ディスク装置上に書き込む前にシス
テムが異常停止したとしても、システムリブート後にN
vRAMを参照し、NvRAM上の書きかけのデータを
正しくディスク装置に書き込むことにより、書き込みを
完了させることができる(書き込みデータを失わない)
効果が有る。
【0004】即ち、NvRAMへのデータ書き込みが終
れば、そのライトデータが失われることはない。このた
め、従来のディスク制御システムでは、書き込みデータ
をNvRAMに書き込んだ時点で、そのライトリクエス
トに対して「完了」をホストに通知していた。
【0005】
【発明が解決しようとする課題】しかしながら、NvR
AMはシステムに装着するI/Oカード(ハードウェ
ア)で提供する必要が有り、その分コストがかかるとい
う問題があり、また、ホスト計算機との相性の問題、互
換性、保守等の手間もかかる等の問題がある。
【0006】本発明では、NvRAMを使わずに、主メ
モリとディスク装置だけを用いて、ディスク上のストラ
イプに連続的にライトリクエストのデータを書き込むデ
ィスク制御システムおよびディスク制御方法を提供する
ことを目的とする。また、NvRAMを使用せずとも異
常停止時にデータを損失することが無く、システムの性
能向上を実現させるものである。
【0007】
【課題を解決するための手段】上記目的を達成するため
に、発明のディスク制御システムは、上位ファイルシス
テムからのライトリクエストに応答して、論理アドレス
から物理アドレスへのアドレス変換を行い、複数のディ
スク装置により構成される書き込み領域であるデータス
トライプに対して連続的にライトリクエストのデータを
書いていくディスク制御システムにおいて、前記ライト
リクエストに応答して、前記複数のディスク上に設けら
れたデータ領域の割り当てられた書き込み対象データス
トライプの空き領域に、少なくとも1データブロックず
つ逐次書き込む手段と、前記ライトリクエストに応答し
て、前記複数のディスク上に設けられたデータ管理領域
に、前記上位ファイルシステムからの前記論理アドレス
を論理アドレスログ情報として書き込む手段と、前記上
位ファイルシステムからのライトリクエストに対して、
前記データと前記論理アドレスログ情報の書き込み完了
を持って、上位ファイルシステムに書き込み完了を通知
する手段とを具備することを特徴とする。
【0008】本発明によれば、不揮発性メモリに代わり
に、ディスク上に設けられたデータ管理領域18b、デ
ータ領域18cなどを用いることにより、ランダムライ
トが物理的に連続した領域への書き込みとして実行する
ことが出来る。したがって、シーク/回転待ちが少なく
なり、不揮発性メモリを使用しなくても高速な書き込み
処理が実現される。
【0009】また、本発明のディスク制御システムは、
上位ファイルシステムからのライトリクエストに応答し
て、論理アドレスから物理アドレスへのアドレス変換を
行い、複数のディスク装置により構成される書き込み領
域であるストライプに対して連続的にライトリクエスト
のデータを書いていくディスク制御システムにおいて、
主メモリ上に設けられたライトバッファに、複数のライ
トリクエストに対応する複数のブロックデータを書き込
む手段と、前記複数のライトリクエストに応答して、前
記複数のディスク上に設けられたデータ領域の割り当て
られた書き込み対象データストライプの空き領域に、前
記ライトバッファに記憶した複数のブロックデータを一
括ライトするデータ書き込み手段と、前記複数のブロッ
クデータに対応する前記上位ファイルシステムからの前
記論理アドレスを論理アドレスログ情報として、前記複
数のディスク上に設けられたデータ管理領域に一括ライ
トするログ書き込み手段と、前記上位ファイルシステム
からのライトリクエストに対して、前記データと前記論
理アドレスログ情報の書き込み完了を持って、上位ファ
イルシステムに完了を通知する手段とを具備することを
特徴とする。
【0010】本発明によれば、不揮発性メモリに代わり
に、ディスク上に設けられたデータ管理領域18b、デ
ータ領域18cなどを用いることにより、ランダムライ
トが物理的に連続した領域への書き込みとして実行する
ことが出来る。また、複数のライトリクエストが1度の
データライト処理と1度の論理アドレスログ情報の書き
込みとして処理することができるため、書き込み処理回
数が減り、書き込みサイズが大きくなることでディスク
へのトータルとして書き込みオーバヘッドが小さくな
り、結果的に書き込み処理のスループットが向上する。
【0011】また、本発明のディスク制御システムは、
上位ファイルシステムからのライトリクエストに応答し
て、論理アドレスから物理アドレスへのアドレス変換を
行い、複数のディスク装置により構成される書き込み領
域であるデータストライプに対して連続的にライトリク
エストのデータを書いていくディスク制御システムにお
いて、前記ライトリクエストに応答して、前記複数のデ
ィスク上に設けられたデータ領域の割り当てられた書き
込み対象データストライプの空き領域に、少なくとも1
データブロックずつ逐次書き込む手段と、前記ライトリ
クエストに応答して、前記複数のディスク上に設けられ
た論理アドレスログ領域に、前記上位ファイルシステム
からの前記論理アドレス、および書き込みデータサイ
ズ、および書き込みデータのチェックサムを論理アドレ
スログ情報として書き込む手段と、前記上位ファイルシ
ステムからのライトリクエストに対して、前記データと
前記論理アドレスログ情報の書き込み完了を持って、上
位ファイルシステムに書き込み完了を通知する手段とを
具備することを特徴とする。
【0012】本発明によれば、ディスクのデータ領域へ
のデータ書き込み中にシステムの障害が発生した場合に
は、書き込み処理途中のストライプに関して、その論理
アドレスログ領域に書き込まれているチェックサム値と
データ領域のデータから求めたチェックサム値とが一致
するか否かを確認チェックすることにより、一致してい
る場合には、データ書き込みが完了していたと判断し、
データを有効とみなし残りの処理(アドレス変換テーブ
ルへの登録等)を行ない、効率的な障害回復処理が実行
できる。
【0013】また、本発明のディスク制御システムは、
上位ファイルシステムからのライトリクエストに応答し
て、論理アドレスから物理アドレスへのアドレス変換を
行い、複数のディスク装置により構成される書き込み領
域であるデータストライプに対して連続的にライトリク
エストのデータを書いていくディスク制御システムにお
いて、前記ライトリクエストに応答して、前記複数のデ
ィスク上に設けられた論理アドレスログ領域に、前記上
位ファイルシステムからの前記論理アドレス、書き込み
データサイズ、書き込みデータのチェックサム、および
少なくとも1データブロックを論理アドレスログ情報と
して書き込む手段と、前記ライトリクエストに応答し
て、前記複数のディスク上に設けられたデータ領域の割
り当てられた書き込み対象データストライプの空き領域
に、少なくとも1データブロックずつ逐次書き込む手段
と、前記上位ファイルシステムからのライトリクエスト
に対して、前記論理アドレスログ領域への前記論理アド
レスログ情報の書き込み完了を持って、上位ファイルシ
ステムに書き込み完了を通知する手段とを具備すること
を特徴とする。
【0014】本発明によれば、個々のライトリクエスト
に対して、論理アドレスログ領域に論理アドレスログ情
報とライトデータaの書き込みが完了すれば、その時点
でOSファイルシステムに対して完了通知することがで
きる。つまり、OSファイルシステムに対するレスポン
スが早くなる。
【0015】また、本発明のディスク制御システムは、
上位ファイルシステムからのライトリクエストに応答し
て、論理アドレスから物理アドレスへのアドレス変換を
行い、複数のディスク装置により構成される書き込み領
域であるデータストライプに対して連続的にライトリク
エストのデータを書いていくディスク制御システムにお
いて、前記ライトリクエストに応答して、前記複数のデ
ィスク上に設けられた論理アドレスログ領域のヘッダ部
に有効/無効を示すフラグ、ストライプID番号、およ
び最終データの書き込みタイムスタンプを記録し、前記
論理アドレスログ領域のエントリ部に書き込みリクエス
トによって処理される1つ又は複数のブロックデータの
タイムスタンプ、1つ又は複数の論理アドレス、および
1つ又は複数のチェックサムを論理アドレスログ情報と
して書き込む手段と、前記ライトリクエストに応答し
て、前記複数のディスク上に設けられたデータ領域の割
り当てられた書き込み対象データストライプの空き領域
に、少なくとも1データブロックずつ逐次書き込む手段
と、書き込み中にシステムの障害が発生した場合には、
書き込み処理途中の有効なフラグがセットされているス
トライプに関して、その前記論理アドレスログ領域に書
き込まれているチェックサム値が前記データ領域の書き
込みデータから求めたチェックサム値との一致を確認
し、一致した時には、そのデータは有効なデータとして
取り扱い、一致しなかった時には書き込みが完了しなか
ったとみなし、そのデータを捨てることを特徴とする。
【0016】本発明によれば、書き込み中にシステムの
障害が発生した場合には、書込み処理途中の有効なフラ
グがセットされているストライプに関して、その論理ア
ドレスログ領域に書き込まれているチェックサム値がデ
ータ領域の書き込みデータから求めたチェックサム値と
の一致を確認し、一致した時には、そのデータは有効な
データとして取り扱い、一致しなかった時には書き込み
が完了しなかったとみなし捨てることにより、障害回復
処理を効率よく実行することが出来る。
【0017】
【発明の実施の形態】先ず、本発明で用いられる各種の
用語について説明する。 (データストライプ)ディスク制御システムが「まとめ
書き」(又は「一括書き」とも言われる)するデータの
単位を意味する。ディスクのパーティション上で、一続
きの領域となっており、RAIDコントローラが管理す
るストライプサイズの整数倍のサイズである。RAID
5に対しては、このサイズをパリティグループにする事
により、いわゆる「RAID5のライトペナルティ」を
改善する事ができ、大幅な性能向上を実現できる。スト
ライプは複数のデータブロックから構成される。
【0018】(ストライプ番号)パーティション上に並
んでいる物理ストライプの通し番号を意味する。
【0019】(論理ブロック番号=論理アドレス番号)
「論理ブロック番号」とは、上位ファイルシステムから
見た時のディスクパーティション上のデータブロック番
号である。ディスク制御システム方式では、上位ファイ
ルシステムがアクセスを要求する時のブロック番号は、
論理ブロック番号であり、仮想的なブロック番号であ
る。この論理ブロック番号は、ディスク制御システムが
管理する「アドレス変換テーブル」によって物理ブロッ
ク番号(物理パーティション上の物理的なブロック番
号)と対応づけられる。(物理ブロック番号)×(ブロ
ックサイズ[バイト])よりパーティション上でのバイ
トオフセット値(アドレス)が求まる。
【0020】(アドレス変換テーブル:AMT(Addres
s Mapping Table))ディスク制御システム方式では、
上位ファイルシステムがアクセスを要求する時のブロッ
ク番号は、論理ブロック番号であり、仮想的なブロック
番号である。この論理ブロック番号はディスク制御シス
テムが管理する「アドレス変換テーブル」によって物理
ブロック番号(物理パーティション上の物理的なブロッ
ク番号)と対応づけられる。本発明の実施形態では、ア
ドレス変換テーブルは、対象パーティション上に有り、
データ部と別の領域が割り当てられる。アドレス変換テ
ーブルは、論理ブロック番号に対する物理ブロック番号
が登録されたれたテーブルである。新たにデータブロッ
クを書き込む時には、相当する論理ブロック番号のエン
トリに、そのブロックを書き込む物理ブロック番号(=
ディスク上のアドレス)を登録する。また、データブロ
ックを参照する際には、その論理アドレスをインデック
スとするエントリの値を求め、その値をディスク上の物
理ブロック番号として実際のアドレスを求め参照する。
【0021】以下、図面を参照して本発明の実施形態に
ついて説明する。図1には、本発明の一実施形態に係る
ディスク制御システムを適用した計算機システムの構成
が示されている。この計算機システムは、例えばサーバ
(PCサーバ)として利用されるものであり、複数のC
PU(#1、#2、#N)11を搭載することが出来
る。これら各CPU11は図示のようにプロセッサバス
1を介してブリッジ12に接続されている。ブリッジ1
2はプロセッサバス1とPCIバス2を双方向で接続す
るためのブリッジLSIであり、ここには主メモリ13
を制御するためのメモリコントローラも内蔵されてい
る。主メモリ13には、オペレーティングシステム(O
S)、実行対象のアプリケーションプログラム、および
ドライバなどがロードされている。また、本発明では、
主メモリ13のドライバ作業領域17に、ライトバッフ
ァ(まとめ書きバッファ)171、アドレス変換テーブ
ル(以下、AMTキャッシュと称する)172、ストラ
イプ管理テーブル173が設けられている。
【0022】ライトバッファ171は、書き込みデータ
ブロックを蓄積するためのデータバッファであり、この
ライトバッファ171に例えば1物理ストライプ分の書
き込みデータブロックが蓄積された時点でディスクアレ
イ18への一括書き込みが開始されるが、本発明におい
てはそれに限定されるものではない。まとめ書きを行な
う場合、物理ストライプは「まとめ書き」の単位であ
り、ディスクアレイ18の全記憶領域に形成されたパー
ティション上で一続きの連続した領域から構成される。
各物理ストライプは、RAIDコントローラ16が管理
するストライプユニットの整数倍のサイズである。
【0023】AMTキャッシュ172は、論理アドレス
空間を構成する複数の論理ブロック番号それぞれと、そ
れら論理ブロック番号で指定されるデータブロックが存
在するディスクアレイ18上の物理位置を示す物理ブロ
ック番号との対応関係を示すアドレス変換情報を記憶す
る。OSファイルシステムがアクセスを要求するときの
ブロック番号は論理ブロック番号であり、これは仮想的
な論理アドレスである。この論理ブロック番号はAMT
キャッシュ172によって物理ブロック番号(ディスク
パーティション上の物理的なブロック番号)と対応づけ
られる。また、物理ブロック番号×ブロックサイズ(バ
イト)によって、ディスクパーティションの先頭位置か
らのバイトオフセット値が求められる。
【0024】また、AMTキャッシュ172は、論理ブ
ロック番号それぞれに対応する複数のエントリを有して
いる。新たにデータブロックを書き込むときには、書き
込み要求された論理ブロック番号に対応するエントリに
は、そのデータブロックの実際に書き込まれる物理ブロ
ック番号(物理アドレス)が登録される。データブロッ
クの読み出し時には、読み出し要求された論理ブロック
番号に対応するエントリから物理ブロック番号が調べら
れ、その物理ブロック番号(物理ブロック番号×ブロッ
クサイズ)で指定されるディスクパーティション上の物
理位置からデータブロックが読み出される。
【0025】ストライプ管理テーブル173は、各論理
ストライプに関する情報を管理するためのものであり、
それら各論理ストライプの情報はデータ再配置のための
処理などに利用される。
【0026】PCIバス2には、RAIDコントローラ
16が接続されている。RAIDコントローラ16によ
って制御される複数のディスク装置で構成されるディス
クアレイ18は、各種ユーザデータの記録等に用いられ
る。
【0027】ディスクアレイ18は、RAIDコントロ
ーラ16の制御により、例えばRAID5構成のディス
クアレイとして機能する。この場合、ディスクアレイ1
8は、データ記憶用のN台のディスク装置にパリティ記
憶用のディスク装置を1台付加したN+1台(ここで
は、DISK0〜DISK4の5台)のディスク装置か
ら構成される。これらN+1台のディスク装置はグルー
プ化され、単一の論理ディスクドライブとして使用され
る。
【0028】グループ化されたディスク装置には、図示
のように、データ(DATA)とそのパリティ(PAR
ITY)とから構成される物理ストライプ(パリティグ
ループ)が割り当てられ、かつ、パリティ位置は物理ス
トライプ毎にN+1台のディスク装置間で順に移動され
る。例えば、物理ストライプS0では、DISK0〜D
ISK3それぞれの同一位置に割り当てられたストライ
プ上のデータ(DATA)群のパリティ(PARIT
Y)は、DISK4の対応するストライプ上に記録され
る。また、物理ストライプS1においては、そのストラ
イプS1のデータに対応するパリティ(PARITY)
は、DISK3の対応するストライプ上に記録される。
このようにパリティを物理ストライプ単位でN+1台の
ディスク装置に分散させることによって、パリティディ
スクへのアクセス集中を防止するように構成されてい
る。
【0029】主メモリ13のドライバ作業領域17は、
RAID高速化ドライバの実現のために使用される作業
領域である。RAID高速化ドライバは、ディスクアレ
イ18に対する書き込み性能を向上させるために用いら
れる。本実施形態においては、OSファイルシステム5
0には改良を加えず、OSに組み込んで用いられるドラ
イバプログラムとドライバ作業領域17とによってRA
ID高速化ドライバが実現されている。ここで、図2を
参照して、RAID高速化ドライバによるディスクアレ
イ18の書き込み制御の原理について説明する。
【0030】OSファイルシステム50と物理ディスク
(ディスクアレイ18)の間に位置するフィルタドライ
バとしてRAID高速化ドライバ100が設けられる。
RAID高速化ドライバ100は、ファイルシステム5
0からのライトリクエストに対して、アドレス変換を
行い、書き込み先物理アドレス(RAID上の論理パー
ティション内アドレス)を書き込み対象データストライ
プの次の空き領域とし、実際に書き込む機能、ライト
リクエストの書き込み先アドレスをAMTキャッシュ1
72に登録する機能を有する。
【0031】このRAID高速化ドライバ100は、O
Sファイルシステム50からのライトリクエストに対し
て、そのリクエストされた論理アドレスを物理アドレス
にAMTキャッシュ172を用いて変換し、(例え、タ
ーゲットアドレスが連続していない一連のライトリクエ
ストに対しても)ディスクアレイ18に形成されるデー
タストライプに転送された書き込みデータを書き込む。
このデータストライプを構成するディスク上の連続した
アドレスである連続領域は、ディスクに効率良く書き込
めるアライン、及びサイズである。このアライン、サイ
ズはディスクを直接操作するドライバやRAIDコント
ローラ16に依存して決まる。特に、書き込み対象のデ
ィスクアレイ18がRAID5で構成されている場合に
は、上記連続領域が「パリティグループ」、あるいはそ
の整数倍である。
【0032】RAID高速化ドライバ100を使用した
書き込み方式では、ホスト計算機(本実施形態ではOS
ファイルシステム50)から書き込み要求された論理ア
ドレスに従ってデータ書き込み位置を決定するのではな
く、ホスト計算機から書き込み要求された順番で書き込
みデータを順次蓄積することによって複数の書き込みデ
ータブロックから構成される大きなデータブロックを構
成し、その大きなデータブロックを一括してディスクア
レイ18の空き領域に上から順番に「まとめ書き」す
る。「まとめ書き」の単位は物理ストライプである。つ
まり、「まとめ書き」の度に1つの空き物理ストライプ
を生成し、そこに1物理ストライプ分のデータブロック
がシーケンシャルに書き込まれる。これにより、ランダ
ムなアクセスをシーケンシャルなアクセスに変換するこ
とが出来、書き込み性能を大幅に向上させることができ
る。しかしながら、本発明では、上記の「まとめ書き」
による一括書き込みに限定されず、OSファイルシステ
ム50からのライトリクエスト単位、又は複数のライト
リクエスト単位に応じて書き込み処理を実行しても良
い。
【0033】図2では、上記した「まとめ書き」による
書き込み動作が示されている。OSファイルシステム5
0から送られてくる書き込みデータのブロックデータサ
イズが2KB、1ストライプユニットのデータサイズが
64KB、1物理ストライプ(パリティグループ)分の
データサイズが256KB(=64KB×4)の場合の
例である。2KBの書き込みデータブロックは、OSに
組み込んで用いられるRAID高速化ドライバ100に
よって取得され、主メモリ13のドライバ作業領域17
のライトバッファ171に蓄積される。
【0034】基本的には、256KB分のデータブロッ
ク(2KB×128個のデータブロック)がドライバ作
業領域17のライトバッファ171に蓄積された時点
で、RAID高速化ドライバ100の制御の下、ディス
クアレイ18の1物理ストライプに対する書き込みが1
度にまとめて行われる。この場合、RAIDコントロー
ラ16は、256KB分の書き込みデータブロックのみ
からパリティを生成できるので、パリティ計算のために
旧データを読み出す等の処理が不要となり、良く知られ
たRAID5の書き込みペナルティーを減らすことがで
きる。
【0035】(第1の実施形態)次に、図3を使ってR
AID高速化ドライバ100によるディスクアレイ18
への書き込み動作について説明する。この図3は、上位
のファイルシステム50から送られてきたライトリクエ
ストReq1,Req2,Req3,Req4,‥‥をRAID高速化ドライ
バ100が処理する様子を示している。
【0036】なお、図3では、1つのディスクに対して
書き込み/参照処理をしているように示されているが、
図3のディスク180は論理的なものであり、実際には
図1又は図2に示すように複数の物理ディスク(DIS
K0〜DISK4)から構成されるRAID構成をとっ
ているものとする。そして、ディスク180全体が1つ
のパーティションを構成している様子を示している。
【0037】図3において、ディスク180のパーティ
ション内は、アドレス変換テーブル領域(以下、AMT
領域と称する)18aと、ストライプIDログ領域18b
1、論理アドレスログ領域18b2から成る管理データ領域
18bと、データ領域18cに分けて管理されている。
【0038】例えば、現在の書き込み対象の物理データ
ストライプがデータ領域18cの「ストライプ34」で
あると想定する。RAID高速化ドライバ100は、書
き込み対象データストライプ34に対して全ての領域に
書き込みデータが割り当てられた時点で、新しい空スト
ライプが次の書込み対象ストライプとして割り当てる。
以降、ライトリクエストデータのライト処理は、新たに
割り当てたストライプの領域に対して行うようになる。
【0039】RAID高速化ドライバ100は、OSフ
ァイルシステム50からのライトリクエストReq1,Req2,
Req3,Req4,‥に対して、ライトバッファ171に記憶し
たデータをディスク180のデータ領域18cのストラ
イプ34に書き込むと共に、ATMキャッシュ172に
ライトした実際の物理アドレスを登録する。また、OS
ファイルシステム50からのリード要求に対しては、A
MTキャッシュ172を参照して、指定された論理アド
レスに対する物理アドレスを求め、ディスク180から
その物理アドレスをリードした結果のデータをOSファ
イルシステム50に返す。
【0040】データ領域18cの各データストライプの
最後の1ブロックには「TAG領域」TAGが設けられ
る。各ストライプへの書き込みに際して、このTAG領
域に、そのデータストライプに関して、そのデータス
トライプを書き込んだ時刻(あるいは書込みに関するシ
ーケンス番号としてのタイムスタンプTS)、有効デ
ータブロックに関してデータストライプの各ブロックの
論理アドレスが記録保存されている。
【0041】また、データストライプへの書き込みに際
し、管理データ領域18bの論理アドレスログ領域18b2
には、現在書き込み中のデータストライプに書き込んだ
データブロックの「論理アドレス」がデータブロック毎
に記録される。
【0042】また、管理データ領域18bのストライプ
IDログ領域18b1には、書き込み対象データストライプ
として選んだストライプIDが時系列順に記録される。
この例では、ストライプID「34」の書き込みの前
に、ストライプID「31」の書き込みが行なわれたこ
とが分かる。
【0043】図3の上部には、主メモリ13上に確保し
たドライバ作業領域17が示されている。この図3で
は、この領域17にライトバッファ171、およびAM
Tキャッシュ172の2つの領域が確保されていること
を示している。AMTキャッシュ172は、AMT領域
18aに記憶されるアドレス変換テーブルの一部が記憶
されており、システム稼働中はこのAMTキャッシュ1
72がアクセスされる。AMTキャッシュ172に登録
されていない論理アドレスによるアクセス要求があった
場合、AMT領域18aのアドレス変換テーブルから該
当する変換テーブルの内容が読み出され、AMTキャッ
シュ172に登録される。AMTキャッシュの内容が更
新された場合、あるいはシステムがシャットダウンされ
る場合には、AMTキャッシュ172の内容はAMT領
域18aのアドレス変換テーブルに書き戻される。
【0044】ライトバッファ171は、OSファイルシ
ステム50からの書き込みリクエストについて、そのデ
ータを最初にバッファリングするための領域である。1
つのライトバッファは1データストライプの大きさであ
り、図3では図面スペースの都合上1つのライトバッフ
ァしか記載していないが、複数のライトバッファが用意
される。第1の実施形態の発明では、このライトバッフ
ァ171は必ずしも必要なものではない。例えば、1デ
ータブロックまたは複数データブロックを記憶するバッ
ファメモリであっても構わない。
【0045】AMTキャッシュ172は、ディスク上の
AMT領域18aのアドレス変換テーブルをキャッシュ
して記憶した領域である。RAID高速化ドライバ10
0は、AMTキャッシュ172を参照、または変更する
場合には、決められた固定サイズ(たとえば4KB)の
単位でAMT領域18aからATMキャッシュ172に
読み込んで、主メモリ13上で参照、または変更を行
う。変更を行った場合には、そのキャッシュされたAM
Tキャッシュ172は元のAMT領域18aに書き戻さ
れる。
【0046】次に、RAID高速化ドライバ100によ
るディスク180のパーティションに対するデータ書き
込み処理の動作を図4に示すフローチャートを用いて説
明する。なお、以下の説明では、書き込み対象データス
トライプを「ストライプ34」であるとして説明する。
【0047】図4は、ライト処理のメインルーチンの処
理を示す。OSファイルシステム50からライトリクエ
ストReqi(i=1,2,3,4‥)が入力され、そのラ
イトリクエストReqiは、論理アドレスaddriから始まる
2KB単位のライトブロックデータB0〜Bnからなる
ものとする(ステップS401)。
【0048】このライトリクエストReqiに対して、空き
領域を有するストライプが、書込み対象ストライプとし
て割り当てられているか否かがチェックされ(ステップ
S402)、割り当てられていなければディスク上の空
ストライプを1つ選択する(ステップS403)。そし
て、そのストライプID(この例では、ストライプ3
4)をIDkとして、データ管理領域18bのストライ
プIDログ領域18b1に次のエントリとして書き込む(ス
テップS404)。ストライプIDログ領域18b1には、
書き込み対象に選ばれたストライプのIDが時系列順に
記録されていく。
【0049】次に、RAID高速化ドライバ100は、
管理データ領域18bの論理アドレスログ領域18b2を割
り当てる(ステップS405)。論理アドレスログ領域
18b2は、ライトリクエストReqiのデータをデータストラ
イプ34に書き込んだ時に、そのデータの論理アドレス
を憶えておくための領域である。この論理アドレスログ
領域18b2の先頭には、書き込み対象のデータストライプ
IDが記録され、以降、ストライプを構成する物理ブロ
ックがどの論理アドレスのデータを保持しているかが記
録される。なお、ステップS402で、書き込み対象デ
ータストライプ34が既に割り当てられている場合に
は、ステップS403,S404,S405の処理が省
略されて、ステップS406への進む。
【0050】次に、RAID高速化ドライバ100は、
ライトリクエストReqiによるライトデータを2KBのブ
ロック単位で書込み対象データストライプ34の空き領
域に割り当てる。これは、データストライプ34の空き
領域が無くなるまで、あるいは、ライトリクエストReqi
の全てのブロックを割り当てるまで行われる(ステップ
S406)。
【0051】次に、RAID高速化ドライバ100は、
データストライプ34に対するデータ書き込みのI/O
要求を発行する(ステップS407)。この際、書き込
みできるデータはライトバッファ171上で1つに纏め
られ、I/O要求が発行される。例えば、図3のライト
リクエストReq1は、2KBのブロックデータを2個書き
込むものであるが、これを1つのライトリクエストとし
てI/O要求を発行する。これにより、ディスクの特性
から効率の良い書き込みが行われる。更に、ライトデー
タに関する論理アドレス情報を、ステップS405で割
り当てられた論理アドレスログ領域18b2に書き込むため
のI/O要求が発行される。この例では、論理アドレス
ログ領域18b2の先頭にストライプID=34が書き込ま
れ、それ以降に書き込まれたデータの論理アドレスVと
して、ライトリクエストReq1の2ブロックデータの書き
込みに対応してV=100,102が、同様にReq2の3
ブロックデータに対応してV=76,77,78が、Re
q3の1ブロックデータに対応してV=60が、Req4の4
ブロックデータに対応してV=79,80,81,82
が書き込まれる(ステップS408)。なお、上記した
ステップS407、408で発行したI/O要求は非同
期に処理される。
【0052】次に、書き込み対象データストライプ34
に空き領域が有るか否かが調べられる(ステップS40
9)。空き領域が無い場合、つまり書き込み対象データ
ストライプ34の全容量分の書き込みデータが揃った場
合には、TAG情報(対象データストライプ34に書き
込んだブロックの論理ブロック番号テーブル)の書き込
みI/O要求を発行する(ステップS410)。TAG
情報は原則として、ディスク180上のどこに配置して
も良いが、この実施例ではデータストライプ34の1つ
のブロックとして存在している。ステップS410のT
AG情報の書き込み処理は非同期に行われる。そして、
その書き込み対象データストライプ34に書き込んだデ
ータブロックのTAG情報をAMTキャッシュ172に
登録してAMTキャッシュを更新する(ステップS41
1)。この処理についてもAMTキャッシュ172の操
作にI/O要求が伴う場合があり、非同期に処理が行わ
れる。一方、ステップS409において、書き込み対象
データストライプ34に空き領域が有る場合には、上記
ステップS410、S411の処理をせず、ステップS
412に進む。
【0053】最後に、RAID高速化ドライバ100
は、ライトリクエストReqiに対して全てのデータブロッ
クの書き込みI/O要求が発行されたか否かを判断する
(ステップS412)。まだライトすべきデータが残っ
ている場合には、ステップS402に戻り、新たなスト
ライプを割り当てて、同様にライトリクエストを書いて
いく。
【0054】上記ステップS412で、ライトリクエス
トReqiに対する全てのデータブロックの書き込みI/O
要求が発行していた場合には、ディスクへの書き込み処
理が終了する。
【0055】図5は、上記ステップS407、S408
で発行したI/O要求の完了処理(通常は完了割り込み
の処理である)の動作を示すフローチャートである。I
/O完了処理1は、ステップS407に対応した完了処
理であり、また、I/O完了処理2はステップS408
に対応した完了処理である。
【0056】RAID高速化ドライバ100は、データ
書き込み完了(I/O完了処理1)では、完了したデー
タ書き込みに対応する論理アドレスログ番号の書き込み
処理が完了しているか否かをチェックし(ステップS5
01)、一方、論理アドレスログ書き込み完了(I/O
完了処理2)では、完了した論理アドレスログの書き込
みに対応するデータ書き込み処理が完了したか否かをチ
ェックする(ステップS510)。それらの書き込みが
完了していれば、元々のライトリクエストReqiに関し
て、全てのデータ書き込みと、論理アドレスログの書き
込みとが完了しているか否かをチェックする(ステップ
S502)。それらが完了していれば、OSファイルシ
ステム50にライトリクエストReqiに対するディスクへ
の書き込みが全て完了したことを通知する(ステップS
503)。即ち、全ての書き込みブロックがデータスト
ライプ34に書き込まれ、かつ、それらのブロックの論
理アドレス情報が論理アドレスログ領域18b2に書き込ま
れた時点で、RAID高速化ドライブ100はライトリ
クエストReqiの完了通知をリクエスト発行元のOSファ
イルシステム50に通知する。
【0057】図6は、図4のステップS410におけ
る、TAG書き込みI/O要求の完了実行処理の動作を
示すフローチャートである。TAG書き込みI/O要求
の完了実行処理(I/O完了処理3)では、TAG書き
込みI/O要求処理が終ったストライプ34に割り当て
た論理アドレスログ領域を開放して(ステップS60
0)、TAG情報の書き込みを終了する。
【0058】上記した第1の実施形態によれば、本来、
ランダムライトリクエストに関して、ディスク上には物
理的に離れた領域に書き込みが起こり、ディスクのシー
クや回転待ちによる性能低下があった。本発明によれ
ば、不揮発性メモリの代わりに、ディスク上に設けられ
たAMT領域18a(主メモリ上のAMTキャッシュ1
72を含む)、管理データ領域18b、データ領域18
cを用いることにより、ランダムライトが物理的に連続
した領域への書き込みとして実行することが出来る。し
たがって、シーク/回転待ちが少なくなり、結果として
高速な書き込み処理が実現される。RAID5のディス
クに対しては、パリティグループ単位での書き込みにな
るようにストライプ境界とサイズを合わせれば、ストラ
イプへの書き込みが全て終った段階で、RAIDコント
ローラのキャッシュメモリ上でパリティグループが揃う
ため、パリティ計算のためのディスクリード処理が不要
となり、所謂「RAID5のライトペナルティ」を無く
すことが可能になり、結果として高速な書込み処理が実
現される。
【0059】また、一連のデータ書き込み処理が完了し
ない状態で、不慮のシステムダウンによる処理停止が起
こった場合、論理アドレスログ領域18b2に記録した論理
アドレスログ情報を用いて、システムリブート後のデー
タ回復処理が実行できる。なお、論理アドレスログ情報
は、書き込み対象データストライプ34に書き込まれる
全ての書き込みデータブロックの論理アドレスと物理ア
ドレスの関係が、データストライプ34のTAG情報と
して登録された時点で不要になる。
【0060】(第2の実施形態)次に、本発明の第2の
実施形態について説明する。図4に示した第1の実施形
態では、論理アドレスログ領域18b2の割り当ては、ステ
ップS403〜S405で空ストライプを割り当てる際
に行っている。論理アドレスログ領域18b2は、図3に示
すように固定的に1つ、あるいは複数用意されている。
この第2の実施形態では、複数の論理アドレスログ領域
18b3を用いて書き込み処理するものである。
【0061】先ず、図4のステップS405で行なった
新しい論理アドレスログ領域を割り当てに際して、この
実施形態では、複数の論理アドレスログ領域(18b2-1〜
18b2-m)のうち、一番最近使用されて開放された論理ア
ドレスログ領域を選ぶようにする。
【0062】これを実現するために、使用した論理アド
レスログ領域18b2をLRUで管理する仕組みを用意す
る。また、論理アドレスログ領域(18b2-1〜18b2-m)を
示すID番号に関するスタック状のフリーリソース管理
手段(図示せず)を用意する。なお、システム初期化時
には、フリーリソース管理手段に全ての論理アドレスロ
グ領域で示されるストライプIDが登録される。
【0063】図4のステップS410の処理によってT
AG書き込みが完了した時点で、RAID高速化ドライ
バ100はそのストライプに割り当てていた論理アドレ
スログ領域を開放する(図6のステップS600)。こ
こで、開放された論理アドレスログ領域(仮に18b2-1と
する)を示すID番号は、フリーリソース管理手段のス
タックに上から積まれる。図4のステップS405にお
いて、論理アドレスログ領域を新しく必要とする場合に
は、そのスタックの一番上に蓄積されたID番号が読み
出され、そのアドレスに対応する論理アドレスログ領域
18b2-1が確保される。即ち、一番最近開放された論理ア
ドレスログ領域18b2-1が確保されることになる。このよ
うに管理することにより、常に「最も最近書き込み処理
が行われ、そして開放された論理アドレスログ領域」が
使用できるようになる。
【0064】一般的に、バッテリバックアップされたキ
ャッシュを搭載したRAIDコントローラでは、繰り返
し同じ領域に書込みを行うと、キャッシュに長い時間保
持されるようになるために、引き続き発生するそれらの
領域に対するライト処理は高速になる。この第2の実施
形態では、この特性を利用することにより、上記のよう
に論理アドレスログ領域18b2を管理して、なるべく同じ
論理アドレスログ領域18b2-1を使用することにより、書
き込みのオーバヘッドを少なくすることが可能となる。
【0065】この第2の実施形態の効果について更に解
説する。データ書き込みはパリティグループとしてのス
トライプ単位の連続領域への書き込みとなり効率が良い
が、論理アドレスログ情報に関しては、パリティグルー
プ単位での書き込みになるとは限らず、書き込み効率は
悪い。ライトリクエストに対する完了通知は、「データ
の書き込み」と「論理アドレスログ情報の書き込み」の
両方の完了をもって行われる。このため、論理アドレス
ログ情報の書き込みが遅くなると「書き込み処理全体」
が遅くなってしまう。
【0066】一方、ディスクの読み書きデータのアドレ
スを管理するキャッシュメモリを有し、ライトバックキ
ャッシュ機能を持つRAIDコントローラの場合は、同
じアドレスに対するライトリクエストが続けて行われる
と、2回目以降のライトが早く完了することが多い。こ
れは、ライトバックキャッシュに直前に書いたデータが
記憶されており、同じアドレスへのデータは、キャッシ
ュ上のデータの変更のみ完了するからである。したがっ
て、実際のディスクへの書き込みを待たない。そのキャ
ッシュ領域は、RAIDコントローラのキャッシュ制御
のポリシーにより、いつかはディスクに書き込まれ開放
されるが、同じアドレスへのライトが短い間隔で定期的
に続けば、恒常的にキャッシュ領域が確保されつづけ、
比較的早くアクセスすることが可能になる。
【0067】第2の実施形態では、この特性を活かして
論理アドレスログの書き込み処理を高速化する。例え
ば、(1)1ストライプのデータ書き込み分に相当する
データの論理アドレスログ情報をセーブするための領域
(論理アドレスログ領域)を複数設ける。(2)書き込
み対象データストライプを新規に割り当てる場合には、
現在使っていないもので一番最近使った「論理アドレス
ログ領域」を1つ選び、ストライプにデータを書き込む
際に、論理アドレスログ情報を書き込む領域として使用
する。(3)対象データストライプに全てのデータを書
き込んだ後には、それら書き込んだブロックを対象デー
タストライプのTAG情報に登録する。全てのブロック
に付いて登録が完了した時点で使用していた「論理アド
レスログ領域」を解放する。
【0068】上記のように「論理アドレスログ領域」を
LRUで管理することにより、論理アドレスログ情報を
書き込む領域が、ディスク上の限定された固定領域(領
域が複数の場合も含む)になり、論理アドレス領域への
書込みが高速になる結果、書込み処理の完了タイミング
も早くなる。
【0069】(第3の実施形態)次に、本発明の第3の
実施形態について説明する。図7は、第3の実施形態の
動作を示すフローチャートである。この第3の実施形態
では、複数のライトリクエストを1つに纏めて書き込み
処理するものである。RAID高速化ドライバ100が
処理している未完了のライトリクエスト数を変数(Outs
tanding Req Count)で管理することにより実現する。O
utstanding Req Countは初め「0」で初期化されている
ものとする。
【0070】図7において、OSファイルシステム50
からのライトリクエストReqiを受信すると(ステップS
701)、RAID高速化ドライバ100はそのライト
リクエストReqiを変数としてOutstanding Req Countに
登録する(ステップS702)。つまり、変数Outstand
ing Req Count(カウンタ値)の内容が+1される。そ
して、Outstanding Req Countの値がある定数「A」よ
り多いか否かがチェックされ(ステップS703)、定
数「A」より少ない場合には、そのライトリクエストRe
qiはステップS704に進み、図4で示したライトリク
エストReqiのI/O要求の発行処理(図4のステップS
407)が実行される。
【0071】一方、Outstanding Req Countがある定数
「A」より大きい場合には、そのライトリクエストReqi
は一旦保留(ペンディング)され、ペンディングリクエ
ストキューPListに入れられる(ステップS705)。
ペンディングリクエストキューPListに入れられたライ
トリクエストReqi(複数登録可能)は、以下の条件が満
たされた時に一まとめにされて書き込み処理が行われ
る。 (ペンディングされたライトリクエストのI/O要求発
行条件) a)ペンディングしているリクエストReqiの数Pcount
が定数「B」以上になった(ステップS707のチェッ
ク)。 b)ペンディングしているリクエストReqiのデータサイ
ズPsizeの合計が定数「C」以上になった(ステップS
708のチェック)。 c)ペンディングしているリクエストReqiのデータサイ
ズPsizeの合計が現在の書込み対象データストライプの
残りの空き領域を越えた(ステップS709のチェッ
ク)。 d)タイマ関数TimerRoutine()が指定時間を経過して起
動された(ステップS710のチェック)。
【0072】ここでタイマ関数TimerRoutine()とは、時
間と関数を指定すると、指定した時間が経過した時点で
指定した関数を実行してくれるOS(オペレーティング
システム)のサービスで登録した関数のことである。こ
の場合、例えば「30ms時間後に指定する関数TimerR
outine()を実行せよ」というようにOSに登録する。ス
テップS710でセットするタイマ関数TimerRoutine()
の処理は図8に示している。
【0073】上記の条件a)〜d)を判定するために、
図7では以下の変数で管理している。 ペンディングリクエストの数 ・・・ Pcount ペンディングリクエストのデータサイズの合計 ・・・ Psize
【0074】上記した条件a)〜 d)のいずれかが満たさ
れた場合には(ステップS707のYes、又はS70
8のYes、又はS709のYes、又はS710)、
変数Pcount、Psizeを0クリアする(ステップS71
1、S712、図8のステップS801、S802)。
さらにタイマ関数Timer Routine()がセットされている
か否かがチェックされ(ステップS713)、タイマ関
数Timer Routine()がセットされていればそれをリセッ
トする(ステップS714)。そして、ペンディングリ
ストPListのライトリクエストを1つのライトリクエス
トWReq として、図4のステップS407の手順に従っ
てライト処理を行なう(ステップS715、図8のステ
ップS803)。
【0075】なお、ここで、ペンディングリストPList
につながっているリクエストをまとめた WReq の書き
込み対象データストライプ(例えばストライプ34)へ
のデータ書き込みは、それを構成する複数のライトリク
エスト毎にはライトせず、一まとめにして1つのライト
リクエストで書き込む。また、論理アドレスログ領域18
b2への書き込みに関しても、WReq全体に関して1回の
書き込みとする。これらの完了時処理を図9に示す。
【0076】図9において、RAID高速化ドライバ1
00はライトリクエストReqiに関して、データ書き込み
完了(I/O完了処理1)では論理アドレスログ番号の
書き込み処理が完了しているか否かをチェックし(ステ
ップS901)、一方、論理アドレスログ書き込み完了
(I/O完了処理2)ではデータ書き込み処理が完了し
たか否かをチェックする(ステップS910)。それら
の書き込みが完了していれば、元々のライトリクエスト
Reqiに関して全てのデータ書き込みと論理アドレスログ
の書き込みが完了しているものとしてOSファイルシス
テム50にI/O完了を通知する(ステップS90
2)。そして、Outstanding Req Countの値から完了し
たライトリクエストReqiを引いた値をOutstanding Req
Countの値として更新記録して、処理を終了する(ステ
ップS903)。
【0077】この第3の実施形態の具体的な動作の例に
ついて、図10〜図11を用いて説明する。先ず、以下
の動作例では、RAID高速化ドライバ100にOSフ
ァイルシステム50からライトリクエストReqiがマルチ
ストリームで並行して多数到来してきている状況とす
る。図10(a)は、この内4つのライトリクエストRe
q1〜Req4が到来したところを示している。なお、この時
点で、RAID高速化ドライバ100は既に複数のライ
トリクエストを処理中であり、これらリクエスト到着時
には既にOutstanding Req Count≧Aの条件を満たして
いるものとする。即ち、図7のステップS703がYe
sの条件で進む。
【0078】図10(a)で、各ライトリクエストReq1
〜Req4について、ライトサイズ、論理ブロック番号を示
した。なお、ここではRAID高速化ドライバ100の
データ管理単位は2KBであるとし、OSファイルシス
テム50からの書き込みアドレスは、書き込み先の論理
ブロック番号で示している。例えば、論理ブロック番号
100とは、論理アドレス(OSファイルシステムが指
定した書き込み先アドレス)で100×2KB=200
KBのアドレスを意味する。また、ライトリクエストRe
q1は書き込み先の論理アドレス番号100に4KBのデ
ータを書き込むものであるのに対し、RAID高速化ド
ライバ100のデータ管理単位は2KBであることか
ら、このリクエストReq1は論理アドレス番号Vとして、
100、101が割り当てられることを理解する。同様
に、リクエストReq2では6KBであるから、論理アドレ
ス番号V=76、77、78が割り当てられ、リクエス
トReq3は2KBであるから論理アドレス番号V=60が
割り当てられ、リクエストReq4は8KBであるから、論
理アドレス番号V=79、80、81、82が割り当て
られることを理解する。ここで、定数B=4とし、ステ
ップS707のPcount≧Bの条件が成立した場合を考
える。
【0079】初め、ペンディングリクエストPListにラ
イトリクエストが1つも無かった状態の場合に、ライト
リクエストReq1〜Req4がこの順に到来したとする。これ
らのリクエストは、先ずペンディングリクエストPList
に順次格納され、ライトリクエストReq4が来た時点で図
10(b)の状態に格納される。
【0080】この時点で、図7のステップS707の条
件が成立し、ステップS711に制御が移り、ステップ
S715で、ペンディングリストPLisの4つのリクエ
ストReq1〜Req4(全20KB)が1つのライトリクエス
トWReqとして、図4で示した手順によりディスク18
0にライト処理される。この時、ライトリクエストWRe
qによる20KBのデータが書き込み対象データストラ
イプ(例えばストライプ34)の残りの空き領域に入り
きらない場合には、その空き領域に入るサイズ(例え
ば、10KB)で切り、その単位で処理する。残りの1
0KBは、別な空き領域のストライプに、別なもう1つ
のライトリクエストWReqに纏めてI/O要求を発行す
る。
【0081】この時のディスク180へのライト処理の
様子を図11に示す。ファイルシステムからのライトリ
クエストReq1〜Req4は、本来4つのライトリクエストで
あるが、書き込み先アドレスは連続した1つのデータス
トライプ34であるので、まとめて1つのライトリクエ
ストWReqによって書き込み処理が行われる。同時に、
論理アドレスログ情報も、一括ライトを発行したデータ
に対応した論理アドレスログ領域18b2へ論理アドレス情
報V=100,101,76,77,・・・,82が1
つのライトI/O要求によって書き込まれる。
【0082】この結果、書き込み対象データストライプ
34へのデータライトに4つのI/O要求が、また論理
アドレスログ領域18b2への論理アドレスログ情報の書込
みに4つのI/O要求が必要だったところが、ペンディ
ングリストPListに格納して書き込むことにより、2つ
のライトI/O要求で書き込み処理を行なうことが可能
となり、I/O要求の発行を少なくして、まとめ書きに
よる高速化が達成される。なお、上記した例では定数B
=4とし、Pcount≧Bの条件が成立した場合を考えた
が、上述した他の条件b),c),d)の各条件が成立
した場合(ステップS708、S709、S710)
も、全く同様である。
【0083】この第3の実施形態によれば、ある時点で
RAID高速化ドライバが処理中でまだ完了を通知して
いない、上位から送られてきたリクエスト(具体的に
は、ディスク制御システムドライバに入ったリクエスト
で、まだ完了通知を行っていないリクエスト)の個数を
カウンタで管理することにより、任意時点での「ライト
リクエストの同時I/O発行数」を得ることができる。
この「ライトリクエストの同時I/O発行数」が所定値
Aよりも大きな値の時には、以降のライトリクエストに
関して、データ及び論理アドレスログ情報の書き込みを
一定時間待つ。そして、一定以上の個数のライトリク
エストが新たに到着した。到着したライトリクエスト
のライトサイズの合計が、一定サイズを越えた。到着
したライトリクエストのライトサイズの合計が、現在書
込み対象になっているストライプの残り空領域のサイズ
を越えた。一定時間が経過した。の場合に、それまで
ペンディングしていたライトリクエストのデータを1ま
とめにして対象のストライプに書き込む。同時に書き込
むデータブロック(複数)の論理アドレスログ情報をま
とめて1回の書込みとして「論理アドレスログ領域」に
書き込む。
【0084】この結果、複数のライトリクエストが1度
のデータライト処理と1度の論理アドレスログ情報の書
き込み処理となる。各データリクエストの開始は遅れる
が、書き込み処理回数が減り、書き込みサイズが大きく
なることでディスクへのトータルとして書込みオーバヘ
ッドが小さくなり、結果的に書き込み処理のスループッ
ト向上を実現できる。
【0085】(第4の実施形態)次に、本発明の第4の
実施形態について説明する。この第4の実施形態では、
論理アドレスログ領域18b2に論理アドレスログ情報のみ
ならず、書き込みデータサイズおよびチェックサムを併
せて記録するものである。図12は、ライトリクエスト
Req1のライトデータaに対して、書き込み対象データス
トライプ34に対応する論理アドレスログ領域18b2に、 論理アドレス V=100、101 ライトサイズ Size=4KB チェックサム ChkSum=0x16f92aab を書き込む様子を示している。このチェックサムChk
Sumは、ライトデータaを4バイト単位で加算した結
果の値である。このように、ライトデータサイズおよび
そのチェックサムを論理アドレスログ領域に記録するこ
とにより、障害回復を容易にする。
【0086】即ち、ディスク18のデータ領域18cへ
のデータ書き込み中にシステムの障害が発生した場合に
は、書き込み処理途中のストライプに関して、その論理
アドレスログ領域18b2に書き込まれているチェックサム
値とデータ領域18cのデータから求めたチェックサム
値とが一致するか否かを確認チェックする。一致した場
合には、データ書き込みが完了していたと判断し、デー
タを有効とみなし残りの処理(アドレス変換テーブルへ
の登録等)を行い、書き込み処理を完了させる。一致し
なかった場合には、書き込みは完了しなかったとみな
し、そのデータを捨てる。
【0087】(第5の実施形態)次に、第5の実施形態
について説明する。第5の実施形態では、ライトデータ
aを書き込み対象データストライプ34に書き込むだけ
でなく、論理アドレスログ領域18b2にも論理アドレスロ
グ情報と一緒に書き込むものである。
【0088】図13は、この第5の実施形態による論理
アドレスログ領域18b2への書き込みデータの構成を示し
ている。即ち、論理アドレスログ領域18b2には、 論理アドレス V=100、101 ライトサイズ Size=4KB チェックサム ChkSum=0x16f92aab ライトデータa(4KB) が書き込まれる。実際には上記した〜は1つのライ
トI/O要求で処理するものであり、これによりオーバ
ヘッドを減らすことができる。
【0089】図14は、この第5の実施形態によるRA
ID高速化ドライバ100の動作手順を示すフローチャ
ートである。OSファイルシステム50からライトリク
エストReqi(i=1,2,3,4‥)が入力され、その
ライトリクエストReqiは、論理アドレスaddriから始ま
る2KB単位のライトブロックデータB0〜Bnからな
るものとする(ステップS1401)。
【0090】このライトリクエストReqiに対して、空き
領域を有するデータストライプが、書込み対象ストライ
プとして割り当てられているか否かがチェックされ(ス
テップS1402)、割り当てられていなければディス
ク上の空ストライプを1つ選択する(ステップS140
3)。そして、データストライプと同じサイズのバッフ
ァWBを主メモリ13上に確保する(ステップS140
4)。バッファWBはライトバッファ171に確保され
る。割り当てられたストライプIDをIDkとして、デ
ータ管理領域18bのストライプIDログ領域18b1に次
のエントリとして書き込む(ステップS1405)。ス
トライプIDログ領域18b1には、書き込み対象に選ばれ
たストライプのIDが時系列順に記録(31,34,
…)されていく。
【0091】次に、管理データ領域18bの論理アドレ
スログ領域18b2を割り当てる(ステップS1406)。
書き込み対象データストライプ(例えば、ストライプ3
4)中の次の空き領域に、まだライト領域を割り当てて
いないデータストライプBjのための領域を可能な限り
確保する(ステップS1407)。
【0092】RAID高速化ドライバ100は、このス
テップS1407で確保したサイズのデータを主メモリ
13に用意したバッファWBにコピーする(ステップS
1408)。バッファWBは、ストライプ領域に等しい
大きさを持った主メモリ13上に確保したライトバッフ
ァである。
【0093】次に、ステップS1409では図13のよ
うに、論理アドレス情報とライトデータを1つのラ
イトI/O要求によって論理アドレスログ領域18b2に書
き込む。そして、データストライプに空き領域がなく、
ストライプに対する書込みデータがバッファWBで全て
揃った場合には(ステップS1410)、バッファWB
の内容を書き込み対象データストライプ34に一括ライ
トするI/O要求が発行され、ディスク180の書き込
み対象データストライプ34に書き込まれる(ステップ
S1411)。また、その書き込み対象データストライ
プ34に書き込んだTAG情報をAMTキャッシュ17
2に登録してAMTキャッシュ172を更新する(ステ
ップS1412)。一方、ステップS1410におい
て、書き込み対象データストライプに空き領域がない場
合には、上記ステップS1411、S1412の処理を
せず、ステップS1413に進む。ステップS1413
では、ライトリクエストReqiに対して全てのデータブロ
ックの書き込みI/O要求が発行されたか否かが判断さ
れる。まだライトすべきデータが残っている場合には、
ステップS1402に戻り、新たなストライプを割り当
てて、同様にライトリクエストを書いていく。
【0094】なお、この実施例では、書き込み対象デー
タストライプ34内の1データブロックをTAG領域と
している。従って、ステップS1411において、予め
TAGデータをバッファWB上にセットした状態で、バ
ッファWBの書き込みが終了すれば、TAGデータの書
き込みも同時に終了する。
【0095】図15は、図14のステップS1409、
およびステップS1411のI/O完了処理の動作を示
すフローチャートである。図15(a)はステップS1
411の書き込み対象データストライプにおける完了処
理(I/O完了処理1)であり、書き込みが完了したラ
イトリクエストReqiの「完了」をOSファイルシステム
50に通知する(ステップS1501)。一方、図15
(b)はステップS1409の論理アドレスログ領域18
b2への書き込み完了処理(I/O完了処理2)であり、
論理アドレスログ領域18b2への書き込みが完了すると、
バッファWBを開放して(ステップS1510)、更に
論理アドレスログ領域18b2を開放して終了する(ステッ
プS1511)。
【0096】この第5の実施形態と、上述の第1の実施
形態を比較すると、第5の実施形態では個々のライトリ
クエストReqiに対して、論理アドレスログ領域18b2に論
理アドレスログ情報とライトデータaの書き込みが完了
すれば、その時点でOSファイルシステム50に対して
完了通知することができる。つまり、OSファイルシス
テムに対するレスポンスが早くなる。これに対し、第1
の実施形態では、論理アドレスログ領域18b2への書き込
みと、書き込み対象データストライプ34への書き込み
の、2つのライトI/O要求完了まで完了通知が待たさ
れる。
【0097】一方で個々のライトデータに付いて考える
と、第5の実施形態では、結果的には論理アドレスログ
領域18b2と、データストライプ34へ、2つの書き込み
となる。論理アドレスログ領域18b2は、ライトデータa
を2重に書くというのは、実施形態2を用いて同じ領域
への書き込みになるよう、キャッシュを有効利用したと
しても、RAIDコントローラ16の特性によっては大
きな負荷となる可能性がある。このため、第1の実施形
態の方式にするか、第5の実施形態の方式にするかは、
使用しているRAIDコントローラ16の特性によって
結果的に性能が良い方式を選ぶようにする。
【0098】(第6の実施形態)RAID高速化ドライ
バ100が、書き込み処理中にシステムに障害が発生し
た場合には、データや論理アドレスログ情報等の書き込
みが完了しない状態でシステムが立ち上がってくる場合
がある。このようなときに、データ書き込みが完了して
いたものについては、書き込み対象データストライプに
対応するTAG領域とAMTキャッシュ172にそのブ
ロックを登録し直すことにより、以降、そのデータへの
アクセスが可能になる。ここで、データがディスク18
に正しく書き込めたか否かの判断は、論理アドレスログ
情報としてセーブしたデータのチェックサム情報と、書
き込み先のデータの領域から再計算したチェックサムが
一致することが検出されれば、「正しいデータである」
と判断出来る。その場合、論理アドレスログ領域18b2に
セーブした(データのチェックサムの値を含む)値が、
「本当に正しい値であるか」を保証する必要が有る。こ
のため、例えば論理アドレスログ領域18b2の各エントリ
毎に、 (x)エントリ書き込み時に、特定の文字列(signatur
e)をエントリの領域の最初と最後に入れておき、読み出
し時にチェックする。 (y)エントリ全体のチェックサムを計算して記録す
る。 (z)ターゲットのストライプIDを記録して、論理ス
トライプログ領域18b2の先頭のブロックに記録されるス
トライプIDとの一致を確認する。 等して、各エントリのデータ整合性を確認すれば良い。
【0099】上記した処理を、図16のフローチャート
に示す。なお、書き込み方式は第1の実施形態の方式で
あることを前提として説明する。
【0100】ステップS1601では、論理アドレスロ
グ領域18b2を参照して使用中のものが有るか確認する。
論理アドレスログ領域18b2が使用中か否かの判断は、例
えば図17に示すように、予め、論理アドレスログ領域
18b2の先頭(ヘッダ部)に、使用中を示すフラグ(Vali
d)を設け、論理アドレスログ領域18b2が使用中の間
は、このフラグをセット(Valid=”1”)し、論理ア
ドレスログ領域18b2を解放する時にリセット(Valid
=”0”)すれば良い。図17の例では、論理アドレス
ログ領域18b2が4つある例を示しており、この論理アド
レスログ領域18b2の中では、使用中フラグ(Valid=”
1”)を示している、論理アドレスログLA1、LA2
が使用中であると判断できる。これに従って、使用中リ
ストSにはLA1、LA2として記録される。
【0101】次に、ステップS1602では、上記のリ
ストSをヘッダ部のタイムスタンプTSの値によりソー
トする。このソートにより、結果的に時系列順にソート
される。図17の例では、論理アドレスログLA2のタ
イムスタンプTS=11679が論理アドレスログLA
1のタイムスタンプTS=11680より小さい(即
ち、古い)ので、ステップS1602におけるソート結
果のリストSは、LA2、 LA1の順となる。
【0102】次に、ステップS1603にて使用中の論
理アドレスログ領域18b2(要素)があることを判断し、
ステップS1604で、リストSから一番古いタイムス
タンプTSを持つ要素を選択(最初に論理アドレスログ
LA2を選択)する。ステップS1605では、TAG
イメージ用に確保した主メモリ13の領域(ライトバッ
ファ171に確保される)を初期化し、「対象データス
トライプの全ブロックが無効である」状態にする。そし
て、ステップS1606では、変数k=0に設定する。
ステップS1607以降は、論理アドレスログLA2内
の各有効なエントリに対してデータのチェックサム値を
読み出して、実際にストライプに書き込んであるデータ
のチェックサムと一致するか否かを確認する。有効なエ
ントリの判断は、上述した(x)〜(z)のようにすれ
ば良い。
【0103】図17の論理アドレスログLA2の例で
は、エントリE0、E1、E2、・・が有効なエントリ
であると想定している。エントリE0に注目すると、論
理アドレスログの先頭から2つの物理ブロックに、論理
アドレスV=463,464と、それぞれのデータブロ
ックのチェックサムCS(ChkSum0)=CS0,CS1
が登録されている。そこでステップS1608では、実
際にデータストライプ34(論理アドレスログLA2に
対応するデータストライプ)の1番目、2番目のデータ
ブロックを読み出して、チェックサムChkSum1=CS
0’,CS1’を求める。
【0104】ステップS1609では、チェックサムCh
kSum0とChkSum1(CS0とCS0’、およびCS1と
CS2’)を比較して等しいか否かを判断する。その比
較結果が一致するブロックについては正しいデータであ
ると判断し、ステップS1610でデータストライプ3
4のTAG領域にその論理ブロック番号を登録する。図
18は、このようにして、エントリE0、E1までの5
データブロックを処理した時点のTAG領域の状態が示
されている。なお、ここではデータストライプ34の先
頭ブロックの物理ブロック番号が2000であると仮定
している。そして、ステップS1611で、変数k=k
+1とし、更にステップS1612にてk≦N(Nはデ
ータストライプを構成するデータブロック数)の比較を
行なう。
【0105】論理アドレスログLA2の全てのエントリ
に付いて、ステップS1607〜S1612の処理を終
えたら、TAG情報が完成する。そして、ステップS1
613およびS1614にて、TAG情報を本来のアド
レスに書き込み(ストライプ34の場合、一番最後の物
理ブロック)、同じ内容をAMTキャッシュ172に登
録してAMTキャッシュ172を更新する。最後にS1
615でLA2の使用中フラグをリセット(valid=”
0”)して、論理アドレスログLA2の回復処理は終了
する。同様の処理を論理アドレスログLA1について行
えば、障害発生時に書き込み途中であった論理アドレス
ログLA1、LA2の書き込みを終了させることができ
る。
【0106】なお、図18のTAG領域には有効なデー
タに関しては、その論理アドレス値、無効なアドレスに
関しては無効である旨を示す論理アドレス値を使って、
TAGデータを作成しTAGを書き込む。無効論理アド
レス値としては、例えばそのパーティションに存在しな
い論理アドレス値を使用する。
【0107】以上、本実施形態では、第1の実施形態の
書き込み方式(データはリクエスト単位で対象ストライ
プに書き込む)を前提にしたが、第6の実施形態の書き
込み方式(データは一旦論理アドレスログ領域に書き込
み、バッファWBが一杯になった時点でバッファWBの
単位で対象ストライプに書き込み)の場合でも、 (イ)ステップS1608で論理アドレスログ領域18b2
の書き込みデータからChkSum1を求める。 (ロ)ステップS1609、S1610の間で、書き込
みデータを対象ストライプに書き込む。 という変更を行うことによりほぼ同様に処理できる。
【0108】
【発明の効果】以上、発明によれば、ログ形式のデータ
ブロック管理方式を採用したディスクシステムにおい
て、ファイルシステムのライトアドレス情報をディスク
上の固定領域に書き込むことによりRAIDコントロー
ラのキャッシュを有効利用し書き込み時間を短縮するこ
とができる。アドレス変換テーブルの管理にチェックサ
ムを導入することにより、不意のシステムダウン後の障
害回復処理後等にアドレス変換テーブルの整合性を確認
し信頼性を向上する。
【図面の簡単な説明】
【図1】本発明のディスク制御システムを適用した計算
機システムの構成を示すブロック図。
【図2】本発明のRAID高速化ドライバによるディス
クアレイの書き込み制御の原理を示すブロック図。
【図3】本発明の第1の実施形態における、RAID高
速化ドライバとディスクとの関係と、RAID高速化ド
ライバによる書き込み制御を示すブロック図。
【図4】本発明の第1の実施形態における、ライト処理
のメインルーチンを示すフローチャート。
【図5】本発明の第1の実施形態における、I/O完了
処理1および2の手順を示すフローチャート。
【図6】本発明の第1の実施形態における、I/O完了
処理3の手順を示すフローチャート。
【図7】本発明の第3の実施形態における、ライト処理
のメインルーチンを示すフローチャート。
【図8】本発明の第3の実施形態における、タイマ関数
のセット処理の手順を示すフローチャート。
【図9】本発明の第3の実施形態における、I/O完了
処理1および2の手順を示すフローチャート。
【図10】本発明の第3の実施形態における、ライトリ
クエストReqiの構成、およびペンディングリストへ
の格納状況を示す図。
【図11】本発明の第3の実施形態における、データス
トライプ、および論理アドレスログ領域への書き込み操
作を示す図。
【図12】本発明の第4の実施形態における、データス
トライプ、および論理アドレスログ領域への書き込み操
作を示す図。
【図13】本発明の第5の実施形態における、データス
トライプ、および論理アドレスログ領域への書き込み操
作を示す図。
【図14】本発明の第5の実施形態における、ライト処
理のメインルーチンを示すフローチャート。
【図15】本発明の第5の実施形態における、I/O完
了処理1および2の手順を示すフローチャート。
【図16】本発明の第6の実施形態における、ライト処
理のメインルーチンを示すフローチャート。
【図17】本発明の第6の実施形態における、論理アド
レスログLA0〜LA3の構成例を示す図。
【図18】本発明の第6の実施形態における、データス
トライプのTAG情報の書き込み状態を示す図。
【符号の説明】
1…プロセッサバス 2…PCIバス 11…CPU#1、#2、#3 12…ブリッジ 13…主メモリ 16…RAIDコントローラ 17…ドライバ作業領域 171…ライトバッファ(ログメモリ) 172…アドレス変換テーブルAMT(キャッシュ) 173…ストライプ管理テーブル 18…ディスクアレイ 18a…AMT領域 18b…管理データ領域 18b1…ストライプIDログ領域 18b2…論理アドレスログ領域 18c…データ領域 50…OSファイルシステム 100…RAID高速化ドライバ

Claims (29)

    【特許請求の範囲】
  1. 【請求項1】 上位ファイルシステムからのライトリク
    エストに応答して、論理アドレスから物理アドレスへの
    アドレス変換を行い、複数のディスク装置により構成さ
    れる書き込み領域であるデータストライプに対して連続
    的にライトリクエストのデータを書いていくディスク制
    御システムにおいて、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられたデータ領域の割り当てられた書き込み対
    象データストライプの空き領域に、少なくとも1データ
    ブロックずつ逐次書き込む手段と、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられたデータ管理領域に、前記上位ファイルシ
    ステムからの前記論理アドレスを論理アドレスログ情報
    として書き込む手段と、 前記上位ファイルシステムからのライトリクエストに対
    して、前記データと前記論理アドレスログ情報の書き込
    み完了を持って、上位ファイルシステムに書き込み完了
    を通知する手段とを具備することを特徴とするディスク
    制御システム。
  2. 【請求項2】 前記上位ファイルシステムからの前記ラ
    イトリクエストによって転送された複数のデータブロッ
    クに対して、1つのライトリクエストとしてのI/O要
    求を発行して、前記複数のデータブロックを同時に前記
    書き込み対象データストライプの空き領域に書き込むこ
    とを特徴とする請求項1記載のディスク制御システム。
  3. 【請求項3】 前記論理アドレスログ情報は、前記デー
    タ管理領域に1つ又は複数個設けられた論理アドレスロ
    グ領域に書き込まれることを特徴とする請求項1記載の
    ディスク制御システム。
  4. 【請求項4】 前記複数個の論理アドレスログ領域で構
    成した場合、現在使っていないもので一番最近使用した
    論理アドレスログ領域を使用することを特徴とする請求
    項3記載のディスク制御システム。
  5. 【請求項5】 前記論理アドレスログ領域は、前記ディ
    スク上に固定的に設けられていることを特徴とする請求
    項3記載のディスク制御システム。
  6. 【請求項6】 前記データ書き込み処理が完了しない状
    態で、システムダウンを起した場合、前記論理アドレス
    ログ領域に記録した前記論理アドレスログ情報を用いて
    システムリブート後のデータ回復を行なうことを特徴と
    する請求項3記載のディスク制御システム。
  7. 【請求項7】 前記データ管理領域には、書き込みが行
    われたストライプID、およびこれから書き込みが行わ
    れるストライプIDを記録するストライプIDログ領域
    を更に有することを特徴とする請求項1記載のディスク
    制御システム。
  8. 【請求項8】 前記書き込み対象データストライプの一
    部をタグ情報の書き込み領域として用い、前記書き込み
    対象データストライプの全領域のデータ揃った時の前記
    論理アドレスログ領域に書き込まれた論理アドレス情報
    が前記タグ情報として書き込まれることを特徴とする請
    求項1記載のディスク制御システム。
  9. 【請求項9】 主メモリの一部に書き込みデータに関す
    る論理アドレスと物理アドレスの対応を記憶するアドレ
    ス変換テーブルキャッシュを設け、前記書き込み対象デ
    ータストライプへのデータおよびタグ情報の書き込みが
    終了した時、前記アドレス変換テーブルキャッシュを前
    記タグ情報を基に更新することを特徴する請求項8記載
    のディスク制御システム。
  10. 【請求項10】 上位ファイルシステムからのライトリ
    クエストに応答して、論理アドレスから物理アドレスへ
    のアドレス変換を行い、複数のディスク装置により構成
    される書き込み領域であるストライプに対して連続的に
    ライトリクエストのデータを書いていくディスク制御シ
    ステムにおいて、 主メモリ上に設けられたライトバッファに、複数のライ
    トリクエストに対応する複数のブロックデータを書き込
    む手段と、 前記複数のライトリクエストに応答して、前記複数のデ
    ィスク上に設けられたデータ領域の割り当てられた書き
    込み対象データストライプの空き領域に、前記ライトバ
    ッファに記憶した複数のブロックデータを一括ライトす
    るデータ書き込み手段と、 前記複数のブロックデータに対応する前記上位ファイル
    システムからの前記論理アドレスを論理アドレスログ情
    報として、前記複数のディスク上に設けられたデータ管
    理領域に一括ライトするログ書き込み手段と、 前記上位ファイルシステムからのライトリクエストに対
    して、前記データと前記論理アドレスログ情報の書き込
    み完了を持って、上位ファイルシステムに完了を通知す
    る手段とを具備することを特徴とするディスク制御シス
    テム。
  11. 【請求項11】 前記ライトリクエストの数を変数とし
    て管理し、前記変数が所定値より大きい場合は、前記ラ
    イトリクエストをペンディングリクエストとして保留し
    前記データおよびログ書き込み手段による一括ライト処
    理を実行し、前記変数が所定値より小さい場合は、前記
    ライトリクエスト単位の書き込み処理を実行することを
    特徴とする請求10記載のディスク制御システム。
  12. 【請求項12】 前記一括ライト処理の実行判断は、前
    記ペンディングリクエストのリクエスト数が所定値を越
    えた時、または前記ペンディングリクエストのデータサ
    イズ合計が所定値を越えた時、または前記ペンディング
    リクエストのデータサイズ合計が前記書き込み対象デー
    タストライプの残りの空き領域を越えた時、または前記
    ペンディングしている時間が所定時間経過した時に行な
    われることを特徴とする請求項11記載のディスク制御
    システム。
  13. 【請求項13】 前記論理アドレスログ情報は、前記デ
    ータ管理領域に1つ又は複数個設けられた論理アドレス
    ログ領域に書き込まれることを特徴とする請求項10記
    載のディスク制御システム。
  14. 【請求項14】 前記複数個の論理アドレスログ領域で
    構成した場合、現在使っていないもので一番最近使用し
    た論理アドレスログ領域を使用することを特徴とする請
    求項10記載のディスク制御システム。
  15. 【請求項15】 前記論理アドレスログ領域は、前記デ
    ィスク上に固定的に設けられていることを特徴とする請
    求項10記載のディスク制御システム。
  16. 【請求項16】 前記データ書き込み処理が完了しない
    状態で、システムダウンを起した場合、前記論理アドレ
    スログ領域に記録した前記論理アドレスログ情報を用い
    てシステムリブート後のデータ回復を行うことを特徴と
    する請求項15記載のディスク制御システム。
  17. 【請求項17】 前記データ管理領域には、書き込みが
    行われたストライプID、およびこれから書き込みが行
    われるストライプIDを記録するストライプIDログ領
    域を更に有することを特徴とする請求項10記載のディ
    スク制御システム。
  18. 【請求項18】 前記書き込み対象データストライプの
    一部をタグ情報の書き込み領域として用い、前記書き込
    み対象データストライプの全領域のデータ揃った時の前
    記論理アドレスログ領域に書き込まれた論理アドレス情
    報が前記タグ情報として書き込まれることを特徴とする
    請求項10記載のディスク制御システム。
  19. 【請求項19】 主メモリの一部に書き込みデータに関
    する論理アドレスと物理アドレスの対応を記憶するアド
    レス変換テーブルキャッシュを設け、前記書き込み対象
    データストライプへのデータおよびタグ情報の書き込み
    が終了した時、前記アドレス変換テーブルキャッシュを
    前記タグ情報を基に更新することを特徴する請求項18
    記載のディスク制御システム。
  20. 【請求項20】 上位ファイルシステムからのライトリ
    クエストに応答して、論理アドレスから物理アドレスへ
    のアドレス変換を行い、複数のディスク装置により構成
    される書き込み領域であるデータストライプに対して連
    続的にライトリクエストのデータを書いていくディスク
    制御システムにおいて、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられたデータ領域の割り当てられた書き込み対
    象データストライプの空き領域に、少なくとも1データ
    ブロックずつ逐次書き込む手段と、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられた論理アドレスログ領域に、前記上位ファ
    イルシステムからの前記論理アドレス、および書き込み
    データサイズ、および書き込みデータのチェックサムを
    論理アドレスログ情報として書き込む手段と、 前記上位ファイルシステムからのライトリクエストに対
    して、前記データと前記論理アドレスログ情報の書き込
    み完了を持って、上位ファイルシステムに書き込み完了
    を通知する手段とを具備することを特徴とするディスク
    制御システム。
  21. 【請求項21】 書き込み中にシステムの障害が発生し
    た場合には、書込み処理途中のストライプに関して、そ
    の前記論理アドレスログ領域に書き込まれているチェッ
    クサム値が前記データ領域の書き込みデータから求めた
    チェックサム値との一致を確認し、一致した時には、そ
    のデータは有効なデータとして取り扱い、一致しなかっ
    た時には書き込みが完了しなかったとみなし、そのデー
    タを捨てることを特徴とする請求項21記載のディスク
    制御システム。
  22. 【請求項22】 上位ファイルシステムからのライトリ
    クエストに応答して、論理アドレスから物理アドレスへ
    のアドレス変換を行い、複数のディスク装置により構成
    される書き込み領域であるデータストライプに対して連
    続的にライトリクエストのデータを書いていくディスク
    制御システムにおいて、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられた論理アドレスログ領域に、前記上位ファ
    イルシステムからの前記論理アドレス、書き込みデータ
    サイズ、書き込みデータのチェックサム、および少なく
    とも1データブロックを論理アドレスログ情報として書
    き込む手段と、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられたデータ領域の割り当てられた書き込み対
    象データストライプの空き領域に、少なくとも1データ
    ブロックずつ逐次書き込む手段と、 前記上位ファイルシステムからのライトリクエストに対
    して、前記論理アドレスログ領域への前記論理アドレス
    ログ情報の書き込み完了を持って、上位ファイルシステ
    ムに書き込み完了を通知する手段とを具備することを特
    徴とするディスク制御システム。
  23. 【請求項23】 前記論理アドレスログ領域に前記デー
    タブロックを書き込むことにより、上位ファイルシステ
    ムへの応答時間を短縮したことを特徴とする請求項22
    記載のディスク制御システム。
  24. 【請求項24】 上位ファイルシステムからのライトリ
    クエストに応答して、論理アドレスから物理アドレスへ
    のアドレス変換を行い、複数のディスク装置により構成
    される書き込み領域であるデータストライプに対して連
    続的にライトリクエストのデータを書いていくディスク
    制御システムにおいて、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられた論理アドレスログ領域のヘッダ部に有効
    /無効を示すフラグ、ストライプID番号、および最終
    データの書き込みタイムスタンプを記録し、前記論理ア
    ドレスログ領域のエントリ部に書き込みリクエストによ
    って処理される1つ又は複数のブロックデータのタイム
    スタンプ、1つ又は複数の論理アドレス、および1つ又
    は複数のチェックサムを論理アドレスログ情報として書
    き込む手段と、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられたデータ領域の割り当てられた書き込み対
    象データストライプの空き領域に、少なくとも1データ
    ブロックずつ逐次書き込む手段と、 書き込み中にシステムの障害が発生した場合には、書込
    み処理途中の有効なフラグがセットされているストライ
    プに関して、その前記論理アドレスログ領域に書き込ま
    れているチェックサム値が前記データ領域の書き込みデ
    ータから求めたチェックサム値との一致を確認し、一致
    した時には、そのデータは有効なデータとして取り扱
    い、一致しなかった時には書き込みが完了しなかったと
    みなし、そのデータを捨てることを特徴とするディスク
    制御システム。
  25. 【請求項25】 前記チェックサムが一致した場合、前
    記データストライプのTAG領域に物理アドレスおよび
    論理アドレスの対応表を記録し、そのTAG領域の対応
    表を主メモリのアドレス変換テーブルに反映させること
    を特徴とする請求項24記載のディスク制御システム。
  26. 【請求項26】 上位ファイルシステムからのライトリ
    クエストに応答して、論理アドレスから物理アドレスへ
    のアドレス変換を行い、複数のディスク装置により構成
    される書き込み領域であるデータストライプに対して連
    続的にライトリクエストのデータを書いていくディスク
    制御方法において、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられたデータ領域の割り当てられた書き込み対
    象データストライプの空き領域に、少なくとも1データ
    ブロックずつ逐次書き込み、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられたデータ管理領域に、前記上位ファイルシ
    ステムからの前記論理アドレスを論理アドレスログ情報
    として書き込み、 前記上位ファイルシステムからのライトリクエストに対
    して、前記データと前記論理アドレスログ情報の書き込
    み完了を持って、上位ファイルシステムに書き込み完了
    を通知することを特徴とするディスク制御方法。
  27. 【請求項27】 上位ファイルシステムからのライトリ
    クエストに応答して、論理アドレスから物理アドレスへ
    のアドレス変換を行い、複数のディスク装置により構成
    される書き込み領域であるストライプに対して連続的に
    ライトリクエストのデータを書いていくディスク制御方
    法において、 主メモリ上に設けられたライトバッファに、複数のライ
    トリクエストに対応する複数のブロックデータを書き込
    み、 前記複数のライトリクエストに応答して、前記複数のデ
    ィスク上に設けられたデータ領域の割り当てられた書き
    込み対象データストライプの空き領域に、前記ライトバ
    ッファに記憶した複数のブロックデータを一括ライトす
    るデータ書き込み、 前記複数のブロックデータに対応する前記上位ファイル
    システムからの前記論理アドレスを論理アドレスログ情
    報として、前記複数のディスク上に設けられたデータ管
    理領域に一括ライトするログ書き込み、 前記上位ファイルシステムからのライトリクエストに対
    して、前記データと前記論理アドレスログ情報の書き込
    み完了を持って、上位ファイルシステムに完了を通知す
    ることを特徴とするディスク制御方法。
  28. 【請求項28】 上位ファイルシステムからのライトリ
    クエストに応答して、論理アドレスから物理アドレスへ
    のアドレス変換を行い、複数のディスク装置により構成
    される書き込み領域であるデータストライプに対して連
    続的にライトリクエストのデータを書いていくディスク
    制御方法において、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられたデータ領域の割り当てられた書き込み対
    象データストライプの空き領域に、少なくとも1データ
    ブロックずつ逐次書き込み、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられた論理アドレスログ領域に、前記上位ファ
    イルシステムからの前記論理アドレス、および書き込み
    データサイズ、および書き込みデータのチェックサムを
    論理アドレスログ情報として書き込み、 前記上位ファイルシステムからのライトリクエストに対
    して、前記データと前記論理アドレスログ情報の書き込
    み完了を持って、上位ファイルシステムに書き込み完了
    を通知することを特徴とするディスク制御方法。
  29. 【請求項29】 上位ファイルシステムからのライトリ
    クエストに応答して、論理アドレスから物理アドレスへ
    のアドレス変換を行い、複数のディスク装置により構成
    される書き込み領域であるデータストライプに対して連
    続的にライトリクエストのデータを書いていくディスク
    制御方法において、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられた論理アドレスログ領域のヘッダ部に有効
    /無効を示すフラグ、ストライプID番号、および最終
    データの書き込みタイムスタンプを記録し、前記論理ア
    ドレスログ領域のエントリ部に書き込みリクエストによ
    って処理される1つ又は複数のブロックデータのタイム
    スタンプ、1つ又は複数の論理アドレス、および1つ又
    は複数のチェックサムを論理アドレスログ情報として書
    き込み、 前記ライトリクエストに応答して、前記複数のディスク
    上に設けられたデータ領域の割り当てられた書き込み対
    象データストライプの空き領域に、少なくとも1データ
    ブロックずつ逐次書き込み、 書き込み中にシステムの障害が発生した場合には、書込
    み処理途中の有効なフラグがセットされているストライ
    プに関して、その前記論理アドレスログ領域に書き込ま
    れているチェックサム値が前記データ領域の書き込みデ
    ータから求めたチェックサム値との一致を確認し、一致
    した時には、そのデータは有効なデータとして取り扱
    い、一致しなかった時には書き込みが完了しなかったと
    みなし、そのデータを捨てることを特徴とするディスク
    制御方法。
JP2001001137A 2001-01-09 2001-01-09 ディスク制御システムおよびディスク制御方法 Expired - Fee Related JP3592640B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001001137A JP3592640B2 (ja) 2001-01-09 2001-01-09 ディスク制御システムおよびディスク制御方法
EP01122025A EP1221646A3 (en) 2001-01-09 2001-09-13 Disk control system and method
US09/954,303 US7216199B2 (en) 2001-01-09 2001-09-18 Disk control system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001001137A JP3592640B2 (ja) 2001-01-09 2001-01-09 ディスク制御システムおよびディスク制御方法

Publications (2)

Publication Number Publication Date
JP2002207572A true JP2002207572A (ja) 2002-07-26
JP3592640B2 JP3592640B2 (ja) 2004-11-24

Family

ID=18869807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001001137A Expired - Fee Related JP3592640B2 (ja) 2001-01-09 2001-01-09 ディスク制御システムおよびディスク制御方法

Country Status (3)

Country Link
US (1) US7216199B2 (ja)
EP (1) EP1221646A3 (ja)
JP (1) JP3592640B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009829A (ja) * 2006-06-30 2008-01-17 Fujitsu Ltd ストレージ制御プログラム、ストレージ制御装置、ストレージ制御方法
JP2010511963A (ja) * 2006-12-08 2010-04-15 サンドフォース インコーポレイテッド 複数のストレージデバイスでのデータ冗長性
JP2013020504A (ja) * 2011-07-12 2013-01-31 Nec Corp ディスクアレイ装置、論理ディスク制御方法および制御プログラム
US8402202B2 (en) 2007-07-31 2013-03-19 Samsung Electronics Co., Ltd. Input/output control method and apparatus optimized for flash memory
JP2013109419A (ja) * 2011-11-17 2013-06-06 Toshiba Corp 情報処理装置
JP2013542541A (ja) * 2010-11-08 2013-11-21 グリーンライアント リミテッド ライアビリティ カンパニー データのブロックを不揮発性メモリデバイスに冗長方式で格納するためのメモリコントローラ及びメモリシステム
US8671233B2 (en) 2006-11-24 2014-03-11 Lsi Corporation Techniques for reducing memory write operations using coalescing memory buffers and difference information
US8725960B2 (en) 2006-12-08 2014-05-13 Lsi Corporation Techniques for providing data redundancy after reducing memory writes
US9268706B2 (en) 2011-08-01 2016-02-23 Kabushiki Kaisha Toshiba Information processing device including host device and semiconductor memory device having plurality of address conversion information
JP2016122394A (ja) * 2014-12-25 2016-07-07 株式会社バイオス 記憶制御システム及び記憶制御装置

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904441B2 (en) 2001-03-27 2005-06-07 Hewlett-Packard Development Company, L.P. Method and apparatus for providing file system access to a disk array
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
US7222129B2 (en) * 2002-03-29 2007-05-22 Canon Kabushiki Kaisha Database retrieval apparatus, retrieval method, storage medium, and program
US7171396B2 (en) 2002-04-04 2007-01-30 Hewlett-Packard Development Company, L.P. Method and program product for specifying the different data access route for the first data set includes storing an indication of the different access for the first data set providing alternative data access routes to a data storage
US6910117B2 (en) * 2003-04-16 2005-06-21 Megawin Technology Co., Ltd. Method for detecting logical addresses of nonvolatile storage medium
JP2005135126A (ja) * 2003-10-30 2005-05-26 Hitachi Ltd フラグメント防止ファイルシステム
US20050144396A1 (en) * 2003-12-31 2005-06-30 Eschmann Michael K. Coalescing disk write back requests
US7529904B2 (en) * 2004-03-31 2009-05-05 International Business Machines Corporation Storing location identifier in array and array pointer in data structure for write process management
US7213103B2 (en) * 2004-04-22 2007-05-01 Apple Inc. Accessing data storage systems without waiting for read errors
US7577804B2 (en) * 2004-10-06 2009-08-18 International Business Machines Corporation Detecting data integrity
US8495015B2 (en) 2005-06-21 2013-07-23 Apple Inc. Peer-to-peer syncing in a decentralized environment
US7523146B2 (en) * 2005-06-21 2009-04-21 Apple Inc. Apparatus and method for peer-to-peer N-way synchronization in a decentralized environment
US8521955B2 (en) 2005-09-13 2013-08-27 Lsi Corporation Aligned data storage for network attached media streaming systems
US20070250737A1 (en) * 2005-09-13 2007-10-25 Agere Systems Inc. Method and Apparatus for Aligned Data Storage Addresses in a Raid System
JP2007242207A (ja) * 2006-03-13 2007-09-20 Fujitsu Ltd ディスク装置の媒体スキャン方法
US7797670B2 (en) * 2006-04-14 2010-09-14 Apple Inc. Mirrored file system
KR100827677B1 (ko) * 2006-06-20 2008-05-07 한국과학기술원 행렬 스트라이프 캐쉬를 이용한 raid 시스템의 입출력성능 향상 방법
US7860826B2 (en) 2006-08-04 2010-12-28 Apple Inc. Method and system for using global equivalency sets to identify data during peer-to-peer synchronization
US8918427B1 (en) 2006-12-29 2014-12-23 Symantec Operating Corporation Virtualization of file input/output operations
US7657769B2 (en) * 2007-01-08 2010-02-02 Marcy M Scott N-way synchronization of data
US20080276124A1 (en) * 2007-05-04 2008-11-06 Hetzler Steven R Incomplete write protection for disk array
US20110314216A1 (en) * 2007-12-07 2011-12-22 Thales Method and Device for Reducing the Remanence of Data Stored on a Recording Medium
US7877626B2 (en) * 2007-12-31 2011-01-25 Datadirect Networks, Inc. Method and system for disk storage devices rebuild in a data storage system
US8850113B2 (en) * 2010-02-27 2014-09-30 Cleversafe, Inc. Data migration between a raid memory and a dispersed storage network memory
CN102253810B (zh) * 2010-05-17 2014-02-05 深圳市世纪光速信息技术有限公司 数据读取方法、装置和系统
US8850114B2 (en) 2010-09-07 2014-09-30 Daniel L Rosenband Storage array controller for flash-based storage devices
US10817421B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US10817502B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US9767098B2 (en) 2012-08-08 2017-09-19 Amazon Technologies, Inc. Archival data storage system
US9563681B1 (en) 2012-08-08 2017-02-07 Amazon Technologies, Inc. Archival data flow management
US9417823B2 (en) * 2011-07-12 2016-08-16 Violin Memory Inc. Memory system management
US9335939B2 (en) 2011-07-12 2016-05-10 Violin Memory Inc. RAIDed memory system
US8769196B1 (en) * 2011-09-30 2014-07-01 Lenovo (Singapore) Pte. Ltd. Configuring I/O cache
JP5884602B2 (ja) * 2012-03-30 2016-03-15 富士通株式会社 ストレージ制御装置、およびストレージシステム
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US10120579B1 (en) 2012-08-08 2018-11-06 Amazon Technologies, Inc. Data storage management for sequentially written media
US9779035B1 (en) 2012-08-08 2017-10-03 Amazon Technologies, Inc. Log-based data storage on sequentially written media
US9830111B1 (en) 2012-08-08 2017-11-28 Amazon Technologies, Inc. Data storage space management
US8959067B1 (en) 2012-08-08 2015-02-17 Amazon Technologies, Inc. Data storage inventory indexing
US9652487B1 (en) * 2012-08-08 2017-05-16 Amazon Technologies, Inc. Programmable checksum calculations on data storage devices
US8805793B2 (en) 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
WO2014098839A1 (en) * 2012-12-19 2014-06-26 Hewlett-Packard Development Company Nvram path selection
US9542101B2 (en) * 2013-01-22 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. System and methods for performing embedded full-stripe write operations to a data volume with data elements distributed across multiple modules
US9292228B2 (en) 2013-02-06 2016-03-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Selective raid protection for cache memory
US10558581B1 (en) 2013-02-19 2020-02-11 Amazon Technologies, Inc. Systems and techniques for data recovery in a keymapless data storage system
US8954657B1 (en) * 2013-09-27 2015-02-10 Avalanche Technology, Inc. Storage processor managing solid state disk array
US10013217B1 (en) * 2013-06-28 2018-07-03 EMC IP Holding Company LLC Upper deck file system shrink for directly and thinly provisioned lower deck file system in which upper deck file system is stored in a volume file within lower deck file system where both upper deck file system and lower deck file system resides in storage processor memory
US9547448B2 (en) 2014-02-24 2017-01-17 Netapp, Inc. System and method for transposed storage in raid arrays
US9471448B2 (en) * 2014-12-10 2016-10-18 Intel Corporation Performing an atomic write operation across multiple storage devices
KR20160083762A (ko) * 2015-01-02 2016-07-12 삼성전자주식회사 스토리지 시스템에서의 매핑 테이블 관리 방법 및 이를 적용한 스토리지 시스템
CN104714900B (zh) * 2015-03-26 2019-07-05 百度在线网络技术(北京)有限公司 数据读取方法和装置
US20160357462A1 (en) * 2015-06-08 2016-12-08 Samsung Electronics Co., Ltd. Nonvolatile Memory Modules and Data Management Methods Thereof
TWI537728B (zh) * 2015-09-23 2016-06-11 群聯電子股份有限公司 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US11386060B1 (en) 2015-09-23 2022-07-12 Amazon Technologies, Inc. Techniques for verifiably processing data in distributed computing systems
CN106557432B (zh) * 2015-09-29 2019-08-06 群联电子股份有限公司 缓冲存储器管理方法、存储器控制电路单元及存储装置
US9910786B2 (en) 2015-11-03 2018-03-06 Intel Corporation Efficient redundant array of independent disks (RAID) write hole solutions
US9921914B2 (en) 2015-11-03 2018-03-20 Intel Corporation Redundant array of independent disks (RAID) write hole solutions
US10423581B1 (en) * 2016-03-30 2019-09-24 EMC IP Holding Company LLC Data storage system employing file space reclaim without data movement
CN105956090B (zh) * 2016-04-27 2019-06-11 中国科学技术大学 一种基于i/o自适应的日志文件系统数据存储方法
KR102585214B1 (ko) * 2016-09-22 2023-10-05 삼성전자주식회사 가변 소거 유닛 크기를 가지는 스토리지 디바이스 및 이를 포함하는 레이드 스토리지 시스템
US10203880B1 (en) * 2016-09-29 2019-02-12 EMC IP Holding Company LLC Selectively operating data storage equipment in a “stripe write” mode and a “fill hole” mode
US9933945B1 (en) 2016-09-30 2018-04-03 EMC IP Holding Company LLC Efficiently shrinking a dynamically-sized volume
US10372368B2 (en) * 2016-10-13 2019-08-06 International Business Machines Corporation Operating a RAID array with unequal stripes
CN109213430B (zh) * 2017-06-30 2021-09-10 伊姆西Ip控股有限责任公司 存储管理方法和系统
US10643707B2 (en) * 2017-07-25 2020-05-05 Western Digital Technologies, Inc. Group write operations for a data storage device
US10936441B2 (en) * 2017-12-15 2021-03-02 Microsoft Technology Licensing, Llc Write-ahead style logging in a persistent memory device
US12086450B1 (en) 2018-09-26 2024-09-10 Amazon Technologies, Inc. Synchronous get copy for asynchronous storage
CN111435286B (zh) * 2019-01-14 2023-12-05 深圳市茁壮网络股份有限公司 一种数据存储方法、装置和系统
CN112732163B (zh) * 2019-10-14 2023-02-03 成都华为技术有限公司 一种数据校验方法和装置
CN111026335A (zh) * 2019-12-12 2020-04-17 天地伟业技术有限公司 一种优化存储性能提升硬盘兼容性的方法
US12073113B2 (en) * 2021-08-30 2024-08-27 Micron Technology, Inc. Direct logical-to-physical address mapping for sequential physical addresses
CN116339646B (zh) * 2023-05-30 2023-08-11 西安中飞航空测试技术发展有限公司 飞行试验数据存储方法、装置、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
JP2000047832A (ja) * 1998-07-27 2000-02-18 Toshiba Corp ディスクアレイ装置、及びそのデータ制御方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2986880B2 (ja) 1990-09-19 1999-12-06 株式会社日立製作所 アレイディスク
KR970004255B1 (ko) 1992-12-07 1997-03-26 인터내셔널 비지네스 머신즈 코포레이션 병렬 디스크 상에서의 고속 데이타 갱신 방법
US5860091A (en) * 1996-06-28 1999-01-12 Symbios, Inc. Method and apparatus for efficient management of non-aligned I/O write request in high bandwidth raid applications
JPH11119923A (ja) * 1997-10-20 1999-04-30 Fujitsu Ltd データアクセス制御装置及びデータアクセス制御プログラムを記録した媒体
JP3616487B2 (ja) * 1997-11-21 2005-02-02 アルプス電気株式会社 ディスクアレイ装置
JPH11194899A (ja) * 1997-12-26 1999-07-21 Toshiba Corp ディスク記憶システム及び同システムに適用するデータ更新方法
US6134586A (en) * 1998-07-31 2000-10-17 Philips Electronics N.A. Corp. Striping data across disk zones
US6883031B1 (en) * 2000-09-14 2005-04-19 Lucent Technologies Inc. RUSH-DCS—an adaptable high performance interface for services
US6606694B2 (en) * 2000-12-22 2003-08-12 Bull Hn Information Systems Inc. Write logging in mirrored disk subsystems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
JP2000047832A (ja) * 1998-07-27 2000-02-18 Toshiba Corp ディスクアレイ装置、及びそのデータ制御方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009829A (ja) * 2006-06-30 2008-01-17 Fujitsu Ltd ストレージ制御プログラム、ストレージ制御装置、ストレージ制御方法
US8671233B2 (en) 2006-11-24 2014-03-11 Lsi Corporation Techniques for reducing memory write operations using coalescing memory buffers and difference information
US8725960B2 (en) 2006-12-08 2014-05-13 Lsi Corporation Techniques for providing data redundancy after reducing memory writes
JP2010511963A (ja) * 2006-12-08 2010-04-15 サンドフォース インコーポレイテッド 複数のストレージデバイスでのデータ冗長性
JP2013257900A (ja) * 2006-12-08 2013-12-26 Lsi Inc 複数のストレージデバイスでのデータ冗長性
US8402202B2 (en) 2007-07-31 2013-03-19 Samsung Electronics Co., Ltd. Input/output control method and apparatus optimized for flash memory
JP2013542541A (ja) * 2010-11-08 2013-11-21 グリーンライアント リミテッド ライアビリティ カンパニー データのブロックを不揮発性メモリデバイスに冗長方式で格納するためのメモリコントローラ及びメモリシステム
JP2013020504A (ja) * 2011-07-12 2013-01-31 Nec Corp ディスクアレイ装置、論理ディスク制御方法および制御プログラム
US9870155B2 (en) 2011-08-01 2018-01-16 Toshiba Memory Corporation Information processing device including host device and semiconductor memory device having a block rearrangement to secure free blocks
US9268706B2 (en) 2011-08-01 2016-02-23 Kabushiki Kaisha Toshiba Information processing device including host device and semiconductor memory device having plurality of address conversion information
US9542117B2 (en) 2011-08-01 2017-01-10 Kabushiki Kaisha Toshiba Information processing device including host device and semiconductor memory device having a plurality of address conversion information
US10331356B2 (en) 2011-08-01 2019-06-25 Toshiba Memory Corporation Data writing processing into memory of a semiconductor memory device by using a memory of a host device
US10949092B2 (en) 2011-08-01 2021-03-16 Toshiba Memory Corporation Memory system with block rearrangement to secure a free block based on read valid first and second data
US11537291B2 (en) 2011-08-01 2022-12-27 Kioxia Corporation Data reading and writing processing from and to a semiconductor memory and a memory of a host device by using first and second interface circuits
US11868618B2 (en) 2011-08-01 2024-01-09 Kioxia Corporation Data reading and writing processing from and to a semiconductor memory and a memory of a host device by using first and second interface circuits
JP2013109419A (ja) * 2011-11-17 2013-06-06 Toshiba Corp 情報処理装置
JP2016122394A (ja) * 2014-12-25 2016-07-07 株式会社バイオス 記憶制御システム及び記憶制御装置

Also Published As

Publication number Publication date
US20020091903A1 (en) 2002-07-11
EP1221646A2 (en) 2002-07-10
JP3592640B2 (ja) 2004-11-24
EP1221646A3 (en) 2008-07-23
US7216199B2 (en) 2007-05-08

Similar Documents

Publication Publication Date Title
JP3592640B2 (ja) ディスク制御システムおよびディスク制御方法
US8977781B1 (en) Computer system
US5701516A (en) High-performance non-volatile RAM protected write cache accelerator system employing DMA and data transferring scheme
US20160342545A1 (en) Data memory device
US6647514B1 (en) Host I/O performance and availability of a storage array during rebuild by prioritizing I/O request
JP2837341B2 (ja) ディスクアレイ用キャッシュシステム
US8719520B1 (en) System and method for data migration between high-performance computing architectures and data storage devices with increased data reliability and integrity
US7043610B2 (en) System and method for maintaining cache coherency without external controller intervention
US8131969B2 (en) Updating system configuration information
JP7135162B2 (ja) 情報処理システム、ストレージシステム及びデータ転送方法
US20060195663A1 (en) Virtualized I/O adapter for a multi-processor data processing system
US20070201434A1 (en) Storage system having a channel control function using a plurality of processors
WO2018067467A1 (en) Infrastructure improvements for use in a massively parallel database management system
US11461303B2 (en) IO metadata management for directly connected host
US6148369A (en) Method and apparatus for providing logical devices spanning several physical volumes
US7032093B1 (en) On-demand allocation of physical storage for virtual volumes using a zero logical disk
US20110082950A1 (en) Computer system and computer system input/output method
JP4053208B2 (ja) ディスクアレイ制御装置
WO2017072868A1 (ja) ストレージ装置
US9239681B2 (en) Storage subsystem and method for controlling the storage subsystem
US7484038B1 (en) Method and apparatus to manage storage devices
EP3293625B1 (en) Method and device for accessing file, and storage system
JP7495191B2 (ja) I/o性能を最適化するためのメモリ・コピーおよびメモリ・マッピング間の動的な切り替え
US20050223180A1 (en) Accelerating the execution of I/O operations in a storage system
US8140800B2 (en) Storage apparatus

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040326

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040615

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040810

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040825

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

Free format text: PAYMENT UNTIL: 20070903

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080903

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090903

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100903

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110903

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120903

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20120903

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130903

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees