(57)【特許請求の範囲】
【請求項１】
ファイルアクセス要求を受信しそのファイルアクセス要求で指定されているファイルに対するアクセスをアクセス制御リスト（以下、ＡＣＬ）を用いて制御するアクセスコントローラであって、
ファイルシステム又は使用するＡＣＬの種別を第二種から第一種へ切替えることの切替え指示を受信する切替え指示受信部と、
前記切替え指示に応答して前記ファイルシステム又はＡＣＬの種別を第二種から第一種に切替える切替え部と、
下記（Ａ）及び（Ｂ）の処理、
（Ａ）前記ファイルシステム又は使用するＡＣＬの種別が第二種から第一種に切替えられた後に、ファイルアクセス要求を受信したことに応答して、そのファイルアクセス要求で指定されているファイルに、第一種のファイルシステムに対応した第一種のＡＣＬが対応付けられているか否かの判断を行い、前記判断の結果が否定的である場合に、そのファイルに対応した第二種のＡＣＬに基づいて第一種のＡＣＬを生成し、
（Ｂ）前記ファイルシステム又は使用するＡＣＬの種別が第二種から第一種に切替えられた後に、指定されたエリアのＡＣＬ変換要求を受信したことに応答して、そのＡＣＬ変換要求で指定されているエリアのファイル及びディレクトリに、第一種のファイルシステムに対応した第一種のＡＣＬが対応付けられているか否かの判断を行い、前記判断の結果が否定的である場合に、そのファイル及びディレクトリに対応した第二種のＡＣＬに基づいて第一種のＡＣＬをバックグラウンドで生成する、
を行なうＡＣＬ変換部と、
生成された前記第一種のＡＣＬを用いて、対応するファイルへのアクセスを制御するアクセス制御部と
を備えるアクセスコントローラ。
【請求項２】
前記ＡＣＬ変換部は、
前記（Ａ）で、前記ファイルアクセス要求を受信すると、そのファイルアクセス要求で指定されているファイルにロックをかけて前記判断及び生成処理を実行し、前記実行が完了したらそのロックを解除し、
前記（Ｂ）で、前記ＡＣＬ変換要求を受信すると、そのＡＣＬ変換要求で指定されているエリアのファイル及びディレクトリ下のファイルにロックをかけて前記判断及び生成処理を実行し、前記実行が完了したらそのロックを解除する、
請求項１記載のアクセスコントローラ。
【請求項３】
前記ファイルシステム又は使用するＡＣＬの種別を表す種別情報を記憶する記憶資源を更に備え、
前記ＡＣＬ変換部が、前記種別情報を参照することにより現在の前記ファイルシステム又はＡＣＬの種別を特定するよう構成されており、
前記切替え部が、前記種別情報を、第二種を表す情報から第一種を表す情報に更新することで、前記ファイルシステム又は使用するＡＣＬの種別を第二種から第一種に切替えることが完了する、
請求項１又は２記載のアクセスコントローラ。
【請求項４】
メモリを更に備え、
前記ＡＣＬ変換部が、前記生成した第一種のＡＣＬを、前記ファイルシステムによって管理されるファイルを含んだ論理記憶空間に書込むことが可能であるか不可能であるかを判断し、書き込み可能と判断したならば、前記論理記憶空間と前記メモリの両方に、前記ファイルに対応付ける第一種のＡＣＬを書き込み、書き込み不可能と判断したならば、前記ファイルに対応付ける第一種のＡＣＬを、前記論理記憶空間に書き込まず、前記メモリに書込み、
前記ＡＣＬ変換部が、受信したファイルアクセス要求で指定されているファイルに第一種のＡＣＬが対応付けられているか否かの判断を、前記メモリを参照することにより行い、そのファイルに対応した第一種のＡＣＬが前記メモリに記憶されていれば、その判断の結果が肯定的となる、
請求項１乃至３のうちのいずれか１項に記載のアクセスコントローラ。
【請求項５】
前記ＡＣＬ変換部は、以下の（１）乃至（３）のいずれかの場合、
（１）前記生成された第一種のＡＣＬを記憶できる程の空き容量が前記論理記憶空間に無い場合、
（２）前記論理記憶空間の使用容量又は空き容量と予め設定された制限値との差が所定値の場合、
（３）読出し可能であるが書込み不可能であることを意味するアクセス属性が、前記論理記憶空間に対応付けられている場合、
前記生成した第一種のＡＣＬを前記論理記憶空間に書込むことが不可能と判断する、
請求項４記載のアクセスコントローラ。
【請求項６】
前記論理記憶空間に第一種のＡＣＬを書込むことが可能になったか否かを監視し、書込むことが可能になったことを検出した場合に、前記メモリに記憶されている、前記論理記憶装置に未だ書込まれていない前記第一種のＡＣＬを、前記論理記憶空間に書込むＡＣＬデステージ部、
を更に備える請求項４又は５記載のアクセスコントローラ。
【請求項７】
前記ＡＣＬ変換部は、前記ファイルシステムによって管理されるファイルを含んだ論理記憶空間に、読出し可能であるが書込み不可能であることを意味するアクセス属性が対応付けられていても、前記論理記憶空間に、前記指定されているファイルに対応付ける第一種のＡＣＬを書き込む、
請求項１乃至３のいずれか１項に記載のアクセスコントローラ。
【請求項８】
前記ＡＣＬ変換部が、ファイルアクセス要求を受け付けながら、前記論理記憶空間に存在する全てのファイルについて、第一種のＡＣＬが対応付けられているか否かを判断し、
前記ＡＣＬ変換部が、否定的な判断結果が得られる都度に、否定的な判断結果に対応したファイルに対応する第二種のＡＣＬを基に、そのファイルに対応する第一種のＡＣＬを生成する、
請求項１乃至７のいずれか１項に記載のアクセスコントローラ。
【請求項９】
前記ファイルシステムによって管理される論理記憶空間ついての使用容量又は空き容量の問合せを受信する容量問合せ受信部と、
前記論理記憶空間内の全てのファイルに第一種のＡＣＬが対応付けられていると仮定した場合の使用容量又は空き容量を返答する容量返答部と
を更に備える請求項１乃至８のうちのいずれか１項に記載のアクセスコントローラ。
【請求項１０】
前記ＡＣＬ変換部が、第一種のＡＣＬが対応付けられたファイルに対応している第二種のＡＣＬが更新された場合、更新後の第二種のＡＣＬを基にその第一種のＡＣＬを更新する、
請求項１乃至９のうちのいずれか１項に記載のアクセスコントローラ。
【請求項１１】
前記ＡＣＬ変換部が、バックアップされたファイル及びそれに対応する第二種のＡＣＬがリストアされたことによって、第一種のＡＣＬが対応付けられているファイルが、リストアされたファイルに更新された場合、リストアされたファイルである更新後のファイルには、更新前のファイルに対応していた第一種のＡＣＬではなく、更新後のファイルに対応しておりリストアされた第二種のＡＣＬを基に生成した第一種のＡＣＬを対応付ける、
請求項１乃至１０のうちのいずれか１項に記載のアクセスコントローラ。
【請求項１２】
メモリを更に備え、
前記ＡＣＬ変換部が、前記メモリに、前記生成した第一種のＡＣＬを書き込み、前記メモリに記憶されているその第一種のＡＣＬが規定回数以上前記アクセス制御部によって使用された場合に、そのメモリに記憶されている第一種のＡＣＬを、前記ファイルシステムによって管理されるファイルを含んだ論理記憶空間に書込む、
請求項１乃至１１のうちのいずれか１項に記載のアクセスコントローラ。
【請求項１３】
ファイルシステムによって管理されるファイルを構成するデータが記憶される記憶装置と、
ファイルアクセス要求を受信し、そのファイルアクセス要求で指定されているファイルに対するアクセスを、アクセス制御リスト（以下、ＡＣＬ）を用いて制御するアクセスコントローラと
を備え、
前記アクセスコントローラが、
ファイルシステム又は使用するＡＣＬの種別を第二種から第一種へ切替えることの切替え指示を受信し、
前記切替え指示に応答して前記ファイルシステム又はＡＣＬの種別を第二種から第一種に切替え、
前記ファイルシステム又は使用するＡＣＬの種別が第二種から第一種に切替えられた後に、ファイルアクセス要求を受信したことに応答して、そのファイルアクセス要求で指定されているファイルに、第一種のファイルシステムに対応した第一種のＡＣＬが対応付けられているか否かの判断を行い、前記判断の結果が否定的である場合に、そのファイルに対応した第二種のＡＣＬに基づいて第一種のＡＣＬを生成し、
前記ファイルシステム又は使用するＡＣＬの種別が第二種から第一種に切替えられた後に、指定されたエリアのＡＣＬ変換要求を受信したことに応答して、そのＡＣＬ変換要求で指定されているエリアのファイル及びディレクトリに、第一種のファイルシステムに対応した第一種のＡＣＬが対応付けられているか否かの判断を行い、前記判断の結果が否定的である場合に、そのファイル及びディレクトリに対応した第二種のＡＣＬに基づいて第一種のＡＣＬをバックグラウンドで生成し、
生成された前記第一種のＡＣＬを用いて、対応するファイルへのアクセスを制御する、
ストレージシステム。
【請求項１４】
前記アクセスコントローラが、メモリを更に備え、
前記アクセスコントローラが、前記生成した第一種のＡＣＬを、前記ファイルシステムによって管理されるファイルを含んだ論理記憶空間に書込むことが可能であるか不可能であるかを判断し、書き込み可能と判断したならば、前記論理記憶空間の基となる前記記憶装置と、前記メモリとの両方に、前記ファイルに対応付ける第一種のＡＣＬを書き込み、書き込み不可能と判断したならば、前記ファイルに対応付ける第一種のＡＣＬを、前記記憶装置に書き込まず、前記メモリに書込み、
前記アクセスコントローラが、受信したファイルアクセス要求で指定されているファイルに第一種のＡＣＬが対応付けられているか否かの判断を、前記メモリを参照することにより行い、そのファイルに対応した第一種のＡＣＬが前記メモリに記憶されていれば、その判断の結果が肯定的となる、
請求項１３記載のストレージシステム。
【請求項１５】
コンピュータの切替え部が、ファイルシステム又は使用するアクセス制御リスト（以下、ＡＣＬ）の種別を第二種から第一種に切替え、
コンピュータのＡＣＬ変換部が、前記ファイルシステム又は使用するＡＣＬの種別が第二種から第一種に切替えられた後に、ファイルアクセス要求を受信したことに応答して、そのファイルアクセス要求で指定されているファイルに、第一種のファイルシステムに対応した第一種のＡＣＬが対応付けられているか否かの判断を行い、前記判断の結果が否定的である場合に、そのファイルに対応した第二種のＡＣＬに基づいて第一種のＡＣＬを生成し、
コンピュータのＡＣＬ変換部が、前記ファイルシステム又は使用するＡＣＬの種別が第二種から第一種に切替えられた後に、指定されたエリアのＡＣＬ変換要求を受信したことに応答して、そのＡＣＬ変換要求で指定されているエリアのファイル及びディレクトリに、第一種のファイルシステムに対応した第一種のＡＣＬが対応付けられているか否かの判断を行い、前記判断の結果が否定的である場合に、そのファイル及びディレクトリに対応した第二種のＡＣＬに基づいて第一種のＡＣＬをバックグラウンドで生成し、
コンピュータのアクセス制御部が、生成された前記第一種のＡＣＬを用いて、対応するファイルへのアクセスを制御する、
アクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス制御リストを用いてファイルへのアクセスを制御する技術に関する。
【背景技術】
【０００２】
一般に、複数のクライアント（ユーザ）でファイルを共有するためにファイルサーバ（例えばＮＡＳ（Network Attached Storage））が用いられる。共有されるファイルへのアクセスは、アクセス制御リスト（以下、ＡＣＬ）を用いて制御される。ＡＣＬには、例えば、どのユーザがどのオペレーションでそのファイルにアクセスできるかなどが記述されている。
【０００３】
ＡＣＬの代表的な例としては、ＵＮＩＸ（登録商標）で用いられているＰＯＳＩＸ  ＡＣＬや、Ｗｉｎｄｏｗｓ（登録商標）で用いられているＮＴＦＳ  ＡＣＬがある。ＰＯＳＩＸは、Portable Operating System Interfaceの略であり、ＮＴＦＳは、NT FileSystemの略である。ＰＯＳＩＸ  ＡＣＬのみに対応しているファイルサーバが多いが、ＮＴＦＳ  ＡＣＬに対応しているファイルサーバもある。
【０００４】
ＰＯＳＩＸ  ＡＣＬとＮＴＦＳ  ＡＣＬは、直接の互換性がない。それ故、ＮＴＦＳ  ＡＣＬを用いたアクセス制御を行うためには、ファイルシステムを、ＰＯＳＩＸ  ＡＣＬに対応した種別のファイルシステムからＮＴＦＳ  ＡＣＬに対応した種別のファイルシステムに切り替える必要がある。具体的には、例えば、一旦、サービスを停止し（例えば、クライアントからのファイルアクセス要求の受け付けを停止し）、サービス停止中に、例えば特許文献１に開示されている手順で、ファイル毎に、切替え後のファイルシステムに対応したＮＴＦＳ  ＡＣＬを生成して対応付ける必要がある。
【０００５】
【特許文献１】特開２００５−７８６１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一般に、記憶装置に格納されているファイルの数は膨大である。このため、切替え後の種別のファイルシステムに対応したＡＣＬを生成することを全てのファイルについて行うとすると、サービスの停止時間長が長くなる。サービスの停止時間長は、なるべく短いこと、理想的にはゼロであることが望ましい。
【０００７】
従って、本発明の目的は、サービスを停止することなく切替え後の種別のファイルシステムに対応したＡＣＬでのアクセス制御を行うことができるようにすることにある。
【０００８】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【０００９】
ファイルシステムの種別の切り替えの際に全てのファイルについて切替え後の種別のファイルシステムに対応したＡＣＬを生成するのではなく、ファイルアクセス要求の受信の都度に、ファイルアクセス要求で指定されているファイルに切替え後の種別のファイルシステムに対応したＡＣＬがあるか否かを判別し、無いとの判断結果になった場合に、その指定されているファイルに対応付けられている、切替え前の種別のファイルシステムに対応したＡＣＬに基づいて、切替え後の種別のファイルシステムに対応したＡＣＬを生成し、その生成したＡＣＬを用いて、受信したファイルアクセス要求に従うアクセスを制御する。
【発明を実施するための最良の形態】
【００１０】
実施形態１では、ファイルアクセス要求を受信しそのファイルアクセス要求で指定されているファイルに対するアクセスをＡＣＬを用いて制御するアクセスコントローラが、ＡＣＬ判断部、ＡＣＬ生成部及びアクセス制御部を備える。ＡＣＬ判断部は、ファイルアクセス要求を受信したことに応答して、そのファイルアクセス要求で指定されているファイルに、第一種のファイルシステムに対応した第一種のＡＣＬが対応付けられているか否かの判断を行う。ＡＣＬ生成部は、その判断の結果が否定的である場合に、上記指定されているファイルに既に対応付けられている、第二種のファイルシステムに対応した第二種のＡＣＬに基づいて、第一種のＡＣＬを生成する。アクセス制御部は、生成された第一種のＡＣＬを用いて、上記指定されているファイルへのアクセスを制御する。この実施形態１によれば、ファイルアクセス要求の受信の都度に、指定されたファイルに第一種のＡＣＬが無ければその第一種のＡＣＬを既存の第二種のＡＣＬを基に生成し、生成した第一種のＡＣＬを用いてアクセス制御が行われる。このため、ファイルシステムの種別が第二種から第一種に切替えられても、サービスを停止することなく、第一種のＡＣＬを用いたアクセス制御を行うことが可能となる。
【００１１】
実施形態２では、実施形態１において、アクセスコントローラが、更に、ファイルシステム又は使用するＡＣＬの種別を第二種から第一種へ切替えることの切替え指示を受信する切替え指示受信部と、その切替え指示に応答してファイルシステム又はＡＣＬの種別を第二種から第一種に切替える切替え部とを備える。ＡＣＬ生成部は、ファイルシステム又は使用するＡＣＬの種別が第二種から第一種に切替えられた後、ファイルアクセス要求を受信したことに応答して行われる上記判断の結果が否定的である場合に、そのファイルアクセス要求で指定されているファイルに対応した第二種のＡＣＬに基づいて第一種のＡＣＬを生成する。
【００１２】
実施形態３では、実施形態２において、アクセスコントローラが、ファイルシステム又は使用するＡＣＬの種別を表す種別情報を記憶する記憶資源を更に備える。ＡＣＬ判断部は、その種別情報を参照することにより、現在のファイルシステム又はＡＣＬの種別を特定するよう構成されている。切替え部が、その種別情報を、第二種を表す情報から第一種を表す情報に更新することで、ファイルシステム又は使用するＡＣＬの種別を第二種から第一種に切替えることが完了する。
【００１３】
実施形態４では、実施形態１乃至３のうちのいずれかにおいて、アクセスコントローラが、メモリ（揮発性と不揮発性のどちらでも良い）を更に備える。ＡＣＬ生成部が、生成した第一種のＡＣＬを、ファイルシステムによって管理されるファイルを含んだ論理記憶空間に書込むことが可能であるか不可能であるかを判断し、書き込み可能と判断したならば、論理記憶空間とメモリの両方に、ファイルに対応付ける第一種のＡＣＬを書き込み、書き込み不可能と判断したならば、ファイルに対応付ける第一種のＡＣＬを、論理記憶空間に書き込まず、メモリに書込む。ＡＣＬ判断部が、受信したファイルアクセス要求で指定されているファイルに第一種のＡＣＬが対応付けられているか否かの判断を、メモリを参照することにより行い、そのファイルに対応した第一種のＡＣＬがメモリに記憶されていれば、その判断の結果が肯定的となる。この実施形態４によれば、例えば、クライアントからはリードを表すファイルアクセス要求を受信したにもかかわらず、ファイルシステムが論理記憶空間の容量が枯渇している等の理由で論理記憶空間に第一種のＡＣＬを書けないエラーが生じてしまっても、第一種のＡＣＬをメモリに書込みエラーをクライアントに報告しないようにすることができる。
【００１４】
実施形態５では、実施形態４において、ＡＣＬ生成部は、以下の（１）乃至（３）のいずれかの場合、
（１）生成された第一種のＡＣＬを記憶できる程の空き容量が論理記憶空間に無い場合、
（２）論理記憶空間の使用容量又は空き容量と予め設定された制限値との差が所定値の場合、
（３）読出し可能であるが書込み不可能であることを意味するアクセス属性が、論理記憶空間に対応付けられている場合、
上記生成した第一種のＡＣＬを論理記憶空間に書込むことが不可能と判断する。
【００１５】
実施形態６では、実施形態４又は５において、アクセスコントローラが、更に、ＡＣＬデステージ部を備える。ＡＣＬデステージ部は、論理記憶空間に第一種のＡＣＬを書込むことが可能になったか否かを監視し、書込むことが可能になったことを検出した場合に、メモリに記憶されている、論理記憶装置に未だ書込まれていない第一種のＡＣＬを、論理記憶空間に書込む。実施形態６によれば、論理記憶空間にいつまでも第一種のＡＣＬが書き込まれないといったことを防ぐことができる。
【００１６】
実施形態７では、実施形態１乃至３のいずれかにおいて、ＡＣＬ生成部は、ファイルシステムによって管理されるファイルを含んだ論理記憶空間に、読出し可能であるが書込み不可能であることを意味するアクセス属性が対応付けられていても、その論理記憶空間に、上記指定されているファイルに対応付ける第一種のＡＣＬを書き込む。実施形態７によれば、リードオンリーでファイルシステムがマウントされているなどの理由により論理的にクライアントからの書き込みが禁止されているような状況でも、第一種のＡＣＬが論理記憶空間に書き込まれるので、同じファイルを指定したファイルアクセス要求を受信する都度に第一種のＡＣＬを生成しなければならないといった負荷が生じるのを抑えることができる。
【００１７】
実施形態８では、実施形態１乃至７のいずれかにおいて、ＡＣＬ判断部が、ファイルアクセス要求を受け付けながら、論理記憶空間に存在する全てのファイルについて、第一種のＡＣＬが対応付けられているか否かを判断する。ＡＣＬ生成部が、否定的な判断結果が得られる都度に、否定的な判断結果に対応したファイルに対応する第二種のＡＣＬを基に、そのファイルに対応する第一種のＡＣＬを生成する。実施形態８によれば、いつまでもアクセスされないが故に第一種のＡＣＬが用意されないファイルが存在してしまうことを未然に防ぐことができる。
【００１８】
実施形態９では、実施形態１乃至８のうちのいずれかにおいて、アクセスコントローラが、ファイルシステムによって管理される論理記憶空間ついての使用容量又は空き容量の問合せを受信する容量問合せ受信部と、論理記憶空間内の全てのファイルに第一種のＡＣＬが対応付けられていると仮定した場合の使用容量又は空き容量を返答する容量返答部とを更に備える。実施形態９によれば、第一種のＡＣＬが存在するものと仮定された使用容量又は空き容量が返答されるので、第一種のＡＣＬを書き込んでいくことによりファイルシステムがいっぱいになってしまって所望のファイルが書込めないといったことを防ぐことができる。
【００１９】
実施形態１０では、実施形態１乃至９のうちのいずれかにおいて、ＡＣＬ生成部が、第一種のＡＣＬが対応付けられたファイルに対応している第二種のＡＣＬが更新された場合、更新後の第二種のＡＣＬを基にその第一種のＡＣＬを更新する。実施形態１０によれば、第二種のＡＣＬと第一種のＡＣＬとの整合性を保証することができる。
【００２０】
実施形態１１では、実施形態１乃至１０のうちのいずれかにおいて、ＡＣＬ生成部が、バックアップされたファイル及びそれに対応する第二種のＡＣＬがリストアされたことによって、第一種のＡＣＬが対応付けられているファイルが、リストアされたファイルに更新された場合、リストアされたファイルである更新後のファイルには、更新前のファイルに対応していた第一種のＡＣＬではなく、更新後のファイルに対応しておりリストアされた第二種のＡＣＬを基に生成した第一種のＡＣＬを対応付ける。実施形態１１によれば、ファイルシステム種別の切替え前にバックアップされたイメージを、ファイルシステム種別の切替え後のファイルシステムに対応したイメージとしてリストアすることができ、且つ、生成される第一種のＡＣＬを、バックアップ時点の第二種のＡＣＬに対応した第一種のＡＣＬにすることができる。
【００２１】
実施形態１２では、実施形態１乃至１１のうちのいずれかにおいて、ＡＣＬ生成部が、メモリに、生成した第一種のＡＣＬを書き込み、メモリに記憶されているその第一種のＡＣＬが規定回数以上アクセス制御部によって使用された場合に、そのメモリに記憶されている第一種のＡＣＬを、ファイルシステムによって管理されるファイルを含んだ論理記憶空間に書込む。実施形態１２によれば、第一種のＡＣＬが書き込まれる回数を抑えることができるため、論理記憶空間の基になっている記憶装置が、書込み可能回数に制限がある、読出し速度よりも書込み速度の方が遅い、及び／又は読出しのコストよりも書込みのコストの方が高いといった特徴を有する場合に有用であると考えられる。
【００２２】
上述した実施形態１乃至１２のうちの少なくとも二以上を組み合わせることができる。また、前述したＡＣＬ判断部、ＡＣＬ変換部、アクセス制御部、指示受信部、切替え部、ＡＣＬデステージ部、容量問合せ受信部及び容量返答部のうちの少なくとも一つを、ハードウェア、コンピュータプログラム又はそれらの組み合わせ（例えば一部をコンピュータプログラムにより実現し残りをハードウェアで実現すること）により構築することができる。コンピュータプログラムは、所定のプロセッサに読み込まれて実行される。また、コンピュータプログラムがプロセッサに読み込まれて行われる情報処理の際、適宜に、メモリ等のハードウェア資源上に存在する記憶域が使用されてもよい。また、コンピュータプログラムは、ＣＤ−ＲＯＭ等の記録媒体から計算機にインストールされてもよいし、通信ネットワークを介して計算機にダウンロードされてもよい。
【００２３】
以下、図面を参照して、本発明の幾つかの実施例を説明する。
【実施例１】
【００２４】
図１は、本発明の第一実施例に係るシステム全体の構成例を示す図である。
【００２５】
ＮＡＳシステム（１００）が、ＮＡＳ制御部（１２１）（例えばいわゆるＮＡＳヘッド）と、１又は複数の記憶装置（１３１）とで構成されている。記憶装置（１３１）は、例えば、一又は複数の記憶メディアドライブであっても良いし、複数の記憶メディアドライブを備えたストレージサブシステムであっても良い。
【００２６】
ＮＡＳ制御部（１２１）は、ＣＩＦＳ（Common Internet File System）に基づくファイルアクセス要求を発行するＣＩＦＳクライアント（１１１）、及びＮＦＳ（Network File System）に基づくファイルアクセス要求を発行するＮＦＳクライアント（１１３）と通信することができる。ＮＡＳ制御部（１２１）は、クライアント（１１１）又は（１１３）からファイルアクセス要求を受信し、記憶装置（１３１）の論理記憶空間（１３０）に対応した領域に記憶されている、そのファイルアクセス要求で指定されているファイルへのアクセスを、クライアント（１１１）又は（１１３）に対してサービスする。なお、図１には、ファイルサービスの例として、ＣＩＦＳとＮＦＳが記載されているが、それらに限定する必要はなく、ＦＴＰ（File
Transfer Protocol）、ＨＴＴＰ（HyperText Transfer Protocol）などの他のファイルサービスが採用されても良い。
【００２７】
また、ＮＡＳ制御部（１２１）は、マネージャが運用管理を行うために使用する計算機であるＮＡＳマネージャ（１０１）や、ＮＡＳシステム（１００）が管理するファイルをバックアップしたりリストアしたりするためのサーバであるバックアップ・リストアサーバ（１１２）と通信することもできる。
【００２８】
ＮＡＳ制御部（１２１）は、論理的に、ユーザスペースとカーネルスペースに分離される。それぞれのスペース間は、ユーザ−カーネルインターフェース（以下、インターフェースを「Ｉ／Ｆ」と略記する）を介して情報のやり取りがなされる。本実施例では、ユーザカーネルＩ／Ｆとして、ファイルシステム種別Ｉ／Ｆ（１４５）、ＡＣＬ変換Ｉ／Ｆ（１４６）及びファイルアクセスＩ／Ｆ（１４７）がある。これらのＩ／Ｆ（１４５）、（１４６）及び（１４７）は、例えば、図示しないメモリに記憶されているコンピュータプログラムであり、ＮＡＳ制御部（１２１）が備える図示しないマイクロプロセッサで実行されることによりその機能を発揮する。
【００２９】
ユーザスペースでは、ファイルシステムの種別の切替えを行うためのファイルシステム切替プログラム（１４１）、バックアップ及びリストアを行うためのバックアップ・リストアエージェント（１４２）、及び、ＣＩＦＳクライアント（１１１）からのファイルアクセス要求を処理するＣＩＦＳサーバ（１４３）が実行される。一方、カーネルスペースでは、ファイルシステムの情報を管理するファイルシステム情報管理モジュール（１２２）、ファイルアクセスをサービスするファイルアクセスモジュール（１２３）、ＡＣＬ変換を行うＡＣＬ変換モジュール（１２６）、及びＮＦＳクライアント（１１３）からのファイルアクセス要求を処理するＮＦＳサーバ（１４４）が動作している。これらのコンピュータプログラム（１４１）、（１４２）、（１４３）、（１２２）、（１２３）、（１２６）及び（１４４）は、例えば、図示しないメモリに記憶されており、ＮＡＳ制御部（１２１）が備える図示しないマイクロプロセッサで実行されることによりその機能を発揮する。ＡＣＬキャッシュ管理モジュール（１２５）は、ＡＣＬキャッシュ（１２７）を管理し、ファイルシステム情報管理モジュール（１２２）は、ファイルシステム情報（１２８）を管理している。ＡＣＬキャッシュ（１２７）は、例えば、揮発性（又は不揮発性）のキャッシュメモリ又はそのキャッシュメモリの一部である。ファイルシステム情報（１２８）は、図示しないメモリに記憶され、例えば、ファイルシステムの種別を表す情報を含んでいる。
【００３０】
記憶装置（１３１）には、ファイルシステムの種別を表すファイルシステム種別情報（１３２）が記憶されている。本実施例では、ＰＯＳＩＸ  ＡＣＬを使用したアクセス制御からＮＴＦＳ  ＡＣＬを使用したアクセス制御を行う環境とするために、便宜上、ＰＯＳＩＸ  ＡＣＬに対応したファイルシステムの種別を「旧型」と呼び、ＮＴＦＳ  ＡＣＬに対応したファイルシステムの種別を「新型」と呼ぶ。ファイルシステム種別情報（１３２）は、現在のファイルシステムの種別が旧型か新型かを表す。
【００３１】
また、記憶装置（１３１）における、ファイルシステムによって管理される論理記憶空間（１３０）に相当する記憶領域には、１つ以上のファイル（１４０）が記憶される。ファイル（１４０）は、例えば、ファイルメタデータ（１３６）と、ファイル本体（１３５）と、ＰＯＳＩＸ  ＡＣＬ（１３４）及び／又はＮＴＦＳ  ＡＣＬ（１３３）とで構成される。図１に示したファイル（１４０）は、ファイルシステムの種別が旧型から新型に切替えられた後、そのファイル（１４０）を指定したファイルアクセス要求が過去に受信されたことがあるため、ＰＯＳＩＸ  ＡＣＬ（１３４）だけでなく、そのＰＯＳＩＸ  ＡＣＬ（１３４）を基に生成されたＮＴＦＳ  ＡＣＬ（１３３）を含んでいる。しかし、全てのファイル（１４０）が、ＰＯＳＩＸ  ＡＣＬ（１３４）とＮＴＦＳ  ＡＣＬ（１３３）の両方を含んでいるとは限らず、どちらか一方を含んでいないことがある。
【００３２】
図１１Ａは、ファイルメタデータ、ＰＯＳＩＸ  ＡＣＬ及びＮＴＦＳ  ＡＣＬで構成されたファイル部分の例を示す。
【００３３】
参照符号８０１が、そのデータ部分である。参照符号８１１は、属性の名前を示し、属性の名前を示すデータ要素としては、参照符号８２１、８３１、８４１、８５１及び８６１にそれぞれ示すデータ要素がある。参照符号８１２は、属性の実際の値を示し、属性の値を示すデータ要素としては、参照符号８２２、８３２、８４２、８５２及び８６２にそれぞれ示すデータ要素がある。ファイルメタデータを構成するデータ要素は、参照符号８２１、８２２、８３１、８３２、８４１及び８４２にそれぞれ示すデータ要素である。ＰＯＳＩＸ  ＡＣＬを構成するデータ要素は、参照符号８５１及び８５２にそれぞれ示すデータ要素である。ＮＴＦＳ  ＡＣＬを構成するデータ要素は、参照符号８６１及び８６２にそれぞれ示すデータ要素である。
【００３４】
図１１Ｂ及び図１１Ｃは、ファイルシステム種別情報（１３２）の構成例を示す。
【００３５】
図１１Ｂによれば、ファイルシステム種別情報（１３２）は、ＰＯＳＩＸ  ＡＣＬに対応したファイルシステム、つまり旧型を表す。ファイルシステムの種別の切り替えが行われると、ファイルシステム種別情報（１３２）は、図１１Ｂに示した情報から、図１１Ｃに示す情報、すなわち、ＮＴＦＳ  ＡＣＬに対応したファイルシステム、つまり新型を表す情報に更新される。
【００３６】
以下、本実施例で行われる処理の流れを説明する。なお、以下の説明において、コンピュータプログラムが主語になる場合は、実際にはそのコンピュータプログラムを実行するマイクロプロセッサ（例えばＣＰＵ）によって処理が行われるものとする。
【００３７】
図２Ａは、ファイルシステム種別切替えのフローチャートである。なお、参照符号における“Ｓ”は、“ステップ”の略である。
【００３８】
ファイルシステム種別の切替えは、例えば、ＰＯＳＩＸ  ＡＣＬを用いてアクセス制御をおこなっていたファイルシステムの種別をＮＴＦＳ  ＡＣＬを用いたアクセス制御を行うファイルシステムの種別に移行する場合に行われる。つまり、旧型から新型への切替えの場合に行われる（なお、逆に、新型から旧型への切り替えにも適用されても良い）。
【００３９】
Ｓ２０１で、ファイルシステム種別切替えプログラム（１４１）が、ＮＡＳマネージャ１０１（又は他の装置）から、ファイルシステムを旧型から新型へ切替えることの切替え指示を受信し、その切替え指示に応答して、ファイルシステム種別Ｉ／Ｆ（１４５）を呼び出す。ファイルシステム種別Ｉ／Ｆ（１４５）は、ファイルシステム情報管理モジュール（１２２）を呼び出す。ファイルシステム情報管理モジュール（１２２）が、指定されたファイルシステムのファイルシステム種別を更新する。具体的には、ファイルシステム情報管理モジュール（１２２）が、ファイルシステム種別情報（１３２）を、「ＰＯＳＩＸ  ＡＣＬ使用ファイルシステム」と記録されている情報（つまり図１１Ｂに示した情報）から、「ＮＴＦＳ  ＡＣＬ使用ファイルシステム」と記録されている情報（つまり図１１Ｃに示した情報）に更新する。また、ファイルシステム情報管理モジュール（１２２）は、更新後のファイルシステム種別情報（１３２）を含んだファイルシステム情報（１２６）を、図示しないメモリにキャッシュとして書込む。
【００４０】
本実施例では、このように、ファイルシステム種別情報（１３２）が更新されるだけで、ファイルシステムの種別の切替えの完了となる。そして、この後は、後述するように、ファイルアクセス要求を受信する都度に、そのファイルアクセス要求で指定されているファイルにＮＴＦＳ  ＡＣＬ（１３３）が対応付けられていなければ（含まれていなければ）、そのファイルに既に対応付けられているＰＯＳＩＸ  ＡＣＬ（１３４）がＮＴＦＳ  ＡＣＬ（１３３）に変換され（言い換えれば、ＰＯＳＩＸ  ＡＣＬ（１３４）に基づくＮＴＦＳ  ＡＣＬ（１３３）が生成され）、変換後のＮＴＦＳ  ＡＣＬ（１３３）を用いたファイルアクセス制御が実行される。なお、本実施例では、変換前のＰＯＳＩＸ  ＡＣＬ（１３４）は、変換によって無くなることなく、ファイルに対応付けられたままとなる（変換の完了の際に、変換前のＰＯＳＩＸ  ＡＣＬ（１３４）は、ＡＣＬ変換モジュール（１２６）によって削除されても良い）。
【００４１】
このように、本実施例では、ファイルアクセス要求に応答してＮＴＦＳ  ＡＣＬ（１３３）が生成されるようになっているため、いつまでもファイルアクセス要求で指定されないファイルがあると、そのファイルについては、いつまでもＮＴＦＳ  ＡＣＬ（１３４）が対応付けられないことになる。
【００４２】
そこで、本実施例では、ファイルアクセス要求に応答してＮＴＦＳ  ＡＣＬ（１３３）を生成する状態と並行して（つまり、ファイルアクセス要求を受け付けたまま）、いわゆるバックグラウンドで、指定された論理記憶空間内の全てのファイルを走査し、ファイルにＮＴＦＳ  ＡＣＬ（１３３）が無ければ、そのファイルに対応付けられているＰＯＳＩＸ  ＡＣＬ（１３４）をＮＴＦＳ  ＡＣＬ（１３３）に変換する処理が行われる。
【００４３】
図２Ｂは、バックグラウンドでのＡＣＬ変換処理のフローチャートを示す。図２Ｃは、ディレクトリ単位のＡＣＬ変換処理のフローチャートを示す。
【００４４】
ファイルシステム切替えプログラム（１４１）は、バックグラウンドでのＡＣＬ変換処理の指示（例えばディレクトリを指定した指示）をＮＡＳマネージャ（１０１）から受けた場合、指定されたディレクトリを、対象ディレクトリしてファイルシステムルートに設定する（Ｓ２０２）。
【００４５】
その後、ファイルシステム切替えプログラム（１４１）は、対象ディレクトリ下のファイルについて、ディレクトリ単位のＡＣＬ変換処理を実施する（Ｓ２１０）。ＡＣＬ変換処理では、図２Ｃに示すように、対象ディレクトリ内の全てのファイルとディレクトリに対して、Ｓ２１２乃至Ｓ２１５までの手順が繰り返される（Ｓ２１１）。
【００４６】
ファイルシステム切替えプログラム（１４１）が、ＡＣＬ変換Ｉ／Ｆ（１４６）を呼び出し（Ｓ２１２）、ＡＣＬ変換Ｉ／Ｆ（１４６）が、ＡＣＬ変換モジュール（１２６）を呼び出し、ＡＣＬ変換モジュール（１２６）が、ファイル単位のＡＣＬ変換処理を実施する（Ｓ５００）。ファイル単位のＡＣＬ変換処理の詳細は後述する。
【００４７】
次に、ファイルシステム切替えプログラム（１４１）が、対象がディレクトリかどうかを判断し（Ｓ２１３）、ディレクトリであった場合は、ディレクトリ単位のＡＣＬ変換処理を再帰的に実行する。具体的には、ファイルシステム切替えプログラム（１４１）が、そのディレクトリを対象ディレクトリとして設定し（Ｓ２１４）、Ｓ２１０の処理を再帰的に呼び出す。対象がディレクトリでなかった場合は、Ｓ２１１に戻って、別のファイルに対するファイル単位のＡＣＬ変換処理が実行される。
【００４８】
図２ＢのＳ２０２で設定されたディレクトリ下に存在する全てのファイルとディレクトリについて、Ｓ２１２乃至Ｓ２１５が行われたならば、図２ＢのＳ２１０の終了となる。
【００４９】
次に、ファイルシステムの種別の切替え後、クライアント（１１１）又は（１１３）からファイルアクセス要求を受信した場合に行われる処理の流れを説明する。
【００５０】
図３は、ＣＩＦＳファイルサービスのフローチャートである。なお、ＮＦＳや他のファイルサービスに関しても実質的に同様の処理となる。
【００５１】
まず、ＣＩＦＳサーバ（１４３）が、ＣＩＦＳクライアント（１１１）よりファイルアクセス要求を受信する（Ｓ３０１）。
【００５２】
次に、ＣＩＦＳサーバ（１４３）が、ファイルアクセスＩ／Ｆ（１４７）を呼び出し、そのＩ／Ｆ（１４７）経由で、カーネルにファイルアクセス要求を発行する（Ｓ３０２）。
【００５３】
ファイルアクセスモジュール（１２３）内のアクセス制御モジュール（１２４）は、ファイルアクセス要求に応答して、そのファイルアクセス要求の発行元のＣＩＦＳクライアント（１１１）を使用するユーザ（以下、アクセスユーザ）が指定されたファイルにアクセス可能かどうかを判定する（Ｓ４００）。Ｓ４００のアクセス可否判定処理の詳細は後述するが、この判定処理において、ファイル単位のＡＣＬ変換処理も行われる。
【００５４】
Ｓ４００の判定で、アクセスが許可された場合は、ファイルアクセスモジュール（１２３）が、ファイルアクセス要求で指定されているファイルに対し、その要求に従うアクセス（例えばライト或いはリード）を実行し（Ｓ３０３）、ＣＩＦＳサーバ（１４３）が、上記発行元のＣＩＦＳクライアント（１１１）に、アクセス結果を応答する（Ｓ３０４）。アクセスが拒否された場合は、ＣＩＦＳサーバ（１４３）が、ＣＩＦＳクライアント（１１１）にエラーを応答する（Ｓ３０５）。
【００５５】
以上で、ＣＩＦＳファイルサービスが終了する。
【００５６】
図４は、図３のＳ４００であるアクセス可否判定処理のフローチャートである。
【００５７】
アクセス制御モジュール（１２４）が、ファイルシステム情報管理モジュール（１２２）を呼び出してファイルシステム情報（１２８）を参照する事により、現在のファイルシステムの種別を判断する（Ｓ４０１）。
【００５８】
Ｓ４０１において、旧型（ＰＯＳＩＸ  ＡＣＬを用いているファイルシステム）と判定された場合は、アクセス制御モジュール（１２４）は、ファイルアクセス要求で指定されているファイルに対するアクセスの可否を、そのファイルに既存のＰＯＳＩＸ  ＡＣＬを用いて判定する（Ｓ４０２）。
【００５９】
一方。Ｓ４０１において、新型（ＮＴＦＳ  ＡＣＬを用いているファイルシステム）と判定された場合は、アクセス制御モジュール（１２４）は、ＡＣＬキャッシュ管理モジュール（１２５）を呼び出してＡＣＬ取得処理を実行させる。
【００６０】
ＡＣＬキャッシュ管理モジュール（１２５）は、ＡＣＬキャッシュ（１２７）上にＮＴＦＳ  ＡＣＬがあるかどうかを判断する（Ｓ４０３）。
【００６１】
Ｓ４０３において、ＡＣＬキャッシュ（１２７）上にＮＴＦＳ  ＡＣＬがあるとの判断になれば、アクセス制御モジュール（１２４）が、そのＮＴＦＳ  ＡＣＬを用いて、ファイルアクセス要求で指定されているファイルに対するアクセスの可否を判定する（Ｓ４０５）。
【００６２】
Ｓ４０３において、ＡＣＬキャッシュ（１２７）上にＮＴＦＳ  ＡＣＬがないとの判断になれば、アクセス制御モジュール（１２４）が、ファイル単位のＡＣＬ変換処理（Ｓ５００）を実行する（そのＡＣＬ変換処理（Ｓ５００）は、図２Ｃで呼び出される処理と同様であり、次の、図５で詳細に説明する）。その後、ＡＣＬキャッシュ管理モジュール（１２５）が、変換後のＮＴＦＳ  ＡＣＬ（もしくは、既に変換済みで記憶装置（１３１）に格納されていたＮＴＦＳ  ＡＣＬ）を、ＡＣＬキャッシュ（１２７）に書込む（Ｓ４０４）。
【００６３】
以上で、ＡＣＬ取得処理が終了する。そして、次のＳ４０５では、その書き込まれたＮＴＦＳ  ＡＣＬを用いたアクセス可否判定が行われる。
【００６４】
以上により、アクセス可否判定処理（Ｓ４００）が終了する。
【００６５】
次に、図５を参照して、ファイル単位のＡＣＬ変換処理（Ｓ５００）を説明する。
【００６６】
まず、ＡＣＬ変換モジュール（１２６）が、ファイル（以下、この図５の説明において「対象ファイル」と言う）にロックをかける（Ｓ５０１）。
【００６７】
次に、ＡＣＬ変換モジュール（１２６）が、ファイル単位のＡＣＬ変換処理が上書き変換フラグつきで呼ばれているかを判断する（Ｓ５０２）。上書きフラグつきで呼ばれるケースは、後述するように、バックアップ・リストアエージェント（１４２）がリストア指示を受けたケースである。この場合、Ｓ５０３の処理をスキップし、Ｓ５０４の処理に進む。
【００６８】
上書きフラグつきでない通常ケースでは、ＡＣＬ変換モジュール（１２６）が、記憶装置（１３１）に、対象ファイルにＮＴＦＳ  ＡＣＬが対応付けられているか否かを判断する（Ｓ５０３）。対応付けられているとの判断になれば、ＡＣＬ変換モジュール（１２６）は、対象ファイルのロックを外して（Ｓ５０７）、ファイル単位のＡＣＬ変換処理を終了する。対応付けられていないとの判断になれば、ＡＣＬ変換モジュール（１２６）は、Ｓ５０４の処理に進む。なお、Ｓ５０３では、ＮＴＦＳ  ＡＣＬがあるかどうかを、ＮＴＦＳ  ＡＣＬを記憶装置からサーチすることにより判断しても良いし、対象ファイルのファイルメタデータにＮＴＦＳ  ＡＣＬ有りを表すフラグがあるかどうかにより判断しても良い。
【００６９】
Ｓ５０３において、対象ファイルにＮＴＦＳ  ＡＣＬが対応付けられていないとの判断になれば、アクセス制御モジュール（１２４）が、記憶装置（１３１）から、対象ファイルに対応付けられているＰＯＳＩＸ  ＡＣＬを読み出す（Ｓ５０４）。
【００７０】
次に、ＡＣＬ変換モジュール（１２６）が、その読み込んだＰＯＳＩＸ  ＡＣＬを、ＮＴＦＳ  ＡＣＬに変換する（Ｓ５０５）。
【００７１】
そして、ＡＣＬ変換モジュール（１２６）が、そのＮＴＦＳ  ＡＣＬを、記憶装置（１３１）に書込む必要があるかどうかを判断する（Ｓ６００）。この書込み要否判定処理の詳細は後述する。
【００７２】
書き込み要否判定処理にて、書き込みが必要と判断された場合、ＡＣＬ変換モジュール（１２６）が、Ｓ５０５での変換後のＮＴＦＳ  ＡＣＬを、記憶装置（１３１）に書き込む（Ｓ５０６）。具体的には、ＡＣＬ変換モジュール（１２６）が、記憶装置（１３１）内の対象ファイルに、変換後のＮＴＦＳ  ＡＣＬを対応付ける。その後、Ｓ５０７の処理に進む。
【００７３】
書き込み要否判定処理にて、書き込み不要と判定された場合、ＡＣＬ変換モジュール（１２６）は、Ｓ５０７の処理に進む。
【００７４】
Ｓ５０７では、ＡＣＬ変換モジュール（１２６）が、対象ファイルのロックを外す（Ｓ５０７）。
【００７５】
以上により、ファイル単位のＡＣＬ変換処理の終了となる。なお、ファイル単位のＡＣＬ変換処理に、Ｓ５０５での変換後のＮＴＦＳ  ＡＣＬをＡＣＬキャッシュ（１２７）に書込む処理が含まれていても良い。また、クライアント（１１１）又は（１１３）からのファイルアクセス要求に応答して行われるファイル単位のＡＣＬ変換処理と、バックグラウンドでのファイル単位のＡＣＬ変換処理は、並行して実行されるため、同一ファイル（またはディレクトリ）に対して、ほぼ同時に複数のＡＣＬ変換要求が発生する可能性がある。しかし、本実施例では、対象ファイルがロックされてからアンロックされるまでの間は、ただ一つのプロセスのみが、対象ファイルに対応するＰＯＳＩＸ  ｓＡＣＬにアクセスすることが許可されるため、ＰＯＳＩＸ  ＡＣＬに矛盾が生じることを防ぐことができる。
【００７６】
次に、図６を参照して、書き込み要否判定処理（Ｓ６００）の詳細を説明する。
【００７７】
Ｓ６０１で、ＡＣＬ変換モジュール（１２６）が、ファイルシステム情報（１２８）を参照し、対象ファイルを管理するファイルシステム（以下、対象ファイルシステム）がリードオンリーでマウントされているかどうかを判断する。リードオンリーマウントであった場合には、ＡＣＬ変換モジュール（１２６）が、書き込み不要と判断し（Ｓ６０５）、処理を終了する。リードオンリーマウントでなければ、Ｓ６０２に進む。なお、リードオンリーでマウントとは、対象ファイルシステムに、リードオンリー（読出し可能であるが書込み不可能）であることを表すアクセス属性が対応付けられていることを意味する。
【００７８】
Ｓ６０２で、ＡＣＬ変換モジュール（１２６）が、対象ファイルシステムが枯渇している（具体的には、例えば、対象ファイルシステムが管理する全てのファイルを含んだ論理記憶空間の空き容量がゼロではないが所定量でありほぼ枯渇している、又はゼロのため完全に枯渇している（ファイルシステムフル））かどうかを判断する。枯渇しているとの判断になれば、ＡＣＬ変換モジュール（１２６）が、書き込み不要と判断し（Ｓ６０５）、処理を終了する。枯渇していないとの判断になれば、Ｓ６０３に進む。
【００７９】
Ｓ６０３で、ＡＣＬ変換モジュール（１２６）が、対象ファイルシステムが管理する論理記憶空間の使用率と対象ファイルのクォータ上限値との差が所定値であるかどうか、例えば、その使用率が対象ファイルのクォータの上限値に近い（もしくは上限値に達しているかどうか）を判断する。クォータ上限値に近い（又は達している）との判断になれば、ＡＣＬ変換モジュール（１２６）が、書き込み不要と判断し（Ｓ６０５）、処理を終了する。そのような判断にならなければ、ＡＣＬ変換モジュール（１２６）が、書き込みが必要と判断し（Ｓ６０４）、処理を終了する。
【００８０】
本実施例では、図５に示したように、書き込み要否判定処理（Ｓ６００）を、ＮＴＦＳ  ＡＣＬを実際に書き込む（Ｓ５０６）前に実施しているが、記憶装置（１３１）への書き込みを行った際に、特定のエラーを無視するようにしても実現できる。例えば、リードオンリーファイルシステム（ＥＲＯＦＳ）、ファイルシステムフル（ＥＮＯＳＰＣ）、クォータ（ＥＤＱＵＯＴ）の書き込みエラーを無視するようにすればよい。
【００８１】
以上、上述した説明によれば、ＮＴＦＳ  ＡＣＬが対応付けられていないファイルを指定したファイルアクセス要求をクライアント（１１１）又は（１１３）から受信しても、その要求に応答して、そのファイルに対応付けられているＰＯＳＩＸ  ＡＣＬをＮＴＦＳ  ＡＣＬに変換し、そのＮＴＦＳ  ＡＣＬを用いてアクセス制御を行うことができる。また、クライアント（１１１）又は（１１３）からアクセスされないファイルについては、バックグラウンドでのＡＣＬ変換処理によって、ＮＴＦＳ  ＡＣＬを用意することができる。
【００８２】
図１０は、リストア処理のフローチャートを示す。
【００８３】
バックアップ・リストアエージェント（１４２）は、アーカイブイメージ（バックアップイメージ）を指定したリストア指示をバックアップ・リストアサーバ（１１２）から受信した場合、そのアーカイブイメージにおける全てのファイルと全てのティレクトリについて、以下のＳ１００２乃至Ｓ５００の処理が繰り返される。
【００８４】
すなわち、バックアップ・リストアエージェント（１４２）は、ファイルアクセスＩ／Ｆ（１４７）を介してファイルアクセスモジュール（１２３）を呼び出し、アクセス制御モジュール（１２４）が、リストア対象のディレクトリ又はファイルを、例えば記憶装置１３１内に作成する（Ｓ１００２）。ファイルの場合は、アクセス制御モジュール（１２４）は、Ｓ１００２で作成したファイルに、ファイル本体をリストアする（Ｓ１００３）。また、アクセス制御モジュール（１２４）は、Ｓ１００２で作成したファイルに、対応付けられているＰＯＳＩＸ  ＡＣＬやファイルメタデータもリストアする（Ｓ１００４）。
【００８５】
次に、バックアップ・リストアエージェント（１４２）は、ＡＣＬ変換Ｉ／Ｆ（１４５）を上書き変換フラグ付きで呼ぶ（Ｓ１００５）。
【００８６】
ＡＣＬ変換モジュール（１２６）が、ファイル単位のＡＣＬ変換処理（Ｓ５００）を実行する。ここで前述したとおり、上書き変換フラグ付きであるため、図５のＳ５０２でＹＥＳとなり、Ｓ５０３が行われることなく、Ｓ５０４の処理が実行される。このとき、ＰＯＳＩＸ  ＡＣＬはアーカイブイメージから取得済みのため、Ｓ５０２でＹＥＳとなった場合には、Ｓ５０４をスキップしてＳ５０５が行われても良い。そして、ＮＴＦＳ  ＡＣＬへの変換は、アーカイブイメージから取得されたＰＯＳＩＸ  ＡＣＬに基づいて行われる。バックアップ取得時のＰＯＳＩＸ  ＡＣＬに対応したＮＴＦＳ  ＡＣＬを生成するためである。Ｓ５０３が行われていないため、記憶装置（１３１）に、リストアによって上書きされるファイルが存在し、且つ、そのファイルに既にＮＴＦＳ  ＡＣＬが対応付けられていたとしても、リストアされたファイルには、その既存のＮＴＦＳ  ＡＣＬではなく、バックアップ時のＰＯＳＩＸ  ＡＣＬを基に生成されたＮＴＦＳ  ＡＣＬが対応付けられる。
【００８７】
以上のリストア処理により、旧型ファイルシステム（ＰＯＳＩＸ  ＡＣＬに対応したファイルシステム）で管理されていたファイルを含むバックアップイメージを、新型ファイルシステム（ＮＴＦＳ  ＡＣＬに対応したファイルシステム）で管理されるファイルを含んだイメージとしてリストアすることが可能となる。
【実施例２】
【００８８】
以下、本発明の第二実施例を説明する。その際、第一実施例との相違点を主に説明し、第一実施例との共通点については説明を省略或いは簡略する（これは、後述の第三実施例乃至第五実施例についても同様である）。
【００８９】
第一実施例の書き込み要否判定処理では、ファイルシステムがリードオンリーマウントファイルシステムであった場合には、変換後のＮＴＦＳ  ＡＣＬが記憶装置（１３１）に書き込まれないが、それに代えて、以下のように処理することもできる。
【００９０】
図７は、本発明の第二実施例での書き込み要否判定処理のフローチャートである。
【００９１】
ＡＣＬ変換モジュール（１２６）が、ファイルシステム情報（１２８）を参照し、対象ファイルシステムがリードオンリーマウントされているかを判断する（Ｓ７０１）。リードオンリーマウントであった場合には、次に、ＡＣＬ変換モジュール（１２６）が、記憶装置（１３１）が書き込み可能なデバイスかどうかを判断する（Ｓ７０２）。ここで、書き込み可能なデバイスとは、例えは、ハードディスクやフラッシュメモリなどの書き換え可能型のデバイスがある。一方、書き込み不可能なデバイスとは、例えば、ＣＤ−ＲＯＭなどのライトワンス型のデバイスがある。
【００９２】
ファイルシステムがリードオンリーマウントでない場合や、リードオンリーマウントであっても記憶装置（１３１）が書き込み可能なデバイスであった場合には、ＡＣＬ変換モジュール（１２６）が、書き込み必要と判断し（Ｓ７０３）、処理を終了する。一方、リードオンリーマウントでかつ記憶装置（１３１）が書き込み不可能なデバイスであった場合には、ＡＣＬ変換モジュール（１２６）が、書き込み不要と判断し（Ｓ７０４）、処理を終了する。なお、リードオンリーマウントであり記憶装置（１３１）が書込み可能なデバイスであっても、ファイルシステムフル等の他の要因で書込み不要と判断されても良い。
【００９３】
ファイルシステムがリードオンリーマウントであるというのは、論理的に書込み不可能となっているのであって、物理的に書込み不可能となっているわけではない。本実施例では、リードオンリーマウントであっても記憶装置（１３１）が書込み可能なデバイスであれば、変換後のＮＴＦＳ  ＡＣＬを記憶装置（１３１）が書き込まれる。ファイルシステムがリードオンリーマウントであれば、ファイルアクセス要求で指定されているファイルが書き込まれるのは、アクセス制御モジュール（１２４）によって禁止することが可能である。つまり、リードオンリーマウントに従ってファイル本体の書込みを禁止しつつ、ＮＴＦＳ  ＡＣＬについては、リードオンリーマウントを無視して記憶装置（１３１）に書込むことが可能である。
【実施例３】
【００９４】
図８は、本発明の第三実施例での書き込み要否判定処理のフローチャートである。
【００９５】
ＡＣＬ変換モジュール（１２６）が、ファイルのアクセス統計情報（ファイルのアクセス回数などの統計を表す情報であり、例えばファイルのアクセスの都度に更新される情報）を参照し、ファイルのアクセス回数が規定回数（例えば１０回）に達したかどうかを判断する（Ｓ８０１）。
【００９６】
ＡＣＬ変換モジュール（１２６）は、アクセス回数が規定回数未満の場合は、書き込み不要と判断し（Ｓ８０３）、処理を終了する。一方、ＡＣＬ変換モジュール（１２６）は、アクセス回数が規定回数以上の場合は、書き込み必要と判断し（Ｓ８０２）、処理を終了する。
【００９７】
このようにすることで、アクセスが数回しか発生しないファイルに関しては、変換後のＮＴＦＳ  ＡＣＬを記憶装置（１３１）に書き込まない事で、空き容量を圧迫することを防止することができる。また、記憶装置（１３１）が、フラッシュメモリ等のように、書き込み速度が遅い及び／又は書き込み可能回数に制限があるデバイスで構成されている場合には、この第三実施例は有用である。
【００９８】
第一実施例乃至第三実施例で説明した書き込み要否判定処理は組み合わせて用いることも可能である。例えば、第三実施例での書込み要否判定処理において、第一実施例での書込み要否判定処理におおけるクォータ上限値チェックが行われても良い。
【実施例４】
【００９９】
本発明の第四実施例では、書き込み要否判定処理において、書き込み不要と判断されたＮＴＦＳ  ＡＣＬ（以下、「ダーティのＮＴＦＳ  ＡＣＬ」と言う）のうち、書き込み阻害要因が解消したダーティのＮＴＦＳ  ＡＣＬは、記憶装置（１３１）に書き込まれる。第四実施例では、第一及び第二のキャッシュフラッシュデーモン処理が行われる。
【０１００】
図９Ａは、第一のキャッシュフラッシュデーモン処理のフローチャートである。
【０１０１】
ＡＣＬキャッシュ管理モジュール（１２５）が、ダーティのＮＴＦＳ  ＡＣＬがＡＣＬキャッシュ（１２７）に存在しているかどうかを判定する（Ｓ９０１）。存在しないとの判定になった場合、ＡＣＬキャッシュ管理モジュール（１２５）が、一定時間（例えば５分）スリープし（Ｓ９０２）、再びＳ９０１を行う。
【０１０２】
存在しているとの判定になった場合は、ＡＣＬキャッシュ管理モジュール（１２５）は、書き込み阻害要因が解消したかどうかを判定する（Ｓ９０３）。ここで、「書き込み阻害要因」とは、ＮＴＦＳ  ＡＣＬを記憶装置（１３１）に書込むことの阻害要因であり、具体的には、例えば、ファイルシステムが管理する論理記憶空間の容量の枯渇（例えばファイルシステムフル）、或いは、ファイルシステムが管理する論理記憶空間の使用率がクォータ上限値に近い又は達した等である。
【０１０３】
書き込み阻害要因が解消されていたとの判定になれば、ＡＣＬキャッシュ管理モジュール（１２５）が、ＡＣＬキャッシュ（１２７）上のダーティのＮＴＦＳ  ＡＣＬを記憶装置（１３１）に書き込み（Ｓ９０４）、Ｓ９０１へ処理を戻す。
【０１０４】
書き込み阻害要因が解消されていないとの判定になれば、ＡＣＬキャッシュ管理モジュール（１２５）が、ＡＣＬキャッシュ（１２７）上のダーティのＮＴＦＳ  ＡＣＬを記憶装置（１３１）には書き込まず、Ｓ９０２へ処理を移し、Ｓ９０１へ戻る。
【０１０５】
以上の第一のキャッシュフラッシュデーモン処理によれば、いわゆるポーリング方式で行われる。つまり、定期的に、書込み阻害要因が解消したかどうかをチェックし、解消されている場合に、ダーティのＮＴＦＳ  ＡＣＬが、記憶装置（１３１）に書き込まれる。
【０１０６】
それに対し、第二のキャッシュフラッシュデーモン処理は、いわゆるイベントドリブン方式の処理である。第四実施例では、第一及び第二のキャッシュフラッシュデーモン処理の一方又は双方を採用することができる。
【０１０７】
図９Ｂは、第二のキャッシュフラッシュデーモン処理のフローチャートである。
【０１０８】
特定のイベント、例えば、「対象ファイルシステムが管理する論理記憶空間からオブジェクト（例えば、ファイル又はその中のＡＣＬ等）が削除された」というイベントを契機に、第二のキャッシュフラッシュデーモン処理が開始される。
【０１０９】
ＡＣＬキャッシュ管理モジュール（１２５）は、Ｓ９０１と同様に、ダーティのＮＴＦＳ  ＡＣＬがＡＣＬキャッシュ（１２７）に存在するかどうかを判断し（Ｓ９１１）、存在しないとの判断になれば、処理を終了する。
【０１１０】
一方、存在するとの判断になれば、ＡＣＬキャッシュ管理モジュール（１２５）は、Ｓ９０３と同様に、書き込み阻害要因が解消されたかどうかを判断する（Ｓ９１２）。阻害要因が解消されていないとの判断になれば、ＡＣＬキャッシュ管理モジュール（１２５）が、処理を終了する。
【０１１１】
阻害要因が解消されているとの判断になれば、ＡＣＬキャッシュ管理モジュール（１２５）は、Ｓ９０4と同様に、ダーティのＮＴＦＳ  ＡＣＬを記憶装置（１３１）に書き込む（Ｓ９１３）。そしてＳ９１１に戻る。
【０１１２】
図９Ａ及び／又は図９Ｂを参照して説明した処理は、第一実施例乃至第三実施例のうちの少なくとも一つで行われても良い。
【実施例５】
【０１１３】
図１２は、本発明の第五実施例で行われる容量回答処理のフローチャートである。
【０１１４】
容量回答処理とは、ファイルシステムが管理する論理記憶空間の使用量又は空き容量の問合せをＮＡＳマネージャ（１０１）、或いはクライアント（１１１）又は（１１３）から受信した場合に実行される処理であり、問合せに応答して、その使用量又は空き容量を回答する処理である。例えば、アクセス制御モジュール（１２４）が、その問合せで指定されている論理記憶空間の現在の使用量（又は空き容量）をファイルシステムを基に特定し、且つ、ＮＴＦＳ  ＡＣＬの無いファイル（以下、無しファイル）を特定する（Ｓ１２０１）。そして、アクセス制御モジュール（１２４）は、現在の使用量に、一以上の無しファイルにそれぞれ対応した一以上のＮＴＦＳ  ＡＣＬの総量を加算した値（又は、現在の空き容量から、一以上の無しファイルにそれぞれ対応した一以上のＮＴＦＳ  ＡＣＬの総量を減算した値）を、問合せの発行元に回答する（Ｓ１２０２）。これにより、実際にＮＴＦＳ  ＡＣＬを作成して論理記憶空間に書込む際に、論理記憶空間が枯渇してしまっていることを未然に防ぐことが期待できる。
【０１１５】
図１２を参照して説明した処理は、第一実施例乃至第四実施例のうちの少なくとも一つにおいても行うことが可能である。
【実施例６】
【０１１６】
図１３は、本発明の第六実施例で行われるＮＴＦＳ  ＡＣＬの更新処理のフローチャートである。
【０１１７】
ＡＣＬ変換モジュール（１２６）は、ＰＯＳＩＸ  ＡＣＬが更新されたことを契機に、この処理を開始する。ＡＣＬ変換モジュール（１２６）は、更新されたＰＯＳＩＸ  ＡＣＬが対応付けられているファイルに、ＮＴＦＳ  ＡＣＬが対応付けられていれば（Ｓ１３０１でＹＥＳ）、更新後のＰＯＳＩＸ  ＡＣＬを基に、そのＮＴＦＳ  ＡＣＬを更新する（Ｓ１３０２）。これにより、ＰＯＳＩＸ  ＡＣＬとＮＴＦＳ  ＡＣＬとの整合性を保つことができる。
【０１１８】
なお、逆に、ＮＴＦＳ  ＡＣＬが更新された場合には、それに対応するＰＯＳＩＸ  ＡＣＬが更新されても良い。この図１３に示した処理は、第一実施例乃至第六実施例の少なくとも一つで行うことができる。
【０１１９】
以上、本発明の幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、ファイルシステムが管理する論理記憶空間の全部又は一部が、ＧＮＳ（Global Name Space）の一部として組み込まれても良い。また、例えば、図５のＳ５０５において、ＮＴＦＳ  ＡＣＬの生成に失敗した場合には、その処理をやり直しても良いし、やり直さずに、ファイル単位のＡＣＬ変換処理の終了としても良い（後者の場合には、次回以降のアクセスの際に、ＮＴＦＳ  ＡＣＬが生成される）。また、例えば、バックグラウンドでのＡＣＬ変換処理において、ＮＴＦＳ  ＡＣＬの変換に失敗してその処理が異常終了した場合には、次回のバックグラウンドでのＡＣＬ変換処理において、走査済みであるか否かに関わらず全てのファイルについて走査しても良いし、前回のＡＣＬ変換処理においてＡＣＬ変換に失敗したファイル及び未走査のファイルのみを走査しても良い。
【図面の簡単な説明】
【０１２０】
【図１】図１は、本発明の第一実施例に係るシステム全体の構成例を示す図である。
【図２】図２Ａは、ファイルシステム種別切替えのフローチャートである。図２Ｂは、バックグラウンドでのＡＣＬ変換処理のフローチャートを示す。図２Ｃは、ディレクトリ単位のＡＣＬ変換処理のフローチャートを示す。
【図３】図３は、ＣＩＦＳファイルサービスのフローチャートである。
【図４】図４は、図３のＳ４００であるアクセス可否判定処理のフローチャートである。
【図５】図５は、ファイル単位のＡＣＬ変換処理のフローチャートである。
【図６】図６は、第一実施例での書き込み要否判定処理のフローチャートである。
【図７】図７は、本発明の第二実施例での書き込み要否判定処理のフローチャートである。
【図８】図８は、本発明の第三実施例での書き込み要否判定処理のフローチャートである。
【図９】図９Ａは、本発明の第四実施例での第一のキャッシュフラッシュデーモン処理のフローチャートである。図９Ｂは、第四実施例での第二のキャッシュフラッシュデーモン処理のフローチャートである。
【図１０】図１０は、リストア処理のフローチャートを示す。
【図１１】図１１Ａは、ファイルメタデータ、ＰＯＳＩＸ  ＡＣＬ及びＮＴＦＳ  ＡＣＬで構成されたファイル部分の例を示す。図１１Ｂは、ＰＯＳＩＸ  ＡＣＬに対応したファイルシステムを表すファイルシステム種別情報を示す。図１１Ｃは、ＮＴＦＳ  ＡＣＬに対応したファイルシステムを表すファイルシステム種別情報を示す。
【図１２】図１２は、本発明の第五実施例での容量回答処理のフローチャートである。
【図１３】図１３は、本発明の第六実施例で行われるＮＴＦＳ  ＡＣＬの更新処理のフローチャートである。
【符号の説明】
【０１２１】
１２１…ＮＡＳ制御部、１３１…記憶装置、１３４…ＰＯＳＩＸ  ＡＣＬ  １３５…ＮＴＦＳ  ＡＣＬ
【図１】
0004977565.tif 000002
【図２】
0004977565.tif 000003
【図３】
0004977565.tif 000004
【図４】
0004977565.tif 000005
【図５】
0004977565.tif 000006
【図６】
0004977565.tif 000007
【図７】
0004977565.tif 000008
【図８】
0004977565.tif 000009
【図９】
0004977565.tif 000010
【図１０】
0004977565.tif 000011
【図１１】
0004977565.tif 000012
【図１２】
0004977565.tif 000013
【図１３】
0004977565.tif 000014