(57)【特許請求の範囲】
【請求項１】
各種データを読み出す所定要求を送出するホストと、
前記ホストからの各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、
各種データを記憶するキャッシュ領域と、
前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、
を有するストレージと、
１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する手段と、
前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開する手段と、
を含み、
前記読み出し待機用領域は、ストレージ仮想化によって、読み出し待機用論理領域と読み出し待機用物理領域の両方がそれぞれ設けられており、
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを削除する手段を更に含む
ことを特徴とするストレージシステム。
【請求項２】
各種データを読み出す所定要求を送出するホストと、
前記ホストからの各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、
各種データを記憶するキャッシュ領域と、
前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、
を有するストレージと、
１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する手段と、
前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開する手段と、
を含み、
前記読み出し待機用領域は、ストレージ仮想化によって、読み出し待機用論理領域と読み出し待機用物理領域の両方がそれぞれ設けられており、
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを抜き取って残りのデータブロックを前記読み出し待機用論理領域に整列して記録する手段を更に含む
ことを特徴とするストレージシステム。
【請求項３】
トリガーに関連付けて収集した管理用情報に基づいて、読み出し待機用領域に記録されるトリガーごとのロードデータを、逐次的に構築し直す手段を更に含むことを特徴とする請求項１又は２に記載のストレージシステム。
【請求項４】
前記所定要求は、各ユーザのログイン要求であり、
前記各々のトリガーには、各ユーザのログイン要求が発生するであろう条件が関連付けられる、
ことを特徴とする請求項１ないし３の何れか一項に記載のストレージシステム。
【請求項５】
前記ストレージ領域の読み出し待機用領域は、ユーザ端末及びホストからアクセス不能に設定されることを特徴とする請求項１ないし４の何れか一項に記載のストレージシステム。
【請求項６】
前記キャッシュ領域は、異なるキャッシュ素子を用いた階層構造を有してなり、
ステージングされるロードデータ及び／又は該当ロードデータ内に含まれるデータに付与されたステージング優先度に基づいた前記キャッシュ領域に同時に存在させるロードデータ間での優先度順位に従って、キャッシュ先となるキャッシュ素子を選定する手段を更に含み、
前記ステージング優先度は、トリガーに関連付けて収集した管理用情報又はデータ量を用いて値を算出する
ことを特徴とする請求項１ないし５の何れか一項に記載のストレージシステム。
【請求項７】
各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、
各種データを記憶するキャッシュ領域と、
前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、
１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する手段と、
前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開する手段と、
を有し、
前記読み出し待機用領域は、ストレージ仮想化によって、読み出し待機用論理領域と読み出し待機用物理領域の両方がそれぞれ設けられており、
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを削除する手段を更に含む
ことを特徴とするストレージ装置。
【請求項８】
各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、各種データを記憶するキャッシュ領域と、前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、を有するストレージ装置は、
読み出し待機用領域として、ストレージ仮想化によって、読み出し待機用論理領域と読み出し待機用物理領域の両方がそれぞれ設けられており、
１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する工程と、
前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開する工程と、
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを削除する工程と、
をステージング過程に含めて実行することを特徴とするストレージ装置内でのステージング方法。
【請求項９】
各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、各種データを記憶するキャッシュ領域と、前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、を有するストレージ装置は、
読み出し待機用領域として、ストレージ仮想化によって、読み出し待機用論理領域と読み出し待機用物理領域の両方がそれぞれ設けられており、
１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する工程と、
前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開する工程と、
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを抜き取って残りのデータブロックを前記読み出し待機用論理領域に整列して記録する工程と、
をステージング過程に含めて実行することを特徴とするストレージ装置内でのステージング方法。
【請求項１０】
各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、各種データを記憶するキャッシュ領域と、前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、を有し、読み出し待機用領域として ストレージ仮想化によって 読み出し待機用論理領域と読み出し待機用物理領域の両方をそれぞれ具備するストレージ装置の制御部を、
１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する待機用領域管理部と、
前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開するキャッシュ展開管理部と、
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを削除する手段、
として動作させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムに関し、特に、データを記憶するストレージ領域及びキャッシュ領域を有するストレージシステム、ストレージ装置、及びステージング方法に関する。
【背景技術】
【０００２】
近年、コンピュータシステムの有する構成が大きく変貌してきている。 
多くのコンピュータがネットワークで接続され、ストレージが大容量化し、仮想化技術の普及も進んでいる。例えば、クラウド上のサーバを構築するデータセンターで、仮想化技術を用いてユーザに仮想ＯＳ（Operating System）やプログラムを提供したり、ユーザの個人データを管理することも行われている。また、シンクライアントシステムなどで扱う処理演算量やデータ量が飛躍的に増大している。
【０００３】
サービス提供者は、その時代毎に適切なスケールのコンピュータシステム設備を準備する必要がある。設備量が不足がちになれば、ユーザの利便性が大きく阻害される。他方、余剰設備を有した場合、それはまたユーザが余分なコストを負担することに繋がる。
【０００４】
昨今、様々な要因があるもののＣＰＵ（Central Processing Unit）やストレージデバイスの演算量や記憶量当たりの単価が低減している。今後も低減が続くことが期待される。一方で、サービス提供者はその時期毎に設備の適切なスケーリングを行うものの、ピークに合わせて設備を準備することでは、常時的に余剰設備を有することになる。例えば、以下の事例のようなピークを基準に設備を準備することは困難である。
【０００５】
１つの事例は、１ユーザによるピークである。仮想ＰＣ（Personal Computer）（仮想ディスクトップ）をユーザ（ユーザ端末）に提供するシンクライアントシステムでは、サーバにユーザがログインした際に多量の演算及びデータ転送がサーバシステム内に発生する。換言すれば、ユーザのログインをトリガーにサーバに高負荷状態が発生する。
【０００６】
また、別の事例は、複数ユーザによるピークである。会社の始業時間近辺では、多くのユーザが同時的にサーバにログインする。このことで、膨大な演算及びデータ転送がサーバシステム内に発生する。換言すれば、ある時間を迎えたことをトリガーにサーバに高負荷状態が発生する。
【０００７】
クライアント端末とサーバとのデータ転送量（通信量）にも気配りが必要であるものの、サーバシステム内でのデータ転送量もシステム構築上の気配りが必要である。
【０００８】
また、同様な問題は、シンクライアントシステムではない、データセンターや、社内サーバなどでも生じる。多数の高負荷状態を生じさせる要求を同時的に受けた際に、データセンター内や社内サーバ内などでのデータ転送量に注目しておく必要がある。例えば、同一物理ディスクにあるデータ群に多くのＰＣから取得要求を受けた場合に、ディスクを管理している制御系や転送系に高負荷状態が発生する。
【０００９】
これらの問題は、ログインストームやブートストームなどのワードで問題として認知されている。また、クライアント群の同時的なウイルスチェックやアップデートでもデータ処理のストームが生じることがある。
【００１０】
現状のストレージシステムでは、ストレージ装置からの読み出し速度や書き込み速度が他の処理の遅延要因を生じさせる一つの要因と云える。すなわち、ストレージ装置がシステムのボトルネックとなる事例が少なくない。
【００１１】
本発明に関連する先行技術としては、例えば、特許文献１や特許文献２に記載されたステージング手法が挙げられる。 
特許文献１では、多くのユーザを抱えるシステムでの各ユーザのログインに備えて、各ユーザのログイン時刻を入場ゲートを各々のユーザが通過した時刻から予測処理して、各ユーザのログイン時刻よりも前に 該当ユーザのログイン用情報を予めキャッシュにステージングする技術を開示している。 
特許文献２には、特定の時間帯にホストコンピュータからアクセスされる所定データを予め設定し、その所定データを磁気ディスク装置からキャッシュメモリに予め移動して、所定データへのアクセス時にキャッシュメモリから呼び出す技術が開示されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００９−９３５１２号公報
【特許文献２】特開平１１−２５９３６３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ストレージシステムで生じるデータ処理の集中、すなわちストームを、ストレージ装置の読み出し速度を向上して、問題を改善する既存手法について、更なる改善を図る。
【００１４】
以下に、既存手法の問題を整理する。
【００１５】
１．ストレージ装置の適切なサイジングによる十分なスペック確保 
対策：運用で想定される一時的な負荷に対して事前に十分なスペック（演算リソース、ストレージ量、転送速度確保、など）にサイジングを実行する。 
問題：ログインストームのような短時間に発生する負荷への対応のために、高価なメモリやＳＳＤ（Solid State Disk）が多量に必要となりコストがかかる。
【００１６】
２．特許文献１に記載した手法（ゲート通過タイミングに基づいた時刻予測によるキャッシュへのログイン用情報のステージング） 
対策：管理サーバが、入場ゲートを各々のユーザが通過した時刻から各ユーザのログイン時刻を予測処理して、各ユーザのログイン時刻よりも前に 該当ユーザのログイン用情報をキャッシュメモリにステージングする。 
問題：同時刻にログインするユーザ数が多い場合、ログイン用情報がステージングされるキャッシュメモリの容量が多量に必要になる。また、ログイン用情報によるキャッシュメモリの占有問題や、多量なログイン用情報ではキャッシュメモリから溢れる問題も生じ得る。
【００１７】
３．ストレージ装置内での階層化によるストレージ領域の高速化  
対策：階層化した 高性能であるＳＳＤと低コストであるＨＤＤ（Hard Disk Drive）の間で所要データを逐次移動する。 
問題：一時的に高負荷状態を発生させる要求に対応したことによって、ＳＳＤとＨＤＤとの間でデータ移動が頻繁に実行される。その結果、ストレージ装置内にデータ転送負荷が多量に発生する。
【００１８】
４．ストレージ装置の２次キャッシュによる高速化 
対策：ＳＳＤや半導体メモリをストレージ装置の二次キャッシュとして用いる。 
問題：ログインなどで１度きりのようなディスクアクセスが多いケースでは、二次キャッシュに格納されたキャッシュデータにヒットする前に上書きされる。
【００１９】
特許文献１や特許文献２で示されている先行技術も、ストレージ装置の読み出し速度をキャッシュへのステージングで向上させて、問題の改善を図っている。 
他方で、各手法の機能を適切に発揮するにあたり、様々な要求事項がある。例えば、特許文献１で開示した手法では、ユーザが予め特定のゲートを通過する必要がある。 
特許文献２の開示された手法では、予めステージングする時刻と所定データを人為的に設定する必要がある。
【００２０】
このように、様々な要求事項を満たさないかぎり、各手法の機能が有効に発揮されない。また、ホストなどから受けた要求に対して、応答として引き出されるデータの適切度を管理者が知ることが困難なこともある。
【００２１】
本発明は、上記課題に鑑みて成されたものであり、システム内で生じるデータ処理のストームをコスト及び性能観点でより効率よく処理するストレージシステム、ストレージ装置、ステージング方法の提供を目的とする。
【課題を解決するための手段】
【００２２】
本発明に係るストレージシステムは、各種データを読み出す所定要求を送出するホストと、前記ホストからの各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、各種データを記憶するキャッシュ領域と、前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、を有するストレージと、１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する手段と、前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開する手段と、を含み、前記読み出し待機用領域は、ストレージ仮想化によって、読み出し待機用論理領域と読み出し待機用物理領域の両方がそれぞれ設けられており、前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを削除する手段を更に含むことを特徴とする。 
また、本発明に係るストレージシステムは、各種データを読み出す所定要求を送出するホストと、前記ホストからの各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、各種データを記憶するキャッシュ領域と、前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、を有するストレージと、１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する手段と、前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開する手段と、を含み、前記読み出し待機用領域は、ストレージ仮想化によって、読み出し待機用論理領域と読み出し待機用物理領域の両方がそれぞれ設けられており、前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを抜き取って残りのデータブロックを前記読み出し待機用論理領域に整列して記録する手段を更に含むことを特徴とする。
【００２３】
また、本発明に係るストレージ装置は、各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、各種データを記憶するキャッシュ領域と、前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する手段と、前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開する手段と、を有し、前記読み出し待機用領域は、ストレージ仮想化によって、読み出し待機用論理領域と読み出し待機用物理領域の両方がそれぞれ設けられており、前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを削除する手段を更に含むことを特徴とする。
【００２４】
本発明に係るストレージ装置内でのステージング方法は、各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、各種データを記憶するキャッシュ領域と、前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、を有するストレージ装置は、読み出し待機用領域として、ストレージ仮想化によって、読み出し待機用論理領域と読み出し待機用物理領域の両方がそれぞれ設けられており、１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する工程と、前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開する工程と、前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを削除する工程と、をステージング過程に含めて実行することを特徴とする。  
また、本発明に係るストレージ装置内でのステージング方法は、各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、各種データを記憶するキャッシュ領域と、前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、を有するストレージ装置は、読み出し待機用領域として、ストレージ仮想化によって、読み出し待機用論理領域と読み出し待機用物理領域の両方がそれぞれ設けられており、１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する工程と、前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開する工程と、前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを抜き取って残りのデータブロックを前記読み出し待機用論理領域に整列して記録する工程と、をステージング過程に含めて実行することを特徴とする。
【００２５】
本発明に係るプログラムは、各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、各種データを記憶するキャッシュ領域と、前記所定データを含む各種データをデータ格納領域に記憶したストレージ領域と、を有し、読み出し待機用領域として ストレージ仮想化によって 読み出し待機用論理領域と読み出し待機用物理領域の両方をそれぞれ具備する、ストレージ装置の制御部を、１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、前記各々のトリガーごとに各々のロードデータとして前記データ格納領域から前記ストレージ領域内に設けられた読み出し待機用領域に複製する待機用領域管理部と、前記各々のトリガーそれぞれの発生時又は直前に、各トリガーに対応したロードデータを前記読み出し待機用領域から前記キャッシュ領域に展開するキャッシュ展開管理部と、前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、各ロードデータをブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのデータブロックを削除する手段、として動作させることを特徴とする。
【発明の効果】
【００２６】
本発明によれば、システム内で生じるデータ処理のストームをコスト及び性能観点でより効率よく処理するストレージシステム、ストレージ装置、ステージング方法を提供できる。
【図面の簡単な説明】
【００２７】
【図１】一実施形態のストレージシステムを示すブロック図である。
【図２】一実施形態のストレージ装置を示すブロック図である。
【図３】一実施形態のストレージデバイスの構成概念例を示す説明図である。
【図４】一構成例のストレージシステムを示すブロック図である。
【図５】キャッシュタグテーブル例を示す説明図である。
【図６】キャッシュロード用テーブル例を示す説明図である。
【図７】ステージングトリガテーブル例を示す説明図である。
【図８】ステージング管理手段の処理動作例を示したフローチャートである。
【図９】ファイル／ブロック管理手段の処理動作例を示したフローチャートである。
【図１０】ステージングボリューム制御手段の処理動作例を示したフローチャートである。
【図１１】キャッシュテーブル変更手段の処理動作例を示したフローチャートである。
【図１２】トリガ登録手段を示すフローチャートの処理動作例を示したフローチャートである。
【図１３】別の構成例のストレージシステムを示すブロック図である。
【図１４】キャッシュタグテーブル例を示す説明図である。
【図１５】キャッシュロード用テーブル例を示す説明図である。
【図１６】ユーザ情報管理テーブル例を示す説明図である。
【図１７】仮想マシン管理テーブル例を示す説明図である。
【図１８】ステージングトリガテーブル例を示す説明図である。
【図１９】ログイン／ログアウト管理手段の処理動作例を示したフローチャートである。
【図２０】仮想マシン情報管理手段の処理動作例を示したフローチャートである。
【発明を実施するための形態】
【００２８】
本発明の実施形態を図面を参照して説明する。
【００２９】
図１及び図２は、実施形態のストレージシステムの構成例を示すブロック図である。図３は、実施形態のストレージデバイスの構成概念例を示す説明図である。
【００３０】
ストレージシステム１は、ホスト装置２とストレージ装置３を含んでいる。ホスト装置２とストレージ装置３は、通信可能に接続されている。
【００３１】
ホスト装置２は、様々な用途に合わせて構築されたサービスを提供する主体の情報処理装置である。ホスト装置２は複数の情報処理装置群であってもよい。また、ストレージ装置３に各種データを読み出したり書き込んだりする要求を送出する。また、ストレージ装置３の管理機能も有する。
【００３２】
ストレージ装置３は、インターフェイス部１０、キャッシュデバイス２０、ストレージデバイス３０、読み出し待機用領域管理部４０、キャッシュ展開管理部５０を含み構成されている。なお、読み出し待機用領域管理部４０及びキャッシュ展開管理部５０の一方又は両方は、必ずしもストレージ装置３内に設ける必要はない。ストレージ装置３に格納された各種データの管理や、ステージング管理、ファイルシステム、ボリューム管理などが可能であれば、例えば、ホスト側に設けてもよい。
【００３３】
インターフェイス部１０は、ホスト装置２とのインターフェイスである。インターフェイス部１０は、ホスト装置２からの要求を受けて、ホスト装置２とキャッシュデバイス２０又はストレージデバイス３０との間のデータ伝送を受け持つコントロール手段を装置態様に合わせて適宜含む。
【００３４】
キャッシュデバイス２０は、キャッシュ領域として動作するメモリ装置やＳＳＤであり、ストレージデバイス３０よりも高速Ｉ／Ｏ特性を有する記憶装置である。キャッシュデバイス２０は、必要に応じて階層構造を採用するとよい。
【００３５】
ストレージデバイス３０は、ストレージ領域としてＨＤＤなどの大容量記憶媒体や大容量記憶媒体の組み合わせで構成され、多量のデータを記憶する。また、ストレージデバイス３０は読み出し待機用領域を含む。
【００３６】
読み出し待機用領域管理部４０は、１ないし複数の所定要求が発生する条件を各々のトリガーとして管理する。また、待機用領域管理部４０は、それぞれのトリガーに対してキャッシュデバイス２０に予め展開する所定データ群を、トリガーごとに各々のロードデータ（ステージング用データ）としてストレージデバイス３０の読み出し待機用領域に記録する。換言すれば、トリガーに紐付けたロードデータ群を読み出し待機用領域に事前に準備する。
【００３７】
読み出し待機用領域は、読み出し待機用論理領域と読み出し待機用物理領域の両方がストレージ装置３がホスト等に利用させるデータ格納領域と別に準備されていることが望ましい。
【００３８】
また、読み出し待機用領域管理部４０は、トリガーごとのロードデータの内容を、各種トリガーに関連付けて収集した管理用情報（イベントや履歴）と紐付けて管理し、読み出し待機用領域のロードデータを管理用情報に基づいて構築し直すことを逐次実行してもよい。
【００３９】
また、論理ボリュームのブロック単位毎に管理可能なシステム構成を採用した場合、ロードデータの再構築として、以下の処理を実行することが望ましい。
【００４０】
読み出し待機用領域管理部４０は、ロードデータの再構築として、各トリガーのロードデータ内で、キャッシュ領域への展開が不要と判断されたガベージデータ（ダーティデータ）のブロックを抜き取ってボリュームを整列し直す。この処理によって、トリガーに対応している要求を受け付けた際に、キャッシュ又はディスクへのシーケンシャルアクセス時のスループットが向上する。特にキャッシュ領域をＳＳＤの記憶領域で確保する際に、ＳＳＤのデータブロックのリード／ライト特性から有益に働く。なお、ガベージデータを削除するのみでも、必要キャッシュ領域の低減に寄与する。
【００４１】
キャッシュ展開管理部５０は、各種トリガーの発生時やその直前に、対応したロードデータを読み出し待機用論理領域からキャッシュ領域に展開する。キャッシュ領域が階層構造を採用した場合、ステージングされるロードデータ間での優先度の順位に従い、個々のロードデータのキャッシュ先となるキャッシュ素子を選定してもよい。１次キャッシュにステージングするロードデータは、２次キャッシュにステージングするロードデータよりも優先度が高いデータが望ましい。
【００４２】
例えば、過去のヒット率を、予めロードデータやロードデータ内に含まれるデータに紐付けて、高いヒット率のロードデータに高いステージング優先度を与えれば１次キャッシュ側に有益なロードデータを優先してステージングできる。
【００４３】
なお、ステージング優先度は、人為的に定めてもよいし、トリガーに関連付けて収集した管理用情報やデータ量（データブロック個数）を用いて値を算出して比べてもよい。また、ロードデータ内に含まれる個々のデータに紐付けてもよい。また、トリガー条件の種別を係数として用いてもよい。
【００４４】
なお、ストレージ領域に構築される読み出し待機用論理領域は、ユーザやホストからアクセス不能に設定しておくことも有益と考える。例えば、ボリュームレベルでアクセス不能を実現してもよいし、他のレベル（ファイルやデータブロック、ストレージデバイス、など）でアクセス不能を実現してもよい。
【００４５】
本実施形態のストレージシステム１は、概略以下のように動作する。なお、公知の処理動作について記載を簡略化もしくは省略する。
【００４６】
準備工程： 
ストレージシステム１は、準備工程として、読み出し待機用領域管理部４０を用いて、想定される高負荷状態の要因となる要求や、一まとまりの読み出し要求が生じる条件をトリガー群として管理する。個々のトリガーは、ストレージシステム１が自ら高負荷状態を検出した際に、その要因となった要求や条件を抽出処理してもよいし、ホスト装置２などから登録されてもよい。例えば、ホスト装置２が仮想ディスクトップを提供するサーバであった場合、クライアント端末からのログイン要求やログアウト要求がトリガーの条件に設定できる。また、複数のログイン要求をグルーピングして、所定数のログイン要求が発生したことや時間帯などを１つのトリガーの条件に設定することも可能である。このように複数の要求を一まとめにすることで、ステージングを実行する際のデータ粒度や頻度を調整できる。なお、トリガーの条件には、サービス提供環境を設定できる。例えば、仮想ディスクトップを提供するサービス環境がホストに構築されていることや、仮想ディスクトップの提供を受けるクライアント端末がネットワークに接続されていることを条件に加えてもよい。 
また、読み出し待機用領域管理部４０は、それぞれのトリガーに対してキャッシュデバイス２０に展開する所定データ群を、トリガーごとに各々のロードデータとしてストレージデバイス３０に準備された読み出し待機用論理領域に記録する。
【００４７】
ステージング工程： 
ストレージシステム１は、ステージング工程として、各種トリガー条件の発生を監視する。 
ストレージシステム１は、ステージング工程として、トリガーに設定した条件が生じた際もしくはその直前に、キャッシュ展開管理部５０が、対応したロードデータを読み出し待機用論理領域からキャッシュ領域に展開する。
【００４８】
要求応答工程： 
その後、ストレージシステム１は、各種要求によって発生するホスト装置２とストレージ装置３との間でのデータ転送や、ストレージ装置３内でのデータ読み出し処理などを、要求事項に沿って実行する。この際、ストレージシステム１は、あらかじめ、ストレージ装置３のキャッシュ領域に必要となるデータが格納されているため、効率的に要求を処理し終えることになる。
【００４９】
この処理アルゴリズムによれば、キャッシュ領域に展開されたデータのヒット率が高まる。結果的に、性能とコストの関係性が改善される。
【００５０】
加えて、読み出し待機用領域管理部４０によって、トリガーごとのロードデータの内容を逐次構築し直すことを実行すれば、更なるヒット率の向上が期待できる。
【００５１】
また、読み出し待機用領域管理部４０によって、論理ボリュームのブロック単位毎にロードデータ内のガベージデータを除去すれば、キャッシュ領域に展開するトリガー毎のロードデータ量の削減が図れる。結果、キャッシュ領域に展開できるロードデータ数や量を増やしたり、キャッシュを無駄に消費しない構成を得られる。
【００５２】
また、読み出し待機用領域管理部４０によって、ガベージデータを除去後に、ボジューム内で整列し直すことを実行すれば、キャッシュ又はディスクへのシーケンシャルアクセス時に連続読み出し行われる可能性が向上する。結果、スループットが向上する。
【００５３】
例えば、ホスト２が仮想ディスクトップを多くのユーザに提供するシンクライアントサーバであった場合、トリガーとして時間帯を採用することができる。このシンクライアントシステムでは、任意間隔で区分した時間帯（各々の時刻）ごとに、ログインが予想される１ないし複数のユーザ用のログインデータを、ロードファイルに構築して、読み出し待機用論理領域に予め格納する。その後、ストレージ装置３は、時間経過と共に、適切なロードファイル（＝適切なログインデータ）をトリガー条件として設定されている時刻に到達した時点で、適宜キャッシュ領域に展開する。このことで、１ないし複数のユーザがログインすることによって生じるピークの影響を軽減できる。
【００５４】
すなわち、このようにストレージシステム１を構成及び動作させることで、システム内で生じるデータ処理のストームをコスト及び性能観点でより効率よく処理できる。なお、上記説明では、ストレージ領域及びキャッシュ領域からの読み出し機能について説明したが、読み出し能力が向上することで、演算部の待ち時間が削減されたり、書き込みに割ける時間やキャッシュ量が増えたりする。読み出し能力の向上は、結果的に演算能力や書き込み能力にも良好に働く。
【００５５】
次に、ストレージシステムの構成例を２つ説明する。
【００５６】
図４は、ストレージシステムの構成例を示すブロック図である。図５ないし図７は、各テーブル情報を例示する説明図である。 
本実施例は、ストレージ装置１００と業務ホスト群３００と管理ホスト４００とでストレージシステムを構成する。
【００５７】
ストレージ装置１００は、インターフェイス手段、キャッシュ領域、ストレージ領域と共に、読み出し待機用領域管理手段及びキャッシュ展開管理手段を有する。本構成例では、読み出し待機用領域管理手段及びキャッシュ展開管理手段として、ステージング管理手段２００、ファイル／ブロック管理手段２１０、ステージングボリューム制御手段２３０、キャッシュテーブル変更手段２４０を有する。
【００５８】
キャッシュ領域は、キャッシュモジュール１１０とＬ２キャッシュプール１２０とで階層構造方式で動作する。本構成性では、二次キャッシュとしてＳＳＤディスク群１３０を用いたＬ２キャッシュプール１２０を利用する。
【００５９】
ストレージ領域には、物理領域と論理領域それぞれに、読み出し待機用領域が準備されている。この読み出し待機用領域は、図示した事前ステージング用ディスクプール１６０（物理領域）と事前ステージング用ボリューム群１５０（論理領域）である。また、事前ステージング用ボリューム群１５０は、業務ホスト群には見せない特殊なボリュームとして構築する。
【００６０】
また、ストレージ領域には、業務ホスト３００が利用するための複数の論理ディスク群１４０が構築されている。
【００６１】
本構成例では、管理手段は各種テーブル（キャッシュタグテーブル２６０、キャッシュロード用テーブル２７０、ステージングトリガテーブル４２０）を用いてその機能を実現する。
【００６２】
キャッシュタグテーブル２６０は、キャッシュに展開されたロードデータの配置を示したテーブル情報である。
【００６３】
キャッシュロード用テーブル２７０は、論理ボリュームに記録されたロードデータの配置を示したテーブル情報である。
【００６４】
ステージングトリガテーブル４２０は、各々のトリガーを管理するためのテーブル情報である。
【００６５】
ステージング管理手段２００は、現状とステージングトリガテーブル４２０に記録されたトリガー条件を定期的に比較して、条件を満たすと、キャッシュテーブル変更手段２４０に、該当ロードデータのステージングを要求する。
【００６６】
ファイル／ブロック管理手段２１０は、トリガー条件に該当するＩ／Ｏ特性や、トリガー条件に合致したとの通知、システムの内部状態（例えば時間帯や任意ホストの起動など）を監視する。また、ファイル／ブロック管理手段２１０は、トリガー条件が満たされた際に、論理ディスク群１４０に記録されているロードデータとなるデータブロックを識別して事前ステージング用ボリューム群１５０にコピーする。なお、データブロックの識別は、ファイルとブロックをマッピングして実施すればよい。事前ステージング用ボリューム群１５０には、トリガー毎にアドレスとブロック配置が整然と並べて記録されることが望ましい。事前ステージング用ボリューム群１５０に整然と並べて記録することで、事前ステージング用ディスクプール１６０の連続記録領域に整然と並べて記録される。結果、トリガー毎のロードデータにアクセスする際に、シーケンシャルリードで連続的に効率よく記録データが読み出せることになる。また、ブロック単位ではなく、ファイル単位でデータを扱ってもよい。
【００６７】
ステージングボリューム制御手段２３０は、事前ステージング用ボリューム群１５０内で、データが更新されキャッシュにステージングした際に、ダーティデータとなりうる不要なデータを削除する。また、ステージングボリューム制御手段２３０は、事前ステージング用ボリューム群１５０内でシーケンシャルアクセスを可能にするために削除された領域の前詰め処理を実施する。
【００６８】
キャッシュテーブル変更手段２４０は、Ｉ／Ｏ特性を元に作成されて、事前ステージング用ボリューム群１５０に記録されているトリガー毎のロードデータを、キャッシュおよび二次キャッシュにステージングする。
【００６９】
業務ホスト群３００は、ストレージ領域のうちアクセスが可能な論理ディスク群１４０に対するＩ／Ｏ発行機能を有する。
【００７０】
管理ホスト４００は、運用管理者５００がステージングトリガテーブル４２０に設定した運用ポリシーをストレージ装置１００に設定するトリガ登録手段４１０を有する。ストレージ装置１００へのステージングトリガテーブル４２０の登録は、どのように行ってもよい。
【００７１】
図５は、キャッシュタグテーブル２６０について示した説明図である。キャッシュタグテーブル２６０は、データ格納アドレス、ブロック配置を一覧にしたテーブルである。キャッシュモジュールとＳＳＤに対してキャッシュタグテーブルが作成される。
【００７２】
図６は、キャッシュロード用テーブル２７０について示した説明図である。キャッシュロード用テーブル２７０は、事前ステージング用ボリューム群１５０上の利用ブロック配置、論理ディスク番号、論理ディスク群１４０上の利用ブロック配置、有効／無効フラグを一覧にしたテーブルである。なお、キャッシュロード用のテーブルについては、ブロックレベルでマッピングすることも、ファイルレベルでマッピングすることも可能とする。
【００７３】
図７は、ステージングトリガテーブル４２０を示した説明図である。ステージングトリガテーブル４２０は、ストレージ装置１００に管理ホスト４００上で設定したポリシーを登録する。ステージングトリガテーブル４２０は、ステージング時間、ファイル蓄積開始時刻、ファイル蓄積時間を一覧にしたテーブルである。この例では、時刻のトリガーを示しているが、Ｉ／Ｏ特性や、運用内でのイベントドリブンでトリガーを設定してもよい。また、時刻のトリガー、Ｉ／Ｏ特性のトリガー、イベントドリブンのトリガーなど、異なる設定条件を含むトリガーが混在してもよい。また、１つのトリガーに時刻とＩ／Ｏ特性のように異なる条件要因を含めてもよい。
【００７４】
図８ないし図１２は、ステージング管理手段２００、ファイル／ブロック管理手段２１０、ステージングボリューム制御手段２３０、キャッシュテーブル変更手段２４０の処理動作を示したフローチャートである。
【００７５】
図８は、ステージング管理手段２００の動作を表したフローチャートである。 
ステージング管理手段２００は、運用中に定期的に動作する手段である。動作を開始したステージング管理手段２００はステージングトリガテーブル４２０を逐次参照する（Ｓ１０１）。
【００７６】
次に、ステージング管理手段２００は、トリガー条件を満たしているか確認する（Ｓ１０２）。もし条件を満たしていた場合、ステージング管理手段２００は、キャッシュテーブル変更手段２４０に当該ロードデータのステージングを要求する（Ｓ１０３）。一方、もし条件を満たしていない場合、ステージング管理手段２００は最初に戻る。
【００７７】
図９は、ファイル／ブロック管理手段２１０の動作を表したフローチャートである。 
ファイル／ブロック管理手段２１０は、トリガーに該当する条件（Ｉ／Ｏなど）を検出した場合に動作を開始する（Ｓ２０１）。
【００７８】
ファイル／ブロック管理手段２１０は、論理ディスク群１４０のブロックと所要ファイルとをマッピングする（Ｓ２０２）。
【００７９】
次に、ファイル／ブロック管理手段２１０は、論理ディスク群１４０から事前ステージング用ボリューム群１５０にマッピングで識別された該当ブロック群をコピーする（Ｓ２０３）。
【００８０】
該当ブロック群をコピーする際に、ファイル／ブロック管理手段２１０は、本データに該当するデータがすでに事前ステージング用ボリューム群１５０に存在しているかどうかを確認する（Ｓ２０４）。
【００８１】
もし、データが存在していない場合、ファイル／ブロック管理手段２１０は、有効データとして、キャッシュロード用テーブル２７０を更新する（Ｓ２０５）。
【００８２】
一方、もしデータが存在している場合、ファイル／ブロック管理手段２１０は、キャッシュロード用テーブル２７０にある古いデータに対して、無効なデータとしてフラグを立てる（Ｓ２０６）。これは、該当データが更新されたと判断できるため、ステージングするデータとして使用しないためである。
【００８３】
図１０は、ステージングボリューム制御手段２３０の動作を表したフローチャートである。 
ステージングボリューム制御手段２３０は、システムの運用中に定期的に動作する。
【００８４】
ステージングボリューム制御手段２３０は、キャッシュロード用テーブル２７０を参照する（Ｓ３０１）。
【００８５】
次にステージングボリューム制御手段２３０は、有効/無効フラグが無効になっているデータの有無を確認する（Ｓ３０２）。無効に設定されているデータがない場合、ステージングボリューム制御手段２３０は何もせずに処理を完了する。
【００８６】
無効に設定されているデータがあった場合、ステージングボリューム制御手段２３０は、事前ステージング用ボリューム群１５０から該当データを削除すると共に削除したデータ部分を前詰めする（Ｓ３０３）。このことでシーケンシャルなデータ配置を確保する。
【００８７】
その後、ステージングボリューム制御手段２３０は、キャッシュロード用テーブル２７０を更新して処理を完了する（Ｓ３０４）。
【００８８】
図１１は、キャッシュテーブル変更手段２４０の動作を表したフローチャートである。
キャッシュテーブル変更手段２４０は、ステージング管理手段２００からのステージング要求を受け動作を開始する。
【００８９】
キャッシュテーブル変更手段２４０は、キャッシュロード用テーブル２７０を参照し、ステージングするロードデータを特定する（Ｓ４０１）。
【００９０】
キャッシュテーブル変更手段２４０は、ステージングするロードデータをキャッシュ領域（キャッシュモジュール１１０およびＬ２キャッシュプール１２０）にステージングする（Ｓ４０２）。
【００９１】
ステージングが完了したキャッシュテーブル変更手段２４０は、キャッシュタグテーブル２６０を更新する（Ｓ４０３）。
【００９２】
図１２は、トリガ登録手段４１０の動作を表したフローチャートである。 
トリガ登録手段４１０は、運用管理者５００がステージングトリガテーブル４２０を登録／更新するタイミングで動作する。
【００９３】
トリガ登録手段４１０は、入力されたポリシー（トリガー条件等）をステージングトリガテーブル４２０に登録／更新する（Ｓ５０１）。
【００９４】
その後、トリガ登録手段４１０は、ストレージ装置１００に新たなステージングトリガテーブル４２０を送付して、トリガーポリシーを登録／更新する（Ｓ５０２）。
【００９５】
以上のようにストレージシステムの管理手段を動作させることで、一時的な高負荷を回避するべくサイジング時に確保する 高価なＳＳＤやメモリの量を低減できる。 
その理由は、トリガーに従って都度適切にステージングが行われるためである。これは、トリガーを用いずにステージングする方式に比べ、ステージングされたデータの適切度が高くなり、結果ヒット率が向上する。同等の性能を確保する場合に、高価なＳＳＤやメモリの量を低減できる。
【００９６】
また、ステージングしたいデータ量が多量でキャッシュメモリに入りきらないことが有っても、ストレージ領域から該当データを読み出す速度が既存方式よりも早くなる。
【００９７】
別の観点では、同等のコストであれば、本方式は、トリガーを用いずにステージングする方式に比べ、性能が向上している。
【００９８】
また、Ｉ／Ｏ特性などのトリガーに従って、シーケンシャルなアクセスが確保されたデータをストレージ領域及びキャッシュ領域に準備することが可能になる。このことで、低コストで性能向上を図れる。
【００９９】
また、キャッシュ領域に階層構造を採用していた場合には、１次キャッシュで賄いきれないデータを、二次キャッシュ（ＳＳＤ）にステージジングできる。さらには、二次キャッシュでも賄えない場合であってディスクデバイスからログインデータを読み込む場合でも、事前ステージング用ボリューム群からシーケンシャルにデータを読み出せるため、ログイン処理の集中による影響を軽減できる。
【０１００】
次に別の構成例を説明する。なお、上記構成例と同様の部分は説明を簡略化する。本構成例は、ログインストームの影響を低減する。多くのログインストームでは、同時刻に大多数のユーザがログインすることで、プロファイルのコピーによる多量のＷｒｉｔｅや、ログイン後のウィルススキャンによる多量のＲｅａｄにも要因がある。本実施例では、これら集中するデータ処理の負荷を効率的に処理する。
【０１０１】
図１３は、別のストレージシステムの構成例を示すブロック図である。 
図１４ないし図１８は、各テーブル情報を例示する説明図である。 
本実施例は、業務ホスト群３００内にイベントを通知する手段を有する。
【０１０２】
ストレージ装置１００は、インターフェイス手段、キャッシュ領域、ストレージ領域と共に、待機用領域管理手段及びキャッシュ展開管理手段を有する。本構成例では、待機用領域管理手段及びキャッシュ展開管理手段として、ステージング管理手段２００、ファイル／ブロック管理手段２１０、ステージングボリューム制御手段２３０、キャッシュテーブル変更手段２４０に加え、ログイン／ログアウト管理手段２５０を有する。 
キャッシュ領域及びストレージ領域は、先の構成例と同様である。
【０１０３】
本構成例では、管理手段はキャッシュタグテーブル２６０、キャッシュロード用テーブル２７０、ステージングトリガテーブル４２０に加え、ユーザ情報管理テーブル２８０を用いる。 
キャッシュタグテーブル２６０は、キャッシュに展開されたロードデータの配置を示したテーブル情報である。 
キャッシュロード用テーブル２７０は、論理ボリュームに記録されたロードデータの配置を示したテーブル情報である。本構成例では、ユーザごとのログイン用データのデータブロックを管理するテーブルとなる。 
ユーザ情報管理テーブル２８０は、各々のユーザ（仮想マシン）が使用するストレージ領域を管理するためのテーブル情報である。本構成例では、ユーザごとに管理用情報が記録される。 
ステージングトリガテーブル４２０は、各々のトリガーを管理するためのテーブル情報である。
【０１０４】
ステージング管理手段２００、ファイル／ブロック管理手段２１０、ステージングボリューム制御手段２３０、キャッシュテーブル変更手段２４０は、先の構成例と同様である。
【０１０５】
本構成では、ステージングボリューム制御手段２３０では、時刻ごとに用意された事前ステージングボリューム群１５０内のロードデータに含まれる各々のユーザログイン用情報を構成するデータブロックを、該当ユーザのログイン履歴及び属性に基づいて逐次的に整理する。例えば、ユーザ情報管理テーブルを参照して、該当ユーザのログイン回数が閾値を下回った際や、ユーザＩＤが削除された場合、ステージング不要フラグが設定された場合などに、不要となったデータ（データブロック）の削除と前詰めを実施する。
【０１０６】
キャッシュテーブル変更手段２４０では、各々のユーザがログインするだろう時刻の直前に、ロードデータをキャッシュ領域にステージングする。
【０１０７】
ログイン／ログアウト管理手段２５０は、ログイン完了時にユーザがログインした時刻をユーザ情報管理テーブル２８０に記録する。この際、ユーザ情報管理テーブル２８０に蓄積された過去のログイン時刻と今回のログイン時刻に基づいて、ログインする時間帯の直前の時刻を次のステージング時刻として設定する。
【０１０８】
この設定では、ステージングトリガテーブル４２０に設定されている各種ポリシーに従って、ユーザがログインするだろうタイミングに間に合い、且つ必要以上に長時間キャッシュしないように１ないし複数のログイン時刻候補が導出される。例えば、あるユーザは、朝のある時間帯と、昼のある時間帯が、ログインした回数が閾値以上であることとして抽出される。
【０１０９】
また、ログイン／ログアウト管理手段２５０は、ログアウト時に仮想マシン管理テーブル３２０に記載された情報から、ファイル／ブロック管理手段２１０に事前ステージング用ボリューム群１５０の更新を要求する。
【０１１０】
業務ホスト群３００は、各ユーザに仮想マシン群を提供する。各仮想マシンは、ストレージ領域にアクセス可能な領域（論理ディスク群１４０の領域）を設定されている。また、業務ホスト群３００は、仮想マシン情報管理手段３１０と仮想マシン管理テーブル３２０を有する。仮想マシン情報管理手段３１０は、各仮想マシンのログイン完了時にユーザＩＤとログイン時刻を、ログアウト時に仮想マシン管理テーブル３２０の情報をログイン／ログアウト管理手段２５０に通知する。なお、各々の仮想マシンが直接的にログイン／ログアウト管理手段２５０に各種情報を通知する構成にしてもよい。
【０１１１】
管理ホスト４００は、運用管理者５００がステージングトリガテーブル４２０に設定した運用ポリシーをストレージ装置１００に設定するトリガ登録手段４１０を有する。ストレージ装置１００へのステージングトリガテーブル４２０の登録は、どのように行ってもよい。
【０１１２】
図１４及び図１５は、キャッシュタグテーブル２６０及びキャッシュロード用テーブル２７０を示した説明図である。
【０１１３】
図１６は、ユーザ情報管理テーブル２８０を示した説明図である。本構成例では、ユーザ情報管理テーブル２８０は、ストレージ装置１００が保有し、ユーザＩＤ、ログインステータス、ステージング時間、ステージングボリューム利用ブロック配置、過去のログイン時間情報を一覧にしたテーブルである。
【０１１４】
図１７は、仮想マシン管理テーブル３２０を示した説明図である。本構成例では、仮想マシン管理テーブル３２０は、ユーザＩＤ（仮想マシン）毎に、仮想マシン配置アドレスを一覧にしたテーブルである。
【０１１５】
図１８は、ステージングトリガテーブル４２０を示した説明図である。本構成例では、ステージングトリガテーブル４２０は、ステージング時間、ステージングする間隔、過去のログイン時刻蓄積回数、ログイン回数の閾値を一覧にしたテーブルである。
【０１１６】
ステージング管理手段２００、ファイル／ブロック管理手段２１０、ステージングボリューム制御手段２３０、キャッシュテーブル変更手段２４０の処理動作は、先に示したフローチャートとほぼ同じである。なお、本実施例では各処理の途中で、ユーザ情報管理テーブル２８０が参照される。以下では、ログイン／ログアウト管理手段２５０と仮想マシン情報管理手段３１０の動作を説明する。
【０１１７】
図１９は、ログイン／ログアウト管理手段２５０の動作例を表したフローチャートである。ログイン／ログアウト管理手段２５０は、業務ホスト群３００上で動作する仮想マシン情報管理手段３１０から、仮想マシンへのログイン／ログアウトのイベントが通知された際に動作する。
【０１１８】
はじめに、ログイン／ログアウト管理手段２５０は、通知がログインであるかログアウトであるかを判別する（Ｓ６０１）。
【０１１９】
通知がログインであった場合、ログイン／ログアウト管理手段２５０は、ユーザ情報管理テーブル２８０のユーザＩＤに、対応するログイン時刻を追加する（Ｓ６０２）。
【０１２０】
その後、ログイン／ログアウト管理手段２５０は、ステージングトリガテーブル４２０と、ユーザ情報管理テーブル２８０を参照して、ログインしたユーザの次のステージング時刻を設定する（Ｓ６０３）。
【０１２１】
次にログイン／ログアウト管理手段２５０は、ユーザ情報管理テーブル２８０のステータスをログインに変更して処理を完了する（Ｓ６０４）。
【０１２２】
一方、通知がログアウトであった場合、ログイン／ログアウト管理手段２５０は、ユーザ情報管理テーブル２８０のステータスをログアウトに更新する（Ｓ６０５）。
【０１２３】
その後、ログイン／ログアウト管理手段２５０は、ファイル／ブロック管理手段２１０にログインに必要なデータを事前ステージング用ボリューム群１５０にコピーする要求を通知する（Ｓ６０６）。
【０１２４】
図２０は、仮想マシン情報管理手段３１０の動作例を表したフローチャートである。仮想マシン情報管理手段３１０は、ユーザが仮想マシンにログインもしくはログアウトしたタイミングで動作を開始する。
【０１２５】
仮想マシン情報管理手段３１０は、任意ユーザのログインもしくはログアウトをイベントとして判別する（Ｓ７０１）。
【０１２６】
ユーザがログインした場合、ストレージ装置１００上で動作するログイン／ログアウト手段２５０に、該当ユーザのユーザＩＤとログイン時刻を通知する（Ｓ７０２）。
【０１２７】
一方、ユーザがログアウトした場合、仮想マシン情報管理手段３１０は、仮想マシン管理テーブル３２０を参照して、仮想マシンの配置を識別する(S104)。
【０１２８】
その後、仮想マシン情報管理手段３１０は、ログイン/ログアウト手段２５０に、ユーザＩＤと仮想マシンの配置を通知する（Ｓ７０３）。
【０１２９】
以上の構成例を用いた多くのユーザへの仮想ディスクトップ環境を提供する運用の流れをフェーズごとに簡単に説明する。
【０１３０】
運用前： 
・運用管理者５００は、業務ホスト群３００に仮想マシンをユーザに提供可能にする環境を形成する。 
・運用管理者５００は、運用ポリシーを元に、手動もしくは自動で事前ステージング用ディスクプール１６０と事前ステージング用ボリューム群１５０を作成する。 
・運用管理者５００が運用を開始する前に管理ホスト４００上でステージングトリガテーブル４２０に各種ポリシーを設定して、ストレージ装置１００にステージングトリガテーブル４２０を通知する。
【０１３１】
定期的なステージング処理： 
・ストレージ装置１００は、時刻情報とステージングトリガテーブル４２０とユーザ情報管理テーブル２８０を参照して、各々のユーザのログインに間に合うタイミングで、ログイン用情報をキャッシュ領域にステージングする。 
このステージング処理過程では、事前ステージング用ボリューム１５０記録されているデータがシーケンシャルアクセスを考慮して最適化されているため、高速にステージングが可能となる。
【０１３２】
・ストレージ装置１００は、キャッシュロード用テーブル２７０およびユーザ情報管理テーブル２８０を参照して、時刻ごとに用意された事前ステージングボリューム内のロードデータで不要となったデータを整理する。この整理によって、ステージングの高速化、キャッシュでのミスヒット時のドライブ上のデータへのアクセスが高速化する。
【０１３３】
以上のようにストレージシステムの管理手段を動作させることで、一時的な高負荷を回避するべくサイジング時に確保する 高価なＳＳＤやメモリの量を低減できる。 
その理由は、トリガーに従って都度適切にステージングが行われるためである。これは、トリガーを用いずにステージングする方式に比べ、ステージングされたデータの適切度が高くなり、結果ヒット率が向上する。同等の性能を確保する場合に、高価なＳＳＤやメモリの量を低減できる。
【０１３４】
また、ステージングしたいデータ量が多量でキャッシュメモリに入りきらないことが有っても、ストレージ領域から該当データを読み出す速度が既存方式よりも早くなる。
【０１３５】
別の観点では、同等のコストであれば、本方式は、トリガーを用いずにステージングする方式に比べ、性能が向上している。
【０１３６】
また、Ｉ／Ｏ特性などのトリガーに従って、シーケンシャルなアクセスが確保されたデータをストレージ領域及びキャッシュ領域に準備することが可能になる。このことで、低コストで性能向上を図れる。
【０１３７】
また、キャッシュ領域に階層構造を採用していた場合には、１次キャッシュで賄いきれないデータを、二次キャッシュ（ＳＳＤ）にステージジングできる。さらには、二次キャッシュでも賄えない場合であってディスクデバイスからログインデータを読み込む場合でも、事前ステージング用ボリューム群からシーケンシャルにデータを読み出せるため、ログイン処理の集中による影響を軽減できる。
【０１３８】
なお、ストレージシステムの管理手段は、ハードウェアとソフトウェアの組み合わせを用いて実現すればよい。ハードウェアとソフトウェアとを組み合わせた形態では、ＲＡＭに管理用プログラムが展開され、このプログラムに基づいて制御部（ＣＰＵ）等のハードウェアを管理手段として動作させればよい。また、このプログラムは、記録媒体に非一時的に記録されて頒布されても良い。当該記録媒体に記録されたプログラムは、有線、無線、又は記録媒体そのものを介して、メモリに読込まれ、制御部等を動作させる。尚、記録媒体を例示すれば、オプティカルディスクや磁気ディスク、半導体メモリ装置、ハードディスクなどが挙げられる。
【０１３９】
以上、実施形態を図示して説明したが、そのブロック構成の分離併合、手順の入れ替えなどの変更は本発明の趣旨および説明される機能を満たせば自由であり、上記説明が本発明を限定するものではない。
【０１４０】
以上説明したように、本発明によれば、システム内で生じるデータ処理のストームをコスト及び性能観点でより効率よく処理するストレージシステム、ストレージ装置、ステージング方法を提供できる。
【０１４１】
また、上記の実施形態の一部又は全部は、以下のようにも記載されうる。尚、以下の付記は本発明をなんら限定するものではない。  
［付記１］
各種データを読み出す所定要求を送出するホストと、
前記ホストからの各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、
各種データを記憶するキャッシュ領域と、
前記所定データを含む各種データを記憶したストレージ領域と、
を有するストレージと、
１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、トリガーごとに各々のロードデータとして読み出し待機用領域に記録する手段と、
各種トリガーの発生時及び／又は直前に、対応したロードデータを前記待機用領域からキャッシュ領域に展開する手段と、
を含むことを特徴とするストレージシステム。
【０１４２】
［付記２］
トリガーごとのロードデータの内容を、トリガーに関連付けて収集した管理用情報に基づいて、読み出し待機用領域のロードデータを構築し直す手段を更に含むことを特徴とする上記付記記載のストレージシステム。
【０１４３】
［付記３］
前記読み出し待機用領域は、読み出し待機用論理領域と読み出し待機用物理領域の両方が設けられていることを特徴とする上記付記記載のストレージシステム。
【０１４４】
［付記４］
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、論理ボリュームのブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのブロックを削除する手段を更に含むことを特徴とする上記付記記載のストレージシステム。
【０１４５】
［付記５］
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、論理ボリュームのブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのブロックを抜き取ってボリューム内でデータブロックを整列する手段を更に含むことを特徴とする上記付記記載のストレージシステム。
【０１４６】
［付記６］
前記ストレージ領域の読み出し待機用領域は、ユーザ端末及びホストからアクセス不能に設定されることを特徴とする上記付記記載のストレージシステム。
【０１４７】
［付記７］
前記キャッシュ領域は、異なるキャッシュ素子を用いた階層構造を有してなり、
ステージングされるロードデータ及び／又は該当ロードデータ内に含まれるデータに付与されたステージング優先度に基づいた前記キャッシュ領域に同時に存在させるロードデータ間での優先度順位に従って、キャッシュ先となるキャッシュ素子を選定する手段を更に含むことを特徴とする上記付記記載のストレージシステム。
【０１４８】
［付記８］
各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、
各種データを記憶するキャッシュ領域と、
前記所定データを含む各種データを記憶したストレージ領域と、
１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、トリガーごとに各々のロードデータとして読み出し待機用領域に記録する手段と、
各種トリガーの発生時及び／又は直前に、対応したロードデータを前記待機用領域からキャッシュ領域に展開する手段と、
を有することを特徴とするストレージ装置。
【０１４９】
［付記９］
トリガーごとのロードデータの内容を、トリガーに関連付けて収集した管理用情報に基づいて、読み出し待機用領域のロードデータを構築し直す手段を更に含むことを特徴とする上記付記記載のストレージ装置。
【０１５０】
［付記１０］
前記読み出し待機用領域は、読み出し待機用論理領域と読み出し待機用物理領域の両方が設けられていることを特徴とする上記付記記載のストレージ装置。
【０１５１】
［付記１１］
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、論理ボリュームのブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのブロックを削除する手段を更に含むことを特徴とする上記付記記載のストレージ装置。
【０１５２】
［付記１２］
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、論理ボリュームのブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのブロックを抜き取ってボリューム内でデータブロックを整列する手段を更に含むことを特徴とする上記付記記載のストレージ装置。
【０１５３】
［付記１３］
前記ストレージ領域の読み出し待機用領域は、ユーザ端末及びホストからアクセス不能に設定されることを特徴とする上記付記記載のストレージ装置。
【０１５４】
［付記１４］
前記キャッシュ領域は、異なるキャッシュ素子を用いた階層構造を有してなり、
ステージングされるロードデータ及び／又は該当ロードデータ内に含まれるデータに付与されたステージング優先度に基づいた前記キャッシュ領域に同時に存在させるロードデータ間での優先度順位に従って、キャッシュ先となるキャッシュ素子を選定する手段を更に含むことを特徴とする上記付記記載のストレージ装置。
【０１５５】
［付記１５］
各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、各種データを記憶するキャッシュ領域と、前記所定データを含む各種データを記憶したストレージ領域と、を有するストレージ装置で、
１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、トリガーごとに各々のロードデータとして読み出し待機用領域に記録する第１の工程と、
各種トリガーの発生時及び／又は直前に、対応したロードデータを前記待機用領域からキャッシュ領域に展開する第２の工程と、
を有することを特徴とするストレージ装置内でのステージング方法。
【０１５６】
［付記１６］
トリガーごとのロードデータの内容を、トリガーに関連付けて収集した管理用情報に基づいて、読み出し待機用領域のロードデータを構築し直す工程を更に含むことを特徴とする上記付記記載のステージング方法。
【０１５７】
［付記１７］
前記読み出し待機用領域は、読み出し待機用論理領域と読み出し待機用物理領域の両方が設けられていることを特徴とする上記付記記載のステージング方法。
【０１５８】
［付記１８］
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、論理ボリュームのブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのブロックを削除する工程を更に含むことを特徴とする上記付記記載のステージング方法。
【０１５９】
［付記１９］
前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、論理ボリュームのブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのブロックを抜き取ってボリューム内でデータブロックを整列する工程を更に含むことを特徴とする上記付記記載のステージング方法。
【０１６０】
［付記２０］
前記ストレージ領域の読み出し待機用領域は、ユーザ端末及びホストからアクセス不能に設定されることを特徴とする上記付記記載のステージング方法。
【０１６１】
［付記２１］
前記キャッシュ領域は、異なるキャッシュ素子を用いた階層構造を有してなり、
ステージングされるロードデータ及び／又は該当ロードデータ内に含まれるデータに付与されたステージング優先度に基づいた前記キャッシュ領域に同時に存在させるロードデータ間での優先度順位に従って、キャッシュ先となるキャッシュ素子を選定する工程を更に含むことを特徴とする上記付記記載のステージング方法。
【０１６２】
［付記２２］
各種データを読み出す所定要求に対して、記録されている所定データの読み出しに対応するインターフェイス手段と、各種データを記憶するキャッシュ領域と、前記所定データを含む各種データを記憶したストレージ領域と、を有するストレージ装置の制御部を、
１ないし複数の所定要求が発生する条件を各々のトリガーとして管理しつつ、それぞれのトリガーに対して前記キャッシュ領域に予め展開する所定データ群を、トリガーごとに各々のロードデータとして読み出し待機用領域に記録する待機用領域管理部と、
各種トリガーの発生時及び／又は直前に、対応したロードデータを前記待機用領域からキャッシュ領域に展開するキャッシュ展開管理部、
として動作させることを特徴とするプログラム。
【０１６３】
［付記２３］
前記制御部を、トリガーごとのロードデータの内容を、トリガーに関連付けて収集した管理用情報に基づいて、読み出し待機用領域のロードデータを構築し直す手段として動作させることを特徴とする上記付記記載のプログラム。
【０１６４】
［付記２４］
前記制御部を、前記読み出し待機用領域として、読み出し待機用論理領域と読み出し待機用物理領域との両方を用いるように動作させることを特徴とする上記付記記載のプログラム。
【０１６５】
［付記２５］
前記制御部を、前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、論理ボリュームのブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのブロックを削除する手段として動作させることを特徴とする上記付記記載のプログラム。
【０１６６】
［付記２６］
前記制御部を、前記読み出し待機用論理領域に記録するトリガー毎のロードデータについて、論理ボリュームのブロック単位毎に管理すると共に、前記キャッシュ領域への展開が不要と判断されたガベージデータのブロックを抜き取ってボリューム内でデータブロックを整列する手段として動作させることを特徴とする上記付記記載のプログラム。
【０１６７】
［付記２７］
前記制御部を、前記ストレージ領域の読み出し待機用領域について、ユーザ端末及びホストからアクセス不能に設定するように動作させることを特徴とする上記付記記載のプログラム。
【０１６８】
［付記２８］
前記ストレージ装置は、キャッシュ領域として、異なるキャッシュ素子を用いた階層構造を有してなり、
該ストレージ装置の前記制御部を、ステージングされるロードデータ及び／又は該当ロードデータ内に含まれるデータに付与されたステージング優先度に基づいた前記キャッシュ領域に同時に存在させるロードデータ間での優先度順位に従って、キャッシュ先となるキャッシュ素子を選定する手段として動作させることを特徴とする上記付記記載のプログラム。
【産業上の利用可能性】
【０１６９】
本発明は、情報処理システム内で予め発生が予測できる読み出し処理を含む処理ピークを有するストレージシステムに適用できる。例えば、クラウド環境を提供するデータセンターや社内ストレージサーバなどに採用できる。
【符号の説明】
【０１７０】
１    ストレージシステム
２    ホスト装置
３    ストレージ装置
１０  インターフェイス部（インターフェイス手段）
２０  キャッシュデバイス
３０  ストレージデバイス
４０  読み出し待機用領域管理部（読み出し待機用領域管理手段）
５０  キャッシュ展開管理部（キャッシュ展開管理手段）
１００  ストレージ装置
１１０  キャッシュモジュール
１２０  Ｌ２キャッシュプール
１３０  ＳＳＤディスク群
１４０  論理ディスク群
１５０  事前ステージング用ボリューム群
１６０  事前ステージング用ディスクプール
２００  ステージング管理手段
２１０  ファイル／ブロック管理手段
２３０  ステージングボリューム制御手段
２４０  キャッシュテーブル変更手段
２５０  ログイン／ログアウト管理手段
２６０  キャッシュタグテーブル
２７０  キャッシュロード用テーブル
２８０  ユーザ情報管理テーブル
３００  業務ホスト群
３１０  仮想マシン情報管理手段
４００  管理ホスト
４１０  トリガ登録手段
４２０  ステージングトリガテーブル
【図１】
0006504337.tif 000002
【図２】
0006504337.tif 000003
【図３】
0006504337.tif 000004
【図４】
0006504337.tif 000005
【図５】
0006504337.tif 000006
【図６】
0006504337.tif 000007
【図７】
0006504337.tif 000008
【図８】
0006504337.tif 000009
【図９】
0006504337.tif 000010
【図１０】
0006504337.tif 000011
【図１１】
0006504337.tif 000012
【図１２】
0006504337.tif 000013
【図１３】
0006504337.tif 000014
【図１４】
0006504337.tif 000015
【図１５】
0006504337.tif 000016
【図１６】
0006504337.tif 000017
【図１７】
0006504337.tif 000018
【図１８】
0006504337.tif 000019
【図１９】
0006504337.tif 000020
【図２０】
0006504337.tif 000021