JP2019067184A - 情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP2019067184A
JP2019067184A JP2017192622A JP2017192622A JP2019067184A JP 2019067184 A JP2019067184 A JP 2019067184A JP 2017192622 A JP2017192622 A JP 2017192622A JP 2017192622 A JP2017192622 A JP 2017192622A JP 2019067184 A JP2019067184 A JP 2019067184A
Authority
JP
Japan
Prior art keywords
zone
api
response
resource
information processing
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
JP2017192622A
Other languages
English (en)
Inventor
栄介 道場
Eisuke Michiba
栄介 道場
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 JP2017192622A priority Critical patent/JP2019067184A/ja
Publication of JP2019067184A publication Critical patent/JP2019067184A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】情報処理装置、情報処理方法及び情報処理プログラムに関し、すべてのゾーンのコントローラへWeb APIを発行することにより生じる負荷を軽減することができる。【解決手段】リソースとリソースが存在するゾーンの対応を記録する第1テーブルと、Web APIに対するゾーンのコントローラ30からの応答の内容を記録する第2テーブルと、応答内容の第2テーブルへの記録後、所望のリソースを探索するWeb APIを受信し、第1テーブルに基づいて所望のリソースに対応するゾーンのコントローラへ発行された所望のリソースの存在確認の確認APIに対する応答によって所望のリソースを取得できない場合、第2テーブルの記録に基づいて第1テーブルを更新する更新処理部35とを有する。【選択図】図3

Description

情報処理装置、情報処理方法及び情報処理プログラムに関する。
一般のユーザ向けにクラウドコンピューティング環境をインターネットを介して提供するパブリッククラウドというサービスがある(特許文献1を参照)。パブリッククラウドでは、Web Application Programming Interface(Web API)の発行により、イメージ、ボリューム、ネットワークなどのリソースの探索が可能である。パブリッククラウドでは、地理的な場所を指すリージョンと、リージョン内において独立したロケーションを指すゾーンがあり、ゾーンはリージョン内に複数存在する。
特開2017−68296号公報
しかし、リソースは主にゾーンごとに存在するため、Web APIを受け取るリージョンマネージャは、リソースがどのゾーンに存在するか不明の場合にはすべてのゾーンのコントローラへWeb APIを発行する必要があり、効率が悪く膨大な負荷となっていた。
そこで、本発明の1つの側面では、すべてのゾーンのコントローラへWeb APIを発行することにより生じる負荷を軽減させることを目的とする。
態様の一例では、リソースと前記リソースが存在するゾーンの対応を記録する第1テーブルと、Web APIに対する前記ゾーンのコントローラからの応答の内容を記録する第2テーブルと、前記応答内容の前記第2テーブルへの記録後、所望のリソースを探索するWeb APIを受信し、前記第1テーブルに基づいて前記所望のリソースに対応するゾーンのコントローラへ発行された前記所望のリソースの存在確認の確認APIに対する応答によって前記所望のリソースを取得できない場合、前記第2テーブルの記録に基づいて前記第1テーブルを更新する更新処理部とを有する。
すべてのゾーンのコントローラへWeb APIを発行することにより生じる負荷を軽減することができる。
実施形態の情報処理装置を含むパブリッククラウドシステムの構成を示す図である。 レスポンス送信と内部処理が非同期により不要なAPIの発行が生じる場合の処理フローを示すフローチャートである。 実施形態の情報処理装置の機能構成を示す図である。 実施形態における第1テーブル及び第2テーブルを説明するための図である。 実施形態の情報処理装置のハードウェア構成を示す図である。 実施形態の情報処理装置におけるAPIを受信した場合の処理フロー(内部処理が成功する場合)を示すフローチャートである。 実施形態の情報処理装置におけるAPIを受信した時点の各テーブルを示す図である。 実施形態の情報処理装置におけるAPIの処理により第2テーブルに記録されたことを説明するための図である。 実施形態の情報処理装置における第1テーブルの更新のタイミングについて説明するためのフローチャートである。 実施形態の情報処理装置における第1テーブルの他の更新のタイミングについて説明するためのフローチャートである。 実施形態の情報処理装置における探索APIを受信した場合の処理フローを示すフローチャートである。 実施形態の情報処理装置における探索APIを受信した時点の各テーブルを示す図である。 実施形態の情報処理装置における探索APIの処理により第1テーブルを第2テーブルの内容で更新した際の各テーブルを示す図である。 実施形態の情報処理装置における探索APIの処理により第2テーブルに記録されたことを説明するための図である。 実施形態の情報処理装置におけるAPIを受信した場合の処理フロー(内部処理が失敗する場合)を示すフローチャートである。 実施形態の情報処理装置におけるAPIの処理により第2テーブルが記録されたことを説明するための図である。 実施形態の情報処理装置における探索APIの処理により第2テーブルが記録されたことを説明するための図である。
以下、本発明を実施するための形態について図面を参照しながら説明する。
図1は実施形態の情報処理装置(リージョンマネージャ)を含むパブリッククラウドシステム(以下、システムとも言う)の構成の一例を示す。なお、以下ではパブリッククラウドシステムを例にとって説明するが、これに限定されるものではなく、Web API(以下、単にAPIとも言う)の送信先が多数存在する通信システムなどにおいても適用可能である。
システム1には、地理的な場所を指すリージョン2と、リージョン2内において独立したロケーションを指すゾーン3(3a、3b)が存在する。ゾーン3はリージョン2内に複数存在する。例えば、ゾーン3aを第1ゾーン、ゾーン3bを第2ゾーンとする。システム1では、ユーザの要求を受け付けるユーザ装置4からAPIを発行することにより、イメージ、ボリューム、ネットワークなどのリソースの情報を探索することなどが可能である。
リージョン2には、ユーザ装置4からのAPIを受け取り、受け取ったAPIに応じてゾーン3のコントローラ30(30a、30b)へAPIを発行するリージョンマネージャ10がある。リージョンマネージャ10における処理の詳細については後述する。
ゾーン3には、リソースが存在し、リソースを管理するコントローラ30が存在する。ゾーン3とコントローラ30は1対1の関係である。すなわち、1つのゾーン3には1つのコントローラ30が存在し、コントローラ30がゾーン3のリソースを管理している。コントローラ30は、リージョンマネージャ10から発行されるAPIを受信し、受信したAPIに応じて応答(レスポンス)をリージョンマネージャ20へ送信する。具体的には、あるリソースがゾーン3aに存在するか否かを確認するAPIに対して、コントローラ30aは当該リソースが存在すると判断した場合には自身が管理するゾーン3aに当該リソースが存在する旨のレスポンスをリージョンマネージャ10へ返す。
また、コントローラ30は、リソース(例えば、仮想マシンVM(Virtual Machine)1)のスペックを変更したいというAPIに対して、他のゾーン3でなければVM1のスペックを変更できない場合、他のゾーン3へ移動させることを決定する。この決定に基づいて、コントローラ30は、他のゾーン3へVM1を移動させる旨の情報を含むレスポンスをリージョンマネージャ10へ返すとともに、レスポンスとは非同期にVM1を他のゾーン3へ移動させる。
このような非同期処理では、レスポンスは成功しても内部処理(VM1のゾーン間の移動処理)は失敗するケースがある。具体的には、APIを受け付けた際はVM1の第1ゾーンから第2ゾーンへの移動を行うことが可能であったため、VM1のゾーン移動をする旨のレスポンスを送ったが、その後の状況の変化(例えば、拡張処理中に空き容量がなくなる)などによりゾーン移動できなくなり、内部処理が失敗するケースである。このケースにおいてVM1がどのゾーンにあるか探索するためのAPIをユーザ装置4が発行した場合のリージョンマネージャ10の処理について図2を用いて説明する。
リージョンマネージャ10はユーザ装置4からAPIを受信すると(ステップS201)、後述する第1テーブルにゾーンの情報の記録があるか否かを判断する(ステップS202)。第1テーブルに全く記録がない場合(ステップS202でNo)、リージョンマネージャ10は全てのゾーンのコントローラ30へAPIを発行する(ステップS203)。このとき発行されるAPIはVM1がどのゾーンに存在するかを確認するためのものである。リージョンマネージャ10は、各ゾーンのコントローラ30からのレスポンスを受信すると、ステップS206へ進んでレスポンス内容に応じて第1テーブルを更新する。
一方、第1テーブルに記録がある場合(ステップS202でYes)、リージョンマネージャ10は第1テーブルにVM1があるか確認し、VM1がある場合にVM1に対応付けられたゾーン(例えば、第2ゾーン)にVM1が存在するか判断する(ステップS204)。このときの第1テーブルは、コントローラ30からのレスポンスに基づいてVM1が存在するゾーンが第1ゾーンから第2ゾーンへ更新されている。そのため、リージョンマネージャ10は、第2ゾーンのコントローラ30に対してVM1の存在確認のためのAPI(確認API)を発行し、コントローラ30からのレスポンス(VM1が存在するか否かの情報を含む)に基づいてVM1が存在するか判断する。
VM1は内部処理の失敗によって第1ゾーンに留まった状態のため、第2ゾーンのコントローラ30からのレスポンスにはVM1は存在しない旨の情報が含まれている。そのため、リージョンマネージャ10はVM1が第2ゾーンに存在しないと判断し(ステップS204でNo)、VM1がどのゾーンに存在するかを確認するため、全てのゾーンのコントローラ30へAPIを発行する(ステップS203)。
なお、VM1が第2ゾーンに存在する場合(ステップS204でYes)、すなわち内部処理が成功している場合、リージョンマネージャ10は該当ゾーンの第2ゾーンへユーザ装置4からのAPIを発行する(ステップS205)。リージョンマネージャ10は発行したAPIに対するレスポンスを第2ゾーンのコントローラ30から受信してレスポンス内容に応じて第1テーブルを更新する(ステップS206)。その後、リージョンマネージャ10はVM1が存在するゾーンの情報を含むレスポンスをユーザ装置4へ返す(ステップS207)。
このように、コントローラ30によるレスポンス送信と内部処理が非同期のため、不要なAPIの発行が生じ、負荷が増大してしまう。
実施形態の情報処理装置(リージョンマネージャ)ではそのような不要なAPIの発行を削減し、負荷を軽減させることを目的としている。
以下で実施形態の情報処理装置の機能構成について図3を用いて説明する。
リージョンマネージャ10は、受信部31、発行部32、判断部33、記録部34、更新処理部35、格納部36から構成されている。なお、構成はこれに限定されるものではなく、他の構成を含むものであってもよい。
受信部31は、ユーザ装置4からAPIを受信したり、コントローラ30からAPIに対するレスポンスを受信したりする。ユーザ装置4から受信するAPIは、リソース(例えば、VM1)のスペックを変更したい旨の要求や、リソース(例えば、VM1)が存在するゾーンを確認したい旨の要求などを含むものである。また、コントローラ30から受信するレスポンスは、リソース(例えば、VM1)のスペック変更に対応するために現在のゾーンから他のゾーンへリソースを移動する旨の情報や、リソース(例えば、VM1)の存在確認に対するリソースが存在するゾーンの情報などを含むものである。
発行部32は、ユーザ装置4から受信したAPIに基づいて、コントローラ30が管理するゾーン3にリソース(例えば、VM1)が存在するかを確認する存在確認のためのAPIを格納部36の第1テーブルを用いてコントローラ30へ発行する。また、発行部32は、ユーザ装置4から受信したAPIに基づいて、リソース(例えば、VM1)のスペックを変更したい旨の要求を含むAPIを第1テーブルを用いてコントローラ30へ発行する。また、発行部32は、更新後の第1テーブルに基づいて、コントローラ30が管理するゾーン3にリソース(例えば、VM1)が存在するか確認する存在確認のためのAPI(確認API)を発行する。また、発行部32はコントローラ30からのレスポンス結果をユーザ装置4へ送信する。
判断部33は、ユーザ装置4から受信したAPIに基づいて、第1テーブルにゾーン情報が存在するか否かを判断する。また、判断部33は、発行部32によって発行された存在確認のためのAPIに対するコントローラ30からのレスポンスに基づいて、スペックを変更したいリソースや探索対象のリソースがゾーン3に存在するか否かを判断する。すなわち、所望のリソースの存在確認の確認APIに対する応答に基づいて、所望のリソースが取得できたか否かを判断する。
記録部34は、例えばVM1のスペックを変更したい旨の要求のAPIに対するレスポンスがVM1を現在のゾーン(例えば、第1ゾーン)から他のゾーン(例えば、第2ゾーン)へ移動する旨の場合、VM1の移動元(移動前)及び移動先(移動後)のゾーンの情報などを第2テーブルに記録する。すなわち、記録部34は、発行されたWeb APIに対するコントローラ30からの応答内容に基づいて第2テーブルに記録を行う。
更新処理部35は、ユーザ装置4から受信したリソース(例えば、VM1)を探索するAPIにより、第1テーブルを用いてVM1が存在するゾーンのコントローラ30へVM1の存在が確認されたが、存在しない場合に第1テーブルを第2テーブルに基づいて更新する。
格納部36は、各種情報を格納し、例えば第1テーブル及び第2テーブルを格納する。ここで、第1テーブル及び第2テーブルについて図4を用いて説明する。
第1テーブルは、VM、ボリューム、仮想イメージ、ネットワークなどのリソース情報を格納するリソースと、そのリソースが存在するゾーンの情報を格納するゾーンから構成されている。すなわち、第1テーブルはリソースと、リソースが存在するゾーンの対応を記録するものである。
第1テーブルにより、各リソースがどのゾーンに存在するか把握することができる。この例ではVM1は第1ゾーンに存在し、VM2は第2ゾーンに存在し、ストレージ1は第3ゾーンに存在するとわかる。第1テーブルは後述する更新処理の際に更新されたり、定期的に更新されたりする。
第2テーブルは、タイム(時間)、リソース、デリート、ビフォー、アフターの項目から構成されている。すなわち、第2テーブルは、Web APIに対するゾーンのコントローラ30からの応答の内容を記録している。
タイムには、リージョンマネージャ10からのAPIに対してコントローラ30がレスポンスを発行した時間が格納される。
デリートには、リージョンマネージャ10からのAPIに対してコントローラ30がレスポンスを発行した際、リソースの削除がされたか否かを示す情報が格納される。リソースが削除される場合にはTrue、削除されない場合にはFalseが格納される。例えば、第1ゾーンからリソースを削除する要求のAPIに対するレスポンス(リソースを削除する旨のレスポンス)をコントローラ30から受信した場合、Trueが格納される。なお、リソースの削除以外の場合にはFalseが格納される。
ビフォーには、リージョンマネージャ10からのAPIに対してコントローラ30がレスポンスを発行した際のリソースの移動元のゾーン情報が格納される。
アフターには、リージョンマネージャ10からのAPIに対してコントローラ30がレスポンスを発行した際のリソースの移動先のゾーン情報が格納される。
図4の第2テーブルの1行目は、レスポンスを発行した時間が2016年1月6日の12時23分23.345秒、対象リソースがVM1、リソースの移動のためデリートがFalse、VM1の移動元が第1ゾーンで移動先が第2ゾーンであることを示している。また、第2テーブルの3行目では、ビフォー及びアフターの項目がNull(空白)となっている。これは、リソースが削除されるため、リソースの移動元及び移動先の情報を空白としている。
次に、実施形態の情報処理装置のハードウェア構成について図5を用いて説明する。リージョンマネージャ10のハードウェアは、Central Processor Unit(CPU)50、Hard Disk Drive(HDD)51、Random Access Memory(RAM)52、Read Only Memory(ROM)53、通信インタフェース54、バス55から構成されている。CPU50、HDD51、RAM52、ROM53、通信インタフェース54は、例えばバス55を介して互いに接続されている。
CPU50は、バス55を介して、HDD51などに格納される各種処理(例えば、後述する第1テーブルの更新処理など)を行うためのプログラムを読み込み、読み込んだプログラムをRAM52に一時的に格納し、そのプログラムにしたがって各種処理を行う。CPU50は、主として、上述した判断部33、記録部34、更新処理部35として機能する。
HDD51には、情報処理装置10の各種処理を行うためのアプリケーションプログラムや、情報処理装置10の処理に必要なデータなどが格納される。HDD51は、主として格納部36として機能する。
RAM52は、揮発性メモリであって、CPU50に実行させるためのOS(Operating System)プログラムやアプリケーションプログラムの一部が一時的に格納される。また、RAM52には、CPU50による処理に必要な各種データが格納される。
ROM53は、不揮発性メモリであって、ブートプログラムやBIOS(Basic Input/Output System)などのプログラムを記憶する。
通信インタフェース54は、外部(ユーザ装置4やコントローラ30など)とネットワークを介してデータの送受信を行うものである。通信インタフェース54は、主として受信部31、発行部32として機能する。
バス55は、各装置間の制御信号、データ信号などの授受を媒介する経路である。
次に、実施形態の情報処理装置におけるユーザ装置からAPIを受信した場合の処理について図6を用いて説明する。
例えば、ユーザ装置4から発行されたAPIを受信したリージョンマネージャ10がAPIを処理し、コントローラ30がリソース(例えば、VM1)を第1ゾーンから第2ゾーンへ移動させる処理を決定したことによる処理(テーブルの更新処理)について説明する。ここでのユーザ装置4からのAPIは、例えばVM1のスペックの変更を要求するためのAPIである。
リージョンマネージャ10は、ユーザ装置4によって発行されたAPIを受信すると(ステップS601)、APIの受信に基づいて格納部36の第1テーブルにゾーン情報の記録があるか否かを判断する(ステップS602)。すなわち、リージョンマネージャ10は、第1テーブルに全くゾーンの情報の記録がないか否かを確認する。
第1テーブルに記録がない場合(ステップS602でNo)、リージョンマネージャ10は全てのゾーンのコントローラ30へAPIを発行する(ステップS603)。このとき発行されるAPIはVM1がゾーンに存在するか否かを確認するためのものである。第1テーブルに全く記録がないため、全てのコントローラ30に確認する。リージョンマネージャ10は、各ゾーンのコントローラ30からのレスポンスを受信するとステップS606へ進んでレスポンス内容に応じて第2テーブルに記録する。
一方、第1テーブルに記録がある場合(ステップS602でYes)、リージョンマネージャ10は第1テーブルにVM1があるか確認し、VM1がある場合にVM1に対応付けられたゾーン(例えば、第1ゾーン)にVM1が存在するか判断する(ステップS604)。このとき、リージョンマネージャ10は、第1ゾーンのコントローラ30に対してVM1の存在確認のためのAPIを発行し、コントローラ30からのレスポンス(VM1が存在するか否かの情報を含む)に基づいてVM1が存在するか判断する。すなわち、所望のリソース(VM1)の存在確認の確認APIに対する応答に基づいて、所望のリソースが取得できたか否かを判断する。
ユーザ装置4からAPIを受信した時点における第1テーブル及び第2テーブルの例を図7に示す。第1テーブルではVM1は第1ゾーン、VM2は第2ゾーンに存在することを示しており、第2テーブルには記録がないことを示している。
VM1が第1ゾーンに存在する場合(ステップS604でYes)、リージョンマネージャ10はVM1が存在する第1ゾーンのコントローラ30に対してAPIを発行する(ステップS605)。ここで発行されるAPIは、ユーザ装置4からのAPI、すなわちVM1のスペックの変更を要求するためのAPIである。なお、VM1が第1ゾーンに存在しない場合(ステップS604でNo)には第1テーブル更新処理ステップ(破線の処理ステップ)が行われるが、第1テーブルの更新処理が行われる場合については以下で図10を用いて説明する。
APIを受信したコントローラ30は、VM1のスペックを第1ゾーンでは変更することができないと判断し、変更可能なゾーン(例えば、第2ゾーン)へVM1を移動させることを決定する。コントローラ30はVM1を第1ゾーンから第2ゾーンへ移動させる旨のレスポンスをリージョンマネージャ10へ送信するとともに、レスポンスの送信とは非同期にVM1を第1ゾーンから第2ゾーンへ移動する処理を行う。
リージョンマネージャ10は、コントローラ30からレスポンスを受信すると、レスポンス内容に応じて第2テーブルに記録を行う(ステップS606)。このとき記録される内容が図8の第2テーブルに示されている。タイムにはコントローラ30がレスポンスを発行した時間が記録され、リソースには対象リソースのVM1が記録され、デリートにはVM1が削除されていないためFalseが記録され、ビフォーには移動元の第1ゾーンが記録され、アフターには移動先の第2ゾーンが記録される。このとき、リージョンマネージャ10は第1テーブルの更新を行わない。第1テーブルの更新のタイミングについては以下で説明する。
第2テーブルの記録が完了すると、リージョンマネージャ10はユーザ装置4に対してVM1のスペックの変更のために第1ゾーンから第2ゾーンへVM1が移動される旨のレスポンスを返す(ステップS607)。
ここで、第1テーブルの更新タイミングについて図9A、図9Bを用いて説明する。図9Aは後述する第1テーブル更新処理が発生した際に第1テーブルを更新するフローであり、図9Bは第1テーブル更新処理の有無に関わらず所定の時間経過によって第1テーブルを更新するフローである。
まず、図9Aのフローについて説明する。後述する第1テーブル更新処理が開始されると、リージョンマネージャ10は第1テーブル上の該当リソースを第2テーブルの最新の記録に基づいて更新する(ステップS901a)。具体的には、第2テーブルの最新の記録においてVM1が第1ゾーンから第2ゾーンへ移動したと記録されている場合には、第1テーブルにおけるVM1のゾーンを第1ゾーンから第2ゾーンへ変更する。すなわち、リージョンマネージャ10は、ステップS606では第2テーブルへの記録のみで第1テーブルの更新をせず、第1テーブルの更新処理が開始された際に第2テーブルの記録に基づいて第1テーブルを更新する。
また、図9Bのフローについて説明する。リージョンマネージャ10は、前回に第1テーブルを更新してから一定の時間x(秒)以上が経過したか否かを判断する(ステップS901b)。一定の時間x以上が経過した場合(ステップS901bでYes)、リージョンマネージャ10は第1テーブルを第2テーブルの記録に基づいて更新する(ステップS902b)。一方、一定の時間x以上が経過していない場合(ステップS901bでNo)、リージョンマネージャ10は第1テーブルを更新しない。
図6のステップS601からS607の処理によりVM1は第2ゾーンへ移動し、第2ゾーンへの移動の記録が第2テーブルにされているが、第1テーブルはまだ更新されていない状態となっている。以下では、時間の経過による第1テーブルの更新ではない第1テーブルの更新処理(図9Aの場合の更新処理)について図10を用いて説明する。
図10に示すフローは、図6のステップS601からS607の処理が完了した後に、ユーザ装置4によってAPIが発行された場合のフローである。
リージョンマネージャ10は、ユーザ装置4によって発行されたAPIを受信する(ステップS1001)。ここでのユーザ装置4からのAPIは、例えばVM1がどのゾーンにあるか探索するためのAPI(探索API)である。
リージョンマネージャ10は、APIの受信に基づいて格納部36の第1テーブルにゾーン情報の記録があるか否かを判断する(ステップS1002)。すなわち、リージョンマネージャ10は、第1テーブルに全くゾーンの情報の記録がないか否かを確認する。
ユーザ装置4から探索APIを受信した時点における第1テーブル及び第2テーブルの例を図11に示す。第1テーブルは更新されておらず図8の第1テーブルと同様である。また、第2テーブルについても図8の第2テーブルと同様である。このとき、コントローラ30の移動処理によって第1ゾーンのVM1(破線)は第2ゾーンへ移動された状態となっている。すなわち、内部処理が成功した状態となっている。
第1テーブルに記録がない場合(ステップS1002でNo)、リージョンマネージャ10は全てのゾーンのコントローラ30へAPIを発行する(ステップS1003)。このとき発行されるAPIはVM1がどのゾーンに存在するか否かを確認するためのものである。第1テーブルに全く記録がないため、全てのコントローラ30に確認する。リージョンマネージャ10は、各ゾーンのコントローラ30からのレスポンスを受信すると、ステップS1007へ進んでレスポンス内容に応じて第2テーブルに記録する。
一方、第1テーブルに記録がある場合(ステップS1002でYes)、リージョンマネージャ10は第1テーブルにVM1があるか確認し、VM1がある場合にVM1に対応付けられたゾーン(例えば、第1ゾーン)にVM1が存在するか判断する(ステップS1004)。このとき、リージョンマネージャ10は、第1ゾーンのコントローラ30に対してVM1の存在確認のためのAPIを発行し、コントローラ30からのレスポンス(VM1が存在するか否かの情報を含む)に基づいてVM1が存在するか判断する。
VM1は第1ゾーンから第2ゾーンへ移動しているため、コントローラ30からのレスポンスにはVM1は第1ゾーンに存在しない旨の情報が含まれている。すなわち、所望のリソース(VM1)に対応するゾーン(第1ゾーン)のコントローラ30へ発行された所望のリソースの存在確認のAPIに対する応答によって所望のリソースを取得できない。
これにより、VM1は第1ゾーンに存在しない(ステップS1004でNo)と判断し、リージョンマネージャ10は第1テーブルの更新処理を行う(ステップS1005)。すなわち、リージョンマネージャ10は第2テーブルの内容(アフターに記録された最新の第2ゾーン)で第1テーブルのVM1のゾーンを第1ゾーンから第2ゾーンへ更新する。更新後の第1テーブルの内容を図12に示す。第1テーブルのVM1のゾーンが第1ゾーンから第2ゾーンへ更新されている。なお、このとき第2テーブルの変更はない。
その後、リージョンマネージャ10はステップS1002へ戻り、格納部36の第1テーブルにゾーン情報の記録があるか否かを判断する。記録はあるため、ステップS1004と同様、リージョンマネージャ10は更新された第1テーブルに基づいてVM1が第2ゾーンに存在するか判断する。この場合、VM1は第2ゾーンに存在するため、リージョンマネージャ10はVM1が存在する第2ゾーンのコントローラ30に対してAPIを発行する(ステップS1006)。ここで発行されるAPIは、ユーザ装置4からのAPI、すなわちVM1がどのゾーンにあるか探索するための探索APIである。
このAPIを受信したコントローラ30は、VM1が第2ゾーンに存在するため、VM1が第2ゾーンに存在する旨のレスポンスをリージョンマネージャ10へ送信する。
リージョンマネージャ10は、コントローラ30からレスポンスを受信すると、レスポンス内容に応じて第2テーブルに記録する(ステップS1007)。このとき記録された第2テーブルの内容が図13に示されている。2行目のデータが今回記録された内容である。タイムにはコントローラ30がレスポンスを発行した時間が記録され、リソースには対象リソースのVM1が記録され、デリートにはVM1が削除されていないためFalseが記録され、ビフォーには移動元の第2ゾーンが記録され、アフターには移動先の第2ゾーンが記録される。ここで、VM1は既に第2ゾーンへ移動され、レスポンスを返す時点では移動前も移動後も第2ゾーンに存在しているため、ビフォーもアフターも第2ゾーンとなっている。このとき、リージョンマネージャ10は第1テーブルの更新を行わない。
第2テーブルの記録が完了すると、リージョンマネージャ10はユーザ装置4に対してVM1が第2ゾーンに存在する旨のレスポンスを返す(ステップS1008)。
上述したように、図6のステップS601からS607の処理の間にVM1が第2ゾーンへ移動するケースもある。しかし、コントローラ30による移動処理はリージョンマネージャ10へのレスポンス送信とは非同期であるため、VM1が第2ゾーンへ移動せずに第1ゾーンに残ったままのケースもある。
以下では、VM1が第1ゾーンから第2ゾーンへ移動したとするレスポンスを返信したが、実際にはVM1が第1ゾーンに未だ残っている状態におけるリージョンマネージャの処理について図14を用いて説明する。
図14に示すフローは、図6のステップS601からS607の処理が完了した後に、ユーザ装置4によってAPIが発行された場合のフローである。このとき、第2テーブルは図15に示すようにコントローラ30からのレスポンスに基づいて記録されたが、第1ゾーンのVM1は第2ゾーンへ移動せずに第1ゾーンに残った状態(内部処理が失敗した状態)となっている。
この状態において、リージョンマネージャ10は、ユーザ装置4によって発行されたAPIを受信する(ステップS1401)。ここでのユーザ装置4からのAPIは、例えばVM1がどのゾーンにあるか探索するための探索APIである。
リージョンマネージャ10は、APIの受信に基づいて格納部36の第1テーブルにゾーン情報の記録があるか否かを判断する(ステップS1402)。すなわち、リージョンマネージャ10は、第1テーブルに全くゾーンの情報の記録がないか否かを確認する。
第1テーブルに記録がない場合(ステップS1402でNo)、リージョンマネージャ10は全てのゾーンのコントローラ30へAPIを発行する(ステップS1403)。このとき発行されるAPIはVM1がゾーンに存在するか否かを確認するためのものである。第1テーブルに全く記録がないため、全てのコントローラ30に確認する。リージョンマネージャ10は、各ゾーンのコントローラ30からのレスポンスを受信すると、ステップS1407へ進んでレスポンス内容に応じて第2テーブルに記録する。
一方、第1テーブルに記録がある場合(ステップS1402でYes)、リージョンマネージャ10は第1テーブルにVM1があるか確認し、VM1がある場合にVM1に対応付けられたゾーン(例えば、第1ゾーン)にVM1が存在するか判断する(ステップS1404)。このとき、リージョンマネージャ10は、第1ゾーンのコントローラ30に対してVM1の存在確認のためのAPIを発行し、コントローラ30からのレスポンス(VM1が存在するか否かの情報を含む)に基づいてVM1が存在するか判断する。
この場合、VM1は第1ゾーンに存在するため、コントローラ30からのレスポンスにはVM1が第1ゾーンに存在する旨の情報が含まれている。これにより、VM1は第1ゾーンに存在する(ステップS1404でYes)と判断し、リージョンマネージャ10はVM1が存在する第1ゾーンのコントローラ30に対してAPIを発行する(ステップS1405)。ここで発行されるAPIは、ユーザ装置4からのAPI、すなわちVM1がどのゾーンにあるか探索するためのAPIである。なお、VM1が第1ゾーンに存在しない場合(ステップS1404でNo)には第1テーブル更新処理ステップ(破線の処理ステップ)が行われるが、このケースでは第1テーブルの更新処理は行われない。
APIを受信したコントローラ30は、VM1が第1ゾーンに存在するため、VM1が第1ゾーンに存在する旨の情報を含むレスポンスをリージョンマネージャ10へ返す。
リージョンマネージャ10は、コントローラ30からレスポンスを受信すると、レスポンス内容に応じて第2テーブルに記録する(ステップS1406)。このとき記録された第2テーブルの内容が図16に示されている。タイムにはコントローラ30がレスポンスを発行した時間が記録され、リソースにはリソース対象のVM1が記録され、デリートにはVM1が削除されていないためFalseが記録され、ビフォーには移動元の第1ゾーンが記録され、アフターには移動先の第1ゾーンが記録される。このとき、リージョンマネージャ10は第1テーブルの更新を行わない。
第2テーブルの記録が完了すると、リージョンマネージャ10はユーザ装置4に対してVM1が第1ゾーンに存在する旨の情報を含むレスポンスを返す(ステップS1407)。
実施形態の情報処理装置の1つの側面によれば、すべてのゾーンのコントローラへWeb APIを発行することにより生じる負荷を軽減することができる。第1テーブルの更新処理を遅らせることで、内部処理が成功した場合、従来よりも更新時間を要する。しかし、近年のパブリッククラウドにおける膨大なゾーンの増加が予想され、内部処理が失敗するケースも多い。そのため、更新処理を遅らせることで全てのコントローラへAPIを発行することによる負荷を軽減でき、リソース情報を取得することができる。
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)リソースと前記リソースが存在するゾーンの対応を記録する第1テーブルと、
Web APIに対する前記ゾーンのコントローラからの応答の内容を記録する第2テーブルとを備える情報処理装置における情報処理方法であって、
前記応答内容の前記第2テーブルへの記録後、所望のリソースを探索するWeb APIを受信し、前記第1テーブルに基づいて前記所望のリソースに対応するゾーンのコントローラへ発行された前記所望のリソースの存在確認の確認APIに対する応答によって前記所望のリソースを取得できない場合、
前記第2テーブルの記録に基づいて前記第1テーブルを更新する、
ことを特徴とする情報処理方法。
(付記2)前記第2テーブルにおけるリソースの移動先に記録されたゾーンの情報に基づいて前記第1テーブルを更新することを特徴とする付記1に記載の情報処理方法。
(付記3)前記所望のリソースの存在確認の確認APIに対する応答に基づいて、前記所望のリソースが取得できたか否かを判断する、
ことを特徴とする付記1又は2に記載の情報処理方法。
(付記4)前記第1テーブルの更新後、
前記更新後の第1テーブルに基づいて、前記所望のリソースに対応するゾーンのコントローラへ前記所望のリソースの存在確認の確認APIを発行し、
発行された前記Web APIに対する前記コントローラからの応答内容に基づいて前記第2テーブルに記録を行う、
ことを特徴とする付記1から3のいずれかに記載の情報処理方法。
(付記5)リソースと前記リソースが存在するゾーンの対応を記録する第1テーブルと、
Web APIに対する前記ゾーンのコントローラからの応答の内容を記録する第2テーブルとを備える情報処理装置によって実行される情報処理プログラムであって、
前記応答内容の前記第2テーブルへの記録後、所望のリソースを探索するWeb APIを受信し、前記第1テーブルに基づいて前記所望のリソースに対応するゾーンのコントローラへ発行された前記所望のリソースの存在確認の確認APIに対する応答によって前記所望のリソースを取得できない場合、
前記第2テーブルの記録に基づいて前記第1テーブルを更新する、
処理を前記情報処理装置のコンピュータに実行させることを特徴とする情報処理プログラム。
(付記6)前記第2テーブルにおけるリソースの移動先に記録されたゾーンの情報に基づいて前記第1テーブルを更新することを特徴とする付記5に記載の情報処理プログラム。
(付記7)前記所望のリソースの存在確認の確認APIに対する応答に基づいて、前記所望のリソースが取得できたか否かを判断する、
ことを特徴とする付記5又は6に記載の情報処理プログラム。
(付記8)前記第1テーブルの更新後、
前記更新後の第1テーブルに基づいて、前記所望のリソースに対応するゾーンのコントローラへ前記所望のリソースの存在確認の確認APIを発行し、
発行された前記Web APIに対する前記コントローラからの応答内容に基づいて前記第2テーブルに記録を行う、
ことを特徴とする付記5から7のいずれかに記載の情報処理プログラム。
1 パブリッククラウドシステム
2 リージョン
3(3a、3b) ゾーン
4 ユーザ装置
10 リージョンマネージャ
30(30a、30b) コントローラ
31 受信部
32 発行部
33 判断部
34 記録部
35 更新処理部
36 格納部
50 CPU
51 HDD
52 RAM
53 ROM
54 通信インタフェース
55 バス

Claims (6)

  1. リソースと前記リソースが存在するゾーンの対応を記録する第1テーブルと、
    Web APIに対する前記ゾーンのコントローラからの応答の内容を記録する第2テーブルと、
    前記応答内容の前記第2テーブルへの記録後、所望のリソースを探索するWeb APIを受信し、前記第1テーブルに基づいて前記所望のリソースに対応するゾーンのコントローラへ発行された前記所望のリソースの存在確認の確認APIに対する応答によって前記所望のリソースを取得できない場合、
    前記第2テーブルの記録に基づいて前記第1テーブルを更新する更新処理部とを、
    有することを特徴とする情報処理装置。
  2. 前記更新処理部は、前記第2テーブルにおけるリソースの移動先に記録されたゾーンの情報に基づいて前記第1テーブルを更新することを特徴とする請求項1に記載の情報処理装置。
  3. 前記所望のリソースの存在確認の確認APIに対する応答に基づいて、前記所望のリソースが取得できたか否かを判断する判断部を、
    更に有することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記第1テーブルの更新後、
    前記更新後の第1テーブルに基づいて、前記所望のリソースに対応するゾーンのコントローラへ前記所望のリソースの存在確認の確認APIを発行する発行部と、
    発行された前記確認APIに対する前記コントローラからの応答内容に基づいて前記第2テーブルに記録を行う記録部とを、
    更に有することを特徴とする請求項1から3のいずれかに記載の情報処理装置。
  5. リソースと前記リソースが存在するゾーンの対応を記録する第1テーブルと、
    Web APIに対する前記ゾーンのコントローラからの応答の内容を記録する第2テーブルとを備える情報処理装置における情報処理方法であって、
    前記応答内容の前記第2テーブルへの記録後、所望のリソースを探索するWeb APIを受信し、前記第1テーブルに基づいて前記所望のリソースに対応するゾーンのコントローラへ発行された前記所望のリソースの存在確認の確認APIに対する応答によって前記所望のリソースを取得できない場合、
    前記第2テーブルの記録に基づいて前記第1テーブルを更新する、
    ことを特徴とする情報処理方法。
  6. リソースと前記リソースが存在するゾーンの対応を記録する第1テーブルと、
    Web APIに対する前記ゾーンのコントローラからの応答の内容を記録する第2テーブルとを備える情報処理装置によって実行される情報処理プログラムであって、
    前記応答内容の前記第2テーブルへの記録後、所望のリソースを探索するWeb APIを受信し、前記第1テーブルに基づいて前記所望のリソースに対応するゾーンのコントローラへ発行された前記所望のリソースの存在確認の確認APIに対する応答によって前記所望のリソースを取得できない場合、
    前記第2テーブルの記録に基づいて前記第1テーブルを更新する、
    処理を前記情報処理装置のコンピュータに実行させることを特徴とする情報処理プログラム。
JP2017192622A 2017-10-02 2017-10-02 情報処理装置、情報処理方法及び情報処理プログラム Pending JP2019067184A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017192622A JP2019067184A (ja) 2017-10-02 2017-10-02 情報処理装置、情報処理方法及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017192622A JP2019067184A (ja) 2017-10-02 2017-10-02 情報処理装置、情報処理方法及び情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2019067184A true JP2019067184A (ja) 2019-04-25

Family

ID=66338276

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017192622A Pending JP2019067184A (ja) 2017-10-02 2017-10-02 情報処理装置、情報処理方法及び情報処理プログラム

Country Status (1)

Country Link
JP (1) JP2019067184A (ja)

Similar Documents

Publication Publication Date Title
EP3762826B1 (en) Live migration of virtual machines in distributed computing systems
US11126358B2 (en) Data migration agnostic of pathing software or underlying protocol
US10726518B2 (en) Capacity reservation for virtualized graphics processing
KR102457611B1 (ko) 터넌트-어웨어 스토리지 쉐어링 플랫폼을 위한 방법 및 장치
US9740759B1 (en) Cloud migrator
US10157214B1 (en) Process for data migration between document stores
CN110908609B (zh) 一种磁盘处理的方法、系统、设备及可读存储介质
CN105027068A (zh) 在存储系统中执行复制
US9612766B2 (en) Systems and methods for shadow migration progress estimation
JP6627323B2 (ja) 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
JP2009237826A (ja) ストレージシステム及びそのボリューム管理方法
CN110520844A (zh) 云管理平台、虚拟机管理方法及其系统
US20210144515A1 (en) Systems and methods for multi-access edge computing node selection
CN102929958A (zh) 元数据的处理方法,代理、转发设备,服务器及计算系统
US10747474B2 (en) Online cluster expansion for storage system with decoupled logical and physical capacity
US8838768B2 (en) Computer system and disk sharing method used thereby
US10776173B1 (en) Local placement of resource instances in a distributed system
CN107329798B (zh) 数据复制的方法、装置和虚拟化系统
CN112804366B (zh) 用于解析域名的方法和装置
KR101973946B1 (ko) 분산형 컴퓨팅 가속화 플랫폼 장치
JP6627808B2 (ja) 仮想マシン移動制御方法と通信システムとコントローラ及びプログラム
WO2023221508A1 (zh) 一种浮动ip分配方法、装置、电子设备及存储介质
JP2019067184A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
CN115562871A (zh) 内存分配管理的方法和装置
US20130318102A1 (en) Data Handling in a Cloud Computing Environment