(57)【要約】  第１の計算機を含む計算機システムであって、第１の計算機ではアプリケーションが稼働し、第１の計算機は、記憶領域を提供する第２の計算機と接続し、プロセッサ、メモリ、キャッシュ領域が設定されるキャッシュデバイス、及びインタフェースを有し、メモリはオペレーティングシステムを実現するプログラムを含み、オペレーティングシステムは、キャッシュドライバと、配置制御を指示する制御用Ｉ／Ｏ要求を発行する連携制御部とを含み、連携制御部は、キャッシュドライバからのＩ／Ｏ要求の発行を検知した場合、Ｉ／Ｏ要求の解析結果に基づいて検知されたＩ／Ｏ要求から制御用Ｉ／Ｏ要求を生成し、検知されたＩ／Ｏ要求の転送先の装置とは異なる装置に制御用Ｉ／Ｏ要求を転送する。
2016051593.tif 000002
【特許請求の範囲】
【請求項１】
複数の第１の計算機を含む計算機システムであって、
前記複数の第１の計算機の各々では、アプリケーションが稼働し、
前記複数の第１の計算機の各々は、記憶領域を提供する第２の計算機と接続し、
前記第２の計算機が提供する記憶領域には、前記アプリケーションが使用するデータが格納され、
前記第１の複数の計算機の各々は、第１のプロセッサ、第１のメモリ、一時的にデータを格納するキャッシュ領域が設定されるキャッシュデバイス、及び他の装置と接続する第１のインタフェースを有し、
前記第２の計算機は、第２のプロセッサ、第２のメモリ、及び他の装置と接続するための第２のインタフェースを含むコントローラ、並びに複数の記憶装置を有し、
前記第１のメモリは、第１の計算機を制御するオペレーティングシステムを実現するプログラムを含み、
前記オペレーティングシステムは、
前記キャッシュ領域に格納されるデータを制御するキャッシュドライバと、
転送先の装置の識別情報及び対象のデータにアクセスするためのアドレスを含むＩ／Ｏ要求の解析結果に基づいて、前記計算機システムにおける前記対象のデータの配置制御を指示する制御用Ｉ／Ｏ要求を発行する連携制御部と、を含み、
前記連携制御部は、
前記キャッシュドライバからのＩ／Ｏ要求の発行を検知した場合、前記検知されたＩ／Ｏ要求を解析し、
前記検知されたＩ／Ｏ要求の解析結果に基づいて、前記検知されたＩ／Ｏ要求に、前記対象のデータが前記アプリケーションによってどのように使用されるかを示す情報であるヒント情報が含まれるか否かを判定し、
前記検知されたＩ／Ｏ要求に前記ヒント情報が含まれると判定された場合、前記検知されたＩ／Ｏ要求の解析結果に基づいて、前記検知されたＩ／Ｏ要求から前記制御用Ｉ／Ｏ要求を生成し、
前記検知されたＩ／Ｏ要求の転送先の装置とは異なる装置に前記制御用Ｉ／Ｏ要求を転送することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記連携制御部は、
前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であるか否かを判定するための監視情報と、
前記制御用Ｉ／Ｏ要求の発行対象となるＩ／Ｏ要求から前記制御用Ｉ／Ｏ要求を生成するための変換情報と、を管理し、
前記変換情報は、前記Ｉ／Ｏ要求に含まれる前記ヒント情報を、前記制御用Ｉ／Ｏ要求に設定するヒント情報に変換するための情報を含み、
前記連携制御部は、
前記ヒント情報を含むＩ／Ｏ要求を検知した場合、前記検知されたＩ／Ｏ要求の解析結果に基づいて前記監視情報を参照して、前記検知されたＩ／Ｏ要求が前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であるか否かを判定し、
前記検知されたＩ／Ｏ要求が前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であると判定された場合、前記変換情報に基づいて前記検知されたＩ／Ｏ要求に含まれる前記ヒント情報を変換することによって前記制御用Ｉ／Ｏ要求を生成することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記制御用Ｉ／Ｏ要求は、前記キャッシュデバイス及び前記第２の計算機のいずれか一方に転送され、
前記第２の計算機は、
前記第２の計算機を制御する制御部と、
前記制御用Ｉ／Ｏ要求の受信を監視し、前記制御用Ｉ／Ｏ要求に含まれる前記ヒント情報を解析するヒント情報解析部と、を有し、
前記ヒント情報解析部は、
前記制御用Ｉ／Ｏ要求を検知した場合、前記制御用Ｉ／Ｏ要求に含まれる前記ヒント情報を解析し、
前記ヒント情報の解析結果に基づいて、前記第２の計算機における前記対象のデータの配置を制御するための階層制御処理の実行を前記制御部に指示し、
前記制御部は、前記ヒント情報解析部からの指示にしたがって、前記階層制御処理を実行することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、及び前記対象のデータに対して近い将来アクセスがあることを示す第１のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記第１のヒント情報を、前記対象のデータに対して頻繁にアクセスがないことを示す第２のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成することを特徴とする計算機システム。
【請求項５】
請求項３に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、前記対象のデータに頻繁なアクセスがあることを示す属性情報、及び前記対象のデータに対してシーケンシャルなアクセスがあることを示す第３のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記第３のヒント情報を、前記対象のデータに対して頻繁にアクセスがないことを示す第４のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成することを特徴とする計算機システム。
【請求項６】
請求項３に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、前記対象のデータに頻繁なアクセスがないことを示す属性情報、及び前記対象のデータに対してシーケンシャルなアクセスがあることを示す第５のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記対象のデータにアクセスするためのアドレスを変換し、
前記第５のヒント情報を、前記対象のデータに対して近い将来アクセスがあることを示す第６のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成することを特徴とする計算機システム。
【請求項７】
複数の第１の計算機、及び前記複数の第１の計算機の各々と接続する第２の計算機を含む計算機システムであって、
前記複数の第１の計算機の各々では、アプリケーションが稼働し、
前記第２の計算機は、前記複数の第１の計算機の各々で稼働するアプリケーションが使用するデータを格納する記憶領域を提供し、
前記第１の複数の計算機の各々は、第１のプロセッサ、第１のメモリ、一時的にデータを格納するキャッシュ領域が設定されるキャッシュデバイス、及び他の装置と接続する第１のインタフェースを有し、
前記第２の計算機は、第２のプロセッサ、第２のメモリ、及び他の装置と接続するための第２のインタフェースを含むコントローラ、並びに複数の記憶装置を有し、
前記第１のメモリは、第１の計算機を制御するオペレーティングシステムを実現するプログラムを含み、
前記オペレーティングシステムは、
前記キャッシュ領域に格納されるデータを制御するキャッシュドライバと、
転送先の装置の識別情報及び対象のデータにアクセスするためのアドレスを含むＩ／Ｏ要求の解析結果に基づいて、前記計算機システムにおける前記対象のデータの配置制御を指示する制御用Ｉ／Ｏ要求を発行する連携制御部と、を含み、
前記連携制御部は、
前記キャッシュドライバからのＩ／Ｏ要求の発行を検知した場合、前記検知されたＩ／Ｏ要求を解析し、
前記検知されたＩ／Ｏ要求の解析結果に基づいて、前記検知されたＩ／Ｏ要求に、前記対象のデータが前記アプリケーションによってどのように使用されるかを示す情報であるヒント情報が含まれるか否かを判定し、
前記検知されたＩ／Ｏ要求に前記ヒント情報が含まれると判定された場合、前記検知されたＩ／Ｏ要求の解析結果に基づいて、前記検知されたＩ／Ｏ要求から前記制御用Ｉ／Ｏ要求を生成し、
前記検知されたＩ／Ｏ要求の転送先の装置とは異なる装置に前記制御用Ｉ／Ｏ要求を転送することを特徴とする計算機システム。
【請求項８】
請求項７に記載の計算機システムであって、
前記連携制御部は、
前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であるか否かを判定するための監視情報と、
前記制御用Ｉ／Ｏ要求の発行対象となるＩ／Ｏ要求から前記制御用Ｉ／Ｏ要求を生成するための変換情報と、を管理し、
前記変換情報は、前記Ｉ／Ｏ要求に含まれる前記ヒント情報を、前記制御用Ｉ／Ｏ要求に設定するヒント情報に変換するための情報を含み、
前記連携制御部は、
前記ヒント情報を含むＩ／Ｏ要求を検知した場合、前記検知されたＩ／Ｏ要求の解析結果に基づいて前記監視情報を参照して、前記検知されたＩ／Ｏ要求が前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であるか否かを判定し、
前記検知されたＩ／Ｏ要求が前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であると判定された場合、前記変換情報に基づいて前記検知されたＩ／Ｏ要求に含まれる前記ヒント情報を変換することによって前記制御用Ｉ／Ｏ要求を生成することを特徴とする計算機システム。
【請求項９】
請求項８に記載の計算機システムであって、
前記制御用Ｉ／Ｏ要求は、前記キャッシュデバイス及び前記第２の計算機のいずれか一方に転送され、
前記第２の計算機は、
前記第２の計算機を制御する制御部と、
前記制御用Ｉ／Ｏ要求の受信を監視し、前記制御用Ｉ／Ｏ要求に含まれる前記ヒント情報を解析するヒント情報解析部と、を有し、
前記ヒント情報解析部は、
前記制御用Ｉ／Ｏ要求を検知した場合、前記制御用Ｉ／Ｏ要求に含まれる前記ヒント情報を解析し、
前記ヒント情報の解析結果に基づいて、前記第２の計算機における前記対象のデータの配置を制御するための階層制御処理の実行を前記制御部に指示し、
前記制御部は、前記ヒント情報解析部からの指示にしたがって、前記階層制御処理を実行することを特徴とする計算機システム。
【請求項１０】
請求項９に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、及び前記対象のデータに対して近い将来アクセスがあることを示す第１のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記第１のヒント情報を、前記対象のデータに対して頻繁にアクセスがないことを示す第２のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成し、
前記制御部は、前記階層制御処理の実行指示を受け付けた場合、前記対象のデータが最も性能の低い前記記憶領域に格納されるように、前記対象のデータの配置を変更することを特徴とする計算機システム。
【請求項１１】
請求項９に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、前記対象のデータに頻繁なアクセスがあることを示す属性情報、及び前記対象のデータに対してシーケンシャルなアクセスがあることを示す第３のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記第３のヒント情報を、前記対象のデータに対して頻繁にアクセスがないことを示す第４のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成し、
前記制御部は、前記階層制御処理の実行指示を受け付けた場合、前記対象のデータが最も性能の低い前記記憶領域に格納されるように、前記対象のデータの配置を変更することを特徴とする計算機システム。
【請求項１２】
請求項９に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、前記対象のデータに頻繁なアクセスがないことを示す属性情報、及び前記対象のデータに対してシーケンシャルなアクセスがあることを示す第５のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記対象のデータにアクセスするためのアドレスを変換し、
前記第５のヒント情報を、前記対象のデータに対して近い将来アクセスがあることを示す第６のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成し、
前記制御部は、前記階層制御処理の実行指示を受け付けた場合、前記対象のデータが最も性能の高い前記記憶領域に格納されるように、前記対象のデータの配置を変更することを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ及びストレージシステムが有するキャッシュ領域を用いたＩ／Ｏ処理におけるキャッシュ制御に関する。
【背景技術】
【０００２】
近年、サーバや共有ストレージ装置へのフラッシュメモリ等の不揮発性メモリの適用が進んでいる。不揮発性メモリ向けのＩ／Ｏスタックとして、ＮＶＭｅ（Ｎｏｎ―Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  Ｅｘｐｒｅｓｓ）が提案されている。【０００３】
ＮＶＭｅは、不揮発性メモリの高速性を活用するために、既存のＩ／Ｏスタックと比べてＩ／Ｏ処理に対するＣＰＵ負荷を削減したＩ／Ｏスタックである。そのため、ＮＶＭｅを活用することによって、ＣＰＵ負荷がボトルネックのアプリケーションの高速化が実現できる。今後、ＮＶＭｅの活用が進むと考えられる。【０００４】
ＮＶＭｅでは、Ｉ／Ｏ処理時に発行されるコマンドの拡張が提案されている。その一つとして、ヒント情報が知られている（例えば、非特許文献１を参照）。ヒント情報とは、アクセス対象のデータがアプリケーションによってどのように使用されるか示す情報である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国２０１３／０２６２５３３号公報
【非特許文献】
【０００６】
【非特許文献１】“NVM Express revision 1.1b specification”、6.7.1 Context Attributes、[online]、平成２６年８月２０日検索、インターネット<URL:http://www.nvmexpress.org/wp-content/uploads/NVM_Express_1_1b.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
不揮発性メモリから構成されるキャッシュメモリシステム、及び記憶媒体から構成されるストレージシステムと接続する計算機では、アプリケーションの処理性能及び記憶領域の有効な活用を両立するために、それぞれのシステムが連携してデータの配置を制御する必要がある。計算機及びストレージシステムが連携するシステムとして、例えば、特許文献１に記載されているような技術が知られている。【０００８】
特許文献１には、「ファイル・システム層からＩ／Ｏリクエストを受信し、ファイル・システム・コンテキスト情報に関してＩ／Ｏリクエストを検査する。ファイル・システム・コンテキスト情報の属性を決定するために、ファイル・システム層へアクセスし、ファイル・システム層からファイル・システム・コンテキスト情報の属性を受信する。受信した属性を分析し、その分析に基づいてヒントを生成する。」ことが記載されている。また、特許文献１には「ヒントは、Ｉ／Ｏリクエストと関連付けられる。ヒントは、低位レベルのストレージ階層でのデータのアクセス性の効率を高めるためにホット度合いに関する情報を含む。このヒントは低位レベルのストレージ階層へ送信される。」ことが記載されている。【０００９】
しかし、特許文献１には、ストレージシステムの階層制御については記載されているが、キャッシュメモリシステム及びストレージシステムが連携した階層制御については考慮されていない。また、特許文献１では、ＮＶＭｅ用に拡張されたコマンドを用いて、階層的な記憶領域を有する計算機システムにおける階層制御については考慮されていない。【００１０】
キャッシュメモリシステム及びストレージシステムにヒントを送信した場合、同一内容のヒントであるため、キャッシュメモリシステム及びストレージシステムは同一の制御処理を実行する可能性がある。そのため、計算機システムにおける効率的な階層制御を実現できない。【００１１】
また、ＮＶＭｅ用に拡張されたコマンドは、キャッシュメモリシステム向けに使用されるものであるため、キャッシュメモリシステムの階層制御に使用されていたが、ストレージシステムの階層制御には使用されていない。そのため、当該コマンドをそのまま用いてストレージシステムの階層制御に使用することができない。【００１２】
本発明の目的は、階層的な記憶領域を有する計算機システムにおいて、ヒント情報を含むコマンド（Ｉ／Ｏ要求）を用いてデータの配置を制御する計算機システムを提供することである。
【課題を解決するための手段】
【００１３】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数の第１の計算機を含む計算機システムであって、前記複数の第１の計算機の各々では、アプリケーションが稼働し、前記複数の第１の計算機の各々は、記憶領域を提供する第２の計算機と接続し、前記第２の計算機が提供する記憶領域には、前記アプリケーションが使用するデータが格納され、前記第１の複数の計算機の各々は、第１のプロセッサ、第１のメモリ、一時的にデータを格納するキャッシュ領域が設定されるキャッシュデバイス、及び他の装置と接続する第１のインタフェースを有し、前記第２の計算機は、第２のプロセッサ、第２のメモリ、及び他の装置と接続するための第２のインタフェースを含むコントローラ、並びに複数の記憶装置を有し、前記第１のメモリは、第１の計算機を制御するオペレーティングシステムを実現するプログラムを含み、前記オペレーティングシステムは、前記キャッシュ領域に格納されるデータを制御するキャッシュドライバと、転送先の装置の識別情報及び対象のデータにアクセスするためのアドレスを含むＩ／Ｏ要求の解析結果に基づいて、前記計算機システムにおける前記対象のデータの配置制御を指示する制御用Ｉ／Ｏ要求を発行する連携制御部と、を含み、前記連携制御部は、前記キャッシュドライバからのＩ／Ｏ要求の発行を検知した場合、前記検知されたＩ／Ｏ要求を解析し、前記検知されたＩ／Ｏ要求の解析結果に基づいて、前記検知されたＩ／Ｏ要求に、前記対象のデータが前記アプリケーションによってどのように使用されるかを示す情報であるヒント情報が含まれるか否かを判定し、前記検知されたＩ／Ｏ要求に前記ヒント情報が含まれると判定された場合、前記検知されたＩ／Ｏ要求の解析結果に基づいて、前記検知されたＩ／Ｏ要求から前記制御用Ｉ／Ｏ要求を生成し、前記検知されたＩ／Ｏ要求の転送先の装置とは異なる装置に前記制御用Ｉ／Ｏ要求を転送することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、連携制御部は、ヒント情報を含むＩ／Ｏ要求を検知した場合、階層制御処理を実行するための制御用Ｉ／Ｏ要求を当該Ｉ／Ｏ要求の転送先の装置とは異なる装置に送信できる。これによって、第１の計算機及び第２の計算機が連携することが可能となり、かつ、計算機システムにおけるデータの配置を適切に制御できる。【００１５】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１６】
【図１】実施例１における計算機システムのハードウェア構成の一例を示すブロック図である。
【図２】実施例１における計算機システムのソフトウェア構成の一例を示す説明図である。
【図３】実施例１の連携制御部が保持する監視情報の一例を示す説明図である。
【図４】実施例１の連携制御部が保持する変換情報の一例を示す説明図である。
【図５】実施例１のＯＳが実行するＩ／Ｏ処理の一例を説明するフローチャートである。
【図６】実施例１の連携制御部が実行する制御用Ｉ／Ｏ要求の発行処理の一例を説明するフローチャートである。
【図７】実施例１のストレージシステムが実行するＩ／Ｏ処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。
【実施例１】
【００１８】
図１は、実施例１における計算機システムのハードウェア構成の一例を示すブロック図である。図２は、実施例１における計算機システムのソフトウェア構成の一例を示す説明図である。【００１９】
本発明の計算機システムは、サーバ装置１０及びストレージシステム１３０から構成される。なお、計算機システムは、ストレージシステム１３０の代わりに、ストレージシステム１３０と同様の機能を有する計算機を備えてもよい。【００２０】
サーバ装置１０及びストレージシステム１３０は、ネットワーク１４０を介して接続される。ネットワーク１４０は、ＷＡＮ、ＬＡＮ及びＳＡＮ等が考えられる。本発明は、ネットワークの種類に限定されない。なお、サーバ装置１０及びストレージシステム１３０は、ネットワークスイッチ等を介さずに、例えば、ＰＣＩＥｘｐｒｅｓｓ、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、ＩｎｆｉｎｉＢａｎｄ等の接続規格によって直接接続されていてもよい。【００２１】
サーバ装置１０は、複数のサーバモジュール１１０、及びキャッシュメモリシステム１２０を備える。一つのサーバモジュール１１０とキャッシュメモリシステム１２０との間は、例えば、ＰＣＩＥｘｐｒｅｓｓの接続規格を用いるものとする。以下の説明では、ＰＣＩＥｘｐｒｅｓｓをＰＣＩｅと記載する。【００２２】
サーバモジュール１１０は、所定のアプリケーション２００を実行する計算機である。サーバモジュール１１０は、プロセッサ１１１、メモリ１１２、ネットワークインタフェース１１３、及び接続インタフェース１１４を備え、各構成は内部経路を介して互いに接続される。なお、サーバモジュール１１０は、図示しない、記憶媒体、入出力装置等の他の構成を備えてもよい。【００２３】
プロセッサ１１１は、メモリ１１２に格納されるプログラムを実行する。プロセッサ１１１が、メモリ１１２に格納されるプログラムを実行することによって、サーバモジュール１１０が有する機能が実現される。【００２４】
メモリ１１２は、プロセッサ１１１によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。また、メモリ１１２は、プログラムが使用するワークエリアを含む。メモリ１１２に格納されるプログラム及び情報については、後述する。【００２５】
ネットワークインタフェース１１３は、ネットワーク１４０を介して他の装置と接続するためのインタフェースである。【００２６】
接続インタフェース１１４は、キャッシュメモリシステム１２０に接続するためのインタフェースである。前述したように、本実施例では、サーバモジュール１１０及びキャッシュメモリシステム１２０は、ＰＣＩｅバス等の通信経路を介して接続されているものとする。この場合、ＰＣＩｅインタフェースが接続インタフェース１１４として用いられる。【００２７】
キャッシュメモリシステム１２０は、サーバモジュール１１０が使用する大容量のキャッシュ領域を提供する。キャッシュメモリシステム１２０は、フラッシュメモリ等の不揮発性メモリ（不揮発性の記憶素子）から構成される。なお、キャッシュメモリシステム１２０は、不揮発性メモリに対する制御を行うためのコントローラ（図示省略）を備える。【００２８】
実施例１では、キャッシュメモリシステム１２０が提供するキャッシュ領域には、ストレージシステム１３０が提供するＬＵ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）の論理ブロック単位のキャッシュデータが格納される。【００２９】
また、実施例１では、複数のサーバモジュール１１０が、一つのキャッシュメモリシステム１２０を共有して使用するものとする。なお、本発明はこれに限定されず、一つのサーバモジュール１１０に一つのキャッシュメモリシステム１２０を接続する構成でもよい。また、サーバモジュール１１０内部にキャッシュメモリシステム１２０が存在してもよい。さらに、サーバ装置１０の外部にキャッシュメモリシステム１２０が存在してもよい。【００３０】
また、実施例１では、不揮発性メモリから構成されるキャッシュメモリシステム１２０を用いているが、揮発性メモリから構成されるキャッシュメモリシステムを用いてもよい。【００３１】
ストレージシステム１３０は、各サーバモジュール１１０上で実行されるアプリケーション２００（図２参照）が使用するデータ等を格納する記憶領域を提供する。ストレージシステム１３０は、コントローラ１３１及び複数の記憶媒体１３６を備える。【００３２】
コントローラ１３１は、ストレージシステム１３０を制御する。コントローラ１３１は、プロセッサ１３２、メモリ１３３、ネットワークインタフェース１３４、及びストレージインタフェース１３５を備え、各構成は内部経路を介して互いに接続される。【００３３】
プロセッサ１３２は、メモリ１３３に格納されるプログラムを実行する。プロセッサ１３２が、メモリ１３３に格納されるプログラムを実行することによって、ストレージシステム１３０が有する機能が実現される。【００３４】
メモリ１３３は、プロセッサ１３２によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。また、メモリ１３３は、プログラムが使用するワークエリアを含む。メモリ１３３に格納されるプログラム及び情報については、後述する。【００３５】
ネットワークインタフェース１３４は、ネットワーク１４０を介して他の装置と接続するためのインタフェースである。【００３６】
ストレージインタフェース１３５は、記憶媒体１３６に接続するためのインタフェースである。記憶媒体１３６は、データを格納する装置である。記憶媒体１３６は、例えばＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等が考えられる。ただし、記憶媒体１３６は、データを格納できる装置であればどのような装置であってもよい。実施例１では、ストレージシステム１３０は、複数の記憶媒体１３６を用いてＲＡＩＤを構成するものとする。【００３７】
実施例１のストレージシステム１３０は、ストレージシステム１３０用のキャッシュ領域（図示省略）、及び複数のボリューム（図示省略）を有する。【００３８】
ストレージシステム１３０用のキャッシュ領域は、メモリ１３３等を用いて実現されるキャッシュ領域である。ストレージシステム１３０用のキャッシュ領域には、サーバモジュール１１０によってアクセスされたデータが一時的に格納される。ボリュームは、アクセス性能が異なるＲＡＩＤボリュームから生成される記憶領域であり、また、サーバモジュール１１０に提供するＬＵを実現する記憶領域である。【００３９】
実施例１のストレージシステム１３０は階層化された記憶領域を構成する。具体的には、ストレージシステム１３０は、アクセス性能が高い複数の記憶媒体１３６から構成されるＲＡＩＤボリューム、及びアクセス性能が低い複数の記憶媒体１３６から構成されるＲＡＩＤボリュームを含む。それぞれのＲＡＩＤボリュームから一つ以上のＬＵが生成され、生成されたＬＵがサーバモジュール１１０に割り当てられる。【００４０】
ストレージシステム１３０は、ストレージシステム１３０用のキャッシュ領域にデータを格納することによって、サーバモジュール１１０からのアクセスに対して高速に応答することができる。また、ストレージシステム１３０は、サーバモジュール１１０に割り当てるＬＵを変更することによって、データが格納される階層を変更できる。【００４１】
次に、サーバモジュール１１０、キャッシュメモリシステム１２０、及びストレージシステム１３０のソフトウェア構成について説明する。【００４２】
サーバモジュール１１０のメモリ１１２は、一つ以上のアプリケーション２００、キューイングインタフェース２１５、及びＯＳ２２０のそれぞれを実現するプログラムを格納する。各プログラムは、プロセッサ１１１によって実行される。実施例１では、説明の簡単のため、サーバモジュール１１０上では一つのアプリケーション２００が稼働するものとする。【００４３】
アプリケーション２００は、所定の業務を実行する。なお、本発明は、アプリケーション２００の種類に依存しない。実施例１のアプリケーション２００は、ヒント情報を含むＩ／Ｏ要求の発行機能又はヒント情報を含むトランザクションの制御機能を有するものとする。アプリケーション２００は、データベース等の操作するための専用コマンドにヒント情報を含めることができる。ここで、ヒント情報とは、アクセス対象のデータがアプリケーション２００によってどのように使用されるか示す情報である。【００４４】
なお、アプリケーション２００は、必ずしもヒント情報を含むＩ／Ｏ要求の発行機能又はヒント情報を含むトランザクションの制御機能を有していなくてもよい。この場合、キューイングインタフェース２１５、又はアプリケーション２００から出力されるアクセス要求を監視するエージェント（図示省略）が、Ｉ／Ｏ要求又はトランザクションの開始指示等にヒント情報を含める。【００４５】
キューイングインタフェース２１５は、アプリケーション２００と、キャッシュメモリシステム１２０及びストレージシステム１３０との間のＩ／Ｏを制御する。具体的には、キューイングインタフェース２１５は、キューにＩ／Ｏ要求を登録し、また、キューに登録されたＩ／Ｏ要求の実行を制御する。本実施例では、キューイングインタフェース２１５として、ＮＶＭｅに準拠したインタフェースを用いるものとする。【００４６】
キューイングインタフェース２１５は、アプリケーション２００にアプリケーションキューを提供する。実施例１では、キューイングインタフェース２１５が、一つのアプリケーション２００に対して一つ以上のアプリケーションキューを提供するものとする。【００４７】
なお、キューイングインタフェース２１５は、アプリケーション２００又はＯＳ２２０内部に含まれもよい。また、キューイングインタフェース２１５は、ＮＶＭｅに準拠したインタフェースに限定されない。【００４８】
ＯＳ２２０は、サーバモジュール１１０全体を制御する。ＯＳ２２０は、キャッシュドライバ２２５、連携制御部２３０、キャッシュメモリシステムドライバ２４０、及びストレージシステムドライバ２５０を含む。【００４９】
ＯＳ２２０は、ストレージシステム１３０によって提供されるＬＵを所定のファイルシステムにフォーマットする。このとき、ＯＳ２２０は、ＬＵを所定の論理ブロックに分割し、各論理ブロックに識別番号を割り当てる。【００５０】
ファイルシステムは、一つ以上のブロックデータから構成されるデータをファイルとして管理する。なお、ＯＳ２２０に含まれるファイルシステム等は、公知のものであるため説明を省略する。【００５１】
キャッシュドライバ２２５は、キャッシュ領域に格納されるキャッシュデータを制御するドライバである。例えば、アプリケーション２００から読み出し要求を受け付けた場合、以下のようなキャッシュ制御処理を実行する。【００５２】
まず、キャッシュドライバ２２５は、読み出し対象のデータがキャッシュメモリシステム１２０のキャッシュ領域に格納されているか否かを判定する。当該キャッシュ領域に読み出し対象のデータが格納されている場合、キャッシュドライバ２２５は、当該キャッシュ領域から当該データを読み出して、読み出されたデータをアプリケーション２００に応答する。【００５３】
当該キャッシュ領域に読み出し対象のデータが格納されていない場合、キャッシュドライバ２２５は、ストレージシステム１３０への読み出し要求をストレージシステムドライバ２５０のキューに登録し、当該読み出し要求に基づいてストレージシステム１３０からデータを読み出す。また、キャッシュドライバ２２５は、読み出されたデータをアプリケーション２００に応答する。【００５４】
実施例１のキャッシュドライバ２２５は、前述したキャッシュ制御処理を実現するために、通常のＩ／Ｏ要求及びヒント情報を含むＩ／Ｏ要求の少なくともいずれか一方を発行する機能を有する。【００５５】
連携制御部２３０は、ヒント情報を含むＩ／Ｏ要求の解析結果に基づいて、制御用Ｉ／Ｏ要求を発行する。具体的には、連携制御部２３０は、ヒント情報を含むＩ／Ｏ要求を検知した場合、当該Ｉ／Ｏ要求を解析し、解析結果に基づいて制御用Ｉ／Ｏ要求を生成する。また、連携制御部２３０は、ヒント情報を含むＩ／Ｏ要求の転送先とは異なる転送先に制御用Ｉ／Ｏ要求を転送する。【００５６】
制御用Ｉ／Ｏ要求は、階層的な記憶領域（階層ストレージ）を構成する計算機システムのデータの配置を制御するためのＩ／Ｏ処理を実現するＩ／Ｏ要求である。当該制御用Ｉ／Ｏ要求には、ヒント情報を含むＩ／Ｏ要求の解析結果に基づいて変換されたヒント情報が含まれる。【００５７】
連携制御部２３０は、監視情報２３１及び変換情報２３２を保持する。監視情報２３１は、連携制御部２３０が制御用Ｉ／Ｏ要求を発行するか否かを判定するための情報を格納する。監視情報２３１の詳細は、図３を用いて後述する。変換情報２３２は、連携制御部２３０が制御用Ｉ／Ｏ要求を生成するための情報を格納する。変換情報２３２の詳細は、図４を用いて後述する。【００５８】
キャッシュメモリシステムドライバ２４０は、キャッシュメモリシステム１２０へのアクセスを制御する。キャッシュメモリシステムドライバ２４０は、実行キュー２４１及び完了キュー２４２のペアを複数有する。以下の説明では、実行キュー２４１及び完了キュー２４２のペアをキャッシュキューとも記載する。【００５９】
実行キュー２４１は、Ｉ／Ｏ要求を登録するためのキューである。完了キュー２４２は、Ｉ／Ｏ要求に対する応答を登録するためのキューである。実施例では、一つのアプリケーション２００に対して、キャッシュキューが一つ以上割り当てられるものとする。これによって、効率的なキャッシュ制御を実現することができる。【００６０】
ストレージシステムドライバ２５０は、ストレージシステム１３０へのアクセスを制御する。ストレージシステムドライバ２５０は、実行キュー２５１及び完了キュー２５２のペアを一つ以上有する。【００６１】
キャッシュメモリシステム１２０のコントローラは、複数のキャッシュキューの各々に対応した複数の実行レジスタ２６１を有する。実行レジスタ２６１の数は、キャッシュキューの数（ペアの数）と同一である。図１に示す例では、実行キュー２４１−１及び完了キュー２４２−１のペアには実行レジスタ２６１−１が対応づけられ、実行キュー２４１−ｎ及び完了キュー２４２−ｎのペアには実行レジスタ２６１−ｎが対応づけられる。【００６２】
ストレージシステム１３０のメモリ１３３は、ヒント情報解析部２７０及びストレージ制御部２７５のそれぞれを実現するプログラムを格納する。各プログラムは、プロセッサ１３２によって実行される。【００６３】
ヒント情報解析部２７０は、制御用Ｉ／Ｏ要求を監視し、制御用Ｉ／Ｏ要求を解析し、解析結果及び制御用Ｉ／Ｏ要求をストレージ制御部２７５に出力する。【００６４】
ストレージ制御部２７５は、ストレージシステム１３０を制御する。ストレージ制御部２７５は、ＲＡＩＤボリュームを論理的に分割することによって、複数のＬＵ（Ｌｏｇｉｃａｌ  Ｕｎｉｔ）を生成し、生成された複数のＬＵをサーバモジュール１１０に提供する。また、ストレージ制御部２７５は、ＬＵ、ＲＡＩＤボリューム及び記憶媒体１３６の対応関係を管理する。【００６５】
また、ストレージシステム１３０のコントローラ１３１は、ストレージシステムドライバ２５０が有する実行キュー２５１及び完了キュー２５２のペアに対応する実行レジスタ２８１を有する。【００６６】
ストレージ制御部２７５は、実行レジスタ２８１を介してサーバモジュール１１０からＬＵへのＩ／Ｏ要求を受信した場合、管理情報に基づいてＬＵを構成する記憶領域（論理ブロック）を提供する記憶媒体１３６にアクセスする。【００６７】
なお、ストレージ制御部２７５は、ＬＵの管理機能、データ転送機能、及びキャッシュ制御機能等の各種機能を有するが、公知の技術であるため詳細な説明を省略する。【００６８】
図２では、キャッシュドライバ２２５及び連携制御部２３０は、別々の構成として示しているが、キャッシュドライバ２２５が連携制御部２３０を含んでもよい。また、図２では、ストレージ制御部２７５及びヒント情報解析部２７０は、別々の構成として示しているが、ストレージ制御部２７５がヒント情報解析部２７０を含んでもよい。【００６９】
図３は、実施例１の連携制御部２３０が保持する監視情報２３１の一例を示す説明図である。【００７０】
監視情報２３１は、制御用Ｉ／Ｏ要求の発行対象となるＩ／Ｏ要求を定義する複数のエントリを含む。監視情報２３１のエントリは、転送先３０１、コマンド３０２、及びＩＤ３０３を含む。【００７１】
転送先３０１は、ヒント情報を含むＩ／Ｏ要求が転送されるデバイス又はシステムの識別情報を格納するカラムである。実施例１では、転送先３０１には、キャッシュメモリシステム１２０の識別情報及びストレージシステム１３０の識別情報いずれか一方が格納される。なお、転送先３０１に格納される識別情報は、キャッシュメモリシステム１２０及びストレージシステム１３０を一意に識別できる情報であればよく、例えば、識別名、アドレス等が考えられる。【００７２】
コマンド３０２は、Ｉ／Ｏ要求の具体的な内容を格納するカラムである。実施例１のコマンド３０２は、アドレス３１１、コマンド種別３１２、データ３１３、データセット管理３１４、及びヒント情報３１５を含む。【００７３】
アドレス３１１は、Ｉ／Ｏ要求のアクセス対象となる記憶領域のアドレスを格納するカラムである。アドレス３１１には、例えば、ＬＢＡ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）が格納される。図３の各エントリのアドレス３１１には、任意の文字列を表すワイルドカードを示す記号が格納される。【００７４】
コマンド種別３１２は、Ｉ／Ｏ要求の操作種別を格納するカラムである。実施例１のコマンド種別３１２は、データの読出処理を表す「Ｒ」及びデータの書込処理を表す「Ｗ」等が格納される。なお、図３の一番目のエントリは、「Ｒ」及び「Ｗ」の両方に該当することを表す。【００７５】
データ３１３は、データの書込処理に対応するＩ／Ｏ要求のデータを格納するカラムである。データ３１３には、書き込まれるデータそのもの、又は、データの名称等が格納される。なお、データ３１３にハイフンが格納される場合、Ｉ／Ｏ要求にはデータが含まれないことを示す。【００７６】
データセット管理３１４は、所定の記憶領域に格納されるデータの属性を示す情報を格納するカラムである。データセット管理３１４には、例えば、読み出し頻度、書き込み頻度、及びアクセスサイズ等が格納される。なお、データセット管理３１４にハイフンが格納される場合、Ｉ／Ｏ要求にはデータセット管理が設定されないことを示す。【００７７】
ヒント情報３１５は、所定の記憶領域に格納されるデータに対するアプリケーション２００の使用傾向を示す情報を格納するカラムである。【００７８】
ヒント情報３１５には、「近い将来再アクセス」又は「シーケンシャルアクセス」「当分の間アクセスなし」、「圧縮に適合／不適合（圧縮するべき／圧縮すべきでない）」、「レイテンシーに対する許容度（高速応答不要等）」等が格納される。「近い将来再アクセス」は、アプリケーション２００によってアクセスされた後、近い将来、再びアクセスされることを表す。また、「シーケンシャルアクセス」は、アプリケーション２００によってシーケンシャルな読出処理、又は、シーケンシャルな書込処理が実行されることを表す。【００７９】
なお、コマンド３０２には、ヒント情報３１５と、アドレス３１１、コマンド種別３１２、データ３１３及びデータセット管理３１４の少なくともいずれかが含まれればよい。また、コマンド３０２には、アドレス３１１、コマンド種別３１２、データ３１３、データセット管理３１４、及びヒント情報３１５以外のカラムが含まれてもよい。【００８０】
ＩＤ３０３は、変換情報２３２に含まれるエントリの識別番号を格納するカラムである。連携制御部２３０は、後述するように、監視情報２３１の任意のエントリに一致するＩ／Ｏ要求を検知した場合、当該エントリのＩＤ３０３に基づいて変換情報２３２を参照し、変換情報２３２のエントリの情報に基づいて制御用Ｉ／Ｏ要求を生成する。【００８１】
図４は、実施例１の連携制御部２３０が保持する変換情報２３２の一例を示す説明図である。【００８２】
変換情報２３２は、ヒント情報を含むＩ／Ｏ要求から制御用Ｉ／Ｏ要求を生成するための情報を格納する複数のエントリを含む。変換情報２３２のエントリは、ＩＤ４０１、転送先４０２、及びコマンド４０３を含む。【００８３】
ＩＤ４０１は、変換情報２３２に含まれるエントリを一意に識別するための識別子を格納するカラムである。転送先４０２は、制御用Ｉ／Ｏ要求が転送されるデバイス又はシステムの識別情報を格納するカラムである。転送先４０２には、キャッシュメモリシステム１２０の識別情報及びストレージシステム１３０の識別情報いずれか一方が格納される。【００８４】
コマンド４０３は、ヒント情報を含むＩ／Ｏ要求に基づいて制御用Ｉ／Ｏ要求を生成するための情報を格納するカラムである。実施例１のコマンド４０３は、アドレス４１１、コマンド種別４１２、データ４１３、データセット管理４１４、及びヒント情報４１５を含む。【００８５】
アドレス４１１は、制御用Ｉ／Ｏ要求に設定する記憶領域のアドレスの変換規則を格納するカラムである。アドレス４１１に「オリジナル」が格納される場合、ヒント情報を含むＩ／Ｏ要求のアドレス３１１と同一のアドレスが制御用Ｉ／Ｏ要求に設定されることを示す。アドレス４１１に「オリジナル＋オフセット」が格納される場合、ヒント情報を含むＩ／Ｏ要求のアドレス３１１に所定のオフセットを加算したアドレスが制御用Ｉ／Ｏ要求に設定されることを示す。【００８６】
コマンド種別４１２は、制御用Ｉ／Ｏ要求に設定する操作種別を格納するカラムである。データ４１３は、書き込み処理に対応する制御用Ｉ／Ｏ要求に設定するデータの変換規則を格納するカラムである。データ４１３に「オリジナル」が格納される場合、ヒント情報を含むＩ／Ｏ要求と同一のデータが制御用Ｉ／Ｏ要求に設定されることを示す。また、データ４１３にハイフンが格納される場合、制御用Ｉ／Ｏ要求にはデータが設定されないことを示す。【００８７】
データセット管理４１４は、制御用Ｉ／Ｏ要求に設定するデータセット管理の変換規則を格納するカラムである。データセット管理４１４に「オリジナル」が格納される場合、ヒント情報を含むＩ／Ｏ要求のデータセット管理３１４と同一のデータセット管理が制御用Ｉ／Ｏ要求に設定されることを示す。また、データセット管理４１４にハイフンが格納される場合、制御用Ｉ／Ｏ要求にはデータセット管理が設定されないことを示す。【００８８】
ヒント情報４１５は、制御用Ｉ／Ｏ要求に設定するヒント情報を格納するカラムである。実施例１のヒント情報４１５には、ヒント情報を含むＩ／Ｏ要求の対象のデータの階層制御を実現するための情報が格納される。例えば、転送先３０１が「キャッシュメモリシステム」であり、かつ、ヒント情報３１５が「近い将来再アクセス」である場合、ヒント情報４１５には「頻繁なアクセス無し」が格納される。「頻繁なアクセス無し」は、データ４１３に対応するデータへ一定時間アクセスがないこと表す。【００８９】
前述したＩ／Ｏ要求の場合、アプリケーション２００がキャッシュメモリシステム１２０に格納されるデータにアクセスする予定があるため、キャッシュメモリシステム１２０からデータが追い出されない。したがって、サーバモジュール１１０がストレージシステム１３０にアクセスする必要がないため、制御用Ｉ／Ｏ要求のヒント情報４１５には「頻繁なアクセスなし」が格納される。【００９０】
ここで、図３の監視情報２３１及び図４の変換情報２３２の対応関係について説明する。【００９１】
監視情報２３１の一番目のエントリの場合、近い将来、キャッシュメモリシステム１２０に格納されるデータに対する書込処理又は読み出し処理が実行される。そのため、キャッシュ領域に格納されるデータは、当該キャッシュ領域から追い出されない。この場合、ストレージシステム１３０に格納される当該データへのアクセスは発生しないため、制御用Ｉ／Ｏ要求に含めるヒント情報として「頻繁なアクセス無し」を設定することによって、ストレージシステム１３０は、以下のような階層制御を行うことができる。【００９２】
（１）ストレージシステム１３０は、ストレージシステム１３０用のキャッシュ領域に当該データが格納されている場合、当該キャッシュ領域から当該データを削除する。【００９３】
（２）ストレージシステム１３０は、アクセス性能の高い記憶領域に当該データが格納されている場合、アクセス性能の低い記憶領域に当該データを移動する。【００９４】
（１）及び（２）に示す階層制御が行われることによって、ストレージシステム１３０のキャッシュ領域及び記憶領域を有効に活用できる。【００９５】
監視情報２３１の二番目のエントリの場合、データがシーケンシャルに読み出され、かつ、当該データが頻繁に読み出される。そのため、キャッシュ領域から当該データが追い出されない。この場合、ストレージシステム１３０に格納される当該データへのアクセスは発生しないため、制御用Ｉ／Ｏ要求に含めるヒント情報として「頻繁なアクセス無し」を設定することによって、ストレージシステム１３０は、前述の（１）及び（２）に示す階層制御を行うことができる。例えば、アプリケーション２００が分析処理を実行する場合、Ｉ／Ｏ性能が向上し、また、ストレージシステム１３０の記憶領域を有効に活用できる。【００９６】
監視情報２３１の三番目のエントリの場合、データがシーケンシャルに読み出され、かつ、当該データは頻繁に読み出されない。そのため、キャッシュ領域から当該データが追い出され、また、その後の当該データアクセスに際してはストレージシステム１３０へのアクセスが発生する。この場合、制御用Ｉ／Ｏ要求に含めるヒント情報として「近い将来再アクセス」を設定することによって、ストレージシステム１３０は、以下のような階層制御を行うことができる。【００９７】
（３）ストレージシステム１３０は、ストレージシステム１３０用のキャッシュ領域へのプリフェッチ準備のために、アクセス性能の高い記憶領域にアクセス予定のデータを移動する。【００９８】
（４）ストレージシステム１３０は、データの一部をストレージシステム１３０用のキャッシュ領域に読み出す。【００９９】
（３）及び（４）に示す階層制御が行われることによって、ストレージシステム１３０は、サーバモジュール１１０に対して高速にデータを送信できる。したがって、アプリケーション２００の処理性能を向上することができる。【０１００】
なお、実施例１の連携制御部２３０は、監視情報２３１及び変換情報２３２を別々の情報として保持していたが、監視情報２３１及び変換情報２３２を組み合わせて一つの変換情報として管理してもよい。【０１０１】
次に、図５及び図６を用いて、実施例１のサーバモジュール１１０が実行するＩ／Ｏ処理の詳細について説明する。【０１０２】
図５は、実施例１のＯＳ２２０が実行するＩ／Ｏ処理の一例を説明するフローチャートである。【０１０３】
ＯＳ２２０は、当該ＯＳ２２０の起動後、Ｉ／Ｏ要求の監視を開始する（ステップＳ１０１）。具体的には、ＯＳ２２０は、連携制御部２３０を呼び出し、Ｉ／Ｏ要求の監視を指示する。なお、連携制御部２３０がプログラムモジュールとして実現される場合、ＯＳ２２０は、当該プログラムモジュールをメモリ１１２にロードし、当該プログラムモジュールを実行する。【０１０４】
ＯＳ２２０は、アプリケーション２００からアプリケーションキューへのＩ／Ｏ要求の登録指示を受け付けた場合（ステップＳ１０２）、キャッシュドライバ２２５を呼び出す。【０１０５】
なお、アプリケーション２００は、Ｉ／Ｏ要求の登録指示を行う場合、以下のような処理を実行する。まず、アプリケーション２００は、対象のデータが格納される記憶領域（宛先アドレス）、対象のデータ、及びアプリケーションキューの識別番号を決定する。アプリケーション２００は、キューイングインタフェース２１５を用いて、Ｉ／Ｏ要求の種別、宛先アドレス、対象のデータ、及びアプリケーションキュー番号を含むＩ／Ｏ要求の登録指示を入力する。なお、アプリケーション２００は、必要に応じてヒント情報をＩ／Ｏ要求の登録指示に付与することができる。【０１０６】
キャッシュドライバ２２５は、キャッシュメモリシステム１２０のキャッシュ領域に対象のデータが格納されているか否かを判定する（ステップＳ１０３）。すなわち、キャッシュヒットしたか否かが判定される。【０１０７】
対象のデータがキャッシュ領域に格納されていると判定された場合、ＯＳ２２０は、ヒント情報を含むＩ／Ｏ要求を生成し、当該Ｉ／Ｏ要求を所定の実行キュー２４１に登録する（ステップＳ１０４）。すなわち、Ｉ／Ｏ要求が発行される。【０１０８】
連携制御部２３０は、Ｉ／Ｏ要求の発行を検知した場合、制御用Ｉ／Ｏ要求の発行処理を実行する（ステップＳ１０５）。制御用Ｉ／Ｏ要求の発行処理の詳細は、図６を用いて後述する。【０１０９】
ＯＳ２２０は、所定のスケジュールにしたがって、実行キュー２４１に登録されたＩ／Ｏ要求を実行し（ステップＳ１０６）、Ｉ／Ｏ要求の完了をアプリケーション２００に通知する（ステップＳ１０７）。その後、ＯＳ２２０は、Ｉ／Ｏ処理を終了する。具体的には、以下のような処理が実行される。【０１１０】
ＯＳ２２０は、キャッシュメモリシステムドライバ２４０に、実行キュー２４１に登録されたＩ／Ｏ要求の実行を指示する。キャッシュメモリシステムドライバ２４０は、実行キュー２４１に登録されたＩ／Ｏ要求に対応する実行レジスタ２６１を介して、キャッシュメモリシステム１２０にＩ／Ｏ要求の実行を指示する。【０１１１】
キャッシュメモリシステムドライバ２４０は、Ｉ／Ｏ要求の処理が完了した後、当該Ｉ／Ｏ要求が登録された実行キュー２４１に対応する完了キュー２４２に、当該Ｉ／Ｏ要求の応答を登録する。【０１１２】
ＯＳ２２０は、完了キュー２４２に応答が登録されたことを検知すると、完了キュー２４２から応答を読み出し、Ｉ／Ｏ処理の完了をアプリケーション２００に通知する。【０１１３】
ステップＳ１０３において、対象のデータがキャッシュ領域に格納されていないと判定された場合、ＯＳ２２０は、ヒント情報を含むＩ／Ｏ要求を生成し、当該Ｉ／Ｏ要求を所定の実行キュー２５１に登録する（ステップＳ１０８）。【０１１４】
連携制御部２３０は、Ｉ／Ｏ要求の発行を検知した場合、制御用Ｉ／Ｏ要求の発行処理を実行する（ステップＳ１０９）。制御用Ｉ／Ｏ要求の発行処理の詳細は、図６を用いて後述する。【０１１５】
ＯＳ２２０は、所定のスケジュールにしたがって、実行キュー２５１に登録されたＩ／Ｏ要求を実行し（ステップＳ１１０）、Ｉ／Ｏ要求の完了をアプリケーション２００に通知する（ステップＳ１１１）。その後、ＯＳ２２０は、Ｉ／Ｏ処理を終了する。具体的には、以下のような処理が実行される。【０１１６】
ＯＳ２２０は、ストレージシステムドライバ２５０に、実行キュー２５１に登録されたＩ／Ｏ要求の実行を指示する。ストレージシステムドライバ２５０は、実行キュー２５１に登録されたＩ／Ｏ要求に対応する実行レジスタ２６１を介して、ストレージシステム１３０にＩ／Ｏ要求の実行を指示する。【０１１７】
ストレージシステムドライバ２５０は、Ｉ／Ｏ要求の処理が完了した後、完了キュー２５２に、当該Ｉ／Ｏ要求の応答を登録する。【０１１８】
ＯＳ２２０は、完了キュー２５２に応答が登録されたことを検知すると、完了キュー２５２から応答を読み出し、Ｉ／Ｏ処理の完了をアプリケーション２００に通知する。【０１１９】
図６は、実施例１の連携制御部２３０が実行する制御用Ｉ／Ｏ要求の発行処理の一例を説明するフローチャートである。【０１２０】
連携制御部２３０は、実行キュー２４１又は実行キュー２５１へ登録されるＩ／Ｏ要求、すなわち、キャッシュドライバ２２５によって発行されたＩ／Ｏ要求を監視する。なお、Ｉ／Ｏ要求の監視方法は、連携制御部２３０がキャッシュドライバ２２５から直接Ｉ／Ｏ要求を受信する方法、又は、スヌーピングを利用する方法等が考えられる。【０１２１】
連携制御部２３０は、Ｉ／Ｏ要求の発行を検知した場合（ステップＳ２０１）、当該Ｉ／Ｏ要求を解析して制御用Ｉ／Ｏ要求を生成する必要があるか否かを判定する（ステップＳ２０２）。具体的には、以下のような処理が実行される。【０１２２】
連携制御部２３０は、キャッシュドライバ２２５によって発行されたＩ／Ｏ要求を解析する。これによって、Ｉ／Ｏ要求の転送先の装置（デバイス）、アクセスする記憶領域のアドレス、コマンド種別、及びヒント情報等を取得できる。【０１２３】
連携制御部２３０は、Ｉ／Ｏ要求の解析結果に基づいて、発行されたＩ／Ｏ要求にヒント情報が含まれるか否かを判定する。発行されたＩ／Ｏ要求にヒント情報が含まれないと判定された場合、連携制御部２３０は、制御用Ｉ／Ｏ要求を生成する必要はないと判定する。【０１２４】
発行されたＩ／Ｏ要求にヒント情報が含まれると判定された場合、連携制御部２３０は、Ｉ／Ｏ要求の解析結果に基づいて監視情報２３１を参照し、監視情報２３１に当該Ｉ／Ｏ要求に一致するエントリを検索する。具体的には、連携制御部２３０は、転送先３０１、アドレス３１１、コマンド種別３１２、データ３１３、データセット管理３１４、及びヒント情報３１５の全てのカラムの値を参照し、全てのカラムの値が制御用Ｉ／Ｏ要求に含まれる値と一致するエントリを検索する。【０１２５】
検知されたＩ／Ｏ要求に一致するエントリが存在しない場合、連携制御部２３０は、制御用Ｉ／Ｏ要求を生成する必要はないと判定する。一方、検知されたＩ／Ｏ要求に一致するエントリが存在する場合、連携制御部２３０は、制御用Ｉ／Ｏ要求を生成する必要があると判定する。以上がステップＳ２０２の処理の説明である。【０１２６】
制御用Ｉ／Ｏ要求を生成する必要がないと判定された場合、連携制御部２３０は、処理を終了する。【０１２７】
制御用Ｉ／Ｏ要求を生成する必要があると判定された場合、連携制御部２３０は、変換情報２３２を参照して、発行されたＩ／Ｏ要求から制御用Ｉ／Ｏ要求を生成し、所定の実行キューに制御用Ｉ／Ｏ要求を登録する（ステップＳ２０３）。その後、連携制御部２３０は、処理を終了する。ステップＳ２０３では、発行されたＩ／Ｏ要求に含まれるヒント情報が変換情報２３２に基づいて変換され、変換されたヒント情報を含む制御用Ｉ／Ｏ要求が生成される。具体的には、以下のような処理が実行される。【０１２８】
連携制御部２３０は、変換情報２３２のＩＤ４０１の値が監視情報２３１から検索されたエントリのＩＤ３０３の値と一致するエントリを検索する。連携制御部２３０は、検索されたエントリに基づいて、発行されたＩ／Ｏ要求から制御用Ｉ／Ｏ要求を生成する。例えば、図４に示す変換情報２３２の場合、以下のようにして制御用Ｉ／Ｏ要求が生成される。【０１２９】
ＩＤ４０１が「１」のエントリの場合、連携制御部２３０は、発行されたＩ／Ｏ要求の転送先のデバイスの識別情報をキャッシュメモリシステム１２０からストレージシステム１３０に変換する。連携制御部２３０は、発行されたＩ／Ｏ要求のヒント情報を「近い将来再アクセスあり」から「頻繁なアクセス無し」に変換する。連携制御部２３０は、発行されたＩ／Ｏ要求に含まれるアドレスを制御用Ｉ／Ｏ要求に設定する。さらに、連携制御部２３０は、発行されたＩ／Ｏ要求に含まれるデータと同一のデータを制御用Ｉ／Ｏ要求に含める。以上の処理によって、制御用Ｉ／Ｏ要求が生成される。【０１３０】
ＩＤ４０１が「２」のエントリの場合、連携制御部２３０は、発行されたＩ／Ｏ要求の転送先のデバイスの識別情報をキャッシュメモリシステム１２０からストレージシステム１３０に変換する。連携制御部２３０は、発行されたＩ／Ｏ要求のヒント情報を「近い将来再アクセスあり」から「頻繁なアクセス無し」に変換する。連携制御部２３０は、発行されたＩ／Ｏ要求に含まれるアドレスを制御用Ｉ／Ｏ要求に設定する。さらに、連携制御部２３０は、発行されたＩ／Ｏ要求と同一のデータセット管理を制御用Ｉ／Ｏ要求に設定する。以上の処理によって、制御用Ｉ／Ｏ要求が生成される。【０１３１】
ＩＤ４０１が「３」のエントリの場合、連携制御部２３０は、発行されたＩ／Ｏ要求の転送先のデバイスの識別情報をキャッシュメモリシステム１２０からストレージシステム１３０に変換する。連携制御部２３０は、発行されたＩ／Ｏ要求のヒント情報を「近い将来再アクセスあり」から「近い将来再アクセス」に変換する。連携制御部２３０は、発行されたＩ／Ｏ要求に含まれるアドレスにオフセットを加算し、算出されたアドレスを制御用Ｉ／Ｏ要求に設定する。さらに、連携制御部２３０は、発行されたＩ／Ｏ要求と同一のデータセット管理を制御用Ｉ／Ｏ要求に設定する。以上の処理によって、制御用Ｉ／Ｏ要求が生成される。【０１３２】
なお、実施例１では、連携制御部２３０が制御用Ｉ／Ｏ要求を生成するが、本発明はこれに限定されない。例えば、連携制御部２３０が、制御用Ｉ／Ｏ要求の生成指示をキャッシュドライバ２２５に送信してもよい。このとき、生成指示には、変換情報２３２から検索されたエントリの情報が含まれる。【０１３３】
次に、図７を用いて、実施例１のストレージシステム１３０がＩ／Ｏ要求を受信した場合に実行する処理について説明する。図７は、実施例１のストレージシステム１３０が実行するＩ／Ｏ処理の一例を説明するフローチャートである。【０１３４】
ストレージシステム１３０は、サーバモジュール１１０からＩ／Ｏ要求を受信した場合（ステップＳ３０１）、受信したＩ／Ｏ要求が制御用Ｉ／Ｏ要求であるか否かを判定する（ステップＳ３０２）。【０１３５】
具体的には、ヒント情報解析部２７０が、サーバモジュール１１０から送信されたＩ／Ｏ要求を受信し、当該Ｉ／Ｏ要求にヒント情報が含まれているか否かを判定する。Ｉ／Ｏ要求にヒント情報が含まれている場合、ストレージシステム１３０は、受信したＩ／Ｏ要求が制御用Ｉ／Ｏ要求であると判定する。なお、ヒント情報解析部２７０は、スヌーピング等を利用して、サーバモジュール１１０から送信されたＩ／Ｏ要求を監視してもよい。【０１３６】
受信したＩ／Ｏ要求が制御用Ｉ／Ｏ要求であると判定された場合、ヒント情報解析部２７０は、制御用Ｉ／Ｏ要求に含まれるヒント情報を解析する（ステップＳ３０３）。ヒント情報解析部２７０は、ヒント情報の解析結果に基づいて、ストレージ制御部２７５に所定の階層制御処理の実行を指示する。【０１３７】
ストレージ制御部２７５は、ヒント情報解析部２７０からの指示にしたがって、所定の階層制御処理を実行する（ステップＳ３０４）。ストレージ制御部２７５は、階層制御処理が完了した後、制御用Ｉ／Ｏ要求に対する応答をサーバモジュール１１０に送信する。その後、ストレージシステム１３０は処理を終了する。ここで、ストレージ制御部２７５によって実行される階層制御処理の一例について説明する。【０１３８】
ステップＳ３０２において、受信したＩ／Ｏ要求が制御用Ｉ／Ｏ要求でないと判定された場合、ヒント情報解析部２７０は、受信したＩ／Ｏ要求にしたがって、所定のＩ／Ｏ処理を実行する（ステップＳ３０５）。ストレージ制御部２７５は、Ｉ／Ｏ処理が完了した後、Ｉ／Ｏ要求に対する応答をサーバモジュール１１０に送信する。その後、ストレージシステム１３０は処理を終了する。【０１３９】
実施例１の監視情報２３１には、キャッシュメモリシステム１２０に送信されるＩ／Ｏ要求のエントリのみが含まれているが、ストレージシステム１３０に送信されるＩ／Ｏ要求のエントリが含まれてもよい。【０１４０】
例えば、アクセス性能が高く、かつ、容量の小さい不揮発性メモリから構成されるキャッシュメモリシステム１２０、及び、アクセス性能が低く、かつ、容量が大きい不揮発性メモリから構成されるストレージシステム１３０の場合、サーバモジュール１１０は、当該ストレージシステム１３０に対してヒント情報を含むＩ／Ｏ要求を送信できる。この場合、監視情報２３１に前述したようなエントリを登録することができる。【０１４１】
例えば、アプリケーション２００がストレージシステム１３０に格納されるデータのフルスキャン処理を実行するためのＩ／Ｏ要求を発行した場合、連携制御部２３０が、キャッシュメモリシステム１２０にヒント情報として「頻繁なアクセス無し」を含む制御用Ｉ／Ｏを送信する。キャッシュメモリシステム１２０は、当該制御用Ｉ／Ｏ要求を受信した場合、ストレージシステム１３０から読み出されたデータをキャッシュメモリシステム１２０に格納しないように制御する。これによって、キャッシュメモリシステム１２０の記憶領域を有効に活用できる。【０１４２】
実施例１のシステム構成では、サーバ装置１０及びストレージシステム１３０は独立した装置であったが、一つの筐体にサーバ装置１０及びストレージシステム１３０を含むシステム構成であってもよい。【０１４３】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。【０１４４】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。【０１４５】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ等の広範囲のプログラム又はスクリプト言語で実装できる。【０１４６】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。【０１４７】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【図１】
2016051593.tif 000003
【図２】
2016051593.tif 000004
【図３】
2016051593.tif 000005
【図４】
2016051593.tif 000006
【図５】
2016051593.tif 000007
【図６】
2016051593.tif 000008
【図７】
2016051593.tif 000009
【手続補正書】
【提出日】平成29年2月27日(2017.2.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の第１の計算機を含む計算機システムであって、
前記複数の第１の計算機の各々では、アプリケーションが稼働し、
前記複数の第１の計算機の各々は、記憶領域を提供する第２の計算機と接続し、
前記第２の計算機が提供する記憶領域には、前記アプリケーションが使用するデータが格納され、
前記複数の第１の計算機の各々は、第１のプロセッサ、第１のメモリ、一時的にデータを格納するキャッシュ領域が設定されるキャッシュデバイス、及び他の装置と接続する第１のインタフェースを有し、
前記第２の計算機は、第２のプロセッサ、第２のメモリ、及び他の装置と接続するための第２のインタフェースを含むコントローラ、並びに複数の記憶装置を有し、
前記第１のメモリは、第１の計算機を制御するオペレーティングシステムを実現するプログラムを含み、
前記オペレーティングシステムは、
前記キャッシュ領域に格納されるデータを制御するキャッシュドライバと、
転送先の装置の識別情報及び対象のデータにアクセスするためのアドレスを含むＩ／Ｏ要求の解析結果に基づいて、前記計算機システムにおける前記対象のデータの配置制御を指示する制御用Ｉ／Ｏ要求を発行する連携制御部と、を含み、
前記連携制御部は、
前記キャッシュドライバからのＩ／Ｏ要求の発行を検知した場合、前記検知されたＩ／Ｏ要求を解析し、
前記検知されたＩ／Ｏ要求の解析結果に基づいて、前記検知されたＩ／Ｏ要求に、前記対象のデータが前記アプリケーションによってどのように使用されるかを示す情報であるヒント情報が含まれるか否かを判定し、
前記検知されたＩ／Ｏ要求に前記ヒント情報が含まれると判定された場合、前記検知されたＩ／Ｏ要求の解析結果に基づいて、前記検知されたＩ／Ｏ要求から前記制御用Ｉ／Ｏ要求を生成し、
前記検知されたＩ／Ｏ要求の転送先の装置とは異なる装置に前記制御用Ｉ／Ｏ要求を転送することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記連携制御部は、
前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であるか否かを判定するための監視情報と、
前記制御用Ｉ／Ｏ要求の発行対象となるＩ／Ｏ要求から前記制御用Ｉ／Ｏ要求を生成するための変換情報と、を管理し、
前記変換情報は、前記Ｉ／Ｏ要求に含まれる前記ヒント情報を、前記制御用Ｉ／Ｏ要求に設定するヒント情報に変換するための情報を含み、
前記連携制御部は、
前記ヒント情報を含むＩ／Ｏ要求を検知した場合、前記検知されたＩ／Ｏ要求の解析結果に基づいて前記監視情報を参照して、前記検知されたＩ／Ｏ要求が前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であるか否かを判定し、
前記検知されたＩ／Ｏ要求が前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であると判定された場合、前記変換情報に基づいて前記検知されたＩ／Ｏ要求に含まれる前記ヒント情報を変換することによって前記制御用Ｉ／Ｏ要求を生成することを特徴とする計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
前記制御用Ｉ／Ｏ要求は、前記キャッシュデバイス及び前記第２の計算機のいずれか一方に転送され、
前記第２の計算機は、
前記第２の計算機を制御する制御部と、
前記制御用Ｉ／Ｏ要求の受信を監視し、前記制御用Ｉ／Ｏ要求に含まれる前記ヒント情報を解析するヒント情報解析部と、を有し、
前記ヒント情報解析部は、
前記制御用Ｉ／Ｏ要求を検知した場合、前記制御用Ｉ／Ｏ要求に含まれる前記ヒント情報を解析し、
前記ヒント情報の解析結果に基づいて、前記第２の計算機における前記対象のデータの配置を制御するための階層制御処理の実行を前記制御部に指示し、
前記制御部は、前記ヒント情報解析部からの指示にしたがって、前記階層制御処理を実行することを特徴とする計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、及び前記対象のデータに対して近い将来アクセスがあることを示す第１のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記第１のヒント情報を、前記対象のデータに対して頻繁にアクセスがないことを示す第２のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成することを特徴とする計算機システム。
【請求項５】
請求項３に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、前記対象のデータに頻繁なアクセスがあることを示す属性情報、及び前記対象のデータに対してシーケンシャルなアクセスがあることを示す第３のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記第３のヒント情報を、前記対象のデータに対して頻繁にアクセスがないことを示す第４のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成することを特徴とする計算機システム。
【請求項６】
請求項３に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、前記対象のデータに頻繁なアクセスがないことを示す属性情報、及び前記対象のデータに対してシーケンシャルなアクセスがあることを示す第５のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記対象のデータにアクセスするためのアドレスを変換し、
前記第５のヒント情報を、前記対象のデータに対して近い将来アクセスがあることを示す第６のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成することを特徴とする計算機システム。
【請求項７】
複数の第１の計算機、及び前記複数の第１の計算機の各々と接続する第２の計算機を含む計算機システムであって、
前記複数の第１の計算機の各々では、アプリケーションが稼働し、
前記第２の計算機は、前記複数の第１の計算機の各々で稼働するアプリケーションが使用するデータを格納する記憶領域を提供し、
前記複数の第１の計算機の各々は、第１のプロセッサ、第１のメモリ、一時的にデータを格納するキャッシュ領域が設定されるキャッシュデバイス、及び他の装置と接続する第１のインタフェースを有し、
前記第２の計算機は、第２のプロセッサ、第２のメモリ、及び他の装置と接続するための第２のインタフェースを含むコントローラ、並びに複数の記憶装置を有し、
前記第１のメモリは、第１の計算機を制御するオペレーティングシステムを実現するプログラムを含み、
前記オペレーティングシステムは、
前記キャッシュ領域に格納されるデータを制御するキャッシュドライバと、
転送先の装置の識別情報及び対象のデータにアクセスするためのアドレスを含むＩ／Ｏ要求の解析結果に基づいて、前記計算機システムにおける前記対象のデータの配置制御を指示する制御用Ｉ／Ｏ要求を発行する連携制御部と、を含み、
前記連携制御部は、
前記キャッシュドライバからのＩ／Ｏ要求の発行を検知した場合、前記検知されたＩ／Ｏ要求を解析し、
前記検知されたＩ／Ｏ要求の解析結果に基づいて、前記検知されたＩ／Ｏ要求に、前記対象のデータが前記アプリケーションによってどのように使用されるかを示す情報であるヒント情報が含まれるか否かを判定し、
前記検知されたＩ／Ｏ要求に前記ヒント情報が含まれると判定された場合、前記検知されたＩ／Ｏ要求の解析結果に基づいて、前記検知されたＩ／Ｏ要求から前記制御用Ｉ／Ｏ要求を生成し、
前記検知されたＩ／Ｏ要求の転送先の装置とは異なる装置に前記制御用Ｉ／Ｏ要求を転送することを特徴とする計算機システム。
【請求項８】
請求項７に記載の計算機システムであって、
前記連携制御部は、
前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であるか否かを判定するための監視情報と、
前記制御用Ｉ／Ｏ要求の発行対象となるＩ／Ｏ要求から前記制御用Ｉ／Ｏ要求を生成するための変換情報と、を管理し、
前記変換情報は、前記Ｉ／Ｏ要求に含まれる前記ヒント情報を、前記制御用Ｉ／Ｏ要求に設定するヒント情報に変換するための情報を含み、
前記連携制御部は、
前記ヒント情報を含むＩ／Ｏ要求を検知した場合、前記検知されたＩ／Ｏ要求の解析結果に基づいて前記監視情報を参照して、前記検知されたＩ／Ｏ要求が前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であるか否かを判定し、
前記検知されたＩ／Ｏ要求が前記制御用Ｉ／Ｏ要求の発行対象となる前記Ｉ／Ｏ要求であると判定された場合、前記変換情報に基づいて前記検知されたＩ／Ｏ要求に含まれる前記ヒント情報を変換することによって前記制御用Ｉ／Ｏ要求を生成することを特徴とする計算機システム。
【請求項９】
請求項８に記載の計算機システムであって、
前記制御用Ｉ／Ｏ要求は、前記キャッシュデバイス及び前記第２の計算機のいずれか一方に転送され、
前記第２の計算機は、
前記第２の計算機を制御する制御部と、
前記制御用Ｉ／Ｏ要求の受信を監視し、前記制御用Ｉ／Ｏ要求に含まれる前記ヒント情報を解析するヒント情報解析部と、を有し、
前記ヒント情報解析部は、
前記制御用Ｉ／Ｏ要求を検知した場合、前記制御用Ｉ／Ｏ要求に含まれる前記ヒント情報を解析し、
前記ヒント情報の解析結果に基づいて、前記第２の計算機における前記対象のデータの配置を制御するための階層制御処理の実行を前記制御部に指示し、
前記制御部は、前記ヒント情報解析部からの指示にしたがって、前記階層制御処理を実行することを特徴とする計算機システム。
【請求項１０】
請求項９に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、及び前記対象のデータに対して近い将来アクセスがあることを示す第１のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記第１のヒント情報を、前記対象のデータに対して頻繁にアクセスがないことを示す第２のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成し、
前記制御部は、前記階層制御処理の実行指示を受け付けた場合、前記対象のデータが最も性能の低い前記記憶領域に格納されるように、前記対象のデータの配置を変更することを特徴とする計算機システム。
【請求項１１】
請求項９に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、前記対象のデータに頻繁なアクセスがあることを示す属性情報、及び前記対象のデータに対してシーケンシャルなアクセスがあることを示す第３のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記第３のヒント情報を、前記対象のデータに対して頻繁にアクセスがないことを示す第４のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成し、
前記制御部は、前記階層制御処理の実行指示を受け付けた場合、前記対象のデータが最も性能の低い前記記憶領域に格納されるように、前記対象のデータの配置を変更することを特徴とする計算機システム。
【請求項１２】
請求項９に記載の計算機システムであって、
前記連携制御部は、
前記キャッシュデバイスの識別情報、前記対象のデータにアクセスするためのアドレス、前記対象のデータに頻繁なアクセスがないことを示す属性情報、及び前記対象のデータに対してシーケンシャルなアクセスがあることを示す第５のヒント情報を含む前記Ｉ／Ｏ要求を検知し、
前記キャッシュデバイスの識別情報を、前記第２の計算機の識別情報に変換し、
前記対象のデータにアクセスするためのアドレスを変換し、
前記第５のヒント情報を、前記対象のデータに対して近い将来アクセスがあることを示す第６のヒント情報に変換することによって、前記制御用Ｉ／Ｏ要求を生成し、
前記制御部は、前記階層制御処理の実行指示を受け付けた場合、前記対象のデータが最も性能の高い前記記憶領域に格納されるように、前記対象のデータの配置を変更することを特徴とする計算機システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１１６
【補正方法】変更
【補正の内容】
【０１１６】
ＯＳ２２０は、ストレージシステムドライバ２５０に、実行キュー２５１に登録されたＩ／Ｏ要求の実行を指示する。ストレージシステムドライバ２５０は、実行キュー２５１に登録されたＩ／Ｏ要求に対応する実行レジスタ２８１を介して、ストレージシステム１３０にＩ／Ｏ要求の実行を指示する。
【国際調査報告】
2016051593.tif 000010
2016051593.tif 000011