JP2022112614A - リソースの移動スケジュールを決定する装置 - Google Patents

リソースの移動スケジュールを決定する装置 Download PDF

Info

Publication number
JP2022112614A
JP2022112614A JP2021008468A JP2021008468A JP2022112614A JP 2022112614 A JP2022112614 A JP 2022112614A JP 2021008468 A JP2021008468 A JP 2021008468A JP 2021008468 A JP2021008468 A JP 2021008468A JP 2022112614 A JP2022112614 A JP 2022112614A
Authority
JP
Japan
Prior art keywords
migration
node
priority
locality
resource
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.)
Pending
Application number
JP2021008468A
Other languages
English (en)
Inventor
優志 神谷
Yushi Kamiya
浩之 森本
Hiroyuki Morimoto
秀雄 斎藤
Hideo Saito
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2021008468A priority Critical patent/JP2022112614A/ja
Priority to US17/470,057 priority patent/US12067413B2/en
Publication of JP2022112614A publication Critical patent/JP2022112614A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/502Proximity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】互いに通信を行う複数ノードからなるクラスタを含むシステムにおいて、仮想マシン及びボリュームを含むリソース再配置の間の、システムの性能低下を抑制する。【解決手段】装置は、複数レコードを含むリソース移動スケジュール情報を格納する。複数レコードの各レコードは、1以上のリソースそれぞれの移動元ノード及び移動先ノードを示す。装置は、複数レコードそれぞれのプライオリティを、移動後のローカリティが有りのレコードのプライオリティが移動後のローカリティが無しのレコードのプライオリティより高くなるように決定する。ローカリティは、予め互いに関連付けられている仮想マシン及びボリュームが同一ノードに存在するか否かに基づき決定される。装置は、複数レコードのプライオリティに基づいて、複数レコードの移動スケジュールを決定する。【選択図】図7

Description

本発明は、リソースの移動スケジュールを決定する装置に関する。
本技術分野の背景技術として、米国特許出願公開第2018/0157521号(特許文献1)がある。この文献は、以下の事項を開示する(要約参照)。説明される例には、負荷分散を含む仮想化ファイルサーバが含まれる。例えば、レコメンデーションエンジンは、クラスタ内の複数のファイルサーバ仮想マシンのそれぞれに関連する負荷を推定する。その負荷に基づいて、レコメンデーションエンジンは、1つ以上のボリュームグループの所有権の変更、仮想化ファイルサーバのスケールアップ、仮想化ファイルサーバのスケールダウン、仮想化ファイルサーバのスケールイン、仮想化ファイルサーバのスケールアウト、またはそれらの組み合わせを推奨する。
米国特許出願公開第2018/0157521号
複数の計算機ノードがネットワークで接続し、各計算機ノード上で仮想マシンが稼動しボリュームが構成されているクラスタシステムにおいて、システムを停止することなく、仮想マシン及びボリュームを含むリソースを再配置することがある。このリソース再配置は、ある計算機ノードから別の計算機ノードへ、稼働状態の仮想マシン及び/又はボリュームを移動する。
上記リソース再配置は、システムの負荷分散やスケーリング(例えば増設)のために使用される。例えば、計算機ノードで稼動している仮想マシンやボリュームの負荷が増大してハードウェアリソースに不足が生じ、それにより当該計算機ノードが過負荷状態となる事態を回避するために用いられる。他の例は、システムに対して新たな計算機ノードを追加してシステムを拡張した場合に、既存の計算機ノードから仮想マシン及び/又はボリュームを新規の計算機ノードに移動する。
クラスタシステムにおける上記リソース再配置の間、システムのI/O性能が低下し得る。したがって、リソース再配置におけるシステムのI/O性能の低下を抑制できる技術が望まれる。
本発明の代表的な一例は、複数ノードを含むクラスタにおける、仮想マシンとボリュームを含むリソースの移動スケジュールを決定する装置であって、1以上のプロセッサと、1以上の記憶装置と、を含む。前記1以上の記憶装置は、複数レコードを含むリソース移動スケジュール情報を格納する。前記複数レコードの各レコードは、1以上のリソースそれぞれの移動元ノード及び移動先ノードを示す。前記1以上のプロセッサは、前記複数レコードそれぞれのプライオリティを、移動後のローカリティが有りのレコードのプライオリティが移動後のローカリティが無しのレコードのプライオリティより高くなるように決定する。前記ローカリティは、予め互いに関連付けられている仮想マシン及びボリュームが同一ノードに存在するか否かに基づき決定される。前記1以上のプロセッサは、前記複数レコードのプライオリティに基づいて、前記複数レコードの移動スケジュールを決定する。
本発明の一態様は、互いに通信を行う複数ノードからなるクラスタを含むシステムにおいて、仮想マシン及びボリュームを含むリソース再配置の間の、システムの性能低下を抑制できる。
本明細書の一実施形態に係る計算機システムの構成例を示す。 リソース移動の例を示す。 リソース移動とローカリティの関係を示す。 リソース移動とローカリティの関係を示す。 三つのノードのCPU負荷の所定期間内の時間変化の推定値を示す。 三つのノードのI/O負荷の所定期間内の時間変化の推定値を示す。 計算機システムにおいて、ソフトウェアリソースの再配置(移動)のスケジューリングを実行する計算機ノードが格納する、管理情報及び処理プログラムを示す。 リソース再配置スケジューリングの開始前(初期状態)のリソース移動スケジュール情報の構成例を示す。 プライオリティ決定プログラムによる、プライオリティ決定処理例のフローチャートを示す。 プライオリティが設定されたリソース移動スケジュール情報の例を示す 負荷情報生成プログラムにより実行される、負荷情報(マスタ)の生成方法例のフローチャートを示す。 一つのノードの最初の3週間における、負荷推定値の時間変化の計算方法の例を示す。 三つのノードのCPU負荷の1週間の時間変化の推定値を示す。 三つのノードのびI/O負荷の1週間の時間変化の推定値を示す。 移動負荷の追加に伴うノード負荷推定値の変化の例を示す。 リソース移動スケジュール決定プログラムにより実行される、リソース再配置スケジュール決定処理例のフローチャートを示す。 ある一つのノードの負荷情報(マスタ)の構成例を示す。 図13を参照して説明したリソース再配置処理により更新された、同一ノードの負荷情報(ワーク用)の構成例を示す。 リソース移動スケジュール情報の時刻欄の値が更新される様子を例示的に示す。 仲介ノードを介した移動元ノードから移動先ノードへのリソース移動の例を模式的に示す。 仲介ノードを介したリソース移動における移動期間及び負荷情報の例を示す。 図13に示すフローにおいて移動期間を保留されたリソース移動の移動期間を決定する処理例のフローチャートを示す。 負荷情報(テンポラリ)の構成例を示す。 仲介ノードを介したリソース移動の移動期間の決定に伴う、リソース移動スケジュール情報の更新の例を模式的に示す。
以下においては、便宜上その必要があるときは、複数のセクションまたは実施例に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合及び原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でもよい。
計算機システムは、一つの計算機又は互いに通信可能な複数の計算機で構成することができる。計算機装置、計算機システムあるいは計算リソース群は、1以上のインタフェース装置(例えば通信装置及び入出力装置を含む)、1以上の記憶装置(例えば、メモリ(主記憶)及び補助記憶装置を含む)、及び、1以上のプロセッサを含む。
プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/またはインタフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有するシステムが行う処理としてもよい。
プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機または計算機が読み取り可能な記憶媒体(例えば計算機読み取り可能な非一過性記憶媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
本明細書の一実施形態は、ネットワークを介して通信可能な複数の計算機ノード(以下単にノードとも呼ぶ)からなるクラスタを含む。各計算機ノードは、仮想マシン及びボリュームの少なくとも一方を格納する。仮想マシンは、関連付けられている1以上のボリュームにアクセスする。
互いに関連付けられている仮想マシン及びボリュームが同一計算機ノードに存在するか否かに基づいて、ローカリティの有無が決定される。本明細書の一実施形態は、複数のリソース移動それぞれのプライオリティを、移動後のローカリティが有りのレコードのプライオリティが移動後のローカリティが無しのレコードのプライオリティより高くなるように決定し、それらのプライオリティに基づいて移動スケジュールを決定する。これにより、リソース再配置におけるノード負荷の高騰を抑制できる。以下において、本開示の具体的な実施例を説明する。
図1は、本明細書の一実施形態に係る計算機システムの構成例を示す。計算機システムは、ネットワークを介して通信を行う複数の計算機ドメインを含む。図1は二つの計算機ドメイン10A及び10Bを例として示し、これらはネットワーク113、例えばWAN、を介して通信を行う。計算機ドメイン10A及び10Bは、例えば、異なるサイトに設置されている。
計算機ドメインは、ネットワークを介して通信を行う複数の計算機ノードを含む。計算機ノードは物理計算機装置であって、以下において、計算機ノードを単にノードとも呼ぶ。図1の構成例において、計算機ドメイン10Aは、三つの計算機ノード100Aから100Cを含み、これらはネットワーク111A、例えばLAN、を介して通信を行う。計算機ドメイン10Bは、計算機ノード100D及び100Eを含み、これらはネットワーク111B、例えばLAN、を介して通信を行う。
計算機ノードは、同一の構成又は異なる構成を有することができる。図1は、計算機ノード100Aの構成を例として示す。計算機ノード100Aは、プロセッサ101、主記憶装置であるメモリ102、二次記憶装置である複数の記憶ドライブ103、及びネットワークを介して他の計算機ノードと通信するためのポート104を含む。図1において、一つの記憶ドライブが例として符号103で示される。記憶ドライブこれら構成要素は、バス105を介して通信を行う。
メモリ102は例えば揮発性記憶装置であるDRAMであり、記憶ドライブ103は、例えば、不揮発性記憶装置であるSSD(Solid State Drive)又はHDD(Hard Disk Drive)である。なお、計算機ノード100Aの構成要素それぞれの数は特に限定されず、他の構成要素、例えば、入出力装置が含まれていてもよい。
プロセッサ101が実行するプログラム(命令コード)及びプログラムが使用する情報は、例えば、記憶ドライブ103に格納され、メモリ102にロードされる。プロセッサ101は、メモリ102に格納されているプログラムを実行する(プログラム内の指令に従って動作する)ことによって、所定の機能を実現する。プロセッサ101は、1又は複数のプロセッサユニット又はプロセッサコアを含むことができる。他の計算機ノードも、上記構成要素を含むことができる。これら構成要素の数は特に限定されない。
各計算機ノード上では、仮想マシンが動作する仮想環境を構築する仮想化ソフトウェアが動作している。各計算機ノードは、仮想化ソフトウェア上で仮想マシンを実行することができる。仮想化の方式は特に限定されず、例えば、ホスト型、ハイパーバイザ型、又はコンテナ型のいずれでもよい。さらに、各計算機ノードは、ボリュームを格納することができる。計算機ノードに格納されているボリュームの記憶領域は、当該計算機ノードの記憶ドライブから与えられる。
任意の計算機ノードは、当該計算機ノード及び任意の他の計算機ノードに格納されているボリュームにアクセスすることができる。したがって、ある計算機ノードで稼働している仮想マシンは、当該計算機ノード及び他の計算機ノードに格納されているボリュームにアクセスすることができる。
以下に説明する構成例において、各ボリュームは、一つの仮想マシンにマウントされ、それらは相互に関連付けられている。仮想マシンは、マウントされているボリュームにアクセスする。複数のボリュームが、一つの仮想マシンにマウントされ得る。仮想マシンは、マウントされている1以上のボリュームそれぞれにアクセスする。仮想マシンは、例えば、所定のサーバ機能を有する仮想マシンである。
さらに、計算機システムは、計算機ノード間において、稼働中の仮想マシン及びボリュームを移動することができる。つまり、仮想マシンは、その移動期間においても、要求されている処理を実行することができる。また、ボリュームの移動期間において、そのボリュームのデータに対してアクセスが可能である。仮想マシン及びボリュームを、ソフトウェアリソース又は単にリソースとも呼ぶ。
移動元ノードから移動先ノードへの仮想マシンの移動において、移動(コピー)完了前までは、移動元ノードの仮想マシンが動作し、移動(コピー)完了後に、移動先ノードの仮想マシンが動作を開始する。移動後に、移動元ノードの仮想マシンは消去される。移動元ノードから移動先ノードへのボリュームの移動において、移動(コピー)完了前までは、移動元ノードのボリュームがアクセスされ、移動完了後に、移動先ノードのボリュームがアクセスされる。移動後に、移動元ノードのボリュームは消去される。
計算機システムの一例は、HIC(Hyper Converged Infrastructure)とも呼ばれる、ハイパーコンバージドシステムである。上述のように、計算機ノードはそれぞれローカルの記憶ドライブを含み、ネットワークを介して接続されて、クラスタを構成する。
計算機システムには、ストレージ仮想化技術が適用され、クラスタ内の計算機ノードのローカルストレージ(記憶ドライブ)を、一つの仮想ボリュームプール(仮想ストレージプールとも呼ぶ)に見せる。クラスタ全体の記憶ドライブが、一つのストレージプールとして管理、運用される。各ボリュームは、仮想ボリュームプールに含まれる。データは、複数の計算機ノードに分散して格納される。ストレージ機能は、仮想化ソフトウェア上で動作する仮想マシン又は仮想化ソフトウェアが担うことができる。
計算機システムは、所定時、例えば、定期的、管理者からの指示に応じて、ノード増設又は減設時等に、ソフトウェアリソースの再配置、つまり、仮想マシン及びボリュームの移動を実行する。以下において、このリソース再配置のスケジューリングの手法を説明する。
一つ又は複数の計算機が、リソース再配置のスケジューリングを実行し得る。スケジューリングを実行する計算機は、クラスタ内の計算機ノードであってもよく、仮想マシンを実行することなく、管理のみを実行する計算機であってもよい。以下に説明する例においては、クラスタ内に含まれる一つの計算機ノードが、リソース再配置のスケジューリングを実行するものとする。
クラスタ内での、リソース再配置は、移動元ノード及び移動先ノードにリソース移動の負荷を与えるため、それらのI/O性能を低下させる。そのため、リソース再配置における移動元ノード及び移動先ノードの負荷の高騰を抑制することが望まれる。本明細書の一実施形態は、仮想マシンとボリュームのローカリティに基づき、リソース再配置のスケジュールを決定する。これにより、リソース再配置における移動元ノード及び移動先ノードの負荷の高騰を抑制する。
ローカリティが有る状態は、互いに関連付けられた仮想マシン及びボリュームが、同一ノードに存在している状態である。仮想マシンは、関連付けられているボリュームにアクセスする。関連付けられている仮想マシンとボリュームが異なるノードに存在する場合、その状態はローカリティが無い状態である。仮想マシンが複数のボリューム関連付けられている場合、当該仮想マシンと全ての関連付けられたボリュームが同一ノードに存在する状態が、ローカリティが有る状態である。なお、以下においては、説明の容易のため、各仮想マシンには、一つのボリュームのみが関連付けられているものとする。
ローカリティが有る状態において、同一ノード内で仮想マシンとボリューム(記憶ドライブ)との間のI/Oが完結する。そのため、ローカリティが有る状態は、ローカリティが無い状態と比べ、ノードのCPU負荷及びI/O負荷ともに、低負荷及び低遅延となる。
このように、ローカリティが無い場合は、ローカリティが有る場合に比べてノードの負荷が高くなるため、計算機ノードは、リソース移動前後の状態を参照し、ローカリティが有る状態の期間が長くなるようにリソース再配置のスケジューリングを行う。ローカリティの変化を踏まえてリソース再配置のスケジュールを決定する事で、ノードの負荷の高騰を抑えつつリソースを移動することができる。
後述するように、本明細書の一実施形態は、ローカリティの変化に加えて、移動元ノード及び移動先ノードの負荷状況に基づき、リソース再配置のスケジュールを決定する。これにより、移動元及び移動先ノードの負荷が閾値を超える可能性を低減できる。なお、移動先及び移動元ノードの負荷状況は参照されなくてもよい。
図2は、リソース移動の例を示す。図2の構成例において、ノード300A、300B及び300Cは同一クラスタ301に含まれる。図2は、ノード300Aからノード300Cに、仮想マシン(3)305及びボリューム(3)307を移動する例を示す。
図2において、数字を囲む矩形は仮想マシンを示し、一つの仮想マシンが例として符号305で指示されている。また、数字を囲む円柱はボリュームを示し、一つのボリュームが例として符号307で指示されている。同一の数字の仮想マシン305及びボリュームが互いに関連付けられている。
図2の構成例において、仮想マシン(1)305から仮想マシン(3)305、及び、ボリューム(1)307からボリューム(3)307は、ノード300Aに存在している。仮想マシン(4)305、及び、ボリューム(4)307からボリューム(6)307は、ノード300Bに存在している。
仮想マシン(5)305から仮想マシン(9)305、及び、ボリューム(7)307からボリューム(9)307は、ノード300Cに存在している。ボリューム(1)307からボリューム(9)307は、一つの仮想ボリュームプール302に含まれている。
仮想マシン(3)305及びボリューム(3)307を移動する前において、仮想マシン(5)305及びボリューム(5)307、並びに、仮想マシン(6)305及びボリューム(6)307はローカリティが無い状態である。他の互いに関連付けられた仮想マシン305及びボリューム307のペアは、ローカリティが有る状態である。ノード300A、300B及び300Cにおいて、格納されている仮想マシンの動作に伴う外部ネットワークを介したI/O負荷303A、303B及び303Cが存在している。
仮想マシン(3)305及びボリューム(3)307を、移動元ノード300Aから移動先ノード300cに移動すると、それらは、ローカリティが有る状態から、ローカリティが有る状態になる。
他の例において、仮想マシン(3)305及びボリューム(3)307の一方のみを他のノードに移動すると、それらのローカリティは、有りの状態から無しの状態に変化する。また、仮想マシン(3)305及びボリューム(3)307をそれぞれ異なるノードに移動すると、それらのローカリティは、有りの状態からローカリティが無しの状態に変化する。
リソース移動は、仮想マシンのみを移動する、ボリュームのみを移動する、又は、互いに関連付けられている仮想マシン及びボリュームの双方を移動することができる。例えば、仮想マシン(5)305のみを、移動元ノード300Cから移動先ノード300Bに移動すると、仮想マシン(5)305及びボリューム(5)は、ローカリティが無い状態からローカリティが有る状態に変化する。ボリューム(5)307のみを、移動元ノード300Bから移動先ノード300Cに移動すると、仮想マシン(5)305及びボリューム(5)のローカリティは、無しの状態から有りの状態に変化する。
仮想マシン(5)305及びボリューム(5)307を同一のノードに移動すると、それらのローカリティは、無しの状態から有状態に変化する。仮想マシン(5)305及びボリューム(5)307を、それぞれ異なるノードに移動すると、それらはローカリティが無い状態からローカリティが無い状態になる。
上述のように、リソース移動の態様に応じて、様々なローカリティの状態遷移が存在する。図3A及び3Bは、リソース移動とローカリティの関係を示す。移動するリソース別に、リソース移動に伴い発生するローカリティの状態遷移が示されている。図3A及び3Bにおいて、VMを囲む矩形は仮想マシンの移動期間を表し、VOLを囲む矩形はボリュームの移動期間を表す。
図3Aにおいて、リソース移動351から353は、仮想マシンのみを移動するケースを示す。仮想マシンの移動完了時にローカリティが変化する。リソース移動351において、ローカリティは、無い状態から無い状態に移行する。具体的には、仮想マシンは、関連付けられているボリュームと異なる移動元ノードから、そのボリュームと異なる移動先ノードに移動される。
リソース移動352において、ローカリティは、有る状態から無い状態に移行する。具体的には、仮想マシンは、関連付けられているボリュームと同一の移動元ノードから、そのボリュームと異なる移動先ノードに移動される。リソース移動353において、ローカリティは、無い状態から有る状態に移行する。具体的には、仮想マシンは、関連付けられているボリュームと異なる移動元ノードから、そのボリュームと同一の移動先ノードに移動される。
リソース移動354から356は、ボリュームのみを移動するケースを示す。ボリュームの移動完了時にローカリティが変化する。リソース移動354において、ローカリティは、無い状態から無い状態に移行する。具体的には、ボリュームは、関連付けられている仮想マシンと異なる移動元ノードから、その仮想マシンと異なる移動先ノードに移動される。
リソース移動355において、ローカリティは、有る状態から無い状態に移行する。具体的には、ボリュームは、関連付けられている仮想マシンと同一の移動元ノードから、その仮想マシンと異なる移動先ノードに移動される。リソース移動356において、ローカリティは、無い状態から有る状態に移行する。具体的には、ボリュームは、関連付けられている仮想マシンと異なる移動元ノードから、その仮想マシンと同一の移動先ノードに移動される。
図3Bは、互いに関連付けられている仮想マシン及びボリュームの双方を移動するケース357~364を示す。リソース移動357及び358は、ローカリティ無からローカリティ有への状態遷移の例である。仮想マシン及びボリュームは異なる移動元ノードから同一の移動先ノードに移動される。
リソース移動357は、ボリュームを移動した後に、仮想マシンを移動する。ボリューム及び仮想マシンの移動完了時に、ローカリティは無の状態から有の状態に遷移する。リソース移動358は、仮想マシンを移動した後に、ボリュームを移動する。仮想マシン及びボリュームの移動完了時に、ローカリティは無の状態から有の状態に遷移する。
リソース移動359及び360は、ローカリティ有からローカリティ無への状態遷移の例である。仮想マシン及びボリュームは同一の移動元ノードから異なる移動先ノードに移動される。リソース移動359は、ボリュームを移動した後に、仮想マシンを移動する。ボリュームの移動完了時に、ローカリティは有の状態から無の状態に遷移する。リソース移動360は、仮想マシンを移動した後に、ボリュームを移動する。仮想マシンの移動完了時に、ローカリティは有の状態から無の状態に遷移する。
リソース移動361及び362は、ローカリティ無からローカリティ無への状態遷移の例である。仮想マシン及びボリュームは異なる移動元ノードから異なる移動先ノードに移動される。リソース移動361は、ボリュームを移動した後に、仮想マシンを移動する。リソース移動360は、仮想マシンを移動した後に、ボリュームを移動する。リソース移動361及び362の間、ローカリティは常に無の状態である。
リソース移動363及び364は、ローカリティ有からローカリティ有への状態遷移の例である。仮想マシン及びボリュームは、同一の移動元ノードから、同一の移動先ノードに移動される。
リソース移動363は、ボリュームを移動した後に、仮想マシンを移動する。ボリュームの移動完了時に、ローカリティは有の状態から無の状態に遷移する。その後の仮想マシンの移動期間において、ローカリティは無の状態であり続ける。仮想マシンの移動完了時に、ローカリティは、無の状態から有の状態に遷移する。
リソース移動364は、仮想マシンを移動した後に、ボリュームを移動する。仮想マシンの移動完了時に、ローカリティは有の状態から無の状態に遷移する。その後のボリュームの移動期間において、ローカリティは無の状態であり続ける。ボリュームの移動完了時に、ローカリティは、無の状態から有の状態に遷移する。
図3Bを参照して説明したように、互いに関連付けられた仮想マシン及びボリュームの移動は、仮想マシンとボリュームから先に移動するリソースを選択できる。ノードの負荷の観点からは、リソース移動期間において、ローカリティ有の期間が長い方が良い。ボリュームの移動期間は、仮想マシンの移動期間より長い。
リソース移動359、360、363及び364が示すように、ローカリティが有の状態からの仮想マシン及びボリュームの双方の移動においては、先にボリュームを移動させた方が、ローカリティが無い時間が短い。そのため、本明細書の一実施形態は、ローカリティ有の状態から仮想マシン及びボリュームの双方を移動する場合、ボリュームを先に移動した後に、仮想マシンを移動する。
具体的には、本明細書の一実施形態は、ローカリティ有の状態からローカリティ無の状態遷移を引き起すリソース移動は、リソース移動359が示すように、ボリュームを移動した後に仮想マシンを移動する。さらに、ローカリティ有の状態からローカリティ有の状態遷移を引き起すリソース移動は、リソース移動363が示すように、ボリュームを移動した後に仮想マシンを移動する。なお、これらの一方のみの場合に、ボリュームを先に移動すると決定されてもよい。
上記以外のリソース移動のケースにおいては、仮想マシンとボリュームのいずれを先に移動しても、ローカリティの有無の期間は変化しない。そのため、本明細書の一実施形態は、互いに関連付けられた仮想マシン及びボリュームの双方の移動においては、常にボリュームを先に移動した後に仮想マシンを移動すると決定してよい。
リソース移動期間において、移動元ノード及び移動先ノードの負荷は、仮想マシンの通常動作に伴う負荷とリソース移動の負荷の合計である。計算機システムの稼働状態を維持しつつ、リソース移動を行うためには、リソース移動期間において、移動元ノード及び移動先ノードの双方において、負荷が大きすぎないことが重要である。
そこで、本明細書の一実施形態は、リソース移動期間における移動元ノード及び移動先ノードの通常負荷及び移動負荷の合計を推定し、その推定結果に基づいてリソース再配置のスケジュールを実行する。リソースの移動について、計算機ノードの負荷状況及びローカリティに基づきリソース再配置(リソース移動)のスケジュールを決定することで、より適切なスケジューリングが実現可能である。
計算機ノードにおける主な二つの負荷が存在する。一つはCPU負荷であり、他の一つは外部ネットワークとの間のI/O負荷である。CPU負荷は、例えばCPU使用率で表すことができ、I/O負荷は、IOPSで表すことができ、他のノードや外部ネットワークとの間のI/Oの負荷である。本明細書の一実施形態は、リソース移動期間において、CPU負荷及びI/O負荷の双方が閾値未満となるように、リソース移動のスケジューリングを実行する。これにより、リソース移動期間において計算機ノードのより適切な動作を可能とする。設計によっては、CPU負荷又はI/O負荷の一方のみが参照されてもよい。
図4A及び4Bは、それぞれ、三つのノードのCPU負荷の所定期間内の時間変化及びI/O負荷の所定期間内の時間変化の推定値を示す。図4Aのグラフにおいて、横軸は時間を示し、縦軸はCPU負荷推定値を示す。図4Bのグラフにおいて、横軸は時間を示し、縦軸はI/O負荷推定値を示す。図4A及び4Bは、ノード1からノード3へのリソース移動における負荷推定値を示す。実線はノード1の負荷を示し、破線はノード2の負荷を示し、一点鎖線はノード3の負荷を示す。
仮想マシン及びボリュームの移動は、それぞれ、移動元ノード及び移動先ノード対して、CPU負荷及びI/O負荷を与える。したがって、仮想マシン及びボリュームの移動期間においては、CPU負荷及びI/O負荷が増加する。ノード1及びノード3の負荷推定値は、通常動作による負荷推定値と、リソース移動による負荷推定値との合計を示す。ノード2の負荷推定値は、通常動作における負荷推定値のみを示す。
通常動作における負荷の推定値は、例えば、過去の負荷履歴情報に基づき決定できる。一例は、過去の所定期間の負荷の平均値である。負荷の時間変化の推定値の所定期間は、例えば、一日、一週間又は一月である。
例えば、仮想マシン及びボリュームの移動における負荷(単位時間当たりの負荷)は、データ転送速度に応じて、移動元ノード及び移動先ノードそれぞれに対して予め設定されている。移動期間はノード間のデータ転送速度及び仮想マシン及びボリュームのサイズに応じて計算できる。なお、任意の方法により移動負荷及び移動期間の推定を行ってよい。
本明細書の一実施形態は、CPU負荷及びI/O負荷の履歴情報に基づく推定値と、リソース移動によるCPU負荷及びI/O負荷の増加量の推定値との合計が、それぞれの閾値未満となる期間を、当該リソースの移動期間と決定する。負荷合計は、移動元及び移動先ノードにおいて閾値未満であることが要求される。
図4Aにおいて、閾値401は、ノードに対して要求されるリソース移動中のCPU負荷上限値を示す。図4Bにおいて、閾値402は、ノードに対して要求されるリソース移動中のI/O負荷上限値を示す。図4A及び4Bは、移動期間D1において、ノード1及びノード3において、CPU負荷及びI/O負荷の余裕が存在することを示している。このように、過去の性能データを用いて各ノードの負荷変化を推定し、さらに移動時の負荷上昇を考慮することで、仮想マシン及びボリュームの適切な移動スケジューリングを行うことができる。
上述のように、移動元ノード及び移動先ノードの負荷は時間変化する。そのため、リソース移動元ノードと移動先ノードのいずれかの負荷が高く、所定期間内においてリソースを直接移動できない場合があり得る。
後述するように、本明細書の一実施形態は、移動元及び移動先ノードの負荷時間変化から、負荷が閾値未満の移動期間が存在しない場合、負荷に余裕がある他の仲介ノードを検索する。計算機システムは、一時的に余裕のある仲介ノードへリソースを一時的に移動し、仲介ノードを経由してリソース移動を完了させる。これにより、I/O負荷とリソース移動の競合による性能影響を低減しつつ、予め定められた所定期間内でリソース移動が完了するようスケジューリングできる。なお、再配置を実行可能な所定期間は、負荷推定値の時間変化を示す期間内の一部又は全部である。
以下において、リソース再配置のスケジューリング方法をより具体的に説明する。図5は、計算機システムにおいて、ソフトウェアリソースの再配置(移動)のスケジューリングを実行する計算機ノードが格納する、管理情報及び処理プログラムを示す。図5に示す情報の少なくとも一部は、他の計算機ノードと共有されている。図5は、メモリ102に格納されているデータを便宜的に示すが、これらデータの少なくとも一部は記憶ドライブ103に格納されていてもよく、また、これらデータの少なくとも一部は記憶ドライブ103からロードされてもよい。
管理情報210は、リソース配置情報211、リソース移動スケジュール情報212、負荷情報(マスタ)213、負荷情報(ワーク用)214、及び負荷情報(テンポラリ)215を含む。処理プログラム220は、プライオリティ決定プログラム221、リソース移動スケジュール決定プログラム222、及び負荷情報生成プログラム224を含む。
リソース配置情報211は、計算機システムに含まれるノード及びノードそれぞれに現在格納されている仮想マシン及びボリュームの情報を示す。リソース配置情報211は、リソース移動負荷及び移動期間の計算のために参照すべき仮想マシン及びボリュームについての情報を示す。リソース配置情報211は、また、仮想マシンそれぞれに関連付けられているボリュームを示す。
リソース移動スケジュール情報212は、リソース移動それぞれの情報を示す。具体的には、移動対象リソース、移動元ノード、移動先ノード、プライオリティ及び移動開始時刻を示す。以下に説明する例において、移動対象リソース、移動元ノード及び移動先ノードは、リソース再配置スケジューリングの前に、他のシステム機能又は管理者によって決定されている。処理プログラム220は、プライオリティ及び移動開始時刻を決定する。
負荷情報(マスタ)213は、各ノードの通常動作時のCPU負荷推定値の時間変化及びI/O負荷推定値の時間変化を示す。負荷情報(ワーク用)214は、移動元ノード及び移動先ノードの間の直接リソース移動のスケジューリングのため、スケジュール決定プログラム222により作成及び使用される。リソース移動スケジュール決定プログラム222は、負荷情報(マスタ)213をコピーして、初期状態の負荷情報(ワーク用)214を作成し、リソース再配置スケジュールを決定するために、リソース移動負荷によって負荷情報(ワーク用)214を更新する。
負荷情報(テンポラリ)215は、仲介ノードを介したリソース移動のスケジューリングのため、スケジュール決定プログラム222により作成及び使用される。リソース移動スケジュール決定プログラム222は、負荷情報(ワーク用)214をコピーして、初期状態の負荷情報(テンポラリ)215を作成し、定速移動スケジュールを決定するために、リソース移動負荷によって負荷情報(テンポラリ)215を更新する。
プライオリティ決定プログラム221は、リソース再配置スケジューリングにおいて、リソース移動それぞれのプライオリティを、それらのローカリティ変化に基づき決定する。リソース移動スケジュール決定プログラム222は、プライオリティ並びに移動先及び移動元ノードの負荷推定値に基づいて、リソース移動それぞれの開始時刻を決定する。リソース移動スケジュール決定プログラム222は、プライオリティが高い移動を優先して移動期間を決定する。負荷情報生成プログラム224は、負荷情報(マスタ)213を生成する。
図6は、リソース再配置スケジューリングの開始前(初期状態)のリソース移動スケジュール情報212の構成例を示す。各レコードが、所定期間内に実行すべきリソース移動の情報を示す。リソース移動スケジュール情報212は、時刻欄451、プライオリティ欄452、リソース欄453、移動元欄454及び移動先欄455を含む。
時刻欄451は、リソース移動の開始時刻を示す。プライオリティ欄452は、プライオリティ決定プログラム221により決定されたリソース移動のプライオリティを示す。時刻欄451及びプライオリティ欄452の値は、処理プログラム220により入力される。
リソース欄453は、移動対象のリソースを示す。移動対象は、仮想マシンのみ、ボリュームのみ、又は仮想マシン及びボリュームである。移動元欄454は、リソースの移動元ノードを示す。移動先欄455は、リソースの移動先ノードを示す。リソース欄453、移動元欄454及び移動先欄455の値は、リソース再配置スケジューリング前に設定されている。
図7は、プライオリティ決定プログラム221による、プライオリティ決定処理例のフローチャートを示す。プライオリティ決定プログラム221は、リソース移動スケジュール情報212が示すリソース移動(レコード)を順次選択して、それぞれのプライオリティを決定する。以下の説明において、数字が小さい程プライオリティが高いものとする。
プライオリティ決定プログラム221は、未処理のレコードをリソース移動スケジュール情報212から選択して、リソースの移動前後のローカリティの変化を決定する。ローカリティの決定方法は上述の通りである。互いに関連付けられている仮想マシンとボリュームが同一ノードに格納されている場合、ローカリティは有りの状態であり、そうでない場合はローカリティが無い状態である。
移動対象リソースが互いに関連付けられているリソースの一部のみ(仮想マシン又はボリュームのみ)である場合、プライオリティ決定プログラム221は、リソース配置情報211を参照して移動対象リソースに関連付けられている他のリソースの現在ノードを知ることができる。
ローカリティが無の状態から有の状態に変化する場合(S101:無から有)、プライオリティ決定プログラム221は、レコードが示す移動対象リソースを判定する(S102)。移動対象が仮想マシンのみである場合(S102:VMのみ)、プライオリティ決定プログラム221は、当該レコード(リソース移動)のプライオリティを1と決定する。プライオリティ決定プログラム221は、決定したプライオリティの値を、リソース移動スケジュール情報212に設定する(S111)。
移動対象がボリュームのみである場合(S102:VOLのみ)、プライオリティ決定プログラム221は、当該レコード(リソース移動)のプライオリティを2と決定する。プライオリティ決定プログラム221は、決定したプライオリティの値を、リソース移動スケジュール情報212に設定する(S112)。
移動対象が互いに関連付けられている仮想マシン及びボリュームである場合(S102:VMとVOLの両方)、プライオリティ決定プログラム221は、当該レコード(リソース移動)のプライオリティを3と決定する。プライオリティ決定プログラム221は、決定したプライオリティの値を、リソース移動スケジュール情報212に設定する(S113)。
ステップS101において、ローカリティが有の状態から有の状態に変化する場合(S101:有から有)、プライオリティ決定プログラム221は、当該レコード(リソース移動)のプライオリティを4と決定する。ローカリティが有の状態から有の状態に変化する場合、互いに関連付けられている仮想マシン及びボリュームが移動される。プライオリティ決定プログラム221は、決定したプライオリティの値を、リソース移動スケジュール情報212に設定する(S114)。
ステップS101において、ローカリティが無の状態から無の状態に変化する場合(S101:無から無)、プライオリティ決定プログラム221は、プライオリティ決定プログラム221は、レコードが示す移動対象リソースを判定する(S103)。移動対象が仮想マシンのみである場合(S103:VMのみ)、プライオリティ決定プログラム221は、当該レコード(リソース移動)のプライオリティを5と決定する。プライオリティ決定プログラム221は、決定したプライオリティの値を、リソース移動スケジュール情報212に設定する(S115)。
移動対象がボリュームのみである場合(S103:VOLのみ)、プライオリティ決定プログラム221は、当該レコード(リソース移動)のプライオリティを6と決定する。プライオリティ決定プログラム221は、決定したプライオリティの値を、リソース移動スケジュール情報212に設定する(S116)。
移動対象が互いに関連付けられている仮想マシン及びボリュームである場合(S103:VMとVOLの両方)、プライオリティ決定プログラム221は、当該レコード(リソース移動)のプライオリティを7と決定する。プライオリティ決定プログラム221は、決定したプライオリティの値を、リソース移動スケジュール情報212に設定する(S117)。
ステップS101において、ローカリティが有の状態から無の状態に変化する場合(S101:有から無)、プライオリティ決定プログラム221は、プライオリティ決定プログラム221は、レコードが示す移動対象リソースを判定する(S104)。移動対象が仮想マシンのみである場合(S104:VMのみ)、プライオリティ決定プログラム221は、当該レコード(リソース移動)のプライオリティを8と決定する。プライオリティ決定プログラム221は、決定したプライオリティの値を、リソース移動スケジュール情報212に設定する(S118)。
移動対象がボリュームのみである場合(S104:VOLのみ)、プライオリティ決定プログラム221は、当該レコード(リソース移動)のプライオリティを9と決定する。プライオリティ決定プログラム221は、決定したプライオリティの値を、リソース移動スケジュール情報212に設定する(S119)。
移動対象が互いに関連付けられている仮想マシン及びボリュームである場合(S104:VMとVOLの両方)、プライオリティ決定プログラム221は、当該レコード(リソース移動)のプライオリティを10と決定する。プライオリティ決定プログラム221は、決定したプライオリティの値を、リソース移動スケジュール情報212に設定する(S120)。
次に、プライオリティ決定プログラム221は、リソース移動スケジュール情報212に、プライオリティが未定のリソース移動(レコード)が残っているか判定する(S131)。プライオリティが未定のリソース移動が残っていない場合(S131:NO)、処理は終了し、残っている場合(S131:YES)、フローはステップS101に戻る。
図8は、プライオリティが設定されたリソース移動スケジュール情報212の例を示す。上述のように、プライオリティ決定プログラム221は、図7のフローに従ってリソース移動レコードそれぞれのプライオリティを決定して、プライオリティ欄452に、それらを書き込む。このとき、リソース移動開始時刻は未定である。
リソース移動期間は、プライオリティが高い移動を優先して決定される。上述のように、プライオリティ決定プログラム221は、移動後の状態がローカリティ有の状態の移動に対して、移動後の状態がローカリティ無の状態の移動よりも高いプライオリティを与える。これにより、リソース移動スケジュール情報212が指定する複数のリソース移動を実行するリソース再配置期間において、ローカリティ有の比率を高めて、計算機システム全体の負荷を低減できる。これにより、リソース再配置期間における計算機システムの性能低下を抑制できる。
また、プライオリティ決定プログラム221は、移動後の状態がローカリティ有の状態の移動において、移動前の状態がローカリティ無の状態の移動に対して、移動前の状態がローカリティ有の状態の移動よりも高いプライオリティを与える。これにより、リソース移動スケジュール情報212が指定する複数のリソース移動を実行するリソース再配置期間において、ローカリティ有の比率を高めることができる。
また、プライオリティ決定プログラム221は、移動後の状態がローカリティ無の状態の移動において、移動前の状態がローカリティ無の状態の移動に対して、移動前の状態がローカリティ有の状態の移動よりも高い優先度を与える。これにより、リソース移動スケジュール情報212が指定する複数のリソース移動を実行するリソース再配置期間において、ローカリティ有の比率を高めることができる。
なお、移動後の状態がローカリティ有の状態の移動の全てに同一のプライオリティを与えてもよい。または、移動後の状態がローカリティ無の状態の移動の全てに同一のプライオリティを与えてもよい。
図7を参照して説明した例は、同一のローカリティ変化を示す移動に対して、移動対象に応じてプライオリティを設定する。具体的には、プライオリティ決定プログラム221は、移動時間が短い移動に対してより高いプライオリティを与える。つまり、仮想マシンのみの移動のプライオリティが最も高く、仮想マシンとボリュームの両方の移動のプライオリティが最も低い。これにより、より迅速に移動を完了できる。なお、全ての移動対象のケースに同一のプライオリティを与えてもよい。
他の例において、ローカリティ有からローカリティ無への移動において、プライオリティ決定プログラム221は、仮想マシンのみの移動に対して最も低いプライオリティを与えてもよい。仮想マシンのみの移動に対して最も低いプライオリティを与えることで、ローカリティ有で遷移する期間を長く保つことができ、ローカリティ有の比率を高めることができる。
上述のように、プライオリティ決定プログラム221は、ローカリティが有りの状態となるリソース移動を優先的に進めるように、プライオリティを決定する。その中でも、リソース移動自体の時間がかからない移動が高プライオリティになるようする。逆にローカリティが無くなる場合において、ローカリティ有からローカリティ無への移動のプライオリティを低くする。ローカリティが有りの状態からローカリティが無の状態となる移動のプライオリティが低くされる。
次に、負荷情報(マスタ)213の生成方法の例を説明する。図9は、負荷情報生成プログラム224により実行される、負荷情報(マスタ)213の生成方法例のフローチャートを示す。負荷情報生成プログラム224は、複数週のノードそれぞれのCPU負荷及びI/O負荷の履歴を取得し、それらの統計値により、負荷情報(マスタ)213を生成する。
図9に示す例は、1週間単位の負荷推定値の時間変化を設定し、1週間単位の負荷推定値は、S週間の負荷の時間変化測定値の平均である。負荷情報生成プログラム224は、1週間毎に、新たな測定値により負荷情報(マスタ)213を更新する。以下に説明する例において、全てのノードが、全てのノードについて負荷情報(マスタ)213を格納しているものとする。
負荷情報生成プログラム224は、ノード番号Nを設定する(S201)。ノード番号の初期値は、その最小値、例えば、1である。負荷情報生成プログラム224は、ノードNから、ノードNの1週間分の性能情報を取得し、他の全ノードの負荷情報(マスタ)213に同一の情報を格納する(S202)。負荷情報生成プログラム224は、過去S週間(例えば3週間)のノードNの性能情報の平均値を全ノードの負荷情報(マスタ)213に格納する(S203)。負荷情報生成プログラム224は、Nがノード番号の最大値に達している場合、処理を終了し、達していない場合、NをインクリメントしてステップS201に戻る。
図10は、一つのノードの最初の3週間における、負荷推定値の時間変化の計算方法の例を示す。負荷推定値は、3週間の測定値の平均値であるとする。最初の2週間は、3週間分の測定値が存在しない。そのため、第1週の負荷推定値は、1週目の測定値であり、第2周の負荷推定値は、1週目及び2周目の測定値の平均値である。
以下において、プライオリティ及びノードの負荷に基づくリソース再配置スケジューリングを具体的に説明する。図11A及び11Bは、それぞれ、三つのノードのCPU負荷の1週間の時間変化及びI/O負荷の1週間の時間変化の推定値を示す。図11Aのグラフにおいて、横軸は時間を示し、縦軸はCPU負荷推定値を示す。図11Bのグラフにおいて、横軸は時間を示し、縦軸はI/O負荷推定値を示す。図11A及び11Bは、ノード1からノード2へのリソース移動における負荷推定値を示す。実線はノード1の負荷を示し、破線はノード2の負荷を示し、一点鎖線はノード3の負荷を示す。
ノード1及びノード2の負荷推定値は、通常動作による負荷推定値と、リソース移動による負荷推定値との合計を示す。ノード3の負荷推定値は、通常動作における負荷推定値のみを示す。通常動作における負荷の推定値は、上述のように過去の3週間の測定値の平均である。
例えば、仮想マシン及びボリュームの移動における負荷(単位時間当たりの負荷)は、データ転送速度に応じて、移動元ノード及び移動先ノードそれぞれに対して予め設定されている。移動期間はノード間のデータ転送速度及び仮想マシン及びボリュームのサイズに応じて計算できる。なお、任意の方法により移動負荷及び移動期間の推定を行ってよい。
リソース移動スケジュール決定プログラム222は、移動元及び移動先それぞれにおいて、CPU負荷及びI/O負荷の履歴情報に基づく推定値と、リソース移動によるCPU負荷及びI/O負荷の増加量の推定値との合計を計算する。移動元及び移動先において、これら合計がそれぞれの閾値401、402未満となる期間を、当該リソースの移動期間と決定する。閾値401、402は、ノードに共通又はノードによって異なっていてもよい。
図11A及び11Bの例において、時刻T1から時刻T2の期間が、移動期間として選択される。リソース移動スケジュール決定プログラム222は、移動するリソース並びに移動元ノード及び移動先ノードの構成情報から移動期間の長さを推定する。移動期間の開始時刻として、例えば、移動負荷を含めたCPU負荷及びI/O負荷の推定値が閾値未満である期間において、最も早い時刻を選択してもよい。
リソース移動スケジュール決定プログラム222は、リソース移動スケジュール情報212から、プライオリティの高い順で、レコード(リソース移動)を順次選択し、可能な移動期間を決定する。上述のように、リソース移動は、移動負荷を移動元及び移動先のノードに与える。
したがって、リソース移動スケジュール決定プログラム222は、選択した移動レコードの移動期間の決定において、通常動作における負荷推定値と、それまでに決定した移動レコードの移動の負荷の合計を基準として、新たな移動レコードの移動スケジュールを決定する。
図12は、移動負荷の追加に伴うノード負荷推定値の変化の例を示す。グラフ501は、移動負荷を追加する前後の負荷推定値の時間変化を示す。具体的には、実線は、負荷情報(マスタ)213が示す移動元又は移動先ノードの通常動作における負荷推定値の時間変化を示す。破線は、通常動作の負荷推定値に第1の移動負荷を加えた負荷推定値の時間変化を示す。グラフ501において、移動負荷を追加した負荷推定値は、期間D2において常に閾値505未満である。したがって、この第1の移動は許容される。
グラフ502は、グラフ501における第1の移動負荷が追加された負荷推定値に、新たな第2の移動負荷を追加した負荷推定値の時間変化を示す。具体的には、実線は、グラフ501における第1の移動負荷が追加された負荷推定値の時間変化を示す。破線は、第1の移動負荷に加えて、さらに、第2の移動負荷を追加した負荷推定値の時間変化を示す。第2の移動負荷を追加した負荷推定値は、期間D2において閾値505を超える。したがって、この期間での第2の移動は禁止される。
リソース移動スケジュール決定プログラム222は、プライオリティの高い移動を優先して移動期間を決定する。これにより、複数のリソース移動を含むリソース再配置における計算機システムの負荷の高騰を抑えることができる。
図13は、リソース移動スケジュール決定プログラム222により実行される、リソース再配置スケジュール決定処理例のフローチャートを示す。リソース移動スケジュール決定プログラム222は、負荷情報(マスタ)213から、各ノードの負荷情報をコピーして、負荷情報(ワーク用)214を生成する(S301)。
リソース移動スケジュール決定プログラム222は、プライオリティを表す変数Pを設定する(S302)。変数Pの初期値は1である。次に、リソース移動スケジュール決定プログラム222は、リソース移動スケジュール情報212を参照し、プライオリティPのリソース移動(レコード)において、移動時刻が未定なリソース移動を検索する(S303)。
プライオリティPであって、移動時刻が未定なリソース移動が存在しない場合(S303:NO)、リソース移動スケジュール決定プログラム222は、プライオリティ変数Pをインクリメントし(S304)、プライオリティ変数Pの値が10(最大値)を超えているか判定する(S305)。プライオリティ変数Pの値が10を超えている場合(S305:YES)、処理は終了する。プライオリティ変数Pの値が10以下である場合(S305:NO)、フローはステップS303に戻る。
ステップS303において、移動時刻が未定のリソース移動が存在する場合(S303:YES)、リソース移動スケジュール決定プログラム222は、リソース移動要する時間を推定する(S306)。リソース移動スケジュール決定プログラム222は、例えば、リソースの容量、移動元ノード及び移動先ノードの構成情報、ノード間のネットワーク構成情報等から、移動に要する時間を推定する。ノード構成情報は、例えば記憶ドライブの速度の情報を含み、ネットワーク構成情報は例えば帯域の情報を含む。
次に、リソース移動スケジュール決定プログラム222は、リソース移動レコードが指定する移動元ノード及び移動先ノードが、リソース移動による負荷に耐えられる移動期間が存在するか判定する(S307)。
具体的には、リソース移動スケジュール決定プログラム222は、ステップS306で決定した長さの時間長において、負荷情報(ワーク用)214が示す負荷推定値に対して移動負荷を追加した値が閾値を超えない期間を検索する。移動負荷は、例えば、各ノードに対して、仮想マシン及びボリュームそれぞれに対して予め設定されている。
リソース移動による負荷に耐えられる移動期間が存在しない場合(S307:NO)、リソース移動スケジュール決定プログラム222は、移動対象リソースの移動時刻を登録せずに保留とする(S308)。その後、フローはステップS303に戻る。
リソース移動による負荷に耐えられる移動期間が存在する場合(S307:YES)、リソース移動スケジュール決定プログラム222は、移動開始時刻を決定して、リソース移動スケジュール情報212を更新する。移動開始時刻は、例えば、可能な最も早い時刻であってよい。移動開始時刻は、他の任意の方法に基づき決定されてよい。
リソース移動スケジュール決定プログラム222、決定した移動期間において、負荷情報(ワーク用)214の負荷推定値に移動負荷推定値を追加する(S310)。その後、フローはステップS303に戻る。
上述のように、ローカリティに基づくプライオリティが高いリソース移動から優先して移動期間を決定することで、複数のリソース移動を伴うリソース再配置の間に計算機システムの負荷の高騰を抑制できる。
図14Aは、ある一つのノードの負荷情報(マスタ)213の構成例を示し、図14Bは、図13を参照して説明したリソース再配置処理により更新された、同一ノードの負荷情報(ワーク用)214の構成例を示す。上述のように、負荷情報(マスタ)213は、リソース再配置処理期間外のノードの通常動作期間における負荷測定値から決定された、負荷推定値の時間変化を示す。図14Aの例は、1週間における1分毎のCPU負荷推定値及びI/O負荷推定値を示す。
上述のように、リソース移動スケジュール決定プログラム222は、リソース移動スケジュール情報212が移動期間の決定を指示するリソース(レコード)の移動負荷を、順次、負荷情報(ワーク用)214に追加することで、負荷情報(ワーク用)214を更新する。図14Bが示す負荷情報(ワーク用)214は、図14Aが示す負荷情報(マスタ)213に対してリソース移動負荷を追加することで、CPU負荷推定値及びI/O負荷推定値が更新されている。
図15は、リソース移動スケジュール情報212の時刻欄の値が更新される様子を例示的に示す。図13を参照して説明したように、リソース移動スケジュール決定プログラム222は、リソース移動スケジュール情報212のリソース移動レコードそれぞれの移動開始時刻を決定し、その値を登録する。リソース移動スケジュール情報212は、例えば、全てのノードに格納される。
図13のステップS307及びS308に示すように、ノード負荷が閾値未満の移動期間を見出すことができない場合、リソース移動の移動期間は保留される。以下において、移動期間が保留とされているリソースの移動方法の例を説明する。なお、他の例において、ノード負荷の最大値が最も小さくなる期間を移動期間として選択してもよい。
以下に説明する例は、リソースを、移動元ノードから負荷余裕を有する仲介ノードに移動し、さらに、その仲介ノードから移動先ノードにリソースを移動する。これにより、ノードの負荷が大きすぎるために移動元ノードから移動先ノードに直接移動できないリソースを、ノードの負荷が閾値未満に抑えつつ、移動することが可能となる。
図16は、仲介ノードを介した移動元ノードから移動先ノードへのリソース移動の例を模式的に示す。図3に示す移動元ノードから移動先ノードへのリソースの直接移動との差異を主に説明する。本例は、互いに関連付けられている仮想マシン(3)305及びボリューム(3)307を、移動元ノード300Aから移動先ノード300Cに、仲介ノード300Bを介して移動する。
図17は、仲介ノードを介したリソース移動における移動期間及び負荷情報の例を示す。図17の例において、移動元ノードはノード1、移動先ノードはノード3、そして中間ノードはノード2とする。グラフ601は、負荷情報(マスタ)213が示す、三つのノードの負荷推定値の時間変化を示す。実線はノード1の負荷を示し、破線はノード2の負荷を示し、一点鎖線は、ノード3の負荷を示す。各ノードの負荷は、閾値605未満であることが要求されている。
グラフ601において、火曜日0:00から水曜日2:00までの期間において、ノード1及びノード2の負荷は余裕があり、ノード3の負荷は閾値605を超えている。水曜日2:00から木曜日6:00までの期間において、ノード2及びノード3の負荷は余裕があり、ノード1の負荷の最大値は閾値605に近く、負荷の余裕がない。
本例は、水曜日2:00から木曜日6:00までの期間において、リソースを移動元ノード1から仲介ノード2へ移動し、水曜日2:00から木曜日6:00までの期間において、リソースを仲介ノード2から移動先ノード3へ移動すると仮定する。
グラフ602は、水曜日2:00から木曜日6:00までの期間においてリソースを移動元ノード1から仲介ノード2へ移動し、水曜日2:00から木曜日6:00までの期間において、リソースを仲介ノード2から移動先ノード3へ移動した場合の、ノード1、2及び3の負荷推定値の時間変化を示す。グラフ601に対して、ノード1からノード2へのリソース移動負荷が加算されている。いずれの期間においても、全てのノードの負荷が閾値605未満である。
図18は、図13に示すフローにおいて、移動期間を保留されたリソース移動の移動期間を決定する処理例のフローチャートを示す。リソース移動スケジュール決定プログラム222は、負荷情報(ワーク用)214から、各ノードの負荷情報をコピーして、負荷情報(テンポラリ)215を生成する(S401)。
リソース移動スケジュール決定プログラム222は、プライオリティを表す変数Pを設定する(S402)。変数Pの初期値は1である。次に、リソース移動スケジュール決定プログラム222は、リソース移動スケジュール情報212を参照し、プライオリティPのリソース移動(レコード)において、移動時刻が未定なリソース移動を検索する(S403)。
プライオリティPであって、移動時刻が未定なリソース移動が存在しない場合(S403:NO)、リソース移動スケジュール決定プログラム222は、プライオリティ変数Pをインクリメントし(S404)、プライオリティ変数Pの値が10(最大値)を超えているか判定する(S405)。プライオリティ変数Pの値が10を超えている場合(S405:YES)、処理は終了する。プライオリティ変数Pの値が10以下である場合(S405:NO)、フローはステップS403に戻る。
ステップS403において、移動時刻が未定のリソース移動が存在する場合(S403:YES)、リソース移動スケジュール決定プログラム222は、ノード番号変数Nを定義する(S406)。Nの初期値は1であり、ノード番号から移動元ノード及び移動先ノードは除外される。
次に、リソース移動スケジュール決定プログラム222は、移動元ノードからノード番号Nの仲介ノードへのリソース移動及び仲介ノードから移動先ノードへのリソース移動、それぞれに要する時間を推定する(S407)。推定方法は、図13を参照して説明した方法と同様でよい。
次に、リソース移動スケジュール決定プログラム222は、リソース移動レコードが指定する移動元ノード及びノード番号Nの仲介ノード(仲介ノードN)が、リソース移動による負荷に耐えられる移動期間が存在するか判定する(S408)。具体的には、リソース移動スケジュール決定プログラム222は、ステップS407で決定した長さの時間長において、負荷情報(テンポラリ)215が示す負荷推定値に対して移動負荷を追加した値が閾値を超えない期間を検索する。
リソース移動による負荷に耐えられる移動期間が存在しない場合(S408:NO)、リソース移動スケジュール決定プログラム222は、ノード番号変数Nをインクリメントし(S409)、さらに、変数Nの値が最大値より大きいか判定する(S410)。
変数Nが最大値より大きい場合(S410:YES)、リソース移動スケジュール決定プログラム222は、リソースの移動速度を制限して、移動元ノードから移動先ノードにリソースを移動すると決定する(S411)。移動元ノード及び移動先ノードの双方で負荷余裕が存在する時がない場合は、リソースの移動速度を制限することで、移動負荷(時間当たりの負荷)を小さくすることができる。ステップS411の後、フローはステップS415に進む。なお、通常移動速度での移動が不可能な場合、リソース移動スケジュール決定プログラム222は、仲介ノードを使用することなく、低速移動を行うと決定してもよい。
ステップS410において、変数Nが最大値以下である場合(S410:NO)、フローはステップS407に戻る。ステップS408において、リソース移動による負荷に耐えられる移動期間が存在する場合(S408:YES)、リソース移動スケジュール決定プログラム222は、決定した移動期間において、移動元ノードから仲介ノードへの負荷情報(テンポラリ)214の負荷推定値に、移動負荷推定値を追加する(S412)。
次に、リソース移動スケジュール決定プログラム222は、ノード番号Nの仲介ノード(仲介ノードN)及びリソース移動レコードが指定する移動先ノードが、リソース移動による負荷に耐えられる移動期間が存在するか判定する(S413)。具体的には、リソース移動スケジュール決定プログラム222は、ステップS407で決定した長さの時間長において、負荷情報(テンポラリ)215が示す負荷推定値に対して移動負荷を追加した値が閾値を超えない期間を検索する。
リソース移動による負荷に耐えられる移動期間が存在しない場合(S413:NO)、リソース移動スケジュール決定プログラム222は、負荷情報(テンポラリ)215をステップS412の更新前に戻して、ステップS409に進む。リソース移動による負荷に耐えられる移動期間が存在する場合(S413:YES)、リソース移動スケジュール決定プログラム222は、決定した移動期間において、仲介ノードから移動元ノードへの負荷情報(テンポラリ)214の負荷推定値に、移動負荷推定値を追加する(S414)。
次に、リソース移動スケジュール決定プログラム222は、移動元ノードから仲介ノードへの移動開始時刻及び仲介ノードから移動先ノードへの移動開始時刻それぞれを決定して、リソース移動スケジュール情報212を更新する(S415)。通常速度でのリソース移動における移動開始時刻の決定方法は、図13に示すフローチャートと同様よい。
ステップS411においてリソースを通常速度より低速で移動することが決定されている場合、リソース移動スケジュール決定プログラム222は、その移動速度に応じて移動に要する時間を決定し、さらに、移動期間を決定する。制限された移動速度は予め設定されていてもよく、移動負荷を追加する前の移動先ノード及び移動元ノードの負荷状態に応じて決定されてもよい。移動速度を制限してもノードの負荷を閾値未満とすることができない場合には、翌週のように、移動時期を次回以降のスケジュールに含める。
次に、リソース移動スケジュール決定プログラム222は、負荷情報(ワーク用)213に対して、負荷情報(テンポラリ)214の更新を反映する(S416)。移動元ノード、仲介ノード及び移動先ノードの負荷に対して、移動負荷が追加される。ステップS416の後、フローはステップS403に戻る。
上述のように、仲介ノードを介することで、移動元ノードから移動先ノードへ直接に移動できないリソースの移動が可能となる。また、仲介ノードの検索は、プライオリティが高いノードが優先され、プライオリティが高い順で仲介ノードが検索される。そのため、リソース再配置におけるノードの負荷を抑制できる。なお、プライオリティと関わりない順序で仲介ノードを検索してもよい。
図19は、負荷情報(テンポラリ)215の構成例を示す。上述のように、負荷情報(テンポラリ)215は、負荷情報(ワーク用)214をコピーして生成され、その後更新される。そのため、負荷情報(テンポラリ)215が有する欄は、負荷情報(ワーク用)214と同様である。
上述のように、負荷情報(テンポラリ)215は、仲介ノードを介したリソース移動の可否を検討するために使用される。仲介ノード候補によるリソース移動が不可能である場合、その仲介ノードについて更新された情報はキャンセルされる。負荷情報(テンポラリ)215は、リソース移動スケジュール決定プログラム222が実行されるノードのみに格納されてもよく、その他のノードにも格納されてよい。
図20は、仲介ノードを介したリソース移動の移動期間の決定に伴う、リソース移動スケジュール情報212の更新の例を模式的に示す。図20の例は、リソース移動レコード「1」が示す、移動元ノード1から移動先ノード3への、仮想マシン1及びボリューム1の移動の移動方法及び移動期間を決定する。
本例は、仲介ノード2を介して、リソースを移動する。そのため、リソース移動レコード「1」において、移動先ノードが、ノード3からノード1に変更され、さらに、仲介ノード2から移動先ノード3への移動を示すレコード「2」が挿入されている。移動元ノード1から仲介ノード2への移動開始時刻は、火曜日0:00に設定され、仲介ノード2から移動先ノード3への移動開始時刻は、水曜日2:00に設定されている。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。
100 計算機ノード、101 プロセッサ、102 メモリ、103 ドライブ、211 リソース配置情報、212 リソーススケジュール情報、213 負荷情報(マスタ)、214 負荷情報(ワーク用)、215 負荷情報(テンポラリ)、221 プライオリティ決定プログラム、222 リソース移動スケジュール決定プログラム、224 負荷情報生成プログラム、301 クラスタ、305 仮想マシン、307 ボリューム

Claims (11)

  1. 複数ノードを含むクラスタにおける、仮想マシンとボリュームを含むリソースの移動スケジュールを決定する装置であって、
    1以上のプロセッサと、
    1以上の記憶装置と、を含み、
    前記1以上の記憶装置は、複数レコードを含むリソース移動スケジュール情報を格納し、
    前記複数レコードの各レコードは、1以上のリソースそれぞれの移動元ノード及び移動先ノードを示し、
    前記1以上のプロセッサは、前記複数レコードそれぞれのプライオリティを、移動後のローカリティが有りのレコードのプライオリティが移動後のローカリティが無しのレコードのプライオリティより高くなるように決定し、
    前記ローカリティは、予め互いに関連付けられている仮想マシン及びボリュームが同一ノードに存在するか否かに基づき決定され、
    前記1以上のプロセッサは、前記複数レコードのプライオリティに基づいて、前記複数レコードの移動スケジュールを決定する、装置。
  2. 請求項1に記載の装置であって、
    前記1以上のプロセッサは、移動後のローカリティが有りで移動前のローカリティが無しのレコードのプライオリティが、移動後のローカリティが有りで移動前のローカリティが有りのレコードのプライオリティより高くなるように、前記複数レコードそれぞれのプライオリティを決定する、装置。
  3. 請求項1に記載の装置であって、
    前記1以上のプロセッサは、移動後のローカリティが無しで移動前のローカリティが無のレコードのプライオリティが、移動後のローカリティが無しで移動前のローカリティが有のレコードのプライオリティより高くなるように、前記複数レコードそれぞれのプライオリティを決定する、装置。
  4. 請求項1に記載の装置であって、
    前記複数レコードに含まれる第1レコードが、予め互いに関連付けられている仮想マシン及びボリュームを、同一移動元ノードから移動することを示し、
    前記1以上のプロセッサは、前記第1レコードが示す移動において、前記ボリュームの後に前記仮想マシンの移動を行うことを決定する、装置。
  5. 請求項4に記載の装置であって、
    前記第1レコードが、前記仮想マシン及び前記ボリュームを同一移動先ノードに移動することを示す場合及び異なる移動先ノードに移動することを示す場合のいずれにおいても、前記1以上のプロセッサは、前記ボリュームの後に前記仮想マシンの移動を行うことを決定する、装置。
  6. 請求項1に記載の装置であって、
    前記1以上のプロセッサは、移動前のローカリティが無しで移動後のローカリティが有りのレコードのプライオリティを、仮想マシンのみを移動するレコードのプライオリティが、ボリュームを移動するレコードのプライオリティより高くなるように決定する、装置。
  7. 請求項1に記載の装置であって、
    前記1以上の記憶装置は、前記複数ノードの負荷推定値の時間変化の情報を格納し、
    前記1以上のプロセッサは、第2レコードが示す移動元ノード及び移動先ノードの負荷推定値の時間変化の情報、並びに、前記第2レコードが示す移動の移動負荷推定値に基づいて、前記第2レコードが示す移動を所定期間内に実行可能か判定し、
    前記第2レコードが示す移動を前記所定期間内に実行不可能と判定した場合、前記第2レコードが示す移動元ノードから移動先ノードへのリソースの移動を前記所定期間内で仲介可能な仲介ノードを、前記複数ノードから検索する、装置。
  8. 請求項7に記載の装置であって、
    前記1以上のプロセッサは、前記仲介ノードを、前記プライオリティがより高いノードから検索する、装置。
  9. 請求項1に記載の装置であって、
    前記1以上のプロセッサは、所定期間内に実行不可能であると判定された第2レコードが示す移動を、より低い転送速度で行うと決定する、装置。
  10. 装置が、複数ノードを含むクラスタにおける、仮想マシンとボリュームを含むリソースの移動スケジュールを決定する方法であって、
    前記装置は、複数レコードを含むリソース移動スケジュール情報を格納し、
    前記複数レコードの各レコードは、1以上のリソースそれぞれの移動元ノード及び移動先ノードを示し、
    前記方法は、
    前記装置が、前記複数レコードそれぞれのプライオリティを、移動後のローカリティが有りのレコードのプライオリティが移動後のローカリティが無しのレコードのプライオリティより高くなるように決定し、
    前記ローカリティは、予め互いに関連付けられている仮想マシン及びボリュームが同一ノードに存在するか否かに基づき決定され、
    前記装置が、前記複数レコードのプライオリティに基づいて、前記複数レコードの移動スケジュールを決定する、方法。
  11. 計算機システムに処理を実行させるプログラムであって、
    前記計算機システムは、複数レコードを含むリソース移動スケジュール情報を格納し、
    前記複数レコードの各レコードは、1以上のリソースそれぞれの移動元ノード及び移動先ノードを示し、
    前記処理は、前記複数レコードそれぞれのプライオリティを、移動後のローカリティが有りのレコードのプライオリティが移動後のローカリティが無しのレコードのプライオリティより高くなるように決定し、
    前記ローカリティは、予め互いに関連付けられている仮想マシン及びボリュームが同一ノードに存在するか否かに基づき決定され、
    前記処理は、前記複数レコードのプライオリティに基づいて、前記複数レコードの移動スケジュールを決定する、プログラム。
JP2021008468A 2021-01-22 2021-01-22 リソースの移動スケジュールを決定する装置 Pending JP2022112614A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021008468A JP2022112614A (ja) 2021-01-22 2021-01-22 リソースの移動スケジュールを決定する装置
US17/470,057 US12067413B2 (en) 2021-01-22 2021-09-09 Apparatus for determining resource migration schedule

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021008468A JP2022112614A (ja) 2021-01-22 2021-01-22 リソースの移動スケジュールを決定する装置

Publications (1)

Publication Number Publication Date
JP2022112614A true JP2022112614A (ja) 2022-08-03

Family

ID=82495700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021008468A Pending JP2022112614A (ja) 2021-01-22 2021-01-22 リソースの移動スケジュールを決定する装置

Country Status (2)

Country Link
US (1) US12067413B2 (ja)
JP (1) JP2022112614A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116974700A (zh) * 2023-08-16 2023-10-31 北京志凌海纳科技有限公司 实现资源动态均衡的方法、系统、设备及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022112614A (ja) * 2021-01-22 2022-08-03 株式会社日立製作所 リソースの移動スケジュールを決定する装置
US11811862B1 (en) * 2023-04-26 2023-11-07 Dell Products L.P. System and method for management of workload distribution
US12047439B1 (en) * 2023-04-26 2024-07-23 Dell Products L.P. System and method for management of workload distribution in shared environment

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8042108B2 (en) * 2006-03-18 2011-10-18 International Business Machines Corporation Virtual machine migration between servers
US8230069B2 (en) * 2008-03-04 2012-07-24 International Business Machines Corporation Server and storage-aware method for selecting virtual machine migration targets
US8751738B2 (en) * 2010-02-08 2014-06-10 Microsoft Corporation Background migration of virtual storage
US8555278B2 (en) * 2011-05-02 2013-10-08 Symantec Corporation Method and system for migrating a selected set of virtual machines between volumes
US10007533B2 (en) * 2012-08-22 2018-06-26 V3 Systems Holdings, Inc. Virtual machine migration
KR101857511B1 (ko) * 2012-12-13 2018-06-20 후아웨이 테크놀러지 컴퍼니 리미티드 가상 머신 마이그레이션을 판정하는 방법 및 장치
US9417903B2 (en) * 2013-06-21 2016-08-16 International Business Machines Corporation Storage management for a cluster of integrated computing systems comprising integrated resource infrastructure using storage resource agents and synchronized inter-system storage priority map
US9537745B1 (en) * 2014-03-07 2017-01-03 Google Inc. Distributed virtual machine disk image deployment
US9348646B1 (en) * 2014-09-22 2016-05-24 Amazon Technologies, Inc. Reboot-initiated virtual machine instance migration
WO2016121005A1 (ja) * 2015-01-27 2016-08-04 株式会社日立製作所 管理計算機および計算機システムの管理方法
US10824455B2 (en) * 2016-12-02 2020-11-03 Nutanix, Inc. Virtualized server systems and methods including load balancing for virtualized file servers
US20200026576A1 (en) * 2017-01-19 2020-01-23 Nutanix, Inc. Determining a number of nodes required in a networked virtualization system based on increasing node density
WO2019012675A1 (ja) * 2017-07-13 2019-01-17 株式会社日立製作所 管理装置及び管理方法
US10831409B2 (en) * 2017-11-16 2020-11-10 International Business Machines Corporation Volume reconfiguration for virtual machines
US10664323B2 (en) * 2018-03-07 2020-05-26 Microsoft Technology Licensing, Llc Live migration of virtual machines in distributed computing systems
US11194620B2 (en) * 2018-10-31 2021-12-07 Nutanix, Inc. Virtual machine migration task management
US10831525B2 (en) * 2018-11-30 2020-11-10 Nutanix, Inc. Intelligent assignment of virtual machines to compute only or hyper converged nodes
US10846129B2 (en) * 2018-11-30 2020-11-24 Nutanix, Inc. Systems and methods for organizing on-demand migration from private cluster to public cloud
US10877791B2 (en) * 2018-11-30 2020-12-29 Nutanix, Inc. Live migration of virtual machines between compute only nodes and hyperconverged nodes
US11586457B2 (en) * 2020-01-15 2023-02-21 EMC IP Holding Company LLC Load balancing in a hyper-converged infrastructure (HCI) environment
JP7112437B2 (ja) * 2020-01-21 2022-08-03 株式会社日立製作所 ストレージシステムおよびデータ移行方法
JP7122332B2 (ja) * 2020-02-26 2022-08-19 株式会社日立製作所 情報処理システム及び方法
JP2022112614A (ja) * 2021-01-22 2022-08-03 株式会社日立製作所 リソースの移動スケジュールを決定する装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116974700A (zh) * 2023-08-16 2023-10-31 北京志凌海纳科技有限公司 实现资源动态均衡的方法、系统、设备及存储介质
CN116974700B (zh) * 2023-08-16 2024-04-09 北京志凌海纳科技有限公司 实现资源动态均衡的方法、系统、设备及存储介质

Also Published As

Publication number Publication date
US12067413B2 (en) 2024-08-20
US20220237016A1 (en) 2022-07-28

Similar Documents

Publication Publication Date Title
JP2022112614A (ja) リソースの移動スケジュールを決定する装置
JP7138126B2 (ja) リソース配置を最適化するための適時性リソース移行
JP5412599B2 (ja) 計算機システム、および、計算機システムにおける仮想計算機の最適配置方法
EP3594798B1 (en) Data storage method and device
US10055252B2 (en) Apparatus, system and method for estimating data transfer periods for job scheduling in parallel computing
JP6190969B2 (ja) マルチテナントリソース調停方法
US8365169B1 (en) Migrating a virtual machine across processing cells connected to an interconnect that provides data communication without cache coherency support
US10061781B2 (en) Shared data storage leveraging dispersed storage devices
CN105027068A (zh) 在存储系统中执行复制
US9823875B2 (en) Transparent hybrid data storage
CN108228482B (zh) 用于管理存储系统中的缓存设备的方法和系统
JP6293683B2 (ja) 計算機システム及び計算機システムの性能障害の対処方法
US9983806B2 (en) Storage controlling apparatus, information processing apparatus, and computer-readable recording medium having stored therein storage controlling program
US7194594B2 (en) Storage area management method and system for assigning physical storage areas to multiple application programs
JPWO2014007249A1 (ja) I/oノード及び複数の計算ノードに備えられたキャッシュメモリの制御方法
US9602590B1 (en) Shadowed throughput provisioning
JP7035858B2 (ja) マイグレーション管理プログラム、マイグレーション方法およびマイグレーションシステム
JP5780377B2 (ja) 情報処理システム、及びアプリケーションの移転方法
US20220058044A1 (en) Computer system and management method
JP6115575B2 (ja) データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム
KR101661475B1 (ko) 이기종 클러스터 상에서 하둡 부하 분산 방법, 이를 수행하기 위한 기록 매체 및 하둡 맵리듀스 시스템
US12032982B2 (en) Method for determining container to be migrated and non-transitory computer-readable medium
Rao et al. Virtual machine migration in cloud computing performance, issues and optimization methods
JP7332249B2 (ja) 移行先決定プログラム、装置、及び方法
US20240311002A1 (en) Scaling management apparatus and scaling management method for storage system including storage nodes