(57)【特許請求の範囲】
【請求項１】
格納可能なファイル数に上限が設定されたデータ記憶領域を有する第１のボリュームの記憶容量の制御を行う制御装置であって、
前記第１のボリュームに格納済みのファイル数を表す値が前記上限未満で定められた所定値以上である場合に前記第１のボリュームに格納済みのファイルの使用容量の増加傾向を判断する判断部と、
前記使用容量が所定期間に所定量以上増加していないと前記判断部が判断した場合に前記第１のボリュームより容量が大きい第２のボリュームの作成を回避し、前記使用容量が前記所定期間に前記所定量以上増加していると前記判断部が判断した場合に前記第２のボリュームを作成するボリューム制御部と、
を有することを特徴とする制御装置。
【請求項２】
前記判断部は、前記第１のボリュームに格納済みのファイルのうち、所定時間前までの期間に更新されたすべての更新ファイルの現在のサイズの合計が、前記すべての更新ファイルの更新前のサイズの合計に対して所定割合以上拡大しているかを判定することにより、前記使用容量の増加傾向を判断することを特徴とする請求項１記載の制御装置。
【請求項３】
前記ボリューム制御部は、当該制御装置のオペレーションシステムの更新時に動作することを特徴とする請求項１または２に記載の制御装置。
【請求項４】
前記第１のボリュームのデータ記憶領域を示すアドレスの管理単位に使用するビット数より、前記第２のボリュームのデータ記憶領域を示すアドレスの管理単位に使用するビット数の方が多いことを特徴とする請求項１乃至３のいずれか１項に記載の制御装置。
【請求項５】
格納可能なファイル数に上限が設定されたデータ記憶領域を有する第１のボリュームの記憶容量の制御を行うコンピュータが、
前記第１のボリュームに格納済みのファイル数を表す値が前記上限未満で定められた所定値以上である場合に前記第１のボリュームに格納済みのファイルの使用容量の増加傾向を判断し、
前記使用容量が所定期間に所定量以上増加していないと判断した場合に前記第１のボリュームより容量が大きい第２のボリュームの作成を回避し、前記使用容量が前記所定期間に前記所定量以上増加していると判断した場合に前記第２のボリュームを作成する、
ことを特徴とする制御方法。
【請求項６】
格納可能なファイル数に上限が設定されたデータ記憶領域を有する第１のボリュームと、
前記第１のボリュームに格納済みのファイル数を表す値が前記上限未満で定められた所定値以上である場合に前記第１のボリュームに格納済みのファイルの使用容量の増加傾向を判断する判断部と、前記使用容量が所定期間に所定量以上増加していないと前記判断部が判断した場合に前記第１のボリュームより容量が大きい第２のボリュームの作成を回避し、前記使用容量が前記所定期間に前記所定量以上増加していると前記判断部が判断した場合に前記第２のボリュームを作成するボリューム制御部と、を有する制御装置と、
を備えることを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御装置、制御方法およびストレージ装置に関する。
【背景技術】
【０００２】
複数のＲＡＩＤ（Redundant Arrays of Inexpensive/Independent Disks）グループを統合して１つのストレージ・プールを作成し、必要に応じて論理的なボリューム（フレックスボリューム）を１つまたは複数個作成する技術が知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】ETRNUS NR1000F Series [online] FUJITSU Corporation, [retrieved on 2011-03-31]. Retrieved from the Internet: <http://storage-system.fujitsu.com/jp/products/nwdiskarray/feature/hard090/>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、記憶するデータのアドレスを管理する単位に６４ビットを用いた６４ビットフレックスボリュームをストレージ・プール内に作成することが可能になっている。６４ビットフレックスボリュームは、例えば記憶するデータのアドレスを管理する単位に３２ビットを用いた３２ビットフレックスボリュームと比べ、記憶容量を大きくすることができる。また、６４ビットフレックスボリュームは、３２ビットフレックスボリュームと比べ、同じ記憶容量を確保した場合にフレックスボリューム内のパリティディスクが占める割合を減らすことができるため、ストレージ・プールの資源を有効に活用することができる。
【０００５】
１つの６４ビットフレックスボリュームに記憶できるファイルの上限が決められている場合がある。この場合、６４ビットフレックスボリュームが記憶できるファイルの上限に達すると、未使用のデータ記憶領域が残っているにもかかわらず新たなファイルの書き込みができなくなってしまう。
【０００６】
本発明はこのような点に鑑みてなされたものであり、過剰なデータ記憶領域を有するボリュームの作成を抑制する制御装置、制御方法およびストレージ装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、開示の制御装置が提供される。この制御装置は、計数部と判断部とボリューム制御部とを有する。
計数部は、記憶可能なファイル数に上限が設定されたデータ記憶領域を有する第１のボリュームに記憶されているファイル数を計数する。
【０００８】
判断部は、計数部により計数されたファイル数が所定数より多い場合に第１のボリュームに記憶されているファイルの使用容量の増加傾向を判断する。
ボリューム制御部は、ファイルの使用容量が所定期間に所定量以上増加していると判断部が判断した場合に第２のボリュームを作成する。
【発明の効果】
【０００９】
過剰なデータ記憶領域を有するボリュームの作成を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態のストレージ装置を示す図である。
【図２】第２の実施の形態のストレージシステムを示すブロック図である。
【図３】第２の実施の形態の制御部の機能を示すブロック図である。
【図４】ボリューム情報管理テーブルを説明する図である。
【図５】ファイル情報管理テーブルを説明する図である。
【図６】アグリゲート制御部の処理を示すフローチャートである。
【図７】６４ビットアグリゲートボリュームへの移行処理を説明する図である。
【図８】６４ビットアグリゲートボリュームへの移行処理を説明する図である。
【発明を実施するための形態】
【００１１】
以下、実施の形態のストレージ装置を、図面を参照して詳細に説明する。第１の実施の形態において、開示のストレージ装置の実施の形態について説明し、その後、第２の実施の形態において、開示のストレージ装置をより具体的に説明する。
【００１２】
＜第１の実施の形態＞
図１は、第１の実施の形態のストレージ装置を示す図である。
第１の実施の形態のストレージ装置１は、制御装置２と、ストレージ・プール３とを有している。ストレージ・プール３は、１つまたは複数のドライブ装置（ＨＤＤ（Hard Disk Drive）や、ＳＳＤ（Solid State Drive）等）で構成される仮想的な記憶領域である。ストレージ・プール３には、ドライブ装置の一部のデータ記憶領域で構成される論理的な第１のボリューム３ａが、制御装置２によって作成されている。第１のボリューム３ａは、制御装置２によって書き込むファイル数に上限が設定された記憶領域（例えば１６ＴＢ（Tera Byte））を有する。ストレージ・プール３には、第１のボリューム３ａ以外に、複数の論理ボリュームを作成可能なデータ記憶領域が存在する。
【００１３】
制御装置２は、第１のボリューム３ａに通信回線を介して接続されている。この制御装置２は、業務等に用いるサーバ装置４から第１のボリューム３ａへのファイルアクセスを制御する。すなわち、制御装置２は、サーバ装置４から受け付けたデータの、第１のボリューム３ａへの書き込み、およびサーバ装置４から受け付けた、第１のボリューム３ａに記憶されているデータの読み出しを制御する。この制御装置２は、計数部２ａと、判断部２ｂと、ボリューム制御部２ｃと、移行処理部２ｄとを有している。なお、計数部２ａ、判断部２ｂ、ボリューム制御部２ｃ、および移行処理部２ｄは、制御装置２が有するＣＰＵ（Central Processing Unit）が備える機能により実現することができる。
【００１４】
計数部２ａは、第１のボリューム３ａに記憶されているファイルの数を計数する。
判断部２ｂは、計数部２ａにより計数されたファイル数が所定数（例えば、上限の９０％）より多い場合に第１のボリューム３ａに記憶されているファイルの使用容量（データの記憶に使用している記憶容量）の増加傾向を判断する。判断部２ｂが、ファイルの使用容量の増加傾向を判断する方法としては、例えば、ファイルの使用容量が、所定期間内に所定割合以上増加しているか否かを判断する。
【００１５】
ボリューム制御部２ｃは、計数部２ａにより計数されたファイル数が所定数より多い場合であっても、ファイルの使用容量が、所定期間内に所定割合以上増加している場合は、第１のボリューム３ａのデータ記憶領域を拡張した第２のボリューム３ｂ（例えば１００ＴＢ）を作成する。このボリューム制御部２ｃの処理は、判断部２ｂの判断により、ファイルの容量が増加する可能性が比較的高いと予測されることに基づく処理である。なお、第２のボリューム３ｂは、第１のボリューム３ａを拡張して作成してもよいし、第１のボリューム３ａとは別個に第２のボリューム３ｂを新たに作成してもよい。ボリューム制御部２ｃが、第２のボリューム３ｂを作成することにより、第２のボリューム３ｂに記憶するファイルの使用容量が増加しても、新たなボリュームの作成を回避し、ボリュームの移行処理に伴う制御装置２の処理負荷を軽減することができる。
【００１６】
移行処理部２ｄは、ボリューム制御部２ｃが作成した第２のボリューム３ｂに第１のボリューム３ａに記憶されているファイルをコピーする等、作成された第２のボリューム３ｂにサーバ装置４がファイルアクセスを可能とする処理を行う。
【００１７】
他方、ボリューム制御部２ｃは、ファイルの使用容量が所定期間に所定量以上増加していないと判断部２ｂが判断した場合に第２のボリューム３ｂの作成を回避する。このボリューム制御部２ｃの処理は、判断部２ｂの判断により、ファイルの容量が増加する可能性が比較的低いと予測されることに基づく処理である。データ記憶領域の使用率の増加の見込みが少ない第２のボリューム３ｂの作成を回避することで、過剰なデータ記憶領域を有するボリュームの作成を抑制することができる。
【００１８】
なお、ボリューム制御部２ｃは、第１のボリューム３ａに記憶するファイル数が上限に達した場合、新たに第３のボリューム３ｃを作成することができる。なお、第３のボリューム３ｃの容量は、特に限定されない。
【００１９】
このストレージ装置１によれば、ボリューム制御部２ｃが、第１のボリューム３ａのファイルの使用容量が所定期間に所定量以上増加していないと判断した場合、第１のボリューム３ａのデータ記憶領域を拡張した第２のボリューム３ｂの作成を回避する。このため、計数部２ａにより計数されたファイル数が所定数より多い場合に一意に第２のボリューム３ｂを作成する場合に比べ、過剰なデータ記憶領域を有するボリュームの作成を抑制することができる。ひいては、ストレージ・プール３の記憶領域を節約することができる。
【００２０】
＜第２の実施の形態＞
図２は、第２の実施の形態のストレージシステムを示すブロック図である。
図２に示すストレージシステムは、サーバ装置４１、４２、４３と、これらのサーバ装置４１、４２、４３にＬＡＮ（Local Area Network）を介して接続されたストレージ装置１００とを有している。
【００２１】
ストレージ装置１００は、ＮＡＳ（Network Attached Storage）であり、複数のＨＤＤ２０を備えるドライブエンクロージャ（ＤＥ：Drive Enclosure）２０ａと、このドライブエンクロージャ２０ａの物理記憶領域をＲＡＩＤによって管理する制御部１０を有している。制御部１０は、制御装置の一例である。なお、本実施の形態では、ドライブエンクロージャ２０ａが備える記憶媒体としては、ＨＤＤ２０を例示したが、ＨＤＤ２０に限らず、ＳＳＤ等、他の記憶媒体を用いてもよい。以下、ドライブエンクロージャ２０ａが備える複数のＨＤＤ２０を区別しない場合は、「ＨＤＤ２０群」と言う。
【００２２】
なお、ストレージ装置１００が備える制御部の数は、１つに限定されず、２つ以上の制御部によりＨＤＤ２０群の制御の冗長性が確保されていてもよい。また、本実施の形態では、ＮＡＳのストレージ装置１００を説明するが、制御部１０が備える機能は、ＳＡＮ（Storage Area Network）等、他のストレージ装置にも適用することができる。
【００２３】
ストレージ装置１００とサーバ装置４１、４２、４３との間のデータアクセスは、ファイル単位で行われる。サーバ装置４１、４２、４３からストレージ装置１００へのデータアクセスは、例えばファイル名や共有名等ファイルを特定する呼び名で行われる。制御部１０は、それぞれ、サーバ装置４１、４２、４３からのファイルアクセス要求に応じてドライブエンクロージャ２０ａが有するＨＤＤ２０の物理記憶領域へのファイルアクセスをＲＡＩＤによって制御する。
【００２４】
制御部１０は、ＣＰＵ１０１と、ＲＡＭ（Random Access Memory）１０２と、フラッシュＲＯＭ１０３と、キャッシュメモリ１０４と、ＬＡＮインタフェース１０５と、デバイスインタフェース（ＤＩ：Device Interface）１０６とを備えている。
【００２５】
ＣＰＵ１０１は、フラッシュＲＯＭ１０３等に記憶されたプログラムを実行することにより、制御部１０全体を統括的に制御する。ＲＡＭ１０２は、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部や、プログラムによる処理に必要な各種データを一時的に記憶する。フラッシュＲＯＭ１０３は、不揮発性のメモリであり、ＣＰＵ１０１により実行されるＯＳのプログラム、アプリケーションプログラムや、プログラムの実行に必要な各種のデータ等を記憶する。
【００２６】
また、フラッシュＲＯＭ１０３は、ストレージ装置１００の停電時等にキャッシュメモリ１０４に記憶されているデータの退避先となる。
キャッシュメモリ１０４は、ＨＤＤ２０群に書き込まれているファイルやＨＤＤ２０群から読み出したファイルを一時的に記憶する。
【００２７】
そして、制御部１０は、例えばサーバ装置４１、４２、４３からのファイル読み出し命令を受けたときに、読み出し対象のファイルがキャッシュメモリ１０４に記憶されているか否かを判断する。読み出し対象のファイルがキャッシュメモリ１０４に記憶されていれば、制御部１０は、キャッシュメモリ１０４に記憶されている読み出し対象のファイルをサーバ装置４１、４２、４３に送る。読み出し対象のファイルをＨＤＤ２０群から読み出す場合に比べ、ファイルを迅速にサーバ装置４１、４２、４３に送ることができる。
【００２８】
また、キャッシュメモリ１０４には、ＣＰＵ１０１による処理に必要なファイルが一時的に記憶されてもよい。このキャッシュメモリ１０４としては、例えば、ＳＲＡＭ、ＤＲＡＭ等の揮発性の半導体装置が挙げられる。また、キャッシュメモリ１０４の記憶容量は、特に限定されないが、一例として２〜６４ＧＢ程度である。
【００２９】
ＬＡＮインタフェース１０５は、ＬＡＮ５０に接続され、ＬＡＮ５０を介してサーバ装置４１、４２、４３に接続されている。ＬＡＮインタフェース１０５は、サーバ装置４１、４２、４３と制御部１０との間でＮＦＳ（Network File System）、ＣＩＦＳ（Common Internet File System）、ＨＴＴＰ（HyperText Transfer Protocol）等のプロトコルを用いてファイルを送受信する。
【００３０】
デバイスインタフェース１０６は、ドライブエンクロージャ２０ａに接続されている。このデバイスインタフェース１０６は、ドライブエンクロージャ２０ａが備えるＨＤＤ２０群とキャッシュメモリ１０４との間でファイルを送受信するインタフェース機能を提供する。制御部１０は、デバイスインタフェース１０６を介してドライブエンクロージャ２０ａが備えるＨＤＤ２０群との間でファイルの送受信を行う。
【００３１】
ドライブエンクロージャ２０ａには、ドライブエンクロージャ２０ａが備える複数のＨＤＤ２０のうち、１つ、または複数のＨＤＤ２０により構成されたＲＡＩＤグループが形成されている。
【００３２】
図２では、ＲＡＩＤ６の実装の１つであり、ＲＡＩＤグループ内にパリティディスクを２つ設置するＲＡＩＤ−ＤＰ（Double Parity）（登録商標）を構成するＲＡＩＤグループ２１、２２を示している。なお、ＲＡＩＤグループ２１、２２のＲＡＩＤ構成は、一例であり、図示のＲＡＩＤ構成に限定されない。例えば、ＲＡＩＤグループ２１、２２は、任意の個数のＨＤＤ２０を有することができる。また、ＲＡＩＤグループ２１、２２は、ＲＡＩＤ５等、任意のＲＡＩＤ方式で構成することができる。次に、制御部１０が有する機能を説明する。
【００３３】
図３は、第２の実施の形態の制御部の機能を示すブロック図である。
制御部１０は、ＲＡＩＤグループ２１、２２を１つの仮想的な記憶領域として取り扱うアグリゲート２０ｂを有している。アグリゲート２０ｂ内には、１つまたは複数の論理的なボリュームを作成することができる。以下、アグリゲート２０ｂ内に作成されたボリュームを「アグリゲートボリューム」と言う。図３は、２つのアグリゲートボリューム３１、３２を図示している。
【００３４】
制御部１０は、ネットワーク制御部１１と、プロトコル制御部１２と、アクセス制御部１３と、アグリゲート制御部１４と、ディスク制御部１５とを有している。
ネットワーク制御部１１は、ＬＡＮ５０を介してサーバ装置４１、４２、４３それぞれとネットワークを構築する。
【００３５】
プロトコル制御部１２は、前述したＮＦＳやＣＩＦＳ等のプロトコルを用いてサーバ装置４１〜４３と通信を行う。
アクセス制御部１３は、サーバ装置４１、４２、４３からアグリゲートボリューム３１、３２へのアクセス権限の確認、認証等を行う。
【００３６】
アグリゲート制御部１４は、計数部、判断部およびボリューム制御部の一例である。アグリゲート制御部１４は、サーバ装置４１、４２、４３とアグリゲートボリューム３１、３２とのアクセスを制御する。また、アグリゲート制御部１４は、アグリゲートボリュームを作成する機能を有している。アグリゲート制御部１４は、作成するアグリゲートボリュームの記憶容量を、例えば２０ＭＢから４ＫＢ単位にて作成可能であり、既に作成したアグリゲートボリューム３１、３２の記憶容量を変更することも可能である。また、アグリゲート制御部１４は、アグリゲート２０ｂ内に作成したアグリゲートボリュームの管理用に作成したボリューム情報管理テーブルを監視、管理する。例えば、アグリゲート制御部１４は、ボリューム情報管理テーブルを用いてアグリゲートボリュームの作成、削除およびアグリゲートボリュームの移行処理を制御する。ここで、アグリゲートボリュームの移行処理は、新たなアグリゲートボリュームを作成する処理、既存のアグリゲートボリュームに記憶されているファイルを作成したアグリゲートボリュームにコピーする処理、およびサーバ装置４１、４２、４３と既存のアグリゲートボリュームとのアクセスパスを、作成したアグリゲートボリュームに切り替える処理を含む。
【００３７】
ところで、フラッシュＲＯＭ１０３には、ＨＤＤ２０のデータ記憶領域を管理するアドレスに３２ビットを用いたアグリゲートボリューム３１、３２をサポートする第１のバージョンのＯＳが記憶されている。アグリゲート制御部１４は、フラッシュＲＯＭ１０３に記憶された第１のバージョンのＯＳを実行することで、記憶容量の上限が１６ＴＢのアグリゲートボリューム３１、３２を作成することができる。
【００３８】
ストレージ装置１００の管理者（以下、単に「管理者」と言う）の改版処理により、フラッシュＲＯＭ１０３に記憶されている第１のバージョンのＯＳを、第２のバージョンのＯＳに改版することができる。第２のバージョンのＯＳは、ＨＤＤ２０のデータ記憶領域を管理するアドレスに６４ビットを用いたアグリゲートボリュームをサポートする。ＣＰＵ１０１がフラッシュＲＯＭ１０３に記憶された第２のバージョンのＯＳを実行することで、アグリゲート制御部１４は、記憶容量の上限が１００ＴＢのアグリゲートボリュームを作成することができる。但し、３２ビットアグリゲートボリュームも６４ビットアグリゲートボリュームも、格納することができるファイル数の上限は等しく設定されている。ファイル数の上限は、管理者が設定することができる。
【００３９】
アグリゲート制御部１４は、ボリューム管理部１４ａとファイル管理部１４ｂとを有している。
ボリューム管理部１４ａは、アグリゲートボリューム毎に作成されアグリゲート２０ｂに関する情報を記憶したボリューム情報管理テーブルを管理する。
【００４０】
ファイル管理部１４ｂは、ファイル毎に設定され、ファイルに関する情報を記憶したファイル情報管理テーブルを管理する。なお、ボリューム情報管理テーブルおよびファイル情報管理テーブルは、ＲＡＭ１０２に記憶されている。
【００４１】
ディスク制御部１５は、アグリゲート制御部１４の要求に応じてアグリゲートボリューム３１、３２および作成した６４ビットアグリゲートボリュームを構築するＨＤＤ２０群に対しアクセスする。
【００４２】
次に、ボリューム情報管理テーブルの内容を説明する。
図４は、ボリューム情報管理テーブルを説明する図である。
ボリューム情報管理テーブル１４１には、アグリゲートボリューム番号、アグリゲートボリューム名、アグリゲートボリュームサイズ、使用容量、格納ボリューム数、構成ディスク数、ＲＡＩＤタイプ、および格納ファイル数の欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００４３】
アグリゲートボリューム番号の欄には、ボリューム情報管理テーブル１４１を管理する番号が設定されている。
アグリゲートボリューム名の欄には、アグリゲートボリュームを識別する名前が設定されている。
【００４４】
アグリゲートボリュームサイズの欄には、当該アグリゲートボリュームが備える記憶容量（Byte）が設定されている。
使用容量の欄には、当該アグリゲートボリュームのデータの記憶に使用している記憶容量（Byte）が設定されている。
【００４５】
格納ボリューム数の欄には、当該アグリゲートボリューム内に作成される論理ボリューム（以下、「サブボリューム」と言う）の数が設定されている。このように、アグリゲートボリューム内に、さらに論理的なサブボリュームを作成することも可能である。
【００４６】
構成ディスク数の欄には、当該アグリゲートボリュームを構築するＨＤＤ２０の数が設定されている。
ＲＡＩＤタイプの欄には、当該アグリゲートボリュームのＲＡＩＤタイプが設定されている。
【００４７】
格納ファイル数の欄には、当該アグリゲートボリュームに格納されているファイルの数が設定されている。
次に、ファイル情報管理テーブルの内容を説明する。
【００４８】
図５は、ファイル情報管理テーブルを説明する図である。
ファイル情報管理テーブル１４２には、ファイル名、ファイル格納ボリューム名、ファイル格納場所、ファイル作成日、オリジナルファイルサイズ、更新回数、最終ファイル更新日、カレントファイルサイズの欄が設けられている。横方向に並べられた情報同士が互いに関連づけられている。
【００４９】
ファイル名の欄には、ファイルを識別する名前が設定されている。
ファイル格納ボリューム名の欄には、当該ファイルを格納するアグリゲート２０ｂのボリューム名を識別する名前が設定されている。
【００５０】
ファイル格納場所の欄には、当該ファイルが格納されているアグリゲート２０ｂ内の場所を識別する情報が設定されている。
ファイル作成日の欄には、当該ファイルが最初に作成された日付が設定されている。この日付は、当該ファイルが上書きされた場合も変わらない。
【００５１】
オリジナルファイルサイズの欄には、当該ファイルが最初に作成されたときのファイルの容量が設定されている。
更新回数の欄には、当該ファイルが更新された回数が設定されている。
【００５２】
最終ファイル更新日の欄には、当該ファイルが最後に更新された日付が設定されている。
カレントファイルサイズの欄には、当該ファイルの現在の容量（当該ファイルが最後に更新されたときの容量）が設定されている。
【００５３】
次に、フラッシュＲＯＭ１０３に記憶されているＯＳが、第１のバージョンのＯＳから第２のバージョンのＯＳに改版された後に、最初に制御部１０が起動したときのアグリゲート制御部１４の処理を説明する。
【００５４】
図６は、アグリゲート制御部の処理を示すフローチャートである。
［ステップＳ１］  アグリゲート制御部１４は、ボリューム管理部１４ａが管理している全てのボリューム情報管理テーブル１４１を取得する。その後、ステップＳ２に遷移する。
【００５５】
［ステップＳ２］  アグリゲート制御部１４は、ステップＳ１にて取得した各ボリューム情報管理テーブル１４１のアグリゲートボリュームサイズの欄と使用容量の欄を参照し、アグリゲートボリュームサイズにおける使用容量の割合をそれぞれ演算する。そして、使用率が７５％以上の３２ビットアグリゲートボリュームを検索する。なお、７５％は管理者が予め設定した値の一例であり、７５％は任意の値に変更することができる。検索が終了すると、ステップＳ３に遷移する。
【００５６】
［ステップＳ３］  アグリゲート制御部１４は、ステップＳ２の検索の結果、使用率が７５％以上の３２ビットアグリゲートボリュームが存在するか否かを判断する。使用率が７５％以上のボリュームが存在する場合（ステップＳ３のＹｅｓ）、ステップＳ４に遷移する。使用率が７５％以上のボリュームが存在しない場合（ステップＳ３のＮｏ）、図６の処理を終了する。すなわち、使用率が７５％以上のボリュームが存在しない場合は、いずれの３２ビットアグリゲートボリュームも、後述する６４ビットアグリゲートボリュームへの移行処理を行わない。
【００５７】
［ステップＳ４］  アグリゲート制御部１４は、使用率が７５％以上の３２ビットアグリゲートボリューム（以下、「該当ボリューム」と言う）のボリューム情報管理テーブル１４１の格納ファイル数を取得する。また、アグリゲート制御部１４は、該当ボリュームそれぞれのファイル情報管理テーブル１４２のファイル作成日と最終ファイル更新日とを参照し、最終ファイル更新日が、ファイル作成日の６ヶ月以内であるファイルの数、すなわち、現在から６ヶ月以内に更新したファイルの数（以下、更新ファイル数と言う）を計数する。なお、６ヶ月以内は管理者が予め設定した期間の一例であり、６ヶ月以内は任意の期間に変更することができる。格納ファイル数および更新ファイル数の取得が終了すると、ステップＳ５に遷移する。
【００５８】
［ステップＳ５］  アグリゲート制御部１４は、ステップＳ４にて取得した更新ファイル数を格納ファイル数で除算して、格納ファイル数における更新ファイル数の割合を算出する。その後、ステップＳ６に遷移する。
【００５９】
［ステップＳ６］  アグリゲート制御部１４は、ステップＳ４にて取得した格納ファイル数が上限に近いか否かを判断する。アグリゲート制御部１４は、例えば、上限として予め設定された割合以上である場合や、上限として予め設定されたファイル数以上である場合に、格納ファイル数が上限に近いと判断することができる。上限とする割合やファイル数は、管理者が定めることができる。ステップＳ４にて取得した格納ファイル数が上限に近いと判断した場合（ステップＳ６のＹｅｓ）、ステップＳ８に遷移する。近くないと判断した場合（ステップＳ６のＮｏ）、ステップＳ７に遷移する。
【００６０】
［ステップＳ７］  アグリゲート制御部１４は、該当ボリューム内のサブボリュームを、更新割合の高い、かつステップＳ２にて演算した使用容量の高い順にソートする。このソート処理により、後述する移行処理を行った６４ビットアグリゲートボリュームに記憶されたファイルへのアクセス効率の向上を図ることができる。その後、ステップＳ１１に遷移する。
【００６１】
［ステップＳ８］  アグリゲート制御部１４は、更新ファイルのカレントファイルサイズを合計する。具体的には、アグリゲート制御部１４は、全てのファイル情報管理テーブル１４２を参照する。そして、ファイル格納ボリューム名の欄の、ボリューム名が該当ボリューム名に一致するファイル情報管理テーブル１４２のカレントファイルサイズを合計する。その後、ステップＳ９に遷移する。
【００６２】
［ステップＳ９］  アグリゲート制御部１４は、更新ファイルのオリジナルファイルサイズの合計をする。具体的には、アグリゲート制御部１４は、全てのファイル情報管理テーブル１４２を参照する。そして、ファイル格納ボリューム名の欄に、該当ボリューム名が設定されているファイル情報管理テーブル１４２のオリジナルファイルサイズを合計する。その後、ステップＳ１０に遷移する。なお、ステップＳ８の処理とステップＳ９の処理を並行して行ってもよい。
【００６３】
［ステップＳ１０］  アグリゲート制御部１４は、ステップＳ８にて算出した更新ファイルのカレントファイルサイズの合計が、ステップＳ９にて算出した更新ファイルのオリジナルファイルサイズの合計より１．３倍以上か否かを判断する。なお、１．３倍は管理者が予め設定した値の一例であり、１．３倍は１倍より大きい任意の値に変更することができる。ステップＳ９にて算出した更新ファイルのカレントファイルサイズの合計が、ステップＳ８にて算出した更新ファイルのオリジナルファイルサイズの合計の１．３倍以上である場合（ステップＳ１０のＹｅｓ）、ステップＳ１１に遷移する。なお、ステップＳ１１に遷移する場合は、当該ステップＳ１０の条件に加え、該当ボリュームが、使用率が７５％以上のボリュームであり（ステップＳ３参照）、かつ、ファイルの総数が上限値に近い（ステップＳ６参照）場合である。このため、該当ボリュームのファイルサイズの増加分は、６ヶ月以内に更新されたファイルが占める割合が比較的高いと判断することができる。
【００６４】
ステップＳ９にて算出した更新ファイルのカレントファイルサイズの合計が、ステップＳ８にて算出した更新ファイルのオリジナルファイルサイズの合計の１．３倍未満である場合（ステップＳ１０のＮｏ）、ステップＳ１２に遷移する。なお、ステップＳ１２に遷移する場合は、当該ステップＳ１０の条件に加え、該当ボリュームが、使用率が７５％以上のボリュームであり（ステップＳ３参照）、かつ、ファイルの総数が上限値に近い（ステップＳ６参照）場合であるため、該当ボリュームのファイルサイズの増加分は、６ヶ月以内に更新されたファイルが占める割合が比較的低いと判断することができる。
【００６５】
［ステップＳ１１］  アグリゲート制御部１４は、６４ビットアグリゲートボリュームを作成し、該当ボリュームに記憶されているファイルを、作成した６４ビットアグリゲートボリュームにコピーする。そして、アグリゲート制御部１４は、サーバ装置４１、４２、４３と該当ボリュームとのアクセスパスを、作成した６４ビットアグリゲートボリュームに切り替える。その後、図６の処理を終了する。ステップＳ１１の処理を実行させる意図は、移行元の３２ビットアグリゲートボリュームに記憶するファイルの総数が上限に達した場合においても、ファイルの容量が今後も増加することを予測して、６４ビットアグリゲートボリュームに移行することにある。このステップＳ１１の処理を行うことにより、ファイルの総数の上限に近づいてはいるが、６ヶ月以内の更新頻度が比較的高いファイルが記憶された３２ビットアグリゲートボリュームを６４ビットアグリゲートボリュームに移行することができる。そのため、例えば、ファイルサイズの増加に対応することができる。
【００６６】
［ステップＳ１２］  アグリゲート制御部１４は、新たなアグリゲートボリュームの作成を促すアラームを管理者に報知する。報知する方法は、例えば、図示しないＬＥＤを点滅させる方法や、警告音を発する方法等が挙げられる。アラームを報知することで、該当ボリュームに記憶されているファイルの総数が上限値に近い（ステップＳ６参照）ことを管理者に知らせることができる。その後、図６の処理を終了する。以上で図６の説明を終了する。なお、図６に示すフローチャートの手順の一部（例えば、ステップＳ８とステップＳ９）を入れ替えてもよい。また、図６では、最初に制御部１０が起動したときのアグリゲート制御部１４の処理を説明したが、アグリゲート制御部１４は、図６の処理を行った後もアグリゲート２０ｂ内の３２ビットアグリゲートボリュームの状態を定期的に確認し、任意のタイミングで図６の処理を実行するようにしてもよい。
【００６７】
次に、ステップＳ１１の３２ビットアグリゲートボリュームから６４ビットアグリゲートボリュームへの移行処理をより詳しく説明する。
図７は、６４ビットアグリゲートボリュームへの移行処理を説明する図である。
【００６８】
アグリゲート制御部１４は、アグリゲート２０ｂ内の未使用のＨＤＤ２０を用いて６４ビットアグリゲートボリューム３４を新たに作成する。なお、図７には図示していないが、既存の６４ビットアグリゲートボリュームに、移行元となる３２ビットアグリゲートボリューム３３以上の記憶容量を有するサブボリュームを作成してもよい。その後、アグリゲート制御部１４は、３２ビットアグリゲートボリューム３３内のメタデータ３３ａおよび全てのファイル３３ｂを６４ビットアグリゲートボリューム３４にコピーする。なお、メタデータ３３ａは、移行元の３２ビットアグリゲートボリューム３３に記憶されているファイル３３ｂの作成日時や作成者、ファイル形式、タイトル、注釈等を含む。ファイルのコピーが終了すると、アグリゲート制御部１４は、サーバ装置４１、４２、４３と３２ビットアグリゲートボリューム３３とのアクセスパスＰ１を、サーバ装置４１、４２、４３と６４ビットアグリゲートボリューム３４とのアクセスパスＰ２に切り替える。
【００６９】
ところで、６４ビットアグリゲートボリュームを新たに作成する際に、６４ビットアグリゲートボリュームを構築するＨＤＤ２０がアグリゲート２０ｂ内に確保できず、かつ、移行元の３２ビットアグリゲートボリュームに記憶されている全てのファイルを記憶できる既存の６４ビットアグリゲートボリュームが存在しない場合、以下の方法で６４ビットアグリゲートボリュームへの移行処理を行う。
【００７０】
図８は、６４ビットアグリゲートボリュームへの移行処理を説明する図である。
アグリゲート制御部１４は、各アグリゲートボリュームを管理するボリューム情報管理テーブル１４１のアグリゲートボリュームサイズの欄と使用容量の欄を参照し、各アグリゲートボリュームの未使用の（ファイルが書き込まれていない）記憶容量を確認する。そして、アグリゲート制御部１４は、移行元の３２ビットアグリゲートボリューム３３の記憶容量以上の未使用の記憶容量を備える既存のアグリゲートボリュームが存在するか否かを確認する。移行元の３２ビットアグリゲートボリューム３３の記憶容量以上の未使用の記憶容量を備える既存のアグリゲートボリュームが存在する場合、そのアグリゲートボリュームを３２ビットアグリゲートボリュームに記憶されているファイル３３ｂを一時的にコピーするボリューム（以下、一時コピー先ボリュームと言う）に設定する。なお、一時コピー先ボリュームは、３２ビットアグリゲートボリュームでも６４ビットアグリゲートボリュームでもよい。また、一時コピー先ボリュームの数は１つでもよいし、２つ以上でもよい。図８では一例として３つの一時コピー先ボリューム３５、３６、３７を図示している。３つの一時コピー先ボリューム３５、３６、３７の未使用の記憶容量の総和が、３２ビットアグリゲートボリューム３３の記憶容量以上である。
【００７１】
アグリゲート制御部１４は、メタデータ３３ａを一時コピー先ボリューム３５にコピーする。一時コピー先ボリューム３５へのメタデータ３３ａのコピーが完了すると、アグリゲート制御部１４は、３２ビットアグリゲートボリューム３３に記憶されているファイル３３ｂを一時コピー先ボリューム３６、３７に分散してコピーする。その後、３２ビットアグリゲートボリューム３３を解放し、３２ビットアグリゲートボリューム３３の記憶容量より大きな記憶容量の６４ビットアグリゲートボリューム３８を作成する。そして、一時コピー先ボリューム３５に記憶されているメタデータ３３ａおよび一時コピー先ボリューム３６、３７に記憶されているファイル３３ｂを作成した６４ビットアグリゲートボリューム３８にコピーする。なお、アグリゲート制御部１４は、メタデータ３３ａのコピーの際、メタデータ３３ａに記憶されているデータを、移行した６４ビットアグリゲートボリューム３８用に更新する。例えば、メタデータ３３ａに記憶されているサーバ装置４１、４２、４３と３２ビットアグリゲートボリューム３３とのアクセスパスをサーバ装置４１、４２、４３と６４ビットアグリゲートボリューム３８とのアクセスパスに更新する。その後、一時コピー先ボリューム３５に記憶したメタデータ３３ａおよび一時コピー先ボリューム３６、３７に記憶したファイル３３ｂを削除する。
【００７２】
なお、ボリュームの移行処理を実施する場合には、ＣＰＵ１０１やキャッシュメモリ１０４等の資源を利用する。このため、移行元となる３２ビットアグリゲートボリュームが複数存在する場合、アグリゲート制御部１４は、これらの３２ビットアグリゲートボリュームを１つずつ段階的に６４ビットアグリゲートボリュームに移行するよう調整するのが好ましい。
【００７３】
以上述べたように、ストレージ装置１００によれば、アグリゲート制御部１４が図６のステップＳ１１の処理を行うことにより、ファイルの総数の上限に近づいてはいるが、６ヶ月以内の更新頻度が比較的高いファイルが記憶された３２ビットアグリゲートボリュームを６４ビットアグリゲートボリュームに移行することができる。６４ビットアグリゲートボリュームに移行することで、既存のファイルの容量の拡大に対応することができる。従って、アグリゲートボリュームの再作成を抑制し、移行処理に伴う負荷を抑制することができる。また、アグリゲート制御部１４は、図６のステップＳ１２に示すように、ファイルの総数の上限に近づいてはいるが、６ヶ月以内の更新頻度が比較的低いファイルが記憶された３２ビットアグリゲートボリュームは、６４ビットアグリゲートボリュームに移行し記憶容量を拡張しても拡張した記憶容量が使用されない可能性が高い。このため、６４ビットアグリゲートボリュームに移行しない。従って、一意に６４ビットアグリゲートボリュームに移行する場合に比べ、アグリゲート２０ｂの記憶領域を節約することができる。
【００７４】
また、ＯＳの第１のバージョンから第２のバージョンへの改版に伴い、各３２ビットアグリゲートボリュームについて、図６に示す処理が実行され、使用状況に応じて自動的に６４ビットアグリゲートボリュームへの移行処理が行われる。このため、６４ビットアグリゲートボリュームへの移行処理を容易に行うことができる。また、ユーザが手動で移行する場合に比べ、早期に移行処理が行われる。このため、サーバ装置４１、４２、４３からストレージ装置１００へのファイルアクセスが滞る影響を小さくすることができる。
【００７５】
以上、本発明の制御装置、制御方法およびストレージ装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【００７６】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、制御装置２および制御部１０が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記憶装置には、ハードディスクドライブ、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）等が挙げられる。
【００７７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００７８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００７９】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）等の電子回路で実現することもできる。
【００８０】
以上の第１〜第２の実施の形態に関し、さらに以下の付記を開示する。
（付記１）  記憶可能なファイル数に上限が設定されたデータ記憶領域を有する第１のボリュームに記憶されているファイル数を計数する計数部と、
前記計数部により計数された前記ファイル数が所定数より多い場合に前記第１のボリュームに記憶されているファイルの使用容量の増加傾向を判断する判断部と、
前記ファイルの使用容量が所定期間に所定量以上増加していると前記判断部が判断した場合に第２のボリュームを作成するボリューム制御部と、
を有することを特徴とする制御装置。
【００８１】
（付記２）  前記ボリューム制御部は、前記ファイルの使用容量が所定期間に所定量以上増加していないと前記判断部が判断した場合に前記第１のボリュームのデータ記憶領域を拡張した前記第２のボリュームの作成を回避することを特徴とする付記１記載の制御装置。
【００８２】
（付記３）  前記第１のボリュームがデータ記憶領域を示すアドレスの管理単位に使用するビット数より、前記第２のボリュームがデータ記憶領域を示すアドレスの管理単位に使用するビット数の方が多いことを特徴とする付記２記載の制御装置。
【００８３】
（付記４）  前記ボリューム制御部は、当該制御装置のオペレーションシステムの更新時に動作することを特徴とする付記１ないし３のいずれかに記載の制御装置。
（付記５）  前記第１のボリュームおよび第２のボリュームは、複数のディスクを備えるストレージ・プール内のデータ記憶領域の一部で構成されていることを特徴とする付記１ないし４のいずれかに記載の制御装置。
【００８４】
（付記６）  前記ボリューム制御部により作成された前記第２のボリュームに、前記第１のボリュームに記憶されているファイルをコピーする移行処理部をさらに有することを特徴とする付記１記載の制御装置。
【００８５】
（付記７）  コンピュータが、
記憶可能なファイル数に上限が設定されたデータ記憶領域を有する第１のボリュームに記憶されているファイル数を計数し、
計数した前記ファイル数が所定数より多い場合に前記第１のボリュームに記憶されている前記ファイルの使用容量の増加傾向を判断し、
前記ファイルの使用容量が所定期間に所定量以上増加していると判断した場合に第２のボリュームを作成する、
ことを特徴とする制御方法。
【００８６】
（付記８）  記憶可能なファイル数に上限が設定されたデータ記憶領域を有する第１のボリュームと、
前記第１のボリュームに記憶されているファイル数を計数する計数部と、前記計数部により計数された前記ファイル数が所定数より多い場合に前記第１のボリュームに記憶されているファイルの使用容量の増加傾向を判断する判断部と、前記ファイルの使用容量が所定期間に所定量以上増加していると前記判断部が判断した場合に第２のボリュームを作成するボリューム制御部と、を有する制御装置と、
を備えることを特徴とするストレージ装置。
【符号の説明】
【００８７】
１、１００  ストレージ装置
２  制御装置
２ａ  計数部
２ｂ  判断部
２ｃ  ボリューム制御部
２ｄ  移行処理部
３  ストレージ・プール
３ａ  第１のボリューム
３ｂ  第２のボリューム
３ｃ  第３のボリューム
４、４１、４２、４３  サーバ装置
１０  制御部
１１  ネットワーク制御部
１２  プロトコル制御部
１３  アクセス制御部
１４  アグリゲート制御部
１４ａ  ボリューム管理部
１４１  ボリューム情報管理テーブル
１４ｂ  ファイル管理部
１４２  ファイル情報管理テーブル
１５  ディスク制御部
２０  ＨＤＤ
２０ａ  デバイスエンクロージャ
２０ｂ  アグリゲート
２１、２２  ＲＡＩＤグループ
３１、３２  アグリゲートボリューム
３３  ３２ビットアグリゲートボリューム
３４、３８  ６４ビットアグリゲートボリューム
３５、３６、３７  一時コピー先ボリューム
１０３  フラッシュＲＯＭ
【図１】
0005729173.tif 000002
【図２】
0005729173.tif 000003
【図３】
0005729173.tif 000004
【図４】
0005729173.tif 000005
【図５】
0005729173.tif 000006
【図６】
0005729173.tif 000007
【図７】
0005729173.tif 000008
【図８】
0005729173.tif 000009