JPWO2014118969A1 - 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法 - Google Patents
仮想計算機システムおよび仮想計算機システムのデータ転送制御方法 Download PDFInfo
- Publication number
- JPWO2014118969A1 JPWO2014118969A1 JP2014559459A JP2014559459A JPWO2014118969A1 JP WO2014118969 A1 JPWO2014118969 A1 JP WO2014118969A1 JP 2014559459 A JP2014559459 A JP 2014559459A JP 2014559459 A JP2014559459 A JP 2014559459A JP WO2014118969 A1 JPWO2014118969 A1 JP WO2014118969A1
- Authority
- JP
- Japan
- Prior art keywords
- count
- value
- bandwidth
- data transfer
- virtual
- 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
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 93
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000015654 memory Effects 0.000 claims abstract description 15
- 238000004364 calculation method Methods 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 26
- 230000005540 biological transmission Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 15
- 239000000835 fiber Substances 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
プロセッサとメモリとを備えた計算機と、前記計算機の資源を仮想化して複数の仮想計算機に割り当てる仮想化部と、を備えた仮想計算機システムでデータ転送を制御する方法であって、前記計算機は、ストレージ装置に接続されるアダプタを有し、アダプタがストレージ装置との間でデータを送受信し、当該送受信したデータの転送量とI/O回数とを仮想計算機毎に測定し、仮想化部は、アダプタから取得したデータの転送量とI/O回数に基づいて、データ転送量の上限値と、I/O回数の上限値を仮想計算機毎に演算して仮想計算機に通知し、仮想計算機が、ストレージ装置との間で送受信するデータをキューに保持し、仮想計算機が、データ転送量の上限値と、I/O回数の上限値を超えないように前記キューから出力するデータを制御する。
Description
本発明は、ファイバチャネルに接続されるHBA(Host Bus Adapter)を、複数の仮想計算機で共用する技術に関する。
計算機の仮想化技術およびクラウドコンピューティング技術の発展により、ホスト計算機における物理的な計算機資源を、複数の仮想的なゲスト計算機(仮想計算機)で共用して利用するシステムは、一般的に利用されるようになってきている。仮想計算機システムでは、物理的な計算機資源を効率的に利用しやすくなる反面、適切にゲスト計算機間の負荷を制御しなければならない。ゲスト計算機の負荷を制御しない場合、複数のゲスト計算機間で共用している計算機資源を1つのゲスト計算機が占有したり、重要なゲスト計算機のために確保しておきたい計算機資源を、重要でないゲスト計算機が使ってしまったりする可能性がある。
近年は、ミッションクリティカルな分野で仮想計算機システムが用いられる事例も増加傾向にあり、各々のゲスト計算機に割り当てる計算機資源を制御する機能はますます重要となってくると考えられる。特に、ディスク装置と通信するために用いられるファイバチャネルHBAは、ゲスト計算機とディスク装置またはSAN(Storage Area Network)とのインターフェースとして重要な役割を担っている。このため、多数のゲスト計算機が存在する仮想計算機システムにおいても、各々のゲスト計算機に対して、効率良くファイバチャネルHBAの帯域を割り当てられる技術の実現が求められている。
特許文献1は、ネットワークにおけるパケット転送装置において帯域制御を実現した例である。特許文献1では、通信インターフェースにおいて送信パケットのサイズを解析することにより、送信するデータの量を検出し、パケットを送信するタイミングを制御することで帯域制御を実現していた。
非特許文献1は、仮想化ソフトウェアを用いて複数のゲスト計算機間で共有される、ファイバチャネルHBAの帯域制御を行う例である。非特許文献2では、仮想化ソフトウェアにおけるI/O数を、SCSI I/O単位で計測し、帯域を制御するものである。
"FIBER CHANNEL Physical Interface-4 (FC-PI-4) Rev.7.00"、Chapter.6、Table 6、 Single-mode link classes1 (OS1, OS2) 800-SMLC-L: Data rate: 800MB/s、[online]、Global Engineering、2007年9月20日、[平成25年1月15日検索]
「VMware vSphere 5.0 評価ガイド Vol.2: 高度なストレージ機能テクニカル ホワイト ペーパー」、第48頁 IOPS 制限の効果の確認、[online]、ヴイエムウェア株式会社、[平成25年1月15日検索]
ファイバチャネルHBAにおいて、1つの物理的なHBAポートから発行可能な1秒あたりのデータ送受信量(MB/s)は、共通規格(例えば、非特許文献1)によって定められている。例えば、8Gbpsファイバチャネルにおいては、800MB/sである。このため、このHBAポートを共有する各々のゲスト計算機が使用できる1秒あたりのデータ送受信量を保障するためには、各々のゲスト計算機の所定の周期あたりのデータ送受信量に閾値を設け、データ送受信量の合計がファイバチャネルHBAの規格(8Gbpsの場合は800MB/s)を超えないように制御することが必要である。
上記非特許文献2の手法は、SCSI I/O数とデータ送受信量が比例するものと見なしてSCSI I/O数をカウントすることにより負荷を推定し、SCSI I/Oの数を制御する手法である。この手法を用いると、「1つのSCSI I/Oあたりのデータ送受信量」が常に一定ならば、ファイバチャネルHBAにおける各々のゲスト計算機の制御間隔あたりのデータ送受信量を制御できる。しかし、「1つのSCSI I/Oあたりのデータ送受信量」がゲスト計算機によって異なる場合は、SCSI I/O数がデータ送受信量に比例するという仮定が成り立たないため、各々のゲスト計算機の制御間隔あたりのデータ送受信量のカウント値と、実際のデータ通信量との間の誤差が大きくなるという課題があった。
たとえば、ゲスト計算機1とゲスト計算機2の間で、ゲスト計算機2のデータ送受信量をゲスト計算機1の100分の1に制限するために、ゲスト計算機2のコマンド数をゲスト計算機1の100分の1となるように制限したと仮定する。このとき、ゲスト計算機2の「1つのSCSI I/Oあたりのデータ送受信量」がゲスト計算機1の100倍であれば、ゲスト計算機2のSCSI I/O数をゲスト計算機1の100分の1に抑えることができたとしても、ゲスト計算機2のデータ送受信量はゲスト計算機1のデータ送受信量とほぼ同じとなる。その場合、ゲスト計算機2のデータ送受信量をゲスト計算機1の100分の1に抑えるという目的は達成できない、という課題があった。
データ送受信量に基づいて帯域制御を実現した例として、上記特許文献1が知られている。しかしながら、特許文献1の手法では、実際にパケットを送信する前に、パケットのデータ量を、「制御間隔あたりのデータ送信量を保持するカウント値」に加算しているため、カウント値と実際のデータ送受信量との間に誤差が生じる可能性がある。
例として、フレームサイズ8MBのSCSI I/Oコマンドを送受信する場合を考える。この場合、データ送受信開始から1ミリ秒経過した時点では、実際には800KB分のデータしか送受信できていないにもかかわらず、特許文献1の手法では、8MBのデータを送受信したとカウントする。つまり、特許文献1の手法は、1つのI/Oコマンドで送受信するデータサイズが大きくなるほどに、カウント値と実際に使用しているデータ送受信量との誤差が大きくなる、という課題があった。
一方、データベースの分野ではSCSIに準じた通信を行う際に、1つのSCSIコマンドで転送するデータ量を大きく(1MB程度)設定することがある。この様な分野では、「1つのI/Oコマンドで転送するデータサイズが大きくなったとしても、カウント値と実際に使用しているデータ送受信量との誤差が変わらない」手法が求められていた。
本発明は、プロセッサとメモリとを備えた計算機と、前記計算機の資源を仮想化して1以上の仮想計算機に割り当てる仮想化部と、を備えた仮想計算機システムであって、前記計算機は、ストレージ装置に接続されるアダプタを有し、前記アダプタは、前記ストレージ装置との間でデータを送受信し、当該送受信したデータの転送量とI/O回数とを前記仮想計算機毎に測定する転送処理部と、前記データの転送量とI/O回数を前記仮想計算機毎に格納するカウンタと、を有し、前記仮想計算機は、前記ストレージ装置との間で送受信するデータを保持するキューと、前記データの転送量とI/O回数を制御する帯域制御部と、を有し、前記仮想化部は、前記アダプタのカウンタから取得した前記データの転送量とI/O回数に基づいて、前記データの転送量の上限値と、前記I/O回数の上限値を前記仮想計算機毎に演算する閾値演算部を有し、前記帯域制御部は、前記仮想化部が演算した前記データの転送量の上限値と、前記I/O回数の上限値を超えないように前記キューから出力するデータを制御する。
本発明により、ストレージ装置に接続されるアダプタ(例えば、HBA)のI/Oについて、I/O回数に基づく帯域制御のみでなく、実際に各ゲスト計算機が送受信したデータ量に基づく帯域制御を実現することが可能となる。これにより、従来のI/O回数のみによる帯域制御に対して、HBAの帯域を超えることなく各ゲスト計算機毎に正確な帯域制御が実現できる。
以下、本発明を適用する仮想計算機システムについて、図面を参照して詳細に説明する。
図1は、本発明の仮想計算機システムの一例を示すブロック図である。図1において、ホスト計算機100は、演算を実行する複数の物理プロセッサ109−1〜109−nと、データやプログラムを格納する物理メモリ114と、LAN280と通信を行うNIC(Network Interface Card)270と、SAN(Storage Area Network)250を介してストレージ装置260を制御するファイバチャネルHBA(HOST BUS ADAPTER)210と、ファイバチャネルHBA210及びNIC270と各物理プロセッサ109−1〜109−nとを接続するチップセット108と、を備える。
ハイパーバイザ(仮想化部)170は、ホスト計算機100の物理プロセッサ109−1〜109−nや物理メモリ114等の物理計算機資源を分割して仮想計算機資源300(図2参照)を生成し、仮想プロセッサや仮想メモリなどの仮想計算機資源(または論理計算機資源)をゲスト計算機(または仮想計算機)1〜n(105−1〜105−n)に割り当てることで、ゲスト計算機105−1〜105−nをホスト計算機100上に構成する。
なお、ゲスト計算機n(105−n)も、ゲスト計算機1(105−1)と同様の構成であるため、本実施例ではゲスト計算機n(105−n)の説明を省略し、ゲスト計算機1(105−1)について説明する。なお、以下では、ゲスト計算機105−1〜105−nの総称を符号105で表記し、物理プロセッサ109−1〜109−nの総称を符号109で表記する。以下、他の符号についても同様であり、構成要素の総称を示す符号は”−”以降を削除した符号を用いる。
<概要>
本発明は、ファイバチャネルHBA(以下、HBAとする)210を複数のゲスト計算機105で共有し、各ゲスト計算機105がそれぞれ使用するHBA210の帯域とI/O回数の上限値をハイパーバイザ170が決定し、各ゲスト計算機105の仮想ドライバに含まれる帯域制御部がHBA210の帯域とI/O回数を規制する。
本発明は、ファイバチャネルHBA(以下、HBAとする)210を複数のゲスト計算機105で共有し、各ゲスト計算機105がそれぞれ使用するHBA210の帯域とI/O回数の上限値をハイパーバイザ170が決定し、各ゲスト計算機105の仮想ドライバに含まれる帯域制御部がHBA210の帯域とI/O回数を規制する。
このため、各ゲスト計算機105が使用したHBA210の帯域(データ量)とI/O回数を、HBA210の転送処理部がゲスト計算機105毎に測定する。そして、ハイパーバイザ170は、所定の時間間隔(例えば、10msec)ごとに、各ゲスト計算機105が使用した帯域とI/O回数をHBA210から取得して、各ゲスト計算機105がそれぞれ使用するHBA210の帯域の上限値である帯域閾値と、I/O回数(以下IOPSとする)の上限値であるIOPS閾値(I/O回数閾値)とを算出して更新する。なお、IOPS閾値は、所定の時間間隔あたりにゲスト計算機105が発行可能なI/O数である。帯域閾値は、所定の時間間隔あたりにゲスト計算機105が発行可能なデータの送受信量である。なお、所定の時間間隔としては、ゲストOS125のタイマ割り込みの周期等を用いるようにしてもよい。
ゲスト計算機105は、後述するように所定のタイミングで帯域閾値と、IOPS閾値をハイパーバイザ170から取得し、仮想ドライバに含まれる帯域制御部が、HBA210の帯域を制御する。
<ハイパーバイザ>
図2は、ハイパーバイザ170の一例を示すブロック図である。
図2は、ハイパーバイザ170の一例を示すブロック図である。
ハイパーバイザ170は、ゲスト計算機105を制御するためのプログラムであり、ホスト計算機100の物理メモリ114にロードされて、物理プロセッサ109によって実行される。
ハイパーバイザ170は、ホスト計算機100の物理プロセッサ109−1〜109−nや物理メモリ114等の物理資源を分割し、仮想プロセッサ301−1〜301−nや仮想メモリ302−1〜302−n及び仮想HBA303−1〜303−nを仮想計算機資源300として生成し、ゲスト計算機1〜n(105−1〜105−n)に割り当てる。なお、図示はしないが、NIC270についても、HBA210と同様にハイパーバイザ170が仮想NICをゲスト計算機105に提供する。
ハイパーバイザ170は、ゲスト計算機105−1〜105−nに割り当てる仮想HBA303−1〜303−nのそれぞれについて、仮想WWN(図中VWWN−1〜VWWN−n)を割り当てる。そして、ハイパーバイザ170は、仮想HBA303に仮想WWN(World Wide Name)を割り当てる度に、当該仮想WWNと当該仮想HBA303を割り当てたゲスト計算機105の識別子を物理的なHBA210へ通知する。
HBA210は、SCSI I/O(以下、単にI/Oとする)を受け付けると、上記通知された仮想WWNとゲスト計算機105の識別子からI/Oの発行元のゲスト計算機105を特定する。なお、ハイパーバイザ170が仮想HBA303−1〜303−nに割り当てる仮想WWN−1〜VWWN−nの値は、仮想計算機システム内でユニークであれば良い。
そして、上述のようにゲスト計算機105毎のHBA210に対するI/Oの帯域とI/OPSを制御するため、ハイパーバイザ170は、I/Oの帯域閾値とIOPS閾値を算出する閾値計算部185と、閾値を更新する際のルールを保持する閾値更新ルール186と、HBA210を制御するための物理ドライバ187を有する。なお、図示はしないが、ハイパーバイザ170は、NIC270などの他のデバイスについても物理ドライバを備えて制御する。また、図2において、仮想計算機資源(または論理計算機資源)の提供については、公知または周知の技術を適用すれば良いので、本実施例では説明しない。
ハイパーバイザ170は、物理メモリ114の所定の領域を使用し、データやプログラムを保持する。ハイパーバイザ170は、ゲスト計算機1〜n(105−1〜105−n)のそれぞれについて、HBA210から取得したIOPSを格納するIOPS値(I/O回数値)1〜n(190−1〜190−n)と、閾値計算部185が算出したIOPS閾値を格納するIOPS閾値1〜n(200−1〜200−n)と、HBA210から取得したI/Oの帯域(データ転送量)を格納する帯域値1〜n(195−1〜195−n)および閾値計算部185が算出したI/Oの帯域閾値を格納する帯域閾値1〜n(205−1〜205−n)を保持する。
閾値計算部185は閾値計算プログラムで構成され、物理メモリ114の所定の領域にロードされて、物理プロセッサ109で実行される。
閾値計算部185は、HBA210が測定したIOPSカウンタ1〜n(235−1〜n:図4参照)の値と、帯域カウンタ1〜n(240−1〜240−n:図4参照)の値を取得し、上記ハイパーバイザ170のIOPS値190および帯域値195に格納し、閾値計算部185がIOPS閾値200および帯域閾値205を更新する。そして、閾値計算部185からの閾値更新完了の通知に基づいて、仮想ドライバ130はIOPS値1’(150)と帯域値1’(155)をリセットする。
なお、ハイパーバイザ170は、ゲスト計算機105−1〜105−nの仮想ドライバ130からI/Oの要求(リード要求またはライト要求)を受け付けると、物理ドライバ187でI/O要求を物理的なHBA210に転送する。そして、I/O要求には仮想HBA303−1〜303−nの仮想WWNを付与することで、ハイパーバイザ170及び物理的なHBA210はI/Oの発行元のゲスト計算機105−1〜105−nを特定することができるのである。
また、ハイパーバイザ170は、LAN280を介して図示しない管理計算機などからゲスト計算機の生成、起動または停止、削除の指令を受けて付けて仮想計算機資源の割り当てを制御する。
図7は、ハイパーバイザ170が管理する閾値更新ルール186の一例を示す図である。閾値更新ルール186は、ゲスト計算機105−1〜105−nの識別子を格納するエントリ1861と、各ゲスト計算機105毎の閾値更新ルールを格納するルール1862のエントリを備え、ゲスト計算機105−1〜105−nに対応するフィールドを有する。ルール1862は、LAN280を介して図示しない管理計算機などから受け付けた値を格納する。ここで、ルール1862が「増大」のゲスト計算機105では、IOPS値150がIOPS閾値140を超えたり、帯域値155が帯域閾値145を超えた場合、次回の制御間隔で用いる帯域閾値145を増大させ、また、IOPS閾値140を増大させる。帯域閾値145の増大は、予め設定した増分値を加算することができる。ただし、帯域閾値145を増大する上限を設けても良い。また、IOPS閾値140の増大も、予め設定した増分値を加算することができ、IOPS閾値140を増大する上限を設けても良い。
<ゲスト計算機>
図3は、ゲスト計算機105−1の一例を示すブロック図である。なお、他のゲスト計算機105−nも同様の構成であるので、重複した説明は省略する。ゲスト計算機105−1は、ハイパーバイザ170が提供する仮想計算機資源上で稼動する仮想計算機である。
図3は、ゲスト計算機105−1の一例を示すブロック図である。なお、他のゲスト計算機105−nも同様の構成であるので、重複した説明は省略する。ゲスト計算機105−1は、ハイパーバイザ170が提供する仮想計算機資源上で稼動する仮想計算機である。
ゲスト計算機105−1は、ハイパーバイザ170から仮想プロセッサ301−1と、仮想メモリ302−1及び仮想HBA303−1の提供を受けて、ゲストOS125を実行する。ゲストOS125上では、仮想HBA303−1に対してアクセスする仮想ドライバ130と、仮想ドライバ130にI/O要求を行うアプリケーション120が稼働する。アプリケーション120は、ゲストOS125上で稼働するソフトウェアであり、ゲストOS125に対してデータの送受信を要求する。
仮想ドライバ130は、ゲストOS125からデータ送受信の要求であるI/O要求を受け付けて、仮想HBA303−1に対して当該I/O要求に応じたデータの送受信を実行するプログラムである。
仮想ドライバ130の帯域制御部135は、SCSI I/Oキュー(以下、I/Oキューとする)160の中のI/Oに記録されているデータ量165を取得して、IOPS値1’(150)の値がIOPS閾値1’(140)を超えないように、また帯域値1’(155)の値が帯域閾値1’(145)を超えないように、仮想HBA303−1(HBA210)が発行するI/Oの量を所定の時間間隔(例えば、10msec)ごとに、制限する。
I/Oキュー160は、複数のキュー165−1〜165−nを有し、送受信するデータを一時的に格納する。I/Oキュー160は、仮想ドライバ130がゲストOS125から受け取ったI/O要求を一時的に保持するための記憶領域である。I/Oキュー160の中の各々のI/Oには、送受信するデータ量が記録されている。
仮想HBA303−1の所定の時間間隔毎のデータ転送量は、仮想HBA303−1に発行したIOPSを格納するIOPS値1’(150)と、仮想HBA303−1から物理ドライバ187に転送したデータ量を格納する帯域値1’(155)と、からなる。
また、ハイパーバイザ170から取得した仮想HBA303−1の閾値は、仮想HBA303−1の仮想WWN−1に対応付けられたHBA210のIOPSを規制するIOPS閾値1’(140)と、帯域を規制する値を格納する帯域閾値1’(145)とを含む。
アプリケーション120は、ストレージ装置260へのアクセスが発生すると、仮想ドライバ130にI/O要求を仮想HBA303−1に発行しデータをI/Oキュー160に格納する。
仮想ドライバ130の帯域制御部135は、IOPS値1’(150)及び帯域値1’(155)がIOPS閾値1’(140)及び帯域閾値1’(145)以内であれば、キュー160のデータをハイパーバイザ170の物理ドライバ187へ転送するように仮想HBA303−1へ指令する。
一方、仮想ドライバ130の帯域制御部135は、IOPS値1’(150)または帯域値1’(155)の何れかが、IOPS閾値1’(140)あるいは帯域閾値1’(145)の何れかを超えていれば、所定の時間間隔(例えば、10msec)が経過するまでI/O要求をキュー160に保留し、ハイパーバイザ170によってIOPS閾値1’(140)及び帯域閾値1’(145)が更新されるのを待つ。
上記帯域制御部135により、ゲスト計算機105−1が利用する仮想HBA303−1(HBA210)の帯域(データ転送量)及びIOPSは、所定の時間間隔ごとに閾値以内に制御される。
本発明の帯域制御部135における帯域制御では、ゲスト計算機1(105−1)が発行するI/O要求の数およびデータの送受信量を一定の時間間隔(10ms)ごとに、閾値を設けて制限する。この一定間隔を制御間隔と呼び、当該制御間隔毎にハイパーバイザ170が閾値を更新する。閾値としては、I/O要求の数と、データの送受信量(帯域)についてそれぞれの値が設定され、各々の閾値を超過しないように、ゲスト計算機105で仮想HBA303−1を制御する仮想ドライバ130の帯域制御部135がI/Oを発行するタイミングを制御することにより、帯域制御を実現する。
IOPS閾値1’(140)は、制御間隔あたりにゲスト計算機1(105−1)が発行可能なI/O数を保持する変数である。IOPS値1’(150)は、制御間隔あたりにゲスト計算機1(105−1)が発行したI/O数を保持する変数である。帯域閾値1’(145)は、制御間隔あたりにゲスト計算機1(105−1)が発行可能なデータの送受信量を保持する変数である。帯域値1’(155)は、制御間隔あたりのゲスト計算機1(105−1)のデータ送受信量を保持する変数である。
IOPS閾値1’(140)および帯域閾値1’(145)には制御間隔が開始する時点で、該制御間隔の間にゲスト計算機105−1が送受信可能なI/O数およびデータ送受信量が、後述の閾値計算部185によって設定される。IOPS値1’(150)および帯域値1’(155)は、所定の制御間隔でハイパーバイザ170からの通知によって0にリセットされる。
ホスト計算機100は以上のように構成され、ハイパーバイザ170の閾値計算部185と、ゲストOS125、アプリケーション120、仮想ドライバ130、帯域制御部135は、物理メモリ114に格納されたプログラムとして物理プロセッサ109により実行される。
物理プロセッサ109は、各機能部のプログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、物理プロセッサ109は、帯域制御プログラムに従って動作することで帯域制御部135として機能し、閾値計算プログラムに従って動作することで閾値計算部185として機能する。他のプログラムについても同様である。さらに、物理プロセッサ109は、各プログラムが実行する複数の処理のそれぞれを実現する機能部としても動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
ホスト計算機100の各機能を実現するプログラム、テーブル等の情報は、ストレージ装置260や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
<HBA>
図4は、HBA210の一例を示すブロック図である。
図4は、HBA210の一例を示すブロック図である。
HBA210は、ホスト計算機100とファイバチャネルで構成されたSAN250及びストレージ装置260との間でデータの送受信を実行する装置である。
HBA210は、組み込みプロセッサ215と、記憶部220と、カウント回路230と、ホスト計算機100に接続されるI/F部236と、SAN250に接続されるポート237とを備える。I/F部236は、例えば、PCI expressなどで構成される。
カウント回路230は、データの送受信量を測定する論理回路である。記憶部220には、データの送受信処理を行う転送処理部225と、ゲスト計算機105−1〜105−n毎に仮想HBA303−1〜303−nのI/O数の測定結果を格納するIOPSカウンタ1〜n(235−1〜23−n)と、データ転送量(帯域)の測定結果を格納する帯域カウンタ1〜n(240−1〜240−n)と、ハイパーバイザ170から受信した仮想WWNとゲスト計算機105の識別子を対応付けて保持する仮想WWNテーブル245が格納される。転送処理部225は、記憶部220に転送処理プログラムをロードして、組み込みプロセッサ215が実行することで機能する。
転送処理部225は、ハイパーバイザ170から仮想WWNとゲスト計算機105の識別子を受信すると、仮想WWNとゲスト計算機105の識別子を対応付けて仮想WWNテーブル245に格納する。そして、転送処理部225は、仮想WWN毎に、IOPSカウンタ235と帯域カウンタ240を割り当てる。図9は、仮想WWNテーブル245の一例を示す図である。仮想WWNテーブル245は、ハイパーバイザ170が仮想HBA303に割り当てた仮想WWNを格納するカラム2451と、仮想WWNの仮想HBA303を割り当てたゲスト計算機105の識別子を格納するカラム2452と、転送処理部225が当該仮想WWNに割り当てたIOPSカウンタ235の識別子を格納するカラム2453と、転送処理部225が当該仮想WWNに割り当てた帯域カウンタ240の識別子を格納するカラム2454と、からひとつのエントリが構成される。
なお、ハイパーバイザ170は、ひとつの物理的なHBA210から生成した複数の仮想HBA303を、各ゲスト計算機105にひとつずつ割り当てるものとする。
転送処理部225は、ホスト計算機100からのI/O要求に応じてSAN250を介してストレージ装置260と通信を行う。このとき、転送処理部225はカウント回路230を用いてゲスト計算機105毎にデータの転送量を帯域として測定し、帯域カウンタ240に格納する。また、ゲスト計算機105毎にI/O要求の回数を測定し、IOPSカウンタ235に格納する。
ここで、転送処理部225は、I/Oに含まれる仮想WWNから仮想WWNテーブル245を参照して、ゲスト計算機105とIOPSカウンタ235及び帯域カウンタ240を特定し、当該仮想WWNに対応するIOPSカウンタ235と帯域カウンタ240に値を格納する。例えば、I/O要求に含まれる仮想WWNが「VWWN−1」であれば、転送処理部225は、ゲスト計算機105−1の仮想HBA303−1が発行したI/O要求であると判定し、ゲスト計算機105−1に対応するIOPSカウンタ235−1と帯域カウンタ240−1に値を格納する。
そして、後述するように、HBA210はハイパーバイザ170からの要求を受け付けると、IOPSカウンタ235と帯域カウンタ240の値を通知する。また、HBA210は、ハイパーバイザ170から読み出し要求に応じて値を読み出したIOPSカウンタ235及び帯域カウンタ240をリセットする。
<I/O処理>
図5は、仮想計算機システムで行われるSCSI I/O処理(以下、I/O処理とする)の一例を示すシーケンス図である。図5のシーケンス図は、ゲスト計算機105のアプリケーション120がゲストOS125にI/O要求を送信したときに実行される。
図5は、仮想計算機システムで行われるSCSI I/O処理(以下、I/O処理とする)の一例を示すシーケンス図である。図5のシーケンス図は、ゲスト計算機105のアプリケーション120がゲストOS125にI/O要求を送信したときに実行される。
本処理では、まずゲストOS125が、アプリケーション120から発行されたデータ送受信要求を受信する(ステップ500)。ゲストOS125は、受信したデータ送受信要求をSCSI I/Oに変換し、仮想ドライバ130にI/Oを発行する(ステップ501)。更に仮想ドライバ130は、ゲストOS125から受信したI/Oを、SCSI I/Oキュー160にエンキューする(ステップ502)。
さらに、仮想ドライバ130の帯域制御部135は、ゲスト計算機1(105−1)が各I/OをSCSI I/Oキュー160からデキュー可能か否かの判定を行う(ステップ503)。判定方法については後述する。
ステップ503の判定で、デキュー可能と判断した場合、帯域制御部135は、SCSI I/Oキュー160にエンキューされた順番でI/Oをデキューし、ハイパーバイザ170にI/Oを発行する(ステップ505)。ハイパーバイザ170は受信したI/Oを物理ドライバ187でHBA210に転送する(ステップ506)。
一方、ステップ503の判定で、デキューが不可能と判断した場合は、判断した時点で、該ゲスト計算機105のI/Oの発行を停止する制御を行う。
上記ステップ503の帯域制御部135の処理は、まず、SCSI I/Oキュー160にエンキューされた順にI/Oを選択し、制御間隔内でゲスト計算機1(105−1)が該I/Oを発行可能であるか判定するため、仮想ドライバ130のIOPS値1’(150)に、1 (該I/O分)を加算し、I/Oに記入されているデータ量を、帯域値1’(155)に加算する。
その後、帯域制御部135は、IOPS値1’(150)とIOPS閾値1’(140)を比較し、更に帯域値1’(155)と帯域閾値1’(145)を比較する(ステップ503)。
上記比較の結果、IOPS値1’(150)がIOPS閾値1’(140)以下であり、かつ、帯域値1’(155)が帯域閾値1’(145)以下であるならば、該ゲスト計算機がI/Oを追加して発行可能であると帯域制御部135は判定する。そして、帯域制御部135は、SCSI I/Oキュー160から該I/Oをデキューし、HBA210の転送処理プログラム225に対してI/Oの発行処理を行う(ステップ505)。IOPS値1’(150)がIOPS閾値1’(140)より大きいか、または、帯域値1’(155)が帯域閾値1’(145)より大きいならば、該ゲスト計算機105が追加でI/Oを発行不可であると帯域制御部135は判定する。このため、帯域制御部135は該I/Oの発行処理を行わず、該I/OはSCSI I/Oキュー160に滞留されたままとなる(ステップ504)。すなわち、SCSI I/Oキュー160のデータは出力が禁止される。
そして、ステップ504では、IOPS値1’(150)がIOPS閾値1’(140)を超えたか、または、帯域値1’(155)が帯域閾値1’(145)を超えたときには、仮想ドライバ130はハイパーバイザ170に対して閾値を超えたことを通知する。
I/OがSCSI I/Oキュー160に滞留する場合は、制御間隔が終了する時点で、IOPS値1’(150)および帯域値1’(155)が、後述するようにハイパーバイザ170の通知でリセットされることを契機として帯域制御部135により、ステップ503へ戻って再び加算結果と閾値の比較が実行される。
帯域制御部135により、I/Oがハイパーバイザ170の物理ドライバ187を介して転送処理部225に転送された後、転送処理部225は、受信したI/Oをストレージ装置260へ発行する。また、転送処理部225は発行したI/Oをカウント回路230へ転送する(ステップ507、508)。
HBA210のカウント回路230は、IOPSカウンタ235に発行したI/O数を加算した後、I/Oの転送を開始してから終了するまでのデータ転送量を仮想WWNに基づいて帯域カウンタ240に加算する(ステップ508)。
以上の処理により、ゲスト計算機105の仮想ドライバ130の帯域制御部135は、ハイパーバイザ170が決定したIOPS閾値1’(140)と帯域閾値’(145)で所定の制御間隔(例えば、10msec)ないで、I/O回数またはI/Oのデータ量(帯域)が閾値を超えないように監視する。I/O回数またはI/Oの帯域がIOPS閾値1’(140)または帯域閾値1’(145)を超えると、帯域制御部135は、現在の制御間隔でのI/Oの発行を停止することで、ゲスト計算機105のI/O回数と帯域を目標とする閾値以内に制限することが可能となる。
<閾値の更新>
次に、上記ステップ504で行われるIOPS閾値200(140)と、帯域閾値205(145)の演算について図6を参照しながら説明する。
次に、上記ステップ504で行われるIOPS閾値200(140)と、帯域閾値205(145)の演算について図6を参照しながら説明する。
図6は、仮想計算機システムで行われる閾値更新処理の一例を示すシーケンス図である。この処理はハイパーバイザ170のブートを契機に開始し、その後、所定の制御間隔(10msec)ごとに繰り返して実行される。以下では、ゲスト計算機105−1に割り当てられた仮想HBA303−1の閾値更新の一例を示すが、他の仮想HBA303−2〜303−nの閾値更新についても同様に行えば良い。なお、他の仮想HBA303−2〜303−nの閾値更新は、以下の各ステップで実施してもよい。あるいは、仮想HBA303−1〜303−nの閾値更新のタイミングをずらして、以下のステップ601〜607を各仮想HBA303毎に実行しても良い。
この処理は、ハイパーバイザ170の閾値計算部185が、HBA210からIOPSカウンタ1(235−1)および帯域カウンタ1(240−1)の値を受信し、IOPS閾値1(200−1)および帯域閾値1(205−1)を演算し、ゲスト計算機1(105−1)に閾値の更新完了を通知する処理である。この通知により、仮想ドライバ130の帯域制御部135は、ゲスト計算機105−1のIOPS値1’(150)および帯域値1’(155)をリセットする。
まず、ハイパーバイザ170の閾値計算部185が、HBA210に対してIOPSカウンタ1(235−1)と帯域カウンタ1(240−1)の読み出しを要求する(ステップ601)。
次に、HBA201は、要求されたIOPSカウンタ1(235−1)と帯域カウンタ1(240−1)の値を閾値計算部185へ送信する(ステップ602)。HBA201は、読み出しが完了したIOPSカウンタ1(235−1)と帯域カウンタ1(240−1)の値を0にリセットする。
閾値計算部185は、受信したIOPSカウンタ1(235−1)の値をIOPS値1(190−1)に格納し、受信した帯域カウンタ1(240−1)の値を帯域値1(195−1)に格納する(ステップ603)。
閾値計算部185は、閾値更新ルール186を参照し、更新対象の仮想HBA303−1を割り当てたゲスト計算機105−1の閾値の更新ルールを取得する。閾値の更新ルール1862が「維持」であれば、閾値計算部185は、IOPS閾値1(200−1)と帯域閾値1(205−1)を維持する。なお、「維持」の場合は、IOPS閾値1(200−1)と帯域閾値1(205−1)の増分値を、それぞれ0としてもよい。
一方、閾値の更新ルール1862が「増大」で、かつ、前記図5のステップ504で、仮想ドライバ130から閾値を超えた通知を受けたゲスト計算機105であれば、閾値計算部185は、IOPS閾値1(200−1)と帯域閾値1(205−1)にそれぞれ所定の増分値を加算して更新する(ステップ604)。なお、所定の増分値は、IOPS閾値1(200−1)の増分値と、帯域閾値1(205−1)の増分値がそれぞれ予め設定されている。また、これらの増分値を閾値更新ルール186に格納するようにしてもよい。
更に、閾値計算部185は、IOPS閾値1(200−1)および帯域閾値1(205−1)の更新が完了したことを、ゲスト計算機105−1で稼働する仮想ドライバ130の帯域制御部135に通知する。
帯域制御部135は、ハイパーバイザ170から閾値更新通知の受信を契機に、ハイパーバイザ170からIOPS閾値1(200−1)を読み出して、IOPS閾値1’(140)に格納する。次に、帯域制御部135は、ハイパーバイザ170から帯域閾値1(205−1)を読み出し、帯域閾値1’(145)に格納する。
その後、ハイパーバイザ170からの閾値更新通知の受信を契機として、帯域制御部135は、仮想ドライバ130で保持していたIOPS値1’(150)および帯域値1’(155)をリセットする(ステップ605)。さらに、帯域制御部135は、SCSI I/Oキュー160に滞留しているI/Oがある場合は、該I/Oのデキューを再開(図5のステップ504、503、505)する。
最後に、閾値計算部185は、閾値更新のタイマを起動し(ステップ606)、このタイマがステップ607でタイムアウトした際に、図中のステップ601から再度、次の制御間隔の閾値の更新処理を実行する。
以上の処理により、ハイパーバイザ170では閾値計算部185が、HBA210のカウント回路230によって測定されたIOPSカウンタ1(235−1)の値および帯域カウンタ1(240−1)の値と、閾値更新ルール186に基づいて、IOPS閾値1(200−1)および帯域閾値1(205−1)を更新する。この結果、閾値計算部185は、ゲスト計算機105の仮想HBA303ごとのIOPS閾値1’(140−1)および帯域閾値1’(145−1)を更新する。
さらに、仮想ドライバ130の帯域制御部135がIOPS閾値1’(140)および帯域閾値1’(145)をハイパーバイザ170から取得して更新する。帯域制御部135は、更新されたIOPS閾値1’(140)および帯域閾値1’(145)に基づいて帯域制御を実施する。これにより、制御間隔あたりのデータ送受信量に基づく帯域制御を実現できる。
また、本発明では、HBA210が仮想HBA303毎に帯域とI/O回数を測定し、ハイパーバイザ170が制御間隔ごとに帯域閾値とI/O回数の閾値を更新してゲスト計算機105に通知し、ゲスト計算機105の仮想ドライバ130が制御間隔ごとにI/O回数と帯域(データ転送量)の閾値を超えないように仮想HBA303の帯域制御を行う。これにより、帯域の測定と閾値の算出及び帯域制御の実行を、HBA210とハイパーバイザ170及びゲスト計算機105で分散したので、一箇所に負荷が集中するのを防ぐことが可能となる。
なお、本発明において説明した計算機等の構成、処理部及び処理手段等は、それらの一部又は全部を、専用のハードウェアによって実現してもよい。
また、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体(例えば、非一時的な記憶媒体)に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
本発明は、プロセッサとメモリとを備えた計算機と、前記計算機の資源を仮想化して1以上の仮想計算機に割り当てる仮想化部と、を備えた仮想計算機システムであって、前記計算機は、ストレージ装置に接続されるアダプタを有し、前記アダプタは、前記ストレージ装置との間でデータを送受信し、当該送受信したデータの転送量と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回数閾値以下であれば前記キューからデータを出力し、前記閾値演算部の前記データの転送量の上限値と前記I/O回数の上限値の通知を受信したことに基づいて、前記仮想計算機の帯域値と、前記I/O回数値とをリセットする。
Claims (10)
- プロセッサとメモリとを備えた計算機と、
前記計算機の資源を仮想化して1以上の仮想計算機に割り当てる仮想化部と、を備えた仮想計算機システムであって、
前記計算機は、
ストレージ装置に接続されるアダプタを有し、
前記アダプタは、
前記ストレージ装置との間でデータを送受信し、当該送受信したデータの転送量とI/O回数とを前記仮想計算機毎に測定する転送処理部と、
前記データの転送量とI/O回数を前記仮想計算機毎に格納するカウンタと、を有し、
前記仮想計算機は、
前記ストレージ装置との間で送受信するデータを保持するキューと、
前記データの転送量とI/O回数を制御する帯域制御部と、を有し、
前記仮想化部は、
前記アダプタのカウンタから取得した前記データの転送量とI/O回数に基づいて、前記データの転送量の上限値と、前記I/O回数の上限値を前記仮想計算機毎に演算する閾値演算部を有し、
前記帯域制御部は、
前記仮想化部が演算した前記データの転送量の上限値と、前記I/O回数の上限値を超えないように前記キューから出力するデータを制御することを特徴とする仮想計算機システム。 - 請求項1に記載の仮想計算機システムであって、
前記仮想計算機は、
前記データの転送量を格納する帯域値と、前記I/O回数を格納するI/O回数値と、前記データの転送量の上限値を格納する帯域閾値と、前記I/O回数の上限値を格納するI/O回数閾値と、を有し、
前記帯域制御部は、
前記キューから出力する度にデータの転送量を前記帯域値に加算し、前記I/O回数を前記I/O回数値に加算して、前記帯域値が帯域閾値以下で、かつ前記I/O回数値がI/O回数閾値以下であれば前記キューからデータを出力することを特徴とする仮想計算機システム。 - 請求項2に記載の仮想計算機システムであって、
前記帯域制御部は、
前記キューから出力する度にデータの転送量を前記帯域値に加算し、前記I/O回数を前記I/O回数値に加算して、前記帯域値が帯域閾値を超え、またはI/O回数値がI/O回数閾値を超える場合は、前記帯域値及び前記I/O回数閾値がリセットされるまでは前記キューからデータの出力を禁止することを特徴とする仮想計算機システム。 - 請求項2に記載の仮想計算機システムであって、
前記閾値演算部は、
所定の周期が経過する度に、前記アダプタから前記データの転送量とI/O回数を取得して、所定のルールに基づいて前記取得した前記データの転送量とI/O回数から、前記データの転送量の上限値と、前記I/O回数の上限値を前記仮想計算機毎に演算し、当該演算した前記データの転送量の上限値と、前記I/O回数の上限値を前記仮想計算機に通知し、
前記帯域制御部は、
前記閾値演算部の前記データの転送量の上限値と前記I/O回数の上限値の通知を受信したことに基づいて、前記仮想計算機の帯域値と、前記I/O回数値とをリセットすることを特徴とする仮想計算機システム。 - 請求項4に記載の仮想計算機システムであって、
前記所定のルールは、
前記仮想計算機ごとに予め設定された増分値を加算することを特徴とする仮想計算機システム。 - プロセッサとメモリとを備えた計算機と、前記計算機の資源を仮想化して1以上の仮想計算機に割り当てる仮想化部と、を備えた仮想計算機システムでデータ転送を制御する方法であって、
前記計算機は、ストレージ装置に接続されるアダプタを有し、
前記アダプタが、前記ストレージ装置との間でデータを送受信し、当該送受信したデータの転送量とI/O回数とを前記仮想計算機毎に測定する第1のステップと、
前記仮想化部は、前記アダプタから取得した前記データの転送量とI/O回数に基づいて、前記データの転送量の上限値と、前記I/O回数の上限値を前記仮想計算機毎に演算し、当該演算した前記データの転送量の上限値と、前記I/O回数の上限値を前記仮想計算機に通知する第2のステップと、
前記仮想計算機が、前記ストレージ装置との間で送受信するデータをキューに保持する第3のステップと、
前記仮想計算機が、前記データの転送量の上限値と、前記I/O回数の上限値を超えないように前記キューから出力するデータを制御する第4のステップと、
を含むことを特徴とする仮想計算機システムのデータ転送制御方法。 - 請求項6に記載の仮想計算機システムのデータ転送制御方法であって、
前記第2のステップは、
前記仮想計算機が、前記データの転送量を帯域値に格納し、前記I/O回数をI/O回数値に格納し、前記データの転送量の上限値を帯域閾値に格納し、前記I/O回数の上限値をI/O回数閾値に格納するステップを含み、
前記第4のステップは、
前記仮想計算機が、前記キューから出力する度にデータの転送量を前記帯域値に加算し、前記I/O回数を前記I/O回数値に加算して、前記帯域値が帯域閾値以下で、かつ前記I/O回数値がI/O回数閾値以下であれば前記キューからデータを出力することを特徴とする仮想計算機システムのデータ転送制御方法。 - 請求項7に記載の仮想計算機システムのデータ転送制御方法であって、
前記第4のステップは、
前記仮想計算機が、前記キューから出力する度にデータの転送量を前記帯域値に加算し、前記I/O回数を前記I/O回数値に加算して、前記帯域値が帯域閾値を超え、またはI/O回数値がI/O回数閾値を超える場合は、前記帯域値及び前記I/O回数閾値がリセットされるまでは前記キューからデータの出力を禁止することを特徴とする仮想計算機システムのデータ転送制御方法。 - 請求項7に記載の仮想計算機システムのデータ転送制御方法であって、
前記第2のステップは、
前記仮想計算機は、所定の周期が経過する度に、前記アダプタから前記データの転送量とI/O回数を取得して、所定のルールに基づいて前記取得した前記データの転送量とI/O回数から、前記データの転送量の上限値と、前記I/O回数の上限値を前記仮想計算機毎に演算し、当該演算した前記データの転送量の上限値と、前記I/O回数の上限値を前記仮想計算機に通知するステップと、
前記仮想計算機は、前記データの転送量の上限値と前記I/O回数の上限値の通知を受信したことに基づいて、前記仮想計算機の帯域値と、前記I/O回数値とをリセットするステップと、
を含むことを特徴とする仮想計算機システムのデータ転送制御方法。 - 請求項9に記載の仮想計算機システムのデータ転送制御方法であって、
前記所定のルールは、
前記仮想計算機ごとに予め設定された増分値を加算することを特徴とする仮想計算機システムのデータ転送制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/052377 WO2014118969A1 (ja) | 2013-02-01 | 2013-02-01 | 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2014118969A1 true JPWO2014118969A1 (ja) | 2017-01-26 |
JP6072084B2 JP6072084B2 (ja) | 2017-02-01 |
Family
ID=51261712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014559459A Expired - Fee Related JP6072084B2 (ja) | 2013-02-01 | 2013-02-01 | 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150363220A1 (ja) |
JP (1) | JP6072084B2 (ja) |
WO (1) | WO2014118969A1 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2515536A (en) * | 2013-06-27 | 2014-12-31 | Ibm | Processing a guest event in a hypervisor-controlled system |
JP2016058033A (ja) * | 2014-09-12 | 2016-04-21 | 富士通株式会社 | ストレージ制御装置およびストレージ制御プログラム |
JP6578694B2 (ja) * | 2015-03-25 | 2019-09-25 | 日本電気株式会社 | 情報処理装置、方法及びプログラム |
US10419815B2 (en) * | 2015-09-23 | 2019-09-17 | Comcast Cable Communications, Llc | Bandwidth limited dynamic frame rate video trick play |
WO2017205223A1 (en) * | 2016-05-23 | 2017-11-30 | William Turner | Hyperconverged system including a user interface, a services layer and a core layer equipped with an operating system kernel |
US11543967B2 (en) * | 2017-02-23 | 2023-01-03 | Samsung Electronics Co., Ltd. | Method for controlling BW SLA in NVME-of ethernet SSD storage systems |
JP6786010B2 (ja) | 2018-05-07 | 2020-11-18 | 三菱電機株式会社 | 情報処理装置、チューニング方法およびチューニングプログラム |
JP7083717B2 (ja) * | 2018-07-23 | 2022-06-13 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
CN112162853A (zh) * | 2020-09-18 | 2021-01-01 | 北京浪潮数据技术有限公司 | 云主机cpu频率设置方法、系统、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008186211A (ja) * | 2007-01-30 | 2008-08-14 | Hitachi Ltd | 計算機システム |
JP2012123556A (ja) * | 2010-12-07 | 2012-06-28 | Hitachi Solutions Ltd | 仮想サーバーシステム、及びその制御方法 |
JP2012133630A (ja) * | 2010-12-22 | 2012-07-12 | Nomura Research Institute Ltd | ストレージリソース制御システムおよびストレージリソース制御プログラムならびにストレージリソース制御方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8019901B2 (en) * | 2000-09-29 | 2011-09-13 | Alacritech, Inc. | Intelligent network storage interface system |
JP4227035B2 (ja) * | 2004-02-03 | 2009-02-18 | 株式会社日立製作所 | 計算機システム、管理装置、ストレージ装置及びコンピュータ装置 |
-
2013
- 2013-02-01 WO PCT/JP2013/052377 patent/WO2014118969A1/ja active Application Filing
- 2013-02-01 JP JP2014559459A patent/JP6072084B2/ja not_active Expired - Fee Related
- 2013-02-01 US US14/763,946 patent/US20150363220A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008186211A (ja) * | 2007-01-30 | 2008-08-14 | Hitachi Ltd | 計算機システム |
JP2012123556A (ja) * | 2010-12-07 | 2012-06-28 | Hitachi Solutions Ltd | 仮想サーバーシステム、及びその制御方法 |
JP2012133630A (ja) * | 2010-12-22 | 2012-07-12 | Nomura Research Institute Ltd | ストレージリソース制御システムおよびストレージリソース制御プログラムならびにストレージリソース制御方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2014118969A1 (ja) | 2014-08-07 |
US20150363220A1 (en) | 2015-12-17 |
JP6072084B2 (ja) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6072084B2 (ja) | 仮想計算機システムおよび仮想計算機システムのデータ転送制御方法 | |
US11689471B2 (en) | Cloud compute scheduling using a heuristic contention model | |
US11221975B2 (en) | Management of shared resources in a software-defined storage environment | |
US10678722B2 (en) | Using a decrementer interrupt to start long-running hardware operations before the end of a shared processor dispatch cycle | |
US20180121366A1 (en) | Read/write request processing method and apparatus | |
US9183016B2 (en) | Adaptive task scheduling of Hadoop in a virtualized environment | |
US9697024B2 (en) | Interrupt management method, and computer implementing the interrupt management method | |
US9081612B2 (en) | Virtual machine control method and virtual machine | |
US10656961B2 (en) | Method and apparatus for operating a plurality of operating systems in an industry internet operating system | |
US20150277955A1 (en) | System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts | |
US10884779B2 (en) | Systems and methods for selecting virtual machines to be migrated | |
US20130238804A1 (en) | Computer system, migration method, and management server | |
CN109726005B (zh) | 用于管理资源的方法、服务器系统和计算机可读介质 | |
US11734172B2 (en) | Data transmission method and apparatus using resources in a resource pool of a same NUMA node | |
US11620155B2 (en) | Managing execution of data processing jobs in a virtual computing environment | |
JP2011197852A (ja) | 仮想計算機システムの管理プログラム,管理装置及び管理方法 | |
US20120266163A1 (en) | Virtual Machine Migration | |
US8984179B1 (en) | Determining a direct memory access data transfer mode | |
US10545697B1 (en) | Reverse order request queueing by para-virtual device drivers | |
KR101924467B1 (ko) | 가상 머신의 cpu 및 블록 i/o 작업에 성능 보장을 위한 자원 할당 시스템 및 방법 | |
US20140245300A1 (en) | Dynamically Balanced Credit for Virtual Functions in Single Root Input/Output Virtualization | |
US10628349B2 (en) | I/O control method and I/O control system | |
US20230385118A1 (en) | Selective execution of workloads using hardware accelerators | |
US11099741B1 (en) | Parallel access volume I/O processing with intelligent alias selection across logical control units | |
CN117170796A (zh) | 虚拟机中的逻辑卷控制方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20161206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6072084 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |