(57)【要約】  ジョブを実行する計算機の故障に備えて代替計算機に複製を保存する場合に、記憶容量の消費量を抑え、かつ、障害発生時にジョブを再実行可能な状態に復元する機能を提供することを目的とする。  一つの処理が複数に分割されたジョブを実行する複数の計算機がネットワークを介して接続される計算機システムであって、複数の計算機は、ジョブを実行する第１の計算機、及び、第１の計算機に格納されるデータの複製データを保持する第２の計算機を含み、計算機システムは、ジョブによって第１の計算機の記憶媒体に書き込まれたデータの複製データを生成し、特定の条件下において複製データを第２の計算機の記憶媒体に書き込む複製制御部を備えることを特徴とする。
2013073005.tif 000002
【特許請求の範囲】
【請求項１】
一つの処理が複数に分割されたジョブを実行する複数の計算機がネットワークを介して接続される計算機システムであって、
前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサに接続される記憶媒体と、他の装置と接続するためのネットワークインタフェースとを有し、
前記複数の計算機は、前記ジョブを実行する第１の計算機、及び、前記第１の計算機の前記記憶媒体に格納されるデータの複製データを保持する第２の計算機を含み、
前記計算機システムは、
前記ジョブによって前記第１の計算機の記憶媒体に書き込まれたデータの複製データを生成し、特定の条件下において前記複製データを前記第２の計算機の前記記憶媒体に書き込む複製制御部を備えることを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記複製制御部は、前記ジョブが終了した旨の通知を受信した後に前記複製データを前記第２の計算機の記憶媒体に書き込むことを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記計算機システムは、さらに、前記ジョブの終了を検出し、前記ジョブが終了した旨の通知を送信する終了通知部を備えることを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記計算機システムは、前記複数の計算機が有する前記記憶媒体によって提供される記憶領域を統合したストレージ上に構成されるファイルシステムを備え、
前記ファイルシステムは、前記ジョブの実行時に用いられる複数のファイルのデータを管理し、
前記ストレージを構成する前記記憶領域を提供する前記複数の計算機の各々には、所定の範囲毎に前記ファイルのデータが分散して配置され、
前記複数の計算機は、さらに、前記ジョブの実行スケジュールを管理するスケジューラ計算機を含み、
前記スケジューラ計算機は、前記終了通知部を有し、
前記第１の計算機は、第１の複製制御部を有し、
前記終了通知部は、
前記ジョブの終了を検出した場合に、前記終了したジョブを実行していた前記第１の計算機の識別子を取得し、
前記取得された第１の計算機の識別子が含まれる前記通知を、前記第１の複製制御部に送信し、
前記第１の複製制御部は、
前記第１の計算機の記憶媒体に書き込まれたデータの書き込み先を示す情報と、前記ジョブの識別子とを対応づけた書込情報を生成し、
前記通知を受信した場合、前記書込情報を参照して前記第１の計算機の記憶媒体からデータを読み出し、
前記読み出されたデータを前記複製データとして前記第２の計算機に送信することを特徴とする計算機システム。
【請求項５】
請求項４に記載の計算機システムであって、
前記第１の計算機は、
前記ジョブの実行時に、前記ファイルシステムが管理する前記ファイルへのアクセス要求を処理するファイルサーバ部を有し、
実行中の前記ジョブの識別子と、前記ジョブがアクセスするファイルの識別子とを対応づけたファイル情報を格納し、
前記ファイルサーバ部は、
前記ジョブによって出力されたアクセス要求を受け付けた場合、前記ファイル情報を参照して前記アクセス要求の対象となる前記ファイルの識別子に一致する情報が登録されているか否かを判定し、
前記アクセス要求の対象となるファイルの識別子に一致する情報が登録されている場合、前記登録されている情報を参照して、前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致するか否かを判定し、
前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致しない場合、前記アクセス要求の対象となるファイルへのアクセスを拒否し、
前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致する場合、前記アクセス要求の対象となるファイルへのアクセスを許可することを特徴とする計算機システム。
【請求項６】
請求項５に記載の計算機システムであって、
前記ファイルサーバ部は、
前記ファイルへのアクセスが許可され、かつ、前記アクセス要求が書込要求である場合に、前記書込要求に含まれる前記ファイルの識別子及び前記ジョブの識別子を抽出して、前記ファイル情報に登録し、
前記データの書き込み先を示す情報を算出し、
前記ジョブの識別子、前記算出されたデータの書き込み先を示す情報及び前記データを含む書込要求を前記第１の複製制御部に送信し、
前記第１の複製制御部は、
前記ファイルサーバ部から前記書込要求を受信した場合に、前記書込要求に基づいて前記書込情報を生成し、
前記書込要求に含まれるデータを前記第１の計算機の記憶媒体に書き込むことを特徴とする計算機システム。
【請求項７】
請求項３に記載の計算機システムであって、
前記計算機システムは、前記複数の計算機が有する前記記憶媒体によって提供される記憶領域を統合したストレージ上に構成されるファイルシステムを備え、
前記ファイルシステムは、前記ジョブの実行時に用いられる複数のファイルのデータを管理し、
前記ストレージを構成する前記記憶領域を提供する前記複数の計算機の各々には、所定の範囲毎に前記ファイルのデータが分散して配置され、
前記複数の計算機は、さらに、前記ジョブの実行スケジュールを管理するスケジューラ計算機を含み、
前記スケジューラ計算機は、前記終了通知部を有し、
前記第１の計算機は、第１の複製制御部を有し、
前記第２の計算機は、第２の複製制御部及び一時書込領域を有し、
前記終了通知部は、
前記ジョブの終了を検出した場合に、前記終了したジョブを実行していた前記第１の計算機の識別子を取得し、
前記取得された第１の計算機の識別子が含まれる前記通知を、前記第２の複製制御部に送信し、
前記第１の複製制御部は、
前記第１の計算機の記憶媒体に書き込まれたデータを前記複製データとして前記第２の計算機に送信し、
前記第２の複製制御部は、
前記第１の計算機の記憶媒体に書き込まれたデータの書き込み先を示す情報と、前記ジョブの識別子とを対応づけた書込情報を生成し、
前記受信した複製データを前記一時書込領域に書き込み、
前記通知を受信した場合、前記書込情報を参照して前記一時書込領域に格納される前記複製データを前記第２の計算機の記憶媒体に書き込むことを特徴とする計算機システム。
【請求項８】
請求項７に記載の計算機システムであって、
前記第１の計算機は、
前記ジョブの実行時に、前記ファイルシステムが管理する前記ファイルへのアクセス要求を処理するファイルサーバ部を有し、
実行中の前記ジョブの識別子と、前記ジョブがアクセスするファイルの識別子とを対応づけたファイル情報を格納し、
前記ファイルサーバ部は、
前記ジョブによって出力されたアクセス要求を受け付けた場合、前記ファイル情報を参照して前記アクセス要求の対象となる前記ファイルの識別子に一致する情報が登録されているか否かを判定し、
前記アクセス要求の対象となるファイルの識別子に一致する情報が登録されている場合、前記登録されている情報を参照して、前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致するか否かを判定し、
前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致しない場合、前記アクセス要求の対象となるファイルへのアクセスを拒否し、
前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致する場合、前記アクセス要求の対象となるファイルへのアクセスを許可することを特徴とする計算機システム。
【請求項９】
請求項８に記載の計算機システムであって、
前記ファイルサーバ部は、
前記ファイルへのアクセスが許可され、かつ、前記アクセス要求が書込要求である場合に、前記書込要求に含まれる前記ファイルの識別子及び前記ジョブの識別子を抽出して、前記ファイル情報に登録し、
前記データの書き込み先を示す情報を算出し、
前記ジョブの識別子、前記算出されたデータの書き込み先を示す情報及び前記データを含む書込要求を前記第１の複製制御部に送信し、
前記第１の複製制御部は、
前記書込要求に含まれるデータを前記第１の計算機の記憶媒体に書き込み、
前記書込要求を前記第２の複製制御部に転送し、
前記第２の複製制御部は、前記書込要求を受信した場合に、前記書込情報を生成し、
前記受信した書込要求に含まれるデータを前記複製データとして前記一時書込領域に書き込むことを特徴とする計算機システム。
【請求項１０】
一つの処理が複数に分割されたジョブを実行する複数の計算機がネットワークを介して接続される計算機システムにおける複製制御方法であって、
前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサに接続される記憶媒体と、他の装置と接続するためのネットワークインタフェースとを有し、
前記複数の計算機は、前記ジョブを実行する第１の計算機、及び、前記第１の計算機の前記記憶媒体に格納されるデータの複製データを保持する第２の計算機を含み、
前記方法は、
前記複数の計算機のうち少なくとも一つの前記計算機が、前記ジョブによって前記第１の計算機の記憶媒体に書き込まれたデータの複製データを生成する第１のステップと、
前記複数の計算機のうち少なくとも一つの前記計算機が、特定の条件下において前記複製データを前記第２の計算機の前記記憶媒体に書き込む第２のステップと、
を含むことを特徴とする複製制御方法。
【請求項１１】
請求項１０に記載の複製制御方法であって、
前記第２のステップでは、前記ジョブが終了した旨の通知を受け取った後に前記複製データを前記第２の計算機の記憶媒体に書き込むことを特徴とする複製制御方法。
【請求項１２】
請求項１１に記載の複製制御方法であって、
前記方法は、さらに、前記ジョブの終了を検出し、ジョブが終了した旨の通知を送信する第３のステップを含むことを特徴とする複製制御方法。
【請求項１３】
請求項１２に記載の複製制御方法であって、
前記計算機システムは、前記複数の計算機が有する前記記憶媒体によって提供される記憶領域を統合したストレージ上に構成されるファイルシステムを備え、
前記ファイルシステムは、前記ジョブの実行時に用いられる複数のファイルのデータを管理し、
前記ストレージを構成する前記記憶領域を提供する前記複数の計算機の各々には、所定の範囲毎に前記ファイルのデータが分散して配置され、
前記複数の計算機は、さらに、前記ジョブの実行スケジュールを管理するスケジューラ計算機を含み、
前記第３のステップは、
前記スケジューラ計算機が、前記ジョブの終了を検出した場合に、前記終了したジョブを実行していた前記第１の計算機の識別子を取得するステップと、
前記スケジューラ計算機が、前記取得された第１の計算機の識別子が含まれる前記通知を、前記第１の計算機に送信するステップと、
を含み、
前記第１のステップは、前記第１の計算機が、前記第１の計算機の記憶媒体に書き込まれたデータの書き込み先を示す情報と、前記ジョブの識別子とを対応づけた書込情報を生成するステップを含み、
前記第２のステップは、
前記第１の計算機が、前記通知を受信した場合、前記書込情報を参照して前記第１の計算機の記憶媒体からデータを読み出すステップと、
前記第１の計算機が、前記読み出されたデータを前記複製データとして前記第２の計算機に送信するステップと、
を含むことを特徴とする複製制御方法。
【請求項１４】
請求項１３に記載の複製制御方法であって、
前記第１の計算機は、
前記ジョブの実行時に、前記ファイルシステムが管理する前記ファイルへのアクセス要求を処理するファイルサーバ部を有し、
実行中の前記ジョブの識別子と、前記ジョブがアクセスするファイルの識別子とを対応づけたファイル情報を格納し、
前記方法は、さらに、
前記第１の計算機が、前記ジョブによって出力されたアクセス要求を受け付けた場合、前記ファイル情報を参照して前記アクセス要求の対象となる前記ファイルの識別子に一致する情報が登録されているか否かを判定するステップと、
前記第１の計算機が、前記アクセス要求の対象となるファイルの識別子に一致する情報が登録されている場合、前記登録されている情報を参照して、前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致するか否かを判定するステップと、
前記第１の計算機が、前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致しない場合、前記アクセス要求の対象となるファイルへのアクセスを拒否するステップと、
前記第１の計算機が、前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致する場合、前記アクセス要求の対象となるファイルへのアクセスを許可するステップと、
を含むことを特徴とする複製制御方法。
【請求項１５】
請求項１４に記載の複製制御方法であって、
前記方法は、さらに、
前記第１の計算機が、前記ファイルへのアクセスが許可され、かつ、前記アクセス要求が書込要求である場合に、前記書込要求に含まれる前記ファイルの識別子及び前記ジョブの識別子を抽出して、前記ファイル情報に登録するステップと、
前記第１の計算機が、前記データの書き込み先を示す情報を算出するステップと、
前記第１の計算機が、前記ジョブの識別子、前記算出されたデータの書き込み先を示す情報及び前記データを含む書込要求を出力するステップと、
を含み、
前記第１のステップは、
前記第１の計算機が、前記出力された書込要求を受信した場合に、前記書込要求に基づいて前記書込情報を生成するステップと、
前記第１の計算機が、前記出力された書込要求に含まれるデータを前記第１の計算機の記憶媒体に書き込むステップと、
を含むことを特徴とする複製制御方法。
【請求項１６】
請求項１２に記載の複製制御方法であって、
前記計算機システムは、前記複数の計算機が有する前記記憶媒体によって提供される記憶領域を統合したストレージ上に構成されるファイルシステムを備え、
前記ファイルシステムは、前記ジョブの実行時に用いられる複数のファイルのデータを管理し、
前記ストレージを構成する前記記憶領域を提供する前記複数の計算機の各々には、所定の範囲毎に前記ファイルのデータが分散して配置され、
前記複数の計算機は、さらに、前記ジョブの実行スケジュールを管理するスケジューラ計算機を含み、
前記第２の計算機は、一時書込領域を有し、
前記第３のステップは、
前記スケジューラ計算機が、前記ジョブの終了を検出した場合に、前記終了したジョブを実行していた前記第１の計算機の識別子を取得するステップと、
前記スケジューラ計算機が、前記第２の計算機に、前記取得された第１の計算機の識別子が含まれる前記通知を送信するステップと、
を含み、
前記第１のステップは、
前記第１の計算機が、前記第１の計算機の記憶媒体に書き込まれたデータを前記複製データとして前記第２の計算機に送信するステップと、
前記第２の計算機が、前記第１の計算機の記憶媒体に書き込まれたデータの書き込み先を示す情報と、前記ジョブの識別子とを対応づけた書込情報を生成するステップと、
前記第２の計算機が、前記受信した複製データを前記一時書込領域に書き込むステップと、
を含み、
前記第２のステップは、前記第２の計算機が、前記通知を受信した場合、前記書込情報を参照して前記一時書込領域に格納される前記複製データを前記第２の計算機の記憶媒体に書き込むステップを含むことを特徴とする複製制御方法。
【請求項１７】
請求項１６に記載の複製制御方法であって、
前記第１の計算機は、
前記ジョブの実行時に、前記ファイルシステムが管理する前記ファイルへのアクセス要求を処理するファイルサーバ部を有し、
実行中の前記ジョブの識別子と、前記ジョブがアクセスするファイルの識別子とを対応づけたファイル情報を格納し、
前記方法は、さらに、
前記第１の計算機が、前記ジョブによって出力されたアクセス要求を受け付けた場合、前記ファイル情報を参照して前記アクセス要求の対象となる前記ファイルの識別子に一致する情報が登録されているか否かを判定するステップと、
前記第１の計算機が、前記アクセス要求の対象となるファイルの識別子に一致する情報が登録されている場合、前記登録されている情報を参照して、前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致するか否かを判定するステップと、
前記第１の計算機が、前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致しない場合、前記アクセス要求の対象となるファイルへのアクセスを拒否するステップと、
前記第１の計算機が、前記アクセス要求の対象となるファイルと対応づけられる前記ジョブの識別子が、当該アクセス要求を出力した前記ジョブの識別子と一致する場合、前記アクセス要求の対象となるファイルへのアクセスを許可するステップと、
を含むことを特徴とする複製制御方法。
【請求項１８】
請求項１７に記載の複製制御方法であって、
前記方法は、さらに、
前記第１の計算機が、前記ファイルへのアクセスが許可され、かつ、前記アクセス要求が書込要求である場合に、前記書込要求に含まれる前記ファイルの識別子及び前記ジョブの識別子を抽出して、前記ファイル情報に登録するステップと、
前記第１の計算機が、前記データの書き込み先を示す情報を算出するステップと、
前記第１の計算機が、前記ジョブの識別子、前記算出されたデータの書き込み先を示す情報及び前記データを含む書込要求を出力するステップと、
前記第１の計算機が、前記出力された書込要求に含まれるデータを前記第１の計算機の記憶媒体に書き込むステップと、
前記第１の計算機が、前記出力された書込要求を前記第２の複製制御部に転送するステップと、
を含み、
前記第１のステップは、
前記第２の計算機が、前記書込要求を受信した場合に、前記書込情報を生成するステップと、
前記第２の計算機が、前記受信した書込要求に含まれるデータを前記複製データとして前記一時書込領域に書き込むステップと、
を含むことを特徴とする複製制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の計算機を用いて構築された分散共有ファイルシステムに関する。特に、複製データを管理する計算機及び複製データの管理方法に関する。
【背景技術】
【０００２】
計算機を利用して大量のデータ処理を実行する場合に、目的とする処理全体を複数のジョブに分割し、各ジョブを複数の計算機に並列に実行させることによって処理の高速化を図ることがある。このような場合にはバッチジョブシステムによって、各ジョブに対する計算機資源の割り当てが決定される。【０００３】
バッチジョブシステムは処理の進捗を監視しながら動的に計算機を割り当てるため、各ジョブが割り当てられる計算機は各ジョブの実行開始直前まで確定しない。そのため、ジョブの入出力データを格納するファイルは分散共有ファイルシステム上に配置し、すべての計算機から同じファイルが利用できるようにすることがある。【０００４】
複数の計算機が内蔵するディスクドライブから構成される分散供給ファイルシステムにおいて、当該ファイルシステムを構成する計算機のうち、ジョブを実行する計算機の障害が発生する場合がある。【０００５】
この場合、代替計算機は障害が発生した計算機に格納される情報にアクセスし、当該計算機上で実行されていたジョブを再び実行する必要がある。すなわち、代替計算機は、計算機に障害が発生するまでのファイルに対する変更をすべて破棄した後、ジョブを再実行しなければならない。これは、障害発生までに計算機によって実行されたジョブの結果が上書きされる等の問題を防止するためである。【０００６】
代替計算機にデータを引き継ぐための一般的な方法は、代替計算機に複製されたデータを保存することである。また、特許文献１には、ジョブの異常発生時にファイルが変更されている場合でも、ファイルを再実行できる状態に戻す作業を行わずに、変更中のファイルが参照されるのを防止できるジョブ管理システムを提供するための方法が記載されている。【０００７】
具体的には、特許文献１には、ジョブ管理システムが、少なくとも実ディレクトリが記憶された記憶手段と、ジョブ処理の実行開始とともに実ディレクトリを複製した仮想ディレクトリを記憶手段に生成し、仮想ディレクトリに対してジョブ処理によるファイルアクセスを行うように制御する制御手段を備える方法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００９−２５１７６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ジョブを実行する計算機の障害発生時に代替計算機が分散共有ファイルシステムの機能を引き継ぐためには、代替計算機が複製データを保持すればよいが、ディスクの消費量を倍増させるという問題点がある。【００１０】
さらに、前述した公知技術を用いた場合、代替計算機にジョブを再実行させるために実行前のファイル状態に復元する必要があるが、これを実現するためにはジョブの実行前後の２つの異なるバージョンのファイルを管理することになり、ディスクの消費量が実ファイルサイズの２倍となるという問題点がある。【００１１】
したがって、公知技術及び特許文献１に記載の技術の二つを組み合わせて使用すると実ファイルサイズの４倍の記憶領域を消費することとなり、ディスクの利用効率が悪い。【００１２】
本発明は、前述した問題点に鑑みてなされてものであり、ディスクの消費量を抑えつつ、分散共有ファイルシステムの耐故障性を向上させ、ジョブの再実行時にファイル状態を復元することが可能な計算機システム及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、一つの処理が複数に分割されたジョブを実行する複数の計算機がネットワークを介して接続される計算機システムであって、前記複数の計算機の各々は、プロセッサと、前記プロセッサに接続されるメモリと、前記プロセッサに接続される記憶媒体と、他の装置と接続するためのネットワークインタフェースとを有し、前記複数の計算機は、前記ジョブを実行する第１の計算機、及び、前記第１の計算機の前記記憶媒体に格納されるデータの複製データを保持する第２の計算機を含み、前記計算機システムは、前記ジョブによって前記第１の計算機の記憶媒体に書き込まれたデータの複製データを生成し、特定の条件下において前記複製データを前記第２の計算機の前記記憶媒体に書き込む複製制御部を備えることを特徴とする。
【発明の効果】
【００１４】
本発明によれば、記憶媒体の記憶容量の消費量を抑えつつ、計算機システムの耐故障性を確保でき、かつ、ジョブを実行する計算機の障害発生時に自動的にジョブを再実行可能な状態に復元することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第一の実施形態の計算機システムの構成を示すブロック図である。
【図２Ａ】本発明の第一の実施形態におけるスケジューラ計算機のハードウェア構成を示すブロック図である。
【図２Ｂ】本発明の第一の実施形態におけるサーバ計算機のハードウェア構成を示すブロック図である。
【図２Ｃ】本発明の第一の実施形態におけるサーバ計算機のハードウェア構成を示すブロック図である。
【図３】本発明の第一の実施形態における複製ファイルリストの一例を示す説明図である。
【図４】本発明の第一の実施形態における遅延書込情報の一例を示す説明図である。
【図５】本発明の第一の実施形態における終了通知部が実行する処理を説明するフローチャートである。
【図６】本発明の第一の実施形態におけるファイルサーバ部が実行する処理を説明するフローチャートである。
【図７】本発明の第一の実施形態における遅延複製制御部が実行する処理を説明するフローチャートである。
【図８】本発明の第一の実施形態における遅延複製制御部が実行する処理を説明するフローチャートである。
【図９】本発明の第一の実施形態における複製受信設定部が実行する処理を説明するフローチャートである。
【図１０】本発明の第一の実施形態における複製送信設定部が実行する処理を説明するフローチャートである。
【図１１】本発明の第一の実施形態における回復処理部が実行する処理を説明するフローチャートである。
【図１２Ａ】本発明の第一の実施形態におけるフェイルオーバー処理部が実行する処理を説明するフローチャートである。
【図１２Ｂ】本発明の第一の実施形態におけるフェイルオーバー処理部が実行する処理を説明するフローチャートである。
【図１３】本発明の第二の実施形態の計算機システムの構成を示すブロック図である。
【図１４】本発明の第二の実施形態における複製制御部が実行する処理を説明するフローチャートである。
【図１５】本発明の第三の実施形態の計算機システムの構成を示すブロック図である。
【図１６】本発明の第三の実施形態における複製分割部が実行する処理の詳細を説明するフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００１７】
［第一の実施形態］
【００１８】
図１は、本発明の第一の実施形態の計算機システムの構成を示すブロック図である。
【００１９】
計算機システムは、スケジューラ計算機１０１、サーバ計算機１０２Ａ及びサーバ計算機１０２Ｂから構成される。スケジューラ計算機１０１、サーバ計算機１０２Ａ及びサーバ計算機１０２Ｂは、ネットワーク１０４を介して互いに接続される。ネットワーク１０４は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）である。ただし、本発明はネットワーク１０４の接続形式に限定されない。以下では、サーバ計算機１０２Ａ及びサーバ計算機１０２Ｂを区別しない場合、サーバ計算機１０２と記載する。
【００２０】
本実施形態では、サーバ計算機１０２Ａは割り当てられたジョブを実行する計算機として稼動し、サーバ計算機１０２Ｂはサーバ計算機１０２Ａに障害が発生した場合に代替えの計算機として稼動するものとする。なお、図１では、サーバ計算機１０２は２台であるが、３台以上あってもよい。以下では、ジョブが実行可能な計算機を実行計算機と記載し、障害発生時に他のサーバ計算機１０２の代替えとして稼動可能な計算機を代替計算機と記載する。
【００２１】
また、本実施形態では、サーバ計算機１０２が提供する記憶領域を統合した記憶領域上に一つの分散共有ファイルシステムが構築される。各サーバ計算機１０２が提供する記憶領域には所定の範囲毎にデータが格納され、各サーバ計算機１０２は当該範囲のデータを管理する。各サーバ計算機１０２は、自身が管理する範囲に含まれるデータのマスタとして処理（書き込み、読み出し、更新等）を実行する。また、各サーバ計算機１０２は、他のサーバ計算機１０２がマスタとして管理する所定の範囲のデータの複製データを保持する。
【００２２】
以下の説明では、前述した構成の下、各サーバ計算機１０２上でジョブが実行されるものとする。
【００２３】
スケジューラ計算機１０１は、サーバ計算機１０２にジョブを割り当て、また、各ジョブの実行状態を管理する計算機である。スケジューラ計算機１０１は、ジョブスケジューラ１４１を備える。ジョブスケジューラ１４１は、ジョブの管理機能を実現するためのプログラムであり、複数のモジュール及び情報から構成される。
【００２４】
具体的には、ジョブスケジューラ１４１は、終了通知部１５１、スケジューリング部１５２、開始処理部１５３、終了処理部１５４及びジョブ情報１７１を含む。
【００２５】
終了通知部１５１は、ジョブの終了を検出し、ジョブの終了をサーバ計算機１０２に通知する。なお、終了通知部１５１が実行する処理の詳細については、図５を用いて後述する。スケジューリング部１５２は、ジョブ情報１７１を参照して開始すべきジョブと、当該ジョブを割り当てるサーバ計算機１０２とを決定する。
【００２６】
開始処理部１５３は、スケジューリング部１５２によって決定されたサーバ計算機１０２にジョブの実行の開始を指示する。終了処理部１５４は、ジョブの終了を監視し、ジョブの終了を検出した場合に、当該ジョブが終了したサーバ計算機１０２に空きがあることをスケジューリング部１５２に通知する。
【００２７】
ジョブ情報１７１は、ジョブの割り当てに関する情報を格納する。ジョブ情報１７１には、少なくとも、ジョブの識別子及びジョブが割り当てられたサーバ計算機１０２の識別子が含まれる。
【００２８】
なお、スケジューリング部１５２、開始処理部１５３、終了処理部１５４及びジョブ情報１７１は公知であるため、本明細書では詳細については説明しない。
【００２９】
サーバ計算機１０２Ａは、ファイルへのアクセス要求を受け付け、各種処理を実行する実行計算機である。サーバ計算機１０２Ａは、ファイルシステムプログラム１４２及びユーザーアプリケーション１４３を備える。
【００３０】
ユーザーアプリケーション１４３は、ジョブスケジューラ１４１によって起動されるプログラムであり、処理内容は任意である。ユーザーアプリケーション１４３は、処理の実行に際して、自身のファイルシステムプログラム１４２に対してファイルに対するアクセス要求を出力し、又は、他のサーバ計算機１０２のファイルシステムプログラム１４２に対してアクセス要求を送信する。なお、アクセス要求は、他の計算機（図示省略）からネットワーク１０４を介して受信したものでもよい。
【００３１】
ファイルシステムプログラム１４２は、ユーザーアプリケーション１４３から入力されたアクセス要求に基づいて、ファイルを用いて各種処理を実行するプログラムであり、複数のモジュール及び情報から構成される。
【００３２】
具体的には、ファイルシステムプログラム１４２は、ファイルサーバ部１６１、遅延複製制御部１６２、ディスクドライバ１６３Ａ、ネットワークディスクドライバ１６４Ａ、複製送信設定部１６５、回復処理部１６６、複製ファイルリスト１８０、遅延書込情報１８１及び複製送信設定情報１８２を含む。
【００３３】
ファイルサーバ部１６１は、アクセス要求に基づいて、ファイルへの書き込み、ファイルの読み出し等の処理を実行する。なお、ファイルサーバ部１６１が実行する処理の詳細については、図６を用いて後述する。
【００３４】
遅延複製制御部１６２は、ファイルサーバ部１６１によって書き込まれたデータの代替計算機への書き込みを一時的に保留し、ジョブの終了後に複製データを待機計算機であるサーバ計算機１０２Ｂに書き込む。遅延複製制御部１６２が実行する処理の詳細に付いては、図７及び図８を用いて後述する。
【００３５】
前述したように遅延複製制御部１６２は、ジョブが終了するまで、サーバ計算機１０２Ｂへの複製データの書き込みを保留する。これによって、サーバ計算機１０２Ａに障害が発生するこることによってジョブが異常終了した場合でも、サーバ計算機１０２Ｂは、自身が保持するファイル（複製データ）を用いることによって、ジョブ開始前の状態からジョブを再開することができる。
【００３６】
ディスクドライバ１６３Ａは、ファイルのデータを格納するディスク装置１２６Ａ（図２参照）へのアクセスを実現するプログラムである。
【００３７】
ネットワークディスクドライバ１６４Ａは、ネットワーク１０４を介して、ファイルのデータを格納するディスク装置１２６Ｂ（図２参照）へのアクセスを実現するプログラムである。ネットワークディスクドライバ１６４Ａは、ｉＳＣＳＩなどが考えられる。
【００３８】
例えば、ネットワークディスクドライバ１６４Ｂに対して、ネットワークディスクドライバ１６４Ａからのアクセスを許可するように設定した場合、サーバ計算機１０２Ａは、ディスクドライバ１６３Ａを用いてディスク装置１２６Ａ（図２参照）にアクセスするための処理と同一の処理をネットワークディスクドライバ１６４Ａに対して実行することによって、ディスク装置１２６Ｂ（図２参照）にアクセスできる。
【００３９】
複製送信設定部１６５は、複製データの送信先となるサーバ計算機１０２を設定する。複製送信設定部１６５が実行する処理の詳細については、図１０を用いて後述する。
【００４０】
回復処理部１６６は、サーバ計算機１０２Ａに障害が発生した後の回復処理を実行する。回復処理部１６６が実行する処理の詳細については、図１１を用いて後述する。
【００４１】
複製ファイルリスト１８０は、ファイルとジョブとの関連性を示す情報を格納する。複製ファイルリスト１８０は、ファイルサーバ部１６１によって生成される。ファイルサーバ部１６１は、複製ファイルリスト１８０を参照して、ファイルに対する排他制御を実行する。なお、複製ファイルリスト１８０の詳細については、図３を用いて後述する。
【００４２】
遅延書込情報１８１は、複製データに関する情報を格納する。遅延書込情報１８１は、遅延複製制御部１６２によって生成される。遅延書込情報１８１の詳細については、図４を用いて後述する。
【００４３】
複製送信設定情報１８２は、複製データの送信先となるサーバ計算機１０２に関する情報を格納する。具体的には、複製送信設定情報１８２には、サーバ計算機１０２のネットワークアドレス、マックアドレス等が含まれる。本実施形態では、サーバ計算機１０２Ｂのネットワークアドレスが格納されるものとする。
【００４４】
サーバ計算機１０２Ｂは、サーバ計算機１０２Ａに障害が発生した場合に代替計算機として稼動する計算機である。サーバ計算機１０２Ｂは、複製受信部１４４を備える。
【００４５】
複製受信部１４４は、サーバ計算機１０２Ａから送信された複製データの書き込み、及び、障害発生時の復旧処理を実行するためのプログラムであり、複数のモジュールから構成される。具体的には、複製受信部１４４は、ディスクドライバ１６３Ｂ、ネットワークディスクドライバ１６４Ｂ、複製受信設定部１６９及びフェイルオーバー処理部１７０を含む。
【００４６】
ディスクドライバ１６３Ｂ及びネットワークディスクドライバ１６４Ｂは、ディスクドライバ１６３Ａ及びネットワークディスクドライバ１６４Ａと同一のものである。
【００４７】
複製受信設定部１６９は、実行計算機であるサーバ計算機１０２からのアクセス要求を許可するか否かを設定する。複製受信設定部１６９が実行する処理の詳細については、図９を用いて後述する。
【００４８】
フェイルオーバー処理部１７０は、フェイルオーバーを実行する。フェイルオーバー処理部１７０が実行する処理の詳細については、図１２Ａ及び図１２Ｂを用いて後述する。
【００４９】
なお、図１に示す例では、サーバ計算機１０２Ａは実行計算機として稼動し、サーバ計算機１０２Ｂはサーバ計算機１０２Ａの代替計算機として稼動するものとして説明したが、本発明は前述した構成に限定されない。例えば、サーバ計算機１０２Ａ及びサーバ計算機１０２Ｂが共にファイルシステムプログラム１４２及び複製受信部１４４を備え、それぞれ独立してジョブを行う実行計算機として稼動し、かつ、各サーバ計算機１０２Ａ、１０２Ｂが他方のサーバ計算機１０２の代替計算機としても稼動する構成でもよい。
【００５０】
また、本実施形態では、スケジューラ計算機１０１と、サーバ計算機１０２とを別々の計算機としたが、本発明は限定されない。複数のサーバ計算機１０２の少なくとも１台がジョブスケジューラ１４１を備える構成であってもよい。
【００５１】
次に、スケジューラ計算機１０１、サーバ計算機１０２Ａ及びサーバ計算機１０２Ｂのハードウェア構成について説明する。
【００５２】
図２Ａは、本発明の第一の実施形態におけるスケジューラ計算機１０１のハードウェア構成を示すブロック図である。図２Ｂは、本発明の第一の実施形態におけるサーバ計算機１０２Ａのハードウェア構成を示すブロック図である。図２Ｃは、本発明の第一の実施形態におけるサーバ計算機１０２Ｂのハードウェア構成を示すブロック図である。
【００５３】
図２Ａに示すように、スケジューラ計算機１０１は、プロセッサ１１１、メモリ１１２、記憶装置１１３及びネットワークインタフェース１１４を備える。
【００５４】
プロセッサ１１１は、メモリ１１２に格納されたプログラムを実行する。プロセッサ１１１がプログラムを実行することによってスケジューラ計算機１０１の機能を実現できる。なお、プログラムを主語に処理を説明する場合、プロセッサ１１１によってプログラムが実行されていることを示す。
【００５５】
メモリ１１２は、プロセッサ１１１が実行するプログラム及び当該プログラムを実行するために必要なデータを格納する。本実施形態では、メモリ１１２には、ジョブスケジューラ１４１が格納される。メモリ１１２は、例えば、ＤＲＡＭのような半導体メモリが考えられ、記憶装置１１３に比べ高速にアクセスすることができる。
【００５６】
記憶装置１１３は、プログラム及びデータを格納する。記憶装置１１３は、例えば、ＨＤＤ及びＳＳＤなどが考えられる。ネットワークインタフェース１１４は、ネットワーク１０４を介して、他の装置と接続するためのインタフェースである。
【００５７】
なお、ジョブスケジューラ１４１は記憶装置１１３又は外部の装置（図示省略）に格納されていてもよい。この場合、記憶装置１１３からジョブスケジューラ１４１が読み出され、又は、ネットワーク１０４を介して外部の装置からジョブスケジューラ１４１が読み出され、メモリ１１２に格納される。
【００５８】
図２Ｂ及び図２Ｃに示すように、サーバ計算機１０２Ａ及びサーバ計算機１０２Ｂは同一のハードウェア構成である。サーバ計算機１０２Ａは、プロセッサ１２１Ａ、メモリ１２２Ａ、記憶装置１２３Ａ、ネットワークインタフェース１２４Ａ、ストレージインタフェース１２５Ａ及びディスク装置１２６Ａを備える。また、サーバ計算機１０２Ｂは、プロセッサ１２１Ｂ、メモリ１２２Ｂ、記憶装置１２３Ｂ、ネットワークインタフェース１２４Ｂ、ストレージインタフェース１２５Ｂ及びディスク装置１２６Ｂを備える。
【００５９】
プロセッサ１２１Ａ、１２１Ｂは、メモリ１２２Ａ、１２２Ｂに格納されたプログラムを実行する。プロセッサ１２１Ａがプログラムを実行することによってサーバ計算機１０２Ａの機能を実現でき、プロセッサ１２１Ｂがプログラムを実行することによってサーバ計算機１０２Ｂの機能を実現できる。なお、プログラムを主語に処理を説明する場合、プロセッサ１２１Ａ、１２１Ｂによってプログラムが実行されていることを示す。
【００６０】
メモリ１２２Ａ、１２２Ｂは、プロセッサ１２１Ａ、１２１Ｂが実行するプログラム及び当該プログラムを実行するために必要なデータを格納する。本実施形態では、メモリ１２２Ａにはユーザーアプリケーション１４３及びファイルシステムプログラム１４２が格納され、メモリ１２２Ｂには複製受信部１４４が格納される。メモリ１２２Ａ、１２２Ｂは、例えば、ＤＲＡＭのような半導体メモリが考えられ、記憶装置１２３Ａ、１２３Ｂに比べ高速にアクセスすることができる。
【００６１】
記憶装置１２３Ａ、１２３Ｂは、プログラム及びデータを格納する。記憶装置１２３Ａ、１２３Ｂは、例えば、ＨＤＤ及びＳＳＤなどが考えられる。ネットワークインタフェース１２４Ａ、１２４Ｂは、ネットワーク１０４を介して、他の装置と接続するためのインタフェースである。
【００６２】
ストレージインタフェース１２５Ａ、１２５Ｂは、大容量のデータが格納可能なストレージ装置（ディスク装置１２６Ａ、１２６Ｂ）に接続するためのインタフェースである。本実施形態では、ストレージインタフェース１２５Ａを介してディスク装置１２６Ａに接続され、ストレージインタフェース１２５Ｂを介してディスク装置１２６Ｂに接続される。
【００６３】
ディスク装置１２６Ａ、１２６Ｂは、ユーザーアプリケーション１４３によって実行される処理に必要なファイルを格納する。なお、ディスク装置１２６Ａ、１２６Ｂは、複数あってもよい。また、複数のディスク装置１２６Ａ、１２６Ｂを用いてＲＡＩＤを構成してもよい。また、ディスク装置１２６Ａはサーバ計算機１０２Ａに外付けされた形式でもよいし、また、ディスク装置１２６Ｂはサーバ計算機１０２Ｂに外付けされた形式でもよい。
【００６４】
なお、ユーザーアプリケーション１４３及びファイルシステムプログラム１４２は記憶装置１２３Ａ又は外部の装置（図示省略）に格納されていてもよい。この場合、記憶装置１２３Ａから各プログラムが読み出され、又は、ネットワーク１０４を介して外部の装置から各プログラムが読み出され、メモリ１２２Ａに格納される。また、複製受信部１４４は記憶装置１２３Ｂ又は外部の装置（図示省略）に格納されていてもよい。この場合、記憶装置１２３Ｂから各プログラムが読み出され、又は、ネットワーク１０４を介して外部の装置から各プログラムが読み出され、メモリ１２２Ｂに格納される。
【００６５】
次に、サーバ計算機１０２Ａに格納される情報について説明する。
【００６６】
図３は、本発明の第一の実施形態における複製ファイルリスト１８０の一例を示す説明図である。
【００６７】
複製ファイルリスト１８０は、ファイルとジョブとの対応関係を示すリスト形式の情報を格納する。
【００６８】
最初の情報６１０には、最初のエントリ６１１が格納される。最初のエントリ６１１には、リストに含まれる最初のエントリの格納先を示すメモリ１２２のアドレスが格納される。
【００６９】
最初のエントリ６１１が示すエントリ６２０には、ファイルとジョブとの対応関係が格納される。具体的には、エントリ６２０は、ファイルＩＤ６２１、ジョブＩＤ６２２及び次にエントリ６２３を含む。
【００７０】
ファイルＩＤ６２１は、ファイルを一意に識別する識別子である。ジョブＩＤ６２２は、ファイルＩＤ６２１に対応するファイルを用いて処理を実行するアプリケーション（ジョブ）の識別子である。
【００７１】
また、次のエントリ６２３は、次のエントリ６２０の格納先を示すメモリ１２２のアドレスである。次のエントリ６２３に、次のエントリ６２０がないことを示す「０ｘ０」が格納される場合、当該エントリ６２０がリストの終端であることを示す。
【００７２】
なお、図３に示す複製ファイルリスト１８０は一例であって、ジョブの識別子とファイルの識別子とを含むものであれば、他の方式で複製ファイルリスト１８０が構成されてもよい。
【００７３】
図４は、本発明の第一の実施形態における遅延書込情報１８１の一例を示す説明図である。
【００７４】
遅延書込情報１８１は、ジョブと、当該ジョブによって書き込まれたデータの位置との対応関係を示すリスト形式の情報が格納される。具体的には、遅延書込情報１８１には、ジョブリストとブロックリストとが含まれる。
【００７５】
最初の情報７００には、最初のエントリ７０１が格納される。最初のエントリ７０１には、ジョブリストにおける最初のエントリの格納先を示すメモリ１２２のアドレスが格納される。
【００７６】
最初のエントリ７０１が示すエントリ７１０には、ジョブとデータの位置との対応関係が格納される。エントリ７１０は、ジョブＩＤ７１１、ブロックリスト７１２及び次のエントリ７１３を含む。
【００７７】
ジョブＩＤ７１１は、ジョブを一意に識別する識別子である。ブロックリスト７１２は、ジョブによって書き込まれたデータの位置を示すブロックリストにおける最初のエントリの格納先を示すメモリ１２２のアドレスである。
【００７８】
次のエントリ７１３は、ジョブリストにおける次にエントリ７１０の格納先を示すメモリ１２２のアドレスである。次のエントリ７１３に、次のエントリ７１０がないことを示す「０ｘ０」が格納される場合、当該エントリ７１０がリストの終端であることを示す。
【００７９】
ブロックリストにおける最初のエントリ７２０には、ジョブＩＤ７１１に対応するジョブによって書き込まれたデータの位置を示す情報が格納される。エントリ７２０は、ブロック番号７２１及び次のエントリ７２２を含む。
【００８０】
ブロック番号７２１は、ジョブによって書き込まれたデータを格納するブロックの位置を示すブロック番号である。次にエントリ７２２は、ブロックリストにおける次にエントリ７２０の格納先を示すメモリ１２２のアドレスである。
【００８１】
なお、図４に示す遅延書込情報１８１は一例であって、ジョブの識別子とブロック番号とを含むものであれば、他の方式で遅延書込情報１８１が構成されてもよい。
【００８２】
次に、各プログラムによって実行される処理について説明する。まず、ジョブスケジューラ１４１の処理について説明する。
【００８３】
図５は、本発明の第一の実施形態における終了通知部１５１が実行する処理を説明するフローチャートである。
【００８４】
終了通知部１５１は、終了処理部１５４からジョブの終了通知を受け付けると処理を開始する（ステップＳ２０１）。終了通知には、少なくともジョブの識別子が含まれる。
【００８５】
なお、終了処理部１５４は、ジョブを実行するサーバ計算機１０２からジョブが終了した旨の通知を受信することによってジョブが終了したことを検出できる。ここでは、サーバ計算機１０２Ａからジョブが終了した旨の通知を受信したものとする。
【００８６】
終了通知部１５１は、ジョブの識別子に基づいてジョブ情報１７１を参照して、終了したジョブが割り当てられたサーバ計算機１０２Ａの識別子を取得する（ステップＳ２０２）。ここでは、ネットワーク１０４におけるサーバ計算機１０２Ａの識別子が取得される。
【００８７】
終了通知部１５１は、取得された識別子に対応するサーバ計算機１０２の遅延複製制御部１６２に、ジョブが終了した旨を通知する終了情報を送信する（ステップＳ２０３）。当該通知の後、終了通知部１５１は、処理を終了する（ステップＳ２０４）。なお、終了情報には、少なくともジョブの識別子が含まれる。
【００８８】
次に、ファイルシステムプログラム１４２の処理について説明する。
【００８９】
図６は、本発明の第一の実施形態におけるファイルサーバ部１６１が実行する処理を説明するフローチャートである。
【００９０】
ファイルサーバ部１６１は、ユーザーアプリケーション１４３などからアクセス要求を受け付けると処理を開始する（ステップＳ３０１）。なお、アクセス要求には、対象となるファイルの識別子（ファイルＩＤ）が含まれる。以下では、アクセス要求の対象となるファイルを対象ファイルとも記載する。
【００９１】
ファイルサーバ部１６１は、複製ファイルリスト１８０に対象ファイルの情報が記録されているか否かを判定する（ステップＳ３０２）。具体的には、ファイルサーバ部１６１は、アクセス要求に含まれるファイルＩＤに一致するエントリ６２０が複製ファイルリスト１８０に記録されている否かを判定する。
【００９２】
複製ファイルリスト１８０に対象ファイルの情報が記録されていないと判定された場合、ファイルサーバ部１６１は、ステップＳ３０５に進む。
【００９３】
複製ファイルリスト１８０に対象ファイルの情報が記録されていると判定された場合、ファイルサーバ部１６１は、複製ファイルリスト１８０に記録されたエントリ６２０を参照して、当該ファイルにアクセス中のジョブの識別子がアクセス要求を発行したジョブの識別子と一致するか否かを判定する（ステップＳ３０３）。
【００９４】
アクセス中のジョブの識別子がアクセス要求を発行したジョブの識別子と一致しないと判定された場合、ファイルサーバ部１６１は、エラー終了する（ステップＳ３０４）。これは、他のユーザーアプリケーション１４３によってアクセスされているファイルであることを示すためである。これによって、異なるジョブが同一ファイルに同時にアクセスするような競合アクセスを排除している。
【００９５】
アクセス中のジョブの識別子がアクセス要求を発行したジョブの識別子と一致すると判定された場合、ファイルサーバ部１６１は、ステップＳ３０５に進む。
【００９６】
ステップＳ３０２の判定結果がＮＯ、又は、ステップＳ３０３の判定結果がＹＥＳの場合、ファイルサーバ部１６１は、アクセス要求が書込要求であるか否かを判定する（ステップＳ３０５）。
【００９７】
アクセス要求が書込要求でない、すなわち、アクセス要求が読出要求であると判定された場合は、ファイルサーバ部１６１は、読み出す対象ファイルのデータが格納されるディスク装置１２６Ａ上のブロック番号を算出する（ステップＳ３０６）。
【００９８】
次に、ファイルサーバ部１６１は、ディスクドライバ１６３Ａに対して、算出されたブロック番号を含む読出要求を出力する（ステップＳ３０７）。読出要求を受け付けたディスクドライバ１６３Ａは、所定のディスク装置１２６Ａから対象ファイルのデータを読み出す。読み出されたデータは、ディスクドライバ１６３Ａからファイルサーバ部１６１に出力される。
【００９９】
次に、ファイルサーバ部１６１は、ディスク装置１２６Ａから読み出されたデータをユーザーアプリケーション１４３に出力し、処理を終了する（ステップＳ３０８、ステップＳ３１２）。
【０１００】
ステップＳ３０５において、アクセス要求が書込要求であると判定された場合、ファイルサーバ部１６１は、複製ファイルリスト１８０に、ファイルの識別子と実行されるジョブの識別子とを対応づけて記録する（ステップＳ３０９）。当該処理によって、図３に示すようなエントリ６２０が生成される。新たなエントリ６２０が生成されると、その前に生成されていたエントリ６２０には、次にエントリ６２３に、新たなエントリ６２０へのアドレスが追加される。
【０１０１】
なお、複製ファイルリスト１８０に同一の情報がすでに記録されている場合、重複して記録は行わないように制御される。
【０１０２】
次に、ファイルサーバ部１６１は、書き込むデータのディスク装置１２６Ａ上の格納先を示すブロック番号を算出する（ステップＳ３１０）。
【０１０３】
次に、ファイルサーバ部１６１は、遅延複製制御部１６２に対して書込要求を出力し、処理を終了する（ステップＳ３１１、ステップＳ３１２）。なお、書込要求には、ジョブの識別子、ブロック番号及びデータが含まれる。
【０１０４】
以上で説明したように、ファイルサーバ部１６１は、複製ファイルリスト１８０を参照して、各ファイルに高々一個のユーザーアプリケーション１４３からのみアクセスを受け付けるように制御する。
【０１０５】
このように制御することによって、ユーザーアプリケーション１４３が異常終了した時に、当該ユーザーアプリケーション１４３による書き込み処理をすべて取り消した場合であっても、他のユーザーアプリケーション１４３への影響を抑制する効果がある。
【０１０６】
複数のユーザーアプリケーション１４３が同時に読出処理を実行する場合には、ユーザーアプリケーション１４３の異常終了によるファイルへの影響はないため、前述したような制御を行う必要がない。したがって、複製ファイルリスト１８０に情報は登録されない。
【０１０７】
図７及び図８は、本発明の第一の実施形態における遅延複製制御部１６２が実行する処理を説明するフローチャートである。遅延複製制御部１６２は、ジョブスケジューラ１４１の終了通知部１５１から終了情報を受信した場合、及び、ファイルサーバ部１６１から書込要求を受け付けた場合に起動する。
【０１０８】
図７は、ファイルサーバ部１６１から書込要求を受け付けた場合に実行される処理を示す。
【０１０９】
遅延複製制御部１６２は、ファイルサーバ部１６１から書込要求を受け付けると処理を開始する（ステップＳ４０１）。
【０１１０】
遅延書込情報１８１は、書込要求に含まれるジョブの識別子及びブロック番号を抽出して、遅延書込情報１８１に、ジョブの識別子とブロック番号とを対応づけて記録する（ステップＳ４０２）。
【０１１１】
遅延書込情報１８１は、ディスクドライバ１６３Ａに、ブロック番号及びデータを含む、ディスク装置１２６Ａへの書込要求を出力し、処理を終了する（ステップＳ４０３、ステップＳ４０４）。当該書込要求を受け付けたディスクドライバ１６３Ａは、ディスク装置１２６Ａの所定のブロックにデータを書き込む。
【０１１２】
図８は、終了通知部１５１から終了情報を受信した場合に実行される処理を示す。
【０１１３】
遅延複製制御部１６２は、終了通知部１５１から終了情報を受信すると処理を開始する（ステップＳ５０１）。なお、終了情報には、ジョブの識別子が含まれる。
【０１１４】
遅延複製制御部１６２は、ジョブの識別子に基づいて遅延書込情報１８１を参照し、終了したジョブに対応するブロックリストを検索する（ステップＳ５０２）。具体的には、ジョブＩＤ７１１がジョブの識別子と一致するエントリ７２０が検索される。
【０１１５】
その後、ブロックリストの全エントリに対して以下の処理が繰り返し実行される。
【０１１６】
まず、遅延複製制御部１６２は、ブロックリストが空集合であるか否かを判定する（ステップＳ５０３）。すなわち、ブロックリストの全てのエントリ７２０について処理が終了したか否かが判定される。
【０１１７】
ブロックリストが空集合でないと判定された場合、遅延複製制御部１６２は、リストに含まれるエントリ７２０を読み出し、エントリ７２０からブロック番号を取得し、読み出されたエントリ７２０をブロックリストから削除する（ステップＳ５０６）。
【０１１８】
次に、遅延複製制御部１６２は、取得されたブロック番号に格納されたデータを読み出す（ステップＳ５０７）。具体的には、遅延複製制御部１６２は、取得されたブロック番号を含む読出要求をディスクドライバ１６３Ａに出力する。当該読む出し要求を受け付けたディスクドライバ１６３Ａは、ブロック番号に対応するディスク装置１２６Ａ上のブロックからデータを読み出し、遅延複製制御部１６２に出力する。ここでは、読み出されたデータが複製データとなる。
【０１１９】
遅延複製制御部１６２は、ブロック番号及び読み出されたデータ（複製データ）を含む書込要求をネットワークディスクドライバ１６４Ａに出力し、ステップＳ５０３に戻る（ステップＳ５０８）。書込要求を受け付けたネットワークディスクドライバ１６４Ａは、代替計算機であるサーバ計算機１０２Ｂに当該書込要求を転送する。サーバ計算機１０２Ｂは、転送された書込要求に基づいて、複製データをディスク装置１２６Ｂに格納する。
【０１２０】
図１０で後述するように、複製データを含む書込要求はサーバ計算機１０２Ｂに転送されるよう設定されている。転送されたデータは、サーバ計算機１０２Ｂのネットワークディスクドライバ１６４Ｂ及びディスクドライバ１６３Ｂを介してディスク装置１２６Ｂに格納される。
【０１２１】
ステップＳ５０３において、ブロックリストが空集合であると判定された場合、遅延複製制御部１６２は、遅延書込情報１８１から当該ジョブに対応するエントリ７１０を削除して、処理を終了する（ステップＳ５０４、ステップＳ５０５）。
【０１２２】
遅延複製制御部１６２は、データを受信すると同時に自身のディスク装置１２６Ａに当該データを書き込む。一方、遅延複製制御部１６２は、終了通知部１５１から終了情報を受信するまで、サーバ計算機１０２Ｂへの書き込みを保留する。すなわち、ジョブスケジューラ１４１がジョブの終了を確認するまで、複製データの作成処理が保留される。
【０１２３】
これによって、ジョブを実行するユーザーアプリケーション１４３が異常終了した場合であっても、サーバ計算機１０２Ｂのディスク装置１２６Ｂには、異常終了したユーザーアプリケーション１４３によって書き込まれたデータが反映されない。したがって、サーバ計算機１０２Ｂのディスク装置１２６Ｂを参照することによって、異常終了したユーザーアプリケーション１４３がジョブを開始する前の状態に戻すことが可能となる。
【０１２４】
次に、サーバ計算機１０２における複製データの送受信の設定方法の一例を説明する。
【０１２５】
以下で説明する例では、サーバ計算機１０２Ｂはサーバ計算機１０２Ａの代替計算機として稼動するだけでなく、実行計算機としても稼動するものとする。すなわち、サーバ計算機１０２Ｂは、サーバ計算機１０２Ａと同等にファイルシステムプログラム１４２を備え、当該プログラムを実行するものとする。したがって、サーバ計算機１０２Ａ、１０２Ｂのお互いに他方の代替計算機となるように設定される。具体的に、複製受信設定部１８３が代替計算機としてデータを受信するための設定を行い、複製送信設定部１６５が実行計算機としてデータを送信するための設定を行う。
【０１２６】
図９は、本発明の第一の実施形態における複製受信設定部１６９が実行する処理を説明するフローチャートである。
【０１２７】
複製受信設定部１６９は、管理者からの起動命令を受け付けると処理を開始する（ステップＳ１００１）。
【０１２８】
まず、複製受信設定部１６９は、自身のネットワークインタフェース１２４に設定されたネットワークアドレスを取得する（ステップＳ１００２）。取得されるネットワークアドレスは、例えばＩＰアドレスである。
【０１２９】
複製受信設定部１６９は、取得されたネットワークアドレスが偶数であるか否かを判定する（ステップＳ１００３）。ＩＰアドレスがＩＰｖ４のＩＰアドレスである場合、ホストアドレス部分の数値が偶数か否かが判定される。例えば、取得されたＩＰアドレスが「１９２．１６８．１．１６０」の場合、当該ＩＰアドレスは、偶数であると判定される。
【０１３０】
ネットワークアドレスが偶数であると判定された場合、複製受信設定部１６９は、自身のネットワークアドレスに「１」を減じたネットワークアドレスが割り当てられるサーバ計算機１０２を実行計算機として、当該サーバ計算機１０２からネットワークディスクドライバ１６４を介したアクセスを許可するように設定し、処理を終了する（ステップＳ１００４、ステップＳ１００６）。なお、アクセス許可の設定情報はメモリ１２２に格納される。
【０１３１】
ネットワークアドレスが偶数でない、すなわち、ネットワークアドレスが奇数であると判定された場合、複製受信設定部１６９は、自身のネットワークアドレスに「１」を加えたネットワークアドレスが割り当てられたサーバ計算機１０２を実行計算機として、当該サーバ計算機１０２からネットワークディスクドライバ１６４を介したアクセスを許可するように設定し、処理を終了する（ステップＳ１００５、ステップＳ１００６）。
【０１３２】
図１０は、本発明の第一の実施形態における複製送信設定部１６５が実行する処理を説明するフローチャートである。
【０１３３】
複製送信設定部１６５は、管理者からの起動命令を受け付けると処理を開始する（ステップＳ１１０１）。
【０１３４】
まず、複製送信設定部１６５は、自身のネットワークインタフェース１２４に設定されたネットワークアドレスを取得する（ステップＳ１１０２）。取得されるネットワークアドレスは、例えばＩＰアドレスである。
【０１３５】
複製送信設定部１６５は、取得されたネットワークアドレスが偶数であるか否かを判定する（ステップＳ１１０３）。ステップＳ１１０３の処理は、ステップＳ１００３と同一の処理である。
【０１３６】
ネットワークアドレスが偶数であると判定され場合、複製送信設定部１６５は、自身のネットワークアドレスに「１」を加えたネットワークアドレスが割り当てられたサーバ計算機１０２を代替計算機として、当該サーバ計算機１０２をネットワークディスクドライバ１６４を介したアクセス先に設定し、ステップＳ１１０６に進む（ステップＳ１１０４）。
【０１３７】
ネットワークアドレスが偶数でない、すなわち、ネットワークアドレスが奇数であると判定された場合、複製送信設定部１６５は、自身のネットワークアドレスから「１」を減じたネットワークアドレスが割り当てられたサーバ計算機１０２を代替計算機として、当該サーバ計算機１０２をネットワークディスクドライバ１６４を介したアクセス先に設定し、ステップＳ１１０６に進む（ステップＳ１１０５）。
【０１３８】
複製送信設定部１６５は、代替計算機として設定したサーバ計算機１０２のネットアドレスを複製送信設定情報１８２に記録し、処理を終了する（ステップＳ１００６、ステップＳ１１０７）。
【０１３９】
図９及び図１０において説明した処理によって、同様の構成である多数のサーバ計算機１０２の中から、互いに複製データを保持する計算機１０２のペアを自動的に生成することができる。
【０１４０】
本実施形態では、各サーバ計算機１０２に１ずつ増える連続的なアドレスが割り当てられていることを仮定したが、本発明はこれに限定されない。すなわち、データの送信先及びデータの受信元をネットワークディスクドライバ１６４に設定できるものであれば、本発明は実施可能である。
【０１４１】
次に、実行計算機であるサーバ計算機１０２Ａに障害が発生した場合の処理について説明する。以下では、サーバ計算機１０２Ａはシステム管理者によって障害原因が取り除かれ再起動されるものとする。回復処理部１６６は、再起動を契機に起動する。
【０１４２】
図１１は、本発明の第一の実施形態における回復処理部１６６が実行する処理を説明するフローチャートである。
【０１４３】
回復処理部１６６は、再起動を契機に処理を開始した後、複製送信設定部１６５を起動させ、ネットワークディスクドライバ１６４を設定する（ステップＳ１２０１、ステップＳ１２０２）。
【０１４４】
回復処理部１６６は、複製送信設定情報１８２を読み出す（ステップＳ１２０３）。本実施形態では、複製送信設定情報１８２には、サーバ計算機１０２Ｂのネットワークアドレスが記録されている。
【０１４５】
回復処理部１６６は、代替計算機であるサーバ計算機１０２Ｂからディスク装置１２６Ａへのアクセスを許可するようにネットワークディスクドライバ１６４Ａを設定する（ステップＳ１２０４）。
【０１４６】
その後、回復処理部１６６は、サーバ計算機１０２Ｂのフェイルオーバー処理部１７０からの完了通知を受信するまで処理を待つ（ステップＳ１２０５）。
【０１４７】
回復処理部１６６は、ステップＳ１２０４においてネットワークディスクドライバ１６４Ａに設定されたアクセス許可の設定を解除し、処理を終了する（ステップＳ１２０６）。その後、サーバ計算機１０２Ａ、１０２Ｂは、通常の状態に戻る。
【０１４８】
図１２Ａ及び図１２Ｂは、本発明の第一の実施形態におけるフェイルオーバー処理部１７０が実行する処理を説明するフローチャートである。
【０１４９】
サーバ計算機１０２Ｂは、サーバ計算機１０２Ａの停止を検知すると、フェイルオーバー処理部１７０を起動する（ステップＳ１３０１）。その後、フェイルオーバー処理部１７０は、サーバ計算機１０２Ａが回復するまで、以下の処理を繰り返し実行する。なお、サーバ計算機１０２Ｂは、ハートビート等を用いてサーバ計算機１０２Ａが停止していることを検出できる。
【０１５０】
まず、フェイルオーバー処理部１７０は、障害が発生したサーバ計算機１０２Ａのファイルサーバ部１６１の代わりアクセス要求を受信する（ステップＳ１３０２）。なお、サーバ計算機１０２Ｂもファイルシステムプログラム１４２を備え、実行計算機として稼動しているものとする。また、アクセス要求の受信先の切り替え方法については、公知の技術であるため説明を省略する。
【０１５１】
次に、フェイルオーバー処理部１７０は、受信したアクセス要求が書込要求であるか否かを判定する（ステップＳ１３０３）。
【０１５２】
受信したアクセス要求が書込要求でない、すなわち、読出要求であると判定された場合、フェイルオーバー処理部１７０は、対象データが記録されるブロック番号を算出する（ステップＳ１３０４）。
【０１５３】
さらに、フェイルオーバー処理部１７０は、ディスクドライバ１６３に算出されたブロック番号を含む読出要求を出力し、その後、ステップＳ１３０２に戻り、次にアクセス要求を待つ（ステップＳ１３０５）。読出要求を受け付けたディスクドライバ１６３Ｂは、ディスク装置１２６Ｂからデータを読み出す。読み出されたデータは、アクセス要求の送信元に送信される。
【０１５４】
ステップＳ１３０３において、受信したアクセス要求が書込要求であると判定された場合、フェイルオーバー処理部１７０は、対象データをサーバ計算機１０２Ｂ及びサーバ計算機１０２Ａの両方に反映させるために以下のような処理を実行する。
【０１５５】
まず、フェイルオーバー処理部１７０は、障害が発生して停止していたサーバ計算機１０２Ａが再起動しているか否かを判定する（ステップＳ１３０７）。
【０１５６】
サーバ計算機１０２Ａが再起動していないと判定された場合、フェイルオーバー処理部１７０は、サーバ計算機１０２Ａの状態を確認する（ステップＳ１３０９）。
【０１５７】
次に、フェイルオーバー処理部１７０は、前述した確認の結果に基づいて、サーバ計算機１０２Ａの再起動を検出したか否かを判定する（ステップＳ１３１０）。例えば、サーバ計算機１０２Ａから再起動した旨の通知を受けた場合、ハートビートによる応答があった場合には、サーバ計算機１０２Ａの再起動を検出したと判定される。
【０１５８】
サーバ計算機１０２Ａの再起動が検出されていないと判定された場合、フェイルオーバー処理部１７０は、ディスク装置１２６Ｂにのみデータを反映させるために、算出されたブロック番号及びデータを含む書込要求をディスクドライバ１６３Ｂに出力し、ステップＳ１３０２に戻る（ステップＳ１３１１）。
【０１５９】
サーバ計算機１０２Ａの再起動が検出されたと判定された場合、フェイルオーバー処理部１７０は、ディスク装置１２６Ｂの内容をすべてディスク装置１２６Ａに反映させるためのコピー処理を開始する（ステップＳ１３１２）。ただし、コピー処理では、すでにデータが反映された記憶領域については処理をスキップする。
【０１６０】
ステップＳ１３０７において、サーバ計算機１０２Ａが再起動していると判定された場合、又は、ステップＳ１３１２の後、フェイルオーバー処理部１７０は、ディスクドライバ１６３Ｂ及びネットワークディスクドライバ１６４Ｂに、算出されたブロック番号及びデータを含む書込要求を出力する（ステップＳ１３１３）。書込要求を受信したネットワークディスクドライバ１６４Ｂは、データを含む書込要求をサーバ計算機１０２Ａに転送する。
【０１６１】
当該処理によって、ディスク装置１２６Ａ及びディスク装置１２６Ｂの両方に同一のデータが書き込まれる。
【０１６２】
次に、フェイルオーバー処理部１７０は、コピー処理の進捗状況を確認し、当該コピー処理が終了したか否かを判定する（ステップＳ１３１４）。
【０１６３】
コピー処理が終了していないと判定された場合、フェイルオーバー処理部１７０は、ステップＳ１３０２に戻る。
【０１６４】
コピー処理が終了したと判定された場合、フェイルオーバー処理部１７０は、回復処理部１６６に完了通知を送信し、処理を終了する（ステップＳ１３１５、ステップＳ１３１６）。
【０１６５】
回復処理部１６６及びフェイルオーバー処理部１７０は、代替計算機であるサーバ計算機Ｂからネットワークディスクドライバ１６４Ｂを介したディスク装置１２６Ａへのアクセスを許可している。この操作によって、サーバ計算機１０２Ｂが実行計算機として処理を継続すると同時に、サーバ計算機１０２Ａの停止中に書き込まれたデータをサーバ計算機１０２Ａのディスク装置１２６Ａに反映させることができる。
【０１６６】
［第二の実施形態］
【０１６７】
第二の実施形態では、代替計算機であるサーバ計算機１０２Ｂがディスク装置１２６Ｂへの複製データの書き込みを遅延させる点が第一の実施形態と異なる。以下、第一の実施形態との差異を中心に、第二の実施形態について説明する。
【０１６８】
図１３は、本発明の第二の実施形態の計算機システムの構成を示すブロック図である。
【０１６９】
第二の実施形態では、サーバ計算機１０２Ａ及びサーバ計算機１０２Ｂの構成が異なる。
【０１７０】
具体的には、ファイルシステムプログラム１４２は遅延複製制御部１６２の代わりに複製制御部８６２を含む。また、複製受信部１４４は、新たに受信側遅延複製制御部８７１、遅延書込情報８８４及び一時書込領域８９０を含む。
【０１７１】
また、第二の実施形態では、ファイルサーバ部８６１が実行する処理が、ファイルサーバ部１６１と異なる。具体的には、ステップＳ３１１において、ファイルサーバ部８６１は、複製制御部８９２に書込要求を出力する。その他の処理は第一の実施形態と同一である。
【０１７２】
本実施形態では、サーバ計算機１０２Ａはデータを書き込み場合、常にデータをサーバ計算機１０２Ｂにも送信する。したがって、サーバ計算機１０２Ａは、遅延書込情報１８１を備えていない。また、サーバ計算機１０２Ｂは、ジョブスケジューラ１４１からの終了通知を受信するまでディスク装置１２６Ｂへのデータの書き込みを保留する。前述した処理を実現するため、サーバ計算機１０２Ｂは、受信側遅延複製制御部８７１、遅延書込情報８８４及び一時書込領域８９０を備える。
【０１７３】
以下、第一の実施形態とは異なる構成部によって実行される処理について説明する。
【０１７４】
図１４は、本発明の第二の実施形態における複製制御部８９２が実行する処理を説明するフローチャートである。
【０１７５】
複製制御部８９２は、ファイルサーバ部８６１から書込要求を受け付けると処理を開始する（ステップＳ１４０１）。
【０１７６】
複製制御部８９２は、受け付けた書込要求に含まれる情報を変更することなく、当該書込要求をディスクドライバ１６３Ａ及びネットワークディスクドライバ１６４Ａに出力し、処理を終了する（ステップＳ１４０２、ステップＳ１４０３）。
【０１７７】
受信側遅延複製制御部８７１は、書込要求を受信した場合に、図７と同様の処理を実行する。
【０１７８】
具体的には、ステップＳ４０１において、受信側遅延複製制御部８７１は、複製制御部８６２からの書込要求を受信すると処理を開始する。ステップＳ４０２において、受信側遅延複製制御部８７１は、ジョブの識別子及びブロック番号を遅延書込情報８８４に記録する。また、ステップＳ４０３において、受信側遅延複製制御部８７１は、一時書込領域８９０にデータを格納する。
【０１７９】
ここで、受信側遅延複製制御部８７１は、一時書込領域８９０へのデータの書き込む場合、直接、一時書込領域８９０にデータを書き込んでもよいし、ディスクドライバ１６３Ｂに一時書込領域８９０への書込要求を出力してもよい。
【０１８０】
なお、一時書込領域８９０は、例えば、磁気ディスク、半導体ディスク、ソフトウェアによって実現された仮想的なディスク、又はそれらを併用したものによって実現され、実装の形式は任意である。
【０１８１】
また、受信側遅延複製制御部８７１は、ジョブスケジューラ１４１の終了通知部１５１から終了情報を受信した場合に、図５と同様の処理を実行する。図５に示す処理との差異は、遅延書込情報８８４に基づいて処理が実行され、ステップＳ５０７におけるデータの読み出し元が一時書込領域８９０となり、ステップＳ５０８における書込要求の出力先がディスクドライバ１６３Ｂとなる点である。
【０１８２】
その他の処理は第一の実施形態と同一であるため説明を省略する。
【０１８３】
［第三の実施形態］
【０１８４】
第三の実施形態では、第一の実施形態に加え、複数の代替計算機であるサーバ計算機１０２に複製データを分割して書き込む。以下、第一の実施形態との差異を中心に説明する。
【０１８５】
図１５は、本発明の第三の実施形態の計算機システムの構成を示すブロック図である。
【０１８６】
第三の実施形態では、計算機システムが、代替計算機であるサーバ計算機１０２Ｃを含む点が異なる。なお、サーバ計算機１０２Ｃは、サーバ計算機１０２Ｂと同一の構成であり、ディスク装置１２６を備える。また、サーバ計算機１０２Ａは、さらに、複製分割部１４０１を備える。
【０１８７】
本実施形態では、複製分割部１４０１が、遅延複製制御部１６２によって生成された複製データを分割して、各サーバ計算機１０２Ｂ、１０２Ｃに格納する。
【０１８８】
以下、第三の実施形態における処理について説明する。
【０１８９】
第三の実施形態では、遅延複製制御部１６２が、終了通知部１５１から終了情報を受信した場合に実行する処理が異なる。具体的には、ステップＳ５０８において、遅延複製制御部１６２は、複製分割部１４０１に複製データの書込要求を出力する。他の処理は第一の実施形態と同一である。
【０１９０】
図１６は、本発明の第三の実施形態における複製分割部１４０１が実行する処理の詳細を説明するフローチャートである。
【０１９１】
複製分割部１４０１は、遅延複製制御部１６２から書込要求を受け付けると処理を開始する（ステップＳ１５０１）。
【０１９２】
複製分割部１４０１は、書込要求に含まれるブロック番号を参照して、当該ブロック番号が偶数であるか否かを判定する（ステップＳ１５０２）。ここでは、データの最初のブロック番号を対象とする。
【０１９３】
ブロック番号が偶数であると判定された場合、複製分割部１４０１は、ネットワークディスクドライバ１６４Ａを介して、サーバ計算機１０２Ｃに複製データの書込要求を送信し、処理を終了する（ステップＳ１５０３）。
【０１９４】
ブロック番号が偶数でない、すなわち、ブロック番号が奇数であると判定された場合、複製分割部１４０１は、ネットワークディスクドライバ１６４Ａを介してサーバ計算機１０２Ｂに複製データの書込要求を送信し、処理を終了する（ステップＳ１５０４）。
【０１９５】
なお、第三の実施形態では、代替計算機であるサーバ計算機１０２を２台としたが、３台以上あってもよい。この場合、書き込みアドレスをサーバ計算機１０２の台数で除算した余りに基づいて、複製データの転送先を決定する方法が考えられる。
【０１９６】
代替計算機であるサーバ計算機を複数台配置することによって、複製データの書き込むに必要な時間を短縮できる。したがって、複製データを保存するディスクドライブを低速かつ安価なディスク装置を用いて構成できる。
【０１９７】
本発明によれば、代替計算機であるサーバ計算機１０２に対する複製データの書き込む場合に遅延を生じさせ、ジョブの終了を契機に複製データを代替計算機に反映することができる。これによって、実行計算機であるサーバ計算機１０２に障害が発生しても、代替計算機であるサーバ計算機１０２はジョブ開始の状態から当該ジョブを再開することができる。
【０１９８】
なお、本発明は前述した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、前述した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加、削除、置換をすることが可能である。
【０１９９】
また、前述の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によってハードウェアを用いて実現してもよい。また、前述の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによってソフトウェアを用いて実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、又は、ＩＣカード、ＳＤカード及びＤＶＤ等の記録媒体に格納することができる。また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
【図１】
2013073005.tif 000003
【図２Ａ】
2013073005.tif 000004
【図２Ｂ】
2013073005.tif 000005
【図２Ｃ】
2013073005.tif 000006
【図３】
2013073005.tif 000007
【図４】
2013073005.tif 000008
【図５】
2013073005.tif 000009
【図６】
2013073005.tif 000010
【図７】
2013073005.tif 000011
【図８】
2013073005.tif 000012
【図９】
2013073005.tif 000013
【図１０】
2013073005.tif 000014
【図１１】
2013073005.tif 000015
【図１２Ａ】
2013073005.tif 000016
【図１２Ｂ】
2013073005.tif 000017
【図１３】
2013073005.tif 000018
【図１４】
2013073005.tif 000019
【図１５】
2013073005.tif 000020
【図１６】
2013073005.tif 000021
【国際調査報告】
2013073005.tif 000022
2013073005.tif 000023
2013073005.tif 000024
2013073005.tif 000025