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

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

Info

Publication number
JP3592640B2
JP3592640B2 JP2001001137A JP2001001137A JP3592640B2 JP 3592640 B2 JP3592640 B2 JP 3592640B2 JP 2001001137 A JP2001001137 A JP 2001001137A JP 2001001137 A JP2001001137 A JP 2001001137A JP 3592640 B2 JP3592640 B2 JP 3592640B2
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.)
Expired - Fee Related
Application number
JP2001001137A
Other languages
English (en)
Other versions
JP2002207572A (ja
Inventor
聡 水野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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

Images

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)

Description

【0001】
【発明の属する技術分野】
本発明は、ディスク制御システムおよびディスク制御方法に関し、特に、RAID制御装置に用いられていた書き込みバッファやアドレス変換テーブルなどを構成する専用の不揮発性メモリを使用しないで、主メモリとディスク装置だけを用いて、ディスク上のストライプに連続的にライトリクエストのデータを書き込むディスク制御システムおよびディスク制御方法に関するものである。
【0002】
【従来の技術】
RAID構成のディスク制御システムのライト方式は、例えば特開平6−214720号公報や、特開平11−53235号公報に示すように、ランダムライトを1つの連続した領域としての物理ストライプにまとめて書き込む方式が提案されている。しかしながら、従来技術では、書き込むデータを一度不揮発性メモリ(以下、NvRAMと称する)又は揮発性メモリに書き込み、1ストライプ分の書込みデータが揃った時点で、ディスク装置上の物理ストライプに書込みを行っていた。また、上位ファイルシステムからの論理アドレスをディスク上の物理アドレスに変換したアドレス変換テーブルを上記NvRAMに記憶させていた。
【0003】
この様に、一度、NvRAMにデータを書き込むことにより、ディスク装置上に書き込む前にシステムが異常停止したとしても、システムリブート後にNvRAMを参照し、NvRAM上の書きかけのデータを正しくディスク装置に書き込むことにより、書き込みを完了させることができる(書き込みデータを失わない)効果が有る。
【0004】
即ち、NvRAMへのデータ書き込みが終れば、そのライトデータが失われることはない。このため、従来のディスク制御システムでは、書き込みデータをNvRAMに書き込んだ時点で、そのライトリクエストに対して「完了」をホストに通知していた。
【0005】
【発明が解決しようとする課題】
しかしながら、NvRAMはシステムに装着するI/Oカード(ハードウェア)で提供する必要が有り、その分コストがかかるという問題があり、また、ホスト計算機との相性の問題、互換性、保守等の手間もかかる等の問題がある。
【0006】
本発明では、NvRAMを使わずに、主メモリとディスク装置だけを用いて、ディスク上のストライプに連続的にライトリクエストのデータを書き込むディスク制御システムおよびディスク制御方法を提供することを目的とする。また、NvRAMを使用せずとも異常停止時にデータを損失することが無く、システムの性能向上を実現させるものである。
【0007】
【課題を解決するための手段】
上記目的を達成するために、発明のディスク制御システムは、論理アドレスを用いた少なくとも1つのデータブロックからなるデータの書き込みを行うための上位ファイルシステムから出力されるライトリクエストに応答して、論理アドレスから物理アドレスへのアドレス変換を行い、複数のディスク装置により構成される書き込み領域であるデータストライプに対して連続的にライトリクエストのデータを書いていくディスク制御システムにおいて、前記ライトリクエストに応答して、前記複数のディスク上に設けられたデータ領域の割り当てられた書き込み対象データストライプの空き領域に前記データを書き込む手段と、前記ライトリクエストに応答して、前記複数のディスク上に設けられた管理データ領域に、前記上位ファイルシステムからの前記論理アドレスを論理アドレスログ情報として書き込む手段と、前記上位ファイルシステムからのライトリクエストに対して、前記データと前記論理アドレスログ情報の書き込み完了をもって、上位ファイルシステムに書き込み完了を通知する手段とを具備することを特徴とする。
【0008】
本発明によれば、不揮発性メモリに代わりに、ディスク上に設けられた管理データ領域18b、データ領域18cなどを用いることにより、ランダムライトが物理的に連続した領域への書き込みとして実行することが出来る。したがって、シーク/回転待ちが少なくなり、不揮発性メモリを使用しなくても高速な書き込み処理が実現される。
【0009】
また、本発明のディスク制御システムは、論理アドレスを用いた少なくとも1つのデータブロックからなるデータの書き込みを行うための上位ファイルシステムから出力されるライトリクエストに応答して、論理アドレスから物理アドレスへのアドレス変換を行い、複数のディスク装置により構成される書き込み領域であるデータストライプに対して連続的にライトリクエストのデータを書いていくディスク制御システムにおいて、主メモリ上に設けられたライトバッファに、複数のライトリクエストに対応する複数のブロックデータを書き込む手段と、前記複数のライトリクエストに応答して、前記複数のディスク上に設けられたデータ領域の割り当てられた書き込み対象データストライプの空き領域に、前記ライトバッファに記憶した複数のブロックデータを一括ライトするデータ書き込み手段と、前記複数のブロックデータに対応する前記上位ファイルシステムからの前記論理アドレスを論理アドレスログ情報として、前記複数のディスク上に設けられた管理データ領域に一括ライトするログ書き込み手段と、前記上位ファイルシステムからのライトリクエストに対して、前記データと前記論理アドレスログ情報の書き込み完了をもって、上位ファイルシステムに完了を通知する手段とを具備することを特徴とする。
【0010】
本発明によれば、不揮発性メモリに代わりに、ディスク上に設けられた管理データ領域18b、データ領域18cなどを用いることにより、ランダムライトが物理的に連続した領域への書き込みとして実行することが出来る。また、複数のライトリクエストが1度のデータライト処理と1度の論理アドレスログ情報の書き込みとして処理することができるため、書き込み処理回数が減り、書き込みサイズが大きくなることでディスクへのトータルとして書き込みオーバヘッドが小さくなり、結果的に書き込み処理のスループットが向上する。
【0011】
また、本発明のディスク制御システムは、論理アドレスを用いた少なくとも1つのデータブロックからなるデータの書き込みを行うための上位ファイルシステムから出力されるライトリクエストに応答して、論理アドレスから物理アドレスへのアドレス変換を行い、複数のディスク装置により構成される書き込み領域であるデータストライプに対して連続的にライトリクエストのデータを書いていくディスク制御システムにおいて、前記ライトリクエストに応答して、前記複数のディスク上に設けられたデータ領域の割り当てられた書き込み対象データストライプの空き領域に前記データを書き込む手段と、前記ライトリクエストに応答して、前記複数のディスク上に設けられた論理アドレスログ領域に、前記上位ファイルシステムからの前記論理アドレス、および書き込みデータサイズ、および書き込みデータのチェックサムを論理アドレスログ情報として書き込む手段と、前記上位ファイルシステムからのライトリクエストに対して、前記データと前記論理アドレスログ情報の書き込み完了をもって、上位ファイルシステムに書き込み完了を通知する手段とを具備することを特徴とする。
【0012】
本発明によれば、ディスクのデータ領域へのデータ書き込み中にシステムの障害が発生した場合には、書き込み処理途中のストライプに関して、その論理アドレスログ領域に書き込まれているチェックサム値とデータ領域のデータから求めたチェックサム値とが一致するか否かを確認チェックすることにより、一致している場合には、データ書き込みが完了していたと判断し、データを有効とみなし残りの処理(アドレス変換テーブルへの登録等)を行ない、効率的な障害回復処理が実行できる。
【0013】
また、本発明のディスク制御システムは、論理アドレスを用いた少なくとも1つのデータブロックからなるデータの書き込みを行うための上位ファイルシステムから出力されるライトリクエストに応答して、論理アドレスから物理アドレスへのアドレス変換を行い、複数のディスク装置により構成される書き込み領域であるデータストライプに対して連続的にライトリクエストのデータを書いていくディスク制御システムにおいて、前記ライトリクエストに応答して、前記複数のディスク上に設けられた論理アドレスログ領域に、前記上位ファイルシステムからの前記論理アドレス、書き込みデータサイズ、書き込みデータのチェックサム、および少なくとも1データブロックを論理アドレスログ情報として書き込む手段と、前記ライトリクエストに応答して、前記複数のディスク上に設けられたデータ領域の割り当てられた書き込み対象データストライプの空き領域に前記データを書き込む手段と、前記上位ファイルシステムからのライトリクエストに対して、前記論理アドレスログ領域への前記論理アドレスログ情報の書き込み完了をもって、上位ファイルシステムに書き込み完了を通知する手段とを具備することを特徴とする。
【0014】
本発明によれば、個々のライトリクエストに対して、論理アドレスログ領域に論理アドレスログ情報とライトデータaの書き込みが完了すれば、その時点でOSファイルシステムに対して完了通知することができる。つまり、OSファイルシステムに対するレスポンスが早くなる。
【0015】
また、本発明のディスク制御システムは、論理アドレスを用いた少なくとも1つのデータブロックからなるデータの書き込みを行うための上位ファイルシステムから出力されるライトリクエストに応答して、論理アドレスから物理アドレスへのアドレス変換を行い、複数のディスク装置により構成される書き込み領域であるデータストライプに対して連続的にライトリクエストのデータを書いていくディスク制御システムにおいて、前記ライトリクエストに応答して、前記複数のディスク上に設けられた論理アドレスログ領域のヘッダ部に有効/無効を示すフラグ、ストライプID番号、および最終データの書き込みタイムスタンプを記録し、前記論理アドレスログ領域のエントリ部に書き込みリクエストによって処理される1つ又は複数のブロックデータのタイムスタンプ、1つ又は複数の論理アドレス、および1つ又は複数のチェックサムを論理アドレスログ情報として書き込む手段と、前記ライトリクエストに応答して、前記複数のディスク上に設けられたデータ領域の割り当てられた書き込み対象データストライプの空き領域に前記データを書き込む手段と、書き込み中にシステムの障害が発生した場合には、書込み処理途中の有効なフラグがセットされているストライプに関して、その前記論理アドレスログ領域に書き込まれているチェックサム値が前記データ領域の書き込みデータから求めたチェックサム値との一致を確認し、一致した時には、そのデータは有効なデータとして取り扱い、一致しなかった時には書き込みが完了しなかったとみなし、そのデータを捨てることを特徴とする。
【0016】
本発明によれば、書き込み中にシステムの障害が発生した場合には、書込み処理途中の有効なフラグがセットされているストライプに関して、その論理アドレスログ領域に書き込まれているチェックサム値がデータ領域の書き込みデータから求めたチェックサム値との一致を確認し、一致した時には、そのデータは有効なデータとして取り扱い、一致しなかった時には書き込みが完了しなかったとみなし捨てることにより、障害回復処理を効率よく実行することが出来る。
【0017】
【発明の実施の形態】
先ず、本発明で用いられる各種の用語について説明する。
(データストライプ)
ディスク制御システムが「まとめ書き」(又は「一括書き」とも言われる)するデータの単位を意味する。ディスクのパーティション上で、一続きの領域となっており、RAIDコントローラが管理するストライプサイズの整数倍のサイズである。RAID5に対しては、このサイズをパリティグループにする事により、いわゆる「RAID5のライトペナルティ」を改善する事ができ、大幅な性能向上を実現できる。ストライプは複数のデータブロックから構成される。
【0018】
(ストライプ番号)
パーティション上に並んでいる物理ストライプの通し番号を意味する。
【0019】
(論理ブロック番号=論理アドレス番号)
「論理ブロック番号」とは、上位ファイルシステムから見た時のディスクパーティション上のデータブロック番号である。ディスク制御システム方式では、上位ファイルシステムがアクセスを要求する時のブロック番号は、論理ブロック番号であり、仮想的なブロック番号である。この論理ブロック番号は、ディスク制御システムが管理する「アドレス変換テーブル」によって物理ブロック番号(物理パーティション上の物理的なブロック番号)と対応づけられる。(物理ブロック番号)×(ブロックサイズ[バイト])よりパーティション上でのバイトオフセット値(アドレス)が求まる。
【0020】
(アドレス変換テーブル:AMT(Address Mapping Table))
ディスク制御システム方式では、上位ファイルシステムがアクセスを要求する時のブロック番号は、論理ブロック番号であり、仮想的なブロック番号である。この論理ブロック番号はディスク制御システムが管理する「アドレス変換テーブル」によって物理ブロック番号(物理パーティション上の物理的なブロック番号)と対応づけられる。本発明の実施形態では、アドレス変換テーブルは、対象パーティション上に有り、データ部と別の領域が割り当てられる。アドレス変換テーブルは、論理ブロック番号に対する物理ブロック番号が登録されたれたテーブルである。新たにデータブロックを書き込む時には、相当する論理ブロック番号のエントリに、そのブロックを書き込む物理ブロック番号(=ディスク上のアドレス)を登録する。また、データブロックを参照する際には、その論理アドレスをインデックスとするエントリの値を求め、その値をディスク上の物理ブロック番号として実際のアドレスを求め参照する。
【0021】
以下、図面を参照して本発明の実施形態について説明する。
図1には、本発明の一実施形態に係るディスク制御システムを適用した計算機システムの構成が示されている。この計算機システムは、例えばサーバ(PCサーバ)として利用されるものであり、複数のCPU(#1、#2、#N)11を搭載することが出来る。これら各CPU11は図示のようにプロセッサバス1を介してブリッジ12に接続されている。ブリッジ12はプロセッサバス1とPCIバス2を双方向で接続するためのブリッジLSIであり、ここには主メモリ13を制御するためのメモリコントローラも内蔵されている。主メモリ13には、オペレーティングシステム(OS)、実行対象のアプリケーションプログラム、およびドライバなどがロードされている。また、本発明では、主メモリ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構成のディスクアレイとして機能する。この場合、ディスクアレイ18は、データ記憶用のN台のディスク装置にパリティ記憶用のディスク装置を1台付加したN+1台(ここでは、DISK0〜DISK4の5台)のディスク装置から構成される。これらN+1台のディスク装置はグループ化され、単一の論理ディスクドライブとして使用される。
【0028】
グループ化されたディスク装置には、図示のように、データ(DATA)とそのパリティ(PARITY)とから構成される物理ストライプ(パリティグループ)が割り当てられ、かつ、パリティ位置は物理ストライプ毎にN+1台のディスク装置間で順に移動される。例えば、物理ストライプS0では、DISK0〜DISK3それぞれの同一位置に割り当てられたストライプ上のデータ(DATA)群のパリティ(PARITY)は、DISK4の対応するストライプ上に記録される。また、物理ストライプS1においては、そのストライプS1のデータに対応するパリティ(PARITY)は、DISK3の対応するストライプ上に記録される。このようにパリティを物理ストライプ単位でN+1台のディスク装置に分散させることによって、パリティディスクへのアクセス集中を防止するように構成されている。
【0029】
主メモリ13のドライバ作業領域17は、RAID高速化ドライバの実現のために使用される作業領域である。RAID高速化ドライバは、ディスクアレイ18に対する書き込み性能を向上させるために用いられる。本実施形態においては、OSファイルシステム50には改良を加えず、OSに組み込んで用いられるドライバプログラムとドライバ作業領域17とによってRAID高速化ドライバが実現されている。ここで、図2を参照して、RAID高速化ドライバによるディスクアレイ18の書き込み制御の原理について説明する。
【0030】
OSファイルシステム50と物理ディスク(ディスクアレイ18)の間に位置するフィルタドライバとしてRAID高速化ドライバ100が設けられる。RAID高速化ドライバ100は、ファイルシステム50からのライトリクエストに対して、▲1▼アドレス変換を行い、書き込み先物理アドレス(RAID上の論理パーティション内アドレス)を書き込み対象データストライプの次の空き領域とし、実際に書き込む機能、▲2▼ライトリクエストの書き込み先アドレスをAMTキャッシュ172に登録する機能を有する。
【0031】
このRAID高速化ドライバ100は、OSファイルシステム50からのライトリクエストに対して、そのリクエストされた論理アドレスを物理アドレスにAMTキャッシュ172を用いて変換し、(例え、ターゲットアドレスが連続していない一連のライトリクエストに対しても)ディスクアレイ18に形成されるデータストライプに転送された書き込みデータを書き込む。このデータストライプを構成するディスク上の連続したアドレスである連続領域は、ディスクに効率良く書き込めるアライン、及びサイズである。このアライン、サイズはディスクを直接操作するドライバやRAIDコントローラ16に依存して決まる。特に、書き込み対象のディスクアレイ18がRAID5で構成されている場合には、上記連続領域が「パリティグループ」、あるいはその整数倍である。
【0032】
RAID高速化ドライバ100を使用した書き込み方式では、ホスト計算機(本実施形態ではOSファイルシステム50)から書き込み要求された論理アドレスに従ってデータ書き込み位置を決定するのではなく、ホスト計算機から書き込み要求された順番で書き込みデータを順次蓄積することによって複数の書き込みデータブロックから構成される大きなデータブロックを構成し、その大きなデータブロックを一括してディスクアレイ18の空き領域に上から順番に「まとめ書き」する。「まとめ書き」の単位は物理ストライプである。つまり、「まとめ書き」の度に1つの空き物理ストライプを生成し、そこに1物理ストライプ分のデータブロックがシーケンシャルに書き込まれる。これにより、ランダムなアクセスをシーケンシャルなアクセスに変換することが出来、書き込み性能を大幅に向上させることができる。しかしながら、本発明では、上記の「まとめ書き」による一括書き込みに限定されず、OSファイルシステム50からのライトリクエスト単位、又は複数のライトリクエスト単位に応じて書き込み処理を実行しても良い。
【0033】
図2では、上記した「まとめ書き」による書き込み動作が示されている。OSファイルシステム50から送られてくる書き込みデータのブロックデータサイズが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を使ってRAID高速化ドライバ100によるディスクアレイ18への書き込み動作について説明する。この図3は、上位のファイルシステム50から送られてきたライトリクエストReq1,Req2,Req3,Req4,‥‥をRAID高速化ドライバ100が処理する様子を示している。
【0036】
なお、図3では、1つのディスクに対して書き込み/参照処理をしているように示されているが、図3のディスク180は論理的なものであり、実際には図1又は図2に示すように複数の物理ディスク(DISK0〜DISK4)から構成されるRAID構成をとっているものとする。そして、ディスク180全体が1つのパーティションを構成している様子を示している。
【0037】
図3において、ディスク180のパーティション内は、アドレス変換テーブル領域(以下、AMT領域と称する)18aと、ストライプIDログ領域18b1、論理アドレスログ領域18b2から成る管理データ領域18bと、データ領域18cに分けて管理されている。
【0038】
例えば、現在の書き込み対象の物理データストライプがデータ領域18cの「ストライプ34」であると想定する。RAID高速化ドライバ100は、書き込み対象データストライプ34に対して全ての領域に書き込みデータが割り当てられた時点で、新しい空ストライプが次の書込み対象ストライプとして割り当てる。以降、ライトリクエストデータのライト処理は、新たに割り当てたストライプの領域に対して行うようになる。
【0039】
RAID高速化ドライバ100は、OSファイルシステム50からのライトリクエストReq1,Req2,Req3,Req4,‥に対して、ライトバッファ171に記憶したデータをディスク180のデータ領域18cのストライプ34に書き込むと共に、AMTキャッシュ172にライトした実際の物理アドレスを登録する。また、OSファイルシステム50からのリード要求に対しては、AMTキャッシュ172を参照して、指定された論理アドレスに対する物理アドレスを求め、ディスク180からその物理アドレスをリードした結果のデータをOSファイルシステム50に返す。
【0040】
データ領域18cの各データストライプの最後の1ブロックには「TAG領域」TAGが設けられる。各ストライプへの書き込みに際して、このTAG領域に、そのデータストライプに関して、▲1▼そのデータストライプを書き込んだ時刻(あるいは書込みに関するシーケンス番号としてのタイムスタンプTS)、▲2▼有効データブロックに関してデータストライプの各ブロックの論理アドレスが記録保存されている。
【0041】
また、データストライプへの書き込みに際し、管理データ領域18bの論理アドレスログ領域18b2には、現在書き込み中のデータストライプに書き込んだデータブロックの「論理アドレス」がデータブロック毎に記録される。
【0042】
また、管理データ領域18bのストライプIDログ領域18b1には、書き込み対象データストライプとして選んだストライプIDが時系列順に記録される。この例では、ストライプID「34」の書き込みの前に、ストライプID「31」の書き込みが行なわれたことが分かる。
【0043】
図3の上部には、主メモリ13上に確保したドライバ作業領域17が示されている。この図3では、この領域17にライトバッファ171、およびAMTキャッシュ172の2つの領域が確保されていることを示している。AMTキャッシュ172は、AMT領域18aに記憶されるアドレス変換テーブルの一部が記憶されており、システム稼働中はこのAMTキャッシュ172がアクセスされる。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高速化ドライバ100は、AMTキャッシュ172を参照、または変更する場合には、決められた固定サイズ(たとえば4KB)の単位でAMT領域18aからAMTキャッシュ172に読み込んで、主メモリ13上で参照、または変更を行う。変更を行った場合には、そのキャッシュされたAMTキャッシュ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(この例では、ストライプ34)を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が、Req3の1ブロックデータに対応してV=60が、Req4の4ブロックデータに対応してV=79,80,81,82が書き込まれる(ステップS408)。なお、上記したステップS407、408で発行したI/O要求は非同期に処理される。
【0052】
次に、書き込み対象データストライプ34に空き領域が有るか否かが調べられる(ステップS409)。空き領域が無い場合、つまり書き込み対象データストライプ34の全容量分の書き込みデータが揃った場合には、TAG情報(対象データストライプ34に書き込んだブロックの論理ブロック番号テーブル)の書き込みI/O要求を発行する(ステップS410)。TAG情報は原則として、ディスク180上のどこに配置しても良いが、この実施例ではデータストライプ34の1つのブロックとして存在している。ステップS410のTAG情報の書き込み処理は非同期に行われる。そして、その書き込み対象データストライプ34に書き込んだデータブロックのTAG情報をAMTキャッシュ172に登録してAMTキャッシュを更新する(ステップS411)。この処理についてもAMTキャッシュ172の操作にI/O要求が伴う場合があり、非同期に処理が行われる。一方、ステップS409において、書き込み対象データストライプ34に空き領域が有る場合には、上記ステップS410、S411の処理をせず、ステップS412に進む。
【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)では、完了したデータ書き込みに対応する論理アドレスログ番号の書き込み処理が完了しているか否かをチェックし(ステップS501)、一方、論理アドレスログ書き込み完了(I/O完了処理2)では、完了した論理アドレスログの書き込みに対応するデータ書き込み処理が完了したか否かをチェックする(ステップS510)。それらの書き込みが完了していれば、元々のライトリクエストReqiに関して、全てのデータ書き込みと、論理アドレスログの書き込みとが完了しているか否かをチェックする(ステップS502)。それらが完了していれば、OSファイルシステム50にライトリクエストReqiに対するディスクへの書き込みが全て完了したことを通知する(ステップS503)。即ち、全ての書き込みブロックがデータストライプ34に書き込まれ、かつ、それらのブロックの論理アドレス情報が論理アドレスログ領域18b2に書き込まれた時点で、RAID高速化ドライブ100はライトリクエストReqiの完了通知をリクエスト発行元のOSファイルシステム50に通知する。
【0057】
図6は、図4のステップS410における、TAG書き込みI/O要求の完了実行処理の動作を示すフローチャートである。TAG書き込みI/O要求の完了実行処理(I/O完了処理3)では、TAG書き込みI/O要求処理が終ったストライプ34に割り当てた論理アドレスログ領域を開放して(ステップS600)、TAG情報の書き込みを終了する。
【0058】
上記した第1の実施形態によれば、本来、ランダムライトリクエストに関して、ディスク上には物理的に離れた領域に書き込みが起こり、ディスクのシークや回転待ちによる性能低下があった。本発明によれば、不揮発性メモリの代わりに、ディスク上に設けられたAMT領域18a(主メモリ上のAMTキャッシュ172を含む)、管理データ領域18b、データ領域18cを用いることにより、ランダムライトが物理的に連続した領域への書き込みとして実行することが出来る。したがって、シーク/回転待ちが少なくなり、結果として高速な書き込み処理が実現される。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の処理によってTAG書き込みが完了した時点で、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が処理している未完了のライトリクエスト数を変数(Outstanding Req Count)で管理することにより実現する。Outstanding Req Countは初め「0」で初期化されているものとする。
【0070】
図7において、OSファイルシステム50からのライトリクエストReqiを受信すると(ステップS701)、RAID高速化ドライバ100はそのライトリクエストReqiを変数としてOutstanding Req Countに登録する(ステップS702)。つまり、変数Outstanding Req Count(カウンタ値)の内容が+1される。そして、Outstanding Req Countの値がある定数「A」より多いか否かがチェックされ(ステップS703)、定数「A」より少ない場合には、そのライトリクエストReqiはステップS704に進み、図4で示したライトリクエストReqiのI/O要求の発行処理(図4のステップS407)が実行される。
【0071】
一方、Outstanding Req Countがある定数「A」より大きい場合には、そのライトリクエストReqiは一旦保留(ペンディング)され、ペンディングリクエストキューPListに入れられる(ステップS705)。ペンディングリクエストキューPListに入れられたライトリクエストReqi(複数登録可能)は、以下の条件が満たされた時に一まとめにされて書き込み処理が行われる。
(ペンディングされたライトリクエストのI/O要求発行条件)
a)ペンディングしているリクエストReqiの数Pcountが定数「B」以上になった(ステップS707のチェック)。
b)ペンディングしているリクエストReqiのデータサイズPsizeの合計が定数「C」以上になった(ステップS708のチェック)。
c)ペンディングしているリクエストReqiのデータサイズPsizeの合計が現在の書込み対象データストライプの残りの空き領域を越えた(ステップS709のチェック)。
d)タイマ関数TimerRoutine()が指定時間を経過して起動された(ステップS710のチェック)。
【0072】
ここでタイマ関数TimerRoutine()とは、時間と関数を指定すると、指定した時間が経過した時点で指定した関数を実行してくれるOS(オペレーティングシステム)のサービスで登録した関数のことである。この場合、例えば「30ms時間後に指定する関数TimerRoutine()を実行せよ」というようにOSに登録する。ステップS710でセットするタイマ関数TimerRoutine()の処理は図8に示している。
【0073】
上記の条件a)〜d)を判定するために、図7では以下の変数で管理している。
ペンディングリクエストの数 ・・・ Pcount
ペンディングリクエストのデータサイズの合計 ・・・ Psize
【0074】
上記した条件a)〜 d)のいずれかが満たされた場合には(ステップS707のYes、又はS708のYes、又はS709のYes、又はS710)、変数Pcount、Psizeを0クリアする(ステップS711、S712、図8のステップS801、S802)。さらにタイマ関数Timer Routine()がセットされているか否かがチェックされ(ステップS713)、タイマ関数Timer Routine()がセットされていればそれをリセットする(ステップS714)。そして、ペンディングリストPListのライトリクエストを1つのライトリクエストWReq として、図4のステップS407の手順に従ってライト処理を行なう(ステップS715、図8のステップS803)。
【0075】
なお、ここで、ペンディングリストPListにつながっているリクエストをまとめた WReq の書き込み対象データストライプ(例えばストライプ34)へのデータ書き込みは、それを構成する複数のライトリクエスト毎にはライトせず、一まとめにして1つのライトリクエストで書き込む。また、論理アドレスログ領域18b2への書き込みに関しても、WReq全体に関して1回の書き込みとする。これらの完了時処理を図9に示す。
【0076】
図9において、RAID高速化ドライバ100はライトリクエストReqiに関して、データ書き込み完了(I/O完了処理1)では論理アドレスログ番号の書き込み処理が完了しているか否かをチェックし(ステップS901)、一方、論理アドレスログ書き込み完了(I/O完了処理2)ではデータ書き込み処理が完了したか否かをチェックする(ステップS910)。それらの書き込みが完了していれば、元々のライトリクエストReqiに関して全てのデータ書き込みと論理アドレスログの書き込みが完了しているものとしてOSファイルシステム50にI/O完了を通知する(ステップS902)。そして、Outstanding Req Countの値から完了したライトリクエストReqiを引いた値をOutstanding Req Countの値として更新記録して、処理を終了する(ステップS903)。
【0077】
この第3の実施形態の具体的な動作の例について、図10〜図11を用いて説明する。先ず、以下の動作例では、RAID高速化ドライバ100にOSファイルシステム50からライトリクエストReqiがマルチストリームで並行して多数到来してきている状況とする。図10(a)は、この内4つのライトリクエストReq1〜Req4が到来したところを示している。なお、この時点で、RAID高速化ドライバ100は既に複数のライトリクエストを処理中であり、これらリクエスト到着時には既にOutstanding Req Count≧Aの条件を満たしているものとする。即ち、図7のステップS703がYesの条件で進む。
【0078】
図10(a)で、各ライトリクエストReq1〜Req4について、ライトサイズ、論理ブロック番号を示した。なお、ここではRAID高速化ドライバ100のデータ管理単位は2KBであるとし、OSファイルシステム50からの書き込みアドレスは、書き込み先の論理ブロック番号で示している。例えば、論理ブロック番号100とは、論理アドレス(OSファイルシステムが指定した書き込み先アドレス)で100×2KB=200KBのアドレスを意味する。また、ライトリクエストReq1は書き込み先の論理アドレス番号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で示した手順によりディスク180にライト処理される。この時、ライトリクエストWReqによる20KBのデータが書き込み対象データストライプ(例えばストライプ34)の残りの空き領域に入りきらない場合には、その空き領域に入るサイズ(例えば、10KB)で切り、その単位で処理する。残りの10KBは、別な空き領域のストライプに、別なもう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▼一定以上の個数のライトリクエストが新たに到着した。▲2▼到着したライトリクエストのライトサイズの合計が、一定サイズを越えた。▲3▼到着したライトリクエストのライトサイズの合計が、現在書込み対象になっているストライプの残り空領域のサイズを越えた。▲4▼一定時間が経過した。の場合に、それまでペンディングしていたライトリクエストのデータを1まとめにして対象のストライプに書き込む。同時に書き込むデータブロック(複数)の論理アドレスログ情報をまとめて1回の書込みとして「論理アドレスログ領域」に書き込む。
【0084】
この結果、複数のライトリクエストが1度のデータライト処理と1度の論理アドレスログ情報の書き込み処理となる。各データリクエストの開始は遅れるが、書き込み処理回数が減り、書き込みサイズが大きくなることでディスクへのトータルとして書込みオーバヘッドが小さくなり、結果的に書き込み処理のスループット向上を実現できる。
【0085】
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。
この第4の実施形態では、論理アドレスログ領域18b2に論理アドレスログ情報のみならず、書き込みデータサイズおよびチェックサムを併せて記録するものである。図12は、ライトリクエストReq1のライトデータaに対して、書き込み対象データストライプ34に対応する論理アドレスログ領域18b2に、
▲1▼論理アドレス V=100、101
▲2▼ライトサイズ Size=4KB
▲3▼チェックサム ChkSum=0x16f92aab
を書き込む様子を示している。このチェックサムChkSumは、ライトデータaを4バイト単位で加算した結果の値である。このように、ライトデータサイズおよびそのチェックサムを論理アドレスログ領域に記録することにより、障害回復を容易にする。
【0086】
即ち、ディスク18のデータ領域18cへのデータ書き込み中にシステムの障害が発生した場合には、書き込み処理途中のストライプに関して、その論理アドレスログ領域18b2に書き込まれているチェックサム値とデータ領域18cのデータから求めたチェックサム値とが一致するか否かを確認チェックする。一致した場合には、データ書き込みが完了していたと判断し、データを有効とみなし残りの処理(アドレス変換テーブルへの登録等)を行い、書き込み処理を完了させる。一致しなかった場合には、書き込みは完了しなかったとみなし、そのデータを捨てる。
【0087】
(第5の実施形態)
次に、第5の実施形態について説明する。
第5の実施形態では、ライトデータaを書き込み対象データストライプ34に書き込むだけでなく、論理アドレスログ領域18b2にも論理アドレスログ情報と一緒に書き込むものである。
【0088】
図13は、この第5の実施形態による論理アドレスログ領域18b2への書き込みデータの構成を示している。即ち、論理アドレスログ領域18b2には、
▲1▼論理アドレス V=100、101
▲2▼ライトサイズ Size=4KB
▲3▼チェックサム ChkSum=0x16f92aab
▲4▼ライトデータa(4KB)
が書き込まれる。実際には上記した▲1▼〜▲4▼は1つのライトI/O要求で処理するものであり、これによりオーバヘッドを減らすことができる。
【0089】
図14は、この第5の実施形態によるRAID高速化ドライバ100の動作手順を示すフローチャートである。OSファイルシステム50からライトリクエストReqi(i=1,2,3,4‥)が入力され、そのライトリクエストReqiは、論理アドレスaddriから始まる2KB単位のライトブロックデータB0〜Bnからなるものとする(ステップS1401)。
【0090】
このライトリクエストReqiに対して、空き領域を有するデータストライプが、書込み対象ストライプとして割り当てられているか否かがチェックされ(ステップS1402)、割り当てられていなければディスク上の空ストライプを1つ選択する(ステップS1403)。そして、データストライプと同じサイズのバッファWBを主メモリ13上に確保する(ステップS1404)。バッファWBはライトバッファ171に確保される。割り当てられたストライプIDをIDkとして、管理データ領域18bのストライプIDログ領域18b1に次のエントリとして書き込む(ステップS1405)。ストライプIDログ領域18b1には、書き込み対象に選ばれたストライプのIDが時系列順に記録(31,34,…)されていく。
【0091】
次に、管理データ領域18bの論理アドレスログ領域18b2を割り当てる(ステップS1406)。書き込み対象データストライプ(例えば、ストライプ34)中の次の空き領域に、まだライト領域を割り当てていないデータストライプBjのための領域を可能な限り確保する(ステップS1407)。
【0092】
RAID高速化ドライバ100は、このステップS1407で確保したサイズのデータを主メモリ13に用意したバッファWBにコピーする(ステップS1408)。バッファWBは、ストライプ領域に等しい大きさを持った主メモリ13上に確保したライトバッファである。
【0093】
次に、ステップS1409では図13のように、▲1▼論理アドレス情報と▲2▼ライトデータを1つのライトI/O要求によって論理アドレスログ領域18b2に書き込む。そして、データストライプに空き領域がなく、ストライプに対する書込みデータがバッファWBで全て揃った場合には(ステップS1410)、バッファWBの内容を書き込み対象データストライプ34に一括ライトするI/O要求が発行され、ディスク180の書き込み対象データストライプ34に書き込まれる(ステップS1411)。また、その書き込み対象データストライプ34に書き込んだTAG情報をAMTキャッシュ172に登録して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)はステップS1411の書き込み対象データストライプにおける完了処理(I/O完了処理1)であり、書き込みが完了したライトリクエストReqiの「完了」をOSファイルシステム50に通知する(ステップS1501)。一方、図15(b)はステップS1409の論理アドレスログ領域18b2への書き込み完了処理(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)エントリ書き込み時に、特定の文字列(signature)をエントリの領域の最初と最後に入れておき、読み出し時にチェックする。
(y)エントリ全体のチェックサムを計算して記録する。
(z)ターゲットのストライプIDを記録して、論理ストライプログ領域18b2の先頭のブロックに記録されるストライプIDとの一致を確認する。
等して、各エントリのデータ整合性を確認すれば良い。
【0099】
上記した処理を、図16のフローチャートに示す。なお、書き込み方式は第1の実施形態の方式であることを前提として説明する。
【0100】
ステップS1601では、論理アドレスログ領域18b2を参照して使用中のものが有るか確認する。論理アドレスログ領域18b2が使用中か否かの判断は、例えば図17に示すように、予め、論理アドレスログ領域18b2の先頭(ヘッダ部)に、使用中を示すフラグ(Valid)を設け、論理アドレスログ領域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が論理アドレスログLA1のタイムスタンプ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=CS0’,CS1’を求める。
【0104】
ステップS1609では、チェックサムChkSum0とChkSum1(CS0とCS0’、およびCS1とCS2’)を比較して等しいか否かを判断する。その比較結果が一致するブロックについては正しいデータであると判断し、ステップS1610でデータストライプ34のTAG領域にその論理ブロック番号を登録する。図18は、このようにして、エントリE0、E1までの5データブロックを処理した時点のTAG領域の状態が示されている。なお、ここではデータストライプ34の先頭ブロックの物理ブロック番号が2000であると仮定している。そして、ステップS1611で、変数k=k+1とし、更にステップS1612にてk≦N(Nはデータストライプを構成するデータブロック数)の比較を行なう。
【0105】
論理アドレスログLA2の全てのエントリに付いて、ステップS1607〜S1612の処理を終えたら、TAG情報が完成する。そして、ステップS1613およびS1614にて、TAG情報を本来のアドレスに書き込み(ストライプ34の場合、一番最後の物理ブロック)、同じ内容をAMTキャッシュ172に登録してAMTキャッシュ172を更新する。最後にS1615で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 (28)

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

Families Citing this family (82)

* 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
US20070250737A1 (en) * 2005-09-13 2007-10-25 Agere Systems Inc. Method and Apparatus for Aligned Data Storage Addresses in a Raid System
US8521955B2 (en) 2005-09-13 2013-08-27 Lsi Corporation Aligned data storage for network attached media streaming systems
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 시스템의 입출력성능 향상 방법
JP2008009829A (ja) * 2006-06-30 2008-01-17 Fujitsu Ltd ストレージ制御プログラム、ストレージ制御装置、ストレージ制御方法
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
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
JP2010511963A (ja) * 2006-12-08 2010-04-15 サンドフォース インコーポレイテッド 複数のストレージデバイスでのデータ冗長性
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
KR101447188B1 (ko) 2007-07-31 2014-10-08 삼성전자주식회사 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
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
US9311184B2 (en) * 2010-02-27 2016-04-12 Cleversafe, Inc. Storing raid data as encoded data slices in a dispersed storage network
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
US9003153B2 (en) * 2010-11-08 2015-04-07 Greenliant Llc Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system
US10817502B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
US10817421B2 (en) * 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
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
JP2013020504A (ja) * 2011-07-12 2013-01-31 Nec Corp ディスクアレイ装置、論理ディスク制御方法および制御プログラム
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
TWI521343B (zh) 2011-08-01 2016-02-11 Toshiba Kk An information processing device, a semiconductor memory device, and a semiconductor memory device
JP5762930B2 (ja) * 2011-11-17 2015-08-12 株式会社東芝 情報処理装置および半導体記憶装置
US8769196B1 (en) * 2011-09-30 2014-07-01 Lenovo (Singapore) Pte. Ltd. Configuring I/O cache
JP5884602B2 (ja) * 2012-03-30 2016-03-15 富士通株式会社 ストレージ制御装置、およびストレージシステム
US9779035B1 (en) 2012-08-08 2017-10-03 Amazon Technologies, Inc. Log-based data storage on sequentially written media
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US8805793B2 (en) 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
US9830111B1 (en) 2012-08-08 2017-11-28 Amazon Technologies, Inc. Data storage space management
US9225675B2 (en) 2012-08-08 2015-12-29 Amazon Technologies, Inc. Data storage application programming interface
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
US10120579B1 (en) 2012-08-08 2018-11-06 Amazon Technologies, Inc. Data storage management for sequentially written media
CN104704569B (zh) * 2012-12-19 2017-11-14 慧与发展有限责任合伙企业 Nvram路径选择
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
JP6367704B2 (ja) * 2014-12-25 2018-08-01 株式会社バイオス 記憶制御システム及び記憶制御装置
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
CN111435286B (zh) * 2019-01-14 2023-12-05 深圳市茁壮网络股份有限公司 一种数据存储方法、装置和系统
CN112732163B (zh) * 2019-10-14 2023-02-03 成都华为技术有限公司 一种数据校验方法和装置
CN111026335A (zh) * 2019-12-12 2020-04-17 天地伟业技术有限公司 一种优化存储性能提升硬盘兼容性的方法
US20230068324A1 (en) * 2021-08-30 2023-03-02 Micron Technology, Inc. Direct logical-to-physical address mapping
CN116339646B (zh) * 2023-05-30 2023-08-11 西安中飞航空测试技术发展有限公司 飞行试验数据存储方法、装置、设备及存储介质

Family Cites Families (11)

* 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
JPH1153235A (ja) * 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
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 ディスク記憶システム及び同システムに適用するデータ更新方法
JP2000047832A (ja) * 1998-07-27 2000-02-18 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

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3592640B2 (ja) ディスク制御システムおよびディスク制御方法
US5701516A (en) High-performance non-volatile RAM protected write cache accelerator system employing DMA and data transferring scheme
US8977781B1 (en) Computer system
US20160342545A1 (en) Data memory device
JP4186602B2 (ja) ジャーナルログを利用した更新データ書込方法
US5446855A (en) System and method for disk array data transfer
US6341342B1 (en) Method and apparatus for zeroing a transfer buffer memory as a background task
JP3590381B2 (ja) ディスクアレイ装置及び同装置におけるデータ更新方法
US8131969B2 (en) Updating system configuration information
US7100074B2 (en) Storage system, and control method, job scheduling processing method, and failure handling method therefor, and program for each method
US8719524B2 (en) Storage system including flash drives for improving performance by controlling data caching
US20080294698A1 (en) Foresight data transfer type hierachical storage system
US6148369A (en) Method and apparatus for providing logical devices spanning several physical volumes
EP2220551A1 (en) Improved system and method for efficient updates of sequential block storage
US9916249B2 (en) Space allocation in a multi-grained writeback cache
US7032093B1 (en) On-demand allocation of physical storage for virtual volumes using a zero logical disk
CN100351767C (zh) 适配器读取和写入系统存储器的方法和系统
US20110082950A1 (en) Computer system and computer system input/output method
US9189407B2 (en) Pre-fetching in a storage system
JP4053208B2 (ja) ディスクアレイ制御装置
US7484038B1 (en) Method and apparatus to manage storage devices
EP3293625B1 (en) Method and device for accessing file, and storage system
WO2017072868A1 (ja) ストレージ装置
US10282301B2 (en) Method and system for hardware accelerated read-ahead caching
US20050038958A1 (en) Disk-array controller with host-controlled NVRAM

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