JP2014186364A - 分散システム - Google Patents
分散システム Download PDFInfo
- Publication number
- JP2014186364A JP2014186364A JP2013058902A JP2013058902A JP2014186364A JP 2014186364 A JP2014186364 A JP 2014186364A JP 2013058902 A JP2013058902 A JP 2013058902A JP 2013058902 A JP2013058902 A JP 2013058902A JP 2014186364 A JP2014186364 A JP 2014186364A
- Authority
- JP
- Japan
- Prior art keywords
- block
- node
- processing
- task
- distributed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】分散システムが持つレプリカ配置ポリシーを崩すことなくブロックを再配置する分散ストレージシステムを得る。
【解決手段】分散ストレージと分散処理システムとを備え、各ノードがタスク処理部12を備えた分散システムにおいて、分散ストレージは、ファイルの生成時に各ノードへのブロック配置や負荷分散のためのレプリケーションを行うとともにブロックがどのノードに存在するかのメタデータを管理する分散ストレージ管理部22を備え、分散処理システムは、処理対象のファイルや処理中のタスクスケジュール状況から各ノードにタスク処理を割り当てて実行状態を管理する分散タスク処理管理部21と、各タスク処理部12のタスク処理回数や待ちタスク数等のアクセスデータを収集・集計するアクセス情報管理部23と、メタデータとアクセスデータとレプリケーションポリシーを利用してブロックの再配置を行うブロック再配置処理部24とを備える。
【選択図】図1
【解決手段】分散ストレージと分散処理システムとを備え、各ノードがタスク処理部12を備えた分散システムにおいて、分散ストレージは、ファイルの生成時に各ノードへのブロック配置や負荷分散のためのレプリケーションを行うとともにブロックがどのノードに存在するかのメタデータを管理する分散ストレージ管理部22を備え、分散処理システムは、処理対象のファイルや処理中のタスクスケジュール状況から各ノードにタスク処理を割り当てて実行状態を管理する分散タスク処理管理部21と、各タスク処理部12のタスク処理回数や待ちタスク数等のアクセスデータを収集・集計するアクセス情報管理部23と、メタデータとアクセスデータとレプリケーションポリシーを利用してブロックの再配置を行うブロック再配置処理部24とを備える。
【選択図】図1
Description
本発明は、分散ストレージシステムにおける分散ストレージのブロック再配置に関し、更に詳しくは、分散ストレージシステムが利用する分散ストレージのブロックを再配置することで、分散ストレージのレプリケーションポリシーを保持しつつ、分散ストレージシステムの負荷分散を可能とする分散システムに関する。
企業が持つログなどのデータは日々急激に増えており、もはやサーバ1台で処理することが困難となってきた。そのため、このような大容量データを保存し、高速に処理するために、複数のサーバを並べて同時利用する分散システムが普及してきている。
分散システムには、主にファイルを複数ノードに分割して分散配置する「分散ストレージ」と、処理を分散して並列計算を実行する「分散処理システム」を備えた形式が一般的となっている。この分散配置されたファイルは、ブロックと呼ばれる固定長データ単位で管理され、分散処理システムはこのブロックがあるノードに対して処理を分散し、そのノード上でブロックに対する処理を行う(以下、タスク処理と呼ぶ)。
このような分散システムの代表的な実装としては、非特許文献1に示されたオープンソースプロジェクトのApache Hadoop が存在する。
分散システムには、主にファイルを複数ノードに分割して分散配置する「分散ストレージ」と、処理を分散して並列計算を実行する「分散処理システム」を備えた形式が一般的となっている。この分散配置されたファイルは、ブロックと呼ばれる固定長データ単位で管理され、分散処理システムはこのブロックがあるノードに対して処理を分散し、そのノード上でブロックに対する処理を行う(以下、タスク処理と呼ぶ)。
このような分散システムの代表的な実装としては、非特許文献1に示されたオープンソースプロジェクトのApache Hadoop が存在する。
分散ストレージでは、データの耐障害性を高めるためにブロック単位でレプリカを1つあるいは複数生成し、オリジナルとは別のノードに分散配置することが行われている。
また、分電盤の故障等により複数ノードが同時に利用不可となる場合も考慮して、別のラック等の物理的に離れたノードに配置することで、更に高い耐障害性を得ることができる。
更には、分散処理時に、レプリケーションがあるノードのうち負荷の少ないノードを分散処理システムが選択できるようになり、負荷を均一化することができるようになる。このレプリケーションの配置場所は実装によって異なっており、それぞれが持つレプリケーションポリシーによって決定される。
また、分電盤の故障等により複数ノードが同時に利用不可となる場合も考慮して、別のラック等の物理的に離れたノードに配置することで、更に高い耐障害性を得ることができる。
更には、分散処理時に、レプリケーションがあるノードのうち負荷の少ないノードを分散処理システムが選択できるようになり、負荷を均一化することができるようになる。このレプリケーションの配置場所は実装によって異なっており、それぞれが持つレプリケーションポリシーによって決定される。
分散システムを運用していく上で、新しいノードを追加した場合や、データの挿入をし続けることで、ブロックが配置されているノードにブロック数の偏りが発生することがある。このような状態では分散処理システムのタスク処理が一部のノードに偏ってしまい、待ちタスクが発生する等の処理効率低下が発生する恐れがあり、これを回避するためにブロックの再配置を行うことが重要となる。このようなブロック再配置の手法については、例えば特許文献1や特許文献2に開示されるように、様々な方法が提案されている。
http://hadoop.apache.org/
特許文献1に記載の技術は、分散ストレージシステムにおいて、論理ボリューム上では管理できなかった物理ボリュームの負荷状況を把握し、各ノードの負荷を均一化させる手法である。
また、特許文献2に記載の技術は、分散ストレージシステムにおいて、処理の多くはバッチであることに着目し、データに対するアクセス負荷とその時刻を記憶し、負荷が大きくなる時刻に応じて、対象ノードのデータを再配置する手法である。
しかしながら、これらの手法は、分散ストレージにおけるレプリケーションポリシーを考慮しておらず、耐障害性が低下する可能性がある。
また、特許文献2に記載の技術は、分散ストレージシステムにおいて、処理の多くはバッチであることに着目し、データに対するアクセス負荷とその時刻を記憶し、負荷が大きくなる時刻に応じて、対象ノードのデータを再配置する手法である。
しかしながら、これらの手法は、分散ストレージにおけるレプリケーションポリシーを考慮しておらず、耐障害性が低下する可能性がある。
また、非特許文献1に記載の技術は、レプリケーションポリシーを保持しつつ、ノードが保持するブロック数を均等化する。しかしこの手法によれば、ノードやブロックに対する負荷を考慮していないため、あるブロックの全てのレプリケーションが高負荷のノードに偏る可能性がある。
すなわち、分散ストレージシステムにおける従前の各再配置手法によれば、レプリケーションポリシーを考慮しつつ、分散システムにおけるノードやブロックへのタスク処理の負荷を考慮してリソースの利用効率を高めるブロックの再配置手法は存在しなかった。
また、負荷の評価軸として利用されるアクセス情報は、アクセス回数などを単体で利用するだけでは、負荷の原因となる資源の占有度合いを判定することができない。例えば、アクセス頻度等のCPU利用率を考慮しただけの考え方では、メモリを短期間で大量利用する処理を負荷として認識できない。このことから、ブロック再配置を実施しても、ノードの他の資源の利用率の偏りが解消されず、実際には負荷が均等化されないことがある。
更には、大規模な分散システムとなると、性能が異なる複数ノードで分散システムが構成されることが多い。この場合、性能が異なるノード間で単純にアクセス情報を比較すると、性能の低いノードが、実際には高負荷状態であるにも関わらず、負荷が低い状態だと判断されてしまう場合があった。
本発明は上記実情に鑑みて提案されたもので、分散システムにおいて、ノードの性能の偏りを考慮した統合的なアクセス情報とレプリケーション機能を利用して、分散ストレージが持つレプリカ配置ポリシーを崩すことなくブロックを再配置することで、分散システムの耐障害性を維持しながら各ノードの負荷要因を分散して、リソース利用効率の向上を図る分散システムを提供することを目的としている。
上記目的を達成するため本発明の請求項1は、ファイルを構成する複数のブロックを複数ノードに分散して保有する分散ストレージと、前記各ノードに存在するブロックに対してタスク処理を実施する分散処理システムとを備えるとともに、前記各ノードは、前記ブロックに対するタスク処理を実行するタスク処理部と、前記ブロックを保持し前記タスク処理部にブロックを提供するストレージ部とを備えた分散システムにおいて、次の各構成を備えることを特徴としている。
前記分散ストレージは、前記ファイルの生成時に前記各ノードへのブロック配置や負荷分散のためのレプリケーションを行うとともに、前記ブロックがどのノードに存在するかのメタデータを管理する分散ストレージ管理部を備えている。
前記分散処理システムは、処理対象のファイルや処理中のタスクスケジュール状況から前記各ノードにタスク処理を割り当てて実行状態を管理する分散タスク処理管理部と、前記各タスク処理部のタスク処理回数や待ちタスク数等のアクセスデータを収集・集計するアクセス情報管理部と、前記メタデータと前記アクセスデータと前記レプリケーションポリシーを利用して前記ブロックの再配置を行うブロック再配置処理部とを備えている。
前記分散ストレージは、前記ファイルの生成時に前記各ノードへのブロック配置や負荷分散のためのレプリケーションを行うとともに、前記ブロックがどのノードに存在するかのメタデータを管理する分散ストレージ管理部を備えている。
前記分散処理システムは、処理対象のファイルや処理中のタスクスケジュール状況から前記各ノードにタスク処理を割り当てて実行状態を管理する分散タスク処理管理部と、前記各タスク処理部のタスク処理回数や待ちタスク数等のアクセスデータを収集・集計するアクセス情報管理部と、前記メタデータと前記アクセスデータと前記レプリケーションポリシーを利用して前記ブロックの再配置を行うブロック再配置処理部とを備えている。
請求項2は、請求項1の分散処理システムにおいて、前記各ノードのストレージ部のノード間の性能差を考慮した負荷状況を管理し、前記負荷状況が予め定めた基準を超えた場合に、前記ブロック再配置処理部による各ブロックの再配置処理を行う再配置処理トリガ手段を備えたことを特徴としている。
請求項3は、請求項2の分散処理システムにおいて、
前記負荷状況を評価する要素は、
前記ノード及びブロックにおけるタスク実行回数であるアクセス回数、
前記ノードにおけるタスクの資源解放待ち時間であるタスク待ち時間、
前記ノード及びブロックにおけるタスクの処理開始から終了までの時間であるタスク処理時間、
前記ノード及びブロックに対する処理時のタスクが利用したメモリの消費量である消費メモリ、
前記ノードが保持するブロック数
のいずれか一つ以上を含むものであることを特徴としている。
前記負荷状況を評価する要素は、
前記ノード及びブロックにおけるタスク実行回数であるアクセス回数、
前記ノードにおけるタスクの資源解放待ち時間であるタスク待ち時間、
前記ノード及びブロックにおけるタスクの処理開始から終了までの時間であるタスク処理時間、
前記ノード及びブロックに対する処理時のタスクが利用したメモリの消費量である消費メモリ、
前記ノードが保持するブロック数
のいずれか一つ以上を含むものであることを特徴としている。
請求項4は、請求項1の分散処理システムにおいて、新たなノードが接続された場合に、前記ブロック再配置処理部による各ブロックの再配置処理を行う再配置処理トリガ手段を備えたことを特徴としている。
請求項5は、請求項1の分散処理システムにおいて、前記分散ストレージ管理部は、負荷分散のためのレプリケーションを行うに際して、前記各ノード間の性能差を考慮したレプリケーションルールを備えたことを特徴としている。
請求項6は、請求項2の分散処理システムにおいて、前記分散ストレージ管理部は、負荷分散のためのレプリケーションを行うに際して、前記負荷状況を考慮したレプリケーションルールを備えたことを特徴としている。
本発明の分散システムによれば、ブロック再配置処理部により、メタデータとアクセスデータとレプリケーションポリシーを利用してブロックの再配置を行うので、分散ストレージのレプリケーションポリシーを考慮することで、耐故障性を維持しながら負荷分散を行うことができる。
また、分散システムにおけるノード間の性能差及び負荷状況を考慮した統合的なアクセス情報を利用することで、ノードへのアクセス局所性を平均化し、リソース利用効率をより向上させることができる。
また、分散システムにおけるノード間の性能差及び負荷状況を考慮した統合的なアクセス情報を利用することで、ノードへのアクセス局所性を平均化し、リソース利用効率をより向上させることができる。
本発明の分散システムの実施形態の一例について、図面を参照しながら説明する。
本発明の分散システムは、分散ストレージのレプリケーションポリシーを考慮して耐故障性を維持しながら負荷分散をしつつ、かつ分散システムのノード間の性能差を考慮した統合的なアクセス情報を利用することでノードへのアクセス局所性を平均化し、リソース利用効率をより向上させるブロック再配置を実現するものである。
本発明の分散システムは、分散ストレージのレプリケーションポリシーを考慮して耐故障性を維持しながら負荷分散をしつつ、かつ分散システムのノード間の性能差を考慮した統合的なアクセス情報を利用することでノードへのアクセス局所性を平均化し、リソース利用効率をより向上させるブロック再配置を実現するものである。
このような分散システムは、図1に示すように、ブロックを複数のノード(分散システムノード)10に分散して保有する分散システムノード群1と、各ノード10に配置されたブロックに対してタスク処理を実施する分散処理部2とがLAN3を介して接続されることで構築されている。
ノード(分散システムノード)10は、実際にブロックを保持しタスク処理部12にブロックを提供するストレージ部11と、ブロックに対するタスク処理を実行するタスク処理部12を備える。
分散処理部2は、タスクの実行状態を管理する分散タスク処理管理部21と、各ノードのメタデータを管理する分散ストレージ管理部22と、各ノードへのアクセスデータを管理するアクセス情報管理部23と、ノードに対するブロックの再配置を行うブロック再配置処理部24を備える。分散タスク処理管理部21と、分散ストレージ管理部22と、アクセス情報管理部23と、ブロック再配置処理部24との相互間においては、LAN3で接続されることで、必要な情報が送受信可能となっている。
分散処理部2は、タスクの実行状態を管理する分散タスク処理管理部21と、各ノードのメタデータを管理する分散ストレージ管理部22と、各ノードへのアクセスデータを管理するアクセス情報管理部23と、ノードに対するブロックの再配置を行うブロック再配置処理部24を備える。分散タスク処理管理部21と、分散ストレージ管理部22と、アクセス情報管理部23と、ブロック再配置処理部24との相互間においては、LAN3で接続されることで、必要な情報が送受信可能となっている。
分散タスク処理管理部21は、ユーザからのアクセスに対して、処理対象のファイルや処理中のタスクスケジュール状況から、各ノード10にタスク処理を割り当て、その実行状態を管理するとともに、分散システムにおけるアクセスの不均衡状態の判定を行う。すなわち、各ノード10のタスク処理部12と分散タスク処理管理部21とで、各ノード10に存在するブロックに対してタスク処理を実施する分散処理システムが構成される。
分散ストレージ管理部22は、ユーザからのアクセスに対して、ファイル生成時における各ノード10へのブロック配置やレプリケーションを行い、ブロックがどのノード10に存在するか等のメタデータを管理する。メタデータは、メタデータデータベース221に格納される。すなわち、各ノード10のストレージ部11と分散ストレージ管理部22とで、ファイルを構成する複数のブロックを複数ノードに分散して保有する分散ストレージが構成される。
レプリケーションとは、ファイルを構成する一つのブロックをあるノード10に配置する場合に、当該ノード10に障害が生じた場合でも、当該ブロックと同じ内容のレプリカを他のノードに配置することで、ファイルを再現可能な状態を予め設定しておくことである。
また、分散ストレージ管理部22は、負荷分散のためのレプリケーションを行うに際して、各ノード10間の性能差を考慮したレプリケーションルールを備えている。例えば、各ノード10におけるストレージ容量が異なる場合には、ストレージ容量が大きいノード10にブロックを配置する割合が多くなるよう設定されている。また、ノード10間の性能差には、CPUコア数、CPUクロック、メモリ容量等が挙げられる。ノード間の性能差を考慮したアクセス情報を利用した負荷の判定例については後述する。
また、分散ストレージ管理部22は、負荷分散のためのレプリケーションを行うに際して、各ノード10間の性能差を考慮したレプリケーションルールを備えている。例えば、各ノード10におけるストレージ容量が異なる場合には、ストレージ容量が大きいノード10にブロックを配置する割合が多くなるよう設定されている。また、ノード10間の性能差には、CPUコア数、CPUクロック、メモリ容量等が挙げられる。ノード間の性能差を考慮したアクセス情報を利用した負荷の判定例については後述する。
アクセス情報管理部23は、各タスク処理部12のタスク処理回数や待ちタスク数等のアクセスデータを収集・集計する。収集したアクセスデータは、アクセスデータベース231に格納される。アクセス情報の収集は、分散システムの分散ストレージにおける各ノード10の負荷を平均化するために行われる。
アクセス情報管理部23におけるアクセス情報を収集する処理手順について、図2のフローチャートを参照して説明する。
ユーザからのアクセスに対して、分散タスク処理管理部21がタスクスケジュール状況から分散ストレージにおけるタスク割り当てノード10を決定する(ステップ31)。
分散タスク処理管理部21がタスク割り当てを行う(ステップ32)。
アクセス情報管理部23がタスク待ちの発生の有無を判断し(ステップ33)、タスク待ちが発生する場合は、タスク待ち情報を収集する(ステップ34)。
ステップ33においてタスク待ちが発生しない場合、又は、ステップ34でタスク待ち情報を収集した後、アクセス情報を収集する(ステップ35)。
アクセス情報管理部23がアクセスデータベース231のアクセス情報を更新する(ステップ36)。
ユーザからのアクセスに対して、分散タスク処理管理部21がタスクスケジュール状況から分散ストレージにおけるタスク割り当てノード10を決定する(ステップ31)。
分散タスク処理管理部21がタスク割り当てを行う(ステップ32)。
アクセス情報管理部23がタスク待ちの発生の有無を判断し(ステップ33)、タスク待ちが発生する場合は、タスク待ち情報を収集する(ステップ34)。
ステップ33においてタスク待ちが発生しない場合、又は、ステップ34でタスク待ち情報を収集した後、アクセス情報を収集する(ステップ35)。
アクセス情報管理部23がアクセスデータベース231のアクセス情報を更新する(ステップ36)。
分散システムが分散処理を実施する場合、図3に示すように、分散タスク処理管理部21は、分散ストレージ管理部22のメタデータ(メタデータデータベース221)を利用して処理対象となるブロックを特定し、これと各ノード10の負荷状況(処理タスクの数等)から処理タスクを割り振るノード10を選択する。その後、ノード10のタスク処理部12にて対象のファイルのブロックにタスク処理を実行する。
このとき、タスク処理を実施したノード10と対象のブロックの情報を、アクセス情報管理部23が収集して集計することで、アクセスデータを蓄積・更新していく。
このとき、タスク処理を実施したノード10と対象のブロックの情報を、アクセス情報管理部23が収集して集計することで、アクセスデータを蓄積・更新していく。
また、実行中のタスクによりノード10のリソース(CPUコア等)が既に埋まっている場合、新規タスクはタスク処理部12において待ち状態となる。上記のようなブロックやノード10へのアクセスデータだけでは瞬間的な負荷状況を考慮することができないため、この待ち状態も同様にアクセス情報管理部23のアクセスデータベース231で収集し、アクセスデータとして利用することで、負荷分散を考慮したブロック配置を可能とする。
ブロック再配置処理部24は、メタデータデータベース221に記録されたメタデータと、アクセスデータベース231に記録されたアクセスデータと、レプリケーションポリシーを利用して、ブロック再配置を行う。ブロック再配置処理部24は、ブロック再配置が必要な場合に再配置を開始実行する再配置処理トリガ手段を備えている。このブロック再配置は、メタデータデータベース221のメタデータや、アクセスデータデータベース231のアクセスデータについて、ブロック再配置処理部24の再配置処理トリガ手段が解析することで、ブロックの再配置が必要であると判断した場合、若しくは、ユーザが手動で行った場合に実行される。
例えば、再配置処理トリガ手段が各ノード10のストレージ部11の負荷状況を管理し、この負荷状況が予め定めた基準を超えた場合に、各ブロックの再配置処理を行うようにする。
また、再配置処理トリガ手段は、分散処理部2に対して新たなノードが接続された場合に、ブロックの再配置が必要であると判断し、ブロック再配置処理部24による各ブロックの再配置処理を開始する。
また、再配置処理トリガ手段は、分散処理部2に対して新たなノードが接続された場合に、ブロックの再配置が必要であると判断し、ブロック再配置処理部24による各ブロックの再配置処理を開始する。
また、ブロック再配置を行うに際しては、分散ストレージが持つレプリケーションポリシーが考慮されることで、再配置による耐故障性の低下を防止し、かつレプリケーションによる負荷分散を実現可能とする。
更には、特定ブロックに対する負荷を分散するために、アクセス情報管理部23にて収集したアクセスデータを利用してストレージ部11のブロックを再配置することで、待ち状態となるノード10を最小にし、レプリケーションによる負荷分散の効果を高め、リソースの利用効率を向上させる。
更には、特定ブロックに対する負荷を分散するために、アクセス情報管理部23にて収集したアクセスデータを利用してストレージ部11のブロックを再配置することで、待ち状態となるノード10を最小にし、レプリケーションによる負荷分散の効果を高め、リソースの利用効率を向上させる。
次に、ブロック再配置処理部24によるブロックの再配置に関する具体的な処理手順について、図4のフローチャートを参照して説明する。
ブロック再配置処理が開始すると(ステップ41)、ブロック再配置処理部24は先ず移動元のブロックを選択する(ステップ42)。そのために、アクセス情報管理部23のアクセスデータを利用して、最も負荷が大きいノード10を選択する。その後、選択したノード10の中から、最も負荷が大きいブロックを選択する。
ブロック再配置処理が開始すると(ステップ41)、ブロック再配置処理部24は先ず移動元のブロックを選択する(ステップ42)。そのために、アクセス情報管理部23のアクセスデータを利用して、最も負荷が大きいノード10を選択する。その後、選択したノード10の中から、最も負荷が大きいブロックを選択する。
次に、移動先としてアクセス情報管理部23のアクセスデータから最も負荷が小さいノード10を選択し、タスクが待ち状態となるような負荷の高いブロックを、リソースが空いているノード10に移動する。このとき、もし移動元のブロック数が移動先のブロック数以下の場合は、移動先ノードの中で最も負荷の小さいブロックを選択する(ステップ44)。
ここでレプリケーションポリシーをチェックするために、選択した移動元及び移動先のブロックについて、ポリシーに従ってレプリケーションの有無を確認し(ステップ46)、違反する場合は再度移動先ノード及びブロックを選びなおす。
完了条件として予め定めた分散システム全体の負荷状態に収まらなかった(予め定めた負荷状況を超えた状態が継続している)場合は(ステップ48)、移動元ノードの選択から再実行とする。
一定の条件に達してシステム全体の負荷状況が均衡となった場合は、ブロック再配置が完了となる(ステップ49)。
完了条件として予め定めた分散システム全体の負荷状態に収まらなかった(予め定めた負荷状況を超えた状態が継続している)場合は(ステップ48)、移動元ノードの選択から再実行とする。
一定の条件に達してシステム全体の負荷状況が均衡となった場合は、ブロック再配置が完了となる(ステップ49)。
レプリケーションポリシーの例として、前述した非特許文献1のApache Hadoopを適用することができる。Apache Hadoopでは、ノードの塊としてラックという単位を採用し、ユーザが自由に複数ノードをラックに登録することが可能となっている。Apache Hadoopはブロックを生成すると同時にレプリケーションするが、ポリシーとしては、次の(1)〜(3)を満たすようにレプリケーションが行われる。
(1)一つ目のレプリカはオリジナルと異なるラック
(2)二つ目のレプリカは一つ目と同じラックの異なるノード
(3)3つ目以降はランダムのノード(他のレプリカと別ノード)
なお、レプリカの数はユーザが指定する。
(1)一つ目のレプリカはオリジナルと異なるラック
(2)二つ目のレプリカは一つ目と同じラックの異なるノード
(3)3つ目以降はランダムのノード(他のレプリカと別ノード)
なお、レプリカの数はユーザが指定する。
この例でレプリケーションポリシーの違反となる場合は、交換対象のブロックそれぞれに対して、(1)移動先ノードに移動元ブロックのレプリカがある場合、(2)移動元ラックに移動元ブロック以外のレプリカがない状態でかつ移動先ラックに一つ以上移動元ブロックのレプリカがある場合、である。
移動又は交換するブロックが決定し、レプリケーションポリシーに違反がないことを確認した時点で、移動又は交換を実行する。その後、最後に実現すべき分散システムのブロック配置状態となっているかについてノードのアクセス情報を確認し、条件を満たしていなければ、再度移動元ブロックの選択からブロックの再配置処理を実行する。この完了条件を満たしていれば、アクセス情報が均等に分散している状態となり、リソース利用効率を向上させることができる。
分散システム内の負荷の不均衡状態を正確に評価するために、ノードごとの資源量に応じた複数のアクセス情報を以下に定義する。これらのアクセス情報は、分散システムにおける負荷を評価するために必要な要素となる。
・アクセス回数:ノード及びブロックにおけるタスク実行回数
・タスク待ち時間:ノードにおけるタスクの資源解放待ち時間
・タスク処理時間:ノード及びブロックにおけるタスクの処理開始から終了までの時間
・メモリ消費量:ノード及びブロックに対する処理時のタスクが利用したメモリの消費量
・ブロック数:ノードが保持するブロック数
・アクセス回数:ノード及びブロックにおけるタスク実行回数
・タスク待ち時間:ノードにおけるタスクの資源解放待ち時間
・タスク処理時間:ノード及びブロックにおけるタスクの処理開始から終了までの時間
・メモリ消費量:ノード及びブロックに対する処理時のタスクが利用したメモリの消費量
・ブロック数:ノードが保持するブロック数
更に、各ノードにおける性能の違いを考慮するためアクセス情報に対する重み付けを定義する。
・CPUコア比:クラスタの平均コア数に対する特定ノードのコア数の割合
・CPUクロック比:クラスタの平均クロック数に対する特定ノードのクロック数の割合
・メモリ容量比:クラスタの平均メモリ容量に対する特定ノードのメモリ容量の割合
・ストレージ容量比:クラスタの平均ドライブ容量に対する特定ノードのストレージ容量の割合
・CPUコア比:クラスタの平均コア数に対する特定ノードのコア数の割合
・CPUクロック比:クラスタの平均クロック数に対する特定ノードのクロック数の割合
・メモリ容量比:クラスタの平均メモリ容量に対する特定ノードのメモリ容量の割合
・ストレージ容量比:クラスタの平均ドライブ容量に対する特定ノードのストレージ容量の割合
アクセス回数等の各アクセス情報(要素)に対する重み付けは、経験則に基づき例えば、図5に示すような対応で行う。すなわち、アクセス回数に対しては、CPUコア比及びメモリ容量比で重み付けを行う。タスク待ち時間に対しては、CPUコア比及びメモリ容量比で重み付けを行う。タスク処理時間に対しては、CPUクロック比で重み付けを行う。消費メモリ量に対しては、メモリ容量比で重み付けを行う。ブロック数に対しては、ストレージ容量比で重み付けを行う。
負荷を評価する要素のそれぞれを、関係する性能の重みで割ることで、各ノードの性能差を埋め、平等に各ノード及びブロックの負荷を評価する。それぞれの評価要素に関連するノードの性能を図5に示す。結果として得られる、重み付けをされた評価要素を総合的に利用することで、ノードの性能差があるクラスタ環境の負荷を、正確に判定することが可能となる。
ここで、ノード間の性能差を考慮したアクセス情報を利用した負荷の判定例として、分散システムにおけるノードとブロックの負荷状態の計算例を示す。
まずは、ノード間の性能差を考慮して重み付けしたアクセス情報であるアクセス回数(a)、タスク待ち時間(w)、タスク処理時間(l)、メモリ消費量(m)、ブロック数(b)に対して、クラスタにおける各ノードの偏差値Tを計算する。
この偏差値を利用して、ブロック及びノードの負荷状況に関連する要素の平均偏差値を計算し、これを負荷の状態を表す負荷値として利用する。
まずは、ノード間の性能差を考慮して重み付けしたアクセス情報であるアクセス回数(a)、タスク待ち時間(w)、タスク処理時間(l)、メモリ消費量(m)、ブロック数(b)に対して、クラスタにおける各ノードの偏差値Tを計算する。
この偏差値を利用して、ブロック及びノードの負荷状況に関連する要素の平均偏差値を計算し、これを負荷の状態を表す負荷値として利用する。
その計算式は、以下の通りとなる。
なお、偏差値T(x)のxは、アクセス情報の要素を表す。
ブロックの負荷値 : ( T(a) + T(l) + T(m) ) / 3
ノードの負荷値 : ( T(a) + T(w) + T(l) + T(m) + T(b) ) / 5
なお、偏差値T(x)のxは、アクセス情報の要素を表す。
ブロックの負荷値 : ( T(a) + T(l) + T(m) ) / 3
ノードの負荷値 : ( T(a) + T(w) + T(l) + T(m) + T(b) ) / 5
分散タスク処理管理部21において、分散システムのアクセスの不均衡状態を判定するためには、各ノード10の負荷値を算出し、この値が異常に高い、若しくは低いノード10を検出すればよい。
また、ブロック再配置処理部24によるブロック再配置においては、各ノード10及びブロックの負荷値をアクセス情報として利用することで、負荷を均等にするための再配置すべきノード及びブロックを選択できる。
また、ブロック再配置処理部24によるブロック再配置においては、各ノード10及びブロックの負荷値をアクセス情報として利用することで、負荷を均等にするための再配置すべきノード及びブロックを選択できる。
1…分散システムノード群、 2…分散処理部、 3…LAN、 10…ノード(分散システムノード)、 11…ストレージ部、 12…タスク処理部、 21…分散タスク処理管理部、 22…分散ストレージ管理部、 23…アクセス情報管理部、 24…ブロック再配置処理部。
Claims (6)
- ファイルを構成する複数のブロックを複数ノードに分散して保有する分散ストレージと、前記各ノードに存在するブロックに対してタスク処理を実施する分散処理システムとを備えるとともに、前記各ノードは、前記ブロックに対するタスク処理を実行するタスク処理部と、前記ブロックを保持し前記タスク処理部にブロックを提供するストレージ部とを備えた分散システムにおいて、
前記分散ストレージは、
前記ファイルの生成時に前記各ノードへのブロック配置や負荷分散のためのレプリケーションを行うとともに、前記ブロックがどのノードに存在するかのメタデータを管理する分散ストレージ管理部を備え、
前記分散処理システムは、
処理対象のファイルや処理中のタスクスケジュール状況から前記各ノードにタスク処理を割り当てて実行状態を管理する分散タスク処理管理部と、
前記各タスク処理部のタスク処理回数や待ちタスク数等のアクセスデータを収集・集計するアクセス情報管理部と、
前記メタデータと前記アクセスデータと前記レプリケーションポリシーを利用して前記ブロックの再配置を行うブロック再配置処理部とを備えた
ことを特徴とする分散システム。 - 前記各ノードのストレージ部の負荷状況を管理し、ノード間の性能差を考慮した前記負荷状況が予め定めた基準を超えた場合に、前記ブロック再配置処理部による各ブロックの再配置処理を行う再配置処理トリガ手段を備えた請求項1に記載の分散システム。
- 前記負荷状況を評価する要素は、
前記ノード及びブロックにおけるタスク実行回数であるアクセス回数、
前記ノードにおけるタスクの資源解放待ち時間であるタスク待ち時間、
前記ノード及びブロックにおけるタスクの処理開始から終了までの時間であるタスク処理時間、
前記ノード及びブロックに対する処理時のタスクが利用したメモリの消費量である消費メモリ、
前記ノードが保持するブロック数
のいずれか一つ以上を含むものである請求項2に記載の分散システム。 - 新たなノードが接続された場合に、前記ブロック再配置処理部による各ブロックの再配置処理を行う再配置処理トリガ手段を備えた請求項1に記載の分散システム。
- 前記分散ストレージ管理部は、負荷分散のためのレプリケーションを行うに際して、前記各ノード間の性能差を考慮したレプリケーションルールを備えた請求項1に記載の分散システム。
- 前記分散ストレージ管理部は、負荷分散のためのレプリケーションを行うに際して、前記負荷状況を考慮したレプリケーションルールを備えた請求項2に記載の分散システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013058902A JP2014186364A (ja) | 2013-03-21 | 2013-03-21 | 分散システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013058902A JP2014186364A (ja) | 2013-03-21 | 2013-03-21 | 分散システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014186364A true JP2014186364A (ja) | 2014-10-02 |
Family
ID=51833928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013058902A Pending JP2014186364A (ja) | 2013-03-21 | 2013-03-21 | 分散システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014186364A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016095561A (ja) * | 2014-11-12 | 2016-05-26 | 日本電気株式会社 | 制御装置、分散データベースシステム、方法およびプログラム |
JP2016153929A (ja) * | 2015-02-20 | 2016-08-25 | 日本電信電話株式会社 | 分散システム、負荷分散方法及びプログラム |
JP2017016404A (ja) * | 2015-07-01 | 2017-01-19 | 日本電信電話株式会社 | 分散ストレージシステム、データ再配置方法およびデータ再配置プログラム |
KR20180016479A (ko) * | 2015-07-29 | 2018-02-14 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 분산 데이터베이스의 부하를 레벨링하는 방법 및 장치 |
JP2019121334A (ja) * | 2017-12-29 | 2019-07-22 | 広東技術師範学院 | データストレージとダイナミックマイグレーション方法及びデータストレージとダイナミックマイグレーション装置 |
JP2019121333A (ja) * | 2017-12-29 | 2019-07-22 | 広東技術師範学院 | データダイナミックマイグレーション方法とデータダイナミックマイグレーション装置 |
US10789101B2 (en) | 2017-08-23 | 2020-09-29 | Fujitsu Limited | Information processing apparatus, processing distribution method, and storage medium |
JP2021521551A (ja) * | 2018-04-30 | 2021-08-26 | アマゾン テクノロジーズ インコーポレイテッド | ブロックストレージシステムのための分散されたレプリカ |
-
2013
- 2013-03-21 JP JP2013058902A patent/JP2014186364A/ja active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016095561A (ja) * | 2014-11-12 | 2016-05-26 | 日本電気株式会社 | 制御装置、分散データベースシステム、方法およびプログラム |
JP2016153929A (ja) * | 2015-02-20 | 2016-08-25 | 日本電信電話株式会社 | 分散システム、負荷分散方法及びプログラム |
JP2017016404A (ja) * | 2015-07-01 | 2017-01-19 | 日本電信電話株式会社 | 分散ストレージシステム、データ再配置方法およびデータ再配置プログラム |
KR20180016479A (ko) * | 2015-07-29 | 2018-02-14 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 분산 데이터베이스의 부하를 레벨링하는 방법 및 장치 |
JP2018521439A (ja) * | 2015-07-29 | 2018-08-02 | ▲騰▼▲訊▼科技(深▲セン▼)有限公司 | 分散データベースの負荷を平準化するための方法および装置 |
KR102047900B1 (ko) * | 2015-07-29 | 2019-12-04 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 분산 데이터베이스의 부하를 레벨링하는 방법 및 장치 |
US10554737B2 (en) | 2015-07-29 | 2020-02-04 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for leveling loads of distributed databases |
US10789101B2 (en) | 2017-08-23 | 2020-09-29 | Fujitsu Limited | Information processing apparatus, processing distribution method, and storage medium |
JP2019121334A (ja) * | 2017-12-29 | 2019-07-22 | 広東技術師範学院 | データストレージとダイナミックマイグレーション方法及びデータストレージとダイナミックマイグレーション装置 |
JP2019121333A (ja) * | 2017-12-29 | 2019-07-22 | 広東技術師範学院 | データダイナミックマイグレーション方法とデータダイナミックマイグレーション装置 |
JP2021521551A (ja) * | 2018-04-30 | 2021-08-26 | アマゾン テクノロジーズ インコーポレイテッド | ブロックストレージシステムのための分散されたレプリカ |
JP7171757B2 (ja) | 2018-04-30 | 2022-11-15 | アマゾン テクノロジーズ インコーポレイテッド | ブロックストレージシステムのための分散されたレプリカ |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2014186364A (ja) | 分散システム | |
CN109218355B (zh) | 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法 | |
Tang et al. | An intermediate data placement algorithm for load balancing in spark computing environment | |
Zaharia et al. | Job scheduling for multi-user mapreduce clusters | |
JP5998206B2 (ja) | クラスタデータグリッドにおける拡張可能な中央集中型動的リソース分散 | |
JP5664098B2 (ja) | 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム | |
Xie et al. | Pandas: robust locality-aware scheduling with stochastic delay optimality | |
CN106101213A (zh) | 信息分布式存储方法 | |
Lin et al. | A load-balancing algorithm for hadoop distributed file system | |
CN104199739A (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
CN107729514A (zh) | 一种基于hadoop的副本放置节点确定方法及装置 | |
Hou et al. | Dynamic workload balancing for hadoop mapreduce | |
Klems et al. | The yahoo! cloud datastore load balancer | |
Dargie et al. | Energy-aware service execution | |
Yang et al. | An energy-efficient storage strategy for cloud datacenters based on variable K-coverage of a hypergraph | |
Bae et al. | Novel data‐placement scheme for improving the data locality of Hadoop in heterogeneous environments | |
Jammal et al. | A formal model for the availability analysis of cloud deployed multi-tiered applications | |
Oral et al. | Supporting performance isolation in software as a service systems with rich clients | |
Taheri et al. | Genetic algorithm in finding Pareto frontier of optimizing data transfer versus job execution in grids | |
Zhao et al. | Dream-(l) g: A distributed grouping-based algorithm for resource assignment for bandwidth-intensive applications in the cloud | |
Funari et al. | Storage-saving scheduling policies for clusters running containers | |
Myint et al. | Comparative analysis of adaptive file replication algorithms for cloud data storage | |
CN106599184B (zh) | 一种Hadoop系统优化方法 | |
Zhao et al. | An improved data placement strategy in a heterogeneous hadoop cluster | |
Lin et al. | An overall approach to achieve load balancing for Hadoop Distributed File System |