JP2016521417A - 仮想ディスクの入出力ポートをスケジューリングするための方法およびデバイス - Google Patents

仮想ディスクの入出力ポートをスケジューリングするための方法およびデバイス Download PDF

Info

Publication number
JP2016521417A
JP2016521417A JP2016509073A JP2016509073A JP2016521417A JP 2016521417 A JP2016521417 A JP 2016521417A JP 2016509073 A JP2016509073 A JP 2016509073A JP 2016509073 A JP2016509073 A JP 2016509073A JP 2016521417 A JP2016521417 A JP 2016521417A
Authority
JP
Japan
Prior art keywords
read
virtual disk
write
port
bandwidth
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016509073A
Other languages
English (en)
Other versions
JP6240309B2 (ja
Inventor
リー・シャオボー
チェン・ウェイカイ
チェン・ボー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2016521417A publication Critical patent/JP2016521417A/ja
Application granted granted Critical
Publication of JP6240309B2 publication Critical patent/JP6240309B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Abstract

【解決手段】本願の実施形態は、仮想ディスク入出力(I/O)ポートをスケジューリングするための方法、仮想ディスクI/Oポートをスケジューリングするためのデバイス、および、仮想ディスクI/Oポートをスケジューリングするためのコンピュータプログラム製品に関する。仮想ディスクI/Oポートをスケジューリングするための方法が提供されている。方法は、物理マシン内の対応するセットの仮想ディスクI/Oポートに関連付けられている1セットの読み出し−書き込み帯域幅クォータに基づいて、対応するセットの仮想ディスクI/Oポートに対して1セットのサービス品質レーティングを割り当て、読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、仮想ディスクI/Oポートを決定し、仮想ディスクI/Oポートに読み出し−書き込み帯域幅制限を割り当て、物理マシン上の仮想ディスクI/Oポートをスケジューリングすること、を備える。【選択図】図1

Description

他の出願の相互参照
本願は、すべての目的のために参照により本明細書に組み込まれる、2013年4月18日出願の発明の名称を「A VIRTUAL DISK IO PORT SCHEDULING METHOD AND A SCHEDULING DEVICE THEREFOR」とする中国特許出願第201310135853.1号に基づく優先権を主張する。
本願は、仮想ディスクの入出力ポートをスケジューリングするための方法およびデバイスに関する。
「クラウドコンピューティング」がさらに発展するにつれ、様々なクラウドプラットフォームが、「クラウドサービス」に対するユーザの需要を満たすために導入されてきた。クラウドプラットフォームは、仮想化技術を用いて、中央処理装置(CPU)、メモリ、ハードディスク、および、その他のハードウェアリソースを共有または占有する。一例として、クラウドプラットフォームにおいて、物理マシンが、異なる対応するサービスランクを持つ仮想マシンを有する。各仮想マシンは、複数の仮想ディスクを有しており、各仮想ディスクは、読み書き入出力(I/O)ポート(すなわち、仮想ディスクI/Oポート)を有する。通例、異なるサービスランクを有する仮想マシンが物理マシンで起動される理由は2つある。1)多様なユーザの要件を満たすため、および、2)物理マシンのハードウェアリソース利用を高めるため、である。クラウドプラットフォームにおいて、データ読み書き要求の実際の処理は、I/O読み出し、書き込み、および、共有の制限された公正競争(競合)モデル(fair competition model)ベースの技術(すなわち、先着順の方法)を含む。しかしながら、異なるランクを持つ仮想マシンにおいて、制限されたI/O帯域幅に対する公正競争読み書きモデルは、コストとベネフィットの観点で幾分不公平でありうる。例えば、ユーザは、より高いサービスランクを持つサービスを運用するために、より高い価格を支払いうる。しかしながら、I/O処理の動作は仮想マシンにわたって同じであるため、ユーザはより多くを支払っても、より高いI/O速度の利益を受けることがない。さらに、異なるタイプのビジネスに由来するアプリケーションは、異なるI/O帯域幅要件を有するので、クラウドプラットフォームは、リアルタイムのI/O帯域幅リソース予測に基づいてI/Oスケジューリングをすることが好ましい。例えば、ウェブベースのアプリケーションは、通例、高スループット、低遅延のI/O帯域幅サービスが提供されることを期待する。しかし、一部のログ記録サービスは、しばしば、低スループット、高遅延のI/O帯域幅サービスでも十分に機能する。
既存のクラウドプラットフォームのほとんどは、単一の仮想ディスクのI/O読み書きの複数の仮想マシンを共有しており、仮想ディスクは、通例、物理マシンの物理ディスク上に位置する。しかしながら、クラウドプラットフォームにおいて、仮想マシンによって用いられる仮想ディスクは、必ずしも、仮想マシンが位置する物理マシンのディスク上に位置する必要はない。その代わり、仮想マシンは、物理マシンのクラスタ全体にわたって分散されうる。仮想マシンの分散される性質により、仮想ディスクのI/O動作の制御は、ローカル物理マシンの物理ディスクに、または、ローカル物理マシンのオペレーティングシステムコアに、容易には追加できない。
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
ここで説明する図面は、本願の理解を深めるよう意図されており、本願の一部を形成する。本願の実施形態およびそれらの記載は、本願を説明するよう意図されており、本願の不適切な限定となるものではない。以下の図面が含まれる。
仮想ディスクI/Oポートをスケジューリングするための処理の一実施形態を示すフローチャート。
重み付けされたキューの一実施形態を示す図。
仮想ディスクI/Oポートに読み出し−書き込み帯域幅制限を割り当てるための処理の一実施形態を示すフローチャート。
仮想ディスクI/Oポートをスケジューリングするための処理の別の実施形態を示すフローチャート。
仮想ディスクI/Oポートに割り当てられたトークンコンテナバケットの一実施形態を示す図。
仮想ディスクI/Oポートをスケジューリングするための処理のさらに別の実施形態を示すフローチャート。
仮想ディスクI/Oポートをスケジューリングするためのデバイスの一実施形態を示す構造図。
クラウドプラットフォーム配備の一実施形態を示す構造図。
書き込み要求を処理する時の帯域幅サンプリング統計の一例を示す図。
書き込み要求の従来の処理時の帯域幅サンプリング統計を示す図。
読み出し要求を処理する時の帯域幅サンプリング統計の一例を示す図。
読み出し要求の従来の処理時の帯域幅サンプリング統計を示す図。
仮想ディスクI/Oポートをスケジューリングするためのコンピュータシステムの一実施形態を示す機能図。
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術要素については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
一般的に、コンピュータ装置は、1または複数のプロセッサまたは中央処理装置(CPU)と、入力/出力インターフェースと、ネットワークインターフェースと、メモリとを備えている。
メモリは、コンピュータ読み取り可能な媒体内の非永続的なメモリ、ランダムアクセスメモリ(RAM)、ならびに/もしくは、リードオンリーメモリ(ROM)またはフラッシュメモリ(フラッシュRAM)などの不揮発性メモリ、および、その他の形態を含みうる。メモリは、コンピュータ読み取り可能な媒体の一例である。
コンピュータ読み取り可能な媒体は、永続的、非永続的、着脱可能、および、着脱不可能な媒体を含み、任意の方法または技術によって情報を格納できる。情報は、コンピュータ読み取り可能なコマンド、データ構造、プログラムモジュール、または、その他のデータを含みうる。コンピュータ記憶媒体の例は、相変化メモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、その他のタイプのランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気消去可能プログラム可能リードオンリーメモリ(EEPROM)、フラッシュメモリ、または、その他のメモリ技術、読み出し専用のコンパクトディスクリードオンリーメモリ(CDーROM)、デジタル多機能光学ディスク(DVD)、または、その他の光学メモリ、カセットタイプの磁気テープ、磁気テープ、および、磁気ディスクストレージ、または、その他の磁気ストレージ装置を含むが、これらに限定されない。他の非伝達媒体(non−transmitting medium)が、コンピュータ装置によってアクセス可能な情報を格納するために代わりに用いられてもよい。本明細書で規定されているように、コンピュータ読み取り可能な媒体は、変調データ信号および搬送波など、一時的なコンピュータ読み取り可能媒体(一時的媒体)を含まない。
仮想ディスクI/Oポートをスケジューリングするための方法およびデバイスは、以下を含む。物理マシン内の各仮想ディスクI/Oの読み出し−書き込み帯域幅クォータに基づいて、異なるサービス品質レーティングを各仮想ディスクI/Oポートに割り当てること、データ帯域幅の合計予測値と、現在の時間区間内のすべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートに対応するサービス品質レーティングとに基づいて、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートに、適切な読み出し−書き込み帯域幅制限を割り当てること、ならびに、これらの読み出し−書き込み帯域幅制限と、読み出し−書き込み要求に対応する仮想ディスクI/Oポートの読み出し−書き込み帯域幅制限とに基づいて、物理マシン上の異なる仮想ディスクI/Oポートをスケジューリングすること。
仮想ディスクI/Oポートとは、仮想マシンにアクセスするために用いられるI/Oポートのことである。仮想ディスクI/Oポートは、仮想ポートに対応し、物理インターフェースには対応しない。
物理デバイスとは、実際のハードウェアコンポーネントを含む実際のサーバデバイスのことである。
読み出し−書き込み要求とは、仮想ディスクI/Oポートへの読み出し−書き込み要求のことである。
読み出し−書き込み帯域幅制限とは、物理デバイスが利用できる総ディスクI/O帯域幅の最大限度のことである。
図1は、仮想ディスクI/Oポートをスケジューリングするための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理100は、図8のクラウドプラットフォーム800の仮想マシン8100においてソフトウェアによって実施される。
操作110では、異なるサービス品質レーティングが、物理マシンの各仮想I/Oポートのそれぞれの読み出し−書き込み帯域幅クォータに基づいて、各仮想ディスクI/Oポートに割り当てられる。
いくつかの実施形態において、サービス品質レーティングは、仮想ディスクI/Oポートの異なる読み出し−書き込み帯域幅クォータを区別するために用いられる。例えば、サポートされている読み出し−書き込み帯域幅が比較的大きい場合には、より高いサービス品質レーティングが、対応する仮想ディスクI/Oポートに割り当てられる。サポートされている読み出し−書き込み帯域幅が比較的小さい別の例では、より低いサービス品質レーティングが、対応する仮想ディスクI/Oポートに割り当てられる。いくつかの実施形態において、重みが、サービス品質レーティングを表すために用いられる。
操作120では、クラウドプラットフォームは、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートを決定し、データ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートに対応するサービス品質レーティングとに基づいて、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートに、適切な読み出し−書き込み帯域幅制限を割り当てる。例えば、1msの時間区間内で、クラウドプラットフォームは、最初に、物理マシンについてすべての読み出し−書き込み要求によって用いられる合計データ帯域幅を予測し、次いで、仮想マシンの条件に基づいて、各仮想マシンが利用できる読み出し−書き込み帯域幅を決定する。
実際の実行の過程において、仮想ディスクI/Oポートにアクセスする読み出し−書き込み要求は、比較的ランダムである。換言すると、複数の仮想ディスクが、クラウドプラットフォーム内に分散されているが、時間区間内に、すべての仮想I/Oポートが読み出し−書き込み要求を受信しているわけではない。いくつかの実施形態において、時間区間の長さは、任意に設定される。したがって、どれだけの読み出し−書き込み要求が現在の時間区間にあるのか、そして、これらの読み出し−書き込み要求がデータの読み出しおよび書き込みにどれだけの総帯域幅を用いるのか、を正確に計算することは困難である。一態様として、いくつかの実施形態では、仮想ディスクI/Oポートの効果的なスケジューリングを可能にするために、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅に対して予備評価を実行して、データ帯域幅の合計予測値を取得する。以前の時間区間内のすべての読み出し−書き込み要求のために実際に用いられた合計データ帯域幅が、現在の時間区間内の総データ帯域幅を予測するためのガイドとして比較的大きい価値を持つので、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値として直接的に機能しうる。いくつかの実施形態において、合計帯域幅は、動的に調整された値である。最初、合計帯域幅の値は未知である。したがって、初期値が、任意に割り当てられる。次に、フィードバックを用いて、平衡に達するまで合計帯域幅の値を調整する。いくつかの実施形態において、合計帯域幅は、トラフィックのように、動的に調整された値であることに注意されたい。条件が異なると、固定値ではなく、異なる合計帯域幅値がもたらされる。データ帯域幅の合計予測値は、単一の固定した数値ではなく、異なる時間区間において連続的に調整される。同時に、読み出し−書き込み要求に対応する仮想ディスクI/Oポートは、異なる時間区間において完全に同じであるわけではない。いくつかの時間区間には、より多くの読み出し−書き込み要求が存在し、いくつかの時間区間には、より少ない読み出し−書き込み要求が存在する。したがって、実際の仮想ディスクI/Oポートをスケジューリングするための処理において、読み出し−書き込み要求の仮想ディスクI/Oポートおよびそれらに対応するサービス品質レーティングが現在の時間区間内にあると判定される限りは、読み出し−書き込み要求の仮想ディスクI/Oポートおよびそれらに対応するサービス品質レーティングを有していれば十分である。
操作120における、読み出し−書き込み帯域幅制限の割り当てへの関与は、読み出し−書き込み要求を受信した仮想ディスクI/Oポートに対してのみ生じる。読み出し−書き込み要求を受信していないその他の仮想ディスクI/Oポートに対しては、読み出し−書き込み帯域幅制限の割り当てへの関与は生じない。図2は、重み付けされたキューの一実施形態を示す図である。例えば、サービス品質レーティングが重みで表現され、物理マシン上のN個の仮想ディスクI/Oポートの重み付きキューがWFQ={W1,W2,・・・,Wn}である場合、重み付きキューの形態は、図2に示すようになる。各行は、時系列の仮想ディスクI/Oポートの読み出し−書き込み要求に関係する。重み付きキューの最初の行は、第1の仮想ディスクI/Oポートに関連し、重み付きキューの5番目の行は、第5の仮想ディスクI/Oポートに関連する。或る時間区間内に、読み出し−書き込み要求を持つ仮想ディスクのリアルタイム重み付きキューは、OW={ow1,ow2,・・・,own}である。リアルタイム重み付きキューは、時間区間内に読み出し−書き込み要求を持つ仮想ディスクI/Oポートの重み付きキューを表す。したがって、リアルタイム重み付きキューは、単に、重み付きキューWFQのサブセットである。重み付きキューWFQのこのサブセットは、時間によって異なる。データ1、データ2などは、それぞれの読み出し−書き込み要求のバイト数を表し、行は、読み出し−書き込み要求シーケンスを表し、WFQは、物理マシン上の各仮想マシンの読み出し−書き込み要求の順序を表す。換言すると、クラウドプラットフォームは、リアルタイム重み付きキューに基づいて、現在の時間区間に読み出し−書き込み要求を有する仮想ディスクI/Oポートと、読み出し−書き込み要求を有する仮想ディスクI/Oポートに対応するサービス品質レーティングとを決定する。
重みが、仮想ディスクI/Oポートのサービス品質レーティングを表すために用いられる場合、重み付きキュー(WFQ)からわかるように、すべての仮想ディスクI/Oポートのクォータ重みの総重み(Ws−totalまたはWs−t)と各仮想ディスクI/Oポートの重み(Wi)との関係は、Ws−t=ΣWiであり、リアルタイム重み付きキュー(OW)からわかるように、現在の時間区間におけるリアルタイム重み付け(Wo−t)の合計と読み出し−書き込み要求を持つ仮想ディスクI/Oポートの重みOWiとの関係は、Wo−t=ΣOWiである。
いくつかの実施形態において、データ帯域幅の合計予測値と、仮想ディスクI/Oポートに割り当てられた異なるサービス品質レーティングとに基づいて、適切な読み出し−書き込み帯域幅制限を異なる仮想ディスクI/Oポートに割り当てる時、異なる仮想ディスクI/Oポートに割り当てられた読み出し−書き込み帯域幅制限を取得するために、仮想ディスクI/Oポートのサービス品質レーティングの比に従って、データ帯域幅の合計予測値を各仮想ディスクI/Oポートに割り当てることが可能である。例えば、物理マシンが、4つの仮想ディスク、A、B、C、および、Dを持つとする。4つの仮想ディスクの4つの仮想ディスクI/Oポートのサービス品質レーティングが、それぞれ、1、1、4、および、4であるとする。2つの仮想ディスクI/OポートAおよびCだけが、読み出し−書き込み要求を有する。同時に、現在の時間区間内のすべての読み出し−書き込み要求の読み出し−書き込み帯域幅の合計予測値は、前の時間区間に基づいて、100Mである。Mは、Mbpsに対応する。この場合、4つの仮想ディスクI/Oポートが存在するが、2つの仮想ディスクI/Oポートだけが、対応する読み出し−書き込み要求を有する。したがって、読み出し−書き込み要求を有する2つの仮想ディスクI/Oポートだけが、読み出し−書き込み帯域幅の合計予測値の割り当てに関与し、以下のように、2つの仮想ディスクI/Oポートそれぞれの読み出し−書き込み帯域幅制限が取得される。100*1/5=20M、および、100*4/5=80M。
図3は、仮想ディスクI/Oポートに読み出し−書き込み帯域幅制限を割り当てるための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理300は、図1の工程120の一実施例であり、以下の操作を含む。
操作310では、クラウドプラットフォームは、前の時間区間内のすべての読み出し−書き込み要求のために実際に利用されたすべてのデータ帯域幅の合計を、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値と見なす。
操作320では、クラウドプラットフォームは、適切な読み出し−書き込み帯域幅制限を割り当てるために、総帯域幅の各仮想ディスクI/Oポートのサービス品質レーティングの比に基づいて、データ帯域幅の合計予測値を各仮想ディスクI/Oポートに割り当てる。
いくつかの実施形態において、実際の応用中に、特定の仮想ディスクI/Oポートに対する書き込みデータおよび読み出しデータが、データ量について等しい場合、読み出し要求および書き込み要求のための帯域幅値を別個に設定する必要はない。例えば、サービス品質レーティングが1である仮想ディスクI/Oポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限が共に20Mである場合、サービス品質レーティングが4である仮想ディスクI/Oポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限は共に80Mである。例えば、セキュリティ上の問題が存在する場合など、読み出しデータの複数倍の書き込みデータがある場合、操作320または120のように、異なる読み出し−書き込み帯域幅制限が、異なる仮想ディスクI/Oポートに割り当てられる時に、読み出し帯域幅および書き込み帯域幅の割り当てが、それぞれ、読み出し要求および書き込み要求に基づいて別個に実施される。クラウドプラットフォーム上でのデータの有用性を保証するために、1つのデータが3回書き込まれるが、1つのデータの読み出しは、3つのコピーのいずれかから起こりうるので、読み出し帯域幅および書き込み帯域幅の割り当ては、読み出し要求および書き込み要求とは異なる。一例として、読み出し−書き込み帯域幅の割り当てが、それぞれ、読み出し要求および書き込み要求に基づいて別個に実施され、単一の仮想ディスクに書き込まれるデータの量と、単一の仮想ディスクから読み出されるデータの量との間の比が倍数因子である場合、仮想ディスクI/Oポート読み出し動作に割り当てられる帯域幅と、書き込み動作に割り当てられる帯域幅との間の比は、倍数因子に対応する。例えば、書き込みデータが読み出しデータの3倍であり、サービス品質レーティングが1である仮想ディスクに割り当てられた読み出し帯域幅制限が20Mである場合、書き込みデータは読み出しデータの3倍であるので、読み出し帯域幅制限および書き込み帯域幅制限は、別個に設定される。さらに、読み出し帯域幅制限は、書き込み帯域幅制限の3分の1に設定される。換言すると、読み出し帯域幅制限は20Mであり、書き込み帯域幅制限は約6.6Mである。
いくつかの実施形態において、処理100が最初に実行される時、初期ランダム値が、現在の時間区間内のすべての読み出し−書き込み要求によって要求されたデータ帯域幅の合計予測値として機能する。異なる時間区間における処理100の実行中、データ帯域幅のこの合計プリセット値は、データ帯域幅のこの合計プリセット値と設定値との間の差を有効範囲内に収めるように絶えず調整される。一例として、用いられるデータ帯域幅の合計予測値に基づいてランダム値の読み出し要求を調整するために、特定の時間区間が終わった後に、この時間区間内のすべての読み出し要求によって実際に生成された読み出し帯域幅がカウントされ、実際の読み出し帯域幅統計結果が取得される。実際の読み出し帯域幅統計結果は、ランダム値と比較される。実際の読み出し帯域幅統計結果のランダム値に対する比が相対的に小さいすなわち1に近い場合、その比の2つの値が相対的に近いことを意味する。データがデータ接続を介して送信される時間が必要なので、実際にカウントされた読み出し帯域幅統計値は、通例、このランダム値以下である。このランダム値は、実際の帯域幅値と比べて小さめである場合もある。したがって、いくつかの実施形態において、特定の割合(読み出し帯域幅統計結果の10%など)が、ランダム値のベースから始めて各時間区間に加算される。上述のように、合計値は任意の初期値を用いて決定されるので、初期値は、フィードバックおよび初期値の差に基づいて調整される。差が閾値よりも大きい場合、初期値は、その差が許容可能な値に納まるまで調整される。比が比較的大きく、特定の範囲内にある場合、このランダム値が、実際の帯域幅値と比べて大きめでありうることを意味する。したがって、特定の割合(読み出し帯域幅統計結果の10%など)が、ランダム値のベースから始めて各時間区間から減算される。上記の処理を通して、初期ランダム値および特定の時間区間内の帯域幅統計値は、徐々に妥当な範囲内に維持され、処理の始めに与えられた初期ランダム値は、データ帯域幅の合計予測値として機能し、それにより、絶えず修正される。データ帯域幅の合計予測値の修正のための計算は、以下の通りである。
(1)設定ランダム値が第1の閾値よりも小さい場合、ランダム値調整のサイズは、以下のように大きくなる。
i+1=R+S/M、ここで、Rは、i番目の時間区間に対応する読み出し−書き込み帯域幅の合計予測値を表しており、ランダム値である。Sは、i番目の時間区間内に実際の読み出し−書き込み要求によって用いられた読み出し−書き込み帯域幅統計値に関連する。Mは、整数に対応する。Ri+1は、(i+1)番目の時間区間に対応する読み出し−書き込み帯域幅の合計予測値に関する。統計帯域幅値に関連するSは、調整が起きるごとに、帯域幅が実際の帯域幅値に基づいて調整されることを意味する。調整のステップサイズ(刻み幅)は、毎回異なってよく、非線形である。したがって、初期値が比較的小さい場合、妥当な値に到達するために、調整のステップサイズは、増加する必要がある。Mは固定値であり、経験的に10に設定される。
(2)設定値が第2の閾値よりも大きい場合、調整のステップサイズは、以下のように小さくなる。
i+1=R−S/M、ここで、Rは、i番目の時間区間に対応する読み出し−書き込み帯域幅の合計予測値を表しており、ランダム値である。Sは、i番目の時間区間内に実際の読み出し−書き込み要求によって用いられた読み出し−書き込み帯域幅統計値に関連する。Mは、整数に対応する。Ri+1は、(i+1)番目の時間区間に対応する読み出し−書き込み帯域幅の合計予測値に関する。
操作130では、クラウドプラットフォームは、現在の時間区間内に各読み出し−書き込み要求によって用いられる実際の帯域幅と、読み出し−書き込み要求に対応する仮想ディスクI/Oポートの読み出し−書き込み帯域幅制限とに基づいて、物理マシン上の異なる仮想ディスクI/Oポートをスケジューリングする。
いくつかの実施形態において、読み出し−書き込み帯域幅を制御するために、トークンコンテナベースのトークンアルゴリズムが用いられる。現在の時間区間における仮想ディスクI/Oポートに対応するトークンコンテナの数が制御され、現在の時間区間内に各読み出し−書き込み要求によって用いられる実際の帯域幅が、その仮想ディスクI/Oポートに対応するすべてのトークンコンテナのリアルタイムの総容量と比較される。仮想ディスクI/Oポートの読み出しおよび書き込みが比較結果に基づいて実行され、したがって、仮想ディスクI/Oポートスケジューリングが得られる。
図4は、仮想ディスクI/Oポートをスケジューリングするための処理の別の実施形態を示すフローチャートである。いくつかの実施形態において、処理400は、図8のクラウドプラットフォーム800によって実施され、以下の操作を含む。
操作410では、クラウドプラットフォームは、物理マシンの各仮想ディスクI/Oポートの読み出し−書き込み帯域幅クォータに基づいて、異なるサービス品質レーティングを各仮想ディスクI/Oポートに割り当てる。
いくつかの実施形態において、図1の操作110が、操作410に対応する。例えば、両操作は、異なる仮想ディスクI/Oポートのサービス品質レーティングを表すために重みを用いる。
操作420では、クラウドプラットフォームは、現在の時間区間内にすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートとを決定し、データ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートに対応するサービス品質レーティングとに基づいて、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートに、適切な読み出し−書き込み帯域幅制限を割り当てる。
操作420は、図1の操作120と同様であってよいことに注意されたい。例えば、読み出し−書き込み帯域幅制限の割り当ては、現在の時間区間内のすべての読み出し−書き込み要求によって要求されたデータ帯域幅の合計予測値として機能する前の時間区間内のすべての読み出し−書き込み要求によって実際に用いられたすべてのデータ帯域幅の合計に基づいて実施される。
操作430では、クラウドプラットフォームは、トークンコンテナバケットを各仮想ディスクI/Oポートに割り当てる。いくつかの実施形態において、各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、異なる仮想I/Oポートのスケジューリングを制御するために用いられる仮想ディスクI/Oポートに割り当てられた読み出し−書き込み帯域幅制限のサイズに対応する。
図5は、仮想ディスクI/Oポートに割り当てられたトークンコンテナバケットの一実施形態を示す図である。最初の行は、第1の仮想ディスクI/Oポートに割り当てられたトークンコンテナバケット(ベースバケット)に関する。5番目の行は、第5の仮想ディスクI/Oポートに割り当てられたトークンコンテナバケット(ベースバケット)に関する。例えば、各トークンコンテナバケット(ベースバケット)は、10のトークンコンテナ(トークンーバケット)を有し、各トークンは、トークンコンテナに対応する。
上述のように、仮想ディスクI/Oポートは、トークンアルゴリズムに基づいて効果的にスケジューリングできる。1つのトークンコンテナバケット(ベースバケット)が、各仮想ディスクI/Oポートに割り当てられ、トークンコンテナバケット(ベースバケット)は、特定の数のトークンコンテナを収容する。異なる仮想ディスクI/Oポートに対応するトークンコンテナバケットが、同じ数のトークンコンテナを含む。例えば、サービス品質レーティングが1である仮想ディスクI/Oポートに対応するトークンコンテナバケットが、最大10のトークンコンテナを収容できるものとして規定される。同様に、サービス品質レーティングが4である仮想ディスクI/Oポートに対応するトークンコンテナバケットが、最大10のトークンコンテナを収容できるものとして規定される。換言すると、いくつかの実施形態において、様々な仮想ディスクI/Oポートに割り当てられたトークンコンテナバケットに含まれるトークンコンテナの数は等しい。特定の数の読み出し−書き込み要求が処理された後、各トークンコンテナバケット内の実際の残りのトークンコンテナの数は同じでなくてもよいことに注意されたい。各トークンコンテナバケット内の実際の残りのトークンコンテナの数が同じでなくてもよい理由は、仮想ディスクI/Oポートスケジューリング処理において、制御されるトークンコンテナの分配が、実際の読み出し−書き込み要求の帯域幅に基づくからである。異なる読み出し−書き込み要求は、異なる帯域幅を利用する。したがって、トークンコンテナの具体的な分配量は、異なる仮想ディスクI/Oポートについて完全に同じとは限らない。一態様として、異なるトークンコンテナバケット内のトークンコンテナの容量が異なる。容量は実際に、対応する仮想ディスクI/Oポートに割り当てられた読み出し−書き込み帯域幅制限に対応する。例えば、読み出しデータの書き込みデータに対する比が1:1であり、サービス品質レーティングが1である仮想ディスクI/Oポートに割り当てられた読み出し−書き込み帯域幅制限が20Mである場合、対応するトークンコンテナバケット内のトークンコンテナの容量は20Mになる。同様に、読み出し−書き込み帯域幅制限が80Mであるトークンコンテナバケットでは、トークンコンテナ容量は80Mになる。別の例において、読み出しデータの書き込みデータに対する比が1:3である場合、読み出し帯域幅および書き込み帯域幅は、独立的に制御される。サービス品質レーティングが1である仮想ディスクI/Oポートに割り当てられた読み出し帯域幅制限が20Mである場合、制御が独立的に実行されると、対応する読み出し要求のトークンコンテナバケット内のトークンコンテナの容量は20Mになる。書き込み帯域幅制限は約6.6Mであり、対応するトークンコンテナバケット内のトークンコンテナの容量は6.6Mになる。クラウドストレージにおいて、高いデータ有用性を保証するために、データがクラウドストレージに書き込まれる時に、データが3倍になる(3回書き込まれる)ことに注意されたい。例えば、1MBの書き込みデータは、物理ドライブ上の3MBのデータに対応する。3つの書き込まれたコピーのいずれかを読み出す時、ユーザが書き込まれたばかりの1MBのデータを読み出したければ、1MBのデータだけが読み出される。読み出しおよび書き込みのためのI/O能力は、大きくは異ならない。したがって、ユーザが1MBのデータを書き込むのに3秒費やす場合、1秒だけが、1MBのデータを読み出すために費やされ、これは、書き込み速度が読み出し速度の約3分の1であることを意味する。読み出し−書き込み帯域幅制限が80Mであるトークンコンテナバケットにおいて、対応する読み出し帯域幅のトークンコンテナ容量は80Mであるが、対応する書き込み帯域幅のトークンコンテナ容量は約26.6Mである。換言すると、1つのトークンコンテナバケットが各仮想ディスクI/Oポートに割り当てられる場合、各仮想ディスクI/Oポートのトークンコンテナバケットに含まれるトークンコンテナのサイズは、対応する仮想ディスクI/Oポートのサービス品質レーティングと正の関係を持つ。
いくつかの実施形態において、異なる仮想ディスクI/Oポートのスケジューリング中、各仮想ディスクI/Oポートに割り当てられたトークンコンテナバケット内のトークンコンテナの分配は、異なる時間区間の読み出し−書き込み要求に基づいて、リアルタイムで調整される。一例として、リアルタイム調整が各仮想ディスクI/Oポートに割り当てられたトークンコンテナバケット内のトークンコンテナの分配に対してなされる時、仮想ディスクI/Oポートに対応するトークンコンテナバケットのリアルタイムの容量は、対応するトークンコンテナバケットのクォータ容量以下である。トークンコンテナのクォータ容量とは、トークンコンテナバケットによって収容できるコンテナの最大数を意味しうることに注意されたい。トークンコンテナのこのクォータ容量は、いくつかの検定の統計的結果から得ることができる。
例えば、ある時間区間内で、サービス品質レーティングが1である仮想ディスクI/Oポートについて、対応するトークンコンテナバケットが、3つのトークンコンテナのみを収容するとする。各トークンコンテナの容量は20Mである。したがって、現在の時間区間において、この仮想ディスクI/Oポートについて認められうるデータの読み出しおよび書き込みのための最大帯域幅は、60Mである。したがって、現在の時間区間内に実際の読み出し−書き込み要求によって用いられる帯域幅が60Mよりも大きい場合(例えば、75M)、選択肢は、次の時間区間を待つことであり、次の時間区間では、少なくとも別の20Mのトークンコンテナがこのトークンコンテナバケットに再び分配される。このように、これらの実際の読み出し−書き込み要求の読み出しおよび書き込みを達成できる。
いくつかの実施形態において、トークンコンテナの分配が制御される時、その制御は、現在の時間区間内で対応するトークンコンテナバケットに実際に収容されたトークンコンテナの数Rnと、実際の読み出し−書き込み要求の帯域幅によって用いられるトークンコンテナの数Nnとに基づいてなされる。現在の時間区間内の対応するトークンコンテナバケットに実際に収容されたRn個のトークンコンテナの合計容量が正の数である場合、現在の時間区間におけるトークンコンテナバケット内のトークンコンテナの数が、対応する読み出し−書き込み要求を達成するのに十分であることを意味する。Rnは、対応するトークンコンテナバケット内のトークンコンテナの合計容量を表し、Nnは、読み出し−書き込み要求のバイト数を表す。読み出し−書き込み要求の続行を可能にするためのアルゴリズムは、以下の通りである。Rnが正の値である場合、Nnの値にかかわらず、読み出し−書き込み要求を進めることが可能であり、NnがRnから減算される。Nn>Rnである場合、その後の読み出し−書き込み要求は、Rnが再び正になるまで続行できない。換言すると、トークンコンテナをトークンコンテナバケットに分配することが可能である。最大でトークンコンテナバケットに分配されるトークンコンテナの数が、クォータである。例えば、トークンコンテナバケット内のトークンコンテナクォータは、10である。換言すると、トークンコンテナは、分配されたトークンコンテナの数が最大で10に達するまで、分配される。換言すると、トークンコンテナバケット内のトークンコンテナ数のクォータを超えていない内は、読み出し−書き込み要求に用いられる帯域幅に従って、トークンコンテナを分配できる。
図4に戻ると、操作440では、クラウドプラットフォームは、現在の時間区間内に各読み出し−書き込み要求によって用いられる実際の帯域幅と、各読み出し−書き込み要求に対応する仮想ディスクI/Oポートの読み出し−書き込み帯域幅制限とに基づいて、物理マシン上の異なる仮想ディスクI/Oポートをスケジューリングする。
例えば、現在の時間区間において、仮想ディスクI/Oポートに対応するトークンコンテナバケットが4つのトークンコンテナを有し、各トークンコンテナの容量が20Mに設定されているとする。したがって、このトークンコンテナバケットの実際の現在の容量は、4*20=80Mであり、正の数である。読み出し−書き込み要求が80M未満である場合、読み出し−書き込み要求は、現在の時間区間内で実行可能である。そうでない場合、読み出し−書き込み要求の実行は、特定の数の時間区間内で、トークンコンテナバケットのリアルタイムの容量が実際の読み出し−書き込み要求によって用いられる帯域幅値に達する十分なトークンコンテナの分配が達成されるまで、遅延される。
図6は、仮想ディスクI/Oポートをスケジューリングするための処理のさらに別の実施形態を示すフローチャートである。処理600は、以下のように、上記の処理とは異なる。上記の処理に基づいて構築された、いくつかの実施形態において、いくつかの時間区間後に、処理600は、統計分析を介して、特定の仮想ディスクI/Oポートの帯域幅が完全には利用されていないことを知る。換言すると、一部の帯域幅が利用されていない。同時に、特定の仮想ディスクI/Oポートの帯域幅が、対応する読み出し−書き込み要求を満たすのに不十分である。したがって、いくつかの実施形態において、完全には利用されていない仮想ディスクI/Oポートの帯域幅が、さらなる帯域幅を必要とする仮想ディスクI/Oポートに割り当てられる。換言すると、或る時間区間中に、仮想マシンの一部の仮想ディスクI/Oポートが、読み出し−書き込み要求を全く持たない場合があるので、これらの仮想ディスクI/Oポートに割り当てられたトークンコンテナは利用されない。したがって、全帯域幅の利用率向上を保証するために、これらの利用されていないトークンコンテナが集められて、トークンコンテナを利用しうる仮想ディスクI/Oポートに再分配される。実際の制御は、トークンコンテナの補償を通して影響を受けうる。いくつかの実施形態において、処理600は、図8のクラウドプラットフォーム800によって実施され、以下の操作を含む。
操作610では、クラウドプラットフォームは、物理マシンの各仮想ディスクI/Oポートの読み出し−書き込み帯域幅クォータに基づいて、異なるサービス品質レーティングを各仮想ディスクI/Oポートに割り当てる。仮想ディスクI/Oポートの帯域幅は共有されるが、読み出し−書き込み要求は別個に制御されることに注意されたい。
操作620では、クラウドプラットフォームは、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートとを決定し、データ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートに対応するサービス品質レーティングとに基づいて、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートに、適切な読み出し−書き込み帯域幅制限を割り当てる。
操作630では、クラウドプラットフォームは、トークンコンテナバケットを各仮想ディスクI/Oポートに割り当てる。いくつかの実施形態において、各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、異なる仮想ディスクI/Oポートのスケジューリングを制御するために用いられる仮想ディスクI/Oポートに割り当てられた読み出し−書き込み帯域幅制限のサイズに対応する。
操作640では、クラウドプラットフォームは、現在の時間区間において帯域幅を完全には利用していない仮想ディスクI/Oポートと、帯域幅補償を必要とする仮想ディスクI/Oポートとを決定し、完全には利用されていない仮想ディスクI/Oポートに対応するトークンコンテナバケット内の余剰のトークンコンテナを、帯域幅を必要とする仮想ディスクI/Oポートに分配して、異なる仮想ディスクI/Oポートの異なるトークンコンテナバケットの間でトークンコンテナの補償を行う。
操作650では、クラウドプラットフォームは、現在の時間区間内に各読み出し−書き込み要求によって用いられる実際の帯域幅と、各読み出し−書き込み要求に対応する仮想ディスクI/Oポートの読み出し−書き込み帯域幅制限とに基づいて、物理マシン上の異なる仮想ディスクI/Oポートをスケジューリングする。
操作610から640を何回か実行した後、各実行後に収集された実際の読み出し−書き込み帯域幅についての統計値により、特定の仮想ディスクI/Oポートのトークンコンテナバケット内の余剰のトークンコンテナ、および、読み出し−書き込み帯域幅を満たすことができない特定の仮想ディスクI/Oポートのトークンコンテナバケット内のトークンコンテナが、存在することがわかる。この時点で、余剰のトークンコンテナは、トークンコンテナを必要とするトークンコンテナバケットを補償するために用いられる。いくつかの実施形態において、補償は、仮想ディスクI/Oポートのサービス品質レーティングに基づいて実施される。例えば、或る仮想ディスクI/Oポートのトークンコンテナバケットが20Mのトークンコンテナの余剰を有しており、サービス品質レーティング2および4をそれぞれ有する別の2つの仮想ディスクI/Oポートのコンテナバケットでトークンコンテナが不足している場合、サービス品質レーティングが2である仮想ディスクI/Oポートが補償として20Mの3分の1(すなわち、約6.7M)を受け取り、サービス品質レーティングが4である仮想ディスクI/Oポートが補償として20Mの3分の2(すなわち、約13.3M)を受け取る。
同様に、いくつかの実施形態において、トークンコンテナの補償中、補償に利用可能なトークンコンテナの容量すなわち余分なトークンコンテナ容量が合計される。次いで、帯域幅の不足と、対応するサービス品質レーティングとを有する物理マシン上の仮想ディスクI/Oポートがカウントされる。補償される全トークンコンテナは、サービス品質レーティングの比に基づいて、補償される仮想ディスクI/Oポートに割り当てられる。補償の結果として、いくつかの状況では、補償されたトークンコンテナバケットが、それらのクォータを超過しうることに注意されたい。したがって、その後の時間区間において、これらのトークンコンテナバケットは、トークンコンテナバケット内の実際のトークンコンテナ数がクォータ未満になるまで、トークンコンテナの分配すなわち補償を受けることができない。
上述の処理の実施形態に基づくと、物理マシン上の仮想ディスクI/Oポート数が変わり、異なる読み出し−書き込み帯域幅制限が、異なる仮想ディスクI/Oポートに割り当てられる場合に、数の変更後に、仮想ディスクI/Oポートに読み出し−書き込み帯域幅制限を再割り当てできる。
一例を以下に提供する。トークンコンテナの補償なしに読み出し−書き込み要求を処理するために1つの物理マシン上の2つの仮想ディスクI/Oポートが用いられ、読み出し−書き込みデータ比が1:1であるとする。この例において、2つの仮想ディスクI/Oポートのサービス品質レーティングは1および4であり、現在の時間区間内のすべての読み出し要求および書き込み要求のデータ帯域幅の合計予測値は100Mである。したがって、サービス品質の比に従って、サービス品質レーティングが1である仮想ディスクI/Oポートは、100Mの5分の1(すなわち、20M)を割り当てられ、サービス品質レーティングが4である仮想ディスクI/Oポートは、100Mの5分の4(すなわち、80M)を割り当てられる。これらの割り当て量は、それぞれの仮想ディスクI/Oポートの読み出し帯域幅制限に対応する。読み出しデータおよび書き込みデータの比が1:1なので、これらの2つの仮想ディスクI/Oポートの書き込み帯域幅制限は、同様に、20Mおよび80Mである。上記の割り当てに基づいて、2つの仮想ディスクI/Oポートに対応する読み出しトークンコンテナバケットが共に10の読み出しトークンコンテナを有し、読み出しトークンコンテナの容量がそれぞれ20Mおよび80Mであると仮定する。現在の時間区間において、1つの読み出し要求が、読み出し−書き込み要求キューから取得される。サービス品質レーティングが1である仮想ディスクI/Oポートに対してデータ読み出し動作が実行される。この読み出し要求によって要求されるデータ帯域幅は、30Mである。現在の時間区間において、サービス品質レーティングが1である仮想ディスクI/Oポートのトークンコンテナバケットは、合計10の読み出しトークンコンテナを有しており、各読み出しトークンコンテナは、20Mの容量を有する。サポート可能な合計帯域幅は、10*20=200M(正の数)であり、30Mの読み出し要求を満たすことができる。サービス品質レーティングが1である仮想ディスクI/Oポートに対して実行されるデータ読み出しまたは書き込み動作のために、別の読み出し要求または書き込み要求が、読み出し−書き込み要求キューから取得される場合に、この読み出しまたは書き込み要求によって要求されるデータ帯域幅が190Mであるとする。要求データ帯域幅が30Mであった前の読み出し−書き込み要求の実行により、対応する仮想ディスクに残るデータ帯域幅は、200−30=170Mのみである。対応する仮想ディスクI/Oポートのトークンコンテナバケット内のすべてのトークンコンテナの合計容量は、正の数である。したがって、別の読み出しまたは書き込み要求によって用いられるデータ帯域幅が190Mであるので、別の読み出しまたは書き込み要求は実行可能である。しかしながら、データ帯域幅が190Mである要求の実行後、対応する仮想ディスクI/Oポートに残るトークンコンテナの容量は、170−190=−20Mである。要求されたデータ帯域幅が、負の数になった。したがって、現在の区間内の他の読み出し−書き込み要求は、一時的に実行されない。対応するトークンコンテナバケット内のトークンコンテナの合計容量が正になるように、次の時間区間内にトークンコンテナを対応するトークンコンテナバケットに再分配することが待たれる。待機後にのみ、他の読み出しまたは書き込み要求の実行を完了できる。トークンコンテナバケット内のトークンコンテナが最大数に近くなると(例えば、トークンコンテナバケットが最大10の読み出しトークンコンテナを収容できる場合)、トークンコンテナバケットに分配されるトークンコンテナは自動的に破棄されることに注意されたい。一態様として、破棄されるトークンコンテナは、トークンコンテナの不足した他のトークンコンテナバケットに補償として与えられてよい。
一例を以下に提供する。トークンコンテナの補償を利用することなしに読み出し−書き込み要求を処理する1つの物理マシン上の2つの仮想ディスクI/Oポートが用いられ、読み出し−書き込みデータ比が1:3であるとする。2つの仮想ディスクI/Oのサービス品質レーティングは1および4であり、現在の時間区間内のすべての読み出し要求および書き込み要求のデータ帯域幅の合計予測値は100Mである。したがって、サービス品質レーティングの比に従って、サービス品質レーティングが1である仮想ディスクI/Oポートは、100Mの5分の1(すなわち、20M)を割り当てられ、サービス品質レーティングが4である仮想ディスクI/Oポートは、100Mの5分の4(すなわち、80M)を割り当てられる。これらの割り当て量は、それぞれの仮想ディスクI/Oポートの読み出し帯域幅制限に対応する。上記の割り当て量に基づいて、2つの仮想ディスクI/Oポートに対応する読み出しトークンコンテナバケットが共に10の読み出しトークンコンテナを有するように設定され、読み出しトークンコンテナの容量がそれぞれ20Mおよび80Mであると仮定する。読み出しデータおよび書き込みデータの比が1:3なので、これらの2つの仮想ディスクI/Oポートの書き込み帯域幅制限は、同様に、6.6Mおよび26.4Mである。2つの仮想ディスクI/Oポートに対応する読み出しトークンコンテナバケットが共に10の書き込みトークンコンテナを有し、書き込みトークンコンテナの容量がそれぞれ6.6Mおよび26.4Mであると仮定する。現在の時間区間において、1つの読み出し要求が、読み出し−書き込み要求キューから取得される。サービス品質レーティングが1である仮想ディスクI/Oポートに対してデータ読み出し動作が実行される。この読み出し要求によって用いられるデータ帯域幅は、30Mである。現在の時間区間において、サービス品質レーティングが1である仮想ディスクI/Oポートのトークンコンテナバケットは、合計10の読み出しトークンコンテナを有しており、各読み出しトークンコンテナは、20Mの容量を有する。サポート可能な帯域幅は、10*20=200M(正の数)であり、30Mの読み出し要求を満たすことができる。したがって、この読み出し要求は実行され、1.5個のトークンコンテナの容量に等しい帯域幅が、トークンコンテナバケットから除去される。別の書き込み要求が、読み出し−書き込み要求キューから取得され、サービス品質レーティングが1である仮想ディスクI/Oポートに対してデータ読み出しまたはデータ書き込み動作が実行される場合、この書き込み要求によって要求されるデータ帯域幅は、60Mになる。対応する仮想ディスクI/Oポート書き込みトークンコンテナバケットが6.6*10=66M(正の数)の帯域幅を有するので、任意の帯域幅(例えば、80M)の書き込み要求を現在の時間区間内で実行できる。しかしながら、前の書き込み要求が実行されたので、対応する書き込みトークンコンテナバケット内のトークンコンテナの総容量は、66M−88M=−14Mになり、負の数である。他の書き込み要求の実行は果たされない。したがって、書き込みトークンコンテナバケット内のトークンコンテナの合計容量が正になるように、次の時間区間内の書き込みトークンコンテナの分配が遅延される。また、トークンコンテナバケット内のトークンコンテナが最大数に近くなると(例えば、トークンコンテナバケットが最大10の読み出しトークンコンテナを収容すると)、このトークンコンテナバケットに分配されるトークンコンテナは自動的に破棄されることに注意されたい。いくつかの実施形態において、破棄されたトークンコンテナは、トークンコンテナの不足する他のトークンコンテナバケッを補償するために用いられる。
以下のことが上述の実施形態に関連することに注意されたい。物理マシン上の仮想ディスクI/Oポート数が変わり、異なる読み出し−書き込み帯域幅制限が、異なる仮想ディスクI/Oポートに割り当てられる場合に、数の変更後に、仮想ディスクI/Oポートに読み出し−書き込み帯域幅制限を再割り当てできる。
図7は、仮想ディスクI/Oポートをスケジューリングするためのデバイスの一実施形態を示す構造図である。いくつかの実施形態において、デバイス700は、図8のクラウドプラットフォーム800の実装例であり、レーティング付与ユニット710、制限割り当てユニット720、および、スケジューリングユニット730を備える。
レーティング付与ユニット710は、物理マシン内の各仮想ディスクI/Oポートの読み出し−書き込み帯域幅クォータに基づいて、異なるサービス品質レーティングを各仮想ディスクI/Oポートに割り当てる。
制限割り当てユニット720は、現在の時間区間内のすべての読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートとを決定し、データ帯域幅の合計予測値と、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートに対応するサービス品質レーティングとに基づいて、すべての読み出し−書き込み要求に対応する仮想ディスクI/Oポートに、適切な読み出し−書き込み帯域幅制限を割り当てる。
スケジューリングユニット730は、現在の時間区間内に各読み出し−書き込み要求によって用いられる実際の帯域幅と、各読み出し−書き込み要求に対応する仮想ディスクI/Oポートの読み出し−書き込み帯域幅制限とに基づいて、物理マシン上の異なる仮想ディスクI/Oポートをスケジューリングする。
別の実施形態において、制限割り当てユニット720は、さらに、読み出し要求と書き込み要求との比較に基づいて、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てる。独立的に割り当てを行う理由は、書き込みおよび読み出し要求が実行される時に、書き込みデータおよび読み出しデータが等しくないからである。さらなる説明は、上記の対応する処理に関して提供した。いくつかの実施形態において、仮想ディスクに書き込まれるデータの量および個々の仮想ディスクから読み出されるデータの量が或る比を構成する時、制限割り当てユニット720によって対応するI/Oポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅は、対応する比を構成する。
いくつかの実施形態において、仮想ディスクI/Oポートをスケジューリングするために、制限割り当てユニット720は、トークンコンテナバケットを各仮想ディスクI/Oポートに割り当て、各トークンコンテナバケットは、複数のトークンコンテナを含む。各トークンコンテナの容量は、異なる仮想I/Oポートのスケジューリングを制御するために用いられる仮想ディスクI/Oポートに割り当てられた読み出し−書き込み帯域幅制限のサイズに対応する。一例として、スケジューリング処理において、制限割り当てユニット720は、異なる時間区間の読み出し−書き込み要求に対応するリアルタイム調整を、各仮想ディスクI/Oポートに対応するトークンコンテナバケット内のトークンコンテナの分配に対して行う。かかる状況は、仮想ディスクI/Oポート数に対応するトークンコンテナバケット内のトークンコンテナ数がトークンコンテナバケットクォータよりも小さいことに対処する。
いくつかの実施形態において、制限割り当てユニット720は、物理マシン上の異なる仮想ディスクI/Oポートをスケジューリングする時、異なる仮想ディスクI/Oポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供する。かかる状況は以下に対処できる。一部の場合において、物理マシン内の特定の仮想ディスクI/Oポートに対応するトークンコンテナバケットは、それらのクォータを達成しており、実際の読み出し−書き込み要求で用いられる帯域幅を満たすことができない。同時に、トークンコンテナが使い果たされていない他の仮想ディスクI/Oポートに対応するトークンコンテナバケットが存在する。換言すると、他の仮想ディスクI/Oポートに対応するトークンコンテナバケットは、非クォータ状態(非割り当て状態)にある可能性が非常に高い。したがって、余剰トークンコンテナと、補償される仮想ディスクI/Oポートに対応するトークンコンテナバケットとの間で、補償が実施される。
いくつかの実施形態において、仮想ディスクI/Oポートの数の変化が物理マシンに生じ、対応する読み出し−書き込み帯域幅制限が異なる仮想ディスクI/Oポートに割り当てられる時、制限割り当てユニット720は、数の変化が生じた後に仮想ディスクI/Oポートの読み出し−書き込み帯域幅制限を再割り当てする。
いくつかの実施形態において、時間区間は、時間区間がリアルタイム応答によって用いられる時間区間に近づくまで、リアルタイム応答に従って連続的に調整される。
図8は、クラウドプラットフォーム配備の一実施形態を示す構造図である。いくつかの実施形態において、クラウドプラットフォーム配備800は、上記の処理を実施し、クラウドストレージ820を形成するように組み合わされた複数の物理マシン810を含む。各物理マシン810は、複数の分散された仮想マシン8100に対応しうる。各仮想マシン8100は、複数の仮想ディスク(図示せず)に対応する。これらの仮想ディスクは、WFQキューに対応する。各仮想ディスクは、対応する仮想ディスクI/Oポートを有する。いくつかの実施形態において、各物理マシン810上の仮想ディスクI/Oポートのスケジューリングは、上記の処理の1つに基づく。
例えば、物理マシンが4つの仮想マシン、VM1、VM2、VM3、および、VM4を有すると仮定する。各仮想マシンは、1つの仮想ディスクI/Oポートを有する。4つの仮想マシンの重みは、それぞれ1、1、4、および、4である。
図9は、本願に記載の技術を用いて書き込み要求を処理する時の帯域幅サンプリング統計の一例を示す図である。仮想マシンVM1、VM2、VM3、および、VM4の対応する仮想ディスクI/Oポートの書き込み動作中、対応する統計線の変動が比較的平坦であり、書き込み要求の処理はむしろ安定的になる。図10は、書き込み要求の従来の処理時の帯域幅サンプリング統計を示す図である。仮想マシンVM1、VM2、VM3、および、VM4の対応する仮想ディスクI/Oポートの書き込み動作中、対応する統計線の変動が比較的大きく、書き込み要求の処理は不安定である。
図11は、本願に記載の技術を用いて読み出し要求を処理する時の帯域幅サンプリング統計の一例を示す図である。仮想マシンVM1、VM2、VM3、および、VM4の対応する仮想ディスクI/Oポートの読み出し要求の処理中、対応する統計線の変動が大きくなく、読み出し要求の処理は安定する。図12は、読み出し要求の従来の処理時の帯域幅サンプリング統計を示す図である。仮想マシンVM1、VM2、VM3、および、VM4の対応する仮想ディスクI/Oポートの読み出し要求の処理中、対応する統計線の変動が比較的大きく、読み出し要求の処理は不安定である。
上記の図9〜図12において、水平座標は、サンプリング時間を表し、垂直座標は、サンプリング時間に対応して仮想ディスクI/Oポートで実際に生じた帯域幅サイズを表す。
図13は、仮想ディスクI/Oポートをスケジューリングするためのコンピュータシステムの一実施形態を示す機能図である。明らかに、仮想ディスクI/Oポートをスケジューリングするために、他のコンピュータシステムアーキテクチャおよび構成を用いることも可能である。以下に述べるような様々なサブシステムを備えるコンピュータシステム1300は、少なくとも1つのマイクロプロセッササブシステム(プロセッサまたは中央処理装置(CPU)とも呼ばれる)1302を備える。例えば、プロセッサ1302は、シングルチッププロセッサまたはマルチプロセッサによって実装できる。いくつかの実施形態において、プロセッサ1302は、コンピュータシステム1300の動作を制御する汎用デジタルプロセッサである。メモリ1310から読み出された命令を用いて、プロセッサ1302は、入力データの受信および操作、ならびに、出力デバイス(例えば、ディスプレイ1318)上でのデータの出力および表示を制御する。
プロセッサ1302は、メモリ1310と双方向的に接続されており、メモリ1310は、第1のプライマリストレージ(通例は、ランダムアクセスメモリ(RAM))および第2のプライマリストレージ領域(通例は、リードオンリーメモリ(ROM))を含みうる。当業者に周知のように、プライマリストレージは、一般的な記憶領域として、および、スクラッチパッドメモリとして利用可能であり、また、入力データおよび処理済みデータを格納するために利用可能である。プライマリストレージは、さらに、プロセッサ1302上で実行される処理のための他のデータおよび命令に加えて、データオブジェクトおよびテキストオブジェクトの形態で、プログラミング命令およびデータを格納できる。また、当業者に周知のように、プライマリストレージは、通例、機能(例えば、プログラムされた命令)を実行するためにプロセッサ1302によって用いられる基本的な動作命令、プログラムコード、データ、および、オブジェクトを備える。例えば、メモリ1310は、例えば、データアクセスが双方向である必要があるか、単方向である必要があるかに応じて、後述する任意の適切なコンピュータ読み取り可能な記憶媒体を含みうる。例えば、プロセッサ1302は、頻繁に必要になるデータをキャッシュメモリ(図示せず)に直接的かつ非常に迅速に格納し取り出すことができる。
着脱可能マスストレージデバイス1312が、コンピュータシステム1300にさらなるデータ記憶容量を提供しており、プロセッサ1302に対して双方向(読み出し/書き込み)または単方向(読み出しのみ)に接続されている。例えば、ストレージ1312は、磁気テープ、フラッシュメモリ、PCカード、携帯型マスストレージデバイス、ホログラフィックストレージデバイス、および、その他のストレージデバイスなどのコンピュータ読み取り可能な媒体も含みうる。固定マスストレージ1320も、例えば、さらなるデータ記憶容量を提供しうる。マスストレージ1320の最も一般的な例は、ハードディスクドライブである。マスストレージ1312、1320は、一般に、プロセッサ1302によって通例はあまり利用されないさらなるプログラミング命令、データなどを格納する。マスストレージ1312および1320に保持された情報は、必要であれば、仮想メモリとしてのメモリ1310(例えば、RAM)の一部に標準的な方式で組み込まれてよいことが理解される。
プロセッサ1302がストレージサブシステムにアクセスできるようにすることに加えて、バス1314は、その他のサブシステムおよびデバイスへのアクセスを可能にするために用いられてもよい。図に示すように、これらは、ディスプレイモニタ1318、ネットワークインターフェース1316、キーボード1304、および、ポインティングデバイス1306、ならびに、必要に応じて、補助入力/出力デバイスインターフェース、サウンドカード、スピーカ、および、その他のサブシステムを含みうる。例えば、ポインティングデバイス1306は、マウス、スタイラス、トラックボール、または、タブレットであってよく、グラフィカルユーザインターフェースと相互作用するのに有用である。
ネットワークインターフェース1316は、図に示すように、ネットワーク接続を用いて、別のコンピュータ、コンピュータネットワーク、または、遠隔通信ネットワークにプロセッサ1302を接続することを可能にする。例えば、ネットワークインターフェース1316を通して、プロセッサ1302は、方法/処理ステップを実行する過程で、別のネットワークから情報(例えば、データオブジェクトまたはプログラム命令)を受信したり、別のネットワークに情報を出力したりすることができる。情報は、しばしば、プロセッサ上で実行される一連の命令として表され、別のネットワークから受信されたり、別のネットワークへ出力されたりしうる。インターフェースカード(または同様のデバイス)と、プロセッサ1302によって実装(例えば、実行/実施)される適切なソフトウェアとを用いて、コンピュータシステム1300を外部ネットワークに接続し、標準プロトコルに従ってデータを転送することができる。例えば、本明細書に開示された様々な処理の実施形態は、プロセッサ1302上で実行されてもよいし、処理の一部を共有するリモートプロセッサと共に、ネットワーク(インターネット、イントラネットワーク、または、ローカルエリアネットワークなど)上で実行されてもよい。さらなるマスストレージデバイス(図示せず)が、ネットワークインターフェース1316を通してプロセッサ1302に接続されてもよい。
補助I/Oデバイスインターフェース(図示せず)が、コンピュータシステム1300と共に用いられてよい。補助I/Oデバイスインターフェースは、プロセッサ1302がデータを送信すること、ならびに、より典型的には、他のデバイス(マイクロホン、タッチセンサ方式ディスプレイ、トランスデューサカードリーダ、テープリーダ、音声または手書き認識装置、バイオメトリクスリーダ、カメラ、携帯型マスストレージデバイス、および、他のコンピュータなど)からデータを受信することを可能にする汎用インターフェースおよびカスタマイズされたインターフェースを含みうる。
図13に示したコンピュータシステムは、本明細書に開示された様々な実施形態と共に利用するのに適切なコンピュータシステムの一例にすぎない。かかる利用に適した他のコンピュータシステムは、より多いまたは少ないサブシステムを含みうる。さらに、バス1314は、サブシステムをつなぐよう機能する任意の相互接続スキームの例である。異なる構成のサブシステムを有する他のコンピュータアーキテクチャが利用されてもよい。
上述のユニットは、1または複数の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、特定の機能を実行するよう設計されたプログラム可能論理デバイスおよび/または特定用途向け集積回路などのハードウェアとして、もしくは、それらの組み合わせとして実装することができる。いくつかの実施形態において、ユニットは、コンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワーク装置など)に本発明の実施形態に記載された方法を実行させるための複数の命令など、不揮発性記憶媒体(光学ディスク、フラッシュ記憶装置、携帯用ハードディスクなど)に格納することができるソフトウェア製品の形態で具現化されてよい。ユニットは、単一のデバイス上に実装されてもよいし、複数のデバイスにわたって分散されてもよい。ユニットの機能は、互いに統合されてもよいし、複数のサブユニットにさらに分割されてもよい。
本明細書に開示の実施形態に照らして説明した方法またはアルゴリズム工程は、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、または、両方の組み合わせを用いて実施されうる。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、メモリ、リードオンリーメモリ(ROM)、電気的プログラム可能ROM、電気的消去可能プログラム可能ROM、レジスタ、ハードドライブ、リムーバブルディスク、CD−ROM、または、任意の他の形態の当業者に周知の記憶媒体内にインストールされてよい。
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
適用例1:仮想ディスク入出力(I/O)ポートをスケジューリングするための方法であって、
対応するセットの仮想ディスクI/Oポートに対して、物理マシン内の前記対応するセットの仮想ディスクI/Oポートに関連付けられている1セットの読み出し−書き込み帯域幅クォータに基づいて、1セットのサービス品質レーティングを割り当て、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクI/Oポートを決定し、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに読み出し−書き込み帯域幅制限を割り当て、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクI/Oポートをスケジューリングすること、
を備える、方法。
適用例2:適用例1に記載の方法であって、割り当てられたサービス品質レーティングは、各仮想ディスクI/Oポートの読み出し−書き込み帯域幅クォータと比例的に関係する、方法。
適用例3:適用例1に記載の方法であって、前の時間区間内の前記読み出し−書き込み要求によって実際に生じたすべてのデータ帯域幅の合計は、前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる前記データ帯域幅の前記合計予測値として機能する、方法。
適用例4:適用例1に記載の方法であって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、データ帯域幅の前記合計予測値を、異なる仮想ディスクI/Oポートに、前記異なる仮想ディスクI/Oポートに関連する前記サービス品質レーティングの比に従って割り当てることを含む、方法。
適用例5:適用例1に記載の方法であって、前記読み出し−書き込み帯域幅制限を割り当てることは、
読み出し要求および書き込み要求に従って、それぞれ、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てることを含む、方法。
適用例6:適用例5に記載の方法であって、対応するI/Oポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限の比は、仮想ディスクから読み出されるデータの量および仮想ディスクに書き込まれるデータの量の比に対応する、方法。
適用例7:適用例1に記載の方法であって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
各仮想ディスクI/Oポートにトークンコンテナバケットを割り当てることを含み、
各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、前記仮想ディスクI/Oポートのスケジューリングを制御するために用いられる仮想ディスクI/Oポートに割り当てられた前記読み出し−書き込み帯域幅制限のサイズに対応する、方法。
適用例8:適用例7に記載の方法であって、各トークンコンテナの前記容量は、前記対応する仮想ディスクI/Oポートの前記サービス品質レーティングに比例する、方法。
適用例9:適用例7に記載の方法であって、前記異なる仮想ディスクI/Oポートに割り当てられた前記トークンコンテナバケットは、同数のトークンコンテナを含む、方法。
適用例10:適用例7に記載の方法であって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
異なる時間区間内の読み出し−書き込み要求に基づいて、各仮想ディスクI/Oポートに対応する前記トークンコンテナバケット内のトークンコンテナの分配をリアルタイムで調整することを含む、方法。
適用例11:適用例10に記載の方法であって、各仮想ディスクI/Oポートに対応する前記トークンコンテナバケットのリアルタイムの容量は、前記対応するトークンコンテナバケットのクォータ容量以下である、方法。
適用例12:適用例11に記載の方法であって、前記物理マシン上の前記仮想ディスクI/Oポートをスケジューリングすることは、
異なる仮想ディスクI/Oポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供することを含む、方法。
適用例13:適用例1に記載の方法であって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
仮想ディスクI/Oポート数の変更が前記物理マシンで発生した場合に、仮想ディスクI/Oポート数の前記変更が起きた後に、仮想ディスクI/Oポートのデータ帯域幅の前記合計予測値に基づいて、読み出し−書き込み帯域幅制限を再割り当てすることを含む、方法。
適用例14:適用例1に記載の方法であって、前記物理マシン上の前記仮想ディスクI/Oポートをスケジューリングすることの前に、前記読み出し−書き込み要求と前記仮想ディスクI/Oポートに対する要求との対応関係に基づいて、重み付き要求キューを生成して、前記重み付き要求キューから時系列の順に前記異なる読み出し−書き込み要求にアクセスすることを備える、方法。
適用例15:仮想ディスク入出力(I/O)ポートをスケジューリングするためのデバイスであって、
少なくとも1つのプロセッサであって、
対応するセットの仮想ディスクI/Oポートに対して、物理マシン内の前記対応するセットの仮想ディスクI/Oポートに関連付けられている1セットの読み出し−書き込み帯域幅クォータに基づいて、1セットのサービス品質レーティングを割り当て、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクI/Oポートを決定し、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに読み出し−書き込み帯域幅制限を割り当て、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクI/Oポートをスケジューリングするよう構成されたている、少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに接続され、前記少なくとも1つのプロセッサに命令を提供するよう構成されているメモリと、
を備える、デバイス。
適用例16:適用例15に記載のデバイスであって、前記読み出し−書き込み帯域幅制限を割り当てることは、
読み出し要求および書き込み要求に従って、それぞれ、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てることを含む、デバイス。
適用例17:適用例16に記載のデバイスであって、対応するI/Oポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限の比は、仮想ディスクから読み出されるデータの量および仮想ディスクに書き込まれるデータの量の比に対応する、デバイス。
適用例18:適用例15に記載のデバイスであって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
各仮想ディスクI/Oポートにトークンコンテナバケットを割り当てることを含み、
各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、前記仮想ディスクI/Oポートのスケジューリングを制御するために用いられる仮想ディスクI/Oポートに割り当てられた前記読み出し−書き込み帯域幅制限のサイズに対応する、デバイス。
適用例19:適用例18に記載のデバイスであって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
異なる時間区間内の読み出し−書き込み要求に基づいて、各仮想ディスクI/Oポートに対応する前記トークンコンテナバケット内のトークンコンテナの分配をリアルタイムで調整することを含む、デバイス。
適用例20:適用例19に記載のデバイスであって、前記物理マシン上の前記仮想ディスクI/Oポートをスケジューリングすることは、
異なる仮想ディスクI/Oポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供することを含む、デバイス。
適用例21:適用例15に記載のデバイスであって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
仮想ディスクI/Oポート数の変更が前記物理マシンで発生した場合に、仮想ディスクI/Oポート数の前記変更が起きた後に、仮想ディスクI/Oポートのデータ帯域幅の前記合計予測値に基づいて、読み出し−書き込み帯域幅制限を再割り当てすることを含む、デバイス。
適用例22:仮想ディスク入出力(I/O)ポートをスケジューリングするためのコンピュータプログラム製品であって、有形で持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
対応するセットの仮想ディスクI/Oポートに対して、物理マシン内の前記対応するセットの仮想ディスクI/Oポートに関連付けられている1セットの読み出し−書き込み帯域幅クォータに基づいて、1セットのサービス品質レーティングを割り当てるためのコンピュータ命令と、
現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクI/Oポートを決定するためのコンピュータ命令と、
前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに読み出し−書き込み帯域幅制限を割り当てるためのコンピュータ命令と、
前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクI/Oポートをスケジューリングするためのコンピュータ命令と、
を備える、コンピュータプログラム製品。

Claims (22)

  1. 仮想ディスク入出力(I/O)ポートをスケジューリングするための方法であって、
    対応するセットの仮想ディスクI/Oポートに対して、物理マシン内の前記対応するセットの仮想ディスクI/Oポートに関連付けられている1セットの読み出し−書き込み帯域幅クォータに基づいて、1セットのサービス品質レーティングを割り当て、
    現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクI/Oポートを決定し、
    前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに読み出し−書き込み帯域幅制限を割り当て、
    前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクI/Oポートをスケジューリングすること、
    を備える、方法。
  2. 請求項1に記載の方法であって、割り当てられたサービス品質レーティングは、各仮想ディスクI/Oポートの読み出し−書き込み帯域幅クォータと比例的に関係する、方法。
  3. 請求項1に記載の方法であって、前の時間区間内の前記読み出し−書き込み要求によって実際に生じたすべてのデータ帯域幅の合計は、前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる前記データ帯域幅の前記合計予測値として機能する、方法。
  4. 請求項1に記載の方法であって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、データ帯域幅の前記合計予測値を、異なる仮想ディスクI/Oポートに、前記異なる仮想ディスクI/Oポートに関連する前記サービス品質レーティングの比に従って割り当てることを含む、方法。
  5. 請求項1に記載の方法であって、前記読み出し−書き込み帯域幅制限を割り当てることは、
    読み出し要求および書き込み要求に従って、それぞれ、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てることを含む、方法。
  6. 請求項5に記載の方法であって、対応するI/Oポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限の比は、仮想ディスクから読み出されるデータの量および仮想ディスクに書き込まれるデータの量の比に対応する、方法。
  7. 請求項1に記載の方法であって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
    各仮想ディスクI/Oポートにトークンコンテナバケットを割り当てることを含み、
    各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、前記仮想ディスクI/Oポートのスケジューリングを制御するために用いられる仮想ディスクI/Oポートに割り当てられた前記読み出し−書き込み帯域幅制限のサイズに対応する、方法。
  8. 請求項7に記載の方法であって、各トークンコンテナの前記容量は、前記対応する仮想ディスクI/Oポートの前記サービス品質レーティングに比例する、方法。
  9. 請求項7に記載の方法であって、前記異なる仮想ディスクI/Oポートに割り当てられた前記トークンコンテナバケットは、同数のトークンコンテナを含む、方法。
  10. 請求項7に記載の方法であって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
    異なる時間区間内の読み出し−書き込み要求に基づいて、各仮想ディスクI/Oポートに対応する前記トークンコンテナバケット内のトークンコンテナの分配をリアルタイムで調整することを含む、方法。
  11. 請求項10に記載の方法であって、各仮想ディスクI/Oポートに対応する前記トークンコンテナバケットのリアルタイムの容量は、前記対応するトークンコンテナバケットのクォータ容量以下である、方法。
  12. 請求項11に記載の方法であって、前記物理マシン上の前記仮想ディスクI/Oポートをスケジューリングすることは、
    異なる仮想ディスクI/Oポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供することを含む、方法。
  13. 請求項1に記載の方法であって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
    仮想ディスクI/Oポート数の変更が前記物理マシンで発生した場合に、仮想ディスクI/Oポート数の前記変更が起きた後に、仮想ディスクI/Oポートのデータ帯域幅の前記合計予測値に基づいて、読み出し−書き込み帯域幅制限を再割り当てすることを含む、方法。
  14. 請求項1に記載の方法であって、前記物理マシン上の前記仮想ディスクI/Oポートをスケジューリングすることの前に、前記読み出し−書き込み要求と前記仮想ディスクI/Oポートに対する要求との対応関係に基づいて、重み付き要求キューを生成して、前記重み付き要求キューから時系列の順に前記異なる読み出し−書き込み要求にアクセスすることを備える、方法。
  15. 仮想ディスク入出力(I/O)ポートをスケジューリングするためのデバイスであって、
    少なくとも1つのプロセッサであって、
    対応するセットの仮想ディスクI/Oポートに対して、物理マシン内の前記対応するセットの仮想ディスクI/Oポートに関連付けられている1セットの読み出し−書き込み帯域幅クォータに基づいて、1セットのサービス品質レーティングを割り当て、
    現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクI/Oポートを決定し、
    前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに読み出し−書き込み帯域幅制限を割り当て、
    前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクI/Oポートをスケジューリングするよう構成されたている、少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに接続され、前記少なくとも1つのプロセッサに命令を提供するよう構成されているメモリと、
    を備える、デバイス。
  16. 請求項15に記載のデバイスであって、前記読み出し−書き込み帯域幅制限を割り当てることは、
    読み出し要求および書き込み要求に従って、それぞれ、読み出し帯域幅制限および書き込み帯域幅制限を独立的に割り当てることを含む、デバイス。
  17. 請求項16に記載のデバイスであって、対応するI/Oポートに割り当てられる読み出し帯域幅制限および書き込み帯域幅制限の比は、仮想ディスクから読み出されるデータの量および仮想ディスクに書き込まれるデータの量の比に対応する、デバイス。
  18. 請求項15に記載のデバイスであって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
    各仮想ディスクI/Oポートにトークンコンテナバケットを割り当てることを含み、
    各トークンコンテナバケットは、複数のトークンコンテナを含み、各トークンコンテナの容量は、前記仮想ディスクI/Oポートのスケジューリングを制御するために用いられる仮想ディスクI/Oポートに割り当てられた前記読み出し−書き込み帯域幅制限のサイズに対応する、デバイス。
  19. 請求項18に記載のデバイスであって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
    異なる時間区間内の読み出し−書き込み要求に基づいて、各仮想ディスクI/Oポートに対応する前記トークンコンテナバケット内のトークンコンテナの分配をリアルタイムで調整することを含む、デバイス。
  20. 請求項19に記載のデバイスであって、前記物理マシン上の前記仮想ディスクI/Oポートをスケジューリングすることは、
    異なる仮想ディスクI/Oポートの異なるトークンコンテナバケットの間のトークンコンテナ補償を提供することを含む、デバイス。
  21. 請求項15に記載のデバイスであって、前記仮想ディスクI/Oポートに前記読み出し−書き込み帯域幅制限を割り当てることは、
    仮想ディスクI/Oポート数の変更が前記物理マシンで発生した場合に、仮想ディスクI/Oポート数の前記変更が起きた後に、仮想ディスクI/Oポートのデータ帯域幅の前記合計予測値に基づいて、読み出し−書き込み帯域幅制限を再割り当てすることを含む、デバイス。
  22. 仮想ディスク入出力(I/O)ポートをスケジューリングするためのコンピュータプログラム製品であって、有形で持続性のコンピュータ読み取り可能な記憶媒体内に具現化され、
    対応するセットの仮想ディスクI/Oポートに対して、物理マシン内の前記対応するセットの仮想ディスクI/Oポートに関連付けられている1セットの読み出し−書き込み帯域幅クォータに基づいて、1セットのサービス品質レーティングを割り当てるためのコンピュータ命令と、
    現在の時間区間内に読み出し−書き込み要求によって用いられるデータ帯域幅の合計予測値を決定し、前記読み出し−書き込み要求に対応する仮想ディスクI/Oポートを決定するためのコンピュータ命令と、
    前記データ帯域幅の前記合計予測値と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに対応する前記サービス品質レーティングとに少なくとも部分的に基づいて、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートに読み出し−書き込み帯域幅制限を割り当てるためのコンピュータ命令と、
    前記現在の時間区間内に前記読み出し−書き込み要求によって用いられる実際の帯域幅と、前記読み出し−書き込み要求に対応する前記仮想ディスクI/Oポートの前記読み出し−書き込み帯域幅制限とに少なくとも部分的に基づいて、前記物理マシン上の仮想ディスクI/Oポートをスケジューリングするためのコンピュータ命令と、
    を備える、コンピュータプログラム製品。
JP2016509073A 2013-04-18 2014-04-16 仮想ディスクの入出力ポートをスケジューリングするための方法およびデバイス Active JP6240309B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201310135853.1A CN104111800B (zh) 2013-04-18 2013-04-18 一种虚拟磁盘的io口调度方法及其调度装置
CN201310135853.1 2013-04-18
US14/253,789 2014-04-15
US14/253,789 US10114553B2 (en) 2013-04-18 2014-04-15 Method and device for scheduling virtual disk input and output ports
PCT/US2014/034394 WO2014172475A1 (en) 2013-04-18 2014-04-16 Method and device for scheduling virtual disk input and output ports

Publications (2)

Publication Number Publication Date
JP2016521417A true JP2016521417A (ja) 2016-07-21
JP6240309B2 JP6240309B2 (ja) 2017-11-29

Family

ID=51708608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016509073A Active JP6240309B2 (ja) 2013-04-18 2014-04-16 仮想ディスクの入出力ポートをスケジューリングするための方法およびデバイス

Country Status (7)

Country Link
US (2) US10114553B2 (ja)
EP (1) EP2987080A1 (ja)
JP (1) JP6240309B2 (ja)
CN (1) CN104111800B (ja)
HK (1) HK1200228A1 (ja)
TW (1) TWI629599B (ja)
WO (1) WO2014172475A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018199415A1 (ko) * 2017-04-26 2018-11-01 (주) 글루시스 가상 머신에 대한 입출력 성능 제한 방법

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150172066A1 (en) * 2013-12-13 2015-06-18 Qualcomm Incorporated Practical implementation aspects of unicast fetch for http streaming over embms
CN107645407B (zh) 2014-12-08 2021-02-12 华为技术有限公司 一种适配QoS的方法和装置
CN105763475B (zh) * 2014-12-15 2019-10-25 南京中兴新软件有限责任公司 接入控制方法及装置
JP6451308B2 (ja) * 2014-12-24 2019-01-16 富士通株式会社 ストレージ装置およびストレージ装置制御プログラム
US9594592B2 (en) 2015-01-12 2017-03-14 International Business Machines Corporation Dynamic sharing of unused bandwidth capacity of virtualized input/output adapters
CN106155764A (zh) * 2015-04-23 2016-11-23 阿里巴巴集团控股有限公司 调度虚拟机输入输出资源的方法及装置
CN106201839B (zh) 2015-04-30 2020-02-14 阿里巴巴集团控股有限公司 一种业务对象的信息加载方法和装置
CN106209741B (zh) 2015-05-06 2020-01-03 阿里巴巴集团控股有限公司 一种虚拟主机及隔离方法、资源访问请求处理方法及装置
TWI594607B (zh) * 2015-11-27 2017-08-01 鴻海精密工業股份有限公司 動態控制多個視頻下載之系統及方法
US20170208120A1 (en) * 2016-01-15 2017-07-20 Google Inc. Probabilistic throttling
US10785300B2 (en) * 2016-10-12 2020-09-22 Dell Products L.P. Storage rate limiting for information handling system with multiple storage controllers
US10732895B2 (en) * 2017-03-22 2020-08-04 Burlywood, Inc. Drive-level internal quality of service
CN107276827B (zh) * 2017-07-25 2021-04-23 郑州云海信息技术有限公司 一种分布式存储系统中Qos的实现方法及装置
CN107885461B (zh) * 2017-10-19 2022-02-01 北京京东尚科信息技术有限公司 一种数据本地存储方法和装置
CN107579926B (zh) * 2017-10-20 2021-02-09 南京易捷思达软件科技有限公司 基于令牌桶算法的Ceph云存储系统的QoS设置方法
CN107800574B (zh) * 2017-11-03 2021-05-28 郑州云海信息技术有限公司 存储qos调节方法、系统、设备及计算机可读存储器
CN108762687B (zh) * 2018-06-05 2019-11-08 星环信息科技(上海)有限公司 Io服务质量控制方法、装置、设备及存储介质
CN110727392B (zh) * 2018-07-17 2023-07-14 阿里巴巴集团控股有限公司 一种云存储数据单元调度方法和装置
US11372580B2 (en) * 2018-08-07 2022-06-28 Marvell Asia Pte, Ltd. Enabling virtual functions on storage media
CN111211915B (zh) * 2018-11-21 2022-09-16 中国科学院深圳先进技术研究院 容器的网络带宽的调节方法、计算机设备及可读存储介质
US11048437B2 (en) * 2019-02-28 2021-06-29 Micron Technology, Inc. Double threshold controlled scheduling of memory access commands
US10764315B1 (en) * 2019-05-08 2020-09-01 Capital One Services, Llc Virtual private cloud flow log event fingerprinting and aggregation
CN111355805A (zh) * 2020-03-06 2020-06-30 苏州浪潮智能科技有限公司 一种网络通信方法、装置、设备及存储介质
WO2022120722A1 (zh) * 2020-12-10 2022-06-16 深圳市大疆创新科技有限公司 资源调度装置、数字信号处理器和可移动平台

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6832248B1 (en) * 2001-05-10 2004-12-14 Agami Systems, Inc. System and method for managing usage quotas
JP4119239B2 (ja) * 2002-12-20 2008-07-16 株式会社日立製作所 計算機資源割当方法、それを実行するための資源管理サーバおよび計算機システム
US7191207B2 (en) * 2003-06-11 2007-03-13 International Business Machines Corporation Apparatus and method to dynamically allocate bandwidth in a data storage and retrieval system
EP2382554B1 (en) * 2009-01-23 2018-03-07 Hewlett-Packard Enterprise Development LP System and methods for allocating shared storage resources
CN101770346A (zh) * 2010-01-04 2010-07-07 浪潮电子信息产业股份有限公司 一种多控制器磁盘阵列协调调度方法
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
US9361255B2 (en) 2011-06-06 2016-06-07 Hitachi, Ltd. Method for controlling I/O switch, method for controlling virtual computer, and computer system
CN102270104B (zh) 2011-07-14 2013-07-24 华中科技大学 虚拟化环境中动态磁盘带宽分配方法
JP5733136B2 (ja) * 2011-09-26 2015-06-10 富士通株式会社 情報処理装置の制御方法、制御プログラム及び情報処理装置
US8732291B2 (en) * 2012-01-13 2014-05-20 Accenture Global Services Limited Performance interference model for managing consolidated workloads in QOS-aware clouds
US9015519B2 (en) 2012-01-31 2015-04-21 Symantec Corporation Method and system for cluster wide adaptive I/O scheduling by a multipathing driver

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YUBIN WU ET AL.: "IO QoS: A New Disk I/O Scheduler Module with QoS Guarantee for Cloud Platform", PROCEEDINGS OF THE 2012 INTERNATIONAL SYMPOSIUM ON INFORMATION SCIENCE AND ENGINEERING, JPN6017000211, 14 December 2012 (2012-12-14), US, pages pages 441 - 444 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018199415A1 (ko) * 2017-04-26 2018-11-01 (주) 글루시스 가상 머신에 대한 입출력 성능 제한 방법

Also Published As

Publication number Publication date
US20140325522A1 (en) 2014-10-30
US10649664B2 (en) 2020-05-12
CN104111800A (zh) 2014-10-22
TW201441833A (zh) 2014-11-01
JP6240309B2 (ja) 2017-11-29
TWI629599B (zh) 2018-07-11
US20190087090A1 (en) 2019-03-21
EP2987080A1 (en) 2016-02-24
HK1200228A1 (en) 2015-07-31
WO2014172475A1 (en) 2014-10-23
CN104111800B (zh) 2018-02-23
US10114553B2 (en) 2018-10-30

Similar Documents

Publication Publication Date Title
JP6240309B2 (ja) 仮想ディスクの入出力ポートをスケジューリングするための方法およびデバイス
US10937125B2 (en) Resource-utilization-based workload re-allocation system
KR102380670B1 (ko) 메모리 제어기에서의 세분화된 대역폭 프로비저닝
US8028286B2 (en) Methods and apparatus for scheduling threads on multicore processors under fair distribution of cache and other shared resources of the processors
US8112524B2 (en) Recommending moving resources in a partitioned computer
CN105988872B (zh) 一种cpu资源分配的方法、装置及电子设备
US20200089537A1 (en) Apparatus and method for bandwidth allocation and quality of service management in a storage device shared by multiple tenants
US9760392B1 (en) Adaptive throttling in hybrid storage environments
US20100229175A1 (en) Moving Resources In a Computing Environment Having Multiple Logically-Partitioned Computer Systems
US10693803B2 (en) Hierarchical fairshare of multi-dimensional resources
US10013264B2 (en) Affinity of virtual processor dispatching
US20180074859A1 (en) Dynamically varying processing capacity entitlements
US9104496B2 (en) Submitting operations to a shared resource based on busy-to-success ratios
CN110557339B (zh) 一种流量规划方法、装置、计算机设备、存储介质
WO2022063273A1 (zh) 一种基于numa属性的资源分配方法及装置
Kim et al. Supporting the priorities in the multi-queue block i/o layer for nvme ssds
US11847326B2 (en) Storage operation suspend system
Lackner et al. Efficient job scheduling for clusters with shared tiered storage
Kehne et al. GPrioSwap: towards a swapping policy for GPUs
US20220197701A1 (en) Managing resource allocation in a software-defined system
JPWO2009066481A1 (ja) 仮想計算機システム及び仮想計算機重み付け設定処理方法及び仮想計算機重み付け設定処理プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170519

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171010

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171102

R150 Certificate of patent or registration of utility model

Ref document number: 6240309

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250