(57)【要約】【課題】  共有コンピュータ・リソース上の複数の論理パーティションにわたって仮想Ｉ／Ｏサーバを分散させるためのシステム及び方法を提供すること。【解決手段】  高速通信チャネルにより接続された幾つかのアプリケーションＬＰＡＲにわたって仮想Ｉ／Ｏ機能を分散させることによって、分散型仮想Ｉ／Ｏツールが、専用ＶＩＯサーバに取って換わる。物理Ｉ／Ｏデバイスが、使用可能なＬＰＡＲにわたって分散される。分散型仮想Ｉ／Ｏツールは、各々のＩ／Ｏ要求を適切なＩ／Ｏデバイスに割り当てる。分散型仮想Ｉ／Ｏツールは、各々のＩ／Ｏ要求を監視し、特定のデバイスにおいて性能が低下したとき、又はデバイスがもはや使用可能でないとき、Ｉ／Ｏデバイスを再割り当てする。【選択図】      図３
2008041093.tif 000002
【特許請求の範囲】
【請求項１】
共有コンピュータ・リソース上の複数の論理パーティションにわたって仮想Ｉ／Ｏサーバを分散させるための、コンピュータにより実施される方法であって、
高速通信チャネルによって接続された複数の論理パーティションを有する共有コンピュータ・リソースの論理パーティション上で動作するアプリケーションのＩ／Ｏ要求を受け取るステップであって、Ｉ／Ｏデバイスが前記複数の論理パーティションにわたって物理的に分散されている、ステップと、
前記Ｉ／Ｏ要求を前記Ｉ／Ｏデバイスの１つに割り当てるステップであって、該Ｉ／Ｏ要求は、どの論理パーティションがＩ／Ｏ要求を受け取る前記アプリケーションを実行するかに関係なく、いずれかの論理パーティションに接続された適切なタイプのいずれかのＩ／Ｏデバイスに割り当てられることができる、ステップと、
前記Ｉ／Ｏ要求を前記割り当てられたＩ／Ｏデバイスに送るステップと、
を含む方法。
【請求項２】
前記Ｉ／Ｏ要求を前記割り当てられたＩ／Ｏデバイスにバインドするステップをさらに含み、前記Ｉ／Ｏ要求は、クライアント／サーバ・セッションの一部である、請求項１に記載のコンピュータにより実施される方法。
【請求項３】
自律マネージャと通信して前記Ｉ／Ｏ要求を前記最もパフォーマンスの良いＩ／Ｏデバイスに割り当てるステップをさらに含む、請求項１に記載のコンピュータにより実施される方法。
【請求項４】
各々のＩ／Ｏデバイスのデバイス・マネージャに照会して前記Ｉ／Ｏ要求を前記最もパフォーマンスの良いＩ／Ｏデバイスに割り当てるステップをさらに含む、請求項１に記載のコンピュータにより実施される方法。
【請求項５】
特定のアプリケーションと特定のＩ／Ｏデバイスとの間の割り当て基本設定を有するマッピング・リストを用いて前記Ｉ／Ｏ要求を好ましいＩ／Ｏデバイスに割り当てるステップをさらに含む、請求項１に記載のコンピュータにより実施される方法。
【請求項６】
前記前に割り当てられたＩ／Ｏデバイスが所定のパフォーマンスしきい値を下回るとき、前記セッション内の後続のＩ／Ｏ要求を別のＩ／Ｏデバイスに再割り当てするステップをさらに含む、請求項２に記載のコンピュータにより実施される方法。
【請求項７】
前記前に割り当てられたＩ／Ｏデバイスに物理的に接続された前記パーティションに障害が生じるか又はこれが使用可能でないとき、前記セッション内の後続のＩ／Ｏ要求を別のＩ／Ｏデバイスに再割り当てするステップをさらに含む、請求項２に記載のコンピュータにより実施される方法。
【請求項８】
共有コンピュータ・リソース上の複数の論理パーティションにわたって仮想Ｉ／Ｏサーバを分散させるための装置であって、
プロセッサと、
前記プロセッサに接続されたメモリと、
前記メモリ内で動作するアプリケーションと、
高速通信チャネルによって接続された複数の論理パーティションと、
前記複数の論理パーティションにわたって物理的に分散された複数のＩ／Ｏデバイスと、
前記アプリケーションのＩ／Ｏ要求を受け取り、どの論理パーティションが前記Ｉ／Ｏ要求を受け取る前記アプリケーションを実行するかに関係なく、いずれかの論理パーティションに接続された適切なタイプのいずれかのＩ／Ｏデバイスに割り当てられることができる前記Ｉ／Ｏ要求を、前記Ｉ／Ｏデバイスの１つに割り当て、該Ｉ／Ｏ要求を前記割り当てられたＩ／Ｏデバイスに送るように動作可能である、前記メモリ内の分散型仮想Ｉ／Ｏプログラムと
を備える装置。
【請求項９】
コンピュータに、共有コンピュータ・リソース上の複数の論理パーティションにわたって仮想Ｉ／Ｏサーバを分散させる、複数の命令を含むコンピュータ可読メモリであって、前記複数の命令が、
Ｉ／Ｏ要求を受け取るための第１の命令と、
使用可能なＩ／Ｏデバイスを決定するための第２の命令であって、前記コンピュータは高速通信チャネルによって接続された複数の論理パーティションを含み、Ｉ／Ｏデバイスは前記複数の論理パーティションにわたって物理的に分散される、第２の命令と、
前記Ｉ／Ｏ要求を前記Ｉ／Ｏデバイスの１つに割り当てるための第３の命令であって、前記Ｉ／Ｏ要求は、どの論理パーティションが前記Ｉ／Ｏ要求を受け取る前記アプリケーションを実行するかに関係なくいずれかの論理パーティションに接続された適切なタイプのいずれかのＩ／Ｏデバイスに割り当てることができる、第３の命令と、
前記Ｉ／Ｏ要求を前記割り当てられたＩ／Ｏデバイスに送るための第４の命令と
を含むコンピュータ可読メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、電気コンピュータ及びデジタル・データ処理に関し、具体的には、コンピュータがデータを転送する経路を選択することに関する。
【背景技術】
【０００２】
ＵＮＩＸ（登録商標）サーバ（UNIXは、The OpenGroupの商標）における論理パーティション（「ＬＰＡＲ、logicalpartition」）の出現は、以前はメインフレーム・システムのみによって提供されたクラスのサービスを、ミッドレンジ・サーバが提供することを可能にした。メインフレーム・コンピュータは、従来より、異なる別個のビルディング・ブロックを用いて多数の「システム・イメージ」を構築するために、物理パーティション化を用いていた。論理パーティションを用いるＵＮＩＸ（登録商標）サーバは、システム・イメージにわたる、コンポーネントのより細かい粒度及び互換性を可能にした。さらに、多数のパーティションにわたって入力／出力（「Ｉ／Ｏ」）デバイスを仮想化することは、論理パーティション化の機能をさらに強化した。Ｉ／Ｏデバイスの仮想化により、多数の論理パーティションが、イーサネット（登録商標）・アダプタ、ディスク・アダプタ等のような物理リソースを共有することが可能になる。したがって、これらの仮想Ｉ／Ｏアダプタを各々の論理パーティション専用にするのではなく、パーティション間でアダプタを共有し、各々のＬＰＡＲが、必要とされるＩ／Ｏアダプタのみを使用する。
【０００３】
仮想Ｉ／Ｏアダプタの管理には、全てのリソースのために働く専用コンポーネントが必要である。例えば、全ての共有Ｉ／Ｏデバイスを処理するタスク専用の特殊ＬＰＡＲを形成することによって、仮想Ｉ／Ｏサーバすなわち「ＶＩＯ」サーバを生成することができる。ＶＩＯサーバは、他の全てのＬＰＡＲからの入力・出力要求を処理する「仮想デバイス」として働く。共有Ｉ／Ｏデバイスの全てが、ＶＩＯサーバに物理的に接続される。ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（IBM, BladeCenterは、InternationalBusiness Machines Corporationの商標）は、仮想Ｉ／Ｏが、ファイバ・チャネル及びイーサネット（登録商標）・ネットワーキング・インターフェース・カードを含むことを可能にするＢｌａｄｅＣｅｎｔｅｒシャーシを用いて、仮想Ｉ／Ｏの管理に様々に取り組んでいる。ＢｌａｄｅＣｅｎｔｅｒは、仮想化を行うのに専用ＬＰＡＲに依存しないが、専用ＶＩＯサーバを用いて仮想化を行う専用プロセッサが、シャーシの管理ブレード内に収容される。
【０００４】
第１のデバイスに障害が生じた場合には、仮想Ｉ／Ｏサーバは、ソフトウェアを用いて、入力／出力を代替的なデバイスにシームレスにリダイレクトさせる。例えば、多数のイーサネット（登録商標）・アダプタにアクセスできることによって、もはやいずれかの単一の物理アダプタの故障が、いずれかの所定のＬＰＡＲのイーサネット（登録商標）機能を奪うことがなくなる。代わりに、ＶＩＯサーバは、別の物理アダプタからのクライアントＬＰＡＲに所望の機能を提供する。
【０００５】
しかしながら、集中型専用ＶＩＯサーバを使用することにより、全てのＬＰＡＲが、極度にその単一の専用ＶＩＯサーバに依存する状態に置かれる。例えば、プロセッサの不具合又はオペレーティング・システムの機能不良といった何らかの故障機構がＶＩＯサーバに現れる場合には、そのＶＩＯサーバに依存している、ＬＰＡＲ上で動作している全てのアプリケーションが、Ｉ／Ｏアダプタを通して通信する能力を失うことになる。言い換えれば、今や、専用ＶＩＯサーバは、Ｉ／Ｏアダプタを使用する全てのアプリケーション及びＬＰＡＲの単一障害点になる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＶＩＯサーバの単一障害点を排除する１つの周知の解決策は、冗長専用ＶＩＯ  ＬＰＡＲを形成することである。しかしながら、冗長専用ＶＩＯ  ＬＰＡＲの形成には、必要以上にリソースを消費する。例えば、各々の専用ＶＩＯ  ＬＰＡＲは、プロセッサ及びメモリ割り当てに加えて、ディスク・スペース、並びにアプリケーションの実行及びユーザのための付加価値の直接計算の実行のためにより良く用いられる他のこうしたリソースを必要とする。したがって、アプリケーションＬＰＡＲの一部又は全てにわたって動作することができ、その結果、単一障害点の影響を受けず、コンピュータ・リソースの複製も作らない、分散型ＶＩＯサーバに対する必要性が存在する。
【課題を解決するための手段】
【０００７】
上記で識別された必要性に対処する本発明が、分散型仮想Ｉ／Ｏツール（Distributed Virtual I/O Tool）である。高速通信チャネルにより接続された幾つかのアプリケーションＬＰＡＲにわたって仮想Ｉ／Ｏ機能を分散させることによって、分散型仮想Ｉ／Ｏツールが、専用ＶＩＯサーバのＬＰＡＲに取って換わる。分散型仮想Ｉ／Ｏツールは、複数の論理パーティションを有する共有リソースの論理パーティション上で動作するアプリケーションのＩ／Ｏ要求を受け取る。ここで、Ｉ／Ｏデバイスは複数の論理パーティションにわたって物理的に分散されている。分散型仮想Ｉ／Ｏツールは、どの論理パーティションがＩ／Ｏ要求を受け取るアプリケーションを実行するかに関係なく、いずれかの論理パーティションに接続された適切なタイプのいずれかのＩ／Ｏデバイスに割り当てることができるＩ／Ｏ要求を、Ｉ／Ｏデバイスの１つに割り当て、Ｉ／Ｏ要求を割り当てられたＩ／Ｏデバイスに送る。
【０００８】
一般に、各々のアプリケーション又はＬＰＡＲは、特定のＩ／Ｏデバイスにマッピングし、アプリケーション又はＬＰＡＲをマッピングされたデバイスにバインドする。前の割り当てがない場合には、分散型仮想Ｉ／Ｏツールは、Ｉ／Ｏ要求が行われたときに、Ｉ／Ｏデバイスを割り当てる。分散型仮想Ｉ／Ｏツールは、各々のＩ／Ｏ要求を監視し、特定のデバイス又は該デバイスに接続されたＬＰＡＲのパフォーマンスが低下し、使用可能でなくなったとき、Ｉ／Ｏデバイスを再割り当てする。Ｉ／Ｏデバイスの割り当て及び再割り当ては、コンピュータ・システム全体のパフォーマンスの監視及び管理をタスクとする自律マネージャの推奨に基づくことができる。分散型仮想Ｉ／Ｏツールの代替的な実施形態は、各々のＩ／Ｏデバイス・マネージャに可用性及びパフォーマンス・データについて照会し、Ｉ／Ｏデバイス・マネージャの応答に基づいて、Ｉ／Ｏデバイスを割り当てるか又は再割り当てする。代替的に、使用可能なＬＰＡＲにわたって物理Ｉ／Ｏデバイスをランダムに分散させ、物理Ｉ／Ｏデバイスに対して、特定のＩ／Ｏを必要とするＬＰＡＲを優先的に取り扱うことができる。更に別の実施形態において、ＬＰＡＲは、専用Ｉ／Ｏデバイスを有することができ、仮想Ｉ／Ｏツールを共有しない。
【０００９】
本発明の特性と考えられる新規な特徴は、添付の特許請求の範囲に記載される。しかしながら、本発明自体、並びに好ましい使用形態、その更なる目的及び利点は、添付の図面と併せて読むとき、例示的な実施形態の以下の詳細な説明を参照することによって最も良く理解されるであろう。
【発明を実施するための最良の形態】
【００１０】
本発明の原理は、種々のコンピュータ・ハードウェア及びソフトウェア構成に適用可能である。ここに用いられる「コンピュータ・ハードウェア」又は「ハードウェア」という用語は、論理演算を受け入れ、実行し、データを格納又は表示することが可能な何らかのマシン又は装置を指し、制限なく、プロセッサ及びメモリを含み、「コンピュータ・ソフトウェア」又は「ソフトウェア」という用語は、コンピュータ・ハードウェアに演算を実行させるように動作可能な任意の組の命令を指す。ここに用いられる「コンピュータ」という用語は、制限なく、ハードウェア及びソフトウェアの任意の有用な組合せを含み、「コンピュータ・プログラム」又は「プログラム」は、コンピュータ・ハードウェアに、論理演算を受け入れさせ、実行させ、データを格納させ、又は表示させるように動作可能な任意のソフトウェアを含む。コンピュータ・プログラムは、制限なく、サブルーチン、モジュール、機能、方法、及びプロシージャを含む、複数のより小さいプログラミング・ユニットから構成されてもよく、それらから構成されることが多い。したがって、本発明の機能は、複数のコンピュータ及びコンピュータ・プログラムの間で分散させることができる。しかしながら、本発明は、構成し、１つ又は複数の汎用コンピュータが、本発明の新規な態様を実施することを可能にする単一のコンピュータ・プログラムとして最も良く説明される。説明のために、本発明のコンピュータ・プログラムは、「分散型仮想Ｉ／Ｏツール」と呼ばれる。
【００１１】
付加的に、図１に示されるように、分散型仮想Ｉ／Ｏツールが、ハードウェア・デバイスの例示的なネットワークを参照して以下に説明される。「ネットワーク」は、インターネットのような通信媒体を通して、互いに連結され、通信状態にある任意の数のハードウェア・デバイスから構成される。「通信媒体」は、制限なく、いずれかの物理媒体、光媒体、電磁媒体、又はハードウェア又はソフトウェアがデータを伝送することができる他の媒体を含む。便宜的に、例示的なネットワーク１００は、ワークステーション・コンピュータ１０５、ワークステーション・コンピュータ１１０、サーバ・コンピュータ１１５及び永続的格納装置１２０を含む、限られた数のノードのみを有する。ネットワーク接続１２５は、ネットワーク・ノード１０５−１２０間の通信を可能にするのに必要な、全てのハードウェア、ソフトウェア及び通信媒体を含む。以下の文脈において特に示されない限り、全てのネットワーク・ノードは、ネットワーク接続１２５を通して互いに通信するために、入手可能な公開プロトコル又はメッセージング・サービスを用いる。
【００１２】
共有リソースとして知られる、多数の論理パーティションを有するコンピュータが、図２に示される。共有リソース２００は、専用論理パーティションすなわちＬＰＡＲ上にＶＩＯサーバを提供する従来技術の方法の一例である。共有リソース２００は、パーティション間通信２２０、ＩＢＭからのＰＯＷＥＲ  ＨＹＰＥＲＶＩＳＯＲ（International Business Machines Corporationの商標）製品のような、全てのＬＰＡＲをリンクする高速通信システムによって接続された幾つかのＬＰＡＲを有する。ＬＰＡＲ＿１  ２１１は、ＡＩＸ（InternationalBusiness Machines Corporationの商標）オペレーティング・システム上でアプリケーションを実行する。ＬＰＡＲ＿２  ２１２は、ＬＩＮＵＸ（LinusTorvaldsの商標）オペレーティング・システム上でアプリケーションを実行する。ＬＰＡＲ＿３  ２１３は、ｉ５オペレーティング・システム上でアプリケーションを実行する。ＬＰＡＲ＿４  ２１４は、コンピュータ・リソースに対する要求が増大した場合に使用可能な、割り当てられていないリソースを有する。ＬＰＡＲ＿５  ２１５は、ＶＩＯ  ＬＰＡＲであり、イーサネット（登録商標）・アダプタ、ファイバ・チャネル及び永続的格納媒体のような全ての使用可能なＩ／Ｏデバイスに物理的に接続する。各々のアプリケーションＬＰＡＲ（２１１−２１４）は、パーティション間通信２２０及びＶＩＯサーバＬＰＡＲ２１５を介して、Ｉ／Ｏデバイス２５０にアクセスする。
【００１３】
図３は、幾つかのＬＰＡＲにわたって分散されたＶＩＯサーバを用いる、改善された共有リソース３００を示す。改善された共有リソース３００上のＬＰＡＲは、図２の従来技術のものと同様に、パーティション間通信３２０によって接続される。ＬＰＡＲ＿１  ３１１及びＬＰＡＲ＿５  ３１５は、ＡＩＸオペレーティング・システム上でアプリケーションを実行する。ＬＰＡＲ＿２  ３１２は、ＬＩＮＵＸオペレーティング・システム上でアプリケーションを実行する。ＬＰＡＲ＿３  ３１３は、ｉ５オペレーティング・システム上でアプリケーションを実行する。ＬＰＡＲ＿４  ３１４は、コンピュータ・リソースに対する要求が増大した場合に使用可能な、割り当てられていないリソースを有する。分散型ＶＩＯツール４００が、全体のサーバ管理ソフトウェアの一部として、ＬＰＡＲのいずれかの上で動作する。ＬＰＡＲ３１１、３１２及び３１５は、それぞれＩ／Ｏデバイス３５１、３５２及び３５３に物理的に接続される。各ＬＰＡＲ（３１１―３１５）は、パーティション間通信３２０、及びＬＰＡＲ３１１、３１２及び３１５を通した直接的なＩ／Ｏ接続を介して、Ｉ／Ｏデバイス３５０のいずれかにアクセスすることができる。本発明の実施形態においては、ＬＰＡＲ３１１、３１２又は３１５は、他のＬＰＡＲによって共有されない専用Ｉ／Ｏデバイスを有することができる。
【００１４】
分散型ＶＩＯツール４００は、一般に、図４にメモリ４２０として概略的に表される、メモリ内に格納される。ここで用いられる「メモリ」という用語は、制限なく、コンピュータが、任意の時間データ又はソフトウェアを格納することができる、電気回路、磁気ディスク、又は光ディスクのような何らかの揮発性媒体又は永続的媒体を含む。単一のメモリが複数の媒体を含んでもよく、複数の媒体にわたって単一のメモリを分散させてもよい。したがって、図４は、説明用の手段として含まれているにすぎず、必ずしもメモリ４２０の何らかの特定の物理的実施形態を反映しているとは限らない。しかしながら、図２に示されるように、メモリ４２０は、付加的なデータ及びプログラムを含むことができる。分散型ＶＩＯツール４００に対する特定のインポートのうち、メモリ４２０は、自律マネージャ４３０、アプリケーション４５０、Ｉ／Ｏデバイス・マッピング・リスト４６０及び分散型ＶＩＯツール４００が相互作用するＩ／Ｏデバイス・マネージャ４７０を含むことができる。さらに、分散型ＶＩＯツール４００は、３つのコンポーネント、すなわちＩ／Ｏ管理コンポーネント５００、Ｉ／Ｏデバイス割り当てコンポーネント６００及びＩ／Ｏフェイルオーバ・コンポーネント７００を有する。
【００１５】
自律マネージャ４３０は、コンピュータ・システムを連続的に監視し分析して、該システムがスムーズに作動することを保証する。自律マネージャ４３０の当技術分野において周知の１つの主要な機能は、ロード・バランシングであり、システム・リソースが、サーバ上のアプリケーションによって有効に用いられるようにする。アプリケーション４５０は、サーバ上のユーザのためにタスクを実行する関数プログラムである。アプリケーション４５０の例は、データベース、インターネット・サイト、会計ソフトウェア及びｅ−メール・サービスのようなものを含む。Ｉ／Ｏデバイス・マッピング・リスト４６０は、バインディングを用いて、種々のアプリケーション及びＬＰＡＲを特定のＩ／Ｏデバイスにマッピングするファイルである。Ｉ／Ｏデバイス・マッピング・リスト４６０はまた、Ｉ／Ｏデバイスについてのパフォーマンスしきい値、又は特定のアプリケーションをＩ／Ｏデバイスに割り当てるための好ましい優先順位といった、他の構成の基本設定を含むこともできる。Ｉ／Ｏデバイス・マネージャ４７０は、物理Ｉ／Ｏデバイスを構成し、動作させるプログラムである。
【００１６】
図５に示されるように、Ｉ／Ｏ管理コンポーネント５００は、共有リソース３００上のアプリケーション４５０の１つのＩ／Ｏ要求が発行される度に開始する（５１０）。Ｉ／Ｏ管理コンポーネント５００は、Ｉ／Ｏ要求を受け取り（５１２）、Ｉ／Ｏデバイス・マッピング・リスト４６０にアクセスする（５１４）。Ｉ／Ｏ管理コンポーネント５００は、Ｉ／Ｏデバイスが、該Ｉ／Ｏ要求を発行した又は受け取ったアプリケーション又はＬＰＡＲに割り当てられているかどうかを判断する（５１６）。Ｉ／Ｏデバイスが割り当てられていない場合には、Ｉ／Ｏ管理コンポーネント５００は、Ｉ／Ｏデバイス割り当てコンポーネント６００を開始する（５１８）。Ｉ／Ｏデバイスが既に割り当てられている場合、又はＩ／Ｏデバイスを割り当てた後、Ｉ／Ｏ管理コンポーネント５００は、割り当てられたＩ／Ｏデバイスが使用可能であるかどうかを判断する（５２０）。割り当てられたＩ／Ｏデバイスが使用可能でない場合には、Ｉ／Ｏ管理コンポーネント５００は、Ｉ／Ｏフェオルオーバ・コンポーネント７００を開始する（５２２）。Ｉ／Ｏ要求が使用可能なＩ／Ｏデバイスに割り当てられることを保証した後、Ｉ／Ｏ管理コンポーネント５００は、割り当てられたＩ／Ｏデバイスが、許容可能なレベルで機能しているかどうかを判断する（５２４）。パフォーマンスしきい値は、Ｉ／Ｏデバイス・マッピング・リスト４６０において設定されてもよく、又は自律マネージャ４３０のような別のソースからもたらされてもよい。Ｉ／Ｏデバイスのパフォーマンスが許容できるものでない場合には、Ｉ／Ｏ管理コンポーネント５００は、Ｉ／Ｏデバイス割り当てコンポーネント６００を開始する（５２６）。Ｉ／Ｏ要求が、使用可能な許容できるＩ／Ｏデバイスに割り当てられると、Ｉ／Ｏ管理コンポーネント５００は、Ｉ／Ｏ要求を、割り当てられたＩ／Ｏデバイス割り当てコンポーネント４７０に送り（５２８）、Ｉ／Ｏ管理コンポーネント５００が停止する（５３０）。
【００１７】
図６は、Ｉ／Ｏ管理コンポーネント５００によって起動されたときに、Ｉ／Ｏデバイス割り当てコンポーネントが開始する（６１０）ことを示す。Ｉ／Ｏデバイス割り当てコンポーネント６００は、Ｉ／Ｏ要求を読み取り（６１２）、Ｉ／Ｏデバイス・マッピング・リスト４６０を開く（６１４）。Ｉ／Ｏデバイス割り当てコンポーネント６００は、自律マネージャ４３０と通信して、使用可能なＩ／Ｏデバイスのパフォーマンス・メトリクスを識別する（６１６）。Ｉ／Ｏデバイス割り当てコンポーネント６００は、Ｉ／Ｏ要求を、Ｉ／Ｏ要求が必要とするタイプの最もパフォーマンスの良いＩ／Ｏデバイスに割り当てる（６１８）。Ｉ／Ｏデバイスの割り当ては、Ｉ／Ｏデバイス・マッピング・リスト４６０内に格納された優先順位の基本設定によって影響を受けることもある。Ｉ／Ｏデバイス割り当てコンポーネント６００は、その割り当てをＩ／Ｏデバイス・マッピング・リスト４６０に保存して（６２０）、セッション内の後続の要求が、既に割り当てられたことになる。要求を特定のＩ／Ｏデバイスにリンクするためにバインディングを用いることにより、クライアントが、割り当てをセッション内の後続の要求にカプセル封入することが可能になる。Ｉ／Ｏデバイス割り当てコンポーネント６００は、Ｉ／Ｏデバイス・マッピング・リスト４６０を閉じ（６２２）、Ｉ／Ｏ要求及び割り当てをＩ／Ｏ管理コンポーネント５００に送り返し（６２４）、停止する（６２８）。
【００１８】
Ｉ／Ｏデバイス割り当てコンポーネント６００の代替的な実施形態（図示せず）は、Ｉ／Ｏデバイスの割り当てを行うために、自律マネージャ４３０又は別の集中型追跡・調整プログラムと通信しない。代わりに、代替的な実施形態は、各々のＩ／Ｏデバイス・マネージャ４７０に個別に照会し、次いで、各々のＩ／Ｏデバイス・マネージャ４７０の応答に基づいて割り当てを行う。
【００１９】
図７に示されるＩ／Ｏフェイルオーバ・コンポーネント７００は、Ｉ／Ｏ管理コンポーネント５００によって起動されたときに開始する（７１０）。Ｉ／Ｏフェイルオーバ・コンポーネント７００は、Ｉ／Ｏ要求が、障害が生じたＩ／Ｏデバイス又は使用可能でないＩ／Ｏデバイスに割り当てられる度に起動される。Ｉ／Ｏデバイス自体に障害が生じたか、又はＩ／Ｏデバイスに接続されたＬＰＡＲに障害が生じたため、Ｉ／Ｏデバイスが使用不能になることがある。Ｉ／Ｏフェイルオーバ・コンポーネント７００は、Ｉ／Ｏ要求を受け取り（７１２）、Ｉ／Ｏデバイス・マッピング・リスト４６０を開く（７１４）。Ｉ／Ｏフェイルオーバ・コンポーネント７００は、自律マネージャ４３０と通信して、使用可能なＩ／Ｏデバイスの性能メトリクスを識別する（７１６）。Ｉ／Ｏフェイルオーバ・コンポーネント７００は、Ｉ／Ｏ要求を、Ｉ／Ｏ要求が必要とするタイプの最もパフォーマンスの良いＩ／Ｏデバイスに割り当てする（７１８）。Ｉ／Ｏデバイスの割り当ては、Ｉ／Ｏデバイス・マッピング・リスト４６０内に格納された優先順位の基本設定によって影響を受けることもある。Ｉ／Ｏフェイルオーバ・コンポーネント７００は、その割り当てをＩ／Ｏデバイス・マッピング・リスト４６０に保存して（７２０）、セッション内の後続の要求が、既に割り当てられたことになる。要求を特定のＩ／Ｏデバイスにリンクするためにバインディングを用いることにより、クライアントが、割り当てをセッション内の後続の要求にカプセル封入することが可能になる。Ｉ／Ｏフェイルオーバ・コンポーネント７００は、Ｉ／Ｏデバイス・マッピング・リスト４６０内に格納されたバインディングを検討することによって、他のいずれかのアプリケーション、ＬＰＡＲ、又はセッションが、障害の生じたデバイスに割り当てられたかどうかを判断する（７２２）。障害が生じたデバイスへの他の割り当てが識別されると、Ｉ／Ｏフェイルオーバ・コンポーネント７００は、アプリケーション又はＬＰＡＲの将来のＩ／Ｏ要求を、最もパフォーマンスが良いＩ／Ｏデバイスに割り当て（７２４）、その割り当てをＩ／Ｏデバイス・マッピング・リスト４６０に保存する（７２６）。Ｉ／Ｏ要求を再び割り当てた後、Ｉ／Ｏフェイルオーバ・コンポーネント７００は、Ｉ／Ｏデバイス・マッピング・リスト４６０を閉じ（７２８）、Ｉ／Ｏ要求及び割り当てをＩ／Ｏ管理コンポーネント５００に送り返し（７３０）、停止する（７３２）。
【００２０】
Ｉ／Ｏデバイス割り当てコンポーネント６００と同様に、Ｉ／Ｏフェイルオーバ・コンポーネント７００の代替的な実施形態（図示せず）は、Ｉ／Ｏデバイスの割り当てを決定するために、自律マネージャ４３０又は別の集中型追跡・調整プログラムと通信しない。代わりに、代替的な実施形態は、各々のＩ／Ｏデバイス・マネージャ４７０に個別に照会し、次いで、各々のＩ／Ｏデバイス・マネージャ４７０の応答に基づいて割り当てを行う。
【００２１】
本発明の好ましい形態が、図面に示され、上記に説明されたが、当業者には、好ましい形態の変形が明らかであろう。前述の説明は、図示するためのものにすぎず、本発明は、示され説明された特定の形態に制限するものとして解釈されるべきではない。本発明の範囲は、上記の特許請求の範囲の語によってのみ制限されるべきである。
【図面の簡単な説明】
【００２２】
【図１】例示的なコンピュータ・ネットワークである。
【図２】専用ＶＩＯ  ＬＰＡＲを有する、例示的な共有リソースの図である。
【図３】分散型ＶＩＯツールを有する、共有リソースの図である。
【図４】コンピュータ上のメモリ内のプログラム及びファイルを説明する。
【図５】Ｉ／Ｏ管理コンポーネントのフローチャートである。
【図６】Ｉ／Ｏデバイス割り当てコンポーネントのフローチャートである。
【図７】Ｉ／Ｏフェイルオーバ・コンポーネントのフローチャートである。
【符号の説明】
【００２３】
１００：ネットワーク
１０５、１１０：ワークステーション・コンピュータ
１１５：サーバ・コンピュータ
１２０：永続的格納装置
１２５：ネットワーク接続
２００、３００：共有リソース
２２０、３２０：パーティション間通信
２５０、３５０、３５１、３５２、３５３：Ｉ／Ｏデバイス
３１１、３１２、３１３、３１４、３１５：論理パーティション
４００：分散型ＶＩＯツール
４２０：メモリ
４３０：自律マネージャ
４５０：アプリケーション
４６０：Ｉ／Ｏデバイス・マッピング・リスト
４７０：Ｉ／Ｏデバイス割り当てコンポーネント
５００：Ｉ／Ｏ管理コンポーネント
６００：Ｉ／Ｏデバイス割り当てコンポーネント
７００：Ｉ／Ｏフェイルオーバ・コンポーネント
【図１】
2008041093.tif 000003
【図２】
2008041093.tif 000004
【図３】
2008041093.tif 000005
【図４】
2008041093.tif 000006
【図５】
2008041093.tif 000007
【図６】
2008041093.tif 000008
【図７】
2008041093.tif 000009