(57)【要約】【課題】  効率的にデバイス資源を割り当てるシステム及び方法が開示されている。【解決手段】  コンポーザアプリケーションは、管理制御装置によって実行される。ファブリックボックスは、複数のファブリックスイッチ及びファブリック制御装置を有する。ネットワークは、前記管理制御装置及び前記ファブリックボックスに結合される。ホストサーバの各々は、前記複数のファブリックスイッチのうちの一の上流ポートに結合される。複数のデバイスは、前記複数のファブリックスイッチの下流ポートに結合される。前記ファブリック制御装置は、前記下流ポートの各々と前記上流ポートの各々との間の経路距離を決定する。前記コンポーザアプリケーションは、割当命令に応じて、要求されたホストサーバへの最短距離に基づいてデバイスを選択する。【選択図】図４
2019175415.tif 000002
【特許請求の範囲】
【請求項１】
各々がホストに結合される少なくとも１つの上流ポートを有する複数のファブリックスイッチ、
該複数のファブリックスイッチのうちの一の下流ポートに結合される複数のデバイス、
前記複数のファブリックスイッチに結合されるファブリック制御装置、
を有し、
前記ファブリック制御装置は、前記複数のファブリックスイッチの前記下流ポートの各々と前記上流ポートの各々との間の経路距離を決定するように動作可能で、
前記制御装置は、ホストへのデバイスの割り当て要求を受け取ると、前記複数のデバイスのうち前記ホストへの経路距離が最短となるデバイスを選択し、かつ、前記ホストを前記の選択されたデバイスへ接続するように前記複数のファブリックスイッチのうちの一を設定する、
ファブリックボックス。
【請求項２】
請求項１に記載のファブリックボックスであって、
前記複数のデバイスは、不揮発性メモリ（ＮＶＭｅ）、画像処理装置（ＧＰＵ）、現場でプログラム可能なゲートアレイ（ＦＰＧＡ）、ネットワークインターフェースカード（ＮＩＣ）、及び独立ディスクの冗長アレイ（ＲＡＩＤ）インターフェースのうちの少なくとも２つを含む、ファブリックボックス。
【請求項３】
各々が前記複数のファブリックスイッチの一の上流ポートの一と前記ホストの一との間で結合される複数のネットワークインターフェースカードをさらに有する請求項１に記載のファブリックボックスであって、
前記複数のファブリックスイッチの少なくとも１つは、追加のデバイス用の少なくとも１つのオープン下流ポートを有し、かつ、
前記複数のファブリックスイッチとデバイスは、ＰＣＩｅプロトコルリンクを介して接続される、
ファブリックボックス。
【請求項４】
請求項１に記載のファブリックボックスであって、
前記ファブリック制御装置は、前記複数のデバイスの各々の経路距離情報をコンポーザアプリケーションへ送信するように動作可能で、かつ、
前記ファブリック制御装置は、前記コンポーザアプリケーションから、前記の選択されたデバイスと前記ホストに関する割当命令を受信するように動作可能である、
ファブリックボックス。
【請求項５】
各々がホストに結合される少なくとも１つの上流ポートを有する複数のファブリックスイッチ、該複数のファブリックスイッチのうちの一の下流ポートに結合される複数のデバイス、前記複数のファブリックスイッチに結合されるファブリック制御装置を有するファブリックボックスを介してホストへデバイスを割り当てる方法であって、
前記下流ポートの各々と前記上流ポートの各々との間の経路距離を決定する段階、
ホストへデバイスを割り当てる割当要求を受け取る段階、
前記の割り当てられたホストへの最短経路距離に従ってデバイスを選択する段階、及び、
前記の選択されたデバイスと前記の割り当てられたホストとの間で前記複数のファブリックスイッチのうちの一を介する接続を始動する段階、
を有する方法。
【請求項６】
請求項５に記載の方法であって、
前記複数のデバイスは、不揮発性メモリ（ＮＶＭｅ）、画像処理装置（ＧＰＵ）、現場でプログラム可能なゲートアレイ（ＦＰＧＡ）、ネットワークインターフェースカード（ＮＩＣ）、及び独立ディスクの冗長アレイ（ＲＡＩＤ）インターフェースのうちの少なくとも２つを含む、ファブリックボックス。
【請求項７】
請求項５に記載の方法であって、
前記複数のファブリックスイッチの各々はネットワークカードに結合され、
前記ホストの一は、前記ネットワークインターフェースカードに結合されるネットワークに結合され、
前記複数のファブリックスイッチとデバイスは、ＰＣＩｅプロトコルリンクを介して接続され、
さらに、
前記複数のファブリックスイッチのうちの一のオープン下流ポート内の追加のデバイスを接続する段階、及び、
前記追加のデバイスと前記ホストとの間の経路距離を決定する段階、
を有する方法。
【請求項８】
請求項５に記載の方法であって、
前記複数のデバイスの各々についての経路距離情報をコンポーザアプリケーションへ送信する段階、及び、
前記コンポーザアプリケーションから、前記の選択されたデバイスと前記ホストに関する割当命令を受信する段階、
をさらに有する方法。
【請求項９】
デバイス資源を割り当てるシステムであって、
管理制御装置によって実行されるコンポーザアプリケーション、
複数のファブリックスイッチ及びファブリック制御装置を有するファブリックボックス、
前記管理制御装置及び前記ファブリックボックスに結合されるネットワーク、
各々が前記複数のファブリックスイッチのうちの一の上流ポートに結合される複数のホストサーバ、
各々が前記複数のファブリックスイッチの一の下流ポートに結合される複数のデバイス資源、
を有し、
前記ファブリック制御装置は、前記下流ポートの各々と前記上流ポートの各々との間の経路距離を決定するように動作可能で、
前記ファブリック制御装置は、前記下流ポートの各々と前記上流ポートの各々との間の経路距離を決定するように動作可能で、かつ、
前記コンポーザアプリケーションは、割当命令に応じて、要求されたホストサーバへの最短距離に基づいてデバイスを選択するように動作可能である、
システム。
【請求項１０】
請求項９に記載のシステムであって、
前記複数のデバイスは、不揮発性メモリ（ＮＶＭｅ）、画像処理装置（ＧＰＵ）、現場でプログラム可能なゲートアレイ（ＦＰＧＡ）、ネットワークインターフェースカード（ＮＩＣ）、及び独立ディスクの冗長アレイ（ＲＡＩＤ）インターフェースのうちの少なくとも２つを含む、ファブリックボックス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して、ファブリックカードボックス上でのデバイスの効率的な割り当てに関する。より具体的には本開示の態様は、ホストデバイスへの効率的な割り当てを支援するプール化デバイスの経路距離の計算に関する。
【背景技術】
【０００２】
計算処理用途のためのクラウドの出現によって、リモート接続されたコンピュータ装置ユーザによってアクセスされるデータを記憶しアプリケーションを実行する、データセンタとして知られるオフサイト施設の需要が増えてきた。そのようなデータセンタは一般的に、データを記憶し管理する膨大な数のサーバ、スイッチ及び記憶装置を有する。典型的なデータセンタは、電力及び通信接続が付随する物理ラック構造物を有する。ラックは、データセンタの部屋全体に配列される。各ラックは、２つの側壁間にスロット又はシャーシを有するフレームを有する。スロットは、複数のネットワークデバイス−たとえばサーバ、スイッチ、記憶装置−を保持してよい。最新のデータセンタにおいて見られる上記のようなラック構造内には積層された上記のようなネットワークデバイスが多数存在する。例えば、データセンタの中には、何万台ものサーバと、それに付随する記憶装置とネットワークスイッチを有するものがある。よって典型的なデータセンタは、何万又は何十万の個別のラック内に何万台更には何十万台ものデバイスを含み得る。
【０００３】
資源を効率的に割り当てるため、データセンタは、多くの異なる種類のデバイスをプール装置内に有する。そのようなプールされたデバイスは、資源の必要性が生じる際に様々なホストサーバへ割り当てられてよい。そのようなデバイスは、ピーシーアイエキスプレス（ＰＣＩｅ）型スイッチによって始動し得る、デバイスとホストサーバとの間のＰＣＩｅプロトコルリンクを介して接続されてよい。
【０００４】
よって多くの最新のデータセンタは現在、多数のプールされたデバイスを備える分離アーキテクチャをサポートしている。そのようなデータセンタ１０の例が図１に示されている。システム管理者は、ルータ１４を介して設定データをＰＣＩｅファブリックボックス２０へ送ることを可能にするコンポーザアプリケーションにアクセスすることができる。ＰＣＩｅファブリックボックス２０は、多数のシリアル拡張バスデバイス−データセンタ内の他のデバイスによってアクセスされ得るＰＣＩｅ適合デバイス−を有する。この例では、ＰＣＩｅファブリックボックス２０は、ルータ１４からネットワークを介して設定データを受け取ることができるファブリック制御装置２２を有する。ファブリックボックス２０は、ホストデバイス−たとえばホストサーバ３０，３２，３４，３６をファブリックボックス２０内の様々なＰＣＩｅデバイスに接続可能にするＰＣＩｅスイッチ−たとえばＰＣＩｅスイッチ２４，２６−を有する。ＰＣＩｅスイッチ２４は上流ポート４０，４２を有する。ＰＣＩｅスイッチ２６は上流ポート４４，４６を有する。上流ポート４０，４２，４４，４６は、ケーブルを介してホストサーバ３０，３２，３４，３６へ接続される。ＰＣＩｅスイッチ２４はまた下流ポート５０，５２，５４，５６をも有する。ＰＣＩｅスイッチ２６はまた下流ポート６０，６２，６４，６６を有する。この例では、ファブリックボックス２０内には、スイッチ２４，２６のそれぞれの下流ポートに結合される複数のデバイスが存在する。これらのデバイスは、ホストサーバ３０，３２，３４，３６のうちのいずれかによってアクセスされ得る。
【０００５】
図１に示されているように、２つのホストサーバ３０，３２がスイッチ２４の上流ポート４０，４２に直接結合されている一方、２つのホストサーバ３４，３６がスイッチ２６の上流ポート４４，４６に直接結合されている。スイッチ２６を介して他のスイッチ２４に接続される様々なデバイスが、ホストサーバ３４，３６に割り当てられ得る。この例では、デバイス７０，７２，７４，７６は、ＰＣＩｅスイッチ２４の下流ポート５０，５２，５４，５６に直接結合される。デバイス８０，８２，８４，８６は、ＰＣＩｅスイッチ２６の下流ポート６０，６２，６４，６６に直接結合される。追加のデバイス及びホストサーバは、追加のＰＣＩｅスイッチを追加することによってサポートされ得る。典型的なシステム１０は、あるシステム資源を、ホストサーバから除去し、かつ、代わりに外部ファブリックボックス２０が供することを可能にする。よって様々な種類のシステム資源が、様々なサーバの要求が生じる際に、その様々なサーバへ割り当てられ得る。たとえばデバイス７０，７２，７４，７６，８０，８２，８４，８６の各々は、資源−たとえば不揮発性メモリ（ＮＶＭｅ）、画像処理装置（ＧＰＵ）、現場でプログラム可能なゲートアレイ（ＦＰＧＡ）、ネットワークインターフェースカード（ＮＩＣ）又は他の種類のＰＣＩｅ適合デバイス−であってよい。そのようなデバイスの各々は、ホスト−たとえばホストサーバ３０，３２，３４，３６−へ動的に割り当てられ得る。
【０００６】
ユーザーが、資源をホストへ割り当てることを望むとき、たとえば“一のＧＰＵをホスト１へ割り当てる”という要求をコンポーザアプリケーション１２へ送ってよい。続いてコンポーザアプリケーション１２は、ＰＣＩｅファブリック制御装置２２へ命令を送ることによって、ＧＰＵデバイス−たとえばデバイス７０−をホストサーバ３０へ割り当てる。ファブリックボックス２０は、図２のボックス９０で示されているように、ＰＣＩｅスイッチ２４又は２６を介してホストサーバ３０へ第１ＧＰＵデバイス７０を割り当てる。
【０００７】
上記の割り当て後、ユーザは、他のデバイス資源を他のホストサーバへ割り当ててよい。たとえばシステム管理者は、“一のＧＰＵをホスト３へ割り当てる”というような他の命令をコンポーザアプリケーション１２へ送って、他のＧＰＵ−たとえばデバイス７２−をホストサーバ３４へ割り当ててよい。続いてファブリックボックス２０は、図３のボックス９２で示されているように、ＰＣＩｅスイッチ２４及びＰＣＩｅスイッチ２６を介してホストサーバ３４へ他のＧＰＵデバイス７２を割り当てる。
【０００８】
ファブリックボックス−たとえば図１〜図２のファブリックボックス２０−に係る一の問題は、各異なるホストサーバへデバイスを割り当てるのに各異なるファブリックスイッチを用いることである。この場合、プールされたデバイスのホストへの経路距離はホスト毎に異なる。システム１０では、経路距離は、ホストとデバイスとを接続するのに要求されるデバイスの数で評価される。この例では、ホストへのデバイスの距離が最適ではない場合でも、コンポーザ１２は、そのデバイスをそのホストサーバへ割り当てることができる。たとえば図２に示されているように、デバイス７０がホストサーバ３０へ割り当てられるとき、ＰＣＩｅスイッチ２４は、ホストサーバ３０への接続を可能にする。よってホストサーバとデバイスとの間の距離は１で最適化される。対照的に、デバイス７２がホストサーバ３４へ割り当てられるとき、（図３に示されている）ボックス９２によって示されているようにホストサーバ３４へ接続するためには、接続は、ＰＣＩｅスイッチ２４とＰＣＩｅスイッチ２６の両方に及ぶ必要がある。よってホストサーバとデバイスとの間の経路距離は２であり最適な割り当てではない。良好な割り当ては、デバイス７０，７２，７４，又は７６の経路距離がＰＣＩｅスイッチ２６のみを介するように、デバイス７０，７２，７４，又は７６のうちの一をホストサーバ３４へ割り当てることである。しかしコンポーザアプリケーション１２は、最適な割り当てを実行するのに必要なデータを有していないため、割り当てられたデバイスとホストサーバとの間の経路距離は必要以上に長くなってしまう恐れがある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】米国特許第７２１９１８３号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１０】
割り当てられたデバイスとホストサーバとの間の経路距離の最小値を決定するファブリックボックスシステムが必要となる。ホストへ割り当てるデバイスを選択する際に、要求される種類のデバイスとホストとの間の経路距離を自動的に考慮するファブリックボックスもまた必要となる。それに加えて特許文献１では、Ｉ／Ｏデバイスを共有する装置及び方法が供されている。その装置は、第１の複数のＩ／Ｏポート、第２のＩ／Ｏポート、及びコアロジックを有する。前記第１の複数のＩ／Ｏポートは、ロードストアファブリックを介して複数のオペレーティングシステムドメインへ結合される。前記第１の複数のＩ／Ｏポートの各々は、前記複数のオペレーティングシステムドメインとスイッチング装置との間のトランザクションを送る。前記第２のＩ／Ｏポートは、第１の共有入出力エンドポイントへ結合される。前記第１の共有入出力エンドポイントは、前記複数のオペレーティングシステムドメインの各々のトランザクションを要求／完了する。前記コアロジックは、前記第１の複数のＩ／Ｏポート及び前記第２のＩ／Ｏポートに結合される。前記コアロジックは、前記第１の複数のＩ／Ｏポートと前記第２のＩ／Ｏポートとの間のトランザクションを送り、かつ、トランザクション層パケット内部にオペレーティングシステムドメインヘッダをカプセル化することによって、前記トランザクションの各々を複数のオペレーティングシステムドメイン（ＯＳＤ）のうちの対応するものに関連付ける。
【課題を解決するための手段】
【００１１】
一の開示された例は、複数のファブリックスイッチを有するファブリックボックスである。前記スイッチの各々は、ホストに結合される少なくとも１つの上流ポートを有する。当該ファブリックボックスは、前記複数のファブリックスイッチのうちの一の下流ポートに結合される複数のデバイスを有する。ファブリック制御装置は、前記複数のファブリックスイッチに結合される。前記ファブリック制御装置は、前記下流ポートの各々と前記上流ポートの各々との間の経路距離を決定するように動作し得る。ホストへのデバイスの割り当て要求を受け取ると、前記制御装置は、前記複数のデバイスのうち前記ホストへの経路距離が最短となるもデバイスを選択し、かつ、前記ホストを前記の選択されたデバイスへ接続するように前記複数のファブリックスイッチのうちの一を設定する。
【００１２】
他の例は、ファブリックボックスを介してホストへデバイスを割り当てる方法である。当該ファブリックボックスは、各々がホストに結合される少なくとも１つの上流ポートを有する複数のファブリックスイッチ、該複数のファブリックスイッチのうちの一の下流ポートに結合される複数のデバイス、及び、前記複数のファブリックスイッチに結合されるファブリック制御装置を有する。前記下流ポートの各々と前記上流ポートの各々との間の経路距離が決定される。ホストへデバイスを割り当てる割り当て要求が受け取られる。デバイスは、前記の割り当てられたホストへの最短経路距離に従って選択される。前記複数のファブリックスイッチのうちの一を介する接続は、前記の選択されたデバイスと前記の割り当てられたホストとの間で始動される。
【００１３】
開示されている他の例は、デバイス資源を効率的に割り当てるシステムである。コンポーザアプリケーションは、管理制御装置によって実行される。ファブリックボックスは、複数のファブリックスイッチ及びファブリック制御装置を有する。ネットワークは、前記管理制御装置及び前記ファブリックボックスに結合される。ホストサーバの各々は、前記複数のファブリックスイッチのうちの一の上流ポートに結合される。複数のデバイスは、前記複数のファブリックスイッチの下流ポートに結合される。前記ファブリック制御装置は、前記下流ポートの各々と前記上流ポートの各々との間の経路距離を決定する。前記コンポーザアプリケーションは、割り当て命令に応じて、要求されたホストサーバへの最短距離に基づいてデバイスを選択する。
【００１４】
上記の要約は、本開示の各実施形態又は全ての態様を表わすものではない。より正確に言うと、前述の要約は、本明細書に記載された新規の態様及び特徴の幾つかの例を提供するに過ぎない。本開示の上記の特徴及び利点並びに他の特徴及び利点は、添付図面及び添付の特許請求の範囲に関連して行われるとき本発明を実現する代表的な実施形態及び形態の以下の詳細な説明から容易に明らかになるであろう。
【００１５】
本開示は、添付図面に関連する典型的実施形態の以下の記述からよりよく理解されるであろう。
【図面の簡単な説明】
【００１６】
【図１】（従来技術）様々なホストへデバイス資源を割り当てる従来技術に係るファブリックボックスシステムの例である。
【図２】（従来技術）複数のホストのうちの一への一のデバイスの割り当てを示す図１のファブリックボックスのブロック図である。
【図３】（従来技術）複数のホストのうちの一への他のデバイスの非最適割り当てを示す図１のファブリックボックスのブロック図である。
【図４】経路距離を最小にするようにホストへのデバイスを効率的に割り当てる典型的なファブリックボックスシステムのブロック図である。
【図５】ホストとデバイスとの間の経路距離情報の考慮に基づいてデバイスが最適に割り当てられた図４の典型的なファブリックボックスシステムを示すブロック図である。
【図６】距離を最小にするようにホストへデバイスを効率的に割り当てるネットワークインターフェースカードを備える他の典型的なファブリックボックスのブロック図である。
【図７】ファブリックボックス内で最適な経路距離の割り当てを行うためのホストへのデバイス割り当て方法の流れ図である。
【発明を実施するための形態】
【００１７】
本開示は、様々な修正型及び代替型が可能である。幾つかの代表的な実施形態は、図面に例として示され、本明細書で詳述される。しかし本発明が、開示された特定の形態に限定されないことに留意して欲しい。より正確に言うと、開示は、添付の特許請求の範囲で定義されたような本発明の技術思想及び技術範囲内に属する修正型、均等型、及び代替型を全て網羅する。
【００１８】
本発明は、様々な形態で実施されうる。代表的な実施形態が図面に示され、本明細書で詳述される。本開示は、本開示の原理の例又は説明であり、開示の広い態様を、示された実施形態に限定するものではない。その範囲で、例えば、要約（Abstract）、課題を解決するための手段（Summary）及び発明を実施するための形態（Detailed Description）の節に開示されているが、特許請求の範囲に明示的に記載されていない要素及び制限は、含意、参照又は他の方法によって、単独又は集合的に、特許請求の範囲に組み込まれるべきでない。この詳細な説明のため、具体的に否定されない限り、単数は複数を含み逆の場合も同様であり、用語「含む（including）」は、「限定なしに含む」ことを意味する。更に、「約（about）」、「ほぼ（almost）」、「実質的に（substantially）」、「近似的に（approximately）」などの近似の用語は、本明細書では、「における（at）」、「近い（near）」、「に近い（nearly at」）、「〜の３〜５％以内（within 3-5% of）」、「許容可能な製造公差内」、又はこれらの任意の論理的組み合わせを意味するために使用されうる。
【００１９】
図４は、経路距離を最小にすることによってデータセンタ内でのホストへ様々なデバイス資源の割り当てを可能にする典型的な分配デバイスシステム１００のブロック図を示している。システム管理者は、ルータ１１４を介してピーシーアイエキスプレス（ＰＣＩｅ）ファブリックボックス１２０へ割り当て命令を送ることを可能にするコンポーザアプリケーション１１２へアクセスしてよい。コンポーザアプリケーション１１２は、システム管理者又は他の適切な情報処理デバイスによって操作されるネットワーク管理制御装置によって実行されてよい。ＰＣＩｅファブリックボックス１２０は、データセンタ内でホストサーバへ割り当て可能な多数のシリアル拡張バスデバイス−たとえばＰＣＩｅバージョン３又はバージョン４適合デバイス−を有する。この例では、ＰＣＩｅファブリックボックス１２０は、ルータ１１４からネットワークを介してコンポーザアプリケーション１１２からの設定命令を受け取ることが可能なファブリック制御装置１２２を有する。ファブリック制御装置１２２は、後述する最適経路距離を用いることによってホストサーバへデバイスを割り当てる制御アプリケーションを実行する。
【００２０】
ＰＣＩｅボックス１２０は、ＰＣＩｅスイッチ−たとえばＰＣＩｅスイッチ１２４とＰＣＩｅスイッチ１２６−を有する。スイッチ１２４とスイッチ１２６によって、ホストデバイス−たとえばホストサーバ１３０，１３２，１３４，１３６−が、様々なＰＣＩｅに接続可能となる。ＰＣＩｅスイッチ１２４は上流ポート１４０，１４２を有する。ＰＣＩｅスイッチ１２６は上流ポート１４４，１４６を有する。上流ポート１４０，１４２，１４４，１４６は、ケーブルを介してホストサーバ１３０，１３２，１３４，１３６へ接続される。ＰＣＩｅスイッチ１２４はまた、下流ポート１５０，１５２，１５４，１５６をも有する。ＰＣＩｅスイッチ１２６は、下流ポート１６０，１６２，１６４，１６６を有する。この例では、スイッチ１２４，１２６の下流ポート１５０，１５２，１５４，１５６，１６０，１６２，１６４，１６６に接続されるデバイスがファブリックボックス１２０内に存在する。これらのデバイスは、ホストサーバ１３０，１３２，１３４，１３６のいずれかによってアクセスされ得る。そのようなデバイスには、ファブリックボックス１２０によって電力が供され、かつ、ＰＣＩｅリンクを介してスイッチ１２４，１２６から他のデバイスとやり取りしてよい。追加のデバイスは、スイッチ１２４，１２６のいずれかの空いている下流ポートへの接続によってＰＣＩｅボックス１２０へ追加されてよい。様々な種類のデバイスが、複数の下流ポートのうちの一に接続される既存のデバイスを置き換えてもよい。追加のホストサーバもまた、スイッチ内の追加の上流ポートに追加されてよい。この例では２つのスイッチ１２４，１２６が示されているが、追加のホストサーバとデバイスを収容するために追加のスイッチがファブリックボックス２０へ追加されてよい。
【００２１】
２つのホストサーバ１３０，１３２がスイッチ１２４の上流ポート１４０，１４２に直接結合されている一方で、２つのホストサーバ１３４，１３６はスイッチ１２６の上流ポート１４４，１４６に直接結合されている。この例では、ＰＣＩｅ適合デバイス１７０，１７２，１７４，１７６は、ＰＣＩｅスイッチ１２４の下流ポート１５０，１５２，１５４，１５６に直接結合される。ＰＣＩｅ適合デバイス１８０，１８２，１８４，１８６は、ＰＣＩｅスイッチ１２４６の下流ポート１６０，１６２，１６４，１６６に直接結合される。ＰＣＩｅ適合デバイスは、不揮発性メモリ（ＮＶＭｅ）、画像処理装置（ＧＰＵ）、現場でプログラム可能なゲートアレイ（ＦＰＧＡ）、ネットワークインターフェースカード（ＮＩＣ）、独立ディスクの冗長アレイ（ＲＡＩＤ）インターフェース、Ｉ−ＩＢＡカード、又は他の種類のＰＣＩｅ適合デバイスを含んでよい。デバイス１７０，１７２，１７４，１７６，１８０，１８２，１８４，１８６のうちの１つ以上は、使用するために、スイッチ１２４，１２６の一方又は両方を介してホストサーバ１３０，１３２，１３４，１３６のうちの一へ割り当てられてよい。後述するように、割り当ては、ホストサーバと割り当てられるデバイスとの間の経路距離を考慮する。この例では、４つのデバイスがスイッチ１２４，１２６の各々に接続されているが、任意の数のデバイスが、利用可能な下流ポート数に基づいてスイッチ１２４，１２６の各々に接続されてよい。つまり任意の数のデバイスが、複数のホストサーバのうちの一へ割り当てられてよい。
【００２２】
この例では、デバイス１７０，１７２，１７４，１７６，１８０，１８２，１８４，１８６の各々には、各ホストサーバへの所定の経路距離が与えられている。経路距離は、デバイスを所与のホストサーバへ接続するのに必要な中間スイッチデバイスの数と定義される。スイッチ１２４，１２６のうちの一の下流ポート１５０，１５２，１５４，１５６，１６０，１６２，１６４，１６６へデバイスを接続するとき、下流ポート１５０，１５２，１５４，１５６，１６０，１６２，１６４，１６６の各々は、スイッチのハードウエア設計によって決定される異なる上流ポートへの所定の経路距離を有する。よって経路距離は、特定の下流ポートに接続される任意のデバイスへ割り当てられてよい。
【００２３】
図４は、下流ポート１５０，１５２，１５４，１５６，１６０，１６２，１６４，１６６の各々が、スイッチ１２４，１２６の各々のすべての上流ポート（及び対応するホスト）への経路距離情報を有することを示している。たとえばデバイス１７０は、スイッチ１２４の下流ポート１５０へ接続される。スイッチ１２４は、スイッチ１２６の２つの上流ポート１４４，１４６とやり取りするのに用いられなければならないため、デバイス１７０では、スイッチ１２４の２つの上流ポート１４０，１４２への経路距離は１単位で、かつ、スイッチ１２６の２つの上流ポート１４４，１４６への経路距離は２単位である。デバイス１８０では、スイッチ１２６の２つの上流ポート１４４，１４６への経路距離は１単位であるが、スイッチ１２４の２つの上流ポート１４０，１４２への経路距離は２単位である。よってデバイスがスイッチ１２４，１２６のうちの一の下流ポートに接続されるとき、そのデバイスは、すべての接続されたスイッチのすべての上流ポートの経路距離情報を有する。この例では、ファブリック制御装置１２２は、スイッチ１２４，１２６から得られる経路距離情報をコンポーザ１１２へ送出するアプリケーションプログラミングインターフェース（ＡＰＩ）を有する。この経路距離情報は、スイッチ１２４，１２６の上流ポートに結合されるすべてのホストへの下流ポートに結合されるすべてのデバイスの経路距離について与えられる。
【００２４】
すべての上流ポート、つまりはすべてのホストサーバへの任意のデバイスからの距離情報を有するコード部分が以下に示される。以下のコード中の領域ＩＤフィールド（たとえば１−ｚ−１又は１−ｚ−２）は、特定のホスト又は上流ポートへのマッピングに用いられてよい。以下のコード部分は、経路距離に従って、図４のファブリックボックス１２０のデバイスを割り当てるコンポーザアプリケーション１１２によって用いられる。
【００２５】
【数１】
2019175415.tif 000003
【００２６】
よって距離ＡＰＩは、ボックス１２０のすべてのデバイスについての情報をコンポーザアプリケーション１１２に提供する。ユーザーが、ホストへデバイスを割り当てる要求をコンポーザアプリケーション１１２へ送信するとき、コンポーザアプリケーション１１２は、ファブリックボックス１２０の利用可能なデバイスのリストから最短距離のデバイスを割り当ててよい。近いデバイスが見つからない場合、コンポーザアプリケーション１１２は、追加のスイッチにわたる送信を必要とすると考えられる他のデバイスを見つける。
【００２７】
この例では、距離のアルゴリズムのインターフェースプロトコルは、ＰＣＩｅリンクプロトコルである。しかしホストインターフェースは、他のプロトコル−たとえばイーサネット（登録商標）、ファイバチャネル、又はインフィニバンド−を利用してよいことに留意欲しい。接続されたホストデバイスに対する経路距離が最小のデバイスを選択するため、任意の種類のインターフェースプロトコルが、上述の原理に適用されてよい。距離割り当てアルゴリズムに従って、コンポーザアプリケーション１１２は、最短の経路距離でホストへデバイスをうまく割り当てることができる。図５は、図１のコンポーザアプリケーション１１２でのアルゴリズムに応じた結果として得られた図４のシステム１００のデバイス割り当てを示している。図５での同様の構成要素には、図４と同じ識別番号が付されている。
【００２８】
この例では、デバイス１７０，１７２，１８０はＧＰＵである。システム管理者が、複数のホストサーバのうちの一−たとえばホストサーバ１３０−へＧＰＵを割り当てることで、サーバ１３０の画像処理タスクを支援することが望ましいと考えられる。よってシステム管理者は、コンポーザアプリケーション１１２を介してホストサーバ１３０へのＧＰＵの割り当てを要求する。距離アルゴリズムを用いることによって、コンポーザアプリケーション１１２は、ファブリックボックス１２０内の未割当ＧＰＵデバイス、及び、それらのデバイスと要求されたホストサーバ１３０との間の経路距離を決定する。続いてコンポーザアプリケーション１１２は、ファブリック制御装置１２２に、割り当てを完了させるように適切なスイッチを設定させることを可能にする。この例では、デバイス１７０と１７２のいずれのホストサーバ１３０に対する経路距離が１である一方で、ホストサーバ１３０はスイッチ１２４の上流ポート１４０に接続されるので、デバイス１８０のホストサーバ１３０に対する経路距離は２である。よって図５のボックス１９０内に示されているように、デバイス１７０はスイッチ１２４を介してホストサーバ１３０に接続される。
【００２９】
その後システム管理者は、ＧＰＵデバイスが他のホストサーバ−たとえばホストサーバ１３４−に割り当てられることを望むことも考えられる。システム管理者は、コンポーザアプリケーション１１２を介してホストサーバ１３４へのＧＰＵの割り当てを要求する。コンポーザアプリケーション１１２は、未割当ＧＰＵデバイス、及び、それらのデバイスと要求されたホストサーバ１３４との間の経路距離を決定する。この例では、利用可能なデバイスのホストサーバ１３４に対する経路距離が２である一方で、ホストサーバ１３４はスイッチ１２６の上流ポート１４４に接続されるので、デバイス１８０のホストサーバ１３４に対する経路距離は１である。よって図５のボックス１９２内に示されているように、デバイス１８０はスイッチ１２６を介してホストサーバ１３４に接続される。
【００３０】
図６は、プール化されたデバイス資源への経路距離を最小にする他の分配デバイスシステム２００を示している。システム２００は、ルータ２１４を介して設定データをＰＣＩｅファブリックボックス２２０へ送信することを可能にするコンポーザアプリケーション２１２を有する。ＰＣＩｅファブリックボックス２２０は、データセンタ内の他のデバイスによってアクセス可能なＰＣＩｅ適合デバイスを有する。この例では、ＰＣＩｅファブリックボックス２２０は、ルータ２１４からネットワークを介して設定データを受け取ることが可能なファブリック制御装置２２２を有する。ファブリック制御装置２２２は、最適経路距離を用いることによってホストサーバへデバイスを割り当てる制御アプリケーションを実行する。ボックス２２０は、複数のＰＣＩｅスイッチ−たとえばスイッチ２２４，２２６−を有する。ＰＣＩｅスイッチ２２４，２２６の各々は、上流ポート２３０，２３２をそれぞれ有する。上流ポート２３０はスマートネットワークインターフェースカード（ＮＩＣ）２３４に接続される。上流ポート２３２はスマートインターフェースカード２３６に接続される。ネットワークインターフェースカード２３４，２３６は、ネットワークスイッチ２３８に接続される。
【００３１】
ネットワークスイッチ２３８の他のポートは、ホストデバイス−たとえばホストサーバ２４０，２４２，２４４，２４６−に接続される。このシステムでは、ネットワークは、ネットワークスイッチ２３８を介してホストデバイスをＰＣＩｅファブリックボックス２２０に接続する。よってホストサーバ２４０，２４２，２４４，２４６は、スイッチ２２４，２２６及びネットワークインターフェースカード２３４，２３６を介して様々なＰＣＩｅデバイスに接続されてよい。この例では、ファブリックボックス２２０内にスイッチ２２４，２２６に結合されるデバイスが存在する。
【００３２】
ネットワーク設定に基づき、２つのホストサーバ２４０，２４２は、スマートＮＩＣ２３４を介してスイッチ２２４に結合される一方で、２つのホストサーバ２４４，２４６は、スマートＮＩＣ２３６を介してスイッチ２２６に結合される。たとえばそれぞれのＮＩＣを介して複数のスイッチのうちの一に結合される３つのホストサーバ、及び、他のスイッチに結合される一のホストサーバを有するような他のネットワーク設定も可能である。ＰＣＩｅスイッチ２２４はまた下流ポート２５０，２５２，２５４，２５６をも有する。ＰＣＩｅスイッチ２２６は下流ポート２６０，２６２，２６４，２６６を有する。この例では、ＰＣＩｅ適合デバイス２７０，２７２，２７４，２７６は、それぞれの下流ポート２５０，２５２，２５４，２５６を介してＰＣＩｅスイッチ２２４に結合され、ＰＣＩｅ適合デバイス２８０，２８２，２８４，２８６は、それぞれの下流ポート２６０，２６２，２６４，２６６を介してＰＣＩｅスイッチ２２６に結合される。この例では、ＰＣＩｅスイッチ２２４，２２６の一の上流ポートは、スマートＮＩＣ２３４，２３６のうちの一と接続することで、ネットワークスイッチ２２４又は２２６を介したネットワークによってホストへのデバイスを共有する。スマートＮＩＣ２３０，２３２の各々は、各異なるデバイスに接続されるホストサーバからの各異なる経路距離を格納する。よってホストサーバへのデバイスの割り当て要求が生じるとき、スマートＮＩＣ２３０，２３２のうちの一からの距離情報は、同一のアルゴリズムによって利用可能となる。
【００３３】
この例では、デバイス２７０，２７６，２８２はメモリデバイス−たとえばＮＶＭ−である。システム管理者が、ＮＶＭを複数のホストサーバ−たとえばサーバ２４０−のうちの一へ割り当てることで、サーバ２４０の記憶容量の増大を支援することが望ましいと考えられる。よってシステム管理者は、コンポーザアプリケーション２１２を介してホストサーバ２４０へのＮＶＭの割り当てを要求する。距離アルゴリズムを用いることによって、コンポーザアプリケーション２１２は、ファブリックボックス２２０内の未割当ＮＶＭデバイス、及び、それらのデバイスと要求されたホストサーバ２４０との間の経路距離を決定する。この例では、デバイス２７０と２７２のいずれのホストサーバ２４０に対する経路距離が１である一方で、ホストサーバ２４０はスマートＮＩＣ２３４及びスマートＮＩＣ２３８を介してスイッチ２２４の上流ポート２３０に接続されるので、デバイス２８２のホストサーバ２４０に対する経路距離は２である。よってデバイス２７０はスイッチ２２４及びスマートＮＩＣ２３４を介してホストサーバ２４０に接続される。
【００３４】
その後システム管理者は、ＮＶＭデバイスが他のホストサーバ−たとえばホストサーバ２４４−に割り当てられることを望むことも考えられる。システム管理者は、コンポーザアプリケーション２１２を介してホストサーバ２４４へのＮＶＭの割り当てを要求する。コンポーザアプリケーション２１２は、未割当ＮＶＭデバイス、及び、それらのデバイスと要求されたホストサーバ２４４との間の経路距離を決定する。この例では、利用可能なデバイス２７６のホストサーバ２４４に対する経路距離が２である一方で、ホストサーバ２４４はスマートＮＩＣ２３６を介してスイッチ２２６の上流ポート２３２に接続されるので、利用可能なデバイス２８２のホストサーバ２４４に対する経路距離は１である。よってデバイス２８２はスイッチ２２６及びスマートＮＩＣ２３６を介してホストサーバ２４４に接続される。
【００３５】
図７の流れ図は、経路距離に基づく図４のファブリック制御装置及び／又はコンポーザ１１２による効率的なデバイスの割り当ての典型的な機械可読命令を表す。この例では、機械可読命令は、（ａ）プロセッサ、(ｂ)制御装置、及び／又は（ｃ）１つ以上の他の適切な処理装置によって実行されるアルゴリズムを含んでよい。アルゴリズムは、有形媒体−たとえばフラッシュメモリ、ＣＤ−ＲＯＭ、フロッピーディスク、ハードドライブ、ディジタルビデオ（多目的）ディスク（ＤＶＤ）又は他のメモリドライブ、−上に記憶されるソフトウエアで実施されてよい。しかしあるいはその代わりに当業者は、アルゴリズムの全部及び／又は一部が、プロセッサ以外のデバイスによって実行され、かつ／あるいは、周知の方法でファームウエア又は専用ハードウエアによって実施されてもよいことをすぐに理解する（たとえばアルゴリズムの全部及び／又は一部は、用途特定集積回路（ＡＳＩＣ）、プログラム可能なロジックデバイス（ＰＬＤ）、現場でプログラム可能なロジックデバイス（ＦＰＬＤ）、現場でプログラム可能なゲートアレイ（ＦＰＧＡ）、離散的ロジック等によって実施されてよい）。たとえばインターフェースのうちの任意の又はすべての構成要素は、ソフトウエア、ハードウエア、及び／又はファームウエアによって実施されてよい。またフローチャートによって表される機械可読命令の一部又は全部は手動で実施されてよい。さらに典型的なアルゴリズムは図７で表されたフローチャートに関連して表されているが、当業者は、典型的な機械可読命令を実施する他の多くの方法が代わりに用いられ得ることをすぐに理解する。たとえばブロックの実行順序は変化してよいし、かつ／あるいは、記載されたブロックは変更、削除、又は結合されてよい。ＰＣＩｅファブリック制御装置１２２は最初に、ＰＣＩｅスイッチ１２４，１２６のポートの各々に接続されるデバイスとホストを決定する（７００）。ファブリック制御装置１２２は、ファブリックボックス１２０内のデバイスの種類を決定し、かつ、コンポーザアプリケーション１１２へ情報を送信する（７０２）。ファブリック制御装置１２２は続いて、各上流ポートへの各下流ポートの経路距離情報を受信する（７０４）。ファブリック制御装置１２２は、コンポーザアプリケーション１１２からルータ１１４を介して割り当て要求を受信する（７０６）。ファブリック制御装置１２２は、要求されたホストを読み取り、かつ、割り当て要求を満たすのに適したデバイスと要求されたホストとの間の経路距離を決定する（７０８）。ファブリック制御装置１２２は続いて、最短経路距離のデバイスを決定し、かつ、そのデバイスのうちの一を選択する（７１０）。ファブリック制御装置１２２は続いて、選択されたデバイスとホストとの間を接続するように適切なＰＣＩｅスイッチを設定する（７１２）。
【００３６】
本願で用いられているように、「構成要素」、「モジュール」、「システム」等の用語は概して、コンピュータ関連のもの−ハードウエア（たとえば回路）、ハードウエアとソフトウエアの結合、ソフトウエア、又は、１つ以上の特定の機能を備える動作機械に関するもののいずれか−を指称する。たとえば構成要素は、プロセッサ（たとえばディジタル信号プロセッサ）上で動作するプロセス、プロセッサ、オブジェクト、実行可能ファイル、プログラム、及び／又はコンピュータであってよいが、これらに限定されない。例として、制御装置上で動作するアプリケーションと制御装置のいずれも構成要素であってよい。１つ以上の構成要素はプロセス及び／又は実行スレッドの内部に存在してよい。構成要素は、一のコンピュータ上に局在、かつ／あるいは、２つ以上のコンピュータ間で分配されてよい。さらに「デバイス」は、特定の設計がなされたハードウエア、ソフトウエアが実行されることで特定の機能を実行可能となるように特化される汎用ハードウエア、及び／又は、コンピュータ可読媒体上に記憶されるソフトウエアであってよい。
【００３７】
本明細書で使用される用語は、特定の実施形態について述べるためだけのものであり、本発明を限定するものではない。本明細書で使用されるとき、単数形「ａ」、「ａｎ」及び「ｔｈｅ」は、文脈で特に断らない限り、複数形も含む。更に、用語「含む（including）」、「含む（includes）」、「有する（having）」、「有する（has）」、「備える（with）」、又はこれらの変形は、詳細な説明及び／又は特許請求の範囲で使用される範囲で、そのような用語は、「含む（comprising）」と同じように包括的である。
【００３８】
特に定義されない限り、本明細書で使用される全ての用語（技術及び科学用語を含む）は、当業者によって一般に理解される意味と同じ意味を有する。更に、一般に使用されている辞書で定義されたような用語は、関連技術の文脈での意味と一致する意味を有すると解釈されるべきであり、本明細書で明示的に定義されない限り、理想的又は過度に形式的な意味で解釈されない。
【００３９】
以上、本発明の様々な実施形態について述べたが、それらの実施形態が、単なる例であり限定ではないことを理解されたい。開示された実施形態に対する多数の変更が、本発明の趣旨又は範囲から逸脱せずに、本明細書の開示に従って行われうる。したがって、本発明の広さ及び範囲は、前述の実施形態のいずれによっても限定されるべきでない。より正確に言うと、本発明の範囲は、以下の特許請求の範囲とその等価物によって定義されるべきである。
【００４０】
本発明を１つ以上の実施態様に関して図示し述べてきたが、本明細書及び添付図面の読み取りと理解に基づいて、等価な変更及び修正が行われる又は当業者に知られる。更に、本発明の特定の特徴が、幾つかの実施態様の１つのみに関して開示されたが、そのような特徴が、任意の所定又は特定用途に望ましく有利になるように、他の実施態様の１つ以上の他の特徴と組み合わせられうる。
【図１】
2019175415.tif 000004
【図２】
2019175415.tif 000005
【図３】
2019175415.tif 000006
【図４】
2019175415.tif 000007
【図５】
2019175415.tif 000008
【図６】
2019175415.tif 000009
【図７】
2019175415.tif 000010
【外国語明細書】
2019175415000001.pdf