(57)【要約】【課題】  複数のコンピュータがネットワークを経由し共通のストレージ装置に接続する形態において、ストレージ装置における各コンピュータが使用するソフトウェア共有を自動的に実現する。【解決手段】  ストレージ装置において、ユーザに固有の情報を格納するボリュームと、複数のユーザによって共有するソフトウェアを格納したボリュームを作成し、ユーザのソフトウェア利用状況に基づきこれらのボリュームを結合し、仮想的に一つの領域を構築しユーザに提供する。【選択図】  図２
2005301708.tif 000002
【特許請求の範囲】
【請求項１】
複数の計算機に接続され、
複数のディスク装置と、
制御部とを有し、
前記ディスク装置は複数のボリュームを有し、
前記複数のボリュームには、複数の使用者が使用するソフトウェアが格納されるボリューム（以下「共通ボリューム」）と、前記複数の使用者毎に対応付けられた、使用者ごとの固有情報を含むボリューム（以下「固有ボリューム」）が含まれ、
前記制御部は、
前記共通ボリュームと前記固有ボリュームとを用いて、前記複数の使用者毎に仮想的なボリューム（以下「仮想ボリューム」）を作成し、前記仮想ボリュームに対するデータの読み出しコマンドに基づいて、前記複数の使用者のうち前記読み出しコマンドの発信を指示した使用者（以下「第一のクライアント」）に対応する前記仮想ボリューム（以下「第一の仮想ボリューム」）に含まれる前記固有ボリュームまたは前記共通ボリュームからデータを読み出し、前記複数の計算機のうち、前記読み出しコマンドを発信した計算機に対してデータを送信することを特徴とする記憶装置。
【請求項２】
前記制御部は、
前記読み出しコマンドに基づいてデータを読み出す場合、前記第一の仮想ボリュームに含まれるボリュームのうち、前記固有ボリュームから優先して読み出すべきデータを検索することを特徴とする請求項１記載の記憶装置。
【請求項３】
前記制御部は、
前記仮想ボリュームに対するデータの書き込みコマンドに基づいて、前記複数の使用者のうち前記書き込みコマンドの発行を指示した使用者（以下「第二のクライアント」）に対応する前記仮想ボリューム（以下「第二の仮想ボリューム」）に含まれる前記固有ボリュームに前記書き込みコマンドに対応するデータを書き込むことを特徴とする記憶装置。
【請求項４】
前記制御部は、
前記書き込みコマンドに基づいてデータを書き込む場合、前記書き込みコマンドによって指示されるデータ書き込みの領域が前記第二の仮想ボリュームに含まれる前記共有ボリュームの領域であれば、前記共有ボリュームに格納されている前記書き込みコマンドの対象となるデータを前記第二の仮想ボリュームに含まれる前記固有ボリュームに複製し、前記複製したデータを前記書き込みコマンドに基づいて更新することを特徴とする請求項３記載の記憶装置。
【請求項５】
更にメモリを有し、
前記制御部は、前記書き込みコマンドに基づいて前記第二の仮想ボリュームに含まれる前記固有ボリュームへのデータの複製が発生した場合には、その複製されたデータが格納される場所についての情報（以下「第一の情報」）を、複製元のデータの格納場所の情報と対応付けて前記メモリに格納することを特徴とする請求項４記載の記憶装置。
【請求項６】
前記制御部は、
前記メモリに格納された前記第一の情報に前記第一のクライアントに関するデータの複製の情報が含まれる場合、前記読み出しコマンドを受信した際には、前記第一の仮想ボリュームに含まれるボリュームのうち、前記固有ボリュームに格納された情報を優先して読み出すことを特徴とする請求項５記載の記憶装置。
【請求項７】
前記メモリに、前記複数の使用者毎の前記仮想ボリューム、前記固有ボリューム及び前記共通ボリュームとの対応関係を示す情報（以下「第二の情報」）が含まれることを特徴とする請求項６記載の記憶装置。
【請求項８】
前記共有ボリュームには、前記計算機で使用されるオペレーティングシステムが格納されており、前記複数の計算機は、リモートブートを用いて前記オペレーティングシステムの情報を読み出して起動することを特徴とする請求項７記載の記憶装置。
【請求項９】
前記第二の情報には、前記第一のクライアント名、前記第一の仮想ボリュームの有する前記固有ボリューム名、前記第一のクライアントが利用するソフトウェア名、前記ソフトウェアが格納されている前記共通ボリューム名の対応関係を示す情報が格納されていることを特徴とする請求項８記載の記憶装置。
【請求項１０】
該記憶装置の使用者が追加される場合、前記制御部は、
前記複数のボリュームから新たに前記追加される使用者に対応する固有ボリュームを作成し、前記共通ボリュームのうち前記追加される使用者が使用するソフトウェアが格納されている前記共通ボリュームを選択し、前記作成された固有ボリューム及び前記選択された共通ボリュームとから前記追加された使用者に対応する仮想ボリュームを作成することを特徴とする請求項９記載の記憶装置。
【請求項１１】
該記憶装置の使用を中止する使用者が有る場合、前記制御部は、
前記使用を中止する使用者に対応する前記仮想ボリュームに含まれる前記固有ボリュームを削除し、前記第二の情報から前記使用を中止する使用者に対応する前記仮想ボリュームに関する情報を削除することを特徴とする請求項１０記載の記憶装置。
【請求項１２】
前記制御部は、前記複数のボリュームの何れかにソフトウェアが格納された場合、前記ソフトウェアが格納されたボリュームを新たな前記共通ボリュームとして前記第二の情報に登録することを特徴とする請求項１１記載の記憶装置。
【請求項１３】
前記複数の使用者のうちのいずれかから前記共通ボリュームに格納されているソフトウェアの使用を要求された場合、前記制御部は、前記要求されたソフトウェアが格納されている前記共通ボリュームを、前記要求を行った使用者に対応付けられている前記仮想ボリュームに対応付け、前記対応付けの情報を前記第二の情報に追加することを特徴とする請求項１２記載の記憶装置。
【請求項１４】
前記第二の情報には、前記複数の使用者各々の前記共通ボリュームに格納されているソフトウェアに関するライセンスの情報が含まれ、
前記要求を受けた場合、前記制御部は、前記要求を行った使用者に対して前記要求の対象となる前記ソフトウェアに関するライセンスの有無についての情報を要求し、前記要求を行った使用者から受信した前記ライセンスの有無についての情報と前記第二の情報に登録されたライセンスに関する情報に基づいて前記要求を行った使用者の前記ソフトウェアの使用の可否を判断することを特徴とする請求項１３記載の記憶装置。
【請求項１５】
前記複数の使用者のうちのいずれかが前記共通ボリュームに格納されているソフトウェアの使用を中止する場合、前記制御部は、前記第二の情報から、前記ソフトウェアの使用を中止する使用者に対応する前記仮想ボリュームと前記ソフトウェアが格納されている共通ボリュームとの対応関係についての情報を削除することを特徴とする請求項１４記載の記憶装置。
【請求項１６】
複数の計算機に接続され、
複数のディスク装置と、
制御部とを有し、
前記ディスク装置は複数のボリュームを有し、
前記複数のボリュームには、複数の使用者が使用するソフトウェアが格納されるボリューム（以下「共通ボリューム」）と、前記複数の使用者毎に対応付けられた、使用者ごとの固有情報を含むボリューム（以下「固有ボリューム」）が含まれ、
前記制御部は、
前記共通ボリュームと前記固有ボリュームとを用いて、前記複数の使用者毎に仮想的なボリューム（以下「仮想ボリューム」）を作成し、前記仮想ボリュームに対するデータの読み出しコマンドに基づいて、前記複数の使用者のうち前記読み出しコマンドの発信を指示した使用者（以下「クライアント」）に対応する前記仮想ボリューム（以下「第一の仮想ボリューム」）に含まれる前記固有ボリュームまたは前記共通ボリュームからデータを読み出し、前記複数の計算機のうち、前記読み出しコマンドを発信した計算機に対してデータを送信し、
前記制御部は、
前記読み出しコマンドに基づいてデータを読み出す場合、前記第一の仮想ボリュームに含まれるボリュームのうち、前記固有ボリュームから優先して読み出すべきデータを検索し、
前記制御部は、
前記仮想ボリュームに対するデータの書き込みコマンドに基づいて、前記複数の使用者のうち前記書き込みコマンドの発行を指示した使用者（以下「第二のクライアント」）に対応する前記仮想ボリューム（以下「第二の仮想ボリューム」）に含まれる前記固有ボリュームに前記書き込みコマンドに対応するデータを書き込み、
前記制御部は、
前記書き込みコマンドに基づいてデータを書き込む場合、前記書き込みコマンドによって指示されるデータ書き込みの領域が前記第二の仮想ボリュームに含まれる前記共有ボリュームであれば、前記共有ボリュームに格納されている前記書き込みコマンドの対象となるデータを前記第二の仮想ボリュームに含まれる前記固有ボリュームに複製し、前記複製したデータを前記書き込みコマンドに基づいて更新することを特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のクライアントからアクセスを受ける記憶装置におけるソフトウェアの管理方法に関する。
【背景技術】
【０００２】
企業などでは、複数の計算機（以下、「クライアントコンピュータ」）をネットワークで相互に接続した大規模な計算機システムが構築されている。このような計算機システムでは、各クライアントコンピュータで業務を遂行する際に使用する種々のデータやプログラムを提供するため、計算機システムが有するネットワークには記憶装置が接続されている。ここで記憶装置とは、多数のハードディスク装置を有する記憶装置システム等である。記憶装置は複数のクライアントコンピュータに共用される。又、クライアントコンピュータ毎に記憶装置が有する記憶領域が割り当てられている。各クライアントコンピュータのユーザは、自己に割り当てられた記憶領域を使用して、データやソフトウェア等の格納・読み出しを行う。
【０００３】
ネットワークに接続された記憶装置の使用方法の一つとして、リモートブートと呼ばれるクライアントコンピュータの起動方法がある。リモートブートでは、クライアントコンピュータの起動に必要なオペレーティングシステム、環境設定ファイルなどの各種ファイルやアプリケーションプログラムが、あらかじめ記憶装置の各ユーザ用の記憶領域に格納されている。各クライアントコンピュータは、ネットワークを介してこれらのファイルを記憶装置から読み出すことにより、自身を起動することができる。
【０００４】
リモートブートを利用することにより、クライアントコンピュータは、各種ファイル等を格納するための記憶装置（例えばハードディスク装置等）を備える必要がなくなる。さらに、クライアントコンピュータが利用するソフトウェア（ＯＳ、アプリケーションを含む）を、記憶装置において一元管理でき、クライアントコンピュータごとにアップデート、ウイルスチェックなどの作業をする必要がなくなる。
【０００５】
上述したリモートブートにおける共用ＯＳや共用アプリケーションに関する技術は、特許文献１に開示されている。
【０００６】
【特許文献１】特開２０００−２５９５８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし従来の技術では、１つの記憶装置で複数のクライアントコンピュータがＯＳやアプリケーションを共有したとしても、使用ライセンス情報、個人情報、各種環境設定情報等のソフトウェアの設定に関する情報は、記憶装置の管理者もしくは各クライアントコンピュータが手動で管理、設定しなければならず、管理が煩雑であった。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の一実施形態として記憶装置を以下の構成とする。記憶装置は、複数の使用者が共通して使用する共通ボリュームと、各使用者に固有のデータを含む固有ボリュームとを有する。記憶装置は、これらの共通ボリュームと固有ボリュームを結合し、仮想的なボリューム（仮想ボリューム）として各使用者に割り当てる。記憶装置は、共通ボリューム及び固有ボリュームについて、共通ボリュームに含まれているソフトウェアを利用する使用者と、その使用者が使用する固有ボリュームとの対応付けを管理し、固有ボリューム内に各ソフトウェアの設定情報を格納する。
【０００９】
使用者が使用する計算機から記憶装置へは、仮想ボリュームを指定してデータの読み出しコマンドが送信される。記憶装置は、上述の対応付けに基づき、読み出しコマンドで指定された仮想ボリュームに対応するデータを、使用者に対応する固有ボリュームまたは共通ボリュームから読み出す。使用者の識別は、計算機を特定するアドレス情報や、ユーザやその利用環境を特定するためのＩＤ情報によって行うことができる。
【００１０】
ソフトウェアを使用者が利用するために、記憶装置は、使用者ごとに対応するソフトウェアの設定情報を持つ。記憶装置は、各使用者に仮想ボリュームを割り当てる際、使用者が使用する計算機から共通ボリュームに対して発生するソフトウェア設定情報のデータ書き込みを、対応する使用者の固有ボリュームに振り替えるように仮想ボリュームの設定を行う。
【００１１】
また、記憶装置は、使用者から読み出し指定を受けたデータを検索するために、各ボリュームに検索順序を設け、階層化構造にする。具体的には、記憶装置は、読み出しコマンドを発した使用者に対応する固有ボリュームの検索を、ソフトウェアが格納されている共通ボリュームの検索よりも優先させる。
【００１２】
尚、各共通ボリュームには主に複数の使用者が共有するソフトウェアが格納されるが、必ずしも複数の使用者に共通して提供されるソフトウェアのみが格納される必要はなく、いずれかの使用者に固有のソフトウェア、もしくは複数の使用者に共通して使用するデータが混在していても構わない。
【００１３】
更に、記憶装置がソフトウェアのライセンスを管理しても良い。この場合共通ボリュームには、ソフトウェアをソフトウェア提供者の規定するライセンス基準に基づいた単位で格納することが望ましい。
【発明の効果】
【００１４】
本発明によれば、記憶装置のデータ容量を軽減するとともに、記憶装置の管理者による使用アプリケーションの増減、バージョン管理、ウイルスチェック等の作業負荷を軽減することができる。また、適正な（ユーザのPC利用形態に見合った）ライセンス管理が可能になる
【発明を実施するための最良の形態】
【００１５】
図１は、第一の実施形態の計算機システムの構成例を示す図である。計算機システムは、記憶装置（以下「ストレージ装置」とも言う）２００と複数の計算機を有する。ストレージ装置２００は、複数の計算機１００とネットワークを介して相互に接続されている。ここでネットワークとしては、ＬＡＮ、イントラネット、インターネットなどを適用することができる。尚、本実施形態では、ネットワークで使用されるプロトコルとしてＩＰを想定しているが、それ以外のプロトコルでも良い。
【００１６】
ストレージ装置２００は、ＣＰＵ２０１、メモリ２０２、ＲＯＭ２０３、ネットワークインターフェースカード（以下「ＮＩＣ」とも言う）２０４、入出力部（以下「Ｉ／Ｏ」とも言う）２０５及びディスク装置２１０を有する。これら各部は、バスやスイッチ等で相互に接続されている。ストレージ装置２００は、ディスク装置２１０に蓄積されたデータを各計算機１００に提供する。また、各計算機１００はディスク装置２１０にデータを格納する。ＮＩＣ２０４は、ストレージ装置２００がネットワークを介してデータを授受するためのインターフェースである。Ｉ／Ｏ２０５は、入出力装置（例えばキーボード、マウス、ディスプレイ等）用と接続するためのインターフェースである。
【００１７】
ディスク装置２１０は一つ又は複数のディスク装置から構成される。ディスク装置２１０は、冗長度を持ったＲＡＩＤ構成であっても良い。この場合、ＣＰＵ２０１がＲＡＩＤの制御を行う。又、ストレージ装置２００は、ディスク装置２１０が有する物理的な記憶領域から論理的な記憶領域（以下「ボリューム」）を作成する。計算機１００は、一般的にはボリュームを単位としてストレージ装置２００を使用する。
【００１８】
ストレージ装置２００では、ＣＰＵ２０１が、ディスク装置２１０およびＲＯＭ２０３に記憶された制御用のプログラムに従って、データの授受を制御する。メモリ２０２は、このプログラムの動作時に使用される記憶媒体である。尚、ストレージ装置２００において、ディスク装置２１０以外の各部を一つにまとめて制御部としても良い。この場合、制御部は、計算機１００と接続されるインターフェース、ディスク装置２１０と接続されるインターフェース及び制御用のプロセッサ、メモリ等を有する。
【００１９】
本実施形態では、計算機１００は、ディスク装置を有さないディスクレスコンピュータである。尚、計算機１００は、ディスク装置を有する通常の計算機でもかまわない。計算機１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＮＩＣ１０４およびＩ／Ｏ１０５を有する。計算機１００は、起動時には、必要なオペレーティングシステム（以下「ＯＳ」とも言う）などのファイルをストレージ装置２００から読み込むことで、リモートブートする。ＲＯＭ１０３には、リモートブート用のプログラムがあらかじめ記憶されている。
【００２０】
図２は、本実施形態におけるデータの格納および読み出しを模式的に示す図である。ここでは、２台の計算機１００ａ、１００ｂがストレージ装置２００に接続されている。尚、ここでの計算機１００ａ、１００ｂとは、単にハードウェアとしての計算機というだけでなく、その計算機を使用する使用者（以下「ユーザ」とも言う）が、あるソフトウェアを使用する権利（以下「ライセンス」とも言う）に基づいてその計算機で実行されるソフトウェア（ＯＳを含む）を使用している状態を意味する。そこで、この状態の計算機１００を「クライアント１００」と表記する。尚、クライアント１００ａを使用するユーザをユーザ１、クライアント１００ｂを使用するユーザをユーザ２とする。
【００２１】
ストレージ装置２００では、クライアント１００ａ、１００ｂのそれぞれに対応する仮想ボリュームＶＤａ、ＶＤｂが定義されている。仮想ボリュームＶＤａ、ＶＤｂとは、ストレージ装置２００のディスク装置２１０内に設けられた物理的な記憶領域ではなく、各ユーザのデータを管理するために各ユーザに割り当てられた論理的な記憶領域を意味する。仮想ボリュームＶＤは、一つ又は複数のボリューム（以下「ボリュームＰＤ」）から構成される。
【００２２】
ディスク装置２１０が有するボリュームＰＤには、クライアント１００ａ、１００ｂのそれぞれに固有に割り当てられるボリューム（以下「固有ボリューム」）ＰＤＵａ、ＰＤＵｂが定義されている。また、両者が共通して使用するボリューム（以下「共通ボリューム」）ＰＤＣが定義されている。尚、本実施形態では共通ボリュームＰＤＣは５つあるとして説明するが、実際は幾つでも構わない。
【００２３】
ＰＤＣ１〜ＰＤＣ５には、両者が共通して使用することのできるソフトウェアが格納されている。本実施形態では、共通ボリュームＰＤＣにおいて、ＰＤＣ１にはオペレーティングシステム（以下ＯＳ）１、ＰＤＣ２にはＯＳ２、ＰＤＣ３にはアプリケーション（以下ＡＰ）１、ＰＤＣ４にはＡＰ２、ＰＤＣ５にはＡＰ３が格納されているものとする。そして、ＶＤａは、固有ボリュームＰＤＵａと共通ボリュームＰＤＣと対応付けられる。ＶＤｂは、固有ボリュームＰＤＵｂと共通ボリュームＰＤＣと対応付けられる。
【００２４】
クライアント１００は、リモートブート時など種々のタイミングで、仮想ボリュームＶＤを指定してデータの読み出し要求をストレージ装置２００に送信する。ストレージ装置２００は、読み出しコマンドで指定された仮想ボリュームＶＤに対応するデータを、固有ボリュームＰＤＵ又は共通ボリュームＰＤＣから選択して読み出し、クライアント１００に返信する。
【００２５】
図３は、仮想ボリュームＶＤを対応するボリュームＰＤから構築するための、ストレージ装置２００におけるボリューム管理部２２０の構成例を示す図である。尚、ボリューム管理部２２０は、専用のハードウェアとして実現されていても良く、あるいはストレージ装置２００のＣＰＵ２０１又は制御部で実行されるプログラムとして実現されていても良い。専用のハードウェアとして実現される場合には、図１のストレージ装置２００の構成に、ボリューム管理部２２０が追加される。
【００２６】
ボリューム管理部２２０は、仮想ボリューム管理部２２２、読み出し制御部２２３、書き込み制御部２２４、ボリューム管理テーブル２２１及びデータアドレス管理テーブル２２５を有する。尚、ボリューム管理部２２０がプログラムである場合、仮想ボリューム管理部２２２、読み出し制御部２２３及び書き込み制御部２２４はボリューム管理部２２０のサブプログラムとなる。又この場合、ボリューム管理テーブル２２１及びデータアドレス管理テーブル２２５は、メモリ２０２に格納される。
【００２７】
ボリューム管理テーブル２２１には、仮想ボリュームＶＤとクライアント１００が使用するボリュームとの対応関係を示す情報が格納されている。又、データアドレス管理テーブル２２５には、各ボリュームのストレージ装置２００におけるアドレス情報であって、共通ボリュームＰＤＣへのアクセスより優先される固有ボリュームＰＤＵのアドレス情報がユーザ単位で登録されている。
【００２８】
クライアント１００ａに割り当てられる仮想ボリュームＶＤａは、ボリューム管理部２２０内の仮想ボリューム管理部２２２によって構築される。クライアント１００ａが起動すると、仮想ボリューム管理部２２２は、起動したクライアント１００ａの識別情報（ＭＡＣアドレス、ＩＰアドレス、ＵＩＤ等）を取得する。そして、仮想ボリューム管理部２２２は、取得した識別情報で特定されるクライアント１００とストレージ装置２００内のボリュームの関連付けの情報をボリューム管理テーブル２２１から取得する。具体的には、仮想ボリューム管理部２２２は、ボリューム管理テーブル２２１から、対象のボリュームＰＤ名（ここではＰＤＵａ、ＰＤＣ１、ＰＤＣ３とする）及びそのボリュームの属性（共通か固有か）の情報を取得する。そして、取得した情報を用いて、仮想ボリューム管理部２２２は、仮想ボリュームＶＤａを構築する。
【００２９】
実際には、仮想ボリューム管理部２２０は、受信した情報を用いて、仮想ボリュームにおける論理アドレス値とストレージ装置２００内でのボリュームを管理するアドレス値のリンク処理（ポインタ処理）を施す。これにより、複数のボリュームＰＤから一つの仮想ボリュームが構築される。
【００３０】
本実施形態においては、読み出し制御部２２３は、仮想ボリュームＶＤに対応するボリュームＰＤからデータを読み出す際に所定のルールに従う。ここで所定のルールとは、クライアント１００が仮想ボリュームＶＤにおいてデータを検索する（読み出す）際に、その仮想ボリュームＶＤに対応するボリュームＰＤの内、固有ボリュームＰＤＵａを共通ボリュームＰＤＣ１及びＰＤＣ３よりも優先して検索するというルールである。これにより、ストレージ装置２００が、アプリケーションやＯＳにおけるクライアント固有の設定情報等を優先的に検索することが出来る（すなわち、誰も使用していないデフォルトの設定情報を、既に設定情報を有するクライアントに示すことが無い）。尚、読み出し制御部２２３は、優先して検索を行う固有ボリュームＰＤＵのアドレスの値を仮想ボリューム管理部２２２に通知する。
【００３１】
また書き込み制御部２２４も、上述したようなルールに従う。すなわち、クライアント１００ａから仮想ボリュームＶＤａに割り当てられている共通ボリュームＰＤＣ１、ＰＤＣ３に該当するデータ領域への書き込み要求を、固有ボリュームＰＤＵａに振り替えて実行するというルールである。この際、書き込み制御部２２４は、振り替え先のアドレス値を仮想ボリューム管理部２２２に通知する。読み出し制御部２２３及び書き込み制御部２２４から仮想ボリューム管理部２２２に通知された各アドレスは、データアドレス管理テーブル２２５に記載される。
【００３２】
図４は、ボリューム管理テーブル２２１の構成例を示す図である。ボリューム管理テーブル２２１には、ユーザの共通ボリュームＰＤＣ内ソフトウェアの利用状況を示す情報が登録される。又、上述したように、ボリューム管理テーブル２２１には、ユーザのソフトウェアの使用状況と共に、仮想ボリュームＶＤ、共通ボリュームＰＤＣ及び固有ボリュームＰＤＵとの対応関係の情報も登録される。
【００３３】
ここで定義されているユーザは、クライアント１００のＭＡＣアドレスを用いて識別される。しかし、他の方法（例えばＩＰアドレス等）を用いてストレージ装置２００がクライアント１００を認識しても良い。尚、一つの計算機１００を複数のユーザが共用する場合、ストレージ装置２００は、計算機１００に振られた識別情報とユーザに振られたＩＤとの組み合わせでクライアント１００を識別する。又、本実施形態では、ユーザ、クライアント１００、仮想ボリュームＶＤ及びボリュームを一対一で対応付けている。しかし、この対応関係は、各ソフトウェアのライセンス基準に即して、適宜変更（例えば、複数のユーザが一つの仮想ボリュームを使用等）することができる。
【００３４】
又、後述するように、ボリューム管理テーブル２２１には、個々のクライアントの個々のアプリケーションに関するライセンスの情報が登録されても良い。この場合、登録される情報として、個々のクライアントの個々のアプリケーションに対するライセンスの有無、ライセンスの内容、ライセンスキーの情報、ライセンス取得の状況等が考えられる。ストレージ装置２００は、この情報を用いて、各クライアントのアプリケーションの使用の可否を判断する。
【００３５】
また、ボリューム管理テーブル２２１の内容は、ストレージ装置２００を含む計算機システムの管理者（以下「管理者」）が主に設定する。具体的な更新方法は後述する。本図においては、ユーザ１はＯＳ１、ＡＰ１、ＡＰ３のソフトウェアを利用し、ユーザ２はＯＳ２、ＡＰ２、ＡＰ３のソフトウェア利用することを示している。またボリューム管理テーブル２２１では、共有されるソフトウェアの格納されている共有ボリューム名と、各クライアントに割り当てられた固有ボリューム名も対応付けて管理されている。
【００３６】
ストレージ装置２００はボリューム管理テーブル２２１を参照し、共通ボリュームＰＤＣからクライアント１００に割り当てられるべき共通ボリュームを選択する。従って、本図の情報に基づけば、クライアント１００ａに割り当てられる仮想ボリュームＶＤａは、固有ボリュームＰＤＵａ、共通ボリュームＰＤＣ１、ＰＤＣ３及びＰＤＣ５と対応付けられ、クライアント１００ｂに割り当てられる仮想ボリュームＶＤｂは、固有ボリュームＰＤＵｂ、共通ボリュームＰＤＣ１、ＰＤＣ４及びＰＤＣ５と対応付けられる。
【００３７】
図５は、各ユーザに割り当てられた仮想ボリュームＶＤと、ストレージ装置２００が有する固有ボリュームＰＤＵ及び共通ボリュームＰＤＣとの対応関係を模式的に示す図である。図の左側には、ストレージ装置２００で管理される仮想ボリュームＶＤａ、ＶＤｂに格納される内容を示し、右側には固有ボリュームＰＤＵａ、ＰＤＵｂ、および共通ボリュームＰＤＣ１〜ＰＤＣ５に格納される内容を示している。
【００３８】
上記のようにストレージ装置２００が有するボリュームをユーザに割り当てることにより、クライアント１００ａに割り当てられる仮想ボリュームＶＤａに格納されている内容のうち、個人ファイル群ａは固有ボリュームＰＤＵａに、ＯＳ１は共通ボリュームＰＤＣ１に、ＡＰ１は共通ボリュームＰＤＣ３に、ＡＰ３は共通ボリュームＰＤＣ５に実際には格納される。またクライアント１００ｂにおいても同様に、仮想ボリュームＶＤｂに格納されている内容は、各々該当する固有ボリュームＰＤＵｂ、共通ボリュームＰＤＣに格納される。
【００３９】
また本実施形態では、上述したように、書き込み要求が共通ボリュームＰＤＣに格納されるファイルの改変要求だった場合、データアドレス管理テーブル２２５に登録されている情報に基づいて、書き込み制御部２２４が、対象のファイルを固有ボリュームＰＤＵａに複製し、複製したファイルの内容を改変要求に基づいて更新する処理を行い、書き出し先のアドレス（複製されたファイルへアクセスするためのアドレス）を仮想ボリューム管理部２２２に通知する。
【００４０】
図９は、データアドレス管理テーブル２２５の構成例を示す図である。本図はユーザ１の利用する仮想ボリュームＶＤａに割り当てられるデータアドレスの管理内容を例示している。尚、本実施形態ではデータアドレス管理テーブル２２５は仮想ボリュームＶＤ毎、すなわちユーザ毎に存在する。ただし、これらユーザ毎のテーブルを一つのテーブルにまとめても良い。
【００４１】
ここで、ファイル１は共通ボリュームＰＤＣ１内のアドレス００３にあった共有ファイルが、ユーザ１によって書き換えられ、固有ボリュームＰＤＵａ内のアドレス００１に振り替えられ書き込まれたことを示している。つまり、格納データ領域が書き込み先領域にリンク（ポインタ）処理されていることを示している。ファイル２は共通ボリュームＰＤＣ３内のアドレス００２にあり改変されず、共有されていることを示している。ファイル３はユーザ１によって新規作成されたファイルが固有ボリュームＰＤＵｂ内のアドレス０２４に格納されていることを示している。ファイル４は、ユーザ１によって新規作成された固有ボリュームＰＤＵａ内のアドレス０２４のものが、ユーザ１によって改変され同アドレスに格納されたことを示している。又、ファイル５においては読み出し先のデータアドレスが記述されていないが、これは前にユーザ１の仮想ボリュームＶＤａに割り当てられていた共有ボリュームＰＤＣ１内のアドレス０１２のファイルが、ユーザ１によって削除され、仮想ボリュームＶＤａと共有ボリュームＰＤＣ１間のリンク（ポインタ）処理が解除されたことを図示しているものである。この共通ボリューム内のデータに対する削除処理については、後に詳述する。
【００４２】
尚、複数のユーザによって同じファイルが書き換えられる場合、ユーザ毎のデータアドレス管理テーブル２２５において、固有ボリュームＰＤＵにおけるファイルのアドレスの情報が管理される。
【００４３】
図８は、仮想ボリューム管理部２２２及び書き込み制御部２２４の処理手順例を示すフローチャートである。
クライアント１００からデータ書き込みコマンドを受信（ステップ００８）した仮想ボリューム管理部２２２は、クライアント１００に対応する仮想ボリュームＶＤにおいて、対象ファイルの格納場所を検索する。ここで、仮想ボリューム管理部２２２は、検索するボリュームの順序（以下「ボリューム順序」）を、データアドレス管理テーブル２２５の情報に基づいて、共通ボリュームよりも固有ボリュームを優先させる（ステップ００９）。仮想ボリューム管理部２２２から検索するボリューム順序及び書き込みコマンドを受信した書き込み制御部２２４は、まずボリューム順序１である固有ボリュームで書き込み対象となるファイルの格納場所を検索する（ステップ０１０）。
【００４４】
対象ファイルが見つかった場合、書き込み制御部２２４は、データの書き込みを行う（ステップ０１３）。ステップ０１０において固有ボリュームで対象ファイルの格納場所が発見されなかった場合、書き込み制御部２２４は、ボリューム順序２の共通ボリュームにおいて、書き込みコマンドの対象ファイルの格納場所を検索する（ステップ０１１）。ステップ０１１で共通ボリュームにおいても対象ファイルの格納場所が発見されなかった場合、そのファイルは新規作成ファイルであるので、書き込み制御部２２４は、書き込みコマンドに従って、データを固有ボリュームに格納する。この際仮想ボリューム管理部２２２は、データアドレス管理テーブル２２５の内容を更新する（ステップ０１３）。
【００４５】
一方、ステップ０１１において共通ボリューム書き込みコマンドの対象ボリュームが発見された場合は、書き込み制御部２２４は、発見された対象ファイルを共通ボリュームから固有ボリュームに複製し、複製したファイルの内容を更新する。尚、この際仮想ボリューム管理部２２２は、データアドレス管理テーブル２２５の内容を更新する（ステップ０１３）。このように、クライアント１００ａからの書き込みは必ず対応するユーザ１の固有ボリュームＰＤＵに書き込まれ、共通ボリュームＰＤＣの内容は変更されずに保たれる。
【００４６】
尚、上述した書き込み制御部２２４によって共通ボリュームＰＤＣから固有ボリュームＰＤＵに振り替えて格納されるファイルは、主にソフトウェアのユーザに対する設定情報として使用されているものである。従って、クライアント１００ａが利用する固有ボリュームＰＤＵａには、ユーザ１の個人ファイル群ａのほか、ソフトウェアの設定情報ＯＳ１’ａ、ＡＰ１’ａ、ＡＰ３’ａが格納される。
【００４７】
また、上述したように、読み出し制御部２２３によって、データが読み出されるボリュームには優先順序が設けられている。
図７は、仮想ボリューム管理部及び読み出し制御部２２３の処理内容を示すフローチャートである。まずクライアント１００からデータ読み出しコマンドがストレージ装置２００に送信される（ステップ００１）と、仮想ボリューム管理部２２２は、クライアント１００に対応する仮想ボリュームをボリューム管理テーブル２２１に基づいて確認する。そして仮想ボリューム管理部２２２は、データアドレス管理テーブル２２５に登録されている情報から、読み出し対象の検索順序を確認する。ここでデータアドレス管理テーブル２２５には、優先すべきアドレス（上述したように固有ボリュームのアドレスに該当する）の情報が格納されているので、仮想ボリューム管理部２２２は、クライアント１００に対応する仮想ボリュームのうち、固有ボリュームを共通ボリュームよりも優先させて読み出しを行うというボリューム順の指示を読み出し制御部２２３に送信する。（ステップ００２）。
【００４８】
仮想ボリューム管理部２２２からの指示を受けた読み出し制御部２２３は、まずボリューム順序１である固有ボリュームから対象のファイルを検索する（ステップ００３）。検索対象のデータを発見した場合、読み出し制御部２２３は、対象ファイルを読み出してクライアント１００に送信する（ステップ００４）。クライアント１００は対象のデータを受信する（ステップ００５）。
【００４９】
一方、ステップ００３で対象のファイルがボリューム順序１の固有ボリュームで発見されなかった場合、読み出し制御部２２３は、ボリューム順序２である共通ボリュームにおいて対象となるファイルを検索し、対象ファイルを読み出してクライアント１００に送信する（ステップ００６）。クライアント１００はそのファイルを受信する（ステップ００７）。
【００５０】
上述したように、読み出し制御部２２３は、仮想ボリュームとして読み出すデータは各固有ボリュームを優先とするため、例えば仮想ボリュームＶＤａに割り当てられるＯＳ１の設定情報は、固有ボリュームＰＤＵａに格納されているＯＳ１’ａとなり、共通ボリュームＰＤＣ１内のＯＳ１’は割り当てられない。このように、クライアント１００ａの仮想ボリュームＶＤａには、ユーザ１の個人ファイル群ａ、ＯＳ１、ＯＳ１’ａ、ＡＰ１、ＡＰ１’ａ、ＡＰ３、ＡＰ３’ａが割り当てられ、同様に、クライアント１００ｂの仮想ボリュームＶＤｂには、ユーザ２の個人ファイル群ｂ、ＯＳ１、ＯＳ１’ｂ、ＡＰ２、ＡＰ２’ｂ、ＡＰ３、ＡＰ３’ｂが割り当てられる。
【００５１】
以下、本実施形態におけるアプリケーション等のソフトウェアのインストールについて説明する。ソフトウェアのインストールの処理は、通常、ＣＤ−ＲＯＭなどの可搬記憶媒体（以下「インストールディスク」とも言う）にインストールするソフトウェアのデータを圧縮形式で保存しておき、計算機がインストーラーというプログラムを起動することで、データの解凍、編集、新規作成等を一括して行いインストール先のストレージ装置に書き込む仕組みとなっている。
【００５２】
しかし本実施形態では、ソフトウェアを複数のユーザで共有可能な状態にするために、管理者が、共通ボリュームＰＤＣにあらかじめ対象となるソフトウェアをインストール（以下「プリインストール」とも言う）する。又、ストレージ装置２００は、プリインストールされたソフトウェアを複数ユーザに共有させるためのインストーラーを有する。プリインストール終了後、各クライアント１００は、管理者（又はストレージ装置２００）に新しいアプリケーション等の使用要求を送信するだけで、そのアプリケーションを使用することが出来るようになる。以下、プリインストール及びクライアント１００のアプリケーションの新規使用の方法について説明する。
【００５３】
ソフトウェアを共通ボリュームＰＤＣへプリインストールする段階で必要な処理は、インストールされるソフトウェアを構成するデータ（以下「インストールデータ」とも言う）の解凍である。何故ならば、上述したように、インストールデータは圧縮されている状態で提供されるため、このままの状態では複数のユーザでデータを共有することもソフトウェアを稼動することもできないからである。最も簡単な解凍方法は、まず記憶装置を有する計算機でインストールディスクを用いてインストールを行ってソフトウェアを解凍し、記憶装置にインストールデータを格納する。そして、そのインストールデータを共通ボリュームＰＤＣにネットワーク等を介してコピーするという方法である。
【００５４】
図１５は、ソフトウェアをストレージ装置２００にプリインストールする場合の処理手順例を示した図である。まず管理者は、各ユーザへ供給する新たなソフトウェア（以下「新規ソフトウェア」）を決定し、ストレージ装置２００に新規ソフトウェア用の共通ボリュームＰＤＣの作成を指示する。指示を受けたストレージ装置２００は、新規ソフトウェア用の共通ボリュームＰＤＣを、自己のボリューム群から選択する（ステップ００２５）。共通ボリュームＰＤＣを選択したストレージ装置２００は、ボリューム管理テーブル２２１に、新規ソフトウェアの欄を追加する（ステップ００２６）。その後、管理者は、新規ソフトウェアを、選択された共通ボリュームＰＤＣにプリインストールする（ステップ００２７）。
【００５５】
次に、本実施形態において、ストレージ装置２００で新規にソフトウェアをユーザに供給する処理手順を説明する。例として、共通ボリュームＰＤＣ３に格納されているＡＰ１を、共通ボリュームＰＤＣ１に格納されているＯＳ１を使用しているユーザ１に割り当てる場合を説明する。言うまでもないが、この際、ＡＰ１は既にプリインストール済みである。
【００５６】
クライアント１００ａにＯＳ１のみが割り当てられている状態において、クライアント１００ａが利用するＶＤａには、共通ボリュームＰＤＣ１内のＯＳ１と、固有ボリュームＰＤＵａ内のクライアント１００ａ用に変更されたＯＳ１の設定情報ＯＳ１’ａが割り当てられている。
【００５７】
まず、管理者等（又はストレージ装置２００）が、あらかじめ各計算機１００に、ストレージ装置２００に格納されているボリューム管理テーブル２２１から、インストール可能なソフトウェア（ボリューム）の一覧をソフトウェア管理テーブル２２６という形で配布する（図６）。配布方法としては、例えばストレージ装置２００がボリューム管理テーブル２２１の内容を用いてソフトウェア管理テーブル２２６を作成し、計算機１００の起動時（或いは新しい計算機の追加時、ストレージ装置２００に格納されるアプリケーションの構成が変更された時等）に計算機１００にネットワークを介して送信する。
【００５８】
尚、管理者等（又はストレージ装置２００）は、各クライアントにソフトウェア管理テーブル２２６を配布する際、ボリューム管理テーブル２２１に登録されているライセンスの情報に基づいて、配布相手のクライアントがどのアプリケーションに対してどのようなライセンスを有するかどうかの情報を付加して配布しても良い。例えば図６においては、クライアント１００ａは、ＯＳ２についてはライセンス取得中であり、ＡＰ２においてはライセンスがない。したがって、クライアント１００ａは、この様な情報を用いて、クライアント自身がライセンスを取得する必要があるかどうかを確認した上で、アプリケーションの使用を管理者等に連絡することができる。
【００５９】
ユーザ１は、通知されたソフトウェア管理テーブル２２６の内容を確認して、使用したいアプリケーションを選択する。そして、例えば、ユーザ１が計算機１００ａを用いてＡＰ１を利用したい場合、その旨をストレージ装置２００に通知する。この通知方法は、ユーザから管理者へ口頭で伝えても、クライアント１００がストレージ装置２００にネットワークを介して通信で伝えてもよい。
【００６０】
ＡＰ１の使用要求を受けた管理者（又はストレージ装置２００）は、使用要求を発行したユーザ１が要求の対象となるＡＰ１のライセンスを取得しているかどうかを確認する。その方法は種々考えられるが、一例としては、管理者が手作業でソフトウェアのライセンス規定を調査し、ユーザ（クライアント）がソフトウェアを利用する際に入力すべきライセンスキーを、ボリューム管理テーブル２２１の該当するユーザの欄に登録しておく。そして、ユーザが新たにアプリケーションの使用を要求した際に、管理者（又はストレージ装置２００）は、クライアント１００に対してライセンスキーの入力を要求する。ライセンスキーの入力を受け付けた仮想ボリューム管理部２２２は、ボリューム管理テーブル２２１に登録されたライセンスキーと入力されたライセンスキーとを照合する。ライセンスキーが一致する場合、仮想ボリューム管理部２２２は、要求されたアプリケーションを利用可能とするようにボリューム管理テーブル２２１を更新し、要求されたアプリケーションが格納される共通ボリュームＰＤＣ３を、新たに要求を発行したクライアントに対応する仮想ボリュームＶＤａに割り当てる。
【００６１】
尚、クライアント１に新規にＡＰ１を割り当てる時、クライアント１００ａがＡＰ１をＯＳ１上で利用するために必要な情報を、ＡＰ１およびＯＳ１に対して設定する必要がある。以下、この作業を「部分インストール」と呼称する。
【００６２】
また部分インストールを行う際に実行されるプログラムを部分インストーラーと呼ぶ。通常は対象のソフトウェアを利用するユーザ１が、クライアント１００ａでインストーラーを起動し、部分インストーラーはその中で実行される。しかしながら本実施形態では、ユーザ１はストレージ装置２００にＡＰ１を利用することを通知するだけでよく、部分インストーラーの起動は、クライアント１００ａから通知を受けたストレージ装置２００が行う。
【００６３】
ユーザ１がＡＰ１を利用する通知を受けたストレージ装置２００は、ライセンスキーの確認後、ＡＰ１が格納されているＰＤＣ３への読み出し許可を、ユーザ１が利用するクライアント１００ａに対して与える。具体的な手順としては、上述したように、仮想ボリューム管理部２２２がＰＤＣ３のアドレスを取得し、仮想ボリュームＶＤａにＰＤＣ３の領域を加えることで、仮想ボリュームの範囲を広げる。
【００６４】
仮想ボリュームの拡大とともに、ストレージ装置２００は、ＡＰ１の部分インストーラーを起動する。部分インストーラーを起動したストレージ装置２００は、クライアント１００ａ用にカスタマイズされているＯＳ１の構成ファイルを、固有ボリュームＰＤＵａと共通ボリュームＰＤＣ１のうち固有ボリュームＰＤＵａから優先して読み出すことで、クライアント１００ａの機器構成等、ＡＰ１がクライアント１００ａ（具体的にはＯＳ１上）で使用されるために必要なファイルを読み出す。
【００６５】
続いてストレージ装置２００は、読み出したファイルの内容に基づいて、クライアント１００ａが新たにＡＰ１を使用する際にクライアント１００ａに対応するＯＳ１に必要な情報を共通ボリュームＰＤＣ１に、及びＡＰ１に必要な情報をＰＤＣ３に対して書き込む。この際、上述したように、ストレージ管理部２２０の書き込み制御部２２４は、共通ボリュームＰＤＣに対する書き込みを、書き込みを行ったユーザの固有ボリュームＰＤＵに対して振り替える。したがって、データの書き込みは実際には固有ボリュームＰＤＵａに対して行われる。
【００６６】
この処理が終わればクライアント１はＡＰ１を使用可能となる。管理者（又はストレージ装置２００）は、ＡＰ１が使用可能になったことを、口頭で（又はネットワークを介して）ユーザ１に通知する。
【００６７】
結果として図１０に示されるように、ユーザ１がＯＳ１上でＡＰ１を利用する際、ストレージ装置２００は、クライアント１００ａ用にカスタマイズされたデータを含む固有ボリュームＰＤＵａのデータを優先して読み出し、その後、ＯＳ１を格納する共通ボリュームＰＤＣ１、ＡＰ１を格納する共通ボリュームＰＤＣ３に格納されているデータを読み出してＯＳ１とＡＰ１をそれぞれ構成する。このため、ユーザ１は、あたかもクライアント１００ａの有するボリュームに、各ソフトウェアが個別にインストールされているかのようにＡＰやＯＳを利用することができる。
【００６８】
図１１は、上述したクライアント１００がＡＰ１を新たに使用する場合の処理手順例を示す図である。上述した通り、まずクライアント１００や管理者等が、ストレージ装置２００に、利用するソフトウェアを通知する（ステップ０００１）。通知を受けたストレージ装置２００は、ライセンスキーの確認後（ステップ０００２）、ボリューム管理テーブル２２１を更新し（ステップ０００３）、対象となるソフトウェアが格納されている共通ボリュームをクライアント１００の仮想ボリュームＶＤに割り当てる（ステップ０００４）。そしてストレージ装置２００は、指定されたソフトウェアの部分インストール作業を行い（０００５）、仮想ボリュームＶＤを再構築して（ステップ０００６）、指定されたソフトウェアをクライアントが利用可能な状態にする。
【００６９】
図１２は、ユーザがソフトウェアの利用を取りやめる際の処理手順例を示す図である。まずクライアント１００は、ストレージ装置２００に、利用を中止するソフトウェアを通知する（ステップ０００６）。通知を受けたストレージ装置２００は、ボリューム管理テーブル２２１から、指定されたソフトウェアとクライアント１００との関係を削除し（ステップ０００７）、対応する仮想ボリュームＶＤに対する、指定されたソフトウェアの格納された共通ボリュームＰＤＣの割り当てを取りやめる（ステップ０００８）。それと共にストレージ装置２００は、各固有ボリュームＰＤＵ内に格納された、指定されたソフトウェアに関連するファイルを削除し（ステップ０００９）、仮想ボリュームＶＤを再構築する（ステップ００１０）。
【００７０】
ここでストレージ装置２００では、利用を中止するソフトウェアのライセンスを保留し、将来的に利用を再開することが可能か、もしくはライセンスまで含めて消去するのかといった、ライセンスの扱いを取り決める処理を行うこともできる。
【００７１】
図１３は、ストレージ装置２００を新たに使用するユーザ（以下「新規ユーザ」とも言う）を追加する場合の手順例を示した図である。まず、新規ユーザ等が管理者に新規ユーザの追加要請を口頭などで出す（ステップ００１２）。またあわせて、新規ユーザが利用するＯＳや、個人情報（認証名、ライセンスキー等）の情報を新規ユーザ等は管理者に通知する（ステップ００１３）。その後管理者は、ストレージ装置２００のボリューム管理テーブル２２１を更新してボリューム管理テーブル２２１に新規ユーザに対応するユーザ欄を追加する（ステップ００１４）。ボリューム管理テーブル２２１の更新を受けて、ストレージ装置２００は、新規ユーザに対応する固有ボリュームＰＤＵを作成する（ステップ００１５）。
【００７２】
また、管理者は、ＯＳに関するライセンスキーの確認後（ステップ００１６）、追加したユーザ欄に、新規ユーザが使用するＯＳを格納する共通ボリュームＰＤＣの情報を登録する（ステップ００１７）。その後、ストレージ装置２００は、ＯＳを格納する共通ボリュームＰＤＣと新規ユーザ用の固有ボリュームＰＤＵを用いて（ステップ００１８）、ＯＳの設定情報を対象新規ユーザが使用するクライアント１００から読み取り、部分インストールを行い（ステップ００１９）、新規ユーザ用の仮想ボリュームＶＤを構築する。その後、図１１に図示された手順を用いて、各ソフトウェアの利用を設定する。尚、新規にストレージ装置２００を計算機１００が使用する場合、計算機１００は、あらかじめＲＯＭ１０３に格納されているプログラムを実行して、ストレージ装置２００との通信を行う。又は、各計算機１００は、管理用の計算機から、ストレージ装置２００へアクセスするための処理手順を示すプログラムをネットワーク経由で受信し、そのプログラムを実行してストレージ装置２００と通信を行う。
【００７３】
図１４は、ストレージ装置２００を使用しているユーザを削除（ユーザのストレージ装置２００の使用終了）する場合の処理手順を示した図である。まず、ユーザ等が管理者に、ストレージ装置２００の使用を終了するユーザを通知する（ステップ００２１）。ストレージ装置２００の使用を終了するユーザの通知を受け取った管理者は、ストレージ装置２００に対して、通知されたユーザの削除を指示する。指示を受信したストレージ装置２００は、ボリューム管理テーブル２２１から指定されたユーザの欄を削除し（ステップ００２２）、指定されたユーザに該当する固有ボリュームＰＤを削除し（ステップ００２３）、指定されたユーザに割り当てていた仮想ボリュームＶＤの設定を削除する（ステップ００２４）。
【００７４】
図１６は、管理者がストレージ装置２００に格納されているソフトウェアのクライアント１００への提供を取りやめ削除する場合の処理手順例を示した図である。この場合管理者は、ストレージ装置２００に対して、削除されるソフトウェアを指示する。指示を受けたストレージ装置２００は、ボリューム管理テーブル２２１から指定されたソフトウェアの欄を削除し（ステップ００２８）、指定されたソフトウェアに対応する共通ボリュームＰＤＣを削除し（ステップ００２９）、各固有ボリュームＰＤＵから指定されたソフトウェアに関連するファイルを削除し、仮想ボリュームを再構築する（ステップ００３０）。尚、ソフトウェアの提供を終了する際、管理者等はあらかじめユーザに対して、提供を終了するソフトウェアの情報を通知しておく。ユーザはこの通知に基づいて、あらかじめ利用したい情報等のバックアップを行っておく。
【００７５】
尚、本実施形態において、クライアント１００がストレージ装置２００に格納されたデータを削除する場合は、以下の手順で行う。
ユーザから仮想ボリュームＶＤに格納されたデータの削除を指示するコマンドを受信した場合、ストレージ装置２００の仮想ボリューム管理部２２２は、まずコマンドの内容を確認する。コマンドが固有ボリュームＰＤＵに格納されているデータの削除を指示する場合、具体的には、データアドレス管理テーブル２２５にアドレスが登録されていない固有ボリュームＰＤＵのデータを削除するコマンドである場合、ストレージ装置２００の仮想ボリューム管理部２２２は、クライアントから送信された削除コマンドをそのまま実行してデータの削除を行う。
【００７６】
一方、コマンドの内容が共通ボリュームＰＤＣに格納されるデータ（このデータには、固有ボリュームに複製されている共通ボリュームのデータも含まれる）の削除を指示している場合、ストレージ装置２００の仮想ボリューム管理部２２２は、まず、データアドレス管理テーブル２２５のコマンドを送信したユーザに対応する部分に、削除を指定されたデータに対応する固有ボリュームのアドレスが登録されているかどうか確認する。
【００７７】
削除対象となるデータのアドレスがデータアドレス管理テーブル２２５に登録されている場合、仮想ボリューム管理部２２２は、削除対象となるデータに関する情報をデータアドレス管理テーブル２２５から削除する。
【００７８】
情報を削除した後又はデータアドレス管理テーブル２２５に削除対象のデータの情報が登録されていない場合、仮想ボリューム管理部２２２は、ボリューム管理テーブル２２１の情報を更新し、削除対象となったデータについて、仮想ボリュームＶＤのデータ領域とボリュームとのリンク（ポインタ）処理を解除する。つまり、図９のデータアドレス管理テーブル２２５内のファイル５に関する記述のように、読み出し先のデータアドレス欄か、もしくはデータアドレス管理テーブル２２５内のファイル５の行自体を消去する。この処理により、削除対象となったデータの仮想ボリュームＶＤへの割り当てを解除するだけで、実データは削除しない。この処理により、クライアントから削除指令を受けた共通ボリュームＰＤＣに格納されるデータは、仮想ボリュームＶＤにのみ存在しないこととなる。
【００７９】
尚、共通ボリュームＰＤＣに格納されるデータは、管理者が管理用の計算機を用いて直接物理ボリュームＰＤを操作する以外では削除できないようにする。これにより、あるクライアントの誤操作に基づく共有ボリュームに格納されたデータの消失を防ぐことが出来る。
【００８０】
図１７は、上述したストレージ装置２００においてライセンスを確認する際の処理手順の例を示す図である。尚、本処理は、図１１のステップ０００２、図１３のステップ００１６で行われる。
アプリケーション（あるいはＯＳ）の使用要求を受信した管理者（又はストレージ装置２００）は、ソフトウェアをユーザが使用するためのライセンスの証明証（具体的にはライセンスキー）をソフトウェアの配布元等から受信する。尚、管理者（又はストレージ装置２００）は、ライセンスキーを、使用要求を受信する前にあらかじめ取得しておいても良い（ステップ００３１）。
【００８１】
ライセンスキーを受領した管理者（又はストレージ装置２００）は、ユーザにライセンス購入の希望の有無を確かめる。ユーザがライセンスの購入を希望した場合、管理者（又はストレージ装置２００）は、配布元等から受信したライセンスキーをユーザに送信する（ステップ００３２）。ユーザの操作によって計算機１００がストレージ装置へのアクセスを開始すると（ステップ００３３）、ストレージ装置２００は計算機１００に対してライセンスキーに関する情報の送信を要求する（ステップ００３４）。要求を受信した計算機１００は、ユーザよりライセンスキーの入力を受け、その情報をストレージ装置２００に送信する（ステップ００３５）。ストレージ装置２００は、受信したライセンスキーの情報がユーザに通知したライセンスキーと一致するかどうか確認し（ステップ００３６）、一致する場合に、ユーザに対象ソフトウェアの使用を許可する（ステップ００３７）。
【００８２】
尚、ステップ００３２及び００３３の処理は省略されても良い。この場合、ユーザはソフトウェアの配布元等からライセンスキーを取得することとし、ストレージ装置２００等はライセンスの購入希望の有無の問い合わせをしない。
【００８３】
尚、本実施形態におけるボリューム管理の処理は、ストレージ装置２００以外において実行されても良い。具体的には、ストレージ装置２００に接続されたストレージ管理用の計算機もしくはストレージ装置に接続された各クライアントに実装することができる。尚、ここで「ボリューム管理の処理」とは、仮想ボリュームＶＤを構築する処理、仮想ボリュームからのデータの読み出し及び書き込み処理を指す。
【００８４】
図１８は、ストレージ装置２００に接続された、ストレージ管理用の計算機３００がボリューム管理を行う場合の構成例を示す図である。計算機３００のＣＰＵ（又は専用の装置）において、ストレージ管理部２２０は、固有ボリュームＰＤ等を上述した処理を施して変換し、各クライアント１００に仮想ボリュームＶＤを提供する。尚、ここで説明するストレージ管理部２２０は、ボリューム管理テーブル２２１を有していても有さなくても良い。ストレージ管理部２２０がボリューム管理テーブル２２１を有さない場合、ストレージ装置２００がボリューム管理テーブル２２１を有する。そして、ストレージ管理部２２０は、ストレージ装置２００からボリューム管理テーブル２２１の情報を読み出す。
【００８５】
図１９は、各クライアント１００に、ストレージ管理部２２０を設けた例を示す図である。各クライアント１００のＣＰＵ（又は専用の装置）において、ストレージ管理部２２０は、固有ボリュームＰＤ等を上述した処理を施して変換し、各クライアント１００に仮想ボリュームＶＤを提供する。尚、この場合、ボリューム管理テーブル２２１はストレージ装置２００に格納され、全てのクライアント１００に設けられたストレージ管理部２２０によって共有されている。したがって、各クライアント１００のストレージ管理部２２０は、ストレージ装置２００からボリューム管理テーブル２２１の情報のうち自己に関連する部分のみの情報を読み出し、仮想ボリュームを構築する。尚、各クライアント１００は、ボリューム管理テーブル２２１の情報のうち自己に関連する部分のみの情報をボリューム管理テーブルのサブセットとして有していても良い。こうすると、クライアント１００とストレージ装置２００との間での通信量が削減される。
【００８６】
尚、上述した実施形態において、ボリューム管理テーブル２２１の設定の指示、管理者からのユーザの追加削除、アプリケーションの追加削除、ライセンスの管理等の指示等は、計算機システムが有するネットワークに接続された管理用の計算機を管理者が操作することによって行われる。ただし、管理用の計算機とストレージ装置２００とはデータ転送に用いられるネットワークとは別の通信線で相互に接続されていても良い。
【００８７】
上述した実施形態では、計算機１００としてディスクレスコンピュータを利用して説明したが、実際にはディスク装置を内蔵する計算機を利用しても構わない。その場合、計算機が有する内蔵ディスクを固有ボリュームＰＤＵ、キャッシュ装置等として利用することができる。
【００８８】
尚、共通ボリュームＰＤＣに格納されるデータは、ソフトウェアのみに限らず、複数のクライアントが共有するデータでも構わない。この場合は、共有する対象がソフトウェアではないため、ユーザに固有の設定情報はないものとして、データを共有させることもできる。
【００８９】
また、共通ボリュームＰＤＣに含まれるソフトウェアは単独ではなく、複数であっても構わない。更に、一つの固有ボリュームＰＤＵ又は仮想ボリュームＶＤに、複数のユーザを割り当てることも出来る。ただしその場合は、ソフトウェア提供者の規定するライセンス基準に留意しなければならない。
【００９０】
上述したソフトウェアの部分インストーラーは、対応するソフトウェアが格納されるボリュームに格納されているものであるが、別ボリュームに格納されていてもかまわない。また、ストレージ装置２００ではなく、各ユーザが部分インストーラーを起動してもかまわない。例えば、各計算機１００に部分インストーラーを実行するためのプログラムをインストールしておき、ユーザ１の操作によって、新しい共通ボリュームの割り当てを行う操作をストレージ装置２００に指示することができる。
【００９１】
本実施形態によると、ストレージ装置２００において、プログラム本体を含む共通ボリュームＰＤＣに対しては、読み出し動作のみが行われ、書き込み動作は行われない。したがって、共有ソフトウェア本体の変更、ウイルス汚染等を防ぐことができる。
【００９２】
さらに、ウイルスチェックの作業は各固有ボリュームのみを対象とすればよい。こうすると、作業時間を大幅に軽減することができる。
【００９３】
さらに、管理者に対しては仮想ボリューム割り当てを行わず、管理者が、ストレージ装置２００が有するボリュームを直接制御できるようにする。このようにすることで、ストレージ装置２００の管理者が、各ソフトウェアのバージョンアップ、アップデート等の保守作業を集約して行うことができる。これは管理者が新しいソフトウェアをプリインストールする段階においても適応される。
【００９４】
尚、本発明によれば、ユーザが使用するソフトウェアの対応づけを管理することにより、ソフトウェアのライセンスを管理することができる。この場合共通ボリュームには、ソフトウェアをソフトウェア提供者の規定するライセンス基準に基づいた単位で格納することが望ましい。
【００９５】
従って、本発明においては、仮想ボリュームの論理的な管理単位としてのクライアントを、例えば、ストレージ装置に接続される計算機単位、各計算機を利用するユーザ単位、各ユーザの環境設定単位などで設定することが可能であるが、上述のライセンス基準に則って単位を設けなければならない。計算機単位とする場合、各計算機を使用するユーザにかかわらず、計算機ごとに一定の利用環境を提供することができる。ユーザ単位とすれば、どの計算機を利用するかに関わらず、環境設定単位とすれば、各ユーザは複数の利用環境を使い分けることができる。これら利用形態の適用可否を、各ライセンス基準に照らし合わせる必要がある。
【図面の簡単な説明】
【００９６】
【図１】実施例としての計算機システムの構成を示す説明図である。
【図２】データの格納および読み出し状態を模式的に示す説明図である。
【図３】ストレージ管理部２２０の構成を示す説明図である。
【図４】ボリューム管理テーブル２２１の構造を示す説明図である。
【図５】仮想ボリュームＶＤの構成状態を示す説明図である。
【図６】ソフトウェア管理テーブル２２６とボリューム管理テーブル２２１の関連を示す説明図である。
【図７】読み出し制御部２２３の機能を示すフローチャートである。
【図８】書き込み制御部２２４の機能を示すフローチャートである。
【図９】データアドレス管理テーブル２２５の構造を示す説明図である。
【図１０】仮想ボリュームＶＤの構造を示す説明図である。
【図１１】新規ソフトウェア割り当ての過程を示すフローチャートである。
【図１２】ソフトウェア割り当て解除の過程を示すフローチャートである。
【図１３】新規ユーザ追加作業の過程を示すフローチャートである。
【図１４】ユーザ削除作業の過程を示すフローチャートである。
【図１５】新規ソフトウェアプレインストール作業の過程を示すフローチャートである。
【図１６】ソフトウェアアンインストール作業の過程を示すフローチャートである。
【図１７】ストレージ管理部２２０の格納場所を示す説明図である。
【図１８】ストレージ管理部２２０の格納場所を示す説明図である。
【図１９】ストレージ管理部２２０の格納場所を示す説明図である。
【符号の説明】
【００９７】
１００、１００ａ、１００ｂ…クライアント、１０１、２０１…ＣＰＵ、１０２、２０２…ＲＡＭ、１０３、２０３…ＲＯＭ、１０４、２０４…ＮＩＣ、１０５、２０５…Ｉ／Ｏ、２００…ストレージ装置、２１０…ディスク装置、２２０…ストレージ管理部、２２１…ボリューム管理テーブル、２２２…仮想ボリューム管理部、２２３…読み出し管理部、２２４…書き出し管理部、２２５…データアドレス管理テーブル、３００…ストレージ管理装置。
【図１】
2005301708.tif 000003
【図２】
2005301708.tif 000004
【図３】
2005301708.tif 000005
【図４】
2005301708.tif 000006
【図５】
2005301708.tif 000007
【図６】
2005301708.tif 000008
【図７】
2005301708.tif 000009
【図８】
2005301708.tif 000010
【図９】
2005301708.tif 000011
【図１０】
2005301708.tif 000012
【図１１】
2005301708.tif 000013
【図１２】
2005301708.tif 000014
【図１３】
2005301708.tif 000015
【図１４】
2005301708.tif 000016
【図１５】
2005301708.tif 000017
【図１６】
2005301708.tif 000018
【図１７】
2005301708.tif 000019
【図１８】
2005301708.tif 000020
【図１９】
2005301708.tif 000021