(57)【特許請求の範囲】
【請求項１】
ネットワークに接続可能に構成された複数のホスト装置と、
前記ネットワークに接続可能に構成されたストレージ装置と、
前記ネットワークに接続可能に構成されたマスタ管理装置と、
を備えるコンピュータシステムであって、
前記ストレージ装置は、
前記複数のホスト装置にアクセスされる仮想的な外部論理ユニットと、
前記外部論理ユニット上に物理的な記憶領域を割り当てる内部論理ユニットと、を備え、
前記内部論理ユニットは、前記複数のホスト装置が共通に使用する共通ファイルを構成するデータを格納するための共通論理ユニットと、前記複数のホスト装置のそれぞれが使用する個別ファイルを構成するデータを格納するための個別論理ユニットとからなり、
前記ストレージ装置は、
前記マスタ管理装置を介して設定された記憶領域の使用サイズと、ＯＳのファイルシステムの仕様に従って算出された管理ブロック単位とに基づいて前記共通論理ユニットのサイズを算出し、
前記マスタ管理装置を介して設定された記憶領域の使用サイズと、ＯＳのファイルシステムの仕様に従って算出された管理ブロック単位とに基づいて前記個別論理ユニットのサイズを算出し、
前記複数のホスト装置の少なくともいずれか１つからのライト要求に基づき、当該ライト要求に含まれるライトデータと前記共通論理ユニットに格納されたデータとが一致するか否かを前記管理ブロックの単位で比較し、
該データが一致する場合に、当該データが格納されている前記共通論理ユニットのデータブロックを前記ライトデータの格納先として設定し、
該データが一致していない場合に、前記ライトデータを前記個別論理ユニットに格納する、ことを特徴とするコンピュータシステム。
【請求項２】
前記ストレージ装置は、
前記ライトデータのデータブロックのうち、当該データブロックのすべてについて前記比較を実行する場合を有効とし、前記共通論理ユニットに対するライト処理の場合にのみ前記比較を実行する場合を無効とするアクセス制御情報を保持し、
前記外部論理ユニットに対するライト要求を受けて、当該外部論理ユニットについてのアクセス制御情報が有効であるか無効であるかを判断し、当該外部論理ユニットについてのアクセス制御情報が有効であると判断する場合に、前記ライトデータのデータブロックと前記共通論理ユニットのデータブロックとを比較することを特徴とする請求項１に記載のコンピュータシステム。
【請求項３】
前記ストレージ装置は、
前記外部論理ユニットについてのアクセス制御情報が無効であると判断する場合に、前記外部論理ユニットに割り当てられた前記内部論理ユニットが共通論理ユニットであるか否かを判断し、前記内部論理ユニットが共通論理ユニットであると判断する場合に、前記比較を行うことを特徴とする請求項２に記載のコンピュータシステム。
【請求項４】
前記ストレージ装置は、前記内部論理ユニットが共通論理ユニットでないと判断する場合に、前記ライト要求に従うライトデータを前記個別論理ユニットに格納することを特徴とする請求項３に記載のコンピュータシステム。
【請求項５】
前記マスタ管理装置は、前記共通ファイルを更新する場合に、前記ストレージ装置に新たな共通論理ユニットを作成するように制御することを特徴とする請求項１に記載のコンピュータシステム。
【請求項６】
前記ストレージ装置は、前記更新に応じて新たに作成される共通論理ユニットについての世代を管理することを特徴とする請求項５に記載のコンピュータシステム。
【請求項７】
前記ストレージ装置は、
前記複数のホスト装置の少なくともいずれか１つからのリード要求に基づき、当該リード要求が参照すべき共通論理ユニットに複数の世代があり、かつ、古い世代の前記共通論理ユニットが参照されている場合に、前記リード要求に従う古い世代の前記共通論理ユニットのリードデータと、最新世代の前記共通論理ユニットのデータとが一致するか否かを所定の管理ブロック単位で比較することを特徴とする請求項６に記載のコンピュータシステム。
【請求項８】
前記ストレージ装置は、
前記リードデータと前記共通論理ユニットのデータとの比較の結果、一致すると判断する場合に、最新世代の共通論理ユニットが参照されるように制御し、一致しないと判断する場合に、最新世代の共通論理ユニットに前記リードデータと同一のデータがない場合に、古い世代の共通論理ユニットのデータを最新世代の共通論理ユニットに移動することを特徴とする請求項７に記載のコンピュータシステム。
【請求項９】
前記ストレージ装置は、
前記共通論理ユニットの参照数を保持し、
前記参照数に基づいて前記共通論理ユニットが参照されていないと判断される場合に、
当該共通論理ユニットを削除することを特徴とする請求項１に記載のコンピュータシステム。
【請求項１０】
ネットワークを介して複数のホスト装置及びマスタ管理装置に接続されたストレージ装置の制御方法であって、前記制御方法は、
前記ストレージ装置が、複数のホスト装置が共通に使用する共通ファイルを構成するデータを格納する内部論理ユニットを共通論理ユニットとし、前記マスタ管理装置を介して設定された記憶領域の使用サイズと、ＯＳのファイルシステムの仕様に従って算出された管理ブロック単位とに基づいて前記共通論理ユニットのサイズを算出するステップと、
前記ストレージ装置が、前記複数のホスト装置のそれぞれが使用する個別ファイルを構成するデータを格納する内部論理ユニットを個別論理ユニットとし、前記マスタ管理装置を介して設定された記憶領域の使用サイズと、ＯＳのファイルシステムの仕様に従って算出された管理ブロック単位とに基づいて前記個別論理ユニットのサイズを算出して作成するステップと、
前記ストレージ装置が、前記共通論理ユニット及び前記個別論理ユニット上の物理的な記憶領域を前記複数のホスト装置にアクセスされる仮想的な外部論理ユニットに割り当てるステップと、
前記ストレージ装置が、前記複数のホスト装置の少なくともいずれか１つからのライト要求を受信するステップと、
前記ストレージ装置が、前記ライト要求に含まれるライトデータと前記共通論理ユニットに格納されたデータとが一致するか否かを前記管理ブロックの単位で比較するステップと、
前記ストレージ装置が、該データが一致する場合に、当該データが格納されている前記共通論理ユニットのデータブロックを前記ライトデータの格納先として設定するステップと、
前記ストレージ装置が、該データが一致していない場合に、前記ライトデータを前記個別論理ユニットに格納するステップと、
を含むことを特徴とする制御方法。
【請求項１１】
前記制御方法は、
前記ネットワークに接続されたマスタ管理装置が、共通論理ユニット作成要求コマンドをストレージに送信し、
前記ストレージ装置が、前記共通論理ユニット作成要求に基づいて、共通論理ユニットを作成し、当該作成した共通論理ユニットを外部論理ユニットに割り当てることを特徴とする請求項１０に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置に関し、特に、ネットワークを介して複数のホスト装置（計算機）に接続されるストレージ装置及びこれの制御方法に関する。
【背景技術】
【０００２】
近年、計算機におけるデータ管理を容易にするため、複数の計算機がそれぞれ扱うデータを、当該各計算機のローカルストレージではなく、ネットワークを介した共有のストレージ装置に集約して管理する計算機システムが提案されている。このような計算機としては、例えば、ディスクレス計算機システムや仮想計算機システムが知られている。
【０００３】
ディスクレス計算機システムは、計算機自体にディスクドライブを内蔵しない（又は内蔵していてもこれを使用しない）計算機システムである。ディスクレス計算機システムにおいては、ＳＡＮに接続されたストレージ装置内の論理ユニットにＯＳイメージ（起動イメージ）が格納され、計算機は、ＳＡＮ経由で当該論理ユニットをマウントすることにより、当該論理ユニットからの起動を可能にしている。各計算機が使用するＯＳやアプリケーションプログラム等で使用されるデータは、各計算機に割り当てられた記憶領域に格納されるため、システム管理者は、ストレージ装置におけるデータを一元的に管理することができる。
【０００４】
また、仮想計算機システムは、いわゆる仮想化機構を利用して、サーバコンピュータに複数の計算機環境を統合する計算機システムである。サーバコンピュータに統合された仮想計算機は、ストレージ装置内の論理ユニットに作成された仮想ディスクにＯＳやアプリケーションプログラム等データを格納するため、同様に、システム管理者は、ストレージ装置におけるデータを一元的に管理することができる。
【０００５】
一般に、このような計算機システムにおいては、各計算機は、共有の起動イメージを使用しているにもかかわらず、各計算機に割り当てた記憶領域を必要とする。このため、下記特許文献１は、各計算機に固有のデータを格納する論理ユニットと、複数の計算機によって共有されるソフトウェアを格納した論理ユニットとを作成し、各計算機のソフトウェアの利用状況に基づいて、これらの論理ユニットを結合して仮想的に一つの記憶領域を構築し、各計算機に提供するストレージ装置を開示する。これにより、複数の計算機が使用するソフトウェアは共有の論理ユニットに格納されるため、ストレージ装置全体で当該ソフトウェアが占める領域分の格納容量を減らすことができる。
【特許文献１】特開２００５-３０１７０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述したような従来の計算機システムにおいては、各計算機のＯＳやアプリケーションプログラム等が更新されると、当該更新された部分は、各計算機に割り当てられた個別の記憶領域に格納されていた。このため、ＯＳ等の更新が頻繁に繰り返されると、各計算機は、共有の論理ユニットを参照せずに、当該記憶領域を使用するようになっていた。従って、使用の継続に伴って、ストレージ装置内に各計算機に割り当てられた個別の記憶領域が肥大化し、記憶容量の削減効果が低下してしまい、結果として、ストレージ装置の記憶容量コストが増大するという課題があった。
【０００７】
そこで、本発明は、各ホスト装置（計算機）が使用するストレージ装置内の論理ユニットを効率的に使用し、記憶容量コストの増大を抑制できるストレージ装置及びこれの制御方法を提案することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、ある観点に従う本発明は、ネットワークに接続可能に構成された複数のホスト装置と、当該ネットワークに接続可能に構成されたストレージ装置と、当該ネットワークに接続可能に構成されたマスタ管理装置と、を備えるコンピュータシステムである。
【０００９】
当該ストレージ装置は、当該複数のホスト装置のそれぞれがターゲットにする外部論理ユニットと、当該外部論理ユニットに割り当てられた内部論理ユニットと、を備える。ここで、当該内部論理ユニットは、当該複数のホスト装置が共通に使用する共通ファイルを構成するデータを格納するための共通論理ユニットと、当該複数のホスト装置のそれぞれが使用する個別ファイルを構成するデータを格納するための個別論理ユニットとからなる。
【００１０】
そして、当該ストレージ装置は、当該複数のホスト装置の少なくともいずれか１つからのライト要求に基づき、当該ライト要求に従うライトデータと当該共通論理ユニットに格納されたデータとが一致するか否かを所定の管理ブロック単位で比較し、当該比較の結果、一致するデータブロックを当該共通論理ユニットに格納し、一致していないデータブロックを当該個別論理ブロックに格納する。
【００１１】
また、別の観点に従う本発明は、ネットワークを介して複数のホスト装置に接続されたストレージ装置の制御方法である。
【００１２】
当該制御方法は、当該ストレージ装置が、複数のホスト装置が共通に使用する共通ファイルを構成するデータを格納する内部論理ユニットを共通論理ユニットとして作成するステップと、当該ストレージ装置が、当該複数のホスト装置のそれぞれが使用する個別ファイルを構成するデータを格納する内部論理ユニットを個別論理ユニットとして作成するステップと、当該ストレージ装置が、当該共通論理ユニット及び当該個別論理ユニットを当該複数のホスト装置のそれぞれがターゲットにする外部論理ユニットに割り当てるステップと、当該ストレージ装置が、当該複数のホスト装置の少なくともいずれか１つからのライト要求を受信するステップと、当該ストレージ装置が、当該ライト要求に従うライトデータと当該共通論理ユニットに格納されたデータとが一致するか否かを所定の管理ブロック単位で比較するステップと、当該ストレージ装置が、当該比較するステップにより、一致するデータブロックを当該共通論理ユニットに格納し、一致していないデータブロックを当該個別論理ブロックに格納するステップと、を含む。
【発明の効果】
【００１３】
本発明によれば、各ホスト装置が使用するストレージ装置内の論理ユニットは効率的に使用され、重複するデータの格納を排除することができ、記憶容量コストの増大を抑制できるようになる。
【００１４】
本発明の他の技術的特徴及び利点は、添付した図面を参照して説明される以下の実施形態のより明らかにされる。
【発明を実施するための最良の形態】
【００１５】
次に、本発明の実施の形態について、図面を参照しつつ説明する。
【００１６】
（１）システム構成
（１−１）コンピュータシステムの構成
図１は、本発明の一実施形態に係るコンピュータシステムの概略構成を示す図である。同図に示すように、コンピュータシステム１は、ネットワーク２を介して相互に接続された、複数のホスト装置１００と、マスタ管理装置２００と、ストレージ装置３００とから構成される。
【００１７】
ネットワーク２は、ストレージアクセスのためのＬＡＮやＳＡＮであり、典型的には、スイッチやハブ（図示せず）を含んで構成される。ネットワーク２では、ファイバチャネルプロトコル（ＦＣＰ）やインターネットプロトコル（ＩＰ）が利用される。本実施形態では、ネットワーク２は、イーサネット（登録商標）によって構築されたＩＰ−ＬＡＮであるものとし、その上位プロトコルとしてｉＳＣＳＩが利用されるものとする。
【００１８】
ホスト装置３は、所望の処理を遂行するコンピュータであり、典型的には、クライアントコンピュータ（図示せず）からの処理を遂行するサーバコンピュータである。ホスト装置３は、各種のプログラムを実行して、ハードウェア資源との協働作用により、クライアントコンピュータからの要求に応じた処理を実現する。例えば、ホスト装置３は、業務アプリケーションプログラムを実行することにより、ストレージ装置５にＩ／Ｏアクセスし、所望の業務システムを実現する。
【００１９】
ストレージ装置４は、ホスト装置３にデータストレージサービスを提供するためのシステムである。ストレージ装置４は、物理デバイスとしての複数のドライブユニット４１と、ホスト装置３からのＩ／Ｏ要求に応答し、ドライブユニット４１上に形成された論理ユニットに対するＩ／Ｏアクセスを制御するコントローラユニット４２とを備える。
【００２０】
マスタ管理装置５は、ネットワーク２を介してホスト装置３及びストレージ装置４にアクセスし、管理するためのコンピュータである。マスタ管理装置５は、例えば、複数のホスト装置３によって利用される共通ファイルを格納する論理ユニット（共通論理ユニット）をストレージ装置４のドライブユニット４１上に作成する。
【００２１】
（１−２）ホスト装置の構成
図２は、本発明の一実施形態に係るホスト装置３の内部構成を概略的に示す図である。同図に示すように、ホスト装置３は、典型的には、プロセッサ３１と、メインメモリ３２と、通信インタフェース３３と、入出力装置３４と、補助記憶装置（ローカルストレージ）３５等のハードウェア資源を備え、また、補助記憶装置３５に格納されたデバイスドライバやオペレーティングシステム（ＯＳ）、アプリケーションプログラム等のソフトウェア資源を備える（図示せず）。これによって、ホスト装置３は、プロセッサの制御の下、補助記憶装置３５からメインメモリ３２にロードされた各種のプログラムを実行して、各種のハードウェア資源との協働作用により、クライアントコンピュータからの要求に応じた処理を実現する。本実施形態では、ホスト装置３には、上述したようにＯＳやアプリケーションプログラムに加え、更新要求受付プログラム３２１が実装され、メインメモリ３２上に実行可能オブジェクトとして展開されている。
【００２２】
（１−３）ストレージ装置の構成
図３は、本発明の一実施形態に係るストレージ装置４の内部構成を概略的に示す図である。上述したように、ストレージ装置４は、物理デバイスとしての複数のドライブユニット４１と、ホスト装置３からのＩ／Ｏ要求に応答し、ドライブユニット４１上に形成された論理ユニットに対するＩ／Ｏアクセスを制御するコントローラユニット４２とを備える。図示していないが、ストレージ装置４は、コントローラユニット４２の冗長構成（例えば二重化構成）が採用されてもよく、これに伴い、ドライブユニット４１内のハードディスクドライブに対するパスも冗長化されていてもよい。
【００２３】
ドライブユニット４１は、例えば複数のハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）等の記憶媒体を含んで構成される物理デバイス（ＰＤＥＶ）の集合体である。ドライブユニット４１は、アレイ装置と呼ばれることもある。ドライブユニット４１には、コントローラユニット４２のＲＡＩＤ制御の下、いくつかの物理デバイスを仮想的に１つのデバイスにまとめた仮想デバイス（ＶＤＥＶ）が形成され、そこに１つ以上の論理デバイス（ＬＤＥＶ）が形成される。
【００２４】
論理デバイスは、ホスト装置３が認識しうる論理的な記憶装置であり、本実施形態では、論理ユニット（ＬＵ）が割り当てられる。即ち、各論理デバイスは、コントローラユニット５２のポート各ポート５２３１に割り当てられ、これにより、ホスト装置３は、物理デバイス上に形成された論理デバイスを論理ユニットとして認識する。
【００２５】
各論理ユニットには、論理ユニット番号（ＬＵＮ）が付与される。また、論理ユニットは、Ｉ／Ｏアクセスの最小単位であるブロックに分割され、各ブロックには、論理ブロックアドレス（ＬＢＡ）が割り当てられる。ホスト装置３は、論理ユニット番号及び論理ブロックアドレスからなる論理アドレスを含むコマンドをストレージ装置４に与えることにより、特定の論理ユニットにおける特定のブロックに対してアクセスすることができる。
【００２６】
上述のようにｉＳＣＳＩを利用した本実施形態では、ホスト装置３及びストレージ装置４はそれぞれ、ｉＳＣＳＩネームが割り当てられたｉＳＣＳＩノードとしてのイニシエータ及びターゲットとして機能し、従って、ホスト装置３及びストレージ装置４は、ＩＰアドレス及びＴＣＰポート番号の組み合わせで特定されるネットワークポータルを介して、ｉＳＣＳＩ  ＰＤＵを送受する。従って、ホスト装置３は、ｉＳＣＳＩネーム、ＩＰアドレス、及びＴＣＰポート番号を指定することにより、ネットワーク２上のストレージ装置５を認識し、その論理ユニット内のブロックに対してアクセスする。
【００２７】
また、ホスト装置３が認識する論理デバイス（即ち、論理ユニット）上には仮想的な１つ又はそれ以上の論理ボリュームが設定される。論理ボリュームは、論理デバイス上の仮想的なパーティションである。論理デバイス（又は論理ユニット）と論理ボリュームとは、ストレージ装置４が適用されるシステム環境等により区別されうるが、ここでは両者を同義に扱うことができる。
【００２８】
コントローラユニット４２は、プロセッサ４２１と、メモリ４２２と、ホストインタフェース４２３と、キャッシュメモリ４２４と、ドライブインタフェース４２５と、管理インタフェース４２６とを備え、これらはデータコントローラ４２７を介して相互にバス接続されている。
【００２９】
プロセッサ４２１は、メモリ４２２に保持された各種の制御プログラムを実行することにより、コントローラユニット４２を統括的に制御する。メモリ４２２には、同図に示すように、ディスクアクセスプログラム４２２１、論理ユニット管理プログラム４２２２、ブロックチェックプログラムといった制御プログラムに加え、各種のテーブルを含むシステム構成情報が保持される。本実施形態では、ターゲット管理テーブル６００、外部論理ユニット（外部ＬＵ）管理テーブル７００、共通論理ユニット（共通ＬＵ）管理テーブル８００、外部論理ユニット（外部ＬＵ）ブロックマッピングテーブル９００、イメージ管理テーブル１０００、内部論理ユニット（内部ＬＵ）ブロック管理テーブル１１００、及び共通論理ユニット（強雨通ＬＵ）管理テーブル１２００が用意されている。これらのプログラムやテーブルは、例えば、電源ＯＮにより起動されるイニシャルシーケンスに従って、ハードデバイスドライブの所定の記憶領域から読み出され、メモリ４２２上にロードされる。
【００３０】
ホストインタフェース４２３は、複数のポート４２３１を備え、ネットワーク２を介して当該ポート４２３１に接続されたホスト装置３との間で通信を行うネットワークインタフェースである。ホストインタフェース４２３は、プロセッサ４２１の負荷軽減のため、ＴＣＰ／ＩＰプロトコルに加え、ｉＳＣＳＩプロトコルを実装していてもよい。ホストインタフェース４２３は、ホストバスアダプタと呼ばれることもある。
【００３１】
キャッシュメモリ４２４は、ホスト装置３に対して高い応答性能を提供するため、ホストインタフェース４２３とデバイスインタフェース４２５との間でやり取りされるアプリケーションデータを一時的に記憶（キャッシュ）するメモリである。キャッシュメモリ４２４は、典型的には、ＤＲＡＭ等の揮発性メモリで構成されるが、フラッシュメモリ等の不揮発性メモリでその全部又は一部が構成されてもよい。
【００３２】
デバイスインタフェース４２５は、複数のポートを備え、ディスクチャネルを介して当該ポートに接続されたドライブユニット４１に対するＩ／Ｏアクセスの制御を行うインタフェースである。即ち、デバイスインタフェース４２５は、キャッシュメモリ４２４にキャッシュされたデータを取り出して、ドライブユニット４１上の対応するブロックに格納し（デステージング）、また、ドライブユニット４１上のブロックからデータを読み出して、キャッシュメモリ４２４に書き込む（ステージング）。例えば、ホスト装置３から読み出し要求を受け付けた場合であって、キャッシュメモリ４２４に当該要求されたデータが存在しない場合には、必要に応じてデステージングを行ってキャッシュ領域を確保した後、キャッシュメモリ４２４に当該要求されたデータをステージングする。
【００３３】
管理インタフェース４２６、管理用ポートを備え、ネットワーク２を介して当該管理用ポートに接続されたマスタ管理装置５との間で通信を行うためのネットワークインタフェースである。本実施形態では、ＴＣＰ／ＩＰベースの通信であるので、イーサネット（登録商標）ボードを用いることができる。
【００３４】
データコントローラ４２７は、上述したプロセッサ４２１、メモリ４２２、ホストインタフェース４２３、キャッシュメモリ４２４、及びデバイスインタフェース４２５を相互に接続し、これらの間のデータのフローを制御するチップセットである。
【００３５】
（１−４）マスタ管理装置の構成
図４は、本発明の一実施形態に係るマスタ管理装置５の内部構成を概略的に示す図である。上述したように、マスタ管理装置４もまたコンピュータであるので、ホスト装置と基本的なその内部構成は同じである。マスタ管理装置５には、ストレージ装置３の管理のため、マスタ作成プログラム５２１、イメージ作成プログラム５２２、及び更新管理プログラム５２３が実装されている。通信インタフェース３３は、ネットワーク２を介してホスト装置３やストレージ装置４に接続するための通信インタフェースである。
（１−５）論理ユニットの概念的構成
【００３６】
図５は、本発明の一実施形態に係るストレージ装置４内の論理ユニットの構成を概念的に説明するための図である。
【００３７】
上述したように、ｉＳＣＳＩ上、イニシエータであるホスト装置３は、ターゲット情報を用いて、ターゲットであるストレージ装置４に接続する。ターゲット情報は、ｉＳＣＳＩノードを識別するｉＳＣＳＩネーム（ターゲットＩＤ）並びにネットワークポータルを識別するＩＰアドレス及びＴＣＰポート番号である。ターゲット情報として、イニシエータ名が使用されても良い。１つのターゲットには、１つ以上の論理ユニットが割り当てられる。
【００３８】
本実施形態では、ストレージ装置４は、ターゲット情報で識別される仮想的な論理ユニットを形成する。つまり、ホスト装置３は、ターゲット情報により、ストレージ装置４内の仮想的な論理ユニットを認識する。ここでは、このような仮想的な論理ユニットを外部論理ユニット（外部ＬＵ）と呼ぶことにする。また、ストレージ装置４における物理デバイスとしてのドライブユニット４１上に実際の記憶領域が割り当てられた論理ユニットを内部論理ユニット（内部ＬＵ）と呼ぶことにする。
【００３９】
内部論理ユニットには、各ホスト装置３に共通なブロックデータを格納するための共通論理ユニット（共通ＬＵ）と、各ホスト装置に固有なブロックデータを格納するための個別論理ユニット（個別ＬＵ）とがある。
【００４０】
これらの論理ユニットは、以下で詳述される各種の管理テーブルで管理され、参照される。
【００４１】
（２）各種管理テーブルの構成
（２−１）ターゲット管理テーブルの構成
図６は、本発明の一実施形態に係るストレージ装置４のターゲット管理テーブル６００の一例を示す図である。ターゲット管理テーブル６００は、ホスト装置３が認識するターゲットと仮想的な外部論理ユニットとを関係付けるテーブルである。
【００４２】
同図に示すように、ターゲット管理テーブル６００は、ターゲット情報欄６０１、外部論理ユニット番号欄６０２、及びセッション情報欄６０３を含む。
【００４３】
ターゲット情報欄６０１は、ターゲットを一意に識別するためのターゲット情報を保持する。ターゲット情報は、例えば、ｉＳＣＳＩネームが用いられる。外部論理ユニット番号欄６０２は、外部論理ユニットを一意に識別するための番号（外部論理ユニット番号）を保持する。セッション情報欄６０３は、ターゲットに対してセッションを確立させたホスト装置３を一意に識別するための情報を保持する。
【００４４】
（２−２）外部論理ユニット管理テーブルの構成
図７は、本発明の一実施形態に係るストレージ装置４の外部論理ユニット管理テーブル７００の一例を示す図である。外部論理ユニット管理テーブル７００は、外部論理ユニットと内部論理ユニットとを対応付けるとともに、外部論理ユニットについての各種の情報を管理するテーブルである。
【００４５】
同図に示すように、外部論理ユニット管理テーブル７００は、外部論理ユニット番号欄７０１、ホスト種別欄７０２、グループ欄７０３、内部論理ユニット番号欄７０４、及びアクセス制御情報欄７０５を含む。
【００４６】
外部論理ユニット番号欄７０１は、外部論理ユニット番号を保持する。従って、外部論理ユニット管理テーブル７００は、当該外部論理ユニット番号によって、上記のターゲット管理テーブル６００と関係付けられる。
【００４７】
ホスト種別欄７０２は、外部論理ユニットを使用する上位装置の種別を保持する。本例では、ホスト種別には、マスタ管理装置５を示す「マスタ」と、マスタ管理装置５以外の装置（つまり、ホスト装置３）を示す「個別」がある。
【００４８】
グループ欄７０３は、同一の起動イメージを使用するホスト装置３群を識別するグループ名を保持する。同一のグループ名が与えられたホスト装置３は、同一の共通論理ユニットを参照することになる。
【００４９】
内部論理ユニット番号欄７０４は、ストレージ装置４内の論理ユニットを一意に識別するための番号（内部論理ユニット番号）を保持する。ホスト種別が「マスタ」であれば、ここに保持される番号は、共通論理ユニットとして使用される内部論理ユニットの内部論理ユニット番号であり、ホスト種別が「個別」であれば、個別論理ユニットとして使用される内部論理ユニットの内部論理ユニット番号である。
【００５０】
アクセス制御情報欄７０５は、外部論理ユニットに対してライト要求があった場合に、当該ライト要求に従うデータブロックと共通論理ユニットのデータブロックとが一致するか否かを制御するための情報を保持する。初期状態では、「無効」がセットされる。本例では、アクセス制御情報には、「有効」及び「無効」がある。アクセス制御情報欄７０５が「有効」を示す場合、データの比較が行われる。
【００５１】
（２−３）共通論理ユニット管理テーブルの構成
図８は、本発明の一実施形態に係るストレージ装置４の共通論理ユニット管理テーブル８００の一例を示す図である。共通論理ユニット管理テーブル８００は、共通論理ユニットを使用するホスト装置３のグループ及び共通論理ユニットの世代を管理するテーブルである。
【００５２】
同図に示すように、共通論理ユニット管理テーブル８００は、グループ欄８０１、世代欄８０２、及び内部論理ユニット番号欄８０３を含む。
【００５３】
グループ８０１欄は、同一の起動イメージを使用するホスト装置３群を識別するグループ名を保持し、従って、外部論理ユニット管理テーブル７００のそれと同一である。
【００５４】
世代８０２欄は、マスタ更新が行われる都度、作成される共通論理ユニットの世代を保持する。従って、複数回、マスタ更新が行われると、それに応じて、複数世代の共通論理ユニットが作成されることになる。マスタ更新は、後述するように、マスタ管理装置５によって行われる。
【００５５】
内部論理ユニット番号欄８０３は、共通論理ユニットとして使用する内部論理ユニットの内部論理ユニット番号を保持する。
【００５６】
（２−４）外部論理ユニットブロックマッピングテーブルの構成
図９は、本発明の一実施形態に係るストレージ装置４の外部論理ユニットブロックマッピングテーブル９００の一例を示す図である。外部論理ユニットブロックマッピングテーブル９００は、外部論理ユニットに割り当てられた共通論理ユニット又は個別論理ユニットにおけるデータ格納位置を示すテーブルであり、１つの外部論理ユニットに対して、１つの外部論理ユニットブロックマッピングテーブル９００が作成される。
【００５７】
同図に示すように、外部論理ユニットブロックマッピングテーブル９００は、配列番号欄９０１、参照論理ユニット番号欄９０２、及び参照ブロック配列番号欄９０３を含む。
【００５８】
配列番号欄９０１は、外部論理ユニットの総ブロック数を保持する。例えば、ある外部論理ユニットについてのホスト種別が「マスタ」、ブロック管理単位が「８」である場合、配列番号「０」は論理ブロックアドレス「０」〜「７」のブロック、配列番号「１」は、論理ブロックアドレス「８」〜「１５」までのブロックを示す。また、外部論理ユニットについてのホスト種別が「個別」、ブロック管理単位が「８」、後述する管理開始ＬＢＡが「１」である場合、配列番号「０」は論理ブロックアドレス「０」のブロック、配列番号「１」は論理ブロックアドレス「１」〜「８」までのブロック、配列番号「２」は、論理ブロックアドレス「９」〜「１６」までのブロックを示す。
【００５９】
参照論理ユニット番号欄９０２は、配列番号欄９０１で示されるブロックにデータを格納している内部論理ユニットの番号を保持する。
【００６０】
参照ブロック配列番号欄９０３は、配列番号９０１で示されるブロックにデータを格納している内部論理ユニットの内部ブロックの配列番号である。例えば、参照ブロック配列番号「０」は、内部論理ユニットの内部ブロック「０」のブロック群を示し、参照ブロック配列番号「１」は、内部論理ユニットのブロック「１」のブロック群を示す。
【００６１】
（２−５）イメージ管理テーブルの構成
図１０は、本発明の一実施形態に係るストレージ装置４のイメージ管理テーブル１０００の一例を示す図である。イメージ管理テーブル１０００は、ホスト装置３が使用するＯＳのファイルシステムに依存する情報を管理するテーブルである。
【００６２】
同図に示すように、イメージ管理テーブル１０００は、グループ欄１００１、ブロック管理ブロック単位欄１００２、及び開始管理論理ブロックアドレス（ＬＢＡ）欄１００３を含む。
【００６３】
グループ欄１００１は、同一の起動イメージを使用するホスト装置３群を識別するグループ名を保持し、従って、共通論理ユニット管理テーブル８００のそれと同一である。
【００６４】
管理ブロック単位欄１００２は、データを格納する際の最小領域サイズを示す。つまり、データは、管理ブロック単位にまとめられて格納される。例えば「８」は、８ブロック（５１２×８バイト）が管理ブロック単位であることを示す。データの格納に際しては、管理ブロック単位の倍数のサイズが使用される。
【００６５】
管理開始ＬＢＡ欄１００３は、ドライブユニット４１に形成された論理ユニット（内部論理ユニット）のうち、データ領域の先頭論理アドレスを保持する。これは、一般に、ディスクの先頭の数ブロックには当該ディスクのフォーマット情報が格納されるため、当該数ブロック分をオフセットするための情報である。
【００６６】
（２−６）内部論理ユニットブロック管理テーブルの構成
図１１は、本発明の一実施形態に係るストレージ装置４の内部論理ユニットブロック管理テーブル１１００の一例を示す図である。内部論理ユニットブロック管理テーブル１１００は、内部論理ユニットのブロック使用状態を管理するテーブルである。
【００６７】
同図に示すように、内部論理ユニットブロック管理テーブル１１００は、内部論理ユニット番号１１０１欄及び最終ブロック番号欄１１０２を含む。
【００６８】
内部論理ユニット番号１１０１欄は、内部論理ユニットを一意に示す番号を保持する。最終ブロック番号欄１１０２は、内部論理ユニットにおける管理ブロック単位で管理されるブロック（内部ブロック）のうち、データが最後に書き込まれた内部ブロックの配列番号を示す。
【００６９】
（２−７）共通論理ユニットデータ管理テーブルの構成
図１２は、本発明の一実施形態に係るストレージ装置４の共通論理ユニットデータ管理テーブル１２００の一例を示す図である。共通論理ユニットデータ管理テーブル１２００は、共通論理ユニットに格納されたデータを管理するテーブルであり、データの同一性及び参照数を管理する。共通論理ユニットデータ管理テーブル１２００は、１つの共通論理ユニットに対して、１つの共通論理ユニットデータ管理テーブル１２００が作成される。
【００７０】
同図に示すように、共通論理ユニットデータ管理テーブル１２００は、配列番号欄１２０１、固有値欄１２０２、及び参照数欄１２０３を含む。
【００７１】
配列番号欄１２０１は、外部論理ユニットブロックマッピングテーブル９００における参照ブロック配列番号欄９０３に対応し、内部論理ユニットの内部ブロックの番号を保持する。
【００７２】
固有値欄１２０２は、格納されたデータブロックに基づいて算出される値であり、例えば、ハッシュ値が用いられる。つまり、書き込みデータと固有値欄１２０２に示される値とを比較することにより、データの同一性を判断することができる。
【００７３】
参照数欄１２０３は、配列番号で示される内部ブロックを参照する外部論理ユニットの数を保持する。
【００７４】
（３）各種処理の説明
（３−１）マスタ作成処理
次に、図１３乃至図１５を参照し、本実施形態の本発明の一実施形態に係るコンピュータシステムにおけるマスタ作成処理を説明する。図１３は、本発明の一実施形態に係るマスタ管理装置５におけるマスタ作成処理を説明するためのフローチャートであり、図１４は、本発明の一実施形態に係るストレージ装置４における共通論理ユニット作成処理を説明するためのフローチャートである。また、図１５は、本発明の一実施形態に係るストレージ装置４におけるマスタライト処理を説明するためのフローチャートである。
【００７５】
マスタ作成処理とは、各ホスト装置３が共通に使用するファイル（共通ファイル）を抽出し、これに基づいて共通論理ユニットを作成するための処理である。
【００７６】
システム管理者の操作の下、まず、ホスト装置３用の起動イメージを格納した光ディスク（ＣＤやＤＶＤ）等の記録媒体がマスタ管理装置５の入出力装置５４に装填され、マスタ管理装置５に電源が投入されると、マスタ管理装置５は、当該起動イメージをマウントし、当該起動イメージを読み出すことによって、起動される。なお、記録媒体上の起動イメージが補助記憶装置５５にインストールされた後、そこからマスタ管理装置５が起動されても良い。続いて、マスタ作成プログラム５２１が、マスタ管理装置５上で実行される。
【００７７】
マスタ管理装置５によって実行されるマスタ作成プログラム５２１は、ＯＳが有するディスク管理機能を用いて所定のディスク管理画面を提示して、設定しようとするストレージ装置４における記憶領域（共通論理ユニット）の使用サイズ、グループ、及びホスト種別を受け付ける（ＳＴＥＰ１３０１）。これを受けて、マスタ作成プログラム５２１は、ＯＳのファイルシステムの仕様に従って、管理ブロック単位及び管理開始ＬＢＡを算出し、さらに、当該記憶領域の使用サイズ及び当該管理ブロック単位に基づいて、共通論理ユニットのサイズを算出する（ＳＴＥＰ１３０２）。ここで、共通論理ユニットの総ブロック数が管理ブロック単位の倍数になるように、記憶領域の使用サイズが設定されることが好ましい。
【００７８】
次に、マスタ作成プログラム５２１は、外部論理ユニット作成要求コマンドを作成し、ストレージ装置４の管理インタフェース４２６を介して、これをストレージ装置４の論理ユニット管理プログラム４２２２に送信する（ＳＴＥＰ１３０３）。外部論理ユニット作成要求コマンドは、そのパラメータとして、例えば、ホスト種別、グループ、管理ブロック単位、管理開始ＬＢＡ、及び共通論理ユニットのサイズを含む。ここでは、外部論理ユニット作成要求コマンドのパラメータはそれぞれ、「ホスト種別：マスタ」、「グループ：Ａ」、「管理ブロック単位：８」、「管理開始ＬＢＡ：１」、「共通論理ユニットのサイズ：Ｘ」であるものとする。
【００７９】
ストレージ装置４上で実行される論理ユニット管理プログラム４２２２は、「ホスト種別：マスタ」が指定された外部論理ユニット作成要求コマンドを受信すると、以下に示す外部論理ユニット作成処理を実行する。
【００８０】
即ち、論理ユニット管理プログラム４２２２は、まず、外部論理ユニットを割り当てるべきターゲットについてのターゲット情報を作成し、これをターゲット管理テーブル６００のターゲット情報欄６０１に登録する（ＳＴＥＰ１４０１）。次に、論理ユニット管理プログラム４２２２は、当該ターゲットに対して外部論理ユニット番号を割り当て、これをターゲット管理テーブル６００の外部論理ユニット番号欄６００に登録するとともに、外部論理ユニット管理テーブル７００の外部論理ユニット番号欄７０１に登録する（ＳＴＥＰ１４０２）。
【００８１】
続いて、論理ユニット管理プログラム４２２２は、外部論理ユニット作成要求コマンドで指定される「共通論理ユニットのサイズ：Ｘ」に基づいて内部論理ユニットのサイズを算出した後、内部論理ユニットを作成し、その内部論理ユニット番号を外部論理ユニット管理テーブル７００の内部論理ユニット番号欄７０４に登録する（ＳＴＥＰ１４０３）。また、論理ユニット管理プログラム４２２２は、当該内部論理ユニット番号を内部論理ユニットブロック管理テーブル９００の内部論理ユニット番号欄９０１に登録するとともに、最終ブロック番号９０２欄に「０」を設定し、初期化する（ＳＴＥＰ１４０４）。また、論理ユニット管理プログラム４２２２は、当該外部論理ユニット作成要求コマンドに従い、外部論理ユニット管理テーブル７００のホスト種別欄７０２に「マスタ」を、グループ欄７０３に「Ａ」をそれぞれ登録する。
【００８２】
論理ユニット管理プログラム４２２２は、次に、共通論理ユニット管理テーブル８００に新たなエントリを追加し、グループ欄８０１に「Ａ」を登録する（ＳＴＥＰ１４０５）。続いて、論理ユニット管理プログラム４２２２は、共通論理ユニット管理テーブル８００内に同じグループに属する共通論理ユニットが登録されているか否かを判断し（ＳＴＥＰ１４０６）、登録されていないと判断する場合には（ＳＴＥＰ１４０６のＮｏ）、当該エントリの世代欄８０２に「０」を登録する（ＳＴＥＰ１４０７）。一方、論理ユニット管理プログラム４２２２は、共通論理ユニット管理テーブル８００内に同じグループに属する共通論理ユニットが登録されていると判断する場合には（ＳＴＥＰ１４０６のＹｅｓ）、当該エントリの世代欄８０２に示される値を１つ増やす（ＳＴＥＰ１４０８）。
【００８３】
続いて、論理ユニット管理プログラム４２２２は、外部論理ユニット作成要求コマンドで指定された「共通論理ユニットのサイズ：Ｘ」及び「管理ブロック単位：８」に基づいて、総ブロック数（総配列数）を算出し、当該共通論理ユニットについて、当該総配列数に応じた共通論理ユニットデータ管理テーブル１２００を作成し、初期化のため各配列番号に対応する参照数欄１２０３に「０」を登録する（ＳＴＥＰ１４０９）。
【００８４】
さらに、論理ユニット管理プログラム４２２２は、共通論理ユニット管理テーブル８００の世代欄８０２の値が「０」である各グループについて、イメージ管理テーブル１１００に新たなエントリを作成し、そのグループ、その管理ブロック単位、及びその管理開始ＬＢＡをそれぞれ該当するエントリのグループ欄１１０１、ブロック管理単位欄１１０２、及び先頭ＬＢＡ欄１１０３に登録する（ＳＴＥＰ１４０９）。
【００８５】
次に、論理ユニット管理プログラム４２２２は、外部論理ユニット作成要求コマンドで指定された「共通論理ユニットのサイズ：Ｘ」及び「管理ブロック単位：８」に基づいて算出された総ブロック数（総配列数）に応じて、当該外部論理ユニットについての外部論理ユニットブロックマッピングテーブル９００を作成し、初期化のため、各配列番号に対応する参照ブロック配列番号欄１００３に、まだ参照されていないことを示す値、例えば「−１」をセットする（ＳＴＥＰ１４１１）。
【００８６】
そして、論理ユニット管理プログラム４２２２は、管理インタフェース４２６を介して、作成したターゲット情報及び外部論理ユニット番号をマスタ管理装置５に送信する（ＳＴＥＰ１４１２）。
【００８７】
図１３に戻り、マスタ管理装置５上のマスタ作成プログラム５２１は、ストレージ装置４から送信されるターゲット情報及び外部論理ユニット番号を受信すると（ＳＴＥＰ１３０４）、ストレージ接続機能を用いて、ストレージ装置４のホストインタフェース４２３に接続要求コマンドを送信し、先に作成した外部論理ユニットを接続し、これをマウントする（ＳＴＥＰ１３０５）。接続要求コマンドは、当該外部論理ユニットをターゲットとするターゲット情報を含む。
【００８８】
次に、マスタ作成プログラム５２１は、全ての共通ファイルを選択した後、当該選択された共通ファイルを構成するデータを当該マウントした外部論理ユニットに転送する（ＳＴＥＰ１３０６）。データの書き込みは、典型的には、外部論理ユニットの先頭位置（ＬＢＡ＝０）から行われる。
【００８９】
即ち、マスタ作成プログラム５２１は、ファイルシステムのファイルアドレス管理情報を参照し、共通ファイルを構成するデータが格納されている補助記憶装置５３の記憶領域の論理ブロックアドレスを算出し、当該記憶領域にブロック単位でアクセスしてデータを順次に読み出し、マウントした外部論理ユニットに当該読み出したデータを書き込むためのマスタライト要求コマンドをストレージ装置４に送信する。マスタライト要求コマンドは、論理ブロックアドレス、ブロック数、及びデータ（書き込みデータ）を含む。ストレージ装置４が受信したマスタライト要求コマンドは、ディスクアクセスプログラム４２２１に渡され、図１５に示されるマスタライト処理に従って、ドライブユニット４１上の共通論理ユニットに書き込まれる。
【００９０】
データの転送に先立ち、上述したように、接続要求コマンドに基づいて、ターゲットであるストレージ装置４内に仮想的に作成された外部論理ユニットがマスタ管理装置５にマウントされる。これにより、ディスクアクセスプログラム４２２１は、ターゲット管理テーブル６００を参照し、当該ターゲットについての外部論理ユニット番号欄６０２から外部論理ユニット番号を取得し、続いて、外部論理ユニット管理テーブル７００を参照して、当該取得した外部論理ユニット番号についての内部論理ユニット番号欄７０４から内部論理ユニット番号を、また、グループ欄７０３からグループをそれぞれ取得し、さらに、イメージ管理テーブル１０００を参照して、当該グループについての管理ブロック単位欄１００２から管理ブロック単位を取得する（ＳＴＥＰ１５０１）。
【００９１】
次に、ディスクアクセスプログラム４２２１は、外部論理ユニットブロックマッピングテーブル９００を参照し、取得した管理ブロック単位並びにマスタライト要求コマンドで指定された論理ブロックアドレス（ＬＢＡ）及びブロック数に基づいて、配列番号を算出する。続いて、ディスクアクセスプログラム４２２１は、外部論理ユニットブロックマッピングテーブル９００の参照論理ユニット番号欄９０２に取得した内部論理ユニット番号を、また、参照ブロック配列番号欄９０３に配列番号と同じ値を登録する（ＳＴＥＰ１５０２）。そして、ディスクアクセスプログラム４２２１は、参照論理ユニット番号欄９０２で示される内部論理ユニット番号の参照ブロック配列番号欄９０３で示されるブロックに書き込みデータを格納する（ＳＴＥＰ１５０３）。
【００９２】
データの書き込みが完了すると、ディスクアクセスプログラム４２２１は、書き込んだデータのブロック数に応じて、内部論理ユニットブロック管理テーブル１１００の対応する最終ブロック番号を更新する（ＳＴＥＰ１５０４）。
【００９３】
例えば、ターゲットである外部論理ユニットに対する管理ブロック単位が「８」であり、マスタライト要求コマンドにおいて「ＬＢＡ：０ｘ０」及び「ブロック数：１６」が指定されている場合、配列番号は「０」及び「１」となる。従って、書き込みデータは、内部論理ユニットの参照ブロック配列番号「０」で示される位置に８ブロック分格納され、次に、参照ブロック配列番号「１」で示される位置に８ブロック分格納される。この場合、内部ブロック２つ分のデータを格納したため、内部論理ブロック管理テーブル１１００の最終ブロック番号欄１１０２には「２」が登録される。
【００９４】
最後に、ディスクアクセスプログラム４２２１は、格納したデータに基づいて、データブロックごとにその固有値（ハッシュ値）を算出し、これを共通論理ユニットデータ管理テーブル１２００の配列番号に対応する固有値欄１２０２に登録する（ＳＴＥＰ１５０５）。
【００９５】
（３−２）起動イメージ作成処理
次に、図１６乃至図１８を参照し、本実施形態の本発明の一実施形態に係るコンピュータシステムにおける起動イメージ作成処理を説明する。図１６は、本発明の一実施形態に係るマスタ管理装置５における起動イメージ作成処理を説明するためのフローチャートであり、図１７は、本発明の一実施形態に係るストレージ装置４における個別論理ユニット作成処理を説明するためのフローチャートである。また、図１８は、本発明の一実施形態に係るストレージ装置４における起動イメージ作成時の個別ライト処理を説明するためのフローチャートである。
【００９６】
起動イメージ作成処理は、ホスト装置３が使用する起動イメージを作成するための処理である。ホスト装置３の起動イメージには、マスタ作成処理において使用した起動イメージが使用されるため、ＯＳ及びアプリケーションプログラムのファイルは共通となる。システム管理者は、起動イメージを作成する個別論理ユニットのサイズを任意に設定することができる。ただし、ここでは、個別論理ユニットのブロック数は管理ブロック単位の倍数であるとし、共通論理ユニットのサイズよりも大きい値を設定するものとする。
【００９７】
システム管理者がマスタ管理装置５を操作して、イメージ作成プログラム５２２の実行を指示すると、イメージ作成プログラム５２２は、ＯＳが有するディスク管理機能を呼び出して、所定のディスク管理画面を介して、設定しようとするストレージ装置４における個別論理ユニットの使用サイズ、グループ、及びホスト種別を受け付ける（ＳＴＥＰ１６０１）。これを受けて、イメージ作成プログラム５２２は、ＯＳのファイルシステムの仕様に従って、管理ブロック単位及び管理開始ＬＢＡを算出する（ＳＴＥＰ１６０２）。続いて、イメージ作成プログラム５２２は、外部論理ユニット作成要求コマンドを作成し、ストレージ装置４の管理インタフェース４２６を介して、これをストレージ装置４の論理ユニット管理プログラム４２２２に送信する（ＳＴＥＰ１６０３）。本例では、外部論理ユニット作成要求は、そのパラメータとして、「ホスト種別：個別」、「グループ：Ａ」、及び「個別論理ユニットのサイズ：Ｙ」を含むものとする。
【００９８】
ストレージ装置４上で実行される論理ユニット管理プログラム４２２２は、外部論理ユニット作成要求コマンドを受信すると、以下に示す外部論理ユニット作成処理を行って、個別論理ユニットを作成する。
【００９９】
即ち、論理ユニット管理プログラム４２２２は、外部論理ユニットを割り当てるべきターゲットについてのターゲット情報を作成し、これをターゲット管理テーブル６００のターゲット情報欄６０１に登録する（ＳＴＥＰ１７０１）。次に、論理ユニット管理プログラム４２２２は、当該ターゲットに対して外部論理ユニット番号を割り当て、これをターゲット管理テーブル６００の外部論理ユニット番号欄６００に登録するとともに、外部論理ユニット管理テーブル７００の外部論理ユニット番号欄７０１に登録する（ＳＴＥＰ１７０２）。
【０１００】
論理ユニット管理プログラム４２２２は、次に、外部論理ユニット作成要求コマンドで指定される「個別論理ユニットのサイズ」に基づいて内部論理ユニットのサイズを算出し、内部論理ユニットを作成し、その内部論理ユニット番号を外部論理ユニット管理テーブル７００の内部論理ユニット番号欄７０４に登録する（ＳＴＥＰ１７０３）。これに併せて、論理ユニット管理プログラム４２２２は、当該内部論理ユニット番号を内部論理ユニットブロック管理テーブル９００の内部論理ユニット番号欄９０１に登録するとともに、初期化のため最終ブロック番号９０２欄に「０」を設定する（ＳＴＥＰ１７０４）。また、論理ユニット管理プログラム４２２２は、外部論理ユニット作成要求コマンドに従い、外部論理ユニット管理テーブル７００のホスト種別欄７０２に「個別」を、グループ欄７０３に「Ａ」を登録する。
【０１０１】
続いて、論理ユニット管理プログラム４２２２は、外部論理ユニット作成要求コマンドで指定された「個別論理ユニットのサイズ：Ｙ」及び「管理ブロック単位：８」に基づいて、総ブロック数（総配列数）を算出し、外部論理ユニットブロックマッピングテーブル９００を作成し、各配列番号に対応する参照ブロック配列番号欄１００３に、まだ参照されていないことを示す値、例えば「−１」をセットして、外部論理ユニットブロックマッピングテーブル９００を初期化する（ＳＴＥＰ１７０５）。
【０１０２】
そして、論理ユニット管理プログラム４２２２は、ターゲット情報及び外部論理ユニット番号をマスタ管理装置５に送信する（ＳＴＥＰ１７０６）。
【０１０３】
図１６に戻り、イメージ作成プログラム５２２は、ストレージ装置４から送信されるターゲット情報及び外部論理ユニット番号を受信すると（ＳＴＥＰ１６０４）、ストレージ装置４の管理インタフェース４２６を介して、論理ユニット管理プログラム４２２２にアクセス制御情報有効要求コマンドを送信する（ＳＴＥＰ１６０５）。アクセス制御情報有効要求コマンドは、そのパラメータに、外部論理ユニット番号を含む。
【０１０４】
論理ユニット管理プログラム４２２２は、アクセス制御情報有効要求コマンドを受信すると（図１７のＳＴＥＰ１７０７）、外部論理ユニット管理テーブル７００における当該外部論理ユニット番号についてのアクセス制御情報欄７０５の値を「有効」にセットする（ＳＴＥＰ１７０８）。
【０１０５】
図１６に戻り、イメージ作成プログラム５２２は、ストレージ接続機能を用いて、ストレージ装置４のホストインタフェース４２３に接続要求コマンドを送信し、外部論理ユニットに接続し、これをマウントする（ＳＴＥＰ１６０６）。イメージ作成プログラム５２２は、マウントした外部論理ユニットを、次のデータ転送に先立ち、フォーマットしても良い。
【０１０６】
次に、イメージ作成プログラム５２２は、個別ファイルを選択した後、当該選択された個別ファイルを構成するデータを当該マウントした外部論理ユニットに転送する（ＳＴＥＰ１３０６）。データの書き込みは、典型的には、外部論理ユニットの先頭位置（ＬＢＡ＝０）から行われる。
【０１０７】
即ち、イメージ作成プログラム５２２は、ファイルシステムのファイルアドレス管理情報を参照し、個別ファイルを構成するデータが格納されている補助記憶装置５３の記憶領域の論理ブロックアドレスを算出し、当該記憶領域にブロック単位でアクセスしてデータを順次に読み出し、マウントした外部論理ユニットに当該読み出したデータを書き込むための個別ライト要求コマンドをストレージ装置４に送信する。個別ライト要求コマンドは、論理ブロックアドレス、ブロック数、及び書き込みデータを含む。ストレージ装置４が受信した個別ライト要求コマンドは、ディスクアクセスプログラム４２２１に渡され、図１８に示される個別ライト処理に従って、ドライブユニット４１上の所定の記憶領域に書き込まれる。個別ライト処理が完了すると、イメージ作成プログラム５２２は、ストレージ装置４の管理インタフェース４２６を介して、論理ユニット管理プログラム４２２２にアクセス制御情報無効要求コマンドを送信する（ＳＴＥＰ１６０８）。
【０１０８】
データの転送に先立ち、上述したように、接続要求コマンドに基づいて、ターゲットであるストレージ装置４内に仮想的に作成された外部論理ユニット（個別論理ユニット）がマスタ管理装置５にマウントされる。これにより、ディスクアクセスプログラム４２２１は、ターゲット管理テーブル６００を参照し、当該ターゲットについての外部論理ユニット番号欄６０２から外部論理ユニット番号を取得し、続いて、外部論理ユニット管理テーブル７００を参照して、当該取得した外部論理ユニット番号についての内部論理ユニット番号欄７０４から内部論理ユニット番号を、また、グループ欄７０３からグループをそれぞれ取得し、さらに、イメージ管理テーブル１０００を参照して、当該グループについての管理ブロック単位欄１００２から管理ブロック単位を取得する。さらに、ホスト種別が「個別」であるため、ディスクアクセスプログラム４２２１は、外部論理ユニット管理テーブル７００を参照して、アクセス制御情報欄７０５からアクセス情報を取得するとともに、グループ欄７０３及びホスト種別欄７０２を参照して、同一グループでマスタである内部論理ユニット（つまり共通論理ユニット）についての内部論理ユニット番号欄７０４から内部論理ユニット番号を取得する（ＳＴＥＰ１８０１）。
【０１０９】
ディスクアクセスプログラム４２２１は、次に、外部論理ユニットブロックマッピングテーブル９００を参照し、取得した管理ブロック単位並びに個別ライト要求で指定された論理ブロックアドレス及びブロック数に基づいて、配列番号を算出する。続いて、ディスクアクセスプログラム４２２１は、外部論理ユニットブロックマッピングテーブル９００の参照論理ユニット番号欄９０２に取得した内部論理ユニット番号を、また、参照ブロック配列番号欄９０３に配列番号と同じ値を設定する（ＳＴＥＰ１８０２）。
【０１１０】
続いて、ディスクアクセスプログラム４２２１は、この時点ではアクセス制御情報が「有効」であるので（図１７のＳＴＥＰ１７０８参照）、書き込まれたデータブロック全てについてマッチング処理を行う第１の個別ライト処理を実行する（ＳＴＥＰ１８０３）。第1の個別ライト処理は、図１９を参照して説明される。
【０１１１】
第１の個別ライト処理が終了すると、上述したように、イメージ作成プログラム５２２は、ストレージ装置４の管理インタフェース４２６を介し、論理ユニット管理プログラム４２２２にアクセス制御情報無効要求コマンドを送信する。アクセス制御情報無効要求コマンドを受信した論理ユニット管理プログラム４２２２は、外部論理ユニット管理テーブル７００における当該外部論理ユニットについてのアクセス制御情報欄７０５の値を「無効」に変更する（ＳＴＥＰ１８０４）。
【０１１２】
（３−３）ホスト装置３によるファイルのリード／ライト処理
ホスト装置は、上述した起動イメージ作成処理において得られたターゲット情報を用いて、ネットワーク２を介して接続されたストレージ装置４から起動される。
【０１１３】
即ち、ホスト装置３に電源が投入されると、ホスト装置３のブートプログラムは、ストレージ接続機能を用いて、ターゲットである外部論理ユニットをマウントするため、接続要求コマンドを送信する。接続要求コマンドは、ターゲットを識別するためのターゲット情報を含む。接続要求コマンドを受信したディスクアクセスプログラム４２２１は、上述したように、ターゲット管理テーブル６００を参照し、当該ターゲット情報から外部論理番号を取得する。続いて、ディスクアクセスプログラム４２２１は、取得した外部論理番号を用いて、外部論理ユニット管理テーブル７００、イメージ管理テーブル１０００、及び外部論理ユニットブロックマッピングテーブル９００をそれぞれ参照して、該当するエントリから管理ブロック単位、管理開始ＬＢＡ、アクセス制御情報、個別論理ユニットとしての外部論理ユニットに対する内部論理ユニット番号、共通論理ユニットとしての外部論理ユニットに対する内部論理ユニット番号を取得する。そして、ディスクアクセスプログラム４２２１は、当該接続要求コマンドを一意に識別するためのセッション情報を生成し、ターゲット管理テーブル６００における当該外部論理ユニットについてのセッション情報欄６０３に登録し、当該生成したセッション情報をホスト装置３のブートプログラムに送信する。これにより、ホスト装置３とストレージ装置４との間にセッションが確立され、外部論理ユニットがマウントされることになる。
【０１１４】
ブートプログラムは、続いて、マウントした外部論理ユニット内のファイルにアクセスし、ＯＳを起動する。また、ホスト装置３は、ＯＳ上でアプリケーションプログラムを起動する。これにより、ホスト装置３上のアプリケーションプログラムは、ストレージ装置４の外部論理ユニットにＩ／Ｏアクセスすることが可能になる。即ち、アプリケーションプログラムは、所定のファイルに対するＩ／Ｏ要求を行うと、ライト要求コマンド又はリード要求コマンドがストレージ装置４のホストインターフェース４２３に送信され、これを受けて、ディスクアクセスプログラム４２２１は、当該コマンドに基づいて、ドライブユニット４１にアクセスし、応答する。ライト要求コマンドは、セッション情報、論理ブロックアドレス、ブロック数、及び書き込みデータを含む。ライト要求コマンドを受信したディスクアクセスプログラム４２２１は、ターゲット管理テーブル６００を参照して、セッション情報に一致するターゲットの外部論理ユニット番号を取得する。次に、ディスクアクセスプログラム４２２１は、当該取得した外部論理ユニット番号を用いて、外部論理ユニット管理テーブル７００からアクセス制御情報を取得する。この場合、ホスト種別が「個別」であり、アクセス制御情報が「無効」であれば、共通論理ユニットに対するライト処理の場合にのみデータブロックの比較を行なう第２の個別ライト処理が行われる。
【０１１５】
（３−４）第１の個別ライト処理
図１９は、本発明の一実施形態に係るストレージ装置における第１の個別ライト処理を説明するためのフローチャートである。第１の個別ライト処理は、ターゲットである外部論理ユニットのアクセス制御情報が「有効」である場合に行われる処理である。
【０１１６】
同図に示すように、ディスクアクセスプログラム４２２１は、ライト要求コマンドを受信すると、管理ブロック単位、管理開始ＬＢＡ、書き込み先論理ブロックアドレス、及びブロック数に基づいて、外部論理ユニットブロックマッピングテーブル９００からデータが書き込まれるべきブロックの配列番号、参照論理ユニット番号、及び参照ブロック配列番号を取得するとともに、共通論理ユニット管理テーブル８００から同一のグループに属する共通論理ユニットの内部論理ユニット番号を取得する（ＳＴＥＰ１９０１）。
【０１１７】
ディスクアクセスプログラム４２２１は、次に、管理ブロック単位で、書き込みデータのハッシュ値を算出し、当該算出したハッシュ値と共通論理ユニットデータ管理テーブル１２００の固有値と比較し、さらに、ハッシュ値と固有値とが一致する場合に、内部論理ユニットからデータを読み出して、バイト単位で、書き込みデータと読み出しデータとを比較する（ＳＴＥＰ１９０２）。
【０１１８】
比較の結果、ディスクアクセスプログラム４２２１は、データが同一であると判断する場合（ＳＴＥＰ１９０３のＹｅｓ）、最新の共通論理ユニットを参照させるために、外部論理ユニットブロックマッピングテーブル９００に参照論理ユニット番号及び参照ブロック配列番号を再設定する（ＳＴＥＰ１９０４）。そして、ディスクアクセスプログラム４２２１は、新旧の共通論理ユニットデータ管理テーブル１２００の参照数を更新する（ＳＴＥＰ１９０５）。
【０１１９】
これに対して、ディスクアクセスプログラム４２２１は、共通論理ユニットに同一のデータがないと判断する場合（ＳＴＥＰ１９０３のＮｏ）、個別論理ユニットに書き込みデータを格納する。即ち、ディスクアクセスプログラム４２２１は、内部論理ユニットブロック管理テーブル１１００を参照して、最終ブロック番号を取得し、当該最終ブロック番号で示されるブロックに書き込みデータを格納する（ＳＴＥＰ１９０６）。そして、ディスクアクセスプログラム４２２１は、外部論理ユニットブロックマッピングテーブル９００に参照論理ユニット番号及び参照ブロック配列番号を再設定するとともに（ＳＴＥＰ１９０７）、内部論理ユニットブロック管理テーブル１１００の最終ブロック番号を更新する（ＳＴＥＰ１９０８）。
【０１２０】
そして、ディスクアクセスプログラム４２２１は、全てのデータブロックについてマッチングチェックを行ったか否かを判断し（ＳＴＥＰ１９０９）、まだマッチングを行っていないデータブロックがあれば（ＳＴＥＰ１９０９のＮｏ）、ＳＴＥＰ１９０２の処理に戻る。
【０１２１】
（３−５）第２の個別ライト処理
図２０は、本発明の一実施形態に係るストレージ装置における第２の個別ライト処理を説明するためのフローチャートである。第２の個別ライト処理は、ターゲットである外部論理ユニットのアクセス制御情報が「無効」である場合に行われる処理である。
【０１２２】
同図に示すように、ディスクアクセスプログラム４２２１は、ライト要求コマンドを受信すると、管理ブロック単位、管理開始ＬＢＡ、書き込み先論理ブロックアドレス、及びブロック数に基づいて、外部論理ユニットブロックマッピングテーブル９００からデータが書き込まれるべきブロックの配列番号、参照論理ユニット番号、及び参照ブロック配列番号を取得する（ＳＴＥＰ２００１）。
【０１２３】
ディスクアクセスプログラム４２２１は、次に、外部論理ユニットブロックマッピングテーブル９００を参照し、参照ブロック配列番号が初期値（例えば「−１」）のままであるか否かを判断する（ＳＴＥＰ２００２）。ディスクアクセスプログラム４２２１は、参照ブロック配列番号が初期値のままであると判断する場合には（ＳＴＥＰ２００２のＮｏ）、ＳＴＥＰ２００８〜ＳＴＥＰ２０１０の処理を行う。ＳＴＥＰ２００８〜ＳＴＥＰ２０１１の処理は、図１９に示したＳＴＥＰ１９０６〜ＳＴＥＰ１９０９の処理と同じであるので、説明を省略する。
【０１２４】
これに対して、ディスクアクセスプログラム４２２１は、参照ブロック配列番号が初期値以外であると判断する場合には（ＳＴＥＰ２００２のＹｅｓ）、続いて、参照論理ユニット番号が共通論理ユニットを示すものであるか否かを判断する（ＳＴＥＰ２００３）。ディスクアクセスプログラム４２２１は、参照論理ユニット番号が共通論理ユニットを示すものでない（つまり個別論理ユニットである）と判断する場合には（ＳＴＥＰ２００３のＮｏ）、同様に、ＳＴＥＰ２００８〜ＳＴＥＰ２０１０の処理を行う。
【０１２５】
ディスクアクセスプログラム４２２１は、参照論理ユニット番号が共通論理ユニットを示すものであると判断する場合（ＳＴＥＰ２００３のＹｅｓ）、上述した第１の個別ライト処理と同じように、管理ブロック単位ごとに、データの同一性をチェックし、共通論理ユニット又は個別論理ユニットにデータを書き込む（ＳＴＥＰ２００４〜ＳＴＥＰ２０１０）。ＳＴＥＰ２００４〜ＳＴＥＰ２０１１の処理は、図１９に示したＳＴＥＰ１９０２〜ＳＴＥＰ１９０９の処理と同じであるので、説明を省略する。
【０１２６】
（３−６）リード処理
図２１は、本発明の一実施形態に係るストレージ装置におけるリード処理を説明するためのフローチャートである。
【０１２７】
ホスト装置３から送信されるリード要求コマンドは、セッション情報、論理ブロックアドレス、及びブロック数を含む。ディスクアクセスプログラム４２２１は、リード要求コマンドを受信すると、セッション情報で指定されるターゲットの外部論理ユニット番号を取得する。続いて、ディスクアクセスプログラム４２２１は、当該取得した外部論理ユニット番号について、同様に、外部論理ユニットブロックマッピングテーブル９００からデータを読み出すべきブロックを示す配列番号、参照論理ユニット番号、及び参照ブロック配列番号を取得する（ＳＴＥＰ２１０１）。ここで、参照論理ユニット番号は、共通論理ユニット又は個別論理ユニットの内部論理ユニット番号である。
【０１２８】
ディスクアクセスプログラム４２２１は、次に、外部論理ユニットブロックマッピングテーブル９００を参照し、当該取得した配列番号についての参照論理ユニット番号及び参照ブロック配列番号を取得し、データを読み出すべき内部論理ユニットのブロック位置及びブロック数を特定する（ＳＴＥＰ２１０２）。続いて、ディスクアクセスプログラム４２２１は、特定した内部論理ユニットのブロック位置より、管理ブロック単位で、データを読み出す（ＳＴＥＰ２１０３）。
【０１２９】
後述するマスタ更新処理が行われると、世代の異なる複数の共通論理ユニットが存在することになる。このため、ディスクアクセスプログラム４２２１は、同一のグループに属する共通論理ユニットに複数世代が存在するか否かを判断し（ＳＴＥＰ２１０３）、存在すると判断する場合には（ＳＴＥＰ２１０３のＹｅｓ）、さらに、リード要求されているデータが世代の古い共通論理ユニットを参照しているか否かを判断し（ＳＴＥＰ２１０４）、そうであるならば（ＳＴＥＰ２１０４のＹｅｓ）、以下に示すデータ移動処理を行う（ＳＴＥＰ２１０５）。
【０１３０】
（３−７）データ移動処理
図２２は、本発明の一実施形態に係るストレージ装置４におけるデータ移動処理を説明するためのフローチャートである。
【０１３１】
即ち、ディスクアクセスプログラム４２２１は、管理ブロック単位で、読み出しデータのハッシュ値を算出し、当該算出したハッシュ値と、当該共通論理ユニットの共通論理ユニットデータ管理テーブル１２００の固有値と比較し、さらに、ハッシュ値と固有値とが一致する場合に、内部論理ユニットからデータを読み出して、バイト単位で、書き込みデータと読み出しデータとを比較する（ＳＴＥＰ２２０１）。
【０１３２】
比較の結果、ディスクアクセスプログラム４２２１は、データが同一であると判断する場合には（ＳＴＥＰ２２０２のＹｅｓ）、最新の共通論理ユニットを参照させるために、外部論理ユニットブロックマッピングテーブル９００に参照論理ユニット番号及び参照ブロック配列番号を再設定する（ＳＴＥＰ２２０３）。続いて、ディスクアクセスプログラム４２２１は、新旧それぞれの共通論理ユニットデータ管理テーブル１２００の参照数を更新する（ＳＴＥＰ２２０４〜ＳＴＥＰ２２０５）。
【０１３３】
これに対して、ディスクアクセスプログラム４２２１は、データが同一でないと判断する場合、つまり、新しい世代の共通論理ユニットに同一のデータがない場合（ＳＴＥＰ２２０２のＮｏ）、読み出したデータを最新の共通論理ユニットにコピーする（ＳＴＥＰ２２０６）。この場合、ディスクアクセスプログラム４２２１は、最終ブロック番号の位置から順にデータが格納され、コピー完了後、データを格納したブロック数に応じて、内部論理ユニットブロック管理テーブル１１００１の最終ブロック番号を更新する。
【０１３４】
次に、ディスクアクセスプログラム４２２１は、最新の共通論理ユニットを参照させるために、外部論理ユニットブロックマッピングテーブル９００の参照論理ユニット番号及び参照ブロック配列番号を再設定する（ＳＴＥＰ２２０７）。そして、ディスクアクセスプログラム４２２１は、新旧それぞれの共通論理ユニットデータ管理テーブル１２００の参照数を更新する（ＳＴＥＰ２２０８〜ＳＴＥＰ２２０９）。
【０１３５】
そして、ディスクアクセスプログラム４２２１は、全てのデータブロックについてマッチングを行ったか否かを判断し（ＳＴＥＰ２２１０）、まだマッチングを行っていないデータブロックがあれば（ＳＴＥＰ２２１０のＮｏ）、ＳＴＥＰ２２０２の処理に戻る。
【０１３６】
（３−８）マスタ更新処理
図２３は、本発明の一実施形態に係るストレージ装置におけるマスタ更新処理を説明するためのフローチャートである。
【０１３７】
マスタ更新処理とは、各ホスト装置３が共通で使用するＯＳやアプリケーションプログラム等のファイル（共通ファイル）を更新する処理である。各ホスト装置が、単に、このような共通ファイルの更新処理を行なっただけでは、データが個別論理ユニットに移され、共通論理ユニットのデータが参照されないことになる。そこで、本実施形態では、共通ファイルが更新されても、これらの共通ファイルが参照されるように制御される。
【０１３８】
まず、システム管理者は、マスタ管理装置５を操作して、共通ファイルの更新を行なう。その後、マスタ作成プログラム５２１の実行により、上述したような起動イメージ作成処理が行われる。これにより、共通論理ユニット管理テーブル８００には、同じグループに属する世代の異なる共通論理ユニットについてのエントリが新たに追加される。
【０１３９】
次に、更新管理プログラム５２３は、ストレージ装置４の管理インタフェース４２６を介して、論理ユニット管理プログラム４２２２にアクセス制御情報有効要求コマンドを送信する（ＳＴＥＰ２３０１）。アクセス制御情報有効要求コマンドは、ホスト装置３がターゲットにする外部論理ユニットの外部論理ユニット番号を含む。これを受けて、ストレージ装置４の論理ユニット管理プログラム４２２２は、外部論理ユニット管理テーブル７００における当該外部論理ユニット番号に対応するアクセス制御情報欄７０５の値を「有効」に変更する。
【０１４０】
更新管理プログラム５２３は、次に、ホスト装置３の更新要求受付プログラム３２１に更新実行要求コマンドを送信する（ＳＴＥＰ２３０２）。更新実行要求コマンドは、更新対象のファイル名、当該ファイルを構成するデータを含む。これにより、更新要求受付プログラム３２１は、ファイルの更新（追加や置換等）を行う。ホスト装置３において更新処理が行われると、ホスト装置３は、ライト要求コマンドを送信する。
【０１４１】
ホスト装置３からライト要求コマンドを受信したストレージ装置４のディスクアクセスプログラム４２２１は、当該外部論理ユニットについてのアクセス制御情報が「有効」に変更されているため、書き込みデータの全てについて、すでに格納されているデータと一致しているか否かの比較を行なう第1の個別ライト処理を行う。
【０１４２】
更新処理を完了したホスト装置３は、更新終了コマンドをマスタ管理装置５に送信し、更新管理プログラム５２３は、これを受信する（ＳＴＥＰ２３０３）。
【０１４３】
更新管理プログラム５２３は、ストレージ装置４の管理インタフェース４２６を介して、論理ユニット管理プログラム４２２２にアクセス制御情報無効要求コマンドを送信する（ＳＴＥＰ２３０４）。アクセス制御情報無効要求コマンドは、ホスト装置３がターゲットにする外部論理ユニットの外部論理ユニット番号を含む。これを受けて、論理ユニット管理プログラム４２２２は、外部論理ユニット管理テーブル７００における当該外部論理ユニットに対応するアクセス制御情報欄７０５の値を「無効」に変更する。
【０１４４】
従って、この後、ホスト装置３が当該外部論理ユニットのファイルに対してライト要求を行うと、ディスクアクセスプログラム４２２１は、第２の個別ライト処理を行うことになる。上述したように、第２の個別ライト処理においては、共通論理ユニットに対する書き込みデータについてのみ、比較処理が行われることになる。
【０１４５】
なお、ホスト装置３によるライト要求に従う書き込みデータと共通論理ユニットに格納されたデータとの比較処理は、ディスクアクセスを伴う場合がある。そのため、比較処理の頻度が高い第１の個別ライト処理は、ホスト装置３において更新処理が行われている間のみ実行されることが好ましい。第２の個別ライト処理は、共通論理ユニットを参照するブロックにデータを書き込む際に比較を行う。
【０１４６】
また、比較処理の負荷を軽減するため、ストレージ装置４のディスクアクセスプログラム４２２１は、例えば、ホスト装置３に割り当てられたスワップ領域に関する情報を、ホスト装置３から予め取得する。これにより、ディスクアクセスプログラム４２２１は、スワップ領域に対する書き込みデータについて比較処理を行わずに、書き込みデータを個別論理ユニットに移動できるため、比較処理回数を削減できることになる。
【０１４７】
（３−９）共通論理ユニット削除処理
共通論理ユニット削除処理は、ストレージ装置４内で参照されなくなった古い世代の共通論理ユニットを削除する処理である。
【０１４８】
システム管理者は、マスタ管理装置５を操作して、共通論理ユニット削除指示を与えると、更新管理プログラム５２３は、ストレージ装置４の管理インタフェース４２６を介して、論理ユニット管理プログラム４２２２に共通論理ユニット削除要求コマンドを送信する。共通論理ユニット削除要求コマンドは、パラメータとして、削除すべき共通論理ユニットが属するグループを含む。本例では、「グループ：Ａ」に対する共通論理ユニット削除要求コマンドであるとする。
【０１４９】
共通論理ユニット削除要求コマンドを受信した論理ユニット管理プログラム４２２２は、外部論理ユニット管理テーブル７００を参照し、「グループ：Ａ」に属する共通論理ユニット（つまりマスタ）の内部論理ユニット番号を取得し、当該共通論理ユニットの共通論理ユニットデータ管理テーブル１２００を特定する。続いて、論理ユニット管理プログラム４２２２は、当該特定した共通論理ユニットデータ管理テーブル１２００の参照数欄１２０３を参照し、参照数が全て０であるか否かを判断する。論理ユニット管理プログラム４２２２は、参照数が全て０であると判断する場合には、当該共通論理ユニットについての内部論理ユニットを削除するとともに、内部論理ユニットブロック管理テーブル１１００、共通論理ユニットデータ管理テーブル８００、及び外部論理ユニットブロックマッピングテーブル９００を削除する。また、論理ユニット管理プログラム４２２２は、外部論理ユニット管理テーブル７００及び共通論理ユニット管理テーブル410-2における当該共通論理ユニットについてのエントリを削除する。
【０１５０】
第１及び第２の個別ライト処理並びにリード処理におけるデータ移動処理によって世代の古い共通論理ユニットから新しい論理ユニットへ参照ブロック配列番号が更新される。従って、定期的に共通論理ユニット削除処理が実行されることで、参照されなくなった古い世代の共通論理ユニットが削除されることになる。
（４）本実施形態の利点及び他の実施形態
【０１５１】
以上のように、本実施形態によれば、各ホスト装置３の共通ファイルを共通論理ユニットに格納し、これを共有するので、ホスト装置が使用するデータの重複を排除することができるとともに、ホスト装置３が更新した固有のデータを個別論理ユニットに格納して保持することができる。
【０１５２】
例えば、ホスト装置がクライアントコンピュータの場合、通常、ＯＳ及びアプリケーションプログラムに関するファイル／データの記憶領域に数ＧＢ程度必要とされる。従来は、ＯＳ及びアプリケーションプログラムの更新が重ねられていくと、典型的には、旧バージョンのファイルのバックアップが保存されていくため、このような記憶領域は増加していくことになるが、本実施形態では、このような記憶領域の重複を排除し、効果的にディスクスペースを活用することができるようになる。
【０１５３】
上記実施形態は、本発明を説明するための例示であり、本発明を上記実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱しない限り、さまざまな形態で実施することができる。例えば、上記実施形態では、各種プログラムの処理をシーケンシャルに説明したが、特にこれにこだわるものではない。従って、処理結果に矛盾が生じない限り、処理の順序を入れ替えまたは並行動作するように構成しても良い。
【０１５４】
また、本発明は、仮想化機構を実装したサーバコンピュータの仮想コンピュータシステムにも適用することができる。
【０１５５】
仮想化機構が使用される場合、サーバコンピュータのローカルディスク（補助記憶装置）に仮想ディスクを作成し、当該作成した仮想ディスクにマスタである起動イメージをインストールすることで、仮想的なマスタ管理装置５をサーバコンピュータ上に起動する。この後、システム管理者は、仮想的なマスタ管理装置５を操作して、上述したようなマスタ作成処理を行う。
【０１５６】
また、イメージ作成プログラム５２２は、仮想サーバ用ＯＳをインストールする。イメージ作成プログラム５２２は、外部論理ユニット作成要求コマンドを仮想サーバに送信し、仮想ホスト装置の起動イメージを格納する外部論理ユニットをストレージ装置４に作成する。イメージ作成プログラム５２２は、ストレージ接続機能を用いて接続要求コマンドをストレージ装置４のホストインタフェース４２３に送信し、ターゲットである外部論理ユニットをマウントする。
【０１５７】
続いて、イメージ作成プログラム５２２は、外部論理ユニットをフォーマットして、仮想サーバ用ＯＳの起動イメージを格納するファイルを作成する。イメージ作成プログラム５２２は、このファイルに起動イメージをコピーする。
【０１５８】
仮想サーバは、１つの外部論理ユニットに複数の仮想ディスクを作成し、仮想ディスクに起動イメージをインストールする。仮想ディスクの起動イメージは各ホスト装置３に対して共通であるため、データは個別論理ユニットに格納されず、共通論理ユニットに格納される。
【０１５９】
仮想コンピュータシステムの場合、仮想サーバが外部論理ユニットをマウントし、仮想ホスト装置は仮想ディスクへのリード／ライト処理のみを行う。仮想ホスト装置のライト要求は、仮想サーバを介して、ストレージ装置４のディスクアクセスプログラム４２２１に通知され、個別ライト処理を行なうことができる。リード処理も同様である。
【０１６０】
また、本発明は、本実施形態のシステムに従来のような重複排除を考慮しないシステムを混在させたコンピュータシステムを構成することもできる。
【０１６１】
即ち、重複排除を行ないホスト装置は、共通論理ユニットを使用せず個別論理ユニットのみを使用するように構成される。これは、例えば、共通論理ユニットを使用するグループを「なし」として、ホスト装置の起動イメージが作成される。従って、外部論理ユニット管理テーブル７００のグループ欄７０３に「なし」が設定される。ストレージ装置４は、「グループ：なし」の場合、共通論理ユニットに対する参照処理を行わないように制御する。
【産業上の利用可能性】
【０１６２】
本発明は、ネットワークを介してホスト装置に接続されるストレージ装置に広く適用することができる。
【図面の簡単な説明】
【０１６３】
【図１】本発明の一実施形態に係るコンピュータシステムの概略構成を示す図である。
【図２】本発明の一実施形態に係るホスト装置の内部構成を概略的に示す図である。
【図３】本発明の一実施形態に係るストレージ装置の内部構成を概略的に示す図である。
【図４】本発明の一実施形態に係るマスタ管理装置の内部構成を概略的に示す図である。
【図５】本発明の一実施形態に係るストレージ装置内の論理ユニットの構成を概念的に説明するための図である。
【図６】本発明の一実施形態に係るストレージ装置のターゲット管理テーブルの一例を示す図である。
【図７】本発明の一実施形態に係るストレージ装置の外部論理ユニット管理テーブルの一例を示す図である。
【図８】本発明の一実施形態に係るストレージ装置の共通論理ユニット管理テーブルの一例を示す図である。
【図９】本発明の一実施形態に係るストレージ装置の外部論理ユニットブロックマッピングテーブルの一例を示す図である。
【図１０】本発明の一実施形態に係るストレージ装置のイメージ管理テーブルの一例を示す図である。
【図１１】本発明の一実施形態に係るストレージ装置の内部論理ユニットブロック管理テーブルの一例を示す図である。
【図１２】本発明の一実施形態に係るストレージ装置の共通論理ユニットデータ管理テーブルの一例を示す図である。
【図１３】本発明の一実施形態に係るマスタ管理装置におけるマスタ作成処理を説明するためのフローチャートである。
【図１４】本発明の一実施形態に係るストレージ装置における共通論理ユニット作成処理を説明するためのフローチャートである。
【図１５】本発明の一実施形態に係るストレージ装置におけるマスタライト処理を説明するためのフローチャートである。
【図１６】本発明の一実施形態に係るマスタ管理装置における起動イメージ作成処理を説明するためのフローチャートである。
【図１７】本発明の一実施形態に係るストレージ装置における個別論理ユニット作成処理を説明するためのフローチャートである。
【図１８】本発明の一実施形態に係るストレージ装置における起動イメージ作成時の個別ライト処理を説明するためのフローチャートである。
【図１９】本発明の一実施形態に係るストレージ装置における第１の個別ライト処理を説明するためのフローチャートである。
【図２０】本発明の一実施形態に係るストレージ装置における第２の個別ライト処理を説明するためのフローチャートである。
【図２１】本発明の一実施形態に係るストレージ装置におけるリード処理を説明するためのフローチャートである。
【図２２】本発明の一実施形態に係るストレージ装置におけるデータ移動処理を説明するためのフローチャートである。
【図２３】本発明の一実施形態に係るストレージ装置における第２の個別ライト処理を説明するためのフローチャートである。
【符号の説明】
【０１６４】
１…コンピュータシステム
２…ネットワーク
３…ホスト装置
４…ストレージ装置
４１…ドライブユニット
４２…コントローラユニット
５…マスタ管理装置
【図１】
0004990828.tif 000002
【図２】
0004990828.tif 000003
【図３】
0004990828.tif 000004
【図４】
0004990828.tif 000005
【図５】
0004990828.tif 000006
【図６】
0004990828.tif 000007
【図７】
0004990828.tif 000008
【図８】
0004990828.tif 000009
【図９】
0004990828.tif 000010
【図１０】
0004990828.tif 000011
【図１１】
0004990828.tif 000012
【図１２】
0004990828.tif 000013
【図１３】
0004990828.tif 000014
【図１４】
0004990828.tif 000015
【図１５】
0004990828.tif 000016
【図１６】
0004990828.tif 000017
【図１７】
0004990828.tif 000018
【図１８】
0004990828.tif 000019
【図１９】
0004990828.tif 000020
【図２０】
0004990828.tif 000021
【図２１】
0004990828.tif 000022
【図２２】
0004990828.tif 000023
【図２３】
0004990828.tif 000024