ファイル格納制御装置及び方法
【課題】一つのファイルを複数のLUに跨らないように格納することをユーザのユーザビリティを損なうことなく実現する。
【解決手段】ファイル格納制御装置(例えばNAS)が、ストレージシステムから提供される複数の論理的な記憶ユニット(LU)を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供する記憶空間提供部と、前記提供した記憶空間へのファイルのライト要求を前記上位装置から受信する受信部と、前記ライト要求で指定されている記憶空間に関連付けられている前記複数のLUの中からLUを選択し、選択したLUに、前記ライト要求に従う前記ファイルを構成する全データを格納する格納制御部とを備える。
【解決手段】ファイル格納制御装置(例えばNAS)が、ストレージシステムから提供される複数の論理的な記憶ユニット(LU)を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供する記憶空間提供部と、前記提供した記憶空間へのファイルのライト要求を前記上位装置から受信する受信部と、前記ライト要求で指定されている記憶空間に関連付けられている前記複数のLUの中からLUを選択し、選択したLUに、前記ライト要求に従う前記ファイルを構成する全データを格納する格納制御部とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子的なファイルの記憶技術に関する。
【背景技術】
【0002】
NAS(Network Attached Storage)は、クライアントコンピュータ(以下、クライアント)に対して、ファイル共有機能を提供する。クライアントがNASにアクセスするために使用される通信プロトコルとして、NFS(Network File System)やCIFS(Common Internet File System)などがある。
【0003】
クライアントから送信されたファイルは、NASのファイルシステムに格納される。ファイルシステムは、一般に、論理ボリューム上に構築されるが、この論理ボリュームとしては、LVM(論理ボリュームマネージャ)によって作成された論理ボリュームが使用される。
【0004】
LVMは、複数のLU(論理ユニット)をまとめて1つのVG(ボリュームグループ)を作成し、そのVGからLV(論理ボリューム)として複数個切り出すことができる機能を有したコンピュータプログラムである。通常、予め見積もったサイズの連続領域をパーティションとして切り出して第一のファイルシステムを構築した後、容量の変更のためには、別途第二のファイルシステムを作成し、第一のファイルシステムから第二のファイルシステムにデータをコピーするのが一般的である。しかし、LVMを使用することで、連続領域を意識せずに、複数のLUをまとめて1つのファイルシステムを作成でき、また、LUを追加することでファイルシステムを拡張することができるなど、ボリューム管理が柔軟になる。
【0005】
図1に、ファイルシステムと論理ボリュームとの関係性の一例を示す。
【0006】
斜線のボリュームは、GUI画面(例えば、クライアントに提供される画面)から見える要素を表し、白抜きのボリュームはGUI画面から見えないがCLI(例えば、管理端末に提供される画面)からみえるボリュームを表す。図1において、2重線より下のレイヤは、NASに接続されたストレージシステム809で管理されるボリュームを示し、2重線より上のレイヤは、NAS801で管理されるボリュームを示す。
【0007】
ストレージシステム809には、例えば、複数のPDEV(物理デバイス)と複数のLU(論理ユニット)とがある。一つのPDEVは、ストレージシステム809が備える一以上の記憶装置により提供される記憶領域により構築される。一つのLUは、一つのPDEV、或いは、複数のPDEVが一つにされたもの(便宜上「LUSE(Logical Unit Size Extension)」と称する)により構築される。
【0008】
NAS801は、ファイル共有プログラム803、ファイルシステム(FS)プログラム805及びLVM807を備える。LVM807では、例えば、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上に、FS805が構築される。
【0009】
ちなみに、複数の物理的なボリュームを合成して一つの論理ボリュームとして提供する技術が開示された文献として、特開2006-127143号公報がある。
【0010】
【特許文献1】特開2006-127143号公報
【発明の開示】
【発明が解決しようとする課題】
【0011】
一般に、LVMは、複数のLUをまとめて1つのファイルシステムとして見せることを主目的としている。このため、ファイルシステムプログラムでは、ファイルシステムへのファイルの格納に際して、LUの区別を意識していない。その結果、図2に例示するように、ファイルに割り当たるブロックが、複数のLUに跨るケースが生じることがある。具体的には、例えば、第一のLU911Aに、一つのファイル901を構成する第一のブロックデータ903が格納され、第二のLU911Bに、そのファイル901を構成する第二のブロックデータ905が格納されてしまうことがある。この場合、LU単位でのデータ移行或いはデータコピーを行うと、移行先或いはコピー先のLUで、一つのファイルを構成するブロックデータが欠けてしまう。具体的には、例えば、第二のLU911Bを図示しない第三のLUに移行或いはコピーしても、移行先或いはコピー先の第三のLUには、ファイル901の第一のブロックデータ903が存在しないので、その第三のLUからは、ファイル901を得ることができない。
【0012】
これを防ぐためには、一つのLU毎に一つのファイルシステムを構築する方法が考えられるが、そうすると、ユーザは、LU毎にファイルシステムを区別する必要がでるので、ユーザのユーザビリティが損なわれてしまう。
【0013】
従って、本発明の目的は、一つのファイルを複数のLUに跨らないように格納することをユーザのユーザビリティを損なうことなく実現することにある。
【0014】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【0015】
本発明に従うファイル格納制御装置は、前記ストレージシステムから提供される複数の論理的な記憶ユニット(LU)を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供する記憶空間提供部と、前記提供した記憶空間へのファイルのライト要求を前記上位装置から受信する受信部と、前記ライト要求で指定されている記憶空間に関連付けられている前記複数のLUの中からLUを選択し、選択したLUに、前記ライト要求に従う前記ファイルを構成する全データを格納する格納制御部とを備える。このファイル格納制御装置は、前記上位装置及び前記ストレージシステムの両方から離れた場所に存在する装置であっても良いし、前記ストレージシステムに搭載された装置であっても良い。
【0016】
第一の実施態様では、どんなファイル特性のファイルをどんなLU特性のLUに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部が更に備えられる。前記格納制御部は、前記ファイルのファイル特性に合致するLU特性を前記ポリシーから特定し、前記特定したLU特性のLUを選択する。
【0017】
第二の実施態様では、前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張LUを提供し、該自動容量拡張LUに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張LUに割り当てる。前記複数のLUには、前記自動容量拡張LUが含まれる。前記格納制御部は、前記ファイルが、前記複数のLUに存在しない新規のファイルであれば、前記自動容量拡張LUを選択する。
【0018】
第三の実施態様では、前記格納制御部は、前記複数のLUに格納されている各ファイルのファイル特性をチェックし、該ファイルのファイル特性に合致する第一のLU特性を特定し、該ファイルが、前記特定した第一のLU特性の第一のLUとは別の第二のLU特性の第二のLUに存在するならば、該ファイルを、前記第二のLUから前記第一のLUに移行させる。
【0019】
第四の実施態様では、前記第三の実施態様において、前記複数のLUには、高性能LUと、該高性能LUに比して性能の低い低性能LUとが含まれる。前記ファイル格納制御装置は、ファイルへのアクセスの頻度を各ファイル別に管理するアクセス頻度管理部を更に備える。前記格納制御部は、アクセス頻度の高いファイルを前記高性能LUに移行し、アクセス頻度の低いファイルを前記低性能LUに移行させる。
【0020】
第五の実施態様では、前記第四の実施態様において、前記高性能LUとは、前記ストレージシステムが備える記憶装置から用意されたLUである内部LUであり、前記低性能LUとは、前記ストレージシステムに接続された外部ストレージシステムの記憶資源にマッピングされた仮想的なLUである外部接続LUである。
【0021】
第六の実施態様では、前記第三の実施態様において、前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張LUを提供し、該自動容量拡張LUに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張LUに割り当てる。前記複数のLUには、前記自動容量拡張LUが含まれる。前記ファイル格納制御装置は、更新によって単位時間当たりに増加したファイルサイズである平均増加サイズを各ファイル別に管理するファイルサイズ管理部を更に備える。前記格納制御部は、平均増加サイズが所定値以上のファイルを、前記自動容量拡張LUに移行させる。
【0022】
第七の実施態様では、前記第三の実施態様において、前記格納制御部は、前記複数のLUに格納されている複数のファイルの中から、WORM(Write Once Read Many)のファイルを特定し、前記特定したWORMファイルを、前記複数のLUのうちのWORM用のLUに移行させる。
【0023】
第八の実施態様では、前記第七の実施態様において、前記格納制御部は、ファイル単位で保存期限が設定される場合、該保存期限を有するファイルを、前記WORM用のLUに移行させ、該移行先のファイルにWORM属性及び該保存期限を設定し、二以上のファイルに同一の保存期限が設定される場合、前記複数のLUの中から、該二以上のファイルの総ファイルサイズ以上の記憶容量を有するLUを確保し、該確保したLUに、該二以上のファイルを移行させて、該確保したLUに、WORM属性及び該保存期限を設定させる。
【0024】
第九の実施態様では、前記記憶空間のアドレスと前記複数のLUに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部が更に備えられる。前記格納制御部は、前記アドレスマップを参照することにより、前記選択したLUに前記ファイルの全データを格納する。
【0025】
第十の実施態様では、どんなファイル特性のファイルをどんなLU特性のLUに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部と、前記記憶空間のアドレスと前記複数のLUに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部とが更に備えられる。前記格納制御部は、前記アドレスマップを参照することにより、前記選択したLUに前記ファイルの全データを格納し、その後、前記複数のLUに格納されている各ファイルのファイル特性をチェックし、該チェックされたファイル特性に合致する第一のLU特性を前記ポリシーから特定し、該ファイルが、前記特定した第一のLU特性の第一のLUとは別の第二のLU特性の第二のLUに存在するならば、該ファイルを、前記第二のLUから前記第一のLUに移行させ、その際、前記アドレスマップを参照し、該ファイルを構成する全データを前記第一のLUに格納するよう制御する。
【0026】
上述したファイル格納制御装置が備える記憶部は、例えば、メモリなどの記憶資源により構築することができる。また、他の各部は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ(例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること)により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、CD−ROM等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【発明の効果】
【0027】
本発明によれば、一つのファイルを複数のLUに跨らないように格納することをユーザのユーザビリティを損なうことなく実現することができる。
【発明を実施するための最良の形態】
【0028】
図3は、本発明の一実施形態に係るシステムの物理的な構成の一例の概要を示す。
【0029】
第一の通信ネットワーク2に、複数のクライアントコンピュータ(以下、クライアント)7、7、…と、NAS5とが接続されている。また、第二の通信ネットワーク6に、NAS5と、ストレージシステム9Aと、外部ストレージシステム9Bとが接続されている。各通信ネットワーク2、6は、種々のネットワークを採用することができる。以下、第一の通信ネットワーク2をLAN(Local Area Network)とし、第二の通信ネットワーク6をSAN(Storage Area Network)とする。NAS5とストレージシステム9Aは、通信ネットワークに代えて専用線で接続されても良い。ストレージシステム9Aと外部ストレージシステム9Bも専用線で接続されても良い。
【0030】
NAS5は、一種の計算機、例えば、ファイルサーバとして機能する計算機である。NAS5は、クライアント7から指定されたファイルをストレージシステム9AのLUに格納する、或いは、クライアント7から指定されたファイルをそのLUから読み出してクライアント7に送信する。具体的には、NAS5は、クライアント7からLAN2を介してファイルレベルのI/Oコマンド(ライトコマンド又はリードコマンド)を受信し、それを、ブロックレベルのI/Oコマンドに変換し、該ブロックレベルのI/Oコマンドを、SAN6を介してストレージシステム9Aに送信する。NAS5は、ストレージシステム9Aに搭載されているいわゆるE−NAS(Embedded-NAS)であっても良いし、ストレージシステム9Aから離れた場所に存在するいわゆるG−NAS(Generic-NAS)であっても良い。NAS5は、例えば、CPU(Central Processing
Unit)205や記憶資源207等のハードウェア資源を備える。記憶資源207は、一種類以上の記憶装置(例えばメモリ、ハードディスク)により構成することができる。
【0031】
ストレージシステム9Aは、制御部21と、複数のディスク型記憶装置(例えばHDD)309とを備える。ディスク型記憶装置309に代えて又は加えて、他種の記憶装置(例えばフラッシュメモリ)が採用されても良い。制御部21は、ストレージシステム9Aの動作を制御する。制御部21は、NAS5からブロックレベルのライトコマンドを受け、そのライトコマンドに従って、データをディスク型記憶装置309に書いたり、NAS5からブロックレベルのリードコマンドを受け、そのリードコマンドに従って、ディスク型記憶装置309からデータを読出しNAS5に送信したりすることができる。制御部21には、例えば、複数のチャネルアダプタ(以下、CHA)、複数のディスクアダプタ(以下、DKA)305、キャッシュメモリ308、制御メモリ307、及びスイッチ(以下、SW)310が備えられる。
【0032】
複数のCHA303の各々は、NAS5との間の通信を制御する。各CHA303は、例えば、CPUやメモリを備える回路基盤である。第一のCHA303は、NAS5からのデータをキャッシュメモリ308に書込んだり、DKA305によって書かれたデータをキャッシュメモリ308から読み出してNAS5に送信したりすることができる。第二のCHA303は、第一のCHA303が受けたI/Oコマンドが、外部ストレージシステム9ABのLU(以下、外部LU)にマッピングされたLUが指定されている場合に、その外部LUを指定したI/Oコマンドを外部ストレージシステム9ABに送信することができる。
【0033】
DKA305は、ディスク型記憶装置309との間の通信を制御する。DKA305は、ディスク型記憶装置309からのデータをキャッシュメモリ308に書込んだり、CHA303によって書かれたデータをキャッシュメモリ308から読み出してディスク型記憶装置309に書込んだりすることができる。DKA305には、実質的に、CHA303と同様のハードウェア構成を採用することができる。
【0034】
キャッシュメモリ308は、NAS5とディスク型記憶装置309との間でやり取りされるデータを記憶することができる。制御メモリ307は、ストレージシステム9Aの制御を行うために必要な情報(例えば、どのディスク型記憶装置309によりどのLUが提供されているかを表すLU管理情報)を記憶することができる。
【0035】
SW310は、CHA303、キャッシュメモリ308、制御メモリ307及びDKA305の間の接続を切り替えることができる。
【0036】
外部ストレージシステム9Bは、ストレージシステム9の補助的なストレージシステムである。外部ストレージシステム9Bには、例えば、SATA(Serial ATA)などのディスク型記憶装置を搭載した比較安価なストレージシステムを利用することが可能である。外部ストレージシステム9Bha,ストレージシステム9と同様の構成とすることができる。或いは、例えば、ストレージシステム9及び外部ストレージシステム9Bのうちの少なくとも一方の構成は、上記の構成に限らず、例えば、制御部21は、一又は複数のCPUと、キャッシュメモリ308としての領域及び/又は制御メモリ307としての領域を有する一又は複数のメモリとを備えた回路基板であっても良い。
【0037】
図4は、本実施形態の概要の説明図である。
【0038】
NAS5には、ファイル共有プログラム251と、ファイルシステムプログラム253と、デバイスドライバ255とを備える。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するCPUによって処理が行われるものとする。
【0039】
ファイル共有プログラム251は、クライアント7にファイル共有プロトコル(例えばNFS或いはCIFS)を提供し、クライアント間でのファイル共有機能を提供するコンピュータプログラムである。ファイル共有プログラム251は、クライアント7からファイルレベルのI/Oコマンド(ファイル単位のリクエスト)を受付け、ファイルシステムプログラム253に対してファイル単位I/O(read/write)を実行する。
【0040】
ファイルシステムプログラム253は、ファイルシステム254を管理するプログラムである。ファイルシステムプログラム253は、上位層(例えばファイル共有プログラム251)に対して、階層構造化された論理ビュー(ディレクトリ,ファイルなど)を提供し、これらのビューを、物理的なデータ構造(ブロックデータ,ブロックアドレス)へ変換して、下位層(例えばデバイスドライバ255)とのブロック単位I/O処理を実行する。データの「読み込み」「書き込み」などの操作を「ファイル」単位で行うために、ファイルシステムプログラム253は、記憶装置を抽象化し、データ格納の仲介作業を行う。抽象化の仕組みの基本単位として提供されているのが、例えば、「iノード」である。iノードでの管理形態を図5に例示している。iノードは、それぞれが実際の記憶装置であるディスク情報やブロック情報、位置情報を持っており、このiノードによって記憶装置のジオメトリが一意に識別される(なお、図5におけるdentryとは、ディレクトリエントリの略である)。
【0041】
デバイスドライバ255は、ファイルシステムプログラム253から要求されたブロック単位I/Oを実行するプログラムである。デバイスドライバ255は、NAS5でSCSI Deviceとして認識されたLU(ストレージシステム9内のLU)に対するアクセスを制御する。
【0042】
本実施形態の大きな特徴の一つは、工夫されたファイルシステムプログラム253である。このファイルシステムプログラム253は、異なるLU特性を有した複数のLU(厳密には、複数のLUにそれぞれ対応した複数のPV)を一つのファイルシステム254にまとめ、そのファイルシステム254上の記憶空間(例えばディレクトリ)の論理ビュー(その記憶空間を見せるためのビュー)をユーザに見せる。図4では、LU特性の例として、A用、B用、C用、無しの4種類を示し、記憶空間は、共有ディレクトリを示す。A、B、Cは、それぞれ、ファイル特性を示す。つまり、例えば、特性A用LUとは、ファイル特性Aを有したファイルを格納するためのLUであることを意味する。無しとは、ここでは、A用、B用、C用のいずれにも該当しないことを意味する。
【0043】
図4の例によれば、ファイルシステム254上の共有ディレクトリ/shareの下にfile1、file2、file3が格納される場合で、各ファイルの特性がA,B,Cの場合、file1は、特性A用LUに、file2は、特性B用LUに、file3は、特性C用LUにそれぞれ格納される。各LUには、特性に合致したファイルのメタデータとブロックデータが格納される。メタデータは、ファイルをファイルシステム254上で管理する為に必要な情報である。図6に、file1が特性A用LUに格納されている場合の管理形態を示す。iノードに従う格納が行われ、メタデータを参照することで、file1を構成するデータを格納するブロックの数や、そのブロックの在り処を特定することができる。特定されるブロックには、参照先のエントリから直接特定されるもの(直接ブロック)もあれば、参照先のエントリから一以上の他のエントリを隔てて特定されるもの(間接ブロック)もある。
【0044】
このファイルシステムプログラム253によれば、ユーザに提供される、記憶空間の論理ビューからは、その記憶空間を有するファイルシステム254に、どんな特性を有したLUが属しているかがわからないようになっている。つまり、ユーザは、例えば、その記憶空間にどんな特性を有したLUが属しているかや、格納対象のファイルの特性が何であるかを意識せずに、その一つの記憶空間に所望のファイルを格納する操作を行えば良い。そのように格納しても、次に説明する仕組みにより、一つのファイルが複数のLUに跨ることなく格納され、且つ、そのファイルが、そのファイルの特性に応じたLUに割り振られる。
【0045】
図7Aは、ファイルシステム254に関連付けられるLU特性の説明図である。図8は、各LU特性の説明図である。
【0046】
本実施形態では、少なくとも5種類の特性にそれぞれ対応した5つのLU(5つのLUにそれぞれ対応した5つのPV)が、ファイルシステム254で一つにまとめられている。なお、これら5つのLUが、一つのストレージシステム9Aに存在しなければならないわけではない。ストレージシステム9Aが複数台ある場合には、それら複数のストレージシステム9Aに分かれて存在してもよい。
【0047】
第一のLUは、AOU(Allocate ON Use)-LU201Aである。AOU-LU201Aとは、NAS5に提供される仮想的なLUである。ストレージシステム9Aの制御部21(例えばCHA303)が、必要なときに(例えば、そのLUに対するライトコマンドを受けた場合に)、複数のプール領域(例えば、所定サイズの記憶領域)203が格納されているプール205から未使用のプール領域203を割り当てたり、AOU-LU201Aに割り当てられている不要なプール領域203を解放したり(プール205に戻したり)する。この技術は、自動容量拡張と呼ばれることがある。この技術としては、例えば、特開2003−15915号公報(US特許番号6725328号、US特許番号6836819号、US出願番号10/991421号)に開示の技術を援用することができる。
【0048】
第二のLUは、高性能LU201Bである。高性能LU201Bには、アクセス頻度が高く、高レスポンスが要求されるファイルが格納される。高性能LU201Bとは、高速及び/又は高信頼性の物理的な記憶装置から提供されるLUであっても良いが、本実施形態では、内部LUを高性能LUとしている。内部LUとは、ストレージシステム9Aのディスク型記憶装置309から提供されるLUであり、外部LUがマッピングされていないLUである。
【0049】
第三のLUは、低性能LU201Cである。低性能LU201Cには、ファイルのアクセス頻度が低く、高レスポンスが要求されないファイルが格納される。低性能LU201Cとは、低速及び/又は低信頼性の物理的な記憶装置から提供されるLUであっても良いが、本実施形態では、外部接続LUを低性能LUとしている。外部接続LU201Cとは、VDEV296を介して外部LU295がマッピングされた仮想的なLUである。外部LU295とは、外部ストレージシステム9Bに存在する外部LUである。一以上の外部LU295により、ストレージシステム9Aに、VDEV(仮想デバイス、具体的には、仮想的な記憶空間)296が形成され、VDEV296から切り出された論理的な記憶デバイス(LDEV)により、外部接続LU201Cが提供される。低性能LU201Cに対してI/Oが発生した場合には、それにマッピングされた外部LU295にI/Oが発生する。なお、このような外部接続に関する技術として、例えば、特開2005−107645号公報(US出願番号10/769805号、US出願番号11/471556号)に開示の技術を援用することができる。
【0050】
第四のLUは、F-WORM-LU201Dである。Fは、ファイル単位であることを意味する。WORMとは、Write Once Read Manyの略であり、作成後にファイルの更新が発生しないことを意味する。WORMを特性として有するファイルとしては、例えば、公的な文書(例えば契約書)のファイルや、法律で保存期間が規定されている文書ファイルなどを挙げることができる。F-WORM-LU201Dには、ファイル単位でWORM化されたファイルが格納される。
【0051】
第五のLUは、V-WORM-LU201Eである。Vは、ボリューム単位、換言すれば、LU単位であることを意味する。WORMについては、前述した通りである。V-WORM-LU201Eには、ボリューム単位でWORM化されたファイルが格納される。
【0052】
図7Bは、ファイルシステムプログラム253が行うファイル格納制御の概要図である。
【0053】
新規に作成されたファイル(以下、新規作成ファイル)を格納する場合、ファイルシステムプログラム253は、AOU−LU201Aに、その新規作成ファイルを格納する。例えば、新規にファイルが作成された場合、ファイルの更新状況に応じて、そのファイルのサイズが増大するため、そのファイルサイズの増大(つまり、必要とする記憶容量の増加)に柔軟に対応できるAOU-LU201Aが好ましいためである。
【0054】
新規作成ファイルが格納された後、その新規作成ファイルの利用状況により、新規作成ファイルの特性は、“新規作成”から別の特性へと変化する。このため、それに伴い、ファイルシステムプログラム253は、そのファイルを適宜移行することにより、そのファイルの格納先が変える。具体的には、例えば、ファイルシステムプログラム253は、ファイルのサイズが増えなくなった場合、アクセス頻度に応じて、そのファイルを、高性能LU201B又は低性能LU201Cに移行する。また、例えば、ファイルシステムプログラム253は、WORM化の要求が合った時点で、そのファイルを、WORM用のLU201D又は201Eに移行する。なお、こういった移行が行われたことは、ユーザに提供される論理ビューを見てもわからないようになっており、故に、ユーザは、通常通りファイルにアクセスすることができる。ファイルシステムプログラム253は、ファイルの移行を行った場合、そのファイルへのファイルパス名を、移行元のファイルパス名から移行先のファイルパス名に変更することができる。
【0055】
ファイルシステムプログラム253は、複数のLUに一つのファイルを跨って格納しないようにし、且つ、そのファイルのファイル特性に応じたLU特性を有するLUにファイルを格納することができるが、それを実現するために、例えば、以下に例示するアドレスマップがされている。
【0056】
図9Aは、ファイルシステムプログラム253で管理されるアドレスマップの一例を示す。図9Bは、ファイルシステムプログラム253で管理されるPV/LU管理表の一例を示す。
【0057】
このアドレスマップ601によれば、各論理アドレス(Lアドレス)に各物理アドレス(Pアドレス)がマッピングされている。論理アドレスとは、例えば、ユーザ側に提供される記憶空間のアドレス番号である。アドレス番号が連続的に並んでいることにより、ユーザには、一つの連続した記憶空間として論理ビューが提供される。一方、物理アドレスとは、例えば、どの識別子のPV(図1参照)のどの場所に相当するかを表すアドレスである。
【0058】
PV/LU管理表603では、PV識別子と、そのPV識別子が割り当てられたPVに対応するLUのLU特性とが関連付けられている。
【0059】
ファイルシステムプログラム253は、このアドレスマップ601とPV/LU管理表603を基に、複数のLUに一つのファイルを跨って格納しないようにし、且つ、そのファイルのファイル特性に応じたLU特性を有するLUにファイルを格納することができる。なお、どの論理アドレスがどのLUに属するかの管理方法としては、これに限らず、他の方法を採用することもできる。
【0060】
図10は、ファイルシステムプログラム253の機能ブロック図を示す。
【0061】
ファイルシステムプログラム253は、複数のコンピュータプログラムとして、ライト処理部401と、リード処理部402と、ファイル特性監視/移行処理部403と、ファイル単位WORMコマンド処理部404と、ボリューム単位WORMコマンド処理部405とを備える。
【0062】
ライト処理部401は、ファイルのライトコマンドを受付け、そのファイルが、新規作成されたファイルであれば、そのファイルをAOU-LU201Aに書き込む。また、ライト処理部401は、そのファイルが、更新されるファイルであれば、そのファイルのファイル特性をチェックし、そのファイル特性に最適なLU特性を有するLUを選択して、そのファイルを、選択されたLUに書き込む(但し、書込み先がWORMのファイル或いはLUである場合には、更新を拒否する)。ライト処理部401は、ファイル特性監視/移行処理部403のために、メタ情報として、図11に例示する平均更新間隔と、図12に例示する平均増加サイズを更新する。平均更新間隔も平均増加サイズも、各ファイル毎に算出される。
【0063】
ファイルAの平均更新間隔とは、ファイルAが平均してどのぐらいの時間間隔で更新されているのかを表す、更新頻度の指標となる情報である。この平均更新間隔は、今回の更新日時と前回の更新日時及び前回の平均更新間隔とを基に算出することができる。具体的には、例えば、更新回数がN回目の平均更新間隔は、
更新回数がN回目の平均更新間隔={(N−1)回目の平均更新間隔×(N−2)+N回目と(N−1)回目の更新日時の差分}/(N−1)
で算出することができる。但し、N=0の場合は、ファイルが新規に格納されたことになるので、平均更新時間間隔は無く、N=1の場合は、初めて更新されたことになるので、平均時間間隔は、0回目の更新日時と今回の更新日時との差分となる。
【0064】
ファイルAの平均増加サイズとは、ファイルAのファイルサイズが平均してどのぐらい増えているかを表す情報である。平均増加サイズがマイナスとなれば、ファイルサイズが減っていることを意味する。平均増加サイズは、今回の更新後ファイルサイズと、前回の更新後ファイルサイズ及び前回の平均増加サイズとを基に算出することができる。具体的には、例えば、更新回数がN回目の平均増加サイズは、
更新回数がN回目の平均増加サイズ={(N−1)回目の平均増加サイズ×(N−2)+N回目と(N−1)回目の更新後ファイルサイズの差分}/(N−1)
で算出することができる。但し、N=0の場合は、ファイルが新規に格納されたことになるので、平均増加サイズは無く、N=1の場合は、初めて更新されたことになるので、平均増加サイズは、0回目のファイルサイズと今回の更新後ファイルサイズとの差分となる。
【0065】
リード処理部402は、ファイルのリードコマンドを受付け、各特性毎のLUからファイルを検索し、探し出されたファイルを構成するブロックデータを取得し、取得したブロックデータからファイルを組み立て、そのファイルを、リードコマンドの発行元へ返す。リード処理部402は、平均更新間隔と同様の方法で、各ファイル毎の平均リード間隔を算出することができる。
【0066】
ファイル特性監視/移行処理部403は、定期的に、管理者が定義したポリシーに従って各ファイルのファイル特性を照合し、必要に応じて、ファイルをそのファイル特性の合ったLU特性を有するLUへ移動する。ポリシーの具体例を図13に示す。このポリシー551は、ファイルシステムプログラム253が保持する電子的なポリシーであり、平均更新間隔(平均ライト間隔)、平均リード間隔及び平均増加サイズのうちの少なくとも一つがどんな条件を満たしたファイルがどんなLUに移動するかを表している。このポリシー551によれば、平均増加サイズがXXXメガバイトを超えたファイルが、AOU−LU201Aに移動される。また、平均リード間隔がYYY分を超えた、平均更新間隔がXYZ分を超えた、及び、平均増加サイズがZZZメガバイトを超えた、の少なくとも一つに該当するファイルが、内部LU201Bに移動される。なお、AOU−LU201Aの特性を考慮すると、ZZZメガバイトに比してXXXメガバイトが大きい方が好ましいと考えられる。
【0067】
ファイル単位WORMコマンド処理部404は、ファイルのWORM化コマンドを受付けた場合、F−WORM−LU201Dへファイルをコピーし、そのファイルに対して、WORM化属性(例えば、ファイルシステムのメタ情報であり、WORM化有無や保存日時を表す情報)を設定する。
【0068】
ボリューム単位WORMコマンド処理部405は、大量のファイルを同一の日付でWORM化する場合、ファイル毎にWORM化するのでなく、総ファイルサイズ以上のLUを確保し、確保したLUへ全てのファイルをコピーし、コピー先のLUに対して、WORM化を行う。ボリューム単位WORMコマンド処理部405は、コピー元のファイルを、全て削除することができる。
【0069】
以下、各処理部401乃至405が行う処理について詳細に説明する。
【0070】
図14は、ライト処理部401によって行われる処理流れの一例を示す。
【0071】
ライト処理部401は、ファイルのライトコマンドを受信し、そのファイルが、新規作成されたファイルか更新されるファイルであるかを判断する(S101)。これは、例えば、そのファイルのファイル名を有するファイルを管理しているか否かを確認することにより、行うことができる。
【0072】
ライト処理部401は、S101で、新規作成ファイルと判断した場合、その新規作成ファイルを格納するためのブロックをAOU−LU201Aから確保する(S102)。ここでは、前述したアドレスマップ601やPV/LU管理表603から、AOU−LU201Aに属するブロックを特定できるので、新規作成ファイルを複数のLUに跨って格納してしまうことがない。ライト処理部401は、確保したブロックに新規作成ファイルを書込み、且つ、前述した平均更新間隔と平均増加サイズとを更新する(S109)。
【0073】
S101で、更新と判断した場合、ライト処理部401は、更新先のファイルがWORM化属性が設定されているファイルであるか否かを判断し、WORM化属性が設定されているファイルであれば、更新先のファイルを更新することを拒否する(S104)。
【0074】
そうでなければ、ライト処理部401は、更新先のファイルが低性能LUの条件に合致しているかどうかを判断する(S105)。具体的には、更新先のファイルの平均リード間隔、平均更新間隔及び平均増加サイズが、ポリシー551に記録されている、外部接続LUの条件に合致しているかどうかを判断する。合致していると判断した場合、ライト処理部401は、外部接続LU201Cからブロックを確保し(S106)、S109を実行する。なお、ここでのS109では、外部接続LU201Cから確保したブロックに、更新後のファイルを書き込むが、その際、ライト処理部201は、その外部接続LU201Cとは別のLUに存在する更新前のファイルを消去しても良い。
【0075】
S105で、更新先ファイルが低性能LUの条件に合致しないと判断した場合、ライト処理部は、更新先ファイルが高性能LUの条件に合致しているかどうかを判断する(S107)。具体的には、更新先のファイルの平均リード間隔、平均更新間隔及び平均増加サイズが、ポリシー551に記録されている、内部LUの条件に合致しているかどうかを判断する。合致していると判断した場合、ライト処理部401は、内部LU201Bからブロックを確保し、S109を実行する。なお、ここでのS109では、内部LU201Bから確保したブロックに、更新後のファイルを書き込むが、その際、ライト処理部201は、その内部LU201Bとは別のLUに存在する更新前のファイルを消去しても良い。
【0076】
S107で、更新先ファイルが高性能LUの条件に合致しないと判断した場合、ライト処理部は、S109で、既存の更新先ファイルを更新後ファイルに更新する。
【0077】
以上が、ライト処理部201が行う処理流れの一例である。なお、この処理流れによれば、S109で、平均更新間隔及び平均増加サイズが更新されるが、その更新によって、更新後のファイルが、低性能LU或いは高性能LUの条件に合致することがある。その場合には、次回の更新(S101で更新)の際に、その合致した条件に適合するLUへのファイル格納が行われることになる。
【0078】
図15は、リード処理部402によって行われる処理流れの一例を示す。
【0079】
リード処理部402は、ファイルシステム254に対するファイルのリードコマンドを受けた。リード処理部402は、そのファイルシステム254に属する全LUからLUを選択し、選択したLUのメタ情報から、リードコマンドで指定されているそのファイルを検索する(S201)。発見できなかった場合(S202でN)、リード処理部402は、上記全LUから次のLUを選択し(S203)、そのLUのメタ情報からファイルの検索を行う。発見できた場合(S202でY)、リード処理部402は、発見されたファイル(すなわち、リードコマンドで指定されているファイル)を読み出し(S204)、リードコマンドの発行元のクライアントに送信する。なお、S204では、平均リード間隔の更新が行われても良い。
【0080】
図16は、ファイル特性監視/移行処理部403によって行われる処理流れの一例を示す。
【0081】
ファイル特性監視/移行処理部403は、定期的に起動する。
【0082】
ファイル特性監視/移行処理部403は、ファイルシステム254に属する各LUから該当ファイルを検索する(S301でN、S302)。ここでの該当ファイルとは、例えば、今回の起動で未検索のファイルであって、任意に選択されたファイルである。
【0083】
ファイル特性監視/移行処理部403は、該当ファイルのファイル特性と、ポリシー551とを照合する(S303)。
【0084】
その結果、現在のファイルの格納場所がポリシー551が表す条件に適合するならば、換言すれば、そのファイル特性に適合するLU特性を有するLUに該当ファイルがあるならば(S304でY)、移行の必要がないので、ファイル特性監視/移行処理部403は、S301に戻る。
【0085】
一方、S303の結果、現在のファイルの格納場所がポリシー551が表す条件に適合しないならば、換言すれば、そのファイル特性に適合するLU特性を有するLU(以下、適合LU)に該当ファイルが無いならば(S304でN)、ファイル特性監視/移行処理部403は、そのファイルを適合LUに移動する(S305)。
【0086】
ファイル特性監視/移行処理部403は、ファイルシステム254に属する全てのLU内のファイルについて、S302以降を行い、それが終了したならば(S301でY)、処理終了となる。
【0087】
図17は、ファイル単位WORMコマンド処理部404によって行われる処理流れの一例を示す。
【0088】
ファイル単位WORMコマンド処理部404は、ファイルシステム254に対する、WORM化するファイルを指定したコマンド(ファイル単位WORM化コマンド)を受信する。その場合、ファイル単位WORMコマンド処理部404は、そのファイルシステム254に属する全LUからLUを選択し、選択したLUのメタ情報から、指定されているファイルを検索する(S401)。発見できなかった場合(S402でN)、ファイル単位WORMコマンド処理部404は、上記全LUから次のLUを選択し(S403)、そのLUのメタ情報からファイルの検索を行う。発見できた場合(S402でY)、ファイル単位WORMコマンド処理部404は、発見されたファイル(すなわち、ファイル単位WORM化コマンドで指定されているファイル)を、F−WORM−LU201Dに移動し(S404)、移動先のファイルに、メタ情報(例えば、WORM化有りと、保存期限)を設定する(S405)。
【0089】
なお、ファイル単位WORM化コマンドが、例えば、新規のライトに相当すれば、そのコマンドで指定されているファイルが、AOU−LU201Aではなく、F−WORM−LU201Dに格納されても良い。
【0090】
図18は、ボリューム単位WORMコマンド処理部405によって行われる処理流れの一例を示す。
【0091】
ボリューム単位WORMコマンド処理部405は、ファイル一覧リスト及び保存期限と、ファイルシステム254に対するボリューム単位WORMコマンドとを受ける。ファイル一覧リストには、WORM化する全ファイルの識別子(例えばファイル名)やサイズが記録されている。保存期限は、それら全ファイルに共通の期限である。
【0092】
ボリューム単位WORMコマンド処理部405は、ストレージシステム9AからLUを確保する(S501)。確保されるLUのサイズは、全ファイルの総ファイルサイズ以上である。
【0093】
次に、ボリューム単位WORMコマンド処理部405は、ファイル一覧リストから対象ファイルを選択する(S502でN、S503)。ここで言う対象ファイルとは、ファイル一覧リストから未だ選択されていないファイルであって、任意のファイルである。
【0094】
ボリューム単位WORMコマンド処理部405は、ファイルシステム254に属する全LUからLUを選択し、選択したLUのメタ情報から対象ファイルを検索する(S504)。発見できなかった場合(S505でN)、ボリューム単位WORMコマンド処理部405は、上記全LUから次のLUを選択し(S506)、そのLUのメタ情報から対象ファイルの検索を行う。発見できた場合(S505でY)、ボリューム単位WORMコマンド処理部405は、発見された対象ファイルを、S501で確保したLUに移動する(S507)。
【0095】
ボリューム単位WORMコマンド処理部405は、ファイル一覧リストに記録されている全ファイルについて、S503乃至S507の処理を繰り返し、それが終了したら(S502でY)、S501で確保したLUのWORM化を、ストレージシステム9Aに要求する(S508)。その際、保存期限をストレージシステム9Aに通知する。それにより、そのLUが、その保存期限が設定されたV−WORM−LU201Eとなる。
【0096】
なお、ボリューム単位WORM化コマンドが、例えば、新規のライトに相当すれば、そのコマンドで指定されているファイルが、AOU−LU201Aではなく、V−WORM−LU201Eに格納されても良い。
【0097】
以上が、本実施形態についての説明である。
【0098】
以上、上述した実施形態によれば、複数のLUが一つのファイルシステム254にまとめられていても、アドレスマップ601やPV/LU管理表603を基に、下位層へのI/O処理が行われるので、一つのファイルが複数のLUに跨って格納されてしまうことが生じない。
【0099】
また、上述した実施形態によれば、どんなファイル特性のファイルをどんなLU特性のLUに格納するかの電子的なポリシー551が設定され、適時に、そのポリシー551に従って、ファイルの再配置が行われる。すなわち、ファイルの特性毎にファイルが分類され、それぞれのファイル特性に合ったLUにファイルが適時に移行される。このため、ファイル特性ごとのバックアップや移行等において、効率的な運用管理が可能である。
【0100】
さらに、上述した実施形態によれば、そのようなファイルの分類を行っても、ファイルシステム254を利用するユーザへの論理ビュー(例えば、ディレクトリの中身のビュー)には、変更が生じない。このため、ユーザビリティを損なうことがないので、ユーザ側の業務に悪い影響を与えないようにすることができる。
【0101】
また、上述した実施形態によれば、新規作成ファイルや、平均増加サイズが大のファイルが、AOU−AUに格納される。システム構築の際に見積もったサイズは、多くの場合、運用を続けていく中で最適ではなくなっていくと考えられる。例えば、大きな記憶容量を有したLUを確保したものの、使用されない記憶容量が多い場合、余った記憶容量を別の用途へ使いまわせないために、大きな無駄が生じる。AOU(自動容量拡張機能)は、記憶容量を効率的に使用していくことを目的とした機能で、大きな見積もりサイズ(例えば1テラバイト)を指定しても、実際には使用状況に応じて記憶容量は少しずつ(例えば100メガバイト単位)で増減される。ファイルが作成された時点では、将来のファイルサイズは予測不可能であるため、新規にファイル作成する場合の初期の格納場所として、AOU−LUを選択することは、最適であると考えられる。
【0102】
また、上述した実施形態によれば、WORM化されるファイルは、WORM用のLU201D或いは201Eに格納される。もし、複数のLUからなるファイルシステム中に、WORM設定されたファイルが散在している場合(具体的には、一つのLUに、WORM設定されたファイルとそうでないファイルとが混在している場合)、WORM設定されたファイルを移行したいケースが生じると、ファイル単位での移行となるので、ファイルの検索が必要となる。そうすると、ファイル検索によるオーバヘッドによって処理が重くなると考えられる。しかし、上述した実施形態では、WORM化されたファイルは、WORM化されたファイルのみが格納されるLUがあり、そのLUに、WORM化されたファイルが格納されるので、WORM設定されたファイルを移行したいケースでは、LU単位での移行が可能となる。このため、ファイル検索によるオーバヘッドを無くすことができる。
【0103】
また、上述した実施形態では、ファイル単位でなくボリューム単位でWORM設定できるが、そのための技術として、例えば、特開2000−112822号公報、或いは、US出願番号10/769887号の技術を援用することができる。この技術では、WORM属性をLUに設定する場合、そのLUを構成するLDEV(論理記憶デバイス)に対し、“Read Only”という属性を設定する方法がある。ちなみに、ここでのLUは、一以上のLDEVで構成されたものである。
【0104】
また、上述した実施形態に係る仕組みは、ジュークボックス的な態様で使用されるストレージシステムに対応可能である。すなわち、一般のストレージシステムは、制御部の制約等により、常に接続できるLU(或いは記憶装置)に制限があり、それにより、或る時点での扱える記憶容量に制約が生じる。しかし、LU(或いは記憶装置)を、必要に応じて、接続或いは非接続にすることで(すなわち、ジュークボックス的な態様で使用することにより)、よりたくさんのLU(或いは記憶装置)が存在しても差し支えなくすることが可能である。本実施形態によれば、ファイル特性ごとにファイルがLUにまとまっているので、そのような、ジュークボックス的な態様でのストレージシステムに容易に対応することができる。
【0105】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【0106】
例えば、ファイルシステムプログラム253は、新規作成ファイルの格納の際に、ファイルシステム254に属する複数LUにおけるファイルパス名をチェックし、新規作成ファイルとファイルパス名が一致するファイルがあれば、その新規作成ファイルを格納しないように制御することができる(この場合、別のファイル名をつけることをユーザに指示することができる)。
【0107】
また、例えば、ファイルシステムプログラム253は、別のファイルシステムに属していたLUをファイルシステム254にインポートする(組み込む)場合、そのLU内のファイルのファイルパス名と、ファイルシステム254に既にインポートされている全LU内の全ファイルのファイルパス名との重複をチェックする。一致するファイルパス名があれば、ファイルシステムプログラム253は、いずれか一方のファイルパス名の変更を、ユーザからの指示に応じて或いは自動で行うことができる。
【図面の簡単な説明】
【0108】
【図1】図1に、ファイルシステムと論理ボリュームとの関係性の一例を示す。
【図2】図2は、従来技術の一つの課題の説明図である。
【図3】図3は、本発明の一実施形態に係るシステムの物理的な構成の一例の概要を示す。
【図4】図4は、本実施形態の概要の説明図である。
【図5】図5は、iノードでの管理形態の例を示す。
【図6】図6は、file1が特性A用LUに格納されている場合の管理形態を示す。
【図7】図7Aは、ファイルシステム254に関連付けられるLU特性の説明図である。図7Bは、ファイルシステムプログラム253が行うファイル格納制御の概要図である。
【図8】図8は、各LU特性の説明図である。
【図9】図9Aは、ファイルシステムプログラム253で管理されるアドレスマップの一例を示す。図9Bは、ファイルシステムプログラム253で管理されるPV/LU管理表の一例を示す。
【図10】図10は、ファイルシステムプログラム253の機能ブロック図を示す。
【図11】図11は、平均更新間隔の説明図である。
【図12】図12は、平均増加サイズの説明図である。
【図13】図13は、ポリシー551の一例を示す。
【図14】図14は、ライト処理部401によって行われる処理流れの一例を示す。
【図15】図15は、リード処理部402によって行われる処理流れの一例を示す。
【図16】図16は、ファイル特性監視/移行処理部403によって行われる処理流れの一例を示す。
【図17】図17は、ファイル単位WORMコマンド処理部404によって行われる処理流れの一例を示す。
【図18】図18は、ボリューム単位WORMコマンド処理部405によって行われる処理流れの一例を示す。
【符号の説明】
【0109】
5…NAS 7…クライアント 9A…ストレージシステム 9B…外部ストレージシステム 251…ファイル共有プログラム 253…ファイルシステム 255…デバイスドライバ
【技術分野】
【0001】
本発明は、電子的なファイルの記憶技術に関する。
【背景技術】
【0002】
NAS(Network Attached Storage)は、クライアントコンピュータ(以下、クライアント)に対して、ファイル共有機能を提供する。クライアントがNASにアクセスするために使用される通信プロトコルとして、NFS(Network File System)やCIFS(Common Internet File System)などがある。
【0003】
クライアントから送信されたファイルは、NASのファイルシステムに格納される。ファイルシステムは、一般に、論理ボリューム上に構築されるが、この論理ボリュームとしては、LVM(論理ボリュームマネージャ)によって作成された論理ボリュームが使用される。
【0004】
LVMは、複数のLU(論理ユニット)をまとめて1つのVG(ボリュームグループ)を作成し、そのVGからLV(論理ボリューム)として複数個切り出すことができる機能を有したコンピュータプログラムである。通常、予め見積もったサイズの連続領域をパーティションとして切り出して第一のファイルシステムを構築した後、容量の変更のためには、別途第二のファイルシステムを作成し、第一のファイルシステムから第二のファイルシステムにデータをコピーするのが一般的である。しかし、LVMを使用することで、連続領域を意識せずに、複数のLUをまとめて1つのファイルシステムを作成でき、また、LUを追加することでファイルシステムを拡張することができるなど、ボリューム管理が柔軟になる。
【0005】
図1に、ファイルシステムと論理ボリュームとの関係性の一例を示す。
【0006】
斜線のボリュームは、GUI画面(例えば、クライアントに提供される画面)から見える要素を表し、白抜きのボリュームはGUI画面から見えないがCLI(例えば、管理端末に提供される画面)からみえるボリュームを表す。図1において、2重線より下のレイヤは、NASに接続されたストレージシステム809で管理されるボリュームを示し、2重線より上のレイヤは、NAS801で管理されるボリュームを示す。
【0007】
ストレージシステム809には、例えば、複数のPDEV(物理デバイス)と複数のLU(論理ユニット)とがある。一つのPDEVは、ストレージシステム809が備える一以上の記憶装置により提供される記憶領域により構築される。一つのLUは、一つのPDEV、或いは、複数のPDEVが一つにされたもの(便宜上「LUSE(Logical Unit Size Extension)」と称する)により構築される。
【0008】
NAS801は、ファイル共有プログラム803、ファイルシステム(FS)プログラム805及びLVM807を備える。LVM807では、例えば、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上に、FS805が構築される。
【0009】
ちなみに、複数の物理的なボリュームを合成して一つの論理ボリュームとして提供する技術が開示された文献として、特開2006-127143号公報がある。
【0010】
【特許文献1】特開2006-127143号公報
【発明の開示】
【発明が解決しようとする課題】
【0011】
一般に、LVMは、複数のLUをまとめて1つのファイルシステムとして見せることを主目的としている。このため、ファイルシステムプログラムでは、ファイルシステムへのファイルの格納に際して、LUの区別を意識していない。その結果、図2に例示するように、ファイルに割り当たるブロックが、複数のLUに跨るケースが生じることがある。具体的には、例えば、第一のLU911Aに、一つのファイル901を構成する第一のブロックデータ903が格納され、第二のLU911Bに、そのファイル901を構成する第二のブロックデータ905が格納されてしまうことがある。この場合、LU単位でのデータ移行或いはデータコピーを行うと、移行先或いはコピー先のLUで、一つのファイルを構成するブロックデータが欠けてしまう。具体的には、例えば、第二のLU911Bを図示しない第三のLUに移行或いはコピーしても、移行先或いはコピー先の第三のLUには、ファイル901の第一のブロックデータ903が存在しないので、その第三のLUからは、ファイル901を得ることができない。
【0012】
これを防ぐためには、一つのLU毎に一つのファイルシステムを構築する方法が考えられるが、そうすると、ユーザは、LU毎にファイルシステムを区別する必要がでるので、ユーザのユーザビリティが損なわれてしまう。
【0013】
従って、本発明の目的は、一つのファイルを複数のLUに跨らないように格納することをユーザのユーザビリティを損なうことなく実現することにある。
【0014】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【0015】
本発明に従うファイル格納制御装置は、前記ストレージシステムから提供される複数の論理的な記憶ユニット(LU)を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供する記憶空間提供部と、前記提供した記憶空間へのファイルのライト要求を前記上位装置から受信する受信部と、前記ライト要求で指定されている記憶空間に関連付けられている前記複数のLUの中からLUを選択し、選択したLUに、前記ライト要求に従う前記ファイルを構成する全データを格納する格納制御部とを備える。このファイル格納制御装置は、前記上位装置及び前記ストレージシステムの両方から離れた場所に存在する装置であっても良いし、前記ストレージシステムに搭載された装置であっても良い。
【0016】
第一の実施態様では、どんなファイル特性のファイルをどんなLU特性のLUに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部が更に備えられる。前記格納制御部は、前記ファイルのファイル特性に合致するLU特性を前記ポリシーから特定し、前記特定したLU特性のLUを選択する。
【0017】
第二の実施態様では、前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張LUを提供し、該自動容量拡張LUに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張LUに割り当てる。前記複数のLUには、前記自動容量拡張LUが含まれる。前記格納制御部は、前記ファイルが、前記複数のLUに存在しない新規のファイルであれば、前記自動容量拡張LUを選択する。
【0018】
第三の実施態様では、前記格納制御部は、前記複数のLUに格納されている各ファイルのファイル特性をチェックし、該ファイルのファイル特性に合致する第一のLU特性を特定し、該ファイルが、前記特定した第一のLU特性の第一のLUとは別の第二のLU特性の第二のLUに存在するならば、該ファイルを、前記第二のLUから前記第一のLUに移行させる。
【0019】
第四の実施態様では、前記第三の実施態様において、前記複数のLUには、高性能LUと、該高性能LUに比して性能の低い低性能LUとが含まれる。前記ファイル格納制御装置は、ファイルへのアクセスの頻度を各ファイル別に管理するアクセス頻度管理部を更に備える。前記格納制御部は、アクセス頻度の高いファイルを前記高性能LUに移行し、アクセス頻度の低いファイルを前記低性能LUに移行させる。
【0020】
第五の実施態様では、前記第四の実施態様において、前記高性能LUとは、前記ストレージシステムが備える記憶装置から用意されたLUである内部LUであり、前記低性能LUとは、前記ストレージシステムに接続された外部ストレージシステムの記憶資源にマッピングされた仮想的なLUである外部接続LUである。
【0021】
第六の実施態様では、前記第三の実施態様において、前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張LUを提供し、該自動容量拡張LUに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張LUに割り当てる。前記複数のLUには、前記自動容量拡張LUが含まれる。前記ファイル格納制御装置は、更新によって単位時間当たりに増加したファイルサイズである平均増加サイズを各ファイル別に管理するファイルサイズ管理部を更に備える。前記格納制御部は、平均増加サイズが所定値以上のファイルを、前記自動容量拡張LUに移行させる。
【0022】
第七の実施態様では、前記第三の実施態様において、前記格納制御部は、前記複数のLUに格納されている複数のファイルの中から、WORM(Write Once Read Many)のファイルを特定し、前記特定したWORMファイルを、前記複数のLUのうちのWORM用のLUに移行させる。
【0023】
第八の実施態様では、前記第七の実施態様において、前記格納制御部は、ファイル単位で保存期限が設定される場合、該保存期限を有するファイルを、前記WORM用のLUに移行させ、該移行先のファイルにWORM属性及び該保存期限を設定し、二以上のファイルに同一の保存期限が設定される場合、前記複数のLUの中から、該二以上のファイルの総ファイルサイズ以上の記憶容量を有するLUを確保し、該確保したLUに、該二以上のファイルを移行させて、該確保したLUに、WORM属性及び該保存期限を設定させる。
【0024】
第九の実施態様では、前記記憶空間のアドレスと前記複数のLUに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部が更に備えられる。前記格納制御部は、前記アドレスマップを参照することにより、前記選択したLUに前記ファイルの全データを格納する。
【0025】
第十の実施態様では、どんなファイル特性のファイルをどんなLU特性のLUに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部と、前記記憶空間のアドレスと前記複数のLUに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部とが更に備えられる。前記格納制御部は、前記アドレスマップを参照することにより、前記選択したLUに前記ファイルの全データを格納し、その後、前記複数のLUに格納されている各ファイルのファイル特性をチェックし、該チェックされたファイル特性に合致する第一のLU特性を前記ポリシーから特定し、該ファイルが、前記特定した第一のLU特性の第一のLUとは別の第二のLU特性の第二のLUに存在するならば、該ファイルを、前記第二のLUから前記第一のLUに移行させ、その際、前記アドレスマップを参照し、該ファイルを構成する全データを前記第一のLUに格納するよう制御する。
【0026】
上述したファイル格納制御装置が備える記憶部は、例えば、メモリなどの記憶資源により構築することができる。また、他の各部は、ハードウェア、コンピュータプログラム又はそれらの組み合わせ(例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること)により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、CD−ROM等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【発明の効果】
【0027】
本発明によれば、一つのファイルを複数のLUに跨らないように格納することをユーザのユーザビリティを損なうことなく実現することができる。
【発明を実施するための最良の形態】
【0028】
図3は、本発明の一実施形態に係るシステムの物理的な構成の一例の概要を示す。
【0029】
第一の通信ネットワーク2に、複数のクライアントコンピュータ(以下、クライアント)7、7、…と、NAS5とが接続されている。また、第二の通信ネットワーク6に、NAS5と、ストレージシステム9Aと、外部ストレージシステム9Bとが接続されている。各通信ネットワーク2、6は、種々のネットワークを採用することができる。以下、第一の通信ネットワーク2をLAN(Local Area Network)とし、第二の通信ネットワーク6をSAN(Storage Area Network)とする。NAS5とストレージシステム9Aは、通信ネットワークに代えて専用線で接続されても良い。ストレージシステム9Aと外部ストレージシステム9Bも専用線で接続されても良い。
【0030】
NAS5は、一種の計算機、例えば、ファイルサーバとして機能する計算機である。NAS5は、クライアント7から指定されたファイルをストレージシステム9AのLUに格納する、或いは、クライアント7から指定されたファイルをそのLUから読み出してクライアント7に送信する。具体的には、NAS5は、クライアント7からLAN2を介してファイルレベルのI/Oコマンド(ライトコマンド又はリードコマンド)を受信し、それを、ブロックレベルのI/Oコマンドに変換し、該ブロックレベルのI/Oコマンドを、SAN6を介してストレージシステム9Aに送信する。NAS5は、ストレージシステム9Aに搭載されているいわゆるE−NAS(Embedded-NAS)であっても良いし、ストレージシステム9Aから離れた場所に存在するいわゆるG−NAS(Generic-NAS)であっても良い。NAS5は、例えば、CPU(Central Processing
Unit)205や記憶資源207等のハードウェア資源を備える。記憶資源207は、一種類以上の記憶装置(例えばメモリ、ハードディスク)により構成することができる。
【0031】
ストレージシステム9Aは、制御部21と、複数のディスク型記憶装置(例えばHDD)309とを備える。ディスク型記憶装置309に代えて又は加えて、他種の記憶装置(例えばフラッシュメモリ)が採用されても良い。制御部21は、ストレージシステム9Aの動作を制御する。制御部21は、NAS5からブロックレベルのライトコマンドを受け、そのライトコマンドに従って、データをディスク型記憶装置309に書いたり、NAS5からブロックレベルのリードコマンドを受け、そのリードコマンドに従って、ディスク型記憶装置309からデータを読出しNAS5に送信したりすることができる。制御部21には、例えば、複数のチャネルアダプタ(以下、CHA)、複数のディスクアダプタ(以下、DKA)305、キャッシュメモリ308、制御メモリ307、及びスイッチ(以下、SW)310が備えられる。
【0032】
複数のCHA303の各々は、NAS5との間の通信を制御する。各CHA303は、例えば、CPUやメモリを備える回路基盤である。第一のCHA303は、NAS5からのデータをキャッシュメモリ308に書込んだり、DKA305によって書かれたデータをキャッシュメモリ308から読み出してNAS5に送信したりすることができる。第二のCHA303は、第一のCHA303が受けたI/Oコマンドが、外部ストレージシステム9ABのLU(以下、外部LU)にマッピングされたLUが指定されている場合に、その外部LUを指定したI/Oコマンドを外部ストレージシステム9ABに送信することができる。
【0033】
DKA305は、ディスク型記憶装置309との間の通信を制御する。DKA305は、ディスク型記憶装置309からのデータをキャッシュメモリ308に書込んだり、CHA303によって書かれたデータをキャッシュメモリ308から読み出してディスク型記憶装置309に書込んだりすることができる。DKA305には、実質的に、CHA303と同様のハードウェア構成を採用することができる。
【0034】
キャッシュメモリ308は、NAS5とディスク型記憶装置309との間でやり取りされるデータを記憶することができる。制御メモリ307は、ストレージシステム9Aの制御を行うために必要な情報(例えば、どのディスク型記憶装置309によりどのLUが提供されているかを表すLU管理情報)を記憶することができる。
【0035】
SW310は、CHA303、キャッシュメモリ308、制御メモリ307及びDKA305の間の接続を切り替えることができる。
【0036】
外部ストレージシステム9Bは、ストレージシステム9の補助的なストレージシステムである。外部ストレージシステム9Bには、例えば、SATA(Serial ATA)などのディスク型記憶装置を搭載した比較安価なストレージシステムを利用することが可能である。外部ストレージシステム9Bha,ストレージシステム9と同様の構成とすることができる。或いは、例えば、ストレージシステム9及び外部ストレージシステム9Bのうちの少なくとも一方の構成は、上記の構成に限らず、例えば、制御部21は、一又は複数のCPUと、キャッシュメモリ308としての領域及び/又は制御メモリ307としての領域を有する一又は複数のメモリとを備えた回路基板であっても良い。
【0037】
図4は、本実施形態の概要の説明図である。
【0038】
NAS5には、ファイル共有プログラム251と、ファイルシステムプログラム253と、デバイスドライバ255とを備える。以下、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するCPUによって処理が行われるものとする。
【0039】
ファイル共有プログラム251は、クライアント7にファイル共有プロトコル(例えばNFS或いはCIFS)を提供し、クライアント間でのファイル共有機能を提供するコンピュータプログラムである。ファイル共有プログラム251は、クライアント7からファイルレベルのI/Oコマンド(ファイル単位のリクエスト)を受付け、ファイルシステムプログラム253に対してファイル単位I/O(read/write)を実行する。
【0040】
ファイルシステムプログラム253は、ファイルシステム254を管理するプログラムである。ファイルシステムプログラム253は、上位層(例えばファイル共有プログラム251)に対して、階層構造化された論理ビュー(ディレクトリ,ファイルなど)を提供し、これらのビューを、物理的なデータ構造(ブロックデータ,ブロックアドレス)へ変換して、下位層(例えばデバイスドライバ255)とのブロック単位I/O処理を実行する。データの「読み込み」「書き込み」などの操作を「ファイル」単位で行うために、ファイルシステムプログラム253は、記憶装置を抽象化し、データ格納の仲介作業を行う。抽象化の仕組みの基本単位として提供されているのが、例えば、「iノード」である。iノードでの管理形態を図5に例示している。iノードは、それぞれが実際の記憶装置であるディスク情報やブロック情報、位置情報を持っており、このiノードによって記憶装置のジオメトリが一意に識別される(なお、図5におけるdentryとは、ディレクトリエントリの略である)。
【0041】
デバイスドライバ255は、ファイルシステムプログラム253から要求されたブロック単位I/Oを実行するプログラムである。デバイスドライバ255は、NAS5でSCSI Deviceとして認識されたLU(ストレージシステム9内のLU)に対するアクセスを制御する。
【0042】
本実施形態の大きな特徴の一つは、工夫されたファイルシステムプログラム253である。このファイルシステムプログラム253は、異なるLU特性を有した複数のLU(厳密には、複数のLUにそれぞれ対応した複数のPV)を一つのファイルシステム254にまとめ、そのファイルシステム254上の記憶空間(例えばディレクトリ)の論理ビュー(その記憶空間を見せるためのビュー)をユーザに見せる。図4では、LU特性の例として、A用、B用、C用、無しの4種類を示し、記憶空間は、共有ディレクトリを示す。A、B、Cは、それぞれ、ファイル特性を示す。つまり、例えば、特性A用LUとは、ファイル特性Aを有したファイルを格納するためのLUであることを意味する。無しとは、ここでは、A用、B用、C用のいずれにも該当しないことを意味する。
【0043】
図4の例によれば、ファイルシステム254上の共有ディレクトリ/shareの下にfile1、file2、file3が格納される場合で、各ファイルの特性がA,B,Cの場合、file1は、特性A用LUに、file2は、特性B用LUに、file3は、特性C用LUにそれぞれ格納される。各LUには、特性に合致したファイルのメタデータとブロックデータが格納される。メタデータは、ファイルをファイルシステム254上で管理する為に必要な情報である。図6に、file1が特性A用LUに格納されている場合の管理形態を示す。iノードに従う格納が行われ、メタデータを参照することで、file1を構成するデータを格納するブロックの数や、そのブロックの在り処を特定することができる。特定されるブロックには、参照先のエントリから直接特定されるもの(直接ブロック)もあれば、参照先のエントリから一以上の他のエントリを隔てて特定されるもの(間接ブロック)もある。
【0044】
このファイルシステムプログラム253によれば、ユーザに提供される、記憶空間の論理ビューからは、その記憶空間を有するファイルシステム254に、どんな特性を有したLUが属しているかがわからないようになっている。つまり、ユーザは、例えば、その記憶空間にどんな特性を有したLUが属しているかや、格納対象のファイルの特性が何であるかを意識せずに、その一つの記憶空間に所望のファイルを格納する操作を行えば良い。そのように格納しても、次に説明する仕組みにより、一つのファイルが複数のLUに跨ることなく格納され、且つ、そのファイルが、そのファイルの特性に応じたLUに割り振られる。
【0045】
図7Aは、ファイルシステム254に関連付けられるLU特性の説明図である。図8は、各LU特性の説明図である。
【0046】
本実施形態では、少なくとも5種類の特性にそれぞれ対応した5つのLU(5つのLUにそれぞれ対応した5つのPV)が、ファイルシステム254で一つにまとめられている。なお、これら5つのLUが、一つのストレージシステム9Aに存在しなければならないわけではない。ストレージシステム9Aが複数台ある場合には、それら複数のストレージシステム9Aに分かれて存在してもよい。
【0047】
第一のLUは、AOU(Allocate ON Use)-LU201Aである。AOU-LU201Aとは、NAS5に提供される仮想的なLUである。ストレージシステム9Aの制御部21(例えばCHA303)が、必要なときに(例えば、そのLUに対するライトコマンドを受けた場合に)、複数のプール領域(例えば、所定サイズの記憶領域)203が格納されているプール205から未使用のプール領域203を割り当てたり、AOU-LU201Aに割り当てられている不要なプール領域203を解放したり(プール205に戻したり)する。この技術は、自動容量拡張と呼ばれることがある。この技術としては、例えば、特開2003−15915号公報(US特許番号6725328号、US特許番号6836819号、US出願番号10/991421号)に開示の技術を援用することができる。
【0048】
第二のLUは、高性能LU201Bである。高性能LU201Bには、アクセス頻度が高く、高レスポンスが要求されるファイルが格納される。高性能LU201Bとは、高速及び/又は高信頼性の物理的な記憶装置から提供されるLUであっても良いが、本実施形態では、内部LUを高性能LUとしている。内部LUとは、ストレージシステム9Aのディスク型記憶装置309から提供されるLUであり、外部LUがマッピングされていないLUである。
【0049】
第三のLUは、低性能LU201Cである。低性能LU201Cには、ファイルのアクセス頻度が低く、高レスポンスが要求されないファイルが格納される。低性能LU201Cとは、低速及び/又は低信頼性の物理的な記憶装置から提供されるLUであっても良いが、本実施形態では、外部接続LUを低性能LUとしている。外部接続LU201Cとは、VDEV296を介して外部LU295がマッピングされた仮想的なLUである。外部LU295とは、外部ストレージシステム9Bに存在する外部LUである。一以上の外部LU295により、ストレージシステム9Aに、VDEV(仮想デバイス、具体的には、仮想的な記憶空間)296が形成され、VDEV296から切り出された論理的な記憶デバイス(LDEV)により、外部接続LU201Cが提供される。低性能LU201Cに対してI/Oが発生した場合には、それにマッピングされた外部LU295にI/Oが発生する。なお、このような外部接続に関する技術として、例えば、特開2005−107645号公報(US出願番号10/769805号、US出願番号11/471556号)に開示の技術を援用することができる。
【0050】
第四のLUは、F-WORM-LU201Dである。Fは、ファイル単位であることを意味する。WORMとは、Write Once Read Manyの略であり、作成後にファイルの更新が発生しないことを意味する。WORMを特性として有するファイルとしては、例えば、公的な文書(例えば契約書)のファイルや、法律で保存期間が規定されている文書ファイルなどを挙げることができる。F-WORM-LU201Dには、ファイル単位でWORM化されたファイルが格納される。
【0051】
第五のLUは、V-WORM-LU201Eである。Vは、ボリューム単位、換言すれば、LU単位であることを意味する。WORMについては、前述した通りである。V-WORM-LU201Eには、ボリューム単位でWORM化されたファイルが格納される。
【0052】
図7Bは、ファイルシステムプログラム253が行うファイル格納制御の概要図である。
【0053】
新規に作成されたファイル(以下、新規作成ファイル)を格納する場合、ファイルシステムプログラム253は、AOU−LU201Aに、その新規作成ファイルを格納する。例えば、新規にファイルが作成された場合、ファイルの更新状況に応じて、そのファイルのサイズが増大するため、そのファイルサイズの増大(つまり、必要とする記憶容量の増加)に柔軟に対応できるAOU-LU201Aが好ましいためである。
【0054】
新規作成ファイルが格納された後、その新規作成ファイルの利用状況により、新規作成ファイルの特性は、“新規作成”から別の特性へと変化する。このため、それに伴い、ファイルシステムプログラム253は、そのファイルを適宜移行することにより、そのファイルの格納先が変える。具体的には、例えば、ファイルシステムプログラム253は、ファイルのサイズが増えなくなった場合、アクセス頻度に応じて、そのファイルを、高性能LU201B又は低性能LU201Cに移行する。また、例えば、ファイルシステムプログラム253は、WORM化の要求が合った時点で、そのファイルを、WORM用のLU201D又は201Eに移行する。なお、こういった移行が行われたことは、ユーザに提供される論理ビューを見てもわからないようになっており、故に、ユーザは、通常通りファイルにアクセスすることができる。ファイルシステムプログラム253は、ファイルの移行を行った場合、そのファイルへのファイルパス名を、移行元のファイルパス名から移行先のファイルパス名に変更することができる。
【0055】
ファイルシステムプログラム253は、複数のLUに一つのファイルを跨って格納しないようにし、且つ、そのファイルのファイル特性に応じたLU特性を有するLUにファイルを格納することができるが、それを実現するために、例えば、以下に例示するアドレスマップがされている。
【0056】
図9Aは、ファイルシステムプログラム253で管理されるアドレスマップの一例を示す。図9Bは、ファイルシステムプログラム253で管理されるPV/LU管理表の一例を示す。
【0057】
このアドレスマップ601によれば、各論理アドレス(Lアドレス)に各物理アドレス(Pアドレス)がマッピングされている。論理アドレスとは、例えば、ユーザ側に提供される記憶空間のアドレス番号である。アドレス番号が連続的に並んでいることにより、ユーザには、一つの連続した記憶空間として論理ビューが提供される。一方、物理アドレスとは、例えば、どの識別子のPV(図1参照)のどの場所に相当するかを表すアドレスである。
【0058】
PV/LU管理表603では、PV識別子と、そのPV識別子が割り当てられたPVに対応するLUのLU特性とが関連付けられている。
【0059】
ファイルシステムプログラム253は、このアドレスマップ601とPV/LU管理表603を基に、複数のLUに一つのファイルを跨って格納しないようにし、且つ、そのファイルのファイル特性に応じたLU特性を有するLUにファイルを格納することができる。なお、どの論理アドレスがどのLUに属するかの管理方法としては、これに限らず、他の方法を採用することもできる。
【0060】
図10は、ファイルシステムプログラム253の機能ブロック図を示す。
【0061】
ファイルシステムプログラム253は、複数のコンピュータプログラムとして、ライト処理部401と、リード処理部402と、ファイル特性監視/移行処理部403と、ファイル単位WORMコマンド処理部404と、ボリューム単位WORMコマンド処理部405とを備える。
【0062】
ライト処理部401は、ファイルのライトコマンドを受付け、そのファイルが、新規作成されたファイルであれば、そのファイルをAOU-LU201Aに書き込む。また、ライト処理部401は、そのファイルが、更新されるファイルであれば、そのファイルのファイル特性をチェックし、そのファイル特性に最適なLU特性を有するLUを選択して、そのファイルを、選択されたLUに書き込む(但し、書込み先がWORMのファイル或いはLUである場合には、更新を拒否する)。ライト処理部401は、ファイル特性監視/移行処理部403のために、メタ情報として、図11に例示する平均更新間隔と、図12に例示する平均増加サイズを更新する。平均更新間隔も平均増加サイズも、各ファイル毎に算出される。
【0063】
ファイルAの平均更新間隔とは、ファイルAが平均してどのぐらいの時間間隔で更新されているのかを表す、更新頻度の指標となる情報である。この平均更新間隔は、今回の更新日時と前回の更新日時及び前回の平均更新間隔とを基に算出することができる。具体的には、例えば、更新回数がN回目の平均更新間隔は、
更新回数がN回目の平均更新間隔={(N−1)回目の平均更新間隔×(N−2)+N回目と(N−1)回目の更新日時の差分}/(N−1)
で算出することができる。但し、N=0の場合は、ファイルが新規に格納されたことになるので、平均更新時間間隔は無く、N=1の場合は、初めて更新されたことになるので、平均時間間隔は、0回目の更新日時と今回の更新日時との差分となる。
【0064】
ファイルAの平均増加サイズとは、ファイルAのファイルサイズが平均してどのぐらい増えているかを表す情報である。平均増加サイズがマイナスとなれば、ファイルサイズが減っていることを意味する。平均増加サイズは、今回の更新後ファイルサイズと、前回の更新後ファイルサイズ及び前回の平均増加サイズとを基に算出することができる。具体的には、例えば、更新回数がN回目の平均増加サイズは、
更新回数がN回目の平均増加サイズ={(N−1)回目の平均増加サイズ×(N−2)+N回目と(N−1)回目の更新後ファイルサイズの差分}/(N−1)
で算出することができる。但し、N=0の場合は、ファイルが新規に格納されたことになるので、平均増加サイズは無く、N=1の場合は、初めて更新されたことになるので、平均増加サイズは、0回目のファイルサイズと今回の更新後ファイルサイズとの差分となる。
【0065】
リード処理部402は、ファイルのリードコマンドを受付け、各特性毎のLUからファイルを検索し、探し出されたファイルを構成するブロックデータを取得し、取得したブロックデータからファイルを組み立て、そのファイルを、リードコマンドの発行元へ返す。リード処理部402は、平均更新間隔と同様の方法で、各ファイル毎の平均リード間隔を算出することができる。
【0066】
ファイル特性監視/移行処理部403は、定期的に、管理者が定義したポリシーに従って各ファイルのファイル特性を照合し、必要に応じて、ファイルをそのファイル特性の合ったLU特性を有するLUへ移動する。ポリシーの具体例を図13に示す。このポリシー551は、ファイルシステムプログラム253が保持する電子的なポリシーであり、平均更新間隔(平均ライト間隔)、平均リード間隔及び平均増加サイズのうちの少なくとも一つがどんな条件を満たしたファイルがどんなLUに移動するかを表している。このポリシー551によれば、平均増加サイズがXXXメガバイトを超えたファイルが、AOU−LU201Aに移動される。また、平均リード間隔がYYY分を超えた、平均更新間隔がXYZ分を超えた、及び、平均増加サイズがZZZメガバイトを超えた、の少なくとも一つに該当するファイルが、内部LU201Bに移動される。なお、AOU−LU201Aの特性を考慮すると、ZZZメガバイトに比してXXXメガバイトが大きい方が好ましいと考えられる。
【0067】
ファイル単位WORMコマンド処理部404は、ファイルのWORM化コマンドを受付けた場合、F−WORM−LU201Dへファイルをコピーし、そのファイルに対して、WORM化属性(例えば、ファイルシステムのメタ情報であり、WORM化有無や保存日時を表す情報)を設定する。
【0068】
ボリューム単位WORMコマンド処理部405は、大量のファイルを同一の日付でWORM化する場合、ファイル毎にWORM化するのでなく、総ファイルサイズ以上のLUを確保し、確保したLUへ全てのファイルをコピーし、コピー先のLUに対して、WORM化を行う。ボリューム単位WORMコマンド処理部405は、コピー元のファイルを、全て削除することができる。
【0069】
以下、各処理部401乃至405が行う処理について詳細に説明する。
【0070】
図14は、ライト処理部401によって行われる処理流れの一例を示す。
【0071】
ライト処理部401は、ファイルのライトコマンドを受信し、そのファイルが、新規作成されたファイルか更新されるファイルであるかを判断する(S101)。これは、例えば、そのファイルのファイル名を有するファイルを管理しているか否かを確認することにより、行うことができる。
【0072】
ライト処理部401は、S101で、新規作成ファイルと判断した場合、その新規作成ファイルを格納するためのブロックをAOU−LU201Aから確保する(S102)。ここでは、前述したアドレスマップ601やPV/LU管理表603から、AOU−LU201Aに属するブロックを特定できるので、新規作成ファイルを複数のLUに跨って格納してしまうことがない。ライト処理部401は、確保したブロックに新規作成ファイルを書込み、且つ、前述した平均更新間隔と平均増加サイズとを更新する(S109)。
【0073】
S101で、更新と判断した場合、ライト処理部401は、更新先のファイルがWORM化属性が設定されているファイルであるか否かを判断し、WORM化属性が設定されているファイルであれば、更新先のファイルを更新することを拒否する(S104)。
【0074】
そうでなければ、ライト処理部401は、更新先のファイルが低性能LUの条件に合致しているかどうかを判断する(S105)。具体的には、更新先のファイルの平均リード間隔、平均更新間隔及び平均増加サイズが、ポリシー551に記録されている、外部接続LUの条件に合致しているかどうかを判断する。合致していると判断した場合、ライト処理部401は、外部接続LU201Cからブロックを確保し(S106)、S109を実行する。なお、ここでのS109では、外部接続LU201Cから確保したブロックに、更新後のファイルを書き込むが、その際、ライト処理部201は、その外部接続LU201Cとは別のLUに存在する更新前のファイルを消去しても良い。
【0075】
S105で、更新先ファイルが低性能LUの条件に合致しないと判断した場合、ライト処理部は、更新先ファイルが高性能LUの条件に合致しているかどうかを判断する(S107)。具体的には、更新先のファイルの平均リード間隔、平均更新間隔及び平均増加サイズが、ポリシー551に記録されている、内部LUの条件に合致しているかどうかを判断する。合致していると判断した場合、ライト処理部401は、内部LU201Bからブロックを確保し、S109を実行する。なお、ここでのS109では、内部LU201Bから確保したブロックに、更新後のファイルを書き込むが、その際、ライト処理部201は、その内部LU201Bとは別のLUに存在する更新前のファイルを消去しても良い。
【0076】
S107で、更新先ファイルが高性能LUの条件に合致しないと判断した場合、ライト処理部は、S109で、既存の更新先ファイルを更新後ファイルに更新する。
【0077】
以上が、ライト処理部201が行う処理流れの一例である。なお、この処理流れによれば、S109で、平均更新間隔及び平均増加サイズが更新されるが、その更新によって、更新後のファイルが、低性能LU或いは高性能LUの条件に合致することがある。その場合には、次回の更新(S101で更新)の際に、その合致した条件に適合するLUへのファイル格納が行われることになる。
【0078】
図15は、リード処理部402によって行われる処理流れの一例を示す。
【0079】
リード処理部402は、ファイルシステム254に対するファイルのリードコマンドを受けた。リード処理部402は、そのファイルシステム254に属する全LUからLUを選択し、選択したLUのメタ情報から、リードコマンドで指定されているそのファイルを検索する(S201)。発見できなかった場合(S202でN)、リード処理部402は、上記全LUから次のLUを選択し(S203)、そのLUのメタ情報からファイルの検索を行う。発見できた場合(S202でY)、リード処理部402は、発見されたファイル(すなわち、リードコマンドで指定されているファイル)を読み出し(S204)、リードコマンドの発行元のクライアントに送信する。なお、S204では、平均リード間隔の更新が行われても良い。
【0080】
図16は、ファイル特性監視/移行処理部403によって行われる処理流れの一例を示す。
【0081】
ファイル特性監視/移行処理部403は、定期的に起動する。
【0082】
ファイル特性監視/移行処理部403は、ファイルシステム254に属する各LUから該当ファイルを検索する(S301でN、S302)。ここでの該当ファイルとは、例えば、今回の起動で未検索のファイルであって、任意に選択されたファイルである。
【0083】
ファイル特性監視/移行処理部403は、該当ファイルのファイル特性と、ポリシー551とを照合する(S303)。
【0084】
その結果、現在のファイルの格納場所がポリシー551が表す条件に適合するならば、換言すれば、そのファイル特性に適合するLU特性を有するLUに該当ファイルがあるならば(S304でY)、移行の必要がないので、ファイル特性監視/移行処理部403は、S301に戻る。
【0085】
一方、S303の結果、現在のファイルの格納場所がポリシー551が表す条件に適合しないならば、換言すれば、そのファイル特性に適合するLU特性を有するLU(以下、適合LU)に該当ファイルが無いならば(S304でN)、ファイル特性監視/移行処理部403は、そのファイルを適合LUに移動する(S305)。
【0086】
ファイル特性監視/移行処理部403は、ファイルシステム254に属する全てのLU内のファイルについて、S302以降を行い、それが終了したならば(S301でY)、処理終了となる。
【0087】
図17は、ファイル単位WORMコマンド処理部404によって行われる処理流れの一例を示す。
【0088】
ファイル単位WORMコマンド処理部404は、ファイルシステム254に対する、WORM化するファイルを指定したコマンド(ファイル単位WORM化コマンド)を受信する。その場合、ファイル単位WORMコマンド処理部404は、そのファイルシステム254に属する全LUからLUを選択し、選択したLUのメタ情報から、指定されているファイルを検索する(S401)。発見できなかった場合(S402でN)、ファイル単位WORMコマンド処理部404は、上記全LUから次のLUを選択し(S403)、そのLUのメタ情報からファイルの検索を行う。発見できた場合(S402でY)、ファイル単位WORMコマンド処理部404は、発見されたファイル(すなわち、ファイル単位WORM化コマンドで指定されているファイル)を、F−WORM−LU201Dに移動し(S404)、移動先のファイルに、メタ情報(例えば、WORM化有りと、保存期限)を設定する(S405)。
【0089】
なお、ファイル単位WORM化コマンドが、例えば、新規のライトに相当すれば、そのコマンドで指定されているファイルが、AOU−LU201Aではなく、F−WORM−LU201Dに格納されても良い。
【0090】
図18は、ボリューム単位WORMコマンド処理部405によって行われる処理流れの一例を示す。
【0091】
ボリューム単位WORMコマンド処理部405は、ファイル一覧リスト及び保存期限と、ファイルシステム254に対するボリューム単位WORMコマンドとを受ける。ファイル一覧リストには、WORM化する全ファイルの識別子(例えばファイル名)やサイズが記録されている。保存期限は、それら全ファイルに共通の期限である。
【0092】
ボリューム単位WORMコマンド処理部405は、ストレージシステム9AからLUを確保する(S501)。確保されるLUのサイズは、全ファイルの総ファイルサイズ以上である。
【0093】
次に、ボリューム単位WORMコマンド処理部405は、ファイル一覧リストから対象ファイルを選択する(S502でN、S503)。ここで言う対象ファイルとは、ファイル一覧リストから未だ選択されていないファイルであって、任意のファイルである。
【0094】
ボリューム単位WORMコマンド処理部405は、ファイルシステム254に属する全LUからLUを選択し、選択したLUのメタ情報から対象ファイルを検索する(S504)。発見できなかった場合(S505でN)、ボリューム単位WORMコマンド処理部405は、上記全LUから次のLUを選択し(S506)、そのLUのメタ情報から対象ファイルの検索を行う。発見できた場合(S505でY)、ボリューム単位WORMコマンド処理部405は、発見された対象ファイルを、S501で確保したLUに移動する(S507)。
【0095】
ボリューム単位WORMコマンド処理部405は、ファイル一覧リストに記録されている全ファイルについて、S503乃至S507の処理を繰り返し、それが終了したら(S502でY)、S501で確保したLUのWORM化を、ストレージシステム9Aに要求する(S508)。その際、保存期限をストレージシステム9Aに通知する。それにより、そのLUが、その保存期限が設定されたV−WORM−LU201Eとなる。
【0096】
なお、ボリューム単位WORM化コマンドが、例えば、新規のライトに相当すれば、そのコマンドで指定されているファイルが、AOU−LU201Aではなく、V−WORM−LU201Eに格納されても良い。
【0097】
以上が、本実施形態についての説明である。
【0098】
以上、上述した実施形態によれば、複数のLUが一つのファイルシステム254にまとめられていても、アドレスマップ601やPV/LU管理表603を基に、下位層へのI/O処理が行われるので、一つのファイルが複数のLUに跨って格納されてしまうことが生じない。
【0099】
また、上述した実施形態によれば、どんなファイル特性のファイルをどんなLU特性のLUに格納するかの電子的なポリシー551が設定され、適時に、そのポリシー551に従って、ファイルの再配置が行われる。すなわち、ファイルの特性毎にファイルが分類され、それぞれのファイル特性に合ったLUにファイルが適時に移行される。このため、ファイル特性ごとのバックアップや移行等において、効率的な運用管理が可能である。
【0100】
さらに、上述した実施形態によれば、そのようなファイルの分類を行っても、ファイルシステム254を利用するユーザへの論理ビュー(例えば、ディレクトリの中身のビュー)には、変更が生じない。このため、ユーザビリティを損なうことがないので、ユーザ側の業務に悪い影響を与えないようにすることができる。
【0101】
また、上述した実施形態によれば、新規作成ファイルや、平均増加サイズが大のファイルが、AOU−AUに格納される。システム構築の際に見積もったサイズは、多くの場合、運用を続けていく中で最適ではなくなっていくと考えられる。例えば、大きな記憶容量を有したLUを確保したものの、使用されない記憶容量が多い場合、余った記憶容量を別の用途へ使いまわせないために、大きな無駄が生じる。AOU(自動容量拡張機能)は、記憶容量を効率的に使用していくことを目的とした機能で、大きな見積もりサイズ(例えば1テラバイト)を指定しても、実際には使用状況に応じて記憶容量は少しずつ(例えば100メガバイト単位)で増減される。ファイルが作成された時点では、将来のファイルサイズは予測不可能であるため、新規にファイル作成する場合の初期の格納場所として、AOU−LUを選択することは、最適であると考えられる。
【0102】
また、上述した実施形態によれば、WORM化されるファイルは、WORM用のLU201D或いは201Eに格納される。もし、複数のLUからなるファイルシステム中に、WORM設定されたファイルが散在している場合(具体的には、一つのLUに、WORM設定されたファイルとそうでないファイルとが混在している場合)、WORM設定されたファイルを移行したいケースが生じると、ファイル単位での移行となるので、ファイルの検索が必要となる。そうすると、ファイル検索によるオーバヘッドによって処理が重くなると考えられる。しかし、上述した実施形態では、WORM化されたファイルは、WORM化されたファイルのみが格納されるLUがあり、そのLUに、WORM化されたファイルが格納されるので、WORM設定されたファイルを移行したいケースでは、LU単位での移行が可能となる。このため、ファイル検索によるオーバヘッドを無くすことができる。
【0103】
また、上述した実施形態では、ファイル単位でなくボリューム単位でWORM設定できるが、そのための技術として、例えば、特開2000−112822号公報、或いは、US出願番号10/769887号の技術を援用することができる。この技術では、WORM属性をLUに設定する場合、そのLUを構成するLDEV(論理記憶デバイス)に対し、“Read Only”という属性を設定する方法がある。ちなみに、ここでのLUは、一以上のLDEVで構成されたものである。
【0104】
また、上述した実施形態に係る仕組みは、ジュークボックス的な態様で使用されるストレージシステムに対応可能である。すなわち、一般のストレージシステムは、制御部の制約等により、常に接続できるLU(或いは記憶装置)に制限があり、それにより、或る時点での扱える記憶容量に制約が生じる。しかし、LU(或いは記憶装置)を、必要に応じて、接続或いは非接続にすることで(すなわち、ジュークボックス的な態様で使用することにより)、よりたくさんのLU(或いは記憶装置)が存在しても差し支えなくすることが可能である。本実施形態によれば、ファイル特性ごとにファイルがLUにまとまっているので、そのような、ジュークボックス的な態様でのストレージシステムに容易に対応することができる。
【0105】
以上、本発明の好適な実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲をこの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
【0106】
例えば、ファイルシステムプログラム253は、新規作成ファイルの格納の際に、ファイルシステム254に属する複数LUにおけるファイルパス名をチェックし、新規作成ファイルとファイルパス名が一致するファイルがあれば、その新規作成ファイルを格納しないように制御することができる(この場合、別のファイル名をつけることをユーザに指示することができる)。
【0107】
また、例えば、ファイルシステムプログラム253は、別のファイルシステムに属していたLUをファイルシステム254にインポートする(組み込む)場合、そのLU内のファイルのファイルパス名と、ファイルシステム254に既にインポートされている全LU内の全ファイルのファイルパス名との重複をチェックする。一致するファイルパス名があれば、ファイルシステムプログラム253は、いずれか一方のファイルパス名の変更を、ユーザからの指示に応じて或いは自動で行うことができる。
【図面の簡単な説明】
【0108】
【図1】図1に、ファイルシステムと論理ボリュームとの関係性の一例を示す。
【図2】図2は、従来技術の一つの課題の説明図である。
【図3】図3は、本発明の一実施形態に係るシステムの物理的な構成の一例の概要を示す。
【図4】図4は、本実施形態の概要の説明図である。
【図5】図5は、iノードでの管理形態の例を示す。
【図6】図6は、file1が特性A用LUに格納されている場合の管理形態を示す。
【図7】図7Aは、ファイルシステム254に関連付けられるLU特性の説明図である。図7Bは、ファイルシステムプログラム253が行うファイル格納制御の概要図である。
【図8】図8は、各LU特性の説明図である。
【図9】図9Aは、ファイルシステムプログラム253で管理されるアドレスマップの一例を示す。図9Bは、ファイルシステムプログラム253で管理されるPV/LU管理表の一例を示す。
【図10】図10は、ファイルシステムプログラム253の機能ブロック図を示す。
【図11】図11は、平均更新間隔の説明図である。
【図12】図12は、平均増加サイズの説明図である。
【図13】図13は、ポリシー551の一例を示す。
【図14】図14は、ライト処理部401によって行われる処理流れの一例を示す。
【図15】図15は、リード処理部402によって行われる処理流れの一例を示す。
【図16】図16は、ファイル特性監視/移行処理部403によって行われる処理流れの一例を示す。
【図17】図17は、ファイル単位WORMコマンド処理部404によって行われる処理流れの一例を示す。
【図18】図18は、ボリューム単位WORMコマンド処理部405によって行われる処理流れの一例を示す。
【符号の説明】
【0109】
5…NAS 7…クライアント 9A…ストレージシステム 9B…外部ストレージシステム 251…ファイル共有プログラム 253…ファイルシステム 255…デバイスドライバ
【特許請求の範囲】
【請求項1】
上位装置と下位のストレージシステムとに接続され、前記上位装置からファイルのライト要求やリード要求を受信するファイル格納制御装置において、
前記ストレージシステムから提供される複数の論理的な記憶ユニット(LU)を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供する記憶空間提供部と、
前記提供した記憶空間へのファイルのライト要求を前記上位装置から受信する受信部と、
前記ライト要求で指定されている記憶空間に関連付けられている前記複数のLUの中からLUを選択し、選択したLUに、前記ライト要求に従う前記ファイルを構成する全データを格納する格納制御部と
を備えるファイル格納制御装置。
【請求項2】
どんなファイル特性のファイルをどんなLU特性のLUに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部を更に備え、
前記格納制御部は、前記ファイルのファイル特性に合致するLU特性を前記ポリシーから特定し、前記特定したLU特性のLUを選択する、
請求項1記載のファイル格納制御装置。
【請求項3】
前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張LUを提供し、該自動容量拡張LUに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張LUに割り当て、
前記複数のLUには、前記自動容量拡張LUが含まれ、
前記格納制御部は、前記ファイルが、前記複数のLUに存在しない新規のファイルであれば、前記自動容量拡張LUを選択する、
請求項1記載のファイル格納制御装置。
【請求項4】
前記格納制御部は、前記複数のLUに格納されている各ファイルのファイル特性をチェックし、該ファイルのファイル特性に合致する第一のLU特性を特定し、該ファイルが、前記特定した第一のLU特性の第一のLUとは別の第二のLU特性の第二のLUに存在するならば、該ファイルを、前記第二のLUから前記第一のLUに移行させる、
請求項1記載のファイル格納制御装置。
【請求項5】
前記複数のLUには、高性能LUと、該高性能LUに比して性能の低い低性能LUとが含まれ、
前記ファイル格納制御装置は、ファイルへのアクセスの頻度を各ファイル別に管理するアクセス頻度管理部を更に備え、
前記格納制御部は、アクセス頻度の高いファイルを前記高性能LUに移行し、アクセス頻度の低いファイルを前記低性能LUに移行させる、
請求項4記載のファイル格納制御装置。
【請求項6】
前記高性能LUとは、前記ストレージシステムが備える記憶装置から用意されたLUである内部LUであり、前記低性能LUとは、前記ストレージシステムに接続された外部ストレージシステムの記憶資源にマッピングされた仮想的なLUである外部接続LUである、
請求項5記載のファイル格納制御装置。
【請求項7】
前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張LUを提供し、該自動容量拡張LUに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張LUに割り当て、
前記複数のLUには、前記自動容量拡張LUが含まれ、
前記ファイル格納制御装置は、更新によって単位時間当たりに増加したファイルサイズである平均増加サイズを各ファイル別に管理するファイルサイズ管理部を更に備え、
前記格納制御部は、平均増加サイズが所定値以上のファイルを、前記自動容量拡張LUに移行させる、
請求項4記載のファイル格納制御装置。
【請求項8】
前記格納制御部は、前記複数のLUに格納されている複数のファイルの中から、WORM(Write Once Read Many)のファイルを特定し、前記特定したWORMファイルを、前記複数のLUのうちのWORM用のLUに移行させる、
請求項4記載のファイル格納制御装置。
【請求項9】
前記格納制御部は、ファイル単位で保存期限が設定される場合、該保存期限を有するファイルを、前記WORM用のLUに移行させ、該移行先のファイルにWORM属性及び該保存期限を設定し、二以上のファイルに同一の保存期限が設定される場合、前記複数のLUの中から、該二以上のファイルの総ファイルサイズ以上の記憶容量を有するLUを確保し、該確保したLUに、該二以上のファイルを移行させて、該確保したLUに、WORM属性及び該保存期限を設定させる、
請求項8記載のファイル格納制御装置。
【請求項10】
前記記憶空間のアドレスと前記複数のLUに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部を更に備え、
前記格納制御部は、前記アドレスマップを参照することにより、前記選択したLUに前記ファイルの全データを格納する、
請求項1記載のファイル格納制御装置。
【請求項11】
どんなファイル特性のファイルをどんなLU特性のLUに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部と、
前記記憶空間のアドレスと前記複数のLUに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部と
を更に備え、
前記格納制御部は、前記アドレスマップを参照することにより、前記選択したLUに前記ファイルの全データを格納し、その後、前記複数のLUに格納されている各ファイルのファイル特性をチェックし、該チェックされたファイル特性に合致する第一のLU特性を前記ポリシーから特定し、該ファイルが、前記特定した第一のLU特性の第一のLUとは別の第二のLU特性の第二のLUに存在するならば、該ファイルを、前記第二のLUから前記第一のLUに移行させ、その際、前記アドレスマップを参照し、該ファイルを構成する全データを前記第一のLUに格納するよう制御する、
請求項1記載のファイル格納制御装置。
【請求項12】
ストレージシステムから提供される複数の論理的な記憶ユニット(LU)を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供し、
前記提供した記憶空間へのファイルのライト要求を前記上位装置から受け付け、
前記ライト要求で指定されている記憶空間に関連付けられている前記複数のLUの中からLUを選択し、
該選択したLUに、前記ライト要求に従う前記ファイルを構成する全データを格納する、ファイル格納制御方法。
【請求項1】
上位装置と下位のストレージシステムとに接続され、前記上位装置からファイルのライト要求やリード要求を受信するファイル格納制御装置において、
前記ストレージシステムから提供される複数の論理的な記憶ユニット(LU)を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供する記憶空間提供部と、
前記提供した記憶空間へのファイルのライト要求を前記上位装置から受信する受信部と、
前記ライト要求で指定されている記憶空間に関連付けられている前記複数のLUの中からLUを選択し、選択したLUに、前記ライト要求に従う前記ファイルを構成する全データを格納する格納制御部と
を備えるファイル格納制御装置。
【請求項2】
どんなファイル特性のファイルをどんなLU特性のLUに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部を更に備え、
前記格納制御部は、前記ファイルのファイル特性に合致するLU特性を前記ポリシーから特定し、前記特定したLU特性のLUを選択する、
請求項1記載のファイル格納制御装置。
【請求項3】
前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張LUを提供し、該自動容量拡張LUに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張LUに割り当て、
前記複数のLUには、前記自動容量拡張LUが含まれ、
前記格納制御部は、前記ファイルが、前記複数のLUに存在しない新規のファイルであれば、前記自動容量拡張LUを選択する、
請求項1記載のファイル格納制御装置。
【請求項4】
前記格納制御部は、前記複数のLUに格納されている各ファイルのファイル特性をチェックし、該ファイルのファイル特性に合致する第一のLU特性を特定し、該ファイルが、前記特定した第一のLU特性の第一のLUとは別の第二のLU特性の第二のLUに存在するならば、該ファイルを、前記第二のLUから前記第一のLUに移行させる、
請求項1記載のファイル格納制御装置。
【請求項5】
前記複数のLUには、高性能LUと、該高性能LUに比して性能の低い低性能LUとが含まれ、
前記ファイル格納制御装置は、ファイルへのアクセスの頻度を各ファイル別に管理するアクセス頻度管理部を更に備え、
前記格納制御部は、アクセス頻度の高いファイルを前記高性能LUに移行し、アクセス頻度の低いファイルを前記低性能LUに移行させる、
請求項4記載のファイル格納制御装置。
【請求項6】
前記高性能LUとは、前記ストレージシステムが備える記憶装置から用意されたLUである内部LUであり、前記低性能LUとは、前記ストレージシステムに接続された外部ストレージシステムの記憶資源にマッピングされた仮想的なLUである外部接続LUである、
請求項5記載のファイル格納制御装置。
【請求項7】
前記ストレージシステムが、前記ファイル格納制御装置に対し自動容量拡張LUを提供し、該自動容量拡張LUに対する書き込みに応じて、複数の記憶領域のうちの未割り当ての記憶領域を該自動容量拡張LUに割り当て、
前記複数のLUには、前記自動容量拡張LUが含まれ、
前記ファイル格納制御装置は、更新によって単位時間当たりに増加したファイルサイズである平均増加サイズを各ファイル別に管理するファイルサイズ管理部を更に備え、
前記格納制御部は、平均増加サイズが所定値以上のファイルを、前記自動容量拡張LUに移行させる、
請求項4記載のファイル格納制御装置。
【請求項8】
前記格納制御部は、前記複数のLUに格納されている複数のファイルの中から、WORM(Write Once Read Many)のファイルを特定し、前記特定したWORMファイルを、前記複数のLUのうちのWORM用のLUに移行させる、
請求項4記載のファイル格納制御装置。
【請求項9】
前記格納制御部は、ファイル単位で保存期限が設定される場合、該保存期限を有するファイルを、前記WORM用のLUに移行させ、該移行先のファイルにWORM属性及び該保存期限を設定し、二以上のファイルに同一の保存期限が設定される場合、前記複数のLUの中から、該二以上のファイルの総ファイルサイズ以上の記憶容量を有するLUを確保し、該確保したLUに、該二以上のファイルを移行させて、該確保したLUに、WORM属性及び該保存期限を設定させる、
請求項8記載のファイル格納制御装置。
【請求項10】
前記記憶空間のアドレスと前記複数のLUに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部を更に備え、
前記格納制御部は、前記アドレスマップを参照することにより、前記選択したLUに前記ファイルの全データを格納する、
請求項1記載のファイル格納制御装置。
【請求項11】
どんなファイル特性のファイルをどんなLU特性のLUに格納するかを定義した電子的なポリシーを記憶するポリシー記憶部と、
前記記憶空間のアドレスと前記複数のLUに対するアドレスとの対応関係を表すアドレスマップを記憶するアドレスマップ記憶部と
を更に備え、
前記格納制御部は、前記アドレスマップを参照することにより、前記選択したLUに前記ファイルの全データを格納し、その後、前記複数のLUに格納されている各ファイルのファイル特性をチェックし、該チェックされたファイル特性に合致する第一のLU特性を前記ポリシーから特定し、該ファイルが、前記特定した第一のLU特性の第一のLUとは別の第二のLU特性の第二のLUに存在するならば、該ファイルを、前記第二のLUから前記第一のLUに移行させ、その際、前記アドレスマップを参照し、該ファイルを構成する全データを前記第一のLUに格納するよう制御する、
請求項1記載のファイル格納制御装置。
【請求項12】
ストレージシステムから提供される複数の論理的な記憶ユニット(LU)を関連付けた一つの記憶空間を、ユーザが使用する上位装置に提供し、
前記提供した記憶空間へのファイルのライト要求を前記上位装置から受け付け、
前記ライト要求で指定されている記憶空間に関連付けられている前記複数のLUの中からLUを選択し、
該選択したLUに、前記ライト要求に従う前記ファイルを構成する全データを格納する、ファイル格納制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2008−33517(P2008−33517A)
【公開日】平成20年2月14日(2008.2.14)
【国際特許分類】
【出願番号】特願2006−204654(P2006−204654)
【出願日】平成18年7月27日(2006.7.27)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成20年2月14日(2008.2.14)
【国際特許分類】
【出願日】平成18年7月27日(2006.7.27)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]