JP2004102822A - ディスクアレイ制御装置及びディスクアレイ制御装置におけるデータ書き込み方法 - Google Patents
ディスクアレイ制御装置及びディスクアレイ制御装置におけるデータ書き込み方法 Download PDFInfo
- Publication number
- JP2004102822A JP2004102822A JP2002265854A JP2002265854A JP2004102822A JP 2004102822 A JP2004102822 A JP 2004102822A JP 2002265854 A JP2002265854 A JP 2002265854A JP 2002265854 A JP2002265854 A JP 2002265854A JP 2004102822 A JP2004102822 A JP 2004102822A
- Authority
- JP
- Japan
- Prior art keywords
- address
- block
- written
- data block
- cluster
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】本発明は、書き込み対象となるデータブロックの物理ブロック番号が前記アドレス変換テーブルに登録されているか否かを判断し(S601)、登録されていると判断された場合、物理クラスタ管理テーブルを参照して、空き物理クラスタを確保することができるか否かを判断し(S608)、確保することができると判断された場合、空き物理クラスタを確保し、この確保された空き物理クラスタに書き込み対象となるデータブロックを書き込む(S612〜S615)。
【選択図】 図6
Description
【発明の属する技術分野】
本発明は、計算機システムのディスクアレイ制御装置及びこのようなディスクアレイ制御装置におけるデータ書き込み方法に関する。
【0002】
【従来の技術】
従来、RAID(Redundant Array of Independent Disks)の高速化方式の1つとして、制御対象の論理ディスクの全てのユーザ領域に関してクラスタ単位でのログ化書きこみ(ログ構造化ファイルシステム)を行っていた。
【0003】
この方式では、特に、RAID5に対する複数のランダムライト要求に対して、それらを一続き、かつクラスタサイズで物理ディスクに対して一括して書きこむということをしていた。この結果、従来パリティの再計算のために必要であった、ライト処理前のデータ(元のデータ、及び書きこむ前のパリティの値)のリードを省くことができ、効率の良いライト処理を実現していた。このような技術としては、例えば、特開平11−53235号公報、特開2001−184172号公報、特開2002−14776号公報に開示されている。
【0004】
【発明が解決しようとする課題】
しかしながら、このようなRAID高速化方式では、対象の論理ディスクの全てのユーザ領域のデータブロック管理単位に対してアドレス変換テーブルでアドレス変換を行なう必要があった。このため、制御対象の論理ディスクの容量に比例したサイズのアドレス変換テーブルが必要であり、論理ディスクを構成するディスクのサイズが大きい場合や、ディスク台数が多い時には、論理ディスクの容量が大きくなり、そのアドレス変換テーブルはRAIDコントローラが使えるメモリの容量を越えてしまいかねなかった。
【0005】
この問題を回避するために、例えば、以下の2つの方法が考えられる。
【0006】
1. ディスク上にアドレス変換テーブルを置き、現在参照しているエントリを含むアドレス変換テーブルのサブセットのみメモリ上にロードしてアクセスし、変更したアドレス変換テーブルのサブセットは適切なタイミングでディスク上に書き戻す(アドレス変換テーブルのキャッシング)。このようにして、限りあるメモリ容量で大きなアドレス変換テーブルを管理する。
【0007】
2. 使用できるメモリに収まるアドレス変換テーブルのサイズで制御できるだけのサイズに論理ディスクの容量を制限する。
【0008】
しかし、上記(1)の方法は、アドレス変換テーブルのサイズに制約が無くなり、制御対象の論理ディスクの大きさも制限しなくて良いというメリットがあるものの、一方でディスクからのアドレス変換テーブルのロード・リストアにある程度の時間がかかり、かつ、その処理が終らないとアドレス決定が出来ないため本来のユーザデータのためのI/O処理も止まってしまい、結局ターンアラウンドタイムが大きくなり、性能ダウンの要因になりかねない。
【0009】
また、上記(2)の方法は、上記のような性能面でのデメリットは無いが、代りに論理ディスクの容量がアドレス変換テーブルを置くためのメモリの大きさによって制限されるというデメリットがある。
【0010】
本発明は、アドレス変換テーブルに使用するメモリの量を一定にしたまま、制御対象の論理ディスクの容量に制約を課さずにデータの高速書きこみを実現することができるディスクアレイ制御装置を提供する目的とする。
【0011】
【課題を解決するための手段】
上記目的を達成するために、本発明の第1の発明は、ディスクアレイの物理クラスタの状態を管理する物理クラスタ管理テーブルと、論理ブロック番号と、前記論理ブロック番号に対応する物理ブロック番号とを対応付けて記憶するアドレス変換テーブルと、書き込み対象となるデータブロックの物理ブロック番号が前記アドレス変換テーブルに登録されているか否かを判断する手段と、前記書き込み対象となるデータブロックの物理ブロック番号が前記アドレス変換テーブルに登録されていると判断された場合、前記物理クラスタ管理テーブルを参照して、空き物理クラスタを確保することができるか否かを判断する手段と、空き物理クラスタを確保することができると判断された場合、前記空き物理クラスタを確保し、この確保された空き物理クラスタに前記書き込み対象となるデータブロックを書き込む手段とを具備し、アドレス変換を必要とせずにアクセスできるデータブロックのみからなる直接アドレスクラスタと、アドレス変換を必要とするデータブロックを含む間接アドレスクラスタとを混在させてディスクアレイを管理することを特徴とするディスクアレイ制御装置、である。
【0012】
また、本発明の第2の発明によれば、次の書き出し対象とする空き物理クラスタが存在するか否か、或いは現在書き出し対象の物理クラスタに空き物理ブロックが存在するか否かを判断する手段と、存在すると判断された場合に、書き出し候補の論理ブロックに、要求された論理アドレスとは異なるディスク上の物理アドレスに書き込まれている間接アドレスデータブロックが存在するか否かを判断する手段と、前記書き出し候補の論理ブロックに前記間接アドレスデータブロックが存在すると判断された場合に、最も有効ブロック数の少ない物理クラスタに属している間接アドレスデータブロックを選択する手段とをさらに具備し、前記選択された間接アドレスデータブロックを前記書き込み対象となるデータブロックとして書き込むことを特徴とする請求項1記載のディスクアレイ制御装置、である。
【0013】
【発明の実施の形態】
まず、最初に、本発明の実施の形態において使用する用語の定義について説明する。
【0014】
1. ストライプセット
RAIDは、複数のディスクから論理ディスクを構成する際にストライピングという方法で論理ディスクのアドレス空間を一定サイズ毎に順番に物理ディスクに割り振る。この一定サイズのデータをストライプと呼ぶ。
【0015】
特に、RAID5の場合には、データストライプ(複数)とそれに対応するパリティストライプを1つの組にしてパリティデータの生成及びいずれか1つのディスク障害時におけるデータ再生処理を行なう。
【0016】
RAID5の論理ディスク上で、一続きの領域で「RAIDコントローラが管理するストライプサイズのディスク台数倍(データはストライプサイズの「ディスク台数−1」)」のサイズであり、かつ、そこに含まれる各ディスクのストライプサイズのデータは、それに1つだけ含まれるパリティストライプに対応するようなストライプのグループのことを「ストライプセット」と呼ぶ。
【0017】
例えば、図13は、3台のディスクから構成されるRAID5の論理ディスクである。S0、S1、・・・はストライプを示しており、例えば64KBなどの固定長である。P0、P1、・・・はパリティブロックであり、ストライプサイズである。この図で「S0、S1、P0」はストライプセットである。同様に「S2、P1、S3」、「P2、S4、S5」はそれぞれストライプセットである。なお、論理ディスク上では、データストライプの並びは、S0、S1、S2、S3、S4、S5、・・・であり、パリティのストライプは上位にはデータとして見えない。
【0018】
RAID5に対して、このサイズの整数倍のサイズを一括して書きこむことにより、パリティ再計算のためのディスクからのデータリードを省くことができ、大幅な性能向上を実現できる。これがRAIDの高速化方式の一手法である。
【0019】
2. クラスタ
ディスクの物理アドレス空間をストライプセットのサイズあるいはその整数倍の大きさ毎、かつストライプセット境界で区分した各データ単位。本方式では間接アドレスデータブロックからなるデータを「クラスタ」の単位でディスクに書き出す。ここで、直接アドレスとはアドレス変換を必要とせずにアクセスできることを意味し、間接アドレスとはアドレス変換を行なわなければアクセスすることができないことを意味する。
【0020】
3. アドレス変換テーブル
RAID高速化方式では、ホスト計算機のファイルシステムがアクセスを要求する時のブロック番号は、論理ブロック番号であり、仮想的なブロック番号である。この論理ブロック番号は,RAIDコントローラが管理する「アドレス変換テーブル」によって物理ブロック番号(論理ディスク上のブロック番号)と対応づけられる。
【0021】
アドレス変換テーブルは対象の論理ディスク上に有り、データ部と別の領域が割り当てられる。アドレス変換テーブルは、論理ブロック番号に対する物理ブロック番号が登録されたれたテーブルである。新たにデータブロックを書き込む時には、相当する論理ブロック番号のエントリに、そのブロックを書き込む物理ブロック番号(=論理ディスク上のブロック番号)を登録する。逆にデータブロックを参照する際には、その論理アドレスに対して登録されている値を求め、その値を論理ディスク上のブロック番号として実際のアドレスを求め参照する。
【0022】
4. データブロック管理単位(ブロック)
本発明の実施の形態に係るディスクアレイ制御装置のRAIDコントローラがデータを管理する単位であり固定長(例えば4KB)である。必要に応じて、この単位でアドレス変換テーブルにアドレスを登録して管理する。
【0023】
5. 論理ブロック番号
「論理ブロック番号」とは、RAIDコントローラがホスト計算機など上位から受け取るI/Oのアクセス要求アドレスをRAIDコントローラが管理するデータブロック管理単位で換算した番号である。RAID高速化方式では、ホスト計算機から要求される時のブロック番号は、論理ブロック番号であり、仮想的なブロック番号である。この論理ブロック番号はRAIDコントローラが管理する「アドレス変換テーブル」によって物理ブロック番号(論理ディスク上のブロック番号)と対応づけられる。(物理ブロック番号)×(ブロックサイズ[Byte])より論理ディスク上でのバイトオフセット値(アドレス)が求まる。
【0024】
6. 「直接アドレスデータブロック」
本発明の実施の形態において、アドレス変換テーブルに登録されていないデータブロック管理単位。その論理ブロック番号をもって物理ブロック番号とする。
【0025】
すなわち、本来要求されたアドレス通りにディスク上に置かれている(書き込まれる)ブロックである。
【0026】
7. 「間接アドレスデータブロック」
本発明の実施の形態において、アドレス変換テーブルに登録されているデータブロック管理単位である。 アドレス変換テーブル上のその論理アドレス番号に対応する(登録されている)物理ブロック番号をもってアクセス時のアドレスを求める。
【0027】
すなわち、本来要求されたアドレスとは異なるディスク上のアドレスに置かれている(書き込まれる)ブロックである。
【0028】
8. 直接アドレスクラスタ
「直接アドレスデータブロック」からなるクラスタである。
【0029】
9. 間接アドレスクラスタ
「間接アドレスデータブロック」からなるクラスタである。
【0030】
10. 論理クラスタ
上位からのデータアクセスに用いるアドレス空間を「論理アドレス空間」とよぶ。論理アドレス空間を先頭から「クラスタ」単位に区切った時のデータ単位を「論理クラスタ」と呼ぶ。
【0031】
11. 物理クラスタ
論理クラスタに対して論理ディスク上のクラスタを「物理クラスタ」と呼ぶ。以降で「クラスタ」とある場合には「物理クラスタ」を指すことにする。
【0032】
12. リパック処理
ログ化クラスタの有効なブロックを集めることにより、空き物理クラスタを生成する処理をいう。
【0033】
本発明の実施の形態に係るディスクアレイ制御装置は、以下の条件を前提としている。
【0034】
1. RAIDコントローラの制御アルゴリズムに関し、RAIDコントローラのファームウェアとして実装される。
【0035】
2. RAIDで論理ディスクが構成されている。
【0036】
3. RAIDコントローラに対するライトデータに関して、高速化モジュールがそのアドレスをアドレス変換テーブルに登録することにより変換し、たとえそれらがアドレスが連続していない一連のライトデータブロックであってもディスク上の連続アドレスとなるようにアドレス変換して書き込む。なお、高速化モジュールとは、本発明の実施の形態をRAIDコントローラのファームウェアの一部としてモジュールの形で実装したものである。この高速化モジュールによりRAIDコントローラの処理性能が向上する。
【0037】
4. 上記ディスク上の連続アドレスとして書き込むサイズは、ディスク上のパリティや元のデータを読みこむ必要がないため、ディスクに効率よく書き込める「ストライプセット(あるいはその整数倍)」である。
【0038】
以下、図面を参照して、本発明の実施の形態に係る計算機システムのディスクアレイ制御装置について説明する。
【0039】
図1は、本発明の実施の形態に係る計算機システムの構成を示す図である。
【0040】
同図に示すように、CPUバス1には、CPU2及びメインメモリ3が接続されている。
【0041】
CPU2は、計算機システム全体の制御を司るものであり、メインメモリ3を作業領域などに使用する。CPUバス1は、PCI−PCIブリッジ4を介してPCIバス5に接続されている。
【0042】
PCIバス5には、RAIDコントローラPCIカード11が接続されている。このRAIDコントローラPCIカード11は、PCI−PCIブリッジ12、内部バス13、キャッシュメモリ14、SCSIコントローラ15、専用CPU16、ローカルRAM17及びフラッシュROM18を具備している。
【0043】
PCI−PCIブリッジ12は、PCIバス5と内部PCIバス13とのブリッジ制御を行なう。この内部PCIバス13には、キャッシュメモリ14、SCSIコントローラ15及び専用CPU16が接続される。専用CPU16には、ローカルRAM17及びフラッシュROM18が接続されている。
【0044】
キャッシュメモリ14は、計算機がディスクに対してアクセスするデータが一時的に置かれ、アクセス速度向上の目的に使われる。あるいは、RAID5の論理ディスクに関してはパリティ計算のための領域としても使用される。キャッシュメモリ14の制御には、例えば一般的にはセットアソシアティブ等の管理方式が取られている。
【0045】
SCSIコントローラ15は、RAIDコントローラPCIカード11からディスクにアクセスする際のインターフェイスである。専用CPU16が、SCSIコントローラ15に指示することよりキャッシュメモリ14と、各ディスク21−1〜21−nとの間のデータ転送や、各ディスクに対するSCSIコマンドの送信が行なわれる。
【0046】
ローカルRAM17は、専用CPU16の制御プログラムの処理に必要な作業データ領域になる。フラッシュROM18には、専用CPU16の制御プログラムが格納されている。SCSIコントローラ15は、SCSIバス20を介して、ディスク21−1〜21−nに接続されている。
【0047】
図2は、本発明の実施の形態に係る計算機システムのキャッシュメモリ14の構成を示す図である。このキャッシュメモリ14は、セットアソシアティブ方式で管理されるRAIDコントローラのキャッシュメモリである。
【0048】
同図に示すように、このキャッシュメモリ14は、セット数はm、ウェイ数はnである。升目は1つのキャッシュブロックを示す。ここでは、4KBや16KBの大きさと仮定する。
【0049】
キャッシュ管理テーブルは、キャッシュメモリ同様(m、n)の2次元配列になっている。そのエントリには(有効ビット31、更新ビット32、その他ビット33、タグ34)が入っている。有効ビット31は、キャッシュメモリの有効/無効(有効なデータが入っているか否か)が1ビットで示されており、更新ビット32には、キャッシュメモリ内データが更新されているか否かが1ビットで示されており、更にその他の管理に用いるビット33があり(説明省略)、 タグ34にはデータブロック番号がセットされている。
【0050】
リード/ライトデータをキャッシュメモリに入れる際には、アドレスから以下の式によりセット番号を求める。
【0051】
(セット番号)=(ブロック番号)mod(セット数m)
セット番号を決定した後、キャッシュ管理テーブルを参照し、そのセットの空きエントリの有無を確認する。空きエントリがあれば、そのエントリに相当するキャッシュ管理テーブルのエントリにそこを使う。空きエントリがなければ、同じ「列」に属するキャッシュブロックを空けてそこを確保するか、あるいはキャッシュを使わずに処理を行う。
【0052】
図3は、RAID高速化方式におけるディスクの論理ディスクアドレス空間のレイアウトを示す図であり、(a)は物理ディスク上のストライプ配置を示す図であり、(b)は論理ディスク上のストライプ配置とレイアウトを示す図である。
【0053】
図3において、d0、d1、・・・はデータを含むストライプを示す。ストライプは、例えば64KB程度のサイズである。また、p0、p1、p2、・・・は、それぞれ(d0、d1)、(d2、d3)、(d4、d5)のパリティストライプである。
【0054】
ここで、(d0、d1、p0)、(d2、p1、d3)、(p2、d4、d5)はそれぞれ「ストライプセット」である。
【0055】
この例では、2ストライプセットを1クラスタとする。よって、物理クラスタ0は、d0、d1、(p0、)d2、(p1、)d3、物理クラスタ1は、(p2、)d4、d5、d6、d7(、p3)となる。
【0056】
論理ディスク全体は、「直接アドレス領域」、「マージン領域」、「管理データ領域」の3つの領域に分かれている。
【0057】
「直接アドレス領域」は、上位(ホスト計算機)に見せるディスクとして使用可能なサイズ分だけ確保する。例えば、論理ディスクとして100GBの容量を使用可能とする場合には「直接アドレス領域」のサイズは100GBとなる。
【0058】
「マージン領域」は、複数の物理クラスタで構成される。本方式のログ化書き込みを繰り返すことによって、書き込み直後には有効なデータブロックが100%詰まっていた状態の物理クラスタは、引き続き繰り返される間接アドレス物理クラスタの書き込みにより、論理データブロックが新しい物理ブロック番号の位置に移動する結果として、間接アドレス物理クラスタの有効なブロックの割合はどんどん下がっていく。この結果、直接アドレス領域の物理クラスタだけでは、全ての論理ブロックを収めることができなくなる。予め大目に物理クラスタをマージン領域として用意することにより、ログ化クラスタを書き込んでも空の物理クラスタが存在するようになり、間接アドレス物理クラスタを書き込むことができるようになる。
【0059】
ただし、いずれ間接アドレス物理クラスタの数が増えて、空クラスタが無くなる状態に至る。この状態を避けるためにも、RAIDコントローラの負荷が低いときなどに有効なデータを含む物理ブロックを集めて、空き物理クラスタを生成する処理を行なう(リパック処理)。
【0060】
「管理データ領域」は、この論理ディスク全体を管理するためのデータ構造を置くための領域である。この領域には、アドレス変換テーブル、その他管理情報が含まれる。アドレス変換テーブルは、システム起動時に、RAIDコントローラのキャッシュメモリの一部にロードされ、システム停止時にはディスクに書き戻される。他の管理情報に関しても必要に応じて同様にロード/セーブされる。
【0061】
図4は、図3に相当する「論理アドレス空間」のレイアウトを示す図である。
【0062】
論理アドレス空間は、「RAIDコントローラの外から見える論理ディスクのアドレス空間」である。例えば、ホスト計算機は「論理アドレス空間」に対してファイルシステムを構築してデータをアクセスする。あくまでも1つのディスクとして扱う。
【0063】
同図において、「論理クラスタ」を構成するデータブロックが全て「直接アドレスデータブロック」の場合には、その「論理クラスタ番号」はそれらデータブロックが置かれる「物理クラスタ」の番号と一致する。このようなクラスタを「直接アドレス物理クラスタ」、「直接アドレス論理クラスタ」、あるいは単に「直接アドレスクラスタ」と呼ぶ。
【0064】
図5は、アドレス変換テーブルを示す図である。
【0065】
論理クラスタが「間接アドレスクラスタ」の場合には、それを構成するデータブロック管理単位は「論理ブロック番号」と異なる「物理ブロック番号」に相当するディスク上のアドレスに割り当てられている。
【0066】
この「論理ブロック番号」と「物理ブロック番号」との対応を記録管理しているのが「アドレス変換テーブル」である。従来のRAID高速化方式では、全ての論理ブロックに対するエントリがアドレス変換テーブルに用意されていた。対して本発明の実施の形態では、アドレス変換テーブルに使えるメモリ量が制限されており全ての論理ブロックがアドレス変換テーブルに登録される訳でなく、一部のみが登録できるという前提で考える。登録できない論理ブロックに関しては、その論理ブロック番号がすなわち物理ブロック番号を示すものとして扱う。
【0067】
よって、「間接アドレスクラスタ」に属する「データブロック管理単位」のみがアドレス変換テーブルに登録されている。
【0068】
アドレス変換テーブルは「間接アドレス論理クラスタ」単位で登録される。逆に、「直接アドレス論理クラスタ」に属するデータブロック管理単位はアドレス変換テーブルに登録されていない。
【0069】
同図においては、1論理クラスタは8データブロックで構成されるものと仮定しており、「論理クラスタ番号」、「論理ブロック番号」、「物理ブロック番 号」の3つ組のテーブルエントリになっている。しかし、本来「論理ブロック 番号」の項目は不要である。代わりに、以下のように求めることができるからで ある(アドレス変換テーブルが使用するメモリ量を節約するためには「論理ブ ロック番号を省くほうが良い)。
【0070】
このテーブルの主な使用目的は、特定の「論理ブロック番号」がアドレス変換テーブルに登録されているか否かの判別と、登録されていた場合に、その論理ブロック番号に割り当てられている「物理ブロック番号」の値を知ることである。
【0071】
今、「論理ブロック番号」LBnがあるとき、その論理クラスタ番号は、
「論理クラスタ番号」
A = (LBn) / 「論理クラスタあたりのデータブロック数」
(ただし、「/」は整数の割り算を示す)
で求められ、「論理クラスタ内のブロックオフセット番号」は
「論理クラスタ内ブロックオフセット番号」
B = (LBn) mod 「論理クラスタあたりのデータブロック数」
ただし、「mod」はmodulo演算を示す)
となる。よって、アドレス変換テーブルを参照し論理クラスタ番号がAで、そのクラスタにB番目に登録されている物理ブロック番号を求めればよい。
【0072】
次に、本発明の実施の形態に係るディスクアレイ制御装置のライト動作の基本的な処理の流れについて、図6のフロチャートを参照して説明する。
【0073】
図6は、1つのデータブロック管理単位LBi をディスクに書き出す時の処理の流れを示している。
【0074】
図6の説明のために、具体的に、図7(a)〜図7(c)のような状況を考える。以降、説明のために、ブロック数、テーブルのエントリ数などは実際のシステムより遥かに少ない数で示してある。
【0075】
図7(a)は、論理ディスク上の物理クラスタの様子を示している。ここで、LB0、LB1、・・・は、それぞれ論理ブロックを示しており、論理ブロック番号を添え字で表している。
【0076】
この例では、物理クラスタは4つのデータブロックで構成される。例えば、物理クラスタ0はLB0〜LB3の4つのデータブロックで構成されている。
【0077】
この例では、論理ディスク上のデータ領域には16個の物理クラスタが存在する。ただし、論理ディスクの「論理アドレス空間」の広さは物理クラスタ13個分であり、この数だけ「論理クラスタ」が存在する。
【0078】
なお、物理クラスタ0〜12の範囲には直接アドレスデータブロックが存在しうる。この領域を「直接アドレス領域」と呼ぶ。物理クラスタ13〜15は「マージン領域」である。この部分には「間接アドレスデータブロック」のみ配置できる。
【0079】
図7(a)においては、全ての論理ブロックは、その番号に等しい物理ブロック番号の位置に配置されている。すなわち、全ての論理クラスタは「直接アドレスクラスタ」である。また、マージン領域には有効なデータブロックは配置されていない。
【0080】
図7(b)は、図7(a)に示される全ての物理クラスタの状態を管理するテーブルであり、RAIDコントローラのキャッシュメモリに置かれる。インデックスは物理クラスタ番号である。とりうる値は、
直接アドレスクラスタ ・・・クラスタ内の全てのブロックが直接アドレスデータブロックである
間接アドレスクラスタ・・・クラスタ内に1つ以上の間接アドレスデータブロックが含まれる
空クラスタ ・・・クラスタ内に1つも有効なブロックが含まれない
の3つである。
【0081】
ここでは、物理クラスタ0〜12は「直接アドレスクラスタ」、それ以外は「空クラスタ」になっている。
【0082】
図7(c)は、アドレス変換テーブルであり、RAIDコントローラのキャッシュメモリに置かれる。間接アドレスの論理クラスタの番号と、それを構成する論理ブロックが配置されている物理ブロック番号が4つ分登録される。この状態で、アドレス変換テーブルには何も登録されていない(間接アドレス論理クラスタが存在しないため)。なお、この例では、4つの論理クラスタ分のブロックを登録するだけの大きさのアドレス変換テーブルが用意されているものとする。
【0083】
ここで、LB9、LB6、LB8、LB0、LB17、LB15、LB2、LB7、LB6…の順番で論理ブロックをディスクに書き出す際の様子を説明する。
【0084】
図6において、最初LBiは「LB9」である。ステップ601では、LB9はAMT(アドレス変換テーブル)に登録されていないので、ステップ602に進む。
【0085】
ステップ602で、LB9が属する「直接アドレス論理クラスタ」2を登録するのに必要なエントリがアドレス変換テーブルに存在するので、ステップ603に進み、「論理クラスタ」2(の全てのブロック)をアドレス変換テーブルに登録する。すなわち、アドレス変換テーブルの最初の「論理クラスタ番号」に「2」、その物理ブロック番号に「8、9、10、11」を登録する(ステップ603)。
【0086】
ステップ606に進み、現在書き込み中の物理クラスタPCが存在しないので、ステップ607に進み、空き物理クラスタを探す。ここで、物理クラスタPCとは、ステップ609において確保されるクラスタであり、最初の書き込みの段階では存在しない。
【0087】
図7(b)に示された物理クラスタ管理テーブルより、物理クラスタ13が「空クラスタ」であることを知り、それを物理クラスタPCとして選択するとともに、物理クラスタ管理テーブルの物理クラスタ13に「間接アドレスクラスタ」と記す(ステップ608、609)。
【0088】
ステップ612で物理クラスタ13の先頭ブロック(物理ブロック番号52)を、LB9に割り当てて、ステップ613でアドレス変換テーブル(AMT)の論理ブロック番号9のエントリに「52」を登録する。なお、図6において、PBnextは、書き込みのためのポインタを意味する。
【0089】
ステップ614で、物理クラスタ13には、まだ空のブロックが3つ残っているので、ステップ616に進み、まだ実際の書き出しは行なわない。例えば、図8(d)に示すように、1クラスタ分のライトバッファをメモリ上に用意し、ここに書き込みが決まった論理ブロックのデータを置いておき、ステップ614で物理クラスタに書き込む全てのブロックが決定した時点で、ステップ615で一括して物理クラスタに書き出すようにする。
【0090】
ここまで処理が進んだ状態を、図8に示す。図8(a)は、物理クラスタの図で、初めLB9が置かれていた物理ブロック番号9の位置には、既にLB9の最新のデータはない。
【0091】
新たに書き込まれたLB9のデータは、物理クラスタ13の先頭ブロックに書かれることが予約されており、実際のデータは、図8(d)に示すように、ライトバッファに収められている。図8(b)に示した物理クラスタ管理テーブル上では、物理クラスタ2、13が「間接アドレスクラスタ」と記され、図8(c)に示すアドレス変換テーブルには、論理クラスタ2が登録され、特に書き込み対象のLB9の物理ブロック番号は物理クラスタ13の先頭ブロックの番号である52が対応付けられる。
【0092】
同様にして、図6のフローチャートに従って、上記順番(LB9、LB6、LB8、LB0、LB17、LB15、LB2、LB7、LB6…)で論理ブロックを処理した時点の様子を図9に示す。図9(a)において、×がついているところは、書き込みによって無効(古くなった)データを示す。LB15は、ステップ602でアドレス変換テーブルに空きが無いために現在の物理ブロック番号の位置に重ね書きされていることを示している。
【0093】
なお、このように現在の論理データブロックが置かれている物理ブロック番号の位置にそのまま新しい書き込みを行うことを本発明の実施の形態では「オーバライト」と呼んでいる。
【0094】
また、上記順番(LB9、LB6、LB8、LB0、LB17、LB15、LB2、LB7、LB6…)のような書き込みは、ランダムライトと言われる書き込みパターンである。すなわち、論理アドレスがばらばらの書き込み順序になっており、通常、ディスクにこの順番に書き込むとシークが発生するなどして効率が悪い。
【0095】
図9(a)の時点で、ディスクに書き込まれた部分は、物理クラスタ13、14である。それぞれストライプセット(の倍数)の単位で一括して書き込むので、パリティ計算のためのリードが発生せず、かつディスク上でシークする範囲が狭いので、非常に効率よく、高速に、書き込みが行える。
【0096】
本実施の形態においては、間接アドレスクラスタとして配置する論理データブロックの総数は、前記アドレス変換テーブルのエントリの総数の範囲内に制限される。
【0097】
すなわち、固定サイズのアドレス変換テーブルに登録できる範囲内で、間接アドレスクラスタとして一括書き込みが可能なため、従来のようにアドレス変換テーブルのサイズで、対象の論理ディスクの容量を制限する必要がない。
【0098】
なお、ステップ608で空き物理クラスタを確保できなかった場合には、LBiをオーバライトで、現在の(それまでの)その論理データブロックが置かれている物理ブロックのアドレスに書き出す(ステップ610)。また、S602において、アドレス変換テーブルに十分なエントリが存在しないと判断された場合には、書き込み対象となる論理ブロックLBiを直接アドレスデータブロックとして書き込む(ステップ604)。
【0099】
なお、ステップ612、613では、まだディスク上の物理ブロック番号のアドレスにデータは書き込まれておらず、ライトバッファ上におかれたままとなっている。従って、これらデータをリードしたいときには、ディスクに書き込まれるまでの間はライトバッファを参照する必要がある。
【0100】
ライトバッファに関しては、この例では、1物理クラスタ分のメモリを確保して、ライトデータを置くようにしたが、書き出すデータがキャッシュメモリ上に存在するときには、そのキャッシュメモリへのポインタ列として管理しても良い。このような実装により、データコピーのオーバヘッドをなくすことができる。
【0101】
図10は、本発明の実施の形態に係るディスクアレイ制御装置の書き出し処理全体の動作を説明するためのフロチャートである。
【0102】
この処理は、例えば、RAIDコントローラのDirtyキャッシュのディスクへの書き出し処理などに適用するロジックである。具体的には、定期的にRAIDコントローラのキャッシュからDirtyデータをディスクに書き出す処理を考える。キャッシュ上のDirtyデータの何れかを書き出さなければならない状況であり、書き出す必要がなくなるまで(例えば十分空きのキャッシュブロックが生じるまで)繰り返し実行されるものとする。なお、基本的な1データブロックの書き出しには、図6の処理を用いる。
【0103】
先ず、空き物理クラスタが存在しない、かつ、現在書き出し対象の物理クラスタに空き物理ブロックが存在しない場合を考える。
【0104】
この場合、以下のように考える。
【0105】
「空きクラスタ」がない、及び「現在書き出し対象の物理クラスタが存在しない」場合には、ログ化クラスタとしての書き出しはできない。このため、何れの論理ブロックを書き出し対象に選択しても、現在のその論理ブロックに割り当てられた物理ブロックに書き出す(オーバライト)しか選択肢は無い。
【0106】
しかしながら、いずれ空き物理クラスタが生じる可能性がある。例えば、リパック処理が同時に進んでいる可能性があり、あるいはやがて負荷が下がりリパック処理が優先的に動き出して空き物理クラスタが生成されるかもしれない。
【0107】
空き物理クラスタが生じた時点では、間接アドレスデータブロックを優先的にログ化クラスタの形式で書き出すのが有利である。間接アドレスデータブロックをログ化クラスタで書き出しても「アドレス変換テーブル」のエントリを新たに消費することは無いからである(既に登録されているため)。よって、直接アドレスデータブロックが書き出し候補として存在するなら、直接アドレスデータブロックを優先的にオーバライトで書き出すべきである。
【0108】
上記の考えに基づいて、S801において、空き物理クラスタが存在する或いは現在書き出した対象の物理クラスタに空き物理ブロックが存在するか否かの判断が行なわれ、存在しないと判断された場合には、S809において、オーバライト書き出しを試みる。
【0109】
図11は、オーバライト書き込み処理の動作を説明するためのフロチャートである。
【0110】
同図に示すように、まず、ステップS901において、書き込み候補の直接アドレスデータブロックが存在するか否かの判断が行なわれる(S901)。S901において、直接アドレスデータブロックが存在すると判断された場合には、書き込み対象の直接アドレスデータブロックに関して、アドレスが連続する直接アドレスデータブロックの列のうち、最長のものを選択する(S902)。そして、選択した直接アドレスデータブロックの列をオーバライトで書きだす(S903)。S902において、最長の直接アドレスのブロックの列を選択するのは、オーバライトであっても大きなサイズで書き出すほうが効率が良いためである。また、この時、ストライプセットの境界かつストライプサイズで書き出すと最も効率がよい。
【0111】
このように、間接アドレスデータブロックの書き出しを遅らせることにより、空き物理クラスタが生じた時点で、アドレス変換テーブルのエントリ消費を伴わずにログ化ストライプ形式で高速にデータを書き出すことが可能になる。
【0112】
一方で、ステップ901で書き出し候補の直接アドレスデータブロックが存在しない場合を考える。
【0113】
この場合には、以下のように考える。
【0114】
1. 書き出し対象には間接アドレスデータブロックを選択するしかない。
【0115】
2. 書き出し処理にはある程度の時間を要する。
【0116】
3. 書き出し処理の間、書き出し処理対象の物理ストライプはリパック処理の対象にはなれない。
【0117】
4. リパック処理の対象にしたい物理クラスタに属する間接アドレスデータブロックをここで書き出し対象に選ぶと、リパック処理の効率が悪化する。
【0118】
5. 現在は空き物理クラスタが少ないので、リパック処理の効率は悪くしたくない。
【0119】
6. リパック対象にしたい物理クラスタとは、有効なデータブロックが少ない物理クラスタである(リパック処理では、有効ブロック数の少ない物理ストライプ同士を融合して空き物理ストライプを作るほうが効率がよい)。
【0120】
上記事情を考慮して、ここでは間接アドレスデータブロックのうち、最も有効ブロックを多く含んでいる物理ストライプに属するブロックを選択する。
【0121】
すなわち、S901において、直接アドレスデータブロックが存在しないと判断された場合には、候補の間接アドレスデータブロックのうち、最も有効ブロック数が多い物理クラスタに属する間接アドレスデータブロックを選択する(S904)。選択した間接アドレスデータブロックをオーバライトで書きだす(S905)。
【0122】
このように処理を進めることにより、リパック対象に有効ブロックの少ない物理クラスタを選択した際に、その物理クラスタに対する書き込みが行われる機会が少なくなるため、処理を続けることができリパックの効率が良くなる。
【0123】
図10のS801において、空き物理クラスタが存在する、あるいは、現在書き出し対象の物理クラスタに空き物理ブロックが存在する場合を考える。
【0124】
この場合、以下のように考える。
【0125】
1. ログ化クラスタとしての書き出し方法を選択できる可能性がある。
【0126】
2. 特に間接アドレスデータブロックは新たにアドレス変換テーブルのエントリを確保する必要がないので、ログ化クラスタとしての書き出し方法が可能である。
【0127】
3. 特に直接アドレスデータブロックは新たにアドレス変換テーブルのエントリを確保できれば、ログ化クラスタとしての書き出し方法が可能である。
【0128】
4. アドレス変換テーブルのエントリは有限の資源であるので、なるべく使うべきではない。
【0129】
上記事情を考慮して、間接アドレスデータブロックを優先してログ化クラスタの書き出し候補とすべきである。この結果、アドレス変換テーブルのエントリの消費が多くならないように処理を進めることができる。
【0130】
更に、有効ブロック数の最も少ない物理クラスタに属する間接アドレスデータブロックを書き出すことにより、そのブロックが他の物理クラスタに移り、有効ブロック数の少ない物理ストライプの有効ブロック数を更に減らすことができる。このことはリパックの効率を向上する意味がある。
【0131】
よって、有効ブロック数の最も少ない物理クラスタに属する間接アドレスデータブロックを書き出す候補とすべきである。この結果、有効ブロック数の少ない物理クラスタが増え、リパックの効率を良くすることができる。
【0132】
すなわち、S801において、空き物理クラスタが存在する、あるいは、現在書き出し対象の物理クラスタに空き物理ブロックが存在する場合、書き出し候補のブロックに間接アドレスデータブロックがあるか否かの判断が行なわれる(S802)。
【0133】
S802において、書き出し候補のブロックに間接アドレスデータブロックがあると判断された場合、最も有効ブロック数の少ない物理クラスタに属している間接アドレスデータブロックを選択する(S810)。そして、図6のライト処理により、間接アドレスデータブロックをログ化ストライプに書き出す(S811)。
【0134】
次に、書き出し候補の間接アドレスデータブロックが存在しない場合を考える。
【0135】
この場合、下記のように考える。
【0136】
1. 書き出し対象のブロックは直接アドレスデータブロックである。
【0137】
2. 直接アドレスデータブロックを書き出すときにログ化クラスタ形式で書き出す場合は、要する時間は短くて済むが、反面、アドレス変換テーブルのエントリを消費することになる。
【0138】
3. 更に、直接アドレスデータブロックが間接アドレスデータブロックになることにより、例え論理ブロック番号が連続する一連のブロックでもディスク上に間接アドレスとして不連続に配置されてしまう結果、その後のシーケンシャルアクセス性能が悪くなる、というデメリットがある。
【0139】
4. よって、直接アドレスデータブロックは、効率よくオーバライトで書き出せる場合には、なるべくオーバライトで書き出したほうが効率がよい。
【0140】
5. 特に、ブロック番号(=アドレス)が連続する一連の直接アドレスデータブロックが書き出し対象として存在する場合には、比較的効率よくオーバライトで書き出すことができる。
【0141】
よって、一定個数以上、連続する直接アドレスデータブロックが存在する場合には、オーバライトで直接アドレスデータブロックのまま一括して書き出すべきである。
【0142】
すなわち、S802において書き出し候補のブロックに間接アドレスデータブロックが存在しないと判断された場合、書き出し対象の直接アドレスデータブロックに関して、アドレスが連続する直接アドレスデータブロックの列のうち最長のものを選択してBLとし、列に含まれるブロック個数をNとする(S803)。
【0143】
次に、S804において、ブロック個数Nが所定の値である「A」よりも大きいか否かの判断が行なわれる。ここで、「A」はブロック長の基準値として設定されるものであり、この値には実測により、比較的高速にオーバライトで書き込めるブロック長を指定する。あるいは、動的パラメータとしてシステム全体の状態から値を決めるという実装も可能である。
【0144】
S804において、ブロック個数Nが所定の値である「A」よりも大きいと判断された場合には、選択されたBLを現在のアドレスに一括して書き込む(S813)。なお、S813において、ストライプセットの境界かつストライプサイズで書き出してもよく、この場合、更に効率がよくなる。
【0145】
このような処理を行なうことにより、アドレス変換テーブルのエントリをむやみに消費することを防止することができる。また、間接アドレスをむやみに増やすことによりシーケンシャル性能が悪化するのを防ぐ効果が得られる。
【0146】
次に、S804において、個数A以上の連続した直接アドレスデータブロックが無いと判断された場合について説明する。この場合、効率よい直接アドレスデータブロックのオーバライトは期待できないので、以下のように考える。
【0147】
1. 書き出すことの緊急性を評価し、なるべく早く書き出す必要がある場合には、高いスループットで書き出せるログ化クラスタでの書き出しを行なう。
【0148】
2. 「緊急」の度合いとしては、キャッシュのDirty率が考えられる。Dirty率が高いほど、早めの書き出しが必要である。
【0149】
3. 緊急性が低い場合には、間接アドレスデータブロックが増えるのを避けるため(アドレス変換テーブルエントリの節約、シーケンシャル性能悪化防止のため)、直接アドレスデータブロックのオーバライト書き出しを行う。特に、間接アドレスデータブロックが既に多く存在しているほど、直接アドレスデータブロックはオーバライト書き出しにする。
【0150】
上記考察に基づいて、S805において、書き込み候補の直接アドレスデータブロックの1つを選択し、ログ化クラスタに書くか、オーバライトで書くかを決定する。図12(a)は、S805における処理を説明するためのフロチャートである。
【0151】
同図に示すように、書き込み対象の直接アドレスデータブロックのうち、最も使用率の高いキャッシュ列(キャッシュセット)に属するものを1つ選ぶ(S1001)。次に、書き込み方式を判定関数f(α,β)を使用して決定する。
【0152】
図12(b)は、判定関数f(α,β)を説明するための図である。同図において、αはキャッシュ全体のDirty率、βはアドレス変換テーブル全体の使用率(%)を意味する。
【0153】
この例では、キャッシュのDirty率αが90%以上の時には「ログ化クラスタへの書き出し」と判断する。それ以下の場合には、アドレス変換テーブルの使用率β(使用中エントリの全エントリ数に対する割合%)とαを比較して判定している。Dirty率が高い程、あるいは間接アドレスデータブロックの数が少ない程「ログ化クラスタへの書き出し」と判定するようになっている。状況や実装に応じて判定関数f()のロジックを変えることより、実際の状況に即した判定を行なえる。
【0154】
S1002において、オーバライト書き出しではないと判定された場合には、ログ化クラスタへの書き込み指示を決定する(S1003、1005)。一方、S1002において、オーバライト書き出しであると判定された場合には、オーバライトでの書き込みを決定する(S1003,S1004)。
【0155】
結果的に、以上の方法により、キャッシュのDirty使用率が低いときには、無闇に間接アドレスデータブロックを増やしてシーケンシャル性能を悪化することが無いように制御することが可能になる。
【0156】
その後、S806において、ログ化ストライプに書くことを決定したか否かの判断が行なわれ(S806)、決定していないと判断された場合には、選択した直接アドレスデータブロックをオーバライトで書き出す(S808)。一方、決定した場合には、図6のライト処理に選択した直接アドレスデータブロックを書き出す。この時、可能であればログ化クラスタで書き出す。
【0157】
したがって、本発明の実施の形態に係るディスクアレイ制御装置によれば、ログ形式のデータブロック管理方式を採用したディスクシステムにおいて、アドレス変換テーブルの容量を制限しつつ、その利用できる範囲内でログ形式のデータブロックを管理することにより対象の論理ディスクの容量制限を回避するこができる。
【0158】
また、緊急性が高い時にはデータをログ形式で書き込み、緊急性が低いときには非ログ形式で書き込み、ログ化データが増えることを避け、ディスクアレイ制御装置のシーケンシャルアクセス性能悪化を回避することができる。
【0159】
なお、本願発明は、上記各実施形態に限定されるものでなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わされた効果が得られる。さらに、上記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば実施形態に示される全構成要件から幾つかの構成要件が省略されることで発明が抽出された場合には、その抽出された発明を実施する場合には省略部分が周知慣用技術で適宜補われるものである。
【0160】
【発明の効果】
以上詳記したように本発明によれば、アドレス変換テーブルに使用するメモリの量を一定にしたまま、制御対象の論理ディスクの容量に制約を課さず、かつ、従来のRAID高速化方式の高速書きこみを実現することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係る計算機システムの構成を示す図である。
【図2】本発明の実施の形態に係る計算機システムのキャッシュメモリ14の構成を示す図である。
【図3】RAID高速化方式におけるディスクの論理ディスクアドレス空間のレイアウトを示す図であり、(a)は物理ディスク上のストライプ配置を示す図であり、(b)は論理ディスク上のストライプ配置とレイアウトを示す図である。
【図4】図3に相当する「論理アドレス空間」のレイアウトを示す図である。
【図5】アドレス変換テーブルを示す図である。
【図6】本発明の実施の形態に係るディスクアレイ制御装置のライト動作の基本的な処理の流れについて説明するためのフロチャートである。
【図7】(a)は、論理ディスク上の物理クラスタの様子を示す図であり、(b)は図7(a)に示される全ての物理クラスタの状態を管理するテーブルであり、(c)はアドレス変換テーブルを示す図である。
【図8】(a)は、論理ディスク上の物理クラスタの様子を示す図であり、(b)は図8(a)に示される全ての物理クラスタの状態を管理するテーブルであり、(c)はアドレス変換テーブルを示す図であり、(d)はライトバッファを示す図である。
【図9】(a)は、論理ディスク上の物理クラスタの様子を示す図であり、(b)は図9(a)に示される全ての物理クラスタの状態を管理するテーブルであり、(c)はアドレス変換テーブルを示す図であり、(d)はライトバッファを示す図である。
【図10】本発明の実施の形態に係るディスクアレイ制御装置の書き出し処理全体の動作を説明するためのフロチャートである。
【図11】オーバライト書き込み処理の動作を説明するためのフロチャートである。
【図12】(a)は、S805における処理を説明するためのフロチャートであり、(b)は、判定関数f(α,β)を説明するための図である。
【図13】3台のディスクから構成されるRAID5の論理ディスクを示す図である。
【符号の説明】
1…CPUバス、
2…CPU、
3…メインメモリ、
4…PCI−PCIブリッジ、
5…PCIバス、
11…RAIDコントローラPCIカード、
12…PCI−PCIブリッジ、
13…内部PCIバス、
14…キャッシュメモリ、
15…SCSIコントローラ、
16…専用CPU,
17…ローカルRAM、
18…フラッシュROM、
20…SCSIバス、
21−1〜21−n…ディスク装置。
Claims (20)
- ディスクアレイの物理クラスタの状態を管理する物理クラスタ管理テーブルと、
論理ブロック番号と、前記論理ブロック番号に対応する物理ブロック番号とを対応付けて記憶するアドレス変換テーブルと、
書き込み対象となるデータブロックの物理ブロック番号が前記アドレス変換テーブルに登録されているか否かを判断する手段と、
前記書き込み対象となるデータブロックの物理ブロック番号が前記アドレス変換テーブルに登録されていると判断された場合、前記物理クラスタ管理テーブルを参照して、空き物理クラスタを確保することができるか否かを判断する手段と、
空き物理クラスタを確保することができると判断された場合、前記空き物理クラスタを確保し、この確保された空き物理クラスタに前記書き込み対象となるデータブロックを書き込む手段とを具備し、
アドレス変換を必要とせずにアクセスできるデータブロックのみからなる直接アドレスクラスタと、アドレス変換を必要とするデータブロックを含む間接アドレスクラスタとを混在させてディスクアレイを管理することを特徴とするディスクアレイ制御装置。 - 空き物理クラスタを確保することができないと判断された場合、前記書き込み対象となるデータブロックを前記アドレス変換テーブルに登録されている前記書き込み対象となるデータブロックに対応する物理ブロックアドレスに書き込む手段をさらに具備することを特徴とする請求項1記載のディスクアレイ制御装置。
- 前記書き込み対象となるデータブロックの物理ブロック番号が前記アドレス変換テーブルに登録されていないと判断された場合に、前記書き込み対象となるデータブロックが属する論理クラスタを登録するためのエントリが前記アドレス変換テーブルに存在するか否かを判断する手段と、
前記アドレス変換テーブルに前記書き込み対象となるデータブロックが属する論理クラスタを登録するためのエントリが存在すると判断された場合に、前記書き込み対象となるデータブロックが属する論理クラスタの物理ブロック番号を全て前記アドレス変換テーブルに登録する手段と、
前記アドレス変換テーブルに新たに登録された前記書き込み対象となるデータブロックに対して登録される物理ブロック番号として、前記空き物理クラスタ中の書きこみ先のデータブロックの物理ブロック番号を登録する手段と
をさらに具備することを特徴とする請求項1記載のディスクアレイ制御装置。 - 前記書き込み対象となるデータブロックが属する論理クラスタが前記アドレス変換テーブルに登録されている場合には、前記アドレス変換テーブルに登録されている前記データブロックの属する論理クラスタ番号に対応する物理ブロック番号を使用してアクセスを行ない、
前記書き込み対象となるデータブロックが属する論理クラスタが前記アドレス変換テーブルに登録されていない場合には、前記データブロックの論理ブロック番号を物理ブロック番号として使用してアクセスを行なうことを特徴とする請求項1記載のディスクアレイ制御装置。 - 前記間接アドレスクラスタに配置する論理データブロックの総数が、前記アドレス変換テーブルのエントリの総数の範囲内に制限されることを特徴とする請求項1記載のディスクアレイ制御装置。
- 次の書き出し対象とする空き物理クラスタが存在するか否か、或いは現在書き出し対象の物理クラスタに空き物理ブロックが存在するか否かを判断する手段と、
存在すると判断された場合に、書き出し候補の論理ブロックに、要求された論理アドレスとは異なるディスク上の物理アドレスに書き込まれている間接アドレスデータブロックが存在するか否かを判断する手段と、
前記書き出し候補の論理ブロックに前記間接アドレスデータブロックが存在すると判断された場合に、最も有効ブロック数の少ない物理クラスタに属している間接アドレスデータブロックを選択する手段とをさらに具備し、
前記選択された間接アドレスデータブロックを前記書き込み対象となるデータブロックとして書き込むことを特徴とする請求項1記載のディスクアレイ制御装置。 - 空き物理クラスタが存在しない、或いは現在書き出し対象の物理クラスタに空き物理ブロックが存在しないと判断された場合に、書き込み対象のブロックを前記書き込み対象となるデータブロックを前記アドレス変換テーブルに登録されている前記書き込み対象となるデータブロックに対応する物理ブロックアドレスに書き込む手段をさらに具備することを特徴とする請求項6記載のディスクアレイ制御装置。
- 書き出し候補の論理ブロックに、要求された論理アドレスとは異なるディスク上の物理アドレスに書き込まれている間接アドレスデータブロックが存在しないと判断された場合に、書き出し候補の直接アドレスデータブロックのうち、アドレスが連続する最長の直接アドレスデータブロックの列を選択する手段と、
前記選択された直接アドレスデータブロックの列が所定の条件を満たしている場合、前記選択された直接アドレスデータブロックの列を書き込む手段と
をさらに具備することを特徴とする請求項6記載のディスクアレイ制御装置。 - 前記所定の条件を満たしていないと判断された場合、前記書き出し候補の各直接アドレスデータブロックについて、前記ディスクアレイに書き込まれるデータを一時的に格納するキャッシュメモリのDirty率及び前記アドレス変換テーブルの使用率に基づいて、書き込み方式を決定する手段をさらに具備することを特徴とする請求項8記載のディスクアレイ制御装置。
- 前記所定の条件を満たしていないと判断された場合、前記書き出し候補の直接アドレスデータブロックの選択は、使用率の高いキャッシュの列に属する直接アドレスデータブロックから順に選択することを特徴とする請求項9記載のディスクアレイ制御装置。
- ディスクアレイの物理クラスタの状態を管理する物理クラスタ管理テーブルと、論理ブロック番号と、前記論理ブロック番号に対応する物理ブロック番号とを対応付けて記憶するアドレス変換テーブルとを具備するディスクアレイ制御装置におけるデータ書き込み方法において、
書き込み対象となるデータブロックの物理ブロック番号が前記アドレス変換テーブルに登録されているか否かを判断し、
前記書き込み対象となるデータブロックの物理ブロック番号が前記アドレス変換テーブルに登録されていると判断された場合、前記物理クラスタ管理テーブルを参照して、空き物理クラスタを確保することができるか否かを判断し、
空き物理クラスタを確保することができると判断された場合、前記空き物理クラスタを確保し、この確保された空き物理クラスタに前記書き込み対象となるデータブロックを書き込むステップを具備し、
アドレス変換を必要とせずにアクセスできるデータブロックのみからなる直接アドレスクラスタと、アドレス変換を必要とするデータブロックを含む間接アドレスクラスタとを混在させてディスクアレイを管理することを特徴とするディスクアレイ制御装置におけるデータ書き込み方法。 - 空き物理クラスタを確保することができないと判断された場合、前記書き込み対象となるデータブロックを前記アドレス変換テーブルに登録されている前記書き込み対象となるデータブロックに対応する物理ブロックアドレスに書き込むステップをさらに具備することを特徴とする請求項11記載のディスクアレイ制御装置におけるデータ書き込み方法。
- 前記書き込み対象となるデータブロックの物理ブロック番号が前記アドレス変換テーブルに登録されていないと判断された場合に、前記書き込み対象となるデータブロックが属する論理クラスタを登録するためのエントリが前記アドレス変換テーブルに存在するか否かを判断し、
前記アドレス変換テーブルに前記書き込み対象となるデータブロックが属する論理クラスタを登録するためのエントリが存在すると判断された場合に、前記書き込み対象となるデータブロックが属する論理クラスタの物理ブロック番号を全て前記アドレス変換テーブルに登録し、
前記アドレス変換テーブルに新たに登録された前記書き込み対象となるデータブロックに対して登録される物理ブロック番号として、前記空き物理クラスタ中の書きこみ先のデータブロックの物理ブロック番号を登録するステップをさらに具備することを特徴とする請求項11記載のディスクアレイ制御装置におけるデータ書き込み方法。 - 前記書き込み対象となるデータブロックが属する論理クラスタが前記アドレス変換テーブルに登録されている場合には、前記アドレス変換テーブルに登録されている前記データブロックの属する論理クラスタ番号に対応する物理ブロック番号を使用してアクセスを行ない、
前記書き込み対象となるデータブロックが属する論理クラスタが前記アドレス変換テーブルに登録されていない場合には、前記データブロックの論理ブロック番号を物理ブロック番号として使用してアクセスを行なうことを特徴とする請求項11記載のディスクアレイ制御装置におけるデータ書き込み方法。 - 前記間接アドレスクラスタに配置する論理データブロックの総数が、前記アドレス変換テーブルのエントリの総数の範囲内に制限されることを特徴とする請求項11記載のディスクアレイ制御装置のデータ書き込み方法。
- 次の書き出し対象とする空き物理クラスタが存在するか否か、或いは現在書き出し対象の物理クラスタに空き物理ブロックが存在するか否かを判断し、
存在すると判断された場合に、書き出し候補の論理ブロックに、要求された論理アドレスとは異なるディスク上の物理アドレスに書き込まれている間接アドレスデータブロックが存在するか否かを判断し、
前記書き出し候補の論理ブロックに前記間接アドレスデータブロックが存在すると判断された場合に、最も有効ブロック数の少ない物理クラスタに属している間接アドレスデータブロックを選択し、
前記選択された間接アドレスデータブロックを前記書き込み対象となるデータブロックとして書き込むことを特徴とする請求項11記載のディスクアレイ制御装置におけるデータ書き込み方法。 - 空き物理クラスタが存在しない、或いは現在書き出し対象の物理クラスタに空き物理ブロックが存在しないと判断された場合に、書き込み対象のブロックを前記書き込み対象となるデータブロックを前記アドレス変換テーブルに登録されている前記書き込み対象となるデータブロックに対応する物理ブロックアドレスに書き込むステップをさらに具備することを特徴とする請求項16記載のディスクアレイ制御装置におけるデータ書き込み方法。
- 書き出し候補の論理ブロックに、要求された論理アドレスとは異なるディスク上の物理アドレスに書き込まれている間接アドレスデータブロックが存在しないと判断された場合に、書き出し候補の直接アドレスデータブロックのうち、アドレスが連続する最長の直接アドレスデータブロックの列を選択し、
前記選択された直接アドレスデータブロックの列が所定の条件を満たしている場合、前記選択された直接アドレスデータブロックの列を書き込むステップをさらに具備することを特徴とする請求項16記載のディスクアレイ制御装置におけるデータ書き込み方法。 - 前記所定の条件を満たしていないと判断された場合、前記書き出し候補の各直接アドレスデータブロックについて、前記ディスクアレイに書き込まれるデータを一時的に格納するキャッシュメモリのDirty率及び前記アドレス変換テーブルの使用率に基づいて、書き込み方式を決定するステップをさらに具備することを特徴とする請求項18記載のディスクアレイ制御装置におけるデータ書き込み方法。
- 前記所定の条件を満たしていないと判断された場合、前記書き出し候補の直接アドレスデータブロックの選択は、使用率の高いキャッシュの列に属する直接アドレスデータブロックから順に選択することを特徴とする請求項19記載のディスクアレイ制御装置におけるデータ書き込み方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002265854A JP3785127B2 (ja) | 2002-09-11 | 2002-09-11 | ディスクアレイ制御装置及びディスクアレイ制御装置におけるデータ書き込み方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002265854A JP3785127B2 (ja) | 2002-09-11 | 2002-09-11 | ディスクアレイ制御装置及びディスクアレイ制御装置におけるデータ書き込み方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004102822A true JP2004102822A (ja) | 2004-04-02 |
JP3785127B2 JP3785127B2 (ja) | 2006-06-14 |
Family
ID=32264871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002265854A Expired - Fee Related JP3785127B2 (ja) | 2002-09-11 | 2002-09-11 | ディスクアレイ制御装置及びディスクアレイ制御装置におけるデータ書き込み方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3785127B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058777A (ja) * | 2005-08-26 | 2007-03-08 | Toshiba Corp | ディスクアレイ装置、及びコンピュータシステム |
JP2007219703A (ja) * | 2006-02-15 | 2007-08-30 | Fujitsu Ltd | ハードディスクストレージ制御プログラム、ハードディスクストレージ装置、ハードディスクストレージ制御方法 |
JP2008134720A (ja) * | 2006-11-27 | 2008-06-12 | Toshiba Corp | 情報記憶装置 |
JP2012128646A (ja) * | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステムおよびメモリシステムの制御方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1153235A (ja) * | 1997-08-08 | 1999-02-26 | Toshiba Corp | ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム |
JP2001184176A (ja) * | 1999-12-27 | 2001-07-06 | Toshiba Corp | ディスク制御装置 |
JP2002014776A (ja) * | 2000-06-29 | 2002-01-18 | Toshiba Corp | ディスク制御システムおよびデータ再配置方法 |
-
2002
- 2002-09-11 JP JP2002265854A patent/JP3785127B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1153235A (ja) * | 1997-08-08 | 1999-02-26 | Toshiba Corp | ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム |
JP2001184176A (ja) * | 1999-12-27 | 2001-07-06 | Toshiba Corp | ディスク制御装置 |
JP2002014776A (ja) * | 2000-06-29 | 2002-01-18 | Toshiba Corp | ディスク制御システムおよびデータ再配置方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007058777A (ja) * | 2005-08-26 | 2007-03-08 | Toshiba Corp | ディスクアレイ装置、及びコンピュータシステム |
JP2007219703A (ja) * | 2006-02-15 | 2007-08-30 | Fujitsu Ltd | ハードディスクストレージ制御プログラム、ハードディスクストレージ装置、ハードディスクストレージ制御方法 |
JP2008134720A (ja) * | 2006-11-27 | 2008-06-12 | Toshiba Corp | 情報記憶装置 |
JP2012128646A (ja) * | 2010-12-15 | 2012-07-05 | Toshiba Corp | メモリシステムおよびメモリシステムの制御方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3785127B2 (ja) | 2006-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11669444B2 (en) | Computing system and method for controlling storage device | |
US20200218648A1 (en) | Memory system and method for controlling nonvolatile memory | |
US20190073296A1 (en) | Systems and Methods for Persistent Address Space Management | |
CN109144887B (zh) | 存储器系统及控制非易失性存储器的控制方法 | |
US9251052B2 (en) | Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer | |
US10102117B2 (en) | Systems and methods for cache and storage device coordination | |
KR101038167B1 (ko) | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 | |
KR101086857B1 (ko) | 데이터 머지를 수행하는 반도체 스토리지 시스템의 제어 방법 | |
US6941420B2 (en) | Log-structure array | |
JP3942807B2 (ja) | ブロックアラインメント機能付き半導体記憶装置 | |
KR100684887B1 (ko) | 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법 | |
JP4738038B2 (ja) | メモリカード | |
JP2019020788A (ja) | メモリシステムおよび制御方法 | |
KR20100037319A (ko) | 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및그 장치 | |
JP3431581B2 (ja) | ディスク制御システムおよびデータ再配置方法 | |
US10861580B2 (en) | Memory system for controlling nonvolatile memory | |
JPH08137754A (ja) | ディスクキャッシュ装置 | |
JP3785127B2 (ja) | ディスクアレイ制御装置及びディスクアレイ制御装置におけるデータ書き込み方法 | |
JPH07261938A (ja) | 記憶制御方法及びそれを用いた圧縮機能付きディスクシステム | |
JP2005115562A (ja) | フラッシュrom制御装置 | |
JP2010191672A (ja) | データ記憶システム | |
JP6254986B2 (ja) | 情報処理装置、アクセスコントローラ、および情報処理方法 | |
JP6243884B2 (ja) | 情報処理装置、プロセッサ、および情報処理方法 | |
JP2008134720A (ja) | 情報記憶装置 | |
CN114746848B (zh) | 用于存储装置的高速缓存架构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050712 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050912 |
|
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: 20060314 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060316 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100324 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100324 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110324 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120324 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |