(57)【要約】      （修正有）【課題】クラウドストレージシステムのストレージ効率を高めるダイナミックマイグレーション方法を提供する。【解決手段】クライアント端末からデータストレージリクエストが送信された後、ディスパッチ評価値の大きさによって順番に少なくとも一つのデータをストレージするデータノードを選択し、データノードの相対負荷値と全部のデータノードの平均負荷値を得て、データノードの相対負荷値が平均負荷値以上であればこのデータノードを重負荷ノードに確定して重負荷ノード集合に加え、そうでなければこのデータノードを軽負荷ノードに確定して軽負荷ノード集合に加え、重負荷ノード集合の各重負荷ノードのデータを軽負荷ノード集合の各軽負荷ノードにマイグレーションする。【選択図】図１
2019121334.tif 000002
【特許請求の範囲】
【請求項１】
データストレージとダイナミックマイグレーション方法であって、クライアント端末でデータストレージリクエストが送信された後、ディスパッチ評価値の大きさによって順番に少なくとも一つがデータをストレージすることに用いるデータノードを選択し、前記データノードの相対負荷値と全部のデータノードの平均負荷値を得て、もし前記データノードの相対負荷値は平均負荷値より以上であれば、この前記データノードを重負荷ノードに確定し降順配列方式によって重負荷ノード集合に加えて、そうでなければ、この前記データノードを軽負荷ノードに確定し昇順配列方式によって軽負荷ノード集合に加えて、前記重負荷ノード集合の前記各重負荷ノードのデータを前記軽負荷ノード集合の前記各軽負荷ノードにマイグレーションし、前記クライアント端末でデータストレージリクエストが送信された後、ディスパッチ評価値の大きさによって順番に少なくとも一つがデータをストレージすることに用いるデータノードを選択し、クライアント端末でデータストレージリクエストが送信された後、クライアント端末で送信されたリクエストのカレントのデータノード以外の少なくとも一つが異なるハウジングに配置されたデータノードを選択し、その他の前記データノードがネットワークトポロジー構造からカレントの前記データノードまでの距離及びその他の前記データノードがカレントにストレージしたデータ副本量を得て、前記ネットワーク距離と前記データ副本量によって、その他の前記データノードのディスパッチ評価値を計算し、前記ディスパッチ評価値によって順番にその他の前記データノードの一つを選択しデータをストレージすることに用いて、その他の前記データノードのディスパッチ評価値は、公式f（dL，d）=AL+（1-A）×dで計算され、但しdは距離係数であり、その他の前記データノードがカレントの前記データノードとのネットワーク距離に反比例し、Lはノード負荷係数であり、その他の前記データノードがカレントにストレージしたデータ副本量に反比例し、Aは平衡因子であり、距離係数dとノード負荷係数Lが評価の中の割合を示し、但しA∈[0,1]であり 、前記ディスパッチ評価値によって、順番にその他の前記データノードの一つを選択しデータをストレージし、前記ディスパッチ評価値が高いから低いまでの順序によって、その他の前記データノードをソートし、データノードキューを形成し、前記データノードキューから首位に配列する前記データノードを選択しデータをストレージすることに用いて、前記重負荷ノード集合の前記各重負荷ノードのデータを前記軽負荷ノード集合の前記各軽負荷ノードにマイグレーションし、前記重負荷ノード集合の前に配列する重負荷ノードを読み取り、前に配列する重負荷ノードの前記データブロックを負荷値降順配列方式によってデータブロックキューに加えて、次に前記データブロックキューの前に配列するデータブロックの負荷値を前記軽負荷ノード集合の前に配列する軽負荷ノードに添加し、もし前に配列する軽負荷ノードの前記相対負荷値は前記平均負荷値より小さいと、前に配列する前記データブロックを前に配列する軽負荷ノードにマイグレーションし、前に配列する前記データブロックをデータブロックキューから削除し、そうでなけれ���、続き前記データブロックキューの前に配列する前記データブロックを読み取るステップを実行し、前に配列する重負荷ノードの前記相対負荷値は前記平均負荷値より小さい或いは前に配列する軽負荷ノードの前記相対負荷値は前記平均負荷値より以上までであれば、対応的に前記重負荷ノード集合或いは前記軽負荷ノード集合から削除し、前記重負荷ノード集合と前記軽負荷ノード集合は空きかどうかを判断し、そうでなければ、続きに前記重負荷ノード集合の前に配列する重負荷ノードを読み取るステップを実行し、前記データブロックキューの前に配列するデータブロックの負荷値を前記軽負荷ノード集合の前に配列する軽負荷ノードに添加し、前記データブロックキューの前に配列するデータブロックを読み取り、もし前に配列する前記データブロックは可読状態であれば、前に配列する前記データブロックの負荷値を前記軽負荷ノード集合の前に配列する軽負荷ノードに添加し、そうでなければ続き前記データブロックキューの次のデータブロックを読み取ることを特徴とするデータストレージとダイナミックマイグレーション方法。
【請求項２】
データストレージとダイナミックマイグレーション装置であって、選択ユニットはクライアント端末でデータストレージリクエストが送信された後、ディスパッチ評価値の大きさによって順番に少なくとも一つがデータをストレージすることに用いるデータノードを選択することに用いて、アクセスユニットは前記データノードの相対負荷値と全部のデータノードの平均負荷値を得ることに用いて、確定ユニットはもし前記データノードの相対負荷値は前記平均負荷値より以上であれば、この前記データノードを重負荷ノードに確定し降順配列方式によって重負荷ノード集合に加えて、そうでなければ、この前記データノードを軽負荷ノードに確定し昇順配列方式によって軽負荷ノード集合に加えることに用いて、マイグレーションユニットは前記重負荷ノード集合の中の前記各重負荷ノードのデータを前記軽負荷ノード集合の中の前記各軽負荷ノードにマイグレーションすることに用いて、前記選択ユニットは、クライアント端末でデータストレージリクエストが送信された後、クライアント端末で送信されたリクエストのカレントのデータノード以外の少なくとも一つが異なるハウジングに配置されたデータノードを選択し、その他の前記データノードがネットワークトポロジー構造からカレントの前記データノードまでの距離及びその他の前記データノードがカレントにストレージしたデータ副本量を得て、前記ネットワーク距離と前記データ副本量によってその他の前記データノードのディスパッチ評価値を計算し、前記ディスパッチ評価値によって順番にその他の前記データノードの一つを選択しデータをストレージすることに用いて、前記マイグレーションユニットは、前記重負荷ノード集合の前に配列する重負荷ノードを読み取り、前に配列する前記重負荷ノードのデータブロックを負荷値降順配列方式によってデータブロックキューに加えて、次に順番に前記データブロックキューの前に配列するデータブロックの負荷値を前記軽負荷ノード集合の前に配列する軽負荷ノードに添加し、もし前に配列する軽負荷ノードの前記相対負荷値は前記平均負荷値より小さいと、前に配列する前記データブロックを前に配列する前記軽負荷ノードにマイグレーションし、前に配列する前記データブロックを前記データブロックキューから削除し、そうでなければ、続き前記データブロックキューの前に配列するデータブロックを読み取るステップを実行し、前に配列する重負荷ノードの前記相対負荷値は前記平均負荷値より小さい或いは前に配列する軽負荷ノードの相対負荷値は平均負荷値より以上までであれば、対応的に前記重負荷ノード集合或いは前記軽負荷ノード集合から削除し、前記重負荷ノード集合と前記軽負荷ノード集合は空きかどうかを判断し、そうでなければ、続きに前記重負荷ノード集合の前に配列する重負荷ノードを読み取るステップを実行することを特徴とするデータストレージとダイナミックマイグレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータストレージ技術分野に関し、具体的にはデータストレージとダイナミックマイグレーション方法及びデータストレージとダイナミックマイグレーション装置に関する。
【背景技術】
【０００２】
インターネットの高速発展につれて、現在の社会が発生するデータの量が急速に増えている。多くのインターネットの情報データは高周波の小さいファイルの形式で表現され、一般的なユーザーの情報ストレージアクセスの中に小さいファイルに対するストレージアクセスの操作が比較的に多い。クラウドストレージシステムの中に、非常に多いデータストレージ、高性能、高拡張性で、しかし小さいファイルの量はある程度に達した後、非常に多い小さいファイルをストレージすることはデータノードに巨大なメモリスペースの圧力をもたらして、非常に多い小さいファイルに対する頻繁かつ繰り返しのアクセスもデータノードに性能と負荷分散の影響がある。クラウドストレージシステムの中に、小さいファイルをストレージする時にもっと合理的な置く方式を使って、データをマイグレーションする時に合理的なダイナミックマイグレーションを選択することを通じて、ノードの負荷がバランスを取る時の実行効率をアップし、ノードハードウェア資源の消耗を減少し、クラウドストレージシステムのストレージ効率を高めることと帯域幅の圧力を緩めることに重要な現実的な意義がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】中国特許出願公開第102355461号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明はデータストレージとダイナミックマイグレーション方法と装置を提供し、現有の技術において非常に多い小さいファイルをストレージとデータマイグレーションする時に大きいメモリスペース圧力をもたらすことと、アクセスする時に性能と負荷バランス方面に影響があることを解決する。
【課題を解決するための手段】
【０００５】
本発明に係るデータストレージとダイナミックマイグレーション方法は以下を含む。
【０００６】
クライアント端末でデータストレージリクエストが送信された後、ディスパッチ評価値の大きさによって順番に少なくとも一つがデータをストレージすることに用いるデータノードを選択する。
【０００７】
前記データノードの相対負荷値と全部のデータノードの平均負荷値を得る。
【０００８】
もし前記データノードの相対負荷値は前記平均負荷値より以上であれば、この前記データノードを重負荷ノードに確定し降順配列方式によって重負荷ノード集合に加える。そうでなければ、この前記データノードを軽負荷ノードに確定し昇順配列方式によって軽負荷ノード集合に加える。
【０００９】
前記重負荷ノード集合の前記各重負荷ノードのデータを前記軽負荷ノード集合の前記各軽負荷ノードにマイグレーションする。
【００１０】
第二側面では本発明に係るデータストレージとダイナミックマイグレーション装置は以下を含む。
【００１１】
選択ユニットはクライアント端末でデータストレージリクエストが送信された後、ディスパッチ評価値の大きさによって順番に少なくとも一つがデータをストレージすることに用いるデータノードを選択することに用いる。
【００１２】
アクセスユニットは前記データノードの相対負荷値と全部のデータノードの平均負荷値を得ることに用いる。
【００１３】
確定ユニットはもし前記データノードの相対負荷値は前記平均負荷値より以上で、この前記データノードを重負荷ノードに確定し降順配列方式によって重負荷ノード集合に加える。そうでなければ、この前記データノードを軽負荷ノードに確定し昇順配列方式によって軽負荷ノード集合に加えることに用いる。
【００１４】
マイグレーションユニットは前記重負荷ノード集合の中の前記各重負荷ノードのデータを前記軽負荷ノード集合の中の前記各軽負荷ノードにマイグレーションすることに用いる。
【００１５】
本発明はデータストレージとダイナミックマイグレーション方法と装置を提供し、ディスパッチ評価値によってデータストレージノードを選択する根拠として、小さいファイルをストレージする時にもっと合理的な置く方式を持たせて、非常に多い小さいファイルがデータノードに対するメモリスペースの圧力を緩和し、その同時に、各データノードの相対負荷値と全部のデータノードの平均負荷値によって、各データノードの負荷にダイナミックな調整を行って、負荷が大きいデータノードのデータを負荷が少ないデータノードにダイナミックにマイグレーションし、これによりクラウドストレージシステムの各データノードの負荷をもっとバランスさせる。
【００１６】
本発明はストレージする時にもっと合理的な置く方式を使って、データをマイグレーションする時に合理的なダイナミックマイグレーションを選択することを通じて、ノードの負荷がバランスを取る時の実行効率をアップし、ノードハードウェア資源の消耗を減少し、クラウドストレージシステムのストレージ効率を高めることと帯域幅の圧力を緩めることに重要な現実的な意義がある。
【発明の効果】
【００１７】
本発明はストレージする時にもっと合理的な置く方式を使って、データをマイグレーションする時に合理的なダイナミックマイグレーションを選択することを通じて、ノードの負荷がバランスを取る時の実行効率をアップし、ノードハードウェア資源の消耗を減少し、クラウドストレージシステムのストレージ効率を高めることと帯域幅の圧力を緩めることに重要な現実的な意義がある。
【図面の簡単な説明】
【００１８】
本発明の実施例の中の技術方案をもっとはっきりと説明するため、下記に実施例また既存の技術の説明の中に使用する必要がある図面に簡単な紹介を行って、一目でわかることは下記の説明の中の図面はただ本発明のいくつかの実施例で、本分野の当業者にとって、創造的な労働を払わないことを前提に、これらの図面に基づいてそのほかの図面を得ることができる。
【００１９】
【図１】図１は本発明に係るデータストレージとダイナミックマイグレーション方法のプロセス概略図である。
【図２】図２は本発明に係るデータストレージとダイナミックマイグレーション装置の構造概略図である。
【発明を実施するための形態】
【００２０】
本技術分野の技術者に本発明をもっとよく理解させるため、下記に本発明の実施例の図面を交え本発明実施例の中の技術方案をはっきりと完全に説明する。説明した実施例はただ本発明の一部分の実施例だけで、全部の実施例ではないである。本発明の中の実施例に基づいて、本分野の当業者は創造的な労働を払わないことを前提に得た全部のその他の実施例は本発明の保護範囲に属する。
【００２１】
図１を参照し、本発明に係るデータのダイナミックマイグレーション方法は以下を含む。
【００２２】
101クライアント端末でデータストレージリクエストが送信された後、ディスパッチ評価値の大きさによって順番に少なくとも一つがデータをストレージすることに用いるデータノードを選択する。
【００２３】
好ましくは実施可能の方式の中にステップ101は以下の具体的なステップに基づいて実現できる。
【００２４】
1011クライアント端末でデータストレージリクエストが送信された後、クライアント端末で送信されたリクエストのカレントのデータノード以外の少なくとも一つが異なるハウジングに配置されたデータノードを選択する。
【００２５】
このステップの中に、クラウドストレージシステムの中にクライアント端末でデータストレージリクエストが送信された後、このリクエストをアクセプトするデータノードはランダムに一定の数量のその他の異なるハウジングに配置されたデータノードを選択する。
【００２６】
選択したデータノードの数は一般的にクラウドストレージシステムの大きさとリクエストにストレージするデータ量によって決めて、本発明の実施例はデータノードが選択する数量と選択する方式を限定しないである。
【００２７】
1012、その他のデータノードがネットワークトポロジー構造からカレントの前記データノードまでの距離及びその他の前記データノードがカレントにストレージしたデータ副本量を得る。
【００２８】
このステップの中に、一定の数量のその他のデータノードを選択した後、それぞれにネットワークトポロジー構造からカレントの前記データノードまでの距離及びその他の前記データノードがカレントにストレージしたデータ副本量を得る。
【００２９】
1013、ネットワーク距離とデータ副本量によって、その他のデータノードのディスパッチ評価値を計算する。
【００３０】
このステップの中に、ネットワークトポロジー構造からカレントの前記データノードまでの距離及びその他の前記データノードがカレントにストレージしたデータ副本量によって、各々のその他のデータノードのディスパッチ評価値を確定する。このディスパッチ評価値はカレントのデータノードがその他のデータノードとのネットワーク距離及びその他のデータノードのデータ負荷の二つの要素を総合したので、評価はもっと客観的である。
【００３１】
具体的にはその他のデータノードのディスパッチ評価値を計算する公式は以下となる。
【００３２】
f（dL，d）=AL+（1-A）×d
【００３３】
但し、dは距離係数で、その他のデータノードがカレントのデータノードとのネットワーク距離に反比例し、Lはノード負荷係数で、その他のデータノードがカレントにストレージしたデータ副本量に反比例し、Aは平衡因子で、距離係数dとノード負荷係数Lが評価の中の割合を示し、但しA∈[0,1]である。
【００３４】
1014、ディスパッチ評価値によって、順番にその他のデータノードの一つを選択しデータをストレージすることに用いる。
【００３５】
このステップの中に、上記のステップに計算した各々のその他のデータノードのディスパッチ評価値によって、データストレージのノードを選択する。
【００３６】
このディスパッチ評価値をデータストレージのノードを選択する根拠として、その中に一つの最適な遠隔ノードを選択しデータ副本を置く。
【００３７】
具体的には実施可能の方式の中にステップ1014は以下の具体的なステップに基づいて実現できる。
【００３８】
10141、ディスパッチ評価値が高いから低いまでの順序によって、その他のデータノードをソートし、データノードキューを形成する。
【００３９】
10142、データノードキューから首位に配列するデータノードを選択しデータをストレージすることに用いる。
【００４０】
高いから低いまでの順序によって各々のその他のデータノードをソートし、最後に首位に配列するその他のデータノードを選択しデータをストレージするノードに用いる。こうすれば、非常に多い小さいファイルがデータノードにもたらすメモリスペースの圧力を緩和でき、データ保存の負荷バランスと良好なデータ転送性を実現できる。
【００４１】
102、データノードの相対負荷値と全部のデータノードの平均負荷値を得る。
【００４２】
このステップの中に、システムが一時期に運行した後、小さいファイルに対する頻繁なアクセスはデータノードの負荷がバランスを取れない情況を引き起こし、だから各々のデータノードの負荷にバランス操作を行う必要があり、つまり負荷が比較的に大きいデータノードのデータを負荷が比較的に少ないデータノードにダイナミックマイグレーションする。
【００４３】
まずクラウドストレージシステムの任意の一つのデータノードの相対負荷値を計算し、各データノードの相対負荷値によって全部のデータノードの平均負荷値を計算する。
【００４４】
103、もしデータノードの相対負荷値は平均負荷値より以上であれば、このデータノードを重負荷ノードに確定し降順配列方式によって重負荷ノード集合に加える。そうでなければ、このデータノードを軽負荷ノードに確定し昇順配列方式によって軽負荷ノード集合に加える。
【００４５】
このステップに各データノードの相対負荷値と平均負荷値の大きさを判断し、もしデータノードの相対負荷値は平均負荷値より以上であれば、このデータノードを重負荷ノードに確定し降順配列方式によって重負荷ノード集合に加える。もしデータノードの相対負荷値は平均負荷値より少ないと、このデータノードを軽負荷ノードに確定し昇順配列方式によって軽負荷ノード集合に加える。
【００４６】
104、重負荷ノード集合の各重負荷ノードのデータを軽負荷ノード集合の各軽負荷ノードにマイグレーションする。
【００４７】
このステップに上記のステップによって区分された重負荷ノード集合と軽負荷ノード集合は重負荷ノード集合の中の負荷を軽負荷ノード集合にマイグレーションすることができ、クラウドストレージシステムの負荷をもっとバランスさせる。
【００４８】
好ましくは実施可能の方式の中にステップ104は以下の具体的なステップに基づいて実現できる。
【００４９】
1041、重負荷ノード集合の前に配列する重負荷ノードを読み取り、前に配列する重負荷ノードのデータブロックを負荷値降順配列方式によってデータブロックキューに加えて、次に順番にデータブロックキューの前に配列するデータブロックの負荷値を軽負荷ノード集合の前に配列する軽負荷ノードに添加する。
【００５０】
このステップの中に、順番に重負荷ノード集合の前に配列する重負荷ノードを読み取り、この重負荷ノードのデータブロックを抽出し、各自の負荷値の大きさによって、これらのデータブロックを降順配列方式によってデータブロックキューに加える。
【００５１】
順番にこのデータブロックキューの前に配列するデータブロックを読み取り、このデータブロックの負荷値を軽負荷ノード集合の前に配列する軽負荷ノードに添加する。
【００５２】
データブロックキューから前に配列するデータブロックを読み取る時、それが可読状態にあるかどうかを判断する必要があり、可読状態こそデータブロックをデータをマイグレーションできる。
【００５３】
好ましくは実施可能の方式の中に、データブロックキューの前に配列するデータブロックの負荷値を軽負荷ノード集合の前に配列する軽負荷ノードに添加することは以下の具体的なステップに基づいて実現できる。
【００５４】
a、データブロックキューの前に配列するデータブロックを読み取る。
【００５５】
b、もし前に配列するデータブロックは可読状態であれば、前に配列するデータブロックの負荷値を軽負荷ノード集合の前に配列する軽負荷ノードに添加する。そうでなければ続きデータブロックキューの次のデータブロックを読み取る。
【００５６】
1042、前に配列する軽負荷ノードの相対負荷値は平均負荷値より小さいと、前に配列するデータブロックを前に配列する軽負荷ノードにマイグレーションし、前に配列するデータブロックをデータブロックキューから削除する。そうでなければ、続きデータブロックキューの前に配列するデータブロックを読み取るステップを実行し、前に配列する重負荷ノードの相対負荷値は平均負荷値より小さい或いは前に配列する軽負荷ノードの相対負荷値は平均負荷値より以上までで、対応的に重負荷ノード集合或いは軽負荷ノード集合から削除する。
【００５７】
このステップの中にデータブロックキューの前に配列するデータブロックの負荷値を軽負荷ノード集合の前に配列する軽負荷ノードに添加した後、まずに前に配列する軽負荷ノードの相対負荷値と平均負荷値の大きさを判断する。
【００５８】
もし前に配列する軽負荷ノードの相対負荷値は平均負荷値より少ないと、前に配列するデータブロックを前に配列する軽負荷ノードにマイグレーションし、前に配列するデータブロックをデータブロックキューから削除する。もし前に配列する軽負荷ノードの相対負荷値は平均負荷値より以上であれば、続きデータブロックキューの次のデータブロックを読み取って、このデータブロックがマイグレーションする条件を満足するかどうかを判断し、前に配列する重負荷ノードの相対負荷値は平均負荷値より小さい或いは前に配列する軽負荷ノードの相対負荷値は平均負荷値より以上までで、この時に前に配列する重負荷ノードの負荷をマイグレーションする必要がない或いは前に配列する軽負荷ノードの負荷はもうマイグレーションする範囲を超えて、その他の重負荷ノードの負荷を受け取れないことを説明する。
【００５９】
前に配列する重負荷ノードと前に配列する軽負荷ノードをマイグレーションする過程が終わった後、この重負荷ノードを重負荷ノード集合から削除し、或いはこの軽負荷ノードを軽負荷ノード集合から削除し、その負荷はバランスでダイナミックマイグレーションする必要がないことを表示し、順番に二つの集合のその他のノードに対して続きダイナミックマイグレーションする。
【００６０】
1043、重負荷ノード集合と軽負荷ノード集合は空きかどうかを判断し、そうでなければ、続きに重負荷ノード集合の前に配列する重負荷ノードを読み取るステップを実行する。
【００６１】
このステップの中に、絶えずに二つの集合の中のノードを削除した後、重負荷ノード集合或いは軽負荷ノード集合の中に一つの集合が空きかどうかを判断する。もしその中に任意の一つの集合が空きであれば、全部のダイナミックマイグレーション過程が完成したことを説明する。もし二つの集合が空きではないと、続きに重負荷ノード集合の重負荷ノードを読み取り、その負荷を軽負荷ノード集合の軽負荷ノードにマイグレーションする。
【００６２】
図２を参照し、本発明に係るデータストレージとダイナミックマイグレーション装置を以下を含む。
【００６３】
選択ユニット21はクライアント端末でデータストレージリクエストが送信された後、ディスパッチ評価値の大きさによって順番に少なくとも一つがデータをストレージすることに用いるデータノードを選択することに用いる。
【００６４】
アクセスユニット22は前記データノードの相対負荷値と全部のデータノードの平均負荷値を得ることに用いる。
【００６５】
確定ユニット23はもし前記データノードの相対負荷値は前記平均負荷値より以上で、この前記データノードを重負荷ノードに確定し降順配列方式によって重負荷ノード集合に加える。そうでなければ、この前記データノードを軽負荷ノードに確定し昇順配列方式によって軽負荷ノード集合に加えることに用いる。
【００６６】
マイグレーションユニット24は前記重負荷ノード集合の中の前記各重負荷ノードのデータを前記軽負荷ノード集合の中の前記各軽負荷ノードにマイグレーションすることに用いる。
【００６７】
好ましくは選択ユニット21は具体的に以下に用いる。
【００６８】
クライアント端末でデータストレージリクエストが送信された後、クライアント端末で送信されたリクエストのカレントのデータノード以外の少なくとも一つが異なるハウジングに配置されたデータノードを選択する。
【００６９】
その他のデータノードがネットワークトポロジー構造からカレントのデータノードまでの距離及びその他のデータノードがカレントにストレージしたデータ副本量を得る。
【００７０】
ネットワーク距離とデータ副本量によって、その他のデータノードのディスパッチ評価値を計算する。
【００７１】
ディスパッチ評価値によって、順番にその他の前記データノードの一つを選択しデータをストレージすることに用いる。
【００７２】
好ましくはその他のデータノードのディスパッチ評価値を計算する公式は以下となる。
【００７３】
f（dL，d）=AL+（1-A）×d
【００７４】
但し、dは距離係数で、その他のデータノードがカレントのデータノードとのネットワーク距離に反比例し、Lはノード負荷係数で、その他のデータノードがカレントにストレージしたデータ副本量に反比例し、Aは平衡因子で、距離係数dとノード負荷係数Lが評価の中の割合を示し、但しA∈[0,1]である。
【００７５】
好ましくは選択ユニット21はまた具体的に以下に用いる。
【００７６】
ディスパッチ評価値が高いから低いまでの順序によって、その他のデータノードをソートし、データノードキューを形成する。
【００７７】
データノードキューから首位に配列するデータノードを選択しデータをストレージすることに用いる。
【００７８】
好ましいことマイグレーションユニット24は具体的に以下に用いる。
【００７９】
重負荷ノード集合の前に配列する重負荷ノードを読み取り、前に配列する重負荷ノードのデータブロックを負荷値降順配列方式によってデータブロックキューに加えて、次に順番にデータブロックキューの前に配列するデータブロックの負荷値を軽負荷ノード集合の前に配列する軽負荷ノードに添加する。
【００８０】
もし前に配列する軽負荷ノードの相対負荷値は平均負荷値より小さいと、前に配列するデータブロックを前に配列する軽負荷ノードにマイグレーションし、前に配列するデータブロックをデータブロックキューから削除する。そうでなければ、続きデータブロックキューの前に配列するデータブロックを読み取るステップを実行し、前に配列する重負荷ノードの相対負荷値は平均負荷値より小さい或いは前に配列する軽負荷ノードの相対負荷値は平均負荷値より以上までで、対応的に重負荷ノード集合或いは軽負荷ノード集合から削除する。
【００８１】
重負荷ノード集合と軽負荷ノード集合は空きかどうかを判断し、そうでなければ、続きに重負荷ノード集合の前に配列する重負荷ノードを読み取るステップを実行する。
【００８２】
好ましくはマイグレーションユニット24はまた具体的に以下に用いる。
【００８３】
データブロックキューの前に配列するデータブロックを読み取る。
【００８４】
もし前に配列するデータブロックは可読状態であれば、前に配列するデータブロックの負荷値を軽負荷ノード集合の前に配列する軽負荷ノードに添加し、そうでなければ、続きデータブロックキューの次のデータブロックを読み取る。
【００８５】
説明することが必要なのは、本発明に係るデータストレージ装置は上記の実施例が述べたデータストレージ方法と同じ技術構想に属し、その具体的な実施過程は上記の実施例の中の方法ステップに対する説明を参照でき、ここでは省略する。
【００８６】
本発明に係るデータストレージとダイナミックマイグレーション方法と装置はディスパッチ評価値によってデータストレージノードを選択する根拠として、小さいファイルをストレージする時にもっと合理的な置く方式を持たせて、非常に多い小さいファイルがデータノードに対するメモリスペースの圧力を緩和し、その同時に、各データノードの相対負荷値と全部のデータノードの平均負荷値によって、各データノードの負荷にダイナミックな調整を行って、負荷が大きいデータノードのデータを負荷が少ないデータノードにダイナミックにマイグレーションし、これによりクラウドストレージシステムの各データノードの負荷をもっとバランスさせる。
【００８７】
本発明の実施例はストレージする時にもっと合理的な置く方式を使って、データをマイグレーションする時に合理的なダイナミックマイグレーションを選択することを通じて、ノードの負荷がバランスを取る時の実行効率をアップし、ノードハードウェア資源の消耗を減少し、クラウドストレージシステムのストレージ効率を高めることと帯域幅の圧力を緩めることに重要な現実的な意義がある。
【００８８】
本発明の上記の実施例の中に、各実施例の説明にそれぞれ偏重があり、もしある実施例に詳しく説明する部分がなければ、その他の実施例の関連する説明を参照できる。
【００８９】
以上に述べたのはただ本発明のより良い実施例で、本発明を限定することに使わない。本発明の意義と原則のもとで行う全ての修正、同等の入れ替えと改善などは本発明の保護範囲に含まれる。
【図１】
2019121334.tif 000003
【図２】
2019121334.tif 000004
【手続補正書】
【提出日】平成31年1月9日(2019.1.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
データ記憶とダイナミックマイグレーション装置により実現され、ステップＳ1〜Ｓ4を含み、
前記ステップS1は、クライアント端末でデータ記憶リクエストが送信された後、ディスパッチ評価値の大きさによって順番に少なくとも一つがデータを記憶することに用いるデータノードを選択する；
前記ステップS2は、前記データノードの相対負荷値と全部のデータノードの平均負荷値を得る；
前記ステップS3は、もし前記データノードの相対負荷値は平均負荷値より以上であれば、この前記データノードを重負荷ノードに確定し降順配列方式によって重負荷ノード集合に加えて、そうでなければ、この前記データノードを軽負荷ノードに確定し昇順配列方式によって軽負荷ノード集合に加える；
前記ステップS4は、前記重負荷ノード集合の前記各重負荷ノードのデータを前記軽負荷ノード集合の前記各軽負荷ノードにマイグレーションする；
更に、前記クライアント端末でデータ記憶リクエストが送信された後、ディスパッチ評価値の大きさによって順番に少なくとも一つがデータを記憶することに用いるデータノードを選択する前記ステップS1は、具体的には、ステップＳ11〜Ｓ14を含み、
前記ステップＳ11は、クライアント端末でデータ記憶リクエストが送信された後、クライアント端末で送信されたリクエストの現在のデータノード以外の少なくとも一つが異なるハウジングに配置されたデータノードを選択する；
前記ステップＳ12は、前記その他のデータノードがネットワークトポロジー構造から現在の前記データノードまでのネットワーク距離及び前記その他のデータノードが記憶しているデータコピー量を得る；
前記ステップＳ13は、前記ネットワーク距離と前記データコピー量によって、前記その他のデータノードのディスパッチ評価値を計算する；
前記ステップＳ14は、前記ディスパッチ評価値によって、順番に前記その他のデータノードの一つを選択し、クライアントから送信されたデータを記憶することに用いる；
前記その他のデータノードのディスパッチ評価値の計算式は、
f（dL，d）=AL+（1-A）×dであり、
但しdは距離係数であり、前記その他のデータノードから現在の前記データノードまでのネットワーク距離に逆比例する；Lはノード負荷係数で、前記その他のデータノードが記憶しているデータコピー量を反比する；Aは平衡因子であり、距離係数ｄとノード負荷係数Lとの評価での比重を指示し、その中にA∈[0,1]である；
前記前記ディスパッチ評価値によって、順番に前記その他のデータノードの一つを選択し、クラインアントによる送信されたデータを記憶する前記ステップS14は、具体的にはステップＳ141〜Ｓ142を含み、
前記ステップＳ141は、前記ディスパッチ評価値の高い順に、前記その他のデータノードをソートし、データノードキューを形成する；
前記ステップＳ142は、前記データノードキューから首位に配列する前記データノードを選択しデータを記憶することに用いる；
前記前記重負荷ノード集合の前記各重負荷ノードのデータを前記軽負荷ノード集合の前記各軽負荷ノードにマイグレーションする前記ステップＳ4は、具体的にはステップＳ41〜Ｓ43を含み、
前記ステップＳ41は、前記重負荷ノード集合の前に配列する重負荷ノードを読み取り、前に配列する重負荷ノードのデータブロックを負荷値降順配列方式によってデータブロックキューに加えて、次に前記データブロックキューの前に配列するデータブロックの相対負荷値を前記軽負荷ノード集合の前に配列する軽負荷ノードに添加する；
前記ステップＳ42は、もし前に配列する軽負荷ノードの前記相対負荷値は前記平均負荷値より小さいと、前に配列する前記データブロックを前に配列する軽負荷ノードにマイグレーションし、前に配列する前記データブロックをデータブロックキューから削除し、そうでなければ、継続して前記データブロックキューの前に配列する前記データブロックを読み取るステップを実行し、前に配列する重負荷ノードの前記相対負荷値は前記平均負荷値より小さい又は前に配列する軽負荷ノードの前記相対負荷値は前記平均負荷値以上になると、前記重負荷ノード集合又は前記軽負荷ノード集合から前記データブロックキューのうち前に配列するデータブロックを削除する；
前記ステップＳ43は、前記重負荷ノード集合と前記軽負荷ノード集合は空きかどうかを判断し、そうでなければ、継続して前記重負荷ノード集合の前に配列する重負荷ノードを読み取るステップを実行する；
前記前記データブロックキューの前に配列するデータブロックの相対負荷値を前記軽負荷ノード集合の前に配列する軽負荷ノードに添加する前記ステップＳ41は、具体的にはステップＳ411〜Ｓ412を含み、
前記ステップＳ411は、前記データブロックキューの前に配列するデータブロックを読み取る；
前記ステップＳ412は、もし前に配列する前記データブロックは可読状態（データブロックに障害が発生していない状態）であれば、前に配列する前記データブロックの相対負荷値を前記軽負荷ノード集合の前に配列する軽負荷ノードに添加し、そうでなければ継続して前記データブロックキューの次のデータブロックを読み取るであることを特徴とするデータ記憶とダイナミックマイグレーション方法。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】
選択ユニット、アクセスユニット、確定ユニットとマイグレーションユニットを含み、
前記選択ユニットは、クライアント端末でデータ記憶リクエストが送信された後、ディスパッチ評価値の大きさによって順番に少なくとも一つがデータを記憶することに用いるデータノードを選択する；
前記アクセスユニットは、前記データノードの相対負荷値と全部のデータノードの平均負荷値を得る；
前記確定ユニットは、もし前記データノードの相対負荷値は前記平均負荷値以上である場合、この前記データノードを重負荷ノードに確定し降順配列方式によって重負荷ノード集合に加える；もし前記データノードの相対負荷値は前記平均負荷値以上ではない場合、この前記データノードを軽負荷ノードに確定し昇順配列方式によって軽負荷ノード集合に加える；
前記マイグレーションユニットは、前記重負荷ノード集合の中の前記各重負荷ノードのデータを前記軽負荷ノード集合の中の前記各軽負荷ノードにマイグレーションする；
前記選択ユニットは、具体的には、
クライアント端末でデータ記憶リクエストが送信された後、クライアント端末で送信されたリクエストの現在のデータノード以外の少なくとも一つが異なるハウジングに配置されたデータノードを選択し、
前記その他のデータノードがネットワークトポロジー構造から現在の前記データノードまでのネットワーク距離及び前記その他のデータノードが現在に記憶したデータコピー量を得て、
前記ネットワーク距離と前記データコピー量によって、前記その他のデータノードのディスパッチ評価値を計算し、
前記その他のデータノードのディスパッチ評価値を計算する計算式は以下のように：
f（dL，d）=AL+（1-A）×d、
その中に、dは距離係数であり、前記その他のデータノードから現在の前記データノードまでのネットワーク距離に逆比例する；Lはノード負荷係数で、前記その他のデータノードが記憶しているデータコピー量を反比する；Aは平衡因子であり、距離係数ｄとノード負荷係数Lとの評価での比重を指示し、その中にA∈[0,1]である；
前記ディスパッチ評価値によって、順番に前記その他のデータノードの一つを選択し、クライアントから送信されたデータを記憶することに用い、
前記マイグレーションユニットは具体的には、
前記重負荷ノード集合の前に配列する重負荷ノードを読み取り、前に配列する前記重負荷ノードのデータブロックを負荷値降順配列方式によってデータブロックキューに加えて、次に順番に前記データブロックキューの前に配列するデータブロックの相対負荷値を前記軽負荷ノード集合の前に配列する軽負荷ノードに添加し、
もし前に配列する軽負荷ノードの前記相対負荷値は前記平均負荷値より小さいと、前に配列する前記データブロックを前に配列する前記軽負荷ノードにマイグレーションし、前に配列する前記データブロックを前記データブロックキューから削除する。そうでなければ、継続して前記データブロックキューの前に配列するデータブロックを読み取るステップを実行し、前に配列する重負荷ノードの前記相対負荷値は前記平均負荷値より小さい又は前に配列する軽負荷ノードの相対負荷値は平均負荷値以上になると、前記重負荷ノード集合又は前記軽負荷ノード集合から前記データブロックキューのうち前に配列するデータブロックを削除し、
前記重負荷ノード集合と前記軽負荷ノード集合は空きかどうかを判断し、空きではない場合、継続して前記重負荷ノード集合の前に配列する重負荷ノードを読み取るステップを実行することに用いられることを特徴とするデータ記憶とダイナミックマイグレーション装置。