(57)【要約】【課題】クライアント１００およびストレージ装置３００間で、ノード装置２００を介してデータを授受可能な計算機システムにおいて、ディスク装置からのデータ読みだし速度を向上する。【解決手段】ストレージ装置３００のディスク装置に、共通ボリュームＰＤｃと固有ボリュームＰＤａ、ＰＤｂを定義する。共通ボリュームには各クライアントに共通のデータ、固有ボリュームにはクライアントごとに固有のデータを格納する。各クライアントが、仮想ボリュームＶＤａ、ＶＤｂに対してデータの読み出しを要求すると、ストレージ装置は、共通ボリュームまたは固有ボリュームから対応するデータを読み出す。こうすることにより、複数クライアントからのアクセスが集中した場合でも、共通ボリュームからのデータの読み出しが主となるため、読みだし速度の低下を抑制することができる。【選択図】  図２
2004287477.tif 000002
【特許請求の範囲】
【請求項１】
ディスク装置に記憶されたデータを複数のクライアントからの要求に応じて提供するデータ提供装置であって、
前記ディスク装置は、
前記複数のクライアントが共通して使用する所定容量の共通ボリュームと、
前記複数のクライアントに対応付けて区切られた複数の固有ボリュームとを有し、
前記複数のクライアントごとに個別に仮想的なボリュームを割り当てる仮想ボリューム管理部と、
該仮想的なボリューム内に仮想的に定義された仮想ブロックと、前記共通ボリュームおよび固有ボリュームについて物理的に規定された各物理ブロックとの対応づけを管理するブロック対応管理部と、
前記クライアントから前記仮想ブロックの指定を伴う読出コマンドを受け付けるコマンド受付部と、
前記ブロック対応管理部を参照して、該仮想ブロックに対応するデータを、該クライアントに対応する固有ボリュームまたは前記共通ボリュームから読み出し、該読出コマンドを発信したクライアントに対して出力する読出制御部とを備えるデータ提供装置。
【請求項２】
請求項１記載のデータ提供装置であって、
前記クライアントは、該データ提供装置からのデータ供給を受けてリモートブート可能であり、
前記共通ボリュームは、該リモートブート時に前記複数のクライアントに供給すべきデータを格納したデータ提供装置。
【請求項３】
請求項１記載のデータ提供装置であって、
前記ブロック対応管理部は、前記複数の仮想ボリュームにおける少なくとも一部の仮想ブロックを、同一の共通ブロックに対応づけるデータ提供装置。
【請求項４】
請求項１記載のデータ提供装置であって、
該データ提供装置と前記複数のクライアントとの間には、データのキャッシュ機能を備える複数のノード装置が接続されており、
該データ提供装置は、
前記ノード装置からの要求に応じて、各データが共通ボリュームおよび固有ボリュームのいずれに格納されているかを特定するための特定情報を該ノード装置に出力する特定情報出力部を備えるデータ提供装置。
【請求項５】
請求項４記載のデータ提供装置であって、
前記特定情報は、前記仮想ブロックと前記物理ブロックとの対応関係であるデータ提供装置。
【請求項６】
請求項４記載のデータ提供装置であって、
前記特定情報出力部は、前記読出コマンドに関わらず所定のタイミングで、複数の仮想ブロックに関する前記特定情報を出力するデータ提供装置。
【請求項７】
請求項４記載のデータ提供装置であって、
前記ノード装置からの要求は、仮想ブロックの指定を含んでおり、
前記特定情報出力部は、該指定された仮想ブロックに関する前記特定情報を出力するデータ提供装置。
【請求項８】
請求項１記載のデータ提供装置であって、
所定の上位データ提供装置と前記複数のクライアントに接続され、両者間でのデータの授受を中継するノード装置として構成されており、
前記クライアントからの読出コマンドで指定された仮想ブロックに対応するデータが、前記ディスク装置に格納されていない場合には、該データの読出コマンドを前記上位データ提供装置に送信するコマンド送信部と、
前記上位データ提供装置から、該データ、および該データが共通ボリュームおよび固有ボリュームのいずれに格納されていたデータであるかを表す特定情報を受信するデータ受信部と、
該受信したデータを前記クライアントに転送する転送部と、
該受信したデータを前記特定情報に応じて前記共通ボリュームおよび固有ボリュームのいずれかに格納するとともに、該格納場所に応じて前記ブロック対応管理部における前記仮想ブロックと前記物理ブロックとの対応づけを更新する格納制御部とを備えるデータ提供装置。
【請求項９】
請求項８記載のデータ提供装置であって、
前記特定情報は、前記仮想ブロックと他の仮想ブロックとのデータの共通性も特定可能であり、
前記コマンド送信部による読出コマンドの送信に先立って、該特定情報の出力を前記上位データ提供装置に要求する特定情報要求部と、
前記コマンド送信部は、該出力要求に応じて該上位データ提供装置から受信した前記特定情報に基づいて、前記データが、前記ディスク装置に格納されているか否かを判断するデータ提供装置。
【請求項１０】
請求項８記載のデータ提供装置であって、
前記特定情報は、前記仮想ブロックと他の仮想ブロックとのデータの共通性も特定可能であり、
該特定情報を前記上位データ提供装置から取得し、管理する特定情報管理部を備え、
前記コマンド送信部は、該特定情報管理部を参照して、前記データが、前記ディスク装置に格納されているか否かを判断するデータ提供装置。
【請求項１１】
請求項１０記載のデータ提供装置であって、
前記特定情報管理部は、前記特定情報として、前記仮想ブロックと前記上位データ提供装置における物理ブロックとの対応関係を管理しており、
前記ブロック対応管理部は、
前記上位データ提供装置における物理ブロックと、該データ提供装置における物理ブロックとの対応関係を管理する物理ブロック管理部を有し、
前記特定情報管理部および物理ブロック管理部を参照して、前記仮想ブロックと該データ提供装置における物理ブロックとの対応関係を特定するデータ提供装置。
【請求項１２】
ディスク装置に記憶されたデータを複数のクライアントからの要求に応じて提供するデータ提供装置の制御方法であって、
前記ディスク装置について、前記複数のクライアントが共通して使用する所定容量の共通ボリュームと、前記複数のクライアントに対応付けて区切られた複数の固有ボリュームとを定義する設定情報を管理するステップと、
前記複数のクライアントごとに個別に仮想的なボリュームを割り当てるステップと、
該仮想的なボリューム内に仮想的に定義された仮想ブロックと、前記共通ボリュームおよび固有ボリュームについて物理的に規定された各物理ブロックとの対応づけを管理するステップと、
前記クライアントから前記仮想ブロックの指定を伴う読出コマンドを受け付けるステップと、
前記ブロック対応管理部を参照して、該仮想ブロックに対応するデータを、該クライアントに対応する固有ボリュームまたは前記共通ボリュームから読み出し、該読出コマンドを発信したクライアントに対して出力するステップとを備えるデータ提供装置の制御方法。
【請求項１３】
ディスク装置に記憶されたデータを複数のクライアントからの要求に応じて提供するデータ提供装置の動作を制御するためのコンピュータプログラムであって、
前記ディスク装置について、前記複数のクライアントが共通して使用する所定容量の共通ボリュームと、前記複数のクライアントに対応付けて区切られた複数の固有ボリュームとを定義する設定情報を管理する機能と、
前記複数のクライアントごとに個別に仮想的なボリュームを割り当てる機能と、
該仮想的なボリューム内に仮想的に定義された仮想ブロックと、前記共通ボリュームおよび固有ボリュームについて物理的に規定された各物理ブロックとの対応づけを管理する機能と、
前記クライアントから前記仮想ブロックの指定を伴う読出コマンドを受け付ける機能と、
前記ブロック対応管理部を参照して、該仮想ブロックに対応するデータを、該クライアントに対応する固有ボリュームまたは前記共通ボリュームから読み出し、該読出コマンドを発信したクライアントに対して出力する機能とを該データ提供装置において実現するためのコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ストレージ装置、ノード装置など、複数のクライアントからアクセスを受ける大容量記憶装置におけるデータの格納・読み出し制御に関する。
【０００２】
【従来の技術】
企業などでは、複数のクライアントコンピュータ（以下、単にクライアントと称する）をネットワークで接続した大規模な計算機システムが構築されている。このような計算機システムでは、各クライアントで業務を遂行する際に使用する種々のデータやプログラムを提供するため、ストレージ装置と呼ばれる大容量の記憶装置が接続されている。ストレージ装置は、大容量のハードディスクを備えており、各クライアントのユーザは、自己に割り当てられた領域、または共有の領域に対して、データやプログラムなどの格納・読み出しを行う。通常、ストレージ装置へのアクセスには、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）と呼ばれるプロトコルが使用される。近年では、ＳＣＳＩ用のコマンドを、いわゆるＩＰパケットに分割してネットワーク上を転送するためのｉＳＣＳＩと呼ばれるプロトコルが提案されている。ｉＳＣＳＩを用いることにより、従来よりも更に多数のクライアント、および遠隔地のクライアントがストレージ装置にアクセス可能な環境が提供されつつある。
【０００３】
ストレージ装置の活用方法の一つとして、リモートブートと呼ばれるクライアントの起動方法が挙げられる。リモートブートでは、起動に必要なオペレーティングシステム、環境設定ファイルなどの各種ファイルが、予めストレージ装置の各ユーザ用の領域に格納されている。各クライアントは、ネットワークを介してこれらのファイルをストレージ装置から読み込むことにより、起動することができる。
【０００４】
リモートブートする場合、クライアントは、ストレージ装置へのアクセスを実現するための比較的小さなブートプログラムをＲＯＭに記憶していれば十分であり、ハードディスクを備えている必要がない。ハードディスクに格納されるべきデータはストレージ装置で一元管理されるから、仮にクライアントコンピュータが破損、盗難などに遭っても、重要なデータの遺失、漏洩を逃れることができるというセキュリティ上の利点がある。また、各ユーザは、ネットワーク上に接続されたいずれのクライアントも、一定の環境設定で起動させることができるという実用上の利点もある。リモートブートについては、例えば、特許文献１〜３に開示されている。
【０００５】
【特許文献１】
特開平６−３３２７１６号公報
【特許文献２】
特開２００１−７５８５３号公報
【特許文献３】
特開２０００−２５９５８３号公報
【０００６】
【発明が解決しようとする課題】
リモートブートを行う場合、多数のクライアントがほぼ同時に起動すると、ストレージ装置へのアクセスが集中し、各クライアントへのファイル供給が遅れ、ひいては起動に長時間かかるという状況を招くことがあった。本願発明者の調査によれば、１０台程度のクライアントが同時に起動した場合には、既にユーザが支障を感じる程度に起動時間が長引くことが見いだされている。クライアントの起動は、通常、企業の始業時に集中する傾向が強いため、このような状況は比較的起きやすかった。
【０００７】
ストレージ装置へのアクセスを緩和するため、クライアントとストレージ装置との間に、キャッシュ用のメモリを備えたノード装置を設けることがある。かかるシステムでは、ノード装置にキャッシュ済みのデータは、ストレージ装置にアクセスするまでなくクライアントに供給可能であるため、ストレージ装置へのアクセスが緩和される。しかし、かかるシステムにおいても、複数のクライアントが同時に起動する場合には、ノード装置へのアクセスが集中するため、起動時間が長くなるという課題は、十分に解決できなかった。
【０００８】
上述の課題は、リモートブートに限るものではなく、またストレージ装置、ノード装置に限るものでもない。いわゆる複数のクライアントからアクセスを受け得る記憶装置におけるデータの読み出し時に共通の課題であった。本発明は、かかる課題に鑑み、複数のクライアントから記憶装置へのアクセスが集中した場合でも、記憶装置からの円滑なデータ供給を実現することを目的とする。
【０００９】
【課題を解決するための手段】
本発明では、データ提供装置に次の構成を適用することで、上記課題の少なくとも一部の解決を図る。データ提供装置とは、ディスク装置に記憶されたデータを複数のクライアントからの要求に応じて提供する装置であり、例えば、ストレージ装置やノード装置などが含まれる。
【００１０】
本発明のデータ提供装置に備えられたディスク装置は、複数のクライアントが共通して使用する所定容量の共通ボリュームと、複数のクライアントに対応付けて区切られた複数の固有ボリュームとを有する。データ提供装置は、これらの共通ボリューム、固有ボリュームとは別に、各クライアントに個別に仮想的なボリュームを割り当てる。この仮想的なボリューム内にはクライアントとのデータ授受で使用される仮想的に定義されたデータ格納場所として仮想ブロックが用意されている。データ提供装置は、この仮想ブロックと、共通ボリュームおよび固有ボリュームについて物理的に規定された各物理ブロックとの対応づけを管理している。
【００１１】
本発明において、仮想ブロックの論理的な管理単位としてのクライアントは、例えば、データ提供装置に接続される計算機単位、各計算機を利用するユーザ単位、各ユーザの環境設定単位などの設定が可能である。計算機単位とする場合、各計算機を使用するユーザに関わらず、計算機ごとに一定の利用環境を提供することができる。ユーザ単位とすれば、どの計算機を利用するかに関わらず、ユーザ固有の利用環境を提供することができる。環境設定単位とすれば、各ユーザは複数の利用環境を使い分けることができる。以下、本明細書において、「クライアント」という用語は、仮想ブロックの論理的な管理単位を意味するものとして用い、ハードウェアとしてのクライアントコンピュータに対しては「計算機」という用語を用いるものとする。
【００１２】
クライアントからデータ提供装置へは、仮想ブロックを指定してデータの読出コマンドが送信される。データ提供装置は、上述の対応付けに基づき、この読出コマンドで指定された仮想ブロックに対応するデータを、クライアントに対応する固有ボリュームまたは共通ボリュームから読み出す。クライアントの識別は、計算機を特定するアドレス情報や、ユーザやその利用環境を特定するためのＩＤ情報によって行うことができる。
【００１３】
本発明のデータ提供装置によれば、共通ボリュームと固有ボリュームに区分けして、データを格納することができる。このように区分けしてデータを格納していても、仮想ボリュームを用いることにより、クライアントは、共通ボリュームおよび固有ボリュームという区分を考慮することなく、データにアクセスすることができる。
【００１４】
一般に、ディスク装置では、データを読み出すためのヘッドの物理的な移動量がデータの読み出し速度に少なからず影響を与える。本発明のデータ提供装置は、上述のデータ格納方法を採ることにより、複数のクライアントから共通して読み出されるデータを共通ボリュームでまとめて管理することができる。共通ボリュームにまとめて格納されたデータについては、複数のクライアントからのアクセスが集中しても、ヘッドの移動量を抑制することができ、データの読み出し速度低下を抑制することができる。本発明において、共通ボリュームは一つに限る必要はなく、複数設けても構わない。但し、読み出し速度確保という観点からは、共通ボリュームは一つにまとめておくことが好ましい。
【００１５】
共通ボリュームには、複数のクライアントからのアクセスが集中する可能性のあるデータを格納することが好ましい。例えば、データ提供装置を用いて、クライアントのリモートブートを行う場合には、リモートブート時に各クライアントに供給すべきデータ、例えば、オペレーティングシステムなどのファイルを共通ボリュームに格納することができる。また、企業内で固有の業務を遂行するための専用システムでは、その業務専用のアプリケーションプログラムを共通ボリュームに格納してもよい。
【００１６】
共通ボリュームには、必ずしも複数のクライアントに共通して提供されるデータのみを格納する必要はなく、いずれかのクライアントに固有のデータが混在していても構わない。例えば、企業内において出納業務を行うクライアントと、生産管理を行うクライアントが混在している場合を考える。各クライアントは、起動時に、出納業務用のアプリケーションおよび生産管理用のアプリケーションをそれぞれ起動させる。このような場合、これらのアプリケーションプログラムは始業時にそれぞれのクライアントから同時に読み出される可能性が高くなるから、共通ボリュームに格納しておくことが好ましい。
【００１７】
本発明において、異なるクライアントの仮想ブロックを同一の共通ブロックに対応づけてもよい。こうすることにより、各クライアントは同一の共通ブロックからデータを読み出すことが可能となる。従って、複数のクライアントに共通して提供されるデータが存在する場合には、共通ボリュームに一組のデータを格納しておけば足り、複数のデータを重複して格納しておく必要がなくなる。
【００１８】
本発明のデータ提供装置は、ノード装置を備える計算機システムに適用することも可能である。ノード装置とは、データ提供装置と複数のクライアントとの間に接続され、両者間でデータの中継を行う装置である。中継されるデータは、ノード装置のディスク装置にキャッシュされる。この場合、キャッシュされたデータの読み出し速度の低下を抑制するためには、ノード装置においても、データ提供装置の共通ボリュームに格納されているデータと固有ボリュームに格納されているデータとを区分して取扱可能とすることが好ましい。
【００１９】
ノード装置における上記取扱を可能とするため、データ提供装置は、例えば、各データが共通ボリュームおよび固有ボリュームのいずれに格納されているかを特定するための特定情報をノード装置に出力可能としてもよい。特定情報は、例えば、仮想ブロックと物理ブロックとの対応関係とすることができる。共通ボリュームおよび固有ボリュームのいずれに格納されているかを表すフラグを、データごとに特定情報として添付するようにしてもよい。
【００２０】
データ提供装置がノード装置に特定情報を送出するタイミングは、種々の設定が可能である。例えば、ノード装置の起動時など、読出コマンドに関わらない所定のタイミングとしてもよい。この場合、複数の仮想ブロックに関する特定情報をまとめて出力することが好ましい。こうすることにより、ノード装置は、クライアントからの読出コマンドの受信時に、データが共通ボリューム、固有ボリュームのいずれに格納されているかを確認する必要がなくなるため、読み出し時の処理を簡略化することができる。
【００２１】
別の態様として、ノード装置からデータ提供装置に、仮想ブロックを指定して特定情報の送出を要求したタイミングとしてもよい。データ提供装置は、この要求に応じて、指定された仮想ブロックに関する特定情報を送出する。特定情報のみを送出してもよいし、データとともに送出してもよい。かかる態様では、ノード装置は、キャッシュされていないデータについての特定情報を管理する必要がなくなるため、ハードウェア資源の節約、管理負荷の軽減を図ることができる。
【００２２】
特定情報は、各クライアントの仮想ブロックと物理ブロックとを対応づける情報であるから、クライアントに依存した情報である。データ提供装置は、あるクライアントに対応した特定情報を、そのクライアントが利用するノード装置に対してのみ送出してもよいし、クライアントが利用するか否かに関わらず複数のノード装置に送出するようにしてもよい。前者によれば、無駄な通信を省きトラフィックの軽減を図ることができる。また、ノード装置にとっても無用な特定情報を管理する必要がなくなるという利点がある。後者によれば、ユーザが別のノード装置に接続されている計算機に移動した場合でも、従前の特定情報を活用することができる利点がある。
【００２３】
本発明は、ノード装置として構成することもできる。ノード装置には、データ提供装置とクライアントの間でデータを中継するという機能を有する点を除けば、基本的にデータ提供装置と同等の構成を適用することができる。この意味で、本発明のノード装置は、データ提供装置の一形態、即ち、上位のデータ提供装置からデータの供給を受け、クライアントにデータを提供する機能を有するデータ提供装置としてとらえることもできる。以下、説明の便宜上、データの供給源となる装置をデータ提供装置、中継機能を備える装置をノード装置と称し、ノード装置における物理ブロックを「キャッシュブロック」と称する。
【００２４】
本発明としてのノード装置は、データ提供装置と同様の構成を適用することにより、クライアントから指定された仮想ブロックに対応するデータを、共通ボリュームまたは固有ボリュームから読み出すことができる。また、ノード装置は、データ提供装置から受信したデータを、共通ボリュームと固有ボリュームに分けてディスク装置内にキャッシュする。
【００２５】
このようなキャッシュ機能は次の構成によって実現される。ノード装置は、クライアントから指定されたデータが、ノード装置のディスク装置に格納されていない場合には、そのデータの読出コマンドをデータ提供装置に送信する。データ提供装置からは、指定したデータ、及びそのデータが共通ボリュームおよび固有ボリュームのいずれに格納されていたデータであるかを表す特定情報を受信する。ノード装置は、受信したデータをクライアントに転送するとともに、特定情報に応じて共通ボリュームおよび固有ボリュームのいずれかに格納する。また、格納先に応じて、ノード装置における仮想ブロックとキャッシュブロックとの対応づけを更新する。
【００２６】
特定情報は、格納先だけでなく、仮想ブロックと他の仮想ブロックとのデータの共通性も特定可能とすることが好ましい。こうすれば、ノード装置は、各クライアントからの読出コマンドで指定された仮想ブロック間の共通性を判断することができ、既にキャッシュされているか否かの判断に活用することができる。また、既にキャッシュ済みのデータについては、キャッシュを省略することが可能となり、ノード装置のハードウェア資源の節約を図ることも可能となる。
【００２７】
このような特定情報の取得は、種々のタイミングで行うことができる。例えば、ノード装置からデータ提供装置への読出コマンドの送信に先立って、特定情報の出力をデータ提供装置に要求してもよい。こうすれば、データの受信前にキャッシュ済みか否かを確認することができ、トラフィックの軽減を図ることができる。こうして取得された特定情報をノード装置内で管理し、以後、キャッシュ済みか否かの判断に活用してもよい。特定情報をデータ提供装置から事前に取得して管理しておいてもよい。
【００２８】
ここで、特定情報としては、仮想ブロックとデータ提供装置における物理ブロックとの対応関係を用いることができる。この対応関係は、データ提供装置がデータの格納場所を管理するために保有している情報をそのまま活用することができる。ノード装置では、この物理ブロックとキャッシュブロックとの対応関係を管理することにより、間接的に仮想ブロックとキャッシュブロックを対応づけることができる。こうすることにより、データの格納、キャッシュ済みか否かの判断に、データ提供装置が有する情報を活用することができる。
【００２９】
本発明において、上述した種々の特徴は、適宜、組み合わせたり、一部を省略したりすることが可能である。また、本発明は、上述したデータ提供装置、ノード装置に限らず種々の態様で構成することが可能である。例えば、これらの装置を接続した計算機システムとして構成してもよいし、データ提供装置、ノード装置、計算機システムの制御方法として構成してもよい。コンピュータによりこの制御を実現するためのコンピュータプログラムおよびこれを記録した記憶媒体として構成してもよい。ここで、記憶媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ、光ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置などコンピュータが読取り可能な種々の媒体を利用できる。
【００３０】
【発明の実施の形態】
本発明の実施の形態について以下の順序で説明する。
Ａ．システム構成；
Ｂ．データの格納状態；
Ｃ．機能ブロック；
Ｄ．テーブルのデータ構造；
Ｅ．データ読出処理；
Ｆ．変形例；
【００３１】
Ａ．システム構成；
図１は実施例としての計算機システムの構成を示す説明図である。この計算機システムでは、ストレージ装置３００に、複数のノード装置２００および計算機１００がＩＰパケットを授受可能なネットワークで接続されている。ネットワークとしては、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、イントラネット、インターネットなどを適用することができる。
【００３２】
ストレージ装置３００は、図示するハードウェア構成を有するコンピュータとして構成されており、大容量のディスク装置３１０に蓄積されたデータをノード装置２００経由で各計算機１００に提供することができる。また、各計算機１００はハードディスク３１０にデータを格納することもできる。ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）３０４は、ネットワークを介してデータを授受するためのインタフェースである。Ｉ／Ｏ３０５は、入出力装置用のインタフェースである。
【００３３】
ストレージ装置３００では、ＣＰＵ３０１が、ディスク装置３１０およびＲＯＭ３０３に記憶された制御用のプログラムに従って、データの授受を制御する。メモリ３０２は、このプログラムの動作時に使用される主記憶である。
【００３４】
ノード装置２００は、図示するハードウェア構成を有するコンピュータとして構成されており、ストレージ装置３００と計算機１００の間で授受されるデータを中継する機能を奏する。ディスク装置２１０およびメモリ２０２は、中継されるデータを一時的に蓄積するキャッシュのために利用される。ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２０４は、ネットワークを介してデータを授受するためのインタフェースである。Ｉ／Ｏ２０５は、入出力装置用のインタフェースである。
【００３５】
ノード装置２００では、ＣＰＵ２０１が、ディスク装置２１０およびＲＯＭ２０３に記憶された制御用のプログラムに従って、データの中継およびキャッシュを制御する。メモリ２０２は、このプログラムの動作時に使用される主記憶である。
【００３６】
計算機１００は、ハードディスクを備えないディスクレスコンピュータである。内部には、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＮＩＣ１０４およびＩ／Ｏ１０５が備えられている。計算機１００は、起動時には、必要なオペレーティングシステムなどのファイルをストレージ装置３００から読み込むことで、リモートブートする。ＲＯＭ１０３には、リモートブート用のプログラムが予め記憶されている。
【００３７】
ストレージ装置３００、ノード装置２００、計算機１００の動作を制御するためのプログラムは、ＣＤ−ＲＯＭなどの記録媒体によってストレージ装置に供給してもよい。
【００３８】
Ｂ．データの格納状態；
図２はデータの格納および読出状態を模式的に示す説明図である。ここでは、２台のクライアント１００ａ、１００ｂが接続されている状態を示した。クライアント１００ａ、１００ｂは、単にハードウェアとしての計算機というだけでなく、その計算機を使用するユーザが確定している状態を意味する。
【００３９】
ストレージ装置３００では、クライアント１００ａ、１００ｂのそれぞれに対応する仮想ボリュームＶＤａ、ＶＤｂが定義されている。仮想ボリュームＶＤａ、ＶＤｂとは、ストレージ装置３００のディスク装置３１０内に設けられた物理的な領域ではなく、各クライアントのデータを管理するための論理的なディスクを意味する。ディスク装置３１０の物理的な領域には、クライアント１００ａ、１００ｂのそれぞれに固有に割り当てられる固有ボリュームＰＤａ、ＰＤｂと、両者が共通して使用する共通ボリュームＰＤｃがパーティションによって定義されている。図示する通り、仮想ボリュームＶＤａは固有ボリュームＰＤａおよび共通ボリュームＰＤｃに割り当てられており、仮想ボリュームＶＤｂは固有ボリュームＰＤｂおよび共通ボリュームＰＤｃに割り当てられている。以下、仮想ボリュームＶＤａ、ＶＤｂにおけるデータの格納場所を仮想ブロック、ディスク装置３１０内におけるデータの格納場所を物理ブロックと称する。
【００４０】
ノード装置２００においても同様に、クライアント１００ａ、１００ｂのそれぞれに対応する仮想ボリュームＶＣａ、ＶＣｂが定義されている。ノード装置２００のディスク装置２１０の物理的な領域には、クライアント１００ａ、１００ｂのそれぞれに固有に割り当てられる固有ボリュームＰＣａ、ＰＣｂと、両者が共通して使用する共通ボリュームＰＣｃが定義されている。図示する通り、仮想ボリュームＶＣａは固有ボリュームＰＣａおよび共通ボリュームＰＣｃに割り当てられており、仮想ボリュームＶＣｂは固有ボリュームＰＣｂおよび共通ボリュームＰＣｃに割り当てられている。以下、ノード装置２００のディスク装置２１０におけるデータの格納場所をキャッシュブロックと称する。
【００４１】
クライアント１００ａは、リモートブート時など種々のタイミングで、仮想ブロックを指定してデータの読み出し要求をノード装置２００に送信する。ノード装置２００は、指定されたデータが仮想ボリュームＶＣａにキャッシュ済みであるか否かを確認する。キャッシュ済みである場合、ノード装置２００は、仮想ボリュームＶＣａに対応する固有ボリュームＰＣａまたは共通ボリュームＰＣｃからデータを読みだし、クライアント１００ａに返信する。
【００４２】
仮想ボリュームＶｃａにキャッシュされていない場合には、ノード装置２００は、読出コマンドをストレージ装置３００に送信する。ストレージ装置３００は、読出コマンドで指定された仮想ブロックに対応するデータを、固有ボリュームＰＤａおよび共通ボリュームＰＤｃから読み出し、ノード装置２００に返信する。ノード装置２００は、このデータをクライアント１００ａに返信するとともに、仮想ボリュームＶＣａに対応する固有ボリュームＰＣａまたは共通ボリュームＰＣｃに格納する。クライアント１００ｂからの読出コマンドについても同様の処理が行われる。
【００４３】
図３はデータの格納例を示す説明図である。図の左側には、ストレージ装置３００で管理される仮想ボリュームＶＤａ、ＶＤｂに格納されているファイルを示し、右側には固有ボリュームＰＤａ、ＰＤｂおよび共通ボリュームＰＤｃに格納されているファイルを示した。仮想ボリュームＶＤａには、クライアント１００ａで使用されるオペレーティングシステムＯＳａ用のファイル、および種々のアプリケーションプログラムや文書データが格納されている。オペレーティングシステムＯＳａには図示する６つのファイルが含まれており、ＩＰＬ，  ＤＯＳ．ＳＹＳ，  ＩＮＯＵＴ．ＳＹＳ，  ＣＯＭ．ＣＯＭはユーザの環境設定等に依存しないファイル、ＣＯＮＦ．ＳＹＳ，  ＡＵＴＯ．ＢＡＴはデフォルトの環境設定を表すファイルであるものとする。仮想ボリュームＶＤｂには、クライアント１００ｂで使用されるオペレーティングシステムＯＳｂ用のファイル等が格納されている。オペレーティングシステムＯＳｂは、環境設定を表すファイルＣＯＮＦ．ＳＹＳｂ，  ＡＵＴＯ．ＢＡＴｂがオペレーティングシステムＯＳａと相違している。
【００４４】
本実施例では、各クライアントに固有のファイルを固有ボリュームＰＤａ、ＰＤｂに格納し、各クライアントが共通して使用するファイルを共通ボリュームＰＤｃに格納する。従って、クライアント１００ａが仮想ボリュームＶＤａに格納されているファイルのうち、アプリケーション１、アプリケーション２、および文書ファイルａは、実際には固有ボリュームＰＤａに格納されている。オペレーティングシステムＯＳａ用の６つのファイルは、共通して使用されるファイルであるため、共通ボリュームＰＤｃに格納される。
【００４５】
一方、クライアント１００ｂについては、仮想ボリュームＶＤｂに格納されているファイルのうち、アプリケーション１、アプリケーション３、文書ファイルｂは、実際には固有ボリュームＰＤｂに格納されている。オペレーティングシステムＯＳｂ用の６つのファイルのうち、環境設定に依存しないファイルは共通ボリュームＰＤｃに格納されている。環境設定を表すファイルＣＯＮＦ．ＳＹＳｂ，  ＡＵＴＯ．ＢＡＴｂは、クライアント１００ｂに固有のファイルとして扱われており、固有ボリュームＰＤｂに格納される。
【００４６】
固有ボリュームＰＤａ、ＰＤｂおよび共通ボリュームＰＤｃに格納すべきデータの分類については、種々の設定が可能である。例えば、デフォルトの環境設定を表すファイルＣＯＮＦ．ＳＹＳ，  ＡＵＴＯ．ＢＡＴについても、クライアント１００ａの固有のファイルとして扱い、固有ボリュームＰＤａに格納してもよい。別の設定として、クライアント１００ｂの環境設定を表すファイルＣＯＮＦ．ＳＹＳｂ，  ＡＵＴＯ．ＢＡＴｂも含め、リモートブートで使用するファイルを全て共通ボリュームＰＤｃに格納するものとしてもよい。更に、別の設定として、クライアント１００ａ、１００ｂが共通して使用するアプリケーション１を共通ボリュームＰＤｃに格納してもよい。
【００４７】
Ｃ．機能ブロック；
図４は計算機システムを構成する各装置内の機能ブロックを示す説明図である。本実施例では、図示する各機能ブロックは、それぞれコンピュータプログラムをインストールすることによりソフトウェア的に構成される。各機能ブロックは、ハードウェア的に構成することも可能である。
【００４８】
計算機１００の機能ブロックは、次の通りである。ＴＣＰ／ＩＰモジュール１２０は、ネットワークを介してＩＰパケットを通信する。ＳＣＳＩモジュール１２２は、ストレージ装置３００に対してデータの読み出し、書き込み用のコマンド送受信などを行う。ｉＳＣＳＩモジュール１２１は、ＳＣＳＩコマンドとＩＰパケットの変換を行うことによって、ＳＣＳＩコマンドをＴＣＰ／ＩＰで送受信可能とする。ブートプログラム１３０は、計算機１００でリモートブートを実現する。ブートプログラム１３０は、計算機１００の初期化を行う機能、起動に必要なオペレーティングシステムなどのファイルをストレージ装置から読み込む機能、これらのファイルを起動してブートする機能などを実現することができる。ＩＤ入力モジュール１３１は、リモートブートを行う際に、ストレージ装置３００に送信すべきユーザＩＤ、パスワードを入力する。本実施例では、これらのモジュールは、ＲＯＭ１０３に記憶されているプログラムによって実現される。
【００４９】
上述の各機能ブロックによってリモートブートが完了すると、計算機１００には、ストレージ装置３００から供給されたファイルによってオペレーティングシステム１４０が起動する。計算機１００上の各処理に利用されるアプリケーション１５０は、ストレージ装置３００から供給され、オペレーティングシステム１４０の上で稼働する。
【００５０】
ノード装置２００には、ネットワークを介してＳＣＳＩコマンドを授受するため、ＴＣＰ／ＩＰモジュール２２０、ｉＳＣＳＩモジュール２２１、ＳＣＳＩモジュール２２２が備えられている。ノード装置２００には、所定のオペレーティングシステムがインストールされており、このオペレーティングシステム上で稼働するアプリケーションによってキャッシュ制御モジュール２３０が実現されている。
【００５１】
キャッシュ制御モジュール２３０は、物理ブロック管理テーブル２３４、キャッシュ管理テーブル２３２を参照して、ノード装置２００におけるキャッシュを制御する。物理ブロック管理テーブル２３４とは、仮想ボリュームにおけるデータの格納場所、即ち仮想ブロックと、ストレージ装置３００におけるデータの格納場所、即ち物理ブロックとを対応づけるテーブルである。キャッシュ管理テーブル２３２とは、物理ブロックと、ノード装置２００におけるデータの格納場所、即ちキャッシュブロックとを対応づけるテーブルである。これらのテーブルのデータ構造については後述する。物理ブロック管理テーブル２３４およびキャッシュ管理テーブル２３２を順次参照することにより、クライアントから指定された仮想ブロックに対応するデータが格納されているキャッシュブロックを特定することができる。
【００５２】
ストレージ装置３００には、ネットワークを介してＳＣＳＩコマンドを授受するため、ＴＣＰ／ＩＰモジュール３２０、ｉＳＣＳＩモジュール３２１、ＳＣＳＩモジュール３２２が備えられている。ストレージ装置３００には、所定のオペレーティングシステムがインストールされており、このオペレーティングシステム上で稼働するアプリケーションによってアクセス制御モジュール３３０が実現されている。
【００５３】
アクセス制御モジュール３３０は、ユーザ管理テーブル３３４、物理ブロック管理テーブル３３２を参照して、ディスク装置３１０のデータの読み書きを制御する。ユーザ管理テーブル３３４は、ユーザＩＤと仮想ボリュームとを対応づけるテーブルである。物理ブロック管理テーブル３３２とは、仮想ブロックと物理ブロックとを対応づけるテーブルである。アクセス制御モジュール３３０は、計算機１００の起動時に、計算機１００からユーザＩＤを取得する。このユーザＩＤに基づいてユーザ管理テーブル３３４を参照することで、ユーザに対応する仮想ボリュームを計算機１００に割り当てる。本明細書では、このように仮想ボリュームが特定された状態を「クライアント」と称する。
【００５４】
アクセス制御モジュール３３０は、以後、クライアントから指定された仮想ブロックに対して、物理ブロック管理テーブル３３２を参照して、ディスク装置３１０のデータの読み書きを制御することができる。
【００５５】
Ｄ．テーブルのデータ構造；
図５はユーザ管理テーブル３３４の構造を示す説明図である。ユーザ管理テーブル３３４は、ユーザＩＤ、パスワード、仮想ボリューム、属性、ＩＰアドレスを対応づけて管理する。属性とは、仮想ボリュームに対する他のユーザのアクセスの可否を表している。「専有」は他のユーザのアクセスが禁止されていることを意味し、「共有」は許可されていることを意味する。ＩＰアドレスは、ユーザがログインした計算機によって変動する。属性、ＩＰアドレスは、ユーザ管理テーブル３３４から省略してもよい。
【００５６】
図６は物理ブロック管理テーブル３３２の構造を示す説明図である。図の上方にデータ構造を示し、下方に仮想ブロックと物理ブロックとの対応関係を模式的に示した。先に説明した通り、物理ブロック管理テーブル３３２は、仮想ブロックと物理ブロックの対応関係を示すテーブルであり、仮想ボリューム単位で設けられている。図中には、仮想ボリュームＶＤａに対応するテーブルを例示した。このテーブルでは、仮想ボリュームＶＤａの仮想ブロックＢＬ０〜ＢＬｎに対して、実際にデータが格納されている物理ブロックが記憶されている。物理ブロックは、物理ボリュームとブロック番号との組み合わせで定義される。
【００５７】
図に例示したテーブルは、下方に模式的に示した対応関係を表している。つまり、仮想ブロックＢＬ０のデータは、共通ボリュームＰＤｃのブロックＢＬ０に格納されている。同様にして、仮想ブロックＢＬ１〜ＢＬｎの各データは、それぞれ共通ボリュームＰＤｃまたは固有ボリュームＰＤａのいずれかのブロックに格納されている。このテーブルを参照することにより、クライアントが指定した仮想ブロックに対応するデータを、共通ボリュームＰＤｃまたは固有ボリュームＰＤａから読み出すことが可能となる。物理ブロック管理テーブル３３２は、仮想ブロックＶＤｂに対しても同様の形式でデータを記録している。仮想ブロックＶＤｂに対しては、共通ボリュームＰＤｃと固有ボリュームＰＤｂのブロックが割り当てられることになる。共通ボリュームＰＤｃのブロックに対しては、仮想ブロックＶＤａ、ＶＤｂの双方が対応づけられる可能性がある。かかる対応付けにより、共通ボリュームＰＤｃのデータを複数のクライアントで共有することが可能となる。
【００５８】
ノード装置２００が備える物理ブロック管理テーブル２３４も同様の形式でデータを格納する。ノード装置は、物理ブロック管理テーブル２３４として、ストレージ装置３００に格納されている全てのデータに関する情報を管理してもよいし、キャッシュされているデータに関する部分の情報のみを管理してもよい。
【００５９】
図７はキャッシュ管理テーブル２３２の構造を示す説明図である。このテーブルは、図の右側に示す通り、ストレージ装置３００における物理ブロックと、ノード装置２００におけるキャッシュブロックとを対応づけている。物理ブロックは、物理ボリュームとブロック番号で特定される。
【００６０】
図中の左側には、２つの仮想ボリュームＶＤａ、ＶＤｂにそれぞれ対応する物理ブロック管理テーブル２３４ａ、２３４ｂの内容を併せて例示した。ノード装置２００は、物理ブロック管理テーブル２３４ａ、２３４ｂおよびキャッシュ管理テーブル２３２を参照することにより、仮想ブロックに対応するデータの格納場所を特定することができる。例えば、仮想ボリュームＶＤａの仮想ブロックＢＬ０は、物理ブロック管理テーブル２３４ａにより、物理ボリュームＰＤｃのブロックＢＬ０に対応するデータであることが特定される。次に、キャッシュ管理テーブル２３２を参照すると、物理ボリュームＰＤｃのブロックＢＬ０は、キャッシュブロックＢＬ０に格納されていることがわかる。
【００６１】
図では、キャッシュブロックは、物理ボリュームと無関係に割り当てられる場合を例示した。ノード装置２００においても、共通ボリュームＰＣｃと固有ボリュームＰＣａ、ＰＣｂが定義されているから、これらに振り分けてデータを格納してもよい。例えば、ストレージ装置３００において共通ボリュームＰＤｃに格納されているデータを、共通ボリュームＰＣｃに格納し、固有ボリュームＰＤａ、ＰＤｂに格納されているデータを、それぞれ固有ボリュームＰＣａ、ＰＣｂに格納してもよい。
【００６２】
別の態様として、固有ボリュームについてはクライアントを区別することなくデータを格納するようにしてもよい。例えば、ストレージ装置３００において固有ボリュームＰＤａ、ＰＤｂに格納されているデータを区別することなく、同一の固有ボリュームに格納するようにしてもよい。
【００６３】
Ｅ．データ読出処理；
図８はデータ読み出し処理のフローチャートである。リモートブート時を例にとり、左側にクライアント１００の処理、中央にノード装置２００の処理、右側にストレージ装置３００の処理を示した。
【００６４】
ユーザが計算機の電源をオンにすると、ＩＤ入力モジュール１３１によって、ユーザＩＤ、パスワード等の入力画面が提示される。ユーザが、ユーザＩＤ、パスワードを入力し、ログインすると、クライアント１００は、ＩＰアドレスとともにこれらの情報を、ノード装置２００およびストレージ装置３００に送信する（ステップＳ１０）。ストレージ装置３００は、この情報に基づいてユーザ管理テーブル３３４を参照し、ユーザの認証を行う（ステップＳ３０）。正規なユーザであることが確認されると、ストレージ装置３００は、ユーザ管理テーブル３３４に、クライアント１００のＩＰアドレスを記録するとともに、ユーザに対応した仮想ボリューム名を通知する。この通知は、ノード装置２００を介してクライアント１００に送信される。以後、クライアント１００からのデータの読み出し要求等は、この仮想ボリューム名に基づいて行われる。
【００６５】
クライアント１００は、ＲＯＭに記録されているブートプログラム１３０を起動する（ステップＳ１１）。ブートプログラム１３０は、ブートに必要な初期化処理を行った上で、オペレーティングシステムのデータ読み出し要求をノード装置に対して送信する（ステップＳ１２）。
【００６６】
ノード装置２００は、読み出し要求を受信し、既にキャッシュ済みであるか否かを確認する（ステップＳ２０）。この確認は、図７で説明した通り、物理ブロック管理テーブル２３４とキャッシュ管理テーブル２３２を参照して行う。キャッシュ済みの場合は（ステップＳ２０）、キャッシュブロックから該当するデータを読み出し、クライアント１００に返信する（ステップＳ２５）。クライアント１００は、このデータを受信して起動処理を継続する（ステップＳ１３）。
【００６７】
要求されたデータがキャッシュされていない（以下、「未キャッシュ」と呼ぶ）場合（ステップＳ２０）、ノード装置は、ストレージ装置に対して、クライアント１００から要求された仮想ブロックがどの物理ブロックに格納されているかを問い合わせる（ステップＳ２１）。ストレージ装置３００は、この問い合わせを受けると、物理ブロック管理テーブル３３２を参照して、仮想ブロックが格納されている物理ブロックの物理ボリュームおよびブロック番号を、ノード装置２００に返信する（ステップＳ３１）。
【００６８】
ノード装置２００は、物理ブロック管理テーブル２３４に、ストレージ装置３００から受信した情報を格納し、クライアント１００から要求されたデータがキャッシュ済みか否かを、再度確認する（ステップＳ２２）。この時点では、物理ブロック管理テーブル２３４が更新されただけであり、ストレージ装置３００から新たにデータを受信した訳ではないが、キャッシュ済みと判断される場合が起こり得る。例えば、クライアント１００が、共通ボリュームに格納されているデータの読み出しを要求している場合である。共通ボリュームに格納されているデータは、既に他のクライアントの読み出し要求に応じて、ノード装置２００にキャッシュされている場合がある。新たに接続されたクライアント１００から要求された仮想ブロックについて、ストレージ装置３００から物理ブロックに関する情報を取得して初めて、キャッシュ済みのデータとの対応関係が判明した場合には、この時点で、キャッシュ済みと判断される。キャッシュ済みと判断した場合には（ステップＳ２２）、ノード装置２００は、キャッシュされているデータをクライアントに返信し（ステップＳ２５）、クライアントはこれを受信する（ステップＳ１３）。
【００６９】
物理ブロック管理テーブル２３４を更新したにもかかわらず、未キャッシュと判断した場合（ステップＳ２２）、ノード装置２００はストレージ装置３００にデータの読み出しを要求する（ステップＳ２３）。ストレージ装置３００は、この要求に応じて、共通ボリュームまたは固有ボリュームからデータを読み出し、ノード装置２００に返信する（ステップＳ３２）。
【００７０】
ノード装置２００は、ストレージ装置３００からデータを受信すると、これをキャッシュし、キャッシュ管理テーブル２３２を更新する（ステップＳ２４）。また、受信したデータをクライアントに返信し（ステップＳ２５）、クライアントはこれを受信する（ステップＳ１３）。
【００７１】
上述の処理において、ノード装置２００において、ステップＳ２０で未キャッシュと判断されたデータが、物理ブロック管理テーブル２３４を更新することにより、ステップＳ２２でキャッシュ済みと判断される具体例を示す。図７において、先に仮想ボリュームＶＤｂ、ＢＬ０のデータがキャッシュブロックＢＬ０に既にキャッシュ済みであり、クライアントから仮想ボリュームＶＤａ、ＢＬ０のデータについて読み出し要求を受けた場合を考える。ノード装置２００は、この時点では、物理ブロック管理テーブル２３４ａの仮想ブロックＢＬ０に対応するデータを管理していないため、要求されたデータは未キャッシュと判断する。その後、ストレージ装置３００から、物理ブロック管理テーブル２３４ａの１行目のデータ、即ち、仮想ブロックＢＬ０が物理ディスクＰＤｃ、ブロックＢＬ０に格納されている情報を取得する。このデータを取得すると、ノード装置２００は、更新後の物理ブロック管理テーブル２３４ａ、およびキャッシュ管理テーブル２３２を参照することにより、要求されたデータがキャッシュブロックＢＯ０にキャッシュ済みであると判断することができる。
【００７２】
以上の処理を繰り返し行うことにより、クライアント１００は、ブートに必要なファイルを取得し、リモートブートを完了することができる。図８ではリモートブート時の読み出し処理を示したが、リモートブートと無関係に通常のデータ読み出し時にも、データ読み出し要求（ステップＳ１２）からデータ受信（ステップＳ１３）の処理が同様にして行われる。
【００７３】
以上で説明した実施例の計算機システムでは、リモートブート用のデータは、複数のクライアントに共有される共通ボリュームに格納され、ノード装置においても複数のクライアントに共通のデータとしてキャッシュされる。従って、これらのデータについて複数のクライアントからのアクセスが集中しても、データ読み出し時におけるディスク装置のヘッド移動量を抑制することができ、読み出し速度低下を抑制することができる。
【００７４】
Ｆ．変形例；
（１）  実施例では、ノード装置２００は、クライアントから要求されたデータが未キャッシュと判断された場合に（図８のステップＳ２０）、ストレージ装置３００に物理ブロックに関する情報の問い合わせを行う場合を例示した。これに対し、ストレージ装置３００で管理している物理ブロック管理テーブル３３２の全データを、予めノード装置２００に送信しておいてもよい。こうすることにより、ノード装置２００は、ストレージ装置３００への問い合わせ（図８のステップＳ２１）を行うまでなく、要求されたデータがキャッシュ済みかを判断することが可能となる。
【００７５】
（２）  実施例では、ストレージ装置３００は、物理ブロックに関する情報の問い合わせを受けたノード装置２００に対してのみ、物理ブロック管理テーブルの情報を返信する場合を例示した（図８のステップＳ３１）。これに対して、ストレージ装置３００は、全てのノード装置に対して、物理ブロック管理テーブルの情報をマルチキャストしてもよい。こうすることにより、ユーザが別のノード装置に接続されている計算機１００で再ログインした場合でも、ノード装置は、ストレージ装置３００から得られた情報を有効活用して、キャッシュ済みか否かの判断を迅速に行うことが可能となる。
【００７６】
（３）  実施例では、ノード装置が設けられている計算機システムを例示した。これに対し、本発明は、ストレージ装置に計算機が直接、接続されている計算機システムに適用することも可能である。かかる計算機システムでは、図８におけるノード装置の処理が省略される。ストレージ装置は、クライアントからの要求（ステップＳ１２）に応じて、物理ブロック管理テーブル３３２を参照し、データの返信を行えばよい（ステップＳ３２，Ｓ１３）。かかる処理でも、複数のクライアントに共通するデータを共通ボリュームで管理することにより、読み出し速度の低下を抑制するという効果を得ることができる。
【００７７】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。
【００７８】
【発明の効果】
本発明によれば、共通ボリュームと固有ボリュームに区分けして、データを格納することにより、複数のクライアントから共通して読み出されるデータを共通ボリュームでまとめて管理することができる。共通ボリュームにまとめて格納されたデータについては、複数のクライアントからのアクセスが集中しても、ヘッドの移動量を抑制することができ、データの読み出し速度低下を抑制することができる。
【図面の簡単な説明】
【図１】実施例としての計算機システムの構成を示す説明図である。
【図２】データの格納および読出状態を模式的に示す説明図である。
【図３】データの格納例を示す説明図である。
【図４】計算機システムを構成する各装置内の機能ブロックを示す説明図である。
【図５】ユーザ管理テーブル３３４の構造を示す説明図である。
【図６】物理ブロック管理テーブル３３２の構造を示す説明図である。
【図７】キャッシュ管理テーブル２３２の構造を示す説明図である。
【図８】データ読み出し処理のフローチャートである。
【符号の説明】
１００、１００ａ、１００ｂ…クライアント
１０１、２０１、３０１…ＣＰＵ
１０２、２０２、３０２…メモリ（ＲＡＭ）
１０３、２０３、３０３…ＲＯＭ
１０４、２０４、３０４…ＮＩＣ
１０５、２０５、３０５…Ｉ／Ｏ
１２０、２２０、３２０…ＴＣＰ／ＩＰモジュール
１２１、２２１、３２１…ｉＳＣＳＩモジュール
１２２、２２２、３２２…ＳＣＳＩモジュール
１３０…ブートプログラム
１３１…ＩＤ入力モジュール
１４０…オペレーティングシステム
１５０…アプリケーション
２００…ノード装置
２１０、３１０…ディスク装置
２３０…キャッシュ制御モジュール
２３２…キャッシュ管理テーブル
２３４、２３４ａ、２３４ｂ…物理ブロック管理テーブル
３００…ストレージ装置
３３０…アクセス制御モジュール
３３２…物理ブロック管理テーブル
３３４…ユーザ管理テーブル
【図１】
2004287477.tif 000003
【図２】
2004287477.tif 000004
【図３】
2004287477.tif 000005
【図４】
2004287477.tif 000006
【図５】
2004287477.tif 000007
【図６】
2004287477.tif 000008
【図７】
2004287477.tif 000009
【図８】
2004287477.tif 000010