"サーバ計算機と、前記サーバ計算機を管理する管理計算機と、前記サーバ計算機が接続可能なストレージ装置と、を備える計算機システムであって、前記サーバ計算機は、前記管理計算機から前記ストレージ装置への書き込み要求信号である情報処理要求を受信した場合に、前記サーバ計算機が備える第1の記憶部に前記情報処理要求に関する書き込みを行う処理である仮書き込み処理を行い、前記仮書き込み処理が完了したことを示す第1の通知信号を前記管理計算機に送信し、前記管理計算機は、前記第1の通知信号を受信した場合に、前記管理計算機が前記第1の通知信号を受信したことを示す第2の通知信号を前記サーバ計算機に送信し、前記サーバ計算機は、前記第2の通知信号を受信した場合に、前記第1の記憶部から前記仮書き込みの内容を読み出し、前記仮書き込みの内容を前記ストレージ装置に書き込む、こと、を特徴とする計算機システム。請求項1に記載の計算機システムであって、前記管理計算機は、前記第1の通知信号を受信した場合に、前記情報処理要求の内容を前記管理計算機が備える第2の記憶部に保持する、こと、を特徴とする計算機システム。請求項2に記載の計算機システムであって、前記サーバ計算機は、前記ストレージ装置への前記仮書き込みの内容の書き込みが完了した場合に、前記ストレージ装置への書き込みが完了したことを示す第3の通知信号を前記管理計算機に送信し、前記管理計算機は、前記第3の通知信号を受信した場合に、前記第2の記憶部に保持した前記情報処理要求の内容を削除する、こと、を特徴とする計算機システム。請求項1に記載の計算機システムであって、前記サーバ計算機は、前記仮書き込み処理を行う際に前記ストレージ装置から読み出した情報を利用する、こと、を特徴とする計算機システム。請求項1に記載の計算機システムであって、前記サーバ計算機として、第1のサーバ計算機と、前記第1のサーバ計算機の代替サーバ計算機である第2のサーバ計算機と、を管理し、前記第1のサーバ計算機が前記管理計算機から情報処理要求を受信した場合に、前記管理計算機は、前記第1のサーバ計算機から前記第1の通知信号を受信した際に、前記情報処理要求の内容を前記仮想計算機が備える第2の記憶部に保持し、前記第2のサーバ計算機は、前記第1のサーバ計算機に障害が発生した際に、前記第2の記憶部に保持された前記情報処理要求の内容に基づいて前記情報処理要求に関する処理を前記第1のサーバ計算機から引き継ぐ、こと、を特徴とする計算機システム。サーバ計算機と、前記サーバ計算機を管理する管理計算機と、前記サーバ計算機が接続可能なストレージ装置と、を備える計算機システムにおける計算機システム制御方法であって、前記サーバ計算機が、前記管理計算機から前記ストレージ装置への書き込み要求信号である情報処理要求を受信した場合に、前記サーバ計算機が備える第1の記憶部に前記情報処理要求に関する書き込みを行う処理である仮書き込み処理を行い、前記仮書き込み処理が完了したことを示す第1の通知信号を前記管理計算機に送信し、前記管理計算機が、前記第1の通知信号を受信した場合に、前記管理計算機が前記第1の通知信号を受信したことを示す第2の通知信号を前記サーバ計算機に送信し、前記サーバ計算機が、前記第2の通知信号を受信した場合に、前記第1の記憶部から前記仮書き込みの内容を読み出し、前記仮書き込みの内容を前記ストレージ装置に書き込む、こと、を特徴とする計算機システム制御方法。請求項6に記載の計算機システム制御方法であって、前記管理計算機が、前記第1の通知信号を受信した場合に、前記情報処理要求の内容を前記管理計算機が備える第2の記憶部に保持する、こと、を特徴とする計算機システム制御方法。請求項7に記載の計算機システム制御方法であって、前記サーバ計算機が、前記ストレージ装置への前記仮書き込みの内容の書き込みが完了した場合に、前記ストレージ装置への書き込みが完了したことを示す第3の通知信号を前記管理計算機に送信し、前記管理計算機が、前記第3の通知信号を受信した場合に、前記第2の記憶部に保持した前記情報処理要求の内容を削除する、こと、を特徴とする計算機システム制御方法。請求項6に記載の計算機システム制御方法であって、前記サーバ計算機が、前記仮書き込み処理を行う際に前記ストレージ装置から読み出した情報を利用する、こと、を特徴とする計算機システム制御方法。請求項6に記載の計算機システム制御方法であって、前記サーバ計算機として、第1のサーバ計算機と、前記第1のサーバ計算機の代替サーバ計算機である第2のサーバ計算機と、を管理し、前記第1のサーバ計算機が前記管理計算機から情報処理要求を受信した場合に、前記管理計算機が、前記第1のサーバ計算機から前記第1の通知信号を受信した際に、前記情報処理要求の内容を前記仮想計算機が備える第2の記憶部に保持し、前記第2のサーバ計算機が、前記第1のサーバ計算機に障害が発生した際に、前記第2の記憶部に保持された前記情報処理要求の内容に基づいて前記情報処理要求に関する処理を前記第1のサーバ計算機から引き継ぐ、こと、を特徴とする計算機システム制御方法。管理計算機と、ストレージ装置と、に接続可能なサーバ計算機であって、前記管理計算機との間で信号を送受信する送受信部と、情報を記憶する情報記憶部と、前記ストレージ装置への情報の書き込みと、前記ストレージ装置からの情報の読み出しと、を行うストレージ装置接続部と、前記送受信部が前記管理計算機から前記ストレージ装置への書き込み要求信号である情報処理要求を受信した場合に、前記情報記憶部に前記情報処理要求に関する書き込みを行う処理である仮書き込み処理を行う処理要求仮実行部と、を備え、前記送受信部は、前記仮書き込み処理が完了したことを示す第1の通知信号を前記管理計算機に送信し、前記管理計算機が前記第1の通知信号を受信したことを示す第2の通知信号を前記管理計算機から受信し、前記ストレージ装置接続部は、前記送受信部が前記第2の通知信号を受信した場合に、前記第1の記憶部から前記仮書き込みの内容を読み出し、前記仮書き込みの内容を前記ストレージ装置に書き込む、こと、を特徴とするサーバ計算機。請求項11に記載のサーバ計算機であって、前記送受信部は、前記ストレージ装置への前記仮書き込みの内容の書き込みが完了した場合に、前記ストレージ装置への書き込みが完了したことを示す第3の通知信号を前記管理計算機に送信する、こと、を特徴とするサーバ計算機。請求項11に記載のサーバ計算機であって、前記ストレージ装置接続部は、前記仮書き込み処理を行う際に前記ストレージ装置から読み出した情報を利用すること、を特徴とするサーバ計算機。非特許文献1に示されるような先行技術ではクライアントからの要求に処理番号を付加し、要求内容と共に処理番号をディスクに書き込むことで、サーバの故障時にもクライアントからの要求を漏れなく重複なく再現することを可能としている。その例を図16に示す。ファイルシステムクライアントは処理番号1としてメッセージM1601にてファイルAの作成をサーバに依頼する。サーバはメッセージM1602にてディスクにファイルAの作成を要求し、メッセージM1603にて最新の処理番号が1であることの書き込みを要求する。その後メッセージM1604でクライアントに処理の成功を返す。サーバに障害が発生した場合、失敗した処理を再実行するため代替サーバは最新の処理番号を調べこの例では1の書き込みに失敗しているので0、メッセージM1605にてクライアントに通知する。そしてクライアントは失敗した最新のリクエスト1から再実行するメッセージM1606。処理番号と処理の本体が不可分に書込みできれば問題は起きないが、図16の例のように、ファイルの実体の作成は成功したものの処理番号の書き込みに失敗した場合は、メッセージM1607のように再実行によって二重実行が発生し、本来発生しないエラーが発生する。このような問題を回避するためには、例えばディスクファイルシステムに処理内容と不可分に処理番号を書くような機能が必要となる。しかし、オペレーティングシステムに標準装備されたディスクファイルシステムに新たな機能を付加するのは、ソースコードの入手可能性、あるいは既存ファイルとの互換性維持のために困難を伴う場合が多い。しかし、オペレーティングシステムに標準装備されたディスクファイルシステムに新たな機能を付加するのは、ソースコードの入手可能性、あるいは既存ファイルとの互換性維持のために困難を伴う場合が多い。この困難を回避するためにはディスクファイルシステム一式を開発しなくてはならず、ソフトウェアの開発、保守コストの増大を招く。本発明は、上記の問題点に鑑みてなされたものであり、ディスクファイルシステムに処理番号の記録等の為の特殊な機能を仮定せずとも、主サーバの故障時における主サーバから副サーバへの処理の引継ぎを行う際に、書き込み処理の二重実行によるエラーの発生を防止することを目的とする。本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、サーバ計算機が、管理計算機からストレージ装置への書き込み要求信号を受信した場合に、前記サーバ計算機が備える第1の記憶部に前記書き込み要求信号に関する書き込みを行う仮書き込みを行い、前記仮書き込みが完了したことを示す第1の通知信号を前記管理計算機に送信し、前記管理計算機が、前記第1の通知信号を受信した場合に、前記管理計算機が前記第1の通知信号を受信したことを示す第2の通知信号を前記サーバ計算機に送信し、前記サーバ計算機が、前記第2の通知信号を受信した場合に、前記ストレージ装置への書き込み処理を行う。本発明によれば、ディスクファイルシステムに処理番号の記録等の為の特殊な機能を仮定せずとも、主サーバの故障時における主サーバから副サーバへの処理の引継ぎを行う際に、書き込み処理の二重実行によるエラーの発生を防止することが可能となる。以下、本発明の各種の実施例について、図面を用いて詳細に説明する。本実施例では最初に、本発明を実施する際の装置構成の例を示した後に、全体の処理概要を示し、その後詳細を解説する。はじめに、図1に示すブロック構成図を用いて、実施例1の計算機システムの構成について説明する。クライアント計算機101は、ネットワーク104を介して、サーバ計算機102aおよび102bに接続される。サーバ計算機102a、102bにはディスク装置103a~103cが接続される。ネットワーク105を用い、サーバ計算機102a、102bは共に同じディスク装置103a~103cにアクセスできるように接続されている。ネットワーク104は、例えば、LANLocalAreaNetworkである。ネットワーク105は、例えば、SANStorageAreaNetworkである。クライアント計算機101は、システムの管理者またはユーザーが使用するコンピュータ装置であり、プロセッサ111、メモリ112、記憶装置113、ネットワークインタフェース114等を備え、ネットワークインタフェース114を用いてネットワーク104に接続されている。クライアント計算機101のメモリ112には、ユーザープログラム140およびファイルシステムクライアント141が格納されており、ユーザープログラム140は例えばファイルシステムクライアント141に対してデータ入出力命令を発行する。ユーザープログラム140およびファイルシステムクライアント141は計算機プログラムであり、記憶装置113に格納されている当該計算機プログラムをメモリ112に読み込む、または、当該計算機プログラムを格納している他の計算機等よりネットワーク104およびネットワークインタフェース114を用いてメモリ112に読み込むなどの方法があり、プロセッサ111によって実行される。また、ファイルシステムクライアント141は、後述するユーザ要求転送部151、ACK処理部152、再送処理部153、及びリクエスト履歴部171を有する。サーバ計算機102aは、クライアント101からのファイル入出力要求を受け付け、ディスク装置103a~103cにアクセスするためのコンピュータ装置であり、プロセッサ121a、メモリ122a、記憶装置123a、ネットワークインタフェース124a、ストレージインタフェース125a等を備える。ネットワークインタフェース124aを通じネットワーク104に、ストレージインタフェース125aを通じ、ネットワーク105に接続されている。サーバ計算機102aのメモリにはファイルシステムサーバ142aが格納されており、ファイルシステムクライアント141からの要求を処理する。ファイルシステムサーバ142aは計算機プログラムであり、記憶装置123aに格納されている当該計算機プログラムをメモリ122aに読み込む、または、当該計算機プログラムを格納している他の計算機よりネットワーク104およびネットワークインタフェース124aを用いてメモリ122aに読み込むなどの方法があり、プロセッサ121aによって実行される。また、ファイルシステムサーバ142aは、後述するクライアント要求仮実行部161a、フェイルオーバー処理部162a、ディスクファイルシステム部163a、及びメモリファイルシステム情報181aを有する。サーバ計算機102bは、上述のファイルシステムサーバ142a、プロセッサ121a、記憶装置123a等のサーバ計算機102aが有する構成と同様の構成を持つコンピュータ装置であり、ネットワークインタフェースを用いてネットワーク104に、ストレージインタフェースを用いてネットワーク105に接続されている。サーバ計算機102bのメモリ122bには、クライアント要求仮実行部161aと同じ構成、機能を有するクライアント要求仮実行部161b、フェイルオーバー処理部161aと同じ構成、機能を有するフェイルオーバー処理部161b、ディスクファイルシステム部163aと同じ構成、機能を有するディスクファイルシステム部163b、メモリファイルシステム情報181aと同じ構成、機能を有するメモリファイルシステム情報181bが格納されていて、プロセッサ121bにより実行される。本実施例ではサーバ計算機102aを通常使用するサーバ計算機、サーバ計算機102bを102aに障害が発生した場合の代替サーバ計算機として説明を行うが、102a、102bに構成や機能の相違はなく役割は入れ替わっても構わない。また、お互いが他方の代替サーバとして構成されていても良い。ディスク装置103a~103cはネットワーク105に接続可能な記憶装置であり、例えば、ハードディスクドライブHDD、半導体ディスクSSD、またはHDD、SDDをRAIDシステムとして組み合わせたストレージアレイ等である。次にファイルシステムクライアント141が有する各機能ブロックについて概要を説明する。ユーザ要求転送部151はユーザープログラムからのファイル入出力命令をサーバ計算機に転送する。ACK処理部152はユーザ要求転送部151が送信した処理要求がサーバ側で処理されたか処理に失敗したかを管理する。再送処理部153はサーバ計算機102aの障害の後、代替サーバとして動作するサーバ計算機102bに対して、102aが障害前に受け取ったものの処理が完了しなかったリクエストを再実行するよう求める。リクエスト履歴情報171は、ACK処理部152が未完の処理を管理するための管理情報である。次にファイルシステムサーバ142aについて概要を説明する。クライアント要求仮実行部161aはファイルシステムクライアント141からの要求を受け付け、メモリファイルシステム情報181aに対して処理を行う。フェイルオーバー処理部162aはファイルシステムクライアントの再送処理部153からのリクエストを受けつける。ディスクファイルシステム部163aはディスク装置103a~103cに保存されるデータのデータ構造を管理し、ファイルの読み込み、書き込みなどの一連の処理を提供する。ディスクファイルシステム部163aは、ファイルに対する作成、削除、読み込み、書き込み等の操作要求を103a等のディスク装置上の記録位置と記録形式に変換した上でディスクに読み書き要求を発行する処理を行う。メモリファイルシステム情報181aは、クライアント要求仮実行部161aによって使用され、ファイルシステムクライアントからの処理要求を、一時的にメモリ上で実行するためのデータ構造である。次に、図11、図12を用いて、図1の説明で述べた記憶装置内に構築するデータ構造であるリクエスト履歴情報171、および、メモリファイルシステム情報181aの構成例についてそれぞれ詳細に説明する。ただし、以下の内容はデータ構造の一例であり、同等の意味を持つ内容を保持できればその形式は任意である。図11にリクエスト履歴情報171の構成例を示す。リクエスト履歴情報は一個のリクエストをひとつの要素とするリスト構造である。リスト構造を計算機のメモリ上に構築する具体的方法はここでは詳細に説明しない。リストは先頭を示す構造1101から連なり、リストの各要素には、次のリクエストへのポインタ1103、リクエスト種別1104、宛先のサーバ計算機の識別番号1105、リクエストの内容1106を含む。リクエスト種別とは、当該リクエストがファイル作成、ファイル書き込み、属性変更など多数あるファイル操作のうちのどれであったのかを示す数値である。宛先のサーバ計算機の識別番号は該リクエストを送信した先のファイルサーバ計算機を識別できる番号で、例えばファイルシステムサーバとクライアントの間で合意されたノード番号、あるいはネットワークのアドレスなどである。リクエストの内容は種別に依存し、例えばファイル作成ならば親ディレクトリを識別するデータとファイル名、作成時の属性情報が含まれる。データ書き込みであれば書き込んだデータを保持しているメモリの番地1108およびデータ本体1109が含まれる。リクエスト内容の保持方法は任意であるが、最も簡単には、リクエスト実行時にネットワークに送信した情報をすべて保持しておけばよい。図12にメモリファイルシステム情報181aの構成例を示す。図12の例ではメモリファイルシステム情報は保持されているディレクトリをノードとする木構造である。木構造を計算機のメモリ上に構築する方法はここでは詳細に説明しない。各ディレクトリはそのディレクトリに含まれるファイルをリスト構造として保持するため、その先頭となるファイルの情報を保持するメモリのメモリアドレス1210を保持する。また、各ディレクトリは、そのディレクトリの名前、およびアクセス権などの属性を保持する。各ファイルは名前1202、ファイルの種別属性1203、所有者1204、グループ1205、アクセス権1206、開放可能フラグ1207の他に、ファイルの内容を記したデータを保持したメモリのアドレス1208、同じディレクトリに存在する次のファイルの情報へのポインタ1209を持つ。ここまで本実施例における計算機システムの構成例について述べてきたが、以下にて、図1に示される各部の動作と各部間の関係について詳細に説明する。本実施例において、サーバ計算機102aに障害がない場合の動作概要は図2のようになる。また、サーバ計算機102aに障害が発生した場合の本発明における動作概要が図3、図4、図5である。図2におけるいかなるタイミングでサーバ計算機102aの障害が起きても本発明の手法で回復できることを示すため、サーバ計算機102aの障害図3、図4、図5において×印380で示されているの発生タイミングごとに3つの場合に分けて、本発明の詳細な内容を説明している。まず、サーバに障害が発生しない場合を示す図2から説明する。メッセージM210にて、ユーザ要求転送部151はユーザープログラム140からファイル処理要求を受け取る。これは、例えばファイルの作成、削除、読み込み、書き込みなどである。M210を受け取ったユーザ要求転送部151はファイルシステムサーバ内のクライアント要求仮実行部161aに対してメッセージM220でこの処理要求を転送する。M220を受け取ったクライアント要求仮実行部161aは、リクエストR225にてメモリファイルシステム情報181aに対して要求を実行する。この際、メモリファイルシステム情報181a中には存在しないデータが必要になった場合は、メッセージM222にてクライアント要求仮実行部161aはディスクファイルシステム部163aに対して読み込み要求を伝える。M222を受けてディスクファイルシステム部163aはリクエストR226にて103a等のディスク装置から必要なデータを受け取り、このデータをメッセージM227にてクライアント要求仮実行部161aに転送する。クライアント要求仮実行部はM230にてファイルシステムクライアント141内のACK処理部152に処理結果を伝達する。M230を受け取ったACK処理部152はメッセージM240にてユーザ要求転送部に当該処理結果を通知する。さらにユーザ要求転送部151はM250にて当該処理結果をユーザープログラムに通知する。M230がエラー終了を示していた場合、または読み込み処理でファイルシステムに変更を加えていない場合は処理を終了する。一方、M230が書き込みを伴うリクエストで、かつエラー終了を示していない場合、ユーザ要求転送部151は該リクエストをR215にてリクエスト履歴情報171に登録する。ACK処理部152はさらにメッセージM260にてクライアント要求仮実行部161aに対してM230の受領を伝える。M260を受け取ったクライアント要求仮実行部は、ディスクファイルシステム部163aを通じてR225と同内容のリクエストを103a等のディスク装置に書き込むM270およびR275。ディスクファイルシステム部163aはM280にてディスクへの書き込み完了通知をクライアント要求仮実行部に通知し、クライアント要求仮実行部はM290にて103a等のディスク装置への書き込み通知をACK処理部152に返す。M290を受け取ったACK処理部152はリクエストR295にてリクエスト履歴情報から当該処理の情報を削除する。上記のようにリクエスト履歴情報の登録、削除を行うことにより、リクエスト履歴情報には、リクエストR275によって103a等のディスク装置に対する書き込みが行われている途中にあるリクエストの一覧が保存されることになる。リクエスト履歴情報が存在することにより、サーバの障害発生時に103a等のディスク装置への書き込み完了が確認できていないリクエストを再実行することが可能となる。図2のシーケンスで処理を行うことの効果は、クライアントのACK処理部152がリクエストの処理結果であるメッセージM230を受領するまでは、決して103a等のディスク装置への書き込みリクエストR275が発行されないことを保障することが可能となる点である。この性質により、メッセージM230を受け取る前にサーバに障害が発生した場合、その処理は決して103a等のディスク装置に変更を加えていないことが保障されるため、再実行時に二重実行の懸念がない。図3および図4は、サーバ計算機に障害が発生し、ACK処理部152が上述のメッセージM260に対する応答を一定時間内に受け取らなかった場合の動作を示している。ここで一定時間とはファイルシステムの利用者によって設定される閾値であり、たとえば0.1秒あるいは1秒等、秒単位で設定される時間である。図中、×印380はサーバ障害により処理が継続できなくなったことを示す。図3、4はサーバ計算機102aに障害が発生するタイミングが異なり、図3はリクエストR275により当該リクエストの内容が103a等のディスク装置に反映された後の障害であるのに対し、図4はR275の完了前の障害発生である。なお、図3、図4、図5について、図2で既に説明した処理と同じ符号が付された処理については同じ処理内容であり、図2とは異なる処理のみについて下記にて説明する。まず、図3について説明する。図3中、ユーザープログラム140、ユーザ要求処理部151、ACK処理部152、再送処理部164は図1に示すとおりクライアント計算機101に備えられている。また×印380以前のクライアント要求仮実行部161a、ディスクファイルシステム部163aは図1の計算機102aに備えられている。また、丸印381、382、383から始まるシーケンスは、サーバ計算機102aから処理を引き継ぐサーバ計算機102bに備えられた、それぞれクライアント要求仮実行部161b、フェイルオーバー処理部162b、ディスクファイルシステム部163bの処理である。ACK処理部152は、図2におけるM290のような、メッセージM260に対する応答を一定時間受け取らなかった場合、再送処理部153を起動する。再送処理部153はリクエスト履歴情報に蓄えられているリクエストのなかの最も古いものを取り出すと同時にリクエスト履歴情報171からは削除し、新しく立ち上がったサーバ計算機102bのフェイルオーバー処理部162bに対し、該リクエストをメッセージM310にて送信する。フェイルオーバー処理部162bはメッセージM320で代替サーバ102bのディスクファイルシステム部163bに対して処理要求を行い、代替サーバ102bのディスクファイルシステム部163bがリクエストR325で103a等のディスク装置に対して書き込みを行う上述の通り、リクエスト履歴情報に残るのは書き込み処理のみである。再送処理部153はM330、M340を通じてM310のリクエストの処理結果を受け取る。次に、図4について説明する。なお、図4については、図3で既に説明した処理と同じ符号が付された処理については同じ処理内容である。図4では、メッセージM260がクライアント要求仮実行部161aに到達する前にサーバ計算機102aに障害が発生している為、図3にて示したM270、R275のメッセージは送信されず、サーバ計算機102aによってはリクエストの内容が103a等のディスク装置に反映されない。次に、図5を用いて、ユーザ要求転送部151がメッセージM220の結果を一定時間内に受け取らなかった場合の処理について説明する。なお、図3、図4で既に説明した処理と同じ符号が付された処理については同じ処理内容である。この場合、ユーザ要求転送部151は代替サーバ102bに対してM220aにてM220の再送信を行う。その後の処理は図2に示した平常時の処理と同じである。以上が、本実施例における全体的な処理の概要である。以下、このような処理を実現するための各部の動作とメモリ上のデータ格納方式について詳細に説明する。図6はユーザ要求転送部151の処理を示したフロー図である。ユーザ要求転送部151はユーザープログラム140からのファイル処理要求を受信することを契機として起動されるS601。ユーザ要求転送部151は起動後、ステップS602にて、そのファイル処理要求をサーバ計算機102a内のファイルシステムサーバのクライアント要求仮実行部161aに送信する。ユーザ要求転送部151は、ステップS603にてACK処理部152を通じてサーバ計算機102a内のファイルシステムサーバのクライアント要求仮実行部161aまたはディスクファイルシステム部163aにおける処理結果が返るのを待つ。ステップS604はサーバからのメッセージを待つ処理であり、一定時間内にサーバからのメッセージを受領できなかった場合は通信エラーが発生したと判定して、ステップS605にて、後述する再送処理部153の処理が終了するのを待った後に、ステップS606にて要求の宛先を代替サーバ102bに変更し、ステップS602にて代替サーバ102bに対して要求を再送する。一方、ステップS604にて一定時間内にサーバからのメッセージを受領できた場合は通信エラーは発生していないと判定してステップS607の処理に移る。ステップS607はサーバ計算機102a、またはステップS606を経た場合はサーバ計算機102bからの応答を調査するステップであり、ステップS602でサーバに要求した処理が103a等のディスク装置への書き込みを伴う処理であったかどうかを調査する。調査の結果、ステップS602でサーバに要求した処理が103a等のディスク装置への書き込みを伴っていない場合はステップS610にてファイルシステムサーバ162a、162bのクライアント要求仮実行部161a、161bまたはディスクファイルシステム部163a、163bの処理結果をS601で受け取った要求に対する応答としてユーザープログラムに返す。ステップS607の判定の結果、ステップS602でサーバに要求した処理が103a等のディスク装置への書き込みを伴っている場合は、さらにステップS608にて当該要求のファイルシステムサーバ142a、142bにおけるクライアント要求仮実行部またはディスクファイルシステム部の処理結果が成功であったかどうかを判定する。判定の結果が失敗であった場合はすでに説明したステップS610を実行する。判定の結果が成功であった場合はステップS609にて該リクエストをリクエスト履歴情報に保存し、ステップS610を実行する。次に、図7を用いてクライアント要求仮実行部103a、103bの処理について説明する。図7では、クライアント要求仮実行部103aを例として説明する。クライアント要求仮実行部103aは上述のユーザ要求転送部151からリクエストを受信することによって起動するステップS701。クライアント要求仮実行部103aは、起動すると受信したリクエストが103a等のディスク装置への書き込みを伴う処理であるか否かを判定するS702。ステップS702の判定で、受信したリクエストが103a等のディスク装置への書き込みを伴う処理であった場合、クライアント要求仮実行部103aはまず、ステップS703にてメモリファイルシステム情報181aに空き領域があるかどうかを判定する。S703にて空きがないと判定した場合はステップS704にて、上述のメモリファイルシステム情報中181aの開放可能フラグが立ったデータを削除して記憶領域を解放する。この処理の後、クライアント要求仮実行部103aはステップS705にてメモリファイルシステム情報181aに対してリクエストにて要求された書き込みを行う。一方、S703にて空きがあると判定した場合は、S704の処理を行わずに、クライアント要求仮実行部103aはステップS705にてメモリファイルシステム情報181aに対してリクエストにて要求された書き込みを行う。ステップS702の判定にて受信したリクエストが103a等のディスク装置への書き込みを伴う処理であった場合は、ステップS706にて対象データがメモリファイルシステム情報181a内に存在するかを調査する。S706にて対象データがメモリファイルシステム情報181a内に存在する場合はステップS707にてメモリファイルシステム情報181aから当該データを取り出す。ステップS706にて対象データがメモリファイルシステム情報181a内に存在しない場合は、ステップS708にてディスクファイルシステム部163aに読み込み命令を発行し、要求されたデータを取得する。最後にステップS709にて上記のメモリファイルシステムに対する処理におけるエラーの有無をACK処理部152に対して送信し、処理を終了する。クライアント要求仮実行部103a、103bの処理の特徴は、103a等のディスク装置への変更を伴う処理を、実際に103a等のディスク装置に要求する前にメモリファイルシステム情報に対して実行することである。クライアント要求仮実行部の存在により、ファイルシステムクライアントのユーザ要求転送部151からのリクエストによる103a等のディスク装置への書き込みの発生の有無を、実際に103a等のディスク装置に変更を加えることなく判定できる効果がある。また、メモリファイルシステム情報181a、181bに対する処理の特徴は、後に説明する図8のステップS805を経ることなくつまり、ファイルシステムクライアントのACK処理部152からの命令を受け取ることなくメモリファイルシステム情報181a、181bに含まれる情報が削除されない点にある。これは、空き容量が枯渇し次第、自由に内容を破棄するディスクキャッシュ等の公知技術との相違点である。次に、図9を用いてACK処理部152の処理について説明する。ACK処理部152はクライアント要求仮実行部161a、161bからの処理結果M230を受け取ることで起動するステップS901。起動したACK処理部152は、ステップS902にて、受け取った結果を図2、3等におけるメッセージM240にてユーザ要求転送部151に通知する。その後、ACK処理部152はステップS903にて当該処理が103a等のディスク装置への書き込みを伴う命令かどうかを判定する。S903にて103a等のディスク装置への書き込みを伴う命令でないと判定した場合はACK処理部152は終了するS909。一方、S903にて103a等のディスク装置への書き込みを伴う命令であると判定した場合には、ステップS904にて処理の成功がクライアント要求仮実行部161a、161bから通知されているか否かを判定する。S904にて処理が成功していないと判定した場合は、ACK処理部152は終了するS909。一方、S904にて処理が成功したと判定した場合は、ステップS905にて図3、4等におけるメッセージM230の受領を示すメッセージM260をクライアント要求仮実行部161a、161bに対して送信し、S906にてそのメッセージに対する応答M290を受け取ったか否かを判定する。S906の判定にて、そのメッセージに対する応答を受け取った場合は、ステップS907にて当該リクエストをリクエスト履歴情報から削除して、ステップS909にて処理を終了する。S906の判定にて、そのメッセージに対する応答を受け取らなかった場合は、ステップS908にて再送処理部153を起動し、ステップS909にて処理を終了する。リクエスト履歴情報を削除するステップS907により、後述する図10の再送処理部153が不必要な再実行を行うことを抑止することができる。次に、図8を用いて、図9のACK処理部152の動作のS905にてクライアント要求仮実行部161a、161bに対して送信されたメッセージM260について、その受信時のクライアント要求仮実行部161a、161bの動作について説明する。ステップS801にて図3,図4等におけるメッセージM260を受け取ったクライアント要求仮実行部161a、161bは、ステップS802にて、図2で説明したリクエストR225にて書き込みを行ったデータをメモリファイルシステム情報181aから読み込む。続いてステップS803にてクライアント要求仮実行部161a、161bはそのデータを書き込むようディスクファイルシステム部163aに要求しM270、ステップS804にて書込完了M280を示す応答を待つ。応答の受領後、ステップS805にてメモリファイルシステム情報に対して、当該データを削除してもよいことを示す開放可能フラグを立て、最後にステップS806にてファイルシステムクライアントのACK処理部152に対して処理の完了を通知するM290。次に、図10を用いて再送処理部153の動作について説明する。再送処理部153は、上述のとおり図9のステップS908にて開始を指示する命令をACK処理部152から受けて動作を開始する。再送処理部153は、ステップS1002にて、リクエスト履歴情報171が空か否かを判定し、空の場合はステップS1003にて処理を終了する。空でない場合はステップS1004にてリクエスト履歴情報から最も古いリクエストである履歴の先頭のリクエストを取り出し、履歴情報からは削除する。ステップS1005にて該リクエストをフェイルオーバー処理部162bに送信するM310。次に、ステップS1006にて、フェイルオーバー処理部162bからの応答メッセージM340の受領を待つ。最後にステップS1002の判定に戻る。次に、図13を用いてフェイルオーバー処理部162bの動作について説明する。フェイルオーバー処理部162bはステップS1301にて、図3,4にて説明した再送処理部153からのメッセージM310を受信し、ステップS1302にてM310に書かれている処理要求をディスクファイルシステム部163bに要求するM320。その後、ステップS1303にてディスクファイルシステム部163bの書き込み完了通知M330を待ち、当該完了通知を受信したらディスクファイルシステム部163bが行ったファイルの書き込み処理の結果をステップS1304にて再送処理部153に通知するM340。フェイルオーバー処理部162bは再送処理部153とディスクファイルシステム部163bの仲介を行うが、フェイルオーバー処理部162bが存在することにより、ディスクファイルシステム部163bが再送処理部153の処理に対応するための機能を持つ必要がなくなり、既存のオペレーティングシステムに含まれるファイルシステムが変更なく利用できるようになる。以上が本発明の実施例1である。本実施例では、図2で説明したように、クライアントからの要求メッセージであるM220について、クライアント計算機がメッセージM230を受け取っていない場合には決して103a等のディスク装置に対して実行されないことを保障している。そのため、代替サーバの起動後、図4のM310による再処理の際も二重実行の懸念はない。一方、図3のシーケンスでは103a等のディスク装置へのリクエストR275、およびR325の合計2回発行されているため、2回目は二重実行となり、例えばファイル作成のように二回実行できない処理は失敗となる。しかし、図3のシーケンスではメッセージM230により、処理自体の成功はクライアント計算機によって確認されているため、再実行の失敗はユーザープログラムに通知すべき失敗ではなく、再実行が原因で発生したものであると判断できる。そのため、このエラーを無視することにより、ユーザープログラムにM250にて通知したエラーの有無と103a等のディスク装置上の状態が矛盾しないことが保障できる。以上のように、ユーザープログラム140から要求された処理の成功、失敗が未知であるリクエストは決して103a等のディスク装置に書き込まないよう制御することで、103a等のディスク装置に処理番号を書き込むなどの特殊な処理を加えることなく、フェイルオーバー機能を実現できる。以下にて、実施例2について説明する。実施例2は、クライアント計算機やサーバ計算機の基本的な構成動作については実施例1と同様であるが、これらの構成動作を並列ファイルシステムにおいて実現する際の実施の形態である。よって、本実施例においては、実施例1と異なる構成動作についてのみ説明を行うこととする。図14の本発明を並列ファイルシステムに適用した場合のシステム構成の一例を示す図である。並列ファイルシステムは複数のサーバ計算機を用いて単一のファイルシステムを提供する。この際、メタデータサーバと呼ばれる一台のサーバ計算機がディレクトリ構造とファイルの属性を管理し、その他のサーバにファイル内のデータを格納する手法、あるいはすべてのサーバ計算機が等しく役割を分担して、各サーバ計算機がディレクトリやファイルの一部分を保持する手法がある。図14に示すように本発明の第2の実施形態では、並列ファイルサーバを構成するそれぞれのサーバ計算機に正サーバと副サーバを準備するものであり、例として計算機102aと102bがメタデータを管理する正副のサーバ計算機、1401aおよび1402aがデータを管理する正サーバ、1402bおよび1402bがデータを管理する副サーバである。図1と同じ番号を付した部分は第一の実施例と同一の機能を持つため、ここでは説明しない。クライアント計算機101’が備える、並列ファイルシステムクライアント部1450は並列ファイルシステムとして動作するための制御を行う。ファイルシステムクライアント1451、1452は、ファイルシステムクライアント141と同様にユーザ要求転送部151、ACK処理部152、再送処理部153、リクエスト履歴情報171を備える。ここで、ファイルシステムクライアント141は、サーバ計算機102aおよび102bをサーバとする。ファイルシステムクライアント1451は、サーバ計算機1401aと1401bをサーバとする。ファイルシステムクライアント1452は、サーバ計算機1402aと1402bをサーバとする。図15に並列ファイルシステムクライアント部1450の動作を示す。まず、並列ファイルシステムクライアント部はステップS1501にてユーザーアプリケーションからファイル操作の要求を受け取る。次に並列ファイルシステムクライアント部はステップS1502にてその要求を属性に対する操作とファイルデータに対する操作に分解する。その後、並列ファイルシステムクライアント部はステップS1503にてファイル属性に関する操作をファイルシステムクライアント141に要求する。次に、判定S1504において処理内容がファイルの内容へのアクセスを伴う処理であるか否かを判定する。判定S1504において処理内容がファイルの内容へのアクセスを伴う処理であると判定した場合、ステップS1505にて並列ファイルシステムクライアント部はファイルシステムクライアント1451および1452にファイルアクセスを要求する。ファイルシステムクライアント131、1451、1452の動作は先の実施例1と同じ機能を持つため、ここでは説明は省略する。S1504の判定にてファイルの内容へのアクセスを伴わない場合、あるいはステップS1506の終了後、並列ファイルシステムクライアント部はステップS1507にて終了する。以上のように、実施例2では、並列ファイルシステムに本発明を適用することにより、並列ファイルシステムを構成するサーバ102a、1401a、1402aのいずれかに障害が発生した際も、それぞれの代替サーバ102b、1401b、1402bで処理を引き継ぐことができる。これにより例えば図15のS1503までは成功し、S1505に失敗するような、不整合状態を招くエラーを避けることができるため、並列ファイルシステム全体の健全性を向上させることが可能となる。なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加削除置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSDSolidStateDrive等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。"