(57)【要約】  ホスト装置は、ＩＯ作業負荷に関連する入出力（ＩＯ）アクセス情報を受信するように構成されたコントローラを含み、前記ＩＯアクセス情報は、一定期間にわたって前記ＩＯ作業負荷に関連する読み取り動作および書き込み動作のうちの少なくとも１つを特定する。前記コントローラは、記憶素子に関連する受信した前記ＩＯアクセス情報に基づいて、前記ＩＯ作業負荷に関連する予測キャッシュアクセス率であって前記ＩＯ作業負荷に関連する予測キャッシュアクセス数を前記ＩＯ動作負荷に関連する読み取り動作の総数および書き込み動作の総数のうちの少なくとも１つに関連付ける予測キャッシュアクセス率を導出するように構成されている。前記コントローラは、前記予測キャッシュアクセス率が閾値キャッシュアクセス率の値に達したとき、前記ＩＯ作業負荷を前記ホスト装置によるキャッシングのＩＯ作業負荷候補として特定するように構成されている。【選択図】図１
2018524737.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置においてコンピュータインフラ内の入出力（Ｉ／Ｏ）作業負荷パターンを特定する方法であって、
前記ホスト装置が、ＩＯ作業負荷に関連する入出力（ＩＯ）アクセス情報を受信するステップであって、前記ＩＯアクセス情報は、一定期間にわたって前記ＩＯ作業負荷に関連する読み取り動作および書き込み動作のうちの少なくとも１つを特定する、ステップと、
前記ホスト装置が、前記ＩＯ作業負荷に関連する受信した前記ＩＯアクセス情報に基づいて、前記ＩＯ作業負荷に関連する予測キャッシュアクセス率を導出するステップであって、前記予測キャッシュアクセス率は、前記ＩＯ作業負荷に関連する予測キャッシュアクセス数を、前記ＩＯ動作負荷に関連する読み取り動作の総数および書き込み動作の総数のうちの少なくとも１つに関連付ける、ステップと、
前記ホスト装置が、前記予測キャッシュアクセス率が閾値キャッシュアクセス率の値に達したとき、前記ＩＯ作業負荷を前記ホスト装置によるキャッシングのＩＯ作業負荷候補として特定するステップと、
を有する方法。
【請求項２】
前記ＩＯ作業負荷に関連する前記予測キャッシュアクセス数は、前記ＩＯ作業負荷に関連する前記読み取り動作の総数と前記ＩＯ作業負荷に関連する固有読み取り動作の総数との差に関係する、請求項１に記載の方法。
【請求項３】
前記ホスト装置が、前記ＩＯ作業負荷候補に関連するキャッシングコマンドを受信するステップと、
前記ホスト装置が、前記キャッシングコマンドの受信に応答して、前記ＩＯ作業負荷候補を前記コンピュータインフラから前記ホスト装置に関連するキャッシュに転送するステップと、
をさらに有する、請求項１に記載の方法。
【請求項４】
前記ホスト装置が、前記閾値キャッシュアクセス率の値として、ユーザが選択した閾値キャッシュアクセス率の値を受信するステップ、
をさらに有する、請求項１に記載の方法。
【請求項５】
前記ホスト装置が、前記予測キャッシュアクセス率に基づいて、前記ＩＯ作業負荷に関連するＩＯアクセス時間の減少を検出するステップと、
前記ホスト装置が、前記ＩＯアクセス時間の減少が閾値ＩＯアクセス時間の値に達したとき、前記ＩＯ作業負荷を前記ホスト装置によるキャッシングのＩＯ作業負荷候補として特定するステップと、
をさらに有する。請求項１に記載の方法。
【請求項６】
前記ホスト装置が、前記閾値ＩＯアクセス時間の値として、ユーザが選択した閾値ＩＯアクセス時間の値を受信するステップ、
をさらに有する、請求項５に記載の方法。
【請求項７】
前記ホスト装置が、前記予測キャッシュアクセス率に基づいて、前記ＩＯ作業負荷に関連する予測される入出力操作毎秒（Input/Output Operations Per Second：ＩＯＰＳ）の増加を導出するステップと、
前記ホスト装置が、前記予測されるＩＯＰＳの増加が閾値ＩＯＰＳの値に達したとき、前記ＩＯ作業負荷を前記ホスト装置によるキャッシングのＩＯ作業負荷候補として特定するステップと、
をさらに有する、請求項１に記載の方法。
【請求項８】
前記ホスト装置が、前記閾値ＩＯＰＳの値として、ユーザが選択した閾値ＩＯＰＳの値を受信するステップ、
をさらに有する、請求項７に記載の方法。
【請求項９】
前記ホスト装置が、前記ホスト装置に関連する前記キャッシュの前記ＩＯ作業負荷に関連する更新ＩＯアクセス情報を受信するステップであって、前記更新ＩＯアクセス情報は、一定期間にわたって前記ＩＯ作業負荷に関連する更新読み取り動作および更新書き込み動作のうちの少なくとも１つを特定する、ステップと、
前記ホスト装置が、前記更新ＩＯアクセス情報に基づいて前記ホスト装置に関連する前記キャッシュのキャッシュサイズを調整するステップと、
を有する、請求項３に記載の方法。
【請求項１０】
前記更新ＩＯアクセス情報に基づいて前記ホスト装置に関連する前記キャッシュの前記キャッシュサイズを調整するステップは、前記キャッシュの前記キャッシュサイズを増加させるステップ、前記キャッシュの前記キャッシュサイズを減少させるステップ、および前記キャッシュを取り外すステップのうちの１つを含む、請求項９に記載の方法。
【請求項１１】
前記ＩＯ作業負荷に関連するＩＯアクセス情報を受信するステップは、前記ホスト装置が、前記ＩＯ作業負荷に関連する各論理ブロック番号の参照カウント値を受信するステップであって、前記参照カウント値は、一定期間にわたって同じ論理ブロック番号上の参照回数を特定する、ステップを含み、
前記ホスト装置が、前記ＩＯ作業負荷に関連する各論理ブロック番号の数量値を検出するステップであって、前記数量値は、同じ参照カウント値を有する一連の論理ブロック番号を特定する、ステップと、
前記ホスト装置が、各論理ブロック番号に対して、前記参照カウント値と前記数量値との積が閾値に達したとき、前記論理ブロック番号に関連する前記ＩＯ作業負荷を前記ホスト装置によるキャッシングのための候補データとして特定するステップと、
をさらに有する、請求項３に記載の方法。
【請求項１２】
メモリおよびプロセッサを備えるコントローラを有し、前記コントローラは、
ＩＯ作業負荷に関連する入出力（ＩＯ）アクセス情報を受信し、前記ＩＯアクセス情報は、一定期間にわたって前記ＩＯ作業負荷に関連する読み取り動作および書き込み動作のうちの少なくとも１つを特定する、
記憶素子に関連する受信した前記ＩＯアクセス情報に基づいて、前記ＩＯ作業負荷に関連する予測キャッシュアクセス率を導出し、前記予測キャッシュアクセス率は、前記ＩＯ作業負荷に関連する予測キャッシュアクセス数を、前記ＩＯ動作負荷に関連する読み取り動作の総数および書き込み動作の総数のうちの少なくとも１つに関連付ける、
前記予測キャッシュアクセス率が閾値キャッシュアクセス率の値に達したとき、前記ＩＯ作業負荷を前記ホスト装置によるキャッシングのＩＯ作業負荷候補として特定する、
ように構成されている、ホスト装置。
【請求項１３】
前記ＩＯ作業負荷に関連する前記予測キャッシュアクセス数は、前記ＩＯ作業負荷に関連する前記読み取り動作の総数と前記ＩＯ作業負荷に関連する固有読み取り動作の総数との差に関係する、請求項１２に記載のホスト装置。
【請求項１４】
前記コントローラは、
前記ＩＯ作業負荷候補に関連するキャッシングコマンドを受信し、
前記キャッシングコマンドの受信に応答して、前記ＩＯ作業負荷候補を前記コンピュータインフラから前記ホスト装置に関連するキャッシュに転送する、
ようにさらに構成されている、請求項１２に記載のホスト装置。
【請求項１５】
前記コントローラは、前記閾値キャッシュアクセス率の値として、ユーザが選択した閾値キャッシュアクセス率の値を受信する、
ようにさらに構成されている、請求項１２に記載のホスト装置。
【請求項１６】
前記コントローラは、
前記予測キャッシュアクセス率に基づいて、前記ＩＯ作業負荷に関連するＩＯアクセス時間の減少を検出し、
前記ＩＯアクセス時間の減少が閾値ＩＯアクセス時間の値に達したとき、前記ＩＯ作業負荷を前記ホスト装置によるキャッシングのＩＯ作業負荷候補として特定する、
ようにさらに構成されている、請求項１２に記載のホスト装置。
【請求項１７】
前記コントローラは、
前記閾値ＩＯアクセス時間の値として、ユーザが選択した閾値ＩＯアクセス時間の値を受信する、
ようにさらに構成されている、請求項１６に記載のホスト装置。
【請求項１８】
前記コントローラは、
前記予測キャッシュアクセス率に基づいて、前記ＩＯ作業負荷に関連する予測される入出力操作毎秒（Input/Output Operations Per Second：ＩＯＰＳ）の増加を導出し、
前記予測されるＩＯＰＳの増加が閾値ＩＯＰＳの値に達したとき、前記ＩＯ作業負荷を前記ホスト装置によるキャッシングのＩＯ作業負荷候補として特定する、
ようにさらに構成されている、請求項１２に記載のホスト装置。
【請求項１９】
前記コントローラは、
前記閾値ＩＯＰＳの値として、ユーザが選択した閾値ＩＯＰＳの値を受信する、
ようにさらに構成されている、請求項１８に記載のホスト装置。
【請求項２０】
前記コントローラは、
前記ホスト装置に関連する前記キャッシュの前記ＩＯ作業負荷に関連する更新ＩＯアクセス情報を受信し、前記更新ＩＯアクセス情報は、一定期間にわたって前記ＩＯ作業負荷に関連する更新読み取り動作および更新書き込み動作のうちの少なくとも１つを特定する、
前記更新ＩＯアクセス情報に基づいて前記ホスト装置に関連する前記キャッシュのキャッシュサイズを調整する、
ようにさらに構成されている、請求項１４に記載のホスト装置。
【請求項２１】
前記コントローラは、前記更新ＩＯアクセス情報に基づいて前記ホスト装置に関連する前記キャッシュの前記キャッシュサイズを調整するとき、前記キャッシュの前記キャッシュサイズを増加させるか、前記キャッシュの前記キャッシュサイズを減少させるか、および前記キャッシュを取り外すかのうちの１つを行うように構成されている、請求項２０に記載のホスト装置。
【請求項２２】
前記ＩＯ作業負荷に関連するＩＯアクセス情報を受信するとき、前記コントローラは、前記ＩＯ作業負荷に関連する各論理ブロック番号の参照カウント値を受信するように構成されており、前記参照カウント値は、一定期間にわたって同じ論理ブロック番号上の参照回数を特定する、
前記コントローラは、
前記ＩＯ作業負荷に関連する各論理ブロック番号の数量値を検出し、前記数量値は、同じ参照カウント値を有する一連の論理ブロック番号を特定する、
各論理ブロック番号に対して、前記参照カウント値と前記数量値との積が閾値に達したとき、前記論理ブロック番号に関連する前記ＩＯ作業負荷を前記ホスト装置によるキャッシングのための候補データとして特定する、
ようにさらに構成されている、請求項１４に記載のホスト装置。
【発明の詳細な説明】
【背景技術】
【０００１】
現代の経済およびビジネスサービスは、通常、コンピュータインフラの複雑で動的で異種の情報技術（ＩＴ）を実行する。例えば、コンピュータインフラは、例えばスイッチやルータなどの通信装置によって相互接続された１つ以上のサーバまたはホスト装置および１つ以上のストレージアレイを含むことがある。サーバは、動作中に１つ以上の仮想マシン（ＶＭ）を実行するように構成されうる。各ＶＭは、通常、１つ以上のアプリケーションまたは作業負荷を実行するように構成されている。
【０００２】
特定のコンピュータインフラの顧客は、例えばホストベースのキャッシングなどのリモート入出力（ＩＯ）のキャッシングを利用して、アプリケーションの性能を向上させるとともにコンピュータインフラをオフロードする。例えば、コンピュータインフラの最下位のストレージ階層にＩＯを書き込む場合、ホスト装置は、ブロックにアクセスするためにコンピュータインフラの下位層に移動しなければならない。これは、レイテンシ（latency）を増加させる可能性がある。
【０００３】
ホストベースのキャッシングは、コストを削減するために、例えばＳＡＮまたは任意のネットワーク接続ストレージのオフロードによってなど、インフラによって実行されるアプリケーションの性能を向上させることができる。通常、従来のＳＡＮは、分散ストレージと異なり、ストレージ容量がなくなる前にコンピュータ容量がなくなる可能性がある。また、ホストベースのキャッシングは、ネットワークインフラをオフロードする可能性もある（例えば、ネットワークを横切るパケットの数が少ないほど、ネットワーク上の圧力／負荷は小さい）。また、ホストベースのキャッシングは、仮想化された環境の密度を高めることもできる。さらに、読み取りおよび書き込み（例えば、ライトスルーおよびライトバック）キャッシュの導入により、顧客は、ネットワーク接続ストレージの場合に変化しうる（例えば、平均して、レイテンシは１０ｍｓであるが、別に変わることもある）インフラにおいてほぼ一貫したレイテンシを達成することができる。
【発明の概要】
【０００４】
従来のリモートＩＯキャッシングには、さまざまな欠点がある。例えば、ホスト装置などのデバイスがローカルキャッシュ内に要求されたデータ項目を見つけることができる場合、ホスト装置は、インフラ内の下位階層のストレージ場所からそのデータ項目を取り出すのではなく、キャッシュからその項目を取り出すことができる。しかし、例えばホストベースのキャッシングなどの従来のリモートＩＯキャッシングでは、システム管理者が、コンピュータインフラ内の作業負荷／アプリケーションの挙動、およびコンピュータインフラの根底にあるコンポーネントとの関係を理解してホスト装置とのキャッシングのためのデータ項目を選択することは難しいことがある。
【０００５】
通常、コンピュータインフラ内のあるキャッシュについて、キャッシュヒットは、キャッシュ内の要求されたデータ項目の可用性（availability）に関係し、キャッシュヒット率は、そのキャッシュに対するキャッシュアクセスの総数に対するキャッシュヒットの割合に関係する。コンピュータインフラからローカル（例えば、ホストベースの）キャッシュに移動するデータ項目を特定する場合、システム管理者は、特定の仮想マシン（例えば、キャッシュ）のＩＯキャッシングパラメータを決定してその性能を向上させるために、その仮想マシンのキャッシュヒット率、キャッシュサイズ、およびＩＯブロックサイズを推測する必要がある。この場合、このような試行錯誤の方法は、システム管理者がコンピュータインフラの作業負荷／アプリケーションの挙動を誤って分類してインフラ内のレイテンシが改善されない原因となる可能性がある。したがって、レイテンシの問題を解決するために、管理者は、必ずしも必要でない追加のストレージデバイスを購入してコンピュータインフラにインストールすることがある。これにより、インフラに関連するコストが不必要に増加する可能性がある。
【０００６】
また、ＩＯキャッシュをうまく利用するためには、上記３つのパラメータ（キャッシュサイズ、ＩＯブロックサイズ、およびキャッシュヒット率）が重要である。管理者の推測ミスがアプリケーションの性能の低下または向上の原因となる可能性があるためである。例えば、システム管理者は、２０％のディスク容量と３２ＫＢのブロックサイズに基づいて、あるキャッシュのＩＯキャッシングパラメータを決定することができる。しかし、このような決定は、多くの場合、アプリケーションの性能に悪影響を及ぼす可能性が最も高いと推測されます。例えば、キャッシュヒット率を過小評価する原因となる推測は、コンピュータインフラ内のリモートＩＯキャッシングの部分最適化をもたらす可能性がある。
【０００７】
従来のリモートＩＯキャッシング分析に比べると、本発明の実施形態は、コンピュータ環境におけるエージェントレスリモートＩＯキャッシングの分析、予測、自動化、および推薦を実行する装置および方法に関する。１つの構成では、追加のストレージデバイスの購入を必要とせずにレイテンシを制限するために、例えばホスト装置などのコンピュータ化された装置が、そのホスト装置によってキャッシングされる候補である、コンピュータインフラ内のＩＯ作業負荷のブロックを特定するように構成されている。例えば、ホスト装置は、例えばキャッシングユーティリティなどによって、アクセスされたコンピュータインフラ内のブロック、繰り返しアクセスされたコンピュータインフラ内のブロック、および当該ホスト装置内のキャッシングから恩恵を受けることがあるＩＯ作業負荷を特定するように構成可能である。また、ホスト装置は、関連する仮想マシンのＩＯキャッシングパラメータを決定してその性能を向上させるために、キャッシングの候補であるＩＯ作業負荷を監視・特定することによって、システム管理者が特定のＩＯ作業負荷のキャッシュヒット率、キャッシュサイズ、およびＩＯブロックサイズを推測する必要性を制限または排除する。
【０００８】
１つの構成では、ホスト装置は、自己のキャッシュを監視して、絶えず変化する作業負荷に対して調整の必要があるかどうかを決定するように構成されている。例えば、ホスト装置は、コンピュータインフラの変化するＩＯ作業負荷を特定し、自己のキャッシュサイズを調整して（例えば、キャッシュサイズを大きくする、キャッシュサイズを小さくする、またはキャッシュを使用不可にする）、確実に自己が適切なサービスレベルを有するように構成されている。
【０００９】
１つの構成では、本発明の実施形態は、エージェントレスリモートＩＯキャッシングを分析し、かつＩＯキャッシングパラメータを予測し推奨する装置および方法に関する。これらのパラメータには、Ｉ／Ｏキャッシングパラメータの挙動分析、ヒストグラム解析、および推奨が含まれうる。１つの構成では、本発明の実施形態は、グラフィカルユーザインタフェース（ＧＵＩ）を介してＩＯキャッシングの分析、予測、および推奨を配信する方法に関する。
【００１０】
１つの構成では、本発明の実施形態は、コンピュータインフラ内の入出力（ＩＯ）作業負荷パターンを特定する方法に関する。この方法は、ホスト装置が、ＩＯ作業負荷に関連する入出力（ＩＯ）アクセス情報を受信するステップであって、前記ＩＯアクセス情報は、一定期間にわたって前記ＩＯ作業負荷に関連する読み取り動作および書き込み動作のうちの少なくとも１つを特定する、ステップを有する。この方法は、前記ホスト装置が、前記ＩＯ作業負荷に関連する受信した前記ＩＯアクセス情報に基づいて、前記ＩＯ作業負荷に関連する予測キャッシュアクセス率を導出するステップであって、前記予測キャッシュアクセス率は、前記ＩＯ作業負荷に関連する予測キャッシュアクセス数を、前記ＩＯ作業負荷に関連する読み取り動作の総数および書き込み動作の総数のうちの少なくとも１つに関連付ける、ステップを含む。この方法は、前記ホスト装置が、前記予測キャッシュアクセス率が閾値キャッシュアクセス率の値に達したとき、前記ＩＯ作業負荷を前記ホスト装置によるキャッシングのＩＯ作業負荷候補として特定するステップを含む。
【００１１】
１つの構成では、本発明の実施形態は、メモリおよびプロセッサを備えるコントローラを有するホスト装置に関する。このコントローラは、ＩＯ作業負荷に関連する入出力（ＩＯ）アクセス情報を受信し、前記ＩＯアクセス情報は、一定期間にわたって前記ＩＯ作業負荷に関連する読み取り動作および書き込み動作のうちの少なくとも１つを特定する、ように構成されている。このコントローラは、前記記憶素子（storage element）に関連する受信した前記ＩＯアクセス情報に基づいて、前記ＩＯ作業負荷に関連する予測キャッシュアクセス率を導出し、前記予測キャッシュアクセス率は、前記ＩＯ作業負荷に関連する予測キャッシュアクセス数を、前記ＩＯ動作負荷に関連する読み取り動作の総数および書き込み動作の総数のうちの少なくとも１つに関連付ける、ように構成されている。このコントローラは、前記予測キャッシュアクセス率が閾値キャッシュアクセス率の値に達したとき、前記ＩＯ作業負荷を前記ホスト装置によるキャッシングのＩＯ作業負荷候補として特定するように構成されている。
【図面の簡単な説明】
【００１２】
上記および他の目的、特徴、および効果は、添付の図面に示したように、本発明の特定の実施形態の以下の説明から明らかになるであろう。添付の図面では、異なる図面を通じて同様の参照文字は同一の部分を示している。図面は、必ずしも一定の縮尺ではなく、むしろ本発明のさまざまな実施形態の原理を説明することに重点が置かれている。
【００１３】
【図１】は、１つの構成に係るコンピュータシステムの概略図である。
【００１４】
【図２】は、１つの構成に係る図１のホスト装置の概略図である。
【００１５】
【図３】は、１つの構成に係るＩＯアクセス情報を示す図である。
【００１６】
【図４Ａ】は、１つの構成に係る、キャッシングのためのＩＯ作業負荷候補の可用性を示すグラフィカルユーザインタフェースを示す図である。
【００１７】
【図４Ｂ】は、１つの構成に係る、ホスト装置によってグラフィカルユーザインタフェースを介して提供されるキャッシングのための一連のＩＯ作業負荷候補を示す図である。
【００１８】
【図５】は、１つの構成に係る、閾値キャッシュアクセスの値および閾値ＩＯアクセス時間の値をユーザが選択するためにホスト装置によって提供されるグラフィカルユーザインタフェースを示す図である。
【００１９】
【図６】は、ＩＯ作業負荷に関連する論理ブロック番号の参照カウント値を特定する参照カウントチャートである。
【００２０】
【図７】は、１つの構成に係る、図６の参照カウントチャートの参照カウント値と各論理ブロック番号の数量値との積を示すヒストグラムを示す図である。
【発明を実施するための形態】
【００２１】
本発明の実施形態は、コンピュータ環境におけるエージェントレスリモートＩＯキャッシングの分析、予測、自動化、および推薦を実行する装置および方法に関する。１つの構成では、追加のストレージデバイスの購入を必要とせずにレイテンシを制限するために、例えばホスト装置などのコンピュータ化された装置が、そのホスト装置によってキャッシュされる候補である、コンピュータインフラ内のＩＯ作業負荷のブロックを特定するように構成されている。ホスト装置は、例えばキャッシングユーティリティなどによって、アクセスされたコンピュータインフラ内のブロック、繰り返しアクセスされたコンピュータインフラ内のブロック、および当該ホスト装置内のキャッシングから恩恵を受けることがあるＩＯ作業負荷を特定するように構成可能である。また、ホスト装置は、関連する仮想マシンのＩＯキャッシングパラメータを決定してその性能を向上させるために、キャッシングの候補であるＩＯ作業負荷を監視・特定することによって、システム管理者が特定のＩＯ作業負荷のキャッシュヒット率、キャッシュサイズ、およびＩＯブロックサイズを推測する必要性を制限または排除する。
【００２２】
例えば、ホスト装置は、コンピュータ環境において、仮想マシン（ＶＭ）内で動作している個々の作業負荷を分析し、例えばシステム管理者などのユーザに、対応するキャッシュヒット率に基づいてキャッシングに最適なＩＯ作業負荷を提案するように構成されている。ホスト装置は、この情報をグラフィカルユーザインタフェースの一部として提供するように構成されている。ホスト装置は、さらに、考慮すべきリード／ライトの割合を獲得するとともに、この分析に基づいて、キャッシュヒット率（つまり、キャッシュアクセス率）のパーセント、キャッシュサイズ、レイテンシ、およびＩＯＰＳの改善を予測／見通すように構成されている。
【００２３】
図１は、ホスト装置２５と電気通信するように配置された少なくとも１つのコンピュータインフラ１１を含むコンピュータシステム１０の構成を示している。コンピュータインフラ１１は、さまざまな方法で構成可能であるが、１つの構成では、コンピュータ環境リソース１２を含む。例えば、コンピュータ環境リソース１２は、例えばコンピュータ化された装置などの１つ以上のサーバ装置１４、例えばスイッチやルータなどの１つ以上のネットワーク通信装置１６、および例えばディスクドライブなどの１つ以上のストレージデバイス１８を含む。
【００２４】
各サーバ装置１４は、例えばメモリおよびプロセッサなどのコントローラまたはコンピュータハードウェア２０を含みうる。例えば、サーバ装置１４−１は、コントローラ２０−１を含み、サーバ装置１４−Ｎは、コントローラ２０−Ｎを含む。各コントローラ２０は、１つ以上の仮想マシン２２を実行するように構成可能であり、各仮想マシン２２は、１つ以上のアプリケーションまたは作業負荷２３を実行するようにさらに構成されている。例えば、コントローラ２０−１は、第１の仮想マシン２２−１および第２の仮想マシン２２−２を実行可能であり、これらはそれぞれ順に１つ以上のＩＯ作業負荷２３を実行するように構成されている。各コンピュータハードウェア要素２０、ストレージデバイス要素１８、ネットワーク通信装置要素１６、およびアプリケーション２３は、コンピュータインフラ１１の属性に関係している。
【００２５】
１つの構成では、ホスト装置２５は、例えばメモリおよびプロセッサなどのコントローラ２６を有するコンピュータ化された装置として構成されている。ホスト装置２５は、例えば有線または無線ネットワークなどを介してコンピュータインフラ１１と、ディスプレイ５１との両方と電気通信するように配置されている。
【００２６】
１つの構成では、ホスト装置２５は、コンピュータインフラリソース１２のオブジェクトに関連する関係をモデル化して導出するように構成されている。このようなモデル化および導出は、インフラ１０の属性が経時変化するにもかかわらず、システム管理者に多層インフラリソース１２の階層に対する実質的に包括的なビューを提供するとともに、管理者がインフラ１０のコンバージドビューモデルを取得できるようにする。
【００２７】
使用中に、ホスト装置２５は、キャッシングのためにコンピュータインフラ１１内の作業負荷入出力（ＩＯ）パターンを特定し、キャッシングを機能的に改善するために、例えばホストベースのキャッシュ構成など、キャッシュ構成の提案をするように構成されている。例えば、後述するように、仮想マシン２２内で実行されている個々のＩＯ作業負荷２３の分析に基づいて、ホスト装置２５は、ホスト装置２５によるキャッシングに最適な、または候補の、ＩＯ作業負荷を検出することができる。また、後述のように、ホスト装置２５は、例えば図４Ａに示すグラフィカルユーザインタフェース４９の一部など、キャッシングするＩＯ作業負荷の可用性に関する情報と、例えば図４Ｂに示すグラフィカルユーザインタフェース５０の一部など、キャッシングに最適なＩＯ作業負荷とを提供することができる。ホスト装置２５は、関連する仮想マシンのＩＯキャッシングパラメータを決定してその性能を向上させるために、キャッシングの候補であるＩＯ作業負荷を監視・特定することによって、システム管理者が特定のＩＯ作業負荷のキャッシュヒット率、キャッシュサイズ、およびＩＯブロックサイズを推測する必要性を制限または排除する。
【００２８】
以下に、ホストベースのキャッシングの分析の例を示す。本発明の実施形態は、ホストベースのキャッシングに限定されず、例えば、ストレージデバイス１８やストレージエリアネットワーク（ＳＡＮ）内など、コンピュータインフラ内の任意のＩＯキャッシングに適用可能であることに留意されたい。
【００２９】
動作中、図２をさらに参照すると、ホスト装置２５は、入出力（ＩＯ）作業負荷２３に関連するＩＯアクセス情報２８を受信するように構成されている。ＩＯアクセス情報２８は、一定期間にわたってＩＯ作業負荷２３に関連するＩＯ動作（例えば、読み取り動作および書き込み動作のうちの少なくとも１つ）２９を特定する。例えば、図１および図２に示すように、ホスト装置２５は、コンピュータインフラ１１に関連する仮想マシン２２のＩＯ作業負荷２３に関連するＩＯアクセス情報２８を取り出すキャッシングユーティリティ２７で構成されている。キャッシングユーティリティ２７は、さまざまな方法で構成可能であり、１つの構成では、ＶＭｗａｒｅ（カルフォルニア州パロアルト）社製のｖｓｃｓｉＳｔａｔｓとして構成されている。１つの構成では、キャッシングユーティリティ２７は、仮想マシン２２のＩＯ作業負荷２３に関連するスモールコンピュータシステムインターフェース（ＳＣＳＩ）ＩＯコマンド情報またはＩＯアクセス情報２８（例えば、仮想ディスク性能統計）の記録に使用可能なトレースオプションで構成されている。
【００３０】
１つの構成では、キャッシングユーティリティ２７は、仮想マシン２２のＩＯ作業負荷２３に関連するさまざまな種類のＩＯアクセス情報２８を記録するようにホスト装置２５を構成する。例えば、図３を参照すると、ホスト装置２５は、コマンドタイプ情報３１、シリアル番号情報３３、ＩＯブロックサイズ情報３５、分散・集積（scatter/gather）要素数情報３７、論理ブロック番号情報３９、タイムスタンプ情報４１、およびコマンドレイテンシ情報４３を取り出すように構成可能である。１つの構成では、ＩＯアクセス情報２８は、顧客機密データを含まず、むしろ、ターゲット仮想ディスクに対するＩＯ作業負荷２３のＩＯ特性を記述する情報を含む。
【００３１】
図２に戻って、ホスト装置２５は、ＩＯ作業負荷２３に関連する受信ＩＯアクセス情報２８に基づいて、ＩＯ作業負荷２３に関連する予測キャッシュアクセスまたはヒット率３０を導出するように構成されている。後述するように、予測キャッシュアクセス率３０は、ＩＯ作業負荷２３に関連する予測キャッシュアクセス数３２を、ＩＯ作業負荷２３に関連する読み取り動作の総数および書き込み動作の総数３４のうちの少なくとも１つと関連付けることができる。
【００３２】
例えば、ＩＯ作業負荷２３に関連する予測キャッシュアクセス率３０を決定するために、ホスト装置２５は、まず、仮想マシン２２のＩＯ作業負荷２３に関連する読み取り動作３４の総数を決定するように構成されている。これは、特定の仮想マシン２２に関連する受信ＩＯアクセス情報２８の各論理ブロック番号３９に対する参照またはポインタの回数を参照カウントするホスト装置２５によって実行可能である。ホスト装置２５は、特定の（例えば、限られた）時間ウィンドウ内の各論理ブロック番号３９上の読み取り回数を参照カウントするために、ＭＲＵ（Most Recently Used）アルゴリズムまたはキャッシングユーティリティ２７のバージョンを利用することができる。
【００３３】
１つの構成では、受信ＩＯアクセス情報２８の読み取りを参照カウントすることは、コンピュータ環境リソース１２の特定の態様に関していくつかの仮定を行う。例えば、参照カウンティングは、コンピュータ環境リソース１２の物理的ストレージがＩＯ作業負荷２３のボトルネックになること、特に一定期間（例えば、２４時間、７日間など）にわたってゲストＯＳ／アプリケーションのＩＯ文字を要約するためにリード／ライト比および参照カウンティングが適切にサンプリングされること、キャッシングユーティリティ２７によって提供されるトレース中に実行される時間ウィンドウとほぼ等しい時間ウィンドウの間に読み取りキャッシングがリフレッシュされることを前提とする。
【００３４】
図３に示すＩＯアクセス情報２８の例について参照カウンティングを行う場合、ホスト装置２５は、各論理ブロック番号（ＬＢＮ）３９に対して以下の参照カウントを決定する。
ＬＢＮ              参照カウント
１０７５４９４４        ２
１０７５５０７２        １
１０７５５２００        ３
１０７５６０９６        １
１０７５７９４２        １
ＩＯアクセス情報２８および上記の参照カウンティング結果に基づいて、ホスト装置２８は、ＩＯ作業負荷２３に対する読み取り動作の総数３４が８（つまり、仮想マシン２２の全ての論理ブロック番号３９に対する参照カウントの合計）であると決定する。また、ＩＯアクセス情報２８および上記の参照カウンティング結果に基づいて、ホスト装置２８は、書き込み動作の総数で割った読み取り動作の総数（つまり、８リード／１ライト）に基づいて、ＩＯ作業負荷２３のリード／ライト比を８と決定することができる。
【００３５】
図２に戻って、ホスト装置２５は、次に、ＩＯ作業負荷２３に関連する予測キャッシュアクセス数３２を決定するように構成されている。これは、上記で決定された、ＩＯ作業負荷２３に対する読み取り動作の総数３４に基づく。例えば、ＩＯ作業負荷２３に関連する予測キャッシュアクセス数３２またはヒット数は、ＩＯ作業負荷２３に関連する読み取り動作の総数３４とＩＯ作業負荷に関連する固有読み取り動作の総数４２との差に関係する（つまり、予測キャッシュアクセス数＝［読み取り総数］−［固有読み取り総数］）。
【００３６】
ＩＯアクセス情報２８および上記の参照カウンティング結果に基づいて、ホスト装置２８は、ＩＯ作業負荷２３に関連する固有読み取り動作の総数４２が５（つまり、仮想マシン２２の全ての論理ブロック番号３９に対する固有読み取り動作の総数４２）であると決定することができる。この値が決定されると、ホスト装置２５は、ＩＯ作業負荷２３に対する読み取り動作の総数３４（つまり、８）と、ＩＯ作業負荷２３に関連する固有読み取り動作の総数４２（つまり、５）との差を、ＩＯ作業負荷２３に関連する予測キャッシュアクセス数３２として次のように決定することができる。
予測キャッシュアクセス数：８−５＝３
【００３７】
図２に戻って、ホスト装置２５は、次に、ＩＯ作業負荷２３に関連する予測キャッシュアクセス数３２をＩＯ動作負荷２３に関連する読み取り動作の総数および書き込み動作の総数３４のうちの少なくとも１つに関連付ける予測キャッシュアクセス率３０を決定するように構成されている。１つの構成では、予測キャッシュアクセス率３０は、予測キャッシュアクセス数３２と固有読み取り動作の総数４２の比（つまり、予測キャッシュヒット率＝［予測キャッシュアクセス数］／［読み取り総数］×１００％）に関する。例えば、上記で決定された値に基づいて、ホスト装置２５は、ＩＯ作業負荷２３に関連する予測キャッシュアクセス率３０を次のように決定する。
予測キャッシュアクセス率：（３／８）×１００％＝３７．５％
【００３８】
引き続き図２を参照すると、予測キャッシュアクセス率３０に基づいて、ホスト装置２５は、予測キャッシュアクセス率３０が閾値キャッシュアクセス率の値３６に達したとき、ＩＯ作業負荷２３をキャッシング３８のＩＯ作業負荷候補として特定するように構成されている。例えば、ホスト装置２５が３０％という閾値キャッシュアクセス率の値３６で構成されている場合を想定する。この場合、３７．５％という予測キャッシュアクセス率３０は３０％という閾値キャッシュアクセス率の値３６に達する（例えば、満たすまたは超える）ため、ホスト装置２５は、仮想マシン２２に関連するＩＯ作業負荷２３をホスト装置２５によるキャッシングのためのＩＯ作業負荷候補３８として特定する。
【００３９】
ホスト装置２５は、１つの構成では、図５を参照して、閾値キャッシュアクセス率の値３６で事前に構成可能であるものの、ホスト装置２５は、ユーザが選択した閾値キャッシュアクセス率の値６０を閾値キャッシュアクセス率の値３６として受信するように構成されている。例えば、ホスト装置２５は、ユーザが、デフォルトの閾値キャッシュアクセス率の値３６（図示）を選択したりまたはユーザが選択した閾値キャッシュアクセス率の値６０を入力したりできるようにするコントロール機能７２を有するグラフィカルユーザインタフェース７０を提供することができる。ユーザが選択した閾値キャッシュアクセス率の値６０を使用することにより、例えばシステム管理者などのユーザは、動作しきい値を調整して、ホスト装置２５によるキャッシングのためにユーザに提供されるＩＯ作業負荷候補３８の数を増減することができる。
【００４０】
１つの構成では、図１に示すように、ホスト装置２５がＩＯ作業負荷２３をキャッシングのためのＩＯ作業負荷候補３８として特定した結果として、ホスト装置２５は、グラフィカルユーザインタフェース（ＧＵＩ）５０の一部としてＩＯ作業負荷候補３８をディスプレイ５１に表示するように構成されている。例えば、図４Ｂをさらに参照すると、ホスト装置２５は、ＧＵＩ５０の一部として、与えられた閾値キャッシュアクセス率の値３６を満たすまたは超える予測キャッシュアクセス率３０を有するＩＯ作業負荷候補３８−１、３８−２のリストを提供する。また、グラフィカルユーザインタフェース５０は、システム管理者によるレビューのために、各ＩＯ作業負荷候補３８−１、３８−２に対する仮想マシン２２および予測キャッシュアクセス率３０のリストを提供することもできる。
【００４１】
キャッシング（例えば、ホストベースのキャッシング）のためのＩＯ作業負荷候補３８を特定することにより、ホスト装置２５は、コンピュータインフラ１１におけるコンピュータ環境リソース１２の動作を改善することが可能となる。例えば、ホストベースのキャッシングから恩恵を受けることができるＩＯ作業負荷候補３８を特定することにより、システム管理者は、ＩＯ作業負荷２３をコンピュータインフラ１１からホストベースのキャッシュに移動させて、システム１０のレイテンシを減らすことができる。さらに、ＩＯ作業負荷候補３８を特定することにより、ホスト装置２５は、特定の仮想マシンのＩＯキャッシングパラメータを決定してその性能を向上させるために、その仮想マシンのキャッシュヒット率、キャッシュサイズ、およびＩＯブロックサイズを推測する（場合によっては誤って分類する）必要性を最小化または排除する。
【００４２】
上記のように、ホスト装置２５は、ＩＯ作業負荷２３を、例えばホストベースのキャッシングなどのキャッシングのための候補として特定するように構成されている。１つの構成では、システム１０のレイテンシを改善するために、ホスト装置２５も、ＩＯ作業負荷候補３８のキャッシングを実行するように構成されている。
【００４３】
例えば、図２を参照すると、ホスト装置２５は、キャッシングコマンド４４の受信に応答して、ＩＯ作業負荷候補３８をコンピュータ環境リソース１２の仮想マシン２２からホストキャッシュ４６に転送することができる。１つの構成では、図４Ｂをさらに参照すると、ホスト装置２５は、グラフィカルユーザインタフェース５０を介してＩＯ作業負荷候補３８に関連するユーザ生成キャッシングコマンド４４を受け付けることができる。図示のように、システム管理者は、選択されたＩ／Ｏ作業負荷候補３８に対するグラフィカルユーザインタフェース５０の実行機能８０またはスケジュール機能８２を選択して、選択されたＩ／Ｏ作業負荷候補３８に対してホスト装置２５にキャッシングコマンド４４を提供することができる。あるいは、ホスト装置２５は、例えばホスト装置２５がキャッシング３８のＩＯ作業負荷候補としてＩＯ作業負荷２３を特定したことに応答して、自動的にキャッシングコマンド４４を受け付けるように構成可能である。キャッシングコマンド４４は、ユーザが生成したコマンドでも自動コマンドでもよい。
【００４４】
次に、キャッシングコマンド４４の受信に応答して、図２を参照して、ホスト装置２５は、ＩＯ作業負荷候補３８をコンピュータインフラ１１からホスト装置２５に関連するキャッシュ４６に転送するように構成されている。特定のＩＯ作業負荷２３をコンピュータ環境リソースからホストベースのキャッシュ４６に転送することにより、ホスト装置２５は、システム１０のレイテンシを短縮することによってシステム性能を向上させる。
【００４５】
上記のように、予測キャッシュアクセス率３０は、仮想マシン２２に関連するＩＯ作業負荷２３がホスト装置２５によるキャッシングに適切なＩＯ作業負荷候補３８であるかどうかを決定するために、ホスト装置２５によって利用される。しかし、ホスト装置２５は、それがキャッシングに適切な候補３８であるかどうかを、例えば予測されるＩＯＰＳの増加５６またはＩＯアクセス時間短縮５２と呼ばれるレイテンシの改善などに基づいて決定するために、ＩＯ作業負荷２３に関連する他の要因も調べるように構成されている。
【００４６】
１つの構成では、図２を参照すると、ホスト装置は、ＩＯ作業負荷２３に関連する予測される入出力操作毎秒（ＩＯＰＳ）の改善または予測されるＩＯＰＳの増加５６に基づいて、ＩＯ作業負荷２３をキャッシングのためのＩＯ作業負荷候補３８として特定するように構成されている。
【００４７】
図２を参照すると、ホスト装置２５は、予測キャッシュアクセス率３０に基づいて、および、コンピュータ環境リソース１２に関するいくつかの仮定に基づいて、ＩＯ作業負荷２３に関連する予測されるＩＯＰＳの増加５６を導出するように構成されている。例えば、物理的ストレージレイヤが常に作業負荷のボトルネックであり、また、ホスト装置２５が複数の参照を有する全てのブロックを最適化のためのキャッシングとして利用すると仮定する。さらに、仮想ディスクを特徴付けるＩＯは、ホストベースのキャッシング適用後も一貫しており、ホストベースのキャッシングは、ヒット時のデータアクセスに対してゼロペナルティを有し、固有読み取りのＩＯレイテンシは、ホストベースのキャッシング適用後も変わらず、予測読み取りキャッシュヒットは、「保存された」帯域幅であり、作業負荷の改善に完全に使用されると仮定する。これらの仮定に基づいて、ホスト装置２５は、以下の関係によって提供されるようにＩＯ改善を検出するように構成されている。
【００４８】
例えば、予測されるＩＯＰＳの改善５６（つまり、予測ＩＯＰＳ改善）と予測キャッシュヒット率３０との関係は、以下のように提供可能である。
予測されるＩＯＰＳの改善＝予測キャッシュアクセス数／（１−（読み取り率×予測キャッシュアクセス率））
ここで、
予測キャッシュアクセス数＝読み取り総数−固有読み取り総数
予測キャッシュヒット率＝予測キャッシュアクセス数／（読み取り総数×１００％）
読み取り率＝読み取り総数／ＩＯ総数
【００４９】
例えば、図３に示すＩＯアクセス情報２８から決定される値に基づいて、ホスト装置２５は、以下のように、特定の仮想マシン２２に対してＩＯ作業負荷２３に関連する予測されるＩＯＰＳの改善５６を決定する。
予測キャッシュアクセス率＝３／８×１００％＝３７．５％
ＩＯ総数：９
読み取り総数：８
読み取り率：８／９＝０．８９
予測キャッシュアクセス数：８−５＝３
予測されるＩＯＰＳの改善＝３／（１−（０．８９×０．３７５））＝４．５
【００５０】
次に、引き続き図２を参照すると、予測ＩＯＰＳ増加５６が閾値ＩＯＰＳ値５８に達したとき、ホスト装置２５は、ＩＯ作業負荷２３をホスト装置によるキャッシングのためのＩＯ作業負荷候補３８として特定するように構成されている。例えば、ホスト装置２５が２００という閾値ＩＯＰＳ値５８で構成されている場合を想定する。この場合、上記の例では、４．５ミリ秒という予測ＩＯＰＳ増加５６は２００という閾値ＩＯＰＳ値５８に達する（例えば、満たすまたは超える）ことがないため、ホスト装置２５は、仮想マシン２２に関連するＩＯ作業負荷２３をホスト装置２５によるキャッシングのためのＩＯ作業負荷候補３８として特定することを控える。
【００５１】
予測ＩＯＰＳ増加５６が閾値ＩＯＰＳ値５８に達する（例えば、満たすまたは超える）場合、ホスト装置２５は、例えば図４Ｂに示すようにＧＵＩ５０の一部としてＩＯ作業負荷候補３８を表示することによってＩＯ作業負荷２３をキャッシングのためのＩＯ作業負荷候補３８として特定するように構成されている。例えば、ホスト装置２５は、与えられた閾値ＩＯＰＳ値５８を満たすまたは超える予測ＩＯＰＳ改善または増加５６を有するＩＯ作業負荷候補３８−１、３８−２のリストを提供することができる。また、グラフィカルユーザインタフェース５０は、システム管理者によるレビューのために、各ＩＯ作業負荷候補３８−１、３８−２に対する仮想マシン２２および予測キャッシュアクセス率３０のリストを提供することもできる。
【００５２】
ホスト装置２５は、１つの構成では、図５を参照して、閾値ＩＯＰＳ値５８で事前に構成可能であるものの、ホスト装置２５は、ユーザが選択した閾値キャッシュアクセス率の値６２を閾値ＩＯＰＳ値５８として受信するように構成されている。例えば、ホスト装置２５は、ユーザが、デフォルトの閾値ＩＯＰＳ値７４（図示）を選択したりまたはユーザが選択した閾値ＩＯＰＳ値６２を入力したりできるようにするコントロール機能７４を有するグラフィカルユーザインタフェース７０を提供することができる。ユーザが選択した閾値キャッシュアクセス率の値６２を使用することにより、例えばシステム管理者などのユーザは、閾値の感度を調整して、ホスト装置２５によるキャッシングのためにユーザに提供されるＩＯ作業負荷候補３８の数を増減することができる。
【００５３】
上記のように、ホスト装置２５は、ＩＯ作業負荷２３がキャッシングに適切な候補であるかどうかを、ＩＯ作業負荷２３に関連するＩＯアクセス時間短縮５２と呼ばれるレイテンシの改善に基づいて決定するように構成することもできる。例えば、ＩＯアクセス時間短縮５２は、以下のように提供可能である。
ＩＯアクセス時間短縮（ｍｓ）＝以前の全体的なＩＯレイテンシ−予測される全体的なＩＯレイテンシ、ここで
以前の全体的なＩＯレイテンシ＝（以前の読み取りレイテンシ×読み取り率）＋（以前の書き込みレイテンシ×書き込み率）
予測される全体的なＩＯレイテンシ（ｍｓ）＝以前の読み取りレイテンシ×（（以前のＩＯＰＳ）／（以前のＩＯＰＳ＋予測されるＩＯＰＳの改善）
予測されるＩＯＰＳの改善＝予測キャッシュアクセス数／（１−（読み取り率×予測キャッシュアクセス率））
【００５４】
１つの構成では、ＩＯ作業負荷２３に関連するＩＯアクセス時間短縮５２を決定するために、図３に示すＩＯアクセス情報２８から決定された値に基づいて、ホスト装置２５は、まず、ＩＯ作業負荷２３に関連する以前の全体的なＩＯレイテンシを決定することができる。すなわち、
ＩＯ総数：９
読み取り総数：８
書き込み総数：１
読み取り率：８／９
書き込み率：１／９
以前の読み取りレイテンシ＝２ｍｓ、以前の書き込みレイテンシ＝１０ｍｓと仮定すると、ホスト装置２５は、以前の全体的なＩＯレイテンシを以下のように決定する。
以前の全体的なＩＯレイテンシ＝（２×８／９）＋（１０×１／９）＝２．８９ｍｓ
【００５５】
次に、予測される全体的なＩＯレイテンシを決定するために、ホスト装置２５は、まず、ＩＯ作業負荷２３に関連する予測されるＩＯＰＳの改善を以下のように決定する。
予測されるＩＯＰＳの改善＝予測キャッシュアクセス数／（１−（読み取り率×予測キャッシュアクセス率））＝３／（１−（０．８９×０．３７５））＝４．５
【００５６】
次に、ホスト装置２５は、予測される全体的なＩＯレイテンシを決定する。以前の読み取りレイテンシ＝２ｍｓ、以前のＩＯＰＳ＝１０と仮定すると、ホスト装置２５は、予測される全体的なＩＯレイテンシを次のように決定する。
以前の読み取りレイテンシ×（以前のＩＯＰＳ／以前のＩＯＰＳ＋予測されるＩＯＰＳの改善）＝２×（１０／（１０＋４．５））＝１．３８ｍｓ
【００５７】
次に、ホスト装置２５は、ＩＯアクセス時間短縮を、以前の全体的なＩＯレイテンシ−予測される全体的なＩＯレイテンシ＝２．８９ｍｓ−１．３８ｍｓ＝１．６３ｍｓと決定する。
【００５８】
次に、引き続き図２を参照すると、ＩＯアクセス時間短縮５２が閾値ＩＯアクセス時間の値５４に達したとき、ホスト装置は、ＩＯ作業負荷２３をホスト装置２５によるキャッシングのためのＩＯ作業負荷候補３８として特定するように構成されている。例えば、ホスト装置２５が１．５０ｍｓという閾値ＩＯアクセス時間の値５４で構成されている場合を想定する。この場合、ＩＯアクセス時間短縮５２は１．５０ｍｓという閾値ＩＯアクセス時間の値５４に達する（例えば、満たすまたは超える）ため、ホスト装置２５は、仮想マシン２２に関連するＩＯ作業負荷２３をＩＯホスト装置２５によるキャッシングのためのＩＯ作業負荷候補３８として特定する。
【００５９】
ＩＯアクセス時間短縮５２が閾値ＩＯアクセス時間の値５４に達する（例えば、満たすまたは下回る）場合、ホスト装置２５は、例えば図４Ｂに示すようにＧＵＩ５０の一部としてＩＯ作業負荷候補３８を表示することによってＩＯ作業負荷２３をキャッシングのためのＩＯ作業負荷候補３８として特定するように構成されている。例えば、ホスト装置２５は、与えられた閾値ＩＯアクセス時間の値５を満たすまたは下回るＩＯアクセス時間短縮５２を有するＩＯ作業負荷候補３８−１、３８−２のリストを提供することができる。また、グラフィカルユーザインタフェース５０は、システム管理者によるレビューのために、各ＩＯ作業負荷候補３８−１、３８−２に対する仮想マシン２２のリストを提供することもできる。
【００６０】
ホスト装置２５は、１つの構成では、閾値ＩＯアクセス時間の値５４で事前に構成可能であるものの、ホスト装置２５は、ユーザが選択した閾値ＩＯアクセス時間の値７６を閾値ＩＯアクセス時間の値５４として受信するように構成されている。例えば、ホスト装置２５は、ユーザが、デフォルトの閾値ＩＯアクセス時間の値（図示）を選択したりまたはユーザが選択した閾値ＩＯアクセス時間の値７６を入力したりできるようにするコントロール機能７５を有するグラフィカルユーザインタフェース７０を提供することができる。ユーザが選択した閾値ＩＯアクセス時間の値７６を使用することにより、例えばシステム管理者などのユーザは、閾値の感度を調整して、ホスト装置２５によるキャッシングのためにユーザに提供されるＩＯ作業負荷候補３８の数を増減することができる。
【００６１】
図２に戻って、１つの構成では、ホスト装置２５は、キャッシングを機能的に改善するために、例えばホストベースのキャッシュ構成などのキャッシュ構成を提案するようにさらに構成されている。例えば、ホスト装置２５は、ホスト装置のキャッシュ４６を監視して、絶えず変化するＩＯ作業負荷２３に対して調整する必要があるかどうかを決定するように構成されている。
【００６２】
１つの構成では、ホスト装置２５は、ホスト装置のキャッシュ４６のＩＯ作業負荷２３に関連する更新ＩＯアクセス情報２８’を受信する。ここで、更新ＩＯアクセス情報２８は、一定期間にわたってＩＯ作業負荷２３に関連する更新ＩＯ動作（つまり、読み取り動作および／または書き込み動作）２９’のうちの少なくとも１つを特定する。例えば、更新ＩＯアクセス情報２８’は、アクセスされた論理ブロック番号だけでなく、ホスト装置のキャッシュ４６に関連する読み取りおよび／または書き込みの数の増減を示すことができる。
【００６３】
更新ＩＯアクセス情報２８’に基づいて、ホスト装置２５は、ホストベースのキャッシュ４６のキャッシュサイズを調整することができる。例えば、ホストベースのキャッシュ４６に関連するＩＯ作業負荷２３の変化を特定することによって、ホスト装置２５は、キャッシュサイズ＝複数の参照を有する論理ブロックの数×ブロックサイズという関係に基づいて、必要とされるキャッシュサイズの変化を決定することができる。ＩＯ作業負荷の変化に応じて、ホスト装置２５は、キャッシュサイズを増加させるか、キャッシュサイズを減少させるか、またはキャッシュ４６の機能を無効にして、ホスト装置のキャッシュ４６が適切なサービスレベルを有するようにすることができる。
【００６４】
上記のように、ＩＯ作業負荷２３に関連する受信ＩＯアクセス情報２８に基づいて、ホスト装置２５は、参照カウンティングを用いてＩＯ作業負荷２３に関連する予測キャッシュアクセス率３０または予測キャッシュヒット率を導出するように構成されている。１つの構成では、ホスト装置２５は、例えば図７に示すようなヒストグラム１００の一部として参照カウンティングの結果を提供して、システム管理者がＩＯ作業負荷２３をキャッシングのためのＩＯ作業負荷候補３８として特定することができるように、また、システム管理者にキャッシング方式をカスタマイズする能力および最適化を実行するより柔軟な方法を提供するように構成されている。
【００６５】
動作中、図６を参照すると、ホスト装置２５は、ＩＯアクセス情報２８の一部として、ＩＯ作業負荷２３に関連する各論理ブロック番号３９の参照カウント値１０２を受信するように構成されている。参照カウント値１０２は、同じ論理ブロック番号３９上の参照回数を特定する。次に、ホスト装置２５は、ＩＯ作業負荷に関連する各論理ブロック番号の数量値１０４を検出するように構成されている。この数量値１０４は、同じ参照カウント値を有する多くの参照カウンタを特定する。例えば、図６を参照すると、入力１０６は、トレース時間ウィンドウ中に１００回参照された論理ブロック番号３９が５５個あることを示している。
【００６６】
次に、各論理ブロック番号３９に対して、ホスト装置２５は、参照カウント値１０２と数量値１０４との積が閾値１０８に達したとき、論理ブロック番号３９に関連するＩＯ作業負荷２３をホスト装置２５によるキャッシングのための候補データとして特定するように構成されている。
【００６７】
例えば、ホスト装置２５は、図７に示すように、参照カウント値１０２と数量値１０４との積をヒストグラムチャート１００として提供することができる。１つの構成では、閾値１０８は、ヒストグラムチャートによって提供される各ヒストグラム要素の面積として構成されている。図示のように、ヒストグラム要素１２０は、図６の入力１１０に対する参照カウント値１０２と数量値１０４との積を示し、ヒストグラム要素１２２は、図６の入力１１１に対する参照カウント値１０２と数量値１０４との積を示している。また、ヒストグラム要素１２４は、図６の入力１０６に対する参照カウント値１０２と数量値１０４との積を示し、ヒストグラム要素１２６は、図６の入力１１２に対する参照カウント値１０２と数量値１０４との積を示している。ヒストグラムチャート１００によって示されるように、参照カウント１００、１０１に対するそれぞれのヒストグラム要素１２４、１２６は、参照カウント１０１、１０２に対するそれぞれのヒストグラム要素１２０、１２２よりも大きな面積を有する。したがって、参照カウント１００、１０１は、システム管理者に、キャッシュ候補と考えられるべき最も重要なブロックおよびＩＯ作業負荷を特定する。したがって、システム管理者は、キャッシングリソースが制限されているときに、ヒストグラム要素１２４、１２６に関連するブロックをキャッシュにとって価値があるものとして特定することができる。
【００６８】
また、ヒストグラムデータを利用して、より小さいキャッシュサイズを使用することによって大きな利益をなお得ることができると判断することができる。システム管理者は、例えば、推奨キャッシュサイズの１／４の場合、５０％の高速化（ＩＯＰの増加）をなお実現することができると判断することができる。
【００６９】
以上特に本発明のさまざまな実施形態を示し説明してきたが、当業者であれば、添付の特許請求の範囲によって定義された本発明の精神および範囲から逸脱することなく、形式および詳細のさまざまな変更を行うことができることを理解するであろう。
【００７０】
上記のように、ホスト装置２５は、予測キャッシュアクセス率３０、予測ＩＯＰＳ増加５６、またはＩＯアクセス時間短縮を調べて、仮想マシン２２に関連するＩＯ作業負荷２３がキャッシングに適切なＩＯ作業負荷候補３８であるかどうかを判断するように構成されている。１つの構成では、ホスト装置２５は、読み取り率も見直して、仮想マシン２２に関連するＩＯ作業負荷２３が適切なＩＯ作業負荷候補３８であるかどうかを決定するように構成されている。ホスト装置２５は、読み取り率を読み取り率の閾値（プリセットまたはユーザ調整可能）と比較して、ＩＯ作業負荷２３がキャッシングの候補であるかどうかを検出することができる。
【００７１】
ホスト装置２５は、１つの構成では、閾値ＩＯアクセス時間値５４で事前に構成可能であるものの、ホスト装置２５は、ユーザが選択した閾値ＩＯアクセス時間値７６を閾値ＩＯアクセス時間値５４として受信するように構成されている。例えば、ホスト装置２５は、ユーザが、デフォルトの閾値ＩＯアクセス時間値（図示）を選択したりまたはユーザが選択した閾値ＩＯアクセス時間値７６を入力したりできるようにするコントロール機能７５を有するグラフィカルユーザインタフェース７０を提供することができる。
【００７２】
上記のように、ＩＯアクセス情報２８に基づいて、ホスト装置２５は、キャッシングのためにコンピュータインフラ１１内の作業負荷入出力（ＩＯ）パターンを特定するように構成されている。ホスト装置２５は、このような作業負荷パターンをほぼ連続的に特定するように構成されていることに留意されたい。例えば、ホスト装置２５は、ＩＯアクセス情報２８をコンピュータインフラ１１からのストリームとして受信することができ、また、変化するＩＯ作業負荷２３および変化するＩＯ作業負荷キャッシング候補を時間とともに特定することができる。
【図１】
2018524737.tif 000003
【図２】
2018524737.tif 000004
【図３】
2018524737.tif 000005
【図４Ａ】
2018524737.tif 000006
【図４Ｂ】
2018524737.tif 000007
【図５】
2018524737.tif 000008
【図６】
2018524737.tif 000009
【図７】
2018524737.tif 000010
【国際調査報告】
2018524737.tif 000011