(57)【要約】【課題】グローバルファイルシステムにおいてファイルの再配置が効率的に行えるようにすること。【解決手段】領域管理用メタデータサーバマシン３０は、何れかのノードマシン２０〜５０がファイルアクセスに伴ってメタデータを問い合わせてきたときには、そのファイルが断片化状態にあるか否かを判定し（ステップＳ１０５〜Ｓ１０８）、断片化状態にあれば、そのファイルに関する情報を断片化ファイル情報管理テーブル７３に登録する（ステップＳ１０９）。また、領域管理用メタデータサーバマシン３０は、この動作と並行して、操作者からボリュームの追加が指示されると（ステップＳ２０１、Ｓ２０２）、断片化ファイル情報管理テーブル７３に情報が登録されているファイルを、既存のディスクから、追加されるディスクへ、順に移動させる（ステップＳ２１１、Ｓ３０９、Ｓ４０１〜Ｓ４０３）。【選択図】図１３
2009037564.tif 000002
【特許請求の範囲】
【請求項１】
ファイルとディスクブロックとの関係を定義する領域情報、及び、名前空間を定義する名前情報を含むメタデータ、並びに、ファイルが記録されるディスクを複数のノードマシンに共用させるグローバルファイルシステムが実装されたクラスタシステムにおいてメタデータサーバマシンがディスクを管理するためのプログラムであって、
前記メタデータサーバマシンを、
何れかのノードマシンからファイルアクセスに伴うメタデータの問い合わせを受け付けると、そのファイルが断片化状態にあるか否かを判定する判定手段、
前記判定手段が当該ファイルが断片化状態にあると判定した場合に、そのファイルに関する情報を記憶装置内のテーブルに登録する登録手段、
任意のディスクの指定とともにボリューム追加の指示を入力装置を通じて操作者から受け付ける受付手段、及び、
前記受付手段がボリューム追加の指示を受け付けると、前記テーブルに情報が登録されているファイルを、既存ディスクから、前記受付手段で受け付けた指定により特定されるディスクへ、順に移動させる移動手段
として機能させる
ことを特徴とするディスク管理プログラム。
【請求項２】
前記移動手段は、前記受付手段がボリューム追加の指示を受け付けた後、既存ディスクのボリュームが所定の状態になってから、ファイルの移動を行う
ことを特徴とする請求項１記載のディスク管理プログラム。
【請求項３】
前記受付手段は、任意のディスクの指定とボリューム追加の指示とともに、ボリューム追加を実行すべき既存ディスクのボリュームの空き容量の条件を、入力装置を通じて操作者から受け付け、
前記移動手段は、前記受付手段がボリューム追加の指示を受け付けた後、既存ディスクのボリュームが前記受付手段が受け付けた空き容量の条件に合致した状態になってから、ファイルの移動を行う
ことを特徴とする請求項２記載のディスク管理プログラム。
【請求項４】
前記判定手段は、当該ファイルのエクステント数が所定の閾値を超えている場合に、当該ファイルが断片化状態にあると判定する
ことを特徴とする請求項１、２又は３記載のディスク管理プログラム。
【請求項５】
前記判定手段は、当該ファイルのアクセス数が所定の閾値を超えている場合に、当該ファイルが断片化状態にあると判定する
ことを特徴とする請求項１、２又は３記載のディスク管理プログラム。
【請求項６】
ファイルとディスクブロックとの関係を定義する領域情報、及び、名前空間を定義する名前情報を含むメタデータ、並びに、ファイルが記録されるディスクを複数のノードマシンに共用させるグローバルファイルシステムが実装されたクラスタシステムにおいてメタデータサーバマシンがディスクを管理するための方法であって、
前記メタデータサーバマシンが、
何れかのノードマシンからファイルアクセスに伴うメタデータの問い合わせを受け付けると、そのファイルが断片化状態にあるか否かを判定する判定手順、
前記判定手順で当該ファイルが断片化状態にあると判定した場合に、そのファイルに関する情報を記憶装置内のテーブルに登録する登録手順、
任意のディスクの指定とともにボリューム追加の指示を入力装置を通じて操作者から受け付ける受付手順、及び、
前記受付手順でボリューム追加の指示を受け付けると、前記テーブルに情報が登録されているファイルを、既存ディスクから、前記受付手順で受け付けた指定により特定されるディスクへ、順に移動させる移動手順
を実行する
ことを特徴とするディスク管理方法。
【請求項７】
ファイルとディスクブロックとの関係を定義する領域情報、及び、名前空間を定義する名前情報を含むメタデータ、並びに、ファイルが記録されるディスクを複数のノードマシンに共用させるグローバルファイルシステムが実装されたクラスタシステムにおいてディスクを管理するための装置であって、
何れかのノードマシンからファイルアクセスに伴うメタデータの問い合わせを受け付けると、そのファイルが断片化状態にあるか否かを判定する判定部、
前記判定部が当該ファイルが断片化状態にあると判定した場合に、そのファイルに関する情報をテーブルに登録する登録部、
任意のディスクの指定とともにボリューム追加の指示を操作者から受け付ける受付部、及び、
前記受付部がボリューム追加の指示を受け付けると、前記テーブルに情報が登録されているファイルを、既存ディスクから、前記受付部で受け付けた指定により特定されるディスクへ、順に移動させる移動部
を備えることを特徴とするディスク管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクを管理するためのプログラム、方法及び装置に、関する。
【背景技術】
【０００２】
周知のように、ストレージマシン内のディスクの記憶領域は、複数のセクタに細かく区割りされている。複数のセクタは、ファイルシステムによって、更に、連続する所定個数の単位ごとに、ブロックとして纏められ、各ブロックは、アドレスを付けて管理されている。通常、ファイルのデータ量は、１つのブロックの記憶容量より大きいため、ファイルシステムがファイルをディスクに記録する場合、ファイルは、複数のブロックに亙って書き込まれる。ファイルを構成する複数の単位データが、それぞれどのブロックに記録されているかは、ファイルシステムにより管理されている（領域管理）。なお、各ファイルは、利用者の整理性の向上のため、階層的に分類されており、各階層に関するディレクトリ情報も、ファイルシステムにより管理されている（名前管理）。
【０００３】
ファイルは、使用開始直後のディスクでは、連続したブロックに纏めて書き込まれるが、或る程度使用されたディスクでは、不連続のブロックに分散して書き込まれてしまうことが多い。これは、或る程度使用されたディスクでは、ファイルの書込と上書（すなわち割り当てブロックの増量又は減量）と消去とが繰り返されていることにより、所々に空きブロックが生じるためである。このようにファイルが不連続のブロックに書き込まれた状態は、断片化状態（フラグメンテーション）と称されており、ディスク内のファイルがこのように断片化されていると、ファイルアクセスにおける単位データのシークに時間が掛かってしまう。
【０００４】
このようなファイルアクセス速度の低下を解消するため、従来、デフラグメンテーション機能が使用されている。デフラグメンテーション機能は、周知のように、断片化したファイルを、不連続なブロックから、連続したブロックに再配置する機能である。具体的には、デフラグメンテーション機能は、断片化したファイルの単位データを、不連続なブロックから消去して別のブロックへ一旦複製することにより、連続するブロックを確保し、その後、一旦複製された単位データを、確保した連続ブロックへ移し替えるというものである。
【０００５】
ところで、従来のファイルシステムは、ディスク内で名前空間（ファイルとその階層的分類（ディレクトリ）の体系）を完結させるものであったため、信頼性や拡張性に欠けていた。近年では、ファイルシステムの信頼性や拡張性を向上させるため、グローバルファイルシステムが開発されている。
【０００６】
グローバルファイルシステムは、クラスタシステムを構成する複数のノードマシンに対し、同一のメタデータと同一のディスクとを共用させるファイルシステムである。メタデータは、主に、ファイルとディスクブロックとの関係を定義する領域情報、及び、名前空間を定義する名前情報からなり、各ノードマシンと同じネットワークに接続されたメタデータサーバマシンにおいて管理される。つまり、グローバルファイルシステムでは、ファイルシステムの主な三仕事である領域管理、名前管理、及び、ファイル操作制御のうち、領域管理及び名前管理を、メタデータサーバマシンが担当することとなる。一方、各ノードマシンは、ファイル操作制御の機能のみを備え、クライアントとしてメタデータを利用する。
【０００７】
このようなグローバルファイルシステムにより複数のノードマシンに利用されるディスクでは、その空き容量が足りなくなってくると、前述したフラグメンテーションが発生していることが多い。そのため、空き容量の不足時には、前述したデフラグメンテーション機能によるファイルの再配置が必要となってくる。
【０００８】
しかしながら、空き容量が足りないことから、断片化したファイルを構成する単位データを再配置する際に単位データを一旦複製しておくブロックも少なく、効率的にデフラグメンテーションが行えないという問題があった。
【０００９】
なお、特許文献１には、ディスク内で断片化されている音声データのファイルを、視聴用マシンのディスクへ、単位データの再配置をししつつ短時間で転送する技術が、開示されている。但し、この特許文献１に係る技術は、データ転送に係るものであり、断片化されているファイルを同一ボリューム内で再配置するというものではない。
【００１０】
【特許文献１】特開２００６−０４０２２７号公報（段落００４０）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、前述したような従来技術の有する問題点に鑑みてなされたものであり、その課題は、グローバルファイルシステムにおいてファイルの再配置が効率的に行えるようにすることにある。
【課題を解決するための手段】
【００１２】
上記の課題を解決するために案出されたディスク管理プログラムは、ファイルとディスクブロックとの関係を定義する領域情報、及び、名前空間を定義する名前情報を含むメタデータ、並びに、ファイルが記録されるディスクを複数のノードマシンに共用させるグローバルファイルシステムが実装されたクラスタシステムにおいて、メタデータサーバマシンを、何れかのノードマシンからファイルアクセスに伴うメタデータの問い合わせを受け付けると、そのファイルが断片化状態にあるか否かを判定する判定手段、その判定手段が当該ファイルが断片化状態にあると判定した場合に、そのファイルに関する情報を記憶装置内のテーブルに登録する登録手段、任意のディスクの指定とともにボリューム追加の指示を入力装置を通じて操作者から受け付ける受付手段、及び、その受付手段がボリューム追加の指示を受け付けると、テーブルに情報が登録されているファイルを、既存ディスクから、受付手段で受け付けた指定により特定されるディスクへ、順に移動させる移動手段として機能させることを、特徴としている。
【００１３】
このように構成されると、メタデータサーバマシンは、何れかのノードマシンがファイルアクセスに伴ってメタデータを問い合わせてきたときには、そのファイルが断片化状態にあるか否かを判定し、断片化状態にあれば、そのファイルに関する情報をテーブルに登録するよう、動作する。また、メタデータサーバマシンは、この動作と並行して、操作者からボリュームの追加が指示されると、テーブルに情報が登録されているファイルを、既存のディスクから、追加されるディスクへ、順に移動させるよう、動作する。このような動作によれば、既存ディスク内で断片化状態にあったファイルは、追加されるディスク内へ移動されることに伴い、連続したブロックに纏めて書き込まれることとなる。つまり、ディスクの空き容量が足りなくても、ファイルが効率的に再配置されるようになる。
【００１４】
また、上記の課題を解決するために案出されたディスク管理方法は、ファイルとディスクブロックとの関係を定義する領域情報、及び、名前空間を定義する名前情報を含むメタデータ、並びに、ファイルが記録されるディスクを複数のノードマシンに共用させるグローバルファイルシステムが実装されたクラスタシステムにおいて、メタデータサーバマシンが、何れかのノードマシンからファイルアクセスを受け付けると、そのファイルが断片化状態にあるか否かを判定する判定手順、その判定手順で当該ファイルが断片化状態にあると判定した場合に、そのファイルに関する情報を記憶装置内のテーブルに登録する登録手順、任意のディスクの指定とともにボリューム追加の指示を入力装置を通じて操作者から受け付ける受付手順、及び、その受付手順でボリューム追加の指示を受け付けると、テーブルに情報が登録されているファイルを、既存ディスクから、受付手順で受け付けた指定により特定されるディスクへ、順に移動させる移動手順を実行することを、特徴としている。
【００１５】
従って、このディスク管理方法を実現したメタデータサーバマシンは、前述した本発明のディスク管理プログラムが動作したメタデータサーバマシンと同等に機能することとなる。
【００１６】
また、上記の課題を解決するために案出されたディスク管理装置は、ファイルとディスクブロックとの関係を定義する領域情報、及び、名前空間を定義する名前情報を含むメタデータ、並びに、ファイルが記録されるディスクを複数のノードマシンに共用させるグローバルファイルシステムが実装されたクラスタシステムにおいてディスクを管理するため、何れかのノードマシンからファイルアクセスを受け付けると、そのファイルが断片化状態にあるか否かを判定する判定部、その判定部が当該ファイルが断片化状態にあると判定した場合に、そのファイルに関する情報をテーブルに登録する登録部、任意のディスクの指定とともにボリューム追加の指示を操作者から受け付ける受付部、及び、その受付部がボリューム追加の指示を受け付けると、テーブルに情報が登録されているファイルを、既存ディスクから、受付部で受け付けた指定により特定されるディスクへ、順に移動する移動部を備えることを、特徴としている。
【００１７】
従って、このディスク管理装置は、前述した本発明のディスク管理プログラムが動作したメタデータサーバマシンと同等に機能することとなる。
【発明の効果】
【００１８】
以上に説明したように、本発明によれば、グローバルファイルシステムにおいてファイルの再配置が効率的に行えるようになる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を実施するための最良の形態について、添付図面を参照しながら、説明する。
【００２０】
まず、本実施形態のコンピュータネットワークシステムのハードウエア構成とソフトウエア構成について、説明する。
【００２１】
本実施形態のコンピュータネットワークシステムは、図１のネットワーク構成図に示すように、ストレージマシン１０、名前管理用メタデータサーバマシン２０、領域管理用メタデータサーバマシン３０、デフラグ用メタデータサーバマシン４０、汎用サーバマシン５０、及び、クライアントマシン６０からなる。このうち、ストレージマシン１０と各サーバマシン２０〜５０とは、図示せぬファイバチャンネルスイッチを介して通信自在に接続されることにより、ＳＡＮ［Storage Area Network］を構成している。また、各サーバマシン２０〜５０とクライアントマシン６０とは、図示せぬルータを介して通信自在に接続されることにより、ＬＡＮ［Local Area Network］を構成している。なお、汎用サーバマシン５０は、図１では１台しか示されていないが、２台以上存在していても良い。また、ストレージマシン１０とクライアントマシン６０は、図１ではともに２台しか示されていないが、何れも１台しか存在していなくても良いし、３台以上存在していても良い。
【００２２】
また、本実施形態のサーバマシン２０〜５０には、異機種間に単一のファイルシステム機能を提供するグローバルファイルシステムが適用されている。なお、周知のように、ファイルシステムは、主に、名前管理、領域管理、及び、ファイル操作制御を、行うものであるが、このうち、ファイル操作制御を実現する機能は、後述するように、グローバルファイルシステムのクライアントとして、全てのサーバマシン２０〜５０に実装されている。一方、名前管理及び領域管理を実現する機能は、後述するように、グローバルファイルシステムのサーバとして、メタデータサーバマシン２０〜４０に実装されている。
【００２３】
ここで、グローバルファイルシステムの名前管理及び領域管理を実現する機能は、一般的には、１台のメタデータサーバマシンに実装されることが多いが、本実施形態では、名前管理と領域管理とは、別々のマシン２０、３０に実装されている。このように名前管理と領域管理とが別々のマシンに実装されているのは、デフラグメンテーション機能によるファイル再配置処理がファイルアクセス処理に与える影響を最小にするためである。これは、一般的なファイルアクセス処理では、ディレクトリ検索が頻繁に行われて名前管理機能に負荷が掛かるのに対し、領域管理機能には相対的に負荷が掛からないという事情、及び、ファイル再配置処理では、ファイルが記録されているディスクブロックが変更されることに伴って領域情報が頻繁に更新されて領域管理機能に負荷が掛かるのに対し、名前管理機能には相対的に負荷が掛からないという事情に基づいている。
【００２４】
更に、本実施形態では、領域管理機能に一般的に含まれるデフラグメンテーション機能を、領域管理用メタデータサーバマシン３０とは別のマシン４０に担当させている。これは、ファイル再配置処理において負荷が掛かる処理として、ファイル移動に伴うデータ複製と、領域情報の更新処理とがあり、これらを別々のサーバマシンに担当させた方が、デフラグ処理の負荷を分散できるためである。
【００２５】
なお、以上に説明したように、サーバマシン２０〜５０は、ファイルシステムに掛かる負荷を分散したシステム（クラスタ）を構成しているため、ノードマシンと称することもできる。
【００２６】
ストレージマシン１０は、サーバマシン２０〜５０がクライアントマシン６０に提供する機能や情報を記録しておくための装置であり、図２の構成図に示すように、ディスクユニット１０ａ、ストレージコントローラ１０ｂ、及び、ＨＢＡ［Host Bus Adapter］１０ｃを、内蔵している。ディスクユニット１０ａは、データを記録するための１枚以上のディスク、ディスクの回転機構、及び、読み書きヘッドを内蔵するユニットである。ストレージコントローラ１０ｂは、メタデータサーバマシン２０〜５０からのコマンドに従ってディスクに対するデータの読み書きを制御するユニットである。ＨＢＡ１０ｃは、ファイバチャネルプロトコルに従ってメタデータサーバマシン２０〜５０とデータの遣り取りを行うための通信アダプタである。
【００２７】
名前管理用メタデータサーバマシン２０は、前述した名前管理を担当するメタデータサーバマシンであり、図３の構成図に示すように、ストレージユニット２０ａ、ＣＰＵ［Central Processing Unit］２０ｂ、メモリユニット２０ｃ、ＨＢＡ２０ｄ、及び、ＬＡＮアダプタ２０ｅを、内蔵している。ストレージユニット２０ａは、各種のプログラムやデータを記録しておくためのユニットである。ＣＰＵ２０ｂは、ストレージユニット２０ａに記録されているプログラムに従って処理を行うユニットである。メモリユニット２０ｃは、ＣＰＵ２０ｂがプログラムやデータをキャッシュしたり作業領域を展開したりするユニットである。ＨＢＡ２０ｄは、ファイバチャネルプロトコルに従ってストレージマシン１０とデータの遣り取りを行うための通信アダプタである。ＬＡＮアダプタ２０ｅは、ＴＣＰ／ＩＰ［Transmission Control Protocol/Internet Protocol］及びイーサネットプロトコル（イーサネットは、米ゼロックス社及び米ヒューレットパッカード社商標）に従ってクライアントマシン６０とデータの遣り取りを行うための通信アダプタである。
【００２８】
この名前管理用メタデータサーバマシン２０は、ストレージユニット２０ａに、アプリケーション２１、オペレーティングシステム２２、及び、ファイルシステム２３を、記憶している。アプリケーション２１は、クライアントマシン６０に提供される各種機能を実現するソフトウエアであり、このアプリケーション２１で実現される機能としては、例えば、ウェブサーバ、ウェブアプリケーション、ファイルサーバ、メールサーバなどがある。オペレーティングシステム２２は、ＨＢＡ２０ｄやＬＡＮアダプタ２０ｅにおけるデータの入出力の管理や、メモリユニット２０ｃの記憶領域の管理や、複数のタスクにウインドウを割り当てて画面出力を多重化するウインドウシステムや、各種設定ツールといった基本的な機能を、アプリケーション２１を含む多くのアプリケーションに提供するためのソフトウエアである。ファイルシステム２３は、前述したグローバルファイルシステムを実現するためのソフトウエアであり、そのグローバルファイルシステムによる機能のうち、クライアントとしてファイル操作制御機能を実現するプログラム２３ａ、及び、名前空間（ファイルとその階層的分類（ディレクトリ）の体系）を管理する機能を実現するためのプログラム２３ｂを、含んでいる。ファイル操作制御機能２３ａは、ファイルの読み出し、書き込み、複製、上書き、消去、名称変更、ディレクトリの移動、ディレクトリの作成、ディレクトリの削除と言ったファイルに関する操作をアプリケーション２１に提供するプログラムである。名前管理機能２３ｂは、メタデータのうち、名前空間（ファイル名、）を定義する名前情報（ファイルに関する情報、ディレクトリに関する情報、ディレクトリ構造に関する情報）を管理するとともに、ファイル名やディレクトリ名の検索を行うためのプログラムである。
【００２９】
領域管理用メタデータサーバマシン３０は、前述した領域管理を担当するメタデータサーバマシンであり、図４の構成図に示すように、ストレージユニット３０ａ、ＣＰＵ３０ｂ、メモリユニット３０ｃ、ＨＢＡ３０ｄ、及び、ＬＡＮアダプタ３０ｅを、内蔵している。この領域管理用メタデータサーバマシン３０も、名前管理用メタデータサーバマシン２０と同様に、ストレージユニット３０ａに、アプリケーション３１、オペレーティングシステム３２、及び、ファイルシステム３３を、記憶している。アプリケーション３１及びオペレーティングシステム３２は、名前管理用メタデータサーバマシン２０と同等の機能を発揮するソフトウエアである。ファイルシステム３３は、前述したグローバルファイルシステムを実現するためのソフトウエアであり、そのグローバルファイルシステムによる機能のうち、クライアントとしてファイル操作制御機能を実現するプログラム３３ａを、含んでいる。
【００３０】
また、ファイルシステム３３は、領域管理機能を実現するためのプログラム３３ｂ、フラグメント情報収集プログラム３３ｃ、ボリュームマネージャ３３ｄ、及び、空き容量監視プログラム３３ｅをも、含んでいる。領域管理機能３３ｂは、ファイルを構成する単位データとディスクブロックのアドレスとの対応付けを管理する機能を実現するプログラムである。この領域管理機能３３ｂは、通常のファイルとディレクトリ情報を格納するファイルとに対し、一意な識別番号としてアイノード番号を付与し、それらファイルに関する情報を、図５に示すようなアイノード管理テーブル７１に記録して管理するようになっている。また、この領域管理機能３３ｂは、ストレージマシン１０内のディスクのボリューム（記憶領域）に関する情報を、図６に示すようなボリューム管理テーブル７２に記録して管理するようになっている。これらテーブル７１、７２は、何れかのストレージマシン１０内に格納されていても良いし、領域管理用メタデータサーバマシン３０のストレージユニット３０ａ内に格納されていても良い。
【００３１】
アイノード管理テーブル７１は、ファイル（アイノード）と同数のレコードを、有している。各レコードは、図５の模式的なテーブル構造図に示すように、「アイノード」、「サイズ」、「ブロック数」、「エクステント数」、「最終アクセス日時」、「アクセス数」及び「ブロック」の各フィールドを、有している。「アイノード」フィールドは、そのファイルのアイノード番号が記録されるフィールドである。「サイズ」フィールドは、そのファイルのデータ量が記録されるフィールドである。「ブロック数」フィールドは、そのファイルがディスク上で占めているブロックの数が記録されるフィールドである。「エクステント数」フィールドは、そのファイルのエクステントの数が記録されるフィールドである。なお、エクステントとは、そのファイルが記録されているディスクブロックのうち、連続しているブロックの塊を言う。「最終アクセス日時」フィールドは、そのファイルへのアクセスのうち、最後になされたアクセスの日時が記録されるフィールドである。「アクセス数」フィールドは、そのファイルへのアクセスがなされた回数が記録されるフィールドである。「ブロック」フィールドは、そのファイルが記録されているディスクブロックを特定するアドレス情報が記録されるフィールドである。
【００３２】
ボリューム管理テーブル７２は、ストレージマシン１０内のディスクと同数のレコードを、有している。各レコードは、図６の模式的なテーブル構造図に示すように、「ボリューム」、「ボリューム名」、「サイズ」、「空き容量」、「組込」、「自動追加」及び「再配置」の各フィールドを、有している。「ボリューム」フィールドは、そのディスクのボリューム（記憶領域）を特定するための一意な識別番号であるボリューム番号が記録されるフィールドである。「ボリューム名」フィールドは、そのボリュームの名称が記録されるフィールドである。「サイズ」フィールドは、そのボリュームの容量が記録されるフィールドである。「空き容量」フィールドは、そのボリュームのうちの空き領域の容量が記録されるフィールドである。「組込」フィールドは、そのボリュームが使用対象に組み込み済みであるか否かを特定する情報、及び、使用対象に組み込み済みである場合において使用が留保された状態にあるか否かを特定する情報が、記録されるフィールドである。なお、「組込」フィールドには、そのボリュームが使用対象に組み込まれていないことを示す「未」、使用対象に組み込まれてはいるが使用が留保された状態となっていることを示す「可」、又は、使用対象に組み込まれていて使用の留保が解除された状態にあることを示す「済」が、記録される。「自動追加」フィールドは、そのボリュームが使用留保の状態にある場合において、使用対象に組み込み済みであって使用留保が解除された全てのボリューム（以下、使用中ボリュームと表記する）の空き容量が所定の状態になったときにそのボリュームの使用留保を自動的に解除するか否かを示す情報が記録されるフィールドである。なお、ボリュームが自動追加（使用留保を自動解除）すべきもの設定される場合には、その自動追加の開始条件となる使用中ボリュームの空き領域の容量の閾値が、そのボリュームに係る「自動追加」フィールドに記録される。また、使用対象に組み込まれていないボリュームのレコードの「自動追加」フィールドは、空欄となる。「再配置」フィールドは、そのボリュームが自動追加（使用留保の自動解除）される場合にファイルの再配置を行うか否かを示す情報が記録されるフィールドである。なお、使用対象に組み込まれていないボリュームのレコードの「再配置」フィールドは、空欄となる。
【００３３】
また、図４の領域管理機能３３ｂは、起動後、メモリユニット３０ｃ内に、図７に示すような断片化ファイル情報管理テーブル７３を新規作成する。この断片化ファイル情報管理テーブル７３は、後述の処理により断片化状態と判断されたファイルに関する情報を記録しておくためのワークテーブルである。従って、起動直後は、この断片化ファイル情報管理テーブル７３は、一つもレコードが記録されていない状態となっている。この断片化ファイル情報管理テーブル７３の各レコードは、図７の模式的なテーブル構造図に示すように、「アイノード」、「サイズ」、「ブロック数」、「エクステント数」、「最終アクセス日時」及び「アクセス数」の各フィールドを、有している。これら各フィールドは、何れも、図５のアイノード管理テーブル７１における同じ名称のフィールドと同等の値が記録されるものとなっている。
【００３４】
また、図４のフラグメント情報収集プログラム３３ｃは、何れかのサーバマシン２０〜５０のファイル操作制御機能２３ａ、３３ａ、４３ａがファイルにアクセスした際、そのファイルが断片化状態にあるか否かを特定するためのプログラムである。このフラグメント情報収集プログラム３３ｃに従ってＣＰＵ３０ｂが実行する処理の内容については、図９を用いて後述する。
【００３５】
また、図４のボリュームマネージャ３３ｄは、ボリュームの使用対象への組み込み、及び、ボリュームの使用対象からの削除を行うためのツールを操作者に提供するためのプログラムである。このボリュームマネージャ３３ｄに従ってＣＰＵ３０ｂが実行する処理の内容については、図１０乃至図１２を用いて後述する。
【００３６】
また、図４の空き容量監視プログラム３３ｅは、使用中ボリュームの空き領域の容量が所定の状態になっている場合に、自動追加設定がなされているボリュームの使用保留を解除するためのプログラムである。この空き容量監視プログラム３３ｅに従ってＣＰＵ３０ｂが実行する処理の内容については、図１３を用いて後述する。
【００３７】
また、図１のデフラグ用メタデータサーバマシン４０は、ファイル再配置処理を担当するメタデータサーバマシンであり、図８の構成図に示すように、ストレージユニット４０ａ、ＣＰＵ４０ｂ、メモリユニット４０ｃ、ＨＢＡ４０ｄ、及び、ＬＡＮアダプタ４０ｅを、内蔵している。このデフラグ用メタデータサーバマシン４０も、前述した各メタデータサーバマシン２０、３０と同様に、ストレージユニット４０ａに、アプリケーション４１、オペレーティングシステム４２、及び、ファイルシステム４３を、記憶している。アプリケーション４１及びオペレーティングシステム４２は、前述した各メタデータサーバマシン２０、３０と同等の機能を発揮するソフトウエアである。ファイルシステム４３は、前述したグローバルファイルシステムを実現するためのソフトウエアであり、そのグローバルファイルシステムによる機能のうち、クライアントとしてファイル操作制御機能を実現するプログラム４３ａを、含んでいる。さらに、このファイルシステム４３は、ファイル再配置プログラム４３ｂを、含んでいる。ファイル再配置プログラム４３ｂは、ボリュームが手動で使用対象に組み込まれ、或いは、自動追加設定がなされているボリュームの使用保留が自動解除される場合に、図７の断片化ファイル情報管理テーブル７３に登録されているファイルをそのボリュームへ移動するためのプログラムである。このファイル再配置プログラム４３ｂに従ってＣＰＵ４０ｂが実行する処理の内容については、図１４を用いて後述する。
【００３８】
図１の汎用サーバマシン５０は、クライアントマシン６０に提供するとともに、前述したグローバルファイルシステムをクライアントとして利用するマシンである。従って、この汎用サーバマシン５０は、図示していないが、ストレージユニット、ＣＰＵ、メモリユニット、ＨＢＡ、及び、ＬＡＮアダプタを、内蔵しており、アプリケーション、オペレーティングシステム、ファイルシステムを、ストレージユニットに記憶している。そして、そのファイルシステムは、前述したように、ファイル操作制御機能を含んでいる。
【００３９】
クライアントマシン６０は、例えば、ウェブブラウザ、メーラー、エミュレータのように、アプリケーション２１、３１、４１が提供する機能を享受するための機能が付加されたＬＡＮ通信自在なコンピュータである。
【００４０】
次に、本実施形態のコンピュータネットワークシステムで行われる処理について、説明する。
【００４１】
各サーバマシン２０〜５０のファイルシステムに含まれるファイル操作制御機能２３ａ、３３ａ、４３ａは、周知のものであるので、簡単に説明する。このファイル操作制御機能２３ａ、３３ａ、４３ａは、ファイルシステムの起動とともに、又は、実行終了後直ちに、実行される。ＣＰＵは、ファイル操作制御処理の開始後、アプリケーションからファイル読み出しの指示を受け付けると、図３の名前管理機能２３ｂに問い合わせ、対象となるファイルのアイノード番号を取得し、その後、そのアイノード番号を使って図４の領域管理機能３３ｂに問い合わせ、対象となるファイルが記録されているブロックの情報を取得し、それらブロックが所属する対応するストレージマシン１０へアクセスする。また、ＣＰＵは、ファイル操作制御処理の開始後、アプリケーションからファイル書き込みの指示を受け付けると、図４の領域管理機能３３ｂに、書き込みのための空き領域の予約を依頼し、続いて、指定されたディレクトリに新規ファイルを登録するための処理を図３の名前管理機能２３ｂに依頼する。その後、ＣＰＵは、予約しておいた空き領域にファイルを書き込むとともに、当該ファイルに領域が割り当てられた旨を図４の領域管理機能３３ｂと図３の名前管理機能２３ｂとに通知する。図４の領域管理機能３３ｂは、この通知を受けると、当該ファイルに関する情報を図５のアイノード管理テーブル７１に登録する。
【００４２】
図４のフラグメント情報収集プログラム３３ｃは、ファイルシステムの起動とともに、又は、実行終了後直ちに、実行される。図９の流れ図に示すように、ＣＰＵ３０ｂは、フラグメント情報収集処理の開始後、最初のステップＳ１０１において、何れかのファイルシステムのファイル操作制御機能２３ａ、３３ａ、４３ａからファイルアクセス（ファイルの読み出し又は書き込み）があるまで待機する。そして、ファイルアクセスがあると、ＣＰＵ３０ｂは、ステップＳ１０２へ処理を進める。
【００４３】
ステップＳ１０２では、ＣＰＵ３０ｂは、図５のアイノード管理テーブル７１内のレコードのうち、ファイルアクセス時にファイル操作制御機能２３ａ、３３ａ、４３ａから通知されたアイノード番号を含むレコードを特定し、その特定したレコードの「最終アクセス日時」フィールドの値をその時点の時刻で更新する。また、ＣＰＵ３０ｂは、当該レコードの「アクセス数」フィールドの値を１つ増やす。
【００４４】
次のステップＳ１０３では、ＣＰＵ３０ｂは、図５のアイノード管理テーブル７１における当該ファイルのレコードの「ブロック」フィールドにおいて、ブロック数を計数する。続いて、ＣＰＵ３０ｂは、計数して得たブロック数と当該レコードの「ブロック数」フィールドの値とが一致するか否かを、判別する。そして、計数して得たブロック数と当該レコードの「ブロック数」フィールドの値とが一致した場合、ＣＰＵ３０ｂは、書き込みによってブロック数が増加していないとして、ステップＳ１０３からＳ１０５へ処理を分岐させる。一方、計数して得たブロック数と当該レコードの「ブロック数」フィールドの値とが一致しなかった場合、ＣＰＵ３０ｂは、書き込みによってブロック数が増加したとして、ステップＳ１０４へ処理を進める。
【００４５】
ステップＳ１０４では、ＣＰＵ３０ｂは、図５のアイノード管理テーブル７１における当該ファイルのレコードの「ブロック数」フィールドの値を更新する。また、ＣＰＵ３０ｂは、当該レコードの「ブロック」フィールドにおいて、エクステント数を計数し、当該レコードの「エクステント数」フィールドの値を更新する。その後、ＣＰＵ３０ｂは、ステップＳ１０５へ処理を進める。
【００４６】
ステップＳ１０５では、ＣＰＵ３０ｂは、図５のアイノード管理テーブル７１における当該ファイルのレコードの「エクステント数」フィールドから値を読み出す。
【００４７】
次のステップＳ１０６では、ＣＰＵ３０ｂは、ステップＳ１０５で読み出したエクステント数が所定の閾値を超えているか否かを、判別する。そして、エクステント数が所定の閾値を超えていた場合、ＣＰＵ３０ｂは、ステップＳ１０９へ処理を進める。一方、エクステント数が所定の閾値を超えていなかった場合、ＣＰＵ３０ｂは、ステップＳ１０６からＳ１０７へ処理を分岐させる。
【００４８】
ステップＳ１０７では、ＣＰＵ３０ｂは、図５のアイノード管理テーブル７１における当該ファイルのレコードの「アクセス数」フィールドから値を読み出す。
【００４９】
次のステップＳ１０８では、ＣＰＵ３０ｂは、ステップＳ１０７で読み出したアクセス数が所定の閾値を超えているか否かを、判別する。そして、アクセス数が所定の閾値を超えていた場合、ＣＰＵ３０ｂは、ステップＳ１０９へ処理を進める。一方、アクセス数が所定の閾値を超えていなかった場合、ＣＰＵ３０ｂは、ステップＳ１０８から処理を分岐させ、図９に係るフラグメント情報収集処理を終了する。
【００５０】
ステップＳ１０９では、ＣＰＵ３０ｂは、図５のアイノード管理テーブル７１における当該ファイルのレコードを読み出し、図７の断片化ファイル情報管理テーブル７３へ追加登録する。その後、ＣＰＵ３０ｂは、図９に係るフラグメント情報収集処理を終了する。
【００５１】
このフラグメント情報収集プログラム３３ｃによれば、ファイルアクセスがある度に、そのファイルが断片化された状態にあるか否かが、領域管理用メタデータサーバマシン３０によって判別され（ステップＳ１０６、Ｓ１０８）、断片化ファイルであった場合には、そのファイルの情報が、図７の断片化ファイル情報管理テーブル７３に登録される（ステップＳ１０９）。
【００５２】
なお、ステップＳ１０５乃至Ｓ１０８を実行するＣＰＵ３０ｂは、前述した判定手段及び前述した判定部に相当し、ステップＳ１０５乃至Ｓ１０８は、前述した判定手順に相当している。また、ステップＳ１０９を実行するＣＰＵ３０ｂは、前述した登録手段及び前述した登録部に相当し、ステップＳ１０９は、前述した登録手順に相当している。
【００５３】
このフラグメント情報収集処理と並行して、領域管理用メタデータサーバマシン３０では、図示せぬ入力ユニットを介して操作者から起動指示を受け付けることにより、ボリュームマネージャ３３ｄが実行されるようになっている。図１０及び図１１の流れ図に示すように、ＣＰＵ３０ｂは、処理開始後、最初のステップＳ２０１において、ボリューム設定画面を図示せぬ表示ユニットに表示する。図１２の画面例に示すように、ボリューム設定画面７４は、図６のボリューム管理テーブル７２において「組込」フィールドの値が「済」又は「可」であるボリュームの名称が列挙される構成ボリューム欄７４ａ、及び、「組込」フィールドの値が「未」であるボリュームの名称が列挙される追加候補ボリューム欄７４ｂを、含んでいる。また、ボリューム設定画面７４は、追加候補ボリューム欄７４ｂにおいて選択されたボリュームを使用対象へ組み込むことを指示するための追加ボタン７４ｃ、及び、構成ボリューム欄７４ａにおいて選択されたボリュームを使用対象から取り外すことを指示するための削除ボタン７４ｄを、含んでいる。更に、ボリューム設定画面７４は、ボリュームを使用対象へ組み込む際の付属的な設定事項として、そのボリュームを直ちに使用対象に組み込んで使用状態にするか、それとも、そのボリュームを使用対象に組み込んで使用を留保状態にしておき使用中ボリュームの空き領域の容量が所定値以下になったときにそのボリュームの使用留保を解除するかを、決定するためのラジオボタン７４ｅ、７４ｅを、含んでいる。また、ボリューム設定画面７４は、使用中ボリュームの空き容量に応じてボリュームの自動追加（使用留保の解除）を行うよう設定する場合において、そのボリュームの自動追加が行われる条件を入力するためのテキストボックス７４ｆを、含んでいる。また、ボリューム設定画面７４は、ボリュームの追加が行われる場合にファイルの再配置を同時に行うことを指定するためのチェックボックス７４ｇも、含んでいる。更に、ボリューム設定画面７４は、各ボタン７４ｃ、７４ｄ、ラジオボタン７４ｅ、テキストボックス７４ｆ、チェックボックス７４ｇを使って設定した内容で、ボリュームの登録を行うときにクリックすべき実行ボタン７４ｈを、含んでいる。また、ボリューム設定画面７４は、これら設定行為を取り止めるときにクリックすべき中止ボタン７４ｉを、含んでいる。ＣＰＵ３０ｂは、この図１２に示すようなボリューム設定画面７４を図示せぬ表示ユニットに表示すると、図１０のステップＳ２０２へ処理を進める。
【００５４】
ステップＳ２０２では、ＣＰＵ３０ｂは、ボリューム設定画面７４の実行ボタン７４ｈ及び中止ボタン７４ｉのうち、何れかのボタンがクリックされるまで、待機する。そして、何れかのボタンがクリックされた場合、ＣＰＵ３０ｂは、ステップＳ２０３へ処理を進める。
【００５５】
ステップＳ２０３では、ＣＰＵ３０ｂは、クリックされたボタンが中止ボタン７４ｉであるか否かを、判別する。そして、クリックされたボタンが中止ボタン７４ｉであった場合、ＣＰＵ３０ｂは、図１０及び図１１に係る処理を終了する。一方、クリックされたボタンが実行ボタン７４ｈであった場合、ＣＰＵ３０ｂは、ステップＳ２０３からステップＳ２０４へ処理を分岐させる。
【００５６】
ステップＳ２０４では、ＣＰＵ３０ｂは、ボリュームの追加（使用対象への組み込み）が選択されていたかボリュームの削除が選択されていたかを、判別する。そして、ボリュームの削除が選択されていた場合、ＣＰＵ３０ｂは、ステップＳ２０４からステップＳ２０５へ処理を分岐させる。
【００５７】
ステップＳ２０５では、ＣＰＵ３０ｂは、実行ボタン７４ｈがクリックされた時点で指定されていたボリュームを使用対象から取り外す処理を行う。この処理では、図６のボリューム管理テーブル７２における当該ボリュームのレコードの「組込」フィールドの値が「未」へ切り替えられて、当該ボリュームの登録が抹消される。その後、ＣＰＵ３０ｂは、図１０及び図１１に係る処理を終了する。
【００５８】
一方、ステップＳ２０４において、ボリュームの追加（使用対象への組み込み）が選択されていた場合、ＣＰＵ３０ｂは、ステップＳ２０６へ処理を進める。
【００５９】
ステップＳ２０６では、ＣＰＵ３０ｂは、実行ボタン７４ｈがクリックされた時点で、ボリュームの追加（使用対象への組み込みと使用状態への移行）を直ちに行うことを指定するラジオボタン７４ｅが選択されていたか否かを、判別する。そして、使用中ボリュームの空き領域の容量が所定値以下になったときにそのボリュームの追加（使用留保の解除）を行うことを指定するラジオボタン７４ｅが選択されていた場合、ＣＰＵ３０ｂは、ステップＳ２０６からステップＳ２０７へ処理を分岐させる。
【００６０】
ステップＳ２０７では、ＣＰＵ３０ｂは、実行ボタン７４ｈがクリックされた時点で指定されていたボリュームを使用対象へ組み込む処理を行う。この処理では、図６のボリューム管理テーブル７２における当該ボリュームのレコードの「組込」フィールドの値が「可」へ切り替えられて、当該ボリュームが登録される。その後、ＣＰＵ３０ｂは、図１０及び図１１に係る処理を終了する。
【００６１】
一方、ステップＳ２０６において、ボリュームの追加（使用対象への組み込みと使用状態への移行）を直ちに行うことを指定するラジオボタン７４ｅが選択されていた場合、ＣＰＵ３０ｂは、ステップＳ２０８へ処理を進める。
【００６２】
ステップＳ２０８では、ＣＰＵ３０ｂは、ボリューム追加情報を全てのサーバマシン（クラスタノード）２０〜５０へ一斉送信する。なお、ボリューム追加情報は、使用中ボリュームの容量が増加したことを通知するための情報である。
【００６３】
次のステップＳ２０９では、ＣＰＵ３０ｂは、全てのサーバマシン２０〜５０から応答があるまで、待機する。そして、全てのサーバマシン２０〜５０から応答があると、ＣＰＵ３０ｂは、ステップＳ２１０へ処理を進める。
【００６４】
ステップＳ２１０では、ＣＰＵ３０ｂは、指定されたボリュームの追加（使用対象への組み込みと使用状態への移行）を確定する処理を行う。この処理では、図６のボリューム管理テーブル７２における当該ボリュームのレコードの「組込」フィールドの値が「済」へ切り替えられて、当該ボリュームが登録される。
【００６５】
次のステップＳ２１１では、ＣＰＵ３０ｂは、図８のデフラグ用メタデータサーバマシン４０のファイルシステム４３に対し、ファイル再配置プログラム４３ｂの起動を指示し、併せて、追加したボリュームのボリューム番号を引数として引き渡す。その後、ＣＰＵ３０ｂは、図１０及び図１１に係る処理を終了する。
【００６６】
このボリュームマネージャ３３ｄによれば、本実施形態のコンピュータネットワークシステムの管理者は、図１２に示すようなボリューム設定画面７４を通じて、使用対象に対するボリュームの組み込み及び削除を行うことができる。また、ボリュームの組み込みを行う際には、そのボリュームを直ちに使用対象に組み込んで使用状態にするか、それとも、そのボリュームを使用対象に組み込んで使用を留保状態にしておき使用中ボリュームの空き領域の容量が所定値以下になったときにそのボリュームの使用留保を解除するかを、ラジオボタン７４ｅ、７４ｅを使って、選択することができる。更に、管理者は、使用中ボリュームが所定の状態になった後でボリュームの追加（使用留保の解除）が行われるよう指定する場合に、ボリューム追加が行われるべき使用中ボリュームの条件と、ファイル再配置を行うか否かとを、テキストボックス７４ｆ及びチェックボックス７４ｇを使って、指定することができる。
【００６７】
なお、ステップＳ２０１及びＳ２０２を実行するＣＰＵ３０ｂは、前述した受付手段及び前述した受付部に相当し、ステップＳ２０１及びＳ２０２は、前述した受付手順に相当している。
【００６８】
また、領域管理用メタデータサーバマシン３０では、空き容量監視プログラム３３ｅが、ファイルシステムの起動とともに、又は、実行終了後直ちに、実行されるようになっている。図１３の流れ図に示すように、ＣＰＵ３０ｂは、空き容量監視処理の開始後、最初のステップＳ３０１では、何れかのサーバマシン２０〜５０のファイル操作制御機能２３ａ、３３ａ、４３ａから、書き込みのための空き領域の予約の依頼があるまで、待機する。そして、空き領域の予約の依頼を何れかのサーバマシン２０〜５０から受け付けると、ＣＰＵ３０ｂは、ステップＳ３０２へ処理を進める。
【００６９】
ステップＳ３０２では、ＣＰＵ３０ｂは、使用中ボリュームの中から空き領域を確保して、他の予約を受け付けない排他状態になるとともに、使用中ボリュームの全ての空き領域の容量を読み出す。なお、空き領域の容量は、例えば、図６のボリューム管理テーブル７２における「組込」フィールドに「済」を記録する全てのレコードの「空き容量」フィールドの値の総計により、取得しても良い。
【００７０】
次のステップＳ３０３では、ＣＰＵ３０ｂは、自動追加（使用留保の自動解除）が設定されているボリュームが存在するか否かを、判別する。具体的には、ＣＰＵ３０ｂは、図６のボリューム管理テーブル７２のレコードのうち、「組込」フィールドの値が「可」であるとともに「自動追加」フィールドの値が「不可」でないレコードが検出できるか否かを、判別する。そして、自動追加が設定されているボリュームが存在していなかった場合、ＣＰＵ３０ｂは、ステップＳ３０３から処理を分岐させ、図１３に係る空き容量監視を終了する。一方、自動追加が設定されているボリュームが存在していた場合、ＣＰＵ３０ｂは、ステップＳ３０４へ処理を進める。
【００７１】
ステップＳ３０４では、ＣＰＵ３０ｂは、自動追加（使用留保の自動解除）が設定されているボリュームについて条件として定義されている閾値を読み出す。すなわち、ＣＰＵ３０ｂは、ステップＳ３０３で検出されたレコードの「自動追加」フィールドの値を読み出す。
【００７２】
次のステップＳ３０５では、ＣＰＵ３０ｂは、ステップＳ３０２で読み出した空き容量が、ステップＳ３０４で読み出した閾値未満であるか否かを、判別する。そして、空き容量が閾値以上であった場合、ＣＰＵ３０ｂは、ステップＳ３０５から処理を分岐させ、図１３に係る空き容量監視を終了する。一方、空き領域が閾値未満であった場合、ＣＰＵ３０ｂは、ステップＳ３０６へ処理を進める。
【００７３】
ステップＳ３０６では、ＣＰＵ３０ｂは、ボリューム追加情報を全てのサーバマシン（クラスタノード）２０〜５０へ一斉送信する。なお、ボリューム追加情報は、前述したように、使用中ボリュームの容量が増加したことを通知するための情報である。
【００７４】
次のステップＳ３０７では、ＣＰＵ３０ｂは、全てのサーバマシン２０〜５０から応答があるまで、待機する。そして、全てのサーバマシン２０〜５０から応答があると、ＣＰＵ３０ｂは、ステップＳ３０８へ処理を進める。
【００７５】
ステップＳ３０８では、ＣＰＵ３０ｂは、指定されたボリュームの追加（使用留保の解除）を確定する処理を行う。この処理では、図６のボリューム管理テーブル７２における当該ボリュームのレコードの「組込」フィールドの値が「済」へ切り替えられる。
【００７６】
次のステップＳ３０９では、ＣＰＵ３０ｂは、図８のデフラグ用メタデータサーバマシン４０のファイルシステム４３に対し、ファイル再配置プログラム４３ｂの起動を指示し、併せて、追加したボリュームのボリューム番号を引数として引き渡す。その後、ＣＰＵ３０ｂは、図１３に係る空き容量監視を終了する。
【００７７】
この空き容量監視プログラム３３ｅによれば、何れかのサーバマシン２０〜５０のファイルシステムがアプリケーション２１、３１、４１からファイルの書き込み要求を受けると、自動追加設定（使用留保）がなされているボリュームが探され（ステップＳ３０３）、そのようなボリュームが探し出されれば、そのボリュームについて定義されている条件に基づいて、使用中ボリュームの空き容量が所定の状態になっているか否かが判別され（ステップＳ３０２、Ｓ３０４、Ｓ３０５）、使用中ボリュームの空き容量が所定の状態になっている場合に、自動追加設定がなされているボリュームが使用中ボリュームに追加される（ステップＳ３０６〜Ｓ３０９）。
【００７８】
以上の二つの処理のうちの何れかによる指示、すなわち、図４の領域管理用メタデータサーバマシン３０のボリュームマネージャ３３ｄによる処理（図１０及び図１１）のステップＳ２１１による指示、又は、空き容量監視プログラムによる処理（図１３）のステップＳ３０９による指示に基づいて、図８のデフラグ用メタデータサーバマシン４０のＣＰＵ４０ｂは、ファイル再配置プログラム４３ｂを実行する。図１４の流れ図に示すように、ＣＰＵ４０ｂは、ファイル再配置処理の開始後、最初のステップＳ４０１において、ボリューム追加に続いてファイルの再配置を行うよう設定されているか否かを、判別する。すなわち、ＣＰＵ４０ｂは、図６のボリューム管理テーブル７２において、起動指示とともに引数として受け取ったボリューム番号のボリュームのレコードの「再配置」フィールドから値を読み出し、その値が「要」であるか「不要」であるかを、判別する。そして、ファイルの再配置を行うよう設定されていなかった場合、ＣＰＵ４０ｂは、ステップＳ４０１から処理を分岐させ、図１４に係るファイル再配置処理を終了する。一方、ファイルの再配置を行うよう設定されていた場合、ＣＰＵ４０ｂは、ステップＳ４０２へ処理を進める。
【００７９】
ステップＳ４０２では、ＣＰＵ４０ｂは、図７の断片化ファイル情報管理テーブル７３に登録されているファイルを、一つずつ、順に、追加されたボリュームへ移動する処理を行う。具体的には、ＣＰＵ４０ｂは、一つ以上のファイルの中から処理対象として選択された一つのファイルについて、まず、そのファイルを構成する単位データが記録されているディスクブロックからその単位データをメモリユニット４０ｃへ複製する処理を、実行する。続いて、ＣＰＵ４０ｂは、メモリユニット４０ｃに複製した単位データを、追加されたボリュームにおけるアドレスの若いブロックから古いブロックへと順に、記録していく。その後、ＣＰＵ４０ｂは、処理対象のファイルを構成する単位データが元々記録されていたボリューム（ディスク）から、そのファイルのデータを削除する処理を行う。ＣＰＵ４０ｂは、図７の断片化ファイル情報管理テーブル７３に登録されている全てのファイルについて、上記の処理を終えると、図７の断片化ファイル情報管理テーブル７３から、これらファイルに係るレコードを削除し、その後、ステップＳ４０３へ処理を進める。
【００８０】
ステップＳ４０３では、ＣＰＵ４０ｂは、図３の領域管理用メタデータサーバマシン３０のファイルシステム３３内の領域管理機能３３ｂに対し、ステップＳ４０２で再配置されたファイルについての領域情報の更新を依頼する。なお、領域管理機能３３ｂは、この依頼を受けて、図５のアイノード管理テーブル７１における該当ファイルに関する情報を更新する。ＣＰＵ４０ｂは、このような領域情報の更新を領域管理機能３３ｂに依頼すると、図１４に係るファイル再配置処理を終了する。
【００８１】
このファイル再配置プログラム４３ｂによれば、領域管理用メタデータサーバマシン３０からの依頼（ステップＳ２１１又はＳ３０９）があると、既存ディスク内にある断片化ファイルが、順に、追加されたディスクへと、移し替えられる。
【００８２】
このように、既存ディスク内で断片化状態にあったファイルが、追加されるディスク内へ移し替えられると、当該ファイルは、連続したブロックに纏めて書き込まれることとなる。このため、ディスクの空き容量が足りなくても、ファイルが効率的に再配置されるようになる。
【００８３】
なお、ステップＳ２０６乃至Ｓ２１１、Ｓ３０１乃至Ｓ３０９、及び、Ｓ４０１乃至Ｓ４０３を実行するＣＰＵ３０ｂは、前述した移動手段及び前述した移動部に相当し、ステップＳ２０６乃至Ｓ２１１、Ｓ３０１乃至Ｓ３０９、及び、Ｓ４０１乃至Ｓ４０３は、前述した移動手順に相当している。
【図面の簡単な説明】
【００８４】
【図１】本実施形態のコンピュータネットワークシステムのネットワーク構成図
【図２】ストレージマシンの構成図
【図３】名前管理用メタデータサーバマシンの構成図
【図４】領域管理用メタデータサーバマシンの構成図
【図５】アイノード管理テーブルの模式的なテーブル構造図
【図６】ボリューム管理テーブルの模式的なテーブル構造図
【図７】断片化ファイル情報管理テーブルの模式的なテーブル構造図
【図８】デフラグ用メタデータサーバマシンの構成図
【図９】フラグメント情報収集プログラムによる処理の流れを示す図
【図１０】ボリュームマネージャによる処理の流れを示す図
【図１１】ボリュームマネージャによる処理の流れを示す図
【図１２】ボリューム設定画面の画面例を示す図
【図１３】空き容量監視プログラムによる処理の流れを示す図
【図１４】ファイル再配置プログラムによる処理の流れを示す図
【符号の説明】
【００８５】
１０    ストレージマシン
１０ａ  ディスクユニット
１０ｂ  ストレージコントローラ
２０    名前管理用メタデータサーバマシン
２０ａ  ストレージユニット
２０ｂ  ＣＰＵ
２３    ファイルシステム
２３ａ  ファイル操作制御機能プログラム
２３ｂ  名前管理機能プログラム
３０    領域管理用メタデータサーバマシン
３０ａ  ストレージユニット
３０ｂ  ＣＰＵ
３３    ファイルシステム
３３ａ  ファイル操作制御機能プログラム
３３ｂ  領域管理機能プログラム
３３ｃ  フラグメント情報収集プログラム
３３ｄ  ボリュームマネージャ
３３ｅ  空き容量監視プログラム
４０    デフラグ用メタデータサーバマシン
４０ａ  ストレージユニット
４０ｂ  ＣＰＵ
４３    ファイルシステム
４３ａ  ファイル操作制御機能プログラム
４３ｂ  ファイル再配置プログラム
５０    汎用サーバマシン
６０    クライアントマシン
７１    アイノード管理テーブル
７２    ボリューム管理テーブル
７３    断片化ファイル情報管理テーブル
７４    ボリューム設定画面
【図１】
2009037564.tif 000003
【図２】
2009037564.tif 000004
【図３】
2009037564.tif 000005
【図４】
2009037564.tif 000006
【図５】
2009037564.tif 000007
【図６】
2009037564.tif 000008
【図７】
2009037564.tif 000009
【図８】
2009037564.tif 000010
【図９】
2009037564.tif 000011
【図１０】
2009037564.tif 000012
【図１１】
2009037564.tif 000013
【図１２】
2009037564.tif 000014
【図１３】
2009037564.tif 000015
【図１４】
2009037564.tif 000016