(57)【要約】【課題】リモートスキャンのコマンドを発行するのに最適なホスト計算機を選択できる確率を高める。【解決手段】計算機が、ホスト計算機とローカルストレージとを接続するパスに関する第一の接続情報を取得し、且つ、ストレージシステム同士を接続するパスに関する第二の接続情報を取得する。計算機は、それらの接続情報を基に経路管理情報を生成する。経路管理情報は、複数の経路に関する情報である。一つの経路は、直列に接続された二以上のノードとノード間のパスとで構成されている。二以上のノードのうちのスタートノードが、ホスト計算機であり、その二以上のノードうちの他のノードが、ストレージシステムである。計算機は、経路管理情報を基に、リモートスキャンを実行するホスト計算機として、スキャン対象のリモートストレージをエンドノードとする複数の経路のうちの最適な経路のスタートノードであるホスト計算機を選択する。【選択図】図１
2010262551.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介して通信するためのネットワークインターフェイスと、
記憶資源と、
前記ネットワークインターフェイス及び前記記憶資源に接続されたプロセッサと
を備え、
前記通信ネットワークに複数のホスト計算機が接続されており、
１以上のストレージカスケードを構成する複数のストレージシステムがあり、
１つのストレージカスケードは、直列に接続された二以上のストレージシステムで構成されており、
前記複数のストレージシステムには、二以上のローカルストレージと一以上のリモートストレージが含まれており、
前記ローカルストレージは、少なくとも一つのホスト計算機に接続されているストレージシステムであり、
前記リモートストレージは、いずれのホスト計算機にも接続されていないストレージシステムであり、
前記プロセッサが、経路調査処理と、スキャン支援処理とを実行し、
（Ａ）前記経路調査処理は、
（ａ１）ホスト計算機とローカルストレージとを接続するパスであるホストパスに関するホスト／ストレージ接続情報を前記ネットワークインターフェイスを通じて取得する処理と、
（ａ２）ストレージシステムとストレージシステムとを接続するパスであるストレージパスに関するストレージ／ストレージ接続情報を各ホスト計算機及び前記ネットワークインターフェイスを通じて取得する処理と、
（ａ３）前記（ａ１）で取得されたホスト／ストレージ接続情報と前記（ａ２）で取得されたストレージ／ストレージ接続情報とを基に経路管理情報を生成し、生成した経路管理情報を前記記憶資源に格納する処理と
を含み、
前記経路管理情報は、複数の経路に関する情報であり、
一つの経路は、直列に接続された二以上のノードとノード間のパスとで構成されており、その二以上のノードのうちのスタートノードが、いずれかのホスト計算機であり、その二以上のノードうちの他のノードが、いずれかのストレージシステムであり、
（Ｂ）前記スキャン処理は、
（ｂ１）前記複数のストレージシステムのうちのスキャン対象のストレージシステムをエンドノードとする複数の経路を前記経路管理情報から特定する処理と、
（ｂ２）前記スキャン対象のストレージシステムがいずれかのリモートストレージであることが前記（ｂ１）の処理においてわかった場合に、前記経路管理情報を基に、前記スキャン対象のリモートストレージからスキャン対象の論理ボリュームに関する情報を取得することであるリモートスキャンを実行するホスト計算機として、前記複数の経路のうちの最適な経路のスタートノードであるホスト計算機を選択する処理と
を含む、
計算機。
【請求項２】
各ストレージシステムは、第一及び第二のコマンドデバイスを有し、
ストレージシステム同士を接続する前記ストレージパスとして、第一の方向のストレージパスと第二の方向のストレージパスとがあり、
前記第一の方向のストレージパスは、一方のストレージシステム内の前記第一のコマンドデバイスから他方のストレージシステム内の前記第一のコマンドデバイスへのパスであり、
前記第二の方向のストレージパスは、前記他方のストレージシステム内の前記第二のコマンドデバイスから前記一方のストレージシステム内の前記第二のコマンドデバイスへのパスであり、
各コマンドデバイスは、コマンドが格納される論理ボリュームであり、
前記最適な経路は、前記スキャン対象のリモートストレージとスタートノードのホスト計算機との間に存在するストレージシステムの数が最も少ない最短経路であり、
前記最適な経路を介して前記リモートスキャンを実行することの命令を受けたホスト計算機から、前記最適な経路に従う転送順序と前記スキャン対象の論理ボリュームとが指定されたスキャンコマンドが発行され、そのスキャンコマンドが、そのホスト計算機に接続されているローカルストレージに受信され、そのローカルストレージが有する前記第一及び第二のコマンドデバイスのうちの、前記転送順序に従う方のコマンドデバイスに格納され、その転送順序に従う方向のストレージパスを通じてコマンドデバイス間で転送され、その結果、前記スキャン対象のリモートストレージ内のコマンドデバイスに格納され、
前記スキャン対象のリモートストレージから、そのリモートストレージに格納されたスキャンコマンドに応答して、そのスキャンコマンドで指定されている前記スキャン対象の論理ボリュームに関するスキャン結果情報が送信され、そのスキャン結果情報が、前記転送順序と逆の順序で転送されて、前記スキャンコマンドを発行したホスト計算機に受信され、
前記プロセッサが、前記スキャン対象のリモートストレージをエンドノードとする前記複数の経路のうちの前記最短経路以外の経路のスタートノードのホスト計算機に、前記スキャン結果情報を送信する、
請求項１記載の計算機。
【請求項３】
前記ホスト／ストレージ接続情報は、前記ホストパスについて帯域及び単位時間当りのデータ転送量を表す情報を含み、
前記ストレージ／ストレージ接続情報は、前記第一及び第二の方向のストレージパスについて帯域及び単位時間当りのデータ転送量を表す情報を含み、
前記プロセッサは、前記（ｂ２）の処理において、以下の（ｂ２１）及び（ｂ２２）の処理：
（ｂ２１）前記ホスト／ストレージ接続情報が表す帯域及び／データ転送量と、前記ストレージ／ストレージ接続情報が表す帯域及び／データ転送量とを基に、ノード間のパス毎の負荷を算出し、ノード間のパス毎の負荷を基に、それぞれの経路の負荷を算出する；
（ｂ２２）二以上の最短経路がある場合、前記二以上の最短経路に属する二以上のホスト計算機のうち、負荷が最小の経路である負荷最小経路のスタートノードのホスト計算機を選択する、
を行う、
請求項２記載の計算機。
【請求項４】
前記ホスト／ストレージ接続情報は、ホスト計算機のＣＰＵ性能を表す情報を含み、
前記プロセッサは、前記（ｂ２）の処理において、更に、以下の（ｂ２３）の処理：
（ｂ２３）二以上の負荷最小経路がある場合、前記二以上の負荷最小経路に属する二以上のホスト計算機のうち、ＣＰＵ性能が最も高いホスト計算機を選択する、
を行う、
請求項３記載の計算機。
【請求項５】
前記最適な経路は、それぞれの経路の距離、経路の負荷、及びノードの負荷の少なくとも一つに基づいて選択された経路であり、
経路の距離は、スタートノードとエンドノードとの間に存在するストレージシステムの数であり、
経路の負荷は、その経路が有する各パスの負荷を基に定まる負荷である、
請求項１記載の計算機。
【請求項６】
前記最適な経路は、最短経路であり、
前記最短経路は、前記スキャン対象のリモートストレージとスタートノードのホスト計算機との間に存在するストレージシステムの数が最も少ない経路である、
請求項５記載の計算機。
【請求項７】
前記ホスト／ストレージ接続情報は、前記ホストパスについての負荷を表す情報を含み、
前記ストレージ／ストレージ接続情報は、前記ストレージパスについての負荷を表す情報を含み、
前記プロセッサは、前記ホスト／ストレージ接続情報及び前記ストレージ／ストレージ接続情報が表すノード間のパス毎の負荷を基に、経路毎の負荷を算出し、
二以上の最短経路がある場合、前記最適な経路は、前記二以上の最短経路のうちの、負荷が最小の経路である負荷最小経路である、
請求項６記載の計算機。
【請求項８】
二以上の負荷最小経路がある場合、前記最適な経路は、前記二以上の負荷最小経路のうちの、ノードに関する負荷が最小の経路である、
請求項７記載の計算機。
【請求項９】
前記二以上の負荷最小経路に属する二以上のホスト計算機のうちの、負荷の最も小さいホスト計算機が選択される、
請求項８記載の計算機。
【請求項１０】
前記ホスト／ストレージ接続情報は、前記ホストパスについての負荷を表す情報を含み、
前記ストレージ／ストレージ接続情報は、前記ストレージパスについての負荷を表す情報を含み、
前記プロセッサは、前記ホスト／ストレージ接続情報及び前記ストレージ／ストレージ接続情報が表すノード間のパス毎の負荷を基に、経路毎の負荷を算出し、
前記最適な経路は、負荷が最小の経路である負荷最小経路である、
請求項５又は６記載の計算機。
【請求項１１】
前記選択されるホスト計算機は、ノードに関する負荷が最小の経路のスタートノードである、
請求項５、６又は１０記載の計算機。
【請求項１２】
前記最適な経路を介して前記リモートスキャンを実行することの命令を受けたホスト計算機から、前記最適な経路に従う転送順序と前記スキャン対象の論理ボリュームとが指定されたスキャンコマンドが発行され、そのスキャンコマンドが、そのホスト計算機に接続されているローカルストレージに受信され、そのスキャンコマンドで指定されている転送順序に従って転送され、前記スキャン対象のリモートストレージに受信され、
前記スキャン対象のリモートストレージから、そのスキャンコマンドに応答して、そのスキャンコマンドで指定されている前記スキャン対象の論理ボリュームに関するスキャン結果情報が送信され、そのスキャン結果情報が、前記転送順序と逆の順序で転送されて、前記スキャンコマンドを発行したホスト計算機に受信され、
前記プロセッサが、前記スキャン対象のリモートストレージをエンドノードとする前記複数の経路のうちの前記最適な経路以外の経路のスタートノードのホスト計算機に、前記スキャン結果情報を送信する、
請求項１、５乃至１１のうちのいずれか１項に記載の計算機。
【請求項１３】
前記最適な経路は、経路の距離の差、経路の負荷の差、及びノードの負荷の差のうちの少なくとも二つに基づいて選択された経路である、
請求項５記載の計算機。
【請求項１４】
１以上のストレージカスケードを構成する複数のストレージシステムのいずれかからスキャン対象の論理ボリュームに関する情報をホスト計算機に取得させるスキャン方法であり、
１つのストレージカスケードは、直列に接続された二以上のストレージシステムで構成されており、
前記複数のストレージシステムには、二以上のローカルストレージと一以上のリモートストレージが含まれており、
前記ローカルストレージは、少なくとも一つのホスト計算機に接続されているストレージシステムであり、
前記リモートストレージは、いずれのホスト計算機にも接続されていないストレージシステムであり、
前記スキャン方法は、経路調査処理とスキャン処理とを実行し、
（Ａ）前記経路調査処理は、
（ａ１）ホスト計算機とローカルストレージとを接続するパスであるホストパスに関するホスト／ストレージ接続情報を前記ネットワークインターフェイスを通じて取得する処理と、
（ａ２）ストレージシステムとストレージシステムとを接続するパスであるストレージパスに関するストレージ／ストレージ接続情報を各ホスト計算機及び前記ネットワークインターフェイスを通じて取得する処理と、
（ａ３）前記（ａ１）で取得されたホスト／ストレージ接続情報と前記（ａ２）で取得されたストレージ／ストレージ接続情報とを基に経路管理情報を生成し、生成した経路管理情報を前記記憶資源に格納する処理と
を含み、
前記経路管理情報は、複数の経路に関する情報であり、
一つの経路は、直列に接続された二以上のノードとノード間のパスとで構成されており、その二以上のノードのうちのスタートノードが、いずれかのホスト計算機であり、その二以上のノードうちの他のノードが、いずれかのストレージシステムであり、
（Ｂ）前記スキャン処理は、
（ｂ１）前記複数のストレージシステムのうちのスキャン対象のストレージシステムをエンドノードとする複数の経路を前記経路管理情報から特定する処理と、
（ｂ２）前記スキャン対象のストレージシステムがいずれかのリモートストレージであることが前記（ｂ１）の処理においてわかった場合に、前記経路管理情報を基に、前記スキャン対象のリモートストレージからスキャン対象の論理ボリュームに関する情報を取得することであるリモートスキャンを実行するホスト計算機として、前記複数の経路のうちの最適な経路のスタートノードであるホスト計算機を選択する処理と
を含む、
スキャン方法。
【請求項１５】
１以上のストレージカスケードを構成する複数のストレージシステムのいずれかからスキャン対象の論理ボリュームに関する情報をホスト計算機に取得させるコンピュータプログラムであって、
１つのストレージカスケードは、直列に接続された二以上のストレージシステムで構成されており、
前記複数のストレージシステムには、二以上のローカルストレージと一以上のリモートストレージが含まれており、
前記ローカルストレージは、少なくとも一つのホスト計算機に接続されているストレージシステムであり、
前記リモートストレージは、いずれのホスト計算機にも接続されていないストレージシステムであり、
前記コンピュータプログラムは、経路調査処理とスキャン処理とをコンピュータに実行させ、
（Ａ）前記経路調査処理は、
（ａ１）ホスト計算機とローカルストレージとを接続するパスであるホストパスに関するホスト／ストレージ接続情報を前記ネットワークインターフェイスを通じて取得する処理と、
（ａ２）ストレージシステムとストレージシステムとを接続するストレージパスに関するストレージ／ストレージ接続情報を各ホスト計算機及び前記ネットワークインターフェイスを通じて取得する処理と、
（ａ３）前記（ａ１）で取得されたホスト／ストレージ接続情報と前記（ａ２）で取得されたストレージ／ストレージ接続情報とを基に経路管理情報を生成し、生成した経路管理情報を前記記憶資源に格納する処理と
を含み、
前記経路管理情報は、複数の経路に関する情報であり、
一つの経路は、直列に接続された二以上のノードとノード間のパスとで構成されており、その二以上のノードのうちのスタートノードが、いずれかのホスト計算機であり、その二以上のノードうちの他のノードが、いずれかのストレージシステムであり、
（Ｂ）前記スキャン処理は、
（ｂ１）前記複数のストレージシステムのうちのスキャン対象のストレージシステムをエンドノードとする複数の経路を前記経路管理情報から特定する処理と、
（ｂ２）前記スキャン対象のストレージシステムがいずれかのリモートストレージであることが前記（ｂ１）の処理においてわかった場合に、前記経路管理情報を基に、前記スキャン対象のリモートストレージからスキャン対象の論理ボリュームに関する情報を取得することであるリモートスキャンを実行するホスト計算機として、前記複数の経路のうちの最適な経路のスタートノードであるホスト計算機を選択する処理と
を含む、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、直列に接続された複数のストレージシステムのいずれかからスキャン対象の論理ボリュームに関する情報を取得する技術に関する。
【背景技術】
【０００２】
直列に接続された複数のストレージシステムのいずれかからスキャン対象の論理ボリュームに関する情報を取得する技術として、例えば、特許文献１及び２に開示の技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１４６８０１号公報
【特許文献２】米国特許出願公開第２００６／０１１２２４５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
以下の説明では、少なくとも一つのホスト計算機に接続されているストレージシステムを「ローカルストレージ」と呼び、いずれのホスト計算機にも接続されていないストレージシステムを「リモートストレージ」と呼ぶ。また、ホスト計算機とストレージシステムを「ノード」と総称することがある。
【０００５】
この種の技術では、一般的に、複数のストレージシステムには、二以上のローカルストレージと一以上のリモートストレージが含まれている。スキャン対象の論理ボリュームに関する情報（以下、スキャン結果情報）を取得するためのスキャンコマンドは、いずれかのホスト計算機から発行される。
【０００６】
スキャン対象のストレージシステムが、そのホスト計算機に接続されているローカルストレージであれば、そのローカルストレージからそのホスト計算機にスキャン結果情報が送信される。
【０００７】
一方、スキャン対象のストレージシステムが、いずれかのリモートストレージであれば、スキャンコマンドは、そのスキャンコマンドを受けたローカルストレージから、一以上のストレージシステムを順次に経由して、スキャン対象のリモートストレージに届く。そして、そのリモートストレージから、スキャン結果情報が送信される。送信されたスキャン結果情報は、上記一以上のストレージシステムを逆の順序に経由し、ローカルストレージを通じて、スキャンコマンドの発行元のホスト計算機に届く。以下、リモートストレージから上記スキャン結果情報を取得することを「リモートスキャン」と言う。
【０００８】
各ローカルストレージが、直接的に或いは少なくとも一つのストレージシステムを介して、スキャン対象のリモートストレージに接続されているケースがある。このケースでは、二以上のホスト計算機のいずれからリモートスキャンのコマンドを発行しても、スキャン対象のリモートストレージからスキャン結果情報を取得することができる。
【０００９】
このケースでは、どのホスト計算機からリモートスキャンのコマンドを発行するかを、ユーザが選択する。ユーザは、通常、ノード間の接続構成（すなわち、どのホスト計算機がどのストレージシステムに接続されているかや、どのストレージシステムがどのストレージシステムに接続されているか）を知らない。このため、リモートスキャンのコマンドを発行するのに最適なホスト計算機を選択することが難しい。
【００１０】
そこで、本発明の目的は、リモートスキャンのコマンドを発行するのに最適なホスト計算機を選択できる確率を高めることにある。
【課題を解決するための手段】
【００１１】
複数のホスト計算機が接続されている通信ネットワークに接続されている計算機が、経路調査処理と、スキャン処理とを実行する。その計算機は、複数のホスト計算機のうちのいずれかのであっても良い。また、その計算機は、一つの計算機であっても良いし複数の計算機で構成されていても良い。
【００１２】
前述した経路調査処理は、
（ａ１）ホスト計算機とローカルストレージとを接続するパスであるホストパスに関するホスト／ストレージ接続情報を取得する処理と、
（ａ２）ストレージシステムとストレージシステムとを接続するパスであるストレージパスに関するストレージ／ストレージ接続情報を各ホスト計算機を通じて取得する処理と、
（ａ３）ホスト／ストレージ接続情報とストレージ／ストレージ接続情報とを基に経路管理情報を生成し、生成した経路管理情報を保存する処理と
を含む。経路管理情報は、複数の経路に関する情報である。一つの経路は、直列に接続された二以上のノードとノード間のパスとで構成されている。二以上のノードのうちのスタートノードが、いずれかのホスト計算機であり、その二以上のノードうちの他のノードが、いずれかのストレージシステムである。
【００１３】
前述したスキャン処理は、
（ｂ１）一以上のストレージカスケードを構成する複数のストレージシステムのうちのスキャン対象のストレージシステムをエンドノードとする複数の経路を経路管理情報から特定する処理と、
（ｂ２）スキャン対象のストレージシステムがいずれかのリモートストレージであることが上記（ｂ１）の処理においてわかった場合に、経路管理情報を基に、リモートスキャンを実行するホスト計算機として、上記複数の経路のうちの最適な経路のスタートノードであるホスト計算機を選択する処理と
を含む。計算機は、スキャン処理において、上記（ｂ２）で選択されたホスト計算機にリモートスキャンを命じても良い。
【００１４】
上記（ｂ２）において、計算機は、最適な経路のスタートノードであるホスト計算機を表す情報を表示することなくそのホスト計算機を選択しても良いし、その情報を表示し、ユーザからそのホスト計算機の指定を受け付けたことに応答して、そのホスト計算機を選択しても良い。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の一実施形態に係る計算機システムの概要を示す。
【図２】図２は、本発明の一実施形態に係る計算機システムの構成を示す。
【図３】図３Ａは、ストレージパステーブル２４２を示す。図３Ｂは、ホストパステーブル２１０を示す。
【図４】図４Ａは、ホストパス管理テーブル２１４を示す。図４Ｂは、ストレージパス管理テーブル２１５を示す。図４Ｃは、ストレージテーブル２１６を示す。
【図５】図５Ａは、配列（Ｗ１）２１２を示す。図５Ｂは、配列（Ｗ２）２１３を示す。
【図６】図６は、経路テーブル２１７を示す。
【図７】図７は、ホスト追加処理のフローチャートである。
【図８】図８は、構成変更処理のフローチャートである。
【図９】図９は、ホスト削除処理のフローチャートである。
【図１０】図１０は、ストレージパステーブル収集処理のフローチャートを示す。
【図１１】図１１は、配列作成処理のフローチャートである。
【図１２】図１２は、スキャン処理のフローチャートの一部である。
【図１３】図１３は、スキャン処理のフローチャートの残りである。
【図１４】図１４は、距離／重み計算処理のフローチャートの一部である。
【図１５】図１５は、距離／重み計算処理のフローチャートの残りである。
【図１６】図１６は、複数のストレージカスケードを含んだ計算機システムの一例の概要を示す。
【図１７】図１７は、ストレージパスの説明図である。
【図１８】図１８は、経路の重みの算出方法の一例の説明図である。
【図１９】図１９は、直列に接続された複数のストレージシステムの並びの変形例を示す。
【発明を実施するための形態】
【００１６】
図１は、本発明の一実施形態に係る計算機システムの概要を示す。
【００１７】
２つのホスト計算機１１１がある。以下、それら２つのホスト計算機１１１を、それぞれ、「ホスト１」及び「ホスト２」と称する。また、それらを特に区別しない場合には「ホスト」と総称することがある。
【００１８】
ホスト１及び２に、管理サーバ１０１が接続されている。ただし、管理サーバ１０１の機能がホスト１及び２のいずれかに設けられている場合には、管理サーバ１０１は必ずしも無くても良い。
【００１９】
１つのストレージカスケードがある。そのストレージカスケードは、直列に接続された４つのストレージシステム１２１で構成されている。以下、それら４つのストレージシステムを、それぞれ、「ストレージ１」、「ストレージ２」、「ストレージ３」及び「ストレージ４」と称する。また、それらを特に区別しない場合には「ストレージ」と総称することがある。また、ホストとストレージを「ノード」と総称することがある。
【００２０】
ストレージ１〜４のうち、ストレージ１にホスト１がホストパスＰ３１で直結されており、ストレージ４にホスト２がホストパスＰ３２で直結されている。このため、ストレージ１及び４が、それぞれ、ローカルストレージであり、ストレージ２及び３が、それぞれ、リモートストレージである。なお、本実施形態において、「直結されている」とは、いずれのノード（ホスト又はストレージ）を介することなく接続されていることを意味する。また、「ホストパス」とは、ホストとストレージとを接続するパスである。
【００２１】
ストレージ同士を接続するパスであるストレージパスの向きが予め定義されている。図１によれば、ストレージ間毎に、ストレージ１からストレージ４への方向（第一の方向）のパスである第一のストレージパスＰ１１、Ｐ１２又はＰ１３と、ストレージ４からストレージ１への方向（第二の方向）のパスである第二のストレージパスＰ２３、Ｐ２２又はＰ２１とが予め定義されている。スキャンコマンドは、ストレージパスの向きに沿って転送される。スキャンコマンドに限らず、他種のコマンドも、ストレージパスの向きに沿って転送される。たとえば、ホスト１が、ストレージ２内の論ボリュームを指定したＩ／Ｏコマンド（ライトコマンド又はリードコマンド）を送信した場合、そのＩ／Ｏコマンドは、ストレージ１及び第一のストレージパス（Ｐ１１）を介して、ストレージ２に転送される。
【００２２】
各ホストは、そのホストとローカルストレージとを接続するホストパスに関するホスト／ストレージ接続情報を保持している。例えば、ホスト１が保持するホスト／ストレージ接続情報は、ホスト１に直結されているストレージ１を表す情報を含んでいる。ホスト／ストレージ接続情報は、具体的には、例えば、後述するホストパステーブル２１０である（図２、図３Ｂ参照）。
【００２３】
各ストレージは、ストレージ同士を接続するストレージパスに関するストレージ／ストレージ接続情報を保持している。例えば、ストレージ２が保持するストレージ／ストレージ接続情報は、ストレージ２に直結されているストレージ１及び３を表す情報を含んでいる。ストレージ／ストレージ接続情報は、具体的には、例えば、後述するストレージパステーブル２４２である（図２、図３Ａ参照）。
【００２４】
本実施形態では、管理サーバ１０１が、ホスト／ストレージ接続情報及びストレージ／ストレージ接続情報を取得し、それらの情報を基に、経路管理情報を生成する。経路管理情報が、存在する全ての経路に関する情報である。従って、どのホストがどのストレージに接続されていて、どのストレージがどのストレージに接続されているかを把握することができる。なお、一つの経路は、直列に接続された二以上のノードとノード間のパスとで構成されており、その二以上のノードのうちのスタートノードが、いずれかのホストであり、その二以上のノードうちの他のノードが、いずれかのストレージである。例えば、ストレージ３をエンドノードとする経路として、２つの経路がある。１つ目の経路は、第１の向きの経路、すなわち、ホスト１、ホストパスＰ３１、ストレージ１、第一のストレージパスＰ１１、ストレージ２及び第一のストレージパスＰ１２を含んだ経路である。２つ目の経路は、第２の向きの経路、すなわち、ホスト２、ホストパスＰ３２、ストレージ４及び第二のストレージパスＰ２３を含んだ経路である。
【００２５】
管理サーバ１０１は、各ホストを通じて全てのストレージからストレージ／ストレージ情報を取得する。その際、第一の方向と第二の方向の両方の方向に沿ってストレージ／ストレージ情報が取得される。具体的には、例えば、管理サーバ１０１は、ホスト１を通じてストレージ１からストレージ／ストレージ情報を取得し、次に、その情報から特定されるストレージ２からホスト１及びストレージ１を通じてストレージ／ストレージ情報を取得し、次に、その情報から特定されるストレージ３からホスト１、ストレージ１及びストレージ２を通じてストレージ／ストレージ情報を収集し、最後に、その情報から特定されるストレージ４からホスト１、ストレージ１、ストレージ２及びストレージ３を通じてストレージ／ストレージ情報を取得する。同様の方法で、管理サーバ１０１は、ホスト２を通じてストレージ４からストレージ／ストレージ情報を取得し、その後、ストレージ３、ストレージ２及びストレージ１の順で、ホスト２を通じて、ストレージ／ストレージ情報を取得する。
【００２６】
経路管理情報は、例えば、後述の経路テーブル２１７である（図２、図６参照）。管理サーバ１０１は、経路管理情報を基に、スキャン対象のリモートストレージをエンドノードとする複数の経路のうちの最適な経路を特定し、最適な経路のスタートノードのホストを選択する。そして、管理サーバ１０１は、そのホストにリモートスキャン（スキャン対象のリモートストレージからスキャン対象の論理ボリュームに関する情報を取得すること）を実行させる。例えば、スキャン対象のリモートストレージがストレージ３の場合、ストレージ３をエンドノードとする経路は前述した２つの経路があるが、その２つの経路のうち、第２の向きの経路の距離の方が第１の向きの経路の距離よりも短い。このため、管理サーバ１０１は、第２の向きの経路のスタートノードであるホスト２を選択し、ホスト２にリモートスキャンを実行させる。
【００２７】
なお、「経路の距離」とは、ここでは、スタートノードからエンドノードに至るまでにノード間をホップすることになる数（ホップ数）である。ホップ数が多ければ距離が長いということであり、ホップ数が少なければ距離が短いということである。ホップ数は、スタートノードとエンドノードとの間に存在するノード（以下、中間ノード）の数が少なければ少なくなり、中間ノードの数が多くなれば多くなる。ホップ数は、中間ノードの数＋１である。
【００２８】
図１に示した構成例ではあり得ないが、別の構成例では、スキャン対象のリモートストレージをエンドノードとする複数の経路に、距離が同じ経路が二つ以上含まれていることがあり得る。この場合、管理サーバ１０１は、それら二以上の経路のうち、負荷が最小の経路を特定し、負荷が最小の経路のスタートノードのホストを選択する。経路毎の負荷は、後述するように、単位時間（例えば１秒間）当たりの回線帯域及びデータ量を基に算出される。
【００２９】
さらに、負荷が最小の経路が二つ以上存在する場合には、管理サーバ１０１は、二以上の負荷最小経路に対応した二以上のホストのうち、負荷が最小のホストを選択する。ホストの負荷は、ホストのリソースの動作状態を基に特定される。リソースの動作状態としては、例えば、ＣＰＵクロックサイクル時間及びメモリ使用率などを採用することができるが、本実施形態では、ＣＰＵクロックサイクル時間が採用される。
【００３０】
本実施形態では、二以上の負荷最小経路がある場合、ホストの負荷に基づいてホストが選択されるが、それに代えて又は加えて、他のノードの負荷（例えばローカルストレージの負荷）も考慮されても良い。例えば、ホストとそのホストに直結されているローカルノードとのセット（ホスト／ローカルストレージセット）毎に、負荷が特定され、最も負荷の小さいホスト／ローカルストレージセットに属するホストが選択されても良い。
【００３１】
また、本実施形態では、経路の距離、経路の負荷、及び、ノードの負荷のうち、経路の距離が最優先され、次に、経路の負荷が優先されるが、優先順位はそれに限らなくても良い（たとえば、経路の負荷が最優先されても良い）。或いは、それら三つの要素（経路の距離、経路の負荷、及び、ノードの負荷）のうちの少なくとも二つが常に参酌されても良い。具体的には、スキャン対象のリモートストレージをエンドノードとする複数の経路について、下記の三つの要素：
（Ｘ１）経路の距離の差；
（Ｘ２）経路の負荷の差；
（Ｘ３）ノード（例えばホスト）の負荷の差、
のうちの少なくとも二つの要素が常に参酌されても良い。たとえば、第一の経路の方が第二の経路より短いが、それらの距離の差が所定値未満であって、第一の経路の負荷の方が第二の負荷よりも所定値以上に大きい場合には、第二の経路が選択されても良い。
【００３２】
さて、リモートスキャンの実行が命じられたホストは、リモートスキャンのコマンドを発行する。そのリモートスキャンコマンドに応答して、スキャン対象のリモートストレージから、スキャン対象の論理ボリュームに関するスキャン結果情報を受ける。管理サーバ１０１は、スキャン対象のリモートストレージをエンドノードとする全ての経路のスタートノードのホスト（但し、そのリモートスキャンコマンドの発行元のホストを除く）を、経路管理情報を基に特定する。そして、管理サーバ１０１は、特定されたホストに、スキャン結果情報を送信する。例えば、図１に示した構成例によれば、いずれのストレージがスキャン対象となっても、ホスト１又は２のうちのいずれかにスキャン結果情報が送信されることになる。別の構成例、例えば、図１６に示した構成例において、スキャン対象のストレージ１２にホスト１１からリモートスキャンコマンドが送信された場合、管理サーバ１０１は、ホスト１２にスキャン結果情報を送信するが、他のホスト１３にはその情報を送信しない。なぜなら、ストレージ１２をエンドノードとする経路はホスト１以外ではホスト２のみであるからである。なお、「スキャン結果情報を送信する」とは、ストレージから取得されたスキャン結果情報それ自体を送信するのであっても良いし、そのスキャン結果情報を基に更新されたシステム構成情報（どのストレージシステムにどの論理ボリュームが存在するかを表す情報、例えば後述の構成ファイル２０９（図２参照））を送信するのであっても良い。なお、スキャン結果情報を他のホストに送信する理由は、或るホストが使用不可能になった場合に、他のホストにもスキャン結果情報を送信しておかないと、他のホストで業務を継続することができないことにある（つまりディザスタリカバリを考慮したことにある）。
【００３３】
以上が、本実施形態の概要である。以下、本実施形態を詳細に説明する。
【００３４】
図２は、本発明の一実施形態に係る計算機システムの構成を示す。
【００３５】
ホスト１及び２と管理サーバ１０１は、ＩＰ（Internet Protocol）ネットワーク１１５に接続されている。ストレージ１〜４が、ＳＡＮ（Storage Area Network）２２５に接続されている。ＩＰネットワーク１１５及びＳＡＮ２２５のうちの少なくとも１つが他種のネットワークであっても良い。また、ホスト１及び２、管理サーバ１０１及びストレージ１〜４が共通のネットワークに接続されていても良い。例えば、ホスト１及び２がＳＡＮ２２５に接続されても良い。
【００３６】
ホスト１及び２について、ホスト１を代表的に例に採り説明する。
【００３７】
ホスト１は、ＩＦ２０２と、記憶資源と、それらに接続されたＣＰＵ２０１とを有する。記憶資源は、例えば、メモリ２０３とディスク２０７である。
【００３８】
ＩＦ２０２は、ＩＰネットワーク１１５を介した通信を行うためのネットワークインターフェイスである。
【００３９】
メモリ２０３は、ＣＰＵ２０１に実行されるコンピュータプログラム、例えば、オペレーティングシステム（図示せず）、ＡＰ（アプリケーションプログラム）２０４及びレプリケーション管理ソフト２０６を記憶する。
【００４０】
ディスク２０７は、ディスク型の記憶装置、例えばハードディスクである。ディスク２０７は、構成ファイル２０９及びホストパステーブル２１０を記憶する。
【００４１】
管理サーバ１０１は、ＩＦ３０２と、記憶資源と、それらに接続されたＣＰＵ３０１とを有する。記憶資源は、例えば、メモリ３０３とディスク３０７である。
【００４２】
ＩＦ３０２は、ＩＰネットワーク１１５を介した通信を行うためのネットワークインターフェイスである。
【００４３】
メモリ３０３は、ＣＰＵ３０１に実行されるコンピュータプログラム、例えば、オペレーティングシステム（図示せず）、及び統合レプリケーション管理ソフト２１１を記憶する。また、メモリ３０３は、配列（Ｗ１）２１２と、配列（Ｗ２）２１３とを記憶する。
【００４４】
ディスク３０７は、ディスク型の記憶装置、例えばハードディスクである。ディスク３０７は、ホストパス管理テーブル２１４、ストレージパス管理テーブル２１５、ストレージテーブル２１６、経路テーブル２１７及び構成ファイル２０９を記憶する。構成ファイル２０９は、ホスト１及び２が有する構成ファイル２０９と同じである。構成ファイル２０９は、スキャン結果情報を基に作成又は更新されるファイルであり、例えば、どのストレージがどの論理ボリュームを有するかを表す情報が記述されている。
【００４５】
ストレージ１〜４について、ストレージ１を代表的に例に採り説明する。
【００４６】
ストレージ１は、コントローラ（以下、ＣＴＬ）２４１と、複数の論理ボリューム（以下、ＶＯＬ）とを有する。
【００４７】
ＣＴＬ２４１は、複数のポート、ＣＰＵ及びメモリを有する。ＣＴＬ２４１は、ホストから直接或いは他のストレージを介して受信したＩ／Ｏコマンドで指定されているＶＯＬにアクセスする。ＣＴＬ２４１内のメモリは、ストレージパステーブル２４２を記憶する。
【００４８】
各ＶＯＬは、仮想的なＶＯＬと実体的なＶＯＬのいずれかである。実体的なＶＯＬは、ＲＡＩＤ（Redundant Array of Independent (or Inexpensive) Disks）グループを基に形成されている。ＲＡＩＤグループは、所定のＲＡＩＤレベルでデータを記憶する。ＲＡＩＤグループは、複数の物理記憶デバイス（例えばハードディスク或いはフラッシュメモリ）で構成されている。
【００４９】
複数のＶＯＬは、ホストＶＯＬと、コマンドデバイス（図２では「ＣＤ」略記）とを含む。
【００５０】
ホストＶＯＬは、ホストからのＩ／Ｏコマンドで指定され得るＶＯＬである。
【００５１】
コマンドデバイスは、コマンド制御用のＶＯＬである。コマンドデバイスには、種々のコマンド、例えば、そのコマンドデバイスを有するストレージ内の他のＶＯＬが指定されたコマンドや、他のストレージに対するコマンドが格納される。本実施形態では、一つのストレージに、第１の方向（ストレージ１からストレージ４への向き）用のコマンドデバイスと、第２の方向（ストレージ４からストレージ１への向き）用のコマンドデバイスとが設けられている。図２の例で言えば、ストレージ１〜４において、第１の方向用のコマンドデバイスは、コマンドデバイス１〜４であり、第２の方向用のコマンドデバイスは、コマンドデバイス５〜８である。
【００５２】
各ストレージにおいて、コマンドデバイスとコマンドデバイスとの間の物理パス及び論理パスが設定済みである。
【００５３】
「論理パス」とは、図１７に示すように、１又は複数の物理パス１７０１上に仮想的に確立される通信路１７０２のことである。１つの論理パスは最大８つの物理パスを有することができる。「物理パス」は、回線と同義語である。物理パスは、送信側ストレージ内のＣＵ（Control Unit）に関連付けられたポート（イニシエータポート）から受信側ストレージ内のＣＵに関連付けられたポート（ターゲットポート）へのパスである（それらのポート間は例えばファイバチャネルケーブルで接続されている）。「ＣＵ」は、ＶＯＬに対応付けられている要素であり、ＣＵに対応付けられているＶＯＬは、複数の論理記憶デバイスの集合である。
【００５４】
コマンドデバイス間の論理パスは、コマンドデバイス専用の論理パス、又は、コピー用の論理パスである。コマンドデバイス間の通信は単方向のため、２つのストレージ間で両方向の通信をするために、コマンドデバイスと論理パスがそれぞれ２つ設定されている。図２において、論理パス及びその向きは、コマンドデバイス間に示されている矢印及びその向きである。
【００５５】
本実施形態では、コマンドデバイス間の物理パス（回線）の帯域及び単位時間当りのデータ量を基に、ストレージパス（論理パス）の負荷が決定される。もし、１つの論理パスが複数の物理パスを有する場合には、ストレージパスの負荷の算出には、それら複数の物理パスのうちの少なくとも１つの物理パスの帯域及び単位時間当りのデータ量が考慮される。例えば、それら複数の物理パスの帯域及びデータ量の平均値が用いられても良いし、データ量÷帯域の値が最も小さい物理パス（つまり負荷の最も小さい物理パス）の帯域及びデータ量が用いられても良い。
【００５６】
ホストが有するレプリケーション管理ソフト２０６は、下記の機能：
（１）コピー操作（ＶＯＬペアの作成や、ＶＯＬペアペアの状態変更を行う機能）；
（２）コピーグループ操作（複数のＶＯＬペアをグループ化し、グループ単位で操作を実行する機能）；
（３）ボリュームスキャン（ストレージからＶＯＬに関する情報を取得する機能）；
（４）リモートストレージ制御（リモートストレージを制御（操作）する機能）；
（５）論理パス制御（ストレージパスを確立・削除する機能）；
を有する。
【００５７】
ボリュームスキャンは、例えば、コピーグループ定義のために必要となる。スキャン結果情報は、構成ファイル２０９に格納される。構成ファイル２０９に格納されたＶＯＬ情報（どのストレージがどのＶＯＬを有するか）を基に、ＶＯＬペアやＶＯＬペアグループが作成される。ボリュームスキャンとしては、ローカルスキャンとリモートスキャンの２種類がある。
【００５８】
ローカルスキャンは、スキャン対象がローカルストレージの場合のボリュームスキャンである。つまり、ローカルストレージからスキャン結果情報が取得される。
【００５９】
リモートスキャンは、スキャン対象がリモートストレージの場合のボリュームスキャンである。リモートスキャンのためには、リモートスキャンコマンドの転送のために、前述したストレージパスの設定が必要である。リモートスキャンの操作のために、ユーザは、例えば、リモートストレージのシリアル番号、スキャンするＶＯＬの範囲（例えば、ＶＯＬ番号の範囲）、及びルートリストを入力する。ルートリストとは、リモートスキャンコマンドの転送順路であり、どのストレージをどの順番で経由するかを表す。例えば、１４００１→１４００２→１４００３というルートリスト（シリアル番号のリスト）は、ストレージ１→ストレージ２→ストレージ３という転送順路を意味する。このため、そのルートリストを含んだリモートスキャンコマンドは、ローカルストレージ１、リモートストレージ２を経由して、リモートストレージ３に届く。具体的には、そのリモートスキャンコマンドは、以下の順で処理される。
【００６０】
ローカルストレージ１内のＣＴＬ１が、ホスト１からリモートスキャンコマンドを受信し、そのリモートスキャンコマンドをコマンドデバイス１に格納する。ＣＴＬ１は、そのリモートスキャンコマンド内のルートリストに従い、そのリモートスキャンコマンドを、コマンドデバイス１からストレージパスＰ１１を経由してリモートストレージ２に転送する。リモートストレージ２内のＣＴＬ２が、ストレージパスＰ１１経由でリモートスキャンコマンドを受信し、そのコマンドをコマンドデバイス２に格納する。ＣＴＬ２は、そのリモートスキャンコマンド内のルートリストに従い、そのリモートスキャンコマンドを、コマンドデバイス２からストレージパスＰ１２を経由してリモートストレージ３に転送する。リモートストレージ３内のＣＴＬ３が、ストレージパスＰ１２経由でリモートスキャンコマンドを受信し、そのコマンドをコマンドデバイス３に格納する。
【００６１】
ＣＴＬ３は、コマンドデバイス３内のリモートスキャンコマンドを参照し、そのコマンドで指定されているＶＯＬ範囲に属するＶＯＬに関する情報を取得し、その情報を含んだスキャン結果情報（ボリューム情報）を送信する。そのスキャン結果情報は、リモートスキャンコマンドの転送順序とは逆の順序でストレージを経由してホスト１に到達する。具体的には、例えば、スキャン結果情報は、ストレージパスＰ２２、ストレージ２、ストレージパスＰ２１及びローカルストレージ１を経由して、ホスト１に届く。ホスト１内のレプリケーション管理ソフト２０６は、そのスキャン結果情報を構成ファイル２０９に格納する。また、そのレプリケーション管理ソフト２０６は、スキャン結果情報（例えば、更新後の構成ファイル２０９）を、管理サーバ１０１に送信する。管理サーバ１０１内の統合レプリケーション管理ソフト２１１が、そのスキャン結果情報を、ホスト２に送信する。ホスト２内のレプリケーション管理ソフト２０６は、そのスキャン結果情報を保存する（例えば、構成ファイル２０９を作成、更新又は保存する）。
【００６２】
さて、以下、ストレージ、ホスト及び管理サーバが有するテーブルを詳細に説明する。
【００６３】
図３Ａは、ストレージが有するストレージパステーブル２４２を示す。
【００６４】
ストレージパステーブル２４２は、ストレージパスに関する情報が記述されているテーブルである。このテーブル２４２には、このテーブル２４２を有するストレージを送信側ストレージとしたストレージパスに関する情報が記述される。図３Ａに示すテーブル２４２は、ストレージカスケードの一端であるストレージ１のテーブル２４２の例である。このため、１つのストレージパスについてしか記述されていないが、ストレージ２及び３のようにストレージカスケードの端に無いストレージのテーブル２４２には、第１の方向と第２の方向の両方の方向のストレージパスについての情報が記述される。
【００６５】
テーブル２４２は、一つのストレージパスにつき、下記の情報要素：
（１）送信側ストレージ番号（送信側ストレージのシリアル番号）；
（２）送信側ＣＵ番号（送信側ストレージのＣＵの番号）；
（３）イニシエータポート番号；
（４）受信側ストレージ番号（受信側ストレージのシリアル番号）；
（５）受信側ＣＵ番号（受信側ストレージのＣＵ番号）；
（６）ターゲットポート番号；
（７）回線帯域（ストレージパスが有する物理パスの帯域）；
（８）データ量（ストレージパスが有する物理パスを流れる１秒間当りのデータ量）；
（９）状態（ストレージパスの状態、例えば、正常、障害など）
を有する。もし、１つのストレージパスが複数の物理パスを有する場合、例えば、上記情報要素（３）、（６）、（７）、（８）及び（９）は、物理パス毎に存在する。
【００６６】
図３Ｂは、ホストが有するホストパステーブル２１０を示す。
【００６７】
ホストパステーブル２１０は、ホストパスに関する情報が記述されているテーブルである。このテーブル２１０は、下記の情報要素：
（１）ホスト名（このテーブル２１０を有するホストの名称）；
（２）直結ストレージ番号（そのホストに直結されているローカルストレージのシリアル番号）；
（３）回線帯域（ホストパスの帯域）；
（４）データ量（ホストパスを流れる１秒間当りのデータ量）；
（５）ＣＰＵサイクル時間（そのホストが有するＣＰＵのサイクル時間）；
（６）状態（ホストパスの状態、例えば、正常、障害など）；
を有する。
図４Ａは、管理サーバ１０１が有するホストパス管理テーブル２１４を示す。
【００６８】
ホストパス管理テーブル２１４は、検出された全てのホストパスに関する情報が記述される。このテーブル２１４は、一つのホストパスにつき、下記の情報要素：
（１）ノードＩＤ（ホストのＩＤ）；
（２）ホスト名（ホストの名称）；
（３）直結ストレージ番号（そのホストに直結されているローカルストレージのシリアル番号）；
（４）回線帯域（ホストパスの帯域）；
（５）データ量（ホストパスを流れる１秒間当りのデータ量）；
（６）ＣＰＵサイクル時間（そのホストが有するＣＰＵのサイクル時間）；
（７）状態（ホストパスの状態、例えば、正常、障害など）；
を有する。このテーブル２１４に、ホストから取得されたホストパステーブル２４２が有する情報が記述される。
図４Ｂは、管理サーバ１０１が有するストレージパス管理テーブル２１５を示す。
【００６９】
ストレージパス管理テーブル２１５は、検出された全てのストレージパスに関する情報が記述される。このテーブル２１５は、一つのストレージパスにつき、下記の情報要素：
（１）送信側ストレージ番号（送信側ストレージのシリアル番号）；
（２）受信側ストレージ番号（受信側ストレージのシリアル番号）；
（３）回線帯域（ストレージパスが有する物理パスの帯域）；
（４）データ量（ストレージパスが有する物理パスを流れる１秒間当りのデータ量）；
（５）状態（ストレージパスの状態、例えば、正常、障害など）
を有する。このテーブル２１５に、ストレージからホストを通じて取得されたストレージパステーブル２１０が有する情報が記述される。
【００７０】
図４Ｃは、管理サーバ１０１が有するストレージテーブル２１６を示す。
【００７１】
ストレージテーブル２１６は、検出されたストレージに関する情報が記述される。具体的には、例えば、このテーブル２１６には、ストレージ毎に、ノードＩＤ及びストレージ番号（ストレージのシリアル番号）が記述される。
【００７２】
図５Ａは、管理サーバ１０１に作成される配列（Ｗ１）２１２を示す。
【００７３】
配列（Ｗ１）２１２は、どのノード（ホストまたはストレージ）とどのノードが直結されているかを表すマトリクスである。配列（Ｗ１）２１２は、後述するスキャン処理の最中に作成される。
【００７４】
縦軸の番号［ｉ］及び横軸の番号［ｊ］は、ノードに割り振られた番号（本実施形態ではノードＩＤ）である。図５Ａ（及び後述の図５Ｂ）において、ノード［１］〜［４］が、ストレージ１〜４に対応し、ノード［５］〜［６］が、ホスト１〜２に対応する。
【００７５】
以下、ノード［ｉ］からノード［ｊ］へのパス（接続）があるか否かを、「Ｗ１［ｉ］［ｊ］」と表記することがある。Ｗ１［ｉ］［ｊ］＝１は、ノード［ｉ］からノード［ｊ］に直結されていることを意味する。一方、Ｗ１［ｉ］［ｊ］＝∞は、ノード［ｉ］からノード［ｊ］に直結されていないことを意味する。例えば、図５Ａのマトリクスによれば、ノード［ｉ＝２］（ストレージ２）は、ノード［ｉ＝３］（ストレージ３）へも直結されているし、ノード［ｉ＝１］（ストレージ１）へも直結されている。
【００７６】
図５Ｂは、管理サーバ１０１に作成される配列（Ｗ２）２１３を示す。
【００７７】
配列（Ｗ２）２１３は、ノード間の重みを表すマトリクスである。このマトリクスの構成は、配列（Ｗ１）２１２と同様である。つまり、縦軸の番号［ｉ］及び横軸の番号［ｊ］は、ノードに割り振られた番号である。配列（Ｗ２）２１３も、後述するスキャン処理の最中に作成される。
【００７８】
ここで、「重み」とは、データ量÷帯域で算出された値である。以下、ノード［ｉ］からノード［ｊ］へのパスの重みを、「Ｗ２［ｉ］［ｊ］」と表記することがある。Ｗ２［ｉ］［ｊ］の値は、ノード［ｉ］からノード［ｊ］へのパスについてのデータ量÷帯域で算出された値である。具体的には、例えば、Ｗ２［１］［２］は、ストレージ１からストレージ２へのパスの重みであり、その重みは「３／５」である。なぜなら、図４Ｂに示したテーブル２１５の１行目によれば、そのパスについての帯域は「５」でデータ量は「３」であるからである。
【００７９】
なお、Ｗ２［ｉ］［ｊ］＝∞は、ノード［ｉ］からノード［ｊ］へのパスが無いことを意味する。
【００８０】
図６は、管理サーバ１０１が有する経路テーブル２１７を示す。
【００８１】
経路テーブル２１７は、経路に関する情報が記述されている。経路の構成（どのノードからどのパスを通ってどのノードに至るか）は、ホストパス管理テーブル２１４とストレージパス管理テーブル２１５とを基に特定される。このテーブル２１７は、一つの経路につき、下記の情報要素：
（１）エンドノードＩＤ（経路のエンドノードのノードＩＤ）；
（２）スタートノードＩＤ（経路のスタートノードのノードＩＤ）；
（３）経路の距離（ホップ数）；
（４）経路の重み；
（５）ルートリスト（ストレージの経由順序）；
を有する。経路の重みは、経路が有する全てのパスの重み（データ量÷回線）、或いは、経路が有する特定のパスの重みを基に算出される。
【００８２】
このテーブル２１７によれば、以下の事がわかる。
【００８３】
例えば、スタートノードがノード５（ホスト１）でありエンドノード（スキャン対象のストレージ）がノード１（ストレージ１）の場合、エンドノードがローカルストレージであるため、ホップ数が１である。また、ストレージ間をスキャンコマンドが転送される必要が無いので、ルートリストとして有効な情報が設定されない（ｎｕｌｌ）。
【００８４】
また、例えば、スタートノードがノード６（ホスト２）でありエンドノード（スキャン対象のストレージ）がノード３（ストレージ３）の場合、コマンドは、ホスト２からストレージ４に到達し、その後、ストレージ４からストレージ３に到達することになるので（つまり中間ノードの数が１つなので）、ホップ数が２である。
【００８５】
以下、本実施形態で行われる処理を、フローチャートを参照して説明する。
【００８６】
図７は、ホスト追加処理のフローチャートである。
【００８７】
ホスト追加処理は、ホストが追加される場合に実行される処理である。
【００８８】
Ｓ７０１で、統合レプリケーション管理ソフト２１１が、ユーザから、追加する全てのホストに関する情報（例えばＩＰアドレス）の入力を受ける。なお、ユーザからソフト２１１への情報は、管理サーバ１０１が備える入力装置を用いて入力されても良いし、遠隔のユーザ端末から入力されても良い。
【００８９】
追加するホスト毎に、以下のＳ７０２〜Ｓ７０６が行われる。以下、一つのホスト（図７及び図１０の説明で「対象ホスト」と言う）を例に採り、Ｓ７０２〜Ｓ７０６を説明する。
【００９０】
Ｓ７０２で、ソフト２１１が、ユーザから入力された情報を用いて対象ホストへの接続確認を行う。
【００９１】
Ｓ７０３で、ソフト２１１が、その接続確認の結果、接続に成功したか否かを判断する。接続に成功した判断されたならば（Ｓ７０３：ＹＥＳ）、Ｓ７０４が行われる。
【００９２】
Ｓ７０４で、ソフト２１１が、対象ホストからホストパステーブル２１０を取得し、そのテーブル２１０が有する情報を基に、ホストパス管理テーブル２１４を更新する。例えば、テーブル２１０が有する情報がテーブル２１４に追加され、且つ、対象ホストに割り当てられたノードＩＤもテーブル２１４に追加される。
【００９３】
ホストに直結されている全てのローカルストレージについて、Ｓ７０５及びＳ７０６が行われる。
【００９４】
Ｓ７０５で、ソフト２１１が、対象ホストに直結されているローカルストレージのストレージ番号がストレージテーブル２１６に登録済みか否かを判断する。この判断の結果が否定的の場合に限り（Ｓ７０５：ＮＯ）、Ｓ７０６が行われる。
【００９５】
Ｓ７０６で、ソフト２１１が、図１０の処理（ストレージパステーブル収集処理）を実行する。それにより、ストレージテーブル２１６及びストレージパス管理テーブル２１５が更新される。
【００９６】
図８は、構成変更処理のフローチャートである。
【００９７】
構成変更処理は、構成変更（例えば、パスの追加或いは削除）が行われる場合、或いは、各パスの負荷を取得する場合に行われる処理である。
【００９８】
Ｓ８０１で、統合レプリケーション管理ソフト２１１が、ストレージパス管理テーブル２１５、ストレージテーブル２１６及び経路テーブル２１７を削除する。
【００９９】
ホストパス管理テーブル２１４に情報が登録されているホスト毎に、以下のＳ８０２〜Ｓ８０７が行われる。以下、一つのホスト（図８及び図１０の説明で「対象ホスト」と言う）を例に採り、Ｓ８０２〜Ｓ８０７を説明する。
【０１００】
Ｓ８０２で、ソフト２１１が、対象ホストへの接続確認を行う。
【０１０１】
Ｓ８０３で、ソフト２１１が、その接続確認の結果、接続に成功したか否かを判断する。接続に成功した判断されたならば（Ｓ８０３：ＹＥＳ）、Ｓ８０４が行われ、接続に失敗したと判断されたならば（Ｓ８０３：ＮＯ）、Ｓ８０７が行われる。
【０１０２】
Ｓ８０４で、ソフト２１１が、対象ホストからホストパステーブル２１０を取得し、そのテーブル２１０が有する情報を基に、ホストパス管理テーブル２１４を更新する。
【０１０３】
対象ホストに直結されている全てのローカルストレージについて、Ｓ８０５及びＳ８０６が行われる。
【０１０４】
Ｓ８０５で、ソフト２１１が、対象ホストに直結されているローカルストレージのストレージ番号がストレージテーブル２１６に登録済みか否かを判断する。この判断の結果が否定的の場合に限り（Ｓ８０５：ＮＯ）、Ｓ８０６が行われる。
【０１０５】
Ｓ８０６で、ソフト２１１が、図１０の処理（ストレージパステーブル収集処理）を実行する。それにより、ストレージテーブル２１６及びストレージパス管理テーブル２１５が更新される。
【０１０６】
Ｓ８０７で、ソフト２１１が、ホストパス管理テーブル２１４における、対象ホストに対応する「状態」の値を、「エラー」に更新する。
【０１０７】
図９は、ホスト削除処理のフローチャートである。
【０１０８】
Ｓ９０１で、統合レプリケーション管理ソフト２１１が、ユーザから、削除するホストの指定を受ける（例えば削除対象のホストの名称の入力を受ける）。
【０１０９】
Ｓ９０２で、ソフト２１１は、ホストパス管理テーブル２１４及び経路テーブル２１７から、指定されたホストが関わるレコード（行）を削除する。
【０１１０】
図１０は、ストレージパステーブル収集処理のフローチャートを示す。
【０１１１】
この処理では、下記３つの引数：
（１）引数Ｖ（要求先のストレージのストレージ番号）；
（２）引数Ｒ（ルートリスト）；
（３）引数Ｈ（対象ホストのノードＩＤ）；
が使用される。
【０１１２】
Ｓ１００１で、ソフト２１１が、引数Ｈに対応した対象ホストを介して、引数Ｖと引数Ｒとを指定したテーブルリクエストを発行する。それにより、ソフト２１１は、引数Ｖに対応したストレージから、ストレージパステーブル２４２を取得する。ソフト２１１は、そのテーブル２４２が有する情報を基に、ストレージパス管理テーブル２１５を更新する。具体的には、テーブル２４２が有する情報のうち、送信側ストレージ番号、受信側ストレージ番号、回線帯域、データ量及び状態が、ストレージパステーブル２４２に登録される。なお、このＳ１００１では、引数Ｖは、対象ホストに直結されているローカルストレージである。故に、引数Ｒは、このＳ１００１ではｎｕｌｌである（或いは、ローカルストレージのストレージ番号のみを含んでいる）。
【０１１３】
Ｓ１００２で、ソフト２１１が、引数Ｖをストレージテーブル２１６に追加する。
【０１１４】
Ｓ１００３で、ソフト２１１が、引数Ｖに対応したノードＩＤ（エンドノードＩＤ）と、引数Ｒと、引数Ｈ（スタートノードＩＤ）を、経路テーブル２１７に追加する。
【０１１５】
Ｓ１００４で、ソフト２１１が、引数Ｖにストレージが訪問済みであることを表す情報をメモリに記録する。
【０１１６】
取得されたストレージパステーブル２４２に受信側ストレージ番号が登録されている場合、Ｓ１００５〜Ｓ１００８が行われる。
【０１１７】
Ｓ１００５で、ソフト２１１が、引数Ｖを、受信側ストレージ番号に更新する。
【０１１８】
Ｓ１００６で、ソフト２１１が、更新後の引数Ｖに対応したストレージを訪問したか否かを判断する。その判断の結果が否定的の場合に（Ｓ１００６：ＮＯ）、Ｓ１００７が行われる。
【０１１９】
Ｓ１００７で、ソフト２１１が、引数Ｒに更新後の引数Ｖを追加する。これにより、引数Ｒに記述されているストレージ番号のリストの末尾に、更新後の引数Ｖが追加される。
【０１２０】
Ｓ１００８で、ソフト２１１が、Ｓ１００１と同様に、引数Ｈが表す対象ホストを介して、更新後の引数Ｖと更新後の引数Ｒとを指定したテーブルリクエストを送信する。そのテーブルリクエストは、その引数Ｒに従う順序でストレージを経由し、引数Ｖに対応したストレージに届く。そして、そのストレージが有するストレージパステーブル２４２が、引数Ｒに従う順序と逆の順序でストレージを経由し、引数Ｈに対応した対象ホストを介して、管理サーバ１０１に届く。そのストレージパステーブル２４２に受信側ストレージ番号が記述されている場合に、Ｓ１００５〜Ｓ１００８が行われる。なお、このＳ１００８は、Ｓ１００１の処理の再帰呼び出しである。
【０１２１】
このストレージパステーブル収集処理により、対象ホストに直結されているローカルストレージを含んだストレージカスケードにおける全てのストレージから、ローカルストレージに近いストレージから順に、ストレージパステーブル２４２を取得することができる。この処理は、図７によれば、追加された全てのホストについて行われ、図８によれば、ホストパス管理テーブル２１４に登録されている全てのホストについて行われる。すなわち、ソフト２１１は、どのホストからも、そのホストに直結されているローカルストレージを含んだストレージカスケード内の全てのストレージがそれぞれ有するストレージパステーブル２４２を取得する。
【０１２２】
図１２及び図１３は、スキャン処理のフローチャートである。
【０１２３】
Ｓ１２０１で、統合レプリケーション管理ソフト２１１が、ユーザから、下記の３つの情報要素：
（Ｋ１）スキャン対象のストレージのストレージ番号；
（Ｋ２）スキャン対象のＶＯＬの範囲（例えばＶＯＬの番号の範囲）；
（Ｋ３）スキャン結果情報の反映先の構成ファイルのファイル名；
の入力を受ける。
【０１２４】
Ｓ１２０２で、ソフト２１１は、上記（Ｋ２）に属するＶＯＬの情報が他の構成ファイルに格納済みか否かを調べる。Ｓ１２０２の判断の結果が肯定的であれば（Ｓ１２０２：ＹＥＳ）、スキャン処理が終了となる。一方、Ｓ１２０２の判断の結果が否定的であれば（Ｓ１２０２：ＮＯ）、Ｓ１２０３が行われる。
【０１２５】
Ｓ１２０３で、ソフト２１１は、上記（Ｋ１）がホストパス管理テーブル２１４に登録されているか否か、つまり、上記（Ｋ１）に対応したストレージがローカルストレージか否かを判断する。
【０１２６】
Ｓ１２０３の判断の結果が肯定的であれば（Ｓ１２０３：ＹＥＳ）、ローカルスキャンが行われる。すなわち、ソフト２１１は、上記（Ｋ１）のローカルストレージに接続されているホストから、上記（Ｋ１）及び（Ｋ２）を含んだローカルスキャンのコマンドを送信させる（Ｓ１２０８）。これにより、ソフト２１１は、ホストを通じて、上記（Ｋ１）のローカルストレージから、上記（Ｋ２）に属するＶＯＬに関するスキャン結果情報を取得し、その情報を、上記（Ｋ３）の構成ファイルに格納する。ソフト２１１は、経路テーブル２１７を参照して、上記（Ｋ１）のローカルストレージに対応した他のホスト（そのローカルストレージに一又は複数のパスを介して繋がっているホスト）を特定し、特定された他のホストに、上記（Ｋ３）の構成ファイルを転送する（Ｓ１２０９）。
【０１２７】
一方、Ｓ１２０３の判断の結果が否定的であれば（Ｓ１２０３：ＮＯ）、リモートスキャンが行われる。具体的には、Ｓ１２０４〜Ｓ１２０７、Ｓ１２１０、Ｓ１２１１〜Ｓ１２１８の処理が行われる。
【０１２８】
Ｓ１２０４で、ソフト２１１は、図１１に示す配列作成処理を行うことで、図５Ａに示した配列（Ｗ１）２１２と、図５Ｂに示した配列（Ｗ２）２１３を作成する。
【０１２９】
Ｓ１２０５で、ソフト２１１は、図１４及び図１５に示す距離／重み計算処理を行うことで、経路の距離と重みを算出する。
【０１３０】
Ｓ１２０６で、ソフト２１１は、経路テーブル２１７から、上記（Ｋ１）のストレージまでの経路の距離が最も短いホストを選択する。
【０１３１】
Ｓ１２０７で、ソフト２１１は、経路テーブル２１７と、配列（Ｗ１）２１２及び／又は配列（Ｗ２）２１３とを基に、Ｓ１２０６で選択したホストから上記（Ｋ１）のストレージまでの経路に∞のパスがあるか否かを判断する。例えば、その経路に含まれるいずれかのパス（ホストパス又はストレージパス）の状態が「エラー」となっていると、そのパスについてのＷ１［ｉ］［ｊ］及びＷ２［ｉ］［ｊ］の値が∞となる。この判断の結果が肯定的の場合（Ｓ１２０７：ＹＥＳ）、ソフト２１１は、所定のエラー処理を行って（Ｓ１２１０）、このスキャン処理を終了する。一方、この判断の結果が否定的の場合（Ｓ１２０７：ＮＯ）、図１３のＳ１２１１が行われる。
【０１３２】
Ｓ１２１１で、ソフト２１１は、最短距離の経路が複数存在するか否か、すなわち、Ｓ１２０６で選択されたホストが複数個存在するか否かを判断する。この判断の結果が否定的の場合（Ｓ１２１１：ＮＯ）、Ｓ１２１５が行われる。一方、この判断の結果が肯定的の場合（Ｓ１２１１：ＹＥＳ）、Ｓ１２１２が行われる。
【０１３３】
Ｓ１２１２で、ソフト２１１は、Ｓ１２０６で選択された複数のホストのうち、重みが最も小さい経路のスタートノードのホストを選択する。
【０１３４】
Ｓ１２１３で、ソフト２１１は、最短距離且つ重みが最も小さい経路が複数存在するか否か、すなわち、Ｓ１２１２で選択されたホストが複数個存在するか否かを判断する。この判断の結果が否定的の場合（Ｓ１２１３：ＮＯ）、Ｓ１２１５が行われる。一方、この判断の結果が肯定的の場合（Ｓ１２１３：ＹＥＳ）、Ｓ１２１４が行われる。
【０１３５】
Ｓ１２１４で、ソフト２１１は、ホストパス管理テーブル２１４を参照し、Ｓ１２１２で選択された複数のホストのち、ＣＰＵサイクル時間が最も短いホストを選択する。
【０１３６】
Ｓ１２１５で、ソフト２１１は、Ｓ１２０６、Ｓ１２１２又はＳ１２１４で選択された一つのホストに関する情報を、引数Ａとして設定する。以下、引数Ａに対応したホストを「ホストＡ」と言う。
【０１３７】
Ｓ１２１６で、ソフト２１１は、ホストＡに、リモートスキャンを実行させる。具体的には、例えば、ソフト２１１は、ホストＡから上記（Ｋ１）のストレージまでの経路に対応したルートリストと、上記（Ｋ１）及び（Ｋ２）とを含んだリモートスキャンのコマンドを、ホストＡから送信させる。これにより、ソフト２１１は、ホストＡを通じて、上記（Ｋ１）のローカルストレージから、上記（Ｋ２）に属するＶＯＬに関するスキャン結果情報を取得する。ソフト２１１は、その情報を、上記（Ｋ３）の構成ファイルに格納し、その構成ファイルをホストＡに格納する（Ｓ１２１７）。ソフト２１１は、経路テーブル２１７を参照して、上記（Ｋ１）のローカルストレージに対応した他のホスト（そのローカルストレージに一又は複数のパスを介して繋がっているホスト）を特定し、特定された他のホストに、上記（Ｋ３）の構成ファイルを転送する（Ｓ１２１８）。
【０１３８】
図１１は、配列作成処理のフローチャートである。この処理は、図１２のＳ１２０５の処理である。
【０１３９】
Ｓ１１０１で、ソフト２１１は、引数ｎとして、ディスカバリしているホストの数（ホストパス管理テーブル２１４に登録されているホストの数）を設定する。
【０１４０】
Ｓ１１０２で、ソフト２１１は、引数ｍとして、ストレージテーブル２１６に登録されているストレージの数を設定する。
【０１４１】
Ｓ１１０３で、ソフト２１１は、長さｎ＋ｍの配列（Ｗ１）及び（Ｗ２）を作成する。この段階では、配列（Ｗ１）及び（Ｗ２）も、縦軸［ｉ］（ｉは、１から（ｎ＋ｍ）までの整数）と、横軸［ｊ］（ｊは、１から（ｎ＋ｍ）までの整数）とを有するが、ｉとｊが交差する各セルはブランクである。
【０１４２】
Ｓ１１０４〜Ｓ１１０８が、ｉとｊの全ての組合せ（パターン）について行われる。
【０１４３】
Ｓ１１０４で、ソフト２１１は、任意に選択したｉの値が、ホストパス管理テーブル２１４に登録されているいずれかのノードＩＤ（ホストのノードＩＤ）と一致するか否かを判断する。この判断の結果が肯定的の場合、Ｓ１１０７が行われる（この場合、ホスト［ｉ］と言う）。一方、この判断の結果が否定的の場合、Ｓ１１０５が行われる（この場合、ストレージ［ｉ］と言う。
【０１４４】
Ｓ１１０５で、ソフト２１１は、ストレージパス管理テーブル２１５を参照し、送信側ストレージ［ｉ］に対応した受信側ストレージ［ｊ］があり、且つ、送信側ストレージ［ｉ］から受信側ストレージ［ｊ］へのストレージパスの状態が正常か否かを判断する。この判断の結果が肯定的の場合、Ｓ１１０６が行われ、この判断の結果が否定的の場合、Ｓ１１０８が行われる。
【０１４５】
Ｓ１１０６で、ソフト２１１は、Ｗ１［ｉ］［ｊ］＝１を設定する。すなわち、ソフト２１１は、配列（Ｗ１）２１２の、［ｉ］と［ｊ］が交差するセルに、「１」を設定する。また、ソフト２１１は、Ｗ２［ｉ］［ｊ］＝（データ量÷回線帯域）を設定する。すなわち、ソフト２１１は、配列（Ｗ２）２１３の、［ｉ］と［ｊ］が交差するセルに、（データ量÷回線帯域）を設定する。それらのデータ量及び回線帯域は、それぞれ、ノード［ｉ］からノード［ｊ］へのパスに対応した値である。
【０１４６】
Ｓ１１０７で、ソフト２１１は、ホストパス管理テーブル２１４を参照し、ホスト［ｉ］に直結したローカルストレージ［ｊ］があり、且つ、ホスト［ｉ］からローカルストレージ［ｊ］へのホストパスの状態が正常か否かを判断する。この判断の結果が肯定的の場合、Ｓ１１０６が行われ、この判断の結果が否定的の場合、Ｓ１１０８が行われる。
【０１４７】
Ｓ１１０８で、ソフト２１１は、Ｗ１［ｉ］［ｊ］＝∞、及び、Ｗ２［ｉ］［ｊ］＝∞を設定する。
【０１４８】
Ｓ１１０４〜Ｓ１１０８が、ｉとｊの全ての組合せについて行われることで、図５Ａに示した配列（Ｗ１）２１２、及び、図５Ｂに示した配列（Ｗ２）２１３が完成する。
【０１４９】
図１４及び図１５は、距離／重み計算処理のフローチャートである。この処理は、図１２のＳ１２０５の処理である。
【０１５０】
フローチャートを用いて距離／重み計算処理を説明する前に、本実施形態に係る距離／重み計算処理の概要を説明する。
【０１５１】
本実施形態に係るシステム構成（ホストとストレージを含んだシステムの構成）は、ノード（ストレージ、ホスト）を頂点と考えると、非連結の有効グラフと考えることができる。
【０１５２】
各頂点（vertex）は、フィールド「distance」、「load」及び「status」を持つ。distanceは、引数で指定した頂点とこの頂点との距離を表す。loadは、引数で指定した頂点とこの頂点の間の経路の重みを表す。statusは、この頂点を訪問したかどうかを表す。
【０１５３】
全ての頂点について、distance及びloadのそれぞれの初期値は、「∞」とされ、statusの初期値は、unvisited（未訪問）とされる。ただし、引数で指定された頂点のdistanceとloadは、自分自身であるため０（ゼロ）に初期化される。
【０１５４】
この処理では、unvisitedかつ最少のdistanceを持つ頂点pが選択され、その頂点から接続関係にある全ての頂点のdistanceとloadが計算される。図１４及び図１５に示す（Ｂ）のループで各頂点が頂点pとなるようにすることで、全ての頂点のdistance及びloadが計算される。
【０１５５】
図１８に示すシステム構成の例において、例えば、ホスト２１からスキャン対象ストレージ２までの経路の距離は、２つのパスＡ及びＢを有するため、「２」となる（以下、その経路を「経路ＡＢ」と表現する）。一方、ホスト２２からスキャン対象ストレージ２までの経路の距離も、２つのパスＤ及びＣを有するため、「２」となる（以下、その経路を「経路ＤＣ」と表現する）。
【０１５６】
経路の重みの定義の仕方としては、複数の方法、例えば次の２種類がある。図１４及び図１５のフローチャートは、下記＜方法１＞を表現している。
【０１５７】
＜方法１＞
経路上の各パスの重み（データ量÷回線）の最大値が採用される。この方法によれば、経路ＡＢの重みは、パスＡの重み「１／２」とパスＢの重み「１／２」のうちの最大値（ｍａｘ（１／２，１／２））＝１／２となる。一方、経路ＤＣの重みは、パスＤの重み「０／２」とパスＣの重み「２／２」のうちの最大値（ｍａｘ（０／２，２／２））＝２／２となる。
【０１５８】
＜方法２＞
経路上の各パスの重み（データ量÷回線）の平均が採用される。この方法によれば、経路ＡＢの重みは、パスＡの重み「１／２」とパスＢの重み「１／２」の平均（（１／２＋１／２）÷２）＝１／２となる。一方、経路ＤＣの重みは、パスＤの重み「０／２」とパスＣの重み「２／２」の平均（（０／２＋２／２）÷２）＝１／２となる。
【０１５９】
以下、図１４及び図１５を参照して、距離／重み計算処理を詳細に説明する。
【０１６０】
Ｓ１４０１で、ソフト２１１が、下記の設定：
（１）引数ｎ＝ディスカバリしているホストの数（ホストパス管理テーブル２１４に登録されているホストの数）；
（２）引数ｍ＝ストレージテーブル２１６に登録されているストレージの数；
（３）（ｎ＋ｍ）×（ｎ＋ｍ）の配列（vertex）；
を行う。ここでの（ｎ＋ｍ）は、フィールド「distance」、「load」及び「status」を持つオブジェクトの長さ（数）である。
【０１６１】
Ｓ１４０２が、ｘ＝１から（ｎ＋ｍ）までの整数のそれぞれについて行われる。すなわち、ソフト２１１は、下記の設定：
（１）vertex(x).distance＝∞；
（２）vertex(x).load＝∞；
（３）vertex(x).state＝unvisited；
を行う。
【０１６２】
Ｓ１４０３で、ソフト２１１は、vertex(x).distanceを０（ゼロ）に更新し、同様に、vertex(x).loadを０（ゼロ）に更新する。
【０１６３】
配列（Ｗ１）２１２及び配列（Ｗ２）２１３の値［ｉ］として、１から（ｎ＋ｍ）までの整数があるが、各整数について、Ｓ１４０４〜Ｓ１４０９が行われる。
【０１６４】
Ｓ１４０４で、ソフト２１１は、「min＝∞」を設定する。そして、ソフト２１１は、ｘ＝１から（ｎ＋ｍ）までの整数のそれぞれについて、Ｓ１４０５及びＳ１４０６を行う。すなわち、Ｓ１４０５で、ソフト２１１は、「vertex(x).state＝unvisited」且つ「vertex(x).distance＜min」か否かを判断する。この判断の結果が肯定的であれば（Ｓ１４０５：ＹＥＳ）、ソフト２１１は、Ｓ１４０６で、「ｐ＝ｘ」且つ「min＝distance」を設定する。つまり、変数ｐの値として、現在のｘの値が設定され、変数minとして、現在のdistanceの値が設定される。
【０１６５】
Ｓ１４０７で、ソフト２１１は、「min＝∞」か否かを判断する。この判断の結果が肯定的であれば（Ｓ１４０７：ＹＥＳ）、Ｓ１４１０が行われ、この判断の結果が否定的であれば（Ｓ１４０７：ＮＯ）、Ｓ１４０８が行われる。
【０１６６】
Ｓ１４０８で、ソフト２１１は、vertex(x).stateの値を「visited」に更新する。
【０１６７】
ソフト２１１は、ｘ＝１から（ｎ＋ｍ）までの整数のそれぞれについて、Ｓ１４０９を行う。すなわち、Ｓ１４０９で、ソフト２１１は、下記の設定：
（１）vertex(x).distance＝min
(vertex(x).distance, vertex(p).distance＋W1[x][p])；
（２）vertex(x).load＝max
(vertex(p).load, W2[x][p])；
を行う。なお、これは、上記＜方法１＞及び＜方法２＞のうちの＜方法１＞についての説明であるが、＜方法２＞が採用された場合、vertex(x).loadは、「vertex(x).load＝min (vertex(x).load, vertex(p).load＋W2[x][p])」である。
【０１６８】
以上のＳ１４０４〜Ｓ１４０９の処理が、ｉ＝１から（ｎ＋ｍ）までのそれぞれの整数について行われる。
【０１６９】
その後、ソフト２１１は、ｘ＝１から（ｎ＋ｍ）までの整数のそれぞれについて、Ｓ１４１０及びＳ１４１１を行う。すなわち、Ｓ１４１０で、ソフト２１１は、vertex(x)の値がホストのノードＩＤと一致するか否かを判断する。この判断の結果が否定的であれば（Ｓ１４１０：ＮＯ）、ソフト２１１は、Ｓ１４１１で、ｘ、start、vertex(x).distance、及びvertex(x).loadを、経路テーブル２１７に登録する。
【０１７０】
以上、上述した実施形態によれば、スキャン処理の前に、管理サーバ１０１が、ホスト１及び２とストレージカスケード（ストレージ１〜４）とを含んだ計算機システムに存在する全ての経路の構成を把握する（具体的には、経路テーブル２１７が構築される）。そして、スキャン処理では、経路テーブル２１７を参照して、管理サーバ１０１が、スキャン対象のリモートストレージをエンドノードとする複数の経路のうちの最適な経路のスタートノードのホストを選択する。最適な経路とは、前述したように、例えば、最短経路及び負荷最小経路である。これにより、リモートスキャンのコマンドを発行するのに最適なホスト計算機を選択できる確率が高まる。
【０１７１】
以上、本発明の一つの実施形態を説明したが、本発明は、この実施形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、ホスト、ストレージ及びストレージカスケードの数は、上記例に限られない。また、「直列に接続された複数のストレージシステム」とは、必ずしも一列のストレージカスケードである必要は無く、例えば図１９に示すように、途中で枝分かれすることで、複数のストレージカスケード（例えば、ストレージ１１、１２及び１５のカスケードと、ストレージ１１、１２、１３及び１４のカスケードと、ストレージ１５、１２、１３及び１４のカスケード）が含まれても良い。
【符号の説明】
【０１７２】
１０１…管理サーバ
【図１】
2010262551.tif 000003
【図２】
2010262551.tif 000004
【図３】
2010262551.tif 000005
【図４】
2010262551.tif 000006
【図５】
2010262551.tif 000007
【図６】
2010262551.tif 000008
【図７】
2010262551.tif 000009
【図８】
2010262551.tif 000010
【図９】
2010262551.tif 000011
【図１０】
2010262551.tif 000012
【図１１】
2010262551.tif 000013
【図１２】
2010262551.tif 000014
【図１３】
2010262551.tif 000015
【図１４】
2010262551.tif 000016
【図１５】
2010262551.tif 000017
【図１６】
2010262551.tif 000018
【図１７】
2010262551.tif 000019
【図１８】
2010262551.tif 000020
【図１９】
2010262551.tif 000021