(57)【要約】【解決手段】本願の実施形態は、仮想ディスク入出力（Ｉ／Ｏ）ポートをスケジューリングするための方法、仮想ディスクＩ／Ｏポートをスケジューリングするためのデバイス、および、仮想ディスクＩ／Ｏポートをスケジューリングするためのコンピュータプログラム製品に関する。仮想ディスクＩ／Ｏポートをスケジューリングするための方法が提供されている。方法は、物理マシン内の対応するセットの仮想ディスクＩ／Ｏポートに関連付けられている１セットの読み出し−書き込み帯域幅クォータに基づいて、対応するセットの仮想ディスクＩ／Ｏポートに対して１セットのサービス品質レーティングを割り当て、読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、仮想ディスクＩ／Ｏポートを決定し、仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当て、物理マシン上の仮想ディスクＩ／Ｏポートをスケジューリングすること、を備える。【選択図】図１
2016521417.tif 000002
【特許請求の範囲】
【請求項１】
仮想ディスク入出力（Ｉ／Ｏ）ポートをスケジューリングするための方法であって、
対応するセットの仮想ディスクＩ／Ｏポートに対して、物理マシン内の前記対応するセットの仮想ディスクＩ／Ｏポートに関連付けられている１セットの読み出し−書き込み帯域幅クォータに基づいて、１セットのサービス品質レーティングを割り当て、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートを決定し、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当て、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクＩ／Ｏポートをスケジューリングすること、
を備える、方法。
【請求項２】
請求項１に記載の方法であって、割り当てられたサービス品質レーティングは、各仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅クォータと比例的に関係する、方法。
【請求項３】
請求項１に記載の方法であって、前の時間区間内の前記読み出し−書き込み要求によって実際に生じたすべてのデータ帯域幅の合計は、前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる前記データ帯域幅の前記合計予測値として機能する、方法。
【請求項４】
請求項１に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、データ帯域幅の前記合計予測値を、異なる仮想ディスクＩ／Ｏポートに、前記異なる仮想ディスクＩ／Ｏポートに関連する前記サービス品質レーティングの比に従って割り当てることを含む、方法。
【請求項５】
請求項１に記載の方法であって、前記読み出し−書き込み帯域幅制限を割り当てることは、
読み出し要求および書き込み要求に従って、それぞれ、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てることを含む、方法。
【請求項６】
請求項５に記載の方法であって、対応するＩ／Ｏポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限の比は、仮想ディスクから読み出されるデータの量および仮想ディスクに書き込まれるデータの量の比に対応する、方法。
【請求項７】
請求項１に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
各仮想ディスクＩ／Ｏポートにトークンコンテナバケットを割り当てることを含み、
各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、前記仮想ディスクＩ／Ｏポートのスケジューリングを制御するために用いられる仮想ディスクＩ／Ｏポートに割り当てられた前記読み出し−書き込み帯域幅制限のサイズに対応する、方法。
【請求項８】
請求項７に記載の方法であって、各トークンコンテナの前記容量は、前記対応する仮想ディスクＩ／Ｏポートの前記サービス品質レーティングに比例する、方法。
【請求項９】
請求項７に記載の方法であって、前記異なる仮想ディスクＩ／Ｏポートに割り当てられた前記トークンコンテナバケットは、同数のトークンコンテナを含む、方法。
【請求項１０】
請求項７に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
異なる時間区間内の読み出し−書き込み要求に基づいて、各仮想ディスクＩ／Ｏポートに対応する前記トークンコンテナバケット内のトークンコンテナの分配をリアルタイムで調整することを含む、方法。
【請求項１１】
請求項１０に記載の方法であって、各仮想ディスクＩ／Ｏポートに対応する前記トークンコンテナバケットのリアルタイムの容量は、前記対応するトークンコンテナバケットのクォータ容量以下である、方法。
【請求項１２】
請求項１１に記載の方法であって、前記物理マシン上の前記仮想ディスクＩ／Ｏポートをスケジューリングすることは、
異なる仮想ディスクＩ／Ｏポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供することを含む、方法。
【請求項１３】
請求項１に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
仮想ディスクＩ／Ｏポート数の変更が前記物理マシンで発生した場合に、仮想ディスクＩ／Ｏポート数の前記変更が起きた後に、仮想ディスクＩ／Ｏポートのデータ帯域幅の前記合計予測値に基づいて、読み出し−書き込み帯域幅制限を再割り当てすることを含む、方法。
【請求項１４】
請求項１に記載の方法であって、前記物理マシン上の前記仮想ディスクＩ／Ｏポートをスケジューリングすることの前に、前記読み出し−書き込み要求と前記仮想ディスクＩ／Ｏポートに対する要求との対応関係に基づいて、重み付き要求キューを生成して、前記重み付き要求キューから時系列の順に前記異なる読み出し−書き込み要求にアクセスすることを備える、方法。
【請求項１５】
仮想ディスク入出力（Ｉ／Ｏ）ポートをスケジューリングするためのデバイスであって、
少なくとも１つのプロセッサであって、
対応するセットの仮想ディスクＩ／Ｏポートに対して、物理マシン内の前記対応するセットの仮想ディスクＩ／Ｏポートに関連付けられている１セットの読み出し−書き込み帯域幅クォータに基づいて、１セットのサービス品質レーティングを割り当て、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートを決定し、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当て、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクＩ／Ｏポートをスケジューリングするよう構成されたている、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するよう構成されているメモリと、
を備える、デバイス。
【請求項１６】
請求項１５に記載のデバイスであって、前記読み出し−書き込み帯域幅制限を割り当てることは、
読み出し要求および書き込み要求に従って、それぞれ、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てることを含む、デバイス。
【請求項１７】
請求項１６に記載のデバイスであって、対応するＩ／Ｏポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限の比は、仮想ディスクから読み出されるデータの量および仮想ディスクに書き込まれるデータの量の比に対応する、デバイス。
【請求項１８】
請求項１５に記載のデバイスであって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
各仮想ディスクＩ／Ｏポートにトークンコンテナバケットを割り当てることを含み、
各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、前記仮想ディスクＩ／Ｏポートのスケジューリングを制御するために用いられる仮想ディスクＩ／Ｏポートに割り当てられた前記読み出し−書き込み帯域幅制限のサイズに対応する、デバイス。
【請求項１９】
請求項１８に記載のデバイスであって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
異なる時間区間内の読み出し−書き込み要求に基づいて、各仮想ディスクＩ／Ｏポートに対応する前記トークンコンテナバケット内のトークンコンテナの分配をリアルタイムで調整することを含む、デバイス。
【請求項２０】
請求項１９に記載のデバイスであって、前記物理マシン上の前記仮想ディスクＩ／Ｏポートをスケジューリングすることは、
異なる仮想ディスクＩ／Ｏポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供することを含む、デバイス。
【請求項２１】
請求項１５に記載のデバイスであって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
仮想ディスクＩ／Ｏポート数の変更が前記物理マシンで発生した場合に、仮想ディスクＩ／Ｏポート数の前記変更が起きた後に、仮想ディスクＩ／Ｏポートのデータ帯域幅の前記合計予測値に基づいて、読み出し−書き込み帯域幅制限を再割り当てすることを含む、デバイス。
【請求項２２】
仮想ディスク入出力（Ｉ／Ｏ）ポートをスケジューリングするためのコンピュータプログラム製品であって、有形で持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
対応するセットの仮想ディスクＩ／Ｏポートに対して、物理マシン内の前記対応するセットの仮想ディスクＩ／Ｏポートに関連付けられている１セットの読み出し−書き込み帯域幅クォータに基づいて、１セットのサービス品質レーティングを割り当てるためのコンピュータ命令と、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートを決定するためのコンピュータ命令と、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当てるためのコンピュータ命令と、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクＩ／Ｏポートをスケジューリングするためのコンピュータ命令と、
を備える、コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
他の出願の相互参照
本願は、すべての目的のために参照により本明細書に組み込まれる、２０１３年４月１８日出願の発明の名称を「Ａ  ＶＩＲＴＵＡＬ  ＤＩＳＫ  ＩＯ  ＰＯＲＴ  ＳＣＨＥＤＵＬＩＮＧ  ＭＥＴＨＯＤ  ＡＮＤ  Ａ  ＳＣＨＥＤＵＬＩＮＧ  ＤＥＶＩＣＥ  ＴＨＥＲＥＦＯＲ」とする中国特許出願第２０１３１０１３５８５３．１号に基づく優先権を主張する。
【０００２】
本願は、仮想ディスクの入出力ポートをスケジューリングするための方法およびデバイスに関する。
【背景技術】
【０００３】
「クラウドコンピューティング」がさらに発展するにつれ、様々なクラウドプラットフォームが、「クラウドサービス」に対するユーザの需要を満たすために導入されてきた。クラウドプラットフォームは、仮想化技術を用いて、中央処理装置（ＣＰＵ）、メモリ、ハードディスク、および、その他のハードウェアリソースを共有または占有する。一例として、クラウドプラットフォームにおいて、物理マシンが、異なる対応するサービスランクを持つ仮想マシンを有する。各仮想マシンは、複数の仮想ディスクを有しており、各仮想ディスクは、読み書き入出力（Ｉ／Ｏ）ポート（すなわち、仮想ディスクＩ／Ｏポート）を有する。通例、異なるサービスランクを有する仮想マシンが物理マシンで起動される理由は２つある。１）多様なユーザの要件を満たすため、および、２）物理マシンのハードウェアリソース利用を高めるため、である。クラウドプラットフォームにおいて、データ読み書き要求の実際の処理は、Ｉ／Ｏ読み出し、書き込み、および、共有の制限された公正競争（競合）モデル（ｆａｉｒ  ｃｏｍｐｅｔｉｔｉｏｎ  ｍｏｄｅｌ）ベースの技術（すなわち、先着順の方法）を含む。しかしながら、異なるランクを持つ仮想マシンにおいて、制限されたＩ／Ｏ帯域幅に対する公正競争読み書きモデルは、コストとベネフィットの観点で幾分不公平でありうる。例えば、ユーザは、より高いサービスランクを持つサービスを運用するために、より高い価格を支払いうる。しかしながら、Ｉ／Ｏ処理の動作は仮想マシンにわたって同じであるため、ユーザはより多くを支払っても、より高いＩ／Ｏ速度の利益を受けることがない。さらに、異なるタイプのビジネスに由来するアプリケーションは、異なるＩ／Ｏ帯域幅要件を有するので、クラウドプラットフォームは、リアルタイムのＩ／Ｏ帯域幅リソース予測に基づいてＩ／Ｏスケジューリングをすることが好ましい。例えば、ウェブベースのアプリケーションは、通例、高スループット、低遅延のＩ／Ｏ帯域幅サービスが提供されることを期待する。しかし、一部のログ記録サービスは、しばしば、低スループット、高遅延のＩ／Ｏ帯域幅サービスでも十分に機能する。
【０００４】
既存のクラウドプラットフォームのほとんどは、単一の仮想ディスクのＩ／Ｏ読み書きの複数の仮想マシンを共有しており、仮想ディスクは、通例、物理マシンの物理ディスク上に位置する。しかしながら、クラウドプラットフォームにおいて、仮想マシンによって用いられる仮想ディスクは、必ずしも、仮想マシンが位置する物理マシンのディスク上に位置する必要はない。その代わり、仮想マシンは、物理マシンのクラスタ全体にわたって分散されうる。仮想マシンの分散される性質により、仮想ディスクのＩ／Ｏ動作の制御は、ローカル物理マシンの物理ディスクに、または、ローカル物理マシンのオペレーティングシステムコアに、容易には追加できない。
【図面の簡単な説明】
【０００５】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【０００６】
ここで説明する図面は、本願の理解を深めるよう意図されており、本願の一部を形成する。本願の実施形態およびそれらの記載は、本願を説明するよう意図されており、本願の不適切な限定となるものではない。以下の図面が含まれる。
【０００７】
【図１】仮想ディスクＩ／Ｏポートをスケジューリングするための処理の一実施形態を示すフローチャート。
【０００８】
【図２】重み付けされたキューの一実施形態を示す図。
【０００９】
【図３】仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当てるための処理の一実施形態を示すフローチャート。
【００１０】
【図４】仮想ディスクＩ／Ｏポートをスケジューリングするための処理の別の実施形態を示すフローチャート。
【００１１】
【図５】仮想ディスクＩ／Ｏポートに割り当てられたトークンコンテナバケットの一実施形態を示す図。
【００１２】
【図６】仮想ディスクＩ／Ｏポートをスケジューリングするための処理のさらに別の実施形態を示すフローチャート。
【００１３】
【図７】仮想ディスクＩ／Ｏポートをスケジューリングするためのデバイスの一実施形態を示す構造図。
【００１４】
【図８】クラウドプラットフォーム配備の一実施形態を示す構造図。
【００１５】
【図９】書き込み要求を処理する時の帯域幅サンプリング統計の一例を示す図。
【００１６】
【図１０】書き込み要求の従来の処理時の帯域幅サンプリング統計を示す図。
【００１７】
【図１１】読み出し要求を処理する時の帯域幅サンプリング統計の一例を示す図。
【００１８】
【図１２】読み出し要求の従来の処理時の帯域幅サンプリング統計を示す図。
【００１９】
【図１３】仮想ディスクＩ／Ｏポートをスケジューリングするためのコンピュータシステムの一実施形態を示す機能図。
【発明を実施するための形態】
【００２０】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および／または、プロセッサ（プロセッサに接続されたメモリに格納および／またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ）を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、１または複数のデバイス、回路、および／または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【００２１】
以下では、本発明の原理を示す図面を参照しつつ、本発明の１または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術要素については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【００２２】
一般的に、コンピュータ装置は、１または複数のプロセッサまたは中央処理装置（ＣＰＵ）と、入力／出力インターフェースと、ネットワークインターフェースと、メモリとを備えている。
【００２３】
メモリは、コンピュータ読み取り可能な媒体内の非永続的なメモリ、ランダムアクセスメモリ（ＲＡＭ）、ならびに／もしくは、リードオンリーメモリ（ＲＯＭ）またはフラッシュメモリ（フラッシュＲＡＭ）などの不揮発性メモリ、および、その他の形態を含みうる。メモリは、コンピュータ読み取り可能な媒体の一例である。
【００２４】
コンピュータ読み取り可能な媒体は、永続的、非永続的、着脱可能、および、着脱不可能な媒体を含み、任意の方法または技術によって情報を格納できる。情報は、コンピュータ読み取り可能なコマンド、データ構造、プログラムモジュール、または、その他のデータを含みうる。コンピュータ記憶媒体の例は、相変化メモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、その他のタイプのランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、電気消去可能プログラム可能リードオンリーメモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、または、その他のメモリ技術、読み出し専用のコンパクトディスクリードオンリーメモリ（ＣＤーＲＯＭ）、デジタル多機能光学ディスク（ＤＶＤ）、または、その他の光学メモリ、カセットタイプの磁気テープ、磁気テープ、および、磁気ディスクストレージ、または、その他の磁気ストレージ装置を含むが、これらに限定されない。他の非伝達媒体（ｎｏｎ−ｔｒａｎｓｍｉｔｔｉｎｇ  ｍｅｄｉｕｍ）が、コンピュータ装置によってアクセス可能な情報を格納するために代わりに用いられてもよい。本明細書で規定されているように、コンピュータ読み取り可能な媒体は、変調データ信号および搬送波など、一時的なコンピュータ読み取り可能媒体（一時的媒体）を含まない。
【００２５】
仮想ディスクＩ／Ｏポートをスケジューリングするための方法およびデバイスは、以下を含む。物理マシン内の各仮想ディスクＩ／Ｏの読み出し−書き込み帯域幅クォータに基づいて、異なるサービス品質レーティングを各仮想ディスクＩ／Ｏポートに割り当てること、データ帯域幅の合計予測値と、現在の時間区間内のすべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートに対応するサービス品質レーティングとに基づいて、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートに、適切な読み出し−書き込み帯域幅制限を割り当てること、ならびに、これらの読み出し−書き込み帯域幅制限と、読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅制限とに基づいて、物理マシン上の異なる仮想ディスクＩ／Ｏポートをスケジューリングすること。
【００２６】
仮想ディスクＩ／Ｏポートとは、仮想マシンにアクセスするために用いられるＩ／Ｏポートのことである。仮想ディスクＩ／Ｏポートは、仮想ポートに対応し、物理インターフェースには対応しない。
【００２７】
物理デバイスとは、実際のハードウェアコンポーネントを含む実際のサーバデバイスのことである。
【００２８】
読み出し−書き込み要求とは、仮想ディスクＩ／Ｏポートへの読み出し−書き込み要求のことである。
【００２９】
読み出し−書き込み帯域幅制限とは、物理デバイスが利用できる総ディスクＩ／Ｏ帯域幅の最大限度のことである。
【００３０】
図１は、仮想ディスクＩ／Ｏポートをスケジューリングするための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理１００は、図８のクラウドプラットフォーム８００の仮想マシン８１００においてソフトウェアによって実施される。
【００３１】
操作１１０では、異なるサービス品質レーティングが、物理マシンの各仮想Ｉ／Ｏポートのそれぞれの読み出し−書き込み帯域幅クォータに基づいて、各仮想ディスクＩ／Ｏポートに割り当てられる。
【００３２】
いくつかの実施形態において、サービス品質レーティングは、仮想ディスクＩ／Ｏポートの異なる読み出し−書き込み帯域幅クォータを区別するために用いられる。例えば、サポートされている読み出し−書き込み帯域幅が比較的大きい場合には、より高いサービス品質レーティングが、対応する仮想ディスクＩ／Ｏポートに割り当てられる。サポートされている読み出し−書き込み帯域幅が比較的小さい別の例では、より低いサービス品質レーティングが、対応する仮想ディスクＩ／Ｏポートに割り当てられる。いくつかの実施形態において、重みが、サービス品質レーティングを表すために用いられる。
【００３３】
操作１２０では、クラウドプラットフォームは、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートを決定し、データ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートに対応するサービス品質レーティングとに基づいて、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートに、適切な読み出し−書き込み帯域幅制限を割り当てる。例えば、１ｍｓの時間区間内で、クラウドプラットフォームは、最初に、物理マシンについてすべての読み出し−書き込み要求によって用いられる合計データ帯域幅を予測し、次いで、仮想マシンの条件に基づいて、各仮想マシンが利用できる読み出し−書き込み帯域幅を決定する。
【００３４】
実際の実行の過程において、仮想ディスクＩ／Ｏポートにアクセスする読み出し−書き込み要求は、比較的ランダムである。換言すると、複数の仮想ディスクが、クラウドプラットフォーム内に分散されているが、時間区間内に、すべての仮想Ｉ／Ｏポートが読み出し−書き込み要求を受信しているわけではない。いくつかの実施形態において、時間区間の長さは、任意に設定される。したがって、どれだけの読み出し−書き込み要求が現在の時間区間にあるのか、そして、これらの読み出し−書き込み要求がデータの読み出しおよび書き込みにどれだけの総帯域幅を用いるのか、を正確に計算することは困難である。一態様として、いくつかの実施形態では、仮想ディスクＩ／Ｏポートの効果的なスケジューリングを可能にするために、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅に対して予備評価を実行して、データ帯域幅の合計予測値を取得する。以前の時間区間内のすべての読み出し−書き込み要求のために実際に用いられた合計データ帯域幅が、現在の時間区間内の総データ帯域幅を予測するためのガイドとして比較的大きい価値を持つので、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値として直接的に機能しうる。いくつかの実施形態において、合計帯域幅は、動的に調整された値である。最初、合計帯域幅の値は未知である。したがって、初期値が、任意に割り当てられる。次に、フィードバックを用いて、平衡に達するまで合計帯域幅の値を調整する。いくつかの実施形態において、合計帯域幅は、トラフィックのように、動的に調整された値であることに注意されたい。条件が異なると、固定値ではなく、異なる合計帯域幅値がもたらされる。データ帯域幅の合計予測値は、単一の固定した数値ではなく、異なる時間区間において連続的に調整される。同時に、読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートは、異なる時間区間において完全に同じであるわけではない。いくつかの時間区間には、より多くの読み出し−書き込み要求が存在し、いくつかの時間区間には、より少ない読み出し−書き込み要求が存在する。したがって、実際の仮想ディスクＩ／Ｏポートをスケジューリングするための処理において、読み出し−書き込み要求の仮想ディスクＩ／Ｏポートおよびそれらに対応するサービス品質レーティングが現在の時間区間内にあると判定される限りは、読み出し−書き込み要求の仮想ディスクＩ／Ｏポートおよびそれらに対応するサービス品質レーティングを有していれば十分である。
【００３５】
操作１２０における、読み出し−書き込み帯域幅制限の割り当てへの関与は、読み出し−書き込み要求を受信した仮想ディスクＩ／Ｏポートに対してのみ生じる。読み出し−書き込み要求を受信していないその他の仮想ディスクＩ／Ｏポートに対しては、読み出し−書き込み帯域幅制限の割り当てへの関与は生じない。図２は、重み付けされたキューの一実施形態を示す図である。例えば、サービス品質レーティングが重みで表現され、物理マシン上のＮ個の仮想ディスクＩ／Ｏポートの重み付きキューがＷＦＱ＝｛Ｗ１，Ｗ２，・・・，Ｗｎ｝である場合、重み付きキューの形態は、図２に示すようになる。各行は、時系列の仮想ディスクＩ／Ｏポートの読み出し−書き込み要求に関係する。重み付きキューの最初の行は、第１の仮想ディスクＩ／Ｏポートに関連し、重み付きキューの５番目の行は、第５の仮想ディスクＩ／Ｏポートに関連する。或る時間区間内に、読み出し−書き込み要求を持つ仮想ディスクのリアルタイム重み付きキューは、ＯＷ＝｛ｏｗ１，ｏｗ２，・・・，ｏｗｎ｝である。リアルタイム重み付きキューは、時間区間内に読み出し−書き込み要求を持つ仮想ディスクＩ／Ｏポートの重み付きキューを表す。したがって、リアルタイム重み付きキューは、単に、重み付きキューＷＦＱのサブセットである。重み付きキューＷＦＱのこのサブセットは、時間によって異なる。データ１、データ２などは、それぞれの読み出し−書き込み要求のバイト数を表し、行は、読み出し−書き込み要求シーケンスを表し、ＷＦＱは、物理マシン上の各仮想マシンの読み出し−書き込み要求の順序を表す。換言すると、クラウドプラットフォームは、リアルタイム重み付きキューに基づいて、現在の時間区間に読み出し−書き込み要求を有する仮想ディスクＩ／Ｏポートと、読み出し−書き込み要求を有する仮想ディスクＩ／Ｏポートに対応するサービス品質レーティングとを決定する。
【００３６】
重みが、仮想ディスクＩ／Ｏポートのサービス品質レーティングを表すために用いられる場合、重み付きキュー（ＷＦＱ）からわかるように、すべての仮想ディスクＩ／Ｏポートのクォータ重みの総重み（Ｗｓ−ｔｏｔａｌまたはＷｓ−ｔ）と各仮想ディスクＩ／Ｏポートの重み（Ｗｉ）との関係は、Ｗｓ−ｔ＝ΣＷｉであり、リアルタイム重み付きキュー（ＯＷ）からわかるように、現在の時間区間におけるリアルタイム重み付け（Ｗｏ−ｔ）の合計と読み出し−書き込み要求を持つ仮想ディスクＩ／Ｏポートの重みＯＷｉとの関係は、Ｗｏ−ｔ＝ΣＯＷｉである。
【００３７】
いくつかの実施形態において、データ帯域幅の合計予測値と、仮想ディスクＩ／Ｏポートに割り当てられた異なるサービス品質レーティングとに基づいて、適切な読み出し−書き込み帯域幅制限を異なる仮想ディスクＩ／Ｏポートに割り当てる時、異なる仮想ディスクＩ／Ｏポートに割り当てられた読み出し−書き込み帯域幅制限を取得するために、仮想ディスクＩ／Ｏポートのサービス品質レーティングの比に従って、データ帯域幅の合計予測値を各仮想ディスクＩ／Ｏポートに割り当てることが可能である。例えば、物理マシンが、４つの仮想ディスク、Ａ、Ｂ、Ｃ、および、Ｄを持つとする。４つの仮想ディスクの４つの仮想ディスクＩ／Ｏポートのサービス品質レーティングが、それぞれ、１、１、４、および、４であるとする。２つの仮想ディスクＩ／ＯポートＡおよびＣだけが、読み出し−書き込み要求を有する。同時に、現在の時間区間内のすべての読み出し−書き込み要求の読み出し−書き込み帯域幅の合計予測値は、前の時間区間に基づいて、１００Ｍである。Ｍは、Ｍｂｐｓに対応する。この場合、４つの仮想ディスクＩ／Ｏポートが存在するが、２つの仮想ディスクＩ／Ｏポートだけが、対応する読み出し−書き込み要求を有する。したがって、読み出し−書き込み要求を有する２つの仮想ディスクＩ／Ｏポートだけが、読み出し−書き込み帯域幅の合計予測値の割り当てに関与し、以下のように、２つの仮想ディスクＩ／Ｏポートそれぞれの読み出し−書き込み帯域幅制限が取得される。１００＊１／５＝２０Ｍ、および、１００＊４／５＝８０Ｍ。
【００３８】
図３は、仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当てるための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理３００は、図１の工程１２０の一実施例であり、以下の操作を含む。
【００３９】
操作３１０では、クラウドプラットフォームは、前の時間区間内のすべての読み出し−書き込み要求のために実際に利用されたすべてのデータ帯域幅の合計を、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値と見なす。
【００４０】
操作３２０では、クラウドプラットフォームは、適切な読み出し−書き込み帯域幅制限を割り当てるために、総帯域幅の各仮想ディスクＩ／Ｏポートのサービス品質レーティングの比に基づいて、データ帯域幅の合計予測値を各仮想ディスクＩ／Ｏポートに割り当てる。
【００４１】
いくつかの実施形態において、実際の応用中に、特定の仮想ディスクＩ／Ｏポートに対する書き込みデータおよび読み出しデータが、データ量について等しい場合、読み出し要求および書き込み要求のための帯域幅値を別個に設定する必要はない。例えば、サービス品質レーティングが１である仮想ディスクＩ／Ｏポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限が共に２０Ｍである場合、サービス品質レーティングが４である仮想ディスクＩ／Ｏポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限は共に８０Ｍである。例えば、セキュリティ上の問題が存在する場合など、読み出しデータの複数倍の書き込みデータがある場合、操作３２０または１２０のように、異なる読み出し−書き込み帯域幅制限が、異なる仮想ディスクＩ／Ｏポートに割り当てられる時に、読み出し帯域幅および書き込み帯域幅の割り当てが、それぞれ、読み出し要求および書き込み要求に基づいて別個に実施される。クラウドプラットフォーム上でのデータの有用性を保証するために、１つのデータが３回書き込まれるが、１つのデータの読み出しは、３つのコピーのいずれかから起こりうるので、読み出し帯域幅および書き込み帯域幅の割り当ては、読み出し要求および書き込み要求とは異なる。一例として、読み出し−書き込み帯域幅の割り当てが、それぞれ、読み出し要求および書き込み要求に基づいて別個に実施され、単一の仮想ディスクに書き込まれるデータの量と、単一の仮想ディスクから読み出されるデータの量との間の比が倍数因子である場合、仮想ディスクＩ／Ｏポート読み出し動作に割り当てられる帯域幅と、書き込み動作に割り当てられる帯域幅との間の比は、倍数因子に対応する。例えば、書き込みデータが読み出しデータの３倍であり、サービス品質レーティングが１である仮想ディスクに割り当てられた読み出し帯域幅制限が２０Ｍである場合、書き込みデータは読み出しデータの３倍であるので、読み出し帯域幅制限および書き込み帯域幅制限は、別個に設定される。さらに、読み出し帯域幅制限は、書き込み帯域幅制限の３分の１に設定される。換言すると、読み出し帯域幅制限は２０Ｍであり、書き込み帯域幅制限は約６．６Ｍである。
【００４２】
いくつかの実施形態において、処理１００が最初に実行される時、初期ランダム値が、現在の時間区間内のすべての読み出し−書き込み要求によって要求されたデータ帯域幅の合計予測値として機能する。異なる時間区間における処理１００の実行中、データ帯域幅のこの合計プリセット値は、データ帯域幅のこの合計プリセット値と設定値との間の差を有効範囲内に収めるように絶えず調整される。一例として、用いられるデータ帯域幅の合計予測値に基づいてランダム値の読み出し要求を調整するために、特定の時間区間が終わった後に、この時間区間内のすべての読み出し要求によって実際に生成された読み出し帯域幅がカウントされ、実際の読み出し帯域幅統計結果が取得される。実際の読み出し帯域幅統計結果は、ランダム値と比較される。実際の読み出し帯域幅統計結果のランダム値に対する比が相対的に小さいすなわち１に近い場合、その比の２つの値が相対的に近いことを意味する。データがデータ接続を介して送信される時間が必要なので、実際にカウントされた読み出し帯域幅統計値は、通例、このランダム値以下である。このランダム値は、実際の帯域幅値と比べて小さめである場合もある。したがって、いくつかの実施形態において、特定の割合（読み出し帯域幅統計結果の１０％など）が、ランダム値のベースから始めて各時間区間に加算される。上述のように、合計値は任意の初期値を用いて決定されるので、初期値は、フィードバックおよび初期値の差に基づいて調整される。差が閾値よりも大きい場合、初期値は、その差が許容可能な値に納まるまで調整される。比が比較的大きく、特定の範囲内にある場合、このランダム値が、実際の帯域幅値と比べて大きめでありうることを意味する。したがって、特定の割合（読み出し帯域幅統計結果の１０％など）が、ランダム値のベースから始めて各時間区間から減算される。上記の処理を通して、初期ランダム値および特定の時間区間内の帯域幅統計値は、徐々に妥当な範囲内に維持され、処理の始めに与えられた初期ランダム値は、データ帯域幅の合計予測値として機能し、それにより、絶えず修正される。データ帯域幅の合計予測値の修正のための計算は、以下の通りである。
【００４３】
（１）設定ランダム値が第１の閾値よりも小さい場合、ランダム値調整のサイズは、以下のように大きくなる。
【００４４】
Ｒｉ＋１＝Ｒｉ＋Ｓｉ／Ｍ、ここで、Ｒｉは、ｉ番目の時間区間に対応する読み出し−書き込み帯域幅の合計予測値を表しており、ランダム値である。Ｓｉは、ｉ番目の時間区間内に実際の読み出し−書き込み要求によって用いられた読み出し−書き込み帯域幅統計値に関連する。Ｍは、整数に対応する。Ｒｉ＋１は、（ｉ＋１）番目の時間区間に対応する読み出し−書き込み帯域幅の合計予測値に関する。統計帯域幅値に関連するＳｉは、調整が起きるごとに、帯域幅が実際の帯域幅値に基づいて調整されることを意味する。調整のステップサイズ（刻み幅）は、毎回異なってよく、非線形である。したがって、初期値が比較的小さい場合、妥当な値に到達するために、調整のステップサイズは、増加する必要がある。Ｍは固定値であり、経験的に１０に設定される。
【００４５】
（２）設定値が第２の閾値よりも大きい場合、調整のステップサイズは、以下のように小さくなる。
【００４６】
Ｒｉ＋１＝Ｒｉ−Ｓｉ／Ｍ、ここで、Ｒｉは、ｉ番目の時間区間に対応する読み出し−書き込み帯域幅の合計予測値を表しており、ランダム値である。Ｓｉは、ｉ番目の時間区間内に実際の読み出し−書き込み要求によって用いられた読み出し−書き込み帯域幅統計値に関連する。Ｍは、整数に対応する。Ｒｉ＋１は、（ｉ＋１）番目の時間区間に対応する読み出し−書き込み帯域幅の合計予測値に関する。
【００４７】
操作１３０では、クラウドプラットフォームは、現在の時間区間内に各読み出し−書き込み要求によって用いられる実際の帯域幅と、読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅制限とに基づいて、物理マシン上の異なる仮想ディスクＩ／Ｏポートをスケジューリングする。
【００４８】
いくつかの実施形態において、読み出し−書き込み帯域幅を制御するために、トークンコンテナベースのトークンアルゴリズムが用いられる。現在の時間区間における仮想ディスクＩ／Ｏポートに対応するトークンコンテナの数が制御され、現在の時間区間内に各読み出し−書き込み要求によって用いられる実際の帯域幅が、その仮想ディスクＩ／Ｏポートに対応するすべてのトークンコンテナのリアルタイムの総容量と比較される。仮想ディスクＩ／Ｏポートの読み出しおよび書き込みが比較結果に基づいて実行され、したがって、仮想ディスクＩ／Ｏポートスケジューリングが得られる。
【００４９】
図４は、仮想ディスクＩ／Ｏポートをスケジューリングするための処理の別の実施形態を示すフローチャートである。いくつかの実施形態において、処理４００は、図８のクラウドプラットフォーム８００によって実施され、以下の操作を含む。
【００５０】
操作４１０では、クラウドプラットフォームは、物理マシンの各仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅クォータに基づいて、異なるサービス品質レーティングを各仮想ディスクＩ／Ｏポートに割り当てる。
【００５１】
いくつかの実施形態において、図１の操作１１０が、操作４１０に対応する。例えば、両操作は、異なる仮想ディスクＩ／Ｏポートのサービス品質レーティングを表すために重みを用いる。
【００５２】
操作４２０では、クラウドプラットフォームは、現在の時間区間内にすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートとを決定し、データ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートに対応するサービス品質レーティングとに基づいて、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートに、適切な読み出し−書き込み帯域幅制限を割り当てる。
【００５３】
操作４２０は、図１の操作１２０と同様であってよいことに注意されたい。例えば、読み出し−書き込み帯域幅制限の割り当ては、現在の時間区間内のすべての読み出し−書き込み要求によって要求されたデータ帯域幅の合計予測値として機能する前の時間区間内のすべての読み出し−書き込み要求によって実際に用いられたすべてのデータ帯域幅の合計に基づいて実施される。
【００５４】
操作４３０では、クラウドプラットフォームは、トークンコンテナバケットを各仮想ディスクＩ／Ｏポートに割り当てる。いくつかの実施形態において、各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、異なる仮想Ｉ／Ｏポートのスケジューリングを制御するために用いられる仮想ディスクＩ／Ｏポートに割り当てられた読み出し−書き込み帯域幅制限のサイズに対応する。
【００５５】
図５は、仮想ディスクＩ／Ｏポートに割り当てられたトークンコンテナバケットの一実施形態を示す図である。最初の行は、第１の仮想ディスクＩ／Ｏポートに割り当てられたトークンコンテナバケット（ベースバケット）に関する。５番目の行は、第５の仮想ディスクＩ／Ｏポートに割り当てられたトークンコンテナバケット（ベースバケット）に関する。例えば、各トークンコンテナバケット（ベースバケット）は、１０のトークンコンテナ（トークンーバケット）を有し、各トークンは、トークンコンテナに対応する。
【００５６】
上述のように、仮想ディスクＩ／Ｏポートは、トークンアルゴリズムに基づいて効果的にスケジューリングできる。１つのトークンコンテナバケット（ベースバケット）が、各仮想ディスクＩ／Ｏポートに割り当てられ、トークンコンテナバケット（ベースバケット）は、特定の数のトークンコンテナを収容する。異なる仮想ディスクＩ／Ｏポートに対応するトークンコンテナバケットが、同じ数のトークンコンテナを含む。例えば、サービス品質レーティングが１である仮想ディスクＩ／Ｏポートに対応するトークンコンテナバケットが、最大１０のトークンコンテナを収容できるものとして規定される。同様に、サービス品質レーティングが４である仮想ディスクＩ／Ｏポートに対応するトークンコンテナバケットが、最大１０のトークンコンテナを収容できるものとして規定される。換言すると、いくつかの実施形態において、様々な仮想ディスクＩ／Ｏポートに割り当てられたトークンコンテナバケットに含まれるトークンコンテナの数は等しい。特定の数の読み出し−書き込み要求が処理された後、各トークンコンテナバケット内の実際の残りのトークンコンテナの数は同じでなくてもよいことに注意されたい。各トークンコンテナバケット内の実際の残りのトークンコンテナの数が同じでなくてもよい理由は、仮想ディスクＩ／Ｏポートスケジューリング処理において、制御されるトークンコンテナの分配が、実際の読み出し−書き込み要求の帯域幅に基づくからである。異なる読み出し−書き込み要求は、異なる帯域幅を利用する。したがって、トークンコンテナの具体的な分配量は、異なる仮想ディスクＩ／Ｏポートについて完全に同じとは限らない。一態様として、異なるトークンコンテナバケット内のトークンコンテナの容量が異なる。容量は実際に、対応する仮想ディスクＩ／Ｏポートに割り当てられた読み出し−書き込み帯域幅制限に対応する。例えば、読み出しデータの書き込みデータに対する比が１：１であり、サービス品質レーティングが１である仮想ディスクＩ／Ｏポートに割り当てられた読み出し−書き込み帯域幅制限が２０Ｍである場合、対応するトークンコンテナバケット内のトークンコンテナの容量は２０Ｍになる。同様に、読み出し−書き込み帯域幅制限が８０Ｍであるトークンコンテナバケットでは、トークンコンテナ容量は８０Ｍになる。別の例において、読み出しデータの書き込みデータに対する比が１：３である場合、読み出し帯域幅および書き込み帯域幅は、独立的に制御される。サービス品質レーティングが１である仮想ディスクＩ／Ｏポートに割り当てられた読み出し帯域幅制限が２０Ｍである場合、制御が独立的に実行されると、対応する読み出し要求のトークンコンテナバケット内のトークンコンテナの容量は２０Ｍになる。書き込み帯域幅制限は約６．６Ｍであり、対応するトークンコンテナバケット内のトークンコンテナの容量は６．６Ｍになる。クラウドストレージにおいて、高いデータ有用性を保証するために、データがクラウドストレージに書き込まれる時に、データが３倍になる（３回書き込まれる）ことに注意されたい。例えば、１ＭＢの書き込みデータは、物理ドライブ上の３ＭＢのデータに対応する。３つの書き込まれたコピーのいずれかを読み出す時、ユーザが書き込まれたばかりの１ＭＢのデータを読み出したければ、１ＭＢのデータだけが読み出される。読み出しおよび書き込みのためのＩ／Ｏ能力は、大きくは異ならない。したがって、ユーザが１ＭＢのデータを書き込むのに３秒費やす場合、１秒だけが、１ＭＢのデータを読み出すために費やされ、これは、書き込み速度が読み出し速度の約３分の１であることを意味する。読み出し−書き込み帯域幅制限が８０Ｍであるトークンコンテナバケットにおいて、対応する読み出し帯域幅のトークンコンテナ容量は８０Ｍであるが、対応する書き込み帯域幅のトークンコンテナ容量は約２６．６Ｍである。換言すると、１つのトークンコンテナバケットが各仮想ディスクＩ／Ｏポートに割り当てられる場合、各仮想ディスクＩ／Ｏポートのトークンコンテナバケットに含まれるトークンコンテナのサイズは、対応する仮想ディスクＩ／Ｏポートのサービス品質レーティングと正の関係を持つ。
【００５７】
いくつかの実施形態において、異なる仮想ディスクＩ／Ｏポートのスケジューリング中、各仮想ディスクＩ／Ｏポートに割り当てられたトークンコンテナバケット内のトークンコンテナの分配は、異なる時間区間の読み出し−書き込み要求に基づいて、リアルタイムで調整される。一例として、リアルタイム調整が各仮想ディスクＩ／Ｏポートに割り当てられたトークンコンテナバケット内のトークンコンテナの分配に対してなされる時、仮想ディスクＩ／Ｏポートに対応するトークンコンテナバケットのリアルタイムの容量は、対応するトークンコンテナバケットのクォータ容量以下である。トークンコンテナのクォータ容量とは、トークンコンテナバケットによって収容できるコンテナの最大数を意味しうることに注意されたい。トークンコンテナのこのクォータ容量は、いくつかの検定の統計的結果から得ることができる。
【００５８】
例えば、ある時間区間内で、サービス品質レーティングが１である仮想ディスクＩ／Ｏポートについて、対応するトークンコンテナバケットが、３つのトークンコンテナのみを収容するとする。各トークンコンテナの容量は２０Ｍである。したがって、現在の時間区間において、この仮想ディスクＩ／Ｏポートについて認められうるデータの読み出しおよび書き込みのための最大帯域幅は、６０Ｍである。したがって、現在の時間区間内に実際の読み出し−書き込み要求によって用いられる帯域幅が６０Ｍよりも大きい場合（例えば、７５Ｍ）、選択肢は、次の時間区間を待つことであり、次の時間区間では、少なくとも別の２０Ｍのトークンコンテナがこのトークンコンテナバケットに再び分配される。このように、これらの実際の読み出し−書き込み要求の読み出しおよび書き込みを達成できる。
【００５９】
いくつかの実施形態において、トークンコンテナの分配が制御される時、その制御は、現在の時間区間内で対応するトークンコンテナバケットに実際に収容されたトークンコンテナの数Ｒｎと、実際の読み出し−書き込み要求の帯域幅によって用いられるトークンコンテナの数Ｎｎとに基づいてなされる。現在の時間区間内の対応するトークンコンテナバケットに実際に収容されたＲｎ個のトークンコンテナの合計容量が正の数である場合、現在の時間区間におけるトークンコンテナバケット内のトークンコンテナの数が、対応する読み出し−書き込み要求を達成するのに十分であることを意味する。Ｒｎは、対応するトークンコンテナバケット内のトークンコンテナの合計容量を表し、Ｎｎは、読み出し−書き込み要求のバイト数を表す。読み出し−書き込み要求の続行を可能にするためのアルゴリズムは、以下の通りである。Ｒｎが正の値である場合、Ｎｎの値にかかわらず、読み出し−書き込み要求を進めることが可能であり、ＮｎがＲｎから減算される。Ｎｎ＞Ｒｎである場合、その後の読み出し−書き込み要求は、Ｒｎが再び正になるまで続行できない。換言すると、トークンコンテナをトークンコンテナバケットに分配することが可能である。最大でトークンコンテナバケットに分配されるトークンコンテナの数が、クォータである。例えば、トークンコンテナバケット内のトークンコンテナクォータは、１０である。換言すると、トークンコンテナは、分配されたトークンコンテナの数が最大で１０に達するまで、分配される。換言すると、トークンコンテナバケット内のトークンコンテナ数のクォータを超えていない内は、読み出し−書き込み要求に用いられる帯域幅に従って、トークンコンテナを分配できる。
【００６０】
図４に戻ると、操作４４０では、クラウドプラットフォームは、現在の時間区間内に各読み出し−書き込み要求によって用いられる実際の帯域幅と、各読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅制限とに基づいて、物理マシン上の異なる仮想ディスクＩ／Ｏポートをスケジューリングする。
【００６１】
例えば、現在の時間区間において、仮想ディスクＩ／Ｏポートに対応するトークンコンテナバケットが４つのトークンコンテナを有し、各トークンコンテナの容量が２０Ｍに設定されているとする。したがって、このトークンコンテナバケットの実際の現在の容量は、４＊２０＝８０Ｍであり、正の数である。読み出し−書き込み要求が８０Ｍ未満である場合、読み出し−書き込み要求は、現在の時間区間内で実行可能である。そうでない場合、読み出し−書き込み要求の実行は、特定の数の時間区間内で、トークンコンテナバケットのリアルタイムの容量が実際の読み出し−書き込み要求によって用いられる帯域幅値に達する十分なトークンコンテナの分配が達成されるまで、遅延される。
【００６２】
図６は、仮想ディスクＩ／Ｏポートをスケジューリングするための処理のさらに別の実施形態を示すフローチャートである。処理６００は、以下のように、上記の処理とは異なる。上記の処理に基づいて構築された、いくつかの実施形態において、いくつかの時間区間後に、処理６００は、統計分析を介して、特定の仮想ディスクＩ／Ｏポートの帯域幅が完全には利用されていないことを知る。換言すると、一部の帯域幅が利用されていない。同時に、特定の仮想ディスクＩ／Ｏポートの帯域幅が、対応する読み出し−書き込み要求を満たすのに不十分である。したがって、いくつかの実施形態において、完全には利用されていない仮想ディスクＩ／Ｏポートの帯域幅が、さらなる帯域幅を必要とする仮想ディスクＩ／Ｏポートに割り当てられる。換言すると、或る時間区間中に、仮想マシンの一部の仮想ディスクＩ／Ｏポートが、読み出し−書き込み要求を全く持たない場合があるので、これらの仮想ディスクＩ／Ｏポートに割り当てられたトークンコンテナは利用されない。したがって、全帯域幅の利用率向上を保証するために、これらの利用されていないトークンコンテナが集められて、トークンコンテナを利用しうる仮想ディスクＩ／Ｏポートに再分配される。実際の制御は、トークンコンテナの補償を通して影響を受けうる。いくつかの実施形態において、処理６００は、図８のクラウドプラットフォーム８００によって実施され、以下の操作を含む。
【００６３】
操作６１０では、クラウドプラットフォームは、物理マシンの各仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅クォータに基づいて、異なるサービス品質レーティングを各仮想ディスクＩ／Ｏポートに割り当てる。仮想ディスクＩ／Ｏポートの帯域幅は共有されるが、読み出し−書き込み要求は別個に制御されることに注意されたい。
【００６４】
操作６２０では、クラウドプラットフォームは、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートとを決定し、データ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートに対応するサービス品質レーティングとに基づいて、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートに、適切な読み出し−書き込み帯域幅制限を割り当てる。
【００６５】
操作６３０では、クラウドプラットフォームは、トークンコンテナバケットを各仮想ディスクＩ／Ｏポートに割り当てる。いくつかの実施形態において、各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、異なる仮想ディスクＩ／Ｏポートのスケジューリングを制御するために用いられる仮想ディスクＩ／Ｏポートに割り当てられた読み出し−書き込み帯域幅制限のサイズに対応する。
【００６６】
操作６４０では、クラウドプラットフォームは、現在の時間区間において帯域幅を完全には利用していない仮想ディスクＩ／Ｏポートと、帯域幅補償を必要とする仮想ディスクＩ／Ｏポートとを決定し、完全には利用されていない仮想ディスクＩ／Ｏポートに対応するトークンコンテナバケット内の余剰のトークンコンテナを、帯域幅を必要とする仮想ディスクＩ／Ｏポートに分配して、異なる仮想ディスクＩ／Ｏポートの異なるトークンコンテナバケットの間でトークンコンテナの補償を行う。
【００６７】
操作６５０では、クラウドプラットフォームは、現在の時間区間内に各読み出し−書き込み要求によって用いられる実際の帯域幅と、各読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅制限とに基づいて、物理マシン上の異なる仮想ディスクＩ／Ｏポートをスケジューリングする。
【００６８】
操作６１０から６４０を何回か実行した後、各実行後に収集された実際の読み出し−書き込み帯域幅についての統計値により、特定の仮想ディスクＩ／Ｏポートのトークンコンテナバケット内の余剰のトークンコンテナ、および、読み出し−書き込み帯域幅を満たすことができない特定の仮想ディスクＩ／Ｏポートのトークンコンテナバケット内のトークンコンテナが、存在することがわかる。この時点で、余剰のトークンコンテナは、トークンコンテナを必要とするトークンコンテナバケットを補償するために用いられる。いくつかの実施形態において、補償は、仮想ディスクＩ／Ｏポートのサービス品質レーティングに基づいて実施される。例えば、或る仮想ディスクＩ／Ｏポートのトークンコンテナバケットが２０Ｍのトークンコンテナの余剰を有しており、サービス品質レーティング２および４をそれぞれ有する別の２つの仮想ディスクＩ／Ｏポートのコンテナバケットでトークンコンテナが不足している場合、サービス品質レーティングが２である仮想ディスクＩ／Ｏポートが補償として２０Ｍの３分の１（すなわち、約６．７Ｍ）を受け取り、サービス品質レーティングが４である仮想ディスクＩ／Ｏポートが補償として２０Ｍの３分の２（すなわち、約１３．３Ｍ）を受け取る。
【００６９】
同様に、いくつかの実施形態において、トークンコンテナの補償中、補償に利用可能なトークンコンテナの容量すなわち余分なトークンコンテナ容量が合計される。次いで、帯域幅の不足と、対応するサービス品質レーティングとを有する物理マシン上の仮想ディスクＩ／Ｏポートがカウントされる。補償される全トークンコンテナは、サービス品質レーティングの比に基づいて、補償される仮想ディスクＩ／Ｏポートに割り当てられる。補償の結果として、いくつかの状況では、補償されたトークンコンテナバケットが、それらのクォータを超過しうることに注意されたい。したがって、その後の時間区間において、これらのトークンコンテナバケットは、トークンコンテナバケット内の実際のトークンコンテナ数がクォータ未満になるまで、トークンコンテナの分配すなわち補償を受けることができない。
【００７０】
上述の処理の実施形態に基づくと、物理マシン上の仮想ディスクＩ／Ｏポート数が変わり、異なる読み出し−書き込み帯域幅制限が、異なる仮想ディスクＩ／Ｏポートに割り当てられる場合に、数の変更後に、仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を再割り当てできる。
【００７１】
一例を以下に提供する。トークンコンテナの補償なしに読み出し−書き込み要求を処理するために１つの物理マシン上の２つの仮想ディスクＩ／Ｏポートが用いられ、読み出し−書き込みデータ比が１：１であるとする。この例において、２つの仮想ディスクＩ／Ｏポートのサービス品質レーティングは１および４であり、現在の時間区間内のすべての読み出し要求および書き込み要求のデータ帯域幅の合計予測値は１００Ｍである。したがって、サービス品質の比に従って、サービス品質レーティングが１である仮想ディスクＩ／Ｏポートは、１００Ｍの５分の１（すなわち、２０Ｍ）を割り当てられ、サービス品質レーティングが４である仮想ディスクＩ／Ｏポートは、１００Ｍの５分の４（すなわち、８０Ｍ）を割り当てられる。これらの割り当て量は、それぞれの仮想ディスクＩ／Ｏポートの読み出し帯域幅制限に対応する。読み出しデータおよび書き込みデータの比が１：１なので、これらの２つの仮想ディスクＩ／Ｏポートの書き込み帯域幅制限は、同様に、２０Ｍおよび８０Ｍである。上記の割り当てに基づいて、２つの仮想ディスクＩ／Ｏポートに対応する読み出しトークンコンテナバケットが共に１０の読み出しトークンコンテナを有し、読み出しトークンコンテナの容量がそれぞれ２０Ｍおよび８０Ｍであると仮定する。現在の時間区間において、１つの読み出し要求が、読み出し−書き込み要求キューから取得される。サービス品質レーティングが１である仮想ディスクＩ／Ｏポートに対してデータ読み出し動作が実行される。この読み出し要求によって要求されるデータ帯域幅は、３０Ｍである。現在の時間区間において、サービス品質レーティングが１である仮想ディスクＩ／Ｏポートのトークンコンテナバケットは、合計１０の読み出しトークンコンテナを有しており、各読み出しトークンコンテナは、２０Ｍの容量を有する。サポート可能な合計帯域幅は、１０＊２０＝２００Ｍ（正の数）であり、３０Ｍの読み出し要求を満たすことができる。サービス品質レーティングが１である仮想ディスクＩ／Ｏポートに対して実行されるデータ読み出しまたは書き込み動作のために、別の読み出し要求または書き込み要求が、読み出し−書き込み要求キューから取得される場合に、この読み出しまたは書き込み要求によって要求されるデータ帯域幅が１９０Ｍであるとする。要求データ帯域幅が３０Ｍであった前の読み出し−書き込み要求の実行により、対応する仮想ディスクに残るデータ帯域幅は、２００−３０＝１７０Ｍのみである。対応する仮想ディスクＩ／Ｏポートのトークンコンテナバケット内のすべてのトークンコンテナの合計容量は、正の数である。したがって、別の読み出しまたは書き込み要求によって用いられるデータ帯域幅が１９０Ｍであるので、別の読み出しまたは書き込み要求は実行可能である。しかしながら、データ帯域幅が１９０Ｍである要求の実行後、対応する仮想ディスクＩ／Ｏポートに残るトークンコンテナの容量は、１７０−１９０＝−２０Ｍである。要求されたデータ帯域幅が、負の数になった。したがって、現在の区間内の他の読み出し−書き込み要求は、一時的に実行されない。対応するトークンコンテナバケット内のトークンコンテナの合計容量が正になるように、次の時間区間内にトークンコンテナを対応するトークンコンテナバケットに再分配することが待たれる。待機後にのみ、他の読み出しまたは書き込み要求の実行を完了できる。トークンコンテナバケット内のトークンコンテナが最大数に近くなると（例えば、トークンコンテナバケットが最大１０の読み出しトークンコンテナを収容できる場合）、トークンコンテナバケットに分配されるトークンコンテナは自動的に破棄されることに注意されたい。一態様として、破棄されるトークンコンテナは、トークンコンテナの不足した他のトークンコンテナバケットに補償として与えられてよい。
【００７２】
一例を以下に提供する。トークンコンテナの補償を利用することなしに読み出し−書き込み要求を処理する１つの物理マシン上の２つの仮想ディスクＩ／Ｏポートが用いられ、読み出し−書き込みデータ比が１：３であるとする。２つの仮想ディスクＩ／Ｏのサービス品質レーティングは１および４であり、現在の時間区間内のすべての読み出し要求および書き込み要求のデータ帯域幅の合計予測値は１００Ｍである。したがって、サービス品質レーティングの比に従って、サービス品質レーティングが１である仮想ディスクＩ／Ｏポートは、１００Ｍの５分の１（すなわち、２０Ｍ）を割り当てられ、サービス品質レーティングが４である仮想ディスクＩ／Ｏポートは、１００Ｍの５分の４（すなわち、８０Ｍ）を割り当てられる。これらの割り当て量は、それぞれの仮想ディスクＩ／Ｏポートの読み出し帯域幅制限に対応する。上記の割り当て量に基づいて、２つの仮想ディスクＩ／Ｏポートに対応する読み出しトークンコンテナバケットが共に１０の読み出しトークンコンテナを有するように設定され、読み出しトークンコンテナの容量がそれぞれ２０Ｍおよび８０Ｍであると仮定する。読み出しデータおよび書き込みデータの比が１：３なので、これらの２つの仮想ディスクＩ／Ｏポートの書き込み帯域幅制限は、同様に、６．６Ｍおよび２６．４Ｍである。２つの仮想ディスクＩ／Ｏポートに対応する読み出しトークンコンテナバケットが共に１０の書き込みトークンコンテナを有し、書き込みトークンコンテナの容量がそれぞれ６．６Ｍおよび２６．４Ｍであると仮定する。現在の時間区間において、１つの読み出し要求が、読み出し−書き込み要求キューから取得される。サービス品質レーティングが１である仮想ディスクＩ／Ｏポートに対してデータ読み出し動作が実行される。この読み出し要求によって用いられるデータ帯域幅は、３０Ｍである。現在の時間区間において、サービス品質レーティングが１である仮想ディスクＩ／Ｏポートのトークンコンテナバケットは、合計１０の読み出しトークンコンテナを有しており、各読み出しトークンコンテナは、２０Ｍの容量を有する。サポート可能な帯域幅は、１０＊２０＝２００Ｍ（正の数）であり、３０Ｍの読み出し要求を満たすことができる。したがって、この読み出し要求は実行され、１．５個のトークンコンテナの容量に等しい帯域幅が、トークンコンテナバケットから除去される。別の書き込み要求が、読み出し−書き込み要求キューから取得され、サービス品質レーティングが１である仮想ディスクＩ／Ｏポートに対してデータ読み出しまたはデータ書き込み動作が実行される場合、この書き込み要求によって要求されるデータ帯域幅は、６０Ｍになる。対応する仮想ディスクＩ／Ｏポート書き込みトークンコンテナバケットが６．６＊１０＝６６Ｍ（正の数）の帯域幅を有するので、任意の帯域幅（例えば、８０Ｍ）の書き込み要求を現在の時間区間内で実行できる。しかしながら、前の書き込み要求が実行されたので、対応する書き込みトークンコンテナバケット内のトークンコンテナの総容量は、６６Ｍ−８８Ｍ＝−１４Ｍになり、負の数である。他の書き込み要求の実行は果たされない。したがって、書き込みトークンコンテナバケット内のトークンコンテナの合計容量が正になるように、次の時間区間内の書き込みトークンコンテナの分配が遅延される。また、トークンコンテナバケット内のトークンコンテナが最大数に近くなると（例えば、トークンコンテナバケットが最大１０の読み出しトークンコンテナを収容すると）、このトークンコンテナバケットに分配されるトークンコンテナは自動的に破棄されることに注意されたい。いくつかの実施形態において、破棄されたトークンコンテナは、トークンコンテナの不足する他のトークンコンテナバケッを補償するために用いられる。
【００７３】
以下のことが上述の実施形態に関連することに注意されたい。物理マシン上の仮想ディスクＩ／Ｏポート数が変わり、異なる読み出し−書き込み帯域幅制限が、異なる仮想ディスクＩ／Ｏポートに割り当てられる場合に、数の変更後に、仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を再割り当てできる。
【００７４】
図７は、仮想ディスクＩ／Ｏポートをスケジューリングするためのデバイスの一実施形態を示す構造図である。いくつかの実施形態において、デバイス７００は、図８のクラウドプラットフォーム８００の実装例であり、レーティング付与ユニット７１０、制限割り当てユニット７２０、および、スケジューリングユニット７３０を備える。
【００７５】
レーティング付与ユニット７１０は、物理マシン内の各仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅クォータに基づいて、異なるサービス品質レーティングを各仮想ディスクＩ／Ｏポートに割り当てる。
【００７６】
制限割り当てユニット７２０は、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートとを決定し、データ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートに対応するサービス品質レーティングとに基づいて、すべての読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートに、適切な読み出し−書き込み帯域幅制限を割り当てる。
【００７７】
スケジューリングユニット７３０は、現在の時間区間内に各読み出し−書き込み要求によって用いられる実際の帯域幅と、各読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅制限とに基づいて、物理マシン上の異なる仮想ディスクＩ／Ｏポートをスケジューリングする。
【００７８】
別の実施形態において、制限割り当てユニット７２０は、さらに、読み出し要求と書き込み要求との比較に基づいて、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てる。独立的に割り当てを行う理由は、書き込みおよび読み出し要求が実行される時に、書き込みデータおよび読み出しデータが等しくないからである。さらなる説明は、上記の対応する処理に関して提供した。いくつかの実施形態において、仮想ディスクに書き込まれるデータの量および個々の仮想ディスクから読み出されるデータの量が或る比を構成する時、制限割り当てユニット７２０によって対応するＩ／Ｏポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅は、対応する比を構成する。
【００７９】
いくつかの実施形態において、仮想ディスクＩ／Ｏポートをスケジューリングするために、制限割り当てユニット７２０は、トークンコンテナバケットを各仮想ディスクＩ／Ｏポートに割り当て、各トークンコンテナバケットは、複数のトークンコンテナを含む。各トークンコンテナの容量は、異なる仮想Ｉ／Ｏポートのスケジューリングを制御するために用いられる仮想ディスクＩ／Ｏポートに割り当てられた読み出し−書き込み帯域幅制限のサイズに対応する。一例として、スケジューリング処理において、制限割り当てユニット７２０は、異なる時間区間の読み出し−書き込み要求に対応するリアルタイム調整を、各仮想ディスクＩ／Ｏポートに対応するトークンコンテナバケット内のトークンコンテナの分配に対して行う。かかる状況は、仮想ディスクＩ／Ｏポート数に対応するトークンコンテナバケット内のトークンコンテナ数がトークンコンテナバケットクォータよりも小さいことに対処する。
【００８０】
いくつかの実施形態において、制限割り当てユニット７２０は、物理マシン上の異なる仮想ディスクＩ／Ｏポートをスケジューリングする時、異なる仮想ディスクＩ／Ｏポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供する。かかる状況は以下に対処できる。一部の場合において、物理マシン内の特定の仮想ディスクＩ／Ｏポートに対応するトークンコンテナバケットは、それらのクォータを達成しており、実際の読み出し−書き込み要求で用いられる帯域幅を満たすことができない。同時に、トークンコンテナが使い果たされていない他の仮想ディスクＩ／Ｏポートに対応するトークンコンテナバケットが存在する。換言すると、他の仮想ディスクＩ／Ｏポートに対応するトークンコンテナバケットは、非クォータ状態（非割り当て状態）にある可能性が非常に高い。したがって、余剰トークンコンテナと、補償される仮想ディスクＩ／Ｏポートに対応するトークンコンテナバケットとの間で、補償が実施される。
【００８１】
いくつかの実施形態において、仮想ディスクＩ／Ｏポートの数の変化が物理マシンに生じ、対応する読み出し−書き込み帯域幅制限が異なる仮想ディスクＩ／Ｏポートに割り当てられる時、制限割り当てユニット７２０は、数の変化が生じた後に仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅制限を再割り当てする。
【００８２】
いくつかの実施形態において、時間区間は、時間区間がリアルタイム応答によって用いられる時間区間に近づくまで、リアルタイム応答に従って連続的に調整される。
【００８３】
図８は、クラウドプラットフォーム配備の一実施形態を示す構造図である。いくつかの実施形態において、クラウドプラットフォーム配備８００は、上記の処理を実施し、クラウドストレージ８２０を形成するように組み合わされた複数の物理マシン８１０を含む。各物理マシン８１０は、複数の分散された仮想マシン８１００に対応しうる。各仮想マシン８１００は、複数の仮想ディスク（図示せず）に対応する。これらの仮想ディスクは、ＷＦＱキューに対応する。各仮想ディスクは、対応する仮想ディスクＩ／Ｏポートを有する。いくつかの実施形態において、各物理マシン８１０上の仮想ディスクＩ／Ｏポートのスケジューリングは、上記の処理の１つに基づく。
【００８４】
例えば、物理マシンが４つの仮想マシン、ＶＭ１、ＶＭ２、ＶＭ３、および、ＶＭ４を有すると仮定する。各仮想マシンは、１つの仮想ディスクＩ／Ｏポートを有する。４つの仮想マシンの重みは、それぞれ１、１、４、および、４である。
【００８５】
図９は、本願に記載の技術を用いて書き込み要求を処理する時の帯域幅サンプリング統計の一例を示す図である。仮想マシンＶＭ１、ＶＭ２、ＶＭ３、および、ＶＭ４の対応する仮想ディスクＩ／Ｏポートの書き込み動作中、対応する統計線の変動が比較的平坦であり、書き込み要求の処理はむしろ安定的になる。図１０は、書き込み要求の従来の処理時の帯域幅サンプリング統計を示す図である。仮想マシンＶＭ１、ＶＭ２、ＶＭ３、および、ＶＭ４の対応する仮想ディスクＩ／Ｏポートの書き込み動作中、対応する統計線の変動が比較的大きく、書き込み要求の処理は不安定である。
【００８６】
図１１は、本願に記載の技術を用いて読み出し要求を処理する時の帯域幅サンプリング統計の一例を示す図である。仮想マシンＶＭ１、ＶＭ２、ＶＭ３、および、ＶＭ４の対応する仮想ディスクＩ／Ｏポートの読み出し要求の処理中、対応する統計線の変動が大きくなく、読み出し要求の処理は安定する。図１２は、読み出し要求の従来の処理時の帯域幅サンプリング統計を示す図である。仮想マシンＶＭ１、ＶＭ２、ＶＭ３、および、ＶＭ４の対応する仮想ディスクＩ／Ｏポートの読み出し要求の処理中、対応する統計線の変動が比較的大きく、読み出し要求の処理は不安定である。
【００８７】
上記の図９〜図１２において、水平座標は、サンプリング時間を表し、垂直座標は、サンプリング時間に対応して仮想ディスクＩ／Ｏポートで実際に生じた帯域幅サイズを表す。
【００８８】
図１３は、仮想ディスクＩ／Ｏポートをスケジューリングするためのコンピュータシステムの一実施形態を示す機能図である。明らかに、仮想ディスクＩ／Ｏポートをスケジューリングするために、他のコンピュータシステムアーキテクチャおよび構成を用いることも可能である。以下に述べるような様々なサブシステムを備えるコンピュータシステム１３００は、少なくとも１つのマイクロプロセッササブシステム（プロセッサまたは中央処理装置（ＣＰＵ）とも呼ばれる）１３０２を備える。例えば、プロセッサ１３０２は、シングルチッププロセッサまたはマルチプロセッサによって実装できる。いくつかの実施形態において、プロセッサ１３０２は、コンピュータシステム１３００の動作を制御する汎用デジタルプロセッサである。メモリ１３１０から読み出された命令を用いて、プロセッサ１３０２は、入力データの受信および操作、ならびに、出力デバイス（例えば、ディスプレイ１３１８）上でのデータの出力および表示を制御する。
【００８９】
プロセッサ１３０２は、メモリ１３１０と双方向的に接続されており、メモリ１３１０は、第１のプライマリストレージ（通例は、ランダムアクセスメモリ（ＲＡＭ））および第２のプライマリストレージ領域（通例は、リードオンリーメモリ（ＲＯＭ））を含みうる。当業者に周知のように、プライマリストレージは、一般的な記憶領域として、および、スクラッチパッドメモリとして利用可能であり、また、入力データおよび処理済みデータを格納するために利用可能である。プライマリストレージは、さらに、プロセッサ１３０２上で実行される処理のための他のデータおよび命令に加えて、データオブジェクトおよびテキストオブジェクトの形態で、プログラミング命令およびデータを格納できる。また、当業者に周知のように、プライマリストレージは、通例、機能（例えば、プログラムされた命令）を実行するためにプロセッサ１３０２によって用いられる基本的な動作命令、プログラムコード、データ、および、オブジェクトを備える。例えば、メモリ１３１０は、例えば、データアクセスが双方向である必要があるか、単方向である必要があるかに応じて、後述する任意の適切なコンピュータ読み取り可能な記憶媒体を含みうる。例えば、プロセッサ１３０２は、頻繁に必要になるデータをキャッシュメモリ（図示せず）に直接的かつ非常に迅速に格納し取り出すことができる。
【００９０】
着脱可能マスストレージデバイス１３１２が、コンピュータシステム１３００にさらなるデータ記憶容量を提供しており、プロセッサ１３０２に対して双方向（読み出し／書き込み）または単方向（読み出しのみ）に接続されている。例えば、ストレージ１３１２は、磁気テープ、フラッシュメモリ、ＰＣカード、携帯型マスストレージデバイス、ホログラフィックストレージデバイス、および、その他のストレージデバイスなどのコンピュータ読み取り可能な媒体も含みうる。固定マスストレージ１３２０も、例えば、さらなるデータ記憶容量を提供しうる。マスストレージ１３２０の最も一般的な例は、ハードディスクドライブである。マスストレージ１３１２、１３２０は、一般に、プロセッサ１３０２によって通例はあまり利用されないさらなるプログラミング命令、データなどを格納する。マスストレージ１３１２および１３２０に保持された情報は、必要であれば、仮想メモリとしてのメモリ１３１０（例えば、ＲＡＭ）の一部に標準的な方式で組み込まれてよいことが理解される。
【００９１】
プロセッサ１３０２がストレージサブシステムにアクセスできるようにすることに加えて、バス１３１４は、その他のサブシステムおよびデバイスへのアクセスを可能にするために用いられてもよい。図に示すように、これらは、ディスプレイモニタ１３１８、ネットワークインターフェース１３１６、キーボード１３０４、および、ポインティングデバイス１３０６、ならびに、必要に応じて、補助入力／出力デバイスインターフェース、サウンドカード、スピーカ、および、その他のサブシステムを含みうる。例えば、ポインティングデバイス１３０６は、マウス、スタイラス、トラックボール、または、タブレットであってよく、グラフィカルユーザインターフェースと相互作用するのに有用である。
【００９２】
ネットワークインターフェース１３１６は、図に示すように、ネットワーク接続を用いて、別のコンピュータ、コンピュータネットワーク、または、遠隔通信ネットワークにプロセッサ１３０２を接続することを可能にする。例えば、ネットワークインターフェース１３１６を通して、プロセッサ１３０２は、方法／処理ステップを実行する過程で、別のネットワークから情報（例えば、データオブジェクトまたはプログラム命令）を受信したり、別のネットワークに情報を出力したりすることができる。情報は、しばしば、プロセッサ上で実行される一連の命令として表され、別のネットワークから受信されたり、別のネットワークへ出力されたりしうる。インターフェースカード（または同様のデバイス）と、プロセッサ１３０２によって実装（例えば、実行／実施）される適切なソフトウェアとを用いて、コンピュータシステム１３００を外部ネットワークに接続し、標準プロトコルに従ってデータを転送することができる。例えば、本明細書に開示された様々な処理の実施形態は、プロセッサ１３０２上で実行されてもよいし、処理の一部を共有するリモートプロセッサと共に、ネットワーク（インターネット、イントラネットワーク、または、ローカルエリアネットワークなど）上で実行されてもよい。さらなるマスストレージデバイス（図示せず）が、ネットワークインターフェース１３１６を通してプロセッサ１３０２に接続されてもよい。
【００９３】
補助Ｉ／Ｏデバイスインターフェース（図示せず）が、コンピュータシステム１３００と共に用いられてよい。補助Ｉ／Ｏデバイスインターフェースは、プロセッサ１３０２がデータを送信すること、ならびに、より典型的には、他のデバイス（マイクロホン、タッチセンサ方式ディスプレイ、トランスデューサカードリーダ、テープリーダ、音声または手書き認識装置、バイオメトリクスリーダ、カメラ、携帯型マスストレージデバイス、および、他のコンピュータなど）からデータを受信することを可能にする汎用インターフェースおよびカスタマイズされたインターフェースを含みうる。
【００９４】
図１３に示したコンピュータシステムは、本明細書に開示された様々な実施形態と共に利用するのに適切なコンピュータシステムの一例にすぎない。かかる利用に適した他のコンピュータシステムは、より多いまたは少ないサブシステムを含みうる。さらに、バス１３１４は、サブシステムをつなぐよう機能する任意の相互接続スキームの例である。異なる構成のサブシステムを有する他のコンピュータアーキテクチャが利用されてもよい。
【００９５】
上述のユニットは、１または複数の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、特定の機能を実行するよう設計されたプログラム可能論理デバイスおよび／または特定用途向け集積回路などのハードウェアとして、もしくは、それらの組み合わせとして実装することができる。いくつかの実施形態において、ユニットは、コンピュータデバイス（パーソナルコンピュータ、サーバ、ネットワーク装置など）に本発明の実施形態に記載された方法を実行させるための複数の命令など、不揮発性記憶媒体（光学ディスク、フラッシュ記憶装置、携帯用ハードディスクなど）に格納することができるソフトウェア製品の形態で具現化されてよい。ユニットは、単一のデバイス上に実装されてもよいし、複数のデバイスにわたって分散されてもよい。ユニットの機能は、互いに統合されてもよいし、複数のサブユニットにさらに分割されてもよい。
【００９６】
本明細書に開示の実施形態に照らして説明した方法またはアルゴリズム工程は、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、または、両方の組み合わせを用いて実施されうる。ソフトウェアモジュールは、ランダムアクセスメモリ（ＲＡＭ）、メモリ、リードオンリーメモリ（ＲＯＭ）、電気的プログラム可能ＲＯＭ、電気的消去可能プログラム可能ＲＯＭ、レジスタ、ハードドライブ、リムーバブルディスク、ＣＤ−ＲＯＭ、または、任意の他の形態の当業者に周知の記憶媒体内にインストールされてよい。
【００９７】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
【図１】
2016521417.tif 000003
【図２】
2016521417.tif 000004
【図３】
2016521417.tif 000005
【図４】
2016521417.tif 000006
【図５】
2016521417.tif 000007
【図６】
2016521417.tif 000008
【図７】
2016521417.tif 000009
【図８】
2016521417.tif 000010
【図１３】
2016521417.tif 000011
【図９】
2016521417.tif 000012
【図１０】
2016521417.tif 000013
【図１１】
2016521417.tif 000014
【図１２】
2016521417.tif 000015
【手続補正書】
【提出日】平成27年11月16日(2015.11.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想ディスク入出力（Ｉ／Ｏ）ポートをスケジューリングするための方法であって、
対応するセットの仮想ディスクＩ／Ｏポートに対して、物理マシン内の前記対応するセットの仮想ディスクＩ／Ｏポートに関連付けられている１セットの読み出し−書き込み帯域幅クォータに基づいて、１セットのサービス品質レーティングを割り当て、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートを決定し、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当て、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクＩ／Ｏポートをスケジューリングすること、
を備える、方法。
【請求項２】
請求項１に記載の方法であって、割り当てられたサービス品質レーティングは、各仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅クォータと比例的に関係する、方法。
【請求項３】
請求項１に記載の方法であって、前の時間区間内の前記読み出し−書き込み要求によって実際に生じたすべてのデータ帯域幅の合計は、前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる前記データ帯域幅の前記合計予測値として機能する、方法。
【請求項４】
請求項１に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、データ帯域幅の前記合計予測値を、異なる仮想ディスクＩ／Ｏポートに、前記異なる仮想ディスクＩ／Ｏポートに関連する前記サービス品質レーティングの比に従って割り当てることを含む、方法。
【請求項５】
請求項１に記載の方法であって、前記読み出し−書き込み帯域幅制限を割り当てることは、
読み出し要求および書き込み要求に従って、それぞれ、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てることを含む、方法。
【請求項６】
請求項５に記載の方法であって、対応するＩ／Ｏポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限の比は、仮想ディスクから読み出されるデータの量および仮想ディスクに書き込まれるデータの量の比に対応する、方法。
【請求項７】
請求項１に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
各仮想ディスクＩ／Ｏポートにトークンコンテナバケットを割り当てることを含み、
各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、前記仮想ディスクＩ／Ｏポートのスケジューリングを制御するために用いられる仮想ディスクＩ／Ｏポートに割り当てられた前記読み出し−書き込み帯域幅制限のサイズに対応する、方法。
【請求項８】
請求項７に記載の方法であって、各トークンコンテナの前記容量は、前記対応する仮想ディスクＩ／Ｏポートの前記サービス品質レーティングに比例する、方法。
【請求項９】
請求項７に記載の方法であって、前記異なる仮想ディスクＩ／Ｏポートに割り当てられた前記トークンコンテナバケットは、同数のトークンコンテナを含む、方法。
【請求項１０】
請求項７に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
異なる時間区間内の読み出し−書き込み要求に基づいて、各仮想ディスクＩ／Ｏポートに対応する前記トークンコンテナバケット内のトークンコンテナの分配をリアルタイムで調整することを含む、方法。
【請求項１１】
請求項１０に記載の方法であって、各仮想ディスクＩ／Ｏポートに対応する前記トークンコンテナバケットのリアルタイムの容量は、前記対応するトークンコンテナバケットのクォータ容量以下である、方法。
【請求項１２】
請求項１１に記載の方法であって、前記物理マシン上の前記仮想ディスクＩ／Ｏポートをスケジューリングすることは、
異なる仮想ディスクＩ／Ｏポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供することを含む、方法。
【請求項１３】
請求項１に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
仮想ディスクＩ／Ｏポート数の変更が前記物理マシンで発生した場合に、仮想ディスクＩ／Ｏポート数の前記変更が起きた後に、仮想ディスクＩ／Ｏポートのデータ帯域幅の前記合計予測値に基づいて、読み出し−書き込み帯域幅制限を再割り当てすることを含む、方法。
【請求項１４】
請求項１に記載の方法であって、前記物理マシン上の前記仮想ディスクＩ／Ｏポートをスケジューリングすることの前に、前記読み出し−書き込み要求と前記仮想ディスクＩ／Ｏポートに対する要求との対応関係に基づいて、重み付き要求キューを生成して、前記重み付き要求キューから時系列の順に前記異なる読み出し−書き込み要求にアクセスすることを備える、方法。
【請求項１５】
仮想ディスク入出力（Ｉ／Ｏ）ポートをスケジューリングするためのデバイスであって、
少なくとも１つのプロセッサであって、
対応するセットの仮想ディスクＩ／Ｏポートに対して、物理マシン内の前記対応するセットの仮想ディスクＩ／Ｏポートに関連付けられている１セットの読み出し−書き込み帯域幅クォータに基づいて、１セットのサービス品質レーティングを割り当て、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートを決定し、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当て、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクＩ／Ｏポートをスケジューリングするよう構成されたている、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するよう構成されているメモリと、
を備える、デバイス。
【請求項１６】
請求項１５に記載のデバイスであって、前記読み出し−書き込み帯域幅制限を割り当てることは、
読み出し要求および書き込み要求に従って、それぞれ、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てることを含む、デバイス。
【請求項１７】
請求項１６に記載のデバイスであって、対応するＩ／Ｏポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限の比は、仮想ディスクから読み出されるデータの量および仮想ディスクに書き込まれるデータの量の比に対応する、デバイス。
【請求項１８】
請求項１５に記載のデバイスであって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
各仮想ディスクＩ／Ｏポートにトークンコンテナバケットを割り当てることを含み、
各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、前記仮想ディスクＩ／Ｏポートのスケジューリングを制御するために用いられる仮想ディスクＩ／Ｏポートに割り当てられた前記読み出し−書き込み帯域幅制限のサイズに対応する、デバイス。
【請求項１９】
請求項１８に記載のデバイスであって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
異なる時間区間内の読み出し−書き込み要求に基づいて、各仮想ディスクＩ／Ｏポートに対応する前記トークンコンテナバケット内のトークンコンテナの分配をリアルタイムで調整することを含む、デバイス。
【請求項２０】
請求項１９に記載のデバイスであって、前記物理マシン上の前記仮想ディスクＩ／Ｏポートをスケジューリングすることは、
異なる仮想ディスクＩ／Ｏポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供することを含む、デバイス。
【請求項２１】
請求項１５に記載のデバイスであって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
仮想ディスクＩ／Ｏポート数の変更が前記物理マシンで発生した場合に、仮想ディスクＩ／Ｏポート数の前記変更が起きた後に、仮想ディスクＩ／Ｏポートのデータ帯域幅の前記合計予測値に基づいて、読み出し−書き込み帯域幅制限を再割り当てすることを含む、デバイス。
【請求項２２】
仮想ディスク入出力（Ｉ／Ｏ）ポートをスケジューリングするためのコンピュータプログラムであって、
対応するセットの仮想ディスクＩ／Ｏポートに対して、物理マシン内の前記対応するセットの仮想ディスクＩ／Ｏポートに関連付けられている１セットの読み出し−書き込み帯域幅クォータに基づいて、１セットのサービス品質レーティングを割り当てるための機能と、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートを決定するための機能と、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当てるための機能と、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクＩ／Ｏポートをスケジューリングするための機能と、
をコンピュータによって実現させるコンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００９７
【補正方法】変更
【補正の内容】
【００９７】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
適用例１：仮想ディスク入出力（Ｉ／Ｏ）ポートをスケジューリングするための方法であって、
対応するセットの仮想ディスクＩ／Ｏポートに対して、物理マシン内の前記対応するセットの仮想ディスクＩ／Ｏポートに関連付けられている１セットの読み出し−書き込み帯域幅クォータに基づいて、１セットのサービス品質レーティングを割り当て、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートを決定し、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当て、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクＩ／Ｏポートをスケジューリングすること、
を備える、方法。
適用例２：適用例１に記載の方法であって、割り当てられたサービス品質レーティングは、各仮想ディスクＩ／Ｏポートの読み出し−書き込み帯域幅クォータと比例的に関係する、方法。
適用例３：適用例１に記載の方法であって、前の時間区間内の前記読み出し−書き込み要求によって実際に生じたすべてのデータ帯域幅の合計は、前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる前記データ帯域幅の前記合計予測値として機能する、方法。
適用例４：適用例１に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、データ帯域幅の前記合計予測値を、異なる仮想ディスクＩ／Ｏポートに、前記異なる仮想ディスクＩ／Ｏポートに関連する前記サービス品質レーティングの比に従って割り当てることを含む、方法。
適用例５：適用例１に記載の方法であって、前記読み出し−書き込み帯域幅制限を割り当てることは、
読み出し要求および書き込み要求に従って、それぞれ、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てることを含む、方法。
適用例６：適用例５に記載の方法であって、対応するＩ／Ｏポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限の比は、仮想ディスクから読み出されるデータの量および仮想ディスクに書き込まれるデータの量の比に対応する、方法。
適用例７：適用例１に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
各仮想ディスクＩ／Ｏポートにトークンコンテナバケットを割り当てることを含み、
各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、前記仮想ディスクＩ／Ｏポートのスケジューリングを制御するために用いられる仮想ディスクＩ／Ｏポートに割り当てられた前記読み出し−書き込み帯域幅制限のサイズに対応する、方法。
適用例８：適用例７に記載の方法であって、各トークンコンテナの前記容量は、前記対応する仮想ディスクＩ／Ｏポートの前記サービス品質レーティングに比例する、方法。
適用例９：適用例７に記載の方法であって、前記異なる仮想ディスクＩ／Ｏポートに割り当てられた前記トークンコンテナバケットは、同数のトークンコンテナを含む、方法。
適用例１０：適用例７に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
異なる時間区間内の読み出し−書き込み要求に基づいて、各仮想ディスクＩ／Ｏポートに対応する前記トークンコンテナバケット内のトークンコンテナの分配をリアルタイムで調整することを含む、方法。
適用例１１：適用例１０に記載の方法であって、各仮想ディスクＩ／Ｏポートに対応する前記トークンコンテナバケットのリアルタイムの容量は、前記対応するトークンコンテナバケットのクォータ容量以下である、方法。
適用例１２：適用例１１に記載の方法であって、前記物理マシン上の前記仮想ディスクＩ／Ｏポートをスケジューリングすることは、
異なる仮想ディスクＩ／Ｏポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供することを含む、方法。
適用例１３：適用例１に記載の方法であって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
仮想ディスクＩ／Ｏポート数の変更が前記物理マシンで発生した場合に、仮想ディスクＩ／Ｏポート数の前記変更が起きた後に、仮想ディスクＩ／Ｏポートのデータ帯域幅の前記合計予測値に基づいて、読み出し−書き込み帯域幅制限を再割り当てすることを含む、方法。
適用例１４：適用例１に記載の方法であって、前記物理マシン上の前記仮想ディスクＩ／Ｏポートをスケジューリングすることの前に、前記読み出し−書き込み要求と前記仮想ディスクＩ／Ｏポートに対する要求との対応関係に基づいて、重み付き要求キューを生成して、前記重み付き要求キューから時系列の順に前記異なる読み出し−書き込み要求にアクセスすることを備える、方法。
適用例１５：仮想ディスク入出力（Ｉ／Ｏ）ポートをスケジューリングするためのデバイスであって、
少なくとも１つのプロセッサであって、
対応するセットの仮想ディスクＩ／Ｏポートに対して、物理マシン内の前記対応するセットの仮想ディスクＩ／Ｏポートに関連付けられている１セットの読み出し−書き込み帯域幅クォータに基づいて、１セットのサービス品質レーティングを割り当て、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートを決定し、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当て、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクＩ／Ｏポートをスケジューリングするよう構成されたている、少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに接続され、前記少なくとも１つのプロセッサに命令を提供するよう構成されているメモリと、
を備える、デバイス。
適用例１６：適用例１５に記載のデバイスであって、前記読み出し−書き込み帯域幅制限を割り当てることは、
読み出し要求および書き込み要求に従って、それぞれ、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てることを含む、デバイス。
適用例１７：適用例１６に記載のデバイスであって、対応するＩ／Ｏポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限の比は、仮想ディスクから読み出されるデータの量および仮想ディスクに書き込まれるデータの量の比に対応する、デバイス。
適用例１８：適用例１５に記載のデバイスであって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
各仮想ディスクＩ／Ｏポートにトークンコンテナバケットを割り当てることを含み、
各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、前記仮想ディスクＩ／Ｏポートのスケジューリングを制御するために用いられる仮想ディスクＩ／Ｏポートに割り当てられた前記読み出し−書き込み帯域幅制限のサイズに対応する、デバイス。
適用例１９：適用例１８に記載のデバイスであって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
異なる時間区間内の読み出し−書き込み要求に基づいて、各仮想ディスクＩ／Ｏポートに対応する前記トークンコンテナバケット内のトークンコンテナの分配をリアルタイムで調整することを含む、デバイス。
適用例２０：適用例１９に記載のデバイスであって、前記物理マシン上の前記仮想ディスクＩ／Ｏポートをスケジューリングすることは、
異なる仮想ディスクＩ／Ｏポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供することを含む、デバイス。
適用例２１：適用例１５に記載のデバイスであって、前記仮想ディスクＩ／Ｏポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
仮想ディスクＩ／Ｏポート数の変更が前記物理マシンで発生した場合に、仮想ディスクＩ／Ｏポート数の前記変更が起きた後に、仮想ディスクＩ／Ｏポートのデータ帯域幅の前記合計予測値に基づいて、読み出し−書き込み帯域幅制限を再割り当てすることを含む、デバイス。
適用例２２：仮想ディスク入出力（Ｉ／Ｏ）ポートをスケジューリングするためのコンピュータプログラム製品であって、有形で持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
対応するセットの仮想ディスクＩ／Ｏポートに対して、物理マシン内の前記対応するセットの仮想ディスクＩ／Ｏポートに関連付けられている１セットの読み出し−書き込み帯域幅クォータに基づいて、１セットのサービス品質レーティングを割り当てるためのコンピュータ命令と、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクＩ／Ｏポートを決定するためのコンピュータ命令と、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートに読み出し−書き込み帯域幅制限を割り当てるためのコンピュータ命令と、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクＩ／Ｏポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクＩ／Ｏポートをスケジューリングするためのコンピュータ命令と、
を備える、コンピュータプログラム製品。
【国際調査報告】
2016521417.tif 000016
2016521417.tif 000017
2016521417.tif 000018