(57)【特許請求の範囲】
【請求項１】
ファイルのデータを格納するストレージシステムを制御するストレージシステムコントローラであって、
制御ユニットと記憶装置とを含み、
前記記憶装置は、第１ファイルの管理情報を格納し、前記第１ファイルの管理情報は、前記第１ファイル内のデータ位置と物理記憶位置とを関連付ける第１情報を含み、
前記制御ユニットは、前記第１ファイルの管理情報に基づき前記第１ファイルの複数のサブファイルのそれぞれの管理情報を生成することによって、前記第１ファイルのデータをコピーすることなく前記複数のサブファイルを作成し、
前記複数のサブファイルのそれぞれの管理情報はサブファイル内のデータ位置と物理記憶位置とを関連付ける情報を含み、
前記制御ユニットは、前記第１情報における関連付けを、前記第１ファイル内のデータ位置と当該データ位置のデータを含むサブファイルの管理情報との関連付けに変更し、
前記制御ユニットは、前記第１ファイル内の第１アクセス位置を指定する前記第１ファイルへのアクセスコマンドを受け取り、
前記制御ユニットは、前記第１ファイルの管理情報を参照して、前記第１アクセス位置のデータが含まれるサブファイルの管理情報を特定し、
前記制御ユニットは、前記特定されたサブファイルの管理情報を参照して、前記第１アクセス位置の物理記憶位置を特定する、ストレージシステムコントローラ。
【請求項２】
前記制御ユニットは、前記複数のサブファイルにおける第１サブファイルへのアクセスコマンドを受け取り、
前記制御ユニットは、前記第１サブファイルの管理情報を参照して、前記第１サブファイルへのアクセスを制御する、請求項１に記載のストレージシステムコントローラ。
【請求項３】
前記制御ユニットは、前記第１ファイルが予め定められた条件を満たしている場合に、前記第１ファイルを分割することを決定し、
前記予め定められた条件は、前記第１ファイルの、パス、ファイルサイズ、ファイルタイプ、アクセス頻度の少なくとも一つについての条件を含む、請求項１に記載のストレージシステムコントローラ。
【請求項４】
前記第１ファイルの管理情報は、前記第１ファイルのサブファイルが存在するか否かを示すサブファイル化情報を含み、
前記制御ユニットは、前記サブファイル化情報を参照して、前記第１ファイルが複数のサブファイルに分割されているか否かを判定する、請求項１に記載のストレージシステムコントローラ。
【請求項５】
前記制御ユニットは、アクセスコマンドが指定する前記第１ファイル内の第２アクセス位置と前記第２アクセス位置のデータを含むサブファイルとを関連付ける情報が、前記第１ファイルの前記管理情報内に存在しない場合、前記第２アクセス位置と前記第２アクセス位置のデータを含むサブファイルとを関連付ける情報と、前記第２アクセス位置のデータを含むサブファイルの管理情報と、を作成する、請求項１に記載のストレージシステムコントローラ。
【請求項６】
前記第１ファイルは、第２ファイルのサブファイルである、請求項１に記載のストレージシステムコントローラ。
【請求項７】
前記制御ユニットは、前記複数のサブファイルのそれぞれへのアクセス頻度を監視し、
前記制御ユニットは、前記複数のサブファイルにおける第１サブファイルのアクセス頻度が閾値を超える場合に、前記第１サブファイルを複数のサブファイルに分割することを決定する、請求項１に記載のストレージシステムコントローラ。
【請求項８】
前記制御ユニットは、前記複数のサブファイルのそれぞれの管理情報におけるサブファイル内データ位置と物理記憶位置とを関連付ける情報を、前記第１ファイルの管理情報に反映し、前記複数のサブファイルのそれぞれの管理情報を削除して、前記複数のサブファイルを前記第１ファイルに統合する、請求項１に記載のストレージシステムコントローラ。
【請求項９】
前記制御ユニットは、前記複数のサブファイルにおいて更新されたサブファイルを選択して、前記第１ファイルのバックアップ先に送信する、請求項１に記載のストレージシステムコントローラ。
【請求項１０】
前記第１ファイル内のデータ位置と当該データ位置のデータが含まれるサブファイルの管理情報とを関連づける情報は、前記サブファイルのファイル名である、請求項１に記載のストレージシステムコントローラ。
【請求項１１】
複数のファイルを格納する記憶装置と、前記複数のファイルへのアクセスを制御するストレージシステムコントローラと、を含むストレージシステムであって、
前記記憶装置は、第１ファイルのデータを格納し、
前記ストレージシステムコントローラは、前記第１ファイルの管理情報を有し、
前記第１ファイルの管理情報は、前記第１ファイル内のデータ位置と物理記憶位置とを関連付ける第１情報を含み、
前記ストレージシステムコントローラは、前記第１ファイルの管理情報に基づき前記第１ファイルの複数のサブファイルのそれぞれの管理情報を生成することによって、前記第１ファイルのデータをコピーすることなく前記複数のサブファイルを作成し、
前記複数のサブファイルのそれぞれの管理情報はサブファイル内のデータ位置と物理記憶位置とを関連付ける情報を含み、
前記ストレージシステムコントローラは、前記第１情報における関連付けを、前記第１ファイル内のデータ位置と当該データ位置のデータを含むサブファイルの管理情報との関連付けに変更し、
前記ストレージシステムコントローラは、前記第１ファイル内の第１アクセス位置を指定する前記第１ファイルへのアクセスコマンドを受け取り、
前記ストレージシステムコントローラは、前記第１ファイルの管理情報を参照して、前記第１アクセス位置のデータが含まれるサブファイルの管理情報を特定し、
前記ストレージシステムコントローラは、前記特定されたサブファイルの管理情報を参照して、前記第１アクセス位置の物理記憶位置を特定する、ストレージシステム。
【請求項１２】
複数のサブファイルに分割されているファイルを格納するストレージシステムにおけるアクセス制御方法であって、
第１ファイル内のデータ位置と物理記憶位置とを関連付ける第１情報を含む前記第１ファイルの管理情報に基づき、前記第１ファイルの複数のサブファイルのそれぞれの管理情報を生成することによって、前記第１ファイルのデータをコピーすることなく前記複数のサブファイルを作成し、
前記複数のサブファイルのそれぞれの管理情報は、サブファイル内のデータ位置と物理記憶位置とを関連付ける情報を含み、
前記第１情報における関連付けを、前記第１ファイル内のデータ位置と当該データ位置のデータを含むサブファイルの管理情報との関連付けに変更し、
前記第１ファイル内の第１アクセス位置を指定する前記第１ファイルへのアクセスコマンドを受け取り、
前記第１ファイルの管理情報を参照して、前記第１アクセス位置のデータが含まれるサブファイルの管理情報を特定し、
前記特定されたサブファイルの管理情報を参照して、前記第１アクセス位置の物理記憶位置を特定する、アクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムコントローラ、ストレージシステム及びストレージシステムにおけるアクセス制御方法に関する。
【背景技術】
【０００２】
ディスクデバイスを仮想化して形成されたファイルであるディスクイメージファイル、仮想マシンが使う仮想ディスクのＶＭＤＫ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｄｉｓｋ）ファイル、データベースファイルなど、大きなサイズの単一ファイル（以下、大サイズファイルと呼ぶ）とファイル単位のバックアップアプリケーションを組み合わせて使用する場合、大サイズファイルの一部が変更になっただけでファイル全体をバックアップすることになり、バックアップ時間が長くなってしまう。
【０００３】
ファイル管理の従来技術として、Ｓｐａｒｓｅｂｕｎｄｌｅ  ｄｉｓｋ  ｉｍａｇｅと呼ばれる技術が知られている（例えば、非特許文献１を参照）。この技術は、単一のディスクイメージファイルを複数の小さなサイズのファイル（以下、サブファイルと呼ぶ）からなるディスクイメージに変換（以下、サブファイル化と呼ぶ）し、サブファイル単位で更新を管理することでバックアップ対象のサブファイルを限定し、バックアップ時間を短縮する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Apple Inc., hdiutil(1) Mac OS X Manual version 10.6.6, BSD General Commands Manual
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記従来技術は、元のディスクイメージファイルを複数の領域に分割し、それぞれの領域を別々のファイルにコピーすることで、元のディスクイメージファイルをサブファイル化する。そのため、ファイルのデータブロックのコピーが発生し、サブファイル化処理に時間がかかってしまう。
【０００６】
また、上記従来技術は、ディスクイメージファイルと呼ぶ特殊なファイルフォーマットのみを対象としているため、ＶＭＤＫファイルやデータベースファイルなどにサブファイル化を適用する場合、ディスクイメージファイルを一度何らかのファイルシステムへフォーマットし、そのファイルシステムの中にＶＭＤＫファイルやデータベースファイルなどを格納する必要がある。そのため、ファイルのパス名が変更となるなど運用の柔軟性に欠けている。
【課題を解決するための手段】
【０００７】
本発明の一態様は、ファイルを格納するストレージシステムを制御するストレージシステムコントローラである。前記ストレージシステムコントローラは、制御ユニットと記憶装置とを含む。前記制御ユニットは、第１ファイル内の第１アクセス位置を指定する前記第１ファイルへのアクセスコマンドを受け取る。前記記憶装置は、前記第１ファイルの管理情報と、前記第１ファイルを分割した複数のサブファイルのそれぞれの管理情報と、を格納する。前記第１ファイルの管理情報は、前記第１ファイル内のデータ位置と、当該データ位置のデータが含まれるサブファイルの管理情報と、を関連づける情報を含む。前記複数のサブファイルのそれぞれの管理情報は、サブファイル内のデータ位置と物理記憶位置とを関連付ける情報を含む。前記制御ユニットは、前記第１ファイルの管理情報を参照して、前記第１アクセス位置のデータが含まれるサブファイルの管理情報を特定する。前記制御ユニットは、前記特定されたサブファイルの管理情報を参照して、前記第１アクセス位置の物理記憶位置を特定する。
【発明の効果】
【０００８】
本発明によれは、効率的にファイルへのアクセスを制御することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態のコンピュータシステムの構成例を示すブロック図である。
【図２】本実施形態のＵｎｉｆｉｅｄストレージシステムのハードウェア構成を示すブロック図である。
【図３】本実施形態の管理計算機のハードウェア構成を示すブロック図である。
【図４】本実施形態の概要を示す模式図である。
【図５】本実施形態のストレージヘッドのソフトウェア構成である。
【図６】本実施形態のファイルシステム管理情報の例である。
【図７Ａ】本実施形態のサブファイル化前のＥｘｔｅｎｔ情報の例である。
【図７Ｂ】本実施形態のサブファイル化後のＥｘｔｅｎｔ情報の例である。
【図８】本実施形態のサブファイル化ポリシ管理テーブルの例である。
【図９】本実施形態のサブファイル化処理のフローチャートである。
【図１０】本実施形態のファイルに対するＩ／Ｏ処理のフローチャートである。
【図１１】本実施形態のサブファイル化ポリシを管理するＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）の一例を示す。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の実施形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。本発明が本実施形態に制限されることは無く、本発明の思想に合致するあらゆる応用例が本発明の技術的範囲に含まれる。特に限定しない限り、各構成要素は複数でも単数でも構わない。
【００１１】
以下の説明では、例えば、「ｘｘｘ表」の表現にて各種情報を説明することがあるが、各種情報は表以外のデータ構造で表現されていてもよい。各種情報がデータ構造に依存しないことを示すために、「ｘｘｘ表」を「ｘｘｘ情報」と呼ぶことがある。
【００１２】
管理システムは、一又は複数の計算機で構成することができる。例えば、管理計算機が情報を処理及び表示する場合、管理計算機が管理システムである。例えば、複数の計算機で管理計算機と同等の機能が実現されている場合、当該複数の計算機（表示を表示用計算機が行う場合は表示用計算機を含んでよい）が、管理システムである。本実施形態では、管理計算機が管理システムである。
【００１３】
以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インタフェース装置（例えば通信ポート）を用いながら行うため、処理の主語がプロセッサであってもよい。プロセッサは、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。プロセッサを含む装置及びシステムは、これらの機能部を含む装置及びシステムである。
【００１４】
プログラム又はプロセッサを主語として説明された処理は、計算機（例えば、Ｕｎｉｆｉｅｄストレージシステム、管理計算機、クライアント又はホスト）を主語として説明できる。プロセッサは、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでもよい。コンピュータプログラムは、プログラムソースから各計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ（例えば管理計算機）又は記憶メディアでよい。
【００１５】
本実施形態において、ファイルシステムは、ファイルのサブファイル化処理を行う。ファイルのサブファイル化処理は、サブファイル化対象となるファイル（親ファイルと呼ぶ）から、親ファイルを分割した複数のサブファイルを生成する。ファイルシステムは、サブファイル化処理において、親ファイルのデータブロックの管理情報を基に、サブファイルの管理情報を生成する。親ファイルのブロックデータは、各サブファイルに割り当てられる。これにより、親ファイルに割り当てられたデータブロックをコピーすることなく、サブファイルを生成することができる。
【００１６】
本実施形態のファイルシステムは、親ファイルへのＩ／Ｏを受けて、サブファイルへのＩ／Ｏへ変更する。ファイルシステムは、アプリケーションの処理内容に応じて、親ファイル又はサブファイルへのアクセスインタフェースを提供する。本実施形態において、サブファイルはファイルの一種であり、サブファイルをさらにサブファイル化することができる。
【００１７】
本実施形態により、例えば、ディスクイメージファイル、ＶＭＤＫ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｄｉｓｋ）ファイル、データベースファイルなどの大容量の単一ファイル（大サイズファイル）について、更新されたサブファイル単位でバックアップを行うことが可能となる。これにより、大サイズファイルの一部が変更になっただけで大サイズファイル全体をバックアップする必要がなく、バックアップ時間を短縮することができる。
【００１８】
本実施形態は、バックアップ以外にも、一般的なファイルを操作するアプリケーションに対応可能である。例えば、本実施形態により、サブファイル単位で、重複排除処理、階層化管理処理、暗号化処理、圧縮処理を行うことが可能となる。本実施形態は、ファイルサーバ、ＮＡＳなどのファイルストレージシステムに広く適用可能である。
【００１９】
本実施形態は、サブファイル化処理においてデータブロックをコピーすることが不要であるため、短時間でサブファイル化処理を行うことができる。ファイルシステムによるサブファイル化処理は、ディスクイメージファイル、ＶＭＤＫファイル、データベースファイルを含む一般的な全てのファイルをサブファイル化することが可能である。ファイルを他のファイルシステムに移動することなくサブファイル化できるため、サブファイル化の前後でファイルのパスの変更が不要である。
【００２０】
図１は、本実施形態のコンピュータシステムの構成例を示すブロック図である。コンピュータシステムは、Ｕｎｉｆｉｅｄストレージシステム１００と、ホスト計算機１１０と、クライアント計算機１２０と、管理計算機１３０と、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１４０と、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１５０と、バックアップサーバ計算機１６０を有する。
【００２１】
Ｕｎｉｆｉｅｄストレージシステム１００は、複数（又は１つ）のホスト計算機（以下、ホスト）１１０と、ＳＡＮ１４０を介して接続する。また、Ｕｎｉｆｉｅｄストレージシステム１００は、複数（又は１つ）のクライアント計算機（以下クライアント）１２０、複数（又は１つ）の管理計算機１３０、及び複数（又は１つ）のバックアップサーバ計算機（以下バックアップサーバ）１６０と、ＬＡＮ１５０を介して接続する。
【００２２】
Ｕｎｉｆｉｅｄストレージシステム１００は、複数のデータ通信プロトコルを処理可能なストレージシステムである。例えば、Ｕｎｉｆｉｅｄストレージシステム１００は、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）、ｉＳＣＳＩ（ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＦＣｏＥ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ）などのブロックボリュームを提供する通信プロトコルを使い、ホスト１１０やクライアント１２０とデータ通信を行う。
【００２３】
又は、Ｕｎｉｆｉｅｄストレージシステム１００は、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）などのファイル共有サービスを提供する通信プロトコルを使い、ホスト１１０やクライアント１２０とデータ通信を行う。
【００２４】
Ｕｎｉｆｉｅｄストレージシステム１００は、例えば、ホスト１１０からのブロックボリュームへのＩ／Ｏ要求を、ＳＡＮ１４０を介して受け取り、その処理結果をホスト１１０へ返す。Ｕｎｉｆｉｅｄストレージシステム１００は、クライアント１２０からのファイル共有サービスへのＩ／Ｏ要求を、ＬＡＮ１５０を介して受け取り、その処理結果をクライアント１２０へ返す。Ｕｎｉｆｉｅｄストレージシステム１００は、管理計算機１３０からの指示を受け取り、Ｕｎｉｆｉｅｄストレージシステム１００の設定を変更する。
【００２５】
Ｕｎｉｆｉｅｄストレージシステム１００は、ＬＡＮ１５０を介して、Ｕｎｉｆｉｅｄストレージシステム１００に格納しているデータを、バックアップサーバ１６０へバックアップする。Ｕｎｉｆｉｅｄストレージシステム１００は、例えば、管理計算機１３０から指示された時点又は定期的に、バックアップを行う。
【００２６】
Ｕｎｉｆｉｅｄストレージシステム１００は、複数のＳＡＮ１４０や複数のＬＡＮ１５０と接続していてもよい。また、クライアント１２０と管理計算機１３０とバックアップサーバ１６０とは、それぞれ異なるＬＡＮ１５０経由でＵｎｉｆｉｅｄストレージシステム１００と接続してもよい。また、Ｕｎｉｆｉｅｄストレージシステム１００は、ＳＡＮ経由で管理計算機１３０やバックアップサーバ１６０と接続してもよい。また、ＳＡＮ１４０やＬＡＮ１５０は、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネットなど他種の通信ネットワークでもよい。
【００２７】
図２は、Ｕｎｉｆｉｅｄストレージシステム１００のハードウェア構成例を示すブロック図である。Ｕｎｉｆｉｅｄストレージシステム１００は、ストレージヘッド２００とストレージ装置２１０を含む。ストレージヘッド２００とストレージ装置２１０は、通信路２２０で接続される。
【００２８】
ストレージヘッド２００は、Ｕｎｉｆｉｅｄストレージシステム１００及びストレージ装置２１０の管理及び制御を行う。ストレージヘッド２００は、メモリ２０２、ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｏｒ）２０３、２０４、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０５及びそれらに接続された制御演算ユニットであるＣＰＵ２０１を有する。
【００２９】
メモリ２０２に代えて又は加えて別種の記憶資源が採用されてもよい。ＨＢＡ２０３、２０４及びＮＩＣ２０５に代えて、別種の通信インタフェースデバイスが採用されてもよい。ＨＢＡ２０３は、ＳＡＮ１４０に接続される。ＨＢＡ２０４は、通信路２２０を介してストレージ装置２１０に接続される。ＮＩＣ２０５は、ＬＡＮ１５０に接続される。
【００３０】
ＣＰＵ２０１は、メモリ２０２に格納されているコンピュータプログラムを実行する。メモリ２０２は、コンピュータプログラム及びその他のデータを記憶する。また、メモリ２０２は、ホスト１１０から受信したデータ及びホスト１１０に送信するデータを一時的に記憶するキャッシュ領域を含んでいてもよい。メモリ２０２は、クライアント１２０から受信したファイル及びクライアント１２０に送信するファイルを一時的に記憶するキャッシュ領域を含んでいてもよい。
【００３１】
ストレージ装置２１０は、ストレージヘッド２００が使用するプログラムやファイルを格納するための記憶装置である。ストレージ装置２１０は、ストレージキャッシュ２１１、ストレージコントローラ２１２、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ）２１３、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）ディスク２１４、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）ディスク２１５を含む。それぞれの構成部位は、内部バスまたは内部ネットワークにて接続される。
【００３２】
ストレージキャッシュ２１１、ストレージコントローラ２１２、ＳＳＤ２１３、ＳＡＳディスク２１４、ＳＡＴＡディスク２１５は、それぞれ図２に示した数に限定されない。また、ストレージ装置２１０についても、図２に示した数に限定されない。以下では、ＳＳＤ２１３、ＳＡＳディスク２１４及びＳＡＴＡディスク２１５を、総称してディスク装置と呼ぶ。
【００３３】
ストレージコントローラ２１２は、ストレージヘッド２００と通信し、ストレージ装置２１０を制御する。具体的には、ストレージコントローラ２１２は、ストレージヘッド２００と通信し、ストレージヘッド２００からの要求に従って後述のストレージキャッシュ２１１を用いつつディスク装置にデータを書き込み、又はストレージキャッシュ２１１を用いつつディスク装置からデータを読み出す。
【００３４】
前述の通り、本例において、ストレージコントローラ２１２が受信するアクセス要求又は送信するデータは、ブロックアドレス形式によって指定されるブロックデータ（単にブロックと呼ぶことがある）である。
【００３５】
ストレージキャッシュ２１１は、例えば、半導体メモリであり、ディスク装置に書き込むデータ又はディスク装置から読み出したブロックデータを一時的に格納するために用いる。なお、ストレージキャッシュ２１１の一部として、半導体メモリより低速な記憶装置を用いてもよい。
【００３６】
ディスク装置は、データを格納する装置である。図２では、ストレージ装置２１０は、ＳＳＤ２１３、ＳＡＳディスク２１４、ＳＡＴＡディスク２１５をそれぞれ１個持っているが、ストレージ装置２１０には、任意の数のディスク装置を設置できる。なお、ディスク装置は、典型的には、ＳＳＤ２１３、ＳＡＳディスク２１４、ＳＡＴＡディスク２１５であるが、ブロック形式のデータを格納できるのであれば何でもよいため、例えばＤＶＤやＣＤや磁気テープを記憶媒体として使用する装置でもよい。
【００３７】
なお、高速化や冗長化や高信頼化等の理由から、ストレージコントローラ２１２は、複数のディスク装置を、アクセス可能な一つ以上の仮想的なディスク装置として、ストレージヘッド２００に提供してもよい（より具体的にはＲＡＩＤ技術を使用する）。
【００３８】
以後の説明では、この仮想的なディスク装置をボリュームと呼び、「ストレージ装置又はストレージコントローラがボリュームにブロックデータを書き込む」との説明は、実際はストレージコントローラ２１２がストレージキャッシュ２１１又はディスク装置にブロックデータを書き込むことを意味する。
【００３９】
同様に、「ストレージ装置またはストレージコントローラがボリュームからブロックデータを読む」と説明した場合は、実際はストレージコントローラ２１２がストレージキャッシュ２１１またはディスク装置からブロックデータを読み出すことを意味する。
【００４０】
一般に、ストレージコントローラ２１２は、ストレージヘッド２００からボリュームに対するデータを書き込む要求を受信した場合、アクセス速度の速いストレージキャッシュ２１１に一時的にデータを書き込んだ後、ストレージヘッド２００に書き込み完了を通知する。
【００４１】
そして、ストレージコントローラ２１２は、ストレージヘッド２００からの書き込み要求とは非同期にディスク装置にストレージキャッシュ２１１に格納されているデータを書き込むことで、ストレージキャッシュ２１１に比較してディスク装置の性能が低い場合でも、ストレージ装置２１０全体としての性能を向上する。
【００４２】
ストレージヘッド２００のＨＢＡ２０４とストレージ装置２１０のストレージコントローラ２１２と間の通信路２２０は、スイッチを介して繋がっていてもよい。ストレージヘッド２００とストレージ装置２１０とは、それぞれ複数台あってもよい。複数のストレージヘッド２００が一台のストレージ装置２１０に接続する構成であってもよい。ストレージヘッド２００と複数のストレージ装置２１０が、ＳＡＮを構成してもよい。
【００４３】
ＨＢＡ２０４とストレージ装置２１０間の通信路２２０は、例えばファイバーチャネル（ＦＣ）で構成される。通信路２２０として、通信可能であればこれ以外のネットワーク（例えばＥｔｈｅｒｎｅｔ）を採用してもよい。
【００４４】
図３は、管理計算機１３０のハードウェア構成例を示すブロック図である。管理計算機１３０は、メモリ３０２、入力装置３０３、ＮＩＣ３０４、二次記憶デバイス３０５、表示デバイス３０６及びそれらに接続されたＣＰＵ３０１を有する。メモリ３０２及び二次記憶デバイス３０５の少なくとも１つに代えて別種の記憶資源が採用されもよい。ＮＩＣ３０４に代えて別種の通信インタフェースデバイスが採用されてもよい。
【００４５】
二次記憶デバイス３０５からメモリ３０２にコンピュータプログラムがロードされる。ＣＰＵ３０１は、メモリ３０２に格納されているコンピュータプログラムを実行する。入力デバイス３０３は、管理者に操作されるデバイスであり、例えば、キーボード及びポインティングデバイスである。ＮＩＣ３０４は、ＬＡＮ１５０に接続される。二次記憶デバイス３０５は、例えば、ＨＤＤである。表示デバイス３０６は、例えば、液晶ディスプレイである。
【００４６】
管理計算機１３０は、管理者からの操作に従い、Ｕｎｉｆｉｅｄストレージシステム１００に情報を設定することができる。Ｕｎｉｆｉｅｄストレージシステム１００に設定される情報は、例えば、後述のサブファイル化ポリシ管理テーブル５５０を含む。
【００４７】
図４は、本発明の概要を示す模式図である。図４は、ファイル共有プログラム５１０によって共有されている大サイズファイル４００の定期的なバックアップを示している。ここで、大サイズファイル４００は、４０ＭＢのファイルであり、１０ＭＢずつの４つのサブファイル４０１Ａ、４０１Ｂ、４０１Ｃ、４０１Ｄに、サブファイル化されている。
【００４８】
サブファイルは、大サイズファイルが格納されているファイルシステム内の特定のディレクトリに記憶される。ファイルシステムは、ファイルを管理・操作する機能であり、そのためのプログラム及び情報を含む。例えば、下記例では、Ｕｎｉｆｉｅｄストレージシステム１００が管理する仮想ファイルシステムの「／ｍｎｔ／ｆｓ１」に、ファイルシステムがマウントされており、大サイズファイル「ｌｉｎｕｘ−ｄｉｓｋ１．ｖｍｄｋ」が格納されている。
【００４９】
「ｌｉｎｕｘ−ｄｉｓｋ１．ｖｍｄｋ」のサブファイルは、「／ｍｎｔ／ｆｓ１／．ｓｕｂｆｉｌｅｓ／１２３０／」以下に格納されている。ここで、「．ｓｕｂｆｉｌｅｓ」は、ファイルシステム内のサブファイルを記憶する場所を示すディレクトリであり、「１２３０」は、大サイズファイルのｉｎｏｄｅ番号を名前としたディレクトリである。４つのサブファイルの名前は、大サイズファイルを１０ＭＢ単位に区切ったオフセットを１６進数で示している。
【００５０】
大サイズファイル：
／ｍｎｔ／ｆｓ１／ｌｉｎｕｘ−ｄｉｋｓ１．ｖｍｄｋ（４００）
サブファイル：
／ｍｎｔ／ｆｓ１／．ｓｕｂｆｉｌｅｓ／１２３０／００００００００００００００００（４０１Ａ）
／ｍｎｔ／ｆｓ１／．ｓｕｂｆｉｌｅｓ／１２３０／００００００００００Ａ０００００（４０１Ｂ）
／ｍｎｔ／ｆｓ１／．ｓｕｂｆｉｌｅｓ／１２３０／０００００００００１４０００００（４０１Ｃ）
／ｍｎｔ／ｆｓ１／．ｓｕｂｆｉｌｅｓ／１２３０／０００００００００１Ｅ０００００（４０１Ｄ）
【００５１】
ここで挙げたサブファイルの格納場所は一例である。例えば、サブファイルの記憶場所は、「．ｓｕｂｆｉｌｅｓ」以外のディレクトリ名を使ってもよいし、複数のディレクトリを用いてもよいし、複数のファイルシステムに横断して複数のディレクトリを用いてもよい。
【００５２】
「．ｓｕｂｆｉｌｅｓ」以下の大サイズファイルごとにサブファイルの格納場所を分類するディレクトリ名は、ｉｎｏｄｅ番号以外の名前として、ＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）や大サイズファイルのファイル名などを用いてもよい。ただし、大サイズファイルのファイル名を使う場合、大サイズファイルの名前変更に合わせてディレクトリ名も変更するなどの処理が必要となるため、一般的にはｉｎｏｄｅ番号やＵＵＩＤなどの変更することのないユニークな名前を割り当てることが望ましい。
【００５３】
サブファイル名は、大サイズファイルのオフセットを１６進数で示す名前である必要はない。大サイズファイル中のどの領域がどのサブファイルに対応しているのか分かる名前であればよいため、例えば、オフセットを１０進数で表現したサブファイル名でもよい。オフセットではなく、大サイズファイル中のサブファイルの通し番号にしてもよい。若しくは、前述した「．ｓｕｂｆｉｌｅｓ」以下のｉｎｏｄｅ番号などを用いたディレクトリを無くし、代わりにサブファイル名の接頭子や接尾子に大サイズファイル名や大サイズファイルのｉｎｏｄｅ番号などのキーワードを付けて大サイズファイルとサブファイルの対応を管理してもよい。
【００５４】
図４を参照して、ファイル４００へのＩ／Ｏからバックアップまでの流れを以下に説明する。
【００５５】
（１）クライアント１２０から大サイズファイル４００（／ｍｎｔ／ｆｓ１／ｌｉｎｕｘ−ｄｉｓｋ１．ｖｍｄｋ）のオフセット１５ＭＢの位置に対して１ＭＢのサイズのＷｒｉｔｅ要求４１０が発生すると、ファイル共有プログラム５１０がそのＷｒｉｔｅ要求を受け取る（４１０）。
【００５６】
（２）ファイル共有プログラム５１０は、クライアント１２０からのＷｒｉｔｅ要求を基に、大サイズファイル４００のオフセット１５ＭＢの位置に対して１ＭＢのサイズのＷｒｉｔｅ処理を行う。ファイルがサブファイル化されている場合、以下に説明するように、このＷｒｉｔｅ処理は、対応するサブファイルへの処理となる。（４２０）。
【００５７】
（３）ファイルＩ／Ｏプログラム５４０は、大サイズファイル４００がサブファイル化されていることを検知する。また、ファイルＩ／Ｏプログラム５４０は、オフセット１５ＭＢの位置に対して１ＭＢのサイズのＷｒｉｔｅ要求は、サブファイル４０１Ｂが担当する領域のＩ／Ｏ処理と判断し、サブファイル４０１Ｂに対してＷｒｉｔｅ処理を行う（４３０）。
【００５８】
（４）サブファイル転送プログラム５６０は、「／ｍｎｔ／ｆｓ１／．ｓｕｂｆｉｌｅｓ／１２３０／」以下にある大サイズファイル４００のサブファイル４０１Ａ〜４０１Ｄの更新を定期的に監視している。サブファイル転送プログラム５６０が、４０１Ｂの更新を検知する。サブファイル転送プログラム５６０は、大サイズファイル４００のメタ情報（ファイル名、サイズ、アクセス制御情報など）と、サブファイル４０１Ｂのデータと、を読み取る（４４０）。
【００５９】
（５）サブファイル転送プログラム５６０は、バックアップサーバ１６０に対して大サイズファイル４００のメタ情報とサブファイル４０１Ｂのデータをセットとしてバックアップする（４５０）。
【００６０】
（４）において、サブファイル転送プログラム５６０は、サブファイルを定期的に監視して更新を検出するが、更新の検出方法はこれに限定しない。例えば、ファイルＩ／Ｏプログラム５４０がサブファイルを更新した時に、ファイルＩ／Ｏプログラム５４０がサブファイルを更新したことをサブファイル転送プログラム５６０に通知してもよい。
【００６１】
以上（１）〜（５）で説明したように、大サイズファイル４００が更新されたとしても、大サイズファイル４００全体をバックアップせず、大サイズファイル４００のメタ情報とサブファイル４０１Ｂとだけをバックアップすることで、バックアップ時間を削減できる。
【００６２】
ここで、４つのサブファイル４０１Ａ〜４０１Ｄにサブファイル化してバックアップした大サイズファイル４００のリストア方法の一例を示す。大サイズファイル４００をリストアするために、Ｕｎｉｆｉｅｄストレージシステム１００は、バックアップサーバ１６０から大サイズファイル４００のメタ情報と、大サイズファイル４００のメタ情報とセットとして格納したサブファイル４０１Ａ〜４０１Ｄをダウンロードする。
【００６３】
Ｕｎｉｆｉｅｄストレージシステム１００は、サブファイル４０１Ａ〜４０１Ｄを順番に結合して、一つのファイルとし、大サイズファイル４００のメタ情報（ファイル名・アクセス制御情報）をその結合ファイルに付与する。以上でサブファイル化した大サイズファイル４００のリストアが完了できる。ただし、リストア方法はこれに限定しない。
【００６４】
図４の模式図では、サブファイル転送プログラム５６０の転送先は、Ｕｎｉｆｉｅｄストレージシステム１００の外部にあるバックアップサーバ１６０であるが、本願はこれに制限されるものではない。例えば、バックアップサーバ１６０は、Ｕｎｉｆｉｅｄストレージシステム内にあってもよい。更新サブファイルを、重複排除機能、圧縮機能、暗号化機能などを備えるバックアップサーバ１６０に転送してもよい。サブファイルのデータを他のストレージシステムやＵｎｉｆｉｅｄストレージシステム１００の内部にある他のファイルシステムに転送して、サブファイルを階層化管理してもよい。
【００６５】
以下、本実施形態を詳細に説明する。図５は、ストレージヘッド２００のソフトウェア構成例を示している。ストレージヘッド２００のソフトウェアは、ファイルシステム管理情報５００、ファイル共有プログラム５１０、ブロック・ファイルＩ／Ｏ変換プログラム５２０、サブファイル化プログラム５３０、ファイルＩ／Ｏプログラム５４０、サブファイル化ポリシ管理テーブル５５０、サブファイル転送プログラム５６０を含む。これらは、不揮発性の記憶装置からメモリ２０２にロードし格納される。
【００６６】
ファイルシステム管理情報５００は、ファイルシステムの情報やファイルシステムで管理しているファイルの情報を有する。ファイルシステム管理情報５００は、ファイルシステムと１対１に対応する。ストレージ装置２１０が複数のボリュームを提供している場合、それぞれのボリュームをファイルシステムとしてフォーマットするとそれぞれのファイルシステム管理情報５００が作られてメモリ２０２へ格納される。図５の各プログラムは、複数のファイルシステムに対して共通である。ファイルＩ／Ｏプログラム５４０及びサブファイル化プログラム５３０は、ファイルシステムに含まれるプログラムである。一つのファイルシステム管理情報５００が、一つのファイルシステムに作られる。
【００６７】
ファイル共有プログラム５１０は、通信プロトコル（ＮＦＳ／ＣＩＦＳ／ＦＴＰ／ＨＴＴＰ）等を用いて、ファイル共有サービスをクライアント１２０へ提供する。
【００６８】
ブロック・ファイルＩ／Ｏ変換プログラム５２０は、通信プロトコル（ＦＣ／ＦＣｏＥ／ｉＳＣＳＩ）等を用いて、ブロックボリュームをホスト１１０へ提供する。また、ブロック・ファイルＩ／Ｏ変換プログラム５２０は、ホスト１１０から受け取ったブロックボリュームへのＩ／Ｏ要求をファイルへのＩ／Ｏ要求へ変換する。
【００６９】
ブロック・ファイルＩ／Ｏ変換プログラム５２０は、Ｕｎｉｆｉｅｄストレージシステム１００が管理する特定のファイルをあたかもブロックボリュームとしてホスト１１０へ提供する。以下では、ブロックボリュームとして提供するファイルをブロックボリュームファイルと呼ぶ。
【００７０】
サブファイル化プログラム５３０は、指定したファイルをサブファイル単位でアクセス可能とするための処理を行う。ファイルＩ／Ｏプログラム５４０は、ファイルシステム管理情報５００が管理するファイルに対するＩ／Ｏを処理する。サブファイル化ポリシ管理テーブル５５０は、サブファイル化処理対象ファイルを自動決定するためのポリシに関する情報を有する。
【００７１】
サブファイル転送プログラム５６０は、ファイルシステム管理情報５００から更新があったサブファイルを検出し、バックアップサーバ１６０へバックアップする。更新されたサブファイルの検出方法は、例えば後述するファイルシステム管理情報５００が管理する全てのｉｎｏｄｅ情報６００のタイムスタンプ６０４の更新を定期的に確認してもよい。また、例えば、ファイルＩ／Ｏプログラム５４０が、更新があったサブファイルをサブファイル転送プログラム５６０へ通知してもよい。
【００７２】
サブファイル転送プログラム５６０は、バックアップサーバ１６０との連携に限定されない。例えば、ストレージ装置２１０は、ＳＳＤ２１３で作ったボリュームＡ、ＳＡＳディスク２１４で作ったボリュームＢ、ＳＡＴＡディスク２１５で作ったボリュームＣを提供し、ストレージヘッド２００が各ボリュームをファイルシステムＡ、ファイルシステムＢ、ファイルシステムＣとして管理する。
【００７３】
サブファイル転送プログラム５６０は、ファイルシステムＢに格納しているあるサブファイルに対するＩ／Ｏ負荷が高くなれば、そのサブファイルをファイルシステムＢから高速なファイルシステムＡに移動することで、サブファイル単位の階層化管理を実現してもよい。
【００７４】
また、サブファイル転送プログラム５６０は、バックアップデータの重複排除機能を有するバックアップサーバと連携してもよい。また、サブファイル転送プログラム５６０は、ストレージヘッド２００で動作する重複排除プログラムと連携して、自身が重複排除機能を有するバックアップサーバの機能を持ってもよい。
【００７５】
図６は、ファイルシステム管理情報５００の例である。ファイルシステム管理情報５００は、１個以上のｉｎｏｄｅ情報６００、ＦＳ番号６１０、接続パス名６２０を含む。ｉｎｏｄｅ情報６００は、ファイルシステム内で管理しているファイル単位に作られるファイルの管理情報を示す。ｉｎｏｄｅ情報６００は、ｉｎｏｄｅ番号６０１、ファイルパス名６０２、ファイルサイズ６０３、タイムスタンプ６０４、アクセス制御情報６０５、サブファイル化フラグ６０６、サブファイルサイズ６０７、最大サブファイル数６０８、０個以上のＥｘｔｅｎｔ情報６０９を含む。
【００７６】
ｉｎｏｄｅ番号６０１は、ファイルシステム管理情報５００が管理する各ファイルに対して付与されるユニークな番号を示す。ファイルパス名６０２は、ファイルシステム内のファイルの所在及びファイル名を示す。ファイルサイズ６０３は、ファイルのサイズを示す。ファイルサイズ６０３に応じて、ストレージ装置２１０が提供するボリュームのブロックを消費する。
【００７７】
タイムスタンプ６０４は、ファイルの更新時刻を示す。ファイルＩ／Ｏプログラム５４０は、ファイルに対するＩ／Ｏを処理した際に、タイムスタンプ６０４をＩ／Ｏを処理した時刻で上書きする。アクセス制御情報６０５は、ファイルのアクセス制御情報を示す。アクセス制御情報６０５は、特定のユーザだけがファイルへアクセス可能とする場合に用いる。パーミッションや、パーミッションよりも高度なアクセス制御が可能なＡＣＬ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）と呼ばれることもある。
【００７８】
サブファイル化フラグ６０６は、ファイルがサブファイル化されているか否かを示す情報である。サブファイルサイズ６０７は、ファイルがサブファイル化されている場合に、サブファイルを作成する単位を示す。最大サブファイル数６０８は、このファイルに対して作成可能なサブファイル数の上限を示す。
【００７９】
Ｅｘｔｅｎｔ情報６０９は、一般的には、ファイルに割り当てられたボリュームのブロックの位置を示す。本実施形態のＥｘｔｅｎｔ情報６０９には、ファイルがサブファイル化しているかいないかによって、後述する６０９Ａ、６０９Ｂの２種類の情報のどちらかが含まれている。詳細は後述する。
【００８０】
ＦＳ番号６１０は、Ｕｎｉｆｉｅｄストレージシステム１００内の複数のファイルシステム管理情報５００及びファイルシステム管理情報５００に対応するファイルシステムを識別するためのユニークな番号を示す。接続パス名６２０は、Ｕｎｉｆｉｅｄストレージシステム１００内の複数のファイルシステムで形成する仮想ファイルシステムとの接続パスを示す。例えば、「／ｍｎｔ／ｆｓ１」、「／ｍｎｔ／ｆｓ２」である。通常、クライアント１２０は、仮想ファイルシステム上のパス（フルパス）を指定してファイルにアクセスする。例えば、「／ｍｎｔ／ｆｓ１／ｌｉｎｕｘ−ｄｉｓｋ１．ｖｍｄｋ」である。
【００８１】
ファイル共有プログラム５１０は、クライアント１２０の要求するファイルのパスと、各ファイルシステム管理情報５００の接続パス名６２０を比較することで、どのファイルシステムに対するＩ／Ｏか検出できる。また、ファイル共有プログラム５１０は、クライアント１２０の要求するファイルのパスと、ファイルシステム管理情報５００の持つｉｎｏｄｅ情報６００のファイルパス名６０２を比較することで、どのファイルシステムのどのファイルに対するＩ／Ｏか特定できる。
【００８２】
同様に、ブロック・ファイルＩ／Ｏ変換プログラム５２０は、ホスト１１０へ提供するブロックボリュームファイルのパスと、各ファイルシステム管理情報５００の接続パス名６２０を比較することで、どのファイルシステムに対するＩ／Ｏか検出できる。また、ブロック・ファイルＩ／Ｏ変換プログラム５２０は、ブロックボリュームファイルのパスと、ファイルシステム管理情報５００の持つｉｎｏｄｅ情報６００のファイルパス名６０２を比較することで、どのファイルシステムのどのファイルに対するＩ／Ｏか特定できる。
【００８３】
図７Ａは、サブファイル化前のＥｘｔｅｎｔ情報６０９Ａの例である。Ｅｘｔｅｎｔ情報６０９Ａは、オフセット７０１、サイズ７０２、ブロック番号７０３を含む。オフセット７０１は、Ｅｘｔｅｎｔ情報６０９Ａが管理するファイル内のオフセット値を示す。言いかえると、ファイル内でこのＥｘｔｅｎｔ情報６０９Ａが管理する開始位置を示す。
【００８４】
サイズ７０２は、Ｅｘｔｅｎｔ情報６０９Ａが管理する領域のサイズを示す。ブロック番号７０３は、Ｅｘｔｅｎｔ情報６０９Ａが管理するブロックボリューム内のブロック番号を示す。言いかえると、ブロックボリューム内でこのＥｘｔｅｎｔ情報６０９Ａが管理する開始位置を示す。
【００８５】
Ｅｘｔｅｎｔ情報６０９Ａは、ファイル内の領域の位置とストレージ装置２１０が提供するボリューム内の領域の位置（物理記憶位置）関連づけ、それらの対応を管理する。Ｅｘｔｅｎｔ情報６０９Ａが管理するファイル内の領域は、ファイルのオフセット７０１を起点として、サイズ７０２の領域である。また、Ｅｘｔｅｎｔ情報６０９Ａが管理するブロックボリューム内の領域は、ブロック番号７０３を起点として、サイズ７０２に相当するブロック数の領域である。
【００８６】
ファイルに対するＩ／Ｏは、対象ファイルのオフセット及びサイズを伴って発生する。従って、Ｉ／Ｏのオフセットとサイズから、ファイル中のＩ／Ｏ対象領域の位置が分かり、ファイルを管理するｉｎｏｄｅ情報６００から、Ｉ／Ｏ対象領域を管理する１個以上のＥｘｔｅｎｔ情報６０９Ａが抽出される。
【００８７】
例えば、Ｉ／Ｏ対象ファイルのｉｎｏｄｅ情報６００が４つのＥｘｔｅｎｔ情報６０９Ａを持っているとする。ここでは４つのＥｘｔｅｎｔ情報６０９Ａを便宜上、ＥＡ０、ＥＡ１、ＥＡ２、ＥＡ３と表記する。ＥＡ０のオフセット７０１が０ＭＢ、ＥＡ１のオフセット７０１が１ＭＢ、ＥＡ２のオフセット７０１が２ＭＢ、ＥＡ３のオフセット７０１が３ＭＢで、ＥＡ０〜ＥＡ３の各サイズ７０２が１ＭＢのとき、Ｉ／Ｏのオフセットが１．５ＭＢ、サイズ１ＭＢならば、ＥＡ１、ＥＡ２の２つのＥｘｔｅｎｔ情報６０９Ａが抽出される。
【００８８】
次に、抽出した１個以上のＥｘｔｅｎｔ情報６０９Ａから、サイズ７０２及びブロック番号７０３を取り出し、ボリューム内のＩ／Ｏ対象領域の位置（物理記憶位置）が確定される。
【００８９】
なお、ファイルサイズ全ての範囲を充足するようにＥｘｔｅｎｔ情報６０９Ａが必ず用意されている必要はない。例えば、ファイルサイズは１０ＭＢあるが、Ｅｘｔｅｎｔ情報６０９Ａは全く無くてもよい。このようなファイルは、一般にホールファイル又はスパースファイルと呼ばれることもある。このようなファイルには、ファイルへのＩ／Ｏが発生し、実際にファイルへブロック領域を割り当てる段階になってから、必要に応じてＥｘｔｅｎｔ情報６０９Ａを作成し、ボリュームの中のブロック領域を割り当てる。
【００９０】
図７Ｂは、サブファイル化後のＥｘｔｅｎｔ情報６０９Ｂの例である。Ｅｘｔｅｎｔ情報６０９Ｂは、親ファイル内の位置とサブファイルの管理情報とを関連づけ、それらの対応を管理する。Ｅｘｔｅｎｔ情報６０９Ｂは、オフセット７０１、サイズ７０２、ＦＳ番号７０４、ｉｎｏｄｅ番号７０５を含む。
【００９１】
オフセット７０１、長さ７０２は、図７Ａと同じ情報である。ＦＳ番号７０４は、Ｅｘｔｅｎｔ情報６０９Ｂが管理するサブファイルを管理するファイルシステム管理情報５００を識別する番号である。ｉｎｏｄｅ番号７０５は、ＦＳ番号７０４で特定されるファイルシステム管理情報５００内のｉｎｏｄｅ情報６００を特定するｉｎｏｄｅ番号６０１である。
【００９２】
サブファイル化したファイル（親ファイル）に対するＩ／Ｏは、通常のファイルに対するＩ／Ｏと同様に、Ｉ／Ｏ対象のファイル（親ファイル）のオフセット及びサイズを伴って発生する。従って、ストレージヘッド２００は、オフセット値とサイズから、親ファイル中のＩ／Ｏ対象領域の位置が分かり、ファイルを管理するｉｎｏｄｅ情報６００から、Ｉ／Ｏ対象領域を管理する１個以上のＥｘｔｅｎｔ情報６０９Ｂを抽出できる。
【００９３】
次に、ストレージヘッド２００は、抽出した１個以上のＥｘｔｅｎｔ情報６０９Ｂから、それぞれＦＳ番号７０４及びｉｎｏｄｅ番号７０５を取り出し、それぞれのｉｎｏｄｅ番号７０５を持つサブファイルに対するＩ／Ｏを発行できる。
【００９４】
ストレージヘッド２００は、Ｅｘｔｅｎｔ情報６０９Ａと同様に、Ｅｘｔｅｎｔ情報６０９Ｂを、Ｉ／Ｏ発生時に必要に応じて作成してもよい。例えばＩ／Ｏ対象の親ファイルのオフセットとサイズに対応するＥｘｔｅｎｔ情報６０９Ｂが無かった場合には、まずＩ／Ｏ対象ファイルのｉｎｏｄｅ情報６００に含まれているサブファイルサイズ６０７と同じサイズのサブファイルを作成する。
【００９５】
さらに、ストレージヘッド２００は、サブファイルが管理するＩ／Ｏ対象の親ファイル内のオフセット７０１、サブファイルのサイズ７０２、サブファイルを作成したファイルシステムのＦＳ番号７０４及びサブファイルのｉｎｏｄｅ番号７０５を用いて、Ｅｘｔｅｎｔ情報６０９Ｂを作成し、Ｉ／Ｏ対象の親ファイルのｉｎｏｄｅ情報６００へ登録する。ここで「サブファイルを作成する」とは、ファイルシステム管理情報５００の中にサブファイルのｉｎｏｄｅ情報６００を作成することである。
【００９６】
図７Ｂでは、ＦＳ番号７０４、ｉｎｏｄｅ番号７０５を用いてサブファイルを特定する方法を示した。しかし、サブファイルを特定する方法は、これに限定しない。例えば、ＦＳ番号７０４とｉｎｏｄｅ番号７０５の代わりに、システム内で一意の名前を付けたサブファイルの名前を記憶する方法でもよい。
【００９７】
また、Ｅｘｔｅｎｔ情報６０９Ｂを使わずに、親ファイルのＥｘｔｅｎｔ情報６０９Ａによって管理される記憶領域（ファイルのデータや拡張属性（Ｅｘｔｅｎｄｅｄ  Ａｔｔｒｉｂｕｔｅ）を記憶する領域）、親ファイルとは別のファイルやファイルシステム管理情報５００、ＲＤＢ（Ｒｅｌａｔｉｏｎａｌ  Ｄａｔａ  Ｂａｓｅ）やＫＶＳ（Ｋｅｙ  Ｖａｌｕｅ  Ｓｔｏｒｅ）などのＤＢ（Ｄａｔａ  Ｂａｓｅ）に、オフセット７０１、サイズ７０２、ＦＳ番号７０４、ｉｎｏｄｅ番号７０５の組を複数記憶する方法でもよい。
【００９８】
また、親ファイルのＥｘｔｅｎｔ情報６０９Ａが管理する記憶領域、親ファイルとは別のファイルやファイルシステム管理情報５００、ＤＢを使う場合であっても、ＦＳ番号７０４とｉｎｏｄｅ番号７０５の代わりに、システム内で一意の名前を付けたサブファイルの名前を記憶する方法でもよい。
【００９９】
また、親ファイルのｉｎｏｄｅ情報６００にＥｘｔｅｎｔ情報６０９Ａや６０９Ｂを記憶せずに、サブファイル名やサブファイルを保存するパス名に制約を設けることで、親ファイルへのＩ／Ｏのオフセットから実際にアクセスされるサブファイルの名前を特定する方法でも良い。
【０１００】
例えば、親ファイル／ｍｎｔ／ｆｓ１／ｌｉｎｕｘ−ｄｉｓｋ１．ｖｍｄｋのサブファイルは、ｌｉｎｕｘ−ｄｉｓｋ１．ｖｍｄｋのｉｎｏｄｅ番号６０１の値「１２３０」を使った、／ｍｎｔ／ｆｓ１／．ｓｕｂｆｉｌｅｓ／１２３０／以下のパスに保存すると決める。
【０１０１】
また、親ファイル（ｌｉｎｕｘ−ｄｉｓｋ１．ｖｍｄｋ）のサイズが４０ＭＢでサブファイルサイズが１０ＭＢの場合、各サブファイル名を、親ファイルのオフセットを１６進数で示した数値００００００００００００００００、００００００００００Ａ０００００、０００００００００１４０００００、０００００００００１Ｅ０００００と決める。
【０１０２】
すると、親ファイル（ｌｉｎｕｘ−ｄｉｓｋ１．ｖｍｄｋ）のオフセット１５ＭＢ（０ｘＦ０００００（１６進数））へのＩ／Ｏならば、オフセット０ｘＡ０００００（１６進数）以上で０ｘ１４０００００（１６進数）未満の領域に対するＩ／Ｏとなるため、サブファイル／ｍｎｔ／ｆｓ１／．ｓｕｂｆｉｌｅｓ／１２３０／００００００００００Ａ０００００へのＩ／Ｏと特定することができる。
【０１０３】
ただし、Ｅｘｔｅｎｔ情報６０９Ｂにシステム内で一意な名前をつけたサブファイル名を記憶する方法や、オフセット値からサブファイル名を特定する方法の場合、Ｉ／Ｏが発生するたびにサブファイル名からサブファイルのｉｎｏｄｅ情報６００を特定するｌｏｏｋｕｐ処理（ファイルシステム管理情報５００やｉｎｏｄｅ情報６００の検索処理）が必要となる。
【０１０４】
図８は、サブファイル化ポリシ管理テーブル５５０の例である。サブファイル化ポリシ管理テーブル５５０は、パス８０１、閾値８０２、タイプ８０３、初期サブファイルサイズ８０４、最大サブファイル数８０５の列を含む。
【０１０５】
パス８０１、閾値８０２、タイプ８０３は、サブファイル化の条件に含まれる。パス８０１は、ファイルのパスを示す。パス８０１で指定したパス以下に格納しているファイルがサブファイル化の対象となる。閾値８０２は、ファイルサイズを示す。閾値８０２で指定したファイルサイズ以上のファイルがサブファイル化の対象となる。
【０１０６】
タイプ８０３は、ファイルの種類を示す。例えばタイプ８０３には、仮想マシンの仮想ディスクに用いるＶＭＤＫファイル（図８ではＶＭＤＫと示す）、データベースファイル、ブロックボリュームファイル（図８ではＶＯＬと示す）などがある。タイプ８０３で指定した種類のファイルがサブファイル化の対象となる。前記条件を同時に満たしたファイルがサブファイル化される。
【０１０７】
初期サブファイルサイズ８０４、最大サブファイル数８０５は、上記条件を満たしたファイルをサブファイル化する時に設定される。初期サブファイルサイズ８０４は、親ファイルが持つ個々のサブファイルの初期サイズを示す。最大サブファイル数８０５は、親ファイルが持てるサブファイル数の限界を示す。もし、最大サブファイル数８０５を超えそうな場合には、サブファイルのサイズを拡張することで、サブファイル数を抑えることができる。
【０１０８】
ストレージヘッド２００は、定期的にサブファイル化ポリシ管理テーブル５５０とファイルシステム管理情報５００を確認し、条件を満たすファイルをサブファイル化する。図８の例では、各行に示すポリシ８１０、８２０、８３０のいずれかの条件に当てはまった場合に、サブファイル化を行う。１行目のポリシ８１０は、「／ｍｎｔ／ｖｍ」以下に格納しているＶＭＤＫファイルをサブファイル化の対象とし、サブファイル化する時に、初期サブファイルサイズ８０４として８ＭＢを設定することを意味する。
【０１０９】
２行目のポリシ８２０は、「／ｍｎｔ／ｖｏｌ」以下に格納しているブロックボリュームファイルをサブファイル化の対象とし、サブファイル化する時に、初期サブファイルサイズ８０４として４２ＭＢを設定すること意味する。３行目のポリシ８３０は、１ＧＢ以上のファイルを対象として、サブファイル化する時に、初期サブファイルサイズ８０４として１６ＭＢを設定し、また最大サブファイル数８０５として６５５３６個を設定することを意味する。
【０１１０】
なお、ここで示したサブファイル化条件におけるパス８０１、閾値８０２、タイプ８０３は一例である。例えば、特定のユーザのファイル、特定のアクセス制御情報を持つファイル、ファイルへのアクセス頻度などをサブファイル化の条件に含めてもよい。アクセス頻度は、所定の単位時間当たりのＩ／Ｏ数（リードコマンド及び／又はライトコマンドの数）で表すことができる。例えば、ストレージヘッド２００は、サブファイルへの単位時間当たりのＩ／Ｏ数を測定し、その平均値を算出して条件判定に使用することができる。サブファイル化は、複数の条件が満たされることを必要としてもよい。
【０１１１】
アクセス頻度をサブファイル化の条件に含める場合、例えば、ストレージヘッド２００は、アクセス頻度に応じてサブファイルのファイルサイズを決定してもよい。アクセス頻度が高い、例えばアクセス頻度が所定の閾値を超えるファイルの初期サブファイルサイズ８０４を小さくし、アクセス頻度が低い、例えばアクセス頻度が所定の閾値以下であるファイルの初期サブファイルサイズ８０４を大きくする。これにより、ｉｎｏｄｅ情報６００の数を抑えつつ、頻繁に更新されるファイルのみ粒度の細かいサブファイルで管理することが可能となる。
【０１１２】
例えば、ストレージヘッド２００は、二つの異なるサブファイルサイズを用意し、閾値よりもアクセス頻度が大きいファイルのサブファイルに対して小さいサブファイルサイズを割り当て、閾値以下のアクセス頻度のファイルのサブファイルに対して大きいサブファイルサイズを割り当てる。選択できるサブファイルサイズの数は設計に依存する。ストレージヘッド２００は、サブファイルのサイズ決定のために１又は複数のアクセス頻度の閾値を使用することができる。
【０１１３】
ｉｎｏｄｅ情報６００の数が少なくなれば、それだけストレージ装置２１０のボリュームに格納しているファイルシステム管理情報５００の中のｉｎｏｄｅ情報６００の数も少なくなり、容量効率の向上につながる。また、ファイルシステム管理情報５００の中で管理できるｉｎｏｄｅ情報６００の数の上限が決まっている場合にも、ｉｎｏｄｅ情報６００の数の節約につながる。
【０１１４】
図８のサブファイル化ポリシ管理テーブル５５０は、サブファイルに対して適用してもよい。例えば、サブファイル化ポリシ管理テーブル５５０がアクセス頻度を管理してもよい。ストレージヘッド２００は、サブファイルへのアクセス頻度が高くなり、所定の閾値を超えた場合は、サブファイルを更にサブファイル化して管理してもよい。このサブファイルのサブファイル化をサブファイルの分割と呼ぶ。サブファイルをより小さなサイズのサブファイルへと分割することで、大元の親ファイルのアクセス頻度の高い領域の更新をより細かい粒度で管理可能となる。例えば、細粒度で更新管理を行うことで、バックアップ対象となるサブファイルのトータルサイズを小さくすることができる。サブファイルの分割処理については、図１０を参照して後述する。
【０１１５】
また、アクセス頻度が低くなり、所定の閾値（サブファイル化のための上記閾値よりも小さい）より小さくなった場合は、ストレージヘッド２００は、サブファイルのサブファイル化を解除して元に戻してもよい。このサブファイル化の解除をサブファイルの統合と呼ぶ。
【０１１６】
サブファイルの統合は、例えば、親サブファイル（サブファイル化したサブファイル）のＥｘｔｅｎｔ情報６０９Ｂを全て消去し、子サブファイル（親サブファイルから作成したサブファイル）が持つ全てのＥｘｔｅｎｔ情報６０９Ａを親サブファイルにコピーし、子サブファイルを削除する。子サブファイルを削除するとは、ファイルシステム管理情報５００から子サブファイルのｉｎｏｄｅ情報６００を消去することである。
【０１１７】
図９は、サブファイル化処理のフローチャートである。サブファイル化プログラム５３０は、サブファイル化ポリシ管理テーブル５５０の条件を満たすファイルを見つける、又は、管理者から直接サブファイル化の指示があると、処理対象のファイルのパス、サブファイルサイズ、最大サブファイル数を伴ってサブファイル化処理を開始する（Ｓ９００）。
【０１１８】
サブファイル化プログラム５３０は、ファイルシステム管理情報５００から、サブファイル化処理対象ファイルのｉｎｏｄｅ情報６００を検索する（Ｓ９１０）。サブファイル化プログラム５３０は、ｉｎｏｄｅ情報６００から、サブファイル化フラグ６０６のＯＮ／ＯＦＦを判定する（Ｓ９２０）。ステップＳ９２０の判定結果が肯定的の場合（Ｓ９２０：ＹＥＳ）、サブファイル化プログラム５３０は、サブファイル化処理を終了する（Ｓ９７０）。
【０１１９】
ステップＳ９２０の判定結果が否定的の場合（Ｓ９２０：ＮＯ）、サブファイル化プログラム５３０は、サブファイル化処理対象ファイルのＥｘｔｅｎｔ情報６０９Ａを基に、ステップＳ９００で受け取ったサブファイルサイズの大きさのサブファイルを１つ以上作成する。ここでサブファイルを作成するとは、ファイルシステム管理情報５００の中にサブファイルのＥｘｔｅｎｔ情報６０９Ａを含むサブファイルのｉｎｏｄｅ情報６００を作成することである（Ｓ９３０）。
【０１２０】
一例として、ｉｎｏｄｅ番号６０１には、ファイルシステム管理情報５００中でユニークなｉｎｏｄｅ番号を設定する。ファイルパス名６０２には、／ｍｎｔ／ｆｓ１／．ｓｕｂｆｉｌｅｓ／＜親ファイルのｉｎｏｄｅ番号６０１＞／＜サブファイルが対応する親ファイル内のオフセット＞を設定する。ファイルサイズ６０３には、親ファイルのサブファイルサイズ６０７を設定する。
【０１２１】
タイムスタンプ６０４には、現在の時刻を設定する。アクセス制御情報６０５には、親ファイルのアクセス制御情報６０５を設定する。サブファイル化フラグ６０６には、ＯＦＦを設定する。サブファイルサイズ６０７には、０を設定する。最大サブファイル数６０８には、０を設定する。Ｅｘｔｅｎｔ情報６０９には、Ｅｘｔｅｎｔ情報６０９Ａを作成して設定する。Ｅｘｔｅｎｔ情報６０９Ａの作成例については後述する。
【０１２２】
上記サブファイルのｉｎｏｄｅ番号６０１の設定例では、アクセス制御情報６０５として親ファイルのアクセス制御情報６０５を設定したが、設定方式は必ずしもこれに限定しない。アクセス制御情報６０５として、親ファイルのアクセス制御情報６０５の保存場所をポイントして参照する方式でも良い。
【０１２３】
また、親ファイルのアクセス制御情報６０５とは異なるアクセス制御情報を設定しても良い。上記サブファイルフラグ６０６がＯＦＦであり、サブファイルサイズ６０７と最大サブファイル数６０８に０を設定しているのは、サブファイルが一般のサブファイル化していないファイルと変わらないためである。そのため、サブファイル化プログラム５３０は、サブファイルをサブファイル化（サブファイルの分割）することも可能である。
【０１２４】
サブファイル化プログラム５３０は、サブファイル化処理対象ファイルのｉｎｏｄｅ情報６００から全てのＥｘｔｅｎｔ情報６０９Ａを削除する（Ｓ９４０）。サブファイル化プログラム５３０は、ステップＳ９３０で作成した各サブファイルに対応するＥｘｔｅｎｔ情報６０９Ｂを作成する。サブファイルの情報を基に、オフセット７０１、サイズ７０２、サブファイルのＦＳ番号７０４とｉｎｏｄｅ番号７０５を記載したＥｘｔｅｎｔ情報６０９Ｂを作成し、サブファイル化処理対象ファイルのｉｎｏｄｅ情報６００へ記録する（Ｓ９５０）。
【０１２５】
以上、ステップＳ９３０からステップＳ９５０によって、サブファイル化処理対象ファイルのＥｘｔｅｎｔ情報６０９ＡからＥｘｔｅｎｔ情報６０９Ｂへの変換及び、サブファイルの作成処理が完了する。
【０１２６】
例として、サブファイル化処理対象ファイルが４つのＥｘｔｅｎｔ情報６０９Ａを持っているとする。それぞれのＥｘｔｅｎｔ情報６０９Ａを便宜上、ＥＡ０[０ＭＢ、０．５ＭＢ、０] 、ＥＡ１[０．５ＭＢ、１ＭＢ、２０４８]、ＥＡ２[１．５ＭＢ、１ＭＢ、８１９２]、ＥＡ３[２．５ＭＢ、１．５ＭＢ、１６３８４]と表現する。
【０１２７】
ＥＡ１の括弧内には、左からオフセット７０１の０．５ＭＢ、サイズ７０２の１ＭＢ、ブロック番号７０３の２０４８を記載している。また、サブファイルサイズが１ＭＢとする。この時、サブファイルが４つ作成され、それぞれのサブファイルに対応するＥｘｔｅｎｔ情報６０９Ｂが、サブファイル化対象ファイルのｉｎｏｄｅ情報６００内に４つ作成される。
【０１２８】
作成した４つのサブファイルは全て同じＦＳ番号０を持つファイルシステム内に作成され、そのｉｎｏｄｅ番号は、１０００、１００１、１００２、１００３とする。この時、Ｅｘｔｅｎｔ情報６０９Ｂは、ＥＢ０[０ＭＢ、１ＭＢ、０、１０００]、ＥＢ１［１ＭＢ、１ＭＢ、０、１００１］、ＥＢ２[２ＭＢ、１ＭＢ、０、１００２]、ＥＢ３［３ＭＢ、１ＭＢ、０、１００３］と表現できる。ＥＢ１の括弧内には、左からオフセット７０１の１ＭＢ、サイズ７０２の１ＭＢ、ＦＳ番号７０４の０、ｉｎｏｄｅ番号７０５の１００１を記載している。
【０１２９】
ｉｎｏｄｅ番号「１０００」を持つサブファイルのｉｎｏｄｅ情報６００には、ＥＡ４[０ＭＢ、０．５ＭＢ、０]、ＥＡ５［０．５ＭＢ、０．５ＭＢ、２０４８］が作られる。ｉｎｏｄｅ番号「１００１」を持つサブファイルのｉｎｏｄｅ情報６００には、ＥＡ６[０ＭＢ、０．５ＭＢ、３０７２]、ＥＡ７[０．５ＭＢ、０．５ＭＢ、８１９２]が作られる。ｉｎｏｄｅ番号「１００２」を持つサブファイルのｉｎｏｄｅ情報６００には、ＥＡ８[０ＭＢ、０．５ＭＢ、９２１６]、ＥＡ９[０．５ＭＢ、０．５ＭＢ、１６３８４]が作られる。ｉｎｏｄｅ番号「１００３」を持つサブファイルのｉｎｏｄｅ情報６００には、ＥＡ１０[０ＭＢ、１ＭＢ、１７４０８]が作られる。ただし、このときボリュームは１ブロックあたり５１２Ｂｙｔｅｓと仮定している。
【０１３０】
サブファイル化プログラム５３０は、ステップＳ９００で受け取ったサブファイルサイズ、最大サブファイル数をサブファイル化処理対象ファイルのｉｎｏｄｅ情報６００のサブファイルサイズ６０７と最大サブファイル数６０８にそれぞれ設定し、サブファイル化フラグ６０６をＯＮにする（Ｓ９６０）。サブファイル化プログラム５３０は、処理を終了する（Ｓ９７０）。以上、ステップＳ９００〜ステップＳ９７０によって、ブロック自体をコピーせず、Ｅｘｔｅｎｔ情報６０９を書き換えるだけでサブファイル化を実現している。
【０１３１】
図１０は、ファイルに対するＩ／Ｏ処理のフローチャートである。ファイルＩ／Ｏプログラム５４０は、ファイル共有プログラム５１０やブロック・ファイルＩ／Ｏ変換プログラム５２０から、ファイルに対してＩ／Ｏ要求が発生すると、Ｉ／Ｏ対象のファイルのパス、ファイルのオフセット、Ｉ／Ｏサイズを伴ってファイルＩ／Ｏ処理を開始する（Ｓ１０００）。
【０１３２】
ファイルＩ／Ｏプログラム５４０は、Ｉ／Ｏ対象のファイルのパスをキーとして、ファイルシステム管理情報５００から、Ｉ／Ｏ対象ファイルのｉｎｏｄｅ情報６００を検索する（Ｓ１０１０）。ファイルＩ／Ｏプログラム５４０は、ｉｎｏｄｅ情報６００から、サブファイル化フラグ６０６のＯＮ／ＯＦＦを判定する（Ｓ１０２０）。
【０１３３】
ステップＳ１０２０の判定結果が肯定的の場合（Ｓ１０２０：ＹＥＳ）、ファイルＩ／Ｏプログラム５４０は、Ｉ／Ｏ対象ファイルのオフセットとサイズからＩ／Ｏ対象ファイルのＥｘｔｅｎｔ情報６０９Ｂを検索する。この時Ｅｘｔｅｎｔ情報６０９Ｂが無い場合は、サブファイルを作成し、そのサブファイルを作成したＦＳ番号７０４とｉｎｏｄｅ番号７０５を含むＥｘｔｅｎｔ情報６０９Ｂを作成する（Ｓ１０３０）。
【０１３４】
ファイルＩ／Ｏプログラム５４０は、Ｉ／Ｏ対象ファイルのオフセットから、実際のＩ／Ｏ対象となるサブファイルを特定する。更に、Ｅｘｔｅｎｔ情報６０９Ｂのオフセット７０１を引き算することで、特定したサブファイルのオフセットを計算する。次にファイルＩ／Ｏプログラム５４０は、Ｅｘｔｅｎｔ情報６０９Ｂに格納してあるサブファイルのＦＳ番号、ｉｎｏｄｅ番号からサブファイルのｉｎｏｄｅ情報６００を検索する。次にファイルＩ／Ｏプログラム５４０は、サブファイルのｉｎｏｄｅ情報６００、サブファイルのオフセット、Ｉ／Ｏサイズを伴ってステップＳ１０２０からリトライする（Ｓ１０４０）。
【０１３５】
つまり、Ｉ／Ｏ対象ファイルを親ファイルから、サブファイルに切り替えて、Ｉ／Ｏ処理をリトライする。また、この処理は、サブファイル化されていないファイルを検出するまでステップＳ１０２０〜ステップＳ１０４０を繰り返すことになるため、サブファイルが更にサブファイル化されているような、再帰的なケースにも対応できる。
【０１３６】
ステップＳ１０２０の判定結果が否定的の場合（Ｓ１０２０：ＮＯ）、ファイルＩ／Ｏプログラム５４０は、Ｉ／Ｏ対象ファイルのオフセットからＥｘｔｅｎｔ情報６０９Ａを特定し、Ｉ／Ｏ対象のブロック番号７０３を特定する（Ｓ１０５０）。ファイルＩ／Ｏプログラム５４０は、特定したブロック番号７０３に対してＩ／Ｏを発行する（Ｓ１０６０）。Ｉ／Ｏ発行時、Ｉ／Ｏ対象ファイルのタイムスタンプ６０４を現在時刻に更新する。ファイルＩ／Ｏプログラム５４０は、処理を終了する（Ｓ１０７０）。
【０１３７】
図１１は、サブファイル化ポリシを管理するＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）１１００を示す。ＧＵＩ１１００は、サブファイル化ポリシ一覧部１１１０、新規ポリシ入力部１１２０、追加ボタン１１３０、削除ボタン１１４０、ＯＫボタン１１５０を含む。
【０１３８】
サブファイル化ポリシ一覧部１１１０には、ストレージヘッド２００に設定しているサブファイル化ポリシ５５０が表示される。新規ポリシ入力部１１２０は、パス８０１入力欄１１２１、閾値８０２入力欄１１２２、タイプ８０３入力欄１１２３、初期サブファイルサイズ８０４入力欄１１２４、最大サブファイル数８０５入力欄１１２５を含む。
【０１３９】
管理者が追加ボタン１１３０を押すと、管理計算機１３０は、新規ポリシ入力部１１２０に入力したそれぞれの値を新規ポリシとしてサブファイル化ポリシ表５５０に追加するようにＵｎｉｆｉｅｄストレージシステム１００に指示を出す。なお、新規ポリシは、チェックボックス１１１１の指定が無ければ最も下の行に追加される。また、新規ポリシは、チェックボックス１１１１の指定があれば、指定した行のすぐ下の行に追加される。
【０１４０】
管理者が削除ボタン１１４０を押すと、管理計算機１３０は、チェックボックス１１１１で指定した行のサブファイル化ポリシをサブファイル化ポリシ表５５０から削除するようにＵｎｉｆｉｅｄストレージシステム１００に指示を出す。管理者がＯＫボタン１１５０を押すと、管理計算機１３０は、サブファイル化ポリシの設定を終了し、ＧＵＩ１１００を閉じる。
【０１４１】
以上、本発明の実施形態を説明したが、これは本発明の説明のための例示であって、本発明の範囲を上記構成に限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。
【図１】
0005722467.tif 000002
【図２】
0005722467.tif 000003
【図３】
0005722467.tif 000004
【図４】
0005722467.tif 000005
【図５】
0005722467.tif 000006
【図６】
0005722467.tif 000007
【図７Ａ】
0005722467.tif 000008
【図７Ｂ】
0005722467.tif 000009
【図８】
0005722467.tif 000010
【図９】
0005722467.tif 000011
【図１０】
0005722467.tif 000012
【図１１】
0005722467.tif 000013