(57)【要約】【課題】ストレージ装置の消費電力を抑えることができるファイルサーバを提供する。【解決手段】ファイル共有プログラム３１００は、クライアント１０３０からのファイルアクセスを受けると、マッピングテーブル６０００を参照して、対象ファイルが格納されているＲＡＩＤグループのボリュームにおいて、対象ファイルのアクセスを処理する。接続要求受付プログラム３１１０は、ユーザごとの接続時間を接続履歴テーブル８１００に記憶し、グルーピングプログラム３１３０は、接続時間帯が似ているユーザをグルーピングし、データ移行プログラム３１４０は、グルーピングしたユーザと関連するファイルを同一のＲＡＩＤグループにデータ移行し集約する。これにより、ＲＡＩＤグループにアクセスされない時間帯（非接続時間帯）を長くできるため、スピンアップ／ダウン要求プログラム３１５０は、非接続時間帯のＲＡＩＤグループについてスピンダウンする。【選択図】図１
2010186235.tif 000002
【特許請求の範囲】
【請求項１】
記憶部と処理部とを有し、１以上のボリュームで構成される複数のＲＡＩＤグループを有する記憶装置に対して通信可能に接続され、前記ＲＡＩＤグループに記憶されるファイルを管理するとともに、前記ＲＡＩＤグループの稼動時間帯を管理するファイルサーバであって、
前記記憶部は、
クライアントからアクセスされる前記ファイルを使用するファイル名と、前記ファイル名を管理するＲＡＩＤグループのファイルシステムのファイルの属性識別情報である第１のファイル属性識別情報と、前記ファイルが実際に記憶されるＲＡＩＤグループのファイルシステムのファイルの属性識別情報である第２のファイル識別情報とを、前記ファイルごとに対応付けたマッピング情報を有し、
前記処理部は、
前記クライアントから前記ファイルへのアクセス要求があると、前記アクセス要求に係るユーザ名、前記ファイルサーバへの接続要求および切断要求の日時を取得し、前記ユーザ名ごとに接続時間帯の履歴を管理する接続履歴情報を作成して、前記記憶部に記憶し、
前記接続履歴情報に基づいてユーザ名ごとに非接続時間帯を抽出し、類似する非接続時間帯ごとに前記ユーザ名をグループ化し、前記グループ化したグループ名とユーザ名とを関連付けて類似アクセスユーザ群管理情報として、前記記憶部に記憶し、
前記類似アクセスユーザ群管理情報のグループ名と、前記ファイルサーバへの非接続時間帯とを関連付ける非接続時間帯管理情報を作成して、前記記憶部に記憶し、
前記類似アクセスユーザ群管理情報に登録されているユーザ名から前記ＲＡＩＤグループ上のファイルシステムのファイル属性情報管理情報を検索してアクセス可能なファイルを抽出し、前記抽出されたファイルを前記グループ名と関連付けて類似アクセスファイル群管理情報として、前記記憶部に記憶し、
前記グループに属するファイルが記憶されることになる前記ＲＡＩＤグループを決定し、前記類似アクセスファイル群管理情報のファイルを、前記決定したＲＡＩＤグループに属するように当該ファイルを移行するとともに前記マッピング情報を更新し、
前記非接続時間帯管理情報に基づいて前記非接続時間帯では前記ＲＡＩＤグループについてスピンダウンをする指令をし、前記非接続時間帯でない時間帯では前記ＲＡＩＤグループについてスピンアップをする指令をする
ことを特徴とするファイルサーバ。
【請求項２】
前記処理部は、
前記接続履歴情報と前記類似アクセスユーザ群管理情報とを照合し、前記グループ名へ分類されていないユーザ名を抽出し、
前記抽出したユーザ名を類似する非接続時間帯によって、前記グループ名で分類される類似アクセスユーザ群へ振り分け、
前記抽出したユーザ名から前記ＲＡＩＤグループ上のファイルシステムを検索してアクセス可能なファイルを抽出し、
前記抽出したファイルと前記類似アクセスファイル群管理情報とを照合し、未振り分けのファイルを抽出する
ことを特徴とする請求項１に記載のファイルサーバ。
【請求項３】
前記記憶部には、
前記ファイルごとにファイルへのアクセスログを取得するか否かを管理するアクセスログ取得可否判定情報が記憶されており、
前記処理部は、
前記クライアントから前記ＲＡＩＤグループに記憶されているファイルへのアクセス要求があると、前記アクセスログ取得可否判定情報を参照し、アクセスログ取得が必要であると判定した場合、前記ファイルのファイル単位Ｉ／Ｏのときアクセスしたユーザ名、アクセス対象のファイル、ファイルサイズをアクセスログに記録し、
前記類似アクセスファイル群管理情報を作成する際、前記類似アクセスユーザ群管理情報および前記アクセスログに登録されているユーザ名から前記ＲＡＩＤグループ上のファイルシステムを検索してアクセス可能なファイルを抽出し、前記抽出されたファイルを前記グループ名と関連付けて類似アクセスファイル群管理情報に記憶する
ことを特徴とする請求項１に記載のファイルサーバ。
【請求項４】
前記処理部は、
前記抽出したファイルのアクセス可能なユーザ数を取得し、
前記ユーザ数が、所定の上限値を超えた場合に、前記アクセス可能取得可否情報に
前記抽出したファイルについてアクセスログ取得が必要であることを設定する
ことを特徴とする請求項３に記載のファイルサーバ。
【請求項５】
前記処理部は、
前記接続履歴情報に基づいてユーザ名ごとに非接続時間帯を抽出した際、前記非接続時間帯が、当該ファイルが記憶されることになるＲＡＩＤグループのスピンダウン状態からスピンアップ状態に要する時間よりも短いとき、前記非接続時間帯は接続していたものとみなす
ことを特徴とする請求項１に記載のファイルサーバ。
【請求項６】
１以上のボリュームで構成される複数のＲＡＩＤグループを有する記憶装置と、ファイルのアクセス要求をするクライアントと、前記ＲＡＩＤグループに対して作成した実ファイルシステムおよび前記実ファイルシステムを仮想的に統合した仮想ファイルシステムを用いて前記ＲＡＩＤグループに記憶されるファイルを管理するファイルサーバが通信可能に接続するファイル管理システムであって、
前記記憶装置には、
前記ファイルを前記仮想ファイルシステムで管理するときに使用するファイル名と、前記ファイル名を管理する前記仮想ファイルシステムのファイルの属性識別情報である第１のファイル属性識別情報と、前記ファイルが記憶されるＲＡＩＤグループの前記実ファイルシステムのファイルの属性識別情報である第２のファイル属性識別情報とを、ファイルごとに対応付けたマッピング情報が記憶されており、
前記ファイルサーバは、
前記クライアントから前記ファイルへのアクセス要求があると、前記アクセス要求に係るユーザ名、前記ファイルサーバへの接続要求および切断要求の日時を取得し、前記ユーザ名ごとに接続時間帯の履歴を管理する接続履歴情報を作成して、前記記憶装置の前記仮想ファイルシステムに記憶し、
前記接続履歴情報に基づいてユーザ名ごとに非接続時間帯を抽出し、類似する非接続時間帯ごとに前記ユーザ名をグループ化し、前記グループ化したグループ名とユーザ名とを関連付けて類似アクセスユーザ群管理情報として、前記記憶装置の前記仮想ファイルシステムに記憶し、
前記類似アクセスユーザ群管理情報のグループ名と、前記ファイルサーバへの非接続時間帯とを関連付ける非接続時間帯管理情報を作成して、前記記憶部に記憶し、
前記類似アクセスユーザ群管理情報に登録されているユーザ名から前記ＲＡＩＤグループ上のファイルシステムのファイル属性情報管理情報を検索してアクセス可能なファイルを抽出し、前記抽出されたファイルを前記グループ名と関連付けて類似アクセスファイル群管理情報として、前記記憶装置の前記仮想ファイルシステムに記憶し、
前記グループに属するファイルが記憶されることになる前記ＲＡＩＤグループを決定し、前記類似アクセスファイル群管理情報のファイルを、前記決定したＲＡＩＤグループに属するように当該ファイルを移行するとともに前記マッピング情報を更新し、
前記非接続時間帯管理情報に基づいて前記非接続時間帯では前記ＲＡＩＤグループについてスピンダウンをする指令をし、前記非接続時間帯でない時間帯では前記ＲＡＩＤグループについてスピンアップをする指令をする
ことを特徴とするファイル管理システム。
【請求項７】
前記ファイルサーバは、
前記接続履歴情報と前記類似アクセスユーザ群管理情報とを照合し、前記グループ名へ分類されていないユーザ名を抽出し、
前記抽出したユーザ名を類似する非接続時間帯によって、前記グループ名で分類される類似アクセスユーザ群へ振り分け、
前記抽出したユーザ名から前記ＲＡＩＤグループ上のファイルシステムを検索してアクセス可能なファイルを抽出し、
前記抽出したファイルと前記類似アクセスファイル群管理情報とを照合し、未振り分けのファイルを抽出する
ことを特徴とする請求項６に記載のファイル管理システム。
【請求項８】
前記記憶装置の前記仮想ファイルシステムには、
前記ファイルごとにファイルへのアクセスログを取得するか否かを管理するアクセスログ取得可否判定情報が記憶されており、
前記ファイルサーバは、
前記クライアントから前記ＲＡＩＤグループに記憶されているファイルへのアクセス要求があると、前記アクセスログ取得可否判定情報を参照し、アクセスログ取得が必要であると判定した場合、前記ファイルのファイル単位Ｉ／Ｏのときアクセスしたユーザ名、アクセス対象のファイル、ファイルサイズをアクセスログに記録し、
前記類似アクセスファイル群管理情報を作成する際、前記類似アクセスユーザ群管理情報および前記アクセスログに登録されているユーザ名から前記ＲＡＩＤグループ上のファイルシステムを検索してアクセス可能なファイルを抽出し、前記抽出されたファイルを前記グループ名と関連付けて類似アクセスファイル群管理情報に記憶する
ことを特徴とする請求項６に記載のファイル管理システム。
【請求項９】
前記ファイルサーバは、
前記抽出したファイルのアクセス可能なユーザ数を取得し、
前記ユーザ数が、所定の上限値を超えた場合に、前記アクセス可能取得可否情報に
前記抽出したファイルについてアクセスログ取得が必要であることを設定する
ことを特徴とする請求項８に記載のファイル管理システム。
【請求項１０】
前記ファイルサーバは、
前記接続履歴情報に基づいてユーザ名ごとに非接続時間帯を抽出した際、前記非接続時間帯が、当該ファイルが記憶されることになるＲＡＩＤグループのスピンダウン状態からスピンアップ状態に要する時間よりも短いとき、前記非接続時間帯は接続していたものとみなす
ことを特徴とする請求項６に記載のファイル管理システム。
【請求項１１】
１以上のボリュームで構成される複数のＲＡＩＤグループを有する記憶装置と、ファイルのアクセス要求をするクライアントと、前記ＲＡＩＤグループに対して作成した実ファイルシステムおよび前記実ファイルシステムを仮想的に統合した仮想ファイルシステムを用いて前記ＲＡＩＤグループに記憶されるファイルを管理するファイルサーバが通信可能に接続するファイル管理システムにおいて、前記ＲＡＩＤグループに記憶されるファイルを再配置するとともに、前記ＲＡＩＤグループの稼動時間帯を管理するファイル再配置方法であって、
前記記憶装置には、
前記ファイルを前記仮想ファイルシステムで管理するときに使用するファイル名と、前記ファイル名を管理する前記仮想ファイルシステムのファイルの属性情報である第１のフィル属性識別情報と、前記ファイルが記憶されるＲＡＩＤグループの前記実ファイルシステムのファイルの属性情報である第２のファイル属性識別情報とを、ファイルごとに対応付けたマッピング情報が記憶されており、
前記ファイルサーバは、
前記クライアントから前記ファイルへのアクセス要求があると、前記アクセス要求に係るユーザ名、前記ファイルサーバへの接続要求および切断要求の日時を取得し、前記ユーザ名ごとに接続時間帯の履歴を管理する接続履歴情報を作成して、前記記憶装置の前記仮想ファイルシステムに記憶し、
前記接続履歴情報に基づいてユーザ名ごとに非接続時間帯を抽出し、類似する非接続時間帯ごとに前記ユーザ名をグループ化し、前記グループ化したグループ名とユーザ名とを関連付けて類似アクセスユーザ群管理情報として、前記記憶装置の前記仮想ファイルシステムに記憶し、
前記類似アクセスユーザ群管理情報のグループ名と、前記ファイルサーバへの非接続時間帯とを関連付ける非接続時間帯管理情報を作成して、前記記憶部に記憶し、
前記類似アクセスユーザ群管理情報に登録されているユーザ名から前記ＲＡＩＤグループ上のファイルシステムのファイル属性情報管理情報を検索してアクセス可能なファイルを抽出し、前記抽出されたファイルを前記グループ名と関連付けて類似アクセスファイル群管理情報として、前記記憶装置の前記仮想ファイルシステムに記憶し、
前記グループに属するファイルが記憶されることになる前記ＲＡＩＤグループを決定し、前記類似アクセスファイル群管理情報のファイルを、前記決定したＲＡＩＤグループに属するように当該ファイルを移行するとともに前記マッピング情報を更新し、
前記非接続時間帯管理情報に基づいて前記非接続時間帯では前記ＲＡＩＤグループについてスピンダウンをする指令をし、前記非接続時間帯でない時間帯では前記ＲＡＩＤグループについてスピンアップをする指令をする
ことを特徴とするファイル再配置方法。
【請求項１２】
前記ファイルサーバは、
前記接続履歴情報と前記類似アクセスユーザ群管理情報とを照合し、前記グループ名へ分類されていないユーザ名を抽出し、
前記抽出したユーザ名を類似する非接続時間帯によって、前記グループ名で分類される類似アクセスユーザ群へ振り分け、
前記抽出したユーザ名から前記ＲＡＩＤグループ上のファイルシステムを検索してアクセス可能なファイルを抽出し、
前記抽出したファイルと前記類似アクセスファイル群管理情報とを照合し、未振り分けのファイルを抽出する
ことを特徴とする請求項１１に記載のファイル再配置方法。
【請求項１３】
前記記憶装置の前記仮想ファイルシステムには、
前記ファイルごとにファイルへのアクセスログを取得するか否かを管理するアクセスログ取得可否判定情報が記憶されており、
前記ファイルサーバは、
前記クライアントから前記ＲＡＩＤグループに記憶されているファイルへのアクセス要求があると、前記アクセスログ取得可否判定情報を参照し、アクセスログ取得が必要であると判定した場合、前記ファイルのファイル単位Ｉ／Ｏのときアクセスしたユーザ名、アクセス対象のファイル、ファイルサイズをアクセスログに記録し、
前記類似アクセスファイル群管理情報を作成する際、前記類似アクセスユーザ群管理情報および前記アクセスログに登録されているユーザ名から前記ＲＡＩＤグループ上のファイルシステムを検索してアクセス可能なファイルを抽出し、前記抽出されたファイルを前記グループ名と関連付けて類似アクセスファイル群管理情報に記憶する
ことを特徴とする請求項１１に記載のファイル再配置方法。
【請求項１４】
前記ファイルサーバは、
前記抽出したファイルのアクセス可能なユーザ数を取得し、
前記ユーザ数が、所定の上限値を超えた場合に、前記アクセス可能取得可否情報に
前記抽出したファイルについてアクセスログ取得が必要であることを設定する
ことを特徴とする請求項１３に記載のファイル再配置方法。
【請求項１５】
前記ファイルサーバは、
前記接続履歴情報に基づいてユーザ名ごとに非接続時間帯を抽出した際、前記非接続時間帯が、当該ファイルが記憶されることになるＲＡＩＤグループのスピンダウン状態からスピンアップ状態に要する時間よりも短いとき、前記非接続時間帯は接続していたものとみなす
ことを特徴とする請求項１１に記載のファイル再配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置内に記憶されているファイルを再配置する技術に係わり、ストレージ装置の消費電力を抑えることができるファイルサーバ、ファイル管理システムおよびファイル管理方法に関する。
【背景技術】
【０００２】
ファイルシステムを管理するファイルサーバ（ＮＡＳ（Network Attached Storage）装置）と、ファイルシステムのファイルを格納する１以上のストレージ装置とを有するファイル管理システムを使用したファイルサービスのニーズが近年急速に高まっている。それに伴い、ストレージ装置に格納されるファイルの容量が増加し、ストレージ装置を構成するディスクデバイスの台数も増加の傾向にある。ディスクデバイスの台数が増加すると、ストレージ装置全体の消費電力も増加することになる。特に多数のディスクデバイスを搭載し、複数のディスクデバイスでＲＡＩＤ（Redundant Array of Inexpensive Disks）を構成している大容量のディスクアレイシステムでは、ストレージ装置全体の消費電力増加が課題となっている。
【０００３】
特許文献１には、ホストコンピュータからのファイルオープン要求をＮＡＳが受信すると、オープン対象が含まれる論理ボリュームを特定し、当該論理ボリューム中のオープン中のファイルの数が零（ぜろ）の場合、ディスク装置およびファン装置の起動を指示することが開示されている。
【０００４】
また、特許文献２には、ストレージシステム内の記憶装置の節電を管理装置から行えるよう構成することが開示されている。すなわち、ストレージシステムは、ＲＡＩＤグループの記憶装置を指定した節電指示を管理コンソールから受け付ける節電指示受信部と、その節電指示で指定されている記憶装置に対応した一以上の物理記憶装置を節電する節電制御部とを備える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−１８４８３号公報
【特許文献２】特開２００８−１３４８２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１の技術によれば、一つのファイルでもオープンされていると記憶装置の起動が行なわれるため、スピンダウン状態の停止時間が確保できず，節電効果が不十である。
【０００７】
ＮＡＳは、多数のユーザからファイルアクセス要求を受け付け、Ｒｅａｄ／Ｗｒｉｔｅ処理を行うことでファイル共有を実現しており、ＮＡＳに接続されたＬＵ（Logical Unit）上に格納されているファイルは、個々に異なるユーザ、異なるタイミング（時間帯）でアクセスされる。このため、ＲＡＩＤグループ全体では、アクセスされない時間帯が短く，ファイルが格納されているＬＵが属するＲＡＩＤグループをスピンダウン状態（低回転状態）、または、スピンオフ状態（停止状態）にする時間が短いため，節電効果が不十分である。
【０００８】
本発明は、上記の課題を解決するための発明であって、ストレージ装置の消費電力を抑えることができるファイルサーバ、ファイル管理システムおよびファイル再配置方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、本発明のファイルサーバは、クライアントからのファイルアクセスを受けると、マッピングテーブルを参照して、対象ファイルが格納されているＲＡＩＤグループのボリュームにおいて、対象ファイルのアクセスを処理する。ファイルサーバは、ファイルサーバに接続したユーザごとの接続時間を接続履歴テーブルに記憶し、接続時間帯が似ているユーザをグルーピングし、グルーピングしたユーザと関連するファイルを同一のＲＡＩＤグループにデータ移行し集約する。これにより、データが集約されたＲＡＩＤグループについては、アクセスされない時間帯（非接続時間帯）を長くできるため、非接続時間帯のＲＡＩＤグループについてスピンダウンし、また、非接続時間帯でないＲＡＩＤグループに対してはスピンアップ（スピンダウンしない）する。
【００１０】
なお、ファイルサーバによって管理されるファイルシステムには、複数の実ファイルシステムを仮想的に統合したファイルシステムを使用する。ファイルサーバは、ファイルシステムの仮想化によって、ユーザに対し１以上の論理ボリュームに作成された１以上の実ファイルシステムは見せず、実ファイルシステムを仮想的に統合した統合ファイルシステム（仮想ファイルシステム）を見せている。従って、ファイルの移行がなされ、そのファイルが格納されている実ファイルシステムが変わったとしても、統合ファイルシステムしか見えないユーザはそのことを意識せずにファイルのアクセスを実行できる。詳細は後記する。
【発明の効果】
【００１１】
本発明によれば、ストレージ装置の消費電力を抑えることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明が適用されるファイル管理システムの構成例を示す図である。
【図２】本実施形態に係るＨＳＭ機能を使用した場合のファイルシステムツリー構造を示す図である。
【図３】ファイルシステムの構造の一例を示す図である。
【図４】ディレクトリエントリのデータ構造の一例を示す図である。
【図５】ｉノードとデータブロックの参照関係を示す図である。
【図６】ｉノードテーブルのデータ構造の一例を示す図である。
【図７】ＮＡＳのソフトウェア構成を示す図である。
【図８】ファイルシステムの階層の管理情報である階層管理テーブルを示す図である。
【図９】階層データリストの基本データ構造を示す図である。
【図１０】基本データ構造に基づく、利用中の仮想ファイルシステムを構成する実ファイルシステムをリストとして管理する階層データリストのデータ構造を示す図である。
【図１１】マッピングテーブルのデータ構造を示す図である。
【図１２】接続履歴テーブルのデータ構造を示す図である。
【図１３】類似アクセスユーザ群管理テーブルのデータ構造を示す図である。
【図１４】非接続時間帯管理テーブルのデータ構造を示す図である。
【図１５】類似アクセスファイル群管理テーブルのデータ構造を示す図である。
【図１６】クライアントからのファイルのアクセスがあった際の実ファイルシステムへの手順を示す図である。
【図１７】実施形態１に係るファイル共有プログラムの処理概要を示す図である。
【図１８】クライアントからのアクセスがあった際の処理を示す図である。
【図１９】ユーザのグループ化、および各グループと非接続時間帯とを関連付けの処理を示す図である。
【図２０】擬似アクセスユーザ群でファイルをグループ化する処理を示す図である。
【図２１】データ移行および省電力制御の処理を示す図である。
【図２２】類似した接続時間帯でユーザをグループ化する処理を示す図である。
【図２３】スピンダウンまたはスピンアップそのものに要する時間を考慮したファイルアクセスの様子を示す図である。
【図２４】スピンダウンまたはスピンアップそのものに要する時間を考慮したファイルアクセスの様子を示す図である。
【図２５】実施形態１に係るファイル共有プログラムの処理フローの全体を示す図である。
【図２６】接続要求受付プログラムの処理フローを示す図である。
【図２７】Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラムの処理フローを示す図である。
【図２８】グルーピングプログラムの処理フローを示す図である。
【図２９】スピンアップ／ダウン要求プログラムの処理のフローを示す図である。
【図３０】データ移行プログラムの処理のフローを示す図である。
【図３１】クライアントからファイルのアクセスがあった際のＮＡＳの応答を示す図である。
【図３２】実施形態２に係るファイル共有プログラムの処理概要を示す図である。
【図３３】アクセスログのデータ構造を示す図である。
【図３４】アクセスログ取得可否判定テーブルのデータ構造を示す図である。
【図３５】実施形態２に係るファイル共有プログラムの処理フローの全体を示す図である。
【図３６】実施形態２に係るＲｅａｄ／ｗｒｉｔｅ要求受付プログラムの処理フローを示す図である。
【図３７】実施形態２に係るグルーピングプログラムの処理フローを示す図である。
【図３８】対象物の動作パターンの事例を示す図である。
【図３９】対象物の動作時間のビットマップを示す図である。
【図４０】対象物の動作時間の他のビットマップを示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について、図面に基づいて詳細に説明する。なお、これにより本発明が限定されるものではない。
（実施形態１）
図１は、本発明が適用されるファイル管理システムの構成例を示す図である。ファイル管理ファイルシステムは、ＮＡＳ１００１（ファイルサーバ）と、ＮＡＳ１００１に接続されたＲＡＩＤサブシステム１０１４（記憶装置）、管理端末１０２０、クライアント１０３０を有する。
【００１４】
ＲＡＩＤサブシステム１０１４には、複数のＲＡＩＤグループが作成されており、各ＲＡＩＤグループ上にボリュームを有する。ボリュームは、論理ボリュームまたはＬＵ（Logical Unit）と称する場合がある。本実施形態の場合、複数のＬＵ１０１２（ＬＵ−１（１０１２ａ）、ＬＵ−２（１０１２ｂ）、ＬＵ−３（１０１２ｃ）、ＯＳ−ＬＵ（１０１２ｄ）がある。詳細については後記する。
【００１５】
ＮＡＳ１００１とＲＡＩＤサブシステム１０１４は、例えばＳＡＮ（Storage Area Network）で接続されている。また、管理端末１０２０、クライアント１０３０、およびＮＡＳ１００１は、例えばＬＡＮ（Local Area Network）で接続されている。なお、管理端末１０２０は、クライアント１０３０と同等のコンピュータとみなす場合がある。
【００１６】
ＮＡＳ１００１は、プログラムを実行するＣＰＵ（Central Processing Unit：処理部）１００２、ＲＡＩＤサブシステム１０１４との通信に使用するディスクアダプタ１００３、管理端末１０２０やクライアント１０３０との通信に利用するネットワークアダプタ１００４、ＣＰＵ１００２が実行するプログラムやデータを格納するメモリ１００８を搭載し、それらは内部的な通信路（例えば、バス）によって接続されている計算機である。なお、ＮＡＳ１００１がディスクアダプタ１００３を使用してＲＡＩＤサブシステム１０１４と接続するときは、ＦＣパスを経由し、ＦＣパスは稼働中のＲＡＩＤグループに振り分けられる。
【００１７】
ＮＡＳ１００１のメモリ１００８には、前記のとおりプログラムやデータが格納される。具体的には、メモリ１００８には、管理コマンド１００５、階層管理ファイルシステムプログラム１００６、実ファイルシステムプログラム１００７、オペレーティングシステム１００９、管理情報１０１０、ファイル共有プログラム３１００が格納される。
【００１８】
管理コマンド１００５は、ＮＡＳ１００１が提供するＨＳＭ（Hierarchical Storage Management：階層ストレージ管理）機能を管理するコマンドである。階層管理ファイルシステムプログラム１００６は、ファイルシステムの階層化を実現し、ＮＡＳ１００１が提供するＨＳＭ機能の中心となるプログラムである。
【００１９】
階層管理ファイルシステムプログラム１００６は、主に、階層管理参加処理、階層管理離脱処理、管理情報再構築処理、階層移動処理、Ｌｏｏｋｕｐ処理、Ｃｒｅａｔ処理、Ｍｋｄｉｒ処理、Ｒｅａｄｄｉｒ処理を行うプログラムである。
【００２０】
実ファイルシステムプログラム１００７は、ＲＡＩＤサブシステム１０１４のＲＡＩＤグループ（Ｒｇｒｏｕｐ）に作成されたＬＵ（１０１２）上のファイルシステムであるＦＳ１（１０１５ａ）、ＦＳ２（１０１５ｂ）、ＦＳ３（１０１５ｃ）を管理するプログラムである。なお、ＦＳはFile System（ファイルシステム）の略である。
【００２１】
オペレーティングシステム１００９は、ＮＡＳ１００１全体を管理するプログラムである。オペレーティングシステム１００９は、後記するＶＦＳ（Virtual File System：仮想ファイルシステム）プログラム３０００を内部に有する。
【００２２】
ファイル共有プログラム３１００は、管理端末１０２０からの管理指令要求を受け付けたり、クライアント１０３０のファイルアクセス要求プログラム１０３１からファイルアクセス要求（説明の便宜上、単に、「アクセス要求」を称する場合がある。）を受け取るなど、また、ユーザのアクセス要求に基づきファイル管理するプログラムである。ファイル共有プログラム３１００には、接続要求受付プログラム３１１０（図２６参照）、Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０（図２７参照）、グルーピングプログラム３１３０（図２８参照）、データ移行プログラム３１４０（図３０参照）、スピンアップ／ダウン要求プログラム３１５０（図２９参照）のサブプログラムがある。
【００２３】
管理情報１０１０は、ＨＳＭ機能を提供するための管理データである。これらのプログラムやデータの詳細は後記する。ただ、管理情報１０１０に含まれる各種テーブル１００００とは、後記する階層管理テーブル４０００（図８参照）、マッピングテーブル６０００（図１１参照）、接続履歴テーブル８１００（接続履歴情報）（図１２参照）、類似アクセスユーザ群管理テーブル８２００（類似アクセスユーザ群管理情報）（図１３参照）、非接続時間帯管理テーブル８３００（非接続時間帯管理情報）（図１４参照）、類似アクセスファイル群管理テーブル８４００（類似アクセスファイル群管理情報）（図１５参照）を含むテーブルの総称である。ＮＡＳ１００１でなされる処理によってこれらのテーブルがメモリ１００８の記憶領域で一時的に作成され、作成されたテーブルはＲＡＩＤサブシステム１０１４に保存される。
【００２４】
接続要求受付プログラム３１１０（図２６参照）は、クライアント１０３０からのログイン要求およびログアウト要求を受け付け、クライアント１０３０からＮＡＳ１００１への接続／切断の日時を取得し、アクセス要求の接続履歴を接続履歴テーブル８１００（図１２参照）に登録するプログラムである。なお、接続履歴には、管理端末１０２０からの接続履歴も含まれる。
【００２５】
Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０（図２７参照）は、アクセス要求を受付後、ファイルのＯｐｅｎ処理、Ｃｌｏｓｅ処理、Ｒｅａｄ処理、Ｗｒｉｔｅ処理をするプログラムである。
【００２６】
図３１は、クライアントからファイルのアクセス要求があった際のＮＡＳの応答を示す図である。クライアント１０３０は、ＮＡＳ１００１へユーザＩＤ、パスワードとともに、ログイン要求をすると、ＮＡＳ１００１は、ＯＫの応答を返す。そして、クライアント１０３０は、ａ.ｔｘｔ のｒｅａｄ要求をすると、ＮＡＳ１００１は、ａ.ｔｘｔ のファイルデータを送信する。また、クライアント１０３０は、ａ.ｔｘｔ のｗｒｉｔｅ要求をすると、ＮＡＳ１００１は、ａ.ｔｘｔへファイルデータをＲＡＩＤサブシステム１０１４へ書き込んだ後、ＯＫの応答を返す。そして、クライアント１０３０は、ＮＡＳ１００１へ、ログアウト要求をすると、ＮＡＳ１００１は、ＯＫの応答を返す。なお、ＮＡＳ１００１の接続要求受付プログラム３１１０は、例えば、ユーザ（ユーザ名またはユーザＩＤ）毎にログイン要求の応答の時刻から、ログアウト要求の応答の時刻までを、ユーザの接続時間として管理する。すなわち、接続要求受付プログラム３１１０は、ユーザ毎にログイン前、ログアウト後は、非接続時間として管理する。
【００２７】
図１に戻り、グルーピングプログラム３１３０（図２８参照）は、ユーザの履歴情報を基に、ユーザ毎の非接続時間を抽出し、類似する非接続時間帯毎にユーザをグループ化し、グループ化した結果を類似アクセスユーザ群管理テーブル８２００（図１３参照）に出力し、非接続時間帯とグループとを対応付け、非接続時間帯管理テーブル８３００（図１４参照）に出力し、類似アクセスユーザ群管理テーブル８２００に登録されているユーザ名からアクセス可能なファイルを検索し、検索結果を類似アクセスファイル群管理テーブル８４００（図１５参照）へ出力し、最後にデータ移行プログラム３１４０を呼び出すプログラムである。
【００２８】
データ移行プログラム３１４０（図３０参照）は、ＲＡＩＤサブシステム１０１４のあるボリューム（またはＲＡＩＤグループ）に格納されているファイルを別のボリューム（またはＲＡＩＤグループ）に移行するプログラムである。
【００２９】
スピンアップ／ダウン要求プログラム３１５０（図２９参照）は、ＲＡＩＤサブシステム１０１４に作成されたＲＡＩＤグループのスピンアップ（ハードディスクのプラッタの回転速度を規定値まで上げること）またはスピンダウン（ハードディスクのプラッタの回転速度を規定値まで下げること）を行うプログラムである。なお、これらのプログラムを格納した記録媒体を製造し、ＮＡＳ１００１がその記録媒体から前記プログラムを読み込み、前記した処理を実行してもよい。なお、ＲＡＩＤグループのスピンアップとは、ＲＡＩＤグループに含まれるハードディスクの状態をｒｅａｄ要求またはｗｒｉｔｅ要求を処理可能な状態まで遷移させる処理を指してもよい。また、ＲＡＩＤグループのスピンダウンとは、ＲＡＩＤグループに含まれるハードディスクの状態をスピンアップ後の電力消費量から低い消費電力状態に遷移する処理であれば、ハードディスクの回転速度を規定値まで下げる以外の状態遷移であってもよい。以後、ハードディスクの状態として、Ｒｅａｄ要求またはｗｒｉｔｅ要求を処理可能な状態またはハードディスクのプラッタの回転速度を規定値まで上げた状態をスピンアップ状態（または通常状態）と呼び、上記通常状態より消費電力の低い状態またはハードディスクのプラッタの回転速度を規定値まで下げた状態をスピンダウン状態（または省電力状態）と呼ぶことがある。
【００３０】
ＲＡＩＤサブシステム１０１４には、複数のＲＡＩＤグループ（例えば、Ｒｇｒｏｕｐ−１、Ｒｇｒｏｕｐ−２、Ｒｇｒｏｕｐ−３）が作成されており、各ＲＡＩＤグループ上にＬＵ（１０１２)が作成される。作成されてＬＵ（１０１２）には、ユーザデータを格納するＬＵ（１０１２）（ＬＵ−１（１０１２ａ）、ＬＵ−２（１０１２ｂ）、ＬＵ−３(１０１２ｃ）に相当）、ＯＳプログラムや管理情報１０１０を格納するＬＵ１０１２（ＯＳ−ＬＵ（１０１２ｄ）に相当）がある。ＯＳ−ＬＵ（１０１２ｄ）上には、ＦＳＭファイルシステム１０１７が作成される。ＦＳＭファイルシステム１０１７には、後記する階層管理テーブル４０００（ファイルシステム階層管理情報）、マッピングテーブル６０００（マッピング情報）、接続履歴テーブル８１００、類似アクセスユーザ群管理テーブル８２００、非接続時間帯管理テーブル８３００、類似アクセスファイル群管理テーブル８４００が格納されている。なお、ＦＳＭは、File System Managementの略である。
【００３１】
ＦＳ１（１０１５ａ）はＬＵ−１（１０１２ａ）に作成される。また、ＦＳ２（１０１５ｂ）はＬＵ−２(１０１２ｂ)に作成される。さらに、ＦＳ３(１０１２ｃ)は、ＬＵ−３(１０１２ｃ)に作成される。ファイルシステムは、クライアント１０３０のユーザが作成したデータをファイル形式で保持する。以降、これらのファイルシステムを実ファイルシステムと呼ぶ場合がある。これは、後記するように、本発明が「仮想」ファイルシステムを作成するため、ボリューム上に作成される「本当の」ファイルシステムという意味である。
【００３２】
管理端末１０２０は、ＮＡＳ１００１を管理する管理者が使用する計算機である。管理者は、管理端末１０２０からネットワークを通して、ＮＡＳ１００１の管理コマンド１００５を使用する。クライアント１０３０は、ＮＡＳ１００１が提供するファイル共有サービスを利用する計算機である。クライアント１０３０を利用するユーザは、ファイルアクセス要求プログラム１０３１を通してＮＡＳ１００１のファイル共有サービスを利用する。
【００３３】
なお、以後の説明で用いる用語の意味は、以下に示す。
（Ａ）「ファイル」：クライアント１０３０またはＮＡＳ１００１が生成したデータを格納する論理的な存在。
（Ｂ）「ディレクトリ」：ファイルやディレクトリを集約して管理する論理的な単位。
（Ｃ）「ディレクトリ名」：ディレクトリに付与される名前。
（Ｄ）「パス」または「パス名」：ファイルまたはディレクトリを識別する識別情報。
（Ｅ）「ファイル名」：ファイルに付与される名前。なお、以後の説明ではファイル名にパス名が含まれることがある。
【００３４】
図２は、本実施形態に係るＨＳＭ機能を使用した場合のファイルシステムツリー構造を示す図である。ファイルシステムツリーは、ＮＡＳ１００１が構築し、クライアント１０３０へ提供しているファイルシステム名前空間である。
【００３５】
ファイルシステムツリー２０００は、「／（ルート）」と、ルートの下の「ＥＸＰＯＲＴ」と「Ｔｉｅｒ１」と「Ｔｉｅｒ２」で構成されている。ＦＳ１（１０１５ａ）は、Ｔｉｅｒ１にマウントされ、ＦＳ２（１０１５ｂ）はＴｉｅｒ２にマウントされている。本実施形態のＨＳＭ機能は、Ｔｉｅｒ１とＴｉｅｒ２をＥＸＰＯＲＴディレクトリへ重ねる。このとき、ファイルシステムスタック構造２００２のように、ＦＳ１（１０１５ａ）を上にＦＳ２（１０１５ｂ）を下に配置して、仮想ファイルシステム２００１を作成する。
【００３６】
本実施形態は、ＥＸＰＯＲＴ以下をクライアント１０３０が使用する。クライアント１０３０のユーザがファイルを作成すると、ＦＳ１（１０１５ａ）にファイルが作成される。そして、そのファイルの利用頻度が低下すると、そのファイルをＦＳ２（１０１５ｂ）へ移動する。こうすることで、利用頻度の低いファイルが、例えば、高速ボリュームから低速ボリュームへ移動する。なお、利用頻度が低下したファイルは、ＮＡＳ１００１の利用者が特定してもよく、ＮＡＳ１００１に予め設定された所定のルールに基づき特定してもよく、またその他の方法で特定してもよい。
【００３７】
ＨＳＭ機能が仮想ファイルシステム２００１を構成するときに、ＦＳ１（１０１５ａ）とＦＳ２（１０１５ｂ）に同名のファイルがあった場合、ＦＳ１（１０１５ａ）のファイルが仮想ファイルシステム２００１に登録される。その結果、ＦＳ２（１０１５ｂ）にある同名のファイルはクライアント１０３０へ提供されない。これは、ファイルシステムスタック構造２００２で示すように、ＦＳ１（１０１５ａ）がＦＳ２（１０１５ｂ）を覆うように配置されるためである。なお、ＦＳ１（１０１５ａ）がＦＳ２（１０１５ｂ）を覆うように配置されるファイルスタック構造となってもよい。
【００３８】
なお、図２においては２層構成として説明したが、３層以上であってもよい。以上に示した方法により、管理者は使用中のファイルシステムを自由に統合できる。
【００３９】
ここで、ファイルシステムについて詳細に説明する。ファイルシステム（以下、「ＦＳ」と称する場合がある。）とは、ボリューム上にファイルという管理単位を実現するために構築された論理構造をいう。なお、このような論理構造は、例えばテーブルやキューであってもよい。
【００４０】
図３は、ファイルシステムの構造の一例を示す図である。ＦＳは、スーパーブロック（ファイル管理情報）３０１、ディレクトリエントリ（ファイル名−ファイル属性情報対応情報）３０２（図４参照）、ｉノードテーブル（ファイル属性情報管理情報）３０３（図６参照）、実際のファイルや管理データなどが格納されるブロックであるデータブロック（Ｉ／Ｏ（Input／Output）最小単位）３０４などを含んで構成されている。なお、ｉノードとデータブロックの参照関係は、図５を参照して後記する。
【００４１】
スーパーブロック３０１とは、ＦＳの情報を一括保持している領域である。一括保持する情報としては、例えばＦＳの大きさ、ＦＳの空き容量などがある。ディレクトリエントリ３０２とは、ファイル名とファイルの属性とを対応付けて管理するエントリである。これにより、ＦＳにおいて１つのファイルに１つのｉノード（ファイル属性情報）を対応させることができる。
【００４２】
図４は、ディレクトリエントリのデータ構造の一例を示す図である。図４で示すように、ディレクトリエントリ３０２は、ディレクトリパス名４０１とｉノードを指すインデックスであるｉノード番号４０２を組にしたテーブルである。ＦＳは、このディレクトリエントリのｉノード番号（またはｉｎｏｄｅ番号と表記する場合もある。）を用いてｉノードにアクセスする。ファイルシステムプログラム（例えば、実ファイルシステムプログラム１００７）は当該ｉノードエントリを参照することでファイル名（またはディレクトリパス名）からｉノード番号を取得する。なお、ディレクトリエントリはデータブロック中に分散して存在してもよい。
【００４３】
図５は、ｉノードとデータブロックの参照関係を示す図である。ここで、ｉノードとは、ｉノード番号、ファイルの所有権、アクセス権、ファイルサイズ、データの格納位置（データブロックアドレス（または、ポインタ））を含む各種情報（属性）を保持する領域をいう。後記するｉノードテーブル３０３に登録された情報に従うようにして、データブロック中の網掛け部分のブロック（データの格納位置を示す）に対してアクセス権の範囲内で参照される様子が窺える。
【００４４】
図６は、ｉノードテーブルのデータ構造の一例を示す図である。ｉノードテーブル３０３は、ｉノードを格納するテーブルである。図６で示すように、ｉノードテーブル３０３は、ｉノード番号６０１、所有者６０２、アクセス権６０３、サイズ６０４、データブロックアドレス１、２、３・・・（６０５ａ、６０５ｂ、６０５ｃ・・・）を組にしたテーブルである。
【００４５】
図７は、ＮＡＳのソフトウェア構成を示す図である。ＮＡＳ１００１のソフトウェア構成は、ファイル共有プログラム３１００、管理コマンド１００５、ＶＦＳプログラム３０００、階層管理ファイルシステムプログラム１００６、実ファイルシステムプログラム１００７から構成される。
【００４６】
管理コマンド１００５と、クライアント１０３０からのファイルアクセス要求を受信したファイル共有プログラム３１００とは、オペレーティングシステム１００９の一部であるＶＦＳプログラム３０００にアクセスを要求する。ＶＦＳプログラム３０００は、実ファイルシステムプログラム１００７や階層管理ファイルシステムプログラム１００６のアクセスインタフェースを仮想化し、管理コマンド１００５やファイル共有プログラム３１００に提供する機能を持つプログラムである。
【００４７】
階層管理ファイルシステムプログラム１００６は、ＶＦＳプログラム３０００を通してファイル共有プログラム３１００や管理コマンド１００５からアクセス要求を受け取る。また、階層管理ファイルシステムプログラム１００６は、実ファイルシステムプログラム１００７（例えば、ＦＳ１（１０１５ａ）、ＦＳ２（１０１５ｂ））へアクセスを要求する。一方、実ファイルシステムプログラム１００７は、ＶＦＳプログラム３０００から直接アクセス要求を受け取る場合もある。このように、ＶＦＳプログラム３０００は、ファイル共有プログラム３１００とファイルシステムプログラム（階層管理ファイルシステムプログラム１００６および実ファイルシステムプログラム１００７）の仲介を行うオペレーティングシステムを構成するソフトウェアである。
【００４８】
なお、ＮＡＳ１００１にて動作するファイル共有プログラム３１００や管理コマンド１００５は、カーネルの一部として動作してもよく、また、カーネルとは別なより保護された実行環境である一般プログラムとして動作してもよい。ここで、カーネルとは、ＮＡＳ１００１上で動作する複数のプログラム（プロセス）のスケジュール制御やハードウェアからの割り込みをハンドリングするなどし、ＮＡＳ１００１の全般的な制御を実施するソフトウェアであり、ＯＳ（Operating System）の基本機能を実装する。
【００４９】
ファイル共有プログラム３１００が、クライアント１０３０から受信する要求（ファイルアクセス要求）には、例えば以下の種類がある。なお、下記説明ではＮＦＳ（Network File System）とＣＩＦＳ（Common Internet File System）における例示をしているが、これ以外のコマンドが含まれてもよく、また他のコマンドで代替してもよい。
【００５０】
（Ａ）ファイルまたはディレクトリのパス名から、以下（Ｂ）〜（Ｈ）のファイルまたはディレクトリに対する参照および操作のために必要な識別子（以後、ファイルハンドル識別子と呼ぶ。）を取得するｌｏｏｋｕｐ要求。ＮＦＳプロトコルの場合は、例えば、パス名を指定するＬｏｏｋｕｐコマンドがある。ｌｏｏｋｕｐ要求がなされると、階層管理ファイルシステムプログラム１００６は、Ｌｏｏｋｕｐ処理を実行する。
【００５１】
（Ｂ）指定したディレクトリに指定したファイル名でファイルを生成するｃｒｅａｔ要求。ＮＦＳプロトコルの場合は、例えば、ｌｏｏｋｕｐ要求で取得したディレクトリのファイルハンドル識別子と、ファイル名を引数とするＣｒｅａｔｅコマンドがある。ＣＩＦＳプロトコルの場合は、例えば、ディレクトリ名とファイル名を引数としたＳＭＢ＿ＣＯＭ＿ＣＲＥＡＴＥコマンドがある。ｃｒｅａｔ要求がなされると、階層管理ファイルシステムプログラム１００６は、Ｃｒｅａｔ処理を実行する。
【００５２】
（Ｃ）指定したディレクトリ配下に新規ディレクトリを生成するｍｋｄｉｒ要求（新規ディレクトリのディレクトリ名も指定する）。ＮＦＳプロトコルの場合は、例えば、ｌｏｏｋｕｐ要求で取得したディレクトリのファイルハンドル識別子と、新規ディレクトリの名前を引数としたＭｋｄｉｒコマンドがある。ＣＩＦＳプロトコルの場合は、例えば、ディレクトリ名と新規ディレクトリ名を引数としたＳＭＢ＿ＣＯＭ＿ＣＲＥＡＴＥ＿ＤＩＲＥＣＴＯＲＹコマンドがある。ｍｋｄｉｒ要求がなされると、階層管理ファイルシステムプログラム１００６は、Ｍｋｄｉｒ処理を実行する。
【００５３】
（Ｄ）指定したディレクトリ配下に存在する１つ以上のファイルまたはディレクトリについてのファイル名やディレクトリ名をクライアント１０３０へ送信するｒｅａｄｄｉｒ要求。ＮＦＳプロトコルの場合は、例えば、ｌｏｏｋｕｐ要求で取得したディレクトリのファイルハンドル識別子を引数とするＲｅａｄｄｉｒコマンドがある。ＣＩＦＳプロトコルの場合は、例えば、ディレクトリ名を引数としたＳＭＢ＿ＣＯＭ＿ＴＲＡＮＳＡＣＴＩＯＮ２：ＴＲＡＮＳ２＿ＱＵＥＲＹ＿ＰＡＴＨ＿ＩＮＦＯＲＭＡＴＩＯＮコマンドがある。ｒｅａｄｄｉｒ要求がなされると、階層管理ファイルシステムプログラム１００６は、Ｒｅａｄｄｉｒ処理を実行する。
【００５４】
（Ｅ）指定したファイルを読み書きするための準備処理をＮＡＳ１００１に依頼するｏｐｅｎ要求。ＮＦＳプロトコルの場合は、例えば、ｌｏｏｋｕｐ要求で取得したファイルのファイルハンドル識別子を引数とするｏｐｅｎコマンドがある。ＣＩＦＳプロトコルの場合は、例えば、ファイル名（パス名込み）を引数とするＳＭＢ＿ＣＯＭ＿ＯＰＥＮがある。なお、ＣＩＦＳプロトコルの場合は、ＳＭＢ＿ＣＯＭ＿ＯＰＥＮの応答情報としてファイルのｒｅａｄまたはｗｒｉｔｅ処理を行うための識別子（以後、ｏｐｅｎ識別子と呼ぶ。）をクライアント１０３０に送信する。
【００５５】
（Ｆ）ｏｐｅｎ要求で準備したファイルのデータを読み込むｒｅａｄ要求。ＮＦＳプロトコルの場合は、例えば、ｌｏｏｋｕｐ要求で取得したファイルのファイルハンドル識別子を引数とするｒｅａｄコマンドがある。ＣＩＦＳプロトコルの場合は、例えば、ｏｐｅｎ識別子を引数とするＳＭＢ＿ＣＯＭ＿ＲＥＡＤコマンドがある。
【００５６】
（Ｇ）ｏｐｅｎ要求で準備したファイルのデータを書き込むｗｒｉｔｅ要求。ＮＦＳプロトコルの場合は、例えば、ｌｏｏｋｕｐ要求で取得したファイルのファイルハンドル識別子を引数とするｗｒｉｔｅコマンドがある。ＣＩＦＳプロトコルの場合は、例えば、ｏｐｅｎ識別子を引数とするＳＭＢ＿ＣＯＭ＿ＷＲＩＴＥコマンドがある。
【００５７】
（Ｈ）ｏｐｅｎ要求で行った準備を終了するｃｌｏｓｅ要求。ＮＦＳプロトコルの場合は、例えば、ｌｏｏｋｕｐ要求で取得したファイルのファイルハンドル識別子を引数とするｃｌｏｓｅコマンドがある。ＣＩＦＳプロトコルの場合は、例えば、ｏｐｅｎ識別子を引数とするＳＭＢ＿ＣＯＭ＿ＣＬＯＳＥコマンドがある。
【００５８】
なお、各要求にディレクトリまたはファイルを指定する場合は、ディレクトリ名やファイル名を引数として各要求に付随させる以外に、ＮＡＳ１００１がディレクトリまたはファイルを特定することが可能な情報をＮＡＳ１００１が受信さえ可能であれば、どのような形態の情報であってもよい。
【００５９】
また、ＮＡＳ１００１がボリュームに格納し管理するファイルには、ＮＡＳ１００１自体が用いるものやセキュリティの理由から複数のクライアント１０３０から特定のクライアントに対してのみ読み書きを許可したい場合もある。こうした要求に対応するため、ＮＡＳ１００１のファイル共有プログラム３１００は、エクスポートと呼ばれる機能を有する。エクスポート機能は、ＮＡＳ１００１が論理ボリュームに定義したファイルシステムの所定のディレクトリ（以後、エクスポートディレクトリ）配下のディレクトリおよびファイル（別な言い方では、ディレクトリ空間）を所定のクライアント１０３０（エクスポート先クライアント）にのみ提供する機能である。この場合、前述の所定のクライアント１０３０に対しては前述の所定のディレクトリ配下のディレクトリおよびファイルがトップディレクトリに存在するようディレクトリ空間を変換している。
【００６０】
例えば、配下に「ｈｏｍｅｗｏｒｋ．ｔｘｔ」ファイルを有する「ｗｏｒｋ」ディレクトリと「ｄｉａｒｙ．ｔｘｔ」ファイルとを有する「／ｈｏｍｅ／ｕｓｅｒ１」ディレクトリをＮＡＳ１００１が管理している場合、「／ｈｏｍｅ／ｕｓｅｒ１」をエクスポートディレクトリと指定し、複数のクライアントからｆｏｏの名前を有するクライアントを指定した場合は、ｆｏｏクライアントからはサーバが提供するディレクトリ空間のルートディレクトリ直下に「ｗｏｒｋ」ディレクトリと「ｄｉａｒｙ．ｔｘｔ」が存在するように見える。
【００６１】
図８は、ファイルシステムの階層の管理情報である階層管理テーブルを示す図である。階層管理テーブル４０００は、管理情報１０１０の一部である。管理者が管理コマンド１００５を使用して仮想ファイルシステムを作成する際、階層管理ファイルシステムプログラム１００６が「仮想の」ファイルシステムと「実」ファイルシステムとの対応を管理するための情報である階層管理テーブル４０００を作成する。階層管理テーブル４０００は、ファイルシステム（例えば、ＦＳ１（１０１５ａ）、ＦＳ２（１０１５ｂ））のマウント位置を示すマウントパス４００１と、ファイルシステムの管理ＩＤ（Identifier）であるＦＳＩＤ４００２、ファイルシステムの階層を示す階層４００３が１つのレコードとして構成されている。
【００６２】
階層管理ファイルシステムプログラム１００６は、ファイルシステムがマウントされるパス情報を完全パス名でマウントパス４００１へ記録する。完全パス名とは、／（ルート）から始まるパスで、例えば、図８に示すように「／ＥＸＰＯＲＴ」などが該当する。
【００６３】
また、ＦＳＩＤ（４００２）は、管理者が実ファイルシステムをマウントするときに設定した値を記録する。以降に記述されるＦＳＩＤは管理者が設定した値を用いる。
【００６４】
また、階層管理ファイルシステムプログラム１００６は、階層４００３の特定の値を、階層以外の用途に使用する。例えば、階層４００３が０ｘ００に設定されている場合、管理コマンド１００５と階層管理ファイルシステムプログラム１００６は、その階層を仮想ファイルシステム２００１（図２参照）であると認識する。
【００６５】
さらに、管理コマンド１００５は、階層４００３を０ｘ０１（１０進数で１）から始めるのではなく、０ｘ０Ｆ（１０進数で１６）から２番おきに採番する。こうすることで、最高の階層の上に、さらに階層を追加することが容易になる。また、階層間に階層を追加することも容易となる。ただし、この採番方法については一例であり、本実施形態が採番方法について特に限定するものではない。
【００６６】
図９は、階層データリストの基本データ構造を示す図である。図１０は、基本データ構造に基づく、利用中の仮想ファイルシステムを構成する実ファイルシステムをリストとして管理する階層データリストのデータ構造を示す図である。階層データリスト５０００は、管理情報１０１０の一部である。図９に示すように、階層データリスト５０００の基本データ構造は、マウント中のパスを示すマウントパス５００１と、ファイルシステムのＩＤを示すＦＳＩＤ（５００２）と、ポインタ５００３で構成される。なお、図８で示した階層管理テーブル４０００は、恒久的なものであるのに対して、図９および図１０に示す階層データリスト５０００は、運用中（動作中）の一時的なものである点で異なっている。
【００６７】
具体的には、図１０に示す階層データリスト５０００は、仮想ファイルシステム２００１（／ＥＸＰＯＲＴ）を先頭にした階層構造を示している。例えば、管理者の指示により、「／Ｔｉｅｒ１」が外される（階層から離脱する）場合、階層管理テーブル４０００は変更されない。しかし、階層データリスト５０００は変更される。階層管理ファイルシステムプログラム１００６は、階層データリスト５０００のうち、「／ＥＸＰＯＲＴ」のポインタを書き換え、「／Ｔｉｅｒ２」を指すように変更する。そして、「／Ｔｉｅｒ１」のデータを破棄する。このようにすることで、階層管理ファイルシステムプログラム１００６は、恒久的な階層構成情報と一時的な階層構成情報を効率よく管理できる。
【００６８】
次に管理コマンド１００５について説明する。
（階層管理への参加コマンド）
（Ａ１）式および（Ｂ１）式は、管理者が実ファイルシステムを仮想ファイルシステム２００１へ統合する（実ファイルシステムを階層管理へ参加させる）際に入力するコマンドの一例を示す。（Ａ１）式は、ｍｏｕｎｔコマンドの書式であり、（Ｂ１）式は、具体例を示している。
mount -t hmfs -o T=<Tier>,D=<TARGET> <SRC> <SRC>           …（Ａ１）
mount -t hmfs -o T=1,D=/EXPORT /Tier1 /Tier1               …（Ｂ１）
【００６９】
管理者は、管理端末１０２０の端末プログラムを利用して、ＮＡＳ１００１のファイル共有プログラム３１００へ接続し、ＮＡＳ１００１へログインする。そして、管理者は、実ファイルシステムを階層管理へ参加させるため、管理コマンド１００５を実行する。
【００７０】
（Ａ１）式において、管理者は、マウントコマンドの「−ｔ」オプションにより、階層管理ファイルシステムを利用することを指定する。そして、管理者は、「−ｏ」オプションにより、階層管理ファイルシステムプログラム１００６のオプションを指定する。階層管理ファイルシステムプログラム１００６のオプションのうち、階層管理への参加処理で使用するオプションは「Ｔ」と「Ｄ」である。Ｔオプションは、実ファイルシステムの階層を示し、Ｄオプションは、仮想ファイルシステム２００１のパスを示す。そして、「ＳＲＣ」に、実ファイルシステムがマウントされているファイルシステムのパスを指定する。具体的には、ＦＳ  Ａ（１０１５）が階層管理へ参加する場合（図２参照）、（Ｂ１）式に示すように、「／Ｔｉｅｒ１」を指定する。
このようにして、階層管理への参加コマンドが入力されると、階層管理ファイルシステムプログラム１００６は、階層管理参加処理を実行する。
【００７１】
（管理情報再構築コマンド）
（Ａ２）式および（Ｂ２）式は、マッピングテーブル６０００が壊れたときに再構築するためのコマンドの一例を示す。（Ａ２）式は、管理情報の再構築で使用するｍｏｕｎｔコマンドの書式であり、（Ｂ２）式は、具体例を示している。
mount -t hmfs -o I=<Tier DB>,D=<TARGET> hmfs hmfs          …（Ａ２）
mount -t hmfs -o I=/HMDB,D=/EXPORT hmfs hmfs               …（Ｂ２）
【００７２】
管理者は、管理端末１０２０の端末プログラムを利用して、ＮＡＳ１００１のファイル共有プログラム３１００へ接続し、ＮＡＳ１００１へログインする。そして、管理者は、実ファイルシステムを階層管理へ参加させるため、管理コマンド１００５を実行する。
【００７３】
（Ａ２）式において、−ｔオプションは、階層管理への参加と同様に、階層管理ファイルシステムプログラム１００６を利用することを示す。管理情報の再構築では、−ｏオプションで指定する、階層管理ファイルシステムプログラム１００６のオプションが異なる。管理者は、Ｉオプションにマッピングテーブル６０００が格納されているファイルシステムパスを指定する。また、管理者は、Ｄオプションに仮想ファイルシステム２００１のパスを指定する。図２を例にすると、具体的には、（Ｂ２）式に示すように、管理者は／に格納しているＨＭＤＢファイルを再構築することを指示している。このようにして、管理情報再構築コマンドが入力されると、階層管理ファイルシステムプログラム１００６は、管理情報再構築処理を実行する。
【００７４】
（階層管理からの離脱コマンド）
（Ａ３）式および（Ｂ３）式は、管理者が指定するファイルシステムを階層管理から外す際に入力するコマンドの一例を示す。（Ａ３）式は、階層管理から外す（階層管理から離脱）処理の書式であり、（Ｂ３）式は、具体例を示している。
umount <SRC>                                               …（Ａ３）
umount /Tier1                                              …（Ｂ３）
【００７５】
管理者は、管理端末１０２０の端末プログラムを利用して、ＮＡＳ１００１のファイル共有プログラム３１００へ接続し、ＮＡＳ１００１へログインする。そして、管理者は、実ファイルシステムを階層管理へ参加させるため、管理コマンド１００５を実行する。
【００７６】
管理者は、ｕｍｏｕｎｔコマンドを使用して、階層管理からファイルシステムを外すことができる。（Ａ３）式において、ｕｍｏｕｎｔコマンドに、実ファイルシステムがマウントされたファイルシステムパスを指定する。図２を例にすると、具体的には、（Ｂ３）式に示すように、管理者は、／Ｔｉｅｒ１にマウントされたファイルシステムを階層管理から外すことを、階層管理ファイルシステムプログラム１００６へ指示している。このようにして、階層管理からの離脱コマンドが入力されると、階層管理ファイルシステムプログラム１００６は、階層管理離脱処理を実行する。
【００７７】
（階層の移動コマンド）
（Ａ４）式および（Ｂ４）式は、管理者やクライアント１０３０を利用するユーザが、ファイルの階層を移動させる際に入力するコマンドの一例を示す。（Ａ４）式は、階層の移動処理の書式であり、（Ｂ４）式は、具体例を示している。
mv_tier -t 2 <FILE>                                        …（Ａ４）
mv_tier -t 2 FILE1                                         …（Ｂ４）
【００７８】
管理者は、管理端末１０２０の端末プログラムを利用して、ＮＡＳ１００１のファイル共有プログラム３１００へ接続し、ＮＡＳ１００１へログインする。そして、管理者は、実ファイルシステムを階層管理へ参加させるため、管理コマンド１００５を実行する。
【００７９】
（Ａ４）式において、−ｔオプションは、移動先の階層を指定する。具体的には、（Ｂ４）式に示すように、／Ｔｉｅｒ１に格納されているＦＩＬＥ１は、本コマンドを実行することで、／Ｔｉｅｒ２へ移動することになる。このようにして、階層の移動コマンドが入力されると、階層管理ファイルシステムプログラム１００６は、階層移動処理を実行する。
【００８０】
図１１は、マッピングテーブルのデータ構造を示す図である。マッピングテーブル６０００は、管理情報１０１０の一部であり、仮想ファイルシステムと実ファイルシステムとをマッピングすることにより、ファイルが格納されている実ファイルシステム情報を示す。マッピングテーブル６０００は、仮想ファイルシステムのファイル名をファイルパスとして示すファイルパス名６００１、仮想ファイルシステムのｉｎｏｄｅ番号を示す仮想ファイルシステム用ｉｎｏｄｅ番号６００２（第１のファイル属性識別情報）、当該ファイルが格納されているＲＡＩＤグループを示すＲＡＩＤグループ名６００３、当該ファイルを管理する実ファイルシステムを示すファイルシステム名６００４（図８のＦＳＩＤ（４００２）と同義）、その実ファイルシステムのｉｎｏｄｅ番号を示す実ファイルシステム用ｉｎｏｄｅ番号６００５（第２のファイル属性識別情報）で構成される。
【００８１】
マッピングテーブル６０００は、１レコードに１つのファイルを対応付けている。ＶＦＳプログラム３０００は、仮想ファイルシステム２００１の完全ファイルパスをファイルパス名６００１に記録する。ファイルパス名６００１に記録するファイル名は、階層管理するファイルシステム（実ファイルシステムのこと。図２の場合、ＦＳ１（１０１５ａ）やＦＳ２（１０１５ｂ）をいう。）が保持しているファイルパスと同じである。例えば、図２のＦＳ１（１０１５ａ）に「/home/user001/a.txt」というファイルがある場合は、ＶＦＳプログラム３０００は、ファイルパス名６００１に「/home/user001/a.txt」と記録する。一方、「/home/user002/b.txt」というファイルがある場合は、ＶＦＳプログラム３０００は、ファイルパス名６００１に「/home/user002/b.txt」と記録する。
【００８２】
クライアント１０３０を利用するユーザは、ファイルパス名６００１を指定して、ファイルへアクセスする。その際、ユーザから見ると仮想ファイルシステムにアクセスしているように見えるが、実際はＶＦＳプログラム３０００（または階層管理ファイルシステムプログラム１００６）が、ファイルパス名６００１に対応するレコードを特定し、実ファイルシステムプログラム１００７へのアクセスに切り替える。そして、実ファイルシステムプログラム１００７によって対応する実ファイルシステム上のファイルへのアクセスが実現される。なお、本実施形態では、管理情報再構築処理により、マッピングテーブル６０００が失われても再構築することができるため、高い可用性を実現できる。
【００８３】
なお、ＲＡＩＤグループが異なるボリューム間のファイルの移行があった場合、マッピングテーブル６０００において、ＲＡＩＤグループ名６００３、ファイルシステム名６００４、実ファイルシステム用ｉｎｏｄｅ番号６００５に登録される値は当然変更するが、仮想ファイルシステムにおいてはその変化は現れないため、ファイルパス名６００１、仮想ファイルシステム用ｉｎｏｄｅ番号６００２に登録される値は変更しない。
【００８４】
図１２は、接続履歴テーブルのデータ構造を示す図である。接続履歴テーブル８１００は、管理情報１０１０の一部であり、ユーザからＮＡＳ１００１への接続／切断（ログイン／ログアウト）の日時などが管理されるテーブルである。接続履歴テーブル８１００は、時刻を含む日時８１０１、クライアント１０３０を利用してアクセスしたユーザであるユーザ名８１０２、発生事象８１０３を含んで構成される。具体的には、図１２に示すように、ｕｓｅｒ００１のユーザが、２００８年１月１５日１１時００分０５秒（2008/01/05 11:00:05）に、ＮＡＳ１００１に接続要求したことがわかる。同様に、ｕｓｅｒ００１のユーザが、２００８年１月５日１１時１５分００秒に、ＮＡＳ１００１に切断要求したことがわかる。また、所定時間が経過すると、ＮＡＳ１００１は、強制切断（タイムアウト）することもわかる。
【００８５】
図１３は、類似アクセスユーザ群管理テーブルのデータ構造を示す図である。類似アクセスユーザ群管理テーブル８２００は、管理情報１０１０の一部であり、接続履歴テーブル８１００から類似した接続時間帯を元に、ユーザをグループ化した情報が管理される管理テーブルである。類似アクセスユーザ群管理テーブル８２００は、グループ名８２０１、ユーザ名８２０２を含んで構成される。具体的には、図１３に示すように、ＧｒｕｏｐＡには、ｕｓｅｒ００１、ｕｓｅｒ００２のユーザが含まれていることがわかる。
【００８６】
図１４は、非接続時間帯管理テーブルのデータ構造を示す図である。非接続時間帯管理テーブル８３００は、管理情報１０１０の一部であり、類似アクセスユーザ群管理テーブル８２００のグループ名８２０１と、グループ名中の各ユーザがＮＡＳ１００１へ接続していない非接続時間帯とを対応付けした情報が管理される管理テーブルである。非接続時間帯管理テーブル８３００は、グループ名８３０１、非接続時間帯８３０２を含んで構成される。具体的には、グループ名がＧｒｏｕｐＡの場合、９時００分から１１時００分までが非接続時間帯であるとともに、１７時００分から２２時００分までが非接続時間帯であることがわかる。また、グループ名がＧｒｏｕｐＢの場合、１５時００分から１７時００分までが非接続時間帯であるとともに、１８時００分から２２時００分までが非接続時間帯であることがわかる。
【００８７】
図１５は、類似アクセスファイル群管理テーブルのデータ構造を示す図である。類似アクセスファイル群管理テーブル８４００は、管理情報１０１０の一部であり、類似アクセスユーザ群管理テーブル８２００のグループ名８２０１と、グループ名８２０１中のアクセスユーザ群がアクセスするファイルとの対応付けた情報が管理される管理テーブルである。類似アクセスファイル群管理テーブル８４００は、グループ名８４０１、ファイル名８４０２を含んで構成される。具体的には、グループ名がＧｒｏｕｐＡの場合、ファイル名が、/home/share/a.txt、/home/share/b.txtなどがある。
【００８８】
次に、本実施形態で行う処理概要について図１６から図２１を参照して説明する。
既に説明したとおり、ＲＡＩＤサブシステム１０１４において、１以上のＬＵ（１０１２）から作成された１以上ファイルシステム（ＦＳ１（１０１５ａ）、ＦＳ２（１０１５ｂ）など）は、ＮＡＳ１００１により一元管理される。ＮＡＳ１００１のファイル共有プログラム３１００は、階層管理ファイルシステムプログラム１００６を通じて、１以上のファイルシステムを仮想的に統合した仮想ファイルシステムを構築する。
【００８９】
（ファイル共有プログラムのアクセス処理）
図１６は、クライアントからのファイルのアクセスがあった際の実ファイルシステムへの手順を示す図である。説明の便宜上、図１の図面を簡略化してあり、Ｒｇｒｏｕｐ−３は省略している。クライアント１０３０に対しては、各ＲＡＩＤグループにある個々のファイルシステムを見せず、仮想ファイルシステムを見せている。
【００９０】
クライアント１０３０は、/home/user001/a.txtというファイルに対してアクセス要求をする（図中（１）参照）。すると、ファイル共有プログラム３１００を介して、ＲＡＩＤサブシステム１０１４にあるマッピングテーブル６０００から、/home/user001/a.txtというファイル名を検索キーとして、ＦＳ１（１０１５ａ）、実ファイルシステム用ｉｎｏｄｅ番号＝３００を特定する（図中（２）参照）。そして、特定したファイルシステム（ＦＳ１（１０１５ａ））に対してファイルアクセスし、ファイル単位のアクセス処理（例えば、Ｒｅａｄ処理、Ｗｒｉｔｅ処理）を実行する。
【００９１】
（ファイル共有プログラムの処理概要）
図１７は、実施形態１に係るファイル共有プログラムの処理概要を示す図である。ファイル共有プログラム３１００の処理概要は、次のステップを含んで構成される。
ステップＳ１：アクセス要求
ステップＳ２：ファイル単位Ｉ／Ｏの実行
ステップＳ３：接続履歴テーブル８１００への出力
ステップＳ４：類似アクセスユーザ群管理テーブル８２００および非接続時間帯管理テーブル８３００への出力
ステップＳ５：類似アクセスファイル群管理テーブル８４００への出力
ステップＳ６：対象ファイルのデータ移行
ステップＳ７：ＲＡＩＤグループのスピンダウン／アップ要求
前記、各ステップについて、図１８から図２１を参照して説明する。
【００９２】
（ステップＳ１からステップＳ３）
図１８は、クライアントからのアクセスがあった際の処理を示す図である。ＮＡＳ１００１は、接続したクライアント１０３０のユーザからアクセス要求を受理すると（ステップＳ１）、ＯＳ−ＬＵ（１０１２ｄ）内のマッピングテーブル６０００を参照して、ファイル単位Ｉ／Ｏの実行する（ステップＳ２）。ＮＡＳ１００１は、ユーザのログイン／ログアウト時にユーザ名とＮＡＳ１００１に接続していた時刻を接続履歴テーブル８１００に記録（出力）する（ステップＳ３）。なお、一定時間運用し、接続履歴テーブル８１００に接続履歴を蓄積することが好ましい。
【００９３】
（ステップＳ４）
図１９は、ユーザのグループ化、および各グループと非接続時間帯とを関連付けの処理を示す図である。ＮＡＳ１００１は、接続履歴テーブル８１００を参照し、類似する非接続時間帯で、ユーザをグループ化（このグループを類似アクセスユーザ群と呼ぶ。）し、類似アクセスユーザ群管理テーブル８２００に出力する。また、ＮＡＳ１００１は、グループ化された各グループと、非接続時間帯を関連付けて、非接続時間帯管理テーブル８３００に出力する。なお、ユーザのグループ化方法については、図２２を参照して説明する。
【００９４】
図２２は、類似した接続時間帯でユーザをグループ化する処理を示す図である。図２２（ａ）は、接続履歴テーブル８１００に基づいたユーザ毎の接続時間帯を示す。横軸が時刻であり、ユーザ毎に接続時間帯を太線で示す。図２２（ｂ）は、類似した接続時間帯でユーザをグループ化した処理後の例を示す。ここでいう類似とは、接続時間帯が一致または部分一致するものをいう。具体的には、ｕｓｅｒＡ、ｕｓｅｒＢ、ｕｓｅｒＤとがほぼ一致し、しかもスピンダウンする可能性のある非接続時間があるため、Ｇｒｏｕｐ−１としている。ｕｓｅｒＣは、例えば、ｕｓｅｒＡとグループ化しようとしても、両ユーザがともに非接続時間帯を見出すことができない。このため、ｕｓｅｒＣは、Ｇｒｏｕｐ−１に入ることができず、Ｇｒｏｕｐ−２としている。なお、ファイルのグループ化において、スピンダウンまたはスピンアップそのものに要する時間を考慮する必要がある。
【００９５】
図２３、図２４は、スピンダウンまたはスピンアップそのものに要する時間を考慮したファイルアクセスの様子を示す図である。ユーザをアクセスする時間帯で分類する場合、スピンダウン/アップに掛かる時間と得られる停止時間間隔に注意する必要がある。図２３に示すように、アクセス（接続）のない時間帯の時間が、スピンダウンまたはスピンアップに要する時間（特に、ファイルの移行先となるＲＡＩＤグループで行うスピンダウンまたはスピンアップに掛かる時間）よりも短いと、短時間でのスピンダウンまたはスピンアップによる遅延によりアクセス可能な時間帯が減少する。このため、微小な停止時間帯で、スピンダウンまたはスピンアップするとオーバーヘッドとなる。たとえアクセスのある時間帯であってもスピンダウンまたはスピンアップがなされるのであればその時間は接続不能時間といえる（図２３の太線）
【００９６】
そこで、図２４に示すように、予め、スピンダウンまたはスピンアップに要する時間を計測し（計測した時間は、例えばメモリ１００８に格納されている。）、スピンダウンまたはスピンアップに要する時間よりも短い空白部分（アクセスのない時間帯）は、アクセスが発生しているものとみなして（図２４の破線）、アクセス時間帯をグループ化するのがよい。
【００９７】
（ステップＳ５）
図２０は、擬似アクセスユーザ群でファイルをグループ化する処理を示す図である。ＮＡＳ１００１は、各ファイルのアクセス権情報を参照し、ステップＳ２で求めた類似アクセスユーザ群管理テーブル８２００に示す類似アクセスユーザ群単位で、当該ユーザ群に含まれるユーザのみが読み書き可能なファイルを特定して、類似アクセスファイル群管理テーブル８４００に出力し、同じグループのファイル群をグループ化する。このグループ化したファイルを類似アクセスファイル群と呼ぶ。
【００９８】
ファイルを特定する方法は、具体的には、類似アクセスユーザ群管理テーブル８２００に含まれるユーザ名で、図６に示したファイルシステムのｉノードテーブル３０３を検索し、ユーザ名が所有者６０２と一致、または、ユーザのグループに属し、ｒｅａｄの権利（ｒ）、ｗｒｉｔｅの権利（ｗ）があるファイルを抽出する。
【００９９】
本実施形態の場合、データ移行すべきファイルを特定する際、ｉノードテーブル３０３を利用しているため、ファイル数増加によるファイル特定処理の遅延を低減することができる。
【０１００】
（ステップＳ６およびステップＳ７）
図２１は、データ移行および省電力制御の処理を示す図である。ＮＡＳ１００１は、ステップＳ３で特定した類似アクセスファイル分を異なるＲＡＩＤグループ上にあるファイルシステムへ移行し、マッピングテーブル６０００を更新する。また、ＮＡＳ１００１は、非接続時間帯管理テーブル８３００に基づいて、省電力制御を指令（スピンダウン／スピンアップ要求）を行う。
【０１０１】
ファイルを移行する場合には、ステップＳ５でグループ化されたグループのＲＡＩＤグループを決定し、類似アクセスファイル群管理テーブル８４００のファイルを、決定したＲＡＩＤグループに属するように当該ファイルを移行し、非接続時間帯管理テーブル８３００に基づいて非接続時間帯ではＲＡＩＤグループについてスピンダウンし、非接続時間帯でない時間帯ではＲＡＩＤグループについてスピンアップするとよい。
以上、ファイル共有プログラム３１００の処理概要の説明を終了する。
【０１０２】
次に、ファイル共有プログラム３１００の処理フローの詳細について説明する。
図２５は、実施形態１に係るファイル共有プログラムの処理フローの全体を示す図である。クライアント１０３０を使用するユーザからＮＡＳ１００１に接続要求があると、ファイル共有プログラム３１００の接続要求受付プログラム３１１０（図２６参照）が受付処理するとともに、ファイルのｒｅａｄ要求、ｗｒｉｔｅ要求に対し、Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０（図２７参照）が受付処理をする。
【０１０３】
接続要求受付プログラム３１１０は、接続履歴テーブル８１００にユーザの接続履歴を記録し、グルーピングプログラム３１３０（図２８参照）は、接続履歴テーブル８１００を参照して、類似する非接続時間帯毎にユーザをグループ化してその結果を類似アクセスユーザ群管理テーブル８２００に出力する。また、非接続時間帯とグループを対応付け、非接続時間帯管理テーブル８３００へ結果を出力する。さらに、グルーピングプログラム３１３０は、類似アクセスユーザ群管理テーブル８２００を参照して、類似アクセスユーザ群に含まれるユーザのみが読み書き可能なファイルを特定し、類似アクセスファイル群管理テーブル８４００に出力する。
【０１０４】
スピンアップ／ダウン要求プログラム３１５０（図２９参照）は、非接続時間帯管理テーブル８３００を参照してスピンアップ／ダウンの処理を行う。一方、データ移行プログラム３１４０（図３０参照）は、類似アクセスファイル群管理テーブル８４００を参照して、ファイルの移行処理を行う。
なお、各プログラムの処理フローの詳細を、図２６から図３０を参照して説明する。
【０１０５】
（接続要求受付処理）
図２６は、接続要求受付プログラムの処理フローを示す図である。接続要求受付プログラム３１１０は、ユーザからのアクセス要求、特に、ログイン要求およびログアウト要求を受け付け、ユーザからＮＡＳ１００１への接続／切断の日時を取得し、アクセス要求の接続履歴を接続履歴テーブル８１００（図１２参照）に登録するプログラムである。処理の主体はＣＰＵ１００２であるが、プログラムとして説明する。
【０１０６】
接続要求受付プログラム３１１０は、図２７に示すユーザからのアクセス要求を受け付け後（ステップＳ２６０１）、ログイン要求であるか否かを判定する（ステップＳ２６０２）。ログイン要求であれば（ステップＳ２６０２，Ｙｅｓ）、ユーザＩＤおよびパスワード認証などのログイン処理を実行する（ステップＳ２６０３）。そして、接続要求受付プログラム３１１０は、ユーザからの接続要求、日時、ユーザ名などを接続履歴テーブル８１００に登録し（ステップＳ２６０４）、ステップＳ２６０１に戻る。
【０１０７】
接続要求受付プログラム３１１０は、アクセス要求がログイン要求でない場合（ステップＳ２６０２，Ｎｏ）、ログアウト要求であるか否かを判定し（ステップＳ２６０５）、ログアウト要求であれば（ステップＳ２６０５，Ｙｅｓ）、ログアウト処理を実行する（ステップＳ２６０６）。そして、接続要求受付プログラム３１１０は、ユーザからの切断要求、日時、ユーザ名などを接続履歴テーブル８１００に登録する（ステップＳ２６０７）。一方、ログアウト要求でなければ（ステップＳ２６０５，Ｎｏ）、ステップＳ２６０１に戻る。
【０１０８】
（Ｒｅａｄ／ｗｒｉｔｅ要求受付処理）
図２７は、Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラムの処理フローを示す図である。Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０は、ファイルのＯｐｅｎ処理、Ｃｌｏｓｅ処理、Ｒｅａｄ処理、Ｗｒｉｔｅ処理をするプログラムである。処理の主体はＣＰＵ１００２であるが、プログラムとして説明する。
【０１０９】
Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０は、図２６のステップＳ２６０１からアクセス要求を受け付けると（ステップＳ２７０１）、ｏｐｅｎ要求であるか否かを判定し（ステップＳ２７０２）、ｏｐｅｎ要求でなければ（ステップＳ２７０２，Ｎｏ）、ｃｌｏｓｅ要求であるか否かを判定し（ステップＳ２７０３）、ｃｌｏｓｅ要求でなければ（ステップＳ２７０３，Ｎｏ）、ｗｒｉｔｅ要求であるか否かを判定し（ステップＳ２７０４）、ｗｒｉｔｅ要求でなければ（ステップＳ２７０４，Ｎｏ）、ｒｅａｄ要求であるか否かを判定し（ステップＳ２７０５）、ｒｅａｄ要求でなければ（ステップＳ２７０５，Ｎｏ）、呼出元のステップＳ２６０１に戻る（ステップＳ２７０６）。
【０１１０】
Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０は、ｏｐｅｎ要求であると判定すると（ステップＳ２７０２，Ｙｅｓ）、Ｏｐｅｎ処理を実行し（ステップＳ２７１２）、ステップＳ２７０６に進む。
【０１１１】
Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０は、ｃｌｏｓｅ要求であると判定すると（ステップＳ２７０３，Ｙｅｓ）、Ｃｌｏｓｅ処理を実行し（ステップＳ２７１３）、ステップＳ２７０６に進む。
【０１１２】
Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０は、ｗｒｉｔｅ要求であると判定すると（ステップＳ２７０４，Ｙｅｓ）、Ｃｌｏｓｅ処理を実行し（ステップＳ２７１４）、ステップＳ２７０６に進む。
【０１１３】
Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０は、ｒｅａｄ要求であると判定すると（ステップＳ２７０５，Ｙｅｓ）、Ｒｅａｄ処理を実行し（ステップＳ２７１５）、ステップＳ２７０６に進む。
【０１１４】
（グルーピング処理）
図２８は、グルーピングプログラムの処理フローを示す図である。グルーピングプログラム３１３０は、ユーザの接続履歴情報を基に、ユーザ毎の非接続時間を抽出し、類似する非接続時間帯毎にユーザをグループ化し、グループ化した結果を類似アクセスユーザ群管理テーブル８２００（図１３参照）に出力し、非接続時間帯とユーザのグループとを対応付け、非接続時間帯管理テーブル８３００（図１４参照）に出力し、類似アクセスユーザ群管理テーブル８２００に登録されているユーザ名からアクセス可能なファイルを検索し、検索結果を類似アクセスファイル群管理テーブル８４００（図１５参照）へ出力し、最後にデータ移行プログラム３１４０を呼び出すプログラムである。処理の主体はＣＰＵ１００２であるが、プログラムとして説明する。
【０１１５】
グルーピングプログラム３１３０は、ユーザをグルーピング済みであるか否かを判定し（ステップＳ２８０１）、グルーピング済みでなければ（ステップＳ２８０１，Ｎｏ）、スピンダウン状態からスピンアップ状態に掛かる平均時間を取得し（ステップＳ２８０２）、ステップＳ２８０３に進む。なお、平均時間の取得は、スピンアップ／ダウン要求プログラムが、予めスピンダウンまたはスピンアップに掛かる時間を計測し、計測した時間は、例えばメモリ１００８に格納されている。
【０１１６】
グルーピングプログラム３１３０は、接続履歴テーブル８１００をメモリ１００８へ読み込み（ステップＳ２８０３）、読み込んだ接続履歴テーブル８１００にて、前記平均時間よりも短い停止時間帯をスピンアップ中となるように修正する（ステップＳ２８０４）。そして、グルーピングプログラム３１３０は、修正した接続履歴テーブル８１００を用いて、非接続時間帯を抽出し（ステップＳ２８０５）、類似する非接続時間帯毎にユーザをグループ化する（ステップＳ２８０６）。グルーピングプログラム３１３０は、グループ化した結果（グループ名とユーザ名）を類似アクセスユーザ群管理テーブル８２００に出力し（ステップＳ２８０７）、非接続時間帯とグループ名を対応付けて、非接続時間帯管理テーブル８３００へ結果を出力し（ステップＳ２８０８）、類似アクセスユーザ群管理テーブル８２００に登録されているユーザ名からアクセス可能なファイルを検索し、検索結果を類似アクセスファイル群管理テーブル８４００へ出力し（ステップＳ２８０９）、ステップＳ２８１０に進む。
【０１１７】
ステップＳ２８０１において、グルーピングプログラム３１３０は、グルーピング済みであると判定した場合（ステップＳ２８０１，Ｙｅｓ）、接続履歴テーブル８１００と類似アクセスユーザ群管理テーブル８２００とを照合し、類似アクセスユーザ群へ分類されていないユーザを抽出し（ステップＳ２８２１）、抽出したユーザを類似する接続時間帯によって、各類似アクセスユーザ群へ振り分けを行う（ステップＳ２８２２）。そして、グルーピングプログラム３１３０は、ファイルシステムのアクセス権情報と抽出したユーザを照合し、アクセス可能なファイルを抽出し（ステップＳ２８２３）、抽出したファイルと類似アクセスファイル群管理テーブル８４００を照合し、未振り分けのファイルを抽出し（ステップＳ２８２４）、ステップＳ２８１０に進む。
【０１１８】
最後に、ステップＳ２８１０において、データ移行プログラム３１４０を呼び出し、類似アクセスファイル群がひとつのＲＡＩＤグループにまとまるようにデータ移行をおこない、一連の処理を終了する。
【０１１９】
（スピンアップ／ダウン要求処理）
図２９は、スピンアップ／ダウン要求プログラムの処理のフローを示す図である。スピンアップ／ダウン要求プログラム３１５０は、ＲＡＩＤサブシステム１０１４に作成されたＲＡＩＤグループのスピンアップまたはスピンダウンを行うプログラムであり、定期的に実行される。処理の主体はＣＰＵ１００２であるが、プログラムとして説明する。
【０１２０】
スピンアップ／ダウン要求プログラム３１５０は、現在日時を取得し（ステップＳ２９０１）、非接続時間帯管理テーブル８３００と現在日時とを比較し、スピンアップすべきＲＡＩＤグループを取得し（ステップＳ２９０２）、ステップＳ２９０１において取得したＲＡＩＤグループのうち、スピンダウン中のＲＡＩＤグループを取得する（ステップＳ２９０３）。なお、スピンアップすべきＲＡＩＤグループとは、非接続時間帯管理テーブル８３００において、接続時間帯（非接続時間帯でない時間帯）のグループ名８３０１（図１４参照）に対応するＲＡＩＤグループである。
【０１２１】
また、同様に、スピンアップ／ダウン要求プログラム３１５０は、非接続時間帯管理テーブル８３００と現在日時とを比較し、スピンダウンすべきＲＡＩＤグループを取得し（ステップＳ２９０４）、ステップＳ２９０４において取得したＲＡＩＤグループのうち、スピンアップ中のＲＡＩＤグループを取得する（ステップＳ２９０５）。なお、スピンダウンすべきＲＡＩＤグループとは、非接続時間帯管理テーブル８３００において、非接続時間帯のグループ名８３０１に対応するＲＡＩＤグループである。
【０１２２】
そして、ステップＳ２９０６において、スピンアップ／ダウン要求プログラム３１５０は、ステップＳ２９０３において取得したＲＡＩＤグループに対して、スピンアップ要求を行い、ステップＳ２９０５において取得したＲＡＩＤグループに対して、スピンダウン要求を行い、処理を終了する。
【０１２３】
（データ移行処理）
図３０は、データ移行プログラムの処理のフローを示す図である。データ移行プログラム３１４０は、ＲＡＩＤサブシステム１０１４にあるＲＡＩＤグループに格納されているファイルを別のＲＡＩＤグループに移行するプログラムである。処理の主体はＣＰＵ１００２であるが、プログラムとして説明する。
【０１２４】
データ移行プログラム３１４０は、グルーピング処理のステップＳ２８１０（図２８参照）において呼び出され、ファイルがグルーピング済みであるか否かを判定し（ステップＳ３００１）、ファイルのグルーピング済みでない場合（ステップＳ３００１，Ｎｏ）、類似アクセスファイル群管理テーブル８４００から、（次）の類似アクセスファイル群（同じグループのファイル群をグループ化したファイル）を選択し（ステップＳ３００２）、同じＲＡＩＤグループ上になるようにファイルの移行を実行する（ステップＳ３００３）。そして、データ移行プログラム３１４０は、全類似アクセスファイル群に対して、移行実行済みであるか否かを判定し（ステップＳ３００４）、移行実行済みである場合（ステップＳ３００４，Ｙｅｓ）、処理を終了し、移行実行済みでない場合（ステップＳ３００４，Ｎｏ）、ステップＳ３００２に戻る。
【０１２５】
ステップＳ３００１において、ファイルがグルーピング済みである場合（ステップＳ３００１，Ｙｅｓ）、データ移行プログラム３１４０は、グルーピング処理のステップＳ２８２４で特定（抽出）した未振り分けファイルの移行を実施し（ステップＳ３００５）、処理を終了する。
【０１２６】
ファイルの移行を行うときには、階層管理テーブル４０００、マッピングテーブル６０００、類似アクセスファイル群管理テーブル８４００を参照する。ファイルの移行の際、マッピングテーブル６０００（図１１参照）において、当該ファイルについて、ＲＡＩＤグループ名６００３、ファイルシステム名６００４、実ファイルシステム用ｉｎｏｄｅ番号６００５の値を変更し、マッピングが変更されるため、移行によるファイルの格納位置の変更がユーザから隠蔽される。
【０１２７】
本実施形態では、接続時間帯が似ているユーザをグルーピングし、グルーピングしたユーザと関連するファイルを同一のＲＡＩＤグループに集約することで、ＲＡＩＤグループにアクセスされない時間帯（非接続時間帯）を長くし、ＲＡＩＤグループのスピンダウン時間の増加およびスピンダウンするＲＡＩＤグループ数の増加により、省電力効果を高めることができる。
【０１２８】
また、本実施形態では、ユーザの接続時間帯と、そのユーザがアクセスしたファイルからグルーピングするファイルを決定することで、ＮＡＳ１００１の利用／運用にあったアクセス時間帯が把握できるため、スケジューリング（スピンアップ／スピンアップ）の精度を高めることができる。
【０１２９】
（実施形態２）
実施形態１においては、ユーザが利用するファイルを特定する場合、アクセス権情報を使用した。アクセス権情報は、一般的には、更新頻度が少なく静的なアクセス情報である。一方、アクセスログのアクセス情報は、更新頻度が大きく動的なアクセス情報であるため、実施形態２において、アクセスログによるファイルを特定する方法について説明する。なお、以下の説明は好適な形態としてアクセスログと接続履歴テーブルを併用した処理について説明したが、アクセスログのみを用いた処理であってもよい。
【０１３０】
図３２は、実施形態２に係るファイル共有プログラムの処理概要を示す図である。図３２は、図１７と比較してステップＳ２ａ、ステップＳ３ａ、ステップ５ａ、ステップ５ｂ、ステップ５ｃが追加されている。
【０１３１】
ＮＡＳ１００１は、接続したクライアント１０３０のユーザからアクセス要求を受理すると（ステップＳ１）、ＯＳ−ＬＵ（１０１２ｄ）内のマッピングテーブル６０００を参照して、ファイル単位Ｉ／Ｏの実行する（ステップＳ２）。ＮＡＳ１００１は、ユーザのログイン／ログアウト時にユーザ名とＮＡＳ１００１に接続していた時刻を接続履歴テーブル８１００に記録（出力）する（ステップＳ３）。なお、一定時間運用し、接続履歴テーブル８１００に接続履歴を蓄積することが好ましい。
【０１３２】
さらに、ＮＡＳ１００１は、アクセスログ取得可否を判断するため、アクセスログ取得可否判定テーブル８６００を参照し（ステップＳ２ａ）、アクセス要求先であるファイルのフラグ（ＯＮ／ＯＦＦ）をチェックする。フラグがＯＮであれば、ファイル単位Ｉ／Ｏ時にアクセスしたユーザ名、アクセス対象のファイル、ファイルサイズをアクセスログ８５００に記録する（ステップＳ３ａ）。
【０１３３】
ＮＡＳ１００１は、接続履歴テーブル８１００を参照し、類似する非接続時間帯で、ユーザをグループ化（このグループを類似アクセスユーザ群と呼ぶ。）し、類似アクセスユーザ群管理テーブル８２００に出力する。また、ＮＡＳ１００１は、グループ化された各グループと、非接続時間帯を関連付けて、非接続時間帯管理テーブル８３００に出力する（ステップＳ４）。
【０１３４】
ＮＡＳ１００１は、各ファイルのアクセス権情報を参照し、ステップＳ４で求めた類似アクセスユーザ群管理テーブル８２００に示す類似アクセスユーザ群とアクセスログ８５００を照合し、アクセスログ８５００からファイルを特定する（ステップＳ５ａ）。アクセスログ８５００に記載のユーザ以外については、ＮＡＳ１００１は、各ファイルのアクセス権情報を参照することで、ステップＳ４で求めた類似アクセスユーザ群単位で、当該ユーザ群に含まれるユーザのみが読み書き可能なファイルを特定して、類似アクセスファイル群管理テーブル８４００に出力し、同じグループのファイル群をグループ化する（ステップＳ５）。また、各ファイルのアクセス権情報からファイルにアクセス可能なユーザ数をチェックし、所定値以上の場合には、アクセスログ取得可否判定テーブル８６００における当該ファイルをフラグをＯＮに設定するとよい（ステップＳ５ｂ、ステップＳ５ｃ）。なお、ステップＳ６およびステップＳ７は、図２１に示した処理と同一であるので、説明を省略する。
【０１３５】
図３３は、アクセスログのデータ構造を示す図である。アクセスログ８５００は、ユーザ毎にアクセスしたファイルやアクセスによって発生したデータ量を把握するために用いるために取得されたログ情報である。アクセスログ８５００は、管理情報１０１０の一部であり、アクセスしたユーザのユーザ名８５０１と、アクセスしたファイル名８５０２、ファイルサイズ８５０３、Ｉ／Ｏ種別８５０４を含んで構成される。具体的には、ユーザ名がｕｓｅｒ００１の場合、/home/share/a.txtのファイルに、ｒｅａｄ要求がされ、ファイルサイズが２０ＭＢであることがわかる。
【０１３６】
図３４は、アクセスログ取得可否判定テーブルのデータ構造を示す図である。アクセスログ取得可否判定テーブル８６００は、ファイル毎にアクセスログ取得の可否を管理するためのテーブルである。アクセスログ取得可否判定テーブル８６００は、ファイル名８６０１、アクセスログ取得８６０２のフラグを含んで構成される。アクセスログ取得可否判定テーブル８６００にアクセスログ取得の可否判定を設定することにより、アクセスログ８５００によるファイルの特定を限定的に行う。これにより、ファイルの特定時間の低減と特定精度の向上を両立させることができる。
【０１３７】
図３５は、実施形態２に係るファイル共有プログラムの処理フローの全体を示す図である。図３５は、実施形態１の図２５と比較して、太線の破線で示したアクセスログ８５００（図３３参照）およびアクセスログ取得可否判定テーブル８６００（図３４参照）が追加され、Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０Ａ（図３６参照）およびグルーピングプログラム３１３０Ａ（図３７参照）の処理が異なる。同一構成品には同一符号を付しており、説明を省略する。
【０１３８】
Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０Ａは、アクセスログ取得可否判定テーブル８６００を参照して、アクセスログ８５００にユーザのファイルへのアクセス履歴を出力する。グルーピングプログラム３１３０Ａは、類似アクセスユーザ群管理テーブル８２００およびアクセスログ８５００を参照してファイルを特定して類似アクセスファイル群管理テーブル８４００に出力する。Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０Ａおよびグルーピングプログラム３１３０Ａは、図３６、図３７を参照して詳細に説明する。
【０１３９】
図３６は、実施形態２に係るＲｅａｄ／ｗｒｉｔｅ要求受付プログラムの処理フローを示す図である。Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０Ａは、図２７に示したＲｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０と比較して、ステップＳ２７２２およびステップＳ２７３２、ステップＳ２７２３およびステップＳ２７３３、ステップＳ２７２４およびステップＳ２７３４、ステップＳ２７２５およびステップＳ２７３５が追加されている。同一処理については同一符号を付しており、説明は省略する。
【０１４０】
Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０Ａは、Ｏｐｅｎ処理を実行後（ステップＳ２７１２）、アクセスログ取得可否判定テーブル８６００を参照して、ユーザがアクセスしたファイルについてアクセスログを取得するか否か（アクセスログ取得可否）を判定し（ステップＳ２７２２）、アクセスログを取得する場合（Ｓ２７２２，Ｙｅｓ）、アクセスログ８５００に、ユーザ名およびファイル名毎にエントリを作成し（ステップＳ２７３２）、ステップＳ２７０６に進み、一方、アクセスログを取得しない場合（Ｓ２７２２，Ｎｏ）、ステップＳ２７０６に進む。
【０１４１】
なお、エントリとは、ログ内容が確定するまで（Ｏｐｅｎ処理からＣｌｏｓｅ処理間）、一時的にメモリ１００８上に格納する領域であり、格納内容は、ユーザ名、ファイル名、累計ファイルアクセス量の組で１エントリを構成する。
【０１４２】
Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０Ａは、Ｃｌｏｓｅ処理を実行後（ステップＳ２７１３）、アクセスログ取得可否判定テーブル８６００を参照して、ユーザがアクセスしたファイルについてアクセスログを取得するか否かを判定し（ステップＳ２７２３）、アクセスログを取得する場合（Ｓ２７２３，Ｙｅｓ）、ユーザ名およびファイル名に該当するエントリ内容をアクセスログ８５００に記録し（ステップＳ２７３３）、ステップＳ２７０６に進み、一方、アクセスログを取得しない場合（Ｓ２７２３，Ｎｏ）、ステップＳ２７０６に進む。
【０１４３】
Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０Ａは、Ｗｒｉｔｅ処理を実行後（ステップＳ２７１４）、アクセスログ取得可否判定テーブル８６００を参照して、ユーザがアクセスしたファイルについてアクセスログを取得するか否かを判定し（ステップＳ２７２４）、アクセスログを取得する場合（Ｓ２７２４，Ｙｅｓ）、エントリに対してＩ／Ｏデータ量を加算し（ステップＳ２７３４）、ステップＳ２７０６に進み、一方、アクセスログを取得しない場合（Ｓ２７２４，Ｎｏ）、ステップＳ２７０６に進む。
【０１４４】
Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム３１２０Ａは、Ｒｅａｄ処理を実行後（ステップＳ２７１５）、アクセスログ取得可否判定テーブル８６００を参照して、ユーザがアクセスしたファイルについてアクセスログを取得するか否かを判定し（ステップＳ２７２５）、アクセスログを取得する場合（Ｓ２７２５，Ｙｅｓ）、エントリに対してＩ／Ｏデータ量を加算し（ステップＳ２７３５）、ステップＳ２７０６に進み、一方、アクセスログを取得しない場合（Ｓ２７２５，Ｎｏ）、ステップＳ２７０６に進む。
【０１４５】
図３７は、実施形態２に係るグルーピングプログラムの処理フローを示す図である。グルーピングプログラム３１３０Ａは、図２８に示したグルーピングプログラム３１３０と比較して、ステップＳ２８３１からステップＳ２８３４が追加されている。また、ステップＳ２８１０ＡおよびステップＳ２８２３Ａは、図２８に示したステップＳ２８１０およびステップＳ２８２３と一部分の処理が異なる。他の同一処理については同一符号を付しており、説明は省略する。
【０１４６】
グルーピングプログラム３１３０Ａは、ステップＳ２８０８後、類似アクセスユーザ群管理テーブル８２００およびアクセスログ８５００に登録されているユーザ名からアクセス可能ファイルを検索し、検索結果を類似アクセスファイル群管理テーブル８４００へ出力し（ステップＳ２８０９Ａ）、ステップＳ２８３１に進む。
【０１４７】
グルーピングプログラム３１３０Ａは、検索（抽出）したファイルのアクセス可能なユーザ数を取得し（ステップＳ２８３１）、ユーザ数が設定された上限値よりも多いか否かを判定する（ステップＳ２８３２）。グルーピングプログラム３１３０Ａは、ユーザ数が上限値よりも多い場合（ステップＳ２８３２，Ｙｅｓ）、アクセスログ取得可否判定テーブル８６００に新たにファイルを登録し、アクセスログ取得８６０２のフラグをＯＮに設定して（ステップＳ２８３４）、ステップＳ２８１０に進み、一方、ユーザ数が上限値以下の場合（ステップＳ２８３２，Ｎｏ）、アクセスログ取得可否判定テーブル８６００に当該ファイルが登録されていれば、アクセスログ取得８６０２のフラグをＯＦＦに設定し（ステップＳ２８３３）、ステップＳ２８１０に進む。
【０１４８】
また、グルーピングプログラム３１３０Ａは、ステップＳ２８２２後、ファイルシステムのアクセス権情報およびアクセスログ８５００と抽出したユーザを照合し、アクセス可能なファイルを抽出し（ステップＳ２８２３Ａ）、そして、ステップＳ２８２４を経由してステップＳ２８３１に進む。
【０１４９】
実施形態２では、アクセスログ取得可否判定テーブル８６００にアクセスログ取得の可否判定を設定することにより、アクセスログ８５００によるファイルの特定を限定的に行うことができ、アクセスログ情報が膨大になり、ファイルの特定に時間がかかることを防止することができる。
【０１５０】
実施形態２において、図３７にステップＳ２８０９Ａにおいて、類似アクセスユーザ群管理テーブル８２００およびアクセスログ８５００に登録されているユーザ名からアクセス可能ファイルを検索し、検索結果を類似アクセスファイル群管理テーブル８４００へ出力しているが、これに限定されるものではない。例えば、図３３に示すアクセスログ８５００のファイルサイズ８５０３の大きいファイル（対象物）の動作パターンを把握して、類似したファイルを類似アクセスファイル群管理テーブルに出力するとよい。これにより、ファイルアクセスの動作パターンは、累積ファイルサイズ、ファイルアクセス回数などがある。なお、対象物のグループ化方法の詳細について、図３８から図４０を参照して説明する。
【０１５１】
次にグループ化方法の詳細について説明する。
図２２において、対象物であるユーザの接続時間に基づいてグループ化する方法について説明した。ここでは、対象物（例えば、ユーザ、ファイル）を類似する動作パターン（ユーザがＮＡＳ１００１に接続している時間、または、ファイルがアクセスされている時間）でグループ化する方法について具体的に説明する。
【０１５２】
図３８は、対象物の動作パターンの事例を示す図である。前提条件として、５つの対象物（対象物Ａ、対象物Ｂ、対象物Ｃ、対象物Ｄ、対象物５）があり、夫々の動作パターンがわかっているものとする。具体的には、対象物Ａは、０時から２時、６時から１２時、１９時から２２時に動作する。
【０１５３】
図３９は、対象物の動作時間のビットマップを示す図である。図３９（ａ）は、時間の解像度（例えば、１時間，３０分）を決め、図３８に示す各対象物の動作パターンをビットマップ化した図を示す。解像度が１時間の場合、１対象物あたりのビットマップサイズは、２４ビットとなる。ビットマップ化する際、解像度の半分の時間より大きい場合は切り上げ、半分以下の場合は切り下げる（例えば、解像度１時間の場合は、５時４５分〜１３時５分→６時〜１３時）。ここでは、対象物Ａから対象物Ｅのビットマップを、解像度を１時間としてを示した。
【０１５４】
図３９（ａ）のビットマップを使用して、対象物のグループ化した結果が、図３９（ｂ）に示す。具体的には、対象物Ａから対象物ＥのビットマップをＸＯＲ演算し、演算結果が０の場合は、一致すると判断する。なお、解像度が５分、１０分などのように微細化した場合、不一致のビット数の上限を決めて、上限以下の場合は、一致すると判断してもよい。対象物Ａと対象物Ｂから対象物ＥとでＸＯＲをとると、結果は、０以外、０、０以外、０以外となり、対象物Ａと対象物Ｃがグループとして判断される。また、残りの対象物Ｂ、対象物Ｄ、対象物Ｅについて同様にＸＯＲを取ると、すべて０となり、対象物Ｂ、対象物Ｄ，対象物Ｅがグループとして判断される。
【０１５５】
グループ化で得られたグループをＧｒｏｕｐ１（Ａ，Ｃ）、Ｇｒｏｕｐ２（Ｂ，Ｄ，Ｅ）とすると、各グループに相当するビットマップを求める。これは、グループに属する対象物のビットマップをＯＲ演算すれば得られる。なお、以後、新たな対象物（ユーザやファイル）が増えた場合は、対象物のビットマップとグループのビットマップをXOR演算し、一致したグループへ対象物を振り分ければよい。
【０１５６】
図４０は、対象物の動作時間の他のビットマップを示す図である。図４０には、対象物が６つの場合であり、図３９（ａ）と比較して、対象物Ｆが追加されている。常時稼動している対象物Ｆが含まれると、対象物Ａから対象物Ｅの動作パターンは、すべて対象物Ｆの動作パターンに集約されてしまう場合がある。これを回避するには、２４時間のうち、上限値を決め、例えば、７５％（１８時間）以上動作しているものをフィルタリングした上で、図３９と同様の処理を実行すればよい。フィルタリングによって取り除いた対象物の動作パターンは、常時稼動である特別なグループを作成し、そこで管理することが好ましい。
【０１５７】
なお、本発明を実施するための形態は、これに限定されるものでなく、その形態の実施形式を種々変形することが可能である。
【０１５８】
例えば、スピンダウンするＲＡＩＤグループを選ぶときには、ハードディスクの性能を考慮してもよい。ハードディスクの性能としては、例えば、使用するＣＰＵの周波数やディスクの種類、容量、信頼性があげられる。これは、実施形態１および実施形態２に共通する。
【０１５９】
また、本実施形態では、ファイルシステムを階層化しており、既に説明したとおり、スタブを使用した場合と比べて、ファイルの移行先の選択幅が広がるのであるが、移行先としては、そのファイルがよくアクセスされるのであれば、階層が上位にある実ファイルシステム（例えば、ＦＳ１（１０１５ａ）（図１参照））を作成する高速ボリュームを有するＲＡＩＤグループとするのがよいし、そのファイルがあまりアクセスされないのであれば、階層が下位にある実ファイルシステム（例えば、ＦＳ３（１０１５ｃ）（図１参照））を作成する低速ボリュームを有するＲＡＩＤグループとするのがよい。つまり、ファイルシステムの階層性を、ファイルの移行先を選択するための基準とするとよい。
【０１６０】
その他、ハードウェア、ソフトウェア、各テーブル、各フローチャートなどの具体的な構成について、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【０１６１】
１００１    ＮＡＳ（ファイルサーバ）
１００２    ＣＰＵ（処理部）
１００５    管理コマンド
１００６    階層管理ファイルシステムプログラム
１００７    実ファイルシステムプログラム
１００８    メモリ（記憶部）
１００９    オペレーティングシステム
１０１０    管理情報
１０１１    ディスク制御装置
１０１２    ＬＵ
１０１４    ＲＡＩＤサブシステム（記憶装置）
１０１５    ＦＳ
１０１７    ＦＳＭファイルシステム
１０２０    管理端末
１０３０    クライアント
１０３１    ファイルアクセス要求プログラム
３０００    ＶＦＳプログラム
３１００    ファイル共有プログラム
３１１０    接続要求受付プログラム
３１２０    Ｒｅａｄ／ｗｒｉｔｅ要求受付プログラム
３１３０    グルーピングプログラム
３１４０    データ移行プログラム
３１５０    スピンアップ／ダウン要求プログラム
４０００    階層管理テーブル
５０００    階層データリスト
６０００    マッピングテーブル（マッピング情報）
８１００    接続履歴テーブル（接続履歴情報）
８２００    類似アクセスユーザ群管理テーブル（類似アクセスユーザ群管理情報）
８３００    非接続時間帯管理テーブル（非接続時間帯管理情報）
８４００    類似アクセスファイル群管理テーブル（類似アクセスファイル群管理情報）
【図１】
2010186235.tif 000003
【図２】
2010186235.tif 000004
【図３】
2010186235.tif 000005
【図４】
2010186235.tif 000006
【図５】
2010186235.tif 000007
【図６】
2010186235.tif 000008
【図７】
2010186235.tif 000009
【図８】
2010186235.tif 000010
【図９】
2010186235.tif 000011
【図１０】
2010186235.tif 000012
【図１１】
2010186235.tif 000013
【図１２】
2010186235.tif 000014
【図１３】
2010186235.tif 000015
【図１４】
2010186235.tif 000016
【図１５】
2010186235.tif 000017
【図１６】
2010186235.tif 000018
【図１７】
2010186235.tif 000019
【図１８】
2010186235.tif 000020
【図１９】
2010186235.tif 000021
【図２０】
2010186235.tif 000022
【図２１】
2010186235.tif 000023
【図２２】
2010186235.tif 000024
【図２３】
2010186235.tif 000025
【図２４】
2010186235.tif 000026
【図２５】
2010186235.tif 000027
【図２６】
2010186235.tif 000028
【図２７】
2010186235.tif 000029
【図２８】
2010186235.tif 000030
【図２９】
2010186235.tif 000031
【図３０】
2010186235.tif 000032
【図３１】
2010186235.tif 000033
【図３２】
2010186235.tif 000034
【図３３】
2010186235.tif 000035
【図３４】
2010186235.tif 000036
【図３５】
2010186235.tif 000037
【図３６】
2010186235.tif 000038
【図３７】
2010186235.tif 000039
【図３８】
2010186235.tif 000040
【図３９】
2010186235.tif 000041
【図４０】
2010186235.tif 000042