説明

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

【課題】記憶装置に書き込まれていないデータがメモリ内にある状態でオペレーティングシステムがクラッシュしても、メモリ内のデータを記憶装置に復旧する。
【解決手段】情報処理装置は、メインメモリと、第1記憶装置と、第2記憶装置と、第1書込手段と、第2書込手段と、第3書込手段と、を具備する。第1記憶装置は、オペレーティングシステムを格納する。第1書込手段は、第2記憶装置に書き込まれるデータをメインメモリに書き込み、データの第2記憶装置内の書き込まれる位置を示す書き込み位置情報をメインメモリに書き込む。第2書込手段は、オペレーティングシステムのクラッシュ時に、メインメモリ内のデータおよび書き込み位置情報を第1記憶装置内の書込領域に書き込む。第3書込手段は、クラッシュ後の起動時に、第1記憶装置内のデータを第1記憶装置内の書き込み位置情報に基づいて第2記憶装置に書き込む。

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

【特許請求の範囲】
【請求項1】
メインメモリと、
オペレーティングシステムを実行するためのファイルが格納される第1の記憶装置と、
第2の記憶装置と、
第2の記憶装置に書き込まれるデータの前記第2の記憶装置内の書き込まれる位置を示し、前記第2の記憶装置内の設定された位置に書き込まれる書込位置情報を前記メインメモリに書き込む第1書き込み手段と、
前記オペレーティングシステムのクラッシュ時に、前記メインメモリ内の前記書込位置情報を前記第1の記憶装置内に設定された書込領域に書き込む第2書き込み手段と、
前記書込位置情報を第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の記憶装置内の前記冗長コードを前記第1の記憶装置内の前記設定情報に基づいて前記第4の記憶装置に書き込み、前記第1の記憶装置内の設定情報を前記複数の第2の記憶装置に書き込む、
請求項1に記載の情報処理装置。
【請求項9】
前記冗長化手段および前記書き込み手段は、プロセッサによって実行されるソフトウェアである
請求項8に記載の情報処理装置。
【請求項10】
メインメモリと、オペレーティングシステムを実行するためのファイルが格納される第1の記憶装置と、第2の記憶装置とを有する情報処理装置のデータ復旧方法であって、
第2の記憶装置に書き込まれるデータを前記メインメモリに書き込み、
前記データの前記第2の記憶装置内の書き込まれる位置を示す書き込み位置情報を前記メインメモリに書き込み、
前記オペレーティングシステムのクラッシュ時に、前記メインメモリ内の前記データおよび前記書き込み位置情報を前記第1の記憶装置内の書込領域に書き込み、
前記クラッシュ後の起動時に、前記第1の記憶装置内の前記データを前記第1の記憶装置内の前記書き込み位置情報に基づいて前記第2の記憶装置に書き込む
データ復旧方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−14435(P2012−14435A)
【公開日】平成24年1月19日(2012.1.19)
【国際特許分類】
【出願番号】特願2010−150344(P2010−150344)
【出願日】平成22年6月30日(2010.6.30)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】