JP5923627B2 - 仮想プラットフォーム上でi/oチャネルを調整する方法及び装置 - Google Patents

仮想プラットフォーム上でi/oチャネルを調整する方法及び装置 Download PDF

Info

Publication number
JP5923627B2
JP5923627B2 JP2014557993A JP2014557993A JP5923627B2 JP 5923627 B2 JP5923627 B2 JP 5923627B2 JP 2014557993 A JP2014557993 A JP 2014557993A JP 2014557993 A JP2014557993 A JP 2014557993A JP 5923627 B2 JP5923627 B2 JP 5923627B2
Authority
JP
Japan
Prior art keywords
vms
throughput
worker threads
host
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014557993A
Other languages
English (en)
Other versions
JP2015513732A (ja
Inventor
▲潔▼ ▲張▼
▲潔▼ ▲張▼
▲しん▼ 金
▲しん▼ 金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2015513732A publication Critical patent/JP2015513732A/ja
Application granted granted Critical
Publication of JP5923627B2 publication Critical patent/JP5923627B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Description

本願は、2013年1月24日に、「METHOD AND APPARATUS FOR ADJUSTING I/O CHANNELS ON VIRTUAL PLATFORM」なる名称で、中国専利局に出願された中国特許出願第201310027312.7号の優先権を主張し、その全体を、参照することにより本明細書に組み込むものとする。
本発明は、仮想技術の分野、具体的には、仮想プラットフォーム上でI/Oチャネルを調整する方法及び装置に関する。
仮想化は、サーバ、ネットワーク、メモリ及びストレージといったコンピュータの物理リソースを抽象化かつ変換し、ユーザがこれらのリソースを元のコンフィギュレーションよりもよりよく使用できるように、抽象化かつ変換された物理リソースを提示する。これらのリソースの新しい仮想部分は、元のリソースのアーキテクチャの種類、局所性、又は物理コンフィギュレーションによって制限されない。複数の仮想マシン(Virtual Machine、略してVM)が、物理的に存在するホストHOST上で動作する。ホストは、すべての物理ハードウェアデバイス及びリソースを管理し、排他的デバイスを、複数のユーザスレッドによる同時使用のために複数の仮想デバイスへと仮想化する。各ユーザが確認することのできるデバイスは、1つの仮想デバイスであり、物理ハードウェアデバイスは、ユーザにはトランスペアレントである。
仮想環境では、VMは、ハードウェアデバイスに直接アクセスすることはできず、HOSTが、VMに、ハードウェアデバイスに接続するためのデータチャネル、すなわち、I/Oチャネルを提供する。本発明では、チャネルは、VMフロントデバイスFront DeviceとVMバックデバイスBack Deviceとの間のデータチャネルと、VMバックデバイスとHOSTネイティブデバイスNative Deviceとの間のデータチャネルとを含み、ここで、VMフロントデバイスは、仮想マシン内に見られるデバイスであり、実際に、HOSTによってVMのためにシミュレートされているデバイスであり、VMバックデバイスは、HOSTオペレーティングシステム内のVMフロントデバイスに接続されるソフトウェア・シミュレーション・デバイスであり、HOSTネイティブデバイスNative Deviceは、HOST物理デバイスである。
図1は、従来技術における仮想プラットフォーム上の単純なマルチI/Oチャネル技術を示し、2つの仮想マシンVM1及びVM2が例として使用され、1つのVMのフロントデバイスとバックデバイスとの間には、複数のI/Oチャネル(図1では、2つのI/Oチャネルが例として使用されている)がある。データ処理モジュールは、当該VMのフロントデバイスとバックデバイスとの間のブリッジであり、データコピー、データフィルタリング、又は他のデータ処理サービスに使用され、多数のワーカースレッド(working thread)図1では、2つのワーカースレッドが例として使用されている)を含む。ワーカースレッドの数は、VMフロントデバイスとVMバックデバイスとの間のI/Oチャネルの数に等しく、各I/Oチャネルは、1つのワーカースレッドに対応する。単一のチャネルが、VMバックデバイスとブリッジBridgeとの間に、また、ブリッジBridgeとネイティブデバイスNative Deviceとの間に存在し、VMバックデバイスは、当該単一のチャネルを介して、データをネイティブデバイスNative Deviceに送信する。
上述した従来技術は、少なくとも以下の技術的課題を有する。すなわち、VMフロントデバイスとVMバックデバイスとの間のI/Oチャネルの数は、VMが作成されたときに決定され、I/Oチャネルの数は、VMのライフサイクルの間は変更できないため、VMフロントデバイスとVMバックデバイスとの間のI/Oチャネルによって占有されるチャネルリソースを変更できない。VMフロントデバイスとVMバックデバイスとの間のI/Oスループットが変化したときに、I/Oチャネルリソースを調整できない。I/Oスループットが減少したときに、アイドルI/Oチャネルリソースを解放することができず、結果として、I/Oチャネルリソースが無駄になる。I/Oスループットが増加したときに、I/Oチャネルリソースを増加することができず、結果として、I/Oチャネルのデータ送信能力を向上できず、システム性能が低下する。
本発明の実施形態は、仮想プラットフォーム上でI/Oチャネルを調整する方法と、複数のVMのフロントデバイスとバックデバイスとの間でのI/Oチャネルリソースの分配を動的に調整し、それによりシステム性能を向上させるHOST調整装置とを提供する。
第1の態様によれば、本発明は、仮想プラットフォーム上でI/Oチャネルを調整する方法を提供する。当該方法は、
ホストHOSTが、HOST上で動作している複数の仮想マシンVMの現在の平均I/Oスループットを計測するステップと、
現在の平均I/Oスループットが第1の閾値よりも大きい場合、ワーカースレッドが増加された後は複数のVMの平均I/Oスループットが第1の閾値よりも小さくなるように、HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか、又は、現在の平均I/Oスループットが第2の閾値よりも小さい場合、ワーカースレッドが減少された後は複数のVMの平均I/Oスループットが第2の閾値よりも大きくなるように、HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを減少させるステップであって、第1の閾値は第2の閾値よりも大きい、ステップと、
HOSTが、増加又は減少後のVMを処理するためのワーカースレッドに応じて、複数のVMのフロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、複数のVMのバックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、複数のVMのフロントデバイスとバックデバイスとの間に複数のデータ送信チャネルが形成されるように、別々に調整するステップと、
を含む。
第1の態様に準拠する第1の可能な実施様態では、現在の平均I/Oスループットが第1の閾値よりも大きい場合、HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるステップの前に、当該方法は更に、
HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させることによりもたらされる、CPU使用率の増加とI/Oスループットの増加とを比較するステップと、I/Oスループットの増加がCPU使用率の増加よりも大きい場合、HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるステップを実行するステップとを含む。
第1の態様に準拠する第2の可能な実施様態では、現在の平均I/Oスループットが第2の閾値よりも小さい場合、HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させるステップの前に、当該方法は更に、
HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながるかどうかを決定するステップと、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながらない場合、HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させるステップを実行するステップとを含む。
第1の態様に準拠する第3の可能な実施様態では、又は、第1の態様の第1若しくは第2の可能な実施様態では、HOSTが、増加又は減少後のVMを処理するためのワーカースレッドに応じて、複数のVMのフロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、複数のVMのバックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、別々に調整するステップは、
増加又は減少後のVMを処理するためのワーカースレッドの数が、HOST上で動作しているVMの数よりも少ない場合、HOSTが、各ワーカースレッドを、各VMのフロントデバイス内のキューと、各VMのバックデバイス内のキューとにマッピングするステップか、又は、増加又は減少後のVMを処理するためのワーカースレッドの数が、HOST上で動作しているVMの数よりも多い又は等しい場合、HOSTが、排他的ワーカースレッドを、1つのVMのフロントデバイス内のキューとバックデバイス内のキューとにマッピングし、共有ワーカースレッドを、少なくとも2つのVMのフロントデバイス及びバックデバイス内にあり、排他的ワーカースレッドに対応しないキューにマッピングするステップを含み、当該VMを処理するためのワーカースレッドは、排他的ワーカースレッドと共有ワーカースレッドとを含む。
第1の態様に準拠する第4の可能な実施様態では、又は、第1の態様の第1、第2若しくは第3の可能な実施様態では、HOSTが、増加又は減少後のVMを処理するためのワーカースレッドに応じて、複数のVMのフロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、複数のVMのバックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、別々に調整した後、方法は更に、
HOSTが、複数のVMのバックデバイス内のキューと、HOSTのネイティブデバイスNative Device内のキューとのマッピング関係を、複数のVMのバックデバイスとNative Deviceとの間に複数のデータ伝送チャネルが形成されるように調整するステップを含む。
第2の態様によれば、本発明は、仮想プラットフォーム上でI/Oチャネルを調整する装置HOSTを提供する。当該HOSTは、
HOST上で動作している複数の仮想マシンVMの現在の平均I/Oスループットを計測するように構成された計測モジュールと、当該計測モジュールに接続され、当該計測モジュールによって計測された現在の平均I/Oスループットが第1の閾値よりも大きい場合、ワーカースレッドが増加された後は複数のVMの平均I/Oスループットが第1の閾値よりも小さくなるように、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか、又は、当該計測モジュールによって計測された現在の平均I/Oスループットが第2の閾値よりも小さい場合、ワーカースレッドが減少された後は複数のVMの平均I/Oスループットが第2の閾値よりも大きくなるように、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを減少させるように構成された処理モジュールであって、第1の閾値は第2の閾値よりも大きい、処理モジュールと、当該処理モジュールに接続され、当該処理モジュールによる増加又は減少後のVMを処理するためのワーカースレッドに応じて、複数のVMのフロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、複数のVMのバックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、複数のVMのフロントデバイスとバックデバイスとの間に複数のデータ送信チャネルが形成されるように、別々に調整するように構成された第1の調整モジュールと、を含む。
第1の態様に準拠する第1の可能な実施様態では、当該調整装置は更に、
当該計測モジュールによって計測された現在の平均I/Oスループットが第1の閾値よりも大きい場合に、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させることによりもたらされる、CPU使用率の増加とI/Oスループットの増加とを比較するように構成された決定モジュールを更に含み、当該処理モジュールは更に、I/Oスループットの増加がCPU使用率の増加よりも大きい場合、ワーカースレッドが増加された後は、複数のVMの平均I/Oスループットが第1の閾値よりも小さくなるように、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるように構成される。
第1の態様に準拠する第2の可能な実施様態では、当該調整装置は更に、
当該計測モジュールによって計測された現在の平均I/Oスループットが第2の閾値よりも小さい場合に、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながるかどうかを決定するように構成された決定モジュールを更に含み、当該処理モジュールは更に、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながらない場合、ワーカースレッドが減少された後は、複数のVMの平均I/Oスループットが第2の閾値よりも大きくなるように、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させるように構成される。
第1の態様に準拠する第3の可能な実施様態では、又は、第1の態様の第1若しくは第2の可能な実施様態では、当該第1の調整モジュールは、特に、
増加又は減少後のVMを処理するためのワーカースレッドの数が、HOST上で動作しているVMの数よりも少ない場合、各ワーカースレッドを、各VMのフロントデバイス内のキューと、各VMのバックデバイス内のキューとにマッピングし、又は、増加又は減少後のVMを処理するためのワーカースレッドの数が、HOST上で動作しているVMの数よりも多い又は等しい場合、排他的ワーカースレッドを、1つのVMのフロントデバイス内のキュー及びバックデバイス内のキューにマッピングし、共有ワーカースレッドを、少なくとも2つのVMのフロントデバイス及びバックデバイス内にあり、排他的ワーカースレッドに対応しないキューにマッピングするように構成され、当該VMを処理するためのワーカースレッドは、排他的ワーカースレッドと共有ワーカースレッドとを含む。
第1の態様に準拠する第4の実施様態では、又は、第1の態様の第1、第2若しくは第3の可能な実施様態では、当該調整装置は、
複数のVMのバックデバイス内のキューと、HOSTのネイティブデバイスNative Device内のキューとのマッピング関係を、複数のVMのバックデバイスとNative Deviceとの間に複数のデータ伝送チャネルが形成されるように調整するように構成された第2の調整モジュールを更に含む。
第3の態様によれば、本発明は、ホストHOSTを提供する。当該HOSTは、ネイティブデバイスNative Deviceと、Native Device上で動作している複数の仮想マシンVM内のフロントデバイス及びバックデバイスと、複数のVMのフロントデバイスとバックデバイスとの間のデータ処理モジュールとを含み、
当該データ処理モジュールは、
複数の仮想マシンVMの現在の平均I/Oスループットを計測し、現在の平均I/Oスループットが第1の閾値よりも大きい場合、ワーカースレッドが増加された後は複数のVMの平均I/Oスループットが第1の閾値よりも小さくなるように、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか、又は、現在の平均I/Oスループットが第2の閾値よりも小さい場合、ワーカースレッドが減少された後は複数のVMの平均I/Oスループットが第2の閾値より大きくなるように、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させ、ただし、第1の閾値は第2の閾値より大きく、複数のVMのフロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、複数のVMのバックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、複数のVMのフロントデバイスとバックデバイスとの間に複数のデータ送信チャネルが形成されるように、別々に調整するように構成される。
第3の態様に準拠する第1の可能な実施様態では、当該データ処理モジュールは更に、
複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させることによりもたらされる、CPU使用率の増加とI/Oスループットの増加とを比較し、I/Oスループットの増加がCPU使用率の増加よりも大きい場合、ワーカースレッドが増加された後は、複数のVMの平均I/Oスループットが第1の閾値よりも小さくなるように、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるように構成される。
第3の態様に準拠する第2の可能な実施様態では、当該データ処理モジュールは更に、
複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながるかどうかを決定し、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながらない場合、ワーカースレッドが減少された後は、複数のVMの平均I/Oスループットが第2の閾値よりも大きくなるように、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させるように構成される。
本発明の実施形態では、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか又は減少させるかは、複数のVMの現在の平均I/Oスループットに応じて決定することが理解できよう。複数のVMの現在の平均I/Oスループットが第1の閾値よりも大きい場合、I/Oチャネルのデータ送信能力を向上させるように、VMを処理するためのワーカースレッドは増加される。つまり、I/Oチャネルリソースが増加される。また、複数のVMの現在の平均I/Oスループットが第2の閾値よりも小さい場合、I/Oチャネルリソースを無駄にしないように、VMを処理するためのワーカースレッドは減少される。つまり、I/Oチャネルリソースが減少される。
また、HOSTは、複数のVMのバックデバイス内のキューと、HOSTのネイティブデバイスNative Device内のキューとのマッピング関係を調整することによって、複数のVMのバックデバイスとネイティブデバイスNative Deviceとの間に、複数のデータ送信チャネルを形成する。これにより、複数のVMのフロントデバイスとHOSTのネイティブデバイスNative Deviceとの間に複数のI/Oチャネルが得られ、複数のVMのフロントデバイスとHOSTのネイティブデバイスNative Deviceとの間のデータ送信能力が向上される。
本発明の実施形態における又は従来技術における技術的解決策をより明確に説明するために、以下に、実施形態又は従来技術を説明するために必要な添付図面を簡単に紹介する。以下の説明における添付図面は、本発明の幾つかの実施形態を示すに過ぎず、当業者であれば、創造的な努力を必要とすることなく、これらの添付図面から他の図面を導出できよう。
図1は、従来技術における仮想プラットフォーム上の単純なマルチI/Oチャネル技術のアーキテクチャ図である。 図2は、本発明の一実施形態による仮想プラットフォーム上でI/Oチャネルを調整する方法のフローチャートである。 図3は、本発明による仮想プラットフォーム上の複数のVMのフロントデバイスとバックデバイスとの間のI/Oの作業モードが共有モードである場合のアーキテクチャ図である。 図4は、本発明による仮想プラットフォーム上の複数のVMのフロントデバイスとバックデバイスとの間のI/Oの作業モードがハイブリッドモードである場合のアーキテクチャ図である。 図5は、本発明の一実施形態による仮想プラットフォーム上でI/Oチャネルを調整する装置の概略構造図である。 図6は、本発明の別の実施形態による仮想プラットフォーム上でI/Oチャネルを調整する装置の概略構造図である。 図7は、本発明の一実施形態によるホストHOSTの概略構造図である。
本発明の目的、技術的解決策及び利点をより理解可能とするために、以下において、本発明の実施形態における添付図面を参照して本発明の実施形態における技術的解決が明確かつ十分に説明される。説明される実施形態は、本発明の実施形態のすべてではなくほんの一部である。創造的な努力を必要とすることなく、本発明の実施形態に基づき当業者によって得られる他の実施形態はすべて、本発明の保護範囲内である。
まず、本発明の実施形態の説明に記載される幾つかの要素を、本発明の実施形態を理解し易くするためにここに説明する。
ホストHOST:管理層として機能し、ハードウェアリソースを管理及び割り当てするために使用される。仮想マシン用の仮想ハードウェアプラットフォームを表し、当該仮想ハードウェアプラットフォームは、当該仮想ハードウェアプラットフォーム上で動作しているすべての仮想マシンに、様々なハードウェアリソースを提供する。例えば仮想プロセッサ(例えばVCPU)、仮想メモリ、仮想磁気ディスク、仮想ネットワークアダプタ等を提供する。仮想磁気ディスクは、HOSTのファイル又は論理ブロックデバイスに相当する。仮想マシンは、HOSTによって準備される仮想ハードウェアプラットフォーム上で動作するが、その上では、1つ以上の仮想マシンが動作する。
仮想マシンVM:仮想マシンソフトウェアを使用して物理コンピュータ上に1つ以上の仮想コンピュータをシミュレートする。これらの仮想マシンは、本物のコンピュータのように動作し、オペレーティングシステム及びアプリケーションプログラムが、仮想マシン上にインストールされ、仮想マシンは更に、ネットワークリソースにもアクセスしうる。仮想マシン上で動作するアプリケーションプログラムに対し、仮想マシンは本物のコンピュータのように動作する。
データ処理モジュール:本発明では、データ処理モジュールは、VMのフロントデバイスとバックデバイスとの間に導入され、VMのフロントデバイスとバックデバイスとの間のデータ送信を処理し、ワーカースレッドを使用して、VMのフロントデバイス及びバックデバイス内のキューにあるデータを処理するように構成される。データ処理モジュールは、通常、ソフトウェアを使用して実装される。すなわち、プロセッサが、データ処理モジュールを実実装するために、特殊関数でソフトウェアコード命令を読み出す。
ネイティブデバイスNative Device:仮想環境がその上で動作しているハードウェアプラットフォームである。Native Deviceは、複数種のハードウェアを含んでよく、例えば特定のコンピュータノードのNative Deviceは、プロセッサ(例えばCPU)、メモリを含み、また更に、ネットワークアダプタ及びメモリといった高速/低速入出力(I/O、Input/Output)デバイスを含んでもよい。
ブリッジBridge:VMのバックデバイスとホストHOSTのネイティブデバイスNative Deviceとの間のネットワークデバイス又はソフトウェアであって、VMのバックデバイスとホストHOSTのネイティブデバイスNative Deviceとの間にネットワーク接続を実施し、データフレームを転送する。
図2は、本発明の一実施形態による仮想プラットフォーム上でI/Oチャネルを調整する方法の一連の過程を説明する。当該一連の過程は、具体的に述べると、以下のステップを含む。
S201:ホストHOSTが、HOST上で動作している複数の仮想マシンVMの現在の平均I/Oスループットを計測する。
具体的に述べると、HOSTは、まず、HOST上で動作している複数のVMの現在の総I/Oスループットを計測し、次に、当該総I/Oスループットを、HOST上で動作しているVMの数で割ることによって、複数のVMの現在の平均I/Oスループットを得る。
S202:HOSTは、現在の平均I/Oスループットが第1の閾値よりも大きい場合、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか、又は、現在の平均I/Oスループットが第2の閾値よりも小さい場合、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させる。
複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドは、ワーカースレッドが増加された後は、複数のVMの平均I/Oスループットが第1の閾値より大きくなるように増加される。又は、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドは、ワーカースレッドが減少された後は、複数のVMの平均I/Oスループットが第2の閾値より大きくなるように減少される。第1の閾値は、第2の閾値より大きく、第1の閾値は、複数のVMの平均I/Oスループットの上限閾値を示すように使用され、第2の閾値は、複数のVMの平均I/Oスループットの下限閾値を示すように使用される。すなわち、第1の閾値は、1つのVMが負担するI/Oスループットの上限閾値を示し、第2の閾値は、1つのVMが負担するI/Oスループットの下限閾値を示す。
更に、複数のVMの現在の平均I/Oスループットが第1の閾値よりも大きい場合、HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるステップの前に、当該方法は更に以下を含む。
HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させることによりもたらされる、CPU使用率の増加とI/Oスループットの増加とを比較し、I/Oスループットの増加がCPU使用率の増加よりも大きい場合、HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるステップを実行する。
CPU使用率の増加とは、VMを処理するためのワーカースレッドを増加しない場合と比較されたVMを処理するためのワーカースレッドを増加させることによりもたらされるCPU使用率の増加であり、CPU使用率の増加量及び/又はCPU使用率の増加率によって表現されうる。I/Oスループットの増加とは、VMを処理するためのワーカースレッドを増加しない場合と比較されたVMを処理するためのワーカースレッドを増加させることによりもたらされるI/Oスループットの増加であり、I/Oスループットの増加量及び/又はI/Oスループットの増加率によって表現されうる。なお、本発明は、CPU使用率の増加及びI/Oスループットの増加を比較する方法については限定されず、ここでは、例示のためだけに2つの測定方法が提供される。I/Oスループットの増加量が、CPU使用率の増加量よりも大きい場合、又は、I/Oスループットの増加率が、CPU使用率の増加率よりも大きい場合、VMを処理するためのワーカースレッドは増加されなければならないと決定される。
更に、現在の平均I/Oスループットが第2の閾値よりも小さい場合、HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを減少させるステップの前に、当該方法は更に以下を含む。
HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながるかどうかを決定する。複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながらない場合、HOSTが、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させるステップを実行する。つまり、CPU使用率の結果として生じる減少が、複数のVMのスループットへの対応不能につながる場合、ワーカースレッドは減少されない。
任意選択的に、高い優先順位を有するVMがワーカースレッドの排他的な占有を維持し、専用I/Oチャネルを有するように、複数のVMに優先順位が設定されてもよい。高い優先順位を有するVMによって排他的に占有されたI/Oチャネルリソースは、ホストHOSTの総I/O負荷に関係なく、影響を受けない。同じ優先順位を有するVMについては、上述したワーカースレッドを増加又は減少させる方法が処理に採用されてよい。
なお、当該I/Oチャネルリソースは、1つのVMを処理するためのワーカースレッドと、1つのVMのフロントデバイス及びバックデバイス内のキューとを含む。
S203:増加又は減少後のVMを処理するためのワーカースレッドに応じて、HOSTは、複数のVMのフロントデバイス及びバックデバイス内のキューと、VMを処理するためのワーカースレッドとのマッピング関係を別々に調整する。
当該マッピング関係は、複数のVMのフロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、複数のVMのバックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を含む。HOSTは、複数のVMのフロントデバイスと複数のVMのバックデバイスとの間に複数のデータ送信チャネルが形成されるように、マッピング関係を別々に調整する。
具体的には、HOSTは、増加又は減少後のVMを処理するためのワーカースレッドに応じて、複数のVMのフロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係と、複数のVMのバックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係とを、別々に調整する。
増加又は減少後のVMを処理するためのワーカースレッドの数が、HOST上で動作しているVMの数よりも少ない場合、HOSTは、各ワーカースレッドを、各VMのフロントデバイス内のキューと、各VMのバックデバイス内のキューとにマッピングする。又は、増加又は減少後のVMを処理するためのワーカースレッドの数が、HOST上で動作しているVMの数よりも多い又は等しい場合、HOSTは、排他的ワーカースレッドを、1つのVMのフロントデバイス内のキューとバックデバイス内のキューとにマッピングし、共有ワーカースレッドを、少なくとも2つのVMのフロントデバイス及びバックデバイス内にあり、当該排他的ワーカースレッドに対応しないキューにマッピングする。ここでは、VMを処理するためのワーカースレッドは、排他的ワーカースレッドと共有ワーカースレッドとを含む。なお、上述した調整モードは、それぞれ、共有モード及びハイブリッドモードに対応する。当該共有及びハイブリッドモードは、図3及び図4に、具体的に説明される。
更に、HOSTが、増加又は減少後のVMを処理するためのワーカースレッドに応じて、複数のVMのフロントデバイス及びバックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を別々に調整した後、仮想プラットフォーム上でI/Oチャネルを調整する方法は更に、
HOSTは、複数のVMのバックデバイスとHOSTのネイティブデバイスNative Deviceとの間に複数のデータ送信チャネルが形成されるように、複数のVMのバックデバイス内のキューとNative Device内のキューとのマッピング関係を調整するステップを含む。
具体的に述べると、従来技術では、Native Deviceは、複数のキューを有し、1つのVMのバックデバイス内のデータが、Native Deviceにアクセスする際にキューを選択し、これにより様々なキューを使用してデータを送信できる。この技術は、Native Device内のハードウェアドライバによって実施されうる。本発明におけるVMのバックデバイスも複数のキューを有することを考えると、当該VMのバックデバイス内の複数のキューも、Native DeviceがブリッジBridgeを介してVMのバックデバイスにデータを送信する際に選択され、これによりVMのバックデバイスとNative Deviceとの間に複数のデータ伝送チャネルが形成される。したがって、複数のVMのバックデバイス内のキューと、HOSTのネイティブデバイスNative Device内のキューとのマッピング関係の調整は、実際には、Native Deviceが、ブリッジBridgeを介して、VMのバックデバイスにデータを送信する際にVMのバックデバイス内のキューをどのように選択するかに関する。
VMのバックデバイス内のキューをどのように選択するかに関しては、キュー間のマッピング関係に応じて、Native Device内のキューが、VMのバックデバイス内のキューによって送信されたデータを受信する際、VMのバックデバイス内のキューは、VMのバックデバイス内のキューとNativeDevice内のキューとの間でデータを送信するためのチャネルが一貫しているように、逆に選択される。又は、Native Deviceは、データフローの属性(例えば同じソースエンドから又は別の属性)に応じて、VMのバックデバイス内の様々なキューを再選択する。本発明は、上述した選択方法を使用して、複数のVMのバックデバイス内のキューとHOSTのネイティブデバイスNative Device内のキューとのマッピング関係の調整を実施する。
複数のVMのバックデバイス内のキューとHOSTのネイティブデバイスNative Device内のキューとのマッピング関係を調整することによって、複数のVMのバックデバイスとネイティブデバイスNative Deviceとの間に複数のデータ送信チャネルが形成されるため、複数のVMのバックデバイスとHOSTのネイティブデバイスNative Deviceとの間に複数のI/Oチャネルが実装され、複数のVMとHOSTのネイティブデバイスNative Deviceとの間のデータ送信能力が向上される。
上述した実施形態から、HOSTは、複数のVMの現在の平均I/Oスループットに応じて、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか又は減少させるかを決定することが分かる。すなわち、複数のVMの現在の平均I/Oスループットが第1の閾値よりも大きい場合、I/Oチャネルのデータ送信能力を向上させるように、VMを処理するためのワーカースレッドは増加される。つまり、I/Oチャネルリソースが増加される。また、複数のVMの現在の平均I/Oスループットが第2の閾値よりも小さい場合、I/Oチャネルリソースを無駄にしないように、VMを処理するためのワーカースレッドは減少される。つまり、I/Oチャネルリソースが減少される。
現在の平均I/Oスループットに応じた増加又は減少後のI/Oチャネルリソースの制限、特に、I/Oチャネルリソースにおけるワーカースレッドの制限を考慮して、本発明は、I/Oチャネルリソースにおけるワーカースレッドの数と、ホストHOST上で動作しているVMの数とに応じて、2つのI/O作業モード、すなわち、共有モードとハイブリッドモードとを設定し、これらの2つのモードは、互いにスイッチすることができる。1つの作業モードは、特定の条件が満たされると、もう1つの作業モードにスイッチされうる。
共有モードでは、VMを処理するためのワーカースレッドの数が、ホストHOST上で動作しているVMの数よりも少ない場合、HOSTは、複数のVMのフロントデバイスとバックデバイスとの間のI/O作業モードを、共有モードに調整し、すなわち、データ処理モジュール内のワーカースレッドが、共有モードを採用することによって、複数のVMのフロントデバイス及びバックデバイス内のキューにあるデータを処理する。具体的に述べると、データ処理モジュール内のワーカースレッドは、それぞれ、HOST上で動作している各VMのフロントデバイス内のキューと、各VMのバックデバイス内のキューとに対応する。
図3は、VMのフロントデバイスとバックデバイスとの間のI/O作業モードが共有モードである場合の概略図である。図3に示されるように、ホストHOST上で動作しているVMは、それぞれ、VM1、VM2及びVM3であり、データ処理モジュール内のワーカースレッドは、それぞれ、ワーカースレッド1及びワーカースレッド2であり、ワーカースレッド1は、VM1、VM2及びVM3のフロントデバイス及びバックデバイス内のキュー1を別々に処理し、ワーカースレッド2は、VM1、VM2及びVM3のフロントデバイス及びバックデバイス内のキュー2を別々に処理する。
ハイブリッドモードでは、VMを処理するためのワーカースレッドの数が、ホストHOST上で動作しているVMの数よりも多い又は等しい場合、HOSTは、複数のVMのフロントデバイスとバックデバイスとの間のI/O作業モードを、ハイブリッドモードに調整し、すなわち、データ処理モジュール内のワーカースレッドが、ハイブリッドモードを採用することによって、複数のVMのフロントデバイス及びバックデバイス内のキューにあるデータを処理する。具体的に述べると、データ処理モジュール内のワーカースレッドは、2つのタイプ、すなわち、排他的ワーカースレッドと共有ワーカースレッドとに分類され、排他的ワーカースレッドは、1つのVMのフロントデバイス内のキュー及びバックデバイス内のキューにあるデータを別々に処理するように使用され、共有ワーカースレッドは、少なくとも2つのVMのフロントデバイス及びバックデバイスのキューにある、当該排他的ワーカースレッドによって処理されていないデータを処理するように使用される。
図4は、VMのフロントデバイスとバックデバイスとの間のI/O作業モードがハイブリッドモードである場合の概略図である。図4に示されるように、ホストHOST上で動作しているVMは、それぞれ、VM1、VM2及びVM3であり、データ処理モジュール内には、排他的ワーカースレッド1、排他的ワーカースレッド2、排他的ワーカースレッド3、及び共有ワーカースレッド1を含む4つのワーカースレッドがある。排他的ワーカースレッド1は、VM1のフロントデバイス及びバックデバイス内のキュー1にあるデータを別々に処理し、排他的ワーカースレッド2は、VM2のフロントデバイス及びバックデバイスのキュー1にあるデータを別々に処理し、排他的ワーカースレッド3は、VM3のフロントデバイス及びバックデバイスのキュー1にあるデータを別々に処理し、共有ワーカースレッドは、VM1、VM2及びVM3の各VMのフロントデバイス及びバックデバイスのキュー2にあるデータを処理する。図4は、共有ワーカースレッドが、少なくとも2つのVMの各VMのフロントデバイス及びバックデバイス内のキューにあるデータを処理する1つのシナリオを示すに過ぎない。共有ワーカースレッドは更に、別のシナリオでは、複数のキューにあるデータを処理してもよく、このことは、本発明において限定されていない。
更に、図3及び図4から、複数のVMのフロントデバイスとバックデバイスとの間に複数のI/Oチャネルを形成することに加えて、HOSTは更に、複数のVMのバックデバイス内のキューとHOSTのネイティブデバイスNative Device内のキューとのマッピング関係を調整することによって、複数のVMのバックデバイスとネイティブデバイスNative Deviceとの間に、複数のデータ送信チャネルを形成しうることが分かる。これにより、複数のVMのフロントデバイスとHOSTのネイティブデバイスNative Deviceとの間に複数のI/Oチャネルが得られ、複数のVMのフロントデバイスとHOSTのネイティブデバイスNative Deviceとの間のデータ送信能力が向上される。
仮想プラットフォーム上でI/Oチャネルを調整する方法に関して、本発明の以下の実施形態は、仮想プラットフォーム上でI/Oチャネルを調整する装置の構造を提供する。
図5は、本発明の一実施形態による仮想プラットフォーム上でI/Oチャネルを調整する装置500の構造を示す。調整装置500は、具体的に述べると、
HOST上で動作している複数の仮想マシンVMの現在の平均I/Oスループットを計測するように構成された計測モジュール501と、
計測モジュール501に接続され、計測モジュール501によって計測された現在の平均I/Oスループットが第1の閾値よりも大きい場合、ワーカースレッドが増加された後は複数のVMの平均I/Oスループットが第1の閾値よりも小さくなるように、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか、又は、計測モジュール501によって計測された現在の平均I/Oスループットが第2の閾値よりも小さい場合、ワーカースレッドが減少された後は複数のVMの平均I/Oスループットが第2の閾値よりも大きくなるように、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させるように構成され、第1の閾値は第2の閾値よりも大きい、処理モジュール502と、
処理モジュール502に接続され、処理モジュール502による増加又は減少後のVMを処理するためのワーカースレッドに応じて、複数のVMのフロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、複数のVMのバックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、複数のVMのフロントデバイスとバックデバイスとの間に複数のデータ送信チャネルが形成されるように、別々に調整するように構成された第1の調整モジュール503と、を含む。
任意選択的に、調整装置500は更に、
計測モジュール501によって計測された現在の平均I/Oスループットが第1の閾値よりも大きい場合に、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させることによりもたらされる、CPU使用率の増加とI/Oスループットの増加とを比較するように構成された決定モジュール504を含み、
処理モジュール502は更に、決定モジュール504が、I/Oスループットの増加がCPU使用率の増加よりも大きいと決定した場合、ワーカースレッドが増加された後は、複数のVMの平均I/Oスループットが第1の閾値よりも小さくなるように、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるように構成される。
任意選択的に、調整装置500は更に、
計測モジュール501によって計測された現在の平均I/Oスループットが第2の閾値よりも小さい場合に、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながるかどうかを決定するように構成された決定モジュール504を含み、
処理モジュール502は更に、決定モジュール504が、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながらないと決定した場合、ワーカースレッドが減少された後は、複数のVMの平均I/Oスループットが第2の閾値よりも大きくなるように、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させるように構成される。
更に、第1の調整モジュール503は、特に、
増加又は減少後のVMを処理するためのワーカースレッドの数が、HOST上で動作しているVMの数よりも少ない場合、各ワーカースレッドを、各VMのフロントデバイス内のキューと、各VMのバックデバイス内のキューとにマッピングし、又は、増加又は減少後のVMを処理するためのワーカースレッドの数が、HOST上で動作しているVMの数よりも多い又は等しい場合、排他的ワーカースレッドを、1つのVMのフロントデバイス内のキュー及びバックデバイス内のキューにマッピングし、共有ワーカースレッドを、少なくとも2つのVMのフロントデバイス及びバックデバイス内にあり、排他的ワーカースレッドに対応しないキューにマッピングするように構成される。VMを処理するためのワーカースレッドは、排他的ワーカースレッドと共有ワーカースレッドとを含む。
また、調整装置500は更に、複数のVMのバックデバイス内のキューと、HOSTのネイティブデバイスNative Device内のキューとのマッピング関係を、複数のVMのバックデバイスとNative Deviceとの間に複数のデータ伝送チャネルが形成されるように、調整するように構成された第2の調整モジュール505を含む。
第2の調整モジュール505は、複数のVMのバックデバイスとネイティブデバイスNative Deviceとの間に複数のデータ伝送チャネルを形成するので、複数のI/Oチャネルが、複数のVMのフロントデバイスとHOSTのネイティブデバイスNative Deviceとの間に形成され、複数のVMとHOSTのネイティブデバイスNative Deviceとの間のデータ伝送能力が向上される。
上述した実施形態から、仮想プラットフォーム上でI/Oチャネルを調整する装置は、複数のVMの現在の平均I/Oスループットに応じて、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか又は減少させるかを決定することが分かる。すなわち、複数のVMの現在の平均I/Oスループットが第1の閾値よりも大きい場合、I/Oチャネルのデータ伝送能力を向上させるように、VMを処理するためのワーカースレッドは増加される。つまり、I/Oチャネルリソースが増加される。また、複数のVMの現在の平均I/Oスループットが第2の閾値よりも小さい場合、I/Oチャネルリソースを無駄にしないように、VMを処理するためのワーカースレッドは減少される。つまり、I/Oチャネルリソースが減少される。
図6は、本発明の別の実施形態による仮想プラットフォーム上でI/Oチャネルを調整する装置600の構造を示す。調整装置600は、例えばCPUである少なくとも1つのプロセッサ601と、少なくとも1つのネットワークインターフェース604又は別のユーザインターフェース603と、メモリ605と、少なくとも1つの通信バス602とを含む。通信バス602は、これらの構成要素間に接続及び通信を実施できるように構成される。調整装置600に任意選択的に含まれるユーザインターフェース603は、ディスプレイ、キーボード、又はクリックデバイス(例えばマウス、トラックボール(トラックボール)、タッチパネル又はタッチディスプレイ画面)を含む。メモリ605は、高速RAMメモリを含んでよく、また、不揮発性メモリ(不揮発性メモリ)、例えば少なくとも1つの磁気ディスクメモリを更に含んでもよい。メモリ605は、任意選択的に、プロセッサ601から遠隔にある少なくとも1つのメモリ装置を含んでもよい。幾つかの実施様態では、メモリ605は更に、様々な基本サービスを実施し、ハードウェアに基づいてタスクを処理するように、オペレーティングシステム606と複数のプログラムとを含んでもよい。
プロセッサ601は特に、
HOST上で動作している複数の仮想マシンVMの現在の平均I/Oスループットを計測し、
現在の平均I/Oスループットが第1の閾値よりも大きい場合、ワーカースレッドが増加された後は複数のVMの平均I/Oスループットが第1の閾値よりも小さくなるように、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか、又は、現在の平均I/Oスループットが第2の閾値よりも小さい場合、ワーカースレッドが減少された後は複数のVMの平均I/Oスループットが第2の閾値よりも大きくなるように、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させ、ただし、第1の閾値は第2の閾値よりも大きく、
増加又は減少後のVMを処理するためのワーカースレッドに応じて、複数のVMのフロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、複数のVMのバックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、複数のVMのフロントデバイスとバックデバイスとの間に複数のデータ送信チャネルが形成されるように、別々に調整するように構成される。
更に、現在の平均I/Oスループットが第1の閾値よりも大きい場合、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるステップを実行する前に、プロセッサ601は更に、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させることによりもたらされる、CPU使用率の増加とI/Oスループットの増加とを比較し、I/Oスループットの増加がCPU使用率の増加よりも大きい場合、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるステップを実行するように構成される。
現在の平均I/Oスループットが、第2の閾値よりも小さい場合、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させるステップを実行する前に、プロセッサ601は更に、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながるかどうかを決定し、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながらない場合、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させるステップを実行するように構成される。
また、プロセッサ601は、増加又は減少後のVMを処理するためのワーカースレッドに応じて、複数のVMのフロントデバイス及びバックデバイス内のキューと、VMを処理するためのワーカースレッドとのマッピング関係を別々に調整するように構成され、当該調整は、
増加又は減少後のVMを処理するためのワーカースレッドの数が、HOST上で動作しているVMの数よりも少ない場合、各ワーカースレッドを、各VMのフロントデバイス内のキューと、各VMのバックデバイス内のキューとにマッピングするか、又は、増加又は減少後のVMを処理するためのワーカースレッドの数が、HOST上で動作しているVMの数よりも多い又は等しい場合、排他的ワーカースレッドを、1つのVMのフロントデバイス内のキューとバックデバイス内のキューとにマッピングし、共有ワーカースレッドを、少なくとも2つのVMのフロントデバイス及びバックデバイス内にあり、当該排他的ワーカースレッドに対応しないキューにマッピングすることを含み、VMを処理するためのワーカースレッドは、排他的ワーカースレッドと共有ワーカースレッドとを含む。
更に、プロセッサ601は、複数のVMのバックデバイス内のキューと、HOSTのネイティブデバイスNative Device内のキューとのマッピング関係を、複数のVMのバックデバイスとNative Deviceとの間に複数のデータ伝送チャネルが形成されるように、調整するように構成される。
上述した実施形態から、仮想プラットフォーム上でI/Oチャネルを調整する装置は、複数のVMの現在の平均I/Oスループットに応じて、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか又は減少させるかを決定することが分かる。すなわち、複数のVMの現在の平均I/Oスループットが第1の閾値よりも大きい場合、I/Oチャネルのデータ伝送能力を向上させるように、VMを処理するためのワーカースレッドは増加される。つまり、I/Oチャネルリソースが増加される。また、複数のVMの現在の平均I/Oスループットが第2の閾値よりも小さい場合、I/Oチャネルリソースを無駄にしないように、VMを処理するためのワーカースレッドは減少される。つまり、I/Oチャネルリソースが減少される。
なお、本発明の実施形態により開示された方法は、プロセッサ601に適用される、つまり、プロセッサ601によって実施されてよい。プロセッサ601は、集積回路チップであってよく、また、命令並びにデータ実行能力、及び信号処理能力を有する。実施の一連の過程では、当該方法におけるステップは、プロセッサ601内のハードウェア集積論理回路、又は、ソフトウェアの形の命令を使用して実施されてよい。プロセッサは、中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、別のプログラマブル論理コンポーネント、ディスクリート・ゲート又はトランジスタ論理デバイス、及びディスクリート・ハードウェア・コンポーネントであってよく、また、本発明の実施形態によって開示されたあらゆる方法、ステップ、論理ブロック図を実施又は実行してよい。汎用プロセッサは、マイクロプロセッサ又は任意の従来型プロセッサ等であってよい。本発明の実施形態によって開示された方法におけるステップは、ハードウェアプロセッサによって直接実施されても、プロセッサ内でハードウェア及びソフトウェアモジュールを組み合わせることによって実施されてもよい。ソフトウェアモジュールは、ランダム・アクセス・メモリ、フラッシュメモリ、読出し専用メモリ、プログラマブル読出し専用メモリ、電気的消去可能プログラマブルメモリ、及びレジスタといった当技術分野におけるマチュア記憶媒体内にあってよい。記憶媒体は、プロセッサ605内にあり、当該プロセッサが、メモリ605内の情報を読出し、プロセッサのハードウェアを参照しながら上述したステップを実施する。
図7は、本発明の一実施形態に従い提供されるホストHOST700の構造を示す。HOSTは、ネイティブデバイスNative Device705と、Native Device705内で動作している複数の仮想マシンVM内のフロントデバイス及びバックデバイスと、複数のVMのフロントデバイスとバックデバイスとの間にあるデータ処理モジュール702と、複数のVMのバックデバイスとNative Device705との間にあるブリッジBriedge704とを含む。
複数のVMのフロントデバイスは、VM1のフロントデバイス7011と、VM2のフロントデバイス7012とを含み、複数のVMのバックデバイスは、VM1のバックデバイス7031と、VM2のバックデバイス7032とを含み、ブリッジBridge704は、VMのバックデバイスと、HOSTのネイティブデバイスNative Deviceとの間にあるネットワークデバイス又はソフトウェアであり、VMのバックデバイスとホストHOSTのネイティブデバイスNative Deviceとの間にネットワーク接続を実施し、データフレームを転送する。ネイティブデバイスNative Device705は、仮想環境がその上で動作しているハードウェアプラットフォームであり、複数のハードウェアを含んでよく、例えばコンピュータノードのNative Deviceは、プロセッサ(例えばCPU)とメモリとを含み、また更に、ネットワークアダプタ、メモリといった高速/低速入出力(I/O、Input/Output)デバイスを含んでよい。
データ処理モジュール702は、
複数のVMの現在の平均I/Oスループットを計測し、
現在の平均I/Oスループットが第1の閾値よりも大きい場合、ワーカースレッドが増加された後は複数のVMの平均I/Oスループットが第1の閾値よりも大きくなるように、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか、又は、現在の平均I/Oスループットが第2の閾値よりも小さい場合、ワーカースレッドが減少された後は複数のVMの平均I/Oスループットが第2の閾値より大きくなるように、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させ、ただし、第1の閾値は第2の閾値より大きく、
増加又は減少後のVMを処理するためのワーカースレッドに応じて、複数のVMのフロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、複数のVMのバックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、複数のVMのフロントデバイスとバックデバイスとの間に複数のデータ送信チャネルが形成されるように、別々に調整するように構成される。
任意選択的に、データ処理モジュール702は更に、
複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させることによりもたらされる、CPU使用率の増加とI/Oスループットの増加とを比較し、I/Oスループットの増加がCPU使用率の増加よりも大きい場合、ワーカースレッドが増加された後は、複数のVMの平均I/Oスループットが第1の閾値よりも小さくなるように、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるように構成される。
任意選択的に、データ処理モジュール702は更に、
複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながるかどうかを決定し、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、複数のVMのスループットへの対応不能につながらない場合、ワーカースレッドが減少された後は、複数のVMの平均I/Oスループットが第2の閾値よりも大きくなるように、複数のVMのフロントデバイスとバックデバイスとの間のワーカースレッドを減少させるように構成される。
なお、データ処理モジュール702は、ここでは繰り返して説明されない第1の実施形態に開示される方法を実施してもよく、また、第1の実施形態に開示された方法の限定として解釈されるべきではない。データ処理モジュール702は、通常、ソフトウェアによって実施され、つまり、プロセッサが特殊関数を用いてソフトウェアコード命令を読み出すことによって実施される。ソフトウェアによって実施されるデータ処理モジュール702は、1つの好適な実施様態解決策に過ぎず、当業者であれば、データ処理モジュール702のソフトウェア方法を、プロセッサ(例えばCPU、DSP)といったハードウェア論理を用いて実施できよう。このことは、本発明において限定されていない。
上述した実施形態から、ホストHOSTは、複数のVMの現在の平均I/Oスループットに応じて、複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか又は減少させるかを決定することが分かる。すなわち、複数のVMの現在の平均I/Oスループットが第1の閾値よりも大きい場合、I/Oチャネルのデータ伝送能力を向上させるように、VMを処理するためのワーカースレッドは増加される。つまり、I/Oチャネルリソースが増加される。また、複数のVMの現在の平均I/Oスループットが第2の閾値よりも小さい場合、I/Oチャネルリソースを無駄にしないように、VMを処理するためのワーカースレッドは減少される。つまり、I/Oチャネルリソースが減少される。
最後に、上述した実施形態は、本発明を限定するのではなく、本発明の技術的解決策を説明することを意図しているに過ぎないことに留意されたい。本発明は、上述した実施形態を参照して詳細に説明されているが、当業者であれば、本発明の実施形態の技術的解決策の精神及び範囲から逸脱することなく、上述した実施形態に説明された技術的解決策に変更を加えても、又は、その技術的特徴の一部又は全部に代わる等価物を作成してもよいことは理解できよう。

Claims (13)

  1. 仮想プラットフォーム上でI/Oチャネルを調整する方法であって、
    ホストHOSTが、前記HOST上で動作している複数の仮想マシンVMの現在の平均I/Oスループットを計測するステップと、
    前記現在の平均I/Oスループットが第1の閾値よりも大きい場合、ワーカースレッドが増加された後は前記複数のVMの前記平均I/Oスループットが前記第1の閾値よりも小さくなるように、前記HOSTが、前記複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか、又は、前記現在の平均I/Oスループットが第2の閾値よりも小さい場合、前記ワーカースレッドが減少された後は前記複数のVMの前記平均I/Oスループットが前記第2の閾値よりも大きくなるように、前記HOSTが、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のVMを処理するためのワーカースレッドを減少させるステップであって、前記第1の閾値は前記第2の閾値よりも大きい、ステップと、
    前記HOSTが、前記増加又は減少後のVMを処理するためのワーカースレッドに応じて、前記複数のVMの前記フロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、前記複数のVMの前記バックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間に複数のデータ送信チャネルが形成されるように、別々に調整するステップと、
    を含む、方法。
  2. 前記現在の平均I/Oスループットが前記第1の閾値よりも大きい場合、前記HOSTが、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のVMを処理するためのワーカースレッドを増加させるステップの前に、前記方法は更に、
    前記HOSTが、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のVMを処理するためのワーカースレッドを増加させることによりもたらされる、CPU使用率の増加とI/Oスループットの増加とを比較するステップと、
    前記I/Oスループットの増加が前記CPU使用率の増加よりも大きい場合、前記HOSTが、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のVMを処理するためのワーカースレッドを増加させるステップを実行するステップと、
    を含む、請求項1に記載の方法。
  3. 前記現在の平均I/Oスループットが前記第2の閾値よりも小さい場合、前記HOSTが、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のVMを処理するためのワーカースレッドを減少させるステップの前に、前記方法は更に、
    前記HOSTが、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、前記複数のVMの前記現在の平均I/Oスループットへの対応不能につながるかどうかを決定するステップと、
    前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のワーカースレッドを減少させることによりもたらされる前記CPU使用率の減少が、前記複数のVMの前記現在の平均I/Oスループットへの対応不能につながらない場合、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のワーカースレッドを減少させるステップを実行するステップと、
    を含む、請求項1に記載の方法。
  4. 前記HOSTが、前記増加又は減少後のVMを処理するためのワーカースレッドに応じて、前記複数のVMの前記フロントデバイス内のキューと前記VMを処理するためのワーカースレッドとのマッピング関係、及び、前記複数のVMの前記バックデバイス内のキューと前記VMを処理するためのワーカースレッドとのマッピング関係を、別々に調整するステップは、
    前記増加又は減少後のVMを処理するためのワーカースレッドの数が、前記HOST上で動作しているVMの数よりも少ない場合、前記HOSTが、各ワーカースレッドを、各VMのフロントデバイス内のキューと、各VMのバックデバイス内のキューとにマッピングするステップか、又は、
    前記増加又は減少後のVMを処理するためのワーカースレッドの数が、前記HOST上で動作しているVMの数よりも多い又は等しい場合、前記HOSTが、排他的ワーカースレッドを、1つのVMのフロントデバイス内のキューとバックデバイス内のキューとにマッピングし、共有ワーカースレッドを、少なくとも2つのVMのフロントデバイス及びバックデバイス内にあり、前記排他的ワーカースレッドに対応しないキューにマッピングするステップを含み、
    前記VMを処理するためのワーカースレッドは、前記排他的ワーカースレッドと前記共有ワーカースレッドとを含む、請求項1乃至3の何れか一項に記載の方法。
  5. 前記HOSTが、前記増加又は減少後のVMを処理するためのワーカースレッドに応じて、前記複数のVMの前記フロントデバイス内のキューと前記VMを処理するためのワーカースレッドとのマッピング関係、及び、前記複数のVMの前記バックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、別々に調整した後、前記方法は更に、
    前記HOSTが、前記複数のVMの前記バックデバイス内のキューと、前記HOSTのネイティブデバイスNative Device内のキューとのマッピング関係を、前記複数のVMのバックデバイスと前記Native Deviceとの間に複数のデータ伝送チャネルが形成されるように調整するステップを含む、請求項1乃至4の何れか一項に記載の方法。
  6. 仮想プラットフォーム上でI/Oチャネルを調整する装置であって、
    HOST上で動作している複数の仮想マシンVMの現在の平均I/Oスループットを計測するように構成された計測モジュールと、
    前記計測モジュールに接続され、前記計測モジュールによって計測された前記現在の平均I/Oスループットが第1の閾値よりも大きい場合、ワーカースレッドが増加された後は前記複数のVMの前記平均I/Oスループットが前記第1の閾値よりも小さくなるように、前記複数のVMのフロントデバイスとバックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか、又は、前記計測モジュールによって計測された前記現在の平均I/Oスループットが第2の閾値よりも小さい場合、前記ワーカースレッドが減少された後は前記複数のVMの前記平均I/Oスループットが前記第2の閾値よりも大きくなるように、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のVMを処理するためのワーカースレッドを減少させるように構成された処理モジュールであって、前記第1の閾値は前記第2の閾値よりも大きい、前記処理モジュールと、
    前記処理モジュールに接続され、前記処理モジュールによる前記増加又は減少後のVMを処理するためのワーカースレッドに応じて、前記複数のVMの前記フロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、前記複数のVMの前記バックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間に複数のデータ送信チャネルが形成されるように、別々に調整するように構成された第1の調整モジュールと、
    を含む、装置。
  7. 前記計測モジュールによって計測された前記現在の平均I/Oスループットが前記第1の閾値よりも大きい場合に、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のVMを処理するためのワーカースレッドを増加させることによりもたらされる、CPU使用率の増加とI/Oスループットの増加とを比較するように構成された決定モジュールを更に含み、
    前記処理モジュールは更に、前記決定モジュールが、前記I/Oスループットの増加が前記CPU使用率の増加よりも大きいと決定した場合、前記ワーカースレッドが増加された後は、前記複数のVMの前記平均I/Oスループットが前記第1の閾値よりも小さくなるように、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のVMを処理するためのワーカースレッドを増加させるように構成される、請求項6に記載の調整装置。
  8. 前記計測モジュールによって計測された前記現在の平均I/Oスループットが前記第2の閾値よりも小さい場合に、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、前記複数のVMの前記現在の平均I/Oスループットへの対応不能につながるかどうかを決定するように構成された決定モジュールを更に含み、
    前記処理モジュールは更に、前記決定モジュールが、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のワーカースレッドを減少させることによりもたらされる前記CPU使用率の減少が、前記複数のVMの前記現在の平均I/Oスループットへの対応不能につながらないと決定した場合、前記ワーカースレッドが減少された後は、前記複数のVMの前記現在の平均I/Oスループットが前記第2の閾値よりも大きくなるように、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のワーカースレッドを減少させるように構成される、請求項6に記載の調整装置。
  9. 前記第1の調整モジュールは、特に、
    前記増加又は減少後のVMを処理するためのワーカースレッドの数が、前記HOST上で動作しているVMの数よりも少ない場合、各ワーカースレッドを、各VMのフロントデバイス内のキューと、各VMのバックデバイス内のキューとにマッピングし、又は、
    前記増加又は減少後のVMを処理するためのワーカースレッドの数が、前記HOST上で動作しているVMの数よりも多い又は等しい場合、排他的ワーカースレッドを、1つのVMのフロントデバイス内のキュー及びバックデバイス内のキューにマッピングし、共有ワーカースレッドを、少なくとも2つのVMのフロントデバイス及びバックデバイス内にあり、前記排他的ワーカースレッドに対応しないキューにマッピングするように構成され、
    前記VMを処理するためのワーカースレッドは、前記排他的ワーカースレッドと前記共有ワーカースレッドとを含む、請求項6乃至8の何れか一項に記載の調整装置。
  10. 前記複数のVMの前記バックデバイス内のキューと、前記HOSTのネイティブデバイスNative Device内のキューとのマッピング関係を、前記複数のVMの前記バックデバイスと前記Native Deviceとの間に複数のデータ伝送チャネルが形成されるように調整するように構成された第2の調整モジュールを更に含む、請求項6乃至9の何れか一項に記載の調整装置。
  11. ネイティブデバイスNative Deviceと、前記Native Device上で動作している複数の仮想マシンVM内のフロントデバイス及びバックデバイスと、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のデータ処理モジュールと、前記複数のVMの前記バックデバイスと前記Native Deviceとの間のブリッジBriedgeと、を含み、
    前記データ処理モジュールは、
    複数の仮想マシンVMの現在の平均I/Oスループットを計測し、
    前記現在の平均I/Oスループットが第1の閾値よりも大きい場合、ワーカースレッドが増加された後は前記複数のVMの前記平均I/Oスループットが前記第1の閾値よりも小さくなるように、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のVMを処理するためのワーカースレッドを増加させるか、又は、前記現在の平均I/Oスループットが第2の閾値よりも小さい場合、前記ワーカースレッドが減少された後は前記複数のVMの前記平均I/Oスループットが前記第2の閾値より大きくなるように、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のワーカースレッドを減少させ、ただし、前記第1の閾値は前記第2の閾値より大きく、
    前記増加又は減少後のVMを処理するためのワーカースレッドに応じて、前記複数のVMの前記フロントデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係、及び、前記複数のVMの前記バックデバイス内のキューとVMを処理するためのワーカースレッドとのマッピング関係を、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間に複数のデータ送信チャネルが形成されるように、別々に調整するように構成される、ホストHOST。
  12. 前記データ処理モジュールは更に、
    前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のVMを処理するためのワーカースレッドを増加させることによりもたらされる、CPU使用率の増加とI/Oスループットの増加とを比較し、
    記I/Oスループットの増加が前記CPU使用率の増加よりも大きい場合、前記ワーカースレッドが増加された後は、前記複数のVMの前記現在の平均I/Oスループットが前記第1の閾値よりも小さくなるように、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のVMを処理するためのワーカースレッドを増加させるように構成される、請求項11に記載のHOST。
  13. 前記データ処理モジュールは更に、
    前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のワーカースレッドを減少させることによりもたらされるCPU使用率の減少が、前記複数のVMの前記現在の平均I/Oスループットへの対応不能につながるかどうかを決定し、
    前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のワーカースレッドを減少させることによりもたらされる前記CPU使用率の減少が、前記複数のVMの前記現在の平均I/Oスループットへの対応不能につながらない場合、前記ワーカースレッドが減少された後は、前記複数のVMの前記現在の平均I/Oスループットが前記第2の閾値よりも大きくなるように、前記複数のVMの前記フロントデバイスと前記バックデバイスとの間のワーカースレッドを減少させるように構成される、請求項11に記載のHOST
JP2014557993A 2013-01-24 2013-08-05 仮想プラットフォーム上でi/oチャネルを調整する方法及び装置 Active JP5923627B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201310027312.7 2013-01-24
CN201310027312.7A CN103116517B (zh) 2013-01-24 2013-01-24 虚拟化平台下i/o通道的调整方法和调整装置
PCT/CN2013/080837 WO2014114072A1 (zh) 2013-01-24 2013-08-05 虚拟化平台下i/o通道的调整方法和调整装置

Publications (2)

Publication Number Publication Date
JP2015513732A JP2015513732A (ja) 2015-05-14
JP5923627B2 true JP5923627B2 (ja) 2016-05-24

Family

ID=48414901

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014557993A Active JP5923627B2 (ja) 2013-01-24 2013-08-05 仮想プラットフォーム上でi/oチャネルを調整する方法及び装置

Country Status (7)

Country Link
EP (1) EP2772854B1 (ja)
JP (1) JP5923627B2 (ja)
KR (1) KR101559097B1 (ja)
CN (1) CN103116517B (ja)
AU (1) AU2013273688B2 (ja)
RU (1) RU2573733C1 (ja)
WO (1) WO2014114072A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100578350B1 (ko) * 2002-08-29 2006-05-11 엘지전자 주식회사 진공청소기의 집진케이스
US8819685B2 (en) 2013-01-24 2014-08-26 Huawei Technologies Co., Ltd. Method and apparatus for adjusting I/O channel on virtual platform
CN103116517B (zh) * 2013-01-24 2016-09-14 华为技术有限公司 虚拟化平台下i/o通道的调整方法和调整装置
CN105324973B (zh) * 2014-05-09 2019-05-24 华为技术有限公司 快速输入输出报文处理方法、装置及系统
WO2016101282A1 (zh) * 2014-12-27 2016-06-30 华为技术有限公司 一种i/o任务处理的方法、设备和系统
TWI648637B (zh) * 2017-11-30 2019-01-21 財團法人工業技術研究院 於平台部署與操作行動作業系統的系統及其方法
CN109240802B (zh) 2018-09-21 2022-02-18 北京百度网讯科技有限公司 请求处理方法和装置
KR102212512B1 (ko) * 2019-02-28 2021-02-04 성균관대학교산학협력단 가상화기술에서 뮤텍스 객체를 이용한 소프트웨어 기반 은닉채널 구성 시스템

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002132518A (ja) * 2000-10-25 2002-05-10 Fujitsu Ltd 仮想計算機システムおよび仮想計算機間の入出力装置交換方法
US7788665B2 (en) * 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
US8443398B2 (en) * 2006-11-01 2013-05-14 Skyfire Labs, Inc. Architecture for delivery of video content responsive to remote interaction
CN101499021A (zh) 2008-01-31 2009-08-05 国际商业机器公司 在多个虚拟机上动态分配资源的方法和装置
US8387059B2 (en) * 2008-07-02 2013-02-26 International Business Machines Corporation Black-box performance control for high-volume throughput-centric systems
US9152464B2 (en) * 2010-09-03 2015-10-06 Ianywhere Solutions, Inc. Adjusting a server multiprogramming level based on collected throughput values
JP2012234425A (ja) * 2011-05-06 2012-11-29 Canon Inc 画像処理装置及び画像処理方法
EP2698711B1 (en) * 2011-06-30 2015-08-05 Huawei Technologies Co., Ltd. Method for dispatching central processing unit of hotspot domain virtual machine and virtual machine system
CN102508718B (zh) * 2011-11-22 2015-04-15 杭州华三通信技术有限公司 一种虚拟机负载均衡方法和装置
CN102591702B (zh) * 2011-12-31 2015-04-15 华为技术有限公司 虚拟化处理方法及相关装置和计算机系统
CN103116517B (zh) * 2013-01-24 2016-09-14 华为技术有限公司 虚拟化平台下i/o通道的调整方法和调整装置

Also Published As

Publication number Publication date
CN103116517B (zh) 2016-09-14
AU2013273688B2 (en) 2015-08-06
KR101559097B1 (ko) 2015-10-08
EP2772854A1 (en) 2014-09-03
CN103116517A (zh) 2013-05-22
EP2772854A4 (en) 2014-11-19
WO2014114072A1 (zh) 2014-07-31
RU2573733C1 (ru) 2016-01-27
KR20140119624A (ko) 2014-10-10
AU2013273688A1 (en) 2014-08-07
EP2772854B1 (en) 2018-10-24
JP2015513732A (ja) 2015-05-14

Similar Documents

Publication Publication Date Title
JP5923627B2 (ja) 仮想プラットフォーム上でi/oチャネルを調整する方法及び装置
US11593179B2 (en) Capacity and load analysis using storage attributes
US8819685B2 (en) Method and apparatus for adjusting I/O channel on virtual platform
US8997108B2 (en) Analysis of operator graph and dynamic reallocation of a resource to improve performance
EP2717158A1 (en) Method and device for integrating virtualized cluster, and virtualized cluster system
US8910153B2 (en) Managing virtualized accelerators using admission control, load balancing and scheduling
US8788658B2 (en) Allocation and balancing of storage resources
WO2017143548A1 (zh) 用于应用自动化部署的方法和云管理节点
WO2018010654A1 (zh) 一种虚拟机热迁移的方法、装置及系统
US20140137117A1 (en) Virtualization planning system
US20100115510A1 (en) Virtual graphics device and methods thereof
US9697031B2 (en) Method for implementing inter-virtual processor interrupt by writing register data in a single write operation to a virtual register
US9395918B2 (en) Dynamic record management including opening a virtual storage access method (VSAM) data set and modifying a VSAM control block structure
US20160232026A1 (en) Selecting a host for a virtual machine using a hardware multithreading parameter
EP2881860A1 (en) Method for implementing an interrupt between virtual processors, related device, and system
JP2022033688A (ja) メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム
US20220318057A1 (en) Resource Management for Preferred Applications
US20160224390A1 (en) Placement of virtual cpus using a hardware multithreading parameter
US9690610B2 (en) Computer system and management computer controlling method
Elder et al. vSphere High Performance Cookbook
CN108052375A (zh) 一种主机过载检测方法
KR20220070625A (ko) 가상화 환경에서 가상머신의 i/o 성능을 높이기 위한 스케줄링 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150930

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160322

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160418

R150 Certificate of patent or registration of utility model

Ref document number: 5923627

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250