(57)【特許請求の範囲】
【請求項１】
サーバに接続可能であり、かつ複数の記憶階層を管理可能な記憶システムであって、前記複数の記憶階層の各々は前記サーバから送られてきたデータを記憶可能である、記憶システムと、
データが前記サーバ内のキャッシュメモリに記憶されているか否かに基づき前記データを記憶するために、前記記憶システム内のデータの記憶および前記複数の記憶階層を管理可能な管理コンピュータと、
を備えたシステムであって、
前記複数の記憶階層はより低い階層とより高い階層とを含み、
データが前記サーバのキャッシュメモリに記憶されている場合には、前記データが前記記憶システムの前記より低い階層に記憶される、
システム。
【請求項２】
前記記憶システムは、前記データの位置ポリシーに基づき前記複数の記憶階層から選択された位置におけるデータの記憶を管理するための記憶制御装置を備える、
請求項１に記載のシステム。
【請求項３】
前記より高い階層は前記より低い階層より高速の記憶媒体を有する、
請求項１に記載のシステム。
【請求項４】
前記記憶システムは、複数のデータオブジェクトを記憶するために前記複数の記憶階層を管理するように構成され、
前記管理コンピュータは、前記記憶システムにおけるデータオブジェクトの記憶を管理するように構成され、
データオブジェクトのデータが前記サーバのキャッシュメモリに記憶されている場合には、前記データオブジェクトが前記記憶システムの前記より低い階層に記憶される、
請求項３に記載のシステム。
【請求項５】
前記管理コンピュータは、データが前記サーバの前記キャッシュメモリに記憶されている場合には、前記記憶対象データを前記記憶システムの前記より低い階層に固定することができ、
前記記憶システムは、データが前記サーバの前記キャッシュメモリに記憶されていない場合には、前記データに対して事前に設定された位置ポリシーに基づき前記複数の記憶階層から選択された位置における前記データの記憶を管理するように構成された記憶制御装置を備える、
請求項３に記載のシステム。
【請求項６】
前記記憶システムは、複数のデータオブジェクトを記憶するために前記複数の記憶階層を管理するように構成され、
前記管理コンピュータは、データオブジェクトが前記サーバの前記キャッシュメモリに記憶されている場合には、前記記憶対象データオブジェクトを前記記憶システムの前記より低い階層に固定することができ、
前記記憶システムは、データオブジェクトが前記サーバの前記キャッシュメモリに記憶されていない場合には、前記データオブジェクトへのアクセス回数に基づき前記複数の記憶階層から選択された位置における前記データオブジェクトの記憶を管理するように構成された記憶制御装置を備える、
請求項３に記載のシステム。
【請求項７】
前記管理コンピュータは、データが前記サーバの前記キャッシュメモリに記憶されている場合には、前記記憶対象データを前記記憶システムの前記より低い階層に固定することができ、
前記記憶システムは、データが前記サーバの前記キャッシュメモリに記憶されていない場合には、複数のコンピュータプログラムのうち前記データにアクセスするコンピュータプログラムに応じてデータを位置付けるために、階層選択を指定するプログラムデータ位置ポリシーに基づき前記複数の記憶階層から選択された位置における前記データの記憶を管理するように構成された記憶制御装置を備える、
請求項３に記載のシステム。
【請求項８】
前記記憶システムは、データをボリュームページ単位で記憶するために前記複数の記憶階層を管理するように構成され、
前記管理コンピュータは、ボリュームページが前記サーバの前記キャッシュメモリに記憶されている場合には、前記記憶対象ボリュームページを前記記憶システムの前記より低い階層に固定することができ、
前記記憶システムは、ボリュームページが前記サーバの前記キャッシュメモリに記憶されていない場合には、前記ボリュームページへのアクセス回数に基づき前記複数の記憶階層から選択された位置における前記ボリュームページの記憶を管理するように構成された記憶制御装置を備える、
請求項３に記載のシステム。
【請求項９】
サーバに接続され、前記サーバから送られてきたデータを各々が記憶可能な複数の記憶階層を管理する記憶システムにおいてデータの記憶を管理するための管理コンピュータであって、
プロセッサと、
メモリと、
データが前記サーバのキャッシュメモリに記憶されているか否かに基づき前記データを記憶するために、前記記憶システム内のデータの記憶および前記複数の記憶階層を管理するためのモジュールと、
を備え、
前記複数の記憶階層はより低い階層とより高い階層とを含み、
前記モジュールにより、データが前記サーバのキャッシュメモリに記憶されている場合には、前記データは前記記憶システムの前記より低い階層に記憶される、
管理コンピュータ。
【請求項１０】
前記モジュールは、位置ポリシーの入力を受け付け、データに対する前記位置ポリシーに基づき前記記憶システム内の前記複数の記憶階層から選択された位置における前記データの記憶を管理するように構成される、
請求項９に記載の管理コンピュータ。
【請求項１１】
前記モジュールは、前記サーバの前記キャッシュメモリのステータスをチェックするためのコマンドを前記サーバに送り、前記記憶システムに記憶される何れかのデータが前記キャッシュメモリに記憶されているかどうかを判定するように構成される、
請求項９に記載の管理コンピュータ。
【請求項１２】
前記より高い階層は前記より低い階層より高速の記憶媒体を有する、
請求項９に記載の管理コンピュータ。
【請求項１３】
前記モジュールは、前記記憶システムに記憶されるデータが前記サーバの前記キャッシュメモリに記憶されている場合には、前記データを前記記憶システムの前記より低い階層に記憶するためのコマンドを前記記憶システムに送るように構成される、
請求項１２に記載の管理コンピュータ。
【請求項１４】
サーバに接続され、前記サーバから送られてきたデータを各々が記憶可能な複数の記憶階層を管理する記憶システムにおいてデータの記憶を管理するためにデータプロセッサを制御するための複数の命令を記憶しているコンピュータ可読記憶媒体であって、前記複数の命令は、
前記データが前記サーバのキャッシュメモリに記憶されているか否かに基づきデータを記憶するために、前記複数の記憶階層を前記データプロセッサに管理させる命令であり、
前記複数の記憶階層はより低い階層とより高い階層とを含み、
データを記憶するために前記複数の記憶階層を前記データプロセッサに管理させる前記命令は、データが前記サーバのキャッシュメモリに記憶されている場合には、前記データが前記記憶システムの前記より低い階層に記憶されるように、前記記憶システムにおけるデータの記憶を前記データプロセッサに管理させる命令を含む、
コンピュータ可読記憶媒体。
【請求項１５】
前記複数の命令は、
位置ポリシーの入力を受け付けるためのユーザインタフェースを前記データプロセッサに提供させる命令と、
前記データに対する前記位置ポリシーに基づき前記記憶システム内の前記複数の記憶階層から選択された位置におけるデータの記憶を前記データプロセッサに管理させる命令と、
をさらに含む、請求項１４に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記より高い階層は前記より低い階層より高速の記憶媒体である、
請求項１４に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記記憶システムにおけるデータの記憶を前記データプロセッサに管理させる前記命令は、
データが前記サーバの前記キャッシュメモリに記憶されている場合には、前記記憶システムの前記より低い階層への前記記憶対象データの固定を前記データプロセッサに行わせる命令と、
データが前記サーバの前記キャッシュメモリに記憶されていない場合には、前記データに対して事前に設定された位置ポリシーに基づき前記複数の記憶階層から選択された位置における前記データの記憶を前記データプロセッサに管理させる命令と、
を含む、請求項１６に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記記憶システムにおけるデータの記憶を前記データプロセッサに管理させる前記命令は、
データオブジェクトが前記サーバのキャッシュメモリに記憶されている場合には、前記記憶システムの前記より低い階層への前記記憶対象データオブジェクトの固定を前記データプロセッサに行わせる命令と、
データオブジェクトが前記サーバの前記キャッシュメモリに記憶されていない場合には、前記データオブジェクトへのアクセス回数に基づき前記複数の記憶階層から選択された位置における前記データオブジェクトの記憶を前記データプロセッサに管理させる命令と、
を含む、請求項１６に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記記憶システムにおけるデータの記憶を前記データプロセッサに管理させる前記命令は、
データが前記サーバのキャッシュメモリに記憶されている場合には、前記記憶システムの前記より低い階層への前記記憶対象データの固定を前記データプロセッサに行わせる命令と、
データが前記サーバの前記キャッシュメモリに記憶されていない場合には、複数のコンピュータプログラムのうち、前記データにアクセスするコンピュータプログラムに応じてデータを位置付けるために、階層選択を指定するプログラムデータ位置ポリシーに基づき前記複数の記憶階層から選択された位置における前記データの記憶を前記データプロセッサに管理させる命令と、
を含む、請求項１６に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記データはボリュームページ単位で前記記憶システムに記憶され、前記記憶システムにおけるデータの記憶を前記データプロセッサに管理させる前記命令は、
前記ボリュームページが前記サーバのキャッシュメモリに記憶されている場合には、前記記憶システムの前記より低い階層への前記記憶対象ボリュームページの固定を前記データプロセッサに行わせる命令と、
前記ボリュームページが前記サーバの前記キャッシュメモリに記憶されていない場合には、前記ボリュームページへのアクセス回数に基づき前記複数の記憶階層から選択された位置における前記ボリュームページの記憶を前記データプロセッサに管理させる命令と、
を含む、請求項１６に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は、全般的には階層管理に関し、特にデータ位置の管理方法および装置に関する。
【背景技術】
【０００２】
０００２    近年、シンプロビジョニングが普及してきた。シンプロビジョニングとは、書き込みコマンドを受け取った記憶システムに対する領域を未割り当て領域に割り当てる方法であり、書き込みコマンドに応じて物理デバイスを割り当てる。さらに、記憶システムは、頻繁にアクセスされる割り当て済み領域を高速で高価な媒体に割り当て直し、めったにアクセスされない割り当て済み領域を低速で安価な媒体に割り当て直すこともある。一般に、記憶システムが未割り当て領域への書き込みコマンドを受け取ると、当該記憶システムはデフォルトの階層領域をこの未割り当て領域に割り当てる。
【０００３】
０００３    アプリケーションプログラムは、性能を向上させるために、サーバ上のフラッシュメモリドライブをキャッシュとして使用する。アプリケーションプログラムは、データがフラッシュメモリドライブ上にある場合には、当該データを、記憶サブシステムからではなく、フラッシュメモリドライブから読み出し、当該データをフラッシュメモリドライブと記憶サブシステムとに書き込む。ただし、記憶サブシステム上にはフラッシュメモリデバイスがあるので、記憶サブシステム内の頻繁に書き込まれる領域は、より高い階層、すなわちフラッシュメモリデバイス、に移動される。したがって、頻繁に書き込まれる領域は、サーバ上のフラッシュメモリドライブと記憶サブシステム上のフラッシュメモリデバイスとに位置付けられる。さらに、頻繁にアクセスされる領域をより高い階層に移動できないため、性能が低下する。
【０００４】
０００４    特許文献１（米国特許出願公開第２０１１／０２０２７０５号公報）によると、管理者は指定したボリュームを指定した階層に配置できる。ただし、記憶サブシステムは、管理サーバからのボリュームコピーコマンドが展開用なのかバックアップ用なのかを知ることができない。したがって、記憶サブシステムは、当該ボリュームを適切な階層に配置できない。特許文献２（米国特許出願公開第２００９／０１４４４９６号公報）によると、記憶制御装置は仮想ボリュームをページ単位で圧縮できる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願公開第２０１１／０２０２７０５号公報
【特許文献２】米国特許出願公開第２００９／０１４４４９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術においては、性能を向上させるためにサーバ上のフラッシュメモリドライブがキャッシュとして使用され、頻繁に書き込まれる領域がサーバ上のフラッシュメモリドライブと記憶サブシステム上のフラッシュメモリデバイスの両方に位置付けられるが、頻繁にアクセスされる領域を記憶システム内のより高い階層に移動できないため性能が低下する。
【０００７】
従って、本発明の目的は、サーバ上のフラッシュメモリドライブをキャッシュとして使用し、頻繁にアクセスされる領域を記憶システム内のより高い階層に移動し、アクセス性能を向上させることである。
【課題を解決するための手段】
【０００８】
０００５    本発明の複数の例示的実施形態は、サーバ上のキャッシュステータスに基づき記憶サブシステムを制御する管理サーバを提供する。本管理サーバは、データをキャッシュするようにサーバに指令し、当該データのキャッシュステータスをチェックし、当該データをより低い階層に固定するように記憶サブシステムに指令する。この結果、書き込みアクセス回数が多い他のオブジェクトをより高い階層に位置付けることができる。
【０００９】
０００６    第１実施形態において、管理者がオブジェクトの位置を指定すると、これらのオブジェクトは移動される。管理サーバは、オブジェクトをキャッシュするようにサーバに指令し、これらのオブジェクトのキャッシュステータスをチェックし、サーバからのオブジェクト位置情報に基づき、これらのオブジェクトをより低い階層に固定するように記憶サブシステムに指令する。
【００１０】
０００７    第２実施形態において、オブジェクトは、これらのオブジェクトへのアクセス回数に基づき、移動される。管理サーバは、オブジェクト性能情報をサーバから取得し、当該オブジェクトへのアクセス回数に基づきオブジェクトの位置を決定し、当該オブジェクトをキャッシュするようにサーバに指令し、ステータスをチェックし、当該オブジェクトをより低い階層に固定するように記憶サブシステムに指令する。
【００１１】
０００８    第３実施形態において、データは、このデータにアクセスするプログラムによって移動される。管理サーバは、プログラムによってアクセスされたデータをキャッシュするようにサーバに指令し、このデータのキャッシュステータスをチェックし、このデータをより低い階層に固定するように記憶サブシステムに指令する。
【００１２】
０００９    第４実施形態において、ページは、これらのページへのアクセス回数に基づき移動される。管理サーバは、測定サイクルが異なる複数のページに関するいくつかのページ性能情報を記憶サブシステムから取得し、測定サイクルが異なるこれらのページへのアクセス回数に基づきこれらのページの位置を決定し、これらのページをキャッシュするようにサーバに指令し、ステータスをチェックし、これらのページをより低い階層に固定するように記憶サブシステムに指令する。
【００１３】
００１０    本発明の一態様によると、システムは、サーバに接続可能な記憶システムであって、当該サーバから送られてきたデータを各々が記憶可能な複数の記憶階層を管理することができる記憶システムと、データが当該サーバのキャッシュメモリに記憶されているか否かに基づきデータを記憶するために、複数の記憶階層を管理することができる管理コンピュータとを備える。
【００１４】
００１１    一部の実施形態において、記憶システムは、データの位置ポリシーに基づき複数の記憶階層から選択された位置における当該データの記憶を管理するための記憶制御装置を備える。複数の記憶階層はより低い階層とより高い階層とを含み、より高い階層はより低い階層より高速の記憶媒体を有する。管理コンピュータは、あるデータがサーバのキャッシュメモリに記憶されている場合には、そのデータが記憶システムのより低い階層に記憶されるように、記憶システムにおけるデータの記憶を管理することができる。記憶システムは、複数のデータオブジェクトを記憶するために複数の記憶階層を管理するように構成され、管理コンピュータは、あるデータオブジェクトのデータがサーバのキャッシュメモリに記憶されている場合には、当該データオブジェクトが記憶システムのより低い階層に記憶されるように、記憶システムにおける当該データオブジェクトの記憶を管理するように構成される。
【００１５】
００１２    特定の複数の実施形態において、管理コンピュータは、データがサーバのキャッシュメモリに記憶されている場合には、その記憶対象データを記憶システムのより低い階層に固定することができる。この記憶システムは、データがサーバのキャッシュメモリに記憶されていない場合には、当該データに対して事前に設定されている位置ポリシーに基づき、複数の記憶階層から選択された位置におけるデータの記憶を管理するように構成された記憶制御装置を備える。この記憶システムは、複数のデータオブジェクトを記憶するために複数の記憶階層を管理するように構成される。管理コンピュータは、データオブジェクトがサーバのキャッシュメモリに記憶されている場合には、その記憶対象データオブジェクトを記憶システムのより低い階層に固定することができる。記憶システムは、データオブジェクトがサーバのキャッシュメモリに記憶されていない場合には、当該データオブジェクトへのアクセス回数に基づき、複数の記憶階層から選択された位置における当該データオブジェクトの記憶を管理するように構成された記憶制御装置を備える。
【００１６】
００１３    一部の実施形態において、管理コンピュータは、データがサーバのキャッシュメモリに記憶されている場合には、その記憶対象データを記憶システムのより低い階層に固定することができる。記憶システムは、データがサーバのキャッシュメモリに記憶されていない場合には、複数のコンピュータプログラムのうち、当該データにアクセスするコンピュータプログラムに応じてデータを位置付けるために、階層選択を指定するプログラムデータ位置ポリシーに基づき、複数の記憶階層から選択された位置における当該データの記憶を管理するように構成された記憶制御装置を備える。
【００１７】
００１４    特定の複数の実施形態において、記憶システムは、データをボリュームページ単位で記憶するために複数の記憶階層を管理するように構成される。管理コンピュータは、ボリュームページがサーバのキャッシュメモリに記憶されている場合には、その記憶対象ボリュームページを記憶システムのより低い階層に固定することができる。記憶システムは、ボリュームページがサーバのキャッシュメモリに記憶されていない場合には、当該ボリュームページへのアクセス回数に基づき、複数の記憶階層から選択された位置における当該ボリュームページの記憶を管理するように構成された記憶制御装置を備える。
【００１８】
００１５    本発明の別の態様は、サーバに接続され、当該サーバから送られてきたデータを各々が記憶可能な複数の記憶階層を管理する記憶システムにおいて、データの記憶を管理するための管理コンピュータに関する。この管理コンピュータは、プロセッサと、メモリと、当該データがサーバのキャッシュメモリに記憶されているか否かに基づきデータを記憶するために、前記複数の記憶階層を管理するためのモジュールとを備える。
【００１９】
００１６    一部の実施形態において、このモジュールは、位置ポリシーの入力を受け付け、当該データに対する位置ポリシーに基づき、記憶システム内の複数の記憶階層から選択された位置における当該データの記憶を管理するように構成される。このモジュールは、サーバのキャッシュメモリのステータスをチェックするためのコマンドを当該サーバに送り、記憶システムに記憶される何れかのデータがキャッシュメモリに記憶されているかどうかを判定するように構成される。複数の記憶階層はより低い階層とより高い階層とを含み、より高い階層はより低い階層より高速の記憶媒体を有し、モジュールは、データがサーバのキャッシュメモリに記憶されている場合には、そのデータが記憶システムのより低い階層に記憶されるように、記憶システムにおけるデータの記憶を管理するように構成される。モジュールは、記憶システムに記憶されるデータがサーバのキャッシュメモリに記憶されている場合には、そのデータを記憶システムのより低い階層に記憶するためのコマンドを記憶システムに送るように構成される。
【００２０】
００１７    本発明の別の態様は、サーバに接続され、当該サーバから送られてきたデータを各々が記憶可能な複数の記憶階層を管理する記憶システムにおいて、データの記憶を管理するためにデータプロセッサを制御するための複数の命令を記憶しているコンピュータ可読記憶媒体に関する。これら複数の命令は、データがサーバのキャッシュメモリに記憶されているか否かに基づきデータを記憶するために、複数の記憶階層をデータプロセッサに管理させる命令を含む。
【００２１】
００１８    一部の実施形態において、これら複数の命令は、位置ポリシーの入力を受け付けるためのユーザインタフェースをデータプロセッサに提供させる命令と、データの位置ポリシーに基づき記憶システム内の複数の記憶階層から選択された位置におけるデータの記憶をデータプロセッサに管理させる命令とをさらに含む。データを記憶するために複数の記憶階層をデータプロセッサに管理させる命令は、データがサーバのキャッシュメモリに記憶されている場合には、そのデータが記憶システムのより低い階層に記憶されるように、記憶システムにおけるデータの記憶をデータプロセッサに管理させる命令を含む。
【００２２】
００１９    特定の複数の実施形態において、記憶システムにおけるデータの記憶をデータプロセッサに管理させる命令は、データオブジェクトがサーバのキャッシュメモリに記憶されている場合には、記憶システムのより低い階層への記憶対象データオブジェクトの固定をデータプロセッサに行わせる命令と、データオブジェクトがサーバのキャッシュメモリに記憶されていない場合には、当該データオブジェクトへのアクセス回数に基づき複数の記憶階層から選択された位置におけるデータオブジェクトの記憶をデータプロセッサに管理させる命令とを含む。
【００２３】
００２０    一部の実施形態において、記憶システムにおけるデータの記憶をデータプロセッサに管理させる命令は、データがサーバのキャッシュメモリに記憶されている場合には、記憶システムのより低い階層への記憶対象データの固定をデータプロセッサに行わせる命令と、データがサーバのキャッシュメモリに記憶されていない場合には、複数のコンピュータプログラムのうち、当該データにアクセスするコンピュータプログラムに応じてデータを位置付けるために、階層選択を指定するプログラムデータ位置ポリシーに基づき複数の記憶階層から選択された位置におけるデータの記憶をデータプロセッサに管理させる命令とを含む。
【００２４】
００２１    特定の複数の実施形態において、データはボリュームページ単位で記憶システムに記憶され、記憶システムにおけるデータの記憶をデータプロセッサに管理させる命令は、ボリュームページがサーバのキャッシュメモリに記憶されている場合には、記憶システム内のより低い階層への記憶対象ボリュームページの固定をデータプロセッサに行わせる命令と、ボリュームページがサーバのキャッシュメモリに記憶されていない場合には、当該ボリュームページへのアクセス回数に基づき複数の記憶階層から選択された位置におけるボリュームページの記憶をデータプロセッサに管理させる命令とを含む。
【００２５】
００２２    本発明の上記および他の特徴並びに利点は、具体的な実施形態についての以下の詳細な説明に照らすことによって当業者には明らかになるであろう。
【発明の効果】
【００２６】
本発明によるデータ位置の管理方法および装置によれば、サーバ上のフラッシュメモリドライブをキャッシュとして使用し、頻繁にアクセスされる領域を記憶システム内のより高い階層に移動することにより、アクセス性能を向上させることができる。
【図面の簡単な説明】
【００２７】
【図１】００２３  データ位置管理の概要を説明するために記憶システムの一例を示す。
【図２】００２４  従来技術の問題を説明するために図１の同じ記憶システムを示す。
【図３】００２５  本発明の方法および装置が適用される情報システムのハードウェア構成の一例を示す。
【図４】００２６  第１実施形態による図３のアプリケーションサーバ内のメモリの一例を示す。
【図５】００２７  第１実施形態による図３の記憶サブシステム内のメモリの一例を示す。
【図６】００２８  第１実施形態による図３の管理サーバ内のメモリの一例を示す。
【図７】００２９  オブジェクト位置情報の一例を示す。
【図８】００３０  ＲＡＩＤグループ情報の一例を示す。
【図９】００３１  論理ボリューム情報の一例を示す。
【図１０】００３２  記憶プール情報の一例を示す。
【図１１】００３３  仮想ボリューム情報の一例を示す。
【図１２】００３４  階層定義情報の一例を示す。
【図１３】００３５  第１実施形態におけるオブジェクト位置ポリシー情報の一例を示す。
【図１４】００３６  第１実施形態におけるオブジェクト位置ポリシー情報入力画面の一例を示す。
【図１５】００３７  読み出しコマンドの一例を示す。
【図１６】００３８  書き込みコマンドの一例を示す。
【図１７】００３９  フラッシュキャッシュコマンドの一例を示す。
【図１８】００４０  フラッシュキャッシュコマンドへの応答の一例を示す。
【図１９】００４１  ページ固定コマンドの一例を示す。
【図２０】００４２  Ｉ／Ｏコマンドを受け取り、Ｉ／Ｏ結果を返すディスク制御プログラムの処理を説明する流れ図の一例である。
【図２１】００４３  ページを移動するためのページ移動プログラムの処理を説明する流れ図の一例である。
【図２２】００４４  第１実施形態における管理者からの入力に基づきデータを移動するための位置管理プログラムの処理を説明する流れ図の一例である。
【図２３】００４５  第２実施形態による図３のアプリケーションサーバ内のメモリの一例を示す。
【図２４】００４６  第２実施形態による図３の管理サーバ内のメモリの一例を示す。
【図２５】００４７  第２実施形態におけるオブジェクト性能情報の一例を示す。
【図２６】００４８  第２実施形態における媒体容量情報の一例を示す。
【図２７】００４９  第２実施形態において各オブジェクトへのＩ／Ｏ回数に基づきデータを移動するための位置管理プログラムの処理を説明する流れ図の一例である。
【図２８】００５０  第３実施形態による図３のアプリケーションサーバ内のメモリの一例を示す。
【図２９】００５１  第３実施形態による図３の管理サーバ内のメモリの一例を示す。
【図３０】００５２  第３実施形態におけるプログラムアクセス情報の一例を示す。
【図３１】００５３  第３実施形態におけるプログラムデータ位置ポリシー情報の一例を示す。
【図３２】００５４  第３実施形態におけるプログラムデータ位置ポリシー情報入力画面の一例を示す。
【図３３】００５５  第３実施形態における管理者からの入力に基づきデータを移動するための位置管理プログラムの処理を説明する流れ図の一例である。
【図３４】００５６  第４実施形態による図３のアプリケーションサーバ内のメモリの一例を示す。
【図３５】００５７  第４実施形態による図３の管理サーバ内のメモリの一例を示す。
【図３６】００５８  第４実施形態におけるページ位置管理情報の一例を示す。
【図３７】００５９  第４実施形態におけるページフラッシュキャッシュコマンドの一例を示す。
【図３８】００６０  第４実施形態におけるページフラッシュキャッシュコマンドへの応答の一例を示す。
【図３９】００６１  第４実施形態においてページへのアクセス回数に基づきデータを移動するための位置管理プログラムの処理を説明する流れ図の一例である。
【発明を実施するための形態】
【００２８】
００６２    本発明の以下の詳細な説明においては、本発明を実施しうる複数の例示的実施形態が限定のためではなく例として示されており、本開示の一部を成す添付図面を参照する。これらの図面において、同様の参照符号は、いくつかの図面を通してほぼ同様の構成要素を記述する。さらに、この詳細な説明は、以下に記載され、かつ図面に例示されているように、さまざまな例示的実施形態を提供するが、本発明は本願明細書に記載および例示されている実施形態に限定されるものではなく、当業者には公知であるような、または公知となるような、他の実施形態にも及びうる。本明細書において「１つの実施形態」、「この実施形態」、または「これらの実施形態」への言及は、当該実施形態に関して記載されている特定の特徴、構造、または特性が本発明の少なくとも１つの実施形態に含まれることを意味し、本明細書内のさまざまな箇所におけるこれらの文言の出現は必ずしも全てが同じ実施形態に言及しているとは限らない。さらに、以下の詳細な説明においては、本発明の完全な理解をもたらすために、具体的な詳細が数多く述べられている。ただし、これらの具体的な詳細の全てが本発明を実施するために必要であるとは限らないことは当業者には明らかであろう。他の状況においては、本発明を無用に不明瞭にしないように、周知の構造、材料、回路、プロセス、およびインタフェースは詳細に説明されていない、および／またはブロック図の形態で例示されていない場合もある。
【００２９】
００６３    さらに、以下の詳細な説明のいくつかの部分は、コンピュータ内の動作のアルゴリズムおよび記号表現で提示されている。これらのアルゴリズム的記述および記号表現は、データ処理技術分野の当業者が自分達の技術革新の本質を当該技術分野の他の当業者に最も有効に伝えるために用いる手段である。アルゴリズムは、所望される最終状態または結果へと導く定義されたステップの連なりである。本発明において、実行される各ステップは、実体的結果を実現するために実体的数量の物理的操作を必要とする。通常、必ずしもそうとは限らないが、これらの数量は、記憶、転送、組み合わせ、比較、および別様の処理が可能な電気または磁気信号または命令の形態を取る。時には、主に一般的慣用の理由により、これらの信号をビット、値、要素、記号、文字、用語、数字、命令などとして言及すると便利であることが分かっている。ただし、上記および同様の用語は全て、適切な物理量に対応付けられるべきであり、これらの物理量に適用される便利なラベルに過ぎないことに留意すべきである。特に明記されていない限り、以下の説明から明らかなように、本明細書を通して、「処理」、「演算」、「計算」、「判定」、「表示」などの用語を用いた記述は、コンピュータシステムのレジスタおよびメモリ内の物理（電子）量として表されるデータを操作し、これらのデータを当該コンピュータシステムのメモリまたはレジスタ、あるいは他の情報記憶、伝送、または表示装置、において物理量として同様に表される他のデータに変換するコンピュータシステムまたは他の情報処理装置の動作および処理を含むことができることを理解されたい。
【００３０】
００６４    本発明は、本願明細書における動作を実行するための装置にさらに関する。この装置は、必要とされる用途のために特別に構築されてもよく、あるいは１つ以上のコンピュータプログラムによって選択的に起動または再構成される１つ以上の汎用コンピュータを含んでもよい。このようなコンピュータプログラムは、光ディスク、磁気ディスク、読み出し専用メモリ、ランダムアクセスメモリ、固体デバイスおよびドライブ、あるいは電子情報の記憶に適した何れか他の種類の媒体などの非一時的記憶媒体を含むコンピュータ可読記憶媒体に記憶されうる。ただし、非一時的記憶媒体はこれだけに限定されるものではない。本願明細書に提示されているアルゴリズムおよび表示は、何れか特定のコンピュータまたは他の装置に本質的に関連付けられてはいない。本願明細書の教示によるプログラムおよびモジュールと共に各種の汎用システムが使用されうるが、あるいは所望の方法ステップを実施するためにより特化された装置の構築が好都合であることが分かるかもしれない。また、本発明は、何れか特定のプログラミング言語に関して記述されてはいない。本願明細書に記載されているような本発明の教示を実現するために、多様なプログラミング言語が使用されうることを理解されるであろう。プログラミング言語（単数または複数）の命令は、１つ以上の処理装置、例えば、中央処理装置（ＣＰＵ）、プロセッサ、または制御装置、によって実行されうる。
【００３１】
００６５    本発明の複数の例示的実施形態は、以下により詳細に説明するように、データ位置管理のための装置、方法、およびコンピュータプログラムを提供する。
【００３２】
００６６    図１は、データ位置管理の概要を説明するために、記憶システムの一例を示す。記憶システムは、フラッシュメモリドライブ３０６およびアプリケーションプログラム４０２を有するアプリケーションサーバ３００と、管理サーバ３８０と、階層１の記憶装置（ＳＳＤ）、階層２の記憶装置（ＳＡＳ  ＨＤＤ）、および階層３の記憶装置（ＳＡＴＡ  ＨＤＤ）を有する記憶サブシステム３６０とを含む。図１において、オブジェクトＡは、フラッシュメモリドライブ３０６上にキャッシュされ、階層３に固定される。したがって、オブジェクトＢを階層１に位置付けることができる。管理サーバ３８０は、データをキャッシュするようにサーバ３００に指令し（キャッシュコマンド矢印）、このデータのキャッシュステータスをチェックし（キャッシュステータス矢印）、このデータをより低い階層に固定するように記憶サブシステムに指令する（ページ固定コマンド矢印）。この結果、書き込みアクセス回数が多い他のオブジェクトをより高い階層に位置付けることができる。
【００３３】
００６７    図２は、オブジェクトＡがフラッシュメモリドライブ３０６上にキャッシュされ、さらに階層１、すなわちＳＳＤ、に位置付けられる従来技術の問題を説明するために、図１と同じ記憶システムを示す。オブジェクトＢは、オブジェクトＡよりアクセス回数が多いにも拘らず、階層１ではなく、階層２に位置付けられている。したがって、頻繁にアクセスされる領域をより高い階層に移動できないため、性能が低下する。
【００３４】
００６８    第１実施形態
【００３５】
００６９    Ａ．システム構成
【００３６】
００７０    図３は、本発明の方法および装置を適用される情報システムのハードウェア構成の一例を示す。この情報システムは、１つ以上のアプリケーションサーバ３００と、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）３２０、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）３４０と、１つ以上の記憶サブシステム３６０と、管理サーバ３８０とを備える。アプリケーションサーバ３００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ    Ｄｒｉｖｅ）３０３と、ＳＡＮインタフェース３０４と、ＬＡＮインタフェース３０５と、フラッシュメモリドライブ３０６とを備える。ＣＰＵ３０１は、複数のプログラムをメモリ３０２から読み出し、これらのプログラムを実行する。メモリ３０２は、アプリケーションサーバ３００が起動してプログラムおよびデータを記憶するとき、これらのプログラムおよびデータをＨＤＤ３０３から読み込む。ＨＤＤ３０３は、プログラムとデータとを記憶する。ＳＡＮインタフェース３０４は、アプリケーションサーバ３００とＳＡＮ３２０とを接続する。ＬＡＮインタフェース３０５は、アプリケーションサーバ３００とＬＡＮ３４０とを接続する。フラッシュメモリドライブ３０６は、データをキャッシュする。ＳＡＮ３２０は、アプリケーションサーバ３００と記憶サブシステム３６０とを接続する。アプリケーションサーバ３００は、アプリケーションデータを記憶サブシステム３６０に送るために、および、アプリケーションデータを記憶サブシステム３６０から受け取るために、ＳＡＮ３２０を使用する。アプリケーションサーバ３００と、記憶サブシステム３６０と、管理サーバ３８０とは、管理データを送るために、および、管理データを受け取るために、ＬＡＮ３４０を使用する。ＬＡＮ３４０は、アプリケーションサーバ３００と、記憶サブシステム３６０と、管理サーバ３８０とを接続する。記憶サブシステム３６０は、ＳＡＮインタフェース３６１と、ＬＡＮインタフェース３６２と、ＣＰＵ３６３と、メモリ３６４と、ディスクインタフェース３６５と、ＨＤＤ３６６と、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）３６７とを備える。ＳＡＮインタフェース３６１は、記憶サブシステム３６０とＳＡＮ３２０とを接続する。ＬＡＮインタフェース３６２は、記憶サブシステム３６０とＬＡＮ３４０とを接続する。ＣＰＵ３６３は、複数のプログラムをメモリ３６４から読み出し、これらのプログラムを実行する。メモリ３６４は、記憶サブシステム３６０が起動してプログラムおよびデータを記憶するとき、これらのプログラムおよびデータをＨＤＤ３６６およびＳＳＤ３６７から読み込む。ディスクインタフェース３６５は、記憶サブシステム３６０と、ＨＤＤ３６６と、ＳＳＤ３６７とを接続する。ＨＤＤ３６６は、プログラムとデータとを格納する。ＳＳＤ３６７は、プログラムとデータとを格納する。管理サーバ３８０は、ＣＰＵ３８１と、メモリ３８２と、ＨＤＤ３８３と、ＬＡＮインタフェース３８４とを備える。ＣＰＵ３８１は、複数のプログラムをメモリ３８２から読み出し、これらのプログラムを実行する。メモリ３８２は、管理サーバ３８０が起動して���ログラムおよびデータを記憶するとき、これらのプログラムおよびデータをＨＤＤ３８３から読み込む。ＨＤＤ３８３は、プログラムおよびデータを格納する。ＬＡＮインタフェース３８４は、管理サーバ３８０とＬＡＮ３４０とを接続する。
【００３７】
００７１    図４は、第１実施形態による図３のアプリケーションサーバ３００内のメモリ３０２の一例を示す。メモリ３０２は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）プログラム４０１と、アプリケーションプログラム４０２と、オブジェクト位置情報４０３とを備える。ＯＳプログラム４０１は、アプリケーションプログラム４０２を実行する。アプリケーションプログラム４０２（例えば、データベースプログラム）は、読み出しコマンドを記憶サブシステム３６０に送って記憶サブシステム３６０内のデータを読み出し、データを処理し、結果を記憶サブシステム３６０に書き込む。
【００３８】
００７２    図５は、第１実施形態による図３の記憶サブシステム３６０内のメモリ３６４の一例を示す。メモリ３６４は、ディスク制御プログラム５０１と、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ（またはＩｎｄｅｐｅｎｄｅｎｔ）Ｄｉｓｋｓ）グループ情報５０２と、論理ボリューム情報５０３と、記憶プール情報５０４と、仮想ボリューム情報５０５と、階層定義情報５０６と、ページ移動プログラム５０７と、キャッシュ５０８とを備える。ディスク制御プログラム５０１は、読み出しコマンドおよび書き込みコマンドをアプリケーションサーバ３００から受け取り、データをＨＤＤ３６６およびＳＳＤ３６７から読み出し、データをＨＤＤ３６６およびＳＳＤ３６７に書き込む際に、ＲＡＩＤグループ情報５０２と、論理ボリューム情報５０３と、記憶プール情報５０４と、仮想ボリューム情報５０５と、階層定義情報５０６とを使用する。ディスク制御プログラム５０１は、データをＨＤＤ３６６およびＳＳＤ３６７から読み出すと、ディスク制御プログラム５０１は、このデータをキャッシュ５０８に一時的に記憶し、キャッシュ５０８上の古いデータを削除する。ディスク制御プログラム５０１は読み出しコマンドをアプリケーションサーバ３００から受け取ると、当該データがキャッシュ５０８上にある場合には、ディスク制御プログラム５０１は当該データを、ＨＤＤ３６６およびＳＳＤ３６７からではなく、キャッシュ５０８から読み出す。
【００３９】
００７３    図６は、第１実施形態による図３の管理サーバ３８０内のメモリ３８２の一例を示す。メモリ３８２は、情報取得プログラム６０１と、位置管理プログラム６０２と、オブジェクト位置ポリシー情報６０３と、オブジェクト位置ポリシー情報入力画面６０４とを備える。
【００４０】
００７４    図７は、オブジェクト位置情報４０３の一例を示す。オブジェクト位置情報４０３は、オブジェクト名７０１、オブジェクトアドレス７０２、ボリューム名７０３、およびボリュームアドレス７０４の各列を含む。オブジェクト位置情報４０３は、オブジェクト名７０１によって指定された領域内のデータを示し、オブジェクトアドレス７０２は、ボリューム名７０３とボリュームアドレス７０４とによって指定された領域に記憶される。
【００４１】
００７５    図８は、ＲＡＩＤグループ情報５０２の一例を示す。ＲＡＩＤグループ情報５０２は、ＲＡＩＤグループ名８０１、媒体名８０２、ＲＡＩＤレベル８０３、媒体種別８０４、および容量８０５の各列を含む。ＲＡＩＤグループ名８０１は、ＲＡＩＤグループの名前を示す。媒体名８０２は、ＲＡＩＤグループ名８０１によって指定されたＲＡＩＤグループを備えた媒体を示す。ＲＡＩＤレベル８０３は、ＲＡＩＤグループ名８０１によって指定されたＲＡＩＤグループのＲＡＩＤレベルを示す。媒体種別８０４は、ＲＡＩＤグループ名８０１によって指定されたＲＡＩＤグループの媒体種別を示す。容量８０５は、ＲＡＩＤグループ名８０１によって指定されたＲＡＩＤグループの容量を示す。ＲＡＩＤグループＲＧ  Ａ、ＲＧ  Ｂ、およびＲＧ  Ｃの例が行８０６、８０７、および８０８に示されている。
【００４２】
００７６    図９は、論理ボリューム情報５０３の一例を示す。論理ボリューム情報５０３は、論理ボリューム名９０１、論理ボリュームアドレス９０２、ＲＡＩＤグループ名９０３、およびＲＡＩＤグループアドレス９０４の各列を含む。論理ボリューム名９０１と論理ボリュームアドレス９０２とによって指定された領域は、ＲＡＩＤグループ名９０３とＲＡＩＤグループアドレス９０４とによって指定された領域にマッピングされる。論理ボリュームＬ−ＶＯＬ  Ａ、Ｌ−ＶＯＬ  Ｂ、およびＬ−ＶＯＬ  Ｃの例が行９０５、９０６、および９０７に示されている。
【００４３】
００７７    図１０は、記憶プール情報５０４の一例を示す。記憶プール情報５０４は、記憶装置名１００１、記憶プール名１００２、論理ボリューム名１００３、仮想ボリューム名１００４、プール容量１００５、および使用済みプール量１００６の各列を含む。記憶プール情報５０４は、記憶プール名１００２が記憶装置名１００１によって指定された記憶サブシステム上に位置付けられ、論理ボリューム名１００３よって指定された論理ボリュームを備え、仮想ボリューム名１００４によって指定された仮想ボリュームを有することを示している。プール容量１００５は、記憶プール名１００２によって指定された記憶プールの容量を示す。使用済みプール量１００６は、記憶プール名１００２によって指定された記憶プールの使用済み量を示す。記憶装置Ａおよび記憶装置Ｂの例が、行１００７および１００８に示されている。
【００４４】
００７８    図１１は、仮想ボリューム情報５０５の一例を示す。仮想ボリューム情報５０５は、仮想ボリュームページ番号１１０１、仮想ボリューム名１１０２、仮想ボリュームアドレス１１０３、論理ボリュームページ番号１１０４、論理ボリューム名１１０５、論理ボリュームアドレス１１０６、アクセス回数１１０７、および固定済み１１０８の各列を含む。仮想ボリュームページ番号１１０１は、仮想ボリューム名１１０２と仮想ボリュームアドレス１１０３とによって指定されたページを示す。論理ボリュームページ番号１１０４は、論理ボリューム名１１０５と論理ボリュームアドレス１１０６とによって指定されたページを示す。仮想ボリュームページ番号１１０１によって指定されたページは、論理ボリュームページ番号１１０４によって指定されたページにマッピングされる。アクセス回数１１０７は、仮想ボリュームページ番号１１０１によって指定されたページへのアクセス回数を示す。固定済み１１０８の列は、仮想ボリュームページ番号１１０１によって指定されたページが固定済みであるかどうかのステータスを示す。固定済み１１０８が「×」の場合、仮想ボリュームページ番号１１０１によって指定されたページは固定されており、ページ移動プログラム５０７はそのページを別の階層に移動しない。仮想ボリュームページ番号ページ０、ページ１、ページ２、ページ３、およびページ４の例が行１１０９、１１１０、１１１１、１１１２、および１１１３に示されている。
【００４５】
００７９
図１２は、階層定義情報５０６の一例を示す。階層定義情報５０６は、階層１２０１、媒体種別１２０２、圧縮１２０３、非二重化１２０４、およびデフォルト階層１２０５の各列を含む。媒体種別１２０２は、階層１２０１によって指定された階層の媒体を示す。圧縮１２０３が「×」の場合、ディスク制御プログラム５０１は、データを論理ボリュームに書き込むときにデータを圧縮し、当該データを論理ボリュームから読み出すときに伸長する。非二重化１２０４が「×」の場合、ディスク制御プログラム５０１は、データを論理ボリュームに書き込むときにデータを非二重化し、当該データを論理ボリュームから読み出すときにデータの非二重化を解除する。「階層４」および「階層５」は、「階層３」と同じ媒体であり、圧縮および伸長プロセスのために「階層３」より低速であるが、「階層３」より大きなデータを格納できる。デフォルト階層１２０５が「×」の場合、階層１２０１によって指定された階層は、ディスク制御プログラム５０１によって未割り当て領域に割り当てられる。階層１、２、３、４、および５の例が、行１２０６、１２０７、１２０８、１２０９、および１２１０に示されている。
【００４６】
００８０    図１３は、第１実施形態におけるオブジェクト位置ポリシー情報６０３の一例を示す。オブジェクト位置ポリシー情報６０３は、オブジェクト名１３０１およびデータ位置１３０２の各列を含む。データ位置１３０２は、オブジェクト名１３０１によって指定されたオブジェクトの位置を示す。例えば、データ位置１３０２が「自動」の場合、頻繁にアクセスされるページはより高い階層に移動され、めったにアクセスされないページはより低い階層に移動される。データ位置１３０２が「自動」でない場合、ページは階層ポリシーによって指定された階層に固定される。データ位置１３０２が「サーバフラッシュ＆階層３」の場合、オブジェクト名１３０１によって指定されたオブジェクトはフラッシュメモリドライブ３０６上にキャッシュされ、記憶サブシステム３６０内の階層３に位置付けられる。オブジェクトＡ、オブジェクトＢ、およびオブジェクトＣの例が行１３０３、１３０４、および１３０５に示されている。
【００４７】
００８１    図１４は、第１実施形態におけるオブジェクト位置ポリシー情報入力画面６０４の一例を示す。オブジェクト位置ポリシー情報入力画面６０４は、オブジェクト名１４０１およびデータ位置１４０２の各列と、ＯＫボタン１４０３と、キャンセルボタン１４０４とを含む。管理者は、オブジェクト名１４０１によって指定したオブジェクトのデータ位置１４０２を入力し、ＯＫボタン１４０３をクリックする。
【００４８】
００８２    図１５は、読み出しコマンド１５００の一例を示す。読み出しコマンド１５００は、コマンド種別１５０１と、ボリューム名１５０２と、ボリュームアドレス１５０３とを含む。アプリケーションプログラム４０２は、ボリューム名１５０２とボリュームアドレス１５０３とによって指定された領域を読み出すために、読み出しコマンド１５００を記憶サブシステム３６０に送る。
【００４９】
００８３    図１６は、書き込みコマンド１６００の一例を示す。書き込みコマンド１６００は、コマンド種別１６０１と、ボリューム名１６０２と、ボリュームアドレス１６０３と、データ１６０４とを含む。アプリケーションプログラム４０２は、データ１６０４によって指定されたデータをボリューム名１６０２とボリュームアドレス１６０３とによって指定された領域に書き込むために、書き込みコマンド１６００を記憶サブシステム３６０に送る。
【００５０】
００８４    図１７は、フラッシュキャッシュコマンド１７００の一例を示す。フラッシュキャッシュコマンド１７００は、コマンド種別１７０１と、オブジェクト名１７０２と、フラッシュキャッシュ１７０３とを含む。位置管理プログラム６０２は、オブジェクトをフラッシュキャッシュドライブ（フラッシュメモリドライブ）３０６にキャッシュするために、および、フラッシュキャッシュドライブ（フラッシュメモリドライブ）３０６上のオブジェクトをアンキャッシュするために、フラッシュキャッシュコマンド１７００をアプリケーションサーバ３００に送る。フラッシュキャッシュ１７０３が「オン」の場合、アプリケーションプログラム４０２は、オブジェクト名１７０２によって指定されたオブジェクトをフラッシュメモリドライブ３０６にキャッシュする。フラッシュキャッシュ１７０３が「オフ」の場合、アプリケーションプログラム４０２は、オブジェクト名１７０２によって指定されたオブジェクトをフラッシュメモリドライブ３０６から解放する。
【００５１】
００８５    図１８は、フラッシュキャッシュコマンドへの応答１８００の一例を示す。フラッシュキャッシュコマンドへの応答１８００は、コマンド種別１８０１と、オブジェクト名１８０２と、ステータス１８０３とを含む。アプリケーションプログラム４０２は、フラッシュキャッシュコマンド１７００の結果を返すために、フラッシュキャッシュコマンドへの応答１８００を管理サーバ３８０に送る。ステータス１８０３が「キャッシュ済み」の場合、オブジェクト名１８０２によって指定されたオブジェクトはフラッシュメモリドライブ３０６上にキャッシュされている。ステータス１８０３が「未キャッシュ」の場合、オブジェクト名１８０２によって指定されたオブジェクトはフラッシュメモリドライブ３０６上にキャッシュされていない。
【００５２】
００８６    図１９は、ページ固定コマンド１９００の一例を示す。ページ固定コマンド１９００は、コマンド種別１９０１と、ページ名１９０２と、階層１９０３と、キャッシュ１９０４とを含む。位置管理プログラム６０２は、オブジェクトを指定された階層に固定するために、および、オブジェクトの固定を解除するために、ページ固定コマンド１９００を記憶サブシステム３６０に送る。階層１９０３が「階層３」の場合、ページ名１９０２によって指定されたページは、「階層３」に固定される。階層１９０３が「自動」の場合、ページ名１９０２によって指定されたページは固定されず、これらのページへのＩ／Ｏ回数に基づき該当する階層に移動される。キャッシュ１９０４が「ＹＥＳ」の場合、ディスク制御プログラム５０１はページ名１９０２によって指定されたページを階層１９０３によって指定された階層に移動するとき、ディスク制御プログラム５０１はデータをキャッシュ５０８にキャッシュする。キャッシュ１９０４が「ＮＯ」の場合、オブジェクトはアプリケーションサーバ３００上のフラッシュメモリドライブ３０６上に既にキャッシュされており、また当該オブジェクトを記憶しているページへのアプリケーションサーバ３００からの読み出しコマンド１５００がないため、ディスク制御プログラム５０はページ名１９０２によって指定されたページを階層１９０３によって指定された階層に移動するとき、ディスク制御プログラム５０１はデータをキャッシュ５０８にキャッシュしない。
【００５３】
００８７    Ｂ．処理の流れ
【００５４】
００８８    図２０は、ディスク制御プログラム５０１が読み出しコマンド１５００または書き込みコマンド１６００をアプリケーションプログラム４０２から受け取り、ディスク制御プログラム５０１が読み出しまたは書き込み結果をアプリケーションプログラム４０２に送ることを示す流れ図の一例である。ステップ２００１において、ディスク制御プログラム５０１は読み出しコマンド１５００または書き込みコマンド１６００をアプリケーションプログラム４０２から受け取る。判定ステップ２００２において、ディスク制御プログラム５０１がステップ２００１で受け取ったコマンドが書き込みコマンド１６００である場合、処理は判定ステップ２００３に進み、そうでない場合は、処理は判定ステップ２００６に進む。判定ステップ２００３において、書き込みコマンド１６００のボリューム名１６０２とボリュームアドレス１６０３とによって指定された領域が仮想ボリューム情報５０５内で割り当てられている場合は、処理はステップ２００５に進み、そうでない場合は、処理はステップ２００４に進む。ステップ２００４において、ディスク制御プログラム５０１は、媒体種別が階層定義情報５０６内のデフォルト階層１２０５によって指定され、かつボリューム名１６０２によって指定されたボリュームを有するプールに含まれている論理ボリュームの未割り当て領域をボリューム名１６０２とボリュームアドレス１６０３とによって指定された領域に割り当て、仮想ボリューム情報５０５を更新する。ステップ２００５において、ディスク制御プログラム５０１は、ボリューム名１６０２とボリュームアドレス１６０３とを書き込みコマンド１６００から取得し、論理ボリューム名１１０５と論理ボリュームアドレス１１０６とを仮想ボリューム情報５０５から取得し、ＲＡＩＤグループ名９０３とＲＡＩＤグループアドレス９０４とを論理ボリューム情報５０３から取得し、書き込みコマンド１６００内のデータ１６０４をＲＡＩＤグループ名９０３とＲＡＩＤグループアドレス９０４とによって指定された領域に書き込む。判定ステップ２００６において、読み出しコマンド１５００のボリューム名１５０２とボリュームアドレス１５０３とによって指定された領域が仮想ボリューム情報５０５内で割り当てられている場合は、処理はステップ２００８に進み、そうでない場合は、処理はステップ２００７に進む。ステップ２００７において、ボリューム名１５０２とボリュームアドレス１５０３とによって指定された領域に書き込まれていないので、ディスク制御プログラム５０１は「０」をアプリケーションサーバ３００に返す。ステップ２００８において、ディスク制御プログラム５０１はボリューム名１５０２とボリュームアドレス１５０３とを読み出しコマンド１５００から取得し、論理ボリューム名１１０５と論理ボリュームアドレス１１０６とを仮想ボリューム情報５０５から取得し、ＲＡＩＤグループ名９０３とＲＡＩＤグループアドレス９０４とを論理ボリューム情報５０３から取得し、ＲＡＩＤグループ名９０３とＲＡＩＤグループアドレス９０４とによって指定された領域を読み出し、当該データを返す。ステップ２００９において、ディスク制御プログラム５０１がステップ２０��１で受け取ったコマンドが書き込みコマンド１６００であった場合は、ディスク制御プログラム５０１は、書き込みコマンド１６００内のボリューム名１６０２とボリュームアドレス１６０３とによって指定された行のアクセス回数１１０７を「１」だけインクリメントし、そうでなかった場合は、ディスク制御プログラム５０１は、読み出しコマンド１５００内のボリューム名１５０２とボリュームアドレス１５０３とによって指定された行のアクセス回数１１０７を「１」だけインクリメントする。
【００５５】
００８９    図２１は、ページを移動するためのページ移動プログラム５０７の処理を説明する流れ図の一例である。ページ移動プログラム５０７は、頻繁にアクセスされるページをより高い階層に、めったにアクセスされないページをより低い階層に、定期的に移動する。この実施形態においては、階層定義情報５０６に定義されているように、３つの階層があり、階層１は最も高い階層であり、階層３は最も低い階層である。ステップ２１０１において、ページ移動プログラム５０７はアクセス回数１１０７を仮想ボリューム情報５０５から取得する。ステップ２１０２において、ページ移動プログラム５０７は各階層の容量をＲＡＩＤグループ情報５０２と、論理ボリューム情報５０３と、記憶プール情報５０４とに基づき計算し、固定済み１１０８がチェックされているページ以外のページを大きいものから順に階層容量の大きい順に階層に割り当てると共に、別の階層に移動すべきページを決定する。ステップ２１０３において、ページ移動プログラム５０７は、ステップ２１０２で移動が決定されたページをステップ２１０２で指定された階層に移動し、仮想ボリューム情報５０５を更新する。
【００５６】
００９０    図２２は、管理者がオブジェクト位置ポリシー情報６０３を第１実施形態のオブジェクト位置ポリシー情報入力画面６０４から入力したときに、データを移動するための位置管理プログラム６０２の処理を説明する流れ図の一例である。ステップ２２０１において、管理者は、オブジェクト位置ポリシー情報６０３をオブジェクト位置ポリシー情報入力画面６０４から入力する。ステップ２２０２において、位置管理プログラム６０２は、フラッシュキャッシュコマンド１７００をアプリケーションサーバ３００に送信する。このコマンド内のオブジェクト名１７０２は、データ位置１３０２が「サーバフラッシュ」であり、フラッシュキャッシュ１７０３が「オン」であるオブジェクトに対するものである。ステップ２２０３において、アプリケーションプログラム４０２は、フラッシュキャッシュコマンド１７００によって指定されたオブジェクトを読み出し、これらのオブジェクトをフラッシュメモリドライブ３０６にキャッシュするためにこのオブジェクトをフラッシュメモリドライブ３０６に書き込む。ステップ２２０４において、アプリケーションプログラム４０２はフラッシュキャッシュコマンドへの応答１８００を送信する。この応答内のオブジェクト名１８０２はステップ２２０３でキャッシュされたオブジェクトに対するものであり、ステータス１８０３は「キャッシュ済み」である。ステップ２２０５において、情報取得プログラム６０１は、オブジェクト位置情報４０３をアプリケーションサーバ３００から取得する。ステップ２２０６において、位置管理プログラム６０２は、オブジェクト位置ポリシー情報６０３内のデータ位置１３０２が「自動」でないオブジェクト名を取得し、これらのオブジェクトのデータを記憶するページ番号をオブジェクト位置情報４０３と仮想ボリューム情報５０５とから取得する。ステップ２２０７において、位置管理プログラム６０２は、ページ固定コマンド１９００を送信する。このコマンドのページ名１９０２は、ステップ２２０６で取得したページに対するものであり、階層１９０３は、データ位置１３０２が「階層１」、「階層２」、または「階層３」である場合は、オブジェクト位置ポリシー情報６０３によって指定された階層であり、データ位置１３０２が「サーバフラッシュ」である場合は、階層１９０３はより低い階層、例えば「階層３」など、である。フラッシュメモリドライブおよびＳＳＤは、ＳＡＳ  ＨＤＤおよびＳＡＴＡ  ＨＤＤより高速かつより高価であるため、フラッシュメモリドライブ３０６にキャッシュされたオブジェクトは、「階層２」または「階層３」など、より低い階層に移動されるべきである。データ位置１３０２が「サーバフラッシュ」の場合は、キャッシュ１９０４は「ＮＯ」であり、そうでない場合は、キャッシュ１９０４は「ＹＥＳ」である。
【００５７】
００９１    第２実施形態
【００５８】
００９２    図２３は、第２実施形態による図３のアプリケーションサーバ３００内のメモリ３０２の一例を示す。メモリ３０２は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）プログラム４０１と、アプリケーションプログラム４０２と、オブジェクト位置情報４０３と、（図４の第１実施形態にはない）オブジェクト性能情報２３０１とを備える。
【００５９】
００９３    図２４は、第２実施形態による図３の管理サーバ３８０内のメモリ３８２の一例を示す。メモリ３８２は、情報取得プログラム６０１と、位置管理プログラム６０２と、（図６の第１実施形態におけるオブジェクト位置ポリシー情報６０３およびオブジェクト位置ポリシー情報入力画面６０４の代わりに）媒体容量情報２４０１とを備える。
【００６０】
００９４    図２５は、第２実施形態におけるオブジェクト性能情報２３０１の一例を示す。オブジェクト性能情報２３０１は、オブジェクト名２５０１、オブジェクトサイズ２５０２、Ｉ／Ｏ回数２５０３、およびオブジェクトサイズ当たりのＩ／Ｏ２５０４の各列を含む。オブジェクトサイズ２５０２は、オブジェクト名２５０１によって指定されたオブジェクトのサイズを示す。Ｉ／Ｏ回数２５０３は、オブジェクト名２５０１によって指定されたオブジェクトへの１秒当たりのＩ／Ｏ回数を示す。オブジェクトサイズ当たりのＩ／Ｏ２５０４は、Ｉ／Ｏ回数２５０３をオブジェクトサイズ２５０２で割った商であるＩ／Ｏ密度を示す。オブジェクトＡ、オブジェクトＢ、およびオブジェクトＣの例が行２５０５、２５０６、および２５０７に示されている。
【００６１】
００９５    図２６は、第２実施形態における媒体容量情報２４０１の一例を示す。媒体容量情報２４０１は、媒体名２６０１および容量２６０２の各列を含む。容量２６０２は、媒体名２６０１によって指定された媒体の容量を示す。階層１、階層２、階層３、およびサーバフラッシュの例が行２６０３、２６０４、２６０５、および２６０６に示されている。「階層１」、「階層２」、および「階層３」の各々は、記憶サブシステム３６０内の容量を示し、「サーバフラッシュ」は、フラッシュメモリドライブ３０６の容量を示している。
【００６２】
００９６    図２７は、第２実施形態において各オブジェクトへのＩ／Ｏ回数に基づきデータを移動するための位置管理プログラム６０２の処理を説明する流れ図の一例である。このフローは、定期的に、例えば毎時または毎日、実行される。ステップ２７０１において、情報取得プログラム６０１は、オブジェクト位置情報４０３とオブジェクト性能情報２３０１とをアプリケーションサーバ３００から取得する。ステップ２７０２において、位置管理プログラム６０２は各オブジェクトのデータ位置を計算する。フラッシュメモリドライブ３０６上に空き領域がある間は、アクセス回数が最も多いオブジェクトはフラッシュメモリドライブ３０６上にキャッシュされると共に、より低い階層に移動される。その他のオブジェクトは、オブジェクトサイズ当たりのＩ／Ｏ２５０４に従って、Ｉ／Ｏ回数の多いものから順番により高い階層に移動される。位置管理プログラム６０２は、オブジェクトサイズ当たりのＩ／Ｏ２５０４とオブジェクト位置情報４０３とに基づき、各ページの移動先の階層を計算する。ステップ２７０３において、位置管理プログラム６０２はフラッシュキャッシュコマンド１７００を送信する。このコマンド内のオブジェクト名１７０２は、ステップ２７０２でキャッシュされることが決まったオブジェクトに対するものである。ステップ２７０４において、アプリケーションプログラム４０２は、フラッシュキャッシュコマンド１７００によって指定されたオブジェクトを読み出し、これらのオブジェクトをフラッシュメモリドライブ３０６にキャッシュするために、これらのオブジェクトをフラッシュメモリドライブ３０６に書き込む。ステップ２７０５において、アプリケーションプログラム４０２はフラッシュキャッシュコマンドへの応答１８００を送信する。この応答内のオブジェクト名１８０２はステップ２７０４でキャッシュされたオブジェクトに対するものであり、ステータス１８０３は「キャッシュ済み」である。ステップ２７０６において、位置管理プログラム６０２はページ固定コマンド１９００を送信する。このコマンド内のページ名１９０２は、ステップ２７０２で取得したページに対するものであり、階層１９０３はステップ２７０２で取得した階層である。
【００６３】
００９７    第３実施形態
【００６４】
００９８    図２８は、第３実施形態による図３のアプリケーションサーバ３００内のメモリ３０２の一例を示す。メモリ３０２は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）プログラム４０１と、アプリケーションプログラム４０２と、プログラムアクセス情報２８０１とを備える。
【００６５】
００９９    図２９は、第３実施形態による図３の管理サーバ３８０内のメモリ３８２の一例を示す。メモリ３８２は、情報取得プログラム６０１と、位置管理プログラム６０２と、プログラムデータ位置ポリシー情報２９０１と、プログラムデータ位置ポリシー情報入力画面２９０２とを備える。
【００６６】
０１００    図３０は、第３実施形態におけるプログラムアクセス情報２８０１の一例を示す。プログラムアクセス情報２８０１は、プログラム名３００１、ボリューム名３００２、およびボリュームアドレス３００３の各列を含む。プログラムアクセス情報２８０１は、ボリューム名３００２とボリュームアドレス３００３とによって指定された領域にアクセスする、プログラム名３００１によって指定されたプログラムを示す。プログラムＡ、プログラムＢ、およびプログラムＣの例が行３００４、３００５、および３００６に示されている。
【００６７】
０１０１    図３１は、第３実施形態におけるプログラムデータ位置ポリシー情報２９０１の一例を示す。プログラムデータ位置ポリシー情報２９０１は、プログラム名３１０１およびデータ位置１３０２の各列を含む。プログラムデータ位置ポリシー情報２９０１は、データ位置３１０２によって指定された位置に位置付けられるべきである、プログラム名３１０１によって指定されたプログラムによってアクセスされる領域を示す。プログラムＡ、プログラムＢ、およびプログラムＣの例が行３１０３、３１０４、および３１０５に示されている。
【００６８】
０１０２    図３２は、第３実施形態におけるプログラムデータ位置ポリシー情報入力画面２９０２の一例を示す。プログラムデータ位置ポリシー情報入力画面２９０２は、プログラム名３２０１と、データ位置３２０２と、ＯＫボタン３２０３と、キャンセルボタン３２０４とを含む。管理者は、プログラム名３２０１によって指定したプログラムのデータ位置３２０２を入力し、ＯＫボタン３２０３をクリックする。
【００６９】
０１０３    図３３は、管理者がプログラムデータ位置ポリシー情報２９０１を第３実施形態のプログラムデータ位置ポリシー情報入力画面２９０２から入力したときにデータを移動するための位置管理プログラム６０２の処理を説明する流れ図の一例である。このフローは、定期的に、例えば毎時または毎日、実行される。ステップ３３０１において、情報取得プログラム６０１は、プログラムアクセス情報２８０１をアプリケーションサーバ３００から取得する。ステップ３３０２において、位置管理プログラム６０２は、仮想ボリューム情報５０５と、プログラムアクセス情報２８０１と、プログラムデータ位置ポリシー情報２９０１とに基づき、各ページの移動先の位置を計算する。データ位置３１０２において複数のプログラムによってアクセスされる複数のページは、「サーバフラッシュ」を含む。「サーバフラッシュ」は、フラッシュメモリドライブ３０６上にキャッシュされると共に、より低い階層に移動されるべきである。その他のページは、プログラムデータ位置ポリシー情報２９０１によって指定された階層に移動されるべきである。ステップ３３０３において、位置管理プログラム６０２はフラッシュキャッシュコマンド１７００を送信する。このコマンド内のオブジェクト名１７０２は、ステップ３３０２でキャッシュされることが決まったオブジェクトに対するものである。ステップ３３０４において、アプリケーションプログラム４０２は、フラッシュキャッシュコマンド１７００によって指定されたオブジェクトを読み出し、これらのオブジェクトをフラッシュメモリドライブ３０６にキャッシュするために、これらのオブジェクトをフラッシュメモリドライブ３０６に書き込む。ステップ３３０５において、アプリケーションプログラム４０２はフラッシュキャッシュコマンドへの応答１８００を送信する。この応答内のオブジェクト名１８０２はステップ３３０３でキャッシュされたオブジェクトに対するものであり、ステータス１８０３は「キャッシュ済み」である。ステップ３３０６において、位置管理プログラム６０２はページ固定コマンド１９００を送信する。このコマンド内のページ名１９０２はステップ３３０２で取得したページに対するものであり、階層１９０３はステップ３３０２で取得した階層である。
【００７０】
０１０４    第４実施形態
【００７１】
０１０５    図３４は、第４実施形態による図３のアプリケーションサーバ３００内のメモリ３０２の一例を示す。メモリ３０２は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）プログラム４０１と、アプリケーションプログラム４０２と、キャッシュプログラム３４０１とを備える。
【００７２】
０１０６    図３５は、第４実施形態による図３の管理サーバ３８０内のメモリ３８２の一例を示す。メモリ３８２は、情報取得プログラム３５０１と、位置管理プログラム３５０２と、（第４実施形態において新規である）ページ位置管理情報３５０３と、（図２４の第２実施形態のものと同じ）媒体容量情報２４０１とを備える。
【００７３】
０１０７    図３６は、第４実施形態におけるページ位置管理情報３５０３の一例を示す。ページ位置管理情報３５０３は、ページ番号３６０１、２４時間当たりのアクセス回数３６０２、最小データ位置３６０３、１時間当たりのアクセス回数３６０４、およびデータ位置３６０５の各列を含む。位置管理プログラム３５０２は、仮想ボリューム情報５０５を取得し、ページ位置管理情報３５０３を作成する。ページ番号３６０１は、（ページ番号、例えば、ページ０、ページ１など、によって識別されるような）ページの名前を示す。ページ０乃至ページ９の例が行３６０６乃至３６１５に示されている。２４時間当たりのアクセス回数３６０２は、ページ番号３６０１によって指定されたページへの昨日の午前０：００から今日の午前０：００までの２４時間におけるアクセス回数を示す。最小データ位置３６０３は、ページ番号３６０１によって指定された複数のページの位置を示す。複数のページは、最小データ位置３６０３によって指定された位置、またはこれより良い位置、に割り当てられる。最小データ位置３６０３が「階層２」であれば、「サーバフラッシュ」、「階層１」、または「階層２」が当該ページに割り当てられる。位置管理プログラム３５０２は、２４時間当たりのアクセス回数３６０２に基づき、最小データ位置３６０３を２４時間毎に決定する。１時間当たりのアクセス回数３６０４は、ページ番号３６０１によって指定されたページへの最近１時間におけるアクセス回数を示す。位置管理プログラム３５０２は、最小データ位置３６０３と１時間当たりのアクセス回数３６０４とに基づき、データ位置３６０５を１時間毎に決定する。アクセス回数がより多いページは、より高い階層に割り当てられる。アクセス回数がより少ないページは、より低い階層および最小データ位置３６０３以上の階層に割り当てられる。
【００７４】
０１０８    図３７は、第４実施形態におけるページフラッシュキャッシュコマンド３７００の一例を示す。ページフラッシュキャッシュコマンド３７００は、コマンド種別３７０１と、ページ名３７０２と、フラッシュキャッシュ３７０３とを含む。位置管理プログラム３５０２は、フラッシュキャッシュドライブ３０６にページをキャッシュするために、および、フラッシュキャッシュドライブ３０６上のページをアンキャッシュするために、ページフラッシュキャッシュコマンド３７００をアプリケーションサーバ３００に送る。フラッシュキャッシュ３７０３が「オン」（行３７０４）の場合、キャッシュプログラム３４０１は、ページ名３７０２によって指定されたページをフラッシュメモリドライブ３０６にキャッシュする。フラッシュキャッシュ３７０３が「オフ」（行３７０５）の場合、キャッシュプログラム３４０１は、ページ名３７０２によって指定されたページをフラッシュメモリドライブ３０６から解放する。アプリケーションプログラム４０２がデータを読み出すとき、そのデータがキャッシュプログラム３４０１によってフラッシュメモリドライブ３０６にキャッシュされている場合、アプリケーションプログラム４０２はそのデータを、記憶サブシステム３６０からではなく、フラッシュメモリドライブ３０６から読み出す。
【００７５】
０１０９    図３８は、第４実施形態におけるページフラッシュキャッシュコマンドへの応答３８００の一例を示す。ページフラッシュキャッシュコマンドへの応答３８００は、コマンド種別３８０１と、ページ名３８０２と、ステータス３８０３とを含む。キャッシュプログラム３４０１は、ページフラッシュキャッシュコマンド３７００の結果を返すために、ページフラッシュキャッシュコマンドへの応答３８００を管理サーバ３８０に送る。ステータス３８０３が「キャッシュ済み」（行３８０４）の場合、ページ名３８０２によって指定されたページはフラッシュメモリドライブ３０６上にキャッシュされている。ステータス３８０３が「未キャッシュ」（行３８０５）の場合、ページ名３８０２によって指定されたページはフラッシュメモリドライブ３０６上にキャッシュされていない。
【００７６】
０１１０    図３９は、第４実施形態においてページへのアクセス回数に基づきデータを移動するための位置管理プログラム３５０２の処理を説明する流れ図の一例である。このフローは毎時実行される。ステップ３９０１において、情報取得プログラム３５０１は、仮想ボリューム情報５０５を記憶サブシステム３６０から取得し、ページ位置管理情報３５０３内の１時間当たりのアクセス回数３６０４を毎時更新し、ページ位置管理情報３５０３内の２４時間当たりのアクセス回数３６０２を２４時間毎に更新する。ステップ３９０２において、位置管理プログラム６０２は、最小データ位置３６０３とデータ位置３６０５とを計算する。位置管理プログラム６０２が２４時間当たりのアクセス回数３６０２を更新した場合は、位置管理プログラム６０２は、２４時間のアクセス回数と媒体容量情報２４０１とに基づき、最小データ位置３６０３を計算する。位置管理プログラム３５０２は、１時間当たりのアクセス回数３６０４と、最小データ位置３６０３と、媒体容量情報２４０１とに基づき、データ位置３６０５を計算する。位置管理プログラム３５０２は、２４時間当たりのアクセス回数３６０２に基づき各階層の半分の容量を割り当て、１時間当たりのアクセス回数３６０４に基づき各階層の残りの半分の容量を割り当てる。ステップ３９０３において、位置管理プログラム６０２はページフラッシュキャッシュコマンド３７００を送信する。このコマンド内のページ名３７０２は、ステップ３９０２でキャッシュされることが決まったページに対するものである。ステップ３９０４において、アプリケーションプログラムは、ページフラッシュキャッシュコマンド３７００によって指定されたページを読み出し、これらのページをフラッシュメモリドライブ３０６にキャッシュするために、これらのページをフラッシュメモリドライブ３０６に書き込む。ステップ３９０５において、アプリケーションプログラム４０２はページフラッシュキャッシュコマンドへの応答３８００を送信する。この応答内のページ名３８０２はステップ３９０３でキャッシュされたページに対するものであり、ステータス３８０３は「キャッシュ済み」である。ステップ３９０６において、位置管理プログラム６０２はページ固定コマンド１９００を送信する。このコマンド内のページ名１９０２は、ステップ３９０２で取得したページに対するものであり、階層１９０３はステップ３９０２で取得した階層である。
【００７７】
０１１１    もちろん、図３に例示されているシステム構成は、本発明が実現される情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実現するコンピュータおよび記憶システムは、上記発明を実現するために使用されるモジュール、プログラム、およびデータ構造を記憶および読み出し可能な公知のＩ／Ｏ装置（例えば、ＣＤおよびＤＶＤドライブ、フロッピー（登録商標）ディスクドライブ、ハードドライブなど）を有することも可能である。これらのモジュール、プログラム、およびデータ構造は、このようなコンピュータ可読媒体上で符号化可能である。例えば、本発明のデータ構造は、本発明で用いられるプログラムが常駐する１つ以上のコンピュータ可読媒体から独立したコンピュータ可読媒体上に記憶可能である。本システムの各構成要素は、何れかのデジタルデータ通信形態または媒体、例えば通信網、によって相互接続可能である。通信網の例として、ローカルエリアネットワーク、ワイドエリアネットワーク、例えばインターネット、ワイヤレスネットワーク、ストレージエリアネットワークなどが挙げられる。
【００７８】
０１１２    本明細書においては、本発明の完全な理解をもたらす目的のために、数多くの詳細な説明が述べられている。ただし、本発明を実施するためにこれらの具体的詳細の全てが必要であるとは限らないことは当業者には明らかであろう。さらに、本発明は、通常、フローチャート、流れ図、構造図、またはブロック図として表現されるプロセスとして記述されうる。フローチャートは複数の動作を逐次プロセスとして記述しうるが、これらの動作の多くは並列または同時に実施可能である。また、動作の順番は並べ替えられうる。
【００７９】
０１１３    当該技術分野において公知のように、上記の動作はハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組み合わせによって実施可能である。本発明の実施形態のさまざまな態様は、回路および論理デバイス（ハードウェア）を用いて実現されうるが、他の態様は、プロセッサによって実行された場合に本発明の実施形態を実行するための方法をプロセッサに行わせる、マシン可読媒体上に記憶された複数の命令（ソフトウェア）を用いて実現されうる。さらに、本発明の一部の実施形態は、ハードウェアにおいてのみ実施されうる一方で、他の実施形態はソフトウェアにおいてのみ実施されうる。さらに、記載されているさまざまな機能は、単一ユニットにおいて実施可能であるが、あるいはいくつかの構成要素に何通りにでも分散可能である。ソフトウェアによって実施された場合、各方法は、コンピュータ可読媒体に記憶された複数の命令に基づき、汎用コンピュータなどのプロセッサによって実行されうる。必要であれば、これらの命令を圧縮された、および／または暗号化された、形式で媒体に記憶させることができる。
【００８０】
０１１４    上記説明から、本発明は、データ位置管理のための方法、装置、およびコンピュータ可読媒体に記憶されたプログラムを提供することは明らかであろう。また、本明細書においては具体的な実施形態を例示および説明してきたが、開示された具体的な実施形態の代わりに、同じ目的を達成するために考案された如何なる構成でも使用しうることを当業者は理解するであろう。本開示は、本発明のありとあらゆる適合例または変形例を網羅することを意図しており、添付の特許請求の範囲で使用されている用語は、本発明を本明細書に開示された具体的実施形態に限定するものと解釈されるべきではないことを理解されたい。むしろ、本発明の範囲は、添付の特許請求の範囲によってのみ決定されるものとし、添付の特許請求の範囲は、このような請求項が該当するあらゆる均等物と共に、確立されている請求項解釈の原則に従って解釈されるものとする。
【符号の説明】
【００８１】
３００    アプリケーションサーバ
３０６    フラッシュメモリドライブ
３６０    記憶サブシステム
３８０    管理サーバ
４０２    アプリケーションプログラム
５０６    階層定義情報
６０３  オブジェクト位置ポリシー情報
１９００    ページ固定コマンド
３５０３    ページ位置管理情報
【図１】
0005914305.tif 000002
【図２】
0005914305.tif 000003
【図３】
0005914305.tif 000004
【図４】
0005914305.tif 000005
【図５】
0005914305.tif 000006
【図６】
0005914305.tif 000007
【図７】
0005914305.tif 000008
【図８】
0005914305.tif 000009
【図９】
0005914305.tif 000010
【図１０】
0005914305.tif 000011
【図１１】
0005914305.tif 000012
【図１２】
0005914305.tif 000013
【図１３】
0005914305.tif 000014
【図１４】
0005914305.tif 000015
【図１５】
0005914305.tif 000016
【図１６】
0005914305.tif 000017
【図１７】
0005914305.tif 000018
【図１８】
0005914305.tif 000019
【図１９】
0005914305.tif 000020
【図２０】
0005914305.tif 000021
【図２１】
0005914305.tif 000022
【図２２】
0005914305.tif 000023
【図２３】
0005914305.tif 000024
【図２４】
0005914305.tif 000025
【図２５】
0005914305.tif 000026
【図２６】
0005914305.tif 000027
【図２７】
0005914305.tif 000028
【図２８】
0005914305.tif 000029
【図２９】
0005914305.tif 000030
【図３０】
0005914305.tif 000031
【図３１】
0005914305.tif 000032
【図３２】
0005914305.tif 000033
【図３３】
0005914305.tif 000034
【図３４】
0005914305.tif 000035
【図３５】
0005914305.tif 000036
【図３６】
0005914305.tif 000037
【図３７】
0005914305.tif 000038
【図３８】
0005914305.tif 000039
【図３９】
0005914305.tif 000040