JP2004355040A - Disk controller and data pre-reading method - Google Patents
Disk controller and data pre-reading method Download PDFInfo
- Publication number
- JP2004355040A JP2004355040A JP2003148231A JP2003148231A JP2004355040A JP 2004355040 A JP2004355040 A JP 2004355040A JP 2003148231 A JP2003148231 A JP 2003148231A JP 2003148231 A JP2003148231 A JP 2003148231A JP 2004355040 A JP2004355040 A JP 2004355040A
- Authority
- JP
- Japan
- Prior art keywords
- data
- access
- access mode
- write
- control device
- 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、ディスクドライブへ書き込むデータに所定ブロック長単位で冗長データを付加する機能を備えたディスク制御装置、及び前記冗長データ領域を利用したデータ先読み方法に関する。
【0002】
【従来の技術】
コンピュータシステムに於いては各種データの格納先としてハードディスクを記録媒体とするストレージシステムが広く用いられる。例えばアニメーション、サウンド等のデータを扱うコンピュータシステムに於いては各種ストリーミングデータの格納先に上記ストレージシステムが用いられる。この種、ストレージシステムに於いては、ホストへの高レスポンスなデータ返却が要求される。この要求を満たすための一手法としてデータの先読み機能がある。この先読み機能の一例として、従来、先読みバッファのヒット率(キャッシュのヒット率)の向上を目的に、一連の関連するデータがアドレス非連続の複数のセクタに渡って書き込まれる場合に、それらセクタ番地の値がアドレス昇順に変化している場合に、その各セクタに同一値の付属コードを書き込む技術が存在する(例えば、特許文献1参照)。
【0003】
しかしながら上記したような各種のストリーミングデータを扱うストレージシステムに於いては、ストレージシステムからホスト側に複数のストリーミングデータを送出するような場合に、ストレージシステムがホスト側から受け取る読み出しリクエストは、ランダムアクセスとなり、従って複数のシーケンシャルデータアクセスが実行中であることの判定が難しい。このため十分なデータの先読みが行われず、その結果、レスポンスの低下を招く。また、先読みが行われたとしてもディスク上にデータがシーケンシャルに配置されていない場合には、先読みしたデータ自体が必要なデータでない場合もあり、先読みの効果が十分に現れないこともある。
【0004】
【特許文献1】
特開平6−289999号公報
【0005】
【発明が解決しようとする課題】
上述したように従来では、各種のストリーミングデータを扱うストレージシステムに於いて、複数のストリーミングデータを並行して送出する場合に先読み機能が十分に発揮できず、結果的にホストへの高レスポンスなデータ返却ができない場合があるという問題があった。
【0006】
本発明は上記実情に鑑みなされたもので、複数のストリーミングデータを扱う場合であってもホストへの高レスポンスなデータ返却が可能なディスク制御装置およびデータ先読み方法を提供することを目的とする。
【0007】
【課題を解決するための手段】
本発明は、データを記録するディスクのセクタを単位に冗長な情報をもたせる技術を有効に活用して、複数のシーケンシャルデータを効率よく先読みしてホストへの高レスポンスなデータ返却を可能にしたもので、セクタ単位の冗長データの一部にランダムアクセス/シーケンシャルアクセスなどのアクセス形態をセットするフィールドと、この情報を外部(ホスト側)からセットするプログラムインタフェースとを設け、シーケンシャルアクセスを示すアクセス形態がセットされている場合に、先読み機能を積極的に働かせる機能を実現して、ホストからの要求に従う読み出し処理を高速に実行することを特徴とする。
【0008】
即ち、本発明は、ディスクドライブへ書き込むデータに所定ブロック長単位で冗長データを付加する機能を備えたディスク制御装置に於いて、前記ディスクドライブへのデータ書き込み要求に伴い前記ディスクドライブに書き込むデータのアクセス形態を認識し管理する管理手段と、前記データ書き込み要求に従う前記ディスクドライブへのデータ書き込みに際して、前記管理手段が管理するアクセス形態を参照し、当該アクセス形態に従うフラグ情報を前記書き込み要求に従う書き込みデータに付加される前記冗長データの所定ビット位置に設定する制御手段とを具備し、前記ディスクドライブからのデータ読出しアクセス時に、当該データに付加された前記冗長データに含まれる前記フラグ情報を参照して、データの先読みを制御することを特徴とする。
【0009】
また、本発明は、ホスト側装置からデータ書き込み要求を受け付け、当該要求に従い、ディスクドライブへ書き込むデータに所定ブロック長単位で冗長データを付加する機能を備えたデータ記憶制御装置のデータ先読み方法に於いて、前記データ記憶制御装置の外部に、前記ホスト側装置からのデータ書き込み要求に伴う書き込みデータのアクセス形態を前記データ記憶制御装置に通知する手段を具備し、前記データ記憶制御装置に、前記通知されたアクセス形態を前記データ書き込み要求に対応付けて保持するステップと、前記データ書き込み要求に従う前記ディスクドライブへのデータ書き込みに際して、前記保持したアクセス形態を参照し、当該アクセス形態に従うフラグ情報を前記書き込み要求に従う書き込みデータに付加される前記冗長データの所定ビット位置に設定するステップと、前記ホスト側装置からのデータ読出し要求に伴う前記ディスクドライブからのデータ読出しアクセス時に、当該データに付加された前記冗長データに含まれる前記フラグ情報を参照して、データの先読みを実行するステップとを具備したことを特徴とする。
【0010】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態を説明する。尚、この実施形態では、ハードディスクドライブ(HDD)を記憶媒体としたストレージデバイスを例に示しているが、その他の記憶媒体を用いたストレージデバイスに於いても同様に実施可能である。
【0011】
図1は本発明の実施形態に於けるディスク制御装置を備えたデータ記憶システムの構成を示すブロック図である。
図1に示すデータ記憶システムは、データ記憶制御装置10とデータ記憶装置20とを有して構成される。
データ記憶制御装置10には、ホストインタフェース(HOST I/F)11、CPU12、プログラムメモリ13、キャッシュメモリ14、HDDインタフェース15等が設けられる。上記プログラムメモリ13には後述するキャッシュ管理モジュール(CMM)130が設けられる。またデータ記憶装置20には、ストレージデバイスを構成する複数のハードディスクドライブ(HDD)21,21,…が設けられ、ここでは、RAID(redundant arrays of inexpensive disks)システムを構成している。
【0012】
ホストインタフェース11は、ホストとなるコンピュータ、若しくはその集合体、若しくは他のデータ記憶装置等(ホストIOと称す)との間で、リード/ライト要求、リード/ライトデータ等を含む各種情報の授受を行う。
【0013】
CPU12は、データ記憶システム全体の制御を司るもので、ここではプログラムメモリ13に格納されたキャッシュ管理モジュール(CMM)130の各種処理を実行する。この際のキャッシュ管理モジュール(CMM)130に設けられたアクセス形態情報管理部135の処理の手順を図5に示し、アクセス形態情報管理部135にアクセス形態情報が設定してあるロジカルディスク(LDISK)に対して書き込み要求があった際の処理の手順を図6に示している。
【0014】
プログラムメモリ13には、図3に示すような構成要素もつキャッシュ管理モジュール(CMM)130が格納される。このキャッシュ管理モジュール(CMM)130の各構成要素については後述する。
【0015】
キャッシュメモリ14は、上記ホストインタフェース(HOST I/F)11を介してホストIOから受けたデータ記憶装置20の入出力要求に対するデータバッファ(バッファメモリ)の役目を提供する。例えば、ホストIOからの書き込み要求に従うデータ記憶装置20への書き込み処理については、キャッシュメモリ40にエントリして、要求元のホストに対し、書き込み処理完了を返却し、後に、キャッシュメモリ40からデータ記憶装置20の記憶媒体に対して実際の書き込みを行う。またデータ記憶装置20からの読み込み処理については、要求されたデータがキャッシュメモリ40にキャッシュ(バッファ)されているか否かを判定し、キャッシュメモリ40にエントリされていれば、そのデータを返却し、キャッシュメモリ40にエントリされていない場合には、データ記憶装置20の記憶媒体からキャッシュメモリ40に読み出して、その後に要求ホストに読み出しデータを返却する。
【0016】
HDDインタフェース15は、CPU12の制御の下に、データ記憶装置20の各記憶媒体となるハードディスクドライブ(HDD)21,21,…に対してデータのリード/ライトを行う。ここでは、RAID構成に従うディスクのリード/ライト制御を行う。
【0017】
上記データ記憶装置20の記憶媒体となるHDD21,21,…には、各セクタ(512バイト)毎に、ブロック付属コード若しくはセクタ付属コード若しくはチェックコードと呼ばれる8バイトの冗長データが付加される。このセクタ付属コードのフォーマット例を図2に示している。
【0018】
図2は上記データ記憶装置20に設けられた記憶媒体(HDD21,21,…)のセクタ(512バイト)毎に付加される冗長データのフォーマット例を示したもので、バイト0,1はハードウェアにより生成されるデータであり、バイト2からバイト7までが、データ記憶装置20を制御するファームウェアによりセットされる情報(ソフトウェア情報)である。バイト0,1には、該当セクタのデータに対するCRC( cyclic redundancy check)コードが格納され、バイト2からバイト5には、ホストIOからみた論理ディスク内での論理ブロックの領域を示す論理アドレスが格納される。バイト6,7は、情報の取捨選択、ビットの丸め等により確保した空き領域、若しくはもともと不使用となっていた領域であり、この発明が利用する領域(冗長データに於けるアクセス形態情報領域)である。この発明は、上記空き領域を有効に活用して先読みの効率化を図るもので、当該空き領域に、該当セクタの記憶データに対するアクセス形態を示す情報をセットする。この実施形態では、バイト6の特定ビット位置に、該当セクタデータのアクセス形態が、シーケンシャルアクセス/ランダムアクセスの何れであるかを示すフラグ情報をセットする。この例では、シーケンシャルアクセスのデータに対して“1”、ランダムアクセスのデータに対して“0”がセットされる。尚、この処理については後述する。
【0019】
図3は上記プログラムメモリ13に設けられたキャッシュ管理モジュール(CMM)130の構成要素と、その周辺の主要構成要素を示したもので、ここでは、キャッシュ管理モジュール(CMM)130とホストIOとの間のインタフェース機能として、ホストインタフェース制御部210、IO管理部(IOM)220、アプリケーションプログラム(APL)230等が設けられ、キャッシュ管理モジュール(CMM)130とデータ記憶装置20との間のインタフェース機能として、RAID制御部250、HDDインタフェース制御部260等が設けられる。
【0020】
上記したホストインタフェース制御部210は、上記図1に示すデータ記憶システムと他装置(ここでは単にホストIOと称している)とのインタフェース処理を担当する。IO管理部(IOM)220は、ホストIOに対してのIOアクセス管理、並びにIOアクセス領域制御を行う。アプリケーションプログラム(APL)230は、本発明の一構成要件となるアクセス形態をデータ記憶制御装置10に通知する機能をもつもので、ここでは、ホストIO側でのデータ書き込み要求時に於いて、これから書き込むデータがシーケンシャルデータであるか否かを示すアクセス形態(シーケンシャルアクセス/ランダムアクセス)の指示をユーザより受け付け、そのアクセス形態をデータ書き込み先のLDISK番号とともにデータ記憶制御装置10のプログラムメモリ13に設けられたキャッシュ管理モジュール(CMM)130に通知する。
【0021】
キャッシュ管理モジュール(CMM)130は、IOアクセス制御部131、デステージング/ステージング制御部132、キャッシュメモリ管理部133、LDISK制御部134、アクセス形態情報管理部135、及び管理テーブル(TBL)136等を具備して構成される。
【0022】
本発明は、上記各構成要素のうち、特に、アクセス形態情報管理部135と、その管理情報にもとづき、アクセス形態に従うフラグ情報を生成するIOアクセス制御部131と、データ読み出し時にシーケンシャルアクセスのフラグ情報(“1”)を検出した際に、許容される範囲内での先読みを行うデステージング/ステージング制御部132とにより、先読み機能を積極的に働かせて、ホストIOからの読み出し処理を高速に実行する機能を実現している。
【0023】
IOアクセス制御部131は、IO管理部(IOM)220から要求を受け付けるブロックであり、主にホストIOからのリード/ライトアクセスを制御する。IOアクセス制御部131は、ホストIOから要求されたアクセス情報(アドレス、転送サイズ)により、キャッシュメモリ管理部133との連携で、該当するキャッシュブロックのエントリサーチを行い、キャッシュメモリ14とホストIOとのデータ転送をホストインタフェース制御部210に対して要求する。またIOアクセス制御部131は、ホストIOからの書き込み要求に従うデータライト時に、上記したアクセス形態情報等のソフトウェア情報を図2に示す冗長データに付加する制御を行う。更に、データ格納状況によりディスク転送が伴う場合は、キャッシュメモリ14とデータ記憶装置20とのデータ転送情報をLDISK制御部134に引き渡し、必要なディスクデータの転送を行う。
【0024】
デステージング/ステージング制御部132は、IOアクセス制御部131から受けたホストIOからの要求に従うアクセス情報により、シーケンシャルライトまたはシーケンシャルリードの検出を行う。シーケンシャルなアクセスを検出した場合、ライトでは後追い吐き出し(ライトバック)要求を、リードではデータ先読み要求をIO管理部(IOM)220に領域を指定して発行する。また、特定のタイミングで未吐き出しのWBC(ライトバックキャッシュ)データを抽出し、ストライプグループ単位に纏めて論理ディスクに書き込むための要求をIO管理部(IOM)220に領域を指定して発行する。更に、上記デステージング/ステージング制御部132のステージング制御では、データリードアクセスに於いて、冗長データのアクセス形態情報領域(ここではバイト6)にシーケンシャルアクセスを示す“1”が設定されたブロック(セクタ)を検知すると、一意に、許容される領域内での先読みを実施する。この先読み機能によって、上述したように、例えば複数のストリーミングデータを並行してリードアクセスしている場合は、上述したようにシーケンシャルリードの検出が行われず、ホストIOへの高レスポンスなデータ返却が期待できない、という不具合を解消してホストIOへの高レスポンスなデータ返却を可能にしている。
【0025】
キャッシュメモリ管理部133は、キャッシュカラム単位に割り当てられているキャッシュブロックと対象論理ディスクの領域をマッピングし、ホストIOからライトされたデータまたはデータ記憶装置20のディスクからリードしたデータの格納状態を管理する。
【0026】
LDISK制御部134は、論理ディスクを対象にデータ記憶装置20をアクセス制御するもので、IOアクセス制御部131の制御の下に、RAID制御部250及びHDDインタフェース制御部260を介してデータ記憶装置20をアクセス制御する。このLDISK制御部134と、RAID制御部250及びHDDインタフェース制御部260はそれぞれ既存の構成要素であり、ここでは、ホストIOから見える論理ディスクをLDISKと称し、いくつかの物理ディスクで構成したRAIDをスライスに分割したものをSDISKと称している。ここではRAIDを構成し、これをスライス分割してSDISKを構成し、複数のSDISKをストライピング(あるいはコンカチネーション)で組み合わせることによってLDISKを構成する。このLDISKは、ホストIOからは、ひとつのロジカルユニットとして見える。また、ここでは、LDISKに割り振られたユニークなIDをLDISK番号と称している。
【0027】
アクセス形態情報管理部135は、管理テーブル(TBL)136を有して、上記したアプリケーションプログラム(APL)230から発行された、ホストIOからのデータ書き込み要求に伴う書き込みデータのアクセス形態(ランダムアクセス/シーケンシャルアクセス)を、当該要求に従うLDISK番号とともに管理テーブル(TBL)136に登録し管理する。このアクセス形態情報管理部135の動作については図5を参照して後述する。
【0028】
図4は上記アクセス形態情報管理部135に設けられた管理テーブル(TBL)136の一構成例を示したもので、ここでは、予め割り振られたLDISK番号の各々について、アクセス形態の保持領域を設けた構成とし、アプリケーションプログラム(APL)230からアクセス形態(ランダムアクセス/シーケンシャルアクセス)が通知された際に、そのアクセス形態情報を該当するLDISK番号位置に登録する。
【0029】
図5は上記アクセス形態がアプリケーションプログラム(APL)230からデータ記憶制御装置10に通知された際の上記アプリケーションプログラム(APL)230とキャッシュ管理モジュール(CMM)130との間に於ける処理手順を示すフローチャートである。
【0030】
図6は上記アクセス形態情報管理部135の管理テーブル(TBL)136にアクセス形態が登録されているLDISK番号に対して、書き込み要求に従う処理を行う際のキャッシュ管理モジュール(CMM)130の処理手順を示すフローチャートである。
【0031】
ここで、上記図5および図6に示すフローチャートを参照して本発明の実施形態の動作を説明する。
【0032】
ホストIOからデータ書き込み要求が発行されると、アプリケーションプログラム(APL)230は、これから作成するファイルが存在するLDISK番号、および当該書き込みデータのアクセス形態をキャッシュ管理モジュール(CMM)130のアクセス形態情報管理部135に通知する(図5ステップS101)。この際、アプリケーションプログラム(APL)230は、ホストIOから発行されたデータ書き込み要求を受けると、当該データ書き込み要求のアドレスおよびサイズを含むアクセス情報の内容をもとに、要求された書き込みデータのアクセス形態が、ランダムアクセス、シーケンシャルアクセスのいずれであるかを判定し、判定したアクセス形態をデータ書き込み先のLDISK番号とともにキャッシュ管理モジュール(CMM)130のアクセス形態情報管理部135に通知する。
【0033】
キャッシュ管理モジュール(CMM)130に設けられたアクセス形態情報管理部135は、上記アプリケーションプログラム(APL)230から通知されたLDISK番号とアクセス形態を示すアクセス形態情報を管理テーブル136にセットする(図5ステップS102)。この際、アクセス形態情報管理部135は、アプリケーションプログラム(APL)230から発行されたアクセス形態(ランダムアクセス/シーケンシャルアクセス)を受けると、そのアクセス形態を示すアクセス形態情報を、データ書き込み先のLDISK番号に対応付けて管理テーブル136に登録する。更にこの登録完了に伴い、アプリケーションプログラム(APL)230に登録IDを返却する。
【0034】
アプリケーションプログラム(APL)230はアクセス形態情報管理部135から上記登録IDを受けると、続いてファイルの作成処理(データ書き込み処理)を実行する(図5ステップS103)。この際、アプリケーションプログラム(APL)230は、アクセス形態情報管理部135から上記登録IDを受けると、当該登録IDを保持して、作成するファイルの書き込みデータをホストインタフェース制御部210を介してキャッシュ管理モジュール(CMM)130に送出する。
【0035】
この際のLDISKに対するホストライト処理については、図6を参照して後述する。
アプリケーションプログラム(APL)230はファイル作成の書き込み処理が完了すると、アクセス形態情報管理部135に対して上記登録IDを引数にテーブルエントリの削除を要求する(図5ステップS104)。
【0036】
アクセス形態情報管理部135はアプリケーションプログラム(APL)230から上記テーブルエントリの削除要求を受けると、該当要求の登録IDで指定されたエントリをテーブルから削除する(図5ステップS105)。この際、アクセス形態情報管理部135は、アプリケーションプログラム(APL)230からテーブルエントリの削除要求を受けると、管理テーブル136に登録されていた、上記要求で返された登録IDに該当する登録フィールド(LDISK番号)のアクセス形態を示すフラグ情報をテーブル上から削除する。
【0037】
次に、上記アクセス形態情報管理部135の管理テーブル136に、アクセス形態情報(アクセス形態を示すフラグ情報)が設定(登録)されているLDISKに対してデータの書き込みが実行される際の本発明の実施形態に於ける処理(LDISKに対するホストライト処理)を図6を参照して説明する。
【0038】
この処理では、先ず、これから実行されるホストIOからの要求に従うファイルの作成処理(書き込み処理)に対して、通常の書き込み処理に於ける排他制御と同様に、IO管理部(IOM)220による、複数のホストIOを対象とした排他制御のためのIO領域のロック(図6ステップS201)、およびキャッシュ管理モジュール(CMM)130のIOアクセス制御部131による同じく排他制御のためのキャッシュの確保並びに領域ロック(図6ステップS202)が行われる。更に、キャッシュ管理モジュール(CMM)130のIOアクセス制御部131は、アクセス形態情報管理部135の管理テーブル136を参照して、これから実行されるファイル作成処理(書き込み処理)のアクセス形態がランダムアクセスであるか、シーケンシャルアクセスであるかを判断し(図6ステップS203)、シーケンシャルアクセスであれば“1”のフラグ情報を、またランダムアクセスであれば“0”のフラグ情報を冗長データのアクセス形態情報領域(ここではビット6)に設定して(図6ステップS204,S205)、ホストIOから受けた書き込みデータをキャッシュ管理モジュール(CMM)130に転送する(図6ステップS206)。これにより、書き込み対象となるホストIOから転送されたファイルデータがブロック(セクタ)単位で、指定されたLDISKに上記アクセス形態のフラグ情報を含む冗長データとともに格納される。
【0039】
データ記憶装置20からのリードアクセスに於いて、キャッシュ管理モジュール(CMM)130に設けられたデステージング/ステージング制御部132のステージング制御では、データリードアクセスに於いて、冗長データのアクセス形態情報領域(ここではバイト6)にシーケンシャルアクセスを示す“1”が設定されたブロック(セクタ)を検知すると、許容される領域内での先読みを実施する。
【0040】
このように、本発明の実施形態によれば、ブロック(セクタ)単位で冗長データを付加する技術を有効に活用して、複数のシーケンシャルデータを効率よく先読みしてホストへの高レスポンスなデータ返却を可能にし、これにより、先読み機能を積極的に働かせて、ホストからの要求に従う読み出し処理を高速に実行することができる。
【0041】
尚、上記した実施形態では、アプリケーションプログラム(APL)230が、ユーザインタフェースを介して、これから書き込むデータがシーケンシャルデータであるか否かを示すアクセス形態(シーケンシャルアクセス/ランダムアクセス)を受け付け、そのアクセス形態をデータ書き込み先のLDISK番号とともにデータ記憶制御装置10のプログラムメモリ13に設けられたキャッシュ管理モジュール(CMM)130に通知していたが、これに限らず、例えば複数のストリーミングデータを対象としたデータストリーミングデータの管理手段をもたせて、その管理情報を参照することで、ユーザインタフェースを介さずにアクセス形態を認識し通知することも可能である。
【0042】
【発明の効果】
以上詳記したように本発明によれば、複数のストリーミングデータを扱う場合であってもホストへの高レスポンスなデータ返却が可能なディスク制御装置およびデータ先読み方法が提供できる。
【図面の簡単な説明】
【図1】本発明の実施形態に於けるディスク制御装置の構成を示すブロック図。
【図2】上記実施形態に於けるアクセス形態情報の保持領域をもつ冗長フィールドのフォーマット例を示す図。
【図3】上記実施形態に於けるプログラムメモリに設けられたキャッシュ管理モジュールの構成を示すブロック図。
【図4】上記実施形態に於けるアクセス形態情報管理部に設けられた管理テーブルの構成例を示す図。
【図5】上記実施形態に於けるアプリケーションプログラムとアクセス形態情報管理部との処理手順を示すフローチャート。
【図6】上記実施形態に於けるアクセス形態情報管理部の管理に従う冗長データへのフラグ設定処理手順を示すフローチャート。
【符号の説明】
10…データ記憶制御装置、11…ホストインタフェース(HOST I/F)、12…CPU、13…プログラムメモリ、14…キャッシュメモリ、15…HDDインタフェース、20…データ記憶装置、21…ハードディスクドライブ(HDD)、130…キャッシュ管理モジュール(CMM)、131…IOアクセス制御部、132…デステージング/ステージング制御部、133…キャッシュメモリ管理部、134…ロジカルディスク(LDISK)制御部、135…アクセス形態情報管理部、136…管理テーブル、210…ホストインタフェース制御部、220…IO管理部(IOM)、230…アプリケーションプログラム(APL)、250…RAID制御部、260…HDDインタフェース制御部。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a disk control device having a function of adding redundant data to data to be written to a disk drive in units of a predetermined block length, and a data prefetch method using the redundant data area.
[0002]
[Prior art]
In a computer system, a storage system using a hard disk as a recording medium as a storage destination of various data is widely used. For example, in a computer system that handles data such as animation and sound, the storage system is used as a storage destination of various streaming data. In this type of storage system, high-response data return to the host is required. One method for satisfying this requirement is a data prefetch function. As an example of the prefetch function, conventionally, when a series of related data is written over a plurality of sectors having non-consecutive addresses for the purpose of improving the hit rate of the prefetch buffer (the hit rate of the cache), these sector addresses are used. There is a technique for writing an auxiliary code having the same value in each sector when the value of the address changes in the ascending address order (for example, see Patent Document 1).
[0003]
However, in a storage system that handles various types of streaming data as described above, when a plurality of streaming data is transmitted from the storage system to the host, the read request received from the host by the storage system is random access. Therefore, it is difficult to determine that a plurality of sequential data accesses are being executed. For this reason, sufficient pre-reading of data is not performed, and as a result, the response is reduced. Further, even if the prefetching is performed, if the data is not sequentially arranged on the disk, the prefetched data itself may not be necessary data, and the effect of the prefetching may not be sufficiently exhibited.
[0004]
[Patent Document 1]
JP-A-6-289999
[0005]
[Problems to be solved by the invention]
As described above, conventionally, in a storage system that handles various types of streaming data, when a plurality of streaming data are transmitted in parallel, the pre-reading function cannot be sufficiently performed, and as a result, high response data to the host is obtained. There was a problem that it could not be returned.
[0006]
The present invention has been made in view of the above circumstances, and has as its object to provide a disk control device and a data prefetching method capable of returning data with high response to a host even when handling a plurality of streaming data.
[0007]
[Means for Solving the Problems]
The present invention effectively utilizes a technique of giving redundant information in units of a disk sector for recording data to efficiently read ahead a plurality of sequential data and enable a high-response data return to a host. A field for setting an access mode such as random access / sequential access for a part of redundant data in sector units and a program interface for setting this information from the outside (host side) are provided. When set, a function of positively operating the pre-reading function is realized, and a reading process according to a request from the host is executed at high speed.
[0008]
That is, the present invention relates to a disk control device having a function of adding redundant data in units of a predetermined block length to data to be written to a disk drive, wherein the data to be written to the disk drive in response to a data write request to the disk drive. Management means for recognizing and managing an access mode; and when writing data to the disk drive in accordance with the data write request, referring to an access mode managed by the management means, and writing flag information in accordance with the access mode with write data in accordance with the write request. Control means for setting a predetermined bit position of the redundant data to be added to the data, at the time of data read access from the disk drive, by referring to the flag information included in the redundant data added to the data. Can control data prefetching The features.
[0009]
The present invention also provides a data pre-reading method for a data storage control device having a function of receiving a data write request from a host device and adding redundant data to a data to be written to a disk drive in units of a predetermined block length in accordance with the request. Means for notifying the data storage control device of an access mode of write data accompanying a data write request from the host device, outside the data storage control device, wherein the data storage control device Holding the accessed access mode in association with the data write request; and when writing data to the disk drive in accordance with the data write request, referencing the held access mode and writing the flag information according to the access mode. Before being added to the write data according to the request Setting the redundant data at a predetermined bit position, and referring to the flag information included in the redundant data added to the data at the time of data read access from the disk drive in response to a data read request from the host-side device And performing a pre-read of the data.
[0010]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings. In this embodiment, a storage device using a hard disk drive (HDD) as a storage medium is shown as an example, but the present invention can be similarly applied to a storage device using another storage medium.
[0011]
FIG. 1 is a block diagram showing a configuration of a data storage system including a disk control device according to an embodiment of the present invention.
The data storage system shown in FIG. 1 includes a data
The data
[0012]
The host interface 11 exchanges various information including a read / write request, read / write data, and the like with a computer serving as a host, an aggregate thereof, or another data storage device (referred to as a host IO). Do.
[0013]
The
[0014]
The
[0015]
The
[0016]
The
[0017]
The HDDs 21, 21,... Serving as storage media of the
[0018]
FIG. 2 shows an example of a format of redundant data added to each sector (512 bytes) of a storage medium (
[0019]
FIG. 3 shows components of the cache management module (CMM) 130 provided in the
[0020]
The above-described host
[0021]
The cache management module (CMM) 130 includes an IO
[0022]
The present invention includes an access mode
[0023]
The IO
[0024]
The destaging /
[0025]
The cache
[0026]
The
[0027]
The access mode
[0028]
FIG. 4 shows an example of the configuration of a management table (TBL) 136 provided in the access mode
[0029]
FIG. 5 shows a processing procedure between the application program (APL) 230 and the cache management module (CMM) 130 when the access form is notified from the application program (APL) 230 to the data
[0030]
FIG. 6 shows a processing procedure of the cache management module (CMM) 130 when performing processing in accordance with a write request for an LDISK number whose access mode is registered in the management table (TBL) 136 of the access mode
[0031]
Here, the operation of the embodiment of the present invention will be described with reference to the flowcharts shown in FIGS.
[0032]
When a data write request is issued from the host IO, the application program (APL) 230 stores the LDISK number where the file to be created exists and the access mode of the write data in the access mode information management of the cache management module (CMM) 130. The notification is made to the unit 135 (step S101 in FIG. 5). At this time, upon receiving the data write request issued from the host IO, the application program (APL) 230 accesses the requested write data based on the contents of the access information including the address and size of the data write request. It determines whether the mode is random access or sequential access, and notifies the determined access mode to the access mode
[0033]
The access mode
[0034]
Upon receiving the registration ID from the access mode
[0035]
The host write processing for LDISK at this time will be described later with reference to FIG.
When the writing process of file creation is completed, the application program (APL) 230 requests the access mode
[0036]
Upon receiving the table entry deletion request from the application program (APL) 230, the access mode
[0037]
Next, the present invention is applied when data is written to an LDISK in which access mode information (flag information indicating the access mode) is set (registered) in the management table 136 of the access mode
[0038]
In this process, first, the file management process (write process) according to a request from the host IO to be executed is performed by the IO management unit (IOM) 220 in the same manner as the exclusive control in the normal write process. Locking of an IO area for exclusive control for a plurality of host IOs (step S201 in FIG. 6), and securing of a cache and area for exclusive control by the IO
[0039]
In the read access from the
[0040]
As described above, according to the embodiment of the present invention, a technique of adding redundant data in units of blocks (sectors) is effectively used to efficiently read ahead a plurality of sequential data and return data with high response to the host. This makes it possible to execute the read processing according to the request from the host at a high speed by positively operating the prefetch function.
[0041]
In the above-described embodiment, the application program (APL) 230 receives, via a user interface, an access mode (sequential access / random access) indicating whether data to be written is sequential data or not. Is notified to the cache management module (CMM) 130 provided in the
[0042]
【The invention's effect】
As described above in detail, according to the present invention, it is possible to provide a disk control device and a data prefetching method capable of returning data with high response to a host even when handling a plurality of streaming data.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a disk control device according to an embodiment of the present invention.
FIG. 2 is a diagram showing an example of a format of a redundant field having an area for holding access mode information in the embodiment.
FIG. 3 is a block diagram showing a configuration of a cache management module provided in a program memory in the embodiment.
FIG. 4 is a diagram showing a configuration example of a management table provided in an access mode information management unit in the embodiment.
FIG. 5 is a flowchart showing a processing procedure between an application program and an access mode information management unit in the embodiment.
FIG. 6 is a flowchart showing a procedure of a flag setting process for redundant data according to the management of the access mode information management unit in the embodiment.
[Explanation of symbols]
DESCRIPTION OF
Claims (7)
前記ディスクドライブへのデータ書き込み要求に伴い前記ディスクドライブに書き込むデータのアクセス形態を認識し管理する管理手段と、
前記データ書き込み要求に従う前記ディスクドライブへのデータ書き込みに際して、前記管理手段が管理するアクセス形態を参照し、当該アクセス形態に従うフラグ情報を前記書き込み要求に従う書き込みデータに付加される前記冗長データの所定ビット位置に設定する制御手段とを具備し、
前記ディスクドライブからのデータ読出しアクセス時に、当該データに付加された前記冗長データに含まれる前記フラグ情報を参照して、データの先読みを制御することを特徴とするディスク制御装置。In a disk control device having a function of adding redundant data in units of a predetermined block length to data to be written to a disk drive,
Management means for recognizing and managing an access mode of data to be written to the disk drive in response to a data write request to the disk drive;
At the time of writing data to the disk drive according to the data write request, referring to an access mode managed by the management means, and adding flag information according to the access mode to the write data according to the write request at a predetermined bit position of the redundant data. Control means for setting the
A disk control device, wherein at the time of data read access from the disk drive, data read-ahead is controlled by referring to the flag information included in the redundant data added to the data.
前記データ記憶制御装置の外部に、前記ホスト側装置からのデータ書き込み要求に伴う書き込みデータのアクセス形態を前記データ記憶制御装置に通知する手段を具備し、
前記データ記憶制御装置に、
前記通知されたアクセス形態を前記データ書き込み要求に対応付けて保持するステップと、
前記データ書き込み要求に従う前記ディスクドライブへのデータ書き込みに際して、前記保持したアクセス形態を参照し、当該アクセス形態に従うフラグ情報を前記書き込み要求に従う書き込みデータに付加される前記冗長データの所定ビット位置に設定するステップと、
前記ホスト側装置からのデータ読出し要求に伴う前記ディスクドライブからのデータ読出しアクセス時に、当該データに付加された前記冗長データに含まれる前記フラグ情報を参照して、データの先読みを実行するステップと
を具備したことを特徴とするデータ先読み方法。A data read-ahead method of a data storage control device having a function of receiving a data write request from a host device and adding redundant data in units of a predetermined block length to data to be written to a disk drive according to the request,
Outside the data storage control device, comprising means for notifying the data storage control device of the access form of write data accompanying a data write request from the host-side device,
In the data storage control device,
Holding the notified access mode in association with the data write request,
When writing data to the disk drive in accordance with the data write request, reference is made to the held access mode, and flag information according to the access mode is set at a predetermined bit position of the redundant data added to the write data in accordance with the write request. Steps and
Executing a data prefetch by referring to the flag information included in the redundant data added to the data at the time of data read access from the disk drive in response to a data read request from the host device. A data prefetching method, comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003148231A JP2004355040A (en) | 2003-05-26 | 2003-05-26 | Disk controller and data pre-reading method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003148231A JP2004355040A (en) | 2003-05-26 | 2003-05-26 | Disk controller and data pre-reading method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004355040A true JP2004355040A (en) | 2004-12-16 |
Family
ID=34044720
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003148231A Pending JP2004355040A (en) | 2003-05-26 | 2003-05-26 | Disk controller and data pre-reading method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004355040A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009258911A (en) * | 2008-04-15 | 2009-11-05 | Toshiba Corp | Disk array device, method, and program |
US8006040B2 (en) | 2006-03-13 | 2011-08-23 | Kabushiki Kaisha Toshiba | Data storage device and method thereof |
-
2003
- 2003-05-26 JP JP2003148231A patent/JP2004355040A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8006040B2 (en) | 2006-03-13 | 2011-08-23 | Kabushiki Kaisha Toshiba | Data storage device and method thereof |
JP2009258911A (en) * | 2008-04-15 | 2009-11-05 | Toshiba Corp | Disk array device, method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8275970B2 (en) | Optimizing write traffic to a disk | |
EP2329361B1 (en) | Aggregation of write traffic to a data store | |
US6725342B1 (en) | Non-volatile mass storage cache coherency apparatus | |
JP5271424B2 (en) | An allocate-on-write snapshot mechanism for providing online data placement to volumes with dynamic storage tiering | |
KR101405729B1 (en) | Method and system for dynamic storage tiering using allocate-on-write snapshots | |
JP4372134B2 (en) | Storage system with data comparison function | |
KR101465816B1 (en) | Extending flash drive lifespan | |
TWI233552B (en) | A log-structured write cache for data storage devices and systems | |
TWI531963B (en) | Data storage systems and their specific instruction enforcement methods | |
US8332581B2 (en) | Stale track initialization in a storage controller | |
US20090089501A1 (en) | Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method | |
JP5891027B2 (en) | Method and apparatus for sanitizing a storage device | |
US10956071B2 (en) | Container key value store for data storage devices | |
JP2005063441A (en) | Hdd controller for handling writes in hdd using 4k block sizes and hdd using the same | |
US8862819B2 (en) | Log structure array | |
KR20100021868A (en) | Buffer cache management method for flash memory device | |
JPH096540A (en) | Built-in directory method for data compression of direct-access storage device and directory record | |
US9158478B2 (en) | Storage system and storage control method | |
US9471252B2 (en) | Use of flash cache to improve tiered migration performance | |
JP2001188658A (en) | Disk control system and data rearranging method | |
JP2005284816A (en) | Disk array system | |
JP2021114264A (en) | Storage control device and storage control program | |
JP2004355040A (en) | Disk controller and data pre-reading method | |
KR101056909B1 (en) | Flash memory device and memory management method in flash memory device | |
US20090049226A1 (en) | Stale track initialization in a storage controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050929 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051004 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051128 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060322 |