(57)【特許請求の範囲】
【請求項１】
１又は複数のサーバと、データを一時的に格納するキャッシュを各々有する複数のストレージ装置と、前記１又は複数のサーバと前記複数のストレージ装置とに接続される管理サーバと、を備える計算機システムであって、
前記管理サーバは、
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶し、
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶し、
前記１又は複数のサーバから、データの読み出しを目的として発行される仮想アドレス変換命令に基づいて、データの読み出し要求と前記仮想ボリュームのアドレスとを受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合には、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信すると、
前記物理的な記憶領域のアドレスが属する全てのストレージ装置は、前記物理的な記憶領域のアドレスに格納されるデータを各々のキャッシュ上に読み出し、
前記管理サーバは、
データの読み出し要求を発行したサーバに前記物理的な記憶領域のアドレスを送信すると、
前記データの読み出し要求を発行したサーバは、
前記物理的な記憶領域のアドレスが属する全てのストレージ装置にアクセスし、
前記管理サーバは、
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測し、前記アクセス履歴情報を参照して、予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する
ことを特徴とする計算機システム。
【請求項２】
１又は複数のサーバと、前記１又は複数のサーバに接続しデータを一時的に格納するキャッシュを有する管理サーバと、前記管理サーバとに接続しデータを一時的に格納するキャッシュを有する前記複数のストレージ装置と、を備える計算機システムであって、
前記管理サーバは、
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶し、
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶し、
前記１又は複数のサーバからデータの読み出し要求と前記仮想ボリュームのアドレスとを受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合には、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信すると、
前記物理的な記憶領域のアドレスが属する全てのストレージ装置は、前記物理的な記憶領域のアドレスに格納されるデータを各々のキャッシュ上に読み出し、
前記管理サーバは、
各々のキャッシュ上に読み出したデータを管理サーバにある１つのキャッシュ上に読み出すと、当該データの読み出し要求を発行したサーバに転送し、
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測し、前記アクセス履歴情報を参照して予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する
ことを特徴とする計算機システム。
【請求項３】
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、前記アクセス履歴情報を参照し、読み出したデータが格納された仮想ボリューム内の末尾仮想ブロックの次の仮想ブロックから一定量分の仮想ブロックに格納されるデータを先読み対象のデータとして予測する
ことを特徴とする請求項１又は２に記載の計算機システム。
【請求項４】
前記アクセス履歴情報は、前記１又は複数のサーバを識別するサーバID情報と、データの読み出しを目的として発行される仮想アドレス変換命令を発行したサーバのプロセスを示すプロセスID情報と、読み出し対象のデータが属する仮想ボリュームID情報と、読み出し対象のデータが属する仮想ボリューム内の末尾仮想ブロックアドレス情報と、前記仮想アドレス変換命令を前記管理サーバで受け付けた時間情報と、を有し、
前記管理サーバは、
前記サーバID情報と、前記プロセスID情報と、前記時間情報とを参照して、前記データの読み出し要求を発行したサーバと同じサーバかつ同じプロセスであって、所定時間内に同じ仮想ボリューム内の仮想ブロックのデータを読み出しており、連続して当該仮想ブロックに続く仮想ブロックも読み出している場合に、前記データの読み出し要求が連続したデータの読み出し要求の一部であると判定する
ことを特徴とする請求項３記載の計算機システム。
【請求項５】
前記１又は複数のサーバと前記複数のストレージ装置とはネットワークを介して接続され、前記１又は複数のサーバと前記管理サーバとは、前記ネットワークとは別の第１の専用ネットワークを介して接続され、前記複数のストレージ装置と前記管理サーバとは、前記ネットワークとは別の第２の専用ネットワークを介して接続され、
前記管理サーバは、前記仮想アドレス変換命令を第１の専用ネットワークを介して前記１又は複数のサーバから受信し、前記オンキャッシュ命令を第２の専用ネットワークを介して前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する
ことを特徴とする請求項１に記載の計算機システム。
【請求項６】
１又は複数のサーバと、データを一時的に格納するキャッシュを各々有する複数のストレージ装置と、前記１又は複数のサーバと前記複数のストレージ装置と接続される管理サーバと、を備える計算機システムのデータの読み出し指示方法であって、
前記管理サーバでは、
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶するステップと、
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶するステップと、
前記１又は複数のサーバから、データの読み出しを目的として発行される仮想アドレス変換命令に基づいて、データの読み出し要求と前記仮想ボリュームのアドレスとを受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換するステップとを有し、
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合に、前記管理サーバで、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信すると、前記物理的な記憶領域のアドレスが属する全てのストレージ装置では、前記物理的な記憶領域のアドレスに格納されるデータを各々のキャッシュ上に読み出すステップを有し、
前記管理サーバで、データの読み出し要求を発行したサーバに前記物理的な記憶領域のアドレスを送信すると、前記データの読み出し要求を発行したサーバでは、前記物理的な記憶領域のアドレスが属する全てのストレージ装置にアクセスするステップを有し、
前記管理サーバでは、
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測するステップと、
前記アクセス履歴情報を参照して予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換するステップと、
キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信するステップと、を有する
ことを特徴とするデータの読み出し指示方法。
【請求項７】
１又は複数のサーバと、前記１又は複数のサーバに接続しデータを一時的に格納するキャッシュを有する管理サーバと、前記管理サーバとに接続しデータを一時的に格納するキャッシュを有する前記複数のストレージ装置と、を備える計算機システムのデータの読み出し指示方法であって、
前記管理サーバでは、
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶するステップと、
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶し、
前記１又は複数のサーバからデータの読み出し要求と前記仮想ボリュームのアドレスとを受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換するステップと、を有し、
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合には、前記管理サーバで、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信すると、前記物理的な記憶領域のアドレスが属する全てのストレージ装置では、前記物理的な記憶領域のアドレスを格納するデータを各々のキャッシュ上に読み出すステップを有し、
前記管理サーバでは、
各々のキャッシュ上に読み出したデータを管理サーバにある１つのキャッシュ上に読み出すと、当該データを読み出し要求を発行したサーバに転送するステップと、
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測するステップと、
前記アクセス履歴情報を参照して予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換するステップと、
キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信するステップと、を有する
ことを特徴とするデータの読み出し方法。
【請求項８】
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、前記アクセス履歴情報を参照し、読み出したデータが格納された仮想ボリューム内の末尾仮想ブロックの次の仮想ブロックから一定量分の仮想ブロックに格納されるデータを先読み対象のデータとして予測するステップを有する
ことを特徴とする請求項６又は７に記載のデータの読み出し方法。
【請求項９】
前記アクセス履歴情報は、前記１又は複数のサーバを識別するサーバID情報と、データの読み出しを目的として発行される仮想アドレス変換命令を発行したサーバのプロセスを示すプロセスID情報と、読み出し対象のデータが属する仮想ボリュームID情報と、読み出し対象のデータが属する仮想ボリューム内の末尾仮想ブロックアドレス情報と、前記仮想アドレス変換命令を前記管理サーバで受け付けた時間情報と、を有し、
前記管理サーバでは、
前記サーバID情報と、前記プロセスID情報と、前記時間情報とを参照して、前記データの読み出し要求を発行したサーバと同じサーバかつ同じプロセスであって、所定時間内に同じ仮想ボリューム内の仮想ブロックのデータを読み出しており、連続して当該仮想ブロックに続く仮想ブロックも読み出している場合に、前記データの読み出し要求が連続したデータの読み出し要求の一部であると判定するステップを有する
ことを特徴とする請求項８記載のデータの読み出し方法。
【請求項１０】
前記１又は複数のサーバと前記複数のストレージ装置とはネットワークを介して接続され、前記１又は複数のサーバと前記管理サーバとは、前記ネットワークとは別の第１の専用ネットワークを介して接続され、前記複数のストレージ装置と前記管理サーバとは、前記ネットワークとは別の第２の専用ネットワークを介して接続される計算機システムであり、
前記管理サーバでは、前記仮想アドレス変換命令を第１の専用ネットワークを介して前記１又は複数のサーバから受信し、前記オンキャッシュ命令を第２の専用ネットワークを介して前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信するステップを有する
ことを特徴とする請求項６に記載のデータの読み出し方法。
【請求項１１】
１又は複数のサーバと、データを一時的に格納するキャッシュを各々有し前記１又は複数のサーバと接続する複数のストレージ装置と、に接続される管理サーバであって、
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶し、
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶し、
前記１又は複数のサーバから、データの読み出しを目的として発行される仮想アドレス変換命令に基づいて、データの読み出し要求と前記仮想ボリュームのアドレスとを受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合には、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信し、
データの読み出し要求を発行したサーバに前記物理的な記憶領域のアドレスを送信し、
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測し、前記アクセス履歴情報を参照して予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する
ことを特徴とする管理サーバ。
【請求項１２】
１又は複数のサーバと、データを一時的に格納するキャッシュを各々有する複数のストレージ装置と、に接続される管理サーバであって、
前記複数のストレージ装置の各々が有する物理的な記憶領域と、仮想的な記憶領域である仮想ボリュームとの対応関係を記憶し、
過去のデータの読み出しに関する履歴情報をアクセス履歴情報として記憶し、
前記１又は複数のサーバからデータの読み出し要求と前記仮想ボリュームのアドレスとを受信すると、前記対応関係に基づいて、前記仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、
前記アクセス履歴情報から前記物理的な記憶領域のアドレスに格納されるデータがキャッシュ上に読み出されていない場合には、当該データをキャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信し、
前記物理的な記憶領域のアドレスに格納される各々のキャッシュ上に読み出したデータを管理サーバにある１つのキャッシュ上に読み出すと、当該データの読み出し要求を発行したサーバに転送し、
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、読み出したデータ以降の一定量分のデータを先読み対象のデータとして予測し、前記アクセス履歴情報を参照して予測した前記先読み対象のデータを格納する仮想ボリュームのアドレスを前記物理的な記憶領域のアドレスに変換し、キャッシュ上に読み出すオンキャッシュ命令を前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する
ことを特徴とする管理サーバ。
【請求項１３】
前記データの読み出し要求が連続したデータの読み出し要求の一部である場合には、前記アクセス履歴情報を参照し、読み出したデータが格納された仮想ボリューム内の末尾仮想ブロックの次の仮想ブロックから一定量分の仮想ブロックに格納されるデータを先読み対象のデータとして予測する
ことを特徴とする請求項１１又は１２に記載の管理サーバ。
【請求項１４】
前記アクセス履歴情報は、前記１又は複数のサーバを識別するサーバID情報と、データの読み出しを目的として発行される仮想アドレス変換命令を発行したサーバのプロセスを示すプロセスID情報と、読み出し対象のデータが属する仮想ボリュームID情報と、読み出し対象のデータが属する仮想ボリューム内の末尾仮想ブロックアドレス情報と、前記仮想アドレス変換命令を前記管理サーバで受け付けた時間情報と、を有し、
前記サーバID情報と、前記プロセスID情報と、前記時間情報とを参照して、前記データの読み出し要求を発行したサーバと同じサーバかつ同じプロセスであって、所定時間内に同じ仮想ボリューム内の仮想ブロックのデータを読み出しており、連続して当該仮想ブロックに続く仮想ブロックも読み出している場合に、前記データの読み出し要求が連続したデータの読み出し要求の一部であると判定する
ことを特徴とする請求項１３記載の管理サーバ。
【請求項１５】
前記１又は複数のサーバと前記複数のストレージ装置とはネットワークを介して接続され、前記１又は複数のサーバと前記管理サーバとは、前記ネットワークとは別の第１の専用ネットワークを介して接続され、前記複数のストレージ装置と前記管理サーバとは、前記ネットワークとは別の第２の専用ネットワークを介して接続され、
前記仮想アドレス変換命令を第１の専用ネットワークを介して前記１又は複数のサーバから受信し、前記オンキャッシュ命令を第２の専用ネットワークを介して前記物理的な記憶領域のアドレスが属する全てのストレージ装置に送信する
ことを特徴とする請求項１１に記載の管理サーバ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、管理サーバが、ストレージ装置のデータ領域を仮想データ領域として管理するシステムに関する。
【０００２】
【従来の技術】
近年、ストレージ装置に記憶されるデータ量が著しく増大し、ストレージ装置自体の記憶容量や、ＳＡＮ（Storage Area Network）に接続されるストレージ装置、ファイルサーバ等の台数が増加している。その結果、大容量となった記憶領域等の管理の複雑化、分散した場所に設置されるストレージ装置の管理の複雑化、及びストレージ装置への負荷集中等、様々な問題が現れている。現在、これらの問題を解決することを目的として、バーチャリゼーションと呼ばれる技術が研究、開発されている。
【０００３】
バーチャリゼーション技術は、Evaluator Group社が2000年9月に発行したホワイトペーパー「Virtualization of Disk Storage」（WP-0007-1）に記載されているように、大きく三種類に分類される。
【０００４】
一つ目は、ＳＡＮに接続される各サーバが、ＳＡＮに接続されるストレージ装置の記憶領域を管理する情報を共有しており、各サーバは、各サーバが有するボリュームマネージャを用いてストレージ装置にアクセスするものである。
【０００５】
二つ目は、インバンド型バーチャリゼーションと呼ばれるシステム構成である。本構成では、管理サーバがＳＡＮに接続されたストレージ装置の記憶領域を一括して仮想データ領域（以下「仮想ボリューム」）として管理しており、管理サーバは、各サーバからストレージ装置へのリクエストを受け付け、配下のストレージ装置の記憶領域にアクセスし、その結果をサーバに返信するものである。
【０００６】
三つ目は、アウトバンド型バーチャリゼーションと呼ばれるシステム構成である。本構成も、管理サーバが、ＳＡＮに接続されたストレージ装置の記憶領域を一括して管理する。ただし、管理サーバは、サーバからストレージ装置へのアクセスのリクエストを受けた場合は、実際にデータを記憶している記憶領域の位置情報をサーバに返信する。サーバは、返信された情報を元に、ストレージ装置の記憶領域にアクセスする。
【０００７】
ストレージ装置は、磁気ディスク円盤を記録媒体として用いるのが主流である。磁気ディスク円盤を記録媒体として用いた場合には、磁気ディスク上のデータシーク、及び磁気ディスクからのデータ転送に要する時間が問題となる。
【０００８】
そこで、ストレージ装置内にキャッシュメモリを設け、ホストが要求するデータ、特に連続して読み出されるデータ（シーケンシャルデータ）を予測し、キャッシュメモリ上に予め読み出しておくデータ先読み方式が実現されている。本技術は、ACM SIGMETRICS '98 P182-P191に掲載されている論文「An analytic behavior model for disk drives with readahead caches and request reordering」に記載されている。このデータの先読みにより、磁気ディスク上のデータシーク、及び磁気ディスクからのデータ読み出しに要する時間を隠蔽し、データ読み出しの性能を向上している。本技術を、データの先読み処理と称する。
【０００９】
【発明が解決しようとする課題】
上述したデータ先読み技術は、ストレージ装置単体において有効な技術である。しかし、バーチャリゼーション環境下では、一又は複数のストレージ装置上のデータ領域が、一括して仮想ボリュームとして管理されている。したがって、読み出されるべきデータが一つのストレージ装置上に記憶されているとは限らない。このような場合、ストレージ装置単体におけるデータ先読み方法と同じ方法でデータの先読みを行うのは困難である。
【００１０】
本発明の目的は、バーチャリゼーション環境下における、データの先読み方法、データの先読みを実施するための装置及びシステムを提供することである。
【００１１】
【課題を解決するための手段】
上記目的を達成するため本発明においては、ストレージ装置の物理的な記憶領域を仮想ボリュームとして管理する管理サーバが、各サーバから受け付けたアクセス要求に基づいて、データをディスクからキャッシュ上に読み出すよう該当するストレージ装置へ命令を発行する手段を有する。ストレージ装置は、当該命令にしたがって、データをキャッシュ上に読み出す手段を有する。
【００１２】
【発明の実施の形態】
以下、本発明の実施の形態を説明する。なお、これにより本発明が限定されるものではない。
【００１３】
図１から図６を用いて、第１の実施形態について説明する。なお、本実施形態は、アウトバンド型のバーチャリゼーション環境を対象とする。
【００１４】
図１は、本発明を適用したシステムの第１の実施形態を示した図である。本システムは、管理サーバ１００、ストレージ装置１１０、サーバ１２０、これらが接続されるネットワーク１３０、管理サーバ１００と各サーバ１２０とを接続する専用のネットワーク１３２、及び管理サーバ１００と各ストレージ装置１１０を接続する専用のネットワーク１３４から構成される。尚、ネットワーク１３０に接続されるサーバ１２０の数は単数でも複数でも構わない。
【００１５】
管理サーバ１００と各サーバ１２０間、管理サーバ１００と各ストレージ装置１１０間の通信は、各々の専用のネットワーク１３２及びネットワーク１３４経由で行われる。又、サーバ１２０と各ストレージ装置１１０間のデータ転送は、ネットワーク１３０経由で行われる。このように構成することで、後に述べる仮想アドレス変換命令４００や物理アドレス情報４２０及びオンキャッシュ命令４５０、はネットワーク１３０を利用することなく、専用ネットワークを利用して送受信されるので、ネットワーク１３０上のトラフィックが軽減される。
【００１６】
管理サーバ１００は、専用ネットワーク１３２と接続するＩ/F（A）1０1、ネットワーク１３０と接続するＩ/F(C)１０３、制御装置１０５、メモリ１０８、及び専用ネットワーク１３４と接続するＩ/F（B）１０７を有する。メモリ１０８には、管理プログラム１０２、マッピング情報１０４及びアクセス履歴情報１０６が格納されている。管理サーバ１００の制御装置１０５は、ネットワーク１３０に接続されるストレージ装置１１０の物理記憶領域を仮想的な記憶領域である仮想ボリュームとして管理するために、管理プログラム１０２を実行する。
【００１７】
ストレージ装置１１０は、ネットワーク１３０と接続するＩ/Ｆ（A）１１３、制御装置１１２、キャッシュ１１４、ディスク装置１１６、専用ネットワーク１３４に接続するI/F（B）１１５、メモリ１１７を有する。制御装置１１２は、キャッシュ１１４及びディスク装置１１６を制御し、サーバ１２０からのリクエストにより、指定された物理記憶領域に対してデータ書き込み、データ読み出しの制御を行う。
【００１８】
尚、本図においては、ディスク装置１１６を単体として示しているが、ＲＡＩＤ等のように、ディスク装置１１６は複数であっても良い。後者の場合、制御装置１１２は、ストレージ装置１１０内の複数のディスク装置１１６と物理記憶領域との対応関係を管理する。また、ストレージ装置１１０が提供する物理記憶領域は、ディスク装置１１６と一対一に対応していても、複数のディスク装置１１６が一つの物理記憶領域に対応しても良い。  図１における矢印１５０、１５２、１５４、１５６、１５８は、サーバ１２０がストレージ装置１１０上のデータにアクセスする際の処理を視覚的に示したものである。尚、以降、仮想ボリュームＩＤと仮想ブロックアドレスで特定できる仮想的なデータ領域を仮想ブロック、そのアドレスを仮想アドレス、ストレージ装置のアドレスと論理ユニット番号と論理ブロックアドレスで特定できる物理的なデータ領域を物理ブロック、そのアドレスを物理アドレスと呼ぶことにする。
【００１９】
サーバ１２０は、ストレージ装置１１０上のデータにアクセスする際、まず、アクセス対象のデータの物理アドレスを取得するため、仮想アドレス変換命令４００を管理サーバ１００に送信する（矢印１５０）。
【００２０】
管理サーバ１００のＩ/Ｆ（A）１０１はサーバ１２０から仮想アドレス変換命令４００を受信する。そして、制御装置１０５が管理プログラム１０２を実行してマッピング情報１０４を参照し、当該命令で指定された仮想アドレスに対応する物理アドレスを取得する。そして、管理サーバ１００は、取得した物理アドレスに関する情報である物理アドレス情報４２０をI/F（A）１０１を介して要求元のサーバ１２０に返信する（矢印１５４）。管理サーバ１００から物理アドレス情報４２０を受信したサーバ１２０は、当該情報に含まれる物理アドレスを用いて、ストレージ装置１１０上のデータにアクセスする（矢印１５８）。
【００２１】
管理サーバ１００の制御装置１０５は更に管理プログラムを実行して、受信した上記仮想アドレス変換命令４００が有する情報にもとづき今回のデータアクセスがデータ読み出しであるかを判定する。データ読み出しである場合、管理サーバ１００は読み出されるデータを格納しているストレージ装置１１０に対して、I/F(B)１０７からオンキャッシュ命令４５０を発行する（矢印１５２）。また管理サーバ１００の制御装置１０５は、アクセス履歴情報１０６を参照して今回のデータアクセスが連続したデータの読み出しの一部であるかを判定する。連続したデータの読み出しであると判定した場合、管理サーバ１００の制御装置１０５は、今回読み出されるデータに続く一定量のデータが存在する仮想ブロックに対応する物理アドレスを取得し、該当する全てのストレージ装置１１０に対して、I/F（B）１０７からオンキャッシュ命令４５０を発行する（矢印１５２）。
【００２２】
ストレージ装置１１０のI/F（B）１１５は、管理サーバ１００からオンキャッシュ命令４５０を受信し、制御装置１１２はディスク１１６とキャッシュ１１４を制御して、当該オンキャッシュ命令４５０により指定されたデータ２１０をディスク装置１１６からキャッシュ１１４に読み出す（矢印１５６）。
【００２３】
図２は、管理装置１００のメモリ１０８に格納されているマッピング情報１０４の構成例を示した図である。マッピング情報１０４は、管理サーバ１００が管理するストレージ装置１１０の情報であるストレージ装置情報２００、仮想ブロックと物理ブロックを関連付ける仮想ボリューム情報２１０を有する。尚、本実施形態では、仮想的な領域、物理的な領域とも、ブロックという単位で管理することにしているが、他の単位、例えば幾つかのブロックをまとめて１つの管理単位として管理しても良い。
【００２４】
ストレージ装置情報２００は、管理サーバ１００が管理するストレージ装置１１０を識別するストレージ装置ＩＤ２０２、当ストレージ装置１１０のネットワーク１３０上での装置アドレスを示すストレージ装置アドレス２０４、当ストレージ装置１１０が有するキャッシュ１１４の容量を示すキャッシュサイズ２０６で構成される。
【００２５】
仮想ボリューム情報２１０は、仮想ボリュームを識別する仮想ボリュームＩＤ２１２、当仮想ボリューム内の仮想ブロックの位置を示す仮想ブロックアドレス２１４、当仮想ブロックに対応する物理ブロックを有するストレージ装置１１０を示すストレージ装置ID２１６、当物理ブロックを示す論理ユニット番号２１８、論理ブロックアドレス２２０で構成される。尚図２においては、ストレージ装置S01が仮想ボリュームVVOL1内の仮想ブロックに対応する物理ブロックを有し、ストレージ装置S02が仮想ボリュームVVOL2内の仮想ブロックに対応する物理ブロックを有する例が表されている。しかし、１のストレージ装置が、複数の仮想ボリュームに対応する物理ブロックを有していても良い。
【００２６】
図３は、管理サーバ１００のメモリ１０８に格納されているアクセス履歴情報１０６の構成例を示した図である。
【００２７】
アクセス履歴情報１０６は、データの読み出しを目的として発行された仮想アドレス変換命令４００の履歴情報である読み出し履歴情報３００、近々読み出しが行われる記憶領域を予測し先読みを指示する場合の、当該先読み指示の履歴情報である先読み履歴情報３２０を有する。
【００２８】
読み出し履歴情報３００は、仮想アドレス変換命令４００を発行したサーバ１２０を識別するためのサーバＩＤ３０２、当命令を発行したサーバ１２０内のプロセスを示すプロセスＩＤ３０４、読み出し対象のデータが属する仮想ボリュームを示す仮想ボリュームＩＤ３０６、読み出し対象のデータの先頭仮想ブロックを示す先頭仮想ブロックアドレス３０８、読み出し対象のデータの末尾仮想ブロックを示す末尾仮想ブロックアドレス３１０、当該命令を受け付けた時間の情報である時間情報３１２で構成される。
【００２９】
先読み履歴情報３２０は、先読みしたデータが属する仮想ボリュームを示す仮想ボリュームＩＤ３２２、当データの先頭の仮想ブロックを示す仮想ブロックアドレス３２４、当データの末尾の仮想ブロックを示す仮想ブロックアドレス３２６、先読みのために発行したオンキャッシュ命令４５０の発行時間を示す時間情報３２８で構成される。
【００３０】
図４は、サーバ１２０が管理サーバ１００に発行する仮想アドレス変換命令４００、管理サーバ１００がサーバ１２０に送信する物理アドレス情報４２０、管理サーバ１００が記憶装置１１０に発行するオンキャッシュ命令４５０の構成例を示した図である。
【００３１】
仮想アドレス変換命令４００は、当命令を識別する制御コード４０２、当命令によるデータアクセス要求がデータの読み出し要求かデータの書き込み要求かを示すアクセスフラグ４０４、当命令を発行したサーバ１２０を識別するためのサーバＩＤ４０６、当命令を発行したサーバ１２０内のプロセスを示すプロセスＩＤ４０８、アクセス対象となるデータの仮想アドレスを示す仮想アドレス情報４１０を有する。
【００３２】
仮想アドレス情報４１０は、アクセス対象のデータが属する仮想ボリュームを示す仮想ボリュームＩＤ４１２、アクセス対象のデータの先頭仮想ブロックを示す先頭仮想ブロックアドレス４１４、アクセス対象のデータの末尾仮想ブロックを示す末尾仮想ブロックアドレス４１６で構成される。
【００３３】
物理アドレス情報４２０は、当情報を識別する制御コード４２２、仮想アドレス変換命令４００で指定された仮想アドレスに対応する物理アドレスのリストである物理アドレスリスト４３０を有する。
【００３４】
物理アドレスリスト４３０は、各々仮想アドレス変換命令４００で指定された仮想ボリュームＩＤ４３２と仮想ブロックアドレス４３４、及び当該仮想アドレスに対応する物理アドレスであるストレージ装置アドレス４３６、論理ユニット番号４３８、論理ユニットアドレス４４０で構成される。
【００３５】
オンキャッシュ命令４５０は、当命令を識別する制御コード４５２、キャッシュ１１４に読み出すデータを特定するデータアドレスリスト４６０を有する。
【００３６】
データアドレスリスト４６０は、読み出し対象のデータを記憶している論理ユニット番号４６２、読み出し対象のデータの先頭物理ブロックを示す先頭論理ブロックアドレス４６４、読み出し対象のデータの末尾物理ブロックを示す末尾論理ブロックアドレス４６６で構成される。
【００３７】
図５、図６は、第１の実施形態におけるデータアクセスの処理の流れを示した図である。以下、サーバ１２０が、ストレージ装置１１０からデータを読み出す、又はデータを書き込む際の動作について説明する。ここで管理サーバ１００が実行する処理は、制御装置１０５がメモリ１０８に格納されている管理プログラム１０２を実行することによって行われる処理である。尚、図５、図６には、仮想アドレス変換命令４００内のアクセスフラグ４０４がデータの読み出しを示す場合、即ちサーバ１２０からの要求がデータの読み出しである場合、及びサーバ１２０からのデータの読み出し要求が連続したデータの読み出し要求の一部であると予測した場合の双方において先読みの処理を行う例を示している。しかし、先読み処理はどちらか一方の場合にのみ行われることとしても良い。
【００３８】
サーバ１２０は、仮想アドレス変換命令４００に必要な情報をセットし、管理サーバ１００に送信する（ステップ５００）。ここで、セットする情報とは、当該命令が仮想アドレス変換命令であることを示す制御コード４０２、データアクセスが読み出しか書き込みかを示すアクセスフラグ４０４、当命令を発行するサーバを示すサーバＩＤ４０６、当命令を発行するプロセスを示すプロセスＩＤ４０８、アクセス対象のデータが属する仮想ボリュームＩＤ４１２、当データの先頭仮想ブロックアドレス４１４、末尾仮想ブロックアドレス４１６である。
【００３９】
仮想アドレス変換命令４００を受け付けた管理サーバ１００は、仮想ボリューム情報２１０を検索し、当該命令内の仮想アドレス情報４１０で指定された仮想ブロックアドレスに対応するストレージ装置ＩＤ２１６、論理ユニット番号２１８、論理ブロックアドレス２２０割り出す。また、管理サーバ１００は、上述の検索で割り出したストレージ装置ＩＤ２１６をキーとしてストレージ装置情報２００を検索し、ネットワーク１３０上でのストレージ装置の装置アドレス２０４を取得する（ステップ５０２）。
【００４０】
管理サーバ１００は、上記仮想アドレス変換命令４００内のアクセスフラグ４０４を参照し、リクエストがデータの読み出しか書き込みかを判定する。データ読み出しの場合はステップ５０６から、データ書き込みの場合はステップ５１８から、管理装置１００は処理を継続する（ステップ５０４）。
【００４１】
管理サーバ１００は、読み出し履歴情報３００に新規エントリを追加し、上記仮想アドレス変換命令４００内のサーバＩＤ４０６、プロセスＩＤ４０８、仮想ボリュームＩＤ４１２、先頭仮想ブロックアドレス４１４、末尾仮想ブロックアドレス４１６を、それぞれ追加した新規エントリのサーバＩＤ３０２、プロセスＩＤ３０４、仮想ボリュームＩＤ３０６、先頭仮想ブロックアドレス３０８、末尾仮想アドレス３１０にコピーし、上記命令を受け付けた時間を時間情報３１２にセットする（ステップ５０６）。
【００４２】
管理サーバ１００は、現時点から所定期間前までの先読み履歴情報３２０を検索し、今回読み出し対象となるデータが以前の処理により、既にストレージ装置１１０のキャッシュ１１４上に読み出されているか調査する（ステップ５０８）。
【００４３】
今回の読み出し対象となるデータが既にキャッシュ１１４上に読み出されている場合はステップ５１８から、読み出されていない場合はステップ５１２から、管理サーバ１００は処理を継続する（ステップ５１０）。
【００４４】
管理サーバ１００は、ステップ５０２で割り出したストレージ装置１１０各々についてオンキャッシュ命令４５０に必要な情報をセットし、該当するストレージ装置１１０毎に当該オンキャッシュ命令４５０を発行する（ステップ５１２）。ここで、セットする情報とは、当該命令がオンキャッシュ命令であることを示す制御コード４５２、読み出し対象のデータが実際に記憶されている物理位置を特定するためのデータアドレスリスト４６０内の情報である。尚、データアドレスリスト４６０内の論理ユニット番号４６２、当論理ユニット内の先頭ブロックアドレス４６４、末尾ブロックアドレス４６６には、ステップ５０２で割り出した論理ユニット番号と論理ブロックアドレスがセットされる。読み出し対象のデータが複数の論理ユニットに分かれて記憶されている場合は、該当する全ての論理ユニットと物理ブロックの情報をデータアドレスリスト４６０にセットする。又管理サーバ１００は、専用ネットワーク１３４を利用して当該専用ネットワーク１３４に接続されるストレージ装置１１０全てに対し、オンキャッシュ命令４５０をブロードキャストしても良いし、専用ネットワーク１３４上におけるストレージ装置１１０のアドレスを指定して、ストレージ装置１１０毎にオンキャッシュ命令４５０を送信しても良い。
【００４５】
オンキャッシュ命令４５０を受け付けたストレージ装置１１０は、データアドレスリスト４６０で指定された全ての物理ブロックのデータをキャッシュ１１４上に読み出す（ステップ５１４）。
【００４６】
管理サーバ１００は、該当する全てのストレージ装置１１０に対しオンキャッシュ命令４５０を発行したか判定し、発行した場合はステップ５１８から、発行していない場合はステップ５１２から処理を継続する（ステップ５１６）。
【００４７】
管理サーバ１００は、ステップ５０２で割り出した物理アドレスを物理アドレス情報４２０にセットし、アドレス変換命令４００の発行元のサーバ１２０に送信し、ステップ６００から処理を継続する（ステップ５１８）。
【００４８】
物理アドレス情報４２０を受信したサーバ１２０は、物理アドレスリスト４３０から、アクセス対象のデータを記憶している全てのストレージ装置１１０のアドレスと物理ブロックアドレスを取得する（ステップ５２０）。
【００４９】
サーバ１２０は、ステップ５２０で取得した情報を元に、アクセス対象のデータを記憶するストレージ装置１１０にアクセスする（ステップ５２２）。
【００５０】
管理サーバ１００は、受信した仮想アドレス変換命令４００内のアクセスフラグ４０４を参照し、リクエストの目的がデータの読み出しか書き込みかを判定する。データ読み出しの場合は管理サーバ１００はステップ６０２から処理を継続し、データ書き込みの場合は管理サーバ１００は処理を終了する（ステップ６００）。
【００５１】
管理サーバ１００は、読み出し履歴情報３００を検索し、今回の読み出し要求が連続したデータの読み出し要求の一部か調査する（ステップ６０２）。ここで、連続したデータの読み出し要求であるか否かの判定は、例えば次のように行う。読み出し履歴情報３００には、サーバ１２０が過去にストレージ装置１１０から行ったデータ読み出しに関する履歴情報が格納されている。管理サーバ１００は、読み出し履歴情報３００に格納されているサーバＩＤ３０２、プロセスＩＤ３０４、時間情報３１２を参照し、今回受けつけたデータ読み出し要求と同じサーバ、かつ同じプロセスが所定期間内（例えば数秒前、数分前）に、同じ仮想ボリューム内の仮想ブロックのデータを読み出しており、更に連続して当該仮想ブロックに続く仮想ブロックも読み出していれば、今回のデータ読み出し要求も一連の連続したデータ読み出し要求の一部であると判定する。
【００５２】
今回の読み出し要求が連続したデータ読み出し要求の一部であると判定した場合は、管理サーバ１００はステップ６０６から処理を継続し、そうでないと判定した場合は処理を終了する（ステップ６０４）。
【００５３】
管理サーバ１００は、今回読み出し対象となったデータの末尾仮想ブロックの次の仮想ブロックから一定量分（例えば、連続するデータを読み出す場合において、１回の読み出しで読み出されるブロック数）の仮想ブロックを先読み対象のデータと認定する（ステップ６０６）。
【００５４】
管理サーバ１００は、仮想ボリューム情報２１０を検索し、上記先読み対象の仮想ブロック一つ一つに対応する物理ブロックを全て割り出し、当該物理ブロックを有するストレージ装置のＩＤ２１６、論理ユニット番号２１８、及び当該物理ブロックの論理ブロックアドレス２２０を取得する。また、管理サーバ１００は取得したストレージ装置ＩＤ２１６をキーとして、ストレージ装置情報２００を検索し、該当する物理ブロックを有するストレージ装置の装置アドレスを取得する（ステップ６０８）。
【００５５】
管理サーバ１００は、ステップ６０８で割り出した物理ブロックを有するストレージ装置１１０各々について、オンキャッシュ命令４５０に必要な情報をセットし、ストレージ装置１１０毎に当該オンキャッシュ命令４５０を発行する（ステップ６１０）。ここで、セットされる情報は、ステップ５１２においてセットされる情報と同様である。
【００５６】
オンキャッシュ命令４５０を受け付けた記憶装置１１０は、データアドレスリスト４６０で指定された全ての物理ブロックのデータをキャッシュ１１４上に読み出す（ステップ６１２）。
【００５７】
管理サーバ１００は、該当する全ての記憶装置１１０に対しオンキャッシュ命令４５０を発行したか判定し、発行した場合はステップ６１６から、発行していない場合はステップ６１０から処理を継続する（ステップ６１４）。
【００５８】
管理サーバ１００は、先読み履歴情報３２０に新規エントリを追加し、今回先読み対象としたデータの仮想ボリュームＩＤ、先頭仮想ブロックアドレス、末尾仮想ブロックアドレス、オンキャッシュ命令４５０を発行した時間情報をセットし、処理を終了する（ステップ６１６）。
【００５９】
尚、本実施形態において、管理サーバ１００はサーバ１２０への物理アドレス情報４２０を送信する前に、オンキャッシュ命令４５０をストレージ装置１１０に発行している。しかし、サーバ１２０への物理アドレス情報４２０の送信とストレージ装置１１０へのオンキャッシュ命令４５０の発行の順番は逆でも良く、同時でも良い。
【００６０】
第１の実施形態によれば、アウトバンド型バーチャリゼーション環境下において、管理サーバ１００が、各サーバ１２０から受け付けたデータアクセスに関する問い合わせに基づいて、該当するデータをディスク１１６からキャッシュ１１４上に読み出すようストレージ装置１１０に指示することができる。従って各ストレージ装置１１０は効率よくデータの読み出し処理を行うことが出来る。
【００６１】
また第１の実施形態によれば、管理サーバ１００が、上記問い合わせを受け付けた際、過去のデータ読み出しに関する履歴情報を基に今後データ読み出しが行われる記憶領域を予測し、該当する記憶領域を有するストレージ装置１１０に先読みを指示することができる。即ち、未だ各サーバ１２０からの仮想アドレス変換命令４００を受け付けていない記憶領域についても、データの先読みを指示することができる。従ってアウトバンド型バーチャリゼーション環境下においても各ストレージ装置１１０は効率よくデータの先読み処理を行うことが出来、連続した一連のデータ読み出しに要する時間を短縮することが出来る。
【００６２】
この結果、バーチャリゼーション環境において、ディスク装置におけるデータシーク、並びにディスク装置からのデータ転送に要する時間を隠蔽し、データ読み出し処理を高速化することができる。
【００６３】
図７は、本発明を適用したシステムの第２の実施形態を示した図である。第１の実施形態との相違は、管理サーバ１００と各サーバ１２０を接続する専用線１３２、及び管理サーバ１００と各ストレージ装置１１０とを接続する専用線１３４が第２の実施形態には存在しない点である。従って、管理サーバ１００と各ストレージ装置１１０間、管理サーバ１００と各サーバ１２０間、各サーバ１２０と各ストレージ装置１１０間の通信は全てネットワーク１３０経由で行われる。このため、第１の実施形態に比べ、ネットワーク１３０上のトラフィックは増加するが、第１の実施形態における専用のネットワーク１３２、及び１３４を用意する必要がない。尚、サーバ１２０がストレージ装置１１０からデータを読み出す場合、又はサーバ１２０がストレージ装置１１０へデータを書き込む場合の処理は、第１の実施形態と同様、図５、図６に示す処理フローに従って実行される。但し、第２の実施形態においては、管理サーバ１００がネットワーク１３０を利用してストレージ装置１１０に対し、オンキャッシュ命令４５０を発行することとなる。従って、管理サーバ１００は、ネットワーク１３０上におけるストレージ装置１１０のアドレスを指定して、ストレージ装置１１０毎にオンキャッシュ命令４５０を送信する点が第１の実施形態とは異なる。
【００６４】
第２の実施形態によれば、サーバ１２０がストレージ装置１１０からデータを読み出す際、管理サーバ１００はネットワーク１３０を介してストレージ装置１１０に対しデータをキャッシュ１１４に読み出しておくように指示することができる。従って、低コストで効率の良い先読み処理を行うことが可能となる。
【００６５】
図８は、本発明を適用したシステムの第３の実施形態を示した図である。本実施形態は、インバンド型のバーチャリゼーション環境を対象とする。本実施形態は、第１の実施形態とはデータアクセスの方法が異なる。第３の実施形態においては、サーバ１２０は管理サーバ１００にデータアクセスを要求し、管理サーバ１００がその要求に沿ってストレージ装置１１０上のデータにアクセスする。尚、本実施形態においては、管理サーバ１００は、ストレージ装置１１０やサーバ１２０との間のデータの送受信に使用するためのキャッシュ８００を有する。
【００６６】
図８における矢印８１０、８１２、８１４、８１６は、第３の実施形態におけるデータアクセス方法を視覚的に示したものである。
【００６７】
サーバ１２０は、ストレージ装置１１０上のデータにアクセスする際、管理サーバ１００にデータアクセス命令９００を送信する（矢印８１０）。サーバ１２０からデータアクセス命令９００を受信した管理サーバ１００は、マッピング情報１０４を参照し、当命令で指定された仮想アドレスに対応する物理アドレスを取得する。また管理サーバ１００は、当命令に付随する情報から今回のアクセス要求がデータ書き込みかデータ読み出しか判定し、前者の場合は書き込み対象のデータをサーバ１２０からキャッシュ８００上に転送し（矢印８１６）、取得した物理アドレスが指す物理ブロックに書き込む（矢印８１４）。後者の場合は、管理サーバ１００は読み出し対象のデータを記憶している全てのストレージ装置１１０に対し、オンキャッシュ命令４５０を発行する（矢印８１２）。そして、管理サーバ１００は読み出し対象のデータを該当するストレージ装置１１０からキャッシュ８００上に読み出し（矢印８１４）、要求元のサーバ１２０に送信する（矢印８１６）。
【００６８】
図９は、サーバ１２０が管理サーバ１００に発行するデータアクセス命令９００の構成を示した図である。データアクセス命令９００は、当命令を識別する制御コード９０２、当命令によるデータアクセスがデータの読み出しかデータの書き込みかを示すアクセスフラグ９０４、当命令を発行したサーバ１２０を識別するためのサーバＩＤ９０６、当命令を発行したサーバ１２０内のプロセスを示すプロセスＩＤ９０８、アクセス対象となるデータの仮想アドレスを示す仮想アドレス情報９１０、アクセス対象のデータの転送先、もしくは転送元となるサーバ１２０上のバッファのアドレスを示すバッファアドレス９２０を有する。
【００６９】
仮想アドレス情報９１０は、アクセス対象のデータが属する仮想ボリュームを示す仮想ボリュームＩＤ９１２、アクセス対象のデータの先頭仮想ブロックを示す先頭仮想ブロックアドレス９１４、アクセス対象のデータの末尾仮想ブロックを示す末尾仮想ブロックアドレス９１６で構成される。
【００７０】
図１０、１１は、第３の実施形態におけるデータアクセスの処理の流れを示した図である。以下、サーバ１２０が管理サーバ１００を通してストレージ装置１１０に記憶されているデータを読み出す、又はストレージ装置１１０上の記憶領域にデータを書き込む際の動作について説明する。尚、管理サーバ１００が行う処理は、管理サーバ１００の制御装置１０５がメモリ１０８に記憶されている管理プログラム１０２を実行することによって行われる。
【００７１】
サーバ１２０は、データアクセス命令９００に必要な情報をセットし、管理サーバ１００に送信する（ステップ１０００）。ここで、セットされる情報とは、当該命令がデータアクセス命令であることを示す制御コード９０２、データアクセスが読み出しか書き込みかを示すアクセスフラグ９０４、当命令を発行するサーバを示すサーバＩＤ９０６、当命令を発行するプロセスを示すプロセスＩＤ９０８、アクセス対象のデータが属する仮想ボリュームＩＤ９１２、当データの先頭仮想ブロックアドレス９１４、当末尾仮想ブロックアドレス９１６、アクセス対象のデータの転送先、もしくは転送元となるサーバ１２０上のバッファのアドレスを示すバッファアドレス９２０である。
【００７２】
データアクセス命令９００を受け付けた管理サーバ１００は、仮想ボリューム情報２１０を検索し、当該命令内の仮想アドレス情報９１０で指定された仮想ブロック一つ一つに対応する物理ブロックを全て割り出し、当該物理ブロックを有するストレージ装置のＩＤ２１６、論理ユニット番号２１８、論理ブロックアドレス２２０を取得する。また、管理サーバ１００は取得したストレージ装置ＩＤ２１６をキーとしてストレージ装置情報２００を検索し、当該物理ブロックを有するストレージ装置の装置アドレスを取得する（ステップ１００２）。
【００７３】
管理サーバ１００は、上記データアクセス命令９００内のアクセスフラグ９０４を参照し、リクエストがデータの読み出しか書き込みかを判定する。データ読み出しの場合はステップ１１００から、データ書き込みの場合はステップ１００６から、管理サーバ１００は処理を継続する（ステップ１００４）。
【００７４】
管理サーバ１００は、上記データアクセス命令９００内のバッファアドレス９２０が示すサーバ１２０上のバッファからキャッシュ８００上にデータを転送する（ステップ１００６）。
【００７５】
管理サーバ１００は、ステップ１００２で割り出した物理ブロックにステップ１００６で転送したデータを書き込む（ステップ１００８）。
【００７６】
管理サーバ１００は、書き込みの対象となる全てのデータをストレージ装置１１０に書き込んだか判定し、書き込んだ場合は処理を終了し、書き込んでいない場合はステップ１００８から処理を継続する（ステップ１０１０）。
【００７７】
管理サーバ１００は、読み出し履歴情報３００に新規エントリを追加し、上記データアクセス命令９００内のサーバＩＤ４０６、プロセスＩＤ４０８、仮想ボリュームＩＤ４１２、先頭仮想ブロックアドレス４１４、末尾仮想ブロックアドレス４１６をそれぞれサーバＩＤ３０２、プロセスＩＤ３０４、仮想ボリュームＩＤ３０６、先頭仮想ブロックアドレス３０８、末尾仮想アドレス３１０にコピーし、上記命令を受け付けた時間を時間情報３１２にセットする（ステップ１１００）。
【００７８】
管理サーバ１００は、現時点から任意期間内の先読み履歴情報３２０を検索し、今回の読み出し対象となるデータが先読み処理により、既にストレージ装置１１０のキャッシュ１１４上に読み出されているか調査する（ステップ１１０２）。
【００７９】
今回の読み出し対象となるデータが既にキャッシュ１１４上に読み出されている場合はステップ１１１２から、読み出されていない場合はステップ１１０６から、管理サーバ１００は処理を継続する（ステップ１１０４）。
【００８０】
管理サーバ１００は、ステップ１００２で割り出した物理ブロックを有するストレージ装置１１０各々についてオンキャッシュ命令４５０に必要な情報をセットし、該当するストレージ装置１１０毎にオンキャッシュ命令を発行する（ステップ１１０６）。ここで、セットされる情報は、図５に示すステップ５１２においてセットされる情報と同様である。  オンキャッシュ命令４５０を受け付けたストレージ装置１１０は、データアドレスリスト４６０で指定された物理ブロックのデータをキャッシュ１１４上に読み出す（ステップ１１０８）。
【００８１】
管理サーバ１００は、該当する全てのストレージ装置１１０に対しオンキャッシュ命令４５０を発行したか判定し、発行した場合はステップ１１１２から、発行していない場合はステップ１１０６から処理を継続する（ステップ１１１０）。
【００８２】
管理サーバ１００は、今回の読み出し対象となったデータを該当するストレージ装置１１０から管理サーバ上のキャッシュ８００上に読み出す（ステップ１１１２）。
【００８３】
管理サーバ１００は今回の読み出し対象となったデータを全てキャッシュ８００上に読み出したか判定し、読み出した場合はステップ１１１６、読み出していない場合はステップ１１１２から処理を継続する（ステップ１１１４）。
【００８４】
管理サーバ１００は、今回受け付けたデータアクセス命令９００内のバッファアドレスが示すサーバ１２０上のデータ領域に、ストレージ装置１１０からキャッシュ８００に読み出したデータを転送し（ステップ１１１６）、図６のステップ６０２から図６に示す処理を実行する。
【００８５】
第３の実施形態によれば、インバンド型バーチャリゼーション環境下において、管理サーバ１００が、各サーバ１２０から受け付けたデータアクセス命令に基づいて、アクセスするデータをディスク１１６からキャッシュ１１４上に読み出すようストレージ装置１１０に指示することができる。従って効率よくデータの読み出し処理を行うことが出来る。
【００８６】
また、上記データアクセス命令を受け付けた際、管理サーバ１００が過去のデータ読み出しに関する履歴情報を基に、今後読み出しが行われるデータが記憶されている記憶領域を予測し、該当する記憶領域を有するストレージ装置１１０にデータの先読みを指示する。即ち、管理サーバ１００は、未だ各サーバ１２０からのデータアクセス命令を受け付けていない記憶領域についても、データの先読みを指示することができる。従って、インバンド型バーチャリゼーション環境下においても、ストレージ装置１１０は効率よくデータの先読み処理を行うことが出来、連続した一連のデータ読み出しに要する時間を短縮出来る。
【００８７】
【発明の効果】
本発明によれば、バーチャリゼーション環境においも、データの先読みを実行することができる。
【図面の簡単な説明】
【図１】本発明を適用したシステムの第１の実施形態を示した図である。
【図２】管理サーバが有するマッピング情報の構成例を示した図である。
【図３】管理サーバが有するアクセス履歴情報の構成例を示した図である。
【図４】サーバが管理サーバに発行する仮想アドレス変換命令、管理サーバがサーバに送信する物理アドレス情報、管理サーバが記憶装置に発行するオンキャッシュ命令の構成例を示した図である。
【図５】データアクセス処理の一例を示した図である。
【図６】データアクセスの処理の一例を示した図である。
【図７】本発明を適用したシステムの第２の実施形態を示した図である。
【図８】本発明を適用したシステムの第３の実施形態を示した図である。
【図９】サーバが管理サーバに発行するデータアクセス命令の構成例を示した図である。
【図１０】第３の実施形態におけるデータアクセス処理の一例を示した図である。
【図１１】第３の実施形態におけるデータアクセス処理の一例を示した図である。
【符号の説明】
１００…管理サーバ
１０２…管理プログラム
１０４…マッピング情報
１０６…アクセス履歴情報
１１０…ストレージ装置
１１４…キャッシュ
１１６…ディスク装置
１２０…サーバ
【図１】
0004053842.tif 000002
【図２】
0004053842.tif 000003
【図３】
0004053842.tif 000004
【図４】
0004053842.tif 000005
【図５】
0004053842.tif 000006
【図６】
0004053842.tif 000007
【図７】
0004053842.tif 000008
【図８】
0004053842.tif 000009
【図９】
0004053842.tif 000010
【図１０】
0004053842.tif 000011
【図１１】
0004053842.tif 000012