(57)【特許請求の範囲】
【請求項１】
ホストに適用されるリソース管理方法であって、前記ホストは、CPUおよび前記CPUに接続されるエンドポイントを含み、前記エンドポイントはI/Oデバイスに接続され、プロセスは前記CPU内で構成され、前記方法は、
前記CPUによって、ターゲットエンドポイントをターゲットプロセスに割り当てるステップであって、仮想デバイスが前記ターゲットエンドポイント上に配置される、ステップと、
前記ターゲットエンドポイントによって、前記ターゲットプロセスの性能仕様を取得し、前記性能仕様に従って、前記仮想デバイスの性能パラメータを調整するステップであって、調整された前記仮想デバイスは、前記ターゲットエンドポイントを使用する全てのプロセスの性能仕様の総要件を満たす、ステップと、
前記ターゲットプロセスがリソースにアクセスする必要があるとき、前記CPUによって、前記ターゲットプロセスの、前記仮想デバイスのためのリソースアクセス要求を前記ターゲットエンドポイントに送信し、前記リソースアクセス要求を受信した後、前記ターゲットエンドポイントによって、前記I/Oデバイスから、前記ターゲットプロセスの前記性能仕様を満たすリソースを取得し、取得された前記リソースを前記ターゲットプロセスに使用のために提供するステップと
を含む、リソース管理方法。
【請求項２】
前記ターゲットエンドポイントによって、前記ターゲットプロセスの性能仕様を取得する前記ステップは、
前記ターゲットエンドポイントによって、前記CPUから前記性能仕様を取得するステップを含む、請求項１に記載のリソース管理方法。
【請求項３】
前記ターゲットエンドポイントによって、前記ターゲットプロセスの性能仕様を取得する前記ステップは、
前記ターゲットエンドポイントによって、前記ターゲットプロセスが過去に動作していたときに占有されたリソースの性能に関する統計を収集し、統計結果に従って、前記性能仕様を生成するステップを含む、請求項１に記載のリソース管理方法。
【請求項４】
前記ターゲットプロセスは仮想マシン内で動作する、請求項１乃至請求項３のいずれか１項に記載のリソース管理方法。
【請求項５】
複数のエンドポイントからの前記複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成し、または、同じエンドポイントからの複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成し、且つ、前記I/Oデバイスから、前記ターゲットプロセスの前記性能仕様を満たすリソースを取得する前記ステップは、
前記I/Oリソースプールから、前記ターゲットプロセスの前記性能仕様を満たす前記リソースを取得するステップを含む、請求項１乃至請求項４のいずれか１項に記載のリソース管理方法。
【請求項６】
前記性能仕様に従って、前記仮想デバイスの性能パラメータを調整する前記ステップは、
全てのプロセスのための全ての性能仕様において唯一でない性能パラメータについて、前記総要件におけるこの性能パラメータのための最大要件を指定することと、
全てのプロセスのための全ての性能仕様において唯一である性能パラメータについて、前記総要件における前記唯一の性能パラメータを指定することとを含む、請求項１乃至５のいずれか１項に記載のリソース管理方法。
【請求項７】
待ち時間を含む、複数のプロセスによって共有されることができる性能と、
入力/出力毎秒IOPSおよび帯域幅を含む、前記複数のプロセスによって共有されることができない性能とを含む、請求項１乃至６のいずれか１項に記載のリソース管理方法。
【請求項８】
前記方法は、前記プロセスを別のホストに移行するステップをさらに含み、前記別のホストは、別のCPU、別のエンドポイントおよび別のI/Oリソースプールを含み、且つ、前記移行するステップの具体的なステップは、
前記CPUによって、前記プロセスの前記性能仕様を、前記別のCPUに送信するステップと、
前記別のCPUによって、前記性能仕様を、前記別のエンドポイントに送信するステップと、
前記別のエンドポイントによって、別の仮想デバイスを生成するステップであって、前記別の仮想デバイスは前記性能仕様を満たす、ステップと、
前記CPUによって、前記プロセスの記述情報を前記別のCPUに送信し、前記別のCPUによって、前記記述情報に従って、新しいプロセスを生成するステップと、
前記新しいプロセスがリソースにアクセスする必要があるとき、前記別のCPUによって、前記新しいプロセスの、前記別の仮想デバイスのための別のリソースアクセス要求を前記別のエンドポイントに送信し、前記別のリソースアクセス要求を受信した後、前記別のエンドポイントによって、前記性能仕様に従って、前記別のI/Oリソースプールからリソースを取得し、前記リソースを前記新しいプロセスに使用のために提供するステップとを含む、請求項１乃至７のいずれか１項に記載のリソース管理方法。
【請求項９】
CPUおよびエンドポイントを含むとともに、I/Oリソースを管理するように構成されるホストであって、
前記CPUは、プロセスを実行し、ターゲットエンドポイントを前記プロセスに割り当てるように構成され、前記ターゲットエンドポイントは前記CPUと通信し、且つ、ターゲットプロセスがリソースにアクセスする必要があるとき、前記CPUは、前記ターゲットプロセスの、仮想デバイスのためのリソースアクセス要求を前記ターゲットエンドポイントに送信し、
前記ターゲットエンドポイントは、前記仮想デバイスを生成するように構成され、前記ターゲットプロセスの性能仕様を取得し、前記性能仕様に従って、前記仮想デバイスの性能パラメータを調整するように構成され、I/Oデバイスに接続され、前記リソースアクセス要求を受信した後、前記ターゲットプロセスの前記性能仕様に従って、前記I/OデバイスからI/Oリソースを取得し、前記リソースを前記ターゲットプロセスに使用のために提供するようにさらに構成され、調整された前記仮想デバイスは、前記ターゲットエンドポイントを使用する全てのプロセスの性能仕様の総要件を満たす、ホスト。
【請求項１０】
前記ターゲットエンドポイントが、前記CPUから前記性能仕様を取得するように構成される、請求項９に記載のホスト。
【請求項１１】
前記ターゲットエンドポイントが、前記ターゲットプロセスが過去に動作していたときに占有されたリソースの性能に関する統計を収集し、統計結果に従って、前記エンドポイントのための前記性能仕様を生成するように構成される、請求項９に記載のホスト。
【請求項１２】
前記ターゲットプロセスは、仮想マシン内で動作し、且つ、前記仮想マシンは、前記CPUのハイパーバイザ内で動作する、請求項９乃至請求項１１のいずれか１項に記載のホスト。
【請求項１３】
前記I/Oデバイスは、少なくとも２つのエンドポイントに由来し、I/Oリソースプールを共同して生成して、前記I/Oリソースプールを使用することによって、リソースを提供する、請求項９乃至請求項１２のいずれか１項に記載のホスト。
【請求項１４】
複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成し、且つ、
前記I/Oデバイスは、１つのエンドポイントに由来し、且つ、前記I/Oデバイスは、リソースを提供して、前記I/Oリソースプールを形成し、前記I/Oリソースプールを使用することによって、リソースを提供する、請求項９乃至請求項１３のいずれか１項に記載のホスト。
【請求項１５】
前記性能仕様に従って、前記仮想デバイスの性能パラメータを調整することは、
全てのプロセスのための全ての性能仕様において唯一でない性能パラメータについて、前記総要件におけるこの性能パラメータのための最大要件を指定することと、
全てのプロセスのための全ての性能仕様において唯一である性能パラメータについて、前記総要件における前記唯一の性能パラメータを指定することとを含む、請求項９乃至請求項１４のいずれか１項に記載のホスト。
【請求項１６】
前記ホストおよび別のホストは、リソース管理システムを構成し、且つ、前記別のホストは、別のCPU、別のエンドポイントおよび別のI/Oリソースプールを含み、
前記CPUは、前記プロセスの性能仕様を、前記別のCPUに送信するようにさらに構成され、前記プロセスの記述情報を、前記別のCPUに送信するようにさらに構成され、
前記別のCPUは、前記性能仕様を、前記別のエンドポイントに送信するように構成され、前記記述情報に従って、前記プロセスを再生成するようにさらに構成され、
前記別のエンドポイントは、別の仮想デバイスを生成するように構成され、前記別の仮想デバイスは、前記性能仕様を満たし、
再生成された前記プロセスがリソースにアクセスする必要があるとき、前記別のCPUは、前記別の仮想デバイスのための再生成された前記プロセスの別のリソースアクセス要求を、前記別のエンドポイントに送信するようにさらに構成され、前記別のリソースアクセス要求を受信した後、前記別のエンドポイントは、前記性能仕様に従って、前記別のI/Oリソースプールからリソースを取得し、前記リソースを新しいプロセスに使用のために提供する、請求項９乃至１５のいずれか１項に記載のホスト。
【請求項１７】
エンドポイントに適用されるリソース管理方法であって、前記エンドポイントは、CPUインタフェースを使用することによって、CPUに接続され、前記エンドポイントは、入力/出力I/Oインタフェースを使用することによって、I/Oデバイスに接続され、仮想デバイスは、前記エンドポイント上に配置され、且つ、前記方法は、
ターゲットプロセスの性能仕様を取得し、前記性能仕様に従って、前記仮想デバイスの性能パラメータを調整するステップであって、調整された前記仮想デバイスは、前記エンドポイントを使用する全てのプロセスの性能仕様の総要件を満たす、ステップと、
前記CPUインタフェースを使用することによって、前記ターゲットプロセスの、前記仮想デバイスのためのリソースアクセス要求を受信し、前記I/Oデバイスから、前記ターゲットプロセスの前記性能仕様を満たすリソースを取得し、前記CPUインタフェースを使用することによって、取得された前記リソースを前記ターゲットプロセスに提供するステップと
を含む、リソース管理方法。
【請求項１８】
前記ターゲットプロセスの性能仕様を取得する前記ステップは、
前記エンドポイントによって、前記CPUインタフェースを使用することによって、前記性能仕様を受信するステップか、または、
前記エンドポイントによって、前記ターゲットプロセスが過去に動作していたときに占有されたリソースの性能に関する統計を収集し、統計結果に従って、前記性能仕様を生成するステップを含む、請求項１７に記載のリソース管理方法。
【請求項１９】
複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成し、且つ、前記I/Oデバイスから、前記ターゲットプロセスの前記性能仕様を満たすリソースを取得する前記ステップは、
前記I/Oリソースプールから、前記ターゲットプロセスの前記性能仕様を満たす前記リソースを取得するステップであって、前記エンドポイントからの、および別のエンドポイントからの複数のI/Oデバイスのリソースは、前記I/Oリソースプールを共同して形成し、且つ、前記複数のエンドポイントは、前記I/Oリソースプールにおけるリソースを共有する、ステップを含む、請求項１７に記載のリソース管理方法。
【請求項２０】
複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成し、且つ、前記I/Oデバイスから、前記ターゲットプロセスの前記性能仕様を満たすリソースを取得する前記ステップは、
前記I/Oリソースプールから、ターゲットプロセスの前記性能仕様を満たす前記リソースを取得するステップであって、前記エンドポイントからの複数のI/Oデバイスは、前記I/Oリソースプールを共同して形成する、ステップを含む、請求項１７に記載のリソース管理方法。
【請求項２１】
仮想デバイスが配置される、リソース管理装置であって、前記装置は、CPUインタフェースを使用することによってCPUに接続され、前記装置は、入力/出力I/Oインタフェースを使用することによってI/Oデバイスに接続され、
ターゲットプロセスの性能仕様およびリソースアクセス要求を受信するように構成される受信モジュールと、
前記性能仕様に従って、前記仮想デバイスの性能パラメータを調整するように構成される仮想デバイス調整モジュールであって、調整された前記仮想デバイスは、前記リソース管理装置を使用する全てのプロセスの性能仕様の総要件を満たす、仮想デバイス調整モジュールと、
前記受信モジュールが、前記ターゲットプロセスの、前記仮想デバイスのためのリソースアクセス要求を受信した後、I/Oデバイスから、前記ターゲットプロセスの前記性能仕様を満たすリソースを取得し、前記リソースを前記ターゲットプロセスに提供するように構成されるリソース獲得モジュールとを含む、リソース管理装置。
【請求項２２】
前記受信モジュールは、CPUから、前記性能仕様を受信するように構成され、または、
前記リソース管理装置は、前記ターゲットプロセスが過去に動作していたときに占有されたリソースの性能に関する統計を収集し、統計結果に従って、前記性能仕様を生成するように構成される、請求項２１に記載のリソース管理装置。
【請求項２３】
複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成し、前記リソース管理装置によって管理されるI/Oデバイスのリソースおよび別のリソース管理装置によって管理されるI/Oデバイスのリソースは、前記I/Oリソースプールを共同して形成し、
前記リソース獲得モジュールは、前記I/Oリソースプールから、前記ターゲットプロセスの前記性能仕様を満たす前記リソースを取得するように構成される、請求項２１に記載のリソース管理装置。
【請求項２４】
前記リソース管理装置によって管理される複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成し、
前記リソース獲得モジュールは、前記I/Oリソースプールから、前記ターゲットプロセスの前記性能仕様を満たす前記リソースを取得するように構成される、請求項２１に記載のリソース管理装置。
【請求項２５】
エンドポイントであって、前記エンドポイントはCPUに接続され、且つ、前記エンドポイントは、
前記CPUに接続されるように構成されるCPUインタフェースと、
I/Oデバイスに接続されるように構成される入力/出力I/Oインタフェースと、
仮想デバイスが配置される処理ユニットとを含み、前記処理ユニットは、前記CPUインタフェースおよび前記I/Oインタフェースに接続されるとともに、
ターゲットプロセスの性能仕様を取得し、前記性能仕様に従って、前記仮想デバイスの性能パラメータを調整し、
前記CPUインタフェースを使用することによって、前記ターゲットプロセスの、前記仮想デバイスのためのリソースアクセス要求を受信し、前記I/Oデバイスから、前記ターゲットプロセスの前記性能仕様を満たすリソースを取得し、前記CPUインタフェースを使用することによって、取得された前記リソースを前記ターゲットプロセスに提供するようにさらに構成され、調整された前記仮想デバイスは、前記エンドポイントを使用する全てのプロセスの性能仕様の総要件を満たす、エンドポイント。
【請求項２６】
前記処理ユニットは、前記CPUインタフェースを使用することによって、前記性能仕様を取得するように構成され、または、
前記処理ユニットは、前記ターゲットプロセスが過去に動作していたときに占有されたリソースの性能に関する統計を収集し、統計結果に従って、前記性能仕様を生成するように構成される、請求項２５に記載のエンドポイント。
【請求項２７】
複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成し、且つ、
前記処理ユニットは、前記I/Oリソースプールから、前記ターゲットプロセスの前記性能仕様を満たす前記リソースを取得するように構成され、前記エンドポイントからの、および別のエンドポイントからの複数のI/Oデバイスのリソースは、前記I/Oリソースプールを共同して形成し、且つ、前記複数のエンドポイントは、前記I/Oリソースプールにおけるリソースを共有する、請求項２５に記載のエンドポイント。
【請求項２８】
前記エンドポイントからの複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成し、且つ、
前記処理ユニットは、前記I/Oリソースプールから、前記ターゲットプロセスの前記性能仕様を満たす前記リソースを取得するように構成される、請求項２５に記載のエンドポイント。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、2014年12月8日に中国特許庁に出願された、“RESOURCE MANAGEMENT METHOD, HOST, AND ENDPOINT”と題する、中国特許出願番号201410745161.3に対して優先権を主張し、その全体が参照によって本明細書に組み込まれる。
【０００２】
本発明はコンピュータ分野に関し、詳細には、リソース管理技術に関する。
【背景技術】
【０００３】
データセンタは、コンピュータシステムおよび他の補助デバイスを含む、一組の複合設備である。メンテナンスを容易にするために、これらのデバイスは同じアーキテクチャ内に置かれてよい。データセンタは、記憶、演算およびネットワーキング等の機能を提供することができる。
【０００４】
仮想ローカルエリアネットワーク（Virtual LAN, VLAN）内のデータを処理するとき、データセンタは、高い優先度を有するデータに使用のためにリソースを優先的に割り当てるために、VLAN内のトラフィック上で異なるレベルで優先度制御を実行してよいとともに、同じVLAN内で異なるプロトコルにおけるデータに対して優先度制御を実行してもまたよい。例えば、インターネット小型コンピュータシステムインタフェース（iSCSI）プロトコルにおけるデータの優先度は、ファイバチャネル（Fibre Channel, FC）プロトコルにおけるデータの優先度よりも高くなるように設定される。
【０００５】
プロセスは、データ動作操作ユニットである。データセンタにおいては、異なるプロセスは異なるサービスに対応していてよい。しかしながら、従来技術では、各プロセスのサービスの品質を保証することは難しく、且つ、いくつかのプロセスが十分なリソースを取得しないか、または、プロセスによって使用されるリソースが要件に達しないケースが発生し得る。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の第１の可能な実施方式は、ホストに適用されるリソース管理方法を提供し、ここで、ホストは、その中でプロセスが構成されるCPUおよびCPUに接続されるエンドポイントを含み、エンドポイントはI/Oデバイスに接続され、方法は、CPUによって、ターゲットエンドポイントをターゲットプロセスに割り当てるステップであって、ここで、仮想デバイスがターゲットエンドポイント上に配置される、ステップと、ターゲットエンドポイントによって、ターゲットプロセスの性能仕様を取得し、性能仕様に従って、仮想デバイスの性能パラメータを調整するステップであって、ここで、調整された仮想デバイスは、ターゲットエンドポイントを使用する全てのプロセスの性能仕様の総要件を満たす、ステップと、ターゲットプロセスがリソースにアクセスする必要があるとき、CPUによって、ターゲットプロセスの、仮想デバイスのためのリソースアクセス要求をターゲットエンドポイントに送信するステップと、リソースアクセス要求を受信した後、ターゲットエンドポイントによって、I/Oデバイスから、ターゲットプロセスの性能仕様を満たすリソースを取得し、取得されたリソースをターゲットプロセスに使用のために提供するステップとを含む。
【０００７】
この解決手段を使用することによって、エンドポイントに割り当てられたターゲットプロセスおよび別のプロセスのリソース性能が事前に設定された標準に達することが保証されることができ、このことは、QoS効果を達成する。
【０００８】
本発明の第１の可能な実施方式の第１の態様では、ターゲットエンドポイントによって、ターゲットプロセスの性能仕様を取得するステップの具体的な方式は、ターゲットエンドポイントによって、CPUから性能仕様を取得するステップであってよく、または、ターゲットエンドポイントによって、ターゲットプロセスが過去に動作していたときに占有されたリソースの性能に関する統計を収集し、統計結果に従って、性能仕様を生成するステップであってよい。前者の方式はより速く、且つ、後者の方式は、プロセスの実際の要件をより良く満たすことができる。
【０００９】
本発明の第１の可能な実施方式の第２の態様では、ターゲットプロセスは、仮想マシン内で動作するプロセス、または、物理マシン内で動作するマルチスレッドのプロセス、または、仮想マシンである。３つ全てが「プロセス」の概念に応じる。
【００１０】
本発明の第１の可能な実施方式の第３の態様では、本発明の第１の可能な実施方式のI/Oリソースは、単一のI/Oデバイスから来てよく、または、I/Oリソースプールから来てよい。I/OリソースがI/Oリソースプールから来る場合、複数のエンドポイントからの複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成し、または、同じエンドポイントからの複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成する。リソースプーリングによって、I/Oリソースは、エンドポイント間でまたはエンドポイント内でより良くスケジュールされることができ、且つ、I/Oデバイスの利用率はより高くなることができる。
【００１１】
本発明の第１の可能な実施方式の第４の態様では、調整された仮想デバイスが、ターゲットエンドポイントを使用する全てのプロセスの性能仕様の総要件を満たすことは、具体的には、複数のプロセスによって共有されることができる性能について、全ての性能仕様におけるこの性能パラメータに関する最大要件を満たすことと、複数のプロセスによって共有されることができない性能について、全ての性能仕様における性能パラメータに関する総要件を満たすこととを含む。このようにして、ターゲットプロセスによって必要とされるリソース性能が保証されることができる。
【００１２】
本発明の第１の可能な実施方式の第５の態様では、プロセスをホストから別のホストに移行するための方法が提供され、ここで、別のホストは、別のCPU、別のエンドポイントおよび別のI/Oリソースプールを含み、且つ、移行するステップの具体的なステップは、CPUによって、プロセスの性能仕様を、別のCPUに送信するステップと、別のCPUによって、性能仕様を、別のエンドポイントに送信するステップと、別のエンドポイントによって、別の仮想デバイスを生成するステップであって、ここで、別の仮想デバイスは性能仕様を満たす、ステップと、CPUによって、プロセスの記述情報を別のCPUに送信し、別のCPUによって、記述情報に従って、新しいプロセスを生成するステップと、新しいプロセスがリソースにアクセスする必要があるとき、別のCPUによって、別の仮想デバイスのための新しいプロセスの別のリソースアクセス要求を別のエンドポイントに送信し、別のリソースアクセス要求を受信した後、別のエンドポイントによって、性能仕様に従って、別のI/Oリソースプールからリソースを取得し、リソースをターゲットプロセスに使用のために提供するステップとを含む。新しいエンドポイントはまた、新しいプロセス（移行後に取得されるプロセス）のために、この移行解決手段を使用することによって、性能要件を満たすリソースを提供することができる。
【００１３】
本発明の第２の可能な実施方式は、CPUおよびエンドポイントを含むとともに、I/Oリソースを管理するように構成されるホストを提供し、ここで、CPUは、プロセスを実行し、ターゲットエンドポイントをプロセスに割り当てるように構成され、ここで、ターゲットエンドポイントはCPUと通信し、且つ、ターゲットプロセスがリソースにアクセスする必要があるとき、CPUは、ターゲットプロセスの、仮想デバイスのためのリソースアクセス要求をターゲットエンドポイントに送信し、ターゲットエンドポイントは、仮想デバイスを生成するように構成され、ターゲットプロセスの性能仕様を取得し、性能仕様に従って、仮想デバイスの性能パラメータを調整するように構成され、I/Oデバイスに接続され、リソースアクセス要求を受信した後、ターゲットプロセスの性能仕様に従って、I/OデバイスからI/Oリソースを取得し、リソースをターゲットプロセスに使用のために提供するようにさらに構成され、ここで、調整された仮想デバイスは、ターゲットエンドポイントを使用する全てのプロセスの性能仕様の総要件を満たす。本発明の第２の可能な実施方式におけるホストは、本発明の第１の可能な実施方式の実施方法および第１の可能な実施方式の各態様を使用してよく、このことは対応する有益な効果を有する。
【００１４】
本発明の第３の可能な実施方式は、エンドポイントに適用されるリソース管理方法を提供し、ここで、エンドポイントは、CPUインタフェースを使用することによって、CPUに接続され、エンドポイントは、入力/出力I/Oインタフェースを使用することによって、I/Oデバイスに接続され、仮想デバイスは、エンドポイント上に配置され、且つ、方法は、ターゲットプロセスの性能仕様を取得し、性能仕様に従って、仮想デバイスの性能パラメータを調整するステップであって、ここで、調整された仮想デバイスは、エンドポイントを使用する全てのプロセスの性能仕様の総要件を満たす、ステップと、CPUインタフェースを使用することによって、ターゲットプロセスの、仮想デバイスのためのリソースアクセス要求を受信し、I/Oデバイスから、ターゲットプロセスの性能仕様を満たすリソースを取得し、CPUインタフェースを使用することによって、取得されたリソースをターゲットプロセスに提供するステップとを含む。本発明の第３の可能な実施方式におけるエンドポイントは、第１の可能な実施方式におけるエンドポイントおよび第１の可能な実施方式の各態様内の解決手段におけるエンドポイントと一貫しており、従って、前述の操作ステップを実行することができ、このことは、対応する有益な効果を有する。
【００１５】
本発明の第４の可能な実施方式は、エンドポイントに適用されるリソース管理方法を提供し、ここで、エンドポイントは、CPUインタフェースを使用することによって、CPUに接続され、エンドポイントは、入力/出力I/Oインタフェースを使用することによって、I/Oデバイスに接続され、仮想デバイスは、エンドポイント上に配置され、且つ、方法は、ターゲットプロセスの性能仕様を取得し、性能仕様に従って、仮想デバイスの性能パラメータを調整するステップであって、ここで、調整された仮想デバイスは、エンドポイントを使用する全てのプロセスの性能仕様の総要件を満たす、ステップと、CPUインタフェースを使用することによって、ターゲットプロセスの、仮想デバイスのためのリソースアクセス要求を受信し、I/Oデバイスから、ターゲットプロセスの性能仕様を満たすリソースを取得し、CPUインタフェースを使用することによって、取得されたリソースをターゲットプロセスに提供するステップとを含む。本発明の第４の可能な実施方式におけるエンドポイントは、第１の可能な実施方式におけるエンドポイントおよび第１の可能な実施方式の各態様内の解決手段におけるエンドポイントと一貫しており、従って、前述の操作ステップを実行することができ、このことは、対応する有益な効果を有する。
【００１６】
本発明の第５の可能な実施方式は、仮想デバイスが配置される、リソース管理装置を提供し、ここで、リソース管理装置は、ハードウェアであってよく、または、ソフトウェアであってよいとともに、エンドポイントまたはエンドポイントにおけるソフトウェアの構造的記述である。リソース管理装置は、ターゲットプロセスの性能仕様およびリソースアクセス要求を受信するように構成される受信モジュールと、性能仕様に従って、仮想デバイスの性能パラメータを調整するように構成される仮想デバイス調整モジュールであって、ここで、調整された仮想デバイスは、リソース管理デバイスを使用する全てのプロセスの性能仕様の総要件を満たす、仮想デバイス調整モジュールと、受信モジュールが、ターゲットプロセスの、仮想デバイスのためのリソースアクセス要求を受信した後、I/Oデバイスから、ターゲットプロセスの性能仕様を満たすリソースを取得し、リソースをターゲットプロセスに提供するように構成されるリソース獲得モジュールとを含む。本発明の第５の可能な実施方式におけるエンドポイントは、第１の可能な実施方式におけるエンドポイントおよび第１の可能な実施方式の各態様内の解決手段におけるエンドポイントの機能を有し、このことは、対応する有益な効果を有する。
【００１７】
本発明の第６の可能な実施方式では、エンドポイントの内部構造エンドポイントが説明され、ここで、エンドポイントはCPUに接続され、且つ、エンドポイントは、CPUに接続されるように構成されるCPUインタフェースと、I/Oデバイスに接続されるように構成される入力/出力I/Oインタフェースと、仮想デバイスが配置される処理ユニットとを含み、ここで、処理ユニットは、CPUインタフェースおよびI/Oインタフェースに接続されるとともに、ターゲットプロセスの性能仕様を取得し、性能仕様に従って、仮想デバイスの性能パラメータを調整し、CPUインタフェースを使用することによって、ターゲットプロセスの、仮想デバイスのためのリソースアクセス要求を受信し、I/Oデバイスから、ターゲットプロセスの性能仕様を満たすリソースを取得し、CPUインタフェースを使用することによって、取得されたリソースをターゲットプロセスに提供するようにさらに構成され、ここで、調整された仮想デバイスは、エンドポイントを使用する全てのプロセスの性能仕様の総要件を満たす。本発明の第６の可能な実施方式におけるエンドポイントは、第１の可能な実施方式におけるエンドポイントおよび第１の可能な実施方式の各態様内の解決手段におけるエンドポイントと一貫しており、従って、前述の操作ステップを実行することができ、このことは、対応する有益な効果を有する。
【図面の簡単な説明】
【００１８】
本発明の実施形態における解決手段をより明確に説明するために、以下では、実施形態を説明するために必要とされる添付図面を簡潔に説明する。以下の説明における添付図面は単に、本発明のいくつかの実施形態を示し、且つ、他の図面は、これらの添付図面からさらに導出されることができる。
【００１９】
【図１】図１は、本発明の実施形態に係るコンピュータの内部トポロジ図である。
【図２】図２は、本発明の実施形態に係る、２つのコンピュータが相互接続されているケースのトポロジ図である。
【図３】図３は、本発明の実施形態に係る、リソース管理方法のフローチャートである。
【図４】図４は、本発明の実施形態に係る、プロセス移行方法のフローチャートである。
【図５】図５は、本発明の実施形態に係る、リソース管理デバイスの構成図である。
【図６】図６は、本発明の実施形態に係る、エンドポイントの構成図である。
【発明を実施するための形態】
【００２０】
以下では、本発明の実施形態における添付図面を参照して、本発明における技術的解決手段を明確且つ完全に説明する。明らかに、説明される実施形態は単に、実施形態の一部であるが全てではない。本発明の実施形態に基づいて得られる全ての他の実施形態は、本発明の保護範囲に包含されるべきである。
【００２１】
PCIeは、データセンタにおいて広く使用されているシステムバス標準であり、且つ、多くのデータセンタコンピュータ周辺機器は、PCIeエンドポイント（Endpoint）の範囲に属する。
【００２２】
本発明の方法は、周辺構成要素相互接続エクスプレス（PCI Express, PCIe）エンドポイント（Endpoint）において使用されてよい。PCIeエンドポイントは、例えば、ネットワークアダプタ（Network Adapter）またはホストバスアダプタ（Host Bus Adapter, HBA）カードであってよい。図１を参照すると、図１は、コンピュータの内部構成図である。エンドポイント１２は、PCIeトランザクションのイニシエータまたはコンプリータである。CPU１１はエンドポイント１２に接続される。エンドポイント１２はI/Oデバイス１３に接続されるとともに、I/OデバイスのI/OリソースをCPUに使用のために提供する。I/Oデバイスは、例えば、メモリ、アクセラレータカードまたはネットワークアダプタであり、ここで、メモリは記憶リソースを提供することができ、アクセラレータカードはコンピューティングリソースを提供することができ、ネットワークアダプタは帯域幅リソースを提供することができる。ホストが複数のCPUを含むとき、CPU１１は、同じホスト上の全てのCPUのセットである。I/Oデバイス１３は、コンピュータの内部に配置されてよく、または、コンピュータの周辺デバイスであってよいことは留意されるべきである。以下では、I/Oデバイスがコンピュータの内部に配置されるケースを説明する。
【００２３】
PCIeエンドポイントはまた、エンドポイントと呼ばれてもよい。エンドポイントは、それ自身の代わりに、PCIeトランザクションのリクエスタまたはコンプリータとして役目を果たすPCIe機能デバイス、または非PCIeデバイスである。例えば、エンドポイントは、PCIeバス上に取り付けられたグラフィックコントローラ、またはPCIe USBホストコントローラである。エンドポイントは、Legacyエンドポイント、PCI Expressエンドポイントおよびルート複合統合エンドポイントのタイプに包含される。
【００２４】
エンドポイント１２はプロセッサを含み、且つ、従って、演算能力を有する。エンドポイントは、インタフェースをさらに含むとともに、I/OデバイスおよびCPUに別々に接続される。エンドポイントは、リソースプール方式で、エンドポイントに接続されるI/Oデバイス１３を管理することができ、且つ、リソースプール内のリソースをCPU１１に使用のために提供することができる。エンドポイント１２は仮想デバイスを実行してよく、ここで、仮想デバイスは、CPU１１上で動作するサービスを実行するように構成される。複数のエンドポイント１２があるとき、エンドポイント１２は相互接続されてよく、有線または無線方式で直接接続されてよく、または、スイッチを使用することによって、接続されてよい。
【００２５】
複数のエンドポイント１２は、全てのI/Oデバイス１３を共同して管理するために、スイッチ１４を使用することによって、互いに通信してよい。例えば、各エンドポイント１２のI/Oデバイス１３によって提供されるリソースは、エンドポイント１２によって共有されてよい。エンドポイントに直接属するI/Oデバイス１３が、仮想デバイス（vDev）のために十分なリソースを提供することができないとき、リソースは、別のエンドポイント１２に直接属するI/Oデバイス１３から取得されてよい。
【００２６】
任意で、複数のエンドポイント１２があるとき、スイッチ（図には示されない）は、CPU１１とエンドポイント１２との間に追加されてよい。スイッチは、CPU１１とエンドポイント１２との間でデータ交換を実行する。一方では、エンドポイント１２の外部ポートは拡張されてよく、すなわち、CPU１１は、より多くのエンドポイント１２に接続されてよく、他方では、CPU１１のデータは、正しいエンドポイント１２に、より正確に且つ速く送信されてよい。
【００２７】
図２は別のトポロジ図であり、且つ、図１との違いは、２つのコンピュータが含まれることである。コンピュータのエンドポイントは、スイッチ１４を使用することによって相互接続され、その結果、エンドポイント１２は、ネゴシエーションによって、全てのI/Oデバイス１３を共同して管理することができる。３つ以上のコンピュータによって構成されるシステムはまた、これらのコンピュータのエンドポイントがスイッチを使用することによって接続される限り、本発明に適用可能である。コンピュータはまた、ホストまたはノードとも呼ばれ、且つ、異なるコンピュータは、それらのそれぞれのオペレーティングシステムを操作する。プロセスが仮想マシン内で動作する場合、仮想マシンはハイパーバイザ（hypervisor）内で動作し、且つ、異なるホストは、それら自身のハイパーバイザを有する。
【００２８】
以下では、メモリがI/Oデバイスとして使用される例を使用することによって、本発明の実施形態を説明する。メモリ、例えば、磁気ディスクまたはソリッドステートディスク等の媒体は、独立した記憶媒体であってよく、または、複数の記憶メディアによって構成されるアレイであってよい。記憶デバイスは、スループット、待ち時間、帯域幅、パケット損失率およびジッタ等の複数のパラメータを含むサービス能力を提供することができる。異なるプロセス（Process）によって要求されるサービスの品質（QoS）は一般に異なる。例えば、高い帯域幅は一般に、高解像度ビデオのプロセスを満たすために必要とされ、且つ、より短い待ち時間およびより低いパケット損失率は一般に、バンキングサービスのプロセスにおいて期待される。
【００２９】
サービスレベルアグリーメント（Service Level Agreement, SLA）は、サービスレベルの品質についての、サービス提供者とユーザとの間のネゴシエーションによって決定されるアグリーメントまたはコントラクトであり、且つ、アグリーメントまたはコントラクトは、サービス提供者およびユーザによって到達される、サービスの内容、優先度、責任等についてのアグリーメントを指定する。SLAは主に、(1) 商業的な部分、例えば、２つの契約の当事者、権利および責任、および請求ルール、(2) 技術的な部分、例えば、送信元ノードアドレス、宛先ノードアドレス、および、サービスの品質を満たすために必要とされる、予約済帯域幅、待ち時間、ジッタおよびパケット損失、の２つの部分、およびネットワークに関するいくつかの他の技術的なパラメータを含む。本発明の本実施形態では、SLAサービスオブジェクトにおけるサービスの品質に関する部分のみが議論されることは留意されるべきである。具体的には、SLAの技術的な部分に記載される性能仕様のみが議論され、ここで、性能仕様は量子化されてよく、例えば、帯域幅の値、待ち時間の値、ジッタの値またはパケット損失率の値が、性能仕様であってよい。SLAの残りの部分（例えば、商業的な部分および送信元アドレスまたは宛先アドレス）は、本発明の本実施形態では議論されない。例えば、プロセス1の待ち時間の性能仕様が、0.5ms以下であるように要求される場合、このサービスのために生成されるSLAは、“プロセス1：待ち時間は0.5ms以下である”である。
【００３０】
リソース管理方法の実施形態のより良い説明のために、図３を参照されたい。CPUは、複数のプロセスを実行してよく、且つ、以下では、例として、プロセスのうちの１つの動作プロセスを使用することによって、リソース管理を実行する方法を説明する。説明の便利さのために、このプロセスはターゲットプロセスと呼ばれる。
【００３１】
ステップ２１．エンドポイントは、仮想デバイス（Virtual Device, vDev）を生成する。各エンドポイントは、その自身の仮想デバイスを生成してよく、または、１つのエンドポイントは、複数の仮想デバイスを生成するとともに、複数の仮想デバイスを各エンドポイントに割り当ててよい。vDevの数は、エンドポイントの数と同じであり、且つ、各エンドポイントは、１つの仮想デバイスを実行する。
【００３２】
仮想デバイスは仮想I/Oデバイスである。エンドポイントが１つのI/Oデバイスに接続されるとき、CPUは、I/Oデバイスにアクセスしてよい。エンドポイントが複数のI/Oデバイスに接続される場合、CPUがこれらのI/Oデバイスに直接アクセスすることは難しい。従って、仮想I/Oデバイスが、I/Oデバイスの数を１つに変更するために使用される。すなわち、I/Oデバイス仮想化によって、CPUには、エンドポイントは常にただ一つのI/Oデバイスに接続されているように見える。
【００３３】
本発明の本実施形態では、仮想デバイスvDevのリソースは、リソースプールに由来し、且つ、リソースプールのリソースが複数のエンドポイントに由来する場合、vDevのリソースは、エンドポイントによって限定されなくてよい。すなわち、エンドポイントに対応するvDevのリソースは、エンドポイントのI/Oデバイスに由来してよく、ホスト内の別のエンドポイントのI/Oデバイスに由来してよく、または、別のホスト内のエンドポイントのI/Oデバイスに由来してよい。
【００３４】
vDevは、物理機能（Physical Function, PF）、多機能（Multi Function, MF）または仮想機能（Virtual Function, VF）の形態でCPUに提供されてよい。すなわち、vDevは、仮想化されたPF、MFまたはVFであってよい。
【００３５】
複数のエンドポイントが１つのリソースプールを共有するとき、リソースプール内のリソースは、エンドポイントの数に従って、全てのvDevに均等に割り当てられてよい。例えば、全体として３個のエンドポイントおよび６個のメモリがあり、各メモリの記憶空間は100GBであり、そのとき200GBの記憶空間が各vDevに割り当てられる。異なるvDevに割り当てられたリソースは異なってよい。例えば、100GBの記憶空間は第１のvDevに割り当てられ、200GBの記憶空間は第２のvDevに割り当てられ、300GBの記憶空間は第３のvDevに割り当てられる。I/Oリソースのいくつかのタイプについて、例えば、アクセラレータカードによって提供されるI/Oリソースについては、このステップでは、vDevは生成されるだけであってよいが、リソースはそのvDevに割り当てられない。全てのI/Oデバイスによって提供されるリソースは、リソースプールの一部になるとともに、エンドポイントによって管理されることができる。I/Oデバイスによって提供されるリソースは、I/Oリソースと呼ばれる。
【００３６】
このステップでは、各エンドポイントに対して１つのvDevが作成され、その結果、vDevはその後呼び出されることができることは留意されるべきである。リソースの各vDevへの割り当ては、シン割り当てであってよく、すなわち、リソースが割り当てられるが、vDevに割り当てられたリソースは、実際には、vDevによって占有されず、且つ、プロセスがリソースを使用するとき、対応するリソースは、実際には、プロセスの要件に従って占有される。シン割り当ては、リソース利用を改善することができる。確かに、別の実施方式では、シン割り当ては使用されなくてよく、且つ、vDevは実際にリソースを占有する。割り当てモードに関わらず、vDevのためのリソースの数は調整されてよく、例えば、１つのvDevに割り当てられ、且つ１つのvDevによって所持されるリソースは、別のvDevに使用のために転用されてよい。
【００３７】
本発明の本実施形態では、複数のエンドポイントのI/Oデバイスのリソースが、I/Oリソースプールを共同して形成する場合、リソースプールにおけるリソースは、エンドポイントにおける任意のエンドポイントによって呼び出されてよく、従って、リソース利用は改善されることができる。複数のホストによって構成されるリソース管理システムにおいてでも、ホストのI/Oリソースはリソースプールを共同して形成するため、１つのエンドポイントは、別のエンドポイントのI/Oデバイスを呼び出してよい。呼び出すエンドポイントおよび呼び出されるエンドポイントは、同じホスト上にあっても異なるホスト上にあってもよい。
【００３８】
具体的な呼出し方法は、ターゲットプロセスはvDevが配置されるエンドポイントにリソース使用要求を送信し、vDevが配置されるエンドポイント（ターゲットエンドポイント）は、ターゲットプロセスによる使用のために、エンドポイントのI/Oデバイスのリソースを呼び出し、ターゲットエンドポイントはまた、エンドポイント間のスイッチを使用することによって、リソース呼出し要求を別のエンドポイントに送信してよく、要求を受信した後、別のエンドポイントは、要求されたリソースをターゲットプロセスに使用のために割り当てることである。
【００３９】
このステップでは、各エンドポイントは１つのvDevを有し、且つ、エンドポイントの数は1または少なくとも2であってよい。エンドポイントの数が1であるとき、この唯一のエンドポイントは１つのvDevを有する。ホストのエンドポイントの数が少なくとも2であるとき、各エンドポイントは１つのvDevを有する。エンドポイントの数が少なくとも2であるとき、全てのvDevのリソースは、エンドポイント間の相互ネゴシエーションによって、共同して決定されてよく、且つ、vDevは、決定されたリソースに従って生成され、または、全てのvDevは、１つのエンドポイントによって生成されてよく、リソースの具体的な数が各vDevに割り当てられ、次いで、生成されたvDevがエンドポイントに割り当てられる。
【００４０】
vDevが生成された後、CPUは、プロセスとvDevとの間の対応関係をさらに確立してよい。vDevはエンドポイント上で動作するため、vDevとvDevが配置されるエンドポイントとの間に対応関係が存在する。すなわち、対応関係はまた、プロセスとエンドポイントとの間にも存在する。このようにして、プロセスは、対応するエンドポイントから、I/Oリソースを取得してよい。プロセスとvDevとの間にあるとともに、CPUによって確立される対応関係は、プロセスが、vDevが配置されるエンドポイントからリソースを呼び出すための許可を有することを表す。
【００４１】
ステップ２２．CPUは、プロセスとエンドポイントとの間の対応関係に従って、ターゲットプロセスのSLAをターゲットエンドポイントに送信する。プロセスはCPU内で動作し、且つ、CPUは、プロセスのSLAを取得してよい。加えて、プロセスの識別子は、エンドポイントにさらに送信されてよい。プロセスの識別子は、プロセスアドレス空間識別子（Process Address Space Identifier, PAS ID）であってよく、ここで、異なるプロセスのPAS IDは異なり、または、プロセスの識別子は、プロセスを識別することができる別のタイプのIDであってよい。
【００４２】
CPUが、SLAを使用することによって各性能仕様をエンドポイントに送信することは、エンドポイントが性能仕様を取得する任意の方式にすぎない。別の任意の方式は、エンドポイントが、事前に記録された設定ファイルから性能仕様を取得することであり、ここで、設定ファイルは、ネットワークサーバ上、または、ローカルハードディスク内に記憶されてよい。SLAは、データベース内にさらに記録されてよく、ここで、データベースはまた、ネットワークサーバ上、または、ローカルハードディスク内に記憶されてもよく、または、分散記憶システム内に記憶されてもよい。
【００４３】
例えば、プロセスは、データを書き込むプロセスであり、且つ、プロセスのSLAで搬送される性能仕様は、IOPS（Input/Output Per Second, 入力/出力毎秒）≧500、待ち時間（Latency Time）≦1ms、帯域幅≧500Mbpsの３つの項目を含む。記憶デバイスはエンドポイントに接続されるとともに、エンドポイントを使用することによって、全ての性能仕様を満たすI/Oリソースを書込みプロセスに使用のために提供する。ターゲットプロセスの性能仕様を満たすリソースは、その性能仕様が、ターゲットプロセスの性能仕様以上であるリソースを指す。
【００４４】
可能なケースは、プロセスが仮想マシン内で動作し、且つ、仮想マシンがCPU内で動作することである。別の可能なケースは、仮想マシンがなく、且つ、プロセスがCPU内で直接動作することである。従来より、プロセスはまた、操作またはジョブ（job）とも呼ばれる。プロセスは、１つ以上のスレッド（Thread）によって構成される。仮想マシンのシナリオにおいては、本発明の実施形態で言及されるプロセスは、前述の仮想マシンの内部プロセスであってよく、または、オペレーティングシステムにとっては、仮想マシンもまたプロセスであるため、仮想マシン自身を指してよいことは留意されるべきである。従って、本発明の本実施形態におけるプロセスは、CPU内で直接動作するプロセス、CPU内で動作する仮想マシンおよび仮想マシン内で動作するプロセスの少なくとも３つの可能性を含む。
【００４５】
ステップ２３．ターゲットプロセスのSLAを受信した後、ターゲットエンドポイントは、vDevの全ての性能パラメータを調整し、その結果、vDevの調整された性能パラメータは、全ての受信された有効SLAを満たす。加えて、ターゲットエンドポイントは受信されたSLAを記憶し、且つ、プロセスの1よりも多くのSLAが受信されたとき、SLAを記憶することに加えて、各性能仕様をさらに結合して、結合された性能仕様を生成し、結合された性能仕様を記憶する。
【００４６】
vDevの調整された性能パラメータは、全ての受信された有効SLAを満たす。有効SLAは、現在受信されたSLAおよび前に受信されたSLAを含むが、そのリソースが解放されたプロセスのSLAを含まない。すなわち、このエンドポイントによって受信されたリソースのための全てのプロセスの総要求は、vDevのリソースを呼び出すことによって満たされてよい。ここで説明される全てのプロセスは、ターゲットエンドポイントからリソースを呼び出す許可を未だ有するプロセスであり、終了したプロセスを含まず、そのリソースが解放されたプロセスを含まない。
【００４７】
１つのエンドポイントが複数のプロセスに対応している場合、エンドポイントは、同じ期間に、または異なる期間に、複数のプロセスのSLAを受信してよく、且つ、エンドポイントは、全ての受信されたSLAを満たす必要がある。具体的な操作方法は、性能仕様を結合し、結合された性能仕様を満たすようにvDevの性能パラメータを調整することである。結合ポリシーは、複数のプロセスによって共有されることができる性能のタイプについて、性能の各タイプに対して、最大性能要件を有する性能仕様が結合された性能仕様として使用されることである。複数のプロセスによって共有されることができない（すなわち、プロセスによって占有された後、別のプロセスによって占有されることができない）性能のタイプについては、性能の各タイプに対して、性能パラメータの合計が、結合された性能仕様として使用される。例えば、IOPSまたは帯域幅は、複数のプロセスによって共有されることができず、且つ、プロセスによって占有されるIOPSまたはプロセスによって占有される帯域幅の部分は、別のプロセスによって使用されることができない。しかしながら、性能待ち時間は、複数のプロセスによって共有されることができ、且つ、プロセスは、別のプロセスの待ち時間性能を占有しない。従って、待ち時間のための最大要件を有するプロセスが満たされる限り、残りのプロセスの待ち時間性能は満たされる。プロセスが、別のプロセスが持たない性能パラメータを有する場合、この唯一の性能パラメータの性能仕様は、結合された性能仕様として使用される。性能仕様は、リソースの性能のタイプのためのプロセスの要件であるとともに、性能パラメータのタイプの値のための標準である。
【００４８】
例えば、全体として３個のプロセスがあり、且つ、３個のプロセスのPAS IDはそれぞれ、プロセス１、プロセス２およびプロセス３である。３つのプロセス各々は、２つまたは３つの性能仕様を有し、プロセス１：IOPS≧500および待ち時間≦2ms；プロセス２：IOPS≧400および待ち時間≦1ms；プロセス３：IOPS≧300、待ち時間≦3msおよび帯域幅≧500Mbpsである。このケースでは、結合された性能仕様は、IOPS≧500+400+300、待ち時間≦1msおよび帯域幅≧500Mbpsの３つの項目を全体として有する。性能仕様は、性能のタイプのための要件である。性能パラメータは、パラメータ値を含むとともに、リソースの性能のタイプを記述するために使用される。
【００４９】
ステップ２１では、リソースはvDevに割り当てられるが、リソースの性能は関係しない。このステップでは、vDevは、QoS要件を満たすことを可能にされる。具体的には、vDevが提供することができるリソースは、SLA内で記述される性能仕様を満たすことを可能にされる。
【００５０】
エンドポイントは、受信されたSLAを記憶するとともに、各SLAに対応するPAS IDを識別する。前述の３つのプロセスは、例として使用される。エンドポイントにおける各プロセスの性能仕様および結合された性能仕様は、以下の内容を含む。
【００５１】
プロセス１の性能仕様：IOPS≧500、待ち時間≦2ms
プロセス２の性能仕様：IOPS≧400、待ち時間≦1ms
プロセス３の性能仕様：IOPS≧300、待ち時間≦3ms、帯域幅≧500Mbps
合計の結合された性能仕様：IOPS≧1200、待ち時間≦1ms、帯域幅≧500Mbps
【００５２】
ステップ２４．動作するとき、ターゲットプロセスは、vDevが配置されるターゲットエンドポイントに、リソースアクセス要求を送信し、ターゲットエンドポイントは、リソースアクセス要求を受信し、リソースアクセス要求を受信した後、ターゲットエンドポイントは、リソースアクセス要求から、ターゲットプロセスのPAS IDを取得する。次いで、ターゲットエンドポイントは、プロセスのPAS IDを使用して、ターゲットプロセスのSLAを検索し、I/Oデバイスリソースプールから、ターゲットプロセスに対応するSLA要件を満たすリソースを取得し、リソースを、ターゲットプロセスに使用のために提供する。
【００５３】
例えば、ターゲットプロセスのPAS IDはプロセス１である。ターゲットプロセスの現在の操作は、データを記憶することであり、そのとき、要求されたリソースは記憶空間である。リソースアクセス要求は記憶されるべきデータを搬送し、且つ、プロセス１のリソースアクセス要求を受信した後、エンドポイントは、プロセス１のSLAを検索し、次いで、SLA要件を満たす記憶空間を取得し、記憶されるべきデータを取得された記憶空間に記憶する。リソースアクセス要求を、プロセスに対応するエンドポイントのvDevに送信することはまた、エンドポイントのvDevに、リソースを提供するように要求するために、リソースアクセス要求をエンドポイントに送信することとして理解されてもよいことは留意されるべきである。
【００５４】
ターゲットプロセスは、リソースアクセス要求を送信する。具体的には、CPUは、リソースアクセス要求をターゲットエンドポイントに送信し、且つ、アクセス要求は、プロセスのPAS IDを搬送するとともに、vDevのIDをさらに搬送してよい。
【００５５】
本発明の本実施形態では、最初にリソースアクセス要求を受信するエンドポイントは、ターゲットエンドポイントである。ターゲットエンドポイントは、ターゲットプロセスによる使用のために、ターゲットエンドポイントのI/Oデバイスのリソースを呼び出してよい。ターゲットエンドポイントは、エンドポイント間のスイッチを使用することによって、別のエンドポイントのI/Oデバイスをさらに呼び出してよく、このことは、I/Oデバイスが単独に１つのエンドポイントに属するという特性を論理的に取り消す。具体的には、リソース利用は、リソースプールを使用することによって改善される。
【００５６】
任意の方式は、リソースが、I/Oデバイスが属するエンドポイントを考慮すること無しに、リソースプールから直接取得され、且つ、リソースは、任意のI/Oデバイスに由来してよいことである。別の任意の方式は、エンドポイントは、エンドポイントのI/Oデバイスによって提供されたリソースを優先的に呼び出し、且つ、エンドポイントのI/Oデバイスのリソースが要件を満たすのに不十分であるとき、要求される残りのリソースは、別のエンドポイントのI/Oデバイスから取得されることである。前者の方式と比較すると、後者の方式では、スイッチの負荷は低減されることができ、且つ、リソースを呼び出す速度が改善される。I/Oデバイスとエンドポイントとの間にホーミング関係が存在し、且つ、エンドポイントによって所持されるI/Oデバイスは、エンドポイントに直接接続されるI/Oデバイスエンドポイントデバイスである。
【００５７】
このステップでは、ターゲットプロセスがリソースを呼び出すことは、例として使用されることは留意されるべきである。実際には、別のプロセスがまた、ターゲットエンドポイントを使用することによって、リソースを呼び出してもよい。調整された仮想デバイスは、全ての受信された有効SLAを満たす。従って、ターゲットプロセスに加えて、別のプロセスがまた、ターゲットエンドポイントからリソースを呼び出すための許可を有する場合、動作しているとき、別のプロセスは、vDevが配置されるターゲットエンドポイントに、リソースアクセス要求を送信し、ターゲットエンドポイントはまた、I/Oデバイスリソースプールから、別のプロセスに対応するSLA要件を満たすリソースを取得してもよいとともに、リソースを、別のプロセスに使用のために提供してもよい。本実施形態が使用された後、エンドポイントは、エンドポイントを使用する全てのプロセスのリソースに対する要求を満たすことができる。
【００５８】
ステップ２５．ターゲットプロセスがリソースを使用した後、CPUは、ターゲットプロセスによって占有されるリソースを解放するために、ターゲットエンドポイントに、リソース解放コマンドを送信する。
【００５９】
加えて、ターゲットプロセスが終了した後、ターゲットエンドポイントは、記憶された性能仕様を更新し、エンドポイントから、終了したプロセスの性能仕様を消去し、終了していないプロセスに従って、結合された性能仕様を更新してよい。
【００６０】
vDevが作成されるとき、異なるタイプのI/Oデバイスは異なってよい。前述の実施形態では、使用のためにエンドポイントに提供された物理I/Oデバイスはメモリであるため、メモリによって提供されたリソースは記憶容量であり、vDevは物理I/Oデバイスの仮想化であり、vDevはまた、仮想メモリと呼ばれてもよい。I/Oデバイスがネットワークアダプタである場合、vDevは、仮想ネットワークアダプタであり、ネットワークアダプタによって提供されるリソースはネットワーク帯域幅であり、性能パラメータは、例えば、待ち時間である。I/Oデバイスが暗号アクセラレータカードである場合、vDevは仮想暗号アクセラレータカードである。アクセラレータカードのリソースは、暗号アルゴリズム操作毎秒であるが、一般に、暗号アルゴリズム操作毎秒はQoSの性能パラメータとみなされてもよく、従って、リソースは、vDevが作成されるとき、vDevに割り当てられず、しかし、暗号アルゴリズム操作毎秒はリソースの性能パラメータとして使用される。従って、リソースは、vDevが作成されるとき（ステップ２１）に割り当てられなくてよく、しかし、リソースは、性能パラメータのタイプとして使用される。例えば、IOPS要件、待ち時間要件および帯域幅要件を搬送することに加えて、SLAは、記憶空間要件、例えば、記憶空間≧200GBをさらに搬送する。
【００６１】
加えて、プロセスの性能仕様が変化する場合、CPUは、新しい性能仕様を、対応するエンドポイントに送信してよい。エンドポイントは、新しい性能仕様に従って、記憶された性能仕様を更新するとともに、結合された性能仕様を更新する。プロセスが動作しているとき、リソースは、新しい性能仕様に従って取得される。
【００６２】
コンピュータまたはコンピュータの主な機能を有するデバイスもまた、一般に、ノードと呼ばれてもよい。本発明の本実施形態では、図２におけるクロスノードシナリオに基づいて、クロスオーバI/Oリソース共有が、エンドポイント間の相互接続によって実施されてよい。ノードのプロセスのI/Oリソースが不十分であるとき、I/Oリソースは、別のノードから取得されてよい。
【００６３】
前述の実施形態では、ステップ２２では、性能仕様はSLA内で搬送され、且つ、SLAは、CPUを使用することによって、エンドポイントに送信される。すなわち、エンドポイントは、CPUによって送信されるSLAを使用することによって、プロセスの性能仕様を取得する。性能仕様は、CPUを使用することによって、エンドポイントに送信されてよいとともに、SLA内で搬送されなくてよい。
【００６４】
前述の２つの方式に加えて、本発明は、別のリソース管理方法の実施形態をさらに提供する。前述の実施形態との違いは、性能仕様が、CPUを使用することによって取得されないことにあり、このことは、ステップ２２が修正されることと同等である。別のステップについては、前述の実施形態に対して参照が行われてよい。別のリソース管理方法の本実施形態では、性能仕様は、エンドポイントによって事前に記憶されるとともに、CPUから取得される必要はない。
【００６５】
任意の解決手段は、エンドポイントは、プロセスによって占有されるリソースの性能に関する統計を収集するとともに、統計結果に従って、プロセスのための性能仕様を設定することである。統計を収集する期間の後、プロセスが記憶されたリソースを使用するプロセスでは、占有される帯域幅は、10MBと20MBの間で変動すると想定される。プロセスの帯域幅の性能仕様は、20MBよりも小さくないように設定されてよい。プロセスの残りの性能パラメータの性能仕様もまた、統計を収集することによって取得されてもよい。この解決手段では、プロセスが必須の性能要件を持たない（例えば、SLAは性能要件を含まない）とき、プロセスはより良く動作することができ、且つ、リソース利用は改善される。
【００６６】
別の任意の解決手段は、システム管理者が、経験に従って、プロセスのための性能仕様を設定することである。
【００６７】
本発明の本実施形態では、リソースプールから、プロセスの性能仕様に従って、プロセスのQoS要件を満たすように、対応するリソースがプロセスに割り当てられる。しかしながら、リソースプール内のリソースのソースについて、本発明は、拡張をさらに実行してよい。リソースプール実施方法は、異なるエンドポイントに属するとともに、ホスト内にあるI/Oデバイスのリソースがリソースプールを構成することである。第２の実施方法は、複数のホストが相互接続されて、システムを構成し、異なるエンドポイントに属するI/Oデバイスのリソースがリソースプールを構成し、これらのエンドポイントの全てが同じホストに由来するわけではないことである。第１の実施方法および第２の実施方法は、複数のエンドポイントのI/Oデバイスのリソースがリソースプールを構成することとして結論付けられてよく、且つ、違いは、これらのエンドポイントは同じホストに由来するか、または異なるホストに由来するかにある。第３の実施方法は、単一のエンドポイントのI/Oデバイスのリソースは、リソースプールを構成することである。第４の実施方法は、複数のエンドポイントのI/Oデバイスのリソースは大きなリソースプールを構成し、次いで、大きなリソースプールは複数の小さいリソースプールに分割され、１つ以上のエンドポイントが１つの小さいリソースプールを共有することである。小さいリソースプールが分割によって取得されるとき、リソースのホームエンドポイントは考慮されない。
【００６８】
前述の実施形態に基づくと、本発明は、プロセス移行の実施形態をさらに提供する。具体的には、本発明の本実施形態によると、プロセスは、ホストから別のホストに移行され、且つ、具体的には、CPUから別のCPUに移行される。図４を参照されたい。この方法では、プロセスがホストから別のホストに移行された後、プロセスの性能仕様は変更されないままである。プロセス移行の解決手段は、ホストが元のプロセスを実行するとき、元のプロセスの記述情報を使用することによって、別のホスト上に新しいプロセスを生成することを含み、その結果、新しいプロセスは、元のプロセスと同じである。新しいプロセスが生成された後、元のプロセスは終了してよい。記述情報を使用することによって新しいプロセスを生成する方法は、本実施形態には含まれない。実施形態の主な焦点は、プロセスが移行された後および移行される前で、新しいプロセスのリソース設定が元のプロセスのリソース設定と一貫していることを保証する方法にある。以下は、プロセス移行の具体的なステップである。
【００６９】
ステップ３１．移行元ホストのCPUは、元のプロセスのSLAを、移行先ホストのCPUに送信する。
【００７０】
移行元ホストのCPUは、現在、元のプロセスを実行している。プロセスが移行される元のCPUは、移出ホストのネットワークアダプタを使用することによって、移行先ホストのネットワークアダプタにSLAを送信し、移行先ホストのネットワークアダプタは、プロセスが移行される先のCPUに元のプロセスのSLAを送信する。
【００７１】
ステップ３２．移行先ホストのCPUは、移入エンドポイントとしてエンドポイントを選択し、SLAを移入エンドポイントに送信する。
【００７２】
CPUは、複数のアルゴリズムを使用することによって、移入エンドポイントを選択してよく、例えば、実行可能な方法は、移入エンドポイントとしてエンドポイントをランダムに指定することである。
【００７３】
ステップ３３．SLAを受信した後、移入エンドポイントは、SLA内で搬送される性能仕様に従って、vDevを生成する。
【００７４】
SLAを受信したエンドポイントがvDevを既に有する場合、既存のvDevが更新される。更新プロセスについては、ステップ２３を参照されたい。更新されたvDevは、移入エンドポイントに対応する全ての有効SLAの性能仕様（移入されるべきプロセスの性能仕様および元のプロセスが移行される前に移入エンドポイントによって受信された有効SLA内で搬送された性能仕様を含む）を満たす。性能仕様を満たす方法については、ステップ２３の具体的な操作方法を参照されたい。
【００７５】
SLAを受信するエンドポイントがvDevを持たない場合、vDevは、元のプロセスの性能仕様に従って生成される。
【００７６】
ステップ３４．移行元ホストのCPUは、元のプロセスの記述情報を、移行先ホストのCPUに送信する。移行先ホストのCPUは、元のプロセスの記述情報に従って新しいプロセスを生成し、このことは、プロセス移行を実施する。
【００７７】
記述情報およびSLAを送信する順序は限定されない。記述情報は最初に送信されてよく、次いで、SLAは送信される。
【００７８】
新しいプロセスを生成した後、移行先ホストのCPUは、応答メッセージを移出ホストに送信し、且つ、移行元ホストのCPU内で動作する元のプロセスは終了してよい。あるいは、移行元ホストが記述情報を送信した後、元のプロセスは終了するとともに、移行先ホストからの応答メッセージを待つ必要はない。
【００７９】
プロセスの記述情報は、新しいプロセスが元のプロセスと同じであることができるのに十分な情報である。記述情報は、プロセスが動作するときの対応するメモリデータおよびプロセスがCPU内で動作するときのレジスタ内のプロセスの値等の、プロセスのコンテキスト情報を含む。可能な方法は、プロセスのメモリページが、移行元ホストから移行先ホストにページ毎に送信されることである。このプロセスでは、動作プロセスが送信されたメモリページを修正することが可能であり、且つ、このケースでは、ノードに送信されたメモリページが、最新の状態で維持することを可能にするために、移行元ホストのCPUは、この修正されたメモリページを再送信しようと試みる。プロセスのメモリページの送信が完了したとき、移行元ホストのCPUは、プロセスの実行を保留し、且つ、同時に、休止の瞬間にプロセスがCPU内で動作するときのレジスタ内のプロセスの値を記憶するとともに、移行先ホストのCPUに値を送信する。移行先ホストのCPUは、プロセスがCPU内で動作するときのレジスタ内のプロセスの値を再記憶した後、プロセスを実行し始める。
【００８０】
ステップ３５．新しいプロセスは、リソースアクセス要求を、対応するエンドポイントに送信し、且つ、リソース要求を受信したエンドポイントは、プロセスのSLAに従ってリソースを取得して、リソースをプロセスに使用のために提供する。
【００８１】
加えて、ステップ３４の後、移行先ホストのCPUは、リソース解放命令を、移出ホストのエンドポイントに送信し、リソース解放命令を受信した後、移行元ホストは、元のプロセスが動作するときに占有されたリソースを解放するという、ステップ３６がさらにあってよい。このステップは任意である。別の実行可能な方法は、記述情報およびSLAを送信した後、移出ホストは、リソース解放命令を待つこと無しに、元のプロセスによって占有されるリソースを直接解放することである。
【００８２】
前述の移行方法では、リソースがプロセスに割り当てられた後、プロセスが移行される場合、移行されたプロセスは、同じ性能を有するリソースを再び容易に有することができる。
【００８３】
図５を参照すると、本発明は、リソース管理装置の実施形態をさらに提供し、且つ、前述の方法は、５２に対応するように使用されてよい。具体的な詳細については、前述の方法の実施形態に対して参照が行われてよいとともに、従って、簡潔な説明のみが以下で提供される。リソース管理装置５は、受信モジュール５１、受信モジュール５１に接続される仮想デバイス調整モジュール５２および仮想デバイス調整モジュールに接続されるリソース獲得モジュール５３を含む。リソース管理装置５は仮想デバイスを実行してよい。リソース管理装置は、ハードウェアであってよく、または、ハードウェア内で動作するソフトウェアまたはファームウェアであってよい。
【００８４】
受信モジュール５１は、ターゲットプロセスの性能仕様およびリソースアクセス要求を受信するように構成され、ここで、ターゲットプロセスの性能仕様を受信することは、具体的には、受信モジュールによって、CPUから、性能仕様を受信することか、または、リソース管理装置によって、ターゲットプロセスが過去に動作していたときに占有されたリソースの性能に関する統計を収集し、統計結果に従って、性能仕様を生成することである。
【００８５】
仮想デバイス調整モジュール５２は、性能仕様に従って、仮想デバイスの性能パラメータを調整するように構成され、ここで、調整された仮想デバイスは、リソース管理デバイスを使用する全てのプロセスの性能仕様の総要件を満たす。
【００８６】
リソース獲得モジュール５３は、受信モジュールが、ターゲットプロセスの、仮想デバイスのためのリソースアクセス要求を受信した後、I/Oデバイスから、ターゲットプロセスの性能仕様を満たすリソースを取得し、リソースをターゲットプロセスに提供するように構成される。I/Oデバイスによって提供されるリソースは、単一のI/Oデバイスによって提供されてよく、または、リソースプール方式で複数のI/Oデバイスによって提供されてよい。
【００８７】
例えば、複数のI/Oデバイスのリソースは、I/Oリソースプールを共同して形成し、リソース管理装置５によって管理されるI/Oデバイスおよび別のリソース管理装置によって管理されるI/Oデバイスは、I/Oリソースプールを共同して形成し、I/Oデバイスから、ターゲットプロセスの性能仕様を満たすリソースを取得することは、具体的には、リソース獲得モジュールによって、且つ、I/Oリソースプールから、ターゲットプロセスの性能仕様を満たすリソースを取得することを含む。
【００８８】
リソースプールはまた、リソース管理装置によって管理される複数のI/Oデバイスのリソースによって共同して形成されるI/Oリソースプールであってもよく、且つ、I/Oデバイスから、ターゲットプロセスの性能仕様を満たすリソースを取得することは、具体的には、リソース獲得モジュールによって、且つ、I/Oリソースプールから、ターゲットプロセスの性能仕様を満たすリソースを取得することを含む。
【００８９】
図１および図２における本発明の方法の実施形態では、エンドポイントが言及されるが、エンドツーエンド内部構成は説明されていない。図６を参照して、以下では、エンドポイントの構成を簡潔に説明する。エンドポイントの具体的な機能は、方法の実施形態で詳細に説明されるため、詳細は、本実施形態では説明されない。エンドポイント６は、CPUインタフェース６１を使用することによってCPUに接続され、ここで、エンドポイントは、CPUに接続されるように構成されるCPUインタフェース６１、I/Oデバイスに接続されるように構成される入力/出力I/Oインタフェース６３、および、CPUインタフェースおよびI/Oインタフェースに接続される処理ユニット６２を含む。エンドポイント６は、ホストから独立してよく、または、CPUとともにホストを構成してよい。
【００９０】
仮想デバイスが配置される処理ユニット６２は、ターゲットプロセスの性能仕様を取得し、性能仕様に従って、仮想デバイスの性能パラメータを調整し、CPUインタフェースを使用することによって、ターゲットプロセスの、仮想デバイスのためのリソースアクセス要求を受信し、I/Oデバイスから、ターゲットプロセスの性能仕様を満たすリソースを取得し、CPUインタフェースを使用することによって、取得されたリソースを送信するようにさらに構成され、ここで、調整された仮想デバイスは、エンドポイントを使用する全てのプロセスの性能仕様の総要件を満たす。
【００９１】
実施方式の前述の説明に基づいて、当業者は、本発明が、必要な汎用ハードウェアに加えてソフトウェアによって実施されてよく、またはハードウェアのみによって実施されてよいことを明確に理解することができる。たいていの状況においては、前者が好ましい実施方式である。このような理解に基づくと、本発明の技術的解決手段は、本質的に、または、従来技術に貢献する部分は、ソフトウェア製品の形態で実施されてよい。コンピュータソフトウェア製品は、コンピュータのフロッピーディスク、ハードディスクまたは光ディスク等の、可読記憶媒体内に記憶されるとともに、コンピュータデバイス（パーソナルコンピュータ、サーバ、ネットワークデバイス等であってよい）に、本発明の実施形態で説明される方法を実行するように命令するためのいくつかの命令を含む。
【００９２】
前述の説明は単に、本発明の具体的な実施方式であるが、本発明の保護範囲を限定するように意図されない。本発明で開示される技術的範囲内で、当業者によって容易に理解される任意の変更または置換は、本発明の保護範囲に包含されるべきである。従って、本発明の保護範囲は、請求項の保護範囲に従うべきである。
【符号の説明】
【００９３】
12  エンドポイント
13  I/Oデバイス
14  スイッチ
51  受信モジュール
52  仮想デバイス調整モジュール
53  リソース獲得モジュール
61  CPUインタフェース
62  処理ユニット
63  入力/出力インタフェース
【図１】
0006408148.tif 000002
【図２】
0006408148.tif 000003
【図３】
0006408148.tif 000004
【図４】
0006408148.tif 000005
【図５】
0006408148.tif 000006
【図６】
0006408148.tif 000007