(57)【要約】【課題】既存の仮想ファイルサーバ技術は、会社組織やデータセンタなどの運営で必要となる階層的な管理体制に対応させることが困難であった。【解決手段】複数のＩＰアドレス及び前記複数のファイルキャッシュ領域と前記複数の仮想ファイルサーバとの対応関係を含むリソース管理情報と、を格納し、前記リソース管理情報に従って、前記複数の仮想ファイルサーバの各々に対応する前記複数のファイルキャッシュ領域の一部である貸与ファイルキャッシュ領域と、前記複数のＩＰアドレスの一部である貸与ＩＰアドレスと、前記複数のボリュームの一部である貸与ボリュームと、を利用して前記クライアント計算機から前記複数の仮想ファイルサーバを指定して送信された複数のファイル要求を処理し、前記複数の仮想ファイルサーバの一つを指定した子仮想ファイルサーバの生成要求を受信し、子仮想ファイルサーバを生成する。【選択図】図５
2010079468.tif 000002
【特許請求の範囲】
【請求項１】
クライアント計算機と、一つ以上のボリュームを有するストレージ装置と、管理計算機と、に接続されたファイルサーバにおける複数の仮想ファイルサーバ提供方法であって、
前記複数の仮想ファイルサーバのキャッシングに用いる複数のファイルキャッシュ領域を確保する確保ステップと、
前記管理計算機により設定された複数のＩＰアドレスと、前記複数のＩＰアドレス及び前記複数のファイルキャッシュ領域と前記複数の仮想ファイルサーバとの対応関係を含むリソース管理情報と、を格納する格納ステップと、
前記リソース管理情報に従って、前記複数の仮想ファイルサーバの各々に対応する前記複数のファイルキャッシュ領域の一部である貸与ファイルキャッシュ領域と、前記複数のＩＰアドレスの一部である貸与ＩＰアドレスと、前記一つ以上のボリュームの部分領域である貸与ボリューム領域と、を利用して前記クライアント計算機から前記複数の仮想ファイルサーバを指定して送信された複数のファイル要求を処理するファイル要求処理ステップと、
前記複数の仮想ファイルサーバに対応する複数の識別子であって、各々は対応する前記複数の仮想ファイルサーバの一つが利用する前記貸与ファイルキャッシュ領域の貸与元である前記ファイルサーバを指す識別子を階層化管理情報に格納する、階層情報格納ステップと、
前記複数の仮想ファイルサーバの一つを指定した子仮想ファイルサーバの生成要求を受信し、前記指定された仮想ファイルサーバの識別子を前記子仮想ファイルサーバに対応する識別子として前記階層化管理情報に格納することで前記子仮想ファイルサーバを生成する、仮想ファイルサーバ生成ステップと、
前記複数の仮想ファイルサーバの一つであるログイン先仮想ファイルサーバを指定した第一のログイン要求と、前記第一のログイン要求に関連し、前記子仮想ファイルサーバを指定した第一の管理要求と、を受信し、前記階層管理情報に格納した識別子であって前記子仮想ファイルサーバに関連した識別子が前記ログイン先仮想ファイルサーバを指す場合に、前記第一の管理要求に従った第一の管理処理を実行する、第一管理ステップと、
を有することを特徴とする複数の仮想ファイルサーバ提供方法。
【請求項２】
請求項１に記載の方法であって、
前記ファイルサーバを指定した第二のログイン要求と、前記第二のログイン要求に関連し、前記子仮想ファイルサーバを指定した第二の管理要求と、を受信し、前記第二の管理要求に従った第二の管理処理を実行する、第二管理ステップと、
を有することを特徴とする複数の仮想ファイルサーバ提供方法。
【請求項３】
請求項２に記載の方法であって、
前記第一の管理処理は、前記子仮想ファイルサーバに対応する前記複数のファイルキャッシュ領域の一部を用いて孫仮想ファイルサーバを生成する処理である、
を有することを特徴とする複数の仮想ファイルサーバ提供方法。
【請求項４】
請求項２に記載の方法であって、前記第一の管理処理は、前記複数のファイルキャッシュ領域の一つであって前記操作対象仮想ファイルサーバに対応するファイルキャッシュ領域を所定の容量に削減する処理である、
ことを特徴とする複数の仮想ファイルサーバ提供方法。
【請求項５】
請求項１記載の方法であって、
前記貸与ボリューム領域は、前記一つ以上のボリュームの一部のボリュームが提供する記憶領域であることを特徴とする複数の仮想ファイルサーバ提供方法。
【請求項６】
請求項１記載の方法であって、
前記貸与ボリューム領域は、前記一つ以上のボリュームのパーティションであることを特徴とする複数の仮想ファイルサーバ提供方法。
【請求項７】
請求項１記載の方法であって、
前記一つ以上のボリュームにはファイルシステムが作成され、
前記貸与ボリューム領域は、前記一つ以上のボリュームのファイルシステムの所定のディレクトリ以下のファイルシステム空間に対応することを特徴とする複数の仮想ファイルサーバ提供方法。
【請求項８】
クライアント計算機と、一つ以上のボリュームを有するストレージ装置と、管理計算機と、に接続された複数の仮想ファイルサーバを有するファイルサーバであって、
前記管理計算機により設定された複数のＩＰアドレスと、前記複数の仮想ファイルサーバのキャッシングに用いる複数のファイルキャッシュ領域と、前記複数のＩＰアドレス及び前記複数のファイルキャッシュ領域と前記複数の仮想ファイルサーバとの対応関係を含むリソース管理情報と、を格納するメモリと、
前記リソース管理情報に従って、前記複数の仮想ファイルサーバの各々に対応する前記複数のファイルキャッシュ領域の一部である貸与ファイルキャッシュ領域と、前記複数のＩＰアドレスの一部である貸与ＩＰアドレスと、前記一つ以上のボリュームの部分領域である貸与ボリューム領域と、を利用して前記クライアント計算機から前記複数の仮想ファイルサーバを指定して送信された複数のファイル要求を処理するプロセッサと、
を有し、
前記メモリは、前記複数の仮想ファイルサーバに対応する複数の識別子であって、各々は対応する前記複数の仮想ファイルサーバの一つが用いる前記貸与ファイルキャッシュ領域の貸与元である前記複数の仮想ファイルサーバの一つ又は前記ファイルサーバを指す識別子を格納する階層化管理情報を有し、
前記複数の識別子の少なくとも一つの識別子は前記複数の仮想ファイルサーバの一つを指し、前記複数の識別子の他の少なくとも一つの識別子は前記ファイルサーバを指し、
前記プロセッサは、前記複数の仮想ファイルサーバの一つであるログイン先仮想ファイルサーバを指定した第一のログイン要求と、前記第一のログイン要求に関連し、前記複数の仮想ファイルサーバの一つである操作対象仮想ファイルサーバを指定した第一の管理要求と、を受信し、前記階層管理情報に格納した識別子であって前記操作対象仮想ファイルサーバに関連した識別子が前記ログイン先仮想ファイルサーバを指す場合に、前記第一の管理要求に従った第一の管理処理を実行する、
ことを特徴とするファイルサーバ。
【請求項９】
請求項８に記載のファイルサーバであって、
前記プロセッサは、前記ファイルサーバを指定した第二のログイン要求と、前記第二のログイン要求に関連し、前記操作対象仮想ファイルサーバを指定した第二の管理要求と、を受信し、前記第二の管理要求に従った第二の管理処理を実行する、
ことを特徴とするファイルサーバ。
【請求項１０】
請求項９に記載のファイルサーバであって、
前記第一の管理処理は、前記操作対象仮想ファイルサーバに対応する前記複数のファイルキャッシュ領域の一部を用いて仮想ファイルサーバを生成する処理である、
ことを特徴とするファイルサーバ。
【請求項１１】
請求項８に記載のファイルサーバであって、
前記プロセッサは、前記階層管理情報に格納された複数の識別子の一つであって前記操作対象仮想ファイルサーバに関連した識別子が前記ファイルサーバを指す場合は、前記第一の管理処理の実行を抑止する、
ことを特徴とするファイルサーバ。
【請求項１２】
請求項９に記載のファイルサーバであって、前記第一の管理処理は、前記複数のファイルキャッシュ領域の一つであって前記操作対象仮想ファイルサーバに対応するファイルキャッシュ領域を所定の容量に削減する処理である、
ことを特徴とするファイルサーバ。
【請求項１３】
請求項１２に記載のファイルサーバであって、前記ファイルキャッシュ領域であって削減の対象となった領域は、前記操作対象仮想ファイルサーバが用いる、
ことを特徴とするファイルサーバ。
【請求項１４】
請求項１３記載のファイルサーバであって、前記操作対象仮想ファイルサーバのキャッシュアルゴリズムと連携して前記ファイルキャッシュ領域の削減を処理する、
ことを特徴とするファイルサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルサーバリソース分割方法、システム、装置及びプログラムに関する。
【背景技術】
【０００２】
ファイルサーバ計算機の運用管理を一元化し、管理コストを削減するため、複数のファイルサーバ計算機で提供していたファイル共有サービスを一台のファイルサーバ計算機で提供するファイルサーバコンソリデーションが提案されている。ファイルサーバコンソリデーションでは、複数のファイルサーバ計算機で提供していたファイル共有サービスを１台のファイルサーバ計算機で提供可能とするために、仮想ファイルサーバを用いる。仮想ファイルサーバとは、１台の物理的なファイルサーバ計算機のハードウェアリソースをいくつかに分割し、分割したリソース毎にファイルサーバプログラムを動かすことで、１台のファイルサーバ計算機上で仮想的に複数のファイルサーバ計算機が動作しているかのように見せる技術である。
【０００３】
特許文献１や特許文献２では、サーバ計算機上で動作する単一のＯＳ上で、ファイルサーバ計算機上のリソースの一部を分割して複数の独立したファイル要求処理プログラムの実行環境を作り、仮想ファイルサーバとする技術が開示されている。
【０００４】
【特許文献１】米国特許公開明細書２００４／１４３６０８
【特許文献２】米国特許第７２６９６９６号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
既存のファイルサーバの仮想化技術は、仮想サーバの作成・削除を一括して管理している平坦な管理しかできないため、会社組織やデータセンタなどの運営で必要となる階層的な管理体制に対応させることが困難であった。
【課題を解決するための手段】
【０００６】
本発明は、クライアント計算機と、一つ以上のボリュームを有するストレージ装置と、管理計算機と、複数の仮想ファイルサーバを提供するファイルサーバとから構成される情報処理システムのファイル共有サービスに関する、装置、システム、方法、プログラム、及び記憶メディアを提供する。
【０００７】
本発明の一実施例によると、前記複数の仮想ファイルサーバのキャッシングに用いる複数のファイルキャッシュ領域を確保し、前記管理計算機により設定された複数のＩＰアドレスと、前記複数のＩＰアドレス及び前記複数のファイルキャッシュ領域と前記複数の仮想ファイルサーバとの対応関係を含むリソース管理情報と、を格納し、前記リソース管理情報に従って、前記複数の仮想ファイルサーバの各々に対応する前記複数のファイルキャッシュ領域の一部である貸与ファイルキャッシュ領域と、前記複数のＩＰアドレスの一部である貸与ＩＰアドレスと、前記複数のボリュームの部分領域である貸与ボリューム領域と、を利用して前記クライアント計算機から前記複数の仮想ファイルサーバを指定して送信された複数のファイル要求を処理し、前記複数の仮想ファイルサーバの一つを指定した子仮想ファイルサーバの生成要求を受信し、子仮想ファイルサーバを生成する。
なお、前記複数の仮想ファイルサーバに対応する複数の識別子であって、各々は対応する前記複数の仮想ファイルサーバの一つが用いる前記貸与ファイルキャッシュ領域の貸与元である前記ファイルサーバを指す識別子を階層化管理情報に格納してもよく、前記子仮想ファイルサーバの生成として、前記指定された仮想ファイルサーバの識別子を前記子仮想ファイルサーバに対応する識別子として前記階層化管理情報に格納してもよい。
【０００８】
なお、前記複数の仮想ファイルサーバの一つであるログイン先仮想ファイルサーバを指定した第一のログイン要求と、前記第一のログイン要求に関連し、前記子仮想ファイルサーバを指定した第一の管理要求と、を受信し、前記階層管理情報に格納した識別子であって前記子仮想ファイルサーバに関連した識別子が前記ログイン先仮想ファイルサーバを指す場合に、前記第一の管理要求に従った第一の管理処理を実行してもよい。
【０００９】
また、前記ファイルサーバを指定した第二のログイン要求と、前記第二のログイン要求に関連し、前記子仮想ファイルサーバを指定した第二の管理要求と、を受信し、前記第二の管理要求に従った第二の管理処理を実行してもよい。
【００１０】
また、前記第一の管理処理は、前記子仮想ファイルサーバに対応する前記複数のファイルキャッシュ領域の一部を用いて孫仮想ファイルサーバを生成する処理であってもよい。
また、前記第一の管理処理は、前記複数のファイルキャッシュ領域の一つであって前記操作対象仮想ファイルサーバに対応するファイルキャッシュ領域を所定の容量に削減する処理であってもよい。
また、前記貸与ボリューム領域は、前記一つ以上のボリュームの一部のボリュームが提供する記憶領域であっても、前記一つ以上のボリュームのパーティションであってもよい。
また、前記一つ以上のボリュームにはファイルシステムが作成され、前記貸与ボリューム領域は、前記一つ以上のボリュームのファイルシステムの所定のディレクトリ以下のファイルシステム空間に対応する領域であってもよい。
【００１１】
本発明の別な一実施例によると、本発明よるファイルサーバは、前記管理計算機により設定された複数のＩＰアドレスと、前記複数の仮想ファイルサーバのキャッシングに用いる複数のファイルキャッシュ領域と、前記複数のＩＰアドレス及び前記複数のファイルキャッシュ領域と前記複数の仮想ファイルサーバとの対応関係を含むリソース管理情報と、を格納するメモリと、前記リソース管理情報に従って、前記複数の仮想ファイルサーバの各々に対応する前記複数のファイルキャッシュ領域の一部である貸与ファイルキャッシュ領域と、前記複数のＩＰアドレスの一部である貸与ＩＰアドレスと、前記複数のボリュームの一部である貸与ボリュームと、を利用して前記クライアント計算機から前記複数の仮想ファイルサーバを指定して送信された複数のファイル要求を処理するプロセッサと、を有し、前記メモリは、前記複数の仮想ファイルサーバに対応する複数の識別子であって、各々は対応する前記複数の仮想ファイルサーバの一つが用いる前記貸与ファイルキャッシュ領域の貸与元である前記複数の仮想ファイルサーバの一つ又は前記ファイルサーバを指す識別子を格納する階層化管理情報を有し、前記プロセッサは、前記複数の仮想ファイルサーバの一つであるログイン先仮想ファイルサーバを指定した第一のログイン要求と、前記第一のログイン要求に関連し、前記複数の仮想ファイルサーバの一つである操作対象仮想ファイルサーバを指定した第一の管理要求と、を受信し、前記階層管理情報に格納した識別子であって前記操作対象仮想ファイルサーバに関連した識別子が前記ログイン先仮想ファイルサーバを指す場合に、前記第一の管理要求に従った第一の管理処理を実行する。
【００１２】
なお、前記複数の識別子の少なくとも一つの識別子は前記複数の仮想ファイルサーバの一つを指し、前記複数の識別子の他の少なくとも一つの識別子は前記ファイルサーバを指してもよい。
【００１３】
また、前記プロセッサは、前記ファイルサーバを指定した第二のログイン要求と、前記第二のログイン要求に関連し、前記操作対象仮想ファイルサーバを指定した第二の管理要求と、を受信し、前記第二の管理要求に従った第二の管理処理を実行してもよい。
【００１４】
また、前記第一の管理処理は、前記操作対象仮想ファイルサーバに対応する前記複数のファイルキャッシュ領域の一部を用いて仮想ファイルサーバを生成する処理であってもよい。
また、前記プロセッサは、前記階層管理情報に格納された複数の識別子の一つであって前記操作対象仮想ファイルサーバに関連した識別子が前記ファイルサーバを指す場合は、前記第一の管理処理の実行を抑止してもよい。
また、前記第一の管理処理は、前記複数のファイルキャッシュ領域の一つであって前記操作対象仮想ファイルサーバに対応するファイルキャッシュ領域を所定の容量に削減する処理としてもよい。
また、前記ファイルキャッシュ領域であって削減の対象となった領域は、前記操作対象仮想ファイルサーバが用いてもよい。
また、前記操作対象仮想ファイルサーバのキャッシュアルゴリズムと連携して前記ファイルキャッシュ領域の削減を処理してもよい。
【発明の効果】
【００１５】
本発明によれば、会社組織やデータセンタなどの運営で必要となる階層的な管理体制に対応可能なファイルサーバを提供できる。
【発明を実施するための最良の形態】
【００１６】
以下に、本発明の実施の形態を説明する。
【００１７】
図１は、ファイルサーバ１００と、管理計算機１２０と、一つ以上のクライアント計算機（以後、クライアントと省略して呼ぶことがある）と、ストレージ装置１３０から構成される情報処理システムの構成を示すブロック図である。なお、以後の説明ではファイルサーバ１００とストレージ装置１３０をまとめてＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）と呼ぶことがあり、またＮＡＳには管理計算機１２０が含まれることがある。
【００１８】
ファイルサーバ１００は、ファイル共有サービスとして、クライアントからのファイル要求に応じたファイルのデータに対するリードやライト、ファイルの作成や削除や属性の参照、ディレクトリの作成や削除や属性参照といったいわゆるアクセスを、クライアントに提供する計算機である。ファイルサーバ１００は、ＮＩＣ１０４Ａ乃至１０４Ｃ、１０５と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０６Ａ乃至１０６Ｄと、ローカルメモリ１０７と、アダプタ１０８Ａ乃至１０８Ｂから構成され、それぞれの構成部位は内部バスまたは内部ネットワークにて接続される。なお、ＮＩＣ１０４、ＣＰＵ１０６、ローカルメモリ１０７、アダプタ１０８は、それぞれ図１に示した数に限定しない。また、ファイルサーバ１００は各計算機が連携して仮想的な一つのファイルサーバとする機能を有するような複数の計算機から構成されてもよい。
【００１９】
ＣＰＵ１０６は、ファイルサーバ１００を制御するプロセッサである。ＣＰＵ１０６は、ローカルメモリ１０７に格納されたプログラムを実行する。例えば、ＣＰＵ１０６は、ファイル共有サービスを提供するプログラム（サーバプログラム）を実行し、ストレージ装置１３０に格納されているファイルをクライアント１１０へ提供する。ローカルメモリ１０７内のプログラムの詳細な構成は、図２に示す。
【００２０】
ローカルメモリ１０７は、例えば半導体メモリであり、ＣＰＵ１０６が実行するプログラム及びＣＰＵ１０６が参照するデータやファイルキャッシュを格納する主記憶装置である。なお、ローカルメモリ１０７の一部としてＨＤＤなどの半導体メモリよりも低速な記憶装置を組み入れて使用してもよい。
【００２１】
ＮＩＣ１０４は、ファイルサーバ１００がクライアント１１０と通信のためのデータの送信や受信を行うために用いる。また、ＮＩＣ１０５は、ファイルサーバ１００が管理計算機１２０と通信のためのデータの送信や受信を行うために用いる。ファイルサーバ１００、クライアント１１０、管理計算機１２０は、それぞれ互いにＴＣＰやＵＤＰ等のネットワークプロトコルを使って通信を行う。なお、ＮＩＣはＮｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄの略であるが、ネットワークポートと呼ばれることがある。なお、ＮＩＣ１０４とＮＩＣ１０５は性能、信頼性等の理由からそれぞれが別なハードウェアであることが好ましいが、同一のハードウェアをＮＩＣ１０４とＮＩＣ１０５として用いても良い。
【００２２】
アダプタ１０８は、ファイルサーバ１００と二次記憶装置であるストレージ装置１３０を接続するために用いる。ＣＰＵ１０６は、アダプタ１０８を経由し、ストレージ装置１３０に格納されているプログラムやファイルをリードやライトに代表されるブロックアドレス形式のアクセス要求を送信したり、データを受信する。なお、アダプタ１０８は通信を行うという視点からはＮＩＣ１０４とＮＩＣ１０５と同じハードウェアであってもよいが、ＮＩＣ１０４及びＮＩＣ１０５とは別なハードウェアであることが性能や信頼性の視点からは好ましい。なお、以後に詳細に述べるが、本発明では、ＮＩＣ１０４はクライアント１１０Ａまたはクライアント１１０Ｂやクライアント１１０Ｃ（以後、このような特定のＮＩＣに接続するクライアントとして特定する必要のない場合は単にクライアント１１０と表記する）からのファイル形式のアクセス要求を受信し、要求に応じたデータまたは制御情報を送信するが、アダプタ１０８はＣＰＵ１０６が生成するブロックアドレス形式のアクセス要求を送信し、ストレージ装置１３０からブロック形式のデータを受信したり、制御情報を受信する。
【００２３】
クライアント１１０は、ファイルサーバ１００上が提供しているファイル共有サービスにアクセスする計算機である。図示はしていないが、クライアント１１０はＣＰＵ、メモリ、ＮＩＣから構成される。
【００２４】
管理計算機１２０は、ファイルサーバ１００やファイルサーバ１００上で動作するプログラムを管理する計算機である。管理計算機１２０は、ＮＩＣ１２１、ＣＰＵ１２２、ローカルメモリ１２３、入力装置１２４、管理画面１２５、内蔵ディスク装置１２６から構成され、それぞれの構成部位は内部バスまたは内部ネットワークにて接続される。
【００２５】
ＮＩＣ１２１は、ＬＡＮ１０２を介してファイルサーバ１００と通信するために用いる。
【００２６】
ＣＰＵ１２２は、管理計算機１２０を制御するプロセッサである。ＣＰＵ１２２は、ローカルメモリ１２３に格納されたプログラムを実行する。例えば、ＣＰＵ１２２は、ファイルサーバ１００を管理するプログラム（管理プログラム）を実行し、ファイルサーバ上で動作するサーバプログラムの設定変更などを行う。
【００２７】
ローカルメモリ１２３は、例えば半導体メモリであり、ＣＰＵ１２２が実行するプログラム及びＣＰＵ１２２が参照するデータを格納する主記憶装置である。なお、ローカルメモリの一部として内蔵ディスク装置１２６を用いても良い。
【００２８】
入力装置１２４は、管理計算機１２０上で動作するプログラムに指示を与えるためのキーボードやマウスである。管理画面１２５は、管理計算機１２０上で動作するプログラムのユーザインタフェースを表示するディスプレイである。管理計算機１２０は、複数あっても良い。なお、入力装置と管理画面は管理計算機とは別な操作用の計算機が担うことも考えられる。その場合、操作用計算機への入力は通信として管理計算機が受信し、同様に管理計算機が表示する情報を操作用計算機に送信し、当該表示情報を受信した操作用計算機は表示情報に従った画面表示を行うことになる。
【００２９】
ストレージ装置１３０は、ファイルサーバ１００が使用するプログラムやファイルを格納するための二次記憶装置である。ストレージ装置１３０は、ストレージキャッシュ１３１と、ストレージコントローラー１３２Ａ乃至１３２Ｂ、ディスク装置１３３Ａ乃至１３３Ｄとから構成され、それぞれの構成部位は内部バスまたは内部ネットワークにて接続される。ストレージキャッシュ１３１、ストレージコントローラー１３２、ディスク装置１３３は、それぞれ図１に示した数に限定しない。なお、本発明のＮＡＳシステムは複数のストレージ装置を含んでもよい。
【００３０】
ストレージコントローラー１３２は、ファイルサーバ１００と通信し、ストレージ装置１３０を制御する。具体的には、ストレージコントローラー１３２は、ファイルサーバ１００と通信し、ファイルサーバ１００からの要求に従って後述のストレージキャッシュ１３１を用いつつディスク装置１３３にデータを書き込み、又はストレージキャッシュ１３１を用いつつディスク１３３からデータを読み出す。前述の通り、ストレージコントローラーが受信するアクセス要求または送信するデータはブロックアドレス形式によって指定されるブロックデータ（単にブロックと呼ぶことがある）を対象とする。
【００３１】
ストレージキャッシュ１３１は、例えば、半導体メモリであり、ディスク装置１３３に書き込むデータ又はディスク装置１３３から読み出したブロックデータを一時的に格納するために用いる。なお、ストレージキャッシュの一部として半導体メモリより低速な記憶装置を用いても良いものとする。
【００３２】
ディスク装置１３３は、データを格納する装置である。図１では、４個のディスク装置（１３３Ａ乃至１３３Ｄ）を示しているが、ストレージ装置１３０には、任意の数のボリューム１３３を設置できる。なお、ディスク装置１３３Ａ乃至１３３ＤはＨＤＤが典型的な装置であるがブロック形式のデータを保存できるのであればＨＤＤ以外であってもよいため、例えばＤＶＤやＣＤやＳｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ（半導体ディスク）で代用しても良い。
【００３３】
なお、高速化や冗長化や高信頼化等の理由から、ストレージコントローラーは、複数のディスク装置１３３を一つ以上の仮想的なディスク装置してファイルサーバ１００にアクセスを提供する処理（より具体的にはＲＡＩＤ技術に開示された処理）を実施してもよい。なお、以後の説明ではこの仮想的なディスク装置をボリュームと呼び、「ストレージ装置またはストレージコントローラーがボリュームにブロックデータを書き込む」と説明した場合は、実際はストレージコントローラー１３２がストレージキャッシュ１３１またはディスク装置１３３にブロックデータを書き込むことを意味する。同様に、「ストレージ装置またはストレージコントローラーがボリュームからブロックデータを読む」と説明した場合は、実際はストレージコントローラー１３２がストレージキャッシュ１３１またはディスク装置１３３からブロックデータを読み出すことを意味する。
【００３４】
ファイルサーバ１００のアダプタ１０８とストレージ装置１３０のストレージコントローラー１３２間のＦＣ１０３は、スイッチを介して繋がっていても良い。また、ファイルサーバ１００と接続するストレージ装置１３０は、複数あっても良い。また、ファイルサーバ１００と複数のストレージ装置１３０がストレージエリアネットワーク（ＳＡＮ）を構成しても良い。また、図１では、３つのＬＡＮ１０１Ａ乃至１０１Ｃ上にそれぞれ複数のクライアント１１０Ａ乃至１１０Ｃがつながっているが、これ以外の接続形態であってもよい。同様にファイルサーバ１００はＬＡＮ１０２を介して管理計算機１２０と接続しているが、ＬＡＮ１０２とＬＡＮ１０１Ａ乃至１０１Ｃが共通のネットワークであってもよい。
【００３５】
アダプタ１０８とストレージ装置１３０間の通信路１０３は、例えばファイバーチャネル（ＦＣ）での接続が考えられるが、通信可能であればこれ以外の接続媒体（例えばＥｔｈｅｒｎｅｔ（登録商標））を採用してもよい。
【００３６】
次に、図５の模式図を用いて本発明の概要を説明する。なお、本概要で説明した事項は例示に過ぎず、本発明の権利をこれに限定するものではない。
【００３７】
組織内の情報機器の管理体制として、代表担当者、部内担当者、課内担当者といった階層的な管理体制を敷いている場合がある。例えば、部内で共通に使用するサーバ計算機の増減設は部内担当者の権限で行い、課内で使用するサーバ計算機の増減設は、課内担当者の権限で行うというように、管理権限を分散している。
【００３８】
一方、従来の仮想ファイルサーバは、ファイルサーバ内のリソースを割当てて仮想ファイルサーバを作成・削除する権限は、ファイルサーバを最初に動かす特定の権限を持ったＯＳ（ホストＯＳ）の管理者などに限定されていた。
【００３９】
そのため、例えば仮想ファイルサーバを用いる組織では、部内担当者や課内担当者が直接新たに仮想サーバを用意することはできない。その結果、仮想ファイルサーバの新設が必要であれば、その度にサーバ計算機のホストＯＳを管理する代表担当者に依頼することになる。このような状況を打開する運用方法として、部内担当者や課内担当者をホストＯＳの管理者とすることも考えられる。しかしこのような運用では、全ての管理者が自由に仮想サーバを作ることが可能となり、サーバ計算機のリソースを占有することが可能となってしまう。データセンタのように、複数の組織でサーバ計算機を共有する場合、リソースの運用管理およびセキュリティ上好ましくない。
【００４０】
こうした状況下でもセキュリティを確保しつつ、仮想ファイルサーバの運用を行うために、本発明では、仮想ファイルサーバの多階層管理を実現する。
【００４１】
なお、本発明による仮想ファイルサーバは、従来技術で実現していた部分も含め、以下の全ての特徴を有するものとする。ただし、一部の特徴については有さなくても本発明による恩恵を受けることが可能である（例えば（Ｄ）と（Ｇ））。
【００４２】
（Ａ）各仮想ファイルサーバは、ファイルサーバが有するＣＰＵ１０６、ローカルメモリ１０７、アダプタ１０８、ＮＩＣ１０４、ＮＩＣ１０５（いずれも複数であってもよい）の少なくともいずれか一つまたは一部（一つしかない場合はＣＰＵ１０６やＮＩＣやアダプタであれば時分割したタイムスライスの一部で、ローカルメモリであれば空間分割または使用容量分割したことによって確保した全容量の一部を指しても良い）を割り当てられ、ファイル共有サービスを提供するために使用する。なお、ファイル共有サービスの提供とは、ファイルの生成及び更新及び削除及び属性変更や、ディレクトリの生成及び更新及び削除及び属性変更や、ファイルやディレクトリが含まれるファイルの名前空間の提供及び操作を提供することが含まれるが、これ以外のサービスを含んでも良い。また、これら提供する項目は、ＸＡＭに代表されるオブジェクト形式のアクセスを提供するために必要な操作で代替してもよいし、他のプロトコルで必要な操作で代替してもよい。。
【００４３】
（Ｂ）ファイル共有サービスを提供するために、各仮想ファイルサーバ毎に個別のＩＰアドレスを有する。これによってクライアント１１０からは各仮想ファイルサーバは個別に計算機として物理的に存在するように見せる。
【００４４】
（Ｃ）ファイル共有サービスを提供するために各仮想ファイルサーバが提供するファイルの名前空間は、各々で異なる。各仮想ファイルサーバは、ファイルサーバ１００がストレージ装置１３０のボリュームに格納したファイルの名前空間の別々な部分空間を、仮想ファイルサーバがファイルの名前空間として提供するとも言える。
【００４５】
（Ｄ）ファイル共有サービスを提供するために、各仮想ファイルサーバは、独立な提供するファイルの名前空間に対応したユーザー群を有し、当該ユーザーに基づいたアクセス制御を実施する。
【００４６】
（Ｅ）ファイル共有サービスを提供するために、各仮想ファイルサーバは、個別に設定管理を実施することができる。なお、設定管理の一例としては、先ほどのユーザーに関する設定であったり、仮想ファイルサーバが使用中のＣＰＵ１０６、ローカルメモリ１０７、アダプタ１０８、ＮＩＣ１０４、ＮＩＣ１０５に関する設定（例えば、ＩＰアドレスの割り当て）などがある。
【００４７】
（Ｆ）ファイル共有サービスまたは（Ｅ）の管理において、各仮想ファイルサーバは、割り当てられていないＣＰＵ１０６、ローカルメモリ１０７、アダプタ１０８、ＮＩＣ１０４、ＮＩＣ１０５を使用しない。これによってセキュリティの確保や性能保証を実現することがある。
【００４８】
（Ｇ）各仮想ファイルサーバは、各々が提供するファイル共有サービスの利用を許可する（仮想ファイルサーバが提供するファイルの名前空間へのアクセスを許可すると表現してもよい）一つ以上のクライアントの識別子情報、または当該サービスの利用を制限する一つ以上のクライアントの識別子情報を有し、アクセス制御を行っても良い。
【００４９】
なお、（Ａ）で割り当てられたＣＰＵ１０６、ローカルメモリ１０７、アダプタ１０８、ＮＩＣ１０４、ＮＩＣ１０５は（Ｅ）による設定変更以外では割り当てが変化しない実装や、一部の部位については動的に割り当て状況が変化する場合があってもよい。例えば、ローカルメモリ１０７に余剰がある場合に自動的に仮想ファイルサーバに割り当てたり、各部位の動作不良が検知または予知した場合に代替部位を用いる場合が考えられるが、これ以外の理由であってもよい。
【００５０】
また、（Ｅ）の仮想ファイルサーバ毎の設定については、各ファイルサーバ毎に独自の管理用のＩＰアドレスと管理操作を行う前の認証用のパスワードを有することが考えられる。しかし、ＩＰアドレスの代替として各仮想ファイルサーバを特定可能な情報が、管理用計算機から送信されるのであれば、他の情報で代替してもよい。その一例としては、ファイルサーバ１００共通の認証画面に認証対象の仮想ファイルサーバを入力できる処理が存在する場合がある。
【００５１】
なお、本発明では上記処理は後ほど説明するファイルサーバ１００が有するファイル要求処理プログラムまたはＶＳ階層化管理プログラムにて行われる。
【００５２】
図５は、本発明の仮想ファイルサーバ（以後、ＶＳと呼ぶことがある）２２０同士の関係やリソースの分割状況の一例を模式的に表した図面である。
【００５３】
図５において、ファイルサーバ１００は、２２０Ａ乃至２２０Ｈに示す８個のＶＳ２２０をクライアント１１０に提供するよう処理を行っている。またファイルサーバ１００は、各ＶＳ２２０を階層的に管理している。ＶＳ２２０Ａ、ＶＳ２２０Ｂ、ＶＳ２２０Ｄ、ＶＳ２２０Ｅは、管理ＶＳを示す。なお、管理仮想ファイルサーバ（管理ＶＳ）とは、新たな仮想ファイルサーバを定義し、仮想ファイルサーバに関する説明（Ａ）と同様に、自身に割り当てられたＣＰＵ１０６、ローカルメモリ１０７、アダプタ１０８、ＮＩＣ１０４、ＮＩＣ１０５（いずれも複数であってもよい）の少なくともいずれか一つまたは一部を新たな仮想ファイルサーバに割り当てることができる設定処理を有する（またはこのような設定機能を管理計算機１２０に提供することを許された）仮想ファイルサーバである。
【００５４】
各ＶＳ２２０内には、ＶＳ２２０が管理しているリソースの代表例として複数存在するボリューム５０１を示す。なお、実線で表示したボリューム５０１は、ＶＳ２２０自身が使用可能なボリュームを示す。破線で表示したボリューム５０１は、当該管理ＶＳ２２０が定義した仮想ファイルサーバに割り当てたことによって、自身が使用できないボリュームを示す。
【００５５】
本例では、管理ＶＳ２２０Ａは、８個のボリュームを管理しており、管理ＶＳ２２０Ａ自身が使用可能なボリュームとしてボリューム５０１Ａを持ち、管理ＶＳ２２０Ａ自身が使用不可能なボリュームとして、７個のボリューム５０１Ｂ乃至５０１Ｈを持つ。また、ＶＳ２２０Ｈは、１個のボリューム５０１Ｈを管理しており、そのボリューム５０１はＶＳ２２０Ｈが利用可能なボリューム５０１である。
【００５６】
前述の通り、管理ＶＳ２２０（親ＶＳ２２０）が子ＶＳ２２０を定義する（作るとも表現することがある）場合、管理ＶＳ２２０は、管理ＶＳ２２０が使用可能なボリューム５０１のいくつかを子ＶＳ２２０に割り当て（以後、貸与すると表現することがある）て子ＶＳ２２０を作る。例えば、管理ＶＳ２２０Ａが管理するボリューム５０１のうち、使用不可能なボリューム５０１Ｂ乃至５０１Ｈは、管理ＶＳ２２０Ｂと管理ＶＳ２２０Ｃに貸与しているボリューム５０１である。管理ＶＳ２２０Ａが貸与しているボリューム５０１は、管理ＶＳ２２０Ａ自身が使用することはできない。
【００５７】
逆に、管理ＶＳ２２０が子ＶＳ２２０を削除する場合、管理ＶＳ２２０は、削除対象のＶＳ２２０が管理していたボリューム５０１（つまり、管理ＶＳ２２０が子ＶＳ２２０に貸与したリソース）の割り当てを解除する（これを回収と呼ぶことがある）。管理ＶＳ２２０が回収したボリューム５０１は、管理ＶＳ２２０自身が使用可能な状態となる。例えば、管理ＶＳ２２０Ａが管理ＶＳ２２０Ｃを削除した場合、管理ＶＳ２２０Ａは、管理ＶＳ２２０Ｃが管理するボリューム５０１Ｃとボリューム５０１Ｆを回収する。この時、ボリューム５０１Ｃとボリューム５０１Ｆは、管理ＶＳ２２０Ａが使用可能なボリューム５０１Ｃとボリューム５０１Ｆとなる。
【００５８】
図５の階層構造は、
管理ＶＳ２２０Ａがボリューム５０１Ｂ、ボリューム５０１Ｄ、ボリューム５０１Ｅ、ボリューム５０１Ｇ、ボリューム５０１Ｈを貸与する管理ＶＳ２２０Ｂを作成し、
管理ＶＳ２２０Ａがボリューム５０１Ｃ、ボリューム５０１Ｆを貸与する管理ＶＳ２２０Ｃを作成し、
管理ＶＳ２２０Ｂがボリューム５０１Ｄを貸与するＶＳ２２０Ｄを作成し、
管理ＶＳ２２０Ｂがボリューム５０１Ｅ、ボリューム５０１Ｇ、ボリューム５０１Ｈを貸与するＶＳ２２０Ｅを作成し、
管理ＶＳ２２０Ｃがボリューム５０１Ｆを貸与するＶＳ２２０Ｆを作成し、
管理ＶＳ２２０Ｅがボリューム５０１Ｇを貸与するＶＳ２２０Ｇを作成し、
管理ＶＳ２２０Ｅがボリューム５０１Ｈを貸与するＶＳ２２０Ｈを作成したときの階層構造である。
【００５９】
図５の模式図では、ＶＳ２２０が管理するリソースの代表例としてボリューム５０１を使い説明した。しかし、本発明でＶＳ２２０が管理するリソースは、ボリューム５０１に限らない。ＶＳ２２０は、ＣＰＵ１０６、ローカルメモリ１０７（キャッシュメモリとして用いる場合も含む）、アダプタ１０８、ＮＩＣ１０４、ＮＩＣ１０５などに例示される各リソースを管理可能である。
【００６０】
以上、例示を用いて説明したように、階層的に仮想ファイルサーバを管理可能とするために、一部の仮想ファイルサーバ（管理仮想ファイルサーバ）に仮想ファイルサーバを作成・削除する権限を与え、仮想サーバ間に親子関係を作ることができる。なお、前述の通り仮想ファイルサーバは各々管理操作を行う管理者の認証パスワードを個別に持つことが出来るため、ある管理仮想ファイルサーバの管理者が他の管理仮想ファイルサーバのパスワードを知る必要なしに、自身に割り当てられたリソースを元に仮想サーバの作成・削除が可能となるため、セキュリティも向上する。
【００６１】
本発明による仮想ファイルサーバを、データセンタで運用する場合を例として考える。管理ＶＳ２２０Ａの管理操作を許されたデータセンタの管理者は、顧客に管理仮想ファイルサーバの管理権限を貸与することで、顧客自身が任意の契機で（例えば顧客が新たな子会社を設立し、そこに小規模なコンピューター管理部門を設立した場合がある）与えられたリソースの範囲内で柔軟に仮想ファイルサーバの作成・削除・リソース割り当ての変更を行うことができる（例えば管理ＶＳ２２０Ｂ）。さらに顧客の仮想ファイルサーバが作成した孫ＶＳ２２０（例えばＶＳ２２０Ｄ）についても個別な設定を行うことができるため、例えば前述の小規模なコンピューター管理部門が、子会社に対する人員の増減に応じて、ユーザーの生成や削除をＶＳ２２０Ｄに対して設定することも可能となる。
【００６２】
また、別例として、ファイルサーバ１００の管理を行うデータセンタが、会社Ａと会社Ｂにそれぞれにファイルサーバ１００のＶＳ２２０を貸し出す場合について説明する。データセンタの持つ管理ＶＳ２２０をＶＳ２２０ＤＣ、会社Ａに貸し出す管理ＶＳ２２０をＶＳ２２０Ａ、会社Ｂに貸し出す管理ＶＳ２２０をＶＳ２２０Ｂと呼ぶ。また、ＶＳ２２０Ａ、ＶＳ２２０Ｂは、それぞれＶＳ２２０ＤＣの子ＶＳ２２０とする。
【００６３】
データセンタのファイルサーバ１００のシステム管理者は、ファイルサーバ１００の全てをコントロール可能な権限で管理プログラム２３０にログインすることができる。そして、管理プログラム２３０にログインしたファイルサーバ１００のシステム管理者は、ファイルサーバ１００のリソースを自由にＶＳ２２０ＡやＶＳ２２０Ｂへ貸与・回収することができる。
【００６４】
一方、会社Ａの管理者は、ＶＳ２２０Ａのリソースをコントロール可能な権限で管理プログラム２３０にログインすることができる。そして、管理プログラム２３０にログインした会社Ａの管理者は、ＶＳ２２０Ａが持つリソースの範囲内で自由に子ＶＳ２２０を作成・削除、リソースの貸与・回収を行うことができる。また会社Ａの管理者は、会社Ａ内の部門ごとに管理ＶＳ２２０として子ＶＳ２２０を作ることで、データセンタから借りているリソースを社内の部門ごとに貸与することが可能となる。
【００６５】
また、会社Ａ内の各部門の管理ＶＳ２２０の管理者は、会社Ａの管理者から貸与されたリソースに応じて、更に子ＶＳ２２０を作成することができる。会社Ａ内の各部門の管理者は、部門内の子ＶＳ２２０の作成・削除や、リソースの貸与・回収に際し、上位層のＶＳ２２０Ａを管理する会社Ａの管理者や、より上位層のＶＳ２２０ＤＣを管理するシステム管理者の手を借りることなく行うことが可能となる。ＶＳ２２０の管理者が、より上位層の管理ＶＳ２２０の管理者の手を借りる場面は、例えばＶＳ２２０が持っていないリソースを上位層の管理ＶＳ２２０から割り当ててもらう（貸与してもらう）場合などに限定することができる。
【００６６】
従って本発明によって、データセンタから借りているＶＳ２２０Ａのリソースを部門ごとの管理者や、更に部門内の小規模の組織の管理者間で、効率よく分散して管理することが可能となる。
【００６７】
会社Ａの管理者が管理可能なＶＳ２２０は、ＶＳ２２０Ａの下位層のＶＳ２２０だけである。会社Ａ内での子ＶＳ２２０の作成・削除、リソースの貸与・回収処理は、会社Ｂが管理するＶＳ２２０ＢやＶＳ２２０Ｂの下位層のＶＳ２２０に影響を与えずに実行することができる。また、データセンタのシステム管理者が管理するＶＳ２２０ＤＣにも影響を与えずに実行することができる。
【００６８】
以上のように、特にファイルサーバ１００で異なる組織が多くのＶＳ２２０を運用する場合、本発明による階層化管理によって、ファイルサーバ１００上のＶＳ２２０やＶＳ２２０に貸与するリソースを効率良く複数の管理者で分散管理することができる。
【００６９】
なお、上記ユースケースはあくまでも例示に過ぎず、本発明の用途を限定するものではない。
【００７０】
以下、本発明の詳細な説明を行う。
【００７１】
図２は、本発明のプログラム及び情報の構成及び、当該プログラム及び情報とハードウェアの関係を示すブロック図である。
【００７２】
ファイルサーバ１００のローカルメモリ１０７には、ＶＳ階層化管理プログラム２００、複数の仮想サーバ情報（以後ＶＳＩと呼ぶことがある）２２００を格納している。
【００７３】
ＶＳＩ２２００は、複数の仮想ファイルサーバを提供するために必要となる情報やプログラムを有する情報である。
【００７４】
ＶＳＩ２２００は、ルーティングテーブル２２１、ファイル要求処理プログラム２２２、ファイルキャッシュ２２３、マウント情報２２４からなる。
【００７５】
ルーティングテーブル２２１は、ＶＳ２２０のファイル要求処理プログラム２２２がクライアント１１０へ情報を送信する場合に使用するＮＩＣ１０４の識別情報を格納するデータ構造である。ルーティングテーブル２２１には、ＶＳ２２０が使用可能な複数のＮＩＣ１０４の識別情報を格納していても良い。なお、ルーティングテーブル２２１に格納した情報を有していれば、データ構造がテーブル以外の構造である情報（ルーティング情報と呼ぶ）であっても良い。
【００７６】
ファイル要求処理プログラム２２２は、ＶＳ２２０がファイル共有サービスをクライアント１１０に提供するプログラムである。単一のＶＳＩ２２００内に複数の異なる種類のファイル要求処理プログラム２２２があっても良い（例えば、あるプログラムはＮＦＳプロトコル対応であり、別種類のプログラムはＣＩＦＳ対応である場合）。例えば、単一のＶＳＩ２２００がＮＦＳによるファイル共有サービスとＣＩＦＳによるファイル共有サービスを同時にクライアント１１０に提供しても良い。また、異なるＶＳＩ２２００上に同じ種類のファイル要求処理プログラム２２２があっても良い。
【００７７】
また、ＶＳ２２０ＡとＶＳ２２０ＢとＶＳ２２０Ｃが同じファイル共有サービスを同時に提供するようにしても良い。なお、ＶＳＩ２２００が実際のファイル要求処理プログラムの実行形式を有する代わりに、各ＶＳＩ２２００が有する実行形式をＶＳＩ２２００ではないローカルメモリ１０７の領域に格納し（同じ実行形式であれば同じものは省いて）、ＶＳＩ２２００にはローカルメモリ１０７の一つ以上の実行形式を識別可能な識別子のみを含ませても良い。また、ファイル要求処理プログラムの実行形式がＶＳＩ２２００で全て同じで設定情報のみ異なる場合は、当該設定情報のみＶＳＩ２２００に含めてもよい。
【００７８】
ファイルキャッシュ２２３は、ファイル要求処理プログラム２２２がボリューム１３３に書き込むデータや、ファイル要求処理プログラム２２２がボリューム１３３から読み出したデータを一時的に保管するメモリ領域である。ファイルキャッシュ２２３は、ファイル要求処理プログラム２２２に対して高速なボリュームアクセスを提供するために用いる。例えば、ファイル要求処理プログラム２２２がボリューム１３３からデータを読み込む場合、ファイル要求処理プログラム２２２は、読み込んだデータをファイルキャッシュ２２３に格納する。ファイル要求処理プログラム２２２が再度同じデータの読み込みを行う場合、高速なローカルメモリ１０７中のファイルキャッシュ２２３からデータを読み出すことができる。また、ファイル要求処理プログラム２２２がボリューム１３３へデータを書き込む場合、ファイル要求処理プログラム２２２は、高速なローカルメモリ１０７中のファイルキャッシュ２２３からデータを読み込み、データを更新し、ボリューム１３３に書き込むことができる。また、ファイルキャッシュの領域は必ずしもローカルメモリ上の連続領域である必要はなく、容量など定められた基準に則ってファイルキャッシュが必要な場合に動的に確保される領域である場合も考えられる。また、当然ながらローカルメモリ上の連続領域をファイルキャッシュとしてもよい。連続領域の場合、ファイルキャッシュの領域に格納したデータや空き領域の管理に用いる情報（例えばフリーキューやダーティーキュー）を個々のＶＳ２２０で管理できるため、キャッシュ管理情報の参照に伴うＶＳ２２０同士の性能競合を回避することができ、また当該情報が指し示すファイルキャッシュの領域が小さくなることから情報量そのものを小さくできるメリットがある。以後、特に断らない限り、ファイルキャッシュの領域とはこれら両方の場合を含むものとする。
【００７９】
マウント情報２２４は、ファイル要求処理プログラム２２２が使用するファイルの名前空間における位置と、その名前空間を形成するファイルシステムを格納しているボリューム１３３の識別情報との対応を格納する情報である。マウント情報２２４には、複数のボリューム１３３の識別情報を格納しても良い。なお、マウント情報のデータ構造は表以外の構造であってもよい。ファイル要求処理プログラム２２２は、マウント情報２２４に識別情報を格納しているボリューム１３３を使用してクライアント１１０にサービスを提供する。このサービスの提供は、ファイル要求処理プログラム２２２が、クライアント１１０が読み書きするファイルをマウント情報２２４に格納された識別情報に対応したボリューム１３３に格納することで実現する。
【００８０】
ＶＳ階層化管理プログラム２００は、管理計算機１２０からの指示に応じてＶＳ２２０の作成や削除を行い、各ＶＳ２２０のリソース管理や、ＶＳ間の親子関係を管理するプログラムである。ＶＳ階層化管理プログラム２００はＶＳ作成・削除処理部２０３、リソース貸与・回収処理部２０４を有する。また、当該プログラムが主に使用する情報として、階層化管理情報２０１、リソース管理情報２０２、がある。
【００８１】
階層化管理情報２０１は、ＶＳ間の親子関係を管理し、ＶＳを階層化管理可能とするための情報である。なお、階層化管理情報２０１の実現方式の一例を図３に示す。
【００８２】
リソース管理情報２０２は、ＶＳ２２０ごとに使用可能なリソースを管理するテーブルである。本発明では、ＶＳ２２０がクライアント１１０に対してファイル共有サービスなどを提供するために必要なハードウェアリソースのことを単にリソースと呼ぶ。具体的には、本発明におけるリソースとは、ＮＩＣ１０４、ＣＰＵ１０６、ファイルキャッシュ２２３、またはボリューム１３３の一つ以上または全てを意味する。さらに、ＩＰアドレスは物理的な存在ではないものの、ファイルサーバ１００に対して有限数を割り当てられたいわば論理的なリソースと考えられるため、リソースの一部として扱う。なお、ＩＰアドレスは管理計算機１２０より設定されることが考えられ、設定の結果、ファイルサーバ１００はローカルメモリ１０７に格納する。リソース管理情報２０２の詳細は図４に示す。
【００８３】
ＶＳ作成・削除処理部２０３は、管理計算機１２０上の管理プログラム２３０からの指示に基づき、階層化管理情報２０１の操作、リソース管理情報２０２の操作、ＶＳ２２０のファイル要求処理プログラム２２２のロードやＶＳ２２０のデータ構造の作成・削除を行う。
【００８４】
例えば、管理者が管理計算機１２０上の管理プログラム２３０を使ってＶＳ２２０の作成をリクエストした場合、ＶＳ階層化管理プログラム２００がリクエストを受け取り、ＶＳ作成・削除処理部２０３を実行する。前記リクエストには、新しいＶＳ２２０をどのＶＳ２２０（親ＶＳ２２０）の管理下のＶＳ２２０（子ＶＳ２２０）とするか、子ＶＳ２２０に貸与するＮＩＣ１０４の識別子、ボリューム１３３の識別子、ファイルキャッシュ２２３量、ＣＰＵ１０６の識別子（または分割比率）などのリソース情報を含む。
【００８５】
ＶＳ作成・削除処理部２０３は、リソース情報を元にリソース管理情報２０２を操作し、前記リクエストに含まれていたリソースを親ＶＳ２２０が使用可能なリソースから、子ＶＳ２２０が使用可能なリソースへと変更する。また、ＶＳ作成・削除処理部２０３は、親子関係を保つように子ＶＳ２２０の管理用エントリを階層化管理情報２０１に追加する。
【００８６】
次にＶＳ作成・削除処理部２０３は、前記リクエストに基づき、ローカルメモリ１０７上にルーティングテーブル２２１、ファイルキャッシュ２２３、マウント情報２２４を作る。なお、ＶＳ作成・削除処理部２０３は、ボリューム１３３からファイル要求処理プログラム２２２のプログラムをローカルメモリ１０７上にロードしてもよい。ＶＳ作成・削除処理部２０３の実際の処理フローは図６、図８に示す。
【００８７】
リソース貸与・回収処理部２０４は、管理計算機１２０上の管理プログラム２３０からの指示に基づき、既存のＶＳ２２０にリソースを貸与したり、既存のＶＳ２２０からリソースを回収する処理である。リソース貸与・回収処理部２０４の詳細は、図７、図９に示す。
【００８８】
ＶＳスケジューラ２０５は、各ＶＳ２２０を提供するためのファイル要求処理プログラム２２２を実行するＣＰＵ１０６を複数のＣＰＵ１０６の中から選択する処理である。ＶＳスケジューラ２０５は、リソース管理情報２０２を参照することで、各ＶＳ２２０が使用可能なＣＰＵ１０６を判断することができる。
【００８９】
管理計算機１２０上のローカルメモリ１２３には、管理プログラム２３０を格納している。
【００９０】
管理プログラム２３０は、管理者からの指示に基づき、ファイルサーバ１００上のＶＳ階層化管理プログラム２００に指示を出す。具体的には、管理プログラム２３０は、ＶＳの作成要求やＶＳの削除要求、ＶＳへリソースを貸与する要求、ＶＳのリソースを回収する要求を行う。管理プログラム２３０を用いた管理例は、図１０、図１１、図１２、図１３に示す。
【００９１】
ここで、図１、図２を使い、クライアント１１０ＡがＶＳ２２０Ａで提供中のファイル共有サービス（ファイル要求処理プログラム２２２Ａ）に対してファイルの読み込み要求を出した場合の全体の流れについて説明する。
【００９２】
クライアント１１０Ａからの読み込み要求は、ＬＡＮ１０１Ａを介してファイルサーバ１００のＮＩＣ１０４Ａに届く。
【００９３】
ファイル要求処理プログラム２２２Ａは、リソース管理情報２０２に格納されている使用可能なＮＩＣ１０４Ａを定期的に確認し、クライアント１１０Ａからのファイル読み込み要求を受信する。
【００９４】
次にファイル要求処理プログラム２２０Ａは、読み込むファイルのデータをファイルキャッシュ２２３Ａに格納しているか確認する。
【００９５】
読み込むファイルのデータをファイルキャッシュ２２３Ａ上に格納していなかった場合、ファイル要求処理プログラム２２２Ａは、マウント情報２２４Ａに格納している識別情報に対応するボリューム１３３からファイルのデータを読み込み、そのデータをファイルキャッシュ２２３Ａに格納する。次に、ファイル要求処理プログラム２２２Ａは、ファイルキャッシュ２２３Ａからファイルのデータを読み込む。ファイルキャッシュ２２３Ａからファイルのデータを取り出したファイル要求処理プログラム２２２Ａは、ルーティングテーブル２２１Ａに格納している識別情報に対応するＮＩＣ１０４Ａを使い、ＬＡＮ１０１Ａを介してクライアント１１０Ａに要求したファイルのデータを返す。
【００９６】
次に、図１、図２を使い、クライアント１１０ＡがＶＳ２２０Ａで提供中のファイル共有サービスに対してファイルの書き込み要求を出した場合の全体の流れについて説明する。
【００９７】
クライアント１１０Ａが送信した書き込み要求と書き込むファイルのデータは、ＬＡＮ１０１Ａを介してファイルサーバ１００のＮＩＣ１０４Ａが受信する。ファイル要求処理プログラム２２２Ａは、リソース管理情報２０２に格納している識別情報に対応するＮＩＣ１０４Ａを定期的に確認することで、クライアント１１０Ａからの書き込み要求と書き込むファイルのデータを受信する。次にファイル要求処理プログラム２２０Ａは、書き込み要求のファイルのデータをファイルキャッシュ２２３Ａに格納しているか確認する。書き込み要求のあったファイルのデータをファイルキャッシュ２２３Ａ上に格納していなかった場合、ファイル要求処理プログラム２２２Ａは、マウント情報２２４Ａに格納している識別情報に対応するボリューム１３３からファイルのデータを読み込み、そのデータをファイルキャッシュ２２３Ａに格納する。
【００９８】
次にファイル要求処理プログラム２２２Ａは、ファイルキャッシュ２２３Ａ上のデータを更新する。次にファイル要求処理プログラム２２２Ａは、マウント情報２２４Ａに格納している識別情報に対応するボリューム１３３上のファイルのデータをファイルキャッシュ２２３Ａ上のデータで更新する。
【００９９】
ボリューム１３３にファイルのデータを書き込んだファイル要求処理プログラム２２２Ａは、ルーティングテーブル２２１Ａに格納している識別情報に対応するＮＩＣ１０４Ａを使い、ＬＡＮ１０１Ａを介してクライアント１１０Ａに前記ファイルのデータの書き込みが完了したことを通知する。
【０１００】
なお、本実施例では、各ＶＳ２２０が個別にルーティングテーブル２２１やマウント情報２２４を持つ構成としたが、各ＶＳ２２０が単一のルーティングテーブル２２１やマウント情報２２４を共有する構成でも本発明を実施可能である。
【０１０１】
図３は、階層化管理情報２０１を示す。
【０１０２】
階層化管理情報２０１は、ＶＳ２２０間の親子・兄弟関係を管理し、ＶＳ２２０を階層化管理可能とするためのデータ構造を示している。図３は、６つのＶＳの親子関係を表すデータ構造になっている。
【０１０３】
３００Ａ乃至３００Ｆは個々のＶＳ２２０の情報を管理するＶＳ管理構造体３００である。ｎａｍｅ３０１にはＶＳ名を格納している。ｐａｒｅｎｔ３０２にはＶＳを作ったＶＳ（親ＶＳ２２０）へのポインタを格納している。ｂｒｏｓ３０３には、同じ親ＶＳ２２０を持つＶＳ２２０（兄弟ＶＳ２２０）へのポインタを格納しており、兄弟ＶＳ２２０は、ｂｒｏ３０３によって循環リストとなっている。
【０１０４】
ｃｈｉｌｄ３０４には、ＶＳ２２０が作ったＶＳ２２０（子ＶＳ２２０）へのポインタを格納している。ＶＳ２２０に子ＶＳ２２０がいない場合、ｃｈｉｌｄ３０４には、何も情報を格納していない。３０１乃至３０５以外にもＶＳ管理構造体３００内には、各ＶＳ２２０を管理するための情報を格納している。
【０１０５】
ここで、ポインタとは、ローカルメモリ１０７中のＶＳ管理構造体３００の位置を示すアドレスのことである。例えば、ｐａｒｅｎｔ３０２のポインタは、親ＶＳ２２０のＶＳ管理構造体３００が格納しているローカルメモリ１０７上の位置を示しているため、親ＶＳ２２０のＶＳ管理構造体３００の情報を参照できる。つまり、階層化管理情報２０１は、ローカルメモリ１０７上に分散したＶＳ管理構造体３００の集合であり、ＶＳ管理構造体３００同士がポインタによって互いの情報を辿ることができる構造となっている。
【０１０６】
階層化管理情報２０１にＶＳ管理構造体３００を追加する場合、ＶＳ作成・削除処理部２０３は、ｎａｍｅ３０１にＶＳ名を格納し、ｐａｒｅｎｔ３０２に親ＶＳ２２０のポインタを格納し、既に兄弟となるＶＳ２２０が存在すればｂｒｏｓ３０３に兄弟へのポインタを格納する。ただし、ＶＳ作成・削除処理部２０３は、ｂｒｏｓ３０３のポインタを兄弟となるＶＳ２２０間で常に循環リストとなるように作成する。
【０１０７】
例えば、３００Ｃの子ＶＳを作成する場合、ＶＳ作成・削除処理部２０３は、ｃｈｉｌｄ３０５Ｃを子ＶＳ２２０を指すポインタとし、子ＶＳ２２０のｐａｒｅｎｔ３０２を３００Ｃを指すポインタとし、子ＶＳ２２０のｂｒｏｓ３０３を３００Ｄを指すポインタとする。
【０１０８】
一方、階層化管理情報２０１からＶＳ管理構造体３００を削除する場合、ＶＳ作成・削除処理部２０３は、ｂｒｏｓ３０３による兄弟ＶＳ２２０間による循環リストを切らないようにする。例えば、３００Ｄを削除する場合、ＶＳ作成・削除処理部２０３は、３００Ｃのｃｈｉｌｄ３０４Ｃを３００Ｅを指すポインタにし、３００Ｆのｂｒｏｓ３０３Ｆが指すポインタを３００Ｅを指すポインタに張り替える。
【０１０９】
以上、階層化管理情報２０１の操作を説明した。なお、階層化管理情報２０１は、各仮想ファイルサーバ同士の親子関係を格納することができ、上記で説明した以外のデータ構造であってもよい。また、ファイルサーバ１００が直接生成した仮想ファイルサーバの場合は当該仮想ファイルサーバの親としてファイルサーバ１００を指してもよい。
【０１１０】
図４は、リソース管理情報２０２を示す。
【０１１１】
リソース管理情報２０２は、各ＶＳ２２０が保持するリソースを管理するテーブルである。
【０１１２】
テーブルの各行４１１乃至４１６は、ＶＳ２２０ごとに管理しているリソースを表している。
【０１１３】
名前４０１の列には、ＶＳ２２０を特定するＶＳ名（または識別子）を保持している。
【０１１４】
管理フラグ４０２の列は、ＶＳ２２０が管理ＶＳ２２０かどうかを示すフラグを保持する。管理フラグ４０２の列にチェックがある場合は、ＶＳ２２０は、管理ＶＳ２２０であり、チェックがない場合は、通常のＶＳ２２０（通常ＶＳ２２０）である。管理ＶＳ２２０は、自ＶＳ２２０内で管理しているリソースの一部を貸与することで新たなＶＳ２２０を作ることができる。管理ＶＳ２２０は、一つのファイルサーバ１００内に複数存在してもよい。また、管理ＶＳ２２０は、新たなＶＳ２２０を管理ＶＳ２２２０として作ることが可能である。さらに、管理プログラムからの要求によって、通常のＶＳ２２０を管理ＶＳ２２０に変更してもよい。
【０１１５】
ＮＩＣ４０３の列は、ＶＳ２２０が使用可能なＮＩＣ１０４の識別子を示している。なお、当該列には各ＶＳ２２０がファイル共有サービス提供のために割り当てられたＩＰアドレス（または当該ＩＰアドレスと判別できる識別子）や、各管理ＶＳ２２０が子ＶＳ２２０を作成したときに貸与するＩＰアドレス（または当該ＩＰアドレスと判別できる識別子）を格納してもよい。
【０１１６】
Ｄｉｓｋ４０４の列は、ＶＳ２２０が使用可能なボリューム１３３の識別子を示している。なお、各ＶＳ２２０に分割する単位がボリューム以外の領域（例えば、ボリュームを分割した部分領域であるパーティションや、ボリュームに対してファイルシステムを作成し、当該ファイルシステム中の特定ディレクトリ以下を特定ＶＳ２２０に分配する場合）である場合は、ボリューム識別子以外の分配する領域の識別子を示すことができればよい。すなわち、複数のボリュームにはファイルシステムが作成され、各ＶＳ２２０へ貸与し、使用する領域は、ファイルシステムの所定のディレクトリ以下のファイルの名前空間に対応する。
【０１１７】
なお、このようなディレクトリを対象とした分割方法（または貸与方法）の場合、分割ポイントとして指定されたディレクトリ以下に所定のＶＳ２２０が作成したファイルが格納されるボリューム上の領域と、分割ポイントとして指定されたディレクトリより上のディレクトリに別なＶＳ２２０が作成したファイルが格納されるボリューム上の領域と、は分割時に定められるものではなく、ファイルの生成時・更新時に定まるものであり、ボリュームの領域に混在して存在することになる。そのため、上記の領域とファイルシステムの所定のディレクトリ以下のファイルの名前空間との対応とは、対応後のファイル要求に従って生成されるファイル及びディレクトリが前記所定のディレクトリ以下を生成先とすることを意味するものである。
【０１１８】
また、ファイルシステムを作成した場合、各ファイルのメタデータ（ファイルの属性やファイルのデータが格納されたボリューム上のアドレスを格納する）をボリューム上の連続領域を一つ以上用いて格納することが考えられる。この場合、ボリュームの読み書きの単位であるブロックに複数のメタデータを格納することになるため、あるブロックに別々のＶＳ２２０が生成したファイルのメタデータが混在することがある。そのため、各ＶＳ２２０に対応するファイルキャッシュ領域に格納するのはファイルに対応したデータとし、メタデータをキャシングする領域は複数のＶＳ２２０に共通の領域としてもよい。
【０１１９】
反対に、ファイルシステムを管理するプログラムが、あるブロックに格納するメタデータに関するファイルが一つのＶＳ２２０に対応させるように制御するのであれば（言い方を買えると、一つのブロックに複数のＶＳ２２０が生成したファイルに関するメタデータを格納することを抑止処理するのであれば）、ＶＳ２２０に対応するファイルキャッシュ領域にメタデータを格納してもよい。なお、メタデータのキャシングについてはこれら以外の理由でＶＳ２２０対応のファイルキャッシュ領域や複数のＶＳ２２０の共通領域を用いても良い。以後、特に断らない限りはボリュームの部分領域とはこれら個々のボリュームの領域、パーティション、ディレクトリ以下のケースを指すものとする。
【０１２０】
ＣＰＵ４０５の列には、ＶＳ２２０が使用可能なＣＰＵ１０６の識別子を示している。単一のＣＰＵ１０６が複数のＣＰＵ回路の中核部分を持つマルチコア（Ｍｕｌｔｉ−ｃｏｒｅ）ＣＰＵの場合、リソース管理情報２０２は、ＣＰＵ４０５の列をＣＰＵ１０６内のコア単位で管理しても良い。また、特定のＣＰＵを時分割で複数のＶＳ２２０で共有する場合は、時分割に関するパラメーターを当該部分に含めても良い。
【０１２１】
Ｆｉｌｅ  ｃａｃｈｅ４０６の列には、ＶＳ２２０が使用可能なファイルキャッシュ２２３のサイズ（閾値）を示している。なお、ファイルキャッシュを作成するメモリが複数のハードウェアで構成される場合は、当該ハードウェアの識別子を含めても良い。
【０１２２】
ＣＰＵ４０５やＦｉｌｅ  ｃａｃｈｅ４０６の列には、一部「ｓｈａｒｅ」と記載されているセルがある。これは、親ＶＳ２２０と子ＶＳ２２０とがリソースを共有して使用することを示している。
【０１２３】
各ＶＳ２２０が列４０３乃至４０６に挙げたリソースを使用する場合は、リソース管理情報２０４を参照して使用可能か判定を行う。その一例としては、リソース管理情報２０４を参照し、ＶＳ２２０の処理を実行するＣＰＵ１０６を決定する処理（スケジューリング処理）を行ったり、ＶＳ２２０の処理でファイルを読み込む時には、ファイルキャッシュ２２３の使用量が超過していないか判定し、超過している場合はダーティデータをボリュームに書き戻してからファイルを読み込むなどの処理を行う。
【０１２４】
なお、リソース管理情報２０４で管理するリソースは、前述したＮＩＣ１０４、ボリューム１３３、ＣＰＵ１０６、ファイルキャッシュ２２３に限定されるものではない。リソース管理情報２０４のデータ構造は必ずしも表である必要はなく、これまで示した情報を格納することができれば他のデータ構造であってもよい。また、列４０３乃至４０６に記したリソースの一部を分配せずに複数のＶＳ２２０で共有する場合は当該リソースに関する列はリソース管理情報２０４に含めなくても良い。
【０１２５】
図６は、ＶＳ作成・削除処理部２０３によるＶＳ作成処理フローである。管理プログラム２３０から送信する、ある管理ＶＳ２２０を親とした子ＶＳ２２０の作成要求を、ファイルサーバ１００が受信することで、ステップ６０１乃至６０６で示すＶＳ作成処理が動作する。なお、当該作成要求は、親となるＶＳ２２０の識別子と、親のＶＳ２２０が貸与されたリソースの一部であって子ＶＳ２２０に貸与すべきリソースに関する識別子を指定する。
【０１２６】
（ステップ６０１）ＶＳ作成・削除処理部２０３は、当該要求が指定した情報を入力として処理を開始する。
【０１２７】
（ステップ６０２）ＶＳ作成・削除処理部２０３は、子ＶＳ２２０のＶＳ管理構造体３００（つまり、作成する子ＶＳ２２０の識別子と親のＶＳ２２０の識別子の対応関係）を階層化管理情報２０１に登録する。
例えば、図３におけるＶＳ４（３００Ｃ）の子ＶＳ２２０として登録する場合、ＶＳ作成・削除処理部２０３は、３０１に子ＶＳ２２０の名前、３０２に親ＶＳ２２０として３００Ｃへのポインタ、３０３に兄弟ＶＳ２２０として３００Ｄへのポインタを設定する。次にＶＳ作成・削除処理部２０３は、３０３Ｆのポインタを子ＶＳ２２０のＶＳ管理構造体３００を指すポインタ（ローカルメモリ１０７中の子ＶＳ２２０のＶＳ管理構造体３００のアドレス）へと更新する。以上の処理をすることで、ＶＳ４（３００Ｃ）の子ＶＳ２２０として登録することができる。
【０１２８】
（ステップ６０３）ＶＳ作成・削除処理部２０３は、リソース管理情報２０２に子ＶＳ２２０のエントリを追加登録する処理である。
具体的には、ＶＳ作成・削除処理部２０３は、６０３は、リソース管理情報２０２に新規行を確保し、名前４０１の欄に子ＶＳ２２０の名前を書き込み、管理フラグ４０２の欄に管理ＶＳとするかどうかの情報を書き込む。
【０１２９】
（ステップ６０４）ＶＳ作成・削除処理部２０３は、子ＶＳ２２０にリソースを割り当てる処理を行うリソースの貸与処理である。詳細は図７で示す。
【０１３０】
（ステップ６０５）ＶＳ作成・削除処理部２０３は、ＶＳ２２０のデータ構造としてルーティングテーブル２２１、ファイルキャッシュ２２３、マウント情報２２４を作成する。なお、当該ステップで併せてファイル要求処理プログラム２２２をローカルメモリ１０７上にロードしてもよい。
【０１３１】
（ステップ６０６）ＶＳ作成・削除処理部２０３は、子ＶＳ２２０の作成が正常終了した結果を管理プログラム２３０へ返す。
【０１３２】
図７は、リソース貸与・回収処理部２０４によるリソース貸与処理の動作フローを示した図である。ＶＳ作成・削除処理部２０３は、下記（Ａ）（Ｂ）の契機で、以下の処理を実行する。
（Ａ）管理プログラム２３０から送信したリソース貸与要求を、ファイルサーバ１００が受信した場合。当該貸与要求は、貸与元のＶＳ２２０の識別子と、貸与先のＶＳ２２０の識別子と、貸与元のＶＳ２２０から貸与先のＶＳ２２０に貸与するリソースの一部の識別子を指定する。
（Ｂ）ＶＳ削除処理がリソース貸与処理を呼び出した場合。当該処理実行にあたっては図６で受信した要求で指定された情報を用いる。
【０１３３】
（ステップ７０１）ＶＳ作成・削除処理部２０３は、図６で受信した要求で指定された情報を受け取る。
【０１３４】
（ステップ７０２）ＶＳ作成・削除処理部２０３は、親ＶＳ２２０にＣＰＵ１０６を解放させ、解放完了を待つ。ステップ７０２の詳細は図１４で示す。
【０１３５】
（ステップ７０３）ＶＳ作成・削除処理部２０３は、親ＶＳ２２０にファイルキャッシュ２２３を解放させ、解放完了を待つ。ステップ７０３の詳細は図１５で示す。
【０１３６】
（ステップ７０４）ＶＳ作成・削除処理部２０３は、親ＶＳ２２０にＮＩＣ１０４を解放させ、解放完了を待つ。ステップ７０４の詳細は図１６で示す。
【０１３７】
（ステップ７０５）ＶＳ作成・削除処理部２０３は、親ＶＳ２２０にボリューム１３３を解放させ、解放完了を待つ。７０５の詳細は図１７で示す。
【０１３８】
（ステップ７０６）ＶＳ作成・削除処理部２０３は、リソース管理情報２０２に登録された、親ＶＳ２２０から子ＶＳ２２０に貸与するリソースの情報を親ＶＳ２２０のエントリから消去する。より具体的には、ＶＳ作成・削除処理部２０３は、親ＶＳ２２０の名前をキーとしてリソース管理情報２０２を検索し、親ＶＳ２２０のエントリから貸与するリソースを削除することで行うことが考えられる。
【０１３９】
（ステップ７０７）ＶＳ作成・削除処理部２０３は、子ＶＳ２２０に対応するエントリに対して、子ＶＳ２２０へ貸与するリソースの識別子を追加する。より具体的には、ＶＳ作成・削除処理部２０３は、子ＶＳ２２０の名前をキーとしてリソース管理情報２０２を検索し、子ＶＳ２２０のエントリに貸与するリソースを追加することが考えられる。
【０１４０】
（ステップ７０８）ＶＳ作成・削除処理部２０３は、リソース貸与処理が正常終了した結果を管理プログラム２３０へ返す。
【０１４１】
なお、上記説明では、親ＶＳ２２０が自身に貸与されたリソースを使用していることを前提として説明を行った。しかし、親ＶＳ２２０は貸与されたリソースの一部を使用しないでファイル共有サービスを提供していることもある（例えば、当初から子ＶＳ２２０に貸与することが明らかなリソースである場合）。その場合は各種開放処理のすべてまたは一部を省略してもよい。
【０１４２】
図８は、ＶＳ作成・削除処理部２０３によるＶＳ削除処理フローである。管理プログラム２３０から送信するＶＳ削除要求を、ファイルサーバ１００が受信することで、当該処理が動作する。なお、当該削除要求は、削除対象のＶＳ２２０の識別子を指定する。
【０１４３】
（ステップ８０１）ＶＳ作成・削除処理部２０３は、当該要求が指定した情報を入力として受け取る。
【０１４４】
（ステップ８０２）ＶＳ作成・削除処理部２０３は、削除対象のＶＳ２２０が管理ＶＳかどうか判定し、削除対象のＶＳ２２０が管理ＶＳ２２０でなければステップ８０４を実行し、削除対象のＶＳ２２０が管理ＶＳ２２０ならばステップ８０３を実行する。なお、判定に当たって、ＶＳ作成・削除処理部２０３は、削除対象のＶＳ２２０が管理ＶＳ２２０かどうか判定するために、８０２は、削除対象のＶＳ２２０の名前をキーとしてリソース管理情報２０２を引き、管理フラグ４０２を参照することが考えられる。
【０１４５】
（ステップ８０３）ＶＳ作成・削除処理部２０３は、削除対象のＶＳ２２０に子ＶＳ２２０が存在するか判定する。削除対象のＶＳ２２０に対応する子ＶＳ２２０が存在しなければステップ８０４を実行し、存在するのであれば、子ＶＳ２２０が存在するために削除できない旨のエラーを返すために、ステップ８０８を実行する。なお、ＶＳ作成・削除処理部２０３は、削除対象のＶＳ２２０に子ＶＳ２２０が存在するか判定するために、階層化管理情報２０１を削除対象のＶＳ２２０の名前を元に検索し（ポインタを辿り）、ｃｈｉｌｄ３０４にＶＳ管理構造３００へのポインタを持つかどうかで確かめる。ｃｈｉｌｄ３０４にＶＳ管理構造３００へのポインタがあれば、子ＶＳ２２０が存在していることになる。
【０１４６】
（ステップ８０４）ＶＳ作成・削除処理部２０３は、削除対象ＶＳ２２０のルーティングテーブル２２１、ファイルキャッシュ２２３、マウント情報２２４、ファイル要求処理プログラム２２２をローカルメモリ１０７上から削除（または当該情報が含まれるローカルメモリ上の領域を解放する）する。
【０１４７】
（ステップ８０５）ＶＳ作成・削除処理部２０３は、削除対象ＶＳ２２０のリソースを回収する。リソース回収処理の詳細は図９で示す。
【０１４８】
（ステップ８０６）ＶＳ作成・削除処理部２０３は、リソース管理情報２０２から削除対象ＶＳ２２０のエントリを削除する。具体的には、ＶＳ作成・削除処理部２０３は、削除対象ＶＳ２２０の名前をキーとしてリソース管理情報２０２引き、該当する行を削除することが考えられる。
【０１４９】
（ステップ８０７）ＶＳ作成・削除処理部２０３は、階層化管理情報２０１に登録された、削除対象のＶＳ２２０のＶＳ管理構造体３００を消去する。より具体的には、ＶＳ作成・削除処理部２０３は、削除対象のＶＳ２２０の名前をキーとして階層化管理情報２０１を検索し、削除対象のＶＳ２２０のＶＳ管理構造体３００を削除することが考えられる。
例えば、図３におけるＶＳ６（３００Ｄ）を削除する場合、８０７は、ＶＳ管理構造体３００Ｃのｃｈｉｌｄ３０４Ｃに格納しているポインタをＶＳ管理構造体３００Ｅへのポインタへと変更する。また８０７は、３００Ｆのｂｒｏｓ３０３Ｆに格納しているポインタをＶＳ管理構造体３００Ｅへのポインタへと変更する。また８０７は、ＶＳ管理構造体３００Ｄをローカルメモリ１０７上から削除する。以上の処理をすることで、削除対象のＶＳ６（３００Ｄ）を階層化管理情報２０１から削除することができる。
【０１５０】
（ステップ８０８）ＶＳ作成・削除処理部２０３は、所定の結果を管理プログラム２３０へ返す。なお、所定の結果とは当該ステップ実行前にステップ８０７を実行していた場合は所定の結果は子ＶＳ２２０の削除が正常終了した事を指し、当該ステップ実行前にステップ８０３を実行していた場合は所定の結果は子ＶＳ２２０が存在するために削除できないことを指す。
【０１５１】
以上、ＶＳ削除処理のフローを説明した。なお、上記説明では子ＶＳ２２０が存在する場合は削除を禁止する処理を行っているが、本処理を再帰的に実行することによって子ＶＳ２２０が存在するＶＳ２２０を削除するようにしてもよい。
【０１５２】
図９は、リソース貸与・回収処理部２０４によるリソース回収処理フローである。本処理は下記（Ａ）（Ｂ）の契機にて以下の処理を実行する。
（Ａ）管理プログラム２３０から送信したリソース回収要求を、ファイルサーバ１００が受信した場合。当該回収要求は、回収元のＶＳ２２０の識別子と、回収元のＶＳ２２０に貸与されたリソースの一部の識別子を指定する。
（Ｂ）ＶＳ削除処理がリソース回収処理を呼び出した場合。当該呼び出しの場合は削除対象のＶＳ２２０を回収対象のＶＳ２２０として、当該ＶＳ２２０に貸与した全てのリソースの識別子が伴う。
【０１５３】
（ステップ９０１）リソース貸与・回収処理部２０４は、各呼び出しまたは受信元から得た情報を元に、処理を開始する。
【０１５４】
（ステップ９０２）リソース貸与・回収処理部２０４は、回収対象のＶＳ２２０にＣＰＵ１０６を解放させ、解放完了を待つ。ステップ９０２の詳細は図１４で示す。
【０１５５】
（ステップ９０３）リソース貸与・回収処理部２０４は、回収対象のＶＳ２２０にファイルキャッシュ２２３を解放させ、解放完了を待つ。ステップ９０３の詳細は図１５で示す。
【０１５６】
（ステップ９０４）リソース貸与・回収処理部２０４は、回収対象のＶＳ２２０にＮＩＣ１０４を解放させ、解放完了を待つ。ステップ９０４の詳細は図１６で示す。
【０１５７】
（ステップ９０５）リソース貸与・回収処理部２０４は、回収対象のＶＳ２２０にボリューム１３３を解放させ、解放完了を待つ。ステップ９０５の詳細は図１７で示す。
【０１５８】
（ステップ９０６）リソース貸与・回収処理部２０４は、リソース管理情報２０２に登録された、回収対象のＶＳ２２０に貸与したリソースであって、指定されたリソースについての情報を回収対象ＶＳ２２０のエントリから消去する。より具体的には、当該処理は回収対象のＶＳ２２０の名前をキーとしてリソース管理情報２０２を検索し、回収対象ＶＳ２２０のエントリから指定されたリソースを削除する。
【０１５９】
（ステップ９０７）リソース貸与・回収処理部２０４は、回収対象のＶＳ２２０の親のＶＳ２２０に対応するエントリに対して、回収対象ＶＳ２２０から回収したリソースの識別子を追加する。より具体的には、当該処理は回収対象のＶＳ２２０の親ＶＳ２２０の名前をキーとしてリソース管理情報２０２を検索し、親ＶＳ２２０のエントリに回収したリソースを追加する。
【０１６０】
（ステップ９０８）リソース貸与・回収処理部２０４は、リソース回収処理が正常終了した結果を管理プログラム２３０または呼び出し元の処理へ返す。
【０１６１】
図１４は、リソース貸与・回収処理部２０４内のＣＰＵ回収フローである。なお、当該処理はリソース貸与処理フロー（図７）またはリソース回収処理フロー（図９）から呼び出される。
【０１６２】
（ステップ１４０１）リソース貸与・回収処理部２０４は、解放対象のＣＰＵ１０６を管理しているＶＳ２２０の名前と、解放するＣＰＵ１０６の識別子を入力として受け取り、処理を開始する。ただし、ＣＰＵ１０６の解放が不要の場合、１４０１には何も入力されない。なお、当該処理部の呼び出し元が図８の処理に起因する場合はＶＳ２２０の全てのＣＰＵ１０６を解放対象とし、リソース回収要求に起因する場合はＶＳ２２０の全てまたは一部のＣＰＵ１０６を解放対象とすることが典型である。
【０１６３】
（ステップ１４０２）リソース貸与・回収処理部２０４は、ＣＰＵ１０６の識別子が入力されたか判定し、ＣＰＵ１０６の識別子を受け取った場合はステップ１４０３を実行し、ＣＰＵ１０６の識別子を受け取らなかった場合はステップ１４０５を実行する。
【０１６４】
（ステップ１４０３）リソース貸与・回収処理部２０４は、ＣＰＵ１０６を管理しているＶＳ２２０がＣＰＵ１０６を使用中かどうか確認し、ＣＰＵ１０６を使用中ならばステップ１４０４を実行し、ＣＰＵ１０６を使用中でないならばステップ１４０５を実行する。
【０１６５】
（ステップ１４０４）リソース貸与・回収処理部２０４は、解放対象のＣＰＵ１０６で実行中のファイル要求処理プログラム２２２を代替のＣＰＵ１０６で実行するように変更する。代替のＣＰＵ１０６は、解放対象のＣＰＵ１０６を管理しているＶＳ２２０が管理している他のＣＰＵ１０６であり、リソース管理情報２０２を参照して決定する。
【０１６６】
（ステップ１４０５）リソース貸与・回収処理部２０４は、呼び出し元のリソース貸与処理フロー（図７）またはリソース回収処理フロー（図９）に正常終了を返す。
【０１６７】
図１５は、リソース貸与・回収処理部２０４内のファイルキャッシュ解放フローである。当該処理は、リソース貸与処理フロー（図７）またはリソース回収処理フロー（図９）から呼び出される。
【０１６８】
（ステップ１５０１）リソース貸与・回収処理部２０４は、解放対象のファイキャッシュ２２３を管理しているＶＳ２２０の名前と、ファイルキャッシュ２２３の新しい閾値を受け取り、処理を開始する。ただし、ファイルキャッシュ２２３の解放が不要の場合、１５０１には何も入力されない。なお、当該処理部の呼び出し元が図８の処理に起因する場合はＶＳ２２０に関するファイルキャッシュの全ての容量（または閾値）を解放対象とし、リソース回収要求に起因する場合はＶＳ２２０に関するファイルキャッシュの全てまたは一部の容量（または閾値）を解放対象とすることが典型である。
【０１６９】
（ステップ１５０２）リソース貸与・回収処理部２０４は、１５０２は、ファイルキャッシュ２２３の新閾値が入力されたか判定し、ファイルキャッシュ２２３の新閾値を受け取った場合はステップ１５０３を実行し、ファイルキャッシュ２２３の新閾値を受け取らなかった場合はステップ１５０６を実行する。
【０１７０】
（ステップ１５０３）リソース貸与・回収処理部２０４は、解放対象のファイルキャッシュ２２３を管理しているＶＳ２２０のファイル要求処理プログラム２２２が使用しているファイルキャッシュ２２３の現在の使用量が、入力で受け取った新閾値以上かどうか判定する。判定の結果、ファイル要求処理プログラム２２２が使用しているファイルキャッシュ２２３の現在の使用量が、入力で受け取った新閾値以上の場合はステップ１５０４を実行し、ファイル要求処理プログラム２２２が使用しているファイルキャッシュ２２３の現在の使用量が、入力で受け取った新閾値未満の場合はステップ１５０６を実行する。
【０１７１】
（ステップ１５０４）リソース貸与・回収処理部２０４は、ファイル要求処理プログラム２２２が使用しているファイルキャッシュ２２３の現在の使用量がリソース管理情報２０２に格納されたファイルキャッシュ２２３の閾値以上かどうか判定する。判定の結果、ファイル要求処理プログラム２２２が使用しているファイルキャッシュ２２３の現在の使用量がリソース管理情報２０２に格納されたファイルキャッシュ２２３の閾値以上だった場合はステップ１５０３を実行し、ファイル要求処理プログラム２２２が使用しているファイルキャッシュ２２３の現在の使用量がリソース管理情報２０２に格納されたファイルキャッシュ２２３の閾値未満だった場合はステップ１５０５を実行する。
【０１７２】
（ステップ１５０５）リソース貸与・回収処理部２０４は、１５０５は、リソース管理情報２０２に格納されたファイルキャッシュ２２３の閾値を現在の使用量の値へと更新し、１５０３を再度実行する。
【０１７３】
最後に１５０６は、呼び出し元のリソース貸与処理フロー（図７）またはリソース回収処理フロー（図９）に正常終了を返す。
【０１７４】
ファイルキャッシュ２２３はキャッシングアルゴリズムに従ってファイル要求処理プログラムが受領し、書き込んだライトデータをボリュームへ書き戻す。キャッシングアルゴリズムはファイルキャッシュの容量に対して所定の比率または所定の容量を差し引いた容量を元に計算を行うため、ステップ１５０３乃至ステップ１５０５のループを行うことで、ファイル要求処理プログラム２２２のファイルキャッシュ２２３の使用状況に合わせて、徐々にリソース管理情報２０２のファイルキャッシュ２２３の閾値を下げていき、最終的リソース管理情報２０２の閾値を新閾値に更新する。このようなキャッシングアルゴリズムと連携した多段階のキャッシュ容量削減は、クライアントの急激なアクセス性能劣化を回避できる結果、管理者は容易にファイルキャッシュ容量の削減指示を要求することができる。
【０１７５】
図１６は、リソース貸与・回収処理部２０４内のＮＩＣ解放フローである。当該処理は、リソース貸与処理フロー（図７）またはリソース回収処理フロー（図９）が１６０１乃至１６０４で示すＮＩＣ解放フローから呼び出される。
【０１７６】
（ステップ１６０１）リソース貸与・回収処理部２０４は、解放するＮＩＣ１０４を管理しているＶＳ２２０の名前と、解放するＮＩＣ１０４の識別子を入力として受け取り、処理を開始する。ただし、ＮＩＣ１０４の解放が不要の場合、１６０１には何も入力されない。なお、当該処理部の呼び出し元が図８の処理に起因する場合はＶＳ２２０に関するＮＩＣ１０４の全てを解放対象とし、リソース回収要求に起因する場合はＶＳ２２０に関するＮＩＣ１０４の全てまたは一部を解放対象とすることが典型である。
【０１７７】
（ステップ１６０２）リソース貸与・回収処理部２０４は、１６０２は、ＮＩＣ１０４の識別子が入力されたか判定し、ＮＩＣの識別子を受け取った場合はステップ１６０３を実行し、ＮＩＣ１０４の識別子を受け取らなかった場合はステップ１６０４を実行する。
【０１７８】
（ステップ１６０３）リソース貸与・回収処理部２０４は、ＮＩＣ１０４を管理しているＶＳ２２０がＮＩＣ１０４を使用中かどうか確認し、当該処理は、ＮＩＣ１０４を使用中ならば再度１６０３を実行し、ＮＩＣ１０４を使用中でないならばステップ１６０４を実行する。
【０１７９】
（ステップ１６０４）リソース貸与・回収処理部２０４は、呼び出し元のリソース貸与処理フロー（図７）またはリソース回収処理フロー（図９）に正常終了を返す。
【０１８０】
図１７は、リソース貸与・回収処理部２０４内のボリューム解放フローである。当該処理は、リソース貸与処理フロー（図７）またはリソース回収処理フロー（図９）が１７０１乃至１７０４で示すボリューム解放フローを呼び出す。
【０１８１】
（ステップ１７０１）リソース貸与・回収処理部２０４は、解放するボリューム１３３を管理しているＶＳ２２０の名前と、解放するボリューム１３３の識別子を入力として受け取り、処理を開始する。ただし、ボリューム１３３の解放が不要の場合、１７０１には何も入力されない。なお、当該処理部の呼び出し元が図８の処理に起因する場合はＶＳ２２０に関するボリュームの全ての容量（または閾値）を解放対象とし、リソース回収要求に起因する場合はＶＳ２２０に関するボリュームの全てまたは一部の容量（または閾値）を解放対象とすることが典型である。
【０１８２】
（ステップ１７０２）リソース貸与・回収処理部２０４は、１７０２は、解放するボリューム１３３の識別子が入力されたか判定し、ボリューム１３３の識別子を受け取った場合はステップ１７０３を実行し、ボリューム１３３の識別子を受け取らなかった場合はステップ１７０４を実行する。
【０１８３】
（ステップ１７０３）リソース貸与・回収処理部２０４は、ボリューム１３３を管理しているＶＳ２２０がボリューム１３３を使用中かどうか確認し、ボリューム１３３を使用中ならば再度ステップ１７０３を実行し、ボリューム１３３を使用中でないならばステップ１７０４を実行する。
【０１８４】
（ステップ１７０４）リソース貸与・回収処理部２０４は、呼び出し元のリソース貸与処理フロー（図７）またはリソース回収処理フロー（図９）に正常終了を返す。
【０１８５】
図１２は、管理計算機１２０上でＣＰＵ１２２が実行する管理プログラム２３０が管理画面１２５に表示するログインウィンドウ１２００である。
【０１８６】
ファイルサーバ１００やＶＳ２２０の管理者は、図１２に表示した画面によって認証対象のＶＳ２２０と、認証情報（ユーザー名、パスワード）を入力することで、管理プログラム２３０経由でのＶＳ２２０の作成・削除等が可能となる。
【０１８７】
ログインウィンドウ１２００は、３つの入力領域と１つのボタンを持つ。入力領域１２０１は、ログイン名を入力する領域である。入力領域１２０２は、パスワードを入力する領域である。入力領域１２０３は、認証対象のＶＳ２２０の識別子を入力する領域である。図１２の画面の操作者が、ログイン名１２０１とパスワード１２０２と管理対象ＶＳ２２０の識別子１２０３を入力した後、「ＯＫ」ボタン１２２０を押すと、管理プログラム２３０がアカウントの認証を行う。図１２の画面の操作者がファイルサーバ１００のシステム管理者、またはいずれかのＶＳ２２０の管理者として認証された場合、管理プログラム２３０は、図１３に示すＶＳ管理メニュー画面１３００を管理画面１２５に表示する。
【０１８８】
図１３のＶＳ管理メニュー画面１３００は、管理プログラム２３０が認証したログイン名を示す表示領域１３０１と、以下の４つのボタンを有する。
【０１８９】
（Ａ）ＶＳ作成ボタン１３１０は、管理者がＶＳ２２０を作成する指示をファイルサーバ１００に与えるためのボタンである。管理者がＶＳ作成ボタン１３１０を押すと、管理プログラム２３０は、親ＶＳ２２０の識別子と、子ＶＳ２２０の名前（識別子でもよい）と、子ＶＳ２２０を管理ＶＳとするかのフラグ情報と、管理ＶＳ２２０から分割するリソース情報（例えば、リソースの識別子やＣＰＵの場合は時分割に関係する設定情報やファイルキャッシュの場合は容量に関係する設定情報がある）の入力を可能とする。管理プログラム２３０は、管理者が入力した情報に基づき、子ＶＳ２２０の識別子と、フラグ情報と、分割するリソースの識別子と、親ＶＳ２２０の識別子（認証対象の管理ＶＳ２２０の識別子または認証対象の管理ＶＳ２２０が以前生成したＶＳ２２０の識別子）とを指定したＶＳ２２０の作成要求（以後、ＶＳ作成要求と呼ぶ）をＶＳ階層化プログラム２００に送信する。ＶＳ階層化プログラム２００は、リクエストに基づきＶＳ作成・削除処理部２０３を実行する。
【０１９０】
（Ｂ）ＶＳ削除ボタン１３２０は、管理者がＶＳ２２０を削除する指示をファイルサーバ１００に与えるためのボタンである。管理者がＶＳ削除ボタン１３２０を押すと、管理プログラム２３０は、管理者に対して削除対象のＶＳ２２０の指定を可能とする。管理プログラム２３０は、画面の操作者が入力した情報に基づき、削除対象のＶＳ２２０の識別子を指定したＶＳ削除要求をＶＳ階層化プログラム２００に送信する。ＶＳ階層化プログラム２００は、当該要求に基づきＶＳ作成・削除処理部２０３を実行する。
【０１９１】
（Ｃ）リソース貸与ボタン１３３０は、管理者がＶＳ２２０へリソースを追加する指示をファイルサーバ１００に与えるためのボタンである。管理者がリソース貸与ボタン１３３０を押すと、管理プログラム２３０は、管理者に対して、リソースの貸与元となる管理ＶＳ２２０と、リソースを貸与先となる子ＶＳ２２０との指定と、管理ＶＳ２２０から分割して子ＶＳ２２０に与えるリソース情報の入力を可能とする。なお、貸与するリソースは貸与元ＶＳ２２０のリソースの全てであってもよく、一部であってもよい。管理プログラム２３０は、画面の操作者が入力した情報に基づいて、子ＶＳ２２０の識別子と、リソース情報と、貸与元のＶＳ２２０として現在操作中の管理ＶＳ２２０の識別子とを指定したリソース貸与要求をＶＳ階層化プログラム２００に送信する。ＶＳ階層化プログラム２００は、リクエストに基づきリソース貸与・回収処理部２０４を実行する。
【０１９２】
（Ｄ）リソース回収ボタン１３４０は、管理者がＶＳ２２０のリソースを回収する指示をファイルサーバ１００に与えるためのボタンである。管理者がリソース回収ボタン１３４０を押すと、管理プログラム２３０は、管理者に対して、リソース回収対象のＶＳ２２０の指定と、リソース回収対象のＶＳ２２０から回収するリソースの入力を可能とする。なお、回収するリソースはリソース回収対象のＶＳ２２０のリソースの全てであってもよく、一部であってもよい。管理プログラム２３０は、管理者が入力した情報に基づき、リソース回収対象のＶＳ２２０の識別子と、リソース情報とを指定したリソース回収要求をＶＳ階層化プログラム２００に送信する。ＶＳ階層化プログラム２００は、リクエストに基づきリソース貸与・回収処理部２０４を実行する。
【０１９３】
管理画面１２５の一例として、画面の操作者がＶＳ作成ボタン１３１０を押し、ＶＳ２２０が管理するリソースを分割して子ＶＳ２２０を作成するときの管理画面１２５を図１０、図１１に示す。管理画面１２５は、ログインしている画面の操作者の認証結果に応じて異なる。
【０１９４】
システム管理者がＶＳ作成ボタン１３１０を押した場合、管理プログラム２３０は、図１０に示すＶＳ作成画面を管理画面１２５に表示する。
【０１９５】
また、ＶＳ１管理者がＶＳ作成ボタン１３１０を押した場合、管理プログラム２３０は、図１１に示すＶＳ作成画面を管理画面１２５に表示する。
【０１９６】
図１０は、ファイルサーバ１００のシステム管理者がＶＳ２２０を作成する場合、管理プログラム２３０が管理画面１２５に表示するＶＳ作成画面１０００である。ＶＳ作成画面１０００上部１０１１は、認証したユーザー名（図１０ではＡｄｍｉｎｉｓｔｒａｔｏｒ）を表示する。また、ＶＳ作成画面１０００は、１００１乃至１００４の４種類の入力項目を持つ。
【０１９７】
入力領域１００１は、新ＶＳ２２０の名前を入力するテキストボックスである。図１０は、ＶＳ８という名前の新ＶＳ２２０を作る例である。入力領域１００２は、新ＶＳ２２０を管理ＶＳ２２０とするか選択するチェックボックスである。システム管理者がチェックをつけた場合には、新ＶＳ２２０を管理ＶＳ２２０として作成する。
【０１９８】
画面１００３は、管理ＶＳ２２０を選択する画面である。管理者が１００３で管理ＶＳ２２０を選択すると、選択した管理ＶＳ２２０の子ＶＳ２２０として新ＶＳ２２０を作る。図１０の例では、ＶＳ３を選択している（１００５）。なお、ここで選択可能なＶＳ２２０は操作対象のＶＳ２２０自身と、操作対象ＶＳ２２０が作成したＶＳ２２０（さらには当該作成したＶＳ２２０が作成したＶＳ２２０（以後、操作対象ＶＳ２２０及び操作対象ＶＳ２２０が生成したＶＳ２２０がＶＳ２２０を生成する場合、「間接的に生成する」と呼ぶことがある。））である。また、１００３にファイルサーバ０、  ファイルサーバ１という複数の管理ＶＳツリーを示したように、管理プログラム２３０は、複数のファイルサーバ１００やサーバ計算機の管理ＶＳツリーを一括管理しても良い。
【０１９９】
なお、当該画面及びファイルサーバ１００の処理が、ログイン対象のＶＳ２２０とログイン対象のＶＳ２２０が生成したＶＳ２２０及とログイン対象のＶＳ２２０が間接的に生成したＶＳ２２０に対する設定変更のみを許可し、その他のＶＳ２２０に対する変更を抑制する理由は、ログイン対象のＶＳ２２０が管理していないリソースを用いているＶＳ２２０への操作を許すとセキュリティ上または性能上問題となるからである。また、当該抑制の方法としては以下の方法が考えられる。
（Ａ）画面には抑制対象のＶＳ２２０を表示するが、ＧＵＩで選択できないようにする。またはこれまで説明してきた要求に含まれている場合は当該要求を拒否する。
（Ｂ）図１０の画面のように選択可能項目に抑制対象のＶＳ２２０を表示しない。本方法は抑制対象のＶＳ２２０の親子関係を表示しない意味もあるため、セキュリティ上はより好適である。
【０２００】
画面１００４は、画面１００３で選択した管理ＶＳ２２０から新ＶＳ２２０へ分割して貸与するリソースを操作者が選択する画面である。図１０の例では、１００６にＣＰＵ、１００７にファイルキャッシュ量、１００９にＮＩＣ、１０１０にボリュームの４つのリソースを分割するための入力項目がある。１００６、  １００９、  １０１０においては、各リソースの内訳のうちチェックボックスにマークをつけたリソースを新しいＶＳ２２０のリソースとして分割する。１００７のファイルキャッシュ量の分割では、１００８に示す管理ＶＳ３が使用可能なファイルキャッシュ量（６４ＧＢ）から１００７のテキストボックスに入力した値（３２ＧＢ）を分割して新しいＶＳ２２０に与えることになる。
【０２０１】
システム管理者が「ＯＫ」ボタン１０２０を押すと、管理プログラム２３０は、画面１００１、画面１００２、画面１００３、画面１００４に入力した情報を元にＶＳ作成要求をＶＳ階層化管理プログラム２００に送信する。ＶＳ階層化管理プログラム２００は、ＶＳ作成・削除処理部２０３を実行し、受信した入力項目に基づきリソースを分割して新しいＶＳ２２０を作成する。一方、管理者が「Ｃａｎｃｅｌ」ボタン１０２１を押すと、管理プログラム２３０は、新しいＶＳ２２０の作成を中止し、ＶＳ作成ウィンドウ１０００を閉じる。
【０２０２】
なお、図４で説明したようにＣＰＵやファイルキャッシュは、管理ＶＳと共有しても良いリソースである。これらのリソースは、管理ＶＳ２２０のリソースを分割しなくとも新しいＶＳ２２０を作成することができる。
【０２０３】
図１１は、図１０と同じ状況において、ファイルサーバ１００のＶＳ１管理者がＶＳを作成するとき、管理プログラム２３０が管理画面１２５に表示するＶＳ作成ウィンドウ１１００である。ＶＳ作成ウィンドウ１１００上部１１１１は、ログインした管理者名（図１１ではＶＳ１−Ａｄｍｉｎｉｓｔｒａｔｏｒ）を表示する。図１０と図１１は、基本的な画面構成は同じである。しかし、管理プログラム２３０にログインした管理者の権限が異なるため、画面１００３と１１０３の管理ＶＳを選択する画面の表示情報に相違点がある。図１１では、ＶＳ１の管理者がＶＳ作成画面を呼び出しているため、管理プログラム２２０は、１１０３の管理ＶＳの選択対象として、ＶＳ１と、ＶＳ１の子ＶＳでかつ管理ＶＳであるＶＳ４しか表示しない。
【０２０４】
なお、上記説明では、アカウント認証を管理計算機１２０上にて実施する形態について説明を行った。しかし変形例として、アカウント認証の処理をファイルサーバ１００（例えばＶＳ階層化管理プログラム２００）にて実施することも考えられる。この場合、ＯＫボタンを押した時点で管理対象ＶＳ２２０の識別子と認証情報をファイルサーバに送信し、これら情報を受信したファイルサーバは自身がＶＳ２２０毎に管理している認証情報を比較し、その結果を管理プログラム２３０へ送信し、以後の要求送信の際は認証情報を付随させることで実現することが考えられる。ただし、本方法以外でも認証情報を用いたログインとその後の管理要求の送信元の認証ができるのであれば、代替してもよい。
【０２０５】
また、管理プログラム２３０は各種要求を送信することができれば、上記説明した画面以外を採用してもよい。
なお、上記処理と連動してファイル要求処理プログラム２２２Ａは、以下の処理を行う。
（Ａ）ＶＳ２２０が作成された場合。リソース管理情報２０２を参照することで、ファイル要求処理プログラム２２２Ａは、各リソースを用いてファイル共有サービスを処理するために起動及び初期化し、その後ファイル共有サービスに関するアクセスを受け付ける。
（Ｂ）ＶＳ２２０が削除された場合。ファイル要求処理プログラム２２２Ａは終了する。
（Ｃ）ＶＳ２２０に関係するリソースが増加または削減を検知した場合。ファイル要求処理プログラム２２２Ａは、リソース管理情報２０２を参照することで、各ＶＳ２２０がファイル共有サービス提供のために用いるリソースを変更し、当該サービスの提供を継続する。
【０２０６】
なお、上記説明によれば、例えば図５のＶＳ２２０Ｂが直接または間接的に生成元であるＶＳ２２０Ｄ、ＶＳ２２０Ｅ，ＶＳ２２０Ｇ、ＶＳ２２０Ｈ（子孫ＶＳ２２０と呼ぶ）のリソースを回収する場合、個々のＶＳ２２０を操作することでリソースの回収を実施することになるが、ＶＳ２２０の個数が多い場合は煩雑な操作となる。こうした課題に対応するために、特定のＶＳ２２０に対してリソース回収を指定することで自身に関するリソースと、子孫ＶＳ２２０に関するリソースとをまとめて回収するようおこなってもよい。なお、各ＶＳ２２０におけるリソースの回収比率は以下のような方法が考えられる。
（方法Ａ）現在割り当て済みのリソースの数及び量のＶＳ２２０間の比率を一定変動内に維持しつつ、リソース回収を行う。
（方法Ｂ）各ＶＳ２２０に対して同じ数及び量のリソースを回収する。
（方法Ｃ）各ＶＳ２２０について、定義された時点のリソース量（ディフォルト値）に戻すように回収する。
（方法Ｄ）各ＶＳ２２０における未使用のリソースを抽出し、まとめて回収する。
【０２０７】
以上、本発明によれば、複数の仮想サーバ２２０が動作するファイルサーバ１００において、階層化管理情報２０１、リソース管理情報２０２に基づき、ファイルサーバ１００内のリソース管理権限を複数の管理仮想サーバに貸与・回収が可能となる。
【図面の簡単な説明】
【０２０８】
【図１】本発明の実施例のハードウェア構成を示すブロック図である。
【図２】本発明の実施例のソフトウェア構成を示すブロック図である。
【図３】階層化管理情報である。
【図４】管理仮想サーバに与えられたリソースを管理するリソース管理情報である。
【図５】本発明の概要を示す模式図である。
【図６】仮想サーバの作成処理を示すフローチャートである。
【図７】リソースの貸与処理を示すフローチャートである。
【図８】仮想サーバの削除処理を示すフローチャートである。
【図９】リソースの回収処理を示すフローチャートである。
【図１０】システム管理者による仮想サーバを作成するときの管理画面の例である。
【図１１】ＶＳ１管理者による仮想サーバを作成するときの管理画面の例である。
【図１２】管理プログラムを使用するときのログイン画面の例である。
【図１３】管理プログラムの仮想サーバの管理メニューである。
【図１４】ＣＰＵの解放処理を示すフローチャートである。
【図１５】ファイルキャッシュの解放処理を示すフローチャートである。
【図１６】ＮＩＣの解放処理を示すフローチャートである。
【図１７】ボリュームの解放処理を示すフローチャートである。
【符号の説明】
【０２０９】
１００・・・ファイルサーバ
１１０・・・クライアント
１２０・・・管理計算機
１３０・・・ストレージ装置
１０４・・・ＮＩＣ
１０５・・・ＮＩＣ
１０６・・・ＣＰＵ
１０７・・・ローカルメモリ
１０８・・・アダプタ
【図１】
2010079468.tif 000003
【図２】
2010079468.tif 000004
【図３】
2010079468.tif 000005
【図４】
2010079468.tif 000006
【図５】
2010079468.tif 000007
【図６】
2010079468.tif 000008
【図７】
2010079468.tif 000009
【図８】
2010079468.tif 000010
【図９】
2010079468.tif 000011
【図１０】
2010079468.tif 000012
【図１１】
2010079468.tif 000013
【図１２】
2010079468.tif 000014
【図１３】
2010079468.tif 000015
【図１４】
2010079468.tif 000016
【図１５】
2010079468.tif 000017
【図１６】
2010079468.tif 000018
【図１７】
2010079468.tif 000019