(57)【要約】【課題】複数のディスク装置にファイルを分散して管理するファイルシステムにおいて記憶デバイスを増やすことなくファイルの可用性を高めることができるようにする。【解決手段】情報処理装置は、ＣＰＵとメモリとを備え、複数の記憶デバイスにアクセス可能である。情報処理装置は、ファイルを複数のサブファイルに分割し、複数のサブファイルを、複数の記憶デバイスに分散させて記憶し、複数の記憶デバイスに記憶されている複数のサブファイルについて、それぞれが記憶されている記憶デバイスとは異なる記憶デバイスに、それぞれの複製を記憶する。【選択図】図１
2007328727.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵとメモリとを備え、複数の記憶デバイスにアクセス可能な情報処理装置によるファイルの管理方法であって、
ファイルを複数のサブファイルに分割し、
前記複数のサブファイルを、前記複数の記憶デバイスに分散させて記憶し、
前記複数の記憶デバイスに記憶されている前記複数のサブファイルについて、それぞれが記憶されている前記記憶デバイスとは異なる前記記憶デバイスに、それぞれの複製を記憶すること、
を特徴とするファイル管理方法。
【請求項２】
請求項１に記載のファイル管理方法であって、
前記情報処理装置は、
前記ファイルの複製を作成するように指示するミラー要求に応じて、前記サブファイルの複製を記憶すること、
を特徴とする分散ファイル管理方法。
【請求項３】
請求項１に記載の分散ファイル管理方法であって、
前記情報処理装置は、
前記ファイルを示すファイル名に対応付けて、前記サブファイルが格納されている前記記憶デバイスを特定する第１のデバイス情報と、前記サブファイルの複製である複製ファイルが作成されているかどうかを示すミラーフラグと、前記複製ファイルが作成されている場合に、前記複製ファイルが格納されている前記記憶デバイスを特定する第２のデバイス情報と、を前記メモリに記憶し、
前記ファイル名と、前記ファイルに書き込むための書き込みデータと、を含む書き込み要求を受け付け、
前記書き込み要求に含まれる前記ファイル名に対応する前記第１のデバイス情報を前記メモリから読み出し、読み出した前記第１のデバイス情報により特定される前記記憶デバイスに格納されている前記サブファイルに前記書き込みデータを書き込み、
前記ファイル名に対応する前記ミラーフラグを前記メモリから読み出し、読み出した前記ミラーフラグに応じて、前記複製ファイルが作成されているかどうかを判断し、
前記複製ファイルが作成されている場合、前記ファイル名に対応する前記第２のデバイス情報を前記メモリから読み出し、読み出した前記第２のデバイス情報により特定される前記記憶デバイスに格納されている前記複製ファイルに前記書き込みデータを書き込むこと、
を特徴とする分散ファイル管理方法。
【請求項４】
請求項３に記載の分散ファイル管理方法であって、
前記情報処理装置は、
前記ファイル名を含む読み出し要求を受け付け、
前記読み出し要求に含まれる前記ファイル名に対応する前記第１のデバイス情報を前記メモリから読み出し、読み出した前記第１のデバイス情報により特定される前記記憶デバイスから前記サブファイルのデータを読み出せるかどうかを判断し、
記憶デバイスから前記サブファイルを読み出せない場合、前記ファイル名に対応する前記ミラーフラグを前記メモリから読み出し、読み出した前記ミラーフラグにより、前記複製ファイルが作成されているかどうかを判断し、
前記複製ファイルが作成されている場合、前記ファイル名に対応する前記第２のデバイス情報を前記メモリから読み出し、読み出した前記第２のデバイス情報により特定される前記記憶デバイスから前記複製ファイルのデータを読み出すこと、
を特徴とする分散ファイル管理方法。
【請求項５】
請求項３に記載の分散ファイル管理方法であって、
前記情報処理装置は、
前記ファイルの複製を削除するように指示するミラー解除要求を受け付け、
前記ミラー解除要求に応じて、前記ファイルを示す前記ファイル名に対応する前記第２のデバイス情報を前記メモリから読み出し、読み出した前記第２のデバイス情報により特定される前記記憶デバイスから、前記複製ファイルを削除し、前記複製ファイルが作成されていない旨を示す前記ミラーフラグを、前記ファイル名に対応付けて前記メモリに記憶すること、
を特徴とする分散ファイル管理方法。
【請求項６】
複数の記憶デバイスにアクセス可能に接続され、
ＣＰＵと、メモリと、
ファイルを複数のサブファイルに分割するファイル分割処理部と、
分割した前記サブファイルを、前記複数の記憶デバイスに分散させて記憶する分散ファイル管理部と、
前記記憶デバイスに記憶されている前記サブファイルについて、それぞれが記憶されている前記記憶デバイスとは異なる前記記憶デバイスに、それぞれの複製を記憶するファイル複製処理部と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散ファイル管理方法及び情報処理装置に関する。
【背景技術】
【０００２】
情報処理システムにおいて、１つのファイルを複数のディスク装置に分散させて管理するファイルシステムが用いられている（例えば、特許文献１や特許文献２参照）。このようなファイルシステムは、ストライピングファイルシステムとも呼ばれる。ストライピングファイルシステムでは、ファイルへのアクセス時に複数のディスク装置に並列的にアクセスすることで、ファイルに対する入出力処理の効率化を図っている。
【０００３】
しかしながら、ストライピングファイルシステムでは、１つのアクセスに起因して複数のディスク装置を同時に動作させるため、稼動部分が増加し、システム全体としての故障率が高まることが知られている。このような問題に対応すべく、ストライピングファイルシステムにおいてファイルの保全性を高める仕組みが提案されている。例えば、特許文献３では、分散ファイルシステムにおいて、プライマリとバックアップを一対にした仮想ディスク装置を用いてミラーリングを行い、プライマリに障害が発生した場合には、バックアップを替わりに使用することで、ファイルの保全性を高めている。
【特許文献１】特開２００１−２２９０６２号公報
【特許文献２】特開２００２−１８２９５３号公報
【特許文献３】特開平１１−３１６６５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献３に記載のシステムのように、複数のディスク装置のそれぞれについてプライマリとバックアップとを準備する冗長構成をとると、ディスク装置の増設にはコストがかかり、ディスク装置の数が倍増することでメンテナンスに手間もかかる。
【０００５】
本発明は、このような背景を鑑みてなされたものであり、複数の記憶デバイスにファイルを分散して管理するファイルシステムにおいて記憶デバイスを増やすことなくファイルの保全性を高めることのできる、分散ファイル管理方法及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するための本発明の主たる発明は、ＣＰＵとメモリとを備え、複数の記憶デバイスにアクセス可能な情報処理装置によるファイルの管理方法であって、ファイルを複数のサブファイルに分割し、前記複数のサブファイルを、前記複数の記憶デバイスに分散させて記憶し、前記複数の記憶デバイスに記憶されている前記複数のサブファイルについて、それぞれが記憶されている前記記憶デバイスとは異なる前記記憶デバイスに、それぞれの複製を記憶することとする。
【発明の効果】
【０００７】
本発明によれば、分散ファイルシステムにおいて記憶デバイスを増やすことなくファイルの保全性を高めることのできる分散ファイル管理方法及び情報処理装置を提供することができる。
【発明を実施するための最良の形態】
【０００８】
＝＝システム構成＝＝
図１は、本実施形態に係る情報処理システムの全体構成を示す図である。同図に示すように、本実施形態の情報処理システムは、計算ノード１０と、Ｉ／Ｏノード２０とを含んで構成される。計算ノード１０及びＩ／Ｏノード２０は、ＬＡＮ（Local Area Network）４０で互いに通信可能に接続される。
【０００９】
計算ノード１０は、情報処理サービスを提供する、例えばワークステーションやパーソナルコンピュータなどのコンピュータである。本実施形態の情報処理システムでは、複数の計算ノード１０による情報処理が並列的に行われるいわゆるクラスタ処理が行われる。
【００１０】
Ｉ／Ｏノード２０（本発明の情報処理装置に該当する。）は、ファイルに対する入出力処理を行う、例えばワークステーションやパーソナルコンピュータなどのコンピュータである。Ｉ／Ｏノード２０は、計算ノード１０からファイル名指定のデータ入出力要求（以下、ファイル入出力要求という。）を受信し、受信したファイル入出力要求に応じて、ファイルに対するデータの入出力処理を行う。本実施形態の、Ｉ／Ｏノード２０は、各Ｉ／Ｏノード２０に接続されているディスク装置３０（本発明の記憶デバイスに該当する。）にファイルを分散して管理するファイルシステム（ストライピングファイルシステムと呼ばれる。）を提供する。本実施形態のストライピングファイルシステムでは、ひとつのファイルは複数の部分（以下、サブファイルという。）に分割され、サブファイルが複数のディスク装置３０に分散して格納される。そして、本実施形態の情報処理システムでは、ひとつのファイルに対するファイル入出力要求に応じて、複数のＩ／Ｏノード２０が並列的にデータ入出力処理を行うことで、データ入出力処理を効率的に行っている。
【００１１】
Ｉ／Ｏノード２０には、計算ノード１０からファイル入出力要求を受信するＩ／Ｏノード２０（以下、マスタノードともいう。）と、マスタノードに対してディスク装置３０の記憶領域を提供するＩ／Ｏノード２０（以下、サブノードともいう。）とがある。マスタノードに接続されているディスク装置３０には、ファイル３１０の構成を定義する情報（ファイル情報という。）を格納するファイル（以下、マスタファイル３１１という。）が記憶され、サブノードに接続されているディスク装置３０には、ファイル３１０を構成するサブファイル３１２が格納される。
【００１２】
＝＝計算ノード＝＝
図２は、計算ノード１０のハードウェア構成を示す図である。同図に示すように、計算ノード１０は、ＣＰＵ１０１、メモリ１０２、記憶装置１０３、通信インタフェース１０４を備えている。記憶装置１０３は、データやプログラムを記憶する、例えばハードディスクドライブやＣＤ−ＲＯＭドライブ、フラッシュメモリなどである。記憶装置１０３には、ＯＳプログラム１１１、クラスタプログラム１１２、アプリケーションプログラム１１３、ディスク状態管理テーブル１１４が記憶されている。ＣＰＵ１０１は、記憶装置１０３に記憶されているＯＳプログラム１１１や、クラスタプログラム１１２、アプリケーションプログラム１１３をメモリ１０２に読み出して実行することにより、後述する各種の機能を提供する。ディスク状態管理テーブル１１４の詳細については後述する。通信インタフェース１０４は、ＬＡＮ４０に接続するためのインタフェースであり、例えば、イーサネット（登録商標）に接続するためのアダプタや、公衆電話回線に接続するためのモデムである。
【００１３】
図３は、計算ノード１０の機能ブロック図である。同図に示すように、計算ノード１０は、情報処理部１２１、ファイル入出力要求送信部１２２、ファイル受信部１２３、ミラー要求送信部１２４を備えている。
【００１４】
情報処理部１２１は、ＣＰＵ１０１が記憶装置１０３に記憶されているアプリケーションプログラム１１３を実行することにより実現される、計算ノード１０が提供する情報処理サービスを実現する。
【００１５】
ファイル入出力要求送信部１２２は、ファイル入出力要求をＩ／Ｏノード２０に送信する。ファイル受信部１２３は、ファイル入出力要求に応じたＩ／Ｏノード２０からの応答を受信する。ファイル受信部１２３は、例えば、ファイルの読み出し要求に対してＩ／Ｏノード２０から応答されるファイルを受信したり、ファイルへの書き込み要求に応じたＩ／Ｏノード２０からの終了ステータスを受信したりする。ファイル受信部１２３が、Ｉ／Ｏノード２０からエラーを受信した場合には、入出力がエラーになったディスク装置３０に障害が発生した旨を示す情報を、後述のディスク状態管理テーブル１１４に格納する。
【００１６】
ミラー要求送信部１２４は、ファイルを二重化するように指示するコマンド（以下、ミラー要求という。）をＩ／Ｏノード２０に送信する。ミラー要求には二重化の対象となるファイルを示すファイル名が設定される。
【００１７】
なお、ファイル入出力要求送信部１２２、ファイル受信部１２３、及びミラー要求送信部１２４は、ＣＰＵ１０１が記憶装置１０３に記憶されているＯＳプログラム１１１をメモリ１０２に読み出して実行することにより実現されるオペレーティングシステムにより提供される機能である。
【００１８】
＝＝Ｉ／Ｏノード＝＝
図４は、Ｉ／Ｏノード２０のハードウェア構成を示す図である。同図に示すように、Ｉ／Ｏノード２０は、ＣＰＵ２０１、メモリ２０２、記憶装置２０３、通信インタフェース２０４、Ｉ／Ｏインタフェース２０５を備えている。記憶装置２０３は、プログラムやデータを記憶する、例えばハードディスクドライブやＣＤ−ＲＯＭドライブ、フラッシュメモリなどである。記憶装置２０３には、ＯＳプログラム２１１やディスク状態管理テーブル２１２が記憶されている。ＣＰＵ２０１は記憶装置２０３に記憶されている、ＯＳプログラム２１１をメモリ２０２に読み出して実行することにより、後述の各種の機能を実現する。ディスク状態管理テーブル２１２についての詳細は後述する。通信インタフェース２０４は、ＬＡＮ４０に接続するためのインタフェースであり、例えば、イーサネット（登録商標）に接続するためのアダプタや、公衆電話回線に接続するためのモデムである。Ｉ／Ｏインタフェース２０５は、ディスク装置３０と接続するためのインタフェースであり、例えば、ＳＣＳＩ（Small Computer System Interface）、アダプタ、ファイバチャネルアダプタなどのＨＢＡ（Host Bus Adapter）である。
【００１９】
図５は、Ｉ／Ｏノード２０の機能ブロック図である。同図に示すように、Ｉ／Ｏノード２０は、マウント処理部２２１、ミラー要求受信部２２２、ミラー処理部２２３、ファイル入出力要求受信部２２４、データ入出力処理部２２５、ファイル送信部２２６、障害検知部２２７、ディスク状態管理テーブル２１２を備えている。
【００２０】
マウント処理部２２１は、マスタノードにおいて、他のサブノードに接続されているディスク装置３０の記憶領域を、マスタノードにおいて利用可能とするための処理（以下、マウント処理という。）を行う。なお、マウント処理部２２１が行うマウント処理は、一般的にマウントあるいはドライブの割り当てとして知られている処理である。
【００２１】
マウント処理部２２１がマウントするディスク装置を特定する情報は、マスタノードに接続されるディスク装置３０に記憶されている構成定義ファイル３１３に含まれている。構成定義ファイル３１３の構成を図６に示す。同図に示すように、構成定義ファイル３１３には、ファイル３１０を分散する先となるディスク装置３０がマウントされるパス（マウントポイントと呼ばれる。）を示す情報が含まれる。図６の例では、「／ｂｌｋ１」〜「／ｂｌｋ２」にサブノードのディスク装置３０がマウントされることを示している。また、構成定義ファイル３１３に格納されている情報より、サブファイルを格納する記憶領域数（以下、分割数という。）が決定される。図６の例では、分割数は「２」である。
【００２２】
図７は、マスタファイル３１１の内容例を示す図である。同図に示すように、マスタファイル３１１に格納されるファイル情報には、ファイル名３３１、ファイルサイズ３３２、サブファイル数３３３、サブファイル開始位置３３４、ミラーフラグ３３５、ミラーサブファイル開始位置３３６が含まれている。
【００２３】
ファイルサイズ３３２は、ファイル名３３１が示すファイル３１０全体のサイズである。サブファイル数３３３は、ファイル３１０を分割したサブファイル３１２の数である。なお、ファイル名３３１に代えて、ファイル３１０のｉｎｏｄｅ番号やｖｎｏｄｅ番号を採用してもよい。
【００２４】
サブファイル開始位置３３４（本発明の第１のデバイス情報に該当する。）は、サブファイル３１２が格納されるディスク装置３０を特定するための情報である。本実施形態では、ｎ台のディスク装置３０が「／ｂｌｋ１」〜「／ｂｌｋｎ」にマウントされている場合に、サブファイル数３３３をｍ、サブファイル開始位置３３４をｓとすると、「／ｂｌｋｉ」（ｉ＝ｓ，ｓ＋１，．．．，ｓ＋ｍ）にマウントされているディスク装置３０にサブファイル３１２が格納される。なお、ｉ＞ｎとなる場合にはｉ＝ｉ−ｓとする。また、本実施形態では、簡単のため、サブファイル３１２のファイル名は、ファイル３１０のファイル名３３１と同じであるものとする。すなわち、分割数が２である「ｆｉｌｅ１」というファイル３１０は、「／ｂｌｋ１／ｆｉｌｅ１」と、「／ｂｌｋ２／ｆｉｌｅ１」とに分割されて格納されるものとする。
【００２５】
ミラーフラグ３３５は、ファイル名３３１が示すファイル３１０が二重化されているかどうかを示す情報である。本実施形態の情報処理システムでは、二重化されているファイル３１０と、されていないファイル３１０とが混在しており、後述するように、システムの利用者は、任意にファイル単位で二重化を開始することができるようになっている。なお、ファイル３１０の二重化処理の詳細については後述する。
【００２６】
ミラーサブファイル開始位置３３６（本発明の第２のデバイス情報に該当する。）は、ファイル３１０が二重化されている場合に、サブファイル３１２の複製（以下、ミラーサブファイルという。本発明の複製ファイルに該当する。）を格納するディスク装置３０を特定する情報である。なお、ミラーサブファイル開始位置３３６は、サブファイル開始位置３３４と同様にしてディスク装置３０を特定するものとする。
【００２７】
＝＝ファイルの分散管理＝＝
本実施形態では、ファイル３１０はサブファイル３１２単位ではなく、ブロック単位でディスク装置３０に書き込まれる。図８は、本実施形態の情報処理システムにおいて、ファイル３１０が複数のディスク装置３０に分散管理される様子を示す図である。本実施形態では、Ｉ／Ｏノード２０は、ファイル３１０をディスク装置３０に書き込む際、ファイル３１０をブロック単位のデータ（以下、ファイルブロックという。）に分割し、各ファイルブロックを、複数のディスク装置３０に、ラウンドロビン方式で順番に書き込んでいく。図８の例では、ファイル３１０は、ＦＢ０〜ＦＢ１５の１６個のファイルブロックに分割され、分割されたファイルブロックは、「／ｂｌｋ１」にマウントされている上側のディスク装置３０が管理するサブファイル３１２と、「／ｂｌｋ２」にマウントされている下側のディスク装置３０が管理するサブファイル３１２とに順番に書き込まれるが、サブファイル開始位置３３４が「１」である場合、最初のファイルブロック「ＦＢ０」が書き込まれる先は「／ｂｌｋ１」となる。上記のようにファイルブロックをサブファイル３１２に書き込むことで、「／ｂｌｋ１」に記憶されているサブファイル３１２には、偶数番目のファイルブロック（ＦＢ０、ＦＢ２、・・・ＦＢ１４）が格納され、「／ｂｌｋ２」に記憶されているサブファイル３１２には、奇数番目のファイルブロック（ＦＢ１、ＦＢ３、・・・ＦＢ１５）が書き込まれる。
【００２８】
＝＝障害検知処理＝＝
図９は、ディスク状態管理テーブル２１２の構成を示す図である。図９に示すように、ディスク状態管理テーブル２１２は、ディスク名２６１毎に障害フラグ２６２を記憶している。ディスク名２６１は、ディスク装置３０を示す情報であり、本実施形態では、ディスク装置３０がマウントされるマウントポイントのパスである。各Ｉ／Ｏノード２０は、Ｉ／Ｏインタフェース２０５を介して接続されているディスク装置３０（以下、ローカルディスクともいう。）、及びマウントした他のＩ／Ｏノード２０に接続されているディスク装置３０（以下、リモートディスクともいう。）のそれぞれについて、障害フラグ２６２をディスク状態管理テーブル２１２に管理するものとする。なお、図９の例では、「／」は、ローカルディスクを示し、「／ｂｌｋ１」及び「／ｂｌｋ２」はリモートディスクを示す。障害フラグ２６２に「×」が設定されている場合、ディスク名２６１が示すディスク装置３０に障害が発生していることを示す。なお、計算ノード１０が備えるディスク状態管理テーブル１１４も、Ｉ／Ｏノード２０が備える図９のディスク状態管理テーブル２１２と同様の構成である。
【００２９】
障害検知部２２７は、マウントされているディスク装置３０に障害が発生したことを検知する。本実施形態では、障害検知部２２７は、Ｉ／Ｏインタフェース２０５を介して接続されているディスク装置３０（以下、ローカルディスクという。）に対して定期的に書き込みを行い、その書き込みが成功するかどうかに応じてディスク装置３０の障害を検知する。障害検知部２２７は、ローカルディスクに障害が発生したことを検知すると、ディスク状態管理テーブル２１２のローカルディスクに対応する障害フラグ２６２を「×」にする。  
また、ディスク状態管理テーブル２１２の障害フラグ２６２は、ディスク装置３０に対するデータの入出力に失敗した場合にも「×」が設定される。
【００３０】
なお、本実施形態では、計算ノード１０のディスク状態管理テーブル１１４や、各Ｉ／Ｏノード２０のディスク状態管理テーブル２１２は、各ノードにおいて独自に管理されるものとする。したがって、各Ｉ／Ｏノード２０では、ローカルディスクに障害が発生したかどうかはディスク状態管理テーブル２１２に管理されるが、リモートディスクについては、実際にアクセスしたときに、障害が発生しているかどうかが判定され、アクセスに失敗すると、障害フラグ２６２が更新される。ディスク状態管理テーブル２１２の状態例を図１０に示す。図１０の例では、サブノード（サブ１）に接続されているディスク装置３０に障害が発生した場合、サブノード（サブ１）のディスク状態管理テーブル２１２には、ディスク装置３０に障害が発生した旨を示す障害フラグ２６２が管理されるが、計算ノード１０のディスク状態管理テーブル１１４やマスタノードのディスク状態管理テーブル２１２には、サブノード（サブ１）に接続されているディスク装置３０に障害が発生したことは伝搬していない。しかし、計算ノード１０がマスタノードにファイル入出力要求を送信し、「／ｂｌｋ１」に格納されているサブファイル３１２に対する入出力ができなかったときに、マスタノードのディスク状態管理テーブル２１２の「／ｂｌｋ１」に対応する障害フラグ２６２が「×」に設定され、マスタノードからエラーが応答されて、計算ノード１０でも「／ｂｌｋ１」に対応する障害フラグが「×」に設定される。
【００３１】
＝＝二重化処理＝＝
ミラー要求受信部２２２は、計算ノード１０から送信されるミラー要求を受信する。ミラー処理部２２３は、ミラー要求に応じてファイルの二重化を行う。ミラー処理部２２３によるファイルの二重化処理の流れを図１１に示す。
【００３２】
ミラー処理部２２３は、マスタファイル３１１から、ミラー要求に設定されているファイル名に対応するファイル情報を読み出し（Ｓ５０１）、読み出したファイル情報のミラーフラグ３３５が「×」であれば（Ｓ５０２：ＹＥＳ）、ファイル情報のミラーフラグ３３５に「○」を設定し（Ｓ５０３）、ファイル情報のサブファイル開始位置３３４をｓ、サブファイル数３３３をｎとする（Ｓ５０４）。ミラー処理部２２３は、ｓ＋１がｎよりも大きい場合（Ｓ５０５：ＹＥＳ）、ミラーサブファイル開始位置３３６に１を設定し（Ｓ５０６）、そうでなければ、ｓ＋１をミラーサブファイル開始位置３３６に設定する（Ｓ５０７）。
【００３３】
次にミラー処理部２２３は、ｓがｎ以下である間、以下の処理を行う。  
ミラー処理部２２３は、ｓに１を加算した値をｄとし（Ｓ５０８）、ｄがｎより大きければ（Ｓ５０９：ＹＥＳ）、ｄからｎを減算する（Ｓ５１０）。ミラー処理部２２３は、「／ｂｌｋ」と、ｓと、「／」と、ファイル情報のファイル名３３１とを連結してコピー元のサブファイル３１２のサブファイル名を決定し（Ｓ５１１）、「／ｂｌｋ」と、ｄと、「／」と、ファイル情報のファイル名３３１と、複製であることを示す「．１」とを連結してコピー先となるサブファイル３１２のサブファイル名を決定する（Ｓ５１２）。ミラー処理部２２３は、決定したコピー元のサブファイル名が示すサブファイル３１２を、コピー先のサブファイル名のファイルにコピーする（Ｓ５１３）。  
ミラー処理部２２３は、ｓをインクリメントし（Ｓ５１４）、ｓがｎを超えた場合（Ｓ５１５：ＹＥＳ）には、ｓを１にする（Ｓ５１６）。
【００３４】
上述した二重化処理を行った後の状態の一例を図１２に示す。図１２では、「ｆｉｌｅ１」に対応する「／ｂｌｋ１／ｆｉｌｅ１」及び「／ｂｌｋ２／ｆｉｌｅ２」のサブファイル３１２がディスク装置３０に記憶されていた場合に、上記の二重化処理により、「／ｂｌｋ１／ｆｉｌｅ１」のサブファイル３１２は、「／ｂｌｋ２／ｆｉｌｅ１．１」のミラーサブファイル３１４にコピーされ、「／ｂｌｋ２／ｆｉｌｅ１」のサブファイル３１２は、「／ｂｌｋ１／ｆｉｌｅ１．１」のミラーサブファイル３１４にコピーされたことを示している。
【００３５】
このように、ミラー処理部２２３は、利用者からのミラー要求に応じて、指定されたファイル名に対応するサブファイル３１２について、各サブファイル３１２が格納されているディスク装置３０とは異なるディスク装置３０に、各サブファイル３１２の複製を格納する。したがって、ディスク装置３０のひとつに障害が発生したとしても、上記の二重化処理を行った後であれば、障害が発生したディスク装置３０に格納されているサブファイル３１２は、他のディスク装置３０にも複製がコピーされていることになる。よって、ディスク装置３０の障害に対して、ファイルの保全性が高まる。
【００３６】
また、本実施形態の情報処理システムでは、計算ノード１０からのミラー要求がなければファイル３１０の二重化は行わない。後述するように、ファイル３１０の二重化を行うと、二重化していない場合に比べて、ファイル３１０に対するデータの書き込みは倍の回数行われる。したがって、例えば、重要度の高いデータについては二重化を行い、重要度がそれ程高くないデータについては、二重化を行わずに処理効率をできるだけ下げないようにして、情報処理システム全体の効率を調整するようにすることもできる。
【００３７】
＝＝データ入出力処理＝＝
ファイル入出力要求受信部２２４は、計算ノード１０から送信されるファイル入出力要求を受信する。データ入出力処理部２２５は、ファイル入出力要求に応じてファイル３１０に対するデータの入出力処理を行う。ファイル送信部２２６は、ファイル入出力要求が、ファイル３１０のオープンを指示するオープン要求や、ファイル３１０へのデータの書き込みを指示するファイル書き込み要求であった場合には処理結果を計算ノード１０に送信する。また、ファイル送信部２２６は、ファイル入出力要求が、ファイル３１０からデータを読み出すことを指示するファイル読み出し要求であった場合には、ディスク装置３０から読み出したデータを計算ノード１０に送信する。  
以下、データ入出力処理部２２５によるデータの入出力処理の詳細について説明する。
【００３８】
＝＝オープン処理＝＝
まず、データ入出力処理部２２５は、オープン要求を受信した場合、オープン要求に設定されているファイル名に対応するサブファイル３１２を全てオープンする。また、二重化されている場合には、対応するミラーサブファイル３１４もオープンする。図１３にファイルのオープン処理の流れを示す。また、図１４は、図１３の処理でオープンしたサブファイル３１２やミラーサブファイル３１４のファイル記述子を記憶するためのファイル管理テーブル４００の構成を示す図である。同図に示すように、ファイル管理テーブル４００は、サブファイル名４０１、サブファイル３１２のｖｎｏｄｅ４０２、サブファイル記述子４０３、ミラーサブファイル名４０４、ミラーサブファイル３１４のｖｎｏｄｅ、ミラーサブファイル記述子４０６、ミラーフラグ４０７を対応付けて記憶している。サブファイル記述子４０３は、サブファイル３１２をオープンしたときに割り当てられるファイル記述子であり、ミラーサブファイル記述子４０６は、ミラーサブファイル３１４をオープンしたときに割り当てられるファイル記述子である。なお、ファイル管理テーブル４００は、図１３のオープン時に作成され、ファイルのクローズ時に破棄される。
【００３９】
データ入出力処理部２２５は、マスタファイル３１１から、オープン要求に設定されているファイル名に対応するファイル情報を読み出す（Ｓ６０１）。データ入出力処理部２２５は、ファイル情報に含まれるサブファイル開始位置３３４をｓとし（Ｓ６０２）、ファイル情報のミラーサブファイル開始位置３３６をｍとする（Ｓ６０３）。データ入出力処理部２２５は、ファイル情報に含まれるサブファイル数３３３の回数、以下の処理を行う。
【００４０】
データ入出力処理部２２５は、サブファイル既述子を「０」し（Ｓ６０４）、ミラーサブファイル既述子を「０」にする（Ｓ６０５）。データ入出力処理部２２５は、「／ｂｌｋ」にｓを連結した文字列をディスク名とし（Ｓ６０６）、ディスク名に「／」とファイル名とを連結した文字列をサブファイル名４０１とする（Ｓ６０７）。データ入出力処理部２２５は、ディスク状態管理テーブル２１２から、ディスク名に対応する障害フラグ２６２を読み出す（Ｓ６０８）。障害フラグ２６２が「×」でなければ（Ｓ６０９：ＹＥＳ）、データ入出力処理部２２５は、サブファイル名４０１が示すサブファイル３１２をオープンし、オープンしたファイルのファイル記述子をサブファイル記述子４０３とする（Ｓ６１０）。ファイルのオープン処理でエラーが発生した場合（Ｓ６１１：ＹＥＳ）には、ディスク状態管理テーブル２１２のディスク名に対応する障害フラグ２６２を「×」に変更する（Ｓ６１２）。
【００４１】
データ入出力処理部２２５は、ファイル情報のミラーフラグ３３５が「○」であれば（Ｓ６１３：ＹＥＳ）、「／ｂｌｋ」にｍを連結した文字列をミラーディスク名とし（Ｓ６１４）、ミラーディスク名に「／」とファイル名とを連結した文字列をミラーサブファイル名４０４とする（Ｓ６１５）。データ入出力処理部２２５は、ディスク状態管理テーブル２１２から、ミラーディスク名に対応する障害フラグ２６２を読み出す（Ｓ６１６）。障害フラグ２６２が「×」でなければ（Ｓ６１７：ＹＥＳ）、データ入出力処理部２２５は、ミラーサブファイル名４０４が示すミラーサブファイル３１４をオープンし、オープンしたファイルのファイル記述子をミラーサブファイル記述子４０６とする（Ｓ６１８）。ファイルのオープン処理でエラーが発生した場合（Ｓ６１９：ＹＥＳ）は、ディスク状態管理テーブル２１２のミラーディスク名に対応する障害フラグ２６２を「×」に変更する（Ｓ６２０）。
【００４２】
データ入出力処理部２２５は、ｓをインクリメントし（Ｓ６２１）、ｓがファイル情報のサブファイル数３３３を超えた場合は（Ｓ６２２：ＹＥＳ）、ｓを１にする（Ｓ６２３）。データ入出力処理部２２５は、ｍをインクリメントし（Ｓ６２４）、ｍがファイル情報のサブファイル数３３３を超えた場合には（Ｓ６２５：ＹＥＳ）、ｍを１にする（Ｓ６２６）。
【００４３】
ここでサブファイル記述子４０３及びミラーサブファイル記述子４０６のいずれも０以下であった場合は（Ｓ６２７：ＮＯ）、ファイル送信部２２６は、ファイル３１０のオープンに失敗した旨を示すメッセージを計算ノード１０に送信する（Ｓ６２８）。
【００４４】
一方、サブファイル記述子４０３及びミラーサブファイル記述子４０６の何れかが０より大きい数であった場合（Ｓ６２７：ＹＥＳ）、サブファイル名４０１、サブファイル３１２のｖｎｏｄｅ、サブファイル記述子４０３、ミラーサブファイル名４０４、ミラーサブファイル３１４のｖｎｏｄｅ、ミラーサブファイル記述子４０６、及びミラーフラグ３３５を対応付けて、ファイル管理テーブル４００に追加する（Ｓ６２９）。
【００４５】
以上の処理を、サブファイル数分だけ繰り返すことで、ファイル入出力要求に指定されたファイル名に対応する全てのサブファイル３１２がオープンされるとともに、サブファイル３１２の複製であるミラーサブファイル３１４も全てオープンされる。また、サブファイル３１２及びミラーサブファイル３１４にアクセスするためのファイル記述子がファイル管理テーブル４００に登録される。上記の処理以降、データ入出力処理部２２５は、ファイル管理テーブル４００に登録されている各ファイル記述子を用いて、サブファイル３１２やミラーサブファイル３１４にアクセスすることができる。
【００４６】
＝＝書き込み処理＝＝
図１５は、ファイル書き込み要求に応じてデータ入出力処理部２２５による行われる、ファイル３１０へのデータ書き込み処理の流れを示す図である。
【００４７】
データ入出力処理部２２５は、マスタファイル３１１から、データ書き込み要求に設定されているファイル名に対応するファイル情報を読み出し（Ｓ７０１）、図１６に示すファイル管理テーブル４００に設定されているファイル記述子のチェック処理を行う。
【００４８】
データ入出力処理部２２５は、ファイル管理テーブル４００に含まれている全てのサブファイル記述子４０３が０より大きい場合（Ｓ７２１：ＹＥＳ）、ファイル管理テーブル４００に含まれている、「○」のミラーフラグ４０７に対応するミラーサブファイル記述子４０６が全て０より大きければ（Ｓ７２２：ＹＥＳ）、ディスク状態管理テーブル２１２から、「×」の障害フラグ２６２に対応するディスク名２６１（以下、障害ディスク名という。）を検索する（Ｓ７２３）。ディスク状態管理テーブル２１２に上記の障害ディスク名が含まれていない場合（Ｓ７２４：ＹＥＳ）、データ入出力処理部２２５は、ステータスを「正常」とする（Ｓ７２５）。
【００４９】
一方、ディスク状態管理テーブル２１２に障害ディスク名が含まれている場合（Ｓ７２４：ＮＯ）には、データ入出力処理部２２５は、ファイル管理テーブル４００から、障害ディスク名を含むサブファイル名４０１又はミラーサブファイル名４０４を検索する（Ｓ７２６）。データ入出力処理部２２５は、障害ディスク名を含むサブファイル名４０１又はミラーサブファイル名４０４がファイル管理テーブル４００に存在しない場合（Ｓ７２７：ＮＯ）は、（Ｓ７２５）に進み、ステータスを「正常」とする。
【００５０】
障害ディスク名を含むサブファイル名４０１又はミラーサブファイル名４０４がファイル管理テーブル４００に含まれている場合（Ｓ７２７：ＹＥＳ）、データ入出力処理部２２５は、障害ディスク名を含むサブファイル名４０１が示すサブファイル３１２をクローズし（Ｓ７２８）、クローズしたサブファイル３１２に対応するファイル管理テーブル４００のサブファイル記述子４０３にエラー値（本実施形態では、エラー値は０未満の数とする。）を設定する（Ｓ７２９）。また、データ入出力処理部２２５は、障害ディスク名を含むミラーサブファイル名４０４が示すミラーサブファイル３１４をクローズし（Ｓ７３０）、クローズしたミラーサブファイル３１４に対応するファイル管理テーブル４００のミラーサブファイル記述子４０６にエラー値を設定する（Ｓ７３１）。データ入出力処理部２２５は、ステータスに「異常」を設定する（Ｓ７３２）。
【００５１】
上記の図１６の処理により、ファイル書き込み要求に設定されていたファイル名に対応する全てのサブファイル３１２が正常にオープンされており、二重化が行われている場合には全てのサブファイル３１２に対応するミラーサブファイル３１４も正常にオープンされているときに、ステータスに「正常」が設定され、正常にオープンされていないサブファイル３１２やミラーサブファイル３１４がある場合、ステータスには「異常」が設定される。
【００５２】
ここで、ステータスが「正常」でなければ（Ｓ７０３：ＮＯ）、ファイル送信部２２６は、エラーが発生した旨を示すメッセージを計算ノード１０に送信する（Ｓ７０４）。  
ステータスが「正常」である場合（Ｓ７０３：ＹＥＳ）、データ入出力処理部２２５は、ファイル書き込み要求に設定されている書き込みデータをブロック単位に分割し、各ファイルブロックについて以下の処理を行う。
【００５３】
データ入出力処理部２２５は、ファイル管理テーブル４００から順番にラウンドロビン方式で、サブファイル記述子４０３、ミラーサブファイル記述子４０６、及びミラーフラグ４０７を読み出す（Ｓ７０５）。データ入出力処理部２２５は、読み出したサブファイル記述子４０３を用いてサブファイル３１２に対するファイルブロックの書き込み処理を行う（Ｓ７０６）。ファイルブロックの書き込み処理に失敗した場合（Ｓ７０７：ＹＥＳ）、データ入出力処理部２２５は、ファイル管理テーブル４００のサブファイル記述子４０３をエラー値に変更する（Ｓ７０８）。
【００５４】
次に、データ入出力処理部２２５は、上記の読み出したミラーフラグ４０７が「○」である場合（Ｓ７０９：ＹＥＳ）、ミラーサブファイル記述子４０６を用いてミラーサブファイル３１４に対するファイルブロックの書き込み処理を行う（Ｓ７１０）。ファイルブロックの書き込み処理に失敗した場合（Ｓ７１１：ＹＥＳ）、データ入出力処理部２２５は、ファイル管理テーブル４００のミラーサブファイル記述子４０６をエラー値に変更する（Ｓ７１２）。
【００５５】
ここで、データ入出力処理部２２５は、再度図１６に示すファイル記述子のチェック処理を行い（Ｓ７１３）、ステータスが「正常」でない場合には（Ｓ７１４：ＮＯ）、（Ｓ７０４）に進み、ファイル送信部２２６は、エラーが発生した旨を示すメッセージを計算ノード１０に送信する。ステータスが「正常」であれば（Ｓ７１４：ＹＥＳ）、データ入出力処理部２２５は、次のファイルブロックについて、（Ｓ７０５）からの処理を行う。
【００５６】
以上の処理を各ファイルブロックについて行うことで、データ入出力処理部２２５は、ファイル書き込み要求に応じて、指定されたファイル名に対応するサブファイル３１２にデータを書き込むとともに、ファイル３１０が二重化されている場合には、対応するミラーサブファイル３１４にもデータが書き込まれる。本実施形態では、ミラーサブファイル３１４は、対応するサブファイル３１２とは異なるディスク装置３０に格納されることになるので、二重化されているファイル３１０については、ディスク装置３０のひとつに障害が発生した場合でも、他のディスク装置３０に格納されたミラーサブファイル３１４を利用することが可能となる。よって、情報処理システムで管理されるファイルの保全性を向上し、システム全体の可用性を向上することができる。
【００５７】
＝＝読み出し処理＝＝
図１７は、ファイル読み出し要求に応じてデータ入出力処理部２２５により行われる、ファイル３１０の読み出し処理の流れを示す図である。
【００５８】
データ入出力処理部２２５は、マスタファイル３１１から、データ読み出し要求に設定されているファイル名に対応するファイル情報を読み出し（Ｓ８０１）、ディスク状態管理テーブル２１２から、「×」の障害フラグ２６２に対応する障害ディスク名を検索する（Ｓ８０２）。障害ディスク名があれば（Ｓ８０３：ＹＥＳ）、データ入出力処理部２２５は、ファイル管理テーブル４００から、障害ディスク名を含むサブファイル名４０１又はミラーサブファイル名４０４を検索する（Ｓ８０４）。障害ディスク名を含むサブファイル名４０１又はミラーサブファイル名４０４がある場合（Ｓ８０５：ＹＥＳ）、データ入出力処理部２２５は、障害ディスク名を含むサブファイル名４０１が示すサブファイル３１２をクローズし（Ｓ８０６）、クローズしたサブファイル３１２に対応するファイル管理テーブル４００のサブファイル記述子４０３をエラー値に変更する（Ｓ８０７）。また、データ入出力処理部２２５は、障害ディスク名を含むミラーサブファイル名４０４が示すミラーサブファイル３１４をクローズし（Ｓ８０８）、クローズしたミラーサブファイル３１４に対応するファイル管理テーブル４００のミラーサブファイル記述子４０６をエラー値に変更する（Ｓ８０９）。
【００５９】
次にデータ入出力処理部２２５は、ファイル管理テーブル４００から、サブファイル３１２が正常にオープンされていないことを示す０以下のサブファイル記述子４０３と、ミラーサブファイル３１４が正常にオープンされていないことを示す０以下のミラーサブファイル記述子４０６とを含む行を検索する（Ｓ８１０）。上記の行がある場合には（Ｓ８１１：ＹＥＳ）、ファイル送信部２２６は、ファイルの読み出しができない旨のエラーを示すメッセージを計算ノード１０に送信する（Ｓ８１２）。
【００６０】
一方、上記のような行がない場合（Ｓ８１１：ＮＯ）、データ入出力処理部２２５は、読み出しデータ変数をクリアし（Ｓ８１３）、読み出しファイルサイズ変数を０に設定して（Ｓ８１４）、読み出しファイルサイズが、ファイル情報のファイルサイズ３３２を超えない間、以下の処理を行う。
【００６１】
データ入出力処理部２２５は、サブファイル記述子４０３又はミラーサブファイル記述子４０６のうち、０より大きい値である何れかを読み出しファイル記述子として選択し（Ｓ８１５）、選択した読み出しファイル記述子を用いて、サブファイル３１２又はミラーサブファイル３１４から１つ分のファイルブロックを読み出す（Ｓ８１６）。ここでエラーが発生した場合（Ｓ８１７：ＹＥＳ）には、データ入出力処理部２２５は、ファイル管理テーブル４００の、上記（Ｓ８１５）で選択したサブファイル記述子４０３又はミラーサブファイル記述子４０６をエラー値に変更し（Ｓ８１８）、ディスク状態管理テーブル２１２に含まれるディスク名２６１のうち、読み出しにエラーが発生したサブファイル記述子４０３又はミラーサブファイル記述子４０６に対応するサブファイル名４０１又はミラーサブファイル名４０４に含まれるものを特定し、特定したディスク名２６１に対応する障害フラグ２６２に「×」を設定し（Ｓ８１９）、再度（Ｓ８０２）からの処理をやり直す。
【００６２】
一方、読み出しファイル記述子を用いたファイルブロックの読み出しに成功した場合は（Ｓ８１７：ＮＯ）、読み出したファイルブロックを読み出しデータに追加し（Ｓ８２０）、ファイルサイズにファイルブロックのサイズを加算する（Ｓ８２１）。
【００６３】
上記の処理を繰り返して、ファイル入出力要求に指定されたファイル名に対応するサブファイル３１２又はミラーサブファイル３１４からのデータを全て読み出すと、ファイル送信部２２６は、ファイル入出力要求に対する応答として、上記の読み出しデータを計算ノード１０に送信する（Ｓ８２１）。
【００６４】
このように、本実施形態のＩ／Ｏノード２０では、二重化されたファイルについては、サブファイル３１２又はミラーサブファイル３１４の何れか一方にアクセスできれば、ファイルブロックを読み出すことができる。本実施形態の情報処理システムでは、サブファイル３１２とミラーサブファイル３１４とは異なるディスク装置３０に格納されているので、あるディスク装置３０に障害が発生し、そのディスク装置３０が記憶しているサブファイル３１２にアクセスできなくなったとしても、障害が発生したディスク装置３０とは異なるディスク装置３０に記憶されているミラーサブファイル３１４からデータを読み出すことができる。つまり、ディスク装置３０に障害が発生しても、データの入出力処理を継続することが可能となる。したがって、情報処理システム全体の可用性を高めることができる。
【００６５】
また、本実施形態の情報処理システムでは、複数のディスク装置３０に対して分散してファイル３１０を管理するので、ファイル３１０に対するデータ入出力を、複数のＩ／Ｏノード２０で並列的に行うことができる。したがって、データ入出力処理の処理効率を高めることができる。その一方で、ディスク装置３０に障害が発生した場合にも、障害の発生していない他のディスク装置３０からデータの読み出しを継続することができるので、ファイル３１０に対するアクセスを効率化しつつ、情報処理システムの可用性を高めることができる。
【００６６】
また、本実施形態の情報処理システムでは、ファイル毎に二重化を行うかどうかを設定することができるので、例えば、重要度の高いファイル３１０については、上述したような二重化を行うことで、ディスク装置３０に障害が発生した場合でも、他のディスク装置３０に記憶されているミラーサブファイル３１４を利用することでファイル３１０の完全性を保つことを可能としつつ、重要度のそれ程高くないファイル３１０については二重化を行わないことで、ファイル３１０に対する書き込み処理を効率的に行うようにすることもできる。このように、本実施形態の情報処理システムでは、二重化を行うかどうかを柔軟に設定することができるので、情報処理システムの用途に応じて、ファイル３１０の完全性や保全性、システムの可用性や高速性のバランスを考慮した設定を行うことが可能となる。
【００６７】
なお、本実施形態のＩ／Ｏノード２０は、二重化を解除することを指示するコマンド（以下、ミラー解除要求という。）を受信するミラー解除要求受信部と、ミラー解除要求に応じて、ファイル３１０の二重化を解除するミラー解除処理部とを備えるようにしてもよい。この場合、ミラー解除処理部は、ミラー解除要求に設定されているファイル名に対応するファイル情報のミラーフラグ３３５が「○」である場合には、ミラーサブファイル開始位置３３６により特定されるディスク装置３０のそれぞれから、「／ｂｌｋ／」＋ファイル名３３１＋「．１」が示すファイルを削除し、ミラーフラグ３３５を「×」に設定する。これにより、それ以降のファイル３１０への書き込み時には、サブファイル３１２にのみ書き込みが行われるようになる。
【００６８】
また、本実施形態では、二重化はサブファイル３１２についてのみ行われるものとしたが、マスタファイル３１１についての二重化を行うようにしてもよい。この場合、ミラー処理部２２３は、マスタファイル３１１が記憶されているローカルディスクとは異なるリモートディスクにマスタファイル３１１をコピーすることができる。これにより、ローカルディスクに障害が発生した場合にも、ファイル３１０の完全性を保つことができる。
【００６９】
また、本実施形態では、計算ノード１０及びＩ／Ｏノード２０のそれぞれが、独立してディスク状態管理テーブル１１４及び２１２を管理するものとしたが、各ノード間で同期をとるようにしてもよい。
【００７０】
また、マスタノードのみがディスク状態管理テーブル２１２を管理し、計算ノード１０やサブノードがディスク状態管理テーブル１１４及び２１２を管理しないようにしてもよい。
【００７１】
また、本実施形態の情報処理システムでは、簡単のため、Ｉ／Ｏノード２０は３台であるものとしたが、任意の複数の台数の構成としてもよいし、計算ノード１０についても、１つ以上の任意の台数の構成としてもよい。
【００７２】
また、本実施形態の情報処理システムでは、計算ノード１０とＩ／Ｏノード２０とが分離している構成としたが、複数の計算ノード１０が直接ディスク装置３０と接続されるような構成としてもよい。
【００７３】
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【００７４】
【図１】本実施形態に係る情報処理システムの全体構成を示す図である。
【図２】計算ノード１０のハードウェア構成を示す図である。
【図３】計算ノード１０の機能ブロック図である。
【図４】Ｉ／Ｏノード２０のハードウェア構成を示す図である。
【図５】Ｉ／Ｏノード２０の機能ブロック図である。
【図６】構成定義ファイル３１３の構成を示す図である。
【図７】マスタファイル３１１の内容例を示す図である。
【図８】ファイル３１０が複数のディスク装置３０に分散管理される様子を示す図である。
【図９】ディスク状態管理テーブル２１２の構成を示す図である。
【図１０】ディスク状態管理テーブル２１２の状態を説明する図である。
【図１１】ミラー処理部２２３によるファイルの二重化処理の流れを示す図である。
【図１２】二重化処理を行った後の状態を説明する図である。
【図１３】ファイルのオープン処理の流れを示す図である。
【図１４】ファイル管理テーブル４００の構成を示す図である。
【図１５】ファイル３１０へのデータ書き込み処理の流れを示す図である。
【図１６】ファイル管理テーブル４００に設定されているファイル記述子のチェック処理の流れを示す図である。
【図１７】ファイル３１０の読み出し処理の流れを示す図である。
【符号の説明】
【００７５】
１０    計算ノード                    ２０    Ｉ／Ｏノード
３０    ディスク装置                  ４０    ＬＡＮ
１０１  ＣＰＵ                        １０２  メモリ
１０３  記憶装置                      １０４  通信インタフェース
１１１  ＯＳプログラム                １１２  クラスタプログラム
１１３  アプリケーションプログラム    １１４  ディスク状態管理テーブル
１２１  情報処理部                    １２２  ファイル入出力要求送信部
１２３  ファイル受信部                １２４  ミラー要求送信部
２０１  ＣＰＵ                        ２０２  メモリ
２０３  記憶装置                      ２０４  通信インタフェース
２０５  Ｉ／Ｏインタフェース          ２１１  ＯＳプログラム
２１２  ディスク状態管理テーブル      ２２１  マウント処理部
２２２  ミラー要求受信部              ２２３  ミラー処理部
２２４  ファイル入出力要求受信部      ２２５  データ入出力処理部
２２６  ファイル送信部                ２２７  障害検知部
３１１  マスタファイル                ３１２  サブファイル
３１３  構成定義ファイル              ３１４  ミラーサブファイル
３３１  ファイル名                    ３３２  ファイルサイズ
３３３  サブファイル数                ３３４  サブファイル開始位置
３３５  ミラーフラグ                  ３３６  ミラーサブファイル開始位置
４００  ファイル管理テーブル          ４０１  サブファイル名
４０２  ｖｎｏｄｅ                    ４０３  サブファイル記述子
４０４  ミラーサブファイル名          ４０５  ｖｎｏｄｅ
４０６  ミラーサブファイル記述子      ４０７  ミラーフラグ
【図１】
2007328727.tif 000003
【図２】
2007328727.tif 000004
【図３】
2007328727.tif 000005
【図４】
2007328727.tif 000006
【図５】
2007328727.tif 000007
【図６】
2007328727.tif 000008
【図７】
2007328727.tif 000009
【図８】
2007328727.tif 000010
【図９】
2007328727.tif 000011
【図１０】
2007328727.tif 000012
【図１１】
2007328727.tif 000013
【図１２】
2007328727.tif 000014
【図１３】
2007328727.tif 000015
【図１４】
2007328727.tif 000016
【図１５】
2007328727.tif 000017
【図１６】
2007328727.tif 000018
【図１７】
2007328727.tif 000019