JP2018517201A - 仮想マシンのためのネイティブなストレージサービス品質 - Google Patents

仮想マシンのためのネイティブなストレージサービス品質 Download PDF

Info

Publication number
JP2018517201A
JP2018517201A JP2017552839A JP2017552839A JP2018517201A JP 2018517201 A JP2018517201 A JP 2018517201A JP 2017552839 A JP2017552839 A JP 2017552839A JP 2017552839 A JP2017552839 A JP 2017552839A JP 2018517201 A JP2018517201 A JP 2018517201A
Authority
JP
Japan
Prior art keywords
storage system
request
virtual machine
requests
pipeline
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.)
Withdrawn
Application number
JP2017552839A
Other languages
English (en)
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.)
Tintri by DDN Inc
Original Assignee
Tintri Inc
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 Tintri Inc filed Critical Tintri Inc
Publication of JP2018517201A publication Critical patent/JP2018517201A/ja
Withdrawn legal-status Critical Current

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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
    • 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/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • 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
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【解決手段】 ストレージシステムにおいて仮想マシンごとにネイティブにサービス品質(QoS)要件を満足させるための技術が開示される。様々な実施形態では、複数の仮想マシンの各々について、対応する入力/出力(I/O)リクエストキューがストレージシステムに格納される。リクエストは、仮想マシンごとのサービス品質パラメータに少なくとも部分的に基づいて決定された順序でストレージシステムにおいてそれぞれのリクエストキューから引き出されて対応するストレージ動作パイプラインに追加されるようにスケジュールされる。【選択図】図5

Description

[関連技術の相互参照]
本出願は、2015年4月8日に出願され名称を「NATIVE STORAGE QUALITY OF SERVICE FOR VIRTUAL MACHINES WITH PER−VM CONTENTION VISUALIZATION AND AUTO ALLOCATION POLICIES(仮想マシンごとの競合可視化及び自動割り当てのポリシーを伴う仮想マシンのためのネイティブなストレージサービス品質)」とする米国仮特許出願第62/144,518号に基づく優先権を主張する。この出願は、あらゆる目的のために、参照によって本明細書に組み込まれる。
通常、ストレージシステムは、仮想マシン(VM)を認識しない。その代わり、通常のシステムは、ファイルシステムリクエスト(例えば、ファイル作成、読み出し、書き込みなど)を受信し、そのようなリクエストを、そのリクエストがどのVMに関連付けられているかを全く認識することなく実施する。
ストレージサービス品質(QoS)は、2つの主要研究分野、即ち、1)スペースシェアリング(共有)と、2)パフォーマンスシェアリングとに分類できる。パフォーマンスシェアリングの2つの重要な使用事例は、「パフォーマンス分離」と、「パフォーマンス保護」とを特徴とする。
パフォーマンス分離は、あるストレージシステムリソースコンシューマのI/Oトラフィックを別のストレージシステムリソースコンシューマのI/Oトラフィックから分離することを言う。これは、仮想化された環境において重要だと考えられる。なぜならば、複数のVMユーザが、異なる種類のアプリケーションを実行していることがあり、その場合、一方のVMユーザが、他方のVMユーザのI/Oパフォーマンスに影響を及ぼすべきではないからである。しかしながら、通常のストレージシステムは、どのI/OリクエストがどのVMに関連付けられているかをネイティブに認識しないので、VMごとのパフォーマンス分離は、通常のストレージシステムにおいてネイティブに利用できるものではない。
パフォーマンス保護は、1つ以上の既定のパフォーマンス消費指標に基づいてサービスプロバイダがエンドユーザに課金するストレージ環境においてサービスレベルを提供することを言う。ストレージシステムリソースコンシューマ(消費体)へのパフォーマンスサービスレベルは、例えば、IOPS又はスループットなどのパフォーマンス指標に最下限及び最上限を設定することによって割り振られてよい。リソースコンシューマへの最下限は、少なくとも指定されたパフォーマンスサービスレベルをそのリソースコンシューマのために保証し、リソースコンシューマへの最上限は、指定されたパフォーマンスサービスレベルまでをそのリソースコンシューマに保証する。場合によっては、サービスレベルは、あるリソースコンシューマがストレージI/Oリソースの消費を独り占めし、それによってその他のリソースコンシューマからパフォーマンスを奪う悪評高い厄介な競合問題を解決するために使用される。
保証されたサービスレベルからユーザが期待できることは、どれくらいのシステムリソースが利用可能であるかに大いに依存する。どのストレージアプライアンスも、それが送ることができるパフォーマンスに上限がある。したがって、ストレージQoSは、ユーザがパフォーマンスに関してストレージシステムに過剰な設定を行うと、その旨をユーザに通知できることが望ましい。
パフォーマンス保護は、また、サービスレベルを設定されたリソースコンシューマと、サービスレベルを設定されていないリソースコンシューマとがいる場合に、一連の複雑性を生じる。これは、システムパフォーマンスリソースの割り当て間に不均衡を生じることがあり、ひいては枯渇を招く恐れがある。
正しいパフォーマンス指標の使用が、最小及び最大についてVMごとのストレージQoSポリシーを設定するにあたって重要だと考えられる。IOPSは、広く使用されている指標であるが、パフォーマンスの尺度を正しく精測するものではない。なぜならば、VMのI/Oリクエストのサイズが様々であるゆえに、スループットの方が、より現実的なパフォーマンス測定基準であるからである。しかしながら、パフォーマンスの尺度としてユーザに馴染みがあるのは、IOPSの方である。
本発明の様々な実施形態が、以下の詳細な説明及び添付の図面において開示される。
仮想マシン認識ストレージシステム及び仮想マシン認識環境の一実施形態を示したブロック図である。
どのファイルがどの仮想マシンに関連付けられるかを追跡するためのプロセスの一実施形態を示したフローチャートである。
ストレージシステムパフォーマンスをモデル化するためのプロセスの一実施形態を示したフローチャートである。
仮想マシン認識システムの一実施形態におけるストレージシステムパフォーマンスのグラフの一例を示した図である。
仮想マシン認識システムの一実施形態におけるストレージシステムパフォーマンスのグラフの一例を示した図である。
QoSパラメータを仮想マシンごとに実装するためのプロセスの一実施形態を示したフローチャートである。
VMごとのI/Oキューを伴う仮想マシン認識ストレージシステムの一実施形態を示したブロック図である。
仮想マシン認識ストレージシステムの一実施形態に実装される比例スケジューラの一例を示した図である。
最大IOPS QoSパラメータを遂行するように構成されている仮想マシン認識ストレージシステムの一実施形態を示したブロック図である。
ストレージシステムパフォーマンスの可視化をVMごとに提供するためのプロセスの一実施形態を示したフローチャートである。
正規化されたストレージシステムパフォーマンスをVMごとに報告するためのプロセスの一実施形態を示したフローチャートである。
バックエンド書き込みキュー状態に基づいてフロントエンド書き込みキューへの許可を調整するように構成されている仮想マシン認識ストレージシステムの一実施形態を示したブロック図である。
バックエンド書き込みキュー状態に基づいてフロントエンド書き込みキューへの許可を調整するためのプロセスの一実施形態を示したフローチャートである。
プログラムによって決定された割り当てにしたがってストレージリソースの使用を許すためのプロセスの一実施形態を示したフローチャートである。
利用可能なリソースと、様々なストレージシステムリソースコンシューマクラスに関連付けられたそれぞれのQoSパラメータとに基づいてプログラムによってストレージシステムリソースを割り当てるためのプロセスの一実施形態を示したフローチャートである。
ストレージシステムリソース割り当てを柔軟に遂行するためのプロセスの一実施形態を示したフローチャートである。
ストレージシステムリソースの割り当てを遂行するように構成されているストレージシステムスケジューラの一実施形態を示したブロック図である。
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能ストレージ媒体に実装されたコンピュータプログラム製品、並びに/又は接続先のメモリに格納された命令及び/若しくは接続先のメモリによって提供される命令を実行するように構成されているプロセッサなどのプロセッサを含む、数々の形態で実現できる。本明細書では、これらの実現形態、又は本発明がとりえるその他のあらゆる形態が、技術と称されてよい。総じて、開示されるプロセスのステップの順序は、発明の範囲内で変更されてよい。別途明記されない限り、タスクを実施するように構成されるものとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成される汎用コンポーネントとして、又はタスクを実施するように製造された特殊コンポーネントとして実装されてよい。本書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成されている1つ以上のデバイス、回路、及び/又は処理コアを言う。
本発明の原理を例示した添付の図面とともに、以下で、本発明の1つ以上の実施形態の詳細な説明が提供される。本発明は、このような実施形態に関連付けて説明されるが、いずれの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替形態、変更形態、及び同等形態を包含している。以下の説明では、本発明の完全な理解を与えるために、数々の具体的詳細が明記されている。これらの詳細は、例示を目的として提供されるものであり、本発明は、これらの詳細の一部又は全部を伴わずとも特許請求の範囲にしたがって実施されてよい。明瞭を期するため、本発明に関連する技術分野で知られる技術要素は、本発明が不必要に不明瞭にされないように詳細な説明を省略される。
VMごとにサービス品質(QoS)をネイティブに提供するVM認識ストレージアプライアンス又はその他のストレージシステムが開示される。様々な実施形態では、例えば1つ以上のハイパーバイザから受信された、VMごとの固有な読み出しリクエスト及び書き込みリクエストのキューが維持される。リクエストは、対応するVM別のキューにマッピングされる。スケジューラは、それぞれのキューからのリクエストを、それぞれのキューに関連付けられた及び/又はそれらのキューが関連付けられているそれぞれのVMに関連付けられたそれぞれのQoSパラメータ(例えば、最小IOPSや最大IOPSなど)に少なくとも部分的に基づいて決定された順序で1つのパイプラインに又はもし該当する場合は一部の実施形態では別々の読み出しパイプライン及び書き込みパイプラインに入れられるように許可する。
様々な実施形態では、例えばVMウェア及びHyper−Vなどのハイパーバイザ環境に密に一体化されたストレージアプライアンスが提供される。ハイパーバイザ環境との一体化を通じて、ストレージアプライアンスのファイルシステムは、そこに常住しているVMに関する情報を有する。このVM情報によって、ファイルシステムは、2つの異なるVMによって生成されたI/Oを区別することができる。様々な実施形態では、どのI/OがどのVMに関連付けられているかについてのこの認識が、VMごとのストレージサービス品質(QoS)を提供するための基礎を形成する。
図1は、仮想マシン認識ストレージシステム及び仮想マシン認識環境の一実施形態を示したブロック図である。図に示された例では、図1でハイパーバイザ102及び104で表されている複数のハイパーバイザの各々が、ネットワーク106を通じて仮想マシン認識ストレージシステム108へのアクセスを有する。各ハイパーバイザは、ハイパーバイザ102に関連付けられたVM112とVM114、及びハイパーバイザ104に関連付けられたVM116とVM118によって表されるものなどの、複数の仮想マシン(VM)を管理する。仮想マシン認識ストレージシステム108は、仮想マシン関連データを、バックエンドストレージ110に格納されているファイルに格納する。例えば、図1でVM112、114、116、及び118によって表されている各VMは、関係したファイルを、仮想マシン認識ストレージシステム108に格納されていてよい。バックエンドストレージ110は、フラッシュストレージ(例えば、SSD)、ハードディスクドライブ、及び/又はハイブリッド/階層状のフラッシュ・ハードディスクドライブストレージのうちの1つ以上を含んでいてよい。
様々な実施形態では、仮想マシン認識ストレージシステム108は、仮想マシン認識ストレージを提供するように最適化されたオペレーティングシステムを実行させる。様々な実施形態では、仮想マシン認識ストレージシステム108は、ハイパーバイザ102及び104などのハイパーバイザに高度に一体化される。仮想マシン認識ストレージシステム108は、仮想マシン認識ストレージシステム108に格納されているどのファイルがどの(1つ又は複数の)仮想マシンに関連付けられるかを追跡するために、ハイパーバイザ102及び104などのハイパーバイザから直接的に及び/又は間接的に得られた情報を使用する。一部の実施形態では、仮想マシン認識ストレージシステム108は、最近新しくファイルを作成したハイパーバイザに、その新しく作成されたファイルが関連付けられる仮想マシンをもしあれば決定するために照会を行ってよい。一部の実施形態では、仮想マシン認識ストレージシステム108は、新規ファイルの作成に関連してハイパーバイザから受信されたファイル作成の及び/若しくはそれに関係したリクエスト及び/又は通信から、仮想マシン識別子情報を抽出してよい。例えば、リクエストを発信しているハイパーバイザが関連付けられているハイパーバイザタイプの認識に基づいて、仮想マシン認識ストレージシステム108は、ハイパーバイザによって送信された通信及び/又はハイパーバイザからのリクエストから、ハイパーバイザタイプに少なくとも部分的に基づいて決定された方式で、仮想マシン識別をファイルに関連付ける情報を抽出してよい。
様々な実施形態では、どのファイルがどの(1つ又は複数の)仮想マシンに関連付けられているかについてのこの認識は、以下で更に詳細に説明されるように、例えば仮想マシン認識ストレージシステム108などのストレージシステムにVMごとにストレージシステムサービス品質をネイティブに提供するために使用されてよい。
図2は、どのファイルがどの仮想マシンに関連付けられるかを追跡するためのプロセスの一実施形態を示したフローチャートである。様々な実施形態では、図2のプロセスは、図1の仮想マシン認識ストレージシステム108などの仮想マシン認識ストレージシステムによって実行されてよい。様々な実施形態では、仮想マシン認識ストレージシステムのファイルシステムが、図2のプロセスを実施してよい。図に示された例では、新規ファイルが作成される(202)ときに、その新規ファイルが関連付けられる仮想マシンが存在すれば決定される(204)。一部の実施形態では、ハイパーバイザが、新規ファイルが関連付けられる仮想マシン識別子を示してよい。この表示は、ファイルを作成するためのリクエストに及び/又は後続の通信に関連して受信されてよい。一部の実施形態では、ハイパーバイザは、ファイルが関連付けられる仮想マシンを決定するために、例えばハイパーバイザのAPIを通じて照会されてよい。もし、ファイルが仮想マシンに関連付けられると決定されたならば(206)、そのファイルを対応する仮想マシンに関連付けるデータが、例えば表、インデックス、データベース、又はその他のデータ構造及び/又はリポジトリに格納される(208)。もし、新規ファイルが仮想マシンに関連付けられない(若しくは関連付けられるとまだ決定されていない)ならば(206)、又はそのファイルを対応する仮想マシンに関連付けるデータが格納されたら(208)、プロセスは終了する。
様々な実施形態では、様々なサイズのI/Oリクエストに関わるストレージシステムパフォーマンスのモデルを生成するために、仮想マシン認識ストレージシステムが較正及び/又はテストされてよい。結果として得られる(1つ又は複数の)モデルは、様々な実施形態では、例えば異なるサイズのI/Oリクエストを生成するなどの非類似の特性を有するだろう複数のVMとの関わりでVMごとにQoSを提供するために使用されてよい。例えば、一部の実施形態では、仮想マシンは、異なるサイズ(例えば、8kBや256kBなど)のリクエスト(例えば、読み出しリクエストや書き込みリクエスト)を作成するように構成されてよい。リクエストのサイズが大きいほど、小さいサイズのリクエストよりも例えば処理時間が多く必要である。様々な実施形態では、異なるリクエストサイズを使用するように構成されるだろう複数のVMにわたってVMごとにQoSが提供されることを可能にするために、リクエストサイズの違いを超えてストレージシステムパフォーマンスをモデル化するように生成される。
図3Aは、ストレージシステムパフォーマンスをモデル化するためのプロセスの一実施形態を示したフローチャートである。様々な実施形態では、図3Aのプロセスは、図1の仮想マシン認識ストレージシステム108などの仮想マシン認識ストレージシステムによって及び/又は図1の仮想マシン認識ストレージシステム108などの仮想マシン認識ストレージシステムとの関わりで実施されてよい。図に示された例では、異なるリクエストサイズ(例えば、8kB、16kB、32kB、64kB、256kBなど)にわたってストレージシステムパフォーマンスを特徴付けるために、テストが行われる(302)。例えば、所定のリクエストサイズについて、リクエストが数(IOPS)を増やしてサブミットされてよく、様々なワークロードでのストレージシステムのレイテンシ(例えば、リクエストを完了させるまでの時間)が観察されてよい。1つ以上のパフォーマンスモデルを生成するために、統計分析が実施される(304)。一部の実施形態では、読み出しパフォーマンス及び書き込みパフォーマンスについて、それぞれ別々のモデルが生成されてよい。様々な実施形態では、モデルは、例えば、キューと、読み出し動作を実施するための関連付けられたパイプラインとからなる一式、及びキューと、書き込み動作を実施するための関連付けられたパイプラインとからなる別の一式のような、IOPSを実施するための、VMごとのキューと、関連付けられたパイプラインとを設計及び管理するために使用されてよい。一部の実施形態では、(1つ又は複数の)モデルは、ストレージシステムによって、VM別のキューから該キューに関連付けられたI/Oパイプライン(例えば、読み出しパイプラインや書き込みパイプライン)に次のリクエストを許可するかどうかを決定するために使用されてよい。例えば、パイプラインは、所定の時点でストレージシステムが扱うことができる、一部の実施形態では総「コスト」として及び/又はスループット(例えばキロバイト単位)で表される最大ワークロードに関する理解にしたがって、サイズ決定されてよい。もし、パイプラインにおける現時点でのワークが総容量未満であり、尚且つ(1つ又は複数の)適用可能モデルに基づくと、(例えば、そのリクエストを次にパイプラインへ許可される順番にあるキューから)次のリクエストを追加することによる「コスト」増分が総システム容量(例えば、パイプラインサイズ)を超えさせる結果とならないならば、そのリクエストは、許可されてよい。
図3Bは、仮想マシン認識システムの一実施形態におけるストレージシステムパフォーマンスのグラフの一例を示した図である。図に示された例において、グラフ320では、レイテンシが、所定のリクエストサイズにおけるIOPSの数又は所定のサイズのリクエストに基づくデータスループット(例えば、8kB)などのワークロード(「パフォーマンス」)の増加に対してプロットされている。曲線322は、この例で観察された結果を示している。ワークロード「X」に対応する地点「P」では、Xよりもワークロードが軽いときと比べて、レイテンシが、リクエスト数(及び/又は所定サイズのリクエストの増加に関連付けられたスループット)の増加に伴うワークロードの増加とともに急激に増加し始めることが見て取れる。
図3Cは、仮想マシン認識の一実施形態におけるストレージシステムパフォーマンスのグラフの一例を示した図である。図に示された例では、様々なリクエストサイズに関連付けられたそれぞれの変曲点Xが、グラフ340にプロットされており、スループットの増加を伴うことなくレイテンシの急増前の飽和限界で処理できる所定のサイズのリクエストの数によって様々なリクエストサイズにわたってシステム容量を特徴付ける線342を決定するために、統計処理(例えば、線形回帰分析)が実施される。
様々な実施形態では、図3A〜3Cに関連して上述されたような解析が、ストレージシステムを特徴付けるために及び様々なワークロードを扱うその能力をモデル化するために実施されてよい。一部の実施形態では、リクエストを実施するためとして観察された「コスト」の、リクエストサイズに依存しない第1の成分と、リクエストのサイズに起因する第2の成分とを区別するために、計算が実施されてよい。例えば、もし、ストレージシステムが、8kBリクエスト及び256kBリクエストなどの2つの異なるサイズのリクエストで特徴付けられるならば、それぞれのサイズでレイテンシが急上昇したときの上記リクエストの数の間に、等価関係が設定されてよい。
8k(8k+コスト)=x256k(256k+コスト)
一部の実施形態では、x8k及びx256kは、テストによって決定され、上記の方程式は、キロバイト(kB)で表されるサイズ非依存コスト成分(例えば、上記の方程式における「コスト」)を決定するために解かれる。例えば、もし、ストレージシステムがリクエストで飽和に達するパフォーマンステストにおいて、8kBリクエストサイズで64のリクエスト又は256KBで4のリクエストが十分であった、即ち、スループットの増加を伴うことなくレイテンシの急上昇前に処理できたならば、算出されるリクエストサイズ非依存コスト成分は、8.5kBになる。一部の実施形態では、パイプラインに次のリクエストを追加するコストは、この例では8.5kBであるサイズ非依存コストをリクエストサイズに加えたものだと見なせるだろう。例えば、次の8kBリクエストは、少なくとも16.5kBに相当するパイプラインが空いている場合にのみ追加されてよく、それに対し、次の256kリクエストは、パイプラインの中に少なくとも264.5kBの容量が空いている場合のみ追加されてよい。
図4は、QoSパラメータを仮想マシンごとに実装するためのプロセスの一実施形態を示したフローチャートである。様々な実施形態では、図4のプロセスは、図1のストレージシステム108などの仮想マシン認識ストレージシステムによって実行されてよい。図に示された例では、1つ以上の仮想マシンの各々について、サービス品質(QoS)パラメータデータが受信される(402)。様々な実施形態では、QoSパラメータは、管理ユーザインターフェース、又はAPI、ウェブサービスコール、若しくはその他のプログラムインターフェース、又は設定ファイルなどを通じて受信されてよい。様々な実施形態では、ストレージシステムに格納されている全て又は一部のファイルが、QoSパラメータに関連付けられてよい。例えば、ファイルによって、最小IOPS QoSパラメータ値を各々に割り振られた仮想マシンに関連付けられていたり、最小IOPSコミットメントが設定されていない仮想マシンに関連付けられていたり、及び/又はいかなる仮想マシンにも(まだ)関連付けられていなかったりしてよい。
図4を更に参照すると、ストレージシステムは、受信されたQoSパラメータに少なくとも部分的に基づいて決定される方式でリクエストを処理するように構成される(404)。様々な実施形態では、仮想マシン別のキューは、仮想マシンに関連付けられたファイルに関連付けられたリクエストにサービス(情報)を提供するために使用され、リクエストは、それぞれの仮想マシンに及び/又はそのそれぞれの対応するキューに関連付けられたそれぞれのQoSパラメータ値がもしあれば、そのようなQoSパラメータ値に少なくとも部分的に基づいて、サービスを受けるためにそれぞれのキューから引き出される。
図5は、VMごとのI/Oキューを伴う仮想マシン認識ストレージシステムの一実施形態を示したブロック図である。様々な実施形態では、図5に示された要素は、図1のストレージシステム108などの仮想マシン認識ストレージシステムに含まれてよい。図に示された例では、ストレージシステム502は、1つ以上のハイパーバイザからなるハイパーバイザセットからリクエスト(例えば、ファイル作成/削除、読み出し、書き込み)を受信するように構成されている通信インターフェース504を含む。通信インターフェース504は、受信された各リクエストについて、そのリクエストが関連付けられている仮想マシンを決定するために、及びそのリクエストを対応する仮想マシン別のキュー506の中の次の空き位置(がもしあればその位置)に置くために、ネットワークインターフェース(例えば、ネットワークインターフェースカード)及びロジックの一方又は両方を含んでいてよい。様々な実施形態では、リクエストが関連付けられている仮想マシンは、リクエストが関連付けられているファイルに及びそのファイルを対応する仮想マシンに関連付ける事前に格納されたデータに少なくとも部分的に基づいて決定されてよい。複数の仮想マシン別のキュー506のそれぞれの中のリクエストの場所は、処理のためにリクエストのパイプライン510に追加されるように、比例スケジューラ508によってスケジュールされる。例えば、パイプライン510の中の次の空き位置512は、次にスケジュールされたリクエストをキュー506のなかから引き出してそれをパイプライン510の位置512に追加することによって満たされてよい。I/Oエンジン514は、パイプライン510からリクエストを引き出し、例えば関連付けられたファイルからデータを読み出す及び/又は関連付けられたファイルにデータを書き込むことによって各リクエストに順番にサービスを提供する。一部の実施形態では、ストレージシステムの読み出しパフォーマンスと書き込みパフォーマンスとが、別々にモデル化され、別々のキュー及び/又はパイプライン構造が、読み出しリクエストの管理及び処理と書き込みリクエストの管理及び処理とにそれぞれ使用されてよい。
図6は、仮想マシン認識ストレージシステムの一実施形態に実装される比例スケジューラの一例を示した図である。様々な実施形態では、図6に示されたスケジュールは、図5のスケジューラ508などの比例スケジューラによって作成されるスケジュールの一例であってよい。図に示された例では、スケジュール602は、5つの仮想マシンの各々について、「vm−1」から「vm−5」までで標識された列に、10のスケジュールラウンドのラウンドごとに、対応する「仮想時間」を含む。この対応する「仮想時間」は、仮想マシンに関連付けられた仮想マシン別のキューから、次のリクエストが、スケジュール602が関連付けられているパイプライン(例えば、読み出しリクエストパイプラインや書き込みリクエストパイプラインなど)に追加される時間である。図に示された例では、ストレージシステムリソースは、5つのVMの間で、それぞれに帰属する「シェア」の数(記入がある第1の行を参照)、即ち、10、80、20、60、及び40によってそれぞれ示されるだけ割り当てられている。各VMに関連付けられたそれぞれのリクエストサイズ(「ワークロード」と記された行)が示されており、具体的には、それぞれ8kB、256kB、16kB、64kB、及び32kBである。各VMについて計算される、この例ではVMに帰属するシェアの数をリクエストサイズで割ったものとして定義される「ワーク」値が、図のように算出されている。例えば、604で標識されたボックスに示されるように、VM vm−1及びvm−2についてのワーク値は、それぞれ1.25及び0.3125である。vm−1に関連付けられた各リクエストは、vm−2からのリクエストの4倍のワークを必要とすると見なされる(1.25=4×0.3125)ので、606で標識された角括弧によって示されるように、スケジューラは、vm−2から4つのリクエストがパイプラインに追加される間にvm−1からは1つのリクエストのみをパイプラインに追加されるようにスケジュールしている。同様に、608で標識された破線の両矢印によって示されるように、vm−4からのリクエストへのサービス提供に関連付けられたワークは、vm−2からのリクエストのそれの3倍であると計算されたので、対をなす破線の角括弧610によって示されるように、vm−4から1つのリクエストがスケジュールされる間にvm−2から3つのリクエストがスケジュールされている。このように、スケジュール602は、ストレージシステムリソースへの公平なアクセスを保証しており、リソースは、この例では不均等に割り当てられたストレージシステムの「シェア」を反映するように調整されたワークロード(例えば、リクエストサイズ)に比例して割り当てられている。
様々な実施形態では、対応する各VMに割り当てられるシェアは、一部の実施形態では、対応する各VMが関連付けられている対応する各VM及び/又はQoS(若しくはその他の)カテゴリに関連付けられたQoS保証(例えば最小IOPS)及び/又は限界(例えば最大IOPS)に少なくとも部分的に基づいて、プログラムによって決定されてよい。一部の実施形態では、シェアは、例えば管理ユーザインターフェース又はその他のユーザインターフェースを通じて手動で割り当てられてよい。
図7は、最大IOPS QoSパラメータを遂行するように構成されている仮想マシン認識ストレージシステムの一実施形態を示したブロック図である。様々な実施形態では、図7に示されたコンポーネント及び関連の技術は、図1のストレージシステム108などの仮想マシン認識ストレージシステムに組み込まれてよい。図に示された例では、パイプライン2の中のリクエストが、I/Oエンジン704によってサービスを受ける。各リクエストがサービスを受ける際、もし、そのリクエストが、最大IOPS QoSパラメータを関連付けられた仮想マシンに関連付けられているならば、リクエスト肯定応答が生成され、ただし、この肯定応答は、図に示された例における仮想マシン別の漏出バケツ(先入れ先出しバケツ)706、708、及び710などの漏出バケツタイプのデータ構造を少なくとも使用して決定される次の時間まで送信されない。各漏出バケツ(706、708、710)は、その漏出バケツが関連付けられている仮想マシンに関連付けられた最大IOPSパラメータに関連付けられた速度で肯定応答を発信する。一部の実施形態では、限られた時間にわたってVM I/Oが最大IOPSを超えてバーストする条件が存在し、これは、そのVMによって生成されるバーストサイクルの数に比例する。このような方式による肯定応答の抑制の結果、(少なくとも正常に動作している)リクエスト送信元(例えば、特定のVMに関連付けられたハイパーバイザ及び/又はスレッド)は、ストレージシステムへの新しいリクエストの送信を調整し、そのVMについて最大IOPSを効果的に遂行する。図に示された例では、漏出バケツ708によって発信される肯定応答712は、その肯定応答712に関連付けられているリクエストを送信したノード(例えば、ハイパーバイザ)に通信714を通じて送信されてよい。漏出バケツ706、708、及び710からまだ発信されていないその他の肯定応答は、関連付けられたリクエストがたとえ完了していたとしても、それらの肯定応答が各々その対応する漏出バケツから発信されてよい後の時点まで送信されない。
一部の実施形態では、リクエストは、図5に示された506などのVMキューの中で待機して時間を費やし、VMのI/Oリクエストに起因するこのようなレイテンシは、ストレージリソースのためにこのVMが経験する競合の度合い(本書では、「競合レイテンシ」と呼ぶこともある)を決定する。
一部の実施形態では、VMからのリクエストは、図7に示されるように、クライアントソースに肯定応答が送信される前に絞り調整され、これは、このような絞り調整に関連付けられた、例えば最大IOPS QoSパラメータを遂行するためのレイテンシ(本書では、「絞り調整レイテンシ」と呼ぶこともある)が、実施されるためにキュー及び/又はパイプラインの中で待機することに関連付けられたレイテンシ(本書では、「競合レイテンシ」と呼ぶこともある)から区別される(、並びに/又はそれとは別に報告される及び/若しくは可視化して表される)ことを可能にする。
図8は、ストレージシステムパフォーマンスの可視化をVMごとに提供するためのプロセスの一実施形態を示したフローチャートである。様々な実施形態では、図8のプロセスは、図1のストレージシステム108などの仮想マシン認識ストレージシステムの分析及び/又は報告モジュールによって実行されてよい。図に示された例では、競合レイテンシ(例えば、キューの中にある時間、パイプラインの中にある時間、及び実際の処理時間のうちの1つ以上)と、(例えば、図7のような、最大IOPSを遂行するための)絞り調整レイテンシとが、VMごとに別々に(802)。例えば、所定のVMについて、各リクエストについての競合時間を算出するために、そのVMに関連付けられたVM別のキューに各リクエストが追加される時間が、対応する肯定応答が生成された時間と比較されてよく、この肯定応答が生成された時間は、絞り調整レイテンシを(もしあれば)算出するために、肯定応答が送信された時間と比較されてよい。このような統計は、VMごとに計算、集約、蓄積などされてよい。競合レイテンシ、絞り調整レイテンシ、又はその両方をVMごとに報告するために、報告及び/又は可視化が生成及び提供されてよい(804)。
図9は、正規化されたストレージシステムパフォーマンスをVMごとに報告するためのプロセスの一実施形態を示したフローチャートである。本書で説明されるように、異なるVM及び/又はハイパーバイザが、異なるサイズ(例えば、8kBや256kBなど)の読み出し及び/又は書き込みリクエストをサブミットするように構成されてよい。したがって、最も馴染みのある旧来のストレージシステムパフォーマンスの尺度である「IOPS」、即ち「1秒あたりのI/O」は、様々なワークロードサイズにわたって完全に且つ正確にパフォーマンス達成度を反映することはできないだろう。様々な実施形態では、したがって、IOPS、又はスループット(例えば、所定の期間内に何バイトが読み出された及び/若しくは書き込まれたか)などのその他のパフォーマンス尺度に追加して、及び/又は代わって、「正規化IOPS」が計算及び報告されてよい。一部の実施形態では、8kBなどの基準サイズではないサイズのリクエストに関わるストレージシステムのパフォーマンスは、基準リクエストサイズのワークロードに関わるパフォーマンスと、より直接的に比較可能であるために、正規化されてよい。例えば、サイズ8kBのリクエストに関わるI/O動作の完了が、1正規化IOPであると見なされてよく、それに対し、サイズ256kBのリクエストに関わる同じ動作の1回の反復は、このリクエストサイズが32倍の大きさであるゆえに、32正規化IOPSであるとカウントされてよい。
更に図9を参照すると、図に示された例では、各リクエストサイズについて、1秒あたりの実際のI/O動作の数(実際のIOPS)が決定される(902)。それぞれの実際のIOPS数は、対応する正規化IOPSを例えばVMごとに計算するために使用される(904)。実際のIOPS及び計算された正規化IOPSの一方又は両方が、報告及び/又は可視化に含められる(906)。
図10は、バックエンド書き込みキュー状態に基づいてフロントエンド書き込みキューへの許可を調整するように構成されている仮想マシン認識ストレージシステムの一実施形態を示したブロック図である。様々な実施形態では、仮想マシン認識ストレージシステムは、ファイルに書き込まれることをリクエストされたデータを、先ず、フロントエンド書き込みプロセスにおいて不揮発性メモリに格納し、そして、それとは別に、バックエンド書き込みプロセスにおいて、最初に不揮発性メモリに書き込まれたデータをより恒久的に半導体ドライブ(SSD)/フラッシュストレージに書き込むことによって、書き込みリクエストを処理してよい。様々な実施形態では、次の書き込みリクエストをフロントエンドパイプラインへ許可するかどうかを決定するために、バックエンドキュー/パイプラインの深さが監視及び考慮される。
図10に示された例では、例えばスケジューラ1002が、リクエストを、VM別のキュー(図10では図示されていない)から引き出されてフロントエンド書き込みリクエストパイプライン1004に追加されるようにスケジュールするように構成される。I/Oエンジン(図10では図示されていない)は、各リクエストで書き込まれることをリクエストされたデータをNVRAM1006に格納することによって、パイプライン1004の中のリクエストにサービスを提供する。バックエンドパイプライン1008が、NVRAM1006からの読み出しの、及びNVRAM1006に最初に書き込まれたデータのSSD/フラッシュ1010へのより恒久的な書き込みの、バックエンドプロセスを管理するために使用される。図に示された例では、フロントエンドパイプライン1004の中の空き位置1014へ次の書き込みリクエストを許可するかどうかの決定の際に、スケジューラ1002によって考慮に入れられるように、バックエンドパイプライン状態フィードバック1012が、スケジューラ1002に提供される。一部の実施形態では、もし、バックエンドパイプライン1008が、図に示された例のように満杯であるならば、スケジューラ1002は、フロントエンドパイプラインの中に次の書き込みリクエストを受け入れるだけの十分な空きスペース(例えば、1014)がたとえあったとしても、フロントエンドパイプライン1004への次の書き込みリクエストの許可を待機してよい。
図11は、バックエンド書き込みキュー状態に基づいてフロントエンド書き込みキューへの許可を調整するためのプロセスの一実施形態を示したフローチャートである。様々な実施形態では、図11のプロセスは、図10のスケジューラ1002などのスケジューラによって実行されてよい。図に示された例では、NVRAM(又はその他のフロントエンドストレージ)からSSD/フラッシュ(又はその他のバックエンドストレージ)への書き込みのバックエンドパイプラインが監視される(1102)。もし、次の書き込みリクエストが、NVRAMへの書き込みのためにフロントエンドパイプラインに追加される準備ができた(例えば、次にスケジュールされているキューが、待機中の書き込みリクエストを有する)ならば(1104)、フロントエンド書き込みパイプライン及びバックエンド書き込みパイプラインの両方に現時点で空きがあるかどうかが決定される(1106)。もし、空きがないならば(1106)、プロセスは、フロントエンド書き込みパイプライン及びバックエンド書き込みパイプラインの両方に空きができるまで待機する(1107)。もし、フロントエンド書き込みパイプライン及びバックエンド書き込みパイプラインの両方に空きがあるならば(1106)、書き込みリクエストは、フロントエンドパイプラインへ許可される(1108)。プロセスは、例えばシステムがメインテナンスのためにオフラインにされるなど終わりになるまで続く(1110)。
様々な実施形態では、ストレージシステムリソースが、例えば、コンシューマ(例えばVM)がQoSパラメータセットを有するかどうか、並びにもし有するならばそれぞれどのパラメータであり及びどの値であるかに基づいて、異なるコンシューマカテゴリに割り当てられてよい。また、一部の実施形態では、ストレージシステムリソースのうちの幾らかの割合が、ガベージコレクション及びその他の内部プロセスなどの、内部ファイルシステムによる使用に割り当てられてよい。一部の実施形態では、ストレージシステムに格納されたファイルの全部又は一部が関連付けられているそれぞれのVMに関連付けられた、もし該当するならばQoSパラメータなどの、ストレージシステムが利用できる情報に基づいて、少なくとも一部にはプログラムによって、割り当て及び/又はデフォルト割り当てが決定及び/又は設定されてよい。
図12は、プログラムによって決定された割り当てにしたがってストレージリソースの使用を許すためのプロセスの一実施形態を示したフローチャートである。様々な実施形態では、図12のプロセスは、図1のストレージシステム108などの仮想マシン認識ストレージシステムによって実行されてよい。図に示された例では、ストレージシステムの、複数のリソースコンシューマカテゴリの各々について、そのリソースコンシューマカテゴリに割り当てるための対応する割り当てられたストレージシステムリソース割合が決定される(1202)。ストレージシステムリソースは、各リソースコンシューマが関連付けられているカテゴリに、並びに同じ及び/若しくはその他のカテゴリのリソースコンシューマによって所定の時点で使用されているストレージシステムリソースのそれぞれの割合に、少なくとも部分的に基づいて実行時に動的に決定されことにしたがって、リソースコンシューマによって使用されることを許可される(1204)。
様々な実施形態では、ストレージリソースは、異なるVMカテゴリなどの外部コンシューマと、内部ファイルシステム動作との間で、プログラムによって割り当てられてよい。一部の実施形態では、内部動作は、ストレージシステムリソースの割り当てにおいてVMと同じに扱われてよく、このような「内部」VMは、実際のVMと同じ又は同様な方式でリソースを割り当てられてよい。このような内部動作の非限定的な例として、以下が挙げられる。
・ログ構造ファイルシステムのためのガベージコレクション
・ホットデータをフラッシュの中に維持してコールドデータをディスクへ撤退させるための、ハイブリッドファイルシステムにおけるフラッシュエビクション
・SSD又はHDDのドライブが機能しないときの、RAID再構築
・アクセスされたコールドデータをHDDからSSDに移すことを伴う、ハイブリッドファイルシステムにおける読み出しキャッシング
・データ保護のための、VMごとの複製
様々な実施形態では、ストレージシステムリソースが、1つ以上のQoSパラメータタイプからなる異なる一式をそれぞれ関連付けられた複数のVMカテゴリにわたってプログラムによって割り当てられてよい。例えば、一部の実施形態では、最小及び最大の正規化IOPSに関してVMごとのストレージQoSを設定しつつも、ユーザは、以下の設定のうちの1つ以上から選択を行う柔軟性を有する。
・VMについて、最小IOPS及び最大IOPSの両方を設定する
・VMについて、最小IOPSのみを設定し、最大IOPSを設定しない
・VMについて、最小IOPSを設定せず、最大IOPSのみを設定する
・VMについて、最小IOPSも最大IOPSも設定しない
上記の選択肢によって表される柔軟性は、システムにおけるQoS設定を異種混合にするかもしれず、これは、扱いを難しくなる恐れがある。様々な実施形態では、ストレージシステムリソースの割り当てが、最小IOPS設定を有さないVMのリソースが枯渇しないことを保証できるように成される。
一部の実施形態では、VMのリソースを枯渇させないという上記の目標は、以下の表に示された例のように、システムリソースを複数のカテゴリに振り分けることによって達成される。
図13は、利用可能なリソースと、様々なストレージシステムリソースコンシューマクラスに関連付けられたそれぞれのQoSパラメータとに基づいてプログラムによってストレージシステムリソースを割り当てるためのプロセスの一実施形態を示したフローチャートである。様々な実施形態では、図13のプロセスは、上記の表にあるように、ストレージシステムリソースの割り当てをプログラムによって決定するために使用されてよい。図に示された例では、システムリソースの合計が決定される(1302)。例えば、ストレージシステムがマテリアルパフォーマンスの低下を伴うことなく扱えるだろう最大正規化IOPSが決定されてよい。ストレージシステム容量は、正規化IOPS、スループット(例えばキロバイト単位)、及び/又は合計容量を表し様々なコンシューマカテゴリに割り当てるために利用できると見なされる決定されたトークンの数(若しくは図6に示された例における「シェア」)などの更に抽象的な容量表現で表されてよい。1つ以上のコンシューマカテゴリの各カテゴリの中のリソースコンシューマについて、リソース可用性データ(例えば、最小IOPS及び/又はその他のQoSコミットメント)が受信される(1304)。例えば、上記の表に示された例では、「最小IOPSを伴うVM」のVMに関連付けられたそれぞれの最小IOPS保証が受信されてよい。ストレージシステムリソースは、最小IOPSなどのQoSコミットメントを有するもの、そのようなコミットメントを有さないもの(例えば、最小IOPSを伴わないVM)、及び内部ファイルシステム動作などのその他のコンシューマなどの、複数のコンシューマカテゴリ間で、プログラムによって割り当てられる(1306)。一部の実施形態では、割り当ては、基準値又はデフォルト値から始まって、その値を、各カテゴリの中のリソースコンシューマの数、及び対応する最小IOPSコミットメントなどのそれらに関して知られている情報に基づいて、もし必要であれば調整することによって決定されてよい。例えば、上記の表を参照すると、最小IOPSを伴うVMへの基準/デフォルト割り当ては、40%であったかもしれないが、その数値は、「最小IOPSを伴うVM」の中のVMに関わって成されたことを示された特定の最小IOPSコミットメント、及びその他のカテゴリの中のコンシューマの数の一方又は両方に基づいて、50%に調整されているだろう。
図13を更に参照すると、ひとたび割り当てが決定されると、ストレージシステムは、それぞれのコンシューマからのリクエストを、個々のリソースコンシューマに関して成されたことを示されたそれぞれの可用性コミットメント(例えば、その特定のVMについての最小IOPS)と、プログラムによって決定された割り当て(例えば、最小IOPSを伴うVMによる使用のために割り当てられたリソースの百分率又はそれ以外の形で示された割合)とに少なくとも部分的に基づいて決定されるやり方で、優先順位を付けるように構成される。
様々な実施形態では、ストレージシステムリソースの割り当ては、例えば、或るカテゴリからのコンシューマが別のカテゴリに割り当てられたリソースを、その別のカテゴリからのコンシューマが自身に割り当てられたレベルの又はそのレベルに近いレベルのリソースをリクエストしていない期間中などに使用することを許すなどして、柔軟に適用されてよい。一部の実施形態では、或るカテゴリからのリソースコンシューマが、例えば短期的な需要の急増又は急上昇を扱うために、別のカテゴリに割り当てられたリソースを使用することを許されてよい。
図14は、ストレージシステムリソース割り当てを柔軟に遂行するためのプロセスの一実施形態を示したフローチャートである。図に示された例では、各リソースコンシューマカテゴリによるストレージシステムリソースの使用が監視される(1402)。もし、所定のコンシューマカテゴリ内で、そのカテゴリの中のコンシューマ(例えばVM)からの、サービスを求める次のリクエストが、そのコンシューマカテゴリの中のコンシューマによる使用のために割り当てられたリソースを超えるリソース使用にならない(1404)ならば、そのリクエストは、サービスを受ける(1406)。もし、或るカテゴリ内で、サービスを求める次のリクエストが、結果として割り当てを超えさせるならば(1404)、その他のユーザカテゴリに関連付けられた未使用の容量があるかどうかを決定するために、チェックが実施される(1408)。もし、そのような別のカテゴリ内のコンシューマが、そのカテゴリに割り当てられたリソースを完全に使用していないならば(1408)、前者のカテゴリの中のコンシューマからのリクエストは、サービスを受けてよく、これは、後者のカテゴリの中のコンシューマによる使用のために割り当てられたが現時点ではそれらのコンシューマによって使用されていないリソースを、前者のカテゴリからのコンシューマが一時的な形で使用することを、実質的に許す。もし、或るカテゴリに割り当てられたリソースが、完全に使用されており(1404)、その他のカテゴリに割り当てられた未使用の容量がないならば(1408)、リクエストは、サービスを受けるために待機しなければならない(1412、1414)。一部の実施形態では、或るカテゴリに割り当てられた未使用の容量は、例えば、もし、そのカテゴリの中のリクエストが急激に増えるなどしても、そのカテゴリ内のリクエストへのサービス提供にリソースが利用可能であることを保証するために、別のカテゴリの中のコンシューマからのリクエストへのサービス提供には、現時点で未使用である容量の50%までなど何らかの限界までしか使用されなくてよい。
様々な実施形態では、本書で開示されるようにリソースを割り当てること、及び次いで、そのような割り当てを本書で開示されるように柔軟に遂行することが、リソースが枯渇するリソースコンシューマカテゴリがないことを保証しつつもストレージシステムリソースが最大限に利用されることを可能にするだろう。
図15は、ストレージシステムリソースの割り当てを遂行するように構成されているストレージシステムスケジューラの一実施形態を示したブロック図である。図に示された例では、スケジューラ1502は、例えば上述のような、VM別の固有な読み出しリクエストキュー及び/又は書き込みリクエストキューなどのリクエストキュー1504の中のリクエストを、対応するリクエストパイプライン1506への追加のためにスケジュールするように構成される。また、この例では、スケジュール1502は、ファイルシステム及び/又はその他の内部動作1508などの内部コンシューマによるストレージシステムリソースへのアクセスを調整するように構成される。一部の実施形態では、ファイルシステムは、内部ファイルシステム動作を実施する前に、スケジューラ1502からリソースをリクエストする。図に示された例では、外部コンシューマ(例えばVM)リクエスト(例えば読み出しや書き込み)パイプライン1506は、ストレージシステムにおける動的リソース割り当ての現状態を反映した現サイズ1510を有する。例えば、任意の所定の時点において、サイズ1510は、ストレージシステムのリソース全体、リクエストキュー1504に関連付けられたサイズ、現深さ、数、及び/又はパフォーマンスコミットメント、並びに内部コンシューマなどのその他のコンシューマカテゴリによる、そのカテゴリによる使用のために割り当てられたリソースの現利用程度のうちの1つ以上に基づいて決定されてよい。例えば、図に示された例では、ストレージシステムリソースの一部分1512が、内部動作1508による使用のために割り当てられているが、図に示された例では、それらのリソースのかなりの部分が、(破線の矩形として示された空きスロットによって記されるように、)使用されていない。様々な実施形態では、もし、外部リクエストパイプライン1506が満杯になると、内部動作1508に割り当てられたが現時点でそのような動作のために使用されていないリソースが、外部ユーザ(例えばVM)からの更なるリクエストにサービスを提供するための一時的な使用のために動的に解放されて、外部リクエストパイプライン1506のサイズ1510を(矢印1514によって記されるように)一時的に効果的に増大させてよい。一部の実施形態では、もし、内部動作を実施するためのリソースを求めるリクエストが増加したならば、スケジューラは、そのような内部動作による使用に利用可能な割り当てられたリソースレベルを取り戻すために、外部リクエストパイプライン1506のサイズを例えばそのパイプラインの中のリクエストがサービスを受けている間は更なるリクエストを追加しないなどによって削ってよい。
様々な実施形態では、本書で開示された技術は、VM認識ストレージシステムによってネイティブに遂行される、VMごとのサービス品質の保証及び/若しくは制限、異なるリクエストサイズなどの非類似の属性を有するVMにわたってVMごとに成される、より正確で且つ直感的なパフォーマンスの統計、報告、及び/若しくは可視化、異質なリソースコンシューマカテゴリ間におけるリソースの割り当てに少なくとも部分的に基づいて、一部の実施形態では柔軟に、ストレージシステムリソースへのアクセスを許すこと、並びにそのような割り当てをプログラムによって決定すること、のうちの1つ以上を提供するために使用されてよい。
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、本発明は、提供された詳細に限定されない。本発明を実現するためには、多くの代替的手法がある。開示された実施形態は、例示的であり、限定的ではない。

Claims (20)

  1. ストレージシステムであって、
    複数の仮想マシンの各々について、対応する入力/出力(I/O)リクエストキューを格納するように構成されているメモリと、
    前記メモリに結合され、リクエストを、仮想マシンごとのサービス品質パラメータに少なくとも部分的に基づいて、決定された順序で前記それぞれのリクエストキューから引き出されて対応するストレージ動作パイプラインに追加されるようにスケジュールするように構成されているプロセッサと、
    を備えるストレージシステム。
  2. 請求項1に記載のストレージシステムであって、
    前記プロセッサは、更に、リクエストを受信し、受信された各リクエストを前記入力/出力(I/O)リクエストキューのうちの対応する1つのキューにマッピングするように構成される、ストレージシステム。
  3. 請求項2に記載のストレージシステムであって、
    前記プロセッサは、受信された各リクエストを、前記リクエストが関連付けられているファイル識別子を前記リクエストから抽出し前記ファイル識別子を前記ファイル識別子が関連付けられている仮想マシンにマッピングすることによって前記入力/出力(I/O)リクエストキューのうちの対応する1つのキューにマッピングするように構成されている、ストレージシステム。
  4. 請求項2に記載のストレージシステムであって、
    前記リクエストは、1つ以上のハイパーバイザから受信される、ストレージシステム。
  5. 請求項1に記載のストレージシステムであって、
    前記プロセッサは、前記順序を、複数の仮想マシン間における自動的に決定された公平なリソースシェアリングに少なくとも部分的に基づいて決定するように構成されている、ストレージシステム。
  6. 請求項1に記載のストレージシステムであって、
    前記プロセッサは、前記順序を、異なるリクエストキューの中のリクエストに関連付けられたそれぞれのリクエストサイズに少なくとも部分的に基づいて決定するように構成されている、ストレージシステム。
  7. 請求項1に記載のストレージシステムであって、
    前記複数の仮想マシンのうちの少なくとも一部について、前記仮想マシンごとのサービス品質パラメータは、IOPS容量の最小シェアを含む、ストレージシステム。
  8. 請求項7に記載のストレージシステムであって、
    前記プロセッサは、前記順序を、前記最小シェア及びリクエストサイズに少なくとも部分的に基づいて決定するように構成されている、ストレージシステム。
  9. 請求項1に記載のストレージシステムであって、
    前記複数の仮想マシンのうちの少なくとも一部について、前記仮想マシンごとのサービス品質パラメータは、最大IOPS設定を含む、ストレージシステム。
  10. 請求項1に記載のストレージシステムであって、
    前記プロセッサは、更に、少なくとも一部には実際のリクエストサイズを基準リクエストサイズと比較することによって決定される正規化IOPS指標を追跡及び報告するように構成されている、ストレージシステム。
  11. 請求項1に記載のストレージシステムであって、
    前記プロセッサは、更に、仮想マシンごとに競合レイテンシを追跡及び報告するように構成されている、ストレージシステム。
  12. 請求項1に記載のストレージシステムであって、
    前記プロセッサは、最大IOPS設定を遂行するように、及び関連付けられた絞り調整レイテンシの報告を追跡するように構成されている、ストレージシステム。
  13. 請求項1に記載のストレージシステムであって、
    前記プロセッサは、ストレージシステムパフォーマンス容量のモデルに少なくとも部分的に基づいてリクエストをスケジュールするように構成されている、ストレージシステム。
  14. 請求項13に記載のストレージシステムであって、
    前記モデルは、ストレージシステム動作に固有なモデルを含む、ストレージシステム。
  15. 請求項1に記載のストレージシステムであって、
    前記ストレージ動作パイプラインは、フロントエンド書き込みリクエストパイプラインを含み、前記プロセッサは、関連付けられたバックエンド書き込みパイプラインの現状態に少なくとも部分的に基づいてリクエストをスケジュールするように構成されている、ストレージシステム。
  16. 方法であって、
    複数の仮想マシンの各々について、対応する入力/出力(I/O)リクエストキューをストレージシステムに格納し、
    リクエストを、仮想マシンごとのサービス品質パラメータに少なくとも部分的に基づいて決定された順序でストレージシステムにおいて前記それぞれのリクエストキューから引き出されて対応するストレージ動作パイプラインに追加されるようにスケジュールする、
    ことを備える方法。
  17. 請求項16に記載の方法であって、更に、
    リクエストを受信し、受信された各リクエストを前記入力/出力(I/O)リクエストキューのうちの対応する1つのキューにマッピングすることを備える方法。
  18. 請求項17に記載の方法であって、
    受信された各リクエストは、前記リクエストが関連付けられているファイル識別子を前記リクエストから抽出し前記ファイル識別子を前記ファイル識別子が関連付けられている仮想マシンにマッピングすることによって記入力/出力(I/O)リクエストキューのうちの対応する1つのキューにマッピングされる、方法。
  19. 請求項16に記載の方法であって、
    前記順序は、複数の仮想マシン間における自動的に決定された公平なリソースシェアリングに少なくとも部分的に基づいて決定される、方法。
  20. 非一時的なコンピュータ読み取り可能ストレージ媒体に記録されているコンピュータプログラム製品であって、
    複数の仮想マシンの各々について、対応する入力/出力(I/O)リクエストキューをストレージシステムに格納するためのコンピュータ命令と、
    リクエストを、仮想マシンごとのサービス品質パラメータに少なくとも部分的に基づいて決定された順序で前記ストレージシステムにおいて前記それぞれのリクエストキューから引き出されて対応するストレージ動作パイプラインに追加されるようにスケジュールするためのコンピュータ命令と、
    を備えるコンピュータプログラム製品。
JP2017552839A 2015-04-08 2016-04-06 仮想マシンのためのネイティブなストレージサービス品質 Withdrawn JP2018517201A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562144518P 2015-04-08 2015-04-08
US62/144,518 2015-04-08
PCT/US2016/026229 WO2016164471A1 (en) 2015-04-08 2016-04-06 Native storage quality of service for virtual machines

Publications (1)

Publication Number Publication Date
JP2018517201A true JP2018517201A (ja) 2018-06-28

Family

ID=57072924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017552839A Withdrawn JP2018517201A (ja) 2015-04-08 2016-04-06 仮想マシンのためのネイティブなストレージサービス品質

Country Status (4)

Country Link
US (4) US10318197B2 (ja)
EP (1) EP3281108A1 (ja)
JP (1) JP2018517201A (ja)
WO (1) WO2016164471A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102240996B1 (ko) * 2019-10-14 2021-04-16 성균관대학교산학협력단 가상화 시스템에서의 입출력 완료 처리 방법 및 장치

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
CN107918613B (zh) * 2016-10-08 2022-01-21 上海宝存信息科技有限公司 因应服务质量的固态硬盘访问方法以及使用该方法的装置
US20180300065A1 (en) * 2017-04-16 2018-10-18 Nutanix, Inc. Storage resource management employing end-to-end latency analytics
CN108829520B (zh) * 2017-06-20 2022-03-29 成都灵跃云创科技有限公司 一种云环境下服务器资源分配方法和装置
US10908820B2 (en) * 2017-09-14 2021-02-02 Samsung Electronics Co., Ltd. Host-based and client-based command scheduling in large bandwidth memory systems
US10678574B1 (en) 2017-11-01 2020-06-09 Amazon Technologies, Inc. Reconfiguration rate-control
CN110046031B (zh) * 2018-01-12 2021-11-09 Oppo广东移动通信有限公司 应用处理方法和装置、电子设备、计算机可读存储介质
US10838624B2 (en) 2018-01-31 2020-11-17 Hewlett Packard Enterprise Development Lp Extent pool allocations based on file system instance identifiers
CN111902804B (zh) * 2018-06-25 2024-03-01 阿里巴巴集团控股有限公司 用于管理存储设备的资源并量化i/o请求成本的系统和方法
US20200073554A1 (en) * 2018-09-05 2020-03-05 International Business Machines Corporation Applying Percentile Categories to Storage Volumes to Detect Behavioral Movement
US11789922B1 (en) * 2019-12-13 2023-10-17 Amazon Technologies, Inc. Admitting for performance ordered operations of atomic transactions across a distributed database
US11809306B2 (en) * 2021-02-26 2023-11-07 Intuit, Inc. Method and system for scalable performance testing in cloud computing environments
US11829618B2 (en) * 2021-09-03 2023-11-28 Micron Technology, Inc. Memory sub-system QOS pool management
US11816360B2 (en) * 2022-03-29 2023-11-14 Silicon Motion, Inc. Method and apparatus for performing data access performance shaping of memory device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102261A (ja) * 1997-09-25 1999-04-13 Mitsubishi Electric Corp 記憶制御システム
JP2005100230A (ja) * 2003-09-26 2005-04-14 Fujitsu Ltd インターフェース装置及びパケット転送方法
US20130262649A1 (en) * 2012-03-29 2013-10-03 Fujitsu Limited Access control method, server device, and storage device
US20130326064A1 (en) * 2012-05-31 2013-12-05 Vmware, Inc. Distributed demand-based storage quality of service management using resource pooling

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155716B2 (en) 2002-03-08 2006-12-26 Intel Corporation Weighted and prioritized task scheduler
US9270559B2 (en) * 2009-01-28 2016-02-23 Headwater Partners I Llc Service policy implementation for an end-user device having a control application or a proxy agent for routing an application traffic flow
US8477610B2 (en) 2010-05-31 2013-07-02 Microsoft Corporation Applying policies to schedule network bandwidth among virtual machines
JP5309263B2 (ja) 2010-09-27 2013-10-09 株式会社日立製作所 計算機システム及びその管理方法
US9229808B2 (en) 2010-10-01 2016-01-05 Pure Storage, Inc. Reconstruct reads in a raid array with dynamic geometries
US8484392B2 (en) 2011-05-31 2013-07-09 Oracle International Corporation Method and system for infiniband host channel adaptor quality of service
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9268590B2 (en) * 2012-02-29 2016-02-23 Vmware, Inc. Provisioning a cluster of distributed computing platform based on placement strategy
US9201681B2 (en) 2013-02-13 2015-12-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and controller device for quality of service (QOS) caching in a virtualized environment
US11018988B2 (en) * 2013-08-26 2021-05-25 Vmware, Inc. Translating high level requirements policies to distributed configurations
US9122503B1 (en) * 2013-09-05 2015-09-01 Symantec Corporation Systems and methods for adaptive throttling of input/output requests in a virtual environment
US10642800B2 (en) * 2013-10-25 2020-05-05 Vmware, Inc. Multi-tenant distributed computing and database
US9037758B1 (en) 2013-11-06 2015-05-19 Vmware, Inc. Dynamic virtual machine (VM) input-output per second (IOPS) control based on application IO profiling and VM IO usage trend analysis
US9495192B2 (en) 2014-09-30 2016-11-15 Vmware, Inc. NUMA I/O aware network queue assignments
US10437770B2 (en) 2015-01-28 2019-10-08 Avago Technologies International Sales Pte. Limited Method and apparatus for providing virtual machine information to a network interface

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11102261A (ja) * 1997-09-25 1999-04-13 Mitsubishi Electric Corp 記憶制御システム
JP2005100230A (ja) * 2003-09-26 2005-04-14 Fujitsu Ltd インターフェース装置及びパケット転送方法
US20130262649A1 (en) * 2012-03-29 2013-10-03 Fujitsu Limited Access control method, server device, and storage device
JP2013206229A (ja) * 2012-03-29 2013-10-07 Fujitsu Ltd アクセス制御方法、サーバ装置およびストレージ装置
US20130326064A1 (en) * 2012-05-31 2013-12-05 Vmware, Inc. Distributed demand-based storage quality of service management using resource pooling

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102240996B1 (ko) * 2019-10-14 2021-04-16 성균관대학교산학협력단 가상화 시스템에서의 입출력 완료 처리 방법 및 장치

Also Published As

Publication number Publication date
US10318197B2 (en) 2019-06-11
WO2016164471A1 (en) 2016-10-13
US10248347B2 (en) 2019-04-02
US20190347023A1 (en) 2019-11-14
US20160299693A1 (en) 2016-10-13
US10949103B2 (en) 2021-03-16
US20190179551A1 (en) 2019-06-13
US20170003906A1 (en) 2017-01-05
EP3281108A1 (en) 2018-02-14
US10747451B2 (en) 2020-08-18

Similar Documents

Publication Publication Date Title
US10949103B2 (en) Native storage quality of service for virtual machines
US11314551B2 (en) Resource allocation and scheduling for batch jobs
US9727355B2 (en) Virtual Hadoop manager
US9509621B2 (en) Decentralized input/output resource management
US11150951B2 (en) Releasable resource based preemptive scheduling
CN103870341A (zh) 一种调整虚拟机资源的方法和系统
US20150317179A1 (en) Efficient input/output-aware multi-processor virtual machine scheduling
US9973512B2 (en) Determining variable wait time in an asynchronous call-back system based on calculated average sub-queue wait time
WO2011155233A1 (ja) クラスタ構成管理方法、管理装置及びプログラムを格納した記憶媒体
US10394606B2 (en) Dynamic weight accumulation for fair allocation of resources in a scheduler hierarchy
US20140334301A1 (en) Hierarchical allocation of network bandwidth for quality of service
US20140282540A1 (en) Performant host selection for virtualization centers
US20190332328A1 (en) Storage Controller and IO Request Processing Method
US20230055813A1 (en) Performing resynchronization jobs in a distributed storage system based on a parallelism policy
CN110543355A (zh) 一种自动均衡云平台资源的方法
JP5178778B2 (ja) 仮想計算機およびcpu割り当て方法
JP6394313B2 (ja) ストレージ管理装置、ストレージ管理方法及びストレージ管理プログラム
WO2016056060A1 (ja) 計算機及びベクタの設定方法
US20240104468A1 (en) Maintenance background task regulation using feedback from instrumented waiting points
CN117369970A (zh) 时间片调整方法、装置、设备和存储介质
Gibson Improving Fairness in I/O Scheduling for Virtualized Environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171205

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20181204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190604

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191224