JP2004234114A - 計算機システム、計算機装置、オペレーティングシステムの移送方法及びプログラム - Google Patents
計算機システム、計算機装置、オペレーティングシステムの移送方法及びプログラム Download PDFInfo
- Publication number
- JP2004234114A JP2004234114A JP2003019076A JP2003019076A JP2004234114A JP 2004234114 A JP2004234114 A JP 2004234114A JP 2003019076 A JP2003019076 A JP 2003019076A JP 2003019076 A JP2003019076 A JP 2003019076A JP 2004234114 A JP2004234114 A JP 2004234114A
- Authority
- JP
- Japan
- Prior art keywords
- computer
- state
- operating system
- management table
- access
- 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.)
- Granted
Links
Images
Abstract
【解決手段】本発明の計算機システムは、通信路を介して接続された第一の計算機と第二の計算機を含む。第一の計算機は、送信手段がオペレーティングシステムのコンテキストを第二の計算機へ送信する場合、オペレーティングシステムを停止し、該停止後、第一の状態管理表の内容を第二の計算機へ通信路を介して送信し、第二の計算機は、通信路を介して受信した第一の状態管理表の内容に基いて、第二のデバイスの状態を、第一のデバイスと同一の状態に復元する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、計算機システム、計算機装置、オペレーティングシステムの移送方法及びプログラムに関し、特に、計算機間においてオペレーティングシステムの移送を可能とする計算機システム、計算機装置、オペレーティングシステムの移送方法及びプログラムに関する。
【0002】
【従来の技術】
互いに通信が可能な複数の計算機で構成される計算機システムにおいて、プロセスを計算機間で移送するプロセスマイグレーション技術がある。
【0003】
プロセスマイグレーション技術は、プロセスのコンテキストを他の計算機に移送し、移送先の計算機でプロセスを復元することにより、プロセスを継続実行させるための技術である。プロセスマイグレーションにおけるコンテキストとは、中央演算装置(以下、CPUともいう)のレジスタ値や、プロセスが使用しているメモリの内容で構成される。
【0004】
プロセスマイグレーションは、複数の計算機によって構成される計算機システムの高信頼化や負荷分散のために利用される。例えば、計算機が故障した場合、故障した計算機上で動作しているプログラムを、マイグレーション技術によってシステム内の正常な計算機に移送し、実行を継続することによってシステムを高信頼化する。あるいは、システム内の特定の計算機に負荷が集中している場合、負荷が集中している計算機上のプログラムを、マイグレーション技術によってシステム内の負荷の低い計算機に移送し、実行を継続することによってシステムの負荷分散を実現する。
【0005】
プロセスマイグレーションの代表的な手法は、これまで種々開示されている(例えば、非特許文献1参照)。
【0006】
プロセスマイグレーションが対象としているオペレーティングシステム(以下、OSともいう)上のプロセスではなく、OSをマイグレーションする方法として、仮想計算機の技術を利用して、ある仮想計算機上で動作するOSを、他の仮想計算機上でそのOSが動作するように、仮想計算機間でOSを移送する技術がある。
【0007】
仮想計算機の技術は、ソフトウェアでCPUやデバイスの動作をエミュレートすることによって、ハードウェアを仮想化し、仮想的な計算機を作り出す技術である。仮想計算機の代表的な製品としてはVMware社のVMwareがある(例えば、非特許文献2参照)。
【0008】
仮想計算機上のOSは、仮想化されたCPUとメモリ上で実行され、仮想計算機上の仮想デバイスを使用することによって動作する。一般的に、仮想計算機の動作環境であるOSはホストOSと呼ばれ、仮想計算機上で動作するOSはゲストOSと呼ばれる。通常のOSがデバイスを使用する場合は、デバイスドライバと呼ばれるデバイス制御のためのソフトウェアモジュールを通してデバイスにアクセスを行う。これに対して、仮想計算機上のゲストOSがデバイスを使用する場合は、仮想計算機が提供する仮想デバイス用のデバイスドライバを使用して、仮想デバイスに対してアクセスを行うことになる。ゲストOSから仮想デバイスへのアクセスがあると、仮想計算機はそのアクセス内容をホストOSのシステムコールに変換し、ホストOSがホストOSのデバイスドライバを介して計算機が備える実際のデバイスへのアクセスを行う。
【0009】
仮想計算機はソフトウェアによって実現されているので、仮想CPU、仮想計算機のメモリ及び仮想デバイスの状態を含む仮想計算機のコンテキストは、すべて取得可能である。
【0010】
仮想計算機上で動作するOSの他の仮想計算機上へのマイグレーションは、仮想計算機のコンテキストを保存して、そのコンテキストを他の仮想計算機に転送し、転送されたコンテキストに基いて、転送先の仮想計算機をマイグレーション元の仮想計算機と同一の状態にし、その仮想計算機上でOSの動作を再開させることによって実現される。
【0011】
OSのマイグレーション元の仮想計算機と、OSのマイグレーション先の仮想計算機の状態をまったく同一にすれば、仮想計算機上で動作するOS、及び仮想デバイス用のデバイスドライバは、OSが移送されたことの影響を受けずに動作を継続することができる。
【0012】
計算機間でOSを移送する研究として、独立行政法人産業技術総合研究所で行われているネットワーク・トランスファブル・コンピュータ(以下、NTCという)の技術がある(例えば、非特許文献3参照)。NTCでは、仮想計算機間でOSを移送する他に、仮想計算機と実計算機の間、実計算機間でOSを転送する研究を行っている。NTCでは、OSが備えるサスペンド・レジュームと呼ばれる機能、すなわち作業を中断して計算機の電源を切り、電源投入後、再度、作業を再開するための機能を利用することによって、同一の構成の計算機間でOSを移動させることを実現している。
【0013】
【非特許文献1】
エス・エー・バターフィールドとジー・ジェイ・ポペック(Butterfield,S.A. and Popec,G.J)著、「地域分散UNIX(登録商標)システムにおけるネットワークタスキング(Network Tasking in the Locus Distributed Unix System)」、ユーズニックス夏84年(Usenix Summer ’84)、pp.62−71(1984)
【0014】
【非特許文献2】
VMware社のVMware、http://www.vmware.com
【0015】
【非特許文献3】
ネットワーク・トランスフェラブル・コンピュータ(Network transferable Computer)、http://www.et1.go.jp/−suzaki/NTC
【0016】
【発明が解決しようとする課題】
しかし、プロセスマイグレーションは、プロセスのコンテキストであるCPUのレジスタ値、プロセスが使用しているメモリの内容等のプロセス生成に必要な情報のみを他の計算機に移送することによって実現されており、計算機に接続された外部デバイスについては関知していない。そのため、プロセスマイグレーションの技術は、外部デバイス等のハードウェアに直接的に関係しているOSのマイグレーションには用いることができない。
【0017】
そして、仮想計算機間のOSのマイグレーション、及びNTCにおける仮想計算機と実計算機の間あるいは実計算機間でのOSのマイグレーションでは、実計算機又は想計算機がゲストOSに提供するデバイスがマイグレーションの元と先で異なる種類である場合には、マイグレーションを行うことができない。これは、マイグレーション対象のゲストOSに、マイグレーション元の計算機が備えるデバイス用のデバイスドライバが組み込まれており、マイグレーション先の計算機ではデバイスの種類が異なるために、そのデバイスドライバが動作し得ないからである。
【0018】
さらに、仮想計算機を使用したゲストOSのマイグレーションでは、仮想デバイスの状態をマイグレーション先の仮想計算機で復元することは可能であるが、マイグレーション元の仮想計算機で使用していたデバイスを、マイグレーション先の仮想計算機から継続して遠隔に使用することはできない。
【0019】
そこで、本発明は、計算機に接続されたデバイスが異なる計算機間でも、OSのマイグレーションを実現するための計算機システムを提供することを目的とする。
【0020】
【課題を解決するための手段】
本発明の計算機システムは、通信路を介して接続された第一の計算機と第二の計算機を含む。第一の計算機は、第一のデバイスの状態を記憶する第一の状態管理表と、前記オペレーティングシステムからの前記第一のデバイスへの第一のアクセスの内容を監視し、その監視された前記第一のアクセスの内容に基いて、前記第一の状態管理表に記憶される前記第一のデバイスの状態に変化が生じたときに、前記第一の状態管理表を、その変化した状態に応じて更新する第一の状態管理部と、前記オペレーティングシステムのコンテキストを、前記通信路を介して前記第二の計算機へ送信する送信手段とを有する。第二の計算機は、前記通信路を介して受信した前記オペレーティングシステムを、前記第二の計算機において復元する復元手段と、第二のデバイスの状態を記憶する第二の状態管理表と、復元された前記オペレーティングシステムからの前記第二のデバイスへの第二のアクセスの内容を監視し、その監視された前記第二のアクセスの内容に基いて、前記第二の状態管理表に記憶される前記第二のデバイスの状態に変化が生じたときに、前記第二の状態管理表を、その変化した状態に応じて更新する第二の状態管理部とを有する。第一の計算機は、前記送信手段が前記オペレーティングシステムのコンテキストを前記第二の計算機へ送信する場合、前記オペレーティングシステムを停止し、該停止後、前記第一の状態管理表の内容を前記第二の計算機へ前記通信路を介して送信し、前記第二の計算機は、前記通信路を介して受信した前記第一の状態管理表の内容に基いて、前記第二のデバイスの状態を、前記第一のデバイスと同一の状態に復元する。
【0021】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
【0022】
まず、図1に基づき、本実施の形態に係わる計算機システムの構成を説明する。図1は、本実施の形態に係わる計算機システムの構成を示す構成図である。
【0023】
図1において、計算機システム100は、計算機101及び121を含む。計算機101は、OS102と、状態管理部103と、状態管理表104と、位置管理部105と、位置管理表106と、デバイスドライバ107、108、109と、デバイス110、111、112を含む。OS102は、計算機101上で、デバイスドライバ107、108、109と、デバイス110、111、112の環境で動作している。
【0024】
同様に、計算機121は、OS122と、状態管理部123と、状態管理表124と、位置管理部125と、位置管理表126と、デバイスドライバ127、128と、デバイス129、130を含む。OS122は、計算機121上で、デバイスドライバ127、128と、デバイス129、130の環境で動作する。
【0025】
なお、OS122は、計算機101上で動作しているOS102が後述するマイグレーション動作によって転送されたものである。従って、計算機101は、OS102のマイグレーション元の計算機であり、計算機121は、OS102のマイグレーション先の計算機である。状態管理表124と位置管理表126も、それぞれ状態管理表104と位置管理表106が、後述するマイグレーション動作によって転送されたものである。そして、計算機101と計算機121とは、通信路140を介して接続されている。
【0026】
本実施の形態に関わるOSのマイグレーションを実現するため、各計算機に、状態管理部と位置管理部が追加されている。状態管理部103と123は、それぞれ、計算機101と121内のデバイスの状態を管理するソフトウェアプログラムモジュールであり、それぞれ状態管理表104と124を管理する。位置管理部105と125は、それぞれ、計算機101と121内の各OSが使用する各デバイスの位置を管理するソフトウェアプログラムモジュールであり、それぞれ、位置管理表106と126を管理する。
【0027】
OS102と122は、それぞれいわゆるOSのカーネルであり、各OSは、対応する状態管理部と位置管理部を介して、デバイス用の各デバイスドライバにアクセスすることによって、各デバイスを使用する。
【0028】
状態管理部103と123は、それぞれ、OSからのデバイスへのアクセスの内容を監視し、その監視して得たアクセスの内容を、対応する位置管理部105、125と各デバイスドライバとへ転送するソフトウェアモジュールである。
【0029】
状態管理表104と124は、それぞれOSが使用している各デバイスの状態のデータを記憶するためのテーブルである。状態管理表104、124は、後述するように、状態管理部103、123があるデバイスの状態を他のデバイスと同一の状態にするための情報を記録する。また、状態管理表104と124には、それぞれ、OSがアクセス対象としているすなわちOSから見たデバイスの種類と、計算機が実際に備えているすなわち計算機に接続されているデバイスの実際の種類のデータを記録するためのエントリすなわちデータ領域を含む。OSがアクセス対象として認識しているデバイスと、計算機が実際に備えるデバイスとの種類が異なる場合、状態管理部は、デバイスへのアクセスを計算機が実際に備えるデバイスへのアクセスに変換、すなわちデバイスの機能の変換をすることによって、OSに対して、計算機に実際に備えられたデバイスを、あたかもOSがアクセス対象としているデバイスのように見せることを実現する。
【0030】
このデバイスの機能を変換する機能を使う際に、デバイスの種類を記録したエントリのデータが使用される。この機能は、仮想計算機による仮想デバイスの実現方法と同様なので本実施の形態では説明を省略する。同一の種類のデバイスを備える計算機間でOSのマイグレーションを行う場合には、デバイスの種類を変換する機能は不要なので、デバイスの種類の記録したエントリのデータは必要ない。
【0031】
位置管理部103と123は、それぞれOSからデバイスへのアクセスがあると、位置管理表106、126に基づいてそのデバイスが接続されている計算機を検索する。位置管理部103と123は、検索された計算機がOSを実行している計算機であれば、そのまま対応するデバイスドライバにアクセスの要求を転送する。位置管理部103と123は、検索された計算機がプログラムを実行している計算機以外の他の計算機の場合には、その他の計算機にOSからのデバイスドライバへの要求の内容を転送する。これにより、他の計算機のデバイスが、あたかもOSが動作している計算機に接続されているように、OSに対し、見せることができる。すなわち、他の計算機に接続されたデバイスが、OSが動作している計算機に直接接続されているかのように使用することができる。
【0032】
位置管理表106、126は、OSがアクセスを行っているデバイスが、どの計算機に接続されているかのデータを記録するためのテーブルである。位置管理表には、OSが使用するデバイスの種類と、デバイスが接続されている計算機の識別子の対応情報が記録されている。計算機の識別子は、各計算機に固有の情報であれば、識別子は、種類及び内容は何でもよい。
【0033】
デバイスドライバ107はデバイス110を制御する専用のソフトウェアモジュールであり、デバイスドライバ108はデバイス111を制御する専用のソフトウェアモジュールであり、デバイスドライバ109はデバイス112を制御する専用のソフトウェアモジュールである。計算機101上で動作するOS102は、デバイス110、デバイス111及びデバイス112を対象としたアクセスを行う。ここでは、デバイス110は、ネットワークインターフェースカードであり、計算機101は、デバイス110と通信路140を介して他の計算機と通信を行うことができる。そして、デバイス111は、ビデオカードであり、デバイス112は、プリンタ装置である。
【0034】
デバイスドライバ127はデバイス129を制御する専用のソフトウェアモジュールであり、デバイスドライバ128はデバイス130を制御する専用のソフトウェアモジュールである。計算機121上で動作するOS122は、デバイス129及びデバイス130を対象としたアクセスを行う。ここで、デバイス129は、ネットワークインターフェースカードであり、計算機121は、デバイス129と通信路140を介して他の計算機と通信を行うことができる。そして、デバイス130は、ビデオカードである。
【0035】
各デバイスドライバは、各計算機が備える各デバイス用のデバイスドライバであり、仮想計算機の仮想デバイスのようなデバイスの仮想化によるアクセス方法の変換処理を行わないで、デバイスに対してアクセスを行う。従って、変換処理がないため、OSによるデバイスアクセスの速度低下を抑えることができる。
【0036】
通信路140は、イーサネット(登録商標)のような計算機間を接続するネットワークを想定しているが、計算機間で通信できればよく、他の手段であってもよい。
【0037】
各計算機には識別子が予め与えられており、各計算機は、その識別子によって特定が可能である。計算機の識別子は、計算機のホスト名やIPアドレスなどを用いればよいが、計算機毎に固有であればその種類は問わない。
【0038】
本実施の形態では、計算機101は、3つのデバイスを備え、計算機121は、2つのデバイスを備えるがその個数に制限はなく、かつその種類も、上述したデバイスに限定されるものではない。
【0039】
次に、状態管理表について説明する。状態管理表は、OSが使用するデバイス毎に、OSから見たデバイスの種類、実際の種類、項目及び状態のデータを含む。より具体的には、状態管理表は、計算機上のOSが使用するデバイス毎に、OSから見てOSがアクセス対象としているデバイスの種類、例えば、ビデオカードの製品識別子等と、実際に計算機が備えるデバイスの種類と、各デバイスの状態のデータを記録している表である。状態管理表には、状態管理部によって監視された計算機のアクセスの内容に基いて、デバイスの状態が記録される。すなわち、OSからのデバイスドライバへのアクセスの内容に基づいて、デバイスの状態に変化が生じたときには、状態管理部は、その変化した状態を状態管理表に記録する。例えば、ビデオカードへの画像データの書き込みであれば、書き込み位置データと、書き込み内容のデータが、状態管理表に書き込まれる。言い換えると、状態管理部は、OSからのデバイスへのアクセスの内容を監視し、その監視されたアクセスの内容に基いて、状態管理表に記憶されるデバイスの状態に変化が生じたときに、その変化した状態に応じて状態管理表を更新する。
【0040】
図2及び図3は、状態管理表の構成例を示す図である。図2には、状態管理表104の例を示し、図3には、状態管理表124の例を示す。図2及び図3には、OSから見たデバイスの種類、例えばビデオカードの製品識別子「A2」等と、実際のデバイスの種類「A2」との対応が付けられ、かつ、各デバイスの状態、例えばビデオカードの状態である画面モードと、ビデオフレームバッファの内容が記録されている例が示されている。
【0041】
次に、位置管理表について説明する。位置管理表は、OSがアクセス対象としているデバイスが、どの計算機に接続されているかのデータを記録する表で、各デバイスと、そのデバイスが接続された計算機の識別子の対応データが記録されている。
【0042】
図4及び図5は、位置管理表の構成例を示す図である。図4には、位置管理表106の例を示し、図5には、位置管理表126の例を示す。図4の位置管理表には、ビデオカード、ネットワークインターフェイスカード及びプリンタは計算機101に接続されていることが記録されている。図5の位置管理表には、ビデオカード、ネットワークカードは計算機121に接続され、プリンタは計算機101に接続されていることが記録されている。
【0043】
以上のような構成のシステムにおいて、以下、通常、OS102がデバイスへのアクセスを行う際の動作(1)を説明し、次に、OS102を計算機101から計算機121にOSのマイグレーションを行う際の動作(2)を説明し、最後に、マイグレーション先のOS122がデバイスへのアクセスを行う際の動作(3)を説明する。
【0044】
(1)OS102のデバイスへのアクセス
まず、通常、OS102が計算機101上でのデバイスアクセスを、どのように行うかを図6に示すフローチャートを用いて説明する。図6は、計算機上のOSがデバイスにアクセスするときの状態管理部と位置管理部の処理の流れの例を示すフローチャートである。ステップ401から406までが状態管理部の処理に対応し、ステップ407から412までが位置管理部の処理に対応する。
【0045】
図6において、OS102からのデバイスに対するアクセスが生じると、まず、状態管理部103は、ステップ401において、OS102からのデバイスへのアクセス要求の内容を監視するために受信する。そして、状態管理部103は、そのアクセス要求の内容に応じてデバイスの状態を状態管理表104に記録する(ステップ402)。すなわち、状態管理部103は、そのアクセス要求の内容に基いて、状態管理表104に記憶されるデバイスの状態に変化が生じたときに、その変化した状態に応じて状態管理表104を更新する。状態管理部103は、例えば、ビデオカードに対して画面モードの変更要求のアクセスを行った場合は、状態管理表104にその画面モードを記録し、画面への描画のためのアクセスを行った場合は、その描画の結果、変化したビデオフレームバッファの内容を記録する。
【0046】
ここで、デバイスの状態とは、デバイスの最新の状態を意味し、後述するOSのマイグレーション先における他のデバイスにおいて、マイグレーション元のデバイスの最新の状態を復元できるように、デバイスの最新の状態のデータが状態管理表に記録されている。
【0047】
次に、状態管理部103はOS102がアクセス対象としているデバイスと、実際のデバイスであるデバイスが同じ種類であるかを判定するために、状態管理表104を参照し比較する(ステップ403)。OS102がビデオカードであるデバイス111にアクセスしようとしている場合、図2においてビデオカードは、OS102がアクセス対象としているデバイスと、実際のデバイスであるデバイス111の種類が同じである。従って、その場合は、ステップ404において、YESとなり、そのままステップ406に進む。OS102がアクセス対象としているデバイスと、実際のデバイスであるデバイスの種類が違う場合は、そのアクセス内容を、実際のデバイスに適合するようにアクセスの内容を変換し(ステップ405)、ステップ406に進む。ステップ406で、デバイスへのアクセス要求を位置管理部105に転送する。
【0048】
位置管理部105は、受信したアクセスの内容に基いて、アクセス対象のデバイスが計算機101が備えるデバイスかどうかを判断するために、位置管理表106を検索する(ステップ407)。アクセス対象のデバイスが計算機101が備えるデバイス111である場合には、ステップ408においてYESとなり、位置管理部105は、デバイス111に対応するデバイスドライバ108にアクセス要求を転送し(ステップ409)、デバイス110にアクセスが行われる(ステップ410)。なお、ステップ410は、デバイスドライバの処理である。
【0049】
アクセス対象のデバイスが、計算機101が備えるデバイスでなかった場合には、ステップ408においてNOとなり、処理は、ステップ411に進む。例えば、ここで、OS102からのアクセス要求が、計算機121が備えるデバイス130へのアクセスだったとすると、ステップ411において、位置管理部105は、デバイスドライバ107、デバイス110、通信路140、デバイス129、デバイスドライバ127を通して、状態管理部123に、そのアクセス要求を転送する。アクセス要求を受け取った状態管理部123は、ステップ409、ステップ410と同様に、位置管理部125、デバイスドライバ128を介して、デバイス130に対してアクセスを行う。
【0050】
以上のように、状態管理部がデバイスの状態を監視し、かつ位置管理部がデバイスの位置を管理することによって、OS102はデバイス110、または、計算機121が備えるデバイス130に対するアクセスを行うことができる。
【0051】
(2)計算機101から計算機121へのOSのマイグレーション
次に、計算機101から計算機121にOS102を移送する場合、どのようにOSのマイグレーションが行われるかを説明する。ここでは、二通りのデバイスの形態を説明するために、デバイス111、デバイス130がビデオカードであり、OS102が計算機101で動作中はデバイス111のビデオカードを使用し、マイグレーション先の計算機121で動作中はデバイス130のビデオカードを使用する場合と、デバイス112がプリンタであり、OS102が計算機101で動作中はデバイス112のプリンタを使用し、マイグレーション先の計算機121で動作中も継続してデバイス112のプリンタを使用する場合を想定して説明する。状態管理表のビデオカードの状態として、画面モード、フレームバッファの内容などが記録されている例を用いて説明する。
【0052】
図7は、状態管理部103が行うOSのマイグレーションの処理の流れの例を示すフローチャートである。何らかの理由で、例えば、計算機101に故障が発生した、計算機101のユーザからの計算機121へのOSのマイグレーションの指示がされた、等の理由で、状態管理部103にOSのマイグレーションの指示がされると、状態管理部103による図7の処理が実行される。
【0053】
まず、ステップ501で、OSのマイグレーション中にOS102のコンテキスト、状態管理表104が更新されないように、OS102の動作を停止する。次に、計算機101と計算機121が通信を行えるように、デバイス110のネットワークカードを用いた通信の準備をする(ステップ502)。ここでは、計算機101と計算機121はお互いの識別子を既に認識しており、お互いを検索するといったステップは必要ないとする。
【0054】
ステップ503で、マイグレーション先の計算機121から、計算機101のデバイスを使用するかどうかをチェックする。これは、状態管理部103は、マイグレーション先である計算機121のデバイス環境の情報のデータを予め有しており、その情報に基いて、マイグレーション元の計算機101のデバイス環境と、マイグレーション先の計算機121のデバイス環境とを比較して、マイグレーション先の計算機121が計算機101のデバイスを使用するか否かのチェックを行う。そして、マイグレーション先の計算機121がマイグレーション元の計算機101に接続されたデバイスを使用する場合は、ステップ504でNOとなり、位置管理表106においてその使用するデバイスに対応する計算機の識別子を、計算機101の識別子に書き換える(ステップ505)。
【0055】
例えば、ビデオカードの場合は、OS102を計算機121へ移送した後、デバイス130のビデオカードをビデオカード111に代えて使用する場合は、位置管理表106におけるビデオカードの計算機の識別子は、計算機121の識別子に書き換えられ、ステップ506へ進む。しかし、計算機121には、プリンタが含まれていない。プリンタ112は、計算機121からも使用されるので、ステップ504でYESとなって、OS102を計算機121へ移送した後も計算機121からデバイス110のプリンタを使用するために、位置管理表106のプリンタに対応する計算機の識別子を計算機101のまま書き換えないでステップ506に進む。
【0056】
ステップ506では、計算機101の全てのデバイスについて、上記のチェックが終了したかを判断する。全てのデバイスについて、マイグレーション先の計算機から使用するか否かをチェックしていなければ、処理はステップ503へ戻る。ステップ506において、全てのデバイスについて、マイグレーション先の計算機から使用するか否かをチェックしていたときは、処理はステップ507へ進む。
【0057】
ステップ507において、送信手段としての状態管理部103は、OS102のコンテキスト、状態管理表104及び位置管理表106の内容を、デバイスドライバ107、デバイス110と通信路140を介して計算機121に送信する。すなわち、OSのマイグレーションを行う際には、OSの動作を停止後、通信路を介して、OSのコンテキストと状態管理表をマイグレーション先の計算機の状態管理部へ、位置管理表をマイグレーション先の計算機の位置管理部へ転送する。計算機121に転送されたOS102はOS122となり、状態管理表104の内容は状態管理表124の内容となり、位置管理表106の内容は位置管理表126の内容となる。
【0058】
次に、計算機121では、計算機101からOS102のコンテキスト、状態管理表104及び位置管理表106の内容を受信すると、状態管理部123が、デバイス129とデバイスドライバ127を介して受信したデータを受信する。図8は、状態管理部123におけるOSのマイグレーションの処理の流れの例を示すフローチャートである。
【0059】
まず、復元手段としての状態管理部123は、通信路140を介して受信したOS102のコンテキストに基いてOSを復元し(ステップ511)、OS122を生成する。OSの復元は、従来のプロセスマイグレーションと同様にCPUのレジスタ値やOSが使用しているメモリの復元によって実現できる。続いて、必要なデバイスに対して、デバイスの状態の復元作業を開始する。そのために、OS122が使用するデバイスが、自己の計算機すなわち計算機121に接続されたデバイスであるかを判断するために、図5に示す位置管理表126のデータに基いて、OS122が使用するデバイスが自己の計算機に接続されたデバイスか否かを、デバイスの1つ1つについてチェックする(ステップ512)。
【0060】
例えば、復元対象のデバイスが上述したプリンタであるデバイス112のように、OS122が計算機101のデバイス112を継続して使用し続ける場合は、ステップ513においてNOとなって、処理は、ステップ514以下の状態の復元処理を行わずに、処理は、ステップ518に進む。
【0061】
ステップ512においてチェックした結果、OS122が使用するデバイスが自己の計算機に備わったデバイスである場合、ステップ513においてYESとなり、処理は、ステップ514へ進む。ステップ514では、状態管理部123は、状態管理表124に基いて、OS122に見せるデバイスと実際のデバイスを比較する。計算機122のOS122が使用するデバイスが、ビデオカードであるデバイス111から、同じくビデオカードであるデバイス130に変更するようなデバイスである場合、ステップ514の比較の結果、デバイス111の種類は「A2」であり、デバイス130の種類は「B2」であり、ビデオカードの種類が同じでないので、ステップ515においてNOとなる。ステップ515でNOとなると、状態管理部123は、デバイス130に適合するようなアクセス方法を用いることによって、状態管理表124に記録されている画面モードの設定と、フレームバッファの内容のコピーを、デバイスドライバ128を介して行い(ステップ517)、デバイス130の状態を、OS102の停止直前のデバイス111と同一の状態に復元する。デバイスに適合すようなアクセス方法とは、デバイス130へ画像データを書き込む場合のデータの供給方法が、デバイス111へ同じ画像データを書き込む場合のデータの供給方法と異なっている場合、デバイス130へのデータ供給方法に応じたアクセスである。従って、OSからのアクセスの内容が、デバイス130に応じて変換される。
【0062】
なお、状態管理部123は、ステップ514において、計算機121に接続されたデバイスの実際の種類を、状態管理表124に記録あるいは書き換える。
【0063】
OS122から見たデバイスの種類と、実際のデバイスの種類が同じである場合、状態管理部123は、状態管理表124に基いて、計算機121に接続された実際のデバイスの状態を、マイグレーション元のOS102が停止前に使用していたデバイスの状態と同一になるようにデバイスドライバを介して、実際のデバイスの設定すなわち状態の復元を行い(ステップ516)、ステップ518に進む。例えば、ビデオカードであるデバイス111と130が同じ種類のデバイスであれば、状態管理表124の内容に基いて、デバイス130のビデオカードの画面モードの設定を行い、フレームバッファの内容のコピーを行う。
【0064】
ステップ518において、OS122が使用する全てのデバイスについて、ステップ512から517までの処理を実行したか否かが判断され、全てのデバイスについて判断されていないときは、処理は、ステップ518においてNOとなり、ステップ512に戻る。全てのデバイスについてステップ512から517までの処理が実行されたときは、処理は、ステップ518においてYESとなり、OS122の動作を開始する(ステップ519)。そして、OS122の動作が再開された後は、計算機121の動作は、上述した図6を含む通常動作に移る。
【0065】
このようにして、OSのコンテキストおよび、デバイスの状態の復元が終了した後、OSが再実行されるので、移送されたOSは、計算機が変更されたことによる影響を受けずに動作を継続することができる。
【0066】
例えば、上述したように、マイグレーション元にはプリンタが接続されているが、マイグレーション先には接続されていないというように、マイグレーション先の計算機で、マイグレーション元の計算機が備えるデバイスを備えていないような場合に、位置管理表の書き換え時に、マイグレーション前の計算機の識別子のままにして、位置管理表がマイグレーション先に転送される。マイグレーション先での該デバイスへのアクセスは、マイグレーション先の位置管理部がデバイスへのアクセスをマイグレーション元の計算機に転送する。この動作によって、マイグレーション後もマイグレーション先の計算機からマイグレーション元の計算機が備えるデバイスを使用し続けることができる。
【0067】
(3)移送されたOS122のデバイスへのアクセス
計算機121へOS102が移送された後、OS122がデバイスにアクセスするときの処理の流れを図6に示すフローチャートを用いて説明する。図6において、OS122からのデバイスに対するアクセスが発生すると、まず、状態管理部123は、ステップ401において、OS122からのデバイスへのアクセス要求を受信する。そして、状態管理部123は、そのアクセス要求の内容に応じてデバイスの状態を状態管理表124に記録する(ステップ402)。
【0068】
そして、状態管理部123はOS122がアクセス対象としているデバイスと、実際のデバイスであるデバイスが同じ種類であるかを判定するために、状態管理表124を参照し比較する(ステップ403)。OS122がビデオカードであるデバイス130にアクセスしようとしている場合、図3においてビデオカードは、OS122がアクセス対象としているデバイスと、実際のデバイスであるデバイス130が異なる。この場合は、そのアクセス内容を、実際のデバイスに適合するようにアクセスの内容を変換し(ステップ405)、ステップ406に進む。従って、ステップ406において、状態管理部123は、変換されたアクセス要求の内容を位置管理部125に転送する。OS122がアクセス対象としているデバイスと、実際のデバイスであるデバイスが同じ種類である場合は、ステップ404において、YESとなり、そのままステップ406に進む。ステップ406において、状態管理部123は、デバイスへのアクセス要求をそのまま位置管理部125に転送する。
【0069】
次に、位置管理部125は、アクセス対象のデバイスが計算機121が備えるデバイスかどうかを判断するために、位置管理表126を検索する(ステップ407)。アクセス対象のデバイスが計算機121が備えるデバイス、例えばビデオカードであるデバイス130である場合には、ステップ408においてYESとなり、位置管理部125は、デバイス130に対応するデバイスドライバ128にアクセス要求を転送し(ステップ409)、デバイス130にアクセスが行われる(ステップ410)。
【0070】
アクセス対象のデバイスが、計算機121が備えるデバイスでなかった場合には、ステップ408においてNOとなり、処理は、ステップ411に進む。例えば、ここで、OS122からのアクセス要求が、計算機101が備えるデバイス112へのアクセスだったとすると、ステップ411において、位置管理部125は、デバイスドライバ127、デバイス129、通信路140、デバイス110、デバイスドライバ107を通して、状態管理部103に、そのアクセス要求を転送する。アクセス要求を受け取った状態管理部103は、ステップ409、ステップ410と同様に、位置管理部105及びデバイスドライバ109を介して、デバイス112に対してアクセスを行う。
【0071】
以上のように、マイグレーション先の計算機121において、マイグレーションされたOS122は、状態管理部123及び位置管理部125によって、計算機121に接続されたデバイスをマイグレーション元の計算機101において使用していた状態と同じ状態で使用でき、かつ、計算機121のデバイスだけでなく、マイグレーション元の計算機101のデバイスに対してもアクセスすることができる。
【0072】
なお、ステップ507の送信されるOS102のコンテキストすなわちCPUやメモリに関するコンテキストの内容、その内容のマイグレーション先への送信処理、及びステップ511のOS122の復元処理は、通常のプロセスマイグレーションにおけるコンテキストの内容等の送信処理及び復元処理と同様であるので、ここでは説明を省略した。
【0073】
また、ネットワークカードであるデバイス110及びデバイス129の状態の転送及び復元は、ビデオカードであるデバイス111とデバイス130と同様に行われる。但し、ネットワークカードの場合は、ネットワークカードの状態がマイグレーション前の状態に復元されても、計算機が接続されているネットワークが変更された場合、OS122が正常に外部と通信を継続できないこともある。そのような場合は、状態管理部123がOS122に、計算機が接続されているネットワークが変更になったことをOS122に通知して、OS122が持つMobileIP(RFC2002に開示される)等の技術を使って、ネットワークの設定を変更し、通信を継続して行えるようにしてもよい。
【0074】
ここでは、ビデオカード、プリンタ、ネットワークカードをデバイスの例として使用したが、他のデバイス、すなわちCPUとメモリ以外の、キーボード、マウス等についても同様の方法でアクセス及びマイグレーションが行われる。
【0075】
なお、マイグレーション元とマイグレーション先の計算機が、例えばビデオカードのような同じ用途に使用できるデバイスを備えており、マイグレーション後はマイグレーション先の計算機のデバイスを使用する場合には、OSのコンテキスト、状態管理表、位置管理表の転送時に、位置管理表中の該当するデバイスの接続先をマイグレーション先の計算機に書き換えられるが、この書き換えは、マイグレーション元の計算機で行っても、マイグレーション先の計算機で行ってもよい。
【0076】
また、本実施の形態では、2つの計算機間でのOSのマイグレーションを説明したが、3つ以上の計算機間においても、ある計算機から他の計算機へOSのマイグレーションを行い、さらに、その他の計算機からさらに他の計算機へOSのマイグレーションを行うようにしてもよい。
【0077】
上述したようにOSのマイグレーションができれば、計算機のユーザからみると、OS上で動いているアプリケーションプログラムも、元の計算機で動作していた状態でそのまま実行しているように見えるので、OSの相違による操作性等が変わらずに、マイグレーション先の計算機でそのアプリケーションプログラムを利用することができる。
【0078】
本実施の形態に係るOSのマイグレーション方式によれば、状態管理部がデバイスの状態を管理し、デバイスの状態が記録された状態管理表を計算機間で転送することによって、OSにマイグレーションを意識させることなく、ハードウェアデバイスに密着したOSを計算機間で移送することが可能となる。
【0079】
また、OSが認識するデバイスと、計算機が備えるデバイスが異なるデバイスである場合にも、状態管理部でそのアクセス方法を変換することによって、異なるデバイス構成の計算機間でも、OSにデバイスの変更を意識させずにOSのマイグレーションを行うことを実現する。
【0080】
さらに、位置管理部によってデバイスの位置を管理し、位置管理表に基いてOSからのデバイスのアクセスを他の計算機に転送することによって、OSが動作する計算機以外の計算機のデバイスを使用することが可能となる。これによって、マイグレーション先の計算機から、マイグレーション元の計算機のデバイスを継続して使用しつづけることができる。
【0081】
また、OSが認識するデバイスと、計算機が備えるデバイスを同じ種類のデバイスにし、OSとデバイスドライバ間のデバイスへのアクセスを状態管理部で監視することによって、従来の仮想計算機による仮想デバイスよりも少ない処理でOSからデバイスへのアクセスが可能となり、OSの速度の低下を防ぐことを実現する。
【0082】
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウエアやソフトウエア・ルーチンに1対1には対応しない。従って、本明細書では、以下、実施の形態の各機能を有する仮想的回路ブロック(部)を想定して実施の形態を説明する。また、本実施の形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【0083】
なお、以上説明した動作を実行するプログラムは、フロッピー(登録商標)ディスク、CD−ROM等の可搬媒体や、ハードディスク等の記憶装置等に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明の計算機システムを実現することができる。
【0084】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【0085】
【発明の効果】
以上説明したように、本発明によれば、計算機に接続されたデバイスが異なる計算機間でも、OSのマイグレーションを実現するための計算機システムを実現することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係わるコンピュータシステムの構成を示す構成図である。
【図2】本発明の実施の形態に係わる状態管理表の構成例を示す図である。
【図3】本発明の実施の形態に係わる状態管理表の他の構成例を示す図である。
【図4】本発明の実施の形態に係わる位置管理表の構成例を示す図である。
【図5】本発明の実施の形態に係わる位置管理表の他の構成例を示す図である。
【図6】本発明の実施の形態に係わる状態管理部と位置管理部の処理の流れの例を示すフローチャートである。
【図7】本発明の実施の形態に係わる状態管理部103におけるOSのマイグレーションの処理の流れの例を示すフローチャートである。
【図8】本発明の実施の形態に係わる状態管理部123におけるOSのマイグレーションの処理の流れの例を示すフローチャートである。
【符号の説明】
100・・・コンピュータシステム、101、121・・・計算機、107、108、109、127、128・・・デバイスドライバ、110、111、112、129、130・・・デバイス
Claims (14)
- 通信路を介して接続された第一の計算機と第二の計算機との間で、オペレーティングシステムの移送を行う計算機システムであって、
前記第一の計算機は、
第一のデバイスの状態を記憶する第一の状態管理表と、
前記オペレーティングシステムからの前記第一のデバイスへの第一のアクセスの内容を監視し、その監視された前記第一のアクセスの内容に基いて、前記第一の状態管理表に記憶される前記第一のデバイスの状態に変化が生じたときに、前記第一の状態管理表を、その変化した状態に応じて更新する第一の状態管理部と、
前記オペレーティングシステムのコンテキストを、前記通信路を介して前記第二の計算機へ送信する送信手段とを有し、
前記第二の計算機は、
前記通信路を介して受信した前記オペレーティングシステムを、前記第二の計算機において復元する復元手段と、
第二のデバイスの状態を記憶する第二の状態管理表と、
復元された前記オペレーティングシステムからの前記第二のデバイスへの第二のアクセスの内容を監視し、その監視された前記第二のアクセスの内容に基いて、前記第二の状態管理表に記憶される前記第二のデバイスの状態に変化が生じたときに、前記第二の状態管理表を、その変化した状態に応じて更新する第二の状態管理部と、
を有し、
前記第一の計算機は、前記送信手段が前記オペレーティングシステムのコンテキストを前記第二の計算機へ送信する場合、前記オペレーティングシステムを停止し、該停止後、前記第一の状態管理表の内容を前記第二の計算機へ前記通信路を介して送信し、
前記第二の計算機は、前記通信路を介して受信した前記第一の状態管理表の内容に基いて、前記第二のデバイスの状態を、前記第一のデバイスと同一の状態に復元することを特徴とする計算機システム。 - 前記第二の状態管理表は、前記オペレーティングシステムが認識している前記第二のデバイスの種類と、前記第二の計算機に接続された前記第二のデバイスの種類を記録するデータ領域を有し、
前記オペレーティングシステムが認識している前記第二のデバイスの種類と、前記第二の計算機に接続された前記第二のデバイスの種類が異なる場合、前記第二の状態管理部は、前記第二の状態管理表に基いて、前記第二の計算機に接続された前記第二のデバイスに適合するように前記第二のアクセスの内容を変換して、前記第二のデバイスへアクセスをするようにしたことを特徴とする請求項1に記載の計算機システム。 - さらに、前記第二の計算機は、復元された前記オペレーティングシステムが使用する前記第二のデバイスと、前記第二のデバイスが接続されている前記第一の計算機又は前記第二の計算機の識別子が記録された位置管理表を有し、
前記第二の計算機において、復元された前記オペレーティングシステムから前記第二のデバイスへのアクセスが生じたときに、前記位置管理表に基いて、前記第二の状態管理部は、アクセスされる前記第二のデバイスが前記第二の計算機に接続されているデバイスである場合は、前記第二の計算機に接続されている前記第二のデバイスに対してアクセスを行い、アクセスされる前記第二のデバイスが前記第一の計算機に接続されている場合は、前記通信路を介して、前記第一の計算機の前記第一の状態管理部に前記第二のアクセスの内容を転送して前記第一の計算機に接続された前記第二のデバイスに対してアクセスを行うことを特徴とする請求項1又は請求項2に記載の計算機システム。 - 通信路を介して接続された計算機装置であって、
前記通信路を介して受信したオペレーティングシステムを、前記計算機装置において復元する復元手段と、
デバイスの状態を記憶する状態管理表と、
復元された前記オペレーティングシステムからの前記デバイスへのアクセスの内容を監視し、その監視された前記アクセスの内容に基いて、前記状態管理表に記憶される前記デバイスの状態に変化が生じたときに、前記状態管理表を、その変化した状態に応じて更新する状態管理部と、
を有し、
前記計算機装置は、前記計算機装置に接続された前記デバイスの状態を、前記オペレーティングシステムのコンテキストを送信した他の計算機装置の他の状態管理表の内容に基いて、前記他の計算機装置に接続された他のデバイスと同一の状態に復元することを特徴とする計算機装置。 - 前記状態管理表は、前記オペレーティングシステムが認識している前記デバイスの種類と、前記計算機装置に接続された前記デバイスの種類を記録するデータ領域を有し、
前記オペレーティングシステムが認識している前記デバイスの種類と、前記計算機装置に接続された前記デバイスの種類が異なる場合、前記状態管理部は、前記状態管理表に基いて、前記計算機装置に接続された前記デバイスに適合するように前記アクセスの内容を変換して、前記デバイスへアクセスをするようにしたことを特徴とする請求項4に記載の計算機装置。 - さらに、復元された前記オペレーティングシステムが使用する前記デバイスと、前記デバイスが接続されている前記計算機装置又は前記他の計算機装置の識別子が記録された位置管理表を有し、
前記計算機装置において、復元された前記オペレーティングシステムから前記デバイスへのアクセスが生じたときに、前記位置管理表に基いて、前記状態管理部は、アクセスされる前記デバイスが前記計算機装置に接続されたデバイスである場合は、前記計算機装置に接続された前記デバイスに対してアクセスを行い、アクセスされる前記デバイスが前記他の計算機装置に接続されたデバイスである場合は、前記通信路を介して、前記他の計算機装置の他の状態管理部に前記アクセスの内容を転送して前記他の計算機装置に接続された前記デバイスに対してアクセスを行うことを特徴とする請求項4又は請求項5に記載の計算機装置。 - 通信路を介して接続された第一の計算機と第二の計算機との間で、オペレーティングシステムの移送を行うオペレーティングシステムの移送方法であって、
前記第一の計算機は、第一の状態管理部と、第一のデバイスの状態を記憶する第一の状態管理表とを有し、
前記第一の状態管理部は、前記オペレーティングシステムからの前記第一のデバイスへの第一のアクセスの内容を監視し、その監視された前記第一のアクセスの内容に基いて、前記第一の状態管理表に記憶される前記第一のデバイスの状態に変化が生じたときに、前記第一の状態管理表を、その変化した状態に応じて更新し、
前記第一の計算機は、前記オペレーティングシステムのコンテキストを、前記第二の計算機に送信し、
前記第二の計算機は、第二の状態管理部と、第二のデバイスの状態を記憶する第二の状態管理表とを有し、
前記通信路を介して受信した前記オペレーティングシステムを、前記第二の計算機において復元し、
前記第二の状態管理部は、復元された前記オペレーティングシステムからの前記第二のデバイスへの第二のアクセスの内容を監視し、その監視された前記第二のアクセスの内容に基いて、前記第二の状態管理表に記憶される前記第二のデバイスの状態に変化が生じたときに、前記第一の状態管理表を、その変化した状態に応じて更新し、
前記第一の計算機は、前記オペレーティングシステムのコンテキストを前記第二の計算機へ送信する場合、前記オペレーティングシステムを停止し、該停止後、前記第一の状態管理表の内容を前記第二の計算機へ前記通信路を介して送信し、
前記第二の計算機は、前記通信路を介して受信した前記第一の状態管理表の内容に基いて、前記第二のデバイスの状態を、前記第一のデバイスと同一の状態に復元することを特徴とするオペレーティングシステムの移送方法。 - 前記第二の状態管理表は、前記オペレーティングシステムが認識している前記第二のデバイスの種類と、前記第二の計算機に接続された前記第二のデバイスの種類を記録するデータ領域を有し、
前記オペレーティングシステムが認識している前記第二のデバイスの種類と、前記第二の計算機に接続された前記第二のデバイスの種類が異なる場合、前記第二の状態管理部は、前記第二の状態管理表に基いて、前記第二の計算機に接続された前記第二のデバイスに適合するように前記第二のアクセスの内容を変換して、前記第二のデバイスへアクセスをするようにしたことを特徴とする請求項7に記載のオペレーティングシステムの移送方法。 - さらに、前記第二の計算機は、復元された前記オペレーティングシステムが使用する前記第二のデバイスと、前記第二のデバイスが接続されている前記第一の計算機又は前記第二の計算機の識別子が記録された位置管理表を有し、
前記第二の計算機において、復元されたオペレーティングシステムから前記第二のデバイスへのアクセスが生じたときに、前記位置管理表に基いて、前記第二の状態管理部は、アクセスされる前記第二のデバイスが前記第二の計算機に接続されている場合は、前記第二の計算機が備える前記デバイスに対してアクセスを行い、アクセスされる前記第二のデバイスが前記第一の計算機に接続されている場合は、前記通信路を介して、前記第一の計算機の前記第一の状態管理部に前記第二のアクセスの内容を転送して前記第一の計算機に接続された前記第二のデバイスに対してアクセスを行うことを特徴とする請求項7又は請求項8に記載のオペレーティングシステムの移送方法。 - 通信路を介して受信したオペレーティングシステムを復元し、
復元された前記オペレーティングシステムからのデバイスへのアクセスの内容を監視し、その監視された前記アクセスの内容に基いて、前記デバイスの状態が記憶される状態管理表に記憶される前記デバイスの状態に変化が生じたときに、前記状態管理表を、その変化した状態に応じて更新し、
前記デバイスの状態を、前記オペレーティングシステムのコンテキストを送信した他の計算機装置に接続された他のデバイスと同一の状態に復元することを特徴とするオペレーティングシステムの移送方法。 - 前記オペレーティングシステムが認識している前記デバイスの種類と、前記計算機装置に接続された前記デバイスの種類が異なる場合、前記計算機装置に接続された前記デバイスに適合するように前記アクセスの内容を変換して、前記デバイスへアクセスをするようにしたことを特徴とする請求項10に記載のオペレーティングシステムの移送方法。
- 前記計算機装置において、復元された前記オペレーティングシステムから前記デバイスへのアクセスが生じたときに、アクセスされる前記デバイスが前記計算機装置に接続されたデバイスである場合は、前記計算機装置に接続された前記デバイスに対してアクセスを行い、アクセスされる前記デバイスが前記他の計算機装置に接続されたデバイスである場合は、前記通信路を介して、前記他の計算機装置に前記アクセスの内容を転送して前記他の計算機装置に接続された前記デバイスに対してアクセスを行うことを特徴とする請求項10又は請求項11に記載のオペレーティングシステムの移送方法。
- 通信路を介して接続された第一の計算機と第二の計算機との間で、オペレーティングシステムの移送を行うためのプログラムであって、
前記第一の計算機において前記オペレーティングシステムからの第一のデバイスへの第一のアクセスの内容を監視する機能と、
その監視された前記第一のアクセスの内容に基いて、前記第一のデバイスの状態が記憶される第一の状態管理表に記憶される前記第一のデバイスの状態に変化が生じたときに、前記第一の状態管理表を、その変化した状態に応じて更新する機能と、
前記オペレーティングシステムのコンテキストを、前記第一の計算機から前記第二の計算機に送信する機能と、
前記通信路を介して受信した前記オペレーティングシステムを、前記第二の計算機において復元する機能と、
復元された前記オペレーティングシステムからの第二のデバイスへの第二のアクセスの内容を監視する機能と、
その監視された、復元された前記オペレーティングシステムからの前記第二のアクセスの内容に基いて、前記第二のデバイスの状態が記憶される第二の状態管理表に記憶される前記第二のデバイスの状態に変化が生じたときに、前記第二の状態管理表を、その変化した状態に応じて更新する機能と、
前記オペレーティングシステムのコンテキストを前記第二の計算機へ送信する場合、前記第一の計算機において、前記オペレーティングシステムを停止し、該停止後、前記第一の状態管理表の内容を前記第二の計算機へ前記通信路を介して送信する機能と、
前記第二の計算機において、前記通信路を介して受信した前記第一の状態管理表の内容に基いて、前記第二のデバイスの状態を、前記第一のデバイスと同一の状態に復元する機能とを、コンピュータに実行させるためのプログラム。 - 通信路を介して受信したオペレーティングシステムを復元する機能と、
復元された前記オペレーティングシステムからのデバイスへのアクセス内容を監視する機能と、
その監視された前記アクセスの内容に基いて、前記デバイスの状態が記憶される状態管理表に記憶される前記デバイスの状態に変化が生じたときに、前記状態管理表を、その変化した状態に応じて更新する機能と、
接続されている前記デバイスの状態を、前記オペレーティングシステムのコンテキストを送信した他の計算機装置に接続された他のデバイスと同一の状態に復元する機能とを、コンピュータに実現させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003019076A JP3933587B2 (ja) | 2003-01-28 | 2003-01-28 | 計算機システム、計算機装置及びオペレーティングシステムの移送方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003019076A JP3933587B2 (ja) | 2003-01-28 | 2003-01-28 | 計算機システム、計算機装置及びオペレーティングシステムの移送方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004234114A true JP2004234114A (ja) | 2004-08-19 |
JP3933587B2 JP3933587B2 (ja) | 2007-06-20 |
Family
ID=32949045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003019076A Expired - Fee Related JP3933587B2 (ja) | 2003-01-28 | 2003-01-28 | 計算機システム、計算機装置及びオペレーティングシステムの移送方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3933587B2 (ja) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006085408A (ja) * | 2004-09-16 | 2006-03-30 | Hitachi Ltd | データ保存管理方法およびデータライフサイクルマネージメントシステム |
JP2008027279A (ja) * | 2006-07-24 | 2008-02-07 | Hitachi Ltd | 複数の仮想計算機からのテープ媒体へのアクセスを制御する方法及びシステム |
JP2008198026A (ja) * | 2007-02-14 | 2008-08-28 | Brother Ind Ltd | 情報分配システム、情報処理システム、および情報分配方法 |
JP2008225546A (ja) * | 2007-03-08 | 2008-09-25 | Nec Corp | 仮想装置構成システム、及びその方法 |
JP2009070135A (ja) * | 2007-09-13 | 2009-04-02 | Toyota Infotechnology Center Co Ltd | 分散処理システム |
JP2009122963A (ja) * | 2007-11-15 | 2009-06-04 | Hitachi Ltd | デプロイ方法およびシステム |
JP2009181418A (ja) * | 2008-01-31 | 2009-08-13 | Hitachi Ltd | 情報処理システム、i/oスイッチ及びi/oパスの交替処理方法 |
JP2009199349A (ja) * | 2008-02-21 | 2009-09-03 | Canon Inc | 情報処理装置及びその制御方法、プログラム |
JP2009205362A (ja) * | 2008-02-27 | 2009-09-10 | Nec Corp | コンピュータ装置、コンピュータ装置の運用継続方法及びプログラム |
JP2010009396A (ja) * | 2008-06-27 | 2010-01-14 | Toshiba Corp | 計算機システム、および計算機システムのデバイス制御方法 |
JP2010237737A (ja) * | 2009-03-30 | 2010-10-21 | Nec Corp | パススルーi/oデバイスを伴うlparの動的マイグレーション装置、その方法及びそのプログラム |
JP2011100431A (ja) * | 2009-11-09 | 2011-05-19 | Inst For Information Industry | 仮想マシン制御装置及び仮想マシン制御方法 |
JP2011118557A (ja) * | 2009-12-02 | 2011-06-16 | Hitachi Ltd | 仮想計算機の移動管理方法、前記移動管理方法を用いた計算機、前記移動管理方法を用いた仮想化機構および前記移動管理方法を用いた計算機システム |
JP2012504297A (ja) * | 2008-09-30 | 2012-02-16 | マイクロソフト コーポレーション | データ層アプリケーションコンポーネントファブリック管理 |
WO2012086106A1 (ja) * | 2010-12-21 | 2012-06-28 | パナソニック株式会社 | 仮想計算機システム及び仮想計算機システム制御方法 |
JP2012531676A (ja) * | 2009-06-26 | 2012-12-10 | ヴイエムウェア インク | 仮想モバイル機器 |
US8473702B2 (en) | 2007-06-12 | 2013-06-25 | Nec Corporation | Information processing apparatus, execution environment transferring method and program thereof |
US8595737B2 (en) | 2009-03-17 | 2013-11-26 | Hitachi, Ltd. | Method for migrating a virtual server to physical server according to a variation ratio, a reference execution time, a predetermined occupied resource amount and a occupancy amount |
JP5353891B2 (ja) * | 2008-09-26 | 2013-11-27 | 日本電気株式会社 | 分散処理システム、分散処理方法およびプログラム |
JP2013254304A (ja) * | 2012-06-06 | 2013-12-19 | Sony Corp | 情報処理装置、情報処理方法およびプログラム |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPWO2009069385A1 (ja) * | 2007-11-27 | 2011-04-07 | 日本電気株式会社 | デバイス検出装置、デバイス検出方法及びプログラム |
-
2003
- 2003-01-28 JP JP2003019076A patent/JP3933587B2/ja not_active Expired - Fee Related
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4498867B2 (ja) * | 2004-09-16 | 2010-07-07 | 株式会社日立製作所 | データ保存管理方法およびデータライフサイクルマネージメントシステム |
JP2006085408A (ja) * | 2004-09-16 | 2006-03-30 | Hitachi Ltd | データ保存管理方法およびデータライフサイクルマネージメントシステム |
JP4731420B2 (ja) * | 2006-07-24 | 2011-07-27 | 株式会社日立製作所 | 複数の仮想計算機からのテープ媒体へのアクセスを制御する方法及びシステム |
JP2008027279A (ja) * | 2006-07-24 | 2008-02-07 | Hitachi Ltd | 複数の仮想計算機からのテープ媒体へのアクセスを制御する方法及びシステム |
JP2008198026A (ja) * | 2007-02-14 | 2008-08-28 | Brother Ind Ltd | 情報分配システム、情報処理システム、および情報分配方法 |
JP4600402B2 (ja) * | 2007-02-14 | 2010-12-15 | ブラザー工業株式会社 | 情報分配システム、プログラム、および情報分配方法 |
US9519512B2 (en) | 2007-03-08 | 2016-12-13 | Nec Corporation | Dynamic physical resource allocation in a networked system for migrating virtual computers |
JP2008225546A (ja) * | 2007-03-08 | 2008-09-25 | Nec Corp | 仮想装置構成システム、及びその方法 |
US8473702B2 (en) | 2007-06-12 | 2013-06-25 | Nec Corporation | Information processing apparatus, execution environment transferring method and program thereof |
JP5273043B2 (ja) * | 2007-06-12 | 2013-08-28 | 日本電気株式会社 | 情報処理装置、実行環境転送方法及びそのプログラム |
JP2009070135A (ja) * | 2007-09-13 | 2009-04-02 | Toyota Infotechnology Center Co Ltd | 分散処理システム |
JP2009122963A (ja) * | 2007-11-15 | 2009-06-04 | Hitachi Ltd | デプロイ方法およびシステム |
JP2009181418A (ja) * | 2008-01-31 | 2009-08-13 | Hitachi Ltd | 情報処理システム、i/oスイッチ及びi/oパスの交替処理方法 |
US8230420B2 (en) | 2008-02-21 | 2012-07-24 | Canon Kabushiki Kaisha | Apparatus for transferring a virtual machine using stored correspondence information |
JP2009199349A (ja) * | 2008-02-21 | 2009-09-03 | Canon Inc | 情報処理装置及びその制御方法、プログラム |
JP2009205362A (ja) * | 2008-02-27 | 2009-09-10 | Nec Corp | コンピュータ装置、コンピュータ装置の運用継続方法及びプログラム |
JP2010009396A (ja) * | 2008-06-27 | 2010-01-14 | Toshiba Corp | 計算機システム、および計算機システムのデバイス制御方法 |
US8688767B2 (en) | 2008-09-26 | 2014-04-01 | Nec Corporation | Distributed processing system, distributed operation method and computer program |
JP5353891B2 (ja) * | 2008-09-26 | 2013-11-27 | 日本電気株式会社 | 分散処理システム、分散処理方法およびプログラム |
JP2012504297A (ja) * | 2008-09-30 | 2012-02-16 | マイクロソフト コーポレーション | データ層アプリケーションコンポーネントファブリック管理 |
US8595737B2 (en) | 2009-03-17 | 2013-11-26 | Hitachi, Ltd. | Method for migrating a virtual server to physical server according to a variation ratio, a reference execution time, a predetermined occupied resource amount and a occupancy amount |
US8464019B2 (en) | 2009-03-30 | 2013-06-11 | Nec Corporation | Apparatus for dynamically migrating LPARS with pass-through I/O devices, its method, and its program |
JP2010237737A (ja) * | 2009-03-30 | 2010-10-21 | Nec Corp | パススルーi/oデバイスを伴うlparの動的マイグレーション装置、その方法及びそのプログラム |
JP2012531676A (ja) * | 2009-06-26 | 2012-12-10 | ヴイエムウェア インク | 仮想モバイル機器 |
JP2011100431A (ja) * | 2009-11-09 | 2011-05-19 | Inst For Information Industry | 仮想マシン制御装置及び仮想マシン制御方法 |
JP2011118557A (ja) * | 2009-12-02 | 2011-06-16 | Hitachi Ltd | 仮想計算機の移動管理方法、前記移動管理方法を用いた計算機、前記移動管理方法を用いた仮想化機構および前記移動管理方法を用いた計算機システム |
CN102770846A (zh) * | 2010-12-21 | 2012-11-07 | 松下电器产业株式会社 | 虚拟计算机系统及虚拟计算机系统控制方法 |
WO2012086106A1 (ja) * | 2010-12-21 | 2012-06-28 | パナソニック株式会社 | 仮想計算機システム及び仮想計算機システム制御方法 |
US8898666B2 (en) | 2010-12-21 | 2014-11-25 | Panasonic Intellectual Property Corporation Of America | Virtual machine system and virtual machine system control method for controlling program execution on a plurality of processors that have a plurality of privileged modes |
JP5758914B2 (ja) * | 2010-12-21 | 2015-08-05 | パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America | 仮想計算機システム及び仮想計算機システム制御方法 |
JP2013254304A (ja) * | 2012-06-06 | 2013-12-19 | Sony Corp | 情報処理装置、情報処理方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP3933587B2 (ja) | 2007-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3933587B2 (ja) | 計算機システム、計算機装置及びオペレーティングシステムの移送方法 | |
US10073713B2 (en) | Virtual machine migration | |
US11627041B2 (en) | Dynamic reconfiguration of resilient logical modules in a software defined server | |
US8694828B2 (en) | Using virtual machine cloning to create a backup virtual machine in a fault tolerant system | |
US9183099B2 (en) | Replication of a write-back cache using a placeholder virtual machine for resource management | |
US8291425B2 (en) | Computer, control method for virtual device, and program thereof | |
US8635395B2 (en) | Method of suspending and resuming virtual machines | |
US8200771B2 (en) | Workload migration using on demand remote paging | |
US20110113426A1 (en) | Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods | |
US20090150463A1 (en) | Method of migration between virtual machine and physical machine and machine system thereof | |
US20080189432A1 (en) | Method and system for vm migration in an infiniband network | |
US8245013B2 (en) | Mapped offsets preset ahead of process migration | |
CN113196237A (zh) | 计算系统中的容器迁移 | |
JP2004227558A (ja) | 仮想化制御装置およびデータ移行制御方法 | |
JP6123626B2 (ja) | 処理再開方法、処理再開プログラムおよび情報処理システム | |
JP6421470B2 (ja) | 仮想マシンマイグレーションプログラム、仮想マシンマイグレーションシステムおよび仮想マシンマイグレーション方法 | |
JP2013242797A (ja) | 情報処理装置、情報処理方法および情報処理プログラム | |
WO2020063432A1 (zh) | 一种升级虚拟化模拟器的方法和装置 | |
Kooburat et al. | The Best of Both Worlds with {On-Demand} Virtualization | |
US10341177B2 (en) | Parallel computing system and migration method | |
JP4156470B2 (ja) | ノード移送装置、ノード代替装置及びそのプログラム | |
US9740514B1 (en) | Method and system to share data with snapshots in a virtualization environment | |
US8527716B2 (en) | Volume sharing method and storage system using the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050907 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051025 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060919 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061219 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070219 |
|
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: 20070306 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070313 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100330 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110330 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120330 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130330 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130330 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140330 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |