(57)【要約】  本発明はデータ・ストレージ方法、管理サーバ、ストレージ設備及びシステムに関する。そのうち，データ・ストレージ方法は、データをストレージする全部ｎ個の設備によりデータ・プールを構成するステップと、ストレージが必要なデータが存在する場合、データ・プール内の全部設備からｍ個の設備をポーリング選択して１グループにして、前記データをそれぞれと当該選定グループ内のｍ個の設備にストレージし、そのうち、ｍは１より大きく且つｎより小さいとするステップとを含む。本発明に係る各実施形態は、あるノードの失敗が他ノードに負荷増加と不安定の影響を与え、ノードごとの利用率と予測性が低い等従来のデータ・ストレージ方式の問題点を解決する。よって、あるノードが失敗しても、設備負荷を均等に調整して高い安定性を保持でき、ノードのリソース利用率及び予測性を向上させることを実現するようになる。【選択図】図３
2011505617.tif 000002
【特許請求の範囲】
【請求項１】
データ・ストレージ方法であって、
データをストレージする全てのｎ個の設備によりデータ・プールを構成するステップと、
ストレージが必要なデータが存在する場合、データ・プール内の全部設備からｍ個の設備をポーリング選択して1グループにし、前記データをそれぞれと当該選定グループ内のｍ個の設備にストレージし、そのうち、ｍは１より大きく且つｎより小さいであるステップと、
を含むことを特徴とするデータ・ストレージ方法。
【請求項２】
前記データ・プールに全部設備を管理する管理サーバを設置し、当該管理サーバによりポーリング選択操作を行うステップと、
をさらに含むことを特徴とする請求項１記載のデータ・ストレージ方法。
【請求項３】
前記データ・プール内の全部設備からｍ個の設備をポーリング選択して1グループにすることは、
前記管理サーバはＣｎｍ原理により前記データ・プールからｍ個の設備をポーリング選択して１グループのストレージ設備にするステップ、
を含むことを特徴とする請求項２記載のデータ・ストレージ方法。
【請求項４】
新しい設備が前記データ・プールに加入する際、元データ・プール内の全部データ・ストレージ設備に対して負荷測定を行うステップと、
前記元データ・プールにおいて負荷が予定値を超えた設備は少なくとも1個あることを検出した場合、負荷が予定値を超えた設備にストレージされた一部のデータを前記新しい設備に遷移するステップと、 
を含むことを特徴とする請求項１〜３の何れかに記載のデータ・ストレージ方法。
【請求項５】
前記データ・プール内の全部設備からｍ個の設備をポーリング選択して1グループにし、前記データをそれぞれと当該選定グループ内のｍ個の設備にストレージする操作は、
前記データに対応するデータ挿入要請を受信した設備は、前記データ挿入要請の送信元は前記データ・プールの外部であることを検出した場合、前記データをストレージし、前記データ・プール内の他設備からｍ−１個の設備をポーリング選択し、前記データをそれぞれと当該選定されたｍ−１個の設備にストレージするステップ、
を含むことを特徴とする請求項１記載のデータ・ストレージ方法。
【請求項６】
前記データ・プール内の他設備からｍ−１個の設備をポーリング選択することは、
Ｃｎ−１ｍ−１原理により前記データ・プール内の他設備からｍ−１個の設備をポーリング選択するステップ、
を含むことを特徴とする請求項５記載のデータ・ストレージ方法。
【請求項７】
前記データ・プールに新しい設備が加入された場合、元データ・プール内の全部データ・ストレージ設備に対して負荷測定を行うステップと、
前記元データ・プールにおいて、負荷が予定値を超えた設備が少なくとも一つあることを検出した場合、負荷が予定値を超えた設備にストレージされた一部のデータを前記新しい設備に遷移するステップと、
を含むことを特徴とする請求項５または６記載のデータ・ストレージ方法。
【請求項８】
管理サーバであって、
ストレージが必要なデータの存否を判断する判断モジュールと、
前記判断モジュールと接続され、ストレージが必要なデータが存在する場合、データをストレージする全てのｎ個の設備より構成されたデータ・プールから、ｍ個の設備をポーリング選択し、1グループにして、前記データをそれぞれと前記ｍ個の設備に送信し、そのうち、ｍは１より大きく且つｎより小さいであるリソース割当モジュールと、
前記リソース割当モジュールと接続され、前記データ・プール内の全部設備及び設備リソースに対して管理する管理モジュールと、
を含むことを特徴とする管理サーバ。
【請求項９】
前記判断モジュールは、
データ挿入要請メッセージを受信した際、リソース割当モジュールをトリガーするデータ挿入サブモジュールと、
前記データ挿入サブモジュールと接続され、データ挿入要請及び対応するストレージ待ちデータを受信する受信サブモジュールと、
を含むことを特徴とする請求項８記載の管理サーバ。
【請求項１０】
前記リソース割当モジュールは、
前記データ・プール内の全設備数ｎ及びポーリング選択する設備数ｍをストレージするストレージサブモジュールと、
前記ストレージサブモジュールと接続され、Ｃｎｍ原理によりｍ個の設備をポーリング選択し、１グループにするポーリング計算サブモジュールと、
前記ポーリング計算サブモジュールと接続され、ストレージが必要なデータをそれぞれと前記ｍ個の設備に送信する送信サブモジュールと、
を含むことを特徴とする請求項８または９記載の管理サーバ。
【請求項１１】
前記管理モジュールは、
前記データ・プール内の全部設備を監視し、前記データ・プール内のある設備から削除要請を受信した場合及び他のある新しい設備が当該データ・プールに対する加入要請を受信した場合の少なくとも一方の場合に、前記データ・プール内の管理する設備リソースを更新し、更新された後の全設備数を前記リソース割当モジュールにおけるストレージサブモジュールに送信する監視サブモジュールと、
前記監視サブモジュールと接続され、他の新しい設備からの当該データ・プールに対する加入要請を受信した際に元データ・プール内の全部設備に対して負荷検索要請情報を送信し、全部設備より返答された負荷情報に対して分析する分析サブモジュールと、
前記分析サブモジュールと接続され、前記元データ・プールにおいて負荷が予定値を超えた設備が少なくとも1個存在する場合、負荷が予定値を超えた設備にストレージされた一部のデータを前記新しい設備に遷移する実行サブモジュールと、
を含むことを特徴とする請求項１０記載の管理サーバ。
【請求項１２】
データ・ストレージ・システムであって、
請求項８記載の管理サーバと、
複数のデータ・ストレージ設備と、
を含み、
前記管理サーバは全てのデータ・ストレージ設備と接続され、集中型の管理方式により前記設備に対して管理することを特徴とするデータ・ストレージ・システム。
【請求項１３】
前記データ・ストレージ設備は、
前記管理サーバより送信された挿入データを受信するデータ挿入モジュールと、
前記データ挿入モジュールと接続され、挿入されたデータをストレージし，設備の負荷量を計算するストレージモジュールと、
前記ストレージモジュールと接続され、設備がデータ・プールより削除され、または設備が前記データ・プールに加入する際に、前記管理サーバに対して削除または加入要請を送信し、前記データ・プールに加入した後、前記管理サーバと相互接続を保持し、前記管理サーバより送信された設備負荷検索の要請情報を受信した後、現在の設備負荷量情報を返答する測定モジュールと、
を含むことを特徴とする請求項１２記載のデータ・ストレージ・システム。
【請求項１４】
ストレージ設備であって、
データ挿入要請に対して分析する分析モジュールと、
前記分析モジュールと接続され、前記データ挿入要請はデータ・プールに始めて受信されたものである場合、データ挿入要請に対応するデータをストレージし、前記データ・プールにおける他の設備からｍ−１個の設備をポーリング選択し、前記データをそれぞれと当該選定されたｍ−１個の設備に送信し、そのうち、ｍは１より大きく且つ前記データ・プール内の全設備数より小さい自然数であり、挿入されるデータは前記データ・プール内部の他設備より転送されたものである場合、前記データをストレージのみ行うリソース割当モジュールと、
前記リソース割当モジュールと接続され、全部ストレージ設備より構成された前記データ・プール内の各設備及び前記データ・プール全体のリソース情報に対して管理する管理モジュールと、
を含むことを特徴とするストレージ設備。
【請求項１５】
前記分析モジュールは、
データ挿入要請メッセージを受信した際、前記データ挿入要請は前記データ・プールに始めて受信されたものであるか、或いは前記データ・プール内の他設備より転送されたものであるかを分析し、リソース割当モジュールをトリガーするデータ挿入分析サブモジュールと、
データ挿入サブモジュールと接続され、データ挿入要請を受信する受信サブモジュールと、
を含むことを特徴とする請求項１４記載のストレージ設備。
【請求項１６】
前記リソース割当モジュールは、
前記データ・プール内の全設備数ｎ、ポーリング選択する設備数ｍ及び挿入されたデータをストレージするストレージサブモジュールと、
前記ストレージサブモジュールと接続され、前記データ挿入要請は前記データ・プール外部から送信されたものである場合、Ｃｎ−１ｍ−１原理により前記データ・プールから本設備以外のｍ−１個の設備をポーリング選択するポーリング計算サブモジュールと、
前記ポーリング計算サブモジュールと接続され、前記データをそれぞれと前記ｍ−１個の設備に送信する送信サブモジュールと、
を含むことを特徴とする請求項１４または１５記載のストレージ設備。
【請求項１７】
前記管理モジュールは、
前記データ・プール内の他の全ての設備を監視し、前記データ・プール内の他設備からの削除要請を受信した場合及び他のある新しい設備が当該データ・プールに対する加入要請を受信した場合の少なくとも一方の場合に、前記管理するリソースを更新し、更新された後の前記データ・プール内の全設備数を前記ストレージサブモジュールに送信する監視サブモジュールと、
前記監視サブモジュールと接続され、データ・プール外部のある新しい設備からの加入要請を受信した際、他の設備に対して前記新しい設備からの加入要請を転送し、元データ・プール内の全部設備の負荷に対して分析する分析サブモジュールと、
前記分析サブモジュールと接続され、前記元データ・プールにおいて、負荷が予定値を超えた設備は１つ以上存在する場合、負荷が予定値を超えた設備にストレージされた一部のデータを前記新しい設備に遷移する実行サブモジュールと、
を含むことを特徴とする請求項１６記載のストレージ設備。
【請求項１８】
前記監視サブモジュールは、 
前記分析サブモジュールと接続され、前記データ・プール内の他設備に対してデータ検索を行う分散型ハッシュテーブル検索サブモジュールと、
前記分析サブモジュールと接続され、前記データ・プール内の他設備に対してデータ挿入を行う分散型ハッシュテーブル挿入サブモジュールと、
前記分析サブモジュールと接続され、前記データ・プール内の他設備に対してデータ削除を行う分散型ハッシュテーブル削除サブモジュールと
を含むことを特徴とする請求項１７記載のストレージ設備。
【請求項１９】
データ・ストレージ・システムであって、
請求項１４記載のストレージ設備を含み、そのうち，複数の前記ストレージ設備はデータ・プールを構成することを特徴とするデータ・ストレージ・システム。
【請求項２０】
何れかの前記ストレージ設備のリソース割当モジュールは他のストレージ設備の分析モジュールと接続され、何れかの前記ストレージ設備の管理モジュールは他のストレージ設備の管理モジュールと相互に接続されることを特徴とする請求項１９記載のデータ・ストレージ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信技術領域におけるデータサービス技術に関し、特にデータ・ストレージ方法、管理サーバ、ストレージ設備及びシステムに関わっている。
【背景技術】
【０００２】
通信技術領域において、ユーザーのデータをストレージする必要があり、例えば、移動通信領域において、大量のユーザー加入情報、サービス属性等に対してストレージする。従来の技術はユーザーデータをストレージする際、主にクラスター（ＣＬＵＳＴＥＲと略称する）方式を採用する。従来のストレージ・システムは、若干のクラスターに分けられ、クラスターごとに２つまたは複数の設備を設置して、ユーザーデータをストレージする各設備は当該クラスター内の一つのノード（ＮＯＤＥと略称する）と称され、各クラスター内における各ノードは同様なユーザーデータを保有し、異なるクラスターは異なるユーザーデータを保管する。
【０００３】
クラスター方式を採用してユーザーデータをストレージ管理を行う従来技術は、図１に示される。図１は従来のデータ・ストレージ・システムの構造イメージを示す図であり、図１の示すように、ストレージ・システムは全部で第一クラスターａ、第二クラスターｂ及び第三クラスターｃという３つのクラスターを備える。図１におけるクラスター毎ごとにバックエンド（Ｂａｃk Ｅｎｄ、以下はＢＥと略称する）と呼ばれるそれぞれと２つのストレージ設備を持ち有し、バックエンド（Ｂａｃk Ｅｎｄ、以下はＢＥと略称する）と呼ばれ、各ＢＥは新しいユーザーデータを受信した際、当該データを自動的に保存すると同時に、当該クラスター内の他のノードにストレージする。そのため、各クラスター内の全部ＢＥは同じデータをストレージする。図１の示すように、第一クラスターａは第一ＢＥと第二ＢＥより構成され、第一ＢＥと第二ＢＥは両者ともユーザー１１〜１５とユーザー２１〜２５のデータをストレージする。第二クラスターｂは第三ＢＥと第四ＢＥより構成され、第三ＢＥと第四ＢＥは両者ともユーザー３１〜３５とユーザー４１〜４５のデータをストレージする。第二クラスターｂは第三ＢＥと第四ＢＥより構成され、第三ＢＥと第四ＢＥは両者ともユーザー３１〜３５とユーザー４１〜４５のデータをストレージし、する。第三クラスターｃは第五ＢＥと第六ＢＥより構成し、第五ＢＥと第六ＢＥは両者ともユーザー５１〜５５とユーザー６１〜６５のデータをストレージする。
【０００４】
従来のストレージ方式において、あるノードが失敗した場合、当該ノードの所属クラスター内の他のノード、即ち、同一クラスターに所属したバックエンド設備により、ユーザーサービスの正常使用を保証でき、ある程度でユーザーデータを紛失しないことを保証できる。しかし、従来のストレージ方式には、あるクラスター内の１つのバックエンド設備（また、ノードと称する）が失敗（Ｆａｉｌと略称する）後、当該ノードの全部負荷はクラスター内の残存ノードで負担されるようになってしまうという欠陥が依然として存在する。例えば、アクセストラフィック（ＴＲＡＦＦＩＣと略称する）は完全に残存ノードで負担されるようになってしまうと、残存ノードの負荷は増大しやすくなる。そのため、従来のストレージ方式は設備の不安定を起こしやすく、深刻な場合、ノードの過負荷や動作不能を引き起こす可能性もある。
【０００５】
図１を例とし、正常の場合は、各クラスター内の各ＢＥのＣＰＵ負荷が４０%と仮想し、第一クラスター内の第一ＢＥが失敗した後、当該ＢＥへのトラフィックは完全に第二ＢＥにより負担されるようになり、表一に示すように、第二ＢＥの負荷は瞬間に８０％に昇り、ある程度で第二ＢＥの安定性を低下させた。
【表１】
2011505617.tif 000003
【０００６】
表一でわかるように、従来のストレージ方式はストレージ・システムの不安定性を引き起こしやすく、また、発明者は本発明の実現過程で、従来のストレージ方式は複数ノード（即ち、図１における各ＢＥ）が失敗した際、実際に損失されたユーザーデータ量を予測できないことを見出した。例えば、Ｎ/２個のクラスターを備え、各クラスターはそれぞれとデータをストレージする２個のノードを持ち、全部でＮ個のノードを所有するストレージ・システムにおいて、Ｍ（Ｍ<Ｎ）個のノードが失敗した場合のデータ損失量は以下のようになっている。
１）  最悪の場合：Ｍ個のノードはペアになって失敗した場合、Ｍ/２整数個のクラスター内のユーザーデータは全て紛失され回復できなくなり、損失されたユーザーデータが全部ユーザーデータに占めた比例はＭ/Ｎである。
２）  最善の場合：失敗したＭ個のノードは異なるクラスターに所属し、且つＭはＮ/２より小さい場合、失敗ノードがサービングするユーザーは、同一クラスター内のもう一つのノードによりサービスを正常に利用できるため、データ損失は発生していない。
３）  通常の場合：損失されたデータは上述１と２の間にある。
【０００７】
上述データ損失量を計算する３種の場合で分かるように、従来のユーザー・データ・ストレージ方式は予測性が劣り、複数ノードが失敗した際にデータ損失量を的確に予測・制御できなければ、ユーザーデータの紛失を起こし、ユーザーのサービス利用に支障を来たしようになる。例を挙げると、接続不可、クレーム量の増加等の問題を起こしてしまう。
【０００８】
上述のように、従来のデータ・ストレージ方式において、あるノードが失敗した後、当該クラスター内の残存ノードに当該失敗ノードの負荷を負担させるしかできないため、失敗ノードが生じたクラスター内の残存ノードに対して、負荷の増大、設備の不安定、リソース利用率が低い等の問題を起こしやすくなる。深刻の場合、ノードの過負荷、動作不能をもたらす可能性もあり、また、従来のデータ・ストレージ方式は、実際のデータ損失量に対する予測性が低いため、クレームユーザー数の予測不能を起こす恐れがある。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
従来技術に係るクラスター方式は、データをストレージする際、失敗ノードは他ノードの負荷増加と不安定を起こし、従来のデータ・ストレージ方式においてノードごとの利用率及び予測性も低かった。本発明の目的は上記従来技術の問題点を解消し、失敗ノードが生じても高い安定性を保持でき、ノード（ストレージ設備）のリソース利用率及び予測性を向上させるデータ・ストレージ方法、管理サーバ、ストレージ設備及びシステムを提供することにある。
【００１０】
上述目的を実現するため、本発明の第1の態様により、データ・ストレージ方法を提供した。
【００１１】
本発明の実施形態に係るデータ・ストレージ方法は、データをストレージする全てのｎ個の設備によりデータ・プールを構成し、ストレージが必要なデータがある場合、データ・プール内の全部設備からｍ個の設備をポーリング選択して1グループにし、データをそれぞれと当該選定グループ内のｍ個の設備に保存し、そのうち、ｍは１より大きく且つｎより小さいである、ことを含む。
【００１２】
好ましくは、データ・プールに全部設備を管理する管理サーバを設置することができ、当該管理サーバによりポーリング選択操作を行う。
【００１３】
そのうち、データ・プール内の全部設備からｍ個の設備をポーリング選択して1グループにすることは、管理サーバはＣnm原理により、データ・プールからｍ個の設備をポーリング選択して1グループのストレージ設備にする、ことを含んでも良い。
【００１４】
好ましくは、データ・プール内の全部設備からｍ個の設備をポーリング選択して1グループにして、データをそれぞれと当該選定グループ内のｍ個の設備にストレージする操作は、前記データに対応するデータ挿入要請を受信する設備は、前記データ挿入要請は前記データ・プールの外部から送信されたことを検出できた場合、受信データをストレージし、データ・プール内の他設備からｍ−１個の設備をポーリング選択し、データをそれぞれと当該選定したｍ−１個の設備にストレージする、ことを含んでも良い。
【００１５】
好ましくは、更に、前記データ・プールに新しく加入する設備がある場合、元データ・プール内の全部データ・ストレージ設備に対して負荷測定を行い、元データ・プールにおいて、負荷が予定値を超えた設備は少なくとも１個あることを検出した場合、負荷が予定値を超えた設備にストレージされたデータの一部を新しい設備に遷移する、ことを含んでも良い。
【００１６】
上述目的を実現するため、本発明の第２の面により、また、管理サーバを提供した。
当該管理サーバは、
ストレージが必要なデータの存否を判断する判断モジュールと、
判断モジュールと接続され、ストレージが必要なデータが存在する場合、データをストレージするすべてのｎ個の設備より構成されたデータ・プールから、ｍ個の設備をポーリング選択して1グループにして、データをそれぞれと当該ｍ個の設備に送信し、そのうち、ｍは1より大きく且つｎより小さいであるリソース割当モジュールと、
リソース割当モジュールと接続され、データ・プール内の全部設備及び設備リソースに対して管理する管理モジュールと、
を含む。
【００１７】
好ましくは、リソース割当モジュールは、
データ・プール内の全設備数ｎ及びポーリング選択される設備数ｍをストレージするストレージサブモジュールと、
ストレージサブモジュールと接続され、Ｃnm原理により、ｍ個の設備をポーリング選択して１グループにするポーリング計算サブモジュールと、
ポーリング計算サブモジュールと接続され、ストレージが必要なデータをそれぞれとポーリング選択されたｍ個の設備に送信する送信サブモジュールとを含んでも良い。
【００１８】
上述目的を実現するため、本発明の第３の態様により、また、データ・ストレージ・システムを提供した。
当該データ・ストレージ・システムは、上述管理サーバと複数のデータ・ストレージ設備を含み、管理サーバは全てのデータ・ストレージ設備と接続され、集中管理方式により前記設備を管理する。
【００１９】
上述目的を実現するため、本発明の第４の態様により、ストレージ設備を提供した。
【００２０】
本発明の実施形態に係るストレージ設備は、
データの挿入要請に対して分析する分析モジュールと、
分析モジュールと接続され、データ挿入要請は始めてデータ・プールにより受信されたものである場合、データ挿入要請に対応するデータをストレージし、また、データ・プール内の他設備からｍ−１個の設備をポーリング選択し、データをそれぞれと当該選定されたｍ−１個の設備に送信し、挿入データはデータ・プール内の他設備より転送されたものである場合、それに対してストレージのみ行うリソース割当モジュールと、
リソース割当モジュールと接続され、前記データ・プール内の各設備及びデータ・プールチェーンリング全体のリソース情報に対して管理する管理モジュールと、
を含む。
【００２１】
好ましくは、上述ストレージ設備におけるリソース割当モジュールは、
データ・ストレージ・プール内の全設備数ｎ、ポーリング選択される設備数ｍ、及び挿入されたデータをストレージするストレージサブモジュールと、
ストレージサブモジュールと接続され、前記データ挿入要請がデータ・プール外部から送信されたものである場合、Ｃｎ−１ｍ−１原理により、データ・プール内の自設備以外のｍ−１個の設備をポーリング選択するポーリング計算サブモジュールと、
ポーリング計算サブモジュールと接続され、データをそれぞれと当該ｍ−１個の設備に送信する送信サブモジュールと、
を含んでも良い。
【００２２】
好ましくは、管理モジュールは、
データ・プール内の他の全ての設備を監視し、データ・プール内の他設備からの削除要請を受信した場合及び/または新しい設備の当該データ・プールに対する加入要請を受信した場合、管理するリソースを更新し、また、更新後のデータ・プール内の総設備数をストレージサブモジュールに送信する監視サブモジュールと、
監視サブモジュールと接続され、データ・プール外部からの新しい設備の加入要請を受信した際、他設備に当該新しい設備の加入要請を転送し、元データ・プール内の全部設備の負荷を分析する分析サブモジュールと、
分析サブモジュールと接続され、元データ・プールにおいて負荷が予定値を超えた設備は１つ以上存在する場合、負荷が予定値を超えた設備にストレージされたデータの一部を新しい設備に遷移する実行サブモジュールと、
を含んでも良い
【００２３】
上述目的を実現するため、本発明の第５の態様により、データ・ストレージ・システムを提供した。
【００２４】
本発明の実施形態に係るデータ・ストレージ・システムは、複数の上述ストレージ設備と、複数のストレージ設備より構成されたデータ・プールとを含む。
【００２５】
好ましくは、何れのストレージ設備のリソース割当モジュールは他のストレージ設備の分析モジュールと接続され、何れのストレージ設備の管理モジュールは他のストレージ設備の管理モジュールと相互に接続される。
【００２６】
上記のように、本発明はデータをストレージする全ての設備で同一のデータ・プール（ＰＯＯＬと略称）を構成し、プール内のストレージ設備に対して更に細分化せずに、異なるデータをできるだけプール内の複数の異なる設備に分散してストレージさせ、データを平均的に分散してデータ・プール内の若干のＢＥに保存することを実現して、リソース利用率を向上させた。本発明はある設備が失敗した後、当該設備に対応するデータ・トラフィックはプール内の複数の設備ノードで負担されるようになり、良い耐障害性を実現でき、システムの安定性を向上した。また、検証されたように、本発明は一部のストレージ設備が失敗した後、損失されたデータ比例は決まっていて、計算できるものであり、従来技術と比較すると、本発明の上述技術案はより良い制御性を備え、設備が失敗した後のデータ損失量は前もって予測でき、予測不能の原因で与えられた影響を回避できるようになる。
【００２７】
以下は附図と実施形態に関連して本発明の技術案を詳細に説明する。
【図面の簡単な説明】
【００２８】
附図は本発明を分かりやすく理解するために用いられ、本明細書の一部分となり、本発明の実施形態と共に本発明を説明し、本発明の制限にはならない。附図において、
【図１】従来のデータ・ストレージ・システムの構造図である。
【図２】本発明に係るデータ・ストレージ方法の実施形態の解析図である。
【図３】本発明に係るデータ・ストレージ方法の実施形態のフロー図である。
【図４】本発明に係るデータ・ストレージ方法は集中型を採用する第一の実施形態のフロー図である。
【図５】本発明に係るデータ・ストレージ方法は集中型を採用する第二の実施形態のフロー図である。
【図６】本発明に係る管理サーバの第一の実施形態を示す図である。
【図７】本発明に係る管理サーバの第二の実施形態を示す図である。
【図８】本発明に係るデータ・ストレージ・システムは集中型を採用した第一の実施形態を示す図である。
【図９】本発明に係るデータ・ストレージ・システムは集中型を採用した第二の実施形態を示す図である。
【図１０】本発明に係るデータ・ストレージ・システムは分散型を採用した第一の実施形態を示す図である。
【図１１】本発明に係るデータ・ストレージ方法は分散型を採用した第一の実施形態のフロー図である。
【図１２】本発明に係るデータ・ストレージ方法は分散型を採用した第二の実施形態のフロー図である。
【図１３】本発明に係るデータ・ストレージ方法は分散型を採用した第三の実施形態のフロー図である。
【図１４】本発明に係るストレージ設備の第一の実施形態を示す図である。
【図１５】本発明に係るストレージ設備の第二の実施形態を示す図である。
【図１６】図１５における監視サブモジュールの内部構造の実施形態を示す図である。
【図１７】本発明に係るデータ・ストレージ・システムは分散型を採用した第二の実施形態を示す図である。
【発明を実施するための形態】
【００２９】
図２は本発明に係るデータ・ストレージ方法の実施形態の解析図である。本発明は新しいデータ・ストレージ方法を提出し、以下はデータ・プール・ストレージ方式と略称する。以下は６台のストレージ設備を備え、全部でユーザー１１〜１５・２１〜２５・３１〜３５・４１〜４５・５１〜５５・６１〜６５のデータをストレージするストレージ・システムの例を挙げて、図２に関連して本発明のストレージ方法、及び従来技術との区別を説明する。
【００３０】
１．従来技術はクラスター方法を採用してデータをストレージする。第一ＢＥと第二ＢＥは第一クラスターａに所属し、ユーザー１１〜１５とユーザー２１〜２５のデータをストレージする。第三ＢＥと第四ＢＥは第二クラスターｂに所属し、ユーザー３１〜３５とユーザー４１〜４５のデータをストレージする。第五ＢＥと第六ＢＥは第三クラスターｃに所属し、両者ともユーザー５１〜５５とユーザー６１〜６５のデータをストレージする。
２．本発明はデータ・プール方式を採用してストレージを行い、ストレージするデータは図１と同じであるが、ストレージする方法は異なっている。図２に示すように、データをストレージする全ての設備はデータ・プールｄを構成し、データ１１〜１５は図１のように全て第二ＢＥにストレージされるのではなく、第一ＢＥにストレージされていると同時に、また、他の５つのＢＥにも分散ストレージされている。そのため、ある設備が失敗した場合、失敗設備におけるトラフィックはプール内の他の５個のＢＥで分担されるようになるため、プール内の他設備の何れかの過負荷を引き起こすことがないのである。
【００３１】
正常の場合にデータ・プールd内の各ノードにおけるＣＰＵ負荷は４０%と仮想し、図２に示すように、第一ＢＥが失敗した際に他設備への影響は表二に示すようになっている。
【表２】
2011505617.tif 000004
【００３２】
表一と表二で分かるように、従来技術のデータ・ストレージ方式により、あるノードが失敗した後、所属クラスター上の残存ノードにより当該失敗ノードの負荷を引き継ぐしかできなく、失敗ノードが生じたクラスターに対して、当該クラスター内の残存ノードの負荷増加、設備不安定等の問題を起こしやすい。本発明はデータ・プール方式を採用して分散ストレージを行い、異なるデータをデータ・プール内の異なるノードに分散してストレージするため、一旦、あるノードが失敗すると、他の複数のノードは当該失敗ノードの負荷を引き継ぐようになり、従来のストレージ方式により引き起こされた過負荷、設備不安定等の問題点を解決することができる。
【００３３】
図２は本発明に係るデータ・ストレージ方法の具体的な解析図である，図３は本発明に係るデータ・ストレージ方法の実施形態のフローを示し、実現方式の角度から説明するものである。図３に示すように、本実施形態は、
ストレージが必要なデータの存否を判断し、存在する場合、ステップ１０４を実行し、逆の場合、現在の状態を保持するステップＳ１０２と、
ストレージが必要なデータが存在する場合、データ・プール内の全部設備からｍ個の設備をポーリング選択して１グループにするステップＳ１０４と、
前記データをそれぞれと当該選定グループ内のｍ個の設備にストレージし、そのうち、ｍは１より大きく且つ全設備数より小さいとするステップＳ１０６と、
を含む。
【００３４】
そのうち、上述実施形態における全てのデータ・ストレージ設備は１つのデータ・プールを構成する。本実施形態は図２の解析図を参照でき、ストレージが必要なデータを受信した際、データ・プールから１グループのストレージ設備をポーリング選択し、当該ストレージが必要なデータをそれぞれと選定グループにおける設備にストレージし、ポーリング選択するたびに、異なるグループによりそれぞれと保存し、そのため、異なるデータの保存位置は全て違っている。図２に示すように、ユーザー１１のデータは第一ＢＥと第六ＢＥに保存され、ユーザー３５のデータは第三ＢＥと第五ＢＥに保存された。データ・プール方式を採用して分散的にストレージし、異なるデータをデータ・プール内の異なるノードに分散ストレージするため、あるノードが失敗すると、他の複数ノードは当該失敗ノードのデータを分担するようになり、過負荷を抑えたと同時に、設備の安定性を保持できるようになる。
【００３５】
本発明に係るデータ・ストレージ方法の実現方式は多種多様であり、以下は集中型と分散型の２種の実現方式により、例を挙げて本発明に係るデータ・ストレージを説明する。
【００３６】
そのうち、図４〜図９は集中型の管理方式で実現したデータ・ストレージ方法、管理サーバ及びシステムの実施形態を示す図である。
【００３７】
図４を参照して、図４は本発明に係るデータ・ストレージ方法における集中型を採用した実施形態のフロー図である。図４は図３の集中型の場合のフローを示す図だと言える。図４の実施形態は以下のようなステップを含む。
【００３８】
ステップＳ２０２：全てのデータ・ストレージ設備によりデータ・プールを構成し、データ・プールに全部設備を管理する管理サーバを設置する。
【００３９】
ステップＳ２０６：データ挿入要請を受信した場合、管理サーバはＣｎ２原理により、前記データ・プールから２つの設備をポーリング選択して1グループのストレージ設備にして、そのうち、ｎはデータ・プール内の全設備数を表示する。Ｃｎ２ 原理は数学領域における公知常識として引き出し論法を表す。具体的に、ｎ個（ｎは２より大きい自然数とする）の引き出しから、任意の２つを選択して１グループにし、各グループを選択する際に選択の前後順序にこだわらず、計算公式をＣｎ２＝P ｎ２/２！とする。そのうち、P ｎ２はｎ個の引き出しから任意の２つを選択して配列し、選択する際に異なる前後順序は異なる配列を表すことを表示し、２！は２×１＝２を示す。以上は全て数学領域の公知常識なので、ここで説明を省略する。本実施形態には数学領域の引き出し論法により、データ・プール（全部でｎ個の設備）から任意の２つを選択してストレージ設備にする際の組み合わせ個数を計算でき、また、ポーリング選択方式を採用することより、異なるデータを異なるグループにストレージすることを確保するようにする。
【００４０】
ステップＳ２０８：ストレージ待ちのデータをそれぞれと当該選定グループにおける２つの設備にストレージする。
【００４１】
本実施形態は２つの設備をポーリング選択する例を挙げてストレージを行う。無論、各データをそれぞれと３つの設備にストレージしようとする場合、Ｃｎ３によりポーリング選択すれば良く、これを類推適用することができる。本実施形態において、Ｃｎ２の組み合わせは多種多様であるが、管理サーバは毎回にランダム選択することではなく、Ｃｎ２のいくつかの組み合わせから1グループをポーリング選択することより、データ・ストレージの分散原則を最大限に保証する。
【００４２】
図５は本発明に係るデータ・ストレージ方法における集中型を採用した第２の実施形態のフローを示す。図５に示すように、本実施形態は図３と図４に比較すれば、ノード加入時の処理を追加した。図５に示した本実施形態は、
全てのデータ・ストレージ設備によりデータ・プールを構成し、データ・プールにおいて全部設備を管理する管理サーバを設置するステップＳ３０２と、
管理サーバは当該データ・プールに新しく加入する設備が存在するか否かを判断し、存在する場合はステップＳ３０６を実行し、逆の場合は、ステップＳ３１２を実行するステップＳ３０４と、
管理サーバは元データ・プール内の全てのデータ・ストレージ設備に対して分析、即ち、負荷測定を行うステップＳ３０６と、
管理サーバは測定結果により、元データ・プール内の各設備は過負荷になったか否か、即ち、負荷が予定値を超えた設備は１つまたは複数存在するか否かを判断し、存在する場合は、ステップＳ３１０を実行し、逆の場合はステップＳ３１２を実行するステップＳ３０８と、
負荷が予定値を超えた設備にストレージされた一部のデータを当該新しく加入された設備に遷移するステップＳ３１０と、
管理サーバはデータ挿入要請メッセージを受信したか否かを判断し、受信していない場合は、現在の状態を保持し、ステップＳ３０４を継続して実行し、受信した場合はステップＳ３１４を実行するステップＳ３１２と、
管理サーバはＣｎ２原理により、前記データ・プールから２つの設備をポーリング選択して1グループのストレージ設備にして、そのうち、ｎはデータ・プール内の全設備数を表示するステップＳ３１４と、
ストレージ待ちのデータをそれぞれと当該選定グループにおける２つの設備にストレージして削除するステップＳ３１６と、
を含む。
【００４３】
本実施形態はノード加入に対する処理を追加して、新しい設備が元の設備より構成されたデータ・プールに加入する際に、元データ・プール内の全部設備に対して分析判断を行い、過負荷状態にある設備が存在すれば、過負荷分のデータを当該新しく加入された設備に遷移して、ストレージ・システムを更に最適化し、安定性と耐障害性を向上する。
【００４４】
過負荷分のデータを当該新しく加入された設備に遷移することは、具体的に、負荷が予定値を超えた設備上の予定負荷以外のデータを前記新しく加入された設備に遷移し、前記予定負荷以外の他のデータを対応する設備から削除し、そのうち、負荷が予定値を超えた各設備から前記新しい設備にストレージされる前記他のデータはそれぞれと異なっていることを指す。
【００４５】
上述方法の実施形態とも本発明に係るデータ・ストレージ方法の有益效果、即ち、設備過負荷の抑制や安定性の向上等について説明したが、以下は実例で本発明に係る各実施形態のデータ・ストレージ方法がまた、高い制御性を有することを検証する。
【００４６】
ｎ個のデータ・ストレージ設備で１つのデータ・プールを構成し、そのうちのｎ個の設備はデータ・プール内のｎ個のノード(ｎは１より大きい自然数とする)に称され、全部でｎ*Ｘ個のユーザーデータをストレージする必要がある。ユーザーごとのデータはデータ・プールにおいてそれぞれと２部をストレージして、即ち、データ・プール内の全部ノードは全部で２ｎ*Ｘ個のデータをストレージするのが望ましい。任意のユーザーデータを挿入する際、ｎ個のノードから２つのノード（Ｃ２ｎ） を任意に選択し、当該ユーザーデータを当該２つの選定されたノードにストレージする。前述過程は数学領域で公知されたＣ２ｎ原理として理解でき、即ち、全部でＣ２ｎ 個の引き出しがあり、ｎ＊Ｘ個のユーザーのデータを平均的に当該Ｃ２ｎ個の引き出しに格納すれば、最大限のデータ分散を実現できる。本発明に係る上述実施形態は、管理サーバによりポーリング選択を採用してデータをストレージして、最大限のデータ分散ストレージを保証し、最終にノードごとにおいて２Ｘ個のデータをストレージするようになる。そのうち、Ｘ個のデータはそれぞれと他の（ｎ−１）個のノードに分散的にストレージされ、他のＸ個のデータは他の（ｎ−１）個のノードにストレージされた一部のデータである。図２に示すようである。当該データ・プールにおいてｍ個のノードが失敗したと想定する場合、
１）損失されたユーザーデータ数：Ｃ2m *２ノードごとに損失されたユーザーデータ＝
C2m*（2X/（n-1））＝（m-1）*m*（X/（n-1））とし、
２）ユーザーデータの損失比例：損失されたユーザーデータ数/全部ユーザーデータ数＝
（（X/（n-1））*（m-1）*m）/（n*X）＝m*（m-1）/（n*（n-1））とする。
【００４７】
上述計算公式において、ｎとｍは１より大きい自然数である。上述計算で検証したように、一部のノードが失敗（Ｆａｉｌ）した後、損失されたユーザー数は決まったものであり、高い制御性と良好な予測性を持っている。従来のクラスター・ストレージの方法は、損失されたユーザー数は失敗ノードの状況により変化するため、予測性が低かった。本発明に係る上述各方法の実施形態は、予測性が劣り、クリームユーザー数を制御できない従来技術の問題点を回避できる。
【００４８】
図６は、本発明に係る管理サーバの第一の実施形態を示す図である。図６に示すように、本実施形態は、
ストレージが必要なデータの存否を判断する判断モジュール６２と、
判断モジュール６２と接続され、ストレージが必要なデータが存在する場合、全部データ・ストレージ設備より構成されたデータ・プールから、ｍ個の設備をポーリング選択して１グループにして、ストレージ待ちのデータをそれぞれと選定された1グループにおけるｍ個の設備に送信してストレージし、そのうち、ｍは1より大きい且つ全設備数より小さい自然数とするリソース割当モジュール６４と、
リソース割当モジュール６４と接続され、前記データ・プール内の全設備数及びリソースに対して管理する管理モジュール６６と、
を含む。
【００４９】
本実施形態に係る管理サーバは、全部設備より構成されたデータ・プールに対して集中管理を行い、ストレージ先ノードをポーリング選択し、各設備のリソースまたは負荷を割り当てることにより、ストレージ設備（例えば、ＢＥ）が失敗した後、他設備の負荷増加と不安定を起こし、及びリソース利用率が低いという従来のストレージ設備上に存在する問題点を解決でき、各ストレージ設備に良好な安定性と高いリソース利用率を持たせるようにした。
【００５０】
図７を参照し、図７は、本発明に係る管理サーバの第二の実施形態を示す図である。図７は図６に示した実施形態の各内部機能モジュールを更に細分化したものである。
【００５１】
図７に示すように、本実施形態における判断モジュール６２は、
データ挿入要請メッセージを受信した際、リソース割当モジュール６４をトリガーするデータ挿入サブモジュール６２１と、
データ挿入サブモジュール６２１と接続され、挿入されたデータを受信する受信サブモジュール６２２とを含む。
【００５２】
リソース割当モジュール６４は、
データ・プール内の全設備数ｎ、及びポーリング選択する設備数ｍをストレージするストレージサブモジュール６４２と、
ストレージサブモジュール６４２及びデータ挿入サブモジュール６２１と接続され、データ挿入要請メッセージを受信した際にストレージサブモジュール６４２を利用し、Ｃnm原理により１グループのｍ個の設備をポーリング選択するポーリング計算サブモジュール６４４と、
ポーリング計算サブモジュール６４４と受信サブモジュール６２２と接続され、挿入されたデータをそれぞれとポーリング選択した1グループにおけるｍ個の設備に送信する送信サブモジュール６４６とを含む。
【００５３】
管理モジュール６６は、
ストレージサブモジュール６４２と接続され、データ・プール内の全部設備を監視し、データ・プール内のある設備より送信された削除要請を受信した場合及び/または他の新しい設備より送信された当該データ・プールに対する加入要請を受信した場合、管理するリソースを更新し、更新した後の全設備数をストレージサブモジュール６４２に送信する監視サブモジュール６６２と、
監視サブモジュール６６２と接続され、他の新しい設備より送信された当該データ・プールに対する加入要請を受信した際、元データ・プール内の全部設備に対して負荷検索要請情報を送信し、また、全部設備より返答された負荷情報に対して分析・測定する分析サブモジュール６６４と、
分析サブモジュール６６４と接続され、元データ・プールにおいて、負荷が予定値を超えた設備は１つ以上存在する場合、負荷が予定値を超えた設備にストレージされた一部のデータを新しい設備に遷移する実行サブモジュール６６６とを含む。
【００５４】
図７の実施形態において、判断モジュールは主にデータ挿入要請を処理して、管理モジュールはデータ・プールにおける各ノード設備の加入・削除等の情報に対して管理と更新を行い、データ・プールの全体状況を即時監視して、ストレージが必要なデータを受信した際の分散ストレージに利便性を提供する。図６と図７の実施形態は、図２〜図５における方法の実施形態と類似した機能を備え、具体的に方法の実施形態部の原理及び技術案説明を参照することができるため、ここで説明を省略する。
【００５５】
図８は本発明に係るデータ・ストレージ・システムにおける集中型を採用した第一の実施形態を示す図である。図８に示すように、本実施形態はバックエンド設備１０１〜１０４という４個のデータ・ストレージ設備を含み、また、４個のバックエンド設備を管理する管理サーバ (Ｂａｃｋ  Ｅｎｄ  Ｍａｎａｇｅｍｅｎｔ  Ｓｅｒｖｅｒ、ＢＥＭＳと略称する)を一つ含む。１０１〜１０４という４個のバックエンド設備はデータ・プールを構成して、その４個のバックエンド設備は全て当該管理サーバに加入する必要があり、また、管理サーバによりストレージされたデータを管理し、本実施形態に係る管理サーバは図６〜図７の実施形態を参照することができるため、ここで説明を省略する。
【００５６】
本実施形態に係るデータ・ストレージ・システムは、データをストレージする際、あるノードの失敗による他ノードの負荷増加、不安定及びノードごとのリソース利用率が低いという従来のデータ・ストレージ・システムの問題点を解決する。あるノードが失敗しても、システム全体としての高い安定性を確保でき、システム全体のリソース利用率と予測性を向上させることを実現する。
【００５７】
図９を参照する。図９は本発明に係るデータ・ストレージ・システムにおける集中型を採用した第二の実施形態を示す図であり、図８に示す前記機能と有益効果を備える。本実施形態に係る管理サーバは図６または図７に示した実施形態の構造を採用し、バックエンド設備、即ち、ストレージ設備の内部を細分化する。図９に示すように、本実施形態に係るバックエンド設備１０１は、
管理サーバより送信された挿入データ、例えば、図７に示す実施形態における送信サブモジュールより送信されたデータを受信するデータ挿入モジュール１１と、
データ挿入モジュール１１と接続され、挿入されたデータをストレージし、設備の負荷量を計算するストレージモジュール１３と、
ストレージモジュール１３と接続され、設備がデータ・プールより削除または加入する際に管理サーバ、例えば、図７に示した監視サブモジュールに対して、削除または加入要請を送信し、データ・プールに加入した後、管理サーバとの相互通信を保持し、管理サーバより送信された設備負荷検索要請を受信した後、現在の設備負荷量情報により返答する測定モジュール１２と、
を含む。
【００５８】
上述した図４〜図９に示す実施形態は集中型の管理方式によるデータ・ストレージ実現について実例を挙げて説明したが、以下の図１０〜図１７は分散型の管理方式を採用したデータ・ストレージ実現方法、ストレージ設備、及びシステムの実施形態を示す図である。集中型データ・ストレージ方法は、主に管理サーバによりポーリング選択操作を実現し、データ・プールにおける各ストレージ設備がデータ・ストレージ機能のみを実現するものである。分散型データ・ストレージ方法は集中型データ・ストレージ方法とは違い、データ・プール内の各ストレージ設備に対して統一管理を行う管理サーバがなくて、集中型データ・ストレージにおける管理サーバの一部の機能をデータ・プール内の各ストレージ設備において実現し、分散型データ・プールにおける各ストレージ設備により、ポーリング選択操作を実現するものである。
【００５９】
図１０は本発明に係るデータ・ストレージ・システムにおける分散型を採用した第１の実施形態を示す図である。本実施形態は新しいデータ・ストレージ方法及びシステムアーキテクチャーを提出し、図１０に示すように、本実施形態にはデータ・プール（ＰＯＯＬ）チェーンリングのストレージ方式を採用し、図２の実施形態に類似し、第一ＢＥ〜第六ＢＥという６台のストレージ設備を含み、全部でユーザー１１〜１５・２１〜２５・３１〜３５・４１〜４５・５１〜５５・６１〜６５のデータをストレージするストレージ・システムの例を挙げて、図１０を参照して分散型を採用してストレージを行うデータ・ストレージ・システム、及び従来技術との区別を説明する。
【００６０】
１．図１に示すように、従来技術はクラスター方法を採用してストレージを行う。第一ＢＥと第二ＢＥは第一クラスターａに所属し、ユーザー１１〜１５とユーザー２１〜２５のデータをストレージする。第三ＢＥと第四ＢＥは第二クラスターｂに所属し、両者ともユーザー３１〜３５とユーザー４１〜４５のデータをストレージする。第五ＢＥと第六ＢＥは第三クラスターｃに所属し、両者ともユーザー５１〜５５と６１〜６５のデータをストレージする。
２．図１０に示すように、本実施形態はデータ・プール（ＰＯＯＬ）方式を採用してストレージを行い、全てのデータ・ストレージ設備によりチェーンリング状のデータ・プールＤを構成する。ストレージされるデータは図１に示すデータと同じであるが、ストレージ方法は異なる。図１０に示すように、データ１１〜１５は第一BEにストレージされていると同時に、他の５個のＢＥにも分散的にストレージされ、一旦、ある設備、例えば、第一ＢＥが失敗（Ｆａｉｌ）した場合、第一ＢＥにおけるトラフィックはプール内の他の５個のＢＥで分担されるようになり、他のいずれかの設備の過負荷を引き起こすことはないのである。
【００６１】
正常の場合、データ・プールＤにおける各ノードのＣＰＵ負荷が４０%だと仮定すれば、図１０に示すように、第一ＢＥが失敗した際に他設備への影響は表三に示すようである。
【表３】
2011505617.tif 000005
【００６２】
表三で分かるように、本実施形態はデータ・プール・リング方式を採用して分散ストレージを行い、異なるデータをデータ・プール内の異なるノードに分散的にストレージする。そのため、一旦、あるノードが失敗した際、他の複数のノードは当該失敗ノードにおけるトラフィックを負担するようになり、設備の過負荷と不安定を起こしやすい、という従来のストレージ方式の問題点を解決できるようになる。
【００６３】
図１１は本発明に係るデータ・ストレージ方法における分散型を採用した実施形態のフローである。図１１に示すように、本実施形態は、
データ・プールにおいて初めてデータ挿入要請を受信した設備は受信データをストレージを行い、データ・プール内の他設備からｍ−１個の設備をポーリング選択するステップＳ４０２と、
データをそれぞれと当該選定したｍ−１個の設備に送信し、そのうち、ｍは1より大きく且つ全設備数より小さい自然数とするステップＳ４０４と、
を含む。
【００６４】
本実施形態において、前記データ・プールは全部データ・ストレージ設備より構成されたデータ・プールである。図１０に示すように、データ・プールはチェーンリング状としても良い。図１１に示した実施形態において、挿入データを受信した際、初めて受信した設備はまずローカルストレージを行い、そして、他のｍ−１個の設備をポーリング選択し、始めて受信した設備を加えれば、データ・プールに当該データをストレージする設備はｍ個である初めて受信した設備は既にデータのローカルストレージを行ったため、データを選定されたｍ−１個の設備にそれぞれ送信すれば良い。ポーリング選択するたびに、異なるグループによりそれぞれと保存するため、異なるデータは異なる位置に保存される。図１０に示すように、ユーザー１１のデータは第一ＢＥと第六ＢＥに保存され、ユーザー１５のデータは第一ＢＥと第五ＢＥに保存された。データ・プール方式を採用して分散ストレージを行い、異なるデータをデータ・プール内の異なるノードに分散的にストレージする。こうすることより、一旦、あるノードが失敗しても、他の複数のノードは当該失敗ノードにおけるトラフィックを負担するようになり、過負荷を回避できると同時に設備の安定性を確保できるようになる。
【００６５】
図１２を参照。図１２は本発明に係るデータ・ストレージ方法における分散型を採用した第二の実施形態のフローである。図１２は更に細分化されたものであり、当該図に示す実施形態は以下のステップを含む。
【００６６】
ステップＳ５０６：データ挿入要請を受信した際、データ・プール外部から送信されたものであるか否かを判断し、外部からのデータである場合、ステップＳ５０８を実行し、逆の場合、データ・プール内部から転送されたデータとして、前記データをストレージして削除する。
【００６７】
ステップＳ５０８：前記データをストレージする。
【００６８】
ステップ５１０：Ｃｎ−１１原理によりデータ・プール内の他設備から１つの設備を選択し、そのうち、ｎは全設備数を表示する。Ｃｎ−１１原理は数学領域における公知常識であり、引き出し論法を表す。具体的に、ｎ−１個（ｎは１より大きい的自然数とする）の引き出しから、任意の１つを選択して1グループにし、各グループを選択する際に選択の前後順序にこだわらない。計算公式はＣｎ−１１＝P ｎ−１１/１であり、そのうち、P ｎ−１１はｎ−１個の引き出しから任意の１つを選択して配列して、選択する際に異なる前後順序は異なる配列を表示する、ということを示す。以上は全て数学領域の公知常識であるため、ここで説明を省略する。本実施形態には数学領域の引き出し論法により、データ・プール（全部でｎ個の設備）から任意の１つを選択してストレージ設備にする際の組み合わせ個数を計算でき、また、ポーリング選択方式を採用して、異なるデータを異なるグループにストレージすることを確保する。
【００６９】
ステップＳ５１２：前記データを当該選定の設備（ＢＥ）に送信する。
【００７０】
上述ステップでは、データ挿入要請を受信した設備は、データ・プールにおいて始めて当該データを受信したＢＥであれば、ポーリング選択操作を行う必要があり、前記データを選択した1グループのＢＥに送信し、逆の場合は、他のＢＥより転送されたデータ挿入要請として、ストレージ操作だけをすれば良い。具体的に、データ挿入要請に関連の送信元情報を含んでも良い。例えば、データ・プールの外部からのデータ挿入要請を「外部」という標識を含むようにする。初めて当該要請を受信したＢＥはストレージ操作及び後続のポーリング選択操作を実行でき、当該データ挿入要請を転送する際に「内部」という標識を含むようにする。それは、データ・プール内の他設備より転送され、既にポーリング選択操作が行われたものであることを示す。ストレージ設備は当該「内部」標識を含むデータ挿入要請を受信した場合、ポーリング選択と送信の操作不必要であるため、ストレージのみを行えば良い。
【００７１】
図１２に示すように、本実施形態ではステップＳ５１２の後に、また、後続の選定されたグループ内のあるバックエンド設備（ＢＥ）に対する処理を追加した。当該処理は、
選定されたＢＥは受信されたデータ挿入要請を判断するステップＳ５１４と、
データ・プール内の他のＢＥより転送されたデータ挿入要請であると判断できた場合、当該データを直接に自設備にストレージするステップＳ５１６と、
を含む。
【００７２】
本実施形態には１個の設備をポーリング選択する例を挙げてストレージ方法を説明した。即ち、各データはデータ・プール内の２個の設備、初めてデータ挿入要請を受信した設備及びポーリング選択した設備にストレージする。無論、各データはデータ・プール内の３個の設備にストレージしようとする場合、Ｃｎ−１２によりポーリング選択を行えばよい、それ以降も同じである。具体的に図１３に示す実施形態の関連説明を参照できる。本実施形態において、Ｃｎ−１１の組み合わせ個数はｎ−１種あり、新しいデータが挿入されるたびに、異なる設備を選択してストレージを行う。Ｃｎ−１１のｎ−１種の組み合わせからポーリング選択を行い、ｎ−１個のデータをｎ−１個の異なる設備にポーリングストレージでき、データの分散ストレージ原則を最大限に確保する。
【００７３】
図１３を参照する。図１３は本発明に係るデータ・ストレージ方法は分散型を採用した第３の実施形態のフローである。図１３に示すように、本実施形態ではノード加入時の処理、及びデータ・プールにおける各設備がデータ挿入要請を受信した際の処理を追加した。当該追加された処理は、
データをストレージする全てのＢＥでデータ・プール・チェーンリングを構成するステップＳ６０２と、
当該データ・プールに新しく加入するＢＥが存在するか否かを判断し、存在する場合、ステップＳ６０６を実行し、逆の場合、ステップＳ６１２を実行するステップＳ６０４と、
元データ・プール内の全部データ・ストレージＢＥに対して負荷測定・分析を行うステップＳ６０６と、
元データ・プールにおける各ＢＥは過負荷になったか否かを判断し、予定値を超えたＢＥは１つまたは複数存在する場合、ステップＳ６１０を実行し、逆の場合、ステップＳ６１２を実行するステップＳ６０８と、
負荷が予定値を超えたＢＥにストレージされたデータの一部を新しく加入されたＢＥに遷移するステップ６１０と、
データ・プール中における各ストレージ設備はデータ挿入要請メッセージを受信したか否かを判断し、受信していなければ、現在の状態を保持し、継続してステップＳ６０４を実行し、受信した場合はステップＳ６１４を実行するステップＳ６１２と、
データ挿入要請を受信した設備は、当該データ挿入要請に含まれたデータはデータ・プールに始めて受信されたものであるか否かを判断し、データ・プール外部から送信されたストレージ待ちデータに判断できた場合、ステップＳ６１６を実行し、逆の場合、データ・プール内部の他設備より転送されたものであり、データ挿入要請の送信元は他設備（例えば、ＢＥ）であると判断して、そのため、当該データを当該ＢＥ自身にストレージのみ行って、当該処理を終了させるステップＳ６１４と、
データをローカルＢＥにストレージするステップＳ６１６と、
Ｃｎ−１ｍ−１原理によりデータ・プールにおける他のｎ−1個のＢＥからｍ−１個の設備をポーリング選択し、当該データの1グループのバックアップ設備にして、そのうち、ｎは全設備数を表示するステップＳ６１８と、
データを当該選定したｍ−１個のＢＥに送信して、当該処理を終了させるステップＳ６２０と、
を含む。
【００７４】
本実施形態は図１２とは違い、１つのＢＥの角度からデータ・ストレージ処理について説明した。図１２はデータ・プール内の各ノード、初めてデータ挿入要請を受信したノード及びポーリング選択したノードにおける処理を全体的に示すものである。前記ノードは即ち、１つのバックエンド設備ノードを指し、ＢＥと同じ意味を表す。本実施形態は主に、データ・プールにおける１つのバックエンド設備ノードに注目し、当該ノードにおける主な処理フローについて記述した。また、ある新しい設備が元データ・プールに加入した際に、更に、元データ・プールにおける各設備を分析・判断して、過負荷の状況が存在する場合、過負荷分のデータを当該新しく加入された設備に遷移するという設備加入時の処理を加えたため、ストレージ・システムを一層最適化し、安定性と耐障害性を向上することができた。
【００７５】
過負荷分のデータを当該新しく加入された設備に遷移することは、具体的に、負荷が予定値を超えた設備にある予定負荷を超えた他データを新しい設備にストレージし、また、前記予定負荷以外の他データを対応する設備より削除し、そのうち、負荷が予定値を超えた各設備から前記新しい設備にストレージされるデータは全て違っている。
【００７６】
上述図１０〜図１３の各実施形態は、本発明に係るデータ・ストレージ方法の有益効果、設備の過負荷を回避でき、安定性が高い等について説明をした。また、集中型のデータ・ストレージと同様に、分散型のデータ・ストレージ方法も非常に高い制御可能性を有し、具体な分析は以下のようである。
【００７７】
ｎ個のデータ・ストレージ設備で１つのデータ・プール・チェーンリングを構成し、そのうちのｎ個の設備はデータ・プール内のｎ個のノード(ｎは１より大きい自然数とする)に称しされ、全部でｎ*Ｘ個のユーザーデータをストレージする必要がある。ユーザーごとのデータはデータ・プールにおいてそれぞれと２部をストレージすることが望ましい。即ち、データ・プール内の全部ノードは全部で２ｎ*Ｘ個のデータをストレージする必要があると想定する場合、各ノードは自身に挿入されたデータを有する。即ち、初めてデータを受信された際に自身にストレージされたデータＸ個を持ち、それはＸ個と想定仮定し、且つ各ノード自身に挿入されたデータは、また、その他のｎ−１個のノードに分散的にストレージされる。そうすると、何れかのノードは他のｎ−１個のノードからＸ/（ｎ−１）個のユーザーのデータをストレージするようになり、最終的にノードごとに（（Ｘ+（Ｘ/（ｎ−１））*（ｎ−１））＝２Ｘ個のユーザーを所有するようになる。第Ｋのノードに対して、当該ノードにストレージされたデータは、均等的にその他のｎ−１個のノードに分散的にストレージされている場合、第Ｋのノードが無効になった後、当該ノードにおけるトラフィックは残存のｎ−１個のノードで負担されるようになる。
【００７８】
分散型のデータ・ストレージも同様にポーリング選択の方式を採用してストレージを行う方法であり、データの分散ストレージを最大限に保証する。最終にノードごとにストレージされたデータ数は２Ｘ個あり、そのうちのＸ個のデータは他の（ｎ−１）個のノードに分散的にストレージされ、他のＸ個のデータは他の（ｎ−１）個のノードにそれぞれとストレージされており、図１０に示すようである。当該データ・プールにＭ個のノードが失敗した場合、
３）損失されたユーザーデータ数はＣ２Ｍ*２ノードごとに損失されたユーザーデータ＝
Ｃ２Ｍ*（２Ｘ/（ｎ−１））＝（ｍ−１）*Ｍ*（Ｘ/（ｎ−１））である。
４）ユーザーデータの損失比例は損失されたユーザーデータ数/全部ユーザーデータ数＝
（（Ｘ/（ｎ−１））*（ｍ−１）*Ｍ）/（ｎ＊Ｘ）＝Ｍ*（ｍ−１）/（Ｎ*（ｎ−１））である。
【００７９】
上述計算で検証したように、一部のノードが失敗した場合、損失されたユーザー数は決まったもので、高い制御可能性と良い予測性を備える。従来のクラスター・ストレージの方法は、損失されたユーザー数は失敗したノードの具体な状況により変化するため、予測性が低かった。本発明に係る上述各方法の実施形態は、予測性が低いため、クリームユーザー数を制御できないという従来技術の問題点を回避できる
【００８０】
上記のような分散型のデータ・ストレージ方法の実施形態は、データをストレージする全ての設備で同一のデータ・プール（ＰＯＯＬと略称）を構成し、プール内のストレージ設備を更に細分化しない。異なるデータをできるだけプール内の複数の異なる設備に分散的にストレージさせ、データを平均的に分散してデータ・プール内の若干のＢＥに保存することを実現して、リソース利用率を向上した。本発明は、ある設備が失敗した後、当該設備に対応するデータ・トラフィックはプール内の複数の設備ノードで負担されるようになり、良好な耐障害性を実現し、システムの安定性を向上できる。同時に、検証されたように、本発明は、一部のストレージ設備が失敗した後、損失されたデータ比例は決まっていて、計算できるものである。従来技術と比較すると、本発明の上述技術案はより良い制御性を備え、設備が失敗した後にデータ損失量を速めに予測でき、予測不能の原因で与えられた影響を回避できるようになる。
【００８１】
図１４を参照し、図１４は本発明に係るストレージ設備の第一の実施形態を示す図である。図１４に示すように、本実施形態は、
データ挿入要請に対して分析する分析モジュール１４２と、
分析モジュール１４２と接続され、当該データ挿入要請はデータ・プールに始めて受信されたものであるか否かを判断し、即ち、初めて当該データ・プールに送信されたデータ挿入要請であれば、データ挿入要請に含まれたデータをローカル設備にストレージし、データ・プール内の他設備からｍ−１個の設備をポーリング選択し、当該データをそれぞれと当該選定したｍ−１個の設備に送信し、そのうち、ｍは１より大きく且つデータ・プール内の全設備数より小さい自然数とし、逆の場合、当該データ挿入要請がデータ・プール内の他設備より転送されものと判断できた場合、前記データをストレージのみ行うリソース割当モジュール１４４と、
リソース割当モジュール１４４と接続され、全部ストレージ設備より構成したデータ・プール内の各設備及びデータ・プール全体のリソース情報に対して管理する管理モジュール１４６と
を含む。
【００８２】
本実施形態に係るストレージ設備は、リソース割当モジュール１４４によりストレージ先ノードをポーリング選択し、管理モジュール１４６によりデータ・プール内のリソースまたは負荷を管理して、データ・プールの全体状態を監視でき、データを受信した際、データ・プールからストレージ設備をポーリング選択でき、ストレージ設備（例えば、ＢＥ）が失敗した後、他設備の負荷増加と不安定を起こし、及びリソース利用率が低いという従来のストレージ設備上に存在する問題点を解決でき、各ストレージ設備に良好な安定性と高いリソース利用率を持たせるようにした。
【００８３】
図１５を参照。図１５は本発明に係るストレージ設備の第二の実施形態を示す図である。図１５は図１４に示した実施形態の内部の各機能モジュールを更に細分化した。
【００８４】
図１５に示すように、本実施形態における分析モジュール１４２は、データ挿入要請メッセージを受信した際、データ挿入要請の送信元を分析し、リソース割当モジュール１４４をトリガーするデータ挿入分析サブモジュール２２と、データ挿入分析サブモジュール２２と接続され、挿入されたデータ要請メッセージを受信する受信サブモジュール２４とを含む。
【００８５】
リソース割当モジュール１４４は、データ・プール内の全設備数ｎ、ポーリング選択の設備数ｍ及び挿入されたデータをストレージするストレージサブモジュール４２と、ストレージサブモジュール４２と接続され、当該データ挿入要請はデータ・プールに始めて受信されたもので、即ち、データ・プール外部から送信されたものである場合、Ｃｎ−１ｍ−１原理によりデータ・プール内の当該設備以外のｍ−１個の設備をポーリング選択するポーリング計算サブモジュール４４と、ポーリング計算サブモジュール４４と接続され、データをそれぞれと前記ｍ−１個の設備に送信する送信サブモジュール４６とを含む。
【００８６】
管理モジュールは、データ・プール内の他の全ての設備を監視し、データ・プール内の他設備からの削除要請を受信した場合及び/またはある新しい設備が当該データ・プールへの加入要請を受信した場合、管理するリソースを更新し、また、更新後の全設備数をストレージサブモジュール４２に送信する監視サブモジュール６２と、監視サブモジュール６２と接続され、データ・プールの外部にある新しい設備からの加入要請を受信した際、他設備に対して新しい設備の加入要請を転送し、また、元データ・プール内の全部設備の負荷を分析する分析サブモジュール６４と、分析サブモジュール６４と接続され、元データ・プールにおいて負荷が予定値を超えた設備が少なくとも1個存在する場合、負荷が予定値を超えた設備にストレージされた一部のデータを前記新しい設備に遷移する実行サブモジュール６６とを含む。
【００８７】
図１５の実施形態において、分析モジュール１４２は主にデータ挿入要請を処理し、管理モジュール１４６はデータ・プール内の各ノードに対応するストレージ設備の加入・削除等の情報に対して管理・更新して、データ・プールの全体状況を即時に監視し、ストレージが必要なデータを受信した際のデータ分散ストレージに利便性を提供する。図１４と図１５に示した実施形態は全て図１０〜図１３の方法の実施形態と類似したような機能を備え、具体的に方法の実施形態の原理及び技術案の説明を参照することができるため、ここで説明を省略する。
【００８８】
図１６は図１５における監視サブモジュール６２内部の実施形態の構造図である。図１６に示すように、本実施形態における監視サブモジュール６２は、データ・プール内の他の設備に対してデータ検索を行う分散型ハッシュテーブル（Ｄｉｓｔｒｉｂｕｔｅｄ  Ｈａｓｈ  Ｔａｂｌｅ、ＤＨＴと略称する）検索サブモジュールと、データ・プール内の他設備に対してデータ挿入を行うＤＨＴ挿入サブモジュールと、データ・プール内の他設備に対してデータ削除を行うＤＨＴ削除サブモジュールとを含む。図１６に示した各モジュールは管理モジュール１４６における分析サブモジュール６４と接続される。ＤＨＴは一種の分散型キーワード検索技術であり、本実施形態のデータ・プールにおける各ノード（即ち、バックエンド設備（ＢＥ））はＤＨＴによりチェーンリングの情報交換を実現でき、動的且つ即時にデータ・プールの全体情報を取得する。例えば、データ挿入要請のデータ送信元に対して検索し、データ・プール内のあるノードの加入または削除等の情報を取得する。具体なＤＨＴに関連する検索、削除等、ＤＨＴに関連するＤＨＴチェーンリングの内容は出願番号が２００７ １ ０１１８６００.８とする関連の出願文書を参照することで、本明細書では説明を省略する。
【００８９】
図１７は本発明に係るデータ・ストレージ・システムにおける分散型を採用する第二の実施形態を示す図である。図１７に示すように、本実施形態は第一ＢＥ、第二ＢＥ及び第三ＢＥという３個のデータ・ストレージ設備を含み、当該３個の設備は１つのデータ・プールを構成する。本実施形態における第一ＢＥ、第二ＢＥ及び第三ＢＥは図１４〜図１６に示した実施形態においてストレージ設備に対する説明を参照でき、ここで説明を省略する。各ＢＥのリソース割当モジュールは他のＢＥの分析モジュールと接続され、各ＢＥの管理モジュールは相互接続される。図１７に示すように、第一ＢＥのリソース割当モジュールは第二ＢＥ及び第三ＢＥの分析モジュールと接続され、第一ＢＥの管理モジュールは第二ＢＥ及び第三ＢＥの管理モジュールと接続される。各ＢＥの管理モジュールにおける監視サブモジュールは、図１５または図１６に示すように、削除または加入要請を送信でき、データ・プールより削除または加入した後、他のＢＥとの相互接続を保持する。
【００９０】
本実施形態に係るデータ・ストレージ・システムは、データをストレージする際にあるノードの失敗が他ノードに負荷増加と不安定を与え、及びノードごとのリソース利用率が低いという従来のデータ・ストレージ・システムの問題点を解決でき、あるノードが失敗しても、システム全体としての高い安定性を確保でき、システム全体のリソース利用率と予測性を向上させることを実現した。
【００９１】
本発明の実施形態は多種多様であり、以上は図２〜図１７の例をあげながら、附図と関連して本発明の技術案を説明した。しかし、本発明が適用できる具体的な実例は、特定なフローや構造に制限されることを代表しない。当業者により、前述明細書に記述された実施形態は数多くの好ましい形態から選択された実例で、全ての設備でデータ・プールを構成し、また、異なるデータをデータ・プール内の異なるノードに分散ストレージする全ての技術案は、本発明の技術案が要求する保護範囲内と見なされる。
【００９２】
最後に注意すべきことは、前記実施例は本発明の技術的な解決手段の説明だけであり、技術上の制限とはならない。当業者により、上述した実施形態に記述された技術的な解決手段を改造し、またはその中の一部の技術要素を置換することもできる。そのような改造と置換は本発明の各実施例の技術の範囲から逸脱するとは見なされない。
【図１】
2011505617.tif 000006
【図２】
2011505617.tif 000007
【図３】
2011505617.tif 000008
【図４】
2011505617.tif 000009
【図５】
2011505617.tif 000010
【図６】
2011505617.tif 000011
【図７】
2011505617.tif 000012
【図８】
2011505617.tif 000013
【図９】
2011505617.tif 000014
【図１０】
2011505617.tif 000015
【図１１】
2011505617.tif 000016
【図１２】
2011505617.tif 000017
【図１３】
2011505617.tif 000018
【図１４】
2011505617.tif 000019
【図１５】
2011505617.tif 000020
【図１６】
2011505617.tif 000021
【図１７】
2011505617.tif 000022
【国際調査報告】
2011505617.tif 000023
2011505617.tif 000024
2011505617.tif 000025
2011505617.tif 000026
2011505617.tif 000027