(57)【要約】【課題】一つのファイルを複数のLUに跨らないように格納することをユーザのユーザビリティを損なうことなく実現する。【解決手段】ファイル格納制御装置（例えばＮＡＳ）が、ストレージシステムから提供される複数の論理的な記憶ユニット（ＬＵ）を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供する記憶空間提供部と、前記提供した記憶空間へのファイルのライト要求を前記上位装置から受信する受信部と、前記ライト要求で指定されている記憶空間に関連付けられている前記複数のＬＵの中からＬＵを選択し、選択したＬＵに、前記ライト要求に従う前記ファイルを構成する全データを格納する格納制御部とを備える。【選択図】図４
2008033517.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と下位のストレージシステムとに接続され、前記上位装置からファイルのライト要求やリード要求を受信するファイル格納制御装置において、
前記ストレージシステムから提供される複数の論理的な記憶ユニット（ＬＵ）を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供する記憶空間提供部と、
前記提供した記憶空間へのファイルのライト要求を前記上位装置から受信する受信部と、
前記ライト要求で指定されている記憶空間に関連付けられている前記複数のＬＵの中からＬＵを選択し、選択したＬＵに、前記ライト要求に従う前記ファイルを構成する全データを格納する格納制御部と
を備えるファイル格納制御装置。
【請求項２】
どんなファイル特性のファイルをどんなＬＵ特性のＬＵに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部を更に備え、
前記格納制御部は、前記ファイルのファイル特性に合致するＬＵ特性を前記ポリシーから特定し、前記特定したＬＵ特性のＬＵを選択する、
請求項１記載のファイル格納制御装置。
【請求項３】
前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張ＬＵを提供し、該自動容量拡張ＬＵに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張ＬＵに割り当て、
前記複数のＬＵには、前記自動容量拡張ＬＵが含まれ、
前記格納制御部は、前記ファイルが、前記複数のＬＵに存在しない新規のファイルであれば、前記自動容量拡張ＬＵを選択する、
請求項１記載のファイル格納制御装置。
【請求項４】
前記格納制御部は、前記複数のＬＵに格納されている各ファイルのファイル特性をチェックし、該ファイルのファイル特性に合致する第一のＬＵ特性を特定し、該ファイルが、前記特定した第一のＬＵ特性の第一のＬＵとは別の第二のＬＵ特性の第二のＬＵに存在するならば、該ファイルを、前記第二のＬＵから前記第一のＬＵに移行させる、
請求項１記載のファイル格納制御装置。
【請求項５】
前記複数のＬＵには、高性能ＬＵと、該高性能ＬＵに比して性能の低い低性能ＬＵとが含まれ、
前記ファイル格納制御装置は、ファイルへのアクセスの頻度を各ファイル別に管理するアクセス頻度管理部を更に備え、
前記格納制御部は、アクセス頻度の高いファイルを前記高性能ＬＵに移行し、アクセス頻度の低いファイルを前記低性能ＬＵに移行させる、
請求項４記載のファイル格納制御装置。
【請求項６】
前記高性能ＬＵとは、前記ストレージシステムが備える記憶装置から用意されたＬＵである内部ＬＵであり、前記低性能ＬＵとは、前記ストレージシステムに接続された外部ストレージシステムの記憶資源にマッピングされた仮想的なＬＵである外部接続ＬＵである、
請求項５記載のファイル格納制御装置。
【請求項７】
前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張ＬＵを提供し、該自動容量拡張ＬＵに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張ＬＵに割り当て、
前記複数のＬＵには、前記自動容量拡張ＬＵが含まれ、
前記ファイル格納制御装置は、更新によって単位時間当たりに増加したファイルサイズである平均増加サイズを各ファイル別に管理するファイルサイズ管理部を更に備え、
前記格納制御部は、平均増加サイズが所定値以上のファイルを、前記自動容量拡張ＬＵに移行させる、
請求項４記載のファイル格納制御装置。
【請求項８】
前記格納制御部は、前記複数のＬＵに格納されている複数のファイルの中から、ＷＯＲＭ（Write Once Read Many）のファイルを特定し、前記特定したＷＯＲＭファイルを、前記複数のＬＵのうちのＷＯＲＭ用のＬＵに移行させる、
請求項４記載のファイル格納制御装置。
【請求項９】
前記格納制御部は、ファイル単位で保存期限が設定される場合、該保存期限を有するファイルを、前記ＷＯＲＭ用のＬＵに移行させ、該移行先のファイルにＷＯＲＭ属性及び該保存期限を設定し、二以上のファイルに同一の保存期限が設定される場合、前記複数のＬＵの中から、該二以上のファイルの総ファイルサイズ以上の記憶容量を有するＬＵを確保し、該確保したＬＵに、該二以上のファイルを移行させて、該確保したＬＵに、ＷＯＲＭ属性及び該保存期限を設定させる、
請求項８記載のファイル格納制御装置。
【請求項１０】
前記記憶空間のアドレスと前記複数のＬＵに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部を更に備え、
前記格納制御部は、前記アドレスマップを参照することにより、前記選択したＬＵに前記ファイルの全データを格納する、
請求項１記載のファイル格納制御装置。
【請求項１１】
どんなファイル特性のファイルをどんなＬＵ特性のＬＵに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部と、
前記記憶空間のアドレスと前記複数のＬＵに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部と
を更に備え、
前記格納制御部は、前記アドレスマップを参照することにより、前記選択したＬＵに前記ファイルの全データを格納し、その後、前記複数のＬＵに格納されている各ファイルのファイル特性をチェックし、該チェックされたファイル特性に合致する第一のＬＵ特性を前記ポリシーから特定し、該ファイルが、前記特定した第一のＬＵ特性の第一のＬＵとは別の第二のＬＵ特性の第二のＬＵに存在するならば、該ファイルを、前記第二のＬＵから前記第一のＬＵに移行させ、その際、前記アドレスマップを参照し、該ファイルを構成する全データを前記第一のＬＵに格納するよう制御する、
請求項１記載のファイル格納制御装置。
【請求項１２】
ストレージシステムから提供される複数の論理的な記憶ユニット（ＬＵ）を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供し、
前記提供した記憶空間へのファイルのライト要求を前記上位装置から受け付け、
前記ライト要求で指定されている記憶空間に関連付けられている前記複数のＬＵの中からＬＵを選択し、
該選択したＬＵに、前記ライト要求に従う前記ファイルを構成する全データを格納する、ファイル格納制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子的なファイルの記憶技術に関する。
【背景技術】
【０００２】
NAS（Network Attached Storage）は、クライアントコンピュータ（以下、クライアント）に対して、ファイル共有機能を提供する。クライアントがNASにアクセスするために使用される通信プロトコルとして、NFS（Network File System）やCIFS（Common Internet File System）などがある。
【０００３】
クライアントから送信されたファイルは、NASのファイルシステムに格納される。ファイルシステムは、一般に、論理ボリューム上に構築されるが、この論理ボリュームとしては、LVM（論理ボリュームマネージャ）によって作成された論理ボリュームが使用される。
【０００４】
LVMは、複数のLU（論理ユニット）をまとめて1つのVG（ボリュームグループ）を作成し、そのVGからLV（論理ボリューム）として複数個切り出すことができる機能を有したコンピュータプログラムである。通常、予め見積もったサイズの連続領域をパーティションとして切り出して第一のファイルシステムを構築した後、容量の変更のためには、別途第二のファイルシステムを作成し、第一のファイルシステムから第二のファイルシステムにデータをコピーするのが一般的である。しかし、LVMを使用することで、連続領域を意識せずに、複数のLUをまとめて１つのファイルシステムを作成でき、また、LUを追加することでファイルシステムを拡張することができるなど、ボリューム管理が柔軟になる。
【０００５】
図１に、ファイルシステムと論理ボリュームとの関係性の一例を示す。
【０００６】
斜線のボリュームは、GUI画面（例えば、クライアントに提供される画面）から見える要素を表し、白抜きのボリュームはGUI画面から見えないがCLI（例えば、管理端末に提供される画面）からみえるボリュームを表す。図１において、2重線より下のレイヤは、NASに接続されたストレージシステム８０９で管理されるボリュームを示し、2重線より上のレイヤは、NAS８０１で管理されるボリュームを示す。
【０００７】
ストレージシステム８０９には、例えば、複数のPDEV（物理デバイス）と複数のLU（論理ユニット）とがある。一つのPDEVは、ストレージシステム８０９が備える一以上の記憶装置により提供される記憶領域により構築される。一つのLUは、一つのPDEV、或いは、複数のPDEVが一つにされたもの（便宜上「LUSE（Logical Unit Size Extension）」と称する）により構築される。
【０００８】
NAS８０１は、ファイル共有プログラム８０３、ファイルシステム（FS）プログラム８０５及びLVM８０７を備える。LVM８０７では、例えば、SCSI device、PV（物理ボリューム）、VG（ボリュームグループ）及びLV（論理ボリューム）が管理されている。一つのSCSI deviceは、NASで認識された一つのLUである。PVは、特定のデバイス（例えば、LU、ハードディスクドライブなど）に対しディスクイメージの先頭にLVM用の領域（VGDA（Volume Group Descriptor Array））を確保することにより作成される。VGDAは、それが属するVG名や、そのVGを構成する全PV、或いは、切り出された全LVに関する情報を保持することができる。VGは、複数のPVにより構築される。LVは、VGから切り出すことで作成される仮想的なデバイスで、通常の物理ディスクと同様に利用することができる。このLV上に、FS８０５が構築される。
【０００９】
ちなみに、複数の物理的なボリュームを合成して一つの論理ボリュームとして提供する技術が開示された文献として、特開2006-127143号公報がある。
【００１０】
【特許文献１】特開2006-127143号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
一般に、LVMは、複数のLUをまとめて１つのファイルシステムとして見せることを主目的としている。このため、ファイルシステムプログラムでは、ファイルシステムへのファイルの格納に際して、LUの区別を意識していない。その結果、図２に例示するように、ファイルに割り当たるブロックが、複数のLUに跨るケースが生じることがある。具体的には、例えば、第一のLU９１１Ａに、一つのファイル９０１を構成する第一のブロックデータ９０３が格納され、第二のLU９１１Ｂに、そのファイル９０１を構成する第二のブロックデータ９０５が格納されてしまうことがある。この場合、LU単位でのデータ移行或いはデータコピーを行うと、移行先或いはコピー先のLUで、一つのファイルを構成するブロックデータが欠けてしまう。具体的には、例えば、第二のＬＵ９１１Ｂを図示しない第三のＬＵに移行或いはコピーしても、移行先或いはコピー先の第三のＬＵには、ファイル９０１の第一のブロックデータ９０３が存在しないので、その第三のＬＵからは、ファイル９０１を得ることができない。
【００１２】
これを防ぐためには、一つのLU毎に一つのファイルシステムを構築する方法が考えられるが、そうすると、ユーザは、LU毎にファイルシステムを区別する必要がでるので、ユーザのユーザビリティが損なわれてしまう。
【００１３】
従って、本発明の目的は、一つのファイルを複数のLUに跨らないように格納することをユーザのユーザビリティを損なうことなく実現することにある。
【００１４】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本発明に従うファイル格納制御装置は、前記ストレージシステムから提供される複数の論理的な記憶ユニット（ＬＵ）を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供する記憶空間提供部と、前記提供した記憶空間へのファイルのライト要求を前記上位装置から受信する受信部と、前記ライト要求で指定されている記憶空間に関連付けられている前記複数のＬＵの中からＬＵを選択し、選択したＬＵに、前記ライト要求に従う前記ファイルを構成する全データを格納する格納制御部とを備える。このファイル格納制御装置は、前記上位装置及び前記ストレージシステムの両方から離れた場所に存在する装置であっても良いし、前記ストレージシステムに搭載された装置であっても良い。
【００１６】
第一の実施態様では、どんなファイル特性のファイルをどんなＬＵ特性のＬＵに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部が更に備えられる。前記格納制御部は、前記ファイルのファイル特性に合致するＬＵ特性を前記ポリシーから特定し、前記特定したＬＵ特性のＬＵを選択する。
【００１７】
第二の実施態様では、前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張ＬＵを提供し、該自動容量拡張ＬＵに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張ＬＵに割り当てる。前記複数のＬＵには、前記自動容量拡張ＬＵが含まれる。前記格納制御部は、前記ファイルが、前記複数のＬＵに存在しない新規のファイルであれば、前記自動容量拡張ＬＵを選択する。
【００１８】
第三の実施態様では、前記格納制御部は、前記複数のＬＵに格納されている各ファイルのファイル特性をチェックし、該ファイルのファイル特性に合致する第一のＬＵ特性を特定し、該ファイルが、前記特定した第一のＬＵ特性の第一のＬＵとは別の第二のＬＵ特性の第二のＬＵに存在するならば、該ファイルを、前記第二のＬＵから前記第一のＬＵに移行させる。
【００１９】
第四の実施態様では、前記第三の実施態様において、前記複数のＬＵには、高性能ＬＵと、該高性能ＬＵに比して性能の低い低性能ＬＵとが含まれる。前記ファイル格納制御装置は、ファイルへのアクセスの頻度を各ファイル別に管理するアクセス頻度管理部を更に備える。前記格納制御部は、アクセス頻度の高いファイルを前記高性能ＬＵに移行し、アクセス頻度の低いファイルを前記低性能ＬＵに移行させる。
【００２０】
第五の実施態様では、前記第四の実施態様において、前記高性能ＬＵとは、前記ストレージシステムが備える記憶装置から用意されたＬＵである内部ＬＵであり、前記低性能ＬＵとは、前記ストレージシステムに接続された外部ストレージシステムの記憶資源にマッピングされた仮想的なＬＵである外部接続ＬＵである。
【００２１】
第六の実施態様では、前記第三の実施態様において、前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張ＬＵを提供し、該自動容量拡張ＬＵに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張ＬＵに割り当てる。前記複数のＬＵには、前記自動容量拡張ＬＵが含まれる。前記ファイル格納制御装置は、更新によって単位時間当たりに増加したファイルサイズである平均増加サイズを各ファイル別に管理するファイルサイズ管理部を更に備える。前記格納制御部は、平均増加サイズが所定値以上のファイルを、前記自動容量拡張ＬＵに移行させる。
【００２２】
第七の実施態様では、前記第三の実施態様において、前記格納制御部は、前記複数のＬＵに格納されている複数のファイルの中から、ＷＯＲＭ（Write Once Read Many）のファイルを特定し、前記特定したＷＯＲＭファイルを、前記複数のＬＵのうちのＷＯＲＭ用のＬＵに移行させる。
【００２３】
第八の実施態様では、前記第七の実施態様において、前記格納制御部は、ファイル単位で保存期限が設定される場合、該保存期限を有するファイルを、前記ＷＯＲＭ用のＬＵに移行させ、該移行先のファイルにＷＯＲＭ属性及び該保存期限を設定し、二以上のファイルに同一の保存期限が設定される場合、前記複数のＬＵの中から、該二以上のファイルの総ファイルサイズ以上の記憶容量を有するＬＵを確保し、該確保したＬＵに、該二以上のファイルを移行させて、該確保したＬＵに、ＷＯＲＭ属性及び該保存期限を設定させる。
【００２４】
第九の実施態様では、前記記憶空間のアドレスと前記複数のＬＵに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部が更に備えられる。前記格納制御部は、前記アドレスマップを参照することにより、前記選択したＬＵに前記ファイルの全データを格納する。
【００２５】
第十の実施態様では、どんなファイル特性のファイルをどんなＬＵ特性のＬＵに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部と、前記記憶空間のアドレスと前記複数のＬＵに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部とが更に備えられる。前記格納制御部は、前記アドレスマップを参照することにより、前記選択したＬＵに前記ファイルの全データを格納し、その後、前記複数のＬＵに格納されている各ファイルのファイル特性をチェックし、該チェックされたファイル特性に合致する第一のＬＵ特性を前記ポリシーから特定し、該ファイルが、前記特定した第一のＬＵ特性の第一のＬＵとは別の第二のＬＵ特性の第二のＬＵに存在するならば、該ファイルを、前記第二のＬＵから前記第一のＬＵに移行させ、その際、前記アドレスマップを参照し、該ファイルを構成する全データを前記第一のＬＵに格納するよう制御する。
【００２６】
上述したファイル格納制御装置が備える記憶部は、例えば、メモリなどの記憶資源により構築することができる。また、他の各部は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【発明の効果】
【００２７】
本発明によれば、一つのファイルを複数のLUに跨らないように格納することをユーザのユーザビリティを損なうことなく実現することができる。
【発明を実施するための最良の形態】
【００２８】
図３は、本発明の一実施形態に係るシステムの物理的な構成の一例の概要を示す。
【００２９】
第一の通信ネットワーク２に、複数のクライアントコンピュータ（以下、クライアント）７、７、…と、ＮＡＳ５とが接続されている。また、第二の通信ネットワーク６に、ＮＡＳ５と、ストレージシステム９Ａと、外部ストレージシステム９Ｂとが接続されている。各通信ネットワーク２、６は、種々のネットワークを採用することができる。以下、第一の通信ネットワーク２をＬＡＮ（Local Area Network）とし、第二の通信ネットワーク６をＳＡＮ（Storage Area Network）とする。ＮＡＳ５とストレージシステム９Ａは、通信ネットワークに代えて専用線で接続されても良い。ストレージシステム９Ａと外部ストレージシステム９Ｂも専用線で接続されても良い。
【００３０】
ＮＡＳ５は、一種の計算機、例えば、ファイルサーバとして機能する計算機である。ＮＡＳ５は、クライアント７から指定されたファイルをストレージシステム９ＡのＬＵに格納する、或いは、クライアント７から指定されたファイルをそのＬＵから読み出してクライアント７に送信する。具体的には、ＮＡＳ５は、クライアント７からＬＡＮ２を介してファイルレベルのI/Oコマンド（ライトコマンド又はリードコマンド）を受信し、それを、ブロックレベルのI/Oコマンドに変換し、該ブロックレベルのI/Oコマンドを、ＳＡＮ６を介してストレージシステム９Ａに送信する。ＮＡＳ５は、ストレージシステム９Ａに搭載されているいわゆるＥ−ＮＡＳ（Embedded-NAS）であっても良いし、ストレージシステム９Ａから離れた場所に存在するいわゆるＧ−ＮＡＳ（Generic-NAS）であっても良い。ＮＡＳ５は、例えば、ＣＰＵ（Central Processing
Unit）２０５や記憶資源２０７等のハードウェア資源を備える。記憶資源２０７は、一種類以上の記憶装置（例えばメモリ、ハードディスク）により構成することができる。
【００３１】
ストレージシステム９Ａは、制御部２１と、複数のディスク型記憶装置（例えばＨＤＤ）３０９とを備える。ディスク型記憶装置３０９に代えて又は加えて、他種の記憶装置（例えばフラッシュメモリ）が採用されても良い。制御部２１は、ストレージシステム９Ａの動作を制御する。制御部２１は、ＮＡＳ５からブロックレベルのライトコマンドを受け、そのライトコマンドに従って、データをディスク型記憶装置３０９に書いたり、ＮＡＳ５からブロックレベルのリードコマンドを受け、そのリードコマンドに従って、ディスク型記憶装置３０９からデータを読出しＮＡＳ５に送信したりすることができる。制御部２１には、例えば、複数のチャネルアダプタ（以下、ＣＨＡ）、複数のディスクアダプタ（以下、ＤＫＡ）３０５、キャッシュメモリ３０８、制御メモリ３０７、及びスイッチ（以下、ＳＷ）３１０が備えられる。
【００３２】
複数のＣＨＡ３０３の各々は、ＮＡＳ５との間の通信を制御する。各ＣＨＡ３０３は、例えば、ＣＰＵやメモリを備える回路基盤である。第一のＣＨＡ３０３は、ＮＡＳ５からのデータをキャッシュメモリ３０８に書込んだり、ＤＫＡ３０５によって書かれたデータをキャッシュメモリ３０８から読み出してＮＡＳ５に送信したりすることができる。第二のＣＨＡ３０３は、第一のＣＨＡ３０３が受けたI/Oコマンドが、外部ストレージシステム９ＡＢのＬＵ（以下、外部ＬＵ）にマッピングされたＬＵが指定されている場合に、その外部ＬＵを指定したI/Oコマンドを外部ストレージシステム９ＡＢに送信することができる。
【００３３】
ＤＫＡ３０５は、ディスク型記憶装置３０９との間の通信を制御する。ＤＫＡ３０５は、ディスク型記憶装置３０９からのデータをキャッシュメモリ３０８に書込んだり、ＣＨＡ３０３によって書かれたデータをキャッシュメモリ３０８から読み出してディスク型記憶装置３０９に書込んだりすることができる。ＤＫＡ３０５には、実質的に、ＣＨＡ３０３と同様のハードウェア構成を採用することができる。
【００３４】
キャッシュメモリ３０８は、ＮＡＳ５とディスク型記憶装置３０９との間でやり取りされるデータを記憶することができる。制御メモリ３０７は、ストレージシステム９Ａの制御を行うために必要な情報（例えば、どのディスク型記憶装置３０９によりどのＬＵが提供されているかを表すＬＵ管理情報）を記憶することができる。
【００３５】
ＳＷ３１０は、ＣＨＡ３０３、キャッシュメモリ３０８、制御メモリ３０７及びＤＫＡ３０５の間の接続を切り替えることができる。
【００３６】
外部ストレージシステム９Ｂは、ストレージシステム９の補助的なストレージシステムである。外部ストレージシステム９Ｂには、例えば、SATA（Serial ATA）などのディスク型記憶装置を搭載した比較安価なストレージシステムを利用することが可能である。外部ストレージシステム９Ｂｈａ，ストレージシステム９と同様の構成とすることができる。或いは、例えば、ストレージシステム９及び外部ストレージシステム９Ｂのうちの少なくとも一方の構成は、上記の構成に限らず、例えば、制御部２１は、一又は複数のＣＰＵと、キャッシュメモリ３０８としての領域及び／又は制御メモリ３０７としての領域を有する一又は複数のメモリとを備えた回路基板であっても良い。
【００３７】
図４は、本実施形態の概要の説明図である。
【００３８】
ＮＡＳ５には、ファイル共有プログラム２５１と、ファイルシステムプログラム２５３と、デバイスドライバ２５５とを備える。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するＣＰＵによって処理が行われるものとする。
【００３９】
ファイル共有プログラム２５１は、クライアント７にファイル共有プロトコル（例えばNFS或いはCIFS）を提供し、クライアント間でのファイル共有機能を提供するコンピュータプログラムである。ファイル共有プログラム２５１は、クライアント７からファイルレベルのI/Oコマンド（ファイル単位のリクエスト）を受付け、ファイルシステムプログラム２５３に対してファイル単位I/O（read/write）を実行する。
【００４０】
ファイルシステムプログラム２５３は、ファイルシステム２５４を管理するプログラムである。ファイルシステムプログラム２５３は、上位層（例えばファイル共有プログラム２５１）に対して、階層構造化された論理ビュー（ディレクトリ，ファイルなど）を提供し、これらのビューを、物理的なデータ構造（ブロックデータ，ブロックアドレス）へ変換して、下位層（例えばデバイスドライバ２５５）とのブロック単位I/O処理を実行する。データの「読み込み」「書き込み」などの操作を「ファイル」単位で行うために、ファイルシステムプログラム２５３は、記憶装置を抽象化し、データ格納の仲介作業を行う。抽象化の仕組みの基本単位として提供されているのが、例えば、「iノード」である。iノードでの管理形態を図５に例示している。iノードは、それぞれが実際の記憶装置であるディスク情報やブロック情報、位置情報を持っており、このiノードによって記憶装置のジオメトリが一意に識別される（なお、図５におけるdentryとは、ディレクトリエントリの略である）。
【００４１】
デバイスドライバ２５５は、ファイルシステムプログラム２５３から要求されたブロック単位I/Oを実行するプログラムである。デバイスドライバ２５５は、ＮＡＳ５でSCSI Deviceとして認識されたLU（ストレージシステム９内のＬＵ）に対するアクセスを制御する。
【００４２】
本実施形態の大きな特徴の一つは、工夫されたファイルシステムプログラム２５３である。このファイルシステムプログラム２５３は、異なるLU特性を有した複数のLU（厳密には、複数のLUにそれぞれ対応した複数のPV）を一つのファイルシステム２５４にまとめ、そのファイルシステム２５４上の記憶空間（例えばディレクトリ）の論理ビュー（その記憶空間を見せるためのビュー）をユーザに見せる。図４では、LU特性の例として、A用、B用、C用、無しの４種類を示し、記憶空間は、共有ディレクトリを示す。A、B、Cは、それぞれ、ファイル特性を示す。つまり、例えば、特性A用LUとは、ファイル特性Aを有したファイルを格納するためのLUであることを意味する。無しとは、ここでは、A用、B用、C用のいずれにも該当しないことを意味する。
【００４３】
図４の例によれば、ファイルシステム２５４上の共有ディレクトリ/shareの下にfile1、file2、file3が格納される場合で、各ファイルの特性がA,B,Cの場合、file1は、特性A用LUに、file2は、特性B用LUに、file3は、特性C用LUにそれぞれ格納される。各LUには、特性に合致したファイルのメタデータとブロックデータが格納される。メタデータは、ファイルをファイルシステム２５４上で管理する為に必要な情報である。図６に、file1が特性A用LUに格納されている場合の管理形態を示す。ｉノードに従う格納が行われ、メタデータを参照することで、file1を構成するデータを格納するブロックの数や、そのブロックの在り処を特定することができる。特定されるブロックには、参照先のエントリから直接特定されるもの（直接ブロック）もあれば、参照先のエントリから一以上の他のエントリを隔てて特定されるもの（間接ブロック）もある。
【００４４】
このファイルシステムプログラム２５３によれば、ユーザに提供される、記憶空間の論理ビューからは、その記憶空間を有するファイルシステム２５４に、どんな特性を有したLUが属しているかがわからないようになっている。つまり、ユーザは、例えば、その記憶空間にどんな特性を有したLUが属しているかや、格納対象のファイルの特性が何であるかを意識せずに、その一つの記憶空間に所望のファイルを格納する操作を行えば良い。そのように格納しても、次に説明する仕組みにより、一つのファイルが複数のLUに跨ることなく格納され、且つ、そのファイルが、そのファイルの特性に応じたLUに割り振られる。
【００４５】
図７Ａは、ファイルシステム２５４に関連付けられるＬＵ特性の説明図である。図８は、各LU特性の説明図である。
【００４６】
本実施形態では、少なくとも５種類の特性にそれぞれ対応した５つのLU（５つのLUにそれぞれ対応した５つのPV）が、ファイルシステム２５４で一つにまとめられている。なお、これら５つのＬＵが、一つのストレージシステム９Ａに存在しなければならないわけではない。ストレージシステム９Ａが複数台ある場合には、それら複数のストレージシステム９Ａに分かれて存在してもよい。
【００４７】
第一のLUは、AOU（Allocate ON Use）-LU２０１Ａである。AOU-LU２０１Ａとは、NAS５に提供される仮想的なLUである。ストレージシステム９Ａの制御部２１（例えばCHA３０３）が、必要なときに（例えば、そのLUに対するライトコマンドを受けた場合に）、複数のプール領域（例えば、所定サイズの記憶領域）２０３が格納されているプール２０５から未使用のプール領域２０３を割り当てたり、AOU-LU２０１Ａに割り当てられている不要なプール領域２０３を解放したり（プール２０５に戻したり）する。この技術は、自動容量拡張と呼ばれることがある。この技術としては、例えば、特開２００３−１５９１５号公報（ＵＳ特許番号６７２５３２８号、ＵＳ特許番号６８３６８１９号、ＵＳ出願番号１０／９９１４２１号）に開示の技術を援用することができる。
【００４８】
第二のLUは、高性能LU２０１Ｂである。高性能ＬＵ２０１Ｂには、アクセス頻度が高く、高レスポンスが要求されるファイルが格納される。高性能ＬＵ２０１Ｂとは、高速及び／又は高信頼性の物理的な記憶装置から提供されるＬＵであっても良いが、本実施形態では、内部ＬＵを高性能ＬＵとしている。内部ＬＵとは、ストレージシステム９Ａのディスク型記憶装置３０９から提供されるＬＵであり、外部ＬＵがマッピングされていないＬＵである。
【００４９】
第三のLUは、低性能LU２０１Ｃである。低性能ＬＵ２０１Ｃには、ファイルのアクセス頻度が低く、高レスポンスが要求されないファイルが格納される。低性能ＬＵ２０１Ｃとは、低速及び／又は低信頼性の物理的な記憶装置から提供されるＬＵであっても良いが、本実施形態では、外部接続ＬＵを低性能ＬＵとしている。外部接続ＬＵ２０１Ｃとは、ＶＤＥＶ２９６を介して外部ＬＵ２９５がマッピングされた仮想的なＬＵである。外部ＬＵ２９５とは、外部ストレージシステム９Ｂに存在する外部ＬＵである。一以上の外部ＬＵ２９５により、ストレージシステム９Ａに、ＶＤＥＶ（仮想デバイス、具体的には、仮想的な記憶空間）２９６が形成され、ＶＤＥＶ２９６から切り出された論理的な記憶デバイス（ＬＤＥＶ）により、外部接続ＬＵ２０１Ｃが提供される。低性能ＬＵ２０１Ｃに対してＩ／Ｏが発生した場合には、それにマッピングされた外部ＬＵ２９５にＩ／Ｏが発生する。なお、このような外部接続に関する技術として、例えば、特開２００５−１０７６４５号公報（ＵＳ出願番号１０／７６９８０５号、ＵＳ出願番号１１／４７１５５６号）に開示の技術を援用することができる。
【００５０】
第四のLUは、F-WORM-LU２０１Ｄである。Fは、ファイル単位であることを意味する。WORMとは、Write Once Read Manyの略であり、作成後にファイルの更新が発生しないことを意味する。WORMを特性として有するファイルとしては、例えば、公的な文書（例えば契約書）のファイルや、法律で保存期間が規定されている文書ファイルなどを挙げることができる。F-WORM-LU２０１Ｄには、ファイル単位でＷＯＲＭ化されたファイルが格納される。
【００５１】
第五のLUは、V-WORM-LU２０１Eである。Vは、ボリューム単位、換言すれば、LU単位であることを意味する。WORMについては、前述した通りである。V-WORM-LU２０１Eには、ボリューム単位でＷＯＲＭ化されたファイルが格納される。
【００５２】
図７Ｂは、ファイルシステムプログラム２５３が行うファイル格納制御の概要図である。
【００５３】
新規に作成されたファイル（以下、新規作成ファイル）を格納する場合、ファイルシステムプログラム２５３は、ＡＯＵ−ＬＵ２０１Ａに、その新規作成ファイルを格納する。例えば、新規にファイルが作成された場合、ファイルの更新状況に応じて、そのファイルのサイズが増大するため、そのファイルサイズの増大（つまり、必要とする記憶容量の増加）に柔軟に対応できるAOU-LU２０１Ａが好ましいためである。
【００５４】
新規作成ファイルが格納された後、その新規作成ファイルの利用状況により、新規作成ファイルの特性は、“新規作成”から別の特性へと変化する。このため、それに伴い、ファイルシステムプログラム２５３は、そのファイルを適宜移行することにより、そのファイルの格納先が変える。具体的には、例えば、ファイルシステムプログラム２５３は、ファイルのサイズが増えなくなった場合、アクセス頻度に応じて、そのファイルを、高性能ＬＵ２０１Ｂ又は低性能ＬＵ２０１Ｃに移行する。また、例えば、ファイルシステムプログラム２５３は、WORM化の要求が合った時点で、そのファイルを、WORM用のLU２０１Ｄ又は２０１Ｅに移行する。なお、こういった移行が行われたことは、ユーザに提供される論理ビューを見てもわからないようになっており、故に、ユーザは、通常通りファイルにアクセスすることができる。ファイルシステムプログラム２５３は、ファイルの移行を行った場合、そのファイルへのファイルパス名を、移行元のファイルパス名から移行先のファイルパス名に変更することができる。
【００５５】
ファイルシステムプログラム２５３は、複数のＬＵに一つのファイルを跨って格納しないようにし、且つ、そのファイルのファイル特性に応じたＬＵ特性を有するＬＵにファイルを格納することができるが、それを実現するために、例えば、以下に例示するアドレスマップがされている。
【００５６】
図９Ａは、ファイルシステムプログラム２５３で管理されるアドレスマップの一例を示す。図９Ｂは、ファイルシステムプログラム２５３で管理されるＰＶ／ＬＵ管理表の一例を示す。
【００５７】
このアドレスマップ６０１によれば、各論理アドレス（Ｌアドレス）に各物理アドレス（Ｐアドレス）がマッピングされている。論理アドレスとは、例えば、ユーザ側に提供される記憶空間のアドレス番号である。アドレス番号が連続的に並んでいることにより、ユーザには、一つの連続した記憶空間として論理ビューが提供される。一方、物理アドレスとは、例えば、どの識別子のＰＶ（図１参照）のどの場所に相当するかを表すアドレスである。
【００５８】
ＰＶ／ＬＵ管理表６０３では、ＰＶ識別子と、そのＰＶ識別子が割り当てられたＰＶに対応するＬＵのＬＵ特性とが関連付けられている。
【００５９】
ファイルシステムプログラム２５３は、このアドレスマップ６０１とＰＶ／ＬＵ管理表６０３を基に、複数のＬＵに一つのファイルを跨って格納しないようにし、且つ、そのファイルのファイル特性に応じたＬＵ特性を有するＬＵにファイルを格納することができる。なお、どの論理アドレスがどのＬＵに属するかの管理方法としては、これに限らず、他の方法を採用することもできる。
【００６０】
図１０は、ファイルシステムプログラム２５３の機能ブロック図を示す。
【００６１】
ファイルシステムプログラム２５３は、複数のコンピュータプログラムとして、ライト処理部４０１と、リード処理部４０２と、ファイル特性監視／移行処理部４０３と、ファイル単位ＷＯＲＭコマンド処理部４０４と、ボリューム単位ＷＯＲＭコマンド処理部４０５とを備える。
【００６２】
ライト処理部４０１は、ファイルのライトコマンドを受付け、そのファイルが、新規作成されたファイルであれば、そのファイルをAOU-LU２０１Ａに書き込む。また、ライト処理部４０１は、そのファイルが、更新されるファイルであれば、そのファイルのファイル特性をチェックし、そのファイル特性に最適なLU特性を有するＬＵを選択して、そのファイルを、選択されたＬＵに書き込む（但し、書込み先がＷＯＲＭのファイル或いはＬＵである場合には、更新を拒否する）。ライト処理部４０１は、ファイル特性監視／移行処理部４０３のために、メタ情報として、図１１に例示する平均更新間隔と、図１２に例示する平均増加サイズを更新する。平均更新間隔も平均増加サイズも、各ファイル毎に算出される。
【００６３】
ファイルＡの平均更新間隔とは、ファイルＡが平均してどのぐらいの時間間隔で更新されているのかを表す、更新頻度の指標となる情報である。この平均更新間隔は、今回の更新日時と前回の更新日時及び前回の平均更新間隔とを基に算出することができる。具体的には、例えば、更新回数がＮ回目の平均更新間隔は、
更新回数がＮ回目の平均更新間隔＝{（Ｎ−１）回目の平均更新間隔×（Ｎ−２）＋Ｎ回目と（Ｎ−１）回目の更新日時の差分}／（Ｎ−１）
で算出することができる。但し、Ｎ＝０の場合は、ファイルが新規に格納されたことになるので、平均更新時間間隔は無く、Ｎ＝１の場合は、初めて更新されたことになるので、平均時間間隔は、０回目の更新日時と今回の更新日時との差分となる。
【００６４】
ファイルＡの平均増加サイズとは、ファイルＡのファイルサイズが平均してどのぐらい増えているかを表す情報である。平均増加サイズがマイナスとなれば、ファイルサイズが減っていることを意味する。平均増加サイズは、今回の更新後ファイルサイズと、前回の更新後ファイルサイズ及び前回の平均増加サイズとを基に算出することができる。具体的には、例えば、更新回数がＮ回目の平均増加サイズは、
更新回数がＮ回目の平均増加サイズ＝{（Ｎ−１）回目の平均増加サイズ×（Ｎ−２）＋Ｎ回目と（Ｎ−１）回目の更新後ファイルサイズの差分}／（Ｎ−１）
で算出することができる。但し、Ｎ＝０の場合は、ファイルが新規に格納されたことになるので、平均増加サイズは無く、Ｎ＝１の場合は、初めて更新されたことになるので、平均増加サイズは、０回目のファイルサイズと今回の更新後ファイルサイズとの差分となる。
【００６５】
リード処理部４０２は、ファイルのリードコマンドを受付け、各特性毎のLUからファイルを検索し、探し出されたファイルを構成するブロックデータを取得し、取得したブロックデータからファイルを組み立て、そのファイルを、リードコマンドの発行元へ返す。リード処理部４０２は、平均更新間隔と同様の方法で、各ファイル毎の平均リード間隔を算出することができる。
【００６６】
ファイル特性監視／移行処理部４０３は、定期的に、管理者が定義したポリシーに従って各ファイルのファイル特性を照合し、必要に応じて、ファイルをそのファイル特性の合ったＬＵ特性を有するLUへ移動する。ポリシーの具体例を図１３に示す。このポリシー５５１は、ファイルシステムプログラム２５３が保持する電子的なポリシーであり、平均更新間隔（平均ライト間隔）、平均リード間隔及び平均増加サイズのうちの少なくとも一つがどんな条件を満たしたファイルがどんなＬＵに移動するかを表している。このポリシー５５１によれば、平均増加サイズがＸＸＸメガバイトを超えたファイルが、ＡＯＵ−ＬＵ２０１Ａに移動される。また、平均リード間隔がＹＹＹ分を超えた、平均更新間隔がＸＹＺ分を超えた、及び、平均増加サイズがＺＺＺメガバイトを超えた、の少なくとも一つに該当するファイルが、内部ＬＵ２０１Ｂに移動される。なお、ＡＯＵ−ＬＵ２０１Ａの特性を考慮すると、ＺＺＺメガバイトに比してＸＸＸメガバイトが大きい方が好ましいと考えられる。
【００６７】
ファイル単位ＷＯＲＭコマンド処理部４０４は、ファイルのWORM化コマンドを受付けた場合、Ｆ−ＷＯＲＭ−LU２０１Ｄへファイルをコピーし、そのファイルに対して、WORM化属性（例えば、ファイルシステムのメタ情報であり、ＷＯＲＭ化有無や保存日時を表す情報）を設定する。
【００６８】
ボリューム単位ＷＯＲＭコマンド処理部４０５は、大量のファイルを同一の日付でWORM化する場合、ファイル毎にWORM化するのでなく、総ファイルサイズ以上のLUを確保し、確保したLUへ全てのファイルをコピーし、コピー先のLUに対して、WORM化を行う。ボリューム単位ＷＯＲＭコマンド処理部４０５は、コピー元のファイルを、全て削除することができる。
【００６９】
以下、各処理部４０１乃至４０５が行う処理について詳細に説明する。
【００７０】
図１４は、ライト処理部４０１によって行われる処理流れの一例を示す。
【００７１】
ライト処理部４０１は、ファイルのライトコマンドを受信し、そのファイルが、新規作成されたファイルか更新されるファイルであるかを判断する（Ｓ１０１）。これは、例えば、そのファイルのファイル名を有するファイルを管理しているか否かを確認することにより、行うことができる。
【００７２】
ライト処理部４０１は、Ｓ１０１で、新規作成ファイルと判断した場合、その新規作成ファイルを格納するためのブロックをＡＯＵ−ＬＵ２０１Ａから確保する（Ｓ１０２）。ここでは、前述したアドレスマップ６０１やＰＶ／ＬＵ管理表６０３から、ＡＯＵ−ＬＵ２０１Ａに属するブロックを特定できるので、新規作成ファイルを複数のＬＵに跨って格納してしまうことがない。ライト処理部４０１は、確保したブロックに新規作成ファイルを書込み、且つ、前述した平均更新間隔と平均増加サイズとを更新する（Ｓ１０９）。
【００７３】
Ｓ１０１で、更新と判断した場合、ライト処理部４０１は、更新先のファイルがＷＯＲＭ化属性が設定されているファイルであるか否かを判断し、ＷＯＲＭ化属性が設定されているファイルであれば、更新先のファイルを更新することを拒否する（Ｓ１０４）。
【００７４】
そうでなければ、ライト処理部４０１は、更新先のファイルが低性能ＬＵの条件に合致しているかどうかを判断する（Ｓ１０５）。具体的には、更新先のファイルの平均リード間隔、平均更新間隔及び平均増加サイズが、ポリシー５５１に記録されている、外部接続ＬＵの条件に合致しているかどうかを判断する。合致していると判断した場合、ライト処理部４０１は、外部接続ＬＵ２０１Ｃからブロックを確保し（Ｓ１０６）、Ｓ１０９を実行する。なお、ここでのＳ１０９では、外部接続ＬＵ２０１Ｃから確保したブロックに、更新後のファイルを書き込むが、その際、ライト処理部２０１は、その外部接続ＬＵ２０１Ｃとは別のＬＵに存在する更新前のファイルを消去しても良い。
【００７５】
Ｓ１０５で、更新先ファイルが低性能ＬＵの条件に合致しないと判断した場合、ライト処理部は、更新先ファイルが高性能ＬＵの条件に合致しているかどうかを判断する（Ｓ１０７）。具体的には、更新先のファイルの平均リード間隔、平均更新間隔及び平均増加サイズが、ポリシー５５１に記録されている、内部ＬＵの条件に合致しているかどうかを判断する。合致していると判断した場合、ライト処理部４０１は、内部ＬＵ２０１Ｂからブロックを確保し、Ｓ１０９を実行する。なお、ここでのＳ１０９では、内部ＬＵ２０１Ｂから確保したブロックに、更新後のファイルを書き込むが、その際、ライト処理部２０１は、その内部ＬＵ２０１Ｂとは別のＬＵに存在する更新前のファイルを消去しても良い。
【００７６】
Ｓ１０７で、更新先ファイルが高性能ＬＵの条件に合致しないと判断した場合、ライト処理部は、Ｓ１０９で、既存の更新先ファイルを更新後ファイルに更新する。
【００７７】
以上が、ライト処理部２０１が行う処理流れの一例である。なお、この処理流れによれば、Ｓ１０９で、平均更新間隔及び平均増加サイズが更新されるが、その更新によって、更新後のファイルが、低性能ＬＵ或いは高性能ＬＵの条件に合致することがある。その場合には、次回の更新（Ｓ１０１で更新）の際に、その合致した条件に適合するＬＵへのファイル格納が行われることになる。
【００７８】
図１５は、リード処理部４０２によって行われる処理流れの一例を示す。
【００７９】
リード処理部４０２は、ファイルシステム２５４に対するファイルのリードコマンドを受けた。リード処理部４０２は、そのファイルシステム２５４に属する全ＬＵからＬＵを選択し、選択したＬＵのメタ情報から、リードコマンドで指定されているそのファイルを検索する（Ｓ２０１）。発見できなかった場合（Ｓ２０２でＮ）、リード処理部４０２は、上記全ＬＵから次のＬＵを選択し（Ｓ２０３）、そのＬＵのメタ情報からファイルの検索を行う。発見できた場合（Ｓ２０２でＹ）、リード処理部４０２は、発見されたファイル（すなわち、リードコマンドで指定されているファイル）を読み出し（Ｓ２０４）、リードコマンドの発行元のクライアントに送信する。なお、Ｓ２０４では、平均リード間隔の更新が行われても良い。
【００８０】
図１６は、ファイル特性監視／移行処理部４０３によって行われる処理流れの一例を示す。
【００８１】
ファイル特性監視／移行処理部４０３は、定期的に起動する。
【００８２】
ファイル特性監視／移行処理部４０３は、ファイルシステム２５４に属する各ＬＵから該当ファイルを検索する（Ｓ３０１でＮ、Ｓ３０２）。ここでの該当ファイルとは、例えば、今回の起動で未検索のファイルであって、任意に選択されたファイルである。
【００８３】
ファイル特性監視／移行処理部４０３は、該当ファイルのファイル特性と、ポリシー５５１とを照合する（Ｓ３０３）。
【００８４】
その結果、現在のファイルの格納場所がポリシー５５１が表す条件に適合するならば、換言すれば、そのファイル特性に適合するＬＵ特性を有するＬＵに該当ファイルがあるならば（Ｓ３０４でＹ）、移行の必要がないので、ファイル特性監視／移行処理部４０３は、Ｓ３０１に戻る。
【００８５】
一方、Ｓ３０３の結果、現在のファイルの格納場所がポリシー５５１が表す条件に適合しないならば、換言すれば、そのファイル特性に適合するＬＵ特性を有するＬＵ（以下、適合ＬＵ）に該当ファイルが無いならば（Ｓ３０４でＮ）、ファイル特性監視／移行処理部４０３は、そのファイルを適合ＬＵに移動する（Ｓ３０５）。
【００８６】
ファイル特性監視／移行処理部４０３は、ファイルシステム２５４に属する全てのＬＵ内のファイルについて、Ｓ３０２以降を行い、それが終了したならば（Ｓ３０１でＹ）、処理終了となる。
【００８７】
図１７は、ファイル単位ＷＯＲＭコマンド処理部４０４によって行われる処理流れの一例を示す。
【００８８】
ファイル単位ＷＯＲＭコマンド処理部４０４は、ファイルシステム２５４に対する、ＷＯＲＭ化するファイルを指定したコマンド（ファイル単位ＷＯＲＭ化コマンド）を受信する。その場合、ファイル単位ＷＯＲＭコマンド処理部４０４は、そのファイルシステム２５４に属する全ＬＵからＬＵを選択し、選択したＬＵのメタ情報から、指定されているファイルを検索する（Ｓ４０１）。発見できなかった場合（Ｓ４０２でＮ）、ファイル単位ＷＯＲＭコマンド処理部４０４は、上記全ＬＵから次のＬＵを選択し（Ｓ４０３）、そのＬＵのメタ情報からファイルの検索を行う。発見できた場合（Ｓ４０２でＹ）、ファイル単位ＷＯＲＭコマンド処理部４０４は、発見されたファイル（すなわち、ファイル単位ＷＯＲＭ化コマンドで指定されているファイル）を、Ｆ−ＷＯＲＭ−ＬＵ２０１Ｄに移動し（Ｓ４０４）、移動先のファイルに、メタ情報（例えば、ＷＯＲＭ化有りと、保存期限）を設定する（Ｓ４０５）。
【００８９】
なお、ファイル単位ＷＯＲＭ化コマンドが、例えば、新規のライトに相当すれば、そのコマンドで指定されているファイルが、ＡＯＵ−ＬＵ２０１Ａではなく、Ｆ−ＷＯＲＭ−ＬＵ２０１Ｄに格納されても良い。
【００９０】
図１８は、ボリューム単位ＷＯＲＭコマンド処理部４０５によって行われる処理流れの一例を示す。
【００９１】
ボリューム単位ＷＯＲＭコマンド処理部４０５は、ファイル一覧リスト及び保存期限と、ファイルシステム２５４に対するボリューム単位ＷＯＲＭコマンドとを受ける。ファイル一覧リストには、ＷＯＲＭ化する全ファイルの識別子（例えばファイル名）やサイズが記録されている。保存期限は、それら全ファイルに共通の期限である。
【００９２】
ボリューム単位ＷＯＲＭコマンド処理部４０５は、ストレージシステム９ＡからＬＵを確保する（Ｓ５０１）。確保されるＬＵのサイズは、全ファイルの総ファイルサイズ以上である。
【００９３】
次に、ボリューム単位ＷＯＲＭコマンド処理部４０５は、ファイル一覧リストから対象ファイルを選択する（Ｓ５０２でＮ、Ｓ５０３）。ここで言う対象ファイルとは、ファイル一覧リストから未だ選択されていないファイルであって、任意のファイルである。
【００９４】
ボリューム単位ＷＯＲＭコマンド処理部４０５は、ファイルシステム２５４に属する全ＬＵからＬＵを選択し、選択したＬＵのメタ情報から対象ファイルを検索する（Ｓ５０４）。発見できなかった場合（Ｓ５０５でＮ）、ボリューム単位ＷＯＲＭコマンド処理部４０５は、上記全ＬＵから次のＬＵを選択し（Ｓ５０６）、そのＬＵのメタ情報から対象ファイルの検索を行う。発見できた場合（Ｓ５０５でＹ）、ボリューム単位ＷＯＲＭコマンド処理部４０５は、発見された対象ファイルを、Ｓ５０１で確保したＬＵに移動する（Ｓ５０７）。
【００９５】
ボリューム単位ＷＯＲＭコマンド処理部４０５は、ファイル一覧リストに記録されている全ファイルについて、Ｓ５０３乃至Ｓ５０７の処理を繰り返し、それが終了したら（Ｓ５０２でＹ）、Ｓ５０１で確保したＬＵのＷＯＲＭ化を、ストレージシステム９Ａに要求する（Ｓ５０８）。その際、保存期限をストレージシステム９Ａに通知する。それにより、そのＬＵが、その保存期限が設定されたＶ−ＷＯＲＭ−ＬＵ２０１Ｅとなる。
【００９６】
なお、ボリューム単位ＷＯＲＭ化コマンドが、例えば、新規のライトに相当すれば、そのコマンドで指定されているファイルが、ＡＯＵ−ＬＵ２０１Ａではなく、Ｖ−ＷＯＲＭ−ＬＵ２０１Ｅに格納されても良い。
【００９７】
以上が、本実施形態についての説明である。
【００９８】
以上、上述した実施形態によれば、複数のＬＵが一つのファイルシステム２５４にまとめられていても、アドレスマップ６０１やＰＶ／ＬＵ管理表６０３を基に、下位層へのＩ／Ｏ処理が行われるので、一つのファイルが複数のＬＵに跨って格納されてしまうことが生じない。
【００９９】
また、上述した実施形態によれば、どんなファイル特性のファイルをどんなＬＵ特性のＬＵに格納するかの電子的なポリシー５５１が設定され、適時に、そのポリシー５５１に従って、ファイルの再配置が行われる。すなわち、ファイルの特性毎にファイルが分類され、それぞれのファイル特性に合ったＬＵにファイルが適時に移行される。このため、ファイル特性ごとのバックアップや移行等において、効率的な運用管理が可能である。
【０１００】
さらに、上述した実施形態によれば、そのようなファイルの分類を行っても、ファイルシステム２５４を利用するユーザへの論理ビュー（例えば、ディレクトリの中身のビュー）には、変更が生じない。このため、ユーザビリティを損なうことがないので、ユーザ側の業務に悪い影響を与えないようにすることができる。
【０１０１】
また、上述した実施形態によれば、新規作成ファイルや、平均増加サイズが大のファイルが、ＡＯＵ−ＡＵに格納される。システム構築の際に見積もったサイズは、多くの場合、運用を続けていく中で最適ではなくなっていくと考えられる。例えば、大きな記憶容量を有したＬＵを確保したものの、使用されない記憶容量が多い場合、余った記憶容量を別の用途へ使いまわせないために、大きな無駄が生じる。ＡＯＵ（自動容量拡張機能）は、記憶容量を効率的に使用していくことを目的とした機能で、大きな見積もりサイズ（例えば１テラバイト）を指定しても、実際には使用状況に応じて記憶容量は少しずつ（例えば１００メガバイト単位）で増減される。ファイルが作成された時点では、将来のファイルサイズは予測不可能であるため、新規にファイル作成する場合の初期の格納場所として、ＡＯＵ−ＬＵを選択することは、最適であると考えられる。
【０１０２】
また、上述した実施形態によれば、ＷＯＲＭ化されるファイルは、ＷＯＲＭ用のＬＵ２０１Ｄ或いは２０１Ｅに格納される。もし、複数のLUからなるファイルシステム中に、WORM設定されたファイルが散在している場合（具体的には、一つのＬＵに、ＷＯＲＭ設定されたファイルとそうでないファイルとが混在している場合）、WORM設定されたファイルを移行したいケースが生じると、ファイル単位での移行となるので、ファイルの検索が必要となる。そうすると、ファイル検索によるオーバヘッドによって処理が重くなると考えられる。しかし、上述した実施形態では、WORM化されたファイルは、ＷＯＲＭ化されたファイルのみが格納されるＬＵがあり、そのＬＵに、ＷＯＲＭ化されたファイルが格納されるので、ＷＯＲＭ設定されたファイルを移行したいケースでは、ＬＵ単位での移行が可能となる。このため、ファイル検索によるオーバヘッドを無くすことができる。
【０１０３】
また、上述した実施形態では、ファイル単位でなくボリューム単位でＷＯＲＭ設定できるが、そのための技術として、例えば、特開２０００−１１２８２２号公報、或いは、ＵＳ出願番号１０／７６９８８７号の技術を援用することができる。この技術では、ＷＯＲＭ属性をＬＵに設定する場合、そのＬＵを構成するＬＤＥＶ（論理記憶デバイス）に対し、“Read Only”という属性を設定する方法がある。ちなみに、ここでのＬＵは、一以上のＬＤＥＶで構成されたものである。
【０１０４】
また、上述した実施形態に係る仕組みは、ジュークボックス的な態様で使用されるストレージシステムに対応可能である。すなわち、一般のストレージシステムは、制御部の制約等により、常に接続できるＬＵ（或いは記憶装置）に制限があり、それにより、或る時点での扱える記憶容量に制約が生じる。しかし、ＬＵ（或いは記憶装置）を、必要に応じて、接続或いは非接続にすることで（すなわち、ジュークボックス的な態様で使用することにより）、よりたくさんのＬＵ（或いは記憶装置）が存在しても差し支えなくすることが可能である。本実施形態によれば、ファイル特性ごとにファイルがＬＵにまとまっているので、そのような、ジュークボックス的な態様でのストレージシステムに容易に対応することができる。
【０１０５】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【０１０６】
例えば、ファイルシステムプログラム２５３は、新規作成ファイルの格納の際に、ファイルシステム２５４に属する複数LUにおけるファイルパス名をチェックし、新規作成ファイルとファイルパス名が一致するファイルがあれば、その新規作成ファイルを格納しないように制御することができる（この場合、別のファイル名をつけることをユーザに指示することができる）。
【０１０７】
また、例えば、ファイルシステムプログラム２５３は、別のファイルシステムに属していたＬＵをファイルシステム２５４にインポートする（組み込む）場合、そのＬＵ内のファイルのファイルパス名と、ファイルシステム２５４に既にインポートされている全ＬＵ内の全ファイルのファイルパス名との重複をチェックする。一致するファイルパス名があれば、ファイルシステムプログラム２５３は、いずれか一方のファイルパス名の変更を、ユーザからの指示に応じて或いは自動で行うことができる。
【図面の簡単な説明】
【０１０８】
【図１】図１に、ファイルシステムと論理ボリュームとの関係性の一例を示す。
【図２】図２は、従来技術の一つの課題の説明図である。
【図３】図３は、本発明の一実施形態に係るシステムの物理的な構成の一例の概要を示す。
【図４】図４は、本実施形態の概要の説明図である。
【図５】図５は、iノードでの管理形態の例を示す。
【図６】図６は、file1が特性A用LUに格納されている場合の管理形態を示す。
【図７】図７Ａは、ファイルシステム２５４に関連付けられるＬＵ特性の説明図である。図７Ｂは、ファイルシステムプログラム２５３が行うファイル格納制御の概要図である。
【図８】図８は、各LU特性の説明図である。
【図９】図９Ａは、ファイルシステムプログラム２５３で管理されるアドレスマップの一例を示す。図９Ｂは、ファイルシステムプログラム２５３で管理されるＰＶ／ＬＵ管理表の一例を示す。
【図１０】図１０は、ファイルシステムプログラム２５３の機能ブロック図を示す。
【図１１】図１１は、平均更新間隔の説明図である。
【図１２】図１２は、平均増加サイズの説明図である。
【図１３】図１３は、ポリシー５５１の一例を示す。
【図１４】図１４は、ライト処理部４０１によって行われる処理流れの一例を示す。
【図１５】図１５は、リード処理部４０２によって行われる処理流れの一例を示す。
【図１６】図１６は、ファイル特性監視／移行処理部４０３によって行われる処理流れの一例を示す。
【図１７】図１７は、ファイル単位ＷＯＲＭコマンド処理部４０４によって行われる処理流れの一例を示す。
【図１８】図１８は、ボリューム単位ＷＯＲＭコマンド処理部４０５によって行われる処理流れの一例を示す。
【符号の説明】
【０１０９】
５…ＮＡＳ  ７…クライアント  ９Ａ…ストレージシステム  ９Ｂ…外部ストレージシステム  ２５１…ファイル共有プログラム  ２５３…ファイルシステム  ２５５…デバイスドライバ
【図１】
2008033517.tif 000003
【図２】
2008033517.tif 000004
【図３】
2008033517.tif 000005
【図４】
2008033517.tif 000006
【図５】
2008033517.tif 000007
【図６】
2008033517.tif 000008
【図７】
2008033517.tif 000009
【図８】
2008033517.tif 000010
【図９】
2008033517.tif 000011
【図１０】
2008033517.tif 000012
【図１１】
2008033517.tif 000013
【図１２】
2008033517.tif 000014
【図１３】
2008033517.tif 000015
【図１４】
2008033517.tif 000016
【図１５】
2008033517.tif 000017
【図１６】
2008033517.tif 000018
【図１７】
2008033517.tif 000019
【図１８】
2008033517.tif 000020