JP3730609B2 - 冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラ - Google Patents
冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラ Download PDFInfo
- Publication number
- JP3730609B2 JP3730609B2 JP2002265855A JP2002265855A JP3730609B2 JP 3730609 B2 JP3730609 B2 JP 3730609B2 JP 2002265855 A JP2002265855 A JP 2002265855A JP 2002265855 A JP2002265855 A JP 2002265855A JP 3730609 B2 JP3730609 B2 JP 3730609B2
- 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.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、複数の物理ディスクから構成される冗長性を持つ論理ディスク(ディスクアレイ)を制御するディスクコントローラに係り、特にホストから要求されたライトデータをライトスルーで当該論理ディスクに書き込むための冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラに関する。
【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)
Claims (12)
- 複数の物理ディスクにより構成され、パリティモードまたはミラーリングモードのいずれのモードでもデータの保持が可能なストライプを単位に管理される冗長化論理ディスクに対し、ライトスルーでデータを書き込むためのライトスルー処理方法であって、
ホストから要求されたデータのライトスルーでの書き込みに際し、前記ミラーリングモードのストライプの空き領域を探索するステップと、
前記ミラーリングモードのストライプの空き領域が見つからなかった場合に、空きストライプを探索するステップと、
前記探索された空きストライプを前記ミラーリングモードに切り替えるステップと、
前記ミラーリングモードのストライプの空き領域が見つかった場合には当該ミラーリングモードのストライプの空き領域に、前記ミラーリングモードのストライプの空き領域が見つからなかった場合には、前記探索されて前記ミラーリングモードに切り替えられた空きストライプの空き領域に、前記ミラーリングモードでデータを書き込むステップと、
前記パリティモードでデータを書き込む際、空きストライプを探索し、当該空きストライプを前記パリティモードに切り替えてから当該空きストライプにパリティモードでデータを書き込むステップと
を具備することを特徴とするライトスルー処理方法。 - 前記ミラーリングモードのストライプを探索するステップと、
前記探索されたミラーリングモードのストライプのデータを前記パリティモードのストライプのデータに変更するステップと
を更に具備することを特徴とする請求項1記載のライトスルー処理方法。 - 前記ミラーリングモードのストライプを探索するステップと、前記探索されたミラーリングモードのストライプのデータを前記パリティモードのストライプのデータに変更するステップとは、空きストライプが予め定められた数を下回った場合を含む条件のうちの予め定められた条件の成立時に実行されることを特徴とする請求項2記載のライトスルー処理方法。
- 前記ミラーリングモードのストライプの空き領域が見つからなかった場合に探索された空きストライプを構成する前記複数の物理ディスクの領域のうち、相対的に高速アクセスが可能なミラーリング用の1対の物理ディスクの領域を空き領域として選択するステップを更に具備し、
前記ミラーリングモードでデータを書き込むステップでは、前記探索された空きストライプ中の前記選択された物理ディスクの領域に前記ミラーリングモードでデータを書き込む
ことを特徴とする請求項1記載のライトスルー処理方法。 - 前記ホストからのリード要求で指定された論理アドレスのデータが前記ミラーリングモードのストライプに存在する場合に、そのデータが書き込まれている当該ストライプ中の1対の物理ディスクの領域のうち、相対的に高速アクセスが可能な物理ディスクの領域をリード対象として選択するステップを更に具備することを特徴とする請求項1記載のライトスルー処理方法。
- 前記ホストからのライト要求で指定された論理アドレスのデータが前記ミラーリングモードのストライプに存在する場合に、そのデータを、当該ストライプに前記ミラーリングモードで上書きするステップを更に具備することを特徴とする請求項1記載のライトスルー処理方法。
- 複数の物理ディスクにより構成され、パリティモードまたはミラーリングモードのいずれのモードでもデータの保持が可能なストライプを単位に管理される冗長化論理ディスクに対し、ライトスルーでデータを書き込むためのライトスルー処理方法であって、
ホストからのライト要求で指定されたデータのライトスルーでの書き込みに際し、当該データのサイズが前記ストライプのデータ領域のサイズであるストライプサイズ以上であ るかを判定するステップと、
前記ライト要求で指定されたデータのサイズが前記ストライプサイズ以上の場合、当該ストライプサイズのデータを単位に空きストライプを探索して、その空きストライプに当該ストライプサイズのデータをパリティモードで書き込むステップと、
前記ライト要求で指定されたデータのサイズが前記ストライプサイズに満たない場合と、前記ライト要求で指定されたデータのサイズが前記ストライプサイズを超えているために、当該データのうち、前記ストライプサイズのデータを単位とする前記パリティモードでの書き込みの対象とならない前記ストライプサイズに満たないデータが残されている場合とに、前記ミラーリングモードのストライプの空き領域を探索するステップと、
前記探索されたミラーリングモードのストライプの空き領域に前記ストライプサイズに満たないデータを前記ミラーリングモードで書き込むステップと
を具備することを特徴とするライトスルー処理方法。 - 前記ミラーリングモードでデータを書き込むステップでは、前記冗長化論理ディスクを構成する前記物理ディスクの数が4以上の場合に、少なくとも2組の1対の物理ディスクの領域をミラーリングのデータの領域として、そのうちの1組を選択使用することを特徴とする請求項1記載のライトスルー処理方法。
- 前記冗長化論理ディスクを構成する前記複数の物理ディスクのうちの1つが故障している場合の、前記ホストから要求されたデータのライトスルーでの書き込みに際し、アクセス可能な領域にパリティデータが存在しない前記パリティモードのストライプから空きデータ領域を探索するステップと、
前記探索された、アクセス可能な領域にパリティデータが存在しないストライプの空きデータ領域に、データの書き込み先を割り当て、当該ストライプのモードを前記パリティモードに保ったまま、当該空きデータ領域にデータを書き込むステップと
を更に具備することを特徴とする請求項1記載のライトスルー処理方法。 - 複数の物理ディスクにより構成され、パリティモードまたはミラーリングモードのいずれのモードでもデータの保持が可能なストライプを単位に管理される冗長化論理ディスクに対し、ライトスルーでデータを書き込むためのライトスルー処理用プログラムであって、
前記冗長化論理ディスクを制御するディスクコントローラに、
ホストから要求されたデータのライトスルーでの書き込みに際し、前記ミラーリングモードのストライプの空き領域を探索するステップと、
前記ミラーリングモードのストライプの空き領域が見つからなかった場合に、空きストライプを探索するステップと、
前記探索された空きストライプを前記ミラーリングモードに切り替えるステップと、
前記ミラーリングモードのストライプの空き領域が見つかった場合には当該ミラーリングモードのストライプの空き領域に、前記ミラーリングモードのストライプの空き領域が見つからなかった場合には、前記探索されて前記ミラーリングモードに切り替えられた空きストライプの空き領域に、前記ミラーリングモードでデータを書き込むステップと、
前記パリティモードでデータを書き込む際、空きストライプを探索し、当該空きストライプを前記パリティモードに切り替えてから当該空きストライプにパリティモードでデータを書き込むステップと
を実行させるためのライトスルー処理用プログラム。 - 複数の物理ディスクにより構成され、パリティまたはミラーリングのいずれかのモードでデータが保持されるストライプを単位に管理される冗長化論理ディスクに対するアクセスを制御するディスクコントローラであって、
論理アドレスと当該論理アドレスに対応する物理アドレスであって、当該論理アドレスのデータが格納されている、前記冗長化論理ディスクを構成する物理ディスク内の領域の物理アドレスとの対応関係を示すアドレス変換情報を記憶する手段と、
前記冗長化論理ディスクの各ストライプについて、当該ストライプのデータが前記パリティモードまたは前記ミラーリングモードのいずれで保持されているかを示すと共に、前 記ミラーリングモードの場合には、有効なデータが保持されている少なくとも1組の1対の物理ディスクを示すストライプモード管理情報を記憶する手段と、
前記冗長化論理ディスクの各ストライプについて、当該ストライプの空きの有無と、当該ストライプ中の対応する物理ディスクの物理ブロック毎の空きの有無とを示す空き領域管理情報を記憶する手段と、
ホストから要求されたデータのライトスルーでの書き込みに際し、前記ストライプモード管理情報記憶手段及び前記空き領域管理情報記憶手段の記憶内容をもとに前記ミラーリングモードのストライプの空き領域を探索する手段と、
前記探索手段により探索されたミラーリングモードのストライプの空き領域に前記ミラーリングモードでデータを書き込む手段と
を具備することを特徴とするディスクコントローラ。 - 前記ミラーリングモードのストライプを探索する手段と、
前記探索されたミラーリングモードのストライプのデータを前記パリティモードのストライプのデータに変更する回復処理手段と
を更に具備することを特徴とする請求項11記載のディスクコントローラ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002265855A JP3730609B2 (ja) | 2002-09-11 | 2002-09-11 | 冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002265855A JP3730609B2 (ja) | 2002-09-11 | 2002-09-11 | 冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004102823A JP2004102823A (ja) | 2004-04-02 |
JP3730609B2 true JP3730609B2 (ja) | 2006-01-05 |
Family
ID=32264872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002265855A Expired - Fee Related JP3730609B2 (ja) | 2002-09-11 | 2002-09-11 | 冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3730609B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8131926B2 (en) * | 2004-10-20 | 2012-03-06 | Seagate Technology, Llc | Generic storage container for allocating multiple data formats |
JP4327130B2 (ja) | 2005-06-24 | 2009-09-09 | 富士通株式会社 | ディスクアレイアクセス動的制御装置、及び方法 |
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 |
EP2951674B1 (en) * | 2013-02-01 | 2019-08-14 | Hitachi Vantara Corporation | Method and apparatus to enable finer-grained, scalable allocation of storage in a data storage system |
JP6696280B2 (ja) * | 2016-04-13 | 2020-05-20 | 富士通株式会社 | 情報処理装置、raid制御方法、およびraid制御プログラム |
CN114924778B (zh) * | 2022-04-01 | 2024-04-26 | 北京遥测技术研究所 | 一种基于zynq冗余备份的程序升级方法 |
-
2002
- 2002-09-11 JP JP2002265855A patent/JP3730609B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004102823A (ja) | 2004-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6675176B1 (en) | File management system | |
JP3697149B2 (ja) | キャッシュ・メモリを管理する方法 | |
US6704839B2 (en) | Data storage system and method of storing data | |
US5410667A (en) | Data record copy system for a disk drive array data storage subsystem | |
US6941420B2 (en) | Log-structure array | |
US6915382B2 (en) | Apparatus and method for reallocating logical to physical disk devices using a storage controller, with access frequency and sequential access ratio calculations and display | |
JP3245001B2 (ja) | データ処理システムおよびその操作方法 | |
US8131969B2 (en) | Updating system configuration information | |
US7032070B2 (en) | Method for partial data reallocation in a storage system | |
US20030236944A1 (en) | System and method for reorganizing data in a raid storage system | |
EP0899731B1 (en) | Improved disk log using distributed write | |
JPH08221326A (ja) | 記憶制御装置及びその制御方法 | |
WO2011042428A1 (en) | Secondary cache for write accumulation and coalescing | |
JPH0619632A (ja) | コンピユータ・システムのストレージ装置及びデータのストア方法 | |
JP2000010738A (ja) | ディスクアレイシステム、同システムに適用される記憶容量拡張方法および記録媒体 | |
JP4131894B2 (ja) | ランダムディスクライトに好適なディスク制御機構 | |
US9471252B2 (en) | Use of flash cache to improve tiered migration performance | |
US7676644B2 (en) | Data processing system, storage apparatus and management console | |
JP3730609B2 (ja) | 冗長化論理ディスクに対するライトスルー処理方法、ライトスルー処理用プログラム及びディスクコントローラ | |
JP4189342B2 (ja) | ストレージ装置、ストレージコントローラ及びライトバックキャッシュ制御方法 | |
JP6451770B2 (ja) | ストレージ制御装置およびストレージ制御プログラム | |
JP3687111B2 (ja) | 記憶装置システムおよび記憶装置の制御方法 | |
JP2002014776A (ja) | ディスク制御システムおよびデータ再配置方法 | |
US20130159656A1 (en) | Controller, computer-readable recording medium, and apparatus | |
JP4734432B2 (ja) | データ記憶システム |
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 |