JP2020064676A - リソース配置を最適化するための適時性リソース移行 - Google Patents

リソース配置を最適化するための適時性リソース移行 Download PDF

Info

Publication number
JP2020064676A
JP2020064676A JP2020002627A JP2020002627A JP2020064676A JP 2020064676 A JP2020064676 A JP 2020064676A JP 2020002627 A JP2020002627 A JP 2020002627A JP 2020002627 A JP2020002627 A JP 2020002627A JP 2020064676 A JP2020064676 A JP 2020064676A
Authority
JP
Japan
Prior art keywords
resources
resource
placement
migration
candidate
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
JP2020002627A
Other languages
English (en)
Other versions
JP7138126B2 (ja
Inventor
ブルッカー,マーク・ジョン
John Brooker Marc
グリーンウッド,クリストファー・マギー
Magee Greenwood Christopher
ドゥーラム,スーリヤ・プラカシュ
Prakash Dhoolam Surya
トンプソン,ジェームズ・マイケル
Michael Thompson James
オルソン,マーク・スティーヴン
Stephen Olson Marc
フラハティ,ミッチェル・ギャノン
Gannon Flaherty Mitchell
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies 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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2020064676A publication Critical patent/JP2020064676A/ja
Application granted granted Critical
Publication of JP7138126B2 publication Critical patent/JP7138126B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】リソース配置を最適化するために適時性リソース移行を実装する。【解決手段】リソースは、分散型システムの異なるリソースホスト間に配置される。現在の配置の評価が、分散型システムにおけるリソースの配置を改善する配置基準に従って実行される。評価に基づいて、改善閾値を超えるリソースの予想される移行が、移行する候補リソースとして識別される。候補リソースについての移行は、適時的に実行される。優先度が候補リソースに割り当てられ、それに従って、候補リソースが移行を実行するために選択される。【選択図】図6

Description

ハードウェアリソース、ソフトウェア、及び情報ストレージの仮想化をネットワークに
わたって動的に共有するための近年の技術革新は、コンピューティングの信頼性、スケー
ラビリティ、及びコスト効率性を向上させている。より具体的には、仮想化の出現を通じ
て仮想コンピューティングリソース及びストレージを要求に応じて提供する能力によって
、処理リソース及びストレージの消費者が、知覚されるコンピューティング及びストレー
ジの必要性に迅速に応答して、彼らのコンピューティング及びストレージコストを柔軟に
構築することが可能となっている。仮想化は、ハードウェアの製造及び展開の遅延及びコ
ストによって必要とされる供給サイクル内の固定ハードウェアを、購入または貸借するの
ではなく、必要な時に顧客がプロセッササイクル及びストレージを購入できるようにする
。コンピューティング及びストレージの利用可能性を判断するために、将来の需要の予測
精度に依存するのではなく、ユーザが、必要に応じて比較的即時にコンピューティング及
びストレージリソースの使用権を購入することが可能である。
仮想化されたコンピューティング環境は、コンピューティングリソースの利用可能性及
び耐久性に関して様々な保証を提供し得る。複数のリソースホスト間でコンピューティン
グリソースを分散させることが、異なる利用可能性及び耐久性の特性をもたらし得る。例
えば、仮想コンピューティングリソースは、ブロックベースストレージを提供してもよい
。このようなブロックベースストレージは、一連の標準化されたストレージコールを通じ
て様々なコンピューティング仮想化とやり取りすることが可能なストレージシステムを提
供する。一連の標準化されたストレージコールは、ブロックベースストレージがサポート
するボリューム、及びブロックベースストレージがストレージ利用可能性を提供する仮想
化上で実行するオペレーティングシステムの構造的及び機能的詳細に対し、ブロックベー
スストレージを機能的に依存させない。ブロックベースストレージを提供するために、様
々な異なる配置最適化及び/または制約が性能保証を提供するために実装されてもよい。
リソースホスト間にブロックベースストレージリソースを配置するとき、ストレージを配
置するための最適化及び/または制約を満たす異なる配置オプションの中から選択するこ
とが、困難であると証明し得る。
いくつかの実施形態による、リソース配置を最適化するための適時性リソース移行についての論理ブロック図を示す。 いくつかの実施形態による、リソース配置を最適化するための適時性リソース移行を実装するブロックベースストレージサービスなどの、複数のネットワークベースサービスを含む、プロバイダネットワークを示すブロック図である。 いくつかの実施形態による、リソース配置を最適化するための適時性リソース移行を実装するボリューム配置を示す論理ブロック図である。 いくつかの実施形態による、楽観的なリソース移行のための移行キューを示す論理ブロック図である。 いくつかの実施形態による、ブロックベースストレージサービスにおいて適時的にデータボリュームを移行するためのインタラクションを示す論理ブロック図である。 いくつかの実施形態による、リソース配置を最適化する適時性リソース移行のための様々な方法及び技術を示すハイレベルフローチャートである。 いくつかの実施形態による、適時性リソース移行のための候補としてリソースを識別するための様々な方法及び技術を示すハイレベルフローチャートである。 いくつかの実施形態による、候補リソースを選択及び移行するための様々な方法及び技術を示すハイレベルフローチャートである。 いくつかの実施形態による、候補リソースを移行キューから削除するための様々な方法及び技術を示すハイレベルフローチャートである。 いくつかの実施形態による、コンピューティングシステムの実施例を示すブロック図である。
実施形態は、いくつかの実施形態及び例示的な図面についての例として本明細書で説明
されるが、当業者は、実施形態が、説明する実施形態または図面に限定されないことを認
識するであろう。図面及びその詳細な説明は、開示される特定の形態に実施形態を限定す
ることを意図するものではなく、むしろ、意図することは、添付の特許請求の範囲によっ
て定義される思想及び範囲内に入る全ての修正物、均等物及び代替物を含めることを理解
されたい。本明細書で用いられる見出しは、構造化の目的のみのためであり、説明の範囲
または特許請求の範囲を限定するために用いられることを意味しない。本出願全体を通し
て用いられる、「may(してもよい)」という語は、義務的な意味(即ち、しなければ
ならないという意味)ではなく、許容的な意味(即ち、可能性を有するという意味)で用
いられる。同様に、「include(含む)」、「including(含んでいる)
」、及び「includes(含む)」という語は、含んでいるが限定はされないことを
意味する。
本明細書で説明するシステム及び方法は、リソース配置のための適時性リソース移行を
実装してもよい。分散型システムは、異なるシステム、サービス、アプリケーション、及
び/または機能を実行または実装するための様々なリソースをホストしてもよい。いくつ
かのリソースは、異なるリソースホスト間の複数のリソースに位置する、より大きな分散
型リソースの一部であってもよい。他のリソースは、個別またはスタンドアロンであって
もよい。リソースは、様々な種類の物理的な、または仮想化されたコンピューティングリ
ソース、ストレージリソース、もしくはネットワーキングリソースのうちの1つなどの、
多くの異なる種類のリソースのうちの1つであってもよい。例えば、ストレージサービス
は、いくつかの異なるリソースホストにわたってデータの異なる複製をホストしてもよい
作成中に異なるリソースホストにリソースを位置させるために配置の決定が行われても
よい。しかしながら、動作を開始するためにリソースが配置される必要があるため、最適
な位置が利用可能になるまでリソースの配置を待機することが難しい場合がある。その代
わりに、リソースホストにおけるリソースの初期配置が、最良の利用可能な配置に従って
行われてもよい。時間につれて、最適以下の配置は(配置が、たとえ初期配置の時にリソ
ースについての最良の位置であるとしても)、結局、未活用のリソースホスト、分散型リ
ソースについての非効率的な、もしくは耐久性の低い構成、及び/またはリソースもしく
は分散型システム全体についての様々な他の種類の無駄もしくは非効率性などの、大きな
コストとなり得る。
いくつかの実施形態では、配置決定が、配置基準に従って行われてもよい。配置基準は
、個別のリソースのため、及び分散型システム全体にわたるリソースの配置のための、最
良または最適な配置位置を判断するために使用されてもよい。例えば、利用可能性、耐久
性、及び/またはリソースの他の性能特性を提供し、または改善するために、配置基準は
、リソースが配置されるべき特定の位置(例えば、ネットワークルータまたはブリックな
どの異なる基盤区域)を判断するために使用されてもよい。そのような位置が利用可能で
ない場合、配置基準は、リソースを配置するのにあまり最適でない位置(例えば、配置さ
れるリソースが通信する別のリソースとは異なるネットワークルータまたはブリックなど
の、あまり効率的でない基盤区域にあるリソースホスト)を示してもよい。分散型リソー
ス、利用可能なバイト、IOPs、またはスロット、IOPsバランスに対するバイトな
どのリソース利用バランスの一部が、容量フラグメンテーション、ハードウェア/ソフト
ウェア特性、及び/または様々な所望の位置ベースの構成に影響を与える場合、配置基準
は、他のリソースを伴うリソースの構成を含んでもよいが、限定はされない。
図1は、いくつかの実施形態による、リソース配置を最適化するための適時性リソース
移行についての論理ブロック図を示す。分散型システムにおけるリソースが、個別のリソ
ース、及び/または分散型システムにおけるリソースの配置全体のいずれかについてより
良い配置である他のリソースホストに移行されてもよいように、適時性リソース配置12
0は、適時性リソース移行(複数可)140を実行するために、現在配置されているリソ
ース100を評価してもよい。1つまたは複数のコンピューティングシステム、ノード、
もしくはデバイス(例えば、下記の図10におけるシステム1000)であり得るリソー
スホストが、分散型システムのリソースをホストし、または実装するように構成されても
よい。
適時性リソース配置120は、リソースの構成(例えば、分散型リソース、サイズ、性
能特性などの個別または一部)に関する情報、リソースホスト(ホストされたリソースの
数、リソース利用率(例えば、処理、ネットワーク、ストレージ、帯域幅など)、ハード
ウェア/ソフトウェア構成、またはホストするためのリソースホストの状態及びそのケイ
パビリティを判断するための任意の他のデータ)に関する情報などの、現在配置されてい
るリソースに関する情報を取得してもよい。コスト利益移行分析130は、適時性移行の
ための候補リソースとしてリソースを識別するために実行されてもよい。コスト利益移行
分析130は、予想される移行が、移行されるリソースの配置を改善することとなる移行
のための候補リソース、移行されない他のリソース、及び/または分散型システムにおけ
るリソースのより全体的な配置を識別するように実行されてもよい。例えば、配置データ
110は、リソース112a、112b、112c、112d、及び112eの最適性を
示す。グラフは、最適な配置118と比較されるリソースの現在の配置116のスコア、
パーセンテージ、または他の標識を表す。少なくともいくつかの実施形態では、配置スコ
ア、または他のメトリックが、各リソース112に対して生成されてもよい。同様の評価
が、リソースをホストするのに利用可能であり得るリソースホストに関して行われてもよ
い。利用可能なリソースホストにおけるリソースの可能な配置の効果が、仮定ではリソー
スを含む利用可能なリソースホストについての配置スコアを生成することによって判断さ
れてもよい。このリソースの配置スコアについての移行の効果114は、各リソース11
2についてのグラフに対する追加(例えば、改善)として示される。
リソースを移動するための移行動作は、いくらかのコストを有してもよい。したがって
、より良好に配置された位置にリソースを移動するための移行動作を実行するコストは、
移行によってもたらされる利益に不利に働くことがある。例えば、移行動作の利益が、移
行を実行するためのコストを上回っているリソースを識別することができる改善最適化閾
値が、実装されてもよい。リソース112bは、他のリソース112に関して現在の配置
が最も悪いが、配置を改善する移行の効果が、リソース112a、112c、及び112
eなどの他のリソースとは同程度にならないことがある。リソース112b(及び112
d)についての改善量は、改善閾値を超えないことがある場合がある。
分散型システムにおけるリソースの全体的な配置を反映する尺度またはスコア(図示せ
ず)に関して、同様の分析が行われてもよい。例えば、配置全体についての移行スコアに
対する、リソース112などのリソースを移行する効果は、全体的な配置に対する利益が
、移行動作を実行するためのコストに値するかどうかを判断するために、最適化閾値と比
較されてもよい。同様に、他の個別の、またはグループのリソースに対する移行の影響に
関して同じ分析が行われてもよく、1つのリソースの予想される移行が、移行を実行する
ための改善閾値を超えて、別のリソースの配置を改善するかどうかを検査する。
適時性リソース移行(複数可)140は、コスト利益移行分析130の一部として識別
されている候補リソースに対して実行されてもよい。適時性リソース移行(複数可)14
0は、リソース自体の動作を妨害しないような方法でスケジュールされ、または指示され
てもよい(例えば、適時性リソース移行(複数可)140が、バックグラウンドプロセス
またはサービスの一部として実行されてもよい)。少なくともいくつかの実施形態では、
より大きな、またはより有益な効果を有する移行が、より早く(例えば、リソース112
eについての移行の前に、リソース112cについての移行)実行されるように、優先度
が、移行に割り当てられてもよい。
時間につれて、適時性リソース移行を動的に実行することが、分散型システムにおける
リソースの配置を最適な位置に再調整して、より大きな効率性、耐久性、利用可能性、ま
たは配置基準がリソース及び分散型システムに対して達成するように設計される任意の他
の性能目標を達成し得る。例えば、分散型リソース(例えば、マスタ及びスレーブペア、
またはピアノードのグループ)が、適時的なリソース移行の結果として最終的に達成され
得る、初期配置において達成されない、分散型リソースの他のメンバに関する最適な構成
を有してもよい。さらに、そのような最適な配置に対する障壁が、(移行がいくつかのリ
ソースまたは分散型システム全体にとってより良い場合に、他のリソースにとってあまり
最適でない位置に対してであっても)他のリソースを移行することによって除去されても
よい。例えば、追加のリソースをホストすることができないリソースホストが、現在最適
以下である他のリソースについて最適な配置を提供し得る位置として識別されてもよい。
(ホストから移動されるリソースが、同じレベルの最適性、またはあまり最適でない位置
に配置され得るとしても)他のリソースをホストすることによって、リソースは、候補リ
ソースとして識別され、最適以下の配置を矯正するために、リソースホストを利用可能に
するように移行されてもよい。個別のリソースにとって望ましい構成もまた、得られても
よい。いくつかの実施形態では、基盤区域に関する配置が、非常に望ましい場合があり、
適時性リソース移行を実装することによって、異なるリソースホストへの移行が、最適な
基盤区域にリソースを位置させることを可能にし得る。
上記の説明は限定することを意図するものではなく、単に、リソース配置のための適時
性リソース移行の一実施例として提供されることに留意されたい。様々なコンポーネント
が、リソース配置を実行してもよい。異なる数または種類のリソース及び配置データが、
採用されてもよい。
本明細書は、プロバイダネットワークの概略的な説明で始まる。プロバイダネットワー
クは、ブロックベースストレージサービスを介して供給されるデータボリュームのための
適時性移行などの、プロバイダネットワーク内の1つまたは複数のネットワークベースサ
ービスを介して供給されるリソース配置のための適時性リソース移行を実装してもよい。
次いで、ブロックベースストレージサービスにおけるデータボリュームについてのボリュ
ーム配置の一部として採用され得る、異なるコンポーネント/モジュール、またはコンポ
ーネント/モジュールの配列を含む、ブロックベースストレージサービスの様々な実施例
が、説明される。次いで、リソース配置のための適時性リソース移行を実装する、いくつ
かの異なる方法及び技術が、説明され、そのうちのいくつかが、添付のフローチャートに
示される。最後に、様々なコンポーネント、モジュール、システム、デバイス、及び/ま
たはノードが実装され得るコンピューティングシステムの実施例の説明が提供される。明
細書全体を通して、様々な実施例が提供される。
図2は、いくつかの実施形態による、リソース配置のための適時性リソース移行を実装
する、ブロックベースストレージサービスを含む複数のネットワークベースサービスを実
装するプロバイダネットワークを示すブロック図である。プロバイダネットワーク200
は、インターネット及び/または他のネットワークを介してクライアント210にアクセ
ス可能な1つまたは複数のサービス(様々な種類のクラウドベースコンピューティングま
たはストレージなど)を提供するように、会社または公共部門組織などの実体によってセ
ットアップされてもよい。プロバイダネットワーク200は、物理的な、及び/または仮
想化されたコンピュータサーバ、ストレージデバイス、ネットワーキング機器(例えば、
図10に関して後述するコンピューティングシステム1000)などの、プロバイダネッ
トワーク200によって供給されるインフラ及びサービスを実装し、分散させる必要があ
る、様々なリソースプールをホストする多数のデータセンタを含んでもよい。いくつかの
実施形態では、プロバイダネットワーク200は、仮想コンピュートサービス230、ブ
ロックベースストレージサービス220及び(オブジェクト/キーバリューベースのデー
タストア、または様々な種類のデータベースシステムなどの、様々なストレージタイプを
含み得る)他のストレージサービス240などのストレージサービス、ならびに/または
任意の他の種類のネットワークベースサービス250などの、コンピューティングリソー
スを提供してもよい。クライアント210は、ネットワーク260を介して、プロバイダ
ネットワーク200によって供給されるこれらの様々なサービスにアクセスしてもよい。
同様に、ネットワークベースサービスそれ自体が、異なるサービスを提供するために、互
いに通信し、及び/または互いを利用してもよい。例えば、仮想または物理コンピュート
インスタンス、またはストレージインスタンスなどの、「インスタンス」と呼ばれる単位
で、クライアント210に供給されるコンピューティングリソースは、特定のデータボリ
ューム226を利用して、コンピュートインスタンスに対する仮想ブロックストレージを
提供してもよい。
上述のように、仮想コンピュートサービス230は、様々なコンピュートインスタンス
をクライアント210に供給してもよい。仮想コンピュートインスタンスは、例えば、(
CPUの種類及び数、メインメモリサイズなどを示すことによって指定され得る)指定さ
れた計算容量、ならびに(例えば、特定のバージョンのオペレーティングシステムであっ
て、ハイパーバイザのトップで動作し得る)指定されたソフトウェアスタックを有する1
つまたは複数のサーバを含んでもよい。いくつかの異なる種類のコンピューティングデバ
イスは、単独で、または組み合わせて使用され、専用コンピュータサーバ、ストレージデ
バイス、ネットワークデバイスなどを含む、異なる実施形態において仮想コンピュートサ
ービス230のコンピュートインスタンスを実装してもよい。いくつかの実施形態では、
インスタンスクライアント210またはその他の任意の他のユーザが、コンピュートイン
スタンスに対してネットワークトラフィックを指示するように構成され(及び/または認
可され)てもよい。様々な実施形態では、コンピュートインスタンスは、様々な動作を実
行するための永続ブロックベースストレージを取得するために、ブロックベースストレー
ジサービス220によって提供される1つまたは複数のデータボリューム226にアタッ
チ、またはマッピングしてもよい。
コンピュートインスタンスは、例えば、インスタンスにアクセスするためのクライアン
ト210を必要とすることなくクライアントアプリケーションを実行するのに適した、ア
プリケーションサーバインスタンス、Java(商標)仮想マシン(JVM)、専用オペ
レーティングシステム、Ruby、Perl、Python、C、C++などの様々なイ
ンタプリタ型もしくはコンパイル型プログラミング言語をサポートするプラットフォーム
、または高性能コンピューティングプラットフォームなどの、多様な異なるプラットフォ
ームを動作させ、または実装してもよい。いくつかの実施形態では、コンピュートインス
タンスは、所期の稼働率に基づいて、異なる種類または構成を有する。特定のコンピュー
トインスタンスの稼働率は、インスタンスが予約されている総時間量に対する、インスタ
ンスがアクティブ化されている時間量の比率として定義されてもよい。いくつかの実施態
様では、稼働率は、利用率とも呼ばれ得る。クライアントが、インスタンスが予約される
時間の比較的短い部分(例えば、年間予約の30%〜35%)の間コンピュートインスタ
ンスを使用することを予期する場合、クライアントは、低稼働率インスタンスとしてイン
スタンスを予約し、関連する価格決定方針に従って、値引きされた時間使用料を支払うよ
うに決定してもよい。クライアントが、時間のほとんどのインスタンスを必要とする、定
常状態の作業負荷を有することを予期する場合、クライアントは、高稼働率インスタンス
を予約し、より低い時間使用料であっても潜在的に支払い得るが、いくつかの実施形態で
は、実際の使用時間数にかかわらず、価格決定方針に従って、予約の全期間について時間
料金が請求されてもよい。中稼働率についての選択肢が、対応する価格決定方針を用いて
同様にいくつかの実施形態でサポートされてもよく、その場合、前払いのコスト及び時間
ごとのコストは、対応する高稼働率及び低稼働率のコストの間にある。
コンピュートインスタンス構成は、また、計算集中型のアプリケーション(例えば、高
トラフィックウェブアプリケーション、広告提供、バッチ処理、ビデオ符号化、分散解析
学、高エネルギー物理学、ゲノム分析、及び計算流体力学)についての計算作業負荷、グ
ラフィック集中型の作業負荷(例えば、ゲームストリーミング、3Dアプリケーションス
トリーミング、サーバサイドグラフィックス作業負荷、レンダリング、ファイナンシャル
モデリング、及びエンジニアリング設計)、メモリ集中型の作業負荷(例えば、高性能デ
ータベース、分散型メモリキャッシュ、インメモリ解析、ゲノムアセンブリ及び分析)、
ならびに、ストレージ最適化作業負荷(例えば、データウェアハウジング及びクラスタフ
ァイルシステム)などの、汎用的な、または特定の目的を有するコンピュートインスタン
スを含んでもよい。特定の数の仮想CPUコア、メモリ、キャッシュ、ストレージ、及び
任意の他の性能特性などの、コンピュートインスタンスのサイズ。コンピュートインスタ
ンスの構成は、また、それらの位置、特定のデータセンタ内、利用可能区域、地理的位置
など、及び(予約されたコンピュートインスタンスの場合)予約期間の長さを含んでもよ
い。
様々な実施形態では、プロバイダネットワーク200は、また、記憶動作を実行するた
めのブロックベースストレージサービス220を実装してもよい。ブロックベースストレ
ージサービス220は、複数の独立したリソースホスト224a、224b、224c〜
224nのプール(例えば、サーバブロックデータストレージシステム)からなるストレ
ージシステムであり、リソースホストは、1つまたは複数のデータボリュームデータボリ
ューム(複数可)のセット226a、226b、226c〜226nを記憶するためのブ
ロックレベルストレージを提供する。データボリューム226は、特定のクライアント(
例えば、仮想コンピュートサービス230の仮想コンピュートインスタンス)にマッピン
グされて、仮想ブロックベースストレージ(例えば、ハードディスクストレージまたは他
の永続ストレージ)を論理ブロックの連続したセットとして提供してもよい。いくつかの
実施形態では、データボリューム226は、スナップショット動作または複製動作などの
他のブロックストレージ動作を実行するための(1つまたは複数のデータブロックを含む
)複数のデータチャンクまたはパーティションに分割されてもよい。データボリューム2
26のボリュームスナップショットは、データボリューム226の状態の固定時点の表現
であってもよい。いくつかの実施形態では、ボリュームスナップショットは、別のストレ
ージサービス240内など、データボリュームを保持するリソースホスト224から離れ
て記憶されてもよい。スナップショット動作は、他のストレージサービス240内のリモ
ートスナップショットデータストアなどの、別のストレージ位置に所与のデータボリュー
ムのスナップショットを送信し、コピーし、及び/または保存するために実行されてもよ
い。
ブロックベースストレージサービス220は、ブロックベースストレージサービス22
0の動作を支援するブロックベースストレージサービス制御プレーン222を実装しても
よい。様々な実施形態では、ブロックベースストレージサービス制御プレーン222は、
仮想コンピュートサービス230及び/もしくはプロバイダネットワーク200内に位置
する他のネットワークベースサービスによって提供されるコンピュータインスタンス上で
実行するプログラム、ならびに/または任意で、1つまたは複数の他のデータセンタ内に
位置するコンピューティングシステム(図示せず)、もしくはネットワーク260を介し
て利用可能なプロバイダネットワーク200の外部にある他のコンピューティングシステ
ムなどの、クライアントに対するブロックデータストレージの利用可能性を管理すること
を支援する。データボリューム226へのアクセスは、ブロックデータトランザクション
命令に応答して、プロバイダネットワーク200内の内部ネットワーク上で、またはネッ
トワーク260を介して外部から提供されてもよい。
ブロックベースストレージサービス制御プレーン222は、ユーザアカウントの管理(
例えば、作成、削除、課金、支払いの徴収など)を含む、ブロックレベルストレージの機
能性を提供することに関係する多様なサービスを提供してもよい。ブロックベースストレ
ージサービス制御プレーン222は、設定要求に応答して、データボリューム226の作
成、使用及び削除に関係するサービスをさらに提供してもよい。少なくともいくつかの実
施形態では、ブロックベースストレージサービス制御プレーン222は、図3に関連して
さらに詳細に後述するように、ボリューム配置228を実装してもよい。ブロックベース
ストレージサービス制御プレーン222は、また、他のストレージサービス240上のボ
リュームスナップショットの作成、使用及び削除に関係するサービスを提供してもよい。
ブロックベースストレージサービス制御プレーン222は、また、データボリューム22
6及びそれらのボリュームのスナップショットの使用に関係する性能及び検査データの収
集及び処理に関係するサービスを提供してもよい。
プロバイダネットワーク200は、また、上述のように、別のストレージサービス24
0を実装してもよい。他のストレージサービス240は、ブロックベースストレージサー
ビス220によって提供されるのと同一の、または異なる種類のストレージを提供しても
よい。例えば、いくつかの実施形態では、他のストレージサービス240は、データをデ
ータオブジェクトとして記憶し管理し得る、オブジェクトベースストレージサービスを提
供してもよい。例えば、様々なデータボリューム226のボリュームスナップショットは
、特定のデータボリューム226についてのスナップショットオブジェクトとして記憶さ
れてもよい。他のストレージサービス240に加えて、プロバイダネットワーク200は
、クライアント210及びプロバイダネットワーク200の他のサービス(例えば、ブロ
ックベースストレージサービス220、仮想コンピュートサービス230、及び/または
他のストレージサービス240)が、様々なタスクを実行または要求できるようにする、
様々な異なる種類の分析、計算、ストレージ、または他のネットワークベースシステムを
含み得る、他のネットワークベースサービス250を実装してもよい。
クライアント210は、要求をネットワークプロバイダ200に提出するように構成可
能な任意の種類のクライアントを包含してもよい。例えば、所与のクライアント210は
、適当なバージョンのウェブブラウザを含んでもよく、または、ウェブブラウザによって
提供される実行環境の拡張として、もしくは実行環境の範囲内で実行するように構成され
た、プラグインモジュールもしくは他の種類のコードモジュールを含んでもよい。代替的
に、クライアント210は、データベースアプリケーション(もしくは、そのユーザイン
タフェース)、メディアアプリケーション、オフィスアプリケーション、または、様々な
動作を実行するためにコンピュートインスタンス、データボリューム226、もしくはプ
ロバイダネットワーク200内の他のネットワークベースサービスを利用し得る任意の他
のアプリケーションなどのアプリケーションを包含してもよい。いくつかの実施形態では
、そのようなアプリケーションは、全ての種類のネットワークベースのデータについての
完全なブラウザサポートを必ずしも実装することなくネットワークベースサービス要求を
生成及び処理するのに十分な(例えば、適当なバージョンのハイパーテキスト転送プロト
コル(HTTP)のための)プロトコルサポートを含んでもよい。いくつかの実施形態で
は、クライアント210は、REST(Representational State
Transfer)型のネットワークベースサービスアーキテクチャ、ドキュメントベ
ースもしくはメッセージベースのネットワークベースサービスアーキテクチャ、または別
の適当なネットワークベースサービスアーキテクチャに従って、ネットワークベースサー
ビス要求を生成するように構成されてもよい。いくつかの実施形態では、クライアント2
10(例えば、計算クライアント)は、コンピュートインスタンスによって提供される計
算リソースまたはデータボリューム226によって提供されるブロックストレージを利用
するクライアント210上で実装するアプリケーションにトランスペアレントなやり方で
、コンピュートインスタンスまたはデータボリューム226へのアクセスを提供するよう
に構成されてもよい。
クライアント210は、外部ネットワーク260を介してプロバイダネットワーク20
0にネットワークベースサービス要求を伝達してもよい。様々な実施形態では、外部ネッ
トワーク260は、クライアント210及びプロバイダネットワーク200間でネットワ
ークベース通信を確立するのに必要なネットワーキングハードウェア及びプロトコルの任
意の適当な組み合わせを包含してもよい。例えば、ネットワーク260は、概して、集合
的にインターネットを実装する、様々な遠距離通信ネットワーク及びサービスプロバイダ
を包含してもよい。ネットワーク260は、また、ローカルエリアネットワーク(LAN
)または広域ネットワーク(WAN)などの私設ネットワーク、及び公衆または私設無線
ネットワークを含んでもよい。例えば、所与のクライアント210及びプロバイダネット
ワーク200の両方が、それ自体の内部ネットワークを有する企業内でそれぞれ供給され
てもよい。そのような実施形態では、ネットワーク260は、所与のクライアント210
及びインターネット間、ならびにインターネット及びプロバイダネットワーク200間で
、ネットワーキングリンクを確立するのに必要なハードウェア(例えば、モデム、ルータ
、スイッチ、負荷分散装置、プロキシサーバなど)及びソフトウェア(例えば、プロトコ
ルスタック、会計ソフトウェア、ファイアウォール/セキュリティソフトウェアなど)を
含んでもよい。いくつかの実施形態では、クライアント210は、公衆インターネットで
はなく、私設ネットワークを用いてプロバイダネットワーク200と通信してもよいこと
に留意されたい。
図3は、いくつかの実施形態による、リソース配置を最適化するための適時性リソース
移行を実装するボリューム配置を示す論理ブロック図である。上述のように、リソースホ
スト300などの複数のリソースホストが、ブロックベースストレージサービスを提供す
るために実装されてもよい。リソースホストは、ストレージサーバまたは他のコンピュー
ティングシステム(例えば、図10に関連して後述するコンピューティングシステム10
00)などの、1つまたは複数のコンピューティングシステムまたはデバイスであっても
よい。各リソースホストは、データボリュームのそれぞれの複製を保持してもよい。いく
つかの実施形態では、いくつかのデータボリュームは、他のデータボリュームとはサイズ
が異なってもよい。リソースホストは、また、マルチテナント型ストレージを提供しても
よい。例えば、いくつかの実施形態では、1つのリソースホストが、ブロックベーススト
レージサービス220の1つのアカウントについてのデータボリュームを保持してもよく
、一方、同一リソースホストにおいて保持される別のデータボリュームが、異なるアカウ
ントについて保持されてもよい。リソースホストは、各リソースホストを実装するコンピ
ューティングシステムまたはデバイスに直接取り付けられ得る1つまたは複数のブロック
ベースストレージデバイス(例えば、ハードディスクドライブ、ソリッドステートドライ
ブなど)において、それらのそれぞれのデータボリュームを永続させてもよい。リソース
ホストは、異なる永続ストレージデバイスを実装してもよい。例えば、いくつかのリソー
スホストは、永続ブロックストレージのためのソリッドステートドライブ(SSD)を実
装してもよく、一方、他のリソースホストは、ハードディスクドライブ(HDD)または
他の磁気ベース永続ストレージデバイスを実装してもよい。このように、異なるボリュー
ムタイプ、仕様、及び他の性能特性は、リソースホストにおいて実装される永続ストレー
ジデバイスに従って提供されてもよい。
ブロックベースストレージサービス220は、多様な異なる方法で、データボリューム
を管理及び保持してもよい。異なる耐久性の方式が、データボリュームの異なるパーティ
ションにおいてデータボリュームの同一の複製を保持する分散型リソースとして、2つ以
上のリソースホスト間のいくつかのデータボリュームに対し実装されてもよい。例えば、
データボリュームについての単一障害点を除去することなどによって、データボリューム
の耐久性を向上させるために、異なるタイプのミラーリング及び/または複製技術(例え
ば、RAID1)が実装されてもよい。データボリュームへのアクセスを提供するために
、リソースホストは、そのときに、データボリュームの複製を保持する2つ以上のリソー
スホスト間で、書き込み要求などのI/O要求を協調させてもよい。例えば、所与のデー
タボリュームについて、1つのリソースホストが、マスタリソースホストとして機能して
もよい。様々な実施形態では、マスタリソースホストが、データボリュームのクライアン
トから要求(例えば、I/O要求)を受信し、処理してもよい。したがって、マスタリソ
ースホストは、そのときに、書き込み要求などのI/O要求の複製、またはスレーブリソ
ースホストとして機能する1つもしくは複数の他のリソースホストに対するデータボリュ
ームへの任意の他の変更もしくは修正を協調させてもよい。したがって、書き込み要求が
、マスタリソースホストにおけるデータボリュームについて受信されるとき、マスタリソ
ースホストは、書き込み要求をスレーブリソースホスト(複数可)に転送してもよく、ス
レーブリソースホスト(複数可)が、マスタリソースホストにおいて書き込み要求を完了
する前に完了として書き込み要求を確認応答するまで待機してもよい。マスタリソースホ
ストが、スナップショット動作、または他のI/O動作(例えば、読み取り要求を出すこ
と)のような、データボリュームに対する他の動作を指示してもよい。
いくつかの実施形態では、マスタ及びスレーブリソースホストの役割が、データボリュ
ームごとに割り当てられてもよいことに留意されたい。例えば、1つのリソースホストに
おいて保持されるデータボリュームについて、リソースホストが、マスタリソースホスト
として機能してもよい。別のデータボリュームが、同一のリソースホストにおいて保持さ
れる間、リソースホストが、スレーブリソースホストとしてサービスしてもよい。リソー
スホストは、それぞれのI/Oマネージャを実装してもよい。I/Oマネージャは、特定
のリソースホストにおいて保持されるデータボリュームに向けられるI/O要求をハンド
リングしてもよい。したがって、I/Oマネージャは、例えば、リソースホストにおける
ボリュームへの書き込み要求を処理し、ハンドリングしてもよい。I/Oマネージャは、
ブロックベースストレージサービスのアプリケーションプログラミングインタフェース(
API)、及び/または、インターネットスモールコンピュータシステムインタフェース
(iSCSI)などの他の通信プロトコルに従って、I/O要求を処理するように構成さ
れてもよい。
リソースホストは、異なる基盤区域内に位置されてもよい。基盤区域は、サーバラック
、ネットワーキングスイッチ、ルータ、もしくは他のコンポーネントなどのデバイス、電
源(もしくは他のリソースホストサプライヤ)または物理的もしくは地理的位置(例えば
、特定の通り、部屋、建物、データセンタ、フォールトトレラント区域などにおける位置
)によって定義されてもよい。リソースホスト(及び、リソースホスト上に実装されるデ
ータボリュームの複製)が、特定のネットワークルータまたはブリック、特定の部屋の位
置、特定のサイトなどの、複数の異なる種類の基盤区域内にあり得るように、基盤区域が
、範囲内で変化してもよい。
様々な実施形態では、ブロックベースストレージサービス制御プレーン222は、ボリ
ューム配置228を実装してもよい。ボリューム配置228は、1つまたは複数のコンピ
ューティングノード、システム、またはデバイス(例えば、図10におけるシステム10
00)において実装されてもよい。少なくともいくつかの実施形態では、ボリューム配置
228は、情報、メトリック、メタデータ、またはボリューム配置を実行するための任意
の他の情報を収集するために、配置データ収集320を実装してもよい。配置データ収集
320は、情報、メトリック、またはメタデータのためのクエリで、リソースホスト(複
数可)300を周期的にスイープしてもよい。例えば、リソースホストは、現在の利用メ
トリック、進行中のタスクまたは動作(例えば、移行または再ミラータスクなど)、及び
リソースホストに存在するボリュームについてのボリューム固有情報を含む、リソースホ
ストについての任意の他の状態情報を提供してもよい。いくつかの実施形態では、配置デ
ータ収集320は、基盤区域、パーティション、リソースホスト、またはブロックベース
ストレージサービス220についての他の粒度に従って、データを集計してもよい。配置
データ収集320は、収集したデータを永続的に保持し得るボリューム/サービス状態ス
トア322において、データを記憶してもよい。いくつかの実施形態では、ボリューム/
サービス状態ストア322は、ボリューム配置228の他のコンポーネントまたはブロッ
クベースストレージサービス制御プレーン226へのアクセスを提供するために、データ
ベースまたは検索可能な/クエリ可能なストレージシステムとして実装されてもよい。
様々な実施形態において、ボリューム配置228は、配置エンジン310を実装しても
よい。配置エンジン310は、新たなデータボリュームの複製、または移行中の現在配置
されているデータボリュームなどの、リソースについての配置位置を識別するために、様
々な種類の分析を実行してもよい。分析は、上述した配置基準について実行されて、個別
のリソースまたはブロックベースストレージサービス全体について最適であり得る配置位
置を判断してもよい。例えば、配置エンジン310は、データボリュームのマスタ、スレ
ーブ(複数可)の配置などの、分散型リソース内のリソースの全ての予想される配置構成
を評価する、構成分析312を実装してもよい。いくつかの実施形態では、クライアント
または分散型リソース(または分散型リソースのリソース)の他のユーザは、構成分析(
例えば、データボリュームにアタッチされる仮想インスタンスを含む配置構成を評価する
こと)において考慮されてもよい。構成分析312は、分散型リソースの他のリソースに
対しより良い構成を提供することとなるリソースホストにおける空間を開放するために、
現在配置されているリソースを他のリソースホストに移行することの影響を考慮してもよ
い。例えば、これは、スレーブボリューム(例えば、リソース)を別のリソースホストに
移動して、そのホストの異なるスレーブボリュームのための場所を開けることを含み得る
。それは、ボリュームのマスタまたはボリュームのクライアントと同じ基盤区域内に別の
スレーブボリュームを作ることになる。いくつかの状況では、この構成(例えば、クライ
アントと同じネットワークルータに接続されているなど、同じ基盤区域内にマスタまたは
スレーブボリュームを有すること)は、改善された性能を提供し、最適な構成であっても
よい。
配置エンジン310において配置要求を受信することに応答して、構成分析312は、
ボリューム/サービス状態322にアクセスすることによって、予想される配置を判断し
てもよい。利用可能であり、いかなる配置制約にも違反しないリソースホストが、評価さ
れてもよい(例えば、データボリュームの2つのパーティションが、同一のリソースホス
ト、十分な容量を有するリソースホスト、または特定のハードウェア及び/もしくはソフ
トウェアを実装するリソースホストによってホストされることができない)。いくつかの
実施形態では、(利用可能なリソースホストの非常に大きなプールを評価することは、計
算上コストが掛かりすぎるため)利用可能なリソースホストのサブセットが、配置決定に
ついて評価されてもよい。予想される配置構成が、リソースについての利用可能なリソー
スホストに基づいて生成され、または識別されてもよい。データボリュームの他の複製が
、実際の、または仮定の配置位置に基づいて評価されてもよい。
1つまたは複数の基盤区域のローカリティが、様々な実施形態では、ボリューム/サー
ビス状態332に基づいて、分散型の異なる予想される配置構成について判断されてもよ
い。例えば、メタデータは、データボリュームの異なる複製のリソースホストが、どのネ
ットワークブリックまたはルータに接続されているかを示してもよい。少なくともいくつ
かの実施形態では、予想される配置構成(配置されるべきリソースが、異なる利用可能な
リソースホストに位置される)の基盤区域のローカリティについて、スコアが生成されて
もよい。配置エンジン310は、多くの他のメトリック、データ、または基盤区域のロー
カリティ以外の考慮に基づいて、構成分析312を実行してもよい。例えば、少なくとも
いくつかの実施形態では、分析は、データボリュームの複製をホストするリソースホスト
の異なる性能メトリックに関して、予想される構成について実行されてもよい。例えば、
ストレージ容量、作業負荷、または1秒当たりの入出力動作(IOPs)が、データボリ
ューム全体について評価されてもよい。異なるパーティションが、データボリュームに対
しデータの異なる部分を保持するように、いくつかのデータボリュームが区画されてもよ
い。例えば、データボリュームは、3セットのマスタ−スレーブ複製のペアに区画されて
もよい。構成分析312は、複製されるデータボリュームの各部分(例えば、各マスタ−
スレーブ複製のペア)、またはデータボリュームパーティションの全て(例えば、3つ全
てのマスタ−スレーブ複製のペア)についての配置構成に基づいて実行されてもよい。
配置エンジン310は、パーティション配置を決定するために他の分析314を実装し
てもよい。例えば、スコアは、特定のリソースホストが、接触された、または接触した最
終時間に基づき、配置について生成されてもよい。分析は、複数のマスタ−スレーブ複製
のペアを識別し、同じ2つのリソースホストに配置されることを防止するように実行され
てもよい。いくつかの実施形態では、パーティションをホストし、未活用の空間を最小量
にしておくことが可能な、リソースホスト上のリソースの配置を最適化するために、リソ
ースホストフラグメンテーション分析が実行されてもよい。上記構成分析と同様に、上記
で与えられる分析例が、移行された場合に移動されなかった他のリソースのより良い配置
を提供し得る、いくつかのリソースについて配置位置を決定するために実行されてもよい
いくつかの実施形態では、ボリューム配置228は、適時性配置マネージャ330を実
装してもよい。リソース(例えば、データボリューム)についての配置が、より最適であ
り、及び/またはリソースホスト(複数可)310間のリソースの配置が、(移行の結果
、移行されたリソースについての同一の、もしくはあまり最適でない新たな配置が生じる
場合であっても)全体としてより最適であるように、適時性配置マネージャ330は、動
的に、または積極的に、現在配置されているリソース(例えば、ボリュームの複製)を、
1つのリソースホストから別のリソースホストへ移行してもよい。例えば、適時性配置マ
ネージャ330は、図6及び図7に関して後述するように、最適以下(例えば、低いスコ
アが付けられている基盤区域のカテゴリ)に配置されるように決定されるリソースについ
ての配置を、配置エンジン310から要求するように移行動作スケジューリング332を
実装してもよい。移行動作スケジューリング332は、次いで、実行される場合にどの配
置が、移行最適化閾値または他の改善閾値(例えば、現在の配置スコアと新たな配置スコ
アとの差)を超えるかを判断してもよい。配置最適化閾値を超えることとなる、可能な配
置を有するリソースについて、移行動作スケジューリング332は、移行動作キュー33
6内のパーティションに対し、移行動作を配置してもよい。いくつかの実施形態では、よ
り有益な移行動作がより早く実行されるように、移行動作スケジューリング332は、移
行動作に優先度を割り当ててもよい。
1つのリソースホストから別のリソースホストへリソースを移行するための移行動作の
実行は、非同期式であってもよい。異なる移行動作のスケジューリング及び/または実行
を協調させるために、スケジューリング構造または他のデータセットが保持されてもよい
。いくつかの実施形態では、移行動作キュー336などの移行動作のキューが実装されて
もよい。図4は、いくつかの実施形態による、楽観的なリソース移行のための移行キュー
を示す論理ブロック図である。
移行動作キュー400は、分散型または集中型データストアなどの永続ストレージに保
持されてもよい。少なくともいくつかの実施形態では、データベースシステムまたはトラ
ンザクション制御を提供する他のストレージシステムが、移行動作キューを保持するため
に利用されてもよい。例えば、移行動作キュー400は、他のストレージサービス240
の一部として実装されたNoSQLデータストアなど、別のネットワークベースサービス
内にデータベーステーブルとして保持されてもよい。移行動作スケジューリング332は
、図6〜9に関連して後述する様々な技術に従って、移行動作キュー400を周期的に更
新してもよい。例えば、移行動作404は、完了するように「進行中」から変更された状
態を有してもよい。ボリューム識別子、行先ホストの位置、状態、最終更新時間、及び/
または優先度値などの、移行動作のための様々なメタデータ及び情報が、保持されてもよ
い。
移行動作スケジューリング332は、また、完了または失敗したと識別されるそれらの
移行動作(例えば、移行動作404及び408)などの移行動作をキュー400から削除
してもよい。まだ実行されていない移行動作は、キュー内に記憶される更新された優先度
(例えば、優先度値を上昇、または低下)を有してもよい。最終更新時間は、キュー内の
移行動作に対する更新が最後に行われた時を示してもよい。例えば、移行動作502は、
他の移行動作504、506、及び508より後の更新時間(14:34:06)を有し
、したがって、より最近の/関連のあるデータを有すると考えられてもよい。図7に関連
して後述するように、優先度値は、移行動作を適時的にスケジュールするために、移行動
作に割り当てられてもよい。少なくともいくつかの実施形態では、移行動作キュー400
は、優先度キューとして実装されてもよく、したがって、優先度が最も高い移行動作が、
実行のために選択されてもよい。
図3に戻って、移行ワーカ(複数可)340が、移行動作を実行するために実装されて
もよい。移行ワーカ(複数可)340は、実行する移行動作について、適時性配置マネー
ジャ330に要求を送信してもよい。適時性配置マネージャ330は、移行動作を移行動
作キュー336から取り出し、移行動作を指示するために移行ワーカ340に割り当てて
もよい。代替的に、いくつかの実施形態において、移行ワーカは、実行する移行動作を識
別するために移行動作キュー336に直接アクセスしてもよい。移行ワーカ(複数可)3
40は、いくつかの実施形態では、(例えば、状態を「準備中」から「進行中」に変更す
るように)移行動作キュー336内の移行動作についてのメタデータを更新してもよい。
いくつかの実施形態では、移行動作抑制342は、進行中の移行動作の数を制御するた
めに実装されてもよい。配置データ収集320は、ネットワーク利用率、リソースホスト
利用率、または任意の他の動作メトリックなどの他のデータと共に、リソースホスト(複
数可)310において進行中の現在の移行動作を追跡し、保持し、または監視し、ボリュ
ーム/サービス状態322を更新してもよい。移行ワーカ(複数可)340は、いくつか
の移行制限に従って、移行動作が抑制されるべきかどうかを判断するために、ボリューム
/サービス状態322にアクセスしてもよい。例えば、いくつかの実施形態では、1つま
たは複数のリソースホスト(複数可)310、ネットワーキングデバイス(複数可)、ル
ータ(複数可)、スイッチ、電源(複数可)または仮想ブロックベースストレージサービ
スの他のコンポーネントもしくはデバイスを含み得る、ネットワークローカリティが、識
別されたリソース移行動作を実行する効果に関して評価されてもよい。異なる移行制限(
例えば、移行動作の数、ネットワーク利用率、リソースホスト利用率など)が、ネットワ
ークローカリティに関して実施されてもよい。移行動作が、異なるネットワークローカリ
ティのうちの1つについての制限を超える場合、移行ワーカは、移行動作の実行を抑制し
てもよい(例えば、移行動作が、拒否または遅延されてもよい)。いくつかの実施形態で
は、移行動作抑制が、特定の基盤区域またはネットワークローカリティに(例えば、移行
動作の現在の及び行先リソースホストを含む区域などの、移行の実行に関わることとなる
基盤区域またはネットワークローカリティに)制限されてもよい。いくつかの実施形態で
は、適時性配置管理330は、移行ワーカ(複数可)340に加えて、または移行ワーカ
(複数可)340の代わりに、抑制する移行動作を実行してもよい。
様々な実施形態では、移行ワーカ340は、リソースについての新たな配置位置を提供
するために、上記及び下記で説明する様々な技術を実行し得る配置エンジン310から、
移行されるべきリソースについての更新された配置を要求してもよい。
図5は、いくつかの実施形態による、リソース(例えば、データボリュームの複製)を
移行するためのインタラクションを示す論理ブロック図である。上述のように、配置デー
タ収集320は、ボリュームサービス状態322を更新するために、リソースホスト(複
数可)500からホスト/ボリュームデータをスイープまたは要求502してもよい。リ
ソースホスト(複数可)は、ホスト/ボリュームデータを配置データ収集320に送信5
02し、配置データ収集320は、ボリューム/サービス状態506を集計し、及び/ま
たは更新してもよい。適時性配置管理330は、配置エンジン310からボリューム配置
(複数可)を要求508してもよい。配置エンジン310は、図3に関連して上述した技
術に従うなどして、配置位置を決定してもよい。ボリューム配置(複数可)は、適時性配
置管理330に提供512されてもよい。移行最適化閾値を超えるボリューム(または、
リソース)について、移行動作キューは、新たな移行動作を追加するように更新514さ
れてもよい。陳腐化した、または完了した移行動作は、移行キュー336から削除されて
もよい。
移行ワーカ(複数可)340は、適時性配置マネージャ330から移行動作を取得51
6してもよい。適時性配置マネージャ330は、候補移行動作(複数可)を取得518す
るために移行動作キュー336を評価してもよい。移行動作キュー336からの移行動作
(複数可)520は、移行ワーカ(複数可)340に返され522てもよい。次いで、移
行ワーカ(複数可)340は、影響を受けるリソースホスト(複数可)500に対し移行
動作を指示524してもよい。いくつかの実施形態では、移行ワーカ(複数可)340は
、中継として動作してもよく、リソースを行先リソースホストに送信する前に、元のリソ
ースホストからリソースを取得してもよい。図5で提供される様々なインタラクション及
び例示は、様々な標準の、またはカスタマイズされた通信技術を用いて通信されてもよい
。例えば、配置エンジン310、適時性配置管理330、移行動作キュー336、ボリュ
ームサービス状態322、リソースホスト(複数可)500などのための様々な内部AP
Iは、それぞれのインタフェース(例えば、APIなどのプログラムによるインタフェー
ス)をそれぞれ有してもよく、図5におけるそれぞれの通信は、それに応じてフォーマッ
トされてもよい。
図2〜5に関連して上述したリソース配置のための適時性リソース移行の実施例は、ブ
ロックベースストレージサービス、及び/または他のネットワークベースサービスに関連
して示されている。リソースホストに分散型リソースのリソースを配置する、様々な他の
種類または構成の分散型システムが、これらの技術を実装してもよい。例えば、バックア
ップまたはアーカイブの分散型ストレージシステムは、現在配置されているデータについ
てより最適な配置を決定してもよい。リソース配置のための適時性リソース移行を実装し
得る、上述した様々なモジュール、コンポーネント、システム、及びまたはサービスの異
なる構成が、リソースの現在の配置を評価し、候補リソースを識別し、候補リソースを移
行するように構成されてもよい。図6は、いくつかの実施形態による、リソース配置を最
適化する適時性リソース移行のための様々な方法及び技術を示すハイレベルフローチャー
トである。これらの技術は、図2〜5に関連して上述したように、制御プレーン、適時性
配置マネージャ、または現在配置されているリソースを分散型システム内の他のリソース
ホストに配置するための他のコンポーネントを用いて実装されてもよい。
リソースは、様々な種類の物理的な、または仮想化されたコンピューティングリソース
、ストレージリソース、またはネットワーキングリソースのうちの1つなどの、多くの異
なる種類のリソースのうちの1つであってもよい。いくつかのリソースは、分散型リソー
スを構成するリソースのグループの一部であってもよい。例えば、図2〜5に関連して上
述したブロックベースストレージサービスのデータボリュームは、マスタ複製及び1つま
たは複数の複製スレーブとして実装される、分散型リソースであってもよい。リソースホ
ストにおけるリソースの初期配置は、最適な配置位置が利用できないときに行われてもよ
い。ボリュームをより良い位置に適時的に移行することによって、様々な設計目標、保証
、または分散型システムにおけるリソースについての他の望ましい属性に従って、個々の
リソース性能及び/または分散型システム性能が改善され得る。
610において示すように、分散型システムの異なるリソースホストにおいてホストさ
れるリソースの現在の配置が、異なるリソースホスト間のリソース配置を改善し、または
最適化する配置基準に従って評価されてもよい。配置基準は、リソースホストにおけるリ
ソースの配置、及び/または(個々の配置が最適より劣っているとしても)リソースホス
ト全体の間のリソースの配置の好適性、または最適性を判断するための様々な分析、検査
、計算であってもよい。例えば、配置基準は、リソースの現在の配置が、現在のリソース
ホストにおけるリソースの利用に関して最適である(例えば、リソースのIOPs要件が
、他のタスクを実行し、または他のリソースをホストするためのIOPs要件を満たすリ
ソースホストの能力に負担をかける)かどうかを判断するために、リソースホストにおけ
るリソース利用(例えば、ストレージリソース、処理リソース、ネットワーキングリソー
スなど)を評価してもよい。
いくつかの実施形態では、リソースの現在の配置の構成が、分散型リソースを構成する
他のリソースに関して判断されてもよい。リソースが、1つまたは複数の1次的複製が故
障している場合に、データへのアクセスリクエストを提供するデータの2次的またはバッ
クアップの複製として動作するシナリオを考える。このようなシナリオでは、1次的複製
との共通の障害に左右されない位置に、リソースを配置することが望ましい場合がある。
例えば、リソースが、現在、複製リソースをホストする別のリソースホストと同一の電源
に接続されたリソースホストに配置されていた場合、リソース(マスタまたはスレーブ)
のうちの1つが、他のリソースホストと同一の電源に接続されたリソースホストにもう配
置されないように、分散型リソース全体の構成の評価は、リソースについての移行が分散
型リソースについてのそのリソースの配置を最適化することを示してもよい。配置基準は
、様々な実行、障害、及び他のシナリオをサポートし、防止し、または説明するように適
合され得るため、分散型リソース、利用可能なバイト、IOPs、またはスロット、IO
Psバランスへのバイトなどのリソース利用バランスの一部が、容量フラグメンテーショ
ン、ハードウェア/ソフトウェア特性、及び/または様々な所望の位置ベースの構成に影
響を与える場合、配置基準の数及び種類が、他のリソースを伴うリソースの構成を含むが
、これに限定されず変化してもよい。図7に関連して後述するように、いくつかの実施形
態では、現在の配置適合性のスコアまたは他の指標が、潜在的な行先リソースホストのス
コアと共に判断されてもよい。
620で示すように、少なくとも一部評価に基づいて、候補リソース(複数可)を現在
ホストしているそれぞれのリソースホスト(複数可)から行先リソースホスト(複数可)
に適時的に移行するために、候補リソース(複数可)を識別する。様々な実施形態では、
識別された候補リソース(複数可)は、改善閾値を超える予想される移行を有してもよい
。例えば、候補リソースは、配置基準(例えば、異なる配置基準のうちの1つまたは複数
における最適な配置についてのテストに失敗すること、分析、または閾値)に関して、最
適以下として識別されてもよい。リソースを受信するために利用可能なリソースホストは
、(例えば、テストに失敗すること、分析、または閾値を直すことができる位置を提供す
る)配置基準に関してどれが最適かを識別されてもよい。ペアリングは、識別されること
によって、改善閾値を超えてもよい。いくつかの実施形態では、改善閾値は、初期コスト
利益分析決定として作用して、選択され移行が実行された場合に大きな配置改善を経験す
ることとなるリソースを、候補リソースとして識別するだけであってもよい。改善閾値は
また、候補移行が、分散型システム全体のリソースの最適化を改善するか否かを判断する
ために実装されてもよい。例えば、候補リソースは、他のリソースを移行することなく他
のリソースの配置における改善をもたらすこととなる移行動作を実行するために識別され
てもよい。識別される候補リソース(複数可)は、後述するように、移行キュー、または
移行動作をスケジューリングするための他のデータ構造に入力される、対応する移行動作
エントリを有してもよい。このように、移行動作は、より良い位置が利用可能であるとき
にリソースを移行するように適時的に発生してもよい。
630に示すように、移行が、移行動作閾値を超えて分散型システム内のリソースのリ
ソース配置を改善するように、候補リソース(複数可)のうちの少なくとも1つが、行先
リソースホスト(複数可)に移行されてもよい。改善は、移行されたリソースの配置、及
び/または分散型システム全体におけるリソースの配置(例えば、ある位置に集中してい
ないリソース)についてであってもよい。移行動作を適時的に実行することによって、他
のリソースが移行のために識別された後で識別され得る候補リソースのために、いくつか
の移行動作が実行されることが可能であってもよい。例えば、いくつかの実施形態では、
優先度または順序付け方式が、識別される候補リソースについての移行動作の実行を選択
するために適用されてもよい。優先度は、リソース、リソースがその一部である分散型リ
ソース、または分散型システム全体に対してより大きな差をもたらす移行動作が、配置に
対してより小さな改善をもたらす移行よりも早く実行されることを可能にしてもよい。
リソースの移行は、リソースを行先リソースホストに移転するように現在のリソースホ
ストに指示することによって実行されてもよい。いくつかの実施形態では、図3のワーカ
(複数可)340などの中継が、行先リソースホストにリソースを送信する前にリソース
を指示し、及び/または受信してもよい。少なくともいくつかの実施形態では、リソース
は、物理的に移行されず、論理的に移行されてもよい(例えば、現在のホストからリソー
スを無効にし、または削除し、かつ行先ホストにおいてリソースをインスタンス生成し、
または作成する)。いくつかのシナリオでは、候補リソースホストが識別された時点で識
別される行先リソースホストは、もはや最適ではない(または、その間に他のリソースが
追加され得るために利用可能ですらない)ことがある。したがって、いくつかの実施形態
では、新たな行先リソースホストが識別されてもよい。いくつかの実施形態では、分散型
リソースの一部であるリソースについて、分散型リソース内の別のリソースが現在移行さ
れている場合、リソースは、選択されなくともよい。図3に関連して上述したように、移
行動作を制限するために抑制する技術もまた、実装されてもよい。
図7は、いくつかの実施形態による、適時性リソース移行のための候補としてリソース
を識別する様々な方法及び技術を示すハイレベルフローチャートである。710で示すよ
うに、リソースホストにおけるリソースの現在の配置に対する配置スコアが、1つまたは
複数の配置基準に関して生成されてもよい。配置基準は、上述のように、分散型システム
におけるリソースの配置を最適化するために使用されてもよい。例えば、分散型リソース
、利用可能なバイト、IOPs、またはスロット、IOPsバランスに対するバイトなど
のリソース利用バランスの一部が、容量フラグメンテーション、ハードウェア/ソフトウ
ェア特性、及び/または様々な所望の位置ベースの構成に影響を与える場合、配置基準は
、他のリソースを伴うリソースの構成を含んでもよい。リソースが、分散型リソースを構
成する複数のリソースのうちの1つ(例えば、上述のようにデータボリュームのマスタま
たはスレーブ複製)であるシナリオを考える。分散型リソースの他のリソースと同一の基
盤区域(例えば、同一ネットワークルータに接続されている)内にリソースを配置するこ
とが最適であってもよい。配置スコアは、現在の配置がより最適なシナリオ(例えば、同
一ネットワークルータ)に関してどのくらい近くにあるかについてのスコアに反映されて
もよい。スコアは、リソース、リソースホスト、及び/または分散型システム全体への影
響を考慮して、複数の異なる配置基準の複合であってもよい。
リソースホストは、リソースをホストすることが可能なリソースホストを決定するため
に最初に評価されてもよい。例えば、ある条件を満たさないホストは、考慮から除去され
てもよい。そのような条件は、論理グループ(例えば、リソースが配置されるべき特定の
サーバプールを識別すること)、リソースをホストするためのケイパビリティまたは容量
(例えば、データを記憶するのに十分なバイト、十分なIOP帯域幅、インストールされ
た適切なハードウェア及び/もしくはソフトウェアなど)、位置もしくは多様性の制約(
例えば、分散型リソースの一部であるリソースは、分散型リソースの別のリソースをホス
トする別のリソースホストと同一のサーバラックにあるリソースホスト上に配置されるこ
とができない)、ならびに/または明示的に除外されるリソースホスト(例えば、ブラッ
クリスト)を含むが、これらに限定されない。次いで、リソースをホストすることが可能
な残りの利用可能なリソースホストが、潜在的な行先ホストとして評価されてもよい。例
えば、720に示すように、配置スコア(複数可)が、可能な行先リソースホスト(複数
可)におけるリソースの配置に対して生成されてもよい。少なくともいくつかの実施形態
では、利用可能なリソースホストのサブセットが、可能な配置として生成されたスコアを
有してもよく、一方、他の実施形態では、全ての利用可能なリソースホストが、配置スコ
アを生成することによって考慮されてもよい。710においてスコアを生成するために使
用される同一の配置基準は、720においてスコアを生成するために使用されてもよい(
例えば、分散型リソース、利用可能なバイト、IOPs、またはスロット、IOPsバラ
ンスに対するバイトなどのリソース利用バランスの一部が、容量フラグメンテーション、
ハードウェア/ソフトウェア特性、及び/または様々な所望の位置ベースの構成に影響を
与える場合の、他のリソースを伴うリソースの考慮)。
730に示すように、リソースの現在の配置の配置スコアと可能な配置のスコアとの差
が判断され、最適化閾値と比較されてもよい。例えば、差は、閾値(差>0.3である)
と比較される値であってもよい。730からの否定的出口によって示すように、可能な配
置のうちのいずれかの差が最適化閾値を超えない場合、780に示すように、別のリソー
スが、評価するために選択されてもよい。しかしながら、任意の配置の差が、リソースを
超える場合、リソースは、移行のための候補リソースとして識別されてもよい。(1つよ
り多くの行先ホストが評価された場合、)最も大きな差を生む可能な行先が、行先ホスト
として識別されてもよい。
少なくともいくつかの実施形態では、740に示すように、行先リソースホストへのリ
ソースの移行を実行するための優先度が、割り当てられてもよい。優先度係数は、割り当
てられる優先度を、スコア付けし、重み付けし、生成し、または示すために使用されても
よい。例えば、優先度係数は、現在の行先及び可能な行先の間の差の値(例えば、より大
きな改善を行う移行を実行することを優先すること)、リソースの年式または履歴(例え
ば、より新しいリソースは、長く存在する見込みが少なく、したがって、移行が重要でな
いことがある)、移行を実行するサイズまたはコスト(例えば、リソースが、大きなデー
タボリューム、複雑なコンポーネントもしくはサービス、または他のリソース集約型移行
の場合に移行を遅延する)、及び/またはローカルネットワークの状態(サービングクラ
イアント要求などの前述の処理による、ネットワークもしくは他のリソース制約下にあり
得る分散型システム内の位置における実行から移行動作を遅延すること)を含んでもよい
。その他に加えて、これらの係数は、移行動作のための優先度を決定するために、重み付
けされ、結合され、順序付けされ、選択的に適用されてもよい。
移行キューもしくは他のデータ構造、リソース、またはスケジュールが、移行動作を実
行する優先度と共に、実行されるべき移行動作を示すために保持されてもよい。図7に関
連して説明する技術は、周期的に、または非周期的に移行キューを更新するために使用さ
れてもよい。例えば、分散型システム内のリソースホストの利用は、いくつかのやり方で
追加され、削除され、または変更されているリソースに起因して変化してもよい。移行の
決定は、結果として変化してもよい。図7の技術を周期的に実行することは、分散型シス
テムのリソースホストにおいて発生する変更に従って、移行キュー内の移行動作を更新し
、または再度優先度を付けるために使用されてもよい。750に示すように、リソースに
ついての移行動作が移行キューに位置するかどうかに関して、判断が行われてもよい。位
置する場合、750からの肯定的出口によって示すように、移行キュー内のリソースにつ
いての移行動作が更新されてもよい。例えば、優先度割り当てが、740における新たな
分析に従って変更されてもよく、移行動作の状態(例えば、待機中、進行中、完了)、タ
イムスタンプ、新たな行先ホスト、または他の情報などの移行動作メタデータが、変化し
てもよい。いくつかの実施形態では、進行中の移行動作が、(例えば、移行キュー内にあ
る後続の分析のためにメタデータを保存するために)更新されなくてもよい。リソースが
、移行キュー内にない場合、要素750からの否定的出口によって示すように、リソース
を行先リソースホストに移行するために、移行動作が追加されてもよい。次いで780に
示すように、別のリソース配置が、評価するために選択されてもよい。
移行キュー、または移行のための候補リソースを示す他の構造が、移行動作をスケジュ
ールし、実行するために利用されてもよい。例えば、いくつかの移行動作の実行が、他の
移行動作よりも、(リソースの動作または分散型システムのいずれかに対して)大きな利
益をもたらしてもよい。図8は、いくつかの実施形態による、候補リソースを選択及び移
行するための様々な方法及び技術を示すハイレベルフローチャートである。
810に示すように、いくつかの実施形態では、実行されるべき移行動作を含む移行キ
ューが、評価されてもよい。移行のために保持される様々な情報は、現在実行される必要
がない(例えば、移行動作が、既に進行中である、失敗している、または実行準備がされ
ていない)動作を除去するために使用されてもよい。いくつかの実施形態では、移行動作
が特定の数に抑制され、または制限される分散型システムの位置において、いくつかの移
行動作が実行されてもよい。いくつかの実施形態では、820に示すように、少なくとも
一部評価に基づいて、移行キュー内の移行動作に割り当てられたそれぞれの優先度に従っ
て、移行動作が、実行するためにキューから選択されてもよい。例えば、移行キューは、
優先度キューであってもよく、したがって、最も高い優先度の移行動作が、移行キューか
ら選択されてもよい。移行動作の実行をスケジュールするための様々な他の優先度、また
は順序付け方式(例えば、先入れ先出し方式)が、実装されてもよい。
830に示すように、いくつかの実施形態では、行先リソースホストが、いくつかの実
施形態で、移行動作の候補リソースを受信するために識別されてもよい。例えば、移行動
作が移行キューに追加された時に選択された行先リソースホストを使用する代わりに、要
求は、配置エンジン、または現在のデータに基づいて新たなもしくは異なる行先リソース
ホストを提供し得る他のシステム、サービス、もしくはデバイスに対して行われてもよい
。代替的に、移行キュー内の移行動作エントリにおいて示す行先リソースホストが、行先
リソースホストとして識別されてもよい。
840に示すように、現在のリソースホストから、識別される行先リソースホストへの
移行動作が、指示されてもよい。例えば、コマンドまたは命令が、候補リソースを行先リ
ソースホストに送信し、コピーし、通信し、または移転する現在位置のリソースホストに
送信されてもよい。いくつかの実施形態では、現在のリソースホストは、さらなる指示な
しでこの移転を実行するように構成されてもよい。少なくともいくつかの実施形態では、
リソースは、まず、現在のリソースホストから取得され、次いで、移行ワーカ(複数可)
340などの中継を経由して移転されてもよい。リソースホストを移行することは、行先
リソースホストにおける様々な構成動作を実行すること、または指示することを含んでも
よい。例えば、図2〜5に関連して上述したように、スレーブ複製及びマスタ複製を伴う
データボリュームの複製の移行は、移行される複製の種類によりデータボリュームの複製
についてのスレーブまたはマスタとして動作するように、行先リソースホストを構成する
ことを伴ってもよい。
図8に示す技術は、1つまたは多くの異なるシステムまたはデバイスによって実行され
てもよい。例えば、図3における330などの適時性移行マネージャは、移行キューの評
価を実行し、実行する移行動作を選択してもよく、一方、図3における340などの移行
ワーカ(複数可)は、移行動作の一部としてリソースを受信する行先リソースホストの識
別を実行し、移行動作を指示してもよい。移行は、非同期式で実行されてもよいため、移
行ワーカは、リソースの移行動作を指示し、次いで、別の移行動作を取得及び指示しても
よい。いくつかの実施形態では、単一の移行マネージャが上述の様々な技術の全てを実行
してもよい。代替的には、移行ワーカが、上記技術を実行してもよい。よって、前述の実
施例は、限定であることを意図されない。
図4に関連して上述したように、移行キュー、または移行のための候補リソースを示す
他の構造は、候補リソースについての状態情報を保持してもよい。移行キュー内の状態情
報の変更は、移行キュー内のいくつかの移行動作を廃止してもよい。図9は、いくつかの
実施形態による、候補リソースを移行キューから削除するための様々な方法及び技術を示
すハイレベルフローチャートである。910に示すように、リソースを行先リソースホス
トに移行するための移行動作のキュー(例えば、図4の移行キュー400)内の移行動作
が、評価されてもよい。例えば、移行キュー内の各エントリは、移行キューから削除され
るべき移行動作を識別するために評価されてもよい。要素920及び930は、移行動作
の削除をトリガし得る条件の実施例を提供する。
分散型システム内のリソースホストの状態は、頻繁に変更されてもよい。リソースが作
成され、削除され、またはリソースホストの動作もしくは利用において変化してもよい。
この動的な状況は、リソースを移行するための以前の決定を変更してもよい。例えば、上
記図7で述べたように、移行の優先度が、候補リソースについて変化した場合、移行キュ
ーに含まれる優先度が、移行についての現在の優先度を反映するように更新されてもよい
。いくつかの実施形態では、いくつかの移行動作が、もはや最適ではないことがある。9
20に示すように、次いで、移行動作が、920からの肯定的出口によって示すように陳
腐化した場合、移行動作は、950に示すようにキューから削除されてもよい。
様々な実施形態では、陳腐化した移行動作は、(例えば、上述の配置基準に従って)も
はや実行するのに最適でない場合がある動作であってもよい。例えば、陳腐化した移行動
作は、新たな優先度または状態情報で更新されていなくてもよい。優先度及び/または移
行動作の他の状態情報が、移行キューの優先度付けスイープが実行された最終時間を更新
されなかった場合、移行動作は、もはや実行するのに最適でない場合があることを示して
もよい。タイムスタンプまたは他の標識が、最終更新時間を示す移行動作について保持さ
れてもよい。いくつかの実施形態では、更新されたタイムスタンプを有しない場合がある
、「進行中」状態における移行動作については除外されてもよい。いくつかの実施形態で
は、比較は、タイムスタンプと生存時間閾値との間であってもよく、閾値を超える場合、
移行動作が陳腐化していることを示している。いくつかの実施形態では、マーカまたは他
の標識(例えば、廃棄標識)は、移行キュー内の移行動作についてのエントリに配置され
て、移行動作が陳腐化し削除されるべきであることを示してもよい。いくつかのシナリオ
では、移行動作は、(例えば、「移行中」状態の時間を移行時間閾値と比較することによ
り)移行動作が開始されたが失敗した、または完了しなかったことを示す。
930に示す移行動作が、930からの肯定的出口によって示すように完了した場合、
移行動作は、950に示すように移行キューから削除されてもよい。例えば、移行動作状
態は、移行キューの優先度スイープの間に変更されて、移行動作の状態を完了に更新して
もよい。
いくつかの移行動作は、他の動作より長くかかる場合がある(例えば、いくつかのリソ
ースは、他のリソースよりも大きい場合がある)ため、移行動作は、要素920及び93
0によって示すような削除条件が満たされるまで、移行キュー内に残っていてもよい。し
たがって、削除条件が満たされない場合、940に示すように、キュー内の別の移行動作
が、評価するために選択されてもよい。図9に示す技術は、移行キュー内の移行動作の全
てが評価されるまで、実行されてもよい。移行キューが再び評価されて移行動作が削除さ
れる前に、ある期間が経過してもよい。
本開示の実施形態は、以下の条項を考慮して説明され得る。
1.複数のリソースのうちの1つまたは複数をそれぞれがホストする複数のリソースホス
トと、
1つまたは複数の配置基準に従って、前記複数のリソースの現在の配置を評価し、前
記1つまたは複数の配置基準が、分散型システムについて前記複数のリソースホスト間の
リソース配置を改善し、
前記評価に少なくとも一部基づいて、1つまたは複数の候補リソースを現在ホストす
る前記それぞれのリソースホストから、前記複数のリソースホストのそれぞれの行先リソ
ースホストに移行するために、前記複数のリソースのうちの前記1つまたは複数の候補リ
ソースを識別し、前記複数のリソースのうちの前記1つまたは複数の候補リソースの予想
される前記移行が、前記1つまたは複数の配置基準に関する改善閾値を越え、
前記1つまたは複数の候補リソースのうちの少なくとも1つを前記それぞれの行先リ
ソースホストに移行するように移行動作に指示し、前記少なくとも1つの候補リソースの
前記それぞれの行先リソースホストへの前記移行が、前記改善閾値を越えて、前記複数の
リソースホストのリソース配置を改善するように構成される、
適時性配置マネージャと、
を備える分散型システム。
2.前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別するために
、前記適時性配置マネージャが、
前記1つまたは複数の候補リソースの移行について、それぞれの優先度を決定し、
前記1つまたは複数の候補リソースのためのそれぞれの移行動作をキューに配置するよ
うに構成され、
前記適時性配置マネージャが、
前記キューの評価に少なくとも一部基づいて、前記1つまたは複数の候補リソースに割
り当てられる前記それぞれの優先度に従って移行するために、前記少なくとも1つの候補
リソースを選択するようにさらに構成される、条項1に記載のシステム。
3.複数の移行ワーカをさらに備え、
前記移行動作に前記少なくとも1つの候補リソースを移行するように指示するために、
前記適時性配置マネージャが、実行するために前記移行動作を前記複数の移行ワーカのう
ちの1つに送信するように構成される、条項2に記載のシステム。
4.前記分散型システムが、仮想ブロックベースストレージサービスであり、前記複数
のリソースが、前記仮想ブロックベースストレージサービスの複数のクライアントのため
に保持される複数のデータボリュームである、条項1に記載のシステム。
5.1つまたは複数の配置基準に従って、分散型システムの複数のリソースホストのう
ちのそれぞれの1つにおいてホストされる複数のリソースの現在の配置を評価することで
あって、前記1つまたは複数の配置基準が、前記分散型システムについて前記複数のリソ
ースホスト間のリソース配置を改善する、前記評価することと、
前記評価に少なくとも一部基づいて、1つまたは複数の候補リソースを現在ホストする
前記それぞれのリソースホストから、前記複数のリソースホストのそれぞれの行先リソー
スホストに移行するために、前記複数のリソースのうちの前記1つまたは複数の候補リソ
ースを識別することであって、前記複数のリソースのうちの前記1つまたは複数の候補リ
ソースの予想される前記移行が、改善閾値を越える、前記識別することと、
前記1つまたは複数の候補リソースのうちの少なくとも1つを前記それぞれの行先リソ
ースホストに移行することであって、前記少なくとも1つの候補リソースの前記それぞれ
の行先リソースホストへの前記移行が、前記改善閾値を越えて、前記複数のリソースのリ
ソース配置を改善する、前記移行することと、
を1つまたは複数のコンピューティングデバイスによって実行することを含む、方法。
6.前記複数のリソースのうちの1つまたは複数の候補リソースを識別することが、前
記1つまたは複数の候補リソースの移行を実行するためのそれぞれの優先度を割り当てる
ことを含み、
前記方法が、前記1つまたは複数の候補リソースに割り当てられた前記それぞれの優先
度に従って移行するために、前記少なくとも1つの候補リソースを選択することをさらに
含む、条項5に記載の方法。
7.前記複数のリソースの前記現在の配置の別の評価に従って、前記1つまたは複数の
候補リソースの前記それぞれの優先度を更新することと、
前記1つまたは複数の候補リソースの前記更新されたそれぞれの優先度に従って移行す
るために、前記1つまたは複数の候補リソースのうちの別の1つを選択することと、
をさらに含む、条項6に記載の方法。
8.前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別することが
、前記1つまたは複数の候補リソースのためのそれぞれの移行動作をキューに配置するこ
とをさらに含み、
前記1つまたは複数の候補リソースに割り当てられた前記それぞれの優先度に従って移
行するために、前記少なくとも1つの候補リソースを選択することが、前記キューの評価
に基づいて実行される、条項6に記載の方法。
9.前記複数のリソースの前記現在の配置の別の評価に従って、前記キューから前記1
つまたは複数の候補リソースのうちの少なくとも1つを削除することをさらに含む、条項
8に記載の方法。
10.前記1つまたは複数の配置基準に従って、前記分散型システムの前記複数のリソ
ースホストのうちの前記それぞれの1つにおいてホストされる前記複数のリソースの現在
の配置を評価することが、
前記1つまたは複数の配置基準に従って、前記複数のリソースの前記現在の配置に対し
て、それぞれの配置スコアを生成することを含み、
前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別することが、
前記1つまたは複数の配置基準に従って、前記複数のリソースの前記1つまたは複数
の可能な配置に対して、それぞれの配置スコアを生成することと、
前記現在の配置に対する前記それぞれの配置スコアと、1つまたは複数の可能な配置
に対する前記それぞれの配置スコアとの間のそれぞれのスコア差を計算することと、
前記1つまたは複数の候補リソースとして、前記改善閾値を超えるそれぞれのスコア
差を有するリソースを決定することと、
を含む、条項5に記載の方法。
11.前記リソースが、分散型リソースを実装する複数のリソースのうちの1つであり
、前記1つまたは複数の配置基準が、前記分散型リソースの前記複数のリソースについて
の現在の配置構成の評価を含む、条項5に記載の方法。
12.前記1つまたは複数の候補リソースのうちの少なくとも1つを、前記それぞれの
行先リソースホストに移行することが、前記行先リソースホストを識別することを含む、
条項5に記載の方法。
13.前記少なくとも1つの候補リソースを前記それぞれの行先リソースホストに移行
することが、前記複数のリソースの別のリソースのための配置を改善する、条項5に記載
の方法。
14.前記分散型システムが、ネットワークベースサービスであり、前記複数のリソー
スが、前記ネットワークベースサービスの複数のクライアントに対し、前記ネットワーク
ベースサービスにおいて保持され、
前記評価すること、前記識別すること、前記移行することが、前記ネットワークベース
サービスについてのバックグラウンドサービスの一部として実行される、条項5の記載の
方法。
15.1つまたは複数のコンピューティングデバイスによって実行されるときに、前記
1つまたは複数のコンピューティングデバイスに、
1つまたは複数の配置基準に従って、分散型システムの複数のリソースホストのうちの
、それぞれの1つにおいてホストされる複数のリソースの現在の配置を評価することであ
って、前記1つまたは複数の配置基準が、前記分散型システムについて前記複数のリソー
スホスト間のリソース配置を改善する、前記評価することと、
前記評価に少なくとも一部基づいて、1つまたは複数の候補リソースを現在ホストする
前記それぞれのリソースホストから、前記複数のリソースホストのそれぞれの行先リソー
スホストに移行するために、前記複数のリソースのうちの前記1つまたは複数の候補リソ
ースを識別することであって、前記複数のリソースのうちの前記1つまたは複数の候補リ
ソースの予想される前記移行が、改善閾値を越える、前記識別することと、
前記1つまたは複数の候補リソースのうちの少なくとも1つを前記それぞれの行先リソ
ースホストに移行することであって、前記少なくとも1つの候補リソースの前記それぞれ
の行先リソースホストへの前記移行が、前記改善閾値を越えて、前記複数のリソースのリ
ソース配置を改善する、前記移行することと、
を実装させるプログラム命令を記憶する、非一時的コンピュータ可読記憶媒体。
16.前記複数のリソースのうちの1つまたは複数の候補リソースを識別する際に、前
記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、前記1つま
たは複数の候補リソースの移行を実行するためのそれぞれの優先度を割り当てることを実
装させ、
前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、前記1
つまたは複数の候補リソースに割り当てられた前記それぞれの優先度に従って移行するた
めに、前記少なくとも1つの候補リソースを選択することをさらに実装させる、条項15
に記載の非一時的コンピュータ可読記憶媒体。
17.前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
前記複数のリソースの前記現在の配置の別の評価に従って、前記1つまたは複数の候補
リソースの前記それぞれの優先度を更新することと、
前記1つまたは複数の候補リソースの前記更新されたそれぞれの優先度に従って移行す
るために、前記1つまたは複数の候補リソースのうちの別の1つを選択することと、
をさらに実装させる、条項16に記載の非一時的コンピュータ可読記憶媒体。
18.前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別する際に
、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、前記1
つまたは複数の候補リソースのためのそれぞれの移行動作をキューに配置することをさら
に実装させ、
前記1つまたは複数の候補リソースに割り当てられる前記それぞれの優先度に従って移
行するために、前記少なくとも1つの候補リソースを選択することが、前記キューの評価
に基づいて実行される、条項16に記載の非一時的コンピュータ可読記憶媒体。
19.前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
前記少なくとも1つの候補リソースのための前記それぞれの移行動作が、完了したこと
を判断することと、
前記それぞれの移行動作が完了したことを判断することに応答して、前記それぞれの移
行動作を前記移行キューから削除することと、
を実装させる、条項18に記載の非一時的コンピュータ可読記憶媒体。
20.前記1つまたは複数の配置基準に従って、前記分散型システムの前記複数のリソ
ースホストのうちの前記それぞれの1つにおいてホストされる前記複数のリソースの現在
の配置を評価する際に、前記プログラム命令が、前記1つまたは複数のコンピューティン
グデバイスに、前記1つまたは複数の配置基準に従って、前記複数のリソースの前記現在
の配置に対するそれぞれの配置スコアを生成することを実装させ、
前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別する際に、前記
プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
前記1つまたは複数の配置基準に従って、前記複数のリソースの1つまたは複数の可
能な配置に対して、それぞれの配置スコアを生成することと、
前記現在の配置に対する前記それぞれの配置スコアと、1つまたは複数の可能な配置
に対する前記それぞれの配置スコアとの間のそれぞれのスコア差を計算することと、
前記1つまたは複数の候補リソースとして、前記改善閾値を超えるそれぞれのスコア
差を有するリソースを決定することと、
を実装させる、条項15に記載の非一時的コンピュータ可読記憶媒体。
21.前記分散型システムが、仮想ブロックベースストレージサービスであり、前記複
数のリソースが、前記仮想ブロックベースストレージサービスの複数のクライアントのた
めに保持されるデータボリュームである、条項15に記載の非一時的コンピュータ可読記
憶媒体。
本明細書で説明する方法は、様々な実施形態で、ハードウェア及びソフトウェアの任意
の組み合わせによって実装されてもよい。例えば、一実施形態では、方法は、プロセッサ
に連結されるコンピュータ可読記憶媒体上に記憶されたプログラム命令を実行する、1つ
または複数のプロセッサを含むコンピュータシステム(例えば、図10におけるコンピュ
ータシステム)によって実装されてもよい。プログラム命令は、本明細書で説明する機能
性(例えば、本明細書で説明するブロックベースストレージサービスを実装するものなど
の、様々なサーバ、リソースホスト、制御プレーン、マネージャ及び/または他のコンポ
ーネントの機能性)を実装するように構成されてもよい。図に示され、本明細書で説明さ
れる様々な方法は、方法の実施形態の実施例を表す。任意の方法の順序は、変更されても
よく、様々な要素が追加され、再配列され、結合され、省略され、修正されるなどしても
よい。
本明細書で説明する、リソース配置を最適化するための適時性リソース移行の実施形態
は、様々な他のデバイスとやり取りし得る1つまたは複数のコンピュータシステム上で実
行されてもよい。図10は、様々な実施形態による、コンピューティングシステムの実施
例を示すブロック図である。例えば、コンピュータシステム1000は、異なる実施形態
において、コンピュートクラスタのストレージ及び/もしくはコンピュートノード、デー
タストア、ならびに/またはクライアントを実装するように構成されてもよい。コンピュ
ータシステム1000は、パーソナルコンピュータシステム、デスクトップコンピュータ
、ラップトップもしくはノートブックコンピュータ、メインフレームコンピュータシステ
ム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、コン
シューマデバイス、アプリケーションサーバ、ストレージデバイス、電話、携帯電話、ま
たは概して任意の種類のコンピューティングデバイスを含むが、これらに限定されない、
様々な種類のデバイスのうちのいずれかであってもよい。
コンピュータシステム1000は、入力/出力(I/O)インタフェース1030を介
してシステムメモリ1020に連結される1つまたは複数のプロセッサ1010(シング
ルまたはマルチスレッドであってもよい、マルチコアを含み得るもののいずれか)を含む
。コンピュータシステム1000は、I/Oインタフェース1030に連結されるネット
ワークインタフェース1040をさらに含む。様々な実施形態では、コンピュータシステ
ム1000は、1つのプロセッサ1010を含むユニプロセッサシステム、または複数(
例えば、2個、4個、8個、もしくは別の適当な数)のプロセッサ1010を含むマルチ
プロセッサシステムであってもよい。プロセッサ1010は、命令を実行可能な任意の適
当なプロセッサであってもよい。例えば、様々な実施形態では、プロセッサ1010は、
x86、PowerPC、SPARC、もしくはMIPS ISA、または任意の他の適
当なISAなどの多様な命令セットアーキテクチャ(ISA)のいずれかを実装する汎用
または組み込みプロセッサであってもよい。マルチプロセッサシステムでは、プロセッサ
1010のそれぞれは、一般に、しかし必須ではなく、同一のISAを実装してもよい。
コンピュータシステム1000は、また、他のシステム及び/またはコンポーネントと通
信ネットワーク(例えば、インターネット、LANなど)を介して通信するための、1つ
または複数のネットワーク通信デバイス(例えば、ネットワークインタフェース1040
)を含む。
図示される実施形態では、コンピュータシステム1000は、また、1つもしくは複数
の永続ストレージデバイス1060、及び/または1つもしくは複数のI/Oデバイス1
080を含む。様々な実施形態では、永続ストレージデバイス1060は、ディスクドラ
イブ、テープドライブ、ソリッドステートメモリ、他の大容量ストレージデバイス、ブロ
ックベースストレージデバイス、または任意の他の永続ストレージデバイスに対応しても
よい。コンピュータシステム1000(または、その上で動作する分散型アプリケーショ
ン、もしくはオペレーティングシステム)は、所望により、命令及び/またはデータを永
続ストレージデバイス1060に記憶してもよく、記憶された命令及び/またはデータを
必要に応じて取得してもよい。例えば、いくつかの実施形態では、コンピュータシステム
1000は、ストレージシステムサーバノードをホストしてもよく、永続ストレージ10
60は、そのサーバノードに取り付けられたSSDを含んでもよい。
コンピュータシステム1000は、プロセッサ(複数可)1010によってアクセス可
能な命令及びデータを記憶するように構成される、1つまたは複数のシステムメモリ10
20を含む。様々な実施形態では、システムメモリ1020は、任意の適当なメモリ技術
(例えば、キャッシュ、スタティックランダムアクセスメモリ(SRAM)、DRAM、
RDRAM、EDO RAM、DDR 10 RAM、同期式動的RAM(SDRAM)
、ラムバスRAM、EEPROM、不揮発性/フラッシュ型メモリ、または任意の他の種
類のメモリのうちの1つまたは複数)を用いて実装されてもよい。システムメモリ102
0は、本明細書で説明する方法及び技術を実装するために、プロセッサ(複数可)101
0によって実行可能なプログラム命令1025を含んでもよい。様々な実施形態では、プ
ログラム命令1025は、プラットフォームネイティブのバイナリ、JAVA(商標)バ
イトコードなどの任意のインタプリタ型言語、もしくはC/C++、Java(商標)な
どの任意の他の言語で、またはそれらの任意の組み合わせで、符号化されてもよい。例え
ば、例示された実施形態では、プログラム命令1025は、異なる実施形態で、リソース
ホストの機能性を実装するために実行可能なプログラム命令を含む。いくつかの実施形態
では、プログラム命令1025は、複数の別個のクライアント、ノード、及び/または他
のコンポーネントを実装してもよい。
いくつかの実施形態では、プログラム命令1025は、UNIX(登録商標)、LIN
UX、Solaris(商標)、MacOS(商標)、Windows(商標)などの様
々なオペレーティングシステムのうちのいずれかであり得る、オペレーティングシステム
(図示せず)を実装するために実行可能な命令を含んでもよい。プログラム命令1025
のうちのいずれかまたは全てが、命令をその上に記憶している非一時的コンピュータ可読
記憶媒体を含み得るコンピュータプログラム製品、またはソフトウェアとして提供されて
もよく、命令は、様々な実施形態に従ってプロセスを実行するコンピュータシステム(ま
たは他の電子デバイス)をプログラムするために使用されてもよい。非一時的コンピュー
タ可読記憶媒体は、機械(例えば、コンピュータ)によって可読の形式(例えば、ソフト
ウェア、処理アプリケーション)で、情報を記憶するための任意の機構を含んでもよい。
概して言うと、非一時的コンピュータアクセス可能媒体が、I/Oインタフェース103
0を介してコンピュータシステム1000に連結される、例えば、ディスクまたはDVD
/CD−ROMといった磁気または光学媒体などの、コンピュータ可読記憶媒体またはメ
モリ媒体を含んでもよい。非一時的コンピュータ可読記憶媒体は、また、システムメモリ
1020または別の種類のメモリとしてコンピュータシステム1000のいくつかの実施
形態に含まれ得る、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、S
RAMなど)、ROMなどの任意の揮発性または不揮発性媒体を含んでもよい。他の実施
形態では、プログラム命令は、ネットワークインタフェース1040を介して実装され得
るような、ネットワーク及び/またはワイヤレスリンクなどの通信媒体を介して伝達され
る、光学、音響、または他の形態の伝搬信号(例えば、搬送波、赤外線信号、デジタル信
号など)を用いて通信されてもよい。
いくつかの実施形態では、システムメモリ1020は、データストア1045を含んで
もよく、データストア1045は、本明細書で説明するように構成されてもよい。概して
、システムメモリ1020(例えば、システムメモリ1020内のデータストア1045
)、永続ストレージ1060、及び/またはリモートストレージ1070は、データブロ
ック、データブロックの複製、データブロックに関連付けられるメタデータ及び/もしく
はそれらの状態、構成情報、ならびに/または本明細書で説明する方法及び技術を実装す
るのに利用可能な任意の他の情報を記憶してもよい。
一実施形態では、I/Oインタフェース1030は、ネットワークインタフェース10
40または他の周辺インタフェースを通じて含む、システム内のプロセッサ1010、シ
ステムメモリ1020、及び任意の周辺デバイスの間のI/Oトラフィックを協調させる
ように構成されてもよい。いくつかの実施形態では、I/Oインタフェース1030は、
データ信号を1つのコンポーネント(例えば、システムメモリ1020)から、別のコン
ポーネント(例えば、プロセッサ1010)による使用に適したフォーマットに変換する
ために、任意の必要なプロトコル、タイミングまたは他のデータ変換を実行してもよい。
いくつかの実施形態では、I/Oインタフェース1030は、例えば、周辺構成要素相互
接続(PCI)バス規格またはユニバーサルシリアルバス(USB)規格の変形などの、
様々な種類の周辺バスを通じて取り付けられたデバイスのためのサポートを含んでもよい
。いくつかの実施形態では、I/Oインタフェース1030の機能は、例えば、ノースブ
リッジ及びサウスブリッジなどの2つ以上の別々のコンポーネントに分割されてもよい。
さらに、いくつかの実施形態では、システムメモリ1020へのインタフェースなどのI
/Oインタフェース1030の機能性のうちのいくつかまたは全てが、プロセッサ101
0に直接組み込まれてもよい。
ネットワークインタフェース1040は、コンピュータシステム1000と、例えば、
他のコンピュータシステム1090などの、ネットワークに取り付けられる他のデバイス
との間でデータが交換されることを可能にするように構成されてもよい。さらに、ネット
ワークインタフェース1040は、コンピュータシステム1000と、様々なI/Oデバ
イス1050及び/またはリモートストレージ1070との間での通信を可能にするよう
に構成されてもよい。入力/出力デバイス1050は、いくつかの実施形態では、1つま
たは複数のディスプレイ端末、キーボード、キーパッド、タッチパッド、スキャニングデ
バイス、音声または光認識デバイス、または、1つもしくは複数のコンピュータシステム
1000によってデータを入力もしくは取得するのに適した任意の他のデバイスを含んで
もよい。複数の入力/出力デバイス1050は、コンピュータシステム1000内に存在
してもよく、またはコンピュータシステム1000を含む分散型システムの様々なノード
上に分散されてもよい。いくつかの実施形態では、同様の入力/出力デバイスは、コンピ
ュータシステム1000とは別個であってもよく、ネットワークインタフェース1040
を介するなど、有線または無線接続を通じてコンピュータシステム1000を含む分散型
システムの1つまたは複数のノードとやり取りしてもよい。ネットワークインタフェース
1040は、一般に、1つまたは複数の無線ネットワーキングプロトコル(例えば、Wi
−Fi/IEEE802.11、または別の無線ネットワーキング規格)をサポートして
もよい。しかしながら、様々な実施形態では、ネットワークインタフェース1040は、
例えば、他の種類のイーサネット(登録商標)ネットワークなどの、任意の適当な有線ま
たは無線汎用データネットワークを介して通信をサポートしてもよい。追加的に、ネット
ワークインタフェース1040は、ファイバチャネルSANなどのストレージエリアネッ
トワークを介して、または任意の他の適当な種類のネットワーク及び/もしくはプロトコ
ルを介して、アナログ音声ネットワークまたはデジタルファイバ通信ネットワークなどの
、遠距離通信/電話通信ネットワークを介した通信をサポートしてもよい。様々な実施形
態では、コンピュータシステム1000は、図10に示すもの(例えば、ディスプレイ、
ビデオカード、オーディオカード、周辺デバイス、ATMインタフェース、イーサネット
インタフェース、フレームリレーインタフェースなどの他のネットワークインタフェース
など)より多くの、少ない、または異なるコンポーネントを含んでもよい。
本明細書で説明する分散型システムの実施形態のいずれか、またはそれらのコンポーネ
ントのいずれかが、1つまたは複数のネットワークベースサービスとして実装されてもよ
いことに留意されたい。例えば、コンピューティングサービス内のコンピュートクラスタ
は、コンピューティング及び/もしくはストレージサービス、ならびに/または本明細書
で説明する分散型コンピューティングシステムをネットワークベースサービスとしてクラ
イアントに採用する、他の種類のサービスを提示してもよい。いくつかの実施形態では、
ネットワークベースサービスは、ネットワーク上で相互運用可能なマシンツーマシンイン
タラクションをサポートするように設計されるソフトウェア及び/またはハードウェアシ
ステムによって実装されてもよい。ネットワークベースサービスは、ウェブサービス記述
言語(WSDL)などのマシン処理可能なフォーマットで記載されたインタフェースを有
してもよい。他のシステムは、ネットワークベースサービスのインタフェースの仕様によ
って規定されたやり方で、ネットワークベースサービスと対話してもよい。例えば、ネッ
トワークベースサービスは、他のシステムが呼び出し得る様々な動作を定義してもよく、
他のシステムが様々な動作を要求するときに従うことを期待され得る、特定のアプリケー
ションプログラミングインタフェース(API)を定義してもよい。
様々な実施形態では、ネットワークベースサービスが、ネットワークベースサービス要
求に関連するパラメータ及び/またはデータを含むメッセージの使用を通じて要求され、
または呼び出されてもよい。そのようなメッセージは、拡張マークアップ言語(XML)
などの特定のマークアップ言語に従ってフォーマットされてもよく、及び/または簡易オ
ブジェクトアクセスプロトコル(SOAP)などのプロトコルを用いてカプセル化されて
もよい。ネットワークベースサービス要求を実行するために、ネットワークベースサービ
スクライアントは、要求を含むメッセージを集め、ハイパーテキスト転送プロトコル(H
TTP)などのインターネットベースのアプリケーション層転送プロトコルを用いて、ネ
ットワークベースサービスに対応するアドレス指定可能なエンドポイント(例えば、ユニ
フォームリソースロケータ(URL))にメッセージを伝達してもよい。
いくつかの実施形態では、ネットワークベースサービスは、メッセージベースの技術で
はなく、REST(「RESTful」)技術を用いて実装されてもよい。例えば、RE
STful技術に従って実装されたネットワークベースサービスは、SOAPメッセージ
内にカプセル化されるのではなく、PUT、GET、またはDELETEなどのHTTP
方式に含まれるパラメータを通じて呼び出されてもよい。
上記の実施形態は、かなり詳細に説明されているが、一度上記の開示が完全に理解され
れば当業者には明らかとなるような、多くの変形及び修正が行われてもよい。以下の特許
請求の範囲は、そのような修正及び変更の全てを包含するように解釈され、従って、上記
の説明は、限定的な意味ではなく、例示的な意味にみなされるべきであると意図される。

Claims (15)

  1. 複数のリソースのうちの1つまたは複数をそれぞれがホストする複数のリソースホストであって、前記複数のリソースホストは、それぞれの前記リソースがネットワークを通じて、前記複数のリソースホストとは異なるリソースホスト上で動作するクライアントにアクセス可能であるようにする、前記複数のリソースホストと、
    1つまたは複数の配置基準に従って、前記複数のリソースの現在の配置を評価し、前記1つまたは複数の配置基準が、前記クライアントに関して、分散型システムの前記複数のリソースホスト間で全体として前記複数のリソースのリソース配置を少なくとも改善するための、前記複数のリソースの現在の配置構成の評価を含み、
    前記評価に少なくとも一部基づいて、1つまたは複数の候補リソースを現在ホストする前記のリソースホストのそれぞれから、前記複数のリソースホストのそれぞれの行先リソースホストに移行するために、前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別し、前記複数のリソースのうちの前記1つまたは複数の候補リソースの予想される前記移行が、前記1つまたは複数の配置基準に関する改善閾値を越え、
    前記1つまたは複数の候補リソースのうちの少なくとも1つを前記それぞれの行先リソースホストに移行するように移行動作に指示し、前記少なくとも1つの候補リソースの前記それぞれの行先リソースホストへの前記移行が、前記改善閾値を越えて、前記複数のリソースホストのリソース配置を改善するように構成される、
    適時性配置マネージャと、
    を備える分散型システム。
  2. 前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別するために、前記適時性配置マネージャが、
    前記1つまたは複数の候補リソースの移行について、それぞれの優先度を決定し、
    前記1つまたは複数の候補リソースのためのそれぞれの移行動作をキューに配置するように構成され、
    前記適時性配置マネージャが、
    前記キューの評価に少なくとも一部基づいて、前記1つまたは複数の候補リソースに割り当てられる前記それぞれの優先度に従って移行するために、前記少なくとも1つの候補リソースを選択するようにさらに構成される、請求項1に記載のシステム。
  3. 複数の移行ワーカをさらに備え、
    前記移行動作に前記少なくとも1つの候補リソースを移行するように指示するために、前記適時性配置マネージャが、実行するために前記移行動作を前記複数の移行ワーカのうちの1つに送信するように構成される、請求項2に記載のシステム。
  4. 1つまたは複数の配置基準に従って、分散型システムの複数のリソースホストのうちのそれぞれの1つにおいてホストされる複数のリソースの現在の配置を評価することであって、前記複数のリソースは、それぞれコンピューティングリソース、ストレージリソース、またはネットワーキングリソースを含み、前記複数のリソースホストは、前記複数のリソースのそれぞれのリソースがネットワークを通じてアクセス可能であるようにし、前記1つまたは複数の配置基準が、前記複数のリソースホストとは異なるリソースホスト上で動作するクライアントに関して、分散型システムの前記複数のリソースホスト間で全体として前記複数のリソースのリソース配置を少なくとも改善するための、前記複数のリソースの現在の配置構成の評価を含む、前記評価することと、
    前記評価に少なくとも一部基づいて、1つまたは複数の候補リソースを現在ホストする前記リソースホストのそれぞれから、前記複数のリソースホストのそれぞれの行先リソースホストに移行するために、前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別することであって、前記複数のリソースのうちの前記1つまたは複数の候補リソースの予想される前記移行が、改善閾値を越える、前記識別することと、
    前記1つまたは複数の候補リソースのうちの少なくとも1つを前記それぞれの行先リソースホストに移行することであって、前記少なくとも1つの候補リソースの前記それぞれの行先リソースホストへの前記移行が、前記改善閾値を越えて、前記複数のリソースのリソース配置を改善する、前記移行することと、
    を1つまたは複数のコンピューティングデバイスによって実行することを含む、方法。
  5. 前記複数のリソースのうちの1つまたは複数の候補リソースを識別することが、前記1つまたは複数の候補リソースの移行を実行するためのそれぞれの優先度を割り当てることを含み、
    前記方法が、前記1つまたは複数の候補リソースに割り当てられた前記それぞれの優先度に従って移行するために、前記少なくとも1つの候補リソースを選択することをさらに含む、請求項4に記載の方法。
  6. 前記複数のリソースの前記現在の配置の別の評価に従って、前記1つまたは複数の候補リソースの前記それぞれの優先度を更新することと、
    前記1つまたは複数の候補リソースの前記更新されたそれぞれの優先度に従って移行するために、前記1つまたは複数の候補リソースのうちの別の1つを選択することと、
    をさらに含む、請求項5に記載の方法。
  7. 前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別することが、前記1つまたは複数の候補リソースのためのそれぞれの移行動作をキューに配置することをさらに含み、
    前記1つまたは複数の候補リソースに割り当てられた前記それぞれの優先度に従って移行するために、前記少なくとも1つの候補リソースを選択することが、前記キューの評価に基づいて実行される、請求項5に記載の方法。
  8. 前記複数のリソースの前記現在の配置の別の評価に従って、前記キューから前記1つまたは複数の候補リソースのうちの少なくとも1つを削除することをさらに含む、請求項7に記載の方法。
  9. 前記1つまたは複数の配置基準に従って、前記分散型システムの前記複数のリソースホストのうちの前記それぞれの1つにおいてホストされる前記複数のリソースの現在の配置を評価することが、
    前記1つまたは複数の配置基準に従って、前記複数のリソースの前記現在の配置に対して、それぞれの配置スコアを生成することを含み、
    前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別することが、
    前記1つまたは複数の配置基準に従って、前記複数のリソースの1つまたは複数の可能な配置に対して、それぞれの配置スコアを生成することと、
    前記現在の配置に対する前記それぞれの配置スコアと、1つまたは複数の可能な配置に対する前記それぞれの配置スコアとの間のそれぞれのスコア差を計算することと、
    前記1つまたは複数の候補リソースとして、前記改善閾値を超える、それぞれのスコア差を有するリソースを決定することと、
    を含む、請求項4に記載の方法。
  10. 前記リソースが、分散型リソースを実装する複数のリソースのうちの1つであり、前記1つまたは複数の配置基準が、前記分散型リソースの前記複数のリソースについての現在の配置構成の評価を含む、請求項4に記載の方法。
  11. 前記分散型システムが、ネットワークベースサービスであり、前記複数のリソースが、前記ネットワークベースサービスの複数のクライアントに対し、前記ネットワークベースサービスにおいて保持され、
    前記評価すること、前記識別すること、前記移行することが、前記ネットワークベースサービスについてのバックグラウンドサービスの一部として実行される、請求項4の記載の方法。
  12. 1つまたは複数のコンピューティングデバイスによって実行されるときに、前記1つまたは複数のコンピューティングデバイスに、
    1つまたは複数の配置基準に従って、分散型システムの複数のリソースホストのうちのそれぞれの1つにおいてホストされる複数のリソースの現在の配置を評価することであって、前記複数のリソースは、それぞれコンピューティングリソース、ストレージリソース、またはネットワーキングリソースを含み、前記複数のリソースホストは、前記複数のリソースのそれぞれのリソースがネットワークを通じてアクセス可能であるようにし、前記1つまたは複数の配置基準が、前記複数のリソースホストとは異なるリソースホスト上で動作するクライアントに関して、分散型システムの前記複数のリソースホスト間で全体として前記複数のリソースのリソース配置を少なくとも改善するための、前記複数のリソースの現在の配置構成の評価を含む、前記評価することと、
    前記評価に少なくとも一部基づいて、1つまたは複数の候補リソースを現在ホストする前記リソースホストのそれぞれから、前記複数のリソースホストのそれぞれの行先リソースホストに移行するために、前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別することであって、前記複数のリソースのうちの前記1つまたは複数の候補リソースの予想される前記移行が、改善閾値を越える、前記識別することと、
    前記1つまたは複数の候補リソースのうちの少なくとも1つを前記それぞれの行先リソースホストに移行することであって、前記少なくとも1つの候補リソースの前記それぞれの行先リソースホストへの前記移行が、前記改善閾値を越えて、前記複数のリソースのリソース配置を改善する、前記移行することと、
    を実装させるプログラム命令を記憶する、非一時的コンピュータ可読記憶媒体。
  13. 前記複数のリソースのうちの1つまたは複数の候補リソースを識別する際に、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、前記1つまたは複数の候補リソースの移行を実行するためのそれぞれの優先度を割り当てることを実装させ、
    前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、前記1つまたは複数の候補リソースに割り当てられた前記それぞれの優先度に従って移行するために、前記少なくとも1つの候補リソースを選択することと、
    前記複数のリソースの前記現在の配置の別の評価に従って、前記1つまたは複数の候補リソースの前記それぞれの優先度を更新することと、
    前記1つまたは複数の候補リソースの前記更新されたそれぞれの優先度に従って移行するために、前記1つまたは複数の候補リソースのうちの別の1つを選択することと、
    をさらに実装させる、請求項12に記載の非一時的コンピュータ可読記憶媒体。
  14. 前記1つまたは複数の配置基準に従って、前記分散型システムの前記複数のリソースホストのうちの前記それぞれの1つにおいてホストされる前記複数のリソースの現在の配置を評価する際に、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、前記1つまたは複数の配置基準に従って、前記複数のリソースの前記現在の配置に対して、それぞれの配置スコアを生成することを実装させ、
    前記複数のリソースのうちの前記1つまたは複数の候補リソースを識別する際に、前記プログラム命令が、前記1つまたは複数のコンピューティングデバイスに、
    前記1つまたは複数の配置基準に従って、前記複数のリソースの前記1つまたは複数の可能な配置に対して、それぞれの配置スコアを生成することと、
    前記現在の配置に対する前記それぞれの配置スコアと、1つまたは複数の可能な配置に対する前記それぞれの配置スコアとの間のそれぞれのスコア差を計算することと、
    前記1つまたは複数の候補リソースとして、前記改善閾値を超える、それぞれのスコア差を有するリソースを決定することと、
    を実装させる、請求項12に記載の非一時的コンピュータ可読記憶媒体。
  15. 前記分散型システムが、仮想ブロックベースストレージサービスであり、前記複数のリソースが、前記仮想ブロックベースストレージサービスの複数のクライアントのために保持されるデータボリュームである、請求項12に記載の非一時的コンピュータ可読記憶媒体。
JP2020002627A 2015-03-09 2020-01-10 リソース配置を最適化するための適時性リソース移行 Active JP7138126B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/642,445 US10715460B2 (en) 2015-03-09 2015-03-09 Opportunistic resource migration to optimize resource placement
US14/642,445 2015-03-09

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017546817A Division JP2018514018A (ja) 2015-03-09 2016-03-09 リソース配置を最適化するための適時性リソース移行

Publications (2)

Publication Number Publication Date
JP2020064676A true JP2020064676A (ja) 2020-04-23
JP7138126B2 JP7138126B2 (ja) 2022-09-15

Family

ID=55590159

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017546817A Pending JP2018514018A (ja) 2015-03-09 2016-03-09 リソース配置を最適化するための適時性リソース移行
JP2020002627A Active JP7138126B2 (ja) 2015-03-09 2020-01-10 リソース配置を最適化するための適時性リソース移行

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017546817A Pending JP2018514018A (ja) 2015-03-09 2016-03-09 リソース配置を最適化するための適時性リソース移行

Country Status (9)

Country Link
US (1) US10715460B2 (ja)
EP (1) EP3268860A1 (ja)
JP (2) JP2018514018A (ja)
KR (1) KR102031471B1 (ja)
CN (1) CN107430528B (ja)
AU (2) AU2016229135A1 (ja)
CA (1) CA2978889C (ja)
SG (1) SG11201707091TA (ja)
WO (1) WO2016145091A1 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10505862B1 (en) * 2015-02-18 2019-12-10 Amazon Technologies, Inc. Optimizing for infrastructure diversity constraints in resource placement
US10721181B1 (en) * 2015-03-10 2020-07-21 Amazon Technologies, Inc. Network locality-based throttling for automated resource migration
US11336519B1 (en) * 2015-03-10 2022-05-17 Amazon Technologies, Inc. Evaluating placement configurations for distributed resource placement
US10491667B1 (en) 2015-03-16 2019-11-26 Amazon Technologies, Inc. Customized memory modules in multi-tenant service provider systems
US9740510B2 (en) * 2015-03-31 2017-08-22 Alcatel Lucent Minimizing overhead over-provisioning costs in machine configurations
WO2016163025A1 (ja) * 2015-04-10 2016-10-13 株式会社日立製作所 データ量削減機能に関する課金額を算出する方法及び管理システム
US9710178B2 (en) * 2015-04-10 2017-07-18 International Business Machines Corporation Optimizing volume placement based upon desired response time and priority
US10216744B2 (en) * 2015-05-01 2019-02-26 Microsoft Technology Licensing, Llc Data migration to a cloud computing system
US10938655B2 (en) * 2016-01-26 2021-03-02 International Business Machines Corporation Enterprise cloud garbage collector
CN107181774B (zh) * 2016-03-09 2020-11-20 伊姆西Ip控股有限责任公司 分布式数据中心之间的数据移动
US10455007B2 (en) * 2016-07-14 2019-10-22 International Business Machines Corporation Managing asset placement with respect to a distributed computing environment having a set of hosts
US10353736B2 (en) 2016-08-29 2019-07-16 TidalScale, Inc. Associating working sets and threads
US10484015B2 (en) 2016-12-28 2019-11-19 Amazon Technologies, Inc. Data storage system with enforced fencing
US10514847B2 (en) 2016-12-28 2019-12-24 Amazon Technologies, Inc. Data storage system with multiple durability levels
US20180321981A1 (en) * 2017-05-04 2018-11-08 Huawei Technologies Co., Ltd. System and method for self organizing data center
US10579274B2 (en) 2017-06-27 2020-03-03 TidalScale, Inc. Hierarchical stalling strategies for handling stalling events in a virtualized environment
US10817347B2 (en) 2017-08-31 2020-10-27 TidalScale, Inc. Entanglement of pages and guest threads
CN108228326A (zh) * 2017-12-29 2018-06-29 深圳乐信软件技术有限公司 批量任务处理方法和分布式系统
US20190306236A1 (en) * 2018-03-29 2019-10-03 Servicenow, Inc. Insight for cloud migration and optimization
US11567664B2 (en) 2018-04-16 2023-01-31 International Business Machines Corporation Distributing data across a mixed data storage center
US10768835B1 (en) * 2018-06-27 2020-09-08 Amazon Technologies, Inc. Opportunistic storage service
US11121981B1 (en) * 2018-06-29 2021-09-14 Amazon Technologies, Inc. Optimistically granting permission to host computing resources
CN109120678B (zh) * 2018-07-26 2021-05-14 北京百度网讯科技有限公司 用于分布式存储系统的服务托管的方法和装置
CN109325016B (zh) * 2018-09-12 2021-04-20 杭州朗和科技有限公司 数据迁移方法、装置、介质及电子设备
JP6842447B2 (ja) 2018-09-12 2021-03-17 株式会社日立製作所 リソース割当ての最適化を支援するシステム及び方法
US11113119B2 (en) 2018-09-17 2021-09-07 International Business Machines Corporation Managing computer resources
US11188368B2 (en) 2018-10-31 2021-11-30 Nutanix, Inc. Asynchronous workload migration control
US11194620B2 (en) 2018-10-31 2021-12-07 Nutanix, Inc. Virtual machine migration task management
CN113678415B (zh) * 2019-02-27 2024-06-07 新加坡电信有限公司 用于优化数据通信的系统
US10949241B2 (en) * 2019-03-08 2021-03-16 Google Llc Cost-efficient high-availability multi-single-tenant services
KR102427473B1 (ko) * 2020-09-29 2022-08-01 한국전자기술연구원 마이크로 데이터센터내 가용 자원상태 기반 워크로드 예측 정확도 증가 방법
US11375006B1 (en) 2020-12-28 2022-06-28 Pensando Systems, Inc. Methods and systems for rating workloads based on network interface device resources and for optimal scheduling
US11586466B2 (en) * 2021-01-20 2023-02-21 EMC IP Holding Company LLC Centralized high-availability flows execution framework
US11894985B1 (en) * 2022-12-20 2024-02-06 Starbucks Corporation Optimizing locations of physical objects in a network

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009140356A (ja) * 2007-12-07 2009-06-25 Hitachi Ltd 管理装置及び管理方法
WO2010016104A1 (ja) * 2008-08-04 2010-02-11 富士通株式会社 マルチプロセッサシステム,マルチプロセッサシステム用管理装置およびマルチプロセッサシステム用管理プログラムを記録したコンピュータ読取可能な記録媒体
JP2013152553A (ja) * 2012-01-24 2013-08-08 Nippon Telegr & Teleph Corp <Ntt> リソース管理装置、リソース管理システム、リソース管理方法およびリソース管理プログラム

Family Cites Families (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0784883A (ja) 1993-09-17 1995-03-31 Hitachi Ltd 仮想計算機システムのアドレス変換バッファパージ方法
US6463509B1 (en) 1999-01-26 2002-10-08 Motive Power, Inc. Preloading data in a cache memory according to user-specified preload criteria
US6922724B1 (en) 2000-05-08 2005-07-26 Citrix Systems, Inc. Method and apparatus for managing server load
JP2001337790A (ja) * 2000-05-24 2001-12-07 Hitachi Ltd 記憶システム及びその階層管理制御方法
US7032119B2 (en) 2000-09-27 2006-04-18 Amphus, Inc. Dynamic power and workload management for multi-server system
CA2322601A1 (en) 2000-10-06 2002-04-06 Ibm Canada Limited-Ibm Canada Limitee System and method for generating a filtered product list from a master product list in a contract
US7958199B2 (en) 2001-11-02 2011-06-07 Oracle America, Inc. Switching systems and methods for storage management in digital networks
US7392390B2 (en) 2001-12-12 2008-06-24 Valve Corporation Method and system for binding kerberos-style authenticators to single clients
US7146522B1 (en) 2001-12-21 2006-12-05 Network Appliance, Inc. System and method for allocating spare disks in networked storage
CA2380762A1 (en) 2002-04-04 2003-10-04 Intrinsyc Software, Inc. Internet-enabled device provisioning, upgrade and recovery mechanism
US7072815B1 (en) 2002-08-06 2006-07-04 Xilinx, Inc. Relocation of components for post-placement optimization
US6760899B1 (en) 2002-08-08 2004-07-06 Xilinx, Inc. Dedicated resource placement enhancement
CN1182465C (zh) * 2002-12-04 2004-12-29 联想(北京)有限公司 动态迁移数据的方法及其装置
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
JP4257834B2 (ja) 2003-05-06 2009-04-22 インターナショナル・ビジネス・マシーンズ・コーポレーション 磁気ディスク装置、ファイル管理システム及びその方法
US7302536B2 (en) 2003-06-17 2007-11-27 Hitachi, Ltd. Method and apparatus for managing replication volumes
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
JP4418286B2 (ja) * 2003-07-14 2010-02-17 富士通株式会社 分散型ストレージシステム
US7426570B2 (en) 2003-07-25 2008-09-16 Hewlett-Packard Development Company, L.P. Determining placement of distributed application onto distributed resource infrastructure
US7277960B2 (en) 2003-07-25 2007-10-02 Hewlett-Packard Development Company, L.P. Incorporating constraints and preferences for determining placement of distributed application onto distributed resource infrastructure
CN101566931B (zh) 2003-08-14 2011-05-18 克姆佩棱特科技公司 虚拟磁盘驱动系统和方法
US8825591B1 (en) 2003-12-31 2014-09-02 Symantec Operating Corporation Dynamic storage mechanism
US7328265B2 (en) 2004-03-31 2008-02-05 International Business Machines Corporation Method and system to aggregate evaluation of at least one metric across a plurality of resources
US7209967B2 (en) 2004-06-01 2007-04-24 Hitachi, Ltd. Dynamic load balancing of a storage system
US20060069761A1 (en) * 2004-09-14 2006-03-30 Dell Products L.P. System and method for load balancing virtual machines in a computer network
US20070083482A1 (en) * 2005-10-08 2007-04-12 Unmesh Rathi Multiple quality of service file system
US20110010518A1 (en) * 2005-12-19 2011-01-13 Srinivas Kavuri Systems and Methods for Migrating Components in a Hierarchical Storage Network
US7711711B1 (en) 2006-03-29 2010-05-04 Emc Corporation Networked storage system employing information lifecycle management in conjunction with a distributed global file system
US7653832B2 (en) 2006-05-08 2010-01-26 Emc Corporation Storage array virtualization using a storage block mapping protocol client and server
JP4749255B2 (ja) 2006-07-03 2011-08-17 株式会社日立製作所 複数種類の記憶デバイスを備えたストレージシステムの制御装置
US20080052026A1 (en) 2006-08-23 2008-02-28 Qurio Holdings, Inc. Configuring a content capture device for one or more service providers
US8738749B2 (en) 2006-08-29 2014-05-27 Digimarc Corporation Content monitoring and host compliance evaluation
US8046767B2 (en) 2007-04-30 2011-10-25 Hewlett-Packard Development Company, L.P. Systems and methods for providing capacity management of resource pools for servicing workloads
US20080291204A1 (en) 2007-05-22 2008-11-27 International Business Machines Corporation Coupled placement of items using stable marriage techniques
US7827286B1 (en) * 2007-06-15 2010-11-02 Amazon Technologies, Inc. Providing enhanced access to stored data
CN101632068B (zh) 2007-12-28 2015-01-14 株式会社东芝 半导体存储装置
US8230069B2 (en) 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
JP5642338B2 (ja) 2008-03-10 2014-12-17 富士通株式会社 ジョブ管理プログラムおよびジョブ管理方法
US8336094B2 (en) 2008-03-27 2012-12-18 Juniper Networks, Inc. Hierarchical firewalls
WO2009126154A1 (en) * 2008-04-10 2009-10-15 Hewlett-Packard Development Company, L.P. Virtual machine migration according to environmental data
KR20110031441A (ko) 2008-06-06 2011-03-28 피봇3 분산 raid 구현을 위한 방법 및 시스템
US8019732B2 (en) 2008-08-08 2011-09-13 Amazon Technologies, Inc. Managing access of multiple executing programs to non-local block data storage
US8015343B2 (en) * 2008-08-08 2011-09-06 Amazon Technologies, Inc. Providing executing programs with reliable access to non-local block data storage
US8725967B2 (en) 2008-08-08 2014-05-13 Amazon Technologies, Inc. Providing executing programs with access to stored block data of others
US8285687B2 (en) 2008-08-27 2012-10-09 Netapp, Inc. System and method for file system level compression using compression group descriptors
US8365183B2 (en) 2008-09-02 2013-01-29 Ca, Inc. System and method for dynamic resource provisioning for job placement
US8307177B2 (en) 2008-09-05 2012-11-06 Commvault Systems, Inc. Systems and methods for management of virtualization data
WO2010033497A1 (en) 2008-09-18 2010-03-25 Marvell World Trade Ltd. Preloading applications onto memory at least partially during boot up
JP5234342B2 (ja) 2008-09-22 2013-07-10 株式会社日立製作所 計算機システム及びその制御方法
US7984151B1 (en) 2008-10-09 2011-07-19 Google Inc. Determining placement of user data to optimize resource utilization for distributed systems
US7996719B2 (en) 2008-10-24 2011-08-09 Microsoft Corporation Expressing fault correlation constraints
US8190832B2 (en) 2009-01-29 2012-05-29 International Business Machines Corporation Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata
US8321862B2 (en) 2009-03-20 2012-11-27 Oracle America, Inc. System for migrating a virtual machine and resource usage data to a chosen target host based on a migration policy
US8930539B1 (en) * 2009-03-26 2015-01-06 Symantec Corporation Method and apparatus for optimizing resource utilization within a cluster and facilitating high availability for an application
US8117613B2 (en) 2009-04-08 2012-02-14 Microsoft Corporation Optimized virtual machine migration mechanism
JP5781925B2 (ja) 2009-04-23 2015-09-24 株式会社日立製作所 計算機システム及びその制御方法
US8190811B2 (en) 2009-06-09 2012-05-29 Seagate Technology, Llc Defragmentation of solid state memory
US8489744B2 (en) * 2009-06-29 2013-07-16 Red Hat Israel, Ltd. Selecting a host from a host cluster for live migration of a virtual machine
US8407190B2 (en) * 2009-06-30 2013-03-26 Commvault Systems, Inc. Performing data storage operations with a cloud environment, including containerized deduplication, data pruning, and data transfer
US8140812B2 (en) 2009-07-01 2012-03-20 International Business Machines Corporation Method and apparatus for two-phase storage-aware placement of virtual machines
US8234377B2 (en) * 2009-07-22 2012-07-31 Amazon Technologies, Inc. Dynamically migrating computer networks
US8914598B2 (en) * 2009-09-24 2014-12-16 Vmware, Inc. Distributed storage resource scheduler and load balancer
US20110078303A1 (en) * 2009-09-30 2011-03-31 Alcatel-Lucent Usa Inc. Dynamic load balancing and scaling of allocated cloud resources in an enterprise network
US8307362B1 (en) * 2009-12-18 2012-11-06 Emc Corporation Resource allocation in a virtualized environment
US8402140B2 (en) 2010-01-13 2013-03-19 Nec Laboratories America, Inc. Methods and apparatus for coordinated energy management in virtualized data centers
US9342801B2 (en) * 2010-03-29 2016-05-17 Amazon Technologies, Inc. Managing committed processing rates for shared resources
US9197514B2 (en) 2010-03-31 2015-11-24 Paypal, Inc. Service level agreement based storage access
US8799413B2 (en) * 2010-05-03 2014-08-05 Panzura, Inc. Distributing data for a distributed filesystem across multiple cloud storage systems
US8504689B2 (en) 2010-05-28 2013-08-06 Red Hat, Inc. Methods and systems for cloud deployment analysis featuring relative cloud resource importance
US8479211B1 (en) * 2010-06-29 2013-07-02 Amazon Technologies, Inc. Dynamic resource commitment management
US8539197B1 (en) * 2010-06-29 2013-09-17 Amazon Technologies, Inc. Load rebalancing for shared resource
US8812653B2 (en) * 2010-08-05 2014-08-19 Novell, Inc. Autonomous intelligent workload management
US8826292B2 (en) * 2010-08-06 2014-09-02 Red Hat Israel, Ltd. Migrating virtual machines based on level of resource sharing and expected load per resource on candidate target host machines
US8583867B1 (en) 2010-09-08 2013-11-12 Netapp, Inc. Non-disruptive data migration between processing systems that do not share storage
US8612330B1 (en) * 2010-09-14 2013-12-17 Amazon Technologies, Inc. Managing bandwidth for shared resources
US8533103B1 (en) * 2010-09-14 2013-09-10 Amazon Technologies, Inc. Maintaining latency guarantees for shared resources
US8484353B1 (en) 2010-09-28 2013-07-09 Amazon Technologies, Inc. Resource placement templates for virtual networks
US9304867B2 (en) 2010-09-28 2016-04-05 Amazon Technologies, Inc. System and method for providing flexible storage and retrieval of snapshot archives
US10013662B2 (en) * 2010-09-30 2018-07-03 Amazon Technologies, Inc. Virtual resource cost tracking with dedicated implementation resources
US8645529B2 (en) * 2010-10-06 2014-02-04 Infosys Limited Automated service level management of applications in cloud computing environment
US8589538B2 (en) * 2010-10-22 2013-11-19 International Business Machines Corporation Storage workload balancing
US8924539B2 (en) * 2010-11-24 2014-12-30 Red Hat, Inc. Combinatorial optimization of multiple resources across a set of cloud-based networks
US9329886B2 (en) * 2010-12-10 2016-05-03 Amazon Technologies, Inc. Virtual machine morphing for heterogeneous migration environments
US8615579B1 (en) * 2010-12-28 2013-12-24 Amazon Technologies, Inc. Managing virtual machine migration
WO2012105980A1 (en) 2011-02-03 2012-08-09 Empire Technology Development Llc Improving reliability in distributed environments
US8738972B1 (en) 2011-02-04 2014-05-27 Dell Software Inc. Systems and methods for real-time monitoring of virtualized environments
US9223616B2 (en) * 2011-02-28 2015-12-29 Red Hat Israel, Ltd. Virtual machine resource reduction for live migration optimization
US8832219B2 (en) * 2011-03-01 2014-09-09 Red Hat, Inc. Generating optimized resource consumption periods for multiple users on combined basis
US8452819B1 (en) * 2011-03-22 2013-05-28 Amazon Technologies, Inc. Methods and apparatus for optimizing resource utilization in distributed storage systems
US8949688B2 (en) 2011-04-01 2015-02-03 Cleversafe, Inc. Updating error recovery information in a dispersed storage network
JP5691062B2 (ja) * 2011-04-04 2015-04-01 株式会社日立製作所 仮想計算機の制御方法及び管理計算機
KR101544485B1 (ko) * 2011-04-25 2015-08-17 주식회사 케이티 클라우드 스토리지 시스템에서 복수개의 복제본을 분산 저장하는 방법 및 장치
US9021475B2 (en) 2011-05-04 2015-04-28 Citrix Systems, Inc. Systems and methods for SR-IOV pass-thru via an intermediary device
US8806015B2 (en) 2011-05-04 2014-08-12 International Business Machines Corporation Workload-aware placement in private heterogeneous clouds
US8719627B2 (en) * 2011-05-20 2014-05-06 Microsoft Corporation Cross-cloud computing for capacity management and disaster recovery
US8706869B2 (en) 2011-06-14 2014-04-22 International Business Machines Corporation Distributed cloud placement software
US8615589B1 (en) * 2011-06-27 2013-12-24 Amazon Technologies, Inc. Resource optimization recommendations
WO2013001392A1 (en) * 2011-06-29 2013-01-03 International Business Machines Corporation Managing organizational computing resources in accordance with computing environment entitlement contracts
CN103649910A (zh) * 2011-07-11 2014-03-19 惠普发展公司,有限责任合伙企业 虚拟机放置
WO2013019185A1 (en) * 2011-07-29 2013-02-07 Hewlett-Packard Development Company, L.P. Migrating virtual machines
US9229777B2 (en) * 2011-08-08 2016-01-05 International Business Machines Corporation Dynamically relocating workloads in a networked computing environment
US8949431B2 (en) * 2011-08-24 2015-02-03 Radware, Ltd. Method for live migration of virtual machines
US8661448B2 (en) * 2011-08-26 2014-02-25 International Business Machines Corporation Logical partition load manager and balancer
US9026837B2 (en) 2011-09-09 2015-05-05 Microsoft Technology Licensing, Llc Resource aware placement of applications in clusters
EP2744186B1 (en) * 2011-09-14 2016-05-25 Nec Corporation Resource optimization method, ip network system and resource optimization program
US9009317B2 (en) * 2011-10-10 2015-04-14 Verizon Patent And Licensing Inc. System for and method of managing network resources
US8782242B2 (en) 2011-10-13 2014-07-15 Vmware, Inc. Software application placement using computing resource containers
US8914515B2 (en) * 2011-10-28 2014-12-16 International Business Machines Corporation Cloud optimization using workload analysis
US8898505B2 (en) * 2011-12-01 2014-11-25 International Business Machines Corporation Dynamically configureable placement engine
US8886781B2 (en) * 2011-12-13 2014-11-11 Microsoft Corporation Load balancing in cluster storage systems
KR101343617B1 (ko) * 2011-12-28 2013-12-20 대전대학교 산학협력단 클라우드 환경에서 서비스품질 보장을 위한 서비스수준협약 관리방법
US8788658B2 (en) * 2012-02-03 2014-07-22 International Business Machines Corporation Allocation and balancing of storage resources
CN103365781B (zh) * 2012-03-29 2016-05-04 国际商业机器公司 用于动态地重新配置存储系统的方法和设备
CN104303168B (zh) * 2012-04-25 2016-12-07 英派尔科技开发有限公司 用于灵活资源需求应用的认证
US9619292B2 (en) 2012-04-30 2017-04-11 Alcatel Lucent Resource placement in networked cloud based on resource constraints
WO2013171787A2 (en) * 2012-05-15 2013-11-21 Hitachi, Ltd. File storage system and load distribution method
CN102821158B (zh) * 2012-08-20 2015-09-30 广州杰赛科技股份有限公司 一种实现虚拟机迁移的方法和云系统
US8856386B2 (en) 2012-08-21 2014-10-07 Cisco Technology, Inc. Cloud resource placement using placement pivot in physical topology
US8745261B1 (en) * 2012-10-02 2014-06-03 Nextbit Systems Inc. Optimized video streaming using cloud computing platform
WO2014073024A1 (en) 2012-11-09 2014-05-15 Hitachi, Ltd. Management computer, computer system, and instance management method
US9317223B2 (en) * 2012-12-17 2016-04-19 International Business Machines Corporation Method and apparatus for automated migration of data among storage centers
US20140250440A1 (en) * 2013-03-01 2014-09-04 Adaptive Computing Enterprises, Inc. System and method for managing storage input/output for a compute environment
WO2014192132A1 (ja) * 2013-05-31 2014-12-04 株式会社日立製作所 負荷分散装置及び方法
US9185960B2 (en) 2013-11-08 2015-11-17 Julep Beauty, Inc. Stylus for cosmetics, nail polish applicator and systems and kits based thereon
US9396009B2 (en) 2014-01-30 2016-07-19 International Business Machines Corporation Optimized global capacity management in a virtualized computing environment
US9582303B2 (en) 2014-03-03 2017-02-28 Vmware, Inc. Extending placement constraints for virtual machine placement, load balancing migrations, and failover without coding
WO2015186248A1 (ja) * 2014-06-06 2015-12-10 株式会社日立製作所 ストレージシステム、計算機システム及びデータ移行方法
US9477743B2 (en) * 2014-07-02 2016-10-25 Oracle International Corporation System and method for load balancing in a distributed system by dynamic migration
US9526012B2 (en) 2014-07-03 2016-12-20 Alcatel Lucent Efficient evaluation of hotspots for metrocell deployment
US9395967B2 (en) 2014-11-03 2016-07-19 International Business Machines Corporation Workload deployment density management for a multi-stage computing architecture implemented within a multi-tenant computing environment
US10162656B2 (en) * 2014-11-26 2018-12-25 Vmware, Inc. Minimizing guest operating system licensing costs in a processor based licensing model in a virtual datacenter
US9886296B2 (en) 2014-12-01 2018-02-06 International Business Machines Corporation Managing hypervisor weights in a virtual environment
JP6356599B2 (ja) * 2014-12-26 2018-07-11 株式会社日立製作所 監視支援システム、監視支援方法、および監視支援プログラム
US9870244B2 (en) * 2014-12-29 2018-01-16 International Business Machines Corporation Optimized migration of virtual objects across environments in a cloud computing environment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009140356A (ja) * 2007-12-07 2009-06-25 Hitachi Ltd 管理装置及び管理方法
WO2010016104A1 (ja) * 2008-08-04 2010-02-11 富士通株式会社 マルチプロセッサシステム,マルチプロセッサシステム用管理装置およびマルチプロセッサシステム用管理プログラムを記録したコンピュータ読取可能な記録媒体
JP2013152553A (ja) * 2012-01-24 2013-08-08 Nippon Telegr & Teleph Corp <Ntt> リソース管理装置、リソース管理システム、リソース管理方法およびリソース管理プログラム

Also Published As

Publication number Publication date
KR102031471B1 (ko) 2019-11-08
AU2019202695A1 (en) 2019-05-09
CA2978889C (en) 2021-01-26
EP3268860A1 (en) 2018-01-17
WO2016145091A1 (en) 2016-09-15
CN107430528A (zh) 2017-12-01
CN107430528B (zh) 2021-06-04
JP2018514018A (ja) 2018-05-31
US10715460B2 (en) 2020-07-14
CA2978889A1 (en) 2016-09-15
US20160269313A1 (en) 2016-09-15
SG11201707091TA (en) 2017-09-28
AU2016229135A1 (en) 2017-09-21
JP7138126B2 (ja) 2022-09-15
KR20170110708A (ko) 2017-10-11

Similar Documents

Publication Publication Date Title
JP7138126B2 (ja) リソース配置を最適化するための適時性リソース移行
JP6928055B2 (ja) データボリュームの動的な構成
US9207976B2 (en) Management of prioritizing virtual machines in an operating environment
US10057187B1 (en) Dynamic resource creation to connect client resources in a distributed system
US10616134B1 (en) Prioritizing resource hosts for resource placement
US10154091B1 (en) Deploying infrastructure units according to resource hosting constraints
US10505862B1 (en) Optimizing for infrastructure diversity constraints in resource placement
US10990464B1 (en) Block-storage service supporting multi-attach and health check failover mechanism
US10776173B1 (en) Local placement of resource instances in a distributed system
Hsieh et al. The incremental load balance cloud algorithm by using dynamic data deployment
US10812408B1 (en) Preventing concentrated selection of resource hosts for placing resources
US10594620B1 (en) Bit vector analysis for resource placement in a distributed system
US11336519B1 (en) Evaluating placement configurations for distributed resource placement
US11080092B1 (en) Correlated volume placement in a distributed block storage service
Wang et al. Provision of storage QoS in distributed file systems for clouds
US11121981B1 (en) Optimistically granting permission to host computing resources
US10721181B1 (en) Network locality-based throttling for automated resource migration
US11381468B1 (en) Identifying correlated resource behaviors for resource allocation
US11048554B1 (en) Correlated volume placement in a distributed block storage service

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210323

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210623

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210917

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220614

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220614

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20220621

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20220705

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: 20220809

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220905

R150 Certificate of patent or registration of utility model

Ref document number: 7138126

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150