(57)【特許請求の範囲】
【請求項１】
Ｉ／Ｏ要求をストレージシステムに発行するホストコンピュータを含む情報処理システムにおいて、
前記ストレージシステムは、
プロセッサと、複数のストレージディスクと、ページマッピングテーブル、ページマッピングプログラム及びページファイル名マッピングプログラムを格納するメモリとを含む、ストレージ装置と、
ファイル名によって、ファイルのファイルツリーを管理するファイルシステムと
を備え、
前記ページマッピングテーブルは、前記ホストコンピュータからアクセス可能な前記ストレージ装置のデータボリュームと、前記ストレージディスクと、前記ファイルシステムとの間の関係を特定し、前記データボリュームの各々は複数のページを含み、各ページは複数のセグメントを含み、各セグメントは複数のセクタを含み、
各ストレージ装置に対応する前記ファイルツリーは、前記データボリュームと、前記ページと、前記セグメントとの間の関係に基づくディレクトリ及びファイルの階層を有し、
前記プロセッサは、前記メモリに格納されている前記ページマッピングプログラム及び前記ページファイル名マッピングプログラムを実行して、前記ページマッピングテーブル及び前記ファイルツリーを参照することによって、前記Ｉ／Ｏ要求に含まれるデータの位置をページごとに特定する、
ことを特徴とする、情報処理システム。
【請求項２】
前記ストレージシステムは、
複数のストレージ装置とファイルサーバとを備え、
前記ファイルシステムは前記ファイルサーバに設けられ、前記ファイルサーバは、ファイルＩ／Ｏのためにファイルアクセスネットワークを介して前記ストレージ装置に接続されている、
ことを特徴とする、請求項１に記載の情報処理システム。
【請求項３】
ストレージシステムは、
前記ファイルシステムを含むファイルサーバをさらに備え、
前記ストレージ装置及び前記ファイルサーバの各々は、ストレージプロトコルとファイルＩ／Ｏプロトコルの両方を処理するための統合型ネットワークに結合される統合型インタフェースを含む、
ことを特徴とする、請求項１に記載の情報処理システム。
【請求項４】
前記ファイルシステムは、ファイルサービス能力を有する前記ストレージ装置の中に設けられる、請求項１に記載の情報処理システム。
【請求項５】
前記ページマッピングテーブルは、
前記ストレージ装置のボリューム識別子によって、各データボリュームの複数のエントリのうちの少なくとも１行を特定し、複数のエントリの各行が前記ボリューム識別子に対して連続するページのグループと対応付けられ、複数エントリの各行が、データボリュームのオフセットを示すページオフセットと、前記行の前記ページのグループの長さと、
（ａ）前記行の前記ページのグループが前記ファイルシステム内に配置されていることを示す「ファイル内」についての「ｙｅｓ」のエントリか、又は
（ｂ）ページデータを入れるストレージディスクを識別するディスク識別子、及び前記行の前記ページのグループについて前記ストレージディスクのオフセットを示すディスクオフセットか
のいずれか一方を含む、
ことを特徴とする、請求項４に記載の情報処理システム。
【請求項６】
前記ストレージシステムは、
ストレージディスクへのアクセスに加えてファイルにアクセス可能な、前記ファイルシステムを含むファイルアクセス可能ストレージ装置を備え、
前記ファイルアクセス可能ストレージ装置は、ディスクＩ／Ｏに対しては内部ストレージエリアネットワークを介して、及びファイルＩ／Ｏに対してはファイルアクセスネットワークを介して、前記ストレージ装置に結合されている、
ことを特徴とする、請求項１に記載の情報処理システム。
【請求項７】
前記ストレージシステムは、
複数のストレージ装置を備え、
前記複数のストレージ装置の各々は、ディスクＩ／Ｏに対しては前記内部ストレージエリアネットワークを介して、及びファイルＩ／Ｏに対しては前記ファイルアクセスネットワークを介して、前記ファイルアクセス可能ストレージ装置に結合されている、
ことを特徴とする、請求項６に記載の情報処理システム。
【請求項８】
前記ページマッピングテーブルは、
前記ストレージ装置のボリューム識別子によって、各データボリュームの複数のエントリのうちの少なくとも１行を特定し、複数のエントリの各行が前記ボリューム識別子に対して連続するページのグループと対応付けられ、データボリュームのオフセットを示すページオフセットを含む、複数のエントリの少なくとも１行と、前記行の前記ページのグループの長さを示す長さと、
（ａ）前記ストレージ装置のストレージディスクにページデータを入れることを示す「内部」というノード識別子、前記ページデータを入れる前記ストレージ装置のストレージディスクを特定するディスク識別子、及び前記行の前記ページのグループに対して前記ストレージディスクのオフセットを示すディスクオフセット、又は
（ｂ）ページデータを入れるための前記ファイルアクセス可能ストレージ装置を示すノード識別子、及び（ｉ）前記行の前記ページのグループが、前記ファイルアクセス可能ストレージ装置の前記ファイルシステム内に配置されていることを示す「ファイルの中」についての「ｙｅｓ」のエントリか、又は（ｉｉ）前記行の前記ページのグループが前記ファイルアクセス可能ストレージ装置のストレージディスク内に配置されていることを示す「ファイルの中」についての「ｎｏ」のエントリ、ページデータを入れるための前記ファイルアクセス可能ストレージ装置の前記ストレージディスクを識別するディスク識別子、及び前記行の前記ページのグループについて前記ストレージディスクのオフセットを示すディスクオフセットかのいずれか一方と、を特定する、
ことを特徴とする、請求項６に記載の情報処理システム。
【請求項９】
ストレージシステムは、
前記ファイルシステムを含むファイルアクセス可能ストレージ装置をさらに備え、
前記ファイルアクセス可能ストレージ装置は、ファイルＩ／Ｏのためにファイルアクセスネットワークを介して前記ストレージ装置に結合されており、
前記ストレージ装置及び前記ファイルアクセス可能ストレージ装置の各々は、ディスクＩ／Ｏのために前記ホストコンピュータとのストレージインタフェースを有する、
ことを特徴とする、請求項１に記載の情報処理システム。
【請求項１０】
前記ページマッピングテーブルは、
前記ストレージ装置のボリューム識別子によって、各データボリュームの複数のエントリのうちの少なくとも１行を特定し、複数のエントリの各行が前記ボリューム識別子に対して連続するページのグループと対応付けられ、複数エントリの各行が、データボリュームのオフセットを示すページオフセットと前記行の前記ページのグループの長さと、
（ａ）ページデータを入れるための前記ファイルサーバを識別するためのノード識別子か、又は
（ｂ）ページデータを入れる前記ストレージ装置のストレージディスクを識別するディスク識別子、及び前記行の前記ページのグループについて前記ストレージディスクのオフセットを示すディスクオフセットか
のいずれか一方を特定する、
ことを特徴とする、請求項１に記載の情報処理システム。
【請求項１１】
前記ファイルツリーは、
各ストレージ装置について、ストレージ単位ディレクトリと、各ストレージ単位ディレクトリの配下の複数のボリューム単位ディレクトリと、一つ以上の前記ボリューム単位ディレクトリの配下の少なくとも一つのページ単位ファイルと、一つ以上の前記ボリューム単位ディレクトリの配下の少なくとも一つのページ単位ディレクトリと、前記少なくとも一つのページ単位ディレクトリの各々の配下の複数のセグメント単位ファイルとを有する、
ことを特徴とする、請求項１に記載のストレージシステム。
【請求項１２】
Ｉ／Ｏ要求をストレージシステムに発行するホストコンピュータを含む情報処理システムにおいて、前記ページマッピングテーブル及び前記ファイルツリーを参照することによって、前記Ｉ／Ｏ要求に含まれるデータの位置を特定する方法であって、
前記ストレージシステムは、
プロセッサと、複数のストレージディスクと、ページマッピングテーブル、ページマッピングプログラム及びページファイル名マッピングプログラムを格納するメモリとを含む、ストレージ装置と、
ファイル名によって、ファイルのファイルツリーを管理するファイルシステムと
を有し、
前記ページマッピングテーブルは、前記ホストコンピュータからアクセス可能な前記ストレージ装置のデータボリュームと、前記ストレージディスクと、前記ファイルシステムとの間の関係を特定し、
前記ファイルツリーは、各ストレージ装置について、ストレージ単位ディレクトリと、各ストレージ単位ディレクトリの配下の複数のボリューム単位ディレクトリと、一つ以上の前記ボリューム単位ディレクトリの配下の少なくとも一つのページ単位ファイルと、一つ以上の前記ボリューム単位ディレクトリの配下の少なくとも一つのページ単位ディレクトリと、前記少なくとも一つのページ単位ディレクトリの各々の配下の複数のセグメント単位ファイルとを有し、
前記ページマッピングプログラムは、前記Ｉ／Ｏ要求に含まれる前記データの各ターゲットページについて、
前記ターゲットページが前記ページマッピングテーブルに記述されているか否かを判断し、否定的判断がなされた場合は、「ページは未割り当て」という情報を前記プロセッサに戻し、
肯定的判断がなされた場合は、前記ターゲットページが前記ストレージディスクに割り当てられていることを示す値がページマッピングテーブルに記述されているか否かを判断し、肯定的判断がなされた場合は、前記ストレージディスクにおける位置を計算し、かつ前記計算された位置と共に「ディスクに割り当て済み」という情報を前記プロセッサに戻し、
否定的判断がなされた場合は、前記ファイルツリーを参照することによって、前記ターゲットページが前記ファイルシステムのページ単位ファイルに対応するか否かを判断し、肯定的判断がなされた場合は、前記ページ単位ファイルのファイル名と共に「ページ単位ファイルに割り当て済み」という情報を前記プロセッサに戻し、
否定的判断がなされた場合は、前記ファイルツリーを参照することによって、前記ターゲットページが前記ファイルシステムのページ単位ディレクトリに対応するか否かを判断し、否定的判断がなされた場合は、「ページは未割り当て」という情報を前記プロセッサに戻し、
肯定的判断がなされた場合は、前記ファイルツリーを参照することによって、前記ターゲットページが前記ファイルシステムのセグメント単位ファイルに対応するか否かを判断し、肯定的判断がなされた場合は、前記セグメント単位ファイルのファイル名と共に「セグメント単位ファイルに割り当て済み」という情報を前記プロセッサに戻し、
否定的判断がなされた場合は、「セグメントは未割り当て」という情報を前記プロセッサに戻すこと
を含むことを特徴とする、方法。
【請求項１３】
前記ストレージシステムは、前記ファイルシステムがその中に設けられるファイルアクセス可能ストレージ装置をさらに含み、前記ファイルアクセス可能ストレージ装置は前記ストレージ装置に結合されており、
前記ターゲットページが前記ストレージディスクに割り当てられていることを示す値がページマッピングテーブルに記述されているか否かを判断する際に、肯定的判断がなされた場合は、前記ターゲットページがストレージ装置の内部ノードにマップされている場合には、前記ストレージ装置の前記ストレージディスクにおける位置を計算し、かつ前記計算された位置と共に「ディスクに割り当て済み」という情報を前記プロセッサに戻し、前記ターゲットページが前記ストレージ装置の内部ノードにマップされていない場合には、前記ファイルアクセス可能ストレージ装置の前記ストレージディスクにおける位置を計算し、かつ前記計算された位置と共に「外部ストレージに割り当て済み」という情報を前記プロセッサに戻すことをさらに含む、
ことを特徴とする、請求項１２に記載の方法。
【請求項１４】
前記ストレージ装置及び前記ファイルアクセス可能ストレージ装置のうち一方が移行元ストレージ装置であり、前記ストレージ装置及び前記ファイル可能記憶媒体のうち他方が移行先ストレージ装置であって、
前記移行先ストレージ装置のストレージディスクの未使用領域にページ領域を割り当てることと、
ページを移行するために、前記移行先ストレージ装置の前記ストレージディスクに前記移行元ストレージ装置の前記ストレージディスクのページデータをコピーすることと、
前記移行されたページの位置を特定するために、前記ページマッピングテーブルの前記エントリを修正することと、
前記移行元ストレージ装置の前記ストレージディスクの中の前記ページデータを消去することと
をさらに含む、請求項１３に記載の方法。
【請求項１５】
前記ストレージ装置が移行元ストレージ装置であり、前記ファイルアクセス可能ストレージ装置が移行先ストレージ装置であって、
前記移行先ストレージ装置が、データを前記移行元ストレージ装置から前記移行先ストレージ装置にコピーするためのページデータコピープログラムを有さない場合、前記移行元ストレージ装置のページ移行プログラムは、前記移行元ストレージ装置のストレージディスクからページデータを読み出し、前記移行先ストレージ装置のページファイルに前記ページデータを書き込み、かつ前記移行元ストレージ装置の前記ストレージディスクから前記ページデータを消去することと、
前記移行先ストレージ装置が、データを前記移行元ストレージ装置から前記移行先ストレージ装置にコピーするためのページデータコピープログラムを有する場合、前記移行元ストレージ装置の前記移行プログラムは、前記移行先ストレージ装置にページデータコピー要求を発行し、前記ページデータコピープログラムは、前記移行先ストレージ装置のストレージディスクから前記移行先ストレージ装置の前記ファイルシステムのページファイルに内部的にページデータをコピーし、かつ前記移行先ストレージ装置の前記ストレージディスクから前記ページデータを消去することと
をさらに含むことを特徴とする、請求項１３に記載の方法。
【請求項１６】
前記ファイルアクセス可能ストレージ装置が移行元ストレージ装置であり、前記ストレージ装置が移行先ストレージ装置であって、
前記移行元ストレージ装置のページ移行プログラムは、前記移行先ストレージ装置のストレージディスクの未使用領域にページ領域を割り当てることと、
前記移行先ストレージ装置が、前記移行元ストレージ装置から前記移行先ストレージ装置にデータをコピーするためのページデータコピープログラムを有さない場合、前記移行元ストレージ装置のページ移行プログラムは、前記移行元ストレージ装置の前記ファイルシステムのページ単位ファイルからページデータを読み出し、前記移行先ストレージ装置の前記ストレージディスクに前記ページデータを書き込み、かつ前記移行元ストレージ装置の前記ファイルシステムから前記ページ単位ファイルを削除することと、
前記移行先ストレージ装置が、前記移行元ストレージ装置から前記移行先ストレージ装置にデータをコピーするためのページデータコピープログラムを有する場合、前記移行元ストレージ装置のページ移行プログラムは前記移行先ストレージ装置にページデータコピー要求を発行し、前記ページデータコピープログラムは、前記移行先ストレージ装置の前記ファイルシステムのページ単位ファイルから前記移行先ストレージ装置の前記ストレージディスクに内部的にページデータをコピーし、かつ移行先ストレージ装置の前記ファイルシステムから前記ページ単位ファイルを削除することと
をさらに含む、請求項１３に記載の方法。
【請求項１７】
前記ストレージシステムは、前記ファイルシステムがその中に設けられているファイルサーバをさらに備え、前記ファイルサーバは、前記ストレージ装置に接続されており、
前記ストレージ装置のストレージディスクの中の前記ターゲットページのターゲットページデータを、前記ファイルシステムがその中に設けられている前記ファイルサーバのファイルにコピーすることと、
前記ターゲットページが前記ファイルサーバ内に配置されていることを特定するために、前記ページマッピングテーブルを修正することと、
前記ストレージ装置の前記ストレージディスクの前記ターゲットページの前記ページデータを消去することと
をさらに含む、請求項１２に記載の方法。
【請求項１８】
前記ストレージシステムは、前記ファイルシステムを含むファイルサーバをさらに備え、前記ファイルサーバは、前記ストレージ装置に結合されており、
前記ページマッピングテーブルを参照することによって、前記ストレージ装置のストレージディスクから未使用のページ領域を割り当てることと、
ページを移行するために、前記割り当てられたページ領域に前記ファイルサーバのページ単位ファイルのデータをコピーすることと、
前記移行されたページが前記ストレージ装置の前記ストレージディスク内に配置されていることを特定するために、前記ページマッピングテーブルを修正することと、
前記ファイルサーバの前記ページ単位ファイルを削除することと
をさらに含む、請求項１２に記載の方法。
【請求項１９】
新しいページ単位ディレクトリを作成することと、
前記新しいページ単位ディレクトリにセグメント単位ファイルを作成することと、
前記作成されたセグメント単位ファイルにページ単位ファイルのデータを分割してコピーすることと、
前記ページ単位ファイルを削除することと
をさらに含む、請求項１２に記載の方法。
【請求項２０】
セグメント単位ファイルをページ単位ファイルに連結することと、
セグメント単位ファイルが存在しない場合に、前記ページ単位ファイルの対応する領域にゼロを記入することと
をさらに含む、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は一般にストレージシステムに関し、特に、ストレージシステムにおける、特に、チャンクプールから論理ボリュームにチャンクを割り当てるためのチャンク割り当て能力と、内部又は外部ファイルシステムのファイルにアクセスする能力とを有するストレージシステムにおけるデータ位置を管理する方法及び装置に関する。
【背景技術】
【０００２】
０００２    ローストレージ媒体の無駄な物理ブロックを減らすために、動的チャンク割り当て能力に基づいた「シン・プロビジョニング」が、ストレージシステム構成に適応される。このタイプのストレージシステムは、特別な論理ボリュームを有し、これは、最初に物理ブロックを有さない論理ボリュームである。論理ボリュームが書き込みコマンドを受信し、チャンクが書き込みコマンドに特定された適切な物理ブロックにまだ割り当てられていないときに、ストレージシステムは、ローブロックデバイスを備えるチャンクプールを構築し、チャンクプールからチャンクを割り当てる。この技術を使用すると、ストレージシステムのユーザは、最初に多くのローブロックデバイス又は大きなローブロックデバイスを用意する必要はなく、後でより多くのボリュームが実際に消費される際にデバイスを追加することができる。
【０００３】
０００３    シン・プロビジョニング技術を使用する際に、チャンクサイズは、無駄なブロックを減らす効率性のための重要な要素である。ホストコンピュータが未割当の領域にわずかなバイトを書き込むときでさえ、チャンク全体が割り当てられる。よって、チャンクサイズが大きい場合は、大量のローブロックデバイスが不必要に消費される。さらに、チャンク間の重複排除方法は、より大きいチャンクが同じ内容を有する可能性が低いので、効果的に機能しない。チャンクサイズを小さくすることによって、無駄を減らし、かつ重複排除する効率が良くなる。しかし、より小さいチャンクは、データボリュームとローブロックデバイスとの間のチャンクマッピングテーブルのためにより多くのメモリを必要とする。
【０００４】
０００４    米国特許第 ６,７２５,３２８号は、シン・プロビジョニングストレージを実現するための動的チャンク割り当て方法及び装置を開示する。米国特許公報第２００７／００５５７１３号は、チャンク単位の階層ストレージを実現するために異なる特徴を有するブロックデバイスを備える動的チャンク割り当てを開示する。米国特許公報第２００９／０１３２６１９号は、ストレージシステムのための重複排除方法を開示する。米国特許第７,３３０,９５０号は、ファイル単位階層ストレージ管理方法を開示する。これらの参考文献の内容全体が、参照することによって本明細書に組み込まれる。
【発明の概要】
【０００５】
０００５    本発明の例示的実施形態は、ストレージシステムの各データボリュームへのチャンク割り当てを制御するための方法及び装置を提供する。本発明は、データに対して複数サイズのチャンク割り当て及び複数プロトコルのアクセスを可能にする。特定の実施形態では、ストレージ装置は、いくつかのチャンクをページ単位のファイルとして外部ファイルサーバ又は内部ファイルシステムに割り当てる。さらに、ストレージ装置は、ページの単位ファイルをセグメント単位のファイルに分割することもでき、セグメントは、ページ（最大）とセクタ（最小）の間の中間レベルのブロックサイズである。ファイルシステムは、ディスク上のファイルツリー構造を管理する。よって、チャンクが複数のファイルに分割される場合でも、チャンク割り当て情報を格納するための多くのメモリは必要ない。さらに、ホストコンピュータは、ＦＣ／ｉＳＣＳＩなどのディスクＩ／Ｏを介してＩ／Ｏを発行することができる。
【０００６】
０００６    本発明の一態様は、Ｉ／Ｏ要求をストレージシステムに発行するホストコンピュータを含む情報システムを対象とする。ストレージシステムは、プロセッサと、複数のストレージディスクと、ページマッピングテーブル、ページマッピングプログラム及びページ・ファイル名マッピングプログラムを格納するメモリとを含む、ストレージ装置と、ファイル名によって、ファイルのファイルツリーを管理するファイルシステムとを備える。前記ページマッピングテーブルは、前記ホストコンピュータ及び前記ストレージディスク及び前記ファイルシステムからアクセス可能な前記ストレージ装置のデータボリューム間の関係を特定し、前記データボリュームの各々は複数のページを含み、各ページは複数のセグメントを含み、各セグメントは複数のセクタを含む。各ストレージ装置についての前記ファイルツリーは、前記データボリュームと、前記ページと、前記セグメントとの間の関係に基づくディレクトリ及びファイルの階層を有する。前記ページマッピングテーブル及び前記ファイルツリーを参照することによって、前記Ｉ／Ｏ要求に含まれるデータの位置をページごとに特定するために、前記ページマッピングプログラム及び前記ページ・ファイル名マッピングプログラムは、前記プロセッサによって実行可能である。
【０００７】
０００７    一実施形態では、ストレージシステムは、複数のストレージ装置とファイルサーバとを備え、前記ファイルシステムは前記ファイルサーバの中に設けられ、前記ファイルサーバは、ファイルＩ／Ｏに対してファイルアクセスネットワークを介して前記ストレージ装置に接続されている。他の実施形態では、ストレージシステムは、前記ファイルシステムがその中に設けられているファイルサーバをさらに備え、前記ストレージ装置及び前記ファイルサーバの各々は、ストレージプロトコルとファイルＩ／Ｏプロトコルの両方を処理するための統合型ネットワークに結合される統合型インタフェースを含む。
【０００８】
０００８    他の実施形態では、ファイルシステムは、ファイルサービス能力を有する前記ストレージ装置の中に設けられる。前記ページマッピングテーブルが、前記ストレージ装置のボリューム識別子によって、各データボリュームの複数のエントリのうちの少なくとも１行であって、複数のエントリの各行が前記ボリューム識別子についての連続するページのグループと対応付けられるとともに、データボリュームのオフセットを示すページオフセットを含む、複数のエントリの少なくとも１行と、前記行の前記ページのグループの長さを示す長さと、（ａ）前記行の前記ページのグループが前記ファイルシステム内に配置されていることを示す「ファイル中」についての「ｙｅｓ」のエントリか、又は（ｂ）ページデータを入れるストレージディスクを識別するディスク識別子、及び前記行の前記ページのグループについて前記ストレージディスクのオフセットを示すディスクオフセットかのいずれか一方とを特定する。
【０００９】
０００９    他の実施形態では、ストレージシステムは、前記ファイルシステムがその中に設けられているファイル可能ストレージ装置をさらに備え、前記ファイル可能ストレージ装置は、ディスクＩ／Ｏに対しては内部ストレージエリアネットワークを介して、及びファイルＩ／Ｏに対してはファイルアクセスネットワークを介して、前記ストレージ装置に結合されている。前記ページマッピングテーブルが、前記ストレージ装置のボリューム識別子によって、各データボリュームの複数のエントリのうちの少なくとも１行であって、複数のエントリの各行が前記ボリューム識別子についての連続するページのグループと対応付けられるとともに、データボリュームのオフセットを示すページオフセットを含む、複数のエントリの少なくとも１行と、前記行の前記ページのグループの長さを示す長さと、（ａ）前記ストレージ装置のストレージディスクにページデータを入れることを示す「内部」というノード識別子、前記ページデータを入れる前記ストレージ装置のストレージディスクを特定するディスク識別子、及び前記行の前記ページのグループに対して前記ストレージディスクのオフセットを示すディスクオフセット、前記行の前記ページのグループについて前記ストレージディスクのオフセットを示すディスクオフセット、又は（ｂ）ページデータを入れるための前記ファイル可能ストレージ装置を示すノード識別子、及び（ｉ）前記行の前記ページのグループが、前記ファイル可能ストレージ装置の前記ファイルシステム内に配置されていることを示す「ファイルの中」についての「ｙｅｓ」のエントリか、又は（ｉｉ）前記行の前記ページのグループが前記ファイル可能ストレージ装置のストレージディスク内に配置されていることを示す「ファイルの中」についての「ｎｏ」のエントリ、ページデータを入れるための前記ファイル可能ストレージ装置の前記ストレージディスクを識別するディスク識別子、及び前記行の前記ページのグループについて前記ストレージディスクのオフセットを示すディスクオフセットかのいずれか一方とを特定する。ストレージシステムは、複数のストレージ装置を備えてもよく、各ストレージ装置は、ディスクＩ／Ｏに対しては内部ストレージエリアネットワークを介して、ファイルＩ／Ｏに対してはファイルアクセスネットワークを介して、前記ファイル可能ストレージ装置に結合されている。他の実施形態では、ストレージシステムは、前記ファイルシステムがその中に設けられているファイル可能ストレージ装置をさらに備え、前記ファイル可能ストレージ装置は、ファイルＩ／Ｏに対してファイルアクセスネットワークを介して前記ストレージ装置に結合されており、前記ストレージ装置及び前記ファイル可能ストレージ装置の各々は、ディスクＩ／Ｏに対して前記ホストコンピュータとのストレージインタフェースを有する。
【００１０】
００１０    いくつかの実施形態では、前記ページマッピングテーブルが、前記ストレージ装置のボリューム識別子によって、各データボリュームの複数のエントリのうちの少なくとも１行であって、複数のエントリの各行が前記ボリューム識別子についての連続するページのグループと対応付けられるとともに、データボリュームのオフセットを示すページオフセットを含む、複数のエントリの少なくとも１行と、前記行の前記ページのグループの長さを示す長さと、（ａ）ページデータを入れるための前記ファイルサーバを識別するためのノード識別子か、又は（ｂ）ページデータを入れる前記ストレージ装置のストレージディスクを識別するディスク識別子、及び前記行の前記ページのグループについて前記ストレージディスクのオフセットを示すディスクオフセットかのいずれか一方とを特定する。
【００１１】
００１１    特定の実施形態では、前記ファイルツリーは、各ストレージ装置について、ストレージ単位ディレクトリと、各ストレージ単位ディレクトリの下の複数のボリューム単位ディレクトリと、一つ以上の前記ボリューム単位ディレクトリの下の少なくとも一つのページ単位ファイルと、一つ以上の前記ボリューム単位ディレクトリの下の少なくとも一つのページ単位ディレクトリと、前記少なくとも一つのページ単位ディレクトリの各々の下の複数のセグメント単位ファイルとを有する。
【００１２】
００１２    本発明の他の態様は、Ｉ／Ｏ要求をストレージシステムに発行するホストコンピュータを含む情報システムを対象とし、プロセッサと、複数のストレージディスクと、ページマッピングテーブルを格納するメモリとを含む、ストレージ装置と、ファイル名によって、ファイルのファイルツリーを管理するファイルシステムとを有する、ストレージシステムであって、前記ページマッピングテーブルは、前記ホストコンピュータ及び前記ストレージディスク及び前記ファイルシステムからアクセス可能な前記ストレージ装置のデータボリューム間の関係を特定し、前記ファイルツリーは、各ストレージ装置について、ストレージ単位ディレクトリと、各ストレージ単位ディレクトリの下の複数のボリューム単位ディレクトリと、一つ以上の前記ボリューム単位ディレクトリの下の少なくとも一つのページ単位ファイルと、一つ以上の前記ボリューム単位ディレクトリの下の少なくとも一つのページ単位ディレクトリと、前記少なくとも一つのページ単位ディレクトリの各々の下の複数のセグメント単位ファイルとを有する。前記ページマッピングテーブル及び前記ファイルツリーを参照することによって、前記Ｉ／Ｏ要求に含まれるデータの位置を特定する方法は、前記Ｉ／Ｏ要求に含まれる前記データの各ターゲットページについて、前記ターゲットページが前記ページマッピングテーブルに記述されているか否かを判断しし、否定的判断がなされた場合は、「ページは未割り当て」という情報を戻すことと、肯定的判断がなされた場合は、前記ターゲットページが、前記ページマッピングテーブルに記述されている通りに前記ストレージディスクにマップされているか否かを判断し、肯定的判断がなされた場合は、前記ストレージディスクにおける位置を計算し、かつ前記計算された位置と共に「ディスクに割り当て済み」という情報を戻すことと、否定的判断がなされた場合は、前記ファイルツリーを参照することによって、前記ターゲットページが前記ファイルシステムのページ単位ファイルに対応するか否かを判断し、肯定的判断がなされた場合は、前記ページ単位ファイルのファイル名と共に「ページ単位ファイルに割り当て済み」という情報を戻すことと、否定的判断がなされた場合は、前記ファイルツリーを参照することによって、前記ターゲットページが前記ファイルシステムのページ単位ディレクトリに対応するか否かを判断し、否定的判断がなされた場合は、「ページは未割り当て」という情報を戻すことと、肯定的判断がなされた場合は、前記ファイルツリーを参照することによって、前記ターゲットページが前記ファイルシステムのセグメント単位ファイルに対応するか否かを判断し、肯定的判断がなされた場合は、前記セグメント単位ファイルのファイル名と共に「セグメント単位ファイルに割り当て済み」という情報を戻すことと、否定的判断がなされた場合は、「セグメントは未割り当て」という情報を戻すこととを含む。
【００１３】
００１３    いくつかの実施形態では、ストレージシステムは、前記ファイルシステムがその中に設けられるファイル可能ストレージ装置をさらに含み、前記ファイル可能ストレージ装置は前記ストレージ装置に結合されている。前記方法は、前記ターゲットページが前記ページマッピングテーブルに記述されているように前記ストレージディスクにマップされているか否かを判断する際に、肯定的判断がなされた場合は、前記ターゲットページがストレージ装置の内部ノードにマップされている場合にのみ、前記ストレージ装置の前記ストレージディスクにおける位置を計算し、かつ前記計算された位置と共に「ディスクに割り当て済み」という情報を戻し、前記ターゲットページが前記ストレージ装置の内部ノードにマップされていない場合には、前記ファイル可能ストレージ装置の前記ストレージディスクにおける位置を計算し、かつ前記計算された位置と共に「外部ストレージに割り当て済み」という情報を戻すことをさらに含む。
【００１４】
００１４    一実施形態では、前記ストレージ装置及び前記ファイル可能ストレージ装置のうち一方が移行元ストレージ装置であり、前記ストレージ装置及び前記ファイル可能記憶媒体のうち他方が移行先ストレージ装置である。前記方法は、前記移行先ストレージ装置のストレージディスクの未使用領域にページ領域を割り当てることと、ページを移行するために、前記移行先ストレージ装置の前記ストレージディスクに前記移行元ストレージ装置の前記ストレージディスクのページデータをコピーすることと、前記移行されたページの位置を特定するために、前記ページマッピングテーブルの前記エントリを固定することと、前記移行元ストレージ装置の前記ストレージディスクの中の前記ページデータを消去することとをさらに含む。
【００１５】
００１５    他の実施形態では、前記ファイル可能ストレージ装置又は前記ストレージ装置のうちの一方が移行元ストレージ装置であり、前記ファイル可能ストレージ装置が移行先ストレージ装置である。前記方法は、前記移行先ストレージ装置が、データを前記移行元ストレージ装置から前記移行先ストレージ装置にコピーするためのページデータコピープログラムを有さない場合、前記移行元ストレージ装置のストレージディスクからページデータを読み出し、前記移行先ストレージ装置のページファイルに前記ページデータを書き込み、かつ前記移行元ストレージ装置の前記ストレージディスクから前記ページデータを消去することと、前記移行先ストレージ装置が、データを前記移行元ストレージ装置から前記移行先ストレージ装置にコピーするためのページデータコピープログラムを有する場合、前記移行先ストレージ装置にページデータコピー要求を発行し、前記移行先ストレージ装置のストレージディスクから前記移行先ストレージ装置の前記ファイルシステムのページファイルに内部的にページデータをコピーし、かつ前記移行先ストレージ装置の前記ストレージディスクから前記ページデータを消去することとをさらに含む。
【００１６】
００１６    他の実施形態では、前記ファイル可能ストレージ装置が移行元ストレージ装置であり、前記ファイル可能ストレージ装置又は前記ストレージ装置のうちの一方が移行先ストレージ装置である。前記方法は、前記移行先ストレージ装置のストレージディスクの未使用領域にページ領域を割り当てることと、前記移行先ストレージ装置が、前記移行元ストレージ装置から前記移行先ストレージ装置にデータをコピーするためのページデータコピープログラムを有さない場合、前記移行元ストレージ装置の前記ファイルシステムのページ単位ファイルからページデータを読み出し、前記移行先ストレージ装置の前記ストレージディスクに前記ページデータを書き込み、かつ前記移行元ストレージ装置の前記ファイルシステムから前記ページ単位ファイルを削除することと、前記移行先ストレージ装置が、前記移行元ストレージ装置から前記移行先ストレージ装置にデータをコピーするためのページデータコピープログラムを有する場合、前記移行先ストレージ装置にページデータコピー要求を発行し、前記移行先ストレージ装置の前記ファイルシステムのページ単位ファイルから前記移行先ストレージ装置の前記ストレージディスクに内部的にページデータをコピーし、かつ移行先ストレージ装置の前記ファイルシステムから前記ページ単位ファイルを削除することとをさらに含む。
【００１７】
００１７    特定の実施形態では、ストレージシステムは、前記ストレージシステムは、前記ファイルシステムがその中に設けられているファイルサーバをさらに備え、前記ファイルサーバは、前記ストレージ装置に接続されている。前記方法は、前記ストレージ装置のストレージディスクの中の前記ターゲットページのターゲットページデータを、前記ファイルシステムがその中に設けられている前記ファイルサーバのファイルにコピーすることと、前記ターゲットページが前記ファイルサーバ内に配置されていることを特定するために、前記ページマッピングテーブルを修正することと、前記ストレージ装置の前記ストレージディスクの前記ターゲットページの前記ページデータを消去することとをさらに含む。
【００１８】
００１８    特定の実施形態では、ストレージシステムは、前記ファイルシステムがその中に設けられているファイルサーバをさらに備え、前記ファイルサーバは、前記ストレージ装置に結合されている。前記方法は、前記ページマッピングテーブルを参照することによって、前記ストレージ装置のストレージディスクから未使用のページ領域を割り当てることと、ページを移行するために、前記割り当てられたページ領域に前記ファイルサーバのページ単位ファイルのデータをコピーすることと、前記移行されたページが前記ストレージ装置の前記ストレージディスク内に配置されていることを特定するために、前記ページマッピングテーブルを修正することと、前記ファイルサーバの前記ページ単位ファイルを削除することとをさらに含む。
【００１９】
００１９    いくつかの実施形態では、前記方法は、新しいページ単位ディレクトリを作成することと、前記新しいページ単位ディレクトリにセグメント単位ファイルを作成することと、前記作成されたセグメント単位ファイルにページ単位ファイルのデータをコピーすることと、前記ページ単位ファイルを削除することとをさらに含む。前記方法は、セグメント単位ファイルをページ単位ファイルに連結することと、セグメント単位ファイルが存在しない場合に、前記ページ単位ファイルの対応する領域にゼロを記入することとをさらに含む。
【００２０】
００２０    本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【００２１】
【図１ａ】００２１    図１ａ〜図１ｃは、本発明の方法及び装置が適用され得る情報システムの第１の実施形態構成の一例を示す。
【図１ｂ】００２１    図１ａ〜図１ｃは、本発明の方法及び装置が適用され得る情報システムの第１の実施形態構成の一例を示す。
【図１ｃ】００２１    図１ａ〜図１ｃは、本発明の方法及び装置が適用され得る情報システムの第１の実施形態構成の一例を示す。
【図１ｄ】００２２    図１ｄ及び１ｅは、本発明の方法及び装置が適用され得る情報システムの第１の実施形態構成の他の例を示す。
【図１ｅ】００２２    図１ｄ及び１ｅは、本発明の方法及び装置が適用され得る情報システムの第１の実施形態構成の他の例を示す。
【図２】００２３    図２は、ページマッピングテーブルの一例を示す。
【図３】００２４    図３は、ファイルサーバが管理するファイルツリーの一例を示す。
【図４】００２５    図４は、第１の実施形態のＩ／Ｏマッピングプロセスの一例を示す。
【図５ａ】００２６    図５ａは、記憶媒体からページ単位ファイルへの移行の一例を示す。
【図５ｂ】００２７    図５ｂは、ページ単位ファイルから記憶媒体への移行の一例を示す。
【図５ｃ】００２８    図５ｃは、ページ単位ファイルからセグメント単位ファイルへの移行の一例を示す。
【図５ｄ】００２９    図５ｄは、セグメント単位ファイルからページ単位ファイルへの移行の一例を示す。
【図６】００３０    図６は、移行の例における特定のページマッピングテーブルを示す。
【図７】００３１    図７は、移行の例における特定のファイルツリーを示す。
【図８ａ】００３２    図８ａ及び８ｂは、本発明の方法及び装置が適用され得る情報システムの第２の実施形態構成の一例を示す。
【図８ｂ】００３２    図８ａ及び８ｂは、本発明の方法及び装置が適用され得る情報システムの第２の実施形態構成の一例を示す。
【図９】００３３    図９は、ディスク使用テーブルの一例を示す。
【図１０】００３４    図１０は、ページマッピングテーブルの一例を示す。
【図１１ａ】００３５    図１１ａ〜図１１ｇは、本発明の方法及び装置が適用され得る情報システムの第３の実施形態構成を示す。
【図１１ｂ】００３５    図１１ａ〜図１１ｇは、本発明の方法及び装置が適用され得る情報システムの第３の実施形態構成を示す。
【図１１ｃ】００３５    図１１ａ〜図１１ｇは、本発明の方法及び装置が適用され得る情報システムの第３の実施形態構成を示す。
【図１１ｄ】００３５    図１１ａ〜図１１ｇは、本発明の方法及び装置が適用され得る情報システムの第３の実施形態構成を示す。
【図１１ｅ】００３５    図１１ａ〜図１１ｇは、本発明の方法及び装置が適用され得る情報システムの第３の実施形態構成を示す。
【図１１ｆ】００３５    図１１ａ〜図１１ｇは、本発明の方法及び装置が適用され得る情報システムの第３の実施形態構成を示す。
【図１１ｇ】００３５    図１１ａ〜図１１ｇは、本発明の方法及び装置が適用され得る情報システムの第３の実施形態構成を示す。
【図１２】００３６    図１２は、ページマッピングテーブルの一例を示す。
【図１３】００３７    図１３は、第３の実施形態のＩ／Ｏマッピングプロセスの一例を示す。
【図１４ａ】００３８    図１４ａは、内部記憶媒体と外部ファイルストレージ装置の記憶媒体との間でページを移行するための移行フローの一例を示す。
【図１４ｂ】００３９    図１４ｂは、移行元ストレージ装置の記憶媒体から移行元ファイル可能ストレージ装置のファイルシステム上のページ単位ファイルにページデータを移行するための移行フローの一例を示す。
【図１４ｃ】００４０    図１４ｃは、移行元ファイル可能ストレージ装置のファイルシステム上のページ単位ファイルから移行先ストレージ装置の記憶媒体にページデータを移行するための移行フローの一例を示す。
【図１５ａ】００４０    図１５ａ〜図１５ｄは、異なるレベルのブロックサイズを示す。
【図１５ｂ】００４０    図１５ａ〜図１５ｄは、異なるレベルのブロックサイズを示す。
【図１５ｃ】００４０    図１５ａ〜図１５ｄは、異なるレベルのブロックサイズを示す。
【図１５ｄ】００４０    図１５ａ〜図１５ｄは、異なるレベルのブロックサイズを示す。
【発明を実施するための形態】
【００２２】
００４１    以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として（但し限定ではない）示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する（以下に説明し、かつ図面で示される通り）が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ／又はブロック図において図示している場合もある。
【００２３】
００４２    さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相応量の物理的操作を必要とする。通常は（必ずしもそうではないが）、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に対応付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
【００２４】
００４３    本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等（但し、これらに限定されない）のコンピュータ読取可能記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び（情報）提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行され得る。
【００２５】
００４４    本発明の例示的実施形態は、以下でより詳細に記述されるように、ストレージシステムにおける、特に、チャンクプールから論理ボリュームにチャンクを割り当てるチャンク割り当て能力と、内部又は外部ファイルシステムのファイルにアクセスする能力とを有するストレージシステムにおけるデータ位置を管理するための装置、方法、及びコンピュータプログラムを提供する。本発明は、内部記憶媒体と内部／外部ファイルシステムの両方の上の各論理ボリュームのためにチャンク割り当てを制御するためのストレージシステムにおいて、特に、ローブロックデバイス及びファイルサーバの間の動的チャンク割り当て能力を有するストレージシステムにおいて使用することができる。
【００２６】
００４５    Ｉ．第１の実施形態
００４６    Ａ．システム構成
００４７    図１ａ〜図１ｃは、本発明の方法及び装置が適用され得る情報システム１００の一例を示す。情報システムは、ホストコンピュータ１３０と、ネットワーク１５０と、ストレージシステム１７０とを含む。ストレージシステム１７０は、少なくとも一つのストレージ装置１１０と、少なくとも一つのファイルサーバ１２０とを有する。ストレージ装置１１０及びファイルサーバ１２０は、ファイルアクセスネットワーク１６０を介して通信する。ホストコンピュータ１３０は、ＳＡＮ（ストレージエリアネットワーク）１５０を介してストレージインタフェースを使用して、ストレージ装置１１０にＩ／Ｏ要求を発行する。
【００２７】
００４８    図１ｂに示されるように、ストレージ装置１１０は、ＣＰＵ（中央処理装置）１１１と、メモリ１１２と、内部ストレージインタフェース１１６と、少なくとも一つの記憶媒体１１７と、ストレージインタフェース１５１と、ネットワークインタフェース１６１とを含む。ＣＰＵ１１１は、メモリ１１２のプログラムを実行することによって、ストレージ装置１１０のデバイスを制御する。メモリ１１２は、様々なプログラム、テーブル、及びキャッシュを格納する。ＣＰＵ１１１は、ディスクＩ／Ｏプログラム１１９を実行することによって、ストレージインタフェース１５１を介して、ホストコンピュータ１３０からのＩ／Ｏ要求を処理する。ディスクＩ／Ｏプロセスにおいて、ディスクＩ／Ｏプログラム１１９を実行するＣＰＵ１１１は、ページマッピングテーブル２００を参照することによって、要求されたデータの位置を判断する。ＣＰＵ１１１は、メモリ１１２の領域をディスクキャッシュ１１３として使用し、アクセス記憶媒体１１７へのレイテンシーを隠し、かつＩ／Ｏ要求に迅速に応答するために、ディスクキャッシュ１１３にデータを格納する。ＣＰＵ１１１は、ページマッピングプログラム１１４及びページ・ファイル名マッピングプログラム１１８を参照することによって、記憶媒体１１７又は外部ファイルサーバ１２０にＩ／Ｏ要求を発行する。また、ＣＰＵ１１１は、ページ移行プログラム１１５を参照することによって、記憶媒体１１７と外部ファイルサーバ１２０の間、又は外部ファイルサーバ１２０のファイルの間でデータを移行する。ストレージ装置１１０は、一つ以上の記憶媒体１１７を有する。ＣＰＵ１１１は、内部ストレージインタフェース１１６を通じて記憶媒体１１７から／にデータを読み出し／書き込みすることができる。ＦＣ（ファイバ・チャネル）、ＳＡＴＡ（シリアルＡＴＡ）、ＳＡＳ（シリアル接続ＳＣＳＩ）、ＩＤＥ（Integrated Device Electronics）、又は他のインタフェースが記憶媒体１１７にアクセスするために使用される。ストレージ装置１１０は、様々な種類の記憶媒体、例えばＨＤＤ（ハードディスクドライブ）、ＳＳＤ（ソリッドステートドライブ）、フラッシュメモリ、光ディスク、磁気テープなどを使用することができる。ＲＡＩＤ（Redundant Array of Independent Disk）技術による上記記憶媒体のアレイも、記憶媒体１１７で利用できる。さらに、ストレージ装置１１０は、記憶媒体１１７として他のストレージ装置を使用することができる。
【００２８】
００４９    図１ｃに示されるように、ファイルサーバ１２０は、ＣＰＵ１２１と、メモリ１２２と、内部ストレージインタフェース１１６と、少なくとも一つの記憶媒体１１７と、ネットワークインタフェース１６１とを含む。ＣＰＵ１２１は、メモリ１２２のプログラムを実行することによって、ファイルサーバ１２０のデバイスを制御する。メモリ１２２は、ファイルシステムプログラム１２３及びネットワークファイルプロセスプログラム１２４を含む、プログラム及びキャッシュを有する。ＣＰＵ１２１は、ファイルシステムプログラム１２３を参照することによって、ファイルＩ／Ｏ要求を処理し、かつ記憶媒体１１７から／にデータを読み出す／書き込む。ＣＰＵ１２１は、ネットワークファイルプロセスプログラム１２４を参照することによって、ネットワークインタフェース１６１を介して外部コンピュータからファイルＩ／Ｏ要求を受信し、かつＩ／Ｏ要求をファイルシステムプログラム１２３に転送する。ＣＰＵ１２１は、メモリ１１２の領域をバッファキャッシュ１２５として使用する。バッファキャッシュ１２５は、記憶媒体へのＩ／Ｏを減らし、ファイルＩ／Ｏを加速するためにデータを格納する。
【００２９】
００５０    情報システムの通信のために、ホストコンピュータ１３０及びストレージ装置１１０は、ストレージインタフェース１５１を有する。ストレージインタフェース１５１を使用して、ホストコンピュータ１３０及びストレージ装置１１０は、ＳＡＮ１５０を介してＩ／Ｏのために通信する。例えばＦＣ（ファイバ・チャネル）、ｉＳＣＳＩ（Internet Small Computer System Interface）、ＦＣｏＥ（FC over Ethernet）などの、ストレージインタフェース１５１及びＳＡＮ１５０のための共通ストレージプロトコルが存在する。さらに、ネットワークインタフェース１６１を備える各コンピュータは、ファイルアクセスネットワーク１６０を介してファイルサーバ１２０にファイルＩ／Ｏを通信しかつ発行することができる。ＮＦＳ（ネットワークファイルシステム）、ＣＩＦＳ（コモンインターネットファイルシステム）、及びＡＦＰ（アップルファイリングプロトコル）などのネットワークを介するファイルＩ／Ｏのための共通プロトコルが存在する。さらに、各コンピュータは、様々な目的のために他のコンピュータと通信することができる。ホストコンピュータ１３０は、ストレージシステム１７０のユーザである。ホストコンピュータ１３０は、ＳＡＮ１５０を介してストレージインタフェース１５１を使用してＩ／Ｏを発行する。
【００３０】
００５１    Ｂ．ネットワークトポロジのバリエーション及び統合型ネットワーク
００５２    図１ｄ及び１ｅは、本発明の方法及び装置が適用され得る情報システム１８０及び１９０の他の例を示す。図１ｄのシステム構成１８０では、複数のストレージ装置（例えば２つ）１１０が存在し、両方の装置１１０は、ファイルアクセスネットワーク１６０を介してファイルサーバ１２０にファイルＩ／Ｏ要求を発行することができる。図１ｅのシステム構成１９０では、各コンピュータは、統合型ネットワーク１９３を介して通信する統合型インタフェース１９２を有する。統合型インタフェース１９２及び統合型ネットワーク１９３は、同じ物理媒体でストレージプロトコル及びファイルＩ／Ｏプロトコルの両方を処理することができる。例えば、ＦＣｏＥ、ｉＳＣＳＩ、ＮＦＳ、及びＣＩＦＳがサポートされる。この状況では、ストレージ装置１１０、ファイルサーバ１６０、及びホストコンピュータ１３０の各々は、ストレージインタフェース１５１及びネットワークインタフェース１６１の代わりに、統合型インタフェース１９２を有する。統合型インタフェース１９２及び統合型ネットワーク１９３がストレージプロトコルとファイルＩ／Ｏプロトコルの両方をサポートするので、図１ｂの情報システム構成１１０についての以下の説明は、図１ｅの情報システム構成１９０にも当てはまる。
【００３１】
００５３    Ｃ．ブロックサイズレベル
００５４    図１５ａ〜図１５ｄは、ブロックサイズの異なるレベルを示す。「セクタ」１５１０は、最小サイズであり、ホストコンピュータ１３０とストレージ装置１１０の間の共通の単位である。例えば、ＳＣＳＩ（Small Computer System Interface）のセクタサイズは、５１２バイトである。ホストコンピュータ１３０にとっては、「ボリューム」１５００は、セクタのアレイのように見える。ホストコンピュータ１３０は、ターゲットボリューム１５００、ボリューム１５００の開始セクタ、及び読み取り又は書き込みを行うセクタ１５１０の番号を特定することによって、Ｉ／Ｏを発行する。
【００３２】
００５５    ストレージ装置１３０にとっては、「ボリューム」１５００は、複数の「ページ」１５２０を含む。一つのボリューム１５００の各ページ１５２０は、同じサイズを有する。
ページマッピングプログラム１１４及びページマッピングテーブル２００は、ページ１５２０によって動的チャンク割り当てを管理する。ページのサイズが大きいときは、ページマッピングテーブル２００は、より少ないエントリを管理するだけでよく、メモリの消費も少ない。しかし、ページが大きいと、内部断片化を引き起こし、シン・プロビジョニングの効果が下がり、ページの重複排除の効果も下がる。「セグメント」１５３０は、ページ１５２０とセクタ１５１０の間の中間レベルである。一つページ１５２０は、一つのセグメント又は複数のセグメント１５３０で構成され、一つのセグメントは、一つのセクタ又は複数のセクタ１５１０で構成される。一つのボリューム１５００の各セグメント１５３０は、同じサイズを有する。上述のページサイズについての説明のように、セグメントサイズには、メモリ消費と、シン・プロビジョニング及び重複排除の効果との間の同様のトレードオフがある。各ストレージ装置１１０は、各ボリュームについて同じページサイズ及びセグメントサイズを、又はボリューム単位で又は媒体単位で異なるページサイズ及びセグメントサイズを使用することができる。
【００３３】
００５６    ページ１５２０及びセグメント１５３０は、ストレージシステム１７０内で管理される要因であり、ホストコンピュータ１３０は、ページ１５２０及びセグメント１５３０の概念を知る必要がない。
【００３４】
００５７    Ｄ．ページマッピングテーブル
００５８    図２は、ページマッピングテーブル２００の一例である。ページマッピングテーブル２００は、ホストコンピュータ１３０、記憶媒体１１７、ファイルサーバ１２０からアクセス可能な論理ボリューム間の関係を記述する。ページマッピングテーブル２００の各行は、論理ボリュームのＩＤを格納するボリュームＩＤ２１０について連続するページの一つのグループの情報を示す。ページオフセット２２０は、論理ボリュームのオフセットを格納する。長さ２３０は、各エントリのページの長さを示す。各行は、ノードＩＤ２４０又はディスクＩＤ２５０を有する。ノードＩＤ２４０は、ページデータを入れるファイルサーバ１２０を特定するための固有のＩＤである。ノードＩＤ２４０は、ファイルサーバ名、ＩＰアドレス、又はファイルサーバリストのインデックスを受け付けることができる。ディスクＩＤ２５０は、ページデータを入れる記憶媒体１１７を特定するための固有のＩＤである。ディスクＩＤ２５０が特定される場合、その行は、ディスクオフセット２６０を有していなければなければならない。ディスクオフセット２６０は、この行のページのグループについての記憶媒体１１７のオフセットを示す。
【００３５】
００５９    Ｅ．ページ／セグメントマッピングファイルツリー
００６０    図３は、ファイルサーバ１２０が管理するファイルツリー３００の一例を示す。ファイルサーバ１２０は、ページマッピングテーブル２００のファイルサーバ１２０上に割り当てられたデータに対応するファイルを有する。ファイルツリー３００は、トップディレクトリ３１０について、ストレージ装置に対応するストレージ単位ディレクトリ３２０を有する。複数のストレージ装置１１０がファイルサーバ１２０を共有する場合でも、ファイルサーバ１２０は、各ストレージ装置が自己のストレージ単位ディレクトリ３２０のみにアクセスすることを可能にし、かつストレージ装置間のデータ破損を防止する。ストレージ単位ディレクトリ３２０の下に位置するボリューム単位ディレクトリ３３０及び３３１が存在する。ボリューム単位ディレクトリ３３０及び３３１の名前は、ストレージ装置１１０のボリュームＩＤから派生する。ボリューム単位ディレクトリ３３０、３３１の下にページ単位ファイル又はディレクトリ３４０〜３４３が存在する。ページ単位ファイル及びディレクトリ３４０〜３４３の名前は、ページ番号から派生する。さらに、ファイルサーバ１２０は、ページ単位ファイル又はページ単位ディレクトリページ単位を有することができる。ページ単位ファイル及びディレクトリの名前は、ページ番号から派生する。例えば、ページ単位ファイル３４０「page100.dat」は、ストレージ装置「sa1」のボリューム「vol1」の１０１ページ目に対応する（ページ番号は０から始まり、「１００」は１０１ページを意味する）。ページ単位ディレクトリ３４３「ページ１０３」は、ストレージ装置「sa1」のボリューム「vol1」の１０４ページ目に対応する。ページ単位ディレクトリ３４３は、セグメント単位ファイル３５０〜３５３を有することができる。このようなセグメント単位ファイルの名前は、セグメント番号から派生する。例えば、セグメント単位ファイル３５１「seg1.dat」は、ストレージ装置１１２のボリューム「vol1」の１０４ページ目の第２セグメントに対応する。上述のルールに従って、ページ・ファイル名マッピングプログラム１１８は、ページ単位ファイル及びセグメント単位ファイルのパス名を生成する。例えば、ページ・ファイル名マッピングプログラム１１８は、パス名「/vol/<storage apparatus name>/<volume id >/page<page number>.dat」又は「/vol/< storage apparatus name>/<volume id >/page<page number >/segment<segment number>.dat」を生成する。
【００３６】
００６１    Ｆ．Ｉ／Ｏマッピング方法
００６２    ディスクＩ／Ｏプログラム１１９がホストコンピュータ１３０からＩ／Ｏ要求を受信すると、ページマッピングプログラム１１４及びページ・ファイル名マッピングプログラム１１８は、ページマッピングテーブル２００及びファイルツリー３００を参照することによって、どこを読み取り／書き込むべきかを特定する。図４は、Ｉ／Ｏマッピングプロセス４００の一例を示す。以下は、Ｉ／Ｏマッピングプロセス４００の詳細を示す。ページマッピングプログラム１１４は、ページ単位でＩ／Ｏマッピングプロセス４００を実行し、ステップ４１０で開始する。
【００３７】
００６３    ステップ４１５では、ページマッピングプログラム１１４は、ターゲットページに対応するチャンクを検索する。ページマッピングプログラム１１４は、ページマッピングテーブル２００の各エントリをチェックする。ボリュームＩＤがＩ／Ｏターゲットページ及びターゲットページのＩＤと一致するエントリの一つがページオフセット２２０と（ページオフセット２２０＋長さ２３０）の間にある場合は、検索は成功した。検索が失敗すると、ページマッピングプログラム１１４は、ステップ４２０で「ページは未割り当て」と応答し、ステップ４７０でＩ／Ｏマッピングプロセス４００を終了する。例えば、ボリューム「vol1」のページ番号２００は、割り当てられない。
【００３８】
００６４    検索が成功すると、ページマッピングプログラム１１４は、ステップ４２５で、チャンクがディスクに割り当てられているか否かをチェックする。チャンクがディスクに割り当てられる（すなわち、ページマッピングテーブル２００のエントリが有効なディスクＩＤを有する）と、ステップ４３０で、ページマッピングプログラム１１４は、ページの位置を計算し、「ページはディスク＜ディスクＩＤ＞上にある」と応答する。ページマッピングプログラム１１４は、次の式に従って位置を計算することができる。（ボリューム内の要求されたページ番号）−（ページマッピングテーブルエントリに書き込まれたページオフセット）＋（ページマッピングテーブルエントリに書き込まれたディスクオフセット）。例えば、ボリューム「vol1」のページ番号３０は、ディスク１のページ番号８０に位置する。
【００３９】
００６５    エントリが、ページがファイルサーバ１２０上にある（すなわち、エントリが有効なノードＩＤ２４０を有する）ことを示すとき、ページマッピングプログラム１１４は、ページ・ファイル名マッピングプログラム１１８によって生成されるパス名を使用して、ステップ４３５でページ単位ファイルを検索するためにファイルＩ／Ｏを発行する。対応するページ単位ファイルが存在する場合は、ページマッピングプログラム１１４は、ステップ４４０で、「ページ単位ファイルに割り当て済み」と共にファイル名を戻す。例えば、ページマッピングプログラム１１４がボリューム「vol1」の１０２ページ目に対する要求を受信すると、ページマッピングプログラム１１４は、「/vol/sa1/vol1/page101.dat」の存在を検出するためにファイルＩ／Ｏを発行する。ファイルツリー３００にファイル３４１が存在し、ページマッピングプログラム１１４は、ファイル名を戻す。
【００４０】
００６６    ページ単位ファイルが存在しないと、ページマッピングプログラム１１４は、ページ・ファイル名マッピングプログラム１１８によって生成されたパス名を使用して、ステップ４４５でページ単位ディレクトリを検索するためにファイルＩ／Ｏを発行する。検索が失敗した場合は、ページマッピングプログラム１１４は、ステップ４５０で「ページは未割り当て」と応答し、プロセス４００を終了する。例えば、ファイルツリー３００は、ページ単位ファイル「/vol/sa1/vol1/page105.dat」又はページ単位ディレクトリ「/vol/sa1/vol1/page105/」のいずれも有さない。ページマッピングプログラム１１４は、ボリューム「vol1」の１０６ページ目に割り当てられていないという応答を生成する。
【００４１】
００６７    ページ単位ディレクトリが存在すると、ページマッピングプログラム１１４は、ページ・ファイル名マッピングプログラム１１８によって生成されたパス名を使用して、ステップ４５５でセグメント単位ファイルを検索するためにファイルＩ／Ｏを発行する。このページのＩ／Ｏサイズがセグメントよりも大きいと、ステップ４５５、４６０、及び４６５は、セグメントごとに繰り返される。対応するページ単位ファイルが存在する場合は、ページマッピングプログラム１１４は、ステップ４６０で、「セグメント単位ファイルに割り当て済み」と共にファイル名を戻す。存在しない場合は、ページマッピングプログラム１１４は、ステップ４６５で「セグメントは未割り当て」と応答する。例えば、ファイルツリー３００には、「/vol/sa1/vol1/page103/seg0.dat」が存在するが、「/vol/sa1/vol1/page103/seg5.dat」は存在しない。ページマッピングプログラム１１４は、ボリューム「vol1」の１０４ページ目の１番目のセグメントについて、「/vol/sa1/vol1/page103/seg0.dat」に位置し、セグメントはボリューム「vol1」の１０４ページ目の６番目のセグメントに割り当てられていない、という応答を生成する。
【００４２】
００６８    要するに、Ｉ／Ｏマッピングプロセス４００の結果を使用することによって、ディスクＩ／Ｏプログラム１１９は実際に、読み出し／書き込みＩ／Ｏを記憶媒体１１７又は外部ファイルサーバ１２０に発行する。ページ又はセグメントが割り当てられない場合は、ディスクＩ／Ｏプログラム１１９はＩ／Ｏエラーを戻すことができ、又はページマッピングプログラム１１４はそこに新しいページを割り当てる。これは、システム構成に依存する。
【００４３】
００６９    Ｇ．ページ移行及びマッピング変換方法
００７０    システム管理者が特定するか、又はいくつかのイベントが発生した時に、ページ移行プログラム１１５はページ移行を実行する。例えば、記憶媒体１１７に利用可能なボリュームがあまりない、いくつかのページがそれほど頻繁にアクセスされていない、又はいくつかのページについてより多いＩ／Ｏスループットが必要であるときに、移行が実行される。移行の間、ホストコンピュータ１３０からのＩ／Ｏ要求は中断されている。ページ移行プログラム１１５は、いくつかのパターンの移行を実行する。
【００４４】
００７１    記憶媒体からページ単位ファイルへの移行の一例として、図５ａは、記憶媒体１１７上のページを外部ファイルサーバ１２０のページファイルに移行するためにの移行フロー５１０を示す。ステップ５１２では、ページ移行プログラム１１５は、記憶媒体１１７のターゲットページデータを外部ファイルサーバ１２０のファイルにコピーする。ファイルは、ストレージ装置、ボリュームＩＤ、及びページ番号に基づく。しかし、ページのすべてのデータにゼロが記入されている場合は、ファイルコピーは必要ない。ファイルコピーの後で、ページ移行プログラム１１５は、ステップ５１３で、移行されたページが外部ファイルサーバ１２０内に配置されていることを特定するために、ページマッピングテーブル２００を修正する。ステップ５１４では、ページ移行プログラム１１５は、記憶媒体のページデータを消去する。この移行プロセスフローの後で、移行されたファイルは、ページ単位ファイルとして使用される。
【００４５】
００７２    ページ単位ファイルから記憶媒体への移行の一例として、図５ｂは、外部ファイルサーバ１２０のページ単位ファイルのページを記憶媒体１１７に移行するための移行フロー５２０を示す。ステップ５２２では、ページ移行プログラム１１５は、ページマッピングテーブル２００を参照することによって、記憶媒体１１７から未使用のページ領域を割り当てる。ステップ５２３では、ページ移行プログラム１１５は、外部ファイルサーバ１２０のページ単位ファイルのデータを、割り当てられたページ領域にコピーする。その後で、ページ移行プログラム１１５は、移行されたページがステップ５２４で記憶媒体１１７内に配置されていることを特定するために、ページマッピングテーブル２００を修正する。ステップ５２５では、ページ移行プログラム１１５は、外部ファイルサーバ１２０のページ単位ファイルを削除する。
【００４６】
００７３    ページ単位ファイルからセグメント単位ファイルへの移行の一例として、図５ｃは、外部ファイルサーバ１２０のページ単位ファイルのページをセグメント単位ファイルに移行するための移行フロー５３０を示す。ステップ５３２では、ページ移行プログラム１１５は、新しいディレクトリを作成する。ステップ５３３では、ページ移行プログラム１１５は、セグメント単位ファイルを作成し、ページ単位ファイルのデータをセグメント単位ファイルにコピーする。このステップでは、いずれかのセグメントのデータがすべてゼロの場合は、ページ移行プログラム１１５は、対応するセグメント単位ファイルを作成する必要がない。その後で、ページ移行プログラム１１５は、ステップ５３４でページ単位ファイルを削除する。
【００４７】
００７４    セグメント単位ファイルからページ単位ファイルへの移行の一例として、図５ｄは、外部ファイルサーバ１２０のセグメント単位ファイルのページをページ単位ファイルに移行するための移行フロー５４０を示す。ステップ５４２では、ページ移行プログラム１１５は、セグメント単位ファイルをページ単位ファイルに連結させる。セグメント単位ファイルが存在しない場合、ページ単位ファイルの対応する領域は、すべてゼロである。ステップ５４３では、ページ移行プログラム１１５は、セグメント単位ファイルと、セグメント単位ファイルを格納するページ単位ディレクトリとを削除する。
【００４８】
００７５    各移行の後で、中断されていたＩ／Ｏ要求が再開される。
【００４９】
００７６    Ｈ．移行例
００７７    移行の例として、図６は特定のページマッピングテーブル６００を示し、図７は、特定のファイルツリー７００を示す。ページマッピングテーブル６００及びファイルツリー７００は、ページマッピングテーブル２００及びファイルツリー３００に適用される移行の結果を示す。
【００５０】
００７８    ページ移行プログラム１１５がボリューム「vol 1」のページ５０〜５４をディスク１から外部ファイルサーバ１１２に移行すると想定した場合、ページマッピングエントリ２７０（図２）は、３つのエントリ６７０、６７１、６７２に分割されて、ページ５０〜５４が外部ファイルサーバ「ノード１」に位置していたことを特定する。その後、ファイルツリー７００はいくつかのページ単位ファイル７１０を有する。この例では、ページ５３にはすべてゼロが記入され、ページ単位ファイル「page53.dat」は作成されない。
【００５１】
００７９    ページ移行プログラム１１５がボリューム「vol 1」のページ１０５〜１０９を外部ファイルサーバ「ノード１」からディスク１に移行すると想定した場合、ページマッピングエントリ２７１（図２）は、２つのエントリ６７３及び６７４に分割され、ページ１０５〜１０９が現在ディスク１に配置されていることを特定する。その後、ファイルツリー７００は、ページ単位ファイル３７０を有さない。
【００５２】
００８０    ページ移行プログラム１１５がボリューム「vol 2」のページ２をページ単位ファイル「page002.dat」３７２からセグメント単位ファイルに移行すると想定した場合、ページ単位ファイル「page002.dat」３７２が取り除かれ、ページ単位ディレクトリ及びセグメント単位ファイル７１２が移行の後で作成される。この例では、セグメント２にはすべてゼロが記入され、セグメント単位ファイル「seg2.dat」は作成されない。
【００５３】
００８１    ページ移行プログラム１１５がボリューム「vol 2」のページ１をセグメント単位ファイル３７１からページ単位ファイルに移行すると想定した場合、移行の後で、ページ単位ファイル「page001.dat」７１１が作成され、ページ単位ディレクトリ及びセグメント単位ファイル３７１が取り除かれる。
【００５４】
００８２    上述のこれらのＩ／Ｏマッピング及び移行の方法を使用すると、ストレージシステム１７０は、記憶媒体１１７及び外部ファイルサーバ１１２上のチャンクデータを配置しかつ移行することを可能にし、ホスト１３０は、ファイルアクセスプロトコルなしで間接的にファイルサーバ１２０上のデータにアクセスすることができる。さらに、この方法は、ページデータをいくつかのセグメントに分割することを可能にし、重複排除方法は効率的に機能する。図１ｄの情報システム構成１８０では、格納された異なるストレージ装置１１０のファイルに対する重複排除を適用することができる。重複排除については、米国特許第２００９／０１３２６１９号で開示されるような方法が受け入れられる。米国特許第７３３０９５０号で開示されるようなファイル単位階層ストレージ管理方法も適用可能であり、ファイル単位階層ストレージ管理方法は、より安価な記憶媒体にページ単位ファイル及びセグメント単位ファイルを格納することを可能にする。
【００５５】
００８３    ＩＩ． 第２の実施形態
００８４    Ａ．システム構成
００８５    図８ａ及び図８ｂは、本発明の方法及び装置が適用され得る情報システムの第２の実施形態構成の一例を示す。図８ａに示されるように、第２の実施形態の情報システムは、ホストコンピュータ１３０と、ストレージエリアネットワーク１５０と、ストレージシステム８１０とを含む。ストレージシステム８１０は、少なくとも一つのストレージ装置８２０を含む。ホストコンピュータ１３０は、ＳＡＮ１５０を介してストレージインタフェース１５１を使用して、Ｉ／Ｏ要求をストレージ装置に発行する。図８ｂで示されるように、ストレージ装置８２０は、図１で示される第１の実施形態のストレージ装置１１０とほぼ同じであるが、追加の構成要素を有している。ストレージ装置８２０は、ネットワークインタフェースを有する必要がない。ストレージ装置８２０のメモリ８２２は、第１の実施形態のメモリ１１２と比較して、追加の構成要素を有している。メモリ８１２は、ファイルシステムプログラム１２３と、バッファキャッシュ１２５と、ディスク使用テーブル９００とを有している。通信のために、ホストコンピュータ１３０及びストレージ装置８２０は、ストレージインタフェース１５１を有している。ストレージインタフェース１５１を使用して、ホストコンピュータ１３０及びストレージ装置８２０は、Ｉ／Ｏに対してＳＡＮ１５０を介して通信する。ＦＣ、ｉＳＣＳＩ、ＦＣｏＥなど、ストレージインタフェース１５１及びＳＡＮ１５０のための共通プロトコルが存在する。ホストコンピュータ１３０は、ストレージシステム８１０のユーザである。ホストコンピュータ１３０は、ＳＡＮ１５０を介してストレージインタフェース１５１を使用してＩ／Ｏを発行する。
【００５６】
００８６    Ｂ．ボリューム使用テーブル及びファイルサービス
００８７    ストレージ装置８２０は、ディスクＩ／Ｏプログラム１１９及びファイルシステムプログラム１２３の両方を有し、よって、ストレージ装置８２０は、２つの目的のために内部記憶媒体１１７で構成されるディスクを使用することができる。つまり、ホストコンピュータ１３０からのディスクＩ／Ｏと、その上にファイルシステムを作るためである。図９は、ディスクＩＤ９１０、ホスト用９２０、及びサービスファイル用９３０の欄を有するディスク使用テーブル９００の一例を示す。このディスク使用テーブル９００は、どのディスクがディスクＩ／Ｏのために使用され、どのディスクがファイルサービスのためであるかを記述する。ストレージ装置８２０のマッピングテーブル２００は、ディスク使用テーブル９００で「ホスト用」と特定されたディスクＩＤを含むエントリしか有することができない。同様に、ファイルシステムプログラム１２３は、ＩＤがディスク使用テーブル９００で「ファイルサービス用」と特定されるディスクしか使用することができない。各ディスクは、「ホスト用」又は「ファイルサービス用」に割り当てられる。
【００５７】
００８８    Ｃ．ページマッピングテーブル
００８９    図１０は、ページマッピングテーブル１０００の一例を示す。ページマッピングテーブル１０００は、ファイル中の欄１０１０以外は、ページマッピングテーブル２００と同じである。ストレージシステム８１０は、外部ファイルサーバを有さないが、ストレージ装置８２０自体は、ファイルサービス能力を有している。そして、各ボリュームのページデータを、内部ファイルシステムにマップすることができる。よって、欄１０１０は、ページが内部ファイルシステムに割り当てられているか否かを示す。
【００５８】
００９０    Ｄ．ページ／セグメントマッピングファイルツリー
００９１    ストレージ装置８２０は、図３のファイルツリー３００を使用することができる。ストレージ装置８２０に対応するディレクトリ３２０は、省略することができる。
ストレージ装置８２０は、図４が示すようにＩ／Ｏマッピングフロー４００を、図５が示すようにページ移行フロー５１０、５２０、５３０、５４０を実行することができる。これらの方法を使用すると、ストレージシステム８１０は、ファイルの形式で記憶媒体１１７上のチャンクデータを配置し、かつ移行することが可能である。さらに、この方法は、ページデータをいくつかのセグメントに分割することを可能にし、重複排除方法は効率的に機能する。重複排除については、米国特許第２００９／０１３２６１９号で開示されているような方法が受け入れられる。米国特許第７３３０９５０号で開示されているファイル単位階層ストレージ管理方法も適用可能であり、ファイル単位階層ストレージ管理方法は、より安価な記憶媒体にいくつかのページ単位ファイル及びセグメント単位ファイルを格納することを可能にする。
【００５９】
００９２    ＩＩＩ．第３の実施形態
００９３    Ａ．システム構成
００９４    図１１ａ〜図１１ｇは、本発明の方法及び装置が適用され得る情報システムの第３の実施形態構成の一例を示す。図１１ａで示されるように、第３の実施形態の情報システムは、ホストコンピュータ１３０と、ストレージエリアネットワーク１５０と、ストレージシステム１１１０とを含む。ストレージシステム１１１０は、少なくとも一つのストレージ装置１１２０と、ファイル可能ストレージ装置１１３０とを含む。ホストコンピュータ１３０は、ＳＡＮ１５０を介してストレージインタフェース１５１を使用して、Ｉ／Ｏ要求をストレージ装置１１２０に発行する。さらに、ストレージ装置１１２０は、内部ＳＡＮ１５３を介して、ディスクＩ／Ｏ要求をファイル可能ストレージ装置１１３０に、ファイルアクセスネットワーク１６０を介して、ファイルＩ／Ｏ要求をファイル可能ストレージ装置１１３０に発行することができる。図１１ｂで示されるように、ストレージ装置１１２０は、第１の実施形態のストレージ装置１１０とほぼ同じであるが、いくつかの構成要素がストレージ装置１１０とは異なる。ストレージ装置１１２０はそのメモリ１１２１に、ページマッピングプログラム１１２２と、ページマッピングテーブル１２００と、ページ移行プログラム１１２４とを有する。
【００６０】
００９５    図１１ｃに示されるように、ファイル可能ストレージ装置１１３０は、ＳＡＮ１５０を介してディスクＩ／Ｏ及びファイルアクセスネットワーク１６２を介してファイルＩ／Ｏの両方を処理することができるように、ストレージインタフェース１５１及びネットワークインタフェース１６１を有する。ファイル可能ストレージ装置１１３０は、ディスクＩ／Ｏを処理するためのディスクＩ／Ｏプログラム１１９及びディスクキャッシュ１１３を有し、メモリ１１３２のファイルＩ／Ｏを処理するためのファイルシステムプログラム１２３、バッファキャッシュ１２５、及びネットワークファイルプロセスプログラム１２４を有する。ファイル可能ストレージ装置１１３０は、第２の実施形態のストレージ装置８２０のように、ローＩ／Ｏ及びファイルＩ／Ｏの両方のために記憶媒体１１７を使用する。さらに、ファイル可能ストレージ装置１１３０は、ページデータコピープログラム１１３３を有することができ、これは、記憶媒体１１７間でデータをコピーする。ファイル可能ストレージ装置１１３０は、第２の実施形態のストレージ装置８２０に設けられるような、ページマッピングプログラム１１２２、ページマッピングテーブル１２００、ページ移行プログラム１１５、及びページ・ファイル名マッピングプログラム１１８などの追加の構成要素を有してもよい。
【００６１】
００９６    通信のために、ホストコンピュータ１３０及びストレージ装置１１２０は、ストレージインタフェース１５１を有する。ストレージインタフェース１５１を使用して、ホストコンピュータ１３０及びストレージ装置１１２０は、ＳＡＮ１５０を介してＩ／Ｏのために通信する。図１１ａに示されるように、ストレージ装置１１２０及びファイル可能ストレージ装置１１３０は、内部ストレージエリアネットワーク１５３を介してＩ／Ｏを通信する。ＦＣ、ｉＳＣＳＩ、ＦＣｏＥなどの、ストレージインタフェース１５１及びＳＡＮ１５３のための共通プロトコルが存在する。ネットワークインタフェース１６１を備えるストレージ装置１１２０及びファイル可能ストレージ装置１１３０は、ファイルアクセスネットワーク１６０を介してファイルＩ／Ｏをストレージ装置１１２０に通信かつ発行することができる。ＮＦＳ（ネットワークファイルシステム）、ＣＩＦＳ（コモンインターネットファイルシステム）、ＡＦＰ（アップルファイリングプロトコル）などのネットワークを介したファイルＩ／Ｏインタフェースのための共通プロトコルが存在する。
ストレージ装置１１２０はまた、「ページコピー要求」をファイル可能ストレージ装置１１３０に発行するためにこのネットワーク１６０を使用する。ホストコンピュータ１３０は、ストレージシステム１１１０のユーザである。ホストコンピュータ１３０は、ＳＡＮ１５０を介してストレージインタフェース１５１を使用してＩ／Ｏを発行する。
【００６２】
００９７    Ｂ．ネットワークトポロジ・バリエーション及び統合型ネットワーク
００９８    図１１ｄ〜図１１ｇは、本発明の方法及び装置が適用され得る情報システム構成１１６０、１１７０、１１８０、及び１１９０の他の例を示す。構成１１６０では、複数のストレージ装置１１２０が存在し、各装置１１２０は、内部ＳＡＮ１５３を介してディスクＩ／Ｏ要求をファイル可能ストレージ装置１１３０に発行することができ、ファイルアクセスネットワーク１６０を介してファイルＩ／Ｏ要求をファイル可能ストレージ装置１１３０に発行することができる。情報システム構成１１７０では、ＳＡＮ１５０及び内部ＳＡＮ１５３が統合され、ＳＡＮ１５０は、ホストコンピュータ１３０とストレージ装置１１２０の間のディスクＩ／Ｏ、及びストレージ装置１１２０とファイル可能ストレージ装置１１３０の間のディスクＩ／Ｏの両方のために使用される。情報システム構成１１８０では、ストレージ装置１１２０及びファイル可能ストレージ装置１１３０は、ストレージインタフェース１５１及びネットワークインタフェース１６１の代わりに、統合型インタフェース１９２を有する。統合型インタフェース１９２及び内部統合型ネットワーク１９４は、同じ物理媒体でストレージプロトコルとファイルＩ／Ｏプロトコルの両方を処理することができる。例えば、ＦＣｏＥ、ｉＳＣＳＩ、ＮＦＳ、ＣＩＦＳがサポートされる。統合型インタフェース１９２及び内部統合型ネットワーク１９４がストレージプロトコルとファイルＩ／Ｏプロトコルの両方をサポートするので、情報システム構成１１００についての以下の説明は、情報システム構成１１８０にも当てはまる。情報システム概要１１９０では、ＳＡＮ１５０及び内部統合型ネットワーク１９４は、情報システム構成１１８０に加えて統合型ネットワーク１９３に統合される。統合型インタフェース１９２及び統合型ネットワーク１９３がストレージプロトコルとファイルＩ／Ｏプロトコルの両方をサポートするので、情報システム構成１１００についての以下の説明は、情報システム構成１１９０にも当てはまる。
【００６３】
００９９    Ｃ．ページマッピングテーブル
０１００    図１２は、ページマッピングテーブル１２００の一例を示す。ページマッピングテーブル１２００は、ホストコンピュータ１３０、記憶媒体１１７、及びファイル可能ストレージ装置１１３０からアクセス可能な論理ボリューム間の関係を説明する。ページマッピングテーブル１２００は、第１の実施形態及び第２の実施形態のページマッピングテーブル２００及び１０００を組み合わせた欄を有する（図２及び図１０）。すなわち、ページマッピングテーブル１２００は、ノードＩＤ欄１２１０と「ファイルの中」欄１２２０の両方を有する。これらの欄１２１０及び１２２０を使用して、ページマッピングテーブル１２００は、各データの３つの位置を示す。すなわち、（１）内部記憶媒体１１７の中、（２）外部ファイル可能ストレージ装置１１３０の中であって、データにアクセスするためにディスクＩ／Ｏを使用する位置、（３）外部ファイル可能ストレージ装置１１３０の中であって、データにアクセスするためにファイルＩ／Ｏを使用する位置。ノードＩＤ欄１２１０に「内部」を有するエントリは、ケース（１）を示す。ノードＩＤ欄１２１０に「内部」を有さず、「ファイルの中」欄１２２０に「ｎｏ」を有するエントリは、ケース（２）を示す。ノードＩＤ欄１２１０に「内部」を有さず、「ファイルの中」欄１２２０に「ｙｅｓ」を有するエントリは、ケース（３）を示す。
【００６４】
０１０１    Ｄ．Ｉ／Ｏマッピング方法
０１０２    ディスクＩ／Ｏプログラム１１９がＩ／Ｏ要求をホストコンピュータ１３０から受信すると、ページマッピングプログラム１１１２及びページ・ファイル名マッピングプログラム１１８は、ページマッピングテーブル１２００及びファイルツリー３００を参照することによって、どこを読み出して、どこに書き込むべきかを特定する。図１３は、Ｉ／Ｏマッピングプロセス１３００の一例を示す。Ｉ／Ｏマッピングプロセス１３００は、ステップ１３０５以外は、第１の実施形態のマッピングプロセス４００（図４）と同じである。ステップ４２５においてページがディスクＩＤにマップされていない場合は、Ｉ／Ｏマッピングプロセス１３００は、ステップ１３０５を実行する。ステップ１３０５では、ページマッピングプログラム１１１２は、ページマッピングテーブル１２００のノードＩＤ欄１２１０を参照することによって、ターゲットページが内部ノードにマッピングされるか否かをチェックする。ページが内部ノードにマップされている場合、ページマッピングプログラム１１１２は、ステップ４３０を実行する。ページが外部ノードにマップされている場合、ページマッピングプログラム１１１２は、次の式に従って位置を計算することができる。すなわち、ステップ１３１０において、（ボリューム内の要求されたページ番号）−（ページマッピングテーブルエントリに書き込まれたページオフセット）＋（ページマッピングテーブルエントリに書き込まれたディスクオフセット）。
【００６５】
０１０３    Ｉ／Ｏマッピングプロセス１３００の後で、ページマッピングプログラム１１１２は、ページの位置を取得する。ページ位置情報を使用して、ディスクＩ／Ｏプログラム１１９は、ディスクＩ／Ｏ要求を内部記憶媒体１１７又はファイル可能ストレージ装置１１３０に発行することができる。あるいは、ディスクＩ／Ｏプログラム１１９は、ページ・ファイル名マッピングプログラム１１８によって生成されたパス名を使用して、ファイルＩ／Ｏ要求をファイル可能ストレージ装置１１３０に発行することができる。
【００６６】
０１０４    Ｅ．ページ移行及びマッピング変換方法
０１０５    システム管理者が特定するか、又はいくつかのイベントが発生した時、ページ移行プログラム１１２４は、ページ移行を実行する。例えば、記憶媒体１１７で利用可能なボリュームがあまりない、又はより多くのＩ／Ｏスループットが必要であるときに、移行が実行される。移行の間に、ホストコンピュータ１３０からのＩ／Ｏ要求は中断されている。ページ移行プログラム１１２４は、いくつかのパターンの移行を実行する。
【００６７】
０１０６    異なるストレージ装置の記憶媒体間の移行について、この移行方法は、位置タイプ（１）から位置タイプ（２）、位置タイプ（２）から位置タイプ（１）、又は位置タイプ（２）から位置タイプ（２）への移行を実現する。図１４ａは、内部記憶媒体と外部ファイルストレージ装置の記憶媒体の間でページを移行するための移行フロー１４１０の一例を示す。ページが移行元ストレージ装置から移行先ストレージ装置に移行されることが想定される。ステップ１４１２では、ページ移行プログラム１１２４は、移行先ストレージ装置の記憶媒体１１７の未使用の領域にページ領域を割り当てる。ステップ１４１３では、ページ移行プログラム１１２４は、移行元ストレージ装置の記憶媒体１１７のページデータを、移行先ストレージ装置の記憶媒体にコピーする。ステップ１４１４では、ページ移行プログラム１１２４は、移行されたページ位置を特定するために、ページマッピングテーブル１２００のエントリを固定する。ステップ１４１５では、ページ移行プログラム１１２４は、移行元ストレージ装置の記憶媒体のページデータを消去する。
【００６８】
０１０７    記憶媒体からページ単位ファイルへの移行については、この移行方法は、位置タイプ（２）から位置タイプ（３）、又は位置タイプ（１）から位置タイプ（３）への移行を実現する。図１４ｂは、移行元ストレージ装置の記憶媒体から移行元ファイル可能ストレージ装置のファイルシステム上のページ単位ファイルにページデータを移行するための移行フロー１４３０の一例を示す。ステップ１４３２では、ページ移行プログラム１１２４は、ページデータコピープログラム１１３３がこの移行のために利用可能か否かをチェックする。ステップ１４３２で、移行先ストレージ装置がページデータコピープログラム１１３３を有さない場合は、ページデータコピープログラム１１３３は利用できない。ページデータコピープログラム１１３３が利用できない場合、ページ移行プログラム１１２４は、ステップ１４３３で、移行元ストレージ装置の記憶媒体１１７からページデータを読み出し、移行先ファイル可能ストレージ装置のファイルシステムのページ単位ファイルに書き込む。次に、ページ移行プログラム１１２４は、ステップ１４３４で移行元ストレージ装置の記憶媒体１１７のページデータを消去する。ステップ１４３３及び１４３４では、ページデータは、ストレージ装置１２０がＣＰＵ時間及びストレージインタフェース１５１及びネットワークインタフェース１６１の帯域幅を消費するように、ＳＡＮ１５０及びファイルアクセスネットワーク１６０上を移動しなければならない。ページデータコピープログラム１１３３が利用可能な場合は、ストレージ装置は、ページデータコピープロセスを移行先ファイル可能ストレージ装置１１３０に委任することができる。次に、ステップ１４３５では、ページ移行プログラム１１２４は、ファイルアクセスネットワーク１６０を介してページコピー要求を移行先ファイル可能ストレージ装置に発行する。ステップ１４３６では、移行先ファイル可能ストレージ装置１１３０のページデータコピープログラム１１３３は、ページコピー要求を受信し、記憶媒体１１７からページデータを読み出し、ページ単位ファイルに書き込み、移行先ファイル可能ストレージ装置１１３０の記憶媒体１１７からページデータを消去する。ページコピー要求及びページデータコピープログラム１１３３を使用して、ページデータは、移行先ファイル可能ストレージ装置１１３０で内部的に処理され、ストレージ装置１１２０は、ＣＰＵ時間及び帯域幅を消費しない。ステップ１４３４又は１４３６の後で、ページ移行プログラム１１２４は、ステップ１４３７で移行されたページ位置を特定するために、ページマッピングテーブル１２００のエントリを固定する。
【００６９】
０１０９    ファイルシステムのページ単位ファイルから記憶媒体への移行に対する移行方法は、位置タイプ（３）から位置タイプ（２）、又は位置タイプ（３）から位置タイプ（１）への移行を実現する。図１４ｃは、移行元ファイル可能ストレージ装置のファイルシステム上のページ単位ファイルから移行先ストレージ装置の記憶媒体にページデータを移行するための移行フロー１４５０の一例を示す。ステップ１４５１では、ページ移行プログラム１１２４は、移行先ストレージ装置の記憶媒体１１７の未使用領域にページ領域を割り当てる。ステップ１４５３では、ページ移行プログラム１１２４は、ページデータコピープログラム１１３３がこの移行のために利用可能か否かをチェックする。ステップ１４５３で、移行先ストレージ装置がページデータコピープログラム１１３３を有さない場合は、ページデータコピープログラム１１３３は利用できない。ページデータコピープログラム１１３３が利用できないときに、ページ移行プログラム１１２４は、ステップ１４５４において、移行元ファイル可能ストレージ装置１１３０のページ単位ファイルからページデータを読み出し、移行先ストレージ装置の記憶媒体１１７に書き込む。ステップ１４５４及び１４５５では、ページ移行プログラム１１２４がページ単位ファイルを見つけることができない場合は、ページ移行プログラム１１２４は、ページ単位ファイルにはすべて０が記入され、かつ縮小され又は省略されていたとみなし、記憶媒体１１７に０を書き込む。次に、ステップ１４５５で、ページ移行プログラム１１２４は、移行元ファイル可能ストレージ装置１１３０のファイルシステムのページ単位ファイルを消去する。ステップ１４５４及び１４５５では、ストレージ装置１２０がＣＰＵ時間と、ストレージインタフェース１５１及びネットワークインタフェース１６１の帯域幅とを消費するように、ページデータは、ＳＡＮ１５０及びファイルアクセスネットワーク１６０上を移動しなければならない。ページデータコピープログラム１１３３が利用できる場合は、ストレージ装置は、ページデータコピープロセスを移行先ファイル可能ストレージ装置１１３０に委任することができる。次に、ステップ１４５６では、ページ移行プログラム１１２４は、ファイルアクセスネットワーク１６０を介してページコピー要求を移行先ファイル可能ストレージ装置に発行する。ステップ１４５７では、移行先ファイル可能ストレージ装置１１３０のページデータコピープログラム１１３３は、ページコピー要求を受信し、ファイルシステムからページ単位ファイルを読み出し、記憶媒体１１７に書き込み、移行先ファイル可能ストレージ装置１１３０のファイルシステムからページ単位ファイルを消去する。ステップ１４５６及び１４５７では、ページデータコピープログラム１１３３がページ単位ファイルを見つけられない場合は、ページデータコピープログラム１１３３は、ページ単位ファイルにすべて０が記入され、かつ縮小され又は省略されていたとみなし、記憶媒体１１７に０を書き込む。ステップ１４５７では、ページコピー要求及びページデータコピープログラム１１３３を使用して、ページデータは、移行先ファイル可能ストレージ装置１１��０で内部的に処理され、ストレージ装置１１２０は、ＣＰＵ時間及び帯域幅を消費しない。ステップ１４３４又は１４３６の後、ページ移行プログラム１１２４は、ステップ１４５８において、移行されたページの位置を特定するために、ページマッピングテーブル１２００のエントリを固定する。
【００７０】
０１１０    ページ単位ファイルからセグメント単位ファイルへの移行については、第１の実施形態に示される移行フロー５３０（図５ｃ）も適用できる。
【００７１】
０１１１    セグメント単位ファイルからページ単位ファイルへの移行については、第１の実施形態に示される移行フロー５３０（図５ｃ）も適用できる。
【００７２】
０１１２    各移行の後で、中断されていたＩ／Ｏ要求が再開される。
【００７３】
０１１３    上述の方法を使用して、ストレージシステム１１１０は、次の３つの状態でチャンクデータを配置しかつ移行することを可能にする。すなわち、（１）ストレージ装置１１２０の記憶媒体、（２）外部ファイル能力ストレージ１１３０の記憶媒体、（３）外部ファイル可能ストレージ１１３０のページ単位ファイルである。さらに、前記方法は、ページデータをセグメント単位ファイルに分割することを可能にし、重複排除方法が効率的に機能する。情報システム構成１１６０（図１１ｄ）では、格納された異なるストレージ装置１１２０のファイルに対する重複排除を適用することができる。重複排除については、米国特許第２００９／０１３２６１９号で開示されたような方法が受け入れられる。米国特許第７３３０９５０号で開示されたようなファイル単位階層ストレージ管理方法も適用可能であり、かつファイル単位階層ストレージ管理方法は、より安価な記憶媒体にいくつかのページ単位ファイル及びセグメント単位ファイルを格納することを可能にする。
【００７４】
０１１４    上述の特徴に基づいた本発明の特定の実施形態に従って、本発明のシステムは、一つ以上のホストコンピュータと、ストレージ装置と、ファイルサーバ（又はファイル可能ストレージ装置又は内部ファイルシステム）とを含む。ストレージ装置は、チャンクプールから論理データボリュームにチャンクを割り当てる能力を有するとともに、ファイルサーバにアクセスし、かつ内部記憶媒体上にファイルシステムを作成するためのインタフェースを有する。各チャンクは、「ページ」と呼ばれる固定サイズを有する。ストレージシステムは、データボリュームのページとファイルサーバに格納されたファイルとの間を接続するためのページマッピングテーブルを有する。また、ストレージシステムは、データボリュームとファイル名の間でページ位置を相互変換する種類のプログラムであるページ・ファイル名マッピングプログラムを有する。ストレージシステムは、これらのテーブル及びユニットを使用してファイルサーバにページデータを格納することができる。さらに、ストレージシステムは、データのページをより小さいファイルに分割し、それをファイルサーバに格納することができる。ページ・ファイル名マッピングプログラムが通常の方法でファイルに名前を付ける場合に、ストレージシステムは、ページマッピングテーブルをより大きくする必要はない。それでもなお、分割されたファイルは、各ページのサイズよりも小さい。
【００７５】
０１１５    ストレージシステムは、上述のテーブル及びユニットを備えるＴＳＭ（階層型ストレージ管理）能力を有する。本発明は、ＴＳＭ能力によって適用することができる。ＴＳＭが可能であり、かつページマッピングテーブル及びページ・ファイル名マッピングプログラムを有するストレージシステムは、ストレージシステム及びいくつかのファイルサーバで、なんらかの種類の記憶媒体によってチャンクプールを構築する。ストレージシステムは、記憶媒体と外部ファイルサーバの混合であるページを、一つの論理ボリュームに割り当てることができる。ファイルシステムプログラムを有するストレージシステムは、直接ローボリュームにだけでなく、ファイルとして内部ファイルシステムにページを格納することができる。この状況では、ストレージシステムは、高速ロー媒体で頻繁にアクセスされるページを格納し、（高速でない）ファイルシステムでほとんどアクセスされないチャンクを分割かつ格納する。
【００７６】
０１１６    当然のことながら、図１、図８、図１１に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のＩ／Ｏ装置（例えば、ＣＤ及びＤＶＤドライブ、フロッピーディスクドライブ、ハードドライブ等）も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、無線ネットワーク、ストレージエリアネットワーク等を含む。
【００７７】
０１１７    説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【００７８】
０１１８    当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置（ハードウェア）を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び／又は暗号化形式で命令を媒体に記憶することができる。
【００７９】
０１１９    上記により、本発明が、ストレージシステムにおける各データボリュームへのチャンク割り当てを制御するための方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。
【図１ａ】
0005410386.tif 000002
【図１ｂ】
0005410386.tif 000003
【図１ｃ】
0005410386.tif 000004
【図１ｄ】
0005410386.tif 000005
【図１ｅ】
0005410386.tif 000006
【図２】
0005410386.tif 000007
【図３】
0005410386.tif 000008
【図４】
0005410386.tif 000009
【図５ａ】
0005410386.tif 000010
【図５ｂ】
0005410386.tif 000011
【図５ｃ】
0005410386.tif 000012
【図５ｄ】
0005410386.tif 000013
【図６】
0005410386.tif 000014
【図７】
0005410386.tif 000015
【図８ａ】
0005410386.tif 000016
【図８ｂ】
0005410386.tif 000017
【図９】
0005410386.tif 000018
【図１０】
0005410386.tif 000019
【図１１ａ】
0005410386.tif 000020
【図１１ｂ】
0005410386.tif 000021
【図１１ｃ】
0005410386.tif 000022
【図１１ｄ】
0005410386.tif 000023
【図１１ｅ】
0005410386.tif 000024
【図１１ｆ】
0005410386.tif 000025
【図１１ｇ】
0005410386.tif 000026
【図１２】
0005410386.tif 000027
【図１３】
0005410386.tif 000028
【図１４ａ】
0005410386.tif 000029
【図１４ｂ】
0005410386.tif 000030
【図１４ｃ】
0005410386.tif 000031
【図１５ａ】
0005410386.tif 000032
【図１５ｂ】
0005410386.tif 000033
【図１５ｃ】
0005410386.tif 000034
【図１５ｄ】
0005410386.tif 000035