(57)【特許請求の範囲】
【請求項１】
コンピュータと接続される制御装置と、
前記制御装置と接続される記憶装置とを有する記憶装置システムおけるデータ管理方法であって、
前記制御装置が、スナップショットを作成するファイルを決定するための条件に関する情報を条件管理テーブルに登録するステップと、
前記制御装置が、前記条件を識別するための識別子を含むスナップショット作成要求を受信した場合、前記受信した識別子を基に前記条件管理テーブルを参照して、前記記憶装置内に格納されている１または複数のファイルのうち、前記条件管理テーブルに登録された条件式に合致するファイルをスナップショット作成の対象となるファイルとして決定するステップと、
前記制御装置が、前記決定したファイルに対応するスナップショットを格納するための格納領域の容量が、前記条件管理テーブルに登録された上限値以下であるか否かを判定するステップと、
前記制御装置が、前記判定するステップで肯定の判定結果を得た場合にのみ、前記決定したファイルに対応するスナップショットを作成するステップと、を有することを特徴とするデータ管理方法。
【請求項２】
請求項１記載のデータ管理方法であって、
前記制御装置が、前記登録するステップでは、前記識別子毎に前記条件式と前記上限値を登録し、
前記制御装置が、前記決定するステップでは、前記条件管理テーブルに登録された各条件式に合致するファイルをそれぞれスナップショット作成の対象となるファイルとして決定し、
前記制御装置が、前記判定するステップでは、前記決定した各ファイルに対応するスナップショットをそれぞれ格納するための格納領域の容量が、前記条件管理テーブルに登録された各上限値以下であるか否かを判定し、
前記制御装置が、前記作成するステップでは、前記判定するステップで肯定の判定結果を得た場合にのみ、前記決定した各ファイルに対応するスナップショットを作成することを特徴とするデータ管理方法。
【請求項３】
コンピュータと接続される制御装置と、
前記制御装置と接続される記憶装置とを有する記憶装置システムであって、
前記制御装置は、スナップショットを作成するファイルを決定するための条件に関する情報を条件管理テーブルに登録し、前記条件を識別するための識別子を含むスナップショット作成要求を受信した場合、前記受信した識別子を基に前記条件管理テーブルを参照して、前記記憶装置内に格納されている１または複数のファイルのうち、前記条件管理テーブルに登録された条件式に合致するファイルをスナップショット作成の対象となるファイルとして決定し、前記決定したファイルに対応するスナップショットを格納するための格納領域の容量が、前記条件管理テーブルに登録された上限値以下であるか否かを判定し、前記判定で肯定の判定結果を得た場合にのみ、前記決定したファイルに対応するスナップショットを作成することを特徴とする記憶装置システム。
【請求項４】
請求項３記載の記憶装置システムであって、
前記制御装置は、前記条件に関する情報を条件管理テーブルに登録する際に、前記識別子毎に前記条件式と前記上限値を登録し、前記スナップショット作成の対象となるファイルを決定する際には、前記条件管理テーブルに登録された各条件式に合致するファイルをそれぞれスナップショット作成の対象となるファイルとして決定し、前記決定した各ファイルに対応するスナップショットをそれぞれ格納するための格納領域の容量が、前記条件管理テーブルに登録された各上限値以下であるか否かを判定し、前記判定で肯定の判定結果を得た場合にのみ、前記決定した各ファイルに対応するスナップショットを作成することを特徴とする記憶装置システム。
【請求項５】
請求項４記載の記憶装置システムであって、
前記制御装置は、前記条件管理テーブルの条件式のうち前記識別子に対応した条件式にキーワードが登録されている場合、前記キーワードを内容に含むファイルを前記スナップショット作成の対象となるファイルとして決定することを特徴とする記憶装置システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムで用いられる記憶装置システムに関する。
【背景技術】
【０００２】
特許文献１には、記憶装置システム内に格納されているファイルに対し、ある時点での該ファイルの内容（以下、スナップショットと称する）を保存しておく技術（以下、スナップショット技術と称する）が開示されている。特許文献１では、ある時点以降に、該ファイルに対し、更新があった場合、更新前の該ファイルの内容を消去せずに保存しておくことで、スナップショット技術を実現している。
【０００３】
【特許文献１】米国特許第5,819,292号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１では、スナップショットを作成する際、記憶装置システム内に格納されている全ファイルに対し、スナップショットを作成している。従来技術の課題は、記憶装置システム内に、スナップショットを作成する必要のないファイルが含まれている場合でも、記憶装置システム内の全ファイルに対するスナップショットを作成するため、全ファイルに対するスナップショットを保管するためのディスク容量が必要となり、記憶装置システムにかけるコストが増加することである。
【０００５】
そこで、記憶装置システムを効率的に利用し、記憶装置システムにかけるコストを低減するためのスナップショット技術を有する記憶装置システムを開示する。
【課題を解決するための手段】
【０００６】
記憶装置システムは、記憶装置システム内に格納されるファイルのうち、どのようなファイルに対し、スナップショットを作成するのかを定めた条件を管理する。
【発明の効果】
【０００７】
記憶装置システムの記憶領域を効率的に利用する記憶装置システムを提供することができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の実施例について、図面を参照して説明する。尚、本発明は、本実施例に限られるものではない。
【０００９】
以降各図において、構成部位名および構成部位番号に付加したa、b、c、・・・等の小文字アルファベットは同一構成の構成部位が複数あるとき、それらを区別する際に用いるものである。以下の説明においては、同一構成を有する複数の構成部位を区別する必要が無い場合は、この小文字アルファベットを省略して用い、各構成部位を特定する必要があるときには小文字アルファベットを付加した名称および番号で説明する。
【００１０】
図1は、本実施形態における、計算機システムの一例を示した図である。計算機システムは、サーバ0101、記憶装置システム0104、ネットワーク0103、SVP0110とを有する。
【００１１】
サーバ0101は、ネットワーク0103を介して、記憶装置システム0104に接続され、記憶装置システム0104に格納されるデータの処理を行う。記憶装置システム0104は、サーバ0101が取り扱うデータを保存する。SVP0110は、記憶装置システム0104の管理を行い、後述する記憶装置システム0104内のチップセット0109に接続される。
【００１２】
尚、計算機システムの構成は、図１に限られるものではなく、記憶装置システム0104、SVP0110を複数有していてもよい。
【００１３】
サーバ0101は、ネットワーク・インタフェース0102を有し、ネットワーク・インタフェース0102介して、ネットワーク0103に接続される。
【００１４】
記憶装置システム0104は、コントローラ0105と、ディスク・エンクロージャ0112とを有する。
【００１５】
コントローラ0104は、記憶装置システム0104の制御を行う。コントローラ0104は、ネットワーク・インタフェース0106aおよびネットワーク・インタフェース0106b、プロセッサ0107、メモリ0108、時刻管理を行うタイマ0114、ディスク・インタフェース0111aおよびディスク・インタフェース0111b、チップセット0109とを有する。ネットワーク・インタフェース0106a、ネットワーク・インタフェース0106b、プロセッサ0107、メモリ0108、タイマ0114、ディスク・インタフェース0111a、ディスク・インタフェース0111bは、チップセット0109を介して、相互に接続される。
【００１６】
ディスク・エンクロージャ0112は、ドライブ0113を有する。ドライブ0113a、ドライブ0113b、ドライブ0113c、ドライブ0113dには、各々、データが格納される。
【００１７】
尚、記憶装置システムの構成は、図１に限られるものではなく、コントローラ0104、プロセッサ0107、メモリ0108、ディスク・インタフェース0111、ディスク・エンクロージャ0112は、複数有していてもよい。
【００１８】
図2は、計算機システムの論理的な構成の一例を示した図である。
【００１９】
サーバ0101は、アクセス・クライアント0202と、スナップショット管理ソフト0203とを有する。
【００２０】
アクセス・クライアント0202は、記憶装置システム0104の記憶領域0205内に保存されているファイル0211aやファイル0211bをリード/ライトする。
【００２１】
スナップショット管理ソフト0203は、ユーザ0102の指示に従い、記憶装置システム0104に対し、ファイル・ストレージ0205aの、スナップショット0207aやスナップショット02027bの作成や削除の指示を行ったり、ユーザ0102がスナップショット0207aやスナップショット0207bにアクセスするための設定を行う。尚、スナップショットの作成や削除の指示は、ストレージ管理者がSVP0110を使って行ってもよい。
【００２２】
プロセッサ0107上では、マイクロ・プログラム0204が動作する。マイクロ・プログラム0204は、サーバ0101からのファイルへのアクセス要求の処理、ディスク・ドライブ0113へのデータ保存、スナップショットの作成や削除を実行する。
【００２３】
メモリ0108には、条件管理テーブル0301、スナップショット管理テーブル0401、ビットマップ・テーブル0701とが格納されている。条件管理テーブル0301、スナップショット管理テーブル0401、ビットマップ・テーブル0701の詳細については、後述する。
【００２４】
記憶装置システム0104は、ファイル0211aとファイル0211bを格納するファイル・ストレージ0205を有する。尚、記憶装置システム0104は、ファイル・ストレージを複数有していてもよい。本実施形態では、以下、説明の簡略化のため、ファイル・ストレージ数は１個として説明する。
【００２５】
ファイル・ストレージ0205には、ファイルの旧内容を保管しておくためのプール0206aやプール0206bが関連付けられている。ファイルの旧内容とは、ファイルに格納されるデータが更新された際の、更新前のデータである。また、ファイル・ストレージ0205には、ある時点におけるファイル内容にアクセスするためのスナップショット0207aやスナップショット0207bが関連付けられている。プールは、条件の数だけ存在し、各々、プールに格納できるファイルの旧内容量に上限が設定されている。条件とは、外部から指定される、スナップショットを作成するファイルを決定するための条件である（以下、条件と称する）。
【００２６】
図3は、条件管理テーブル0301の一例を示した図である。
【００２７】
マイクロ・コード0204は、条件管理テーブル0301を用いて、条件に関する情報を管理する。条件管理テーブルは、ストレージ管理者等により、SVP0110を用いて設定される。条件を条件管理テーブル0301に登録する際、ＳＶＰ0110から条件に関する情報を登録するよう指示を受けた記憶装置システム0104は、指示に基づき、条件に関する情報を条件管理テーブル0301に登録する。ＳＶＰ0110から条件管理テーブル0301に登録されている情報を削除するよう指示を受けた記憶装置システム0104は、条件にマッチするファイルやスナップショットが削除されていることを確認したのち、条件管理テーブル0301から該条件を削除する。後述する上限値0305や表示方法0307は、SVP0110から変更できる。上限値0305を変更する際、記憶装置システム0104は、該変更が現上限値0305を減少させる変更であり、変更する上限値0305が使用量0306より少ないと判断した場合は、SVP0110にエラーを返す。
【００２８】
条件管理テーブルでは、条件ID0302、条件式0303、対象0304、上限値0305、使用量0306、表示方法0307とが管理される。
【００２９】
条件ID0302は、条件毎に割り振る識別子である。
【００３０】
条件式0303は、条件の内容を表す。条件式0303としては、ファイルに付属する関連情報やファイルに格納されている内容が指定される。例えば、ユーザ名=「Kodama」という条件式では、ファイルの所有者が「Kodama」であるファイルをスナップショット作成の対象とする。また、ファイル・サイズ>10MBytesという条件式であれば、ファイルのサイズが10MBytesより大きいのファイルをスナップショット作成の対象とする。キーワード=「黒柳」という条件式であれば、ファイルに格納されている内容がテキスト文書であった場合に文書の中身を検索し、黒柳という文字列を含むファイルのみをスナップショット作成の対象とする。
【００３１】
対象0304は、条件を適用するファイル・ストレージの識別子を示す。
【００３２】
上限値0305は、該条件に対応するプール量の上限値を示す。
【００３３】
使用量0306は、現在のプールの利用量を示す。
【００３４】
表示方法0307は、ユーザ0201が、計算機システムに、スナップショット0207に格納されるファイルのリスティングを要求した場合の、ディレクトリやファイルの構成の表示方法を示す。リスティングとは、ユーザ0201が計算機システムに対し、スナップショット番号等を含むコマンドを送信することにより、記憶装置システム0104が、スナップショット番号等と関連するディレクトリやファイルの構成を、ユーザ0201が使用する操作画面等に表示させることをいう。
【００３５】
本実施形態では、条件にマッチしたファイルについてのみスナップショットが作成される。そのため、スナップショット0207を作成した時刻に、ファイル・ストレージ0205上に存在していても、条件にマッチしないため、スナップショット0207を作成しなかったファイルがある。そこで、表示方法0307では、ユーザ0201が計算機システムに対し、スナップショット0207のディレクトリ・ツリーからファイルのリスティングを要求した際、記憶装置システム0104が操作画面等に、スナップショット0207を作成しなかったファイルを表示させるか否か、あるいは、ディレクトリ形式では表示させずリストとして表示させるかなどの表示方法を示す。
【００３６】
表示方法0307で示す表示方法について、図4を用いて、具体的に説明する。
【００３７】
図4（a）は、ファイル・システム・ツリーの全体の一例を示した図である。ファイルXは、条件001および条件002にマッチする。ファイルYは、条件002にマッチする。ファイルZは、条件001にマッチする。
【００３８】
図4（b）は、表示方法0307が「条件マッチ」であった場合、操作画面等に表示されるディレクトリやファイルの構成の、ファイル・システム・ツリーの一例を示した図である。ユーザ0201は、条件にマッチしたファイルについてのみ、スナップショット0207からリスティングできる。つまり、条件001に関するスナップショットを作成した場合、図4（b）に示すファイル・システム・ツリーの通り、条件001にマッチするスナップショットからリスティングできるファイルは、ファイルXとファイルZである。ファイルYは、条件001にマッチしなかったため、スナップショット作成時点での旧内容は保管されておらず、条件001の表示方法0307が「条件マッチ」であるため、条件001にマッチするスナップショットからはリスティングされない。
【００３９】
図4(ｃ)は、表示方法0307が「全ファイル」であった場合、操作画面等に表示されるディレクトリやファイルの構成の、ファイル・システム・ツリーの一例を示した図である。条件002に関するスナップショットを作成した場合、ユーザ0201は、条件002にマッチしたファイルだけでなく、条件にマッチしなかったファイルについても、条件002にマッチするスナップショットからリスティングできる。ただし、条件002にマッチしていないファイルについては、該スナップショットを作成した時刻でのファイルの内容ではなく、その時刻より過去でその時刻に一番近いファイルの内容になる。
【００４０】
条件002にマッチしていないファイルの表示方法について、図5を用いて、詳細を説明する。
【００４１】
図5（a）は、ファイルXとファイルYを更新するタイミングの一例を示した図である。時刻T0において、ファイルXは、内容1であり、ファイルYは、内容2である。ファイルXは、条件001にマッチし、ファイルYは、条件002にマッチする。時刻T0から時刻T1の間に、ファイルXは、内容3に更新された。時刻T1から時刻T2の間に、ファイルXは、内容4に、ファイルYは、内容5に更新された。条件001のスナップショットは時刻T1で取得し、条件002のスナップショットは時刻T2で取得したとする。つまり、条件002のスナップショットでは、ファイルXの内容4を保存していない。
【００４２】
図5（b）は、表示方法0307が全ファイルであり、ユーザ0201から条件002でのスナップショットにリスティングが要求された場合、操作画面等に送信されるディレクトリやファイルの構成の、ファイル・システム・ツリーの一例を示した図である。図5（b）に示すとおり、ファイルYについては、内容5のファイルがリスティングされ、ファイルXについては、時刻T2より過去で、時刻T2に一番近い時刻に取得した条件001のスナップショットが保存するファイルXの内容3のファイルがリスティングされる。
【００４３】
表示方法0307が、「リスト」である場合は、スナップショットを作成した全ファイルのパス名のリストが操作画面等に送信される。
【００４４】
尚、図3において、条件にマッチするファイルへのアクセス方法として、インターネット・ブラウザを使用することができる。この場合、ユーザ0201は、インターネット・ブラウザ経由で記憶装置システム0104内のスナップショットにアクセスする。記憶装置システム0104は、該スナップショットで保管したファイルのスナップショットへのリンクを持つHTMLファイルを作成し、インターネット・ブラウザに返す。ユーザ0201がリンクをマウスでクリックすると、該リンクに対応するファイル名が記憶装置システム0104に送られる。記憶装置システム0104は、受け取ったファイル名に対応するファイルをインターネット・ブラウザに転送する。ユーザ0201は、該ファイルをサーバ上に保管することもできるし、アプリケーションでそのファイルを開くこともできる。
【００４５】
図6は、スナップショット管理テーブル0401の一例を示した図である。
【００４６】
マイクロ・コード0204は、スナップショット管理テーブル0401を用いて、作成したスナップショットに関する情報を管理する。
【００４７】
スナップショット管理テーブル0401では、スナップショット番号0402、条件ＩＤ、作成時刻0404とが管理される。
【００４８】
スナップショット番号0402は、マイクロ・コード0204により作成されたスナップショットに割り振られる識別子である。
【００４９】
条件ID0403は、スナップショット作成要求時に指定された条件IDを示す。
【００５０】
作成時刻0404は、マイクロ・コード0204により、スナップショットが作成された時刻を示す。
【００５１】
スナップショットの作成は、ユーザ0201スナップショット管理ソフト0203を介して指示する。また、ストレージ管理者がSVP0110を使ってスナップショット作成を指示することもできる。ユーザ0201またはストレージ管理者がスナップショット作成を指示するときには、条件IDを指定する。
【００５２】
図7は、記憶装置システム0104内に格納されているファイルやディレクトリ・ファイルを管理するinode情報の一例を示した図である。
【００５３】
記憶装置システム0104内のファイルは、ディレクトリによってツリー構造として管理される。ディレクトリ・ファイルとは、あるディレクトリ内に存在するディレクトリやファイルに関して、ディレクトリ名と該ディレクトリのinode番号のセットや、ファイル名と該ファイルのinode番号のセットをリストで管理するファイル・システムの特殊ファイルである。
【００５４】
本実施形態では、種別0511またはファイル種別0611により、該inode情報0501または該スナップショットinode情報0601が、通常のファイルまたはディレクトリ・ファイルのいずれのものであるかを判断する。種別が「ファイル」であれば、通常のファイルであることを示し、種別が「ディレクトリ」であれば、ディレクトリ・ファイルであることを示す。本実施形態では、説明の簡略化のため、通常のファイルに対応するinode情報0501についてのみ説明する。
【００５５】
inode情報とは、ファイルがブロックの集まりから構成されるため、ファイルがどのブロック・リストから構成されるかを管理するための情報である。ブロック・リストでは、ファイルが構成されるブロックを管理する。例えば、inode番号0502で示されるファイルは、ブロック・リストへのポインタ0510に示されるブロック・リストに含まれるブロックから構成される。
【００５６】
削除フラグ0503は、ファイルが削除されたか否かを示す。ファイルおよびファイルに対応するスナップショットが削除された場合、削除フラグ0503がONとなる。ファイルまたはファイルに対応するスナップショットのすべてが削除されていなければ、削除フラグ0503は、OFFとなる。つまり、inode情報0501で示されるファイルが削除されても、ファイルに対応するスナップショットが削除されていなければ、該ファイルのinode情報は、削除されない。
【００５７】
inode情報0501では、該ファイルに対応するスナップショットを管理しているスナップショットinode情報0601へのポインタ0504が管理される。
【００５８】
また、inode情報0501では、ファイルの付属情報として、例えば、作成日時0505、更新日時0506、所有者0507、ファイル・サイズ0508、アクセス権情報0509が管理される。
【００５９】
図8は、スナップショットinode情報0601の一例を示した図である。
【００６０】
スナップショットinode情報0601は、ポインタ0504からポイントされ、ポイント元のinode情報0501に対応するファイルの旧内容を管理するため情報である。
【００６１】
ポインタ0603は、あるファイル対応するスナップショットが複数存在する場合に用い、ポイント元のinode情報0501に対応するファイルの他の旧内容を管理するスナップショットinode情報0601へのポインタを示す。以下、inode情報0501からポイントされるスナップショットinode情報0610、スナップショットinode情報0610からポイントされるスナップショットinode情報0610とを、ファイルのinode情報0501からリンクされるスナップショットinode情報0601と称する。
【００６２】
inode番号0602で示されるスナップショットは、ブロック・リストへのポインタ0610に示されるブロック・リストに含まれるブロックから構成される。
【００６３】
また、スナップショットinode情報0601では、ファイルのスナップショットの付属情報として、作成日時0606、更新日時0607、所有者0608、ファイル・サイズ0609、アクセス権情報0610が管理される。
【００６４】
さらに、スナップショットinode情報0601では、スナップショットを識別するスナップショット番号0604が管理される。
【００６５】
図9は、ファイルと、該ファイルに対するスナップショットのブロック構成の一例を示した図である。
【００６６】
ファイルXに3個のスナップショットが存在する場合を例に説明する。
【００６７】
ファイルXは、ファイルXのinode情報0501でポイントされるブロック・リストに含まれるブロックから構成される。この例の場合、時刻T3において、ファイルXは、ブロックA、ブロックE、ブロックGおよびブロックHから構成される。スナップショット1は、ファイルXのinode情報0501のでポインタ0504でポイントされるスナップショットinode情報0601により、管理される。スナップショット1は、時刻T0でのファイルXの内容を示し、ブロックA、ブロックB、ブロックC及びブロックDから構成される。スナップショット2は、スナップショット1のスナップショットinode情報0601のポインタ0603でポイントされるスナップショットinode情報0601により、管理される。スナップショット2は、時刻T1でのファイルXの内容を示し、ブロックA、ブロックB、ブロックE及びブロックFから構成される。スナップショット3は、スナップショット2のスナップショットinode情報0601のポインタ0603でポイントされるスナップショットinode情報0601により、管理される。スナップショット3は、時刻T2でのファイルXの内容を示し、ブロックA、ブロックB、ブロックE及びブロックGから構成される。
【００６８】
このように、3つのスナップショットinode情報0601は、ファイルのinode情報0501から順にポイントされ、管理される。
【００６９】
図10は、ボリューム0801上でのファイル・ストレージ0205の構成の一例を示した図である。ボリューム0801とは、論理的なディスク・ボリュームで、物理的な複数のディスク・ドライブ0113から構成される。例えば、複数のディスク・ドライブ0113を用いてRAIDを構成したものがボリューム0801である。
【００７０】
スーパ・ブロック0802は、ボリューム0801上に作成したファイル・システムに関する情報が記録される領域である。具体的には、ファイル・システムの作成日時、ボリュームのサイズ、ファイル・システムのサイズ、inode格納領域0803やスナップショットinode領域0804やビットマップ・テーブル領域0805やデータ・プール領域0806などの各種管理情報の、ボリューム上でのアドレスとサイズなどの情報を記録する。
【００７１】
inode格納領域0803は、ファイルのinode情報が格納される領域である。
【００７２】
スナップショットinode領域0804は、スナップショットのinode情報が格納される領域である。
【００７３】
ビットマップ・テーブル領域0805は、後述するビットマップ・テーブル0701が格納される領域である。
【００７４】
データ・プール領域0806は、ファイルの内容やディレクトリ・リストの内容、ブロック・リスト、ファイルの旧内容等が格納される領域である。ディレクトリ・リストとは、該ディレクトリ内に存在するディレクトリ名とディレクトリのinode番号のセットやファイル名とファイルのinode番号のセットを記録するリストである。データ・プール領域0806は、固定サイズのブロックに分割されている。
【００７５】
図11は、ビットマップ・テーブル0701の一例を示した図である。
【００７６】
ビットマップ・テーブル0701は、データ・プール領域0806の利用状況を管理するための情報である。
【００７７】
ブロック番号0702毎に数字がカウント0703にカウントされる。ブロック番号0702で示されるあるブロックが、ファイルを格納するために割り当てられると、カウントが1になる。そして、該ブロックが、該ファイルに対するスナップショットに用いられるブロックであれば、カウント数が増加する。スナップショットを削除するとカウントが減り、スナップショットをすべて削除するとカウントは1に戻る。つまり、ファイルを削除し、かつ、スナップショットも全て削除すると、カウントは0になる。
【００７８】
図12は、マイクロ・コード0204が実行するスナップショット作成処理の一例を示した図である。
【００７９】
マイクロ・コード0204は、サーバ0101から、条件IDを含むスナップショット作成要求を受信する（ステップ0901）。
【００８０】
次に、マイクロ・コード0204は、条件管理テーブル0301を用いて、条件IDで示される情報に合致する、スナップショットを作成すべきファイルを決定する（ステップ0902）。尚、本実施形態では、ディレクトリ・ファイルに関しては、無条件でディレクトリ・ファイルのスナップショットを作成する。
【００８１】
次に、マイクロ・コード2040は、タイマ0114から現在時刻を取得する（ステップ0903）。
【００８２】
そして、マイクロ・コード2040は、スナップショット管理テーブル0401を参照し、該ファイルに対応するスナップショットのスナップショット番号を割り当てる（ステップ0904）。尚、条件IDで示される情報に合致するファイルが複数存在する場合は、各ファイルに対応するスナップショットそれぞれに、スナップショット番号を割り当てる。
【００８３】
最後に、マイクロ・コード2040は、当該スナップショットのステップ0904で割り当てたスナップショット番号、ステップ0901で受信した条件ID、ステップ0903で取得した現在時刻とをスナップショット管理テーブル0401に記録する（ステップ0905）。
【００８４】
図13は、マイクロ・コード0204が実行するファイル・ライト要求処理の一例を示した図である。ファイル・ライト要求は、アクセス・クライアント0202により、ファイル・ストレージ0205a内に格納されているファイルに対して発行される。
【００８５】
またファイルやディレクトリの追加・削除・変更などに伴うディレクトリ・ファイル更新時は、マイクロ・コード0204により、図13に示す処理が実行される。
【００８６】
マイクロ・コード0204は、ファイル・ライト要求で指定されたファイルが、条件管理テーブル0301に格納されたいずれかの条件にマッチするかどうかを判断する(ステップ1001)。
【００８７】
条件管理テーブル0301に格納されたいずれの条件にもマッチしない場合、スナップショット処理を行う必要がないので、inode情報に含まれるブロック・リストへのポインタ0510が指し示すブロック・リストの当該ブロックにデータをライトする(ステップ1008)。
【００８８】
条件管理テーブル0301に格納された条件にマッチした場合、ステップ1002を実行する。ステップ1002の処理の詳細については、後述する。マッチした条件について、ステップ1002の処理が完了すると、マイクロ・コード0204は、マッチした全条件について、ステップ1002の処理を終えたかどうかを確認する（ステップ1003）。
【００８９】
マイクロ・コード0204は、ステップ1001でマッチした全条件について、ステップ1002の処理を完了していなければ、ステップ1002の処理を繰り返す。
【００９０】
マイクロ・コード0204は、ステップ1001でマッチした全条件について、ステップ1002の処理を完了したら、ステップ1002で作成した全てのスナップショットinode情報を該ファイルのinode情報からリンクされるよう、設定する(ステップ1005)。
【００９１】
次に、マイクロ・コード0204は、ライト・データを書くための空きブロックをビットマップ・テーブル0701を用いて、割り当てる(ステップ1006)。
【００９２】
そして、マイクロ・コード0204は、該ファイルのinode情報0501のブロック・リストが、ステップ1006で割り当てたブロックを含むブロック・リストに更新する (ステップ1007)。
【００９３】
最後に、マイクロ・コード0204は、ライト・データを、ステップ1007で割り当てたブロックに書き込む(ステップ1008)。
【００９４】
図14は、ステップ1002の処理の一例を示した図である。
【００９５】
ステップ1002では、マイクロ・コード0204は、図13のステップ1001でマッチした条件毎に、ファイルの更新前の内容を保管するため、スナップショットinode情報0601を作成する。
【００９６】
マイクロ・コード0204は、該条件について直前のスナップショットが存在するかどうかをファイルのinode情報0501にリンクされるスナップショットinode情報0601を用いて、チェックする(ステップ1101)。直前のスナップショットとは、時間的に見て現在時刻に最も近いスナップショットである。
【００９７】
直前のスナップショットが存在する場合、直前のスナップショットのinode情報0601のブロック・リストへのポインタ0610でポイントするブロック・リストと、該ファイルのinode情報0501のブロック・リストへのポインタ0510でポイントするブロック・リストを比較し、変更があったブロック数をカウントする(ステップ1102)。
【００９８】
直前のスナップショットが存在しない場合、このファイルに対する該条件の最初のスナップショット作成であるため、ファイルのinode情報0501のブロック・リストへのポインタ0510でポイントするブロック・リストのブロック数をカウントする(ステップ1103)。
【００９９】
次に、マイクロ・コード0204は、条件管理テーブル0301を用いて、該条件の現在の使用量0306を参照し、該条件の現在の使用量0306に、ステップ1102もしくはステップ1103でカウントしたブロック数に相当するディスク容量を加えた値が該条件の上限値0305を超えるか否かを判断する(ステップ1104)。該条件の現在の使用量0306に、差分データ量を加えた値が、該条件の上限値0305を超えている場合、これ以上、該条件でスナップショットを作成できないため、マイクロ・コード0204は、エラー・ログをSVP0110に記録し(ステップ1105)、ステップ1002を終了する。
【０１００】
該条件の現在の使用量0306に、差分データ量を加えた値が、該条件の上限値0305を超えていない場合、マイクロ・コード0204は、新しいスナップショットinode情報0601を作成する(ステップ1106)。
【０１０１】
尚、ステップ1104の処理を行うことで、複数のユーザが記憶装置システム0104を共有する場合にも、ユーザ0201間でも公平性を保証することができる。つまり、複数のユーザ0201が記憶装置システムを共有する場合、各ユーザ0201が記憶装置システム0104内に所有しているファイル量に大きな差があり、スナップショットを作成した場合、大量にファイルを所有するユーザや高頻度にファイルを更新するユーザが旧内容を保管するためのプール量を多く消費することになる場合がある。この場合を考慮し、ステップ1104の処理を行うことで、必要なスナップショットを作成できなくなることや、特定のユーザ0201の行為が他のユーザ0201の利便性を損なうことを防止することができる。
【０１０２】
次に、マイクロ・コード0204は、スナップショット管理テーブル0401を用いて、該条件の最新のスナップショット番号0402を取得する(ステップ1107)。そして、マイクロ・コード0204は、スナップショットinode情報0601に必要情報を記録する(ステップ1108)。具体的には、マイクロ・コード0204は、作成日時などファイルの付属情報を、ファイルのinode情報0501からコピーし、スナップショット番号0604に、ステップ1107で取得したスナップショット番号0402を記録する。
【０１０３】
次に、マイクロ・コード0204は、ファイルのinode情報0501のブロック・リストへのポインタ0510で示されるブロック・リストのコピーを作成し、inode情報0501からスナップショットinode情報0601へリンクするよう、設定する(ステップ1109)。
【０１０４】
最後に、ブロック・リストがポイントするブロック番号について、ビットマップ・テーブル0701の対応するエントリの値を1増やす(ステップ1110)。
【０１０５】
尚、ステップ1001において、ディレクトリ・ファイルの更新の場合、全条件にマッチするものとする。つまり、どの条件のスナップショットにおいても、ディレクトリの変更は常に保管することになる。これにより、ファイルが削除されても、ディレクトリのスナップショットから、そのファイルのinode情報0501をトラッキングすることができる。
【０１０６】
また、ステップ1104において、使用量0306が上限値0305を超えた場合、一番古いスナップショットを削除することで使用量0306を減らし、その上でスナップショット作成処理を継続することもできる。
【０１０７】
図15は、条件毎の利用ブロック数の算出方法の一例を示した図である。
【０１０８】
条件001に対応するスナップショットが、スナップショット1及びスナップショット2の2つ作成されている場合、旧データを格納するブロックは、合計6ブロックである。スナップショット1とスナップショット2で、ブロックAとブロックBをともに利用しているため、条件001に対応するスナップショットを確保するために利用するブロック数は減る。
【０１０９】
また、条件002に対応するスナップショットが、スナップショット3である場合、旧データを格納するブロックは、4ブロックである。図15の例の場合、ブロックA、ブロックB及びブロックEは、条件001と条件2では、共通して利用しているブロックであるが、二重にカウントとされる。
【０１１０】
図16（a）は、時間変化とファイルの更新状況、条件毎のスナップショット作成のタイミングの一例を示した図である。
【０１１１】
ファイルは、時刻T0に作成され、ブロック0からブロック3により、構成されたとする。図16（a）に示す例では、該ファイルは、時刻T5に、ブロック2が更新される。次に、該ファイルは、時刻T9に、ブロック3が更新される。最後に、該ファイルは、時刻T15に、ブロック0が更新される。
【０１１２】
ここで、サーバ0101aの指示に基づき、条件Aのスナップショットが、マイクロ・コード0204により、時刻T6、時刻T7、時刻T8、時刻T12に作成される。サーバ0101の指示に基づき、条件Bのスナップショットが、マイクロ・コード0204により、時刻T1と時刻T3に作成される。
【０１１３】
スナップショットS6、スナップショットS7、スナップショットS8については、時刻T9でファイルが更新されるまで、スナップショットinode情報0601は作成されない。時刻T9で、ファイルのブロック2が更新されるとき、マイクロ・コード0204は、図14のステップ1106に従い、スナップショット番号S8のスナップショットinode情報0601を作成する。スナップショットS6とスナップショットS7については、スナップショットinode情報0601は、作成されない。時刻T5と時刻T15でのファイル更新時も同様に、マイクロ・コード0204は、それぞれ、スナップショットS3とスナップショットS12のスナップショットinode情報0601を作成する。
【０１１４】
図16（b）は、ファイルのinode情報0501とスナップショットinode情報0601の変化の一例を示した図である。具体的には、図16（b）は、図16（a）に示す時刻T15時点でのファイルのinode情報0501とスナップショットinode情報0601との関係を示した図である。図16（a）の時刻T5で、ブロック2に更新があった場合、マイクロ・コード0204は、更新前のブロック・リストを用いて、スナップショットS3のスナップショットinode情報0601を作成する（ケース1）。図16（a）の時刻T9で、ブロック3に更新があった場合、マイクロ・コード0204は、更新前のブロック・リストを用いて、スナップショットS8のスナップショットinode情報0601を作成する（ケース2）。同様に、図16（a）の時刻T15で、ブロック0に更新があった場合、マイクロ・コード0204は、更新前のブロック・リストを用いて、スナップショットS3のスナップショットinode情報0601を作成する（ケース3）。ケース4-ケース8については、後述する。
【０１１５】
図17は、マイクロ・コード0204が実行する、ファイル・リード要求に対する処理の一例を示した図である。
【０１１６】
マイクロ・コード0204は、サーバ0101から受信したファイル・リード要求が、ファイルのスナップショットに対するものかどうかを判別する(ステップ1201)。この判別は、アクセス・クライアント0202がアクセスする記憶装置システム0104のエキスポート・ポイントによって判別する。記憶装置システム0104は、ファイル・ストレージ0205やファイル・ストレージ0205のスナップショット0207にエキスポート・ポイントと呼ぶ識別子を割り当てる。アクセス・クライアント0202は、エキスポート・ポイントとファイルのパス名のセットで、どのファイル・ストレージ0205もしくはスナップショット0207のどのファイルにアクセスしたいかを記憶装置システム0104に知らせる。パス名とは、ファイル・ストレージ0205やスナップショット0207のトップ・ディレクトリからファイルまでの相対アドレスのことである。
【０１１７】
該ファイル・リード要求が、スナップショットに対するファイル・リード要求でない場合、マイクロ・コード0204は、ファイルinode情報0501の削除フラグ0503を参照して、ファイルが削除されているかどうかを判別する(ステップ1207)。ステップ1207で、ファイルが削除されていないと判別された場合、マイクロ・コード0204は、ファイルのinode情報0501を参照し、データをリードする(ステップ1208)。ステップ1207で、ファイルが削除されていると判別された場合、マイクロ・コード0204は、エラーをアクセス・クライアント0202に返す。
【０１１８】
該ファイル・リード要求が、スナップショットに対するファイル・リード要求であれば、条件IDとスナップショット番号を調べる(ステップ1202)。ステップ1202の条件IDとスナップショット番号は、アクセス・クライアント0202がファイル・ストレージ内のファイルを指定したのか、スナップショット内のファイルを指定したのかを調べることで判別できる。
【０１１９】
次に、マイクロ・コード0204は、ファイルのinode情報0501にリンクされるスナップショットinode情報0601の中に、ステップ1202で調べたスナップショット番号を有するスナップショットinode情報0601があるかどうかを調べる(ステップ1203)。ステップ1203の処理の結果、ステップ1202で調べたスナップショット番号を有するスナップショットinode情報0601が存在すれば、マイクロ・コード0204は、そのスナップショットinode情報0601を参照し、データをリードする(ステップ1204)。
【０１２０】
ステップ1203の処理の結果、ステップ1202で調べたスナップショット番号を有するスナップショットinode情報0601が存在しない場合、マイクロ・コード0204は、ステップ1203で調べたスナップショットinode情報の中で、ステップ1202で調べたスナップショット番号より大きいスナップショット番号を持つスナップショットinode情報0601の中で、該条件と同じ条件で作成されたスナップショットinode情報0601が存在するかどうかを調べる(ステップ1205)。該条件と同じ条件で作成されたスナップショットinode情報0601が存在すればマイクロ・コード0204は、そのスナップショットinode情報0601を参照し、データをリードする(ステップ1206)。ステップ1205で、該条件と同じ条件で作成されたスナップショットinode情報0601が存在しなければ、マイクロ・コード0204は、条件管理テーブル0301から該スナップショットの表示方法が「全ファイル」であり、かつ、該スナップショット番号より小さいスナップショットが存在するかを調べる(ステップ1207)。該条件と同じ条件で作成されたスナップショットinode情報0601が存在すれば、マイクロ・コード0204は、そのスナップショットinode情報0601を参照し、データをリードする(ステップ1208)。もし、該条件と同じ条件で作成されたスナップショットinode情報0601が存在しなければエラーをアクセス・クライアント0202に返す。
【０１２１】
ステップ1201で、スナップショットに対するリード要求で無い場合、ステップ1209でファイルのinode情報0501の削除フラグ0503がONかOFFかを判定する。削除フラグ0503がONの場合、アクセス・クライアント0202にエラーを返す。削除フラグ0503がOFFの場合、ファイルのinode情報0501を参照し、データをリードする。
【０１２２】
図16（b）に示す、ケース4とケース5は、スナップショットに対するファイル・リード処理についての説明である。
【０１２３】
ケース4は、ステップ1206の処理に相当し、スナップショットS7に対する、アクセス・クライアント0202からのファイル・リード要求の処理の例を示す。ファイルのinode情報0501には、スナップショットS7に対応するスナップショットinode情報0601がリンクされていない。そこで、マイクロ・コード0204は、スナップショットS7と同じ条件で、スナップショットS7より大きいスナップショット番号を持つスナップショットを調べる。この例では、スナップショットS8が該当する。そこで、マイクロ・コード0204は、スナップショットS8からデータをリードする。
【０１２４】
ケース5は、ステップ1207の処理に相当し、時刻T13のとき、スナップショットS12に対する、アクセス・クライアント0202からのファイル・リード要求の処理の例を示す。この場合、スナップショットS12のスナップショットinode情報0601は、ファイルのinode情報0501でリンクされておらず、またスナップショットS12よりスナップショット番号が大きく、条件が同じスナップショットが存在しないので、ファイルのinode情報0501を参照してデータをリードする。
【０１２５】
図18は、マイクロ・コード0204が実行する、スナップショット削除処理の一例を示した図である。
【０１２６】
スナップショット作成要求と同様に、ユーザ0201や管理者が、スナップショット削除要求を記憶装置システム0104に対して発行し、マイクロ・コード0204が受理する(ステップ1501)。スナップショット削除要求には、スナップショット番号が含まれる。
【０１２７】
マイクロ・コード0204は、スナップショット削除要求に含まれるスナップショット番号を持つスナップショットinode情報0601が存在するか否かを、inode情報0501ごとに確認する(ステップ1502)。スナップショット削除要求に含まれるスナップショット番号を有するスナップショットinode情報0601が、inode情報0501からリンクされるスナップショットinode情報0601に含まれていなければ、ステップ1510の処理を行う。
【０１２８】
スナップショット削除要求に含まれるスナップショット番号を有するスナップショットinode情報0601が、inode情報0501からリンクされるスナップショットinode情報0601に含まれていれば、該スナップショットinode情報0601について、スナップショット作成時の条件IDが同じで、指定されたスナップショット番号より古い時点で作成されたスナップショット番号が存在し、古いスナップショット番号に対応するスナップショットinode情報0601が、inode情報0501からリンクされるスナップショットinode情報0601の中に他に含まれていないかどうかを確認する（ステップ1503）。ステップ1503で、スナップショット番号が存在する場合は、ステップ1502で得たスナップショットinode情報0601のスナップショット番号をステップ1503で得たスナップショット番号に書き換える(ステップ1504)。
【０１２９】
ステップ1504で、スナップショット番号が存在しなければ、ステップ1503で得たスナップショットinode情報0601をファイルのinode情報0501のリンクから外す(ステップ1505)。具体的には、ファイルのinode情報0501のリンクは複数のスナップショットinode情報0601をキュー状に接続し、管理している。このキューから該スナップショットinode情報0601から取り出す。
【０１３０】
次に、マイクロ・コード0204は、該スナップショットinode情報0601のブロック・リストへのポインタ0610がポイントするブロック・リストが示すブロック番号について、ビットマップ・テーブルの対応するエントリの値を1減らす(ステップ1506)。そして、マイクロ・コード0204は、スナップショットinode情報0601とブロック・リストを解放する(ステップ1507)。解放するとは、該スナップショットinode情報0601を未使用状態にし、ブロック・リストに割り当てたディスク領域を未使用状態にすることをいう。ファイルのinode情報0501からリンクするスナップショットinode情報0601がなく、かつ、ファイルのinode情報0501の削除フラグがONであれば、マイクロ・コード0204は、ファイルのinode情報0501を開放し、ステップ1510の処理を行う。ファイルinode情報0501の削除フラグがOFFであれば、マイクロ・コード0204は、ステップ1510の処理を行う。
【０１３１】
そして、マイクロ・コード0204は、すべてのinode情報0501について、ステップ1502の処理を実行したかどうかを確認する（ステップ1510）。すべてのinode情報0501について、ステップ1502の処理を実行していなければ、マイクロ・コード0204は、ステップ1502の処理を行う。すべてのinode情報0501について、ステップ1502の処理を実行している場合、マイクロ・コード0204は、スナップショット管理テーブル0401から該スナップショット番号のエントリを削除する(ステップ1511)。
【０１３２】
図16（b）に示す、ケース6、ケース7およびケース8は、スナップショット削除処理についての説明である。ケース6は、ステップ1504の処理に相当し、スナップショット削除要求が、スナップショットS8に対するものであるため、マイクロ・コード0204は、スナップショットS8を削除するが、その直前のスナップショットS7のスナップショットinode情報0601が無いので、S8のスナップショットinode情報0601をスナップショット番号S7に書き換える。
【０１３３】
ケース7は、ステップ1505からステップ1507の処理に相当し、スナップショット削除要求がスナップショット12に対する場合である。この場合、直前のスナップショットS8は、スナップショットinode情報を持つので、スナップショットのS12のエントリを削除する。
【０１３４】
ケース8は、スナップショット削除対象が、スナップショットS7であり、スナップショットS7は、スナップショットinode情報0601を有していないので、マイクロ・コード0204は、スナップショット管理テーブルからS7のエントリを削除する。
【０１３５】
尚、ステップ1502以降の処理を、バックグラウンド・ジョブとして動作させ、ファイル・アクセス処理の性能に影響が出ないようにすることができる。
【０１３６】
図19は、マイクロ・コード0204が実行する、ファイルの削除の処理の一例を示した図である。
【０１３７】
サーバ0101aまたはサーバ0102bからファイル削除要求を受け取ったマイクロ・コード0204は、ファイルのリンク元のディレクトリ・ファイルから該ファイルのエントリを削除する(ステップ1301)。このとき、マイクロ・コード0204は、ディレクトリ・ファイルを更新するため、図13のファイル・ライト処理を実行する。これにより、ディレクトリ・ファイルの旧内容は保管される。次に、マイクロ・コード0204は、図13に示す、削除するファイルへのファイル・ライト処理を実行する。このとき、ライト・データは、指定されず、何も書き込まれないよう制御する。これにより、マイクロ・コード0204は、スナップショットinode情報0601を作成していない最新のスナップショットがある場合、該スナップショットに対応するスナップショットinode情報0601を作成する(ステップ1302)。次に、マイクロ・コード0204は、削除するファイルのinode情報0501からリンクされるスナップショットinode情報0601が存在するか否かをチェックする(ステップ1303)。該スナップショットinode情報0601が存在しない場合、マイクロ・コード0204は、該ファイルのinode情報0501を削除する(ステップ1304)。該スナップショットinode情報0601が存在する場合、マイクロ・コード0204は、該ファイルのinode情報0501の削除フラグをONにする(ステップ1305)。そして、マイクロ・コード0204は、該ファイルのinode情報0501のブロック・リストへのポインタ0610からポイントされるブロック・リストを解放する(ステップ1306)。最後に、マイクロ・コード0204は、ステップ1305で解放されたブロック番号に対応するビットマップ・テーブルのエントリの値を1減らす(ステップ1307)。
【０１３８】
図20は、マイクロ・コード0204が実行する、ディレクトリ・リスティング処理の一例を示した図である。ディレクトリ・リスティングとは、記憶装置システム0104が、アクセス・クライアント0202を介してユーザ0201が指定したディレクトリ内に存在する、ファイルやサブ・ディレクトリの構成を、ユーザ0201が使用する表示画面等に表示することである。
【０１３９】
マイクロ・コード0204は、指定されたディレクトリのディレクトリ・ファイルをリードする (ステップ1401)。この処理は、具体的には、図12のルーチンを呼び出す。これにより、ユーザ0201がスナップショット内のファイルを探索するために、ディレクトリ・リスティング要求を発行した場合、ディレクトリのスナップショットを探索することができる。
【０１４０】
マイクロ・コード0204は、ディレクトリのスナップショットに対するリスティング要求かどうかを判別する(ステップ1402)。このとき、マイクロ・コード0204は、図12のルーチンを呼び出し、スナップショット番号を取得する。リスティング要求が、現在のディレクトリに対するものであれば、リターン・リストにディレクトリ・ファイル内の全ファイル・エントリを加える。(ステップ1405)そして、マイクロ・コード0204は、リターン・リストを呼び出し、表示画面等に表示させる。(ステップ1408)。
【０１４１】
ステップ1402において、リスティング要求が、ディレクトリのスナップショットに対するものであれば、エントリがリンクするファイルのinode情報0501を取得する(ステップ1403)。このinode情報0501がリンクするスナップショットinode情報0601の中にアクセス・クライアント0202が指定した、スナップショット番号に一致するスナップショットinode情報0601があるかどうかを調べる(ステップ1404)。スナップショット番号に一致するスナップショットinode情報0601がなければ、次のエントリに進む。スナップショット番号に一致するスナップショットinode情報0601があれば、マイクロ・コード0204は、リターン・リストに該ファイル・エントリを加える(ステップ1406)。これにより、指定されたスナップショットに対応する条件のファイルのみ、ユーザ0201は、表示画面等により、確認できる。マイクロ・コード0204は、全エントリについて、ステップ1403からステップ1407の処理を実行したかどうかを確認する（ステップ1407）。全エントリについて、ステップ1403からステップ1407の処理を実行していなければ、次のエントリに進む。全エントリについて、ステップ1403からステップ1407の処理が終了していれば、マイクロ・コード0204は、リターン・リストを呼び出し、表示画面等に表示させる。(ステップ1408)。
【０１４２】
ステップ1404において、マイクロ・コード0204は、スナップショット番号が一致せず、異なる条件でスナップショットされたファイルであっても、該スナップショットの作成時刻より過去で、該スナップショットの作成時刻に一番近いスナップショットがあれば、そのスナップショットをリターン・リストに加える。これにより、マイクロ・コード0204は、図5（b）に示すファイル・システム・ツリーの構成を、表示画面等に表示することができる。
【０１４３】
図21は、ファイルの検索機能を持つ計算機システムの構成の一例を示した図である。マイクロ・コード0204は、内部機能としてファイル・ストレージ0205内のファイルの中身を検索し、ファイルのインデックス2102を作成する機能である検索エンジン2101を有する。図3において、条件式0303にキーワードを指定することで、スナップショット時に指定したキーワードを内容に含むファイルをスナップショットの対象とすることができる。
【０１４４】
本実施形態では、スナップショットを作成する対象をファイルとしたが、OSD(Object-based Storage Device)のオブジェクトであっても良いし、ボリュームの集合であっても良い。サーバ0101と記憶装置システム0104を接続するネットワークとしては、Ethernet（登録商標）やFibre Channel、InfiniBandなどを使用することができる。また、通信プロトコルについても、TCP/IP、FCP(Fibre Channel Protocol)、iSCSI(Internet SCSI)、SRP (SCSI RDMA Protocol)などが適用できる。
【０１４５】
本実施形態では、条件式により対照ファイルを制限したが、ファイル・ストレージ内の全ファイルを対象とする条件式を指定しても構わない。
【０１４６】
また、本実施形態では、1個のボリュームをファイル・データ格納用とプール用に共有したが、ファイル・データを格納するボリュームと、プール用のボリュームが別々であっても構わない。
【図面の簡単な説明】
【０１４７】
【図１】計算機システムの一例を示した図である。
【図２】計算機システムの論理的な構成の一例を示した図である。
【図３】条件管理テーブルの一例を示した図である。
【図４（ａ）】ファイル・システム・ツリーの一例を示した図である。
【図４（ｂ）】ファイル・システム・ツリーの一例を示した図である。
【図４（ｃ）】ファイル・システム・ツリーの一例を示した図である。
【図５（ａ）】ファイルの更新のタイミングの一例を示した図である。
【図５（ｂ）】ファイル・システム・ツリーの一例を示した図である。
【図６】スナップショット管理テーブルの一例を示した図である。
【図７】inode情報の一例を示した図である。
【図８】スナップショットinode情報の一例を示した図である。
【図９】ファイルと、該ファイルに対するスナップショットのブロック構成の一例を示した図である。
【図１０】ファイル・ストレージの構成の一例を示した図である。
【図１１】ビットマップ・テーブルの一例を示した図である。
【図１２】スナップショット作成処理の一例を示した図である。
【図１３】ファイル・ライト要求処理の一例を示した図である。
【図１４】ファイル・ライト要求処理内の処理の一例を示した図である。
【図１５】条件ごとの利用ブロック数の算出方法の一例を示した図である。
【図１６（ａ）】時間変化とファイルの更新状況、条件毎のスナップショット作成のタイミングの一例を示した図である
【図１６（ｂ）】ファイルのinode情報0501とスナップショットinode情報0601の変化の一例を示した図である。
【図１７】ファイル・リード要求処理の一例を示した図である。
【図１８】スナップショット削除処理の一例を示した図である。
【図１９】ファイル削除処理の一例を示した図である。
【図２０】ディレクトリ・リスティング処理の一例を示した図である。
【図２１】ファイルの検索機能を持つ計算機システムの構成の一例を示した図である。
【符号の説明】
【０１４８】
0101  サーバ
0103  ネットワーク
0104  記憶装置システム
0205  ファイル・ストレージ
0207  スナップショット
0206  プール
0204  マイクロ・コード
0301  条件管理テーブル
0401  スナップショット管理テーブル
0501  ビットマップ・テーブル
【図１】
0004799936.tif 000002
【図２】
0004799936.tif 000003
【図３】
0004799936.tif 000004
【図４（ａ）】
0004799936.tif 000005
【図４（ｂ）】
0004799936.tif 000006
【図４（ｃ）】
0004799936.tif 000007
【図５（ａ）】
0004799936.tif 000008
【図５（ｂ）】
0004799936.tif 000009
【図６】
0004799936.tif 000010
【図７】
0004799936.tif 000011
【図８】
0004799936.tif 000012
【図９】
0004799936.tif 000013
【図１０】
0004799936.tif 000014
【図１１】
0004799936.tif 000015
【図１２】
0004799936.tif 000016
【図１３】
0004799936.tif 000017
【図１４】
0004799936.tif 000018
【図１５】
0004799936.tif 000019
【図１６（ａ）】
0004799936.tif 000020
【図１６（ｂ）】
0004799936.tif 000021
【図１７】
0004799936.tif 000022
【図１８】
0004799936.tif 000023
【図１９】
0004799936.tif 000024
【図２０】
0004799936.tif 000025
【図２１】
0004799936.tif 000026