(57)【要約】【課題】多重化した各通信パスの性能差によるレスポンスの劣化を軽減する情報処理装置、通信経路決定プログラム及び通信経路決定方法を提供する。【解決手段】演算処理部１１は、通信パス３１及び３２のうち通信設定記憶部１５が記憶する通信設定で指定された通信経路を用いて通信を行う。レスポンスタイム計測部１４は、各通信パス３１及び３２の回線速度情報を取得する。通信経路選択部１３は、レスポンスタイム計測部１４により取得された回線速度情報を基に、通信パス３１又は３２、もしくは、通信パス３１及び３２のいずれかを通信に使用する通信経路として選択し、選択した通信経路を指定する通信設定を通信設定記憶部１５に記憶させる。【選択図】図１
2015164013.tif 000002
【特許請求の範囲】
【請求項１】
複数の通信経路のうち通信設定記憶部が記憶する通信設定で指定された通信経路を用いて通信を行う演算処理部と、
各前記通信経路の回線速度情報を取得する情報取得部と、
前記情報取得部により取得された前記回線速度情報を基に、制限した前記通信経路又は全ての前記通信経路のいずれかを通信に使用する通信経路として選択し、選択した通信経路を指定する前記通信設定を前記通信設定記憶部に記憶させる通信経路選択部と
を備えることを特徴とする情報処理装置。
【請求項２】
通信経路選択部は、全ての前記通信経路を通信に使用する状態で、最も性能の良い前記回線速度情報を有する通信経路と比べて前記回線速度情報に基づく性能差が閾値以上の通信経路がある場合、前記最も性能の良い通信経路と比べて前記性能差が閾値未満の通信経路に制限する通信設定を前記通信設定記憶部に記憶させ、通信経路の制限を行っている状態で、使用する通信経路の性能が所定値以上の場合、全ての通信経路を用いる通信設定を前記通信設定記憶部に記憶させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記演算処理部は、アプリケーションを実行し、
前記情報取得部は、前記演算処理部による前記アプリケーションの実行によって発生する通信のレスポンスタイムを計測する
ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記演算処理部は、複数のアプリケーションを実行し、
前記通信経路選択部は、前記アプリケーション毎に各前記通信経路のレスポンスタイムを計測し、前記アプリケーション毎に前記演算処理部が用いる通信経路を選択する
ことを特徴とする請求項１〜３のいずれか一つに記載の情報処理装置。
【請求項５】
前記情報処理装置への電源投入時に前記演算処理部から各前記通信経路経由で疑似データを送信させる疑似データ送信制御部をさらに備え、
前記通信経路選択部は、前記電源投入時に、前記疑似データを用いた場合の各前記通信経路の前記回線速度情報を基に前記演算処理部の通信に用いる通信経路を選択する
ことを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
前記通信経路は、第１通信経路と第２通信経路を有し、
前記通信経路選択部は、前記第１通信経路及び前記第２通信経路を用いて通信を行っている場合、前記第１通信経路と前記第２通信経路との性能差を算出し、前記性能差が閾値以上である場合、性能が良い方の通信経路に制限する通信設定を前記通信設定記憶部に記憶させ、前記第１通信経路又は前記第２通信経路のいずれか一方を通信に使用する状態で、前記一方の通信経路の回線速度情報が所定値以上の場合、双方の通信経路を用いる通信設定を前記通信設定記憶部に記憶させる
ことを特徴とする請求項１〜５のいずれか一つに記載の情報処理装置。
【請求項７】
各前記通信経路のそれぞれ対応し、相互に接続された制御部と、
前記制御部のそれぞれが、他の制御部を介さずに接続する担当記憶部とをさらに備え、
前記演算処理部は、特定の制御部の担当の記憶部へのデータ処理のための通信を行う場合、前記特定の制御部に対応する通信経路を介して前記特定の制御部通信を行うか、又は、前記特定の制御部以外の制御部に接続する通信経路を選択し、選択した通信経路に接続する制御部を経由して前記特定の制御部と通信を行うかを選択する
ことを特徴とする請求項１〜６のいずれか一つに記載の情報処理装置。
【請求項８】
複数の通信経路の回線速度情報を取得させ、
取得された前記回線速度情報を基に、制限した前記通信経路又は全ての通信経路のいずれかを通信に使用する通信経路として選択し、選択した通信経路を指定する前記通信設定を前記通信設定記憶部に記憶させ、
通信設定記憶部が記憶する通信設定で指定された通信経路を用いて通信を行わせる
処理をコンピュータに実行させることを特徴とする通信経路決定プログラム。
【請求項９】
複数の通信経路の回線速度情報を取得し、
取得された前記回線速度情報を基に、制限した前記通信経路又は全ての前記通信経路のいずれかを通信に使用する通信経路として選択し、選択した通信経路を指定する前記通信設定を前記通信設定記憶部に記憶し、
通信設定記憶部が記憶する通信設定で指定された通信経路を用いて通信を行う
ことを特徴とする通信経路決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、通信経路決定プログラム及び通信経路決定方法に関する。
【背景技術】
【０００２】
情報処理装置は、演算処理を行うホスト及びデータを格納するストレージを備えるものが多い。ホストは、ストレージとの間でデータの授受を行う。このような情報処理装置では、ホストとストレージとの間の通信パスを１つしか設けていない場合、通信パス上で何らかの障害が発生すると、データ授受といったストレージがホストへ提供するサービスを継続できなくなるおそれがある。サービスの中断が発生する通信パスの障害としては、例えば、ホストとストレージ装置間のケーブルの異常や故障、ホスト側のインタフェースであるハードウェアの異常や故障、及びストレージ側のインタフェースであるハードウェアの異常や故障などが考えられる。
【０００３】
そこで、従来、ホストとストレージとの間の通信パスを多重化（マルチパス化）することで、耐障害性を向上させている。このように、ホストとストレージとの間の経路を多重化することで、１つの通信パスに障害が発生しても、他のパスを用いることで、ストレージがホストへ提供するサービスが中断することを回避できる。
【０００４】
このような通信パスを多重化した構成の情報処理装置では、通信パス毎のホストから見たInput/Output（Ｉ／Ｏ）レスポンス性能が安定しないおそれがある。
【０００５】
このような、通信パスの二重化の技術として、データ転送において、データサイズが設定値を超えるか否かで通過する経路を決定する従来技術がある。また、各通信パスの占有率に応じてデータを分割して転送する従来技術がある。さらに、コントローラを二重化し、コントローラ毎に担当する論理ボリュームを決定する従来技術がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１１−１００４１４号公報
【特許文献２】特開２０１２−１５５４７９号公報
【特許文献３】特開平１１−３１２０５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ホストが複数の通信パスを用いてストレージが有する物理ディスク又は論理ディスク（以下、単に「ディスク」という。）へのアクセスを行う場合、各通信パスにおけるレスポンスタイムが異なることが考えられる。
【０００８】
例えば、ホストからディスクへのアクセス形態として、ストレートアクセスとクロスアクセスと呼ばれる２種類の接続形態を用いて通信パスを二重化する技術がある。ストレートアクセスとは、あるディスクに対して、そのディスクへのデータの読み書きの制御を担当する担当コントローラに、他のコントローラを介さずにホストがアクセスしてデータの送受信を行う通信である。これに対して、クロスアクセスとは、ホストが他のコントローラを介して担当コントローラにアクセスしてデータの送受信を行う通信である。すなわち、クロスアクセスの場合には、ホストとディスクとの通信の間に、ディスクのコントローラ間の通信が介入する。
【０００９】
クロスアクセスのレスポンスタイムは、ストレートアクセスのレスポンスタイムに比べて悪い値となる。ただし、ホストは、ディスクへのアクセスがストレートアクセスなのかクロスアクセスなのかが分からない場合がある。その場合、ホストは、使用する通信パスによってレスポンスタイムが異なるため、ホストがストレージのＩ／Ｏ性能が不安定と判定することが考えられる。また、レスポンスタイムが通信パスによって異なる状態が発生した場合、アプリケーションによっては、障害が発生するおそれがある。
【００１０】
このような、通信パス間のレスポンスタイムの差の発生を回避するため、通信パスをストレートアクセス又はクロスアクセスのいずれかにまとめることが考えられる。その場合、通信パスの障害には対応できるが、コントローラで発生した障害には対応することができず、耐障害性が低下してしまう。
【００１１】
また、データサイズの設定値を用いて通過する経路を決定する従来技術又は通信パスの占有率に応じて経路を決定する従来技術では、レスポンスタイムを考慮しておらず、各通信パスの性能差によるレスポンスの劣化を軽減することは困難である。さらに、コントローラ毎に担当する論理ボリュームを決定する従来技術では、基本的に二重化されておらず、また、二重化した場合にもレスポンスタイムを考慮していないため、耐障害性を有しつつ各通信パスの性能差によるレスポンスの劣化を軽減することは困難である。
【００１２】
開示の技術は、上記に鑑みてなされたものであって、多重化した各通信パスの性能差によるレスポンスの劣化を軽減する情報処理装置、通信経路決定プログラム及び通信経路決定方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本願の開示する情報処理装置、通信経路決定プログラム及び通信経路決定方法は、一つの態様において、演算処理部は、複数の通信経路のうち通信設定記憶部が記憶する通信設定で指定された通信経路を用いて通信を行う。情報処理部は、各前記通信経路の回線速度情報を取得する。通信経路選択部は、前記情報取得部により取得された前記回線速度情報を基に、制限した前記通信経路又は全ての前記通信経路のいずれかを通信に使用する通信経路として選択し、選択した通信経路を指定する前記通信設定を前記通信設定記憶部に記憶させる。
【発明の効果】
【００１４】
本願の開示する情報処理装置、通信経路決定プログラム及び通信経路決定方法の一つの態様によれば、多重化した各通信パスの性能差によるレスポンスの劣化を軽減させることができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施例１に係る情報処理装置のブロック図である。
【図２】図２は、Ｉ／Ｏ要求を行うソフトウェアを用いて情報処理装置を表した図である。
【図３】図３は、実施例１に係る情報処理装置によるホストとストレージとの間の通信のフローチャートである。
【図４】図４は、実施例１に係る情報処理装置における通信経路選択の処理の詳細のフローチャートである。
【図５】図５は、実施例２に係る情報処理装置のブロック図である。
【図６】図６は、実施例３に係る情報処理装置のブロック図である。
【図７】図７は、実施例３に係る情報処理装置によるホストとストレージとの間の通信のフローチャートである。
【図８】図８は、ホストのハードウェア構成の一例の図である。
【図９】図９は、コントローラのハードウェア構成の一例の図である。
【発明を実施するための形態】
【００１６】
以下に、本願の開示する情報処理装置、通信経路決定プログラム及び通信経路決定方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、通信経路決定プログラム及び通信経路決定方法が限定されるものではない。
【実施例１】
【００１７】
図１は、実施例１に係る情報処理装置のブロック図である。本実施例に係る情報処理装置は、ホスト１及びストレージ２を有する。
【００１８】
ホスト１は、アプリケーションを実行して演算処理を行う演算処理装置である。また、ストレージ２は、複数のハードディスクを備えた記憶装置である。ホスト１とストレージ２とは通信パス３１及び３２で接続されている。通信パス３１及び３２は、例えば、ファイバチャネルである。ホスト１は、ストレージ２からのデータの読み出し及びストレージ２へのデータの書き込みを通信パス３１及び３２を介して行う。
【００１９】
ホスト１は、演算処理部１１、通信制御部１２、通信経路選択部１３及びレスポンスタイム計測部１４を有する。
【００２０】
演算処理部１１は、ＯＳを実行する。さらに、演算処理部１１は、アプリケーションを実行する。演算処理部１１は、アプリケーションを実行することで発生するデータの読み出し及び書き込みの処理要求を通信制御部１２へ出力する。そして、データの読み出し処理要求の場合、演算処理部１１は、要求に応じたデータの入力を通信制御部１２から受ける。以下では、データの読み出し及び書き込みの処理要求をまとめて「Ｉ／Ｏ要求」という。
【００２１】
通信経路選択部１３は、通信パス３１及び３２の双方の通信パスを用いて通信を行う設定、又は、いずれか一方の通信パスを用いて通信を行う設定のいずれを用いるかを通信設定記憶部１５に記憶させる。以下に、通信経路選択部１３による通信設定決定の詳細を説明する。以下では、通信パス３１及び３２の双方を通信経路として用いる通信を、「全通信パスを用いた通信」と呼ぶ。また、通信パス３１及び３２のいずれか一方の通信パスを用いる通信を「制限された通信」と呼ぶ。
【００２２】
通信経路選択部１３は、ホスト１に電源が投入されると、通信パス３１及び３２の双方を通信経路として用いる全通信パスを用いた通信の設定を使用する通信設定として通信設定記憶部１５に記憶させる。
【００２３】
そして、通信経路選択部１３は、使用する通信パスのレスポンスタイムの入力をレスポンスタイム計測部１４から受ける。具体的には、全通信パスを用いた通信を行っている場合、通信経路選択部１３は、通信パス３１を用いた通信のレスポンスタイム及び通信パス３２を用いた通信のレスポンスタイムの入力をレスポンスタイム計測部１４から受ける。また、制限された通信を行っている場合、通信経路選択部１３は、通信パス３１及び３２の内の通信に使用する通信パスのレスポンスタイムの入力をレスポンスタイム計測部１４から受ける。
【００２４】
そして、通信経路選択部１３は、受信したレスポンスタイムを一定期間保持する。一定期間とは、例えば、１分間とすることができる。一定期間経過後、通信経路選択部１３は、通信パス毎にレスポンスタイムの平均を求め、求めた平均を通信パス毎のレスポンスタイムとする。
【００２５】
通信経路選択部１３は、通信設定記憶部１５を参照して、全通信パスを用いた通信又は制限された通信のいずれかを判定する。ここで、通信設定記憶部１５は、以下に説明するように、現在の通信設定が全通信パスを用いた通信又は制限された通信のいずれであるかが記憶している。
【００２６】
全通信パスを用いた通信を行っている場合、通信経路制御部１３は、通信パス３１及び３２のレスポンスタイムの差を求める。そして、通信経路制御部１３は、求めたレスポンスタイムの差が閾値以上か否かを判定する。レスポンスタイムの差が閾値未満の場合、通信経路選択部１３は、一定時間待機した後レスポンスタイムの差が閾値以上か否かの判定を繰り返す。
【００２７】
これに対して、レスポンスタイムの差が閾値以上の場合、通信経路制御部１３は、通信パス３１及び３２の内レスポンスタイムが短い方の通信パスに通信経路を制限することを決定する。その後、通信経路制御部１３は、レスポンスタイムが短い方の通信パスを通信経路として使用する制限された通信の設定を通信に使用する通信設定として通信設定記憶部１５に記憶させる。
【００２８】
一方、制限された通信を行っている場合、通信経路制御部１３は、通信パス３１及び３２のうち通信経路として使用する通信パスを用いた通信のレスポンスタイムを求める。そして、通信経路制御部１３は、求めたレスポンスタイムが所定時間以上か否かを判定する。ここで、レスポンスタイムが所定時間未満の場合、通信経路選択部１３は、一定時間待機した後レスポンスタイムが所定時間以上か否かの判定を繰り返す。
【００２９】
これに対して、レスポンスタイムが所定時間以上の場合、通信経路制御部１３は、全通信パスを用いた通信を行うことを決定する。その後、通信経路制御部１３は、全通信パスを用いた通信の設定を通信に使用する通信設定として通信設定記憶部１５に記憶させる。
【００３０】
通信制御部１２は、Ｉ／Ｏ要求の入力を演算処理部１１から受ける。次に、通信制御部１２は、通信設定記憶部１５を参照し、使用する通信設定を取得する。そして、通信制御部１２は、取得した通信設定に基づいて、Ｉ／Ｏ要求を出力する通信パスを決定する。その後、通信制御部１２は、決定した通信パスに接続するコントローラ２１又は２２にＩ／Ｏ要求を出力する。
【００３１】
具体的には、通信制御部１２は、全通信パスを用いた通信の設定の場合、ラウンドロビン方式で通信パス３１又は３２のいずれかをＩ／Ｏ要求を出力する通信パスとして選択し、Ｉ／Ｏ要求を出力する。また、制限された通信の設定の場合、通信制御部１２は、通信パス３１又は３２の内の設定で指定されている通信パスにＩ／Ｏ要求を出力する。
【００３２】
出力したＩ／Ｏ要求がデータの読み出し処理要求の場合、通信制御部１２は、Ｉ／Ｏ要求を出力した通信パスに接続するコントローラ２１又は２２からデータの入力を受ける。そして、通信制御部１２は、取得したデータを演算処理部１１へ出力する。また、Ｉ／Ｏ要求がデータの書き込み処理要求の場合、通信制御部１２は、Ｉ／Ｏ要求を出力した通信パスに接続するコントローラ２１又は２２からデータの書き込み完了の通知の入力を受ける。
【００３３】
レスポンスタイム計測部１４は、通信制御部１２がＩ／Ｏ要求をコントローラ２１又は２２へ出力してから応答を受信するまでの時間を計測する。そして、レスポンスタイム計測部１４は、通信パス３１又は３２の内の通信制御部１２がＩ／Ｏ要求を出力した通信パスを用いた通信のレスポンスタイムとして計測結果を通信経路選択部１３へ出力する。
【００３４】
ストレージ２は、コントローラ２１及び２２、ディスク２３及び２４、コントローラ管理部２５、並びに、バス２６を有する。このコントローラ２１及び２２が、「制御部」の一例にあたる。
【００３５】
ディスク２３及び２４は、物理ディスク又は論理ディスクのいずれでもよい。そして、ディスク２３及び２４は、バス２６でそれぞれコントローラ２１及び２２と接続されている。ただし、ディスク２３へのデータの読み書きの制御はコントローラ２１が行っており、ディスク２４へのデータの読み書きの制御はコントローラ２２が行っている。また、本実施例では、ディスク２３及び２４の２つのディスクを用いて説明するが、ディスクの数に特に制限はない。
【００３６】
コントローラ２１は、ホスト間送受信部２１１、リクエスト処理部２１２、コントローラ間送受信部２１３及びディスクアクセス制御部２１４を有する。また、コントローラ２２は、ホスト間送受信部２２１、リクエスト処理部２２２、コントローラ間送受信部２２３及びディスクアクセス制御部２２４を有する。
【００３７】
コントローラ２１及び２２は、いずれも同じ機能を有する。具体的には、ホスト間送受信部２２１は、ホスト間送受信部２１１と同じ機能を有する。また、リクエスト処理部２２２は、リクエスト処理部２１２と同じ機能を有する。また、コントローラ間送受信部２２３は、コントローラ間送受信部２１３と同じ機能を有する。また、ディスクアクセス制御部２２４は、ディスクアクセス制御部２１４と同じ機能を有する。
【００３８】
以下では、ディスク２４に対するＩ／Ｏ要求の処理を例に説明する。この場合、コントローラ２１は、通信制御部１２とコントローラ２２との間のディスク２４に対する処理を仲介する。また、コントローラ２２は、通信制御部１２から直接又はコントローラ２１を介してディスク２４に対するＩ／Ｏ要求を受けて、ディスク２４に対する処理を行う。ここで、通信制御部１２からＩ／Ｏ要求を直接受けるとは、他のコントローラを間に介さずに通信制御部１２からＩ／Ｏ要求を受信することを指す。すなわち、コントローラ２１を介して送られるディスク２４に対するＩ／Ｏ要求によるディスクアクセスは、クロスアクセスといえ、通信制御部１２から直接コントローラ２２に送られるディスク２４に対するＩ／Ｏ要求によるディスクアクセスは、ストレートアクセスといえる。この場合、コントローラ２１を介した通信の方が、コントローラ２１を介さない通信に比べて、レスポンスタイムが遅くなる。
【００３９】
ホスト間送受信部２１１は、通信パス３１により通信制御部１２と接続する。ホスト間送受信部２１１は、全通信パスを用いた通信の場合、ラウンドロビン方式で通信制御部１２からディスク２４に対するＩ／Ｏ要求の入力を受ける。そして、ホスト間送受信部２１１は、ディスク２４に対するＩ／Ｏ要求をリクエスト処理部２１２へ出力する。
【００４０】
また、ホスト間送受信部２１１は、自己が出力したディスク２４に対するＩ／Ｏ要求への応答の入力をリクエスト処理部２１２から受ける。そして、ホスト間送受信部２１１は、ディスク２４に対するＩ／Ｏ要求への応答を通信制御部１２へ出力する。
【００４１】
リクエスト処理部２１２は、ディスク２４に対するＩ／Ｏ要求の入力をホスト間送受信部２１１から受ける。そして、リクエスト処理部２１２は、ディスク２４に対するＩ／Ｏ要求の入力をコントローラ間送受信部２１３へ出力する。
【００４２】
また、リクエスト処理部２１２は、自己が出力したディスク２４に対するＩ／Ｏ要求への応答の入力をコントローラ間送受信部２１３から受ける。そして、リクエスト処理部２１２は、ディスク２４に対するＩ／Ｏ要求への応答をホスト間送受信部２１１へ出力する。
【００４３】
コントローラ間送受信部２１３は、ディスク２４に対するＩ／Ｏ要求の入力をリクエスト処理部２１２から受ける。そして、コントローラ間送受信部２１３は、ディスク２４に対するＩ／Ｏ要求の入力をコントローラ２２のコントローラ間送受信部２２３へ出力する。
【００４４】
また、コントローラ間送受信部２１３は、自己が出力したディスク２４に対するＩ／Ｏ要求への応答の入力をコントローラ間送受信部２２３から受ける。そして、コントローラ間送受信部２１３は、ディスク２４に対するＩ／Ｏ要求への応答をリクエスト処理部２１２へ出力する。
【００４５】
ホスト間送受信部２２１は、通信パス３２により通信制御部１２と接続する。ホスト間送受信部２２１は、全通信パスを用いた通信の場合、ラウンドロビン方式で通信制御部１２からディスク２４に対するＩ／Ｏ要求の入力を受ける。また、ディスク２４に対する通信は、コントローラ２２が直接通信制御部１２からＩ／Ｏ要求を受ける場合の方が、コントローラ２１を介す場合に比べてレスポンスタイムが短い。そこで、制限された通信の場合、ホスト間送受信部２２１は、ディスク２４に対するＩ／Ｏ要求の入力を通信制御部１２から受ける。そして、ホスト間送受信部２２１は、ディスク２４に対するＩ／Ｏ要求をリクエスト処理部２２２へ出力する。
【００４６】
また、ホスト間送受信部２２１は、自己が出力したディスク２４に対するＩ／Ｏ要求への応答の入力をリクエスト処理部２２２から受ける。そして、ホスト間送受信部２２１は、ディスク２４に対するＩ／Ｏ要求への応答を通信制御部１２へ出力する。
【００４７】
リクエスト処理部２２２は、ストレートアクセスの場合、ディスク２４に対するＩ／Ｏ要求の入力をホスト間送受信部２２１から受ける。また、リクエスト処理部２２２は、クロスアクセスの場合、ディスク２４に対するＩ／Ｏ要求の入力をコントローラ間送受信部２２３から受ける。そして、リクエスト処理部２２２は、ディスク２４に対するＩ／Ｏ要求の入力をディスクアクセス制御部２２４へ出力する。
【００４８】
また、リクエスト処理部２２２は、ディスク２４に対するＩ／Ｏ要求への応答の入力をコントローラ間送受信部２２３から受ける。そして、リクエスト処理部２２２は、ディスク２４に対するＩ／Ｏ要求への応答をＩ／Ｏ要求の送信元へ出力する。すなわち、ストレートアクセスの場合、リクエスト処理部２２２は、ディスク２４に対するＩ／Ｏ要求への応答をホスト間送受信部２２１へ出力する。また、クロスアクセスの場合、リクエスト処理部２２２は、ディスク２４に対するＩ／Ｏ要求への応答をコントローラ間送受信部２２３へ出力する。
【００４９】
ディスクアクセス制御部２２４は、ディスク２４に対するＩ／Ｏ要求への応答の入力をリクエスト処理部２２２から受ける。そして、ディスクアクセス制御部２２４は、Ｉ／Ｏ要求に従い、データの読み出しや書き込みなどのディスク２４に対する処理を実行する。そして、ディスクアクセス制御部２２４は、ディスク２４に対するＩ／Ｏ要求への応答をリクエスト処理部２２２へ出力する。
【００５０】
以上は、ディスク２４に対するＩ／Ｏ処理を例に各部の機能を説明したが、ディスク２３に対するＩ／Ｏ処理の場合には、コントローラ２１とコントローラ２２との役割が反対になる。
【００５１】
さらに、通信制御部１２からのコントローラ２２を介した通信において障害が発生した場合、コントローラ２１は、制御切り替えの指示をコントローラ管理部２５から受信する。そして、コントローラ２１は、コントローラ２２が実行していた処理を肩代わりする。具体的には、ディスクアクセス制御部２１４が、ディスク２４に対する処理の制御を行うことになる。そして、ホスト間送受信部２１１は、コントローラ２２へ送られていたＩ／Ｏ要求を受信し、リクエスト処理部２１２を介してディスクアクセス制御部２１４へ送信する。ここでは、コントローラ２２からコントローラ２１への切り替えを例に説明したが、コントローラ２１からコントローラ２２への切り替えも同様である。
【００５２】
コントローラ管理部２５は、コントローラ２１及び２２の動作を監視する。そして、コントローラ管理部２５は、コントローラ２１又は２２のいずれか一方において、通信制御部１２との間の通信で障害が発生した場合、他方に制御切り替えの指示を送信する。
【００５３】
図２は、Ｉ／Ｏ要求を行うソフトウェアを用いて情報処理装置を表した図である。以下では、各ソフトウェアを用いて通信経路選択の処理の概要を再度説明する。
【００５４】
論理的デバイスドライバ１０２、並びに、デバイスドライバ１０３及び１０４は、演算処理部１１が実行するＯＳ上で動作する。論理的デバイスドライバ１０２、並びに、デバイスドライバ１０３及び１０４は、通信制御部１２の機能を有する。デバイスドライバ１０３及び１０４は、それぞれ１つのコントローラ２１又は２２に対応するドライバである。そして、論理的ドライバ１０２は、各デバイスドライバ１０３及び１０４の動作を統合するためのドライバである。
【００５５】
アプリケーション１０１は、演算処理部１１により実行される。アプリケーション１０１は、データの読み出しや書き込みを行う場合に、Ｉ／Ｏ要求を論理的デバイスドライバ１０２へ出力する。
【００５６】
レスポンスタイム計測部１４は、デバイスドライバ１０３からＩ／Ｏ要求が出力されてから応答がデバイスドライバ１０３へ帰ってくるまでの時間を通信パス３１を用いた通信のレスポンスタイムとして計測する。また、レスポンスタイム計測部１４は、デバイスドライバ１０４からＩ／Ｏ要求が出力されてから応答がデバイスドライバ１０４へ帰ってくるまでの時間を通信パス３２を用いた通信のレスポンスタイムとして計測する。そして、レスポンスタイム計測部１４は、計測結果を通信経路選択部１３へ出力する。このレスポンスタイム計測部１４が、「計測部」の一例にあたる。
【００５７】
通信制御選択部１３は、レスポンスタイム計測部１４から受信した計測結果から通信パス３１又は３２のいずれか一方もしくは両方のいずれを通信に使用するかの設定を決定する。そして、通信制御選択部１３は、決定した設定を通信設定記憶部１５へ記憶させる。
【００５８】
論理的デバイスドライバ１０２は、通信の設定の入力を通信経路設定部１３から受ける。そして、論理的デバイスドライバ１０２は、アプリケーション１０１から受信したＩ／Ｏ要求を、通信設定記憶部１５に格納されている通信の設定にしたがい通信パス３１又は３２のいずれかへ出力する。ただし、全ての通信パスを用いた通信の場合、論理的デバイスドライバ１０２は、ラウンドロビン方式でデバイスドライバ１０３又は１０４のいずれかにＩ／Ｏ要求を送信する。
【００５９】
デバイスドライバ１０３は、論理的デバイスドライバ１０２から受信したＩ／Ｏ要求をコントローラ２１へ出力する。
【００６０】
デバイスドライバ１０４は、論理的デバイスドライバ１０２から受信したＩ／Ｏ要求をコントローラ２２へ出力する。
【００６１】
次に、図３を参照して、本実施例に係る情報処理装置によるホストとストレージとの間の通信の流れを説明する。図３は、実施例１に係る情報処理装置によるホストとストレージとの間の通信のフローチャートである。
【００６２】
操作者は、ホスト１の電源を投入する。ホスト１に電源が投入されると、演算処理部１１は、ＯＳを起動する（ステップＳ１）。
【００６３】
通信経路選択部１３は、ストレージ２とホスト１とを結ぶ通信パス３１及び３２の双方を通信に使用する通信設定を通信設定記憶部１５に記憶させ、ストレージ２とホスト１とを結ぶ通信パス３１及び３２の双方を通信に使用するように設定する（ステップＳ２）。
【００６４】
その後、通信経路選択部１３は、通信パス３１又は３２のいずれか一方もしくは双方を用いた通信のレスポンスタイムを用いて通信経路選択を実行する（ステップＳ３）。そして、通信経路選択部１３は、選択した通信経路を用いた通信設定を通信設定記憶部１５に記憶させる。通信制御部１２は、通信設定記憶部１５に記憶された通信設定で指定されている通信パスを用いてストレージ２との通信を行う。
【００６５】
次に、図４を参照して、本実施例に係る情報処理装置における通信経路選択の処理の詳細について説明する。図４は、実施例１に係る情報処理装置における通信経路選択の処理の詳細のフローチャートである。図４で表される処理は、図３のステップＳ３で実行される処理の一例にあたる。
【００６６】
レスポンスタイム計測部１４は、各通信パス３１及び３２を用いた通信のそれぞれのレスポンスタイムを計測する。そして、通信経路選択部１３は、レスポンスタイム計測部１４が計測した各通信パス３１及び３２を用いた通信のレスポンスタイムを収集し保持する（ステップＳ１１）。
【００６７】
通信経路選択部１３は、通信パス３１及び３２を用いた通信のレスポンスタイムの平均を求め、それぞれの通信のレスポンスタイムとする。そして、通信経路選択部１３は、通信パス３１及び３２を用いた通信のレスポンスタイムの差が閾値以上か否かを判定する（ステップＳ１２）。レスポンスタイムの差が閾値未満の場合（ステップＳ１２：否定）、通信経路選択部１３は、一定期間待機し（ステップＳ１３）、その後ステップＳ１１へ戻る。
【００６８】
これに対して、レスポンスタイムの差が閾値以上の場合（ステップＳ１２：肯定）、通信経路選択部１３は、レスポンスタイムの短い通信パスのみを通信に用いる設定、すなわち制限された通信の設定に通信設定記憶部１５記憶している通信設定を変更する（ステップＳ１４）。
【００６９】
その後、レスポンスタイム計測部１４は、各通信パス３１及び３２の内の使用している通信パスを用いた通信のレスポンスタイムを計測する。そして、通信経路選択部１３は、レスポンスタイム計測部１４が計測した使用している通信パスを用いた通信のレスポンスタイムを収集し保持する（ステップＳ１５）。
【００７０】
通信経路選択部１３は、使用している通信パスを用いた通信のレスポンスタイムの平均を求め、それぞれの通信のレスポンスタイムとする。そして、通信経路選択部１３は、使用している通信パスを用いた通信のレスポンスタイムが所定時間以上か否かを判定する（ステップＳ１６）。レスポンスタイムが所定時間未満の場合（ステップＳ１６：否定）、通信経路選択部１３は、一定期間待機し（ステップＳ１７）、その後ステップＳ１５へ戻る。
【００７１】
これに対して、レスポンスタイムが所定時間以上の場合（ステップＳ１６：肯定）、通信経路選択部１３は、通信パス３１及び３２の両方を用いた通信、すなわち全通信パスを用いた通信の設定へ通信設定記憶部１５が記憶している通信設定を変更する（ステップＳ１８）。
【００７２】
通信経路選択部１３は、ＯＳがシャットダウンされるなどホスト１が動作を停止するか否かを判定する（ステップＳ１９）。ホスト１の動作が継続する場合（ステップＳ１９：否定）、通信経路選択部１３は、ステップＳ１１へ戻る。これに対して、ホスト１の動作が継続しない場合（ステップＳ１９：肯定）、通信経路選択部１３は、通信経路選択の処理を終了する。ここで、図４では、説明の都合上、ステップＳ１９でホストの停止を判定したが、実際には図４のいずれの段階においても、ホストの停止が発生すれば、通信経路選択部１３は通信経路選択の処理を終了する。
【００７３】
以上に説明したように、本実施例に係る情報処理装置は、２つの通信パスを用いてディスクアクセスする場合に、レスポンスタイムに一定の差があれば、レスポンスタイムが短い方の通信パスのみを用いてディスクアクセスを行う。また、片方の通信パスのみを用いてディスクアクセスする場合、レスポンスタイムが遅ければ、本実施例に係る情報処理装置は、両方の通信パスを用いてディスクアクセスを行う。これにより、例えば、ストレートアクセスとクロスアクセスのような、レスポンスタイムが遅い通信パスとレスポンスタイムが速い通信パスの混在による性能劣化を軽減することができる。
【００７４】
ここで、２つの通信パスにおいてレスポンスの差がある場合、Ｉ／Ｏ要求が多くないと考えられる。そのため、１つの通信パスに通信を制限しても問題は起こらない。また、逆に、１つの通信パスを用いた通信のレスポンスタイムが遅くなった場合、Ｉ／Ｏ要求が多いと考えられる、その場合、２つの通信パスを用いて通信を行っても、レスポンスタイムの差はほとんど発生しないと考えられるので、問題は起こらない。
【００７５】
また、ホストは、レスポンスタイムの平均からストレージのＩ／Ｏ性能が悪いと判定することが考えられるが、本実施例に係る情報処理装置によれば、レスポンスタイムの遅い通信パスによるレスポンスの劣化に基づく、ホストの判定ミスを回避することができる。
【００７６】
さらに、本実施例に係る情報処理装置によれば、ホストとディスクとを結ぶ経路上の故障により、ディスクとそのディスクを担当するコントローラの切り替えでパスの性能が変化した場合にも、上述した効果を発揮することができる。
【００７７】
（変形例）
次に実施例１の変形例について説明する。実施例１では１つのアプリケーションが動作する場合で説明したが、本変形例に係る情報処理装置では、複数のアプリケーションが動作することが実施例１と異なる。本実施例に係る情報処理装置も図１のブロック図で表される。
【００７８】
複数のアプリケーションが実行される場合、各アプリケーションによって、使用するディスクが異なることが考えられる。その場合、アプリケーション毎に通信パスのレスポンスの劣化を判定することが好ましい。
【００７９】
そこで、複数のアプリケーションがある場合、レスポンスタイム計測部１４は、アプリケーション毎に通信パス３１又は３２のいずれか一方もしくは双方のレスポンスタイムを計測し、通信経路選択部１３へ通知する。
【００８０】
通信経路選択部１３は、レスポンスタイム計測部１４による計測結果を用いて、アプリケーション毎に各通信パス３１及び３２のレスポンスタイムを求める。そして、通信経路選択部１３は、アプリケーション毎に制限された通信又は全パスを用いた通信のいずれの設定とするかを決定する。その後、通信経路選択部１３は、決定したアプリケーション毎の設定を通信設定記憶部１５に記憶させる。
【００８１】
通信制御部１２は、通信設定記憶部１５に記憶されているアプリケーション毎の設定にしたがい、アプリケーション毎に制限された通信又は全パスを用いた通信を実行する。
【００８２】
以上に説明したように、本変形例で示したように、情報処理装置において複数のアプリケーションが実行される場合にも、アプリケーション毎にレスポンスの劣化を軽減することができる。
【００８３】
さらに、本変形例では全てのアプリケーションに対してレスポンスの劣化を軽減するように制御したが、レスポンスの劣化を軽減するアプリケーションを絞ってもよい。すなわち、アプリケーションには、高速なレスポンスを維持することが好ましいアプリケーションがある一方、レスポンスのばらつきを許容するアプリケーションもある。そこで、実行するアプリケーションの中で、予め高速なレスポンスを維持することが好ましいアプリケーションを指定しておき、通信経路選択部１３は、指定されたアプリケーションに対してのみ通信経路選択を行うとしてもよい。
【００８４】
これにより、複数のアプリケーションがある場合の通信経路選択の処理の負荷を軽減できるとともに、より適切なアプリケーションの実行を実現することができる。
【実施例２】
【００８５】
図５は実施例２に係る情報処理装置のブロック図である。実施例１ではコントローラおよび通信パスが２つであったが、本実施例に係る情報処理装置は、コントローラおよび通信パスは３つ以上であることが実施例１と異なる。以下の説明では、各部における実施例１と同様の機能については説明を省略する。
【００８６】
コントローラ２１Ａ〜２１Ｃは、図１のコントローラ２１及び２２と同様の機能を有する。コントローラ２１Ａ〜２１Ｃは、それぞれ通信パス３１Ａ〜３１Ｃにより通信制御部１２と接続する。また、コントローラ２１Ａ〜２１Ｃは、それぞれディスク２３Ａ〜２３Ｃの制御を担当する。
【００８７】
レスポンスタイム計測部１４は、通信パス３１Ａ〜３１Ｃのすべてを用いた通信、すなわち全通信パスを用いた通信を行っている状態で、全ての通信パスのレスポンスタイムを求める。
【００８８】
通信経路選択部１３は、レスポンスタイム計測部１４から全ての通信パスのレスポンスタイムを受信する。そして、通信経路選択部１３は、最もレスポンスが速い通信パスと各通信パスとのレスポンスの差が閾値以上の通信パスを特定する。そして、通信経路選択部１３は、特定した通信パスを除いた通信パスのみを用いた制限された通信の設定に通信設定記憶部１５に記憶されている通信設定を変更する。
【００８９】
また、通信経路選択部１３は、制限された通信を行っている状態で、通信パス３１Ａ〜３１Ｃの内の使用する全ての通信パスのレスポンスタイムが所定時間以上になった場合に、全通信パスを用いた通信の設定に通信設定記憶部１５に記憶されている通信設定を変更する。
【００９０】
例えば、ストレートアクセスとクロスアクセスとが混在する場合、ストレートアクセスを行う通信パスのレスポンスタイムは互いにほぼ同じになり、クロスアクセスを行う通信パスのレスポンスタイムは互いにほぼ同じになると考えられる。このように複数の通信パスを有しても、最も早いレスポンスタイムと比較して閾値以上の通信パスを除くことで、ほぼ同じ速さのレスポンスタイムを有する通信パスを抽出することができ、レスポンスタイムの劣化を軽減することができる。
【実施例３】
【００９１】
図６は実施例３に係る情報処理装置のブロック図である。本実施例に係る情報処理装置は、最初に疑似データを用いてレスポンスタイムを予想し通信経路選択を行うことが実施例１と異なる。本実施例に係る情報処理装置は、実施例１に係る情報処理装置のホスト１に、疑似データ送信制御部１６を付加した構成である。以下の説明では、各部における実施例１と同様の機能については説明を省略する。
【００９２】
疑似データ送信制御部１６は、テストに使用する疑似データを予め記憶する。ここで、疑似データのサイズが小さい場合、処理が軽いため、レスポンスタイムに差が出るはずの経路においても、レスポンスタイムの差が検出できないおそれがある。そこで、疑似データは、情報処理装置の構成及び性能に応じて、各通信パス３１と３２とでレスポンスタイムの差が検出される程度のサイズに設定されることが好ましい。
【００９３】
ホストに電源が投入されＯＳが起動すると、疑似データ送信制御部１６は、記憶する疑似データとともに疑似データを用いたＩ／Ｏ要求の送信を演算処理部１１へ指示する。以下では、ディスク２４に対するディスクアクセスのレスポンスタイムの劣化を軽減する場合で説明する。
【００９４】
演算処理部１１は、疑似データ送信制御部１６から受信した疑似データを用いてディスク２４に対するＩ／Ｏ要求を、通信制御部１２を介し、通信パス３１及び３２の双方を用いてストレージ２へ送信する。
【００９５】
レスポンスタイム計測部１４は、疑似データを用いたディスク２４に対するＩ／Ｏ要求の通信パス３１及び３２のそれぞれを用いた通信の各レスポンスタイムを計測する。そして、レスポンスタイム計測部１４は、計測結果を通信経路選択部１３へ出力する。
【００９６】
通信経路選択部１３は、疑似データを用いた場合の、レスポンスタイム計測部１４から受信した通信パス３１を用いた通信のレスポンスタイムと通信パス３２を用いた通信のレスポンスタイムを比較する。そして、通信経路選択部１３は、レスポンスタイムが短い方の通信パスのみを用いる設定を通信設定として通信設定記憶部１５に記憶させる。
【００９７】
通信制御部１２は、通信設定記憶部１５に格納されている通信設定にしたがい、疑似データを用いた場合のレスポンスタイムが短い側の通信パスのみを用いて、アプリケーションからのＩ／Ｏ要求の通信を開始する。
【００９８】
その後、通信制御部１２、通信経路選択部１３及びレスポンスタイム計測部１４は、実施例１と同様に、演算処理部１１が実行するアプリケーションによる実際のＩ／Ｏ要求を用いて通信経路選択を行う。
【００９９】
次に、図７を参照して、実施例３に係る情報処理装置によるホストとストレージとの間の通信の流れを説明する。図７は、実施例３に係る情報処理装置によるホストとストレージとの間の通信のフローチャートである。
【０１００】
操作者は、ホスト１の電源を投入する。ホスト１に電源が投入されると、演算処理部１１は、ＯＳを起動する（ステップＳ１０１）。
【０１０１】
疑似データ送信制御部１６は、演算処理部１１に対して疑似データの送信を指示する。演算処理部１１は、通信制御部１２を介し、各通信パス３１及び３２を用いて疑似データを送信する（ステップＳ１０２）。
【０１０２】
レスポンスタイム計測部１４は、疑似データを用いたＩ／Ｏ要求の通信パス３１及び３２を用いた通信のそれぞれのレスポンスタイムを計測する。通信経路選択部１３は、疑似データを用いた場合の、通信パス３１を用いた通信のレスポンスタイムと通信パス３２を用いた通信のレスポンスタイムとを比較する。そして、通信経路選択部１３は、レスポンスタイムが短い方の通信パスのみを用いる制限された通信の設定を通信設定記憶部１５に記憶させる。通信制御部１２は、通信設定記憶部１５を参照し、疑似データを使用した場合のレスポンスタイムが短い方の通信パスのみを用いて、演算処理部１１が実行するアプリケーションからのＩ／Ｏ要求の通信を開始する（ステップＳ１０３）。
【０１０３】
その後、通信経路選択部１３は、アプリケーションによるＩ／Ｏ要求のレスポンスタイムを用いて、通信経路選択を実行する（ステップＳ１０４）。このステップＳ１０４で実施される処理の一例は、図４で表される処理である。通信制御部１２は、通信経路選択部１３によって選択された通信パスを用いてストレージ２との通信を行う。
【０１０４】
以上に説明したように、本実施例に係る情報処理装置は、疑似データを用いて最初に各通信パスを用いた通信のレスポンスタイムを測定し、レスポンスタイムが短い側の通信パスを用いて通信を開始する。これにより、最初からレスポンスが短い通信パスのみを用いて通信を行うことができ、レスポンスの劣化を軽減することができる。
【０１０５】
（ハードウェア構成）
次に、図８及び９を参照して、各実施例に係る情報処理装置のハードウェア構成について説明する。図８は、ホストのハードウェア構成の一例の図である。また、図９は、コントローラのハードウェア構成の一例の図である。
【０１０６】
図８に示すように、ホスト１は、Central  Processing  Unit（ＣＰＵ）９１１、メモリ９１２、ドライブインタフェース９１３、グラフィックインタフェース９１４、入力インタフェース９１５及びネットワークインタフェース９１６を有する。
【０１０７】
メモリ９１２、ドライブインタフェース９１３、グラフィックインタフェース９１４、入力インタフェース９１５及びネットワークインタフェース９１６はそれぞれバスを介してＣＰＵ９１１と接続されている。
【０１０８】
ドライブインタフェース９１３は、例えば、Host  Bus  Adapter（ＨＢＡ）といったストレージ２との間のインタフェースである。グラフィックインタフェース９１４は、モニタなどが接続される。入力インタフェース９１５は、マウスやキーボードが接続される。ネットワークインタフェース９１６は、ネットワークに接続するためのインタフェースである。
【０１０９】
ストレージ２が有するディスク２３又は２４には、Operating  System（ＯＳ）や図１，５又は６に例示した演算処理部１１、通信制御部１２、通信経路選択部１３、レスポンスタイム計測部１４及び疑似データ送信制御部１６の各機能を実現するプログラムを含む各種プログラムが格納されている。
【０１１０】
メモリ２は、図１，５又は６に例示した通信設定記憶部１５の機能を実現する。
【０１１１】
ＣＰＵ９１１は、ドライブインタフェース９１３を介してストレージ２から各種プログラムを読み込み、メモリ９１２上に展開して実行する。これにより、ＣＰＵ９１１及びメモリ９１２は、図１，５又は６に例示した演算処理部１１、通信制御部１２、通信経路選択部１３、レスポンスタイム計測部１４及び疑似データ送信制御部１６の各機能を実現する。
【０１１２】
図９に示すように、コントローラ２１は、ＣＰＵ９２１、メモリ９２２、ホストインタフェース９２３、ディスクインタフェース９２４及びコントローラインタフェース９２５を有する。
【０１１３】
メモリ９２２、ホストインタフェース９２３、ディスクインタフェース９２４及びコントローラインタフェース９２５は、それぞれＣＰＵ９２１とバスで接続されている。
【０１１４】
ホストインタフェース９２３は、ホスト１との間のインタフェースである。ホストインタフェース９２３は、図８のドライブインタフェース９１３と接続する。ホストインタフェース９２３は、ドライブインタフェース９１３からＩ／Ｏ要求を受信する。また、ホストインタフェース９２３は、Ｉ／Ｏ要求に対する応答をドライブインタフェース９１３へ送信する。
【０１１５】
ディスクインタフェース９２４は、ディスク２３及び２４と接続するためのインタフェースである。ディスクインタフェース９２４は、ディスク２３及び２４にＩ／Ｏ要求を送信する。
【０１１６】
コントローラインタフェース９２５は、コントローラ２２などの他のコントローラと接続するためのインタフェースである。コントローラインタフェース９２５は、コントローラ２２との間でＩ／Ｏ要求の送受信を行う。
【０１１７】
メモリ９２２には、図１又は図６に例示したホスト間送受信部２１１、リクエスト処理部２１２、コントローラ間送受信部２１３、ディスクアクセス制御部２１４及びの各機能を実現するためのプログラムを含む各種プログラムが格納されている。
【０１１８】
ＣＰＵ９２１は、メモリ９２２から各種プログラムを読み出して実行する。これにより、ＣＰＵ９２１及びメモリ９２２は、図１及び図６に例示したホスト間送受信部２１１、リクエスト処理部２１２、コントローラ間送受信部２１３及びディスクアクセス制御部２１４の各機能を実現する。
【符号の説明】
【０１１９】
１  ホスト
２  ストレージ
１１  演算処理部
１２  通信制御部
１３  通信経路選択部
１４  レスポンスタイム計測部
１５  通信設定記憶部
１６  疑似データ送信制御部
２１，２２  コントローラ
２３，２４  ディスク
２５  コントローラ管理部
２６  バス
２１１，２２１  ホスト間送受信部
２１２，２２２  リクエスト処理部
２１３，２２３  コントローラ間送受信部
２１４，２２４  ディスクアクセス制御部
【図１】
2015164013.tif 000003
【図２】
2015164013.tif 000004
【図３】
2015164013.tif 000005
【図４】
2015164013.tif 000006
【図５】
2015164013.tif 000007
【図６】
2015164013.tif 000008
【図７】
2015164013.tif 000009
【図８】
2015164013.tif 000010
【図９】
2015164013.tif 000011