JP6020210B2 - クォータ管理機能付ファイルシステム、クォータ管理方法およびクォータ管理プログラム - Google Patents

クォータ管理機能付ファイルシステム、クォータ管理方法およびクォータ管理プログラム Download PDF

Info

Publication number
JP6020210B2
JP6020210B2 JP2013013858A JP2013013858A JP6020210B2 JP 6020210 B2 JP6020210 B2 JP 6020210B2 JP 2013013858 A JP2013013858 A JP 2013013858A JP 2013013858 A JP2013013858 A JP 2013013858A JP 6020210 B2 JP6020210 B2 JP 6020210B2
Authority
JP
Japan
Prior art keywords
quota
file
server
servers
metadata
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
Application number
JP2013013858A
Other languages
English (en)
Other versions
JP2014146144A (ja
Inventor
青山 俊一
俊一 青山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2013013858A priority Critical patent/JP6020210B2/ja
Publication of JP2014146144A publication Critical patent/JP2014146144A/ja
Application granted granted Critical
Publication of JP6020210B2 publication Critical patent/JP6020210B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、クォータ管理機能付ファイルシステム、クォータ管理方法およびクォータ管理プログラムに関する。
クラスタシステムの一種であるHPC(High Performance Computing)では、共有ファイルシステムに並列ファイルシステムが用いられることが多い。一般的に、ファイルシステム用のサーバ数を増やして、分割したファイルを複数のサーバに対して並列に入出力すると、システム全体のスループットが向上される。
しかし、一般的にHPC用途で広く用いられているLustre等の並列ファイルシステムでは、メタデータがファイルのオブジェクトとは別のサーバに置かれ、ファイルのメタデータが一カ所に集中する。メタデータサーバに負荷が集中してしまうと、メタデータサーバの処理性能がボトルネックになり、ファイルシステム全体の性能が低下する。
この問題は、メタデータを複数のI/O(Input/Output)サーバに分散配置すると解決される。しかし、メタデータとファイルの両方が複数のI/Oサーバに分散すると、計算ノードとI/Oサーバ間において、メタデータを参照するための計算ノードからの通信が多発する。通信の多発は、ファイルシステムの入出力性能に悪影響を及ぼす。
メタデータを計算ノード側にキャッシュすると、計算ノードとI/Oサーバ間の通信が削減されるため、上記の問題は、ある程度解決される。
特許第5047988号公報
複数のユーザが共用するコンピュータのファイルシステムにおいて、クォータは、ファイルシステム内の各ユーザに割り当てられた範囲と、その範囲内におけるファイル数およびブロック数から算出されるディスク使用量とを含むように設定された情報である。
クォータは、あらかじめ各ユーザに割り当てられたハードディスクの上限値(クォータリミット)を超えないように、ユーザごとにハードディスクの使用量を管理する目的で使用される。クォータを管理すると、特定のユーザがディスクを使い切ってしまい、他のユーザやシステム自体に悪影響を及ぼす状況を防ぐことができる。
メタデータが複数のI/Oサーバに分散配置されたファイルシステムに対して、一般的なファイルシステムにおけるクォータ管理機能を同様に実装すると、メタデータが分散しているため、クォータを更新する際に更新のための通信が各I/Oサーバ間で多発する。よって、ファイルシステム全体に大きな負荷がかかる。
さらに、メタデータ内にクォータを持たせる場合、クォータが更新されると計算ノード側のメタデータキャッシュの更新も求められるため、頻繁に計算ノード側からメタデータへのアクセスが発生する。このため、計算ノードとI/Oサーバ間の通信が多発する。
また、特許文献1に記載されたオブジェクトファイルシステムのように、ファイルオブジェクトにメタデータを付加する方法を用いる場合、I/Oサーバごとにクォータを集計できる。しかし、1つのファイルを分割して複数のI/Oサーバに保存できないため、並列入力および並列出力ができない。よって、ファイルシステム全体のスケーラビリティが低下してしまう。
そこで、本発明は、比較的低負荷にクォータ管理ができるクォータ管理機能付ファイルシステム、クォータ管理方法およびクォータ管理プログラムを提供することを目的とする。
本発明によるクォータ管理機能付ファイルシステムは、1台以上のI/Oサーバを含み、作成されるファイルを分割し複数のI/Oサーバに分散させて保存し、各ファイルを読み取るために必要な各メタデータを複数のI/Oサーバに分散させて保存し、クォータを管理するクォータ管理機能付ファイルシステムであって、I/Oサーバは、クォータ管理機能付ファイルシステム全体のクォータである集計クォータを記憶する集計クォータ記憶部と、I/Oサーバ内のクォータである部分クォータを記憶する部分クォータ記憶部と、分割された実ファイルを保存し、集計クォータ記憶部に保存された集計クォータを参照して作成されたファイルが属するクォータのクォータIDを実ファイルに付与するクォータ管理部と、実ファイルが更新された際にクォータIDを参考にして部分クォータ記憶部に保存されている部分クォータを更新するクォータ更新部と、通信網を介して他のI/Oサーバと情報を交換する通信部と、通信部を介してクォータ管理機能付ファイルシステム内の他の全てのI/Oサーバから部分クォータの更新部分を収集し、収集した更新部分が反映された集計クォータを作成し、通信部を介して作成した集計クォータを他の全てのI/Oサーバへ配信するクォータ集計部とを含むことを特徴とする。
本発明によるクォータ管理方法は、1台以上のI/Oサーバを含み、作成されるファイルを分割し複数のI/Oサーバに分散させて保存し、各ファイルを読み取るために必要な各メタデータを複数のI/Oサーバに分散させて保存し、クォータを管理するクォータ管理機能付ファイルシステム内のI/Oサーバにおいて実行されるクォータ管理方法であって、クォータ管理機能付ファイルシステム全体のクォータである集計クォータを記憶し、I/Oサーバ内のクォータである部分クォータを記憶し、分割された実ファイルを保存し、集計クォータを参照して作成されたファイルが属するクォータのクォータIDを実ファイルに付与し、実ファイルが更新された際にクォータIDを参考にして部分クォータを更新し、通信網を介して他のI/Oサーバと情報を交換し、クォータ管理機能付ファイルシステム内の他の全てのI/Oサーバから部分クォータの更新部分を収集し、収集した更新部分が反映された集計クォータを作成し、作成した集計クォータを他の全てのI/Oサーバへ配信することを特徴とする。
本発明によるクォータ管理プログラムは、1台以上のI/Oサーバを含み、作成されるファイルを分割し複数のI/Oサーバに分散させて保存し、各ファイルを読み取るために必要な各メタデータを複数のI/Oサーバに分散させて保存し、クォータを管理するクォータ管理機能付ファイルシステム内のI/Oサーバにおいて実行されるクォータ管理プログラムであって、I/Oサーバに、クォータ管理機能付ファイルシステム全体のクォータである集計クォータを記憶する集計クォータ記憶処理、I/Oサーバ内のクォータである部分クォータを記憶する部分クォータ記憶処理、分割された実ファイルを保存する保存処理、集計クォータを参照して作成されたファイルが属するクォータのクォータIDを実ファイルに付与するクォータ管理処理、実ファイルが更新された際にクォータIDを参考にして部分クォータを更新するクォータ更新処理、通信網を介して他のI/Oサーバと情報を交換するための通信処理、クォータ管理機能付ファイルシステム内の他の全てのI/Oサーバから部分クォータの更新部分を収集する収集処理、収集した更新部分が反映された集計クォータを作成する作成処理、および作成した集計クォータを他の全てのI/Oサーバへ配信する配信処理を実行させることを特徴とする。
本発明によれば、比較的低負荷にクォータ管理ができる。
本発明によるクォータ管理機能付ファイルシステムの一実施形態の構成例を示すシステム構成図である。 I/Oサーバ200の構成例を示すブロック図である。 クォータ管理機能付ファイルシステム10のファイル作成処理の動作を示すフローチャートである。 クォータ管理機能付ファイルシステム10が実現するファイルシステムのツリー構造を示す説明図である。 ファイルと実ファイルとの関係を示す説明図である。 クォータ管理機能付ファイルシステム10が実現するファイルシステムのファイルメタデータと実ファイルとの関係を示す説明図である。 クォータ管理機能付ファイルシステム10が実現するファイルシステムのディレクトリメタデータとファイルメタデータとの関係を示す説明図である。 クライアントのファイルのメタデータ取得処理の動作を示すフローチャートである。 クライアントのファイルの実ファイル参照処理の動作を示すフローチャートである。 クォータ管理機能付ファイルシステム10のクォータ集計処理の動作を示すフローチャートである。 クォータ管理機能付ファイルシステム10のクォータの集計と配布の例を示す説明図である。 本発明によるクォータ管理機能付ファイルシステムの概要を示すブロック図である。
以下、本発明の実施形態を図面を参照して説明する。図1は、本発明によるクォータ管理機能付ファイルシステムの一実施形態の構成例を示すシステム構成図である。図1に示すクォータ管理機能付ファイルシステム10は、5台の計算ノード100〜104と、6台のI/Oサーバ200〜205とを備えている。
図1には、計算ノード100〜104が、I/Oサーバ200〜205に通信網300を介して接続されている例が示されている。なお、図1には、5台の計算ノードが示されているが、計算ノードの台数は5台でなくてもよい。また、図1には、6台のI/Oサーバが示されているが、I/Oサーバの台数は6台でなくてもよい。
計算ノード100〜104は、クォータ管理機能付ファイルシステム10のクライアントとして動作する。計算ノード100〜104は、I/Oサーバ200〜205に対して並列に入出力できる。
I/Oサーバ200〜205は、クォータ管理機能付ファイルシステム10のサーバ(ストレージサーバ)として動作する。
通信網300は、有線LAN(Local Area Network)、無線LAN、またはWAN(Wide Area Network)等である。計算ノード100〜104は、I/Oサーバ200〜205と通信可能な状態である。また、I/Oサーバ200〜205は、互いに通信可能な状態である。
次に、I/Oサーバの詳細な構成を図2を参照して説明する。図2は、I/Oサーバ200の構成例を示すブロック図である。
図2に示すI/Oサーバ200は、仮想ファイルメタデータ作成部210と、集計クォータ記憶部220と、クォータ判定部230と、通信部240と、クォータ集計部250と、部分クォータ260と、サーバ負荷監視部270と、サーバ内ローカルファイルシステム部280と、サーバ内クォータ更新部290とを含む。
なお、他のI/Oサーバ201〜205も、I/Oサーバ200と同様の構成をしている。
仮想ファイルメタデータ作成部210は、I/Oサーバ200内のサーバ内ローカルファイルシステム部280に、仮想ファイルメタデータを作成する機能を有する。
集計クォータ記憶部220は、ファイルシステム全体のクォータである集計クォータを記憶する機能を有する。集計クォータは、定期的に他のI/Oサーバよりも負荷の低いI/Oサーバによって作成される情報である。作成されると、集計クォータは、作成したI/Oサーバにより配信される。
クォータ判定部230は、あるクライアントがI/Oサーバ200内にファイルのメタデータを作成する際に、集計クォータ記憶部220を参照して、ファイルが作成されるディレクトリが、ファイルが属するクォータの範囲内であるか否か判定する機能を有する。
クォータの範囲内である場合、クォータ判定部230は、クライアントにメタデータの作成を許可する。クォータの範囲内でない場合、クォータ判定部230は、クライアントにメタデータの作成を拒否する。
通信部240は、通信網300を介して、各計算ノードまたは各I/Oサーバと情報を交換する機能を有する。
クォータ集計部250は、定期的に部分クォータ260の更新部分を収集する機能を有する。なお、他のI/Oサーバよりも自身のサーバの負荷が低い場合、クォータ集計部250は、通信部240を介して、他のI/Oサーバの部分クォータ260の更新部分も収集する機能を有する。
収集した後、クォータ集計部250は集計クォータを作成する。作成すると、クォータ集計部250は、通信部240を介して作成した集計クォータを各I/Oサーバへ配布する。
また、クォータ集計部250は、タイマ部251を含む。タイマ部251は、クォータ管理機能付ファイルシステム10が集計クォータを作成する時間間隔を制御する機能を有する。
クォータのディスク使用量がソフトリミットまでに余裕がある場合、タイマ部251は、集計クォータが作成される間隔を長くする。クォータのディスク使用量がソフトリミット間際の場合、タイマ部251は、集計クォータが作成される間隔を短くする。クォータのディスク使用量がソフトリミットを超えた場合、タイマ部251は、集計クォータが作成される間隔を更に短くし、集計クォータが更新される頻度を上げる。ここで、ソフトリミットは、クォータリミットよりも小さな値が設定された閾値を意味する。
HPC向けの共有ファイルシステムでは、他のファイルシステムほどクォータが厳密に常時確認されていなくてもよい。すなわち、クォータのディスク使用量がクォータリミットを超えた時から入出力制限するまでに若干の時差があっても許される場合が多いので、I/Oサーバ内部の部分クォータは、更新後即時に集計されなくてもよい。本実施形態ではタイマ部251を設け、部分クォータが集計される時間間隔を調整できるようにしている。
サーバ負荷監視部270は、I/Oサーバ200自身の負荷を監視する機能を有する。監視された負荷情報は、通信部240を介して各I/Oサーバ間で交換される。
サーバ内ローカルファイルシステム部280には、クライアントが実ファイルをI/Oサーバに作成する際、実ファイルが作成される。サーバ内ローカルファイルシステム部280は、集計クォータ記憶部220を参照して、作成された実ファイルの実ファイルデータに、実ファイルの基となるファイルが属するクォータを判別できるクォータIDを付加して保存する。
部分クォータ260は、サーバ内ローカルファイルシステム部280に保存されている実ファイルが消費しているディスク使用量を、クォータIDごとに集計した情報である。
サーバ内クォータ更新部290は、サーバ内ローカルファイルシステム部280内に実ファイルが作成された際、またはサーバ内ローカルファイルシステム部280内の実ファイルが更新された際に、部分クォータ260を更新する機能を有する。
なお、本実施形態における仮想ファイルメタデータ作成部210、クォータ判定部230、クォータ集計部250、サーバ負荷監視部270、サーバ内ローカルファイルシステム部280、およびサーバ内クォータ更新部290は、例えば、プログラムに従って動作するCPU(Central Processing Unit)によって実現される。
また、部分クォータ260は、例えば、CPUが直接読み書きできるRAM(Random Access Memory)によって実現される。
また、通信部240は、例えば、プログラムに従って動作するCPUと、ネットワークカード等の通信制御装置とによって実現される。
また、集計クォータ記憶部220は、例えば、データベースシステムといった記憶装置によって実現される。
以下、クォータ制御と部分クォータの作成を説明するために、本発明によるファイル作成処理の動作を図3を参照して説明する。図3は、クォータ管理機能付ファイルシステム10のファイル作成処理の動作を示すフローチャートである。
最初に、クライアントが作成するファイルが属するファイルシステムのツリー構造を、図4を参照して説明する。図4は、クォータ管理機能付ファイルシステム10が実現するファイルシステムのツリー構造を示す説明図である。
図4に示すツリー構造では、ルート配下にディレクトリhome、ディレクトリetcがある。また、ディレクトリhome配下にディレクトリdir01、ディレクトリdir02、ディレクトリdir03がある。また、ディレクトリdir01配下にファイルAがある。また、ディレクトリdir02配下にファイルBがある。
図4に示すように、ファイルAは、クォータIDが0のクォータ(以下、クォータ0という。)に属するとする。ファイルBは、クォータIDが1のクォータ(以下、クォータ1という。)に属するとする。
図5は、ファイルと実ファイルとの関係を示す説明図である。図5に示すように、ファイルAは、実ファイルa〜fに分割される。また、ファイルBは、実ファイルg〜jに分割される。
ここでは図4に示すように、ディレクトリdir01にファイルAを、ディレクトリdir02にファイルBをそれぞれ作成する時のクォータ管理機能付ファイルシステム10のファイル作成処理の動作を、図3に示すフローチャートを参照して説明する。
クライアントがディレクトリdir01にファイルAを作成する時の動作を説明する。ファイルAを作成するとき、いずれかのI/OサーバにファイルAのメタデータ411が作成される。
クライアントである計算ノードが、メタデータを作成するI/Oサーバを決定する(ステップS101)。ここでは、計算ノード100がI/Oサーバ200にメタデータを作成すると決定したとする。
クライアントは、決定したI/Oサーバに対してメタデータ作成の許可を要求する(ステップS102)。要求を受信したI/Oサーバの通信部240は、クォータ判定部230に、ファイルが作成されるディレクトリが、ファイルが属するクォータの範囲内であるか否か問い合わせる(ステップS103)。
クライアントからメタデータ作成の許可の要求を受けたI/Oサーバのクォータ判定部230は、判定のために集計クォータ記憶部220を参照する。そして、ファイルが作成されるディレクトリがクォータの範囲を超える場合(ステップS104のNo)、I/Oサーバは、クライアントに対してメタデータの作成を拒否する(ステップS110)。クォータ管理機能付ファイルシステム10は、ファイル作成処理を終了する。
ファイルが作成されるディレクトリがクォータの範囲内である場合(ステップS104のYes)、I/Oサーバは、クライアントに対してメタデータの作成を許可する(ステップS105)。
クライアントである計算ノード100からメタデータ作成の許可の要求を受けたI/Oサーバ200のクォータ判定部230は、判定のために集計クォータ記憶部220を参照する。
クォータ判定部230は、ディレクトリdir01がファイルAの属するクォータであるクォータ0の範囲内であることから(ステップS104のYes)、計算ノード100に対してメタデータ作成の許可を通知する(ステップS105)。
クライアントは、作成許可を通知したI/Oサーバにメタデータを作成する(ステップS106)。クライアントである計算ノード100は、I/Oサーバ200にファイルAのメタデータ411を作成する。
本実施形態において、ファイルメタデータには、オブジェクトの種類(通常のファイル)、サイズ、作成日、最終更新日、ファイル所有者、アクセス権限など、一般的なファイルシステムのファイルメタデータ情報に加えて、分割された実ファイルへのリンク情報が含まれる。
ファイルメタデータが作成されたI/Oサーバは、ファイルメタデータに含まれる情報を基に、実ファイルが分散配置される全てのI/Oサーバにファイルの実ファイル情報を作成する(ステップS107)。本実施形態において、ファイルの実ファイル情報には、分割された実ファイルの元のファイル内における位置を示すオフセット情報と、そのリンク情報が含まれる。
図6は、クォータ管理機能付ファイルシステム10が実現するファイルシステムのファイルメタデータと実ファイルとの関係を示す説明図である。図6に示すように、ファイルAのメタデータ411が作成されたI/Oサーバ200は、ファイルAの実ファイル情報421を、実ファイルを分散配置する自身のサーバ内に作成する。
また、I/Oサーバ200は、ファイルAの実ファイル情報422を、実ファイルを分散配置するI/Oサーバ201に作成する。同様に、I/Oサーバ200は、ファイルAの実ファイル情報423を、実ファイルを分散配置するI/Oサーバ202に作成する(ステップS107)。
図6に示すファイルAの実ファイル情報421〜423には、それぞれ異なる実ファイル情報が含まれている。例えば、ファイルAの実ファイル情報421には、実ファイルaおよび実ファイルdの情報が含まれている。また、ファイルの実ファイル情報は、ファイルのメタデータから参照される。
クライアントは、分割した実ファイルをファイルの先頭に近い方から順番に各I/Oサーバへ保存する(ステップS108)。
クライアントである計算ノード100は、ファイルAの実ファイルaと実ファイルdを、I/Oサーバ200に保存する。計算ノード100は、ファイルAの実ファイルbと実ファイルeを、I/Oサーバ201に保存する。計算ノード100は、ファイルAの実ファイルcと実ファイルfを、I/Oサーバ202に保存する(ステップS108)。
各I/Oサーバは、保存された実ファイルを基に部分クォータを更新する(ステップS109)。ファイルが複数のクォータに関わる場合、クォータIDは複数付随される。
ファイルに付随されたクォータIDの集計方法として、仮想ファイルメタデータ作成部210によって作成された、ローカルファイルシステムのメタデータ等を用いて高速に集計する方法等が考えられる。
次に、クライアントがディレクトリdir02にファイルBを作成する時の動作を説明する。ファイルBを作成するとき、いずれかのI/OサーバにファイルBのメタデータ511が作成される。ここでは、クライアントである計算ノード101がI/Oサーバ201にファイルBのメタデータ511を作成すると決定したとする(ステップS101)。
クライアントである計算ノード101は、I/Oサーバ201に対してメタデータ作成の許可を要求する(ステップS102)。I/Oサーバ201の通信部240は、クォータ判定部230に、ファイルが作成されるディレクトリが、ファイルが属するクォータの範囲内であるか否か問い合わせる(ステップS103)。
クライアントである計算ノード101からメタデータ作成の許可の要求を受けたI/Oサーバ201のクォータ判定部230は、判定のために集計クォータ記憶部220を参照する。クォータ判定部230は、ディレクトリdir02がファイルBの属するクォータであるクォータ1の範囲内であることから(ステップS104のYes)、計算ノード101に対してメタデータ作成の許可を通知する(ステップS105)。
クライアントである計算ノード101は、I/Oサーバ201にファイルBのメタデータ511を作成する(ステップS106)。
図6に示すように、ファイルBのメタデータが作成されたI/Oサーバ201は、ファイルBの実ファイル情報522を、実ファイルを分散配置する自身のサーバ内に作成する。ファイルBの実ファイル情報522には、実ファイルhの情報が含まれている。
また、I/Oサーバ201は、ファイルBの実ファイル情報521を、実ファイルを分散配置するI/Oサーバ200に作成する。同様に、I/Oサーバ201は、ファイルBの実ファイル情報523を、実ファイルを分散配置するI/Oサーバ202に作成する(ステップS107)。
図6に示すように、クライアントである計算ノード101は、ファイルBの実ファイルgと実ファイルjを、I/Oサーバ200に保存する。計算ノード101は、ファイルBの実ファイルhを、I/Oサーバ201に保存する。計算ノード101は、ファイルBの実ファイルiを、I/Oサーバ202に保存する(ステップS108)。各I/Oサーバは、保存された実ファイルを基に部分クォータを更新する(ステップS109)。
このようにして、クォータ管理機能付ファイルシステム10は、ファイルのメタデータ及び実ファイルを各I/Oサーバに分散して保存する。メタデータをファイルのオブジェクトが保存されるサーバに分散して保存することで、クォータ管理機能付ファイルシステム10は、メタデータが保存されるサーバに負荷が集中する課題を改善している。
次に、図6に示すように実ファイルが配置された状態で、クライアントが実ファイルを参照するときのクライアントの動作を説明する。
図7を参照して、ディレクトリのメタデータを説明する。図7は、クォータ管理機能付ファイルシステム10が実現するファイルシステムのディレクトリメタデータとファイルメタデータとの関係を示す説明図である。図7に示すように、ここではクォータ管理機能付ファイルシステム10に備えられているI/Oサーバ203〜205を例に説明する。
ここで、ディレクトリ1配下にディレクトリ2、ディレクトリ3、ファイル1、ファイル2があるとする。ディレクトリ1のメタデータ601は、I/Oサーバ203〜205のいずれかに保存される。同様に、ディレクトリ2のメタデータ631、ディレクトリ3のメタデータ632は、I/Oサーバ203〜205のいずれかに保存される。
本実施形態において、ディレクトリのメタデータには、オブジェクトの種類(ディレクトリ)、サイズ、作成日、最終更新日、ディレクトリ所有者、アクセス権限などの、一般的なファイルシステムのディレクトリメタデータ情報に加えて、ディレクトリエントリ情報へのリンク情報が含まれている。
ここでは、ディレクトリ1のメタデータ601がI/Oサーバ203に、ディレクトリ2のメタデータ631がI/Oサーバ204に、ディレクトリ3のメタデータ632がI/Oサーバ205にそれぞれ保存されるとする。
I/Oサーバ203は、ディレクトリ1のメタデータ601の他に、ディレクトリ1のディレクトリエントリ情報611と、ディレクトリエントリ621と、ファイル1のメタデータ633とを含むとする。I/Oサーバ204は、ディレクトリ2のメタデータ631の他に、ファイル2のメタデータ634を含むとする。
クライアントは、ディレクトリ1のメタデータ601からディレクトリ1のディレクトリエントリ情報611を経由して、ディレクトリエントリ621を参照できる。本実施形態において、ディレクトリエントリ情報には、ディレクトリエントリへのリンク情報が含まれている。
ディレクトリエントリ621には、ファイル1のメタデータ633、ファイル2のメタデータ634、ディレクトリ2のメタデータ631、およびディレクトリ3のメタデータ632へのリンク情報が含まれる。このためクライアントは、ディレクトリエントリ621から、ファイル1のメタデータ633等のディレクトリ1直下のメタデータを参照できる。
次に、クォータ管理機能付ファイルシステム10が実現するファイルシステムにおける実ファイルの参照方法を、図8と図9を参照して説明する。図8は、クライアントのファイルのメタデータ取得処理の動作を示すフローチャートである。図9は、クライアントのファイルの実ファイル参照処理の動作を示すフローチャートである。
ここではクライアントである計算ノードが、ファイル“/mnt/home/file”の一部の実ファイルを参照するまでの動作を説明する。
図8のフローチャートを参照し、クライアントがファイルのメタデータを取得するまでの動作を説明する。クライアントは、目的のファイルが格納されているディレクトリ(/mnt/home/)のメタデータをキャッシュ済みか否か確認する(ステップS201)。
目的のファイルが格納されているディレクトリのメタデータをキャッシュ済みの場合(ステップS201のYes)、クライアントは、ファイルのメタデータを取得する(ステップS202)。
目的のファイルが格納されているディレクトリのメタデータがキャッシュされていない場合(ステップS201のNo)、クライアントは、キャッシュ済みのメタデータから、下位ディレクトリのメタデータが格納されているI/Oサーバを特定する(ステップS203)。そして下位ディレクトリのメタデータを取得した後(ステップS204)、クライアントは、再び目的のファイルが格納されているディレクトリのメタデータをキャッシュ済みか否か確認する(ステップS201)。
クライアントがファイルのメタデータを取得するまでの動作を、図7に示すメタデータの関係を例に具体的に説明する。ここで、ディレクトリ(/mnt/home/)のメタデータがディレクトリ1のメタデータ601、ファイル(/mnt/home/file)のメタデータがファイル1のメタデータ633であるとする。
クライアントは、メタデータ601をキャッシュ済みか否か確認する(ステップS201)。キャッシュ済みの場合(ステップS201のYes)、クライアントは、メタデータ601からディレクトリエントリ情報611を参照する。次いで、クライアントは、ディレクトリエントリ情報611からディレクトリエントリ621を参照する。ディレクトリエントリ621からメタデータ633を参照し、クライアントは、メタデータ633を取得する(ステップS202)。
メタデータ601がキャッシュされていない場合(ステップS201のNo)、クライアントは、キャッシュ済みのディレクトリ(/mnt/)のメタデータから、下位ディレクトリ(/mnt/home/)のメタデータが格納されているI/Oサーバを特定する(ステップS203)。
下位ディレクトリ(/mnt/home/)のメタデータ601が格納されているI/OサーバがI/Oサーバ203であることを特定すると、クライアントは、メタデータ601を取得する(ステップS204)。メタデータ601を取得すると、クライアントは、再びメタデータ601をキャッシュ済みか否か確認する(ステップS201)。
次に、図9のフローチャートを参照し、クライアントがファイル“/mnt/home/file”の一部の実ファイルを参照するまでの動作を説明する。クライアントは、fileのメタデータキャッシュを保存しているか確認する(ステップS301)。
メタデータキャッシュを保存していない場合(ステップS301のNo)、クライアントは、図8に示すようにfileのメタデータキャッシュを取得する(ステップS302)。
メタデータキャッシュを保存している場合(ステップS301のYes)、またはメタデータを取得した場合(ステップS302)、クライアントは、ファイル(/mnt/home/file)のメタデータを開く(ステップS303)。
クライアントは、開いたfileのメタデータと、fileを参照する位置から、実ファイルが格納されているI/Oサーバを特定する(ステップS304)。特定すると、クライアントは、I/Oサーバの実ファイルを参照する(ステップS305)。
クライアントがファイルの一部の実ファイルを参照するまでの動作を、図6に示すメタデータと実ファイルとの関係を例に具体的に説明する。ここで、ファイル(/mnt/home/file)のメタデータがファイルAのメタデータ411、また参照する実ファイルが実ファイルbであるとする。
クライアントは、メタデータ411のキャッシュを保存しているか確認する(ステップS301)。メタデータ411のキャッシュを保存している場合(ステップS301のYes)、クライアントは、メタデータ411を開く(ステップS303)。クライアントは、メタデータ411と、fileを参照する位置から、実ファイルbの格納されているI/Oサーバを特定する(ステップS304)。
実ファイルbの格納されているI/OサーバがI/Oサーバ201であることを特定すると、クライアントは、メタデータ411から、実ファイルbの情報を含む実ファイル情報422を参照する。クライアントは、実ファイル情報422から実ファイルbを参照する(ステップS305)。
次に、本発明によるクォータ集計処理の動作を図10を参照して説明する。図10は、クォータ管理機能付ファイルシステム10のクォータ集計処理の動作を示すフローチャートである。図10に示すクォータ集計処理は、ファイルシステム全体のクォータである集計クォータを得る処理である。
クォータ管理機能付ファイルシステム10の各I/Oサーバは、タイマ部251のタイマを初期化する(ステップS401)。
タイマ部251がタイムアウトしたとき(ステップS402のYes)、各I/Oサーバは、自身が集計クォータを作成するI/Oサーバであるか否か確認する(ステップS403)。
ここで、集計クォータを作成するI/Oサーバには、クォータ管理機能付ファイルシステム10のI/Oサーバ内で一番負荷の低いI/Oサーバが選ばれる。I/Oサーバの負荷情報は、サーバ負荷監視部270で監視されている。CPU負荷等の監視された負荷情報は、各I/Oサーバ間で交換されている。
集計クォータを作成するI/Oサーバでない場合(ステップS403のNo)、そのI/Oサーバは、タイマ部251が再びタイムアウトするまで待機する。
集計クォータを作成するI/Oサーバの場合(ステップS403のYes)、そのI/Oサーバは、部分クォータ260の更新部分を各I/Oサーバから収集し、集計クォータを作成する(ステップS404)。I/Oサーバは、作成した集計クォータを他の全てのI/Oサーバへ配信する(ステップS405)。
図11は、クォータ管理機能付ファイルシステム10のクォータの集計と配布の例を示す説明図である。
図11に示すように、部分クォータ700と部分クォータ710は、それぞれクォータIDが0のクォータとクォータIDが1のクォータを持つ。そして、部分クォータ700内のクォータIDが0のクォータ701と、部分クォータ710内のクォータIDが0のクォータ711がそれぞれ更新された状態である。
このとき、集計するI/Oサーバは、クォータ701とクォータ711を集計し、集計クォータ720内のクォータIDが0のクォータ721を更新する。集計するI/Oサーバは、更新部分を他の全てのI/Oサーバへ配信する集計クォータ730にも適用する。これより、集計クォータ730内のクォータIDが0のクォータ731は更新される。
配信した後、I/Oサーバは、作成した集計クォータを参照してタイムアウト値を変更する(ステップS406)。
本実施形態のクォータ管理機能付ファイルシステムを使用する場合、クォータの管理が低負荷で実現される。その理由は、メタデータと分割されたファイルが複数のサーバに分散しているファイルシステムにおいて、分割されたファイルにクォータIDを付与することで、各サーバ内でクォータを集計できるため、サーバ間通信を軽減できるからである。また、サーバが自身の負荷監視を行いサーバ間で負荷状況を交換しているため、低負荷なサーバにクォータを集計させることができるからである。
本実施形態のクォータ管理機能付ファイルシステムを使用する場合、クォータのディスク使用量がクォータリミットを超えた時から、入出力制限がかかるまでの遅延時間を小さくすることができる。その理由は、ディスク使用量がクォータリミットに近づいてきたときに、ファイルシステムがクォータの更新頻度を上げるためである。
次に、本発明の概要を説明する。図12は、本発明によるクォータ管理機能付ファイルシステムの概要を示すブロック図である。本発明によるクォータ管理機能付ファイルシステム1は、通信網3(例えば、通信網300)を介して通信可能な1台以上のI/Oサーバ2〜2(I/Oサーバ200〜205に相当)を含み、作成されるファイルを分割し複数のI/Oサーバ2〜2に分散させて保存し、各ファイルを読み取るために必要な各メタデータを複数のI/Oサーバ2〜2に分散させて保存し、クォータを管理するファイルシステムである。
I/Oサーバ2は、クォータ管理機能付ファイルシステム1全体のクォータである集計クォータを記憶する集計クォータ記憶部6(例えば、集計クォータ記憶部220)と、I/Oサーバ2内のクォータである部分クォータを記憶する部分クォータ記憶部7(例えば、部分クォータ260)と、分割された実ファイルを保存し、集計クォータ記憶部6に保存された集計クォータを参照して作成されたファイルが属するクォータのクォータIDを実ファイルに付与するクォータ管理部8(例えば、サーバ内ローカルファイルシステム部280)と、実ファイルが更新された際にクォータIDを参考にして部分クォータ記憶部7に保存されている部分クォータを更新するクォータ更新部9(例えば、サーバ内クォータ更新部290)と、通信網3を介して他のI/Oサーバ2〜2と情報を交換する通信部4(例えば、通信部240)と、通信部4を介してクォータ管理機能付ファイルシステム1内の他の全てのI/Oサーバ2〜2から部分クォータの更新部分を収集し、収集した更新部分が反映された集計クォータを作成し、通信部4を介して作成した集計クォータを他の全てのI/Oサーバ2〜2へ配信するクォータ集計部5(例えば、クォータ集計部250)とを含む。
そのような構成により、このクォータ管理機能付ファイルシステムを使用する場合、使用するユーザは、比較的低負荷にクォータ管理ができる。
また、クォータ集計部5は、作成した集計クォータを参照して、集計クォータを作成する時間間隔を変更してもよい。
そのような構成により、このクォータ管理機能付ファイルシステムを使用する場合、使用するユーザは、クォータのディスク使用量がクォータリミットを超えた時から、入出力制限がかかるまでの遅延時間を小さくすることができる。
また、I/Oサーバ2は、自身の負荷を監視する負荷監視部(例えば、サーバ負荷監視部270)を含み、通信部4を介して他のI/Oサーバ2〜2と負荷情報を交換してもよい。
また、クォータ管理機能付ファイルシステム1は、最も負荷の低いI/Oサーバに集計クォータを作成させてもよい。
そのような構成により、このクォータ管理機能付ファイルシステムを使用する場合、使用するユーザは、最も低負荷なサーバにクォータを集計させることができる。
また、I/Oサーバ2は、新規に作成されるファイルのI/Oサーバ2内へのメタデータ作成の許可を要求された際に、集計クォータ記憶部6に保存された集計クォータを参照して、ファイルが作成されるディレクトリが、ファイルが属するクォータの範囲内であればメタデータ作成を許可するクォータ判定部(例えば、クォータ判定部230)を含んでもよい。
そのような構成により、このクォータ管理機能付ファイルシステムを使用する場合、使用するユーザは、誤ったクォータにファイルを作成せずに済むことができる。
また、I/Oサーバ2は、クォータ管理部8内に仮想ファイルメタデータを作成する仮想ファイルメタデータ作成部(例えば、仮想ファイルメタデータ作成部210)を含んでもよい。
そのような構成により、このクォータ管理機能付ファイルシステムを使用する場合、使用するユーザは、仮想ファイルメタデータを用いて、実ファイルに付随されたクォータIDを高速に集計できる。
1、10 クォータ管理機能付ファイルシステム
〜2、200〜205 I/Oサーバ
5 クォータ集計部
7 部分クォータ記憶部
8 クォータ管理部
9 クォータ更新部
100〜104 計算ノード
210 仮想ファイルメタデータ作成部
6、220 集計クォータ記憶部
230 クォータ判定部
4、240 通信部
250 クォータ集計部
251 タイマ部
260 部分クォータ
270 サーバ負荷監視部
280 サーバ内ローカルファイルシステム部
290 サーバ内クォータ更新部
3、300 通信網
411 ファイルAのメタデータ
421〜423 ファイルAの実ファイル情報
511 ファイルBのメタデータ
521〜523 ファイルBの実ファイル情報
601 ディレクトリ1のメタデータ
611 ディレクトリ1のディレクトリエントリ情報
621 ディレクトリエントリ
631 ディレクトリ2のメタデータ
632 ディレクトリ3のメタデータ
633 ファイル1のメタデータ
634 ファイル2のメタデータ
700、710 部分クォータ
720、730 集計クォータ
701、711、721、731 クォータ

Claims (10)

  1. 1台以上のI/Oサーバを含み、作成されるファイルを分割し複数のI/Oサーバに分散させて保存し、各ファイルを読み取るために必要な各メタデータを複数のI/Oサーバに分散させて保存し、クォータを管理するクォータ管理機能付ファイルシステムであって、
    前記I/Oサーバは、
    クォータ管理機能付ファイルシステム全体のクォータである集計クォータを記憶する集計クォータ記憶部と、
    I/Oサーバ内のクォータである部分クォータを記憶する部分クォータ記憶部と、
    分割された実ファイルを保存し、前記集計クォータ記憶部に保存された集計クォータを参照して作成されたファイルが属するクォータのクォータIDを実ファイルに付与するクォータ管理部と、
    実ファイルが更新された際に前記クォータIDを参考にして前記部分クォータ記憶部に保存されている部分クォータを更新するクォータ更新部と、
    通信網を介して他のI/Oサーバと情報を交換する通信部と、
    前記通信部を介してクォータ管理機能付ファイルシステム内の他の全てのI/Oサーバから部分クォータの更新部分を収集し、収集した前記更新部分が反映された集計クォータを作成し、前記通信部を介して作成した前記集計クォータを他の全てのI/Oサーバへ配信するクォータ集計部とを含む
    ことを特徴とするクォータ管理機能付ファイルシステム。
  2. クォータ集計部は、作成した集計クォータを参照して、集計クォータを作成する時間間隔を変更する
    請求項1記載のクォータ管理機能付ファイルシステム。
  3. I/Oサーバは、自身の負荷を監視する負荷監視部を含み、通信部を介して他のI/Oサーバと負荷情報を交換する
    請求項1または請求項2記載のクォータ管理機能付ファイルシステム。
  4. クォータ管理機能付ファイルシステムは、最も負荷の低いI/Oサーバに集計クォータを作成させる
    請求項3記載のクォータ管理機能付ファイルシステム。
  5. I/Oサーバは、新規に作成されるファイルのI/Oサーバ内へのメタデータ作成の許可を要求された際に、集計クォータ記憶部に保存された集計クォータを参照して、ファイルが作成されるディレクトリが、ファイルが属するクォータの範囲内であればメタデータ作成を許可するクォータ判定部を含む
    請求項1から請求項4のうちのいずれか1項に記載のクォータ管理機能付ファイルシステム。
  6. I/Oサーバは、クォータ管理部内に仮想ファイルメタデータを作成する仮想ファイルメタデータ作成部を含む
    請求項1から請求項5のうちのいずれか1項に記載のクォータ管理機能付ファイルシステム。
  7. 1台以上のI/Oサーバを含み、作成されるファイルを分割し複数のI/Oサーバに分散させて保存し、各ファイルを読み取るために必要な各メタデータを複数のI/Oサーバに分散させて保存し、クォータを管理するクォータ管理機能付ファイルシステム内の前記I/Oサーバにおいて実行されるクォータ管理方法であって、
    クォータ管理機能付ファイルシステム全体のクォータである集計クォータを記憶し、
    I/Oサーバ内のクォータである部分クォータを記憶し、
    分割された実ファイルを保存し、
    前記集計クォータを参照して作成されたファイルが属するクォータのクォータIDを実ファイルに付与し、
    実ファイルが更新された際に前記クォータIDを参考にして前記部分クォータを更新し、
    通信網を介して他のI/Oサーバと情報を交換し、
    クォータ管理機能付ファイルシステム内の他の全てのI/Oサーバから部分クォータの更新部分を収集し、
    収集した前記更新部分が反映された集計クォータを作成し、
    作成した前記集計クォータを他の全てのI/Oサーバへ配信する
    ことを特徴とするクォータ管理方法。
  8. 作成した集計クォータを参考にして、集計クォータを作成する時間間隔を変更する
    請求項7記載のクォータ管理方法。
  9. 1台以上のI/Oサーバを含み、作成されるファイルを分割し複数のI/Oサーバに分散させて保存し、各ファイルを読み取るために必要な各メタデータを複数のI/Oサーバに分散させて保存し、クォータを管理するクォータ管理機能付ファイルシステム内の前記I/Oサーバにおいて実行されるクォータ管理プログラムであって、
    前記I/Oサーバに、
    クォータ管理機能付ファイルシステム全体のクォータである集計クォータを記憶する集計クォータ記憶処理、
    I/Oサーバ内のクォータである部分クォータを記憶する部分クォータ記憶処理、
    分割された実ファイルを保存する保存処理、
    前記集計クォータを参照して作成されたファイルが属するクォータのクォータIDを実ファイルに付与するクォータ管理処理、
    実ファイルが更新された際に前記クォータIDを参考にして前記部分クォータを更新するクォータ更新処理、
    通信網を介して他のI/Oサーバと情報を交換するための通信処理、
    クォータ管理機能付ファイルシステム内の他の全てのI/Oサーバから部分クォータの更新部分を収集する収集処理、
    収集した前記更新部分が反映された集計クォータを作成する作成処理、および
    作成した前記集計クォータを他の全てのI/Oサーバへ配信する配信処理
    を実行させるためのクォータ管理プログラム。
  10. I/Oサーバに、
    作成した集計クォータを参考にして、集計クォータを作成する時間間隔を変更する変更処理を実行させる
    請求項9記載のクォータ管理プログラム。
JP2013013858A 2013-01-29 2013-01-29 クォータ管理機能付ファイルシステム、クォータ管理方法およびクォータ管理プログラム Active JP6020210B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013013858A JP6020210B2 (ja) 2013-01-29 2013-01-29 クォータ管理機能付ファイルシステム、クォータ管理方法およびクォータ管理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013013858A JP6020210B2 (ja) 2013-01-29 2013-01-29 クォータ管理機能付ファイルシステム、クォータ管理方法およびクォータ管理プログラム

Publications (2)

Publication Number Publication Date
JP2014146144A JP2014146144A (ja) 2014-08-14
JP6020210B2 true JP6020210B2 (ja) 2016-11-02

Family

ID=51426367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013013858A Active JP6020210B2 (ja) 2013-01-29 2013-01-29 クォータ管理機能付ファイルシステム、クォータ管理方法およびクォータ管理プログラム

Country Status (1)

Country Link
JP (1) JP6020210B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171224A (ja) * 2002-11-19 2004-06-17 Nec Corp 契約ストレージ代行提供システムおよび契約ストレージ代行提供方法
JP4400126B2 (ja) * 2003-08-08 2010-01-20 株式会社日立製作所 仮想一元化ネットワークストレージシステムにおける一元的なディスク使用量制御方法
JP4281658B2 (ja) * 2004-09-24 2009-06-17 日本電気株式会社 ファイルアクセスサービスシステムとスイッチ装置及びクオータ管理方法並びにプログラム

Also Published As

Publication number Publication date
JP2014146144A (ja) 2014-08-14

Similar Documents

Publication Publication Date Title
US11789925B2 (en) System and method for conditionally updating an item with attribute granularity
US11709600B2 (en) System and method for performing live partitioning in a data store
US20210103604A1 (en) System and method for implementing a scalable data storage service
US11609697B2 (en) System and method for providing a committed throughput level in a data store
US9460185B2 (en) Storage device selection for database partition replicas
US9489443B1 (en) Scheduling of splits and moves of database partitions
US9372911B2 (en) System and method for performing replica copying using a physical copy mechanism
US8572091B1 (en) System and method for partitioning and indexing table data using a composite primary key
CN100465901C (zh) 网络系统、管理计算机以及集群管理方法
JP5853109B2 (ja) 計算機、計算機システムの制御装置及び記録媒体
JP6020210B2 (ja) クォータ管理機能付ファイルシステム、クォータ管理方法およびクォータ管理プログラム
CN116149872A (zh) 数据处理系统和数据处理方法
CN114647632A (zh) 用于数据库负载控制的方法、系统及存储介质
Alsaiari et al. Load Balancing Techniques for Web Proxy Cache Clusters.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160831

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160906

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160919

R150 Certificate of patent or registration of utility model

Ref document number: 6020210

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150