JP4734432B2 - Data storage system - Google Patents
Data storage system Download PDFInfo
- Publication number
- JP4734432B2 JP4734432B2 JP2009035266A JP2009035266A JP4734432B2 JP 4734432 B2 JP4734432 B2 JP 4734432B2 JP 2009035266 A JP2009035266 A JP 2009035266A JP 2009035266 A JP2009035266 A JP 2009035266A JP 4734432 B2 JP4734432 B2 JP 4734432B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage device
- read
- write
- storage
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Description
この発明は、例えば1台以上のHDD(Hard Disk Drive)を備えてなるディスクシステム等に適用して好適なレスポンス性能の向上化技術に関する。 The present invention relates to a technique for improving response performance suitable for application to, for example, a disk system including one or more HDDs (Hard Disk Drives).
近年、ノートブックタイプやデスクトップタイプ等、様々な種類のパーソナルコンピュータが広く利用されている。この種のパーソナルコンピュータの多くは、外部記憶装置としてHDDを利用する。 In recent years, various types of personal computers such as notebook type and desktop type have been widely used. Many personal computers of this type use an HDD as an external storage device.
また、最近では、HDDのレスポンス性能を向上させるために、HDDに不揮発性メモリを内蔵させ、不揮発性半導体メモリをキャッシュとして利用するといった、いわゆるハイブリッドHDDに関する提案も種々なされている(例えば特許文献1等参照)。 Recently, in order to improve the response performance of the HDD, various proposals have been made regarding so-called hybrid HDDs in which a nonvolatile memory is built in the HDD and the nonvolatile semiconductor memory is used as a cache (for example, Patent Document 1). Etc.).
ところで、多数の社員がパーソナルコンピュータを各々使用して作業を進めるオフィス等においては、これらのパーソナルコンピュータを相互に接続するためのLAN(Local Area Network)を敷設することが一般的となっており、また、データの共有化やデータの一元管理化を目的として、大容量のディスクシステムを当該LAN経由でアクセス可能に設置すること等も行われている。 By the way, in offices where a large number of employees work by using personal computers, it is common to install a LAN (Local Area Network) for connecting these personal computers to each other. In addition, for the purpose of data sharing and unified data management, a large capacity disk system is installed so as to be accessible via the LAN.
ディスクシステムは、例えば複数台のHDDを備えることによって、低コストで大容量化を実現している。もし、そのレスポンス性能を向上させるために、(各々がキャッシュとして不揮発性半導体メモリを内蔵する)ハイブリッドHDDを通常のHDDに代えて適用したならば、大幅なコストアップを招いてしまう。 The disk system, for example, includes a plurality of HDDs, thereby realizing an increase in capacity at a low cost. If a hybrid HDD (each of which incorporates a nonvolatile semiconductor memory as a cache) is applied in place of a normal HDD in order to improve the response performance, a significant cost increase will be caused.
この発明はこのような事情を考慮してなされたものであり、例えば1台以上のHDDを備えてなるディスクシステム等のレスポンス性能を大幅なコストアップを招くことなく向上させることを実現したデータ記憶システムを提供することを目的とする。 The present invention has been made in consideration of such circumstances, and for example, a data storage that can improve the response performance of a disk system or the like having one or more HDDs without causing a significant cost increase. The purpose is to provide a system.
実施形態によれば、データ記憶システムは、1台以上の第1の記憶装置と、第2の記憶装置と、前記第1の記憶装置のキャッシュとして前記第2の記憶装置を用いるべく前記第1の記憶装置および前記第2の記憶装置を制御し、前記第2の記憶装置上に存在するデータが前記第1の記憶装置上のデータ全体であるか否かを示す第1のフラグ情報を管理する制御装置と、を具備し、前記制御装置は、前記第1の記憶装置に格納されたデータの読み出しを要求された際、前記第1のフラグ情報より、前記読み出し対象のデータ全体が前記第2の記憶装置に存在する場合、前記第2の記憶装置に格納されているデータを読み出して要求元に転送し、前記第1のフラグ情報より、前記読み出し対象のデータの一部が前記第2の記憶装置に存在する場合、前記第2の記憶装置から読み出したデータの一部と前記第1の記憶装置から読み出したデータのその他の部分とをマージして要求元に転送すると共に、前記マージ後のデータを前記第2の記憶装置に格納して前記第1のフラグ情報をデータ全体が存在する旨を示すように更新し、読み出し対象のデータが前記第2の記憶装置に格納されていない場合、当該読み出し対象のデータを前記第1の記憶装置から読み出して要求元に転送すると共に、当該読み出したデータを前記第2の記憶装置に格納して前記第1のフラグ情報をデータ全体が存在する旨を示すように更新するリード制御手段を有する。 According to an embodiment, the data storage system includes one or more first storage devices, a second storage device, and the first storage device to use the second storage device as a cache of the first storage device . Control the first storage device and the second storage device, and manage first flag information indicating whether or not the data existing on the second storage device is the entire data on the first storage device And when the control device is requested to read the data stored in the first storage device, the entire data to be read is determined from the first flag information by the first flag information. When the data is present in the second storage device, the data stored in the second storage device is read and transferred to the request source, and a part of the data to be read is stored in the second flag information based on the first flag information. Exists in the storage device A part of the data read from the second storage device and the other part of the data read from the first storage device are merged and transferred to the request source, and the merged data is transferred to the second When the first flag information is updated to indicate that the entire data exists and stored in the storage device, and the data to be read is not stored in the second storage device, the data to be read is Read from the first storage device and transfer to the requester, store the read data in the second storage device, and update the first flag information to indicate that the entire data is present that having a lead control means.
この発明によれば、例えば1台以上のHDDを備えてなるディスクシステム等のレスポンス性能を大幅なコストアップを招くことなく向上させることを実現できる。 According to the present invention, for example, it is possible to improve the response performance of a disk system including one or more HDDs without causing a significant cost increase.
以下、図面を参照して、この発明の実施形態を説明する。 Embodiments of the present invention will be described below with reference to the drawings.
(第1実施形態)
図1は、本発明の第1実施形態に係るデータ記憶システムの構成を示す図である。本データ記憶システムは、ホストシステム1が利用するデータを大量に記憶するためのディスクサブシステム2として実現されている。ホストシステム1とディスクサブシステム2との接続形態は任意であり、例えばLAN(Local Area Network)を介して接続される環境下においては、複数のホストシステム1が存在しても良い。また、ホストシステム1とディスクサブシステム2とが同一のコンピュータ上に存在して、データバスを介して接続される形態も当然に考えられ得る。
(First embodiment)
FIG. 1 is a diagram showing a configuration of a data storage system according to the first embodiment of the present invention. This data storage system is realized as a
図1に示すように、ディスクサブシステム2は、制御部21、メモリ21A、複数の論理HDD(hard Disk Drive)22およびSSD(Solid State Drive)23から構成されている。
As shown in FIG. 1, the
制御部21は、本ディスクサブシステム2の動作を制御する中枢部であり、ホストシステム1が発行する論理HDD22へのデータの書き込み要求(ライトコマンド)または論理HDD22からのデータの読み出し要求(リードコマンド)を受け付け、この要求された論理HDD22に対するデータアクセスを効率的に処理すべく、メモリ21A、論理HDD22およびSSD23を駆動制御する。制御部21は、ディスクサブシステム2がホストシステム1と外部接続される場合、例えばマイクロコントローラおよび制御プログラム等から構成され、ディスクサブシステム2がホストシステム1と同一のコンピュータ上に存在する場合には、例えばBIOS(Basic Input/Output System)やデバイスドライバ等から構成される。
The
そして、本ディスクサブシステム2は、安価・低速な論理HDD22で大容量の記憶領域を構成しつつ、高速なSSD23を、これら論理HDD22の共用キャッシュとして設置し、かつ、このSSD23を共用キャッシュとして効率的に使用するための仕組みを当該制御部21が備えることにより、大幅なコストアップを招くことなく、レスポンス性能を向上させることを実現したものであり、以下、この点について詳述する。
The
なお、メモリ21Aは、制御部21が作業領域として使用する、各種データを一時的に格納するための例えばDRAM等である。また、論理HDD22は、単体のHDDや、複数のHDDを並列接続して耐障害性を高めたRAID(Redundant Array of Inexpensive Disks)等である。ディスクサブシステム2内の論理HDD22として、単体のHDDとRAIDとが混在していても構わない。ホストシステム1は、各論理HDD22を個別に認識して、それぞれに対するデータアクセス要求を本ディスクサブシステム2の制御部21に対して発行する。そして、SSD23は、記憶部として不揮発性半導体メモリであるフラッシュメモリを搭載した記憶デバイスである。前述のように、本ディスクサブシステムは、このSSD23を、論理HDD22の共用キャッシュとして使用すべく搭載するが、共用キャッシュとして割り当てる領域以外の余剰領域については、論理HDD22と同様に、1つの論理ドライブとして、ホストシステム1からのアクセス要求を受け付け可能としても良い。
The
図2は、本ディスクサブシステム2におけるSSD23の記憶領域の論理的なアロケーション例を示す図である。
FIG. 2 is a diagram showing a logical allocation example of the storage area of the
ここでは、SSD23が32Gバイトの記憶容量を有するものと想定する。一方、論理HDD22の数は最大16台とし、各々の容量は最大2Tバイトとする。また、制御部21は、論理HDD22へのデータの書き込みおよび論理HDD22からのデータの読み出しを128Kバイト単位で実行する。以下、これをブロックサイズと称する。論理HDD22の使用単位であるセクタは512バイトであり、よって、1ブロックは256セクタとなる。この32Gバイトの大きさを持つSSD23の記憶領域を、制御部21は、図2に示すように、キャッシュ領域a1、管理データ領域a2、余剰領域a3の3通りに使い分ける。
Here, it is assumed that the SSD 23 has a storage capacity of 32 GB. On the other hand, the maximum number of
キャッシュ領域a1は、論理HDD22のデータの一部を保持する領域、つまり前述の共用キャッシュとして使用する領域である。ここでは、SSD23の全記憶容量中の半分である16Gバイトを当該キャッシュ領域a1として割り当てるものとする。論理HDD22のデータは、ブロックサイズ単位で当該キャッシュ領域a1に保持される。換言すると、当該キャッシュ領域a1は、ブロックサイズごとの領域に分けられる。
The cache area a1 is an area that holds a part of the data of the
また、管理データ領域a2は、キャッシュ領域a1上に存在する論理HDD22のデータの一部を管理するための各種管理データを保持する領域である。
The management data area a2 is an area for holding various management data for managing a part of the data of the
そして、余剰領域a3は、SSD23上にキャッシュ領域a1,管理データ領域a2を確保し終えた後の残存領域であり、制御部21は、この余剰領域a3を1つの論理ドライブとして、論理HDD22と同様に、当該論理ドライブに対するホストシステム1からのアクセス要求を受け付ける。
The surplus area a3 is a remaining area after securing the cache area a1 and the management data area a2 on the
図3は、SSD23上に確保したキャッシュ領域a1の一例を示す図である。
FIG. 3 is a diagram showing an example of the cache area a1 secured on the
前述したように、キャッシュ領域a1は、ブロックサイズ、つまり128Kバイトごとの領域に分けられている。そして、制御部21は、論理HDD22のデータの一部を、このキャッシュ領域a1内に4wayセットアソシアティブ方式で格納する。より具体的に説明すると、本ディスクサブシステム2においては、論理HDD22の最大数は16台であるので、論理HDD22の識別子は4ビットで表現できる。また、各論理HDD22の最大容量は2Tバイトであるので、各論理HDD22内のセクタ位置を示すLBA(Logical Block Address)は32ビットで表現できる。よって、本ディスクサブシステム2全体内でのセクタ位置(セクタアドレス)は、上位4ビット+下位32ビットの36ビットで表現できる。制御部21は、この36ビットのセクタアドレス中の22−8桁の値が一致するアドレスを1グループとして、各グループ毎に4つずつ格納する。
As described above, the cache area a1 is divided into block sizes, that is, areas of every 128 Kbytes. Then, the
そこで、制御部21は、図3に示すように、キャッシュ領域a1上に、先頭から(EA:前述の36ビットのセクタアドレス中の22−8桁の値,way:0〜3)の並びで、(0000,0),(0000,1),…(7FFF,3)の各キャッシュ領域を割り当てる。そして、制御部21は、最近に読み出されたデータほど再び読み出される確率が高いことを前提として、各グループごとに、論理HDD22から読み出されたデータが最近に読み出された順に4つずつ当該キャッシュ領域a1上に格納されるように、当該キャッシュ領域a1内におけるデータの入れ替えを実行する。
Therefore, as shown in FIG. 3, the
なお、制御部21は、ホストシステム1から論理HDD22への書き込みが要求されたデータについては、キャッシュ領域a1に空きがあれば(同一グループの他のデータのキャッシュ領域a1への格納数が4に達していなければ)、空きwayを使ったキャッシュ領域a1への格納を実行する。また、空きがなければ、同一グループ内で最も過去に読み出された(最も格納優先度の低い)データが論理HDD22に未反映の書き込みデータを含まない場合に、このデータと入れ替えて、当該書き込み対象データをキャッシュ領域a1へ格納する。即ち、アクセス時間はライトデータの方が近くても、再アクセスの可能性の高いリードデータの方が優先的にキャッシュ領域a1上に存在することになる。
Note that the
SSD23は、論理HDD22よりも高速であるので、レスポンス性能を向上させることができる。また、SSD23は、不揮発性の記憶デバイスであるので、例えば定期点検後などにディスクサブシステム2を起動した際、前回のディスクサブシステム2の停止時直前に読み出されていたデータが格納された状態にあるので、起動直後からレスポンス性能を向上させる作用が現れる。そして、1台を複数の論理HDD22の共用キャッシュとして適用するので、大幅なコストアップを招くことがない。
Since the
また、図4は、SSD23上に確保した管理データ領域a2の一例を示す図である。
FIG. 4 is a diagram showing an example of the management data area a2 secured on the
ビットマップa21(以下、BMと記することがある)は、キャッシュ領域a1に格納された論理HDD22のデータについて、ブロックごとに、ホストシステム1からの書き込み要求を要因として格納されたデータのセクタ位置を記憶しておくためのデータ群である。図5に、このビットマップa1の一例を示す。
Bit map a21 (hereinafter sometimes referred to as BM) is the sector position of data stored in the cache area a1 for each block of the data in the
前述したように、本実施形態では、1ブロックは256セクタであるので、各ブロック内の書き込みセクタ位置を記憶するためには、256ビット、つまり、32バイトの情報が必要となる。1セクタは512バイトであるので、1セクタに16ブロック分のビットマップを保存できる。そこで、制御部21は、キャッシュ領域a1に割り当てたブロックサイズの各キャッシュ領域と同じ並びで当該ビットマップを保存する。
As described above, in this embodiment, since one block has 256 sectors, 256 bits, that is, 32 bytes of information are required to store the write sector position in each block. Since one sector is 512 bytes, 16 blocks of bitmap can be stored in one sector. Therefore, the
制御部21は、論理HDD22へのデータの書き込みおよび論理HDD22からのデータの読み出しをブロックサイズで実行する。よって、制御部21は、ホストシステム1が発行した書き込み要求(ライトコマンド)をブロック単位に分割して、分割後のブロックごとに論理HDD22へのデータ書き込みを実行する。いま、ホストシステム1から書き込みを要求されたデータのサイズがブロックサイズの整数倍でない場合を考えると、最後はブロックサイズに満たないデータの書き込みを行う必要が生じる(書き込みを要求されたデータのサイズがブロックサイズに満たない場合も同様)。このような場合に備え、ビットマップを管理しておくことで、その後のキャッシュであるSSD23から論理HDD22への反映時等に必要となるデータマージを実行することが可能となる。例えばホストシステム1がセクタ単位でのデータ書き込みを要求してきた場合、制御部21は、この書き込みを、当該セクタを含むブロック単位の書き込みに変換し、内部的にはブロック単位での書き込みを実行するが、この場合も、SSD23にキャッシュされたブロックデータ内の当該セクタと論理HDD23に格納されたその他のセクタとのデータマージの際に当該ビットマップが利用される。
The
また、データキャッシュディレクトリa22(以下、DCDと記することがある)は、論理HDD22のデータの一部をSSD23にキャッシュするために本ディスクサブシステム2が採用する4wayセットアソシアティブ方式のディレクトリである。図6は、このデータキャッシュディレクトリの一例を示す。
Further, the data cache directory a22 (hereinafter sometimes referred to as DCD) is a 4-way set associative directory employed by the
図6中、LDは、論理HDD22の識別子である。本ディスクサブシステム2では、前述の通り4バイトあり、また、LBAは32ビットである。そして、前述の通り、この上位4ビット+下位32ビットの36ビットで本ディスクサブシステム2のセクタアドレスは構成される。このセクタアドレスの35−23桁をFA(Frame Address)部、22−8桁をEA(Entry Address)部と定義する。
In FIG. 6, LD is an identifier of the
データキャッシュディレクトリa22は、EA分(行)×way分(列)のテーブルである。各wayフィールドは、FA、LRU(Least Resently used)カウンタ、Entireビット、Dirtyビットから構成される。 The data cache directory a22 is a table of EA (row) × way (column). Each way field includes an FA, an LRU (Least Resently used) counter, an Entire bit, and a Dirty bit.
FAには、セクタアドレスのFA部が格納される。よって、例えば読み出し対象データについて、セクタアドレスのEA部を検索キーとしてディレクトリを参照し、同一ライン内のいずれかのwayのFAがセクタアドレスのFA部と一致しているときにヒット(SSD23上に存在する)、いずれにも一致しないときにミスヒット(SSD23上に存在しない)と判断することができる。 The FA stores the FA part of the sector address. Thus, for example, with respect to the read target data, the directory is referenced using the EA part of the sector address as a search key, and if any way FA in the same line matches the FA part of the sector address, a hit (on the SSD 23) Exists), it can be determined as a miss hit (not present on the SSD 23) when they do not match any of them.
LRUカウンタは、初期値の0からway数の値を取るカウンタ領域である。大きい値ほど最近に読み出しが行われたことを表す。
The LRU counter is a counter area that takes a value from the
Entireビットは、ブロック全体がSSD23に記録されているか否かを示す表すフラグ領域である。”1”が全体が存在、”0”が一部が存在、を示す。
The Entire bit is a flag area indicating whether or not the entire block is recorded in the
Dirtyビットは、当該ブロック内に書き込みデータが存在するか否かを示すフラグ領域である。”1”が書き込みデータが存在、”0”が書き込みデータが不在、を示す。 The Dirty bit is a flag area indicating whether or not write data exists in the block. “1” indicates that there is write data, and “0” indicates that there is no write data.
このEntireビットとDirtyビットとによって、データキャッシュディレクトリa22にヒットしている時のブロックデータの所在は図7に示す通りであることが判明する。より具体的に説明すると、Entireビットが”0”で、Dirtyビットが”1”の場合、SSD23のデータの一部が最新で、この最新データの位置はビットマップに記録されている。Entireビットが”1”で、Dirtyビットが”0”の場合は、SSD23と論理HDD22とに同じデータが存在している。そして、EntireビットとDirtyビットの両方が”1”の場合は、SSD23のデータが最新で、論理HDD22のデータは古い。なお、Entireビットが”0”の場合、ブロック内の少なくとも一部に書き込みデータを含むので、Dirtyビットは必然的に”1”となるので、理論上、EntireビットとDirtyビットとの両方が”0”の組み合わせは存在しない。
From the Entire bit and the Dirty bit, it is found that the location of the block data when hitting the data cache directory a22 is as shown in FIG. More specifically, when the Entire bit is “0” and the Dirty bit is “1”, a part of the data of the
以上の管理データ領域a2のビットマップa21およびデータキャッシュディレクトリa22は、本ディスクサブシステム2の起動時に制御部21が管理するメモリ21Aに展開され、本ディスクサブシステム2のシャットダウン時等の所定のタイミングで書き戻される。
The bitmap a21 and the data cache directory a22 of the management data area a2 described above are expanded in the
次に、本ディスクサブシステム2の制御部21が実行する、SSD23を共用キャッシュとして用いた論理HDD22からのデータ読み出し時/論理HDD22へのデータ書き込み時の動作原理を説明する。
Next, an operation principle executed by the
まず、図6および図8を参照しながら、ホストシステム1からリードコマンドを受け取った場合の動作手順を説明する。
First, an operation procedure when a read command is received from the
ホストシステム1からデータのリードコマンドを受け取ると、制御部21は、このリードコマンドをブロック単位に分割し、分割後のブロックごとにデータの読み出し処理を実行する。
When receiving a data read command from the
この分割後のブロックごとのデータの読み出し処理において、制御部21は、まず、セクタアドレスのEA部とFA部とを使って、データキャッシュディレクトリa22上でのヒット有無、つまり、読み出し対象ブロックがSSD23のキャッシュ領域a1に存在するか否かを調べる。
In the data read processing for each block after the division, the
ヒットしていたら、制御部21は、今度は、読み出し対象ブロックを保持するwayのEntireビットが”1”か否かを調べる。もし、Entireビットが”1”であれば(ケースR1)は、制御部21は、SSD23のキャッシュ領域a1に存在するブロックデータを読み出して、読み出し対象データを取得する。この時、制御部21は、後処理として、当該wayのLRUカウンタを最大値にし、更新前の値よりも大きい値を持つ他のwayのLRUカウンタの値を1ずつデクリメントする。この操作により、LRUカウンタは、時間的に近い順に4→3→2→1の値または初期値の0が保持されることになる。
If there is a hit, the
Entireビットが”0”であった場合、制御部21は、続いて、当該ブロックデータに対応するビットマップa21を参照し、すべてが書き込みセクタで占められているか、つまり、全データがSSD23のキャッシュ領域a1に存在するかを調べる。もし、全データがSSD23のキャッシュ領域a1に存在すれば(ケースR2)、制御部21は、SSD23のキャッシュ領域a1に存在するブロックデータを読み出して、読み出し対象データを取得する。この時も、制御部21は、前述の後処理としてのLRUカウンタの更新を実行する。
When the Entire bit is “0”, the
一方、Entireビットが”0”であって、全データがSSD23のキャッシュ領域a1に存在しない場合(ケースR3)、制御部21は、SSD23のキャッシュ領域a1および論理HDD22の双方から読み出し対象ブロックのデータを読み出し、ビットマップa21に基づき、データマージを行って最新の状態のブロックデータを形成して、読み出し対象データを取得する。そして、制御部21は、SSD23のキャッシュ領域a1に格納されていたブロックデータを、当該形成した最新の状態のブロックデータに更新すべく当該SSD23のキャッシュ領域a1への書き込みを実行する。この時、制御部21は、前述のLRUカウンタの更新に加えて、当該wayのEntireビットを”1”にする処理を後処理として実行する。
On the other hand, when the Entire bit is “0” and all data does not exist in the cache area a1 of the SSD 23 (case R3), the
また、読み出し対象ブロックがSSD23のキャッシュ領域a1に存在しない場合、つまり、データキャッシュディレクトリa22上でヒットしなかった場合(ケースR4)、制御部21は、論理HDD22からの読み出しを行うことにより、読み出し対象データを取得する。制御部21は、この読み出したブロックデータのSSD23のキャッシュ領域a1への書き込みを併せて実行する。
In addition, when the block to be read does not exist in the cache area a1 of the
この書き込みは、同一グループ内に空きwayが存在すれば、当該wayに対して実行する。また、空きwayが存在しなければ、LRUカウンタの値が最も小さいwayのデータと入れ替えるべく実行する。入れ替え対象のwayのDirtyビットが”1”であったならば、このデータの論理HDD22への反映を行った後に実行する。この際、Entireビットが”0”であったならば、ビットマップa21を参照しながらデータマージを実行する。論理HDD22への反映を終了させた時、制御部21は、Entireビット、Dirtyビット、ビットマップa21の該当箇所の初期化をそれぞれ実行する。
If there is an empty way in the same group, this writing is executed for that way. If there is no free way, the process is executed to replace the data of the way having the smallest value of the LRU counter. If the Dirty bit of the way to be replaced is “1”, the data is reflected on the
そして、(ケースR4の場合の)後処理として、制御部21は、当該wayのLRUカウンタの値を最大値にし、その他のwayのLRUカウンタの値を1ずつデクリメントする処理と共に、Entireビットを”1”に設定する処理を実行する。
Then, as post-processing (in the case of the case R4), the
続いて、図6および図9を参照しながら、ホストシステム1からライトコマンドを受け取った場合の動作手順を説明する。
Next, an operation procedure when a write command is received from the
ホストシステム1からデータのリードコマンドを受け取ると、制御部21は、このリードコマンドをブロック単位に分割し、分割後のブロックごとにデータの書き込み処理を実行する。
When receiving a data read command from the
この分割後のブロックごとのデータの書き込み処理において、制御部21は、まず、セクタアドレスのEA部とFA部とを使って、データキャッシュディレクトリa22上でのヒット有無、つまり、書き込み対象ブロックがSSD23のキャッシュ領域a1に存在するか否かを調べる。
In the data writing process for each block after the division, the
ヒットしていたら、制御部21は、今度は、この書き込みがブロックサイズ、つまり256セクタ分のものか否かを調べる。もし、ブロック単位の書き込みであれば(ケースW1)、制御部21は、SSD23のキャッシュ領域a1に存在するブロックデータ上に当該書き込み対象データを上書きすべくSSD23に対する書き込みを実行する。この時、制御部21は、後処理として、Entireビット、Dirtyビットを”1”にし、必要であればビットマップa21の該当箇所の初期化を実行する。書き込みが256セクタ未満のものであった場合には(ケースW2)、後処理として、さらに書き込みセクタの位置を記憶しておくためのビットマップの更新を実行する。
If there is a hit, the
一方、書き込み対象ブロックがSSD23のキャッシュ領域a1に存在しない場合、つまり、データキャッシュディレクトリa22上でヒットしなかった場合、制御部21は、同一グループ内に空きwayが存在するか否か、および、空きwayが存在しない場合にはLRUカウンタの値が最も小さいwayのDirtyビットが”0”か否かを調べる。
On the other hand, when the block to be written does not exist in the cache area a1 of the
同一グループ内に空きwayが存在した場合、または、LRUカウンタの値が最も小さいwayのDirtyビットが”0”だった場合、制御部21は、その書き込みがブロック単位のものであれば(ケースW3)、当該書き込み対象データを空きwayまたはLRUカウンタの値が最も小さいwayに格納し、後処理として、当該wayのEntireビット、Dirtyビットを”1”にする。また、書き込みが256セクタ未満のものであった場合には(ケースW4)、後処理として、さらに書き込みセクタの位置を記憶しておくためのビットマップの更新を実行する。
When there is an empty way in the same group, or when the dirty bit of the way having the smallest LRU counter value is “0”, the
同一グループ内に空きwayが存在せず、かつ、LRUカウンタの値が最も小さいwayのDirtyビットが”1”だった場合には(ケースW5)、制御部21は、当該書き込み対象データのSSD23によるキャッシングは行わず、論理HDD23への書き込みを実行する。
When there is no free way in the same group and the dirty bit of the way having the smallest LRU counter value is “1” (case W5), the
また、制御部21は、ホストシステム1からリードコマンドを受け取った場合、およびライトコマンドを受け取った場合のほか、ホストシステム1が一定時間以上コマンドを発生させなかった場合に、データキャッシュディレクトリa22内のDirtyビットが”1”のブロックデータを論理HDD22に反映させ、SSD23のキャッシュ領域a1と論理HDD22とを同じ状態とするライトバック処理をデータキャッシュディレクトリa22のライン単位に実行する。このライトバック処理は、Spread First方式で実行する。即ち、データキャッシュディレクトリa22内の各ライン間で、Dirtyビットが”1”の数が均等になるような順番で進めていく。1ライン分のライトバック処理中、ホストシステム1からコマンドが送られて来なかった場合に、制御部21は、引き続き、このライトバック処理を継続する。
Further, the
以上のように、本ディスクサブシステム1においては、制御部21が、データキャッシュディレクトリa22、ビットマップa21を使って、SSD23のキャッシュ領域a1を管理することによって、複数台の低速な論理HDD22からのデータの読み出しを、高い確率で、1台の高速のSSD23からの読み出しで代替することを可能とし、レスポンス性能を大幅なコストアップを招くことなく向上させることを実現する。
As described above, in the
(第2実施形態)
次に、本発明の第2実施形態について説明する。
(Second Embodiment)
Next, a second embodiment of the present invention will be described.
前述した第1実施形態では、制御部21が、本ディスクサブシステム2の起動時に、SSD23の管理データ領域a2に保持されるビットマップa21を、自身が管理するメモリ21Aに展開することを前提とした。
In the first embodiment described above, it is assumed that the
ビットマップa21は、SSD23上に確保するキャッシュ領域a1が16Gバイトの場合、4Mバイトという膨大なテーブルとなる。よって、大容量のメモリ21Aを搭載しなければならなくなる。そこで、本第2実施形態では、このビットマップa21のすべてをメモリ21Aに展開するのではなく、さらに当該ビットマップa21についても、4wayセットアソシアティブ方式で、その一部をメモリ21Aにキャッシュすることによって、メモリ21Aの必要容量を低減し、さらなるコストダウンを実現する。
The bitmap a21 is a huge table of 4M bytes when the cache area a1 secured on the
図10は、ビットマップa21の一部をメモリ21Aにキャッシュするためのビットマップキャッシュディレクトリの一例を示す図である。このビットマップキャッシュディレクトリは、図4に示した管理データ領域a2のその他の管理データとしてSSD23に格納され、第1実施形態におけるビットマップa21に代えて、データキャッシュディレクトリa22と共に、本ディスクサブシステム2の起動時にメモリ21Aに展開され、本ディスクサブシステム2のシャットダウン時等の所定のタイミングで書き戻される。
FIG. 10 is a diagram illustrating an example of a bitmap cache directory for caching a part of the bitmap a21 in the
本実施形態のディスクサブシステム2においては、LD4ビットとLBA32ビットとを繋ぎ合わせた36ビットのセクタアドレスの22−19桁をBMFA(Bit Map Frame Address)部、18−13桁をBMEA(Bit Map Entry Address)部と定義する。ビットマップキャッシュディレクトリは、BMEA分(行)×way分(列)のテーブルである。各wayフィールドは、BMFA、LRUカウンタ、Dirtyビットから構成される。
In the
BMFAには、セクタアドレスのBMFA部が格納される。よって、例えば読み出し対象データに関するビットマップついて、セクタアドレスのBMEA部を検索キーとしてディレクトリを参照し、同一ライン内のいずれかのwayのBMFAがセクタアドレスのBMFA部と一致しているときにヒット(メモリ21A上に存在する)、いずれにも一致しないときにミスヒット(メモリ21A上に存在しない)と判断することができる。
The BMFA stores the BMFA part of the sector address. Thus, for example, with respect to a bitmap related to data to be read, a directory is referenced using the BMEA part of the sector address as a search key, and a hit (when the BMFA of any way in the same line matches the BMFA part of the sector address ( It can be determined that there is a mis-hit (does not exist on the
LRUカウンタは、初期値の0からway数の値を取るカウンタ領域である。大きい値ほど最近にキャッシュされたことを表す。
The LRU counter is a counter area that takes a value from the
Dirtyビットは、当該ビットマップが書き込みデータの位置情報を有するか否かを示すフラグ領域である。”1”が書き込みデータの位置情報が存在、”0”が書き込みデータの位置情報が不在、を示す。 The Dirty bit is a flag area indicating whether or not the bitmap has position information of write data. “1” indicates that the position information of the write data exists, and “0” indicates that the position information of the write data does not exist.
次に、本第2実施形態の制御部21が実行する、ビットマップa21のキャッシュ処理について説明する。
Next, the cache processing of the bitmap a21 executed by the
制御部21は、セクタアドレスのBMEA部とBMFA部とを使って、ビットマップキャッシュディレクトリ上でのヒット有無、つまりアクセス対象のビットマップ部分がメモリ21A上に存在するか否かを調べる。
The
ヒットしていたら、制御部21は、メモリ21A上に存在するビットマップ部分を使用する。もし、このビットマップ部分について更新を行った場合、制御部21は、Dirtyビットを”1”にする。また、この時、制御部21は、データキャッシュディレクトリa22の場合と同様、後処理として、当該wayのLRUカウンタを最大値にし、更新前の値よりも大きい値を持つ他のwayのLRUカウンタの値を1ずつデクリメントする。この操作により、LRUカウンタは、時間的に近い順に4→3→2→1の値または初期値の0が保持されることになる。
If there is a hit, the
一方、ヒットしていなかった場合、制御部21は、同一グループ内に空きwayが存在すれば、アクセス対象のビットマップ部分をSSD23から読み出して、当該空きwayに格納する。また、空きwayが存在しなければ、LRUカウンタの値が最も小さいwayのビットマップ部分との入れ替えを実行する。この時、入れ替え対象のwayのDirtyビットが”1”であったならば、入れ替え前のビットマップ部分のSSD23への書き戻しを実行し、そのDirtyビットを初期化する。Dirtyビットが”1”でなければ、この書き戻しを行う必要はない。そして、制御部21は、後処理として、前述のLRUカウンタの更新を実行する。
On the other hand, if there is no hit, if there is an empty way in the same group, the
このような手順で、ビットマップa21の一部をメモリ21A上にキャッシュする本第2実施形態のディスクサブシステムにおいては、4Mバイトのビットマップa21を約1Mバイトの作業領域で利用可能となるので、メモリ21Aの必要容量を低減でき、さらなるコストダウンを実現することができる。
In the disk subsystem according to the second embodiment in which a part of the bitmap a21 is cached on the
以上のように、本ディスクサブシステム2によれば、例えば1台以上のHDDを備えてなるディスクシステム等のレスポンス性能を大幅なコストアップを招くことなく向上させることが実現される。
As described above, according to the
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。 Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of components disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine a component suitably in different embodiment.
1…ホストシステム、2…ディスクサブシステム、21…制御部、21A…メモリ、22…論理HDD、23…SSD。
DESCRIPTION OF
Claims (11)
第2の記憶装置と、
前記第1の記憶装置のキャッシュとして前記第2の記憶装置を用いるべく前記第1の記憶装置および前記第2の記憶装置を制御し、前記第2の記憶装置上に存在するデータが前記第1の記憶装置上のデータ全体であるか否かを示す第1のフラグ情報を管理する制御装置と、
を具備し、
前記制御装置は、
前記第1の記憶装置に格納されたデータの読み出しを要求された際、
前記第1のフラグ情報より、前記読み出し対象のデータ全体が前記第2の記憶装置に存在する場合、前記第2の記憶装置に格納されているデータを読み出して要求元に転送し、
前記第1のフラグ情報より、前記読み出し対象のデータの一部が前記第2の記憶装置に存在する場合、前記第2の記憶装置から読み出したデータの一部と前記第1の記憶装置から読み出したデータのその他の部分とをマージして要求元に転送すると共に、前記マージ後のデータを前記第2の記憶装置に格納して前記第1のフラグ情報をデータ全体が存在する旨を示すように更新し、
読み出し対象のデータが前記第2の記憶装置に格納されていない場合、当該読み出し対象のデータを前記第1の記憶装置から読み出して要求元に転送すると共に、当該読み出したデータを前記第2の記憶装置に格納して前記第1のフラグ情報をデータ全体が存在する旨を示すように更新する
リード制御手段を有する、
ことを特徴とするデータ記憶システム。 One or more first storage devices;
A second storage device;
The first storage device and the second storage device are controlled to use the second storage device as a cache of the first storage device, and data existing on the second storage device is the first storage device. A control device for managing first flag information indicating whether or not the entire data on the storage device is;
Comprising
The controller is
When requested to read data stored in the first storage device,
From the first flag information, when the entire data to be read is present in the second storage device, the data stored in the second storage device is read and transferred to the request source,
Based on the first flag information, when a part of the data to be read exists in the second storage device, a part of the data read from the second storage device and the data read from the first storage device The other data portion is merged and transferred to the request source, and the merged data is stored in the second storage device so that the first flag information indicates that the entire data exists. Updated to
When the data to be read is not stored in the second storage device, the data to be read is read from the first storage device and transferred to the request source, and the read data is transferred to the second storage device. Read control means for storing in the device and updating the first flag information to indicate that the entire data is present ,
A data storage system characterized by that.
前記制御装置の前記ライト制御手段は、前記書き込み先のアドレスに対応するデータが前記第2の記憶装置に格納されておらず、かつ、当該書き込み先のアドレスを示すビット列中の前記所定のビット列の値が同一のデータの前記第2の記憶装置への格納数が所定数に達していた場合、当該格納されている所定数のデータ内で読み出しを要求された時が時間的に最も遠いデータについて、前記第2のフラグ情報を参照して、書き込みデータを含んでいるか否かを判定し、前記書き込みデータを含んでいない場合、このデータと入れ替えるべく、当該書き込み対象データの書き込みを前記第2の記憶装置に対して実行することを特徴とする請求項3記載のデータ記憶システム。 The control means further manages second flag information indicating whether or not the data existing on the second storage device includes write data;
The write control means of the control device does not store data corresponding to the write destination address in the second storage device, and stores the predetermined bit string in the bit string indicating the write destination address . When the number of data having the same value stored in the second storage device has reached a predetermined number, the data that is farthest in time when reading is requested within the predetermined number of stored data the reference to the second flag information, determines whether Luke contain write data, the If no write data such contain, to replace this data, the writing of the write target data 4. The data storage system according to claim 3, wherein the data storage system is executed for the second storage device.
前記第1の記憶装置内における記憶領域の使用単位である第1の単位を複数個まとめた第2の単位で前記第1の記憶装置へのデータの書き込みおよび前記第1の記憶装置からのデータの読み出しを実行し、
前記第2の記憶装置上に存在する前記第1の記憶装置上のデータについて、前記第2の単位ごとに、前記ライト制御手段によるデータの書き込み有無を前記第1の単位で示すビットマップ情報を管理するビットマップ管理手段をさらに有することを特徴とする請求項3記載のデータ記憶システム。 The control means includes
Writing data to the first storage device and data from the first storage device in a second unit in which a plurality of first units, which are units of use of storage areas in the first storage device, are collected. Read
The data on the first storage device is present in the second storage device on, for each of the second unit, the bitmap information indicating the writing presence or absence of data by said write control means in said first unit 3. Symbol mounting data storage system further comprising a bit map management means for managing.
前記第2の記憶装置は、不揮発性半導体メモリ装置によって構成される、
ことを特徴とする請求項1記載のデータ記憶システム。 The first storage device is composed of one or more magnetic disk devices,
The second storage device includes a nonvolatile semiconductor memory device.
The data storage system according to claim 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009035266A JP4734432B2 (en) | 2009-02-18 | 2009-02-18 | Data storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009035266A JP4734432B2 (en) | 2009-02-18 | 2009-02-18 | Data storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010191672A JP2010191672A (en) | 2010-09-02 |
JP4734432B2 true JP4734432B2 (en) | 2011-07-27 |
Family
ID=42817655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009035266A Expired - Fee Related JP4734432B2 (en) | 2009-02-18 | 2009-02-18 | Data storage system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4734432B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5692590B2 (en) * | 2011-04-20 | 2015-04-01 | 日本電気株式会社 | Reboot, boot, shutdown acceleration device and reboot, boot, shutdown acceleration method |
JP6011153B2 (en) | 2012-08-22 | 2016-10-19 | 富士通株式会社 | Storage system, storage control method, and storage control program |
JP2021092877A (en) * | 2019-12-09 | 2021-06-17 | Necプラットフォームズ株式会社 | Server system, detection method and program |
CN116880776B (en) * | 2023-09-06 | 2023-11-17 | 上海凯翔信息科技有限公司 | Data processing system for storing data |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07129470A (en) * | 1993-11-09 | 1995-05-19 | Hitachi Ltd | Disk control method |
JP2006012006A (en) * | 2004-06-29 | 2006-01-12 | Tokugen Ou | Cache device and method |
JP2008276646A (en) * | 2007-05-02 | 2008-11-13 | Hitachi Ltd | Storage device and data management method for storage device |
-
2009
- 2009-02-18 JP JP2009035266A patent/JP4734432B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07129470A (en) * | 1993-11-09 | 1995-05-19 | Hitachi Ltd | Disk control method |
JP2006012006A (en) * | 2004-06-29 | 2006-01-12 | Tokugen Ou | Cache device and method |
JP2008276646A (en) * | 2007-05-02 | 2008-11-13 | Hitachi Ltd | Storage device and data management method for storage device |
Also Published As
Publication number | Publication date |
---|---|
JP2010191672A (en) | 2010-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6832187B2 (en) | Methods and systems for caching in data storage subsystems | |
US9378131B2 (en) | Non-volatile storage addressing using multiple tables | |
EP2742428B1 (en) | Cache management including solid state device virtualization | |
JP5571691B2 (en) | Maintaining mapping address tables in storage | |
JP5593577B2 (en) | Storage system and control method thereof | |
US8321639B2 (en) | Command tracking for direct access block storage devices | |
US9128847B2 (en) | Cache control apparatus and cache control method | |
EP2685384B1 (en) | Elastic cache of redundant cache data | |
US20150378886A1 (en) | Software-defined ssd and system using the same | |
US9792073B2 (en) | Method of LUN management in a solid state disk array | |
US20100115175A9 (en) | Method of managing a large array of non-volatile memories | |
US9047200B2 (en) | Dynamic redundancy mapping of cache data in flash-based caching systems | |
US20120059978A1 (en) | Storage array controller for flash-based storage devices | |
US20160253123A1 (en) | NVMM: An Extremely Large, Logically Unified, Sequentially Consistent Main-Memory System | |
JP2000099282A (en) | File management system | |
EP3629142B1 (en) | Method of operating storage device, storage device performing the same and storage system including the same | |
JP4734432B2 (en) | Data storage system | |
US20180307427A1 (en) | Storage control apparatus and storage control method | |
JP4724253B2 (en) | Data storage system and cache data consistency guarantee method | |
US20240311049A1 (en) | Device cache engine for a cache-coherent interconnect memory expansion | |
JP2003263276A (en) | Disk system and disk access method | |
JP2010170268A (en) | Storage system control method, storage control device, and program | |
JP6273678B2 (en) | Storage device | |
JP2020115275A (en) | Information processing device and program | |
JP2009080549A (en) | Disk array controller and data layout method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100921 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101126 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20101206 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110329 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110425 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140428 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140428 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |