(57)【要約】【課題】  従来、記憶階層はホスト上プログラムにより実現されていたり、論理ディスク単位で実現されていたため、計算機への依存度が高く、柔軟なシステム構成や、管理の容易化に制限があった。また、ファイル特性に応じてファイルを最適配置することへの配慮がなかった。【解決手段】  記憶装置は、ファイルＩ／Ｏインタフェース制御装置と、複数のディスクプールを備える。ファイルＩ／Ｏインタフェース制御装置は、ディスクプール内のLUに、複数のストレージクラスと呼ばれる記憶階層のいずれかを設定し、LUにファイルシステムを構成する。ファイルＩ／Ｏインタフェース制御装置は、ファイルの静的特性とファイルの動的特性に基づき、最適なストレージクラスのLUにファイルをマイグレーションする。【選択図】  図７
2006216070.tif 000002
【特許請求の範囲】
【請求項１】
第一のシステムと第二のシステム間でファイルを移行する方法であって、
前記第一のシステムは、第一のファイルアクセス制御部と第一のストレージシステムとを有し、前記第一のストレージシステムは複数の第一の磁気ディスク装置と前記複数の第一の磁気ディスク装置に接続された第一のディスクアレイ制御部とを有し、前記第一のファイルアクセス制御部は、当該第一のシステムに構成された第一のファイルシステムを制御しており、前記第一のファイルアクセス制御部はファイルアクセス要求を受信すると当該ファイルアクセス要求に従ってファイルへのアクセスを制御し、
前記第二のシステムは、第二のファイルアクセス制御部と第二のストレージシステムを有し、前記第二のストレージシステムは複数の第二の磁気ディスク装置と前記複数の第二の磁気ディスク装置に接続された第二のディスクアレイ制御部とを有し、前記第二のファイルアクセス制御部は当該第二のシステムに構成された第二のファイルファイルシステムを制御しており、前記第二のファイルアクセス制御部はファイルアクセス要求を受信すると当該ファイルアクセス要求に従ってファイルへのアクセスを制御し、
各々ファイル移行の条件を有する複数のポリシーが、複数のソフトウェアプログラムによって設定されており、
前記第一のファイルシステム内に、ファイルに適用される前記複数のポリシーのいずれかが有する条件を満たすファイルが存在する場合に、ポリシーに基づいて当該ファイルを前記第一のシステムから前記第二のシステムに移行し、
ファイルの移行後に、前記ファイルの移行先を示す情報と、前記ファイルに適用されたポリシーを設定したソフトウェアプログラムを示す情報とを、前記第一のシステムに残すことを特徴とする方法。
【請求項２】
請求項１記載の方法であって、
前記ファイルの移行先を示す情報と、前記ファイルに適用されたポリシーを設定したソフトウェアプログラムを示す情報とは、前記第一のストレージシステムに残すことを特徴とする方法。
【請求項３】
請求項２記載の方法であって、
前記複数の第一の磁気ディスク装置には、複数の第一の論理ユニットが構成されており、
前記複数の第二の磁気ディスク装置には、複数の第二の論理ユニットが構成されており、
前記ファイルのデータは前記ポリシーに基づいて第一の論理ユニットから第二の論理ユニットに移行され、
前記ファイルの移行後に、前記ファイルの移行先を示す情報と、前記ファイルに適用されたポリシーを設定したソフトウェアプログラムを示す情報とを、前記ファイルのデータが移行前に格納されていた前記第一の論理ユニット内に残すことを特徴とする方法。
【請求項４】
請求項１記載の方法であって、
前記第二のシステムでは、前記第一のシステムから移行されたファイルについて、当該ファイルについて前記第一のシステムにおいて用いられていた第一のファイル名とは異なる第二のファイル名が用いられ、
前記ファイルの移行後には、前記第二のファイル名を更に前記第一のシステムに残すことを特徴とする方法。
【請求項５】
請求項４記載の方法であって、
前記ファイルの移行後に前記第一のシステムに残される、前記第二のファイル名、前記ファイルの移行先を示す情報、及び前記ファイルに適用されたポリシーを設定したソフトウェアプログラムを示す情報には、前記第一のファイル名を用いてアクセス可能であることを特徴とする方法。
【請求項６】
請求項５記載の方法であって、
前記ファイルの移行後に前記第一のファイルアクセス制御部が前記第一のファイル名を有するファイルアクセス要求を受信した場合に、前記第一のファイルアクセス制御部は前記第二のファイルアクセス制御部に対して、前記第二のファイル名を有する他のファイルアクセス要求を送信することを特徴とする方法。
【請求項７】
請求項１記載の方法であって、
前記ファイルを前記第一のシステムから前記第二のシステムに移行する場合に、前記第一のファイルシステムから当該ファイルが読み出され、当該ファイルを前記第二のファイルシステムに書き込むための第二のライト要求が前記第二のシステムに送信されることを特徴とする方法。
【請求項８】
請求項７記載の方法であって、
前記ファイルを前記第二のファイルシステムに書き込むための前記第二のライト要求は、NFS若しくはCIFSに従って前記第二のシステムに送信されることを特徴とする方法。
【請求項９】
請求項１記載の方法であって  
前記複数の第一の磁気ディスク装置は各々、前記複数の第二の磁気ディスク装置とはことなるインタフェースを有することを特徴とする、方法
【請求項１０】
請求項９記載の方法であって、
前記複数の第一の磁気ディスク装置は各々FCインタフェースを有しており、前記複数の第二の磁気ディスク装置は各々ATAインタフェースを有している。
【請求項１１】
計算機と接続される記憶装置であって、
計算機からファイルの識別情報を指定したアクセス要求を受信する第一のインタフェース制御装置と、
前記第一のインタフェース制御装置と接続される第二のインタフェース制御装置と、
前記第二のインタフェース制御装置に接続される複数のディスクとを有し、
前記複数のディスクには、一又は複数の第一のディスクと、一又は複数の第二のディスクが含まれており、第一のディスクと第二のディスクは種類の異なるディスクであり、
前記第一のインタフェース制御装置は、計算機から受信した識別情報に基づいて、該識別情報によって指定されるファイルのデータの、前記複数のディスク内での格納位置を決定し、
前記第二のインタフェース制御装置は、前記第一のインタフェース制御装置によって決定された格納位置に、前記識別情報によって指定されるファイルのデータを格納するよう制御することを特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムで用いられる記憶装置に関する。
【背景技術】
【０００２】
特許文献１には、階層記憶装置とよぶ計算機に、高速記憶装置と低速記憶装置を接続したシステムが開示されている。特許文献１では、使用頻度の高いファイルは磁気ディスク装置などの高速記憶装置に格納され、使用頻度の低いファイルはテープ装置などの安価な低速記憶装置に格納される。そして、ファイル毎のアクセス頻度を管理するテーブルを用いて、どのファイルをどの記憶装置に配置する、即ち格納するかが決定されている。
【０００３】
また、特許文献２では、ディスクアレイサブシステムに代表されるような、計算機に接続して使用される記憶装置の内部に、処理速度や記憶容量の異なる複数の論理記憶装置を構成したシステムが開示されている。記憶装置は、記憶装置に格納されているデータに対する計算機からのアクセス頻度を、統計情報として管理し、この統計情報を基に、アクセス頻度の高いデータをより高性能な論理記憶装置へ移動させるための技術を開示している。
【０００４】
【特許文献１】特開平９−２９７６９９号公報（第３−４頁、図１）
【特許文献２】特開平０９−２７４５４４号公報（第３頁、図６、７）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来の技術における第一の課題は、記憶装置に接続される計算機への依存度が高く、システム構成に制約があり、システム管理の容易化が困難であることである。
【０００６】
特許文献１では、計算機上で動作するソフトウェアにより階層記憶制御を実現している。ここで階層記憶制御とは、処理速度や記憶容量の異なる複数の記憶領域に、データの使用頻度に応じて記憶領域を変更できるよう制御するデータ記憶制御のことである。即ち、階層記憶制御とは、データの使用頻度等データの特性に応じて、処理速度や記憶容量等の特性が異なる複数の記憶領域から適切な記憶領域を選択して、選択された記憶領域にデータを記憶させるよう制御することである。しかし古い計算機を新しい計算機にリプレイスする場合等、システム構成を変更しようとした際に、ソフトウェアの制御情報を引き継ぐことができない等の理由により、システムの維持が困難になることがある。
【０００７】
特許文献２では、論理記憶装置単位で階層記憶制御が実施されているが、記憶装置が論理記憶装置に記憶されているデータのデータ構造を認識するための技術や、排他制御を実行するための技術は開示されていない。従って、複数の計算機で同一の論理記憶装置を共有することは困難であり、複数の計算機によって使用される記憶装置を集約化して、計算機システムの管理コストを低減するためには、計算機毎に論理記憶装置を割り当てる等、計算機システムの構成に一定の制約が必要となる。
【０００８】
第二の課題は、データのライフサイクルや種類に応じたデータの最適配置が困難であることである。
【０００９】
従来技術では、過去にアクセス頻度が高かったデータは、将来もアクセス頻度が高いものと推定し、データのアクセス頻度に関する統計情報や、高速にアクセスできる記憶領域の使用容量に応じて、データを記憶させる記憶領域を決定している。そして、アクセス頻度の高いデータが高速にアクセスできる記憶装置に存在する確率を高めることで、処理効率の向上を図っている。しかし、データのライフサイクル、すなわちファイル生成後からの経過時間や、データを生成したり使用したりするアプリケーションの種類ややデータ自体の種類に依存する、データの特性の相違を考慮して、データを記憶させる記憶領域を決定する技術は開示されていない。
【００１０】
第三の課題は、階層記憶制御の効果が小さいことである。
【００１１】
特許文献１では、磁気テープと磁気ディスクの容量差と価格差を利用して階層記憶制御を実行しているが、近年、磁気テープと磁気ディスクの容量差、価格差は縮小しており、これに伴って階層記憶制御によるコストの適正化、低コスト化の効果は小さくなっている。更に、磁気テープへのアクセススピードは磁気ディスクへのアクセススピードに比べて非常に遅いので、磁気テープをオンラインアクセス用の記憶装置に用いるのは困難である。
【００１２】
特許文献２では、磁気ディスクのＲＡＩＤ構成の違いによる価格差と性能差を利用して階層記憶制御を実行しているが、価格差はRAID構成における冗長度の差に起因するだけなので、冗長度の差分のみの低コスト化しか望めない。
【００１３】
本発明の目的は、ホスト計算機で実行されるＯＳやアプリケーションに依存することなく、ファイルの格納位置についての階層記憶制御が実行できる制御方法又は記憶装置を提供することである。
【００１４】
本発明の他の目的は、複数の計算機からファイルを共用することができる階層記憶制御方法、又は階層記憶制御を実行する記憶装置を提供することである。
【００１５】
本発明の他の目的は、ファイルの特性に応じた階層記憶制御を実行できる制御方法又は記憶装置を提供することである。
【００１６】
本発明の他の目的は、低コスト化の効果の高い階層記憶制御方法、又は階層記憶制御を実行する記憶装置を提供することである。
【課題を解決するための手段】
【００１７】
記憶装置は、特性の異なる複数の記憶領域と、一又は複数の計算機からファイルの識別情報を有するアクセス要求を受け付けるインタフェース制御装置と、識別情報によって指定されるファイルのデータが格納されている記憶領域にアクセスするためのインタフェース制御装置とを有し、インタフェース制御装置がファイルの特性に応じて、ファイルのデータを複数の記憶領域のいずれかに格納するよう制御する。
【発明の効果】
【００１８】
ホスト計算機に依存することなく、記憶装置内部での処理によって、ファイルが有する特性に応じた階層記憶制御を実現することができる。
【発明を実施するための最良の形態】
【００１９】
本発明の実施形態を以下に説明する。尚本実施形態によって本発明が限定されるものではない。
【実施例１】
【００２０】
［実施形態１］
システム構成の一例（図１）
図１は、本発明が適用される、記憶装置１を含む計算機システムの一例を示した図である。以下、xは任意の整数を表す。
【００２１】
記憶装置１は、ディスクコントローラ（以下、「DKC」と称する）11及び複数の磁気ディスク装置（以下単にディスクと称する）170x、171xを有するディスクアレイシステムである。本実施形態においては、記憶装置1は２種類のディスク170x、171xを備えている。170xはFibre Channel（以下、「FC」と称する）型のインタフェースを備えるFCディスク、171xはserial AT Attached（以下、「SATA」と称する）型のインタフェースを備えるSATAディスクである。そして、複数のFCディスク170xはFCディスクプール０(170)を、複数のSATAディスク171xはSATAディスクプール１(171)を構成している。ディスクプールの詳細は後述する。
【００２２】
次に、記憶装置１のDKC11の構成を説明する。DKC11は、一又は複数のNASチャネルアダプタ110x、一又は複数のファイバチャネルアダプタ111x、複数のディスクアダプタ12x、共有メモリ13（以下「SM」と呼ぶ。）、共有メモリコントローラ15（以下「SMC」と呼ぶ。）、キャッシュメモリ14（以下「CM」と呼ぶ。）、キャッシュメモリコントローラ16（以下「CMC」と呼ぶ）を有する。
【００２３】
NASチャネルアダプタ（以下「CHN」と称する）110xは、ローカルエリアネットワーク（以下LANと称する。）20やLAN21と接続される計算機40x（以下、NASホストと称する）と、ファイルＩ／Ｏインタフェースで接続されるインタフェース制御装置である。
【００２４】
ファイバチャネルアダプタ（以下、「CHF」と称する）111xは、ストレージエリアネットワーク（以下SANと称する。）30に接続される計算機（以下、SANホストと称する）50xと、ブロックＩ／Ｏインタフェースで接続されるインタフェース制御装置である。以下、CHN及びCHFをまとめてチャネルアダプタ（以下「CH」）と称する。
【００２５】
ディスク17xは、ディスクアダプタ12xに接続されている。各ディスクアダプタ（以下、「DKA」と称する）12xは、自身に接続されている一又は複数のディスク17xへの入出力を制御する。
【００２６】
SMC15は、CHN110x、CHF111x、DKA12x及びSM13と接続される。SMC15は、CHN110x、CHF111x、及びDKA12xとSM13との間のデータ転送を制御する。CMC16は、CHN110x、CHF111x、DKA12x及びCM14と接続される。CMC16は、CHN110x、CHF111x、及びDKA12xとCM14との間のデータ転送を制御する。
【００２７】
SM13は、ディスクプール管理テーブル131を記憶している。ディスクプール管理テーブル131は、ディスクプールの構成を管理するために用いられる情報である。
【００２８】
LAN20及び21は、CHN110xとNASホスト40xとを接続する。一般的に、LANにはEthernet（登録商標）が用いられる。SAN30は、CHF111x及びSANホスト50xとを接続する。一般的に、SANにはFibre Channelが用いられる。しかしSANとしてIPネットワークを用い、SANに接続される機器間ではSCSIプロトコルに従ったSCSIコマンドをIPパケットでカプセル化して送受信する、iSCSIを用いることとしても良い。SAN35は、本実施形態においては、記憶装置を接続するための専用のSANであるものとし、SAN35にはSANホストは接続していないものとする。
【００２９】
記憶装置１では、すべてのCHが、CMC16又はSMC15を介して、CM14、SM13、全てのDKA12x、及びすべてのディスク17xへアクセスすることが出来る。
【００３０】
尚図１に示す記憶装置1は、SANホスト50xに接続するためのSANインタフェース（CHF111x）と、NASホスト40xと接続するためNASインタフェース（CHN110x）の双方を有するが、本実施形態は、記憶装置１がNASインタフェースのみを有する場合であっても、実施可能な実施形態である。
【００３１】
(2)記憶装置の外観例（図２）
図２は、記憶装置１の外観の一例を示す図である。
【００３２】
DKCユニット19は、DKC11の構成要素である、CHN110x、CHF111x、DKA12x、SM13、及びCM14を格納する。SM13は、実際には複数のコントローラボード13xで構成される。また、CM14も、複数のキャッシュボード14xで構成される。記憶装置１の使用者は、これらのボードの枚数を増減して、所望の記憶容量のCM14又はSM13を有する記憶装置1を構成することができる。ディスクユニット(以下、「DKU」と称する)180及びDKU181は、ディスクプール170及びディスクプール171を格納する。
【００３３】
スロット190には、CHN110x、CHF111x、DKA12x、コントローラボード13x、キャッシュボード14x等が作りこまれたアダプタボードが格納される。本実施形態においては、スロット190の形状、アダプタボードのサイズ及びコネクタの形状を、アダプタボードの種類やインタフェースの種類を問わず一定にし、互換性を保つようにする。したがって、DKCユニット19には、アダプタボードの種類、インタフェースの種類を問わず、任意のスロット190に任意のアダプタボードを装填することができる。また、記憶装置１の使用者は、CHN110x及びCHF111xのアダプタボードの数を自由に選択して、DKCユニット19のスロットに選択された数のCHN及びCHFを装填することが出来る。
【００３４】
(3)CHN110xが作りこまれたアダプタボード（以下「NASボード」と称する。）の外観構成の一例（図３）
図３は、NASボードの外観構成の一例を示す図である。コネクタ11007は、DKCユニット19が有するコネクタと接続される。インタフェースコネクタ2001は、イーサネット（登録商標）に対応し、イーサネット（登録商標）と接続可能である。
【００３５】
本実施形態においては、上述したように、アダプタボードのコネクタの形状は、アダプタボードの種類によらず一定であるため、CHN110xが作りこまれたアダプタボードとCHF111xが作りこまれたアダプタボードとは同一形状のコネクタを有する。尚、CHF111xが作りこまれたアダプタボードの場合、インタフェースコネクタ2001は、ファイバチャネルに対応し、ファイバチャネルと接続できるように構成されている。
【００３６】
(4)NASボード(若しくはCHN)の構成の一例（図４）
図４は、CHN110xの構成の一例を示す図である。ファイルアクセス制御用CPU11001は、ファイルアクセスを制御するプロセッサである。LANコントローラ11002は、インタフェースコネクタ2001を介してLANと接続され、LANとの間のデータの送受信を制御する。ファイルアクセス制御用メモリ11004は、ファイルアクセス制御用CPU11001と接続される。ファイルアクセス制御用メモリ11004には、ファイルアクセス制御用CPU11001が実行するプログラムや、制御データが格納されている。
【００３７】
ディスクアレイ制御用CPU11008は、ディスクアレイを制御するプロセッサであるである。ここで、ディスクアレイとは、複数のディスクから構成される記憶装置のことである。特に複数のディスクのうち少なくとも１台以上に冗長データを格納し、耐障害性を備えたディスクアレイのことをRAIDと呼ぶ。RAIDについては後述する。ディスクアレイ制御用メモリ11009は、ディスクアレイ制御用CPU11008と接続され、ディスクアレイ制御用CPU11009が実行するプログラムや、制御データが格納されている。SM I/F制御回路11005は、CHN110xからSM13へのアクセスを制御する回路である。CM I/F制御回路11006は、CHN110xからCM14へのアクセスを制御する回路である。CPU間通信回路11007は、ファイルアクセス制御用CPU11001がディスクアクセスのためにディスクアレイ制御用CPU11008と通信する際に用いられる通信回路である。
【００３８】
なお、本実施形態では、CHNにファイルアクセス制御用CPU11001とディスクアレイ制御用CPU11008の２つのプロセッサが搭載された、非対象型のマルチプロセッサ構成の例を示しているが、ファイルアクセス制御とディスクアレイ制御を単一のプロセッサで実行するようCHNを構成して実装することもできるし、ファイルアクセス制御とディスクアレイ制御を二つ以上のプロセッサで対等に実行する対称型マルチプロセッサ構成としてCHNを実装することもできる。
【００３９】
尚、CHF111xの構成は、図4の上半分に示された構成要素である、LANコントローラ11002とファイルアクセス制御用CPU11001とファイルアクセス制御用メモリ11004とCPU間通信回路11007とが、ファイバチャネルコントローラに置き換えられた構成である。
【００４０】
(5)ファイルアクセス制御用メモリに格納されているプログラムの一例（図５）
図５は、CHN110xが有するファイルアクセス制御メモリ11004に格納されているプログラムや制御データの一例を示す図である。オペレーティングシステムプログラム110040は、プログラム全体の管理や入出力制御に用いられる。LANコントローラドライバプログラム110041は、LANコントローラ11002の制御に用いられる。TCP/IPプログラム110042は、LAN上の通信プロトコルであるTCP/IPの制御に用いられる。ファイルシステムプログラム110043は、記憶装置に格納されるファイルの管理に用いられる。ネットワークファイルシステムプログラム110044は、記憶装置に格納されるファイルを、NASホスト40xに提供するためのプロトコルであるNFSやCIFS等の制御に用いられる。ボリューム制御プログラム110045は、ディスクプール17x内に設定された記憶領域の一単位である論理ディスクユニット(以下LUと称する)を複数組み合わせて論理ボリュームを構成するための制御に用いられる。CPU間通信ドライバプログラム110046は、ファイルアクセス制御用CPU11001とディスクアレイ制御用CPU11008間で通信を行うためのCPU間通信回路11007の制御に用いられる。
【００４１】
ファイルシステムプログラム110043には、
1)ファイルを使用する際に、ファイルのオープン処理を実行するファイルオープン処理部1100431、
2)ファイルアクセス要求を受信した際に、アクセス要求に従った処理を実行する要求処理部1100432、
3)ファイルをブロック化し、ブロックのディスク上での格納位置を決定して、ブロックの格納位置を管理するファイル格納管理部1100433、
4)ブロックと、メモリ上に構成されるバッファとの対応づけを管理するバッファ管理部1100434、
5)ファイルを構成するブロックを格納している、ディスク上の記憶領域のアドレスを管理するために用いられる、ファイル格納管理テーブル1100435、
6)オープンされたファイルのファイル名と、そのファイルのファイル格納管理テーブル1100435にアクセスするために用いられるファイルハンドラとを管理するために用いられるファイル名管理テーブル1100436、
7)ファイルを構成するブロックの、バッファ内での格納領域を示すバッファアドレスを管理するためのバッファ管理テーブル1100437、
8)ファイルの種類、ファイルを生成したアプリケーション、ファイルの生成者の意図などのファイル静的特性と、ファイルのライフサイクルに従い変化するファイルの価値やファイルのアクセス特性などのファイル動的特性とを格納する、ファイル特性情報テーブル1100438、
9）ファイルをLU間で移行するための処理を実行する際に用いられるマイグレーション管理部110043A、
10）ストレージプール内に構成されたLU毎に、後述するストレージクラスや、LUが存在する記憶装置の識別情報等を登録している、ストレージクラス管理テーブル1100439が含まれる。
【００４２】
(6)ディスクアレイ制御用メモリの構成（図６）
図６は、ディスクアレイ制御メモリ11009に格納されているプログラムの一例を示す図である。オペレーティングシステムプログラム110090は、プログラム全体の管理や入出力制御に用いられる。ディスクアレイ制御プログラム110091は、ディスクプール17x内にLUを構築したり、ファイルアクセス制御用CPU11001からのアクセス要求を処理するのに用いられる。ディスクプール管理プログラム110092は、ディスクプール17xの構成を、SM13に格納されたディスクプール管理テーブル131の情報を用いて管理するために用いられる。CPU間通信ドライバプログラム110093は、ファイルアクセス制御用CPU11001とディスクアレイ制御用CPU11008との間で通信を行うためのCPU間通信回路11007の制御に用いられる。キャッシュ制御プログラム110094は、CM14に格納されているデータの管理や、キャッシュヒット／ミス判定等の制御に用いられる。DKA通信ドライバプログラム110095は、LUにアクセスする際に、当該LUを構成するディスク170xや171xを制御するDKA12xと通信するために用いられる。
【００４３】
(7)ディスクプール構成（図７）
図７はディスクプールの構成例を示す図である。
【００４４】
FCディスクプール170にはLU0(51)、LU1(52)の２つのLUが設定されている。LU0 (51)は、DK000、DK010の２台のFCディスクにより構成されており、DK000、DK010はRAID1を構成している。LU1(52)はDK001、DK002、DK003、DK004、DK005の５台のFCディスクにより構成されており、これら5台のFCディスクは、4D+1PのRAID5を構成している。尚、RAID１及びRAID5とは、それぞれディスクアレイにおけるデータの配置方法のことであり詳しくは、1988年に開催されたACM  SIGMOD会議のプロシーディングp.109-116に掲載されている、D Patterson外2名著、「A Case for Redundant Arrays of Inexpensive Disks (RAID)」に記載されている。RAID1構成のLU0では、2台のFCディスクDK000及びDK010はミラーの関係にある。一方RAID5構成のLU1は、ホスト計算機からアクセスされるファイルのデータが格納されるデータストライプを記憶する一又は複数のディスクと、データストライプに格納されるデータを回復するために用いられるパリティストライプを記憶する一又は複数のディスクから構成される。LU1は４D＋1PのRAID5構成であるが、「4D+１P」は4つのデータストライプと1つのパリティストライプから構成されるRAID5であることを示している。以下同様の表示にてRAID5構成のLUにおける、データストライプ数とパリティストライプ数を表示する。
【００４５】
SATAディスクプール171にはLU2(52)が設定されている。LU2(52)はDK100、DF101、DK102、DK103、DK104、DK110、DK111、DK112、DK113の９台のSATAディスクにより構成されており、これら9台のSATAディスクは、8D+1P構成のRAID5を構成している。
【００４６】
各々のディスクの容量を140GBとすると、LU0(51)は140GB、LU1(52)は560GB、LU2(53)は1120GBの利用可能な記憶容量を持つ。
【００４７】
尚、各LUには独立したローカルファイルシステムLFS0(60)、LFS1(61)、LFS2(62)が設定、構築されている。
【００４８】
(8)ストレージクラス管理テーブル（図８）
図８は、CHN110xが有するファイルアクセス制御メモリ11004に格納されているストレージクラス管理テーブル1100451の構成例を示している。ストレージクラス管理テーブル1100451は、ファイルアクセス制御用CPUがファイルシステムプログラム110043を実行することによって、SM13上のディスクプール管理テーブル131に格納された情報を参照し、作成したものである。
【００４９】
ディスクプール管理テーブル131については図示しないが、ディスクプール管理テーブル131はSM13に格納されており、ストレージクラス管理テーブル1100451と同様の情報を全CHについて有する。すなわち、あるCHN110xのファイルアクセス制御メモリ11004に格納されているストレージクラス管理テーブル1100451は、ディスクプール管理テーブル131が有する情報のうち、当該CHN110xが使用するLUに関する情報について、ストレージクラスをキーとして配列し直したものである。
【００５０】
以下ストレージクラス管理テーブルの構成を説明する。StorageClass欄(1100451a)には、ストレージクラスを示す情報が格納される。StorageNode#欄(1100451b)には、当該ストレージクラスを構成する記憶装置の識別番号（ストレージノード番号と呼ぶ）が格納される。DiskPOOL#欄(1100451c)には、当該ストレージクラスを構成するディスクプール番号が格納される。LU#欄(1100451d)には、当該ディスクプールに設定されたLUの番号が格納される。LU Type欄(1100451e)には、LUが当該記憶装置の内部(Local)と外部(Remote)のどちらに設定されているかと、LU内にファイルシステムが設定されているかいないかを示す情報が格納される。即ち、LUが記憶装置内に存在する場合には“Local”が、LUが他の記憶装置内に存在する場合には“Remote”がLU Type欄に登録され、LUにファイルシステムが構築されている場合には“File”が、LUにファイルシステムが構築されていない場合には“Block”がLU Type欄に登録される。RAIDConf.欄(1100451f)には、当該LUを構成するディスクアレイのRAIDレベルと、パリティグループ内のデータレコードとパリティレコードの数等、ディスクアレイの構造を示す情報が格納される。Usable Capacity欄(1100451g)とUsedCapacity欄(1100451h)には各々、当該LUの総記憶容量と使用中の記憶容量を示す情報が格納される。
【００５１】
ストレージクラスとは、データの格納用途別に設けられた、記憶領域の階層的な属性であり、本実施形態では、OnLine Storage、NearLine Stoarge、Archive Storageの３つの属性を定義している。また、OnLine Storageについては、副属性としてPremium、Normalを定義している。OnLine Storageは、オンラインアクセス中のファイルや、生成途上のファイル等、頻繁にアクセスされるファイルのデータを格納するのに適するLUに設定される属性である。特に、Premiumは早いレスポンスを要求されるデータを格納するのに適したLUに設定される属性である。NearLine Storageは、あまり頻繁には使用されないが、まれにアクセスされるファイルのデータを格納するのに適するLUに設定される属性である。Archive Storageは、ほぼアクセスされることはなく、長期保存のためのファイルのデータを格納するのに適するLUに設定される属性である。
【００５２】
図８では、記憶装置1（STR0と呼ぶ）が有するFCディスクプール170にOnLine 
Storage(Premium)クラスのLU0(50)とOnLine Storage(Normal)クラスのLU1(51)が
存在していることを示している。また、同じ記憶装置1(STR0)内の、SATAディスク
プール171には、NeaLine StorageクラスのLU2(52)が存在する。また、別の記憶装
置(STR1)には、SATAディスクプールにArchive StorageクラスのLU3(53)が存在す
る。なお、異なる記憶装置にディスクプールを構築する例は後述する。
【００５３】
(9)ファイル名管理テーブル（図９）
図９には、ファイルアクセス制御用メモリ11004に格納されている、ファイル名管理テーブル1100436の一例を示す。ファイル名管理テーブルはファイルシステム毎に用意されるテーブルであり、ファイル名とファイルハンドラが、容易に検索できるように、木構造で格納されている。ファイルがNASホスト40xからアクセスされる際には、NASホストからCHNが受信するアクセス要求にファイル名が含まれている。CHNはこのファイル名を用いてファイル名管理テーブル11004を検索し、ファイル名に対応するファイルハンドラを取得して、このファイルハンドラと対応付けられているファイル格納管理テーブル1100435を参照することができる。
【００５４】
なお、ファイル名管理テーブルは、ファイル名管理テーブルに対応するファイルシステムが構築されているLU上に格納されており、必要な時にメモリに読み込まれてファイルアクセス制御用CPUによって使用される。
【００５５】
(10)ファイル格納管理テーブル（図１０）
図１０はファイル格納管理テーブル1100435及びバッファ管理テーブル1100437の一例を示す図である。ファイル格納管理テーブルは、ファイル毎にファイルアクセス制御用メモリに備えられており、ファイルの格納アドレスを管理するテーブルである。ファイル格納管理テーブルは、ファイルを示すファイルハンドラを指定することによって参照される。
【００５６】
ファイル特性情報管理テーブル欄には、対応するファイルについてのファイル特性情報管理テーブル1100438を参照するためのポインタが格納されている。大きさはファイルのバイト単位の大きさを示す。ブロック数は、ファイルを論理ブロックと呼ぶブロックに分割して管理する際に使用している論理ブロックの数を表す。また、ファイルが格納される論理ブロックごとに、その論理ブロックについてのバッファ管理テーブル1100437へのポインタが格納されている。
【００５７】
バッファ管理テーブル1100437は、各論理ブロック毎に１つ存在し、以下の内容が格納されている。ハッシュリンク欄にはバッファが有効かどうかすばやく判定するためのハッシュ表へのリンクポインタが格納されている。待ち行列リンク欄には待ち行列を形成するためのリンクポインタが格納されている。フラグ欄にはバッファの状態すなわち、有効なデータが格納されているかどうか、バッファは使用されているかどうか、バッファの内容がディスクに未反映となっているかどうか、等を示すフラグが格納されている。機器番号欄には論理ブロックが格納される記憶装置の識別子及びLUの識別子が格納されている。ブロック番号欄には機器番号で示された記憶装置内での、論理ブロックの格納位置を示すディスクアドレス番号が格納されている。バイト数欄には論理ブロックに格納された有効なデータのバイト数が格納されている。バッファサイズ欄には本バッファのバイト単位の大きさが格納されている。バッファポインタ欄には物理バッファメモリへのポインタが格納されている。
【００５８】
なお、ファイル格納管理テーブルは、対応するファイルが格納されるLU内に格納され、必要な時にメモリに読み込まれて使用される。
【００５９】
(11)ファイル特性情報管理テーブル（図１１）
図１１は、ファイルアクセス制御用メモリ11004に格納されているファイル特性情報管理テーブル1100438の一例を示す図である。ファイル特性情報管理テーブルは、静的特性情報と動的特性情報を格納する。静的特性情報は、ファイルを構成した際に決定され、その後も引き継がれる情報である。もちろん静的特性情報を意図的に変更することもできるが、その時以外は変更されることはない。動的特性情報は、ファイルが作成された後、時間の経過に従って逐次変更されていく情報である。
【００６０】
(12)静的特性情報
静的特性情報には、ファイル情報カテゴリとポリシーカテゴリがある。
【００６１】
ファイル情報カテゴリには、ファイルの基礎情報が含まれる。ファイル情報カテゴリにおいて、ファイル種類は、テキストファイル、ドキュメントファイル、画像ファイル、動画ファイル、音声ファイル等、当該ファイルの種類を示す。アプリケーションは、当該ファイルを生成したアプリケーションを示す。作成日は、最初にファイルが生成された日付を示す。作成日としてファイルが作成された日付だけでなく作成時間も登録しても良い。所有者はファイルを作成したユーザ名を示す。アクセス識別子は当該ファイルのアクセス許可範囲を示す。
【００６２】
ポリシーカテゴリは、ファイルを生成したユーザ又はアプリケーションによって設定される情報であり、ファイルの格納条件等について、ユーザ又はアプリケーションにより指定される情報である。初期ストレージクラスは、ファイルを最初に記憶装置に格納する際に、そのファイルを格納すべきLUのストレージクラスを示す情報である。資産価値タイプは、当該ファイルの資産価値を示す。ライフサイクルモデルは、あらかじめ定義されたライフサイクルモデルのうち、当該ファイルに適用されるモデルを示す。マイグレーションプランは、あらかじめ定義されたファイルの移行（以下、マイグレーションと称する。）に関するプランのうち、当該ファイルに適用されるプランを示す。
【００６３】
ここで、資産価値とは、ファイルがどのような重要性や価値を持っているかを指定する属性である。資産価値としては例えば、「特別重要」、「重要」、「普通」等の属性を指定できる。例えば、「重要」以上の属性のファイルはPremium属性のストレージクラスに属するLUに格納する等、資産価値をストレージクラス選定の際の補足基準として用いたり、ライフサイクルモデルが指定されていないときのストレージクラス選定の基準として使用することができる。
【００６４】
以下本実施形態の説明には、「重要」以上のファイルは「Premium」クラスのストレージクラスに属するLUに格納することと仮定する。勿論、本発明はこの様な仮定に限定されることはなく、ファイルを格納するLUのストレージクラスを選択する際に、異なる基準を用いることも可能である。
【００６５】
ライフサイクルとは、データが生成される時期を誕生、データが更新され又利用される時期を成長、データが更新されることは少なく、参照されることが主となる時期を成熟、そしてデータがやがて使用されなくなり保管されるようになる時期を老齢といった様に、ファイルの使用状況が時間経過によって移り変わってゆくのを、人の生涯に見立て、名付けられたものである。ライフサイクルモデルとは、ファイルがどのようなライフサイクルを送るかを定義したものである。最も汎用的な定義の方法としては、ファイル生成後の経過時間で定義する方法がある。一例としては、更新が頻発する「成長期」もしくは「更新期」を１ヶ月、参照が主体となる「成熟期」もしくは「参照期」を１年、それ以降を「老齢期」もしくは「保管期」と定義する方法がある。以下、この定義を「モデル１」と称し、以下の説明に用いる。ライフサイクルモデルの時間間隔を変更したり、さらなる分解能をもった期間を定義することで、色々なライフサイクルモデルを定義し、複数のライフサイクルモデルからあるライフサイクルモデルを選択して使用することができる。特定のファイル種類に特定のライフサイクルモデルを適用したり、アプリケーション毎にそのアプリケーションが生成したファイルに対して適用するライフサイクルモデルを用意してもよい。なお、ライフサイクルの名称には、人の生涯に対応した「成長期」「成熟期」「老齢期」という表現を用いる場合や、ファイル挙動に基づく「更新期」「参照期」「保管期」という表現を用いる場合がある。以下本実施形態では挙動を明確にするため後者を用いることにする。
【００６６】
マイグレーションプランとは、ライフサイクルに従い、ファイルをどのようなストレージクラスのLUに移動していくかを定義したものである。一例として、「更新期」のファイルをOnLine Storageクラスの、「参照期」のファイルをNearLine Storageクラスの、「保管期」のファイルをArchive StorageクラスのLUに格納する方法がある。以下、この定義を「プラン１」と称し、以下の説明で用いる。このプラン以外にも、「更新期」のファイルはOnLine Storage (premium)クラスに、「参照期」のファイルはOnLine Storage(Normal)クラスに格納するよう定義したり、「保管期」のファイルもNearLine Storageクラスに格納したままにする等、いろいろなプランを定義し、その中からプランを選択して使用できるようにすることができる。特定のファイル種類のファイルに特定のマイグレーションプランを適用したり、アプリケーション毎にそのアプリケーションが生成したファイルに適用するマイグレーションプランを用意してもよい。
【００６７】
(13)動的特性情報
動的特性情報には、アクセス情報カテゴリと、ライフサイクル情報カテゴリがある。
【００６８】
アクセス情報カテゴリには、ファイルのアクセス統計情報が含まれる。アクセス情報カテゴリにおいて、タイムスタンプはファイルが最後に読み書きされた日付や時刻や、ファイルのファイル格納管理テーブルが最後に更新された日付や時刻を示す。アクセスカウントはファイルに対する総アクセス回数を示す。リードカウント、ライトカウントは各々、ファイルへのリード回数、ライト回数を示す。リードサイズ、ライトサイズはファイルのリード時とライト時それぞれにおける、データ転送サイズの平均値を示す。リードシーケンシャルカウント、ライトシーケンシャルカウントは、リード時とライト時それぞれにおいて、連続する複数の２回のアクセス間にアドレス連続性、すなわちシーケンシャル性がある場合の回数を示す。
【００６９】
ライフサイクル情報カテゴリには、ファイルのライフサイクルに関連する情報が含まれる。ライフサイクル情報カテゴリにおいて、現行ライフサイクルは、更新期、参照期、保管期等、現時点でのファイルのライフサイクルにおける位置づけを示す。現行ストレージクラスは、現時点においてファイルが格納されているLUが設定されているストレージプールのストレージクラスを示す。
【００７０】
以上、図11には、ファイル特性情報の一例を示したが、これら以外にも色々な特性情報を定義してファイル特性情報管理テーブル1100438に格納することができる。また、これらの特性情報の一部のみを必要に応じて用いる実施形態とすることもできる。
【００７１】
(14)ファイル初期配置：ファイルオープン処理
次に、ファイルを記憶装置に最初に格納する初期配置処理の際に行われる、ファイルオープン処理について説明する。
【００７２】
NASホスト0(400)がファイルabc.docを生成したとする。
【００７３】
NASホスト0(400)は、CHN0(1100)に対してファイルabc.docのオープン要求を発行する。オープン要求には、ファイルを識別するための識別情報としてファイル名が含まれる。今回のオープン処理は、ファイルの新規格納のために実行されるので、NASホスト0(400)は、ファイル特性情報の静的特性情報として、ファイル情報カテゴリとポリシーカテゴリに含まれる以下の情報をオープン要求と共にCHN0(1100)へ送信する。送信される情報は、ファイル情報カテゴリに含まれる情報として、ファイル種類「ドキュメント」、ファイルを生成したアプリケーション「ＸＹＺワード」、アクセス識別子「-rw-rw-rw-」と、ポリシーカテゴリに含まれる情報として、初期ストレージクラス「指定なし」、資産価値タイプ「重要」、ライフサイクルモデル「モデル１」、マイグレーションプラン「プラン１」である。
【００７４】
CHN0(1100)は、LANコントローラ11002経由でNASホストからファイルのオープン要求を受信し、ファイルアクセス制御用CPU11001はファイルシステムプログラム110043を実行する。
【００７５】
ファイルシステムプログラム110043が実行されると、ファイルアクセス制御用CPU11001の制御により、受信されたオープン要求は、ファイル名のディレクトリ情報に基づき、ローカルファイルシステムＬＦＳ０(60)へのアクセス要求であることが特定される。そして、ファイルオープン処理部1100431は、ＬＦＳ０(60)のファイル名管理テーブル1100436を参照し、abc.docを検索する。その結果、abc.docがまだファイル名管理テーブル1100436には存在しない新たに格納されるファイルであることが判明するので、ファイルオープン処理部1100431は、ファイル名管理テーブルにabc.docを登録しファイルハンドラを割り当てる。
【００７６】
次にファイル格納管理部1100433がファイルabc.docに割り当てられたファイルハンドラと対応させてファイル格納管理テーブル1100435を作成する。
【００７７】
次にファイル格納管理部1100433が、ファイル特性情報管理テーブル1100438を生成して、ファイル格納管理テーブル1100435に関連づけた上で（即ちファイル格納管理テーブルにファイル特性情報管理テーブルへのポインタを格納した上で）、NASホスト0から取得したファイル特性情報の静的特性情報と、ファイルの作成日、所有者をファイル特性情報管理テーブル1100438に格納する。そして、このファイルが属するファイルシステムが構築されているLUに、ファイル格納管理テーブル及びファイル特性情報管理テーブルが書き込まれる。
【００７８】
その後、CHN0(1100)はファイルハンドラをNASホスト0に返しオープン処理が終了する。
【００７９】
(15)ファイル初期配置：データライト処理
次にファイルの初期配置処理の際に実行されるデータライト処理について説明する。
【００８０】
NASホスト0(400)は、ファイルabc.docのデータを記憶装置1に格納すべく、オープン処理で獲得したファイルハンドラを用いてライト要求をCHN0(1100)に発行する。
【００８１】
CHN0（1100）では、ライト要求を受信するとファイルアクセス制御用CPU11001がファイルシステムプログラム110043を実行し、オープン処理の際と同様の方法によってこのライト要求がローカルファイルシステムＬＦＳ０(60)へのアクセス要求であることを特定する。
【００８２】
ファイルシステムプログラム110043の要求処理部1100432は、受信したアクセス要求内に含まれる情報に基づいてこのアクセス要求がライト要求であることを解釈し、ライト要求内で指定されているファイルハンドラを用いて、このファイルハンドラに対応付けられているファイルのファイル格納管理テーブル1100435を獲得する。
【００８３】
次にファイル格納管理部1100433は、データを格納するのに必要なバッファを確保するとともに、ファイルのディスク上での格納位置を決定する。
【００８４】
格納位置の決定に際しては、ファイル格納管理部1100433は、ファイル特性情報管理テーブル1100438の静的特性情報を参照する。ここで、ライト要求の対象となっているファイルabc.docのライフサイクルモデルは「モデル１」であり、受信したライト要求はファイルの初期配置の際のアクセス要求であるからファイル生成後１ヶ月以内のアクセスなので、ファイル格納管理部1100433はファイルabc.docの現行ライフサイクルは「成長期」であると特定する。また、初期ストレージクラスは「指定なし」であり、資産価値タイプは「重要」であるので、ファイル格納管理部は、ファイルabc.docを格納すべきストレージプールのストレージクラスとして「OnLine Storage(Premium)」を選択する。
【００８５】
次にファイル格納管理部1100433は、ストレージクラス管理テーブル1100439を参照し、ストレージクラス「OnLine Storage(Premium)」に該当する、ストレージノード「STR0（すなわち自記憶装置1）」、DiskPool#「FCディスクプール1700」、LU#「LU0（すなわちローカルファイルシステムはＬＦＳ０）」で特定されるLUにファイルを格納することを決定する。そしてファイル格納管理部1100433は、適切なアルゴリズムの下、ファイル内のデータを一又は複数の論理ブロックに分割し、論理ブロック毎にLU0上の格納アドレスを決定し、バッファ管理テーブル1100437を生成して決定された格納アドレスを登録し、ファイル格納管理テーブル1100435のバッファ管理テーブルエントリに、生成されたバッファ管理テーブルへのポインタを格納する。更に、ファイル格納管理部1100433は、ファイル格納管理テーブル1100435の残りのエントリに情報を格納する。なお、本実施形態においては、ファイル格納管理テーブルのリンク先のエントリは全てNULLとする。
【００８６】
そして、ファイル格納管理部1100433は、ファイル特性情報管理テーブル1100438の動的特性情報のライフサイクル情報カテゴリについて、現行ライフサイクルを「更新期」と、現行ストレージクラスを「OnLine Storage(Premium)」と設定する。また、ファイル格納管理部1100433は、動的特性情報のアクセス情報カテゴリに含まれる情報について、適切に計算した上で、ファイル特性情報管理テーブルに登録する。
【００８７】
要求処理部1100432は、受信したライト要求に従った処理を実行し、LANコントローラドライバプログラム110041、TCP/IPプログラム110042、ネットワークファイルシステムプログラム110044がファイルアクセス制御用CPU11001によって実行された結果、NASホスト0(400)からライトデータがCHN0(1100)に転送され、ファイルアクセス制御用メモリ11004のバッファに一旦格納される。その後、CPU間通信ドライバプログラム110046がファイルアクセス制御用CPU11001によって実行され、この結果適切なタイミングでディスクアレイ制御用CPUにライト要求が転送される。ライト要求を受信したディスクアレイ制御用CPU11008は、CM14にライトデータを一旦キャッシュし、NASホスト0(400)からのライト要求に対して完了応答を返信する。
【００８８】
その後、適切なタイミングで、LU0を構成するディスクを制御するDKA120の制御の下、当該ディスクにライトデータが格納される。
【００８９】
以上のように、ファイルの静的特性情報に基づき、適切なストレージクラスに属する記憶領域にファイルを初期配置することができる。
【００９０】
(16)ファイルマイグレーション処理（図１２）
次にファイルのマイグレーション処理について説明する。
【００９１】
ファイルシステムプログラム110043のマイグレーション管理部110043Aは、あらかじめ設定されたタイミングで、ファイルアクセス制御用CPUによって起動される。
【００９２】
そして、マイグレーション管理部110043Aは、あらかじめマイグレーション処理の対象として設定されているローカルファイルシステムについて、そのファイルシステムに含まれるファイルのファイル特性管理テーブルを参照することにより、マイグレーションの対象となるファイルが存在するかどうか調査する。以下、ファイルabc.docがマイグレーション処理の対象となる場合について、具体的に説明する。
【００９３】
マイグレーション管理部110043Aは、abc.docのファイル特性情報管理テーブル1100438を参照し、作成日と現在の日付及び時刻を比較する。既に作成日から１ヶ月が経過していたとすると、静的特性情報のライフサイクルモデルが「モデル１」であり、「更新期」の期間である１ヶ月間が経過していることから、既に現行ライフサイクルが「更新期」から「参照期」に変化しているということをマイグレーション管理部110043Aが認識する。
【００９４】
更にマイグレーションプランが「プラン１」であることから、ファイルを、ストレージクラスが「OnLine Storage (Premium)」であるLUから「NearLine Storage」であるLUに移行しなくてはならないことを、マイグレーション管理部110043Aは認識する。
【００９５】
そこでマイグレーション管理部110043Aは、ストレージクラス管理テーブル1100439を参照し、「NearLine Storage」クラスに属する、ストレージノード「STR0（すなわち自記憶装置1）」、DiskPool#「SATAディスクプール1710」、LU#「LU2（すなわちローカルファイルシステムはＬＦＳ２）」で指定されるLUに、当該ファイルを移動することを決定する。
【００９６】
次にマイグレーション管理部110043Aは、ファイル特性情報管理テーブル1100438の動的特性情報の、現行ライフサイクルを「参照期」に、現行ストレージクラスを「NearLine」にそれぞれ変更する。
【００９７】
そして、マイグレーション管理部110043Aは、ファイルabc.docを記憶装置STR0 (1)内部で管理する際に使用するための、一意なファイル名（ここではFILE00001とする）を定義する。
【００９８】
ファイルオープン処理部1100431は、ＬＦＳ２(60)のファイル名管理テーブル1100436を参照し、FILE00001のファイル名が未だファイル名管理テーブル1100436に登録されていないことを確認し、登録されていなければ、ファイル名管理テーブル1100436にファイル名FILE00001を登録し、ファイルハンドラを割り当てる。
【００９９】
次にファイル格納管理部1100433が、ファイルFILE00001に割り当てられたファイルハンドラと対応させて、ファイル格納管理テーブル1100435とファイル特性情報管理テーブル1100438を生成する。生成されたファイル特性情報管理テーブル1100438には、abc.docのファイル特性情報管理テーブルに登録されている内容と同じ内容が格納される。そして、ファイル格納管理部1100433は、FILE00001が格納されるLUに、FILE00001のファイル格納管理テーブルとファイル特性情報管理テーブルを書き込む。
【０１００】
次にファイル格納管理部1100433は、FILE00001のデータを格納するのに必要なバッファ領域を確保するとともに、このファイルを格納するためのLU2内の記憶領域（若しくは格納位置）を決定する。そして前述のデータライト処理の際と同様の方法で、ファイル格納管理部1100433は、バッファ管理テーブル1100438を生成して決定された格納位置を登録し、ファイル格納管理テーブル1100435のバッファ管理テーブルエントリに生成されたバッファ管理テーブルへのポインタを登録する。尚、ＬＦＳ２に格納されるファイルFILE00001のファイル格納管理テーブル1100435のリンク先エントリは、全てNULLであるものとする。
【０１０１】
また、ファイル格納管理部1100433は、図12に示すように、ＬＦＳ０のabc.docのファイル格納管理テーブル1100435のリンク先ノード名をSTR0、リンク先FS名をLFS2、リンク先ファイル名をFILE00001に変更する。
【０１０２】
次に要求処理部1100432は、abc.docのデータをLU0を構成しているディスクからファイルアクセス制御用メモリ11004内のバッファに読み込む。そして、ファイルアクセス制御用メモリ11004内のバッファに読み込まれたこのデータを、LU2を構成しているディスクに書き込まれるFILE0001のデータとして、上述のファイル格納管理部1100433によって決定され、バッファ管理テーブルに登録されているバッファ内の格納領域に、要求処理部1100432が書き出す。
【０１０３】
そして、ファイル格納管理部1100433は、ＬＦＳ０のabc.docのファイル格納管理テーブル1100435に登録されているポインタから参照可能なバッファ管理テーブルを全て解放し、これらのバッファ管理テーブル内のエントリにNULLを登録する。
【０１０４】
バッファに格納されたFILE00001のデータは、適切なタイミングで前述の初期配置処理におけるデータライト処理と同様の手順により、記憶装置1のCM14を経由して、LU2に格納される。これでマイグレーション処理が終了する。
【０１０５】
以上のように、本実施形態によれば、ファイルのマイグレーションプランに基づき、ファイルのライフサイクルを考慮した適切なストレージクラスの記憶領域に、ファイルをマイグレーションすることができる。
【０１０６】
本実施形態によれば、ホスト計算機やホスト計算機で実行されるアプリケーションに依存することなく、ストレージクラスという概念に基づいてファイルを格納するためのLUを選択し、またファイルを格納するLUを変更することができる。この結果、ホスト計算機に依存することなく、コスト効果の高い記憶階層、すなわち、特性の異なる複数の記憶領域、を有する記憶装置を実現することができる。
【０１０７】
また、ファイル単位でデータの移行が実行されるので、ファイルI/Oインタフェースを用いれば、ファイルの移行後も、複数のホスト計算機から同じファイルにアクセスすることができる。
【０１０８】
更に、ファイルの種類やファイルを生成したアプリケーションの種類、ファイル生成者の意図（ポリシー）といったファイルの静的特性や、ファイルのライフサイクルや、価値、アクセス特性の変化といったファイルの動的特性に基づいたファイルベースの階層記憶制御を実行することができる。
【実施例２】
【０１０９】
［実施形態２］
(1)システム構成の一例（図１３）
次に第２の実施形態のシステム構成の一例を図１３を用いて説明する。本実施形態においては、第１実施形態の記憶装置1(以下STR0と称する)と、別の記憶装置1a(以下STR1と称する)をネットワークで接続したシステムにおいて、記憶装置間で階層記憶制御が実行される。
【０１１０】
図１３において、記憶装置STR1(1a)は、記憶装置STR0(1)にLAN20を介して接続される他の記憶装置であり、その他のシステム構成要素は図１と共通である。
【０１１１】
STR1(1a)において、NCTL0(1100a)及びNCTL1(1101a)はNASコントローラ、ディスクプール０(170a)はNCTL0、NCTL1に接続されたディスクプールである。
【０１１２】
NASコントローラNCTLxは、図4に示す第１実施形態のCHN1100の構成のうち、SM I/F制御回路11005及びCM I/F制御回路11006に代わり、ディスクプール０1700aを接続するためのFCコントローラ11010aを備える。また、NASコントローラNCTLxは、キャッシュメモリCM14aをNASコントローラ内に有し、またキャッシュメモリCM14aのための制御回路であるデータ転送回路11011aを備える。更にNASコントローラNCTLxは、データ転送回路11011aを有し、データ転送回路を介してNASコントローラ1100a、NASコントローラ1101bは相互に接続されている。図13ではNASコントローラNCTL1(1101a)の構成の詳細は図示していないが、NASコントローラ1101aは、NASコントローラ1100aと同様の構成を有する。尚、第一の実施形態において説明したCHN1100と同じ番号が振られた構成要素はCHN1100の該当要素と同様の構成を有し、同様の機能を有する。
【０１１３】
STR1は、STR0に比べて小規模かつ低価格な記憶装置であるとする。また、図13に示す通り、STR0のCHN0とSTR1のNCTL0はLAN20により接続されている。
【０１１４】
(2)他の記憶装置へのファイルの移行処理
次に本実施形態の動作を説明する。
【０１１５】
記憶装置1(STR0)のCHN0(1100)は、LAN20に種類の異なる記憶装置1a(STR1)が接続していることを認識する。異なる記憶装置の認識は、あらかじめ管理者から指定された情報に基づき行う方法や、LAN20のネットワークセグメントに認識のためのコマンドを同報送信することにより反応した装置の有無により行う方法等がある。STR0のCHN0はSTR1の構成を把握するため、自身がイニシエータとなり、情報を採取するためのコマンドをSTR1に発行する。このコマンドに対するSTR1からの応答には、STR1が有するディスクプールの種類やLUの構成が含まれているので、この応答を参照することによって、CHN0は、STR1がSATAディスクプール170aを所持し、このディスクプール170a内に、15D+1PのRAID5構成を有し2100GB容量の大容量で低コストなFile TypeのLUを所持していることを認識することができる。そして、STR0のCHN0は、STR1が有するLUを、リモートLU、即ち他の記憶装置STR1(1a)に存在するが自記憶装置STR0(1)が管理する一つのLUとして、管理することを決定する。
【０１１６】
CHN0はSTR1が有するLUにLU3の番号を割り当て、またこのLU内に構築されるファイルシステムにはリモートファイルシステムＲＦＳ３の番号を割り当てる。また、このLUは大容量低コストなディスクプールに存在するので、このLUのストレージクラスを「Archive Storage」に設定する。そしてCHN0のディスクアレイ制御用CPU11008の制御によって、上述のディスクプールの種類、LUの構成、LU番号、ストレージクラス等、STR１に存在するLU3に関する情報が、記憶装置1（STR0）が有するSM13のディスクプール管理テーブル131に格納される。記憶装置１が有するCHNは、ファイルシステムプログラム110043をファイルアクセス制御用CPU11001が実行することによって、ディスクプール管理テーブル131を参照し、ディスクプール管理テーブル131からLU03に関する情報をコピーすることによって、LU03についての情報をファイルアクセス制御用メモリ内のストレージクラス管理テーブル1100451に登録することができる。
【０１１７】
以下、第１実施形態で説明したように、NASホスト0(400)がファイルabc.docをCHN0経由でSTR0のLU0に格納し、その後CHN0の制御によってファイルabc.docがSTR0のLU2に移行されたと仮定して、本実施形態において、ファイルabc.docを更に他の記憶装置STR1内のLU3に移行するために実行される処理について、第１実施形態との相違点のみを説明する。
【０１１８】
第１実施形態で説明した通り、ファイルabc.docは、図１１、図１２に示すように、現行ライフサイクルが「参照期」で、現行ストレージクラスは「NearLine Storage」で、STR0のSATAディスクプールに構築されたLU2上のLFS2にFILE00001という名称でデータ部が格納されている。ファイル名「abc.doc」が登録されているファイル名管理テーブル1100436と、ファイルabc.docに関するファイル格納管理テーブル1100435は、LFS0に存在する。即ち、LFS0用のファイル名管理テーブル110436及びLFS0内のファイル用のファイル格納管理テーブルに、abc.docに関する情報が登録されている。一方、ファイル特性管理情報管理テーブル1100438はLFS0とLFS2の両方に存在している。尚、ファイルabc.docのデータ部はLFS2が構築されているLU2にマイグレーション済みなので、LFS0が構築されているLU0にはabc.docのデータ部は存在しない。
【０１１９】
STR0のマイグレーション管理部110043Aは、abc.docのファイル特性情報管理テーブル1100438を参照し、作成日と現日付及び時刻を比較する。既にマイグレーション後１年が経過していたとすると、abc.docの静的特性情報のライフサイクルモデルは「モデル１」であるから、「参照期」の期間である１年間が経過しており、既に現行ライフサイクルが「参照期」から「保管期」に変化しているということを、マイグレーション管理部110043Aは認識する。そして、abc.docのマイグレーションプランが「プラン１」であることから、マイグレーション管理部110043Aは、このファイルをストレージクラスが「NearLine Storage」であるLUからストレージクラスが「Archive Storage」であるLUに移行しなくてはならないことを認識する。
【０１２０】
次にマイグレーション管理部110043Aは、ストレージクラス管理テーブル1100439を参照し、「Archive Storage」クラスに属するLU3を選択して、LU3にファイルabc.docを移動することを決定する。LU3は、ストレージノードが「STR1（すなわち他の記憶装置1a）」、DiskPool#が「SATAディスクプール」、LU Typeが「Remote File」という属性を備える。
【０１２１】
次にマイグレーション管理部110043Aは、abc.docのファイル特性情報管理テーブル1100438の動的特性情報の、現行ライフサイクルを「保管期」に、現行ストレージクラスを「Archive」にそれぞれ変更する。
【０１２２】
次にマイグレーション管理部110043Aは、記憶装置STR0(1)内でファイルabc.docを管理するための一意なファイル名（ここではSTR1-FILE00001とする）を定義する。
【０１２３】
マイグレーション管理部110043Aは、自身がNASホストのごとく動作し、STR1に対してファイルSTR1-FILE00001のオープン要求を発行する。今回のオープン処理は、STR1にとってはファイルの新規格納のために実行されるオープン処理である。そこでSTR0は、ファイルabc.docの静的特性情報として、STR0がファイル特性情報管理テーブル内に所持している情報を、オープン要求内に含めて、STR1に送信する。ただし、静的特性情報のうち初期ストレージクラスのみ「Archive」に変更して送信することで、STR0はSTR１に対して、ファイルSTR1-FILE0001を最初からArchiveストレージクラスに格納するよう明示的に指定する。
【０１２４】
STR1のNCTL0は、LANコントローラ11002a経由でオープン要求を受信し、ファイルアクセス制御用CPU11001aはファイルシステムプログラム110043aを実行する。
【０１２５】
ファイルシステムプログラム110043aが実行されると、第１実施形態と同様に、受信したオープン要求がローカルファイルシステムＲＦＳ３へのアクセス要求であることが特定され、ファイルアクセス制御用CPU11001aの制御によって、ファイルアクセス制御用メモリ11004a内のファイル名管理テーブル1100436aにSTR1-FILE00001が登録されてファイルハンドラが割り当てられ、ファイルアクセス制御用メモリ11004a内にファイル格納管理テーブル1100435a及びファイル特性情報管理テーブル1100438aが作成され各テーブル内に登録されるべき情報が設定される。そして、NCTL0はSTR1-FILE00001に対して割り当てられたファイルハンドラを、CHN0のマイグレーション管理部110043Aに宛てて送信し、オープン処理が終了する。
【０１２６】
次にSTR0のマイグレーション管理部は、第１実施形態のデータライト処理におけるNASホストと同様、オープン処理でSTR1のNCTL0から取得したファイルハンドラを有するライト要求をSTR１に対して発行し、abc.docの実データ（即ちFILE000001の実データでもあるデータ）をファイルSTR1-FILE00001の実データとしてライトするよう要求する。
【０１２７】
STR1のファイル格納管理部1100433aは、ライトデータを保存するために必要なバッファ領域を確保し、ファイルの実データのディスク上での格納位置を決定し、又、STR0から受信したライトデータをバッファに格納する。
【０１２８】
格納位置の決定に際しては、ファイル格納管理部1100433aによってファイル特性情報管理テーブル1100438aの静的特性情報が参照される。ここで、ファイルSTR1-FILE00001のライフサイクルモデルは「モデル１」であり、ファイル生成後１年１ヶ月以上経過しているので、STR1-FILE00001の現行ライフサイクルは「保管期」であるとファイル格納管理部1100433aは特定する。また、初期ストレージクラスはSTR0から指定された「Archive Storage」であるとファイル格納管理部1100344aは特定する。
【０１２９】
そしてファイル格納管理部1100433aは、ファイル特性情報管理テーブル1100438aの動的特性情報のライフサイクル情報カテゴリについて、現行ライフサイクルを「保管期」と、現行ストレージクラスを「Archive Storage」と設定する。更にファイル格納管理部1100433aは、ファイルSTR1-FILE00001に関するアクセス情報を適切に計算し、ファイル特性情報管理テーブルのアクセス情報カテゴリ内の情報更新する。尚、STR1-FILE00001のファイル格納管理テーブル1100435aのリンク先エントリには全てNULLが登録されるものとする。
【０１３０】
その後、NCTL0の制御により、適切なタイミングで、LU3を構成するディスクにファイルSTR1-FILE00001のデータ部分が格納される。
【０１３１】
以上でSTR1におけるライト処理が終了し、処理がSTR0に戻る。
【０１３２】
STR0のファイル格納管理部1100433は、ＬＦＳ２のFILE00001のファイル格納管理テーブル1100435のリンク先ノード名をSTR1、リンク先FS名をLFS3、リンク先ファイル名をSTR1-FILE00001に変更する。そして、ファイル格納管理部1100433は、FILE00001のファイル格納管理テーブル1100435に登録されているポインタから参照されるバッファ管理テーブルを全て開放し、これらのバッファ管理テーブルのエントリをNULLとする。
【０１３３】
以上により、ファイルabc.docのデータ部の実態はSTR0のＬＦＳ２にあったFILE00001から、STR1のＲＦＳ３にあるSTR1-FILE00001へ移動したことになる。
【０１３４】
以降、NASホストからファイルabc.docに対するアクセス要求が発行された場合には、STR0のCHNが一旦ＬＦＳ０のabc.docのファイル格納管理テーブルを参照してリンク先ノード名、FS名、ファイル名を取得し、取得したリンク先の識別情報（即ち、STR0、LFS2、FILE00001）に基づいて、ＬＦＳ２のFILE00001のファイル格納管理テーブルを参照する。そしてSTR0のCHNは更に、LFS２のFILE00001のファイル格納管理テーブルから再びリンク先ノード名、FS名、ファイル名を取得し、取得したリンク先の識別情報（即ち、STR1、LFS3、STR1-FILE00001）を指定したアクセス要求を、STR1のNCTLへ発行することによって、STR1のＲＦＳ３のSTR1-FILE00001にたどり着き、STR1のNCTLを介してabc.docのデータ部にアクセスできる。
【０１３５】
このように本実施形態においては、STR1が有するLU3内に移行されたファイルにアクセスするためには、複数のファイル格納管理テーブルを参照しなければならないため、アクセス速度は若干低下する。しかしSTR1が有するLU3に格納されるファイルは、現行ライフサイクルが「保管期」のファイルであり、ほとんどアクセス要求がこないファイルであるので、実用上は問題ない。仮に、「保管期」のファイルのデータに対してホスト計算機からアクセス要求が発行された場合であっても、Archiveクラスに属するファイルとはいえ磁気ディスク内に格納されているため、従来の様にテープにファイルが格納されている場合と比べれば、テープ制御のための多大なアクセス時間を必要とせず、一旦テープからディスクにデータを移動しなおす必要もなく、データが記憶されているディスク上の記憶位置からそのままリアルタイムでデータを取り出すことができる。
【０１３６】
以上のように、本実施形態によれば、ライフサイクルに従いファイルの格納位置を決定しているので、ライフサイクルが老いた「保管期」のファイルには保管に適したArchiveストレージクラスが、選択される。
【０１３７】
また、自記憶装置に他の記憶装置を接続することができ、記憶装置毎の特徴の違いを利用した記憶階層を構築することができる。そして、マイグレーションプランにそって、自記憶装置内ばかりでなく、他の記憶装置内のLUへファイルを移行することができ、１台の記憶装置で階層記憶制御を実現する場合と比較して、一層記憶装置にかかるコストを最適化することができる。
【０１３８】
また、ストレージクラスが「Archive Storage」であるLUを構成するディスク装置は、ドライブを停止させてしまい、低消費電力を実現するとともに、ディスク寿命を延ばすようにすることも可能である。
【０１３９】
また、さらに低コストな記憶装置を、本実施形態の記憶装置STR1に接続することもできるため、複数の記憶装置間により一層深い記憶階層を設定し、階層記憶制御を実行することでさらにコストを最適化することができる。
【実施例３】
【０１４０】
［実施形態３］
(1)システム構成の一例（図１４）
次に第３の実施形態におけるシステム構成の一例を図１４を用いて説明する。本実施形態においては、第２実施形態と同様、記憶装置STR0(1)に別の記憶装置STR2(1b)がネットワークを介して接続されたシステムにおいて、記憶装置間での階層記憶制御が実行される。第２の実施形態との相違は、記憶装置間を接続するネットワークが、第２の実施形態ではLAN20であり、記憶装置間ではファイルI/Oインタフェースが用いられるのに対し、第３の実施形態では記憶装置間を接続するネットワークが記憶装置間の接続専用のSAN35であり、記憶装置間ではブロックI/Oインタフェースが用いられることである。
【０１４１】
図１４において、記憶装置STR2(1b)は、第２の実施形態の記憶装置STR1(1a)と同様の小規模な構成の記憶装置であるが、第二の実施形態における記憶装置STR1 (1a)のNASコントローラNCTL0に代えて、SANコントローラFCTLxを有している。FCTLxはSAN35に接続できるよう、FCコントローラ11012bを備えており、また、STR1のようなファイルアクセス制御用CPU11001aやその周辺回路が存在せず、ファイル制御は行わない。それ以外は、本実施形態における記憶装置STR2(1b)は、第二の実施形態における記憶装置STR1（1a）と同様の構成を有する。
【０１４２】
SAN35は記憶装置STR0(1)と記憶装置STR2(1b)を接続するための専用ネットワークであり、SAN35にはSANホストは接続されていない。なお、本実施形態では説明の簡単化のため、記憶装置間を接続するネットワークであるSAN35にはSANホストが接続されないものとし、また、記憶装置間を接続するネットワークの本数も１本であるとしている。しかし、SAN35にSANホストを接続させることも、また、記憶装置間を接続するネットワークの数を複数にして耐障害性を向上させることも可能である。
【０１４３】
本実施形態においては、記憶装置STR0(1)の制御下に記憶装置STR2(1b)がおかれ、NASホスト0からのファイルアクセスは記憶装置STR0(1)を経由して記憶装置STR2(1b)に到達する。このような構成を以下「異種記憶装置接続」と呼ぶことにする。
【０１４４】
(2)他の記憶装置へのファイルの移行処理
次にSTR0に格納されているファイルをSTR2移行するための処理について、第２実施形態との相違点を中心に説明する。
【０１４５】
記憶装置STR0(1)のCHF1(1111)は、SAN35に異種記憶装置である記憶装置STR2(1b)が接続していることを認識する。CHF1(1111)はイニシエータとなり情報を採取するコマンドを発行することにより、STR2(1b)がSAN35に接続されていることを認識する。CHF1(1111)はSTR2の記憶領域をあたかも第１実施形態の自装置内部のディスクプールであるかのように扱う。CHN0(1110)はCHF1(1111)経由でこのディスクプールを使用することができる。ディスクプールの管理方法については後述する。記憶装置STR0(1)のCHN0(1100)はSTR2の構成を把握するため、自身がイニシエータとなり情報を採取するためのコマンドをCHF1(1111)を介してSTR2に発行する。そして、STR0のCHN0(1100)は、コマンドに対するSTR2からの応答をCHF1(1111)を介して受信し、応答に含まれる情報から、STR2がSATAディスクプールを所持し、15D+1P、RAID5構成で、2100GBの大容量を有する低コストなBlock TypeのLUを所持していることを認識し、このLUをリモートLUとして管理することを決定する。またSTR2が有するディスクプールは、大容量低コストなディスクプールなので、そのディスクプールのストレージクラスは「Archive Storage」とすることを、STR0のCHN0（1100）が決定する。そしてSTR0のCHN0（1100）は、STR2内のLUにLU4の番号を割り当て、このLUに関する情報、即ちStorage Class#「Archive Storage」、Storage Node#「STR2」、Disk Pool#「SATA Pool」、LU#「LU4」、LU Type「Remote Block」、RAID Conf.「RAID5 15D+P」、Usable Capacity「2100GB」を、SM13のディスクプール管理テーブル131に格納する。STR0のCHN(1100)でファイルシステムプログラムが実行された場合には、ディスクプール管理テーブル131が参照され、このLUに関する情報がディスクプール管理テーブル131からファイルアクセス制御用メモリのストレージクラス管理テーブル1100451に複写される。
【０１４６】
第２の実施形態と同様に、STR0のCHN0（1100）のマイグレーション管理部110043Aがファイルabc.docをNearLineストレージクラスからArchiveストレージクラスに移行することを決定したとして、以下にこの場合に実行されるファイルの移行処理を説明する。
【０１４７】
STR0のマイグレーション管理部110043Aは、ストレージクラス管理テーブル1100439を参照し、「Archive Storage」クラスに該当するLU4を選択し、ファイルabc.docをLU4に移動することを決定する。LU4は、ストレージノードが「STR2（すなわち他の記憶装置1b）、DiskPool#が「SATAディスクプール」、LU Typeが「Remote Block」という属性を備える。
【０１４８】
第２実施形態とは異なり、LU4のLU Typteは「Block」型であるので、LU4にはファイルシステムが存在していない。そこで、CHN0(1100)に格納されているファイルシステムプログラムはこのLU4にローカルファイルシステムＬＦＳ４を構築する。LU4が設定されているディスクプールはSTR0から見ると他の記憶装置STR2に存在するので、「リモート」のディスクプールであり、LU4もリモートLUであるが、LU4内に設定されるファイルシステムLFS4の制御はCHN0(1100)が行うので、ファイルシステムLFS4はローカルファイルシステムになる。
【０１４９】
LFS4はローカルファイルシステムとして管理されることになり、またLFS4が構築されるLU4はブロックタイプの異種記憶装置内に存在するLUであるので、本実施形態においては、ファイル格納管理テーブルの取り扱いが第１および第２の実施形態とは異なる。すなわち、STR0のCHN0(1100)のファイル格納管理部1100433は、リンク先ノード名には「STR2」、リンク先ＦＳ名には「ＬＦＳ４」、リンク先ファイル名にはSTR2-FILE00001を割り当て、これを、abc.docについてのファイル格納管理テーブルに設定する。尚、abc.docは既にFILE00001のファイル名でLU2に移行されているので、CHN0(1100)は、割り当てられたリンク先ノード名、リンク先FS名、リンク先ファイル名を、LFS2のファイルFILE00001についてのファイル格納管理テーブルに設定しても良い。また、LU4が実際に存在するSTR2は、上述の通りファイルアクセス制御を実行しないので、STR2内にはSTR2-FILE00001に関するファイル格納管理テーブルが作成されない。
【０１５０】
CHN0(1100)のファイルシステムプログラム11004が実行されることによって行われる処理は、ファイルabc.docのリンク先ノード(即ちファイルabc.docの実データが格納されている記憶装置)がSTR2であると意識されて処理が実行されること以外は、ファイルのオープン処理、ライト処理、マイグレーション処理ともに、第１実施形態で述べたローカルファイルシステムに対する処理と同様である。
【０１５１】
しかし、ファイルを自記憶装置STR0内に存在するLUへ移動する第一の実施形態とは異なり、本実施形態では他の記憶装置STR2内に存在するLUへファイルのデータを移動するため、ディスクへの入出力処理は第一の実施形態とは異なる。第１実施形態ではディスクへの入出力処理をSTR0のDKA12xが制御したが、本実施形態の構成では、STR0のCHF1(1111)が制御する。そこで、CHN0のディスクアレイ制御用メモリ11009には、CHF通信ドライバプログラム110096が格納されている。ディスクアレイ制御用CPU11008がCHF通信ドライバプログラムを実行することにより、CHF通信ドライバ部が実現される。CHF通信ドライバ部は、SM13にディスク入出力コマンド（以下I/Oコマンドとする）を送信する。このI/Oコマンドには、データの格納位置を示すアドレス情報が含まれる。CHF1(1111)はこのI/OコマンドをSM13経由で受信し、受信したI/Oコマンドに基づいてSAN35経由で記憶装置1b(STR2)にI/Oコマンドを発行する。CHF1(1111)が発行するI/Oコマンドには、記憶装置1b(STR2)内でのデータの格納位置を示すアドレス情報が含まれている。記憶装置1b(STR2)は、通常のホストからディスクI/Oコマンドを受信した場合と同様の手順で、CHF1(1111)から受信したI/Oコマンドを処理する。すなわちSTR2から見るとSTR0のCHF1がホストとして認識されることになる。
【０１５２】
本実施形態によれば、ブロックI/Oインタフェースを備える異種記憶装置STR2が有するディスクプールを、記憶装置STR0のディスクプールの一つとして扱い、STR2が有するディスクプールに存在するLUに、STR0が管理するファイルシステムを構築することができる。更に、STR0内のLUに格納されているファイルをSTR2内のLUに移行することができ、コスト効果に優れ、柔軟な記憶階層を構築することができる。
【０１５３】
［実施形態４］
(1)システム構成の一例（図１５）
次に第４の実施形態を説明する。本実施形態は、記憶装置の構成が前述の実施形態と異なる。
【０１５４】
図１５は、本実施形態におけるシステム構成の一例を示す図である。記憶装置STR3(1c)は、DKC70とディスクプールを備えている。DKC70において、SW71はスイッチ、NNODE（72x）はLANに接続するためのファイルI/O制御機構を備えたNAS ノード、FNODE(73x)はSANに接続するためのブロックI/O制御機構を備えたFC ノード、INODE(74x)はIPネットワークに接続するためのIPネットワーク制御機構を備えたIP ノード、DNODE(75x)はディスクプールを接続するためのディスク制御機構を備えたDisk Control ノードである。スイッチSW71には、一又は複数のNNODE72x、一又は複数のFNODE73x、一又は複数のINODE74x、一又は複数のDNODE75xが接続されている。なお、スイッチにiSCSIを制御するノードを接続させ、IP SANを構築することもできる。iSCSIを制御するノードはFNODEと同様の機能を有し、同様の構成を有する。
【０１５５】
DNODE0及びDNODE1は、FCディスクプール170とSATAディスクプール171の２種類のディスクプール０及びディスクプール１を接続し、制御している。
【０１５６】
INODE0及びINODE1は、記憶装置STR3の外部に存在する、第２の実施形態で説明したファイルI/Oインタフェースを備えた記憶装置である、NAS型の異種記憶装置STR1(1a)と接続する。FNODE2及びFNODE3は、記憶装置STR3の外部に存在する、第３実施形態で説明したブロックI/Oインタフェースを備えた記憶装置である、SAN型の異種記憶装置STR2(1b)と接続する。
【０１５７】
(2)NNODEの構成の一例（図16）
図１６はNNODEの構成の一例を示す図である。NNODE720は図４に示すCHN1100のCPU間通信回路11007以下の構成要素を取り外し、SWノードコントローラ7404に代えたものと等価である。その他の構成要素については、CHNと構成、機能ともに同様である。
【０１５８】
SWノードコントローラ7204はSW71と接続するためのコントローラ回路であり、コマンドやデータ、制御情報を、記憶装置STR3(1c)内部で送受信される内部フレームのフォーマットに形成し、DNODE等の他のノードにディスクI/Oとして送信する。
【０１５９】
(3)FNODEの構成の一例(図17)
図１７はFNODEの構成の一例を示す図である。FNODE730は図１４のFCTL1100bのFCコントローラ11012bにSWノードコントローラ7302を接続した構成を有し、SWノードコントローラを介してSW71に接続できる。FCコントローラ7301はターゲットデバイスとして動作し、SANとの間でコマンドやデータや制御情報のフレームを授受する。SWノードコントローラ7302はFCコントローラが送受信するフレームを、記憶装置STR3（1c）の内部フレームの構成に変換し、DNODE等の他ノードとの間で送受信する。
【０１６０】
また、FNODE73xはイニシエータデバイスとしても動作し、NNODEや他のFNODEから受信したディスクI/Oコマンドに基づいて、記憶装置STR3の外部に接続されている他の記憶装置にI/Oコマンドを送信することもできる。例えば、図１５のFNODE2及びFNODE3は、記憶装置STR3のNNODEや他のFNODEから受信したコマンドに基づいて、記憶装置STR3の外部に接続された異種記憶装置STR2(1b)にI/Oコマンドを送信することができる。この場合、STR2から見るとFNODE2及びFNODE3はホスト計算機として動作しているよう見える。
【０１６１】
図17では簡単化のため、FCコントローラ7301とSWノードコントローラ7302のみ記載しているが、ターゲット処理やイニシエータ処理、もしくは内部フレーム生成処理のために、CPUをFNODEに搭載する実装とすることも可能である。
【０１６２】
尚、FCコントローラ7301に代えてiSCSIコントローラを設置すれば、iSCSIを制御するノードを構成することができ、このノードをSW71に接続すれば、IP SANを構成することもできる。
【０１６３】
(4)INODEの構成の一例（図18）
図１８はINODEの構成の一例を示す図である。INODE740は図13に示すNCTL0(1100a)が有するLANコントローラ7401にSWノードコントローラ7402を接続した行製を有し、SWノードコントローラを介してSW71に接続することができる。INODEは、STR3に外部NAS型の記憶装置STR1aを接続するために、記憶装置STR3（1c）に備えられている。
【０１６４】
(5)DNODEの構成の一例（図19）
図１９はDNODEの構成の一例を示す図である。DNODE750は図１４に示すFCTL1100bのFCコントローラ11012bを取り外し、SWノードコントローラ7501に代えたものである。DNODE750は、ディスクI/OコマンドをSW71経由でNNODE又はFNODEから受信すると動作し、この結果、図１５の点線で囲った1d部分が、あたかも独立した図１４の記憶装置STR2のごとく動作する。本実施形態では、DNODE0(750)とDNODE1(751)とが二重化コントローラとしてペアを組み動作する。DNODEが二重化されている点も、FCTLが二重化されている図１４の記憶装置STR2の構成と同様である。
【０１６５】
(6)ファイルの移行処理
本実施形態は、第１の実施形態、第２の実施形態、第３の実施形態と記憶装置の構成が異なるだけで、階層記憶制御を実行するための処理手順は、第１の実施形態、第２の実施形態、第３の実施形態と同様であるため、記憶装置の構成の相違により生ずる動作上の相違点のみ説明する。
【０１６６】
本実施形態においては、第１の実施形態と同様の手順で、記憶装置STR3の内部で階層記憶制御を実行することができる。NNODE72xのファイルアクセス制御用メモリに格納されているファイルシステムプログラム110043は、使用可能なLUを管理するためのストレージクラス管理テーブル1100439を備え、DNODE75xが管理するディスクプールおよびLUを、ストレージクラス管理テーブルを参照することで認識することができる。ただし、第１実施形態とは異なり共通情報を格納するSM13が存在しないので、あらかじめNNODE72xが全DNODE75xに問い合わせ、使用可能なLUを特定し、ストレージクラス管理テーブルに登録しておく必要がある。もちろん本実施形態においても、SMを接続するためのSMノードを、SWに接続できるようにしておき、第１の実施形態と同様にSMに格納されている情報からストレージクラス管理テーブルを構成することとしてもよい。
【０１６７】
NNODE72xが使用可能なディスクプールおよびLUを特定し、ストレージクラス管理テーブル1100439を作成し、ストレージクラスを定義すれば、後は第１実施形態と同様の処理にて、記憶装置STR3(1c)内での階層記憶制御、即ちディスクプール0及びディスクプール1内に設定されたLUを用いた階層記憶制御を実行することができる。
【０１６８】
なお、ディスクI/Oコマンドの発行に関しては、NNODEのファイルアクセス制御用メモリ7203に格納されているSWノードドライバプログラムが、ファイルアクセス制御用CPU7202によって実行されることにより、SWノード経由でアクセス対象LUを管理するDNODE750に対しディスクI/Oコマンドが発行される。
【０１６９】
以上のような構成、処理により、第１の実施形態の様な、記憶装置STR3の内部にファイルベースの記憶階層を構築したシステムを実現することができる。
【０１７０】
また、第２の実施形態と同様に、記憶装置STR3の外部にファイルI/Oインタフェースを備えたNAS型の異種記憶装置STR1(1a)を接続し、記憶階層を構成することができる。NNODE72xのファイルアクセス制御用メモリ7203に格納されているファイルシステムプログラム110043は、ファイルアクセス制御用CPUによって実行されることにより、INODE74xに接続しているNAS型の異種記憶装置が存在するか否かをINODE74xに問い合わせ、異種記憶装置が存在する場合には、この異種記憶装置内に存在するリモートLU、およびリモートファイルシステムを識別するための情報を異種記憶装置から取得する。そして、ファイルアクセス制御用CPUの制御によって、このリモートLUおよびリモートファイルシステムにストレージクラスを定義し、ストレージクラス管理テーブル1100439にこのLUに関する情報を登録して管理する。後は第２の実施形態における処理手順と同様である。
【０１７１】
なお、ディスクI/Oコマンドの発行に関しては、NNODEのファイルアクセス制御用メモリ7203に格納されているSWノードドライバプログラムが、ファイルアクセス制御用CPU7202によって実行されることにより、NNODEからSWノード経由で、アクセス対象LUを備えた記憶装置STR1(1a)を接続するINODE740に対し、ディスクI/Oコマンドを発行する。INODE740は受信したI/Oコマンドに基づいて、ファイルアクセスを行うためのディスクI/Oコマンドを記憶装置STR1(1a)に発行するとともに、ファイルの実データや制御情報をSTR1（1a）との間で送受信する。
【０１７２】
なお、INODE74xはファイルの制御情報には一切関与せず、単なるIPネットワーク用のゲートウェイとして動作する。この場合、他のNASホスト等のデバイスからの干渉を受けることがない階層記憶構成を実現できる。もちろん、第２実施形態と同様にNNODE720が接続するLAN20に異種記憶装置STR1(1a)を接続しても差し支えない。
【０１７３】
以上のような構成、処理により第２の実施形態の様な、外部の異種記憶装置が有するストレージプールを用いたファイルベースの記憶階層を構築することができる。
【０１７４】
また、第３実施形態と同様に、記憶装置STR3の外部にブロックI/Oインタフェースを備えた記憶装置である、SAN型の異種記憶装置STR2(1b)を接続し、記憶階層を構成することもできる。NNODE72xのファイルアクセス制御用メモリに格納されているファイルシステムプログラム110043が、ファイルアクセス制御用CPUによって実行されると、NNODEはFNODE73xに接続しているSAN型の異種記憶装置が存在するか否かをFNODE73xに問い合わせる。そして異種記憶装置が存在する場合には、NNODEは問合せに対するFNODEからの応答内容に基づいて、この異種記憶装置が有するリモートLUを認識し、このリモートLUにローカルファイルシステムを構築する。そしてNNODEは、このリモートLUとローカルファイルシステムにストレージクラスを定義し、ストレージクラス管理テーブル1100439にこのLUに関する情報を登録して管理する。後は第３の実施形態と同様の処理が実行される。
【０１７５】
なお、ディスクI/Oコマンドの発行に関しては、ファイルアクセス制御用CPU7202がSWノードドライバプログラムを実行することにより、NNODEからSWノード経由で、アクセス対象LUを備えた記憶装置STR2(1b)を接続するFNODE732に対し、ディスクI/Oコマンドが発行される。FNODE732はディスクI/Oコマンドを記憶装置STR2に発行するとともに、データおよび制御情報を記憶装置STR2との間で送受信する。以上のような構成、処理手順により、第3実施形態と同様、外部の記憶装置STR2に構築され、記憶装置STR3によって管理されるファイルシステムを利用した、ファイルベースの記憶階層を構築することができる。
【０１７６】
本実施形態によれば、記憶装置STR3があたかも階層記憶システムを構築するための中央制御コントローラであるかのように動作し、その記憶装置STR3の内部と外部に様々な種類の記憶装置を接続できるので、きわめて柔軟かつスケーラブルな大規模な階層記憶システムを構築することができる。また、記憶装置STR3のSWの一ノードとして、記憶装置の内部にも外部にもディスクや他の記憶装置を接続できるので、高速なデータ転送を行うことができる。
【０１７７】
(7)さらなる応用
以上、第１から第４の実施形態においては、ファイルのデータライフサイクルを基準としてファイルの階層的な移行処理を実行するファイルの移動方法及び記憶装置を説明してきたが、それ以外の基準でファイルを移動させることや、複数の基準を併用することももちろん可能である。データライフサイクル以外の基準としては、ファイルのアクセス特性やLUの使用容量などが考えられる。そして、ファイルのアクセス特性やLUの使用容量に基づくマイグレーションプランを設け、ファイルの移動を制御することができる。
【０１７８】
ファイルのアクセス特性に基づくマイグレーションプランの例としては、ファイルのアクセス頻度が一定水準を超えたら、一階層上位のストレージクラスにファイルを再移動するプランや、シーケンシャルアクセスに特化したストレージクラスを設け、あるファイルに対するシーケンシャルアクセス頻度が一定水準を超えたら、そのストレージクラスにファイル移動するプラン等が考えられる。
【０１７９】
LUの使用容量に基づくマイグレーションプランの例としては、LUの使用容量が一定水準を超えたら、現行ライフサイクルが変化していないファイルであっても、そのLUに格納されているアクセス頻度の低いファイルや、作成日からの経過時間が長いファイルを一階層下のストレージクラスに移行するプランが考えられる。
【０１８０】
上述の実施形態におけるファイル特性管理テーブル1100438にはファイル毎の動的特性としてアクセス情報を管理している。またストレージクラス管理テーブルにはLU毎の総容量と使用容量を管理している。これらの情報を活用することで、上述のマイグレーションプランを容易に実現することができる。
【図面の簡単な説明】
【０１８１】
【図１】本発明が適用される計算機システムの構成例を示す図である。
【図２】記憶装置の外観の一例を示す図である。
【図３】アダプタボードの外観の一例を示す図である。
【図４】ＮＡＳチャネルアダプタの構成の一例を示す図である。
【図５】ファイルシステム制御用メモリに格納されているプログラムの一例を示す図である。
【図６】ディスクアレイ制御用メモリに格納されているプログラムの一例を示す図である。
【図７】ディスクプールと、LUと、ファイルシステムの、対応関係の一例を示す図である。
【図８】ストレージクラス管理テーブルの一例を示す図である。
【図９】ファイル名管理テーブルの一例を示す図である。
【図１０】ファイル格納管理テーブルとバッファ管理テーブルの一例を示す図である。
【図１１】ファイル特性情報管理テーブルの一例を示す図である。
【図１２】ファイル格納管理テーブルの一例を示す図である。
【図１３】本発明が適用されるシステムの第二の構成例を示す図である。
【図１４】本発明が適用されるシステムの第三の構成例を示す図である。
【図１５】本発明が適用されるシステムの第四の構成例を示す図である。
【図１６】NASノードの構成例を示す図である。
【図１７】ファイバチャネルノードの構成例を示す図である。
【図１８】ＩＰノードの構成例を示す図である。
【図１９】ディスクアレイノードの構成例を示す図である。
【符号の説明】
【０１８２】
1…記憶装置
1100…ＮＡＳチャネルアダプタ
1110…ファイバチャネルアダプタ
120…ディスク制御アダプタ
13…共有メモリ
14…キャッシュメモリ
15…共有メモリコントローラ
16…キャッシュメモリコントローラ
170…ディスクプール、
400…ＮＡＳホスト
500…ＳＡＮホスト
20…LAN
21…LAN
30…SAN
35…SAN
【図１】
2006216070.tif 000003
【図２】
2006216070.tif 000004
【図３】
2006216070.tif 000005
【図４】
2006216070.tif 000006
【図５】
2006216070.tif 000007
【図６】
2006216070.tif 000008
【図７】
2006216070.tif 000009
【図８】
2006216070.tif 000010
【図９】
2006216070.tif 000011
【図１０】
2006216070.tif 000012
【図１１】
2006216070.tif 000013
【図１２】
2006216070.tif 000014
【図１３】
2006216070.tif 000015
【図１４】
2006216070.tif 000016
【図１５】
2006216070.tif 000017
【図１６】
2006216070.tif 000018
【図１７】
2006216070.tif 000019
【図１８】
2006216070.tif 000020
【図１９】
2006216070.tif 000021