JP6123626B2 - 処理再開方法、処理再開プログラムおよび情報処理システム - Google Patents

処理再開方法、処理再開プログラムおよび情報処理システム Download PDF

Info

Publication number
JP6123626B2
JP6123626B2 JP2013211348A JP2013211348A JP6123626B2 JP 6123626 B2 JP6123626 B2 JP 6123626B2 JP 2013211348 A JP2013211348 A JP 2013211348A JP 2013211348 A JP2013211348 A JP 2013211348A JP 6123626 B2 JP6123626 B2 JP 6123626B2
Authority
JP
Japan
Prior art keywords
time
host
guest
computer
migration
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.)
Active
Application number
JP2013211348A
Other languages
English (en)
Other versions
JP2015075898A (ja
Inventor
聡一 繁田
聡一 繁田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013211348A priority Critical patent/JP6123626B2/ja
Priority to US14/458,382 priority patent/US9571584B2/en
Publication of JP2015075898A publication Critical patent/JP2015075898A/ja
Application granted granted Critical
Publication of JP6123626B2 publication Critical patent/JP6123626B2/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、処理再開方法、処理再開プログラムおよび情報処理システムに関する。
物理サーバの物理リソースを用いて仮想マシン(VM:Virtual Machine)を実行させる技術が知られており、例えばこのような物理サーバをVMホストと呼び、仮想マシンをVMゲストなどと呼ぶ。
また、VMホスト上で動作するVMゲストを他のVMホストへ移動させるマイグレーション技術が知られている。例えば、メンテナンス等でVMホストを停止や再起動する場合に、メンテナンス対象のVMホスト上で動作するVMゲストを別のVMホストへ移動させて、VMゲストが実行する業務を継続させる。
特開2007−179100号公報 国際公開第2004/086246号
しかしながら、上記技術では、VMゲストがマイグレーション後に処理を再開するまでに時間がかかる場合がある。
例えば、管理装置は、マイグレーションを開始すると、マイグレーション対象のVMゲストの処理を一時停止し、VMゲストが当該処理に使用するデータを移動元のVMホストから移動先のVMホストへ転送する。VMゲストは、マイグレーションが完了した後であっても、データ転送が完了するまで処理を再開することができず、データ転送量が多い場合には、処理再開までに時間がかかる。
また、マイグレーションが完了した場合に、VMゲストが、一時停止させていた処理を最初からやり直すことも考えられる。しかし、データの転送速度や残っている処理量等によっては、最初からやり直す場合よりもデータ転送の完了を待って処理を再開した方が処理全体を早く完了できる場合もある。
1つの側面では、マイグレーション後に処理を再開するまでの時間を短縮できる処理再開方法、処理再開プログラムおよび情報処理システムを提供することを目的とする。
1つの態様では、第1のコンピュータが、前記第1のコンピュータと異なる第2のコンピュータで実行される処理を中断させて前記第1のコンピュータで実行する場合に、前記処理が中断するまでに前記第2のコンピュータの記憶領域に格納したデータを前記第1のコンピュータへ転送する際にかかる第1の時間を算出する。第1のコンピュータが、前記中断した処理を最初から実行する際に用いるデータを該データが格納される領域から前記第1のコンピュータへ転送する際にかかる転送時間および前記中断するまでにかかった処理時間から第2の時間を算出する。第1のコンピュータが、前記第1の時間が前記第2の時間より早い場合には、前記中断した処理を中断した時点から再開し、前記第2の時間が前記第1の時間より早い場合には、前記中断した処理を最初から実行する。
本発明の一側面として、マイグレーション後に処理を再開するまでの時間を短縮できる。
図1は、実施例1に係るシステムの全体構成例を示す図である。 図2は、実施例1に係るクラウド管理サーバの機能構成を示す機能ブロック図である。 図3は、VMホスト管理テーブルに記憶される情報の例を示す図である。 図4は、VMゲスト管理テーブルに記憶される情報の例を示す図である。 図5は、物理ストレージ管理テーブルに記憶される情報の例を示す図である。 図6は、仮想ストレージ管理テーブルに記憶される情報の例を示す図である。 図7は、仮想ディスク管理テーブルに記憶される情報の例を示す図である。 図8は、帯域管理テーブルに記憶される情報の例を示す図である。 図9は、VMホストの階層構造の例を示す図である。 図10は、実施例1に係るVMホストの機能構成を示す機能ブロック図である。 図11は、実施例1に係るVMゲストの機能構成を示す機能ブロック図である。 図12は、アプリ特性テーブルに記憶される情報の例を示す図である。 図13は、再開判定を説明する図である。 図14は、実施例1に係る処理のシーケンス図である。 図15は、実施例1に係るクラウド管理サーバが実行する処理の流れを示すフローチャートである。 図16は、実施例1に係る移動元のVMホストが実行する処理の流れを示すフローチャートである。 図17は、実施例1に係る移動先のVMホストが実行するマイグレーション処理の流れを示すフローチャートである。 図18は、実施例1に係る移動先のVMホストが実行するI/O要求処理の流れを示すフローチャートである。 図19は、実施例1に係る移動対象のVMゲストが実行する処理の流れを示すフローチャートである。 図20は、実施例2に係る処理のシーケンス図である。 図21は、実施例2に係るクラウド管理サーバが実行する処理の流れを示すフローチャートである。 図22は、実施例2に係る移動元のVMホストが実行する処理の流れを示すフローチャートである。 図23は、実施例2に係る移動対象のVMゲストが実行する処理の流れを示すフローチャートである。 図24は、ハードウェア構成例を示す図である。
以下に、本願の開示する処理再開方法、処理再開プログラムおよび情報処理システムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
[全体構成図]
図1は、実施例1に係るシステムの全体構成例を示す図である。図1に示すように、このシステムは、ストレージ装置2、ストレージ装置3、クラウド管理サーバ10、VMホスト30、VMホスト60を有する。各VMホストは、仮想マシンであるVMゲストを動作させる。また、各装置は、ネットワーク5を介して接続される。
図1に示すシステムは、クラウドシステムを提供するクラウド事業者が提供するシステムである。具体的には、クラウド事業者は、クラウドシステムの利用者が所望するVMゲストを動作させるための環境を提供する。
クラウド利用者は、クラウド事業者が提供する環境をネットワーク5経由で利用する。具体的には、クラウド利用者が、端末等を用いてVMゲストの配備要求をクラウド管理サーバ10に送信すると、クラウド管理サーバ10が、図1に示した各装置を用いてVMゲストをシステム上に配備する。クラウド利用者は、配備されたVMゲストをネットワーク5経由で利用する。
ここで、クラウド事業者がVMゲストを配備する際に利用する各装置について説明する。クラウド管理サーバ10は、システム内の各ストレージ装置、VMホスト、VMゲストなどを管理するサーバ装置である。このクラウド管理サーバ10は、VMゲストの生成、削除、マイグレーションを実行するサーバ装置である。
ストレージ装置2は、VMホスト30やVMホスト30で動作する各VMゲストが使用するデータ等を記憶する記憶装置であり、VMホスト30とクラウド管理サーバ10とがアクセスすることができる。
ストレージ装置3は、VMホスト60やVMホスト60で動作する各VMゲストが使用するデータ等を記憶する記憶装置であり、VMホスト60とクラウド管理サーバ10とがアクセスすることができる。
なお、この例では、各VMホストと各ストレージ装置とが別々の筐体で実現される例を説明するが、これに限定されるものではない。例えば、各VMホストが内部にストレージ装置を有していてもよい。また、各VMホストで共有するストレージ装置を採用することもできる。
VMホスト30は、プロセッサ、メモリ、ハードウェアなどの物理リソースを用いてVMゲストを実行する物理サーバである。このVMホスト30で実行されるVMゲスト40は、ストレージ装置2にアクセスして、データの格納や読み出しを実行する。
同様に、VMホスト60は、プロセッサ、メモリ、ハードウェアなどの物理リソースを用いてVMゲストを実行する物理サーバである。このVMホスト60で実行されるVMゲスト70は、ストレージ装置3にアクセスして、データの格納や読み出しを実行する。
このようなシステムでは、クラウド事業者等の都合により、VMゲストをマイグレーションさせる場合がある。具体的には、VMホストにパッチを適用したり、VMホストの物理的な故障により部品の交換が発生したりして、VMホストを停止または再起動する場合に、VMゲストを別のVMホストにマイグレーションさせて、VMゲストの業務を継続させる。
そして、VMホストは、VMゲストのマイグレーションが発生した場合に、VMゲストの処理を中断させてマイグレーションさせることになるが、マイグレーション後に処理を再開するまでの時間を短縮できる。
具体的には、VMホストが動作させるVMゲストは、第2のVMホストから第1のVMホストに移動する前に使用していた記憶領域に記憶されるデータを、第2のVMホストから第1のVMホストに転送する場合にかかる第1の時間を算出する。また、VMゲストは、移動に伴って中断した処理の実行に用いるデータを第2のVMホストから第1のVMホストへ転送する場合にかかる転送時間と、中断するまでに実行された処理にかかった処理時間とから、第2の時間を算出する。その後、VMゲストは、第1の時間が第2の時間より早い場合には、中断した処理を中断した時点から再開し、第2の時間が第1の時間より早い場合には、中断した処理を最初から実行する。
したがって、VMゲストが、マイクレーション先で、マイグレーションで中断した途中データを転送して処理再開するまでの時間と、最初からやり直すまでにかかる時間を算出し、時間が早い方を選択するので、処理を早く再開できる。
[クラウド管理サーバの構成]
図2は、実施例1に係るクラウド管理サーバの機能構成を示す機能ブロック図である。図2に示すように、クラウド管理サーバ10は、通信制御部11、記憶部12、制御部20を有する。
通信制御部11は、他の装置の間の通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。例えば、通信制御部11は、利用者の端末からVMゲストの配備要求を受信し、クラウド管理者の端末やVMホストやVMゲストから各種要求を受信する。また、通信制御部11は、利用者の端末にVMゲストの配備結果を送信し、クラウド管理者の端末やVMホストやVMゲストから各種応答を送信する。
記憶部12は、メモリやハードディスクなどの記憶装置であり、制御部20が実行するプログラムなどを記憶する。この記憶部12には、VMホスト管理テーブル13、VMゲスト管理テーブル14、物理ストレージ管理テーブル15、仮想ストレージ管理テーブル16、仮想ディスク管理テーブル17、帯域管理テーブル18が記憶される。
VMホスト管理テーブル13は、クラウドシステム内の物理サーバであるVMホストに関する情報を管理するテーブルである。図3は、VMホスト管理テーブルに記憶される情報の例を示す図である。図3に示すように、VMホスト管理テーブル13は、「VMホストID、Pod ID、IP(Internet Protocol)アドレス、状態、VMゲスト割当り量、参照可能仮想ストレージID」を対応付けて記憶する。
ここで記憶される「VMホストID」は、VMホストを識別する識別子であり、例えばホスト名などである。「Pod ID」は、属するクラウドのグループを識別する識別子である。「IPアドレス」は、VMホストに設定されているIPアドレスである。「状態」は、VMホストの稼動状況を示す情報であり、稼動中の場合には「稼動中」、保守中の場合には「保守中」、停止中の場合には「停止中」が設定される。
「VMゲスト割当て量」は、VMホストで動作可能なVMゲストの最大数と、そのうちどのくらいのVMゲストが動作しているかを示す情報である。「参照可能仮想ストレージID」は、VMホストが参照することができる仮想ストレージを識別する識別子である。なお、仮想ストレージとは、例えば1つ以上の物理ストレージを用いて論理的に構築された仮想的なストレージである。
図3の場合、VMホストIDが「Host_001」であるVMホストには、クラウドグループ「A」に属し、IPアドレスとして「192.168.1.10」が設定されている。この「Host_001」であるVMホストは、「稼動中」であり、動作可能なVMの台数が「20台」でそのうち「5台」が動作中であり、「VS_001」の仮想ストレージにアクセスすることができる。
別例では、VMホストIDが「Host_101」であるVMホストには、クラウドグループ「B」に属し、IPアドレスとして「192.168.2.2」が設定されている。この「Host_101」であるVMホストは、「保守中」であり、動作可能なVMの台数が「12台」で1台も動作していない状態で、「VS_101」の仮想ストレージにアクセスすることができる。
VMゲスト管理テーブル14は、VMホスト上で動作するVMゲストに関する情報を記憶するテーブルである。図4は、VMゲスト管理テーブルに記憶される情報の例を示す図である。図4に示すように、VMゲスト管理テーブル14は、「VMゲストID、VMホストID、IPアドレス、状態、割当て仮想ディスクID」を対応付けて記憶する。
ここで記憶される「VMゲストID」は、VMゲストを識別する識別子である。「VMホストID」は、VMゲストを動作させるVMホストを識別する識別子であり、例えばホスト名などである。「IPアドレス」は、VMゲストに設定されているIPアドレスである。「状態」は、VMゲストの稼動状況を示す情報であり、稼動中の場合には「稼動中」、停止中の場合には「停止中」、マイグレーションン中の場合には「移動中」などが設定される。「割当て仮想ディスクID」は、VMゲストに割当てられた仮想ディスクを識別する識別子であり、VMゲストがアクセス可能な仮想ディスクの情報である。
例えば、図4の場合、VMゲストIDが「Guest_01」であるVMゲストは、VMホストIDが「Host_001」であるVMホスト上で動作しており、IPアドレスとして「192.168.10.20」が設定されており、現在は「停止中」である。このVMゲストは、「VDISK_001」で識別される仮想ディスクと「VDISK_002」で識別される仮想ディスクにアクセス可能であり、これらの仮想ディスクのデータを格納していることを示す。
また、VMゲストIDが「Guest_02」であるVMゲストは、VMホストIDが「Host_002」であるVMホスト上で動作しており、IPアドレスとして「192.168.11.30」が設定されており、現在は「稼働中」である。このVMゲストは、「VDISK_030」で識別される仮想ディスクにアクセス可能であり、これらの仮想ディスクのデータを格納していることを示す。
物理ストレージ管理テーブル15は、クラウドシステム上の物理ストレージに関する情報を記憶するテーブルである。図5は、物理ストレージ管理テーブルに記憶される情報の例を示す図である。図5に示すように、物理ストレージ管理テーブル15は、「ストレージID、IPアドレス(管理)、IPアドレス(アクセス)、状態、使用量」を対応付けて記憶する。
ここで記憶される「ストレージID」は、ストレージ装置を識別する識別子である。「IPアドレス(管理)」は、ストレージ装置の保守等に利用するIPアドレスであり、管理者端末がこのIPアドレスにアクセスして保守管理を行う。「IPアドレス(アクセス)」は、VMホストやVMゲストがアクセスするIPアドレスであり、ユーザ端末は、このIPアドレスにアクセスすることで、データの書き込みや読み出しを実行できる。
「状態」は、ストレージ装置の稼動状況を示す情報であり、稼動中の場合には「稼動中」、保守中の場合には「保守中」、停止中の場合には「停止中」が設定される。「使用量」は、物理ストレージ装置の使用容量を示す情報であり、最大容量および使用容量が設定される。
図5の場合、ストレージIDが「S_A01」であるストレージは、管理用のIPアドレスとして「192.168.100.2」が設定されており、アクセス用のIPアドレスとして「192.168.1.131」が設定されており、現在は「稼動中」である。そして、このストレージは、最大容量が2TBであり、そのうち300GBが使用されていることを示す。
仮想ストレージ管理テーブル16は、物理ストレージを用いて提供される仮想ストレージに関する情報を記憶するテーブルである。図6は、仮想ストレージ管理テーブルに記憶される情報の例を示す図である。図6に示すように、仮想ストレージ管理テーブル16は、「仮想ストレージID、物理ストレージID、使用量」を対応付けて記憶する。
ここで記憶される「仮想ストレージID」は、仮想ストレージを識別する識別子である。「物理ストレージID」は、仮想ストレージを提供する物理ストレージを識別する識別子である。「使用量」は、仮想ストレージ装置の使用容量を示す情報であり、最大容量および使用容量が設定される。
図6の場合、仮想ストレージIDが「VS_001」である仮想ストレージは、物理ストレージIDが「S_A01」である物理ストレージと「S_A02」である物理ストレージとによって提供される。この仮想ストレージの最大容量は4TBであり、そのうち750GBが使用されていることを示す。
仮想ディスク管理テーブル17は、VMゲストがアクセス可能な仮想ディスクに関する情報を管理するテーブルである。なお、仮想ディスクとは、例えば仮想ストレージによって提供される論理的な記憶領域である。図7は、仮想ディスク管理テーブルに記憶される情報の例を示す図である。図7に示すように、仮想ディスク管理テーブル17は、「仮想ディスクID、仮想ストレージID、容量」を対応付けて記憶する。
ここで記憶される「仮想ディスクID」は、仮想ディスクを識別する識別子である。「仮想ストレージID」は、仮想ディスクを保持する仮想ストレージを識別する識別子である。「容量」は、仮想ディスクの記憶容量である。
図7の場合、仮想ディスクIDが「VDISK_030」である仮想ディスクは、仮想ストレージIDが「VS_001」である仮想ストレージ上に存在し、10GBの容量が割り与えられていることを示す。
帯域管理テーブル18は、クラウド上の帯域を管理するテーブルである。図8は、帯域管理テーブルに記憶される情報の例を示す図である。図8に示すように、帯域管理テーブル18は、各Pod間の帯域を記憶する。例えば、Pod IDが「A」のグループとPod IDが「B」のグループとの間の回線は200Mbpsであることを示す。同様に、Pod IDが「A」のグループとPod IDが「C」のグループとの間の回線は100Mbpsであり、Pod IDが「B」のグループとPod IDが「C」のグループとの間の回線は500Mbpsであることを示す。
制御部20は、プロセッサなどの電子回路であり、クラウド管理サーバ10全体の処理を司る処理部である。この制御部20は、クラウド管理部21とマイグレーション実行部22とを有する。例えば、クラウド管理部21やマイグレーション実行部22は、制御部20が実行するプロセスの一例やプロセッサが有する電子回路の一例である。
クラウド管理部21は、図1に示したクラウドシステムを管理する処理部である。例えば、クラウド管理部21は、管理者等からVMホスト、VMゲスト、物理ストレージ、仮想ストレージ、仮想ディスク、帯域などの情報を管理者等から受け付けて、該当するテーブルを更新する。また、クラウド管理部21は、VMホストやVMゲストの状態、各ストレージやディスクの使用量を監視し、該当するテーブルを更新する。
マイグレーション実行部22は、VMゲストのマイグレーションを実行する処理部である。具体的には、マイグレーション実行部22は、管理者からマイグレーション指示を受け付けた場合やVMホストの故障等が発生したことを検知した場合に、当該VMホストで動作するVMゲストを他のVMホストへマイグレーションさせる。
なお、マイグレーションは一般的なマイグレーションと同様であるので、詳細な説明は省略する。例えば、マイグレーション実行部22は、移動元のVMホストに該当VMゲストの処理停止や移動先のVMホストにマイグレーションが発生する旨を通知する。そして、マイグレーション実行部22は、該当するVMゲストのメモリ情報、レジスタなどのプロセッサに関する情報等を、移動元のVMホストから移動先のVMホストへコピーする。
[VMホストの階層構造]
図9は、VMホストの階層構造の例を示す図である。なお、ここでは、一例として1台のVMホストでVMを動作させる例を説明する。また、ここでは、一例としてVMホスト30を例にして説明する。
VMホスト30は、一般的な物理サーバであり、ハードウェア、プロセッサ、メモリ等を有する。具体的には、図9に示すように、VMホスト30は、ハードウェア30a上でオペレーティングシステム30bを動作させ、オペレーティングシステム30bを用いてハイパーバイザなどの仮想化ソフトウェア30cを動作させて、仮想環境を提供する。また、仮想化ソフトウェア30cは、複数のVMゲストを動作させる。なお、ここで示した階層構造は、仮想化技術の一例を用いて実装した場合を例示したものであり、これに限定されるものではなく、他の一般的な仮想化技術を用いることができる。
[VMホストの機能構成]
図10は、実施例1に係るVMホストの機能構成を示す機能ブロック図である。なお、VMホスト30とVMホスト60とは同様の構成を有するので、ここでは、VMホスト30を例にして説明する。図10に示すように、VMホスト30は、通信制御部31、記憶部32、制御部33を有する。
なお、VMホスト60は、通信制御部31と同様の処理を実行する通信制御部61、記憶部32と同様の情報を記憶する記憶部62、制御部33と同様の処理を実行する制御部63を有するものとする。また、制御部63は、リソース割当部34と同様の処理を実行するリソース割当部64と、通知部35と同様の処理を実行する通知部65とを有する。
通信制御部31は、他の装置の間の通信を制御する処理部であり、例えばネットワークインタフェースカードなどである。例えば、通信制御部31は、クラウド管理サーバ10からマイグレーション指示等の各種要求を受信する。また、通信制御部31は、VMホスト30が移動先のVMホストである場合、移動元のVMホストからマイグレーションにかかるVMゲストの情報や仮想ディスクに記憶される情報を受信する。同様に、通信制御部31は、VMホスト30が移動元のVMホストである場合、マイグレーションにかかるVMゲストの情報や仮想ディスクに記憶される情報を移動先のVMホストに送信する。
記憶部32は、メモリやハードウェアなどの記憶装置である。記憶部32は、制御部33が実行する各種プログラムや各種データなどを記憶する。
制御部33は、プロセッサなどの電子回路であり、リソース割当部34と通知部35とを有する。なお、リソース割当部34と通知部35は、プロセッサが実行するプロセスの一例やプロセッサが有する電子回路の一例である。
リソース割当部34は、VMゲストへの物理リソースの割当を制御する処理部である。具体的には、リソース割当部34は、メモリ、プロセッサ、通信インタフェースなどのハードウェアをVMゲストに割当てて、VMゲストを動作させる。また、リソース割当部34は、VMゲストが停止した場合に、当該VMゲストに割当てていたハードウェアの割当を終了し、割当てられていたリソースを解放する。
例えば、リソース割当部34は、VMホスト30が有するプロセッサにおける所定処理能力をVMが使用するプロセッサとして割り当てる。こうすることで、リソース割当部34は、VMゲストに仮想的なプロセッサを割り当てる。また、リソース割当部34は、VMホスト30が有するメモリにおける所定領域をVMが使用するメモリとして割り当てる。こうすることで、リソース割当部34は、VMゲストに仮想的なメモリを割り当てる。
通知部35は、マイグレーションに関する情報をVMゲストに通知する処理部である。例えば、通知部35は、VMホスト30にマイグレーションしてきたVMゲストに対して、マイグレーションが実行されて完了したことを通知する。また、通知部35は、VMホスト30からマイグレーションするVMゲストに対して、マイグレーションが開始されることを通知する。
[VMゲストの機能構成]
図11は、実施例1に係るVMゲストの機能構成を示す機能ブロック図である。なお、各VMゲストは同様の構成を有するので、ここでは、VMゲスト40として説明する。図11に示すように、VMゲスト40は、通信制御部41、記憶部42、制御部44を有する。
通信制御部41は、他の装置の通信を制御するインタフェースであり、VMホストの物理インタフェースを用いて構築された仮想インタフェースである。例えば、通信制御部41は、マイグレーションの開始、完了などをVMホストから受信する。また、通信制御部41は、他のVMゲストや利用者端末等から各種データや指示を受信する。
記憶部42は、VMホストのメモリやハードディスクを用いて構築された仮想的な記憶装置であり、例えば仮想メモリなどである。この記憶部42は、制御部44が実行するプログラムを記憶し、アプリ特性テーブル43を記憶する。
アプリ特性テーブル43は、VMゲスト40が実行するアプリケーションに関する情報を記憶するテーブルである。図12は、アプリ特性テーブルに記憶される情報の例を示す図である。図12に示すように、アプリ特性テーブル43は、「アプリ名、巻き戻し可否、入力データサイズ、出力データサイズ」を対応付けて記憶する。なお、ここで記憶される情報は一例であり、例えばプログラムの格納位置などをさらに記憶することもできる。
ここで記憶される「アプリ名」は、アプリケーションを識別する識別しである。「巻き戻し可否」は、処理を巻き戻して実行できるアプリケーションか否かを示す情報であり、処理中で再実行可能か否かを示す。「入力データサイズ」は、アプリケーションの実行に利用される入力データのサイズである。例えば、バッチジョブを実行するアプリケーションの場合、「処理プログラム+入力データ=入力データサイズ」となる。「出力データサイズ」は、アプリケーションが出力したデータのサイズである。
一例を挙げると、バッチジョブを実行するアプリケーションの場合、「入力データサイズ=処理プログラム(1KB)+入力データ(1GB)=1024.1MB」となり、「出力データサイズ=0MB」となる。また、チェックポイントを行うアプリケーションの場合、「入力データサイズ=0MB」となり、「出力データサイズ=チェックポイントで保存した途中結果のデータサイズ」となる。
図12の例では、巻き戻し可否に「True」が設定される「アプリA」は、途中から再実行が可能なバッチジョブであることを示す。また、巻き戻し可否に「False」が設定される「アプリB」は、途中からの再実行が好ましくないジョブであることを示す。
制御部44は、VMホストのプロセッサを用いて構築された仮想プロセッサなどである。この制御部44は、アプリ実行部45、通知受信部46、第1時間算出部47、第2時間算出部48、判定部49を有する。なお、各処理部は、制御部44が実行するプロセスの一例である。
アプリ実行部45は、所望のアプリケーションを実行する処理部である。例えば、アプリ実行部45は、利用者等から指示されたアプリケーションのプログラムを記憶部42から読み出して実行する。
また、アプリ実行部45は、マイグレーションが開始されると実行中のアプリケーションを中断する。そして、アプリ実行部45は、判定部49から通知された方法で、中断したアプリケーションを再開する。例えば、アプリ実行部45は、中断した時点から再開したり、中断するまでの処理を破棄して最初から再開したりする。
通知受信部46は、マイグレーションの開始や完了に関する通知を受信する処理部である。なお、通知受信部46は、各通知を受信した場合、通知内容等を第1時間算出部47、第2時間算出部48等に通知する。
例えば、通知受信部46は、マイグレーション対象である当該VMゲスト30のマイグレーションが実行される前に、移動元のVMホストから、マイグレーション対象であることとマイグレーションが開始されることとを受信する。また、通知受信部46は、マイグレーション対象である当該VMゲスト30のマイグレーションが完了される前に、移動先のVMホストから、マイグレーションが完了したことを受信する。
第1時間算出部47は、マイグレーションするVMゲストが移動前に使用していた記憶領域に記憶されるデータを、移動元のVMホストから移動先のVMホストに転送する場合にかかる第1の時間を算出する処理部である。具体的には、第1時間算出部47は、通知受信部46からマイグレーションの開始や完了が通知されると、マイグレーション対象のVMゲストに割当てられる仮想ディスクに記憶されるデータを移動元から移動先へ転送する際にかかるデータ転送時間を算出する。
例えば、データ転送時間を「Tdata」、入力データサイズ(処理プログラム+入力データ)を「Sjob」、出力データサイズを「Sout」、マイグレーション元と先との間の利用可能な帯域を「Bww」と仮定する。この場合、第1時間算出部47は、「Tdata=(Sjob+Sout)/Bww」を第1の時間として算出する。そして、第1時間算出部47は、算出結果を判定部49に出力する。
第2時間算出部48は、VMゲストがマイグレーションに伴って中断した処理の実行に用いるデータを移動元から移動先へ転送する場合にかかる転送時間と、中断するまでに実行された処理にかかった処理時間とから、第2の時間を算出する処理部である。
具体的には、第2時間算出部48は、通知受信部46からマイグレーションの開始や完了が通知されると、アプリケーションのプログラム、言い換えるとジョブを移動元から取得するのにかかるジョブの再取得時間を算出する。また、第2時間算出部48は、マイグレーション先でアプリケーションを最初からやり直した場合に、中断点に到達するまでにかかる所要時間を算出する。その後、第2時間算出部48は、ジョブの再取得時間と所要時間と加算して、第2の時間を算出する。
例えば、ジョブの再取得時間を「Tget」、入力データサイズ(処理プログラム+入力データ)を「Sjob」、マイグレーション元と先との間の利用可能な帯域を「Bww」と仮定する。また、ジョブの中断点に到達するまでの所要時間を「Texe」と仮定する。なお、「Texe」は、いわゆるCPU(Central Processing Unit)タイムであり、アプリケーションの監視やログ等から取得することができる。
この場合、第2時間算出部48は、「Tget=Sjob/Bww」と算出し、「第2の時間=Tget+Texe」を算出し、算出結果を判定部49に出力する。なお、図1に示したクラウドシステムがマスタ・ワーカ型のシステムである場合には、Bwwの代わりに、マスタサーバとマイグレーション先の間の利用可能な帯域である「Bmw」を用いる。
マスタ・ワーカ型のシステムとは、マスタと呼ばれる物理サーバが、VMゲスト等が実行するアプリケーション、すなわちジョブを一元的に管理する形態のシステム例である。つまり、各VMゲストは、マスタサーバからジョブを読み出して実行する。このため、マイグレーションしたVMゲストは、移動元のVMホストではなく、マスタサーバからジョブを読み出して実行する。
判定部49は、第1の時間が第2の時間より早い場合には、中断したジョブを中断した時点から再開すると判定し、第2の時間が第1の時間より早い場合には、中断したジョブを最初から実行すると判定する処理部である。
上記した例で説明すると、判定部49は、「Tdata<(Tget+Texe)」である場合には、マイグレーション時に中断したジョブを中断した時点から再開すると判定し、そのことをアプリ実行部45に通知する。一方、判定部49は、「Tdata>(Tget+Texe)」である場合には、マイグレーション時に中断したジョブを最初からやり直すと判定し、そのことをアプリ実行部45に通知する。なお、判定部49は、「Tdata=(Tget+Texe)」である場合には、いずれの方式で実行するかを任意に設定できる。
ここで、図13を用いて再開方式の判定を具体的に説明する。図13は、再開判定を説明する図である。図13に示すように、判定部49は、マイグレーション先において、「データ転送時間(Tdata)」と、「ジョブの再取得時間(Tget)+マイグレーション元で既に実行済みであるジョブを再度実行した場合にかかる時間(Texe)」との比較を実行する。なお、図13の(a)は、マイグレーションで中断したジョブをそのまま継続して実行した場合の時間経過を示す。
図13の(b)に示すように、Tdataよりも(Tget+Texe)の方が早い場合、中断されたジョブを最初から実行しなおした方が、図13の(a)より早くジョブを再開することができる。この条件に該当する場合、判定部49は、最初から実行しなおすと判定して、データ転送を待たずにジョブを再開させる。この結果、未実行部分をより早く開始でき、ジョブ全体を早めることができる。すなわち、アプリケーション全体の処理完了を早めることができる。
また、図13の(c)に示すように、(Tget+Texe)の方がTdataよりも遅い場合、最初からジョブを実行しなおすと、未実行部分を開始する時間が図13の(a)よりも遅くなる。つまり、中断されたジョブを中断した箇所から再開する方が、より早く未実行部分を再開することができる。この条件に該当する場合、判定部49は、データ転送を待って、中断した箇所からジョブを再開させる。この結果、未実行部分をより早く開始でき、ジョブ全体を早めることができる。
[処理の流れ]
次に、各装置が実行する処理の流れを説明する。ここでは、システム全体の処理シーケンス、クラウド管理サーバの処理、移動元のVMホストの処理、移動先のVMホストの処理、VMゲストの処理について説明する。なお、ここでは、VMホスト30で動作するVMゲスト40をVMホスト60へマイグレーションさせる例で説明する。
(シーケンス)
図14は、実施例1に係る処理のシーケンス図である。図14に示すように、クラウド管理サーバ10は、管理者等からマイグレーション指示を受信する(S101)。すると、クラウド管理サーバ10は、マイグレーション対象のVMゲストを動作させる移動元のVMホスト30に対して、マイグレーション指示を送信する(S102とS103)。
そして、移動元のVMホスト30は、該当するVMゲスト40へのCPUの割当を停止する(S104とS105)。続いて、移動元のVMホスト30は、VMゲスト40のレジスタやメモリの状態を含む実行コンテキストを移動先のVMホスト60へ転送する(S106とS107)。ここで、VMゲスト40にCPUが割当てられていないため、VMゲストで動作していたジョブの実行が中断する。その後、移動元のVMホスト30は、実行コンテキストの転送完了をクラウド管理サーバ10へ送信する(S108とS109)。
その後、クラウド管理サーバ10は、VMゲスト管理テーブル14や仮想ディスク管理テーブル17等を参照し、仮想ディスクの転送要否を判定する(S110)。そして、クラウド管理サーバ10は、ストレージを共有しておらず、VMゲスト40が使用する仮想ディスクにデータが格納されており、転送を行うと判定したことを移動先のVMホスト60に通知する(S111とS112)。
その後、クラウド管理サーバ10は、移動先のVMホスト60がアクセス可能なストレージ装置3に、マイグレーション対象のVMゲスト40に割当てられていた仮想ディスクを同じ容量の仮想ディスクを生成する(S113とS114)。そして、生成が完了すると、クラウド管理サーバ10は、仮想ディスクの生成完了を移動先のVMホスト60に通知する(S115とS116)。
続いて、移動先のVMホスト60は、クラウド管理サーバ10から通知された仮想ディスの割当情報に基づいて、仮想ディスクの割当情報を更新する(S117)。その後、移動先のVMホスト60は、マイグレーションしてきたVMゲスト40へCPUの割当開始し、CPUの割当が完了したことをVMゲスト40に通知する(S118とS119)。
そして、クラウド管理サーバ10は、VMゲストに割当てられている仮想ディスクに記憶される情報を、移動元のVMホストがアクセス可能なストレージ装置2から読み出して、ストレージ装置3に転送する(S120〜S122)。
VMゲスト40は、上述した第1の時間および第2の時間を算出して、中断したジョブの再開方式を判定し(S123)、判定結果にしたがってジョブの実行を再開する(S123)。このとき、VMゲスト40は、中断した処理を中断した箇所から再開すると判定した場合には、移動先VMホスト60の該当データのI/O(Input/Output)を要求する(S124とS125)。なお、VMゲスト40は、中断した処理を最初から実行しなおすと判定した場合には、移動元のVMホスト30からジョブを取得して再実行する。
そして、移動先のVMホスト60は、VMゲスト40から受信したI/O要求をストレージ装置3に実行する(S126とS127)。このとき、移動先のVMホスト60は、読み出し対象のデータがストレージ装置2から未転送である場合には、待機状態となる。そして、移動先のVMホスト60は、データをストレージ装置3から読み出すと、そのI/O結果を要求元のVMゲスト40に送信する(S128とS129)。
(クラウド管理サーバの処理)
図15は、実施例1に係るクラウド管理サーバが実行する処理の流れを示すフローチャートである。図15に示すように、クラウド管理サーバ10のマイグレーション実行部22は、管理者等からVMゲスト40のマイグレーション指示を受信する(S201)。例えば、マイグレーション実行部22は、マイグレーションさせるVMゲスト40のIDと移動先のVMホスト60のIDとを受信する。
続いて、マイグレーション実行部22は、VMゲスト管理テーブル14を参照して、受信したマイグレーション対象のVMゲスト40のIDに対応するVMホストを特定し、これを移動元のVMホスト30とする(S202)。
そして、マイグレーション実行部22は、移動元のVMホスト30に対して、VMゲスト40の実行コンテキストを移動先のVMホスト60へ転送するように指示する(S203)。
その後、マイグレーション実行部22は、実行コンテキストの転送完了の通知を受信すると(S204:Yes)、管理者等に実行コンテキストの転送完了を通知する(S205)。
そして、マイグレーション実行部22は、VMホスト管理テーブル13や物理ストレージ管理テーブル15等を参照し、移動元のVMホスト30と移動先のVMホスト60とがストレージを共有しているかを確認する(S206)。
ここで、ストレージを共有していると判定した場合(S207:Yes)、マイグレーション実行部22は、仮想ディスクの転送が行わないことを移動先のVMホスト60に通知する(S208)。そして、マイグレーション実行部22は、マイグレーションが完了したことを管理者等に通知する(S209)。
一方、マイグレーション実行部22は、ストレージを共有していないと判定した場合(S207:No)、仮想ディスクの転送を行うことを移動先のVMホスト60に通知する(S210)。
そして、マイグレーション実行部22は、移動先のVMホスト60が参照できるストレージ装置3に、VMゲスト40用の仮想ディスクを作成する(S211)。例えば、マイグレーション実行部22は、VMゲスト40が移動前にストレージ装置2で使用していたサイズと同じサイズで同じ個数の仮想ディスクを、ストレージ装置3に作成する。
その後、マイグレーション実行部22は、移動先のVMホスト60に、新しく作成した仮想ディスク60のIDを通知する(S212)。そして、マイグレーション実行部22は、ストレージ装置2から仮想ディスクに記憶されるデータを読み出して、ストレージ装置3に新たに作成した仮想ディスクに、コピーする処理を開始する(S213)。
そして、マイグレーション実行部22は、全ての仮想ディスクのコピーが完了すると(S214:Yes)、仮想ディスクのデータ転送完了およびマイグレーションの完了を管理者等に通知する(S215)。
(移動元のVMホストの処理)
図16は、実施例1に係る移動元のVMホストが実行する処理の流れを示すフローチャートである。図16に示すように、移動元のVMホスト30のリソース割当部34は、自装置上で動作するVMゲスト40のマイグレーション指示を受信する(S301)。例えば、リソース割当部34は、マイグレーション対象のVMゲスト40のIDと移動先のVMホスト60のIDとを、クラウド管理サーバ10から受信する。
続いて、リソース割当部34は、通知されたマイグレーション対象のVMゲスト40へのCPUの割当てを中止する(S302)。そして、リソース割当部34は、移動先のVMホスト60にVMゲスト40の実行コンテキストを転送する(S303)。
その後、リソース割当部34は、実行コンテキストの転送が完了すると(S304:Yes)、クラウド管理サーバ10に、実行コンテキストの転送完了を通知する(S305)。
(移動先のVMホストのマイグレーション処理)
図17は、実施例1に係る移動先のVMホストが実行するマイグレーション処理の流れを示すフローチャートである。
図17に示すように、移動先のVMホスト60の通知部65は、移動元のVMゲスト30からマイグレーション対象のVMゲスト40の実行コンテキストを受信する(S401)。続いて、通知部65は、クラウド管理サーバ10から、仮想ディスクの転送要否を受信する(S402)。
そして、リソース割当部64は、仮想ディスクの転送が行われない場合(S403:No)、VMゲスト40へのCPUの割当を開始する(S404)。なお、ここでは、マイグレーションしたことをVMゲストに通知しない。
一方、リソース割当部64は、仮想ディスクの転送が行われる場合(S403:Yes)、新たに作成された仮想ディスクのIDがクラウド管理サーバ10から通知されたかを判定する(S405)。
そして、リソース割当部64は、新たに作成された仮想ディスクのIDがクラウド管理サーバ10から通知されると(S405:Yes)、VMゲスト40に割当てる仮想ディスクの情報を更新する(S406)。例えば、リソース割当部64は、クラウド管理サーバ10に情報を送信して、各種テーブルを更新させる。
その後、リソース割当部64は、VMゲスト40へのCPU割当てを開始し、マイグレーションしたことをVMゲスト40に通知する(S407)。
(移動先のVMホストのI/O要求処理)
図18は、実施例1に係る移動先のVMホストが実行するI/O要求処理の流れを示すフローチャートである。図18に示すように、移動先のVMホスト60の通知部65は、マイグレーションしてきたVMゲスト40から仮想ディスクへのI/O要求を受信する(S501)。
続いて、移動先のVMホスト60の制御部63は、クラウド管理サーバ10のVMゲスト管理テーブル14を参照し、ストレージ装置3における仮想ディスクIDを特定する(S502)。そして、移動先のVMホスト60の制御部63は、ストレージ装置3に、仮想ディスクID等を指定してI/O要求を送信する(S503)。
その後、移動先のVMホスト60の制御部63は、正常にI/Oが処理された場合(S504:Yes)、I/O結果をVMゲスト40に応答する(S505)。
一方、移動先のVMホスト60の制御部63は、正常にI/Oが処理されなかった場合(S504:No)、データ未転送による読み出し失敗かを判定する(S506)。つまり、VMホスト60は、読み出し対象のデータが移動前のストレージ装置2から移動先のストレージ装置3へまだ転送されていないために、エラーが発生したかを判定する。
そして、移動先のVMホスト60の制御部63は、データ未転送による読み出し失敗ではなく、通常のリードエラー等である場合には(S506:No)、I/OエラーをVMゲスト40に応答する(S507)。
一方、移動先のVMホスト60の制御部63は、データ未転送による読み出し失敗である場合(S506:Yes)、例えば5秒など一定時間待機した後(S508)、S503を再度実行する。
(VMゲストの処理)
図19は、実施例1に係る移動対象のVMゲストが実行する処理の流れを示すフローチャートである。図19に示すように、VMゲスト40のアプリ実行部45は、アプリケーションを実行し、実行時間であるCPU Timeを計測して仮想メモリ等に記録する(S601)。ここで記録された時間を「Texe」とする。
その後、VMゲスト40の通知受信部46が移動先のVMホスト60からマイグレーションしたことを受信すると(S602:Yes)、判定部49は、実行しているアプリケーションは巻き戻せる特性を有しているかを判定する(S603)。具体的には、判定部49は、アプリ特性テーブル43を参照して判定する。
例えば、バッチジョブを実行するアプリケーションである場合、ジョブの途中までの実行結果を破棄して、ジョブを最初からやり直すことができる。また、チェックポイントで途中結果を保存するアプリケーションである場合、チェックポイントからのやり直しができる。巻き戻しが可能な特性のアプリケーションかどうかは、アプリ開発者が特性情報として設定する。
そして、判定部49は、実行しているアプリケーションは巻き戻せる特性を有していない場合(S603:No)、実行中の処理を継続する再開方式を選択する(S604)。つまり、アプリ実行部45は、マイグレーションに伴って中断した実行中の処理を、中断点から再開する。
一方、第1時間算出部47は、実行しているアプリケーションは巻き戻せる特性を有している場合(S603:Yes)、上述した「Tdata」を算出する(S605)。具体的には、第1時間算出部47は、移動先のVMホスト60経由でクラウド管理サーバ10に仮想ディスクの転送速度を問合せて算出する。
続いて、第2時間算出部48は、上述した「Tget」を算出する(S606)。具体的には、第2時間算出部48は、例えば、第2時間算出部48は、バッチジョブを実行するアプリケーションである場合、ジョブの再取得にかかる時間を算出する。また、第2時間算出部48は、チェックポイントで途中結果を保存しているアプリケーションである場合、保存した途中結果を取得するのにかかる時間を算出する。
その後、判定部49は、「Tget+Texe≦Tdata」ではなく、「Tget+Texe>Tdata」である場合(S607:No)、実行中の処理を継続する再開方式を選択する(S604)。
一方、判定部49は、「Tget+Texe≦Tdata」である場合(S607:Yes)、現在実行中の処理を破棄し、巻き戻し点から再実行する再開方式を選択する(S608)。例えば、アプリ実行部45は、バッチジョブを実行するアプリケーションである場合、最初からやり直す。また、アプリ実行部45は、チェックポイントで途中結果を保存しているアプリケーションである場合、チェックポイントから再実行する。
[具体例]
次に、VMゲスト「Guest_02」をVMホスト「Host_102」にマイグレーションする例で説明する。なお、VMゲスト「Guest_02」は、アプリAを実行しているものとする。
クラウド管理サーバ10は、VMゲスト管理テーブル14から、VMゲスト「Guest_02」がVMホスト「Host_002」で動いていることを特定する。また、クラウド管理サーバ10は、VMゲスト管理テーブル14から、VMゲスト「Guest_02」には仮想ディスク「VDISK_030」が割り当てられていることを特定する。また、クラウド管理サーバ10は、仮想ディスク管理テーブル17から、仮想ディスク「VDISK_030」のサイズが「10GB」であることを特定する。
クラウド管理サーバ10は、仮想ディスク管理テーブル17から、仮想ディスク「VDISK_030」が仮想ストレージ「VS_001」から切り出されていることを特定する。また、クラウド管理サーバ10は、VMホスト管理テーブル13から、VMホスト「Host_102」が仮想ストレージ「VS_001」を参照できないことを特定する。
クラウド管理サーバ10は、VMホスト管理テーブル13から、VMホスト「Host_102」が参照できる仮想ストレージが「VS_101」であることを特定する。このため、クラウド管理サーバ10は、仮想ディスク「VDISK_030」の中身を仮想ストレージ「VS_001」から切りした新しい仮想ディスクに転送すると判定する。
また、クラウド管理サーバ10は、VMホスト管理テーブル13から、移動元のVMホスト「Host_002」のPodが「A」であり、移動先のVMホスト「Host_102」の「Pod」が「B」であることを特定する。また、クラウド管理サーバ10は、帯域管理テーブル18から、Pod「A」と「B」の間のネットワーク帯域が「200Mbps」であることを特定する。
さらに、VMゲスト「Guest_02」は、アプリ特性テーブル43を参照して、実行を中断したアプリAの入力データサイズが「1024.2MB」であることを特定する。また、VMゲスト「Guest_02」は、バッチジョブのジョブプールとの通信に利用できるネットワークの帯域が「100Mbps」であることをクラウド管理サーバ10の帯域管理テーブル18等から特定する。
なお、バッチジョブのジョブプールとは、未実行のジョブが置かれている場所である。例えば、マスタ・ワーカ型のシステムでは、マスタサーバがジョブプールを有するので、マスタサーバと移動先のVMホストとの間の帯域を利用する。また、一般的なシステムの場合、移動先のVMホストと移動先のVMホストとの間の帯域を利用する。
このような情報を用いて、VMゲスト「Guest_02」は、ジョブプールからジョブを再取得する時間「Tget」を「1024.2MB/100Mbps≒82秒」(約1.4分)と算出する。また、VMゲスト「Guest_02」は、仮想ディスク「VDISK_030」を転送するのにかかる時間「Tdata」を「10GB/200Mbps≒410秒」(約7分)と算出する。
(例1)
ここで、VMゲスト「Guest_02」は、ジョブを開始してから、CPU時間(処理時間)が5分の時に、マイグレーションしたことの通知を受けたとする。そして、VMゲスト「Guest_02」は、「Tdata=7分」であることから、このまま中断点からジョブを継続するには、仮想ディスクの中身の転送完了を7分待つことになる。
また、VMゲスト「Guest_02」は、ジョブを最初から再実行するには、ジョブプールからジョブを再取得するのに「1.4分」、ジョブを最初から再実行して中断点に至るのに「5分」かかる。つまり、「Tget+Texe=1.4+5=6.4分」となる。
これらの結果、VMゲスト「Guest_02」は、「Tget+Texe≦Tdata」となるので、仮想ディスクの中身の転送完了を待たずに、ジョブを再取得して、最初からやり直す再開方式を選択する。
(例2)
ここで、VMゲスト「Guest_02」は、ジョブを開始して、CPU時間(処理時間)が10分の時に、マイグレーションしたことの通知を受けたとする。そして、VMゲスト「Guest_02」は、「Tdata=7分」であることから、このまま中断点からジョブを継続するには、仮想ディスクの中身の転送完了を7分待つことになる。
また、VMゲスト「Guest_02」は、ジョブを最初から再実行するには、ジョブプールからジョブを再取得するのに「1.4分」、ジョブを最初から再実行して中断点に至るのに「10分」かかる。つまり、「Tget+Texe=1.4+10=11.4分」となる。
これらの結果、VMゲスト「Guest_02」は、「Tget+Texe>Tdata」となるので、データ転送の完了を待って、中断点から再開する方式を選択する。
[効果]
このように、VMゲストが、マイクレーション先で、マイグレーションで中断した途中データを転送して処理再開するまでの時間と、最初からやり直すまでにかかる時間を算出し、時間が早い方を選択することができる。つまり、VMゲストは、マイグレーション時に中断した処理をマイグレーション先で再開する際に、未実行の部分を再開するまでにかかる時間を計算する。そして、VMゲストは、より早く再開できる方式で中断した処理を実行できる。
このように、VMゲストは、処理を早く再開できるので、アプリケーション全体の処理にかかる時間も短縮できる。また、処理を実行するVMゲスト自身が再開方式を判定して処理を再開するので、VMホスト等の第3者が方式判定する場合に比べて、方式判定にかかる時間も短縮できる。
実施例1では、マイグレーション先のVMゲストがマイグレーションしてきたVMゲストにマイグレーションの完了を通知すると、VMゲストが再開方法等を判定する例を説明したが、これに限定されるものではない。例えば、マイグレーション元のVMホストがマイグレーションするVMゲストにマイグレーションが開始されることを通知することもできる。
そこで、実施例2では、マイグレーション元のVMホストがマイグレーションするVMゲストにマイグレーションが開始されることを通知し、VMゲストが再開方法等を判定する例を説明する。なお、移動先のVMホストが実行する処理は、実施例1と同様なので詳細な説明を省略する。
(シーケンス)
図20は、実施例2に係る処理のシーケンス図である。図20に示すように、クラウド管理サーバ10は、管理者等からマイグレーション指示を受信する(S701)。すると、クラウド管理サーバ10は、マイグレーション対象のVMゲストが使用する仮想ディスクの転送要否を判定する(S702)。続いて、クラウド管理サーバ10は、仮想ディスクの転送要否とマイグレーション指示とを移動元のVMホスト30に送信する(S703とS704)。
そして、移動元のVMホスト30は、対象のVMゲスト40に、マイグレーションが実行されることを通知する(S705とS706)。この通知を受けたVMゲスト40は、上述した第1の時間および第2の時間を算出して、中断するジョブの再開方式を判定し(S707)、判定結果を移動元VMホスト30に通知する(S708とS709)。
その後、移動元のVMホスト30は、該当するVMゲスト40へのCPUの割当を停止する(S710とS711)。続いて、移動元のVMホスト30は、VMゲスト40のレジスタやメモリの状態を含む実行コンテキストを移動先のVMホスト60へ転送する(S712とS713)。ここで、VMゲスト40にCPUが割当てられていないため、VMゲストで動作していたジョブの実行が中断する。
その後、移動元のVMホスト30は、実行コンテキストの転送完了をクラウド管理サーバ10へ送信する(S714とS715)。また、移動元のVMホスト30は、移動先のVMホスト60に、仮想ディスクの転送要否の判定結果を通知する(S716とS717)。
その後のS718からS733で実行される仮想ディスクの生成、CPUの割当、I/O処理は、実施例1で説明したS113〜S129と同様の処理なので、詳細な説明は省略する。
(クラウド管理サーバの処理)
図21は、実施例2に係るクラウド管理サーバが実行する処理の流れを示すフローチャートである。図21に示すように、クラウド管理サーバ10のマイグレーション実行部22は、管理者等からVMゲスト40のマイグレーション指示を受信する(S801)。
続いて、マイグレーション実行部22は、VMゲスト管理テーブル14等を参照して、受信したマイグレーション対象のVMゲストのIDに対応するVMホストを特定し、これを移動元のVMホスト30とする(S802)。
また、マイグレーション実行部22は、VMホスト管理テーブル13や物理ストレージ管理テーブル15等を参照し、移動元のVMホスト30と移動先のVMホスト60とがストレージを共有しているかを確認する(S803)。
そして、マイグレーション実行部22は、ストレージを共有していると判定した場合(S804:Yes)、移動元のVMホスト30に対して、VMゲスト40の実行コンテキストを移動先のVMホスト60へ転送するように指示する(S805)。このとき、マイグレーション実行部22は、仮想ディスクの転送を行わないこともあわせて、移動元のVMホスト30に通知する。
その後、マイグレーション実行部22は、実行コンテキストの転送完了の通知を受信すると(S806:Yes)、管理者等に実行コンテキストの転送完了を通知する(S807)。また、マイグレーション実行部22は、仮想ディスクの転送を行わないこと移動先のVMホスト60に通知して(S808)、処理を終了する。
一方、ストレージを共有していないと判定した場合(S804:No)、移動元のVMホスト30に対して、VMゲスト40の実行コンテキストを移動先のVMホスト60へ転送するように指示する(S809)。このとき、マイグレーション実行部22は、仮想ディスクの転送を行うこともあわせて、移動元のVMホスト30に通知する。
その後、マイグレーション実行部22は、実行コンテキストの転送完了の通知を受信すると(S810:Yes)、管理者等に実行コンテキストの転送完了を通知する(S811)。また、マイグレーション実行部22は、仮想ディスクの転送を行うこと移動先のVMホスト60に通知する(S812)。
その後のS813〜S817で実行される仮想ディスクの生成等の処理は、実施例1で説明したS211〜S215と同様の処理なので、詳細な説明は省略する。
(移動元のVMホストの処理)
図22は、実施例2に係る移動元のVMホストが実行する処理の流れを示すフローチャートである。
図22に示すように、移動元のVMホスト30の通知部35は、クラウド管理サーバ10から、VMゲスト40のマイグレーション指示と仮想ディスクの転送要否を受信する(S901)。
そして、リソース割当部34は、仮想ディスクの転送が行われる場合(S902:Yes)、VMゲスト40にマイグレーションすることを通知し(S903)、VMゲスト40から再開方式を判定したことの通知を受信したかを判定する(S904)。なお、リソース割当部34は、仮想ディスクの転送が行われない場合(S902:No)、S903およびS904を実行することなく、S905を実行する。
そして、リソース割当部34は、VMゲスト40から再開方式を判定したことの通知を受信すると(S904:Yes)、VMゲスト40へのCPUの割当を中止する(S905)。なお、ここでは、マイグレーションすることは、VMゲスト40に通知されない。
その後のS906〜S908の処理は、実施例1で説明したS303〜S305と同様の処理なので、詳細な説明は省略する。
(VMゲストの処理)
図23は、実施例2に係る移動対象のVMゲストが実行する処理の流れを示すフローチャートである。図23に示すように、VMゲスト40のアプリ実行部45は、アプリケーションを実行し、実行時間であるCPU Timeを計測して仮想メモリ等に記録する(S1001)。ここで記録された時間を「Texe」とする。
そして、VMゲスト40の通知受信部46が移動元のVMホスト30からマイグレーションしたことを受信すると(S1002:Yes)、判定部49は、実行しているアプリケーションは巻き戻せる特性を有しているかを判定する(S1003)。
その後のS1004〜S1008処理は、実施例1で説明したS604〜S608と同様の処理なので、詳細な説明は省略する。
(効果)
このように、実施例2に係るVMゲスト40は、マイグレーション前に移動元のVMホスト30から通知を受信して、再開方式を判定することができる。したがって、VMゲスト40は、マイグレーションが完了するとすぐに、ジョブの再開を実行することができる。この結果、実施例1に比べて、アプリケーション全体の処理時間の短縮が期待できる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(共有ディスク)
上記実施例1や2では、移動元のVMホストと移動先のVMホストがストレージを共有していない例を説明したが、これに限定されるものではない。例えば、移動元のVMホストと移動先のVMホストがストレージを共有している場合、VMゲストは、中断点から再開する方式を選択することができる。なお、ストレージを共有していることを条件にマイグレーション先を選択することは、マイグレーション先が限定的になる可能性もある。
(データ転送)
実施例1や2では、VMゲストがいずれの再開方式を用いる決定した場合であっても、移動元の仮想ディスクの情報を移動先に転送する例を説明したが、これに限定されるものではない。例えば、VMゲストが、最初からやり直すと決定したタイミングで、仮想ディスクのコピーが実行中である場合には、当該コピーを中止してもよい。また、VMゲストが、移動前に最初からやり直すと決定した場合、仮想ディスクのコピーを実行しないようにすることもできる。このようにすることで、無用な処理を抑制できるので、仮想ゲストのCPUの負荷を軽減でき、再開するジョブの実行時間の短縮にも繋がる。また、ネットワーク帯域の浪費を抑制できる。
(再開方式)
例えば、VMゲストの処理を中断点からそのまま継続するために用いるデータまたはファイルが、仮想ディスクのどの部分にあるかの情報を特定できる場合は、再開方式の判断をより細かく実施することもできる。例えば、仮想ディスクの中身のデータの転送が、仮想ディスクの先頭から実施され、仮想ディスクの先頭近くにデータまたはファイルあることを想定する。この場合、データが転送されるのを待った方が、処理を最初からやり直すよりも有利になる場合がある。つまり、このような場合には、VMゲストは、最初からやり直す方式を用いると決定した場合であっても、データ転送を待って中断点からやり直す方式を採用する。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(ハードウェア)
次に、VMホストやクラウド管理サーバのハードウェア構成例を説明するが、各サーバは同様の構成を有するので、ここでは一例を説明する。図24は、ハードウェア構成例を示す図である。図24に示すように、サーバ100は、NIC(Network Interface Card)100a、入力装置100b、表示装置100c、記憶装置100d、CPU100eがバス100fで接続される。
NIC100aは、通信インタフェースであり、他の装置の間の無線通信を制御する。入力装置100bは、例えばマウスやキーボードなどであり、管理者等からの操作を受け付ける。表示装置100cは、例えばディスプレイやタッチパネルなどであり、各種情報を表示する。
記憶装置100dは、例えばメモリやハードディスクなどであり、CPU100eが実行するプログラムや各種データを記憶する。例えば、記憶装置100dは、図2に示した各テーブルを記憶する。
CPU100eは、サーバ装置全体を司る処理部であり、各種プログラムを読み出してプロセスを実行する。例えば、CPU100eは、図2で説明した各処理部と同様の機能を実現するプロセスを実行する。また、CPU100eは、図10や図11で説明した各処理部と同様の機能を実現するプロセスを実行する。
このようにサーバ100は、プログラムを読み出して実行することで、処理再開方法を実行する情報処理装置として動作する。また、サーバ100は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、サーバ100によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
10 クラウド管理サーバ
11 通信制御部
12 記憶部
13 VMホスト管理テーブル
14 VMゲスト管理テーブル
15 物理ストレージ管理テーブル
16 仮想ストレージ管理テーブル
17 仮想ディスク管理テーブル
18 帯域管理テーブル
20 制御部
21 クラウド管理部
22 マイグレーション実行部
30 VMホスト
31 通信制御部
32 記憶部
33 制御部
34 リソース割当部
35 通知部
40 VMゲスト
41 通信制御部
42 記憶部
43 アプリ特性テーブル
44 制御部
45 アプリ実行部
46 通知受信部
47 第1時間算出部
48 第2時間算出部
49 判定部

Claims (6)

  1. 第1のコンピュータが、
    前記第1のコンピュータと異なる第2のコンピュータで実行される処理を中断させて前記第1のコンピュータで実行する場合に、前記処理が中断するまでに前記第2のコンピュータの記憶領域に格納したデータを前記第1のコンピュータへ転送する際にかかる第1の時間と、前記中断した処理を最初から実行する際に用いるデータを該データが格納される領域から前記第1のコンピュータへ転送する際にかかる転送時間および前記中断するまでにかかった処理時間から第2の時間とを算出し、
    前記第1の時間が前記第2の時間より早い場合には、前記中断した処理を中断した時点から再開し、前記第2の時間が前記第1の時間より早い場合には、前記中断した処理を最初から実行する、
    処理を含むことを特徴とする処理再開方法。
  2. 前記実行する処理は、前記第2の時間が前記第1の時間より早いにも関らず、前記中断した処理に対応するアプリケーションが処理を最初から再実行できないアプリケーションである場合には、前記中断した処理を中断した時点から再開することを特徴とする請求項1に記載の処理再開方法。
  3. 前記実行する処理は、移動元の前記第2のコンピュータと移動先の前記第1のコンピュータとがストレージ装置を共有している場合には、前記中断した処理を中断した時点から再開することを特徴とする請求項1に記載の処理再開方法。
  4. 前記算出する処理は、前記第2のコンピュータまたは前記第1のコンピュータから、前記処理が中断したことまたは前記処理を再開することが通知された場合に、前記第1の時間と前記第2の時間とを算出することを特徴とする請求項1に記載の処理再開方法。
  5. 第1のコンピュータに、
    前記第1のコンピュータと異なる第2のコンピュータで実行される処理を中断させて前記第1のコンピュータで実行する場合に、前記処理が中断するまでに前記第2のコンピュータの記憶領域に格納したデータを前記第1のコンピュータへ転送する際にかかる第1の時間と、前記中断した処理を最初から実行する際に用いるデータを該データが格納される領域から前記第1のコンピュータへ転送する際にかかる転送時間および前記中断するまでにかかった処理時間から第2の時間とを算出し、
    前記第1の時間が前記第2の時間より早い場合には、前記中断した処理を中断した時点から再開し、前記第2の時間が前記第1の時間より早い場合には、前記中断した処理を最初から実行する、
    処理をさせることを特徴とする処理再開プログラム。
  6. 第1のコンピュータと第2のコンピュータとを有する情報処理システムにおいて、
    前記第1のコンピュータは、
    前記第1のコンピュータで動作させる仮想マシンを前記第2のコンピュータにマイグレーションさせる移動制御部を有し、
    前記第2のコンピュータは、
    前記第1のコンピュータから前記第2のコンピュータに移動する仮想マシンが移動に伴って中断するまでに格納したデータを、前記第1のコンピュータに転送する際にかかる第1の時間を算出する第1算出部と、
    前記中断した処理を最初から実行する際に用いるデータを当該データが格納される領域から前記第1のコンピュータへ転送する際にかかる転送時間および前記中断するまでにかかった処理時間から、第2の時間を算出する第2算出部と、
    前記第1の時間が前記第2の時間より早い場合には、前記中断した処理を中断した時点から再開し、前記第2の時間が前記第1の時間より早い場合には、前記中断した処理を最初から実行する再開実行部と
    を有することを特徴とする情報処理システム。
JP2013211348A 2013-10-08 2013-10-08 処理再開方法、処理再開プログラムおよび情報処理システム Active JP6123626B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013211348A JP6123626B2 (ja) 2013-10-08 2013-10-08 処理再開方法、処理再開プログラムおよび情報処理システム
US14/458,382 US9571584B2 (en) 2013-10-08 2014-08-13 Method for resuming process and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013211348A JP6123626B2 (ja) 2013-10-08 2013-10-08 処理再開方法、処理再開プログラムおよび情報処理システム

Publications (2)

Publication Number Publication Date
JP2015075898A JP2015075898A (ja) 2015-04-20
JP6123626B2 true JP6123626B2 (ja) 2017-05-10

Family

ID=52778028

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013211348A Active JP6123626B2 (ja) 2013-10-08 2013-10-08 処理再開方法、処理再開プログラムおよび情報処理システム

Country Status (2)

Country Link
US (1) US9571584B2 (ja)
JP (1) JP6123626B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760398B1 (en) 2015-06-29 2017-09-12 Amazon Technologies, Inc. Automatic placement of virtual machine instances
US10628195B2 (en) 2015-10-22 2020-04-21 Genband Us Llc High availability for virtual network functions
CN106331150B (zh) * 2016-09-18 2018-05-18 北京百度网讯科技有限公司 用于调度云服务器的方法和装置
JP6866724B2 (ja) * 2017-03-28 2021-04-28 日本電気株式会社 分散コンピューティングシステム、処理選択装置、処理選択方法及びプログラム
US11093272B2 (en) * 2018-06-27 2021-08-17 International Business Machines Corporation Virtual machine allocation and migration between hardware devices by destroying and generating enclaves using transmitted datafiles and cryptographic keys
CN108880898B (zh) * 2018-06-29 2020-09-08 新华三技术有限公司 主备容器系统切换方法及装置
JP7124670B2 (ja) * 2018-11-26 2022-08-24 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP2021012464A (ja) * 2019-07-04 2021-02-04 富士通株式会社 切替プログラム、装置、および方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3163196B2 (ja) * 1993-04-07 2001-05-08 富士通株式会社 仮想記憶制御における命令中断情報格納制御方法
JP4034312B2 (ja) 2003-03-24 2008-01-16 富士通株式会社 分散処理制御装置、分散処理制御方法および分散処理制御プログラム
JP2007179100A (ja) * 2005-12-26 2007-07-12 Sharp Corp ジョブキューシステムおよびジョブ管理方法、制御プログラム、可読記録媒体
WO2012066640A1 (ja) * 2010-11-16 2012-05-24 株式会社日立製作所 計算機システム、マイグレーション方法及び管理サーバ
WO2014002213A1 (ja) * 2012-06-27 2014-01-03 株式会社日立製作所 管理システム及び管理方法

Also Published As

Publication number Publication date
US9571584B2 (en) 2017-02-14
JP2015075898A (ja) 2015-04-20
US20150100960A1 (en) 2015-04-09

Similar Documents

Publication Publication Date Title
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
US9183099B2 (en) Replication of a write-back cache using a placeholder virtual machine for resource management
US10963356B2 (en) Dynamic allocation of compute resources at a recovery site
US10628273B2 (en) Node system, server apparatus, scaling control method, and program
JP5032191B2 (ja) サーバ仮想化環境におけるクラスタシステム構成方法及びクラスタシステム
US10838829B2 (en) Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium
US8473692B2 (en) Operating system image management
US9354907B1 (en) Optimized restore of virtual machine and virtual disk data
US9792150B1 (en) Detecting site change for migrated virtual machines
US10846079B2 (en) System and method for the dynamic expansion of a cluster with co nodes before upgrade
US20120144391A1 (en) Provisioning a virtual machine
US11436042B2 (en) Migrating the runtime state of a container between two nodes
JP2011128967A (ja) 仮想計算機の移動方法、仮想計算機システム及びプログラム
JP2013148984A (ja) プログラム、仮想マシン制御方法、情報処理装置および情報処理システム
US11604705B2 (en) System and method for cloning as SQL server AG databases in a hyperconverged system
US11604806B2 (en) System and method for highly available database service
JP6421470B2 (ja) 仮想マシンマイグレーションプログラム、仮想マシンマイグレーションシステムおよび仮想マシンマイグレーション方法
WO2024213056A1 (zh) 高性能计算集群的控制方法、电子设备以及存储介质
US8621260B1 (en) Site-level sub-cluster dependencies
CN106775846B (zh) 用于物理服务器的在线迁移的方法及装置
JP2013205946A (ja) 移動制御プログラム、移動制御方法および制御装置
US10747567B2 (en) Cluster check services for computing clusters
US20190243550A1 (en) System and method for migrating storage while in use
JP5557612B2 (ja) 計算機及び転送プログラム
US10540112B2 (en) System and method for migrating virtual machines with storage while in use

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160606

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170224

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170320

R150 Certificate of patent or registration of utility model

Ref document number: 6123626

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150