JP7401776B2 - Control method, control program and information processing device - Google Patents
Control method, control program and information processing device Download PDFInfo
- Publication number
- JP7401776B2 JP7401776B2 JP2020085396A JP2020085396A JP7401776B2 JP 7401776 B2 JP7401776 B2 JP 7401776B2 JP 2020085396 A JP2020085396 A JP 2020085396A JP 2020085396 A JP2020085396 A JP 2020085396A JP 7401776 B2 JP7401776 B2 JP 7401776B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- virtual machine
- specific information
- virtual machines
- management server
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 72
- 238000000034 method Methods 0.000 title claims description 26
- 230000008569 process Effects 0.000 claims description 6
- 238000007726 management method Methods 0.000 description 130
- 230000006870 function Effects 0.000 description 66
- 238000010586 diagram Methods 0.000 description 29
- 238000006243 chemical reaction Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000015654 memory Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Description
本発明は制御方法、制御プログラムおよび情報処理装置に関する。 The present invention relates to a control method, a control program, and an information processing device.
情報処理の分野では、物理的なコンピュータ(物理マシンや物理ホストと呼ぶことがある)上で、複数の仮想的なコンピュータ(仮想マシンや仮想ホストと呼ぶことがある)を動作させる仮想化技術が利用されている。各仮想マシン上では、OS(Operating System)などのソフトウェアを実行できる。また、情報処理システムでは比較的多くの仮想マシンが実行され得る。 In the field of information processing, virtualization technology is used to run multiple virtual computers (sometimes called virtual machines or virtual hosts) on a physical computer (sometimes called physical machines or physical hosts). It's being used. Software such as an OS (Operating System) can be executed on each virtual machine. Furthermore, a relatively large number of virtual machines can be executed in an information processing system.
ところで、情報処理システムでは、サーバコンピュータなどの情報処理装置が、複数のクライアントコンピュータから所定の処理の要求を受け付けたり、情報の収集を行ったりすることがある。 By the way, in an information processing system, an information processing apparatus such as a server computer may receive requests for predetermined processing or collect information from a plurality of client computers.
例えば、ホストコンピュータより新聞記事などの情報をダウンロードする自動通信装置の提案がある。提案の自動通信装置は、設定した収集日時に対し、ユーザの個人情報あるいは当該装置に固有の番号を用いて、ネットワーク回線を介してホストコンピュータとの通信を開始する日時を演算により決定する。 For example, there have been proposals for automatic communication devices that download information such as newspaper articles from a host computer. The proposed automatic communication device uses the user's personal information or a number unique to the device to determine the date and time to start communication with the host computer via the network line based on the set collection date and time.
また、ユーザにより選択された時間範囲内において乱数によりコンテンツサーバへのダウンロード要求タイミングを決定し、決定したダウンロード要求タイミングに従って、ダウンロード要求情報をコンテンツサーバに送信するコンピュータの提案もある。 There is also a proposal for a computer that determines the timing of a download request to a content server using random numbers within a time range selected by the user, and transmits download request information to the content server in accordance with the determined download request timing.
情報処理装置が複数の仮想マシンから情報を受信することがある。この場合、複数の仮想マシンによる情報の送信が比較的短い時間内に集中すると、情報を受信する情報処理装置の負荷が増大する。 An information processing device may receive information from multiple virtual machines. In this case, if information transmission by a plurality of virtual machines is concentrated within a relatively short period of time, the load on the information processing device that receives the information increases.
1つの側面では、本発明は、負荷集中を軽減できる制御方法、制御プログラムおよび情報処理装置を提供することを目的とする。 In one aspect, the present invention aims to provide a control method, a control program, and an information processing device that can reduce load concentration.
1つの態様では、第1の情報処理装置と複数の仮想マシンを動作させる1以上の第2の情報処理装置とを含むシステムで実行される仮想マシンの制御方法が提供される。この制御方法では、第1の情報処理装置または複数の仮想マシンそれぞれが、当該仮想マシンを特定する特定情報を取得すると、特定情報を入力とするハッシュ関数の関数値を算出し、複数の仮想マシンそれぞれが、自仮想マシンに対応する関数値に基づくタイミングで、第1の情報処理装置に情報を送信する。 In one aspect, a method for controlling a virtual machine is provided that is executed in a system including a first information processing apparatus and one or more second information processing apparatuses that operate a plurality of virtual machines. In this control method, when the first information processing device or each of the plurality of virtual machines acquires specific information that identifies the virtual machine, the first information processing device or each of the plurality of virtual machines calculates a function value of a hash function using the specific information as input, and Each of the virtual machines transmits information to the first information processing device at a timing based on a function value corresponding to its own virtual machine.
また、1つの態様では、制御プログラムが提供される。
また、1つの態様では、情報処理装置が提供される。
Also, in one aspect, a control program is provided.
Further, in one aspect, an information processing device is provided.
1つの側面では、負荷集中を軽減できる。 One aspect is that load concentration can be reduced.
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
The present embodiment will be described below with reference to the drawings.
[First embodiment]
A first embodiment will be described.
図1は、第1の実施の形態の情報処理装置の処理例を示す図である。
システム1は、情報処理装置10,20を含む。情報処理装置10,20は、ネットワークを介して接続される。情報処理装置10は、システム1で動作する複数の仮想マシンから情報を受信する。情報処理装置20は、複数の仮想マシンを実行する。システム1は、それぞれが1以上の仮想マシンを動作させる複数の情報処理装置を含んでもよい。
FIG. 1 is a diagram illustrating a processing example of the information processing apparatus according to the first embodiment.
System 1 includes
情報処理装置10は、記憶部11および処理部12を有する。情報処理装置20は、記憶部21および処理部22を有する。
記憶部11,21は、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部12,22は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部12はプログラムを実行するプロセッサでもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
The
The
例えば、情報処理装置20では、処理部22によりハイパーバイザと呼ばれるソフトウェアが実行され、ハイパーバイザの機能により、記憶部21や処理部22のリソースが、情報処理装置20上の仮想マシンに割り当てられる。情報処理装置20は、仮想マシン31,32,33,…を実行する。
For example, in the
システム1では、仮想マシン31,32,33,…それぞれから情報処理装置10に対して、特定の処理の要求など、所定の情報が送信されることがある。システム1では、仮想マシン31,32,33,…それぞれから情報処理装置10に対する情報の送信のタイミングが、次のように制御される。
In the system 1, each of the
まず、仮想マシン31,32,33,…それぞれは、仮想マシン31,32,33,…の作成や起動/停止などを制御する制御装置(図1では図示を省略している)から、自仮想マシンを特定する特定情報を取得する。特定情報は、システム1の中で、仮想マシンを一意に識別する情報である。特定情報の例は、当該管理装置における仮想マシンの管理方法による。例えば、特定情報は、仮想マシン単位に一意に付与される仮想マシンID(IDentifier)でもよい。あるいは、特定情報は、例えば仮想マシン31,32,33,…がクラウドサービスシステムにより提供されるものである場合、クラウドサービスの利用に関する契約を示す契約IDとユーザが仮想マシンに付与した名称とを含む組合せ情報でもよい。
First, each of the
例えば、仮想マシン31は、仮想マシン31を特定する特定情報k1を取得する。仮想マシン32は、仮想マシン32を特定する特定情報k2を取得する。仮想マシン33は、仮想マシン33を特定する特定情報k3を取得する。他の仮想マシンも、自仮想マシンを特定する特定情報を取得する。取得された特定情報は記憶部21に格納される。
For example, the
第1の例では、仮想マシン31,32,33,…は、それぞれ特定情報k1,k2,k3,…を取得すると、それぞれ取得した特定情報k1,k2,k3,…を情報処理装置10に送信する。この場合、仮想マシン31,32,33,…それぞれによる特定情報の取得および情報処理装置10への特定情報の送信は、該当の仮想マシンが作成され起動されたときに実行される。仮想マシン31,32,33,…それぞれが作成され起動されるタイミングは、互いに異なることが多いため、情報処理装置10への特定情報k1,k2,k3,…の送信は、互いに異なるタイミングで行われる可能性が高い。
In the first example, when the
情報処理装置10は、仮想マシン31,32,33,…それぞれから、当該仮想マシンを特定する特定情報を取得する。取得された特定情報は記憶部11に格納される。情報処理装置10は、特定情報を取得すると、当該特定情報を入力とするハッシュ関数の関数値を算出する。
The
ここで、変数をxとして、ハッシュ関数をhash(x)と表す。ハッシュ関数hash(x)には、例えば、SHA-256(Secure Hash Algorithm 256-bits)やMD5(message digest algorithm 5)などを用いることができる。ハッシュ関数の関数値は、ハッシュ値と呼ばれることがある。 Here, the variable is x, and the hash function is expressed as hash(x). For the hash function hash(x), for example, SHA-256 (Secure Hash Algorithm 256-bits) or MD5 (message digest algorithm 5) can be used. The function value of a hash function is sometimes called a hash value.
例えば、処理部12は、仮想マシン31から特定情報k1を取得すると、特定情報k1を入力とするハッシュ関数の関数値hash(k1)を算出する。更に、処理部12は、関数値hash(x)を時刻に変換する関数f(hash(x))を用いて、関数値hash(k1)に対応する時刻time1=f(hash(k1))を求める。処理部12は、求めた時刻time1を仮想マシン31に送信する。
For example, upon acquiring the specific information k1 from the
ここで、関数f(hash(x))は、関数値hash(x)を、特定期間に含まれる何れかの時刻に対応付ける関数である。例えば、関数f(hash(x))は、1つの関数値hash(x)を当該特定期間に含まれる1つの時刻に一意に対応付けるものでもよいし、2つ以上の一定数の関数値hash(x)を当該特定期間に含まれる1つの時刻に対応付けるものでもよい。例えば、MD5では128ビットの関数値であり、SHA-256では256ビットの関数値となる。このため、仮想マシンの数が比較的多く(例えば、10000程度)、特定期間の長さが比較的短い(例えば、1週間程度)場合であっても、2つ以上の特定情報xに対して、関数f(hash(x))で求められる時刻が衝突する可能性は低い。 Here, the function f(hash(x)) is a function that associates the function value hash(x) with any time included in the specific period. For example, the function f (hash (x)) may uniquely associate one function value hash ( x) may be associated with one time included in the specific period. For example, MD5 has a 128-bit function value, and SHA-256 has a 256-bit function value. Therefore, even if the number of virtual machines is relatively large (for example, about 10,000) and the length of the specific period is relatively short (for example, about one week), two or more pieces of specific information , it is unlikely that the times determined by the function f(hash(x)) will collide.
処理部12は、仮想マシン32に対して、時刻time2=f(hash(k2))を提供する。処理部12は、仮想マシン33に対して、時刻time3=f(hash(k3))を提供する。処理部12は、他の仮想マシンに対しても、当該他の仮想マシンの特定情報を入力としたハッシュ関数の関数値に対応する時刻を提供する。
The
このように、第1の例では、処理部12は、複数の仮想マシンそれぞれに対応する関数値に基づいて、当該仮想マシンから情報処理装置10に情報を送信するタイミングを、複数の仮想マシンそれぞれに対して指示する。
In this way, in the first example, the
第2の例として、情報処理装置10ではなく、仮想マシン31,32,33,…それぞれが、自仮想マシンの特定情報を入力とするハッシュ関数の関数値と、当該関数値に対応する時刻とを求めてもよい。なお、仮想マシン31,32,33,…それぞれにより実行される処理は、処理部22により実行される処理であると言える。
As a second example, instead of the
例えば、仮想マシン31は、取得した特定情報k1に基づいて、時刻time1=f(hash(k1))を求めてもよい。また、仮想マシン32は、取得した特定情報k2に基づいて、時刻time2=f(hash(k2))を求めてもよい。更に、仮想マシン33は、取得した特定情報k3に基づいて、時刻time3=f(hash(k3))を求めてもよい。他の仮想マシンも同様である。第2の例の場合、仮想マシン31,32,33,…は、情報処理装置10に特定情報を送信しなくてよい。
For example, the
仮想マシン31,32,33,…それぞれは、自仮想マシンに対応するハッシュ関数の関数値に基づくタイミングで、情報処理装置10に情報を送信する。
例えば、仮想マシン31は、時刻time1に達したことを検出すると、情報処理装置10に情報を送信する。仮想マシン32は、時刻time2に達したことを検出すると、情報処理装置10に情報を送信する。仮想マシン33は、時刻time3に達したことを検出すると、情報処理装置10に情報を送信する。
Each of the
For example, when the
このように、情報処理装置10または仮想マシン31,32,33,…それぞれにより、当該仮想マシンを特定する特定情報が取得されると、特定情報を入力とするハッシュ関数の関数値が算出される。仮想マシン31,32,33,…により、自仮想マシンに対応する関数値に基づくタイミングで、情報処理装置10に情報が送信される。
In this way, when the
これにより、情報処理装置10における負荷集中を軽減できる。
すなわち、ハッシュ関数hash(x)により、仮想マシンの特定情報xに対して、十分に分散したハッシュ値を得ることができる。このため、当該ハッシュ値に基づくタイミングで、仮想マシン31,32,33,…それぞれから情報処理装置10への情報の送信を行うことで、仮想マシン31,32,33,…それぞれによる送信タイミングを適切に分散させることができる。例えば、仮想マシン31,32,33,…による送信タイミングを示す時刻time1,time2,time3,…を適切に分散させることができる。よって、比較的短い期間のうちに、仮想マシン31,32,33,…から情報処理装置10へ大量の情報が集中的に送信される可能性が低減される。その結果、情報処理装置10における負荷集中を軽減することができる。
Thereby, load concentration on the
That is, by using the hash function hash(x), it is possible to obtain sufficiently distributed hash values for the specific information x of the virtual machine. Therefore, by transmitting information from each of the
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
[Second embodiment]
Next, a second embodiment will be described.
FIG. 2 is a diagram illustrating an example of an information processing system according to the second embodiment.
第2の実施の形態の情報処理システムは、クラウドサービスシステム2,3、クラウドストレージ4および管理サーバ100を有する。クラウドサービスシステム2,3、クラウドストレージ4および管理サーバ100は、ネットワーク5に接続されている。ネットワーク5は、例えばインターネットである。
The information processing system of the second embodiment includes
クラウドサービスシステム2,3は、ユーザに対してクラウドサービスを提供するコンピュータシステムである。クラウドサービスシステム2は、物理マシン200,200aを含む。クラウドサービスシステム3は、物理マシン300,300aを含む。ただし、クラウドサービスシステム2,3は、それぞれ3以上の物理マシンを含み得る。クラウドサービスの例としては、Azure(登録商標)やAWS(登録商標)などが挙げられる。
The
物理マシン200,300は、複数の仮想マシンを実行するサーバコンピュータである。
物理マシン200a,300aは、それぞれ物理マシン200,300に対する仮想マシンの作成や起動/停止を制御するサーバコンピュータである。
The
The
クラウドストレージ4は、クラウドサービスシステム2,3で動作する複数の仮想マシンおよび管理サーバ100によりアクセス可能なストレージ装置である。
クラウドサービスシステム2,3およびクラウドストレージ4を提供する事業者(ベンダー)は同じでもよいし異なっていてもよい。ユーザは、クラウドサービスシステム2,3が提供する複数の仮想マシンを連携させて、種々のアプリケーションを構築することができる。このように、複数のクラウドサービスシステムを用いたユーザのアプリケーションの構築環境あるいは運用環境は、マルチクラウドと呼ばれることがある。
The
Business operators (vendors) that provide the
管理サーバ100は、クラウドサービスシステム2,3で動作する複数の仮想マシンを管理するサーバコンピュータである。管理サーバ100は、当該複数の仮想マシンそれぞれの稼働状況の管理や、当該複数の仮想マシンそれぞれによるクラウドストレージ4に対するアクセス権限の管理を行う。管理サーバ100を提供する事業者は、クラウドサービスシステム2,3およびクラウドストレージ4を提供する事業者と同じでもよいし異なっていてもよい。
The
ここで、第2の実施の形態の情報処理システムは、第1の実施の形態のシステム1の一例である。管理サーバ100は、第1の実施の形態の情報処理装置10の一例である。物理マシン200,300は、第1の実施の形態の情報処理装置20の一例である。
Here, the information processing system of the second embodiment is an example of the system 1 of the first embodiment. The
図3は、管理サーバのハードウェア例を示す図である。
管理サーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106およびNIC(Network Interface Card)107を有する。なお、CPU101は、第1の実施の形態の処理部12の一例である。RAM102またはHDD103は、第1の実施の形態の記憶部11の一例である。
FIG. 3 is a diagram showing an example of the hardware of the management server.
The
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、管理サーバ100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
The
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、管理サーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
The
HDD103は、OSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、管理サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
The
画像信号処理部104は、CPU101からの命令に従って、管理サーバ100に接続されたディスプレイ51に画像を出力する。ディスプレイ51としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
The image
入力信号処理部105は、管理サーバ100に接続された入力デバイス52から入力信号を取得し、CPU101に出力する。入力デバイス52としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、管理サーバ100に、複数の種類の入力デバイスが接続されていてもよい。
The input
媒体リーダ106は、記録媒体53に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体53として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
The
媒体リーダ106は、例えば、記録媒体53から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体53は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体53やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
For example, the
NIC107は、スイッチやルータなどの通信装置を介してネットワーク5に接続され、ネットワーク5を介して他のコンピュータと通信を行うインタフェースである。NIC107は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。
The
なお、物理マシン200,200a,300,300aも、管理サーバ100と同様のハードウェアにより実現される。
図4は、仮想化機構の例を示す図である。
Note that the
FIG. 4 is a diagram illustrating an example of a virtualization mechanism.
物理マシン200は、ハードウェアhw1を有する。物理マシン200は、ハードウェアhw1を用いて、ハイパーバイザhv1および仮想マシン201,202を動作させる。物理マシン200上では、1つの仮想マシンが動作することもあるし、3以上の仮想マシンが動作することもある。
The
ハードウェアhw1は、物理マシン200におけるデータ入出力や演算のための物理リソースである。ハードウェアhw1は、物理マシン200が備えるCPUやRAMなどを含む。
The hardware hw1 is a physical resource for data input/output and calculation in the
ハイパーバイザhv1は、物理マシン200のハードウェアhw1を、仮想マシン201,202に割り振ることで、物理マシン200上に、仮想マシン201,202を動作させる。ハイパーバイザhv1は、仮想マシン201,202の通信を中継する仮想スイッチの機能を有する。
The hypervisor hv1 operates the
仮想マシン201,202は、ハードウェアhw1のリソースを用いて動作する仮想的なコンピュータである。
なお、物理マシン300も、物理マシン200と同様に、1以上の仮想マシンを実行する。
The
Note that, like the
また、図4で例示した仮想化機構は一例であり、例えば、ハイパーバイザhv1に相当するソフトウェアが、物理マシン200のOS上で実行されて、仮想マシン201,202を動作させてもよい。以下の説明では、仮想マシンを、VM(Virtual Machine)と略記することがある。
Further, the virtualization mechanism illustrated in FIG. 4 is just an example, and for example, software corresponding to the hypervisor hv1 may be executed on the OS of the
図5は、VMの識別に用いられる情報の例を示す図である。
例えば、クラウドサービスシステム2,3では、ユーザによる利用の契約の単位で、次の情報によりVMが識別される。
FIG. 5 is a diagram illustrating an example of information used to identify a VM.
For example, in the
1つの契約単位は、サブスクリプションと呼ばれる。サブスクリプションは、サブスクリプションIDで識別される。サブスクリプションIDは、グローバルで一意である。
サブスクリプションには、1以上のリソースグループが属する。リソースグループは、該当のサブスクリプションで利用可能なリソースの集合である。リソースは、CPUやRAMなどの演算リソース、スイッチなどの通信リソースおよびHDDやSSDなどの記憶リソースおよびVMを含み得る。
One contract unit is called a subscription. A subscription is identified by a subscription ID. The subscription ID is globally unique.
One or more resource groups belong to a subscription. A resource group is a collection of resources that can be used with a corresponding subscription. Resources may include computing resources such as CPU and RAM, communication resources such as switches, storage resources such as HDD and SSD, and VM.
リソースグループには、ユーザによりリソースグループ名が付与される。リソースグループ名は、サブスクリプション内で一意である。また、リソースは、リソースIDで識別される。リソースIDは、グローバルで一意である。 A resource group name is assigned to a resource group by a user. Resource group names are unique within a subscription. Further, a resource is identified by a resource ID. The resource ID is globally unique.
VMには、ユーザにより仮想マシン名(VM名)が付与される。VM名はリソースグループ内で一意である。
また、VMは、仮想マシンID(vmID)で識別される。vmIDは、グローバルで一意である。
A virtual machine name (VM name) is assigned to a VM by a user. VM names are unique within a resource group.
Further, a VM is identified by a virtual machine ID (vmID). vmID is globally unique.
このように、VMにはグローバルで一意な識別情報として、リソースIDおよびvmIDが付与される。
なお、クラウドサービスによっては、グローバルに一意であるインスタンスIDと呼ばれる識別情報により、VMを識別することもある。
In this way, a resource ID and a vmID are assigned to a VM as globally unique identification information.
Note that depending on the cloud service, a VM may be identified using globally unique identification information called an instance ID.
例えば、グローバルで一意なサブスクリプションID、リソースIDおよびvmID(あるいはインスタンスID)は、VMを管理する物理マシン200a,300aによって付与される。
For example, a globally unique subscription ID, resource ID, and vmID (or instance ID) are given by the
図5の例では、サブスクリプション60,70が例示されている。サブスクリプション60のサブスクリプションIDは「ss1」である。サブスクリプション70のサブスクリプションIDは「ss2」である。ここで、VM203~208は、VM201,202と同様に、クラウドサービスシステム2で動作する。
In the example of FIG. 5,
サブスクリプション60は、リソースグループ61,62を有する。リソースグループ61のリソースグループ名は「rg1」である。リソースグループ62のリソースグループ名は「rg2」である。
リソースグループ61は、VM201,202を有する。VM201のVM名は「vm1」である。VM202のVM名は「vm2」である。
リソースグループ62は、VM203,204を有する。VM203のVM名は「vm1」である。VM204のVM名は「vm3」である。
The
サブスクリプション70は、リソースグループ71,72を有する。リソースグループ71のリソースグループ名は「rg1」である。リソースグループ72のリソースグループ名は「rg3」である。
リソースグループ71は、VM205,206を有する。VM205のVM名は「vm1」である。VM206のVM名は「vm2」である。
リソースグループ72は、VM207,208を有する。VM207のVM名は「vm1」である。VM208のVM名は「vm3」である。
The
このように、各VMは、グローバルで一意であるvmIDやリソースIDで識別される他、サブスクリプションIDなどのグローバルで一意な識別情報とサブスクリプション内やリソースグループ内などのローカルで一意である識別名との組合せで識別されてもよい。 In this way, each VM is identified by a globally unique vmID and resource ID, as well as globally unique identification information such as a subscription ID, and locally unique identification information such as within a subscription or resource group. It may also be identified in combination with a given name.
例えば、VM201は、サブスクリプションID「ss1」とリソースグループ名「rg1」とVM名「vm1」との組合せにより、グローバルで一意に識別される。
同様に、例えばVM205は、サブスクリプションID「ss2」とリソースグループ名「rg1」とVM名「vm1」との組合せにより、グローバルで一意に識別される。
For example, the
Similarly, for example, the VM 205 is globally uniquely identified by the combination of the subscription ID "ss2", the resource group name "rg1", and the VM name "vm1".
上記のように、各VMを、グローバルに一意に識別する識別情報を、「VM固有情報」と称する。VM固有情報は、第1の実施の形態の特定情報の一例である。
図6は、管理サーバによるデータ取得例を示す図である。
As described above, the identification information that globally uniquely identifies each VM is referred to as "VM-specific information." The VM specific information is an example of specific information in the first embodiment.
FIG. 6 is a diagram showing an example of data acquisition by the management server.
VM201,202,…には、管理サーバ100により提供されるサービスにより所定のソフトウェアがインストールされる。管理サーバ100は、所定のタイミング(例えば、毎時0分)で、VM201,202,…に関するVM情報やVM201,202,…にインストール済みのソフトウェアに関するソフトウェア情報を取得する。
Predetermined software is installed in the
ここで、VM201,202,…は、管理サーバ100に対してVM情報やソフトウェア情報を直接送信するのではなく、クラウドストレージ4を経由して、管理サーバ100にVM情報やソフトウェア情報を通知する。すなわち、VM201,202,…は、自VMのVM情報やソフトウェア情報を、所定のタイミングでクラウドストレージ4に格納する。そして、管理サーバ100は、クラウドストレージ4に格納されたVMごとのVM情報やソフトウェア情報を参照する。これにより、管理サーバ100は、管理サーバ100にとって都合の良いタイミングでVM情報やソフトウェア情報を取得可能になる。
Here, the
ただし、VM201,202,…それぞれからクラウドストレージ4に情報を格納するためには、VM201,202,…がクラウドストレージ4に対するアクセス権限を有することが必要となる。例えば、クラウドストレージ4が前述のAzureにより提供される場合、当該アクセス権限は、共有アクセス署名(Shared Access Signature)により付与される。
However, in order to store information from each of the
クラウドストレージ4へのアクセス権限には、有効期限があるため、定期的にアクセス権限を更新する必要がある。管理サーバ100は、VM201,202,…それぞれに対するアクセス権限を管理し、VM201,202,…それぞれから受け付けるアクセス権限の更新要求に応じて、アクセス権限を更新する。
Since the access authority to the
この場合、VM201,202,…が、管理サーバ100に対してアクセス権限の更新要求を、日曜午前0時00分00秒などの特定のタイミングに集中して行うと、管理サーバ100の負荷が増大する。そこで、管理サーバ100は、VM201,202,…によるアクセス権限の更新要求が異なるタイミングで分散して行われるように制御する機能を提供する。
In this case, if the
図7は、管理サーバの機能例を示す図である。
管理サーバ100は、記憶部110、VM固有情報受信部120、ハッシュ値算出部130、変換部140、時刻送信部150、権限更新要求受信部160および権限管理部170を有する。
FIG. 7 is a diagram showing an example of the functions of the management server.
The
記憶部110には、RAM102やHDD103の記憶領域が用いられる。VM固有情報受信部120、ハッシュ値算出部130、変換部140、時刻送信部150、権限更新要求受信部160および権限管理部170は、RAM102に記憶されたプログラムがCPU101により実行されることで実現される。
For the
記憶部110は、アクセス権限管理テーブルを記憶する。アクセス権限管理テーブルは、クラウドサービスシステム2,3それぞれで動作するVMの、クラウドストレージ4に対するアクセス権限を管理するためのテーブルである。
The
VM固有情報受信部120は、各VMからVM固有情報を受信し、ハッシュ値算出部130にVM固有情報を出力する。VM固有情報受信部120は、受信したVM固有情報を、記憶部110に格納してもよい(図7ではVM固有情報受信部120と記憶部110との関連線を省略している)。例えば、VM固有情報は、アクセス権限管理テーブルにおけるVMごとのアクセス権限の管理に用いられてもよい。
The VM-specific
ハッシュ値算出部130は、VM固有情報を入力としたハッシュ関数の関数値を算出する。ハッシュ関数の関数値は、ハッシュ値と呼ばれる。ハッシュ関数には、例えば、SHA-256やMD5などが用いられる。ただし、ハッシュ関数にはその他のアルゴリズムによりハッシュ値を求める関数を用いてもよい。SHA-256やMD5などのアルゴリズムによりハッシュ値を求めるハッシュ関数は、一方向ハッシュ関数と呼ばれることがある。
The hash
変換部140は、ハッシュ値算出部130により算出されたハッシュ値を時刻に変換する。例えば、クラウドストレージ4に対する各VMのアクセス権限の有効期限は、1週間とされる。この場合、変換部140は、日曜午前0時00分00秒~土曜午後23時59分59秒までの1週間を単位期間とする。変換部140は、ハッシュ値を当該単位期間の何れかの時刻に割り当てることで、当該ハッシュ値に対応する時刻を求める。時刻としては、例えば協定世界時(UTC:Universal Time, Coordinated)が用いられる。変換部140により求められた時刻は、該当のVMにアクセス権限の更新要求を行わせる時刻である。VMにアクセス権限の更新要求を行わせる時刻を「要求時刻」と称する。
The
時刻送信部150は、変換部140により求められた要求時刻を該当のVMに送信する。
権限更新要求受信部160は、VMからアクセス権限の更新要求を受信し、権限管理部170に当該更新要求を出力する。
The
The authority update
権限管理部170は、アクセス権限の更新要求を受け付けると、アクセス権限管理テーブルに記録されている該当のVMのアクセス権限を更新する。例えば、権限管理部170は、該当のVMの既存のアクセス権限の有効期間を1週間延長する。権限管理部170は、アクセス権限の更新完了を、該当のVMに応答する。当該更新完了の応答は、更新後の権限有効期間、クラウドストレージ4におけるアクセス先およびクラウドストレージ4における認証用情報などの権限情報を含む。
Upon receiving the access authority update request, the
図8は、VMの機能例を示す図である。
VM201は、記憶部210、VM固有情報取得部220、VM固有情報送信部230、時刻受信部240、権限更新要求部250およびストレージアクセス処理部260を有する。
FIG. 8 is a diagram showing an example of the functions of the VM.
The
記憶部210には、物理マシン200が備えるRAMやHDDなどの記憶領域が用いられる。VM固有情報取得部220、VM固有情報送信部230、時刻受信部240、権限更新要求部250およびストレージアクセス処理部260は、物理マシン200が備えるCPUが、物理マシン200のRAMに記憶されたプログラムを実行することで実現される。
For the
VM固有情報取得部220は、物理マシン200aからVM201に対応するVM固有情報を取得し、VM固有情報をVM固有情報送信部230に出力する。VM固有情報取得部220は、VM201が物理マシン200に作成されて起動された際に、VM固有情報取得用のAPI(Application Programming Interface)を用いて物理マシン200aからVM固有情報を取得する。VM固有情報取得部220は、取得したVM固有情報を記憶部210に格納して、例えば、次の権限更新の際などに再利用可能としてもよい。
The VM-specific
VM固有情報送信部230は、VM固有情報取得部220からVM固有情報を取得すると、VM固有情報送信用のAPIを用いて当該VM固有情報を管理サーバ100に送信する。各VMでVM固有情報が取得されるタイミングは、前述のように当該VMが物理マシン上に作成されて起動されたタイミングである。物理マシン200aによる各VMの作成や起動は、VMごとに異なるタイミングで行われる。このため、各VMから管理サーバ100に対してVM固有情報が送信されるタイミングは、VMごとに異なるタイミングとなる可能性が高い。
When the VM-specific
時刻受信部240は、管理サーバ100から要求時刻を受信し、受信した要求時刻を記憶部210に格納する。時刻受信部240は、新たに要求時刻を受信した場合、その旨を権限更新要求部250に通知してもよい。
The
権限更新要求部250は、現在時刻が記憶部210に格納された要求時刻に到達したか否かを監視する。権限更新要求部250は、現在時刻が要求時刻に到達すると、クラウドストレージ4に対するアクセス権限の更新要求を管理サーバ100に送信する。権限更新要求部250は、アクセス権限の更新完了の応答を管理サーバ100から受信する。当該応答には、クラウドストレージ4にアクセスするための権限情報が含まれる。すると、権限更新要求部250は、ストレージアクセス処理部260に、クラウドストレージ4にアクセスするための権限情報をストレージアクセス処理部260に通知する。
The authority
また、権限更新要求部250は、現在時刻が要求時刻に到達していない場合には、現在時刻が要求時刻に到達するまで更新要求の送信を行わずに待機する。
ストレージアクセス処理部260は、権限更新要求部250から取得した権限情報を用いて、クラウドストレージ4にアクセスし、VM情報やソフトウェア情報の書き込みを行う。
Further, if the current time has not reached the requested time, the authority
The storage
なお、クラウドサービスシステム2,3で動作する他のVMも、VM201と同様の機能を有する。
図9は、アクセス権限管理テーブルの例を示す図である。
Note that other VMs operating in the
FIG. 9 is a diagram showing an example of an access authority management table.
アクセス権限管理テーブル111は、記憶部110に格納される。アクセス権限管理テーブル111は、vmID、アクセス先および権限有効期間の項目を含む。
vmIDの項目には、vmIDが登録される。アクセス先の項目には、クラウドストレージ4におけるアクセスを許容するディレクトリを示すアドレスが登録される。権限有効期間の項目には、アクセス権限の有効期間が登録される。
The access authority management table 111 is stored in the
vmID is registered in the vmID item. In the access destination field, addresses indicating directories that are allowed to be accessed in the
例えば、アクセス権限管理テーブル111には、vmID「vmID1」、アクセス先「cs1」、権限有効期間「20200501_12:00:00~20200508_11:59:59」のレコードが登録されている。このレコードは、vmID「vmID1」のVMが、クラウドストレージ4のアドレス「cs1」で示されるディレクトリに、2020年5月1日12時00分00秒~2020年5月8日11時59分59秒の期間だけアクセスが許可されることを示す。ここで、vmID「vmID1」は、VM201のvmIDであるとする。
For example, in the access authority management table 111, a record of vmID "vmID1", access destination "cs1", and authority validity period "20200501_12:00:00 to 20200508_11:59:59" is registered. This record shows that the VM with vmID "vmID1" is stored in the directory indicated by the address "cs1" of
アクセス権限管理テーブル111には、他のVMについても同様にアクセス権限のレコードが登録される。
なお、図9の例では、権限有効期間をvmIDに対応付けて管理するものとしたが、管理サーバ100は、各仮想マシンから通知される、vmID以外のVM固有情報に対応付けて、権限有効期間を管理してもよい。
Access authority records for other VMs are similarly registered in the access authority management table 111.
Note that in the example of FIG. 9, the authority validity period is managed by associating it with the vmID, but the
図10は、要求時刻データの例を示す図である。
要求時刻データ211は、記憶部210に格納される。要求時刻データ211には、要求時刻が登録される。例えば、要求時刻データ211には、要求時刻「20200508_12:00:00」が登録されている。VM201は、要求時刻データ211に基づいて、2020年5月8日12時00分00秒に、クラウドストレージ4に対するアクセス権限の更新要求を管理サーバ100に送信する。
FIG. 10 is a diagram showing an example of request time data.
なお、VM201から管理サーバ100に対するアクセス権限の更新要求は、管理サーバ100で管理されるアクセス権限の有効期間が満了した後に行われてもよいし、当該有効期間が満了する前に行われてもよい。当該有効期間が満了する前にアクセス権限の更新要求が行われる場合、管理サーバ100は、VM201のアクセス権限の有効期間を所定期間(本例では1週間)延長する。
Note that the access authority update request from the
次に、第2の実施の形態の処理手順を説明する。
以下ではVM201を主に例示して説明するが、クラウドサービスシステム2,3で動作する他のVMに関してもVM201と同様の手順となる。
Next, the processing procedure of the second embodiment will be explained.
Although the
図11は、VMの処理例を示すフローチャートである。
(S10)VM固有情報取得部220は、クラウドサービスからVM201のVM固有情報を取得する。例えば、VM固有情報取得部220は、クラウドサービスを管理する物理マシン200aからVM固有情報を取得することができる。
FIG. 11 is a flowchart showing an example of VM processing.
(S10) The VM-specific
(S11)VM固有情報送信部230は、VM固有情報を管理サーバ100に送信する。
(S12)時刻受信部240は、管理サーバ100から要求時刻を受信し、受信した要求時刻を示す要求時刻データ211を記憶部210に保存する。
(S11) The VM-specific
(S12) The
(S13)権限更新要求部250は、現在時刻が記憶部210に保存された要求時刻データ211が示す要求時刻に達すると、クラウドストレージ4に対するアクセス権限の更新要求を管理サーバ100に送信する。
(S13) When the current time reaches the request time indicated by the
(S14)権限更新要求部250は、アクセス権限の更新完了応答を管理サーバ100から受信する。例えば、当該更新完了応答は、クラウドストレージ4へのアクセスに用いられる権限情報を含み得る。そして、VM201の処理が終了する。
(S14) The authority
なお、ストレージアクセス処理部260は、権限更新要求部250が管理サーバ100から取得した権限情報を用いて、クラウドストレージ4にアクセスし、VM情報やソフトウェア情報の書き込みを行う。ストレージアクセス処理部260によるクラウドストレージ4へのVM情報やソフトウェア情報の書き込みは、ステップS14の直後に行われてもよいし、更新後のアクセス権限の有効期間内におけるその他のタイミングで行われてもよい。
Note that the storage
また、VM201は、例えば、アクセス権限の有効期間が1週間の場合、要求時刻データ211が示す前回の要求時刻から1週間経過するごとにアクセス権限の更新要求を管理サーバ100に送信してもよい。あるいは、VM201は、例えば、次週の最初、または、権限有効期間の満了後にVM201が起動された際に、クラウドサービスから取得したVM固有情報を管理サーバ100に再度送信して、管理サーバ100から新たな要求時刻を取得してもよい。
Further, for example, if the validity period of the access authority is one week, the
次に、管理サーバ100の要求時刻提供の手順を説明する。
図12は、管理サーバの要求時刻提供の処理例を示すフローチャートである。
(S20)VM固有情報受信部120は、VM201からVM固有情報を受信する。
Next, the procedure for providing the requested time by the
FIG. 12 is a flowchart illustrating an example of processing of request time provision by the management server.
(S20) The VM-specific
(S21)ハッシュ値算出部130は、VM固有情報からハッシュ値を算出する。すなわち、ハッシュ値算出部130は、VM固有情報をハッシュ関数に入力することで、VM固有情報に対するハッシュ値を求める。
(S21) The hash
(S22)変換部140は、ハッシュ値を時刻に変換する。例えば、変換部140は、当該ハッシュ値を、翌週日曜の0:00:00から翌週土曜の23:59:59までの時間範囲に属する何れかの時刻に変換する。時刻としては、例えばUTCが用いられる。
(S22) The
(S23)時刻送信部150は、得られた時刻を要求時刻として、VM201に送信する。そして、要求時刻提供の処理が終了する。
図13は、管理サーバのアクセス権限更新の処理例を示すフローチャートである。
(S23) The
FIG. 13 is a flowchart illustrating an example of processing for updating access authority of the management server.
(S30)権限更新要求受信部160は、VM201からアクセス権限の更新要求を受信する。
(S31)権限管理部170は、受信した更新要求に基づいて、クラウドストレージ4に対するVM201のアクセス権限を更新する。例えば、権限管理部170は、アクセス権限管理テーブル111におけるVM201の権限有効期間を、現時点から1週間延長してもよいし、現在の権限有効期間の満了時点から1週間延長してもよい。
(S30) The authority update
(S31) The
(S32)権限管理部170は、アクセス権限の更新完了応答をVM201に送信する。更新完了応答は、更新後の権限有効期間、クラウドストレージ4におけるアクセス先およびクラウドストレージ4における認証用情報などの権限情報を含み得る。そして、アクセス権限更新の処理が終了する。
(S32) The
図14は、VM固有情報およびハッシュ値の例を示す図である。
例えば、VM201は、物理マシン200上にVM201が作成されて起動されると、物理マシン200aからVM201のVM固有情報81を取得する。
FIG. 14 is a diagram illustrating an example of VM-specific information and hash values.
For example, when the
例えば、VM固有情報81として、前述のvmIDを用いることができる。vmIDのサイズは、例えば36バイトである。
VM201は、管理サーバ100にVM固有情報81を提供する。すると、ハッシュ値算出部130は、VM固有情報81に基づいてハッシュ値82を算出する。ハッシュ関数として、例えばMD5を用いる場合、VM固有情報81から128ビットのハッシュ値82が得られる。図14では、16進数の数字32文字でハッシュ値82を表している。
For example, the above-mentioned vmID can be used as the VM
The
なお、VM固有情報81としては、前述のようにvmID以外のものを用いることができる。例えば、VM固有情報81は、サブスクリプションIDとリソースグループ名とVM名との組合せでもよい。また、VM固有情報81は、リソースIDでもよい。VM固有情報81の候補であるサブスクリプションIDとリソースグループ名とVM名との組合せ、リソースID、および、vmIDのうち、vmIDの情報量が最も少ないことがある。また、上記のvmIDに代えて、VMをグローバルに一意に識別する識別情報としてインスタンスIDも使用され得る。インスタンスIDのサイズは、17バイト程度であることがある。
Note that as the VM
図15は、ハッシュ値を時刻に変換する例を示す図である。
ハッシュ値範囲90は、MD5で求められるハッシュ値が取り得る値の範囲である。図15では、16進数の数字32文字でハッシュ値を表している。ハッシュ値範囲90に含まれるハッシュ値の個数は、2^128通りとなる。
FIG. 15 is a diagram showing an example of converting a hash value into a time.
The
ここで、1週間は、604,800秒である。したがって、変換部140は、2^128通りのハッシュ値を含むハッシュ値範囲90を、604,800個のサブ範囲に分割し、各サブ範囲を、日曜日0時00分00秒を起点とする時刻に対応付ける。1つのサブ範囲に属するハッシュ値の数は、2^128/604,800=5.6*10^32である。
Here, one week is 604,800 seconds. Therefore, the
例えば、変換部140は、ハッシュ値範囲90の最小値を含む最初のサブ範囲を、日曜日0時00分00秒に対応付け、次のサブ範囲を日曜日0時00分01秒に対応付け、…というようにして、各サブ範囲に属するハッシュ値を時刻に対応付ける。変換部140は、ハッシュ値の小さい方から順に早い時刻となるように対応付けてもよいし、ハッシュ値の大きい方から順に早い時刻となるように対応付けてもよい。
For example, the
ここで、管理サーバ100でクラウドストレージ4へのアクセス権限を管理しているVMの数をaとし、アクセス権限の1つの更新要求のトランザクションの所要時間をbとし、管理サーバ100が受け付ける更新要求の並列数をcとする。
Here, the number of VMs whose access privileges to the
すると、a台のVMと管理サーバ100とのアクセス権限の更新要求に関するやり取りの総所要時間は、ab/cとなる。例えば、a=10000とし、c=1とし、b=10秒とすると、当該総所要時間は、100,000秒となる。
Then, the total time required for exchanges regarding the access authority update request between a VMs and the
図16は、要求の分散の例を示す図である。
図16(A)は、VMからの要求が適切に分散されている例を示す。図16(A)の例は、管理サーバ100によりVM固有情報のハッシュ値を用いて決定された更新時刻で各VMがアクセス権限の更新要求を送信する場合である。
FIG. 16 is a diagram illustrating an example of request distribution.
FIG. 16(A) shows an example in which requests from VMs are appropriately distributed. The example in FIG. 16A is a case where each VM transmits an access authority update request at an update time determined by the
更新要求群rq1は、VM10000台から送信された10000個の更新要求である。図16(A)の例では、1週間(604,800秒)の各時刻において、各VMからほぼ重複しないタイミングで、アクセス権限の更新要求が管理サーバ100に送信される。
The update request group rq1 is 10,000 update requests sent from 10,000 VMs. In the example of FIG. 16A, each VM sends an access authority update request to the
図16(B)は、VMからの要求が適切に分散されていない例を示す。図16(B)は、図16(A)の比較例である。図16(B)の例は、VM固有情報のハッシュ値を用いずに決定された時刻で各VMがアクセス権限の更新要求を送信する場合である。 FIG. 16(B) shows an example in which requests from VMs are not appropriately distributed. FIG. 16(B) is a comparative example of FIG. 16(A). The example in FIG. 16B is a case where each VM transmits an access authority update request at a time determined without using the hash value of VM-specific information.
更新要求群rq2は、VM10000台から送信された10000個の更新要求である。図16(B)の例では、1週間(604,800秒)の各時刻において、2以上のVMによる更新要求が重複して行われる時刻が、図16(A)の場合に比べて多くなる。 The update request group rq2 is 10,000 update requests sent from 10,000 VMs. In the example of FIG. 16(B), the number of times at which two or more VMs make duplicate update requests at each time in one week (604,800 seconds) is greater than in the case of FIG. 16(A). .
このように、VM固有情報のハッシュ値を用いて決定された更新時刻で各VMがアクセス権限の更新要求を管理サーバ100に送信することで、管理サーバ100における負荷集中を軽減できる。
In this way, each VM sends an access authority update request to the
すなわち、ハッシュ関数を用いることで、各VMのVM固有情報に対して、十分に分散したハッシュ値を得ることができる。このため、当該ハッシュ値に基づくタイミングで、各VMから管理サーバ100への更新要求の送信を行うことで、各VMによる更新要求の送信タイミングを適切に分散させることができる。言い換えれば、各VMにより更新要求が送信されるタイミングが平滑化される。よって、比較的短い期間のうちに、各VMから管理サーバ100へ大量の更新要求が集中的に送信される可能性が低減される。その結果、管理サーバ100における負荷集中を軽減することができる。
That is, by using a hash function, it is possible to obtain sufficiently distributed hash values for the VM-specific information of each VM. Therefore, by transmitting an update request from each VM to the
[第3の実施の形態]
次に第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
[Third embodiment]
Next, a third embodiment will be described. The points that are different from the second embodiment described above will be mainly explained, and the explanations of the common points will be omitted.
第3の実施の形態の情報処理システムの構成は、図2で例示した第2の実施の形態の情報処理システムの例と同様であるため説明を省略する。
第3の実施の形態では、要求時刻の計算を、管理サーバ100ではなくVM201,202,…で行う点が第2の実施の形態と異なる。そこで、まず、第3の実施の形態における管理サーバ100およびVM201,202,…の機能を説明する。
The configuration of the information processing system according to the third embodiment is the same as the example of the information processing system according to the second embodiment illustrated in FIG. 2, so a description thereof will be omitted.
The third embodiment differs from the second embodiment in that the request time is calculated by the
図17は、第3の実施の形態の管理サーバの機能例を示す図である。
管理サーバ100は、記憶部110、権限更新要求受信部160および権限管理部170を有する。記憶部110、権限更新要求受信部160および権限管理部170は、図7で例示した第2の実施の形態における同名の機能と同様の機能である。第3の実施の形態の例では、管理サーバ100は、VM固有情報受信部120、ハッシュ値算出部130、変換部140および時刻送信部150の機能を有していなくてよい。
FIG. 17 is a diagram illustrating a functional example of the management server according to the third embodiment.
The
図18は、VMの機能例を示す図である。
VM201は、記憶部210、VM固有情報取得部220、権限更新要求部250、ストレージアクセス処理部260、ハッシュ値算出部270および変換部280を有する。記憶部210、VM固有情報取得部220、権限更新要求部250およびストレージアクセス処理部260は、図8で例示した第2の実施の形態における同名の機能と同様の機能である。第3の実施の形態では、VM201がハッシュ値算出部270および変換部280を有し、VM固有情報送信部230および時刻受信部240を有さない点が、第2の実施の形態と異なる。
FIG. 18 is a diagram illustrating a functional example of a VM.
The
ハッシュ値算出部270は、VM固有情報取得部220により取得されたVM固有情報を入力としたハッシュ関数の関数値、すなわち、ハッシュ値を算出する。ハッシュ関数には、例えば、SHA-256やMD5などが用いられる。ただし、ハッシュ関数にはその他のアルゴリズムよりハッシュ値を求める関数を用いてもよい。
The hash
変換部280は、ハッシュ値算出部270により算出されたハッシュ値を時刻に変換する。当該時刻は、第2の実施の形態の要求時刻に相当する。変換部280は、求めた要求時刻を記憶部210に格納する。変換部280は、要求時刻が更新されたことを権限更新要求部250に通知してもよい。
The
なお、クラウドサービスシステム2,3で動作する他のVMも、VM201と同様の機能を有する。
次に、第3の実施の形態における処理手順を説明する。第3の実施の形態では、各VMの処理手順が第2の実施の形態と異なる。具体的には、管理サーバ100は、図12で例示した第2の実施の形態の要求時刻提供の処理を実行しなくてよい。要求時刻の計算は、各VMによって実行される。以下では、VM201を主に例示して説明するが、他のVMも同様の手順を実行する。
Note that other VMs operating in the
Next, a processing procedure in the third embodiment will be explained. In the third embodiment, the processing procedure of each VM is different from the second embodiment. Specifically, the
図19は、VMの処理例を示すフローチャートである。
(S40)VM固有情報取得部220は、クラウドサービスからVM201のVM固有情報を取得する。例えば、VM固有情報取得部220は、クラウドサービスを管理する物理マシン200aからVM固有情報を取得することができる。
FIG. 19 is a flowchart showing an example of VM processing.
(S40) The VM-specific
(S41)ハッシュ値算出部270は、取得したVM固有情報からハッシュ値を算出する。すなわち、ハッシュ値算出部270は、VM固有情報をハッシュ関数に入力することで、VM固有情報に対するハッシュ値を求める。
(S41) The hash
(S42)変換部280は、ハッシュ値を時刻に変換する。例えば、変換部280は、当該ハッシュ値を、翌週日曜の0:00:00から翌週土曜の23:59:59までの時間範囲に属する時刻に変換する。時刻としては、例えばUTCが用いられる。
(S42) The
(S43)変換部280は、得られた時刻を要求時刻とする。変換部280は、当該要求時刻を示す要求時刻データ211を記憶部210に保存する。
(S44)権限更新要求部250は、現在時刻が記憶部210に保存された要求時刻データ211が示す要求時刻に達すると、クラウドストレージ4に対するアクセス権限の更新要求を管理サーバ100に送信する。
(S43) The
(S44) When the current time reaches the request time indicated by the
(S45)権限更新要求部250は、アクセス権限の更新完了応答を管理サーバ100から受信する。例えば、当該更新完了応答は、クラウドストレージ4へのアクセスに用いられる権限情報を含み得る。そして、VM201の処理が終了する。
(S45) The authority
なお、ストレージアクセス処理部260は、権限更新要求部250が管理サーバ100から取得した権限情報を用いて、クラウドストレージ4にアクセスし、VM情報やソフトウェア情報の書き込みを行う。ストレージアクセス処理部260によるクラウドストレージ4へのVM情報やソフトウェア情報の書き込みは、ステップS45の直後に行われてもよいし、更新後のアクセス権限の有効期間内におけるその他のタイミングで行われてもよい。
Note that the storage
また、管理サーバ100によるアクセス権限更新処理は、図13で例示した手順と同様の手順となる。
このように、VM固有情報のハッシュ値を用いて決定された更新時刻で各VMがアクセス権限の更新要求を管理サーバ100に送信することで、管理サーバ100における負荷集中を軽減できる。
Furthermore, the access authority update process by the
In this way, each VM sends an access authority update request to the
すなわち、ハッシュ関数を用いることで、各VMのVM固有情報に対して、十分に分散したハッシュ値を得ることができる。このため、当該ハッシュ値に基づくタイミングで、各VMから管理サーバ100への更新要求の送信を行うことで、各VMによる更新要求の送信タイミングを適切に分散させることができる。言い換えれば、各VMにより更新要求が送信されるタイミングが平滑化される。よって、比較的短い期間のうちに、各VMから管理サーバ100へ大量の更新要求が集中的に送信される可能性が低減される。その結果、管理サーバ100における負荷集中を軽減することができる。
That is, by using a hash function, it is possible to obtain sufficiently distributed hash values for the VM-specific information of each VM. Therefore, by transmitting an update request from each VM to the
なお、第2,第3の実施の形態では、管理サーバ100がクラウドストレージ4に対するアクセス権限の更新要求を各VMから送信するタイミングを決定する例を説明したが、各VMから管理サーバ100へ他の情報を送信するタイミングを決定してもよい。当該タイミングの決定方法は、各VMからの要求がリアルタイム性のないもの、すなわち、一定の時間間隔で定期的に発生する要求のうち、クライアント数が増えると管理サーバの負荷が増大するものである場合に特に有用である。
In the second and third embodiments, an example was explained in which the
例えば、Webサイトの訪問者情報を、各VM上に構築されたWebサーバごとに一定の間隔で定期的に管理サーバ100に発信するサービスが考えられる。この場合、複数のWebサーバが訪問者情報を同時に管理サーバ100に送信すると、管理サーバ100の負荷が増大し得る。一方、管理サーバ100は、各VMのVM固有情報に対するハッシュ値に基づいて、訪問者情報を送信する時刻をVMごとに決定することで、各VMが訪問者情報を送信するタイミングを適切に分散させることができる。その結果、管理サーバ100における負荷集中を軽減することができる。
For example, a service can be considered in which website visitor information is periodically sent to the
その他の情報を各VMから管理サーバ100に送信する場合も、同様の方法により、当該情報の送信タイミングをVMごとに適切に分散させることができ、管理サーバ100における負荷集中を軽減することができる。
When transmitting other information from each VM to the
第2,第3の実施の形態に対する比較例として、例えば、VMセットアップ時に、管理サーバ100で情報の受信が可能である空き時刻を各VMから問い合わせて、当該VM内の設定ファイルに保存し、当該VMから当該時刻に情報の送信を行うことも考えられる。
As a comparative example with respect to the second and third embodiments, for example, when setting up a VM, the
しかし、VMは、ある1つのVMイメージを複製することで作成され、起動されることでスケールアウトされることが多い。このため、例えば、同じ設定ファイルのVMが増える可能性が高く、同じ時刻に各VMから一斉に情報が送信される可能性が高まる。 However, a VM is often created by replicating a single VM image and scaled out by being started. Therefore, for example, there is a high possibility that the number of VMs with the same configuration file will increase, and there will be a high possibility that information will be transmitted from all VMs at the same time.
また、例えば、VMにおけるプログラム実行時の時刻を乱数の種にしてランダムなタイミングで情報送信を行わせることも考えられる。しかし、上記のように、同じVMイメージの複製によるVMのクローン同士では、同じプログラムが同じ時刻に動作するため、結局、各VMによる情報送信のタイミングが衝突する可能性が高い。 It is also conceivable to transmit information at random timing using, for example, the time when a program is executed in the VM as a random number seed. However, as described above, since the same program runs at the same time in VM clones created by copying the same VM image, there is a high possibility that the timing of information transmission by each VM will eventually conflict.
一方、一般的なクラウドサービスであれば取得できる、VM固有情報は、同じVMイメージを複製しても、VMごとに異なる値となる。したがって、第2,第3の実施の形態のように、VM固有情報のハッシュ値を用いて決定された時刻に各VMから管理サーバ100に情報を送信することで、各VMによる情報送信のタイミングが適切に分散され、管理サーバ100における負荷集中を軽減できる。
On the other hand, VM-specific information, which can be obtained with a general cloud service, has a different value for each VM even if the same VM image is duplicated. Therefore, as in the second and third embodiments, by transmitting information from each VM to the
以上をまとめると、第2,第3の実施の形態の情報処理システムは例えば次の機能を有する。
管理サーバ100またはVM201,202,…それぞれは、当該VMを特定する特定情報を取得すると、特定情報を入力とするハッシュ関数の関数値、すなわち、ハッシュ値を算出する。VM201,202,…それぞれは、自VMに対応するハッシュ値に基づくタイミングで、管理サーバ100に情報を送信する。
To summarize the above, the information processing systems of the second and third embodiments have, for example, the following functions.
When each of the
これにより、管理サーバ100の負荷集中を軽減できる。
例えば、管理サーバ100がハッシュ値を算出する場合、管理サーバ100は、複数のVMそれぞれに対応するハッシュ値に基づいて、当該VMから管理サーバ100(自装置)に情報を送信するタイミングを、複数のVMそれぞれに対して指示する。
Thereby, load concentration on the
For example, when the
あるいは、VM201,202,…それぞれがハッシュ値を算出する場合、VM201,202,…それぞれは、自VMから、各VMの情報を収集する管理サーバ100へ、当該ハッシュ値に基づくタイミングで情報を送信する。
Alternatively, when each of the
VM201,202,…それぞれから管理サーバ100に送信される情報は、例えば、当該VMによる特定処理の実行権限の有効期限を延長する申請である。これにより、管理サーバ100において比較的短い時間に当該実行権限の有効期限の延長の処理が集中することが避けられ、当該有効期限の延長の処理による管理サーバ100の負荷集中を軽減できる。
The information sent to the
また、管理サーバ100またはVM201,202,…それぞれは、所定期間に属する、ハッシュ値に対応する時刻を、当該VMにより管理サーバ100へ情報を送信するタイミングと決定する。
Furthermore, each of the
これにより、各VMにより情報を送信する時刻を、当該送信のタイミングが当該所定期間内に分散するように、適切に得ることができる。
また、第2,第3の実施の形態の情報処理システムは、物理マシン200,300を有するクラウドサービスシステム2,3を含む。
Thereby, the time at which each VM transmits information can be appropriately obtained so that the timing of the transmission is distributed within the predetermined period.
Further, the information processing systems of the second and third embodiments include
この場合、特定情報は、クラウドサービスシステム2,3それぞれがVMごとに一意に付与するVMの第1の識別情報でもよい。前述のvmID、インスタンスIDおよびリソースIDそれぞれは、第1の識別情報の一例である。
In this case, the specific information may be first identification information of the VM that is uniquely assigned to each VM by each of the
あるいは、特定情報は、クラウドサービスシステム2,3が提供するクラウドサービスの利用契約ごとにクラウドサービスシステム2,3それぞれが一意に付与する第2の識別情報とVMに対してユーザが付与するVM名とを含む組合せ情報でもよい。前述のサブスクリプションIDは、第2の識別情報の一例である。また、前述のように、当該組合せ情報は、リソースグループ名などの、ユーザにより付与される他の情報を含んでもよい。
Alternatively, the specific information may include second identification information that is uniquely assigned by each of the
これにより、各VMに対して、求められるハッシュ値を適度に分散させることができ、2以上のVMによる情報の送信タイミングが衝突する(あるいは重複する)可能性を低減できる。このため、管理サーバ100における負荷集中を一層軽減できる。
Thereby, the required hash values can be appropriately distributed to each VM, and the possibility that the timings of information transmission by two or more VMs will collide (or overlap) can be reduced. Therefore, load concentration on the
なお、第1の実施の形態の情報処理は、処理部12,22にプログラムを実行させることで実現できる。また、第2,第3の実施の形態の情報処理は、CPU101や物理マシン200,300が有するCPUにプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体53に記録できる。
Note that the information processing in the first embodiment can be realized by causing the
例えば、プログラムを記録した記録媒体53を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体53に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
For example, the program can be distributed by distributing the
1 システム
10,20 情報処理装置
11,21 記憶部
12,22 処理部
31,32,33 仮想マシン
1
Claims (8)
前記第1の情報処理装置または前記複数の仮想マシンそれぞれが、前記仮想マシンを特定する特定情報を取得すると、前記特定情報を入力とするハッシュ関数の関数値を算出し、
前記複数の仮想マシンそれぞれが、自仮想マシンに対応する前記関数値に基づくタイミングで、前記第1の情報処理装置に情報を送信する、
制御方法。 In a method for controlling a virtual machine executed in a system including a first information processing device and one or more second information processing devices that operate a plurality of virtual machines,
When the first information processing device or each of the plurality of virtual machines obtains specific information that identifies the virtual machine, calculates a function value of a hash function using the specific information as input;
each of the plurality of virtual machines transmits information to the first information processing device at a timing based on the function value corresponding to the virtual machine;
Control method.
前記特定情報は、前記クラウドサービスシステムが前記仮想マシンごとに一意に付与する前記仮想マシンの第1の識別情報であるか、または、前記クラウドサービスシステムが提供するクラウドサービスの利用契約ごとに前記クラウドサービスシステムが一意に付与する第2の識別情報と前記仮想マシンに対してユーザが付与する仮想マシン名とを含む組合せ情報である、
請求項1記載の制御方法。 The system includes a cloud service system including the second information processing device,
The specific information may be first identification information of the virtual machine that is uniquely assigned to each virtual machine by the cloud service system, or may be first identification information that is uniquely assigned to each virtual machine by the cloud service system, or Combination information including second identification information uniquely given by the service system and a virtual machine name given by the user to the virtual machine;
The control method according to claim 1.
1以上の情報処理装置で動作する複数の仮想マシンそれぞれから仮想マシンを特定する特定情報を取得すると、前記特定情報を入力とするハッシュ関数の関数値を算出し、
前記複数の仮想マシンそれぞれに対応する前記関数値に基づいて、当該仮想マシンから前記コンピュータに情報を送信するタイミングを、前記複数の仮想マシンそれぞれに対して指示する、
処理を実行させる制御プログラム。 to the computer,
Upon obtaining specific information that identifies a virtual machine from each of a plurality of virtual machines operating on one or more information processing devices, calculating a function value of a hash function using the specific information as input;
Instructing each of the plurality of virtual machines when to transmit information from the virtual machine to the computer based on the function value corresponding to each of the plurality of virtual machines;
A control program that executes processing.
前記コンピュータで動作する仮想マシンを特定する特定情報を取得すると、前記特定情報を入力とするハッシュ関数の関数値を算出し、
前記仮想マシンから、前記仮想マシンを含む複数の仮想マシンの情報を収集する情報処理装置へ、前記関数値に基づくタイミングで前記情報を送信する、
処理を実行させる制御プログラム。 to the computer,
Upon obtaining specific information that identifies a virtual machine running on the computer, calculating a function value of a hash function using the specific information as input;
transmitting the information from the virtual machine to an information processing device that collects information on a plurality of virtual machines including the virtual machine at a timing based on the function value;
A control program that executes processing.
前記特定情報を入力とするハッシュ関数の関数値を算出し、前記複数の仮想マシンそれぞれに対応する前記関数値に基づいて、当該仮想マシンから自装置に情報を送信するタイミングを、前記複数の仮想マシンそれぞれに対して指示する処理部と、
を有する情報処理装置。 a storage unit that stores specific information for identifying a virtual machine acquired from each of a plurality of virtual machines operating on one or more other information processing devices;
A function value of a hash function that takes the specific information as input is calculated, and based on the function value corresponding to each of the plurality of virtual machines, the timing for transmitting information from the virtual machine to its own device is determined by the plurality of virtual machines. A processing unit that instructs each machine,
An information processing device having:
前記特定情報を入力とするハッシュ関数の関数値を算出し、前記仮想マシンから、前記仮想マシンを含む複数の仮想マシンの情報を収集する他の情報処理装置へ、前記関数値に基づくタイミングで前記情報を送信する処理部と、
を有する情報処理装置。 a storage unit that stores specific information that identifies the virtual machine, which is acquired by a virtual machine running on its own device;
A function value of a hash function that takes the specific information as input is calculated, and the information is transmitted from the virtual machine to another information processing device that collects information on a plurality of virtual machines including the virtual machine at a timing based on the function value. a processing unit that transmits information;
An information processing device having:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020085396A JP7401776B2 (en) | 2020-05-14 | 2020-05-14 | Control method, control program and information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020085396A JP7401776B2 (en) | 2020-05-14 | 2020-05-14 | Control method, control program and information processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021179853A JP2021179853A (en) | 2021-11-18 |
JP7401776B2 true JP7401776B2 (en) | 2023-12-20 |
Family
ID=78511557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020085396A Active JP7401776B2 (en) | 2020-05-14 | 2020-05-14 | Control method, control program and information processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7401776B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004264994A (en) | 2003-02-28 | 2004-09-24 | Toshiba Tec Corp | Office equipment and program |
JP2009134598A (en) | 2007-11-30 | 2009-06-18 | Hitachi Ltd | Workflow system, flow control apparatus, approval apparatus, program and workflow method |
JP2013148950A (en) | 2012-01-17 | 2013-08-01 | Nippon Telegr & Teleph Corp <Ntt> | Load distribution program and load distribution device |
JP2013152513A (en) | 2012-01-24 | 2013-08-08 | Nippon Telegr & Teleph Corp <Ntt> | Task management system, task management server, task management method and task management program |
JP2016170670A (en) | 2015-03-13 | 2016-09-23 | 富士ゼロックス株式会社 | Information processing device and information processing program |
-
2020
- 2020-05-14 JP JP2020085396A patent/JP7401776B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004264994A (en) | 2003-02-28 | 2004-09-24 | Toshiba Tec Corp | Office equipment and program |
JP2009134598A (en) | 2007-11-30 | 2009-06-18 | Hitachi Ltd | Workflow system, flow control apparatus, approval apparatus, program and workflow method |
JP2013148950A (en) | 2012-01-17 | 2013-08-01 | Nippon Telegr & Teleph Corp <Ntt> | Load distribution program and load distribution device |
JP2013152513A (en) | 2012-01-24 | 2013-08-08 | Nippon Telegr & Teleph Corp <Ntt> | Task management system, task management server, task management method and task management program |
JP2016170670A (en) | 2015-03-13 | 2016-09-23 | 富士ゼロックス株式会社 | Information processing device and information processing program |
Also Published As
Publication number | Publication date |
---|---|
JP2021179853A (en) | 2021-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2646135C (en) | Managing execution of programs by multiple computing systems | |
US10824343B2 (en) | Managing access of multiple executing programs to non-local block data storage | |
JP6357243B2 (en) | Data stream ingestion and persistence policy | |
EP3469478B1 (en) | Server computer management system for supporting highly available virtual desktops of multiple different tenants | |
JP6033805B2 (en) | Balanced consistent hash for distributed resource management | |
US9262273B2 (en) | Providing executing programs with reliable access to non-local block data storage | |
US10379891B2 (en) | Apparatus and method for in-memory-based virtual desktop service | |
US8321530B2 (en) | Cloud computing system, server computer, device connection method, and storage medium | |
US7440998B2 (en) | Provisioning for a modular server | |
US10999266B2 (en) | Secret keys management in a virtualized data-center | |
JP2010250778A (en) | System and method for providing computer resource and resource transaction program | |
JP2016170669A (en) | Load distribution function deployment method, load distribution function deployment device, and load distribution function deployment program | |
JP6003590B2 (en) | Data center, virtual system copy service providing method, data center management server, and virtual system copy program | |
JP6889372B2 (en) | Log management equipment, information processing systems and programs | |
JP7401776B2 (en) | Control method, control program and information processing device | |
JP4375121B2 (en) | Processing agent method in database management system | |
JP6568232B2 (en) | Computer system and device management method | |
JP6643706B2 (en) | Distribution history management program, distribution history management device, and distribution history management method | |
US20230216666A1 (en) | Method and system for performing telemetry services for composed information handling systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230209 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20231024 |
|
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: 20231107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231120 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7401776 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |