JP5029440B2 - Information processing system, information processing method, and computer program - Google Patents
Information processing system, information processing method, and computer program Download PDFInfo
- Publication number
- JP5029440B2 JP5029440B2 JP2008066176A JP2008066176A JP5029440B2 JP 5029440 B2 JP5029440 B2 JP 5029440B2 JP 2008066176 A JP2008066176 A JP 2008066176A JP 2008066176 A JP2008066176 A JP 2008066176A JP 5029440 B2 JP5029440 B2 JP 5029440B2
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- guest
- migration
- information
- control unit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Description
本発明は、シンクライアント方式により複数のユーザに、コンピュータによる処理を提供することができる情報処理システム、情報処理方法及びコンピュータプログラムに関する。 The present invention relates to an information processing system, an information processing method, and a computer program that can provide computer processing to a plurality of users using a thin client method.
通信インフラの普及が進み、またユビキタス社会とも言われるように、ユーザが時間、場所を問わずに自身が携帯する端末装置を用いて通信網を介した多様なサービスを受けることができる。しかし、ユーザが携帯する端末装置を多様なサービスに対応させるために高機能化させた場合、それぞれの端末装置のコストが上昇する。また、このような端末装置に大容量の記憶装置を備えさせた場合、当該端末装置が盗難、遺失等により失われたときは、記憶されている個人情報、企業の秘密情報等の各種情報の漏洩の危険性が高まり、情報の安全性が確保されない。 As communication infrastructure spreads and a ubiquitous society is called, users can receive various services via a communication network using terminal devices carried by themselves regardless of time and place. However, when the terminal device carried by the user is enhanced in order to cope with various services, the cost of each terminal device increases. In addition, when such a terminal device is provided with a large-capacity storage device, if the terminal device is lost due to theft, loss, etc., various information such as stored personal information, company secret information, etc. The risk of leakage increases and the safety of information is not ensured.
そこで、シンクライアント(thin client)システムが普及している。画面転送方式のシンクライアントシステムでは、ユーザが持つ端末装置を、例えばメモリ、ネットワークカード、グラフィックカード等の必要最低限のハードウェアで構成する。そして、実際の主な処理は、通信網を介して接続されるサーバ装置で行ない、端末装置は、処理の結果に基づく表示画面の情報をサーバ装置から取得してディスプレイに表示する。これにより、端末装置に備えるべきハードウェアを最小限にしてコストを抑え、更に情報の漏洩を防止することができる。 Therefore, a thin client system has become widespread. In a screen transfer type thin client system, a terminal device possessed by a user is configured with minimum hardware such as a memory, a network card, and a graphic card. Then, the actual main processing is performed by the server device connected via the communication network, and the terminal device acquires information on the display screen based on the processing result from the server device and displays it on the display. As a result, the hardware to be provided in the terminal device can be minimized to reduce the cost, and further information leakage can be prevented.
また、近年では、仮想PC(Personal Computer )方式のシンクライアントシステムが、コスト削減に効果があるとして注目を集めている。仮想PC方式とは、サーバ装置において、仮想マシンモニタ(VMM:Virtual Machine Monitor )、ハイパーバイザ等と呼ばれる技術によってサーバ装置内のハードウェアを仮想化し、その上で複数のゲストOS(Operating System)(仮想PC)を実行させる方式であり、サーバ装置に対して同時に接続可能な端末装置の数を増加させることができる。 In recent years, virtual PC (Personal Computer) type thin client systems are attracting attention because they are effective in reducing costs. The virtual PC system is a server device in which the hardware in the server device is virtualized by a technique called virtual machine monitor (VMM), hypervisor, etc., and a plurality of guest OSs (Operating System) ( Virtual PC), and the number of terminal devices that can be simultaneously connected to the server device can be increased.
このようなシンクライアントシステムでは、複数の端末装置(複数のユーザ)にそれぞれゲストOSが割り当てられるので、同一のサーバ装置内のゲストOSを割り当てられた複数のユーザがそれぞれのサーバ装置を共用する。従って、各ユーザの利用状況によって、それぞれのサーバ装置における処理負荷にばらつきが生じる。例えば、それぞれのサーバ装置において、処理負荷の大きい処理を実行しているユーザ(ゲストOS)が多数存在する一方、処理負荷の小さい処理を実行しているユーザ(ゲストOS)が多数存在する状況が発生する。 In such a thin client system, a guest OS is assigned to each of a plurality of terminal devices (a plurality of users), so that a plurality of users assigned a guest OS in the same server device share the respective server devices. Therefore, the processing load in each server device varies depending on the usage status of each user. For example, in each server device, there are many users (guest OSs) that execute processing with a high processing load, while there are many users (guest OSs) that execute processing with a low processing load. appear.
なお、処理負荷の大きい処理としては、例えば、ゲーム、動画のエンコード処理、文書作成処理等があり、処理負荷の小さい処理としては、例えば、写真の整理、World Wide Web(ウェブ)の閲覧等がある。このような場合、処理負荷の大きい処理を実行しているゲストOSが多く存在するサーバ装置においては、各ゲストOSが、サーバ装置のリソースを十分に利用できない状況が生じる可能性がある。 The processing with a large processing load includes, for example, a game, a video encoding process, a document creation processing, and the like, and the processing with a small processing load includes, for example, organizing photographs and browsing the World Wide Web (web). is there. In such a case, in a server apparatus in which many guest OSs executing processing with a large processing load exist, there is a possibility that each guest OS may not be able to fully use the resources of the server apparatus.
そこで、それぞれのサーバ装置における処理負荷を考慮し、各ゲストOSが実行する処理をそれぞれのサーバ装置に均等に分散させる方法が研究されている。例えば、各端末装置(各ユーザ)にゲストOSを割り当てる場合に、その時点で最も処理負荷の小さいサーバ装置のゲストOSを割り当てる方法がある。また、各ゲストOSの処理負荷を学習し、学習結果に基づいてゲストOSを割り当てるサーバ装置を決定する方法がある。このような方法により、サーバ装置の処理負荷の偏りを回避することができる。 In view of the above, considering the processing load on each server device, a method for evenly distributing the processing executed by each guest OS to each server device has been studied. For example, when assigning a guest OS to each terminal device (each user), there is a method of assigning the guest OS of the server device with the smallest processing load at that time. Further, there is a method of learning the processing load of each guest OS and determining a server device to which the guest OS is allocated based on the learning result. By such a method, it is possible to avoid an uneven processing load on the server device.
また、画面転送方式のシンクライアントシステムにおいては、あるゲストOSの実行環境を、異なるサーバ装置のゲストOSに移行させて実行させるマイグレーション処理と呼ばれる技術がある(例えば、特許文献1参照)。マイグレーション処理は、あるゲストOSの実行環境の情報を一旦ネットワークストレージに保存し、この情報を異なるサーバ装置にロードすることによって、異なるサーバ装置のゲストOSで同じ実行環境を続行させる処理である。ゲストOSの実行環境の情報とは、例えば、仮想環境のメモリに格納してある情報及びデバイス情報等である。 In addition, a screen transfer type thin client system includes a technique called migration processing that causes an execution environment of a guest OS to be migrated to a guest OS of a different server device (see, for example, Patent Document 1). The migration process is a process in which information on the execution environment of a certain guest OS is temporarily saved in a network storage, and the same execution environment is continued in the guest OS of a different server device by loading this information on a different server device. The information on the execution environment of the guest OS is, for example, information stored in the virtual environment memory, device information, and the like.
マイグレーション処理は、ゲストOSの実行環境の情報をネットワークストレージに保存した後、所定のタイミングで異なるサーバ装置にロードするので、ゲストOSの実行環境を短時間で移行することができる。また、マイグレーション処理によって、各サーバ装置における処理負荷が分散されるので、各ゲストOSにおける動作環境の品質を全体的に向上させることができる。このようなマイグレーション処理は、例えば、各サーバ装置にメンテナンスを行なう場合、又は各サーバ装置における処理負荷を分散させる必要が生じた場合等、各ゲストOSの実行環境を異なるサーバ装置へ移行させる必要が生じた場合に有効である。
上述したマイグレーション処理は、異なるサーバ装置へ移行されるゲストOSの動作を一旦停止させて行なう。従って、マイグレーション処理の実行中は、端末装置からの操作ができなくなるので、ゲストOSを利用しているユーザの操作感覚に大きな影響を与えてしまう。例えば、端末装置のユーザがマウス又はキーボードを操作しているときにマイグレーション処理が実行されると、一時的に入力操作の受け付けが阻害され、直感的な入力操作に支障が生じる。また、例えば、端末装置のユーザがゲストOSにおいて仮想サウンドデバイスを実行させて端末装置で音楽を再生しているときにマイグレーション処理が実行されると、音楽再生が途切れる。 The migration process described above is performed by temporarily stopping the operation of the guest OS to be migrated to a different server device. Therefore, since the operation from the terminal device cannot be performed during the migration process, the operation feeling of the user using the guest OS is greatly affected. For example, if the migration process is executed while the user of the terminal device is operating a mouse or a keyboard, acceptance of the input operation is temporarily hindered, and an intuitive input operation is hindered. Also, for example, if the migration process is executed while the user of the terminal device causes the guest OS to execute a virtual sound device and play music on the terminal device, music playback is interrupted.
従って、単純にそれぞれのサーバ装置の性能を示すCentral Processing Unit(CPU)使用率及びメモリ使用量のみに基づいてマイグレーション処理を実行させると、ユーザが使用中のゲストOSを一時停止させることによって、ユーザの操作性及び利便性を損なう虞がある。 Therefore, when the migration process is executed based only on the central processing unit (CPU) usage rate and the memory usage that simply indicate the performance of each server device, the guest OS being used by the user is temporarily suspended, so that the user There is a risk of impairing the operability and convenience.
本発明は斯かる事情に鑑みてなされたものであり、その目的とするところは、情報処理装置のいずれかの実行手段における動作環境を他の情報処理装置に移行させる際にユーザに与える影響を低減することができると共に、情報処理装置のそれぞれにおける処理負荷を所定量以下に維持することができる情報処理システム、情報処理方法及びコンピュータプログラムを提供することにある。 The present invention has been made in view of such circumstances, and an object of the present invention is to affect the user when the operating environment of any execution means of the information processing apparatus is shifted to another information processing apparatus. Another object of the present invention is to provide an information processing system, an information processing method, and a computer program that can reduce the processing load of each information processing apparatus and maintain the processing load at a predetermined amount or less.
本願に開示する情報処理システムは、各種処理を実行する複数の実行手段を備える複数の情報処理装置がネットワークを介して接続してある情報処理システムであって、前記情報処理装置のそれぞれにおける処理負荷を検出する。また、本願に開示する情報処理システムは、検出したいずれかの情報処理装置における処理負荷が所定量以上である場合、所定量以上の処理負荷の情報処理装置の実行手段のそれぞれの状態に基づいて、実行手段のそれぞれにおける動作環境のうちで、他の情報処理装置への移行が可能な動作環境を特定し、前記複数の情報処理装置のうちで、特定された動作環境の受け入れが可能な情報処理装置を選択し、特定された動作環境を、選択された情報処理装置に移行させる。 An information processing system disclosed in the present application is an information processing system in which a plurality of information processing apparatuses including a plurality of execution units that execute various processes are connected via a network, and the processing load on each of the information processing apparatuses Is detected. In addition, the information processing system disclosed in the present application is based on the state of the execution unit of the information processing apparatus having a processing load of a predetermined amount or more when the processing load in any of the information processing devices detected is a predetermined amount or more. The operating environment in each of the execution means identifies the operating environment that can be transferred to another information processing apparatus, and the information that can accept the specified operating environment among the plurality of information processing apparatuses A processing device is selected, and the specified operating environment is transferred to the selected information processing device.
本願に開示する情報処理システムによれば、いずれかの情報処理装置における処理負荷が所定量以上となった場合に、この情報処理装置の実行手段のそれぞれにおける動作環境のうちで、他の情報処理装置への移行が可能な動作環境を特定する。また、前記複数の情報処理装置のうちで、特定された動作環境の受け入れが可能な情報処理装置を選択し、特定された動作環境を、選択された情報処理装置に移行させる。よって、いずれかの情報処理装置における処理負荷が所定量以上となった場合に、この情報処理装置が備えるいずれかの実行手段が実行中の動作環境を他の情報処理装置へ移行することによって、この情報処理装置における処理負荷を減らすことが可能となる。また、動作環境を他の情報処理装置へ移行中に、この動作環境で所定の処理が実行される場合、この移行処理を一時中断する。そして、実行される処理に基づいて、中断中の移行処理を再開させるか否かを判断し、再開させると判断された場合、中断中の移行処理を再開し、再開させないと判断された場合、中断中の移行処理を終了する。 According to the information processing system disclosed in the present application, when the processing load in any one of the information processing apparatuses becomes equal to or greater than a predetermined amount, the other information processing among the operating environments in each of the execution units of the information processing apparatus Identify the operating environment in which migration to the device is possible. In addition, an information processing apparatus capable of accepting the specified operating environment is selected from the plurality of information processing apparatuses, and the specified operating environment is transferred to the selected information processing apparatus. Therefore, when the processing load in any one of the information processing devices becomes a predetermined amount or more, by shifting the operating environment being executed by any execution means included in this information processing device to another information processing device, It becomes possible to reduce the processing load in this information processing apparatus. Further, when a predetermined process is executed in this operating environment while the operating environment is being transferred to another information processing apparatus, the shifting process is temporarily interrupted. Then, based on the process to be executed, it is determined whether or not to resume the suspended transition process.If it is determined to resume, the suspended transition process is resumed, and if it is determined not to resume, End the suspended migration process.
開示の情報処理システムでは、複数の情報処理装置のそれぞれにおける処理負荷を所定量以下に維持することができるので、情報処理装置のそれぞれの実行手段における動作環境の品質を維持することができる。従って、このような情報処理システムをシンクライアントシステムに適用した場合、各ユーザが使用するゲストOSにおける動作環境のサービス品質を維持することができる。 In the disclosed information processing system, the processing load in each of the plurality of information processing apparatuses can be maintained at a predetermined amount or less, so that the quality of the operating environment in each execution unit of the information processing apparatus can be maintained. Therefore, when such an information processing system is applied to a thin client system, the service quality of the operating environment in the guest OS used by each user can be maintained.
また、開示の情報処理システムでは、処理負荷が所定量以上である情報処理装置の実行手段のそれぞれが実行中の各種処理に基づいて、各実行手段における動作環境のうちで、他の情報処理装置への移行が可能な動作環境を適切に特定する。例えば、外部装置をユーザが操作することによって実行手段が実行する所定の処理を実行中の動作環境を、他の情報処理装置への移行が可能でないと設定しておく。この場合、ユーザが実際に操作中の動作環境を、移行対象から外すことができ、ユーザに直接与える影響が小さい動作環境を特定することができる。従って、動作環境の移行処理の際にユーザに与える影響を低減することができる。 Further, in the disclosed information processing system, other information processing apparatuses are included in the operating environment of each execution unit based on various processes being executed by each execution unit of the information processing apparatus having a processing load of a predetermined amount or more. Appropriately identify the operating environment that can be migrated to. For example, the operating environment in which a predetermined process executed by the execution unit is operated by the user operating the external device is set so that it cannot be transferred to another information processing device. In this case, the operating environment in which the user is actually operating can be excluded from the migration target, and the operating environment that has a small influence directly on the user can be specified. Therefore, it is possible to reduce the influence on the user during the operation environment migration process.
更に、開示の情報処理システムでは、移行可能であると特定された動作環境の受け入れが可能な情報処理装置を適切に選択することにより、選択された情報処理装置に前記動作環境が移行された後においても、前記情報処理装置の他の実行手段における動作環境に影響を与えない。よって、動作環境が移行された情報処理装置を既に使用している他のユーザの動作環境に影響を与えない。更に、動作環境を他の情報処理装置へ移行中に、この動作環境で所定の処理が実行される場合、この移行処理を一時中断すると共に、実行される処理によっては中断した移行処理の再開を断念することにより、この動作環境を使用中のユーザの操作に影響を与えず、操作性を低下させない。 Furthermore, in the disclosed information processing system, after the operating environment is transferred to the selected information processing device by appropriately selecting an information processing device that can accept the operating environment identified as transferable. However, the operation environment of other execution means of the information processing apparatus is not affected. Therefore, it does not affect the operating environment of other users who are already using the information processing apparatus whose operating environment has been transferred. Furthermore, when a predetermined process is executed in this operating environment while the operating environment is being transferred to another information processing apparatus, the transfer process is temporarily interrupted, and depending on the executed process, the interrupted transfer process may be resumed. By giving up, the operation of this operating environment is not affected and the operability is not deteriorated.
以下に、本発明に係る情報処理システムについて、シンクライアントシステムに適用した実施形態を示す図面に基づいて詳述する。なお、以下では、本発明に係る情報処理システムを、情報処理装置(サーバ装置)のハードウェアを仮想化し、その上で複数の仮想PC(ゲストOS)を実行させるシンクライアントシステムに適用した実施形態を例に説明する。 Hereinafter, an information processing system according to the present invention will be described in detail based on the drawings showing an embodiment applied to a thin client system. In the following, the information processing system according to the present invention is applied to a thin client system that virtualizes hardware of an information processing apparatus (server apparatus) and executes a plurality of virtual PCs (guest OSs) thereon. Will be described as an example.
(実施形態1)
以下に、実施形態1に係るシンクライアントシステムについて説明する。図1は実施形態1に係るシンクライアントシステムの構成を示す模式図である。本実施形態1のシンクライアントシステムは、複数のサーバ装置(情報処理装置)1,1…、サーバ装置1,1…を管理する管理装置2、ネットワークストレージ3、端末装置5,5…等を含む。
(Embodiment 1)
The thin client system according to the first embodiment will be described below. FIG. 1 is a schematic diagram illustrating a configuration of a thin client system according to the first embodiment. The thin client system of the first embodiment includes a plurality of server devices (information processing devices) 1, 1..., A
サーバ装置1,1…、管理装置2及びネットワークストレージ3は、Local Area Network(LAN)等のネットワークN2を介して接続されている。ネットワークN2には、ルーティング装置4が接続されており、ネットワークN2は、ルーティング装置4を介して、インターネット等のネットワークN1に接続されている。ネットワークN1には、端末装置5,5…が接続されている。このような構成により、端末装置5,5…は、ネットワークN1、ルーティング装置4及びネットワークN2を介してサーバ装置1,1…又は管理装置2に接続することができる。
The
サーバ装置1,1…及び管理装置2はそれぞれがサーバコンピュータ装置である。ネットワークストレージ3は、Hard Disk Drive(HDD)、ネットワークN2に接続するためのネットワークインタフェース等を備える記憶装置である。なお、サーバ装置1,1…は、自身の内部に備えたHDD13(図2参照)と同様にネットワークストレージ3のHDD32(図5参照)を使用することができる。
Each of the
端末装置5,5…はシンクライアントとして使用され、例えば、HDD等の記憶装置を備えないパーソナルコンピュータであり、例えばUniversal Serial Bus(USB)ケーブルを介してマウス56が接続されている。なお、シンクライアントとして利用される端末装置5,5…は、このような構成に限られず、例えば、テレビジョン受像機、キーボード及びマウス等との接続が可能なセットトップボックス(STB;Set Top Box )として構成してもよい。この場合、端末装置5,5…に、テレビジョン受像機、キーボード及びマウスを接続することによって、シンクライアントとして利用される。
The
サーバ装置1,1…のそれぞれは、一の装置で複数の情報処理装置として動作する仮想化技術が適用されており、各端末装置5,5…に対応する仮想PC(ゲストOS)を起動して実行するようにしてある。またサーバ装置1,1…は、各ゲストOSの起動/停止及びその動作を管理する機能を有するVirtual Machine Monitor(VMM)100(図3参照)を起動して実行するようにしてある。
Each of the
上述した構成のシンクライアントシステムにおいて、端末装置5は、いずれかのサーバ装置1におけるゲストOSを利用する場合、まず、管理装置2に対して、自身に対応するゲストOSの起動を要求する信号を送信する。管理装置2は、各サーバ装置1,1…におけるゲストOSを利用中のユーザを管理すると共に、各ユーザによるゲストOSの動作状況を管理している。管理装置2は、各サーバ装置1,1…の動作状況に基づいて、ゲストOSの起動を要求してきた端末装置5に対応してゲストOSを提供するサーバ装置1を決定する。そして、管理装置2は、決定したサーバ装置1に対して、端末装置5に対応するゲストOSの起動を指示する。
In the thin client system configured as described above, when the
管理装置2からゲストOSの起動を指示されたサーバ装置1は、端末装置5に対応するゲストOSを起動する。なお、サーバ装置1は、起動したゲストOSに対応する端末装置5のアドレスを取得しておき、そのアドレスを宛先として、起動させたゲストOSが出力する画像信号を生成し、ネットワークN1,N2を介して端末装置5へ送信する。よって、サーバ装置1は、ゲストOSが出力する画像信号を端末装置5へ送信する画面転送方式のシンクライアントシステムを実現する。端末装置5は、サーバ装置1から送信されてきた画像信号を受信して表示部52(図7参照)に表示し、シンクライアントとしての動作を開始する。
The
図2はサーバ装置1の構成を示すブロック図、図3はサーバ装置1の機能を示す機能ブロック図である。なお、サーバ装置1,1…のそれぞれは全て同一の構成である。図3には、サーバ装置1で、制御部10、RAM12、HDD13、通信部14等を含むハードウェア上で、VMM100の動作により、複数のゲストOS101,101がそれぞれの仮想環境102,102上で独立して実行可能となっていることが示されている。
FIG. 2 is a block diagram illustrating a configuration of the
本実施形態1のサーバ装置1は、制御部10、Read Only Memory(ROM)11、Random Access Memory(RAM)12、Hard Disk Drive(HDD)13、通信部14等を備えており、それぞれはバス1aを介して相互に接続されている。制御部10は、例えばCentral Processing Unit(CPU)又はMicro Processor Unit(MPU)等であり、ROM11又はHDD13に予め格納されている制御プログラムを適宜RAM12に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。
The
ROM11は、本実施形態1のサーバ装置1を、本発明の情報処理システムに利用される情報処理装置として動作させるために必要な種々の制御プログラムを予め格納している。RAM12は、例えばStatic RAM(SRAM)又はフラッシュメモリ等であり、制御部10による制御プログラムの実行時に発生する種々のデータを一時的に記憶する。
The
HDD13は大容量の記憶装置である。HDD13は、本実施形態1のサーバ装置1を、本発明の情報処理システムに利用される情報処理装置として動作させるために必要な種々の制御プログラム、各種のデータ等を格納している。また、HDD13は、OSプログラム13a、VMMプログラム13b、仮想環境モニタプログラム13c、図4に示すような利用状況テーブル13d等を格納している。
The
通信部14は、例えばネットワークカードを備え、ネットワークN2を介した管理装置2、ネットワークストレージ3、端末装置5,5…等との通信を実現するハードウェアである。なお、通信部14は、ルーティング装置4を介してインターネット等のネットワークN2に接続されている。従って、ネットワークN2を介して公開されている映像、画像、テキストデータ等の各種情報を、サーバ装置1におけるゲストOS101,101が通信部14を介して取得することができる。
The
OSプログラム13aは、ユーザが操作できるCommand User Interface(CUI)、Graphic User Interface(GUI)を持つWindows(登録商標)、Linux等のOSソフトウェアである。制御部10は、OSプログラム13aをHDD13から読み出して実行することによりゲストOS101(仮想PC)として動作し、各種処理を実行する実行手段として機能する。また、ゲストOS101(制御部10)は、各種処理に応じて生成するCUI、GUI等を含む画像信号を、自身のゲストOS101に対応する端末装置5へ送信する。
The
ゲストOS101は、端末装置(外部装置)5におけるキーボード55(図7参照)又はマウス56からの制御信号(操作情報)をネットワークN1,N2を介して受信し、受信した制御信号に応じて各種処理を実行する。なお、ゲストOS101は、処理に応じた画像信号のみならず、音声信号等も生成して端末装置5へ送信する。
The
VMMプログラム13bは、サーバ装置1において複数のゲストOS101,101が動作する仮想化技術を実現するためのソフトウェアである。制御部10は、VMMプログラム13bをHDD13から読み出して実行することによりVMM(仮想マシンモニタ)100として動作し、サーバ装置1が論理的に複数のサーバ装置として動作する仮想環境102,102を提供する。これにより、サーバ装置1において論理的に複数の独立したゲストOS101,101が動作することが可能となる。制御部10は、マルチコアCPUで構成され、各ゲストOS101,101、VMM100がそれぞれ物理的に異なるCPUコア上に分散して動作するように最適に設計されている。なお、マルチコアCPUとは限らず、シングルコアCPUで構成してもよい。
The
VMM100(制御部10)は、各ソフトウェアとハードウェア資源との間の管理を実現し、各ゲストOS101,101に対応するハードウェアの動作の基本的な制御を行なう。更に、VMM100は、各端末装置5,5…に対応するゲストOS101,101…の起動の指示を管理装置2から取得した場合、取得した指示に応じて、各端末装置5,5…に対応するOSプログラム13aを読み出して実行し、各ゲストOS101,101…を起動させる。
The VMM 100 (control unit 10) realizes management between software and hardware resources, and performs basic control of hardware operations corresponding to the
この場合、VMM100は、各ゲストOS101,101に利用されるハードウェアの割り当て制御等を行ない、それぞれのゲストOS101,101に仮想環境102,102を割り当てる。なお、各ゲストOS101,101に割り当てるハードウェアとしては、例えば、制御部10、RAM12、HDD13及び通信部14等と、ネットワークストレージ3のHDD32とがある。
In this case, the
なお、サーバ装置1に複数の画像送信装置(図示せず)との接続が可能な入出力部(図示せず)を設け、サーバ装置1が、画像送信装置を介して画像信号を端末装置5へ送信する構成とすることもできる。この場合、VMM100は、ゲストOS101,101に対して、いずれかの画像送信装置の割り当ても行なう。
The
RAM12は、制御部10がOSプログラム13a及びVMMプログラム13b等をそれぞれ読み出す際に使用される他、制御部10が各制御プログラムを読み出して実行し、各処理を行なう際に一時的に各種情報を記憶する。また、RAM12は、制御部10が各ゲストOS101,101として動作する場合に対応する端末装置5,5…毎の設定情報を記憶するために使用される。従って、RAM12も論理的に複数のメモリに分割され、各ゲストOS101,101、VMM100のそれぞれに割り当てられる。
The
仮想環境モニタプログラム13cは、サーバ装置1において複数の仮想環境102,102を監視するためのソフトウェアである。制御部10は、仮想環境モニタプログラム13cをHDD13から読み出して実行することにより、それぞれの仮想環境102,102における仮想USBデバイス103,103を監視するUSBデバイスモニタ部104,104として動作する。
The virtual
また、制御部10は、仮想環境モニタプログラム13cをHDD13から読み出して実行することにより、それぞれの仮想環境102,102における仮想サウンドデバイス105,105を監視するサウンドデバイスモニタ部106,106として動作する。更に、制御部10は、仮想環境モニタプログラム13cをHDD13から読み出して実行することにより、それぞれの仮想環境102,102が、サーバ装置1に与える負荷を監視するサーバ負荷モニタ部107,107として動作する。
In addition, the
ゲストOS101は、通信部14が受信した端末装置5のマウス56からの操作情報を、仮想USBデバイス103を介して取得する。USBデバイスモニタ部104は、仮想USBデバイス103の使用状況を監視し、監視結果をVMM100へ通知する。なお、仮想USBデバイス103が使用中である場合、即ち、仮想USBデバイス103が端末装置5からの操作情報を取得している場合、端末装置5のユーザがマウス56を操作中であると判断することができる。
The
また、ゲストOS101は、処理に応じて生成した音声信号を仮想サウンドデバイス105を介して通信部14へ送出し、通信部14を介して端末装置5へ送信する。サウンドデバイスモニタ部106は、仮想サウンドデバイス105の使用状況を監視し、監視結果をVMM100へ通知する。なお、仮想サウンドデバイス105が使用中である場合、即ち、仮想サウンドデバイス105がゲストOS101からの音声信号を取得している場合、端末装置5のユーザが音声出力を鑑賞中であると判断することができる。
In addition, the
サーバ負荷モニタ部107,107は、それぞれの仮想環境102,102上でそれぞれのゲストOS101,101が動作することによってサーバ装置1に与える負荷を検出する。具体的には、サーバ負荷モニタ部107,107は、仮想環境102,102が動作することによる、制御部10(CPU)の使用率(CPU使用率)及びRAM12の使用量(メモリ使用量)を計測し、計測したCPU使用率及びメモリ使用量をVMM100へ通知する。
The server
図4は利用状況テーブル13dの登録内容を示す模式図である。利用状況テーブル13dには、図4に示すように、制御部10がOSプログラム13aを実行することにより起動させたゲストOS101,101毎に、ゲストOS101,101を識別するためのゲストOS−ID(IDentifier)、ゲストOS101,101によるCPU使用率、メモリ使用率、デバイス使用状況等を含むゲストOS情報が登録されている。なお、ゲストOS−IDは、ゲストOS101自体を識別するための情報であってもよいし、ゲストOS101を使用する端末装置5、又は端末装置5を使用するユーザを特定するための情報であってもよい。
FIG. 4 is a schematic diagram showing the registered contents of the usage status table 13d. As shown in FIG. 4, the usage status table 13d includes a guest OS-ID (for identifying the
利用状況テーブル13dの登録内容は、VMM100(制御部10)が、OSプログラム13aを実行してゲストOS101を起動させる都度、VMM100によって登録される。また、利用状況テーブル13dのCPU使用率は、サーバ負荷モニタ部107が仮想環境102によるCPU使用率をVMM100へ通知する都度、VMM100によって登録される。利用状況テーブル13dのメモリ使用率は、サーバ負荷モニタ部107が仮想環境102によるメモリ使用量をVMM100へ通知する都度、VMM100が、RAM12のメモリ量に対する、通知されたメモリ使用量の割合(使用率)を算出して登録する。
The registration contents of the usage status table 13d are registered by the
また、利用状況テーブル13dのデバイス使用状況は、USBデバイスモニタ部104又はサウンドデバイスモニタ部106が仮想USBデバイス103又は仮想サウンドデバイス105の使用状況をVMM100へ通知する都度、VMM100によって登録される。
The device usage status in the usage status table 13d is registered by the
なお、図4に示した利用状況テーブル13dでは、RAM12のメモリ量に対する、各仮想環境102,102によるメモリ使用量の割合(メモリ使用率)が登録される構成とした。これに対して、サーバ負荷モニタ部107が計測した各仮想環境102,102によるメモリ使用量をそのまま利用状況テーブル13dに登録させてもよい。
Note that the usage status table 13d illustrated in FIG. 4 has a configuration in which the ratio of memory usage by the
図5は管理装置2及びネットワークストレージ3の構成を示すブロック図である。本実施形態1の管理装置2は、制御部20、ROM21、RAM22、HDD23、通信部24等を備えており、それぞれはバス2aを介して相互に接続されている。
FIG. 5 is a block diagram showing the configuration of the
制御部20は、例えばCPU又はMPU等であり、ROM21又はHDD23に予め格納されている制御プログラムを適宜RAM22に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ROM21は、管理装置2として動作するために必要な種々の制御プログラムを予め格納している。RAM22は、例えばSRAM又はフラッシュメモリ等であり、制御部20による制御プログラムの実行時に発生する種々のデータを一時的に記憶する。
The
HDD23は大容量の記憶装置である。HDD23は、管理装置2として動作するために必要な種々の制御プログラム、サーバ管理プログラム23a、図6(a)に示すようなユーザ管理テーブル23b、図6(b)に示すようなリソース管理テーブル23c等を格納している。
通信部24は、例えばネットワークカードを備え、ネットワークN2を介したサーバ装置1等との通信を実現するハードウェアである。
The
The
サーバ管理プログラム23aは、サーバ装置1,1…の動作を管理するためのソフトウェアである。制御部20は、サーバ管理プログラム23aをHDD23から読み出して実行することにより、それぞれのサーバ装置1,1…におけるゲストOS101,101の動作状態を管理する。具体的には、制御部20は、ユーザ管理テーブル23b及びリソース管理テーブル23cに各種情報を逐次登録することにより、それぞれのサーバ装置1,1…におけるゲストOS101,101を利用するユーザ及びゲストOS101,101の動作状態を管理する。
The server management program 23a is software for managing the operations of the
図6はユーザ管理テーブル23b及びリソース管理テーブル23cの登録内容を示す模式図である。ユーザ管理テーブル23bは、図6(a)に示すように、それぞれのサーバ装置1,1…が提供するゲストOS101,101を利用するユーザ毎に、ユーザを識別するためのユーザID、各ユーザに割り当てられた仮想環境102,102の情報等を含むユーザ情報が登録されている。仮想環境102の情報には、仮想環境102を提供するサーバ装置1のサーバID、サーバ装置1におけるゲストOS101のゲストOS−ID、ネットワークストレージ3におけるHDD32のメモリ領域等が含まれる。
FIG. 6 is a schematic diagram showing registration contents of the user management table 23b and the resource management table 23c. As shown in FIG. 6A, the user management table 23b includes a user ID for identifying a user for each user using the
ユーザ管理テーブル23bの登録内容は、制御部20が、ゲストOS101の起動の要求を端末装置5から受信し、この端末装置5に対するゲストOS101(仮想環境102)の起動をサーバ装置1へ指示する都度、制御部20によって登録される。制御部20は、ゲストOS101の起動の要求を受信する際に、ゲストOS101の起動を要求してきた端末装置5のユーザのユーザ情報も受信しており、受信したユーザ情報のユーザIDをユーザ管理テーブル23bのユーザIDの欄に登録する。
The registration contents of the user management table 23b are received each time the
制御部20は、ゲストOS101の起動を要求してきた端末装置5毎に、どのサーバ装置1のどのゲストOS101を割り当てるかを決定すると共に、ネットワークストレージ3のHDD32のどのメモリ領域を割り当てるかを決定する。従って、制御部20は、それぞれ決定したサーバ装置1、ゲストOS101、HDD32のメモリ領域を、端末装置5に割り当てる仮想環境102の情報としてユーザ管理テーブル23bに登録する。
The
なお、管理装置2は、各端末装置5,5…からのサーバ装置1(ゲストOS101)への接続を認証するように構成されていてもよい。この場合、各端末装置5,5…のユーザID及びパスワードを予めテーブルに登録しておく。そして、管理装置2は、ゲストOS101の起動の要求と共に取得した端末装置5のユーザのユーザ情報(ユーザID及びパスワード)が、テーブルに登録されているか否かを判断する。管理装置2は、ユーザ情報がテーブルに登録されていれば、ゲストOS101の利用を許可し、この端末装置5に対してゲストOS101を提供すべきサーバ装置1に対して、ゲストOS101の起動を指示する。
The
リソース管理テーブル23cには、図6(b)に示すように、それぞれのサーバ装置1,1…毎に、サーバ装置1,1…を識別するためのサーバID、各サーバ装置1,1…におけるゲストOS101,101…の利用状況等を含むサーバ情報が登録されている。利用状況には、ゲストOS101を識別するためのゲストOS−ID、CPU使用率、メモリ使用率、デバイス使用状況等が含まれる。
In the resource management table 23c, as shown in FIG. 6B, for each
リソース管理テーブル23cの登録内容は、各サーバ装置1,1…から、各サーバ装置1,1…におけるゲストOS101,101…のゲストOS情報が送信されてくる都度、制御部20によって登録される。具体的には、各サーバ装置1,1…のVMM100,100…は、利用状況テーブル13dに登録されたゲストOS情報を更新する都度、更新したゲストOS情報を管理装置2へ送信する。管理装置2の制御部20は、各サーバ装置1,1…からゲストOS情報を受信する都度、各サーバ装置1,1…のサーバIDに対応させて、受信したゲストOS情報のゲストOS−ID、CPU使用率、メモリ使用率、デバイス使用状況の各情報を、リソース管理テーブル23cの利用状況の各欄に登録する。
The registered contents of the resource management table 23c are registered by the
ネットワークストレージ3は、図5に示すように、ネットワークN2に接続するための通信部31及びHDD32等を備える。通信部31は、ネットワークN2を介したサーバ装置1との通信を行なう。HDD32は、各サーバ装置1,1…が提供する仮想環境102,102…として用いられるので、HDD32も論理的に複数のメモリに分割され、各サーバ装置1,1…の各ゲストOS101,101…のそれぞれに割り当てられる。従って、HDD32は、各ゲストOS101,101…から送信されてくる情報を格納する。また、HDD32は、後述する移行処理の際に各種情報を一時的に格納するために用いられる。
As shown in FIG. 5, the
図7は端末装置5の構成を示すブロック図である。端末装置5は、通信部51と、通信部51に接続された表示部52、スピーカ53、USBインタフェース54及びキーボード55とを備える。
通信部51は、例えばネットワークカードを備え、ネットワークN1を介したサーバ装置1及び管理装置2等との通信を実現する。なお、通信部51は、自身の端末装置5に対応するゲストOS101から出力された情報を受信し、画像信号であれば表示部52へ送出し、音声信号であればスピーカ53へ送出する。また、通信部51は、端末装置5のユーザがキーボード55を操作することに伴う操作情報をキーボード55から取得する。
FIG. 7 is a block diagram showing the configuration of the
The
USBインタフェース54は、マウス56と接続されており、マウス56との間で情報の送受信を行なう。なお、表示部52、スピーカ53及びキーボード55が端末装置5に対して外付けされる構成である場合には、表示部52、スピーカ53及びキーボード55も、例えば、USBインタフェース54に接続される。また、USBインタフェース54に限られず、その他の入出力インタフェースを介してマウス56と接続される構成であってもよい。また、マウス56以外にも、ペンタブレットなどの入力装置を接続する構成であってもよい。
The
次に、上述した構成のシンクライアントシステムにおいて、端末装置5,5…によってシンクライアントの利用が可能になるまでの処理について説明する。シンクライアントを利用したいユーザは、自身の端末装置5を用いて、ゲストOS101の起動を要求する信号を管理装置2へ送信する。管理装置2の制御部20は、端末装置5からゲストOS101の起動を要求する信号を受信した場合、リソース管理テーブル23cの登録内容に基づいて、この時点でのCPU使用率及びメモリ使用率のより低いサーバ装置1を特定する。また、制御部20は、特定したサーバ装置1において、ゲストOS101の起動を要求してきた端末装置5に対応するOSプログラム13a(ゲストOS101)、ハードウェア、ネットワークストレージ3のHDD32におけるメモリ領域を選択して割り当てる。
Next, in the thin client system having the above-described configuration, processing until the thin client can be used by the
なお、管理装置2の制御部20は、割り当てた各情報をユーザ管理テーブル23bに登録する。そして、制御部20は、端末装置5に対して割り当てたサーバ装置1に対して、ゲストOS101の起動を指示する。ゲストOS101の起動を指示されたサーバ装置1のVMM100は、端末装置5に対するゲストOS101を起動すると共に、このゲストOS101に割り当てられたハードウェア及びネットワークストレージ3のHDD32のメモリ領域を割り当て、仮想環境102を設定する。
Note that the
ゲストOS101は、起動処理を行なった後、端末装置5の表示部52に初期画面を表示させるための画像信号を生成し、自身に割り当てられた通信部14を介して、対応する端末装置5へ送信する。端末装置5は、ゲストOS101から送信されてきた画像信号を受信して表示部52に表示し、シンクライアントとしての動作を開始する。
After performing the startup process, the
このように、新たにゲストOS101を起動させる場合に、CPU使用率及びメモリ使用率がより低いサーバ装置1を選択することにより、それぞれのサーバ装置1,1…間において、起動中のゲストOS101,101…による負荷のばらつきを平滑化することができる。よって、それぞれのサーバ装置1,1…によって提供される仮想環境102,102のサービス品質を一定の水準に維持することができる。
As described above, when the
次に、上述したような処理によりシンクライアントとして動作している端末装置5,5…によるシンクライアントとしての動作を終了させる処理について説明する。シンクライアントとして動作している端末装置5のユーザは、対応するゲストOS101の動作を終了させたい場合、自身の端末装置5を介して、ゲストOS101の終了を要求する信号を、対応するサーバ装置1へ送信し、シンクライアントとしての動作を終了する。
Next, processing for terminating the operation as a thin client by the
サーバ装置1の制御部10(VMM100)は、端末装置5からゲストOS101の終了を要求する信号を受信した場合、この端末装置5に対応するゲストOS101を特定する。サーバ装置1の制御部10は、特定したゲストOS101の動作を終了させ、このゲストOS101に対する仮想環境102の割り当てを解消する。これにより、ゲストOS101及びゲストOS101に割り当てられていたハードウェア及びネットワークストレージ3のHDD32のメモリ領域を他の端末装置5,5…に開放することができる。
When the control unit 10 (VMM 100) of the
サーバ装置1の制御部10は、ゲストOS101の終了を管理装置2へ通知し、管理装置2の制御部20は、通知されたゲストOS101に対応する端末装置5のユーザのユーザ情報をユーザ管理テーブル23bから削除する。また、制御部20は、このユーザに割り当てられていたゲストOS101及び仮想環境102の利用状況を、リソース管理テーブル23cから削除する。
The
次に、上述した構成のシンクライアントシステムにおいて、管理装置2がそれぞれのサーバ装置1,1…における利用状況を監視する処理について説明する。管理装置2は、各サーバ装置1,1…から送信されてくるゲストOS情報をリソース管理テーブル23cに登録することによって、各サーバ装置1,1…の利用状況を管理している。
Next, in the thin client system having the above-described configuration, a process in which the
管理装置2の制御部20は、ゲストOS情報を受信してリソース管理テーブル23cに登録する都度、それぞれのサーバ装置1,1…における利用状況を監視する。本実施形態1のシンクライアントシステムでは、各サーバ装置1,1…におけるゲストOS101,101のCPU使用率の合計又はメモリ使用率の合計がそれぞれの所定値(例えば90%)よりも大きいサーバ装置1があれば、移行処理を実行する。移行処理は、CPU使用率の合計又はメモリ使用率の合計が大きい、即ち、負荷が大きいサーバ装置1におけるゲストOS101を、負荷が小さいサーバ装置1へ移行させる処理である。これにより、サーバ装置1,1…間における負荷のばらつきを平滑化でき、それぞれのサーバ装置1,1…が提供するゲストOS101,101の処理能力を確保することができる。
Each time the
具体的には、制御部(検出手段)20は、リソース管理テーブル23cに登録されている各サーバ情報に基づいて、各サーバ装置1,1…におけるゲストOS101,101のCPU使用率の合計(処理負荷)と、メモリ使用率の合計(処理負荷)とを検出する。そして、制御部20は、各サーバ装置1,1…におけるCPU使用率の合計が所定値よりも大きいサーバ装置1があるか否か、及び、各サーバ装置1,1…におけるメモリ使用率の合計が所定値よりも大きいサーバ装置1があるか否かを判断する。
Specifically, the control unit (detection means) 20 calculates the total CPU usage rate of the
なお、ゲストOS101,101のCPU使用率の合計が所定値よりも大きいサーバ装置1、又はゲストOS101,101のメモリ使用率の合計が所定値よりも大きいサーバ装置1を、移行処理によって他のサーバ装置1にゲストOS101を移行させる移行対象の候補のサーバ装置1とする。
The
制御部20は、移行対象の候補のサーバ装置1を複数検出した場合、そのうちで最も負荷が大きいサーバ装置1を特定する。具体的には、制御部20は、移行対象の候補の各サーバ装置1,1…におけるゲストOS101,101のCPU使用率の合計が最も大きいサーバ装置1を特定する。なお、CPU使用率の合計が同じサーバ装置1,1…が複数あった場合、制御部20は、これらのサーバ装置1,1…におけるゲストOS101,101のメモリ使用率の合計が最も大きいサーバ装置1を特定する。
When a plurality of
次に制御部(特定手段)20は、移行対象の候補に特定したサーバ装置1において、他のサーバ装置1への移行が可能な移行対象のゲストOS101(動作環境)を特定する。ここで、本実施形態1では、それぞれのゲストOS101,101…に対応する端末装置5,5…が、実際にユーザによって使用されている可能性の低いゲストOS101を移行処理の対象とする。即ち、実施にユーザによって使用されている可能性の高い端末装置5,5…に対応するゲストOS101,101…を移行処理の対象から除外する。
Next, the control unit (identifying unit) 20 identifies the migration target guest OS 101 (operating environment) that can be migrated to another
本実施形態1では、端末装置5,5…がユーザによって実際に使用されているか否かを、各ゲストOS101,101…に対応する仮想環境102,102…における仮想USBデバイス103,103…又は仮想サウンドデバイス105,105…が使用されているか否かで判断する。仮想USBデバイス103が使用されている場合とは、端末装置5のマウス56が使用されていることを意味するので、端末装置5のユーザがマウス56を操作していると判断できる。また、仮想サウンドデバイス105が使用されている場合とは、端末装置5のスピーカ53から音声が出力されていることを意味するので、端末装置5の近傍にユーザが居て音楽を鑑賞していると判断できる。
In the first embodiment, whether or not the
なお、端末装置5,5…がユーザによって実際に使用されているか否かの判断に、仮想USBデバイス103又は仮想サウンドデバイス105の使用状況のモニタリング結果のみを用いる構成には限られない。その他に、端末装置5のユーザの利用状況を判断できるデバイスのモニタリング結果を用いてもよい。例えば、端末装置5へ画像情報を送信するためのビデオデバイスは、スクリーンセーバーのようにユーザが実際には端末装置5を使用していない場合であっても使用される場合があるが、このようなデバイスのモニタリング結果を用いてもよい。
Note that the determination of whether or not the
従って、制御部20は、リソース管理テーブル23cの登録内容に基づいて、移行対象の候補に特定したサーバ装置1におけるゲストOS101,101のうちで、仮想USBデバイス103又は仮想サウンドデバイス105が使用されていないゲストOS101を特定する。仮想USBデバイス103及び仮想サウンドデバイス105が使用されていないゲストOS101(移行対象の候補のゲストOS101)を特定できた場合、制御部20(選択手段)は、移行先のサーバ装置1を選択する。
Therefore, the
制御部20は、リソース管理テーブル23cの登録内容に基づいて、それぞれのサーバ装置1,1…におけるゲストOS101,101のCPU使用率の合計(負荷)が最も小さいサーバ装置1を特定する。なお、CPU使用率の合計が同じサーバ装置1,1…が複数あった場合、制御部20は、これらのサーバ装置1,1…におけるゲストOS101,101のメモリ使用率の合計が最も小さいサーバ装置1を特定する。
Based on the registered contents of the resource management table 23c, the
そして、制御部20は、特定したサーバ装置1(移行先のサーバ装置1)が、移行対象の候補のゲストOS101のいずれかの受け入れが可能であるか否かを判断する。具体的には、制御部20は、特定したサーバ装置1に移行対象のゲストOS101を移行した後の、このサーバ装置1におけるCPU使用率の合計及びメモリ使用率が所定値よりも小さいか否かを判断する。
Then, the
まず、制御部20は、移行対象の候補のゲストOS101が複数ある場合、最も負荷(CPU使用率又はメモリ使用率)が大きいゲストOS101を特定する。そして、制御部20は、このゲストOS101を、移行先のサーバ装置1に移行させた場合のCPU使用率の合計及びメモリ使用率の合計を算出する。制御部20は、算出したCPU使用率の合計及びメモリ使用率の合計がそれぞれに対する所定値(基準値)よりも小さいか否かを判断し、小さい場合、このゲストOS101を移行対象のゲストOS101に特定する。
First, when there are a plurality of
一方、算出したCPU使用率の合計又はメモリ使用率の合計が所定値よりも大きい場合、このゲストOS101を移行した場合、移行先のサーバ装置1における負荷が基準値(所定値)よりも高くなるので、このゲストOS101の移行は行わない。従って、制御部20は、移行対象の候補のサーバ装置1における移行対象の候補のゲストOS101のうちで、このゲストOS101の次に負荷が大きいゲストOS101を特定し、同様に、このゲストOS101が、移行先のサーバ装置1に移行可能であるか否かを判断する。
On the other hand, when the calculated total CPU usage rate or total memory usage rate is larger than a predetermined value, when the
より具体的には、例えば、移行対象のサーバ装置1(第1サーバ装置1とする)には、CPU使用率が40%のゲストOS101とCPU使用率が60%のゲストOS101とが動作しており、最も負荷が小さいサーバ装置1(第2サーバ装置1とする)には、CPU使用率が20%のゲストOS101が動作しているとする。この場合、第1サーバ装置1のCPU使用率が60%のゲストOS101を第2サーバ装置1へ移行した場合であっても、移行後の第2サーバ装置1におけるCPU使用率の合計(80%)は、所定値(90%)よりも小さい値となる。従って、第1サーバ装置1のCPU使用率が60%のゲストOS101を第2サーバ装置1へ移行させる。
More specifically, for example, a
また、第1サーバ装置1には、CPU使用率が40%のゲストOS101とCPU使用率が60%のゲストOS101とが動作しており、第2サーバ装置1には、CPU使用率が20%のゲストOS101が2つ動作しているとする。この場合、第1サーバ装置1のCPU使用率が60%のゲストOS101を第2サーバ装置1へ移行した場合には、移行後の第2サーバ装置1におけるCPU使用率の合計(100%)は、所定値(90%)よりも大きい値となる。従って、第1サーバ装置1のCPU使用率が60%のゲストOS101を第2サーバ装置1へ移行させない。
Further, the
しかし、第1サーバ装置1のCPU使用率が40%のゲストOS101を第2サーバ装置1へ移行した場合には、移行後の第2サーバ装置1におけるCPU使用率の合計(80%)は、所定値(90%)よりも小さい値となる。従って、この場合は、第1サーバ装置1のCPU使用率が40%のゲストOS101を第2サーバ装置1へ移行させる。
However, when the
管理装置2の制御部20は、移行対象の候補のサーバ装置1において、移行先のサーバ装置1への移行が可能なゲストOS101があるまで上述した処理を繰り返す。なお、移行対象の候補のサーバ装置1におけるゲストOS101の全てが、移行先のサーバ装置1への移行が可能でない場合、制御部20は、移行対象の候補のサーバ装置1のうちで、次に負荷が大きいサーバ装置1を特定する。そして、制御部20は、特定したサーバ装置1について同様の処理を行ない、この移行対象の候補のサーバ装置1におけるゲストOS101,101…のうちで、移行先のサーバ装置1への移行が可能なゲストOS101を特定する。
The
上述した処理により、移行対象のゲストOS101及び移行先のサーバ装置1を特定できた場合、制御部(移行手段)20は、移行対象のサーバ装置1に対して、移行対象のゲストOS101を移行先のサーバ装置1に移行させる移行処理の開始を指示する。
When the migration
上述したように、本実施形態1のシンクライアントシステムでは、ユーザが実際に端末装置5を使用している可能性の高い端末装置5に対応するゲストOS101を移行処理の対象から外す。これにより、移行処理によってゲストOS101が一時的に動作を停止した場合であっても、他のゲストOS101の使用中のユーザには影響を与えない。また、移行対象のゲストOS101を移行先のサーバ装置1へ移行した場合であっても、移行先のサーバ装置1におけるCPU使用率及びメモリ使用率は基準値を満たすことができるので、移行先のサーバ装置1を既に使用中の他のユーザの仮想環境102,102…に影響を与えない。
As described above, in the thin client system of the first embodiment, the
次に、上述した構成のシンクライアントシステムにおいて、いずれかのサーバ装置1,1…における負荷が所定値よりも大きくなった場合に行なう移行処理(マイグレーション処理)について説明する。管理装置2は、移行処理を行なう場合、移行対象(移行元)のサーバ装置1に対して、移行すべき移行対象のゲストOS101と、移行先のサーバ装置1とを通知し、移行処理の開始を指示する。
Next, in the thin client system having the above-described configuration, a migration process (migration process) performed when the load on any of the
移行元のサーバ装置1の制御部10(VMM100)は、移行処理を開始する際に、移行先のサーバ装置1に対して、移行処理を開始する旨を通知する。これにより、移行先のサーバ装置1の制御部10(VMM100)は、ゲストOS101を起動させて待機する。
When starting the migration process, the control unit 10 (VMM 100) of the migration
移行元のサーバ装置1のVMM100は、移行対象のゲストOS101に対するCPUの割当時間を0にすることによって、移行対象のゲストOS101の動作を一時的に停止させる。VMM100は、移行対象のゲストOS101に割り当てられているRAM12に格納されている情報、移行対象のゲストOS101に割り当てられているハードウェアの割当情報等の、ネットワークストレージ3の移行処理用の領域への書き込みを開始する。
The
移行元のサーバ装置1のVMM100は、移行対象のゲストOS101において、モニタ対象(仮想USBデバイス103及び仮想サウンドデバイス105)以外の仮想デバイスの利用があった場合、その情報もネットワークストレージ3へ書き込む。例えば、移行対象のゲストOS101に対応する通信部14(仮想通信ネットワークデバイス)宛ての情報を受信した場合は、その情報もネットワークストレージ3へ書き込む。
When the migration
移行元のサーバ装置1のVMM100は、ネットワークストレージ3への情報の書き込みを行なっている場合、移行対象のゲストOS101の仮想環境102における仮想USBデバイス103又は仮想サウンドデバイス105の使用があるか否かを監視している。具体的には、VMM100は、移行対象のゲストOS101に対応するUSBデバイスモニタ部104又はサウンドデバイスモニタ部106による監視結果を取得し、仮想USBデバイス103又は仮想サウンドデバイス105が使用されたか否かを判断する。
If the
仮想USBデバイス103又は仮想サウンドデバイス105が使用されたと判断した場合、VMM100は、ネットワークストレージ3への情報の書き込みを中断し、移行対象のゲストOS101の動作を再開させる。そして、VMM100は、仮想USBデバイス103又は仮想サウンドデバイス105の使用が終了してから所定時間待機し、この時点で仮想USBデバイス103又は仮想サウンドデバイス105がまだ使用されているか否かを判断する。
If it is determined that the
仮想USBデバイス103又は仮想サウンドデバイス105がまだ使用されていれば、VMM100は、この移行対象のゲストOS101の移行処理を行なわない。この場合、VMM100は、移行先のサーバ装置1に対して、移行処理を中止する旨を通知する。これにより、移行先のサーバ装置1の制御部10(VMM100)は、移行先のゲストOS101の動作を終了させる。
If the
仮想USBデバイス103又は仮想サウンドデバイス105が使用されていない場合、VMM100は、移行対象のゲストOS101の動作を再度停止させ、ネットワークストレージ3への情報の書き込みを再開する。なお、このとき、VMM100は、既にネットワークストレージ3に書き込んだ情報については、ネットワークストレージ3への書き込み後に変更された部分のみを上書きすればよい。
If the
ネットワークストレージ3に書き込んだ情報に変更があったか否かは、例えば、移行対象のゲストOS101に割り当てた記憶領域であるメモリページ(RAM12)に書き込み保護をかけ、書き込み保護された記憶領域を更新しようとする際に発生する例外(記憶保護例外)をハンドリングすることで判断する。移行処理の際には、ゲストOS101が実際に物理アドレスにアクセスするような処理を行なったときは割込処理でそれをハンドリングできるようにしておき、割込処理の発生時にそのメモリページを記憶しておく。
Whether the information written in the
このため、VMM100では、元から仮想環境102に対してメモリを仮想化して見せるようにする。そして、その仮想物理アドレスと実際の物理メモリとを対応付けるテーブルを作成しておき、ゲストOS101がテーブルにアクセスしようとした場合は割込処理でハンドリングすることでその内容を書き換え、実メモリアドレスに変換を行なうことで、ゲストOS101に実メモリにアクセスさせる。このとき、各情報が変更されたか否かをチェックできない環境であれば、全ての情報を再度保存すればよい。
For this reason, in the
移行元のサーバ装置1のVMM100は、移行対象のゲストOS101に関する全ての情報をネットワークストレージ3に書き込むまで、仮想USBデバイス103又は仮想サウンドデバイス105が使用される都度、上述した処理を繰り返す。VMM100は、移行対象のゲストOS101に対応する仮想USBデバイス103又は仮想サウンドデバイス105が使用されていない状態で、各種情報のネットワークストレージ3への書き込みを完了した場合、その旨を移行先のサーバ装置1へ通知する。
The
移行先のサーバ装置1のVMM100は、移行元のサーバ装置1から、ネットワークストレージ3への書き込みの完了を通知された場合、ネットワークストレージ3からの情報の読み出しを開始し、ネットワークストレージ3から読み出した情報を、移行先のゲストOS101に割り当てられたRAM12等に逐次格納する。移行先のサーバ装置1のVMM100は、ネットワークストレージ3からの情報の読み出しを終了した場合、移行元のサーバ装置1にその旨を通知する。
The
移行元のサーバ装置1のVMM100は、移行先のサーバ装置1から、ネットワークストレージ3からの情報の読み出し完了を通知された場合、移行先のサーバ装置1が、ネットワークストレージ3に格納された情報を再読み出しする必要があるか否かを判断する。移行元のサーバ装置1のVMM100は、再読み出しする必要があると判断した場合、ネットワークストレージ3への情報の書き込みを再度行なう。
When the
そして、移行元のサーバ装置1のVMM100は、移行先のサーバ装置1に、移行先のゲストOS101への情報の再読み出しを指示すると共に、移行先のゲストOS101の動作の開始を指示する。なお、移行元のサーバ装置1のVMM100は、再読み出しする必要がないと判断した場合、ネットワークストレージ3への情報の再度の書き込みを行なわず、移行先のゲストOS101への情報の再読み出しを指示せず、移行先のゲストOS101の動作の開始のみを移行先のサーバ装置1に指示する。
Then, the
移行先のサーバ装置1のVMM100は、再読み出しを指示された場合、ネットワークストレージ3から情報を再読み出しし、この情報に基づいて、移行先のゲストOS101の動作を開始し、移行処理を終了する。また、移行先のサーバ装置1のVMM100は、再読み出しを指示されなかった場合、既にネットワークストレージ3から取得してある情報に基づいて、移行先のゲストOS101の動作を開始し、移行処理を終了する。
When the
ここで、ネットワークストレージ3に格納された情報を再読み出しする必要があるか否かは、移行元のサーバ装置1がネットワークストレージ3への情報の書き込みを完了してから、移行先のサーバ装置1がネットワークストレージ3からの情報の読み出しを完了するまでの間に、ネットワークストレージ3に格納された情報が更新されたか否かによって判断する。
Here, whether or not it is necessary to re-read the information stored in the
移行元のサーバ装置1のVMM100は、自身が移行先のサーバ装置1に、ネットワークストレージ3への情報の書き込み完了を通知してから、移行先のサーバ装置1から、ネットワークストレージ3からの情報の読み出し完了を通知されるまでの間に、移行対象のゲストOS101に対応する仮想USBデバイス103又は仮想サウンドデバイス105が使用されたか否かを監視している。
The
この間に、移行対象のゲストOS101に対応する仮想USBデバイス103又は仮想サウンドデバイス105が使用された場合、移行元のサーバ装置1のVMM100は、移行対象のゲストOS101の動作を再開させる。そして、VMM100は、仮想USBデバイス103又は仮想サウンドデバイス105の使用が終了してから所定時間待機し、この時点で仮想USBデバイス103又は仮想サウンドデバイス105がまだ使用されているか否かを判断する。
During this time, when the
仮想USBデバイス103又は仮想サウンドデバイス105がまだ使用されていれば、VMM100は、この移行対象のゲストOS101の移行処理を中止する。なお、この場合、VMM100は、移行先のサーバ装置1に対して、移行処理を中止する旨を通知する。これにより、移行先のサーバ装置1の制御部10(VMM100)は、ネットワークストレージ3からの情報の読み出しを終了し、移行先のゲストOS101の動作を終了させる。
If the
仮想USBデバイス103又は仮想サウンドデバイス105が使用されていない場合、VMM100は、移行対象のゲストOS101の動作を再度停止させ、ネットワークストレージ3からの情報の読み出し完了を移行先のサーバ装置1から通知されるまで待機する。なお、移行元のサーバ装置1のVMM100は、ネットワークストレージ3からの情報の読み出し完了を移行先のサーバ装置1から通知されるまでの間、仮想USBデバイス103又は仮想サウンドデバイス105が使用される都度、上述した処理を繰り返す。
When the
移行元のサーバ装置1のVMM100は、ネットワークストレージ3からの情報の読み出し完了を移行先のサーバ装置1から通知された場合、移行先のサーバ装置1がネットワークストレージ3から情報を再読み出しする必要があるか否かを判断する。そして、移行元のサーバ装置1のVMM100は、移行先のサーバ装置1が情報を再読み出しする必要があると判断した場合、ネットワークストレージ3への情報の書き込みを再度行なう。なお、このとき、VMM100は、既にネットワークストレージ3に書き込んだ情報については、ネットワークストレージ3への書き込み後に変更された部分のみを上書きすればよい。
When the
移行元のサーバ装置1のVMM100は、移行先のサーバ装置1に対して、移行先のゲストOS101への情報の再読み出しを指示する共に、移行先のゲストOS101の動作の開始を指示する。更に、移行元のサーバ装置1のVMM100は、ルーティング装置4に対して、移行元(移行対象)のゲストOS101に割り当てられていたアドレスを、移行先のゲストOS101に割り当てるように、割り当ての変更を指示する。
The
具体的には、それぞれのサーバ装置1において、ゲストOS101にVMM100から仮想ネットワークデバイスを与えると共に、サーバ装置1の実ネットワークデバイス(通信部14)をブリッジとしてネットワークを構成する場合、実ネットワークデバイスをブリッジとして用いるようにする。このようにすると、実ネットワークデバイスがスイッチングハブのような動作をし、仮想ネットワークデバイスのMedia Access Control(MAC)アドレスに送信されるイーサネット(登録商標)パケットが実デバイスを経由するようになる。
Specifically, in each
移行処理を行なうまでは、ゲストOS101のInternet Protocol(IP)アドレス宛てのパケットは、移行元のサーバ装置1に送信されるようになっているが、これを移行先のサーバ装置1に送信されるように、再度仮想ネットワークデバイスのMACアドレスをルーティング装置4へ送信し、ルーティング装置4に割り当ての変更を指示する。
Until the migration process is performed, packets addressed to the Internet Protocol (IP) address of the
もし、移行元のサーバ装置1が移行元のゲストOS101の動作を停止し、ネットワークストレージ3への情報の書き込みを開始してから、実際にルーティング装置4がMACアドレスの切り替えを行なうまでの間に、移行元のサーバ装置1が移行元のゲストOS101に対するネットワークパケットを受信した場合、移行元のサーバ装置1が、移行先のサーバ装置1に対して、そのネットワークパケットを転送すればよい。なお、このとき、移行先のサーバ装置1において、移行先のゲストOS101がリストアを完了していない場合は、移行先のサーバ装置1が、一時的にこのネットワークパケットを保存しておき、リストア完了後に移行先のゲストOS101にネットワークパケットを渡せばよい。
If the migration
上述した処理により、移行処理の実行中に、移行元のゲストOS101に対応する各種デバイス(仮想USBデバイス103又は仮想サウンドデバイス105)が使用された場合には即座にそのデバイスの動作に対応する処理を行なうことができる。また、移行処理の実行中に、移行元のゲストOS101に対応するデバイスが使用されなかった場合には、移行元のサーバ装置1が行なうネットワークストレージ3への情報の書き込み処理、及び移行先のサーバ装置1が行なうネットワークストレージ3からの情報の読み出し処理がそれぞれ1回で済み、迅速な移行処理が可能となる。
With the above-described processing, when various devices (
以下に、本実施形態1のシンクライアントシステムにおいて、サーバ装置1、管理装置2及び端末装置5の間で行なわれる具体的な処理手順についてフローチャートに基づいて説明する。図8はシンクライアントの起動処理の手順を示すフローチャートである。なお、以下の処理は、管理装置2のROM21又はHDD23に格納されている制御プログラムに従って制御部20によって実行されると共に、サーバ装置1のROM11又はHDD13に格納されている制御プログラムに従って制御部10(VMM100、ゲストOS101)によって実行される。
Hereinafter, a specific processing procedure performed between the
管理装置2の制御部20は、端末装置5からゲストOS101の起動を要求する信号を受信したか否かを判断しており(S1)、受信していないと判断した場合(S1:NO)、受信するまで待機する。制御部20は、ゲストOS101の起動を要求する信号を受信したと判断した場合(S1:YES)、リソース管理テーブル23cの登録内容に基づいて、端末装置5に対応するサーバ装置1、ゲストOS101及びネットワークストレージ3のHDD32のメモリ領域を選択して割り当てる(S2)。具体的には、制御部20は、CPU使用率及びメモリ使用率のより低いサーバ装置1を選択する。
The
制御部20は、ゲストOS101の起動を要求してきた端末装置5に対して割り当てたサーバ装置1、ゲストOS101、ネットワークストレージのメモリ領域に関する情報をユーザ管理テーブル23bに登録する(S3)。制御部20は、選択したサーバ装置1に対して、選択したゲストOS101の起動を指示する(S4)。
The
サーバ装置1の制御部10(VMM100)は、管理装置2からの指示に従って、端末装置5に対するゲストOS101を起動する(S5)。そして、制御部10は、このゲストOS101に割り当てられたハードウェア及びネットワークストレージ3のHDD32のメモリ領域を割り当て、仮想環境102を設定する(S6)。制御部10は、ゲストOS101を起動させた場合、端末装置5の表示部52に初期画面を表示させるための画像信号を生成し、対応する端末装置5へ送信する(S7)。これにより、端末装置5は、初期画面を表示部52に表示させ、シンクライアントとしての動作を開始し、シンクライアントの起動処理を終了する。
The control unit 10 (VMM 100) of the
上述したように、本実施形態1の管理装置2は、新たにゲストOS101を起動させる場合に、CPU使用率及びメモリ使用率がより低いサーバ装置1を選択する。よって、新たにゲストOS101を起動させたことによって、そのサーバ装置1において既に起動している他のゲストOS101に影響を与えることがない。
As described above, when the
次に、管理装置2がそれぞれのサーバ装置1,1…における利用状況を監視する処理について説明する。図9及び図10はサーバ装置1,1…の利用状況の監視処理の手順を示すフローチャートである。なお、以下の処理は、管理装置2のROM21又はHDD23に格納されている制御プログラムに従って制御部20によって実行される。
Next, processing in which the
管理装置2の制御部20は、サーバ装置1,1…からゲストOS情報を受信したか否かを判断しており(S11)、受信していないと判断した場合(S11:NO)、受信するまで待機する。制御部20は、ゲストOS情報を受信したと判断した場合(S11:YES)、受信したゲストOS情報をリソース管理テーブル23cに登録する(S12)。制御部20は、リソース管理テーブル23cの登録内容に基づいて、移行処理を行なうべき移行対象の候補のサーバ装置1が有るか否かを判断する(S13)。
The
具体的には、制御部20は、各サーバ装置1,1…におけるゲストOS101,101のCPU使用率の合計又はメモリ使用率の合計がそれぞれの所定値よりも大きいサーバ装置1が有るか否かを判断する。制御部20は、移行対象の候補のサーバ装置1が無いと判断した場合(S13:NO)、処理を終了する。
Specifically, the
制御部20は、移行対象の候補のサーバ装置1が有ると判断した場合(S13:YES)、このサーバ装置1のうちから最も負荷(CPU使用率及びメモリ使用率)が大きいサーバ装置1を特定する(S14)。制御部20は、リソース管理テーブル23cの登録内容に基づいて、特定したサーバ装置1において、移行対象の候補のゲストOS101が有るか否かを判断する(S15)。
When the
具体的には、制御部20は、特定したサーバ装置1におけるゲストOS101,101…のうちで、仮想USBデバイス103及び仮想サウンドデバイス105が使用されていないゲストOS101を特定する。移行対象の候補のゲストOS101が無いと判断した場合(S15:NO)、制御部20は、ステップS13で移行対象の候補のサーバ装置1であると判断したサーバ装置1が他にも有るか否かを判断する(S16)。制御部20は、移行対象の候補のサーバ装置1が他に無いと判断した場合(S16:NO)、処理を終了する。
Specifically, the
移行対象の候補のサーバ装置1が他にも有ると判断した場合(S16:YES)、制御部20は、ステップS14で特定したサーバ装置1の次に負荷が大きいサーバ装置1を特定し(S17)、ステップS15へ処理を戻す。
If it is determined that there are other
ステップS15で移行対象の候補のゲストOS101が有ると判断した場合(S15:YES)、制御部20は、リソース管理テーブル23cの登録内容に基づいて、最も負荷(CPU使用率及びメモリ使用率)が小さいサーバ装置1を移行先のサーバ装置1に特定する(S18)。制御部20は、ステップS15で移行対象の候補のゲストOS101であると判断したゲストOS101のうちで最も負荷が大きいゲストOS101を特定する(S19)。制御部20は、特定したゲストOS101が、ステップS18で特定したサーバ装置1へ移行可能であるか否かを判断する(S20)。
When it is determined in step S15 that there is a migration target candidate guest OS 101 (S15: YES), the
移行可能でないと判断した場合(S20:NO)、制御部20は、ステップS15で移行対象の候補のゲストOS101であると判断したゲストOS101が他にも有るか否かを判断する(S22)。制御部20は、移行対象の候補のゲストOS101がまだ有ると判断した場合(S22:YES)、ステップS19で特定したゲストOS101の次に負荷が大きいゲストOS101を特定し(S23)、ステップS20へ処理を戻す。
If it is determined that the migration is not possible (S20: NO), the
移行対象の候補のゲストOS101が他に無いと判断した場合(S22:NO)、制御部20は、ステップS16へ処理を移行し、ステップS13で移行対象の候補のサーバ装置1であると判断したサーバ装置1が他にも有るか否かを判断する(S16)。制御部20は、移行対象の候補のサーバ装置1が他にも有ると判断した場合(S16:YES)、次に負荷が大きいサーバ装置1を特定し(S17)、ステップS15へ処理を戻す。
If it is determined that there is no other migration target candidate guest OS 101 (S22: NO), the
制御部20は、ステップS18で特定された移行先のサーバ装置1への移行が可能なゲストOS101を特定するまで、上述したステップS15〜S23の処理を繰り返す。ステップS20で、移行可能であると判断した場合(S20:YES)、制御部20は、移行対象のサーバ装置1に、移行対象のゲストOS101の移行処理の開始を指示し(S21)、処理を終了する。
The
次に、本実施形態1のシンクライアントシステムにおける移行処理(マイグレーション処理)について説明する。図11乃至図13は移行元のサーバ装置1が行なう移行処理の手順を示すフローチャートである。なお、以下の処理は、サーバ装置1のROM11又はHDD13に格納されている制御プログラムに従って制御部10(VMM100)によって実行される。
Next, migration processing (migration processing) in the thin client system of the first embodiment will be described. 11 to 13 are flowcharts showing the procedure of the migration process performed by the migration
移行元のサーバ装置1の制御部10は、管理装置2から移行処理の開始を指示されたか否かを判断しており(S31)、指示されていないと判断した場合(S31:NO)、指示されるまで待機する。制御部10は、指示されたと判断した場合(S31:YES)、移行先のサーバ装置1に対して、移行処理を開始する旨を通知する(S32)。
The
制御部10は、移行対象のゲストOS101の動作を一時的に停止させる(S33)。制御部10は、移行対象のゲストOS101に関する各種の情報の、ネットワークストレージ3への書き込みを開始する(S34)。制御部10は、移行対象のゲストOS101に対応する仮想USBデバイス103又は仮想サウンドデバイス105の使用があるか否かを判断する(S35)。
The
仮想デバイス103,105の使用がないと判断した場合(S35:NO)、制御部10は、ステップS34で開始したネットワークストレージ3への書き込みが終了したか否かを判断する(S36)。書き込みが終了していないと判断した場合(S36:NO)、制御部10は、ステップS35へ処理を戻す。
When it is determined that the
制御部10は、仮想デバイス103,105の使用があると判断した場合(S35:YES)、ステップS34で開始したネットワークストレージ3への情報の書き込みを中断する(S37)。制御部10は、移行対象のゲストOS101の動作を再開させ(S38)、一定時間待機する(S39)。
When it is determined that the
制御部10は、移行対象のゲストOS101に対応する仮想デバイス103,105の使用があるか否かを判断し(S40)、仮想デバイス103,105の使用があると判断した場合(S40:YES)、移行開始後のタイムアウト時間が経過したか否かを判断する(S41)。タイムアウト時間が経過したと判断した場合(S41:YES)、制御部10は、移行先のサーバ装置1に、移行処理の終了を通知し(S42)、移行処理を終了する。
The
即ち、ここでタイムアウト時間が経過した場合には、利用者が積極的に使用している状態に推移したと考えられるため、移行処理を終了させることにより、そのゲストOS101を移行処理の対象から外す。これにより、ゲストOS101の移行処理に伴って生じ得る入出力処理の遅延を回避し、利用者の操作性を確保することが可能となる。
In other words, when the timeout period elapses, it is considered that the user has been actively used. Therefore, by terminating the migration process, the
一方、タイムアウト時間が経過していないと判断した場合(S41:NO)、制御部10は、再度一定時間待機した後、仮想デバイス103,105の使用状況をチェックする処理(S39,S40)を繰り返す。
On the other hand, when it is determined that the timeout time has not elapsed (S41: NO), the
仮想デバイス103,105の使用がないと判断した場合(S40:NO)、制御部10は、ステップS33へ処理を戻し、移行対象のゲストOS101の動作を再度停止させる(S33)。そして、制御部10は、移行対象のゲストOS101に関する各種の情報の、ネットワークストレージ3への書き込みを再度開始し(S34)、ステップS35〜S40の処理を繰り返す。
If it is determined that the
ステップS36で、ネットワークストレージ3への書き込みが終了したと判断した場合(S36:YES)、制御部10は、移行先のサーバ装置1に、ネットワークストレージ3への書き込み完了を通知する(S43)。制御部10は、移行先のサーバ装置1から、ネットワークストレージ3からの情報の読み出し完了を通知されたか否かを判断する(S44)。制御部10は、通知されていないと判断した場合(S44:NO)、移行元のゲストOS101に対応する仮想デバイス103,105の使用があるか否かを判断する(S45)。
If it is determined in step S36 that writing to the
仮想デバイス103,105の使用がないと判断した場合(S45:NO)、制御部10は、ステップS44へ処理を戻す。また、仮想デバイス103,105の使用があると判断した場合(S45:YES)、制御部10は、ステップS38〜S40の手順により、ゲストOS101の動作を再開させて仮想デバイス103,105が使用されなくなるまで待機する。
When it is determined that the
ステップS44で、ネットワークストレージ3からの情報の読み出し完了を移行先のサーバ装置1から通知されたと判断した場合(S44:YES)、制御部10は、移行先のサーバ装置1が、ネットワークストレージ3に格納された情報を再読み出しする必要があるか否かを判断する(S46)。再読み出しする必要があると判断した場合(S46:YES)、制御部10は、移行対象のゲストOS101に関する各種の情報の、ネットワークストレージ3への書き込みを再度行なう(S47)。
If it is determined in step S44 that the completion of reading of information from the
制御部10は、ネットワークストレージ3への情報の書き込みを終了した後、移行先のサーバ装置1に、ネットワークストレージ3の情報の再読み出しを指示する(S48)。制御部10は、再読み出しする必要がないと判断した場合(S46:NO)、ステップS47,48の処理をスキップし、移行先のサーバ装置1に、移行先のゲストOS101の動作開始を指示する(S49)。そして、制御部10は、ルーティング装置4に、移行元のゲストOS101に割り当てられていたアドレスを、移行先のゲストOS101に割り当てるように、割り当ての変更を指示し(S50)、移行処理を終了する。
After completing the writing of information to the
図14及び図15は移行先のサーバ装置1が行なう移行処理の手順を示すフローチャートである。なお、以下の処理は、サーバ装置1のROM11又はHDD13に格納されている制御プログラムに従って制御部10(VMM100)によって実行される。
FIG. 14 and FIG. 15 are flowcharts showing the procedure of the migration process performed by the migration
移行先のサーバ装置1の制御部10は、移行元のサーバ装置1から、移行処理の開始を通知されたか否かを判断しており(S61)、通知されていないと判断した場合(S61:NO)、通知されるまで待機する。制御部10は、通知されたと判断した場合(S61:YES)、移行先として指定されたゲストOS101を起動させる(S62)。
The
移行先のサーバ装置1の制御部10は、移行元のサーバ装置1から、移行処理の中止を通知されたか否かを判断しており(S63)、通知されたと判断した場合(S63:YES)、ステップS62で起動させたゲストOS101の動作を終了し(S64)、移行処理を終了する。
The
移行処理の中止を通知されていないと判断した場合(S63:NO)、制御部10は、移行元のサーバ装置1から、ネットワークストレージ3への情報の書き込み完了を通知されたか否かを判断する(S65)。ネットワークストレージ3への情報の書き込み完了を通知されていないと判断した場合(S65:NO)、制御部10は、ステップS63へ処理を戻し、通知されるまで待機する。制御部10は、ネットワークストレージ3への情報の書き込み完了を通知されたと判断した場合(S65:YES)、移行元のサーバ装置1によって書き込まれた情報のネットワークストレージ3からの読み出しを開始する(S66)。
When it is determined that the cancellation of the migration process has not been notified (S63: NO), the
制御部10は、移行元のサーバ装置1から、移行処理の中止を通知されたか否かを判断しており(S67)、通知されたと判断した場合(S67:YES)、ステップS66で開始したネットワークストレージ3からの情報の読み出しを終了する(S68)。制御部10は、ステップS62で起動させたゲストOS101の動作を終了させ(S69)、移行処理を終了する。
The
移行処理の中止を通知されていないと判断した場合(S67:NO)、制御部10は、ステップS66で開始したネットワークストレージ3からの情報の読み出しを終了したか否かを判断する(S70)。ネットワークストレージ3からの情報の読み出しを終了していないと判断した場合(S70:NO)、制御部10は、ステップS67へ処理を戻す。ネットワークストレージ3からの情報の読み出しを終了したと判断した場合(S70:YES)、制御部10は、移行元のサーバ装置1に、ネットワークストレージ3からの情報の読み出し完了を通知する(S71)。
When it is determined that the cancellation of the migration process has not been notified (S67: NO), the
そして、制御部10は、移行元のサーバ装置1から、ネットワークストレージ3からの情報の再読み出しを指示されたか否かを判断しており(S72)、指示されたと判断した場合(S72:YES)、ネットワークストレージ3から情報を再読み出しする(S73)。制御部10は、ネットワークストレージ3からの情報の再読み出しを指示されていないと判断した場合(S72:NO)、ステップS73の処理をスキップする。制御部10は、移行元のサーバ装置1から、移行先のゲストOS101の動作開始を指示されたか否かを判断し(S74)、指示されていないと判断した場合(S74:NO)、ステップS72へ処理を戻す。
Then, the
制御部10は、移行先のゲストOS101の動作開始を指示されたと判断した場合(S74:YES)、ネットワークストレージ3から読み出して移行先のゲストOS101に対応するRAM12に格納した各情報に基づいて、ステップS62で起動させたゲストOS101の動作を開始し(S75)、移行処理を終了する。
When determining that the operation start of the migration
上述した処理により、移行処理の実行中に、移行元のゲストOS101に対応する各種デバイスが使用された場合には即座にそのデバイスの動作に対応する処理を行なうので、ゲストOS101のユーザに、移行処理に伴うゲストOS101の処理停止を体感させない。また、移行処理によって、負荷の大きいサーバ装置1の負荷(ゲストOS101、仮想環境102)を他のサーバ装置1へ移行させることができるので、各サーバ装置1,1…を利用するユーザに高品質のシンクライアントを提供できる。
With the above-described processing, when various devices corresponding to the migration
移行対象のゲストOS101が移行先のサーバ装置1に移行可能であるか否かの判断は、CPU使用率及びメモリ使用率を比較する構成に限られない。例えば、サーバ装置1におけるリソースの使用状態に対応させて、移行処理を行なうか否かを示す情報を登録したテーブルを用いて行なってもよい。この場合、移行対象(移行元)のサーバ装置1のリソース使用状況と移行先のサーバ装置1のリソース使用状況とを、このようなテーブルに当てはめた上で、テーブルの登録内容に従って移行処理を行なうか否かを判断すればよい。
The determination of whether or not the migration
上述した実施形態1のシンクライアントシステムでは、管理装置2が、それぞれのサーバ装置1,1…における負荷(CPU使用率及びメモリ使用率)を監視し、移行処理が必要であるか否かを判断する構成であった。このような構成に限られず、本実施形態1の管理装置2の機能を、いずれかのサーバ装置1に持たせるように構成することもできる。この場合、他のサーバ装置1,1…が、自身におけるゲストOS101,101のCPU使用率及びメモリ使用率を、管理装置2の機能を有するサーバ装置1へ送信し、管理装置2の機能を有するサーバ装置1で管理する。
In the thin client system of the first embodiment described above, the
また、それぞれのサーバ装置1,1…が、自身におけるゲストOS101,101のCPU使用率の合計又はメモリ使用率の合計がそれぞれ所定値よりも大きいか否かを監視するように構成してもよい。この場合、それぞれのサーバ装置1,1…におけるVMM100,100…が、自身のサーバ装置1,1…におけるゲストOS101,101のCPU使用率の合計又はメモリ使用率の合計がそれぞれ所定値よりも大きい場合、移行処理が必要であると判断する。なお、この構成については、以下の実施形態2で説明する。
Further, each of the
(実施形態2)
以下に、実施形態2に係るシンクライアントシステムについて説明する。本実施形態2のシンクライアントシステムは、上述した実施形態1のシンクライアントシステムと同様の構成によって実現される。従って、本実施形態2のシンクライアントシステムにおけるサーバ装置1、管理装置2ネットワークストレージ3及び端末装置5の構成についての詳細な説明は省略する。
(Embodiment 2)
The thin client system according to the second embodiment will be described below. The thin client system of the second embodiment is realized by the same configuration as the thin client system of the first embodiment described above. Therefore, a detailed description of the configuration of the
なお、本実施形態2のシンクライアントシステムでは、管理装置2は、端末装置5からのゲストOS101の起動の要求に対して、どのサーバ装置1のどのゲストOS101を提供するかを決定する処理を行なう。従って、端末装置5,5…によってシンクライアントの利用が可能になるまでの処理、シンクライアントとして動作している端末装置5,5…によるシンクライアントとしての動作を終了させる処理については、実施形態1で説明した処理と同様である。
In the thin client system of the second embodiment, the
上述した実施形態1では、管理装置2は、それぞれのサーバ装置1,1…における利用状況を監視する構成であったが、本実施形態2では、それぞれのサーバ装置1,1…が、自身のサーバ装置1,1…における利用状況を監視する構成である。
In the first embodiment described above, the
以下に、本実施形態2のシンクライアントシステムにおいて、それぞれのサーバ装置1,1…が、自身のサーバ装置1,1…における利用状況を監視する処理について説明する。本実施形態2のサーバ装置1,1…も、上述した実施形態1のサーバ装置1,1…と同様に、利用状況テーブル13dを用いて、自身のサーバ装置1,1…におけるゲストOS101,101によるCPU使用率、メモリ使用率及びデバイス使用状況を管理している。
Hereinafter, in the thin client system according to the second embodiment, a process in which each
サーバ装置1の制御部10は、利用状況テーブル13dの登録内容を定期的に監視する。制御部10は、自身のサーバ装置1におけるゲストOS101のCPU使用率の合計又はメモリ使用率の合計がそれぞれの所定値(例えば90%)よりも大きければ、移行処理が必要であると判断する。
The
制御部10は、移行処理が必要であると判断した場合、他のサーバ装置1への移行が可能な移行対象のゲストOS101(動作環境)を特定する。具体的には、制御部10は、利用状況テーブル13dの登録内容に基づいて、自身のサーバ装置1におけるゲストOS101,101のうちで、仮想USBデバイス103又は仮想サウンドデバイス105が使用されていないゲストOS101を特定する。
When determining that the migration process is necessary, the
仮想USBデバイス103及び仮想サウンドデバイス105が使用されていないゲストOS101(移行対象の候補のゲストOS101)を特定できた場合、制御部10は、ネットワークN2を介して接続されている他のサーバ装置1,1…と通信を行なう。制御部10は、他のサーバ装置1,1…から、他のサーバ装置1,1…におけるCPU使用率及びメモリ使用率を受信し、CPU使用率の合計(負荷)が最も小さいサーバ装置1を特定する。なお、CPU使用率の合計が同じサーバ装置1,1…が複数あった場合、制御部10は、他のサーバ装置1,1…におけるゲストOS101,101のメモリ使用率の合計が最も小さいサーバ装置1を特定する。
When the
そして、制御部10は、特定したサーバ装置1(移行先のサーバ装置1)が、自身における移行対象の候補のゲストOS101のいずれかの受け入れが可能であるか否かを判断する。具体的には、制御部20は、特定したサーバ装置1に移行対象のゲストOS101を移行した後の、このサーバ装置1におけるCPU使用率の合計及びメモリ使用率の合計が所定値よりも小さい値となるか否かを判断する。
Then, the
まず、制御部10は、自身における移行対象の候補のゲストOS101が複数ある場合、最も負荷(CPU使用率又はメモリ使用率)が大きいゲストOS101を特定する。そして、制御部10は、このゲストOS101を、移行先のサーバ装置1に移行させた場合の移行先のサーバ装置1におけるCPU使用率の合計及びメモリ使用率を算出する。制御部10は、算出したCPU使用率の合計及びメモリ使用率の合計が所定値よりも小さいか否かを判断し、小さい場合、このゲストOS101を移行対象のゲストOS101に特定する。
First, when there are a plurality of
一方、算出したCPU使用率の合計又はメモリ使用率の合計が所定値よりも大きい場合、このゲストOS101を移行した場合、移行先のサーバ装置1における負荷が基準値(所定値)よりも高くなるので、このゲストOS101の移行は行わない。従って、制御部10は、自身のサーバ装置1において、このゲストOS101の次に負荷が大きいゲストOS101を特定し、同様に、このゲストOS101が、移行先のサーバ装置1に移行可能であるか否かを判断する。
On the other hand, when the calculated total CPU usage rate or total memory usage rate is larger than a predetermined value, when the
制御部10は、移行先のサーバ装置1に移行可能なゲストOS101を特定するまで上述した処理を繰り返す。なお、制御部10は、移行先のサーバ装置1に移行可能であるゲストOS101を特定できなかった場合、移行処理を行なわない。これにより、移行先のサーバ装置1において、ゲストOS101を移行された場合であっても、移行先のサーバ装置1における負荷が基準値を満たすことができるので、移行先のサーバ装置1を既に使用中の他のユーザの仮想環境102,102…に影響を与えない。
The
また、ユーザが実際に端末装置5を使用している可能性の高い端末装置5に対応するゲストOS101を移行処理の対象から外す。これにより、移行処理によってゲストOSが一時的に動作を停止した場合であっても、他のゲストOS101を使用中のユーザには影響を与えない。
In addition, the
サーバ装置1(移行元のサーバ装置1)の制御部10は、上述した処理により、移行対象のゲストOS101及び移行先のサーバ装置1を特定できた場合、移行処理を開始する。なお、移行処理を開始するサーバ装置1は、実施形態1において図11乃至図13で説明した、移行元のサーバ装置1が行なう処理を行なえばよいので説明を省略する。また、移行先に選ばれたサーバ装置1の制御部10は、実施形態1において図14及び図15で説明した、移行先のサーバ装置1が行なう処理を行なえばよいので、説明を省略する。
The
以下に、サーバ装置1が自身における利用状況を監視する処理について説明する。図16はサーバ装置1,1…の利用状況の監視処理の手順を示すフローチャートである。なお、以下の処理は、サーバ装置1のROM11又はHDD13に格納されている制御プログラムに従って制御部10(VMM100)によって実行される。
Below, the process which the
サーバ装置1の制御部10は、利用状況テーブル13dの登録内容に基づいて、移行処理が必要であるか否かを判断しており(S81)、移行処理が必要でないと判断した場合(S81:NO)、待機する。具体的には、制御部10は、自身のゲストOS101,101のCPU使用率の合計又はメモリ使用率の合計がそれぞれの所定値よりも大きいか否かを判断する。
The
制御部10は、移行処理が必要であると判断した場合(S81:YES)、利用状況テーブル13dの登録内容に基づいて、移行対象の候補のゲストOS101が有るか否かを判断する(S82)。具体的には、制御部10は、自身のサーバ装置1におけるゲストOS101,101…のうちで、仮想USBデバイス103及び仮想サウンドデバイス105が使用されていないゲストOS101を特定する。
When determining that the migration process is necessary (S81: YES), the
移行対象の候補のゲストOS101が無いと判断した場合(S82:NO)、制御部10は、ステップS81へ処理を戻す。移行対象の候補のゲストOS101が有ると判断した場合(S82:YES)、制御部10は、ネットワークN2を介して接続されている他のサーバ装置1,1…のうちで、最も負荷(CPU使用率及びメモリ使用率)が小さいサーバ装置1を移行先のサーバ装置1に特定する(S83)。具体的には、制御部10は、ネットワークN2を介して接続されている他のサーバ装置1,1…から、他のサーバ装置1,1…におけるCPU使用率及びメモリ使用率を受信し、CPU使用率の合計(負荷)が最も小さいサーバ装置1を特定する。
When determining that there is no
制御部10は、ステップS82で移行対象の候補のゲストOS101であると判断したゲストOS101のうちで最も負荷が大きいゲストOS101を特定する(S84)。制御部10は、特定したゲストOS101が、ステップS83で特定した移行先のサーバ装置1へ移行可能であるか否かを判断する(S85)。
The
移行可能でないと判断した場合(S85:NO)、制御部10は、ステップS82で移行対象の候補のゲストOS101であると判断したゲストOS101が他にも有るか否かを判断する(S87)。制御部10は、移行対象の候補のゲストOS101が無いと判断した場合(S87:NO)、移行処理を終了する。
When it is determined that the migration is not possible (S85: NO), the
制御部10は、移行対象の候補のゲストOS101がまだ有ると判断した場合(S87:YES)、ステップS84で特定したゲストOS101の次に負荷が大きいゲストOS101を特定し(S88)、ステップS85へ処理を戻す。制御部10は、ステップS85で移行可能であると判断するまで、又はステップS87で移行対象の候補のゲストOS101が無いと判断するまで、上述した処理を繰り返す。制御部10は、ステップS85で移行可能であると判断した場合(S85:YES)、移行対象のゲストOS101の移行処理を開始する。(S86)
If the
上述した実施形態2でも、ユーザが実際に端末装置5を使用している可能性の高い端末装置5に対応するゲストOS101を移行処理の対象から外すことにより、ゲストOS101の使用中のユーザには影響を与えずに移行処理を実行できる。また、移行対象のゲストOS101を移行先のサーバ装置1へ移行した場合であっても、移行先のサーバ装置1におけるCPU使用率及びメモリ使用率は基準値を満たすことができる。従って、移行先のサーバ装置1を既に使用中の他のユーザの仮想環境102,102…に影響を与えないので、シンクライアントシステムが提供するサービス品質を維持できる。
Even in the second embodiment described above, by removing the
1 サーバ装置(情報処理装置)
10 制御部(実行手段)
2 管理装置
20 制御部(検出手段、特定手段、選択手段、移行手段)
3 ネットワークストレージ
5 端末装置(外部装置)
N1,N2 ネットワーク
1 Server device (information processing device)
10 Control unit (execution means)
2
3
N1, N2 network
Claims (7)
前記情報処理装置のそれぞれにおける処理負荷を検出する検出手段と、
該検出手段が検出したいずれかの情報処理装置における処理負荷が所定量以上である場合、該情報処理装置の実行手段のそれぞれの状態に基づいて、前記実行手段のそれぞれにおける動作環境のうちで、他の情報処理装置への移行が可能な動作環境を特定する特定手段と、
前記複数の情報処理装置のうちで、前記特定手段が特定した動作環境の受け入れが可能な情報処理装置を選択する選択手段と、
前記特定手段が特定した動作環境を、前記選択手段が選択した情報処理装置に移行させる移行手段と、
該移行手段が前記動作環境を移行中に、前記動作環境で処理を実行する実行手段が外部装置から取得した情報に従って所定の処理を実行するか否かを判断する手段と、
所定の処理を実行すると判断した場合、前記移行手段による移行処理を中断する手段と、
前記実行手段が実行する処理に基づいて、中断中の移行処理を再開させるか否かを判断する手段とを備え、
前記移行手段は、前記移行処理を再開させると判断された場合、前記移行処理を再開し、前記移行処理を再開させないと判断された場合、前記移行処理を終了するようにしてある
ことを特徴とする情報処理システム。 An information processing system in which a plurality of information processing apparatuses including a plurality of execution means for executing various processes are connected via a network,
Detecting means for detecting a processing load in each of the information processing apparatuses;
When the processing load in any of the information processing devices detected by the detection means is a predetermined amount or more, based on the respective states of the execution means of the information processing device, among the operating environments of the execution means, Identifying means for identifying an operating environment that can be migrated to another information processing apparatus;
A selecting means for selecting an information processing apparatus capable of accepting the operating environment specified by the specifying means from the plurality of information processing apparatuses;
A migration unit that migrates the operating environment identified by the identification unit to the information processing apparatus selected by the selection unit ;
Means for determining whether or not execution means for executing processing in the operating environment executes predetermined processing in accordance with information acquired from an external device while the shifting means is transferring the operating environment;
Means for interrupting the migration process by the migration means when it is determined to execute the predetermined process;
Means for determining whether or not to resume the suspended transition process based on the process executed by the execution means;
The transition unit is configured to restart the transition process when it is determined to restart the transition process, and to end the transition process when it is determined not to restart the transition process. Information processing system.
前記情報処理装置が備える実行手段のそれぞれにおける処理負荷を検出する手段と、
検出した前記実行手段のそれぞれにおける処理負荷を合計し、前記情報処理装置における処理負荷を算出する手段と
を備えることを特徴とする請求項1に記載の情報処理システム。 The detection means includes
Means for detecting a processing load in each of the execution means provided in the information processing apparatus;
The information processing system according to claim 1, further comprising: means for summing up processing loads in each of the detected execution means and calculating a processing load in the information processing apparatus.
前記特定手段は、処理負荷が所定量以上である情報処理装置の実行手段のそれぞれが外部装置から取得した情報に従って実行する処理に基づいて、他の情報処理装置への移行が可能な動作環境を特定するように構成してあること
を特徴とする請求項1又は2に記載の情報処理システム。 The execution means is configured to execute processing according to information acquired from an external device connected via the network,
The specifying unit has an operating environment in which each of the execution units of the information processing device having a processing load equal to or greater than a predetermined amount can be transferred to another information processing device based on processing executed according to information acquired from the external device. The information processing system according to claim 1, wherein the information processing system is configured to be specified.
該管理装置が、前記検出手段、前記特定手段、前記選択手段及び前記移行手段を備えることを特徴とする請求項1乃至3のいずれかひとつに記載の情報処理システム。 A management device connected to the plurality of information processing devices via the network;
The management device, the detecting means, the specifying unit, an information processing system according to any one of claims 1 to 3, characterized in that it comprises the selection device and the shifting unit.
前記情報処理装置のそれぞれにおける処理負荷を検出する検出ステップと、
該検出ステップで検出したいずれかの情報処理装置における処理負荷が所定量以上である場合、該情報処理装置の実行手段のそれぞれの状態に基づいて、前記実行手段のそれぞれにおける動作環境のうちで、他の情報処理装置への移行が可能な動作環境を特定する特定ステップと、
前記複数の情報処理装置のうちで、前記特定ステップで特定した動作環境の受け入れが可能な情報処理装置を選択する選択ステップと、
前記特定ステップで特定した動作環境を、前記選択ステップで選択した情報処理装置に移行させる移行ステップと、
前記動作環境を移行中に、前記動作環境で処理を実行する実行手段が外部装置から取得した情報に従って所定の処理を実行するか否かを判断するステップと、
所定の処理を実行すると判断した場合、前記動作環境の移行処理を中断するステップと、
前記実行手段が実行する処理に基づいて、中断中の移行処理を再開させるか否かを判断するステップと、
前記移行処理を再開させると判断された場合、前記移行処理を再開するステップと、
前記移行処理を再開させないと判断された場合、前記移行処理を終了するステップと
を含むことを特徴とする情報処理方法。 An information processing method in an information processing system in which a plurality of information processing devices including a plurality of execution means for executing various processes are connected via a network,
A detection step of detecting a processing load in each of the information processing devices;
When the processing load in any one of the information processing devices detected in the detection step is a predetermined amount or more, based on the respective states of the execution means of the information processing device, A specific step for identifying an operating environment that can be migrated to another information processing apparatus;
A selection step of selecting an information processing device capable of accepting the operating environment specified in the specific step among the plurality of information processing devices;
A migration step of migrating the operating environment identified in the identification step to the information processing device selected in the selection step ;
Determining whether or not execution means for executing processing in the operating environment executes predetermined processing according to information acquired from an external device during the transition of the operating environment;
If it is determined to execute a predetermined process, a step of interrupting the operation environment transition process;
Determining whether to resume the suspended transition process based on the process executed by the execution means;
If it is determined to resume the migration process, resuming the migration process;
And a step of ending the migration process when it is determined not to resume the migration process .
コンピュータに、
前記情報処理装置のそれぞれにおける処理負荷を検出する検出ステップと、
該検出ステップで検出したいずれかの情報処理装置における処理負荷が所定量以上である場合、該情報処理装置の実行手段のそれぞれの状態に基づいて、前記実行手段のそれぞれにおける動作環境のうちで、他の情報処理装置への移行が可能な動作環境を特定する特定ステップと、
前記複数の情報処理装置のうちで、前記特定ステップで特定した動作環境の受け入れが可能な情報処理装置を選択する選択ステップと、
前記特定ステップで特定した動作環境を、前記選択ステップで選択した情報処理装置に移行させる移行ステップと、
前記動作環境を移行中に、前記動作環境で処理を実行する実行手段が外部装置から取得した情報に従って所定の処理を実行するか否かを判断するステップと、
所定の処理を実行すると判断した場合、前記動作環境の移行処理を中断するステップと、
前記実行手段が実行する処理に基づいて、中断中の移行処理を再開させるか否かを判断するステップと、
前記移行処理を再開させると判断された場合、前記移行処理を再開するステップと、
前記移行処理を再開させないと判断された場合、前記移行処理を終了するステップと
を実行させるためのコンピュータプログラム。 A computer program for causing a computer to control an information processing system in which a plurality of information processing apparatuses including a plurality of execution means for executing various processes are connected via a network,
On the computer,
A detection step of detecting a processing load in each of the information processing devices;
When the processing load in any one of the information processing devices detected in the detection step is a predetermined amount or more, based on the respective states of the execution means of the information processing device, A specific step for identifying an operating environment that can be migrated to another information processing apparatus;
A selection step of selecting an information processing device capable of accepting the operating environment specified in the specific step among the plurality of information processing devices;
A migration step of migrating the operating environment identified in the identification step to the information processing device selected in the selection step ;
Determining whether or not execution means for executing processing in the operating environment executes predetermined processing according to information acquired from an external device during the transition of the operating environment;
If it is determined to execute a predetermined process, a step of interrupting the operation environment transition process;
Determining whether to resume the suspended transition process based on the process executed by the execution means;
If it is determined to resume the migration process, resuming the migration process;
A computer program for executing a step of ending the migration process when it is determined not to resume the migration process .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008066176A JP5029440B2 (en) | 2008-03-14 | 2008-03-14 | Information processing system, information processing method, and computer program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008066176A JP5029440B2 (en) | 2008-03-14 | 2008-03-14 | Information processing system, information processing method, and computer program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009223517A JP2009223517A (en) | 2009-10-01 |
JP5029440B2 true JP5029440B2 (en) | 2012-09-19 |
Family
ID=41240243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008066176A Expired - Fee Related JP5029440B2 (en) | 2008-03-14 | 2008-03-14 | Information processing system, information processing method, and computer program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5029440B2 (en) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5333735B2 (en) * | 2009-01-27 | 2013-11-06 | 日本電気株式会社 | Virtual computer system, virtual computer migration method, and program |
JP5343586B2 (en) | 2009-01-29 | 2013-11-13 | 富士通株式会社 | Information processing apparatus, information processing method, and computer program |
JP5549189B2 (en) * | 2009-11-18 | 2014-07-16 | 日本電気株式会社 | Virtual machine management apparatus, virtual machine management method, and virtual machine management program |
JP5458899B2 (en) * | 2010-01-12 | 2014-04-02 | 富士通株式会社 | Virtual computer, remote start program, remote start method, and virtual computer system |
JP5618408B2 (en) * | 2010-11-16 | 2014-11-05 | 株式会社日立製作所 | Thin client control system |
JP5617586B2 (en) * | 2010-12-10 | 2014-11-05 | 富士通株式会社 | Information processing program, relay device, and relay management device |
JP5729003B2 (en) * | 2011-02-22 | 2015-06-03 | 日本電気株式会社 | Thin client system, location information management server, migration method, and program |
JP5633440B2 (en) * | 2011-03-17 | 2014-12-03 | 富士通株式会社 | Information processing apparatus, power control method, and power control program |
EP2693336A4 (en) * | 2011-03-28 | 2016-03-23 | Nec Corp | Virtual machine administration system, and virtual machine administration method |
JP5981095B2 (en) * | 2011-04-28 | 2016-08-31 | ヤマハ株式会社 | Karaoke device, terminal and main unit |
JP5576827B2 (en) * | 2011-06-03 | 2014-08-20 | 日本電信電話株式会社 | Server management system, server management apparatus, server management method, and server management program |
JP5834939B2 (en) * | 2012-01-17 | 2015-12-24 | 富士通株式会社 | Program, virtual machine control method, information processing apparatus, and information processing system |
JP5961402B2 (en) * | 2012-02-20 | 2016-08-02 | 株式会社日立製作所 | Computer system |
JP2017004235A (en) * | 2015-06-10 | 2017-01-05 | 富士ゼロックス株式会社 | Management device and program |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3653159B2 (en) * | 1997-04-01 | 2005-05-25 | 株式会社日立製作所 | Virtual computer migration control method between virtual computer systems |
JP2006072591A (en) * | 2004-09-01 | 2006-03-16 | Hitachi Ltd | Virtual computer control method |
JP4704043B2 (en) * | 2005-01-07 | 2011-06-15 | 富士通株式会社 | Movement processing program, information processing apparatus, computer system, and computer-readable recording medium storing movement processing program |
US7730486B2 (en) * | 2005-02-28 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | System and method for migrating virtual machines on cluster systems |
JP4609380B2 (en) * | 2006-05-31 | 2011-01-12 | 日本電気株式会社 | Virtual server management system and method, and management server device |
WO2008062864A1 (en) * | 2006-11-24 | 2008-05-29 | Nec Corporation | Virtual machine locating system, virtual machine locating method, program, virtual machine management device and server |
WO2008102739A1 (en) * | 2007-02-23 | 2008-08-28 | Nec Corporation | Virtual server system and physical server selecting method |
-
2008
- 2008-03-14 JP JP2008066176A patent/JP5029440B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009223517A (en) | 2009-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5029440B2 (en) | Information processing system, information processing method, and computer program | |
JP5499688B2 (en) | Computer system, information processing apparatus, virtual computer operation method, and program | |
JP5343586B2 (en) | Information processing apparatus, information processing method, and computer program | |
JP6199514B2 (en) | Scheduling fabric distributed resources | |
US10459769B2 (en) | Elastic container management system | |
TWI537827B (en) | System for using an application software on trial and method and server and user device thereof | |
JP5594049B2 (en) | Virtual computer migration method, computer and program | |
US9046931B2 (en) | Apparatus and method for adaptation of input/output interface in virtualization environment | |
JP4935899B2 (en) | Access authority setting program, method and apparatus | |
US8863123B2 (en) | Apparatus and method for virtualizing input/output devices using shared memory in host-based mobile terminal virtualization environment | |
JP5708937B2 (en) | Configuration information management system, configuration information management method, and configuration information management program | |
KR20080106908A (en) | Migrating a virtual machine that owns a resource such as a hardware device | |
US20100251255A1 (en) | Server device, computer system, recording medium and virtual computer moving method | |
KR101680702B1 (en) | System for web hosting based cloud service | |
US20140149984A1 (en) | Information processing apparatus, information processing method, and computer readable medium | |
WO2018003031A1 (en) | Virtualization management program, virtualization management device, and virtualization management method | |
JP2002358167A5 (en) | ||
US20230195491A1 (en) | Device emulation in remote computing environments | |
JP5493976B2 (en) | Information processing apparatus, computer system, and program | |
JP2010066931A (en) | Information processor having load balancing function | |
CN103473037A (en) | Information processing apparatus, information processing method, and program | |
JP2016004432A (en) | Virtual machine migration program, virtual machine migration system and virtual machine migration method | |
WO2010113248A1 (en) | Virtual computer system, information processing device, computer program and connection control method | |
JP4526539B2 (en) | Computer system and information processing method | |
US9021489B2 (en) | Start, suspend and resume an application program where the application program utilizes the same handle to identify a resource upon resumption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101119 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120313 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120502 |
|
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: 20120529 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120611 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150706 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |