JP2010257481A - データ記憶システムおよびキャッシュデータの一貫性保証方法 - Google Patents

データ記憶システムおよびキャッシュデータの一貫性保証方法 Download PDF

Info

Publication number
JP2010257481A
JP2010257481A JP2010152288A JP2010152288A JP2010257481A JP 2010257481 A JP2010257481 A JP 2010257481A JP 2010152288 A JP2010152288 A JP 2010152288A JP 2010152288 A JP2010152288 A JP 2010152288A JP 2010257481 A JP2010257481 A JP 2010257481A
Authority
JP
Japan
Prior art keywords
data
storage device
control means
trace
cached
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2010152288A
Other languages
English (en)
Other versions
JP4724253B2 (ja
Inventor
Takehiko Kurashige
剛彦 蔵重
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2010152288A priority Critical patent/JP4724253B2/ja
Publication of JP2010257481A publication Critical patent/JP2010257481A/ja
Application granted granted Critical
Publication of JP4724253B2 publication Critical patent/JP4724253B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】例えば1台以上のHDDを備えてなるディスクシステム等のレスポンス性能を大幅なコストアップを招くことなく向上させることに加え、データの一貫性を保証することを実現したデータ記憶システム装置を提供する。
【解決手段】制御部21は、オペレーティングシステム(OS)起動前の論理HDD22に対するアクセスをBIOS211により制御し、OS起動後の論理HDD22に対するアクセスを当該OS配下で動作するディスクドライバ212により制御する。また、ディスクドライバ212は、論理HDD22のキャッシュとしてNVM23を用いる。BIOS211は、論理HDD22に対する書き込みを行う場合、そのライトコマンドをNVM23にトレースする。そして、BIOS211から制御を引き継いだディスクドライバ212は、このトレース情報を使って、NVM23にキャッシュされたデータの一貫性を保証するための処理を実行する。
【選択図】図1

Description

この発明は、例えば1台以上のHDD(Hard Disk Drive)を備えてなるディスクシステムに好適なキャッシュデータの一貫性保証技術に関する。
近年、様々な業種で作業の電子化が進められており、オフィス環境等においては、各従業員がそれぞれパーソナルコンピュータを使って業務を行い、また、LAN(Local Area network)を介して接続された共用のサーバコンピュータを使って、業務データを一元的に管理するといったことが広く行われている。
このような用途で用いられるサーバコンピュータにおいては、複数の従業員から読み出しや(更新を含む)書き込みが行われるデータの一貫性を保証することが重要であり、このようなことから、データの一貫性を保証するための仕組みに関する提案が、これまで種々なされているに至っている(例えば特許文献1等参照)。
特開平4−170625号公報
ところで、前述のような用途で使用されるサーバコンピュータは、例えば複数のHDDを備えることによって低コストで大容量化を実現するディスクシステムを外部記憶装置として適用することも多い。
また、最近では、HDDに代えて、不揮発性の半導体メモリを記録メディアとするSSD(Solid State Drive)を搭載するパーソナルコンピュータも登場している。このSSDはHDDと比較してデータの読み出し速度が速いので、複数のSSDによってディスクシステムを構成すれば、レスポンス性能を向上させることができる。しかしながら、そうすると、大幅なコストアップが避けられず現実的ではない。
また、コストを考慮した折衷案として、例えば、HDDとSSDとを混在させ、SSDをHDDのキャッシュとして利用することによって、レスポンス性能を向上させることも考えられる。しかしながら、この場合には、この2種類の記憶装置が例えば動作モード毎に異なるドライバの制御下に置かれ得る状況下においても、キャッシュデータの一貫性を保証することのできる新たなキャッシュデータの一貫性保証手法が求められる。
この発明はこのような事情を考慮してなされたものであり、例えば1台以上のHDDを備えてなるディスクシステム等のレスポンス性能を大幅なコストアップを招くことなく向上させ、かつ、データの一貫性を保証することを実現したデータ記憶システムおよびキャッシュデータの一貫性保証方法を提供することを目的とする。
前述した目的を達成するために、この発明のデータ記憶システムは、1台以上の第1の記憶装置と、第2の記憶装置と、起動時における前記第1の記憶装置に対するデータアクセスを第1のデバイス制御手段によって実行し、起動後における前記第1の記憶装置に対するデータアクセスを第2のデバイス制御手段によって実行する制御装置と、を具備し、前記1のデバイス制御手段は、前記第1の記憶装置へのデータの書き込み要求を受けた場合、前記第1の記憶装置へ書き込み対象のデータを書き込んだ際に、このデータの書き込み要求を示すトレース情報を前記第2の記憶装置に記録するトレース手段、を有し、前記第2のデバイス制御手段は、前記第1の記憶装置からのデータの読み出し要求を受けた場合、前記第1の記憶装置から読み出し対象のデータを読み出した際に、この読み出したデータを含むデータブロックを前記第2の記憶装置にキャッシュするキャッシング手段と、前記第1の記憶装置からのデータの読み出し要求を受けた際、読み出し対象のデータが前記第2の記憶装置にキャッシングされていた場合、前記第2の記憶装置から当該読み出し対象データを読み出す読み出し制御手段と、前記第1の記憶装置へのデータの書き込み要求を受けた場合、前記第1の記憶装置へ書き込み対象のデータを書き込むと共に、この書き込みによって更新されるべき更新前データが前記第2の記憶装置にキャッシングされていた場合、当該更新前データを含むデータブロックの更新を実行し、または、当該更新前データを含むデータブロックを無効化する書き込み制御手段と、前記第1の記憶装置へのデータの書き込み要求および前記第1の記憶装置からのデータの読み出し要求の受け付けを前記第1のデバイス制御手段から引き継いだ際、前記トレース手段によって記録されたトレース情報に基づき、前記第1のデバイス制御手段による書き込みによって更新されるべき更新前データが前記第2の記憶装置にキャッシングされていないかを判定し、キャッシングされていた場合、当該更新前データを含むデータブロックを無効化するキャッシュ一貫性保証手段と、を有する、ことを特徴とする。
この発明によれば、例えば1台以上のHDDを備えてなるディスクシステム等のレスポンス性能を大幅なコストアップを招くことなく向上させ、かつ、データの一貫性を保証することが実現される。
本発明の実施形態に係るデータ記憶システム(ディスクサブシステム)の構成を示す図。 同実施形態のディスクサブシステムにおける不揮発性メモリの記憶領域の論理的なアロケーション例を示す図 同実施形態のディスクサブシステムにおけるBIOSの論理HDDに対するデータアクセスに関する動作の流れを示すフローチャート。 同実施形態のディスクサブシステムにおけるディスクドライバの起動時における論理HDDに対するデータアクセスに関する動作の流れを示すフローチャート。 同実施形態のディスクサブシステムにおけるディスクドライバの終了時における論理HDDに対するデータアクセスに関する動作の流れを示すフローチャート。
以下、図面を参照して、この発明の一実施形態を説明する。
図1は、この発明の実施形態に係るデータ記憶システムの構成を示す図である。本データ記憶システムは、ホストシステム1が利用するデータを大量に記憶するためのディスクサブシステム2として実現されている。本実施形態では、ディスクサブシステム2は、ホストシステム1と共に1つのコンピュータシステムを構成しており、ホストシステム1とはデータバスを介して接続されているものとする。
図1に示すように、ディスクサブシステム2は、制御部21、複数の論理HDD(Hard Disk Drive)22および不揮発性メモリ(NVM:Non-Volatile Memory)23から構成されている。また、本実施形態では、NVM23として、SSD(Solid State Drive)を適用するものとする。
制御部21は、本ディスクサブシステム2の動作を制御する中枢部であり、ホストシステム1が発行する論理HDD22へのデータの書き込み要求(ライトコマンド)または論理HDD22からのデータの読み出し要求(リードコマンド)を受け付け、この要求された論理HDD22に対するデータアクセスを、(論理HDD22よりもアクセス速度の速い)NVM23をキャッシュとして利用しつつ効率的に処理すべく、論理HDD22およびNVM23を駆動制御する。
制御部21は、BIOS(Basic Input/Output System)211とディスクドライバ212とを有している。例えば、ホストシステム1において、本コンピュータシステム全体のリソース管理等を行うOS(Operationg System)がロードされて動作を開始するまでの間、ディスクサブシステム2の論理HDD22に対するデータアクセスは、BIOS211によって制御され、OSが動作を開始した後は、ディスクサブシステム2の論理HDD22に対するデータアクセスが、それまでのBIOS211に代わって、当該OSの配下で動作するディスクドライバ212によって制御される。
なお、ディスクドライバ212は、論理HDD22に対するデータアクセスを実行するにあたって、NVM23をキャッシュとして利用するが、BIOS211は、論理HDD22に対するデータアクセスを実行するにあたって、NVM23をキャッシュとして利用しない。もし、NVM23をキャッシュとして利用するための複雑な制御モジュールをBIOS211にも搭載したならば、BIOS211のコード量を大幅に増加させてしまうためである。そのため、何らの対策も講じなければ、(キャッシュされたデータの更新を必要とする書き込みをBIOS211が実行したような場合)NVM23のキャッシュデータの一貫性は保証されない。
そこで、本ディスクサブシステム2は、安価・低速な論理HDD22で大容量の記憶領域を構成しつつ、高速なSSD23を、これら論理HDD22の共用キャッシュとして設置し、かつ、前述の通りにBIOS211からとディスクドライバ212からとの2系統でデータアクセスが発生する状況下においても当該SSD上のキャッシュデータの一貫性を保証する仕組み制御部21が備えること、より具体的には、(少ないコード量の)BIOS211とディスクドライバ212とが協働する仕組みを備えることにより、大幅なコストアップを招くことなくレスポンス性能を向上させ、かつ、データの一貫性を保証することを実現したものであり、以下、この点について詳述する。
なお、制御部21は、当該データアクセスの作業領域用として、DRAM等の揮発性メモリ(VM:Volatil Memory)213を有している。また、論理HDD22は、単体のHDDまたは複数のHDDを並列接続して耐障害性を高めたRAID(Redundant Array of Inexpensive Disks)等である。ディスクサブシステム2内の論理HDD22として、単体のHDDとRAIDとが混在していても構わない。ホストシステム1は、各論理HDD22を個別に認識して、それぞれに対するデータアクセス要求を本ディスクサブシステム2の制御部21に対して発行する。
図2は、本ディスクサブシステム2におけるNVM23の記憶領域の論理的なアロケーション例を示す図である。
図2に示すように、制御部21は、NVM23の記憶領域を、管理データ領域a1とHDDキャッシュ領域a2との2通りに使い分ける。
HDDキャッシュ領域a2は、論理HDD22のデータの一部を保持する領域、つまり前述の共用キャッシュとして使用する領域である。なお、当該HDDキャッシュ領域a2上に論理HDD22のデータの一部を保持するためのいわゆるキャッシングの手法については、特定の手法に限定されず、既存のいずれの手法も適用可能である。また、このHDDキャッシュ領域a2には、当該HDDキャッシュ領域a2に保持されているデータがどの論理HDD22のどのデータに対応するものなのかを示すキャッシュディレクトリ等も格納される。キャッシュディレクトリは、VM213にロードされて利用され、所定のタイミングで適宜にHDDキャッシュ領域a2に書き戻される。
そして、管理データ領域a1は、BIOS211からとディスクドライバ212からとの2系統でアクセスされる論理HDD22に関する(NVM23の)HDDキャッシュ領域a2内のキャッシュデータの一貫性を保証するための各種管理データを保持するための領域である。この管理データ領域a1には、後述するトレースヘッダa11およびトレースデータa12とが格納される。
次に、このHDDキャッシュ領域a2内のキャッシュデータの一貫性を保証するためのBIOS211とデバイスドライバ212との協働動作について説明する。
まず、(本コンピュータシステムの起動時またはリブート時等における)BIOS211の論理HDD22に対するデータアクセスに関する基本的な動作原理を説明する。
BIOS211は、論理HDD22に対するデータアクセスを要求するコマンドをホストシステム1から受け付けた際、そのコマンドが論理HDD22からのデータの読み出しを要求するコマンド(リードコマンド)なのか、または、論理HDD22へのデータの書き込みを要求するコマンド(ライトコマンド)なのかを調べる。もし、リードコマンドであったならば、BIOS211は、(その読み出し対象データがNVM23にキャッシングされていようがいまいが)要求されたデータを論理HDD22から読み出し、ホストシステム1に転送する。つまり、リードコマンドについては、BIOS211は従前通りのコマンド処理を実行する。
一方、ライトコマンドであった場合、BIOS211は、要求されたデータを論理HDD22に書き込むと共に、そのライトコマンドをNVM23の管理データ領域a1にトレースデータa2として記録する。もし、このデータの書き込みによって更新されるべきデータがNVM23のHDDキャッシュ領域a2に存在しても、その更新をBIOS211自身が実行することはない。つまり、BIOS211には、NVM23内のキャッシュデータの一貫性を保証するためのモジュールとして、論理HDD22に対するライトコマンドをNVM23にトレースするという簡単なコードを持たせれば良い。換言すれば、BIOS211は、リードコマンドおよびライトコマンドのいずれについても、キャッシュヒットの有無を判定したり、ヒット率を向上させるためのキャッシュデータの入れ替えを実行するための複雑なコードを一切持たない。
BIOS211は、ライトコマンド(トレースデータ)を書き込む度に、次のトレースデータの書き込み位置を示すトレースポインタをインクリメントする。トレースポインタは、トレースヘッダa11内に含まれている。そして、インクリメント後のトレースポインタの値が予め定められた値に達した後、さらにライトコマンドをトレースする必要が生じた場合、BIOS211は、当該ライトコマンドおよびそれ以降のライトコマンドのトレースを中止する。つまり、BIOS211は、予め定められた容量の範囲内で、当該ライトコマンドのトレースを実行する。トレースヘッダa11内には、有効フラグも含まれており、前述のオーバーフローが発生してライトコマンドのトレースを中止した場合、この有効フラグを無効に設定する。なお、BIOS211は、起動時、つまり、ホストシステム1からのコマンドの受け付前に、このNVM23の管理データ領域a1内からトレースヘッダa11を読み出し、その時点で有効フラグが無効に設定されていた場合には、当初より、ライトコマンドのトレースを行わない。
また、BIOS211は、ホストシステム1からライトコマンドを受け付けて、NVM23に対するデータ書き込み(管理データ領域a1内のトレースデータa12の書き込みおよびトレースヘッダa11の更新(トレースポインタのインクリメントまたは有効フラグの更新))を行う毎に、NVM23に対してフラッシュ(FlashではなくFlush)を要求する。これにより、もし、NVM23がライトバックキャッシュを備えていても、その時の書き込み内容を都度記録メディアに反映させることができる。
次に、(OSが動作を開始してBIOS211から論理HDD22に対するアクセス制御を引き継ぐ際の)ディスクドライバ212の起動時における論理HDD22に対するデータアクセスに関する基本的な動作原理を説明する。
ディスクドライバ212は、起動時、まず、NVM23の管理データ領域a1内からトレースヘッダa11を読み出す。そして、有効フラグが有効および無効のいずれに設定されているかを調べる。もし、有効フラグが無効であれば、ディスクドライバ212は、NVM23のHDDキャッシュ領域a2上のキャッシュデータを無効化すべく、キャッシュディレクトリを初期化してしまう。これにより、当初は、ホストシステム1から発行された例えばリードコマンドはすべて論理HDD22からの読み出しによって処理されることになるが、キャッシュデータの一貫性保証は維持される。
一方、有効フラグが有効であれば、ディスクドライバ212は、(NVM23のHDDキャッシュ領域a2に格納されている)キャッシュディレクトリをVM213にロードした後、(NVM23の管理データ領域a1に記録されている)トレースデータa12をすべて辿って、該当するデータが存在するか否かを調べ、存在したら、キャッシュディレクトリ上の当該データを含むブロックを無効化する。これにより、BIOS211によって論理HDD22に書き込みが行われたデータに対応する更新前データがキャッシュされていたとしても、この更新前データがその後のリードコマンドによって読み出されることをなくし、キャッシュデータの一貫性保証は維持される。
また、ディスクドライバ212は、有効フラグが有効であった際、前述のキャッシュディレクトリ上の該当ブロックの無効化を完了した後、有効フラグを無効に設定した上で当該有効フラグを含むトレースヘッダa11をNVM23に書き込み、かつ、NVM23に対してフラッシュ(FlashではなくFlush)を要求する。フラッシュを要求する理由は、前述したBIOS211の場合と同様、もし、NVM23がライトバックキャッシュを備えていても、その時の書き込み内容を確実に記録メディアに反映させるためである。これにより、ディスクドライバ212の起動後は、トレースヘッダa11の有効フラグは無効を示していることになる。
続いて、(本コンピュータシステムが正規の手順を踏んでシャットダウンやリブートする際の)ディスクドライバ212の終了時における論理HDD22に対するデータアクセスに関する基本的な動作原理を説明する。
ディスクドライバ212は、終了時、まず、VM213内のキャッシュディレクトリをNVM23のHDDキャッシュ領域a2に格納すべく、NVM23に対する書き込み処理を実行する。次に、ディスクドライバ212は、トレースヘッダa11の有効フラグを有効に設定すると共に、同トレースヘッダa11内のトレースポインタを初期値(0)にリセットした後、当該トレースヘッダa11をNVM23の管理データ領域a1に格納すべく、NVM23に対する書き込み処理を実行する。そして、ディスクドライバ212は、これらNVM23に対する書き込み処理を実行した後、前述と同様の目的で、NVM23に対してフラッシュ(FlashではなくFlush)を要求する。
つまり、ディスクドライバ212が当該終了処理を実行した場合に限り、NVM23の管理データ領域a1内に記録されているトレースヘッダa11の有効フラグは有効を示すことになる。換言すると、この有効フラグが無効を示している場合、ディスクドライバ212による終了処理が行なわれずに本コンピュータシステムがシャットダウンしたか、オーバーフローによってBIOS211がトレースデータa12を完全にトレースできなかったことを意味する。いずれの場合も、HDDキャッシュ領域a2にキャッシュされたデータの一貫性が失われているおそれを否定できないので、前述の通り、ディスクドライバ212は、起動時、この有効フラグが無効を示している場合には、NVM23のHDDキャッシュ領域a2上のキャッシュデータを無効化すべく、キャッシュディレクトリを初期化する。
このように、本ディスクサブシステム2では、NVM23の管理データ領域a1に記録するトレースヘッダa11内の有効フラグを介在させ、BIOS211とディスクドライバ212とが協働することにより、BIOS211に少ないコードを持たせるのみで、複数の論理HDD22のキャッシュとしてNVM23を利用することでレスポンス性能を大幅なコストアップを招くことなく向上させることに加えて、NVM23のHDDキャッシュ領域a2上のキャッシュデータの一貫性を保証することを実現する。
ところで、ディスクトライバ212は、起動後、ホストシステム1から論理HDD22に対するライトコマンドおよびリードコマンドを受け付けた際、NVM23をキャッシュとして利用しつつ、当該コマンドを処理することになる訳であるが、ライトコマンドに対するキャッシュデータの取り扱いについては、次の2通りの対応が考えられる。
本実施形態においては、NVM23としてSSDを適用するが、SSDは、データの更新を、更新前データを含むブロックの無効化を行うと共に、更新後データを含むブロックの書き込みを行うことで実施する。そのため、HDDキャッシュ領域a2が複数のチップで構成されており、更新前データを含むブロックの無効化と、更新後データを含むブロックの書き込みとを並行して実行可能な場合には、データの更新を高速に処理することができるため、ライトコマンドによって書き込みが要求されたデータに対応する更新前データがキャッシュされていた場合、当該更新前データを更新後データに書き換えるための処理を、論理HDD22に対する書き込み処理と共に実行すれば良い。
一方、HDDキャッシュ領域a2が1つのチップで構成されており、更新前データを含むブロックの無効化と、更新後データを含むブロックの書き込みとをシリアルにしか実行できない場合には、却ってレスポンス性能を低下させるおそれがあるので、ライトコマンドによって書き込みが要求されたデータに対応する更新前データがキャッシュされていた場合、当該(キャッシュされた)更新前データを無効化するための処理を、論理HDD22に対する書き込み処理と共に実行することが好ましい。
次に、図3乃至図5を参照して、本ディスクサブシステム2のNMV23をキャッシュとして利用しつつ実行する論理HDD22に対するデータアクセスに関する動作の流れを説明する。
図3は、BIOS211の論理HDD22に対するデータアクセスに関する動作の流れを示すフローチャートである。
BIOS211は、まず、NVM23の管理データ領域a1に記録されたトレースヘッダa11を読み出す(ステップA1)。そして、BIOS211は、論理HDD22に対するデータアクセスを要求するコマンドをホストシステム1から受け付けると(ステップA2のYES)、そのコマンドがライトコマンドか否かを調べる(ステップA3)。
もし、ライトコマンドでなければ(ステップA3のNO)、BIOS211は、(NVM23を用いたキャッシングに拘らず)要求されたコマンド処理を実行する(ステップA10)。
一方、ライトコマンドであった場合(ステップA3のYES)、BIOS211は、トレースヘッダa11の有効フラグを調べ(ステップA4)、有効フラグが無効を示していたら(ステップA4のNO)、当該ライトコマンドのトレース等を行うことなく、要求されたコマンド処理を実行する(ステップA10)。
もし、有効フラグが有効を示していたならば(ステップA4のYES)、BIOS211は、続いて、トレースヘッダa11内に保持されるトレースポインタの値を参照し、その値が予め定められた最大値に達していないかを調べる(ステップA5)。トレースポインタの値が予め定められた最大値に達した場合(ステップA5のNO)、BIOS211は、トレースヘッダa11の有効フラグを無効に設定する(ステップA11)。
一方、トレースポインタの値が予め定められた最大値に達していない場合には(ステップA5のYES)、BIOS211は、当該トレースポインタで示されるNVM23のHDDキャッシュ領域a2上に当該ライトコマンドをトレースし(ステップA6)、トレースヘッダa11のトレースポインタをインクリメントする(ステップA7)。
ステップA7またはステップA11においてトレースヘッダa11の内容を更新したBIOS211は、当該更新後のトレースヘッダa11をNVM23に書き出すと共に(ステップA8)、NVM23に対してフラッシュ(FlashではなくFlush)を要求する(ステップA9)。そして、BIOS211は、ホストシステム1から要求されたコマンド処理を実行する(ステップA10)。
図4は、ディスクドライバ212の起動時における論理HDD22に対するデータアクセスに関する動作の流れを示すフローチャートである。
ディスクドライバ212は、まず、NVM23の管理データ領域a1に記録されたトレースヘッダa11を読み出す(ステップB1)。そして、ディスクドライバ212は、トレースヘッダa11の有効フラグを調べ(ステップB2)、有効フラグが無効を示していたら(ステップB2のNO)、NVM23のHDDキャッシュ領域a2上のキャッシュデータを無効化すべく、キャッシュディレクトリを初期化する(ステップB5)。
一方、有効フラグが有効を示したいたならば(ステップB2のYES)、ディスクドライバ212は、(NVM23のHDDキャッシュ領域a2に格納されている)キャッシュディレクトリをVM213にロードした後(ステップB3)、(NVM23の管理データ領域a1に記録されている)トレースデータa12をすべて辿って、該当するデータが存在するか否かを調べ、存在したら、キャッシュディレクトリ上の当該データを含むブロックを無効化する(ステップB4)。
その後、ディスクドライバ212は、有効フラグを無効に設定し(ステップB6)、当該無効に設定された有効フラグを含むトレースヘッダa11をNVM23に書き出し(ステップB7)NVM23に対してフラッシュ(FlashではなくFlush)を要求する(ステップB8)。
図5は、ディスクドライバ212の終了時における論理HDD22に対するデータアクセスに関する動作の流れを示すフローチャートである。
ディスクドライバ212は、まず、VM213内のキャッシュディレクトリをNVM23のHDDキャッシュ領域a2に格納すべく、NVM23に対する書き込み処理を実行する(ステップC1)。次に、ディスクドライバ212は、トレースヘッダa11の有効フラグを有効に設定すると共に(ステップC2)、同トレースヘッダa11内のトレースポインタを初期値(0)にリセットした後(ステップC3)、当該トレースヘッダa11をNVM23の管理データ領域a1に格納すべく、NVM23に対する書き込み処理を実行する(ステップC4)。そして、ディスクドライバ212は、これらNVM23に対する書き込み処理を実行した後、NVM23に対してフラッシュ(FlashではなくFlush)を要求する(ステップC5)。
以上のように、本ディスクサブシステム2(データ記憶システム)は、BIOS211とディスクドライバ212とが協働することにより、例えば1台以上のHDDを備えてなるディスクシステム等のレスポンス性能を大幅なコストアップを招くことなく向上させることに加えて、データの一貫性を保証することを実現する。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に構成要素を適宜組み合わせてもよい。
1…ホストシステム、2…ディスクサブシステム、21…制御部、22…論理HDD(Hard Disk Drive)、23…不揮発性メモリ(NVM:Non-Volatile Memory)。

Claims (14)

  1. 1台以上の第1の記憶装置と、
    第2の記憶装置と、
    起動時における前記第1の記憶装置に対するデータアクセスを第1のデバイス制御手段によって実行し、起動後における前記第1の記憶装置に対するデータアクセスを第2のデバイス制御手段によって実行する制御装置と、
    を具備し、
    前記1のデバイス制御手段は、
    前記第1の記憶装置へのデータの書き込み要求を受けた場合、前記第1の記憶装置へ書き込み対象のデータを書き込んだ際に、このデータの書き込み要求を示すトレース情報を前記第2の記憶装置に記録するトレース手段、
    を有し、
    前記第2のデバイス制御手段は、
    前記第1の記憶装置からのデータの読み出し要求を受けた場合、前記第1の記憶装置から読み出し対象のデータを読み出した際に、この読み出したデータを含むデータブロックを前記第2の記憶装置にキャッシュするキャッシング手段と、
    前記第1の記憶装置からのデータの読み出し要求を受けた際、読み出し対象のデータが前記第2の記憶装置にキャッシングされていた場合、前記第2の記憶装置から当該読み出し対象データを読み出す読み出し制御手段と、
    前記第1の記憶装置へのデータの書き込み要求を受けた場合、前記第1の記憶装置へ書き込み対象のデータを書き込むと共に、この書き込みによって更新されるべき更新前データが前記第2の記憶装置にキャッシングされていた場合、当該更新前データを含むデータブロックの更新を実行し、または、当該更新前データを含むデータブロックを無効化する書き込み制御手段と、
    前記第1の記憶装置へのデータの書き込み要求および前記第1の記憶装置からのデータの読み出し要求の受け付けを前記第1のデバイス制御手段から引き継いだ際、前記トレース手段によって記録されたトレース情報に基づき、前記第1のデバイス制御手段による書き込みによって更新されるべき更新前データが前記第2の記憶装置にキャッシングされていないかを判定し、キャッシングされていた場合、当該更新前データを含むデータブロックを無効化するキャッシュ一貫性保証手段と、
    を有する、
    ことを特徴とするデータ記憶システム。
  2. 前記トレース手段は、前記トレース情報の有効/無効を示すフラグを含むトレースヘッダを前記第2の記憶装置へ記録し、前記第2の記憶装置上に記録すべき前記トレース情報の量が予め定められた値を越えた場合、前記トレースヘッダに含まれるフラグを無効に設定すると共に、それ以降の前記トレース情報の前記第2の記録装置への記録を停止し、
    前記キャッシュ一貫性保証手段は、前記トレースヘッダに含まれるフラグが無効を示していた場合、前記第2の記憶装置にキャッシングされているデータブロックすべてを無効化する、
    ことを特徴とする請求項1記載のデータ記憶システム。
  3. 前記第2の記憶装置は、ライトバック型のキャッシュメモリを備え、
    前記キャッシュ一貫性保証手段は、前記第2のデバイス制御手段の起動時、前記第2の記憶装置にキャッシングされているデータブロックの無効化を終了した後、前記トレースヘッダに含まれるフラグを無効に設定して、前記キャッシュメモリ内のデータを記憶メディアに反映させるフラッシュ処理を前記第2の記憶装置に実行させ、前記第2のデバイス制御手段の終了時、前記トレースヘッダに含まれるフラグを有効に設定して、前記フラッシュ処理を前記第2の記憶装置に実行させる、
    ことを特徴とする請求項1記載のデータ記憶システム。
  4. 前記トレース手段は、前記トレースヘッダに含まれるフラグが無効を示していた場合、前記トレース情報の前記第2の記録装置への記録を行わないことを特徴とする請求項3記載のデータ記憶システム。
  5. 前記第1の記憶装置は、少なくとも1台以上のHDD(Hard Disk Drive)によって構成され、前記第2の記憶装置は、SSD(Solid State Drive)によって構成されることを特徴とする請求項1記載のデータ記憶システム。
  6. 前記書き込み制御手段は、データの更新が前記第1の記憶装置よりも前記第2の記憶装置の方が高速である場合、前記第2の記憶装置にキャッシングされている更新前データを含むデータブロックの更新を実行することを特徴とする請求項1記載のデータ記憶システム。
  7. 前記書き込み制御手段は、データの更新が前記第1の記憶装置よりも前記第2の記憶装置の方が低速である場合、前記第2の記憶装置にキャッシングされている更新前データを含むデータブロックの無効化を実行することを特徴とする請求項1記載のデータ記憶システム。
  8. 第1の記憶装置と、
    第2の記憶装置と、
    起動時における前記第1の記憶装置に対するデータアクセスを第1のデバイス制御手段によって実行し、起動後における前記第1の記憶装置に対するデータアクセスを第2のデバイス制御手段によって実行する制御装置と、
    を具備し、
    前記1のデバイス制御手段は、
    前記第1の記憶装置へのデータの書き込み要求を受けた場合、前記第1の記憶装置へ書き込み対象のデータを書き込んだ際に、このデータの書き込み要求を示すトレース情報を前記第2の記憶装置に記録するトレース手段、
    を有し、
    前記第2のデバイス制御手段は、
    前記第1の記憶装置へのデータの書き込み要求および前記第1の記憶装置からのデータの読み出し要求の受け付けを前記第1のデバイス制御手段から引き継いだ際、前記トレース手段によって記録されたトレース情報に基づき、前記第1のデバイス制御手段による書き込みによって更新されるべき更新前データが前記第2の記憶装置にキャッシングされていないかを判定し、キャッシングされていた場合、当該更新前データを含むデータブロックを無効化するキャッシュ一貫性保証手段、
    を有する、
    ことを特徴とするデータ記憶システム。
  9. 1台以上の第1の記憶装置と、第2の記憶装置と、起動時における前記第1の記憶装置に対するデータアクセスを第1のデバイス制御手段によって実行し、起動後における前記第1の記憶装置に対するデータアクセスを第2のデバイス制御手段によって実行する制御装置と、を具備するデータ記憶システムにおけるキャッシュデータの一貫性保証方法であって、
    前記1のデバイス制御手段が、
    前記第1の記憶装置へのデータの書き込み要求を受けた場合、前記第1の記憶装置へ書き込み対象のデータを書き込んだ際に、このデータの書き込み要求を示すトレース情報を前記第2の記憶装置に記録し、
    前記第2のデバイス制御手段が、
    前記第1の記憶装置からのデータの読み出し要求を受けた場合、前記第1の記憶装置から読み出し対象のデータを読み出した際に、この読み出したデータを含むデータブロックを前記第2の記憶装置にキャッシュし、
    前記第1の記憶装置からのデータの読み出し要求を受けた際、読み出し対象のデータが前記第2の記憶装置にキャッシングされていた場合、前記第2の記憶装置から当該読み出し対象データを読み出し、
    前記第1の記憶装置へのデータの書き込み要求を受けた場合、前記第1の記憶装置へ書き込み対象のデータを書き込むと共に、この書き込みによって更新されるべき更新前データが前記第2の記憶装置にキャッシングされていた場合、当該更新前データを含むデータブロックの更新を実行し、または、当該更新前データを含むデータブロックを無効化し、
    前記第1の記憶装置へのデータの書き込み要求および前記第1の記憶装置からのデータの読み出し要求の受け付けを前記第1のデバイス制御手段から引き継いだ際、前記トレース手段によって記録されたトレース情報に基づき、前記第1のデバイス制御手段による書き込みによって更新されるべき更新前データが前記第2の記憶装置にキャッシングされていないかを判定し、キャッシングされていた場合、当該更新前データを含むデータブロックを無効化する、
    ことを特徴とするキャッシュデータの一貫性保証方法。
  10. 前記1のデバイス制御手段は、
    前記トレース情報の有効/無効を示すフラグを含むトレースヘッダを前記第2の記憶装置へ記録し、前記第2の記憶装置上に記録すべき前記トレース情報の量が予め定められた値を越えた場合、前記トレースヘッダに含まれるフラグを無効に設定すると共に、それ以降の前記トレース情報の前記第2の記録装置への記録を停止し、
    前記第2のデバイス制御手段は、
    前記トレースヘッダに含まれるフラグが無効を示していた場合、前記第2の記憶装置にキャッシングされているデータブロックすべてを無効化する、
    ことを特徴とする請求項9記載のキャッシュデータの一貫性保証方法。
  11. 前記第2の記憶装置は、ライトバック型のキャッシュメモリを備え、
    前記第2のデバイス制御手段は、
    前記第2のデバイス制御手段の起動時、前記第2の記憶装置にキャッシングされているデータブロックの無効化を終了した後、前記トレースヘッダに含まれるフラグを無効に設定して、前記キャッシュメモリ内のデータを記憶メディアに反映させるフラッシュ処理を前記第2の記憶装置に実行させ、前記第2のデバイス制御手段の終了時、前記トレースヘッダに含まれるフラグを有効に設定して、前記フラッシュ処理を前記第2の記憶装置に実行させる、
    ことを特徴とする請求項10記載のキャッシュデータの一貫性保証方法。
  12. 前記第2のデバイス制御手段は、
    前記第1の記憶装置へのデータの書き込み要求を受けた際、データの更新が前記第1の記憶装置よりも前記第2の記憶装置の方が高速である場合、前記第2の記憶装置にキャッシングされている更新前データを含むデータブロックの更新を実行することを特徴とする請求項9記載のキャッシュデータの一貫性保証方法。
  13. 前記第2のデバイス制御手段は、
    前記第1の記憶装置へのデータの書き込み要求を受けた際、データの更新が前記第1の記憶装置よりも前記第2の記憶装置の方が低速である場合、前記第2の記憶装置にキャッシングされている更新前データを含むデータブロックの無効化を実行することを特徴とする請求項9記載のキャッシュデータの一貫性保証方法。
  14. 第1の記憶装置と、第2の記憶装置と、起動時における前記第1の記憶装置に対するデータアクセスを第1のデバイス制御手段によって実行し、起動後における前記第1の記憶装置に対するデータアクセスを第2のデバイス制御手段によって実行する制御装置と、を具備するデータ記憶システムにおけるキャッシュデータの一貫性保証方法であって、
    前記1のデバイス制御手段が、
    前記第1の記憶装置へのデータの書き込み要求を受けた場合、前記第1の記憶装置へ書き込み対象のデータを書き込んだ際に、このデータの書き込み要求を示すトレース情報を前記第2の記憶装置に記録し、
    前記第2のデバイス制御手段が、
    前記第1の記憶装置へのデータの書き込み要求および前記第1の記憶装置からのデータの読み出し要求の受け付けを前記第1のデバイス制御手段から引き継いだ際、前記トレース手段によって記録されたトレース情報に基づき、前記第1のデバイス制御手段による書き込みによって更新されるべき更新前データが前記第2の記憶装置にキャッシングされていないかを判定し、キャッシングされていた場合、当該更新前データを含むデータブロックを無効化する、
    ことを特徴とするキャッシュデータの一貫性保証方法。
JP2010152288A 2010-07-02 2010-07-02 データ記憶システムおよびキャッシュデータの一貫性保証方法 Expired - Fee Related JP4724253B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010152288A JP4724253B2 (ja) 2010-07-02 2010-07-02 データ記憶システムおよびキャッシュデータの一貫性保証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010152288A JP4724253B2 (ja) 2010-07-02 2010-07-02 データ記憶システムおよびキャッシュデータの一貫性保証方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009097021 Division 2009-04-13 2009-04-13

Publications (2)

Publication Number Publication Date
JP2010257481A true JP2010257481A (ja) 2010-11-11
JP4724253B2 JP4724253B2 (ja) 2011-07-13

Family

ID=43318244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010152288A Expired - Fee Related JP4724253B2 (ja) 2010-07-02 2010-07-02 データ記憶システムおよびキャッシュデータの一貫性保証方法

Country Status (1)

Country Link
JP (1) JP4724253B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012252514A (ja) * 2011-06-02 2012-12-20 Toshiba Corp 情報処理装置およびキャッシュ制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01288940A (ja) * 1988-05-16 1989-11-21 Nec Corp 論理アドレスキャッシュ制御方式
JPH0237446A (ja) * 1988-07-27 1990-02-07 Nec Corp キャッシュ制御方式
JP2001331475A (ja) * 2000-05-23 2001-11-30 Nec Corp ベクトル命令処理装置およびベクトル命令処理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01288940A (ja) * 1988-05-16 1989-11-21 Nec Corp 論理アドレスキャッシュ制御方式
JPH0237446A (ja) * 1988-07-27 1990-02-07 Nec Corp キャッシュ制御方式
JP2001331475A (ja) * 2000-05-23 2001-11-30 Nec Corp ベクトル命令処理装置およびベクトル命令処理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012252514A (ja) * 2011-06-02 2012-12-20 Toshiba Corp 情報処理装置およびキャッシュ制御方法
US8677061B2 (en) 2011-06-02 2014-03-18 Kabushiki Kaisha Toshiba Information processing apparatus and cache control method
USRE49418E1 (en) 2011-06-02 2023-02-14 Kioxia Corporation Information processing apparatus and cache control method
USRE49417E1 (en) 2011-06-02 2023-02-14 Kioxia Corporation Information processing apparatus and cache control method

Also Published As

Publication number Publication date
JP4724253B2 (ja) 2011-07-13

Similar Documents

Publication Publication Date Title
JP5351046B2 (ja) フラッシュメモリシステムの高速起動を容易にする方法およびシステム
JP5376983B2 (ja) メモリシステム
US10073656B2 (en) Systems and methods for storage virtualization
US8407418B2 (en) Information processing apparatus and driver
US8639881B2 (en) Information processing apparatus and driver
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
US20110276746A1 (en) Caching storage adapter architecture
US20180150390A1 (en) Data Storage Device and Operating Method Therefor
US20170286305A1 (en) Prefetch command optimization for tiered storage systems
US10459803B2 (en) Method for management tables recovery
CN113243007A (zh) 存储级存储器访问
US8335901B2 (en) Information processing apparatus and data restoration method
US9921913B2 (en) Flushing host cache data before rebuilding degraded redundant virtual disk
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US20200233609A1 (en) Method and apparatus for performing pipeline-based accessing management in a storage server
US8108605B2 (en) Data storage system and cache data—consistency assurance method
US11900102B2 (en) Data storage device firmware updates in composable infrastructure
JP4724253B2 (ja) データ記憶システムおよびキャッシュデータの一貫性保証方法
JP2010191672A (ja) データ記憶システム
CN107562639B (zh) 擦除块读请求处理方法与装置
US11487439B1 (en) Utilizing host memory buffers for storage device recoveries
CN107562654B (zh) Io命令处理方法与装置
KR102145358B1 (ko) 변경된 운영체제 환경에서 디스크의 데이터 무결성을 보호하는 방법 및 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체
USRE49818E1 (en) Information processing method in a multi-level hierarchical memory system
US11893269B2 (en) Apparatus and method for improving read performance in a system

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20101019

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20101026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110118

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110216

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110315

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110408

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140415

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees