(57)【要約】【課題】  記憶装置システムへの書き込みが集中した場合にも、記憶装置システムの読み出しの性能が低下しない記憶装置システムを提供することを課題とする。【解決手段】  計算機システム１が、アプリケーションサーバ７０および記憶装置システム４０に関する負荷情報を収集する収集部と、前記収集部により収集された負荷情報に基づいてライト処理特性を予想し、そのライト処理特性を前記記憶装置システムに発信する発信部と、前記発信部により発信された前記ライト処理特性に基づいて、記憶装置システム４０内のハードディスクへのライト処理を制御するライト制御部とを備えて、前記記憶装置システム内のキャッシュ４２からハードディスク１６へのライト処理量が時間的に平均化されるようにライト可能キャッシュ量を設定し、そのライト可能キャッシュ量を満たすようにハードディスク１６へのライト処理を行う。【選択図】      図１
2006277545.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションサーバおよび記憶装置システムに関する負荷情報を収集する収集部と、
前記収集部により収集された負荷情報に基づいてライト処理特性を予想し、前記ライト処理特性を前記記憶装置システムに発信する発信部と、
前記発信部により発信された前記ライト処理特性に基づいて、前記記憶装置システム内のハードディスクへのライト処理を制御するライト制御部と、
を備えたことを特徴とする計算機システム。
【請求項２】
前記負荷情報は、前記アプリケーションサーバのアプリケーション処理量および前記記憶装置システムのＩ／Ｏ負荷を含んでいること
を特徴とする請求項１に記載の計算機システム。
【請求項３】
前記ライト処理特性は、過去のライト処理の測定結果であるモニタ情報、ライト処理のマージンを取るための余裕係数および直近のライト処理のモニタ値と過去のライト処理のモニタ値の比から導かれる予想ライト実行間隔ならびに予想データライト量を含んでいること
を特徴とする請求項１に記載の計算機システム。
【請求項４】
前記ライト制御部は、前記記憶装置システム内のキャッシュメモリから前記ハードディスクへのライト処理が時間的に平均化されるようにライト可能キャッシュ量を設定し、前記ライト可能キャッシュ量を満たすように前記ハードディスクへのライト処理を行うこと
を特徴とする請求項１に記載の計算機システム。
【請求項５】
前記収集部および前記発信部は、前記アプリケーションサーバ、前記記憶装置システムまたはこれらとは異なる別の装置のいずれかに具備されていることを特徴とする請求項１に記載の計算機システム。
【請求項６】
前記計算機システムは、前記アプリケーションサーバの論理ボリュームからマッピングされた仮想ボリュームと前記記憶装置システムの論理ディスク装置とをマッピングする仮想化スイッチをさらに備え、
仮想化スイッチは、論理ボリュームから論理ディスク装置へデータを分割してマッピングしてファイルシステムを記憶すること
を特徴とする請求項１に記載の計算機システム。
【請求項７】
前記収集部は、収集された負荷情報を周期に基づいて解析して、前記ライト処理特性を予想すること
を特徴とする請求項１に記載の計算機システム。
【請求項８】
前記計算機システムは、前記アプリケーションサーバの論理ボリュームからマッピングされた仮想ボリュームと前記記憶装置システムの論理ディスク装置とをマッピングする仮想化スイッチをさらに備え、
前記負荷情報は、前記アプリケーションサーバのアプリケーション処理量および前記記憶装置システムのＩ／Ｏ負荷を含み、
前記ライト処理特性は、過去のライト処理の測定結果であるモニタ情報、ライト処理のマージンを取るための余裕係数および直近のライト処理のモニタ値と過去のライト処理のモニタ値の比から導かれる予想ライト実行間隔ならびに予想データライト量を含み、
前記ライト制御部は、前記記憶装置システム内のキャッシュメモリから前記ハードディスクへのライト処理が時間的に平均化されるようにライト可能キャッシュ量を設定し、前記ライト可能キャッシュ量を満たすように前記ハードディスクへのライト処理を行い、
前記収集部および前記発信部は、前記アプリケーションサーバ、前記記憶装置システムまたはこれらとは異なる別の装置のいずれかに具備され、
仮想化スイッチは、論理ボリュームから論理ディスク装置へデータを分割してマッピングしてファイルシステムを記憶し、
前記収集部は、収集された負荷情報を周期に基づいて解析して、ライト処理特性を予想すること
を特徴とする請求項１に記載の計算機システム。
【請求項９】
ライトデータを一時的に保存するキャッシュメモリと、
ライト処理特性を記憶する記憶部と、
前記記憶部に記憶したライト処理特性を解析して、ライト処理速度を決定するプロセッサと、
前記ライト処理速度に従ってライト処理を制御するライト制御部と、
前記ライト制御部の制御下で前記キャッシュメモリに保存した前記ライトデータを記憶するハードディスクとを備えること
を特徴とする記憶装置システム。
【請求項１０】
前記ライト制御部は、前記キャッシュメモリから前記ハードディスクへのライト処理が時間的に平均化されるようにライト可能キャッシュ量を設定し、前記ライト可能キャッシュ量を満たすように前記ハードディスクへのライト処理を行うこと
を特徴とする請求項９に記載の記憶装置システム。
【請求項１１】
前記プロセッサは、前記ライト処理特性を基に前記ライト可能キャッシュ量を計算することを特徴とする請求項１０に記載の記憶装置システム。
【請求項１２】
収集部と発信部とライト制御部とを備えた計算機システムが実行するライト処理制御方法であって、
前記収集部が、アプリケーションサーバおよび記憶装置システムに関する負荷情報を収集し、
前記発信部が、前記収集部により収集された負荷情報に基づいてライト処理特性を予想し、前記ライト処理特性を前記記憶装置システムに発信し、
前記ライト制御部が、前記発信部により発信された前記ライト処理特性に基づいて、前記記憶装置システム内のハードディスクへのライト処理を制御すること
を特徴とするライト処理制御方法。
【請求項１３】
前記負荷情報は、前記アプリケーションサーバのアプリケーション処理量および前記記憶装置システムのＩ／Ｏ負荷を含んでいること
を特徴とする請求項１２に記載のライト処理制御方法。
【請求項１４】
前記収集部および前記発信部は、前記アプリケーションサーバ、前記記憶装置システムまたはこれらとは異なる別の装置のいずれかに具備されていること
を特徴とする請求項１３に記載のライト処理制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム、記憶装置システムおよびライト処理制御方法に関する。
【背景技術】
【０００２】
記憶装置システムは、キャッシュを有効に利用することで、その性能を向上させてきた。例えば、記憶装置システムが、直近に再度参照（リード）されると考えられるデータをキャッシュにのせておけば、このデータへの再度の参照では、キャッシュから高速にデータを読み取ることができる。また、サーバからの書き込み（ライト）データをキャッシュに書き込んだ時点で、記憶装置システムがまだハードディスク装置に書き込んでいなくても、サーバに書き込み終了を通知すれば、サーバは次の処理を早期に実行することができる。しかし、記憶装置システムがキャッシュを備えていても、ハードディスク装置の読み込みや書き込みの速度によって記憶装置システムの性能が制約される場面では、キャッシュによる高速化が望めなくなるため、ハードディスク装置の読み込みと書き込みをいかに行うかによって、記憶装置システムの性能に影響が出る。
【０００３】
従来の記憶装置システムにおけるキャッシュからハードディスク装置への書き込み（デステージ）処理としては、非特許文献１に示されているＨｉｇｈ／Ｌｏｗ  Ｍａｒｋ  Ａｌｇｏｒｉｔｈｍがある。このアルゴリズムにおいては、キャッシュへの書き換えによってハードディスクの内容とキャッシュの内容が食い違っているデータであるダーティデータの量が所定の起動閾値を上回ったらデステージ処理を起動し、所定の終了閾値を下回ったら、デステージ処理を中断する。また、類似の処理として、ダーティデータ量によりライトコストの上限を変化させ、その上限以下のコストで実施可能なダーティデータのデステージを実施するＬｉｎｅａｒ  Ｔｈｒｅｓｈｏｌｄ  Ｓｃｈｅｄｕｌｉｎｇが挙げられる。
【０００４】
しかし、このような書き込み方法では、ダーティデータ量を基にデステージを行うので、記憶装置システムへの書き込み処理が集中した場合には、デステージ処理もそれに連動して変化せざるを得ない。そして、デステージに伴うハードディスクへの書き込みが集中した際には、そのハードディスク装置からの読み出しの性能が低下してしまう。このような書き込み集中時のリード性能の低下を防ぐために、非特許文献２で述べられているデータ転送速度を一定にしてアクセスのスケジューリングを行う技術を適用することも考えられるが、一般的な処理では必要とされるデータ転送速度は不明であり、ここで述べている技術を実際的な環境におけるデステージ制御で直接的に利用することはできない。
【非特許文献１】Anujan Varma and Quinn Jacobson, "Destage Algorithm for Disk Arrays with Non-Volatile Caches," Proceeding of the 22nd International Symposium on Computer Architecture, pp.83-95(1995)
【非特許文献２】D. J. Gemmell et al, "Multimedia Storage Servers: A Tutorial," IEEE Computer, pp. 40-49, May(1995)
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前記の従来技術では、記憶装置システムにおける内部アクセスの実際的なスケジューリングが充分に実現されておらず、記憶装置システムへの書き込みが集中した場合には、記憶装置システムの読み出しの性能が低下する状況にある。そこで、このような状況を鑑みて、本発明では、実際的な環境下において書き込みが集中した場合でも、リードアクセスの性能低下を伴わないようにすることを課題とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するために、本発明では、計算機システムが、アプリケーションサーバおよび記憶装置システムに関する負荷情報を収集する収集部と、前記収集部により収集された負荷情報に基づいてライト処理特性を予想し、そのライト処理特性を前記記憶装置システムに発信する発信部と、前記発信部により発信された前記ライト処理特性に基づいて、前記記憶装置システム内のハードディスクへのライト処理を制御するライト制御部とを備えて、前記記憶装置システム内のキャッシュから前記ハードディスクへのライト処理量が時間的に平均化されるように前記ハードディスクへのライト処理を行う。ライト処理量の時間的平均化を達成するため、ライト可能キャッシュ量やライトスループットの目標値を設定し、それを満たすように制御する。
【０００７】
この構成によれば、記憶装置システムへのライト処理が集中した場合でも、記憶装置システムは、所定のリードアクセスの性能を維持できる。
【発明の効果】
【０００８】
本発明によれば、記憶装置システムへのライト処理が集中した場合でも、サーバの計算機から記憶装置システムへのリードの応答時間が時間的に変動しない。これにより、安定したアクセス性能を確保できる。
【発明を実施するための最良の形態】
【０００９】
<<第１の実施形態>>
本発明の第１の実施形態について、図を参照して説明する。まず、最初に第１の実施形態におけるシステム構成を説明し、その後に、計算機システム１のアクセス処理について説明する。
【００１０】
［システム構成］
図１は、第１の実施形態の計算機システムの構成図である。計算機システム１は、管理サーバ１２０、サーバ（アプリケーションサーバ）７０、仮想化スイッチ６０および記憶装置システム４０から構成され、これらの間をネットワーク２４およびＩ／Ｏパス３４によって接続している。ネットワーク２４は、例えば、ギガビットイーサネット（登録商標）によって構成してもよく、ネットワークの規格は限定されない。また、Ｉ／Ｏパス３４は、例えば、ファイバーチャネル（Fibre Channel）によって構成してもよいが、規格はこれに限定されない。そして、計算機システム１には、入力手段１１２と表示手段１１４を備えた端末１１０がネットワーク２４に接続されている。
【００１１】
（管理サーバの構成）
管理サーバ１２０は、１つ以上のＣＰＵ１２、メモリ１４、ハードディスク１６およびネットワークインタフェース（以後、ネットワークＩ／Ｆと記述）２２がバス１８によって接続されて構成される計算機である。管理サーバ１２０は、ＣＤ−ＲＯＭドライブ２０をはじめとする媒体の読取装置を備えていてもよい。
【００１２】
ＣＰＵ１２は、所定の演算処理を行うためのものであり、種類は限定されない。メモリ１４は、例えば、半導体メモリなどで構成してもよく、メモリの種類は限定されない。ハードディスク１６は、通常のハードディスクを用いてもよいが、不揮発性半導体メモリなどの記憶手段に置き換えてもよい。ネットワークＩ／Ｆ２２は、例えばギガビットイーサネット（登録商標）を扱えるネットワークインタフェースカードで構成できるが、ネットワークの規格は限定されない。なお、ネットワークＩ／Ｆ２２には、ネットワークに接続するためのポート２６が含まれる。
【００１３】
管理サーバ１２０のメモリ１４は、オペレーティングシステム（以後、ＯＳと記述）７２、処理管理プログラム１４０、処理管理情報１４２およびライト処理情報１４３を含む。ＯＳ７２は、管理情報７４、ボリュームマネージャ７８およびファイルシステム８０を含む。ＯＳ７２はプログラムであり、さらに、ボリュームマネージャ７８およびファイルシステム８０は、ＯＳ７２を実現するためのプログラムである。ボリュームマネージャ７８は、ＯＳ７２が使うボリュームを管理するプログラムであり、ファイルシステム８０は、そのボリュームを用いて、ファイルやディレクトリなどを記憶するための機構を提供するプログラムである。
【００１４】
処理管理プログラム１４０は、後記するサーバ７０において行われる処理が行う記憶装置システム４０へのアクセスを管理するプログラムである。処理管理プログラム１４０によって収集された情報は、処理管理情報１４２に記録される。ただし、サーバ７０において行われるライト処理に関するライトデータの量などの情報は、ライト処理情報１４３に記録される。
【００１５】
（サーバの構成）
次に、サーバ７０の構成について説明する。なお、図１では３台のサーバ７０が示されているが、これらはほぼ同一の構成である。
サーバ７０は、管理サーバ１２０とほぼ同様の構成を持つ計算機であり、１つ以上のＣＰＵ１２、メモリ１４、ハードディスク１６、ネットワークインタフェース（以後、ネットワークＩ／Ｆと記述）２２およびＩ／ＯパスＩ／Ｆ３２がバス１８によって接続されて構成される計算機である。管理サーバ１２０と同じ構成要素には同じ符号を付して、説明を省略する。Ｉ／ＯパスＩ／Ｆ３２は、Ｉ／Ｏパス３４を介して後記する仮想化スイッチ６０や記憶装置システム４０と通信する機能を持っている。なお、Ｉ／ＯパスＩ／Ｆ３２には、Ｉ／Ｏパス３４を接続するためのポート２６が含まれているが、このポート２６は１つとは限らない。
その他の構成要素は、メモリ１４に含まれているプログラムやデータが異なる以外は、同じである。
【００１６】
サーバ７０のメモリ１４は、ＯＳ７２、1つ以上のプログラム１００および管理エージェント１４４を含む。このうち、ＯＳ７２は、前記した管理サーバ１２０のＯＳ７２と同様なので、説明を省略する。プログラム１００は、記憶装置システム４０へのリードおよびライトを行うアプリケーションプログラムである。ここでのプログラム１００は、例えば、データベース管理システムなどが該当する。なお、プログラム１００は、稼動数は限定されない。
【００１７】
プログラム統計情報１０２は、前記のプログラム１００についての処理対象ファイルやライトに関する情報を含む。プログラム統計情報１０２は、ＣＰＵ１２が前記のプログラム１００自身を用いて作成してもよいし、後記する管理エージェント１４４を用いて作成してもよい。プログラム統計情報１０２についての詳細は後記する。
【００１８】
管理エージェント１４４は、前記のプログラム１００に関するプログラム統計情報１０２を管理し、ＣＰＵ１２がプログラム統計情報１０２を読み出して、管理サーバ１２０に送信する機能を持つプログラムである。本実施形態においては、ＣＰＵ１２がメモリ１４のエージェント１４４を実行することにより、収集部、発信部を実現する。収集部は、サーバ７０および記憶装置システム４０に関する負荷情報を収集する。発信部は、収集部により収集された負荷情報に基づいてライト処理特性を予想し、そのライト処理特性を前記記憶装置システムに発信する。
なお、図１では、計算機システム１は、サーバ７０を３台含む構成になっているが、他の２台も同様の構成なので、説明を省略する。
【００１９】
仮想化スイッチ６０は、論理ボリュームを必要に応じて複数の論理ディスクに分割してマッピングする機能を持つ。仮想化スイッチ６０の構成については、図２を参照して後記する。
【００２０】
（記憶装置システムの構成）
記憶装置システム４０は、ＣＰＵ１２、メモリ１４、ハードディスク１６、ネットワークＩ／Ｆ２２、Ｉ／ＯパスＩ／Ｆ３２およびディスクキャッシュ４２がバス１８によって接続されて構成される計算機である。管理サーバ１２０およびサーバ７０の構成要素と同じものは、同一の符号を付して説明を省略し、ここでは、それらに含まれていないディスクキャッシュ４２を説明する。ディスクキャッシュ４２は、記憶装置システム４０のハードディスク１６に対するキャッシュの役割を果たす記憶手段である。ディスクキャッシュ４２は、半導体のメモリを用いて構成することができる。なお、本実施形態では、メモリ１４と区別した構成としているが、ディスクキャッシュ４２をメモリ１４の中の所定の領域として構成してもよく、ディスクキャッシュ４２を実現するための構成は限定されない。
【００２１】
記憶装置システム４０のメモリ１４は、データ領域４７とプログラム領域４９を含む。データ領域４７は、管理情報７４とライト処理情報４５とを含む。管理情報７４は、本実施形態では、前記した管理情報７４と同一とするが、一般には、管理サーバ１２０とサーバ７０と仮想化スイッチ６０と記憶装置システム４０とでは、必ずしも同一とはいえない。ライト処理情報４５は、記憶装置システム４０におけるライト処理を制御するための情報であり、周期的なライト処理（周期ライト処理）、持続的なライト処理（持続ライト処理）および情報削除に応じて、必要な情報を保存する。前記のディスクキャッシュ４２は、前記のデータ領域４７に含まれるようにしてもよい。
【００２２】
そして、プログラム領域４９には、制御プログラム４４が含まれる。この制御プログラム４４を用いて、ＣＰＵ１２が、記憶装置システム４０のリードおよびライトの処理を制御する。
なお、記憶装置システム４０は、必要な容量を構成するために複数のハードディスクを備えるようにしてもよく、ハードディスクの台数は限定されない。
【００２３】
（仮想化スイッチの構成）
図２は、仮想化スイッチの構成図である。仮想化スイッチ６０は、ＣＰＵ１２、メモリ１４、ネットワークＩ／Ｆ２２およびＩ／ＯパスＩ／Ｆ３２がバス１８を介して接続することによって構成される計算機である。構成要素は、すべて前記したものと同じなので、同じ符号を付して説明を省略する。メモリ１４には、仮想化スイッチとしての処理を行わせるためのプログラムである制御プログラム６４と管理情報７４が含まれている。そして、仮想化スイッチ６０に含まれるＩ／ＯパスＩ／Ｆ３２の数は、通常は複数であるが、特定の数に限定されない。
【００２４】
仮想化スイッチ６０は、以上の構成によって、論理ボリュームを必要に応じて複数の論理ディスクに分割してマッピングする機能を持つ。これにより、たとえば、1つの論理ボリュームを複数の記憶装置システム４０に分割して保存し、ファイルシステム２２０（図３参照）や論理ボリューム２２２から参照するときには、分割されているデータを組み合わせて、元のデータに復元する。そして、前記の管理情報７４には、このマッピングを管理するための情報が保存されている。
【００２５】
図３は、ファイルのデータから物理ディスク装置（ハードディスク）へのマッピングを示す説明図である。
プログラム１００からファイルシステム８０に属するファイル２０２をライトする場合には、当初は1つのファイルのデータをまとまった形で扱っている。そして、そのファイル２０２のデータは、サーバ７０のＣＰＵ１２（図１参照）によって、ボリュームマネージャ７８が管理する論理ボリューム２０４にマッピングされる。こうして論理ボリューム２０４に格納されたファイル２０２のデータは、ボリュームマネージャ７８の機能により、仮想化スイッチ６０が管理する1つまたは複数の仮想ボリューム２０６にマッピングされる。さらに、この仮想ボリューム２０６は、仮想化スイッチ６０のＣＰＵ１２（図２参照）により、記憶装置システム４０が管理する論理ディスク２０８にマッピングされる。
【００２６】
論理ディスク２０８に書き込まれたデータは、記憶装置システム４０のＣＰＵ１２（図１参照）によって、キャッシュ（ディスクキャッシュ）４２中の分割キャッシュ２１０に記憶され、さらに、対応する物理ディスク（ハードディスク）１６に記録される。このように、論理ボリューム２０４から仮想ボリューム２０６、仮想ボリューム２０６から論理ディスク２０８および分割キャッシュ２１０からハードディスク（物理ディスク装置）１６へのマッピングにおいて、１つのデータが複数の領域に分割されてマッピングされる可能性がある。
【００２７】
次に、キャッシュを伴うハードディスクにおいてリードとライトを行う場合の処理について、図１を参照しながら説明する。
まず、サーバ７０からのリードやライトの要求があった場合には、記憶装置システム４０のＣＰＵ１２によってサーバＩ／Ｏキュー（図示せず）にその要求が加えられる。そして、その要求がリードである場合には、ＣＰＵ１２は、そのリードに対応するサーバＩ／Ｏ処理を行う。その際に、キャッシュに読み込まれていないデータへのリード（リードキャッシュミス）である場合には、ＨＤＤＩ／Ｏキュー（図示せず）にリードの要求が加えられ、順次、ハードディスク１６に対して要求が実行され、その内容がキャッシュに保存される。以後、本明細書において、記憶装置システム４０の内部でリード命令を実行する場合のリード命令とは、このＨＤＤＩ／Ｏキューにリードの要求を加えることを指す。
【００２８】
同様に、サーバ７０からのライト命令があった場合には、まず、ＣＰＵ１２は、サーバＩ／Ｏキューにそのライトの要求を加える。その結果、そのライトの要求に対応するサーバＩ／Ｏ処理が実行されると、キャッシュにその内容が書き込まれ、そのデータ領域のキャッシュの状態は、ダーティ状態となる。そして、これに対応して、ＣＰＵ１２によってダーティライト処理が行われると、それに対応するライト要求がＨＤＤＩ／Ｏキューに加えられ、順次、ハードディスク１６に対して要求が実行され、その内容がハードディスク１６に保存される。以後、本明細書において、記憶装置システムの内部でライト命令を実行する場合のライト命令とは、このＨＤＤＩ／Ｏキューにライトの要求を加えることを指す。このとき、前記のリードの要求とこのライトの要求が同じＨＤＤＩ／Ｏキューに加えられ、互いに影響を及ぼしあう関係にある。
【００２９】
図４は、周期ライトパターンと持続ライトパターンの分割方法を示す図である。
記憶装置システム４０のＣＰＵ１２におけるライト処理において書き込まれるデータ量のパターンは、周期的に繰り返される成分とベースとなる持続的な書き込みのパターンに分けて扱うことができる。例えば、図５に示すようにライトのパターンが、元ライトパターン３２０に示すようなパターンである場合には、周期ライトパターン３２２と持続ライトパターン３２４に分割して扱うことができる。なお、この例では、基準ライト量は符号３２６で示され、ライトの周期は符号３２８で示されている。本明細書において、基準ライト量および周期とは、それぞれこれらと同様の量を指す。
【００３０】
（各種情報テーブルの構成）
図５は、管理情報を示す図である。図５に示すように、管理情報７４は、上位仮想構造情報３３０、下位仮想構造情報３３２およびデータ転送量累積値３３４により構成される。上位仮想構造領域情報３３０は、仮想構造ＩＤと構造内領域の情報を持つ。仮想構造ＩＤとは、仮想構造を特定するためのものであり、仮想化機構とは、図３に示したファイルシステム８０、ボリュームマネージャ７８、仮想化スイッチ６０、記憶装置システム４０などを指す。仮想構造とは、図３に示したファイル２０２、論理ボリューム２０４、仮想ボリューム２０６、論理ディスク装置２０８などを指す。そして、管理構造という場合には、前記の仮想構造と物理ディスク装置をあわせたものを指す。これにより、図３に示したような階層のうち、上位の階層と当該管理情報７４を含む階層とのマッピングを行うことができる。同様に、下位仮想構造情報３３２は、仮想化機構ＩＤ、管理機構ＩＤおよび構造内領域の情報を持ち、これにより、当該管理情報７４を含む階層とこれより下位の階層とのマッピングを行うことができる。そして、データ転送量累積値３３４は、それぞれの領域に対応して、それぞれどのような量のデータのリードとライトが行われているかを記録している。
【００３１】
図６は、処理管理情報を示す図である。処理管理情報１４２は、プログラム統計履歴情報３４０、ジョブ管理情報３５０、仮想化機構ＩＤ３６０およびそれに対応する管理情報３６２、データ転送量履歴情報３７０ならびに実行中ジョブ管理情報３９０を含んで構成される。プログラム統計情報履歴３４０は、日時３４２、プログラムＩＤ３４４およびプログラム統計情報３４６を含んでおり、各プログラムのプログラム統計情報３４６を順次保存する。
【００３２】
ジョブ管理情報３５０は、当該処理管理情報１４２を含むサーバ７０のジョブ１つ１つにそれぞれ作成される。そして、過去に実行されたジョブ、実行中のジョブまたは実行される予定のジョブに対応して、それぞれジョブ管理情報３５０が作られる。そして、管理情報３６２は、仮想化機構ＩＤ３６０と関連付けられて記録されている。
【００３３】
データ転送量履歴情報３７０は、日時３７２、仮想化機構ＩＤ３７４および仮想構造ＩＤ３７６に対応して、データの上流にあたる仮想化機構から下流の仮想構造ＩＤ３７６に向かってのデータ転送量を記録するテーブルである。そして、実行中ジョブ管理情報３９０は、前記のジョブ管理情報３５０のジョブのうち、その時点で実行中のジョブを記録するためのテーブルである。
【００３４】
図７は、プログラム統計情報を示す図である。プログラム統計情報１０２は、処理カウンタ４００、ファイルパス名４０２、周期ライト実行回数累積値４０４およびライトデータ量累積値４０６を含んで構成される。処理カウンタ４００は、対象となるプログラム１００における処理の回数をカウントするための値である。ファイルパス名４０２は、プログラム１００がライト処理するファイルの名前を記録する。そして、周期ライト実行回数累積値４０４は、図５において示したような周期的なライトを実行した回数の累積値である。そして、ライトデータ量累積値４０６は、前記の周期ライトを含むライトを行ったデータ量の累積値を記録する。
【００３５】
図８（ａ）は、ジョブ管理情報を示す図であり、（ｂ）は、実行中ジョブ管理情報を示す図である。
図８（ａ）に示されているジョブ管理情報４１０は、ジョブ識別子４１２、サーバ名４１４、コマンド名４１６、起動条件４１８、ファイルパス名４２０、期間４２２、基準ライトスループット４２４、基準ライト周期４２６、基準ライト量４２８、基準モニタ値４３０、基準モニタ箇所４３２、現設定計算モニタ値４３４およびその時点で設定されているライト処理情報４３８を含んでいる。ジョブ識別子４１２は、そのジョブのＩＤを記録し、サーバ名４１４は、そのジョブが実行されたサーバ名を記録し、コマンド名４１６は、そのジョブにおいて実行されているコマンド名を記録し、起動条件４１８は、前記コマンドをいつ実行する（実行すべき）か、つまり、（１）常時起動している場合、（２）特定の日時に起動する場合、（３）特定のジョブが完了した後に起動する場合、に関するコマンドの起動のタイミングの情報や、前記コマンドを起動するときのオプションなどの起動条件を記録する。
【００３６】
そして、ファイルパス名４２０は、そのジョブがライト処理を行うファイルを示す。期間４２２から基準モニタ箇所４３２までの項目は、そのジョブを実行した際に収集したモニタ情報を基に管理者が設定する項目である。期間４２２は、以下の情報により示されるライト特性を持つファイルへのライト処理がジョブ実行中のどの期間実施されるかを示す。基準ライトスループット４２４は、持続ライトのときに基準となるスループットを表す。基準ライト周期４２６と基準ライト量４２８は、周期ライトに対応する項目である。基準モニタ値４３０は、基準ライトスループット４２４から基準ライト量４２８の設定に利用したモニタ情報を収集した期間における基準モニタ箇所４３２におけるモニタ値を保存する。基準モニタ箇所４３２としては、（１）単位プログラムの処理カウンタ（単位時間あたりの処理数に換算後の数値）、（２）対応プログラムのライトデータ量累積値（単位時間あたりのデータ量に換算後の数量）、（３）対応仮想構造のライトデータ転送量（単位時間あたりのデータ転送量に換算後の数量）の３つが挙げられる。
【００３７】
ライト処理情報４３８は、図８（ａ）においては、1つだけを示しているが、これは、複数存在することもある。このライト処理情報については、具体例を後記する。
なお、図５に前記したようにライトパターンは、周期ライトと持続ライトに分割が可能であるため、周期ライトのための項目と持続ライトのための項目が両方とも用いられる可能性もある。
【００３８】
図８（ｂ）に示す実行中ジョブ管理情報４４０は、ジョブ識別子４４２とジョブ起動時刻４４４の情報を含み、その時点で実行されているジョブをすべて管理している。個々のジョブについては、前記のジョブ管理情報４１０をジョブ識別子４４２によって検索して調べる。
【００３９】
図９（ａ）は、周期ライトの場合のライト処理情報を示す図であり、図９（ｂ）は、持続ライトの場合のライト処理情報を示す図であり、図９（ｃ）は、情報を削除する場合のライト処理情報を示す図である。
図９（ａ）に示す周期ライトの場合のライト処理情報４５ａは、ライト処理情報ＩＤ４５０、処理種別４５２、Ｉ／Ｏ識別情報４５４、周期ライト周期４５６、周期ライト量４５８および記憶装置ＩＤ４６０の各情報を含む。ライト処理情報ＩＤ４５０は、当該ライト処理情報の識別情報である。なお、ライト処理情報ＩＤ４５０の代わりにライト処理情報４５そのものを格納するようにしてもよい。処理種別４５２は、周期ライトであるか持続ライトであるかを示す情報である。Ｉ／Ｏ識別情報４５４は、アクセス先論理ディスク装置（Logical Unit、LU）およびその論理ディスクにおけるアドレスに該当するＬＢＡ（Logical Block Address）を記録する。周期ライト周期４５６および周期ライト量４５８は、周期ライトを行う際の周期とライト量を示し、それぞれ、図８（ａ）の基準ライト周期４２６および基準ライト量４２８に対応する。記憶装置ＩＤ４６０は、そのデータをどの記憶装置システム４０に送ったかを示す情報を保存する。
【００４０】
図９（ｂ）に示す持続ライトの場合のライト処理情報４５ｂは、ライト処理情報ＩＤ４５０、処理種別４５２、Ｉ／Ｏ識別情報４５４、ライトスループット４６２および記憶装置ＩＤ４６０を含む。なお、図９（ａ）と同一の構成要素には、同一の符号を付した。ライトスループット４６２は、持続ライトにおけるスループットであり、図８（ａ）の基準ライトスループット４２４に対応するものである。
【００４１】
図９（ｃ）に示す情報削除の場合のライト処理情報４５ｃは、ライト処理情報ＩＤ４５０、処理種別４５２および記憶装置ＩＤ４６０を含む。なお、図９（ｂ）と同様に、図９（ａ）と同一の構成要素には、同一の符号を付した。ライト処理情報４５ｃは、記憶装置システム４０のＣＰＵ１２が前記の各項目によって指定された記憶装置システム４０中のデータを削除することを示す。
【００４２】
図１０は、ストレージキャッシュ管理情報を示す図である。ストレージキャッシュ管理情報４８０は、分割キャッシュＩＤ４８２、ＬＵＩＤ（論理ディスクＩＤ）４８４、キャッシュ量４８６、ライト優先化閾値４８８、ダーティデータ量４９０、期待ライトスループット４９２、次期待ダーティデータ量４９４、補正ダーティデータ量４９６およびＨＤＤアイドル時ライト量４９８の情報を含み、それぞれの分割キャッシュに対して1つずつのエントリが作られる。このストレージキャッシュ管理情報４８０は、記憶装置システム４０のメモリ１４の中に記録されるものである。
【００４３】
分割キャッシュＩＤ４８２は、分割キャッシュの識別情報であり、ＬＵＩＤ（論理ディスクＩＤ）４８４は、論理ディスク装置の識別情報である。キャッシュ量４８６は、当該分割キャッシュに割り当てられたキャッシュ量である。ライト優先化閾値４８８は、この値を越えるとライト処理を優先的に行うようにするための閾値であり、例えば、分割キャッシュに対応する周期ライトの周期ライト量の総計に書き込み量についてのマージンを取るための所定の余裕係数を掛け合わせた数値や前記キャッシュ量４８６の所定の割合（例えば５０％）を設定する。
【００４４】
ダーティデータ量４９０は、キャッシュ（ディスクキャッシュ）４２のうちのハードディスクに書き込まれているデータと内容が変わっているデータの量を記録する。なお、キャッシュ量４８６からダーティデータ量４９０を減じた値が、その分割キャッシュのライト可能キャッシュ量となる。期待ライトスループット４９２は、その時点から先にライトを行うときの期待されるスループットの値であり、次期待ダーティデータ量４９４は、次にチェックを行ったときにこの値になっていることが望まれる目標値である。補正ダーティデータ量４９６は、第２の実施形態で用いる値であるので、後記する。ＨＤＤアイドル時ライト量４９８は、ハードディスク１６に読み書きの要求がないアイドル状態のときに書き込みを行った量を記録する。
【００４５】
図１１は、ライト量管理情報を示す図である。ライト量管理情報５００は、図９に示したライト処理情報４５ごとに１つずつ記憶装置システム４０のメモリ１４中に保持されている。ライト量管理情報５００は、前ライト量履歴更新時刻５０２、分割キャッシュＩＤ５０４、ライト処理情報５０６、前周期ライト時刻５０８、周期ライト状態５１０、現ライト量カウンタ５１２、補正率５１４およびライト量履歴５１６を含む。
【００４６】
前ライト量履歴更新時刻５０２は、ライト量履歴５１６を前回更新した時刻を記録している。分割キャッシュＩＤ５０４は、図１０の分割キャッシュＩＤ４８２と同様のものであるが、ここでは、ライト処理の対象となった分割キャッシュを示す識別情報である。ライト処理情報ＩＤ５０６は、当該ライト量管理情報５００と対応するライト処理情報４５の識別情報を含む。
【００４７】
前周期ライト時刻５０８は、周期ライトにおいて、前の周期でライト処理をした時刻を記録する。周期ライト状態５１０は、周期ライトが未実行であるか、実行中であるか、あるいは、周期ライトの対象ではないかを記録する。現ライト量カウンタ５１２は、前回のライト量履歴更新時刻から現時点までに行われたライト量を保持するカウンタである。補正率５１４は、ライト処理情報のライト量の予測値（図９（ａ）の周期ライト量４５８や図９（ｂ）のライトスループット４６２）と実際の値（実測値）がどれだけ異なっていたかを示す補正率である。ライト量履歴５１６は、ライト量を所定の時間ごとに記録して、ある程度の期間において、パターンを見るためのものである。
【００４８】
なお、ライト量管理情報５００の中に対象が同一（対応するライト処理情報４５のＩ／Ｏ識別情報４５４が同一）のエントリが複数ある場合には、１つのエントリに実際のデータを記録しておき、その他のエントリには、実際にデータを記録しているエントリへのポインタを記録しておき、両データの間に矛盾が生じないようにする。
【００４９】
［アクセス関連処理］
以下、前記した構成を基に計算機システム１における記憶装置システム４０へのアクセスに関連する処理を説明する。
【００５０】
（管理サーバにおける処理管理プログラムの起動処理）
図１２は、管理サーバにおける処理管理プログラムの起動処理を示す説明図である。
まず、管理サーバ１２０のＣＰＵ１２は、マッピング情報の収集を行う（Ｓ１０）。そして、ＣＰＵ１２は、常時起動のプログラムのライト処理情報４５を設定する（Ｓ１２）。そして、ＣＰＵ１２は、管理対象の（アプリケーション）プログラム１００の起動日時による起動と起動確認（起動したジョブに対応するライト処理情報の設定を含む）を行い（Ｓ１４）、対応する期間が追加・完了した際にライト処理情報を更新する（Ｓ１６）。
【００５１】
そして、ＣＰＵ１２がモニタ情報収集時刻か否かを判定して（Ｓ１８）、収集時刻ではない場合は（Ｓ１８のＮｏ）、ステップＳ２６に進む。一方、収集時刻である場合には（Ｓ１８のＹｅｓ）、ＣＰＵ１２は、モニタ情報を収集し（Ｓ２０）、ライト処理情報の更新値計算を行う（Ｓ２２）。このステップＳ２２における更新値計算の詳細は、後記する。そして、ＣＰＵ１２は、ライト処理情報の更新を行い（Ｓ２４）、ステップＳ２６に進む。
【００５２】
ステップＳ２６では、ＣＰＵ１２は、スリープ状態へ移行する。そして、所定の期間の後に、ＣＰＵ１２は、スリープ状態を終了し（Ｓ２８）、ジョブ管理情報の追加確認を行う（Ｓ３０）。
【００５３】
その後、ジョブ完了時処理を実行して（Ｓ３２）、ステップＳ１４に戻って、処理を繰り返す。なお、ここでのジョブ完了時処理とは、ジョブの完了が報告されたときに、対応するジョブ管理情報４１０から判別される現在設定中のライト処理情報４５の削除指示を記憶装置システム４０に発行し、ジョブ管理情報中のライト処理情報（現設定値）４３８と現設定計算モニタ値４３４をクリアし（０に初期化し）、実行中ジョブ管理情報４４０中の対応エントリの削除を実施することを指す。
【００５４】
なお、ライト処理情報を設定・更新するステップ（ステップＳ１２，Ｓ１４，Ｓ１６，Ｓ２４）においては以下の点に注意する。図２により説明したように、あるファイルは複数の分割キャッシュに対応することが許される。その際、分割キャッシュ毎にそれぞれ独立したライト処理情報を作成して設定・更新する。本実施形態では、ジョブ管理情報を用いてファイル毎にライト処理の特性を管理し、ライト処理情報中の周期ライト量やライトスループットは分割を考慮して補正した値を設定する。補正方法には２つの主要な方法がある。第１の方法は、モニタリングによって得たデータ転送量を基に分割する方法であり、第２の方法は、単純にデータサイズを基に分割する方法である。実際の処理では、いずれの方法の場合にも、前記した余裕係数を用いて、書き込み量についてのマージンを取る。
【００５５】
図１３は、図１２のステップＳ２２のライト処理情報の更新値計算処理の詳細図である。なお、この更新値計算もサーバ１２０のＣＰＵ１２が行っているものとする。
まず、基準モニタ箇所における過去所定期間の現時刻のモニタ値の平均値を計算し、この値をＡに代入する（Ｓ４０）。そして、基準モニタ箇所における過去所定期間の次時刻のモニタ値の平均値を計算し、この値をＢに代入する（Ｓ４２）。それから、基準モニタ箇所における取得した現時刻のモニタ値を把握し、この値をＣに代入する（Ｓ４４）。そして、Ｃ×Ｂ／Ａ×余裕係数を計算し、これを計算モニタ値とする（Ｓ４６）。
【００５６】
具体的には、たとえば、現時刻が３月２４日の午後９時とすると、ステップＳ４０は、３月１６日から３月２３日までの1週間についての午後９時のモニタ値の平均を計算することに対応する。そして、ステップＳ４２は、３月１６日から３月２３日までの1週間についての午後９時５分のモニタ値の平均を計算することに対応する。また、ステップＳ４４は、３月２４日の午後９時のモニタ値を求めることに対応する。すなわち、ステップＳ４４で求めた現在のモニタ値に対して、現時刻に対応する測定結果と少し先の時刻に対応する測定結果によって比を求めて、少し先の時刻のモニタ値を予測しよう（Ｓ４６に該当）というものである。
【００５７】
そして、ステップＳ４８では、現設定計算モニタ値（前回の計算結果）と直前に計算した計算モニタ値との比率計算を行う。その計算の結果として得られた比率が所定の範囲内か否かを判定し（Ｓ５０）、所定の範囲内だった場合には（Ｓ５０のＹｅｓ）、周期ライト周期、周期ライト量、ライトスループットおよび現設定計算モニタ値は現設定値から変更しないで（Ｓ５８）、そのまま処理を終了する。
【００５８】
比率が所定の範囲外だった場合（Ｓ５０のＮｏ）、現設定計算モニタ値を今回の計算結果に更新し、ＣＰＵ１２は、周期ライト周期に過去の所定期間の次時刻の周期ライト実行回数モニタ値の平均値を設定する（Ｓ５２）。そして、ＣＰＵ１２は、周期ライト量＝基準ライト量×計算モニタ値／基準モニタ値×新規ライト周期／基準ライト周期を計算して、この結果を周期ライト量として設定する（Ｓ５４）。さらに、ＣＰＵ１２は、ライトスループット＝基準ライトスループット×計算モニタ値／基準モニタ値を計算して、この結果をライトスループットとして設定し（Ｓ５６）、処理を終了する。
【００５９】
（記憶装置システムにおけるライト処理情報取得処理）
図１４は、記憶装置システムにおけるライト処理情報取得処理を説明する図である。
まず、記憶装置システム４０のＣＰＵ１２は、ライト処理情報４５の処理種別４５２は何であるかを判定する（Ｓ６０）。この判定の結果、処理種別４５２が情報削除である場合には（Ｓ６０の「情報削除」）、この削除処理の対応ライト量管理情報エントリの破棄を行い（Ｓ６８）、ステップＳ６６に進む。判定の結果、処理種別が周期ライトまたは持続ライトである場合には（Ｓ６０の「周期ライト・持続ライト」）、ライト量管理情報エントリ取得および初期化を行い（Ｓ６２）、取得ライト処理情報を保存し（Ｓ６４）、ステップＳ６６に進む。
【００６０】
ステップＳ６６では、ストレージキャッシュ管理情報４８０（図１０参照）の対応するエントリの更新を行い、処理を終了する。このステップＳ６６の処理は、第１の実施形態と第２の実施形態で異なっており、第１の実施形態における処理は、図１５を参照して後記する。
【００６１】
図１５は、第１の実施形態におけるストレージキャッシュ管理情報のエントリ更新の処理を説明する図である。この処理においては、まず、記憶装置システム４０のＣＰＵ１２は、ライト優先化閾値計算を行う（Ｓ１２０）。このライト優先化閾値は、分割キャッシュに対応する周期ライト量の総和×余裕係数によって計算する。ただし、設定最大値（例えば、５０％などに設定）を超えた場合には、その設定最大値を設定する。
【００６２】
そして、ＣＰＵ１２は、期待ライトスループット４９２（図１０参照）の計算を行い（Ｓ１２２）、処理を終了する。期待ライトスループット４９２は、具体的には、周期ライトの場合、周期ライト量／周期ライト周期×補正係数として求め、持続ライトの場合、ライトスループットをそのまま用いる。なお、分割キャッシュに複数のライト処理情報が対応する場合には、その総和としてライトスループット４９２を計算する。
【００６３】
図１６は、第１の実施形態の記憶装置システムにおけるダーティデータ量確認処理を説明する図である。この処理は、記憶装置システム４０において、周期的に行われる。
この処理では、まず、ＣＰＵ１２は、ライト量履歴の更新を行う（Ｓ７０）。この更新は、次のエントリを加える処理である。なお、書き込む領域の制限があり新たなエントリを確保できない場合には、一番古いライト量履歴のエントリに値を書き込む。そして、ＣＰＵ１２は、周期ライト認識処理を実施する（Ｓ７２）。この周期ライト認識処理は、図１７を用いて詳細を後記する。
【００６４】
次に、ＣＰＵ１２は、ライトデータ量を計算し、後続のステップＳ７６やステップＳ７８で用いるためのベース値として保存する（Ｓ７４）。具体的には、ベース値は、期待ライトスループット×確認間隔−ＨＤＤアイドル時ライトデータ量として計算される。ここで、確認間隔とは、この処理による前回のチェックから今回のチェックまでの時間的間隔を指す。なお、この処理に付随して、ＨＤＤアイドル時ライトデータ量を０クリアしておく。
【００６５】
そして、ダーティデータ量過多のとき（ダーティデータ量がライト優先化閾値を超えているとき）、ライトデータ量を増加補正する（Ｓ７６）。具体的には、ライト優先化閾値を超過したライト量（ダーティデータ量−ライト優先化閾値）の所定の割合（例えば５％）をライトデータ量に増加させ、溜まり過ぎたダーティデータの内部ライト処理を促進する。なお、ライト優先化閾値を超えていない場合には、何もしない。
【００６６】
次に、期待ダーティデータ量からライトデータ量を補正する（Ｓ７８）。ここでは、分割キャッシュに対応するすべてのライト処理情報の周期ライト状態が実行中でない場合、現在のダーティデータ量−期待ダーティデータ量の値を計算し、その値の所定の割合（例えば５％）をライトデータ量に加算し、期待ダーティデータ量から期待ライトスループット×確認間隔の計算値を減ずる。
【００６７】
次に、ダーティデータのライト処理を実行する（Ｓ８０）。これは、図４において、ダーティライト処理３１２を行って、ＨＤＤＩ／Ｏキューに書き込み要求を加えることに該当する。この処理の後、ＣＰＵ１２は、所定時間スリープして（Ｓ８２）、再び、ステップＳ７０から処理を繰り返す。
【００６８】
図１７は、周期ライト認識処理を説明する図である。この処理は、図１６におけるステップＳ７２の処理に該当する。
【００６９】
この処理では、まず、ＣＰＵ１２が、周期ライト状態の値は実行中であるかそれとも未実行であるかを判定する（Ｓ１００）。判定の結果、未実行であった場合（Ｓ１００の「未実行」）、ステップＳ１１４に進む。判定の結果、実行中であった場合（Ｓ１００の「実行中」）、ライト量履歴の直近の所定数のサンプルが平均値未満か否かを判定する（Ｓ１０２）。判定の結果、平均値以上であった場合（Ｓ１０２のＮｏ）、そのまま処理を終了する。判定の結果、平均値未満であった場合（Ｓ１０２のＹｅｓ）、周期ライトの実行が終了したことを意味するので、ステップＳ１０４に進む。なお、ステップＳ１０２の判定を行う前に、ライト量履歴に含まれるライト量について、ライト処理情報と補正率から計算した持続ライト分を除く前処理を行う必要がある。
【００７０】
ステップＳ１０４では、次期待ダーティデータ量４９４を更新する（Ｓ１０４）。具体的には、前周期ライト時刻から現在までの持続ライト量を除いた（周期ライト分の）ライト量を加算する。
【００７１】
次に、ＣＰＵ１２は、期待スループット更新値の計算を行う（Ｓ１０６）。期待スループットの計算は、次に示す式（１）を用いて行う。
【００７２】
【数１】
2006277545.tif 000003
ここで、ライト処理情報中の周期ライト量とは、当該ライト処理を要求しているサーバ７０が保持している図９（ａ）の周期ライト量４５８のことである。また、補正率は、ステップＳ１０８で前回計算された値を用いる。そして、現在の周期とは、その時点の直近の周期を指し、具体的には、１つ前の周期ライトから現在の周期ライトまでの期間、つまり、前周期ライト時刻と現時刻との差を指す。
【００７３】
次に、ＣＰＵ１２は、補正率の計算を行う（Ｓ１０８）。補正率の計算は、前記の式（２）を用いて行う。なお、ここで用いた値は、現在のライト量から計算した値とライト処理情報の値から計算した値である。
【００７４】
そして、ＣＰＵ１２は、前ライト量履歴更新時刻（前周期ライト量履歴更新時刻）５０２に保存されている前周期ライト時刻を更新し、現ライト量カウンタ５１２を０クリアし（Ｓ１１０）、周期ライト状態を「未実行」に設定し（Ｓ１１２）、処理を終了する。
【００７５】
ステップＳ１１４では、ライト量履歴の直近の所定数のサンプルが平均値以上か否かを判定する。この判定の結果、平均値未満の場合は（Ｓ１１４のＮｏ）、処理を終了する。平均値以上の場合は（Ｓ１１４のＹｅｓ）、周期ライト状態を「実行中」に設定し（Ｓ１１６）、処理を終了する。
【００７６】
図１８は、ハードディスクのアイドル処理を説明する図である。この処理は、前記したＨＤＤキューに何も要求がない場合の処理である。
この処理では、まず、ＣＰＵ１２は、ダーティデータ量のキャッシュ量に対する割合（ダーティデータ量／キャッシュ量）が所定のライト優先化閾値未満か否かを判定する（Ｓ９０）。この判定の結果、ライト優先化閾値以上である場合は（Ｓ９０のＮｏ）、ステップＳ９６に進む。ライト優先化閾値未満である場合には（Ｓ９０のＹｅｓ）、ＣＰＵ１２は、ダーティデータ量に応じた時間スリープする（Ｓ９２）。すなわち、ダーティデータ量が多いときは短い時間スリープし、ダーティデータ量が少ないときは長い時間スリープする。
【００７７】
次に、ＨＤＤキュー長が０か否か（ＨＤＤキューに何も要求がないか否か）を判定する（Ｓ９４）。この判定の結果、ＨＤＤキュー長が０ではない場合（Ｓ９４のＮｏ）、ハードディスクはアイドル状態ではないので、そのまま処理を終了する。ＨＤＤキュー長が０の場合（Ｓ９４のＹｅｓ）、ステップＳ９６に進む。
【００７８】
ステップＳ９６では、ＣＰＵ１２は、ダーティデータのライト処理を実施する。このとき、所定量または１個のセグメントの量をライト処理することにしてもよい。そして、ＣＰＵ１２は、ＨＤＤアイドル時ライト量４９８を更新して（Ｓ９８）、処理を終了する。
【００７９】
図１９は、ライト要求実行処理を説明する図である。この処理は、サーバ７０から記憶装置システム４０がライト要求を受け取ったときの処理である。
この処理では、まず、ＣＰＵ１２は、対応する分割キャッシュを把握する（Ｓ１３０）。このとき、ストレージキャッシュ管理情報４８０を用いて、ライト要求中の論理ディスク装置（ＬＵ）の識別子から対応する分割キャッシュを求める。
【００８０】
次に、ＣＰＵ１２は、ディスクキャッシュ４２内にライトデータ保持領域を確保し（Ｓ１３２）、サーバ７０からデータを取得する（Ｓ１３４）。そして、ＣＰＵ１２は、サーバ７０にライト完了通知を行う（Ｓ１３６）。この状態では、書き込まれたデータは、記憶装置システム４０のディスクキャッシュ４２に含まれている。最後に、ＣＰＵ１２は、ストレージキャッシュ管理情報４８０（図１０参照）のダーティデータ量４９０、ライト量管理情報５００の現ライト量カウンタ５１２（図１１参照）およびライト量履歴５１６を更新して（Ｓ１３８）、処理を終了する。この処理が終了すると、書き込まれたデータは、前述のダーティデータ量確認処理（図１６参照）やＨＤＤアイドル処理（図１８参照）によりハードディスク１６に内部ライトされる。
【００８１】
このように第１の実施形態によれば、計算機システム１は、アプリケーションサーバ（サーバ）７０および記憶装置システム４０に関する負荷情報を収集する収集部１２，１４４（ＣＰＵ１２および管理エージェント１４４）と、収集部１２，１４４により収集された負荷情報に基づいてライト処理特性を予想し、そのライト処理特性を記憶装置システムに発信する発信部１４４と、発信部により発信されたライト処理特性に基づいて、記憶装置システム内のハードディスクへのライト処理を制御するライト制御部１２，４４（ＣＰＵ１２および制御プログラム４４）とを備える。
【００８２】
これによれば、アプリケーションサーバ（サーバ）７０および記憶装置システム４０に関する負荷情報を収集し、この負荷情報から得たライト処理情報に基づいて計画的にライト処理を行うことができる。
【００８３】
また、第１の実施形態によれば、負荷情報は、アプリケーションサーバ７０のアプリケーション処理量および記憶装置システム４０のＩ／Ｏ負荷を含む。
【００８４】
これによれば、的確な情報に基づいてライト処理特性を構成することができる。
【００８５】
また、第１の実施形態によれば、ライト処理特性は、過去のライト処理の測定結果であるモニタ情報、ライト処理のマージンを取るための余裕係数および直近のライト処理のモニタ値と過去のライト処理のモニタ値の比から導かれる予想ライト実行間隔ならびに予想データライト量を含む。
【００８６】
これによれば、ライト処理特性を用いて、適切なライト処理の計画を立てることができる。
【００８７】
また、第１の実施形態によれば、ライト制御部１２，４４は、記憶装置システム４０内のキャッシュ４２からハードディスク１６へのライト処理が時間的に平均化されるようにライト可能キャッシュ量を設定し、そのライト可能キャッシュ量を満たすようにハードディスク１６へのライト処理を行う。
【００８８】
これによれば、ライト処理が時間的に平均化され、適切なライト可能キャッシュ量が維持された上で、ハードディスク１６へのリード処理に影響を与えないようにライト処理を行うことができる。
【００８９】
また、第１の実施形態によれば、収集部１２，１４４および発信部１２，１４４（ＣＰＵ１２および管理エージェント１４４）は、アプリケーションサーバ７０、記憶装置システム４０またはこれらとは異なる別の装置（例えば管理サーバ１２０）のいずれかに具備されている。
【００９０】
これによれば、計算機システム１の構成を柔軟に決定することができる。
【００９１】
また、第１の実施形態によれば、仮想化スイッチ６０は、論理ボリューム２０４から論理ディスク装置２０８へデータを分割してマッピングしてファイルシステムを記憶する。
【００９２】
これによれば、計算機システム１のファイルシステム８０を柔軟に構築することができる。
【００９３】
また、第１の実施形態によれば、収集部１２，１４４は、収集された負荷情報を周期に基づいて解析して、ライト処理特性を予想する。
【００９４】
これによれば、適切にライト処理特性を予想することができる。
【００９５】
以上により、第１の実施形態における記憶装置システム４０は、サーバ７０からのライト処理特性情報を活用して、キャッシュのダーティデータ量を適切な量になるようにライト処理を管理することができる。そして、サーバ７０から集中したライト要求があった場合でも、ライト要求の処理を適切に分散させることによって、ディスクキャッシュ４２に含まれていないデータをハードディスクにリードする場合のアクセス速度に影響が出ないようにすることができる。これにより、リードの要求に対して安定した応答をすることができる記憶装置システムおよび安定した処理時間でアプリケーションを処理することができる計算機システムを提供することができる。
【００９６】
<<第２の実施形態>>
前記の第１の実施形態は、周期的にライト可能キャッシュ量を確認し、目標とする所定の値を下回る場合に内部ライト処理を行っていたが、第２の実施形態は、期待されるライトスループットを目標とした内部ライト制御を実施する。このため、第２の実施形態は、内部ライト処理のための扱いが異なるなど以外は、第１の実施形態と共通しているので、第２の実施形態が第１の実施形態と異なる部分だけを説明する。
【００９７】
［システム構成］
本実施形態においては、基本的なハードウェア構成は全く同じであるので、説明を省略する。ただし、一部のテーブルは、保持する項目が第１の実施形態と異なっているので、その部分だけ説明する。
【００９８】
図１０のストレージキャッシュ管理情報４８０において、本実施形態では、第１の実施形態では用いなかった補正ダーティデータ量４９６を用いる。
図１１に示すライト量管理情報５００の中では、前周期ライト時刻５０８から現ライト量カウンタ５１２までは、本実施形態では用いない。
その他の構成は、前記した第１の実施形態と同じである。
【００９９】
［アクセス関連処理］
前記した構成を基に計算機システム１における記憶装置システム４０へのアクセスに関連する処理を説明する。
第２の実施形態においては、第１の実施形態が短い周期ごとにライト量を決定するための値を更新して、これらの値に基づいてライト量を予測するものであったのに対して、周期を基にして予測値を求めるのではなく、記憶装置システム４０のＣＰＵ１２は、期待ライトスループットを基にライト量の補正を逐次行う。そして、この補正値に基づいて、記憶装置システム４０の内部Ｉ／Ｏ処理の負荷が高いときには、平均して内部ライトを行うようにして、内部Ｉ／Ｏ処理の負荷が低いときには、ライト量を増加させていくようにする。
【０１００】
図２０は、第２の実施形態におけるダーティデータ量確認処理を説明する図である。図２０で説明する処理は、図１６の第１の実施形態におけるダーティデータ量確認処理に対応する図であり、共通のステップには同一の符号を付して、説明を省略する。
この処理では、第１の実施形態において周期ライト認識処理を行っていた代わりに補正率を計算する（Ｓ１４０）。このとき、補正率は、ライト処理情報におけるライト量の予測値と実際のライト量がどれだけ違っていたかを表す割合である。
【０１０１】
そして、第１の実施形態においては、期待ダーティデータ量からライトデータ量を補正していたのに対して、第２の実施形態では、補正ダーティデータ量からライトデータ量を補正する（Ｓ１４２）。具体的には、まず、補正ダーティデータ量が正の値を有する場合、所定量（たとえば３２ｋＢ）を補正ダーティデータ量から減ずる。そして、この補正ダーティデータ量の減少分をライトデータ量に加算する補正を行う。なお、所定量を加算後もライトデータ量が負の場合は、その値に対する絶対値（符号を変えた数）を補正ダーティデータ量から減じ、ライトデータ量は０に設定する。
【０１０２】
図２１は、第２の実施形態におけるストレージキャッシュ管理情報のエントリ更新処理を説明する図である。
第１の実施形態においては、この処理は、ライト優先化閾値計算のステップＳ１２０と期待ライトスループット計算のステップＳ１２２だけを行うが、第２の実施形態では、この２つのステップに加えて、補正ダーティデータ量の設定を行う（Ｓ１５０）。このステップでは、基本的に現在のダーティデータ量をそのまま補正ダーティデータ量の設定に用いる。
【０１０３】
以上第２の実施形態について説明を行ってきたが、本実施形態によれば、前記の第１の実施形態と同様に、サーバ７０から集中したライト要求があった場合でも、ライト要求の処理を適切に分散させることによって、ディスクキャッシュ４２に含まれていないデータをハードディスク１６にリードする場合のアクセス速度に影響が出ないようにすることができる。また、第１の実施形態に比して、管理処理が簡単になるので、特に記憶装置システム４０における管理処理における計算機資源の利用を軽減できる。
【０１０４】
前記第１の実施形態および第２の実施形態のいずれの場合も、図１に示すような構成を前提としていたが、ファイル２０２から分割キャッシュ２１０までのマッピングが明確化された構成ならば本発明を適用できる。つまり、仮想化スイッチ６０を含まない構成をとってもよい。この場合には、論理ボリューム２０４から論理ディスク装置２０８へ直接マッピングが行われる。
さらに、ボリュームマネージャ７８も含まない構成としてもよい。この場合には、ファイルシステム８０が、論理ボリューム２０６や論理ディスク装置２０８へ直接マッピングを行う。更に、記憶装置４０がファイル２０２を提供する構成にも適用できる。この構成における記憶装置システム４０は、いわゆるＮＡＳ（Network Attached Storage）と呼ばれるものになる。
【０１０５】
なお、本発明の実施形態は、趣旨を逸脱しない範囲で変更が可能である。例えば、前記の２つの実施形態とは異なるライト量の管理方法によって内部ライト処理を分散させるように構成してもよいし、管理サーバの機能をアプリケーションサーバや記憶装置システムが受け持つようにしてもよい。
【図面の簡単な説明】
【０１０６】
【図１】第１の実施形態の計算機システムの構成図である。
【図２】仮想化スイッチの構成図である。
【図３】ファイルのデータから物理ディスク装置（ハードディスク）へのマッピングを示す説明図である。
【図４】周期ライトパターンと持続ライトパターンの分割を説明する図である。
【図５】管理情報を示す図である。
【図６】処理管理情報を示す図である。
【図７】プログラム統計情報を示す図である。
【図８】（ａ）は、ジョブ管理情報を示す図であり、（ｂ）は、実行中ジョブ管理情報を示す図である。
【図９】（ａ）は、周期ライトの場合のライト処理情報を示す図であり、（ｂ）は、持続ライトの場合のライト処理情報を示す図であり、（ｃ）は、情報を削除する場合のライト処理情報を示す図である。
【図１０】ストレージキャッシュ管理情報を示す図である。
【図１１】ライト量管理情報を示す図である。
【図１２】管理サーバにおける処理管理プログラムの起動処理を示す説明図である。
【図１３】ライト処理情報の更新値計算処理の詳細図である。
【図１４】記憶装置システムにおけるライト処理情報取得処理を説明する図である。
【図１５】第１の実施形態におけるストレージキャッシュ管理情報のエントリ更新の処理を説明する図である。
【図１６】第１の実施形態の記憶装置システムにおけるダーティデータ量確認処理を説明する図である。
【図１７】周期ライト認識処理を説明する図である。
【図１８】ハードディスクのアイドル処理を説明する図である。
【図１９】ライト要求実行処理を説明する図である。
【図２０】第２の実施形態におけるダーティデータ量確認処理を説明する図である。
【図２１】第２の実施形態におけるストレージキャッシュ管理情報のエントリ更新処理を説明する図である。
【符号の説明】
【０１０７】
１      計算機システム
１２    ＣＰＵ
１４    メモリ
１６    ハードディスク（物理ディスク装置）
１８    バス
２０    ＣＤ−ＲＯＭドライブ
２４    ネットワーク
２６    ポート
３４    Ｉ／Ｏパス
４０    記憶装置システム
４２    ディスクキャッシュ
４４    制御プログラム
４５，４５ａ，４５ｂ，４５ｃ  ライト処理情報
４７    データ領域
４９    プログラム領域
６０    仮想化スイッチ
６４    制御プログラム
７０    サーバ（アプリケーションサーバ）
７４    管理情報
７８    ボリュームマネージャ
８０    ファイルシステム
１００  プログラム
１０２  プログラム統計情報
１１０  端末
１１２  入力手段
１１４  表示手段
１２０  管理サーバ
１４０  処理管理プログラム
１４２  処理管理情報
１４３  ライト処理情報
１４４  管理エージェント
【図１】
2006277545.tif 000004
【図２】
2006277545.tif 000005
【図３】
2006277545.tif 000006
【図４】
2006277545.tif 000007
【図５】
2006277545.tif 000008
【図６】
2006277545.tif 000009
【図７】
2006277545.tif 000010
【図８】
2006277545.tif 000011
【図９】
2006277545.tif 000012
【図１０】
2006277545.tif 000013
【図１１】
2006277545.tif 000014
【図１２】
2006277545.tif 000015
【図１３】
2006277545.tif 000016
【図１４】
2006277545.tif 000017
【図１５】
2006277545.tif 000018
【図１６】
2006277545.tif 000019
【図１７】
2006277545.tif 000020
【図１８】
2006277545.tif 000021
【図１９】
2006277545.tif 000022
【図２０】
2006277545.tif 000023
【図２１】
2006277545.tif 000024