(57)【要約】【課題】ファイルシステムの修復に必要となるバックアップ容量を削減する。【解決手段】情報処理装置のシステム起動時に、異常検知部101がファイルシステム110の不整合を検知すると、各バックアップ部102、103、104がファイルシステム110のバックアップデータ109を作成する。バックアップデータ109の作成終了後、修復部105がファイルシステム110の修復を行い、その後、再起動部106がシステムを再起動する。起動結果検知部107がシステム起動の失敗を検知すると、バックアップ復元部108がバックアップデータ109からファイルシステム110を復元する。バックアップデータ109は、ファイルシステム110の完全コピーでなく、修復部105での修復対象部分のみからなる。【選択図】  図1
2015152972.tif 000002
【特許請求の範囲】
【請求項１】
ファイルシステムにおける修復の必要性を検知する検知手段と、
前記ファイルシステムの修復の必要性が検知された場合に、該ファイルシステムの一部のバックアップを作成するバックアップ手段と、
前記バックアップの作成後に、前記ファイルシステムの修復を行う修復手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記ファイルシステムの修復後に、情報処理装置のシステムの再起動を行う再起動手段と、
前記システムの再起動が正常に行われなかった場合に、前記バックアップから前記ファイルシステムを復元する復元手段と、
を有することを特徴とする請求項1に記載の情報処理装置。
【請求項３】
前記ファイルシステムの一部は、前記修復手段での修復対象となる部分であることを特徴とする請求項1または2に記載の情報処理装置。
【請求項４】
前記バックアップ手段は、前記ファイルシステムのシステム情報、ディレクトリ情報、およびファイル情報から、前記バックアップを作成することを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項５】
前記ファイルシステムの一部は、前記ファイルシステムにおけるシステム情報およびファイル情報を示すメタデータ、並びにディレクトリに含まれるファイルの情報を示すディレクトリエントリであることを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。
【請求項６】
前記修復手段は、前記メタデータおよび前記ディレクトリエントリを修復対象とすることを特徴とする請求項5に記載の情報処理装置。
【請求項７】
前記システムはUNIX(登録商標)系のオペレーティングシステムであり、
前記修復手段は、fsckコマンドにより前記ファイルシステムの修復を行うことを特徴とする請求項6に記載の情報処理装置。
【請求項８】
前記ファイルシステムはext3形式であることを特徴とする請求項7に記載の情報処理装置。
【請求項９】
さらに、前記再起動手段によるシステムの再起動にかかる時間に基づき、該システムの再起動が正常に行われたか否かを検知する起動結果検知手段を有することを特徴とする請求項2に記載の情報処理装置。
【請求項１０】
前記検知手段は、前記ファイルシステムにおけるメタデータの不整合を検知することを特徴とする請求項1乃至9のいずれか1項に記載の情報処理装置。
【請求項１１】
前記検知手段は、情報処理装置のシステム起動時に前記検知を行うことを特徴とする請求項1乃至10のいずれか1項に記載の情報処理装置。
【請求項１２】
検知手段、バックアップ手段、修復手段を有する情報処理装置の制御方法であって、
前記検知手段が、ファイルシステムにおける修復の必要性を検知し、
前記バックアップ手段が、前記ファイルシステムの修復の必要性が検知された場合に、該ファイルシステムの一部のバックアップを作成し、
前記修復手段が、前記バックアップの作成終了後に、前記ファイルシステムの修復を行うことを特徴とする情報処理装置の制御方法。
【請求項１３】
前記情報処理装置はさらに、再起動手段および復元手段を有し、
前記再起動手段が、前記ファイルシステムの修復後に、情報処理装置のシステムの再起動を行い、
前記復元手段が、前記システムの再起動が正常に行われなかった場合に、前記バックアップから前記ファイルシステムを復元することを特徴とする請求項12に記載の情報処理装置の制御方法。
【請求項１４】
コンピュータ装置で実行されることにより、該コンピュータ装置を請求項1乃至11のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項１５】
請求項13または14に記載のプログラムを記憶したことを特徴とするコンピュータ可読な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はファイルシステムの修復を行う情報処理装置およびその制御方法に関する。
【背景技術】
【０００２】
不揮発性メモリを含む情報処理装置において、不揮発性メモリへの書き込み処理中に電源遮断などによって書き込み処理が中断されると、ファイルシステム内の整合性が崩れる場合がある。
【０００３】
ファイルシステムとは、情報処理装置上で動作するオペレーティングシステム(OS)が提供する機能の一つであり、情報処理装置が保持するデータを管理するためのものである。ファイルシステムはデータのみでなく、不揮発性メモリ上でのデータ保存位置情報、ファイル名、作成・変更時間といった、データを管理するための情報(メタデータ)も保持している。
【０００４】
情報処理装置の電源遮断や故障等により、ファイルシステムへの書き込み処理が途中で中断され、メタデータに記載されているデータ保存位置情報と実際のデータ保存位置の整合性等が崩れると、以降はそのデータへのアクセスが不可能となることがある。このような不具合の発生を防ぐために、ジャーナリングと呼ばれる機構を搭載したファイルシステム(ジャーナリングファイルシステム)が存在する。
【０００５】
ジャーナリングファイルシステムでは、実データの書き込み前にメタデータをジャーナルと呼ばれる領域に書き込んでおく。これにより、データの不整合が発生しても、ジャーナルを参照して不整合が発生する前のメタデータに強制的に戻すことにより、ファイルシステムの整合性を保ち、実データへのアクセスが不可能となる事態を防ぐことが出来る(例えば、特許文献1参照)。
【０００６】
しかし、ジャーナリングファイルシステムであっても、不揮発性メモリの故障や装置のシステム暴走によるメタデータ書き換え等に起因する不整合を防ぐことは出来ないため、ファイルシステムを修復して整合性を保つための手段が必要となる。そのために、ファイルシステム上に不整合が発生した場合の修復方法が提供されている(例えば、特許文献2参照)。
【０００７】
Linux(登録商標)でも同等の機能を実現するために、ファイルシステムの不整合が発生した箇所を修正する、fsckと呼ばれるコマンドが用意されている。fsckには対話モードと一括適用モードが存在しており、対話モードの場合は、不整合発生箇所ごとに整合性をとるか否かをユーザに尋ね、一括適用モードの場合は全ての不整合発生箇所の修正を試みる。なお、fsckによる修正ができなかった場合、ファイルシステムの整合性を保つためにデータが削除され、正常なデータが破壊されてしまう可能性があるため、fsck実施前にはファイルシステムのバックアップを取っておくことが推奨されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開2005-149248号公報
【特許文献２】特開平1-270156号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述したように、ファイルシステムを修復前の状態に戻すには、ファイルシステムのバックアップを保存しておく必要がある。しかしながら上記従来の技術では、対象ファイルシステムの全領域を保存しなければならないため、必要なバックアップ容量が大きくなり、かつバックアップ時間も長くなってしまう。
【００１０】
本発明は上述した問題を解決するためになされたものであり、ファイルシステムの修復に必要となるバックアップ容量を削減することを目的とする。
【課題を解決するための手段】
【００１１】
上記課題を解決するための一手段として、本発明の情報処理装置は以下の構成を備える。すなわち、ファイルシステムにおける修復の必要性を検知する検知手段と、前記ファイルシステムの修復の必要性が検知された場合に、該ファイルシステムの一部のバックアップを作成するバックアップ手段と、前記バックアップの作成終了後に、前記ファイルシステムの修復を行う修復手段と、を有することを特徴とする。
【００１２】
さらに詳細には、前記ファイルシステムの修復後に、情報処理装置のシステムの再起動を行う再起動手段と、前記システムの再起動が正常に行われなかった場合に、前記バックアップから前記ファイルシステムを復元する復元手段と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ファイルシステムの修復に必要となるバックアップ容量を削減することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係る情報処理装置の構成を示す概略図
【図２】情報処理装置におけるハードウェア構成例を示す図
【図３】ファイルシステムの修復処理を示すフローチャート
【図４】ファイルシステムの構成を示す図
【図５】ファイルシステム修復処理を示すフローチャート
【図６】修正前のファイルシステムの構成例を示す図
【図７】ファイルシステムバックアップデータの構成例を示す図
【発明を実施するための形態】
【００１５】
以下、本発明にかかる実施形態について、図面を参照して説明する。なお、以下の実施形態は特許請求の範囲に関わる本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１６】
＜第1実施形態＞
●装置構成
図1は、本発明のファイルシステム修復を行う情報処理装置において、特にファイルシステム修復にかかる基本的な機能構成を示す。同図において、100は本発明を実装した情報処理装置を表す。
【００１７】
情報処理装置100において、101はファイルシステム110に修復の必要性があるか否かを確認する異常検知部である。異常検知部101は、電源投入等によるシステム起動時に、ファイルシステム110に不整合が発生しているかを調査する。そして不整合が発生した場合に修復の必要性があると判断し、その旨をファイルシステム情報バックアップ部102、ディレクトリ情報バックアップ部103、ファイル情報バックアップ部104のそれぞれに通知する。
【００１８】
102は、ファイルシステム110のシステム情報を安全なメモリ上に保存するファイルシステム情報バックアップ部である。103はファイルシステム110に存在するディレクトリ情報を安全なメモリ上に保存するディレクトリ情報バックアップ部である。104は、ファイルシステム110に存在するファイル情報を安全なメモリ上に保存するファイル情報バックアップ部である。これら102、103、104の各バックアップ部は、異常検知部101からファイルシステム110における修復の必要性を通知された際に動作し、ファイルシステム110から対象の情報を取得してバックアップデータ109を生成する。そしてバックアップデータ109の作成後に、修復部105に対してバックアップ処理が終了した旨を通知する。
【００１９】
105はファイルシステム110で発生している不整合の修復を試みる修復部であり、修復処理の終了後、再起動部106に修復処理が終了した旨を通知する。106は情報処理装置100におけるシステムの再起動を行う再起動部であり、システムの再起動後、起動結果検知部107に再起動処理が終了した旨を通知する。107はシステムが正常に起動し、動作しているかを確認する起動結果検知部であり、システムの起動失敗が検知されると、その旨をバックアップ復元部108に通知する。108はバックアップデータ109を用いて、ファイルシステム110を修復部105による修復処理以前の状態に復元するバックアップ復元部である。
【００２０】
以上が本実施形態の情報処理装置におけるファイルシステム修復にかかる基本的な構成である。以下、本実施形態におけるシステム構成およびファイルシステムの復元処理手順について、システムがUNIX(登録商標)系のオペレーティングシステム(OS)であるLinux(登録商標)、ファイルシステムがext3形式である場合を想定して具体的に説明する。
【００２１】
図2は、本実施形態の情報処理装置におけるハードウェア構成の一部を示すブロック図である。同図において、CPU201は、OSやプログラムを実行することで情報処理装置200の全体を制御する。なお、本実施形態におけるファイルシステムの復元処理は、CPU201でプログラムを実行することによって提供される。揮発性メモリ202は、プログラムやデータを一時記憶するランダムアクセスメモリ(RAM)であり、システムメモリとも称する。不揮発性メモリ203は、ハードディスクドライブ(HDD)のような、電源供給の遮断後もデータやプログラムを記録しておくことが可能な(不揮発な)記憶媒体である。本実施形態のファイルシステム110およびバックアップデータ109は不揮発性メモリ203に保持される。
【００２２】
●ファイルシステム修復処理概要
以下、システムの起動時(または再起動時)におけるファイルシステム110の修復処理について、図3のフローチャートを用いて説明する。
【００２３】
まずS300でシステムが起動されると、S301で異常検知部101が、ファイルシステム110に修復の必要性があるか否かを確認する。具体的には、ファイルシステム110のメタデータ(ファイル管理情報)に不整合が発生しているかを確認し、不整合が発生していなければそのまま処理を終了する。不整合が発生していれば、S302でファイルシステム情報バックアップ部102、ディレクトリ情報バックアップ部103、ファイル情報バックアップ部104が、ファイルシステム110のバックアップ処理を行う。ファイルシステム110の不整合が発覚した場合、従来であれば当該ファイルシステム110の完全なコピーをバックアップとして保存していたが、本実施形態では、修復処理の対象となる部分のみをバックアップデータ109として保存することを特徴とする。このバックアップ処理の詳細については後述する。
【００２４】
バックアップの作成終了後、S303で修復部105が、ファイルシステム110の不整合の修復をfsckコマンドを用いて行う。なおfsckコマンドによる修復処理の詳細については後述する。
【００２５】
ファイルシステム110の修復後、S304で再起動部106がシステムの再起動を行い。S305で起動結果検知部107が、システムが正常に起動できたか否かを確認する。具体的には、システムの起動開始時または再起動開始時にウォッチドックタイマをセットし、システムの正常な起動が確認できた時にウォッチドックタイマを解除する。したがって、システムが正常に起動できない場合にはウォッチドックタイマが解除されず、所定時間の経過後にタイムアップとなる。システムが正常に起動できればそのまま図3の処理を終了するが、正常起動できなかった場合にはS306に進み、ファイルシステム110のバックアップ復元処理を行う。
【００２６】
S306ではバックアップ復元部108が、S302で保存したバックアップデータ109を用いてファイルシステム110をS303による修復処理前の状態に戻す。この復元は、従来であれば修復が施されたファイルシステムを、バックアップとして保存されたファイルシステムで完全に置き換えることで実現した。本実施形態ではファイルシステム110の復元を、バックアップとして保存したメタデータをファイルシステム110上の適切な箇所に戻すことのみによって行う。このバックアップ復元処理により、ファイルシステム110がS302での修復処理によって何らかの変更が加えられていた場合であっても、該修復前の状態に確実に戻すことができる。
【００２７】
なお、S301およびS305での各検知処理は、OSが起動する前段階、例えばブートローダの起動後に行われる。ただし、これらの検知処理をOSに組み込むことも可能である。
【００２８】
また、S306でファイルシステムが復元された後に、ファイルシステムに発生した障害内容の詳細な調査を行っても良いし、他の修復処理を試みても良い。また、ファイルシステムの異常はそのままにシステムを起動させても良い。
【００２９】
●ext3ファイルシステム
ここで、本実施形態において不揮発性メモリ203にファイルシステム110として保持・利用されるext3ファイルシステムの構造について、図4を用いて説明する。同図において、400はブートブロックであり、システムを起動する際に必要となるデータを保持する。401、402は、ext3ファイルシステムを構成する複数のブロックグループである。
【００３０】
次に、N番目のブロックグループ402(以下、単にブロックグループと称する)の詳細構成について説明する。スーパーブロック500はブロックグループ内に1ブロックのみ存在し、ファイルシステムの構成に関する様々な情報を表す。1つのファイルシステムは1つのスーパーブロックを保持し、すなわち全てのブロックグループは同一の値を持つスーパーブロックを保持する。
【００３１】
グループディスクリプタ501は、ブロックグループの管理情報を保持し、ファイルシステム内に存在するブロックグループの数だけ存在する。データブロックビットマップ502は、データブロック上の空きを管理し、ブロックグループ内に1ブロックのみ存在する。iノードビットマップ503は、iノードの空きを管理するためのビットマップであり、ブロックグループ内に1ブロックのみ存在する。iノードテーブル504はiノードを保持するテーブルであり、ブロックグループ内に複数存在し、1テーブルごとに32個のiノードを格納する。
【００３２】
以上のスーパーブロック500〜iノードテーブル504までの部分が、ファイルシステムのメタデータを表す。メタデータはすなわちファイル管理情報であり、ファイルシステムそのものの情報を示すファイルシステム情報と、ファイルごとの情報を示すファイル情報からなる。ファイルシステムが実際に管理するファイルおよびディレクトリ等のデータは、データブロック505に格納される。なお、ext3ではディレクトリもファイルの一種類として扱われ、ファイルのデータ部分に、ディレクトリに含まれるファイルをテーブル管理するディレクトリエントリが記録される。
【００３３】
ここで、iノードテーブル504が保持するiノードについて説明する。iノードは、ファイルの構成データを扱う。具体的には、ファイルの種類(通常ファイル、ディレクトリ、シンボリックリンク)、ファイルサイズ、アクセス時間、作成時間、修正時間、削除時間、ブロックサイズ、データブロック505へのポインタ、ハードリンク数を示す参照カウント、等を保持する。
【００３４】
次に、ディレクトリエントリについて説明する。ディレクトリエントリとは、ファイルシステム内でのディレクトリ情報をテーブル管理するものであり、データブロック505上に作成される。具体的には1エントリごとに、iノード番号、レコード長、ファイルタイプ、ファイル名の長さ、ファイル名等を保持する。
【００３５】
●ファイルシステム修復処理(S302)
以下、上記S302において修復部105で実行される、fsckによるext3ファイルシステムの修復処理について、図5のフローチャートを用いて説明する。
【００３６】
まずS600でiノードテーブルの検査を行い、不整合が存在しないかを確認する。
【００３７】
そしてS601でディレクトリエントリの検査を行い、ディレクトリエントリが保持する値に不整合が発生していないかを確認する。次にS602でディレクトリエントリ間での接続性(コネクティビティ)を確認し、不整合が発生していないかを確認する。
【００３８】
そしてS603でiノードが保持する、ハードリンク数を示す参照カウントの検査を行い、不整合が発生していないかを確認する。そしてS604で、ディスク上のブロックとiノードビットマップに不整合が発生していないかを確認する。なおfsckによれば、上記各確認の後、不整合が発生していればその発生箇所の修復処理を直ちに行うことはもちろんである。
【００３９】
図5によれば、fsckではメタデータとディレクトリエントリのみに対して修復を試みていることが分かる。したがって本実施形態では、修復対象となるメタデータとディレクトリエントリのみを、バックアップ対象として保存する。
【００４０】
●バックアップ処理(S301)/バックアップ復元処理(S305)
以下、上記S301におけるバックアップ処理、および上記S305におけるバックアップ復元処理について説明する。
【００４１】
図6に、バックアップ前、すなわちバックアップ対象となるext3ファイルシステム110の構成例を示す。700はext3ファイルシステム110の全体を表し、701、702、703、704がブロックグループ毎のメタデータを示す。また705、706、707、708，709が、ファイルシステム700に存在するディレクトリエントリを示す。
【００４２】
図7に、図6に示すファイルシステム700のバックアップデータ109の構成例を示す。800はバックアップデータ109の全体である。801は、ファイルシステム700上でのメタデータ701の保存先を示す保存先データであり、メタデータ701がファイルシステム700上の何処に存在していたかを示す。S305でバックアップ復元処理を実行する際には、保存先データ801を用いることで、メタデータ701をファイルシステム700上の正しい位置に戻すことができる。
【００４３】
図7によれば、バックアップデータ800には、図6に示すメタデータ701、702、703、704のそれぞれに保存先データ801、802、803、804が付されて保持されていることが分かる。ディレクトリエントリ705、706、707、708、709についても同様に、ファイルシステム700上での保存先を示す保存先データ805、806、807、808、809が付されて保持されている。これら保存先データにより、fsckでの修復対象となる各メタデータおよびディレクトリエントリがファイルシステム700上の正しい位置に修復される。なお、メタデータ701、702、703、704およびその保存先データ801、802、803、804はファイルシステム情報バックアップ部102およびファイル情報バックアップ部104によって作成される。また、ディレクトリエントリ705、706、707、708、709およびその保存先データ805、806、807、808、809はディレクトリ情報バックアップ部103によって作成される。
【００４４】
以上説明したように本実施形態によれば、fsckでの修復対象となるメタデータとディレクトリエントリの情報のみをバックアップし、システム再起動時の修復失敗を検知してファイルシステムを修復前の状態に復元する。これにより、ファイルシステムの修復を安全に行うために必要となるバックアップ容量を減らしつつ、修復失敗によるデータの消失を防止してファイルシステムの保持を可能にする。したがって、メモリ制約が強い組み込み機器上においても、fsckによるファイルシステムの安全な修復作業が可能となる。
【００４５】
＜他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(コンピュータ可読のプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【図１】
2015152972.tif 000003
【図２】
2015152972.tif 000004
【図３】
2015152972.tif 000005
【図４】
2015152972.tif 000006
【図５】
2015152972.tif 000007
【図６】
2015152972.tif 000008
【図７】
2015152972.tif 000009