(57)【要約】【課題】ボリュームにおけるフラグメンテーション状態を高速に解消できるようにする。【解決手段】ファイルシステム制御部１２４内のフラグメンテーション情報収集部は、ファイルシステム１２２によって管理される、フラグメンテーション状態を解消すべき対象ボリュームにおけるフラグメンテーション情報を収集する。ファイルシステム制御部１２４内の分析部は、収集されたフラグメンテーション情報をもとに対象ボリュームのフラグメンテーション状態を分析し、上記対象ボリュームのフラグメンテーション状態を解消するためのブロック再配置情報を生成する。ファイルシステム制御部１２４内のブロック再配置コマンド生成部は、ブロック再配置情報に対応するブロック再配置コマンド列を生成する。ディスクアレイ制御装置１１２は、このブロック再配置コマンド列を実行することにより、上記対象ボリュームのフラグメンテーション状態を解消する。【選択図】      図１
2005284632.tif 000002
【特許請求の範囲】
【請求項１】
複数のディスク装置から構成されるディスクアレイを制御するディスクアレイ制御装置であって、ホストコンピュータからのファイルレベルでのアクセス要求を解析して、前記複数のディスク装置のうちの当該要求に対応するディスク装置へのアクセス要求に変換するディスクアレイ制御装置を有するディスクアレイ装置と、前記ホストコンピュータからのアクセス要求で指定されたファイルを管理するファイルシステムを含み、前記ホストコンピュータからのアクセス要求を受け付けて、当該要求を前記ディスクアレイ装置に出力するファイルシステム制御装置とを備えたストレージシステムにおいて、
前記ファイルシステム制御装置は、
前記ファイルシステムによって管理されるファイルが格納されるボリュームのうちの、フラグメンテーション状態を解消すべき対象ボリュームにおけるブロックの使用状態を表すフラグメンテーション情報を、前記ファイルシステムから収集するフラグメンテーション情報収集手段と、
前記フラグメンテーション情報収集手段によって収集されたフラグメンテーション情報をもとに前記対象ボリュームのフラグメンテーション状態を分析し、前記対象ボリューム内の使用ブロックを当該ボリューム内の連続する領域に再配置するためのブロック再配置情報を生成する分析手段と、
前記ブロック再配置情報の示すブロック再配置を前記ディスクアレイ制御装置により実行させるためのブロック再配置コマンド列を生成し、当該コマンド列を前記ディスクアレイ制御装置に発行するブロック再配置コマンド生成手段とを備え、
前記ディスクアレイ制御装置は、前記ブロック再配置コマンド生成手段によって発行されたブロック再配置コマンド列に従って前記ディスクアレイを制御することにより、前記対象ボリュームにおける使用ブロックのデータを連続する領域に移動させるブロック再配置処理を実行するブロック再配置手段を備える
ことを特徴とするストレージシステム。
【請求項２】
前記ファイルシステムは、前記ディスクアレイ制御装置による前記ブロック再配置処理の結果、前記対象ボリューム内に使用されないブロックが連続する非使用ブロック連続領域が確保された場合、当該非使用ブロック連続領域全体または当該非使用ブロック連続領域における一部の連続領域を前記対象ボリュームから切り離す切り離し手段を備えることを特徴とする請求項１記載のストレージシステム。
【請求項３】
前記ファイルシステムは、前記対象ボリュームが複数の論理ユニットを当該ボリュームの構成メンバとし、且つ前記ディスクアレイ制御装置による前記ブロック再配置処理の結果、使用されなくなった論理ユニットが出現した場合、当該使用されなくなった論理ユニットを前記対象ボリュームから切り離す切り離し手段を備えることを特徴とする請求項１記載のストレージシステム。
【請求項４】
前記ファイルシステム制御装置は、前記対象ボリュームが複数の論理ユニットを当該ボリュームの構成メンバとする場合に、前記複数の論理ユニットのうちの１つを選択する選択手段を更に備え、
前記分析手段は、前記選択手段によって選択された論理ユニット内の全ての使用ブロックのデータを前記対象ボリュームの他の論理ユニットに移動可能とするための前記ブロック再配置情報を生成する
ことを特徴とする請求項３記載のストレージシステム。
【請求項５】
前記ディスクアレイ制御装置は、前記ボリュームを構成する論理ユニット毎に、当該論理ユニットに割り当てられるディスク領域を提供するディスク装置を示す情報が、当該論理ユニットを構成するディスク装置を示す論理ユニット構成情報として保持される論理ユニット構成情報テーブルを備え、
前記フラグメンテーション情報収集手段は、前記対象ボリュームのフラグメンテーション情報を収集する際に、前記ディスクアレイ制御装置の前記論理ユニット構成情報テーブルから当該ボリュームを構成する論理ユニットの前記論理ユニット構成情報を収集し、
前記分析手段は、前記フラグメンテーション情報をもとに前記ブロック再配置情報を生成する際に、前記フラグメンテーション情報収集手段によって収集された論理ユニット構成情報で示されるディスク装置上でのブロック再配置に伴う使用ブロックの移動をシーケンシャルなアクセスとするためのブロック再配置情報を生成する
ことを特徴とする請求項１記載のストレージシステム。
【請求項６】
前記ディスクアレイ制御装置は、前記ボリュームを構成する論理ユニット毎に、当該論理ユニット上で発生するアクセスの傾向を表すアクセス統計情報を保持するアクセス統計情報テーブルを備え、
前記フラグメンテーション情報収集手段は、前記対象ボリュームのフラグメンテーション情報を収集する際に、前記ディスクアレイ制御装置の前記アクセス統計情報テーブルから当該ボリュームを構成する論理ユニットのアクセス統計情報を収集し、
前記分析手段は、前記フラグメンテーション情報をもとに前記ブロック再配置情報を生成する際に、前記フラグメンテーション情報収集手段によって収集されたアクセス統計情報をもとに、前記対象ボリュームのアクセスパターンを分析し、その分析結果から算出されるフラグメンテーションによるアクセス性能低下の割合に応じて、対応する領域毎に、当該領域内の使用ブロック群のブロック再配置の優先度を決定して、その優先度が付されたブロック再配置情報を生成し、
前記ブロック再配置コマンド生成手段は、前記優先度が付されたブロック再配置情報から当該優先度がコマンド単位で付されたブロック再配置コマンド列を生成し、
前記再配置手段は、前記ブロック再配置コマンド列に従うコマンド単位のブロック再配置処理を対応する優先度順に実行する
ことを特徴とする請求項１記載のストレージシステム。
【請求項７】
前記分析手段は、前記フラグメンテーション状態の分析結果から、前記対象ボリュームでのフラグメンテーション状態を複製ボリューム上で解消するためのブロック再配置情報を生成し、
前記ブロック再配置コマンド生成手段は、前記対象ボリュームでのフラグメンテーション状態を複製ボリューム上で解消するためのブロック再配置情報からブロック再配置コマンド列を生成し、
前記再配置手段は、前記対象ボリュームの複製ボリュームを作成する際に、前記ブロック再配置コマンド列に従い、当該複製ボリューム上でブロック再配置を実行する
ことを特徴とする請求項１記載のストレージシステム。
【請求項８】
前記ディスクアレイ制御装置は、前記ボリュームを構成する論理ユニット毎に、当該論理ユニット上で発生するアクセスの傾向を表すアクセス統計情報を保持するアクセス統計情報テーブルを備え、
前記フラグメンテーション情報収集手段は、前記ファイルシステムによって管理されているボリューム毎に、当該ボリュームにおけるブロックの使用状態を表すフラグメンテーション情報を、前記ファイルシステムから収集すると共に、前記アクセス統計情報テーブルから前記アクセス統計情報を収集し、
前記分析手段は、前記フラグメンテーション情報収集手段によって収集された前記フラグメンテーション情報及び前記アクセス統計情報をもとに前記各ボリュームのフラグメンテーション状態及びアクセスパターンを分析し、一定のアクセス頻度を超える領域内の使用ブロック群へのアクセスを、前記複数のディスク装置のうちの当該ボリュームを構成する複数のディスク装置に分散させるためのブロック再配置情報を生成する
ことを特徴とする請求項１記載のストレージシステム。
【請求項９】
複数のディスク装置から構成されるディスクアレイを制御するディスクアレイ制御装置であって、ホストコンピュータからのファイルレベルでのアクセス要求を解析して、前記複数のディスク装置のうちの当該要求に対応するディスク装置へのアクセス要求に変換するディスクアレイ制御装置を有するディスクアレイ装置と、前記ホストコンピュータからのアクセス要求で指定されたファイルを管理するファイルシステムを含み、前記ホストコンピュータからのアクセス要求を受け付けて、当該要求を前記ディスクアレイ装置に出力するファイルシステム制御装置とを備えたストレージシステムにおいて、フラグメンテーション状態を解消するためのブロック再配置を前記ディスクアレイ制御装置により行わせるためのブロック再配置制御方法であって、
前記ファイルシステムによって管理されるファイルが格納されるボリュームのうちの、フラグメンテーション状態を解消すべき対象ボリュームにおけるブロックの使用状態を表すフラグメンテーション情報を、前記ファイルシステムから収集するステップと、
収集されたフラグメンテーション情報をもとに前記対象ボリュームのフラグメンテーション状態を分析するステップと、
前記フラグメンテーション状態の分析結果をもとに、前記対象ボリューム内の使用ブロックを当該ボリューム内の連続する領域に再配置するためのブロック再配置情報を生成するステップと、
生成された前記ブロック再配置情報の示すブロック再配置を前記ディスクアレイ制御装置により実行させるためのブロック再配置コマンド列を生成し、当該コマンド列を前記ディスクアレイ制御装置に発行することにより、前記対象ボリュームにおける使用ブロックのデータを連続する領域に移動させるブロック再配置処理を前記ディスクアレイ制御装置に実行させるステップと
を具備することを特徴とするブロック再配置制御方法。
【請求項１０】
複数のディスク装置から構成されるディスクアレイを制御するディスクアレイ制御装置であって、ホストコンピュータからのファイルレベルでのアクセス要求を解析して、前記複数のディスク装置のうちの当該要求に対応するディスク装置へのアクセス要求に変換するディスクアレイ制御装置を有するディスクアレイ装置を備えたストレージシステムに適用され、前記ホストコンピュータからのアクセス要求で指定されたファイルを管理するファイルシステムを含み、前記ホストコンピュータからのアクセス要求を受け付けて、当該要求を前記ディスクアレイ装置に出力するファイルシステム制御装置に、
前記ファイルシステムによって管理されるファイルが格納されるボリュームのうちの、フラグメンテーション状態を解消すべき対象ボリュームにおけるブロックの使用状態を表すフラグメンテーション情報を、前記ファイルシステムから収集するステップと、
収集されたフラグメンテーション情報をもとに前記対象ボリュームのフラグメンテーション状態を分析するステップと、
前記フラグメンテーション状態の分析結果をもとに、前記対象ボリューム内の使用ブロックを当該ボリューム内の連続する領域に再配置するためのブロック再配置情報を生成するステップと、
生成された前記ブロック再配置情報の示すブロック再配置を前記ディスクアレイ制御装置により実行させるためのブロック再配置コマンド列を生成し、当該コマンド列を前記ディスクアレイ制御装置に発行することにより、前記対象ボリュームにおける使用ブロックのデータを連続する領域に移動させるブロック再配置処理を前記ディスクアレイ制御装置に実行させるステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置と、ホストコンピュータからのアクセス要求を受け付けて、当該要求を上記ディスクアレイ装置に出力するファイルシステム制御装置とを備えたストレージシステムに係り、特にディスクアレイ装置内のディスクアレイ制御装置の高速アクセス制御機能を利用して、ボリュームのフラグメンテーション状態を解消するためのストレージシステム、ブロック再配置制御方法及びプログラムに関する。
【背景技術】
【０００２】
ストレージシステムは、当該システムを利用するホストコンピュータ（以下、ホストと称する）と、ネットワークまたはチャネル網を介して接続されるのが一般的である。ストレージシステムはディスク装置（ストレージ装置）備えている。ディスク装置には、ハードディスクドライブ（ＨＤＤ）が用いられるのが一般的である。ストレージシステムはまた、ＮＦＳ（ネットワークファイルシステム）サーバに代表されるファイルサーバを備えている。ホスト上で動作するアプリケーション（アプリケーションソフトウェア）からのディスクアクセス要求は、ファイルサーバのファイルシステムで受け付けられる。これにより、アプリケーション（ホスト）からのディスクアクセス要求に従うディスクアクセスが、ファイルシステムを経由して実行される。このディスクアクセスにより、アプリケーション（ホスト）から要求されたボリュームに対するファイルの作成／削除、或いはファイルサイズの拡張／縮小等が発生する。すると、ボリューム内において、ディスクアクセスの単位であるブロックが虫食い状に使用される「フラグメンテーション」と呼ばれる状態が発生する。このフラグメンテーション状態では、ボリューム内で実際に使用されている領域の割合が低下する。また、使用されているブロックが物理的に不連続になることにより、ボリュームアクセスの際にディスク装置（ＨＤＤ）へのアクセスが不連続になるため、性能的にも低下する。
【０００３】
そこで従来は、フラグメンテーション状態を解消するため、デフラグメンテーション（いわゆるデフラグ）と呼ばれる処理（フラグメンテーション解消処理、またはデフラグ処理）が行われている。この処理は、ホスト上またはファイルサーバ上で管理されているフラグメンテーション情報に従って、ホストまたはファイルサーバのソフトウェア処理により行われる。この処理により、ボリューム内で使用されているブロックのみを対象とする読み出しと書き込みとによるデータ移動が行われて、当該使用されているブロックが物理的に連続するように並べ替えられる。
【０００４】
しかし、上記フラグメンテーション解消処理（デフラグメンテーション処理）では、ブロック単位でデータの移動が行われるため、フラグメンテーション状態を解消するのに多大な時間を要すると共にホストまたはファイルサーバの負荷が増大する。このことは、アプリケーションからの通常のディスクアクセス要求に対するディスクアクセスの実行にも影響を及ぼし、システム全体のスループットが低下する。
【０００５】
そこで、ボリュームを、上記ファイルシステムに相当する階層管理ファイル装置によって、複数種の記録単位長で階層化して管理する技術が提案されている（例えば、特許文献１参照）。ここでは、ボリュームが第１の記録単位長のクラスタに分割して管理され、各クラスタは第１の記録単位長より小さなサイズの第２の記録単位長のフラグメントに分割して管理される。クラスタとフラグメントの管理には、フラグメンテーション情報としてのＦＡＴ（File Allocation Table）、つまりファイル配置管理テーブルが用いられる。この特許文献１に記載された技術によれば、映像や音声のような連続して再生する必要のある大サイズのファイルと、文章のような離散的に再生してよい小サイズのファイルとで、適用する記録単位長を切り替えることで、フラグメンテーション状態の発生を少なくすることが可能となる。
【特許文献１】特開２０００−２００２０７（段落００３３乃至００３５、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載された技術においても、フラグメンテーション状態を解消するには、ファイルシステムに相当する階層管理ファイル装置が、自身の管理するフラグメンテーション情報（ファイル配置管理テーブル）に従って、ボリューム内で使用されているクラスタまたはフラグメントを対象とするリードとライトによるデータ移動を行う必要がある。この場合、フラグメンテーション状態を解消するのに多大な時間を要すると共に階層管理ファイル装置（ファイルシステム）の負荷が増大し、システム全体のスループットが低下する。
【０００７】
また、フラグメンテーション状態では、ボリューム内において実際に使用されている領域（実際に使用されているブロック群）が不連続となる。このため、例えばサイズが１ＧＢのボリュームであり、実際に使用されているブロック（使用ブロック）の群の総和が１００ＭＢであっても、当該ブロックの群が不連続で且つ分散していると、フラグメンテーション解消処理なしでは、サイズ１ＧＢのボリュームを１００ＭＢサイズのボリュームには縮小できない。この場合、本来ならば使える９００ＭＢ分のストレージリソースの有効利用ができない。
【０００８】
ところで最近は、複数のディスク装置（ストレージ装置）から構成されるディスクアレイ装置を備えたストレージシステムが出現している。また、複数のディスクアレイ装置を備えたストレージシステムも出現している。この種のストレージシステムは、複数のホストにより共有使用されることが多い。このように、ディスクアレイ装置を備えたストレージシステムが複数のホストにより共有されるシステムでは、各ホスト上で独立して動作するアプリケーションからの、それぞれ独立したストレージリソースへの利用要求が発生する。各アプリケーションから要求されるストレージリソースは、当該各アプリケーションからの個々の利用要求にそれぞれ対応した。複数のディスク装置により提供されるディスク領域の集合である。したがって、各アプリケーションからの利用要求全体に対して必要となるストレージリソースの総和量は、上記フラグメンテーション状態のようにディスク領域の使用効率が低い状態では増加する。そこで、ストレージリソースの有効利用が要求される。
【０００９】
また、ボリュームサイズの拡張／縮小機能がなく、ディスクアレイが提供する複数の論理ユニットをホスト側で１つのボリュームに見せる機能（論理ユニットのコンカチネーション機能）しかない場合、フラグメンテーションが物理的に複数の論理ユニットにまたがっていると、当該複数の論理ユニットのいずれも開放できないため、実使用サイズへの縮小ができない。
【００１０】
本発明は上記事情を考慮してなされたものでその目的は、ディスクアレイを制御するディスクアレイ制御装置の高速アクセス制御機能を利用して、ボリュームにおけるフラグメンテーション状態を解消するためのデータの物理的な移動を行うことで、当該フラグメンテーション状態が、ホスト及びファイルシステムの負荷の増大を招くことなく高速に解消できるストレージシステム、ブロック再配置制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の１つの観点によれば、複数のディスク装置から構成されるディスクアレイを制御するディスクアレイ制御装置であって、ホストからのファイルレベルでのアクセス要求を解析して、上記複数のディスク装置のうちの当該要求に対応するディスク装置へのアクセス要求に変換するディスクアレイ制御装置を有するディスクアレイ装置と、上記ホストからのアクセス要求で指定されたファイルを管理するファイルシステムを含み、上記ホストからのアクセス要求を受け付けて、当該要求を上記ディスクアレイ装置に出力するファイルシステム制御装置とを備えたストレージシステムが提供される。
【００１２】
上記ファイルシステム制御装置は、上記ファイルシステムによって管理されるファイルが格納されるボリュームのうちの、フラグメンテーション状態を解消すべき対象ボリュームにおけるブロックの使用状態を表すフラグメンテーション情報を、上記ファイルシステムから収集するフラグメンテーション情報収集手段と、収集されたフラグメンテーション情報をもとに上記対象ボリュームのフラグメンテーション状態を分析し、上記対象ボリューム内の使用ブロックを当該ボリューム内の連続する領域に再配置するためのブロック再配置情報を生成する分析手段と、上記ブロック再配置情報の示すブロック再配置を上記ディスクアレイ制御装置により実行させるためのブロック再配置コマンド列を生成し、当該コマンド列を上記ディスクアレイ制御装置に発行するブロック再配置コマンド生成手段とを備える。一方、上記ディスクアレイ制御装置は、上記ブロック再配置コマンド生成手段によって発行されたブロック再配置コマンド列に従って上記ディスクアレイを制御することにより、上記対象ボリュームにおける使用ブロックのデータを連続する領域に移動させるブロック再配置処理を実行するブロック再配置手段を備える
このような構成においては、ファイルシステム制御装置にて対象ボリュームのフラグメンテーション状態を解消するのに必要なブロック再配置（ブロック移動）のためのブロック再配置コマンド列を生成して、対応するディスクアレイ制御装置に発行することにより、当該ディスクアレイ制御装置の高速アクセス制御機能を利用して、上記対象ボリュームにおけるフラグメンテーション状態を解消するためのデータの物理的な移動を行わせることができる。これにより、対象ボリュームのフラグメンテーション状態が、ホスト及びファイルシステムの負荷の増大を招くことなく高速に解消できる。
【００１３】
上記の構成は、複数のディスクアレイ装置を備えたストレージシステムにも適用可能である。このようなシステムでは、ボリュームを構成するディスク領域を提供するディスク装置が複数のディスクアレイ装置に分散されている場合には、ディスクアレイ装置間でブロック移動を行えば良い。また、異なるボリューム間でブロック移動を行うことも可能である。
【発明の効果】
【００１４】
本発明によれば、ディスクアレイ制御装置の高速アクセス制御機能を利用して、ボリューム内のフラグメンテーション状態を解消するためのデータの物理的な移動を行わせることで、当該ボリュームのフラグメンテーション状態を、ホスト及びファイルシステムの負荷の増大を招くことなく高速に解消できる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の一実施形態につき図面を参照して説明する。図１は本発明の一実施形態に係る計算機システムの構成を示すブロック図である。図１のシステムは、ストレージシステム１０と、このストレージシステム１０を共有使用するＸ台のホスト（ホストコンピュータ）２０-1〜２０-Xとを備えている。ストレージシステム１０とホスト２０-1〜２０-Xとは、例えばネットワーク３０により相互接続されている。ネットワーク３０は、例えばストレージエリアネットワーク（ＳＡＮ）、或いはイーサネット（登録商標）である。ネットワーク３０に代えて、ＳＣＳＩ（Small Computer System Interface）バス、ＦＣ（Fibre Channel）等のチャネル網を用いることも可能である。
【００１６】
ストレージシステム１０は、少なくとも１つのディスクアレイ装置、例えばＮ台のディスクアレイ装置１１-1（＃１）〜１１-Ｎ（＃Ｎ）と、少なくとも１つのファイルシステム制御装置、例えば多重化（Ｍ重化）されたＭ台のファイルシステム制御装置１２-1（＃１）〜１２-M（＃Ｍ）とを備えている。ディスクアレイ装置１１-1〜１１-Nとファイルシステム制御装置１２-1〜１２-Mとは、ネットワーク１３により相互接続されている。ネットワーク１３は、ストレージエリアネットワーク（ＳＡＮ）、或いはイーサネット（登録商標）である。ネットワーク１３に代えて、ＳＣＳＩバス、ＦＣ等のチャネル網を用いることも可能である。
【００１７】
ホスト２０-1上ではアプリケーション（アプリケーションソフトウェア）２１が動作する。ホスト２０-1〜２０-Xのうちの他のホスト上でも、アプリケーションが動作する。ホスト２０-1〜２０-Xは、アプリケーションに従い、ファイルシステム制御装置１２-1〜１２-Mの何れかに対してファイルレベルでのアクセス要求（読み出し／書き込み要求）を発行する。
【００１８】
ディスクアレイ装置１１-1は、ディスクアレイ１１１と、ディスクアレイ制御装置１１２とを備えている。図では省略されているが、ディスクアレイ装置１１-1〜１１-Nのうちの他のディスクアレイ装置においても、ディスクアレイ装置１１-1と同様の構成を有している。ディスクアレイ１１１は、複数のディスク装置、例えばＲＡＩＤ（Redundant Array of Independent Disks、またはRedundant Array of Inexpensive Disks）構成のｘ台のＨＤＤ１１１-1〜１１１-Nから構成される。このディスクアレイ１１１を構成するＨＤＤ１１１-1〜１１１-Nは、ディスクアレイ１１１のメンバＨＤＤと呼ばれる。このメンバＨＤＤ１１１-1〜１１１-Nによって実現されるディスクアレイ１１１のディスク領域は、ストライプグループと呼ばれる予め定められたサイズの領域を単位に分割されて管理される。１ストライプグループの領域は、ディスクアレイ１１１を構成するメンバＨＤＤ１１１-1〜１１１-N内の物理アドレスが同一の一定サイズの領域（ストライプ）から構成される。図では、ディスクアレイ１１１のディスク領域がｎ個の論理ユニットＬＵ-1〜ＬＵ-nに割り当てられている状態が示されている。論理ユニットＬＵ-1〜ＬＵ-nは、ストライプグループの集合である。ＬＵ-1〜ＬＵ-nの使用状況は、ブロックと呼ばれる一定サイズの領域を単位に管理される。なお、論理ユニットＬＵ-1〜ＬＵ-nに割り当てられるディスク領域を提供するＨＤＤ群は必ずしも同一である必要はない。即ち、論理ユニットＬＵ-1〜ＬＵ-nに対し、それぞれ異なる組み合わせのＨＤＤ群（のディスク領域）が割り当てられる構成であっても構わない。
【００１９】
ディスクアレイ制御装置１１２は、ホスト２０-1〜２０-Xからファイルシステム制御装置１２-1〜１２-Mを介して与えられるアクセス要求に従って、ディスクアレイ１１１を制御する。ディスクアレイ制御装置１１２は、ホストインタフェース１１４と、ＨＤＤ（ディスク）インタフェース（図示せず）と、マイクロプロセッサ１１５と、内部バス１１６とを備えている。ホストインタフェース１１４は、ホスト２０-1〜２０-X側とのインタフェースである。ＨＤＤインタフェースは、ディスクアレイ１１１内の各ＨＤＤ１１１-1〜１１１-xとのインタフェースである。マイクロプロセッサ１１５は、ディスクアレイ制御装置１１２の主コントローラである。マイクロプロセッサ１１５上では、ディスクアレイ制御ソフトウエア（以下、ディスクアレイ制御ソフトと称する）１１７が動作する。図１では、ディスクアレイ制御ソフト１１７が記憶（インストール）されている記憶装置は省略されている。マイクロプロセッサ１１５は、ホスト２０-1〜２０-X（上で動作するアプリケーション）からのファイルレベルでの読み出し／書き込み要求を受け付けて要求内容を解析し、当該要求を、当該要求に対応するディスクアレイ内のＨＤＤへの読み出し／書き込み要求に変換して、当該ＨＤＤに出力する。
【００２０】
ファイルシステム制御装置１２-1は、ホストアクセス処理部１２１と、ファイルシステム１２２と、ドライバ１２３と、ファイルシステム制御部１２４とを有する。図では省略されているが、ファイルシステム制御装置１２-1〜１２-Nのうちの他のファイルシステム制御装置においても、ファイルシステム制御装置１２-1と同様の構成を有している。  
ホストアクセス処理部１２１は、ホスト２０-1〜２０-Xからのファイルレベルでの読み出し／書き込み要求を受け付ける。
【００２１】
ファイルシステム１２２は、ホストアクセス処理部１２１で受け付けられた読み出し／書き込み要求で指定されたファイルを管理する周知の機能を有している。ファイルシステム１２２は、ファイルが格納されているボリュームを、例えば記憶装置（図示せず）に格納されたビットマップ（ＢＭ）１２２ａによりブロック単位で管理する。このビットマップ１２２ａの一例を図２に示す。図２の例では、ビットマップ１２２ａは格子状に表されており、格子の各区画はブロックを示す。ここでは、斜線が施された区画は使用されているブロック（以下、使用ブロックと称する）を、斜線が施されていない区画は使用されていないブロック（以下、非使用ブロックと称する）を、それぞれ示す。つまりビットマップ１２２ａは、各ブロックが使用されているか否かを示す使用ブロック情報（以下、フラグメンテーション情報と称する）である。ファイルシステム制御装置１２-1以外のファイルシステム制御装置のファイルシステムにも、ビットマップ１２２ａと同様のビットマップが保持されている。ファイルシステム制御装置１２-1〜１２-Nの各ファイルシステムに保持されるビットマップは、ファイルシステム制御装置１２-1〜１２-Nが相互に通信を行うことで同一内容に維持される。
【００２２】
ドライバ１２３は、ファイルシステム１２２またはファイルシステム制御部１２４からの要求に従い、ネットワークまたはチャネル（ここでは、ネットワーク１３）を介してディスクアレイ装置１１-1〜１１-Nにアクセスする。
【００２３】
ファイルシステム制御部１２４は、ファイルシステム制御装置１２-1にインストールされたファイルシステム制御ソフトウェア（ファイルシステム制御プログラム）を当該制御装置１２-1が読み取って実行することにより実現される。このソフトウェアは、コンピュータで読み取り可能な記憶媒体（フロッピー（登録商標）ディスクに代表される磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤに代表される光ディスク、フラッシュメモリに代表される半導体メモリ等）に予め格納して頒布可能である。また、このプログラムが、ネットワークを介してダウンロード（頒布）されても構わない。
【００２４】
図３はファイルシステム制御部１２４の構成を示すブロック図である。ファイルシステム制御部１２４は、フラグメンテーション情報収集部１２４ａと、分析部１２４ｂと、ブロック再配置コマンド生成部１２４ｃとを備えている。フラグメンテーション情報収集部１２４ａは、ファイルシステム１２２によって管理されている各ボリュームのフラグメンテーション情報を収集する。分析部１２４ｂは、フラグメンテーション情報収集部１２４ａによって収集されたフラグメンテーション情報を分析することにより、対応するボリューム内のフラグメンテーション状態を解消するためのブロック再配置状態を決定する。ブロック再配置コマンド生成部１２４ｃは、分析部１２４ｂによって決定されたブロック再配置状態を実現するのに必要なブロック移動を指示するブロック再配置コマンドを生成する。このコマンドは、ドライバ１２３を介して対応するボリュームを有するディスクアレイ装置１１-i（ｉは１〜Ｎのいずれか）に送られる。
【００２５】
次に、図１のシステムにおける動作について、図４のフローチャートを参照して説明する。  
今、ホスト２０-1〜２０-Xのうちの例えばホスト２０-1からファイルシステム制御装置１２-1〜１２-Mのうちの例えばファイルシステム制御装置１２-1に対して、例えばディスクアレイ装置１１-1内の論理ユニットＬＵ-nのみを構成メンバとするボリューム（以下、対象ボリュームと称する）のフラグメンテーション状態を解消することが要求されたものとする。すると、ファイルシステム制御装置１２-1に設けられたファイルシステム制御部１２４内のフラグメンテーション情報収集部１２４ａは、ファイルシステム１２２によって管理されているビットマップ１２２ａから、対象ボリューム（つまり論理ユニットＬＵ-n）におけるフラグメンテーション状態を表すフラグメンテーション情報を収集する（ステップＳ１）。このフラグメンテーション情報の示す、論理ユニットＬＵ-nにおけるフラグメンテーション状態を図５（ａ）に示す。
【００２６】
ファイルシステム制御部１２４内の分析部１２４ｂは、フラグメンテーション情報収集部１２４ａによって収集されたフラグメンテーション情報をもとに、論理ユニットＬＵ-nのフラグメンテーション状態を分析する（ステップＳ２）。分析部１２４ｂは、図５（ａ）に示すフラグメンテーション状態の分析結果から、当該フラグメンテーション状態を解消するための、即ち論理ユニットＬＵ-n内で不連続な領域に配置されている使用ブロックを、例えば図５（ｂ）に示すように当該論理ユニットＬＵ-n内で連続する領域に並び替えるための、ブロック再配置（移動）情報を生成する（ステップＳ３）。
【００２７】
図６は、ブロック再配置（移動）情報のフォーマット例を示す。図６のブロック再配置情報は、論理ユニットＬＵ-n内で連続する使用ブロック列（連続していない使用ブロックについては１ブロック）毎に、当該使用ブロック列、つまり再配置（移動）対象となる使用ブロック列を特定するためのソース情報ＳＲＣ、当該使用ブロック列の再配置（移動）先を特定するためのデスティネーション情報ＤＳＴ及び当該使用ブロック列のサイズ（ブロック数）を示すサイズ情報ＳＩＺＥの組を含む。つまりブロック再配置情報は、ソース情報ＳＲＣ、デスティネーション情報ＤＳＴ及びサイズ情報ＳＩＺＥの組のリストである。ソース情報ＳＲＣ及びデスティネーション情報ＤＳＴは、いずれも、対象ボリュームを特定するためのボリュームＩＤ（識別情報）、再配置の対象となる使用ブロック列の先頭ブロックの当該ボリューム内の相対ブロックアドレスを含む。ボリュームＩＤには、本実施形態のようにディスクアレイ装置１１-1がネットワーク１３を介してファイルシステム制御装置１２-1に接続されている場合には、ＩＰ（インターネットプロトコル）アドレスと、対象ボリュームの構成メンバ（論理ユニット）の番号（ＬＵ番号）に相当するＩＤとが用いられる。これに対し、ディスクアレイ装置１１-1が本実施形態とは異なってＳＣＳＩ等のチャネル網を介してファイルシステム制御装置１２-1に接続されている場合には、ボリュームＩＤには、ＳＣＳＩ−ＩＤに相当するＩＤと、上記ＬＵ番号に相当するＩＤとが用いられる。ＳＲＣ、ＤＳＴ及びＳＩＺＥの組に、ディスク付加情報、例えば対応するＨＤＤにおけるディスクの速度を示す情報を付加することも可能である。
【００２８】
分析部１２４ｂによって生成されたブロック再配置情報は、ファイルシステム制御部１２４内のブロック再配置コマンド生成部１２４ｃに渡される。ブロック再配置コマンド生成部１２４ｃは、このブロック再配置情報からブロック再配置のためのコマンド列を生成する（ステップＳ４）。ブロック再配置コマンド生成部１２４ｃによって生成されたコマンド列（ブロック再配置コマンド列）は、ファイルシステム制御部１２４内のドライバ１２３に渡される。ドライバ１２３は、ブロック再配置コマンド列をネットワーク１３経由でディスクアレイ装置１１-1に対して発行する（ステップＳ５）。
【００２９】
ディスクアレイ装置１１-1内のディスクアレイ制御装置１１２は、ドライバ１２３から発行されたブロック再配置コマンド列を受け付けると、ブロック再配置手段として機能し、当該コマンド列をディスクアレイ制御ソフト１１７に従って実行する。これによりディスクアレイ制御装置１１２は、受け付けたブロック再配置コマンド列で指定された、論理ユニットＬＵ-n内の各使用ブロック列（または使用ブロック）のデータを、それぞれ当該論理ユニットＬＵ-n内の指定された再配置先に配置（移動）させるブロック再配置処理を行う（ステップＳ６）。この論理ユニットＬＵ-nにおける各使用ブロックのデータの移動、即ちブロック再配置の様子を図７（ａ）に示す。この図７（ａ）に示すブロック再配置は、当該ブロック再配置の対象となる使用ブロック列（または使用ブロック）のデータの読み出しと、読み出されたデータのブロック再配置先への書き込みとによって実現される。このように本実施形態においては、ディスクアレイ制御装置１１２によるディスクアクセス制御機能を利用したデータの移動により、ホスト２０-1がブロック単位でのデータの読み出しと書き込みとによるデータの移動を行う場合に比べて、フラグメンテーション状態を高速で解消できる。
【００３０】
ブロック再配置コマンド列が全て実行された結果、論理ユニットＬＵ-nにおけるフラグメンテーション状態が解消されている様子を図７（ｂ）に示す。この状態では、使用ブロックは論理ユニットＬＵ-n内の連続する領域に配置されている。このため、論理ユニットＬＵ-n内には、非使用ブロックのみが連続する空き領域（非使用ブロック連続領域）７０が確保される。ここで、論理ユニットＬＵ-nのサイズが１ＧＢ、使用ブロックによって占められるサイズが１００ＭＢであるとすると、最大で９００ＭＢの非使用ブロック連続領域７０が確保される。
【００３１】
さて、本実施形態では、ブロック再配置コマンドに応じて読み出されたデータは、必ずしも直ちにブロック再配置先に書き込まれるとは限らない。一般にディスクアレイ制御装置１１２は、ディスクアレイ１１１に対して書き込むべきデータを１ストライプグループ分保持するライトバッファ（図示せず）を有している。ブロック再配置コマンドに応じてディスクアレイ１１１から読み出されたデータは、一旦ライトバッファに保持される。そして、再配置の対象となるブロックのデータがライトバッファに１ストライプグループ分保持された段階で、当該１ストライプグループ分のデータがディスクアレイ１１１に一括して書き込まれる。これにより、フラグメンテーション状態を一層高速で解消できる。
【００３２】
ディスクアレイ制御装置１１２は、ブロック再配置コマンド列を全て実行すると、ホスト２０-1に対してブロック再配置完了を通知する（ステップＳ７）。ファイルシステム制御装置１２-1内のファイルシステム制御部１２４は、ディスクアレイ制御装置１１２からのホスト２０-1に対するブロック再配置完了通知に応じて、ブロック再配置後の各ブロックの使用状態を示すフラグメンテーション情報をファイルシステム１２２に通知する（ステップＳ８）。
【００３３】
ファイルシステム１２２は、ファイルシステム制御部１２４からの通知に従い、自身が管理しているビットマップ１２２ａを更新する（ステップＳ９）。この更新は、ファイルシステム制御装置１２-1以外のファイルシステム制御装置のファイルシステムに保持されているビットマップにも反映される。また、ファイルシステム１２２は、ファイルシステム制御部１２４から通知されたフラグメンテーション情報から、非使用ブロック連続領域７０を検出し、当該領域７０全体または当該領域７０における一部の連続領域を対象ボリューム（論理ユニットＬＵ-n）から切り離して、当該ボリュームの容量（サイズ）を縮小する（ステップＳ１０）。これによりファイルシステム１２２は、対象ボリュームから切り離された非使用ブロック連続領域を、他のボリュームに割り付け、当該他のボリュームの容量を拡張することができる。
【００３４】
［第１の変形例］
次に上記実施形態の第１の変形例について、図８のフローチャートを参照して説明する。この第１の変形例の特徴は、複数の論理ユニットを構成メンバとするボリュームのフラグメンテーション状態を解消するのに、論理ユニット間でデータの再配置を行うことで、少なくとも１つの論理ユニット全体を空き論理ユニットとして、対応するボリュームの構成メンバから切り離す点にある。
【００３５】
今、ホスト２０-1からファイルシステム制御装置１２-1に対して、ディスクアレイ１１１（ディスクアレイ装置１１-1）内の論理ユニットＬＵ-1〜ＬＵ-nのうちの論理ユニットＬＵ-m〜ＬＵ-nを構成メンバとするボリューム（以下、対象ボリュームＶと称する）のフラグメンテーション状態を解消することが要求されたものとする。
【００３６】
ファイルシステム制御部１２４内のフラグメンテーション情報収集部１２４ａは、ファイルシステム１２２によって管理されているビットマップ１２２ａから、対象ボリュームＶ（つまり論理ユニットＬＵ-m〜ＬＵ-n）におけるフラグメンテーション状態を表すフラグメンテーション情報を収集する（ステップＳ１０）。
【００３７】
ファイルシステム制御部１２４内の分析部１２４ｂは、フラグメンテーション情報収集部１２４ａによって収集されたフラグメンテーション情報をもとに、対象ボリュームＶ（論理ユニットＬＵ-m〜ＬＵ-n）のフラグメンテーション状態を分析する（ステップＳ１１）。分析部１２４ｂは、ステップＳ１１でのフラグメンテーション状態の分析結果から、対象ボリュームＶの構成メンバである論理ユニットＬＵ-m〜ＬＵ-nの中から、最も使用ブロック数の少ない論理ユニットＬＵ-iを選択する（ステップＳ１２）。ここでは、ＬＵ-iとして論理ユニットＬＵ-nが選択されたものとする。分析部１２４ｂは、選択されたＬＵ-i（ＬＵ-n）内の使用ブロックのデータを、対象ボリュームＶ内の論理ユニットＬＵ-mを含む他の論理ユニットＬＵ-j（つまりＬＵ-m〜ＬＵ-nのうちのＬＵ-i（ＬＵ-n）を除くＬＵ）に再配置（移動）することで、当該他の論理ユニットＬＵ-jのフラグメンテーション状態を解消するための、ブロック再配置（移動）情報を生成する（ステップＳ１３）。このブロック再配置情報は、使用ブロックをＬＵ-m〜ＬＵ-nのうちのＬＵ-i（ＬＵ-n）を除くＬＵ内の連続する領域に並び替えるためのブロック再配置も指定する。
【００３８】
ファイルシステム制御部１２４内のブロック再配置コマンド生成部１２４ｃは、分析部１２４ｂによって生成されたブロック再配置情報からブロック再配置のためのブロック再配置コマンド列を生成する（ステップＳ１４）。ファイルシステム制御部１２４内のドライバ１２３は、ブロック再配置コマンド生成部１２４ｃによって生成されたブロック再配置コマンド列をネディスクアレイ装置１１-1に対して発行する（ステップＳ１５）。
【００３９】
ディスクアレイ装置１１-1内のディスクアレイ制御装置１１２は、ドライバ１２３から発行されたブロック再配置コマンド列に従い、対象ボリュームＶ内の論理ユニットＬＵ-nから当該ボリュームＶ内の他の論理ユニットＬＵ（ここではＬＵ-m〜ＬＵ-nのうちのＬＵ-nを除くＬＵ）への論理ユニット間の使用ブロックの移動を伴うブロック再配置（移動）を行う（ステップＳ１６）。図９（ａ）は、この対象ボリュームＶにおける、論理ユニット間の使用ブロックの移動の様子を示す。ステップＳ１６では、論理ユニットＬＵ-m〜ＬＵ-nのうちのＬＵ-nを除くＬＵにおいて、上記実施形態と同様のブロック再配置（移動）も行われる。
【００４０】
ディスクアレイ制御装置１１２は、ブロック再配置コマンド列を全て実行すると、ホスト２０-1に対してブロック再配置完了を通知する（ステップＳ１７）。このブロック再配置完了時点の、対象ボリュームＶの構成メンバである論理ユニットＬＵ-m〜ＬＵ-nの状態を図９（ｂ）に示す。図９（ｂ）から明らかなように、論理ユニットＬＵ-m〜ＬＵ-nのうちの論理ユニットＬＵ-nを除くＬＵでは、使用ブロックが連続する領域に配置されている。これに対し、論理ユニットＬＵ-nには使用ブロックは存在せず、当該ＬＵ-nは空の状態にある。
【００４１】
ファイルシステム制御装置１２-1内のファイルシステム制御部１２４は、ディスクアレイ制御装置１１２からファイルシステム制御装置１２-1へのブロック再配置完了通知に応じ、ブロック再配置後のボリュームＶ（論理ユニットＬＵ-m〜ＬＵ-n）におけるに各ブロックの使用状態を示すフラグメンテーション情報と、論理ユニットＬＵ-i（＝ＬＵ-n）が使用されなくなったこととを、ファイルシステム１２２に通知する（ステップＳ１８）。ファイルシステム１２２は、この通知に従い、自身が管理しているビットマップ１２２ａを更新する（ステップＳ１９）。
【００４２】
またファイルシステム１２２は切り離し手段（論理ユニット切り離し手段）として機能して、ボリュームＶの構成メンバから使用されなくなった論理ユニットＬＵ-i（＝ＬＵ-n）を削除する（ステップＳ２０）。つまりファイルシステム１２２は、論理ユニットＬＵ-i（＝ＬＵ-n）をボリュームＶから切り離す。この状態を、図９（ｃ）に示す。ファイルシステム１２２は、使用ブロックがなくなった論理ユニットＬＵ-i（＝ＬＵ-n）をボリュームＶから切り離したことで、当該ボリュームＶの容量（サイズ）を削減すると共に、当該論理ユニットＬＵ-i（＝ＬＵ-n）を他のボリュームに割り付けて、当該他のボリュームの容量を拡張することができる。
【００４３】
なお、上記第１の変形例では、ブロック再配置が同一ボリュームＶ内で行われている。しかし、ボリュームＶ内の使用ブロックを、別のボリュームＶ’の連続する領域に移動することも可能である。このとき、ボリュームＶ’がディスクアレイ装置１１-1以外のディスクアレイ装置に確保されていても構わない。この構成では、ディスクアレイ装置１１-1〜１１-Nのストレージリソースを有効利用できる。
【００４４】
［第２の変形例］
次に上記実施形態の第２の変形例について説明する。  
この第２の変形例において、ディスクアレイ装置１１-1内のディスクアレイ制御装置１１２は、図１０に示すように、ＬＵ構成情報テーブル１１２ａ及びＨＤＤ情報テーブル１１２ｂを有する。ストレージシステム１０における他のディスクアレイ装置内のディスクアレイ制御装置（図示せず）も、ＬＵ構成情報テーブル１１２ａ及びＨＤＤ情報テーブル１１２ｂと同様のテーブルを有する。
【００４５】
ＬＵ構成情報テーブル１１２ａは、ディスクアレイ装置１１-1内の各論理ユニットＬＵ-1〜ＬＵ-n毎に、当該ＬＵ-1〜ＬＵ-nに割り当てられるストライプグループを提供するＨＤＤ、つまり当該ＬＵ-1〜ＬＵ-nを構成するＨＤＤ群を示す情報を保持するのに用いられる。なお、図１の例では、論理ユニットＬＵ-1〜ＬＵ-nがいずれもＨＤＤ１１１-1〜１１１-x（によって提供されるストライプグループ）から構成されることから、各論理ユニットＬＵ-1〜ＬＵ-n毎のディスク構成情報は同一である。一方、ＨＤＤ情報テーブル１１２ｂは、ディスクアレイ装置１１-1内の各ＨＤＤの物理情報を保持するのに用いられる。この物理情報は、ＨＤＤの１シリンダ当たりのセクタ数、ＨＤＤの１ヘッド（ディスク面）当たりのシリンダ数、及びＨＤＤの総トラック数の情報を含む。
【００４６】
次に、上記実施形態の第２の変形例の動作について、上記実施形態と同様に、ホスト２０-1からファイルシステム制御装置１２-1に対して、ディスクアレイ装置１１-1内の論理ユニットＬＵ-nのみを構成メンバとする対象ボリュームのフラグメンテーション状態を解消することが要求された場合を例に、図１１のフローチャートを参照して説明する。
【００４７】
まず、ファイルシステム制御装置１２-1に設けられたファイルシステム制御部１２４内のフラグメンテーション情報収集部１２４ａは、ファイルシステム１２２によって管理されているビットマップ１２２ａから、対象ボリュームにおけるフラグメンテーション状態を表すフラグメンテーション情報を収集する（ステップＳ２１）。またフラグメンテーション情報収集部１２４ａは、対象ボリュームが存在するディスクアレイ装置１１-1内のディスクアレイ制御装置１１２が有するＬＵ構成情報テーブル１１２ａとＨＤＤ情報テーブル１１２ｂとから、対象ボリュームの構成メンバとなっている論理ユニット（論理ユニットＬＵ-n）を構成するＨＤＤに関する情報と、当該ＨＤＤの物理的な情報とを収集する（ステップＳ２２）。ここでは、対象ボリュームの構成メンバは論理ユニットＬＵ-nのみであることから、論理ユニットＬＵ-nを構成するＨＤＤ１１１-1〜１１１-xに関する情報と、当該ＨＤＤ１１１-1〜１１１-xの物理的な情報とが収集される。
【００４８】
ファイルシステム制御部１２４内の分析部１２４ｂは、フラグメンテーション情報収集部１２４ａによって収集されたフラグメンテーション情報をもとに、対象ボリューム（つまり論理ユニットＬＵ-n）のフラグメンテーション状態を分析する（ステップＳ２３）。分析部１２４ｂは、ステップＳ２３でのフラグメンテーション状態の分析結果から、対象ボリューム（論理ユニットＬＵ-n）でのフラグメンテーション状態を解消するためのブロック再配置情報を生成する（ステップＳ２４）。
【００４９】
ステップＳ２４でのブロック再配置情報の生成では、単にフラグメンテーション状態の解消だけでなく、同一ＨＤＤ上でのブロック移動（ブロック再配置）の高速化（シーク動作が多発しないようなシーケンシャルな配置）も考慮される。即ち、同一ＨＤＤに対するブロック移動操作のための当該ＨＤＤのヘッド（リード／ライトヘッド）の移動が、ディスクの内周もしくは外周から、外周もしくは内周方向というように、ディスクの一方向への移動となるように考慮される。更に具体的に述べるならば、ブロック再配置の対象となる使用ブロック列をＨＤＤのディスク上に再配置する場合に、当該ＨＤＤのヘッドの移動方向がディスクの一方向となり、その際の当該ＨＤＤにおけるシーク動作に要する時間が最小のシーケンシャルアクセスとなるように考慮される。このようなブロック再配置の高速化のために、フラグメンテーション情報収集部１２４ａによって収集された、論理ユニットＬＵ-nを構成するＨＤＤ１１１-1〜１１１-xに関する情報と、当該ＨＤＤ１１１-1〜１１１-xの物理的な情報とが用いられる。ここで、ＨＤＤ１１１-1〜１１１-xの物理的な情報（セクタ数／シリンダ数／トラック数）は、ＨＤＤ毎に容量が異なる場合を考慮して、ブロック移動（再配置）の際のＨＤＤ（ディスク）上のヘッドの物理的な位置を算出するのに用いられる。
【００５０】
なお、ステップＳ２４でブロック再配置情報が生成された後の動作は、図４のフローチャート中のステップＳ３でブロック再配置情報が生成された後の動作と同様である。したがって、ステップＳ２４に後続する動作については、説明を省略する。
【００５１】
［第３の変形例］
次に上記実施形態の第３の変形例について説明する。  
この第３の変形例において、ディスクアレイ装置１１-1内のディスクアレイ制御装置１１２は、図１２に示すように、アクセス統計情報テーブル１１２ｃを有する。ストレージシステム１０における他のディスクアレイ装置内のディスクアレイ制御装置（図示せず）も、アクセス統計情報テーブル１１２ｃと同様のテーブルを有する。
【００５２】
アクセス統計情報テーブル１１２ｃは、ディスクアレイ装置１１-1内の各論理ユニットＬＵ-1〜ＬＵ-n毎に、当該ＬＵ-1〜ＬＵ-nに関するアクセス統計情報を保持する。論理ユニットＬＵ-i（ｉ＝１〜ｎ）のアクセス統計情報は、ホスト２０-1〜２０-X（上のアプリケーション）からのアクセス要求に応じて当該ＬＵ-iがアクセスされた際のアクセスの傾向、つまりアクセスパターンを表す。ここでは、アクセス統計情報は、アドレス（論理アドレス）及びサイズと、当該アドレスから始まる当該サイズの領域（論理的な領域）への単位時間当たりのアクセスの回数（アドレス／サイズ／アクセス回数）とから構成される。
【００５３】
次に、上記実施形態の第３の変形例の動作について、上記実施形態と同様に、ホスト２０-1からファイルシステム制御装置１２-1に対して、ディスクアレイ装置１１-1内の論理ユニットＬＵ-nのみを構成メンバとする対象ボリュームのフラグメンテーション状態を解消することが要求された場合を例に、図１３及び図１４を参照して説明する。なお、図１３は第３の変形例で適用されるブロック再配置情報のフォーマットを示す図、図１４は第３の変形例の動作手順を示すフローチャートである。
【００５４】
まず、ファイルシステム制御装置１２-1に設けられたファイルシステム制御部１２４内のフラグメンテーション情報収集部１２４ａは、ファイルシステム１２２によって管理されているビットマップ１２２ａから、対象ボリュームにおけるフラグメンテーション状態を表すフラグメンテーション情報を収集する（ステップＳ３１）。またフラグメンテーション情報収集部１２４ａは、対象ボリュームが存在するディスクアレイ装置１１-1内のディスクアレイ制御装置１１２から、対象ボリュームの構成メンバとなっている論理ユニット（論理ユニットＬＵ-n）のアクセス統計情報をアクセス統計情報テーブル１１２ｃから収集する（ステップＳ３２）。
【００５５】
ファイルシステム制御部１２４内の分析部１２４ｂは、フラグメンテーション情報収集部１２４ａによって収集されたフラグメンテーション情報をもとに、対象ボリューム（つまり論理ユニットＬＵ-n）のフラグメンテーション状態を分析する（ステップＳ３３）。分析部１２４ｂは、ステップＳ２２でのフラグメンテーション状態の分析結果と、フラグメンテーション情報収集部１２４ａによって収集されアクセス統計情報とから、対象ボリューム（論理ユニットＬＵ-n）でのフラグメンテーション状態を解消するためのブロック再配置情報を生成する（ステップＳ３４）。
【００５６】
ステップＳ３４でのブロック再配置情報の生成では、単にフラグメンテーション状態の解消だけでなく、そのためのブロック移動操作が、アプリケーションからの該当ボリュームへのアクセス（以下、通常のアクセスと称する）に影響を与えないようにするため、ブロック再配置の対象となる領域毎に、ブロック再配置の優先度が次のように決定される。
【００５７】
まず分析部１２４ｂは、アクセス統計情報「アドレス／サイズ／アクセス回数」と「フラグメンテーション情報」とをもとに、ある領域に対する通常のアクセスがある場合に、どれくらいフラグメンテーションによる性能劣化が発生しているかを、次のように算出する。例えば、論理ユニットＬＵ-n上のＣ０００番地から始まる１ＭＢの領域（論理的な領域）に対するアクセスがあり、その領域がＨＤＤでは１２８ＫＢ×８個の物理的に不連続な領域に分割されているとする。この場合、対応するアクセス統計情報が「アドレス＝Ｃ０００／サイズ＝１ＭＢ／単位時間当たりのアクセス回数＝Ｎ」であるとすると、８（分割数）×Ｎ（単位時間当たりのアクセス回数）がフラグメンテーションによるボリュームアクセス性能劣化の割合となる。
【００５８】
分析部１２４ｂは、ブロック再配置の候補となる領域毎にアクセス性能劣化の割合を算出すると、そのアクセス性能劣化の割合を領域毎に比較して、相対的に劣化の割合が大きい領域（例えば、１２８ＫＢ×８個なのか６４ＫＢ×１００個なのか）を探して、順に優先度を決定する。分析部１２４ｂは、ブロック再配置の候補となる領域毎にフラグメンテーションを解消するためのブロック再配置情報を生成し、当該情報に上述のようにして決定された優先度を付加する。図１３には、この優先度が付加されたブロック再配置情報のフォーマット例が示されている。
【００５９】
ブロック再配置コマンド生成部１２４ｃは、分析部１２４ｂによって生成された優先度付きのブロック再配置情報からブロック再配置のための優先度付きのブロック再配置コマンド列を生成する（ステップＳ３５）。ドライバ１２３は、この優先度付きのブロック再配置コマンド列をネットワーク１３経由でディスクアレイ装置１１-1に対して発行する（ステップＳ３６）。
【００６０】
ディスクアレイ装置１１-1内のディスクアレイ制御装置１１２は、ドライバ１２３から発行された優先度付きのブロック再配置コマンド列を受け付けると、ブロック再配置手段として機能して、当該コマンド列を実行する。これによりディスクアレイ制御装置１１２は、受け付けた優先度付きのブロック再配置コマンド列に従い、対象ボリューム（ここでは、対象ボリュームを構成する論理ユニットＬＵ-n）内の各使用ブロック列（または使用ブロック）のデータを、それぞれ当該ボリューム（論理ユニットＬＵ-n）内の指定された再配置先に配置（移動）させるブロック再配置処理を、図示せぬ優先度制御機構によって、対応する優先度順に実行する（ステップＳ３７）。これにより、上記の例において、１２８ＫＢ×８個の物理的に不連続な領域（前者の領域）よりも、６４ＫＢ×１００個の物理的に不連続な領域（後者の領域）に対するアクセスの方が性能劣化の割合が大きいものとすると、後者の領域のブロック再配置が優先的に行われる。
【００６１】
このように、フラグメンテーションによるボリュームアクセス性能劣化の割合に応じてブロック再配置の優先度を変えることにより、通常のアクセス（アプリケーションからのボリュームへのリード／ライトアクセス）に対してアクセス性能を極力一定に保つことが可能となる。
【００６２】
なお、ステップＳ３７でブロック再配置コマンド列に従うブロック再配置が実行された後の動作は、図４のフローチャート中のステップＳ６でブロック再配置コマンド列に従うブロック再配置が実行された後の動作と同様である。したがって、ステップＳ３７に後続する動作については、説明を省略する。
【００６３】
［第４の変形例］
次に上記実施形態の第４の変形例について、図１５のフローチャートを参照して説明する。この第４の変形例において、図１中のストレージシステム１０は、ボリューム（マスタボリューム）の複製（複製ボリューム）を取ることが可能なように構成されているものとする。第４の変形例の特徴は、マスタボリュームから複製ボリュームを作成する際に、ブロック再配置を自動的に実行する点にある。
【００６４】
今、ディスクアレイ装置１１-1（に設けられたディスクアレイ１１１）内の論理ユニットＬＵ-mが、図１６に示すようにボリュームＶｍの構成メンバとして定義されているものとする。この状態で、例えばファイルシステム制御装置１２-1の制御により、ボリュームＶｍをマスタボリュームとして、当該マスタボリュームＶｍの複製ボリュームＶｒを、ディスクアレイ装置（＃１）１１-1内（の論理ユニットＬＵ-n）及びディスクアレイ装置（＃Ｎ）１１-N内（の論理ユニットＬＵ-m）に作成するものとする。
【００６５】
この場合、ファイルシステム制御装置１２-1内のファイルシステム制御部１２４は、ファイルシステム１２２によって管理されているビットマップ１２２ａから、対象ボリュームＶｍ（つまり論理ユニットＬＵ-m）におけるフラグメンテーション状態を表すフラグメンテーション情報を収集する（ステップＳ４１）。
【００６６】
ファイルシステム制御部１２４内の分析部１２４ｂは、フラグメンテーション情報収集部１２４ａによって収集されたフラグメンテーション情報をもとに、対象ボリュームＶｍ（つまり論理ユニットＬＵ-m）のフラグメンテーション状態を分析する（ステップＳ４２）。分析部１２４ｂは、ステップＳ４２でのフラグメンテーション状態の分析結果から、対象ボリューム（論理ユニットＬＵ-m）でのフラグメンテーション状態を複製ボリュームＶｒ上で解消するためのブロック再配置情報を生成する（ステップＳ４３）。
【００６７】
ブロック再配置コマンド生成部１２４ｃは、分析部１２４ｂによって生成されたブロック再配置情報から、複製ボリューム作成が必要なディスクアレイ装置１１-1及びディスクアレイ装置１１-Nに対するブロック再配置コマンド列を生成する（ステップＳ４４）。ここでは、ディスクアレイ装置１１-1上のマスタボリュームＶｍを構成する論理ユニットＬＵ-mからディスクアレイ装置１１-1上の複製ボリュームＶｒとなる論理ユニットＬＵ-nに対するブロック再配置コマンド列と、ディスクアレイ装置１１-1上のマスタボリュームＶｍを構成する論理ユニットＬＵ-mからディスクアレイ装置１１-N上の複製ボリュームＶｒとなる論理ユニットＬＵ-mに対するブロック再配置コマンド列とが生成される。
【００６８】
ドライバ１２３は、ブロック再配置コマンド生成部１２４ｃによって生成されたブロック再配置コマンド列を、複製元と複製先のディスクアレイ装置、即ちディスクアレイ装置１１-1及び１１-Nに対してネットワーク１３経由で発行する（ステップＳ４５）。
【００６９】
このように第３の変形例では、ファイルシステム制御部１２４は、ディスクアレイ装置１１-1上のマスタボリュームＶｍから、複製ボリュームＶｒを当該ディスクアレイ装置１１-1とディスクアレイ装置１１-Nとに作成する同期動作（複製動作）を行う場合、複製ボリュームＶｒ上でのフラグメンテーション状態を解消するためのブロック再配置コマンド列を生成して、当該ディスクアレイ装置１１-1及び１１-Nに送出する。
【００７０】
ディスクアレイ装置１１-1内のディスクアレイ制御装置１１２及びディスクアレイ装置１１-N内のディスクアレイ制御装置（図示せず）は、ファイルシステム制御装置１２-1内のドライバ１２３から送られたブロック再配置コマンド列を受け付けると、ブロック再配置手段として機能して、互いに連携して当該コマンド列を実行する（ステップＳ４６）。これにより、ディスクアレイ装置１１-1内のマスタボリュームＶｍ（論理ユニットＬＵ-m）の複製であって、且つフラグメンテーション状態を解消するためのブロック再配置がなされた複製が、図１６に示すように、ディスクアレイ装置１１-1及び１１-N内に、複製ボリュームＶｒ（論理ユニットＬＵ-n及びＬＵ-m）として作成される。つまり、ディスクアレイ装置１１-1内のＬＵ-mから同じディスクアレイ装置１１-1内のＬＵ-nへのブロック再配置を伴うボリュームＶｒの複製と、ディスクアレイ装置１１-1内のＬＵ-mからディスクアレイ装置１１-N内のＬＵ-mへのブロック再配置を伴うボリュームＶｒの複製とが作成される。
【００７１】
なお、ステップＳ４６でブロック再配置コマンド列に従うブロック再配置が実行された後の動作は、図４のフローチャート中のステップＳ６でブロック再配置コマンド列に従うブロック再配置が実行された後の動作と同様である。したがって、ステップＳ４６に後続する動作については、説明を省略する。
【００７２】
［第５の変形例］
次に上記実施形態の第５の変形例について、図１７のフローチャートを参照して説明する。第５の変形例の特徴は、ブロック再配置を負荷分散に利用する点と、この負荷分散にアクセス統計情報テーブル１１２ｃを利用する点にある。
【００７３】
ファイルシステム制御装置１２-1内のファイルシステム制御部１２４は、ファイルシステム１２２によって管理されているビットマップ１２２ａから、ディスクアレイ装置１１-1〜１１-N上の各ボリュームにおけるフラグメンテーション状態を表すフラグメンテーション情報を収集する（ステップＳ５１）。またフラグメンテーション情報収集部１２４ａは、ディスクアレイ装置１１-1内のディスクアレイ制御装置１１２から、当該ディスクアレイ装置１１-1上の各ボリュームの構成メンバとなっている論理ユニット毎のアクセス統計情報をアクセス統計情報テーブル１１２ｃから収集する（ステップＳ５２）。このステップＳ５２において、フラグメンテーション情報収集部１２４ａは、ディスクアレイ装置１１-1以外のディスクアレイ装置上の各ボリュームの構成メンバとなっている論理ユニット毎のアクセス統計情報も収集する。
【００７４】
ファイルシステム制御部１２４内の分析部１２４ｂは、フラグメンテーション情報収集部１２４ａによって収集されたフラグメンテーション情報及びアクセス統計情報をもとに、各ボリューム（を構成する論理ユニット）のフラグメンテーション状態及びアクセスパターンを分析する（ステップＳ５３）。分析部１２４ｂは、このフラグメンテーション状態及びアクセスパターンの分析結果をもとに、各ボリュームから予め定められた一定のアクセス頻度を超える領域（論理的な領域）をそれぞれ検出し、当該各領域内のブロック群へのアクセスが、ＨＤＤ単位及びボリューム単位で平均化するように、当該ブロック群を、対応するボリュームを構成する複数のＨＤＤに分散させる（再配置）ためのブロック再配置情報を生成する（ステップＳ５４）。
【００７５】
以降の動作は、上記実施形態とほぼ同様である。即ち、ファイルシステム制御部１２４内のブロック再配置コマンド生成部１２４ｃは、分析部１２４ｂによって生成されたブロックク再配置情報をもとに、ディスクアレイ装置１１-1〜１１-N毎に、ブロック再配置のためのブロック再配置コマンド列を生成する。ファイルシステム制御装置１２-1内のドライバ１２３は、ブロック再配置コマンド生成部１２４ｃによって生成されたディスクアレイ装置１１-1〜１１-N毎のブロック再配置コマンド列を、ネットワーク１３経由でディスクアレイ装置１１-1〜１１-Nに対して発行する。ディスクアレイ装置１１-1〜１１-N内のディスクアレイ制御装置は、ファイルシステム制御装置１２-1内のドライバ１２３により発行されたブロック再配置コマンドに基づき、ブロック間のデータ再配置（データブロックの移動）を行う。これにより、特定ブロック群へのアクセスが集中している場合に、当該ブロック群へのアクセスを複数のＨＤＤに分散すること、つまり負荷分散を図ることができる。なお、複数のディスクアレイにまたがってボリュームが定義される構成でも、同様の負荷分散が可能である。
【００７６】
このように第５の変形例においては、各ディスクアレイ装置１１-1〜１１-Nに保持されているアクセス統計情報テーブルによって示されるアクセスの傾向（ディスク利用状況）をもとに、ブロック再配置により負荷分散を行うことができる。このため、ディスクアレイ装置１１-1〜１１-Nのストレージリソースを有効利用できる。
【００７７】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる変形例に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００７８】
【図１】本発明の一実施形態に係る計算機システムの構成を示すブロック図。
【図２】同実施形態で適用されるビットマップ１２２ａの一例を示す図。
【図３】図１中のファイルシステム制御部１２４の構成を示すブロック図。
【図４】同実施形態における動作手順を示すフローチャート。
【図５】論理ユニットＬＵ-nにおけるフラグメンテーション状態とフラグメンテーション状態が解消されている状態とを対比して示す図。
【図６】ブロック再配置情報のフォーマット例を示す図。
【図７】論理ユニットＬＵ-nにおけるブロック再配置の例を示す図。
【図８】同実施形態の第１の変形例における動作手順を示すフローチャート。
【図９】上記第１の変形例において、論理ユニット間でデータの再配置を行うことで、１つの論理ユニット全体を空き論理ユニットとして、対応するボリュームの構成メンバから切り離す場合の、当該論理ユニットの状態変化を示す図。
【図１０】同実施形態の第２の変形例で適用されるＬＵ構成情報テーブル１１２ａ及びＨＤＤ情報テーブル１１２ｂのデータ構造例を示す図。
【図１１】上記第２の変形例における動作手順を示すフローチャート。
【図１２】同実施形態の第３の変形例で適用されるアクセス統計情報テーブル１１２ｃのデータ構造例を示す図。
【図１３】同実施形態の第３の変形例で適用されるブロック再配置情報のフォーマットを示す図。
【図１４】上記第３の変形例における動作手順を示すフローチャート。
【図１５】同実施形態の第４の変形例における動作手順を示すフローチャート。
【図１６】上記第４の変形例におけるボリューム複製を示す図。
【図１７】同実施形態の第５の変形例における動作手順を示すフローチャート。
【符号の説明】
【００７９】
１０…ストレージシステム、１１-1〜１１-N…ディスクアレイ装置、１２-1〜１２-M…ファイルシステム制御装置、１１１…ディスクアレイ、１１１-1〜１１１-x…ＨＤＤ、１１２…ディスクアレイ制御装置、１１２ａ…ＬＵ構成情報テーブル（論理ユニット構成情報テーブル）、１１２ｂ…ＨＤＤ情報テーブル、１１２ｃ…アクセス統計情報テーブル、１２１…ホストアクセス処理部、１２２…ファイルシステム、１２２ａ…ビットマップ、１２３…ドライバ、１２４…ファイルシステム制御部、１２４ａ…フラグメンテーション情報収集部、１２４ｂ…分析部、１２４ｃ…ブロック再配置コマンド生成部、ＬＵ-1〜ＬＵ-n，ＬＵ-m…論理ユニット。
【図１】
2005284632.tif 000003
【図２】
2005284632.tif 000004
【図３】
2005284632.tif 000005
【図４】
2005284632.tif 000006
【図５】
2005284632.tif 000007
【図６】
2005284632.tif 000008
【図７】
2005284632.tif 000009
【図８】
2005284632.tif 000010
【図９】
2005284632.tif 000011
【図１０】
2005284632.tif 000012
【図１１】
2005284632.tif 000013
【図１２】
2005284632.tif 000014
【図１３】
2005284632.tif 000015
【図１４】
2005284632.tif 000016
【図１５】
2005284632.tif 000017
【図１６】
2005284632.tif 000018
【図１７】
2005284632.tif 000019