(57)【要約】マルチプロトコル・ストレージ・アプライアンスのストレージ・オペレーティング・システムによって実施されるファイルシステムのボリューム上に仮想ディスク（ｖｄｉｓｋ）を作成するための仮想化選択プロセスを自動化するストレージ仮想化選択技術。ファイルシステムは、一連のディスクまたは該ディスクの部分からなる物理記憶を集め、それらを動的に割り当ててｖｄｉｓｋを形成する仮想化システムを提供する。つまり、ファイルシステムは、管理対象の複数のディスクによって形成されたボリューム内に記憶装置を編成する。その後、ボリューム内にｖｄｉｓｋをストレージ・オブジェクトとして作成する。従って、そのボリュームに関連する基礎信頼性構成を継承する。ストレージ・アプライアンスのユーザからのｖｄｉｓｋを作成するための要求に応答して、ユーザがそれ以上関わることなく、ディスクの部分を集め、それらを信頼性保証を有するｖｄｉｓｋとして割り当てる。
2005535962.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ・システムのストレージ・オペレーティング・システムによって実施されるファイルシステムの仮想ディスク（ｖｄｉｓｋ）を作成する方法であって、
ディスクの部分からなる物理記憶をブロック・プールに集めるステップと、
ｖｄｉｓｋを形成するために、前記ディスクの部分を動的に割り当てるステップと、
前記ファイルシステムの基礎アーキテクチャに従って前記ｖｄｉｓｋに信頼性保証を与えるステップと、
からなり、前記集めるステップ、前記割り当てるステップおよび前記与えるステップが、前記ｖｄｉｓｋを作成するためのユーザ要求に応答して実施され、ユーザがそれ以上関わる必要のない、方法。
【請求項２】
前記ディスクの部分がエクステントである、請求項１に記載の方法。
【請求項３】
複数の管理対象ディスクによって形成されたボリューム内に前記ファイルシステムの記憶装置を編成するステップと、
前記ボリュームのうちの１つの中に前記ｖｄｉｓｋをストレージ・オブジェクトとして作成するステップと、
前記ｖｄｉｓｋに代わって前記ボリュームに関連する基礎信頼性構成を継承するステップと、
をさらに含む、請求項１に記載の方法。
【請求項４】
前記ｖｄｉｓｋに格納されたアプリケーションデータに対するブロックおよびネットワーク・アタッチド・ストレージ（ＮＡＳ）マルチプロトコル・アクセスを維持しつつ、ユーザ制御により前記ｖｄｉｓｋの拡大および縮小のうちのいずれか一方を行なうステップをさらに含む、請求項１に記載の方法。
【請求項５】
ストレージ・システム上に仮想ディスク（ｖｄｉｓｋ）を作成するシステムであって、
前記ストレージ・システムのメモリに常駐し、情報をｖｄｉｓｋの階層構造として前記ストレージ・システムのボリューム内に編成するように構成されたファイルシステムを補助する記憶処理を実施するストレージ・オペレーティング・システムであって、前記ｖｄｉｓｋのそれぞれが、該ｖｄｉｓｋに関連するデータを格納するためのメインコンテナとして機能する論理ユニット番号（ＬＵＮ）ｉｎｏｄｅと、種々の属性を格納するための永久記憶として機能する少なくとも１つのストリームｉｎｏｄｅとを実施する表現として前記ボリュームに格納される、ストレージ・オペレーティング・システムを含み、
前記ＬＵＮ  ｉｎｏｄｅおよび前記少なくとも１つのストリームｉｎｏｄｅが、前記ファイルシステム内で１つのカプセル化ストレージ・オブジェクトとして管理される、システム。
【請求項６】
前記少なくとも１つのストリームｉｎｏｄｅが属性ｉｎｏｄｅである、請求項５に記載のシステム。
【請求項７】
前記ＬＵＮ  ｉｎｏｄｅは、ディスク上のデータおよび該データの格納に使用される前記ディスク上のデータブロックを参照するポインタのうちの１つを含むデータ部を含む、請求項６に記載のシステム。
【請求項８】
前記ＬＵＮ  ｉｎｏｄｅは、前記ｖｄｉｓｋのタイプおよびサイズを格納するメタデータ部をさらに含み、該メタデータ部は、前記ＬＵＮ  ｉｎｏｄｅをデータコンテナおよび１以上のストリームとして識別するｆｌａｇ＿ｓｔｒｅａｍフラグを格納する、請求項７に記載のシステム。
【請求項９】
前記属性ｉｎｏｄｅは、前記ｖｄｉｓｋに関連する種々の名前付き属性を保持するための永久記憶として機能するデータ部を含み、前記属性は、前記ｖｄｉｓｋをＬＵＮとして前記ストレージ・システムのクライアントにエクスポートできるようにするための情報と、前記ｖｄｉｓｋを前記クライアントに関連する１つのディスクオブジェクトとして管理出来るようにする情報とを含む、請求項６に記載のシステム。
【請求項１０】
前記属性は、シリアル番号、空間予約、状態、および幾何配置情報のうちの少なくとも１つをさらに含む、請求項９に記載のシステム。
【請求項１１】
各ｖｄｉｓｋは、名前値対のリストを保持するための永久記憶として機能するデータ部を有するＬＵＮＭＡＰ  ｉｎｏｄｅと、永久予約レコードのリストを保持するための永久記憶として機能するデータ部を有する永久予約ｉｎｏｄｅとをさらに実施する、請求項５に記載のシステム。
【請求項１２】
前記永久予約レコードは、前記ｖｄｉｓｋに関する所有者およびアクセス情報を提供する、請求項１１に記載のシステム。
【請求項１３】
メタデータファイルに格納されたボリュームごとのデータ構造であって、ボリューム内の前記ｖｄｉｓｋの位置判定および初期化を最適化するのに使用されるデータ構造をさらに含む、請求項５に記載のシステム。
【請求項１４】
前記データ構造は、ファイルエントリ情報を含む１以上のレコードを含むｖｄｉｓｋ目次データ構造であって、前記ｖｄｉｓｋを表すカプセル化ストレージ・オブジェクトに格納された情報から動的に再構成可能なｖｄｉｓｋ目次データ構造である、請求項１３に記載のシステム。
【請求項１５】
前記レコードのそれぞれが、
前記ボリューム上のファイル識別子と、
前記ＬＵＮ  ｉｎｏｄｅの生成番号と、
前記ｖｄｉｓｋのエントリを親ディレクトリにおけるディレクトリエントリのインデックスとともに格納している、親ディレクトリにおけるファイルブロック番号を含むディレクトリ情報と、
からなるファイルエントリを含む、請求項１４に記載のシステム。
【請求項１６】
前記ｖｄｉｓｋは、前記ｖｄｉｓｋに対するアクセスを制限するセキュリティ情報をカプセル化することによって、データの完全性を保証しつつ、ネットワーク・アタッチド・ストレージ・プロトコルまたはストレージ・エリア・ネットワーク・プロトコルによるマルチプロトコル・アクセスを提供する、請求項５に記載のシステム。
【請求項１７】
マルチプロトコル・ストレージ・アプライアンスのストレージ・オペレーティング・システムによって実施されるファイルシステムの仮想ディスク（ｖｄｉｓｋ）を作成する選択プロセスを自動化する方法であって、
前記マルチプロトコル・ストレージ・アプライアンスの管理インタフェースを通じて前記ｖｄｉｓｋのサイズおよび前記ｖｄｉｓｋの位置のパス記述子を指定するＬＵＮ作成コマンドを発行するステップと、
前記ＬＵＮ作成コマンドに応答して前記ｖｄｉｓｋを作成するステップと、
からなる方法。
【請求項１８】
前記ｖｄｉｓｋの幾何配置に関する情報を用いて前記ｖｄｉｓｋをリサイズするステップをさらに含む、請求項１７に記載の方法。
【請求項１９】
前記リサイズするステップは、指定されたｖｄｉｓｋサイズをアルゴリズムによって幾何配置情報に変換するステップをさらに含み、該幾何配置情報は、前記ｖｄｉｓｋをリサイズすることが出来る大きさに対する制限要素として働く、請求項１８に記載の方法。
【請求項２０】
前記幾何配置情報はシリンダサイズである、請求項１９に記載の方法。
【請求項２１】
マルチプロトコル・ストレージ・アプライアンスのストレージ・オペレーティング・システムによって実施されるファイルシステムの仮想ディスク（ｖｄｉｓｋ）を作成する方法であって、
前記マルチプロトコル・ストレージ・アプライアンスの管理インタフェースを通じて前記ｖｄｉｓｋのサイズおよび前記ｖｄｉｓｋの位置のパス記述子を指定するｖｄｉｓｋ作成コマンドを発行するステップと、
前記ｖｄｉｓｋに関連する、通常ファイルタイプのファイルｉｎｏｄｅを作成するステップと、
前記ｖｄｉｓｋに関する属性を格納するためのストリームｉｎｏｄｅを作成するステップと、
前記ストリームｉｎｏｄｅに属性を入れるステップと、
前記ファイルｉｎｏｄｅのファイルタイプを通常からｖｄｉｓｋへ変換することにより、前記ｖｄｉｓｋを作成するステップと、
からなる方法。
【請求項２２】
前記発行するステップの後に、
前記マルチプロトコル・ストレージ・アプライアンスの仮想化システムにおいて、指定されたサイズおよびパス記述子をチェックするステップと、
前記パス記述子およびサイズがチェックをしない場合、前記ｖｄｉｓｋの作成を中止するステップと、
前記パス記述子およびサイズがチェックをする場合、ファイルｉｎｏｄｅを作成するステップへ進むステップと、
をさらに含む、請求項２１に記載の方法。
【請求項２３】
前記ファイルｉｎｏｄｅを作成するステップは、前記ファイルｉｎｏｄｅに指定サイズを設定するステップをさらに含む、請求項２１に記載の方法。
【請求項２４】
前記属性は、前記ｖｄｉｓｋの状態、ネットワークファイルシステムプロトコルで前記ｖｄｉｓｋを共有するための許可、および照会情報を含む、請求項２１に記載の方法。
【請求項２５】
前記入れるステップは、
前記ｖｄｉｓｋをネットワークファイルシステムプロトコルでエクスポートするときに使用されるファイル所有者およびグループＩＤパラメタを設定するステップと、
空間予約保証を設定し、前記ｖｄｉｓｋに対する書込み処理が失敗しないようにするステップと、
をさらに含む、請求項２４に記載の方法。
【請求項２６】
ストレージ・アプライアンス上に仮想ディスク（ｖｄｉｓｋ）を作成するための選択プロセスを自動化するシステムであって、
プロセッサと、
前記プロセッサに接続され、前記プロセッサによりアドレス指定可能な位置を有するメモリと、
前記メモリおよび前記プロセッサに接続された少なくとも１つのディスクと、
前記メモリに常駐し、情報をｖｄｉｓｋの階層構造としてディスク上に編成するように構成されたファイルシステムを補助する記憶処理を実施するストレージ・オペレーティング・システムであって、前記ｖｄｉｓｋのそれぞれが、該ｖｄｉｓｋに関連するデータを格納するためのメインコンテナとして機能する論理ユニット番号（ＬＵＮ）ｉｎｏｄｅと、種々の属性を格納するための永久記憶として機能する属性ｉｎｏｄｅとを実施する表現としてディスク上に格納される、ストレージ・オペレーティング・システムと、
を含み、前記ＬＵＮ  ｉｎｏｄｅおよび前記属性ｉｎｏｄｅが、前記ファイルシステム内で１つのカプセル化ストレージ・オブジェクトとして管理される、システム。
【請求項２７】
ストレージ・アプライアンスのストレージ・オペレーティング・システムによって実施されるファイルシステムの仮想ディスク（ｖｄｉｓｋ）を作成するためのストレージ仮想化プロセスを自動化する方法であって、
前記ストレージ・アプライアンスの管理インタフェースを通じて前記ｖｄｉｓｋのサイズおよび前記ｖｄｉｓｋの位置のパス記述子を指定するｖｄｉｓｋ作成コマンドを発行するステップと、
前記ｖｄｉｓｋに関連する、ｖｄｉｓｋファイルタイプのファイルｉｎｏｄｅを作成するステップと、
前記ｖｄｉｓｋに関連する属性を格納するためのストリームｉｎｏｄｅを作成するステップと、
前記ストリームｉｎｏｄｅに属性を入れるステップと、
からなる方法。
【請求項２８】
前記ｖｄｉｓｋ作成コマンドはＬＵＮ作成コマンドである、請求項２７に記載の方法。
【請求項２９】
マルチプロトコル・ストレージ・アプライアンスのストレージ・オペレーティング・システムによって実施されるファイルシステム上に仮想ディスク（ｖｄｉｓｋ）を階層化する装置であって、
ディスクの部分からなる物理記憶をブロック・プールに集める手段と、
前記ディスクの部分を動的に割り当ててｖｄｉｓｋを形成する手段と、
前記ファイルシステムの基礎アーキテクチャに従って前記ｖｄｉｓｋに信頼性保証を与える手段と、
からなり、前記集める手段、前記動的に割り当てる手段および前記与える手段が、前記ｖｄｉｓｋを作成するためのユーザ要求に応答して実施され、ユーザがそれ以上関わる必要のない、装置。
【請求項３０】
ストレージ・システムのストレージ・オペレーティング・システムによって実施されるファイルシステムの仮想ディスク（ｖｄｉｓｋ）をストレージ仮想化するための実行可能プログラム命令を格納するコンピュータ読取可能媒体であって、
前記実行可能プログラム命令は、前記ストレージ・システムの管理インタフェースを通じて前記ｖｄｉｓｋのサイズおよび前記ｖｄｉｓｋの位置のパス記述子を指定するＬＵＮ作成コマンドを発行し、前記ＬＵＮ作成コマンドに応答して前記ｖｄｉｓｋを作成するためのプログラム命令からなる、コンピュータ読取可能媒体。
【請求項３１】
マルチプロトコル・ストレージ・アプライアンスのストレージ・オペレーティング・システムによって実施されるファイルシステム上に仮想ディスク（ｖｄｉｓｋ）をストレージ仮想化する方法であって、
前記ｖｄｉｓｋに関連するデータを格納するためのコンテナと、前記ｖｄｉｓｋに関連する属性を格納するための永久記憶手段とを含むカプセル化ストレージ・オブジェクトを前記ファイルシステムに設けるステップと、
前記カプセル化ストレージ・オブジェクトを論理ユニット番号に従ってアクセスするステップと、
からなる方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ・システムに関し、詳しくは、マルチプロトコル・ストレージ・アプライアンスのようなストレージ・システム上でのストレージ仮想化に関する。
【背景技術】
【０００２】
ストレージ・システムとは、メモリ、テープ、ディスクのような書き込み可能な持続性記憶装置における情報編成に関するストレージサービスを提供するコンピュータである。ストレージ・システムは、ストレージ・エリア・ネットワーク（ＳＡＮ）環境や、ネットワーク・アタッチド・ストレージ（ＮＡＳ）環境に配置される。ＮＡＳ環境で使用される場合、ストレージ・システムはオペレーティング・システムを含むファイルサーバとして実施され、情報をディレクトリやファイルの階層構造として（例えばディスク上に）論理編成するファイルシステムを実施する。「ディスク上」の各ファイルは、ファイルの実際のデータ等の情報を格納するように構成された、例えばディスクブロックのような一連のデータ構造として実施される。一方、ディレクトリは、他のファイルやディレクトリに関する情報を格納する特別な形のファイルとして実施される。
【０００３】
さらに、ファイルサーバまたはファイラは、クライアント／サーバモデルの情報配送に従って動作するように構成される。そのため、多数のクライアント・システム（クライアント）が、ファイラに格納されたファイル等の共有リソースにアクセスすることができる。ファイルの共有はＮＡＳシステムの特徴であり、これはファイルやファイルシステムに対する意味レベルのアクセスによって実施される。ＮＡＳシステム上の情報ストレージは一般に、地理的に分散されたイーサネット（登録商標）のような相互接続通信リンクの集まりを含むコンピュータネットワーク全体にわたって配置される。クライアントは一般に、ＴＣＰ／ＩＰのような所定のプロトコルに従って個々のデータフレームやデータパケットをやり取りすることによってファイラと通信する。
【０００４】
クライアント／サーバモデルの場合、クライアントは、ポイント・ツー・ポイントリンク、共有ローカルエリアネットワーク、ワイドエリアネットワーク、あるいはインターネット等の公共ネットワーク上に実施された仮想私設ネットワークなどのコンピュータネットワークを介してクライアントをファイラに「接続」するためのアプリケーションを、コンピュータ上で実行している。ＮＡＳシステムは一般に、ファイル単位のアクセス・プロトコルを使用している。従って各クライアントは、ネットワークを介してファイル・システム・プロトコル・メッセージを（パケットの形で）ファイルシステムに発行することにより、ファイラにサービスを要求する。従来のＣＩＦＳ(Common Internet File System）プロトコル、ＮＦＳ（Network File System）プロトコル、ＤＡＦＳ（Direct Access File System）プロトコルといった複数のファイルシステムプロトコルをサポートするために、クライアントと通信するファイラの機能は拡張される場合もある。
【０００５】
ＳＡＮは、ストレージ・システムと該ストレージ・システムが有する記憶装置との間にダイレクト接続を確立することが可能な高速ネットワークである。ＳＡＮは、ストレージ・バスに対する拡張のように見える。そのため、ストレージ・システムのオペレーティング・システムは、「拡張バス」を介して、ブロック単位のアクセス・プロトコルにより、格納された情報にアクセスすることができる。その場合、拡張バスは一般に、「ＳＣＳＩ  ｅｎｃａｐｓｕｌａｔｅｄ  ｏｖｅｒ  ＦＣ」または「ＳＣＳＩ  ｅｎｃａｐｓｕｌａｔｅｄ  ｏｖｅｒ  ＴＣＰ／ＩＰ／Ｅｔｈｅｒｎｅｔ」のようなブロックアクセス・プロトコルを用いて動作するように構成されたファイバチャネル（ＦＣ）またはイーサネット（登録商標）媒体（すなわちネットワーク）として実施される。
【０００６】
ＳＡＮ構成すなわちＳＡＮデプロイメントでは、アプリケーションサーバ等のストレージ・システムからストレージを切り離し、そのストレージをネットワーク上に置くことができる。ただし、ＳＡＮストレージ・システムは一般に、指定の割り当てられたストレージリソースを管理する。ストレージは複数の区画にグループ分け（プール）される場合もあるが（例えば、従来の論理ユニット番号すなわち「ＬＵＮ」による区画方法、マスク方法、管理方法などによって）、それらの記憶装置はいまだに、システム管理者などのユーザによってストレージ・システムに事前に割り当てられている。
【０００７】
ストレージ仮想化は一般に、１以上のストレージ・システムを用いて「ユーザ定義ボリューム」を形成することにより、ネットワークを介して複数の物理ディスクのような記憶装置からストレージリソースをプールすることを必要とする。「ボリューム」という用語は、従来からＳＡＮ環境で使用されている用語であり、物理ディスクおよび該ディスクのエクステントを指定し、それらをユーザ定義ボリュームストレージエンティティに結合させる処理によって（システム管理者により）構成されたストレージエンティティを意味する。エクステントとは、指定された物理ディスク内に連続したアドレスを有する一連のストレージブロック（すなわち「スライス」）である。ストレージ仮想化はＳＡＮデプロイメントで使用されることが多く、プールされる記憶装置のタイプに関係なく、ユーザ定義ボリュームが、オペレーティング・システムにとって１つのストレージエンティティに見えるようにするものである。従って、仮想化は、オペレーティング・システムに対するストレージ表現を、ネットワークを介して接続された実際の物理ストレージとは無関係なものにする。
【０００８】
ストレージ仮想化の解釈には、ディスクまたはＬＵＮに対応するユーザ定義ボリュームから物理的ディスクサイズ制限および基礎物理構造を切り離すことを含む多数の解釈がある。また、仮想化は、ストレージの基礎信頼性保証を定義することを含めて、ＬＵＮの管理のことを指す場合もある。一般に、そのような態様の仮想化は、ストレージ・プールから形成されたＬＵＮに対し、ミラーリングレベルやＲＡＩＤプロテクションレベルを明示することによって実施される。すなわち、構築されるユーザ定義ボリュームの基礎信頼性保証を、システム管理者が明示的に定義することによって実施される。当然ながら、そのような管理手順は複雑で時間がかかり、従ってコストがかかる。
【０００９】
さらに、仮想化は、ＬＵＮの性能特性やＬＵＮの既存の構成を変更する機能（例えばＬＵＮのサイズを増加させる機能など）を意味する場合もある。しかしながら、従来の物理ディスクや、クライアントによって使用されるストレージユニットを明示的に大きく構成しておくという従来の方策には、性能制限がある。例えば、多数のディスク、および／または、それらのディスクの「スライス」（エクステント）を明示的に集めることによって構成されるユーザ定義ボリュームの帯域幅は、構成されたボリュームが有する特性に関する物理的制約によって制限されることがある。
【００１０】
従って、ストレージ仮想化の従来の概念は、ストレージのビュー（すなわち、ユーザ定義ボリューム）をクライアントに提示することを含む。ユーザ定義ボリュームは、クライアントからアクセス可能な種々のディスクのエクステントのうちの、ユーザまたはシステム管理者によって選択されたものから形成される。管理者によって実施されるこの選択プロセスは一般に、以下を含む。
(i)クライアントからアクセス可能なストレージに関連するディスクから種々のエクステントを選択する。
(ii)それらのエクステントに基礎信頼性保証（ＲＡＩＤやミラーリングなど）を適用し、ボリュームの信頼性を確保する。
(iii)信頼出来るそれらのエクステントを１つのストレージエンティティ（例えば、ディスクやＬＵＮなど）としてユーザに提示する。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、ストレージ・システム上でストレージ仮想化選択プロセスを効率よく実施することを目的としている。
【課題を解決するための手段】
【００１２】
本発明は、仮想化選択プロセスを「自動化」し、マルチプロトコル・ストレージ・アプライアンスのようなストレージ・システムのストレージ・オペレーティング・システムによって実施されるファイルシステムのボリューム上に仮想ディスク（ｖｄｉｓｋ）を「層化」（作成）するストレージ仮想化選択技術に関する。大まかに言うと、ファイルシステムは、ディスクまたはディスクの部分（例えば、エクステント）の集合からなる物理記憶をブロック・プールに集め、それらを動的に割り当ててｖｄｉｓｋを形成できるようにする仮想化システムを提供する。さらに、ファイルシステムは、ファイルシステムの基礎アーキテクチャに従ってｖｄｉｓｋに信頼性保証を与える。すなわち、ファイルシステムは、複数の管理対象ディスクによって形成されたボリューム内に記憶装置を編成する。その後、ボリューム内にｖｄｉｓｋをストレージ・オブジェクトとして作成する。その際、ｖｄｉｓｋはそのボリュームに関連する基礎信頼性保証を継承する。特筆すべきことは、ディスクの部分が、ストレージ・アプライアンスのシステム管理者等のユーザからのｖｄｉｓｋを作成する要求に応じて集められ、ｖｄｉｓｋに割り当てられるものであり、ユーザがそれ以上関与する必要はないということである。
【００１３】
本発明の一態様によれば、本技術は、ファイルシステムに対し、ｖｄｉｓｋのディスク上表現を提供する。ｖｄｉｓｋは、普通（通常）のファイルのうち、ディスクのエミュレーションを支援するエクスポート制御および動作制限に関連付けられたファイルに由来する、ボリューム内の特別なファイルタイプである。詳しくは、ｖｄｉｓｋは、特別なファイルｉｎｏｄｅと、それに関連する少なくとも１つのストリームｉｎｏｄｅとからなるマルチｉｎｏｄｅオブジェクトであって、ファイルシステム内で１つの「カプセル化」ストレージ・オブジェクトとして管理されるマルチｉｎｏｄｅオブジェクトである。この特別なファイルｉｎｏｄｅは、エミュレート・ディスクに関連するデータを格納するためのメインコンテナとして機能する。ストリームｉｎｏｄｅは、ｖｄｉｓｋを論理ユニット番号（ＬＵＮ）として例えばストレージ・エリア・ネットワーク（ＳＡＮ）クライアントにエクスポートするための種々の属性を格納する永久記憶として機能する。それらの属性には、カプセル化されたｖｄｉｓｋに例えば何度もリブート処理を行ったときに、そのｖｄｉｓｋをＳＡＮクライアントに関連する１つのディスクオブジェクトとして管理できるようにするためのセキュリティ情報も含まれる。
【００１４】
有利なことに、ボリューム内に作成されるｖｄｉｓｋの信頼性特性は、その基礎となるボリュームの信頼性構成によって決まる。マルチプロトコル・ストレージ・アプライアンスのこのような信頼性「継承」法によれば、ユーザ（システム管理者）は記憶対象物（ｖｄｉｓｋ）ごとに信頼性問題を解決する必要がなくなるので、ｖｄｉｓｋの管理が簡単になる。つまり、システム管理者は、ボリューム全体に関する信頼性の選択を行なうだけでよくなる。
【００１５】
本発明の上記の利点およびその他の利点は、添付の図面とともに下記の説明を参照することで、さらによく理解できるであろう。図中、同一の参照符号は、同一の要素または機能的に類似の要素を指している。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明で使用するのに都合がよいマルチプロトコル・ストレージ・アプライアンス１００を示す略ブロック図である。マルチプロトコル・ストレージ・アプライアンス１００は、一体に構成された複数の記憶装置に格納された情報にアクセスするために、ファイルプロトコル・ストレージサービスとブロックプロトコル・ストレージサービスの２つのサービスを提供するように構成される。これに関し、統合型マルチプロトコル・アプライアンスとは、ネットワーク・アタッチド・ストレージ（ＮＡＳ）デプロイメントやストレージ・エリア・ネットワーク（ＳＡＮ）のユーザ（システム管理者）およびクライアントにとって記憶空間が再利用可能であることを含めて、ストレージ・サービスの管理が容易であることや、記憶装置の再構成が簡単であること等の特徴を有するコンピュータを意味する。
【００１７】
マルチプロトコル・ストレージ・アプライアンス１００は例えば、システム・バス１２３によって相互接続された、プロセッサ１２２、メモリ１２４、複数のネットワーク・アダプタ１２５、１２６およびストレージ・アダプタ１２８を含むストレージ・システムとして実施される。また、マルチプロトコル・ストレージ・アプライアンス１００は、情報を名前付きのディレクトリ、ファイルおよび仮想ディスク（ｖｄｉｓｋ）・ストレージ・オブジェクトの階層構造としてディスク１３０上に論理編成する仮想化システム（および、特にファイルシステム）として機能するストレージ・オペレーティング・システム２００をさらに含む。本発明で使用するのに都合がよいマルチプロトコル・ストレージ・アプライアンスの一例は、”A Multi-Protocol Storage Appliance that Provides Integrated Support for File and Block Access Protocols”と題する、本発明と同じ譲受人に譲渡された同時係続中の米国特許出願第（１１２０５６−００７０）号に記載されている。この出願は、参照によりその全てが説明されたものとして本明細書に組み込まれる。
【００１８】
ＮＡＳ系ネットワーク環境のクライアントは、ファイルの視点からストレージを見るのに対し、ＳＡＮ系ネットワーク環境のクライアントは、ブロックまたはディスクの視点からストレージを見る。そのため、マルチプロトコル・ストレージ・アプライアンス１００は、論理ユニット番号（ＬＵＮ）またはｖｄｉｓｋオブジェクトを作成することにより、ディスクをＳＡＮクライアントに見せる（エクスポートする）。ｖｄｉｓｋオブジェクト（以下「ｖｄｉｓｋ」）は、仮想化システムによって実施される特別なファイルタイプであり、ＳＡＮクライアントから見るとエミュレート・ディスクとして解釈される。後で詳しく説明するように、マルチプロトコル・ストレージ・アプライアンスは、エクスポートを制御して、ＳＡＮクライアントがそれらのエミュレート・ディスクにアクセスできるようにする。
【００１９】
図示の実施形態において、メモリ１２４は、本発明に関係するソフトウェアプログラムやデータ構造を格納するための、プロセッサやアダプタによってアドレス指定可能な複数の格納場所を有する。そして、プロセッサおよびアダプタは、ソフトウェアプログラムを実行し、データ構造を操作するように構成された処理要素および／または論理回路を含む。ストレージ・オペレーティング・システム２００の一部は通常、メモリに常駐し、それらの処理要素によって実行され、特に、ストレージ・アプライアンスによって実施されるストレージサービスを支える記憶処理を実施することにより、ストレージ・アプライアンスの機能を構成する。本明細書に記載されている発明に関係するプログラム命令を記憶または実行するために、他の処理手段や、種々のコンピュータ読取可能媒体のような他の記憶手段を使用してもよいことは、当業者にとって明らかであろう。
【００２０】
ネットワークアダプタ１２５は、以下で例示的なイーサネット（登録商標）ネットワーク１６５と呼ぶポイント・ツー・ポイントリンク、ワイドエリアネットワーク、公共ネットワーク上で実施される仮想私設ネットワーク、または共有ローカルエリアネットワークを介して、ストレージ・アプライアンスを複数のクライアント１６０ａ，１６０ｂに接続する。このＮＡＳ系ネットワーク環境の場合、クライアントは、マルチプロトコル・ストレージ・アプライアンス上にファイルとして格納された情報にアクセスするように構成される。従って、ネットワークアダプタ１２５は、ストレージ・アプライアンスを従来のイーサネット（登録商標）・スイッチ１７０のようなネットワークスイッチに接続するために必要となる機械的電気的信号回路を備えたネットワークインタフェースカード（ＮＩＣ）を含む。クライアント１６０は、ＴＣＰ／ＩＰのような所定のプロトコルに従って個々のデータフレームまたはデータパケットをやり取りすることにより、ネットワーク１６５を介してストレージ・アプライアンスと通信する。
【００２１】
クライアント１６０は、ＵＮＩＸ（登録商標）やＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）のような種々のオペレーティング・システム上でアプリケーションを実行するように構成された汎用コンピュータであってよい。クライアント・システムは一般に、ＮＡＳ系ネットワークを介して（ファイルやディレクトリの形の）情報にアクセスする場合、ファイル単位のアクセス・プロトコルを使用する。従って、各クライアント１６０は、ネットワーク１６５を介してファイル・アクセス・プロトコル・メッセージを（パケットの形で）ストレージ・アプライアンス１００に発行することにより、ストレージ・プライアンスにサービスを要求する。例えば、Ｗｉｎｄｏｗｓ（登録商標）・オペレーティング・システムを実行しているクライアント１６０ａは、「ＣＩＦＳ ｏｖｅｒ  ＴＣＰ／ＩＰ」プロトコルを用いてストレージ・アプライアンス１００と通信することができる。一方、ＵＮＩＸ・オペレーティング・システムを実行しているクライアント１６０ｂは、「ＮＦＳ  ｏｖｅｒ  ＴＣＰ／ＩＰ」プロトコルを用いて、若しくは「ＲＤＭＡ  ｏｖｅｒ  ＶＩ」プロトコルに従って転送を行なう「ＤＡＦＳ  ｏｖｅｒ  ＶＩ」プロトコルを用いて、マルチプロトコル・ストレージ・アプライアンスと通信することができる。他のタイプのオペレーティング・システムを実行する他のクライアントが、他のファイル・アクセス・プロトコルを用いて統合型マルチプロトコル・ストレージ・アプライアンスと通信することも可能であることは、当業者にとって明らかであろう。
【００２２】
ストレージ・ネットワーク・「ターゲット」・アダプタ１２６も、マルチプロトコル・ストレージ・アプライアンス１００をクライアント１６０に接続する。クライアント１６０はさらに、ブロックまたはディスクとして格納された情報にアクセスするように構成される場合もある。ＳＡＮ系ネットワーク環境の場合、ストレージ・アプライアンスは、ファイバ・チャネル（ＦＣ）・ネットワーク１８５に接続される。ＦＣとは、ＳＡＮデプロイメントで主に使用される適当なプロトコルや媒体が記載されているネットワーク規格である。ネットワーク・ターゲット・アダプタ１２６は、ストレージ・アプライアンス１００を従来のＦＣスイッチ１８０のようなＳＡＮ・ネットワーク・スイッチに接続するために必要となる機械的電気的信号回路を備えたＦＣホストバスアダプタ（ＨＢＡ）を含む。ＦＣ  ＨＢＡは、ＦＣアクセスを可能にするだけでなく、ストレージ・アプライアンスのファイバ・チャネル・ネットワーク処理動作の負荷も軽減する。
【００２３】
クライアント１６０は一般に、ＳＡＮ系ネットワークを介して情報にアクセスするときにＳＣＳＩプロトコルのようなブロック単位のアクセス・プロトコルを使用する。ＳＣＳＩは、装置に依存しない標準的プロトコルを備えた周辺装置入出力（Ｉ／Ｏ）インタフェースであり、ディスク１３０のような種々の周辺装置をストレージアプライアンス１００に接続できるようにする。ＳＡＮ環境で動作するクライアント１６０は、ＳＣＳＩ用語で「イニシエータ」と呼ばれ、データの要求やコマンドを開始する。従って、マルチプロトコル・ストレージ・アプライアンスは、要求／応答プロトコルに従ってイニシエータによって発行された要求に応答するように構成された「ターゲット」である。ＦＣプロトコルによれば、イニシエータおよびターゲットは、終点アドレスを有し、ワールド・ワイド・ネーム（ＷＷＮ）を有する。ＷＷＮは一意の識別子であり、例えば８バイトの数からなるノード名またはポート名である。
【００２４】
マルチプロトコル・ストレージ・アプライアンス１００は、「ＳＣＳＩ  ｅｎｃａｐｓｕｌａｔｅｄ  ｏｖｅｒ  ＴＣＰ（ｉＳＣＳＩ）」や、「ＳＣＳＩ  ｅｎｃａｐｓｕｌａｔｅｄ  ｏｖｅｒ  ＦＣ（ＦＣＰ）」のような、ＳＡＮ環境で使用される種々のＳＣＳＩ系のプロトコルをサポートする。従って、イニシエータ（以下、クライアント１６０）は、ネットワーク１８５を介してｉＳＣＳＩメッセージやＦＣＰメッセージを発行することにより、ターゲット（以下、ストレージ・アプライアンス１００）にサービスを要求し、ディスク上に格納された情報にアクセスする。クライアントが他のブロック・アクセス・プロトコルを用いて一体化マルチプロトコル・ストレージ・アプライアンスにサービスを要求してもよいことは、当業者にとって明らかであろう。マルチプロトコル・ストレージ・アプライアンスは、複数のブロック・アクセス・プロトコルをサポートすることで、異種のＳＡＮ環境においても、ｖｄｉｓｋ／ＬＵＮに対する統一的で一貫性のあるアクセス方法を提供することができる。
【００２５】
ストレージ・アダプタ１２８は、ストレージ・アプライアンス上で実行されているストレージ・オペレーティング・システム２００と協働し、クライアントから要求された情報を取得する。この情報は、ディスク１３０に格納されている場合もあれば、情報を格納するように構成された他の似たような媒体に格納されている場合もある。ストレージ・アダプタは、従来の高性能ＦＣシリアルリンクトポロジのようなＩ／Ｏ相互接続構成を介してストレージ・アダプタをディスクに接続するためのＩ／Ｏインタフェースを有する。情報は、ストレージ・アダプタによって取得された後、システム・バス１２３を介してネットワーク・アダプタ１２５、１２６に転送される前に、必要に応じてプロセッサ１２２（若しくはアダプタ１２８自体）によって処理される。そしてネットワーク・アダプタ１２５、１２６は、その情報をパケットまたはメッセージの形にフォーマットし、クライアントに返送する。
【００２６】
アプライアンス１００に対する情報の格納は、ディスク空間の全体的論理構成を定義しつつ、物理ストレージディスク１３０の集まりからなる１以上のストレージボリューム（例えば、ＶＯＬ１〜２  １５０）として実施することが好ましい。ボリューム内のディスクは通常、１以上のＲＡＩＤグループに編成される。ＲＡＩＤ実施形態は、ＲＡＩＤグループ内の所与の数の物理ディスクにわたってデータを「ストライプ」状に書き込み、さらにそのストライプ状のデータに関する冗長情報を適当に記憶することによって、データ記憶の信頼性／完全性を向上させる。記憶装置が故障した場合でも、冗長情報によって、失われたデータを復元することが可能になる。
【００２７】
具体的には、各ボリューム１５０は、ＲＡＩＤグループ１４０、１４２、１４４として編成された物理ディスク１３０のアレイから構成される。ＲＡＩＤ４レベル構成の場合、各ＲＡＩＤグループの物理ディスクは、ストライプ・データ（Ｄ）を格納するように構成された物理ディスクと、それらのデータのパリティ（Ｐ）を格納するように構成された物理ディスクとを含む。ただし、他のＲＡＩＤレベル構成（例えば、ＲＡＩＤ５など）も可能である。図示の実施形態では、１台のパリティディスクと、１台のデータディスクとからなる最小構成を採用する場合がある。しかしながら、典型的な実施形態は、１つのＲＡＩＤグループ当たり３台のデータディスクと１台のパリティディスクとを含み、１つのボリューム当たり少なくとも１つのＲＡＩＤグループを含む実施形態であろう。
【００２８】
ディスク１３０に対するアクセスを容易にするために、ストレージ・オペレーティング・システム２００はＷｒｉｔｅ−ａｎｙｗａｒｅファイルシステムを実施し、仮想化モジュールと協働し、ディスク１３０から得られる記憶空間を「仮想化」する機能を提供する。ファイルシステムは、情報を名前付きのディレクトリおよびファイル・オブジェクト（以下、「ディレクトリ」および「ファイル」）の階層構造としてディスク上に編成する。「ディスク上」の各ファイルは、データ等の情報を格納するように構成された一連のディスク・ブロックとして実施される一方、ディレクトリは、他のファイルまたはディレクトリの名称や、それらに対するリンクを格納する特別な形のファイルとして実施される。
仮想化システムは、ファイルシステムが、情報を名前付きｖｄｉｓｋの階層構造としてディスク上にさらに論理編成できるようにし、名前付きのファイルおよびディレクトリに対するファイル単位のアクセス（ＮＡＳ）を可能にすると同時に、ファイルベースのストレージ・プラットフォーム上のｖｄｉｓｋに対するブロック単位のアクセス（ＳＡＮ）をさらに可能にすることにより、ＮＡＳアプライアンスとＳＡＮアプライアンスの統一的記憶方法を提供する。
【００２９】
図示の実施形態において、ストレージ・オペレーティング・システムは、カリフォルニア州、サニーベイルにあるネットワーク・アプライアンス・インコーポレイテッドから市販されているＮｅｔＡｐｐ  Ｄａｔａ  ＯＮＴＡＰ（登録商標）オペレーティング・システムであることが好ましい。ＮｅｔＡｐｐ  Ｄａｔａ  ＯＮＴＡＰ（登録商標）オペレーティング・システムは、ＷＡＦＬ（登録商標）（Write Anywhere File Layout）ファイルシステムを実施する。ただし、書き込み場所固定式ファイルシステムのような、何らかの適当なオペレーティング・システムを、本発明に記載された発明の原理に従って拡張して使用することも可能である。従って、「ＷＡＦＬ］という用語が使用された場合、その用語は、本発明の教示に適合する任意のストレージ・オペレーティング・システムを指すものとして広い意味で解釈しなければならない。
【００３０】
「ストレージ・オペレーティング・システム」という用語が本明細書で使用される場合、その用語は通常、データアクセスの管理を行なう、コンピュータ上で動作するコンピュータ実行可能コードを意味し、マルチプロトコル・ストレージ・アプライアンスの場合、ストレージ・オペレーティング・システムは、マイクロカーネルとして実施されるＤａｔａ  ＯＮＴＡＰストレージ・オペレーティング・システムのように、データ・アクセス・セマンティックを実施する場合がある。また、ストレージ・オペレーティング・システムは、ＵＮＩＸ（登録商標）やＷｉｎｄｏｗｓ（登録商標）などの汎用オペレーティング・システム上で動作するアプリケーションプログラムとして実施することもでき、あるいは、本明細書に記載されるようなストレージ・アプリケーションに合わせて構成される機能構成可能な汎用オペレーティング・システムとして実施することもできる。
【００３１】
さらに、本明細書に記載される本発明の技術が、スタンドアロンのコンピュータやその一部を含むストレージ・システムとして実施される、またはストレージ・システムを含む、いかなるタイプの特殊用途のコンピュータ（例えば、ストレージ・サービス・アプライアンスなど）および汎用コンピュータにも適用できるものであることは、当業者にとって明らかであろう。さらに、本発明の教示は、限定はしないが、ＮＡＳ環境、ＳＡＮ環境、および、クライアントまたはホストコンピュータに直接取り付けられたディスク・アセンブリなどを含む、種々のストレージ・システム・アーキテクチャに適合させることができる。従って、「ストレージ・システム」という用語は、他の装置またはシステムに接続され、ストレージ機能を実施するように構成された何らかのサブシステムだけでなく、それらの構成も含むものとして広い意味で解釈しなければならない。
【００３２】
図２は、本発明で使用するのに都合がよいストレージ・オペレーティング・システム２００を示す略ブロック図である。ストレージ・オペレーティング・システムは、統合型ネットワーク・プロトコル・スタックを形成するように構成された一連のソフトウェア層を含む。すなわち、一般には、ストレージ・オペレーティング・システムは、マルチプロトコル・ストレージ・アプライアンス上に格納された情報をクライアントがブロック・アクセス・プロトコルやファイル・アクセス・プロトコルを用いてアクセスできるようにするためのデータ・パスを提供するマルチプロトコル・エンジンを含む。プロトコルスタックは、ネットワーク・ドライバ（例えば、ギガビット・イーサネット（登録商標）・ドライバなど）からなるメディア・アクセス層２１０を含み、メディア・アクセス層２１０は、ＩＰ層２１２や、その支援搬送手段であるＴＣＰ層２１４およびユーザ・データグラム・プロトコル（ＵＤＰ）層２１６などのネットワーク・プロトコル層と連絡する。マルチプロトコル・ファイル・アクセス機能を提供するファイルシステム・プロトコル層は、その目的のために、ＤＡＦＳプロトコル２１８、ＮＦＳプロトコル２２０、ＣＩＦＳプロトコル２２２およびハイパーテキスト・トランスファ・プロトコル（ＨＴＴＰ）プロトコル２２４を含む。ＶＩ層２２６は、ＶＩアーキテクチャを実施し、ＤＡＦＳプロトコル２１８に必要とされるＲＤＭＡのようなＤＡＴ（Direct Access Transport)機能を提供する。
【００３３】
ｉＳＣＳＩドライバ層２２８は、ＴＣＰ／ＩＰネットワークプロトコル層を介したブロック・プロトコル・アクセス機能を提供し、ＦＣドライバ層２３０は、ＦＣ  ＨＢＡ１２６とともに動作し、ブロックアクセス要求の送受信と、統合型ストレージ・アプライアンスに対する応答とを行なう。ＦＣドライバおよびｉＳＣＳＩドライバは、ＬＵＮ（ｖｄｉｓｋ）に対して、ＦＣ特有のアクセス制御およびｉＳＣＳＩ特有のアクセス制御を行なう。すなわち、ＦＣドライバおよびｉＳＣＳＩドライバは、マルチプロトコル・ストレージ・アプライアンス上の１つのｖｄｉｓｋをアクセスするときに、ｉＳＣＳＩとＦＣＰのどちらか一方に対するｖｄｉｓｋのエクスポート、またたは、両方に対するｖｄｉｓｋのエクスポートを管理する。さらに、ストレージ・オペレーティング・システムは、ＲＡＩＤプロトコルなどのディスク・ストレージ・プロトコルを実施するディスク・ストレージ層２４０と、ＳＣＳＩプロトコルなどのディスク・アクセス・プロトコルを実施するディスク・ドライバ層２５０とを含む。
【００３４】
それらのディスク・ソフトウェア層を統合型ネットワーク・プロトコル・スタック層に橋渡しするのが、仮想化システム３００である。図３は、仮想化モジュールと交信するファイルシステム３２０によって実施される仮想化システム３００を示す略ブロック図である。仮想化モジュールは、例えばｖｄｉｓｋモジュール３３０およびＳＣＳＩターゲット・モジュール３１０として実施される。ｖｄｉｓｋモジュール３３０、ファイルシステム３２０およびＳＣＳＩターゲット・モジュール３１０が、ソフトウェアで実施することも、ハードウェアで実施することも、ファームウェアで実施することもでき、さらにそれらの組み合わせで実施することも可能であることは、当業者にとって明らかであろう。ｖｄｉｓｋモジュール３３０は、ファイルシステム３２０上に階層化され、システム管理者がマルチプロトコル・ストレージ・アプライアンスに対して発行したコマンドに応答して、簡易ユーザインタフェース（ＵＩ３５０）のような管理インタフェースによってアクセスすることができる。要するに、ｖｄｉｓｋモジュール３３０は、システム管理者がＵＩ３５０を通じて発行した様々な一連のｖｄｉｓｋコマンドを実施することにより、特にＳＡＮデプロイメントを管理する。それらのｖｄｉｓｋコマンドは、原始的なファイルシステム処理（「プリミティブ」）に変換され、ファイルシステム３２０およびＳＣＳＩターゲット・モジュール３１０に作用し、ｖｄｉｓｋを実施する。
【００３５】
次いでＳＣＳＩターゲット・モジュール３１０は、ＬＵＮを特別なｖｄｉｓｋファイルタイプに変換するマッピング手順を提供することにより、ディスクまたはＬＵＮのエミュレーションを開始する。ＳＣＳＩターゲット・モジュールは、例えばＦＣドライバやｉＳＣＳＩドライバ２２８と、ファイルシステム３２０との間に配置され、仮想化システム３００にとって、ＳＡＮブロック（ＬＵＮ）空間とファイルシステム空間との間の変換層として機能する。その際、ＬＵＮはｖｄｉｓｋ３２２として表現される。その目的のために、ＳＣＳＩターゲット・モジュールは、ＳＣＳＩプロトコルを利用してｉＳＣＳＩドライバ２２８とＦＣＰドライバ２３０の両方に共通なインタフェースとなる一連のアプリケーション・プログラム・インタフェース（ＡＰＩ３６０）を有する。マルチプロトコル・ストレージ・アプライアンスは、ＳＡＮ仮想化をファイルシステム３２０全体に「配置」することにより、従来のシステムで行なわれていた方法を逆転させ、実質的に全てのストレージ・アクセス・プロトコルに対して１つの統一されたストレージ・プラットフォームを提供する。
【００３６】
ファイルシステム３２０は例えばメッセージを利用したシステムである。従って、ＳＣＳＩターゲット・モジュール３１０は、ＳＣＳＩ要求をファイルシステムに対する処理を表すメッセージに変換する。ＳＣＳＩターゲット・モジュールによって生成されるメッセージには、例えば、ファイルシステム上に表現されたｖｄｉｓｋオブジェクトのパス名（例えば、パス記述子など）およびファイル名（例えば、特別なファイル名など）を伴なう処理のタイプ（例えば、読出し、書込みなど）がある。ＳＣＳＩターゲット・モジュールは、メッセージを例えばファンクションコール３６５としてファイルシステム３２０に渡し、そこでその処理が実施される。
【００３７】
ファイルシステムは、ブロック単位のアクセスによって情報をディスク等の記憶装置に格納する際に使用されるボリューム管理機能を備える。すなわち、ファイルシステム３２０は、ストレージ・オブジェクトの名前付けなどのファイルシステム・セマンティックの他に、通常ならばボリューム・マネージャに関連する機能も提供する。そのような機能には、(i)ディスクを集める機能、(ii)ディスクの記憶帯域幅を集める機能、(iii)ミラーリングおよび／またはパリティ（ＲＡＩＤ）のような信頼性保証機能などがあり、それらによって１以上のストレージ・オブジェクトをファイルシステム上に階層化して表現する。マルチプロトコル・ストレージ・アプライアンスの特徴は、マルチプロトコル・ストレージ・アプライアンスを特にＳＡＮデプロイメントで使用したときの、それらのボリューム管理機能に関する使用の簡単さにある。
【００３８】
ファイルシステム３２０は、例えばブロック単位のディスク上フォーマット表現を有するＷＡＦＬファイルシステム、例えば４キロバイト（ｋＢ）ブロックを使用し、ｉｎｏｄｅを用いてファイル３２４を表現するようなＷＡＦＬファイルシステムを実施する。ＷＡＦＬファイルシステムは、ファイルを用いてファイルシステムのレイアウトを表すメタデータを格納する。それらのメタデータファイルには、特に、ｉｎｏｄｅファイルが含まれる。ファイルハンドル、すなわちｉｎｏｄｅ番号を含む識別子を用いて、ディスクからｉｎｏｄｅを取得する。ディスク上ｉｎｏｄｅおよびｉｎｏｄｅファイルを有するファイルシステムの構造に関する説明については、１９９８年１０月６日にＤａｖｉｄ  Ｈｉｔｚ他に付与された「Method for Maintaining Consistent States of a File System and for Creating User Accessible Read-Only Copies of a File System」と題する米国特許第５，８１９，２９２号に記載されており、この特許は、ここで参照することにより、完全に説明されたものとして本明細書に取り込まれる。
【００３９】
図４は、ディスク上のｉｎｏｄｅ４００を示す略ブロック図である。ｉｎｏｄｅ４００は、メタデータ部４１０とデータ部４５０とを含むことが望ましい。各ｉｎｏｄｅ４００のメタデータ部４１０に格納される情報はファイルを表し、例えば、ファイルのタイプ（例えば、通常またはディレクトリ）４１２、ファイルのサイズ４１４、ファイルのタイムスタンプ（例えば、アクセスおよび／または変更）４１６、および所有者、すなわち、ファイルの識別子（ＵＩＤ４１８）およびグループＩＤ（ＧＩＤ４２０）などがある。メタデータ部４１０は、ディスク上の他のｉｎｏｄｅ構造を、例えばファイルまたはディレクトリに関連するアクセス・コントロール・リスト（ＡＯＬ）情報などを参照するポインタが格納されるｘｉｎｏｄｅフィールド４３０をさらに含む。ただし、各ｉｎｏｄｅのデータ部４５０の内容は、タイプフィールド４１２に定義されたファイルタイプ（ｉｎｏｄｅ）に応じて、様々に解釈される場合がある。例えば、ディレクトリｉｎｏｄｅのデータ部４５０は、ファイルシステムによって制御されるメタデータを格納する一方、通常ｉｎｏｄｅのデータ部は、ユーザ定義データを格納する場合がある。後者の場合、データ部４５０は、ファイルに関連するデータの表現を含む。
【００４０】
具体的には、ディスク上の通常ｉｎｏｄｅのデータ部４５０は、ユーザデータまたはポインタを含む。後者は、ユーザデータの格納に使用されるディスク上の４ｋＢデータブロックを表すものである。各ポインタは、論理ボリュームブロック番号にすることが好ましい。そのようにすると、ディスク上のデータにアクセスするときのファイルシステムとディスクストレージ（ＲＡＩＤ）層２４０との間の効率が向上する。ｉｎｏｄｅのサイズに制限がある場合（１２８バイトなど）、６４バイト以下のサイズのユーザデータは、ｉｎｏｄｅのデータ部中に完全に表現される。しかしながら、ユーザデータが６４バイトよりも大きく且つ６４ｋＢ以下である場合、ｉｎｏｄｅのデータ部は最大で１６個までのポインタを含み、それらのポインタのそれぞれが、ディスク上の４ｋＢブロックのデータを参照する。さらに、ユーザデータのサイズが６４キロバイトよりも大きく且つ６４メガバイト（ＭＢ）以下である場合、ｉｎｏｄｅのデータ部４５０の各ポインタは、間接ポインタを参照する。間接ポインタは１０２４個のポインタを含み、それらのポインタのそれぞれが、ディスク上の４ｋＢデータブロックを参照する。データにアクセスするためには、各データブロックをディスク１３０からメモリ１２４内にロードする。なお、ｉｎｏｄｅのメタデータ部４１０のサイズフィールド４１４は、ファイルのサイズを表す。
【００４１】
大まかに言えば、ファイルシステムの全てのｉｎｏｄｅは、ｉｎｏｄｅファイルとして編成される。ファイルシステム（ＦＳ）情報ブロックは、ファイルシステム内の情報のレイアウトを指定するためのものであり、ファイルシステム内の他の全てのｉｎｏｄｅを含むファイルのｉｎｏｄｅを有する。各ボリュームはＦＳ情報ブロックを有し、ＦＳ情報ブロックは、例えばファイルシステムのＲＡＩＤグループ内の固定位置に格納することが望ましい。ルートＦＳ情報ブロックのｉｎｏｄｅは、ｉｎｏｄｅファイルの直接参照（指し示す）ブロックであってもよいし、ｉｎｏｄｅファイルの間接参照ブロック、すなわち、次いでｉｎｏｄｅファイルを直接参照するブロックであってもよい。ｉｎｏｄｅファイルの各直接参照ブロックは埋め込みｉｎｏｄｅであり、それらの各々が、間接ブロックをさらに参照し、次いでファイルまたはｖｄｉｓｋのデータブロックを参照する場合がある。
【００４２】
図３を再度参照すると、ファイルシステムは、ｖｄｉｓｋ３２２並びにファイル３２４およびディレクトリ（ｄｉｒ３２６）に対するアクセス処理と同時に、ボリューム１５０および／またはｑｔｒｅｅ３２８のようなストレージ・ユニットの全体的な記憶空間管理を実施する。ｑｔｒｅｅ３２８は、物理ボリュームの名前空間内の論理サブボリュームの属性を有する特別なディレクトリである。各ファイルシステム・ストレージ・オブジェクト（ファイル、ディレクトリ、またはｖｄｉｓｋ）は、例えば１つのｑｔｒｅｅ、クオータ、セキュリティ・プロパティに関連付けられ、他の項目は、ｑｔｒｅｅごとに割り当てられる。ｖｄｉｓｋおよびファイル／ディレクトリは、ｑｔｒｅｅ３２８の一番上の層に配置され、次いでそれらは、ファイルシステム「仮想化」層３２０による抜粋に従って、ボリューム１５０の一番上の層に配置される。
【００４３】
ファイルシステム３２０内のｖｄｉｓｋストレージ・オブジェクトは、マルチプロトコル・ストレージ・アプライアンスのＳＡＮデプロイメントに関連する一方、ファイル・ストレージ・オブジェクトおよびディレクトリ・ストレージ・オブジェクトは、アプライアンスのＮＡＳデプロイメントに関連する点に注意して欲しい。それらのファイルおよびディレクトリは一般に、ＦＣアクセス・プロトコルやＳＣＳＩブロック・アクセス・プロトコルによってアクセスすることができない。しかしながら、ファイルをｖｄｉｓｋにコンバートしてから、ＳＡＮプロトコルやＮＡＳプロトコルによってアクセスすることは可能である。ｖｄｉｓｋは、ＳＡＮ（ＦＣおよびＳＣＳＩ）プロトコルによってＬＵＮとしてアクセスされる場合もあれば、ＮＡＳ（ＮＦＳおよびＣＩＦＳ）プロトコルによってファイルとしてアクセスされる場合もある。
【００４４】
ｖｄｉｓｋは、適切な処理および認証に必要とされる全てのデータを有する自動格納オブジェクトであり、ｖｄｉｓｋの検索およびロードを性能向上させるものとして、ｖｄｉｓｋ目次（ＶＴＯＣ３７０）が設けられている。ＶＴＯＣは、正しい処理のために必ずしも必要ではなく、ｖｄｉｓｋのスキャンによって動的に再構成することができる。ＶＴＯＣ３７０は、メタデータファイルにボリュームごとに格納されたデータ構造であり、ボリューム１５０内の持続的なｖｄｉｓｋ３２２の位置判定および初期化に使用される。ＶＴＯＣ３７０は１以上のレコードを３７２を含み、該レコードのそれぞれが、フラグおよびファイルエントリ情報を含む。ＶＴＯＣ３７０は、ファイルシステム内のｖｄｉｓｋを表すカプセル化ストレージ・オブジェクトに格納された情報から動的に再構成することができる。具体的には、各レコード３７２は、(i)ボリューム上のファイル識別子（ｉｎｏｄｅ番号）、(ii)ｖｄｉｓｋ（ＬＵＮ）ｉｎｏｄｅの生成番号、(iii）ディレクトリ情報を格納するファイルエントリを有する。ディレクトリ情報は、ｖｄｉｓｋのエントリを親ディレクトリブロックにおけるディレクトリエントリのインデックスとともに格納している、親ディレクトリ（ｑｔｒｅｅ  ｒｏｏｔ）におけるファイルブロック番号を含む。
【００４５】
本発明は、仮想化選択プロセスを「自動化」し、ファイルシステム３２０のボリューム１５０上にｖｄｉｓｋ３２２の層を形成するストレージ仮想化選択技術に関する。ファイルシステムは、ｖｄｉｓｋを作成するためのユーザ要求（コマンド）に応答し、一連のディスク１３０またはディスクの部分（エクステントまたは「スライス」）からなる物理ストレージをブロック・プールに集め、それらを動的に割り当ててｖｄｉｓｋ３２２を形成する。また、ファイルシステムは、ファイルシステムの基礎アーキテクチャに従ってｖｄｉｓｋに信頼性保証を与える。すなわち、ファイルシステム３２０は、複数の管理対象ディスクによって形成されたボリューム内に記憶装置を編成する。その後、ボリューム１５０内の名前付きストレージ・オブジェクトとして、ｖｄｉｓｋ３２２を作成する。従って、ｖｄｉｓｋ３２２は、そのボリュームに関連する基礎信頼性構成を継承する。特筆すべきことは、ディスクの部分が、信頼性保証を有するｖｄｉｓｋとして集められ、割り当てられるものであり、ストレージ・アプライアンスのシステム管理者等のユーザはそれ以上関わる必要がないことである。
【００４６】
詳しくは、マルチプロトコル・ストレージ・アプライアンスのディスク１３０上の情報のストレージは、分類されない。「そのままの」ビットだけがディスク上に格納される。ファイルシステム３２０は、ボリュームの全ディスクの帯域幅を集める入出力（Ｉ／Ｏ）処理に従って、情報を長い連続的なストライプとしてディスク上に複数のディスクにわたって書き込む（格納する）ように構成される。本発明の技術によれば、ファイルシステムは、その情報をそのボリュームの複数のディスクにわたってｖｄｉｓｋとして編成する。ｖｄｉｓｋから情報を取得する場合、ユーザが指定したディスクにＩ／Ｏ処理を命じる必要はない。むしろ、ユーザはそれらの処理を意識する必要がない。なぜなら、ファイルシステムは、ｗｒｉｔｅ  ａｎｙｗｈｅｒｅレイアウトポリシーに従って、データを信頼性の高い態様でそのボリュームの全ディスクにわたって「ストライピング」するからである。このように、仮想化システム３００はユーザが意識する必要のない態様でｖｄｉｓｋを作成するので、ｖｄｉｓｋ３２２を明示的に構成する必要はない。
【００４７】
上記のように、ファイルシステム３２０は、情報を名前付きのファイル、ディレクトリ、およびｖｄｉｓｋとしてｄｉｓｋ１３０のボリューム１５０内に編成する。各ボリューム１５０の基礎となるのは、ボリューム内のディスク故障（複数の場合もあり）に対する保護および信頼性を提供するＲＡＩＤグループ１４０〜１４４の集まりである。マルチプロトコル・ストレージ・アプライアンスによってサービス提供される情報は、例えばＲＡＩＤ４構成に従って保護される。このレベルの保護は、例えばアプライアンス・プラットフォーム上の同期ミラーリングにまで拡張される場合もある。ボリューム１５０に対し後者の保護が指定された場合、ボリューム上に作成され、ＲＡＩＤ４によって保護されるｖｄｉｓｋ３２２は、さらに同期ミラーリング保護を「継承」する。この場合、同期ミラーリング保護は、ｖｄｉｓｋの特徴ではなく、基礎ボリュームの特徴およびファイルシステム３２０の信頼性保証である。マルチプロトコル・ストレージ・アプライアンスのこの「継承」特性によれば、システム管理者が信頼性問題を扱う必要がなくなるので、ｖｄｉｓｋの管理は簡単になる。
【００４８】
ｖｄｉｓｋは、普通（通常）のファイルのうち、ディスクのエミュレーションを支援するエクスポート制御および動作制限に関連するファイルに由来する、ボリューム内の特別なファイルタイプである。詳しくは、ｖｄｉｓｋ３２２は、特別なファイルｉｎｏｄｅと、少なくとも１つの関連ストリームｉｎｏｄｅとを含み、ファイルシステム３２０内で１つのカプセル化ストレージ・オブジェクトとして管理されるマルチｉｎｏｄｅオブジェクトである。ｖｄｉｓｋ３２２は、ストリームｉｎｏｄｅの一実施形態として例えば、特別なファイルｉｎｏｄｅと協働し、具体的なセキュリティ、管理、およびアドレス指定（エクスポート）情報をカプセル化する容量を有する新たなタイプのファイルストレージ・オブジェクトを作成するという実施形態を有する。本発明で使用するのに都合がよいストリームｉｎｏｄｅオブジェクトの一例が、２００１年６月２５日に出願されたＫ．Ｐａｔｅｌによる「System and Method for Representing Named Data Streams Within an On-Disk Structure of a File System」と題する米国特許出願第０９／８９１，１９５号に記載されている。この特許出願は、ここで参照することにより、完全に説明されたものとして本明細書に取り込まれる。
【００４９】
本発明の一態様によれば、ストレージ仮想化技術は、クライアントに提示されるディスクまたはＬＵＮから、物理ディスクサイズおよび基礎物理構造を分離する。ユーザは、例えば、物理ディスクのように見えるｖｄｉｓｋに関するクライアント視点での管理を容易にする構成を用いて、クライアントで使用されるブロックデバイス（ｖｄｉｓｋ）として、「正しいサイズ」のストレージを指定することができる。すなわち、ｖｄｉｓｋは、例えば、コマンドラインインタフェース（ＣＬＩ３２）またはグラフィカルユーザインタフェース（ＧＵＩ３５４）のどちらかを使用し、簡単な「ＬＵＮ作成」コマンドを用いて具体的サイズを指定することにより、ファイルシステムの汎用ストレージ・プールの中から割り当てられた固定サイズのオブジェクトである。
【００５０】
ｖｄｉｓｋはマルチプロトコル・ストレージ・アプライアンス内の物理ディスクではないが、ストレージ仮想化技術は、物理ディスクを「エミュレート」する。すなわち、物理ディスクをユーザやクライアントにとって透過的な（意識する必要のない）態様にする。この技術によって実施される１つの重要なディスクエミュレーション特性は、ＣＬＩまたはＧＵＩを使用しなければ、ｖｄｉｓｋを作成することも破壊（除去）することもできないことである。この特性で明らかなことは、ＮＡＳプロトコル（共有するためのコマンドによる明示的動作）によってｖｄｉｓｋをアクセスすることは出来るが、その割り当て空間の外側に対するＮＡＳ書込み処理によってｖｄｉｓｋを明示的に拡大することはできないということである。ｖｄｉｓｋは、コピー処理を行なうことなく、クライアントにとって透過的な態様で実施することが、例えば、大きく（「拡大」）したり、小さく（「縮小」）したりすることが出来る。注目すべき点は、ｖｄｉｓｋは、アプリケーションデータに対するブロックプロトコルアクセスおよびＮＡＳマルチプロトコルアクセスを維持しつつ、ユーザ制御（例えば、ＵＩ３５０を通じて発行されたＬＵＮコマンドにより）による拡大縮小が可能であることである。ｖｄｉｓｋを拡大する場合、追加の記憶空間を割り当てる。ｖｄｉｓｋを縮小する場合、ｖｄｉｓｋから余分な空間を汎用フリー・プールに戻す。さらに、ユーザ（システム管理者）は、従来のブロックアクセスアプリケーションで使用したいｖｄｉｓｋを動的に（「オン・ザ・フライ」で）作成する能力を有する。
【００５１】
また、本発明の技術によれば、記憶装置内のｖｄｉｓｋおよびクライアント上で使用される管理ツールを簡単な名前（ユーザが定義した文字および数字から構成される）で識別することにより、ｖｄｉｓｋの管理が簡単になる。ＳＡＮクライアントは通常、論理番号すなわちＬＵＮでディスクを識別し、宛先指定する。しかしながら、自動ストレージ仮想化技術によれば、システム管理者は、ｖｄｉｓｋを論理名で管理し、宛先指定することが可能になる。その目的のために、マルチプロトコル・ストレージ・アプライアンスのｖｄｉｓｋモジュール３３０は、論理名をｖｄｉｓｋにマッピングする。例えばｖｄｉｓｋを作成する場合、システム管理者は、そのｖｄｉｓｋに「正しいサイズ」を割り当て、そのｖｄｉｓｋの目的とする用途を概ね意味する名前（例えば、データベースを作る場合、/vol/vol0/databaseなど）をそのｖｄｉｓｋに割り当てる。
【００５２】
ストレージ仮想化技術は、ファイルシステムの「最上部」のディスクをｖｄｉｓｋの概要を定義することにより、性能制限の問題も解消する。この概要は、単に空間要件を満たすために必要とされる少数のディスクドライブの連結から得られる帯域幅よりも大きな帯域幅をｖｄｉｓｋに与えることによって、元になるディスクの帯域幅を集める。さらに、ファイルシステムの遅延割り当てポリシーおよび書込み合併により、純粋な物理的実施形態に比べて、ｖｄｉｓｋの帯域幅を最適化することができる。上記のように、ｖｄｉｓｋをファイルシステムの最上部に階層化することにより、ｖｄｉｓｋは、元になるボリュームの信頼性構成（例えば、ＲＡＩＤ４および／または同期式ミラーリングなど）を継承することができる。
【００５３】
本発明の他の態様によれば、ストレージ仮想化技術は、マルチプロトコル・ストレージ・アプライアンス上に格納されるｖｄｉｓｋ３２２のディスク上表現を提供する。図５は、ｖｄｉｓｋ（ＬＵＮ）およびストリーム（属性）ｉｎｏｄｅを含む本発明によるｉｎｏｄｅデータ構造のディスク上表現５００を示す略ブロック図である。ディレクトリ（ＤＩＲ１）ｉｎｏｄｅ５０２は、ディレクトリデータブロック（そのうちの１つはディレクトリブロック５０６である）を参照するポインタ５０５からなるデータ部５０４を含む。ディレクトリブロックは、複数のエントリを有し、それらのエントリのそれぞれが、そのｉｎｏｄｅの外部表現（すなわち、ｉｎｏｄｅの名前）をそのｉｎｏｄｅのマッピング情報（すなわち、ｉｎｏｄｅ番号）とともに有する。それらのエントリのうちの１つであるエントリ５０８は、ＬＵＮ  ｉｎｏｄｅ５１０を参照するマッピング情報（例えば、ポインタなど）を有している。
【００５４】
ＬＵＮ  ｉｎｏｄｅ５１０は、ｖｄｉｓｋ３２２に関するデータを格納するためのメインコンテナとして機能する特別なファイルｉｎｏｄｅである。すなわち、このＬＵＮ  ｉｎｏｄｅは、実際のデータまたは該データの格納に使用されるディスク上の４ｋＢブロックを参照するポインタを格納するデータ部５１８を含む。この「デフォルト」コンテナに格納されるデータは、ＳＣＳＩプロトコルのような従来のブロックアクセス・プロトコルを用いて、クライアントによって取得（読出し）および格納（書込み）することができる。ｖｄｉｓｋを適当に構成すれば、ｖｄｉｓｋは、ＮＦＳプロトコルのような従来のファイルレベルのアクセス・プロトコルを用いてアクセスすることもできる。この構成では、ｖｄｉｓｋは、そのようなアクセスに対して通常のファイルのように「見える」。ＬＵＮ  ｉｎｏｄｅ５１０は、メタデータ部５１２をさらに含む。メタデータ部５１２は、そのｖｄｉｓｋのタイプ５１３（すなわち、特別なｖｄｉｓｋタイプ）やサイズ５１６（ｉｎｏｄｅの作成時にはゼロである）のようなメタデータを格納する。ｆｌａｇ＿ｓｔｒｅａｍフラグ５１４は、ＬＵＮ  ｉｎｏｄｅ５１０が、デフォルトデータコンテナ部５１８を有しているだけでなく、ｓｔｒｅａｍ＿ｄｉｒ  ｉｎｏｄｅ５２０として図示されているような１以上のストリーム「部」をさらに有しているものとして識別する。
【００５５】
ｓｔｒｅａｍ＿ｄｉｒ  ｉｎｏｄｅ５２０にアクセスするためには、ＬＵＮ  ｉｎｏｄｅ５１０のｘｉｎｏｄｅフィールド５１５のポインタを、そのｉｎｏｄｅを参照するように変更する。ｓｔｒｅａｍ＿ｄｉｒ  ｉｎｏｄｅ５２０は、タイプ（ｓｔｒｅａｍ＿ｄｉｒ）フィールド５２４や、ｖｄｉｓｋに関連するアクセス制御情報（ＣＩＦＳのパーミッションなど）を格納した他のディスク上ｉｎｏｄｅ構造を参照するｘｉｎｏｄｅフィールド５２５を格納するメタデータ部５２２を含む。ｉｎｏｄｅ５２０は、ストリームディレクトリブロック５３０のようなｖｄｉｓｋに関連するストリームディレクトリデータブックを参照するポインタ５２８を格納するデータ部５２６をさらに含む。ストリームディレクトリブロック５３０は、複数のエントリを有するデータ部を含み、それらのエントリのそれぞれが、ストリームｉｎｏｄｅの外部表現とともに、そのｉｎｏｄｅのマッピング情報（すなわち、ｉｎｏｄｅ番号）を有する。それらのエントリのうちの１つであるエントリ５３４は、属性（ストリーム）ｉｎｏｄｅ５４０を参照するマッピング情報（例えば、ポインタなど）を有する。
【００５６】
属性ｉｎｏｄｅ５４０は、タイプ（ストリーム）フィールド５４３を有するメタデータ部５４２と、ｖｄｉｓｋ３２２に関連する種々の名前付き属性を保持する永久記憶として機能するデータ部５４４とを含む。属性は、ファイルシステム内部にある実施手段であり、ユーザによって管理されることはない。それらの属性は、ｖｄｉｓｋを論理ユニット番号（ＬＵＮ）として例えばＳＡＮクライアントにエクスポートできるようにするための情報を含む。さらに、それらの属性には、カプセル化ｖｄｉｓｋを例えば何回ものリブート処理の間ずっと存続させ、ＳＡＮクライアントに関連する１つのディスクオブジェクトとして管理できるようにするための情報も含まれる。
【００５７】
属性の例には、特に、幾何配置５４５、ＳＣＳＩシリアル番号５４６、空間予約５４７、状態（オンライン／オフライン）５４８、エクスポート情報５４９などがある。最後に挙げた情報は、例えば、ｖｄｉｓｋをエクスポートするイニシエータ（これらは、ｖｄｉｓｋに対するアクセスが許可されている）のリストを指示することにより、ｖｄｉｓｋに対するアクセスを制御する情報である。幾何配置情報５４５は、ディスクまたはＬＵＮのエミュレーションに必要とされるｖｄｉｓｋ３２２の物理的幾何配置に関する情報である。例えば、ｖｄｉｓｋサイズ（ユーザによって提供されたもの）をアルゴリズムによって幾何配置情報（例えば、シリンダサイズなど）に変換し、それをディスクまたはＬＵＮの表現としてＳＡＮクライアントに返す場合がある。幾何配置５４５は、属性ｉｎｏｄｅ５４０に永久的に格納されるものであるかのように図示されているが、他の実施形態において、幾何配置情報５４５は、動的に（オン・ザ・フライで）計算することもできる。
【００５８】
具体的には、ｖｄｉｓｋ作成および幾何配置選択の際に、ｖｄｉｓｋのリサイズ機能を考慮する。初期ディスク幾何配置の選択の際に、最小限１０倍のリサイズ機能を考慮に入れる。すなわち、ｖｄｉｓｋの初期要求サイズを１０倍に増加させ、得られたシリンダサを幾何配置の根拠として使用する。得られたシリンダサイズは、ｖｄｉｓｋをリサイズすることが出来る大きさに対する制限要素としても使用される。幾何配置情報は一定である。すなわち、ディスクを作成した後は、その幾何配置のほぼすべての態様が、固定される。シリンダ数だけは変更される場合がある。図示の実施形態では、シリンダ数の最大値が６５５３５である。
【００５９】
ストリームディレクトリブロック５３０の他のエントリ５３６、５３８は、ＬＵＮＭＡＰ（ストリーム）ｉｎｏｄｅ５５０や永久予約（ストリーム）ｉｎｏｄｅ５６０などの他のストリームｉｎｏｄｅを参照するマッピング情報（例えば、ポインタなど）を有する。ＬＵＮＭＡＰ  ｉｎｏｄｅ５５０は、タイプ（ストリーム）フィールド５４４を有するメタデータ部５５２と、名前値対のリスト５５８を保持する永久記憶として機能するデータ部５５６とを含む。図示の実施形態の場合、名前はイニシエータグループ（ｉｇｒｏｕｐ）名であり、値はＬＵＮ識別子（ＩＤ）である。ｉｇｒｏｕｐは、１以上のイニシエータ（クラスタ環境が構成されているか否かによって異なる）に関連する１以上のアドレスに割り当てられた論理名付きのエンティティである。それらのアドレスには、ＷＷＮアドレスやｉＳＣＳＩ  ＩＤが含まれる。「ＬＵＮ  ＭＡＰ」コマンドは、１以上のｖｄｉｓｋをｉｇｒｏｕｐにエクスポートするために使用される。すなわち、ｖｄｉｓｋ（複数の場合もあり）がｉｇｒｏｕｐから見えるようにするために使用される。その意味では、「ＬＵＮ  ＭＡＰ」コマンドは、ＮＦＳのエクスポートやＣＩＦＳのシェアと同等のコマンドである。従って、ＷＷＮアドレスまたはｉＳＣＳＩ  ＩＤは、「ＬＵＮ  ＭＡＰ」コマンドによって指定されたｖｄｉｓｋに対するアクセスが許可されたクライアントを識別するものである。
【００６０】
永久予約ｉｎｏｄｅ５６０は、タイプ（ストリーム）フィールド５６４を有するメタデータ部５６２と、ｖｄｉｓｋに関する所有者およびアクセス情報を提供する永久予約レコードのリスト５７０を保持する永久記憶として機能するデータ部５６６とを含む。永久予約については、ＮＣＩＴＳ（National Committee for Information Technology Standards）が、「ＳＣＳＩ−３  Ｐｒｉｍａｒｙ  Ｃｏｍｍａｎｄ−３」に記載している。各永久予約レコードは、ｎｅｘｕｓ（イニシエータＩＤ）５７２、予約キー（ＷＷＮ）５７４、および予約タイプ（共有、排他、読出し、書込み）５７６を含む。
【００６１】
要するに、新規のｖｄｉｓｋストレージ・オブジェクトは、１つのストレージエンティティ内のそのオブジェクトを制御および管理するのに必要とされるデータおよびメタデータを格納するように構成され、マルチプロトコル・ストレージ・アプライアンス上で実行されているストレージ・オペレーティング・システム２００の枠内で容易に管理することができる。その目的のために、ファイルシステム内では、ｖｄｉｓｋ（データおよび属性）は１つのカプセル化ユニットとして管理される。この「カプセル化」特性により、ストレージ・アプライアンス上で実行されているアプリケーションを、記録することなく、ｖｄｉｓｋを用いて動作させることが可能になる。カプセル化特性によれば、例えばカプセル化ｖｄｉｓｋストレージエンティティをバックアップする際に（例えば、非同期ミラーリング処理によって）、そのエンティティに関連するデータと属性を「結び付ける」ことが可能になる。
【００６２】
具体的には、ｖｄｉｓｋのデータ（ファイルｉｎｏｄｅ）と属性（ストリームｉｎｏｄｅ）を結び付けることにより、「自己記述式」の１つのカプセル化オブジェクトを作成することができる。自己記述式カプセル化けるオブジェクトは、そのオブジェクト（をアクセスするため）に必要な全ての情報を含むオブジェクトである。従って、ｖｄｉｓｋオブジェクトを表現するために「外部」情報を全く必要としない。なお、書込み処理（あるいはデフラグが透過的に「オン・ザ・フライ」で実行される場合の読出し処理）の際には、ｖｄｉｓｋとディスクブロックの間の結び付けがないことに、注意して欲しい。ディスクブロックは、ファイルシステム中にあるオブジェクトの論理ブロックアドレスにマッピングされる。この場合、ファイルシステムは、ダイナミック・ボリューム・マネージャとして機能する。この分離は、ファイルシステムを基本的なストレージ・マネージャとして使用した結果である。
【００６３】
本発明によれば、ｖｄｉｓｋは、「空間予約」を含む他の多数の特性を有する。すなわち、任意のサイズを有し、ファイルサイズを増加させる連続書込み処理が可能な通常ファイルとは異なり、ｖｄｉｓｋは、そのｖｄｉｓｋが作成されたときに指定された記憶空間に限定される。ただし、作成されたｖｄｉｓｋは、その記憶空間を増加させるために、明示的にリサイズすることもできる。また、ｖｄｉｓｋは作成時に記憶空間を全く消費しないという意味で、つまり、ｖｄｉｓｋを完全に満たしておく必要はないという意味で、「希少」なファイルタイプでもある。ファイルシステムは、単にｖｄｉｓｋに記憶空間（例えば、ブロックなど）を割り当て、データをそれらのブロックに格納するだけでよい。このように、ｖｄｉｓｋは「プレースホルダ」として機能するため、ｖｄｉｓｋに記憶空間を前もって割り当てておく必要はない。
【００６４】
指定サイズのｖｄｉｓｋを作成した場合、他のファイルおよびｖｄｉｓｋの作成や、ファイルシステムの永久画像の生成とは無関係に、空間予約特性によって、指定サイズに対応する記憶空間がファイルシステム内に常に確保される。希少ファイルタイプ特性は、ｖｄｉｓｋに対する書込み処理が失敗（これは、ＳＡＮクライアントから見るとディスク故障に等しい）しないことを保証する。既存のｖｄｉｓｋに対する書込み処理を常に成功させる保証は、クライアントにとって透過的なものにする必要がある。
【００６５】
希少ファイル特性の利点は、ｖｄｉｓｋの作成（例えば、「ＬＵＮの作成」）を実質的に即座に行なえることである。ｖｄｉｓｋに関連する記憶空間を前もって割り当てないので、最初に必要な情報を考慮するだけで、ｖｄｉｓｋの作成を高速かつ効率的に実施することができる。その後、ｖｄｉｓｋに対する書込み処理が実施されるときに、記憶ブロックがそのｖｄｉｓｋに割り当てられる。これに関し、大きなサイズのディスクの場合、ブロックの事前割当てには、ブロック内容の初期化（「ゼロ化」）が必要であるため、大量の時間を消費することがある。この特性は、ｖｄｉｓｋの迅速な作成を可能にするだけでなく、データの完全性および秘匿性も維持する（すなわち、データを初期化したり、古いデータを破壊したりする必要はない）。
【００６６】
図６は、本発明に従ってｖｄｉｓｋを作成するときに必要とされる各ステップシーケンスの例を示すフロー図である。シーケンスはステップ６００で始まり、ステップ６０２へ進み、そこでユーザ（システム管理者）は、例えば、マルチプロトコル・ストレージ・アプライアンスに関連するＣＬＩ３５２、ＧＵＩ３５４、またはそれらと同類の管理インタフェースを通じてｖｄｉｓｋ（「ＬＵＮ作成」）コマンドを発行することにより、ｖｄｉｓｋを作成する。ユーザの視点から見ると、ＬＵＮ作成コマンドは、ｖｄｉｓｋ（ＬＵＮ）の作成を指示するとともに、そのｖｄｉｓｋの所望のサイズおよび、そのｖｄｉｓｋの位置を指定するパス記述子（フルパス名）を伴なう原子処理である。パス記述子は、ｖｄｉｓｋを層として形成する対象となるボリュームおよびディレクトリのＩＤ（特別なファイル名で識別される）を含むことに注意して欲しい。コマンドに応答して、ファイルシステム３２０は、ｖｄｉｓｋモジュール３３０と協働し、基礎となるディスクによって提供された記憶空間を「仮想化」し、作成コマンドの指示に従ってｖｄｉｓｋを作成する。その目的のために、ｖｄｉｓｋモジュール３３０は、ｖｄｉｓｋコマンドを処理し、ファイルシステム３２０内の原始的な処理（「プリミティブ」）を「呼び出し」、ｖｄｉｓｋの高レベル概念（ＬＵＮ）を実施する。
【００６７】
例えば、ステップ６０４において、ｖｄｉｓｋモジュールはファイルシステム３２０と協働し、指定されたパス記述子およびサイズをチェックする。このチェック処理は、(i)パス記述子の中にボリュームの指定があること、(ii)指定されたボリュームに名前（特別なファイル名）がまだ割り当てられていないこと、および(iii)指定されたボリューム内にｖｄｉｓｋを作成するための十分な記憶空間があることを確認するためのものである。次にステップ６０６で、指定されたパス記述子およびサイズがチェックに合格したか否かの判定を行なう。合格しなかった場合、ステップ６０８でｖｄｉｓｋの作成は中止され、ステップ６２０でシーケンスは終了する。パス記述子およびサイズがチェックに合格した場合、ファイルシステムとｖｄｉｓｋモジュールは、協働してｖｄｉｓｋに関連するファイルｉｎｏｄｅを作成し、そのｉｎｏｄｅを指定されたサイズに設定する（ステップ６１０）。ｖｄｉｓｋ作成プロセスのステップ６１０で、普通（通常）のファイルは、例えば、ファイルｉｎｏｄｅ作成（ｃｒｅａｔｅ＿ｆｉｌｅ）プリミティブに従って作成される。
【００６８】
その後、ステップ６１２で、ストリームｉｎｏｄｅ作成（ｃｒｅａｔｅ＿ｓｔｒｅａｍ）プリミティブに従ってストリームｉｎｏｄｅを作成する。このストリームｉｎｏｄｅは、作成しようとするｖｄｉｓｋに関連する（「結び付けられた」）属性を格納する目的で作成される。ステップ６１４で、そのストリームｉｎｏｄｅに、ユーザから提供された属性を入れる。ここで、プリミティブ（ｓｔｒｅａｍ＿ｗｒｉｔｅ）を実行し、そのストリームｉｎｏｄｅに情報を格納する。属性には、特に、ｖｄｉｓｋの状態、ネットワークファイルシステムプロトコルでｖｄｉｓｋを共有するための許可、ＳＣＳＩシリアル番号のようなＳＣＳＩ  ＩＮＱＵＩＲＹ（照会）情報などが含まれる。ネットワークファイルシステムプロトコルを用いてｖｄｉｓｋをエクスポートする場合は、ファイル所有者やグループＩＤなどのパラメタを設定して使用ということに注意して欲しい。さらに空間予約保証を設定し、ｖｄｉｓｋに対する書込み処理が失敗しないようにする。次に他のプリミティブを実行し、ファイルｉｎｏｄｅのタイプを「通常」から「ｖｄｉｓｋ」に変更し（ステップ６１６）、それによって、ステップ６１８でｖｄｉｓｋ（ＬＵＮ）ｉｎｏｄｅを作成する。ステップ６１６における通常からｖｄｉｓｋへのファイルタイプの変更は、ファイルシステムが破損する可能性に対する防御である。そして、シーケンスはステップ６２０で終了する。
【００６９】
本発明の方法によるｖｄｉｓｋを作成する一連のステップの例について図示説明したが、本発明の思想および範囲から外れることなく、他にも種々の変更および修正を施すことができるものと考えられる。例えば、代替実施形態において、図示のｖｄｉｓｋ作成プロセスのステップ６１０〜６１６（ストリームｉｎｏｄｅの作成や、ストリームｉｎｏｄｅに属性を入れることなどを含む）は、ｖｄｉｓｋ（ＬＵＮ）を直接作成するように変更することもできる。さらに、当業者であれば、他の構成の方法を用いて、ユーザの視点から見たときのそのような原子作成を、本発明の原理に従うものにすることもできると考えられる。
【００７０】
有利なことに、ｖｄｉｓｋは、ファイルｉｎｏｄｅオブジェクトと協働するストリームｉｎｏｄｅオブジェクトの一実施形態として、特定のセキュリティ、管理、および情報のアドレス指定（エクスポート）のカプセル化機能を有する新たな特別なタイプのファイルストレージ・オブジェクトを作成する。特に、ｖｄｉｓｋは、セキュリティ情報（例えば、アクセス制御や永久予約レコードなど）をカプセル化し、ｖｄｉｓｋに対するアクセスを制限／制御することにより、データの完全性を維持しつつ、ＮＡＳプロトコルまたはＳＡＮ（ブロック）プロトコルによるマルチプロトコルアクセスを提供する。例えば、ｖｄｉｓｋに対するＮＡＳプロトコルによる読出しアクセスを可能にするとともに、ｖｄｉｓｋに対するＳＡＮ（ブロック）プロトコルによる読出し／書込みアクセスを可能にする。ただし、ｖｄｉｓｋに対するＮＡＳプロトコルによる書込みアクセスは、ブロックプロトコルによるアクセスが拒否されたときに許可される。特別なファイルタイプのｖｄｉｓｋは、バックアップ媒体からの目録表示や復元などのための、ｖｄｉｓｋ集合の管理を向上させる。さらに、特別なタイプは、基本的なファイルシステムのサポートによる空間予約などの特定の処理の際に、ｖｄｉｓｋの区別を容易にする。
【００７１】
上記の説明は、本発明の特定の実施形態に関するものである。しかしながら、記載した実施形態に対して他の変更および修正を施し、それらの実施形態の利点のうちの一部または全部が得られるようにすることも可能であることは、明らかである。例えば、本発明の教示は、コンピュータ上で実行されるプログラム命令を有するコンピュータ読取可能媒体も含めて、ソフトウェアで実施することも、ハードウェアで実施することも、ファームウェアで実施することもでき、それらの組み合わせで実施することもできるものと当然ながら考えられる。従って、この説明は、単なる例として解釈すべきものであり、発明の範囲を制限するものとして解釈してはならない。従って、特許請求の範囲のねらいは、それらの変更および修正が、本発明の真の思想および範囲に含まれるようにカバーすることにある。
【図面の簡単な説明】
【００７２】
【図１】本発明で使用するのに都合がよいマルチプロトコル・ストレージ・アプライアンスを示す略ブロック図である。
【図２】本発明で使用するのに都合がよいマルチプロトコル・ストレージ・アプライアンスのストレージ・オペレーティングを示す略ブロック図である。
【図３】ストレージ・オペレーティング・システムの仮想化モジュールと交信するファイルシステムによって実施される仮想化システムを示す略ブロック図である。
【図４】本発明で使用するのに都合がよいディスク上ｉｎｏｄｅデータ構造を示す略ブロック図である。
【図５】仮想ディスク（ｖｄｉｓｋ）の論理ユニット番号（ＬＵＮ）および属性を含む、本発明によるｉｎｏｄｅデータ構造のディスク上表現を示す略ブロック図である。
【図６】本発明に従ってｖｄｉｓｋを作成するときに必要とされる各ステップのシーケンスの例を示すフロー図である。
【図１】
2005535962.tif 000003
【図２】
2005535962.tif 000004
【図３】
2005535962.tif 000005
【図４】
2005535962.tif 000006
【図５】
2005535962.tif 000007
【図６】
2005535962.tif 000008
【手続補正書】
【提出日】平成17年6月9日(2005.6.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つの物理ディスクのブロックに対するアクセスを提供する方法であって、
物理ディスクの部分をブロック・プールに集めるステップと、
前記物理ディスクの部分を動的に割り当てて、特別なファイルタイプを形成するステップと、
ファイルシステムの基礎アーキテクチャに従って、前記特別なファイルタイプに信頼性保証を与えるステップと、
からなり、前記集めるステップ、前記動的に割り当てるステップおよび前記与えるステップが、前記特別なファイルタイプを作成するためのユーザ要求に応答して実施され、ユーザがそれ以上関わる必要のない、方法。
【請求項２】
前記特別なファイルタイプはエミュレート・ディスクとして解釈される、請求項１に記載の方法。
【請求項３】
ストレージ・システム上に特別なファイルタイプを作成する方法であって、
少なくとも１つのファイルシステムをストレージ・システムによってサポートするステップと、
ディスクの部分からなる物理ストレージをブロック・プールに集めるステップと、
前記ディスクの部分を動的に割り当てて、特別なファイルタイプを形成するステップと、
ファイルシステムの基礎アーキテクチャに従って、前記特別なファイルタイプに信頼性保証を与えるステップと、
からなり、前記集めるステップ、前記動的に割り当てるステップおよび前記与えるステップが、特別なファイルタイプを作成するためのユーザ要求に応答して実施され、ユーザがそれ以上関わる必要のない、方法。
【請求項４】
前記特別なファイルタイプはエミュレート・ディスクとして解釈される、請求項３に記載の方法。
【請求項５】
前記ディスクの部分はエクステントである、請求項３に記載の方法。
【請求項６】
ファイルシステムのストレージを複数のディスクによって作成されたボリューム内に編成するステップと、
前記ボリュームのうちの１つの中に前記特別なファイルタイプをストレージ・オブジェクトとして作成するステップと、
前記特別なファイルタイプの代わりに、前記ボリュームに関連する基礎信頼性保証を継承するステップと、
をさらに含む、請求項３に記載の方法。
【請求項７】
前記特別なファイルタイプに格納されたアプリケーション・データに対するブロックおよびネットワーク・アタッチド・ストレージ（ＮＡＳ）・マルチプロトコル・アクセスを維持しつつ、ユーザ制御により、前記特別なファイルタイプを拡大するステップおよび縮小するステップのうちのいずれか一方のステップをさらに含む、請求項３に記載の方法。
【請求項８】
ストレージ・システム上に特別なファイルタイプを作成するシステムであって、
ストレージ・システムのメモリに常駐し、情報を特別なファイルタイプの階層構造として該ストレージ・システムのボリューム内に論理編成するように構成されたファイルシステムを支援する記憶処理を実施するストレージ・オペレーティング・システムであって、前記特別なファイルタイプのそれぞれが、該特別なファイルタイプに関連するデータを格納するためのメインコンテナとして機能する論理ユニット番号（ＬＵＮ）ｉｎｏｄｅと、種々の属性を格納するための永久記憶として機能する少なくとも１つのストリームｉｎｏｄｅとを実施する表現として前記ボリュームに格納される、ストレージ・オペレーティング・システムを含み、
前記ＬＵＮ  ｉｎｏｄｅおよび前記少なくとも１つのストリームｉｎｏｄｅが、前記ファイルシステム内で１つのカプセル化ストレージ・オブジェクトとして管理される、システム。
【請求項９】
前記少なくとも１つのストリームｉｎｏｄｅは属性ｉｎｏｄｅである、請求項８に記載のシステム。
【請求項１０】
前記ＬＵＮ  ｉｎｏｄｅは、データ、および、該データのディスクへの格納に使用されるデータブロックを参照するポインタのうちの１つを含む、請求項８に記載のシステム。
【請求項１１】
前記ＬＵＮ  ｉｎｏｄｅは、前記特別なファイルタイプのタイプおよびサイズを格納するメタデータ部であって、前記ＬＵＮ  ｉｎｏｄｅをデータコンテナとして識別するｆｌａｇ＿ｓｔｒｅａｍフラグをさらに格納するメタデータ部と、１以上のストリーム部とさらに含む、請求項１０に記載のシステム。
【請求項１２】
前記属性ｉｎｏｄｅは、前記特別なファイルタイプに関連する種々の名前付き属性を保持する永久記憶として機能するデータ部を含み、該属性は、前記特別なファイルタイプをＬＵＮとしてストレージ・システムのクライアントにエクスポートできるようにするとともに、前記特別なファイルタイプを前記クライアントに関係する１つのディスク・オブジェクトとして管理できるようにするための情報を含む、請求項８に記載のシステム。
【請求項１３】
前記属性は、シリアル番号、空間予約、状態および幾何配置情報のうちの少なくとも１つをさらに含む、請求項１２に記載のシステム。
【請求項１４】
前記特別なファイルタイプのそれぞれが、名前値対のリストを保持する永久記憶として機能するデータ部を有するＬＵＮＭＡＰ  ｉｎｏｄｅと、永久予約レコードのリストを保持する永久記憶として機能するデータ部を有する永久予約ｉｎｏｄｅとをさらに実施する、請求項８に記載のシステム。
【請求項１５】
前記永久予約レコードは、前記特別なファイルタイプに関する所有者およびアクセス情報を提供する、請求項１４に記載のシステム。
【請求項１６】
メタデータファイルに格納されたボリューム毎データ構造であって、ボリューム内の前記特別なファイルタイプの位置判定および初期化を最適化するために使用されるボリューム毎データ構造をさらに含む、請求項８に記載のシステム。
【請求項１７】
前記ボリューム毎データ構造は、前記特別なファイルタイプを表すカプセル化ストレージ・オブジェクトに格納された情報から動的に再構成可能なファイルエントリ情報を含む１以上のレコードを有する前記特別なファイルの目次データ構造である、請求項１６に記載のシステム。
【請求項１８】
前記レコードのそれぞれが、
ボリューム上のファイル識別子と、
前記ＬＵＮ  ｉｎｏｄｅの生成番号と、
前記特別なファイルタイプのエントリを格納している親ディレクトリにおけるファイルブロック番号を、親ディレクトリブロックにおけるディレクトリエントリのインデックスとともに有するディレクトリ情報と、
を含む、請求項１７に記載のシステム。
【請求項１９】
前記特別なファイルタイプは、前記特別なファイルタイプに対するアクセスを制限するセキュリティ情報をカプセル化することより、データの完全性を維持しつつ、ネットワーク・アタッチド・ストレージ・プロトコルまたはストレージ・エリア・ネットワーク・プロトコルのいずれかによるマルチプロトコル・アクセスを提供する、請求項８に記載のシステム。
【請求項２０】
ストレージ・アプライアンス上に特別なファイルタイプを作成する選択プロセスを自動化するシステムであって、
プロセッサと、
前記プロセッサに接続され、前記プロセッサによりアドレス指定可能な場所を有するメモリと、
前記メモリおよびプロセッサに接続された少なくとも１つのディスクと、
前記メモリに常駐し、情報を特別なファイルタイプの階層構造として論理編成するように構成されたファイルシステムを支援する記憶処理を実施するストレージ・オペレーティング・システムであって、前記特別なファイルタイプのそれぞれが、該特別なファイルタイプに関連するデータを格納するためのメインコンテナとして機能する論理ユニット番号（ＬＵＮ）ｉｎｏｄｅと、種々の属性を格納するための永久記憶として機能する属性ｉｎｏｄｅとを実施する表現として前記ディスクに格納される、ストレージ・オペレーティングシステムと、
からなり、前記ＬＵＮ  ｉｎｏｄｅおよび前記属性ｉｎｏｄｅが、前記ファイルシステム内で１つのカプセル化ストレージ・オブジェクトとして管理される、システム。
【請求項２１】
少なくとも１つのストレージ・ディスク上で実施されるファイルシステム上に特別なファイルタイプをストレージ仮想化する方法であって、
前記少なくとも１つのストレージ・ディスク上で実施され、前記特別なファイルタイプに関連するデータを格納するためのコンテナと、前記特別なファイルタイプに関連する属性を格納するための永久記憶とを含む、前記ファイルシステムのカプセル化ストレージ・オブジェクトを提供するステップと、
前記カプセル化ストレージ・オブジェクトを論理ユニット番号としてアクセスするステップと、
からなる方法。
【請求項２２】
利用可能な物理ディスクのプールの中から少なくとも１つのストレージ・ディスクを選択するステップをさらに含む、請求項２１に記載の方法。
【請求項２３】
ストレージ・オペレーティング・システムにより、１以上の物理ディスクの部分を前記特別なファイルタイプに割り当てるステップをさらに含む、請求項２１に記載の方法。
【請求項２４】
前記１以上の物理ディスクをボリュームを有するファイルシステムとして編成するステップと、
前記ボリュームのうちの１つの中に、前記特別なファイルタイプをストレージ・オブジェクトとして作成するステップと、
をさらに含む、請求項２１に記載の方法。
【請求項２５】
前記１以上の物理ディスクを基礎信頼性保証を有するように編成するステップと、
基礎信頼性保証に応答して、前記特別なファイルタイプに信頼性保証を与えるステップと、
をさらに含む、請求項２１に記載の方法。
【請求項２６】
前記特別なファイルタイプに格納されたデータに対するアクセスを維持しつつ、ユーザ制御により、該特別なファイルタイプのサイズを拡大するステップをさらに含む、請求項２１に記載の方法。
【請求項２７】
前記特別なファイルタイプに格納されたデータに対するアクセスを維持しつつ、ユーザ制御により、該特別なファイルタイプのサイズを縮小するステップをさらに含む、請求項２１に記載の方法。
【請求項２８】
ＬＵＮ  ｉｎｏｄｅを前記特別なファイルタイプに関連するデータを格納するためのコンテナとして前記特別なファイルタイプに関連付けるステップをさらに含む、請求項２１に記載の方法。
【請求項２９】
前記データの格納に使用されるディスク上のデータブロックを参照するデータを含むデータ部を前記ＬＵＮ  ｉｎｏｄｅの中に含めるステップをさらに含む、請求項２１に記載の方法。
【請求項３０】
前記データの格納に使用されるディスク上のデータブロックを参照するＬＵＮ  ｉｎｏｄｅポインタを前記データ部に含めるステップをさらに含む、請求項２９に記載の方法。
【請求項３１】
前記特別なファイルタイプに関連する属性を格納するための永久記憶として機能するストリームｉｎｏｄｅを前記特別なファイルタイプに関連付けるステップをさらに含む、請求項２１に記載の方法。
【請求項３２】
前記特別なファイルタイプをＬＵＮとして前記ストレージ・システムのクライアントにエクスポートできるようにする属性情報であって、前記特別なファイルタイプを前記クライアントによって１つのディスク・オブジェクトとし管理できるようにする属性情報を含めるステップをさらに含む、請求項３１に記載の方法。
【請求項３３】
シリアル番号、空間予約、状態および幾何配置情報のうちの少なくとも１つを前記属性に含めるステップをさらに含む、請求項３１に記載の方法。
【請求項３４】
名前値対のリストを保持する永久記憶として機能するデータ部と、永久予約レコードのリストを保持する永久記憶として機能するデータ部とを有するＬＵＮＭＡＰ  ｉｎｏｄｅを含めるステップをさらに含む、請求項２１に記載の方法。
【請求項３５】
前記特別なファイルタイプに関連する所有者およびアクセス情報を提供する永久予約レコードを提供するステップをさらに含む、請求項２１に記載の方法。
【請求項３６】
ファイルエントリ情報を保持する１以上のレコードを有するデータ構造の特別なファイルタイプ目次であって、前記特別なファイルタイプを表すカプセル化ストレージ・オブジェクトに格納された情報から動的に再構成可能な特別なファイルタイプ目次を格納するステップをさらに含む、請求項２１に記載の方法。
【請求項３７】
前記ファイルエントリ情報の中にファイル識別子を有するステップをさらに含む、請求項３６に記載の方法。
【請求項３８】
前記ファイルエントリ情報の中に、前記ＬＵＮ  ｉｎｏｄｅの生成番号を有するステップをさらに含む、請求項３６に記載の方法。
【請求項３９】
前記ファイルエントリ情報の中に、前記特別なファイルタイプのエントリを有する親ディレクトリにおけるファイルブロック番号を含むディレクトリ情報を有するステップをさらに含む、請求項３６に記載の方法。
【請求項４０】
前記ファイルエントリ情報の中に、親ディレクトリブロックにおけるディレクトリエントリのインデックスを有するステップをさらに含む、請求項３６に記載の方法。
【請求項４１】
前記特別なファイルタイプの中に、該特別なファイルタイプに対するアクセスを制限する情報をカプセル化することにより、データの完全性を維持しつつ、ネットワーク・アタッチド・ストレージ・プロトコルまたはストレージ・エリア・ネットワーク・プロトコルのいずれかによるマルチプロトコル・アクセスを提供する、請求項２１に記載の方法。
【請求項４２】
物理記憶装置を明示的に構成することな、く仮想化システムにより前記特別なファイルシステムを作成するステップをさらに含み、前記作成するステップは、ユーザにとって透過的なものである、請求項２１に記載の方法。
【請求項４３】
前記特別なファイルタイプを表すカプセル化ストレージ・オブジェクトに格納された情報からファイルエントリ情報を動的に再構成するステップをさらに含む、請求項２１に記載の方法。
【国際調査報告】
2005535962.tif 000009