JP5470148B2 - ノード装置及びコンピュータプログラム - Google Patents
ノード装置及びコンピュータプログラム Download PDFInfo
- Publication number
- JP5470148B2 JP5470148B2 JP2010096986A JP2010096986A JP5470148B2 JP 5470148 B2 JP5470148 B2 JP 5470148B2 JP 2010096986 A JP2010096986 A JP 2010096986A JP 2010096986 A JP2010096986 A JP 2010096986A JP 5470148 B2 JP5470148 B2 JP 5470148B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- node device
- file
- unit
- storage
- 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.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
分散ファイルシステムは、コンピュータネットワークで接続された複数のストレージサーバーを見かけ上1台の蓄積装置とみなして、ファイルの読み出しや書き込みなどのファイル操作を利用者に提供するシステムである。
つまり、ストレージノードと、ファイルストレージ以外の個別の機能を持った機能ノードとからなる分散ファイルシステムにおいては、必要に応じて機能ノードを頻繁にオーバーレイネットワークに参加、離脱させると、ファイルIDを管理するノードが頻繁に変更になってしまい、ファイルを記憶しているストレージノード自体には参加や離脱が発生しなくても、ファイルIDを検索できない期間が増大するという問題がある。
この発明によれば、ネットワークを介して接続される複数のノード装置から構成される分散ファイルシステムにおいて、各ノード装置は、ファイル検索用のノードテーブルと、ノード装置管理用のノードテーブルを保持し、ファイルを保管するストレージノード装置については、検索用のノードテーブル及び管理用のノードテーブルにノード情報を登録し、付加機能を有するノード装置については、管理用のノードテーブルにのみノード情報を登録する。
これにより、分散ファイルシステムの稼働中であっても、ファイル管理に影響を及ぼすことなく、ファイル記憶以外の個別の機能を有するノードの追加や削除が可能となる。また、検索用ノードテーブルを同期させる必要がないため、ネットワークやノード装置に負荷がかからない。
この発明によれば、分散ファイルシステムから離脱したノード装置を検出し、検索用のノードテーブルと管理用のノードテーブルからこの離脱したノード装置の情報を削除するとともに、他のノード装置へも当該ノード装置の離脱を通知する。
これにより、ノード装置が分散ファイルシステムから離脱するときに、他のノード装置へ離脱を通知しなくとも、検索用のノードテーブルと管理用のノードテーブルを更新することができる。
この発明によれば、ノード装置は、分散ファイルシステムにおける管理対象のファイルを記憶するとともに、ファイルが記憶されているストレージノード装置のアドレスを管理する。そして、ファイルIDを受信すると、該ファイルIDのファイルを記憶しているストレージノード装置のアドレスを返送する。また、自身が記憶しているファイルに対して、他のノード装置から指示されたファイル操作を行なう。
これにより、ノード装置は、ストレージノード装置として機能し、分散ファイルシステムにおける管理対象のファイルの所在を管理するとともに、他のノード装置から自身が記憶しているファイルに対するファイル操作を可能とする。
この発明によれば、ノード装置は、各ノード装置のステータス情報を分散管理し、問合せがあった場合には、管理しているステータス情報を出力する。
これにより、ストレージノード装置として機能するノード装置において、分散ファイルシステム内の各ストレージノード装置のステータス情報を分散し管理し、ストレージノード装置の使用ディスク容量を均等化する容量負荷分散ノード装置として機能するノード装置や、各ノード装置のステータス情報をユーザに提供する管理ノード装置として機能するノード装置にステータス情報を通知することができる。
この発明によれば、クライアント装置からファイル操作指示を受信し、検索用ノードテーブルを利用してファイル操作対象のファイルの所在を検索し、検索の結果得られたストレージノード装置にファイル操作指示を出力する。
これにより、ノード装置はアクセスノード装置として機能し、クライアント装置に対して、分散ファイルシステムで管理しているファイルへのファイル操作を可能とする。
この発明によれば、分散ファイルシステム内の各ストレージノード装置のステータス情報を取得し、取得したステータス情報に基づいて、各ストレージノード装置における使用ディスク容量が均等に近づくよう、ストレージノード装置間でファイルを移動させる。
これにより、容量負荷分散ノード装置として機能するノード装置は、ユーザによる操作を必要とせず、分散ファイルシステム内の各ストレージノード装置のディスク使用率が均等に近づくように調整することができる。例えば、ファイル未登録のストレージノード装置を分散ファイルシステムに参加させた場合、管理者が明示的にファイル移動を指示しなくとも、ディスク使用率が高いストレージノード装置から新たに参加したストレージノード装置へファイルを移動させることができる。
この発明によれば、検索用ノードテーブルを用いて、各ストレージノード装置のステータス情報を記憶しているストレージノード装置を検索し、この検索の結果得られたストレージノード装置から読み出したステータス情報を提示する。
これにより、ノード装置は管理ノード装置として機能し、利用者に指示されたストレージノード装置のステータス情報を提示することができる。
この発明によれば、ノード装置は、管理用ノードテーブルにノードIDが登録された場合はノード装置の参加を、ノードIDが削除された場合はノード装置の離脱を出力する。
これにより、ノード装置は管理ノード装置として機能し、分散ファイルシステムにノード装置が参加または離脱したことを利用者に提示することができる。
図1は、本発明の一実施の形態による分散ファイルシステムの構成図である。同図において、分散ファイルシステムは、ストレージノード装置100、アクセスノード装置200、容量負荷分散ノード装置300、管理ノード装置400を、通信ネットワーク1を介して接続することによって構成される。通信ネットワーク1は、ルータなどの通信装置やケーブルなどの通信線等の各種ネットワーク装置から構成されるIP(Internet Protocol)通信網である。同図に示す分散ファイルシステムにおいては、複数のストレージノード装置100として、ストレージノード装置100a、100b、100cが示されている。なお、アクセスノード装置200、容量負荷分散ノード装置300、管理ノード装置400が複数存在してもよい。
図2は、ノード装置の構成を示すブロック図であり、本発明と関係する機能ブロックのみ抽出して示している。同図に示すように、ストレージノード装置100、アクセスノード装置200、容量負荷分散ノード装置300、及び、管理ノード装置400の各ノード装置は、ノードテーブル管理部10、固有機能処理部20、ネットワークインタフェース部30、記憶部40を備えて構成される。全てのノード装置は、固有機能処理部20を除き、共通な構成である。
図3は、図2に示すノード装置のノードテーブル管理部10の内部構成を示すブロック図であり、本発明と関係する機能ブロックのみ抽出して示している。同図に示すように、ノードテーブル管理部10は、通知処理部12(通知情報処理部)、安定化(Stabilization)処理部13、テーブル処理部14を備えて構成される。
通知処理部12は、ネットワークインタフェース部30を介して他のノードの通知処理部12との間で、ノード装置の参加および離脱を表す通知情報として通知メッセージを交換する。安定化処理部13は、記憶部40内の管理用ノードテーブル41及び検索用ノードテーブル42を正しく維持するために、ネットワークインタフェース部30を介して他のノード装置との間で存在確認を行う。テーブル処理部14は、通知処理部12または安定化処理部13からノード装置の参加、離脱の通知を受け、記憶部40内の管理用ノードテーブル41および検索用ノードテーブル42を書き換える。
図4は、記憶部40に記憶される管理用ノードテーブル41及び検索用ノードテーブル42の設定例を示す図である。同図に示すように、管理用ノードテーブル41には、オーバーレイネットワークに参加している全てのノード装置のノードIDを示すキー値と、そのノードIDにより特定されるノード装置のノードアドレスを示すデータとが対応付けて登録されている。
管理用ノードテーブル41、検索用ノードテーブル42においては、ノードIDが小さい順に並べられている。
図5は、通知処理部12および安定化処理部13が他のノード装置と交換する通信パケット(通知情報)の構造を示す図である。同図に示すように、通信パケットは、コマンド種別または応答種別と、送信先アドレス、送信元アドレス、及び、固有データとから構成される。本実施形態の通信パケットには、要求パケットと、要求パケットに対する応答である応答パケットとがある。要求パケットのコマンドの種類には「JOIN」、「PING」、「NOTIFY」があり、応答パケットの応答種別には、「OK」、「NG」がある。
JOINコマンド及びPINGコマンドの場合、ノードID、機能種別、及び、ノードアドレスが固有データに設定され、NOTIFYコマンドの場合、ホストID、機能種別、ノードアドレス、動作種別、及び、通知モードが固有データに設定される。また、JOINコマンドの応答の場合、管理用ノードテーブルが固有データに設定される。PINGコマンド、NOTIFYコマンドの応答には、固有データは設定されない。
機能種別は、例えば、「ストレージノード」、「アクセスノード」、「容量負荷分散ノード」、「管理ノード」などを示し、動作種別は、「参加(JOIN)」、または、「離脱(LEAVE)」のいずれかを示す。
以下に、各コマンドについて説明する。
JOINコマンドは、ノード装置がオーバーレイネットワークに参加する場合に用いる。JOINコマンドの要求パケット(以下、「要求パケット(JOIN)」と記載する。)には、オーバーレイネットワークに参加したノード装置のノードID、機能種別、ノードアドレスが固有データとして格納される。また、ノードIDは、あらかじめ決められたハッシュ関数により生成される。例えば、SHA−1のハッシュ関数を使ってノードアドレス(ノード装置のIPドレスとポート番号の組み合わせ)のハッシュ値を算出し、その算出したハッシュ値をノードIDとする。
JOINコマンドが成功すると、要求パケット(JOIN)を受信したノード装置において記憶されている管理用ノードテーブル41が、JOINコマンドに対する応答種別「OK」の応答パケット(以下、「応答パケット(OK)」と記載する。)の固有データに格納され、要求パケット(JOIN)の送信元ノード装置に返送される。
PINGコマンドは、ノード装置の生存確認を行うために用いる。PINGコマンドの要求パケット(以下、「要求パケット(PING)」と記載する。)には、PINGコマンド送信元のノード装置のノードID、機能種別、ノードアドレスが固有データとして格納される。ノード装置が、相手先のノード装置へ要求パケット(PING)を送信し、その応答パケット(OK)を受信することによって、生存確認対象のノード装置の存在を確認する。また、要求パケット(PING)を受信したノード装置は、要求パケット(PING)の送信元のノード装置が自身の保持するノードテーブルに存在しない場合、ノードテーブルに送信元のノード装置のノードIDとノードアドレスを追加する。
NOTIFYコマンドは、ノード装置の参加、離脱をオーバーレイネットワーク上の全ノード装置に通知するために用いる。NOTIFYコマンドの要求パケット(以下、「要求パケット(NOTIFY)」と記載する。)には、参加または離脱したノード装置のノードID、機能種別及びノードアドレスと、動作種別、通知モードが格納される。通知モードは、OneHopにおける通知の段階を示すものであり、図21において説明した各ステップに相当する。すなわち、通知モード「1」は、通報元からスライス・リーダー(Slice Leader)への通知(図21のステップS1)を、通知モード「2」は、スライス・リーダーから他のスライス・リーダーへの通知(図21のステップS2)を、通知モード「3」は、スライス・リーダーからユニット・リーダー(Unit Leader)への通知(図21のステップS3)を表す。通知モード「4」は、ユニット・リーダーからその配下のノードへの通知を表す。
続いて、ノードテーブル管理部10の各部の動作について説明する。
通知処理部12は、JOINコマンドおよびNOTIFYコマンドの送信および受信処理を行う。
ノード装置が新規にオーバーレイネットワークに参加する場合、該ノード装置の通知処理部12は、すでにオーバーレイネットワークに参加している他のノード装置に要求パケット(JOIN)を送信する。参加通知先の他のノード装置のノードアドレスを取得する方法は任意であり、例えば、利用者が入力してもよく、通信ネットワーク1上に検索パケットを送信し、すでにオーバーレイネットワークに参加しているノード装置から検索パケットに対応した応答を受信することにより取得してもよい。通知処理部12は、送信した要求パケット(JOIN)の応答パケット(OK)を受信すると、受信した応答パケット(OK)の固有データに格納された管理用ノードテーブルをテーブル処理部14に出力し、ノードテーブルの更新を指示する。
通知処理部12は、オーバーレイネットワークに新規に参加した他のノード装置から要求パケット(JOIN)を受信すると、受信した要求パケット(JOIN)の固有データをノード情報としてテーブル処理部14に出力し、ノードテーブルの更新を指示する。さらに、通知処理部12は、記憶部40から管理用ノードテーブル41を読み出すと、JOINコマンドの応答パケット(OK)の固有データにこの読み出した管理用ノードテーブル41を格納し、要求パケット(JOIN)の送信元ノード装置に返送する。さらに、通知処理部12は、動作種別に「参加(JOIN)」を、通知モードに「1(通報元からスライス・リーダーへの通知)」をセットした要求パケット(NOTIFY)を生成し、スライス・リーダーとなるノード装置へ送信する。
上記処理によって送信された要求パケット(NOTIFY)を受信したノード装置の通知処理部12は、受信したパケットの通知モードに応じて、さらにNOTIFYパケットを送信する。
図7は、通知処理部12におけるNOTIFYコマンドの受信処理の流れ図を示す。
通知処理部12は、他のノード装置から要求パケット(NOTIFY)を受信すると、受信した要求パケット(NOTIFY)の固有データをノード情報としてテーブル処理部14に出力し、ノードテーブルの更新を指示する(ステップS12−1)。このときのテーブル処理部14の動作の詳細は後述する。
通知処理部12は、管理用ノードテーブル41に登録されているノード装置によって構成されるオーバーレイネットワークをk個の領域に分割し、それぞれの分割領域内のノード装置の1台をスライス・リーダーとして選択する。通知処理部12は、このk個に分割された領域をさらにs個に分割し、その領域内のノード装置の1台をユニット・リーダーとする。各領域内でのスライス・リーダー、ユニット・リーダーの選択方法は任意であるが、例えば、各領域内においてノードIDが最小のノード装置をスライス・リーダー、ユニット・リーダーとして選択する方法などがある。例えば、k=256(28)、s=16(24)で分割する場合、ノードIDの上位8ビットをスライス番号、上位9ビット目から12ビット目までの4ビットをユニット番号として領域を分割することができるので、それぞれの領域における最小値のノードIDを持つノードをスライス・リーダー、ユニット・リーダーと決めるなどの方法がある。
安定化処理部13は、ノード装置の生存確認を行うことで、オーバーレイネットワークの構造を維持する。
安定化処理部13は、記憶部40に記憶されている管理用ノードテーブル41を参照し、管理用ノードテーブル41に登録されているノード装置に対し、順にPINGコマンドの要求パケット(PING)を定期的に送信する。
安定化処理部13は、他のノード装置から要求パケット(PING)を受信した場合、受信した要求パケット(PING)内の固有データに格納されている情報をノード情報としてテーブル処理部14に出力し、ノードテーブルの更新を指示する。その後、安定化処理部13は、要求パケット(PING)の送信元へ応答パケット(OK)を返送する。
テーブル処理部14は、記憶部40に記憶された管理用ノードテーブル41と検索用ノードテーブル42の変更を行う。
本実施形態では、管理用ノードテーブルにはオーバーレイネットワークに参加している全ノード装置を登録し、検索用ノードテーブルにはストレージノード装置100のみを登録することを特徴としている。これを実現するため、テーブル処理部14は、通知処理部12あるいは安定化処理部13から動作種別が「参加(JOIN)」のノード情報を受信した場合、このノード情報に含まれている機能種別が「ストレージノード」である場合には、ノード情報に含まれているノードID及びノードアドレスの組みを管理用ノードテーブル41および検索用ノードテーブル42に書き込み、機能種別が「アクセスノード」、「容量負荷分散ノード」、「管理ノード」などの機能ノードである場合には、ノード情報に含まれているノードID及びノードアドレスの組みを管理用ノードテーブル41のみに書き込む。このとき、テーブル処理部14は、テーブル内でノードIDの値が小さい順となるように書き込みを行なう。
また、テーブル処理部14は、通知処理部12から管理用ノードテーブルを受信した場合、この受信した管理用ノードテーブルを記憶部40に書き込む。
以上の動作により、オーバーレイネットワークに頻繁に機能ノード装置の参加、離脱が生じたとしても、検索用ノードテーブル42には変化がないため、ファイルIDの検索動作には影響が生じない。また、検索用ノードテーブル42は、管理用ノードテーブルを更新するための情報に基づいて生成可能であるため、ノード間の通信量は従来のOneHopと変わらない。
次に、ストレージノード装置100、アクセスノード装置200、容量負荷分散ノード装置300、管理ノード装置400の固有機能の動作について説明する。各ノード装置の固有機能の動作は、図2に示す固有機能処理部20の動作によって決定される。
[3.1.1 固有機能処理部の構成]
図8は、ストレージノード装置100の固有機能処理部120の構成を示す図であり、図2に示す固有機能処理部20に相当する。同図に示すストレージノード装置100の固有機能処理部120は、低レベルインタフェース部101、キーテーブル操作部102、ファイル操作部103、ファイル情報登録部104、ステータス情報登録部105、テーブル検索部106、キーテーブル蓄積部107、及び、ファイル蓄積部108を備えて構成される。キーテーブル蓄積部107及びファイル蓄積部108は、ハードディスク装置や半導体メモリなどで実現される。
ファイル蓄積部108は、分散ファイルシステムにおいて操作対象となるファイルを記憶する。
ファイルIDは、例えば、所定のハッシュ関数を用いてファイル名から生成したハッシュ値を用いることができる。キー(key)がファイルIDの場合、当該ファイルIDにより特定されるファイルを記憶しているストレージノード装置100のノードアドレスが対応する値(value)として設定される。
一方、ステータスIDは、例えば、所定のハッシュ関数を用いて、ステータス情報名とノードアドレスとを結合したデータから生成したハッシュ値を用いることができる。ステータス情報名は、例えば、ディスク容量、使用ディスク容量、CPU負荷などのステータス情報の種類を表す名前である。キー(key)がステータスIDの場合、ステータスIDにより特定されるノード装置及びステータス情報の種類に対応したステータス情報が値(value)として設定される。
putは、キーテーブル蓄積部107に記憶されているキーテーブルに、引数key及び引数valueの組を書き込むインタフェースである。
low_writeは、ファイル蓄積部108に記憶されているファイルへデータを書き込むインタフェースである。引数fnameは、データ書き込み対象ファイルのファイル名を示す。引数offsetは、データの書き込みを行なう先頭位置を示し、ファイルの先頭からのバイト数が設定される。引数sizeは、書き込むデータのバイトサイズを示し、引数dataは、ファイルに書き込むデータを示す。
get_listは、ファイル蓄積部108に記憶されているファイルのリストを提供するインタフェースである。引数flistは、ファイル蓄積部108に記憶されているファイルのファイル名とサイズとを関連付けたリストを示す。
キーテーブル操作部102は、低レベルインタフェース部101のgetおよびputインタフェースに対する処理を行う。キーテーブル操作部102は、低レベルインタフェース部101のputインタフェースが呼び出された場合、引数key及び引数valueとして指定された(key, value)値の組をキーテーブル蓄積部107に記憶されているキーテーブルに登録する。一方、低レベルインタフェース部101のgetインタフェースが呼び出された場合、キーテーブル操作部102は、引数keyに対する値(value)をキーテーブル蓄積部107に記憶されているキーテーブルから検索して読み出し、getインタフェースの呼び出し元のノード装置に返送する。
ファイル操作部103は、低レベルインタフェース部101のlow_read、low_write、low_delete、get_listの各インタフェースに対する処理を行う。ファイル操作部103は、低レベルインタフェース部101のlow_writeインタフェースが呼び出された場合、ファイル蓄積部108に記憶されている引数fnameのファイル名のファイルに、ファイルの先頭から引数offsetで示されるバイト数だけ進んだ位置を開始位置として、引数sizeで示されるバイト数のデータを書き込む。指定されたファイルが存在しない場合は、新たにファイルを作成し、データを書き込む。
また、低レベルインタフェース部101のget_listインタフェースが呼び出された場合、ファイル操作部103は、ファイル蓄積部108に記憶されている全ファイルのファイル名とサイズを読み出し、読み出したファイル名とサイズのリストを呼び出し元のノード装置に返送する。
ファイル情報登録部104は、ファイル蓄積部108内に記憶されているファイルのファイルIDをキー(key)とし、自ストレージノード装置100のノードアドレスを値(value)とした(key, value)値の組を、P2Pが構成するKey-Value型データベースへ登録する。
ステータス情報登録部105は、ストレージノード装置100のステータス情報を定期的にP2PによるKey-Value型データベースに登録する。ステータス情報登録部105が、あらかじめ決められたキーを使ってこれらの情報を登録しておくことで、他のノード装置からストレージノード装置100の様々なステータス情報を取得できるようにする。
ステータス情報登録部105が起動される際に、ステータス情報の種類を示すステータス情報名が、ステータス情報と共に入力される。ディスク容量、ディスクの使用容量、CPU負荷などのステータス情報は、例えば、ノード装置を実装するストレージノード装置100が有するリソース管理機能部によって取得することができる。ステータス情報登録部105は、はじめにキーを生成する(S105−1)。ステータスIDは、ステータス情報の種別を表す予め決められたステータス情報名と、自ストレージノード装置100のノードアドレスとの組み合わせから、SHA−1等のハッシュ関数により生成したハッシュ値とする。例えば、ディスク容量であれば、「DISKCAPA_ノードアドレス」、CPUの負荷であれば「CPU_ノードアドレス」などをハッシュ関数の入力とし、ハッシュ値を算出する。
以上説明したように、固有機能処理部120を有するストレージノード装置100により、DHTを使ったP2Pによる分散ファイルシステムを構築することができる。
[3.2.1 固有機能処理部の構成]
図13は、アクセスノード装置200の固有機能処理部220の構成を示す図であり、図2に示す固有機能処理部20に相当する。
アクセスノード装置200の固有機能処理部220は、高レベルインタフェース部201、ファイル処理部202、テーブル検索部203を備えて構成される。
hi_readは、指定されたファイル名のファイルからデータを読み出すインタフェースである。引数fnameは、データ読み出し対象ファイルのファイル名を示す。引数offsetは、データを読み出す先頭位置を示し、ファイルの先頭からのバイト数が設定される。引数sizeは、読み出すデータのバイトサイズを示す。また、引数dataは、読み出されたデータを示す。
hi_writeは、指定されたファイル名のファイルへデータを書き込むインタフェースである。引数fnameは、データ書き込み対象ファイルのファイル名を示す。引数offsetは、データを書き込む先頭位置を示し、ファイルの先頭からのバイト数が設定される。引数sizeは、書き込むデータのバイトサイズを示し、引数dataは、ファイルに書き込むデータを示す。
アクセスノード装置200において、クライアント装置2から高レベルインタフェース部201のhi_readインタフェースまたはhi_writeインタフェースの実行が要求されると、ファイル処理部202は、高レベルインタフェース部201に要求されたインタフェースについての実際の処理を行う。
以上説明した固有機能処理部220を有するアクセスノード装置200により、クライアント装置2から、本実施形態の分散ファイルシステムに保存されているファイルの操作が可能となる。アクセスノード装置200は、高レベルインタフェース部201を介して、複数のクライアント装置2に対して、分散ファイルシステムへのアクセスを提供することができる。
[3.3.1 固有機能処理部の構成]
容量負荷分散ノード装置300は、分散ファイルシステム内のストレージノード装置100が備えるファイル蓄積部108の使用率を均等に近づける機能ノード装置である。
図15は、容量負荷分散ノード装置300の固有機能処理部320の構成を示す図であり、図2に示す固有機能処理部20に相当する。容量負荷分散ノード装置300の固有機能処理部320は、ステータス情報取得部301、容量均等化計算部302、ファイル移動部303、テーブル検索部304を備えて構成される。
図16は、ステータス情報取得部301の動作の流れ図を示す。容量負荷分散ノード装置300は、所定の時間に定期的に、あるいは、利用者に指示された時間に、使用率の均等化処理を起動する。これにより、図16の処理が起動される。
容量均等化計算部302は、ステータス情報取得部301が取得したストレージノードの最大蓄積容量と使用中の蓄積容量から、全ストレージノード装置100の使用率が一定となるように、ストレージノード装置100間におけるファイルの受け渡し容量を計算する。
まず、本実施形態による容量均等化の計算方法について説明する。
ノード数Nをストレージノード装置100の数(Nは1以上の整数)、ディスク容量Ciをストレージノード装置(i)のディスク容量、使用ディスク容量Miをストレージノード装置(i)の使用ディスク容量とすると(iは0以上(N−1)以下の整数)、全ストレージノード装置100におけるストレージの平均使用率ravgは下記の式(1)により算出される。
変換行列Aの対角成分aii、および、関連する他の成分を、下記にしたがって決定する。
処理の対象とする未設定成分をaIJとする。このとき、ファイル移動後のストレージノード100(I)の容量は以下の(7)のように表すことができる。
さらに、上記による成分aIJの決定により、以下の条件を満たした場合に他の成分も決定する。
まず、処理対象を第0列の未設定成分a20とする。条件1及び条件2から、成分a20=0.511が算出され、(c)により成分a40=0となる。従って、式(6)は、以下の式(8)となる。
以上の(手順2)により求められた変換行列Aの対角成分以外で、かつ、0以外の成分がディスク容量の移動を表す部分である。すなわち、成分aijに対し、移動元のノード装置がストレージノード装置(j)、移動先のノード装置がストレージノード装置(i)、移動容量がaij×Mjである。
前記の例の場合、表2のようにストレージノード装置100間の移動量を求めることができる。
図17及び図18は、容量均等化計算部302の流れ図を示す。
図17において、まず、容量均等化計算部302は、N行N列の変換行列Aの全成分aij(i、jは0以上(N−1)以下の整数)を初期化すると(ステップS302−1)、ステータス情報取得部301が取得したN個の全ストレージノード装置(i)のディスク容量Ci及び使用ディスク容量Miを用い、式(2)により全ストレージノード装置100の平均使用率ravgを算出する(ステップS302−2)。続いて、容量均等化計算部302は、ステップS302−2において算出した平均使用率ravgとストレージノード装置100(i)の使用ディスク容量Miとを用い、式(3)により全てのストレージノード装置(i)について、容量均等化後のストレージノード装置(i)の使用ディスク容量M’ iを算出する(ステップS302−3)。
ファイル移動部303は、容量均等化計算部302により得られたストレージノード装置100間のファイルの移動処理を行う。しかし、容量均等化計算部302において得られたストレージノード装置100間のファイルの移動処理を全て行なうと、通信ネットワーク1に負荷がかかるだけでなく、多くのストレージノード装置100についても負荷が増大してしまう。また、移動の間はファイルへのアクセスが制限される場合もある。そこで、ファイル移動処理は、例えば、移動容量が所定以上である、ファイル移動元のストレージノード装置100のディスク使用率が所定以上であるなど、所定の条件に合致するストレージノード装置100間の移動のみを対象とする。以下では、最も移動容量が多いストレージノード装置100間のファイル移動のみを行うものとして説明する。また、ファイル移動をトラヒックが少ない時間に行うことによって、通信ネットワーク1への負荷を抑える。
ファイル移動部303は、テーブル検索部304にストレージノード装置(i)のノードIDを出力してノードアドレスを要求し、テーブル検索部304は、記憶部40に記憶されている検索用ノードテーブル42から、ノードIDに対応したノードアドレスを読み出す。ファイル移動部303は、テーブル検索部304が読み出したノードアドレスをあて先として、get_listの実行を要求する。
以上、説明したように、容量負荷分散ノード装置300により、本実施形態による分散ファイルシステム内のストレージノード装置の使用容量を均等化する機能を追加することができる。そして、1日1回など定期的に、移動容量が多いストレージノード装置100間についてのみファイル移動を行なうことによって、分散ファイルシステム全体に負荷をかけないよう、ゆるやかに使用容量を均等に近づけることができる。
また、容量負荷分散ノード装置300の分散ファイルシステムの追加や削除は、分散ファイルシステムの検索処理を滞らせることがないため、分散ファイルシステムの稼働中のどのタイミングでも容量負荷分散機能の追加、削除が行え、容量負荷分散ノード装置300の数も限定されない。
さらに、容量負荷分散機能の処理を、分散ファイルシステムのアクセスが少ない深夜などの特定の時間のみに稼動させるなども可能である。
[3.4.1 固有機能処理部の構成]
管理ノード装置400は、分散ファイルシステムの各ノード装置の状態を表示するための機能ノードである。
まず、ステータス選択部401は、管理ノード装置400を利用する利用者から、ステータス情報の確認対象となるノード装置の選択、確認したいステータス情報の種別の入力を受け付け、ステータス情報取得部402へそれらの情報を通知する。
同様に、ノード通知部404は、テーブル処理部14によって管理用ノードテーブル41からノードID及びノードアドレスが削除された場合、その削除のトリガとなったノード情報を情報提示部403に通知する。情報提示部403は、ノード通知部404から通知されたノード情報と、離脱である旨を提示する。
以上説明したように、管理ノード装置400により、本実施形態の分散ファイルシステム内に参加している全ノード装置の参加、離脱の状態や、各ノード装置のステータス情報を利用者に提供することができる。本実施形態による管理ノード装置400の参加及び離脱は、分散ファイルシステムのファイル管理を滞らせることがないため、分散ファイルシステムの稼働中にいつでも、参加または離脱することができ、管理ノード装置400の数に制限もない。
なお、本実施形態ではノード情報の提示を分散ファイルシステムに参加する全ノード装置を対象として説明したが、これに限定されるものではない。例えば、非特許文献3に提案されているように、ノード装置の物理的な位置の情報を含んだローカルノードIDを本実施形態の管理用ノードテーブルに用いることにより、管理ノード装置400を特定のローカルID、すなわち特定の物理的な範囲のノード装置に限定して、そのステータス情報を表示することも可能である。
以上のように本実施形態によれば、DHTを用いたP2P型の分散ファイルシステムにおいて、オーバーレイネットワークに参加する各ノード装置は、ファイル検索用のノードテーブルである検索用ノードテーブルと、ノード装置管理用のノードテーブルである管理用ノードテーブルを保持し、ファイルを保管するストレージノード装置のノードID及びノードアドレスは検索用ノードテーブル及び管理用ノードテーブルに登録し、ファイルを保管せず、各種の付加機能を提供する機能ノード装置については管理用ノードテーブルのみに登録する。従って、機能ノード装置の参加や離脱が生じても検索用ノードテーブルには変更がないため、ファイルIDの検索が滞ることがなく、操作対象のファイルの検索に影響を与えない。また、検索用ノードテーブルを同期させる必要もない。
また、分散ファイルシステムの利用者の増減に対応して、本実施形態のアクセスノード装置の参加や離脱を行なうことで、アクセス負荷分散が可能となる。
また、本実施形態の容量負荷分散ノード装置により、ストレージノード装置がファイルの記憶に要するディスクの使用量を均等化したり、あるいは、管理者が意図した使用量に調整したりすることができる。
また、本実施形態の管理ノード装置により、オーバーレイネットワークに参加しているノード装置の状態を把握し、利用者へ提示することが可能となる。
上述したストレージノード装置100、アクセスノード装置200、容量負荷分散ノード装置300、管理ノード装置400、及び、クライアント装置2を実装する装置は、内部にコンピュータシステムを有している。そして、ストレージノード装置100、アクセスノード装置200、容量負荷分散ノード装置300、管理ノード装置400、クライアント装置2の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいうコンピュータシステムとは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶部のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
2…クライアント装置
10…ノードテーブル管理部
12…通知処理部(通知情報処理部)
13…安定化処理部
14…テーブル処理部
20、120、220、320、420…固有機能処理部
30…ネットワークインタフェース部
40…記憶部
41…管理用ノードテーブル
42…検索用ノードテーブル
100…ストレージノード装置
101…低レベルインタフェース部
102…キーテーブル操作部
103…ファイル操作部
104…ファイル情報登録部
105…ステータス情報登録部
106…テーブル検索部
107…キーテーブル蓄積部
108…ファイル蓄積部
200…アクセスノード装置
201…高レベルインタフェース部
202…ファイル処理部
203…テーブル検索部
300…容量負荷分散ノード装置
301…ステータス情報取得部
302…容量均等化計算部
303…ファイル移動部
304…テーブル検索部
400…管理ノード装置
401…ステータス選択部
402…ステータス情報取得部
403…情報提示部
404…ノード通知部
405…テーブル検索部
Claims (9)
- ファイルを分散して管理する分散ファイルシステムにネットワークを介して参加するノード装置であって、
ファイルを分散して記憶するストレージノード装置または付加機能を提供する機能ノード装置であり、前記分散ファイルシステムを構成するノード装置のノードIDとアドレスとを対応付けする管理用ノードテーブルと、前記ストレージノード装置のノードIDとアドレスとを対応付けする検索用ノードテーブルとを記憶する記憶部と、
前記分散ファイルシステムへの各ノード装置の参加または離脱の通知情報を受信し、前記管理用ノードテーブルに記憶されている前記ノードIDに基づいて選択した前記アドレスをあて先として前記通知情報を送信する通知情報処理部と、
ストレージノード装置が参加したことを表す通知情報を前記通知情報処理部が受信した場合には、前記通知情報に基づいて前記ストレージノード装置のノードIDとアドレスとを前記管理用ノードテーブルと前記検索用ノードテーブルとに書き込み、
機能ノード装置が参加したことを表す通知情報を前記通知情報処理部が受信した場合には、前記通知情報に基づいて前記機能ノード装置のノードIDとアドレスとを前記管理用ノードテーブルのみに書き込み、
ストレージノード装置が離脱したことを表す通知情報を前記通知情報処理部が受信した場合には、前記通知情報に基づいて前記ストレージノード装置のノードIDと対応するアドレスとを前記管理用ノードテーブルと前記検索用ノードテーブルとから削除し、
機能ノード装置が離脱したことを表す通知情報を前記通知情報処理部が受信した場合には、前記通知情報に基づいて前記機能ノード装置のノードIDと対応するアドレスとを前記管理用ノードテーブルから削除するテーブル処理部と、
指定されたファイルIDと、前記検索用ノードテーブルに記憶されている前記ノードIDとに基づいて、前記ファイルIDを管理する前記ストレージノード装置のアドレスを取得するテーブル検索部と、
を備えることを特徴とするノード装置。 - 前記管理用ノードテーブルに登録されている前記アドレスの前記ノード装置が離脱していないかを確認する安定化部をさらに備え、
前記テーブル処理部は、前記管理用ノードテーブルに登録されている前記アドレスの前記ノード装置が離脱したことを前記安定化部が検出した場合、前記管理用ノードテーブルと前記検索用ノードテーブルとから離脱したノード装置のノードIDとアドレスとを削除し、
前記通知情報処理部は、前記管理用ノードテーブルに記憶されている前記ノードIDに基づいて選択した前記アドレスをあて先として、前記安定化部が検出した前記ノード装置が離脱したことを表す通知情報を送信する、
ことを特徴とする請求項1に記載のノード装置。 - ファイルを記憶するファイル蓄積部と、
ファイルIDと、ファイルを記憶している前記ストレージノード装置のアドレスとを対応付けて記憶するキーテーブル蓄積部と、
指定されたファイルIDに対応した前記ストレージノード装置のアドレスを前記キーテーブル蓄積部から読み出して出力するキーテーブル操作部と、
ファイル名を指定した操作指示を受信し、前記ファイル名により特定される前記ファイル蓄積部内の前記ファイルに対する操作を行うファイル操作部と、
をさらに備えることを特徴とする請求項1または請求項2に記載のノード装置。 - 前記キーテーブル蓄積部は、ステータスIDとステータス情報とを対応付けて記憶し、
自ノード装置のステータス情報を特定するステータスIDを前記テーブル検索部に渡し、前記ステータスIDに対応して前記テーブル検索部が取得したアドレスをあて先として前記ステータスID及び前記ステータス情報の登録要求を送信するステータス情報登録部をさらに備え、
前記キーテーブル操作部は、ステータスID及びステータス情報の登録要求を受信した場合、登録が要求された前記ステータスIDと前記ステータス情報とを対応付けて前記キーテーブル蓄積部に書き込み、ステータスIDを指定したステータス情報の要求を受信した場合、受信した前記ステータスIDに対応したステータス情報を前記キーテーブル蓄積部から読み出して出力し、
前記テーブル検索部は、ファイルIDの代わりに前記ステータスIDを用いて前記ストレージノード装置のアドレスを取得する、
ことを特徴とする請求項3に記載のノード装置。 - ファイル名を指定したファイル操作指示を受信し、受信したファイル名から生成されるファイルIDを前記テーブル検索部に渡し、前記ファイルIDに対応して前記テーブル検索部が取得したアドレスをあて先として前記ファイルIDを送信し、送信した前記ファイルIDに対応してファイルを記憶しているストレージノード装置のアドレスを受信し、受信したアドレスをあて先として前記ファイル名を指定したファイル操作指示を送信するファイル処理部をさらに備える、
ことを特徴とする請求項1または請求項2に記載のノード装置。 - 分散ファイルシステム内の前記ストレージノード装置それぞれのステータス情報を特定するステータスIDを前記テーブル検索部に渡し、前記ステータスIDに対応して前記テーブル検索部が取得したアドレスをあて先として前記ステータスIDを送信し、ステータス情報を要求するステータス情報取得部と、
前記ステータス情報取得部の要求に応じて取得した前記ストレージノード装置のステータス情報に基づいて、ファイルの移動元及び移動先の前記ストレージノード装置と、移動容量とを決定する容量均等化計算部と、
前記容量均等化計算部によって決定されたファイル移動元の前記ストレージノード装置からファイル移動先の前記ストレージノード装置へ前記移動容量に基づいてファイルを移動するファイル移動部と、をさらに備え、
前記テーブル検索部は、ファイルIDの代わりに前記ステータスIDを用いて前記ストレージノード装置のアドレスを取得する、
ことを特徴とする請求項1または請求項2に記載のノード装置。 - 前記ノード装置のステータス情報を特定するステータスIDを前記テーブル検索部に渡し、前記ステータスIDに対応して前記テーブル検索部が取得したアドレスをあて先として前記ステータスIDを送信し、ステータス情報を取得するステータス情報取得部と、
前記ステータス情報取得部が取得した前記ステータス情報を出力する情報提示部と、をさらに備え、
前記テーブル検索部は、ファイルIDの代わりに前記ステータスIDを用いて前記ストレージノード装置のアドレスを取得する、
ことを特徴とする請求項1または請求項2に記載のノード装置。 - 前記管理用ノードテーブルにノードIDの追加または削除が行なわれたことを検出した場合に、ノード装置の参加または離脱を出力する情報提示部をさらに備える、
ことを特徴とする請求項1または請求項2に記載のノード装置。 - ファイルを分散して管理する分散ファイルシステムにネットワークを介して参加するノード装置として用いられるコンピュータを、
ファイルを分散して記憶するストレージノード装置または付加機能を提供する機能ノード装置であり、前記分散ファイルシステムを構成するノード装置のノードIDとアドレスとを対応付けする管理用ノードテーブルと、前記ストレージノード装置のノードIDとアドレスとを対応付けする検索用ノードテーブルとを記憶する記憶部と、
前記分散ファイルシステムへの各ノード装置の参加または離脱の通知情報を受信し、前記管理用ノードテーブルに記憶されている前記ノードIDに基づいて選択した前記アドレスをあて先として前記通知情報を送信する通知情報処理部と、
ストレージノード装置が参加したことを表す通知情報を前記通知情報処理部が受信した場合には、前記通知情報に基づいて前記ストレージノード装置のノードIDとアドレスとを前記管理用ノードテーブルと前記検索用ノードテーブルとに書き込み、
機能ノード装置が参加したことを表す通知情報を前記通知情報処理部が受信した場合には、前記通知情報に基づいて前記機能ノード装置のノードIDとアドレスとを前記管理用ノードテーブルのみに書き込み、
ストレージノード装置が離脱したことを表す通知情報を前記通知情報処理部が受信した場合には、前記通知情報に基づいて前記ストレージノード装置のノードIDと対応するアドレスとを前記管理用ノードテーブルと前記検索用ノードテーブルとから削除し、
機能ノード装置が離脱したことを表す通知情報を前記通知情報処理部が受信した場合には、前記通知情報に基づいて前記機能ノード装置のノードIDと対応するアドレスとを前記管理用ノードテーブルから削除するテーブル処理部と、
指定されたファイルIDと、前記検索用ノードテーブルに記憶されている前記ノードIDとに基づいて、前記ファイルIDを管理する前記ストレージノード装置のアドレスを取得するテーブル検索部、
として機能させることを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010096986A JP5470148B2 (ja) | 2010-04-20 | 2010-04-20 | ノード装置及びコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010096986A JP5470148B2 (ja) | 2010-04-20 | 2010-04-20 | ノード装置及びコンピュータプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011227712A JP2011227712A (ja) | 2011-11-10 |
JP5470148B2 true JP5470148B2 (ja) | 2014-04-16 |
Family
ID=45042981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010096986A Active JP5470148B2 (ja) | 2010-04-20 | 2010-04-20 | ノード装置及びコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5470148B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021249165A1 (zh) * | 2020-06-12 | 2021-12-16 | 华为技术有限公司 | 一种以太网存储***及其信息通告方法和相关装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679665A (zh) * | 2013-12-02 | 2015-06-03 | 中兴通讯股份有限公司 | 一种实现分布式文件***块存储的方法及*** |
SG11202009781SA (en) | 2018-04-10 | 2020-10-29 | Huawei Tech Co Ltd | Point-to-point database synchronization over a transport protocol |
CN113742429A (zh) * | 2021-11-04 | 2021-12-03 | 正链科技(深圳)有限公司 | 一种分布式网络数据存储方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3967666B2 (ja) * | 2002-11-19 | 2007-08-29 | 株式会社日立製作所 | 電子情報共有システム |
JP2009230686A (ja) * | 2008-03-25 | 2009-10-08 | Nippon Hoso Kyokai <Nhk> | コンテンツ管理サーバ及びコンテンツ管理プログラム |
JP5287059B2 (ja) * | 2008-09-09 | 2013-09-11 | ブラザー工業株式会社 | ノード装置、ノード処理プログラム及び保存指示方法 |
-
2010
- 2010-04-20 JP JP2010096986A patent/JP5470148B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021249165A1 (zh) * | 2020-06-12 | 2021-12-16 | 华为技术有限公司 | 一种以太网存储***及其信息通告方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2011227712A (ja) | 2011-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10185497B2 (en) | Cluster federation and trust in a cloud environment | |
KR102074006B1 (ko) | 클라우드-기반 분산 데이터 시스템 | |
US9405781B2 (en) | Virtual multi-cluster clouds | |
JP5727020B2 (ja) | クラウドコンピューティングシステム及びそのデータ同期化方法 | |
WO2018154698A1 (ja) | ファイルストレージ、オブジェクトストレージ、およびストレージシステム | |
US20130332418A1 (en) | Method of managing data in asymmetric cluster file system | |
KR102038527B1 (ko) | 분산 클러스터 관리 시스템 및 그 방법 | |
US8296420B2 (en) | Method and apparatus for constructing a DHT-based global namespace | |
CN105324765A (zh) | 选择用于去重复数据的存储区 | |
US10503693B1 (en) | Method and system for parallel file operation in distributed data storage system with mixed types of storage media | |
JP2014529814A (ja) | データメンテナンス用の方法 | |
KR20100048130A (ko) | 메타데이터 클러스터 기반의 분산형 스토리지 시스템 및 그동작 방법 | |
JP5470148B2 (ja) | ノード装置及びコンピュータプログラム | |
JP2012123544A (ja) | 負荷分散装置及びプログラム | |
KR102133840B1 (ko) | 라이브 서비스를 위한 분산 파일 시스템 및 데이터 처리 방법 | |
CN109407975B (zh) | 写数据方法与计算节点以及分布式存储*** | |
JP6196389B2 (ja) | 分散型ディザスタリカバリファイル同期サーバシステム | |
JP5317827B2 (ja) | 分散データ管理装置及び方法及びプログラム | |
JP5915116B2 (ja) | ストレージシステム、ストレージ装置、システム制御プログラムおよびシステム制御方法 | |
JP6011786B2 (ja) | 分散ストレージシステム、分散ストレージデータ配置制御方法及び分散ストレージデータ配置制御用プログラム | |
CN105359107A (zh) | 报告针对分布式对象取回的数据的降级状态 | |
Yu et al. | Granary: A sharing oriented distributed storage system | |
JP2005063374A (ja) | データ管理方法、データ管理装置、およびそのためのプログラムならびに記録媒体。 | |
JPWO2019087786A1 (ja) | 情報分散記憶システム、方法およびプログラム | |
KR101748913B1 (ko) | 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121226 |
|
TRDD | Decision of grant or rejection written | ||
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131225 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140203 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5470148 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |