(57)【要約】【課題】  ＷＯＲＭ機能を実現しつつ、リソースの削減か可能なストレージシステムを提供する。【解決手段】  本発明は、コントローラ１１０は、計算機３００から書き込みの要求があった場合に、書き込み対象の論理装置に関する情報を記憶部１４０から取得し、当該論理装置が書き込み不可能に設定されている場合は、その旨を計算機３００に送信する。インターフェース２００は、ディスク装置１３０に保存されているメタ情報を参照して、所定の期間アクセスされていないファイルのリストを取得し、取得したファイルのリストに含まれるファイルを格納可能な論理装置を確保し、コントローラ１１０に、ファイルのリストに含まれるファイルを当該論理装置に保存させると共に、当該ファイルを保存した論理装置に関し、記憶部１４０に記憶されている情報を書き込み不可能に設定する。【選択図】  図１
2005327092.tif 000002
【特許請求の範囲】
【請求項１】
計算機からアクセスされるストレージシステムであって、
複数の論理装置を備えたディスク装置と、
前記ディスク装置に関する情報を記憶する記憶部と、
計算機に対してファイルシステムを提供するインターフェースを備え、計算機からのアクセスを受け付ける第一のコントローラと、
計算機からのアクセスを受け付ける第二のコントローラと、を備え；
前記第一及び第二のコントローラは、計算機から書き込みの要求があった場合に、書き込み対象の論理装置に関する情報を前記記憶部から参照し、当該論理装置が書き込み不可能に設定されている場合は、その旨を前記計算機に送信し；
前記記憶部は、前記論理装置と当該論理装置に割り当てられた論理ユニットとの対応を示す論理ユニットテーブルを記憶しており；
前記計算機は、前記ファイルシステムを介して前記論理装置に割り当てられた論理ユニットに対してアクセスし；
前記論理ユニットには、前記ファイルシステムによって、前記ディスク装置に保存されているファイルのメタ情報を記憶する第一の属性、ファイルデータを記憶する第二の属性、及び、ファイルデータを記憶し、かつ、ファイルシステムにマウント及びアンマウント可能な第三の属性の、いずれかが設定され；
前記インターフェースは、
前記ファイルシステムにどの論理ユニットがマウントされているかを示すと共に論理ユニットへの書き込み可否を示すマウントテーブルと、
前記論理装置と当該論理装置に割り当てられた論理ユニットとの対応を示すマッピングテーブルと、を記憶しており；
前記第一の属性が設定されている前記論理ユニットに保存されているメタ情報を参照して、所定の期間アクセスされていないファイルのリストを取得し、
前記ファイルのリストに含まれる全ファイルを含むＵＤＦイメージを作成し、
当該ＵＤＦイメージを格納可能な論理装置を確保し、
当該論理装置に前記論理ユニットが割り当てられているかを判定し、
当該論理装置に前記論理ユニットが割り当てられていない場合は、前記記憶部に記憶されている情報から、前記第三の属性が設定されている論理ユニットのうち、前記論理装置が割り当てられていない論理ユニットを検索し、
前記論理装置が割り当てられていない論理ユニットが検索されなかった場合は、当該第三の属性が設定されている論理ユニットのうち、もっとも長くアクセスされていない論理ユニットの情報を取得し、
前記取得した情報に係る論理ユニットをファイルシステムからアンマウントし、
前記アンマウントされた論理ユニットに対して、前記論理装置のいずれかを割当てる指示を前記第一のコントローラに対して行い、
前記割り当ての結果を前記記憶部に記憶されている前記マップテーブルに反映させ、
前記作成したＵＤＦイメージを、前記論理ユニットを指示することで当該論理ユニットが割り当てられた論理装置に保存させ、
前記記憶部に記憶されている、当該ＵＤＦイメージを保存した論理装置に関する情報を書き込み不可能に設定することを特徴とするストレージシステム。
【請求項２】
計算機からアクセスされるストレージシステムであって、
複数の論理装置を備えたディスク装置と、
前記ディスク装置に関する情報を記憶する記憶部と、
計算機に対してファイルシステムを提供するインターフェースを備え、計算機からのアクセスを受け付けるコントローラと、を備え；
前記コントローラは、
前記計算機から書き込みの要求があった場合に、書き込み対象の論理装置に関する情報を前記記憶部から取得し、
当該論理装置が書き込み不可能に設定されている場合は、その旨を前記計算機に送信し；
前記インターフェースは、
前記ディスク装置に保存されているメタ情報を参照して、所定の期間アクセスされていないファイルのリストを取得し、
前記取得したファイルのリストに含まれるファイルを格納可能な論理装置を確保し、
前記コントローラに、前記ファイルのリストに含まれるファイルを当該論理装置に保存させると共に、当該ファイルを保存した論理装置に関し、前記記憶部に記憶されている情報を書き込み不可能に設定することを特徴とするストレージシステム。
【請求項３】
前記記憶部は、前記論理装置と当該論理装置に割り当てられた論理ユニットとの対応を記憶しており、
前記計算機は、前記ファイルシステムを介して前記論理装置に割り当てられた論理ユニットに対してアクセスし、
前記論理ユニットには、前記ファイルシステムによって、前記ディスク装置に保存されているファイルのメタ情報を記憶する第一の属性、ファイルデータを記憶する第二の属性、及び、ファイルデータを記憶し、かつ、ファイルシステムにマウント及びアンマウント可能な第三の属性のいずれかが設定され、
前記コントローラは、前記論理装置と前記論理ユニットとの割当てを変更可能であることを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記インターフェースは、
前記計算機からのファイルの読み出しオープン要求を受け付けると、
前記第一の属性が設定された論理ユニットに保存されているメタ情報から当該ファイルが保存されている論理装置に関する情報を取得し、
当該論理装置に前記論理ユニットが対応付けられているかを判定し、
当該論理装置に前記論理ユニットが対応付けられている場合は、当該論理ユニットがファイルシステムにマウントされているマウントポイントを取得し
取得したマウントポイントを用いて、前記要求されたファイルの読み出しオープンを行うことを特徴とする請求項２に記載のストレージシステム。
【請求項５】
前記インターフェースは、
前記計算機からのファイルの書き込みオープン要求を受け付けると、
前記第一の属性が設定された論理ユニットに保存されているメタ情報から当該ファイルが保存されている論理装置に関する情報を取得し、
前記記憶部に保存されている情報から、前記取得された情報で示される論理装置が書き込み不可能に設定されているか否かを判定し、
当該論理装置が書き込み不可能に設定されている場合は、前記計算機にその旨を送信し、
当該論理装置が書き込み可能に設定されている場合は、当該論理装置に前記論理ユニットが対応付けられているかを判定し、
当該論理装置に前記論理ユニットが対応付けられていない場合は、前記計算機にその旨を送信し、
当該論理装置に前記論理ユニットが対応付けられている場合は、当該論理ユニットがマウントされているマウントポイントを取得し
取得したマウントポイントを用いて、前記要求されたファイルの書き込みオープンを行うことを特徴とする請求項２に記載のストレージシステム。
【請求項６】
計算機からアクセスされるストレージシステムであって、
ディスク装置と、
前記ディスク装置に関する情報を記憶する記憶部と、
前記計算機に対してファイルシステムを提供するインターフェースを備え、ファイルのアクセスを受け付けるコントローラと、を備え、
前記ディスク装置は、複数の論理装置を含み、
前記コントローラは、前記計算機から前記論理装置に書き込みの要求があった場合に、当該論理装置に関する情報を前記記憶部から参照し、当該論理装置が書き込み不可能に設定されている場合は、その旨を前記計算機に送信し、
前記インターフェースは、前記論理装置のうち少なくとも一部を、前記ファイルシステムに対してマウント及びアンマウントすることを特徴とするストレージシステム。
【請求項７】
前記記憶部は、前記論理装置と当該論理装置に割当てられた論理ユニットとの対応を記憶しており、
前記ファイルシステムを介した前記論理装置へのアクセスは、当該論理装置に割り当てられた論理ユニットに対して行い、
前記論理ユニットには、前記ファイルシステムによって、前記ディスク装置に保存されているファイルのメタ情報を記憶する第一の属性、ファイルデータを記憶する第二の属性、及び、ファイルデータを記憶し、かつ、ファイルシステムにマウント及びアンマウント可能な第三の属性のいずれかが設定され、
前記コントローラは、前記論理装置と前記論理ユニットとの割り当てを変更可能であることを特徴とする請求項６に記載のストレージシステム。
【請求項８】
前記インターフェースは、
前記記憶部に記憶されている情報から、前記第三の属性が設定された論理ユニットのうち、前記論理装置が割り当てられていない論理ユニットを検索し、
前記論理装置が割り当てられていない論理ユニットが検索されなかった場合は、当該第三の属性が設定された論理ユニットのうち、所定の期間アクセスされていない論理ユニットの情報を取得し、
前記取得された論理ユニットをファイルシステムからアンマウントし、
前記アンマウントされた論理ユニットに対して、前記論理装置のいずれかを割り当てる指示を前記第一のコントローラに対して行い、
前記割り当ての結果を、前記記憶装置に記憶されている前記論理装置と前記論理ユニットとの対応に反映させることを特徴とする請求項７に記載のストレージシステム。
【請求項９】
計算機からアクセスされるストレージシステムであって、
ディスク装置と、
前記ディスク装置に関する情報を記憶する記憶部と、
前記計算機に対してファイルシステムを提供するインターフェースを備え、ファイルのアクセスを受け付けるコントローラと、
を備え；
前記ディスク装置は、複数の論理装置を含み；
前記コントローラは、前記計算機から前記論理装置に書き込みの要求があった場合に、当該論理装置に関する情報を前記記憶部から参照し、当該論理装置が書き込み不可能に設定されている場合は、その旨を前記計算機に送信し；
前記記憶部は、前記論理装置と当該論理装置に割り当てられた論理ユニットとの対応を記憶しており；
前記計算機は、前記ファイルシステムを介して前記論理装置に割り当てられた論理ユニットに対してアクセスし、
前記論理ユニットは、前記ファイルシステムによって、前記ディスク装置に保存されているファイルのメタ情報を記憶する第一の属性、ファイルデータを記憶する第二の属性、及び、ファイルデータを記憶し、かつ、ファイルシステムにマウント及びアンマウント可能な第三の属性のいずれかが設定され；
前記インターフェースは、
前記計算機からの要求に基づいて、前記ディスク装置に保存されているメタ情報を参照して、当該要求に含まれるファイルが格納されている前記論理装置の情報を取得し、
当該ファイルを格納可能な論理装置があるか否かを判定し、
当該ファイルを格納可能な論理装置がある場合は、当該論理装置に前記論理ユニットを割り当て、割り当てた論理ユニットのデータを取得し、
前記ファイルが格納されている論理装置から当該データを取得し、前記取得したデータと共に、前記論理ユニットを割り当てた前記論理装置に保存し；
当該ファイルを格納可能な論理装置がない場合は、前記コントローラに当該ファイルを格納可能な論理装置を確保するための要求を送信し、
確保された前記論理装置に前記論理ユニットを割り当て、
前記ファイルが格納されている論理装置から当該データを取得し、前記論理ユニットを割り当てた前記論理装置に保存し、
前記記憶部に記憶されている、当該ファイルを保存した論理装置に関する情報を書き込み不可能に設定することを特徴とするストレージシステム。
【請求項１０】
計算機に対してファイルシステムを提供するインターフェースに接続され、前記計算機からアクセスされるストレージシステムであって、
複数の論理装置を備えたディスク装置と、
前記ディスク装置に関する情報を記憶する記憶部と、
計算機からのアクセスを受け付けるコントローラと、
を備え；
前記インターフェースによって、
前記ディスク装置に保存されているメタ情報を参照して、所定の期間アクセスされていないファイルのリストが取得され、
前記取得されたファイルのリストに含まれるファイルを格納可能な論理装置が確保され、
前記コントローラは、前記ファイルのリストに含まれるファイルを当該論理装置に保存させられると共に、当該ファイルを保存した論理装置に関し、前記記憶部に記憶されている情報を書き込み不可能に設定され；
前記コントローラは、
前記計算機から書き込みの要求があった場合に、書き込み対象の論理装置に関する情報を前記記憶部から取得し、
当該論理装置が書き込み不可能に設定されている場合は、その旨を前記計算機に送信することを特徴とするストレージシステム。
【請求項１１】
前記コントローラは第一及び第二のコントローラを含み、
前記記憶部は、前記論理装置と当該論理装置に割り当てられた論理ユニットとの対応を示す論理ユニットテーブルを記憶しており；
前記計算機は、前記ファイルシステムを介して前記論理装置に割り当てられた論理ユニットに対してアクセスし；
前記論理ユニットには、前記ファイルシステムによって、前記ディスク装置に保存されているファイルのメタ情報を記憶する第一の属性、ファイルデータを記憶する第二の属性、及び、ファイルデータを記憶し、かつ、ファイルシステムにマウント及びアンマウント可能な第三の属性の、いずれかが設定され；
前記インターフェースは、
前記ファイルシステムにどの論理ユニットがマウントされているかを示すと共に論理ユニットへの書き込み可否を示すマウントテーブルと、
前記論理装置と当該論理装置に割り当てられた論理ユニットとの対応を示すマッピングテーブルと、を記憶しており；
前記インターフェースによって、
前記第一の属性が設定されている前記論理ユニットに保存されているメタ情報を参照して、所定の期間アクセスされていないファイルのリストが取得され、
前記ファイルのリストに含まれる全ファイルを含むＵＤＦイメージが作成され、
当該ＵＤＦイメージを格納可能な論理装置が確保され、
当該論理装置に前記論理ユニットが割り当てられているかが判定され、
当該論理装置に前記論理ユニットが割り当てられていない場合は、前記記憶部に記憶されている情報から、前記第三の属性が設定されている論理ユニットのうち、前記論理装置が割り当てられていない論理ユニットが検索され、
前記論理装置が割り当てられていない論理ユニットが検索されなかった場合は、当該第三の属性が設定されている論理ユニットのうち、もっとも長くアクセスされていない論理ユニットの情報が取得され、
前記取得された情報に係る論理ユニットをファイルシステムからアンマウントされ、
前記アンマウントされた論理ユニットに対して、前記論理装置のいずれかを割当てる指示が前記第一のコントローラに対して行われ、
前記割り当ての結果を前記記憶部に記憶されている前記マップテーブルに反映させられ、
前記作成されたＵＤＦイメージが、前記論理ユニットを指示することで当該論理ユニットが割り当てられた論理装置に保存させられ、
前記記憶部に記憶されている、当該ＵＤＦイメージを保存した論理装置に関する情報が書き込み不可能に設定されることを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機が使用するファイルを格納するストレージシステムに関し、特にＷＯＲＭ機能を実現しつつ、リソースの削減が可能なストレージシステムに関する。
【背景技術】
【０００２】
電子データをストレージ等の記憶装置に保持していく上で、電子データの保存期間が長くなり、データの量が増えると、ストレージに要求される容量は増え、コストが高くなる問題がある。そこで、重要度が高いデータは、回線帯域が大きく高速なストレージに記録し、重要度が低いデータは、比較的低速なストレージに記録する。このような回線帯域が大きく高速なストレージはコストが高く、比較的低速なストレージはコストが低い。また、データの保存日（アーカイブ日時）に基づいて、新しいデータ（アーカイブされてから時間がそれほど経過していないデータ）は高速なストレージに記録し、古いデータ（アーカイブされてから所定の時間が経過したデータ）は低速なストレージに記録する、データライフサイクルマネジメント（ＤＬＣＭ：Data LifeCycle Management）と呼ばれる管理手法がある。
【０００３】
このデータライフサイクルマネジメントにおけるファイルの長期保存を考慮したファイル保存の仕組みとして、保存期限内のファイルの変更・消去を管理するＷＯＲＭ（Write Once Read Many）アーカイブが知られている。記憶装置にＷＯＲＭを適用するためには、ストレージ装置又はコントローラにＷＯＲＭの機能を持たせる必要がある。
【０００４】
例えば、ＮＡＳ（Network Attached Storage）のＷＯＲＭ機能として、ＮＡＳサーバが、特定ディレクトリ下に格納されたファイルのモードビットを"Ｒｅａｄ Ｏｎｌｙ"に設定することで、その後当該ファイルに対する消去、変更等を一切不可能とする技術が提案されている（例えば、非特許文献１参照。）。
【非特許文献１】Network Appliance、"NetApp NearStore"、［online］、インターネット＜ＵＲＬ：http://www.netapp.com/products/nearstore/＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述した非特許文献１によると、ファイルシステムレベルで、ファイル毎に書き込みの可否を設定することでＷＯＲＭ機能を実現する。そのため、ＳＡＮクライアント等から当該ストレージ装置のボリュームに直接アクセスされた場合は、ＷＯＲＭ機能が働かず、データの改変が可能となってしまう。また、ストレージ装置の全てのボリュームをＮＡＳサーバが認識している状態にしておく必要があるため、ＮＡＳサーバのリソースを多く占有してしまう。
【０００６】
本発明はストレージ装置のボリュームレベルでのＷＯＲＭ機能を実現すると共に、リソースの削減が可能となるストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、コントローラは、計算機から書き込みの要求があった場合に、書き込み対象の論理装置に関する情報を前記記憶部から取得し、当該論理装置が書き込み不可能に設定されている場合は、その旨を前記計算機に送信する。インターフェースは、前記ディスク装置に保存されているメタ情報を参照して、所定の期間アクセスされていないファイルのリストを取得し、前記取得したファイルのリストに含まれるファイルを格納可能な論理装置を確保し、前記コントローラに、前記ファイルのリストに含まれるファイルを当該論理装置に保存させると共に、当該ファイルを保存した論理装置に関し、前記記憶部に記憶されている情報を書き込み不可能に設定する。
【発明の効果】
【０００８】
本発明によると、ストレージシステムにおいて、論理装置レベルでのＷＯＲＭ機能を実現すると共に、インターフェース（ＮＡＳヘッド）及びＲＡＩＤ装置のリソースの削減が可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明を実施の形態のストレージシステムを、図面を用いて説明する。
【００１０】
図１は、本発明の第１の実施の形態のストレージシステムの構成を示すブロック図である。
【００１１】
ＲＡＩＤ装置１００は、ＮＡＳ（Network Attached Storage）ヘッド２００及びＳＡＮクライアント３５０とＳＡＮ（Storage Area Network）によって接続されている。また、ＮＡＳヘッド２００及びＳＡＮクライアント３００は、ＬＡＮ（Local Area Network）２５０によって接続されている。
【００１２】
ＲＡＩＤ装置１００は、コントローラ１１０、共有メモリ１４０及びディスク装置１３０が内部ネットワーク１２０を介して接続されている。
【００１３】
コントローラ１１０は、ＮＡＳヘッド２００又はＳＡＮクライアント３５０からＳＡＮ１５０を介して送られるファイルデータを受信する。また、ＲＡＩＤ装置１００のファイルデータを、ＳＡＮ１５０を介してＮＡＳヘッド２００又はＳＡＮクライアント３５０に送信する。また、ＮＡＳヘッド２００又はＳＡＮクライアントからＳＡＮ１５０を介して送られる制御コマンドを受信し、当該制御コマンドに基づいた処理を行う。コントローラ１１０には、制御装置（ＣＰＵ）１１０１、メモリ１１０２が備えられている。メモリ１１０２には、ＬＤＥＶガードプログラム１１１２、ＬＤＥＶチェンジャプログラム１１２２が記憶されている。これらのプログラムは、後述するように、コントローラ１１０が受信した制御コマンドに基づいてＣＰＵによって実行され、所定の処理を行う。
【００１４】
ディスク装置１３０は、ＲＡＩＤ構成をとる複数のハードディスクを論理的に分割した論理デバイス（Logical Device：ＬＤＥＶ）から構成される。また、ディスク装置１３０は、ディスクアダプタ１３１を介して内部ネットワーク１２０に接続されている。各ＬＤＥＶには、ＲＡＩＤ装置１００内で一意な番号であるＬＤＥＶ番号（ＬＤＥＶ  ｎｕｍ）が割り当てられており、ＬＤＥＶ  Ｔａｂｌｅ１４０２に登録される。
【００１５】
また、ディスク装置１３０は、ＮＡＳヘッド２００が提供するファイルシステムによって、メタファイルシステム（Ｍｅｔａ  ＦＳ）１３０１、データファイルシステム（Ｄａｔａ  ＦＳ）１３０２及びテンポラリファイルシステム（Ｔｅｍｐ  ＦＳ）１３０３に分別される。Ｍｅｔａ  ＦＳ１３０１は、ディスク装置１３０に保存されている全てのファイルのメタ情報を保存する。Ｄａｔａ ＦＳ１３０２は、ファイルデータが保存される。Ｔｅｍｐ  ＦＳ１３０３は、Ｄａｔａ ＦＳ１３０２と同様にファイルデータを保存するが、ＮＡＳヘッドのファイルシステムにマウント及びアンマウントが可能なように設定される。
【００１６】
共有メモリ１４０は、ディスク装置１３０の構成情報等を保存する記憶装置である。共有メモリ１４０には、ＲＡＩＤ装置１００全体に対して一つ備えられるＬＤＥＶ Ｔａｂｌｅ１４０２と、コントローラ１１０毎に対応して備えられるＬＵ Ｔａｂｌｅ１４０１とが保存される。ＬＤＥＶ Ｔａｂｌｅ１４０２には、ディスク装置１３０のＬＤＥＶを管理するための情報（管理情報）が保存される。この管理情報は、ＲＡＩＤ装置１００内で一意な番号として割り当てられたＬＤＥＶ番号、ＬＤＥＶの種別、ＬＤＥＶのサイズ等である。ＬＵ Ｔａｂｌｅ１４０１には、ＬＵ（論理ユニット：Logical Unit）番号（ＬＵ  ｎｕｍ）とＬＤＥＶ番号とが対応付けられて保存される。ＬＵ番号は、ＮＡＳヘッド２００が、コントローラ１１０を介してブロックの読み出し／書き込みを行うときに用いる識別子である。
【００１７】
ＮＡＳヘッド２００は、ＮＡＳクライアント３００に対して、ＲＡＩＤ装置１００に保存されているデータを、ファイルシステムを通じて提供するインターフェースとして機能する。
【００１８】
ＮＡＳヘッド２００には、制御装置（ＣＰＵ）２００１、メモリ２００２、が備えられている。メモリ２００２には、ＷＯＲＭ化処理プログラム２０１２、ＬＵ割り当て処理プログラム２０２２、マウントＴａｂｌｅ（ＭＮＴ  Ｔａｂｌｅ）２０３２、ＭＡＰ  Ｔａｂｌｅ２０４２及びＷＯＲＭバッファ（ＷＯＲＭ  ｂｕｆ）２０５２が備えられている。
【００１９】
ＷＯＲＭ化処理プログラム２０１２及びＬＵ割り当て処理プログラム２０２２は、後述するように、ＮＡＳクライアント３００からの要求（ファイルの読み出し／書き込み要求等）があった場合にＣＰＵ２００１によって実行され、所定の処理を行う。
【００２０】
ＭＮＴ  Ｔａｂｌｅ２０３２は、ＮＡＳヘッド２００がファイルシステムとしてマウントしているＬＵ番号とマウントポイントとの対応関係を保存する。ＭＡＰ  Ｔａｂｌｅ２０４２は、ＮＡＳヘッド２００が管理している全てのＬＵ番号と、当該ＬＵ番号に割り当てられているＬＤＥＶ番号との対応関係を保存する。
【００２１】
ＷＯＲＭ  ｂｕｆ２０５２は、ＮＡＳクライアント３００からの要求によって、ファイルをＷＯＲＭとしてＬＤＥＶに格納するときに、ＵＤＦ（Universal Disk Format）形式のイメージとして作成されたデータを一時的に保存する。そのため、ＷＯＲＭ  ｂｕｆ２０５２は、常にメモリ２００２上に確保しておく必要はない。また、ＵＤＦイメージのサイズが大きい場合はＷＯＲＭ ｂｕｆ２０５２をディスク装置１３０内に確保してもよい。
【００２２】
ＲＡＩＤ装置１００では、コントローラ１１０毎にコマンドデバイスが定義されている。ＮＡＳヘッド２００又はＳＡＮクライアント３５０は、定義済みのコマンドデバイスに対してコマンドを送信することで、所定のコマンド（例えば、ＬＤＥＶの確保、ＬＵ番号とＬＤＥＶ番号との対応の変更、ＬＤＥＶのタイプ変更等）を指示することができる。
【００２３】
なお、ディスク装置１３０のうち、Ｔｅｍｐ  ＦＳ１３０３は、常にＮＡＳヘッド２００が提供するファイルシステムに対してマウントされている訳ではない。Ｍｅｔａ  ＦＳ１３０１及びＤａｔａ ＦＳ１３０２は、頻繁にアクセスされるファイルを保存している。これに対し、Ｔｅｍｐ  ＦＳ１３０３は、長期間（例えば数十年）にわたってアクセスが行われない可能性のあるＷＯＲＭファイルを保存する。全てのＬＤＥＶを常にファイルシステムにマウントしておくことは、ＮＡＳヘッド２００及びＲＡＩＤ装置１００のリソースを無駄に消費することとなるため現実的でない。
【００２４】
ＬＵのマウント／アンマウント処理は処理時間やシステムへの負荷が高いため、頻繁にアクセスされるファイルを持つＬＵは、常にマウントされていることが望ましい。一方、長期間にわたってアクセスが行われない可能性のあるＷＯＲＭファイルを保存するＴｅｍｐ  ＦＳ１３０３は、アクセスが必要な時だけそのＬＵをマウントし、アクセスが必要ないＬＵはアンマウントしておく。こうすることでＮＡＳヘッド２００及びＲＡＩＤ装置１００のリソースを有効的に活用することができる。
【００２５】
図１では、Ｔｅｍｐ  ＦＳ１３０３のうち、マウント済みのＬＵが網掛けによって示され、マウントされていない（アンマウント済みの）ＬＵは白抜きで示されている。
【００２６】
ＬＵのマウント／アンマウントは、必要に応じてダイナミックに行うことが可能である。このＬＵのマウント／アンマウントの処理は後述する。
【００２７】
図２は、ＮＡＳヘッド２００のメモリ２００２に保存されているＭＮＴ  Ｔａｂｌｅ２０３２の説明図である。
【００２８】
ＮＡＳヘッド２００は、ＮＡＳクライアント３００に対してファイルシステムを提供するインターフェースである。ＭＮＴ  Ｔａｂｌｅ２０３２は、ファイルシステム提供のために、ディレクトリ情報やディレクトリの属性（書き込み／読み出し等）を管理するために用いる。
【００２９】
ＭＮＴ  Ｔａｂｌｅ２０３２は、マウントしているデバイス名（ｄｅｖ＿ｎａｍｅ）、マウントポイント（ｍｎｔ＿ｐｏｉｎｔ）、ファイルシステムタイプ（ｆｓ＿Ｔｙｐｅ）、モード（ｍｏｄｅ）、最終アクセス時刻（Ａ＿ｔｉｍｅ）等によって構成されている。
【００３０】
ｄｅｖ＿ｎａｍｅは、"／ｄｅｖ／ｌｕ"にＬＵ番号を結合して構成する。ｆｓ＿Ｔｙｐｅはファイルシステムのタイプを格納する。ファイルシステムのタイプには、ディレクトリツリーやファイルの属性およびファイルの格納場所などの属性を格納するメタファイルシステム（ｍｅｔａ）、更新可能なファイルのファイルを格納するファイルシステム（ｄａｔａ）、更新不可能なファイルを格納したＬＵを一時的にマウントするファイルシステム（ｔｅｍｐ）が存在する。
【００３１】
モードは、そのマウントポイントの属性を示す。"ｒ"は読み出しが可能、"ｗ"は書き込みが可能、"ｒｗ"は読み出し及び書き込みが可能であることを示す。
【００３２】
最終アクセス時刻は、そのＬＵに対して最後にアクセス（例えば、読み出しや書き込み）があった時刻が記録される。
【００３３】
図３は、ＮＡＳヘッド２００のメモリ２００２に保存されているＭＡＰ  Ｔａｂｌｅ２０４２の説明図である。
【００３４】
ＭＡＰ  Ｔａｂｌｅ２０４２は、ＮＡＳヘッド２００が管理しているすべてのＬＵとＬＤＥＶとの対応関係を管理するために用いられる。
【００３５】
このＭＡＰ  Ｔａｂｌｅ２０４２は、ＬＤＥＶ番号（ＬＤＥＶ  ｎｕｍ）、ＬＤＥＶのタイプ（Ｔｙｐｅ）、ＬＤＥＶが割り当てられているＬＵ番号（ＬＵ  ｎｕｍ）等によって構成されている。
【００３６】
ＬＤＥＶのＴｙｐｅは、"ｃｍｄ"、"ｒｅｇｕｌａｒ"、"ＷＯＲＭ"等の種類が示される。"ｃｍｄ"は、クライアントから発行されるコマンドのターゲットとして使用されるコマンドデバイスを示す。例えば、ＮＡＳヘッド２００からＲＡＩＤ装置１００に対するＬＤＥＶの確保、ＬＵとＬＤＥＶの対応付け（マッピング）、ＬＤＥＶタイプの変更等を行うためのコマンドは、Ｔｙｐｅが"ｃｍｄ"であるＬＤＥＶに対して送信される。"ｒｅｇｕｌａｒ"は、クライアントからファイルの読み出し及び書き込みが可能なＬＤＥＶであることを示す。"ＷＯＲＭ"は、読み出しのみ可能で、書き込みは不可能なＬＤＥＶであることを示す。
【００３７】
なお、ＬＵ  ｎｕｍが"−１"である場合（図３の例では、ＬＤＥＶ  ｎｕｍ５００に対応するＬＵ  ｎｕｍは“−１”である）は、そのＬＤＥＶはＬＵが割り当てられていないことを示す。
【００３８】
図４は、ＲＡＩＤ装置１００の共有メモリ１４０に備えられているＬＵ  Ｔａｂｌｅ１４０１の一例を示す説明図である。
【００３９】
ＬＵ  Ｔａｂｌｅ１４０１は、ＲＡＩＤ装置１００に備えられているコントローラ１１０毎に構成され、共有メモリ１４０に保存される。例えば、図１に示す構成例では、コントローラ１１０は二つ存在するので、共有メモリ１４０にはＬＵ  Ｔａｂｌｅ１４０１が二つ保存される。このＬＵ  Ｔａｂｌｅ１４０１は、ＬＵ番号（ＬＵ  ｎｕｍ）と、そのＬＵ番号で示されるＬＵに割り当てられているＬＤＥＶの番号（ＬＤＥＶ  ｎｕｍ）等から構成されている。
【００４０】
コントローラ１１０は、ＮＡＳヘッド２００からブロックの読み出し／書き込み要求を受信すると、当該要求に含まれるＬＵ番号を取得する。そして、自コントローラ１１０に対応するＬＵ  Ｔａｂｌｅ１４０１を参照して、取得したＬＵ番号に対応するＬＤＥＶ番号を取得する。そして、取得したＬＤＥＶ番号で示されるＬＤＥＶに対して、ブロックの読み出し／書き込み処理を行う。
【００４１】
図５は、ＲＡＩＤ装置１００の共有メモリ１４０に備えられているＬＤＥＶ  Ｔａｂｌｅ１４０２の一例を示す説明図である。
【００４２】
ＬＤＥＶ  Ｔａｂｌｅ１４０２は、ＲＡＩＤ装置１００に一つだけ備えられ、共有メモリ１４０に保存されている。このＬＤＥＶ  Ｔａｂｌｅ１４０２に保存されている内容がディスク装置１３０のＬＤＥＶの構成を定義する。
【００４３】
ＬＤＥＶ  Ｔａｂｌｅ１４０２は、ＲＡＩＤ装置１００内で一意な番号であるＬＤＥＶ番号（ＬＤＥＶ  ｎｕｍ）、そのＬＤＥＶのタイプ（ｔｙｐｅ）、そのＬＤＥＶのサイズ（ｓｉｚｅ）等によって構成されている。ＬＤＥＶのタイプは図３で前述したものと同じである。サイズは、そのＬＤＥＶのサイズ（最大記憶容量）を示す。
【００４４】
図６は、ディスク装置１３０のメタファイルシステム（Ｍｅｔａ  ＦＳ）１３０１が保存するメタ情報（メタデータ）の一例を示す。
【００４５】
メタ情報は、ディスク装置１３０に保存されているファイルの情報を示すものであり、ファイル毎にＭｅｔａ  ＦＳ１３０１に保存される。
【００４６】
このメタ情報は、ファイル名（ｎａｍｅ）、ファイルのサイズ（ｓｉｚｅ）、ファイルを格納しているＬＤＥＶの番号（ＬＤＥＶ  ｎｕｍ）、ＬＤＥＶ内でファイルを格納しているローカルファイルのローカルパス名（ＬＤＥＶ ｐａｔｈ）、最後にファイルにアクセスのあった時刻（ｌａｓｔ ａｃｃｅｓｓ）、ファイルのタイプ（ｔｙｐｅ）等によって構成されている。
【００４７】
ファイルのタイプは、前述したように、読み出し及び書き込みが可能なファイル（ｒｅｇｕｌａｒ）や読み出しは可能で、書き込みが不可能なファイル（ＷＯＲＭ）等が示される。
【００４８】
このメタ情報を参照することによって、そのファイルのファイル名、ファイルサイズ、保存されているＬＤＥＶ番号、保存されているディレクトリパス名、最後にファイルにアクセスした時刻及びファイルのタイプを知ることができる。
【００４９】
次に、本実施の形態のストレージシステムの動作を説明する。
【００５０】
図７は、ＮＡＳクライアント３００からの要求に従って、ファイルをｒｅａｄ  ｍｏｄｅでＯＰＥＮする際の、ＮＡＳヘッド２００の処理を示すフローチャートである。
【００５１】
ＮＡＳクライアント３００が、ファイルのｒｅａｄ  ｍｏｄｅでのＯＰＥＮを行うためにＮＡＳヘッド２００に対して要求を送信する。ＮＡＳヘッド２００は、ＮＡＳクライアント３００からの要求を受信すると、要求に含まれるファイル名を取得する。そして、ＲＡＩＤ装置１００のディスク装置１３０のＭｅｔａ  ＦＳ１３０１を参照し、取得したファイル名に関するメタ情報（図６）を取得する（１００１）。
【００５２】
次に、取得したメタ情報から、ＬＤＥＶ番号を取得する。そして、ＭＡＰ  Ｔａｂｌｅ２０４２を検索し、取得したＬＤＥＶ番号に対応するＬＵ番号を取得する（１００２）。
【００５３】
そして、取得したＬＵ番号を参照し、ＬＵが割り当てられているか否かを判定する（１００３）。具体的には、取得したＬＵ番号が"−１"であれば、そのＬＤＥＶ番号で示されるＬＤＥＶにはＬＵが割り当てられていないと判定し、取得したＬＤＥＶ番号で示されるＬＤＥＶをＬＵに割り当てる処理（ＬＵ割り当て処理）を行う（１００４）。この処理は図８で後述する。ＬＵ割り当て処理が完了し、ＬＤＥＶがＬＵに割り当てられると、処理１００５に移行する。
【００５４】
一方、処理１００３において、ＬＵが割り当てられていると判定した場合は、ＬＵ割り当て処理１００４を行うことなく処理１００５に移行する。
【００５５】
処理１００５では、ＭＮＴ  Ｔａｂｌｅ２０３２を参照し、ＬＵ番号で示されるＬＵがマウントされているか否かを判定する。ＬＵがマウントされていないと判定した場合は、ＬＵをマウントする（１００６）。その後、処理１００７に移行する。
【００５６】
一方、ＬＵが既にマウントされていると判定した場合は、処理１００６を行うことなく処理１００７に移行する。
【００５７】
処理１００７では、ＭＮＴ  Ｔａｂｌｅ２０３２参照し、取得したマウント済みのＬＵ番号に対応するマウントポイントを取得する。
【００５８】
次に、取得したマウントポイントからの相対パスとして、取得したメタ情報に含まれる相対パスを用い、要求のファイルに対するｒｅａｄ  ＯＰＥＮ処理を行う。そして、このｒｅａｄ  ＯＰＥＮ処理の結果をＮＡＳクライアント３００に送信する（１００８）。
【００５９】
この一連の処理によって、ＮＡＳクライアント３００が、ＮＡＳヘッド２００のファイルシステムを介してファイルのｒｅａｄ  ｍｏｄｅ（読み出し）によるオープン処理が行える。
【００６０】
図８は、ＮＡＳクライアント３００からの要求に従って、ファイルをｗｒｉｔｅ  ｍｏｄｅでＯＰＥＮする際の、ＮＡＳヘッド２００の処理を示すフローチャートである。
【００６１】
ＮＡＳクライアント３００が、ＮＡＳヘッド２００に対してファイルのｗｒｉｔｅ  ｍｏｄｅでのＯＰＥＮ要求を送信する。ＮＡＳヘッド２００は、ＮＡＳクライアント３００からのファイルＯＰＥＮ要求を受信すると、当該要求に含まれるファイル名を取得する。そして、ＲＡＩＤ装置１００のディスク装置１３０のＭｅｔａ  ＦＳ１３０１を参照し、取得したファイル名のメタ情報（図６参照）を取得する（２００１）。
【００６２】
次に、取得したメタ情報から当該ファイルのＴｙｐｅを取得する。そしてＴｙｐｅが"ＷＯＲＭ"であるか否かを判定する（２００２）。ファイルのＴｙｐｅが"ＷＯＲＭ"であると判定した場合には、当該ファイルはｗｒｉｔｅ  ｍｏｄｅではＯＰＥＮできないため、要求元のＮＡＳクライアント３００に対してエラーを送信し、処理を終了する（２００７）。
【００６３】
ファイルのＴｙｐｅが"ＷＯＲＭ"ではないと判定した場合は、取得したメタ情報から、ＬＤＥＶ番号を取得する。そして、ＭＡＰ  Ｔａｂｌｅ２０４２を参照し、取得したＬＤＥＶ番号に対応するＬＵ番号を取得する（２００３）。
【００６４】
そして、取得したＬＵ番号を参照し、ＬＵが割り当てられているか否かを判定する（２００４）。取得したＬＵ番号が"−１"であれば、そのＬＤＥＶ番号で示されるＬＤＥＶにはＬＵが割り当てられていないと判定する。ＬＵが割り当てられていないと判定した場合は、要求元のＮＡＳクライアント３００に対してエラーを送信し、処理を終了する（２００７）。前述したように、本発明のシステムでは、ＬＵが割り当てられていないＬＤＥＶは、すべてＷＯＲＭファイルを保存するＴｅｍｐ  ＦＳ１３０３であるので、当該ＬＤＥＶへのｗｒｉｔｅ  ｍｏｄｅのＯＰＥＮ要求は不可とする。
【００６５】
一方、処理２００４において、ＬＵが割り当てられていると判定した場合は、ＭＮＴ  Ｔａｂｌｅ２０３２参照し、取得したマウント済みのＬＵ番号に対応するマウントポイントを取得する（２００５）。
【００６６】
次に、取得したマウントポイントからの相対パスとして、取得したメタ情報に含まれる相対パスを用い、要求のファイルに対するｗｒｉｔｅ  ＯＰＥＮ処理を行う。そして、このｗｒｉｔｅ  ＯＰＥＮ処理の結果をＮＡＳクライアント３００に送信する（２００６）。
【００６７】
この一連の処理によって、ＮＡＳクライアント３００が、ＮＡＳヘッド２００のファイルシステムを介してファイルをｗｒｉｔｅ  ｍｏｄｅでＯＰＥＮすることができる。
【００６８】
なお、ＮＡＳヘッド２００を介しないＳＡＮクライアント３５０からＲＡＩＤ装置１００に対するＬＵのＷＲＩＴＥ要求は、コントローラ１１０の制御によってＷＯＲＭ機能を実現する。具体的には、ＳＡＮクライアント３５０からのｗｒｉｔｅ要求があった場合には、コントローラ１１０のＬＤＥＶガードプログラム１１１２が、当該ＬＵのＬＤＥＶのＴｙｐｅをＬＤＥＶ  Ｔａｂｌｅを参照して取得する。取得されたＴｙｐｅが"ｒｅｇｕｌａｒ"であった場合は、当該ＬＤＥＶはｗｒｉｔｅを許可する。一方、取得されたＴｙｐｅが"ＷＯＲＭ"である場合は、当該ＬＤＥＶに対するｗｒｉｔｅは、エラーを返送する。
【００６９】
図９は、ＮＡＳヘッド２００が行う、ＬＵ割り当て処理（図７の処理１００４）を示すフローチャートである。
【００７０】
まず、ＭＡＰ  Ｔａｂｌｅ２０４２を参照して、ＬＤＥＶに割り当てられていないＬＵがあるかを検索する（３００１）。そして未割り当てのＬＵの検索が成功か否か、すなわち、未割り当てのＬＵがあるか否かを判定する（３００２）。未割り当てのＬＵがあると判定した場合は、処理３００５に移行する。
【００７１】
未割り当てのＬＵがないと判定した場合は、ＭＮＴ  Ｔａｂｌｅ２０３２から、Ｔｙｐｅが"Ｔｅｍｐ"、ｍｏｄｅが"ｒ"（ｒｅａｄ）であるＬＵのうち、最も長くアクセスされていないものを、Ａ＿Ｔｉｍｅを参照して検索する（３００３）。そして、検索されたＬＵをアンマウントする（３００４）。
【００７２】
次に、ＬＤＥＶに、検索されたＬＵを割り当てるために、ＲＡＩＤ装置１００に対してＬＵ割り当てコマンドを発行する（３００５）。
【００７３】
具体的には、ＮＡＳヘッド２００は、ＭＡＰ  Ｔａｂｌｅ２０４２に定義されている"ｃｍｄ"（制御用）のＬＵ番号に対して、割り当てを行うＬＤＥＶ  ｎｕｍとＬＵ  ｎｕｍとをパラメータとしたＬＵ割り当てコマンドを発行する。発行されたＬＵ割り当てコマンドは、ＲＡＩＤ装置１００の、ＮＡＳヘッド２００とのデータの送受信を担当するコントローラ１１０が受信する。コマンドを受信したコントローラ１１０のＬＤＥＶチェンジャプログラム１１２２は、ＬＵ割り当てコマンドのパラメータに基づいて、共有メモリ１４０に保存されている自コントローラに対応するＬＵ Ｔａｂｌｅ１４０１のＬＵとＬＤＥＶとの割り当てを変更する。
【００７４】
次に、ＮＡＳヘッド２００は、メモリ２００２に保存されているＭＡＰ  Ｔａｂｌｅ２０４２の該当するＬＤＥＶのエントリに、割り当てられたＬＵ番号を設定する（３００６）。
【００７５】
この一連の処理によって、割り当てられていないＬＤＥＶにＬＵが割り当てられる。
【００７６】
特に、未割り当てのＬＵがない場合は、ファイルシステムにマウントされているＬＵのうち、もっとも長くアクセスされていないものをアンマウントし、そのＬＵをＬＤＥＶに割り当てる。処理３００３において、Ｔｙｐｅが"Ｔｅｍｐ"、ｍｏｄｅが"ｒ"のＬＵ、すなわち、ＷＯＲＭとして設定されているＬＵをアンマウントする。
【００７７】
次に、ＷＯＲＭ化処理について説明する。
【００７８】
本実施の形態では、通常は、ファイルデータはディスク装置１３０のＤａｔａ ＦＳに保存される。ここで、ＮＡＳヘッド２００は、保存されたファイルのうち、一定期間（例えば、数ヶ月〜数年）アクセスがないものを検索する。一定期間以上アクセスのないファイルは、ＷＯＲＭファイルとしてファイルデータをＴｅｍｐ  ＦＳに移動させる。
【００７９】
図１０は、ＮＡＳヘッド２００のメモリ２００２に保存されているＷＯＲＭ化処理プログラム２０１２が行うＷＯＲＭ化処理を示すフローチャートである。
【００８０】
ＷＯＲＭ化処理プログラム２０１２は、ＲＡＩＤ装置１００のディスク装置１３０のＭｅｔａ  ＦＳ１３０１を参照して、一定期間以上アクセスのない状態が経過したファイルを取得する（４００１）。Ｍｅｔａ  ＦＳ１３０１に保存されているＭｅｔａ ｉｎｆｏ（図６参照）は、ディスク装置１３０に保存されているファイル各々について、当該ファイルに対して最後のアクセスの日時を保存している。ＮＡＳヘッド２００は、このアクセス日時を取得して、一定期間以上経過しているものがあれば、そのファイルの情報を取得しリストとして記録する。
【００８１】
次に、処理４００１において一定期間以上アクセスのない状態が経過したファイルが存在するか否かを判定する（４００２）。一定期間以上アクセスのない状態が経過したファイルが存在しないと判定した場合は、ＷＯＲＭ化対象のファイルが存在しないため、ＷＯＲＭ化処理を終了する。
【００８２】
一方、一定期間以上アクセスのない状態が経過したファイルが存在すると判定した場合は、まず当該ファイルデータを全てＤａｔａ  ＦＳ１３０２から読み込む。そして、読み込んだファイルから、ＵＤＦ（Universal Disk Format）イメージを作成する。作成されたＵＤＦイメージはメモリ２００２のＷＯＲＭ  ｂｕｆ２０５２に保存される（４００３）。
【００８３】
次に、作成したＵＤＦイメージを保存するためのＬＤＥＶを確保する（４００４）。具体的には、ＵＤＦイメージが格納可能なサイズを指定して、ＲＡＩＤ装置１００に対してＬＤＥＶ確保コマンドを送信する。ＲＡＩＤ装置１００のコントローラ１１０は、受信したコマンドに基づいて、指定されたサイズを格納可能な、Ｔｙｐｅが"ｒｅｇｕｌａｒ"のＬＤＥＶを確保する。
【００８４】
なお、ＷＯＲＭ化処理プログラム２０１２は、ＬＤＥＶの確保と共に、メモリ２００２に保存されているＭＡＰ  Ｔａｂｌｅ２０３２に、確保されたＬＤＥＶの情報を登録する。
【００８５】
次に、確保したＬＤＥＶに対してＬＵ割り当て処理（図９参照）を行う（４００５）。そして、ＬＵ割り当て処理によって割り当てられたＬＵに対して、ＷＯＲＭ  ｂｕｆ２０５２に保存されているＵＤＦイメージの書き込みを行う（４００６）。
【００８６】
次に、ＵＤＦイメージを書き込んだＬＤＥＶのＴｙｐｅを"ＷＯＲＭ"に設定する（４００７）。この処理では、ＲＡＩＤ装置１００に対して、ＬＤＥＶをＷＯＲＭに設定するためのコマンドを送信する。ＲＡＩＤ装置１００のコントローラ１１０は、コマンドを受信すると、共有メモリ１４０に保存されているＬＤＥＶ  Ｔａｂｌｅ１４０２の当該ＬＤＥＶのＴｙｐｅを"ＷＯＲＭ"に設定する。一方、ＮＡＳヘッド２００は、メモリ２００２に保存されているＭＡＰ  Ｔａｂｌｅ２０４２の当該ＬＤＥＶのＴｙｐｅを"ＷＯＲＭ"に設定する。
【００８７】
最後に、ＷＯＲＭ化された全てのファイルのＭｅｔａ ｉｎｆｏの更新と、Ｄａｔａ  ＦＳ１３０２上のファイルデータの消去を行う（４００８）。具体的には、ＷＯＲＭ化した各ファイルのＭｅｔａ ｉｎｆｏのＬＤＥＶ ｐａｔｈを用いて、Ｄａｔａ  ＦＳ１３０２上のファイルデータを消去する。その後、Ｍｅｔａ ｉｎｆｏの  ＬＤＥＶ  ｎｕｍに、ＵＤＦを書き込んだＬＤＥＶの番号を、ＬＤＥＶ ｐａｔｈにＵＤＦ内のパス名を、Ｔｙｐｅに“ＷＯＲＭ”を、設定する。
【００８８】
以上の処理によって、一定期間以上アクセスのない状態が経過しているファイルを、ＷＯＲＭ化することができる。
【００８９】
なお、図１０の処理では、ＮＡＳヘッド２００が、ＷＯＲＭ化するファイルを一旦読み込み、ＵＤＦイメージとして作成したファイルをバッファ上に保存し、ＲＡＩＤ装置１００に書き込む例を示したが、ＮＡＳヘッド２００の指示によって、ＲＡＩＤ装置１００側でファイルを移動するように構成してもよい。なお、この場合、コントローラ１１０にファイルシステムの機能が必要である。ＮＡＳヘッド２００からの指示を受けたコントローラ１１０は、指示のあったファイルをＵＤＦイメージに変換し、変換したＵＤＦイメージをＴｅｍｐ  ＦＳ１３０３に保存する。このようにすることで、ＮＡＳヘッド２００側の処理及びＮＡＳヘッド２００とＲＡＩＤ装置１００との間のデータ通信を低減することが可能となる。
【００９０】
また、図１０の処理では、一律に一定期間アクセスのない状態が経過したファイルをＷＯＲＭ化するために取得するよう構成した。これに対し、ファイル毎にＷＯＲＭ化するまでの時間を設定することもできる。ファイル毎にＷＯＲＭ化するまでの期間を設定する場合は、Ｍｅｔａ ＩｎｆｏにＷＯＲＭ化するまでの時間の情報を含める。例えば、ＷＯＲＭファイルとしてＲＡＩＤ装置１００に記憶されてから１年とする。そして、図１０の処理４００１において、Ｍｅｔａ ｉｎｆｏから情報を取得し、ＷＯＲＭ化するまでの時間（すなわち１年）が経過している場合は、当該ファイルをＷＯＲＭ化する。以降の処理は同じである。
【００９１】
以上のように構成された本発明の第１の実施の形態では、ＲＡＩＤ装置１００のディスク装置１３０を構成するＬＤＥＶ毎に、ＬＤＥＶ  Ｔａｂｌｅ１４０２によってＴｙｐｅを設定する。このようにすることで、例えば"ＷＯＲＭ"に設定されているＬＤＥＶには読み出しのみを許可することができ、ＲＡＩＤ装置１００のＬＤＥＶレベルでのＷＯＲＭ機能を実現することができる。また、ＷＯＲＭファイルを保存するＴｅｍｐ  ＦＳ１３０３は、ＮＡＳヘッド２００によって、必要に応じてファイルシステムにマウント／アンマウントされるので、ファイルシステムを提供するＮＡＳヘッド２００及びＲＡＩＤ装置１００のリソースを削減することができる。
【００９２】
なお、図１に示したストレージシステムを図１１に示すように、コントローラ１１０にＮＡＳヘッド２１０の機能を含め、コントローラ１１５を１つのモジュールとして構成し、ＲＡＩＤ装置１００内に備えた構成としてもよい。このように構成することで、ＲＡＩＤ装置１００自身がＮＡＳクライアント３００に対してファイルシステムを提供できると共に、ＳＡＮ１５０を介したＳＡＮクライアント３５０からのアクセスにも同様にＷＯＲＭによるアクセス制限をすることができる。
【００９３】
次に、本発明の第２の実施の形態のストレージシステムについて説明する。
【００９４】
第１の実施の形態では、ＮＡＳヘッド２００が、一定期間アクセスのなかったＬＤＥＶについて、当該ＬＤＥＶに保存されているデータを自動的にＷＯＲＭ化する方法を示した。これに対して第２の実施の形態では、ＮＡＳクライアント３００が、ファイル毎にＷＯＲＭ化の指示を行う。ＮＡＳヘッド２００は、ＮＡＳクライアント３００からの指示をトリガとして、当該ファイルのＷＯＲＭ化処理を行う。なお、第１の実施の形態と同一の構成には同一の符号を付し、その説明は省略する。
【００９５】
第２の実施の形態では、ＮＡＳクライアント３００からの指示によってファイル毎のＷＯＭＲ化処理を行うために、ＷＯＲＭを保存するＬＤＥＶを、ファイルを追記可能に設定する。具体的には、各ＬＤＥＶについてＷＯＲＭ化されている領域と書き込み可能な領域が管理できるよう、ＬＤＥＶ  Ｔａｂｌｅ１４０２に書き込み可能な領域の先頭ブロック番号を示すフィールドを追加する。また、ＷＯＲＭ化処理において、既に一部の領域がＷＯＲＭ化されているＬＤＥＶからＵＤＦイメージをＷＯＲＭ  ｂｕｆ２０５２に読み出し、ＷＯＲＭ化するファイルを追記したＵＤＦイメージを作成した後、追記部分のみをＬＤＥＶに書き込む。
【００９６】
図１２は、第２の実施の形態のＬＤＥＶ  Ｔａｂｌｅ１４０２を示す説明図である。
【００９７】
図５に示したＬＤＥＶ  Ｔａｂｌｅ１４０２に加え、「ｗｂｅｇｉｎ」フィールドを備えている。このｗｂｅｇｉｎフィールドは、Ｔｙｐｅが“ＷＯＲＭ”であるＬＤＥＶの、書き込み可能領域を示す。すなわち、ｗｂｅｇｉｎが示すブロック番号よりも前の領域は書き込み不可、ｗｂｅｇｉｎのブロック番号以降の領域は１回のみ書き込み可能であることを示す。
【００９８】
前述した第１の実施の形態では、ＷＯＲＭ化したファイルをＬＤＥＶに一括した書き込みを行った後、ＬＤＥＶ  Ｔａｂｌｅ１４０２の当該ＬＤＥＶのＴｙｐｅを"ＷＯＲＭ"と設定する。ＬＤＥＶのＴｙｐｅを"ＷＯＲＭ"と設定することで、以降は、そのＬＤＥＶに対する書き込みは禁止され、追記はできない。
【００９９】
これに対して、第２の実施の形態では、ＬＤＥＶの確保時にＬＤＥＶ  Ｔａｂｅｌ１４０２のＴｙｐｅを"ＷＯＲＭ"とすると共に、ｗｂｅｇｉｎフィールド（図１２）を"０"に設定する。その後、当該ＬＤＥＶへのＷＯＲＭファイル（ＵＤＦフォーマットのデータ）の書き込みが行われた場合は、書き込み完了時に、ｗｂｅｇｉｎに「書き込みデータの最後のブロック＋１」の値を設定する。このようにすることで、ｗｂｅｇｉｎによって示されるブロックよりも前のブロックのみが書き込み不可能となる。
【０１００】
図１３は、第２の実施の形態のＭＡＰ  Ｔａｂｌｅ２０４２である。図３に示したＭＡＰ  Ｔａｂｌｅ２０４２に加え、「ｓｉｚｅ」及び「ｗｂｅｇｉｎ」フィールドを備えている。「ｓｉｚｅ」フィールドはＬＤＥＶのサイズを示す。「ｗｂｅｇｉｎ」フィールドは、図１２で前述したように、当該ＬＤＥＶの書き込みが可能な領域の最初のブロックを示す。
【０１０１】
図１４は、第２の実施の形態の、ＮＡＳヘッド２００のメモリ２００２に保存されているＷＯＲＭ化処理プログラム２０１２を実行してＮＡＳヘッド２００が行うＷＯＲＭ化処理を示すフローチャートである。
【０１０２】
ＮＡＳクライアント３００から、ユーザーがファイルを指定してＷＯＲＭ化の指示を送信する。当該指示を受信したＮＡＳヘッド２００は、図１４の処理を行う。
【０１０３】
ＮＡＳヘッド２００は、ＮＡＳクライアント３００からのファイルのＷＯＲＭ化指示を受信すると、まず、当該ファイルのメタ情報を、ＲＡＩＤ装置１００のディスク装置１３０のＭｅｔａ  ＦＳを参照して取得する（５００１）。
【０１０４】
次に、指示されたファイルが格納可能なＬＤＥＶが存在するか否かを判定する（５００２）。具体的には、ＭＡＰ  Ｔａｂｌｅ２０４２を参照して、Ｔｙｐｅが"ＷＯＲＭ"のＬＤＥＶのうち、そのファイルを格納するのに充分な容量があるＬＤＥＶが存在するか否かを判定する。なお、ＬＤＥＶに格納可能なサイズは、ＭＡＰ  Ｔａｂｌｅ２０４２のｓｉｚｅフィールドの値からｗｂｅｇｉｎフィールドの値を減算することで算出できる。
【０１０５】
なお、Ｔｙｐｅが"ＷＯＲＭ"のＬＤＥＶにファイルを格納する場合は、ファイルデータだけでなくファイルのメタ情報も格納する必要がある。このため、それらファイル及びメタ情報すべてを含めたサイズが格納可能な容量を持っている必要がある。
【０１０６】
指示されたファイルが格納可能なＬＤＥＶが存在すると判定した場合は、当該ＬＤＥＶに対してＬＵを割り当てるＬＵ割り当て処理（図８参照）を行う（５００７）。次に、当該ＬＤＥＶのディレクトリ情報を、メモリ２００２のＷＯＲＭ  ｂｕｆ２０５２に読み込む（５００８）。
【０１０７】
処理５００２において、格納可能なＬＤＥＶが存在しないと判定した場合は、Ｔｙｐｅ＝"ＷＯＲＭ"のＬＤＥＶを確保する（５００３）。具体的には、指示されたファイルを格納可能な容量を指定して、ＲＡＩＤ装置１００に対してＬＤＥＶ確保コマンドを送信する。ＲＡＩＤ装置１００のコントローラ１１０は、受信したコマンドに基づいて、指定された容量で、Ｔｙｐｅが"ＷＯＲＭ"のＬＤＥＶを確保する。
【０１０８】
次に、確保されたＬＤＥＶの番号（ＬＤＥＶ  ｎｕｍ）をＭＡＰ  Ｔａｂｌｅ２０４２に登録する（５００４）。次に、確保したＬＤＥＶに対してＬＵを割り当てるＬＵ割り当て処理（図８参照）を行う。ＬＤＥＶに対してＬＵが割り当てられると、メモリ２００２のＷＯＲＭ  ｂｕｆ２０５２を初期化する（５００６）。具体的には、指示されたファイルが格納可能な容量で、空のＵＤＦイメージを生成する。その後、処理５００９に移行する。
【０１０９】
処理５００９では、指示されたファイルのユーザデータをＲＡＩＤ装置１００のディスク装置１３０のＤａｔａ ＦＳから読み出す。そして読み出したファイルを、ＵＤＦイメージとしてＷＯＲＭ  ｂｕｆ２０５２に追加し、ＬＤＥＶに書き込むＵＤＦイメージを作成する。
【０１１０】
次に、ＵＤＦイメージをＬＤＥＶに書き込む。このとき、ユーザデータと共にディレクトリ情報などのメタ情報もＬＤＥＶに対して書き込む（５０１０）。ＬＤＥＶの書き込み開始ブロックは、ＭＡＰ  Ｔａｂｌｅ２０４２の当該ＬＤＥＶのｗｂｅｇｉｎに示されている値を用いる。また、ＬＤＥＶへの書き込みは、ＬＤＥＶに割り当てられているＬＵ番号を指定してコントローラ１１０に指示する。
【０１１１】
次に、ＭＡＰ  Ｔａｂｌｅ２０４２のｗｂｅｇｉｎの値を、ＬＤＥＶに書き込んだ容量を加算した値に変更する（５０１１）。なお、この際に、ＮＡＳヘッド２００はＲＡＩＤ装置１００のコントローラ１１０に指示し、ＬＤＥＶ  Ｔａｂｌｅ１０４２のｗｂｅｇｉｎの値も同様に更新する。
【０１１２】
以上の処理によって、ＮＡＳクライアント３００からの指示によって、ファイルをＷＯＲＭ化することが可能となる。
【０１１３】
以上のように構成された本発明の第２の実施の形態では、第１の実施の形態の効果に加え、ＮＡＳクライアント３００からの指示によって、ファイルをＷＯＲＭ化することができるので、必要な時に任意のファイルのＷＯＲＭ化を実行できる。またＷＯＲＭファイルのデータはＬＤＥＶに追記されるので、ＬＤＥＶの使用効率が高まり、ＲＡＩＤ装置１００のリソースの削減が可能となる。
【０１１４】
なお、ＷＯＲＭ化したファイルを保存するＬＤＥＶに対して、ファイルの更新不可能な期間を設定するようにしてもよい。例えば、ＬＤＥＶ  Ｔａｂｌｅ１４０２に、ＬＤＥＶ毎にファイル更新不可能な期間を設定する。このファイルの更新不可能な期間が経過するまでは当該ＬＤＥＶに格納されているファイルの更新・消去は不可能とする（すなわちＷＯＲＭファイルである）。そして、更新不可能な期間が経過後は、例えばディスク容量削減のため当該ファイルの削除等を行うことができる。ファイルの更新不可能な期間は、ユーザーによってＮＡＳクライアント３００から指定する。ＮＡＳヘッド２００は、その指定に基づいて、ＲＡＩＤ装置１００のコントローラ１１０に対して、ＷＯＲＭ化処理を行う前にＬＤＥＶ  Ｔａｂｌｅ１４０２に設定する。
【０１１５】
以上、第１及び第２の実施の形態においてＷＯＲＭ化の単位やＷＯＲＭ化する期間、ＷＯＲＭ化のタイミングの指示をＮＡＳクライアント３００から指示ずる例を用いて説明したが、ＮＡＳクライアント３００の代わりにストレージ管理サーバが指定してもよい。ストレージ管理サーバが、ＷＯＲＭの管理も一元的に行えるため、ストレージの管理が容易となる。
【図面の簡単な説明】
【０１１６】
【図１】第１の実施の形態のストレージシステムの構成を示すブロック図である。
【図２】第１の実施の形態のＭＮＴ  Ｔａｂｌｅ２０３２の構成の一例を示す説明図である。
【図３】第１の実施の形態のＭＡＰ  Ｔａｂｌｅ２０４２の構成の一例を示す説明図である。
【図４】第１の実施の形態のＬＵ Ｔａｂｌｅ１４０１の構成の一例を示す説明図である。
【図５】第１の実施の形態のＬＤＥＶ  Ｔａｂｌｅ１０４２の構成の一例を示す説明図である。
【図６】第１の実施の形態のＭｅｔａ ｉｎｆｏの構成の一例を示す説明図である。
【図７】第１の実施の形態のＮＡＳヘッド２００において行われる、ファイルのｒｅａｄ  ｍｏｄｅでのＯＰＮＥ要求があった場合の処理を示すフローチャートである。
【図８】第１の実施の形態のＮＡＳヘッド２００において行われる、ファイルのｗｒｉｔｅ  ｍｏｄｅでのＯＰＮＥ要求があった場合の処理を示すフローチャートである。
【図９】第１の実施の形態のＮＡＳヘッド２００において行われる、ＬＥ割り当て処理を示すフローチャートである。
【図１０】第１の実施の形態のＮＡＳヘッド２００において行われる、ＷＯＲＭ化処理を示すフローチャートである。
【図１１】第１の実施の形態の変形例のストレージシステムの構成を示すブロック図である。
【図１２】第２の実施の形態のＬＤＥＶ  Ｔａｂｌｅ１４０２の一例を示す説明図である。
【図１３】第２の実施の形態のＭＡＰ  Ｔａｂｌｅ２０４２の一例を示す説明図である。
【図１４】第２の実施の形態のＮＡＳヘッド２００において行われる、ＷＯＲＭ化処理を示すフローチャートである。
【符号の説明】
【０１１７】
１００      ＲＡＩＤ装置
１１０      コントローラ
１２０      内部ネットワーク
１３０      ディスク装置
１３１      ディスクアダプタ
１４０      共有メモリ
２００      ＮＡＳヘッド
３００      ＮＡＳクライアント
３５０      ＳＡＮクライアント
【図１】
2005327092.tif 000003
【図２】
2005327092.tif 000004
【図３】
2005327092.tif 000005
【図４】
2005327092.tif 000006
【図５】
2005327092.tif 000007
【図６】
2005327092.tif 000008
【図７】
2005327092.tif 000009
【図８】
2005327092.tif 000010
【図９】
2005327092.tif 000011
【図１０】
2005327092.tif 000012
【図１１】
2005327092.tif 000013
【図１２】
2005327092.tif 000014
【図１３】
2005327092.tif 000015
【図１４】
2005327092.tif 000016