(57)【特許請求の範囲】
【請求項１】
ホストと、ネットワークと、当該ネットワークを介して当該ホストに接続されるストレージシステムとを含むシステムにおけるデータ階層管理方法であって、前記ストレージシステムは、メモリと、複数の仮想ボリュームと、複数の論理ボリュームと、複数の物理媒体とを有し、
前記データ階層管理方法は、
仮想ボリュームアドレス及び論理ボリュームアドレスによって特定される領域を選択し、
前記領域へのアクセス数に基づいて前記領域の移動先の階層を決定し、
前記領域の情報と、該領域の移動先階層の情報と、該領域を移動した時間情報とを対応付けて階層移動ログ情報を更新して、階層移動ログ情報設定プロセスを実行する第１のステップと、
外部からの入力に応じて選択された過去の特定の時間を取得し、該取得された特定の時間に対応する階層移動ログを前記階層移動ログ情報から取得し、
前記取得された階層移動ログの前記特定の時間に対応する移動先階層と、前記特定の時間に対応付られた前記領域の現在の階層とが同じ階層かを判定し、
前記現在の階層と前記移動先階層とが同じ階層ではない場合に、前記領域を前記移動先階層に移動して、前記階層移動ログ情報を用いて、前記特定の時間における前記領域の前記移動先階層の階層状態を復元する階層状態復元プロセスを実行する第２のステップと、
を含む、データ階層管理方法。
【請求項２】
前記第２のステップにおいて、
前記現在の階層と前記移動先階層とが同じ階層である場合に、前記領域の階層を前記現在の階層に維持する
ことを特徴とする、請求項１に記載のデータ階層管理方法。
【請求項３】
前記第１のステップにおいて、
論理ボリューム名と、論理ボリュームアドレスと、媒体タイプと、ＲＡＩＤグループ名と、ＲＡＩＤグループアドレスとを対応付けて、前記論理ボリュームの論理ボリューム情報を格納する
ことを特徴とする、請求項１に記載のデータ階層管理方法。
【請求項４】
前記第１のステップにおいて、
仮想ボリューム名と、仮想ボリュームアドレスと、前記論理ボリューム名と、前記論理ボリュームアドレスと、アクセス数と、容量ごとのアクセス数とを対応付けて、前記論理ボリュームの仮想ボリューム情報を格納する
ことを特徴とする、請求項３に記載のデータ階層管理方法。
【請求項５】
前記第１のステップにおいて、
階層と、媒体タイプと、容量閾値とを対応付けて、階層及び媒体定義情報を格納し、
前記第２のステップにおいて、
前記領域の前記現在の階層が、前記仮想ボリューム情報と、前記論理ボリューム情報と、前記階層及び媒体定義情報とから決定される、
ことを特徴とする、請求項４に記載のデータ階層管理方法。
【請求項６】
前記第１のステップにおいて、
前記移動先階層が、前記仮想ボリューム情報と、前記階層及び媒体定義情報とを参照して決定される、
ことを特徴とする、請求項５に記載のデータ階層管理方法。
【請求項７】
前記第１のステップにおいて、
論理ボリュームの容量は、前記論理ボリュームアドレスと、前記階層及び媒体定義情報の前記容量閾値とから計算され、
前記領域の前記移動先の階層が、前記領域へのアクセス数と、前記論理ボリューム容量とに基づいて決定される、
ことを特徴とする、請求項５に記載のデータ階層管理方法。
【請求項８】
前記第１のステップにおいて、
仮想ボリューム名と、仮想ボリュームアドレスと、容量と、アクセス数と、容量ごとのアクセスと、現在の階層と、移動先階層とが対応付けられ、容量ごとのアクセスの多い順に整理されている階層移動先情報を格納し、
前記階層移動先情報が、前記仮想ボリューム情報と、前記論理ボリューム情報の前記媒体タイプに対応する階層とに基づいて作成される、
ことを特徴とする、請求項４に記載のデータ階層管理方法。
【請求項９】
前記階層移動ログ情報の各階層移動ログには、ログＩＤと、前記特定の時間と、該特定の時間の性能とが対応付けられ、かつ、該特定の時間に階層を移動した仮想ボリューム名と、仮想ボリュームアドレスと、移動先の階層とが対応付けられている、
ことを特徴とする、請求項１に記載のデータ階層管理方法。
【請求項１０】
前記第１のステップにおいて、
領域へのリードアクセス又はライトアクセスのいずれか一方がなされた後で、前記領域への前記アクセス数を更新する
ことを特徴とする、請求項１に記載のデータ階層管理方法。
【請求項１１】
前記第１のステップにおいて、
前記階層移動ログ情報の更新の際に、前記決定された移動先階層と、前記領域を該移動先階層に移動した時間と、該領域へのアクセスの性能とが対応付けられる、
ことを特徴とする、請求項１に記載のデータ階層管理方法。
【請求項１２】
前記アクセス性能が、ＩＯＰＳ（Input Output Operations Per Second）又はＢＰＳ（Bits Per Second）のいずれか一方で測定される、
ことを特徴とする、請求項１１に記載のデータ階層管理方法。
【請求項１３】
ネットワークを介してホストと接続されるデータ階層管理のストレージシステムであって、
プロセッサと、
メモリと、
複数の仮想ボリュームと、
複数の論理ボリュームと、
複数の物理媒体と、
前記仮想ボリュームの領域の階層移動を制御する階層制御モジュールと、
を備え、
前記階層制御モジュールは、
仮想ボリュームアドレス及び論理ボリュームアドレスによって特定される領域を選択し、前記領域へのアクセス数に基づいて前記領域の移動先の階層を決定し、前記領域の情報と、該領域の移動先階層の情報と、該領域を移動した時間情報とを対応付けて階層移動ログ情報を更新して、階層移動ログ情報を設定し、
外部からの入力に応じて選択された過去の特定の時間を取得し、該取得された特定の時間に対応する階層移動ログを前記階層移動ログ情報から取得し、前記取得された階層移動ログの前記特定の時間に対応する移動先階層と、前記特定の時間に対応付られた前記領域の現在の階層とが同じ階層かを判定し、前記現在の階層と前記移動先階層とが同じ階層ではない場合に、前記領域を前記移動先階層に移動して、前記階層移動ログ情報を用いて、前記特定の時間における前記領域の前記移動先階層の階層状態を復元する
ことを特徴とする、ストレージシステム。
【請求項１４】
前記メモリに、論理ボリューム名と、論理ボリュームアドレスと、媒体タイプと、ＲＡＩＤグループ名と、ＲＡＩＤグループアドレスとを対応付けて、前記論理ボリュームの論理ボリューム情報を格納する、
ことを特徴とする、請求項１３に記載のストレージシステム。
【請求項１５】
前記メモリに、仮想ボリューム名と、仮想ボリュームアドレスと、論理ボリューム名と、論理ボリュームアドレスと、アクセス数と、容量ごとのアクセス数とを対応付けて、前記論理ボリュームの仮想ボリューム情報を格納する、
ことを特徴とする、請求項１４に記載のストレージシステム。
【請求項１６】
前記メモリに、階層と、媒体タイプと、容量閾値とを対応付けて、階層及び媒体定義情報を格納し、
前記領域の前記現在の階層が、前記仮想ボリューム情報と、前記論理ボリューム情報と、前記階層及び媒体定義情報とから決定される、
ことを特徴とする、請求項１５に記載のストレージシステム。
【請求項１７】
前記メモリに、仮想ボリューム名と、仮想ボリュームアドレスと、容量と、アクセス数と、容量ごとのアクセスと、現在の階層と、移動先階層とが対応づけられ、容量ごとのアクセスの多い順に整理されている階層移動先情報を格納し、
前記階層移動先情報が、前記仮想ボリューム情報と、前記論理ボリューム情報の前記媒体タイプに対応する階層とに基づいて作成される、
ことを特徴とする、請求項１５に記載のストレージシステム。
【請求項１８】
前記階層移動ログ情報の各階層移動ログには、ログＩＤと、前記特定の時間と、該特定の時間の性能とが対応付けられ、かつ、該特定の時間に階層を移動した仮想ボリューム名と、仮想ボリュームアドレスと、移動先の階層とが対応付けられている、
ことを特徴とする、請求項１３に記載のストレージシステム。
【請求項１９】
データの階層管理を行うインタフェースであって、
仮想ボリュームアドレス及び論理ボリュームアドレスによって特定される領域を選択し、前記領域へのアクセス数に基づいて前記領域の移動先の階層を決定し、前記領域の情報と、該領域の移動先階層の情報と、該領域を移動した時間情報とを対応付けて階層移動ログ情報を更新して、階層移動ログ情報設定プロセスを実行し、
外部からの入力に応じて選択された過去の特定の時間を取得し、該取得された特定の時間に対応する階層移動ログを前記階層移動ログ情報から取得し、前記取得された階層移動ログの前記特定の時間に対応する移動先階層と、前記特定の時間に対応付られた前記領域の現在の階層とが同じ階層かを判定し、前記現在の階層と前記移動先階層とが同じ階層ではない場合に、前記領域を前記移動先階層に移動して、前記階層移動ログ情報を用いて、前記特定の時間における前記領域の前記移動先階層の階層状態を復元する階層状態復元プロセスを実行し、
前記領域の前記現在の階層は、階層と、媒体タイプと、容量閾値とが対応付けられた階層及び媒体定義情報から決定され、
管理者の入力に応じて指定された、階層と、媒体タイプと、容量閾値と、デフォルト階層とを含む前記階層及び媒体定義情報を受信し、
前記受信した階層及び媒体定義情報を階層管理画面に表示し、
管理者の入力に応じて、前記階層管理画面に表示された前記階層及び媒体定義情報を更新する
ことを特徴とする、インタフェース。
【請求項２０】
前記特定の時間を含む複数の復元ポイントが表示される復元ポイント選択画面であって、
各復元ポイントは、いくつかの領域が異なる階層に移動された過去の時間と、該時間の性能とを含み、
管理者により、前記複数の復元ポイントのうちの１つが選択されるための復元ポイント選択ボタンと、前記復元ポイント選択ボタンにより選択された復元ポイントに対応する階層状態を復元する前記階層状態復元プロセスを実行させるための復元実行ボタンを含む
ことを特徴とする、請求項１９に記載のインタフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は、概してシンプロビジョニング及び階層管理に関し、特に、階層情報を保存かつ復元するための方法及び装置に関する。
【背景技術】
【０００２】
０００２    近年、シンプロビジョニングが普及してきている。シンプロビジョニングは、ライトコマンドを受信するストレージサブシステムの領域を、未割り当て領域に割り当てるための方法である。現在、ストレージサブシステムは、頻繁にアクセスされている割り当て領域を、高速かつ高価な媒体に移動し、ほとんどアクセスされていない未割り当て領域を、低速で安価な媒体に移動する。このように、特定の時間にだけ作動するプログラムがアクセスする領域は、プログラムが作動しない時は、アクセスされず、低速な媒体に移動される。しかし、プログラムが開始する時に、性能の問題が起こる。
【発明の概要】
【０００３】
０００３    本発明の典型的な実施形態は、階層情報を保存かつ復元するための方法及び装置を提供する。特定の実施形態では、ストレージサブシステムは、階層移動ログ情報を記録する。階層移動ログは、領域が異なる階層に移動される場合の、領域と階層の関係を含む。ストレージサブシステムは、ジョブが開始した時に、階層を復元するために階層移動ログ情報を使用して、領域を元の階層に移動する。
【０００４】
０００４    本発明の一態様は、ホストと、ネットワークと、当該ネットワークを介して当該ホストに接続されるストレージシステムとを含むシステムにおけるデータ階層管理方法であって、メモリと、複数の仮想ボリュームと、複数の論理ボリュームと、複数の物理媒体とを有するストレージシステムを対象とする。前記方法は、仮想ボリュームアドレス及び論理ボリュームアドレスによって特定される領域を選択することと、前記領域へのアクセス数に基づいて前記領域のための移動先階層を決定することと、前記決定された移動先階層及び時間を入力することによって階層移動ログ情報を更新することとを含む、階層移動ログ情報設定プロセスを実行することと、特定の領域を移動するか否かを決定するために、前記階層移動ログ情報を用いるプロセスであって、特定の時間を選択することによって、前記階層移動ログ情報から階層移動ログをロードすることと、前記特定の領域の現在の階層が、前記階層移動ログによって特定される移動先階層と等しいか否かを確認することと、前記現在の階層が前記移動先階層と等しくない場合は、前記特定の領域を前記移動先階層に移動することとを含むプロセスを実行することとを含む。
【０００５】
０００５    いくつかの実施形態では、前記方法は、前記現在の階層が前記移動先階層に等しい場合は、前記特定の領域を前記現在の階層に維持することをさらに含む。前記方法は、論理ボリューム名と、論理ボリュームアドレスと、媒体タイプと、ＲＡＩＤグループ名と、ＲＡＩＤグループアドレスとを含む、前記論理ボリュームの論理ボリューム情報を格納することをさらに含む。前記方法は、仮想ボリューム名と、仮想ボリュームアドレスと、論理ボリューム名と、論理ボリュームアドレスと、アクセス数と、アクセス容量とを含む、前記論理ボリュームの仮想ボリューム情報を格納することをさらに含む。前記方法は、階層と、媒体タイプと、容量閾値とを含む、階層及び媒体定義情報を格納することをさらに含み、前記特定の領域の前記現在の階層が、前記仮想ボリューム情報と、前記論理ボリューム情報と、前記階層及び媒体定義情報とから決定される。前記移動先階層が、前記仮想ボリューム情報と、前記階層及び媒体定義情報とを参照して決定される。論理ボリューム容量が、前記論理ボリュームアドレスと、前記階層及び媒体定義情報からの前記容量閾値とから計算され、前記領域のための前記移動先階層が、前記領域へのアクセス数と、前記論理ボリューム容量とに基づいて決定される。前記方法は、仮想ボリューム名と、仮想ボリュームアドレスと、容量と、アクセス数と、容量ごとのアクセスと、現在の階層と、移動先階層とを含む階層移動先情報であって、容量ごとのアクセスの多い順に整理されている階層移動先情報を格納することをさらに含み、前記階層移動先情報が、前記仮想ボリューム情報と、前記論理ボリューム情報からの前記媒体タイプとに基づいて作成される。
【０００６】
０００６    特定の実施形態では、前記階層移動ログ情報が、ログＩＤと、時間と、当該ログＩＤ及び時間に対応する性能とを含み、かつ仮想ボリューム名と、仮想ボリュームアドレスと、当該仮想ボリューム名及び仮想ボリュームアドレスに対応する階層とをさらに含む。前記方法は、領域へのリードアクセス又はライトアクセスのいずれか一方がなされた後で、前記領域への前記アクセス数を更新することをさらに含む。前記階層移動ログ情報が、前記決定された移動先階層及び前記時間、並びに前記領域へのアクセスの性能を入力することによって更新される。前記アクセス性能が、ＩＯＰＳ（Input Output Operations Per Second）又はＢＰＳ（Bits Per Second）のいずれか一方で測定される。
【０００７】
０００７    本発明の別の態様に従って、データの階層管理のストレージシステムは、ネットワークを介してホストと接続され、当該ストレージシステムは、プロセッサと、メモリと、複数の仮想ボリュームと、複数の論理ボリュームと、複数の物理媒体と、階層制御モジュールとを含む。当該階層制御モジュールは、階層移動ログ情報を設定するように構成され、当該階層制御モジュールは、仮想ボリュームアドレス及び論理ボリュームアドレスによって特定される領域を選択することと、前記領域へのアクセス数に基づいて前記領域のための移動先階層を決定することと、前記決定された移動先階層及び時間を入力することによって階層移動ログ情報を更新することとを含む。前記階層制御モジュールは、前記階層移動ログ情報を使用して特定の領域を移動するか否かを決定するように構成され、当該階層制御モジュールは、特定の時間を選択することによって前記階層移動ログ情報から階層移動ログをロードすることと、前記特定の領域の現在の階層が、前記階層移動ログによって特定される移動先階層と等しいか否かを確認することと、前記現在の階層が前記移動先階層と異なる場合は、前記特定の領域を前記移動先階層に移動することとを含む。
【０００８】
０００８    本発明の別の態様は、仮想ボリュームアドレス及び論理ボリュームアドレスによって特定される領域を選択することと、前記領域へのアクセス数に基づいて前記領域のための移動先階層を決定することと、前記決定された移動先階層及び前記領域へのアクセスの時間及び性能を入力することによって階層移動ログ情報を更新することとを含む、階層移動ログ情報設定プロセスを実行することによって、及び特定の領域を移動するか否かを決定するために前記階層ログ情報を使用するプロセスの実行であって、特定の時間を選択することによって前記階層移動ログ情報から階層移動ログをロードすることと、前記領域の現在の階層が、前記階層移動ログによって特定される移動先階層に等しいか否かを確認することと、前記現在の階層が前記移動先階層に等しくない場合、前記特定の領域を前記移動先階層に移動することとを含む、前記プロセスの実行によって、データの階層管理を行うインタフェースを対象とし、前記前記特定の領域の前記現在の階層は、階層及び媒体定義情報から決定されるものである。当該インタフェースは、ユーザから、階層と、媒体タイプと、容量閾値と、デフォルト階層とを含む前記階層及び媒体定義情報を受信することと、前記受信された階層及び媒体定義情報を階層管理画面に表示することと、前記階層管理画面に表示される前記階層及び媒体定義情報を更新するために、前記ユーザが操作するＯＫボタンを表示することとを実行するコンピュータ可読プログラムコード装置を含む。
【０００９】
０００９    特定の実施形態では、前記インタフェースは、複数の復元ポイントを含む復元ポイント選択画面であって、それぞれの復元ポイントが、領域へのアクセスの時間及び性能を有し、ユーザが前記特定の時間に対応する時間の前記複数の復元ポイントのうちの一つを選択するための、復元ポイント選択画面を表示することと、前記選択された復元ポイントを復元するために、前記ユーザが操作する復元ボタンを表示することとを実行するコンピュータ可読プログラムコード装置をさらに含む。
【００１０】
００１０    本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【００１１】
【図１】００１１    図１は、本発明の方法及び装置が適用され得る情報システムのハードウェア構成の一例を示す。
【図２】００１２    図２は、図１のアプリケーションサーバのメモリ及び図１のストレージサブシステムのメモリの一例を示す。
【図３】００１３    図３は、ＲＡＩＤグループ情報、論理ボリューム情報、及びプール情報の一例を示す。
【図４】００１４    図４は、仮想ボリューム情報並びに階層及び媒体定義情報の一例を示す。
【図５】００１５    図５は、階層移動先情報及び階層移動ログ情報の一例を示す。
【図６】００１６    図６は、階層管理画面及び復元ポイント選択画面の一例を示す。
【図７】００１７    図７は、リードコマンド及びライトコマンドの一例を示す。
【図８】００１８    図８は、ストレージサブシステムがアプリケーションサーバからリードコマンド又はライトコマンドを受信した場合に、ストレージサブシステムがＳＳＤ及びＨＤＤからデータを読み出し、ＳＳＤ及びＨＤＤにデータを書き込むことを示す流れ図の一例である。
【図９】００１９    図９は、定期的に実行される階層移動を示す流れ図の一例である。
【図１０】００２０    図１０は、階層復元を示す流れ図の一例である。
【発明を実施するための形態】
【００１２】
００２１    以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として（但し限定ではない）示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する（以下に説明し、かつ図面で示される通り）が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ／又はブロック図において図示している場合もある。
【００１３】
００２２    さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相応の物理的操作を必要とする。通常は（必ずしもそうではないが）、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に対応付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
【００１４】
００２３    本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等（但し、これらに限定されない）のコンピュータ読取可能記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び表示態様は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行され得る。
【００１５】
００２４    本発明の例示的実施形態は、以下でより詳細に記述されるように、シンプロビジョニングの機能において階層情報を保存かつ復元するための装置、方法、及びコンピュータプログラムを提供する。
【００１６】
００２５    システム構成
【００１７】
００２６    図１は、本発明の方法及び装置が適用され得る情報システムのハードウェア構成の一例を示す。このシステムは、アプリケーションサーバ１００、ＳＡＮ（ストレージエリアネットワーク）１２０、ＬＡＮ（ローカルエリアネットワーク）１４０、及びストレージサブシステム１６０から構成される。アプリケーションサーバ１００は、ＣＰＵ（中央演算装置）１０１、メモリ１０２、ＨＤＤ（ハードディスクドライブ）１０３、ＳＡＮインタフェース１０４、及びＬＡＮインタフェース１０５から構成される。
【００１８】
００２７    ＣＰＵ１０１は、メモリ１０２からプログラムを読み出し、プログラムを実行する。メモリ１０２は、アプリケーションサーバ１００がプログラム及びデータを起動かつ格納する時に、ＨＤＤ１０３からプログラム及びデータを読み出す。ＨＤＤ１０３は、プログラム及びデータを格納する。ＳＡＮインタフェース１０４は、アプリケーションサーバ１００とＳＡＮ１２０を接続する。ＳＡＮ１２０は、アプリケーションサーバ１００とストレージサブシステム１６０を接続する。アプリケーションサーバ１００は、ＳＡＮ１２０を用いて、ストレージサブシステム１６０にアプリケーションデータを送信し、ストレージサブシステム１６０からアプリケーションデータを受信する。
【００１９】
００２８    ストレージサブシステム１６０は、ＳＡＮインタフェース１６１、ＣＰＵ１６３、メモリ１６４、ディスクインタフェース１６５、ＳＳＤ（Solid State Drive）１６６、及びＨＤＤ１６７から構成される。ＳＡＮインタフェース１６１は、ストレージサブシステム１６０とＳＡＮ１２０を接続する。ＣＰＵ１６３は、メモリ１６４からプログラムを読み出し、プログラムを実行する。メモリ１６４は、ストレージサブシステム１６０がプログラム及びデータを起動かつ格納する時に、ＨＤＤ１６７及びＳＳＤ１６６からプログラム及びデータを読み出す。ディスクインタフェース１６５は、ストレージサブシステム１６０、ＳＳＤ１６６、及びＨＤＤ１６７を接続する。ＳＳＤ１６６は、プログラム及びデータを格納する。ＨＤＤ１６７は、プログラム及びデータを格納する。
【００２０】
００２９    図２は、本実施形態に従う図１のアプリケーションサーバのメモリ１０２及び図１のストレージサブシステム１６０のメモリ１６４の一例を示す。
【００２１】
００３０    メモリ１０２は、ＯＳ（オペレーティングシステム）プログラム２０１及びアプリケーションプログラム２０２から構成される。ＯＳプログラム２０１は、アプリケーションプログラム２０２を実行する。アプリケーションプログラム２０２（例えばデータベースプログラム）は、ストレージサブシステム１６０からデータを読み出し、データを処理し、結果をストレージサブシステム１６０に書き込む。
【００２２】
００３１    メモリ１６４は、ディスク制御プログラム２２１、ＲＡＩＤ(Redundant Arrays of Inexpensive (or Independent) Disks)グループ情報２２２、論理ボリューム情報２２３、プール情報２２４、仮想ボリューム情報２２５、階層及び媒体定義情報２２６、階層移動先情報２２７、階層移動ログ情報２２８、及び階層制御プログラム２２９から構成される。
【００２３】
００３２    ディスク制御プログラム２２１は、アプリケーションサーバ１００からリードコマンド及びライトコマンドを受信し、ＲＡＩＤグループ情報２２２、論理ボリューム情報２２３、プール情報２２４、仮想ボリューム情報２２５、及び階層及び媒体定義情報２２６を用いて、ＳＳＤ１６６及びＨＤＤ１６７からデータを読み出し、ＳＳＤ１６６及びＨＤＤ１６７にデータを書き込む。階層制御プログラム２２９は、論理ボリューム情報２２３を用いて階層移動先情報２２７を計算し、階層移動先情報２２７を用いて異なる階層に領域を移動し、階層移動ログ情報２２８を記録する。
【００２４】
００３３    図３は、ＲＡＩＤグループ情報２２２、論理ボリューム情報２２３、及びプール情報２２４の一例を示す。
【００２５】
００３４    ＲＡＩＤグループ情報２２２は、ＲＡＩＤグループ名３０１、媒体名３０２、媒体タイプ３０３、及びＲＡＩＤレベル３０４の欄を含む。例えば、行３０５は、「ＲＧ  Ａ」が「ＳＳＤ  Ａ」、「ＳＳＤ  Ｂ」、「ＳＳＤ  Ｃ」、「ＳＳＤ  Ｄ」を有し、「ＲＧ  Ａ」の媒体タイプが「ＳＳＤ」であり、「ＲＧ  Ａ」のＲＡＩＤレベルが「ＲＡＩＤ１０（２Ｄ＋２Ｄ）」であることを示す。
【００２６】
００３５    論理ボリューム情報２２３は、論理ボリューム名３２１、論理ボリュームアドレス３２２、媒体タイプ３２３、ＲＡＩＤグループ名３２４、及びＲＡＩＤグループアドレス３２５の欄を含む。例えば、行３２６は、「Ｌ−ＶＯＬ  Ａ」の媒体タイプが「ＳＳＤ」であり、「Ｌ−ＶＯＬ  Ａ」が「ＲＧ  Ａ」のアドレス「０」〜「１９９」に割り当てられていることを示す。
【００２７】
００３６    プール情報２２４は、プール名３４１、論理ボリューム名３４２、及び仮想ボリューム名３４３の欄を含む。例えば、行３４４は、「ＰＯＯＬ  Ａ」が「Ｌ−ＶＯＬ  Ａ」、「Ｌ−ＶＯＬ  Ｂ」、及び「Ｌ−ＶＯＬ  Ｃ」を有し、「ＰＯＯＬ  Ａ」の領域が「Ｖ−ＶＯＬ  Ａ」によって使用されることを示す。
【００２８】
００３７    図４は、仮想ボリューム情報２２５及び階層及び媒体定義情報２２６の一例を示す。
【００２９】
００３８    仮想ボリューム情報２２５は、仮想ボリューム名４０１、仮想ボリュームアドレス４０２、論理ボリューム名４０３、論理ボリュームアドレス４０４、アクセス数４０５、及び容量ごとのアクセス４０６の欄を含む。例えば、行４０７は、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」が「Ｌ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」に割り当てられ、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」のアクセス数が「１１０００」であり、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」の容量ごとのアクセスが「１１０」であることを示す。
【００３０】
００３９    階層及び媒体定義情報２２６は、階層４２１、媒体タイプ４２２、容量閾値４２３、及びデフォルト階層４２４の欄を含む。容量閾値４２３は、媒体タイプ４２２の媒体が仮想ボリュームに割り当てられる最大容量率である。例えば、行４２５は、対象である階層が「０」であり、かつ階層定義情報２２６が「ＳＳＤ」媒体に割り当てられ、媒体タイプが「ＳＳＤ」である論理ボリュームの「８０％」領域が仮想ボリュームに割り当てられ、階層「０」がデフォルト階層ではないように定義された対象を示す。
【００３１】
００４０    図５は、階層移動先情報２２７及び階層移動ログ情報２２８の一例を示す。
【００３２】
００４１    階層移動先情報２２７は、仮想ボリューム名５０１、仮想ボリュームアドレス５０２、容量５０３、アクセス数５０４、容量ごとのアクセス５０５、現在の階層５０６、及び移動先階層５０７の欄を含む。例えば、行５０８は、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」の容量が「１００」であり、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」のアクセス数が「１１０００」であり、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」の容量ごとのアクセスが「１１０」であり、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」の現在の階層が「０」であり、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」の移動先階層が「０」であることを示す。
【００３３】
００４２    階層移動ログ情報２２８は、ログＩＤ５２１、日時５２２、ＩＯＰＳ５２３、仮想ボリューム名５４１、仮想ボリュームアドレス５４２、及び階層５４３の欄を含む。例えば、行５２４及び行５４４は、ログＩＤが「５」であり、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」が「０２/１６/２０１０ ０６:０３ＰＭ」に階層「０」に移動され、「０２/１６/２０１０ ０６:０３ＰＭ」におけるストレージサブシステム１６０へのアクセスの量が「７」ＩＯＰＳ（毎秒あたり入出力オペレーション）であることを示す。ＩＯＰＳは、アクセス性能の１つの測定方法である。性能の別の測定方法は、ＢＰＳ（ビット毎秒）である。
【００３４】
００４３    図６は、階層管理画面６００及び復元ポイント選択画面６２０の一例を示す。管理者は、階層６０１、媒体タイプ６０２、容量閾値６０３、及びデフォルト階層６０４を入力する。階層及び媒体定義情報２２６は、管理者が「ＯＫ」ボタン６０７を押すと、管理者によって入力されたデータに更新される。
【００３５】
００４４    復元ポイント選択画面６２０は、復元ポイント６２１、日時６２２、及びＩＯＰＳ６２３の欄を含む。例えば、行６２４は、いくつかのアドレスが異なる階層に移動された日時が「０２/１６/２０１０ ０６:０３ＰＭ」であって、「０２/１６/２０１０ ０６:０３ＰＭ」におけるストレージサブシステムへのアクセス量が「７」ＩＯＰＳであったことを示す。管理者は、復元ポイントを選択し、「復元」ボタン６２９を押す。
【００３６】
００４５    図７は、リードコマンド７００及びライトコマンド７２０の一例を示す。リードコマンド７００は、コマンドタイプ７０１、ボリューム名７０２、及びボリュームアドレス７０３を含む。リードコマンド７００は、アプリケーションサーバ１００からストレージサブシステム１６０に送信される。ライトコマンド７２０は、コマンドタイプ７２１、ボリューム名７２２、ボリュームアドレス７２３、及びデータ７２４を含む。ライトコマンド７２０は、アプリケーションサーバ１００からストレージサブシステム１６０に送信される。
【００３７】
００４６    プロセスのフロー
【００３８】
００４７    図８は、ストレージサブシステム１６０がアプリケーションサーバ１００からリードコマンド７００又はライトコマンド７２０を受信した場合に、ストレージサブシステム１６０がＳＳＤ１６６及びＨＤＤ１６７からデータを読み出し、ＳＳＤ１６６及びＨＤＤ１６７にデータを書き込むことを示す流れ図の一例である。
【００３９】
００４８    ステップ８０１では、ディスク制御プログラム２２１は、アプリケーションサーバ１００からリードコマンド７００又はライトコマンド７２０を受信する。ステップ８０２では、ディスク制御プログラム２２１がステップ８０１で受信したコマンドがライトコマンド７２０である場合は、プロセスは決定ステップ８０３に進む。そうでない場合、プロセスは決定ステップ８０６に進む。
【００４０】
００４９    決定ステップ８０３（ライトコマンド）では、ボリューム名７２２及びボリュームアドレス７２３が仮想ボリューム情報２２５に割り当てられている場合は、プロセスはステップ８０５に進む。そうでない場合、プロセスはステップ８０４に進む。ステップ８０４では、ディスク制御プログラム２２１は、論理ボリュームの領域を仮想ボリュームの未割り当て領域に割り当てる。例えば、ディスク制御プログラム２２１は、領域を割り当てるために、デフォルト階層４２４が「Ｘ」である媒体「ＳＡＴＡ  ＨＤＤ」を選択する。ライトコマンド７２０のボリューム名７２２は、「Ｖ−ＶＯＬ  Ａ」である。プール情報２２４によると、「Ｖ−ＶＯＬ  Ａ」は、「ＰＯＯＬ  Ａ」に属する。「ＰＯＯＬ  Ａ」は、「Ｌ−ＶＯＬ  Ａ」、「Ｌ−ＶＯＬ  Ｂ」、及び「Ｌ−ＶＯＬ  Ｃ」から構成される。論理ボリューム情報２２３によると、「Ｌ−ＶＯＬ  Ａ」の媒体タイプ３２３は「ＳＳＤ」であり、「Ｌ−ＶＯＬ  Ｂ」の媒体タイプ３２３は「ＳＡＳ  ＨＤＤ」であり、「Ｌ−ＶＯＬ  Ｃ」の媒体タイプ３２３は「ＳＡＴＡ  ＨＤＤ」である。従って、ディスク制御プログラム２２１は、「Ｌ−ＶＯＬ  Ｃ」を選択することができる。ディスク制御プログラム２２１は、仮想ボリューム情報３０５をステップ８０４の結果に更新する。ステップ８０５では、ディスク制御プログラム２２１は、ライトコマンド７２０からボリューム名７２２及びボリュームアドレス７２３を取得し、仮想ボリューム情報２２５から論理ボリューム名４０３及び論理ボリュームアドレス４０４を取得し、論理ボリューム情報２２３からＲＡＩＤグループ名３２４及びＲＡＩＤグループアドレス３２５を取得し、ＲＡＩＤグループ情報２２２から媒体名３０２を取得し、データ７２４をＳＳＤ１６６及びＨＤＤ１６７に書き込む。
【００４１】
００５０    決定ステップ８０６（ライトコマンドではない）では、ボリューム名７０２及びボリュームアドレス７０３が仮想ボリューム情報２２５に割り当てられている場合は、プロセスはステップ８０８に進む。そうでない場合、プロセスはステップ８０７に進む。ステップ８０７では、ディスク制御プログラム２２１は、アプリケーションサーバ１００に「０」を返す。なぜならば、ボリューム名７０２及びボリュームアドレス７０３によって特定される領域が、データが書き込まれる領域ではないからである。ステップ８０８では、ディスク制御プログラム２２１は、リードコマンド７００からボリューム名３２２及びボリュームアドレス３２３を取得し、仮想ボリューム情報２２５から論理ボリューム名４０３及び論理ボリュームアドレスを取得し、論理ボリューム情報２２３からＲＡＩＤグループ名３２４及びＲＡＩＤグループアドレス３２５を取得し、ＲＡＩＤグループ情報２２２から媒体名３０２を取得し、ＳＳＤ１６６及びＨＤＤ１６７からデータを読み出す。
【００４２】
００５１    ステップ８０９（ステップ８０５、８０７、又は８０８の後で）では、ディスク制御プログラム２２１は、アクセス数４０５を１だけ加算し、容量ごとのアクセス４０６を計算する。例えば、仮想ボリュームアドレス４０２は「０-９９」であり、アクセス数は、行４０７の「１１０００」である。従って、行４０７の容量ごとのアクセス４０６は、「１１０００」を「１００」で除算した「１１０」である。
【００４３】
００５２    図９は、定期的に実行される階層移動を示す流れ図の一例である。例えば、このフローは１時間ごとに実行される。ステップ９０１では、階層制御プログラム２２９は、仮想ボリューム情報２２５と、論理ボリューム情報２２３からの媒体タイプ３２３とを取得し、階層移動先情報２２７を作成し、アクセス数５０５の多い順に行をソートする。ステップ９０２では、階層制御プログラム２２９は、論理ボリュームアドレス３２２と、階層及び媒体定義情報２２６からの容量閾値４２３とから計算された、論理ボリューム容量に基づき、どの領域を異なる階層へ移動するかを決定する。例えば、階層「０」の容量閾値４２３は「８０％」であり、階層「０」の論理ボリュームは「Ｌ−ＶＯＬ  Ａ」であり、「Ｌ−ＶＯＬ  Ａ」の容量は２００バイトである。従って、階層「０」に割り当てられる容量は、１６０バイトである。行５０８の容量５０３は１００バイトであり、行５０９の容量５０３は５０バイトであり、行５１０の容量５０３は５０である。行５０８の容量５０３と行５０９の容量５０３の総量は１５０であり、かつ行５０８の容量５０３、行５０９の容量５０３、及び行５１０の容量５０３の総量は２００である。従って、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」および「Ｖ−ＶＯＬ  Ｂ」のアドレス「０」〜「４９」の移動先階層５０７は、階層「０」である。
【００４４】
００５３    ステップ９０３では、階層制御プログラム２２９は、階層移動先情報２２７から１行を選択する。判定ステップ９０４では、ステップ９０３で取得された現在の階層５０６がステップ９０３で取得された移動先階層５０７と等しい場合は、プロセスは判定ステップ９０６に進む。そうでない場合には、プロセスはステップ９０５に進む。ステップ９０５では、階層制御プログラム２２９は、ステップ９０３で選択された領域を、ステップ９０３で取得された移動先階層５０７にコピーする。例えば、「Ｖ−ＶＯＬ  Ａ」のアドレス「１５０」〜「１９９」は、「Ｌ−ＶＯＬ  Ｂ」のアドレス「０」〜「４９」にマップされるが、「Ｌ−ＶＯＬ  Ａ」のアドレス「１５０」〜「１９９」はどこにもマップされない。従って、階層制御プログラム２２９は、「Ｌ−ＶＯＬ  Ｂ」のアドレス「０」〜「４９」上のデータを「Ｌ−ＶＯＬ  Ａ」のアドレス「１５０」〜「１９９」にコピーし、仮想ボリューム情報２２５を更新する。判定ステップ９０６では、階層移動先情報２２７のすべての行が処理されない場合は、プロセスはステップ９０３に戻る。そうでない場合、プロセスは終了する。
【００４５】
００５４    図１０は、階層復元を示す流れ図の一例である。例えば、このフローは１時間ごとに実行される。ステップ１００１では、階層制御プログラム２２９は、復元ポイント選択画面６２０から復元ポイントの日時を取得する。例えば、復元ポイントは、行６２４から選択される。従って、復元ポイントの日時は、「０２/１６/２０１０ ０６:０３ＰＭ」である。ステップ１００２では、階層制御プログラム２２９は、日時５２２がステップ１００１で取得された日時と等しい階層移動ログ情報２２８を取得する。
【００４６】
００５５    ステップ１００３では、階層制御プログラム２２９は、階層移動ログ情報２２８から１行選択する。ステップ１００４では、階層制御プログラム２２９は、ステップ１００３で仮想ボリューム情報２２５、論理ボリューム情報２２３、及び階層及び媒体定義情報２２６から選択された領域の現在の階層を取得する。例えば、行５４４がステップ１００３で選択された場合、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「９９」は階層「０」である。
【００４７】
００５６    ステップ１００５では、ステップ１００３で取得された階層５４３がステップ１００４で取得された階層４２１と等しい場合は、プロセスは判定ステップ１００７に進む。そうでない場合、プロセスはステップ１００６に進む。ステップ１００６では、階層制御プログラム２２９は、ステップ１００３で選択される領域を、ステップ９０３で取得された階層５４３にコピーする。例えば、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「４９」が階層「０」に配置されない場合は、階層制御プログラム２２９は、「Ｖ−ＶＯＬ  Ａ」のアドレス「０」〜「４９」上のデータを、階層「０」上の空の領域にコピーする。判定ステップ１００７では、階層移動ログ情報２２８のすべての行が処理されていない場合は、プロセスはステップ１００３に戻る。そうでない場合、プロセスは終了する。
【００４８】
００５７    当然のことながら、図１に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のＩ／Ｏ装置（例えば、ＣＤ及びＤＶＤドライブ、フロッピーディスクドライブ、ハードドライブ等）も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ読取可能媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ読取可能媒体から独立したコンピュータ読取可能媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、無線ネットワーク、ストレージエリアネットワーク等を含む。
【００４９】
００５８    説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【００５０】
００５９    当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置（ハードウェア）を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体（ソフトウェア）上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ読取可能媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び／又は暗号化形式で命令を媒体に記憶することができる。
【００５１】
００６０    上記により、本発明が、階層情報を保存かつ復元するための方法、装置及びコンピュータ読取可能媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創造されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。
【図１】
0005619667.tif 000002
【図２】
0005619667.tif 000003
【図３】
0005619667.tif 000004
【図４】
0005619667.tif 000005
【図５】
0005619667.tif 000006
【図６】
0005619667.tif 000007
【図７】
0005619667.tif 000008
【図８】
0005619667.tif 000009
【図９】
0005619667.tif 000010
【図１０】
0005619667.tif 000011