(57)【要約】  仮想マシン展開の方法および装置が提供される。この方法は、処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードを取得することと、フラグメント・ノードのデータ量に従って、ターゲット仮想マシンをこのフラグメント・ノードに割り当てることと、このフラグメント・ノードをターゲット仮想マシンに展開することとを含む。この実施形態では、仮想マシンがフラグメント・ノードに割り当てられると、まずデータをスクランブルすることによってこのフラグメント・ノードのデータ量が制御され、次いで、実際のデータ量に従って、このデータ量にマッチする仮想マシンが割り当てられて、この仮想マシンが過負荷現象に陥らないようにし、それによって負荷バランシングがより良好に実現する。
2019504420.tif 000002
【特許請求の範囲】
【請求項１】
処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードを取得することと、
前記フラグメント・ノードのデータ量に従って、ターゲット仮想マシンを前記フラグメント・ノードに割り当てることと、
前記フラグメント・ノードを前記ターゲット仮想マシンに展開することと
を含む、仮想マシン展開方法。
【請求項２】
前記フラグメント・ノードの前記データ量に従って、仮想マシンを前記フラグメント・ノードに前記割り当てることが、
前記データ量に従って、前記フラグメント・ノードを処理するのに必要となる処理能力を取得することとであって、前記処理能力が、ＣＰＵ、メモリ、およびディスク性能パラメータのうち少なくとも１つによって表されることと、
能力が処理能力にマッチする前記ターゲット仮想マシンを、フラグメント・ノード用にマシン・プールから選択することと
を含む、請求項１に記載の仮想マシン展開方法。
【請求項３】
能力が前記処理能力にマッチする前記ターゲット仮想マシンを、前記フラグメント・ノード用にマシン・プールから選択することが、
前記ターゲット仮想マシンを、優先的に低構成マシン・プールから高構成マシン・プールへと徐々に選択して、最適構成を実現すること
を含む、請求項２に記載の仮想マシン展開方法。
【請求項４】
前記フラグメント・ノードに対応する前記データ量を計算する前に、前記フラグメント・ノードのバックアップ・データを取得することをさらに含む、請求項３に記載の仮想マシン展開方法。
【請求項５】
フラグメント・ノードを前記ターゲット仮想マシンに記憶する前に、
性能が前記処理能力にマッチする第１の仮想マシンを、前記バックアップ・データ用に前記マシン・プールから選択することと、
前記ターゲット仮想マシンおよび前記第１の仮想マシンが、同じ物理マシンに属しているかどうか判定することと、
前記判定結果が「はい」の場合、前記ターゲット仮想マシンおよび前記第１の仮想マシンが同じ物理マシンに属さないようになるまで、前記処理能力にマッチする前記第１の仮想マシンを、前記バックアップ・データ用に前記マシン・プールから再選択することと、
前記判定結果が「いいえ」の場合、前記バックアップ・データを前記第１の仮想マシンに展開することと
を含む、請求項４に記載の仮想マシン展開方法。
【請求項６】
前記フラグメント・ノードの前記データ量に従って、ターゲット仮想マシンを前記フラグメント・ノードに割り当てる前に、
前記フラグメント・ノードに対応する前記データ量を計算することをさらに含む、請求項５に記載の仮想マシン展開方法。
【請求項７】
前記フラグメント・ノードに対応する前記データ量を前記計算することが、
前記フラグメント・ノードに含まれるエントリの数を取得することと、
前記フラグメント・ノード内の１つのデータが占めるビットの数を取得することと、
エントリの前記数および１つのデータが占めるビットの前記数に従って前記データ量を計算することと
を含む、請求項６に記載の仮想マシン展開方法。
【請求項８】
前記フラグメント・ノードを処理するのに必要となる処理能力を、前記データ量に従って前記取得することが、
事前設定済みの検索機能拡張因子、複合サーチ因子、および前記データ量に従って計算することによって、前記処理能力を取得することを含む、請求項７に記載の仮想マシン展開方法。
【請求項９】
処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードを前記取得する前に、
すべての仮想マシンの性能パラメータをマシン・プールに入力することをさらに含む、請求項１〜８のいずれか一項に記載の仮想マシン展開方法。
【請求項１０】
処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードを取得するように構成されたスクランブル・モジュールと、
前記フラグメント・ノードのデータ量に従って、ターゲット仮想マシンを前記フラグメント・ノードに割り当てるように構成された割当てモジュールと、
前記フラグメント・ノードを前記ターゲット仮想マシンに展開するように構成された展開モジュールと
を含む、仮想マシン展開装置。
【請求項１１】
前記割当てモジュールが取得ユニットおよび選択ユニットを含み、
前記取得ユニットが、前記フラグメント・ノードを処理するのに必要となる処理能力を、前記データ量に従って取得するように構成され、前記処理能力が、ＣＰＵ、メモリ、およびディスク性能パラメータのうち少なくとも１つによって表され、
前記選択ユニットが、性能が前記処理能力にマッチする前記ターゲット仮想マシンを、前記フラグメント用にマシン・プールから選択するように構成される、請求項１０に記載の仮想マシン展開装置。
【請求項１２】
前記選択ユニットが、具体的には、前記ターゲット仮想マシンを、優先的に低構成マシン・プールから高構成マシン・プールへと徐々に選択して、最適構成を実現するように構成される、請求項１１に記載の仮想マシン展開装置。
【請求項１３】
前記計算モジュールが、前記フラグメント・ノードに対応する前記データ量を計算する前に、前記フラグメント・ノードのバックアップ・データを取得するように構成されたバックアップ・モジュールをさらに含む、請求項１２に記載の仮想マシン展開装置。
【請求項１４】
判定モジュールをさらに含み、
前記割当てモジュールは、前記展開モジュールが前記フラグメント・ノードを前記ターゲット仮想マシンに展開する前に、性能が前記処理能力にマッチする第１の仮想マシンを、前記バックアップ・データ用に前記マシン・プールから選択するようにさらに構成され、前記ターゲット仮想マシンおよび第１の仮想マシンが同じ物理マシンに属していると前記判定モジュールが判定するとき、前記ターゲット仮想マシンおよび前記第１の仮想マシンが同じ物理マシンに属さないようになるまで、前記処理能力にマッチする前記第１の仮想マシンを、前記バックアップ・データ用に前記マシン・プールから再選択するようにさらに構成され、
前記判定モジュールは、前記ターゲット仮想マシンおよび前記第１の仮想マシンが同じ物理マシンに属しているかどうか判定するように構成され、
前記展開モジュールは、前記ターゲット仮想マシンおよび前記第１の仮想マシンが同じ物理マシンに属していないと前記判定モジュールが判定するとき、前記バックアップ・データを前記第１の仮想マシンに展開するようにさらに構成される、請求項１３に記載の仮想マシン展開装置。
【請求項１５】
前記フラグメント・ノードに対応する前記データ量を計算するように構成された、計算モジュールをさらに含む、請求項１４に記載の仮想マシン展開装置。
【請求項１６】
前記計算モジュールが、具体的には、前記フラグメント・ノードに含まれるエントリの数を取得し、前記フラグメント・ノード内の１つのデータが占めるビットの数を取得し、エントリの前記数および１つのデータが占めるビットの前記数に従って前記データ量を計算するように構成される、請求項１５に記載の仮想マシン展開装置。
【請求項１７】
前記取得ユニットが、具体的には、事前設定済みの検索機能拡張因子、複合サーチ因子、および前記データ量に従って計算することによって、前記処理能力を取得するように構成される、請求項１６に記載の仮想マシン展開装置。
【請求項１８】
前記スクランブル・モジュールが、前記処理対象のデータをスクランブルおよび細分化することによって前記フラグメント・ノードを取得する前に、すべての仮想マシンの性能パラメータをマシン・プールに入力するように構成された入力モジュールをさらに含む、請求項１０〜１７のいずれか一項に記載の仮想マシン展開装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１６年２月３日出願の「仮想マシン展開の方法および装置」と題する中国特許出願第２０１６１００７７９６４．５号の優先権を主張し、これを参考として本明細書にそっくりそのまま援用する。
【０００２】
技術分野
本発明は、コンピュータの技術分野に関し、詳細には仮想マシン展開の方法および装置に関する。
【背景技術】
【０００３】
背景技術
今日、インターネットが急速に発展している。クラウド・コンピューティングは、革新的なコンピューティング・モードを採用して、ユーザが、インターネットを介していつでも、ほとんど無限のコンピューティング能力および豊富な情報サービスを得ることができるようにする。クラウド・コンピューティングは、仮想化技術を統合して、この仮想化技術のスケーラビリティおよび柔軟性によってリソースの利用率を向上させ、したがってコストを削減する。具体的には、ある１つの物理マシンは合計３２個のコアを有し、３０個の仮想マシン（ＶＭ）を割り当てることができる。各ＶＭは、４つのコアを必要とする。理論上、物理マシンは、３０個の仮想マシンを生成するのに１２０個のコアを必要とするが、実際には、この物理マシンは３２個のコアしか有していない。実際のアプリケーションでは、すべてのサービスが同時に全負荷状態になることはない。コストを削減し、リソースの利用率を向上させるには、低負荷状態のコアをクラウド・コンピューティングにおいて共用して、３０個の仮想マシンを１つの物理マシン上に作成する目的を達成する。
【０００４】
前述の仮想化方法では、大量のデータが１つの仮想マシンを共用し、それによって、この仮想マシンの負荷が高くなりすぎる場合がある。たとえば、Ｔａｏｂａｏ（商標）のアプリケーションでは、通常、旗艦店は、普通の店よりも商品がはるかに多く、検索の人気も高い。前述の仮想化方法が使用される場合、複数の旗艦店の商品データが１つの仮想マシン上に配置される可能性がある。購入者が業者に基づいて検索すると、仮想マシンの遭遇することになる負荷が重くなる。
【発明の概要】
【課題を解決するための手段】
【０００５】
発明の概要
本発明は、大量のデータを仮想マシンに展開すると、この仮想マシンへの負荷が重くなるという、既存の仮想化方法の問題を解決するための仮想マシン展開の方法および装置を提供する。
【０００６】
前述の目的を達成するために、本発明は、
処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードを取得することと、
このフラグメント・ノードのデータ量に従って、ターゲット仮想マシンをこのフラグメント・ノードに割り当てることと、
このフラグメント・ノードをターゲット仮想マシンに展開することと
を含む、仮想マシン展開方法を提供する。
【０００７】
前述の目的を達成するために、本発明は、
処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードを取得するように構成されたスクランブル・モジュールと、
このフラグメント・ノードのデータ量に従って、ターゲット仮想マシンをこのフラグメント・ノードに割り当てるように構成された割当てモジュールと、
このフラグメント・ノードをターゲット仮想マシンに展開するように構成された展開モジュールと
を含む、仮想マシン展開装置を提供する。
【０００８】
本発明の仮想マシン展開の方法および装置によれば、処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードが取得され、このフラグメント・ノードのデータ量に従って、ターゲット仮想マシンがこのフラグメント・ノードに割り当てられ、このフラグメント・ノードがターゲット仮想マシンに展開される。この実施形態では、仮想マシンがフラグメント・ノードに割り当てられると、まずデータをスクランブルすることによってこのフラグメント・ノードのデータ量が制御され、次いで、このデータ量にマッチする仮想マシンが割り当てられて、この仮想マシンが過負荷現象に陥らないようにし、それによって負荷バランシングがより良好に実現する。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態１による仮想マシン展開方法の概略流れ図である。
【図２】本発明の実施形態２による仮想マシン展開方法の概略流れ図である。
【図３】実施形態２で提供されるコンシステント・ハッシュ・アルゴリズムを使用してデータをスクランブルすることの概略図である。
【図４】実施形態２で提供されるデータ・スクランブルの結果の概略図である。
【図５】実施形態２で提供される仮想マシン展開方法の、第１の概略アプリケーション図である。
【図６】実施形態２で提供される仮想マシン展開方法の、第２の概略アプリケーション図である。
【図７】本発明の実施形態３による仮想マシン展開装置の概略構造図である。
【図８】本発明の実施形態４による仮想マシン展開装置の概略構造図である。
【発明を実施するための形態】
【００１０】
詳細な説明
添付図面を参照しながら、本発明の各実施形態で提供される仮想マシン展開の方法および装置を以下で詳細に説明する。
【００１１】
実施形態１
図１は、本発明の実施形態１による仮想マシン展開方法の概略流れ図である。図１に示すように、仮想マシン展開方法は以下のステップを含む。
【００１２】
ステップ１０１。処理対象のデータをスクランブルおよび細分化することによって、フラグメント・ノードが取得される。
【００１３】
実際のアプリケーションでは、データを記憶するには、分散ストレージ用にビッグ・データをスクランブルおよび細分化する必要がある。そうすることにより、各記憶装置は、比較的少量のデータを記憶し、この記憶装置の負荷を軽減する。
【００１４】
この実施形態では、処理対象のデータが、事前設定済みのスクランブル・アルゴリズムに従ってスクランブルおよび細分化されて、フラグメント・ノードが取得される。フラグメント・ノードは、スクランブルされたフラグメント・データである。具体的には、処理対象のデータのデータ量の値に従って、スクランブルの後に得られるフラグメントの数がまず設定され、次いで、スクランブル・アルゴリズムに基づいて、この処理対象のデータがスクランブルおよび細分化される。
【００１５】
たとえば、この処理対象のデータは、２０億個のデータであり、２５６個のフラグメントにスクランブルしてもよく、すなわち２０億個のデータが２５６個のフラグメント・ノードにスクランブルされる。Ｔａｏｂａｏ（商標）のサービス・シナリオでは、商品データを、ハッシュ・アルゴリズムを使用してスクランブルおよび細分化し、スクランブルの後に取得されるフラグメント・ノードに基づいて記憶してもよい。
【００１６】
ステップ１０２。フラグメント・ノードのデータ量に従って、ターゲット仮想マシンがフラグメント・ノードに割り当てられる。
【００１７】
取得されたフラグメント・ノードのデータ量は様々である。フラグメント・ノードが取得された後、各フラグメント・ノードのデータ量が計算される。
【００１８】
フラグメント・ノードのデータ量が取得された後、ターゲット仮想マシンがフラグメント・ノードに割り当てられる。この実施形態では、ターゲット仮想マシンは、フラグメント・ノードに含まれるデータ量を処理する処理能力を有する必要がある。この処理能力は、ＣＰＵ、メモリ、およびディスク性能パラメータのうち少なくとも１つによって表すことができる。
【００１９】
ステップ１０３。フラグメント・ノードがターゲット仮想マシンに展開される。
【００２０】
フラグメント・ノード用にターゲット仮想マシンが選択された後、このフラグメント・ノードは、ターゲット仮想マシンに展開される。
【００２１】
この実施形態で提供される仮想マシン展開方法によれば、処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードが取得され、このフラグメント・ノードに対応するデータ量が計算され、フラグメント・ノードのデータ量に従って、ターゲット仮想マシンがこのフラグメント・ノードに割り当てられ、このフラグメント・ノードがターゲット仮想マシンに展開される。この実施形態では、仮想マシンがフラグメント・ノードに割り当てられる場合、まずデータをスクランブルすることによってこのフラグメント・ノードのデータ量が制御され、次いで、このデータ量にマッチする仮想マシンが割り当てられて、この仮想マシンが過負荷現象に陥らないようにし、それによって負荷バランシングがより良好に実現する。
【００２２】
実施形態２
図２は、本発明の実施形態２による仮想マシン展開方法の概略流れ図である。図２に示すように、仮想マシン展開方法は以下のステップを含む。
【００２３】
ステップ２０１。すべての仮想マシンの性能パラメータがマシン・プールに入力される。
【００２４】
仮想マシンの割当てを容易にするために、この実施形態では、すべてのＶＭの性能パラメータがマシン・プールに入力される。ＶＭの性能パラメータには、ＶＭのメモリ・サイズ、ディスク・サイズ、コアの数などが含まれる。
【００２５】
ステップ２０２。処理対象のデータをスクランブルおよび細分化することによって、フラグメント・ノードが取得される。
【００２６】
ステップ２０３。フラグメント・ノードのバックアップ・データが取得される。
【００２７】
具体的には、コンシステントハッシュ（Ｈａｓｈ）アルゴリズムを使用して、処理対象のデータがスクランブルおよび細分化される。処理対象のデータのデータ量の値に従って、スクランブルの後に得られるフラグメントの数がまず設定され、次いで、コンシステント・スクランブル・アルゴリズムに基づいて、この処理対象のデータがスクランブルおよび細分化される。データのセキュリティを確実にするために、フラグメント・ノードをバックアップして、このフラグメント・ノードのバックアップ・データを取得してもよい。
【００２８】
図３は、実施形態２で提供されるコンシステント・ハッシュ・アルゴリズムを使用してデータをスクランブルすることの概略図である。具体的には、コンシステント・ハッシュ・アルゴリズムは、ある値を３２ビットのキー、すなわち０〜２３２−１の数値空間にマッピングする。この空間は、頭（０）と尻尾（２３２−１）が接続されたリングだと想像することができる。次いで、データが特定のノードにマッピングされる。たとえば、ｋｅｙ％Ｎでは、ｋｅｙがデータのキーであり、Ｎがノードの数である。図３では、リング上の大きい円が１つのノードを表し、リング上の小さい円がノード・データを表し、マスタ・データおよびバックアップ・データが各ノードの下に設定される。
【００２９】
たとえば、スクランブルする必要のあるデータが１０億個存在する。このデータは、コンシステント・ハッシュ・アルゴリズムを使用して、図４に示す結果を得ることによってスクランブルしてもよい。この図では、１０億個のデータが４つのフラグメントにスクランブルされ、各フラグメントが１つのノードに対応している。データのセキュリティを改善し、サービス継続性を確実なものにするために、データをバックアップし、各フラグメント・ノードの下で複数のデータを設定し、このフラグメント・ノードの下での複数のデータが等しい関係を有し、すなわち、この複数のデータが互いのマスタ／バックアップ・データである。たとえば、フラグメント・ノード１は、データ１〜データ４を含み、データ１、データ２、データ３、およびデータ４は、互いのマスタ／バックアップ・データである。フラグメント・ノード２は、データ１〜データ２を含み、データ１およびデータ２は、互いのマスタ／バックアップ・データである。
【００３０】
ステップ２０４。フラグメント・ノードに対応するデータ量が計算される。
【００３１】
具体的には、フラグメント・ノード内での１つのデータに含まれるフィールドの数、各フィールドに対応するフィールド・タイプ、１つのデータに含まれる表の数、およびフラグメント・ノードに含まれるエントリの数が取得される。どれほど多くのデータがフラグメント・ノードに含まれるかを示すために、エントリの数が使用される。さらに、１つのデータが占めるビットの数は、１つのデータに含まれるフィールドの数、各フィールドに対応するフィールド・タイプ、および１つのデータに含まれる表の数に従って計算することができる。実際、フィールド・タイプが取得された後、フィールド・タイプが占めるビットの数を得ることができる。たとえば、整数型データｉｎｔは４ビット（バイト）を占有し、ロング・タイプ・データ（ｌｏｎｇ）は４バイトを占有し、ダブル・タイプ・データ（ｄｏｕｂｌｅ）は８バイトを占有し、文字列（ｃｈａｒ）は２バイトを占有する。さらに、フラグメント・ノードでの、エントリの数および１つのデータが占めるビットの数に従って、フラグメント・ノードのデータ量が計算される。具体的には、エントリの数に、１つのデータが占めるビットの数を乗算することによって、フラグメント・ノードのデータ量が得られる。
【００３２】
ステップ２０５。フラグメント・ノードを処理するのに必要となる処理能力が、データ量に従って取得される。
【００３３】
この処理能力は、ＣＰＵ、メモリ、およびディスク性能パラメータのうち少なくとも１つによって表される。
【００３４】
検索エンジン・アプリケーションの場面では、フラグメント・ノードのデータ量が取得され、フラグメント・ノードを処理するのに必要となる処理能力が、データ量に従って取得される。１つのデータが占めるビットの取得数と、事前設定済みの検索機能拡張因子および複合インデックス係数（a preset search feature expansion factor and combined index coefficient）とに基づいて、フラグメント・ノードに必要とされるディスク・サイズが計算される。必要とされるディスク・サイズが計算された後、フラグメント・ノードが必要とするメモリ・サイズおよび中央処理装置（ＣＰＵ）の性能を、ディスク・サイズに従って取得してもよい。
【００３５】
実際のアプリケーションでは、インデックス構築中、インデックス・レベルの数が多くなると、検索中に必要となる時間が長くなり、また検索の難易度が高くなることを示し、このことは、検索が拡張していることを意味する。この実施形態では、検索機能拡張因子があらかじめ設定される。この検索機能拡張因子は、経験によって設定してもよい。ＤｏｃＶａｌｕｅ検索法を採用すると、ディスクおよびメモリの検索拡張因子は、それぞれ１．１７および０．８５に設定される。ＶＳＥＡＲＣＨでは、複合インデックス係数は、ほぼ２よりも大きい。
【００３６】
ステップ２０６。フラグメント・ノード用にマシン・プールから、性能が処理能力にマッチしているターゲット仮想マシンが選択される。
【００３７】
具体的には、フラグメント・ノードを処理するのに必要となる処理能力に従って、性能が処理能力にマッチしているターゲット仮想マシンがマシン・プールから選択される。場合によっては、フラグメント・ノードに必要となる処理能力のディスクおよびメモリと、事前設定済みの係数とに従って、ターゲット仮想マシンに対応するディスクおよびメモリのサイズが計算される。たとえば、該当する処理能力のディスクおよびメモリに、それぞれ事前設定済み係数を乗算して、ターゲット仮想マシンのディスクおよびメモリのサイズを得る。たとえば、フラグメント・ノードが必要とするメモリ・サイズ＝ターゲット仮想マシンのメモリ×７５％であり、フラグメント・ノードが必要とするディスク・サイズ＝ターゲット仮想マシンのディスク×７５％である。マシン・プールからターゲット仮想マシンを選択するプロセスにおいて、ターゲット仮想マシンを、優先的に低構成マシン・プールから高構成マシン・プールへと徐々に選択して、最適構成を実現してもよい。
【００３８】
各例を以下に挙げる。図５に示すように、２０億個のデータがＮ個のフラグメントにスクランブルされ、各フラグメントが１つのノードに対応している。データがバックアップされないとき、各フラグメント・ノードに対応するデータ量が計算され、次いで、取得されたデータ量に従って、フラグメント・ノードを処理するのに必要となる処理能力を得ることができる。図５に示すように、処理能力には、フラグメント・ノードを処理するのに必要となる、ディスク・サイズ、メモリ・サイズ、ＣＰＵ性能などが含まれる。次いで、必要となる処理能力に従って、フラグメント・ノードにマッチするターゲット仮想マシンが、マシン・プールから取得される。この図では、Ｍ個の物理マシンが存在しており、このＭ個の物理マシン上にＮ個の仮想マシンが作成される。ここでＭ＜Ｎである。物理マシン１が、仮想マシン１および仮想マシン２を含み、物理マシン２が仮想マシン３を含み、物理マシン３が仮想マシン４を含み、．．．、物理マシンＭが仮想マシンＮを含む。フラグメント・ノード１が仮想マシン１に展開され、フラグメント・ノード２が仮想マシン２に展開され、．．．、フラグメント・ノードＮが仮想マシンＮに展開される。
【００３９】
ステップ２０７。バックアップ・データ用にマシン・プールから、性能が処理能力にマッチしている第１の仮想マシンが選択される。
【００４０】
この実施形態では、データのセキュリティを改善し、サービス継続性を確実なものにするために、フラグメント・ノードをバックアップし、仮想マシンをフラグメント・ノードのバックアップ・データに割り当てる必要があり、ターゲット仮想マシンがフラグメント・ノードに割り当てられる。バックアップ・データおよびフラグメント・ノードは同一のデータを含むので、仮想マシンをバックアップ・データに割り当てるとき、性能が処理能力にマッチする第１の仮想マシンが、フラグメント・ノードに必要となる処理能力に従ってバックアップ・データ用にマシン・プールから選択されて、バックアップ・データに対応する仮想マシンの役割を果たす。
【００４１】
ステップ２０８。ターゲット仮想マシンおよび第１の仮想マシンが、同じ物理マシンに属しているかどうか判定される。
【００４２】
仮想マシンを割り当てている間、ターゲット仮想マシンおよび第１の仮想マシンが同じ物理マシンに属している場合、この物理マシンが障害を起こすと、フラグメント・ノードのデータはサービスを提供することができない。この実施形態では、同じ物理マシンに属している仮想マシンにマスタ・データおよびバックアップ・データが割り当てられないようにするため、ターゲット仮想マシンおよび第１の仮想マシンが取得された後に、このターゲット仮想マシンおよび第１の仮想マシンが同じ物理マシンに属しているかどうかさらに判定される。
【００４３】
判定結果が「はい」の場合、ステップ２０９が実行され、そうでない場合は２１０が実行される。
【００４４】
ステップ２０９。ターゲット仮想マシンおよび第１の仮想マシンが、同じ物理マシンに属さないようになるまで、バックアップ・データ用にマシン・プールから、処理能力にマッチする第１の仮想マシンが再選択される。
【００４５】
この実施形態では、ターゲット仮想マシンおよび第１の仮想マシンが同じ物理マシンに属している場合、選択される第１の仮想マシンおよびターゲット仮想マシンが同じ物理マシンに属さないようになるまで、バックアップ・データ用に第１の仮想マシンが再選択されて、ターゲット仮想マシンが属している物理マシンが障害を起こした後に、このバックアップ・データがサービス提供を確実に継続できるようにする。ターゲット仮想マシンのものとは異なる物理マシンに属している第１の仮想マシンが取得された後、ステップ２１０が実行される。
【００４６】
ステップ２１０。フラグメント・ノードおよびバックアップ・データが、それぞれターゲット仮想マシンおよび第１の仮想マシンに展開される。
【００４７】
各例を以下に挙げる。図６に示すように、２０億個のデータがＮ個のフラグメントにスクランブルされ、各フラグメントが１つのノードに対応している。各フラグメント・ノードは、複数個のバックアップ・データを含む。たとえば、フラグメント・ノード１は、データ１、バックアップ・データ１、およびバックアップ・データ２を含み、フラグメント・ノード２は、データ１およびバックアップ・データ１を含み、フラグメント・ノード３は、データ１およびバックアップ・データ１を含み、．．．、フラグメント・ノードＮは、データ１、およびバックアップ・データ１〜バックアップ・データ３を含む。この図では、Ｍ個の物理マシンが存在しており、このＭ個の物理マシン上にＮ個の仮想マシンが作成される。ここでＭ＜Ｎである。物理マシン１が、仮想マシン１および仮想マシン２を含み、物理マシン２が仮想マシン３を含み、物理マシン３が仮想マシン４を含み、．．．、物理マシンＭが仮想マシンＮを含む。
【００４８】
仮想マシンが、マスタ・データ、すなわちデータ１〜データＮ用に展開される場合、各マスタ・データにマッチするターゲット仮想マシンがマシン・プールから取得される。データ１が仮想マシン１に展開され、データ２が仮想マシン２に展開され、．．．、データＮが仮想マシンＮに展開される。
【００４９】
仮想マシンがバックアップ・データ用に展開される場合、フラグメント・ノード１のバックアップ・データ１が仮想マシン３に展開され、フラグメント・ノード２のバックアップ・データ１が仮想マシン４に展開され、フラグメント・ノード３のバックアップ・データ１が仮想マシン１に展開され、．．．、フラグメント・ノードＮのバックアップ・データ１が仮想マシンＫに展開される。ＫはＮよりも小さい。フラグメント・ノード１のバックアップ・データ２が仮想マシン４に展開され、．．．、フラグメント・ノードＮのバックアップ・データ１が仮想マシンＩに展開され、ここでＩはＮよりも小さい。フラグメント・ノードＮのバックアップ・データ３が仮想マシンＩに展開され、ここでＩはＮよりも小さい。
【００５０】
このケースでは、仮想マシンがバックアップ・データ用に展開される場合、ターゲット仮想マシンと同じ物理マシンに属している仮想マシンには、バックアップ・データを展開することができない。
【００５１】
この例では、バックアップ・データの個数は、本発明への制限と解釈すべきではなく、バックアップ・データの個数は、本明細書において制限されない。
【００５２】
この実施形態で提供される仮想マシン展開方法によれば、処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードが取得され、このフラグメント・ノードに対応するデータ量が計算され、フラグメント・ノードのデータ量に従って、ターゲット仮想マシンがこのフラグメント・ノードに割り当てられ、ターゲット仮想マシンおよび第１の仮想マシンが同じ物理マシンに属していないときに、それぞれ、フラグメント・ノードおよびバックアップ・データを、ターゲット仮想マシンおよび第１の仮想マシンに展開する。この実施形態では、仮想マシンがフラグメント・ノードに割り当てられる場合、まずデータをスクランブルすることによってこのフラグメント・ノードのデータ量が制御され、次いで、このデータ量にマッチする仮想マシンが割り当てられて、この仮想マシンが過負荷現象に陥らないようにし、それによって負荷バランシングがより良好に実現する。
【００５３】
実施形態３
図７は、本発明の実施形態３による仮想マシン展開装置の概略構造図である。図７に示すように、仮想マシン展開装置は、スクランブル・モジュール１１、割当てモジュール１２、および展開モジュール１３を含む。
【００５４】
スクランブル・モジュール１１は、処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードを取得するように構成される。
【００５５】
この実施形態では、スクランブル・モジュール１１は、事前設定済みのスクランブル・アルゴリズムに従って処理対象のデータをスクランブルおよび細分化して、フラグメント・ノードを取得する。フラグメント・ノードは、スクランブルされたフラグメント・データである。具体的には、スクランブル・モジュール１１は、処理対象のデータのデータ量の値に従って、スクランブルの後に得られるフラグメントの数をまず設定し、次いで、スクランブル・アルゴリズムに基づいて、この処理対象のデータをスクランブルおよび細分化する。
【００５６】
割当てモジュール１２は、フラグメント・ノードのデータ量に従って、ターゲット仮想マシンをフラグメント・ノードに割り当てるように構成される。
【００５７】
取得されたフラグメント・ノードのデータ量は様々である。フラグメント・ノードが取得された後、各フラグメント・ノードのデータ量が計算される。フラグメント・ノードのデータ量が取得された後、割当てモジュール１２は、ターゲット仮想マシンをフラグメント・ノードに割り当てる。この実施形態では、ターゲット仮想マシンは、フラグメント・ノードに含まれるデータ量を処理する処理能力を有する必要がある。この処理能力は、ＣＰＵ、メモリ、およびディスク性能パラメータのうち少なくとも１つによって表すことができる。
【００５８】
展開モジュール１３は、フラグメント・ノードをターゲット仮想マシンに展開するように構成される。
【００５９】
この実施形態で提供される仮想マシン展開装置は、処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードを取得し、このフラグメント・ノードのデータ量に従って、ターゲット仮想マシンをこのフラグメント・ノードに割り当て、このフラグメント・ノードをターゲット仮想マシンに展開する。この実施形態では、仮想マシンがフラグメント・ノードに割り当てられる場合、まずデータをスクランブルすることによってこのフラグメント・ノードのデータ量が制御され、次いで、このデータ量にマッチする仮想マシンが割り当てられて、この仮想マシンが過負荷現象に陥らないようにし、それによって負荷バランシングがより良好に実現する。
【００６０】
実施形態４
図８は、本発明の実施形態４による仮想マシン展開装置の概略構造図である。図８に示すように、仮想マシン展開装置は、入力モジュール２０、スクランブル・モジュール２１、計算モジュール２２、割当てモジュール２３、展開モジュール２４、バックアップ・モジュール２５、および判定モジュール２６を含む。
【００６１】
入力モジュール２０は、スクランブル・モジュールが処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードを取得する前に、すべての仮想マシンの性能パラメータをマシン・プールに入力するように構成される。
【００６２】
さらに、スクランブル・モジュール２１は、処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードを取得するように構成される。
【００６３】
さらに、計算モジュール２２は、フラグメント・ノードに対応するデータ量を計算するように構成される。
【００６４】
計算モジュール２２は、具体的には、フラグメント・ノードに含まれるエントリの数を取得し、フラグメント・ノード内の１つのデータが占めるビットの数を取得し、エントリの数および１つのデータが占めるビットの数に従ってデータ量を計算するように構成される。
【００６５】
さらに、割当てモジュール２３は、フラグメント・ノードのデータ量に従って、ターゲット仮想マシンをフラグメント・ノードに割り当てるように構成される。
【００６６】
この実施形態は、取得ユニット２３１および選択ユニット２３２を含む割当てモジュール２３の任意選択の構造を実現する。
【００６７】
取得ユニット２３１は、フラグメント・ノードを処理するのに必要となる処理能力を、データ量に従って取得するように構成される。この処理能力は、ＣＰＵ、メモリ、およびディスク性能パラメータのうち少なくとも１つによって表される。
【００６８】
この取得ユニット２３１は、具体的には、事前設定済みの検索機能拡張因子、複合サーチ因子（combined search factor）、およびデータ量に従って計算することによって、フラグメント・ノードに必要となる処理能力を取得するように構成される。この検索機能拡張因子、複合サーチ因子、およびデータ量を乗算して、フラグメント・ノードを処理するのに必要となるディスク・サイズを獲得し、このディスク・サイズに従って、対応するメモリおよびＣＰＵが選択される。
【００６９】
選択ユニット２３２は、性能が処理能力にマッチするターゲット仮想マシンを、フラグメント・ノード用にマシン・プールから選択するように構成される。
【００７０】
さらに、この選択ユニット２３２は、具体的には、ターゲット仮想マシンを、優先的に低構成マシン・プールから高構成マシン・プールへと徐々に選択して、最適構成を実現するように構成される。
【００７１】
さらに、展開モジュール２４は、フラグメント・ノードをターゲット仮想マシンに展開するように構成される。
【００７２】
さらに、バックアップ・モジュール２５は、フラグメント・ノードに対応するデータ量を計算モジュール２２が計算する前に、フラグメント・ノードのバックアップ・データを取得するように構成される。
【００７３】
さらに、割当てモジュール２３は、展開モジュール２４がフラグメント・ノードをターゲット仮想マシンに展開する前に、性能が処理能力にマッチする第１の仮想マシンを、バックアップ・データ用にマシン・プールから選択するようにさらに構成される。
【００７４】
さらに、判定モジュール２６は、ターゲット仮想マシンおよび第１の仮想マシンが、同じ物理マシンに属しているかどうか判定するように構成される。
【００７５】
さらに、割当てモジュール２３は、ターゲット仮想マシンおよび第１の仮想マシンが同じ物理マシンに属していると判定モジュール２６が判定するとき、ターゲット仮想マシンおよび第１の仮想マシンが同じ物理マシンに属さないようになるまで、処理能力にマッチする第１の仮想マシンを、バックアップ・データ用にマシン・プールから再選択するようにさらに構成される。
【００７６】
さらに、展開モジュール２４は、ターゲット仮想マシンおよび第１の仮想マシンが同じ物理マシンに属していないと判定モジュールが判定するとき、バックアップ・データを第１の仮想マシンに展開するようにさらに構成される。
【００７７】
この実施形態で提供される仮想マシン展開装置は、処理対象のデータをスクランブルおよび細分化することによってフラグメント・ノードを取得し、このフラグメント・ノードに対応するデータ量を計算し、フラグメント・ノードのデータ量に従って、ターゲット仮想マシンをこのフラグメント・ノードに割り当て、フラグメント・ノードをバックアップし、このバックアップ・データに第１の仮想マシンを割り当て、ターゲット仮想マシンおよび第１の仮想マシンが同じ物理マシンに属していないときに、それぞれ、フラグメント・ノードおよびバックアップ・データを、ターゲット仮想マシンおよび第１の仮想マシンに展開する。この実施形態では、仮想マシンがフラグメント・ノードに割り当てられる場合、まずデータをスクランブルすることによってこのフラグメント・ノードのデータ量が制御され、次いで、このデータ量にマッチする仮想マシンが割り当てられて、この仮想マシンが過負荷現象に陥らないようにし、それによって負荷バランシングがより良好に実現する。
【００７８】
前述の方法の実施形態における各ステップのすべてまたはその一部は、関連するハードウェアに命令するプログラムによって遂行できることを、当業者には理解することができる。このプログラムは、コンピュータ読取り可能な記憶媒体に記憶してもよい。プログラムが実行されると、方法の実施形態での各ステップが実行される。記憶媒体には、ＲＯＭ、ＲＡＭ、磁気ディスク、または光ディスクなど、データを記憶することのできる様々な媒体が含まれる。
【００７９】
最後に、前述の各実施形態は、単に本発明の技術的解決策を例示するために使用されるものであり、本発明を限定するものではないことに留意されたい。本発明は、前述の各実施形態を参照して詳細に説明してあるが、当業者なら、前述の実施形態に説明してある技術的解決策を修正することができ、または技術的特徴の一部もしくはすべてに同等の置換を実施できることを理解されたい。このような修正または置換は、対応する技術的解決策の本質を、本発明の各実施形態の技術的解決策の範囲から逸脱させるものではない。
【図１】
2019504420.tif 000003
【図２】
2019504420.tif 000004
【図３】
2019504420.tif 000005
【図４】
2019504420.tif 000006
【図５】
2019504420.tif 000007
【図６】
2019504420.tif 000008
【図７】
2019504420.tif 000009
【図８】
2019504420.tif 000010
【国際調査報告】
2019504420.tif 000011
2019504420.tif 000012
2019504420.tif 000013
2019504420.tif 000014