(57)【要約】  本願の目的は、負荷平衡方法及び装置を提供することである。特に、方法は、各サーバ上の各領域のデータ局在率を取得することであって、データ局在率は、領域の合計データに対する、サーバに対応する物理機械上に記憶される領域のローカルデータの比率である、取得することと、各領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定することと、領域が現在位置しているサーバと、領域に対応するターゲットサーバとが異なるサーバである場合、領域に対応するターゲットサーバに領域を移動させることとを含む。従来技術と比較して、本願の解決策では、データ局在率に従って最も高い局在率を有するサーバに各領域が割り当てられる。データクエリ要求が処理されるとき、各領域が現在割り当てられているサーバが相対的に高いデータ局在率を有し、殆どのデータがローカルサーバ内の磁気ディスクから取得され得るため、領域内のデータを遠隔的に読み出す確率が大幅に低減され得、それによって読出性能が向上される。
2018525743.tif 000002
【特許請求の範囲】
【請求項１】
負荷平衡方法であって、
各サーバ上の各領域のデータ局在率を取得することであって、前記データ局在率は、前記領域の合計データに対する、サーバに対応する物理機械上に記憶される前記領域のローカルデータの比率である、取得することと、
各領域の最も高いデータ局在率を有するサーバを前記領域に対応するターゲットサーバとして決定することと、
前記領域が現在位置しているサーバと、前記領域に対応する前記ターゲットサーバとが異なるサーバである場合、前記領域に対応する前記ターゲットサーバに前記領域を移動させることと
を含む、負荷平衡方法。
【請求項２】
各領域の前記最も高いデータ局在率を有するサーバを前記領域に対応するターゲットサーバとして前記決定することは、領域が現在位置しているサーバのデータ局在率と、前記領域の前記最も高いデータ局在率を有するサーバのデータ局在率との差が予め設定された値を上回る場合、前記領域の前記最も高いデータ局在率を有する前記サーバを前記領域に対応するターゲットサーバとして決定することを含む、請求項１に記載の方法。
【請求項３】
各領域の前記最も高いデータ局在率を有するサーバを前記領域に対応するターゲットサーバとして前記決定した後、且つ前記領域に対応する前記ターゲットサーバに前記領域を前記移動させる前に、
各サーバの予想領域負荷量を計算し、及び前記予想領域負荷量に従って高負荷サーバ及び低負荷サーバを決定することであって、前記予想領域負荷量は、前記領域に対応する前記ターゲットサーバに各領域が移動される場合に各サーバ上に存在することになる領域の量である、計算及び決定することと、
領域に対応するターゲットサーバが高負荷サーバであり、且つ前記領域が、前記ターゲットサーバ上に存在することになる全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、前記領域に対応する前記ターゲットサーバを前記低負荷サーバに変更することであって、Ｎは、正の整数である、変更することと
を更に含む、請求項１又は２に記載の方法。
【請求項４】
前記予想領域負荷量に従って高負荷サーバ及び低負荷サーバを前記決定することは、サーバであって、その予想領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その予想領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定することを含む、請求項３に記載の方法。
【請求項５】
Ｎは、前記高負荷サーバの前記予想領域負荷量と全サーバの平均予想領域負荷量との差である、請求項３又は４に記載の方法。
【請求項６】
前記領域に対応する前記ターゲットサーバに前記領域を前記移動させた後、
各サーバの現在の領域負荷量を取得し、及び前記現在の領域負荷量に従って高負荷サーバ及び低負荷サーバを決定することと、
領域が現在位置しているサーバが高負荷サーバであり、且つ前記領域が、前記領域が現在位置している前記サーバ上の全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、前記領域に対応する前記ターゲットサーバを前記低負荷サーバに変更することであって、Ｎは、正の整数である、変更することと、
前記領域が現在位置しているサーバと、前記領域に対応する前記ターゲットサーバとが異なるサーバである場合、前記領域に対応する前記ターゲットサーバに前記領域を移動させることと
を更に含む、請求項１又は２に記載の方法。
【請求項７】
前記現在の領域負荷量に従って高負荷サーバ及び低負荷サーバを前記決定することは、サーバであって、その現在の領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その現在の領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定することを含む、請求項６に記載の方法。
【請求項８】
Ｎは、前記高負荷サーバの前記現在の領域負荷量と全サーバの平均の現在の領域負荷量との差である、請求項６又は７に記載の方法。
【請求項９】
前記領域に対応する前記ターゲットサーバを前記低負荷サーバに前記変更することは、複数の低負荷サーバがある場合、前記複数の低負荷サーバ上の前記領域のデータ局在率に従い、前記領域に対応する前記ターゲットサーバを、前記領域の前記最も高いデータ局在率を有する低負荷サーバに変更することを含む、請求項３〜８の何れか一項に記載の方法。
【請求項１０】
前記領域に対応する前記ターゲットサーバに前記領域を前記移動させることは、予め設定された間隔時間に従って前記領域に対応する前記ターゲットサーバに各領域を逐次的に移動させることを含む、請求項１〜９の何れか一項に記載の方法。
【請求項１１】
負荷平衡装置であって、
各サーバ上の各領域のデータ局在率を取得するように構成される局在率取得機器であって、前記データ局在率は、前記領域の合計データに対する、サーバに対応する物理機械上に記憶される前記領域のローカルデータの比率である、局在率取得機器と、
各領域の最も高いデータ局在率を有するサーバを前記領域に対応するターゲットサーバとして決定するように構成されるターゲット決定機器と、
前記領域が現在位置しているサーバと、前記領域に対応する前記ターゲットサーバとが異なるサーバである場合、前記領域に対応する前記ターゲットサーバに前記領域を移動させるように構成される領域移動機器と
を含む、負荷平衡装置。
【請求項１２】
前記ターゲット決定機器は、領域が現在位置しているサーバのデータ局在率と、前記領域の前記最も高いデータ局在率を有するサーバのデータ局在率との差が予め設定された値を上回る場合、前記領域の前記最も高いデータ局在率を有する前記サーバを前記領域に対応するターゲットサーバとして決定するように構成される、請求項１１に記載の装置。
【請求項１３】
各領域の前記最も高いデータ局在率を有する前記サーバが前記領域に対応する前記ターゲットサーバとして決定された後、各サーバの予想領域負荷量を計算し、及び前記予想領域負荷量に従って高負荷サーバ及び低負荷サーバを決定するように構成される負荷決定機器であって、前記予想領域負荷量は、前記領域に対応する前記ターゲットサーバに各領域が移動される場合に各サーバ上に存在することになる領域の量である、負荷決定機器と、
前記領域に対応する前記ターゲットサーバに前記領域が移動される前に、領域に対応するターゲットサーバが高負荷サーバであり、且つ前記領域が、前記ターゲットサーバ上に存在することになる全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、前記領域に対応する前記ターゲットサーバを前記低負荷サーバに変更するように構成されるターゲット変更機器であって、Ｎは、正の整数である、ターゲット変更機器と
を更に含む、請求項１１又は１２に記載の装置。
【請求項１４】
前記負荷決定機器は、サーバであって、その予想領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その予想領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定するように構成される、請求項１３に記載の装置。
【請求項１５】
Ｎは、前記高負荷サーバの前記予想領域負荷量と全サーバの平均予想領域負荷量との差である、請求項１３又は１４に記載の装置。
【請求項１６】
前記領域に対応する前記ターゲットサーバに前記領域が移動された後、各サーバの現在の領域負荷量を取得し、及び前記現在の領域負荷量に従って高負荷サーバ及び低負荷サーバを決定するように構成される負荷決定機器と、
領域が現在位置しているサーバが高負荷サーバであり、且つ前記領域が、前記領域が現在位置している前記サーバ上の全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、前記領域に対応する前記ターゲットサーバを前記低負荷サーバに変更するように構成されるターゲット変更機器であって、Ｎは、正の整数である、ターゲット変更機器と
を更に含み、前記領域移動機器は、前記ターゲット変更機器が、前記領域に対応する前記ターゲットサーバを前記低負荷サーバに変更した後、前記領域が現在位置しているサーバと、前記領域に対応する前記ターゲットサーバとが異なるサーバである場合、前記領域に対応する前記ターゲットサーバに前記領域を移動させるように更に構成される、請求項１１又は１２に記載の装置。
【請求項１７】
前記負荷決定機器は、サーバであって、その現在の領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その現在の領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定するように構成される、請求項１６に記載の装置。
【請求項１８】
Ｎは、前記高負荷サーバの前記現在の領域負荷量と全サーバの平均の現在の領域負荷量との差である、請求項１６又は１７に記載の装置。
【請求項１９】
複数の低負荷サーバがある場合、前記ターゲット変更機器は、前記複数の低負荷サーバ上の前記領域のデータ局在率に従い、前記領域に対応する前記ターゲットサーバを、前記領域の前記最も高いデータ局在率を有する低負荷サーバに変更するように構成される、請求項１３〜１８の何れか一項に記載の装置。
【請求項２０】
前記領域移動機器は、予め設定された間隔時間に従って前記領域に対応する前記ターゲットサーバに各領域を逐次的に移動させるように構成される、請求項１１〜１９の何れか一項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本願は、コンピュータの分野に関し、具体的には負荷平衡方法及び装置に関する。
【背景技術】
【０００２】
背景技術
分散データ記憶システムでは、辞書式順序に従って１つのデータ表をスライスする。各シートは１つの領域と呼ばれる。これらの領域はクラスタ内のサーバ上に分散される。これらの領域をどのように均一に分散させるか又は動的に調節するかは、システム内の負荷平衡方法によって解決すべき問題である。負荷平衡方法の有効性は、データ記憶の均一性及びサービスの読出及び書込要求の均一性に直接影響する。極端な状況では、平衡に失敗し全ての領域が１つの物理機械に対してスケジュールされる場合、クラスタ全体のサービス機能が１つの物理機械のサービス機能と等しくなり、その結果、クラスタが単一の機械と同じ性能を有する。
【０００３】
既存の分散記憶システムにおける負荷平衡方法では、領域負荷量に基づく平衡が概して使用される。負荷平衡方法の目的は、サーバ上の領域の量を基本的に非常に近くすることである。負荷平衡方法の基本的手法は、最初に全サーバ上の領域負荷量を取得し、各サーバ上の平均領域負荷量を計算し、過度に大きい領域負荷量を有するサーバ上の領域を、過度に少ない領域負荷量を有するサーバに移動させて負荷平衡を実施するものである。システム内の一部の物理機械が再始動された後、領域が再割当される。かかるプロセスにおいて、現行の負荷平衡方法では領域負荷量の要因のみが考慮される。その結果、様々なサーバに割り当てられる同一の確率を領域が有する。この場合、領域内のデータが遠隔的に読み出される確率が大幅に高まる。遠隔的な読出中、遠隔サーバ上のディスクデータにアクセスする必要がある。ローカル読出に比べて遠隔読出は余分なネットワークオーバヘッドを必要とする。従って、読出性能が相対的に低い。
【０００４】
従って、分散記憶システム上で負荷平衡を行うために既存の負荷平衡方法を使用する場合、領域割当後のデータ局在率が高くなく、全システムの相対的に劣った読出性能の原因となる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
発明の概要
本願の目的は、領域のデータ局在率が高くなく、読出性能が相対的に劣る従来技術の問題を解決するための負荷平衡方法及び装置を提供することである。
【課題を解決するための手段】
【０００６】
上記の目的を実現するために、本願は負荷平衡方法を提供し、この方法は、
各サーバ上の各領域のデータ局在率を取得することであって、データ局在率は、領域の合計データに対する、サーバに対応する物理機械上に記憶される領域のローカルデータの比率である、取得することと、
各領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定することと、
領域が現在位置しているサーバと、領域に対応するターゲットサーバとが異なるサーバである場合、領域に対応するターゲットサーバに領域を移動させることと
を含む。
【０００７】
更に、各領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定することは、領域が現在位置しているサーバのデータ局在率と、領域の最も高いデータ局在率を有するサーバのデータ局在率との差が予め設定された値を上回る場合、領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定することを含む。
【０００８】
更に、各領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定した後、且つ領域に対応するターゲットサーバに領域を移動させる前に、この方法は、
各サーバの予想領域負荷量を計算し、及びその予想領域負荷量に従って高負荷サーバ及び低負荷サーバを決定することであって、予想領域負荷量は、領域に対応するターゲットサーバに各領域が移動される場合に各サーバ上に存在することになる領域の量である、計算及び決定することと、
領域に対応するターゲットサーバが高負荷サーバであり、且つ領域が、ターゲットサーバ上に存在することになる全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、領域に対応するターゲットサーバを低負荷サーバに変更することであって、Ｎは、正の整数である、変更することと
を更に含む。
【０００９】
更に、予想領域負荷量に従って高負荷サーバ及び低負荷サーバを決定することは、サーバであって、その予想領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その予想領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定することを含む。
【００１０】
更に、Ｎは、高負荷サーバの予想領域負荷量と全サーバの平均予想領域負荷量との差である。
【００１１】
更に、領域に対応するターゲットサーバに領域を移動させた後、この方法は、
各サーバの現在の領域負荷量を取得し、及びその現在の領域負荷量に従って高負荷サーバ及び低負荷サーバを決定することと、
領域が現在位置しているサーバが高負荷サーバであり、且つ領域が、領域が現在位置しているサーバ上の全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、領域に対応するターゲットサーバを低負荷サーバに変更することであって、Ｎは、正の整数である、変更することと、
領域が現在位置しているサーバと、領域に対応するターゲットサーバとが異なるサーバである場合、領域に対応するターゲットサーバに領域を移動させることと
を更に含む。
【００１２】
更に、現在の領域負荷量に従って高負荷サーバ及び低負荷サーバを決定することは、サーバであって、その現在の領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その現在の領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定することを含む。
【００１３】
更に、Ｎは、高負荷サーバの現在の領域負荷量と全サーバの平均の現在の領域負荷量との差である。
【００１４】
更に、領域に対応するターゲットサーバを低負荷サーバに変更することは、複数の低負荷サーバがある場合、複数の低負荷サーバ上の領域のデータ局在率に従い、領域に対応するターゲットサーバを、領域の最も高いデータ局在率を有する低負荷サーバに変更することを含む。
【００１５】
更に、領域に対応するターゲットサーバに領域を移動させることは、予め設定された間隔時間に従って、領域に対応するターゲットサーバに各領域を逐次的に移動させることを含む。
【００１６】
本願の別の態様に基づき、負荷平衡装置が更に提供される。この装置は、
各サーバ上の各領域のデータ局在率を取得するように構成される局在率取得機器であって、データ局在率は、領域の合計データに対する、サーバに対応する物理機械上に記憶される領域のローカルデータの比率である、局在率取得機器と、
各領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定するように構成されるターゲット決定機器と、
領域が現在位置しているサーバと、領域に対応するターゲットサーバとが異なるサーバである場合、領域に対応するターゲットサーバに領域を移動させるように構成される領域移動機器と
を含む。
【００１７】
更に、ターゲット決定機器は、領域が現在位置しているサーバのデータ局在率と、領域の最も高いデータ局在率を有するサーバのデータ局在率との差が予め設定された値を上回る場合、領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定するように構成される。
【００１８】
更に、この装置は、
各領域の最も高いデータ局在率を有するサーバがその領域に対応するターゲットサーバとして決定された後、各サーバの予想領域負荷量を計算し、及びその予想領域負荷量に従って高負荷サーバ及び低負荷サーバを決定するように構成される負荷決定機器であって、予想領域負荷量は、領域に対応するターゲットサーバに各領域が移動される場合に各サーバ上に存在することになる領域の量である、負荷決定機器と、
領域に対応するターゲットサーバに領域が移動される前に、領域に対応するターゲットサーバが高負荷サーバであり、且つ領域が、ターゲットサーバ上に存在することになる全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、領域に対応するターゲットサーバを低負荷サーバに変更するように構成されるターゲット変更機器であって、Ｎは、正の整数である、ターゲット変更機器と
を更に含む。
【００１９】
更に、負荷決定機器は、サーバであって、その予想領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その予想領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定するように構成される。
【００２０】
更に、Ｎは、高負荷サーバの予想領域負荷量と全サーバの平均予想領域負荷量との差である。
【００２１】
更に、この装置は、
領域に対応するターゲットサーバに領域が移動された後、各サーバの現在の領域負荷量を取得し、及びその現在の領域負荷量に従って高負荷サーバ及び低負荷サーバを決定するように構成される負荷決定機器と、
領域が現在位置しているサーバが高負荷サーバであり、且つ領域が、領域が現在位置しているサーバ上の全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、領域に対応するターゲットサーバを低負荷サーバに変更するように構成されるターゲット変更機器であって、Ｎは、正の整数である、ターゲット変更機器と
を更に含み、領域移動機器は、ターゲット変更機器が、領域に対応するターゲットサーバを低負荷サーバに変更した後、領域が現在位置しているサーバと、領域に対応するターゲットサーバとが異なるサーバである場合、領域に対応するターゲットサーバに領域を移動させるように更に構成される。
【００２２】
更に、負荷決定機器は、サーバであって、その現在の領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その現在の領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定するように構成される。
【００２３】
更に、Ｎは、高負荷サーバの現在の領域負荷量と全サーバの平均の現在の領域負荷量との差である。
【００２４】
更に、複数の低負荷サーバがある場合、ターゲット変更機器は、複数の低負荷サーバ上の領域のデータ局在率に従い、領域に対応するターゲットサーバを、領域の最も高いデータ局在率を有する低負荷サーバに変更するように構成される。
【００２５】
更に、領域移動機器は、予め設定された間隔時間に従って、領域に対応するターゲットサーバに各領域を逐次的に移動させるように構成される。
【００２６】
従来技術と比較して、本願によって提供される技術的解決策では、各サーバ上の領域のデータ局在率が取得され、及びそのデータ局在率に従って最も高い局在率を有するサーバに各領域が割り当てられる。データクエリ要求が処理されるとき、各領域が現在割り当てられているサーバが相対的に高いデータ局在率を有し、殆どのデータがローカルサーバ内の磁気ディスクから取得され得るため、領域内のデータを遠隔的に読み出す確率が大幅に低減され得、それによって読出性能が向上される。加えて、領域負荷量も考慮することによって領域の割当が更に調節され、それにより、特定の状況（例えば、データホットスポット又はシステム拡張）において一部のサーバ上に領域負荷が相対的に集中し得る問題は、読出性能を最適化しながら回避され得る。
【００２７】
図面の簡単な説明
以下の添付図面を参照して非限定的実施形態に関する詳細な説明を読むことにより、本願の他の特徴、目的、及び利点がより明らかになる。
【図面の簡単な説明】
【００２８】
【図１】本願の一実施形態による負荷平衡方法のフローチャートである。
【図２】本願の一実施形態に関与する分散ファイルシステムに基づく分散データ記憶システムの記憶原理の図である。
【図３】本願の一実施形態による好ましい負荷平衡方法のフローチャートである。
【図４】本願の一実施形態による、より好ましい負荷平衡方法のフローチャートである。
【図５】本願の一実施形態による負荷平衡装置の概略的な構造図である。
【図６】本願の一実施形態による好ましい負荷平衡装置の概略的な構造図である。
【図７】本願の一実施形態による、より好ましい負荷平衡装置の概略的な構造図である。
【発明を実施するための形態】
【００２９】
添付図面中の同じ又は同様の参照番号は同じ又は同様の部分を表す。
【００３０】
詳細な説明
以下では、添付図面を参照して本願を更に詳細に説明する。
【００３１】
本願の典型的な構成では、端末、サービスネットワークの装置、及びトラスティが、全て１個又は複数個のプロセッサ（ＣＰＵ）、入力／出力インタフェース、ネットワークインタフェース、及びメモリを含む。
【００３２】
メモリは、コンピュータ可読媒体内の揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ）、及び／又は不揮発性メモリ、例えば読出専用メモリ（ＲＯＭ）又はフラッシュメモリ（フラッシュＲＡＭ）等の形態を含み得る。メモリはコンピュータ可読媒体の一例である。
【００３３】
コンピュータ可読媒体は、不揮発性媒体及び揮発性媒体並びに移動可能媒体及び移動不能媒体を含み、任意の方法又は技術によって情報の記憶を実施することができる。情報は、コンピュータ可読命令、データ構造、プログラムのモジュール、又は他のデータとすることができる。コンピュータ記憶媒体の例は、これだけに限定されないが、相変化メモリ（ＰＲＡＭ）、静的ＲＡＭ（ＳＲＡＭ）、動的ＲＡＭ（ＤＲＡＭ）、別の種類のＲＡＭ、ＲＯＭ、電気的消去プログラム可能ＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ若しくは別のメモリ技術、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）若しくは別の光学記憶域、カセットテープ、磁気テープ、ディスク記憶域若しくは別の磁気記憶装置、又は他の任意の非伝送媒体を含み、計算装置にとってアクセス可能な情報を記憶するように構成され得る。本明細書で定めるように、コンピュータ可読媒体は、非一時的コンピュータ可読媒体（一時的媒体）、例えば変調データ信号又は搬送波を含まない。
【００３４】
図１は、本願の一実施形態による負荷平衡方法を示す。この方法は以下の幾つかのステップを含む。
【００３５】
ステップＳ１０１：各サーバ上の各領域のデータ局在率が取得され、データ局在率は、領域の合計データに対する、サーバに対応する物理機械上に記憶される領域のローカルデータの比率である。
【００３６】
ステップＳ１０２：各領域の最も高いデータ局在率を有するサーバが、その領域に対応するターゲットサーバとして決定される。
【００３７】
ステップＳ１０３：領域が現在位置しているサーバと、領域に対応するターゲットサーバとが異なるサーバである場合、領域に対応するターゲットサーバに領域が移動される。
【００３８】
既存の負荷平衡方法では、領域負荷量に基づく平衡が概して使用される。領域負荷量の要因のみが考慮される。その結果、領域は、再割当中に様々なサーバに割り当てられる同一の確率を有する。従って、領域がこのように同一の確率を有することは、当該領域が位置するサーバ上の領域の相対的に低いデータ局在率を容易に引き起こす。殆どのデータクエリ要求の取得のために、通常、別の物理機械の磁気ディスクに遠隔的にアクセスする必要がある。かかるアクセスが必要であることはシステムの読出性能を大幅に下げる。例えば、固体ドライブ（ＳＳＤ）を使用する物理機械のためのランダム読出要求を全てローカルに読み出す場合、提供可能なＱＰＳ（クエリ／秒）能力は、この場合、３００００回に達する。ランダム読出要求を全て遠隔的に読み出し、ギガビットネットワークアダプタが提供する１００ＭＢ／Ｓの能力が計算に使用される場合、１回のランダム読出が１つの１６ＫＢデータブロックに少なくともアクセスする。この場合、提供可能なＱＰＳ能力は６０００回にのみ達し得る。ＱＰＳのスループットを考慮しない場合、応答遅延の観点から、遠隔読出はローカル読出に比べて少なくとも０．５ｍｓの余分なオーバヘッドを有する。従って、各サーバ上の領域のデータ局在率が取得され、及びそのデータ局在率に従って最も高い局在率を有するサーバに各領域が割り当てられる。データクエリ要求が処理されるとき、各領域が現在割り当てられているサーバが相対的に高いデータ局在率を有し、殆どのデータがローカルサーバ内の磁気ディスクから取得され得る。その結果、領域内のデータを遠隔的に読み出す確率が大幅に低減され得、それによって読出性能が向上される。
【００３９】
分散ファイルシステムに基づく分散データ記憶システム、例えばHadoop分散ファイルシステム（ＨＤＦＳ）に基づくHadoopデータベース（Ｈｂａｓｅ）では、領域は、予め設定された規則に従って１つの論理表をスライスすることによって得られるデータ単位である。領域は共通部分を有さない。全ての領域が１つの完全な論理表を形成する。１つの領域は複数のファイルを含む。１つのファイルは１つ又は複数のデータブロックで形成され、データブロックは物理記憶域の基本単位である。分散ファイルシステムでは、各データブロックが複数の複製を有し、冗長記憶のためにそれらの複数の複製が分散ファイルシステムの複数のサーバに割り当てられる。図２は、分散ファイルシステムに基づく分散データ記憶システムの記憶原理の図である。この分散データ記憶システムは、３つのサーバ、即ち、サーバ１、サーバ２、及びサーバ３を含む。各サーバ上に複数の領域が割り当てられる。例えば、サーバ１上の領域は領域Ａ及び領域Ｂである。各領域は複数のファイルを含む。例えば、領域Ａはファイル１及びファイル２を含む。ファイル１はデータブロック１１及びデータブロック１２を更に含み、ファイル２はデータブロック２１及びデータブロック２２を含む。分散ファイルシステムでは、サーバ１’とサーバ１とが同じ物理機械であり、サーバ２’とサーバ２とが同じ物理機械であり、サーバ３’とサーバ３とが同じ物理機械である。各データブロックは２つの複製を有し、それらの複製は分散ファイルシステムのサーバ上に展開される。データブロック１１の２つの複製がサーバ１’及びサーバ３’上にそれぞれ展開され、データブロック１２の２つの複製がサーバ２’及びサーバ３’上にそれぞれ展開され、データブロック２１の２つの複製がサーバ１’及びサーバ３’上にそれぞれ展開され、データブロック２２の２つの複製がサーバ２’及びサーバ３’上にそれぞれ展開される。ここで見て取れるように、領域Ａのデータ局在率（即ち、各サーバ上での領域Ａのデータ局在率）の分布は、
【数１】
2018525743.tif 000003
であり、AServer1、AServer2、及びAServer3は、サーバ１〜サーバ３上の領域Ａのデータ局在率をそれぞれ表す。Block11、Block12、Block21、及びBlock22は、データブロック１１、データブロック１２、データブロック２１、及びデータブロック２２のサイズをそれぞれ表す。File1及びFile2は、ファイル１及びファイル２のサイズをそれぞれ表す。
【００４０】
ここで、専ら簡潔にするために図示した図２内の様々なサーバ、領域、ファイル、及びデータブロックの量は、実際の応用例での量よりも少ない可能性があることを当業者であれば更に理解すべきである。但し、本発明の明瞭且つ完全な開示に影響を及ぼすことなく、このような省略が問題なく使用される。
【００４１】
概して、１つのファイルの１つのデータブロックの複数の複製は等しい。即ち、複数の複製のための記憶媒体は同じである。例えば、全ての複製がハードディスクドライブ（ＨＤＤ）に記憶されるか、又は全ての複製がＳＳＤ内に記憶される。この場合、データ局在率の計算中、全ての物理機械の記憶媒体上のデータブロックが計算される。しかし、複数の複製のための記憶媒体が不均一である記憶域混在型のシナリオでは、１つのファイルの１つのデータブロックの複数の複製が等しくない。例えば、データブロック１１の２つの複製のうちの一方がＨＤＤ内に記憶され、もう一方がＳＳＤ内に記憶される。ＳＳＤの読出性能はＨＤＤの読出性能を明らかに上回るため、ＳＳＤ内に記憶されたデータブロックのみがデータ局在の計算中に計算される。例えば、データブロック１１の２つの複製に関して、サーバ１’上の複製がＨＤＤ内に記憶され、サーバ３’上のもう一方の複製がＳＳＤ内に記憶される。この場合、サーバ３’内のデータのみがデータ局在率の計算中に計算され、サーバ１上の領域Ａのデータ局在率は、
【数２】
2018525743.tif 000004
に変更される。
【００４２】
ここで、分散データ記憶システム内の中央サーバが負荷平衡方法を実行することができる。中央サーバは、これだけに限定されないが、ネットワークホスト、単一のネットワークサーバ、複数のネットワークサーバの組、又はクラウドコンピューティングに基づくコンピュータセット等の実装形態を含む。ここで、クラウドは、クラウドコンピューティングに基づく多数のホスト又はネットワークサーバで形成される。クラウドコンピューティングは一種の分散コンピューティングであり、疎結合のコンピュータセット群で形成される１つの仮想コンピュータである。中央サーバは、サーバ上の領域のデータ局在率をハートビート報告方式で定期的に集めることができる。
【００４３】
ステップＳ１０１で取得した各サーバ上の各領域のデータ局在率に従い、各領域の最も高いデータ局在率を有するサーバを決定することができる。そのサーバは、対応する領域の好ましいサーバであり、領域の移動先であるターゲットサーバとして使用する。図２に示すシナリオを一例として引き続き使用する。データブロック１１、データブロック１２、データブロック２１、及びデータブロック２２は同じサイズを有すると仮定する。この場合、領域Ａのデータ局在率の分布は下記の通りである。
【数３】
2018525743.tif 000005
【００４４】
ここで、１つの領域移動計画が生成される。領域Ａのターゲットサーバとしてサーバ３が決定される。領域Ａが現在展開されているサーバは、領域Ａのターゲットサーバと同じサーバではないサーバ１であるため、領域移動計画を実行して領域に対応するターゲットサーバ、即ち、サーバ３に領域Ａを移動させる。領域が現在位置しているサーバと、領域のターゲットサーバとが同じサーバである場合、領域移動が不要であるため、それは、領域が現在展開されているサーバが最も高いデータ局在率を既に有することを示す。移動の完了後、サーバ３上の領域Ａのデータ局在率は１００％に達し得る。即ち、任意のデータクエリ要求に対して、要求されたデータを取得するためにサーバ３の物理機械のローカル磁気ディスクに対してローカル読出を行うのみでよい。従って、読出性能が大幅に向上される。
【００４５】
加えて、実際の応用例では、関与するサーバ、領域、ファイル、及びデータブロックの量は、図２に示した量よりも明らかに多い。サーバでは、幾つかの領域のデータ局在率が高い場合、サーバに対応する物理機械上に記憶される他の領域のデータブロックの量は、記憶空間の制約が原因で概して相対的に少なく、その結果、サーバ上の他の領域のデータ局在率は相対的に低い。従って、データ局在率に従って領域移動を実行した後、各サーバ上の領域負荷量は相対的に平衡しており、サーバがほぼ同様の負荷を有するようにする。
【００４６】
領域移動中、分散データ記憶システムに特定の処理負荷がもたらされる。システムの標準動作が過度に多い回数の領域移動の影響を受けるのを回避するために、移動がデータ局在率を僅かにのみ高める場合には移動を行わなくてもよい。特に、各領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定することは、領域が現在位置しているサーバのデータ局在率と、領域の最も高いデータ局在率を有するサーバのデータ局在率との差が予め設定された値を上回る場合、領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定することを含む。予め設定された値は、実際の応用シナリオに従って設定することができ、例えば１０％に設定することができる。即ち、現在のサーバ上の領域のデータ局在率と、到達可能な最も高いデータ局在率との差が１０％を上回る場合にのみ、最も高いデータ局在率を有するサーバをターゲットサーバとして使用する。
【００４７】
一例として領域Ａを使用する。領域Ａが現在展開されているサーバ１上の領域Ａのデータ局在率が７０％であり、サーバ２及びサーバ３上の領域Ａのデータ局在率がそれぞれ３０％及び７５％であると仮定する。この場合、領域Ａに関して最も高いデータ局在率を有するサーバはサーバ３である。しかし、最も高いデータ局在率と、領域Ａが現在位置しているサーバ上のデータ局在率との差は５％に過ぎず、移動後の読出性能の全体的な改善は僅かである。従って、移動を行わなくてもよい。実際の処理プロセスでは、領域Ａのターゲットサーバは、領域Ａが位置しているサーバ（即ち、サーバ１）に設定することができる。サーバ３上の領域のデータ局在率が９０％に達する場合、移動後にデータ局在率を２０％高めることができる。この場合、読出性能が大幅に改善され、従って領域Ａのターゲットサーバとしてサーバ３を使用する。
【００４８】
上記の方法に従って領域移動を実行した後、分散データ記憶システム内の各領域のデータ局在率が調節後に最大値に達し得る。同時に、サーバは相対的に平衡した負荷を概して有し得る。しかし、データホットスポット又はシステム拡張等の特殊な状況では、データが一部のサーバノード上に相対的に集中し得る。この場合、多くの領域が一部のサーバ上にロードされる一方、相対的に少量の領域が他の一部のサーバ上にロードされる。その結果、領域負荷量が平衡しない。このために、本願の一実施形態は、好ましい負荷平衡方法を更に提供する。図１に示す解決策に関連し、この方法の処理手続きが図３に示されており、以下のステップを含む。
【００４９】
ステップＳ１０１：各サーバ上の各領域のデータ局在率が取得され、データ局在率は、領域の合計データに対する、サーバに対応する物理機械上に記憶される領域のローカルデータの比率である。
【００５０】
ステップＳ１０２：各領域の最も高いデータ局在率を有するサーバが、その領域に対応するターゲットサーバとして決定される。
【００５１】
ステップＳ１０３：領域が現在位置しているサーバと、領域に対応するターゲットサーバとが異なるサーバである場合、領域に対応するターゲットサーバに領域が移動される。
【００５２】
ステップＳ１０４：各サーバの現在の領域負荷量が取得され、及びその現在の領域負荷量に従って高負荷サーバ及び低負荷サーバが決定される。
【００５３】
ステップＳ１０５：領域が現在位置しているサーバが高負荷サーバであり、且つ領域が、領域が現在位置しているサーバ上の全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、領域に対応するターゲットサーバが低負荷サーバに変更され、Ｎは、正の整数である。
【００５４】
ステップＳ１０６：領域が現在位置しているサーバと、領域に対応するターゲットサーバとが異なるサーバである場合、領域に対応するターゲットサーバに領域が移動される。
【００５５】
領域のデータ局在率に従って領域移動を実行した後、全サーバの領域負荷量を更に考慮することによって別の調節を行い、それにより、データ局在率のみに従って実行される領域移動に起因し得る不平衡の領域負荷の発生を減らし、データの読出性能を保証しながらサーバの領域負荷量をより平衡した状態に到達させる。
【００５６】
ここで、低負荷サーバ及び高負荷サーバは、領域が展開されるサーバが平均領域負荷量を下回る量及び平均領域負荷量を上回る量を有することをそれぞれ指す。実際の応用例では、平均領域負荷量に従って１つの予め設定された負荷範囲を設定することができ、予め設定された負荷範囲上限値及び下限値に従ってサーバが低負荷サーバか高負荷サーバかを判定する。従って、ステップＳ１０４は、各サーバの現在の領域負荷量を取得し、サーバであって、その現在の領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その現在の領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定することであり得る。例えば、予め設定された負荷範囲上限は平均領域負荷量×（１＋係数）に設定することができ、予め設定された負荷範囲上限は平均領域負荷量×（１＋係数）に設定することができる。この係数は特定の応用シナリオに従って設定することができ、例えば、この実施形態では０．１に設定される。各サーバの取得された現在の領域負荷量による計算により、平均領域負荷量が５０であることが得られる場合、予め設定された負荷範囲上限は５０×（１＋０．１）＝５５であり、予め設定された負荷範囲下限は５０×（１−０．１）＝４５である。即ち、その現在の領域負荷量が５５を上回るサーバを高負荷サーバとして決定し、その現在の領域負荷量が４５を下回るサーバを低負荷サーバとして決定する。
【００５７】
例えば、サーバ３の現在の領域負荷量が５７である場合、サーバ３は高負荷サーバとして決定され、サーバ１の現在の領域負荷量が４０である場合、サーバ１は低負荷サーバとして決定される。領域負荷をより平衡させるために、サーバ３上の最も低いデータ局在率を有する幾つかの領域をサーバ１に移動させることができる。この場合、移動の量は実際の要件に従って決定することができ、１つ又は複数の領域を移動させることができる。最も低いデータ局在率を有する１つの領域のみが移動される場合、サーバ３の領域負荷量は予め設定された負荷範囲まで下げることはできないが、それでもなお負荷を平衡させることができる。好ましい方法では、高負荷サーバから低負荷サーバに移動させる領域の量を平均領域負荷量に従って決定することができる。即ち、ステップＳ１０５において、Ｎは、高負荷サーバの現在の領域負荷量と全サーバの平均の現在の領域負荷量との差である。この例のサーバ３では、サーバ３から移動する必要がある領域の量は７である。即ち、領域が、領域が現在位置しているサーバ上の全領域のうちの相対的に低いデータ局在率を有する７個の領域の１つである場合、その領域に対応するターゲットサーバをサーバ１に変更する。相対的に低いデータ局在率を有する残りの６個の領域でも、そのターゲットサーバを低負荷サーバに同様に変更する。
【００５８】
複数の低負荷サーバがある場合、領域に対応するターゲットサーバを低負荷サーバにランダム割当によって変更することができる。加えて、低負荷サーバ上の領域のデータ局在率に従い、領域に対応するターゲットサーバを、領域の最も高いデータ局在率を有する低負荷サーバに変更する。例えば、サーバ１が高負荷サーバであり、サーバ３、サーバ４、及びサーバ６が全て低負荷サーバである。領域Ｂは、サーバ１上の５２％である最も低いデータ局在率を有する領域である。サーバ３、サーバ４、及びサーバ６上の領域Ｂのデータ局在率はそれぞれ４０％、３３％、及び１７％である。平衡した領域負荷量を確実にするために、領域Ｂは依然として高負荷サーバから低負荷サーバに移動される。ターゲットサーバを選択する間、最適なサーバをデータ局在率に従って依然として選択することができる。例えば、領域Ｂの最適な低負荷サーバはサーバ３である。
【００５９】
この解決策では、上記の例に関して以下の事例が発生し得る。ステップＳ１０１において、領域Ｂが現在位置しているサーバがサーバ６であり、領域Ｂのデータ局在率が１７％である。ステップＳ１０２において、領域Ｂのターゲットサーバがサーバ１であると決定し、領域Ｂのデータ局在率は５２％である。ステップＳ１０３において、領域Ｂに最適なデータ局在率を得させるために、現在設定しているターゲットサーバに領域Ｂを移動させる。しかし、ステップＳ１０４〜ステップＳ１０６で領域負荷量を考慮して、領域Ｂのターゲットサーバをサーバ３に更に変更する必要があり、移動が行われる。このプロセスでは領域Ｂが２回移動される。最終的な結果から分かるように、サーバ６からサーバ３への領域Ｂの移動は、理論上、移動を１回のみ行うことによって実現することができる。従って、上記の解決策におけるＳ１０３の移動は効果的でない場合がある。
【００６０】
起こり得る効果的でない移動を回避するために、本願の一実施形態は、より好ましい負荷平衡方法を更に提供する。図１に示す解決策に関連し、この方法の処理手続きが図４に示されており、以下のステップを含む。
【００６１】
ステップＳ１０１：各サーバ上の各領域のデータ局在率が取得され、データ局在率は、領域の合計データに対する、サーバに対応する物理機械上に記憶される領域のローカルデータの比率である。
【００６２】
ステップＳ１０２：各領域の最も高いデータ局在率を有するサーバが、その領域に対応するターゲットサーバとして決定される。
【００６３】
ステップＳ１０７：各サーバの予想領域負荷量が計算され、及びその予想領域負荷量に従って高負荷サーバ及び低負荷サーバが決定され、予想領域負荷量は、領域に対応するターゲットサーバに各領域が移動される場合に各サーバ上に存在することになる領域の量である。
【００６４】
ステップＳ１０８：領域に対応するターゲットサーバが高負荷サーバであり、且つ領域が、ターゲットサーバ上に存在することになる全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、領域に対応するターゲットサーバが低負荷サーバに変更され、Ｎは、正の整数である。
【００６５】
ステップＳ１０３：領域が現在位置しているサーバと、領域に対応するターゲットサーバとが異なるサーバである場合、領域に対応するターゲットサーバに領域が移動される。
【００６６】
この解決策では、各領域の最も高いデータ局在率を有するサーバが、その領域に対応するターゲットサーバとして決定された後、決定されたターゲットサーバに従って対応する領域が移動された後に各サーバ上に存在することになる領域負荷量をシミュレーション計算によって予想する。領域のターゲットサーバは、予想領域負荷量を使用することによって且つ領域負荷量の平衡も考慮することによって変更され、ここで決定されるターゲットサーバを考慮することによって領域移動が統一された方法で更に行われる。シミュレーション計算に必要なオペレーションコストは、実際の移動に必要なオペレーションコストよりもはるかに少ないため、相対的に低いオペレーションコストを払うことによって非効果的な移動を回避することができ、そのため処理の支出が減り、負荷平衡の効率が改善する。
【００６７】
ここで、高負荷サーバ及び低負荷サーバを決定するために使用する予想領域負荷量は、最初に決定されるターゲットサーバに従って得られる１つの計算値であり、各サーバによって直接取得される実際の値ではない。予想領域負荷量に従って高負荷サーバ及び低負荷サーバを決定する方法を使用し、複数の低負荷サーバがある場合、複数の低負荷サーバのうちの１つをターゲットサーバとして選択する方法は、図３に示した上記の負荷平衡方法と同様であり、簡潔にするためにここではこれ以上説明しない。
【００６８】
特に、ステップＳ１０７で予想領域負荷量に従って高負荷サーバ及び低負荷サーバを決定することは、サーバであって、その予想領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その予想領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定することを含む。
【００６９】
ステップＳ１０８において、Ｎは、高負荷サーバの予想領域負荷量と全サーバの平均予想領域負荷量との差である。領域に対応するターゲットサーバを低負荷サーバに変更することは、複数の低負荷サーバがある場合、複数の低負荷サーバ上の領域のデータ局在率に従い、領域に対応するターゲットサーバを、領域の最も高いデータ局在率を有する低負荷サーバに変更することを特に含む。
【００７０】
更に、この実施形態の任意の負荷平衡方法では、複数の領域の移動中、領域に対応するターゲットサーバに領域を移動させることは、予め設定された間隔時間に従って領域に対応するターゲットサーバに各領域を逐次的に移動させることを特に含む。領域の移動中、分散データ記憶システムの関連設定が変わる場合がある。従って、過度な量の移動を短時間のうちに行う場合、システム内の設定が速く変わり過ぎることがあり、システム内のジッタを引き起こす。この状態を回避するために、各領域の移動中特定の間隔時間（例えば、１００ｍｓ）を設定し、それにより領域移動に起因するジッタを防ぐことができる。
【００７１】
本願の別の態様に基づき、本願の一実施形態は負荷平衡装置を更に提供する。この装置の構造を図５に示す。装置５は、局在率取得機器５１０、ターゲット決定機器５２０、及び領域移動機器５３０を含む。特に、局在率取得機器５１０は、各サーバ上の各領域のデータ局在率を取得するように構成され、データ局在率は、領域の合計データに対する、サーバに対応する物理機械上に記憶される領域のローカルデータの比率である。ターゲット決定機器５２０は、各領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定するように構成される。領域移動機器５３０は、領域が現在位置しているサーバと、領域に対応するターゲットサーバとが異なるサーバである場合、領域に対応するターゲットサーバに領域を移動させるように構成される。
【００７２】
既存の負荷平衡装置では、領域負荷量に基づく平衡が概して使用される。領域負荷量の要因のみが考慮される。その結果、領域が、再割当中に様々なサーバに割り当てられる同一の確率を有する。従って、領域がこのように同一の確率を有することは、領域が位置するサーバ上の領域の相対的に低いデータ局在率を容易に引き起こす。殆どのデータクエリ要求の取得のために、通常、別の物理機械の磁気ディスクに遠隔的にアクセスする必要がある。かかるアクセスが必要であることはシステムの読出性能を大幅に下げる。例えば、固体ドライブ（ＳＳＤ）を使用する物理機械のためのランダム読出要求を全てローカルに読み出す場合、提供可能なＱＰＳ（クエリ／秒）能力は、この場合、３００００回に達する。ランダム読出要求を全て遠隔的に読み出し、ギガビットネットワークアダプタが提供する１００ＭＢ／Ｓの能力が計算に使用される場合、１回のランダム読出が１つの１６ＫＢデータブロックに少なくともアクセスする。この場合、提供可能なＱＰＳ能力は６０００回にのみ達し得る。ＱＰＳのスループットを考慮しない場合、応答遅延の観点から、遠隔読出はローカル読出に比べて少なくとも０．５ｍｓの余分なオーバヘッドを有する。従って、各サーバ上の領域のデータ局在率が取得され、及びそのデータ局在率に従って最も高い局在率を有するサーバに各領域が割り当てられる。データクエリ要求が処理されるとき、各領域が現在割り当てられているサーバが相対的に高いデータ局在率を有し、殆どのデータがローカルサーバ内の磁気ディスクから取得され得る。その結果、領域内のデータを遠隔的に読み出す確率が大幅に低減され得、それによって読出性能が向上される。
【００７３】
分散ファイルシステムに基づく分散データ記憶システム、例えばＨＤＦＳに基づくＨｂａｓｅでは、領域は、予め設定された規則に従って１つの論理表をスライスすることによって得られるデータ単位である。領域は共通部分を有さない。全ての領域が１つの完全な論理表を形成する。１つの領域は複数のファイルを含む。１つのファイルは１つ又は複数のデータブロックで形成され、データブロックは物理記憶域の基本単位である。分散ファイルシステムでは、各データブロックが複数の複製を有し、冗長記憶のためにそれらの複数の複製が分散ファイルシステムの複数のサーバに割り当てられる。図２は、分散ファイルシステムに基づく分散データ記憶システムの記憶原理の図である。この分散データ記憶システムは、３つのサーバ、即ち、サーバ１、サーバ２、及びサーバ３を含む。各サーバ上に複数の領域が割り当てられる。例えば、サーバ１上の領域は領域Ａ及び領域Ｂである。各領域は複数のファイルを含む。例えば、領域Ａはファイル１及びファイル２を含む。ファイル１はデータブロック１１及びデータブロック１２を更に含み、ファイル２はデータブロック２１及びデータブロック２２を含む。分散ファイルシステムでは、サーバ１’とサーバ１とが同じ物理機械であり、サーバ２’とサーバ２とが同じ物理機械であり、サーバ３’とサーバ３とが同じ物理機械である。各データブロックは２つの複製を有し、それらの複製は分散ファイルシステムのサーバ上に展開される。データブロック１１の２つの複製がサーバ１’及びサーバ３’上にそれぞれ展開され、データブロック１２の２つの複製がサーバ２’及びサーバ３’上にそれぞれ展開され、データブロック２１の２つの複製がサーバ１’及びサーバ３’上にそれぞれ展開され、データブロック２２の２つの複製がサーバ２’及びサーバ３’上にそれぞれ展開される。ここで見て取れるように、領域Ａのデータ局在率（即ち、各サーバ上での領域Ａのデータ局在率）の分布は、
【数４】
2018525743.tif 000006
であり、AServer1、AServer2、及びAServer3は、サーバ１〜サーバ３上の領域Ａのデータ局在率をそれぞれ表す。Block11、Block12、Block21、及びBlock22は、データブロック１１、データブロック１２、データブロック２１、及びデータブロック２２のサイズをそれぞれ表す。File1及びFile2は、ファイル１及びファイル２のサイズをそれぞれ表す。
【００７４】
ここで、専ら簡潔にするために図示した図２内の様々なサーバ、領域、ファイル、及びデータブロックの量は、実際の応用例での量よりも少ない可能性があることを当業者であれば更に理解すべきである。但し、本発明の明瞭且つ完全な開示に影響を及ぼすことなく、このような省略が問題なく使用される。
【００７５】
概して、１つのファイルの１つのデータブロックの複数の複製は等しい。即ち、複数の複製のための記憶媒体は同じである。例えば、全ての複製がＨＤＤに記憶されるか、又は全ての複製がＳＳＤ内に記憶される。この場合、データ局在率の計算中、全ての物理機械の記憶媒体上のデータブロックが計算される。しかし、複数の複製のための記憶媒体が不均一である記憶域混在型のシナリオでは、１つのファイルの１つのデータブロックの複数の複製が等しくない。例えば、データブロック１１の２つの複製のうちの一方がＨＤＤ内に記憶され、もう一方がＳＳＤ内に記憶される。ＳＳＤの読出性能はＨＤＤの読出性能を明らかに上回るため、ＳＳＤ内に記憶されたデータブロックのみがデータ局在の計算中に計算される。例えば、データブロック１１の２つの複製に関して、サーバ１’上の複製がＨＤＤ内に記憶され、サーバ３’上のもう一方の複製がＳＳＤ内に記憶される。この場合、サーバ３’内のデータのみがデータ局在率の計算中に計算され、サーバ１上の領域Ａのデータ局在率は、
【数５】
2018525743.tif 000007
に変更される。
【００７６】
ここで、装置５が分散データ記憶システム内の中央サーバであり得る。中央サーバは、これだけに限定されないが、ネットワークホスト、単一のネットワークサーバ、複数のネットワークサーバの組、又はクラウドコンピューティングに基づくコンピュータセット等の実装形態を含む。ここで、クラウドは、クラウドコンピューティングに基づく多数のホスト又はネットワークサーバで形成される。クラウドコンピューティングは一種の分散コンピューティングであり、疎結合のコンピュータセット群で形成される１つの仮想コンピュータである。中央サーバは、サーバ上の領域のデータ局在率をハートビート報告方式で定期的に集めることができる。
【００７７】
局在率取得機器５１０は、各サーバ上の各領域の取得されたデータ局在率に従い、各領域の最も高いデータ局在率を有するサーバを決定することができる。そのサーバは、対応する領域の好ましいサーバであり、領域の移動先であるターゲットサーバとして使用する。図２に示すシナリオを一例として引き続き使用する。データブロック１１、データブロック１２、データブロック２１、及びデータブロック２２は同じサイズを有すると仮定する。この場合、領域Ａのデータ局在率の分布は下記の通りである。
【数６】
2018525743.tif 000008
【００７８】
ここで、１つの領域移動計画が生成される。領域Ａのターゲットサーバとしてサーバ３が決定される。領域Ａが現在展開されているサーバは、領域Ａのターゲットサーバと同じサーバではないサーバ１であるため、領域移動計画を実行して領域に対応するターゲットサーバ、即ち、サーバ３に領域Ａを移動させる。領域が現在位置しているサーバと、領域のターゲットサーバとが同じサーバである場合には領域移動が不要であるため、それは、領域が現在展開されているサーバが最も高いデータ局在率を既に有することを示す。移動の完了後、サーバ３上の領域Ａのデータ局在率は１００％に達し得る。即ち、任意のデータクエリ要求に対して、要求されたデータを取得するためにサーバ３の物理機械のローカル磁気ディスクに対してローカル読出を行うのみでよい。従って、読出性能が大幅に向上される。
【００７９】
加えて、実際の応用例では、関与するサーバ、領域、ファイル、及びデータブロックの量は、図２に示した量よりも明らかに多い。サーバでは、幾つかの領域のデータ局在率が高い場合、サーバに対応する物理機械上に記憶される他の領域のデータブロックの量は、記憶空間の制約が原因で概して相対的に少なく、その結果、サーバ上の他の領域のデータ局在率は相対的に低い。従って、データ局在率に従って領域移動を実行した後、各サーバ上の領域負荷量は相対的に平衡しており、サーバがほぼ同様の負荷を有するようにする。
【００８０】
領域移動中、分散データ記憶システムに特定の処理負荷がもたらされる。システムの標準動作が過度に多い回数の領域移動の影響を受けるのを回避するために、移動がデータ局在率を僅かにのみ高める場合には移動を行わなくてもよい。特に、ターゲット決定機器５２０は、領域が現在位置しているサーバのデータ局在率と、領域の最も高いデータ局在率を有するサーバのデータ局在率との差が予め設定された値を上回る場合、領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定するように構成される。予め設定された値は、実際の応用シナリオに従って設定することができ、例えば１０％に設定することができる。即ち、現在のサーバ上の領域のデータ局在率と、到達可能な最も高いデータ局在率との差が１０％を上回る場合にのみ、最も高いデータ局在率を有するサーバをターゲットサーバとして使用する。
【００８１】
一例として領域Ａを使用する。領域Ａが現在展開されているサーバ１上の領域Ａのデータ局在率が７０％であり、サーバ２及びサーバ３上の領域Ａのデータ局在率がそれぞれ３０％及び７５％であると仮定する。この場合、領域Ａに関して最も高いデータ局在率を有するサーバはサーバ３である。しかし、最も高いデータ局在率と、領域Ａが現在位置しているサーバ上のデータ局在率との差は５％に過ぎず、移動後の読出性能の全体的な改善は僅かである。従って、移動を行わなくてもよい。実際の処理プロセスでは、領域Ａのターゲットサーバは、領域Ａが位置しているサーバ（即ち、サーバ１）に設定することができる。サーバ３上の領域のデータ局在率が９０％に達する場合、移動後にデータ局在率を２０％高めることができる。この場合、読出性能が大幅に改善され、従って領域Ａのターゲットサーバとしてサーバ３を使用する。
【００８２】
上記の装置５が領域移動を行った後、分散データ記憶システム内の各領域のデータ局在率が調節後に最大値に達し得る。同時に、サーバは相対的に平衡した負荷を概して有し得る。しかし、データホットスポット又はシステム拡張等の特殊な状況では、データが一部のサーバノード上に相対的に集中し得る。この場合、多くの領域が一部のサーバ上にロードされる一方、相対的に少量の領域が他の一部のサーバ上にロードされる。その結果、領域負荷量が平衡しない。このために、本願の一実施形態は、好ましい負荷平衡装置を更に提供する。装置５の構造は図６に示し、図５に示した局在率取得機器５１０、ターゲット決定機器５２０、及び領域移動機器５３０に加えて、負荷決定機器５４０、及びターゲット変更機器５５０を更に含む。特に、負荷決定機器５４０は、領域に対応するターゲットサーバに領域を移動させた後、各サーバの現在の領域負荷量を取得し、及びその現在の領域負荷量に従って高負荷サーバ及び低負荷サーバを決定するように構成される。ターゲット変更機器５５０は、領域が現在位置しているサーバが高負荷サーバであり、且つ領域が、領域が現在位置しているサーバ上の全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、領域に対応するターゲットサーバを低負荷サーバに変更するように構成され、Ｎは、正の整数である。領域移動機器５３０は、ターゲット決定機器によって決定されるターゲットサーバに従って領域を移動させるように構成されるだけでなく、ターゲット変更機器が、領域に対応するターゲットサーバを低負荷サーバに変更した後、領域が現在位置しているサーバと、領域に対応するターゲットサーバとが異なるサーバである場合、領域に対応するターゲットサーバに領域を移動させるようにも構成される。ここで、局在率取得機器５１０及びターゲット決定機器５２０は、図５の実施形態における対応する機器の内容とそれぞれ同じであるか又はほぼ同じであることを当業者であれば理解すべきである。簡潔にするために、これらの機器についてここではこれ以上詳細に説明せず、参照により本明細書に含める。
【００８３】
領域のデータ局在率に従って領域移動を実行した後、全サーバの領域負荷量を更に考慮することによって別の調節を行い、それにより、データ局在率のみに従って実行される領域移動に起因し得る不平衡の領域負荷の発生を減らし、データの読出性能を保証しながらサーバの領域負荷量をより平衡した状態に到達させる。
【００８４】
ここで、低負荷サーバ及び高負荷サーバは、領域が展開されるサーバが平均領域負荷量を下回る量及び平均領域負荷量を上回る量を有することをそれぞれ指す。実際の応用例では、平均領域負荷量に従って１つの予め設定された負荷範囲を設定することができ、予め設定された負荷範囲上限値及び下限値に従ってサーバが低負荷サーバか高負荷サーバかを判定する。ここで、高負荷サーバ及び低負荷サーバを決定するとき、負荷決定機器５４０は、サーバであって、その現在の領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その現在の領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定する。例えば、予め設定された負荷範囲上限は平均領域負荷量×（１＋係数）に設定することができ、予め設定された負荷範囲上限は平均領域負荷量×（１＋係数）に設定することができる。この係数は特定の応用シナリオに従って設定することができ、例えば、この実施形態では０．１に設定される。各サーバの取得された現在の領域負荷量による計算により、平均領域負荷量が５０であることが得られる場合、予め設定された負荷範囲上限は５０×（１＋０．１）＝５５であり、予め設定された負荷範囲下限は５０×（１−０．１）＝４５である。即ち、その現在の領域負荷量が５５を上回るサーバを高負荷サーバとして決定し、その現在の領域負荷量が４５を下回るサーバを低負荷サーバとして決定する。
【００８５】
例えば、サーバ３の現在の領域負荷量が５７である場合、サーバ３は高負荷サーバとして決定され、サーバ１の現在の領域負荷量が４０である場合、サーバ１は低負荷サーバとして決定される。領域負荷をより平衡させるために、サーバ３上の最も低いデータ局在率を有する幾つかの領域をサーバ１に移動させることができる。この場合、移動の量は実際の要件に従って決定することができ、１つ又は複数の領域を移動させることができる。最も低いデータ局在率を有する１つの領域のみが移動される場合、サーバ３の領域負荷量は予め設定された負荷範囲まで下げることはできないが、それでもなお負荷を平衡させることができる。好ましい方法では、高負荷サーバから低負荷サーバに移動させる領域の量を平均領域負荷量に従って決定することができる。即ち、ターゲット変更機器５５０が使用するＮは、高負荷サーバの現在の領域負荷量と全サーバの平均の現在の領域負荷量との差である。この例のサーバ３では、サーバ３から移動する必要がある領域の量は７である。即ち、領域が、領域が現在位置しているサーバ上の全領域のうちの相対的に低いデータ局在率を有する７個の領域の１つである場合、その領域に対応するターゲットサーバをサーバ１に変更する。相対的に低いデータ局在率を有する残りの６個の領域でも、そのターゲットサーバを低負荷サーバに同様に変更する。
【００８６】
複数の低負荷サーバがある場合、ターゲット変更機器５５０は、領域に対応するターゲットサーバを低負荷サーバにランダム割当によって変更することができる。加えて、ターゲット変更機器５５０は、複数の低負荷サーバ上の領域のデータ局在率に従い、領域に対応するターゲットサーバを、領域の最も高いデータ局在率を有する低負荷サーバに変更する。例えば、サーバ１が高負荷サーバであり、サーバ３、サーバ４、及びサーバ６が全て低負荷サーバである。領域Ｂは、サーバ１上の５２％である最も低いデータ局在率を有する領域である。サーバ３、サーバ４、及びサーバ６上の領域Ｂのデータ局在率はそれぞれ４０％、３３％、及び１７％である。平衡した領域負荷量を確実にするために、領域Ｂは依然として高負荷サーバから低負荷サーバに移動される。ターゲットサーバを選択する間、最適なサーバをデータ局在率に従って依然として選択することができる。例えば、領域Ｂの最適な低負荷サーバはサーバ３である。
【００８７】
この解決策では、上記の例に関して以下の事例が発生し得る。局在率取得機器５１０が領域のデータ局在率を取得するとき、領域Ｂが現在位置しているサーバがサーバ６であり、領域Ｂのデータ局在率が１７％である。ターゲット決定機器５２０は、局在率取得機器５１０によって取得される領域のデータ局在率に従って領域Ｂのターゲットサーバがサーバ１であると決定し、領域Ｂのデータ局在率は５２％である。この場合、領域Ｂに最適なデータ局在率を得させるために、領域移動機器５３０は、ターゲット決定機器５２０によって決定されるターゲットサーバに従って、現在設定しているターゲットサーバに領域Ｂを移動させる。しかし、その後の処理中、領域負荷量を考慮して、負荷決定機器５４０、ターゲット変更機器５５０、及び領域移動機器５３０は領域Ｂのターゲットサーバをサーバ３に更に変更し、移動を行わなければならない場合がある。このプロセスでは領域Ｂが２回移動される。最終的な結果から分かるように、サーバ６からサーバ３への領域Ｂの移動は、理論上、移動を１回のみ行うことによって実現することができる。従って、上記の解決策における領域移動機器５３０によって最初に行われる領域の移動（即ち、ターゲット決定機器５２０によって決定されるターゲットサーバに従って行われる移動）は効果的でない場合がある。
【００８８】
起こり得る効果的でない移動を回避するために、本願の一実施形態は、より好ましい負荷平衡装置を更に提供する。装置５の構造は図７に示す。装置５は、図５に示した局在率取得機器５１０、ターゲット決定機器５２０、及び領域移動機器５３０に加えて、負荷決定機器５４０’、及びターゲット変更機器５５０’を更に含む。負荷決定機器５４０’は、各領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定した後、各サーバの予想領域負荷量を計算し、その予想領域負荷量に従って高負荷サーバ及び低負荷サーバを決定するように構成され、予想領域負荷量は、領域に対応するターゲットサーバに各領域が移動される場合に各サーバ上に存在することになる領域の量である。ターゲット変更機器５５０’は、領域に対応するターゲットサーバに領域を移動させる前に、領域に対応するターゲットサーバが高負荷サーバであり、且つ領域が、ターゲットサーバ上に存在することになる全領域のうちの相対的に低いデータ局在率を有するＮ個の領域の１つである場合、領域に対応するターゲットサーバを低負荷サーバに変更するように構成され、Ｎは、正の整数である。ここで、局在率取得機器５１０、ターゲット決定機器５２０、及び領域移動機器５３０は、図５の実施形態における対応する機器の内容とそれぞれ同じであるか又はほぼ同じであることを当業者であれば理解すべきである。簡潔にするために、これらの機器についてここではこれ以上詳細に説明せず、参照により本明細書に含める。
【００８９】
この解決策では、各領域の最も高いデータ局在率を有するサーバをその領域に対応するターゲットサーバとして決定した後、決定されたターゲットサーバに従って対応する領域が移動された後に各サーバ上に存在することになる領域負荷量をシミュレーション計算によって予想する。領域のターゲットサーバは、予想領域負荷量を使用することによって且つ領域負荷量の平衡も考慮することによって変更され、ここで決定されるターゲットサーバを考慮することによって領域移動が統一された方法で更に行われる。シミュレーション計算に必要なオペレーションコストは、実際の移動に必要なオペレーションコストよりもはるかに少ないため、相対的に低いオペレーションコストを払うことによって非効果的な移動を回避することができ、そのため処理の支出が減り、負荷平衡の効率が改善する。
【００９０】
ここで、高負荷サーバ及び低負荷サーバを決定するために負荷決定機器５４０’が使用する予想領域負荷量は、最初に決定されるターゲットサーバに従って得られる１つの計算値であり、各サーバによって直接取得される実際の値ではない。負荷決定機器５４０’が予想領域負荷量に従って高負荷サーバ及び低負荷サーバを決定する方法を使用し、複数の低負荷サーバがある場合、ターゲット変更機器５５０’によって複数の低負荷サーバのうちの１つをターゲットサーバとして選択する方法は、図６に示した上記の負荷平衡装置内の負荷決定機器５４０及びターゲット変更機器５５０によって使用される方法と同様である。
【００９１】
特に、負荷決定機器５４０’は、サーバであって、その予想領域負荷量が予め設定された負荷範囲上限を上回るサーバを高負荷サーバとして決定し、及びサーバであって、その予想領域負荷量が予め設定された負荷範囲下限を下回るサーバを低負荷サーバとして決定するように構成される。
【００９２】
ターゲット変更機器５５０’が使用するＮは、高負荷サーバの予想領域負荷量と全サーバの平均予想領域負荷量との差である。複数の低負荷サーバがある場合、ターゲット変更機器５５０’は、複数の低負荷サーバ上の領域のデータ局在率に従い、領域に対応するターゲットサーバを、領域の最も高いデータ局在率を有する低負荷サーバに変更するように構成される。
【００９３】
更に、この実施形態の任意の負荷平衡装置に関して、複数の領域の移動中、領域移動機器５３０は、予め設定された間隔時間に従って領域に対応するターゲットサーバに各領域を逐次的に移動させる。領域の移動中、分散データ記憶システムの関連設定が変わる場合がある。従って、過度な量の移動を短時間のうちに行う場合、システム内の設定が速く変わり過ぎることがあり、システム内のジッタを引き起こす。この状態を回避するために、各領域の移動中特定の間隔時間（例えば、１００ｍｓ）を設定し、それにより領域移動に起因するジッタを防ぐことができる。
【００９４】
結論として、本願によって提供される技術的解決策では、各サーバ上の領域のデータ局在率が取得され、及びそのデータ局在率に従って最も高い局在率を有するサーバに各領域が割り当てられる。データクエリ要求が処理されるとき、各領域が現在割り当てられているサーバが相対的に高いデータ局在率を有し、殆どのデータがローカルサーバ内の磁気ディスクから取得され得るため、領域内のデータを遠隔的に読み出す確率が大幅に低減され得、それによって読出性能が向上される。加えて、領域負荷量を使用することによって領域の割当が更に調節され、それにより、読出性能が改善される場合、特定の状況（例えば、データホットスポット又はシステム拡張）において一部のサーバ上に領域負荷が相対的に集中し得る問題は、読出性能を最適化しながら回避され得る。
【００９５】
本願は、ソフトウェア及び／又はソフトウェアとハードウェアとの組合せによって実装することができ、例えば特定用途向け集積回路（ＡＳＩＣ）、汎用コンピュータ、他の任意の同様のハードウェア装置を使用することによって実装できることに留意すべきである。一実施形態では、本願のソフトウェアプログラムがプロセッサによる実行によって上記のステップ又は機能を実施し得る。同様に、本願の（関係するデータ構造を含む）ソフトウェアプログラムはコンピュータ可読記録媒体、例えばＲＡＭ、磁気ドライブ、光学ドライブ若しくはフロッピディスク又は同様の装置中に記憶することができる。加えて、本願の一部のステップ又は機能は、ハードウェア、例えばステップ又は機能を実行するためにプロセッサと連携する回路を使用することによって実施することができる。
【００９６】
加えて、本願の一部は、コンピュータプログラム製品、例えばコンピュータプログラム命令として適用することができる。コンピュータによって実行されるとき、コンピュータプログラム命令は、コンピュータの動作によって本願による方法及び／又は技術的解決策を呼び出し又は提供することができる。本願の方法を呼び出すプログラム命令は固定記録媒体又は脱着可能記録媒体中に記憶することができ、ブロードキャストによって若しくは別の信号保持媒体内のデータストリームを使用することによって伝送され、且つ／又はプログラム命令に従って稼動するコンピュータ装置のワーキングメモリ内に記憶される。ここで、本願による一実施形態は、ある機器を含む。その機器は、コンピュータプログラム命令を記憶するように構成されるメモリと、プログラム命令を実行するように構成されるプロセッサとを含む。コンピュータプログラム命令がプロセッサによって実行されるとき、機器が本願による上記の複数の実施形態に基づく方法及び／又は技術的解決策を実行するように作動される。
【００９７】
当業者にとって、本願は上記の例示的実施形態の詳細に限定されず、本願の趣旨又は基本的特徴から逸脱することなく他の特定の形式で実装できることが明らかである。従って、あらゆる観点から、実施形態は例示的且つ非限定的と見なすべきである。本願の範囲は、上記の説明ではなく、添付の特許請求の範囲によって定める。従って、特許請求の範囲の均等な要素の意味及び範囲に含まれるあらゆる変更形態が本願に包含されることを意図される。特許請求の範囲内のいかなる参照番号も、関係する請求項を限定するものと解釈すべきではない。加えて、「含む」という用語は、明らかに他のユニット又はステップを排除せず、単数形は複数形を排除しない。機器の請求項に記載する複数のユニット又は機器は、ソフトウェア又はハードウェアを使用することにより１つのユニット又は機器によって代わりに実装することができる。
【図１】
2018525743.tif 000009
【図２】
2018525743.tif 000010
【図３】
2018525743.tif 000011
【図４】
2018525743.tif 000012
【図５】
2018525743.tif 000013
【図６】
2018525743.tif 000014
【図７】
2018525743.tif 000015
【国際調査報告】
2018525743.tif 000016
2018525743.tif 000017
2018525743.tif 000018
2018525743.tif 000019