(57)【要約】  １つの側面では、稼働中の冗長化技術に応じて業務処理を遅延なく継続させ、業務処理に対する可用性を高める。  情報処理装置（１０）の指示部（１８）は、冗長化ソフトウェアにより冗長化された記憶装置（２４，２６）に対してＩ／Ｏを要求すると、監視部（２０）が監視を開始する。監視部（２０）は、タイムアウト時間内に応答がないとき、冗長状態の確認を管理部（１２）に依頼する。管理部（１２）は、テーブル（１６）を参照し冗長化ソフトウェアに冗長状態を問い合わせ、タイムアウト可否を示す冗長状態を監視部（２０）へ返す。監視部（２０）は、タイムアウト可否に応じて処理する。従って、冗長化された記憶装置で応答遅延が発生することを抑制でき、Ｉ／Ｏに応答遅延が発生した場合であっても応答時間を短縮でき、装置の可用性を高めることができる。
2014057585.tif 000002
【特許請求の範囲】
【請求項１】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示する指示部と、
前記複数の記録装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答を行う授受部と、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて、前記冗長化されて切り替え可能な記憶装置に向けられた前記授受部における前記要求情報に対する応答を監視する監視部と、
を備えた情報処理装置。
【請求項２】
前記監視部は、前記特定の記憶装置が他の記憶装置と冗長化されているときに、前記特定の記憶装置に対する前記授受部からの応答を所定時間監視し、かつ前記授受部より前記所定時間内に応答がない場合に前記授受部よりの応答前に前記指示部に対して前記授受部より応答がないことを示す情報を出力する
請求項１の情報処理装置。
【請求項３】
前記冗長化情報は、前記記憶装置について冗長化される他の記憶装置との関係を示すディスク情報を含み、
前記監視部は、前記ディスク情報に基づいて、前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別する請求項１または請求項２の情報処理装置。
【請求項４】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働する冗長状態を示す管理情報を含み、
前記監視部は、前記管理情報に基づいて、前記記憶装置と他の記憶装置との冗長状態に対応して前記要求情報に対する応答を監視する
請求項１〜請求項３の何れか１項の情報処理装置。
【請求項５】
前記監視部は、前記記憶装置と他の記憶装置とが冗長化されて稼働している状態の場合に、前記要求情報を削除し、かつ前記指示部に対して前記特定の記憶装置について前記授受部より応答がないことを示す情報を送出すると共に、前記記憶装置と他の記憶装置とが冗長化されて稼働していない状態の場合に、前記要求情報を維持し、かつ前記授受部よりの応答を示す情報を前記指示部に送出する
請求項４の情報処理装置。
【請求項６】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンド含み、
前記監視部は、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記要求情報に対する応答を監視する
請求項４または請求項５の情報処理装置。
【請求項７】
前記冗長化部は、複数の記憶装置に同一のデータを記憶するように冗長化するディスクミラーリング処理を実行する
請求項１〜請求項６の何れか１項の情報処理装置。
【請求項８】
前記冗長化部は、記憶装置を含む複数のコンピュータで同一のデータを記憶するように冗長化するクラスタリング処理を実行する
請求項１〜請求項６の何れかの情報処理装置。
【請求項９】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示し、
前記複数の記録装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答し、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて、前記冗長化されて切り替え可能な記憶装置に向けられた前記要求情報に対する応答を監視する
情報処理方法。
【請求項１０】
前記要求情報に対する応答を監視するときは、前記特定の記憶装置が他の記憶装置と冗長化されているときに、前記特定の記憶装置に向けられた前記要求情報に対する応答を所定時間監視し、かつ前記特定の記憶装置に向けられた前記要求情報に対して前記所定時間内に応答がない場合に前記要求情報に対する応答より前に前記特定の記憶装置に向けられた前記要求情報に対する応答がないことを示す情報を出力する
請求項９の情報処理方法。
【請求項１１】
前記冗長化情報は、前記記憶装置について冗長化される他の記憶装置との関係を示すディスク情報を含み、
前記要求情報に対する応答を監視するときは、前記ディスク情報に基づいて、前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別する
請求項９または請求項１０の情報処理方法。
【請求項１２】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働する冗長状態を示す管理情報を含み、
前記要求情報に対する応答を監視するときは、前記管理情報に基づいて、前記記憶装置と他の記憶装置との冗長状態に対応して前記要求情報に対する応答を監視する
請求項９〜請求項１１の何れか１項の情報処理方法。
【請求項１３】
前記要求情報に対する応答を監視するときは、前記記憶装置と他の記憶装置とが冗長化されて稼働している状態の場合に、前記要求情報を削除し、かつ前記指示部に対して前記特定の記憶装置について前記授受部より応答がないことを示す情報を送出すると共に、前記記憶装置と他の記憶装置とが冗長化されて稼働していない状態の場合に、前記要求情報を維持し、かつ前記授受部よりの応答を示す情報を前記指示部に送出する
請求項１２の情報処理方法。
【請求項１４】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンド含み、
前記要求情報に対する応答を監視するときは、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記要求情報に対する応答を監視する
請求項１２または請求項１３の情報処理方法。
【請求項１５】
前記冗長化部は、複数の記憶装置に同一のデータを記憶するように冗長化するディスクミラーリング処理を実行する
請求項９〜請求項１４の何れか１項の情報処理方法。
【請求項１６】
前記冗長化部は、記憶装置を含む複数のコンピュータで同一のデータを記憶するように冗長化するクラスタリング処理を実行する
請求項９〜請求項１４の何れかの情報処理方法。
【請求項１７】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示し、
前記複数の記録装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答し、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて、前記冗長化されて切り替え可能な記憶装置に向けられた前記要求情報に対する応答を監視する
処理をコンピュータに実行させる情報処理プログラム。
【請求項１８】
コンピュータに、前記コンピュータを、請求項９〜請求項１６の何れか１項記載の情報処理方法に係る処理を実行させるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【０００２】
コンピュータを使用して業務処理を行う情報処理システムが知られている。コンピュータを使用して業務処理を行うときには、利用するデータをＨＤＤ(Hard Disk Drive)等の記憶装置に記憶して利用することが一般的である。記憶装置の障害が業務処理に影響を及ぼすことを抑制するために、記憶装置を、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks)やミラーリングと呼ばれる冗長化技術により冗長化させることが行われている。【０００３】
例えば、ＲＡＩＤと呼ばれる冗長化技術では、複数のディスクドライブを仮想的に１つのディスクとして運用する。また、ディスクミラーリングと呼ばれる冗長化技術では、複数のローカルなディスクドライブに同一の内容を記録する。冗長化技術では、複数のディスクや複数の記憶装置の各々に同時にデータを書き込み、データの読み出しは予め定めた主となるディスクや主となる記憶装置から行う。【０００４】
冗長化技術では、主となるディスクや主となる記憶装置に障害が発生した場合、迅速に他のディスクや他の記憶装置を主となるように切り替える等の障害を復旧する処理が行われる。コンピュータを使用して業務処理を行う場合、ディスクや記憶装置に障害が発生して、他のディスクや他の記憶装置に切り替える等の障害を復旧する処理に要する時間は、業務処理を継続するときの妨げになる。従って、冗長化技術では、円滑に業務処理を継続することが求められる。【０００５】
例えば、稼動系のサーバと待機系のサーバとのデータを常に同期させ、異常時に切り替えた待機系のサーバから復旧するとき所定メモリ領域を用いる技術が知られている。待機系のサーバから復旧した稼働系のサーバへ切り替える場合、待機系のサーバから稼働系のサーバへデータを全複写する必要がある。そこで、異常時に切り替えた時点より待機系のサーバの差分情報を求めておき、差分情報について所定メモリ領域を用いて待機系のサーバから稼働系のサーバへ復旧する。【０００６】
また、サーバを切り替えるときのスループットを向上させて、大容量化した記憶装置の入出力性能と信頼性を確保する技術が知られている。入出力性能と信頼性を確保する技術では、入出力の経路を多重化し、所定数の入出力の経路における障害の発生を検知すると、サーバを切り替えることで、サーバの入出力性能と信頼性を確保する。【０００７】
ところが、冗長化技術により冗長化されるディスクや記憶装置に異常が発生したときにディスクや記憶装置からの応答に遅延が生じて、業務処理を継続するときの妨げになる場合がある。冗長化技術を使用した情報システムでは、タイムアウト技術により、ディスクドライバにおける応答遅延を抑制することができる。【０００８】
例えば、ＨＤＤ等を制御するディスクドライバにおけるディスク等からの応答遅延に関する技術として、入出力（Ｉ／Ｏ）要求に対する応答が異常であるとき、継続的に、Ｉ／Ｏ要求を繰り返す技術が知られている。この技術では、ディスクドライバの上位側で、ディスクドライバより最初の異常情報を受信すると、ディスクドライバの上位側でのみＩ／Ｏ要求を繰り返し、異常を検知する。検知する異常の一例に、Ｉ／Ｏ要求に対する応答が所定時間を超えるタイムアウトが知られている。ディスクドライバの上位側でＩ／Ｏ要求を繰り返す技術では、ディスクドライバの上位側において、タイムアウト等の異常情報を受信した場合に、即時Ｉ／Ｏ要求を繰り返すリトライ処理を実行させる。即時Ｉ／Ｏ要求を繰り返すリトライ処理を実行させる技術では、Ｉ／Ｏ要求に対する応答がタイムアウトになる度にディスクドライバへＩ／Ｏ要求を繰り返す技術に比べて短時間で異常を検知できる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１４００８６号公報
【特許文献２】特開２００５−１４９２８１号公報
【特許文献３】特開２００６−３１３３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従って、冗長化技術を使用した情報システムにおいて、タイムアウト技術により、ディスクドライバにおける応答遅延を抑制することができる。タイムアウト技術では、Ｉ／Ｏ要求に対するタイムアウト時間を予め定めて、ディスクドライバのＩ／Ｏ要求に対する応答時間を監視する。ＨＤＤに異常がある場合や、通信経路に異常がある場合には、Ｉ／Ｏ要求に対する応答が異常になるので、ディスクドライバはＩ／Ｏ要求を繰り返して実行する。そして、タイムアウト技術では、監視している応答時間が予め定めたタイムアウト時間を経過したときに、ディスクドライバに発行したＩ／Ｏ要求をキャンセルする。Ｉ／Ｏ要求がキャンセルされると、冗長化技術により冗長化された他のディスクや記憶装置を用いて業務が継続される。【００１１】
例えば、ディスクミラーリングソフトウェア等の処理によりディスクが冗長化される場合、一方のディスクで応答遅延が生じると、タイムアウト技術により一方のディスクへのＩ／Ｏ要求がキャンセルされる。そして、他方のディスクにＩ／Ｏ要求が発行され、他方のディスクを用いて業務が継続される。また、クラスタリングソフトウェア等の処理によりサーバが冗長化される場合、稼働中の一方のサーバで応答遅延が生じると、タイムアウト技術により一方のサーバに対するＩ／Ｏ要求がキャンセルされる。そして、クラスタリングソフトウェア等の処理により他方のサーバへ稼働が切替られ、切替先のサーバで業務が継続される。【００１２】
ところが、情報処理システムにおいて、タイムアウト技術により業務処理の停止を抑制するためには、冗長化技術により冗長化されたディスクや記憶装置を把握済みであることが前提となる。すなわち、タイムアウト技術を使用するためには、冗長化技術により冗長化されたディスクや記憶装置の構成や稼働状態を示す情報を予め取得する。取得した冗長化されたディスクや記憶装置の構成や稼働状態を示す情報を用いて、応答遅延が生じるディスクや記憶装置から冗長化されたディスクや記憶装置へ稼働を切り替える。【００１３】
しかしながら、情報処理システムにおいて、タイムアウト技術を使用するときに、冗長化技術により冗長化されたディスクや記憶装置の構成や稼働状態を示す情報の取得が困難な場合がある。例えば、ディスクや記憶装置を冗長化技術により冗長化するソフトウェアを、ユーザが独自に導入するとき、タイムアウト技術の使用を考慮していない場合がある。従って、情報処理システムがタイムアウト技術により業務継続が可能な構成や状態にあっても、情報処理システムで稼働中の冗長化技術に対して、タイムアウト技術を使用できない場合がある。情報処理システムで稼働中の冗長化技術に対して、タイムアウト技術を使用できないときには、結果としてシステムスローダウンや業務停止に至る場合がある。【００１４】
１つの側面では、稼働中の冗長化技術に応じて業務処理を遅延なく継続させ、業務処理に対する可用性を高めることが目的である。
【課題を解決するための手段】
【００１５】
開示の技術は、指示部より、複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示する。複数の記憶装置は、冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む。授受部は、複数の記録装置の各々に対してデータの入出力を行うと共に、要求情報を受け取った後に応答を行う。監視部は、前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、冗長化情報に基づいて、冗長化されて切り替え可能な記憶装置に向けられた授受部における要求情報に対する応答を監視する。
【発明の効果】
【００１６】
１つの実施態様では、稼働中の冗長化技術に応じて業務処理を遅延なく継続させ、業務処理に対する可用性を高めることができる。
【図面の簡単な説明】
【００１７】
【図１】第１実施形態に係る情報処理装置を示すブロック図である。
【図２】コンピュータシステムの一例を示すブロック図である。
【図３】ディスクテーブルの一例を示すイメージ図である。
【図４】管理テーブルの一例を示すイメージ図である。
【図５】コンピュータの作動に関係する機能の一例を示す機能ブロック図である。
【図６】コンピュータの作動に関係する階層構造の一例を示すイメージ図である。
【図７】Ｉ／Ｏ監視ドライバの処理の流れの一例を示すフローチャートである。
【図８】タイムアウト判定処理の流れの一例を示すフローチャートである。
【図９】管理デーモンプロセスの処理の流れの一例を示すフローチャートである。
【図１０】ディスクテーブルの登録プロセスの流れの一例を示すフローチャートである。
【図１１】管理テーブルの登録プロセスの流れの一例を示すフローチャートである。
【図１２】第２実施形態にかかるコンピュータの作動に関係する機能の一例を示す機能ブロック図である。
【図１３】第２実施形態にかかるディスクテーブルの一例を示すイメージ図である。
【図１４】第２実施形態にかかる管理テーブルの一例を示すイメージ図である。
【図１５】第２実施形態にかかる管理デーモンプロセスの処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。
【００１９】
＜第１実施形態＞
図１に、第１実施形態に係る情報処理装置１０の構成を示す。情報処理装置１０は、指示部１８、監視部２０、授受部２２、管理部１２、及びテーブル１６を含む記憶部１４を備えている。監視部２０、管理部１２、及び記憶部１４は、各々接続されている。また、授受部２２は、複数の記憶装置に接続されている。図１では、２台の記憶装置２４，２６が接続される一例を示す。なお、複数台の記憶装置は、２台の記憶装置２４，２６を一例として示したが、２台に限定されるものではなく、３台以上でもよい。
【００２０】
第１実施形態では、情報処理装置１０において、複数の記憶装置が冗長化されているときに、タイムアウト技術を適用する場合を説明する。なお、複数の記憶装置は、記憶装置２４が主となる記憶装置として説明する。
【００２１】
なお、情報処理装置１０は開示の技術における情報処理装置の一例である。また、指示部１８は、開示の技術における指示部の一例であり、監視部２０は開示の技術における監視部の一例である。また、記憶部１４に含まれるテーブル１６は、開示の技術におけるテーブルの一例である。
【００２２】
情報処理装置１０において、冗長化される記憶装置の応答遅延を抑制するにあたり、記憶部１４には、情報処理装置１０で冗長化される記憶装置２４，２６の冗長化情報が登録されたテーブル１６が含まれている。冗長化情報の一例には、冗長化されているディスクを識別するためのディスクの名称（ディスク名）を示す情報や、記憶装置を冗長化する冗長化ソフトウェアに対して冗長状態を確認するコマンドの名称を示す情報がある。
【００２３】
情報処理装置１０において、指示部１８は、冗長化ソフトウェアにより冗長化された記憶装置２４，２６に対してデータの入出力を要求する要求情報を出力してデータの入出力を指示する。監視部２０は、記憶装置２４，２６に対する入出力（Ｉ／Ｏ）を監視する。監視部２０は、Ｉ／Ｏ監視中でかつ入出力を要求した記憶装置２４，２６のどちらかより予め定めた応答時間に応答がない場合、記憶装置の応答遅延を抑制する処理を実行する。なお、ここでは、説明を簡単にするために、記憶装置２４，２６は冗長化されており、データ入出力の要求が記憶装置２４になされた場合を説明する。
【００２４】
監視部２０は、Ｉ／Ｏ要求が発行されると、対象の記録装置２４について冗長状態の確認処理を管理部１２に依頼する。管理部１２は、監視部２０より依頼を受け取ると、記憶部１４に記憶されたテーブル１６を参照し、依頼対象の記憶装置２４の冗長化情報に基づいて冗長状態を取得し、監視部２０へ返す。記憶装置２４と記憶装置２６は冗長化されているので、記憶装置２４への要求に対する応答に対してタイムアウトしても、使用する記憶装置を記憶装置２４より記憶装置２６に切り替えて業務処理を継続できる。
【００２５】
そこで、管理部１２は、タイムアウト可能であることを示す情報を含む冗長状態を監視部２０へ返す。監視部２０は、管理部１２より返信された冗長状態に基づいて、記憶装置２４より応答がないことを示す情報を指示部１８へ出力する。指示部１８は、監視部２０から出力された情報により使用する記憶装置を記憶装置２４から記憶装置２６へ切り替える。従って、冗長化ソフトウェアにより冗長化された記憶装置について応答遅延が発生することを抑制できる。これにより、Ｉ／Ｏに応答遅延が発生した場合であっても応答時間を短縮でき、装置の可用性を高めることができる。
【００２６】
図２に、情報処理装置１０を、コンピュータシステム３０に含まれるコンピュータで実現する場合の一例を示す。コンピュータシステム３０は、同一構成のコンピュータ３２，３４を含み、コンピュータ３２，３４の各々は通信用のネットワーク３６を介して接続されている。また、コンピュータシステム３０は、コンピュータ３２，３４の双方で共通に使用するデータを格納するためのストレージ４０を含んでいる。コンピュータ３２，３４及びストレージ４０は、ストレージネットワーク３８を介して接続されている。ストレージ４０は、ディスク８６，８８を備え、ディスク８６，８８は冗長化される。
【００２７】
コンピュータ３２はＣＰＵ４２、メモリ４４、不揮発性の格納部５４を備えている。ＣＰＵ４２、メモリ４４、及び格納部５４はバス８０を介して互いに接続されている。格納部５４はＨＤＤやフラッシュメモリ等によって実現できる。また、コンピュータ３２はネットワーク３６に接続するための通信制御部５０を備え、通信制御部５０はバス８０に接続されている。また、コンピュータ３２は、出力デバイスの一例の表示装置４６、キーボードやマウス等の入力デバイスの一例の入力装置４７を備えている。表示装置４６、及び入力装置４７はバス８０に接続されている。また、コンピュータ３２は、光ディスク等の記録媒体４９が挿入され、挿入された記録媒体４９に対して読み書きするための装置（Ｒ／Ｗ装置）４８を備え、Ｒ／Ｗ装置４８はバス８０に接続されている。なお、表示装置４６、入力装置４７、及びＲ／Ｗ装置４８は、省略してもよく、必要に応じてバス８０に接続するようにしてもよい。
【００２８】
また、コンピュータ３２は、ストレージネットワーク３８に接続するためのストレージ制御部５２を備え、ストレージ制御部５２はバス８０に接続されている。また、コンピュータ３２は、情報を格納するためのディスク８２，８４を備え、ディスク８２，８４はバス８０に接続されている。ディスク８２，８４は、冗長化される（詳細は後述）。
【００２９】
格納部５４には、管理プログラム５６、アプリケーションプログラム６０、クラスタソフトウェア６２，及び冗長化ソフトウェア６４が記憶されている。管理プログラム５６、アプリケーションプログラム６０、クラスタソフトウェア６２，及び冗長化ソフトウェア６４は、ＯＳ(Operating System)より上位のユーザ層で実行されるソフトウェアとして分類される。また、格納部５４には、ＯＳのカーネル層で実行されるソフトウェアとして分類されるドライバ６６が記憶されている。また、格納部５４には、ディスクテーブル７６及び管理テーブル７８を含むデータベース７４が記憶される。
【００３０】
なお、アプリケーションプログラム６０は、コンピュータ３２で実行される各種のプログラムである。また、クラスタソフトウェア６２は、サーバ等のコンピュータの冗長化処理を実行するソフトウェアであり、ＣＰＵ４２が、クラスタソフトウェア６２を格納部５４から読み出してメモリ４４に展開して実行することにより、コンピュータ３２，３４が冗長化される。冗長化ソフトウェア６４は、記憶装置の冗長化処理を実行するソフトウェアであり、ＣＰＵ４２が、冗長化ソフトウェア６４を格納部５４から読み出してメモリ４４に展開して実行することにより、ディスク８２，８４が冗長化される。
【００３１】
第１実施形態では、冗長化される記憶装置の応答遅延を抑制するために、管理プログラム５６、及びドライバ６６が実行される。ＣＰＵ４２は、管理プログラム５６を格納部５４から読み出してメモリ４４に展開し、管理プログラム５６に含まれるプロセスを実行する。また、ＣＰＵ４２は、ドライバ６６を格納部５４から読み出してメモリ４４に展開し、実行する。つまり、情報処理装置１０がコンピュータ３２で実現され、ＣＰＵ３２が管理プログラム５６及びドライバ６６を実行することで、コンピュータ３２は情報処理装置１０として動作される。
【００３２】
なお、管理プログラム５６及びドライバ６６の一部は、開示の技術における情報処理プログラムの一例である。また、管理プログラム５６及びドライバ６６は、コンピュータ３２を情報処理装置として機能させるためのプログラムでもある。また、コンピュータ３２に処理を実行させるためのプログラムを記録した光ディスク等の記録媒体４９は開示の技術の記録媒体の一例である。また、格納部５４の実現例であるＨＤＤ（Hard Disk Drive）は、開示の技術の記録媒体の一例でもある。また、冗長化ソフトウェア６４は、開示の技術における冗長化部の一例である。
【００３３】
ドライバ６６は、ディスクミラーリングドライバ６８、Ｉ／Ｏ監視ドライバ７０、及びディスクドライバ７２を含んでいる。ディスクミラーリングドライバ６８は、冗長化ソフトウェア６４の実行により冗長化されるディスク８２，８４に対して、データの入出力処理を要求する要求情報を出力することでデータの入出力を指示する。すなわち、ディスクミラーリングドライバ６８は、アプリケーションプログラム６０よりディスクに対するデータの入出力を受け付けると、冗長化されるディスク８２，８４に対して要求情報を出力したりデータの入出力を指示して処理する。ＣＰＵ４２は、ディスクミラーリングドライバ６８を実行することで、図１に示す情報処理装置１０における指示部１８として動作する。すなわち、情報処理装置１０がコンピュータ３２で実現され、ディスクミラーリングドライバ６８を実行することでコンピュータ３２は情報処理装置１０の指示部１８として動作される。
【００３４】
ディスクドライバ７２は、ディスク８２，８４に対して、データの入出力を実行する。すなわち、ディスクドライバ７２は、ディスク８２，８４に対するデータの入出力が要求されると、ディスク８２，８４に対してデータの入出力を処理する。ＣＰＵ４２は、ディスクドライバ７２を実行することで、図１に示す情報処理装置１０における授受部２２として動作する。すなわち、情報処理装置１０がコンピュータ３２で実現され、ディスクドライバ７２を実行することでコンピュータ３２は情報処理装置１０の授受部２２として動作される。
【００３５】
Ｉ／Ｏ監視ドライバ７０は、ディスクミラーリングドライバ６８とディスクドライバ７２の間で、入出力（Ｉ／Ｏ）の応答時間を監視する処理を実行する。詳細は後述するが、Ｉ／Ｏ監視ドライバ７０は、ディスクドライバ７２からＩ／Ｏのタイムアウト時間内に応答がない場合、Ｉ／Ｏの応答遅延が発生したと判断し、管理デーモンプロセス５８にＩ／Ｏのタイムアウト機能の実施可否を問い合わせる。Ｉ／Ｏ監視ドライバ７０は、問い合わせ結果に応じて、実施可能な場合に、Ｉ／Ｏのタイムアウト機能を実施する。ＣＰＵ４２は、Ｉ／Ｏ監視ドライバ７０を実行することで、図１に示す情報処理装置１０における監視部２０として動作する。すなわち、情報処理装置１０がコンピュータ３２で実現され、Ｉ／Ｏ監視ドライバ７０を実行することでコンピュータ３２は情報処理装置１０の監視部２０として動作される。
【００３６】
管理プログラム５６は、管理デーモンプロセス５８を含んでいる。管理デーモンプロセス５８は、カーネル層に分類されるＩ／Ｏ監視ドライバ７０では実施困難な処理を担当するユーザ層のプログラムである。管理デーモンプロセス５８は、Ｉ／Ｏ監視ドライバ７０から問い合わせを受け取ると、冗長化ソフトウェアの管理テーブル７８を確認し、稼働中の冗長化ソフトウェアに対して冗長状態をチェックするコマンドを発行する。管理デーモンプロセス５８は、冗長化ソフトウェアよりコマンドに対する返信結果からＩ／Ｏのタイムアウト機能実施の可否を判断し、判断結果をＩ／Ｏ監視ドライバ７０に応答する。ＣＰＵ４２は、管理デーモンプロセス５８を実行することで、図１に示す情報処理装置１０における管理部１２として動作する。すなわち、情報処理装置１０がコンピュータ３２で実現され、管理デーモンプロセス５８を実行することでコンピュータ３２は情報処理装置１０の管理部１２として動作される。
【００３７】
なお、冗長化ソフトウェアに対して発行する冗長状態をチェックするコマンドは、冗長化ソフトウェア６４に対象のディスクの冗長状態を問い合わせて、Ｉ／Ｏのタイムアウト機能の実行可否を通知する命令を示す情報である。例えば、ディスクミラーリングソフトウェア等の処理によりディスクが冗長化される場合、対象ディスクについてディスクミラーリング処理の稼働状態が正常であり、一方のディスクを縮退しても正常に稼働可能であるかを示す情報が、コマンドに対する返信となる。また、例えばクラスタリングソフトウェア等によりサーバが冗長化される場合、対象のディスクを使用しているクラスタリングソフトウェアについて、切り替えられる切替先のコンピュータが正常に稼働可能であるかを示す情報が、コマンドに対する返信となる。
【００３８】
また、コンピュータ３２の格納部５４に記憶されるデータベース７４は、ディスクテーブル７６，及び管理テーブル７８を含んでいる。コンピュータ３２の格納部５４に記憶されたデータベース７４は図１に示す情報処理装置１０の記憶部１４に対応する。つまり、情報処理装置１０がコンピュータシステム３０によるコンピュータ３２で実現されるとき、ディスクテーブル７６，及び管理テーブル７８を含むデータベース７４は、記憶部１４に対応する。
【００３９】
ディスクテーブル７６は、Ｉ／Ｏ監視ドライバ７０において冗長化されているディスクを判別するために使用するものであり、冗長化されているディスクを管理するための情報がテーブルとしてデータベース７４に格納される。冗長化されているディスクを管理するための情報の一例には、冗長化されているディスクを識別するためのディスクの名称（ディスク名）を示す情報がある。
【００４０】
図３に、ディスクテーブル７６の一例を示す。ディスクテーブル７６は、「冗長構成ディスク」の項目に対して、ディスクを識別するためのディスク名を示す情報が登録される。図３では、項目「冗長構成ディスク」に示す情報として、冗長化されているディスクの名称を示す「ディスク＃１」、「ディスク＃２」、「ディスク＃３」、「ディスク＃５」の情報が記憶されている一例を示す。
【００４１】
なお、ディスクテーブル７６は、ユーザにより予め登録される。例えば、冗長化ソフトウェア６４により冗長化されるディスクの登録、変更及び削除が生じたとき、ユーザは管理プログラム５６に含まれるディスクテーブルの登録プロセスを起動して、ディスクテーブル７６におけるディスクの登録、変更及び削除を指示する。
【００４２】
図１０に、ディスクテーブル７６を登録する登録プロセスの流れの一例を示す。図１０に示す処理ルーチンは、コンピュータ３２の稼働中に、ユーザによる入力装置４７の操作、例えば登録プロセスの実行指示により開始される。まず、ユーザは、入力装置４７の操作により、冗長構成ディスクを示す情報、つまり冗長化されるディスクの名称を示す情報を入力する。ユーザにより入力された情報の入力値を、コンピュータ３２のＣＰＵ４２は、ステップ１５０において、冗長構成のディスクに関する情報の入力値として取得する。次に、ＣＰＵ４２は、ユーザによる入力装置４７の操作、例えば予め定めた終了キーの押圧指示がなされるまで（ステップ１５２で否定判断のとき）、冗長構成のディスクに関する情報の入力値の取得を繰り返す。ＣＰＵ４２は、ステップ１５２で肯定判断のとき、ステップ１５４において、ステップ１５０で取得した入力値をディスクテーブル７６に登録し、本処理ルーチンを終了する。
【００４３】
管理テーブル７８は、管理デーモンプロセス５８が冗長化ソフトウェア６４に問い合わせを行う際に引数として使用するものであり、冗長化ソフトウェア６４に対する問い合わせに関する情報がテーブルとしてデータベース７４に格納される。冗長化ソフトウェア６４に対する問い合わせに関する情報の一例には、冗長化ソフトウェア６４に対応する冗長状態の確認コマンド名、及び登録されているディスク名を示す情報がある。
【００４４】
図４に、管理テーブル７８の一例を示す。管理テーブル７８には、「Ｎｏ．」、「コマンド名」、及び「ディスク」の各情報が対応付けて各々登録される。
【００４５】
項目「Ｎｏ．」に示す情報は、登録順序を示す情報である。項目「コマンド名」に示す情報は、対象の冗長化ソフトウェアに対する問い合わせを示す命令のコマンド名を示す情報である。項目「ディスク」に示す情報は、対象の冗長化ソフトウェアにより冗長化されているディスクの組み合わせを示す情報である。図４に示すＮｏ．１の一例では、項目「Ｎｏ．」に「１」の情報、項目「コマンド名」に「コマンド１」の情報、及び項目「ディスク」に「ディスク＃１，ディスク＃２」の情報が対応付けて登録されている。
【００４６】
なお、管理テーブル７８は、ユーザにより予め登録される。例えば、冗長化ソフトウェア６４に対する問い合わせに関する情報の登録、変更及び削除が生じたとき、ユーザは管理プログラム５６に含まれる管理テーブルの登録プロセスを起動して、管理テーブル７８における各項目の登録、変更及び削除を指示する。
【００４７】
図１１に、管理テーブル７８を登録する登録プロセスの流れの一例を示す。図１１に示す処理ルーチンは、コンピュータ３２の稼働中に、ユーザによる入力装置４７の操作、例えば登録プロセスの実行指示により開始される。まず、ユーザは、入力装置４７の操作により、冗長化ソフトウェア６４に対する問い合わせを示す命令のコマンド名を示す情報、及び冗長化されているディスクの名称を示す情報を入力する。ユーザにより入力された情報の入力値を、コンピュータ３２のＣＰＵ４２は、ステップ１６０において、取得する。次に、ＣＰＵ４２は、ユーザによる入力装置４７の操作、例えば予め定めた終了キーの押圧指示がなされるまで（ステップ１６２で否定判断のとき）、冗長化コマンドに関する情報の入力値を取得を繰り返す。ＣＰＵ４２は、ステップ１６２で肯定判断のとき、ステップ１６４において、ステップ１６０で取得した入力値を管理テーブル７８に登録し、本処理ルーチンを終了する。
【００４８】
図２に示すように、コンピュータシステム３０のネットワーク３６には、コンピュータ３２，３４が接続されている。コンピュータ３２，３４は、同一構成のコンピュータであるので、コンピュータ３４はコンピュータ３２と同一部分について同一符号を付して詳細な説明を省略する。
【００４９】
次に第１実施形態の作用を説明する。第１実施形態は、冗長化される記憶装置の応答遅延を抑制する一例として、コンピュータ３２に対するＩ／Ｏ要求についての処理を説明する。
【００５０】
図５に、コンピュータシステム３０において、コンピュータ３２の作動に関係する機能を主体とする機能ブロックの一例を示す。図６に、コンピュータ３２の作動時におけるソフトウェア機能の階層構造の一例を示す。図６は、第１実施形態にかかるコンピュータ３２の作動に関係する階層構造として、ユーザ層９０，カーネル層９２、及びハードウェア層９４に分類した一例を示す。
【００５１】
なお、第１実施形態では、ディスク８２，８４は、冗長化されている。例えば、データを記録する場合には、冗長化されているディスク８２，８４の両方に、同一データが記録される。また、データを読み取る場合には、冗長化ソフトウェアにより定められたディスク８２またはディスク８４より行われる。また、冗長化されているディスク８２，８４は、個別に識別されるのではなく、仮想的に１つのディスクとして識別される場合がある。そこで、以下では説明を簡単にするため、個別に識別されるのではない冗長化されているディスク８２，８４を扱う場合には、ディスク８３として説明する。また、冗長化されているディスク８２，８４のうち、ディスク８２が主体となるディスクとして説明する。
【００５２】
コンピュータ３２では、冗長化ソフトウェア６４によりディスク８２，８４が冗長化されており、冗長化されたハードウェア層９４のディスク８３に対してユーザ層９０においてアプリケーションプログラム６０がデータの読み書きを要求する。アプリケーションプログラム６０がデータの読み書きを要求すると、カーネル層９２において、ディスクミラーリングドライバ６８はディスクドライバ７２に対して対象となるディスク８３にＩ／Ｏ要求を行う。つまり、ディスクミラーリングドライバ６８はディスクドライバ７２に対して対象となる主体のディスク８２にＩ／Ｏ要求を行う。ディスクドライバ７２は、Ｉ／Ｏ要求を受け取ると、応答としてディスク８２の状態をディスクミラーリングドライバ６８へ返す。
【００５３】
ディスクミラーリングドライバ６８が行うＩ／Ｏ要求及びディスクドライバ７２による応答は、カーネル層９２におけるＩ／Ｏ監視ドライバ７０により監視される。Ｉ／Ｏ監視ドライバ７０は、ディスクテーブル７６（図３）を確認し、対象のディスクが冗長化されているか否かを判別する。対象のディスクが冗長化されているとき、Ｉ／Ｏ監視ドライバ７０は、ディスク８３に対するＩ／Ｏ監視を開始する。つまり、Ｉ／Ｏ監視ドライバ７０は、ディスクドライバ７２から予め定めたタイムアウト時間内に応答がない場合、応答遅延が発生したとして、ユーザ層９０における管理デーモンプロセス５８にタイムアウト機能の実施可否を問い合わせる。管理デーモンプロセス５８は、冗長化ソフトウェアの管理テーブル７８（図４）を確認し、冗長状態を確認するコマンドを取得し、取得したコマンドをユーザ層９０における対象の冗長化ソフトウェア６４に発行する。
【００５４】
なお、図６では、冗長化ソフトウェア６４に、３つの冗長化ソフトウェア６４Ａ，６４Ｂ，６４Ｃを含む一例を示す。冗長化ソフトウェア６４Ａ，６４Ｂ，６４Ｃの各々について、図６では、冗長化ソフト１，冗長化ソフト２，冗長化ソフト３と表記している。また、図６では、冗長化ソフトウェア６４Ａ，６４Ｂ，６４Ｃの各々に対応して問い合わせるコマンドを、コマンド１，コマンド２，コマンド３と表記している。図６では、冗長化ソフトウェア６４として３つの冗長化ソフトウェア６４Ａ，６４Ｂ，６４Ｃを含む一例を示すが、冗長化ソフトウェア６４は１つ以上含まれていればよい。
【００５５】
冗長化ソフトウェア６４は、受け取ったコマンドにより冗長状態を管理デーモンプロセス５８へ返す。管理デーモンプロセス５８は、冗長化ソフトウェア６４の返信結果からタイムアウト機能を実施可能か否かを判断し、Ｉ／Ｏ監視ドライバ７０に応答する。Ｉ／Ｏ監視ドライバ７０は、管理デーモンプロセス５８よりタイムアウト機能の実施可能を示す情報を受け取ると、ディスクドライバ７２からの応答を待たずにタイムアウトしたことをディスクミラーリングドライバ６８へ返すタイムアウト機能を実施する。従って、ディスクテーブル７６を用いて処理するＩ／Ｏ監視ドライバ７０、管理テーブル７８を用いて処理する管理デーモンプロセス５８は、タイムアウト機能を実現するためのタイムアウト判別部９６として機能する。
【００５６】
次に、コンピュータ３２の作動をさらに説明する。
【００５７】
図７に、コンピュータ３２で実行されるカーネル層９２におけるＩ／Ｏ監視ドライバ７０の処理の流れを示す。図７に示す処理ルーチンは、コンピュータ３２の稼働中に、ディスクミラーリングドライバ６８よりＩ／Ｏ要求が発行されると実行される。つまり、コンピュータ３２のＣＰＵ４２は、ディスクミラーリングドライバ６８によってＩ／Ｏ要求が行われる度に、図７に示す処理ルーチンを実行する。
【００５８】
コンピュータ３２のＣＰＵ４２は、ステップ１００において、ディスクミラーリングドライバ６８よりなされるＩ／Ｏ要求を受け取る。次に、ＣＰＵ４２は、ステップ１０２において、ディスクテーブル７６を参照して対象のディスクがディスクテーブル７６に登録されているか否かを確認する。対象のディスクがディスクテーブル７６に登録されているとき、ＣＰＵ４２は、ステップ１０４で肯定判断し、ステップ１０６の処理へ移行する。一方、対象のディスクがディスクテーブル７６に登録されていない場合、冗長化されていないディスクに対するＩ／Ｏ要求である。従って、冗長化されていないディスクに対するＩ／Ｏ要求を行う。すなわち、ＣＰＵ４２は、対象のディスクがディスクテーブル７６に登録されていないとき（ステップ１０４で否定判断）、ステップ１１４においてディスクドライバ７２へＩ／Ｏ要求を発行し、ディスクドライバ７２からの応答を待機する。ディスクドライバ７２から応答がなされると、ＣＰＵ４２は、ステップ１１６において、ディスクドライバ７２よりの応答であるＩ／Ｏ要求の結果をディスクミラーリングドライバ６８へ返し、本処理ルーチンを終了する。
【００５９】
対象のディスクがディスクテーブル７６に登録されている場合、冗長化されているディスクに対するＩ／Ｏ要求であるので、ディスク８３に対するＩ／Ｏ監視を開始する。すなわち、ＣＰＵ４２は、ステップ１０６において、Ｉ／Ｏ監視のための予め定めたタイムアウト時間を監視時間に設定することにより、Ｉ／Ｏ応答時間の監視を設定する。次に、ＣＰＵ４２は、ステップ１０８において、ディスクドライバ７２へＩ／Ｏ要求を発行し、ディスクドライバ７２よりの応答を、タイムアウト時間について待機する。タイムアウト時間内にディスクドライバ７２より応答があれば、冗長化されているディスク８３は正常稼働中と判断できる。従って、ＣＰＵ４２は、タイムアウト時間内にディスクドライバ７２より応答があるとき（ステップ１１０で肯定判断）、ステップ１１６において、ディスクドライバ７２よりの応答であるＩ／Ｏ要求の結果をディスクミラーリングドライバ６８へ返す。
【００６０】
タイムアウト時間内にディスクドライバ７２より応答がない場合、冗長化されているディスク８３のうち、主となるディスク８２に何らかの障害が生じており、応答遅延を招く可能性がある。主となるディスク８２に何らかの障害が生じている場合、応答遅延を回避できる可能性を含んでいる。そこで、ＣＰＵ４２は、タイムアウト時間内にディスクドライバ７２より応答がないとき（ステップ１１０で否定判断）、ステップ１１２において、タイムアウト判定処理を行った後に、ステップ１１６の処理へ移行する。
【００６１】
次に、図７に示すステップ１１２のタイムアウト判定処理についてさらに説明する。
【００６２】
図８に、タイムアウト判定処理の流れの一例を示す。タイムアウト判定処理では、まず、コンピュータ３２のＣＰＵ４２は、ステップ１２０において、管理プログラム５６の管理デーモンプロセス５８に対する問い合わせ処理を実行する。管理デーモンプロセス５８に対する問い合わせ処理は、対象のディスクがＩ／Ｏ要求に対してタイムアウトすることが可能な冗長状態であるか否かを示すタイムアウトの可否を問い合わせる処理である。具体的には、ＣＰＵ４２は、ステップ１０２で確認した対象のディスクの名称（ディスク名）を入力とする問い合わせの依頼を示す情報を、管理デーモンプロセス５８へ送り、管理デーモンプロセス５８よりの返信を待機する。管理デーモンプロセス５８は、後述するように、タイムアウトの可否を示す情報を返信する。
【００６３】
次に、ＣＰＵ４２は、ステップ１２２において、管理デーモンプロセス５８より返信されるタイムアウトの可否を示す情報を受け取る。対象のディスク（８２）が冗長化されて正常に稼働中の冗長状態であるとき、対象のディスク（８２）による稼働を、冗長化されている他のディスク（８４）による稼働に切り替えることが可能である。つまり、冗長化されている他のディスク（８４）に稼働に切り替えるために、対象のディスク（８２）によるＩ／Ｏ要求に対してタイムアウトが可能である。そこで、ＣＰＵ４２は、稼働の切替が可能な冗長状態を示す情報をタイムアウトが可能である情報として受け取ると（ステップ１２４で肯定判断）、ステップ１２６において、ディスクドライバ７２へ発行したＩ／Ｏ要求をキャンセルし、本処理ルーチンを終了する。
【００６４】
従って、図７のステップ１１６では、ディスクドライバ７２よりの応答を待たずにＩ／Ｏ要求の結果、すなわち対象のディスク８２より応答が無いことを示す情報をディスクミラーリングドライバ６８へ返すことができる。ディスクミラーリングドライバ６８が対象のディスク８２より応答が無いことを示す情報を受け取ると、冗長化ソフトウェア６４は、対象のディスク８２による稼働を、冗長化されている他のディスク８４による稼働に切り替えることができる。
【００６５】
対象のディスク（８２）が稼働を切替可能な冗長状態にないときは、対象のディスク（８２）による稼働が必要である。そこで、ＣＰＵ４２は、稼働の切替が困難な状態を示す情報をタイムアウトが困難である情報として受け取ると（ステップ１２４で否定判断）、ステップ１２８へ処理を移行する。ステップ１２８では、ステップ１０６（図７）で設定したタイムアウト時間を経過した後においてもディスクドライバ７２からの応答を待機し、ディスクドライバ７２から応答がなされると、本処理ルーチンを終了する。
【００６６】
次に、管理デーモンプロセス５８の処理について説明する。
【００６７】
図９に、コンピュータ３２で実行されるユーザ層９０における管理デーモンプロセス５８の処理の流れの一例を示す。図９に示す処理ルーチンは、コンピュータ３２の稼働中に、Ｉ／Ｏ監視ドライバ７０より問い合わせの依頼を示す情報が出力されると実行される。つまり、コンピュータ３２のＣＰＵ４２は、Ｉ／Ｏ監視ドライバ７０による処理で問い合わせの依頼がなされる度に、図９に示す処理ルーチンを実行する。
【００６８】
コンピュータ３２のＣＰＵ４２は、ステップ１３０において、管理テーブル７８を確認し、管理テーブル７８に登録済みのコマンドの総数を取得し、かつ取得した総数を変数ｘに格納する。図４に示す管理テーブル７８の例では、コマンド名とディスクの対応が４組登録されているので、変数ｘには「４」の値が格納される。ステップ１３０で取得するコマンドの総数は、管理テーブル７８への登録数であり、同一のコマンド名のコマンドが複数登録されている場合であっても重複して計数する。
【００６９】
次に、ＣＰＵ４２は、ステップ１３２において、カウンタ変数Ｎをリセットし（Ｎ＝０）、次のステップ１３４においてカウンタ変数Ｎを１だけインクリメントする（Ｎ＝Ｎ＋１）。次にＣＰＵ４２は、ステップ１３６において、カウンタ変数Ｎの値が変数ｘの値以下（Ｎ＜＝ｘ）か否かを判断する。カウンタ変数Ｎの値が変数ｘの値を超えるときは、対象のディスクを冗長化している冗長化ソフトウェア６４に対する冗長状態の問い合わせ結果が、対象のディスクを切替可能な冗長状態になく、タイムアウトが困難であることを示す。従って、Ｎ＞ｘのとき（ステップ１３６で否定判断）、ＣＰＵ４２は、ステップ１４６において、稼働の切替が困難な冗長状態を示す情報、つまりタイムアウトが困難であることを示す情報を、Ｉ／Ｏ監視ドライバ７０へ返信（通知）し、本処理ルーチンを終了する。
【００７０】
カウンタ変数Ｎの値が変数ｘの値以下のとき、管理テーブル７８に冗長状態の問い合わせコマンドに関する情報が残存する。従って、カウンタ変数Ｎの値が変数ｘの値以下のとき（ステップ１３６で肯定判断）、ＣＰＵ４２は、ステップ１３８において、管理テーブル７８の第Ｎ番目の情報に、対象のディスクが含まれるか否かを判断する。すなわち、管理テーブル７８の第Ｎ番目の項目「ディスク」の情報に、対象のディスクのディスク名が含まれるか否かを判断する。項目「ディスク」の情報に、対象のディスクのディスク名が含まれていないとき（ステップ１３８で否定判断）、管理テーブル７８の第Ｎ番目の情報は、対象のディスクに無関係である。ＣＰＵ４２は、ステップ１３８で否定判断すると、ステップ１３４へ戻り、管理テーブル７８における次の情報の処理へ移行する。
【００７１】
項目「ディスク」の情報に、対象のディスクのディスク名が含まれるとき（ステップ１３８で肯定判断）、ＣＰＵ４２は、ステップ１４０において、管理テーブル７８の第Ｎ番目の情報におけるコマンドを実行する。すなわち、管理テーブル７８の第Ｎ番目の項目「コマンド名」の情報によるコマンドを実行する。冗長化ソフトウェア６４は、コマンドが実行されると、自身で管理している冗長化しているディスクの冗長状態を確認し、確認結果を示す情報を、管理デーモンプロセス５８へ返す。冗長化ソフトウェア６４による確認結果を示す情報の一例には、稼働の切替が可能な冗長状態を示す情報または稼働の切替が困難な状態を示す情報がある。冗長化ソフトウェア６４による確認結果を示す情報は、稼働の切替が可能な冗長状態を示す情報の値として「１」が返信される。また、稼働の切替が困難な状態を示す情報の値には「０」が返信される。
【００７２】
冗長化ソフトウェア６４から返信された確認結果を示す情報の値が「０」であるとき（ステップ１４２で肯定判断）、管理テーブル７８の第Ｎ番目の情報では、稼働の切替が困難であることを示している。そこで、ＣＰＵ４２は、ステップ１３４へ戻り、管理テーブル７８における次の情報の処理へ移行する。
【００７３】
冗長化ソフトウェア６４から返信された確認結果を示す情報の値が「１」であるとき（ステップ１４２で否定判断）、管理テーブル７８の第Ｎ番目の情報で、稼働の切替が可能であることを示している。そこで、ＣＰＵ４２は、ステップ１４４において、稼働の切替が可能な冗長状態を示す情報、つまりタイムアウトが可能であることを示す情報を、Ｉ／Ｏ監視ドライバ７０へ返信（通知）し、本処理ルーチンを終了する。
【００７４】
以上説明したように、第１実施形態では、冗長化ソフトウェア６４によりディスク８３が冗長化されていれば、ディスクドライバ７２からの応答を待たずにタイムアウトしたことを知らせるタイムアウト機能を実現できる。すなわち、ディスクミラーリングドライバ６８自身にタイムアウト機能を含ませる必要はない。また、冗長化ソフトウェア６４によりディスク８３が冗長化されているときに、Ｉ／Ｏ監視ドライバ７０によりタイムアウト機能を実施できる。従って、コンピュータ３２にＩ／Ｏの応答遅延が発生した場合にＩ／Ｏの応答時間を短縮することができ、コンピュータ３２ひいてはコンピュータシステム３０全体の可用性を高めることができる。
【００７５】
＜第２実施形態＞
次に第２実施形態を説明する。第２実施形態は、クラスタリングソフトウェア等の処理によりサーバ等のコンピュータが冗長化される場合に、開示の技術を適用したものである。つまり、第２実施形態では、稼働中のコンピュータにおける応答遅延を抑制して、冗長化される待機用のコンピュータに切り替える。なお、第２実施形態は、第１実施形態と略同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
【００７６】
第２実施形態では、クラスタリングソフトウェアによりコンピュータを冗長化する一例に、コンピュータ３２を運用系のサーバとして稼働するコンピュータとし、コンピュータ３４を待機系のサーバとして稼働するコンピュータとする場合を説明する。
【００７７】
なお、以下の説明では、運用系のコンピュータ３２は第１実施形態と同一符号を用いて、詳細な説明を省略する。また、待機系のコンピュータ３４は、運用系のコンピュータ３２と同一構成である一例を説明し、運用系のコンピュータ３２の符号の後に、記号「Ｓ」を付してコンピュータ３２，３４を区別して扱う。
【００７８】
図１２に、第２実施形態にかかるコンピュータシステム３０においてコンピュータ３２の作動に関係する機能を主体とする機能ブロックの一例を示す。
【００７９】
コンピュータシステム３０において、コンピュータ３２はクラスタソフトウェア６２を含み、コンピュータ３４はクラスタソフトウェア６２Ｓを含んでおり、コンピュータ３２とコンピュータ３４が冗長化される。つまり、コンピュータ３２とコンピュータ３４とは、常に同一状態に維持されており、コンピュータ３２に運用上の不具合が生じると、コンピュータ３４を運用系に切り替えることができるようになっている。
【００８０】
コンピュータ３２では、ディスク８２またはディスク８４に対してユーザ層９０においてアプリケーションプログラム６０がデータの読み書きを要求する。アプリケーションプログラム６０がデータの読み書きを要求すると、カーネル層９２においてディスクドライバ７２に対して対象となるディスク８２，８４にＩ／Ｏ要求を行う。ディスクドライバ７２は、Ｉ／Ｏ要求を受け取り、例えばディスク８２の状態を応答としてアプリケーションプログラム６０へ返す。なお、以下の説明を簡単にするために、コンピュータ３２ではディスク８２に対してアプリケーションプログラム６０がデータの読み書きを要求するものとする。
【００８１】
Ｉ／Ｏ監視ドライバ７０は、Ｉ／Ｏ要求及びディスクドライバ７２による応答を監視する。Ｉ／Ｏ監視ドライバ７０は、ディスクテーブル７６を確認し、対象のディスクが冗長化されているか否かを判別する。第２実施形態では、コンピュータが冗長化されるので、ディスクテーブル７６には、コンピュータ３２において冗長化される全てのディスクが登録される。
【００８２】
第２実施形態にかかるディスクテーブル７６は、Ｉ／Ｏ監視ドライバ７０において冗長化されているディスクを判別するために使用するものであり、冗長化されているディスクを管理するための情報がテーブルとしてデータベース７４に格納される。冗長化されているディスクを管理するための情報の一例には、冗長化されるコンピュータに含まれる冗長化対象のディスクを識別するためのディスクの名称（ディスク名）を示す情報がある。
【００８３】
図１３に、第２実施形態にかかるディスクテーブル７６の一例を示す。ディスクテーブル７６は、図１３では、冗長化されているディスクの名称を示す「ディスク＃１」、「ディスク＃２」、「ディスク＃３」、「ディスク＃４」、「ディスク＃５」の情報が記憶されている一例を示す。
【００８４】
なお、ディスクテーブル７６は、ユーザにより予め登録される。例えば、クラスタソフトウェア６２により冗長化されるディスクの登録、変更及び削除が生じたとき、ユーザは管理プログラム５６に含まれるディスクテーブルの登録プロセスを起動して、ディスクテーブル７６におけるディスクの登録、変更及び削除を指示する。
【００８５】
コンピュータ３２はクラスタソフトウェア６２により冗長化されているので、Ｉ／Ｏ監視ドライバ７０は、ディスク８２に対するＩ／Ｏ監視を開始する。つまり、Ｉ／Ｏ監視ドライバ７０は、ディスクドライバ７２から予め定めたタイムアウト時間内に応答がない場合、応答遅延が発生したとして、ユーザ層９０における管理デーモンプロセス５８にタイムアウト機能の実施可否を問い合わせる。管理デーモンプロセス５８は、冗長化ソフトウェアの管理テーブル７８を確認し、冗長状態を確認するコマンドを取得し、取得したコマンドをユーザ層９０における対象のクラスタソフトウェア６２に発行する。
【００８６】
第２実施形態にかかる管理テーブル７８は、管理デーモンプロセス５８がクラスタソフトウェア６２に問い合わせを行う際に用いるものであり、クラスタソフトウェア６２に対する問い合わせに関する情報がテーブルとしてデータベース７４に格納される。クラスタソフトウェア６２に対する問い合わせに関する情報の一例には、クラスタソフトウェア６２に対応する冗長状態の確認コマンド名、及びコンピュータの名称やコンピュータに含まれるディスクの名称を示す情報がある。
【００８７】
図１４に、第２実施形態にかかる管理テーブル７８の一例を示す。管理テーブル７８には、「Ｎｏ．」、「コマンド名」、及びクラスタリングを示す各情報が対応付けて各々登録される。クラスタリングを示す情報は、クラスタソフトウェア６２によりクラスタリングされるコンピュータ同士の関係を示す情報であり、図１４では「サーバ」及び「ディスク」を示す各情報が対応付けて各々登録される一例を示す。
【００８８】
項目「サーバ」に示す情報は、クラスタソフトウェア６２によりクラスタリングされるコンピュータを示す情報である。項目「ディスク」に示す情報は、対象のクラスタソフトウェア６２により冗長化されるコンピュータにおいてクラスタリングの対象とするディスクを示す情報である。図１４に示すＮｏ．１の一例では、運用系のコンピュータ３２として項目「サーバ」に「サーバ＃１」の情報及び項目「ディスク」にディスク８２，ディスク８４として「ディスク＃１，ディスク＃２」の情報が対応付けて登録されている。また、待機系のコンピュータ３４として項目「サーバ」に「サーバ＃２」の情報及び項目「ディスク」にディスク８２Ｓ，ディスク８４Ｓとして「ディスク＃１，ディスク＃２」の情報が対応付けて登録されている。
【００８９】
なお、管理テーブル７８は、ユーザにより予め登録される。例えば、クラスタソフトウェア６２に対する問い合わせに関する情報の登録、変更及び削除が生じたとき、ユーザは管理プログラム５６に含まれる管理テーブルの登録プロセスを起動して、管理テーブル７８における各項目の登録、変更及び削除を指示する。
【００９０】
クラスタソフトウェア６２は、受け取ったコマンドにより冗長状態を管理デーモンプロセス５８へ返す。管理デーモンプロセス５８は、クラスタソフトウェア６２の返信結果からタイムアウト機能を実施可能か否かを判断し、Ｉ／Ｏ監視ドライバ７０に応答する。Ｉ／Ｏ監視ドライバ７０は、管理デーモンプロセス５８よりタイムアウト機能を実施可能であることを示す情報を受け取ると、ディスクドライバ７２からの応答を待たずにタイムアウトしたことをアプリケーションプログラム６０へ返すタイムアウト機能を実施する。従って、ディスクテーブル７６を用いて処理するＩ／Ｏ監視ドライバ７０、管理テーブル７８を用いて処理する管理デーモンプロセス５８は、タイムアウト機能を実現するためのタイムアウト判別部９６（図６）として機能する。
【００９１】
なお、アプリケーションプログラム６０は、Ｉ／Ｏ要求に対してタイムアウトしたことを示す情報を受け取ると、クラスタソフトウェア６２に通知することができる。クラスタソフトウェア６２は、アプリケーションプログラム６０によるＩ／Ｏ要求がタイムアウトしたことを示す情報を受け取ると、待機系のコンピュータ３４にコンピュータの稼働を切り替えることができる。タイムアウトしたことを示す情報を、クラスタソフトウェア６２が直接受け取っても良い。従って、運用系のコンピュータ３２において、応答遅延が生じてコンピュータ３２の稼働に支障が生じる前に、クラスタソフトウェア６２により、コンピュータを切り替えることができる。
【００９２】
図１５に、第２実施形態にかかるコンピュータ３２で実行されるカーネル層９２におけるＩ／Ｏ監視ドライバ７０の処理の流れを示す。図１５に示す処理ルーチンは、コンピュータ３２の稼働中に、ディスクに対してＩ／Ｏ要求が発行されると実行される。つまり、コンピュータ３２のＣＰＵ４２は、ディスク８２，８４にＩ／Ｏ要求がなされる度に、図１５に示す処理ルーチンを実行する。
【００９３】
コンピュータ３２のＣＰＵ４２は、ステップ２００において、ディスクに対してなされるＩ／Ｏ要求を受け取る。例えば、ＣＰＵ４２は、アプリケーションプログラム６０から要求されるディスク８２に対してなされるＩ／Ｏ要求を受け取る。次に、ＣＰＵ４２は、対象ディスクのディスクテーブル７６への登録を確認し（ステップ１０２）、登録されているとき（ステップ１０４で肯定判断）、第１実施形態と同様にステップ１０６〜ステップ１１２の処理へ移行する。一方、対象のディスクがディスクテーブル７６に登録されていない場合（ステップ１０４で否定判断）、冗長化されていないディスクに対するＩ／Ｏ要求である。このため、ディスクに対するＩ／Ｏ要求を行い（ステップ１１４）ディスクドライバ７２よりの応答を待機する。ディスクドライバ７２より応答がなされると、ＣＰＵ４２は、ステップ２０２において、ディスクドライバ７２よりの応答であるＩ／Ｏ要求の結果を上位ソフトウェア（ここでは、アプリケーションプログラム６０）へ返し、本処理ルーチンを終了する。
【００９４】
ディスク８２に対するＩ／Ｏ監視を開始してタイムアウト時間内にディスクドライバ７２より応答がないとき（ステップ１０４で肯定判断〜ステップ１１０で否定判断）、タイムアウト判定処理を行う（ステップ１１２）。
【００９５】
タイムアウト判定処理では、ＣＰＵ４２は、管理デーモンプロセス５８に対する問い合わせ処理を実行する（図８も参照）。ＣＰＵ４２は、問い合わせの依頼を示す情報を、管理デーモンプロセス５８へ送り、返信されたタイムアウトの可否を示す情報に応じて、対象のディスク８２に対する処理を実行する。つまり、タイムアウトが可能な場合には冗長化されている待機系のコンピュータ３４に含まれるディスク８２Ｓによる稼働に切り替えることが可能である。そこで、ＣＰＵ４２は、タイムアウトが可能である情報として受け取ると、ディスクドライバ７２へ発行したＩ／Ｏ要求をキャンセルし、本処理ルーチンを終了する。従って、ディスクドライバ７２よりの応答を待たずにＩ／Ｏ要求の結果をアプリケーションプログラム６０へ返すことができる。
【００９６】
管理デーモンプロセス５８は、第１実施形態と同様に、Ｉ／Ｏ監視ドライバ７０より問い合わせの依頼を示す情報が出力されると実行される（図９も参照）。
【００９７】
管理デーモンプロセス５８では、冗長化されたコンピュータに関する管理テーブル７８を確認し、コマンドを実行することで、クラスタソフトウェア６２に対する冗長状態の問い合わせを行う。管理デーモンプロセス５８は、クラスタソフトウェア６２より返信された冗長状態を示す情報の値に応じて、タイムアウトの可否を示す情報を、Ｉ／Ｏ監視ドライバ７０へ通知する。
【００９８】
以上説明したように、第２実施形態では、クラスタソフトウェア６２によりコンピュータのディスクが冗長化されていれば、ディスクドライバ７２からの応答を待たずにタイムアウトしたことを知らせるタイムアウト機能を実施できる。すなわち、クラスタソフトウェア６２に関係するカーネル層のドライバ自身にタイムアウト機能を含ませる必要はない。また、クラスタソフトウェア６２によりコンピュータのディスクが冗長化されているときに、Ｉ／Ｏ監視ドライバ７０によりタイムアウト機能を実施できる。Ｉ／Ｏ監視ドライバ７０によるタイムアウト機能の実施により、コンピュータ３２にＩ／Ｏの応答遅延が発生する前に速やかにコンピュータ３４へ切り替えることができる。従って、クラスタリングにより冗長化されているコンピュータのディスクに対するＩ／Ｏの応答時間を短縮することができ、コンピュータシステム３０全体の可用性を高めることができる。
【００９９】
なお、上記では情報処理装置１０をコンピュータシステム５０により実現する一例を説明した。しかし、これらの構成に限定されるものではなく、上記説明した要旨を逸脱しない範囲において、各種の改良及び変更を行っても良いのはもちろんである。
【０１００】
また、上記ではプログラムが記憶部に予め記憶（インストール）されている態様を説明したが、これに限定されるものではない。例えば、開示の技術における情報処理プログラムは、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の記録媒体に記録されている形態で提供することも可能である。
【０１０１】
本明細書に記載された全ての文献、特許出願及び技術規格は、個々の文献、特許出願及び技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
【図１】
2014057585.tif 000003
【図２】
2014057585.tif 000004
【図３】
2014057585.tif 000005
【図４】
2014057585.tif 000006
【図５】
2014057585.tif 000007
【図６】
2014057585.tif 000008
【図７】
2014057585.tif 000009
【図８】
2014057585.tif 000010
【図９】
2014057585.tif 000011
【図１０】
2014057585.tif 000012
【図１１】
2014057585.tif 000013
【図１２】
2014057585.tif 000014
【図１３】
2014057585.tif 000015
【図１４】
2014057585.tif 000016
【図１５】
2014057585.tif 000017
【手続補正書】
【提出日】平成27年4月1日(2015.4.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示する指示部と、
前記複数の記録装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答を行う授受部と、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて、前記冗長化されて切り替え可能な記憶装置に向けられた前記授受部における前記要求情報に対する応答を監視する監視部と、
を備えた情報処理装置。
【請求項２】
前記監視部は、前記特定の記憶装置が他の記憶装置と冗長化されているときに、前記特定の記憶装置に対する前記授受部からの応答を所定時間監視し、かつ前記授受部より前記所定時間内に応答がない場合に前記授受部よりの応答前に前記指示部に対して前記授受部より応答がないことを示す情報を出力する
請求項１の情報処理装置。
【請求項３】
前記冗長化情報は、前記記憶装置について冗長化される他の記憶装置との関係を示すディスク情報を含み、
前記監視部は、前記ディスク情報に基づいて、前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別する請求項１または請求項２の情報処理装置。
【請求項４】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働する冗長状態を示す管理情報を含み、
前記監視部は、前記管理情報に基づいて、前記記憶装置と他の記憶装置との冗長状態に対応して前記要求情報に対する応答を監視する
請求項１〜請求項３の何れか１項の情報処理装置。
【請求項５】
前記監視部は、前記記憶装置と他の記憶装置とが冗長化されて稼働している状態の場合に、前記要求情報を削除し、かつ前記指示部に対して前記特定の記憶装置について前記授受部より応答がないことを示す情報を送出すると共に、前記記憶装置と他の記憶装置とが冗長化されて稼働していない状態の場合に、前記要求情報を維持し、かつ前記授受部よりの応答を示す情報を前記指示部に送出する
請求項４の情報処理装置。
【請求項６】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンドを含み、
前記監視部は、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記要求情報に対する応答を監視する
請求項４または請求項５の情報処理装置。
【請求項７】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示し、
前記複数の記録装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答し、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて、前記冗長化されて切り替え可能な記憶装置に向けられた前記要求情報に対する応答を監視する
情報処理方法。
【請求項８】
前記要求情報に対する応答を監視するときは、前記特定の記憶装置が他の記憶装置と冗長化されているときに、前記特定の記憶装置に向けられた前記要求情報に対する応答を所定時間監視し、かつ前記特定の記憶装置に向けられた前記要求情報に対して前記所定時間内に応答がない場合に前記要求情報に対する応答より前に前記特定の記憶装置に向けられた前記要求情報に対する応答がないことを示す情報を出力する
請求項７の情報処理方法。
【請求項９】
前記冗長化情報は、前記記憶装置について冗長化される他の記憶装置との関係を示すディスク情報を含み、
前記要求情報に対する応答を監視するときは、前記ディスク情報に基づいて、前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別する
請求項７または請求項８の情報処理方法。
【請求項１０】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働する冗長状態を示す管理情報を含み、
前記要求情報に対する応答を監視するときは、前記管理情報に基づいて、前記記憶装置と他の記憶装置との冗長状態に対応して前記要求情報に対する応答を監視する
請求項７〜請求項９の何れか１項の情報処理方法。
【請求項１１】
前記要求情報に対する応答を監視するときは、前記記憶装置と他の記憶装置とが冗長化されて稼働している状態の場合に、前記要求情報を削除し、かつ前記特定の記憶装置に向けられた前記要求情報に対して応答がないことを示す情報を送出すると共に、前記記憶装置と他の記憶装置とが冗長化されて稼働していない状態の場合に、前記要求情報を維持し、かつ前記要求情報に対する応答を示す情報を送出する
請求項１０の情報処理方法。
【請求項１２】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンドを含み、
前記要求情報に対する応答を監視するときは、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記要求情報に対する応答を監視する
請求項１０または請求項１１の情報処理方法。
【請求項１３】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示し、
前記複数の記録装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答し、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて、前記冗長化されて切り替え可能な記憶装置に向けられた前記要求情報に対する応答を監視する
処理をコンピュータに実行させる情報処理プログラム。
【請求項１４】
コンピュータに、前記コンピュータを、請求項７〜請求項１２の何れか１項記載の情報処理方法に係る処理を実行させるための情報処理プログラム。
【手続補正書】
【提出日】平成28年1月28日(2016.1.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示する指示部と、
前記複数の記録装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答を行う授受部と、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記授受部からの応答を所定時間監視し、かつ前記授受部より前記所定時間内に応答がない場合に、前記指示部に対して前記授受部より応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記授受部よりの応答を監視する監視部と、を備え、
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンドを含み、
前記監視部は、前記授受部より応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する
情報処理装置。
【請求項２】
前記冗長化情報は、前記記憶装置について冗長化される他の記憶装置との関係を示すディスク情報を含み、
前記監視部は、前記ディスク情報に基づいて、前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別する請求項１記載の情報処理装置。
【請求項３】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働する冗長状態を示す管理情報を含み、
前記監視部は、前記管理情報に基づいて、前記記憶装置と他の記憶装置との冗長状態に対応して前記要求情報に対する応答を監視する
請求項１又は請求項２記載の情報処理装置。
【請求項４】
前記監視部は、冗長化されて稼動する冗長状態の場合には、前記タイムアウト処理として、前記要求情報を削除する処理をさらに実行する請求項３記載の情報処理装置。
【請求項５】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示し、
前記複数の記録装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答し、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記応答を所定時間監視し、かつ前記所定時間内に応答がない場合に、前記応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記応答を監視し、
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンドを含み、
前記応答を監視する際に、前記応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する
処理をコンピュータに実行させる情報処理方法。
【請求項６】
前記冗長化情報は、前記記憶装置について冗長化される他の記憶装置との関係を示すディスク情報を含み、
前記要求情報に対する応答を監視するときは、前記ディスク情報に基づいて、前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別する
請求項５記載の情報処理方法。
【請求項７】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働する冗長状態を示す管理情報を含み、
前記要求情報に対する応答を監視するときは、前記管理情報に基づいて、前記記憶装置と他の記憶装置との冗長状態に対応して前記要求情報に対する応答を監視する
請求項５又は請求項６記載の情報処理方法。
【請求項８】
冗長化されて稼動する冗長状態の場合には、前記タイムアウト処理として、前記要求情報を削除する処理をさらに実行する請求項７記載の情報処理方法。
【請求項９】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示し、
前記複数の記録装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答し、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記応答を所定時間監視し、かつ前記所定時間内に応答がない場合に、前記応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記応答を監視し、
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンドを含み、
前記応答を監視する際に、前記応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する
処理をコンピュータに実行させる情報処理プログラム。
【請求項１０】
コンピュータに、請求項５〜請求項８の何れか１項記載の情報処理方法に係る処理を実行させるための情報処理プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
開示の技術は、指示部より、複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示する。複数の記憶装置は、冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む。授受部は、複数の記録装置の各々に対してデータの入出力を行うと共に、要求情報を受け取った後に応答を行う。監視部は、前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記授受部からの応答を所定時間監視し、かつ前記授受部より前記所定時間内に応答がない場合に、前記指示部に対して前記授受部より応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記授受部よりの応答を監視する。また、前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンドを含み、前記監視部は、前記授受部より応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する。
【手続補正書】
【提出日】平成28年5月19日(2016.5.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示する指示部と、
前記複数の記憶装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答を行う授受部と、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記授受部からの応答を所定時間監視し、かつ前記授受部より前記所定時間内に応答がない場合に、前記指示部に対して前記授受部より応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記授受部よりの応答を監視する監視部と、を備え、
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンドを含み、
前記監視部は、前記授受部より応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する
情報処理装置。
【請求項２】
前記冗長化情報は、前記記憶装置について冗長化される他の記憶装置との関係を示すディスク情報を含み、
前記監視部は、前記ディスク情報に基づいて、前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別する請求項１記載の情報処理装置。
【請求項３】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働する冗長状態を示す管理情報を含み、
前記監視部は、前記管理情報に基づいて、前記記憶装置と他の記憶装置との冗長状態に対応して前記要求情報に対する応答を監視する
請求項１又は請求項２記載の情報処理装置。
【請求項４】
前記監視部は、冗長化されて稼動する冗長状態の場合には、前記タイムアウト処理として、前記要求情報を削除する処理をさらに実行する請求項３記載の情報処理装置。
【請求項５】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示し、
前記複数の記憶装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答し、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記応答を所定時間監視し、かつ前記所定時間内に応答がない場合に、前記応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記応答を監視し、
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンドを含み、
前記応答を監視する際に、前記応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する
処理をコンピュータに実行させる情報処理方法。
【請求項６】
前記冗長化情報は、前記記憶装置について冗長化される他の記憶装置との関係を示すディスク情報を含み、
前記要求情報に対する応答を監視するときは、前記ディスク情報に基づいて、前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別する
請求項５記載の情報処理方法。
【請求項７】
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働する冗長状態を示す管理情報を含み、
前記要求情報に対する応答を監視するときは、前記管理情報に基づいて、前記記憶装置と他の記憶装置との冗長状態に対応して前記要求情報に対する応答を監視する
請求項５又は請求項６記載の情報処理方法。
【請求項８】
冗長化されて稼動する冗長状態の場合には、前記タイムアウト処理として、前記要求情報を削除する処理をさらに実行する請求項７記載の情報処理方法。
【請求項９】
冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示し、
前記複数の記憶装置の各々に対してデータの入出力を行うと共に、前記要求情報を受け取った後に応答し、
前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、前記冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記応答を所定時間監視し、かつ前記所定時間内に応答がない場合に、前記応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記応答を監視し、
前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンドを含み、
前記応答を監視する際に、前記応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する
処理をコンピュータに実行させる情報処理プログラム。
【請求項１０】
コンピュータに、請求項５〜請求項８の何れか１項記載の情報処理方法に係る処理を実行させるための情報処理プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
開示の技術は、指示部より、複数の記憶装置のうちの特定の記憶装置に向けて、データの入出力処理を要求する要求情報を出力して前記データの入出力を指示する。複数の記憶装置は、冗長化部により他の記憶装置と同一のデータを記憶するように冗長化されて切り替え可能な記憶装置を含む。授受部は、複数の記憶装置の各々に対してデータの入出力を行うと共に、要求情報を受け取った後に応答を行う。監視部は、前記冗長化されて切り替え可能な記憶装置に関係する冗長化情報が予め記憶されており、冗長化情報に基づいて前記特定の記憶装置が他の記憶装置と冗長化されているか否かを判別し、冗長化されている場合には、前記特定の記憶装置に対する前記授受部からの応答を所定時間監視し、かつ前記授受部より前記所定時間内に応答がない場合に、前記指示部に対して前記授受部より応答がないことを示す情報を出力するタイムアウト処理を実行し、冗長化されていない場合には、前記所定時間にかかわらず前記授受部よりの応答を監視する。また、前記冗長化情報は、前記記憶装置と他の記憶装置とが冗長化されて稼働していることを示す管理情報を出力させる命令を示すコマンドを含み、前記監視部は、前記授受部より応答がなく前記所定時間を経過したときに、前記冗長化部に対して前記コマンドを出力し、該出力に対して返信された管理情報に基づいて、前記タイムアウト処理を実行するか否かを判定する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
監視部２０は、Ｉ／Ｏ要求が発行されると、対象の記憶装置２４について冗長状態の確認処理を管理部１２に依頼する。管理部１２は、監視部２０より依頼を受け取ると、記憶部１４に記憶されたテーブル１６を参照し、依頼対象の記憶装置２４の冗長化情報に基づいて冗長状態を取得し、監視部２０へ返す。記憶装置２４と記憶装置２６は冗長化されているので、記憶装置２４への要求に対する応答に対してタイムアウトしても、使用する記憶装置を記憶装置２４より記憶装置２６に切り替えて業務処理を継続できる。
【国際調査報告】
2014057585.tif 000018
2014057585.tif 000019
2014057585.tif 000020