JP4186602B2 - ジャーナルログを利用した更新データ書込方法 - Google Patents

ジャーナルログを利用した更新データ書込方法 Download PDF

Info

Publication number
JP4186602B2
JP4186602B2 JP2002351929A JP2002351929A JP4186602B2 JP 4186602 B2 JP4186602 B2 JP 4186602B2 JP 2002351929 A JP2002351929 A JP 2002351929A JP 2002351929 A JP2002351929 A JP 2002351929A JP 4186602 B2 JP4186602 B2 JP 4186602B2
Authority
JP
Japan
Prior art keywords
data
journal log
update
request
storage 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.)
Expired - Fee Related
Application number
JP2002351929A
Other languages
English (en)
Other versions
JP2004185349A5 (ja
JP2004185349A (ja
Inventor
洋司 中谷
浩二 薗田
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002351929A priority Critical patent/JP4186602B2/ja
Priority to EP03003069A priority patent/EP1469399A3/en
Priority to US10/366,361 priority patent/US7047355B2/en
Publication of JP2004185349A publication Critical patent/JP2004185349A/ja
Publication of JP2004185349A5 publication Critical patent/JP2004185349A5/ja
Priority to US11/385,792 priority patent/US7574557B2/en
Application granted granted Critical
Publication of JP4186602B2 publication Critical patent/JP4186602B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Description

【0001】
【発明の属する技術分野】
本発明は、サーバに障害が発生した場合に備えて、ディスクドライブに格納されているファイルの更新履歴を記憶装置に記憶するジャーナリングファイルシステムに関する。
【0002】
【従来の技術】
記憶装置が有するディスクドライブに格納されるファイルを管理し、ファイルに対するアクセス要求を処理するサーバは、記憶装置に対する入出力回数を減らしてアクセス要求に対する応答速度を向上させるために、サーバ上に備えられたメモリであるバッファメモリを使用する。サーバは、ディスクドライブに格納されているデータをサーバ内のバッファメモリに一時的に格納しておき、サーバがファイルに対するアクセス要求を受け付けた場合には、記憶装置にアクセスすることなくバッファメモリに格納されているデータを用いてこのアクセス要求を処理する。
【0003】
しかし、サーバがファイルの更新要求を受け付けてバッファメモリ上のデータのみを更新した場合に、電源断などの障害によりサーバがダウンしてしまうと、バッファ上で更新したファイルの内容が失われてしまう。この結果、サーバがファイルを管理するためのプログラムを実行することによって実現されるファイルシステムに、矛盾が生ずる可能性がある。このような問題を解決するために、非特許文献1ないし5には、ジャーナリングファイルシステムが記載されている。ジャーナリングファイルシステムでは、サーバがファイルの更新要求を受け取ると、バッファ上のデータを更新すると共に、更新内容を記録したジャーナルログを作成する。ジャーナルログは、サーバに障害が発生した場合にも失われることのないように、サーバが更新要求に対する応答を返す前にディスクドライブのジャーナルログ格納用の記憶領域に書き込まれる。一方、更新されたバッファ上のデータは、ジャーナリングファイルシステムによってダーティデータとして管理され、サーバが更新要求に対する応答を返した後、ディスクドライブに書き込まれる。尚、ディスク装置内に格納されているデータを更新する処理を以降、フラッシュ処理と呼ぶ。サーバに障害が生じた場合には、サーバはジャーナルログを記憶装置から読み込んで、これを利用してファイルシステムを修復することができる。
【0004】
【非特許文献1】
カーティス アンダーソン(Curtis Anderson)、外6名、“xFS プロジェクトアーキテクチャ(xFS Project Architecture)”、10.0、[online]、1993年10月8日、シリコングラフィックスインク(Silicon Graphics, Inc.)、[平成14年8月23日検索]、インターネット<URL:http://linux-xfs.sgi.com/projects/xfs/design_docs/xfsdocs93_pdf/arch.pdf>
【非特許文献2】
アダム スウィーニー(Adam Sweeney)、“xFS トランザクションメカニズム(xFS Transaction Mechanism)”、2.1、4.3、4.4、4.5、[online]、1993年10月7日、シリコングラフィックスインク(Silicon Graphics, Inc.)、[平成14年8月23日検索]、インターネット<URL:http://linux-xfs.sgi.com/projects/xfs/design_docs/xfsdocs93_pdf/trans.pdf>
【非特許文献3】
マイケル ニシモト(Michael Nishimoto)、“ログマネージャ(The Log Manager)”、3.0、[online]、1994年3月28日、シリコングラフィックスインク(Silicon Graphics, Inc.)、[平成14年8月23日検索]、インターネット<URL:http://linux-xfs.sgi.com/projects/xfs/design_docs/xfsdocs93_pdf/log_mgr.pdf>
【非特許文献4】
“JFS オーバービュー(JFS overview)”、ログ(Logs)、ジャーナリング(Journaling)、[online]、アイビーエム(IBM)、[平成14年8月23日検索]、インターネット<URL:ftp://www6.software.ibm.com/software/developer/library/jfs.pdf>
【非特許文献5】
スティーブ ベスト(Steve Best)、“JFSログ(JFS Log)”、[online]、2000年10月、アイビーエムリナックステクノロジーセンター(IMB Linux Technology Center)、[平成14年8月23日検索]、インターネット<URL:http://oss.software.ibm.com/developer/opensource/jfs/project/pub/jfslog/
jfslog.pdf>
【0005】
【発明が解決しようとする課題】
ジャーナリングファイルシステムでは、ファイルの内容が更新される場合、ディスクドライブに対するジャーナルログの書き込み処理とフラッシュ処理とが、異なるタイミングで行われる。このため、サーバと記憶装置では、データ転送による負荷が増大する。
【0006】
本発明の目的は、効率的にジャーナルログ書き込み処理及びフラッシュ処理を実行することができるサーバ及び記憶装置を提供することである。
【0007】
【課題を解決するための手段】
上記目的を達成するために本発明では、サーバからジャーナルログを受信した記憶装置が、ジャーナルログに含まれる更新データを利用して、フラッシュ処理を実行する。
【0008】
【発明の実施の形態】
以下、本発明の実施の形態を説明する。なお、これにより本発明が限定されるものではない。
【0009】
図1は、本発明が適用されるシステムの構成例を示す図である。本システムは、サーバ1と、サーバ1に接続された記憶装置2を有する。尚、サーバ1と記憶装置2とは異なる装置であって通信路を介して相互に接続されていても良いし、サーバ1と記憶装置2は一つの筐体に格納されて全体で一つの装置として構成されており、装置内(筐体内)で通信路により接続されていても良い。
【0010】
サーバ1は、制御プロセッサ10、ファイルシステムの管理情報や記憶装置2のディスクドライブ4に格納されているデータを格納するバッファメモリ13、記憶装置2と接続し記憶装置2との間でデータを送受信するディスクアダプタ14、ネットワーク17に接続しネットワーク上の他のサーバ18との間での通信を制御するネットワークアダプタ15、及び制御プロセッサ10が実行するプログラムが格納されるメインメモリ16が、バス等の内部通信線によって相互に接続された構成を有する計算機である。
【0011】
また、サーバ1はサーバ1全体を制御するオペレーティングシステム11や、記憶装置2のディスクドライブ4に格納されているファイルを管理するファイルシステム管理部12も有する。尚、オペレーティングシステム11や、ファイルシステム管理部12は、制御プロセッサ10がメインメモリ16内に格納されているプログラムを実行することによって、実現される。サーバ1は更に、キーボードやマウス等の入力装置(図示せず)や、ディスプレイ装置等の出力装置(図示せず)を有している。
【0012】
記憶装置2は、データを格納するディスクドライブ4と、サーバ1からディスクドライブ4が有する記憶領域へのアクセス要求を受け取り、ディスクドライブ4に対するデータの入出力を制御するディスク制御部3とを有する。
【0013】
ディスク制御部3は、サーバ1との間でデータの送受信を行うチャネルアダプタ21、サーバ1から受信するジャーナルログを格納するためのメモリであるジャーナルログ格納領域24、サーバ1から書き込まれたデータやディスクドライブ4から読み出したデータを格納するキャッシュ25、ディスク制御プロセッサ22が実行するプログラムが格納されているメインメモリ27、後述の各制御部によって使用される制御情報等が格納される制御メモリ26、ディスクドライブ4との間でデータの送受信を行うディスクアダプタ23、およびこれらの制御を行うディスク制御プロセッサ22を有する。
【0014】
またディスク制御部3は、チャネルアダプタ21を介したサーバ1とキャッシュ25またはサーバ1とジャーナルログ格納領域24との間のデータの送受信を制御するチャネル制御部31、サーバ1から受信した要求を解釈し、要求内容に従って各制御部に処理要求を発行するコマンド制御部32、キャッシュ25にデータが存在するか否かの判断や、キャッシュ25の管理を行うキャッシュ制御部33、ジャーナルログ格納領域24を管理し、ジャーナルログの内容を利用してキャッシュ25に更新データ57を書き込むジャーナルログ制御部34、ディスクアダプタ23を介してキャッシュ25とディスクドライブ4との間でのデータの送受信を制御するディスクドライブ制御部35を有する。尚、チャネル制御部31、コマンド制御部32、キャッシュ制御部33、ジャーナルログ制御部34、ディスクドライブ制御部35は各々、ディスク制御プロセッサ22がメインメモリ27に格納されているプログラムを実行することにより実現される。
【0015】
ディスク制御プロセッサ22は、複数のプロセッサによって構成される場合もある。ディスク制御プロセッサ22が複数のプロセッサで構成される場合、複数のプロセッサ各々がどの処理、どの制御も実行できるよう構成しても良いし、プロセッサ毎に実行するプログラム、処理、制御内容を分担してもよい。例えば、ジャーナルログ制御部34専用のプロセッサを持つ等の方法が考えられる。
【0016】
キャッシュ25、制御メモリ26およびジャーナルログ格納領域24は、バッテリバックアップされた不揮発性メモリで構成され、障害等で記憶装置の外部電源が切断された場合でも、データは保持される。図1では、キャッシュ25とジャーナルログ格納領域24を別に示したが、キャッシュ25の領域の一部をジャーナルログ格納領域24として使用することも可能である。また、ジャーナルログ格納領域24として特別な領域を有さずとも、ジャーナルログ制御部34がジャーナルログをキャッシュ25上で通常のデータと区別して管理すればよい。
【0017】
ディスクドライブ4は、磁気記憶媒体等の記憶媒体であり、単体のディスクドライブのみならず、RAID(Redundant Arrays of Inexpensive Disks)型ディスクアレイのように複数のディスクドライブを有する場合もある。記憶媒体中の記憶領域は、512バイト等の固定長の複数のブロックに分かれており、ディスク制御部3は、ブロックアドレスを用いてブロックを指定することにより一意にデータの格納位置を指定することができる。ディスクドライブ4は、ファイルの内容であるユーザデータおよびファイルシステムの管理用データであるメタデータを格納している。ここでメタデータには、ファイルのサイズやファイルシステムのディレクトリ構造を示す情報、ディレクトリ構造内でのファイルの位置を示す情報等が含まれる。ファイルシステム管理部12は、ディスクドライブ4に格納されているユーザデータやメタデータにアクセスする場合に、ブロックアドレスを指定したアクセス要求をディスク制御部3に対して発行する。ディスク制御部3のディスクドライブ制御部35は、サーバから受信したブロックアドレスを用いてディスクドライブ4内の記憶領域にアクセスする。
【0018】
次に図9を参照しながら、本実施形態におけるジャーナルログの書き込み処理およびフラッシュ処理の概要を説明する。サーバ1がネットワーク17上の他の装置18からネットワークアダプタ15を介して、若しくはサーバ1を利用するユーザから入力装置を介して、記憶装置2に格納されているファイルに対する更新要求を受け付けた場合、ファイルシステム管理部12が、オペレーティングシステム11を介してこの更新要求を受信する。ファイルシステム管理部12は、更新要求に応じてサーバ1のバッファメモリ13上でデータを更新し、更新されたデータをダーティデータとして管理する。また、ファイルシステム管理部12は、バッファメモリ13上で実行されたファイルの更新の履歴情報であるジャーナルログを作成し、これを記憶装置2に送信する(S1)。ジャーナルログは、ジャーナルログ制御部34の制御によって、記憶装置2内の不揮発のジャーナルログ格納領域24に書き込まれる。
【0019】
従来ディスク制御部3は、サーバ1から受け付けるジャーナルログの書き込みのための入出力要求を、他の通常のデータを書き込むための入出力要求と区別することができなかった。従って、ディスク制御部3は、サーバ1から書き込みのための入出力要求を受け付けると、書き込まれるデータがジャーナルログであっても通常のデータであっても一旦ディスク制御部3のキャッシュ25に格納した後、ディスクドライブ4に書き込んでいた。しかし、本実施形態においては後述する方法によって、ジャーナルログを書き込むための入出力要求と通常のデータを書き込むための入出力要求とを、ディスク制御部3が識別することができる。従ってディスク制御部3は、サーバから受け付ける入出力要求の種類を判別することにより、サーバから受信するデータがジャーナルログであると識別した場合には、受信したデータをディスクドライブ4に書き込まずに、ディスク制御部3上のジャーナルログ格納領域24に格納することができる。
【0020】
サーバ1がバッファメモリ13上で更新されたデータについて、記憶装置2内の記憶領域でもデータを更新するよう要求する場合には、ファイルシステム管理部12がファイル更新要求(フラッシュ要求)を記憶装置2に発行する(S2)。尚、フラッシュ要求は、ジャーナルログ書き込みのための入出力要求と同期して発行される必要はない。ファイルシステム管理部12は記憶装置2内の記憶領域でデータが更新されるまでの間、バッファメモリ13上で更新されたデータをダーティデータとしてダーティキューに接続(キューイング)して管理する。
【0021】
ダーティデータは、ダーティデータと同じ内容のデータが記憶装置2に書き込まれ、記憶装置2内の記憶領域でデータが更新されるまで、バッファメモリ13上に格納しておく必要がある。従って、ダーティデータが格納されているバッファメモリ13内の記憶領域は、フラッシュ処理が実行されるまで他のデータ用の記憶領域として使用されることがないよう、ファイルシステム管理部12によって管理される。また、サーバ1が他のサーバ18やサーバ1のユーザから、ダーティデータへのアクセス要求を受信した場合には、ファイルシステム管理部12はバッファメモリ13上に格納されているダーティデータを用いてこのアクセス要求を処理することにより、データ更新前の古いデータが記憶装置2から読み出されることがないよう制御する。
【0022】
サーバ1がフラッシュ要求を発行した場合(S2)、従来はサーバ1のバッファメモリ13に格納されている更新データ(ダーティデータ)が、ディスク制御装置2に転送され、キャッシュ制御部33の制御によって一旦ディスク制御部3上のキャッシュに格納された後、ディスクドライブ制御部35の制御によってディスクドライブに格納されていた。しかし、本実施形態においては、既にジャーナルログとしてジャーナルログ格納領域24に格納されている更新データを用いて、ジャーナルログ制御部34とディスクドライブ制御部35がフラッシュ処理を実行する。
【0023】
まず、サーバからフラッシュ要求を受信したディスク制御部3では(S2)、ジャーナルログ制御部34がジャーナルログ格納領域に格納されている更新データをキャッシュ25に読み出し(S3)、読み出し処理が終了すると、ディスク制御部3はサーバ1にフラッシュ処理終了通知を送信する(S4)。その後キャッシュ25に読み出された更新データをディスクドライブ制御部35がディスクドライブ4に書き込む(S5)。
【0024】
尚、ディスク制御部3がサーバ1からデータの読み出し要求を受信した場合には、ディスク制御部3は読み出し要求に含まれているアドレス情報に基づいて、このアドレス情報が示すディスクドライブ内の記憶領域に格納されている、若しくはこれからこの記憶領域に格納されるデータがキャッシュ25に読み出されているかを調べる。サーバから受信した読み出し要求が、S3でキャッシュ25に読み出されたデータに対する読み出し要求である場合には、ディスク制御部3はキャッシュ25に格納されているデータをサーバ1に送信する。キャッシュ25に読み出されていないデータに対する読み出し要求である場合には、ディスク制御部3はディスクドライブ4からキャッシュへデータを読み出してから、データをサーバ1に送信する。
【0025】
この結果本実施形態においては、フラッシュ要求時にサーバ1が記憶装置2へ更新データを転送する必要がなく、サーバ1及び記憶装置2のデータ転送による負荷を軽減することができる。尚サーバからフラッシュ要求を受信する前にジャーナルログ制御部34がジャーナルログ格納領域からキャッシュ25に更新データを読み出しておいても良い。この場合、ディスク制御部3がフラッシュ要求を受信した時には既に更新データはキャッシュ25に読み出されているので、ディスク制御部3は直ちにサーバ1にフラッシュ処理終了通知を送信することができる。
【0026】
サーバ1が記憶装置2からフラッシュ処理終了通知を受信すると、サーバ1のバッファメモリ上に格納されているダーティデータは、ファイルシステム管理部12によってダーティキューよりデキューされる。この結果、ダーティデータが格納されていたバッファメモリ13上の記憶領域は解放され、他のデータ用の記憶領域として使用可能な状態となる。
【0027】
ジャーナルログの書き込み処理後、フラッシュ要求が発行される前に、サーバ1に電源断等の障害が発生した場合は、サーバ1のファイルシステム管理部12が、ジャーナルログ格納領域24に記憶されているジャーナルログを利用してファイルシステムを回復することができる。
【0028】
図2は、ジャーナルログ格納領域24に格納されるデータの構造の一例を示す図である。ジャーナルログ格納領域24には、複数のジャーナルログがサーバ1から受信された順に格納される。ジャーナルログ格納領域24はループ状に使用され、領域が最後まで使用された場合には、領域の先頭に戻って使用される。
【0029】
前述のように、サーバ1がファイルに対する更新要求を受信すると、ファイルシステム管理部12がバッファメモリ内のデータを更新した後、ジャーナルログを作成し、このジャーナルログをディスク制御部3に送信する。従って、記憶装置2ではまず、ジャーナルログがジャーナルログ格納領域24に書き込まれる。その後記憶装置2では、サーバ1のバッファメモリ13上で行われたデータの更新と同様のデータの更新が、キャッシュ25上行われ、更に更新されたデータがディスクドライブ4に書き込まれる。従って、ジャーナルログはジャーナルログ格納領域24に書き込まれているが、記憶装置2内では未だデータの更新が実行されていないという状態が生じうる。この様な場合、ジャーナルログが示すファイルの更新内容は、記憶装置2には反映されていないので、このジャーナルログを未反映のジャーナルログと呼ぶ。
【0030】
ジャーナルログ格納領域24のうち、未反映のジャーナルログが格納されている領域を示すために、ジャーナルログ制御部34は始点ポインタ43と終点ポインタ44の二つのポインタを用いる。始点ポインタ43と終点ポインタ44の二つのポインタに挟まれた領域(始点ポインタのほうが終点ポインタより後部にある場合は、始点ポインタの位置からジャーナルログ格納領域の終わりまでと、ジャーナルログ格納領域の先頭から終点ポインタの位置までの領域)が未反映のジャーナルログが格納されている領域である。始点ポインタ43および終点ポインタ44の二つのポインタは、制御メモリ26上に格納され、ジャーナルログ制御部34により管理される。また、サーバ1で動作するファイルシステム管理部12は、バッファメモリ13上にこの二つのポインタに対応するポインタを持ち、ジャーナルログの作成時やフラッシュ処理終了通知を受信した時にこの二つのポインタの値を更新することにより、ジャーナルログ格納領域24の状態を管理する。従って、サーバ1のファイルシステム管理部12は、ジャーナルログ格納領域24の空き領域等を管理するために、記憶装置2に対してポインタ読み出し要求を発行する必要がない。
【0031】
各ジャーナルログは、ヘッダ部41とデータ部42を有する。データ部42は可変長であり、データ部42の長さ(バイト数)はヘッダ部41に記憶されている情報から知ることができる。データ部は、サーバが受け付けたファイルの更新要求に応じてファイルに書き込まれるユーザデータや、更新要求に応じて変更されるファイルシステムの管理情報(メタデータ)を有する。尚、ジャーナルログは、サーバ1のユーザや他のサーバ18からサーバ1が受信するファイルの更新要求毎に一つ作成される。
【0032】
ファイルの更新要求に従って更新されるデータには、ファイルシステムの管理情報であるメタデータと、ファイルの内容であるユーザデータの二つがある。従って、ジャーナルログを作成する方法にも、メタデータとユーザデータ両方の更新についてジャーナルログを作成する方法と、メタデータまたはユーザデータいずれか一方の更新のみについてジャーナルログを作成する方法とがある。本実施形態におけるジャーナリングシステムは、いずれの方法を採用する場合にも適用することができる。メタデータとユーザデータ両方の更新履歴をジャーナルログに含ませる場合には、サーバ1はファイルの更新要求に応じてジャーナルログを記憶装置2に書き込み、メタデータとユーザデータそれぞれの更新に応じたダーティデータの管理を行う。メタデータの更新履歴のみをジャーナルログに含ませる場合は、サーバ1はファイルの更新要求に応じて、メタデータの更新に応じたジャーナルログと、バッファメモリ13内で更新されたユーザデータとを記憶装置2に書き込み、メタデータの更新に応じたダーティデータの管理を行う。
【0033】
図3は、本実施形態におけるジャーナルログのデータフォーマットの一例示した図である。ジャーナルログのヘッダ部41は固定長であり、ジャーナルログのサイズを示すログサイズ51およびジャーナルログに含まれる更新内容のまとまりであるアイテム45の数を示すアイテム数52が含まれる。
【0034】
データ部42には、ヘッダで示された数のアイテム45が存在し、アイテム毎に領域が分かれている。各アイテム45は、アイテム内の情報がディスクドライブ4内のどの記憶領域についての更新履歴を示しているのかを表すためのディスクドライブ上のブロックアドレス53と、データ単位がいくつあるかを示すデータ数54、および一つ以上のデータ単位から構成される。データ単位は可変長であり、更新データ57が格納されるディスクドライブ4上の記憶領域のブロックアドレス53からの相対的位置を示すオフセット55、更新データ57のデータ量を示すサイズ56、及び更新データ57を有する。
【0035】
一つのアイテム内に格納されている更新データは、ディスクドライブ内の連続する記憶領域に格納される。更新データが格納されるディスクドライブ4内の記憶領域が、連続する複数のブロックにまたがっている場合には、ブロックアドレス53は先頭のブロック内の位置を指す。オフセット55はブロックサイズを超えた値をとることができ、オフセット55がブロックサイズを超える場合には、オフセット55は先頭ブロックに続くブロック内の位置を指す。即ち、オフセット55からブロックサイズを引いた値が、先頭ブロックに続くブロック内における位置を示すことになり、オフセットが指すディスクドライブ4内の位置からこのオフセット情報と同じデータ単位に格納されている更新データが書き込まれることとなる。オフセットがさらにブロックサイズを超える場合は、順次引き続くブロック内の位置を指す。
【0036】
従来、ジャーナルログにはブロックアドレスは含まれていなかった。これは、従来ジャーナルログはファイルシステムのみが使用するものであったため、ブロックアドレスをジャーナルログに含ませておく必要がなかったからである。従って従来と同様のジャーナルログでは、記憶装置2のディスク制御部3はジャーナルログに含まれるメタデータから更新データが格納されるディスクドライブ4内の記憶領域を特定することはできないため、ジャーナルログに更新データが含まれていても、これを利用してフラッシュ処理を実行することはできなかった。しかし、本実施形態においては、ジャーナルログがブロックアドレス53を有している。ディスク制御部3はブロックアドレスを用いてディスクドライブ4内の記憶領域に対する入出力処理を実行しているので、ジャーナルログがブロックアドレス53とオフセットを有していれば、これらの情報を用いてディスク制御部3のディスク制御プロセッサ22は更新データが格納される記憶領域を特定することができる。従って、ディスク制御部3はジャーナルログが有する更新データを用いて、フラッシュ処理を実行することができるようになる。
【0037】
ジャーナルログは、記憶装置2内の記憶領域でデータが更新されるまでの間に、障害等によりサーバ1のバッファメモリ13上で実行されたデータ更新の内容が消失してしまう可能性があるため、ファイルの更新履歴を別途記憶装置2内に格納しておくためのものである。従って、記憶装置2内の記憶領域でデータが更新された後は、ジャーナルログは不要となる。そこで本実施形態においては、サーバ1と記憶装置2の間での通常のデータの入出力、フラッシュ要求、ジャーナルログの入力を区別するための構成を有する。記憶装置2がサーバ1から受信する通常のデータの入出力要求、フラッシュ要求、ジャーナルログの入力要求を区別できれば、ディスク制御部3では、ジャーナルログを通常のデータを格納するキャッシュ25とは別のジャーナルログ格納領域24に格納することができる。ディスク制御部3がジャーナルログを通常のデータとは別の領域に格納することにより、キャッシュ25上に存在するデータがジャーナルログの書き込みにより追い出されることがなくなり、キャッシュヒット率の向上につながる。
【0038】
また、記憶装置2が通常のデータの入出力要求とジャーナルログの入出力要求とを区別できれば、ディスク制御部3は通常のデータはディスクドライブ4に書き込むのに対し、ジャーナルログはジャーナルログ格納領域24でのみ保持し、ディスクドライブ4に書き込まないよう制御することもできる。この結果、ディスク制御部3とディスクドライブ4の間でのデータ転送による負荷を低減することができる。また、ジャーナルログが格納されるはずであったディスクドライブ4上の記憶領域を通常のデータを格納するために使用することができ、ディスクドライブ4の記憶領域を有効に使用することができる。尚、障害発生時等に備えてディスクドライブ4内にジャーナルログを格納するための記憶領域を割り当てておき、ディスク制御部3はジャーナルログも通常のデータと同様ディスクドライブ4に書き込むこととしても良い。
【0039】
本実施形態では、ジャーナルログ書き込みのための入出力要求、フラッシュ要求、およびフラッシュ処理終了通知は、サーバ1と記憶装置2とが特殊なインタフェースを用いることによって送受信されるものとし、この特殊なインタフェースを用いてサーバ1及び記憶装置2はジャーナルログ書き込みのための入出力要求とフラッシュ要求等の通常のデータの入出力要求とを識別する。
【0040】
図4に、サーバ1と記憶装置2とが、ジャーナルログ書き込みのための入出力要求、フラッシュ要求、およびフラッシュ処理終了の通知を送受信するために用いるインタフェースのコマンドの一例を示す。コマンド61は、ジャーナルログ書込み時にサーバ1から記憶装置2に対して発行されるコマンドである。コマンド61は、ジャーナルログ書き込み要求のためのコマンドであることをしめすコマンド名フィールド、ジャーナルログの各種パラメータが格納されたパラメータフィールド、ジャーナルログのデータ部が格納されるデータフィールド、そしてコマンド発行元のサーバの識別情報が格納される発行元フィールドを有する。パラメータフィールドには、このジャーナルログが有する更新履歴に従ってデータが更新されるディスクドライブ4内の論理ユニットを示すLU番号、ログデータのサイズを示すログサイズ、ログデータに含まれるアイテム数が格納されている。データフィールドには、図3に示すデータ部42のフォーマットに従ったログデータが格納されている。コマンド61を受け取った記憶装置2では、ジャーナルログ制御部34が、ジャーナルログ格納領域24に領域を確保し、パラメータフィールドに含まれるデータに基づいてヘッダを作成した後、データとして渡されるログデータを書き込む。
【0041】
コマンド62は、サーバ1から発行されるフラッシュ要求のためのコマンドであり、フラッシュ要求のためのコマンドであることを示すコマンド名フィールド、論理ユニット番号が格納されたパラメータフィールド、発行元サーバの識別情報が格納される発行元フィールドを有している。本実施形態においては上述のように、フラッシュ処理はジャーナルログに含まれる更新データを用いて実行されるため、フラッシュ要求コマンドはデータを有しない。
【0042】
コマンド63は、記憶装置2がフラッシュ処理の終了をサーバ1に通知するために発行するコマンドであり、フラッシュ処理終了通知である旨を示すコマンド名フィールド、論理ユニット番号やフラッシュ処理の対象となるジャーナルログを特定するためのジャーナルログ格納領域内のアドレスが格納されるパラメータフィールド、発行元の記憶装置の識別情報が格納される発行元フィールドを有している。コマンド63もデータを有しない。
【0043】
サーバが図4に示すコマンドを用いてジャーナルログ書き込み要求やフラッシュ要求を記憶装置に発行すれば、記憶装置2はコマンド名フィールドを検査することによってジャーナルログ書き込み要求とフラッシュ要求とを識別することができる。
特殊なコマンドを用意するかわりに、サーバ1と記憶装置2の間のインタフェースとして、SCSI等の一般的なインタフェースを用いることも可能である。SCSIが用いられる場合、ジャーナルログの書き込み要求とフラッシュ要求とを識別するための方法として、サーバ1が例えばベンダユニークなコマンドを用いてジャーナルログ書込み要求を発行する方法や、サーバ1がライトコマンドのコマンドディスクリプションブロック(CDB)にフラグを設定してジャーナルログ書き込み要求を発行する方法が考えられる。これらの方法によれば、記憶装置2は、ベンダユニークなコマンドやCDBに設定されたフラグを認識することにより、ジャーナルログの書き込み要求とフラッシュ要求とを識別することができる。
【0044】
また記憶装置2が、ジャーナルログ格納領域24として、専用のデバイスや、ディスクドライブ4やキャッシュ25内に専用の記憶領域を有しており、他のデバイスや記憶領域とは分けて管理していれば、サーバから受け付けたジャーナルログ格納領域24への書込み要求を、ジャーナルログ書き込み要求と判断することもできる。
【0045】
サーバ1が記憶装置2に発行するフラッシュ要求や、記憶装置2がサーバに送信するフラッシュ処理終了通知も、SCSIのベンダユニークなコマンドや、CDBにフラグを設定したコマンドを用いることで、サーバ1と記憶装置2はフラッシュ要求やフラッシュ処理終了通知を他のコマンドから識別することができる。
【0046】
図5を用いて、SCSIインタフェースを用いてジャーナルログ書込み要求を送信する場合の一例として、サーバ1がCDBにフラグを設定する例を説明する。図5はサーバ1がジャーナルログ書き込み要求を発行するために記憶装置2に送信するコマンドディスクリプションブロック(CDB)の一例である。CDBのオペレーションコード71にはライトコマンドである旨を表す16進数0Aが設定される。転送ブロック数74にはジャーナルログのサイズがブロック数で指定される。制御バイト75には、ジャーナルログの書き込みであることを表すためにE0等サーバ1と記憶装置2との間で予め定められている値が設定される。尚、ジャーナルログは、ジャーナルログ制御部34がジャーナルログ格納領域24に必要な領域を確保して書き込むため、データが書き込まれる記憶領域を指定するための論理ブロックアドレス73の値は設定されない。記憶装置2はCDBの制御バイト75を検査することにより、ライトコマンドがジャーナルログ書き込み要求であるか否かを識別することができる。CDBに続いて、図3に示すヘッダ部41とデータ部42を含むジャーナルログがライトコマンドのデータとして、サーバ1から記憶装置2に送信される。
【0047】
尚他の実施形態として、通常のデータの入出力要求、ジャーナルログの入力要求、及びフラッシュ要求を同様のインタフェースを用いて送信しても良い。この場合記憶装置2はジャーナルログ書き込み要求を他の入出力要求等から識別することはできないため、ジャーナルログも通常のデータと同様ディスクドライブに書き込まれることとなる。しかし、サーバがフラッシュ要求を発行する際に、フラッシュ処理の対象となるジャーナルログが格納されている記憶領域をフラッシュ要求内で指定すれば、記憶装置2は指定されたジャーナルログに含まれる更新データを用いてフラッシュ処理を実行することができる。
【0048】
図6は、サーバ1がディスクドライブ4に格納されているファイルに対する更新要求を受け取った時の、ファイルシステム管理部12の動作を示すフローチャートである。ファイルシステム管理部12は、ステップ101で、オペレーティングシステム11またはネットワークを介して更新要求を受け取る。ステップ102でファイルシステム管理部12は、ジャーナルログ格納領域24に更新内容を書き込むための空き領域があるかどうかを、バッファメモリ13内で管理しているジャーナルログ格納領域24の始点ポインタおよび終点ポインタを参照することによりチェックする。空き領域がある場合は、ステップ104でファイルシステム管理部12は、必要な量の領域をこの更新要求用のジャーナルログ領域として確保し、バッファメモリ13内の終点ポインタを確保した領域分進める。空き領域がない場合には、ステップ103に進み、ファイルシステム管理部12は図7に示すように、記憶装置2にフラッシュ要求を発行し、記憶装置2からフラッシュ処理終了通知を受信した後ダーティデータのデキュー処理を行うことにより空き領域を作成し、ステップ104でジャーナルログ領域を確保する。次にステップ105で、ファイルシステム管理部12は更新要求に従ってバッファメモリ13上のデータを更新し、ステップ106で更新内容を記憶したジャーナルログをバッファメモリ13上に作成する。そしてステップ107で、ファイルシステム管理部12は更新データをダーティキューに接続することにより、記憶装置2では未だ更新処理が実行されていないダーティデータとしてこの更新データを管理する。ステップ108でファイルシステム管理部12は、記憶装置2に対してジャーナルログ書込みのための入出力要求を発行する。この入出力要求を受信したディスク制御部3はジャーナルログ制御部34の制御によりジャーナルログをディスク制御部3のジャーナルログ格納領域24に書き込む。即ちジャーナルログ制御部34は、ジャーナルログ格納領域24の終点ポインタ44が示す位置からジャーナルログを書き込み、終点ポインタ44をジャーナルログが書き込まれた記憶領域の次まで進める。その後ステップ109で、ファイルシステム管理部12はディスク制御部3からジャーナルログ書込み完了通知を受信するまで待ち、完了通知を受信後ステップ110で、更新要求の発行元に対して更新処理終了の応答を返す。
【0049】
図7は、フラッシュ処理時にファイルシステム管理部12が実行する処理手順を示すフローチャートである。ステップ121でファイルシステム管理部12は、ジャーナルログ格納領域24のどの部分に格納されているジャーナルログについてフラッシュ処理を実行するかを、バッファメモリ13内で管理しているジャーナルログ格納領域24の始点ポインタおよび終点ポインタを参照することにより決定する。次にステップ122でファイルシステム管理部12は、ステップ121で決定したジャーナルログ格納領域24の範囲を指定して記憶装置2に対してフラッシュ要求を発行し、ステップ123で、記憶装置2からのフラッシュ処理終了の通知を待つ。記憶装置2から終了通知を受け取ると、ステップ124でファイルシステム管理部12は、フラッシュ処理により記憶装置2で更新されたデータに対応するデータをダーティキューからデキューする。ステップ125でファイルシステム管理部12は、バッファメモリ13上のジャーナルログ管理用の始点ポインタ43を、フラッシュ処理を行った最終の地点まで進め、ステップ126でフラッシュ処理を終了する。
【0050】
尚サーバ1がフラッシュ要求を発行する契機として図6では、ジャーナルログ格納領域24に空きがなくなった時にフラッシュ要求を発行する例を示している。しかし、ある一定時間間隔毎や、ジャーナルログ格納領域24の空き領域がある一定量以下になった場合にサーバ1がフラッシュ要求を発行することとしても良い。また、後述のようにサーバ1のファイルシステム管理部12が複数のダーティキューを用いてダーティデータの管理を行っている場合には、アクティブなダーティキューの切り替えを契機にフラッシュ要求を発行し、フラッシュ要求を発行する毎に対応するダーティキューのデータを解放することとしても良い。
【0051】
フラッシュ処理が行われた時にファイルシステム管理部13がダーティキューからデキューできるデータは、フラッシュ処理により記憶装置2の記憶領域内で更新されたデータに対応するデータのみである。従ってファイルシステム管理部13は、ステップ121でフラッシュ処理の対象としたジャーナルログに対応するダーティデータのみをデキューする必要がある。そこで、デキューするダーティデータをファイルシステム管理部13が識別するために、サーバ1はジャーナルログとダーティデータとの対応関係をバッファメモリ13に記憶している。ファイルシステム管理部12はダーティデータをデキューする際に、ステップ121でフラッシュ処理の対象としたジャーナルログに対応するダーティデータを検索し、このダーティデータをデキューすべきデータと判断する。
【0052】
他の方法としては、ファイルシステム管理部13がダーティキューを複数個用いる方法が考えられる。ファイルシステム管理部13は、複数のダーティキューの内一つをアクティブなダーティキューとし、バッファメモリ13上でデータを更新した場合にはこのデータをアクティブなダーティキューに接続(キューイング)する。そしてファイルシステム管理部13は、ある一定時間経過した場合や、一定量のデータの更新がバッファメモリ13上で行われた場合等を契機として、別のダーティキューをアクティブに切り替え、今までアクティブであったダーティキューをノンアクティブに切り替える。この結果、各ダーティキューにはそのダーティキューがアクティブであった期間内に更新が行われたデータのみが接続されることとなり、このダーティキューがノンアクティブになった時以降に更新されたデータは他のダーティキューに接続されることになる。そこでファイルシステム管理部13は、ダーティキューをアクティブからノンアクティブに切り替える際にこのダーティキューの最後尾に接続されているダーティデータに対応するジャーナルログの格納位置(ダーティキューをノンアクティブに切り替える時点における、ジャーナルログ格納領域の終点ポインタの位置に相当する。)を記憶しておく。フラッシュ要求発行の際には、記憶しておいたポインタが示す位置までの記憶領域を指定して、ファイルシステム管理部13が記憶装置2に対してフラッシュ要求を発行することとすれば、フラッシュ処理が終了した場合には、対応するダーティキュー上のデータを全てデキューすることができる。
【0053】
尚、フラッシュ要求発行時に存在する全ての未反映なジャーナルログについてフラッシュ処理を実行するようサーバ1が記憶装置2に要求した場合には、ファイルシステム管理部12が記憶装置2に対してフラッシュ要求を発行した時を契機としてアクティブなダーティキューを切り替えればよい。
【0054】
フラッシュ処理が行われた後、次のフラッシュ処理が行われるまでの間に、ファイルシステム管理部12がディスクドライブ4内のある特定の記憶領域に格納されているデータに対するデータ更新要求を複数回受け付ける場合も考えられる。この場合には、ファイルシステム管理部12が2回目以降のデータ更新要求を受け付けた時点で既に、先に受け付けたデータ更新要求に応じて複数のダーティキューのいずれかにこの記憶領域に反映されるべきダーティデータがエンキューされている。従って、ファイルシステム管理部12は既に複数のダーティキューのいずれかにエンキューされているダーティデータをデキューした後、新たな更新要求に応じた更新データをアクティブなダーティキューにエンキューし直す必要がある。
【0055】
ステップ122でサーバ1が発行するフラッシュ要求を受け取った記憶装置2では、ジャーナルログ制御部34により、ジャーナルログを利用したフラッシュ処理が実行される。図8は、サーバ1からフラッシュ要求を受け取ったディスク制御部3のジャーナルログ制御部34が実行する、フラッシュ処理の手順を示すフローチャートである。ジャーナルログ制御部34は、ステップ131でフラッシュ要求を受け取ると、ジャーナルログ管理用ポインタの始点からフラッシュ要求で示される領域までのジャーナルログの内容を順にキャッシュ25上に反映させる。
【0056】
以下にジャーナルログの内容をキャッシュ25に反映させる方法を説明する。まずステップ132で、ジャーナルログ制御部34は始点ポインタ43が示すジャーナルログを参照する。そしてステップ133で、ジャーナルログ制御部34はジャーナルログ内の各アイテム45について、ブロックアドレス53が示すブロックのデータがキャッシュ25上に存在するかチェックする。データがキャッシュ25上に存在する場合はステップ135へ進む。データがキャッシュ25上に存在しない場合は、ステップ134でジャーナルログ制御部34は、キャッシュ25上に領域を割り当て、ジャーナルログのブロックアドレス53が示すブロックに格納されたデータをディスクドライブ4からキャッシュに読み出した後、ステップ135へ進む。ステップ135でジャーナルログ制御部34は、アイテム45内のデータ単位毎に、キャッシュ25上に読み出されているブロックの指定オフセット55が示す位置から更新データ57を書き込む。そしてステップ136でジャーナルログ制御部34は、次のアイテム45が存在するか判断し、存在する場合はステップ133に戻って、次のアイテム45について同様にブロックのデータがキャッシュ25に存在するかチェックする。
【0057】
ジャーナルログ内の全てのアイテム45について更新が終了すると、ステップ137に進み、ジャーナルログ制御部34は始点ポインタ43を次のジャーナルログの位置へ更新する。ステップ138では、ジャーナルログ制御部34は始点ポインタ43がフラッシュ要求で指定された範囲を越えたかをチェックすることにより、指定範囲まで反映処理が終了したかをチェックする。反映処理が終了した場合は、ステップ139でジャーナルログ制御部34は、フラッシュ処理終了通知をサーバ1に送信する。そして、フラッシュ処理終了通知の送信後、キャッシュ25上に反映された更新データはディスクドライブ制御部35の制御によりディスクドライブ4に書き込まれる。反映処理が終了していない場合は、ステップ132に戻り、ジャーナルログ制御部34は始点ポインタ43が示すジャーナルログを参照し、そのジャーナルログについてキャッシュへの反映処理を行う。
【0058】
ジャーナルログ制御部34は、フラッシュ要求を受信する前にジャーナルログに従ってキャッシュ上でデータを更新し、更に更新データをディスクドライブ4に書き込んでおくこともできる。ジャーナルログ制御部34は、サーバ1からの入出力要求が少ない場合などディスク制御装置2の負荷が少ない時を利用して、始点ポインタ43が示すジャーナルログに対して図8に示すステップ133からステップ136までの処理を行い、始点ポインタ43を次のジャーナルログの位置を示すように変更する。このようにフラッシュ要求の受信に先行して、ジャーナルログに従ったデータの更新をキャッシュ25上で実行しておくことにより、ジャーナルログ制御部34がフラッシュ要求を受け取った時に反映すべきジャーナルログの数が少なくなる。従って、ジャーナルログ制御部34がフラッシュ要求を受信してから、サーバ1にフラッシュ処理終了通知を送信までに要する時間が短くなる。
【0059】
ジャーナルログ制御部34がジャーナルログに従ってキャッシュ25上でデータの更新処理を実行する他の方法として、記憶装置2がサーバ1からジャーナルログ書込みの入出力要求を受けた時に、同期的にジャーナルログの内容をキャッシュ25に書き込む方法もある。ジャーナルログ書込みのための入出力要求を受け取ったディスク制御装置では、フラッシュ要求を受信した時に行う図8に示す処理と同様の処理を、サーバ1から受け取ったジャーナルログに対して行い、ジャーナルログ書込みの入出力要求に対してフラッシュ処理終了通知をサーバに返信する。この方法によればディスク制御装置3は、ジャーナルログ格納領域24として一回のジャーナルログ書込みの入出力要求に応じて受信するジャーナルログの容量分の記憶領域を用意しておけばよく、始点ポインタ43と終点ポインタ44を用いた未反映のジャーナルログ領域の管理は不要となる。また、ジャーナルログ書き込みのための入出力要求が記憶装置2で受信される度に、キャッシュ25上でデータが更新されるので、サーバ1がダーティデータの管理を行ったり、フラッシュ要求を発行する必要がなくなる。
【0060】
同期的にジャーナルログの内容を記憶装置2に反映する方法では、ジャーナルログ書込み要求の入出力に対する応答時間が遅くなる。特にキャッシュ上でデータを反映させる際に、キャッシュ25上に更新前のデータが格納されていなかった場合、ディスクドライブ4からデータを読み出し、その終了を待ってからデータを更新しなければならないため、応答時間が遅くなる。そこでディスク制御部3がサーバ1からジャーナルログを受け取ってジャーナルログ格納領域24に格納した時に、ジャーナルログ制御部34が先にフラッシュ処理終了通知をサーバに送信しておき、後に実際にジャーナルログに従ってキャッシュ上のデータを更新することとしてもよい。この方法によれば、サーバ1に対して、ジャーナルログの記憶装置2への書き込みと同期してフラッシュ処理が実行されたように見せかけることができる。この場合、ディスク制御部3は、サーバ1にはフラッシュ処理終了通知を送信したが、実際には未だキャッシュ上で更新されていないデータを、ダーティデータとして管理する必要がある。そして、ディスク制御部3がダーティデータに対する読み出し要求をサーバから受け取った時は、まずジャーナルログ制御部34を起動して未反映のジャーナルログが示す更新内容をキャッシュ25上に反映させた後に、読み出し要求に従ってサーバ1更新後のデータを送信する。
【0061】
以上に述べた様に、ジャーナルログに更新データが格納される記憶領域のブロックアドレスを含ませることによって、ディスク制御部3がジャーナルログ中の更新データを用いてキャッシュ上のデータを更新し、更にディスクドライブ4に更新データを格納できるようになる。従って、フラッシュ要求に伴ってサーバ1から記憶装置2へ更新データを転送する必要がなくなり、サーバ1及び記憶装置2の処理負荷を削減することができる。また、ディスク制御部3がジャーナルログ内の更新データを利用できるので、ディスク制御部3がサーバ1からフラッシュ要求を受け付ける前に、ジャーナルログ内の更新データをディスク制御部3内のキャッシュ25に書き出すことができ、この結果サーバ1がフラッシュ要求を発行してから、記憶装置2がサーバにフラッシュ処理終了通知を返信するまでの時間を短縮することができる。
【0062】
更にディスク制御部3が、サーバから受け付けるジャーナルログ書き込み要求と、フラッシュ要求とを識別することにより、ジャーナルログをディスクドライブに書き出さないよう制御することができる。この結果、ディスク制御部3とディスクドライブ4の間のデータ転送による処理負荷を軽減することができる。
【0063】
【発明の効果】
本発明によれば、サーバや記憶装置は、効率的にジャーナルログ書き込み処理及びフラッシュ処理を実行することができる。
【図面の簡単な説明】
【図1】本発明が適用されるシステムの構成例を示す図である。
【図2】ジャーナルログ格納領域のフォーマットの一例を示す図である。
【図3】ジャーナルログのフォーマットの一例を示す図である。
【図4】サーバとディスク制御部とが用いるコマンドの一例を示す図である。
【図5】ジャーナルログ書き込み要求に用いられるSCSIコマンドの一例を示す図である。
【図6】ファイルを更新する際の、ファイルシステム管理部の動作手順の一例を示すフローチャートである。
【図7】フラッシュ処理を実行するための、ファイルシステム管理部の動作手順の一例を示すフローチャートである。
【図8】ジャーナルログ制御部が行うフラッシュ処理の動作手順の一例を示すフローチャートである。
【図9】ジャーナルログの書き込み処理およびフラッシュ処理の一例を示す図である。
【符号の説明】
1…サーバ
2…記憶装置
3…ディスク制御部
4…ディスクドライブ
12…ファイルシステム管理部
24…ジャーナルログ格納領域
25…キャッシュ
34…ジャーナルログ制御部

Claims (16)

  1. データを記憶する一又は複数のディスクドライブと、前記一又は複数のディスクドライブに対するデータの読み書きを制御するディスク制御部とを有する記憶装置と、
    前記一又は複数のディスクドライブに記憶されるデータを記憶するバッファメモリと、
    プロセッサとを有する、前記記憶装置に接続される計算機とを有する記憶装置システムであって、
    前記ディスク制御部は、
    キャッシュ領域とジャーナルログ格納領域を有するメモリを有し、
    受信する要求が、ジャーナルログ書き込み要求であるか、データ書き込み要求であるか、を識別し、ジャーナルログ書き込み要求であった場合には前記ジャーナルログ格納領域を用いて処理を行い、データ書き込み要求で合った場合にはキャッシュ領域を用いて処理を行うものであり、
    前記プロセッサは、
    前記一又は複数のディスクドライブに格納されているファイルに対するアクセス要求を受け付け、
    前記アクセス要求に従って前記バッファメモリに格納されているデータを更新し、
    前記バッファメモリ内で更新された更新データと該更新データが格納される前記一又は複数のディスクドライブ内の記憶領域のアドレス情報とを含む、ジャーナルログ書き込み要求を作成し、
    前記ジャーナルログ書き込み要求を前記ディスク制御部に送信し、
    前記ディスク制御部は、前記プロセッサから受信した要求がジャーナルログ書き込み要求であることを識別し、該ジャーナルログ書き込み要求に含まれる更新データとアドレス情報とを前記メモリ内のジャーナルログ格納領域に記憶し、
    前記プロセッサは、前記一又は複数のディスクドライブ内のデータを更新することを要求するフラッシュ要求を前記ディスク制御部に送信し、
    前記ディスク制御部は、前記プロセッサから受信したフラッシュ要求に従って、前記ジャーナルログ格納領域に記憶された前記更新データと前記アドレス情報とを用いて、前記一又は複数のディスクドライブ内のデータを更新するよう制御することを特徴とする記憶装置システム。
  2. 請求項記載の記憶装置システムにおいて、
    前記ジャーナルログ格納領域に記憶される更新データは、前記バッファメモリにおける更新順に格納されることを特徴とする記憶装置システム。
  3. 請求項 1 乃至2記載の記憶装置システムにおいて、
    前記ジャーナルログ書き込み要求及び、前記フラッシュ要求は、所定の識別情報を含むものであることを特徴とする記憶装置システム。
  4. 請求項記載の記憶装置システムにおいて、
    前記ディスク制御部は、前記ジャーナルログ書き込み要求に含まれる更新データを、前記ジャーナルログ書き込み要求が有するアドレス情報が示す記憶領域に書き込むよう制御することを特徴とする記憶装置システム。
  5. 請求項記載の記憶装置システムにおいて、
    前記計算機は、前記バッファメモリで更新されたデータを識別するための更新データ情
    報を記憶する記憶領域を有し、
    前記プロセッサは、前記ディスク制御部から、前記フラッシュ要求に対する応答を受信した場合に、前記更新データ情報を削除することを特徴とする記憶装置システム。
  6. 請求項記載の記憶装置システムにおいて、
    前記ディスク制御部は、前記プロセッサから前記フラッシュ要求を受信する前に、前記ジャーナルログ書き込み要求に含まれる更新データを用いて前記ディスクドライブに記憶されているデータを更新するよう制御することを特徴とする記憶装置システム。
  7. 請求項記載の記憶装置システムにおいて、
    前記記憶装置は更に、前記一又は複数のディスクドライブに書き込まれるデータを一時
    的に記憶するためのキャッシュメモリを有し、
    前記ディスク制御部は、前記フラッシュ要求を受信する前に、前記ジャーナルログ書き込み要求に含まれる更新データを前記キャッシュメモリに書き込み、
    前記キャッシュメモリに書き込まれたデータを用いて前記一又は複数のディスクドライブに記憶されているデータを更新するよう制御することを特徴とする記憶装置システム。
  8. 一又は複数のディスクドライブを有する記憶装置に接続される計算機が受け付けた、該記憶装置に記憶されているファイルに対するアクセス要求に従って、ファイルの内容であるユーザデータ若しくはファイルシステムの管理情報であるメタデータを更新する方法であって、
    前記ディスク制御部は、
    キャッシュ領域とジャーナルログ格納領域を有するメモリを有し、
    受信する要求が、ジャーナルログ書き込み要求であるか、データ書き込み要求であるか、を識別し、ジャーナルログ書き込み要求であった場合には前記ジャーナルログ格納領域を用いて処理を行い、データ書き込み要求で合った場合にはキャッシュ領域を用いて処理を行うものであり、
    前記計算機が、前記記憶装置に記憶されるデータが一時的に格納される前記計算機が有するバッファメモリに記憶されているデータを、前記アクセス要求に従って更新するステップと、
    前記計算機が、前記バッファメモリ内で更新された更新データと該更新データが格納される前記一又は複数のディスクドライブ内の記憶領域のアドレス情報とを有するジャーナルログ書き込み要求を前記記憶装置に送信するステップと、
    前記記憶装置が、前記計算機から受信した要求がジャーナルログ書き込み要求であることを識別し、該ジャーナルログ書き込み要求に含まれる更新データとアドレス情報とを前記メモリ内のジャーナルログ格納領域に記憶するステップと、
    前記計算機が、前記一又は複数のディスクドライブ内のユーザデータ若しくはメタデータを更新するよう要求するフラッシュ要求を前記記憶装置に送信するステップと、
    前記記憶装置が、前記計算機から受信したフラッシュ要求に従って、前記ジャーナルログ格納領域に記憶された前記更新データと前記アドレス情報とを用いて、該ディスクドライブ内のユーザデータ若しくはメタデータを更新するよう制御するステップと
    を有することを特徴とするデータ更新方法。
  9. 請求項記載のデータ更新方法において、
    前記ジャーナルログ書き込み要求及び、前記フラッシュ要求は、所定の識別情報を含むものであることを特徴とするデータ更新方法。
  10. 請求項記載のデータ更新方法において、
    前記ユーザデータ若しくはメタデータを更新するよう制御するステップは、前記ジャーナルログ格納領域に格納されているデータから、前記ディスクドライブに反映されていないデータを抽出するステップと、
    抽出されたデータを用いて前記ディスクドライブ内のユーザデータ若しくはメタデータを更新するよう制御するステップを有することを特徴とするデータ更新方法。
  11. 請求項記載のデータ更新方法において、
    前記ユーザデータ若しくはメタデータを更新するよう制御するステップは、前記ジャーナルログ書き込み要求に含まれる更新データを、該ジャーナルログ書き込み要求に含まれるアドレス情報が示す記憶領域に書き込むステップを有することを特徴とするデータ更新方法。
  12. 請求項記載のデータ更新方法において、
    前記ユーザデータ若しくはメタデータを更新するよう制御するステップは、前記記憶装置が前記フラッシュ要求を受信する前に、前記ジャーナルログ書き込み要求が有する更新データを用いて前記記憶装置に記憶されているユーザデータ若しくはメタデータを更新するよう制御するステップを有することを特徴とするデータ更新方法。
  13. 請求項記載のデータ更新方法において、
    前記ユーザデータ若しくはメタデータを更新するよう制御するステップは、前記記憶装
    置が前記フラッシュ要求を受信する前に、前記ジャーナルログ書き込み要求が有する更新データを前記記憶装置が有するキャッシュに書き込むステップと、
    前記フラッシュ要求に対して更新終了応答を返信するステップと、
    前記キャッシュに書き込まれた前記更新データを、前記一又は複数のディスクドライブ内の記憶領域に書き込むステップと、
    を有することを特徴とするデータ更新方法。
  14. 一又は複数のディスクドライブを有する記憶装置に接続される計算機が受信する該記憶装置に記憶されているファイルに対するアクセス要求に従って、ファイルの内容であるユーザデータ若しくはファイルシステムの管理情報であるメタデータの更新処理を該記憶装置及び該計算機に実行させるためのプログラムであって、
    前記ディスク制御部は、
    キャッシュ領域とジャーナルログ格納領域を有するメモリを有し、
    受信する要求が、ジャーナルログ書き込み要求であるか、データ書き込み要求であるか、を識別し、ジャーナルログ書き込み要求であった場合には前記ジャーナルログ格納領域を用いて処理を行い、データ書き込み要求で合った場合にはキャッシュ領域を用いて処理を行うものであり、
    前記計算機が、前記アクセス要求に従って、前記記憶装置に記憶されるデータが一時的に格納される前記計算機が有するバッファメモリに記憶されているデータを更新するステップと、
    前記計算機が、前記バッファメモリに格納されている更新後のデータである更新データと該更新データが格納される前記一又は複数のディスクドライブ内の記憶領域のアドレス情報とを含むジャーナルログ書き込み要求を、前記記憶装置に送信するステップと、
    前記記憶装置が、前記計算機から受信した要求がジャーナルログ書き込み要求であることを識別し、該ジャーナルログ書き込み要求に含まれる更新データとアドレス情報とを前記メモリ内のジャーナルログ格納領域に記憶するステップと、
    前記計算機が、前記一又は複数のディスクドライブ内のユーザデータ若しくはメタデータを更新するよう要求するフラッシュ要求を前記記憶装置に発行するステップと、
    前記記憶装置が、前記計算機から受信したフラッシュ要求に従って、前記ジャーナルログ格納領域に記憶された前記更新データと前記アドレス情報とを用いて、該ディスクドライブ内のユーザデータ若しくはメタデータを更新するよう制御するステップと
    を実行させることを特徴とするプログラム。
  15. 請求項14記載のプログラムにおいて、
    前記ジャーナルログ書き込み要求及び、前記フラッシュ要求は、所定の識別情報を含むものであることを特徴とするプログラム。
  16. 請求項15記載のプログラムにおいて、
    前記ユーザデータ若しくはメタデータを更新するよう制御するステップは、前記ジャーナルログ格納領域に格納されているデータから、前記ディスクドライブに反映されていないデータを抽出するステップと、
    抽出されたデータを用いて前記ディスクドライブ内のユーザデータ若しくはメタデータを更新するよう制御するステップを有することを特徴とするプログラム。
JP2002351929A 2002-12-04 2002-12-04 ジャーナルログを利用した更新データ書込方法 Expired - Fee Related JP4186602B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2002351929A JP4186602B2 (ja) 2002-12-04 2002-12-04 ジャーナルログを利用した更新データ書込方法
EP03003069A EP1469399A3 (en) 2002-12-04 2003-02-12 Updated data write method using a journaling filesystem
US10/366,361 US7047355B2 (en) 2002-12-04 2003-02-14 Updated data write method using journal log
US11/385,792 US7574557B2 (en) 2002-12-04 2006-03-22 Updated data write method using journal log

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002351929A JP4186602B2 (ja) 2002-12-04 2002-12-04 ジャーナルログを利用した更新データ書込方法

Publications (3)

Publication Number Publication Date
JP2004185349A JP2004185349A (ja) 2004-07-02
JP2004185349A5 JP2004185349A5 (ja) 2005-06-23
JP4186602B2 true JP4186602B2 (ja) 2008-11-26

Family

ID=32463205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002351929A Expired - Fee Related JP4186602B2 (ja) 2002-12-04 2002-12-04 ジャーナルログを利用した更新データ書込方法

Country Status (3)

Country Link
US (2) US7047355B2 (ja)
EP (1) EP1469399A3 (ja)
JP (1) JP4186602B2 (ja)

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004213435A (ja) * 2003-01-07 2004-07-29 Hitachi Ltd 記憶装置システム
JP4437650B2 (ja) * 2003-08-25 2010-03-24 株式会社日立製作所 ストレージシステム
JP4257783B2 (ja) 2003-10-23 2009-04-22 株式会社日立製作所 論理分割可能な記憶装置及び記憶装置システム
JP4141391B2 (ja) 2004-02-05 2008-08-27 株式会社日立製作所 ストレージサブシステム
JP2005267008A (ja) * 2004-03-17 2005-09-29 Hitachi Ltd ストレージ管理方法およびストレージ管理システム
US20050207052A1 (en) * 2004-03-19 2005-09-22 Richard Testardi Predictable journal architecture
US7599951B1 (en) * 2004-03-25 2009-10-06 Emc Corporation Continuous data backup
US7130971B2 (en) * 2004-03-30 2006-10-31 Hitachi, Ltd. Assuring genuineness of data stored on a storage device
US20060064405A1 (en) * 2004-09-21 2006-03-23 Xiaoye Jiang Hybrid client-server protocol for fast writes to a file
US7062628B2 (en) * 2004-09-28 2006-06-13 Hitachi, Ltd. Method and apparatus for storage pooling and provisioning for journal based storage and recovery
US7590777B2 (en) * 2004-12-10 2009-09-15 International Business Machines Corporation Transferring data between system and storage in a shared buffer
US20060206538A1 (en) * 2005-03-09 2006-09-14 Veazey Judson E System for performing log writes in a database management system
JP4248510B2 (ja) * 2005-03-24 2009-04-02 株式会社東芝 計算機システム、ディスク装置およびデータ更新制御方法
JP4550648B2 (ja) * 2005-04-08 2010-09-22 株式会社日立製作所 計算機システム
US7653836B1 (en) * 2005-06-10 2010-01-26 American Megatrends, Inc Logging metadata modifications in a data storage system
JP4989861B2 (ja) * 2005-06-29 2012-08-01 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ データ書き込み方法及びディスク装置
US7784098B1 (en) * 2005-07-14 2010-08-24 Trend Micro, Inc. Snapshot and restore technique for computer system recovery
US8161548B1 (en) 2005-08-15 2012-04-17 Trend Micro, Inc. Malware detection using pattern classification
JP4836533B2 (ja) * 2005-09-27 2011-12-14 株式会社日立製作所 ストレージシステムにおけるファイルシステムマイグレーション方法、ストレージシステム及び管理計算機
JP4662550B2 (ja) * 2005-10-20 2011-03-30 株式会社日立製作所 ストレージシステム
US7467169B2 (en) * 2005-10-31 2008-12-16 Network Appliance, Inc. Circular and bi-directional mirroring of flexible volumes
US7685371B1 (en) * 2006-04-19 2010-03-23 Nvidia Corporation Hierarchical flush barrier mechanism with deadlock avoidance
JP2008040699A (ja) * 2006-08-04 2008-02-21 Fujitsu Ltd Hsm制御プログラム、hsm制御装置、hsm制御方法
JP2008108227A (ja) * 2006-09-25 2008-05-08 Hitachi Ltd ストレージシステム及び監査ログ管理方法
US7840752B2 (en) * 2006-10-30 2010-11-23 Microsoft Corporation Dynamic database memory management policies
US8918427B1 (en) 2006-12-29 2014-12-23 Symantec Operating Corporation Virtualization of file input/output operations
JP2009020986A (ja) * 2007-07-15 2009-01-29 Hitachi Global Storage Technologies Netherlands Bv ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
US8024525B2 (en) * 2007-07-25 2011-09-20 Digi-Data Corporation Storage control unit with memory cache protection via recorded log
US8615496B2 (en) * 2007-10-19 2013-12-24 Apple Inc. File system reliability using journaling on a storage medium
JP4919983B2 (ja) * 2008-02-21 2012-04-18 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ データ記憶装置及びデータ記憶装置におけるデータ管理方法
JP5090221B2 (ja) * 2008-03-21 2012-12-05 株式会社日立ソリューションズ ジャーナルログ記録制御方法
US8682853B2 (en) * 2008-05-16 2014-03-25 Paraccel Llc System and method for enhancing storage performance in analytical database applications
GB2478434B (en) * 2008-09-15 2011-11-09 Hewlett Packard Development Co Method and apparatus to manage non-volatile disk cache
US8397051B2 (en) * 2009-02-23 2013-03-12 Autonomy, Inc. Hybrid hash tables
US20100215175A1 (en) * 2009-02-23 2010-08-26 Iron Mountain Incorporated Methods and systems for stripe blind encryption
US8145598B2 (en) * 2009-02-23 2012-03-27 Iron Mountain Incorporated Methods and systems for single instance storage of asset parts
US8090683B2 (en) * 2009-02-23 2012-01-03 Iron Mountain Incorporated Managing workflow communication in a distributed storage system
DE112009005021T5 (de) 2009-07-02 2012-07-26 Mitsubishi Electric Corp. Datenaufzeichungseinrichtung und audiosystem
WO2013070273A1 (en) * 2011-04-01 2013-05-16 Nexsan Corporation Journaling raid system
US8725782B2 (en) * 2011-04-25 2014-05-13 Microsoft Corporation Virtual disk storage techniques
US9519496B2 (en) 2011-04-26 2016-12-13 Microsoft Technology Licensing, Llc Detecting and preventing virtual disk storage linkage faults
US20130198447A1 (en) * 2012-01-30 2013-08-01 Infinidat Ltd. Storage system for atomic write which includes a pre-cache
JP5874526B2 (ja) * 2012-05-15 2016-03-02 日本電気株式会社 バックアップ取得装置、バックアップ取得方法、およびバックアップ取得プログラム
US10387331B2 (en) * 2012-06-05 2019-08-20 Vmware, Inc. Process for maintaining data write ordering through a cache
US9778860B2 (en) 2012-09-12 2017-10-03 Microsoft Technology Licensing, Llc Re-TRIM of free space within VHDX
US9569113B2 (en) * 2012-10-11 2017-02-14 SK Hynix Inc. Data storage device and operating method thereof
JP5987797B2 (ja) * 2013-08-06 2016-09-07 富士ゼロックス株式会社 情報処理装置及びプログラム
KR102025180B1 (ko) 2013-08-08 2019-09-26 삼성전자주식회사 스토리지 시스템 및 그것의 쓰기 방법
US9529809B2 (en) * 2013-10-17 2016-12-27 International Business Machines Corporation Managing log data using a circular fixed size file
US9990298B2 (en) * 2014-05-12 2018-06-05 Western Digital Technologies, Inc System and method for caching solid state device read request results
US10963348B1 (en) * 2014-12-19 2021-03-30 EMC IP Holding Company LLC Summary change log indexed by inode numbers
US9760485B2 (en) * 2015-01-28 2017-09-12 International Business Machines Corporation Fast write and management of persistent cache in a system that includes tertiary storage
US9557918B2 (en) * 2015-05-26 2017-01-31 International Business Machines Corporation Storage device data overlay tracking and prevention
JP6536237B2 (ja) * 2015-07-10 2019-07-03 日本電気株式会社 制御情報設定装置、制御情報設定方法、及び、制御情報設定プログラム
US9830273B2 (en) * 2015-07-30 2017-11-28 Netapp, Inc. Deduplicated host cache flush to remote storage
US10108503B2 (en) 2015-08-24 2018-10-23 Western Digital Technologies, Inc. Methods and systems for updating a recovery sequence map
CN106897338A (zh) * 2016-07-04 2017-06-27 阿里巴巴集团控股有限公司 一种针对数据库的数据修改请求处理方法及装置
US10484015B2 (en) 2016-12-28 2019-11-19 Amazon Technologies, Inc. Data storage system with enforced fencing
US11301144B2 (en) 2016-12-28 2022-04-12 Amazon Technologies, Inc. Data storage system
US10514847B2 (en) 2016-12-28 2019-12-24 Amazon Technologies, Inc. Data storage system with multiple durability levels
US10521135B2 (en) * 2017-02-15 2019-12-31 Amazon Technologies, Inc. Data system with data flush mechanism
US11132306B2 (en) * 2019-01-29 2021-09-28 International Business Machines Corporation Stale message removal in a multi-path lock facility
US11169723B2 (en) 2019-06-28 2021-11-09 Amazon Technologies, Inc. Data storage system with metadata check-pointing
US11360699B1 (en) 2019-08-30 2022-06-14 Veritas Technologies Llc Method and system for improved write performance in erasure-coded storage systems
US11182096B1 (en) 2020-05-18 2021-11-23 Amazon Technologies, Inc. Data storage system with configurable durability
US11681443B1 (en) 2020-08-28 2023-06-20 Amazon Technologies, Inc. Durable data storage with snapshot storage space optimization
US11385806B1 (en) * 2020-12-20 2022-07-12 Veritas Technologies Llc Methods and systems for efficient erasure-coded storage systems

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5241666A (en) * 1979-06-04 1993-08-31 Unisys Corporation Variable rate improvement of disc cache subsystem
US5163131A (en) 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
US5412801A (en) 1990-01-17 1995-05-02 E-Net Gap recovery for off-site data storage and recovery systems
US5555389A (en) 1993-07-07 1996-09-10 Hitachi, Ltd. Storage controller for performing dump processing
WO1996027157A1 (fr) * 1995-02-28 1996-09-06 Ntt Data Communications Systems Corporation Systeme associatif decentralise et traitements de journaux et de reprise dans celui-ci
US5778168A (en) 1995-09-11 1998-07-07 Sun Microsystems, Inc. Transaction device driver technique for a journaling file system to ensure atomicity of write operations to a computer mass storage device
US5832515A (en) * 1996-09-12 1998-11-03 Veritas Software Log device layered transparently within a filesystem paradigm
US5896492A (en) 1996-10-28 1999-04-20 Sun Microsystems, Inc. Maintaining data coherency between a primary memory controller and a backup memory controller
US6073209A (en) 1997-03-31 2000-06-06 Ark Research Corporation Data storage controller providing multiple hosts with access to multiple storage subsystems
US6144999A (en) 1998-05-29 2000-11-07 Sun Microsystems, Incorporated Method and apparatus for file system disaster recovery
US6829610B1 (en) * 1999-03-11 2004-12-07 Microsoft Corporation Scalable storage system supporting multi-level query resolution
JP3763992B2 (ja) * 1999-03-30 2006-04-05 富士通株式会社 データ処理装置及び記録媒体
US6526418B1 (en) 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US6622152B1 (en) 2000-05-09 2003-09-16 International Business Machines Corporation Remote log based replication solution
WO2002031696A1 (en) 2000-10-09 2002-04-18 Maximum Availability Limited Method and apparatus for data processing
US6516380B2 (en) 2001-02-05 2003-02-04 International Business Machines Corporation System and method for a log-based non-volatile write cache in a storage controller
US6714951B2 (en) * 2001-04-16 2004-03-30 International Business Machines Corporation Continuous journaling of objects within a hierarchical directory tree
US6988125B2 (en) 2001-07-26 2006-01-17 International Business Machines Corporation Servicing client requests in a network attached storage (NAS)-based network including replicating a client-server protocol in a packet generated by the NAS device
JP2003248611A (ja) 2002-02-26 2003-09-05 Hitachi Ltd 記憶管理統合システム、および、その記憶管理制御方法
US7225204B2 (en) 2002-03-19 2007-05-29 Network Appliance, Inc. System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping
JP4266096B2 (ja) 2002-03-26 2009-05-20 株式会社日立製作所 ファイル保管システムとnasサーバ
JP2003330782A (ja) 2002-05-10 2003-11-21 Hitachi Ltd 計算機システム
JP4056794B2 (ja) 2002-05-28 2008-03-05 株式会社日立製作所 ストレージシステムの制御方法及びストレージシステム
US6898668B2 (en) 2002-06-24 2005-05-24 Hewlett-Packard Development Company, L.P. System and method for reorganizing data in a raid storage system
US6721765B2 (en) 2002-07-02 2004-04-13 Sybase, Inc. Database system with improved methods for asynchronous logging of transactions
US6931499B2 (en) * 2002-08-01 2005-08-16 Lsi Logic Corporation Method and apparatus for copying data between storage volumes of storage systems
US7076606B2 (en) 2002-09-20 2006-07-11 Quantum Corporation Accelerated RAID with rewind capability
US20040078508A1 (en) 2002-10-02 2004-04-22 Rivard William G. System and method for high performance data storage and retrieval
US6889288B2 (en) 2002-12-02 2005-05-03 Emc Corporation Reducing data copy operations for writing data from a network to storage of a cached data storage system by organizing cache blocks as linked lists of data fragments
US6761705B1 (en) 2003-04-15 2004-07-13 Li-Ssu Chiu Safety syringe device with a needle bending device

Also Published As

Publication number Publication date
EP1469399A3 (en) 2007-01-24
US20040111557A1 (en) 2004-06-10
US20060161731A1 (en) 2006-07-20
US7574557B2 (en) 2009-08-11
EP1469399A2 (en) 2004-10-20
JP2004185349A (ja) 2004-07-02
US7047355B2 (en) 2006-05-16

Similar Documents

Publication Publication Date Title
JP4186602B2 (ja) ジャーナルログを利用した更新データ書込方法
US6836819B2 (en) Automated on-line capacity expansion method for storage device
US7124152B2 (en) Data storage device with deterministic caching and retention capabilities to effect file level data transfers over a network
US7272687B2 (en) Cache redundancy for LSI raid controllers
EP1074916B1 (en) Hardware mechanism for managing cache structures in a data storage system
US8706687B2 (en) Log driven storage controller with network persistent memory
US20160342545A1 (en) Data memory device
US7681076B1 (en) Method and an apparatus to perform fast log replay
US7234004B2 (en) Method, apparatus and program product for low latency I/O adapter queuing in a computer system
EP1199637A2 (en) Disk controller comprising cache memory and method of controlling the cache
US7380090B2 (en) Storage device and control method for the same
JP4290975B2 (ja) データベース処理方法及び装置並びにその処理プログラム及びディザスタリカバリ方法及びシステム
JP4561168B2 (ja) データ処理システムおよび方法並びにその処理プログラム
JP2021128802A (ja) 情報処理システム、ストレージシステム及びデータ転送方法
US7376786B2 (en) Command stack management in a disk drive
US20020059324A1 (en) Computer system and a database access method thereof
US10853389B2 (en) Efficient snapshot activation
JP4625675B2 (ja) ストレージ装置のリソース割り当て方法及びストレージ装置
CN116097228A (zh) 在针对写入集合中的轨道释放高速缓存资源之后获得用于对写入集合中的轨道的预期写入的高速缓存资源
JP2001195197A (ja) 記憶されたレコードについてのフォーマット情報を効率的に提供するためのディレクトリを含むデジタル・データ・サブシステム
JP4606998B2 (ja) ネットワークキャッシュ装置およびプログラム
US6950905B2 (en) Write posting memory interface with block-based read-ahead mechanism
US20050223180A1 (en) Accelerating the execution of I/O operations in a storage system
CN115617259A (zh) 文件存储器
JPH10214217A (ja) ネットワークキャッシュ装置およびネットワークキャッシュ方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040924

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040924

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080121

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: 20080819

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: 20080901

R151 Written notification of patent or utility model registration

Ref document number: 4186602

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20110919

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120919

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130919

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees