(57)【特許請求の範囲】
【請求項１】
ファイルシステムが構築されたストレージデバイスと、
ファイルシステムに格納されたファイルに対するアクセスの可否を示すアクセス制御情報に基づいてファイルリクエストの実行可否を判定する、ファイルアクセスコントローラと、
を備えたストレージシステムであって、
前記ファイルアクセスコントローラは、複数の格納形式から所定の格納形式を特定した入力情報を受信し、
前記アクセス制御情報は：
可変長領域である前記ファイルの拡張属性領域に格納された第２のアクセス制御情報と、
固定長領域である前記ファイルの基本属性領域に格納され、前記入力情報が指定した格納形式及び前記第２のアクセス制御情報に従って生成された情報を含む第１のアクセス制御情報とを含み、
前記第２のアクセス制御情報は、
アクセス可否種別リストを構成する複数のアクセス権のデータからなり、
前記第１のアクセス制御情報は、
前記複数のアクセス権情報の一部が前記格納形式にしたがって対応したものからなり、
前記ファイルアクセスコントローラは：
（Ａ）前記ファイルへのアクセス要求を受信すると、前記指定された格納形式にしたがって、変換が必要な格納形式の場合は前記第１のアクセス制御情報を変換することで前記アクセス権のデータを取得し、前記取得したアクセス権のデータに基づいて、前記ファイルへのアクセスの可否を判定する第１の判定処理を実行し、
（Ｂ）前記第１の判定処理では前記ファイルに対するアクセス可否を判断できない場合に、前記第２のアクセス制御情報に基づいて前記ファイルへのアクセスの可否を判定する第２の判定処理を実行し、
前記複数の格納形式は：
（１）前記複数のアクセス権のデータのうち、前記アクセス制御に対して使用される頻度が高いデータの組み合わせを前記第１のアクセス制御情報とする第１の形式と、
（２）複数のアクセス権のデータのうち、一部のデータの組み合わせからなるパターンを複数設定し、各パターンに対応する情報を前記第１のアクセス制御情報とする第２の形式と、
（３）前記第１のアクセス制御情報を構成する情報量の一部に前記第１形式を適用し、残りに前記第２形式を適用する第３の形式とを含む
ことを特徴としたストレージシステム。
【請求項２】
請求項１記載のストレージシステムであって、
前記ファイルの基本属性領域は、
前記第１のアクセス制御情報を格納する第１の領域と、
前記第１のアクセス制御情報に基づく前記第１の判定処理が適用されるユーザまたはグループの情報を格納する第２の領域と、
前記格納形式の情報を格納する第３の領域と、
を有することを特徴としたストレージシステム。
【請求項３】
請求項２記載のストレージシステムであって、
前記ファイルアクセスコントローラは：
（Ａ１）前記ファイルへのアクセスリクエストのユーザが前記第１の領域の情報に含まれているか否かを判定し、
（Ａ２）この判定を肯定すると前記第１の判定処理を行い、
（Ａ３）この判定を否定すると前記第１の判定処理による前記第１の領域の参照を省略して、前記第２の判定処理を行う、
ことを特徴としたストレージシステム。
【請求項４】
請求項３記載のストレージシステムであって、
前記ファイルアクセスコントローラは：
（Ｃ）前記ファイルシステムに対して前記格納形式と、前記第１の判定処理が適用されるユーザまたはグループの情報を設定し、
（Ｄ）前記ファイルを生成する際、前記ファイルシステムに対して設定された前記情報を前記生成するファイルに適用するか、又は、前記生成するファイルの親ディレクトリに対して設定された前記格納形式と前記ユーザまたはグループの情報とを前記生成するファイルに適用するか、の選択入力を受信する、
ことを特徴としたストレージシステム。
【請求項５】
請求項４記載のストレージシステムであって、
前記ファイルアクセスコントローラは：
（Ｅ）前記第３の領域に格納された格納形式の情報を変更し、
（Ｆ）前記第１のアクセス制御情報を、変更後の格納形式、変更後のユーザまたはグループの情報、及び前記第２のアクセス制御情報、に基づいて更新し、
（Ｇ）更新後の第１のアクセス制御情報に基づいて前記第１の判定処理を実行する、
ことを特徴としたストレージシステム。
【請求項６】
請求項５記載のストレージシステムであって、
前記ファイルアクセスコントローラは、第１のアクセス制御情報に基づく前記第１の判定処理が適用されるユーザまたはグループ情報に、現在アクセスリクエスト処理中のユーザである所定のユーザの情報を追加し、前記第１のアクセス制御情報に前記所定のユーザに関するアクセス権のデータを追加する、
ことを特徴としたストレージシステム。
【請求項７】
請求項６記載のストレージシステムであって、
前記ファイルアクセスコントローラは：
（Ｈ）前記格納形式の情報及び前記第１の判定処理が適用されるユーザまたはグループの情報を、前記ファイルに対するアクセスの履歴に基づいて変更し、
（Ｉ）変更後の格納形式の情報と対象者情報に基づいて前記第１のアクセス制御情報を更新する、
ことを特徴としたストレージシステム
【請求項８】
請求項７記載のストレージシステムであって、
前記ファイルアクセスコントローラは、前記ファイルに対するアクセス回数が規定回数に到達したことを判定すると、前記第１のアクセス制御情報の更新を行う、
ことを特徴としたストレージシステム。
【請求項９】
請求項８記載のストレージシステムであって、
前記ファイルの前記基本属性領域は前記ファイルのユーザデータを格納したユーザデータ領域のブロックアドレスを示す情報を有し、
前記ファイルアクセスコントローラは、前記ファイルリクエストがリードの場合に、前記基本属性領域を参照することで、リード対象のデータが格納された前記ストレージデバイス上のブロックアドレスを特定する、
ことを特徴としたストレージシステム。
【請求項１０】
ストレージデバイスに構築されたファイルシステムに格納されたファイルに対するアクセスの可否を、アクセス制御情報に基づいて、ファイルアクセスコントローラが判定するファイルアクセス判定方法であって、
複数の格納形式から所定の格納形式を特定した入力情報を受信し、
前記アクセス制御情報の一部として、第２のアクセス制御情報を、可変長領域である前記ファイルの拡張属性領域に格納し、
前記アクセス制御情報の一部として、前記入力情報が指定した格納形式及び前記第２のアクセス制御情報に従って生成された情報を含む第１のアクセス制御情報を生成し、
生成した第１のアクセス制御情報を、固定長領域である前記ファイルの基本属性領域に格納し、
前記第２のアクセス制御情報は、
アクセス可否種別リストを構成する複数のアクセス権のデータからなり、
前記第１のアクセス制御情報は、
前記複数のアクセス権情報の一部が前記格納形式にしたがって対応したものからなり、
前記ファイルへのアクセス要求を受信すると、前記指定された格納形式にしたがって、変換が必要な格納形式の場合は前記第１のアクセス制御情報を変換することで前記アクセス権のデータを取得し、前記取得したアクセス権のデータに基づいて、前記ファイルへのアクセスの可否を判定する第１の判定処理を実行し、
前記第１の判定処理では前記ファイルに対するアクセス可否を判断できない場合に、前記第２のアクセス制御情報に基づいて前記ファイルへのアクセスの可否を判定する第２の判定処理を実行し、
前記複数の格納形式は：
（１）前記複数のアクセス権のデータのうち、前記アクセス制御に対して使用される頻度が高いデータの組み合わせを前記第１のアクセス制御情報とする第１の形式と、
（２）複数のアクセス権のデータのうち、一部のデータの組み合わせからなるパターンを複数設定し、各パターンに対応する情報を前記第１のアクセス制御情報とする第２の形式と、
（３）前記第１のアクセス制御情報を構成する情報量の一部に前記第１形式を適用し、残りに前記第２形式を適用する第３の形式とを含む
ことを特徴としたファイルアクセス判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルアクセスを制御するストレージシステム及びそのファイルアクセス判定方法に関するものである。
【背景技術】
【０００２】
一般に、あるユーザがあるファイルシステム内のあるファイルシステムオブジェクトにアクセスする際、ファイルシステムプログラムはそのユーザがそのファイルシステムオブジェクトにアクセスしてよいかどうかを判断するアクセス制御処理を実行する。ここで、ファイルシステムオブジェクトとはファイル、ディレクトリ、フォルダなどを指す。以後、特に断りのない限り、ファイルシステムオブジェクトをファイルと略称する。【０００３】
アクセス制御処理は、アクセス制御情報に基づき実行される。アクセス制御情報として代表的なものは、以下の二つである。
（１）パーミッション情報。
（２）ＡＣＬ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ：アクセスコントロールリスト）。【０００４】
パーミッション情報は、ファイルの所有者、所有グループ、その他ユーザの３種類の対象者に対しアクセス権情報を定義する。アクセス権情報は参照権（ｒ）、更新権（ｗ）、実行権（ｘ）の３種類からなる。したがって、情報量としては３×３の９ビットの固定サイズとなる。パーミッション情報に基づくアクセス制御はＵｎｉｘ(登録商標)系のＯＳで採用されてきた。パーミッション情報を採用した場合、ファイルの格納領域は以下の二つの領域が用意される。【０００５】
＊ ファイル基本属性領域
ファイル基本属性領域は固定サイズであり、ファイルの作成時刻、ファイルの更新時刻などのファイルの基本メタデータ情報が格納される。また、当該領域にはファイルのパーミッション情報が格納される。【０００６】
＊ ユーザデータ領域
ユーザデータ領域はユーザから指定されたデータが格納される。そのため、ユーザデータ領域は可変サイズである。【０００７】
一方のＡＣＬ情報は、不定数のユーザに対し、アクセス権情報の定義が可能である。またＡＣＬ情報はパーミッション情報で定義された３種類より多くの権限の定義が可能である。ＡＣＬ情報に基づいたアクセス制御を行う代表的なＯＳはＷｉｎｄｏｗｓ  ＮＴ(登録商標)である。なお、ＡＣＬ情報の具体例としては、ＰＯＳＩＸ  ＡＣＬ情報、ＮＴＦＳ  ＡＣＬ情報、ＮＦＳｖ４  ＡＣＬ情報がある。特許文献１はＡＣＬを用いたアクセス制御について開示している。【０００８】
なお、ＡＣＬ情報は様々なユーザに対するアクセス権限情報を格納することから、可変サイズの情報となる。そのため、ＡＣＬ情報を採用した場合、ファイル基本属性領域にパーミッション情報を含まない代わりに、ＡＣＬ情報を格納するファイル拡張属性領域をファイル格納領域として用意する。なお、ファイル拡張属性領域は可変サイズであり、ファイル基本属性領域に格納されないファイルのメタデータ情報が格納されることもある。【０００９】
以上に示すような高機能なアクセス制御が可能であることから、近年はＡＣＬ情報に基いたファイルアクセス制御が多く採用されている。しかし、ＡＣＬ情報に基づくアクセス制御は、処理コストが高いことが問題となる。なぜならば、パーミッション情報に基づいてアクセス制御を行う場合、ファイル基本属性領域のデータを読み込むだけでその処理を可能にするのに対し、ＡＣＬ情報に基づく場合、ファイル拡張属性領域のデータを読み込む必要があるからである。【００１０】
非特許文献１はファイル拡張属性領域に格納されたＡＣＬ情報を用いて高速なアクセス制御を実現するための高速化技術が開示されている。より具体的には、ＡＣＬ情報に含まれるファイル所有者に関する各種権限情報をファイル基本属性領域に格納し、アクセス制御処理を行う際は、最初にファイル基本属性領域中に格納された各種権限情報を参照することで、ファイル拡張属性領域への参照頻度を抑えることが開示されている。【００１１】
なお、このようにファイル基本属性領域に、ファイル拡張属性領域に格納されたＡＣＬ情報の一部を格納し、アクセス制御処理の際に先行してファイル基本属性領域に格納した各種権限情報を先行して参照するアクセス制御処理を、先行アクセス制御と呼び、このような制御を備えるファイルストレージシステムを先行アクセス制御対応ファイルストレージシステムという。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００９―７５６７２号公報
【非特許文献】
【００１３】
【非特許文献１】Ａｎｄｒｅａｓ  Ｇｒｕｅｎｂａｃｈｅｒ：  ＰＯＳＩＸ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔｓ  ｏｎ  Ｌｉｎｕｘ，  Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ＵＳＥＮＩＸ  Ａｎｎｕａｌ  Ｔｅｃｈｎｉｃａｌ  Ｃｏｎｆｅｒｅｎｃｅ  （ＦＲＥＥＮＩＸ  Ｔｒａｃｋ），  ｐｐ２５９-２７２  （２００３）．
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、非特許文献１に開示の技術では、性能が向上できる対象は、ファイルの所有者からのアクセスに限られるため、アクセス制御処理の性能を向上できる範囲が限られたものに留まっていた。そこで、本発明は、この課題を解決するために、ファイルに対するアクセスの広範な形態に適用可能であり、かつ、ファイルアクセスの制御処理の性能を向上したストレージシステムを提供することを目的とするものである。
【課題を解決するための手段】
【００１５】
前記目的を達成する本発明のストレージシステムは、可変サイズのアクセス制御情報の一部をファイルの基本属性領域に格納し、その格納形式情報をファイルの基本属性領域もしくはファイルシステムメタデータ領域に格納する。ファイルへのアクセス処理時には、格納形式情報に基づきアクセス制御情報の一部を必要に応じてアクセスマスクビット列にデコードし、先行アクセス制御処理を実行する。先行アクセス制御処理にてアクセス可否の判断が可能な場合はアクセス制御処理を行い、可否の判断ができない場合は拡張属性の情報に基づくアクセス制御処理を実行する。
【発明の効果】
【００１６】
以上説明したように、本発明によれば、ファイルに対するアクセスの広範な形態に適用可能であり、かつ、ファイルアクセスの制御処理の性能を向上したストレージシステムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】ストレージシステムを有する計算機システムの一例のブロック図である。
【図２】先行アクセス制御対応ファイルストレージシステムのハードウェアブロック図である。
【図３】先行アクセス制御対応ファイルストレージシステムの機能構成及びデータ構成を示すブロック図である。
【図４】先行アクセス制御対応ファイルストレージシステムに格納されるファイルのデータ構成を示すブロック図である。
【図５】先行アクセス制御対応ファイルストレージシステムに格納されるファイルシステムメタデータのデータ構成を示すブロック図である。
【図６】格納形式Ｓを説明するブロック図である。
【図７】ファイルに対するアクセス処理のフローチャートである。
【図８】ファイルに対するネットワークアクセスプロシージャ処理のフローチャートである。
【図９】ファイルシステム作成の運用管理画面のイメージである。
【図１０】ファイルシステム作成処理のフローチャートである。
【図１１】ファイル生成処理のフローチャートである。
【図１２】ファイルチューニング情報設定の運用管理画面イメージである。
【図１３】ファイルチューニング情報設定処理のフローチャートである。
【図１４】先行アクセス制御情報更新機能付きのアクセス処理のフローチャートである。
【図１５】ファイルレベル先行アクセス制御情報のアクセス時更新処理の第１のフローチャートである。
【図１６】ファイルレベル先行アクセス制御情報のアクセス時更新処理の第２のフローチャートである。
【図１７】アクセス履歴更新処理のフローチャートである。
【図１８】ファイルレベル先行アクセス制御情報の定期更新処理のフローチャートである。
【図１９】全アクセス制御情報の設定処理のフローチャートである。
【図２０】各格納形式の効果を比較したグラフである。
【図２１】全アクセス制御情報のデータ構成を示すブロック図である。
【図２２】先行アクセス権情報のデータ構成を示すブロック図である。
【図２３】ネットワークアクセスプロシージャ処理のフローチャートである。
【発明を実施するための形態】
【００１８】
以下に本発明に係るストレージシステムの実施形態について説明する。なお、以後の説明では「ａａａテーブル」、「ａａａリスト」、「ａａａＤＢ」、「ａａａキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、ＤＢ、キュー、等に限定されるわけではなく、これら以外のデータ構造で表現されていてもよい。そのため、データ構造に依存しないことを示すために「ａａａテーブル」、「ａａａリスト」、「ａａａＤＢ」、「ａａａキュー」等について「ａａａ情報」と呼ぶことがある。
【００１９】
さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いるが、これらについてはお互いに置換が可能である。
【００２０】
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはＣＰＵによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、ＣＰＵを主語とした説明としてもよい。また、プログラムを主語として開示された処理はプログラムを実行する計算機が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。
【００２１】
また、各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【００２２】
図１は、本発明の計算機システムのブロック図を示す。この計算機システムでは、ストレージシステムは、先行アクセス制御対応ファイルストレージとして提供されている。
【００２３】
この計算機システムでは、先行アクセス制御対応ファイルストレージシステム１０１が、一つ以上のクライアント１０４、管理端末１０３とネットワーク１０２を介して接続している。ここでネットワークとは、ＩＰネットワークや、ＦＣネットワークなどである。また管理端末とは先行アクセス制御対応ファイルストレージシステムの設定情報を変更するための計算機である。なお、管理端末１０３は入出力装置を有する。入出力装置の例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外の装置であってもよい。また、先行アクセス制御対応ファイルストレージシステム１０１が管理端末相当の役割を担うために入出力装置を有しても良い。
【００２４】
クライアント１０４は、先行アクセス制御対応ファイルストレージシステムに対してファイルアクセスリクエスト（単にアクセスリクエストと略することもある）を送信し、リクエストの種別によっては応答またはデータを受信する計算機である。なお、クライアント１０４が送信するアクセスリクエストの種別例としては以下が含まれる。ただし、ファイルストレージシステムは下記全ての種別を備える必要は無い。
【００２５】
＊  オープンリクエススト
当該リクエストはオープン対象のファイルの識別子（名前、相対パス名、絶対パス名、他のリクエストで取得したファイル識別子、等）を含む。なお当該リクエストの応答としてクライアント１０４はファイルストレージシステムからファイルハンドル識別子を受信する。なお、当該リクエストを受信したファイルストレージシステムは、ファイルハンドル識別子毎に対応するカレントポジション値と呼ばれる値を生成し、ゼロに設定する。なお、カレントポジション値は後述のリードリクエスト及びライトリクエストでデータ送信または受信を行う開始アドレスを示す値である。
【００２６】
＊  クローズリクエスト
当該リクエストはファイルハンドル識別子を含む。
【００２７】
＊  リードリクエスト
当該リクエストはリード対象のファイルを指定するために、（１）ファイルハンドル識別子、又は（２）前述のファイル識別子、を含む。また、当該リクエストは読み込み対象のユーザデータの範囲を指定するパラメータとしてリードデータ長を指定する。
【００２８】
なお、当該リクエストに応じてファイルストレージシステムは、前述のカレントポジション値が示すアドレスを開始アドレスとし、カレントポジション値にリードデータ長を加えた値を終了アドレスとしたアドレス範囲のユーザデータの一部をクライアント１０４に送信する。なお、このリードリクエストに応じて送信されるユーザデータの一部をリードデータと呼ぶことがある。なお、リードリクエストは前述の開始アドレスを指定してもよい。また、ファイルストレージシステムは当該処理完了後にカレントポジション値を更新（例えば、終了アドレスの次のアドレスに更新）してもよい。
【００２９】
＊  ライトリクエスト
当該リクエストはリード対象のファイルを指定するために、（１）ファイルハンドル識別子、又は（２）前述のファイル識別子、を含む。また、当該リクエストは書込み対象のユーザデータの範囲を指定するパラメータとしてライトデータ長を指定する。そしてクライアント１０４は、当該リクエストの後に前述のライトデータ長のサイズであるライトデータをファイルストレージシステムへ送信する。ファイルストレージシステムは、前述のカレントポジション値が示すアドレスを開始アドレスとし、カレントポジション値にライトデータ長を加えた値を終了アドレスとしたアドレス範囲のユーザデータの一部を送信されたライトデータに更新する。
【００３０】
なお、ライトリクエストは前述の開始アドレスを指定してもよい。また、ファイルストレージシステムは当該処理完了後にカレントポジション値を更新（例えば、終了アドレスの次のアドレスに更新）してもよい。
【００３１】
なお、上記各種リクエストはファイルアクセス制御を実施するためのユーザ識別子を含む。
【００３２】
図２に、先行アクセス制御対応ファイルストレージシステム１０１のハードウェア構成のブロック図を示す。先行アクセス制御対応ファイルストレージシステム１０１は、ＣＰＵ２０２、メモリコントローラ２０３、メモリ２０４、入出力コントローラ２０５、ネットワークコントローラ２０６、ネットワークポート２０７、ディスクコントローラ２０８、ディスク２０９と、を備える。
【００３３】
ＣＰＵ２０２、メモリ２０４、そして、入出力コントローラ２０５は、メモリコントローラ２０３に接続している。ネットワークコントローラ２０６とディスクコントローラは、入出力コントローラ２０５に接続する。
【００３４】
メモリ２０４は先行アクセス制御対応ファイルサーバプログラム（以後は単にファイルサーバプログラムと省略して呼ぶことがある）を格納する。なお、メモリ２０４はディスク２０９のキャッシュメモリとして用いても良い。ＣＰＵ２０２は、先行アクセス制御対応ファイルサーバプログラムを実行する。
【００３５】
ネットワークポート２０７はネットワークコントローラ２０６と外部のネットワーク１０２に接続する。ディスク（ストレージ）２０９はディスクコントローラ２０８に接続する。ディスク２０９は複数であってもよいし、ストレージシステムの外部ディスクであってもよい。
【００３６】
外部ディスクは、ストレージシステムのディスクコントローラ２０８とＦＣネットワークによって接続する形態であってもよい。なお、ディスク２０９は典型的には所定のデータ長（ブロックサイズ）を単位としてブロックレベルリード／ライトリクエストを受け付けるデバイスまたは装置である。しかし、ディスク２０９または外部ディスクはＮｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ（ＮＡＳ）であってもよい。
【００３７】
なお、ＣＰＵ２０２、メモリコントローラ２０３、メモリ２０４、入出力コントローラ２０５、ネットワークコントローラ２０６、ネットワークポート２０７、及びディスクコントローラ２０８、とをまとめてファイルアクセスコントローラと呼んでも良い。なお、ファイルアクセスコントローラはＣＰＵ２０２０、メモリ２０４、ネットワーク１０２又は／及びディスク２０９に接続可能な一つ以上のインターフェースを含むのであれば、図２以外のハードウェア形態であってもよい。ファイルアクセスコントローラは１枚の電子基盤で構成されている必要はない。
【００３８】
図３に、本発明の先行アクセス制御対応ファイルストレージシステム１０１の機能構成、及び、データ構成のブロック図を示す。
【００３９】
ファイルサーバプログラムは、図３に示すように、先行アクセス制御ファイルサービス機能３０１、先行アクセス制御対応アクセス制御情報設定機能３０２、先行アクセス制御対応ファイルシステム作成機能３０３、先行アクセス制御対応ファイル生成機能３０４、アクセス情報格納形式設定機能３０５、ファイルストレージシステム運用管理機能３０６、先行アクセス制御情報定期更新機能３０７を備えている。
【００４０】
なお、ここで説明した各種機能はプログラムに含まれるサブルーチンやコードモジュールが実体であるが、機能の一部がＣＰＵ以外のハードウェアで実現されていてもよい。また、各種機能はプログラムコートとして明確に他の機能と分離している必要は無い。
【００４１】
先行アクセス制御ファイルサービス機能３０１は、クライアントもしくはサーバ上プロセスからの、ファイルアクセスリクエストを処理する機能である。
【００４２】
先行アクセス制御対応アクセス制御情報設定機能３０２は、後述する全アクセス制御情報４１２を更新する処理や、ファイルレベル先行アクセス制御情報４１１を更新する処理を実行する機能である。本機能は、クライアントもしくはサーバ上プロセスからの、アクセス制御情報設定リクエストや、通常のファイルアクセスリクエストにおいて実行される。
【００４３】
先行アクセス制御対応ファイルシステム作成機能３０３は、ディスク２０９に先行アクセス制御に対応したファイルシステムを作成する機能である。
【００４４】
先行アクセス制御対応ファイル生成機能３０４は、クライアントもしくはサーバプロセスからの、ファイル作成リクエストを処理する機能である。
【００４５】
アクセス情報格納形式設定機能３０５は、後述するファイルレベル先行アクセス制御情報４１１を設定する際に実行する機能である。
【００４６】
ファイルストレージシステム運用管理機能３０６は、管理端末１０３から送信された入力情報に基いて、ファイルストレージシステム１０１の設定情報の生成・更新を行う機能である。また同機能はファイルストレージシステム１０１の設定情報の一部または全ての内容を管理端末１０３に送信することで、管理端末にファイストレージシステム１０１の設定内容を表示させることもできる。
【００４７】
先行アクセス制御情報定期更新機能３０７は、後述するファイルレベル先行アクセス制御情報４１１を定期的に更新する際に実行する機能である。
【００４８】
ディスク２０９上には、ファイルサーバプログラムの処理によってファイルシステムが構築される。ファイルシステムが構築されたディスク２０９は、ファイルシステムの管理用領域であるファイルシステムメタデータ領域３１０と、ファイル領域３１１が生成される。
【００４９】
図４は、本発明のファイルシステムに格納されるファイル３１１のデータの構成を示すブロック図である。ファイル３１１は、ファイル基本属性領域４０１、ファイル拡張属性領域４０２、そして、ファイルユーザデータ領域４０３を備えている。
【００５０】
また、前述の通りメモリ２０４はディスク２０９のキャッシュメモリとして用いてもよいため、「各種情報及びデータをディスクに格納する」との表現を、格納対象の情報及びデータをキャッシュメモリとして用いるメモリ２０４への一時的に格納し、その後ディスク２０９に格納することと解釈してもよい。
【００５１】
なお、ファイル基本属性領域４０１、ファイル拡張属性領域４０２、及びファイルユーザデータ領域４０３は、ファイル毎に存在することが典型的であるが、一部の情報（例えばファイルユーザデータ領域の全てまたは一部）が他のファイルの当該領域であってもよい。
【００５２】
ファイル基本属性領域４０１には、ファイルのアクセス時間（例えば最終アクセス時間、最終更新時間等）などの情報が格納される従来基本属性情報４１４に加えて、各ファイルに対応するファイルレベル先行アクセス制御情報４１１が格納される。ファイルレベル先行アクセス制御情報４１１は、ファイルレベル先行アクセス制御格納形式情報４２１、ファイルレベル先行アクセス制御対象者情報４２２、先行アクセス権情報４２３と、を備えている。４２１、４２２、４２３はそれぞれ単一エントリであってもよいし、複数の対象者のために複数エントリがあってもよい。
【００５３】
なお、従来基本属性情報４１４は、ファイル拡張属性領域４０２が格納されているディスク２０９上のブロックアドレス範囲を特定可能な情報（ファイル拡張属性領域ブロックアドレス情報）と、ファイルユーザデータ領域４０３が格納されているディスク２０９上のブロックアドレス範囲を特定可能な情報（ファイルユーザデータ領域ブロックアドレス情報）と、を含む。
【００５４】
ファイルレベル先行アクセス制御格納形式情報４２１は、先行アクセス権情報４２３やファイルレベル先行アクセス制御対象者情報４２２の格納形式を規定する。この格納形式については後述する。
【００５５】
ファイルレベル先行アクセス制御対象者情報４２２及び先行アクセス権情報４２３は、アクセス制御対象のユーザまたはグループの識別子と、対象ユーザまたはグループに対して許可または拒否すべきアクセスリクエストの種別を先行して判断可能なエントリが一つ以上格納される。
【００５６】
なお、このファイル基本属性領域とは、分類的には拡張属性であっても、基本属性と同じデータブロック（インコアメタデータ）に格納される拡張属性の格納領域も含んでもよい。そのような例としては、ＸＦＳファイルシステムのＳＨＯＲＴ−ＦＯＲＭがある。ファイル基本属性領域はファイルシステム構築時に定めたサイズに固定された領域である。
【００５７】
ファイル拡張属性領域４０２には、全アクセス制御情報４１２（単にアクセス制御情報と呼ぶことがある）と、アクセス履歴情報４１５が格納されている。全アクセス制御情報４１２は、アクセス制御対象のユーザまたはグループの識別子と、対象ユーザまたはグループに対して許可または拒否すべきアクセスリクエストであるかどうかを判断するためのアクセス権を規定したアクセス可否種別リストと、を含むエントリであるＡＣＥ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｅｎｔｒｙ）が一つ以上含まれる。なお、これまで説明してきたＡＣＬ情報が全アクセス制御情報４１２に該当する。全アクセス制御情報４１２については後ほど説明する。
【００５８】
アクセス履歴情報４１５は、対応するファイルへのアクセスをリクエストしたユーザの識別子、チェックされたアクセス可否種別リストの種類、設定されたアクセス可否種別リストの履歴が格納されている。なお、当該情報にはグループの識別子も履歴として格納してもよい。なお、アクセス履歴情報４１５に格納された識別子は、より直近の過去にファイルサーバプログラムが受信したアクセスリクエストのユーザの識別子を特定可能なデータ構造で編成されていることがより好ましい。
【００５９】
ファイルユーザデータ領域４０３には、ユーザデータ、及び／又は、ディレクトリエントリ情報４１３が格納される。より具体的には当該領域が対応するオブジェクト種別がファイルの場合はユーザデータが格納され、オブジェクト種別がディレクトリ（フォルダと呼ぶこともある）の場合はディレクトリエントリ情報が格納される。なお、ディレクトリエントリ情報とは、対応するディレクトリ配下のファイル及びディレクトリ毎の以下の情報を格納した情報である。
【００６０】
＊  配下のファイル及びディレクトリの名前
【００６１】
＊  ファイル識別子
ファイルを特定する識別子である。ファイルやディレクトリの名前、パス名は変更可能とする一方で、変更の度に別なファイルとしてファイルの各種情報を作成及び変更することは負荷が高く、またはユーザに不便をきたすため、このような識別子を設けている。
【００６２】
なお、以上の説明では説明の便宜上、ファイルレベル先行アクセス制御情報４２１の中に情報４２１、４２２、及び４２３が含まれているものと説明したが、実際のデータ構造としてファイルレベル先行アクセス制御情報４２１というグループ化を行わなくてもよい。従来基本属性情報４１４に含まれる情報についても同様である。
【００６３】
ファイルに対するリードリクエストやライトリクエストを処理するために、ファイルサーバプログラムはこれらリクエスト自体、またはこれらリクエストに先立って受信するオープンリクエストに含まれるファイルの名前、パス名に基いてディレクトリエントリ情報４１３を検索することでファイルの識別子を特定する。その後、当該プログラムは、リードリクエストやライトリクエストに応じてこのファイルの識別子で特定されるファイル基本属性領域４０１をファイル領域３１１から読み出し、ファイルユーザデータ領域ブロックアドレス情報を参照することで、実際にリード及びライトする領域を特定している。
【００６４】
図２１は、全アクセス制御情報４１２のデータ構成を示すブロック図である。全アクセス制御情報４１２は前述の通り、一つ以上のＡＣＥ４１２０（図中では単にエントリと示している）を含む。なお、当然ながら対象ファイルに対してアクセス制御を行わない場合は、対応する全アクセス制御情報４１２にはＡＣＥ４１２０が含まれない。ＡＣＥは、ユーザ・グループ識別子領域４１２１と、許可／拒否ビット領域４１２２と、ＡＣＥ継承情報領域４１２３と、前述のアクセス可否種別リストの格納領域４１２４とを含む。
【００６５】
なお、図中ではアクセス可否種別リストを格納する領域をアクセスマスクビット列フィールドと記載し、そのフィールドの中身をアクセスマスクビット列と記載している。なお、以後の説明ではアクセスマスクビット列という言葉を用いることもあるが、これはより一般的なアクセス可否種別リストと読み替えても構わないことは言うまでも無い。
【００６６】
ユーザ・グループ識別子領域４１２１は、このＡＣＥ４１２０がアクセス制御の対象とするユーザまたはグループを示す識別子を格納する領域である。
【００６７】
許可／拒否ビット領域４１２２は、アクセス可否種別リスト４１２４が許可ベースの権限記載であるのか、拒否ベースの権限記載であるのかを示す領域である。このことを別な言い方をすれば、アクセス可否種別リスト４１２４を構成するエントリが真（○）を指している場合に、その真が許可を意味するものか、拒否を意味するものなのかを示す情報である。
【００６８】
ＡＣＥ継承情報領域４１２３は、このＡＣＥの対象となるオブジェクトがディレクトリの場合に、ディレクトリ配下にファイルまたはディレクトリを生成した際に標準で当該ＡＣＥ４１２０を全アクセス制御情報４１２に含めるかどうかを示すフラグである。
【００６９】
アクセス可否種別リスト４１２４は、許可または拒否するアクセスリクエストの種別を示すリストである。当該リスト４１２４はより具体的には、アクセス制御を設定したいファイルリクエスト毎にエントリ（実際にはビット）を用意したビット列である。なお、図中では、ＮＴＦＳ  ＡＣＬを例として説明しており、各ビットの意味は以下である。
【００７０】
１．  所有者更新権（ＷＲＩＴＥ＿ＯＷＮＥＲ）
２．  アクセス制御情報更新権（ＷＲＩＴＥ＿ＤＡＣ）
３．  アクセス制御情報参照権（ＲＥＡＤ＿ＣＯＮＴＲＯＬ）
４．  削除権（ＤＥＬＥＴＥ）
５．  基本属性更新権（ＦＩＬＥ＿ＷＲＩＴＥ＿ＡＴＴＲＩＢＵＴＥ）
６．  基本属性参照権（ＦＩＬＥ＿ＲＥＡＤ＿ＡＴＴＲＩＢＵＴＥ）
７．  子ファイルシステムオブジェクト削除権（ＦＩＬＥ＿ＤＥＬＥＴＥ＿ＣＨＩＬＤ）
８．  実行権（ＦＩＬＥ＿ＥＸＥＣＵＴＥ）
９．  拡張属性更新権（ＦＩＬＥ＿ＷＲＩＴＥ＿ＥＡ）
１０．  拡張属性参照権（ＦＩＬＥ＿ＲＥＡＤ＿ＥＡ）
１１．  データ追記更新権（ＦＩＬＥ＿ＡＰＰＥＮＤ＿ＤＡＴＡ）
１２．  データ上書更新権（ＦＩＬＥ＿ＷＲＩＴＥ＿ＤＡＴＡ）
１３．  データ参照権（ＦＩＬＥ＿ＲＥＡＤ＿ＤＡＴＡ）
１４．  同期権（ＳＹＮＣＨＲＯＮＩＺＥ）
【００７１】
なお、以上の説明では全アクセス制御情報としてＮＴＦＳ  ＡＣＬを例とした説明を行ってきたが、ＮＦＳｖ４  ＡＣＬ、ＰＯＳＩＸ  ＡＣＬといったほかのＡＣＬ情報も含むことはいうまでもない。
【００７２】
図２２は、先行アクセス権情報４２３のデータ構成を示す図である。本図を用いて先行アクセス件情報４２３及びファイルレベル先行アクセス制御対象者情報について説明する。
【００７３】
前述の通り、ファイルレベル先行アクセス制御対象者情報４２２及び先行アクセス権情報４２３は、アクセス制御対象のユーザまたはグループの識別子と、対象ユーザまたはグループに対して許可または拒否すべきアクセスリクエストの種別を先行して判断可能なエントリが一つ以上格納される。このエントリは先行アクセス権情報４２３のエントリ４２３０であり、図示は省略したが、対象ユーザまたはグループの識別子がリストで格納される先がファイルレベル先行アクセス制御対象者情報４２２である。
【００７４】
エントリ４２３０は、ファイルレベル先行アクセス制御格納形式情報が示す格納形式で全アクセス制御情報のＡＣＥ４１２０を変換した情報が格納される。なお、エントリ４２３０は固定サイズである。
【００７５】
なお、以上に示す通り、先行アクセス権情報４２３は全アクセス制御情報４１２の一部のデータを持つことになるため、ファイルレベル先行アクセス制御情報４２３に格納された情報を全アクセス制御情報４１２から削除することで領域削減を行ってもよい（当然ながら行わなくてもよい）。
【００７６】
図５に、本発明のファイルシステムに格納されるファイルシステムメタデータ領域３１０（図３）のデータ構成のブロック図を示す。ファイルシステムメタデータ３１０は、従来ファイルシステムメタデータ情報５０２に加えて、ファイルシステムレベル先行アクセス制御情報５１１が格納される。ファイルシステムレベル先行アクセス制御情報５１１は、ファイルシステムレベル先行アクセス制御格納形式情報５２１とファイルシステムレベル先行アクセス制御対象者情報５２２からなる。５２１、５２２はそれぞれ単一エントリであってもよいし、複数の対象者のために複数エントリであってもよい。
【００７７】
ファイルシステムレベル先行アクセス制御格納形式情報５２１には、先行アクセス権情報４２３やファイルレベル先行アクセス制御対象者情報４２２の格納形式を規定する。
【００７８】
以後の実施形態において、図４と図５で説明した情報の使われ方を明らかにするが、一部の情報は使われないこともある。その場合、使われない情報は図４や図５の構成から除外されてもよい。
【００７９】
図４と図５において述べた「格納形式」について説明する。ファイル基本属性領域４０１の先行アクセス権情報４２３は固定サイズであるため、基本属性領域にファイル拡張属性領域の全アクセス権情報４１２のＡＣＥを格納する場合、格納できるデータ量は限られたものとなる。例えば、ＡＣＥのアクセスマスクビット列フィールド４１２４が１４ビットであるとすると、その全てを基本属性領域に格納する事が困難な場合がある。ファイル拡張属性領域からファイル基本属性領域に格納できる情報量は、先行アクセス権情報４２３のビット数によって制約を受ける。
【００８０】
そこで、ストレージシステム１０１が、アクセスマスクビット列のビット数より小さい限られたビット数をファイル拡張属性領域からファイル基本属性領域に格納し、ファイル基本属性領域の情報のみに基づいてアクセス制御処理を行って、アクセス制御処理を迅速に終了できる格納形式を複数定めておくこととした。ファイルストレージシステムの管理者及び利用者はファイルに対するアクセスの形態を事前に予測し、ファイルに最適な格納形式を設定しておくことにより、ストレージシステムは、ファイルアクセス制御処理を効率よく実行する。ＡＣＥをファイル拡張属性領域からファイル基本属性領域に格納する基本的な格納形式としては、次の５種類のものがある。
【００８１】
「格納形式Ｕ」
先行アクセス権情報として、頻繁に使用されるアクセスマスクビット列をファイル拡張属性領域からファイル基本属性領域に優先格納する形式である。ここで使用とは、ファイルアクセスリクエストを処理する際、そのファイルにアクセスしてよいかどうかを判断するために、アクセスマスクビット列の一部ビットを参照することである。先行アクセス権情報４２３のエントリ４２３０は、ファイル拡張属性領域４０２の全アクセス制御情報４１２の中から、優先格納されるビット群を格納する。
【００８２】
例えば、あるファイルの参照要求の頻度が高い場合は、先行アクセス制御対応ファイルサーバプログラムはＦＩＬＥ＿ＲＥＡＤ＿ＤＡＴＡビットを優先的に当該ファイルの先行アクセス権情報４２３に格納する。またあるディレクトリのルックアップ要求の頻度が高い場合は、ＦＩＬＥ＿ＥＸＥＣＵＴＥビットを当該ディレクトリの先行アクセス権情報４２３に格納する。
【００８３】
本形式は、上記したようにファイルの参照要求の頻度が高いなど、実行されるファイルオペレーション（ファイルリクエストの処理）に偏りがあり、アクセス制御に使用されるアクセスマスクビットに偏りがある場合は有効である。なお、アクセスマスクビットの使用頻度は、先行アクセス制御対応ファイルサーバプログラムがアクセスマスクビットの設定に関するログを参照することに基づいて判定してもよい。
【００８４】
「格納形式Ｓ」
ユーザによって、頻繁に設定されるアクセスマスクビット列のパターンの情報を先行アクセス権情報４２３に優先格納する。ここで設定とはアクセス制御情報を更新することであり、例えばＮＦＳではｃｈｍｏｄやｓｅｔｆａｃｌコマンドを実行する際に入力するアクセスマスクビット列であり、ＣＩＦＳではＣＡＣＬＳ  ／ＧやＣＡＣＬＳ  ／Ｐコマンドを実行する際に入力するアクセスマスクビット列である。
【００８５】
これらはＣＬＩによりアクセス制御情報を更新する例であるが、ＧＵＩでアクセス制御情報を更新するケースも含む。例えばＣＩＦＳではファイルのプロパティのセキュリティタグよりアクセス制御情報の更新が可能である。
【００８６】
図６に本形式のアクセスマスクビット列を示す。ＮＴＦＳ  ＡＣＬの１４ビットのＡＣＥマスクビット列との対応関係を示す。例えばこの図の例では、格納形式Ｓが対応するアクセスマスクビット列のパターンとして、ＣＩＦＳの簡易設定パターンである「フルコントロール」、「変更」、「読み取りと実行」、「読み取り」、「書込み」の５種類のアクセスパターンが準備されている。
【００８７】
本格納形式では、ユーザが設定したアクセスマスクビット列パターンが、格納形式Ｓで対応しているアクセスマスクビット列パターンと一致した場合、所定の値を先行アクセス権情報として格納する。
【００８８】
先行アクセス制御対応ファイルサーバプログラムは、アクセス制御情報の変更の際に受信した入力情報（アクセスマスクビット列自体が入力の場合）、または入力情報に基いて変更したアクセスマスクビット列が簡易設定パターンに合致しているかをチェックし、合致している場合はその値を先行アクセス権情報４２３に格納する。
【００８９】
先行アクセス制御対応ファイルサーバプログラムは、ファイル基本属性領域４０１に基づいてファイルアクセス制御を処理する時、先行アクセス権情報４２３の値を図６の右のアクセスマスクビット列にデコードし、デコードしたアクセス権情報に基づいてファイルアクセスの可否を判断する。本形式はアクセスマスク設定パターンに偏りがある場合は有効である。
【００９０】
図６に示した、設定パターンと全アクセスマスクビット列との対応関係はテーブルとして、メモリ２０４の所定領域に事前に設定されている。デコードはＣＰＵ２０２がデコードテーブルに基づいて行う。このデコードテーブルはファイルシステムメタデータ３１０の領域にあってもよいし、先行アクセス制御対応ファイルサービス機能３０１が静的プログラムデータとして保持していてもよい。
【００９１】
「格納形式Ａ」
複数のアクセスマスクビットの論理積を単一のビットに割当て、この論理積ビットの一つ以上を先行アクセス権情報４２３に格納する形式である。なるべく多くのアクセスマスクビットを先行アクセス権情報４２３に格納するために、複数のアクセスマスクビットの論理積を単一のビットにマップする。
【００９２】
例えば、ＦＩＬＥ＿ＡＰＰＥＮＤ＿ＤＡＴＡビットとＦＩＬＥ＿ＷＲＩＴＥ＿ＤＡＴＡビットの論理積を単一のビットであるビット１にマップし、ＦＩＬＥ＿ＲＥＡＤ＿ＤＡＴＡビットとＦＩＬＥ＿ＲＥＡＤ＿ＡＴＴＲＩＢＵＴＥビットの論理積を単一のビットであるビット２にマップする。そしてこのビット１とビット２を先行アクセス権情報４２３に格納する。
【００９３】
複数のアクセスマスクビットの論理積を単一のビットにマップする場合、同時に設定される確率が高いマスクビットを論理積の対象とする、アクセス制御処理で使用される確率が高いマスクビットは論理積の入力対象とせずそのまま格納する、低使用確率のマスクビットは論理積の入力対象からも、格納対象からも除外する、などの工夫は重要となる。これらの工夫により論理積が真となる確率が高くなり、先行アクセス権情報のみでアクセス判定できる可能性が高くなる。本形式は、複数のアクセスマスクビットが真となる割合が高い状況には有効である。
【００９４】
「格納形式Ｐ」
あるプロシージャやシステムコールを実行するのに必要な複数のアクセスマスクビットの論理積を単一のビットに割り当て、この論理積ビットの一つ以上を先行アクセス権情報４２３に格納する形式である。本形式は実行されるプロシージャやシステムコールに偏りがある場合は有効である。
【００９５】
「格納形式Ｆ」
全てのアクセスマスクビットを基本属性領域に格納する形式である。先行アクセス権情報４２３のサイズが１４ビット以上ある場合には適用可能である。この形式の場合、対象ＡＣＥが基本属性に格納されたユーザもしくはグループの全てのオペレーションのアクセス制御処理が高速化される。
【００９６】
以上が本発明の格納形式の例である。格納形式Ｆを除き、既述の格納形式を纏めると、格納形式には、ファイルストレージシステムが、ファイルの拡張領域の全アクセスマスクビットのうちの一部のビットを選択して、基本属性領域に格納するパターンと、基本属性領域に格納される複数のアクセスマスクビットの組み合わせの形態を複数予め用意し、各形態に対して識別値をマップし、識別値を基本属性領域に格納するパターンと、複数のアクセスマスクビットを単一或いは少数の代表ビットに組み込むパターンと、がある。後２者の場合、ストレージシステムが基本属性領域の先行アクセス権情報４２３の識別値或いは代表ビットをデコードテーブルや関数を利用してデコードし、ファイルへのアクセス制御を行う。また、格納形式Ｕ、格納形式Ｓ、格納形式Ａ、及び、格納形式Ｐは、固定サイズであるファイル基本属性領域の容量の消費を格納形式Ｆより抑えられるという利点がある。
【００９７】
以上述べた格納形式の複数を組み合わせてもよい。例えば、格納形式Ｓにおいて代表的アクセスマスク設定パターンの数よりも先行アクセス権情報４２３のサイズが大きい場合、余剰ビットを格納形式Ｕとして用いる方法が考えられる。既述の格納形式は一例であり、他の形式を排除するものではない。
【００９８】
格納形式は条件や状況によって最適なものが異なってくる。クライアント１０４からのアクセスで、典型的なファイルアクセスベンチマークのワークロードを想定した際の格納形式（複数）の効果を比較した結果を図２０に示す。
【００９９】
横軸は代表的設定パターンではない割合を示し、縦軸は拡張属性にアクセスする割合、すなわち、ファイル基本属性領域にファイル拡張属性領域のアクセスマスクビット列の一部が格納されているが、アクセス制御においてこの情報だけでは足りずファイル拡張属性領域にアクセスする割合を示す。横軸はリニアスケール、縦軸はログスケールである。ファイル拡張属性領域にアクセスする割合が小さければ小さいほど、つまりグラフの下であればあるほど性能改善効果は高い。
【０１００】
Ｓ３は格納形式がＳで先行アクセス権情報４２３のエントリ４２３０の格納領域が３ビット、Ｕ３は格納形式Ｕでエントリ４２３０の格納領域が３ビット、Ｕ４は格納形式Ｕでエントリ４２３０の格納領域が４ビット、Ａ３は格納形式Ａでエントリ４２３０の格納領域が３ビット、ＳＵ４は格納形式Ｓと格納形式Ｕを組み合わせた形式でエントリ４２３０の格納領域が４ビットであり、そのうち３ビットがＳ、１ビットがＵに割当てられる。
【０１０１】
本比較例での格納形式Ｓと格納形式Ｕの組み合わせは、Ｕに１ビットのみ割当てられているが、特に限定されるものではなくＳＵ５、ＳＵ６として２ビット以上をＵに割当てる格納形式も可能である。また格納形式Ｓに割当てられるビット数も３に限定されない。
【０１０２】
横軸の代表的設定パターンとは例えば、先に示したようにＣＩＦＳの「フルコントロール」「変更」「読み取りと実行」「読み取り」「書込み」の５パターンであったり、ＮＦＳの「ｒｗｘ」「ｒｗ−」「ｒ−ｘ」「ｒ――」の４パターンであったり、又は、それらの組み合わせであったりする。
【０１０３】
したがって、横軸の代表的設定パターンでない割合は通常５％以下程度と考えられ、先行アクセス権情報４２３のエントリ４２３０の格納領域が３ビットで構成されている場合は格納形式Ｓが最も優れている。先行アクセス権情報４２３のエントリ４２３０の格納領域が４ビットであった場合は格納形式Ｓと格納形式Ｕの組み合わせが最も優れている。以後の実施形態において、格納形式は選択可能であるとして説明されているが、理論上、又は、経験上最も効果の高い格納形式をデフォルトとして設定されてもよい。
【０１０４】
次に、先行アクセス制御対応ファイルストレージシステムに格納されたファイルに対するアクセスリクエストの処理について説明する。この処理は先行アクセス制御対応ファイルサービス機能３０１によって達成される。アクセスリクエストとは、例えば、ローカルユーザからのシステムコールであったり、クライアント上のユーザからのネットワークプロシージャである。
【０１０５】
図７に本発明のアクセス処理のフローチャートを示す。先行アクセス制御対応ファイルサービス機能３０１は、アクセスリクエストを受信すると、アクセスリクエストのユーザを特定する（ここでユーザが属するグループを特定してもよい）。そして先行アクセス制御対応ファイルサービス機能３０１は、ファイルレベル先行アクセス制御対象者情報４２２のエントリの数だけ、Ｓ７０１とＳ７０５の間のステップを繰り返す。先行アクセス制御対応ファイルサービス機能３０１は、Ｓ７０２で、アクセス要求者（つまりユーザ）がファイルレベル先行アクセス対象者情報４２２の第Ｎエントリと一致するかどうかを判断する。一致した場合にはＳ７０３へ、一致しなかった場合Ｓ７０５へ処理を移す。
【０１０６】
先行アクセス制御対応ファイルサービス機能３０１は、Ｓ７０３で、先行アクセス権情報４２３のＮ番目のエントリ４２３０をファイルレベル先行アクセス制御格納形式情報４２１に基づき、アクセス制御可能な形式、つまりアクセスマスクビット列の形式にデコードする。この処理は、格納形式Ｓにおいては、先行アクセス制御対応ファイルサービス機能３０１は、Ｎ番目のエントリ４２３０に格納されたビット列をマッピングテーブルに基づきＮＴＦＳ  ＡＣＬの１４ビットのＡＣＥマスクビット列にデコードすることを意味する。
【０１０７】
また、格納形式Ａ，Ｐでは、単一ビットから元のアクセスマスクビット列をデコードする。例えば、格納形式ＡにおいてＦＩＬＥ＿ＡＰＰＥＮＤ＿ＤＡＴＡビットとＦＩＬＥ＿ＷＲＩＴＥ＿ＤＡＴＡビットの論理積に対応するビットが真であった場合、ＦＩＬＥ＿ＡＰＰＥＮＤ＿ＤＡＴＡビットとＦＩＬＥ＿ＷＲＩＴＥ＿ＤＡＴＡビットを真としてデコードすることを意味する。例えば、格納形式ＰにおいてＷＲＩＴＥオペレーションに対応するビットが真であった場合、ＦＩＬＥ＿ＡＰＰＥＮＤ＿ＤＡＴＡビット、ＦＩＬＥ＿ＷＲＩＴＥ＿ＤＡＴＡビット、ＦＩＬＥ＿ＷＲＩＴＥ＿ＡＴＴＲＩＢＵＴＥビットを真としてデコードすることを意味する。先行アクセス制御対応ファイルサービス機能３０１は、デコードに成功した場合はＳ７０４へ、デコード不能だった場合はＳ７０５へ処理を移す。デコード不能とは、例えば、格納形式Ｓにおいて、設定パターンが未使用やその他パターンの場合であったり、格納形式Ｕ、格納形式Ｐ、格納形式Ａにおいて、アクセス制御判定に適したアクセス権情報が格納されていない場合である。
【０１０８】
なお、格納形式Ｕ及び格納形式Ｆではアクセスマスクビット列の一部または全てが格納されているため、デコードを必要としない（デコード前後で値が変わらないデコードを行うとも言える）。
【０１０９】
先行アクセス制御対応ファイルサービス機能３０１は、Ｓ７０４で、アクセス権情報からデコードしたアクセスマスクビット列に基づいてアクセス制御処理を実施する。先行アクセス制御対応ファイルサービス機能が許可と判断した場合、Ｓ７０９へ処理を移行する。不許可と判断した場合Ｓ７０５へ処理を移す。
【０１１０】
先行アクセス制御対応ファイルサービス機能が、全てのエントリを評価し、許可と判断しなかった場合にはＳ７０６にてファイル拡張属性領域より全アクセス制御情報４１２を取得し、Ｓ７０７へ処理を移す。Ｓ７０７では従来のアクセス制御処理がファイル拡張属性領域の全アクセスマスクビットに基づいて実行される。ここで許可と判断された場合、Ｓ７０９へ処理を移行する。なお、従来のアクセス制御処理とは、アクセスリクエストの種別がユーザまたはグループについて許可されているかどうかを全アクセス制御情報４１２のＡＣＥを参照することで判断することを指す。
【０１１１】
不許可と判断された場合Ｓ７０８へ処理を移す。Ｓ７０８ではアクセス権エラー処理を実行し、アクセス処理を終了する。Ｓ７０９ではアクセスリクエストの処理を実行し、アクセス処理を終了する。
【０１１２】
本フローチャートにおいて、ファイルレベル先行アクセス制御対象者情報４２２の代わりに、ファイルシステムレベル先行アクセス制御対象者情報５２２を使用してもよい。またファイルレベル先行アクセス制御格納形式情報４２１の代わりに、ファイルシステムレベル先行アクセス制御格納形式情報５２１を使用してもよい。
【０１１３】
図８に本発明のネットワークアクセスプロシージャ処理のフローチャートを示す。先行アクセス制御対応ファイルサーバプログラムは、Ｓ８０１にてクライアント１０４よりアクセスリクエストを受信する。次に、図７のアクセス処理７００を実行する。次に、Ｓ８０２にてアクセス処理７００の結果をクライアント１０４に応答する。以上により、ネットワークアクセスプロシージャ処理を終了する。
【０１１４】
次に、ファイルシステムの作成処理を説明する。本処理は先行アクセス制御対応ファイルシステム作成機能３０３、及び、ファイルストレージシステム運用管理機能３０６によって実行される。
【０１１５】
図９はファイルシステム作成のための管理端末にて表示される画面イメージを示したものである。この画面イメージには、従来のファイルシステム作成の過程で指定される、ファイルシステム名やファイルシステムサイズのような基本パラメータに加えて、先行アクセス制御情報に関するチューニングパラメータが表示及び入力可能となっている。
【０１１６】
画面イメージでは、先行アクセス制御情報として、格納形式、対象者、優先格納情報を表示し、この表示は管理端末の入力装置を介して、指定された格納形式、対象者、優先格納情報の入力に応じて変化する。格納形式は前述したように、格納形式Ｕ、Ｓ、Ａ、Ｐ、Ｆ、左記の組み合わせ、その他の格納形式が入力装置にて選択可能であり、入力結果を表示する。
【０１１７】
対象者としては、パーミッションに倣い、所有者、所有グループ、その他（ＮＦＳでのＯｔｈｅｒｓ、ＣＩＦＳでのＥｖｅｒｙｏｎｅに相当）が入力装置にて選択できるほか、さらに指定したユーザ、指定したグループも選択できる（入力した対象者を表示可能なことはいうまでも無い）。また、格納形式Ｆ以外の場合は、どのような情報を優先して先行アクセス権情報４２３に格納するかを入力装置を介して選択し、選択結果を表示する。
【０１１８】
図９には、格納形式の例として格納形式Ｓが示されている。先行アクセス権情報の１エントリ分のサイズが３ビットの場合は２＾３−１で最大７種類が選択可能である。他にも、格納形式Ａの場合には、どのアクセス権とどのアクセス権を同一ビットの論理積対象として格納するか、を選択する。これらの選択はシステムが推奨する項目を自動設定するのでもよい。
【０１１９】
以上の入力装置を介した選択の結果、ＯＫボタン（図９には図示せず）を押すことで選択した入力情報がファイルサーバプログラムへ渡される。なお、この入力はファイルシステム作成時以外にも利用でき、またファイルシステム作成後の設定確認に本画面イメージを表示してもよい。
【０１２０】
なお、以上の説明では一つのファイルシステムに一つの格納形式を指定する前提であったが、制御対象のユーザ及びグループが複数ある場合は、そのユーザまたはグループごとに格納形式その他上記情報をさらに指定できてもよい。
【０１２１】
また、ファイル作成時の先行アクセス制御情報のデフォルト値をどのようにするかも選択可能である。ファイルシステムの設定値を利用するか、親ディレクトリの設定情報を継承するかを選択する。
【０１２２】
図１０にファイルシステム作成処理のフローチャートを示す。
【０１２３】
先行アクセス制御対応サーバプログラムは、まず、Ｓ１００１にてファイルシステムの設定値の入力を受信する。これは図９に示したＧＵＩでもよいし、同等の入力が行えるＣＬＩでもよい。なお、入力情報の具体的な例については図９で示したとおりである。
【０１２４】
次にＳ１００２にて、先行アクセス制御対応サーバプログラムは、前述した従来のファイルシステム作成処理を行う。
【０１２５】
次にＳ１００３にて、先行アクセス制御対応サーバプログラムは、先行アクセス制御情報の入力情報とファイル作成時のデフォルト先行アクセス制御情報をファイルシステムレベル先行アクセス制御情報５１１に格納する。
【０１２６】
以上により、ファイルシステムの作成処理を終了する。
【０１２７】
次に、ファイルの生成処理とファイルに対するチューニング情報設定処理について説明する。本処理は先行アクセス制御対応ファイル生成機能３０４、アクセス情報格納形式設定機能３０５、そして、ファイルストレージシステム運用管理機能３０６にて実行される。
【０１２８】
図１１はファイルの生成処理のフローチャートである。本処理はファイルサーバプログラムがクライアントまたはファイルストレージシステム内部で実行されるほかのプログラムからのファイル名を指定したファイル作成リクエスト、または現時点では存在しないファイルの名前及びパス名を指定したオープンリクエストを受信することで行われる。以下に説明を行う。
【０１２９】
先行アクセス制御対応サーバプログラムは、Ｓ１１０１にて、従来のファイル生成処理を実行する。なお、従来のファイル生成処理とは（１）ファイルシステムの空き領域をファイル基本属性領域として当該領域の値を初期化し、（２）ファイル拡張属性領域を確保して生成ファイルの全アクセス制御情報を作成し、親ディレクトリに設定された全アクセス制御情報の継承ＡＣＥを生成した全アクセス制御情報にコピーする事である。なお、前述の（２）は必ずしも行わなくても良い。たとえば、ファイル生成時のアクセス権限のデフォルト値をユーザ毎に設定できる場合もあるからである。
【０１３０】
先行アクセス制御サーバプログラムは、Ｓ１１０２にて、ファイルレベル先行アクセス制御情報を、図９において設定されたファイルシステムの先行アクセス制御情報の設定値（デフォルト値）にするかどうかをプログラムが判断する。ファイルシステム設定値とする場合はＳ１１０４へ処理を移す。ファイルシステム設定値としない場合はＳ１１０３へ処理を移す。この判断はファイルシステムメタデータ領域に格納した設定値により行う。
【０１３１】
Ｓ１１０３では、先行アクセス制御対応サーバプログラムは、親ディレクトリのファイルレベル先行アクセス制御情報４１１の一部であるファイルレベル先行アクセス制御格納形式情報４２１、ファイルレベル先行アクセス制御対象者情報４２２を、生成したファイルの該当領域にコピーする。なお、情報４２２のコピーは省略してもよい。親ディレクトリで設定した対象者をそのまま引き継ぐとは限らないからである。
【０１３２】
Ｓ１１０４では、ファイルレベル先行アクセス制御格納形式情報４２１、又はファイルレベル先行アクセス制御対象者情報４２２が設定されている場合は、先行アクセス制御対応サーバプログラムは、それらの情報と全アクセス制御情報４１２に基づき、先行アクセス権情報４２３のエントリ４２３０に入れるビット列を指定された格納形式で生成し、エントリ４２３０に生成したビット列を格納する。
【０１３３】
先行アクセス制御の対象者に関する許可ＡＣＥが全アクセス制御情報の第Ｎエントリだった場合、第１〜第Ｎ−１の拒否エントリについても評価した結果を先行アクセス権情報４２３に設定する。例えば、対象者がＵＳＥＲ１で、ＵＳＥＲ１はＧＲＯＵＰ１に所属しており、全アクセス制御情報の第１エントリがＧＲＯＵＰ１に関する拒否ＡＣＥで、第２エントリがＵＳＥＲ１に関する許可ＡＣＥであったとする。この場合、例え第２エントリでＦＩＬＥ＿ＲＥＡＤ＿ＤＡＴＡが許可されていたとしても、第１エントリでＦＩＬＥ＿ＲＥＡＤ＿ＤＡＴＡが拒否されていれば、先行アクセス権情報には許可は設定しない。この場合グループメンバの変更にあわせて先行アクセス権情報の再設定を行う必要がある。
【０１３４】
なお、４２１、４２２が設定されていない、もしくはそれらの領域がない場合は、Ｓ１１０３の代わりに、先行アクセス制御対応サーバプログラムはファイルシステムレベル先行アクセス制御格納形式情報５２１、ファイルシステムレベル先行アクセス制御対象者情報５２２と全アクセス制御情報４１２の情報に基づき、先行アクセス権情報４２３を設定する。以上により、ファイルの生成処理を終了する。
【０１３５】
図１２は管理端末１０３で表示するファイルのチューニング情報設定画面イメージである。先行アクセス制御対応サーバプログラムは対象ファイルを選択し、先行アクセス制御情報に関する再設定を行う。この画面はファイル生成時に設定された先行アクセス権情報では、高速化の効果が低い場合に用いる。具体的には、図９と同様にファイルサーバプログラムは、入力情報としてファイルストレージシステム１０１の管理者が選択した格納形式、対象者、優先格納情報をエントリ数分受信することができ、また、図１２の画面イメージで選択した情報の表示も行うことができる。図１２には、チューニング後の格納形式がＵになる例が示されている。格納形式Ｕでは、どのアクセス権情報を優先して格納するかを変更することが可能となる。なお、ファイルストレージシステム１０１の管理者はクライアント１０４のユーザであってもよい。
【０１３６】
ファイルの基本属性領域は大きくないため、チューニングの際に、設定可能なパラメータを、格納形式のみに限定したり、あるいは、格納形式及び限られた対象者、に限定してもよい。ここで限られた対象者とは、例えばファイルの所有者、所有グループ、その他ユーザである。設定可能なパラメータを限定する際、本画面で設定されない情報に関しては、ファイルシステムやストレージシステムにおいて一意に決定される。
【０１３７】
なお、図１２の例ではファイルを指定しているが、ディレクトリを指定して指定ディレクトリ以下の全てのファイルを指定したものとしてもよく、ユーザを指定することで指定ユーザが生成したファイルを指定したものとしても良い。
【０１３８】
図１３はファイルのチューニング情報設定処理のフローチャートである。本処理はファイルストレージシステム運用管理機能３０６において実行される。
【０１３９】
先行アクセス制御対応サーバプログラムは、Ｓ１３０１にて、ファイルの設定値の入力情報を受信する。これは、図１２に示したＧＵＩを介して行われても、或いは、同等の入力が行えるＣＬＩでもよい。なお、入力情報は図１２で説明したとおりである。
【０１４０】
Ｓ１３０２にて、入力情報に基づき、先行アクセス制御対応サーバプログラムは、ファイルレベル先行アクセス制御情報４１１の一部であるファイルレベル先行アクセス制御格納形式情報４２１、ファイルレベル先行アクセス制御対象者情報４２２を設定または更新する。
【０１４１】
そして、先行アクセス制御対応サーバプログラムは、Ｓ１３０３において、対象ファイルの全アクセス制御情報４１２を拡張属性領域から読み出す。Ｓ１３０４にて、入力情報（図１２）と全アクセス制御情報４１２に基づき、先行アクセス権情報４２３を再度生成する。生成の具体的な処理は図１１で説明したとおりである。
【０１４２】
以上により、ファイルのチューニング情報設定処理を終了する。
【０１４３】
図１２と図１３に示す方式は、格納形式や先行アクセス処理の判定のユーザ及びグループをファイル毎に変更することを可能にする。この方式は基本属性領域の容量を消費するものの、ファイルアクセス時に、柔軟に、格納形式や先行アクセス処理判定対象者を変更できるという利点を持つ。例えば、ファイルサーバがアクセスユーザ、リクエスト種別の履歴情報をファイル毎に持っておき、その履歴情報に基づき、高頻度アクセスユーザや高頻度オペレーションに関する情報を基本属性に設定する。
【０１４４】
また、バッチオペレーションの場合等は、アクセスユーザやリクエスト種別を予測できるため、ファイルサーバは、予測情報にあわせて、高頻度アクセスが予想されるユーザやオペレーションに関するアクセスマスクビットをファイル基本属性領域に事前に設定できる。
【０１４５】
次に、先行アクセス制御情報を更新する機能が付帯されたアクセス処理、及び、同様なネットワークアクセスプロシージャ処理について説明する。この処理は、先行アクセス制御対応ファイルサービス機能３０１、及び、先行アクセス制御対応アクセス制御情報設定機能３０２によって実行される。
【０１４６】
図１４は、先行アクセス制御情報更新機能付きアクセス処理のフローチャートであり、図２３は先行アクセス制御情報更新機能付きネットワークアクセスプロシージャ処理のフローチャートである。
【０１４７】
なお、図１４の処理はファイルストレージシステム内部にて実行されるプログラムから行われるアクセスリクエスト受信に応じて行われる処理であり、図２３の処理はクライアント１０４からのアクセスリクエスト受信に応じて行われる処理である。
【０１４８】
まず、図１４の先行アクセス制御情報更新機能付きアクセス処理１４００Ａを説明する。先行アククセス制御対応サーバプログラムは、始めに、図７で説明したアクセス処理７００を実行する。次に、ファイルレベル先行アクセス制御のアクセス時更新処理１５００を実行する。本処理を図１５及び図１６に基づいて後に説明する。次にアクセス履歴更新処理１７００を実行する。この処理を図１７に基づいて後述する。
【０１４９】
次に、図２３の先行アクセス制御情報更新機能付きネットワークアクセスプロシージャ処理１４００Ｂを説明する。先行アクセス制御サーバプログラムは、始めに、図８で説明したネットワークアクセスプロシージャ処理８００を実行する。次に、ファイルレベル先行アクセス制御で先行アクセス制御情報をファイルアクセス時に更新する処理１５００を実行し、アクセス履歴更新処理１７００を実行する。
【０１５０】
図１５はファイルレベル先行アクセス制御のアクセス時更新をＬｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ（ＬＲＵ）で行う方式の処理フローチャートである。
【０１５１】
先行アクセス制御対応サーバプログラムは、Ｓ１５０１にて、現在ファイルへアクセスを要求しているユーザの識別子である要求ユーザ識別子がファイルレベル先行アクセス制御情報４１１のファイルレベル先行アクセス制御対象者情報４２２にあるかどうかを判断する。もし、要求ユーザ識別子が存在している場合、処理を終了し、存在しない場合はＳ１５０２に処理を移す。
【０１５２】
なお、要求ユーザ識別子がファイルレベル先行アクセス制御対象者情報４２２の第１エントリ以外の第Ｎエントリであった場合、そのエントリを第１エントリに移し、既存の第１から第Ｎ−１エントリは、第２から第Ｎエントリに移してもよい。なおその場合、移したエントリに対応する先行アクセス権情報４２３のエントリ４２３も同様に移動する。
【０１５３】
Ｓ１５０２にて、先行アクセス制御対応サーバプログラムは、ファイルレベル先行アクセス制御情報４１１の最終エントリの情報を消去する。最終エントリは、そのエントリを利用してアクセス制御処理を最後に実行した時間からの経過時間が最も長いエントリのことである。
【０１５４】
次に、Ｓ１５０３にて、先行アクセス制御対応サーバプログラムは、ファイルレベル先行アクセス制御情報の第Ｎエントリを、第Ｎ＋１エントリにそれぞれコピーする。エントリ数が１の場合はこの処理はスキップされる。
【０１５５】
次にＳ１５０４にて、先行アクセス制御対応サーバプログラムは、要求ユーザ識別子に関するアクセス制御情報を、ファイルレベル先行アクセス制御情報の第１エントリとして格納する。以上により、ファイルレベル先行アクセス制御のアクセス時更新をＬＲＵで行う方式の処理を終了する。
【０１５６】
図１６は、ファイルレベル先行アクセス制御における既述のアクセス時更新をアクセス履歴に基づき行う方式の処理フローチャートである。本処理は先行アクセス制御対応ファイルサービス機能３０１において実行される。
【０１５７】
先行アクセス制御対応サーバプログラムは、Ｓ１６０１にて、ファイルへのアクセス回数が規定回数（例えば１万回）に到達したかどうかを判断する。これはアクセス毎に更新処理の要否を見直すのは効率が悪いからである。規定回数に達していない場合は処理を終了し、規定回数に達した場合はＳ１６０２に処理を移す。
【０１５８】
Ｓ１６０２にて、先行アクセス制御対応サーバプログラムは、ファイルに対して高頻度にアクセスするユーザ（高頻度アクセスユーザ）の識別子を、アクセス履歴情報４１５に基づいて、ファイルレベル先行アクセス制御情報の最大エントリ数分選択する。
【０１５９】
先行アクセス制御対応サーバプログラムは、Ｓ１６０３において、アクセス履歴情報４１５より、最適な格納形式を選択する。例えば、先行アクセス制御情報の設定パターンに偏りが見られる場合は「格納形式Ｓ」、実行されるアクセス処理の種類に偏りが見られる場合は「格納形式Ｕ」や「格納形式Ｐ」を選択する。
【０１６０】
Ｓ１６０４にて、選択された高頻度アクセスユーザ、選択された格納形式と、全アクセス制御情報に基づき、先行アクセス制御対応サーバプログラムは、先行アクセス権情報４２３を更新する。
【０１６１】
以上により、ファイルレベル先行アクセス制御のアクセス時更新をアクセス履歴に基づき行う処理を終了する。
【０１６２】
図１７はアクセス履歴更新処理１７００の処理フローチャートである。本処理は先行アクセス制御対応ファイルサービス機能３０１において実行される。
【０１６３】
先行アクセス制御対応サーバプログラムは、Ｓ１７０１にて、対応ファイルを指定したアクセスリクエストのユーザ識別子をメモリ２０４上にキャッシングしたアクセス履歴情報４１５に追加する。
【０１６４】
Ｓ１７０２にて、先行アクセス制御対応サーバプログラムは、このアクセスにおいて、アクセス制御のためにチェックされたアクセスマスク情報をメモリ上のアクセス履歴情報４１５に追加する。例えば、アクセスがＲＥＡＤシステムコールであればＦＩＬＥ＿ＲＥＡＤ＿ＤＡＴＡがチェックされたアクセスマスク情報になる。
【０１６５】
先行アクセス制御対応サーバプログラムは、Ｓ１７０３にて、このアクセスがアクセス制御情報更新処理（図１５、図１６）の場合、アクセス者について変更されたアクセス権情報をメモリのアクセス履歴情報に追加する。アクセス権情報とはアクセスマスクビット列である。
【０１６６】
Ｓ１７０４にて、先行アクセス制御対応サーバプログラムは、メモリ２０４上にキャッシングしたアクセス履歴情報４１５の更新回数が規定回数（例：１００回）に到達したかどうかを判断する。到達した場合、処理Ｓ１７０５へ処理を移す。到達しなかった場合、処理を終了する。これは、アクセス毎に拡張属性への書き込みを行うのは不経済のためである。
【０１６７】
そして、先行アクセス制御対応サーバプログラムは、Ｓ１７０５において、メモリ２０４上にキャッシングされたアクセス履歴情報を、ファイルシステムのアクセス履歴情報４１５として格納する。
【０１６８】
以上により、アクセス履歴更新処理を終了する。
【０１６９】
次に、ファイルレベル先行アクセス制御情報の定期更新処理について説明する。既述の実施形態は、ファイルアクセスの処理が実行される時に先行アクセス制御情報が見直されていたが、以下に説明する実施形態は一定時間毎その見直しを行う。この処理は先行アクセス制御情報定期更新機能３０７によって実行される。なお、この見直しは両方同時に行ってもよく、どちらか片方だけを行っても良い。
【０１７０】
図１８は、ファイルレベル先行アクセス制御情報の定期更新処理のフローチャートである。先行アクセス制御対応サーバプログラムは、Ｓ１８０１にて、前回定期更新時より一定時間（例：一ヶ月）経過しているかどうかを判断する。経過していない場合は経過するまで待ち、経過している場合は処理を続行する。
【０１７１】
Ｓ１８０３からＳ１８０５の処理ステップを、全ての対象ファイルに対して実行する。Ｓ１８０３にて、上位の高頻度アクセスユーザを、アクセス履歴情報４１５に基づき、ファイルレベル先行アクセス制御情報の最大エントリ数分選択する。
【０１７２】
先行アクセス制御対応サーバプログラムは、Ｓ１８０４にて、アクセス履歴情報４１５より最適な格納形式を選択する。例えば、アクセス制御情報の設定パターンの偏りが見られる場合は「格納形式Ｓ」、実行されるアクセス処理の種類に偏りが見られる場合は「格納形式Ｕ」や「格納形式Ｐ」を選択する。Ｓ１８０５にて、選択された高頻度アクセスユーザ、選択された格納形式と、全アクセス制御情報に基づき、先行アクセス権情報４２３を更新する。以上により、ファイルレベル先行アクセス制御情報の定期更新処理を終了する。
【０１７３】
次に、全アクセス制御情報の設定処理を説明する。この処理は先行アクセス制御対応アクセス制御情報設定機能３０２によって実行される。図１９は、全アクセス制御情報の設定処理のフローチャートである。
【０１７４】
先行アクセス制御対応サーバプログラムは、Ｓ１９０１にて、入力のアクセス制御情報を全アクセス制御情報４１２に格納する。
【０１７５】
Ｓ１９０２にて、先行アクセス制御対応サーバプログラムは、図１７で説明したアクセス履歴機能があるかどうかを判断する。アクセス履歴機能があった場合には、先行アクセス制御対応サーバプログラムは、ファイルレベル先行アクセス制御情報アクセス時更新処理１５００を実行し、その後、アクセス履歴更新処理１７００を実行する。アクセス履歴機能がなかった場合は、先行アクセス制御対応サーバプログラムは、Ｓ１９０３に処理を移す。
【０１７６】
Ｓ１９０３にて、先行アクセス制御対応サーバプログラムは、先行アクセス権情報４２３を更新する。この更新は、先行アクセス権情報に設定されている格納形式と対象者情報に基づき行われる。以上により、全アクセス制御情報の設定処理を終了する。
【０１７７】
本発明によれば、アクセス制御情報が可変サイズの場合においても、アクセス制御情報が固定サイズと同等のアクセス性能を実現できる。
【産業上の利用可能性】
【０１７８】
本発明のファイルアクセス制御システムは、ファイルサーバ、ファイルストレージ、ＮＡＳ、ストレージシステム、計算機システムに組み込むことができる。
【符号の説明】
【０１７９】
１００・・・先行アクセス制御対応ファイルストレージシステム
１０２・・・ネットワーク
１０３・・・管理端末
１０４・・・クライアント
３１０・・・ファイルシステムメタデータ
３１１・・・ファイル
【図１】
0005449528.tif 000002
【図２】
0005449528.tif 000003
【図３】
0005449528.tif 000004
【図４】
0005449528.tif 000005
【図５】
0005449528.tif 000006
【図６】
0005449528.tif 000007
【図７】
0005449528.tif 000008
【図８】
0005449528.tif 000009
【図９】
0005449528.tif 000010
【図１０】
0005449528.tif 000011
【図１１】
0005449528.tif 000012
【図１２】
0005449528.tif 000013
【図１３】
0005449528.tif 000014
【図１４】
0005449528.tif 000015
【図１５】
0005449528.tif 000016
【図１６】
0005449528.tif 000017
【図１７】
0005449528.tif 000018
【図１８】
0005449528.tif 000019
【図１９】
0005449528.tif 000020
【図２０】
0005449528.tif 000021
【図２１】
0005449528.tif 000022
【図２２】
0005449528.tif 000023
【図２３】
0005449528.tif 000024