(57)【特許請求の範囲】
【請求項１】
計算機と、ネットワーク構成が異なる複数のネットワークと接続される複数のＩ／Ｏデバイスと、前記ネットワークと通信できるように、前記Ｉ／Ｏデバイスを前記計算機に割当てるＩ／Ｏスイッチと、前記計算機に割当てられるＩ／Ｏデバイスを管理する管理計算機とを備える計算機システムにおけるＩ／Ｏデバイス管理方法であって、
前記管理計算機は、第１のプロセッサと、前記第１のプロセッサに接続される第１のメモリと、前記第１のプロセッサに接続される第１のネットワークインタフェースとを備え、
前記計算機は、第２のプロセッサと、前記第２のプロセッサに接続される第２のメモリと、前記第２のプロセッサに接続される第２のネットワークインタフェースとを備え、
前記計算機に複数のＩ／Ｏデバイスが割当てられており、
前記方法は、
前記管理計算機が、前記計算機に割当てられる前記Ｉ／ＯデバイスのＩ／Ｏデバイス構成情報、及び前記計算機に割当てられる前記Ｉ／Ｏデバイスが接続する前記ネットワークのネットワーク構成情報を取得する第１のステップと、
前記管理計算機が、前記Ｉ／Ｏデバイスを介して送受信されるデータの種類であるＩ／Ｏ種類毎に、前記計算機に割当てられるＩ／Ｏデバイスを介して送受信されるデータ量を表す流量を取得する第２のステップと、
前記管理計算機が、前記Ｉ／Ｏ種類毎に取得された流量、前記取得されたＩ／Ｏデバイス構成情報及び前記取得されたネットワーク構成情報に基づいて、前記計算機に対する割当てを変更する前記Ｉ／Ｏデバイスを決定する第３のステップと、
前記管理計算機が、前記Ｉ／Ｏスイッチに、前記決定されたＩ／Ｏデバイスの割当てを変更するための割当変更命令を発行する第４のステップと、
前記計算機が、当該計算機から送信されるデータを取得する第５のステップと、
前記計算機が、前記取得されたデータから、当該データのＩ／Ｏ種類及び前記データの送信先を抽出する第６のステップと、
前記計算機が、前記抽出されたデータのＩ／Ｏ種類及び前記抽出されたデータの送信先に基づいて、当該計算機に割当てられている複数の前記Ｉ／Ｏデバイスの中から、前記データを送信するＩ／Ｏデバイスを決定する第７のステップと、
前記計算機が、前記決定されたＩ／Ｏデバイスから前記取得されたデータを送信する第８のステップと、
を含むことを特徴とするＩ／Ｏデバイス管理方法。
【請求項２】
請求項１に記載のＩ／Ｏデバイス管理方法であって、
前記第２のステップは、前記Ｉ／Ｏデバイスにおいて消費される帯域を示す消費帯域量と、前記Ｉ／Ｏデバイスにおける使用可能な帯域を示す使用可能帯域量とを取得するステップを含み、
前記第３のステップは、
前記取得された消費帯域量及び前記取得された使用可能帯域量に基づいて、前記計算機に割当てられるＩ／Ｏデバイスの帯域が不足しているか否かを判定するステップと、
前記計算機に割当てられるＩ／Ｏデバイスの帯域が不足していると判定された場合に、前記計算機に新たに割当てる前記Ｉ／Ｏデバイスを決定するステップと、を含み、
前記第４のステップは、前記決定されたＩ／Ｏデバイスを前記計算機に割当てるための追加命令を発行するステップを含むことを特徴とするＩ／Ｏデバイス管理方法。
【請求項３】
請求項１に記載のＩ／Ｏデバイス管理方法であって、
前記第２のステップは、前記Ｉ／Ｏデバイスにおいて消費される帯域を示す消費帯域量と、前記Ｉ／Ｏデバイスにおける使用可能な帯域を示す使用可能帯域量とを取得するステップを含み、
前記第３のステップは、
前記取得された消費帯域量及び前記取得された使用可能帯域量に基づいて、前記計算機に割当てられるＩ／Ｏデバイスに余剰帯域があるか否かを判定するステップと、
前記計算機に割当てられるＩ／Ｏデバイスに余剰帯域があると判定された場合に、前記余剰帯域があるＩ／Ｏデバイスの割当てを解除できるか否かを判定するステップと、を含み、
前記第４のステップは、前記余剰帯域があるＩ／Ｏデバイスの割当てを解除できると判定された場合に、当該Ｉ／Ｏデバイスの割当てを解除するための解除命令を発行するステップを含むことを特徴とするＩ／Ｏデバイス管理方法。
【請求項４】
請求項１に記載のＩ／Ｏデバイス管理方法であって、
前記第２のステップは、前記Ｉ／Ｏデバイスにおいて消費されるＩ／Ｏ種類毎の帯域を示す消費帯域量と、前記Ｉ／Ｏデバイスにおける使用可能な帯域を示す使用可能帯域量とを取得するステップを含み、
前記第３のステップは、前記取得されたＩ／Ｏ種類毎の消費帯域量、及び前記取得された使用可能帯域量に基づいて、前記計算機に割当てられるＩ／Ｏデバイスのなかに、少なくともいずれかのＩ／Ｏ種類において帯域が不足している対象Ｉ／Ｏデバイスが存在するか否かを判定するステップと、
前記対象Ｉ／Ｏデバイスが存在すると判定された場合に、前記対象Ｉ／Ｏデバイスに接続されるネットワークへデータを送受信可能な前記Ｉ／Ｏデバイスを検索するステップと、
前記対象Ｉ／Ｏデバイスから前記検索されたＩ／Ｏデバイスに前記計算機に対する割当てを変更するための割当変更命令を発行するステップと、を含むことを特徴とするＩ／Ｏデバイス管理方法。
【請求項５】
請求項４に記載のＩ／Ｏデバイス管理方法であって、
前記検索されたＩ／Ｏデバイスは、前記対象Ｉ／Ｏデバイスと同一の前記Ｉ／Ｏ種類のデータの送受信が可能であり、かつ、前記対象Ｉ／Ｏデバイスと接続される前記ネットワークのネットワーク構成が同一であることを特徴とするＩ／Ｏデバイス管理方法。
【請求項６】
計算機と、ネットワーク構成が異なる複数のネットワークと接続される複数のＩ／Ｏデバイスと、前記ネットワークと通信できるように、前記Ｉ／Ｏデバイスを計算機に割当てるＩ／Ｏスイッチと、前記計算機に割当てられるＩ／Ｏデバイスを管理する管理計算機と、を備える計算機システムであって、
前記管理計算機は、第１のプロセッサと、前記第１のプロセッサに接続される第１のメモリと、前記第１のプロセッサに接続される第１のネットワークインタフェースとを備え、
前記計算機は、第２のプロセッサと、前記第２のプロセッサに接続される第２のメモリと、前記第２のプロセッサに接続される第２のネットワークインタフェースとを備え、
前記計算機に複数のＩ／Ｏデバイスが割当てられており、
前記管理計算機は、
前記計算機に割当てられる前記Ｉ／ＯデバイスのＩ／Ｏデバイス構成情報、及び前記計算機に割当てられる前記Ｉ／Ｏデバイスが接続する前記ネットワークのネットワーク構成情報を取得し、
前記Ｉ／Ｏデバイスを介して送受信されるデータの種類であるＩ／Ｏ種類毎に、前記計算機に割当てられるＩ／Ｏデバイスを介して送受信されるデータ量を表す流量を取得し、
前記Ｉ／Ｏ種類毎に取得された流量、前記取得されたＩ／Ｏデバイス構成情報及び前記取得されたネットワーク構成情報に基づいて、前記計算機に対する割当てを変更する前記Ｉ／Ｏデバイスを決定し、
前記Ｉ／Ｏスイッチに、前記決定されたＩ／Ｏデバイスの割当てを変更するための割当変更命令を発行し、
前記計算機は、
当該計算機から送信されるデータを取得し、
前記取得されたデータから、当該データのＩ／Ｏ種類及び前記データの送信先を抽出し、
前記抽出されたデータのＩ／Ｏ種類及び前記抽出されたデータの送信先に基づいて、当該計算機に割当てられている複数の前記Ｉ／Ｏデバイスの中から、前記データを送信するＩ／Ｏデバイスを決定し、
前記決定されたＩ／Ｏデバイスから前記取得されたデータを送信することを特徴とする計算機システム。
【請求項７】
請求項６に記載の計算システムであって、
前記Ｉ／Ｏ種類毎に取得される流量は、前記Ｉ／Ｏデバイスにおいて消費される帯域を示す消費帯域量と、前記Ｉ／Ｏデバイスにおける使用可能な帯域を示す使用可能帯域量とを含み、
前記管理計算機は、
前記計算機に対する割当てを変更する前記Ｉ／Ｏデバイスを決定する場合に、前記取得された消費帯域量及び前記取得された使用可能帯域量に基づいて、前記計算機に割当てられるＩ／Ｏデバイスの帯域が不足しているか否かを判定し、
前記計算機に割当てられるＩ／Ｏデバイスの帯域が不足していると判定された場合に、前記計算機に新たに割当てる前記Ｉ／Ｏデバイスを決定し、
前記決定されたＩ／Ｏデバイスを前記計算機に割当てるための追加命令を、前記割当変更命令として発行することを特徴とする計算機システム。
【請求項８】
請求項６に記載の計算機システムであって、
前記Ｉ／Ｏ種類毎に取得される流量は、前記Ｉ／Ｏデバイスにおいて消費される帯域を示す消費帯域量と、前記Ｉ／Ｏデバイスにおける使用可能な帯域を示す使用可能帯域量とを含み、
前記管理計算機は、
前記計算機に対する割当てを変更する前記Ｉ／Ｏデバイスを決定する場合に、前記取得された消費帯域量及び前記取得された使用可能帯域量に基づいて、前記計算機に割当てられるＩ／Ｏデバイスに余剰帯域があるか否かを判定し、
前記計算機に割当てられるＩ／Ｏデバイスに余剰帯域があると判定された場合に、前記余剰帯域があるＩ／Ｏデバイスの割当てを解除できるか否かを判定し、
前記余剰帯域があるＩ／Ｏデバイスの割当てを解除できると判定された場合に、当該Ｉ／Ｏデバイスの割当てを解除するための解除命令を、前記割当変更命令として発行することを特徴とする計算機システム。
【請求項９】
請求項６に記載の計算機システムであって、
前記Ｉ／Ｏ種類毎に取得される流量は、前記Ｉ／Ｏデバイスにおいて消費されるＩ／Ｏ種類毎の帯域を示す消費帯域量と、前記Ｉ／Ｏデバイスにおける使用可能な帯域を示す使用可能帯域量とを取得するステップを含み、
前記管理計算機は、
前記取得されたＩ／Ｏ種類毎の消費帯域量、及び前記取得された使用可能帯域量に基づいて、前記計算機に割当てられるＩ／Ｏデバイスのなかに、少なくともいずれかのＩ／Ｏ種類において帯域が不足している対象Ｉ／Ｏデバイスが存在するか否かを判定し、
前記対象Ｉ／Ｏデバイスが存在すると判定された場合に、前記対象Ｉ／Ｏデバイスに接続されるネットワークへデータを送受信可能な前記Ｉ／Ｏデバイスを検索し、
前記対象Ｉ／Ｏデバイスから前記検索されたＩ／Ｏデバイスに前記計算機に対する割当てを変更するための割当変更命令を、前記割当変更命令として発行することを特徴とする計算機システム。
【請求項１０】
請求項９に記載の計算機システムであって、
前記検索されたＩ／Ｏデバイスは、前記対象Ｉ／Ｏデバイスと同一の前記Ｉ／Ｏ種類のデータの送受信が可能であり、かつ、前記対象Ｉ／Ｏデバイスと接続される前記ネットワークのネットワーク構成が同一であることを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はネットワーク通信を行う計算機システムに関し、特に、種類の異なる複数のネットワーク通信を介してクライアントシステムと接続される環境において、Ｉ／Ｏ転送効率を高めるための技術に関する。
【背景技術】
【０００２】
従来の処理分散システムでは、Ｉ／Ｏ転送効率を高めるために、処理プログラム単位で使用するネットワークパスを決定することによって、負荷分散を行っている。また、統計解析情報として過去の処理結果を示す情報を編集及び解析し、目標の処理性能を実現するために使用するネットワークパス数を決定することによって、処理分散システムの処理性能を向上させている（例えば、特開２０００−２００２５３号公報参照）。
特許文献１では、複数のサーバで管理される分散データベースへのアクセスの負荷を分散するデータベース負荷分散処理システムにおいて、通信資源の障害の有無、負荷及び稼動状態などの情報を用いて、特定の通信資源及びサーバ資源に対する負荷集中によって発生するトランザクションのスループットの低下を防止する処理方式が記載されている。これによって、トランザクション処理の効率を高めることが可能となる。
【発明の概要】
【０００３】
転送資源（以下、Ｉ／Ｏデバイスという）を複数備える計算機システムでは、Ｉ／Ｏデバイスの負荷、障害有無及び稼動状態などの情報のほかに、Ｉ／ＯデバイスがＳＡＮ／ＬＡＮなどの接続可能なネットワークの種類、及びＩ／Ｏデバイスに接続されるネットワークトポロジを考慮して、使用するＩ／Ｏデバイスを選択する必要がある。すなわち、ＳＡＮネットワークを使用するＨＢＡデバイス、又はＬＡＮを使用するＮＩＣによって、アクセス可能なネットワーク経路及びターゲットシステムに制限がある。
したがって、接続可能なネットワークの種類が同一であるＩ／Ｏデバイスであってもアクセスできない場合がある。
また、従来技術のように接続可能なネットワークの種類毎にネットワークパスを複数用意しておき、当該ネットワークパスに対応するＩ／Ｏデバイスにおける負荷情報を用いて、利用するネットワークパスを変更しても、Ｉ／Ｏデバイスにかかる負荷に偏りが発生するためＩ／Ｏ転送効率が低下してしまう。
例えば、仮想化技術を用いて、複数の計算機システムがＩ／Ｏ構成など物理的なＩ／Ｏデバイスを共有で使用する場合、計算機システムは、当該計算機システムが管理するＩ／Ｏデバイスに対する制御は可能でも、利用するネットワークパスを制御できないためにＩ／Ｏデバイスにかかる負荷に偏りが発生する。
また、ＳＡＮ及びＬＡＮのネットワークを統合する技術であるＦＣｏＥ（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）プロトコルを用いて、ＳＡＮとＬＡＮとが統合される計算機システムには以下のような問題が発生する。
ＦＣｏＥプロトコルを用いた計算機システムにおいて、Ｉ／Ｏデバイス全体にかかる負荷に基づいてネットワーク経路を変更しても、一つのＩ／Ｏデバイスにかかる負荷は接続可能なネットワークの種類毎に異なるため、接続可能なネットワークの種類毎の負荷集中が解決できない。すなわち、Ｉ／Ｏデバイス全体としては負荷がかかっていない場合でも、ＳＡＮ又はＬＡＮのいずれか一方のネットワークについて負荷が集中している場合がある。
さらに、Ｉ／Ｏデバイスが使用可能な全帯域を超えるアクセスが発生した場合、使用するパスを変更してもＩ／Ｏ転送効率が低下してしまい、Ｉ／Ｏデバイスが使用可能な帯域未満にアクセスが減少するまでＩ／Ｏ転送効率が低下する。
本発明の目的は前述した問題を解決することを目的とする。すなわち、計算機システムにおいて、Ｉ／Ｏデバイスの流量を接続可能なネットワークの種類毎に制御することによって特定のＩ／Ｏデバイスに負荷が集中することを防止し、Ｉ／Ｏ処理時間を短縮することが可能な技術を提供することである。
また、本発明の他の目的は、計算機システムが複数のＩ／Ｏデバイスの使用帯域を管理し、接続可能なネットワークの種類毎にＩ／Ｏデバイスにおける帯域不足によって発生するＩ／Ｏ転送効率の低下を防止することが可能な技術を提供することである。
本発明の代表的な一例を示せば以下の通りである。すなわち、計算機と、ネットワーク構成が異なる複数のネットワークと接続される複数のＩ／Ｏデバイスと、前記ネットワークと通信できるように、前記Ｉ／Ｏデバイスを前記計算機に割当てるＩ／Ｏスイッチと、前記計算機に割当てられるＩ／Ｏデバイスを管理する管理計算機とを備える計算機システムにおけるＩ／Ｏデバイス管理方法であって、前記管理計算機は、第１のプロセッサと、前記第１のプロセッサに接続される第１のメモリと、前記第１のプロセッサに接続される第１のネットワークインタフェースとを備え、前記計算機は、第２のプロセッサと、前記第２のプロセッサに接続される第２のメモリと、前記第２のプロセッサに接続される第２のネットワークインタフェースとを備え、前記計算機に複数のＩ／Ｏデバイスが割当てられており、前記方法は、前記管理計算機が、前記計算機に割当てられる前記Ｉ／ＯデバイスのＩ／Ｏデバイス構成情報、及び前記計算機に割当てられる前記Ｉ／Ｏデバイスが接続する前記ネットワークのネットワーク構成情報を取得する第１のステップと、前記管理計算機が、前記Ｉ／Ｏデバイスを介して送受信されるデータの種類であるＩ／Ｏ種類毎に、前記計算機に割当てられるＩ／Ｏデバイスを介して送受信されるデータ量を表す流量を取得する第２のステップと、前記管理計算機が、前記Ｉ／Ｏ種類毎に取得された流量、前記取得されたＩ／Ｏデバイス構成情報及び前記取得されたネットワーク構成情報に基づいて、前記計算機に対する割当てを変更する前記Ｉ／Ｏデバイスを決定する第３のステップと、前記管理計算機が、前記Ｉ／Ｏスイッチに、前記決定されたＩ／Ｏデバイスの割当てを変更するための割当変更命令を発行する第４のステップと、前記計算機が、当該計算機から送信されるデータを取得する第５のステップと、前記計算機が、前記取得されたデータから、当該データのＩ／Ｏ種類及び前記データの送信先を抽出する第６のステップと、前記計算機が、前記抽出されたデータのＩ／Ｏ種類及び前記抽出されたデータの送信先に基づいて、当該計算機に割当てられている複数の前記Ｉ／Ｏデバイスの中から、前記データを送信するＩ／Ｏデバイスを決定する第７のステップと、前記計算機が、前記決定されたＩ／Ｏデバイスから前記取得されたデータを送信する第８のステップと、を含むことを特徴とする。
本発明によれば、Ｉ／ＯデバイスにおけるＩ／Ｏ種類及びネットワーク構成を考慮したＩ／Ｏデバイスの割当てが可能となるためＩ／Ｏ転送効率を高めることができる。
【図面の簡単な説明】
【０００４】
図１は、本発明の実施形態の計算機システムの構成例を説明するブロック図である。
図２は、本発明の実形態の管理サーバの構成例を説明するブロック図である。
図３は、本発明の実施形態のサーバの構成例を説明するブロック図である。
図４は、本発明の実施形態のＩ／Ｏスイッチの構成例を説明するブロック図である。
図５は、本発明の実施形態のＳＶＰの構成例を説明するブロック図である。
図６は、本発明の実施形態におけるＩ／Ｏデバイスの割当ての変更例を示す説明図である。
図７は、本発明の実施形態におけるＩ／Ｏデバイスの割当ての変更例を示す説明図である。
図８は、本発明の実施形態の管理サーバが備えるＩ／Ｏスイッチ管理テーブルの一例を示す説明図である。
図９は、本発明の実施形態の管理サーバが備えるサーバ管理テーブルを示す説明図である。
図１０は、本発明の実施形態の管理サーバが備えるサーバＩ／Ｏ構成情報テーブルを示す説明図である。
図１１は、本発明の実施形態の管理サーバが備えるデバイスプール管理テーブルを示す説明図である。
図１２は、本発明の実施形態のＩ／Ｏスイッチが備えるポート管理テーブルを示す説明図である。
図１３は、本発明の実施形態のＩ／Ｏスイッチにおける物理ポートと論理ポートとの割当状態の一例を示す説明図である。
図１４は、本発明の実施形態の管理サーバが備えるＩ／Ｏサービス管理部によって実行される処理を説明するフローチャートである。
図１５Ａは、本発明の実施形態の管理サーバが備えるＩ／Ｏスイッチ管理部によって実行される処理を説明するフローチャートである。
図１５Ｂは、本発明の実施形態の管理サーバが備えるＩ／Ｏスイッチ管理部によって実行される処理を説明するフローチャートである。
図１６は、本発明の実施形態の管理サーバが備えるＩ／Ｏスイッチ割当判定部によって実行される処理の詳細を説明するフローチャートである。
図１７は、本発明の実施形態の管理サーバが備えるＩ／Ｏスイッチ割当部によって実行される処理の詳細を説明するフローチャートである。
図１８は、本発明の実施形態のＳＶＰが備えるＩ／Ｏスイッチ割当制御部によって実行される処理の詳細を説明するフローチャートである。
図１９は、本発明の実施形態のＩ／Ｏスイッチが備えるクロスバススイッチ制御部によって実行される処理の詳細を説明するフローチャートである。
図２０は、本発明の実施形態の管理サーバが備えるＩ／Ｏデバイス管理部によって実行される処理の詳細を説明するフローチャートである。
図２１は、本発明の実施形態の管理サーバが備えるＩ／Ｏデバイス流量判定部によって実行される処理を説明するフローチャートである。
図２２は、本発明の実施形態の管理サーバが備えるＩ／Ｏデバイス流量制御部によって実行される処理を説明するフローチャートである。
図２３は、本発明の実施形態のサーバが備えるＩ／Ｏ解析部によって実行される処理を説明するフローチャートである。
図２４は、本発明の実施形態のサーバが備えるＩ／Ｏ制御部によって実行される処理を説明するフローチャートである。
図２５は、本発明の実施形態の管理サーバが備えるＩ／Ｏデバイス性能取得部によって実行される処理を説明するフローチャートである。
【発明を実施するための形態】
【０００５】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本発明の実施形態の計算機システムの構成例を説明するブロック図である。
計算機システムは、管理サーバ１０１、ネットワークスイッチ１２１、サーバ１１５、ＳＶＰ１１９、Ｉ／Ｏスイッチ１２０、ソケット１１６、Ｉ／Ｏデバイス１１７、ストレージシステム１６０及びネットワークスイッチ１７０から構成される。
管理サーバ１０１は、サーバ１１５、Ｉ／Ｏスイッチ１２０及びＩ／Ｏデバイス１１７等を管理する。なお、管理サーバ１０１については、図２を用いて後述する。
サーバ１１５は、所定の処理を実行する計算機である。なお、サーバ１１５については、図３を用いて後述する。
図１に示すように、サーバ１１５は、ネットワークスイッチ１２１を介して管理サーバ１０１と接続される。また、サーバ１１５はＩ／Ｏスイッチ１２０と接続され、Ｉ／Ｏスイッチ１２０のポートと接続されるソケット１１６を介してＩ／Ｏデバイス１１７と接続される。
Ｉ／Ｏスイッチ１２０は、サーバ１１５とＩ／Ｏデバイス１１７とを接続する。また、Ｉ／Ｏスイッチ１２０は、サーバ１１５とＩ／Ｏデバイス１１７との間の論理的な接続（論理パス）を管理する。論理パスが設定されることによって、サーバ１１５とＩ／Ｏデバイス１１７とが通信可能な状態となる。以下、論理パスを設定することを、サーバ１１５にＩ／Ｏデバイス１１７を割当てると記載する。
なお、Ｉ／Ｏスイッチ１２０については、図４を用いて後述する。
Ｉ／Ｏデバイス１１７は、サーバ１１５とストレージシステム１６０又はネットワークスイッチ１７０とを接続するためのデバイスである。
Ｉ／Ｏデバイス１１７は、サーバ１１５から出力されるデータ、及びサーバ１１５に入力されるデータを入出力するための装置である。Ｉ／Ｏデバイス１１７は、ＬＡＮ等に接続するためのネットワークインタフェースカード（ＮＩＣ）、ＳＡＮ等に接続するためのホストバスアダプタ（ＨＢＡ）、及びＦＣｏＥ（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）プロトコルを備えるＣＮＡ（Ｃｏｎｖｅｒｇｅｄ  Ｎｅｔｗｏｒｋ  Ａｄａｐｔｅｒ）などが考えられる。本実施形態では、Ｉ／Ｏデバイス１１７は、通信で使用するプロトコルに応じたアダプタを備えていればよく、各Ｉ／Ｏデバイス１１７が備えるアダプタが異なっていてもよい。
また、Ｉ／Ｏデバイス１１７がＣＮＡデバイスを備えることによって、ケーブル接続の削減と簡素化、ホストごとに必要なアダプタ数の減少、及び電力の削減等が期待できる。
ＳＶＰ１１９は、各サーバ１１５が備えるハードウェアの状態監視、及び電源制御を行う。なお、ＳＶＰ１１９については、図５を用いて後述する。
図１に示すように、ＳＶＰ１１９は、ネットワークスイッチ１２１を介して管理サーバ１０１と接続される。
ネットワークスイッチ１２１及びネットワークスイッチ１７０は、ＬＡＮ等のネットワークと接続する。
ストレージシステム１６０は、サーバ１１５が利用するデータを格納する。ストレージシステム１６０は、複数のディスク装置（図示省略）を備える。ストレージシステム１６０は、複数のディスク装置を用いて、一以上の記憶領域を生成し、当該記憶領域を各サーバ１１５に割当てることができる。なお、ストレージシステム１６０は、記憶媒体として、ディスク装置以外にＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等を備えていてもよい。
また、本実施形態では、サーバ１１５に割当てられていないＩ／Ｏデバイス１１７からＩ／Ｏデバイスプール（図示省略）が構成される。
図２は、本発明の実形態の管理サーバ１０１の構成例を説明するブロック図である。
管理サーバ１０１は、プロセッサ２０２、メモリ２０１、ディスクインタフェース２０３及びネットワークインタフェース２０４を備える。
プロセッサ２０２は、メモリ２０１に格納されるプログラムを実行する。
メモリ２０１は、プロセッサ２０２によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。
メモリ２０１は、Ｉ／Ｏ管理部１０２、Ｉ／Ｏスイッチ管理テーブル１１１、サーバ管理テーブル１１２、サーバＩ／Ｏ構成情報テーブル１１３及びデバイスプール管理テーブル１１４を格納する。
Ｉ／Ｏ管理部１０２は、Ｉ／Ｏデバイス１１７を管理及び制御する。Ｉ／Ｏ管理部１０２は、Ｉ／Ｏサービス管理部１０３、Ｉ／Ｏスイッチ管理部１０４、Ｉ／Ｏデバイス管理部１０５、Ｉ／Ｏスイッチ割当判定部１０６、Ｉ／Ｏデバイス流量判定部１０７、Ｉ／Ｏスイッチ割当部１０８、Ｉ／Ｏデバイス流量制御部１０９、及びＩ／Ｏデバイス性能取得部１１０を含む。
Ｉ／Ｏサービス管理部１０３は、Ｉ／Ｏデバイス１１７に関する処理を統括する。当該Ｉ／Ｏサービス管理部１０３によって、Ｉ／Ｏスイッチ管理部１０４又はＩ／Ｏデバイス管理部１０５が起動を開始する。なお、Ｉ／Ｏサービス管理部１０３が実行する処理については、図１４を用いて後述する。
Ｉ／Ｏスイッチ管理部１０４は、Ｉ／Ｏデバイス１１７の追加処理、又は、Ｉ／Ｏデバイス１１７の解除処理のいずれを実行するかを決定する。ここで、Ｉ／Ｏデバイス１１７の追加処理とは、サーバ１１５に新たにＩ／Ｏデバイスを割当てる処理である。また、Ｉ／Ｏデバイス１１７の解除処理とは、サーバ１１５に割当てられているＩ／Ｏデバイス１１７の割当てを解除する処理である。
なお、Ｉ／Ｏスイッチ管理部１０４が実行する処理については、図１５Ａ及び図１５Ｂを用いて後述する。
以下、Ｉ／Ｏデバイス１１７の追加処理を追加処理と記載し、Ｉ／Ｏデバイス１１７の解除処理を解除処理と記載する。
Ｉ／Ｏスイッチ割当判定部１０６は、追加処理、及び解除処理を実行する。なお、Ｉ／Ｏスイッチ割当判定部１０６が実行する処理については、図１６を用いて後述する。
Ｉ／Ｏスイッチ割当部１０８は、Ｉ／Ｏスイッチ割当判定部１０６によって実行された処理の結果を後述するサーバ管理テーブル１１２に反映する。なお、Ｉ／Ｏスイッチ割当部１０８が実行する処理については、図１７を用いて後述する。
Ｉ／Ｏデバイス管理部１０５は、サーバ１１５に割当てられているＩ／Ｏデバイス１１７を他のＩ／Ｏデバイス１１７に変更する変更処理を実行する。なお、Ｉ／Ｏデバイス管理部１０５が実行する処理については、図２０を用いて後述する。
Ｉ／Ｏデバイス流量判定部１０７は、Ｉ／Ｏデバイス１１７に流れるデータ量（流量）を取得する。なお、Ｉ／Ｏデバイス流量判定部１０７が実行する処理については、図２１を用いて後述する。
Ｉ／Ｏデバイス流量制御部１０９は、サーバ１１５に割当てるＩ／Ｏデバイス１１７を決定する。なお、Ｉ／Ｏデバイス流量制御部１０９が実行する処理については、図２２を用いて後述する。
Ｉ／Ｏデバイス性能取得部１１０は、Ｉ／Ｏデバイス１１７に関連する情報を取得する。なお、Ｉ／Ｏデバイス性能取得部１１０が実行する処理については、図２５を用いて後述する。
Ｉ／Ｏスイッチ管理テーブル１１１は、Ｉ／Ｏスイッチ１２０の接続状態を格納する。なお、Ｉ／Ｏスイッチ管理テーブル１１１の詳細については、図８を用いて後述する。
サーバ管理テーブル１１２は、サーバ１１５が備えるリソース情報及びサーバ１１５に割当てられたＩ／Ｏデバイス１１７の流量に関する情報を格納する。サーバ管理テーブル１１２の詳細については、図９を用いて後述する。
サーバＩ／Ｏ構成情報テーブル１１３は、Ｉ／Ｏデバイス１１７の接続状態を格納する。サーバＩ／Ｏ構成情報テーブル１１３の詳細については、図１０を用いて後述する。
デバイスプール管理テーブル１１４は、Ｉ／Ｏデバイスプールに関する情報を格納する。なお、デバイスプール管理テーブル１１４の詳細については、図１１を用いて後述する。
各テーブルに格納される情報は、プロセッサ２０２によってネットワークインタフェース２０４を介してサーバ１１５に転送される。
ディスクインタフェース２０３は、ストレージシステム１６０と接続するためのインタフェースである。ディスクインタフェース２０３は、例えば、ＨＢＡが考えられる。
ネットワークインタフェース２０４は、ネットワークスイッチ１７０と接続するためのインタフェースである。ネットワークインタフェース２０４は、例えば、ＮＩＣが考えられる。
なお、Ｉ／Ｏ管理部１０２に含まれる各構成は、図２に示す実装に限定されない。例えば、複数の機能を一つにまとめる構成であってもよい。また、図２に示す例では、ディスクインタフェース２０３とネットワークインタフェース２０４とは、各々独立して一つずつ備えているが、ＣＮＡを備えることによってアダプタを共有してもよく、サーバ１１５等と通信可能な構成であればよい。
図３は、本発明の実施形態のサーバ１１５の構成例を説明するブロック図である。
サーバ１１５は、プロセッサ３０２、メモリ３０１、Ｉ／Ｏスイッチインタフェース３０３及びＢＭＣ（Ｂａｓｅｂｏａｒｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）３０４を備える。
プロセッサ３０２は、メモリ３０１に格納されるプログラムを実行する。
メモリ３０１は、プロセッサ３０２によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。
メモリ３０１は、仮想化部３０６及びゲスト３０５を格納する。
仮想化部３０６は、サーバ１１５上に仮想的なサーバを生成する。具体的には、仮想化部３０６は、複数のゲスト３０５が稼働可能な環境を生成する。仮想化部３０６は、例えば、ハイパバイザが考えられる。
仮想化部３０６は、Ｉ／Ｏ解析部１２５及びＩ／Ｏ制御部１２６を含む。
Ｉ／Ｏ解析部１２５は、ゲスト３０５から送信されるＩ／Ｏ要求を解析し、当該Ｉ／Ｏ要求を送信するＩ／Ｏデバイス１１７を決定する。なお、Ｉ／Ｏ解析部１２５が実行する処理については、図２３を用いて後述する。
Ｉ／Ｏ制御部１２６は、ゲスト３０５から送信されるＩ／Ｏ要求を、Ｉ／Ｏ解析部１２５によって決定されたＩ／Ｏデバイス１１７から送信する。なお、Ｉ／Ｏ制御部１２６が実行する処理については、図２４を用いて後述する。
ゲスト３０５は、所定の処理を実行する。ゲスト３０５は、ＯＳ及び当該ＯＳ上で実行されるアプリケーションを含む。
図３に示す例では、仮想化部３０６によって、複数のゲスト３０５が稼働する場合を説明したが、例えば、仮想化部３０６のかわりにメモリ３０１上にＯＳが格納され、プロセッサ３０２がＯＳを実行する構成であってもよい。この場合、ＯＳが、アプリケーションに対するＩ／Ｏ要求の受け付け、及びＩ／Ｏ要求の振り分けの機能を備えていればよい。
本実施形態では、Ｉ／Ｏ要求には、ネットワークスイッチ１７０に対するＩ／Ｏ要求と、ストレージシステム１６０に対するＩ／Ｏ要求とがある。以下、前述したＩ／Ｏ要求の種類をＩ／Ｏ種類と記載する。なお、他のＩ／Ｏ要求の種類があってもよい。
Ｉ／Ｏスイッチインタフェース３０３は、Ｉ／Ｏスイッチ１２０と接続するためのインタフェースである。サーバ１１５は、Ｉ／Ｏスイッチインタフェース３０３を介して、Ｉ／Ｏスイッチ１２０に接続され、さらに、Ｉ／Ｏスイッチ１２０に接続されるＩ／Ｏデバイス１１７を使用することができる。ＢＭＣ３０４は、ネットワークスイッチ１２１と接続するためのインタフェースである。
図４は、本発明の実施形態のＩ／Ｏスイッチ１２０の構成例を説明するブロック図である。
Ｉ／Ｏスイッチ１２０は、制御プロセッサ４０２、メモリ４０１、ネットワークインタフェース４０３、クロスバススイッチ４０４、及びポート４０７を備える。
制御プロセッサ４０２は、メモリ４０１に格納されたプログラムを実行する。
メモリ４０１は、制御プロセッサ４０２によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。メモリ４０１は、クロスバススイッチ制御部４０５及びポート管理テーブル４０６を格納する。
クロスバススイッチ制御部４０５は、クロスバススイッチ４０４の制御を実行する。クロスバススイッチ制御部４０５は、クロスバススイッチ４０４と接続されるポート４０７とサーバ１１５又はＩ／Ｏデバイス１１７との割当てを管理する。また、クロスバススイッチ制御部４０５は、割当変更要求をクロスバススイッチ４０４に対して発行する。
ポート管理テーブル４０６は、ポート４０７の割当状態を格納する。ポート管理テーブル４０６については、図１２を用いて後述する。
ネットワークインタフェース４０３は、管理サーバ１０１と接続するためのインタフェース４０３である。
クロスバススイッチ４０４は、ポート４０７と論理ポートとを対応づけ、また、ポート４０７と論理ポートとの対応関係を管理する割当てグループを生成する。クロスバススイッチ４０４は、制御プロセッサ４０２と、Ｉ／Ｏスイッチ１２０が備える複数のポート４０７と接続される。
ポート４０７は、外部装置と接続するためのインタフェースである。本実施形態では、ポート４０７は、ソケット１１６を介して、サーバ１１５又はＩ／Ｏデバイス１１７と接続される。
図５は、本発明の実施形態のＳＶＰ１１９の構成例を説明するブロック図である。
ＳＶＰ１１９は、プロセッサ６０２、メモリ６０１、Ｉ／Ｏインタフェース６０３、ＢＭＣ６０４を備える。
プロセッサ６０２は、メモリ６０１に格納されるプログラムを実行する。
メモリ６０１は、プロセッサ６０２によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。メモリ６０１は、Ｉ／Ｏスイッチ割当制御部１２７を格納する。
Ｉ／Ｏスイッチ割当制御部１２７は、サーバ１１５に割当てるＩ／Ｏデバイス１１７の変更要求を管理サーバ１０１から受信し、クロスバススイッチ制御部４０５に、Ｉ／Ｏデバイス１１７の割当変更命令を発行する。
なお、Ｉ／Ｏスイッチ割当制御部１２７が実行する処理については、図１８を用いて後述する。
Ｉ／Ｏインタフェース６０３は、ストレージシステムが備えるディスク装置６０５と接続するためのインタフェースである。ＢＭＣ６０４は、ネットワークスイッチ１２１と接続するためのインタフェースである。ＳＶＰ１１９は、ＢＭＣ６０４を介して管理サーバ１０１からＩ／Ｏデバイス１１７の割当変更要求を受信することができる。
図５に示すように、ＳＶＰ１１９がＩ／Ｏスイッチ割当制御部１２７を備えているが、本発明はこれに限定されない。例えば、サーバ１１５が、管理サーバ１０１から送信される割当変更要求を、Ｉ／Ｏスイッチ１２０に送信できる機能を備える構成であってもよい。
図６及び図７は、本発明の実施形態におけるＩ／Ｏデバイス１１７の割当ての変更例を示す説明図である。
図６は、Ｉ／Ｏデバイス１１７の割当て変更前の構成を示す。図７は、Ｉ／Ｏデバイス１１７の割当て変更後の構成を示す。
図６に示す例では、複数のサーバ１１５−１〜１１５−４が複数のＩ／Ｏスイッチ１２０−１〜１２０−２と接続する。さらに、Ｉ／Ｏスイッチ１２０−１〜１２０−２は、それぞれ、Ｉ／Ｏスイッチ１２０−１〜１２０−２の各ポート４０７に接続されたソケット１１６−１〜１１６−８を介して、Ｉ／Ｏデバイス１１７−１〜１１７−８と接続する。
図６に示す例では、アダプタとしてＮＩＣを備えるＩ／Ｏデバイス１１７と、アダプタとしてＨＢＡを備えるＩ／Ｏデバイス１１７とが混在している。ＮＩＣを備えるＩ／Ｏデバイス１１７は、ネットワークスイッチ１７０を介してＬＡＮと接続される。ＨＢＡを備えるＩ／Ｏデバイス１１７は、ＳＡＮに含まれるストレージシステム１６０と接続される。
なお、ストレージシステム１６０には、一以上のディスク装置６０５が含まれる。ストレージシステム１６０に接続するサーバ１１５−１〜サーバ１１５−４は、当該ディスク装置６０５からデータを読み出し、また、当該ディスク装置６０５にデータを書き込む。
ＮＩＣをアダプタとして備えるＩ／Ｏデバイス１１７は、当該Ｉ／Ｏデバイス１１７を一意に識別するための識別子としてＭＡＣアドレスを保持する。また、ＨＢＡをアダプタとして備えるＩ／Ｏデバイス１１７は、当該Ｉ／Ｏデバイス１１７を一意に識別するための識別子としてＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）を保持する。
また、ＮＩＣをアダプタとして備えるＩ／Ｏデバイス１１７には、サーバ１１５に対して論理ポートが割当てられる。ここで、論理ポートの割当てとは、Ｉ／Ｏスイッチ１２０が仮想的に区切った論理パスが設定されることを表す。
図６に示す例では、Ｉ／Ｏスイッチ１２０−１は、ソケット１１６−１、１１６−３を介して、ＮＩＣをアダプタとして備えるＩ／Ｏデバイス１１７−１、１１７−３を接続する。さらに、Ｉ／Ｏデバイス１１７−１、１１７−３は、ネットワークスイッチ１７０と接続される。
また、Ｉ／Ｏスイッチ１２０−１は、ソケット１１６−２、１１６−４を介して、ＨＢＡをアダプタとして備えるＩ／Ｏデバイス１１７−２、１１７−４を接続する。さらに、Ｉ／Ｏデバイス１１７−２、１１７−４は、ＳＡＮに含まれるストレージシステム１６０と接続される。
Ｉ／Ｏスイッチ１２０−２は、ソケット１１６−５、１１６−７を介して、ＮＩＣをアダプタとして備えるＩ／Ｏデバイス１１７−５、１１７−７を接続する。さらに、Ｉ／Ｏデバイス１１７−５、１１７−７は、ネットワークスイッチ１７０と接続される。
また、Ｉ／Ｏスイッチ１２０−２は、ソケット１１６−６、１１６−８を介して、ＨＢＡをアダプタとして備えるＩ／Ｏデバイス１１７−６、１１７−８を接続する。さらに、Ｉ／Ｏデバイス１１７−６、１１７−８は、ＳＡＮに含まれるストレージシステム１６０と接続される。
図６に示す例では、サーバ１１５−１、１１５−２に一つのＩ／Ｏデバイス１１７−５が割当てられている。サーバ１１５−１、１１５−２はＩ／Ｏデバイス１１７−５と接続されるネットワークスイッチ１７０を介してＬＡＮとアクセス可能な状態となっている。
この場合、一つのＩ／Ｏデバイス１１７−５が、２つのサーバ１１５−１、１１５−２に割当てられているために大きな通信負荷がかかる。したがって、Ｉ／Ｏデバイス１１７−５の使用可能な帯域が不足し、サーバ１１５−１、１１５−２においてＩ／Ｏ遅延が発生する可能性がある。
つまり、２つのサーバ１１５−１、１１５−２のうち、いずれかのサーバ１１５が大量のデータを送受信した場合、Ｉ／Ｏデバイス１１７−５の使用可能な帯域が不足し、他のサーバ１１５がＩ／Ｏデバイス１１７−５を介してネットワークスイッチ１７０へアクセスすることができなくなる可能性がある。
ＨＢＡをアダプタとして備えるＩ／Ｏデバイス１１７についても、同様の問題が発生する。また、ＣＮＡをアダプタとして備えるＩ／Ｏデバイス１１７についても同様の問題が発生する。
前述した問題を解決するために、Ｉ／Ｏ要求毎に、使用するＩ／Ｏデバイス１１７を変更すること考えられる。しかし、異なるネットワークと接続可能な計算機システムでは、ＮＩＣで使用されるＩＰネットワーク通信と、ＨＢＡで使用されるファイバチャネル通信とが混在する。そのため、処理可能なＩ／Ｏ種類が異なるＩ／Ｏデバイス１１７では、接続されるネットワークが異なるため、Ｉ／Ｏのアクセス先のターゲットが異なる可能性がある。
したがって、Ｉ／Ｏスイッチ１２０における論理パスの設定を単純に変更するだけでは、前述した課題を解決できない。つまり、前述した課題を解決するためには全ネットワークの通信経路を考慮する必要がある。
図７は、本発明を適用することによってＩ／Ｏデバイス１１７の割当てが変更された後の状態を示す図である。
図７に示す例では、サーバ１１５−１又はサーバ１１５−２のいずれかに割当てるＩ／Ｏデバイス１１７が、Ｉ／Ｏデバイス１１７−５からＩ／Ｏデバイス１１７−７に変更された状態を示している。
本発明では、サーバ１１５−１、１１５−２からネットワークスイッチ１７０へのＩＰネットワーク通信が発生した場合、Ｉ／Ｏデバイス１１７−５が処理するデータ量（流量）が周期的に測定され、Ｉ／Ｏ要求毎に、割当てられるＩ／Ｏデバイス１１７−５と等価なＩ／Ｏデバイス１１７をＩ／Ｏ要求が送信される。これによって、各Ｉ／Ｏデバイス１１７における流量を制御する。ここで、Ｉ／Ｏデバイス１１７が等価とは、Ｉ／Ｏデバイス１１７の種類が同一であることを表す。すなわち、Ｉ／Ｏデバイス１１７が備えるアダプタが同一種類であることを表す。
本発明では、Ｉ／Ｏデバイス１１７の流量を制御することによって、当該Ｉ／Ｏデバイス１１７が割当てられたサーバ１１５におけるＩ／Ｏ遅延の発生を防止できる。
本発明では、サーバ１１５に割当てるＩ／Ｏデバイス１１７を選択する場合に、ＬＡＮ及びＳＡＮそれぞれの通信経路を考慮する。
ＬＡＮの場合は物理的な接続、ＶＬＡＮ（Ｖｉｒｔｕａｌ  ＬＡＮ）の設定など仮想的なネットワークセグメントに区切られていることがあるため、Ｉ／Ｏ要求ごとにアクセス先のターゲットと通信可能なＩ／Ｏデバイス１１７を選択しなければならない。
ＦＣ通信の場合も、Ｉ／Ｏデバイス１１７が保持するＷＷＮと、ストレージシステム１６０が備えるＬＵ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）との割当状態がストレージシステムによって設定され、また、ＦＣネットワークに含まれる装置が備えるゾーニング設定などによって、Ｉ／Ｏスイッチ１２０において仮想的な接続パスが設定されている場合も考えられる。
つまり、サーバ１１５は論理パスが設定されていないＩ／Ｏデバイスにアクセスできない場合があるため、ネットワークトポロジを考慮してＩ／Ｏ要求ごとに、アクセス先のターゲットと通信可能なＩ／Ｏデバイス１１７を選択する必要がある。
また、サーバ１１５に割当てられた全てのＩ／Ｏデバイス１１７の帯域が不足した場合に、Ｉ／Ｏの遅延を防止するためにＩ／Ｏデバイス１１７の割当てを追加する必要がある。
本発明では、Ｉ／Ｏデバイス１１７が接続可能な複数のネットワークトポロジがある環境下において、Ｉ／Ｏスイッチ１２０に接続されるＩ／Ｏデバイスの流量を制御し、サーバ１１５のＩ／Ｏ転送効率を高めることを可能にする。
Ｉ／Ｏデバイス１１７の流量をＩ／Ｏ種類（ＬＡＮ／ＳＡＮ）毎に管理し、サーバ１１５に対するＩ／Ｏデバイス１１７の割当てを適切に変更することによってＩ／Ｏ転送効率を高める。
以降、本発明を実施するために必要な管理テーブルについて説明する。
図８は、本発明の実施形態の管理サーバ１０１が備えるＩ／Ｏスイッチ管理テーブル１１１の一例を示す説明図である。
Ｉ／Ｏスイッチ管理テーブル１１１は、Ｉ／Ｏスイッチ１２０のポート４０７に接続されるサーバ１１５及びＩ／Ｏデバイス１１７の情報を格納する。すなわち、Ｉ／Ｏスイッチ１２０と物理的に接続されるサーバ１１５及びＩ／Ｏデバイス１１７の情報が格納される。
Ｉ／Ｏスイッチ管理テーブル１１１は、Ｉ／Ｏスイッチ識別子１１１１、ポート番号１１１２、接続先１１１３、接続先識別子１１１４、状態１１１５、消費帯域率１１１６、帯域制限範囲１１１７及び共有使用１１１８を含む。
Ｉ／Ｏスイッチ識別子１１１１は、計算機システム内のＩ／Ｏスイッチ１２０を一意に識別するための識別子である。
ポート番号１１１２は、Ｉ／Ｏスイッチ識別子１１１１に対応するＩ／Ｏスイッチ１２０のポート４０７を識別するための識別番号である。ポート番号１１１２は、Ｉ／Ｏスイッチ１２０のポート４０７に接続されるソケット１１６と対応づけられる番号である。
接続先１１１３は、ポート番号１１１２に対応するポート４０７に接続されるサーバ１１５又はＩ／Ｏデバイス１１７の種類を表す情報である。
例えば、ポート４０７にＮＩＣをアダプタとして備えるＩ／Ｏデバイス１１７が接続される場合には「ＮＩＣ」が格納される。ポート４０７にＨＢＡをアダプタとして備えるＩ／Ｏデバイス１１７が接続される場合には「ＨＢＡ」が格納される。ポート４０７にサーバ１１５が接続される場合には「ホスト」が格納される。また、ポート４０７にＣＡＮをアダプタとして備えるＩ／Ｏデバイス１１７が接続される場合には「ＣＮＡ」が格納される。
接続先識別子１１１４は、接続先１１１３に対応するサーバ１１５又はＩ／Ｏデバイス１１７を識別するための識別子である。具体的には、接続先１１１３が「ＮＩＣ」の場合はＭＡＣアドレスが格納され、接続先１１１３が「ＨＢＡ」の場合はＷＷＮが格納され、接続先１１１３が「ホスト」の場合はホスト名が格納され、また、接続先１１１３が「ＣＮＡ」の場合はＭＡＣアドレスが格納される。
状態１１１５は、接続先１１１３に対応するサーバ１１５又はＩ／Ｏデバイス１１７の状態を表す情報である。状態１１１５には、障害状態又は正常状態である旨の情報が格納される。管理サーバ１０１は、状態１１１５に基づいて、接続先１１１３に対応するサーバ１１５又はＩ／Ｏデバイス１１７の状態を把握することができる。
消費帯域率１１１６は、接続先１１１３に対応するサーバ１１５又はＩ／Ｏデバイス１１７の消費帯域率を表す情報である。すなわち、サーバ１１５又はＩ／Ｏデバイス１１７が使用可能な帯域のうち、実際に使用される帯域の情報を示す。なお、接続先１１１３が「ＣＮＡ」である場合、消費帯域率１１１６にはＩ／Ｏ種類毎、すなわち、ＬＡＮとＳＡＮ毎に値が格納される。
帯域制限範囲１１１７は、接続先１１１３がＩ／Ｏデバイス１１７である場合に、当該Ｉ／Ｏデバイス１１７に設定される消費帯域率の制限範囲を表す情報である。具体的には、消費帯域率の下限値と上限値とが格納される。
なお、帯域制限範囲１１１７には、制限する帯域の上限値又は制限する帯域の下限値のいずれか一方を格納してもよい。
管理サーバ１０１は、消費帯域率１１１６及び帯域制限範囲１１１７に基づいてサーバ１１５に割当てるＩ／Ｏデバイス１１７を追加、又は削除するかを決定する。
共有使用１１１８は、接続先１１１３がＩ／Ｏデバイス１１７である場合に、当該Ｉ／Ｏデバイス１１７を複数のサーバ１１５が共有して使用可能か否かを示す。つまり、一つのＩ／Ｏデバイス１１７に複数の論理パスを設定することを許可するか否かを示す情報が格納される。共有使用１１１８は、特定のサーバ１１５にＩ／Ｏデバイス１１７を占有して使用させる場合に用いられる情報である。
図９は、本発明の実施形態の管理サーバ１０１が備えるサーバ管理テーブル１１２を示す説明図である。
サーバ管理テーブル１１２は、管理対象のサーバ１１５が備えるリソースの情報、及び流量制御状態等を格納する。
サーバ管理テーブル１１２は、サーバ識別子１１２１、プロセッサ構成１１２２、メモリ容量１１２３、Ｉ／Ｏ定義１１２４及びサービス種別１１２５を含む。
サーバ識別子１１２１は、管理対象であるサーバ１１５を識別するための識別子である。
プロセッサ構成１１２２は、サーバ識別子１１２１に対応するサーバ１１５が備えるプロセッサ３０２の構成情報である。メモリ容量１１２３は、サーバ識別子１１２１に対応するサーバ１１５が備えるメモリ３０１の容量である。
Ｉ／Ｏ定義１１２４は、Ｉ／Ｏ定義を識別するための識別子である。
ここで、Ｉ／Ｏ定義とは、サーバ１１５における論理パスの定義である。Ｉ／Ｏ定義は、Ｉ／Ｏスイッチ１２０内で設定される論理ポートの情報から構成される。Ｉ／Ｏ定義に関する情報は、サーバＩ／Ｏ定義テーブル１１３に格納される。Ｉ／Ｏ定義の具体的な内容については、図１０を用いて後述する。
サービス種別１１２５は、Ｉ／Ｏデバイス１１７の割当変更処理の種別を示す情報である。
具体的には、サービス種別１１２５が「０」である場合、Ｉ／Ｏスイッチ１２０に接続されるＩ／Ｏデバイス１１７の割当てを変更するための処理が実行される。サービス種別１１２５が「１」である場合、Ｉ／Ｏスイッチ１２０に接続されるＩ／Ｏデバイスを追加又は削除する処理が実行される。
図１０は、本発明の実施形態の管理サーバ１０１が備えるサーバＩ／Ｏ構成情報テーブル１１３を示す説明図である。
サーバＩ／Ｏ構成情報テーブル１１３は、Ｉ／Ｏデバイス１１７の構成情報を格納する。
サーバＩ／Ｏ構成情報テーブル１１３は、定義１１３８、Ｉ／Ｏスイッチ識別子１１３１、ポート番号１１３２、接続デバイス１１３３、通信先１１３４及び重要度１１３５を含む。
定義１１３８は、Ｉ／Ｏ定義を識別するための識別子である。
Ｉ／Ｏスイッチ識別子１１３１は、Ｉ／Ｏスイッチ１２０を識別するための識別子である。なお、Ｉ／Ｏスイッチ識別子１１３１は、Ｉ／Ｏスイッチ管理テーブル１１１に含まれるＩ／Ｏスイッチ識別子１１１１と同一のものである。
ポート番号１１３２は、Ｉ／Ｏスイッチ識別子１１３１に対応するＩ／Ｏスイッチ１２０のポート４０７を識別するための識別番号である。なお、ポート番号１１３２は、Ｉ／Ｏスイッチ管理テーブル１１１に含まれるポート番号１１１２と同一のものである。
接続デバイス１１３３は、ポート番号１１１２に対応するポート４０７に接続されるＩ／Ｏデバイス１１７の種類を表す情報である。すなわち、Ｉ／Ｏデバイス１１７が備えるアダプタの種類を表す。例えば、Ｉ／Ｏスイッチ１２０のポート４０７にＣＮＡが接続される場合、接続デバイス１１３３には「ＣＮＡ」が格納される。
通信先１１３４は、接続デバイス１１３３に対応するＩ／Ｏデバイス１１７と接続される通信先の情報である。つまり、接続デバイス１１３３に対応するＩ／Ｏデバイス１１７を介してアクセス可能なネットワークの情報である。通信先１１３４は、同一のネットワークにアクセス可能なＩ／Ｏデバイス１１７を検索するときに用いられる。
重要度１１３５は、Ｉ／Ｏデバイス１１７に設定された重要度である。具体的には、Ｉ／Ｏデバイス１１７の割当てを変更する場合に、重要度１１３５が「Ｈｉｇｈ」であるＩ／Ｏデバイス１１７の割当ては変更されないようにし、重要度１１３５が「Ｌｏｗ」であるＩ／Ｏデバイス１１７については、当該Ｉ／Ｏデバイス１１７の割当てを優先的に変更できるようにする。すなわち、重要度１１３５が「Ｈｉｇｈ」の場合、当該Ｉ／Ｏデバイス１１７を優先的に使用してサーバ１１５がＩ／Ｏを送受信する。一方、重要度１１３５が「Ｌｏｗ」であるＩ／Ｏデバイス１１７については、当該Ｉ／Ｏデバイス１１７の割当てを優先的に変更できることを示す。
例えば、あるサーバ１１５に対するＩ／Ｏを特定のＩ／Ｏデバイス１１７を介して送受信したい場合には、当該Ｉ／Ｏデバイス１１７の重要度１１３５には「Ｈｉｇｈ」が格納される。
重要度１１３５は、Ｉ／Ｏデバイス流量制御部１０９が用いるＩ／Ｏデバイス１１７を決定するときに使用される。
本実施形態において、接続先１１１３、接続先識別子１１１４、接続デバイス１１３３がＩ／Ｏ種類に対応する情報である。また、通信先１１３４がネットワークトポロジに対応する情報である。
図１１は、本発明の実施形態の管理サーバ１０１が備えるデバイスプール管理テーブル１１４を示す説明図である。
デバイスプール管理テーブル１１４は、Ｉ／Ｏスイッチ１２０に接続されるＩ／Ｏデバイス１１７の割当状態に関する情報を格納する。
デバイスプール管理テーブル１１４は、Ｉ／Ｏスイッチ識別子１１４１、ポート番号１１４２、割当状態１１４３及びデバイスプール割当て１１４４を含む。
Ｉ／Ｏスイッチ識別子１１４１は、Ｉ／Ｏスイッチ１２０を識別するための識別子である。Ｉ／Ｏスイッチ識別子１１４１は、Ｉ／Ｏスイッチ管理テーブル１１１のＩ／Ｏスイッチ識別子１１１１と同一のものである。
ポート番号１１４２は、Ｉ／Ｏスイッチ識別子１１４１に対応するＩ／Ｏスイッチ１２０のポート４０７を識別するための識別番号である。なお、ポート番号１１４２は、Ｉ／Ｏスイッチ管理テーブル１１１に含まれるポート番号１１１２と同一のものである。
割当状態１１４３は、ポート番号１１４２に対応するポート４０７に接続されるＩ／Ｏデバイス１１７の割当状態を表す情報である。すなわち、ポート４０７に接続されるＩ／Ｏデバイス１１７が少なくとも一つ以上のサーバ１１５に割当てられているか否かを示す情報である。
一以上のサーバ１１５に割当てられている場合、割当状態１１４３には「割当て済み」が格納される。どのサーバ１１５にも割当てられていない場合、割当状態１１４３には「未割当て」が格納される。
なお、割当状態１１４３は、サーバ１１５に対するＩ／Ｏデバイス１１７の割当て変更時に更新される。また、割当状態１１４３が「未割当て」であるＩ／Ｏデバイス１１７はサーバ１１５に新たに割当てるＩ／Ｏデバイス１１７の候補となる。
デバイスプール割当て１１４４は、複数のＩ／Ｏデバイス１１７から構成されるデバイスプールを識別するための識別子である。ここで、デバイスプールは、割当状態１１４３が「未割当て」である、一以上のＩ／Ｏデバイス１１７から構成される。
図１２は、本発明の実施形態のＩ／Ｏスイッチ１２０が備えるポート管理テーブル４０６を示す説明図である。
ポート管理テーブル４０６は、Ｉ／Ｏスイッチ１２０が備える複数の物理ポート（ポート４０７）と論理的な接続（論理ポート）との対応関係を格納する。
ポート管理テーブル４０６は、物理ポート番号４０６１、割当てグループ４０６２及び論理ポート番号４０６３を含む。
物理ポート番号４０６１は、Ｉ／Ｏスイッチ１２０が備えるポート４０７を識別するための識別番号であり、Ｉ／Ｏスイッチ管理テーブル１１１のポート番号１１１２と同一のものである。
割当てグループ４０６２は、複数の論理ポートから構成される割当てグループを識別するための識別子である。本実施形態では、割当てグループ単位で、サーバ１１５に対するＩ／Ｏデバイス１１７の割当てが管理される（図１３参照）。
また、物理ポート（ポート４０７）は、論理ポートと論理的に接続される。ここで、論理ポートは、Ｉ／Ｏスイッチ１２０内に設定される仮想的なポートを表す。
論理ポート番号４０６３は、Ｉ／Ｏスイッチ１２０内に設定される論理ポートを識別するための識別子である。論理ポート番号４０６３は、物理ポート番号４０６１に対応する物理ポート（ポート４０７）と接続される論理ポートの識別子を格納する。
図１３は、本発明の実施形態のＩ／Ｏスイッチ１２０における物理ポートと論理ポートとの割当状態の一例を示す説明図である。
図１３に示すように、Ｉ／Ｏスイッチ１２０はポート４０７を８つ備える。
ポート０（４０７）にはＩ／Ｏデバイス０（１１７）が接続され、ポート１（４０７）にはＩ／Ｏデバイス１（１１７）が接続され、ポート２（４０７）にはＩ／Ｏデバイス２（１１７）が接続され、また、ポート３（４０７）にはＩ／Ｏデバイス３（１１７）が接続される。
また、ポート４（４０７）にはサーバ１（１１５）が接続され、ポート７（４０７）にはサーバ２（１１５）が接続される。
さらに、論理ポート０（１５０１−１）がポート４（４０７）とポート０（４０７）とを接続し、論理ポート１（１０５１−２）がポート４（４０７）とポート１（４０７）とを接続する。また、論理ポート０（１５０１−３）がポート７（４０７）とポート２（４０７）とを接続し、論理ポート１（１０５１−４）がポート７（４０７）とポート３（４０７）とを接続する。
Ｉ／Ｏスイッチ１２０が備えるポート４０７と論理ポート１５０１とを対応づけることによって、割当てグループ１５０２が生成される。
図１３に示す例では、割当てグループ１５０２−１と割当てグループ１５０２−２とが生成される。異なる割当てグループ１５０２のポート４０７間ではアクセスができないように設定される。
図１３に示すような割当ての状態が、ポート管理テーブル４０６格納される。
図１４は、本発明の実施形態の管理サーバ１０１が備えるＩ／Ｏサービス管理部１０３によって実行される処理を説明するフローチャートである。
Ｉ／Ｏサービス管理部１０３は、管理対象であるサーバ１１５（以下、対象サーバ１１５ともいう）のサービス種別１１２５に基づいて、以下で説明する処理を実行する。なお、対象サーバ１１５の決定方法については、図２５を用いて後述する。
Ｉ／Ｏサービス管理部１０３は、処理を開始すると、サーバ管理テーブル１１２から対象サーバ１１５のサービス種別１１２５を取得する（ステップ１０３１）。
Ｉ／Ｏサービス管理部１０３は、取得されたサービス種別１１２５に基づいて、対象サーバ１１５のサービス種別を判定する（ステップ１０３２）。
取得されたサービス種別１１２５が「０」である場合には、対象サーバ１１５のサービス種別がデバイスであると判定される。また、取得されたサービス種別１１２５が「１」である場合には、対象サーバ１１５のサービス種別がスイッチである判定される。
対象サーバ１１５のサービス種別がスイッチであると判定された場合、Ｉ／Ｏサービス管理部１０３は、Ｉ／Ｏデバイス管理部１０５を呼び出し（ステップ１０３３）、処理を終了する（ステップ１０３５）。呼び出されたＩ／Ｏデバイス管理部１０５は、Ｉ／Ｏデバイス１１７の割当てを変更するための処理を実行する。
対象サーバ１１５のサービス種別がデバイスであると判定された場合、Ｉ／Ｏサービス管理部１０３は、Ｉ／Ｏスイッチ管理部１０４を呼び出し（ステップ１０３４）、処理を終了する（ステップ１０３５）。呼び出されたＩ／Ｏスイッチ管理部１０４は、追加処理又は解除処理を実行する。
対象サーバ１１５が複数ある場合には、Ｉ／Ｏサービス管理部１０３は、対象サーバ１１５全てについて前述した処理（ステップ１０３１〜ステップ１０３５）を繰り返し実行する。
なお、Ｉ／Ｏサービス管理部１０３は、周期的に前述した処理を実行してもよいし、管理サーバ１０１の操作者からの指示を受け付けてから前述した処理を実行してもよい。また、Ｉ／Ｏデバイス性能取得部１１０から呼び出されたことを契機に、Ｉ／Ｏサービス管理部１０３が前述した処理を実行してもよい。
図１５Ａ及び図１５Ｂは、本発明の実施形態の管理サーバ１０１が備えるＩ／Ｏスイッチ管理部１０４によって実行される処理を説明するフローチャートである。
Ｉ／Ｏスイッチ管理部１０４は、Ｉ／Ｏサービス管理部１０３から呼び出される（ステップ１０３４）。Ｉ／Ｏスイッチ管理部１０４は、追加処理又は解除処理のいずれを一方の処理を実行する。
Ｉ／Ｏスイッチ管理部１０４は、サーバ管理テーブル１１２及びサーバＩ／Ｏ構成情報テーブル１１３を参照して、対象サーバ１１５に割当てられているＩ／Ｏデバイス１１７を特定する（ステップ１０４１）。
具体的には、Ｉ／Ｏスイッチ管理部１０４は、サーバ管理テーブル１１２を参照して、対象サーバ１１５に対応するサーバ識別子１１２１のエントリからＩ／Ｏ定義１１２４を取得する。
さらに、Ｉ／Ｏスイッチ管理部１０４は、取得されたＩ／Ｏ定義１１２４に基づいてサーバＩ／Ｏ構成情報テーブル１１３を参照し、取得されたＩ／Ｏ定義１１２４に一致する定義１１３８の情報を取得する。すなわち、Ｉ／Ｏスイッチ識別子１１３１、ポート番号１１３２、接続デバイス１１３３、通信先１１３４及び重要度１１３５が取得される。
これによって、Ｉ／Ｏスイッチ管理部１０４は、対象サーバ１１５に割当てられているＩ／Ｏデバイス１１７を特定できる。
Ｉ／Ｏスイッチ管理部１０４は、ステップ１０４１において取得された情報に基づいてＩ／Ｏスイッチ管理テーブル１１１を参照し、特定されたＩ／Ｏデバイス１１７に関する情報を取得する（ステップ１０４２）。
具体的には、Ｉ／Ｏスイッチ管理部１０４は、取得されたＩ／Ｏスイッチ識別子１１３１及びポート番号１１３２に基づいてＩ／Ｏスイッチ管理テーブル１１１を参照し、特定されたＩ／Ｏデバイス１１７について、消費帯域率１１１６及び帯域制限範囲１１１７を取得する。
Ｉ／Ｏスイッチ管理部１０４は、ステップ１０４１で特定された全てのＩ／Ｏデバイス１１７の消費帯域率１１１６及び帯域制限範囲１１１７を取得する。
Ｉ／Ｏスイッチ管理部１０４は、取得された消費帯域率１１１６及び帯域制限範囲１１１７を用いて、特定されたＩ／Ｏデバイス１１７毎に、消費帯域率１１１６が帯域制限範囲１１１７内であるか否かを判定する（ステップ１０４３）。
すなわち、一つのＩ／Ｏデバイス１１７における全消費帯域が帯域制限範囲１１１７に示された所定の範囲内に含まれるか否かが判定される。当該判定処理は、Ｉ／Ｏデバイス１１７全体の消費帯域を考慮して実行される。
例えば、ＣＮＡをアダプタとして備えるＩ／Ｏデバイス１１７の場合、ＳＡＮにおける消費帯域とＬＡＮにおける消費帯域とを合わせた全消費帯域に基づいて判定処理が実行される。
Ｉ／Ｏスイッチ管理部１０４は、ステップ１０４３の判定処理の結果に基づいて、Ｉ／Ｏデバイス１１７の消費帯域率１１１６が帯域制限範囲１１１７の上限値より大きいか否かを判定する（ステップ１０４４）。
Ｉ／Ｏデバイス１１７の消費帯域率１１１６が帯域制限範囲１１１７の上限値より大きいと判定された場合、Ｉ／Ｏスイッチ管理部１０４は、Ｉ／Ｏスイッチ割当判定部１０６にＩ／Ｏデバイス１１７の割当追加命令を発行し（ステップ１０４６）、ステップ１０４７に進む。
これは、対象サーバ１１５に割当てられたＩ／Ｏデバイス１１７の帯域不足を解消するためである。
なお、当該割当追加命令には、帯域が不足しているＩ／Ｏデバイス１１７に関する情報が含まれる。具体的には、割当追加命令は、Ｉ／Ｏスイッチ識別子１１３１、ポート番号１１３２、接続デバイス１１３３、通信先１１３４及び接続先１１１３を含む。割当追加命令には、重要度１１３５等の他の情報を含まれてもよい。
Ｉ／Ｏデバイス１１７の消費帯域率１１１６が帯域制限範囲１１１７の上限値以下であると判定された場合、Ｉ／Ｏスイッチ管理部１０４は、消費帯域率１１１６が帯域制限範囲１１１７の下限値より小さいか否かを判定する（ステップ１０４５）。
消費帯域率１１１６が帯域制限範囲１１１７の下限値より小さいと判定された場合、Ｉ／Ｏスイッチ管理部１０４は、Ｉ／Ｏスイッチ割当判定部１０６にＩ／Ｏデバイス１１７の割当解除命令を発行し（ステップ１０４Ｄ）、ステップ１０４７に進む。
これは、余剰帯域があるＩ／Ｏデバイス１１７の割当てを削減することによって、Ｉ／Ｏデバイス１１７を有効に利用するためである。
なお、当該割当解除命令には、解除対象のＩ／Ｏデバイス１１７に関する情報が含まれる。具体的には、割当解除命令は、Ｉ／Ｏスイッチ識別子１１３１、ポート番号１１３２、接続デバイス１１３３、通信先１１３４及び接続先１１１３を含む。割当解除命令には、重要度１１３５等の他の情報を含まれてもよい。
消費帯域率１１１６が帯域制限範囲１１１７の下限値以上であると判定された場合、Ｉ／Ｏスイッチ管理部１０４は、ステップ１０４Ｂに進む。
すなわち、消費帯域率１１１６が帯域制限範囲１１１７の範囲内であると判定された場合、Ｉ／Ｏデバイス１１７の帯域に過不足が発生していない。したがって、Ｉ／Ｏデバイス１１７の割当てを変更する必要がない。
Ｉ／Ｏスイッチ管理部１０４は、割当追加命令又は割当解除命令を発行した後に、Ｉ／Ｏスイッチ割当判定部１０６を呼び出す（ステップ１０４７）。
呼び出されたＩ／Ｏスイッチ割当判定部１０６は、割当追加命令又は割当削除命令に含まれる情報に基づいて処理を実行する。Ｉ／Ｏスイッチ割当判定部１０６が実行する処理の詳細は、図１６を用いて後述する。
Ｉ／Ｏスイッチ管理部１０４は、Ｉ／Ｏスイッチ割当判定部１０６の処理結果が通知されるまで待ち続ける。
Ｉ／Ｏスイッチ割当判定部１０６から処理結果（図１６参照）が通知された場合、Ｉ／Ｏスイッチ管理部１０４は、当該処理結果（図１６参照）に基づいて、Ｉ／Ｏデバイス１１７の割当てが変更できるか否かを判定する（ステップ１０４８）。すなわち、割当追加処理、又は、割当解除処理のいずれかを実行できるか否かが判定される。
Ｉ／Ｏデバイス１１７の割当てが変更できないと判定された場合、Ｉ／Ｏスイッチ管理部１０４は、ステップ１０４Ｂに進む。
Ｉ／Ｏデバイス１１７の割当てが変更できると判定された場合、Ｉ／Ｏスイッチ管理部１０４は、Ｉ／Ｏスイッチ割当部１０８を呼び出す（ステップ１０４９）。
このとき、Ｉ／Ｏスイッチ管理部１０４は、Ｉ／Ｏスイッチ割当判定部１０６の処理結果（図１６参照）をＩ／Ｏスイッチ割当部１０８に通知する。
また、Ｉ／Ｏスイッチ割当部１０８は、Ｉ／Ｏスイッチ割当判定部１０６の処理結果（図１６参照）に基づいて処理を実行する。Ｉ／Ｏスイッチ割当部１０８が実行する処理の詳細は、図１７を用いて後述する。
Ｉ／Ｏスイッチ管理部１０４は、Ｉ／Ｏスイッチ割当部１０８の処理結果が通知されるまで待ち続ける。
Ｉ／Ｏスイッチ割当部１０８から処理結果が通知された場合、Ｉ／Ｏスイッチ管理部１０４は、当該処理結果に基づいて、Ｉ／Ｏスイッチ管理テーブル１１１を更新する（ステップ１０４Ａ）。
例えば、割当追加命令が実行された場合、新たに割当てられるＩ／Ｏデバイス１１７が接続されるポートに対応するエントリの状態１１１５、消費帯域率１１１６、帯域制限範囲１１１７及び共有使用１１１８が更新される。なお、割当解除命令が実行された場合についても同様の処理が実行される。
その後、Ｉ／Ｏスイッチ管理部１０４は、Ｉ／Ｏデバイス管理部１０５を呼び出し（ステップ１０４Ｂ）、処理を終了する（ステップ１０４Ｃ）。
なお、帯域制限範囲１１１７に上限値又は下限値の一方のみが格納される場合には、ステップ１０４４又はステップ１０４５のいずれか一方の処理のみを実行してもよい。
図１６は、本発明の実施形態の管理サーバ１０１が備えるＩ／Ｏスイッチ割当判定部１０６によって実行される処理の詳細を説明するフローチャートである。
Ｉ／Ｏスイッチ割当判定部１０６は、Ｉ／Ｏスイッチ管理部１０４から呼び出される（ステップ１０４７）。Ｉ／Ｏスイッチ割当判定部１０６は、Ｉ／Ｏスイッチ１２０と接続されるＩ／Ｏデバイス１１７とサーバ１１５との論理的な接続を変更する。
Ｉ／Ｏスイッチ割当判定部１０６は、Ｉ／Ｏスイッチ管理部１０４から発行された命令が割当追加命令又は割当解除命令のいずれであるかを判定する（ステップ１０６１）。
Ｉ／Ｏスイッチ管理部１０４から発行された命令が割当解除命令であると判定された場合、Ｉ／Ｏスイッチ割当判定部１０６は、当該割当解除命令に含まれる情報に基づいて、解除対象のＩ／Ｏデバイス１１７が割当て可能か否かを判定する（ステップ１０６２）。
具体的には、Ｉ／Ｏスイッチ割当判定部１０６は、解除対象のＩ／Ｏデバイス１１７が割当てられているサーバ１１５に、当該解除対象のＩ／Ｏデバイス１１７と等価なＩ／Ｏデバイス１１７が２つ以上割当てられているか否かを判定する。
ここで、等価なＩ／Ｏデバイス１１７とは、Ｉ／Ｏデバイス１１７に備わるアダプタが同一であり、かつ、解除対象のＩ／Ｏデバイス１１７の通信先のネットワークが同一であるＩ／Ｏデバイス１１７を表す。すなわち、サーバＩ／Ｏ構成情報テーブル１１３の接続デバイス１１３３及び通信先１１３４が同一のＩ／Ｏデバイス１１７を表す。
ステップ１０６２では、以下のような処理が実行される。
まず、Ｉ／Ｏスイッチ割当判定部１０６は、Ｉ／Ｏデバイス１１７の割当解除命令から、接続デバイス１１３３及び通信先１１３４を抽出する。
次に、Ｉ／Ｏスイッチ割当判定部１０６は、抽出された接続デバイス１１３３及び通信先１１３４に基づいてサーバＩ／Ｏ構成情報テーブル１１３を参照して、解除対象のＩ／Ｏデバイス１１７と等価なＩ／Ｏデバイスが２つ以上、サーバ１１５に対して割当てられているか否かを判定する。
これは、Ｉ／Ｏデバイス１１７の削除によってアクセス可能な通信先が減少するか否かを判定するために実行される。
なお、ステップ１０６２においてサーバ１１５に割当てられるＩ／Ｏデバイス１１７を特定する方法は、ステップ１０４１と同一の方法を用いてもよいし、また、ステップ１０４１の処理結果を用いてもよい。
削除されるＩ／Ｏデバイス１１７と等価なＩ／Ｏデバイス１１７が２つ以上、サーバ１１５に対して割当てられていないと判定された場合、Ｉ／Ｏスイッチ割当判定部１０６は、処理を終了する（ステップ１０６８）。
削除されるＩ／Ｏデバイス１１７と等価なＩ／Ｏデバイス１１７が２つ以上、サーバ１１５に対して割当てられていると判定された場合、Ｉ／Ｏスイッチ割当判定部１０６は、Ｉ／Ｏデバイス１１７の割当てを解除するための情報を取得し、ステップ１０６７に進む。
Ｉ／Ｏデバイス１１７の割当てを解除するための情報には、解除対象のＩ／Ｏデバイス１１７を接続するＩ／Ｏスイッチ１２０の識別子（Ｉ／Ｏスイッチ識別子１１３１）、及び解除対象のＩ／Ｏデバイス１１７が接続されるポートの識別子（ポート番号１１３２）が含まれる。
ステップ１０６１において、Ｉ／Ｏスイッチ管理部１０４から発行された命令が割当追加命令であると判定された場合、Ｉ／Ｏスイッチ割当判定部１０６は、デバイスプール管理テーブル１１４を参照して、未割当て状態のＩ／Ｏデバイス１１７の情報を取得する（ステップ１０６３）。
具体的には、Ｉ／Ｏスイッチ割当判定部１０６は、デバイスプール割当て１１４４に、デバイスプールの識別子が格納されるＩ／Ｏデバイス１１７及び共有使用状態１１１８で共有使用が可能なＩ／Ｏデバイス１１７を検索する。さらに、Ｉ／Ｏスイッチ割当判定部１０６は、該当するエントリのＩ／Ｏスイッチ識別子１１４１及びポート番号１１４２を取得する。
Ｉ／Ｏスイッチ割当判定部１０６は、取得されたＩ／Ｏスイッチ識別子１１４１及びポート番号１１４２に基づいてＩ／Ｏスイッチ管理テーブル１１１を参照して、接続先１１１３、状態１１１５及び共有使用１１１８を取得する。また、Ｉ／Ｏスイッチ割当判定部１０６は、取得されたＩ／Ｏスイッチ識別子１１４１及びポート番号１１４２に基づいてサーバＩ／Ｏ構成情報テーブル１１３を参照して、接続デバイス１１３３及び通信先１１３４を取得する。
Ｉ／Ｏスイッチ割当判定部１０６は、対象サーバ１１５が接続されるＩ／Ｏスイッチ１２０に割当て可能なＩ／Ｏデバイス１１７が存在するか否かを判定する（ステップ１０６４）。
具体的には、Ｉ／Ｏスイッチ割当判定部１０６は、ステップ１０６３において取得された情報に基づいて、以下の処理を実行する。
Ｉ／Ｏスイッチ割当判定部１０６は、未割当て状態のＩ／Ｏデバイス１１７の状態１１１５が「正常」であるか判定する。未割当て状態のＩ／Ｏデバイス１１７の状態１１１５が「正常」であるＩ／Ｏデバイス１１７が一つ以上ある場合には、割当てるＩ／Ｏデバイス１１７があると判定される。
状態１１１５が「正常」であるＩ／Ｏデバイスが一つ以上あると判定された場合、Ｉ／Ｏスイッチ割当判定部１０６は、帯域が不足しているＩ／Ｏデバイス１１７におけるＩ／Ｏ種類、及び通信先のネットワークが同一であるＩ／Ｏデバイス１１７が存在するか否かを判定する。
Ｉ／Ｏスイッチ割当判定部１０６は、割当追加命令に含まれる接続先１１１３、接続デバイス１１３３及び通信先１１３４を抽出する。
Ｉ／Ｏスイッチ割当判定部１０６は、抽出された接続先１１１３、接続デバイス１１３３及び通信先１１３４の全てが、ステップ１０６３において取得された接続先１１１３、接続デバイス１１３３及び通信先１１３４と同一であるか否かを判定する。
抽出された接続先１１１３、接続デバイス１１３３及び通信先１１３４が、全て、ステップ１０６３において取得された接続先１１１３、接続デバイス１１３３及び通信先１１３４と同一である場合には、割当て可能なＩ／Ｏデバイス１１７があると判定される。
以上がステップ１０６３において実行される処理である。
対象サーバ１１５が接続されるＩ／Ｏスイッチ１２０に割当て可能なＩ／Ｏデバイス１１７が存在しないと判定された場合は、Ｉ／Ｏスイッチ割当判定部１０６は、Ｉ／Ｏスイッチ管理部１０４にエラーを通知し（ステップ１０６６）、処理を終了する（ステップ１０６８）。
なお、当該エラーを管理サーバ１０１の操作者に通知してもよい。通知方法としては、例えば、管理サーバ１０１の操作者に、追加できるＩ／Ｏデバイス１１７がデバイスプールに存在しない旨を通知する方法が考えられる。
Ｉ／Ｏスイッチ１２０に割当て可能なＩ／Ｏデバイス１１７が存在すると判定された場合は、Ｉ／Ｏスイッチ割当判定部１０６は、サーバ１１５に対して割当てるＩ／Ｏデバイス１１７を決定する（ステップ１０６５）。Ｉ／Ｏスイッチ割当判定部１０６は、Ｉ／Ｏデバイス１１７を新たに割当てるための情報を取得する。
なお、割当て可能なＩ／Ｏデバイス１１７が複数ある場合には、Ｉ／Ｏスイッチ管理テーブル１１１の消費帯域率１１１６が最も小さいものを選択する方法が考えられる。また、ポート番号１１１２が小さいものから順に割当てる方法であってもよい。
Ｉ／Ｏデバイス１１７を新たに割当てるための情報には、割当てるＩ／Ｏデバイス１１７が接続されるＩ／Ｏスイッチ１２０の識別子（Ｉ／Ｏスイッチ識別子１１４１）、及びＩ／Ｏデバイス１１７が接続されるポートの識別子（ポート番号１１４２）が含まれる。
Ｉ／Ｏスイッチ割当判定部１０６は、デバイスプール管理テーブル１１４を更新し（ステップ１０６７）、処理を終了する（ステップ１０６８）。
具体的には、割当状態１１４３とデバイスプール割当て１１４４とが更新される。
例えば、Ｉ／Ｏスイッチ割当判定部１０６は、割当てが解除されたＩ／Ｏデバイス１１７が接続されるポートの割当状態１１４３を「未割当て」に変更し、さらに、デバイスプール割当て１１４４にデバイスプールの識別子を格納する。割当追加処理においても同様に更新される。
Ｉ／Ｏスイッチ割当判定部１０６は、処理結果をＩ／Ｏスイッチ管理部１０４に通知する。
具体的には、Ｉ／Ｏデバイス１１７の割当てを変更できない旨の通知又は、Ｉ／Ｏデバイス１１７の割当てを変更できる旨の通知のいずれかが通知される。
さらに、Ｉ／Ｏデバイス１１７の割当てが変更できる旨の通知には、割当追加命令又は割当解除命令のいずれかが含まれる。割当追加要求には、Ｉ／Ｏスイッチ識別子１１４１及びポート番号１１４２含まれる。割当解除命令には、Ｉ／Ｏスイッチ識別子１１３１及びポート番号１１３２が含まれる。
ステップ１０４８において、Ｉ／Ｏスイッチ管理部１０４は、当該処理結果に割当追加命令又は割当解除命令のいずれかが含まれている場合には、Ｉ／Ｏデバイス１１７の割当てが変更できると判定する。
図１７は、本発明の実施形態の管理サーバ１０１が備えるＩ／Ｏスイッチ割当部１０８によって実行される処理の詳細を説明するフローチャートである。
Ｉ／Ｏスイッチ割当部１０８は、Ｉ／Ｏスイッチ管理部１０４から呼び出される（ステップ１０４９）。Ｉ／Ｏスイッチ割当部１０８は、Ｉ／Ｏスイッチ割当判定部１０６の処理結果に基づいて、Ｉ／Ｏデバイス１１７の割当変更要求を送信する。
Ｉ／Ｏスイッチ割当部１０８は、ＳＶＰ１１９のＩ／Ｏスイッチ割当制御部１２７を呼び出す（ステップ１０８１）。なお、Ｉ／Ｏスイッチ割当部１０８は、Ｉ／Ｏスイッチ割当判定部１０６の処理結果を含む、Ｉ／Ｏデバイス１１７の割当変更要求をＩ／Ｏスイッチ割当制御部１２７に送信する。
Ｉ／Ｏスイッチ割当制御部１２７が実行する処理の詳細は、図１８を用いて後述する。
Ｉ／Ｏスイッチ割当部１０８は、Ｉ／Ｏスイッチ割当制御部１２７の処理結果が通知されるまで待ち続ける。
Ｉ／Ｏスイッチ割当制御部１２７から処理結果が通知された場合、Ｉ／Ｏスイッチ割当部１０８は、サーバ管理テーブル１１２を更新するか否かを判定する（ステップ１０８２）。
具体的には、Ｉ／Ｏスイッチ割当部１０８は、サーバ管理テーブル１１２のＩ／Ｏ定義１１２４が変更されたか否かを判定する。当該判定は、Ｉ／Ｏスイッチ割当制御部１２７から通知された処理結果に基づいて判定できる。
サーバ管理テーブル１１２を更新しないと判定された場合、Ｉ／Ｏスイッチ割当部１０８は、処理を終了する（ステップ１０８４）。
サーバ管理テーブル１１２を更新すると判定された場合、Ｉ／Ｏスイッチ割当部１０８は、サーバ管理テーブル１１２を更新し（ステップ１０８３）、処理を終了する（ステップ１０８４）。
当該処理では、サーバ管理テーブル１１２のＩ／Ｏ定義１１２４が更新される。例えば、Ｉ／Ｏ定義１１２４に新たな定義が変更、追加又は削除される。
図１８は、本発明の実施形態のＳＶＰ１１９が備えるＩ／Ｏスイッチ割当制御部１２７によって実行される処理の詳細を説明するフローチャートである。
Ｉ／Ｏスイッチ割当制御部１２７は、Ｉ／Ｏスイッチ割当部１０８から呼び出される（ステップ１０８１）。Ｉ／Ｏスイッチ割当制御部１２７は、対象サーバ１１５に対するＩ／Ｏスイッチ１２０の物理ポート（ポート４０７）の割当てを変更する。
Ｉ／Ｏスイッチ割当制御部１２７は、Ｉ／Ｏスイッチ割当部１０８から受信したＩ／Ｏデバイス１１７の割当変更要求に基づいて、Ｉ／Ｏスイッチ１２０のクロスバススイッチ制御部４０５に対しＩ／Ｏデバイス１１７の割当変更命令を発行する（ステップ１２７１）。
Ｉ／Ｏスイッチ割当判定部１０６の処理結果に割当追加命令が含まれる場合には、Ｉ／Ｏスイッチ割当制御部１２７は、当該処理結果に含まれるＩ／Ｏスイッチ識別子１１４１に基づいて、割当変更命令の通知先のＩ／Ｏスイッチ１２０を特定する。さらに、Ｉ／Ｏスイッチ割当制御部１２７は、当該処理結果に含まれるポート番号１１４２を含む割当追加命令を割当変更命令として、特定されたＩ／Ｏスイッチ１２０に発行する。
Ｉ／Ｏスイッチ割当判定部１０６の処理結果に割当解除命令が含まれる場合には、Ｉ／Ｏスイッチ割当制御部１２７は、当該処理結果に含まれるＩ／Ｏスイッチ識別子１１３１及びポート番号１１３２を用いて前述した処理と同様の処理を実行する。この場合には、ポート番号１１３２を含む割当解除命令が割当変更命令として、特定されたＩ／Ｏスイッチ１２０に発行される。
Ｉ／Ｏスイッチ割当制御部１２７は、サーバＩ／Ｏ構成情報テーブル１１３を更新し（ステップ１２７２）、処理を終了する（ステップ１２７３）。
例えば、新たなＩ／Ｏデバイス１１７が割当てられる場合には、サーバＩ／Ｏ構成情報テーブル１１３に新たにエントリが追加され、当該エントリに各情報が格納される。Ｉ／Ｏデバイス１１７の割当てが解除される場合には、サーバＩ／Ｏ構成情報テーブル１１３から対応するエントリが削除される。
Ｉ／Ｏスイッチ割当制御部１２７は、Ｉ／Ｏスイッチ割当部１０８に処理結果を通知する。
図１９は、本発明の実施形態のＩ／Ｏスイッチ１２０が備えるクロスバススイッチ制御部４０５によって実行される処理の詳細を説明するフローチャートである。
クロスバススイッチ制御部４０５は、ＳＶＰ１１９のＩ／Ｏスイッチ割当制御部１２７から呼び出される（ステップ１２７１）。クロスバススイッチ制御部４０５は、Ｉ／Ｏスイッチ１２０に接続されるＩ／Ｏデバイス１１７及びサーバ１１５の物理ポートを対応づける論理ポートを変更する。
クロスバススイッチ制御部４０５は、Ｉ／Ｏスイッチ割当制御部１２７から発行された割当変更命令が、割当追加命令、又は割当解除命令のいずれであるかを判定する（ステップ４０５１）。
割当変更命令が割当解除命令であると判定された場合、クロスバススイッチ制御部４０５は、物理ポートと論理ポートとの対応づけを解除する処理をクロスバススイッチ４０４に実行させ（ステップ４０５３）、ステップ４０５４に進む。
具体的には、割当解除命令に含まれるポート番号１１３２に対応するエントリの割当てグループ４０６２及び論理ポート番号４０６３に格納される情報が削除される。
割当変更命令が割当追加命令であると判定された場合、クロスバススイッチ制御部４０５は、物理ポートと論理ポートとを対応づける処理をクロスバススイッチ４０４に実行させ（ステップ４０５２）、ステップ４０５４に進む。
具体的には、クロスバススイッチ制御部４０５は、所属させる割当てグループの識別子を割当てグループ４０６２に追加する。さらに、クロスバススイッチ制御部４０５は、当該割当てグループに論理ポート番号４０６３を追加する。なお、論理ポート番号４０６３には、割当てグループにすでに設定されている論理ポート番号４０６３とは異なる番号が格納される。
クロスバススイッチ制御部４０５は、ポート管理テーブル４０６を更新し（ステップ４０５４）、処理を終了する（ステップ４０５５）。
すなわち、対応するエントリに情報を追加し、又は、エントリの情報を削除する。
図２０は、本発明の実施形態の管理サーバ１０１が備えるＩ／Ｏデバイス管理部１０５によって実行される処理の詳細を説明するフローチャートである。
Ｉ／Ｏデバイス管理部１０５は、対象サーバ１１５に割当てられるＩ／Ｏデバイス１１７の流量情報を管理する。また、Ｉ／Ｏデバイス管理部１０５は、対象サーバ１１５に割当てられたＩ／Ｏデバイス１１７と等価なＩ／Ｏデバイス１１７を決定する。
Ｉ／Ｏデバイス管理部１０５は、サーバ管理テーブル１１２から対象サーバ１１５のＩ／Ｏ定義１１２４を取得する（ステップ１０５１）。
Ｉ／Ｏデバイス管理部１０５は、対象サーバ１１５に割当てられるＩ／Ｏデバイス１１７を特定する（ステップ１０５２）。
具体的には、Ｉ／Ｏデバイス管理部１０５は、ステップ１０５１で取得したＩ／Ｏ定義１１２４に基づいてサーバＩ／Ｏ構成情報テーブル１１３を参照し、対象サーバ１１５に割当てられるＩ／Ｏデバイスを特定する。このとき、Ｉ／Ｏスイッチ識別子１１３１、ポート番号１１３２、接続デバイス１１３３、通信先１１３４及び重要度１１３５が取得される。
Ｉ／Ｏデバイス管理部１０５は、特定されたＩ／Ｏデバイス１１７における流量を取得する（ステップ１０５３）。
具体的には、Ｉ／Ｏデバイス管理部１０５は、ステップ１０５２において取得されたＩ／Ｏスイッチ識別子１１３１及びポート番号１１３２に基づいてＩ／Ｏスイッチ管理テーブル１１１を参照し、特定されたＩ／Ｏデバイス１１７の消費帯域率１１１６を取得する。
Ｉ／Ｏデバイス管理部１０５は、Ｉ／Ｏデバイス流量判定部１０７を呼び出す（ステップ１０５４）。
なお、Ｉ／Ｏデバイス流量判定部１０７が実行する処理の詳細は、図２１を用いて後述する。
Ｉ／Ｏデバイス管理部１０５は、Ｉ／Ｏデバイス流量判定部１０７の処理結果が通知されるまで待ち続ける。
Ｉ／Ｏデバイス流量判定部１０７から処理結果が通知されたＩ／Ｏデバイス管理部１０５は、Ｉ／Ｏデバイス流量判定部１０７から通知された処理結果に基づいて、Ｉ／Ｏスイッチ管理テーブル１１１に差分があるか否かを判定する（ステップ１０５５）。
具体的には、Ｉ／Ｏデバイス管理部１０５は、Ｉ／Ｏデバイス流量判定部１０７から通知された処理結果に基づいて、ステップ１０５３において取得されたＩ／Ｏスイッチ管理テーブル１１１の情報に差分が生じるか判定する。
Ｉ／Ｏスイッチ管理テーブル１１１に差分がないと判定された場合、Ｉ／Ｏデバイス管理部１０５は、ステップ１０５７に進む。
Ｉ／Ｏスイッチ管理テーブル１１１に差分があると判定された場合、Ｉ／Ｏデバイス管理部１０５は、当該差分を反映させるため、Ｉ／Ｏスイッチ管理テーブル１１１更新する（ステップ１０５６）。
Ｉ／Ｏデバイス管理部１０５は、Ｉ／Ｏデバイス流量制御部１０９を呼び出し（ステップ１０５７）、処理を終了する（ステップ１０５８）。なお、Ｉ／Ｏデバイス管理部１０５は、ステップ１０５１〜ステップ１０５３において取得された情報を合わせてＩ／Ｏデバイス流量制御部１０９に通知する。
Ｉ／Ｏデバイス流量制御部１０９が実行する処理の詳細は、図２２を用いて後述する。
図２１は、本発明の実施形態の管理サーバ１０１が備えるＩ／Ｏデバイス流量判定部１０７によって実行される処理を説明するフローチャートである。
Ｉ／Ｏデバイス流量判定部１０７は、Ｉ／Ｏデバイス管理部１０５から呼び出される（ステップ１０５７）。Ｉ／Ｏデバイス流量判定部１０７は、対象サーバ１１５に割当てられているＩ／Ｏデバイス１１７の流量に関する判定処理を実行する。
具体的には、Ｉ／Ｏデバイス流量判定部１０７は、Ｉ／Ｏ種類（ＬＡＮ／ＳＡＮ）毎に使用帯域率１１１６を算出し、帯域制限範囲１１１７を超えている場合には、サービス種別１１２５をスイッチに変更する。
Ｉ／Ｏデバイス流量判定部１０７は、サーバ管理テーブル１１２及びサーバＩ／Ｏ構成情報テーブル１１３を参照し、対象サーバに割当てられているＩ／Ｏデバイス１１７を特定する（ステップ１０７１）。
なお、ステップ１０７１は、ステップ１０４１と同一の方法が用いられる。
ステップ１０７１では、特定されたＩ／Ｏデバイス１１７の情報として、Ｉ／Ｏスイッチ識別子１１３１、ポート番号１１３２、接続デバイス１１３３、通信先１１３４及び重要度１１３５が取得される。
Ｉ／Ｏデバイス流量判定部１０７は、ステップ１０７１において取得された情報に基づいてＩ／Ｏスイッチ管理テーブル１１１を参照し、特定されたＩ／Ｏデバイス１１７に関する情報を取得する（ステップ１０７２）。
具体的には、Ｉ／Ｏデバイス流量判定部１０７は、ステップ１０７１において取得されたＩ／Ｏスイッチ識別子１１３１及びポート番号１１３２に基づいてＩ／Ｏスイッチ管理テーブル１１１を参照し、特定されたＩ／Ｏデバイス１１７の消費帯域率１１１６及び帯域制限範囲１１１７を取得する。
このとき、特定されたＩ／Ｏデバイス１１７がアダプタとしてＣＮＡを備える場合、Ｉ／Ｏ種類（ＬＡＮ／ＳＡＮ）毎に消費帯域率１１１６が取得される。
Ｉ／Ｏデバイス流量判定部１０７は、特定された全てのＩ／Ｏデバイス１１７について前述した処理（ステップ１０７２）を実行する。
Ｉ／Ｏデバイス流量判定部１０７は、Ｉ／Ｏ種類毎に消費帯域率１１１６が帯域制限範囲１１１７内であるか否かを判定する（ステップ１０７３）。これは、ＣＮＡをアダプタとして備えるＩ／Ｏデバイス１１７では、Ｉ／Ｏデバイス１１７全体における消費帯域率１１１６が帯域制限範囲１１１７の範囲内であっても、ＬＡＮにおける消費帯域率１１１６が高いためにＳＡＮが使用できる帯域が十分でない場合等があるためである。
特定されたＩ／Ｏデバイス１１７がアダプタとしてＣＮＡを備える場合、ＬＡＮについての消費帯域率１１１６とＳＡＮについての消費帯域率１１１６とについて、別々に判定が実行される。
Ｉ／Ｏデバイス流量判定部１０７は、ステップ１０７３の判定処理の結果に基づいて、Ｉ／Ｏデバイス１１７の消費帯域率１１１６が帯域制限範囲１１１７の上限値より大きいか否かを判定する（ステップ１０７４）。
Ｉ／Ｏデバイス１１７の消費帯域率１１１６が帯域制限範囲１１１７の上限値以下であると判定された場合、Ｉ／Ｏデバイス流量判定部１０７は、処理を終了する（ステップ１０７７）。
なお、Ｉ／Ｏデバイス１１７がアダプタとしてＣＮＡを備える場合、ＬＡＮの消費帯域率１１１６及びＳＡＮの消費帯域率１１１６それぞれについて処理が実行される。
また、特定されたＩ／Ｏデバイス１１７が複数ある場合には、全てのＩ／Ｏデバイス１１７について前述した処理が実行される。
Ｉ／Ｏデバイス１１７の消費帯域率１１１６が帯域制限範囲１１１７の上限値より大きいと判定された場合、Ｉ／Ｏデバイス流量判定部１０７は、Ｉ／Ｏスイッチ管理テーブル１１１を更新する（ステップ１０７５）。
具体的には、Ｉ／Ｏデバイス１１７の全消費帯域が帯域制限範囲１１１７の上限値より大きくなるように、消費帯域率１１１６が更新される。
さらに、Ｉ／Ｏデバイス流量判定部１０７は、サーバ管理テーブル１１２のサービス種別１１２５を変更し（ステップ１０７６）、処理を終了する（ステップ１０７７）。具体的には、サービス種別１１２５が「０」から「１」に変更される。
ステップ１０７５及びステップ１０７６の処理によって、ステップ１０４５の処理ではＩ／Ｏデバイス１１７の割当追加処理が実行される。
図２２は、本発明の実施形態の管理サーバ１０１が備えるＩ／Ｏデバイス流量制御部１０９によって実行される処理を説明するフローチャートである。
Ｉ／Ｏデバイス流量制御部１０９は、Ｉ／Ｏデバイス管理部１０５から呼び出される（ステップ１０５７）。Ｉ／Ｏデバイス流量制御部１０９は、割当てられるＩ／Ｏデバイス１１７を変更するため、対象サーバ１１５に割当てられているＩ／Ｏデバイス１１７の中から、等価なＩ／Ｏデバイス１１７を選択する。
ここで等価なＩ／Ｏデバイス１１７とは、接続デバイス１１３３及び通信先１１３４が同一であるＩ／Ｏデバイス１１７を表す。
Ｉ／Ｏデバイス流量制御部１０９は、対象サーバ１１５に接続されているＩ／Ｏデバイス１１７の中から、等価となるＩ／Ｏデバイス１１７を検索する（ステップ１０９１）。
具体的には、まず、Ｉ／Ｏデバイス流量制御部１０９は、対象サーバ１１５に接続されるＩ／Ｏデバイス１１７を特定する。次に、Ｉ／Ｏデバイス流量制御部１０９は、特定されたＩ／Ｏデバイス１１７の接続デバイス１１３３及び通信先１１３４が同一であるＩ／Ｏデバイス１１７を検索する。
Ｉ／Ｏデバイス流量制御部１０９は、検索されたＩ／Ｏデバイス１１７の中からＩ／Ｏ種類毎に割当てるＩ／Ｏデバイス１１７を決定し、決定されたＩ／Ｏデバイス１１７をＩ／Ｏ制御部１２６通知して（ステップ１０９２）、処理を終了する（ステップ１０９３）。
具体的には、Ｉ／Ｏデバイス流量制御部１０９は、検索されたＩ／Ｏデバイス１１７の消費帯域率１１１６に基づいて、使用帯域が最も少ない、すなわち、消費帯域率１１１６が一番小さいＩ／Ｏデバイス１１７をＩ／Ｏ種類毎に決定する。
Ｉ／Ｏデバイス流量制御部１０９は、決定されたＩ／Ｏデバイス１１７に関する情報を取得する。具体的には、決定されたＩ／Ｏデバイス１１７を接続するＩ／Ｏスイッチ１２０の識別子（Ｉ／Ｏスイッチ識別子１１３１）、及び当該Ｉ／Ｏデバイス１１７が接続されるポートの識別子（ポート番号１１３２）が取得される。
なお、割当てられるＩ／Ｏデバイス１１７の決定方法は、前述の方法に限定されない。例えば、Ｉ／Ｏデバイス１１７の通信先のネットワークの帯域情報、Ｉ／Ｏ種類毎のアクセス先、又はサーバＩ／Ｏ構成情報テーブル１１３の重要度１１３５を利用する方法が考えられる。例えば、特定のＩ／Ｏ種類においては固定のＩ／Ｏデバイス１１７を割当てるように決定する方法であってもよい。
Ｉ／Ｏデバイス流量制御部１０９は、Ｉ／Ｏスイッチ識別子１１３１及びポート番号１１３２を含む割当変更命令をＩ／Ｏスイッチ割当制御部１２７に発行する。
Ｉ／Ｏスイッチ割当制御部１２７は、図１８に示す処理を実行する。また、クロスバススイッチ制御部４０５は、図１９に示す処理を実行する。実行する処理の内容は同一であるため説明を省略する。なお、クラスパススイッチ制御部４０５は、物理ポート４０７と論理ポートとの対応付けを変更する処理を実行する。
図２３は、本発明の実施形態のサーバ１１５が備えるＩ／Ｏ解析部１２５によって実行される処理を説明するフローチャートである。
Ｉ／Ｏ解析部１２５は、Ｉ／Ｏフレームを解析して、Ｉ／Ｏ要求毎にＩ／Ｏデバイス１１７が接続される通信先を判定する。
Ｉ／Ｏ解析部１２５は、サーバ１１５からＩ／Ｏ要求を受け付け、Ｉ／Ｏフレームを解析することによってＩ／Ｏ要求のＩ／Ｏ種類を判定する（ステップ１２５１）。
Ｉ／Ｏ解析部１２５は、受け付けたＩ／Ｏ要求からアクセス先のターゲット及びデバイス情報を取得する（ステップ１２５２）。
これは、Ｉ／Ｏ種類がＬＡＮの場合、ＩＰヘッダに格納されているＩＰアドレス、イーサフレームのＭＡＣアドレスを解析することによって取得する方法が考えられる。
また、Ｉ／Ｏ種類がＨＢＡの場合、ＳＣＳＩプロトコルのＳＣＳＩ  ＩＤ情報を解析し、サーバＩ／Ｏ構成情報テーブル１１３の通信先１１３４に基づいて、ターゲットが属するネットワーク情報を識別する方法が考えられる。
Ｉ／Ｏ解析部１２５は、Ｉ／Ｏデバイス流量制御部１０９がＩ／Ｏ種類毎に決定したＩ／Ｏデバイス１１７の中から、使用するＩ／Ｏデバイス１１７を決定する（ステップ１２５３）。
具体的には、Ｉ／Ｏ種類、アクセス先のターゲット及びデバイス情報に基づいて使用するＩ／Ｏデバイス１１７が決定される。
サーバ１１５に割当てられるＩ／Ｏデバイス１１７が複数ある場合には、Ｉ／Ｏ解析部１２５は、最も消費帯域率１１１６が小さいＩ／Ｏデバイス１１７を使用するＩ／Ｏデバイス１１７として決定する。
また、Ｉ／Ｏ解析部１２５は、決定されたＩ／Ｏデバイス１１７の情報をＩ／Ｏスイッチ管理テーブル１１１から取得する。具体的には、Ｉ／Ｏスイッチ識別子１１１１、ポート番号１１１２、消費帯域率１１１６及び帯域制限範囲１１１７を取得する。
その後、Ｉ／Ｏ解析部１２５は、Ｉ／Ｏ制御部１２６を呼び出し（ステップ１２５４）、処理を終了する（ステップ１２５５）。
Ｉ／Ｏ制御部１２６が実行する処理の詳細は、図２４を用いて後述する。
このとき、Ｉ／Ｏ解析部１２５は、Ｉ／Ｏスイッチ識別子１１１１、ポート番号１１１２、消費帯域率１１１６及び帯域制限範囲１１１７もあわせて通知する。
図２４は、本発明の実施形態のサーバ１１５が備えるＩ／Ｏ制御部１２６によって実行される処理を説明するフローチャートである。
Ｉ／Ｏ制御部１２６は、Ｉ／Ｏ解析部１２５から呼び出される（ステップ１２５５）。Ｉ／Ｏ制御部１２６は、Ｉ／Ｏ解析部１２５が決定したＩ／Ｏデバイス１１７から受信したＩ／Ｏ要求の送出を行う。
Ｉ／Ｏ制御部１２６は、Ｉ／Ｏ解析部１２５が決定したＩ／Ｏデバイス１１７の情報を取得する（ステップ１２６１）。
具体的には、Ｉ／Ｏスイッチ識別子１１１１、ポート番号１１１２、消費帯域率１１１６及び帯域制限範囲１１１７が取得される。
Ｉ／Ｏ制御部１２６は、ステップ１２６１において取得された情報に基づいて、決定されたＩ／Ｏデバイス１１７にＩ／Ｏ解析部１２５が受け取ったＩ／Ｏ要求を送出し（ステップ１２６２）、処理を終了する（ステップ１２６３）。
なお、ステップ１２６２において使用するＩ／Ｏデバイス１１７は、消費帯域率１１１６及び帯域制限範囲１１１７の情報に基づいて決定する。これによって、Ｉ／Ｏデバイス１１７の消費帯域率を分散したり、偏らせたりすることなどができる。
図２５は、本発明の実施形態の管理サーバ１０１が備えるＩ／Ｏデバイス性能取得部１１０によって実行される処理を説明するフローチャートである。
Ｉ／Ｏデバイス性能取得部１１０は、以下で説明する処理を周期的に実行する。
Ｉ／Ｏデバイス性能取得部１１０は、Ｉ／Ｏスイッチ１２０に接続されるＩ／Ｏデバイス１１７の流量を取得する。また、Ｉ／Ｏデバイス性能取得部１１０は、取得されたＩ／Ｏデバイス１１７の流量に基づいてＩ／Ｏスイッチ管理テーブル１１１を更新する。
Ｉ／Ｏデバイス性能取得部１１０は、サーバ管理テーブル１１２を参照して、サーバ１１５に割当てられているＩ／Ｏデバイス１１７を特定する（ステップ１１０１）。
ステップ１１０１の処理は、ステップ１０４１の処理と同一である。したがって、ステップ１１０１では、Ｉ／Ｏスイッチ識別子１１３１、ポート番号１１３２、接続デバイス１１３３、通信先１１３４、及び重要度１１３５が取得される。
Ｉ／Ｏデバイス性能取得部１１０は、Ｉ／Ｏスイッチ管理テーブル１１１を参照して、特定されたＩ／Ｏデバイスの情報を取得する（ステップ１１０２）。
ステップ１１０２の処理は、消費帯域率１１１６及び帯域制限範囲１１１７が取得される。消費帯域率１１１６及び帯域制限範囲１１１７を取得する方法は、Ｉ／Ｏデバイス１１７又はＩ／Ｏスイッチ１２０から取得する方法が考えられる。
Ｉ／Ｏデバイス性能取得部１１０は、Ｉ／Ｏスイッチ管理テーブル１１１に差分があるか否かを判定する（ステップ１１０３）。すなわち、Ｉ／Ｏスイッチ管理テーブル１１１の各値に変更があるか否かが判定される。
Ｉ／Ｏスイッチ管理テーブル１１１に差分がないと判定された場合、Ｉ／Ｏデバイス性能取得部１１０は、処理を終了する（ステップ１１０５）。
Ｉ／Ｏスイッチ管理テーブル１１１に差分があると判定された場合、Ｉ／Ｏデバイス性能取得部１１０は、Ｉ／Ｏスイッチ管理テーブル１１１を更新する（ステップ１１０６）。
Ｉ／Ｏデバイス性能取得部１１０は、消費帯域率１１１６及び帯域制限範囲１１１７を用いて、全Ｉ／Ｏデバイス１１７について、消費帯域率１１１６が帯域制限範囲１１１７内であるか否かを判定する（ステップ１１０７）。
ステップ１１０７では、ステップ１０４４、又はステップ１０４５の少なくともいずれかが実行される。
消費帯域率１１１６が帯域制限範囲１１１７内にないと判定された場合、Ｉ／Ｏデバイス性能取得部１１０は、Ｉ／Ｏサービス管理部１０３を呼び出し（ステップ１１０８）、処理を終了する（ステップ１１０９）。
消費帯域率１１１６が帯域制限範囲１１１７内にあると判定された場合、Ｉ／Ｏデバイス性能取得部１１０は、処理を終了する（ステップ１１０９）。
本発明の一形態によれば、サーバ１１５に対するＩ／Ｏデバイス１１７の割当てを変更する場合に、Ｉ／Ｏ種類及びネットワークトポロジ情報を考慮したＩ／Ｏデバイス１１７を選択できるため、適切なＩ／Ｏデバイス１１７に割当てを変更することが可能となる。したがって、Ｉ／Ｏデバイス１１７の流量を制御することが可能となる。
これによって、特定のＩ／Ｏデバイス１１７にかかる負荷を適切に分散することができる。また、Ｉ／Ｏデバイス１１７のＩ／Ｏ転送効率を向上することができる。
以上、本発明の実施形態について説明したが、これらは本発明を説明するための例示であり、本発明の適応範囲を例示した形態のみに限定するものではない。また、前述した実施形態のいかなる組み合わせも本発明の実施形態となりうる。
【図１】
0005515157.tif 000002
【図２】
0005515157.tif 000003
【図３】
0005515157.tif 000004
【図４】
0005515157.tif 000005
【図５】
0005515157.tif 000006
【図６】
0005515157.tif 000007
【図７】
0005515157.tif 000008
【図８】
0005515157.tif 000009
【図９】
0005515157.tif 000010
【図１０】
0005515157.tif 000011
【図１１】
0005515157.tif 000012
【図１２】
0005515157.tif 000013
【図１３】
0005515157.tif 000014
【図１４】
0005515157.tif 000015
【図１５Ａ】
0005515157.tif 000016
【図１５Ｂ】
0005515157.tif 000017
【図１６】
0005515157.tif 000018
【図１７】
0005515157.tif 000019
【図１８】
0005515157.tif 000020
【図１９】
0005515157.tif 000021
【図２０】
0005515157.tif 000022
【図２１】
0005515157.tif 000023
【図２２】
0005515157.tif 000024
【図２３】
0005515157.tif 000025
【図２４】
0005515157.tif 000026
【図２５】
0005515157.tif 000027