JP2004102823A - Write-through processing method, program for write-through processing, and disk controller for redundant logical disk - Google Patents

Write-through processing method, program for write-through processing, and disk controller for redundant logical disk Download PDF

Info

Publication number
JP2004102823A
JP2004102823A JP2002265855A JP2002265855A JP2004102823A JP 2004102823 A JP2004102823 A JP 2004102823A JP 2002265855 A JP2002265855 A JP 2002265855A JP 2002265855 A JP2002265855 A JP 2002265855A JP 2004102823 A JP2004102823 A JP 2004102823A
Authority
JP
Japan
Prior art keywords
stripe
data
mode
write
mirroring
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
JP2002265855A
Other languages
Japanese (ja)
Other versions
JP3730609B2 (en
Inventor
Masaharu Takayama
高山 雅陽
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 JP2002265855A priority Critical patent/JP3730609B2/en
Publication of JP2004102823A publication Critical patent/JP2004102823A/en
Application granted granted Critical
Publication of JP3730609B2 publication Critical patent/JP3730609B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To accelerate write-through processing for a redundant logical disk. <P>SOLUTION: When writing data by write-through processing, a vacant field in a stripe of a mirroring mode is retrieved (S2), and data are written in the vacant filed by means of the mirroring mode (S3). <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、複数の物理ディスクから構成される冗長性を持つ論理ディスク(ディスクアレイ)を制御するディスクコントローラに係り、特にホストから要求されたライトデータをライトスルーで当該論理ディスクに書き込むための冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラに関する。
【0002】
【従来の技術】
安価で信頼性の高い大容量記憶装置を実現する手段として、複数のディスク(ディスク装置)から構成されるディスクアレイが知られている。このディスクアレイは、当該ディスクアレイを利用するホストからは、1つのディスク(ディスク装置)として見える。そのため、ディスクアレイは論理ディスク(論理ディスク装置)とも呼ばれる。また、ディスクアレイを構成するディスク(ディスク装置)は、物理ディスク(物理ディスク装置)とも呼ばれる。
【0003】
ディスクアレイは一般に、高信頼性化のために、RAID(Redundant Array of Independent DisksまたはRedundant Array of Inexpensive Disks)に代表されるように、冗長データとしての例えばパリティデータにより冗長性を持たせたディスク構成、いわゆる冗長化ディスク構成を適用している。ディスクアレイには、ホストからの要求を受けて当該ディスクアレイのアクセスを制御する、例えば特開平11−53235号公報に記載されたディスクコントローラ(ディスクアレイコントローラ)が接続されている。この公報に記載のディスクコントローラは、ディスクアレイのアクセス(ディスクアクセス)、例えばランダムライトのディスクアクセスを高速化するために次の手法を適用している。即ち、公報記載のディスクコントローラでは、ホストから要求されたライトデータをキャッシュメモリ上に蓄積し、一定量に達した際に、蓄積されていたデータをディスクアレイ上の連続する空き領域に書き込む手法を適用している。ここでは、ホストから要求されたアドレス(論理アドレス)と実際にデータが書かれているディスクアレイ上のアドレス(物理アドレス)との対応をアドレス変換マップで管理している。
【0004】
【発明が解決しようとする課題】
上記した、ランダムライトのディスクアクセスの高速化手法は、いわゆるライトバック技術に属するものである。ここでは、ホストから要求されたライトデータが、ディスクコントローラ上のキャッシュメモリに書かれた時点で、ホストから要求されたライト動作の完了が当該ホストに通知される。
【0005】
一方、ランダムライトのディスクアクセスの高速化手法を採用したシステムにおいて、一層の高信頼性化のために、ホストから要求されたライトデータを直接ディスク(ディスクアレイ)に書くライトスルーでの運用が要求されることがある。ここでは、ディスクにデータが書かれた時点で、ホストから要求されたライト動作の完了が当該ホストに通知される。
【0006】
しかしながら、ライトスルーでの運用の方法は、システムの性質上、定義されていない。また、ライトスルー処理は、ライトバック処理に比べて低速であるため、高速化が要求されている。
【0007】
本発明は上記事情を考慮してなされたものでその目的は、冗長化論理ディスクに対するライトスルー処理が高速化できる冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラを提供することにある。
【0008】
【課題を解決するための手段】
本発明の1つの観点によれば、複数の物理ディスクにより構成され、パリティまたはミラーリングのいずれかのモードでデータが保持されるストライプを単位に管理される冗長化論理ディスクに対し、ライトスルーでデータを書き込むための方法(ライトスルー処理方法)が提供される。この方法は、ホストから要求されたデータのライトスルーでの書き込みに際し、上記ミラーリングモードのストライプの空き領域を探索するステップと、この探索されたミラーリングモードのストライプの空き領域に上記ミラーリングモードでデータを書き込むステップとから構成される。
【0009】
このように、上記の構成においては、各ストライプにデータを保持するモードとして、パリティモードとミラーリングモードの2通りを用意し、そのいずれかのモードが動的に設定可能なようにしている。パリティモードのストライプには、データ領域とパリティ領域とが割り当てられる。通常、パリティ領域には、上記論理ディスクを構成する複数の物理ディスクのうちのいずれか1つの物理ディスクの領域が割り当てられる。データ領域には、残りの物理ディスクの領域が割り当てられる。これに対し、ミラーリングモードのストライプには、上記複数の物理ディスクのうちの少なくとも1組の1対の物理ディスクの領域がミラーリングでデータを保持するためのデータ領域(ミラーリング領域)として割り当てられる。
【0010】
ここで、ライトスルーでのデータ書き込みに際しては、ミラーリングモードのストライプの空き領域が探索されて、その空き領域にミラーリングモードでデータが書き込まれる。もし、パリティモードでライト処理を実行するならば、パリティ生成のためにディスクからのリード処理が必要である。しかしながら、上記のように、ミラーリングモードでデータを書き込むならば、パリティ生成が不要となるため、冗長性を確保しながら、上記リード処理のオーバヘッドをなくすことができる。これによりライトスルー処理の高速化が可能となる。また、どのストライプもミラーリングモードに設定可能なため、ホストからのライト要求が多い場合でもミラーリングモードのストライプを増やすことにより迅速に対応可能である。
【0011】
ここで、上記の構成に、以下のステップ、即ち、ミラーリングモードのストライプを探索するステップと、この探索されたミラーリングモードのストライプのデータをパリティモードのストライプのデータに変更するステップとを追加するとよい。このようにすると、ストライプの領域を無駄なく利用できるようになる。よって、ライトスルーでの書き込みをミラーリングモードで行う結果、ミラーリングモードのストライプが一時的に増加しても、そのことによる記憶容量への影響を軽減できる。ここで、上記ミラーリングモードのストライプを探索するステップと、この探索されたミラーリングモードのストライプのデータをパリティモードのストライプのデータに変更するステップとを、空きストライプが予め定められた数を下回った場合を含む条件のうちの予め定められた条件の成立時に実行する構成とするとよい。このように、予め定められた条件の成立時に上記両ステップを実行してストライプの領域を無駄なく利用することにより、常に空きストライプを確保すること、つまりミラーリングモードに適用可能なストライプを確保することが可能となる。
【0012】
また、上記の構成に以下のステップ、即ち、ミラーリングモードのストライプの空き領域が見つからなかった場合に、空きストライプを探索するステップと、上記探索された空きストライプを構成する上記複数の物理ディスクの領域のうち、相対的に高速アクセスが可能なミラーリング用の1対の物理ディスクの領域を空き領域として選択するステップとを追加し、上記ミラーリングモードでデータを書き込むステップでは、上記探索された空きストライプ中の上記選択された物理ディスクの領域にミラーリングモードでデータを書き込むようにするとよい。
【0013】
このように、ミラーリングモードでのデータ書き込みに加えて、相対的に高速アクセスが可能なミラーリング用の1対の物理ディスクの領域を選択することで、物理ディスクへの負荷分散の最適化が行えるため、ライトスルー処理の一層の高速化が可能となる。相対的に高速アクセスが可能な物理ディスクは、(1)その時点において入出力アクセスの少ない物理ディスク、または(2)相対的に性能の良い物理ディスク、または(3)各物理ディスクの現在のヘッド位置から、空きストライプ中の該当する物理ディスクの領域にヘッドをシークするのに要する時間がより短くて済む物理ディスクである。
【0014】
また、上記の構成に以下のステップ、即ち、ホストからのリード要求で指定された論理アドレスのデータがミラーリングモードのストライプに存在する場合に、そのデータが書き込まれている当該ストライプ中の1対の物理ディスクの領域のうち、相対的に高速アクセスが可能な物理ディスクの領域をリード対象として選択するステップを追加するとよい。
【0015】
ここで、ホストからのリード要求で指定された論理アドレスのデータがミラーリングモードのストライプに存在する場合に、そのデータが書き込まれている当該ストライプ中の1対の物理ディスクの領域のいずれからもデータを読み出すことが可能である。このため、上記1対の物理ディスクの領域のうち、相対的に高速アクセスが可能な物理ディスクの領域をリード対象として選択することにより、リード処理の高速化が可能となる。相対的に高速アクセスが可能な物理ディスクは、上記(1)または(2)または(3)の条件を満たす物理ディスクである。
【0016】
また、上記の構成に以下のステップ、即ち、ホストからのライト要求で指定された論理アドレスのデータがミラーリングモードのストライプに存在する場合に、そのデータを、当該ストライプにミラーリングモードで上書きするステップを追加するとよい。このようにすると、新たなミラーリングストライプを割り当てずに済むことから、ミラーリングモードのストライプのデータをパリティモードのストライプのデータに変更する処理(回復処理)が軽減できる。
【0017】
また、上記の構成に以下のステップ、即ち、ホストからのライト要求で指定されたデータのサイズがストライプサイズ(ストライプのデータ領域のサイズ)以上の場合に、当該ストライプサイズのデータを単位に空きストライプを探索して、その空きストライプに当該ストライプサイズのデータをパリティモードで書き込むステップを追加し、上記ミラーリングモードでデータを書き込むステップでは、上記ライト要求で指定されたデータのサイズがストライプサイズに満たない場合には当該データをミラーリングモードで書き込み、上記ライト要求で指定されたデータのサイズがストライプサイズを超えている場合には、当該データのうち、ストライプサイズのデータを単位とするパリティモードでの書き込みの対象とならない残りのデータをミラーリングモードで書き込むようにするとよい。
【0018】
このように、ライト要求で指定されたデータのサイズに応じて、パリティモードストライプへのライト処理とミラーリングモードストライプへのライト処理を動的に切り替えて、或いは併用してライトスルー処理を行うことにより、常にミラーリングモードでのみのライト処理を行う場合に比べて、ライト処理を一層効率的に実行することが可能となる。
【0019】
なお、ライト要求で指定されたデータのサイズに無関係に、パリティモードでのライト処理とミラーリングモードでのライト処理を動的に切り替えることも可能である。例えば、通常はミラーリングモードでのライト処理を実行し、空きストライプが不足して上記変更処理(ミラーリングモードのストライプのデータをパリティモードのストライプのデータに変更する処理)が必要となった結果、ミラーリングモードでのライト処理の方が時間を要する場合、つまりパリティモードでのライト処理の方が高速に行える場合には、当該パリティモードでのライト処理を実行することも可能である。このようにすると、ミラーリングモードのストライプを多く作り過ぎずに済む。
【0020】
また、冗長化論理ディスクを構成する物理ディスクの数が4以上の場合には、上記ミラーリングモードでデータを書き込むステップにおいて、少なくとも2組の1対の物理ディスクの領域をミラーリングのデータの領域として、そのうちの1組を選択使用する構成とするとよい。このようにすると、ミラーリングモードのストライプの領域を無駄なく有効に利用できる。
【0021】
冗長化論理ディスクを構成する複数の物理ディスクのうちの1つが故障している場合、つまり論理ディスクの縮退時には、当該論理ディスクは冗長性を持たない。このため、パリティモードのストライプであっても、当該ストライプ中のパリティデータの領域(パリティ領域)が故障物理ディスクの領域の場合には、パリティデータは意味をなさない。そこで、上記の構成に以下のステップ、即ち、論理ディスクの縮退時におけるライトスルーでの書き込みに際し、アクセス可能な領域にパリティデータが存在しないパリティモードのストライプから空きデータ領域を探索するステップと、ここで探索された空きデータ領域(つまりアクセス可能な領域にパリティデータが存在しないストライプの空きデータ領域)に、データの書き込み先を割り当て、当該ストライプのモードをパリティモードに保ったまま、当該空きデータ領域にデータを書き込むステップとを追加すると、パリティモードのストライプへの書き込みであっても、もともとパリティ計算の必要がないことから、ライトスルー処理が高速に行える。また、ミラーリングモードでの書き込みを適用しないため、パリティモードのストライプのデータへの変更処理(回復処理)も不要となる。
【0022】
なお、以上のライトスルー処理方法に係る本発明は、コンピュータに当該方法に相当する手順を実行させるためのプログラムに係る発明としても成立する。また、上記ライトスルー処理方法に係る本発明は、当該方法を適用し、冗長化論理ディスクを制御するコントローラ(ディスクコントローラ)に係る発明としても成立する。
【0023】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
図1は、本発明の一実施形態に係るディスクコントローラを備えたコンピュータシステムの構成を示すブロック図である。
【0024】
図1において、ディスクアレイ装置1は、ディスクコントローラ(ディスクアレイコントローラ)11と、当該コントローラ11により制御されるディスクアレイ(冗長化論理ディスク)12とから構成される。ディスクアレイ12は、複数、例えば3つの物理ディスク(物理ディスク装置)120−0(HDD0)〜120−2(HDD2)から構成されており、記録するデータはストライプ単位に管理される。各ストライプは、ディスクアレイ12を構成する物理ディスク120−0〜120−2にそれぞれ対応する、同時にアクセス可能なストライプユニットから構成される。1つのストライプを構成する3つのストライプユニットの、対応するディスク120−0〜120−2上の相対位置は同一である。この3つのストライプユニットは、対応するディスク120−0〜120−2上の物理アドレスが連続する複数の物理ブロック(本実施形態では4ブロック)から構成される。
【0025】
各ディスク120−0〜120−2は、SCSI(Small Computer System Interface)バス等のディスクインタフェースバス13によりディスクコントローラ11と接続されている。ディスクコントローラ11は、ディスクアレイ装置1(内のディスクアレイ12)を利用するホスト(ホストコンピュータ)2とホストインタフェースバス21により接続されている。
【0026】
ディスクコントローラ11は、キャッシュメモリ111と、アドレス変換テーブル112と、ストライプモード管理テーブル113と、空き領域管理テーブル114と、アクセス制御部115とから構成される。
【0027】
キャッシュメモリ111は高速で揮発性の記憶装置である。キャッシュメモリ111は、ホスト2から転送されてディスクアレイ12に書き込まれるデータ、及びディスクアレイ12から読み出されてホスト2に転送されるデータを一時格納するのに用いられる。
【0028】
アドレス変換テーブル112は、図2に示すように、各論理アドレスについて、当該論理アドレス(論理ブロックアドレス)と、当該論理アドレスに割り当てられるディスクアレイ12の物理アドレス空間の物理アドレス(物理ブロックアドレス)との対応を示す情報(アドレス変換情報)が登録されるエントリから構成される。ここで、物理アドレスは、物理ディスクの番号(HDD番号)と、当該物理ディスク内の物理ブロックのアドレス(HDD内アドレス)とにより示される。アドレス変換テーブル112の各エントリの情報は、対応する論理アドレスのブロックのデータがパリティモードPまたはミラーリングモードMのいずれで書かれているかを示すモード情報(モードフラグ)を含む。図2のデータ構造のアドレス変換テーブル112を参照することにより、目的の論理アドレスがどの物理アドレスに対応するかを調べると共に、当該論理アドレスのデータがパリティモードPまたはミラーリングモードMのいずれで書かれているかを識別できる。ミラーリングモードMでは、2つのディスク内の同一アドレスに同一データが書き込まれる。しかし、アドレス変換テーブル112では、2つのディスクのうちの一方のHDD番号だけが登録される。ここでは、HDD0,HDD1またHDD2が登録されている場合、ミラーリングモードMでデータが書かれているもう1つのHDDは、それぞれHDD1,HDD2またはHDD0であると予め定められている。
【0029】
図2の例では、論理アドレス0及び1のデータが、HDD0の物理アドレス0及び1にパリティモードMで書かれていることが示されている。同様に、論理アドレス3及び4のデータが、HDD1(とHDD2)の物理アドレス4及び5にミラーリングモードMで書かれていることが示されている。なお、図2中のHDD番号のフィールドに「−」が設定されているエントリは、対応する論理アドレスに物理アドレスが割り当てられていないことを示す。
【0030】
ストライプモード管理テーブル113は、図3に示すように、各ストライプについて、そのストライプを成す物理ディスク上のデータがパリティモードPまたはミラーリングモードMで書かれているかを示す情報(ストライプモード管理情報)が登録されるエントリから構成される。前記したように、1つのストライプを構成するストライプユニット(ここでは3つのストライプユニット)は、それぞれ4ブロックから構成されている。この場合、1ストライプのデータ領域(データ部分)のサイズは、ミラーリングモードMまたはパリティモードPのいずれの場合にも、2ストライプユニット分、即ち8ブロックである。パリティモードPのストライプのパリティ領域(パリティ1単位を保持する領域)のサイズは、1ストライプユニット分、即ち4ブロックである。
【0031】
ストライプモード管理テーブル113の各エントリの情報は、対応するストライプを指定する情報と、当該ストライプのモードを示すモード情報(モードフラグ)とを含む。ここで、ストライプを指定する情報には、当該ストライプを構成するストライプユニットの先頭ブロックの物理アドレス(ストライプ先頭アドレス)が用いられる。ストライプモード管理テーブル113の各エントリ情報は更に、対応するストライプがミラーリングモードMの場合には、ディスク120−0(HDD0)〜12−2(HDD2)のうち、有効なデータが格納されている物理ディスク、即ちミラーリングデータの格納に用いられている1対の物理ディスク(ミラーHDD)の番号(HDD番号)を含む。図3の例では、ストライプ先頭アドレス4で示されるストライプを構成するストライプユニットのうち、HDD1及びHDD2上のストライプユニットが、ミラーリングデータの格納に用いられていることを示す。
【0032】
空き領域管理テーブル114は、各ストライプについて、当該ストライプの空きの有無と、(当該ストライプが空きでない場合に)当該ストライプ中の対応するディスク120−0〜120−2の物理ブロック毎の空きの有無とを示す空き領域管理情報が登録されるエントリから構成される。この空き領域管理テーブル114を参照することで、空きストライプ、またはストライプ中の空き領域(ブロック)を探索することができる。なお、効率を考えないならば、アドレス変換テーブル112を参照して当該テーブル112に登録されていない物理アドレスを検索することでも、空きストライプ、またはストライプ中の空き領域が探索可能である。
【0033】
テーブル112〜114は図示せぬメモリ上に置かれる。このメモリには、ディスクコントローラ11の電源がオフされてもテーブル112〜114の内容が消失しないように、書き換え可能な不揮発性メモリを用いるとよい。また、バッテリバックアップされた揮発性メモリを用いることも可能である。また、テーブル112〜114が、メモリ以外の記憶手段、例えばディスクに格納される構成とすることも可能である。
【0034】
アクセス制御部115は、ホスト2からリードまたはライトの要求を受けて、ディスクアレイ12へのアクセスの制御及びキャッシュメモリ111の割り当てを含む制御を行う。アクセス制御部115は、例えば、制御プログラムが格納されたROM等の不揮発性メモリと、当該制御プログラムを実行するCPU(いずれも図示せず)とにより実現可能である。この制御プログラムは、ホスト2からのライト要求に応じて、ディスクアレイ12にデータをライトスルーで書き込むためのプログラムを含む。
【0035】
アクセス制御部115は、ホスト2からライトの要求を受けた場合、実際にデータを書き込む物理ディスク上の位置を決定する。そして、アクセス制御部115は、ホストから要求されてキャッシュメモリ111上に割り当てられた領域に書き込まれたデータを、上記決定した物理ディスク上の位置に書き込む。このときアクセス制御部115は、上記決定した物理ディスク上の位置に応じて、アドレス変換テーブル112内の上記参照エントリの情報を更新すると共に、空き領域管理テーブル114内の対応するエントリの情報も更新する。
【0036】
図4に、図2の内容のアドレス変換テーブル112及び図3の内容のストライプモード管理テーブル113で示される、ディスク120−0(HDD0)〜120−2(HDD2)の状態を示す。ここでは、ストライプ先頭アドレス4で示されるストライプを構成するストライプユニットのうち、HDD1並びにHDD2のストライプユニット中の物理アドレス4及び5に、それぞれミラーリングデータ401a及び401bが格納されている。
【0037】
次に、図1中のディスクアレイ装置1におけるライト処理について、ライトスルーでディスクアレイ装置1内のディスクアレイ12にデータを書き込む場合を例に、図5のフローチャートを参照して説明する。
【0038】
まず、ホスト2からディスクアレイ装置1内のディスクコントローラ11に対し、論理アドレス“0”から3ブロック分のサイズのライトが要求されたものとする。この場合、ディスクコントローラ11内のアクセス制御部115は、ライトすべきデータのサイズ(ここでは、ホストからのライト要求で指定されたサイズ)がストライプサイズ(ストライプのデータ領域のサイズ)以上であるか否かを判定する(ステップS1)。ここで、ストライプサイズは8ブロックであり、ライトすべきデータのサイズは3ブロックである。
【0039】
この例のように、ライトすべきデータのサイズがストライプサイズ(8ブロック)未満の場合、つまりステップS1での判定がNoの場合、アクセス制御部115はミラーリングモードでライトを行うことを確定する。そこでアクセス制御部115は、ミラーリングモードMのストライプ(ミラーリングストライプ)に空き領域があるか否かを判定する(ステップS2)。但し、このステップS2は、実際にはステップS1でNoが判定された直後ではなく、後述するステップS51及びS52(図12参照)が実行されて、当該ステップ(判定ステップ)S52でNoが判定された場合に実行される。
【0040】
ステップS2の判定は、例えば、ストライプモード管理テーブル113を参照して、ミラーリングストライプを検索し、そのストライプについて空き領域管理テーブル114を参照することにより実現される。なお、効率は悪いものの、ミラーリングストライプのデータ領域を構成する1対のストライプユニットの物理ブロックについて、その物理ブロックのアドレスがアドレス変換テーブル112に登録されているか否かを調べることでも、ステップS2の判定は可能である。
【0041】
本実施形態では、図4中の物理アドレス“4”から始まるストライプがミラーリングストライプであり、且つミラーディスク120−1(HDD1)及び120−2(HDD2)の物理アドレス6及び7のブロックが空き領域(空きブロック)となっている。
【0042】
アクセス制御部115は、見つけた空き領域にミラーリングでデータを書ける量だけ書き込む(ステップS3)。ここでは、ディスク120−1(HDD1)及び120−2(HDD2)の物理アドレス“6”及び“7”のブロックが空き領域として検出されたことから、指定された論理アドレス“0”〜“2”のデータのうち、論理アドレス“0”及び“1”のデータが、ディスク120−1(HDD1)の物理アドレス“6”及び“7”の空き領域とディスク120−2(HDD2)の物理アドレス“6”及び“7”の空き領域とに、それぞれミラーリングで書き込まれる。この様子を、図6に示す。ここでは、論理アドレス“0”及び“1”のデータ600及び601が、ディスク120−1(HDD1)及び120−2(HDD2)の、いずれも物理アドレス“6”及び“7”の空き領域にミラーリングで書き込まれる(ステップS11)。
【0043】
アクセス制御部115は、ステップS3の書き込みを終了すると、その書込みを終えた分に関して、アドレス変換テーブル112を更新する(ステップS4)。このときアクセス制御部115は、物理アドレス“4”から始まるストライプ中の、ディスク120−1(HDD1)及び120−2(HDD2)の物理アドレス“6”及び“7”の領域に関して、空き領域管理テーブル114も更新する。
【0044】
上記論理アドレス“0”及び“1”のデータの書き込み及び後述する論理アドレス“2”のデータの書き込みに伴って、それぞれステップS4の更新処理が実行された後のアドレス変換テーブル112の内容を図7に示す。ここでは、論理アドレス“0”及び“1”のデータが、ディスク120−1(とディスク120−2)、つまりHDD1(とHDD2)の物理アドレス“6”及び“7”にミラーリングモードMで書かれていることが示されている。このとき、ディスク120−0(HDD0)の物理アドレス“0”及び“1”の領域に既に書き込まれていた、論理アドレス“0”及び“1”のデータ(図2のアドレス変換テーブル112参照)は無効データとなる。
【0045】
アクセス制御部115は、ステップS4を実行すると、未書き込みデータが残っているか否かを調べる(ステップS5)。この例のように、未書き込みデータ(論理アドレス“2”のデータ)が残っている場合、アクセス制御部115はステップS1に戻る。また、この例のように、未書き込みデータがストライプサイズ(ストライプのデータ領域のサイズ)に満たない場合(ステップS1)、アクセス制御部115は、再びステップS2を実行して、ミラーリングモードのストライプに空き領域があるか否かを調べる。ここでは、ミラーリングモードのストライプに空きがないものとする。この場合、アクセス制御部115は、空き領域管理テーブル114を参照して空きストライプを探す(ステップS6)。ここでは、図6中の物理アドレス“12”から始まるストライプが見つかったものとする。
【0046】
アクセス制御部115は、ステップS6で空きストライプが見つけられた場合、その空きストライプを構成するディスク120−0(HDD0)〜120−2(HDD2)の領域のうち、任意の1対(2台)のディスク(HDD)の領域を有効なミラーリングデータの書き込み用、つまりミラーリング用の空き領域として選択する(ステップS7)。ここでは、ディスク120−0(HDD0)及び120−1(HDD1)の領域がミラーリング用に選択されたものとする。
【0047】
次にアクセス制御部115は、ステップS6で見つけた空きストライプをミラーリングモードMに切り替えると共に、ステップS7でのHDD選択結果をもとに、ストライプモード管理テーブル113を更新する(ステップS8)。この更新後のストライプモード管理テーブル113の内容を図8に示す。ここでは、物理アドレス“12”から始まるストライプがミラーリングモードMとなり、当該ストライプを構成するストライプユニットのうち、HDD0及びHDD1のストライプユニットが、ミラーリングデータの格納に用いられることが示されている。
【0048】
次にアクセス制御部115は、ステップS7で選択された、空きストライプ中の2つのHDDの領域(空き領域)に、ミラーリングでデータを書ける量だけ書き込む(ステップS3)。
【0049】
これにより本実施形態では、図6に示すように、物理アドレス“12”から始まるストライプがミラーリングモードMに変更された状態で(ステップS12)、当該ストライプ中の、例えばディスク120−0(HDD0)及び122−1(HDD1)の物理アドレス“12”の領域に、論理アドレス“2”のデータ602がミラーリングで書き込まれる(ステップS13)。
【0050】
次にアクセス制御部115は、書込みを終えた分に関してアドレス変換テーブル112(及び空き領域管理テーブル114)を更新する(ステップS4)。このステップS4での更新後の、論理アドレス“2”に対応するアドレス変換テーブル112内エントリでは、図7から明らかなように、論理アドレス“2”のデータが、ディスク120−0(とディスク120−1)、つまりHDD0(とHDD1)の物理アドレス“12にミラーリングモードMで書かれていることが示されている。
【0051】
以上により、ホスト2から指定された論理アドレス“0”から3ブロック分のデータの書き込みがすべて終了し、未書き込みデータがなくなったため(ステップS5)、アクセス制御部115はホスト2から指定されたデータをライトスルーでディスクアレイ12に書き込む処理を終了し、ライト完了をホスト2に通知する。
【0052】
次に、上記ステップS7で、ミラーリングストライプ中の有効データを書き込むディスクの領域を選択する方法について、図9の動作説明図を参照して説明する。
【0053】
上記したように、ステップS6で空きストライプを検出すると、アクセス制御部115は、当該空きストライプをミラーリングモードに切り替えるに際し、有効データを書き込む2台の物理ディスクを、ディスク120−0(HDD0)〜120−2(HDD2)のうちから選択する(ステップS7)。このステップS7では、その時点でより早く書き込みが行える2台の物理ディスクの領域を選択するとよい。このようにすると、ライト処理をより高速に処理できる。ここでは、図9に示すように、ディスク120−0(HDD0)〜120−2(HDD2)のうち、たまたまディスク120−1(HDD1)への入出力アクセスが多いものとする。言い換えれば、ディスク120−0(HDD0)及び120−2(HDD2)へのアクセスが少ないものとする。この場合、アクセス制御部115は、HDD0とHDD2への書き込みがHDD1への書き込みよりも早く処理できるものと判断し、図9に示すように、空きストライプ中のHDD0及びHDD2の領域をミラーリング用に選択す(割り当て)る(ステップS20)。なお、アクセスの少ない物理ディスクを2台選択する代わりに、相対的に性能の良い物理ディスクを2台選択しても、ライト処理の一層の高速化が可能となる。この他に、各HDDの現在のヘッド位置から、空きストライプ中の該当するHDDの領域にヘッドをシークするのに要する時間が短い方の2台を選択するようにしてもよい。
【0054】
次に、ミラーリングモードMが設定されている領域からのデータ読み出しについて、図10の動作説明図を参照して説明する。
ホスト2からリード要求のあった論理アドレスに対応する物理アドレスの領域がミラーリングモードMのストライプ(ミラーリングストライプ)上に存在する場合、つまり当該論理アドレスのデータがミラーリングストライプに存在する場合、明らかなように、有効データを持つ2台の物理ディスクのどちらからもデータを読み出すことが可能である。その際、その時点でより早く読み出しが行える方の物理ディスクの領域を選ぶと、より高速に処理できる。
【0055】
今、ディスク120−0(HDD0)及び120−1(HDD1)に有効データのあるミラーリングストライプを対象とするリード要求があったものとする。このとき、図10に示すように、たまたまディスク120−1(HDD1)への入出力アクセスが多いものとする。この場合、アクセス制御部115は、HDD0からの読み出しの方がHDD1からの読み出しよりも早く処理できるものと判断し、図10に示すように、ミラーリングストライプ中のHDD0の領域からデータの読み出しを行う(ステップS30)。なお、アクセスの少ない物理ディスクから読み出す代わりに、上述のミラーリングでのライト処理の場合のディスク選択と同様に、相対的に性能の良い物理ディスク、またはシークが短時間で済む物理ディスクを選択するようにしても、リード処理を一層高速化できる。
【0056】
次に、図5中のステップS1でストライプサイズ(ストライプのデータ領域サイズ)以上のライトであると判定された場合の動作について説明する。
まず、ストライプサイズのライトに関しては、ライトデータから直接パリティ(パリティデータ)を作成することが可能である。この場合、パリティモードPでデータを書き込んでも、パリティ生成のためのリードによるオーバーヘッドがない。そこで本実施形態では、以下に述べるように、ストライプサイズのデータのライトをパリティモードPで実行することにより、後述するミラーリングモードMのストライプの回復処理を削減するようにしている。
【0057】
まずアクセス制御部115は、データのライトに際しては、ライトすべきデータのサイズがストライプサイズ(ストライプのデータ領域のサイズ)以上であるか否かを判定する(図5ステップS1)。もし、ライトすべきデータのサイズがストライプサイズ(本実施形態では8ブロック)以上ならば、アクセス制御部115はパリティモードPでライトを行うことが可能であると判断する。この場合、アクセス制御部115はライトすべきデータから1ストライプ分のデータ(8ブロック分のデータ)を切り出すと共に、空き領域管理テーブル114をもとに空きストライプを探して、その空きストライプにパリティモードPで1ストライプ分のデータ及び対応するパリティ(パリティデータ)を書き込む(図5ステップS9)。ここで、パリティは、ストライプサイズのデータから直接生成される。アクセス制御部115は、パリティモードPでのデータ書き込みを実行すると(ステップS9)、書込みを終えた分に関してアドレス変換テーブル112(及び空き領域管理テーブル114)を更新して(ステップS4)、ステップS5の判定処理に進む。
【0058】
図11は、このストライプサイズのデータのライトを説明するための図である。図11の例では、物理アドレス“12”から始まる(HDD0〜HDD2に対応するストライプユニットから構成される)ストライプが空きストライプであるものとする。また、ストライプサイズのデータD、つまり8ブロック分のデータDが、ライトすべきデータであるものとする。この場合、アクセス制御部115は、8ブロック分のデータDを4ブロック分のデータDa及びDbに2等分する。次に、データDa及びDbの間の例えば排他的論理和演算を行うことで、4ブロック分のパリティPを生成する(ステップS40)。そして、物理アドレス12から始まる空きストライプを構成するストライプユニットのうち、例えばHDD0及びHDD1のストライプユニットにデータDa及びDbを書き込み、HDD2のストライプユニットにパリティPを書き込む。
【0059】
次に、ミラーリングモードMの領域への上書きについて、図12のフローチャートを参照して説明する。なお、図12のフローチャートは、図5のフローチャートでは省略されていた処理手順を示し、図5中のステップS1の判定でNoとなった直後に実行される処理手順(ステップS51及びS52)を含む。
【0060】
本実施形態では、ホスト2からのライト要求で指定された論理アドレスに対応する物理アドレスの領域がミラーリングモードMのストライプ中に存在する場合には、以下に述べるように、図12のフローチャートに示す手順で、その物理アドレスにデータをミラーリングモードMで上書きをしている。このようにすると、アドレス変換テーブル112の更新と、新たな空きミラーリング領域の割り当てを行わずに済む。
【0061】
アクセス制御部115は、ステップS1で、ライトすべきデータのサイズがストライプサイズ(ストライプのデータ領域のサイズ)未満であると判定した場合、そのデータに対応する論理アドレスでアドレス変換テーブル112を参照する(ステップS51)。そして、アクセス制御部115は、その論理アドレスに対応する物理アドレスの領域がミラーリングモードMのストライプ(ミラーリングストライプ)上に存在するか否かを判定する(ステップS52)。この判定がNoの場合、アクセス制御部115は図5中のステップS2に進む。これに対し、ステップS52の判定がYesの場合、即ちライトすべきデータの論理アドレスに対応する物理アドレスの領域がミラーリングストライプ中に存在する場合には、アクセス制御部115はストライプモード管理テーブル113を参照して、当該ストライプ中の有効なデータ領域を提供する2つの物理ディスク(HDD)を検出する(ステップS53,S54)。そしてアクセス制御部115は、上記ストライプ中の、上記検出した2つの物理ディスクの領域に、同一のライトデータを上書きし(ステップS55)、しかる後に図5中のステップS5に進む。
【0062】
このデータの上書きの具体例について、図6を参照して説明する。今、論理アドレス“0”及び“1”のデータ600及び601を、物理アドレス“4”から始まるストライプ中の、HDD1とHDD2の領域(物理アドレス“6”及び“7”の領域)にミラーリングモードMで書き込む処理(ステップS11)が実行されたものとする。この状態で、論理アドレス“0”に対して1ブロックのデータ603のライト要求があったものとする。このとき、アドレス変換テーブル112及びストライプモード管理テーブル113の内容は、それぞれ図7及び図8のようになっているものとする。
【0063】
アクセス制御部115は、論理アドレス“0”でアドレス変換テーブル112を参照することにより(ステップS51)、当該論理アドレス“0”のデータが、ミラーリングモードMで物理アドレス6の領域に書き込まれていることを認識する(ステップS52)。この場合、アクセス制御部115は、論理アドレス“0”のデータの上書きを決定する。そこでアクセス制御部115は、ストライプモード管理テーブル113を参照して、物理アドレス“4”から始まるストライプ(ミラーリングストライプ)上のHDD0〜HDD2の領域のうち、いずれのHDDの領域が有効であるかを調べる(ステップS53,S54)。ここでは、図8から明らかなように、HDD1及びHDD2の領域が有効である。そこで、アクセス制御部115は、データ603を、図6に示すように、物理アドレス“4”から始まるミラーリングストライプ中のHDD1及びHDD2の領域の物理アドレス“6”の領域に上書きする(ステップS14)。
【0064】
次に、ミラーリングモードMのストライプのデータをパリティモードPのストライプのデータに回復(変更)する処理について、図13のフローチャート並びに図6及び図14の動作説明図を参照して説明する。
【0065】
本実施形態において、ミラーリングモードMのストライプ(ミラーリングストライプ)のデータをパリティモードPのストライプのデータに回復する処理は、予め定められた条件の成立時に実行される。ここでは、上記回復処理は、ディスクアレイ装置1がホスト2からアクセスされないアイドル状態時、或いは空きストライプが予め定められた数を下回った場合(つまり空きストライプの不足時)を含む条件のうちの、予め定められた条件の成立時に実行される。
【0066】
まずアクセス制御部115は、ストライプモード管理テーブル113をもとに、回復処理の対象となるミラーリングモードMのストライプを選択する(ステップS61)。ここで、有効データの総量がパリティモードでの1ストライプに収まる範囲であれば、複数のミラーリングモードMのストライプを選んでもよい。ここでは、図6中の物理アドレス“4”から始まるストライプと、物理アドレス“12”から始まるストライプとが選ばれたものとする。
【0067】
次にアクセス制御部115は、空き領域管理テーブル114をもとに空きストライプを探す(ステップS62)。ここでは、図6中の物理アドレス“0”から始まるストライプが空きストライプとして検出されている。ここで、物理アドレス“0”から始まるストライプを構成するHDD0のストライプユニットのうち、物理アドレス0及び1のブロックに格納されていたデータは、アドレス変換テーブル112の対応するエントリの内容が図2の状態から図7の状態に更新されて既に無効となっているものとする。
【0068】
次にアクセス制御部115は、ステップS61で選択したミラーリングモードMのストライプのデータを、順次、ステップS62で見つけた空きストライプのデータ領域にコピーする(ステップS63)。図14の例では、HDD0の物理アドレス“12”のデータが、当該HDD0の物理アドレス0の領域にコピーされる(ステップS71)。このステップS71では、HDD1の物理アドレス4〜7のデータが、当該HDD1の物理アドレス0〜3の領域にコピーされる。
【0069】
アクセス制御部115は上記ステップS63において、有効データがコピーされたストライプのパリティを生成し、そのパリティを当該ストライプのパリティ領域に書き込む。図14の例では、HDD0及びHDD1の、それぞれ物理アドレス“0”〜“3”のデータ(ストライプユニットのデータ)が読み出されて、そのデータ間で排他的論理和演算を行うことで、そのデータのパリティが生成される(ステップS72)。この生成されたパリティが、HDD2の物理アドレス“0”〜“3”の領域に書き込まれる。
【0070】
アクセス制御部115は、ステップS63を実行し終えると、アドレス変換テーブル112(及び空き領域管理テーブル114)を更新する(ステップS64)。図15に、図14の例における更新後のアドレス変換テーブル112の内容を示す。
【0071】
またアクセス制御部115は、ストライプモード管理テーブル113を更新し、ステップS61で選択したストライプのミラーリングモードMを解除して、パリティモードPに切り替える(ステップS65)。これにより図14の例では、物理アドレス“4”から始まるストライプ、及び物理アドレス“12”から始まるストライプのミラーリングモードMがそれぞれ解除される(ステップS73)。図16に、図14の例における更新後のストライプモード管理テーブル113の内容を示す。
【0072】
なお、上述のミラーリングモードMのストライプのデータをパリティモードPのストライプのデータに回復する処理を、独立の処理とせずに、有効データ再配置処理と一体化して実行することも可能である。有効データ再配置処理とは、ディスクアレイ装置1内のディスク120−0(HDD0)〜120−2(HDD2)上で細切れになって配置されている有効データを集めてストライプ上に再配置する処理である。
【0073】
次に、1ストライプ上への複数組のミラーリングデータの配置について説明する。
ディスクアレイ(論理ディスク)が2n台または2n+1台(nは2以上の整数)の物理ディスクから構成されている場合、1対(2台)の物理ディスクの組を単位にミラーリングを行うと、1ストライプ中に、最大n組のミラーリング領域を確保することが可能となる。今、図1中のディスク120−0(HDD0)〜120−2(HDD2)から構成されるディスクアレイ12に、図17に示すように、ディスク120−3(HDD3)を追加して、4台の物理ディスクでディスクアレイ12を構成したものとする。この場合、図17に示すように、1ストライプ中の、例えばHDD0及びHDD1の領域をミラーリングデータ用に割り当て、当該ストライプ中のHDD2及びHDD3の領域を別のミラーリングデータ用に割り当てる。これにより、ミラーリングモードMのストライプでより多くの冗長データを保持できる。
【0074】
次に、ディスクアレイ12が縮退している状態におけるライト処理について、図18の動作説明図及び図19のフローチャートを参照して説明する。なお、縮退状態とは、ディスクアレイ(論理ディスク)を構成する複数の物理ディスクのうちの例えば1台が故障によりアクセス不能となり、残りの物理ディスクで運用を継続している状態をいう。
【0075】
今、図1中のディスクアレイ12を構成するディスク120−0(HDD0)〜120−2(HDD2)のうちの例えばディスク120−2(HDD2)が図18に示すように故障したものとする。この場合、ディスクアレイ12は縮退状態で運用されるため、冗長性を持たない。このような状態では、図19のフローチャートの示す手順でライト処理を実行することにより、ライト処理の高速化が可能となる。
【0076】
アクセス制御部115は、故障していない物理ディスクの領域(つまりアクセス可能領域)がすべてデータ領域(つまりパリティの存在しない領域)のパリティモードPのストライプであって、当該データ領域に空き領域(つまり空きデータ領域)を含むストライプを探す(ステップS81)。ここでは、空きデータ領域を含むストライプとして、図18に示すように、正常なディスク120−0(HDD0)及び120−1(HDD1)の領域がデータ領域180及び181で、故障ディスク120−1(HDD2)の領域がパリティ領域182のストライプが検出されたものとする。この場合、アクセス制御部115は、今回ライトすべき論理アドレスに、ステップS81で検出したストライプ中の空きデータ領域の物理アドレスを割り当てる(ステップS82)。
【0077】
次にアクセス制御部115は、ステップS81で検出したストライプのモードはパリティモードPのまま、ステップS82で割り当てた物理アドレスの領域にデータを書き込む(ステップS83)。ここでは、図18に示すように、HDD0内のデータ領域180の先頭ブロックにデータが書き込まれる(ステップS80)。このデータ書き込みでは、ステップS81で検出されたパリティモードPのストライプのパリティ領域を提供するHDD2は故障しているため、つまり当該パリティ領域は使用できないため、パリティ計算の必要はない。また、このデータ書き込みが行われたストライプはパリティモードPに保たれているため、前述の空きストライプへのミラーリングデータ書き込みの場合と異なって、パリティモードPへの回復処理も必要ない。
【0078】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0079】
【発明の効果】
以上詳述したように本発明によれば、ライトスルーでのデータ書き込みに際し、ミラーリングモードのストライプの空き領域を探し、その空き領域にミラーリングモードでデータを書き込む構成としたので、パリティ生成が不要となり、冗長性を確保しながら、パリティ生成のためのリード処理のオーバヘッドをなくして、ライトスルー処理を高速化できる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るディスクコントローラを備えたコンピュータシステムの構成を示すブロック図。
【図2】図1中のアドレス変換テーブル112のデータ構造例を示す図。
【図3】図1中のストライプモード管理テーブル113のデータ構造例を示す図。
【図4】図2の内容のアドレス変換テーブル112及び図3の内容のストライプモード管理テーブル113で示される。ディスク120−0(HDD0)〜120−2(HDD2)の状態を示す図。
【図5】同実施形態におけるライト処理の手順を示すフローチャート。
【図6】同実施形態におけるライト処理、及びミラーリングモードMの領域への上書きを説明するための図。
【図7】図6に示すライト処理実行後のアドレス変換テーブル112の内容を示す図。
【図8】図6に示すライト処理実行後のストライプモード管理テーブル113の内容を示す図。
【図9】ミラーリングストライプ中の有効データを書き込むディスクの領域を選択する方法を説明するための図。
【図10】ミラーリングストライプ中の有効データの読み出しの対象とするディスクの領域を選択する方法を説明するための図。
【図11】ストライプサイズのデータのライト処理を説明するための図、
【図12】ミラーリングモードMの領域への上書きの手順を示すフローチャート。
【図13】ミラーリングモードMのストライプのデータをパリティモードPのストライプのデータに回復する処理の手順を示すフローチャート。
【図14】上記回復処理を説明するための図。
【図15】図14の例における更新後のアドレス変換テーブル112の内容を示す図。
【図16】図14の例における更新後のストライプモード管理テーブル113の内容を示す図。
【図17】1ストライプ上への複数組のミラーリングデータの配置を説明するための図。
【図18】ディスクアレイ12が縮退している状態におけるライト処理を説明するための図。
【図19】ディスクアレイ12が縮退している状態におけるライト処理の手順を示すフローチャート。
【符号の説明】
1…ディスクアレイ装置
2…ホスト(ホストコンピュータ)
11…ディスクコントローラ
12…ディスクアレイ(冗長化論理ディスク)
111…キャッシュメモリ
112…アドレス変換テーブル(アドレス変換情報記憶手段)
113…ストライプモード管理テーブル(ストライプモード管理情報記憶手段)
114…空き領域管理テーブル(空き領域管理情報記憶手段)
115…アクセス制御部
120−0,120−1,120−2,120−3…物理ディスク(HDD0,HDD1,HDD2,HDD3)
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a disk controller for controlling a logical disk (disk array) having redundancy composed of a plurality of physical disks, and more particularly to a redundant disk for writing write data requested by a host to the logical disk in a write-through manner. The present invention relates to a write-through processing method, a write-through processing program, and a disk controller for a logical disk.
[0002]
[Prior art]
As a means for realizing an inexpensive and highly reliable mass storage device, a disk array composed of a plurality of disks (disk devices) is known. This disk array appears as one disk (disk device) to a host using the disk array. Therefore, the disk array is also called a logical disk (logical disk device). The disks (disk devices) that make up the disk array are also called physical disks (physical disk devices).
[0003]
In general, a disk array is provided with redundancy by, for example, parity data as redundant data as represented by RAID (Redundant Array of Independent Disks or Redundant Array of Inexpensive Disks) in order to increase reliability. That is, a so-called redundant disk configuration is applied. The disk array is connected to a disk controller (disk array controller) described in, for example, JP-A-11-53235, which controls access to the disk array in response to a request from a host. The disk controller described in this publication applies the following method to speed up disk array access (disk access), for example, random write disk access. That is, the disk controller described in the publication discloses a method in which write data requested by a host is stored in a cache memory, and when the write data reaches a certain amount, the stored data is written to a continuous free area on a disk array. Have applied. Here, the correspondence between the address (logical address) requested by the host and the address (physical address) on the disk array where data is actually written is managed by an address conversion map.
[0004]
[Problems to be solved by the invention]
The above-described technique for speeding up disk access by random write belongs to a so-called write-back technique. Here, when the write data requested by the host is written in the cache memory on the disk controller, the completion of the write operation requested by the host is notified to the host.
[0005]
On the other hand, in a system that employs a method of accelerating random write disk access, write-through operation in which write data requested by a host is directly written to a disk (disk array) is required for higher reliability. May be done. Here, when the data is written to the disk, the host is notified of the completion of the write operation requested by the host.
[0006]
However, the method of operation in write-through is not defined due to the nature of the system. In addition, the write-through processing is slower than the write-back processing, so that a higher speed is required.
[0007]
SUMMARY OF THE INVENTION The present invention has been made in view of the above circumstances, and has as its object to provide a write-through processing method, a write-through processing program, and a disk controller for a redundant logical disk which can speed up the write-through processing for the redundant logical disk. It is in.
[0008]
[Means for Solving the Problems]
According to one aspect of the present invention, data is written through a write-through to a redundant logical disk that is configured by a plurality of physical disks and is managed in stripes in which data is retained in either parity or mirroring mode. Is provided (write-through processing method). In this method, when writing data requested by the host by write-through, a step of searching for an empty area of the stripe in the mirroring mode, and writing the data in the mirroring mode to the empty area of the found stripe in the mirroring mode. Writing step.
[0009]
As described above, in the above-described configuration, two modes, ie, a parity mode and a mirroring mode, are prepared as modes for holding data in each stripe, and any one of the modes can be dynamically set. A data area and a parity area are allocated to the stripe in the parity mode. Usually, an area of any one of the plurality of physical disks constituting the logical disk is allocated to the parity area. The remaining physical disk area is allocated to the data area. On the other hand, in the stripe in the mirroring mode, an area of at least one pair of physical disks of the plurality of physical disks is allocated as a data area (mirroring area) for holding data by mirroring.
[0010]
Here, when writing data in write-through, an empty area of the stripe in the mirroring mode is searched, and data is written in the empty area in the mirroring mode. If write processing is performed in the parity mode, read processing from the disk is required to generate parity. However, as described above, if data is written in the mirroring mode, parity generation becomes unnecessary, and thus the overhead of the read processing can be eliminated while ensuring redundancy. This makes it possible to speed up the write-through processing. Further, since any stripe can be set to the mirroring mode, even when there are many write requests from the host, it is possible to quickly respond by increasing the number of stripes in the mirroring mode.
[0011]
Here, the following steps may be added to the above configuration, that is, a step of searching for a mirroring mode stripe and a step of changing the searched mirroring mode stripe data to parity mode stripe data. . This makes it possible to use the stripe area without waste. Therefore, as a result of performing write-through writing in the mirroring mode, even if the number of stripes in the mirroring mode temporarily increases, the effect on the storage capacity can be reduced. Here, the step of searching for the mirroring mode stripes and the step of changing the searched mirroring mode stripe data to parity mode stripe data are performed when the number of empty stripes falls below a predetermined number. It may be configured to be executed when a predetermined condition among the conditions including is satisfied. As described above, when the predetermined condition is satisfied, the above steps are executed to use the area of the stripe without waste, thereby always securing the empty stripe, that is, securing the stripe applicable to the mirroring mode. Becomes possible.
[0012]
In addition, the following steps are included in the above configuration, that is, a step of searching for a free stripe when a free area of a stripe in the mirroring mode is not found, and an area of the plurality of physical disks constituting the searched free stripe. Selecting, as a free area, a pair of physical disks for mirroring that can be accessed at relatively high speed, and writing data in the mirroring mode. It is preferable to write data in the mirroring mode in the area of the selected physical disk.
[0013]
As described above, in addition to the data writing in the mirroring mode, the load distribution to the physical disks can be optimized by selecting a pair of physical disks for mirroring that can be accessed at relatively high speed. Further, the speed of the write-through processing can be further increased. Physical disks that can be accessed at a relatively high speed include: (1) a physical disk with less input / output access at that time, (2) a physical disk with relatively better performance, or (3) a current head of each physical disk. From the position, the physical disk requires less time to seek the head to the area of the corresponding physical disk in the empty stripe.
[0014]
Further, in the above configuration, when the data of the logical address specified by the read request from the host is present in the stripe in the mirroring mode, a pair of data in the stripe to which the data is written is written. It is preferable to add a step of selecting, as a read target, an area of the physical disk which can be accessed at a relatively high speed among the areas of the physical disk.
[0015]
Here, when the data of the logical address specified by the read request from the host exists in the stripe in the mirroring mode, the data is written from any of the areas of the pair of physical disks in the stripe where the data is written. Can be read. Therefore, by selecting a physical disk area that can be accessed at a relatively high speed from among the pair of physical disk areas as a read target, the read processing can be speeded up. A physical disk that can be accessed at a relatively high speed is a physical disk that satisfies the above condition (1), (2), or (3).
[0016]
In the above configuration, the following step, that is, when data of a logical address specified by a write request from a host is present in a stripe in a mirroring mode, the step of overwriting the data in the stripe in the mirroring mode is performed. Good to add. By doing so, it is not necessary to allocate a new mirroring stripe, and the process of changing the data of the mirroring mode stripe to the data of the parity mode stripe (recovery process) can be reduced.
[0017]
When the size of the data specified by the write request from the host is equal to or larger than the stripe size (the size of the data area of the stripe) in the above configuration, an empty stripe is set in units of data of the stripe size. And adding a step of writing data of the stripe size to the empty stripe in the parity mode. In the step of writing data in the mirroring mode, the size of the data specified by the write request is smaller than the stripe size. In this case, the data is written in the mirroring mode. If the size of the data specified by the write request exceeds the stripe size, the data is written in the parity mode in units of stripe size data among the data. Remaining days not subject to The better to write in the mirroring mode.
[0018]
As described above, the write process to the parity mode stripe and the write process to the mirroring mode stripe are dynamically switched according to the size of the data specified by the write request, or by performing the write-through process in combination. This makes it possible to more efficiently execute the write processing as compared with the case where the write processing is always performed only in the mirroring mode.
[0019]
It is also possible to dynamically switch between the write processing in the parity mode and the write processing in the mirroring mode regardless of the size of the data specified by the write request. For example, normally, a write process in the mirroring mode is executed, and the above-described change process (a process of changing the data of the mirroring mode stripe to the data of the parity mode stripe) is required due to a shortage of empty stripes. If the write processing in the mode requires more time, that is, if the write processing in the parity mode can be performed at a higher speed, the write processing in the parity mode can be executed. In this way, it is not necessary to make too many mirroring mode stripes.
[0020]
Further, when the number of physical disks constituting the redundant logical disk is four or more, in the step of writing data in the mirroring mode, at least two pairs of physical disk areas are used as mirroring data areas. It is preferable that one of the sets is selectively used. In this manner, the stripe area in the mirroring mode can be effectively used without waste.
[0021]
When one of the physical disks constituting the redundant logical disk has failed, that is, when the logical disk is degraded, the logical disk has no redundancy. For this reason, even in the case of a stripe in the parity mode, if the area of the parity data (parity area) in the stripe is the area of the failed physical disk, the parity data has no meaning. Accordingly, the following steps are added to the above configuration, that is, a step of searching for an empty data area from a stripe in a parity mode in which no parity data exists in an accessible area when writing by write-through at the time of degeneration of a logical disk. The data write destination is allocated to the free data area searched in (i.e., the free data area of the stripe where no parity data exists in the accessible area), and the free data area is maintained while the mode of the stripe is maintained in the parity mode. If the step of writing data to the stripe is added, the write-through process can be performed at a high speed even if the data is written to the stripe in the parity mode because the parity calculation is not necessary from the beginning. Further, since the writing in the mirroring mode is not applied, a change process (recovery process) to the data of the stripe in the parity mode becomes unnecessary.
[0022]
The present invention relating to the above write-through processing method is also realized as an invention relating to a program for causing a computer to execute a procedure corresponding to the method. Further, the present invention relating to the above write-through processing method is also realized as an invention relating to a controller (disk controller) which controls the redundant logical disk by applying the method.
[0023]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of a computer system including a disk controller according to an embodiment of the present invention.
[0024]
In FIG. 1, the disk array device 1 includes a disk controller (disk array controller) 11 and a disk array (redundant logical disk) 12 controlled by the controller 11. The disk array 12 includes a plurality of, for example, three physical disks (physical disk devices) 120-0 (HDD0) to 120-2 (HDD2), and data to be recorded is managed in stripe units. Each stripe is composed of simultaneously accessible stripe units corresponding to the physical disks 120-0 to 120-2 constituting the disk array 12, respectively. The relative positions of the three stripe units constituting one stripe on the corresponding disks 120-0 to 120-2 are the same. These three stripe units are composed of a plurality of physical blocks (four blocks in the present embodiment) having consecutive physical addresses on the corresponding disks 120-0 to 120-2.
[0025]
Each of the disks 120-0 to 120-2 is connected to the disk controller 11 by a disk interface bus 13 such as a SCSI (Small Computer System Interface) bus. The disk controller 11 is connected to a host (host computer) 2 that uses the disk array device 1 (within the disk array 12) by a host interface bus 21.
[0026]
The disk controller 11 includes a cache memory 111, an address conversion table 112, a stripe mode management table 113, a free area management table 114, and an access control unit 115.
[0027]
The cache memory 111 is a high-speed volatile storage device. The cache memory 111 is used to temporarily store data transferred from the host 2 and written to the disk array 12 and data read from the disk array 12 and transferred to the host 2.
[0028]
As shown in FIG. 2, the address conversion table 112 stores, for each logical address, the logical address (logical block address), the physical address (physical block address) in the physical address space of the disk array 12 assigned to the logical address, and (Address translation information) is registered. Here, the physical address is indicated by a physical disk number (HDD number) and an address of a physical block in the physical disk (HDD address). The information of each entry of the address conversion table 112 includes mode information (mode flag) indicating whether the data of the block of the corresponding logical address is written in the parity mode P or the mirroring mode M. By referring to the address conversion table 112 having the data structure of FIG. 2, it is determined which physical address corresponds to the target logical address, and the data of the logical address is written in either the parity mode P or the mirroring mode M. Can be identified. In the mirroring mode M, the same data is written to the same address in two disks. However, in the address conversion table 112, only the HDD number of one of the two disks is registered. Here, when HDD0, HDD1, or HDD2 is registered, another HDD on which data is written in the mirroring mode M is predetermined to be HDD1, HDD2, or HDD0, respectively.
[0029]
In the example of FIG. 2, it is shown that the data of the logical addresses 0 and 1 are written in the physical addresses 0 and 1 of the HDD 0 in the parity mode M. Similarly, it is shown that the data of the logical addresses 3 and 4 are written to the physical addresses 4 and 5 of the HDD 1 (and the HDD 2) in the mirroring mode M. Note that an entry in which "-" is set in the HDD number field in FIG. 2 indicates that no physical address is assigned to the corresponding logical address.
[0030]
As shown in FIG. 3, the stripe mode management table 113 contains information (stripe mode management information) indicating whether data on a physical disk forming the stripe is written in the parity mode P or the mirroring mode M for each stripe. Consists of entries to be registered. As described above, the stripe units (here, three stripe units) that constitute one stripe are each composed of four blocks. In this case, the size of the data area (data portion) of one stripe is equivalent to two stripe units, that is, eight blocks in both the mirroring mode M and the parity mode P. The size of the parity area (area holding one parity unit) of the stripe in the parity mode P is one stripe unit, that is, four blocks.
[0031]
The information of each entry of the stripe mode management table 113 includes information designating the corresponding stripe and mode information (mode flag) indicating the mode of the stripe. Here, the physical address (stripe head address) of the head block of the stripe unit constituting the stripe is used as the information for specifying the stripe. When the corresponding stripe is in the mirroring mode M, each entry information of the stripe mode management table 113 further includes physical data storing valid data among the disks 120-0 (HDD0) to 12-2 (HDD2). It contains the number of a pair of physical disks (mirror HDD) (HDD number) used for storing the disk, ie, the mirroring data. In the example of FIG. 3, among the stripe units forming the stripe indicated by the stripe start address 4, the stripe units on the HDD1 and HDD2 are used for storing mirroring data.
[0032]
The free area management table 114 indicates, for each stripe, whether or not there is a free space in the stripe and whether or not there is a free space for each physical block of the corresponding disks 120-0 to 120-2 in the stripe (if the stripe is not free). The entry is registered with the free space management information indicating the following. By referring to the free area management table 114, a free stripe or a free area (block) in the stripe can be searched. If efficiency is not considered, a free stripe or a free area in a stripe can be searched for by searching the physical address not registered in the address conversion table 112 with reference to the address conversion table 112.
[0033]
The tables 112 to 114 are placed on a memory (not shown). As this memory, a rewritable nonvolatile memory may be used so that the contents of the tables 112 to 114 are not lost even when the power of the disk controller 11 is turned off. It is also possible to use a volatile memory backed up by a battery. Further, the tables 112 to 114 may be configured to be stored in storage means other than the memory, for example, a disk.
[0034]
Upon receiving a read or write request from the host 2, the access control unit 115 performs control including access control to the disk array 12 and allocation of the cache memory 111. The access control unit 115 can be realized by, for example, a nonvolatile memory such as a ROM in which a control program is stored, and a CPU (neither is shown) that executes the control program. This control program includes a program for writing data to the disk array 12 in a write-through manner in response to a write request from the host 2.
[0035]
When receiving a write request from the host 2, the access control unit 115 determines a position on the physical disk where data is actually written. Then, the access control unit 115 writes the data requested by the host and written in the area allocated on the cache memory 111 to the determined position on the physical disk. At this time, the access control unit 115 updates the information of the reference entry in the address conversion table 112 and updates the information of the corresponding entry in the free space management table 114 according to the determined position on the physical disk. I do.
[0036]
FIG. 4 shows the states of the disks 120-0 (HDD0) to 120-2 (HDD2) indicated by the address translation table 112 having the contents shown in FIG. 2 and the stripe mode management table 113 having the contents shown in FIG. Here, mirroring data 401a and 401b are stored at physical addresses 4 and 5 in the stripe units of HDD1 and HDD2, respectively, among the stripe units constituting the stripe indicated by the stripe start address 4.
[0037]
Next, write processing in the disk array device 1 in FIG. 1 will be described with reference to a flowchart of FIG. 5 by taking an example of writing data to the disk array 12 in the disk array device 1 by write-through.
[0038]
First, it is assumed that the host 2 requests the disk controller 11 in the disk array device 1 to write data of a size corresponding to three blocks from the logical address “0”. In this case, the access control unit 115 in the disk controller 11 determines whether the size of the data to be written (here, the size specified by the write request from the host) is greater than or equal to the stripe size (the size of the stripe data area). It is determined whether or not it is (step S1). Here, the stripe size is 8 blocks, and the size of data to be written is 3 blocks.
[0039]
As in this example, if the size of the data to be written is smaller than the stripe size (8 blocks), that is, if the determination in step S1 is No, the access control unit 115 determines to perform the writing in the mirroring mode. Therefore, the access control unit 115 determines whether or not there is an empty area in the stripe in the mirroring mode M (mirroring stripe) (step S2). However, this step S2 is not actually immediately after the determination of No in step S1, but steps S51 and S52 (see FIG. 12) described later are executed, and No is determined in the step (determination step) S52. Will be executed if
[0040]
The determination in step S2 is realized by, for example, searching the mirroring stripe with reference to the stripe mode management table 113 and referring to the free area management table 114 for the stripe. Although the efficiency is low, by checking whether or not the address of the physical block of the pair of stripe units constituting the data area of the mirroring stripe is registered in the address conversion table 112, it is also possible to perform the processing in step S2. Judgment is possible.
[0041]
In this embodiment, the stripe starting from the physical address “4” in FIG. 4 is a mirroring stripe, and the blocks of the physical addresses 6 and 7 of the mirror disks 120-1 (HDD1) and 120-2 (HDD2) are free areas. (Empty block).
[0042]
The access control unit 115 writes only the amount of data that can be written by mirroring in the found free area (step S3). Here, since the blocks of the physical addresses “6” and “7” of the disks 120-1 (HDD1) and 120-2 (HDD2) are detected as free areas, the specified logical addresses “0” to “2” Of the logical addresses “0” and “1” are the free areas of the physical addresses “6” and “7” of the disk 120-1 (HDD1) and the physical address of the disk 120-2 (HDD2). The data is written into the free areas “6” and “7” by mirroring. This is shown in FIG. Here, the data 600 and 601 of the logical addresses “0” and “1” are stored in the free space of the physical addresses “6” and “7” of the disks 120-1 (HDD1) and 120-2 (HDD2). The data is written by mirroring (step S11).
[0043]
After completing the writing in step S3, the access control unit 115 updates the address conversion table 112 for the completed writing (step S4). At this time, the access control unit 115 manages the free area for the areas of the physical addresses “6” and “7” of the disks 120-1 (HDD1) and 120-2 (HDD2) in the stripe starting from the physical address “4”. The table 114 is also updated.
[0044]
The contents of the address conversion table 112 after the update process of step S4 has been executed in accordance with the writing of the data of the logical addresses "0" and "1" and the writing of the data of the logical address "2" described later. FIG. Here, the data of the logical addresses “0” and “1” are written in the mirroring mode M to the physical addresses “6” and “7” of the disk 120-1 (and the disk 120-2), that is, the HDD 1 (and the HDD 2). It is shown that it is. At this time, the data of the logical addresses “0” and “1” already written in the area of the physical addresses “0” and “1” of the disk 120-0 (HDD0) (see the address conversion table 112 in FIG. 2). Becomes invalid data.
[0045]
After executing step S4, the access control unit 115 checks whether or not unwritten data remains (step S5). When unwritten data (data of the logical address “2”) remains as in this example, the access control unit 115 returns to Step S1. Also, as in this example, when the unwritten data is less than the stripe size (the size of the data area of the stripe) (step S1), the access control unit 115 executes step S2 again to change the stripe in the mirroring mode. Check whether there is free space. Here, it is assumed that there is no space in the stripe in the mirroring mode. In this case, the access control unit 115 searches for a free stripe by referring to the free area management table 114 (step S6). Here, it is assumed that a stripe starting from the physical address “12” in FIG. 6 has been found.
[0046]
When a free stripe is found in step S6, the access control unit 115 selects an arbitrary pair (two) of the areas of the disks 120-0 (HDD0) to 120-2 (HDD2) constituting the free stripe. Is selected as a free area for writing valid mirroring data, that is, a mirroring area (step S7). Here, it is assumed that the areas of the disks 120-0 (HDD0) and 120-1 (HDD1) have been selected for mirroring.
[0047]
Next, the access control unit 115 switches the empty stripe found in step S6 to the mirroring mode M, and updates the stripe mode management table 113 based on the HDD selection result in step S7 (step S8). FIG. 8 shows the contents of the stripe mode management table 113 after this update. Here, it is shown that the stripe starting from the physical address “12” is in the mirroring mode M, and among the stripe units constituting the stripe, the stripe units of HDD0 and HDD1 are used for storing mirroring data.
[0048]
Next, the access control unit 115 writes an amount of data that can be written by mirroring in the areas (empty areas) of the two HDDs in the empty stripe selected in step S7 (step S3).
[0049]
Thus, in the present embodiment, as shown in FIG. 6, with the stripe starting from the physical address “12” being changed to the mirroring mode M (step S12), for example, the disk 120-0 (HDD0) in the stripe The data 602 of the logical address "2" is written into the area of the physical address "12" of the HDD 122-1 by mirroring (step S13).
[0050]
Next, the access control unit 115 updates the address conversion table 112 (and the free area management table 114) with respect to the write completion (step S4). In the entry in the address conversion table 112 corresponding to the logical address “2” after the update in the step S4, as is apparent from FIG. 7, the data of the logical address “2” is the disk 120-0 (and the disk 120-0). -1), that is, the physical address “12” of HDD0 (and HDD1) is written in the mirroring mode M.
[0051]
As described above, the writing of all three blocks of data starting from the logical address “0” specified by the host 2 is completed, and there is no unwritten data (step S5). Is completed in the disk array 12 by write-through, and the host 2 is notified of the write completion.
[0052]
Next, a method of selecting an area of a disk to which valid data in the mirroring stripe is to be written in step S7 will be described with reference to the operation explanatory diagram of FIG.
[0053]
As described above, upon detecting a free stripe in step S6, the access control unit 115 replaces the two physical disks for writing valid data with the disks 120-0 (HDD0) to 120 when switching the free stripe to the mirroring mode. 2 (HDD2) (step S7). In this step S7, it is preferable to select areas of two physical disks to which writing can be performed earlier at that time. In this case, the write processing can be performed at higher speed. Here, as shown in FIG. 9, it is assumed that, among the disks 120-0 (HDD0) to 120-2 (HDD2), the input / output access to the disk 120-1 (HDD1) happens to be large. In other words, it is assumed that access to the disks 120-0 (HDD0) and 120-2 (HDD2) is small. In this case, the access control unit 115 determines that writing to HDD0 and HDD2 can be processed earlier than writing to HDD1, and as shown in FIG. 9, the areas of HDD0 and HDD2 in the empty stripe are used for mirroring. Select (assign) (step S20). Note that even if two physical disks having relatively high performance are selected instead of selecting two physical disks with little access, the write processing can be further speeded up. In addition to the above, two heads may be selected from the current head positions of the respective HDDs, which have a shorter time required to seek the head to the corresponding HDD area in the empty stripe.
[0054]
Next, data reading from an area in which the mirroring mode M is set will be described with reference to the operation explanatory diagram of FIG.
It is apparent that the physical address area corresponding to the logical address requested to be read from the host 2 exists on the mirroring mode M stripe (mirroring stripe), that is, the data of the logical address exists in the mirroring stripe. In addition, data can be read from either of the two physical disks having valid data. At that time, if an area of the physical disk from which reading can be performed earlier at that time is selected, processing can be performed at higher speed.
[0055]
Now, it is assumed that there is a read request for a mirroring stripe having valid data on the disks 120-0 (HDD0) and 120-1 (HDD1). At this time, as shown in FIG. 10, it is assumed that there are many input / output accesses to the disk 120-1 (HDD1). In this case, the access control unit 115 determines that reading from HDD0 can be processed faster than reading from HDD1, and reads data from the area of HDD0 in the mirroring stripe as shown in FIG. (Step S30). Instead of reading from a physical disk with little access, a physical disk with relatively high performance or a physical disk that can be sought in a short time is selected in the same manner as in the above-described disk selection in the case of write processing by mirroring. Even so, the read processing can be further speeded up.
[0056]
Next, an operation when it is determined in step S1 in FIG. 5 that the write is equal to or larger than the stripe size (the data area size of the stripe) will be described.
First, for a write with a stripe size, a parity (parity data) can be created directly from write data. In this case, even if data is written in the parity mode P, there is no overhead due to reading for parity generation. Therefore, in the present embodiment, as described below, the stripe size data is written in the parity mode P, thereby reducing the later-described stripe recovery processing in the mirroring mode M.
[0057]
First, when writing data, the access control unit 115 determines whether or not the size of data to be written is greater than or equal to the stripe size (the size of the stripe data area) (step S1 in FIG. 5). If the size of the data to be written is equal to or larger than the stripe size (8 blocks in the present embodiment), the access control unit 115 determines that the writing can be performed in the parity mode P. In this case, the access control unit 115 cuts out data for one stripe (data for eight blocks) from the data to be written, searches for a free stripe based on the free space management table 114, and writes the parity mode to the free stripe. P writes data for one stripe and corresponding parity (parity data) (step S9 in FIG. 5). Here, the parity is directly generated from the data of the stripe size. When executing the data writing in the parity mode P (step S9), the access control unit 115 updates the address conversion table 112 (and the free area management table 114) for the completed writing (step S4), and then proceeds to step S5. It proceeds to the determination processing of.
[0058]
FIG. 11 is a diagram for explaining the writing of data of this stripe size. In the example of FIG. 11, it is assumed that a stripe starting from the physical address “12” (consisting of stripe units corresponding to HDD0 to HDD2) is an empty stripe. It is also assumed that data D having a stripe size, that is, data D for eight blocks is data to be written. In this case, the access control unit 115 divides the data D for eight blocks into the data Da and Db for four blocks. Next, a parity P for four blocks is generated by performing, for example, an exclusive OR operation between the data Da and Db (step S40). The data Da and Db are written to the stripe units of the HDD0 and HDD1, for example, and the parity P is written to the stripe unit of the HDD2 among the stripe units constituting the empty stripe starting from the physical address 12.
[0059]
Next, the overwriting of the area in the mirroring mode M will be described with reference to the flowchart in FIG. Note that the flowchart of FIG. 12 illustrates a processing procedure that has been omitted in the flowchart of FIG. 5 and includes a processing procedure (steps S51 and S52) that is executed immediately after the determination in step S1 in FIG. 5 is No. .
[0060]
In the present embodiment, when a physical address area corresponding to a logical address specified by a write request from the host 2 exists in a stripe in the mirroring mode M, as shown below, the flowchart of FIG. In the procedure, data is overwritten on the physical address in the mirroring mode M. This eliminates the need to update the address conversion table 112 and allocate a new free mirroring area.
[0061]
If the access control unit 115 determines in step S1 that the size of the data to be written is smaller than the stripe size (the size of the stripe data area), the access control unit 115 refers to the address conversion table 112 with the logical address corresponding to the data. (Step S51). Then, the access control unit 115 determines whether or not the area of the physical address corresponding to the logical address exists on the mirroring mode M stripe (mirroring stripe) (step S52). If this determination is No, the access control unit 115 proceeds to step S2 in FIG. On the other hand, if the determination in step S52 is Yes, that is, if the area of the physical address corresponding to the logical address of the data to be written exists in the mirroring stripe, the access control unit 115 sets the stripe mode management table 113 By reference, two physical disks (HDDs) that provide a valid data area in the stripe are detected (steps S53 and S54). Then, the access control unit 115 overwrites the area of the two detected physical disks in the stripe with the same write data (step S55), and then proceeds to step S5 in FIG.
[0062]
A specific example of this data overwriting will be described with reference to FIG. Now, the data 600 and 601 of the logical addresses "0" and "1" are mirrored in the areas of the HDD1 and HDD2 (the areas of the physical addresses "6" and "7") in the stripe starting from the physical address "4". It is assumed that the process of writing in M (step S11) has been executed. In this state, it is assumed that there is a write request for one block of data 603 for the logical address “0”. At this time, it is assumed that the contents of the address conversion table 112 and the stripe mode management table 113 are as shown in FIGS. 7 and 8, respectively.
[0063]
The access control unit 115 refers to the address conversion table 112 with the logical address “0” (step S51), and the data of the logical address “0” is written in the area of the physical address 6 in the mirroring mode M. Is recognized (step S52). In this case, the access control unit 115 determines to overwrite the data of the logical address “0”. Therefore, the access control unit 115 refers to the stripe mode management table 113 to determine which of the HDD0 to HDD2 areas on the stripe (mirroring stripe) starting from the physical address “4” is valid. Check (steps S53 and S54). Here, as is clear from FIG. 8, the areas of HDD1 and HDD2 are effective. Therefore, as shown in FIG. 6, the access control unit 115 overwrites the data 603 on the area of the physical address “6” of the areas of the HDD 1 and HDD 2 in the mirroring stripe starting from the physical address “4” (Step S14). .
[0064]
Next, a process of recovering (changing) the data of the stripe in the mirroring mode M to the data of the stripe in the parity mode P will be described with reference to the flowchart of FIG. 13 and the operation explanatory diagrams of FIGS.
[0065]
In the present embodiment, the process of recovering the data of the stripe in the mirroring mode M (mirroring stripe) to the data of the stripe in the parity mode P is executed when a predetermined condition is satisfied. Here, the above-described recovery processing is performed when the disk array apparatus 1 is in an idle state in which the disk array apparatus 1 is not accessed from the host 2 or when the number of empty stripes falls below a predetermined number (that is, when there are insufficient empty stripes). It is executed when a predetermined condition is satisfied.
[0066]
First, the access control unit 115 selects a stripe of the mirroring mode M to be subjected to recovery processing based on the stripe mode management table 113 (step S61). Here, as long as the total amount of valid data falls within one stripe in the parity mode, a plurality of stripes in the mirroring mode M may be selected. Here, it is assumed that the stripe starting from the physical address “4” and the stripe starting from the physical address “12” in FIG. 6 are selected.
[0067]
Next, the access control unit 115 searches for a free stripe based on the free area management table 114 (step S62). Here, the stripe starting from the physical address “0” in FIG. 6 is detected as an empty stripe. Here, among the stripe units of the HDD 0 constituting the stripe starting from the physical address “0”, the data stored in the blocks of the physical addresses 0 and 1 have the contents of the corresponding entries of the address conversion table 112 shown in FIG. It is assumed that the state has been updated to the state of FIG. 7 and has already been invalidated.
[0068]
Next, the access control unit 115 sequentially copies the data of the stripe in the mirroring mode M selected in step S61 to the data area of the empty stripe found in step S62 (step S63). In the example of FIG. 14, the data of the physical address “12” of the HDD 0 is copied to the area of the physical address 0 of the HDD 0 (Step S71). In this step S71, the data of the physical addresses 4 to 7 of the HDD 1 are copied to the area of the physical addresses 0 to 3 of the HDD 1.
[0069]
In step S63, the access control unit 115 generates the parity of the stripe on which the valid data has been copied, and writes the parity into the parity area of the stripe. In the example of FIG. 14, the data (data of the stripe unit) of the physical addresses “0” to “3” of the HDDs 0 and 1 are read out, and an exclusive OR operation is performed between the data to obtain the data. Data parity is generated (step S72). The generated parity is written into the physical addresses “0” to “3” of the HDD 2.
[0070]
After completing the execution of step S63, the access control unit 115 updates the address conversion table 112 (and the free area management table 114) (step S64). FIG. 15 shows the contents of the updated address translation table 112 in the example of FIG.
[0071]
Further, the access control unit 115 updates the stripe mode management table 113, cancels the mirroring mode M of the stripe selected in step S61, and switches to the parity mode P (step S65). Thereby, in the example of FIG. 14, the mirroring mode M of the stripe starting from the physical address “4” and the mirroring mode M of the stripe starting from the physical address “12” are released (step S73). FIG. 16 shows the contents of the updated stripe mode management table 113 in the example of FIG.
[0072]
Note that the process of recovering the data of the stripe in the mirroring mode M into the data of the stripe in the parity mode P can be executed not integrally with the effective data relocation process but as an independent process. The effective data relocation process is a process of collecting valid data, which is arranged in pieces on the disks 120-0 (HDD0) to 120-2 (HDD2) in the disk array device 1, and relocating them on a stripe. It is.
[0073]
Next, the arrangement of a plurality of sets of mirroring data on one stripe will be described.
When the disk array (logical disk) is composed of 2n or 2n + 1 physical disks (n is an integer of 2 or more), mirroring is performed for each pair of (two) physical disks. It is possible to secure a maximum of n sets of mirroring areas in a stripe. Now, as shown in FIG. 17, a disk 120-3 (HDD3) is added to the disk array 12 including the disks 120-0 (HDD0) to 120-2 (HDD2) in FIG. It is assumed that the disk array 12 is composed of the physical disks. In this case, as shown in FIG. 17, the areas of, for example, HDD0 and HDD1 in one stripe are allocated for mirroring data, and the areas of HDD2 and HDD3 in the stripe are allocated for another mirroring data. As a result, more redundant data can be held by the mirroring mode M stripe.
[0074]
Next, write processing in a state where the disk array 12 is degenerated will be described with reference to the operation explanatory diagram of FIG. 18 and the flowchart of FIG. Note that the degraded state refers to a state in which, for example, one of a plurality of physical disks constituting a disk array (logical disk) becomes inaccessible due to a failure, and operation is continued with the remaining physical disks.
[0075]
Now, it is assumed that, for example, the disk 120-2 (HDD2) among the disks 120-0 (HDD0) to 120-2 (HDD2) constituting the disk array 12 in FIG. 1 has failed as shown in FIG. In this case, since the disk array 12 is operated in a degenerated state, it has no redundancy. In such a state, the speed of the write process can be increased by executing the write process according to the procedure shown in the flowchart of FIG.
[0076]
The access control unit 115 determines that all non-failed physical disk areas (that is, accessible areas) are parity mode P stripes of data areas (that is, areas where no parity exists). A stripe including an empty data area) is searched (step S81). Here, as the stripe including the free data area, as shown in FIG. 18, the areas of the normal disks 120-0 (HDD0) and 120-1 (HDD1) are the data areas 180 and 181, and the failed disk 120-1 (HDD1). Assume that the stripe of the parity area 182 is detected in the area of the HDD 2). In this case, the access control unit 115 assigns the physical address of the free data area in the stripe detected in step S81 to the logical address to be written this time (step S82).
[0077]
Next, the access control unit 115 writes data in the area of the physical address allocated in step S82 while keeping the mode of the stripe detected in step S81 as the parity mode P (step S83). Here, as shown in FIG. 18, data is written to the first block of the data area 180 in the HDD 0 (step S80). In this data writing, since the HDD 2 that provides the parity area of the stripe of the parity mode P detected in step S81 has failed, that is, the parity area cannot be used, so that there is no need for parity calculation. Further, since the stripe on which the data writing has been performed is maintained in the parity mode P, unlike the above-described case of writing the mirroring data to the empty stripe, recovery processing to the parity mode P is not required.
[0078]
Note that the present invention is not limited to the above-described embodiment, and can be variously modified in an implementation stage without departing from the gist of the invention. Further, the embodiments include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. For example, even if some components are deleted from all the components shown in the embodiment, the problem described in the column of the problem to be solved by the invention can be solved, and the effects described in the column of the effect of the invention can be solved. Is obtained, a configuration from which this configuration requirement is deleted can be extracted as an invention.
[0079]
【The invention's effect】
As described above in detail, according to the present invention, when writing data in write-through, a configuration is employed in which a free area of a stripe in the mirroring mode is searched for and data is written in the free area in the mirroring mode, so that parity generation is unnecessary. In addition, the write-through processing can be speeded up while eliminating the overhead of the read processing for parity generation while ensuring redundancy.
[Brief description of the drawings]
FIG. 1 is an exemplary block diagram showing the configuration of a computer system including a disk controller according to an embodiment of the present invention.
FIG. 2 is a diagram showing a data structure example of an address conversion table 112 in FIG.
FIG. 3 is a view showing an example of a data structure of a stripe mode management table 113 in FIG. 1;
4 shows an address conversion table 112 having the contents shown in FIG. 2 and a stripe mode management table 113 having the contents shown in FIG. The figure which shows the state of the disk 120-0 (HDD0)-120-2 (HDD2).
FIG. 5 is an exemplary flowchart illustrating the procedure of a write process according to the embodiment;
FIG. 6 is an exemplary view for explaining write processing and overwriting in a mirroring mode M area in the embodiment.
FIG. 7 is a view showing the contents of an address conversion table 112 after execution of the write processing shown in FIG. 6;
FIG. 8 is a view showing the contents of a stripe mode management table 113 after execution of the write processing shown in FIG. 6;
FIG. 9 is an exemplary view for explaining a method of selecting an area of a disk to which valid data in a mirroring stripe is written.
FIG. 10 is an exemplary view for explaining a method of selecting a disk area from which valid data in a mirroring stripe is to be read;
FIG. 11 is a diagram for explaining write processing of data of a stripe size;
FIG. 12 is a flowchart showing a procedure for overwriting an area in the mirroring mode M;
FIG. 13 is a flowchart illustrating a procedure of a process of recovering data of a stripe in a mirroring mode M to data of a stripe in a parity mode P;
FIG. 14 is a view for explaining the recovery processing.
15 is a diagram showing the contents of an updated address translation table 112 in the example of FIG. 14;
FIG. 16 is a diagram showing the contents of an updated stripe mode management table 113 in the example of FIG. 14;
FIG. 17 is a view for explaining the arrangement of a plurality of sets of mirroring data on one stripe.
FIG. 18 is a diagram for explaining write processing in a state where the disk array 12 is degenerated.
FIG. 19 is a flowchart showing the procedure of a write process when the disk array 12 is degenerated.
[Explanation of symbols]
1. Disk array device
2. Host (host computer)
11 ... Disk controller
12 ... Disk array (redundant logical disk)
111: Cache memory
112 ... Address conversion table (address conversion information storage means)
113: Stripe mode management table (stripe mode management information storage means)
114... Free area management table (free area management information storage means)
115 ... Access control unit
120-0, 120-1, 120-2, 120-3 ... physical disks (HDD0, HDD1, HDD2, HDD3)

Claims (13)

複数の物理ディスクにより構成され、パリティまたはミラーリングのいずれかのモードでデータが保持されるストライプを単位に管理される冗長化論理ディスクに対し、ライトスルーでデータを書き込むためのライトスルー処理方法であって、
ホストから要求されたデータのライトスルーでの書き込みに際し、前記ミラーリングモードのストライプの空き領域を探索するステップと、
前記探索されたミラーリングモードのストライプの空き領域に前記ミラーリングモードでデータを書き込むステップと
を具備することを特徴とするライトスルー処理方法。
This is a write-through processing method for writing data by write-through to a redundant logical disk that is configured by a plurality of physical disks and managed in stripes in which data is retained in either parity or mirroring mode. hand,
Searching for a free area of the stripe in the mirroring mode when writing in write-through of data requested by the host;
Writing data in the mirroring mode to the found free area of the stripe in the mirroring mode in the mirroring mode.
前記ミラーリングモードのストライプを探索するステップと、
前記探索されたミラーリングモードのストライプのデータを前記パリティモードのストライプのデータに変更するステップと
を更に具備することを特徴とする請求項1記載のライトスルー処理方法。
Searching for the stripe in the mirroring mode;
2. The write-through processing method according to claim 1, further comprising the step of: changing the data of the searched mirroring mode stripe to the data of the parity mode stripe.
前記ミラーリングモードのストライプを探索するステップと、前記探索されたミラーリングモードのストライプのデータを前記パリティモードのストライプのデータに変更するステップとは、空きストライプが予め定められた数を下回った場合を含む条件のうちの予め定められた条件の成立時に実行されることを特徴とする請求項2記載のライトスルー処理方法。The step of searching for the mirroring mode stripe and the step of changing the searched mirroring mode stripe data to the parity mode stripe data include a case where the number of empty stripes is less than a predetermined number. 3. The write-through processing method according to claim 2, wherein the method is executed when a predetermined condition among the conditions is satisfied. 前記ミラーリングモードのストライプの空き領域が見つからなかった場合に、空きストライプを探索するステップと、
前記探索された空きストライプを構成する前記複数の物理ディスクの領域のうち、相対的に高速アクセスが可能なミラーリング用の1対の物理ディスクの領域を空き領域として選択するステップと
を更に具備し、
前記ミラーリングモードでデータを書き込むステップでは、前記探索された空きストライプ中の前記選択された物理ディスクの領域に前記ミラーリングモードでデータを書き込む
ことを特徴とする請求項1記載のライトスルー処理方法。
A step of searching for a free stripe when no free area of the stripe in the mirroring mode is found;
Selecting, as a free area, a pair of physical disks for mirroring, which can be accessed at relatively high speed, among the plurality of physical disks constituting the searched free stripe.
2. The write-through processing method according to claim 1, wherein in the step of writing data in the mirroring mode, the data is written in the mirroring mode in an area of the selected physical disk in the searched empty stripe.
前記ホストからのリード要求で指定された論理アドレスのデータが前記ミラーリングモードのストライプに存在する場合に、そのデータが書き込まれている当該ストライプ中の1対の物理ディスクの領域のうち、相対的に高速アクセスが可能な物理ディスクの領域をリード対象として選択するステップを更に具備することを特徴とする請求項1記載のライトスルー処理方法。When the data of the logical address specified by the read request from the host exists in the stripe in the mirroring mode, the data is relatively written among the pair of physical disks in the stripe in which the data is written. 2. The write-through processing method according to claim 1, further comprising the step of selecting a high-speed accessible physical disk area as a read target. 前記ホストからのライト要求で指定された論理アドレスのデータが前記ミラーリングモードのストライプに存在する場合に、そのデータを、当該ストライプに前記ミラーリングモードで上書きするステップを更に具備することを特徴とする請求項1記載のライトスルー処理方法。When the data of the logical address specified by the write request from the host exists in the stripe in the mirroring mode, the method further comprises a step of overwriting the data on the stripe in the mirroring mode. Item 7. The write-through processing method according to Item 1. 前記ホストからのライト要求で指定されたデータのサイズが前記ストライプのデータ領域のサイズであるストライプサイズ以上の場合、当該ストライプサイズのデータを単位に空きストライプを探索して、その空きストライプに当該ストライプサイズのデータをパリティモードで書き込むステップを更に具備し、
前記ミラーリングモードでデータを書き込むステップでは、前記ライト要求で指定されたデータのサイズが前記ストライプサイズに満たない場合には当該データを前記ミラーリングモードで書き込み、前記ライト要求で指定されたデータのサイズが前記ストライプサイズを超えている場合には、当該データのうち、前記ストライプサイズのデータを単位とする前記パリティモードでの書き込みの対象とならない残りのデータを前記ミラーリングモードで書き込む
ことを特徴とする請求項1記載のライトスルー処理方法。
If the size of the data specified by the write request from the host is equal to or larger than the stripe size, which is the size of the data area of the stripe, a search is made for a free stripe in units of data of the stripe size, and the stripe Writing data of a size in a parity mode,
In the step of writing data in the mirroring mode, when the size of the data specified in the write request is less than the stripe size, the data is written in the mirroring mode, and the size of the data specified in the write request is When the data size exceeds the stripe size, the remaining data which is not to be written in the parity mode in units of the data of the stripe size among the data is written in the mirroring mode. Item 1. The write-through processing method according to Item 1.
前記ミラーリングモードでデータを書き込むステップでは、前記冗長化論理ディスクを構成する前記物理ディスクの数が4以上の場合に、少なくとも2組の1対の物理ディスクの領域をミラーリングのデータの領域として、そのうちの1組を選択使用することを特徴とする請求項1記載のライトスルー処理方法。In the step of writing data in the mirroring mode, in a case where the number of the physical disks constituting the redundant logical disk is four or more, at least two pairs of physical disk areas are used as mirroring data areas. 2. The write-through processing method according to claim 1, wherein one set is selected and used. 前記冗長化論理ディスクを構成する前記複数の物理ディスクのうちの1つが故障している場合の、前記ホストから要求されたデータのライトスルーでの書き込みに際し、アクセス可能な領域にパリティデータが存在しない前記パリティモードのストライプから空きデータ領域を探索するステップと、
前記探索された、アクセス可能な領域にパリティデータが存在しないストライプの空きデータ領域に、データの書き込み先を割り当て、当該ストライプのモードを前記パリティモードに保ったまま、当該空きデータ領域にデータを書き込むステップと
を更に具備することを特徴とする請求項1記載のライトスルー処理方法。
When one of the plurality of physical disks constituting the redundant logical disk has failed, at the time of write-through writing of data requested by the host, there is no parity data in an accessible area. Searching for a free data area from the stripe in the parity mode;
A data write destination is allocated to the found free data area of the stripe in which no parity data exists in the accessible area, and data is written to the free data area while maintaining the mode of the stripe in the parity mode. 2. The write-through processing method according to claim 1, further comprising:
複数の物理ディスクにより構成され、パリティまたはミラーリングのいずれかのモードでデータが保持されるストライプを単位に管理される冗長化論理ディスクに対し、ライトスルーでデータを書き込むためのライトスルー処理用プログラムであって、
前記冗長化論理ディスクを制御するディスクコントローラに、
前記ホストから要求されたデータのライトスルーでの書き込みに際し、前記ミラーリングモードのストライプの空き領域を探索するステップと、
前記探索されたミラーリングモードのストライプの空き領域に前記ミラーリングモードでデータを書き込むステップと
を実行させるためのライトスルー処理用プログラム。
A write-through processing program for writing data in a write-through manner to a redundant logical disk that is composed of multiple physical disks and is managed in stripes in which data is retained in either parity or mirroring mode. So,
A disk controller for controlling the redundant logical disk,
Upon writing in write-through of the data requested from the host, searching for a free area of the stripe in the mirroring mode,
A step of writing data in the mirroring mode into a free area of the searched stripe in the mirroring mode.
複数の物理ディスクにより構成され、パリティまたはミラーリングのいずれかのモードでデータが保持されるストライプを単位に管理される冗長化論理ディスクに対するアクセスを制御するディスクコントローラであって、
ホストから要求されたデータのライトスルーでの書き込みに際し、前記ミラーリングモードのストライプの空き領域を探索する手段と、
前記探索手段により探索されたミラーリングモードのストライプの空き領域に前記ミラーリングモードでデータを書き込む手段と
を具備することを特徴とするディスクコントローラ。
A disk controller configured to control access to a redundant logical disk that is configured by a plurality of physical disks and that is managed in units of stripes in which data is retained in one of a parity mode and a mirroring mode,
Means for searching for an empty area of the stripe in the mirroring mode when writing in write-through of data requested by the host,
Means for writing data in the mirroring mode in an empty area of the stripe in the mirroring mode searched by the search means.
前記ミラーリングモードのストライプを探索する手段と、前記探索されたミラーリングモードのストライプのデータを前記パリティモードのストライプのデータに変更する回復処理手段と
を更に具備することを特徴とする請求項11記載のディスクコントローラ。
12. The apparatus according to claim 11, further comprising: means for searching for the mirroring mode stripe; and recovery processing means for changing the searched mirroring mode stripe data to the parity mode stripe data. Disk controller.
論理アドレスと当該論理アドレスに対応する物理アドレスであって、当該論理アドレスのデータが格納されている、前記冗長化論理ディスクを構成する物理ディスク内の領域の物理アドレスとの対応関係を示すアドレス変換情報を記憶する手段と、
前記冗長化論理ディスクの各ストライプについて、当該ストライプのデータが前記パリティモードまたは前記ミラーリングモードのいずれで保持されているかを示すと共に、前記ミラーリングモードの場合には、有効なデータが保持されている少なくとも1組の1対の物理ディスクを示すストライプモード管理情報を記憶する手段と、
前記冗長化論理ディスクの各ストライプについて、当該ストライプの空きの有無と、当該ストライプ中の対応する物理ディスクの物理ブロック毎の空きの有無とを示す空き領域管理情報を記憶する手段と、
前記書き込み手段によるデータ書き込みに応じて前記アドレス変換情報記憶手段及び前記空き領域管理情報記憶手段の記憶内容を更新する手段と
を更に具備し、
前記空き領域探索手段は、前記ストライプモード管理情報記憶手段及び前記空き領域管理情報記憶手段の記憶内容をもとに前記ミラーリングモードのストライプの空き領域を探索することを特徴とする請求項11記載のディスクコントローラ。
Address conversion indicating a correspondence relationship between a logical address and a physical address corresponding to the logical address, the physical address of an area in the physical disk constituting the redundant logical disk in which data of the logical address is stored. Means for storing information;
For each stripe of the redundant logical disk, it indicates whether the data of the stripe is held in the parity mode or the mirroring mode, and in the case of the mirroring mode, at least valid data is held Means for storing stripe mode management information indicating a pair of physical disks;
Means for storing, for each stripe of the redundant logical disk, free space management information indicating whether or not there is free space in the stripe and whether or not there is free space for each physical block of the corresponding physical disk in the stripe;
Means for updating storage contents of the address conversion information storage means and the free space management information storage means in accordance with data writing by the writing means,
12. The apparatus according to claim 11, wherein the free area search means searches for a free area of the stripe in the mirroring mode based on the storage contents of the stripe mode management information storage means and the free area management information storage means. Disk controller.
JP2002265855A 2002-09-11 2002-09-11 Write-through processing method, write-through processing program and disk controller for redundant logical disk Expired - Fee Related JP3730609B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002265855A JP3730609B2 (en) 2002-09-11 2002-09-11 Write-through processing method, write-through processing program and disk controller for redundant logical disk

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002265855A JP3730609B2 (en) 2002-09-11 2002-09-11 Write-through processing method, write-through processing program and disk controller for redundant logical disk

Publications (2)

Publication Number Publication Date
JP2004102823A true JP2004102823A (en) 2004-04-02
JP3730609B2 JP3730609B2 (en) 2006-01-05

Family

ID=32264872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002265855A Expired - Fee Related JP3730609B2 (en) 2002-09-11 2002-09-11 Write-through processing method, write-through processing program and disk controller for redundant logical disk

Country Status (1)

Country Link
JP (1) JP3730609B2 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006120120A (en) * 2004-10-20 2006-05-11 Seagate Technology Llc General storage container for assigning a plurality of data formats
JP2008171537A (en) * 2006-12-20 2008-07-24 Internatl Business Mach Corp <Ibm> Apparatus and method to generate, restore, store, write, and read a plurality of error correction coded data sets
US7552278B2 (en) 2005-06-24 2009-06-23 Fujitsu Limited Disk array access dynamic control device and method
JP2016511879A (en) * 2013-02-01 2016-04-21 ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited Method and apparatus for enabling more detailed and expandable allocation of storage in a data storage system
CN114924778A (en) * 2022-04-01 2022-08-19 北京遥测技术研究所 Program upgrading method based on ZYNQ redundant backup
CN114924778B (en) * 2022-04-01 2024-04-26 北京遥测技术研究所 Program upgrading method based on ZYNQ redundancy backup

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006120120A (en) * 2004-10-20 2006-05-11 Seagate Technology Llc General storage container for assigning a plurality of data formats
US7552278B2 (en) 2005-06-24 2009-06-23 Fujitsu Limited Disk array access dynamic control device and method
JP2008171537A (en) * 2006-12-20 2008-07-24 Internatl Business Mach Corp <Ibm> Apparatus and method to generate, restore, store, write, and read a plurality of error correction coded data sets
US8667379B2 (en) 2006-12-20 2014-03-04 International Business Machines Corporation Apparatus and method to generate, store, and read, a plurality of error correction coded data sets
JP2016511879A (en) * 2013-02-01 2016-04-21 ヒタチ データ システムズ エンジニアリング ユーケー リミテッドHitachi Data Systems Engineering Uk Limited Method and apparatus for enabling more detailed and expandable allocation of storage in a data storage system
CN114924778A (en) * 2022-04-01 2022-08-19 北京遥测技术研究所 Program upgrading method based on ZYNQ redundant backup
CN114924778B (en) * 2022-04-01 2024-04-26 北京遥测技术研究所 Program upgrading method based on ZYNQ redundancy backup

Also Published As

Publication number Publication date
JP3730609B2 (en) 2006-01-05

Similar Documents

Publication Publication Date Title
JP3505093B2 (en) File management system
JP5264203B2 (en) Power efficient storage using data deduplication
US5410667A (en) Data record copy system for a disk drive array data storage subsystem
US6941420B2 (en) Log-structure array
US8131969B2 (en) Updating system configuration information
JP3697149B2 (en) How to manage cache memory
US8607010B2 (en) Information processing system and management device for managing relocation of data based on a change in the characteristics of the data over time
US20030236944A1 (en) System and method for reorganizing data in a raid storage system
WO2011042428A1 (en) Secondary cache for write accumulation and coalescing
JP2013517537A (en) Storage system and ownership control method in storage system
JP2000010738A (en) Disk array system, storage capacity extension method applied in the system, and record medium
US9471252B2 (en) Use of flash cache to improve tiered migration performance
JP2001243021A (en) Disk control mechanism suitable for random disk write
JPH0863298A (en) Disk array device
US7676644B2 (en) Data processing system, storage apparatus and management console
JP4189342B2 (en) Storage apparatus, storage controller, and write-back cache control method
US7908434B2 (en) Raid apparatus, cache management method, and computer program product
JP4838054B2 (en) Disk array device and load balancing method thereof
JP3687111B2 (en) Storage device system and storage device control method
JPH09288547A (en) Array-type storage device
US20040133741A1 (en) Disk array apparatus and data writing method used in the disk array apparatus
JP3730609B2 (en) Write-through processing method, write-through processing program and disk controller for redundant logical disk
US20130159656A1 (en) Controller, computer-readable recording medium, and apparatus
JP4734432B2 (en) Data storage system
JP2002014776A (en) Disk control system and data rearranging method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050628

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050829

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051006

LAPS Cancellation because of no payment of annual fees