(57)【特許請求の範囲】
【請求項１】
複数の物理ネットワーク・インターフェースであって、各物理ネットワーク・インターフェースが少なくとも１つのネットワークを介してデータを通信するように構成された、複数の物理ネットワーク・インターフェースと、
前記複数の物理ネットワーク・インターフェースに結合され、オペレーティング・システムおよび少なくとも１つのアプリケーションをホストするように構成された、処理ユニットであって、前記処理ユニットが、前記オペレーティング・システムに関するオペレーティング・システム・クリティカル・ストレージ動作に対して、前記複数の物理ネットワーク・インターフェースのうちの少なくとも１つを介してネットワーク・アクセス可能ストレージ・デバイスにアクセスするように指示するように構成され、さらに前記処理ユニットが、オペレーティング・システム・クリティカル・ストレージ動作を処理しない少なくとも１つの物理ネットワーク・インターフェースを、オペレーティング・システム・クリティカル・ストレージ動作を処理する少なくとも１つの物理ネットワーク・インターフェースよりも優先させることによって、前記アプリケーションに関するネットワーク・データを通信するために前記複数の物理ネットワーク・インターフェースのうちの少なくとも１つを動的に選択するように構成された、処理ユニットと、
を備える、装置。
【請求項２】
前記物理ネットワーク・インターフェースのそれぞれが、物理ネットワーク・アダプタ内に配置された、請求項１に記載の装置。
【請求項３】
前記複数の物理ネットワーク・インターフェースが共通ネットワークに結合された、請求項１または請求項２に記載の装置。
【請求項４】
前記複数の物理ネットワーク・インターフェースがイーサネット(R)・ネットワークに結合され、前記アプリケーションに関する前記ネットワーク・データがイーサネット(R)・プロトコルを介して通信される、請求項３に記載の装置。
【請求項５】
前記共通ネットワークが、前記ネットワーク・アクセス可能ストレージ・デバイスが結合されたストレージ・エリア・ネットワークを含み、前記オペレーティング・システム・クリティカル・ストレージ動作が、前記アプリケーションに関する前記ネットワーク・データが通信される際に介するプロトコルとは異なるネットワーク・ストレージ・プロトコルを介して通信される、請求項３または請求項４に記載の装置。
【請求項６】
前記オペレーティング・システム・クリティカル・ストレージ動作がｉＳＣＳＩプロトコルを介して通信される、請求項１から請求項５のいずれか一項に記載の装置。
【請求項７】
前記処理ユニットおよび前記複数の物理ネットワーク・インターフェースが内部に配置された、ディスクレス・コンピュータ・システムをさらに備える、請求項１から請求項６のいずれか一項に記載の装置。
【請求項８】
前記処理ユニットが、オペレーティング・システム・クリティカル・ストレージ動作を処理しない前記複数の物理ネットワーク・インターフェースの中のあらゆる物理ネットワーク・インターフェースを、オペレーティング・システム・クリティカル・ストレージ動作を処理する前記複数の物理ネットワーク・インターフェースの中のあらゆる物理ネットワーク・インターフェースよりも優先させることによって、前記アプリケーションに関するネットワーク・データを通信するために前記複数の物理ネットワーク・インターフェースのうちの少なくとも１つを動的に選択するように構成された、請求項１から請求項７のいずれか一項に記載の装置。
【請求項９】
前記処理ユニットが、前記アプリケーションに関するネットワーク・データを通信するための物理ネットワーク・インターフェースを動的に選択するために前記処理ユニットが使用する物理ネットワーク・インターフェースの順序付けリストを生成するように構成され、さらに前記処理ユニットが、前記順序付けリスト内で、第１の物理ネットワーク・インターフェースに第２の物理ネットワーク・インターフェースよりも早い順序付けをすることによって、オペレーティング・システム・クリティカル・ストレージ動作を処理しない前記第１の物理ネットワーク・インターフェースを、オペレーティング・システム・クリティカル・ストレージ動作を処理する前記第２の物理ネットワーク・インターフェースよりも優先させるように構成された、請求項１から請求項７のいずれか一項に記載の装置。
【請求項１０】
前記処理ユニットが、前記第２の物理ネットワーク・インターフェースがオペレーティング・システム・クリティカル・ストレージ動作を処理するように構成されている結果として、前記第２の物理ネットワーク・インターフェースを前記順序付けリスト内の最後に順序付けるように構成された、請求項１から請求項７のいずれか一項に記載の装置。
【請求項１１】
さらに前記処理ユニットが、オペレーティング・システム・クリティカル・ストレージ動作を処理するように前記第２の物理ネットワーク・インターフェースを構成するように、および、前記順序付けリストの生成に関連して、前記第２の物理ネットワーク・インターフェースがオペレーティング・システム・クリティカル・ストレージ動作を処理するように構成されていることを決定するように、構成された、請求項１０に記載の装置。
【請求項１２】
前記処理ユニットが、前記順序付けリストに従って各物理ネットワーク・インターフェースを使用するように順番に試行することによって、物理ネットワーク・インターフェースを動的に選択するように構成された、請求項９に記載の装置。
【請求項１３】
前記処理ユニットが、前記アプリケーションに関するネットワーク・データを通信する要求に応答して、物理ネットワーク・インターフェースを動的に選択するように構成された、請求項１に記載の装置。
【請求項１４】
前記処理ユニットが、仮想ネットワーク・アダプタを物理ネットワーク・インターフェースにリンクさせる要求に応答して、物理ネットワーク・インターフェースを動的に選択するように構成された、請求項１に記載の装置。
【請求項１５】
前記オペレーティング・システム・クリティカル・ストレージ動作がページング動作を含む、請求項１に記載の装置。
【請求項１６】
前記ネットワーク・アクセス可能ストレージ・デバイスが、前記オペレーティング・システムに関するシステム・ボリュームが常駐するタイプであり、前記オペレーティング・システム・クリティカル・ストレージ動作がシステム・ボリューム・ストレージ動作を含む、請求項１に記載の装置。
【請求項１７】
それぞれが少なくとも１つのネットワークを介してデータを通信するように構成された、複数の物理ネットワーク・インターフェースと、前記複数の物理ネットワーク・インターフェースに結合され、オペレーティング・システムおよび少なくとも１つのアプリケーションをホストするように構成された、処理ユニットとを含むタイプの装置において、
前記オペレーティング・システムに関するオペレーティング・システム・クリティカル・ストレージ動作に対して、前記複数の物理ネットワーク・インターフェースのうちの少なくとも１つを介してネットワーク・アクセス可能ストレージ・デバイスにアクセスするように指示するステップと、
オペレーティング・システム・クリティカル・ストレージ動作を処理しない少なくとも１つの物理ネットワーク・インターフェースを、オペレーティング・システム・クリティカル・ストレージ動作を処理する少なくとも１つの物理ネットワーク・インターフェースよりも優先させることによって、前記アプリケーションに関するネットワーク・データを通信するために前記複数の物理ネットワーク・インターフェースのうちの少なくとも１つを動的に選択するステップと、
を含む、データを通信する方法。
【請求項１８】
前記装置が、内部に前記処理ユニットおよび前記複数の物理ネットワーク・インターフェースが配置されたディスクレス・コンピュータ・システムを備え、前記物理ネットワーク・インターフェースのそれぞれが物理ネットワーク・アダプタ内に配置され、前記複数の物理ネットワーク・インターフェースが、前記ネットワーク・アクセス可能ストレージ・デバイスが結合されたストレージ・エリア・ネットワークを含む共通イーサネット(R)・ネットワークに結合され、前記オペレーティング・システム・クリティカル・ストレージ動作がｉＳＣＳＩプロトコルを介して通信される、請求項１７に記載の方法。
【請求項１９】
前記アプリケーションに関するネットワーク・データを通信するために前記複数の物理ネットワーク・インターフェースのうちの少なくとも１つを動的に選択するステップが、オペレーティング・システム・クリティカル・ストレージ動作を処理しない前記複数の物理ネットワーク・インターフェースの中のあらゆる物理ネットワーク・インターフェースを、オペレーティング・システム・クリティカル・ストレージ動作を処理する前記複数の物理ネットワーク・インターフェースの中のあらゆる物理ネットワーク・インターフェースよりも優先させるステップを含む、請求項１７または請求項１８に記載の方法。
【請求項２０】
オペレーティング・システム・クリティカル・ストレージ動作を処理する物理ネットワーク・インターフェースを順序付けリスト内の最後に順序付けるステップを含む、前記アプリケーションに関するネットワーク・データを通信するために物理ネットワーク・インターフェースを動的に選択するステップで使用するための、物理ネットワーク・インターフェースの順序付けリストを生成するステップをさらに含み、物理ネットワーク・インターフェースを動的に選択するステップが、前記順序付けリストに従って各物理ネットワーク・インターフェースを使用するように順番に試行するステップを含む、請求項１７から請求項１９のいずれか一項に記載の方法。
【請求項２１】
オペレーティング・システム・クリティカル・ストレージ動作を処理するように前記第２の物理ネットワーク・インターフェースを構成するステップと、
前記順序付けリストを生成するステップに関連して、前記第２の物理ネットワーク・インターフェースがオペレーティング・システム・クリティカル・ストレージ動作を処理するように構成されていることを決定するステップと、
をさらに含む、請求項２０に記載の方法。
【請求項２２】
物理ネットワーク・インターフェースを動的に選択するステップが、前記アプリケーションに関するネットワーク・データを通信する要求と、仮想ネットワーク・アダプタを物理ネットワーク・インターフェースにリンクさせる要求とのうちの、少なくとも１つに応答して実行される、請求項１７に記載の方法。
【請求項２３】
前記オペレーティング・システム・クリティカル・ストレージ動作が、ページング動作と、ネットワーク・アクセス可能ストレージ・デバイス上に常駐する前記オペレーティング・システムに関するシステム・ボリュームに対して指示されるシステム・ボリューム・ストレージ動作とのうちの、少なくとも１つを含む、請求項１７に記載の方法。
【請求項２４】
それぞれが少なくとも１つのネットワークを介してデータを通信するように構成された複数の物理ネットワーク・インターフェースと、前記複数の物理ネットワーク・インターフェースに結合され、オペレーティング・システムおよび少なくとも１つのアプリケーションをホストするように構成され、さらに、前記オペレーティング・システムに関するオペレーティング・システム・クリティカル・ストレージ動作に対して、前記複数の物理ネットワーク・インターフェースのうちの少なくとも１つを介してネットワーク・アクセス可能ストレージ・デバイスにアクセスするように指示するように構成された、処理ユニットと、を含むタイプの装置で実行されるように構成された、プログラム・コードであって、前記プログラム・コードが、オペレーティング・システム・クリティカル・ストレージ動作を処理しない少なくとも１つの物理ネットワーク・インターフェースを、オペレーティング・システム・クリティカル・ストレージ動作を処理する少なくとも１つの物理ネットワーク・インターフェースよりも優先させることによって、前記アプリケーションに関するネットワーク・データを通信するために前記複数の物理ネットワーク・インターフェースのうちの少なくとも１つを動的に選択するように構成された、プログラム・コードと、
前記プログラム・コードを担持するコンピュータ読み取り可能媒体と、
を備える、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、ネットワーク化コンピューティング・システムを対象とし、具体的には、ネットワーク化コンピューティング・システムにおいて、ネットワークを介したデータ通信のための物理ネットワーク・インターフェースの選択を対象とする。
【背景技術】
【０００２】
ネットワーキングおよび通信は、コンピュータ・システムの全体性能に多大な影響を与える可能性がある。たとえば専用ネットワークならびにインターネットなどの公衆ネットワークを介したコンピュータ間の相互接続がますます増加しているため、しばしば、ローカル・メモリの処理およびアクセスに関連付けられたコストよりも、ネットワークを介したリモート・リソースへのアクセスに関連付けられたコストの方が、全体システム性能により多くの影響を与える。
【０００３】
コンピュータが、ウェブ・サーバ、ファイル・サーバ、データベース・サーバ、およびピアまたはクライアント・コンピュータなどの他のコンピュータと通信できるようにするために、ならびに、プリンタなどのリモート・リソースにアクセスできるようにするために、従来から、たとえば、ローカル・エリア・ネットワーク（ＬＡＮ）などのイーサネット・ベース・ネットワーク、ワイド・エリア・ネットワーク（ＷＡＮ）、無線ローカル・エリア・ネットワーク（ＷＬＡＮ）などの、多くのネットワークが、主に使用されてきており、これらのタイプのネットワークは、外部ストレージ・デバイスなどの他のタイプのリソースにアクセスするためにも、ますます多く使用されてきている。たとえば、一部のイーサネット・ベース・ネットワークは、コンピュータがローカル・ストレージ・デバイスとほぼ同じようにストレージ・デバイスにアクセスできるようにするために、ストレージ・エリア・ネットワーク（ＳＡＮ）として動作するように構成することができる。ファイル・レベルでデータにアクセスするストレージ（ＮＡＳ）デバイスに接続されたファイル・サーバまたはネットワークとは異なり、ＳＡＮデバイスは、通常、たとえばローカル・ハード・ドライブとほぼ同じように、ブロック・レベルでアクセスされる。たとえばファイバ・チャネル、ｉＳＣＳＩ（ＴＣＰ／ＩＰを介してＳＣＳＩプロトコルをマッピングする）、ＨｙｐｅｒＳＣＳＩ（イーサネットを介してＳＣＳＩプロトコルをマッピングする）、およびイーサネットを介したＡＴＡを含む、様々なタイプのＳＡＮベース・プロトコルが開発されている。
【０００４】
コンピュータは、通常、物理ネットワーク・インターフェースを介してネットワークと通信する。物理ネットワーク・インターフェースは、インターフェースをネットワークに接続するために単一のネットワーク・ケーブルを接続することが可能であるか、または、無線インターフェースの場合、単一の無線接続が維持可能である、物理ポートを提供する。多くの場合、物理ネットワーク・インターフェースは、コンピュータのマザーボード上に提供されるか、あるいはより典型的には、カードまたはＵＳＢデバイス上に提供される、物理ネットワーク・アダプタ内に実装される。場合によっては、物理ネットワーク・アダプタは複数の物理ネットワーク・インターフェースを含むことが可能であり、さらに、一部のコンピュータでは、同じネットワークに結合するため、または異なるネットワークに結合するために、複数の物理ネットワーク・アダプタあるいは複数の物理ネットワーク・インターフェースまたはその両方を提供することができる。そうすることによって、複数のインターフェースを介して同時にデータ通信を行う機能により、しばしば通信性能が向上する。加えて、１つの物理ネットワーク・インターフェースが失敗するか、さもなければネットワークへの接続を失った場合、他の物理ネットワーク・インターフェースへと切り替える機能により、しばしば信頼性が向上する。
【０００５】
ＳＡＮおよびネットワークへの他のタイプのデータ・トラフィックを加えて、物理ネットワーク・インターフェースは、異なる目的のために多種多様なデータを通信するように要求される可能性がある。たとえば、ＬＡＮアプリケーションからのデータ・ストリームは、ｉＳＣＳＩデータ・ストリームとの共存が必要な可能性がある。しかしながら、ＬＡＮアプリケーションおよびｉＳＣＳＩデータ・ストリームが同じ物理ネットワーク・インターフェースを介して共存する場合、ＬＡＮトラフィックとｉＳＣＳＩトラフィックとの間の帯域幅競合の可能性がある。帯域幅競合は単に一部のコンピュータの性能を低下させるだけの場合もあるが、他のコンピュータでは、帯域幅競合が信頼性欠如およびシステム障害につながる可能性さえもある。
【０００６】
たとえば一部のコンピュータは、コンピュータ自体に常駐しているハード・ドライブのない、「ディスクレス」コンピュータとして実装される。その代わりに、より従来型の方法でハード・ドライブ上にローカルに格納されたデータが、ＳＡＮアクセス可能デバイス上に格納され、ｉＳＣＳＩなどのＳＡＮ適合プロトコルを使用してアクセスされる。したがってｉＳＣＳＩデータ・トラフィックは、システム・ボリューム、すなわち、オペレーティング・システムが配置され、通常はディスク・ページング動作が実行される、ディスク・ボリュームなどの、不可欠なストレージを維持するためのトラフィックを含む。
【０００７】
このタイプのデータ・トラフィックは、本明細書では「オペレーティング・システム・クリティカル・ストレージ動作（operating system critical storageoperation）」と呼ばれ、コンピュータの性能に多大な影響を与える可能性があるだけでなく、オペレーティング・システムに関する信頼性の問題を引き起こす可能性もある。しかしながら、オペレーティング・システム・クリティカル・ストレージ動作が、ＬＡＮトラフィックなどの他のデータ・トラフィックと同じ物理ネットワーク・インターフェースを介して通信される場合、結果として帯域幅競合が生じる可能性がある。所与の時点でＬＡＮトラフィックが多すぎる場合、何らかのストレージ動作を欠乏させ、性能を低下させる可能性があり、最悪の場合、オペレーティング・システムのクラッシュを発生させる可能性がある、というリスクが存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
したがって、当分野では、オペレーティング・システム・クリティカル・ストレージ動作と共通物理ネットワーク・インターフェースを介して通信している他のタイプのデータ・トラフィックとの間に生じる帯域幅競合の問題を最小限にする方法が、著しく求められている。
【課題を解決するための手段】
【０００９】
本発明は、アプリケーション関係動作と、同じネットワーク化コンピュータ上に常駐するオペレーティング・システムによって開始可能な任意のオペレーティング・システム・クリティカル・ストレージ動作との間の、帯域幅競合を最小限に抑えようとするように、ネットワーク化コンピュータ上で動作するアプリケーションが使用する物理ネットワーク・インターフェースを動的に選択する、装置、プログラム製品、および方法を提供することにおいて、従来技術に関連付けられたこれらおよび他の問題に対処するように努める。通常、こうした動的選択では、オペレーティング・システム・クリティカル・ストレージ動作を処理する少なくとも１つの物理ネットワーク・インターフェースよりも、オペレーティング・システム・クリティカル・ストレージ動作を処理しない少なくとも１つの物理ネットワーク・インターフェースを優先させる。そうすることによって、限定されたネットワーク・リソース全体にわたる競合により、アプリケーションがオペレーティング・システムの性能を低下させること、あるいは障害を発生させること、またはその両方の確率が最小限に抑えられる。
【００１０】
本発明の一態様に従い、物理ネットワーク・インターフェースの選択は、少なくとも１つのネットワーク、および、複数の物理ネットワーク・インターフェースに結合された処理ユニットを介して、データを通信するように、ならびに、オペレーティング・システムおよび少なくとも１つのアプリケーションをホストするように、それぞれが構成された、複数の物理ネットワーク・インターフェースを含むタイプの装置内で実施される。オペレーティング・システムに関するオペレーティング・システム・クリティカル・ストレージ動作に対して、複数の物理ネットワーク・インターフェースのうちの少なくとも１つを介してネットワーク・アクセス可能ストレージ・デバイスにアクセスするように指示することと、ならびに、オペレーティング・システム・クリティカル・ストレージ動作を処理しない少なくとも１つの物理ネットワーク・インターフェースを、オペレーティング・システム・クリティカル・ストレージ動作を処理する少なくとも１つの物理ネットワーク・インターフェースよりも優先させることによって、アプリケーションに関するネットワーク・データを通信するために複数の物理ネットワーク・インターフェースのうちの少なくとも１つを動的に選択することと、によって、こうした装置内でデータが通信される。
【００１１】
本発明を特徴付けるこれらおよび他の利点および機能については、本明細書に添付され、さらにその一部を形成する、特許請求の範囲に記載される。
【００１２】
次に、本発明の諸実施形態について、添付の図面を参照しながら単なる例として説明する。
【図面の簡単な説明】
【００１３】
【図１】本発明に従った、物理ネットワーク・インターフェース選択を組み込んだネットワーク化コンピューティング・システムを示すブロック図である。
【図２】本発明に従った、ディスクレス・コンピュータを組み込み、物理ネットワーク・インターフェース選択を実施するために好適な、他のネットワーク化コンピューティング・システムを示すブロック図である。
【図３】図１または図２のコンピューティング・システムによって実行可能な、例示的な物理ネットワーク・インターフェース選択のプログラム流れを示す、流れ図である。
【図４】仮想アダプタを物理ネットワーク・インターフェースにマッピングするために、図１または図２のコンピューティング・システムによって実行可能な、他の例示的な物理ネットワーク・インターフェース選択ルーチンのプログラム流れを示す、流れ図である。
【図５】図４の選択ルーチンによって物理ネットワーク・インターフェースに割り当て可能な、ランク・データ構造を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下で説明する諸実施形態は、どの物理ネットワーク・インターフェースがオペレーティング・システム・クリティカル・ストレージ動作に使用されているかに基づいて、コンピュータ上で実行中のアプリケーションによって使用される物理ネットワーク・インターフェースを動的に選択することにより、ネットワーク化コンピュータにおける帯域幅競合の問題に対処する。具体的に言えば、アプリケーションによる使用に好適な物理ネットワーク・インターフェースは、オペレーティング・システム・クリティカル・ストレージ動作を処理しない少なくとも１つの物理ネットワーク・インターフェースが、オペレーティング・システム・クリティカル・ストレージ動作を処理する少なくとも１つの物理ネットワーク・インターフェースよりも優先されるように、優先順位付けすることができる。この優先順位付けに基づいて、アプリケーションに関する接続が首尾よく確立されるまで、順番にまたは同時に物理ネットワーク・インターフェースを試行することができる。
【００１５】
一部の実施形態では、たとえば、オペレーティング・システム・クリティカル・ストレージ動作を処理しないどのような物理ネットワーク・インターフェースも、こうした動作を処理するあらゆるインターフェースよりも優先させることができる。他の実施形態では、オペレーティング・システム・クリティカル・ストレージ動作を処理するインターフェースを使用可能なすべてのインターフェースの中で最後に試行されるように、他の物理ネットワーク・インターフェースに比べて優先させない（de-prioritize）ことができる。さらに他の実施形態では、アプリケーションに関するデータを通信するために使用可能な他の物理ネットワーク・インターフェースがない場合にのみ、アプリケーションの代わりに非オペレーティング・システム・クリティカル・ストレージ動作を処理するために、オペレーティング・システム・クリティカル・ストレージ動作を処理する物理ネットワーク・インターフェースを使用するように試行することを、優先順位付けに含めることができる。インターフェースの優先順位付けまたはランク付けは、現在のロードまたは使用可能帯域幅、特定タスクに対する適合性、ロード・バランシングまたは信頼性の問題などの、他の要因を考慮することもできる。
【００１６】
オペレーティング・システム・クリティカル・ストレージ動作は、オペレーティング・システムに関するクリティカル・ストレージ要件に関連付けられた任意の動作であるものとみなすことができる。たとえば、オペレーティング・システム・クリティカル・ストレージ動作は、１つまたは複数のシステム・ボリュームに関連付けられた読み取りおよび書き込みのデータ・トラフィックに関連付けることができる。こうした動作は、ページ・スワッピングに関連付けられたページング・トラフィック、オペレーティング・システムあるいはそのドライバ、ライブラリ、または拡張部のうちのいずれかに関するプログラム・コードの取り出しに関連付けられたトラフィック、オペレーティング・システムの構成またはレジストリ・データの読み取りまたは更新に関連付けられたトラフィック、あるいは実際的に、遅延した場合、クラッシュまたはその他の方法でオペレーティング・システムの安定性にかなりの影響を与えることのリスクを増加させる、任意の他のタイプの動作などの、トラフィックに関連付けることもできる。
【００１７】
他の利点の中でも、本明細書に記載された様式での物理ネットワーク・インターフェースの動的選択は、物理インターフェース選択プロセスの中で説明されているシステム・ボリュームにより、通常、ディスク帯域幅を増加させ、手動のインターフェース構成が試行された場合に発生する可能性があるような人的エラーの影響を受けにくい、自動化された様式でも同様である。加えて、ＩＥＥＥ  ８０２．３Ｑなどのサービス品質（ＱｏＳ）手法とは対照的に、通常、特殊なネットワーキング・ハードウェア・サポートは不要である。
【００１８】
次に図面を見ると、いくつかの図にわたって同じ番号は同じ部分を示しており、図１は、本発明に従った、物理ネットワーク・インターフェース選択の実施に好適な、例示的なネットワーク化コンピューティング・システム１０を示す。具体的に言えば、図１は、ネットワーク１４に結合されたネットワーク化コンピュータまたは装置１２を示す。本明細書では、各コンピュータ１２は、実質上、たとえば、マルチフレーム・コンピュータなどのマルチユーザ・コンピュータ、サーバ、ミッドレンジ・コンピュータ、または論理区分化コンピュータを含む、任意のタイプのコンピュータ、コンピュータ・システム、または他のプログラム可能電子デバイスを表すことができる。さらにコンピュータ１２は、たとえばクラスタまたは他の分散コンピューティング・システム内で、１つまたは複数のネットワーク化コンピュータを使用して実装することができる。代替方法では、本発明に従った物理ネットワーク・インターフェース選択を、たとえば、デスクトップ・コンピュータ、ラップトップ・コンピュータ、ハンドヘルド・コンピュータ、携帯電話、セット・トップ・ボックスなどの、単一のユーザ・コンピュータまたは他のプログラム可能電子デバイス内で、実装することができる。コンピュータ１２は、通常、コンピュータ１２のメイン・ストレージ、ならびに、たとえばキャッシュ・メモリ、不揮発性またはバックアップ・メモリ（たとえばプログラム可能メモリまたはフラッシュ・メモリ）、読み取り専用メモリなどの、任意の補助レベルのメモリを備える、ランダム・アクセス・メモリ（ＲＡＭ）デバイスを表すことが可能な、メモリ１８に結合された、少なくとも１つのマイクロプロセッサを含む、中央処理ユニット１６を含む。加えて、メモリ１８は、たとえば、ＣＰＵ  １６のプロセッサ内の任意のキャッシュ・メモリ、ならびに、たとえば、大容量ストレージ・デバイス２２上またはコンピュータ１２に結合された他のコンピュータ上に格納されたような、仮想メモリとして使用される任意のストレージ容量などの、コンピュータ１２内の他の場所に物理的に配置されたメモリ・ストレージを含むものとみなすことができる。コンピュータ１２は、通常、外部と情報を通信するためのいくつかの入力および出力も受け取る。ユーザまたはオペレータとのインターフェースのために、コンピュータ１２は、通常、１つまたは複数のユーザ入力デバイス（たとえば、キーボード、マウス、トラックボール、ジョイスティック、タッチパッド、あるいはマイクロフォンなど、またはそれらすべて）およびディスプレイ（たとえば、ＣＲＴモニタ、ＬＣＤディスプレイ・パネル、あるいはスピーカなど、またはそれらすべて）を組み込んだ、ユーザ・インターフェース２０を含む。そうでない場合は、他のコンピュータまたは端末を介してユーザ入力を受け取ることができる。
【００１９】
追加のストレージについて、コンピュータ１０は、たとえば、フレキシブルディスクまたは他の取り外し可能ディスク・ドライブ、ハード・ディスク・ドライブ、直接アクセス・ストレージ・デバイス（ＤＡＳＤ）、光ドライブ（たとえばＣＤドライブ、ＤＶＤドライブなど）、あるいは、テープ・ドライブなど、またはそれらすべて、などの、１つまたは複数の大容量ストレージ・デバイス２２も含むことができる。加えて、本明細書でより詳細に考察するように、コンピュータ１２はディスクレス・コンピュータ・システムとして実装可能であり、これによって大容量ストレージ・デバイス（または少なくとも１つのハード・ディスク・ドライブ）がコンピュータ１２に組み込まれることはない。
【００２０】
さらにコンピュータ１０は、他のコンピュータおよび電子デバイスとの情報通信を可能にするために、コンピュータ１２を、ネットワーク１４（たとえば、ＬＡＮ、ＷＡＮ、ストレージ・エリア・ネットワーク（ＳＡＮ）、無線ネットワーク、あるいはインターネットなど、またはそれらすべて）などの、１つまたは複数のネットワークとインターフェースさせるための、ネットワーク・インターフェース２４を含むことができる。ネットワーク・インターフェース２４は、通常、それぞれがネットワーク１４との１つまたは複数の物理ネットワーク・インターフェース２８を画定する、１つまたは複数の物理ネットワーク・アダプタ２６を含む。ネットワーク１４を介して、たとえば外部ストレージ３０と、３２で識別された様々なコンピュータあるいはサービスまたはその両方との、あるいはそのいずれかの、様々なコンポーネントにアクセス可能な場合がある。
【００２１】
コンピュータ１２は、通常、ＣＰＵ  １６と、コンポーネント１８、２０、２２、および２４のそれぞれとの間に、好適なアナログあるいはデジタルまたはその両方のインターフェースを含み、当分野で良く知られていることを理解されたい。本発明との関連において、他のハードウェア環境が企図される。コンピュータ１２は、オペレーティング・システム３４の制御の下で動作し、以下でより詳細に説明するように、様々なコンピュータ・ソフトウェア・アプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、データ構造などを実行するかまたはその他の方法でこれらに依拠する。さらに、様々なアプリケーション、コンポーネント、プログラム、オブジェクト、モジュールなどは、たとえば分散型またはクライアント・サーバ方のコンピューティング環境において、ネットワーク１４を介してコンピュータ１２に結合された他のコンピュータ内の、１つまたは複数のプロセッサ上で実行することも可能であり、これによって、コンピュータ・プログラムの機能を実施するために必要な処理を、ネットワークを介して複数のコンピュータに割り振ることができる。
【００２２】
一般に、本発明の諸実施形態を実装するために実行されるルーチンは、オペレーティング・システム、あるいは特定のアプリケーション、コンポーネント、プログラム、オブジェクト、モジュール、または命令のシーケンス、あるいはそれらのサブセットの一部の、いずれとして実装される場合でも、本明細書では「コンピュータ・プログラム・コード」または単に「プログラム・コード」と言い表される。プログラム・コードは、通常、コンピュータ内の様々なメモリおよびストレージ・デバイス内に様々な時点で常駐し、コンピュータ内の１つまたは複数のプロセッサによって読み取りおよび実行された場合、本発明の様々な態様を具体化するステップまたは要素を実行するために必要な諸ステップをそのコンピュータに実行させる、１つまたは複数の命令を備える。さらに、本発明については、完全に機能しているコンピュータおよびコンピュータ・システムとの関連において、これまで説明し、さらに以下で説明するが、当業者であれば、本発明の様々な実施形態が、様々な形のプログラム製品として配布可能であること、および、実際に配布を実施するために使用される特定タイプのコンピュータ読み取り可能媒体に関係なく、等しく適用されることを、理解されよう。コンピュータ読み取り可能媒体の例には、揮発性および不揮発性メモリ・デバイス、フレキシブルディスクおよび他の取り外し可能ディスク、ハード・ディスク・ドライブ、磁気テープ、光ディスク（たとえばＣＤ−ＲＯＭ、ＤＶＤなど）などの、物理的な記録可能タイプの媒体、ならびに、デジタルおよびアナログの通信リンクなどの伝送タイプの媒体が含まれるが、これらに限定されるものではない。
【００２３】
加えて、以下で説明する様々なプログラム・コードは、本発明の特定の実施形態で実装されるアプリケーションに基づいて識別可能である。しかしながら、以下では単に便宜上、任意の特定のプログラム名称が使用されており、本発明は、こうした名称によって識別あるいは示唆される、またはその両方の、任意の特定のアプリケーションのみで使用されるように限定されるものでないことを理解されたい。さらに、コンピュータ・プログラムが、ルーチン、プロシージャ、メソッド、モジュール、オブジェクトなどに編成可能な、通常は無限数の様式、ならびに、典型的なコンピュータ内に常駐する様々なソフトウェア層（たとえば、オペレーティング・システム、ライブラリ、ＡＰＩ、アプリケーション、アプレットなど）間でプログラム機能を割り振ることが可能な、様々な様式を考えると、本発明が、本明細書で説明されたプログラム機能の特定の編成および割り振りに限定されるものでないことを理解されたい。
【００２４】
当業者であれば、図１に示された例示的実施形態が、本発明を限定することを意図するものでないことを理解されよう。実際に、当業者であれば、本発明の範囲を逸脱することなく、他の代替ハードウェアあるいはソフトウェアまたはその両方の環境が使用可能であることを理解されよう。
【００２５】
前述のように、コンピュータ１２は、適切であればミドルウェアあるいはカーネル・コンポーネントまたはその両方を含むとみなすこともできる、オペレーティング・システム３４をホストする。オペレーティング・システム３４は、通常、たとえば外部ストレージ３０上に常駐するシステム・ボリュームにアクセスすることによって、オペレーティング・システム・クリティカル・ストレージ動作を生成する。コンピュータ１２は、たとえば任意のコンピュータ／サービス３２などのネットワーク化リソースへのアクセスを必要とする可能性のある、１つまたは複数のアプリケーションもホストする。この関連において、アプリケーションの１つのタイプは、例示された実施形態では、コンピュータ１２内に常駐する他のアプリケーションへのネットワーク・アクセスを提供するために物理アダプタ２６にバインドされた、仮想アダプタ３８とすることができる。
【００２６】
コンピュータ１２では、オペレーティング・システム・クリティカル・ストレージ動作のためにオペレーティング・システム３４が使用するため、ならびにアプリケーション３６および仮想アダプタ３８が使用するための、（２８で図示され、１つまたは複数の物理アダプタ２６内に配置された）複数の物理ネットワーク・インターフェースが使用可能である。本発明に従って、これらのインターフェース２８は、アプリケーションがネットワーク・リソースにアクセスするために物理ネットワーク・インターフェースを使用するように要求した場合は必ず、オペレーティング・システム・クリティカル・ストレージ動作を処理しないどのような物理インターフェースをも、こうした動作を処理するどのような物理インターフェースより優先させることによって、アプリケーション・データ・トラフィックと、オペレーティング・システム・クリティカル・ストレージ動作に関するデータ・トラフィックとの間の、帯域幅競合を最小限にするために、動的に選択される。
【００２７】
一実施形態では、たとえば、物理ネットワーク・インターフェースの動的選択は、アプリケーションによるデータを送信するための要求、ネットワーク・リソースとの接続または会話を開始するための要求、あるいは、仮想ネットワーク・アダプタなどのアプリケーションを物理ネットワーク・ポートなどの特定の物理ネットワーク・インターフェースにバインドするための要求に応答して、開始することができる。こうした選択を実行するために、システム・ボリューム・ストレージ動作などのオペレーティング・システム・クリティカル・ストレージ動作に、どの物理ネットワーク・インターフェースが使用されているかを識別するための、照会を実行することができる。次に、システム・ボリューム・ストレージ動作に使用されている物理インターフェースがリスト内の最後に順序付けされた、アプリケーションに対して試行するための物理インターフェースの順序付けリストを作成することができる。次にこのリストを使用して、アプリケーションに使用する物理ネットワーク・インターフェースを順番に決定することができる。
【００２８】
前述の物理ネットワーク・インターフェース選択は、本発明に従ったいくつかのコンピューティング環境で使用することができる。たとえば図２に示されるように、本発明に従った物理ネットワーク・インターフェース選択を、内部にローカル・ストレージ・デバイスが常駐していないディスクレス・コンピュータ５０内で使用することができる。本発明は、何らかの形のローカル・ストレージ・デバイスを有するコンピュータでも使用可能であることを理解されよう。
【００２９】
コンピュータ５０は、オペレーティング・システム５２と、データ・トラフィックの中でも特にストレージ・エリア・ネットワーク（ＳＡＮ）データ・トラフィックを含むネットワーク５６へのアクセスをそれぞれが必要とする、１つまたは複数のＬＡＮアプリケーション５４とを、有する。オペレーティング・システム５２は他のサービスへもアクセス可能であるが、オペレーティング・システム５２によってアクセスされる主要なリソースの１つは、ネットワーク・アクセス可能ストレージ・デバイス上に常駐するシステム・ボリューム５８である。ＬＡＮアプリケーション５４の場合、通常はそれぞれが他のタイプのリソース、たとえば他のＬＡＮアプリケーション・ピア６０にアクセスする。
【００３０】
図２の実施形態では、コンピュータ５０は、それぞれが少なくともｉＳＣＳＩデータ・パス６４およびＬＡＮアプリケーション・データ・パス６６をサポートする、複数（Ｎ）の物理ネットワーク・インターフェース、またはアダプタ６２を含む。任意の所与のアダプタ６２内のｉＳＣＳＩおよびＬＡＮアプリケーションのデータ・パス６４、６６の間の帯域幅競合を最小限にするために、ＬＡＮアプリケーションが物理ネットワーク・インターフェースへのアクセスを必要とする場合は必ず、図３のルーチン１００などの物理ネットワーク・インターフェース選択ルーチンが使用される。
【００３１】
ルーチン１００は、たとえばデータ通信のための要求、接続のための要求、または仮想アダプタを物理アダプタにバインドするための要求などの、ネットワークを介して他のデバイスと通信するための要求を、アプリケーションが発行した場合に必ずなどの、いくつかの異なるインスタンスで、呼び出すことができる。ルーチン１００は、たとえば、現在オペレーティング・システム・クリティカル・ストレージ動作が、異なる物理ネットワーク・インターフェースを介してアクセスされている旨の通知が受け取られた場合に必ず、呼び出すこともできる。
【００３２】
ルーチン１００は、たとえば、好適なオペレーティング・システム提供ＡＰＩを呼び出すことにより、どのストレージ・ボリュームがオペレーティング・システムに関するクリティカル・ストレージを含むかを決定することによって、ブロック１０２で開始される。次にブロック１０４は、たとえば、他のオペレーティング・システム提供ＡＰＩを呼び出すことにより、どの物理ネットワーク・インターフェースが、オペレーティング・システムに関するクリティカル・ストレージを含むストレージ・ボリュームへのアクセスを提供しているかを決定する。
【００３３】
クリティカル・ストレージにアクセスして、オペレーティング・システム・クリティカル・ストレージ動作を処理する、物理ネットワーク・インターフェースが決定されると、ブロック１０６は、これらのインターフェースを、非オペレーティング・システム・クリティカル・ストレージ動作のデータ・トラフィック用にアプリケーションが使用する場合の、最低優先順位の候補としてマーク付けする。次にブロック１０８は、たとえば、マーク付けされたインターフェースを最低優先順位であるものと指定して、インターフェースを順序付けリストに割り当てることにより、物理ネットワーク・インターフェースをランク付けする。このランク付けは、インターフェースがオペレーティング・システム・クリティカル・ストレージ動作に使用されるかどうかのみならず、相対的なロードまたは使用可能帯域幅、特定タイプのトラフィックに対する適合性、または、通常、物理ネットワーク・インターフェースを選択する際に使用される任意の他の考慮事項などの、他の要素も考慮に入れることができる。順序付けリストが作成されると、次にブロック１１０は、順序付けリスト内にランク付けされた通りに物理ネットワーク・インターフェース候補を使用して、所望のリソースとの通信の確立を試行する。こうした試行は、本来逐次的であるか、または適切な接続を促進するために同時性を取り入れている可能性があり、その後、ルーチン１００は完了する。
【００３４】
上記で説明したように、前述の物理ネットワーク・インターフェース選択プロセスを使用して、たとえば前述の相互参照された特許出願に記載されたものと同様の様式で、仮想ネットワーク・アダプタを物理ネットワーク・アダプタに割り当てるかまたはリンクさせることができる。
【００３５】
図４は、たとえば、本発明に従った様式で、仮想アダプタを物理ネットワーク・インターフェースに割り当てる際に好適なルーチン１２０を示す。ルーチン１２０は、たとえば、仮想ネットワーク・リンクを確立する要求に応答して、または、現在オペレーティング・システム・クリティカル・ストレージ動作が、異なる物理ネットワーク・インターフェースを介してアクセスされている旨の通知が受け取られると必ず、呼び出すことができる。ルーチン１２０は、たとえば、好適なオペレーティング・システム提供ＡＰＩを呼び出すことにより、どのストレージ・ボリュームがオペレーティング・システムに関するクリティカル・ストレージを含むかを決定することによって、ブロック１２２で開始される。次にブロック１２４は、たとえば、他のオペレーティング・システム提供ＡＰＩを呼び出すことにより、どの物理ネットワーク・インターフェースが、オペレーティング・システムに関するクリティカル・ストレージを含むストレージ・ボリュームへのアクセスを提供しているかを決定する。
【００３６】
クリティカル・ストレージにアクセスして、オペレーティング・システム・クリティカル・ストレージ動作を処理する、物理ネットワーク・インターフェースが決定されると、ブロック１２６は、各仮想アダプタについて、各物理ネットワーク・インターフェースをランク付けし、オペレーティング・システム・クリティカル・ストレージ動作を処理しない各インターフェースに対しては高位ビットを設定し、こうした動作を処理する各インターフェースに対するビットはクリアして、オペレーティング・システム・クリティカル・ストレージ動作を処理するそれらのインターフェースを、非オペレーティング・システム・クリティカル・ストレージ動作のデータ・トラフィック用にアプリケーションが使用するための、より低い優先順位候補にする。次にブロック１２８は、このランク付けを使用して、各仮想ネットワーク・アダプタについて物理ネットワーク・インターフェースを選択する。たとえばブロック１２８は、各仮想ネットワーク・アダプタについて、最も高位にランク付けされた物理インターフェースを介した所定の関与ピア・コンピュータへの接続性テスト（たとえばＴＣＰ接続）を開始し、その後、わずかな遅延後、２番目に高位にランク付けされたインターフェースなどを介して、同様の接続性テストを開始することができる。次に、最初に完了した接続性テストを使用して、仮想アダプタが使用することになる物理ネットワーク・インターフェースを決定することができる。その後、ルーチン１２０は完了する。
【００３７】
ブロック１２６での物理ネットワーク・インターフェースのランク付けは、たとえば、前述の相互参照された出願において仮想アダプタへマッピングするための物理アダプタのランク付けと同様の様式で、実施可能である。たとえば図５に示されるように、ブロック１２６によって、インターフェースが「非クリティカル・ストレージ」である場合を示すために、高位ビット位置のＮＣＳ＿ＢＩＴフィールド１４１を含む、ランク・データ構造１４０を使用することができる。ＮＣ＿ＢＩＴフィールド１４２、Ｓ９Ｋ＿ＢＩＴフィールド１４４、使用率フィールド１４６、および初期ランクフィールド１４８は、前述の相互参照された出願に記載されたランク・データ構造と同様に構成することができる。符号を示すために最上位ビットとしてのＮＣ＿ＢＩＴフィールド１４２を使用し、仮想アダプタによる使用の候補でないすべての物理アダプタに負のランクを割り当てることが可能であると考えると、ＮＣＳ＿ＢＩＴフィールド１４１を使用して、オペレーティング・システム・クリティカル・ストレージ動作を処理しないすべての適格な物理アダプタを、こうした動作を処理するすべての物理アダプタより優先させることができる。こうしたデータ構造を使用する物理ネットワーク・インターフェースのランク付けは、相互参照された出願に記載されたものと同様の様式で進めることができる。
【００３８】
オペレーティング・システム・クリティカル・ストレージ動作を処理するための物理ネットワーク・インターフェースの割り当ては、本発明に従ったいくつかの様式で実施することも可能である。たとえば多くの場合、オペレーティング・システム・クリティカル・ストレージは、起動時に、およびいかなるアプリケーションも開始される前に、物理ネットワーク・インターフェースに割り当てられることになる。多くの場合、こうした割り当ては、いかなる非オペレーティング・システム・クリティカル・ストレージのデータ・トラフィックも考慮に入れる必要がない。しかしながら、他の実施形態では、たとえば非オペレーティング・システム・クリティカル・ストレージのデータ・トラフィックに関して前述した同様の様式で、予測されるロードまたは使用可能帯域幅に基づいて、あるいはそのタスクに関する特定インターフェースの適合性に基づいて、オペレーティング・システム・クリティカル・ストレージのデータ・トラフィックに対する物理ネットワーク・アダプタを割り当てることが望ましいことを理解されよう。
【００３９】
当業者であれば、他の変更形態が明らかとなろう。
【図１】
0004677514.tif 000002
【図２】
0004677514.tif 000003
【図３】
0004677514.tif 000004
【図４】
0004677514.tif 000005
【図５】
0004677514.tif 000006