JP4945663B2 - 情報処理装置およびデータの復旧方法 - Google Patents

情報処理装置およびデータの復旧方法 Download PDF

Info

Publication number
JP4945663B2
JP4945663B2 JP2010150344A JP2010150344A JP4945663B2 JP 4945663 B2 JP4945663 B2 JP 4945663B2 JP 2010150344 A JP2010150344 A JP 2010150344A JP 2010150344 A JP2010150344 A JP 2010150344A JP 4945663 B2 JP4945663 B2 JP 4945663B2
Authority
JP
Japan
Prior art keywords
storage device
data
cache
writing
main memory
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
JP2010150344A
Other languages
English (en)
Other versions
JP2012014435A (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.)
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 JP2010150344A priority Critical patent/JP4945663B2/ja
Priority to US13/165,427 priority patent/US8335901B2/en
Publication of JP2012014435A publication Critical patent/JP2012014435A/ja
Application granted granted Critical
Publication of JP4945663B2 publication Critical patent/JP4945663B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/1417Boot up procedures
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

Description

本発明の実施形態は、記憶装置に書き込まれていないデータを復旧する情報処理装置およびデータの復旧方法に関する。
ハードディスクは半導体メモリに比べてアクセスが遅い。そこで、メインメモリの一部をキャッシュ領域として使用して、キャッシュデータをメインメモリに記録することで、データのアクセス速度を高速化することが行われている。
また、ハードディスク内に不揮発性メモリを搭載し、不揮発性メモリをキャッシュメモリとして使用するハイブリッドハードディスクドライブが存在する。
また、近年、ハードディスクドライブの代わりに記憶媒体として不揮発性メモリを用いたSSD(Solid State Drive)を採用するコンピュータが市販されている。
現在、メインメモリおよびSSDをキャッシュとして用いるシステムが提案されている。このシステムでは、メインメモリおよびSSDにキャッシュするには、ドライバが用いられる。ドライバによってメインメモリおよびSSDにキャッシュしている状態で、オペレーティングシステムがクラッシュした場合、キャッシュされたデータを失ってしまう恐れがある。そこで、オペレーティングシステムがクラッシュした場合、記憶装置に書き込まれていないキャッシュされたデータを失ってしまう恐れがあるので、キャッシュされたデータを記憶装置に復旧する技術が望まれている。
また、データの冗長化を図るためにRAID(Redundant Array of Inexpensive Disks)が用いられている。RAIDには専用のハードウェアで実行するハードウェアRAIDと、CPUがRAIDに関する処理を行うソフトウェアRAIDとがある。ソフトウェアRAIDの場合、メインメモリを用いてパリティ(冗長化コード)の計算を行う。そのため、パリティを記憶装置に書き込む前にオペレーティングシステムがクラッシュした場合、パリティが失われて冗長性が損なわれる恐れがある。そのため、パリティが記憶装置に書き込まれていない状態でオペレーティングシステムがクラッシュした場合、パリティを記憶装置に復旧する技術が望まれている。
以上説明したように、記憶装置に書き込まれていないデータがある状態でオペレーティングシステムがクラッシュしても、データを記憶装置に復旧できるようにすることが望まれている。
特開平9−244907号公報
記憶装置に書き込まれていないデータがある状態でオペレーティングシステムがクラッシュしても、データを記憶装置に復旧できるようにすることが望まれている。
本発明の目的は、記憶装置に書き込まれていないデータがメモリ内にある状態でオペレーティングシステムがクラッシュしても、メモリ内のデータを記憶装置に復旧することが可能な情報処理装置およびデータ復旧方法を提供することにある。
実施形態によれば、情報処理装置は、メインメモリと、第1の記憶装置と、第2の記憶装置と、第1書き込み手段と、第2書き込み手段と、第3書き込み手段と、を具備する。第1の記憶装置は、オペレーティングシステムを実行するためのファイルを格納する。第1書き込み手段は、第2の記憶装置に書き込まれるデータを前記メインメモリに書き込み、前記データの前記第2の記憶装置内の書き込まれる位置を示す書き込み位置情報を前記メインメモリに書き込む。第2書き込み手段は、前記オペレーティングシステムのクラッシュ時に、前記メインメモリ内の前記データおよび前記書き込み位置情報を前記第1の記憶装置内の書込領域に書き込む第2書き込む。第3書き込み手段は、前記クラッシュ後の起動時に、前記第1の記憶装置内の前記データを前記第1の記憶装置内の前記書込位置情報に基づいて第2の記憶装置内に書き込む。
第1の実施形態に係わる情報処理装置のストレージに対するアクセス経路を示すブロック図。 システム起動からOS起動までの処理を示すフローチャート。 オペレーティングシステム起動時の処理の手順を示すフローチャート。 クラッシュ時の処理の手順を示すフローチャート。 修復ツールによる処理の手順を示すフローチャート。 第2の実施形態に係わるソフトウェアで実現されるRAIDサブシステムをもつ情報処理装置のストレージに対するアクセス経路を示すブロック図。 第2の実施形態に係わるソフトウェアで実現されるRAIDサブシステムをもつ情報処理装置のストレージに対するアクセス経路を示すブロック図。
以下、実施の形態について図面を参照して説明する。
(第1の実施形態)
図1は、第1の実施形態に係わる情報処理装置のストレージに対するアクセス経路を示すブロック図である。この情報処理装置は、パーソナルコンピュータやサーバ等のコンピュータによって実現される。
なお、図1に示すソフトウェア構成は、左から通常のオペレーティングシステム(OS)稼働時、クラッシュダンプ時のオペレーティングシステム(OS)稼働時、オペレーティングシステム起動時を示している。
コンピュータは、ATA(AT Attachment)ストレージコントローラ100、ハードディスクドライブ(HDD)110、SSD(Solid State Drive)120、およびメインメモリ130等を備えている。
HDD110の一部もしくはすべての領域がキャッシュ対象領域111になっており、SSD(Solid State Drive)120およびメインメモリ130をHDD110へのアクセスに対するキャッシュメモリとして用いる。メインメモリ130は1次キャッシュメモリとして用いられ、SSD120は2次キャッシュメモリとして用いられる。メインメモリ130は、揮発性メモリであるRAMによって構成されている。
キャッシュ対象領域111中にオペレーティングシステム(OS)112が格納されている。オペレーティングシステム112の中には、メモリダンプデータを書き込むためのダンプデータ書込領域113があらかじめ確保されている。なお、オペレーティングシステム112は必ずしもキャッシュ対象領域111の中に存在する必要はない。
SSD120内には、キャッシュ設定データB121、2次キャッシュ管理情報B122、および2次キャッシュデータ123が格納される。ここでは2次キャッシュデバイスとしてSSDを使用しているが、HDD110よりもデータ転送速度が高速なストレージであればよく、特にSSDに限定するものではない。2次キャッシュ管理情報B122のSSD120内の記録位置は予め決められている。
オペレーティングシステム112の起動前においては、拡張ローダ163が2次キャッシュの処理を行う。拡張ローダ163は、OSブートローダ162が要求するリクエストを解釈し、OSブートローダ162からリクエストされたデータが2次キャッシュデータ123内にあるかを判定する。2次キャッシュデータ123内にあると判定した場合、拡張ローダ163は、2次キャッシュデータ123からデータをリードする。2次キャッシュデータ123内にないと判定した場合は、拡張ローダ163は、HDD110からデータをリードする。
オペレーティングシステム112の稼働中、キャッシュドライバ144が汎用ディスクドライバ143とATAストレージドライバ145との間に入り、メインメモリ130上に確保された1次キャッシュデータ134とSSD120内の2次キャッシュデータの管理および制御を行う。メインメモリ130内には、キャッシュ設定データA131、2次キャッシュ管理情報A132、1次キャッシュ管理情報133が保存されている。
2次キャッシュ管理情報A132は、2次キャッシュデータ123がHDD110内に書き込まれる位置の情報を含む。また、1次キャッシュ管理情報133は、1次キャッシュデータ131がHDD110内に書き込まれる位置の情報を含む。
キャッシュ設定データA131および2次キャッシュ管理情報A132は、オペレーティングシステム112の起動時にSSD120からキャッシュ設定データB121および2次キャッシュ管理情報B122を読み込み、メインメモリ130上に展開されたデータである。オペレーティングシステム112の稼働中はメインメモリ130上でキャッシュ設定データA131および2次キャッシュ管理情報A132の更新および管理が行われる。オペレーティングシステム112のシャットダウン時に、メインメモリ内のキャッシュ設定データA131および2次キャッシュ管理情報A132がSSD120にキャッシュ設定データB121および2次キャッシュ管理情報B122として書き出される。
1次キャッシュデータ134および1次キャッシュ管理情報133は、オペレーティングシステム112の稼働中のみ有効である。オペレーティングシステム112のシャットダウン時にダーティーデータを2次キャッシュやHDDに書き出した後に破棄される。
キャッシュドライバ144は、汎用ディスクドライバ143からのリード・ライト要求に対して、1次キャッシュデータ134、2次キャッシュデータ123、HDD110のそれぞれ、もしくは、複数に対して適切にコマンドを発行し、ディスクシステムの性能の向上を図っている。
オペレーティングシステムがクラッシュし、メインメモリ130のダンプデータをHDD110に書き込む場合は、オペレーティングシステムのカーネル空間内のカーネルダンプ書込部151が処理を行う。カーネルダンプ書込部151は、HDD110内のダンプデータ書込領域113にダンプデータを書き込むために、ダンプ用ATAストレージドライバ153にライトコマンドを送信する。ダンプ用ATAストレージドライバ153は、ATAストレージコントローラ100経由で、HDD110にダンプデータを書き込む。なお、ダンプ用ATAストレージドライバ153は、通常稼動時のATAストレージドライバ145と同じものであるが、カーネル内に別の実体として用意されており、ATAストレージドライバ145自身がクラッシュの原因である場合でも、メインメモリ130ダンプをHDD110に記録することができるようになっている。
ダンプキャッシュドライバ152は、クラッシュ時にメインメモリ130ダンプを書き込むカーネルダンプ書込部151とダンプ用ATAストレージドライバ153との間に入りキャッシュデータの書き込みを行う。まず、ダンプキャッシュドライバ152は、カーネルダンプ書込部151から受け取ったダンプデータを書き込む処理を行う。これは、2次キャッシュ管理情報132、1次キャッシュ管理情報133に、ダンプデータ書込領域113のデータが存在した場合、その情報を削除するためである。
ダンプデータが書き込まれた後、ダンプキャッシュドライバ152は、キャッシュデータをHDD110内のキャッシュデータ書込領域114に書き込む処理を行う。キャッシュデータ書込領域114内には、通常稼働時に動作しているキャッシュドライバ144がメインメモリ130上に確保しているキャッシュ設定データA131、2次キャッシュ管理情報132、1次キャッシュデータ134、および1次キャッシュ管理情報134が書き込まれる。
カーネルダンプ書込部151とダンプ用ATAストレージドライバ153は、ダンプデータ書込領域113が存在するHDD110のみへのアクセスしか想定されていないため、ダンプキャッシュドライバ152はSSD120にアクセスすることができない。そこで、キャッシュデータ書込領域114は、ダンプデータ書込領域113が確保されているHDD110上に確保される。
クラッシュダンプ後のオペレーティングシステム起動前に、拡張ローダ163が正常シャットダウンができなかったことを検出した時に修復ツール661が起動される。修復ツール661は、HDD110内のキャッシュデータ書込領域114およびSSD120内の2次キャッシュデータ123からキャッシュ対象領域111のデータを復元する。
図2のフローチャートを参照してシステム起動からOS起動までの処理を説明する。なお、図2に示すフローチャートでは、通常の処理の部分を一部省いている。
システムBIOSは、オペレーティングシステム112を起動する前に、拡張ローダ163を起動する(ステップ201)。拡張ローダ163は、SSD120内に格納されているキャッシュ設定データB121からクラッシュが発生したかを判定する(ステップ202)。クラッシュ発生後の起動と判定した場合(ステップ202のYes)、拡張ローダ163は、修復ツール161を起動する。クラッシュ発生後の起動ではなく正常時の起動であると判定した場合(ステップ202のNo)、拡張ローダ163は、OSブートローダ162を起動する。OSブートローダ162は、オペレーティングシステム112の起動に必要なデータを読み込んだり/書き込んだりするたびに、拡張ローダ163はそのデータがSSD120内の2次キャッシュデータ123内に存在するかを判定する。存在する場合、拡張ローダ163は、SSD120内の2次キャッシュデータ123からデータを読み書きし、無い場合にはHDD110からデータを読み書きする。以上で、システム起動からOS起動までの処理の説明を終了する。
次に、図3のフローチャートを参照して、オペレーティングシステム112起動時の処理の手順を説明する。なお、図3に示すフローチャートでは、通常の処理の部分を一部省いている。
ドライバはハードウェアに近いレイヤから起動される。ATAストレージドライバ145が起動された後(ステップ301)、キャッシュドライバ144が起動される。
キャッシュドライバ144の起動時、キャッシュドライバ144は、SSD120およびHDD110を認識する(ステップ302)。そして、キャッシュドライバ144は、SSD120からキャッシュ設定データB121、2次キャッシュ管理情報B132をそれぞれメインメモリ130内に展開する(ステップ303)。
次に、キャッシュドライバ144は、メインメモリ130内に1次キャッシュデータ134が記録される領域を確保した後、1次キャッシュ管理情報134を作成する(ステップ304)。その後、キャッシュドライバ144は、ダンプ用ATAストレージドライバ153のエントリーポイントを検索し、ダンプキャッシュドライバ152に書き換える(ステップ305)。元のエントリーポイントは記憶しておき、クラッシュ時に使用する。キャッシュドライバの起動後、汎用ディスクドライバ143が起動される(ステップ306)。以上でオペレーティングシステム112起動時の処理の手順の説明を終了する。
次に、図4のフローチャートを参照してクラッシュ時の処理の手順を説明する。システムがクラッシュするとカーネルダンプ書込部151およびダンプキャッシュドライバ152が順に起動する(ステップ401)。従来、ダンプキャッシュドライバ152ではなく、ダンプ用ATAストレージドライバ153が起動するが、本システムでは、ダンプ用ATAストレージドライバ153のエントリーポイントをダンプキャッシュドライバ152に書き換えているため、ダンプキャッシュドライバ152が起動する。
ダンプキャッシュドライバ152は、保存していたエントリーポイントを使用し、ダンプ用ATAストレージドライバ153を起動する(ステップ402)。ダンプ用ATAストレージドライバ153からダンプキャッシュドライバ152に関数ポインタが渡される(ステップ403)。関数ポインタには、ダンプデバイスをオープンする関数、ダンプデータを書き込む関数、及び、ダンプデバイスをクローズする関数等が含まれる。ダンプキャッシュドライバ152は、それらの関数ポインタを記憶し(ステップ404)、対応する自分自身の関数ポインタをカーネルダンプ書込部151に渡す(ステップ405)。ここで、ダンプデバイスとは、ダンプ書き込み領域が存在するデバイスであり、HDD110を指す。
次に、カーネルダンプ書込部151は、ダンプデバイスをオープンする関数をコールする(ステップ406)。ダンプキャッシュドライバ152は、対応するダンプ用ATAストレージドライバ153の関数をコールする(ステップ407)。ダンプデバイスのオープンが完了すると、ダンプデータの書き込みが始まる。
カーネルダンプ書込部151が、ダンプキャッシュドライバ152の書き込みルーチンをコールすると(ステップ408)、ダンプキャッシュドライバ152はダンプ用ATAストレージドライバ153の書き込みルーチンをコールする(ステップ409)。それが終了すると、ダンプキャッシュドライバ152は、メインメモリ130内に1次キャッシュ管理情報134及び、2次キャッシュ管理情報A132に対応するデータが存在するか確認する。データが存在する場合、カーネルダンプ書込部151、それらのデータを無効にする(ステップ410)。カーネルダンプ書込部151は、この処理をダンプデータをすべてHDD110に書き込むまで繰り返す。
ダンプデータの書き込みが完了すると、カーネルダンプ書込部151は、ダンプデバイスのクローズを行うために、ダンプキャッシュドライバ152にデバイスクローズ関数をコールする(ステップ411)。ダンプキャッシュドライバ152は、デバイスクローズ関数がコールされると、まず、書き込むキャッシュデータを生成する(ステップ412)。書き込むデータはメインメモリ130上に存在するキャッシュ設定データA131、1次キャッシュデータ134、1次キャッシュ管理情報134、および2次キャッシュ管理情報132であるが、例えばポインタで位置を表しているデータ等がある場合は、先頭からの相対位置等に変換する必要がある。
次に、ダンプキャッシュドライバ152は、ダンプ用ATAストレージドライバ153の書き込み関数を使用して、キャッシュデータをHDD110上にあるキャッシュデータ書込領域114に書き込む(ステップ413)。すべてのキャッシュデータを書き込むまで、繰り返しダンプ用ATAストレージドライバ153の書き込み関数をコールする。書き込みが完了したら、ダンプ用ATAストレージドライバ153にクローズ関数をコールしてダンプデータの書き込みを完了する(ステップ414)。以上で、クラッシュ時の処理の手順を説明を終了する。
次に、図5のフローチャートを参照して、修復ツールによる処理の手順を説明する。図2に示すフローチャートにおいて、拡張ローダ163がクラッシュしたと判断した場合(ステップ202のYes)、修復ツール161が起動される(ステップ205)。修復ツール161は、HDD110に書き込まれたキャッシュデータから、SSD120内のキャッシュ設定データB121、2次キャッシュ管理情報B132、及び、2次キャッシュデータ123を復旧する処理を行う。
修復ツール161は起動すると、HDD110のキャッシュデータ書込領域114からダンプキャッシュドライバ152によって書き込まれたキャッシュデータを読み込む(ステップ501)。次に、修復ツール161は、キャッシュデータ書込領域114からから読み込まれた1次キャッシュ管理情報134から1次キャッシュデータ134を対応するHDD110上のキャッシュ対象領域111に書き込む(ステップ502)。さらに、修復ツール161は、キャッシュデータ書込領域114から読み込まれた2次キャッシュ管理情報A132およびキャッシュ設定データA131を、SSD120内に2次キャッシュ管理情報B132およびキャッシュ設定データB121として書き込む(ステップ503)。キャッシュ設定データB121は予め決められた位置に書き込まれる。そして、修復ツール161は、キャッシュデータ書込領域114のデータを削除する(ステップ504)。最後に修復ツール161はシステムをリブートさせる。
以上の処理で、システムクラッシュが発生しても、キャッシュされてHDD110に書き込まれていないデータを失ってしまうことを防ぐことが可能になる。
(第2の実施形態)
ソフトウェアRAIDにおいても、正常にオペレーティングシステムをシャットダウンできないことは、データの消失を発生させる重大な問題となりうる。
例えば、3台のHDDで構成したRAID5のアレイにおいて、あるデータD00をD00’に更新する場合を考える。ここで、データD00はHDD0上に存在し、データD01はHDD1に存在し、データD00,D01に対応するパリティP0はHDD2に存在するものとする。なお、P0=D00xorD01(xorは排他的論理和を表す)が成り立つ。RAID5でのデータの更新は、対応するパリティの更新を伴うものである。すなわち、D00に対応するパリティP0は、D00’に対応するパリティP0’(=D00’xorD01)に更新される必要がある。
データD00’およびパリティP0’を書き込むコマンドを発行し、パリティP0’の書き込みのみが完了した状態で、システムがクラッシュしてしまうと、データD00がでーたD00’に更新されていないため、データとパリティとの整合が取れていない状態となる。ここでHDD1が故障すると、P0’xorD00≠D01であり、正しいデータを復旧できず、データ消失となる。以下に、システムクラッシュ時には上記問題を回避するシステムについて説明する。
図6は、第2の実施形態に係わるソフトウェアで実現されるRAIDサブシステムをもつ情報処理装置のストレージに対するアクセス経路を示すブロック図である。この情報処理装置は、パーソナルコンピュータやサーバ等のコンピュータによって実現される。
オペレーティングシステム112がインストールされているHDD110は、第1ATAストレージコントローラ600Aに接続されている。HDD110には、ダンプデータ書込領域113とRAIDデータ書き込み領域が存在する。第1ATAストレージコントローラ600Aは、第1ATAストレージドライバ645Aによって制御されている。第2ATAストレージコントローラ600Bには、3台のHDD620A,620B,620Cが接続されている。第2ATAストレージコントローラ600Bを制御する第2ATAストレージドライバ645Bの上位に位置するRAIDドライバ644によって、3台のHDD620A,620B,620Cは、RAID5のアレイとして制御される。それぞれのHDD620A,620B,620CにはそれぞれRAID設定情報621A,621B,621Cが記録されている。RAIDドライバ644は、起動時にRAID設定情報621A,621B,621Cを元にアレイを構築する。なお、RAID設定情報621A,621B,621Cは、HDD620A,620B,620Cの設定された位置に書き込まれている。
RAIDドライバ644は、メインメモリ630上にRAID設定情報631、コマンド受付情報632、コマンド発行情報633、およびパリティ計算データ634を記録する。RAIDドライバ644は、RAID設定情報631、コマンド受付情報632、コマンド発行情報633、およびパリティ計算データ634を使用してRAIDの機能を実現する。
アプリケーション141がファイルに対してリード・ライトを行うと、ファイルシステム142が汎用ディスクドライバ143を経由して、RAIDドライバ644や第1ATAストレージドライバ645Aへ対応するコマンドを発行する。クラッシュが発生すると、カーネルダンプ書込部151が起動するが、図1を用いて説明した場合と同様に、ダンプ用ATAストレージドライバ153とカーネルダンプ書込部151との間にダンプRAIDドライバ652が入ることで、RAID設定情報631、コマンド受付情報632、コマンド発行情報633、およびパリティ計算データ634をHDD110内のRAIDデータ書込領域614に書き込むことができる。
図7は、OS起動前のストレージに対するアクセス経路を記述している。拡張ローダ663がRAIDの機能を実現する。OSブートローダ162の要求がRAIDに対するものである場合、拡張ローダ663は、第2ATAストレージコントローラ600Bに接続されているHDD620A,620B,620Cに適切なコマンドを発行する。Int13hルーチン664A,664Bはネストされてイル。Int13hルーチン664A,664Bは、自分の配下のHDDに対するコマンドであると認識した場合に、処理を行う。
また、拡張ローダ663がクラッシュ後の起動であると判断した場合には、修復ツール661が起動される。修復ツール661は、RAIDデータ書込領域614から、RAID設定情報、コマンド受付情報、コマンド発行情報、及び、パリティ計算データを読み込む。そして、処理中だったコマンドを検出し、正しいデータを書き込んだ後、RAIDデータ書き込み領域からデータを削除し、システムをリブートする。
以上説明したように、HDD620A,620B,620Cに書き込まれていないパリティがメインメモリ630内にある状態でオペレーティングシステムがクラッシュしても、メインメモリ630内のデータをHDD620A,620B,620CをHDD620A,620B,620Cの設定された位置に復旧することができる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
100…ATAストレージコントローラ,110…ハードディスクドライブ(HDD),111…キャッシュ対象領域,112…オペレーティングシステム,113…ダンプデータ書込領域,114…キャッシュデータ書込領域,120…SSD,123…2次キャッシュデータ,130…メインメモリ,131…キャッシュ設定データA,132…2次キャッシュ管理情報A,133…1次キャッシュ管理情報,134…1次キャッシュデータ,141…アプリケーション,142…ファイルシステム,143…汎用ディスクドライバ,144…キャッシュドライバ,145…ATAストレージドライバ,151…カーネルダンプ書込部,152…ダンプキャッシュドライバ,153…ATAストレージドライバ,161…修復ツール。

Claims (16)

  1. メインメモリと、
    オペレーティングシステムを実行するためのファイルが格納される第1の記憶装置と、
    第2の記憶装置と、
    第2の記憶装置に書き込まれるデータの前記第2の記憶装置内の書き込まれる位置を示し、前記第2の記憶装置内の設定された位置に書き込まれる書込位置情報を前記メインメモリに書き込む第1書き込み手段と、
    前記オペレーティングシステムのクラッシュ時に、前記メインメモリ内の前記書込位置情報を前記第1の記憶装置内に設定された書込領域に書き込む第2書き込み手段と、
    前記クラッシュ後の起動時に、前記第1の記憶装置内の前記データを前記第1の記憶装置内の前記書込位置情報に基づいて第2の記憶装置内に書き込む第3書き込み手段と、
    を具備する情報処理装置。
  2. 前記第3書き込み手段は、前記クラッシュ後の起動時に、前記書込位置情報を第2の記憶装置内の設定された位置に書き込む
    請求項1に記載の情報処理装置。
  3. 第1書き込み手段は、前記メインメモリおよび前記第2の記憶装置を前記第1の記憶装置に対するアクセスのキャッシュメモリとして利用するキャッシュ手段を含み、
    前記キャッシュ手段は、前記メインメモリを前記第2記憶装置より高位のキャッシュとして利用し、前記メインメモリに第1キャッシュデータをキャッシュし、前記第1キャッシュデータの前記第1の記憶装置内の書き込み位置を示す情報を含む第1キャッシュ管理情報を記録し、前記第2の記憶装置に第2キャッシュデータをキャッシュし、前記第2キャッシュデータの前記第1の記憶装置内の書き込み位置を示す情報を含む第2キャッシュ管理情報を前記メインメモリおよび前記第2の記憶装置に書き込み、
    前記第2書き込み手段は、前記オペレーティングシステムのクラッシュ時に、前記メインメモリ内の前記第1キャッシュデータ、前記第1キャッシュ管理情報、および前記第2キャッシュ管理情報を前記第1の記憶装置内のキャッシュデータ書込領域に書き込み、
    前記第3書き込み手段は、前記クラッシュ後の起動時に、前記第1の記憶装置内の前記第1キャッシュデータを前記第1の記憶装置内の前記第1キャッシュ管理情報に基づいて前記第1の記憶装置に書き込み、前記第2キャッシュ管理情報を前記第2の記憶装置に書き込む、
    請求項1に記載の情報処理装置。
  4. 前記オペレーティングシステムのクラッシュ時に、前記メインメモリのダンプデータを前記第1の記憶装置に書き込むダンプデータ書込手段を更に具備する
    請求項3に記載の情報処理装置。
  5. 前記キャッシュ手段は、前記メインメモリおよび前記第2の記憶装置をキャッシュメモリとして用いるための設定を有するキャッシュ設定情報前記メインメモリに記録し、
    前記第1書き込み手段は、前記メインメモリ内の前記キャッシュ設定情報を前記キャッシュデータ書込領域内に書き込み、
    前記第2書き込み手段は、前記キャッシュデータ書込領域内の前記キャッシュ設定情報を前記第2の記憶装置に書き込む、
    請求項3に記載の情報処理装置。
  6. 前記第1書き込み手段および前記第2書き込み手段は、プロセッサによって実行されるソフトウェアである
    請求項3に記載の情報処理装置。
  7. 前記第1の記憶装置はHDD(Hard Disk Drive)によって構成され、前記第2の記憶装置はSSD(Solid State Drive)によって構成される
    請求項3に記載の情報処理装置。
  8. 前記第2の記憶装置は複数の第3の記憶装置を有し、
    前記第1書き込み手段は、前記複数の第3の記憶装置の内の一部の第4の記憶装置にデータを分散して書き込むと共に、分散して書き込まれたデータから生成される冗長コードを前記第4の記憶装置とは異なる前記複数の第3の記憶装置の内の第5の記憶装置に書き込むデータ冗長化手段であって、前記冗長コードを前記メインメモリ内に生成し、前記冗長コードの前記第5の記憶装置内の書き込み位置を示す情報を含む設定情報を前記メインメモリ内に格納するデータ冗長化手段を有し、
    前記第2書き込み手段は、前記オペレーティングシステムのクラッシュ時に、前記メインメモリ内の前記冗長化コードおよび前記設定情報を前記第1の記憶装置内のデータ書込領域に書き込み、
    前記第3書き込み手段は、前記クラッシュ後の起動時に、前記第1の記憶装置内の前記冗長コードを前記複数の第3の記憶装置内の前記設定情報に基づいて前記第の記憶装置に書き込み、前記第1の記憶装置内の設定情報を前記複数の第の記憶装置に書き込む、
    請求項1に記載の情報処理装置。
  9. 前記データ冗長化手段、前記第1書き込み手段、第2書き込み手段、および前記第3書き込み手段は、プロセッサによって実行されるソフトウェアである
    請求項8に記載の情報処理装置。
  10. メインメモリと、オペレーティングシステムを実行するためのファイルが格納される第1の記憶装置と、第2の記憶装置とを有する情報処理装置のデータ復旧方法であって、
    第2の記憶装置に書き込まれるデータを前記メインメモリに書き込み、
    前記データの前記第2の記憶装置内の書き込まれる位置を示す書込位置情報を前記メインメモリに書き込み、
    前記オペレーティングシステムのクラッシュ時に、前記メインメモリ内の前記データおよび前記書込位置情報を前記第1の記憶装置内の書込領域に書き込み、
    前記クラッシュ後の起動時に、前記第1の記憶装置内の前記データを前記第1の記憶装置内の前記書込位置情報に基づいて前記第2の記憶装置に書き込む
    データ復旧方法。
  11. 前記クラッシュ後の起動時に、前記書込位置情報を第2の記憶装置内の設定された位置に書き込む
    請求項10に記載のデータ復旧方法。
  12. 前記メインメモリおよび前記第2の記憶装置を前記第1の記憶装置に対するアクセスのキャッシュメモリとして利用し、
    前記メインメモリを前記第2記憶装置より高位のキャッシュとして利用し、
    前記メインメモリに第1キャッシュデータをキャッシュし、
    前記第1キャッシュデータの前記第1の記憶装置内の書き込み位置を示す情報を含む第1キャッシュ管理情報を記録し、
    前記第2の記憶装置に第2キャッシュデータをキャッシュし、
    前記第2キャッシュデータの前記第1の記憶装置内の書き込み位置を示す情報を含む第2キャッシュ管理情報を前記メインメモリおよび前記第2の記憶装置に書き込み、
    前記オペレーティングシステムのクラッシュ時に、前記メインメモリ内の前記第1キャッシュデータ、前記第1キャッシュ管理情報、および前記第2キャッシュ管理情報を前記第1の記憶装置内のキャッシュデータ書込領域に書き込み、
    前記クラッシュ後の起動時に、前記第1の記憶装置内の前記第1キャッシュデータを前記第1の記憶装置内の前記第1キャッシュ管理情報に基づいて前記第1の記憶装置に書き込み、前記第2キャッシュ管理情報を前記第2の記憶装置に書き込む、
    請求項10に記載のデータ復旧方法。
  13. 前記オペレーティングシステムのクラッシュ時に、前記メインメモリのダンプデータを前記第1の記憶装置に書き込むダンプデータ書込手段を更に具備する
    請求項12に記載のデータ復旧方法。
  14. 前記キャッシュ手段は、前記メインメモリおよび前記第2の記憶装置をキャッシュメモリとして用いるための設定を有するキャッシュ設定情報前記メインメモリに記録し、
    前記第1書き込み手段は、前記メインメモリ内の前記キャッシュ設定情報を前記キャッシュデータ書込領域内に書き込み、
    前記第2書き込み手段は、前記キャッシュデータ書込領域内の前記キャッシュ設定情報を前記第2の記憶装置に書き込む、
    請求項12に記載のデータ復旧方法。
  15. 前記第1の記憶装置はHDD(Hard Disk Drive)によって構成され、前記第2の記憶装置はSSD(Solid State Drive)によって構成される
    請求項12に記載のデータ復旧方法。
  16. 前記第2の記憶装置は複数の第3の記憶装置を有し、
    前記複数の第3の記憶装置の内の一部の第4の記憶装置にデータを分散して書き込み、
    分散して書き込まれたデータから生成される冗長コードを前記第4の記憶装置とは異なる前記複数の第3の記憶装置の内の第5の記憶装置に書き込み、
    前記冗長コードを前記メインメモリ内に生成し、
    前記冗長コードの前記第5の記憶装置内の書き込み位置を示す情報を含む設定情報を前記メインメモリ内に格納し、
    前記オペレーティングシステムのクラッシュ時に、前記メインメモリ内の前記冗長化コードおよび前記設定情報を前記第1の記憶装置内のデータ書込領域に書き込み、
    前記クラッシュ後の起動時に、前記第1の記憶装置内の前記冗長コードを前記複数の第3の記憶装置内の前記設定情報に基づいて前記第の記憶装置に書き込み、
    前記第1の記憶装置内の設定情報を前記複数の第の記憶装置に書き込む、
    請求項10に記載のデータ復旧方法。
JP2010150344A 2010-06-30 2010-06-30 情報処理装置およびデータの復旧方法 Expired - Fee Related JP4945663B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010150344A JP4945663B2 (ja) 2010-06-30 2010-06-30 情報処理装置およびデータの復旧方法
US13/165,427 US8335901B2 (en) 2010-06-30 2011-06-21 Information processing apparatus and data restoration method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010150344A JP4945663B2 (ja) 2010-06-30 2010-06-30 情報処理装置およびデータの復旧方法

Publications (2)

Publication Number Publication Date
JP2012014435A JP2012014435A (ja) 2012-01-19
JP4945663B2 true JP4945663B2 (ja) 2012-06-06

Family

ID=45400609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010150344A Expired - Fee Related JP4945663B2 (ja) 2010-06-30 2010-06-30 情報処理装置およびデータの復旧方法

Country Status (2)

Country Link
US (1) US8335901B2 (ja)
JP (1) JP4945663B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013222434A (ja) * 2012-04-19 2013-10-28 Nec Corp キャッシュ制御装置、キャッシュ制御方法、及びそのプログラム
JP6273678B2 (ja) * 2013-03-01 2018-02-07 日本電気株式会社 ストレージ装置
WO2014142337A1 (ja) * 2013-03-15 2014-09-18 日本電気株式会社 ストレージ装置と方法及びプログラム
US20150089118A1 (en) * 2013-09-20 2015-03-26 Sandisk Technologies Inc. Methods, systems, and computer readable media for partition and cache restore
US20150089102A1 (en) * 2013-09-23 2015-03-26 Lsi Corporation Solid state drives that cache boot data
KR101665041B1 (ko) * 2015-06-04 2016-10-11 주식회사 엔씨소프트 게임 서버의 종료 처리 방법 및 시스템
US10095589B2 (en) * 2015-06-09 2018-10-09 Acronis International Gmbh System and method for optimization of operating system restore

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0743676B2 (ja) * 1988-03-11 1995-05-15 株式会社日立製作所 バツクアツプデータダンプ制御方法及び装置
JPH03269747A (ja) * 1990-03-20 1991-12-02 Fujitsu Ltd 半導体ディスク装置
JPH04107725A (ja) * 1990-08-29 1992-04-09 Nec Corp データ退避復元方式
JPH0619729A (ja) * 1992-06-30 1994-01-28 Fujitsu Ltd 装置固有情報の退避・復元処理方式
JPH06214883A (ja) * 1993-01-19 1994-08-05 Nec Corp データ退避方式
JPH09244907A (ja) 1996-03-14 1997-09-19 Hitachi Ltd データ回復システム
JP3072048B2 (ja) 1996-03-19 2000-07-31 株式会社東芝 計算機システムおよび計算機システムのソフトウェア故障回復方法
JP3959870B2 (ja) * 1998-10-12 2007-08-15 株式会社日立製作所 ディスク内容障害回復方法及び計算装置
JP2001109584A (ja) 1999-10-12 2001-04-20 Toshiba Corp ディスクアレイ装置
JP2005062928A (ja) * 2003-08-11 2005-03-10 Hitachi Ltd 複数のサイトにリモートコピーを行うシステム
JP4802791B2 (ja) * 2006-03-20 2011-10-26 ソニー株式会社 データ記憶装置及びデータアクセス方法
JP2007310448A (ja) * 2006-05-16 2007-11-29 Hitachi Ltd 計算機システム、管理計算機、および、ストレージシステム管理方法

Also Published As

Publication number Publication date
US20120005413A1 (en) 2012-01-05
JP2012014435A (ja) 2012-01-19
US8335901B2 (en) 2012-12-18

Similar Documents

Publication Publication Date Title
JP4945663B2 (ja) 情報処理装置およびデータの復旧方法
US7370148B2 (en) Storage system, control method thereof, and program
JP6690891B2 (ja) データミラーリング制御装置及び方法
US7421535B2 (en) Method for demoting tracks from cache
JP4248510B2 (ja) 計算機システム、ディスク装置およびデータ更新制御方法
US10776267B2 (en) Mirrored byte addressable storage
US8751740B1 (en) Systems, methods, and computer readable media for performance optimization of storage allocation to virtual logical units
US7640412B2 (en) Techniques for improving the reliability of file systems
US9652164B2 (en) Solid-state mass storage device and method for processing forced unit access write commands
US8370563B2 (en) Non-volatile memory system and access method thereof utilizing a confirm mark when data has been successfully recorded therein
US20190324859A1 (en) Method and Apparatus for Restoring Data after Power Failure for An Open-Channel Solid State Drive
US20130339569A1 (en) Storage System and Method for Operating Thereof
US8074113B2 (en) System and method for data protection against power failure during sector remapping
WO2012140695A1 (en) Storage control apparatus and error correction method
US8862819B2 (en) Log structure array
US11487663B2 (en) Method of operating storage device, storage device performing the same and storage system including the same
US20160026408A1 (en) Storage device metadata synchronization
CN106469119B (zh) 一种基于nvdimm的数据写缓存方法及其装置
US20100191944A1 (en) Data storage apparatus
WO2018139223A1 (ja) 情報処理装置,制御プログラムおよび情報処理方法
JP2004213470A (ja) ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法
US20140059291A1 (en) Method for protecting storage device data integrity in an external operating environment
US11256435B2 (en) Method and apparatus for performing data-accessing management in a storage server
WO2015011835A1 (ja) コンピュータシステム
US20140059293A1 (en) Method for protecting a gpt cached disks data integrity in an external operating system environment

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111025

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111226

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

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

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

Free format text: PAYMENT UNTIL: 20150309

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees