JP2004246702A - Computer system, computer apparatus, and data access method and program in computer system - Google Patents

Computer system, computer apparatus, and data access method and program in computer system Download PDF

Info

Publication number
JP2004246702A
JP2004246702A JP2003037019A JP2003037019A JP2004246702A JP 2004246702 A JP2004246702 A JP 2004246702A JP 2003037019 A JP2003037019 A JP 2003037019A JP 2003037019 A JP2003037019 A JP 2003037019A JP 2004246702 A JP2004246702 A JP 2004246702A
Authority
JP
Japan
Prior art keywords
computer
data
data area
program
identification information
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
Application number
JP2003037019A
Other languages
Japanese (ja)
Other versions
JP3848268B2 (en
Inventor
Hirokuni Yano
浩邦 矢野
Seiji Maeda
誠司 前田
Kiyoko Satou
記代子 佐藤
Kenichiro Yoshii
謙一郎 吉井
Takuya Hayashi
拓也 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2003037019A priority Critical patent/JP3848268B2/en
Publication of JP2004246702A publication Critical patent/JP2004246702A/en
Application granted granted Critical
Publication of JP3848268B2 publication Critical patent/JP3848268B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To realize a computer system for executing a data access without reducing a data access speed, as a system for performing program migration. <P>SOLUTION: The computer system includes 1st and 2nd computers connected through a communication line and has a migration function for performing program migration by causing a program executed by the 2nd computer to migrate to the 1st computer. The 1st computer comprises a 1st storage medium, a 1st management table to be stored with a computer identifier indicating a computer having a data area to which the program accesses, and a management part. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラムに関し、特に、複数の計算機間でソフトウエアプログラムのマイグレーションが行われる計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラムに関する。
【0002】
【従来の技術】
互いに通信が可能な複数の計算機で構成される計算機システムにおいて、ソフトウエアプログラム(以下、プログラムという)を計算機間で移送するマイグレーション技術がある。
【0003】
プログラムのマイグレーション技術は、動作中のプログラムの実行状態であるコンテキストを保存し、そのコンテキストを他の計算機に移送し、移送先の計算機においてその実行状態を復元することにより、プログラムを継続実行させるための技術である。プログラムのコンテキストとは、一般に、中央演算装置(以下、CPUともいう)のレジスタ値や、プログラムが使用しているメモリ領域の内容、外部との通信状態をいう。
【0004】
そのマイグレーション技術は、複数の計算機によって構成される計算機システムの高信頼化や負荷分散のために利用される。例えば、計算機が故障した場合、故障した計算機上で動作しているプログラムを、マイグレーション技術によってシステム内の正常な計算機に移送し、実行を継続することによってシステムの高信頼化が図られる。あるいは、システム内の特定の計算機に負荷が集中している場合、負荷が集中している計算機上のプログラムを、マイグレーション技術によってシステム内の負荷の低い計算機に移送し、実行を継続することによってシステムの負荷分散が実現される。
【0005】
プログラムのマイグレーションの代表的な手法は、種々開示されている(例えば、非特許文献1参照)。
【0006】
マイグレーション技術を使用する場合に、マイグレーション前後において、マイグレーション先の計算機において実行されるプログラムが、マイグレーション先の計算機が備える記憶媒体上のデータに対して継続してアクセスを行う必要がある場合がある。このような場合、プログラムのマイグレーション時に、プログラムのコンテキストに加えて、記憶媒体上のデータの内容も移送先の計算機が備える記憶媒体上に複製し、移送後のデータアクセスが移送先の計算機上で行われるようにすることによってマイグレーション前後での継続したデータアクセスが可能となる。このように、記憶媒体上のデータの内容複製を行ってしまえば、それ以降のデータアクセスは、高速に行うことができる。
【0007】
これに対し、マイグレーション先の計算機への記憶媒体上のデータの複製を行わずにマイグレーション前後で継続して記憶媒体上のデータに対してアクセスを行うために、ネットワークファイルシステムを用いることが多い。ネットワークファイルシステムの代表的なものとしては、NFS(Network File System)がある。NFSの技術は、種々の文献に開示されている(例えば、非特許文献2参照)。
【0008】
ネットワークファイルシステムを用いると、計算機システムを構成するどの計算機からも同じように記憶媒体上のデータに対してアクセスを行うことが可能となる。ネットワークファイルシステムは、データアクセスの際に、データの実体が格納されている計算機と通信を行うことによって、所望のデータを取得したり、更新したりすることができるようにする技術である。
【0009】
ネットワークファイルシステムを用いれば、マイグレーション元の計算機上で実行していたプログラムが使用していた記憶媒体上のデータは、マイグレーション先の計算機からも使用できるようになる。このように、マイグレーション対象のプログラムが使用している記憶媒体上のデータを、ネットワークファイルシステム上に格納し、各計算機から見えるデータを同一にする手法を利用して、マイグレーション時に記憶媒体上のデータの転送を行わないようにする場合が多い。
【0010】
但し、このネットワークファイルシステムを用いる計算機システムの形態は、そのシステムを構成する計算機間が高速なネットワークによって接続されていることを前提としている。これは、データに対する読み出しあるいは書き込みの際に、データの実体が格納されている計算機との間で参照あるいは更新のためのネットワーク通信が発生するため、低速なネットワーク接続が混在するような環境では、データの読み書きが非常に遅くなってしまうからである。一般に、データの読み出し及び書き込み性能は、プログラムの実行速度に大きな影響を与える。
【0011】
【非特許文献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)
【0012】
【非特許文献2】
ブレント・コーラガン(Callaghan, Brent)著、NFS イラストレイテッド(NFS Illustrated)、ISBN:0−201−32570−5、アディソン・ワイズレイ社(Addison Wesley)
【0013】
【発明が解決しようとする課題】
しかし、プログラムのマイグレーション時に記憶媒体上のデータの複製を行う場合、複製すべきデータが巨大であると、データの複製のためのネットワーク通信に時間がかかり、その結果、プログラムの移送にかかる時間が増大してしまう。その結果、プログラムのマイグレーション中はプログラムを停止させる必要があるため、プログラムのマイグレーションに時間がかかると、プログラムの停止時間が長くなってしまうという問題があった。
【0014】
一方、プログラムのマイグレーション時にデータの複製を行わずに、ネットワークファイルシステムを用いて記憶媒体上のデータを計算機間で共有するシステムを用いる場合は、マイグレーション先の計算機のプログラムがデータにアクセスする度に、データの実態を格納する計算機との間でネットワーク通信が発生するめに、データアクセスの速度が低下してしまうという問題があった。
【0015】
そこで、本発明は、プログラムのマイグレーションが行われるシステムにおいて、データアクセス速度を低下させずに、データアクセスをすることができる計算機システムを提供することを目的とする。
【0016】
【課題を解決するための手段】
本発明の計算機システムは、通信路を介して接続され、それぞれ記憶媒体を備える複数の計算機と、プログラム本体、該プログラム本体がアクセス可能なデータ領域とそのデータ領域を有する前記複数の計算機に含まれる特定の計算機を示す計算機識別情報とを対応付けて記憶する管理表、及び該管理表を管理する管理部とを備えるプログラム部と、前記プログラム部の移動を行うマイグレーション機能とを備える。マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理部は、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の計算機を示すときは、得られた計算機識別情報が示す計算機の前記データ領域からデータを取得して前記第一の計算機の記憶媒体に記憶すると共に、前記管理表の前記データ領域に対応させて前記第一の計算機の計算機識別情報を追加する。
【0017】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
【0018】
まず図1に基づき、本実施の形態に係わる計算機システムの構成を説明する。図1は、本実施の形態に係わる計算機システムの構成を示す構成図である。
【0019】
図1において、100は計算機システムであり、計算機101、計算機111及び計算機121を含む。各計算機は、通信路131によって接続されている。110は、計算機101と通信路131とを接続するため通信路であり、120は、計算機111と通信路131とを接続するため通信路であり、130は、計算機121と通信路131とを接続するため通信路である。なお、各通信路間は、図示しない接続装置を介して接続されている。
【0020】
計算機101は、プログラム部102を含む。プログラム部102は、後述するようにマイグレーションされるプログラム本体102aと、位置管理部103と、位置管理表104を含む。計算機101は、さらに、入出力部105と、ハードディスク等の記憶媒体106と、プログラム送受信部107と、通信装置109を含む。
【0021】
入出力部105は、プログラム部102からの指令に応じて、記憶媒体106に対するデータ入出力を行うプログラムである。プログラム送受信部107は、プログラムのマイグレーションと、移動すなわち移送されたプログラムの生成を行うプログラムである。プログラム送受信部107は、プログラム部102のマイグレーションのためのコンテキスト108を含み、コンテキスト108を管理する。通信装置109は、通信路131を介して、他の計算機とデータ通信を行う。
【0022】
計算機101は、プログラム本体102aがアクセスするデータの位置情報を管理する位置管理部103と位置管理表104とを有し、プログラム本体102aからのデータ入出力の要求をその位置管理部103を通して入出力部105へ供給している。位置管理部103は、プログラム部102の一部であり、プログラム本体102aが使用するデータがどの計算機にあるかを示す位置データを格納する位置管理表104を管理する。なお、位置管理表104は、プログラム部102が使用するメモリ内にあり、コンテキスト108に含まれる。
【0023】
例えば、プログラム本体102aが入出力部105を介してデータを記憶媒体106上のあるデータ領域に書き込むときは、位置管理部103を介して、入出力部105へ書込要求のアクセスのデータを供給し、書込要求を受けた入出力部105が記憶媒体106上のそのデータ領域への書き込みを行う。
【0024】
計算機111は、入出力部115と、ハードディスク等の記憶媒体116と、プログラム送受信部117と、通信装置119を含む。入出力部115は、入出力部105と同様に、記憶媒体116に対してデータ入出力を行うプログラムである。プログラム送受信部117は、プログラム送受信部107と同様に、プログラム部102のマイグレーションと、移送されたプログラムの生成を行うプログラムである。プログラム送受信部117は、プログラム部102のコンテキストを管理する。通信装置119は、通信装置109と同様に、通信路131を介して、他の計算機とデータ通信を行う。
【0025】
計算機121は、入出力部125と、ハードディスク等の記憶媒体126、プログラム送受信部127と、通信装置129を含む。入出力部125は、入出力部105と同様に、記憶媒体126に対してデータ入出力を行うプログラムである。プログラム送受信部127は、プログラム送受信部107と同様に、プログラムのマイグレーションと、移送されたプログラムの生成を行うプログラムである。プログラム送受信部127は、プログラム部102のコンテキストを管理する。通信装置129は、通信装置109と同様に、通信路131を介して、他の計算機とデータ通信を行う。
【0026】
このように、各計算機はプログラム送受信部を有するので、計算機システム100は、計算機間でプログラムのマイグレーションを行う機能を有する。従って、計算機システム100において、複数の計算機101、111及び121間において、プログラム部102が移送されながら、プログラム本体102aは動作することができる。
【0027】
計算機101、111及び121には、それぞれ固有の計算機識別情報である識別子が予め付けられており、各計算機は、その識別子によって特定が可能である。各計算機は、図示しないデータ格納手段であるメモリ装置に自己の計算機を示す計算機識別子のデータを格納している。位置管理部103は、プログラム部102を実行している計算機の識別子を取得することができる。計算機の識別子は、計算機のホスト名やIPアドレスなどを用いればよいが、計算機毎に固有であればその種類は問わない。
【0028】
位置管理部103は、プログラム本体102aが入出力部105に対して行ったアクセスの内容をモニタすることによって、記憶媒体106中のデータが書込みされる領域の情報を得る。位置管理部103は、プログラム本体102aによってアクセスされたデータ領域の情報と、プログラム本体102aを実行している計算機101の識別子の組み合わせを、位置管理表104に記憶して管理する。
【0029】
位置管理表104には、位置データとして、プログラム本体102aによってアクセスされるデータ領域を示すデータ領域情報と、そのデータ領域のデータを格納している計算機の識別子の対応が記録されている。図2は、位置管理表104の例を示す図である。位置管理表104は、データ領域を示すデータ領域情報毎に、そのデータ領域に対応するエントリに、そのデータ領域を有する特定の計算機を示す計算機の識別子が記録されている。この例では、領域Aのデータは計算機111が有していることを表している。同様に、領域Bのデータは計算機111および計算機121が有し、領域Cのデータは計算機101が有していることを表している。計算機101の有する位置管理表104において、計算機111と121の識別子が存在するのは、過去にプログラム本体102aが計算機111と121上で動作して、データを更新したことを表している。なお、表の更新方法については後述する。位置管理表104の各データ領域に対応するエントリすなわちデータ登録領域に記録できる計算機の識別子の数は規定しておらず、1つ以上であれば何個でもよく、さらに最新の数個の識別子を残すなど制限を設けるようにしてもよい。
【0030】
位置管理部103が管理する位置管理表104は、後述するように、プログラム部102が他の計算機へ移送されるときに、プログラム部102のコンテキストの一部として他の計算機へ転送される。
【0031】
通信路110、120、130及び131として、それぞれイーサネット(R)、無線LAN等を使用することが考えられるが、計算機間で相互に通信が行えればよく、特に種類は問わない。各通信路の通信速度の情報は、例えば、図3に示すような表形式データとして、各計算機に保持される。図3は、各通信路の速度を記録する速度管理表の例を示す図である。この例では、通信路131、120及び130の速度が100Mbpsの高速通信路であり、通信路110の速度が10Mbpsの低速通信路であることを示している。各計算機は、この速度管理表を参照することにより、計算機101と計算機111の間、及び計算機101と計算機121の間の通信速度が10Mbpsの低速で、計算機111と計算機121の間の通信速度は100Mbpsの高速であることを判断することができる。この表の管理方法は、各計算機がこの表を参照できればよく、特に規定されない。
【0032】
なお、本実施の形態においては、プログラムのマイグレーションの方法は、特に制限はない。マイグレーション処理は従来のマイグレーションと同様の方法を用いて、プログラムの実行コンテキストであるCPUのレジスタ値、プログラムが使用しているメモリの内容を計算機間で転送することによって実現できるので、マイグレーション処理の内容については説明を省略する。また、計算機111、121のプログラム送受信部を用いて、複数の計算機101、111、121の間で相互にプログラムのマイグレーションが可能であるが、これについても従来と同様の方法でマイグレーション処理ができるので説明は省略する。
【0033】
まず、本実施の形態によって、図1の計算機システム100において、プログラムが移送されていくときに、プログラムによってアクセスされたデータ領域のデータが、複数の計算機間でどのように分散して多重に複製されて格納されていくかを具体的な例を用いて説明する。
【0034】
図4から図7は、プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【0035】
図4に示すように、初期状態において、計算機101上でプログラム部102が動作しており、データ領域A、B及びCのデータは、計算機101が備えた記憶媒体106に格納され、プログラム部102は、記憶媒体106内のデータ領域A、B及びCにアクセスしていたとする。ここで、プログラム部102に含まれる位置管理表104において、データ領域A、B及びCに対応する計算機識別子は、それぞれ「101」のみであるとする。
【0036】
図4の初期状態から、プログラム部102が転送されて計算機111にマイグレーションされ、マイグレーション先の計算機111においてプログラム部102が継続して実行されたとする。計算機111上で動作するプログラム部102がその実行中にデータ領域Aのデータを書き込みすなわち更新するためのアクセスをすると、図5に示すように記録媒体106に更新データが、データ領域A(更新データ領域)のデータとして記録媒体116に記憶すなわち書き込まれる。従って、計算機111上で動作するプログラム部102は、その後データ領域Aにアクセスするときは、記録媒体116にアクセスする。このとき、図5に示すように、データ領域Aのデータは、計算機111の記録媒体116にのみ存在し、マイグレーション元の計算機101の記録媒体106に記録されたデータ領域Aのデータは無効とされる。
【0037】
よって、マイグレーションされたプログラム部102によるデータの更新動作は、プログラム部102が動作する計算機が備える記憶媒体に書き込むため、通信路を介する通信処理を伴わないので、高速に行い得る。
【0038】
そして、マイグレーションされた計算機111のプログラム部102が、データ領域Bのデータを参照、すなわち更新を行わずに単に読み出すためのアクセスをしたとすると、計算機101(参照データ保持計算機)から記録媒体106のデータ領域B(参照データ領域)のデータが取得され、図6に示すように、計算機111の記録媒体116に複製される。従って、その後、計算機111上で動作するプログラム部102がデータ領域Bのデータを参照するときは、記録媒体116に対してアクセスし、通信路を介する通信処理を行わないので、データの参照動作は高速に行い得る。
【0039】
次に、計算機111のプログラム部102が、計算機121に移送されたとする。そして、計算機121のプログラム部102がデータ領域Bのデータを参照すると、図6と同様に、計算機121は、計算機101との通信速度よりも速い計算機111から、データ領域B(参照データ領域)のデータを取得し、図7に示すように、参照データ領域のデータとして計算機121の記録媒体126に複製される。計算機101と計算機111は、共にデータ領域Bのデータを有する参照データ保持計算機であるが、通信路110の通信速度が10Mbpsで、通信路120の通信速度が100Mbpsであるので、計算機121は、計算機111からデータ転送を行う方が、計算機101からデータ転送を行うよりも効率的だからである。その後、計算機121のプログラム部102がデータ領域Bのデータを参照するときは、記録媒体126に対してアクセスする。
【0040】
このように、プログラムによってアクセスされる記憶媒体上のデータ領域のデータが、マイグレーション先の計算機上で動作するプログラムによって更新される場合、その更新データ領域のデータは、マイグレーション先の計算機が有する記憶媒体に記憶すなわち書き込まれ、かつマイグレーション元の計算機の対応するデータ領域のデータは無効とされる。また、プログラムによってアクセスされる記憶媒体上のデータ領域のデータが、マイグレーション先の計算機上で動作するプログラムによって参照される場合、その参照データ領域のデータは、マイグレーション先の計算機に転送され複製データが生成される。
【0041】
このような動作を行うことによって、マイグレーションされたプログラムがアクセスする記憶媒体上のデータ領域のデータが、複数の計算機上に分散して多重に格納されていく。さらに、後述するように、プログラムによるデータの参照動作の場合、参照データ領域のデータが複数の計算機(参照データ保持計算機)に多重に格納されているため、複数の参照データ保持計算機の中から、最も高速にデータ転送を行える計算機から参照データ領域のデータの転送を行うことによって、効率的なデータアクセスを行えるようになる。
【0042】
次に、上述した図4から図7に示すように、計算機システム上でプログラムが移送されていく過程を例にして、データ更新動作とデータ参照動作の処理を、図8、図9及び図10を用いて説明する。図8は、データ参照の場合の位置管理部103の処理の流れの例を示すフローチャートである。図9は、データ更新の場合の位置管理部103の処理の流れの例を示すフローチャートである。図10は、プログラムがマイグレーションされながら、データの更新と参照を行っていくときに、位置管理表の内容がどのように変化していくかの例を説明するための図である。
【0043】
図4の状態では、図2の位置管理表において、領域A、B及びCの計算機識別子は、全て「101」であり、「101」以外の他の計算機識別子はないとする。これは、プログラム部102が計算機111へ移送される前は、プログラム部102は、記録媒体106の領域A,B及びCに対してデータアクセスを行っているからである。
【0044】
まず、計算機101上で動作するプログラム部102が、記憶媒体106上のデータ領域に対してデータの参照及び更新を行う場合の位置管理部103の処理の流れについて説明する。始めにデータの参照動作の処理について図8を用いて説明する。
【0045】
計算機101上で動作するプログラム本体102aが位置管理部103に対して、データ領域Bのデータの参照要求を出すと、位置管理部103はその参照要求を受信する(ステップ401)。次に、位置管理部103は、位置管理表104に基いて、参照要求における参照されるデータ領域(参照データ領域)が、自己の計算機にあるか否かを判断する(ステップ402)。言い換えると、位置管理部103は、位置管理表104のデータ領域Bに対応するエントリに計算機101の識別子が存在するか否かをチェックする。図4の場合は計算機101の識別子が位置管理表104のデータ領域Bに対応するエントリにある、すなわち計算機101はデータ領域Bのデータを有する計算機(参照データ保持計算機)であるので、ステップ402でYESとなり、位置管理部103は、入出力部105を介して、自己の記憶媒体106からそのデータを読み出す(ステップ403)。そして、位置管理部103は、入出力部105から受信したデータを、プログラム本体102aへ供給する(ステップ408)。
【0046】
次に、データの書込動作すなわち更新動作の処理について図9を用いて説明する。計算機101上で動作するプログラム部102が、書込データと共に書き込み要求、すなわち更新要求を発行すると、位置管理部103は、その更新要求を受信する(ステップ501)。位置管理部103は、位置管理表104に基いて、更新要求があったデータ領域(更新データ領域)は、自己以外の計算機に属するかを判断する(ステップ502)。例えば、プログラム本体102aがデータ領域Aのデータを更新する場合、位置管理部103は、位置管理表104の領域Aに対応するエントリに計算機101以外の計算機の識別子が存在するかをチェックする。
【0047】
図4の場合、データ領域Aのエントリに計算機101以外の計算機の識別子が存在しないので、処理は、ステップ505へ進み、自己の記憶媒体106に、データ領域Aのデータとして書込データを書き込む(ステップ505)。
【0048】
図4の場合、位置管理表104中の各データ領域に対応する計算機識別子は、全て「101」となっているので、計算機識別子のデータが「101」のデータ領域に対する更新動作において、処理は、ステップ502でNOとなり、位置管理部103は、入出力部105に対して更新要求を転送し、入出力部105は、記憶媒体106に、更新すべきデータ領域の書込データを書き込む(ステップ505)。
【0049】
以上が、上述した初期状態における、計算機101上で動作するプログラム部102が、データを参照及び更新するときの位置管理部103の処理の流れである。なお、ステップ502から504と、ステップ505とは、処理の順序に制約はなく、どちらを先に行っても、あるいは同時に行ってもよい。
【0050】
プログラム部102が計算機101上で動作して、計算機101の記憶媒体106のデータにアクセスしているときは、図10のステップ611の状態であり、そのとき位置管理表104の内容は、601で示す状態である。
【0051】
次に、図10のステップ612に示すように、計算機101から計算機111へのプログラム部102のマイグレーションを行ったとする。このとき、プログラム部102は、計算機111へ移送されるので、位置管理部103及び位置管理表104も一緒に計算機111へ転送される。移送されたプログラム部102は、計算機111によって復元されて再実行される。
【0052】
プログラム102のマイグレーション後、プログラム部102が再実行されると、プログラム本体102aは、位置管理部103を介して入出力部に対してデータアクセスを行うが、そのとき、位置管理部103は、図8と図9の処理を実行する。
【0053】
まず、計算機111上で動作するプログラム本体102aが、データ領域Aのデータの更新をする場合の位置管理部103の処理の流れについて説明する。図9において、プログラム本体102aが、書込データと共にデータの書き込み要求、すなわち更新要求を発行すると、位置管理部103は、その更新要求を受信する(ステップ501)。位置管理部103は、位置管理表104に基いて、更新要求があったデータ領域(更新データ領域)は、自己以外の計算機に属するか、すなわちマイグレーション先の計算機111の記録媒体116以外にあるかを判断する(ステップ502)。
【0054】
プログラム部102は、計算機101から移送され、各データ領域のデータに対するアクセスを未だ行っていないのであれば、位置管理表104中の各データ領域に対応する計算機識別子は、全て「101」となっている。よって、ステップ502でYESとなり、データ領域Aに対応する、自己以外の計算機識別子である計算機識別子データ「101」を削除され(ステップ503)、記憶媒体106上のデータは無効とされる。次に、位置管理表104において、更新要求のあったデータ領域Aに対応する計算機識別子として、自己の計算機の計算機識別子「111」を書き込む(ステップ504)。そして、更新要求に従って、入出力部115に対して更新要求を転送し、入出力部115は、自己の記憶媒体115に、データ領域Aの書込データを書き込む(ステップ505)。
【0055】
次に、計算機111上で動作するプログラム本体102aが、データ領域Bのデータの参照をする場合の位置管理部103の処理の流れについて説明する。
【0056】
プログラム本体102aが位置管理部103に対してデータ領域Bのデータの参照要求を出すと、位置管理部103は、その参照要求を受信する(ステップ401)。位置管理部103は位置管理表104のデータ領域B(参照データ領域)に対応するエントリに計算機111の識別子が存在するかどうかをチェックする(ステップ402)。参照要求に係るデータ領域Bについては、自己の計算機である計算機111の識別子が位置管理表104にまだ存在せず、その代わりに計算機101の識別子が存在するので、ステップ402でNOとなり、処理は、ステップ404へ進む。
【0057】
ステップ404では、参照データ領域であるデータ領域Bのエントリに存在する計算機の識別子を調べ、複数の識別子がある場合はその中から計算機111ともっとも高速にデータの転送を行うことができる計算機を選択して参照要求をその計算機へ出力する。ここでは、位置管理表104のデータ領域Bのエントリには計算機101のみの識別子が存在しているので、計算機101からデータを転送するしかないので、計算機101(参照データ保持計算機)が選択される。位置管理部103は、通信装置119、通信路120、131、110、通信装置109、入出力部105を通して、記憶媒体106からデータ領域Bのデータを読み込む(ステップ405)。位置管理部103は、入出力部115を介して、記憶媒体116に取得したデータ領域Bのデータを書き込む(ステップ406)。位置管理部103は位置管理表104のデータ領域Bに対応するエントリに、自己の計算機識別子である計算機111の識別子を追加する(ステップ407)。そして、ステップ405で取得したデータを、プログラム本体102aに供給する(ステップ408)。
【0058】
従って、プログラム部102が計算機101から計算機111へ移送された後、マイグレーション先の計算機111が、データ更新を行うと、更新されたデータは計算機111の記憶媒体116に記憶され、同時に計算機101の記憶媒体106上のデータは無効とされ、マイグレーション先の計算機111がデータ参照を行うと、参照されたデータの複製が記憶媒体116に記憶される(図6参照)。
【0059】
以上のように、マイグレーション先の計算機111において、プログラム本体102aが入出力部115を介して記憶媒体116上のデータを参照した場合、位置管理部103は、入出力部115へのアクセス内容を監視しているので、参照されたデータ領域のデータがどの計算機に格納されているのかを、位置管理部103が管理する位置管理表104を用いて検索する。次に、検索で見つかったデータを保持する計算機(参照データ保持計算機)の一覧の中から、現在プログラムを実行している計算機111に、もっとも高速にデータを転送可能な計算機を選択し、その計算機の記憶媒体からデータを読み込む。
【0060】
さらに、プログラム本体102aがデータ領域のデータを参照するために他の計算機からそのデータを取得した場合、プログラムを実行している計算機111が備える記憶媒体116にもそのデータを複製し、位置管理部103が管理する位置管理表104の、参照したデータ領域に対応するエントリに計算機111の識別子を追加する。これにより、システムを構成する複数の計算機上にデータが分散して多重に格納され、以後、このデータ領域に対する参照が起きた場合、計算機111の記憶媒体も参照先として用いることが可能となる。
【0061】
以上のように、計算機111上で動作するプログラム本体102aがデータ領域Aのデータを更新し、さらにデータ領域Bのデータを参照する(ステップ613)と、位置管理表104の内容は、602で示す状態となる。
【0062】
さらに、計算機111から計算機121へプログラム部102が移送されたとする(ステップ614)。プログラム部102は、計算機121へ移送されるので、位置管理部103及び位置管理表104も一緒に計算機121へ転送される。移送されたプログラム部102は、計算機121において復元されて再実行される。
【0063】
プログラム部102のマイグレーション後、プログラム部102が再実行されると、プログラム本体102aは、計算機121における位置管理部103を介して入出力部125に対してデータアクセスを行う。
【0064】
まず、計算機121上で動作するプログラム本体102aが、領域Bのデータの参照をする場合の位置管理部103の処理の流れについて説明する。プログラム本体102aが位置管理部103を介してデータの参照をする場合、プログラム本体102aが位置管理部103に対してデータ領域Bのデータの参照要求を出す。位置管理部103は、その参照要求を受信する(ステップ401)。位置管理部103は位置管理表104のデータ領域Bに対応するエントリに計算機121の識別子が存在するかどうかをチェックする(ステップ402)。このとき、計算機121の識別子は、未だ位置管理表104のデータ領域Bのエントリに存在しないので、ステップ402でNOとなって、計算機121ともっとも高速にデータの転送を行うことができる計算機(参照データ保持計算機)を、図3の速度管理表のデータに基いて抽出し、その最も転送速度が速い計算機に参照要求を送信する(ステップ404)。
【0065】
データ領域Bに対応する計算機識別子は、位置管理表104によれば、計算機101と計算機111(共に参照データ保持計算機)の識別子になっているので、計算機101又は計算機111からデータ領域Bのデータの転送をしてもらわなければならない。そこで、位置管理部103は、図3の各通信路の速度データに基いて、計算機101と計算機111のいずれから転送を受けた方がデータを早く参照できるかを決定する。例えば、計算機121と計算機101との間では、通信路130、131及び110を経由するので、一番遅い通信路110の速度、10Mbpsとなる。一方、計算機121と計算機111との間では、通信路130、131及び120を経由するので、全て同じ通信速度なので、100Mbpsとなる。よって、計算機101が接続されている通信路110が通信速度は通信路110、130、131よりも遅く、計算機111からデータを転送したほうが高速なので、位置管理部103は計算機111を選択する。位置管理部103は、計算機111からデータ領域Bのデータを転送するために、最も転送速度が速い計算機111へ参照要求を送信する(ステップ404)。
【0066】
位置管理部103は、通信装置129、通信路130、131、120、通信装置119、入出力部115を通して、記憶媒体116からデータ領域Bのデータを読み込む(ステップ405)。位置管理部103は入出力部125を通して、読み出して取得したデータ領域Bのデータを記憶媒体126に書き込む(ステップ406)。位置管理部103は位置管理表104のデータ領域Bに対応するエントリに計算機121の識別子を追加する(ステップ407)。ステップ405で取得したデータを、プログラム本体102aに出力する(ステップ408)。その結果、ここまでの参照動作によって、各記憶媒体上のデータは、図7に示すようになる。
【0067】
なお、ステップ404から406と、ステップ407に順序の制約はなく、どちらを先に行っても、同時に行ってもよい。
【0068】
さらに、計算機121上のプログラム本体102aが、データ領域Aのデータを更新しようとすると、図9の処理が実行される。
【0069】
プログラム本体102aは、計算機111においてデータ領域Aのデータを更新したので、位置管理表104中のデータ領域Aに対応する計算機識別子は、「111」となっている。よって、ステップ502でYESとなり、データ領域Aに対応する計算機識別子データ「111」を削除する(ステップ503)。次に、位置管理表104において、更新要求のあったデータ領域A(更新データ領域)に対応する計算機識別子として、自己の計算機の計算機識別子「121」を書き込む(ステップ504)。そして、更新要求に従って、入出力部125に対して更新要求を転送し、入出力部125は、記憶媒体126に、データ領域Aのデータとして書込データを書き込む(ステップ505)。その結果、データ領域Aのデータは、計算機121の記憶媒体126に書き込まれ、計算機111の記憶媒体116上のデータ領域Aのデータは無効とされる。
【0070】
以上のように、プログラム本体102aがデータ領域Bのデータを参照し、さらに領域Aのデータを更新する(ステップ615)と、位置管理表104の内容は、603で示す状態である。
【0071】
そして、さらに、計算機121から計算機101へプログラム部102のマイグレーションが行われたとする(ステップ616)。そして、計算機101上のプログラム本体102aがデータ領域Bのデータを参照したとすると、位置管理表104において、データ領域Bに対応するエントリには計算機101の識別子も含まれているので、位置管理部103は、ステップ402でYESとなって、ステップ403において、記憶媒体106から参照すべきデータ領域Bのデータが読み出される。
【0072】
以上のように、プログラム本体102aがデータ領域Bのデータを参照する(ステップ617)と、位置管理表104の内容は、604で示す状態である。
【0073】
よって、プログラム部102が計算機101、111、121の間でマイグレーションしながら、以上のデータアクセス方法を用いることによって、データの複製が複数の計算機上に分散して多重に格納されていく。その結果、システム内の計算機間で多重化して配置されるデータが増加し、データが必要になったときに、データを格納している計算機のうち、もっとも高速にデータ通信を行える計算機からデータを取得することで効率的な参照アクセスを実現する。また、更新アクセスも、プログラムが動作する計算機が備える記憶媒体に対して行うため、高速に行うことができる。
【0074】
以上説明したように、プログラムが計算機システムを構成する計算機間で移送され、そのプログラムがデータの更新をすると、そのマイグレーション先の計算機の記憶媒体上にデータが格納される。また、マイグレーション先の計算機上のプログラムがデータの参照をすると、そのマイグレーション先の計算機の記憶媒体上にデータが複製され、かつその複製を生成するとき、分散して記憶されているデータを格納している複数の参照データ保持計算機の中から、もっとも高速にデータを転送できる計算機を選択して参照することによって、データの転送を高速に行えるので、効率的な参照アクセスを実現することができる。
【0075】
なお、以上の説明では、プログラム本体102aがデータを参照する場合について説明したが、データの先読み等の目的で、位置管理部103がデータを参照する場合に、上述した参照処理を行うようにしてもよい。
【0076】
また、上述したように、本実施の形態におけるプログラムのマイグレーションの方法は、従来のマイグレーションの方法と同様に、プログラムのコンテキストを他の計算機に移送し、マイグレーション先の計算機でプログラムの実行状態を復元する方法を用いる。その場合のコンテキストの保存や転送の手法は、どのような方法でもよく、その方法は限定されない。
【0077】
さらに、マイグレーションされるプログラムは、通常のアプリケーションプログラムでも、オペレーティングシステムのプログラム等でもよい。
【0078】
さらに、上述した説明では、プログラムによってアクセスされるデータ領域は、計算機に備えられた記憶媒体にあるとして説明したが、計算機上で動作するプログラムからはファイルとして扱われる場合もあるので、記憶媒体にはファイルも含まれるものとする。その場合は、プログラムによってアクセスされるデータ領域は、ファイル内を分割したデータ領域である。
【0079】
さらにまた、本実施の形態では、位置管理部又は位置管理表は、プログラムの一部としても説明したが、マイグレーションされるプログラムに含まれないようにしてもよい。その場合、位置管理部又は位置管理表は、マイグレーション元の計算機から、マイグレーションの対象であるプログラムとは別にマイグレーション先の計算機へ送信されるようにしてもよいし、あるいは位置管理表のみ計算機間で通信し、位置管理部は予め計算機に組み入れておいてもよい。
【0080】
また、データの参照をする場合、マイグレーション先の計算機がそのデータを他の計算機から取得するタイミングは、上述した実施の形態では、プログラムがデータを参照したときに行っているが、その取得のタイミングは、プログラムがデータを参照したとき以外でもよい。例えば、プログラムからの参照要求に先立って位置管理部が他の計算機からのデータ読み込みを行うという、いわゆるデータの先読みキャッシュ等のときでもよい。すなわち、プログラムがデータを参照するとき以外にも、データの参照動作をする前に、先読みなどのために事前にデータを参照する場合にも上述した方法を適用することができる。
【0081】
以上のように、本実施の形態によれば、プログラムのマイグレーション時に、記憶媒体上のデータを移送先の計算機の記憶媒体への複製を行う必要がないので、高速にマイグレーションを行うことができ、プログラムの停止時間を短く抑えることが可能になる。
【0082】
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウエアやソフトウエア・ルーチンに1対1には対応しない。従って、本明細書では、以上、実施の形態の各機能を有する仮想的回路ブロック(部)を想定して実施の形態を説明した。また、本実施の形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【0083】
なお、以上説明した動作を実行するプログラムは、フロッピー(登録商標)ディスク、CD−ROM等の可搬媒体や、ハードディスク等の記憶装置等に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明の計算機システムを実現することができる。
【0084】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【0085】
【発明の効果】
以上説明したように、本発明によれば、プログラムのマイグレーションが行われるシステムにおいて、データアクセス速度を低下させずに、データアクセスをすることができる計算機システムを実現することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係わる計算機システムの構成を示す構成図である。
【図2】本発明の実施の形態に係わる位置管理表の例を示す図である。
【図3】本発明の実施の形態に係わる速度管理表の例を示す図である。
【図4】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図5】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図6】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図7】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図8】本発明の実施の形態に係わる、データ参照の場合の位置管理部の処理の流れを示すフローチャートである。
【図9】本発明の実施の形態に係わる、データ更新の場合の位置管理部の処理の流れの例を示すフローチャートである。
【図10】プログラムがマイグレーションされながら、データの更新と参照を行っていくときに、位置管理表の内容がどのように変化していくかの例を説明するための図である。
【符号の説明】
100・・・計算機システム、101、111、121・・・計算機、110、120、130、131・・・通信路、106、116、126・・・記憶媒体
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a computer system, a computer device, a data access method and a program in the computer system, and more particularly to a computer system, a computer device, a data access method and a program in a computer system in which a software program is migrated among a plurality of computers. .
[0002]
[Prior art]
In a computer system including a plurality of computers that can communicate with each other, there is a migration technique for transferring a software program (hereinafter, referred to as a program) between computers.
[0003]
The program migration technology saves a context, which is the execution state of a running program, transfers the context to another computer, and restores the execution state on the transfer destination computer, so that the program can be continuously executed. Technology. The context of a program generally refers to a register value of a central processing unit (hereinafter, also referred to as a CPU), contents of a memory area used by the program, and a state of communication with the outside.
[0004]
The migration technique is used for increasing the reliability and load distribution of a computer system composed of a plurality of computers. For example, when a computer fails, a program running on the failed computer is transferred to a normal computer in the system by a migration technique, and the execution of the program is continued, thereby increasing the reliability of the system. Alternatively, when the load is concentrated on a specific computer in the system, the program on the computer on which the load is concentrated is transferred to a low-load computer in the system by the migration technology, and the system is executed by continuing the execution. Is realized.
[0005]
Various typical methods of program migration have been disclosed (for example, see Non-Patent Document 1).
[0006]
When the migration technology is used, before and after migration, a program executed on the migration destination computer may need to continuously access data on a storage medium provided in the migration destination computer. In such a case, at the time of program migration, in addition to the context of the program, the contents of the data on the storage medium are copied onto the storage medium of the computer at the transfer destination, and data access after the transfer is performed on the computer at the transfer destination. By doing so, continuous data access before and after migration becomes possible. As described above, once the content of the data on the storage medium has been copied, subsequent data access can be performed at a high speed.
[0007]
On the other hand, a network file system is often used to continuously access data on a storage medium before and after migration without duplicating data on the storage medium to a migration destination computer. A representative example of the network file system is NFS (Network File System). The NFS technology is disclosed in various documents (for example, see Non-Patent Document 2).
[0008]
When the network file system is used, it is possible to access the data on the storage medium in the same manner from any computer constituting the computer system. The network file system is a technology that enables, at the time of data access, communication with a computer storing the substance of data to obtain or update desired data.
[0009]
If a network file system is used, data on a storage medium used by a program executed on a migration source computer can be used by a migration destination computer. As described above, the data on the storage medium used by the program to be migrated is stored on the network file system, and the data on the storage medium is used for the migration at the time of the migration by using the technique of making the data visible from each computer the same. In many cases, the transfer is not performed.
[0010]
However, the form of the computer system using the network file system is based on the premise that the computers constituting the system are connected by a high-speed network. This is because when reading or writing data, network communication for reference or update occurs with the computer where the data entity is stored, so in an environment where low-speed network connections are mixed, This is because reading and writing data becomes very slow. Generally, data reading and writing performance has a great influence on the execution speed of a program.
[0011]
[Non-patent document 1]
SA Butterfield and B. J. Poppec, SA and Popec, G. J., "Network Tasking in the Lost Distributed Unix," U.S.A. Knicks Summer 84 (Usenix Summer '84), pp. 62-71 (1984)
[0012]
[Non-patent document 2]
NFS Illustrated, Callaghan, Brent, ISBN: 0-201-32570-5, Addison Wesley.
[0013]
[Problems to be solved by the invention]
However, when copying data on a storage medium during program migration, if the data to be copied is huge, network communication for data copying takes time, and as a result, the time required to transfer the program is reduced. Will increase. As a result, it is necessary to stop the program during the migration of the program, so that if the migration of the program takes a long time, there is a problem that the stop time of the program becomes longer.
[0014]
On the other hand, when using a system in which data on a storage medium is shared between computers using a network file system without duplicating data at the time of program migration, every time a program of a migration destination computer accesses data, However, there has been a problem that the speed of data access is reduced due to the occurrence of network communication with a computer that stores the actual state of data.
[0015]
Therefore, an object of the present invention is to provide a computer system that can perform data access without lowering the data access speed in a system in which program migration is performed.
[0016]
[Means for Solving the Problems]
The computer system of the present invention is included in a plurality of computers connected via a communication path, each including a storage medium, a program body, a data area accessible by the program body, and the plurality of computers having the data area. A program unit including a management table for storing computer identification information indicating a specific computer in association with a management unit, a management unit for managing the management table, and a migration function for moving the program unit. By the migration function, after moving the program unit to the first computer of the plurality of computers, when the program body performs a reference operation to the data area, the management unit, based on the management table, When the computer identification information having the data area to be referred to is obtained and the obtained computer identification information indicates a computer other than the first computer, data is obtained from the data area of the computer indicated by the obtained computer identification information. Is acquired and stored in the storage medium of the first computer, and computer identification information of the first computer is added in association with the data area of the management table.
[0017]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0018]
First, a configuration of a computer system according to the present embodiment will be described with reference to FIG. FIG. 1 is a configuration diagram showing a configuration of a computer system according to the present embodiment.
[0019]
In FIG. 1, reference numeral 100 denotes a computer system, which includes a computer 101, a computer 111, and a computer 121. Each computer is connected by a communication path 131. Reference numeral 110 denotes a communication path for connecting the computer 101 and the communication path 131, 120 denotes a communication path for connecting the computer 111 and the communication path 131, and 130 denotes a connection between the computer 121 and the communication path 131. Communication path. The communication paths are connected via a connection device (not shown).
[0020]
The computer 101 includes a program unit 102. The program unit 102 includes a program body 102a to be migrated, a location management unit 103, and a location management table 104 as described later. The computer 101 further includes an input / output unit 105, a storage medium 106 such as a hard disk, a program transmission / reception unit 107, and a communication device 109.
[0021]
The input / output unit 105 is a program for inputting and outputting data to and from the storage medium 106 in response to a command from the program unit 102. The program transmission / reception unit 107 is a program that performs migration of a program and generation of a moved or transferred program. The program transmission / reception unit 107 includes a context 108 for migration of the program unit 102, and manages the context 108. The communication device 109 performs data communication with another computer via the communication path 131.
[0022]
The computer 101 has a position management unit 103 for managing position information of data accessed by the program main unit 102a and a position management table 104, and inputs and outputs data input / output requests from the program main unit 102a through the position management unit 103. To the unit 105. The location management unit 103 is a part of the program unit 102, and manages a location management table 104 that stores location data indicating which computer has data used by the program body 102a. The location management table 104 is in a memory used by the program unit 102 and is included in the context 108.
[0023]
For example, when the program body 102a writes data to a certain data area on the storage medium 106 via the input / output unit 105, the program main unit 102a supplies the access request data to the input / output unit 105 via the position management unit 103. Then, the input / output unit 105 that has received the write request writes the data area on the storage medium 106.
[0024]
The computer 111 includes an input / output unit 115, a storage medium 116 such as a hard disk, a program transmission / reception unit 117, and a communication device 119. The input / output unit 115 is a program for inputting / outputting data to / from the storage medium 116, similarly to the input / output unit 105. The program transmission / reception unit 117 is a program that performs migration of the program unit 102 and generation of the transferred program, similarly to the program transmission / reception unit 107. The program transmission / reception unit 117 manages the context of the program unit 102. The communication device 119 performs data communication with another computer via the communication path 131, similarly to the communication device 109.
[0025]
The computer 121 includes an input / output unit 125, a storage medium 126 such as a hard disk, a program transmission / reception unit 127, and a communication device 129. The input / output unit 125 is a program for inputting / outputting data to / from the storage medium 126, similarly to the input / output unit 105. The program transmission / reception unit 127 is a program that migrates a program and generates a transferred program, similarly to the program transmission / reception unit 107. The program transmitting / receiving unit 127 manages the context of the program unit 102. The communication device 129 performs data communication with another computer via the communication path 131, similarly to the communication device 109.
[0026]
As described above, since each computer has the program transmission / reception unit, the computer system 100 has a function of migrating programs between computers. Therefore, in the computer system 100, the program main unit 102a can operate while the program unit 102 is transferred between the plurality of computers 101, 111, and 121.
[0027]
Each of the computers 101, 111, and 121 is preliminarily provided with an identifier which is unique computer identification information, and each computer can be specified by the identifier. Each computer stores computer identifier data indicating its own computer in a memory device, which is data storage means (not shown). The location management unit 103 can acquire the identifier of the computer that is executing the program unit 102. As the identifier of the computer, a host name or an IP address of the computer may be used, but any type may be used as long as it is unique for each computer.
[0028]
The position management unit 103 obtains information on an area in the storage medium 106 to which data is written by monitoring the content of the access made by the program body 102a to the input / output unit 105. The location management unit 103 stores the information of the data area accessed by the program body 102a and the identifier of the computer 101 executing the program body 102a in a location management table 104 and manages the combination.
[0029]
The position management table 104 records, as position data, correspondence between data area information indicating a data area accessed by the program body 102a and an identifier of a computer storing data of the data area. FIG. 2 is a diagram illustrating an example of the location management table 104. In the location management table 104, for each data area information indicating a data area, an identifier of a computer indicating a specific computer having the data area is recorded in an entry corresponding to the data area. In this example, the data of the area A indicates that the computer 111 has the data. Similarly, the data in the area B is included in the computers 111 and 121, and the data in the area C is included in the computer 101. The presence of the identifiers of the computers 111 and 121 in the location management table 104 of the computer 101 indicates that the program body 102a has been operating on the computers 111 and 121 in the past to update the data. The table updating method will be described later. The entry corresponding to each data area of the location management table 104, that is, the number of computer identifiers that can be recorded in the data registration area is not specified, and any number of one or more may be used. Restrictions such as leaving may be provided.
[0030]
As will be described later, the location management table 104 managed by the location management unit 103 is transferred to another computer as part of the context of the program unit 102 when the program unit 102 is transferred to another computer.
[0031]
Ethernet (R), wireless LAN, or the like may be used as the communication paths 110, 120, 130, and 131, respectively, but any type may be used as long as the computers can communicate with each other. Information on the communication speed of each communication path is held in each computer, for example, as tabular data as shown in FIG. FIG. 3 is a diagram illustrating an example of a speed management table that records the speed of each communication path. In this example, the speeds of the communication paths 131, 120, and 130 are high-speed communication paths of 100 Mbps, and the speed of the communication path 110 is a low-speed communication path of 10 Mbps. By referring to this speed management table, each computer has a low communication speed of 10 Mbps between the computer 101 and the computer 111 and between the computer 101 and the computer 121, and has a low communication speed between the computer 111 and the computer 121. It can be determined that the speed is as high as 100 Mbps. The management method of this table is not particularly limited as long as each computer can refer to this table.
[0032]
In the present embodiment, there is no particular limitation on the method of migrating the program. The migration process can be realized by transferring the register value of the CPU, which is the execution context of the program, and the content of the memory used by the program between the computers using the same method as the conventional migration. The description of is omitted. In addition, the programs can be mutually migrated among the plurality of computers 101, 111, and 121 using the program transmitting / receiving units of the computers 111 and 121. However, since the migration can be performed in the same manner as in the related art, the migration processing can be performed. Description is omitted.
[0033]
First, according to the present embodiment, in the computer system 100 of FIG. 1, when a program is transferred, how the data in the data area accessed by the program is distributed and duplicated among a plurality of computers. A description will be given of a specific example of how the data is stored.
[0034]
FIGS. 4 to 7 are diagrams for explaining an example of how data is copied between computers when a program is transferred.
[0035]
As shown in FIG. 4, in an initial state, the program unit 102 operates on the computer 101, and the data in the data areas A, B, and C are stored in a storage medium 106 provided in the computer 101, and the program unit 102 Is accessing data areas A, B, and C in the storage medium 106. Here, in the location management table 104 included in the program unit 102, it is assumed that the computer identifiers corresponding to the data areas A, B, and C are each only "101".
[0036]
It is assumed that the program unit 102 is transferred from the initial state of FIG. 4 and migrated to the computer 111, and the program unit 102 is continuously executed in the computer 111 of the migration destination. When the program unit 102 operating on the computer 111 accesses to write or update the data in the data area A during its execution, the update data is written to the recording medium 106 as shown in FIG. The data is stored in the recording medium 116 as the data of the (area). Therefore, the program unit 102 operating on the computer 111 accesses the recording medium 116 when accessing the data area A thereafter. At this time, as shown in FIG. 5, the data of the data area A exists only on the recording medium 116 of the computer 111, and the data of the data area A recorded on the recording medium 106 of the computer 101 of the migration source is invalidated. You.
[0037]
Therefore, the data update operation by the migrated program unit 102 can be performed at high speed because the data update operation is performed on the storage medium of the computer on which the program unit 102 operates and does not involve communication processing via a communication path.
[0038]
Then, assuming that the program unit 102 of the migrated computer 111 accesses the data in the data area B by simply referring to the data in the data area B, that is, performing an access to simply read the data without updating, the computer 101 (the reference data holding computer) sends the data of the recording medium 106 The data in the data area B (reference data area) is obtained and copied to the recording medium 116 of the computer 111 as shown in FIG. Therefore, after that, when the program unit 102 operating on the computer 111 refers to the data in the data area B, the program unit 102 accesses the recording medium 116 and does not perform the communication process via the communication path. Can be done at high speed.
[0039]
Next, it is assumed that the program unit 102 of the computer 111 has been transferred to the computer 121. Then, when the program unit 102 of the computer 121 refers to the data in the data area B, as in FIG. 6, the computer 121 sends the data of the data area B (reference data area) from the computer 111 faster than the communication speed with the computer 101. The data is acquired, and is copied to the recording medium 126 of the computer 121 as the data of the reference data area as shown in FIG. Although the computer 101 and the computer 111 are both reference data holding computers having data in the data area B, the communication speed of the communication path 110 is 10 Mbps and the communication speed of the communication path 120 is 100 Mbps. This is because data transfer from the computer 111 is more efficient than data transfer from the computer 101. Thereafter, when the program unit 102 of the computer 121 refers to the data in the data area B, it accesses the recording medium 126.
[0040]
As described above, when the data in the data area on the storage medium accessed by the program is updated by the program operating on the migration destination computer, the data in the updated data area is stored in the storage medium of the migration destination computer. The data in the corresponding data area of the migration source computer is invalidated. When the data in the data area on the storage medium accessed by the program is referred to by the program operating on the migration destination computer, the data in the reference data area is transferred to the migration destination computer and the copy data is Generated.
[0041]
By performing such an operation, the data in the data area on the storage medium accessed by the migrated program is distributed and stored multiplexed on a plurality of computers. Further, as will be described later, in the case of a data reference operation by a program, since the data in the reference data area is multiplexed and stored in a plurality of computers (reference data holding computers), a plurality of reference data holding computers By transferring data in the reference data area from a computer capable of transferring data at the highest speed, efficient data access can be performed.
[0042]
Next, as shown in FIGS. 4 to 7 described above, the processes of the data update operation and the data reference operation will be described with reference to FIGS. This will be described with reference to FIG. FIG. 8 is a flowchart illustrating an example of a processing flow of the position management unit 103 in the case of data reference. FIG. 9 is a flowchart illustrating an example of a processing flow of the position management unit 103 in the case of updating data. FIG. 10 is a diagram for explaining an example of how the contents of the location management table change when updating and referring to data while the program is being migrated.
[0043]
In the state of FIG. 4, in the location management table of FIG. 2, the computer identifiers of the areas A, B, and C are all “101”, and there is no other computer identifier other than “101”. This is because the program unit 102 performs data access to the areas A, B, and C of the recording medium 106 before the program unit 102 is transferred to the computer 111.
[0044]
First, the flow of processing performed by the position management unit 103 when the program unit 102 operating on the computer 101 refers to and updates data in the data area on the storage medium 106 will be described. First, the data reference operation process will be described with reference to FIG.
[0045]
When the program main body 102a operating on the computer 101 issues a request for referring to the data in the data area B to the position management unit 103, the position management unit 103 receives the reference request (step 401). Next, the location management unit 103 determines whether or not the data area referred to in the reference request (reference data area) is in its own computer based on the location management table 104 (step 402). In other words, the location management unit 103 checks whether the identifier of the computer 101 exists in the entry corresponding to the data area B in the location management table 104. In the case of FIG. 4, since the identifier of the computer 101 is in the entry corresponding to the data area B in the location management table 104, that is, the computer 101 is a computer having the data of the data area B (a reference data holding computer). YES, the location management unit 103 reads the data from its own storage medium 106 via the input / output unit 105 (step 403). Then, the position management unit 103 supplies the data received from the input / output unit 105 to the program main body 102a (Step 408).
[0046]
Next, processing of a data write operation, that is, an update operation, will be described with reference to FIG. When the program unit 102 operating on the computer 101 issues a write request, that is, an update request together with write data, the location management unit 103 receives the update request (step 501). Based on the location management table 104, the location management unit 103 determines whether the data area requested to be updated (updated data area) belongs to a computer other than itself (step 502). For example, when the program body 102a updates the data in the data area A, the location management unit 103 checks whether an entry of the computer other than the computer 101 exists in the entry corresponding to the area A in the location management table 104.
[0047]
In the case of FIG. 4, since the identifier of the computer other than the computer 101 does not exist in the entry of the data area A, the process proceeds to step 505, and the write data is written as the data of the data area A in the storage medium 106 of the own device ( Step 505).
[0048]
In the case of FIG. 4, the computer identifiers corresponding to the respective data areas in the location management table 104 are all “101”, so in the update operation on the data area with the computer identifier data of “101”, the processing is as follows. NO in step 502, the position management unit 103 transfers the update request to the input / output unit 105, and the input / output unit 105 writes the write data of the data area to be updated in the storage medium 106 (step 505). ).
[0049]
The above is the flow of processing of the location management unit 103 when the program unit 102 operating on the computer 101 refers to and updates data in the initial state described above. Steps 502 to 504 and step 505 are not limited in the order of processing, and either step may be performed first or may be performed simultaneously.
[0050]
When the program unit 102 operates on the computer 101 and accesses data in the storage medium 106 of the computer 101, the state is the state of step 611 in FIG. It is the state shown.
[0051]
Next, it is assumed that the migration of the program unit 102 from the computer 101 to the computer 111 has been performed as shown in step 612 of FIG. At this time, since the program unit 102 is transferred to the computer 111, the location management unit 103 and the location management table 104 are also transferred to the computer 111 together. The transferred program unit 102 is restored and re-executed by the computer 111.
[0052]
After the migration of the program 102, when the program unit 102 is re-executed, the program main body 102a accesses the input / output unit via the position management unit 103. At this time, the position management unit 103 8 and the processing of FIG. 9 are executed.
[0053]
First, the flow of processing of the position management unit 103 when the program body 102a operating on the computer 111 updates data in the data area A will be described. In FIG. 9, when the program main body 102a issues a data write request together with write data, that is, an update request, the position management unit 103 receives the update request (step 501). Based on the location management table 104, the location management unit 103 determines whether the data area requested to be updated (updated data area) belongs to a computer other than its own, that is, whether it exists outside the recording medium 116 of the migration destination computer 111. Is determined (step 502).
[0054]
If the program unit 102 has been transferred from the computer 101 and has not yet accessed the data in each data area, the computer identifiers corresponding to each data area in the location management table 104 are all "101". I have. Therefore, YES is obtained in step 502, and the computer identifier data "101", which is a computer identifier other than the self, corresponding to the data area A is deleted (step 503), and the data on the storage medium 106 is invalidated. Next, in the location management table 104, the computer identifier “111” of the own computer is written as the computer identifier corresponding to the data area A for which the update was requested (step 504). Then, the update request is transferred to the input / output unit 115 in accordance with the update request, and the input / output unit 115 writes the write data of the data area A to its own storage medium 115 (step 505).
[0055]
Next, a processing flow of the position management unit 103 when the program main body 102a operating on the computer 111 refers to data in the data area B will be described.
[0056]
When the program body 102a issues a request for referring to the data in the data area B to the position management unit 103, the position management unit 103 receives the request for reference (step 401). The location management unit 103 checks whether the identifier of the computer 111 exists in the entry corresponding to the data area B (reference data area) of the location management table 104 (Step 402). Regarding the data area B related to the reference request, the identifier of the computer 111, which is its own computer, does not yet exist in the location management table 104, and instead the identifier of the computer 101 exists. , And proceed to step 404.
[0057]
In step 404, the identifier of the computer existing in the entry of the data area B, which is the reference data area, is checked, and if there are a plurality of identifiers, a computer capable of transferring data at the highest speed with the computer 111 is selected from the identifiers. And outputs a reference request to the computer. Here, since the identifier of only the computer 101 exists in the entry of the data area B of the location management table 104, the computer 101 (reference data holding computer) is selected because there is no other way than to transfer data from the computer 101. . The position management unit 103 reads the data in the data area B from the storage medium 106 via the communication device 119, the communication paths 120, 131, 110, the communication device 109, and the input / output unit 105 (Step 405). The position management unit 103 writes the acquired data in the data area B to the storage medium 116 via the input / output unit 115 (step 406). The location management unit 103 adds the identifier of the computer 111, which is its own computer identifier, to the entry corresponding to the data area B in the location management table 104 (step 407). Then, the data acquired in step 405 is supplied to the program main body 102a (step 408).
[0058]
Therefore, after the program unit 102 is transferred from the computer 101 to the computer 111, when the migration destination computer 111 updates the data, the updated data is stored in the storage medium 116 of the computer 111, and at the same time, The data on the medium 106 is invalidated, and when the migration destination computer 111 performs data reference, a copy of the referenced data is stored in the storage medium 116 (see FIG. 6).
[0059]
As described above, in the migration destination computer 111, when the program body 102a refers to the data on the storage medium 116 via the input / output unit 115, the location management unit 103 monitors the access content to the input / output unit 115. Therefore, the computer in which the data in the referenced data area is stored is searched using the position management table 104 managed by the position management unit 103. Next, a computer that can transfer data at the highest speed to the computer 111 that is currently executing the program is selected from a list of computers (reference data storage computers) that hold the data found by the search. Read data from the storage medium.
[0060]
Further, when the program body 102a acquires the data from another computer in order to refer to the data in the data area, the data is copied to the storage medium 116 of the computer 111 executing the program, and the location management unit The identifier of the computer 111 is added to the entry corresponding to the referenced data area in the location management table 104 managed by the management server 103. As a result, the data is distributed and multiplexed and stored on a plurality of computers constituting the system, and when the data area is subsequently referred to, the storage medium of the computer 111 can be used as a reference destination.
[0061]
As described above, when the program body 102a operating on the computer 111 updates the data in the data area A and further refers to the data in the data area B (step 613), the contents of the location management table 104 are indicated by 602. State.
[0062]
Further, it is assumed that the program unit 102 has been transferred from the computer 111 to the computer 121 (step 614). Since the program unit 102 is transferred to the computer 121, the position management unit 103 and the position management table 104 are also transferred to the computer 121 together. The transferred program unit 102 is restored and re-executed in the computer 121.
[0063]
After the migration of the program unit 102, when the program unit 102 is re-executed, the program main unit 102a accesses the input / output unit 125 via the location management unit 103 in the computer 121.
[0064]
First, the flow of processing of the position management unit 103 when the program body 102a operating on the computer 121 refers to the data of the area B will be described. When the program body 102a refers to data via the position management unit 103, the program body 102a issues a request to the position management unit 103 to refer to data in the data area B. The position management unit 103 receives the reference request (Step 401). The location management unit 103 checks whether or not the identifier of the computer 121 exists in the entry corresponding to the data area B in the location management table 104 (Step 402). At this time, since the identifier of the computer 121 does not yet exist in the entry of the data area B of the location management table 104, the answer is NO in step 402, and the computer that can transfer data to the computer 121 at the highest speed (see A data holding computer) is extracted based on the data in the speed management table of FIG. 3, and a reference request is transmitted to the computer having the highest transfer speed (step 404).
[0065]
According to the location management table 104, the computer identifier corresponding to the data area B is an identifier of the computer 101 and the computer 111 (both reference data holding computers). You have to be transferred. Therefore, the position management unit 103 determines, based on the speed data of each communication path in FIG. 3, which of the computer 101 and the computer 111 has received the transfer and can refer to the data earlier. For example, since the computer 121 and the computer 101 pass through the communication paths 130, 131, and 110, the speed of the slowest communication path 110 is 10 Mbps. On the other hand, since the computer 121 and the computer 111 pass through the communication paths 130, 131, and 120, the communication speed is 100 Mbps because they are all the same communication speed. Therefore, the communication speed of the communication path 110 to which the computer 101 is connected is lower than that of the communication paths 110, 130, and 131, and the data transfer from the computer 111 is faster. Therefore, the position management unit 103 selects the computer 111. The position management unit 103 transmits a reference request to the computer 111 having the highest transfer speed in order to transfer the data in the data area B from the computer 111 (step 404).
[0066]
The position management unit 103 reads the data in the data area B from the storage medium 116 through the communication device 129, the communication paths 130, 131, 120, the communication device 119, and the input / output unit 115 (Step 405). The position management unit 103 writes the read and acquired data in the data area B to the storage medium 126 via the input / output unit 125 (step 406). The location management unit 103 adds the identifier of the computer 121 to the entry corresponding to the data area B in the location management table 104 (Step 407). The data obtained in step 405 is output to the program main body 102a (step 408). As a result, the data on each storage medium is as shown in FIG. 7 by the above-described reference operation.
[0067]
Note that there is no restriction on the order of steps 404 to 406 and step 407, and either one may be performed first or the two may be performed simultaneously.
[0068]
Further, when the program main body 102a on the computer 121 attempts to update the data in the data area A, the processing in FIG. 9 is executed.
[0069]
Since the program main body 102a has updated the data in the data area A in the computer 111, the computer identifier corresponding to the data area A in the location management table 104 is “111”. Therefore, YES is determined in Step 502, and the computer identifier data “111” corresponding to the data area A is deleted (Step 503). Next, in the location management table 104, the computer identifier “121” of its own computer is written as the computer identifier corresponding to the data area A (update data area) for which the update was requested (step 504). Then, the update request is transferred to the input / output unit 125 in accordance with the update request, and the input / output unit 125 writes the write data to the storage medium 126 as the data of the data area A (step 505). As a result, the data in the data area A is written to the storage medium 126 of the computer 121, and the data in the data area A on the storage medium 116 of the computer 111 is invalidated.
[0070]
As described above, when the program body 102a refers to the data in the data area B and further updates the data in the area A (step 615), the contents of the position management table 104 are as shown by 603.
[0071]
Then, it is further assumed that the migration of the program unit 102 from the computer 121 to the computer 101 has been performed (step 616). If the program main body 102a on the computer 101 refers to the data in the data area B, the entry corresponding to the data area B in the location management table 104 includes the identifier of the computer 101. In step 103, the result of step 402 is YES, and in step 403, the data of the data area B to be referred to is read from the storage medium 106.
[0072]
As described above, when the program body 102a refers to the data in the data area B (step 617), the contents of the position management table 104 are as shown by 604.
[0073]
Therefore, by using the above data access method while the program unit 102 migrates between the computers 101, 111, and 121, data copies are distributed and stored in a multiplex manner on a plurality of computers. As a result, the amount of data multiplexed and arranged between the computers in the system increases, and when the data becomes necessary, the data from the computer that stores the data can be transferred from the computer that can perform the data communication at the highest speed. Realize efficient reference access by acquiring. Update access is also performed to a storage medium included in the computer on which the program operates, so that update access can be performed at high speed.
[0074]
As described above, the program is transferred between the computers constituting the computer system, and when the program updates the data, the data is stored on the storage medium of the migration destination computer. When a program on the migration destination computer refers to the data, the data is copied on the storage medium of the migration destination computer, and when the copy is generated, the data stored in a distributed manner is stored. By selecting and referencing a computer capable of transferring data at the highest speed from among a plurality of reference data holding computers, data transfer can be performed at a high speed, so that efficient reference access can be realized.
[0075]
In the above description, the case where the program body 102a refers to the data has been described. However, when the position management unit 103 refers to the data for the purpose of pre-reading the data, the above-described reference processing is performed. Is also good.
[0076]
As described above, the program migration method according to the present embodiment transfers the program context to another computer and restores the execution state of the program on the migration destination computer, similarly to the conventional migration method. Is used. In this case, the method of storing and transferring the context may be any method, and the method is not limited.
[0077]
Further, the program to be migrated may be a normal application program, an operating system program, or the like.
[0078]
Further, in the above description, the data area accessed by the program is described as being in the storage medium provided in the computer. However, since the program operating on the computer may be treated as a file, the data area may be stored in the storage medium. Include files. In that case, the data area accessed by the program is a data area obtained by dividing the file.
[0079]
Furthermore, in the present embodiment, the position management unit or the position management table has been described as a part of the program, but may not be included in the program to be migrated. In this case, the location management unit or location management table may be transmitted from the migration source computer to the migration destination computer separately from the migration target program, or only the location management table may be transmitted between the computers. The communication may be performed, and the position management unit may be incorporated in the computer in advance.
[0080]
In the case of referring to data, the timing at which the migration destination computer acquires the data from another computer is performed when the program refers to the data in the above-described embodiment. May be other than when the program refers to the data. For example, it may be a so-called data read-ahead cache in which the location management unit reads data from another computer prior to a reference request from a program. That is, the above-described method can be applied not only when the program refers to the data but also when referring to the data in advance for pre-reading or the like before performing the data referencing operation.
[0081]
As described above, according to the present embodiment, at the time of program migration, it is not necessary to copy data on the storage medium to the storage medium of the transfer destination computer, so migration can be performed at high speed. It is possible to keep the program stop time short.
[0082]
Each “unit” in the present specification is a conceptual one corresponding to each function of the embodiment, and does not necessarily correspond one-to-one to a specific hardware or software routine. Therefore, in this specification, the embodiments have been described above assuming virtual circuit blocks (units) having the functions of the embodiments. Also, the steps of each procedure in the present embodiment may be executed in a different order, and may be executed at the same time, or may be executed in a different order for each execution, as long as they do not violate the nature.
[0083]
The program for performing the above-described operations is recorded in whole or in part or in a portable medium such as a floppy (registered trademark) disk or a CD-ROM, or a storage device such as a hard disk. I have. The program is read by the computer, and all or a part of the operation is executed. Alternatively, the whole or a part of the program can be distributed or provided via a communication network. The user can easily realize the computer system of the present invention by downloading the program via a communication network and installing the program on a computer, or installing the program on a computer from a recording medium.
[0084]
The present invention is not limited to the above-described embodiment, and various changes and modifications can be made without departing from the spirit of the present invention.
[0085]
【The invention's effect】
As described above, according to the present invention, in a system in which a program is migrated, a computer system capable of performing data access without lowering the data access speed can be realized.
[Brief description of the drawings]
FIG. 1 is a configuration diagram showing a configuration of a computer system according to an embodiment of the present invention.
FIG. 2 is a diagram showing an example of a location management table according to the embodiment of the present invention.
FIG. 3 is a diagram showing an example of a speed management table according to the embodiment of the present invention.
FIG. 4 is a diagram for explaining an example of how data is copied between computers when a program is transferred.
FIG. 5 is a diagram for explaining an example of how data is copied between computers when a program is transferred.
FIG. 6 is a diagram for explaining an example of how data is copied between computers when a program is transferred.
FIG. 7 is a diagram for explaining an example of how data is copied between computers when a program is transferred.
FIG. 8 is a flowchart showing a processing flow of a position management unit in the case of data reference according to the embodiment of the present invention.
FIG. 9 is a flowchart illustrating an example of a processing flow of a position management unit in the case of data update according to the embodiment of the present invention.
FIG. 10 is a diagram for explaining an example of how the contents of the location management table change when updating and referencing data while a program is being migrated.
[Explanation of symbols]
100: Computer system, 101, 111, 121: Computer, 110, 120, 130, 131: Communication channel, 106, 116, 126: Storage medium

Claims (16)

通信路を介して接続され、それぞれ記憶媒体を備える複数の計算機と、プログラム本体、該プログラム本体がアクセス可能なデータ領域とそのデータ領域を有する前記複数の計算機に含まれる特定の計算機を示す計算機識別情報とを対応付けて記憶する管理表、及び該管理表を管理する管理部とを備えるプログラム部と、前記プログラム部の移動を行うマイグレーション機能とを備えた計算機システムにおいて、
前記マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理部は、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の計算機を示すときは、得られた計算機識別情報が示す計算機の前記データ領域からデータを取得して前記第一の計算機の記憶媒体に記憶すると共に、前記管理表の前記データ領域に対応させて前記第一の計算機の計算機識別情報を追加することを特徴とする計算機システム。
A plurality of computers connected via a communication path, each including a storage medium, a program body, a data area accessible by the program body, and a computer identification indicating a specific computer included in the plurality of computers having the data area In a computer system including a management table that stores information in association with information, and a management unit that manages the management table, and a migration function that moves the program unit,
By the migration function, after moving the program unit to the first computer of the plurality of computers, when the program body performs a reference operation to the data area, the management unit, in the management table, Obtaining computer identification information having the data area to be referred to based on, when the obtained computer identification information indicates a computer other than the first computer, from the data area of the computer indicated by the obtained computer identification information A computer system, wherein data is acquired and stored in a storage medium of the first computer, and computer identification information of the first computer is added in correspondence with the data area of the management table.
前記プログラム本体が前記第一の計算機の記憶媒体の前記データ領域のデータに対して更新動作を行う場合に、前記管理部は、
前記第一の計算機の記憶媒体の前記データ領域の内容を更新するとともに、
前記管理表の前記データ領域に対応する計算機識別情報を前記第一の計算機の計算機識別情報に書き換えることを特徴とする請求項1記載の計算機システム。
When the program body performs an update operation on data in the data area of the storage medium of the first computer, the management unit includes:
While updating the contents of the data area of the storage medium of the first computer,
2. The computer system according to claim 1, wherein the computer identification information corresponding to the data area in the management table is rewritten to the computer identification information of the first computer.
前記管理表の前記計算機識別情報の書き換えは、更新される前記データ領域に対応する前記管理表の前記計算機識別情報として記憶されている全ての前記計算機識別情報を削除し、前記第一の計算機の計算機識別情報を書き込むことを特徴とする請求項2に記載の計算機システム。Rewriting of the computer identification information of the management table deletes all the computer identification information stored as the computer identification information of the management table corresponding to the data area to be updated, and updates the computer identification information of the first computer. 3. The computer system according to claim 2, wherein the computer identification information is written. 前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理部は、
前記管理表に基づいて、参照する前記データ領域に対応する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の複数の計算機を示すときは、前記通信路を介する前記第一の計算機との通信速度が最も速い計算機から前記データ領域のデータを取得することを特徴とする請求項1から請求項3のいずれかに記載の計算機システム。
When the program body performs a reference operation on the data area, the management unit includes:
Based on the management table, obtain computer identification information corresponding to the data area to be referenced, and when the obtained computer identification information indicates a plurality of computers other than the first computer, the The computer system according to any one of claims 1 to 3, wherein the data in the data area is acquired from a computer having the fastest communication speed with the first computer.
通信路を介して他の計算機装置と接続される計算機装置であって、
自己の計算機装置を示す計算機識別情報を格納する格納手段と、
データを記憶する記憶媒体と、
マイグレーション手段と、
実行されていた前記他の計算機装置から前記マイグレーション手段によって移動されたものであって、プログラム本体、該プログラム本体がアクセス可能なデータ領域を示すデータ領域情報と前記データ領域を有する計算機を示す計算機識別情報とを対応付けて記憶する管理表、及び該管理表を管理する管理部を有するプログラム部とを備え、
前記マイグレーション手段によって移動された前記プログラム部の前記プログラム本体がデータの参照動作を行う場合に、
前記管理部は、前記管理表に基いて参照するデータを有する計算機を示す計算機識別情報を得て、該得られた計算機識別情報が前記他の計算機装置を示すときは、該得られた計算機識別情報が示す前記他の計算機装置の前記データ領域からデータを取得して前記記憶媒体に記憶すると共に、前記管理表の前記データ領域を示すデータ領域情報に対応させて前記格納手段に格納された前記計算機識別情報を追加することを特徴とする計算機装置。
A computer device connected to another computer device via a communication path,
Storage means for storing computer identification information indicating its own computer device,
A storage medium for storing data,
Migration means;
A program main body, data area information indicating a data area accessible by the program main body, and computer identification indicating a computer having the data area, the program main body being moved by the migration means from the other computer apparatus being executed. Comprising a management table that stores information in association with information, and a program unit having a management unit that manages the management table;
When the program body of the program unit moved by the migration unit performs a data reference operation,
The management unit obtains computer identification information indicating a computer having data to be referred to based on the management table, and when the obtained computer identification information indicates the other computer device, obtains the obtained computer identification information. Acquiring data from the data area of the other computer device indicated by the information and storing the data in the storage medium, and storing the data stored in the storage unit in association with the data area information indicating the data area of the management table. A computer device characterized by adding computer identification information.
前記マイグレーション手段によって移動された前記プログラム部の前記プログラム本体がデータの更新動作を行う場合に、前記管理部は、
前記計算機装置の前記記憶媒体に前記更新動作に係るデータを記憶するとともに、前記管理表の前記データ領域を示すデータ領域情報に対応する計算機識別情報を前記計算機装置の計算機識別情報に書き換えることを特徴とする請求項5記載の計算機装置。
When the program body of the program unit moved by the migration unit performs a data update operation, the management unit includes:
Storing the data relating to the update operation in the storage medium of the computer device, and rewriting computer identification information corresponding to data area information indicating the data area of the management table to computer identification information of the computer device. The computer device according to claim 5, wherein
前記管理表の前記計算機識別情報の書き換えは、更新される前記データ領域を示すデータ領域情報に対応する前記管理表の前記計算機識別子として記憶されている全ての前記計算機識別情報を削除し、前記計算機装置の計算機識別情報を書き込むことを特徴とする請求項6に記載の計算機装置。The rewriting of the computer identification information in the management table deletes all the computer identification information stored as the computer identifier in the management table corresponding to the data area information indicating the data area to be updated. 7. The computer device according to claim 6, wherein the computer identification information of the device is written. 前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理部は、
前記管理表に基づいて、参照する前記データ領域に対応する計算機識別情報を得て、得られた計算機識別情報が前記計算機以外の複数の計算機を示すときは、前記通信路を介する前記計算機装置との通信速度が最も速い計算機から前記データ領域のデータを取得することを特徴とする請求項5から請求項7のいずれかに記載の計算機装置。
When the program body performs a reference operation on the data area, the management unit includes:
Based on the management table, obtain the computer identification information corresponding to the data area to be referred to, and when the obtained computer identification information indicates a plurality of computers other than the computer, the computer device via the communication path 8. The computer device according to claim 5, wherein data of the data area is acquired from a computer having the highest communication speed.
通信路を介して接続され、それぞれ記憶媒体と固有の計算機識別情報とを備える複数の計算機と、プログラム本体、及び該プログラム本体がアクセス可能なデータ領域を示すデータ領域情報と前記データ領域を有する前記複数の計算機に含まれる特定の計算機を示す計算機識別情報とを対応付けて記憶する管理表とを備えるプログラム部と、前記プログラム部の移動を行うマイグレーション機能とを備えた計算機システムにおけるデータアクセス方法であって、
前記マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得ることによって、参照する前記データ領域を有する計算機を前記複数の計算機の中から検索し、
検索された計算機が前記第一の計算機以外であるときは、得られた計算機識別情報が示す計算機の記憶媒体の前記データ領域からデータを取得して前記第一の計算機の前記記憶媒体に記憶すると共に、前記管理表の前記データ領域情報に対応させて前記第一の計算機の計算機識別情報を追加することを特徴とする計算機システムにおけるデータアクセス方法。
A plurality of computers connected via a communication path, each including a storage medium and unique computer identification information, a program body, and data area information indicating a data area accessible by the program body and the data area A data access method in a computer system having a program unit including a management table for storing computer identification information indicating a specific computer included in a plurality of computers in association with each other, and a migration function for moving the program unit So,
By the migration function, after the program unit moves to the first computer of the plurality of computers, when the program body performs a reference operation on the data area, the program unit refers to the data area based on the management table. By obtaining computer identification information having a data area, a computer having the data area to be searched is searched from among the plurality of computers,
When the searched computer is other than the first computer, data is obtained from the data area of the storage medium of the computer indicated by the obtained computer identification information and stored in the storage medium of the first computer. A data access method in the computer system, wherein computer identification information of the first computer is added in correspondence with the data area information of the management table.
前記プログラム本体が前記データ領域のデータに対して更新動作を行う場合に、前記第一の計算機の記憶媒体に前記更新動作に係るデータを記憶するとともに、前記管理表の前記データ領域を示すデータ領域情報に対応する計算機識別情報を前記第一の計算機の計算機識別情報に書き換えることを特徴とする請求項9に記載の計算機システムにおけるデータアクセス方法。When the program body performs an update operation on the data in the data area, the data relating to the update operation is stored in a storage medium of the first computer, and a data area indicating the data area in the management table is stored. 10. The data access method according to claim 9, wherein the computer identification information corresponding to the information is rewritten to the computer identification information of the first computer. 前記管理表の前記計算機識別情報の書き換えは、更新される前記データ領域を示すデータ領域情報に対応する前記管理表の前記計算機識別情報として記憶されている全ての前記計算機識別情報を削除し、前記第一の計算機の計算機識別情報を書き込むことを特徴とする請求項10に記載の計算機システムにおけるデータアクセス方法。Rewriting of the computer identification information of the management table deletes all the computer identification information stored as the computer identification information of the management table corresponding to the data area information indicating the data area to be updated, 11. The data access method in a computer system according to claim 10, wherein the computer identification information of the first computer is written. 前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理表に基づいて、参照する前記データ領域に対応する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の複数の計算機を示すときは、前記通信路を介する前記第一の計算機との通信速度が最も速い計算機から前記データ領域のデータを取得することを特徴とする請求項9から請求項11のいずれかに記載の計算機システムにおけるデータアクセス方法。When the program body performs a reference operation on the data area, computer identification information corresponding to the data area to be referenced is obtained based on the management table, and the obtained computer identification information is the first data. 12. When a plurality of computers other than the computer are indicated, the data of the data area is acquired from the computer having the fastest communication speed with the first computer via the communication path. A data access method in the computer system according to any one of the above. 通信路を介して接続されそれぞれ記憶媒体と固有の計算機識別情報とを備える複数の計算機と、マイグレーション機能とを備えた計算機システムにおいて、該マイグレーション機能によって前記複数の計算機の一計算機に移動され該一計算機上で動作するプログラムであって、
所定の処理を行うプログラム本体と、
該プログラム本体がアクセス可能なデータ領域を示すデータ領域情報とそのデータ領域を有する前記複数の計算機に含まれる特定の計算機を示す計算機識別情報とを対応付けて記憶する管理表と、該管理表を管理する管理部とを備え、
前記管理部に含まれるものであって、
前記マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得ることによって、参照する前記データ領域を有する計算機を前記複数の計算機の中から検索する機能と、
検索された計算機が前記第一の計算機以外であるときは、得られた計算機識別情報が示す計算機の記憶媒体の前記データ領域からデータを取得して前記第一の計算機の前記記憶媒体に記憶すると共に、前記管理表の前記データ領域情報に対応させて前記第一の計算機の計算機識別情報を追加する機能とを、
前記第一の計算機装置で実行されるようにしたプログラム。
In a computer system having a migration function and a plurality of computers connected via a communication path and each having a storage medium and unique computer identification information, the plurality of computers are moved to one of the computers by the migration function. A program that runs on a computer,
A program body for performing predetermined processing;
A management table that stores data area information indicating a data area accessible by the program body and computer identification information indicating a specific computer included in the plurality of computers having the data area in association with each other; With a management unit to manage,
Being included in the management unit,
By the migration function, after the program unit moves to the first computer of the plurality of computers, when the program body performs a reference operation on the data area, the program unit refers to the data area based on the management table. A function of searching for a computer having the data area to be referred to from among the plurality of computers by obtaining computer identification information having a data area;
When the searched computer is other than the first computer, data is obtained from the data area of the storage medium of the computer indicated by the obtained computer identification information and stored in the storage medium of the first computer. A function to add computer identification information of the first computer in association with the data area information of the management table,
A program executed by the first computer device.
前記プログラム本体が前記データ領域のデータに対して更新動作を行う場合に、前記第一の計算機の記憶媒体に前記更新動作に係るデータを記憶するとともに、前記管理表の前記データ領域を示すデータ領域情報に対応する計算機識別情報を前記第一の計算機の計算機識別情報に書き換える機能とをさらにコンピュータに実現させることを特徴とする請求項13記載のプログラム。When the program body performs an update operation on the data in the data area, the data relating to the update operation is stored in a storage medium of the first computer, and a data area indicating the data area in the management table is stored. 14. The program according to claim 13, further comprising causing a computer to rewrite the computer identification information corresponding to the information with the computer identification information of the first computer. 前記管理表の前記計算機識別情報の書き換えは、更新される前記データ領域を示すデータ領域情報に対応する前記管理表の前記計算機識別情報として記憶されている全ての前記計算機識別情報を削除し、前記第一の計算機の計算機識別情報を書き込む機能とを、さらにコンピュータに実現させることを特徴とする請求項14に記載のプログラム。Rewriting of the computer identification information of the management table deletes all the computer identification information stored as the computer identification information of the management table corresponding to the data area information indicating the data area to be updated, 15. The program according to claim 14, wherein the computer further has a function of writing computer identification information of the first computer. 前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理表に基づいて、参照する前記データ領域に対応する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の複数の計算機を示すときは、前記通信路を介する前記第一の計算機との通信速度が最も速い計算機から前記データ領域のデータを取得する機能とを、さらに前記コンピュータに実現させることを特徴とする請求項13から請求項15のいずれかに記載のプログラム。When the program body performs a reference operation on the data area, computer identification information corresponding to the data area to be referenced is obtained based on the management table, and the obtained computer identification information is the first data. When showing a plurality of computers other than the computer, a function of obtaining the data in the data area from the computer having the fastest communication speed with the first computer via the communication path, may further be realized by the computer. The program according to any one of claims 13 to 15, characterized by:
JP2003037019A 2003-02-14 2003-02-14 Computer system, computer apparatus, data access method and program in computer system Expired - Fee Related JP3848268B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003037019A JP3848268B2 (en) 2003-02-14 2003-02-14 Computer system, computer apparatus, data access method and program in computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003037019A JP3848268B2 (en) 2003-02-14 2003-02-14 Computer system, computer apparatus, data access method and program in computer system

Publications (2)

Publication Number Publication Date
JP2004246702A true JP2004246702A (en) 2004-09-02
JP3848268B2 JP3848268B2 (en) 2006-11-22

Family

ID=33021955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003037019A Expired - Fee Related JP3848268B2 (en) 2003-02-14 2003-02-14 Computer system, computer apparatus, data access method and program in computer system

Country Status (1)

Country Link
JP (1) JP3848268B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1703359A1 (en) 2005-03-18 2006-09-20 Fujitsu Limited Blade computer with power backup capacitor
JP2007095065A (en) * 2005-09-27 2007-04-12 Sony Computer Entertainment Inc Technique for controlling cell processors over network
JP2007095066A (en) * 2005-09-27 2007-04-12 Sony Computer Entertainment Inc Technique for controlling cell processor over network
JP2009093569A (en) * 2007-10-11 2009-04-30 Hitachi Ltd Business service using system, business service execution system, business service using method and program, and business service execution method and program
US8037474B2 (en) 2005-09-27 2011-10-11 Sony Computer Entertainment Inc. Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution
US8141076B2 (en) 2005-09-27 2012-03-20 Sony Computer Entertainment Inc. Cell processor methods and apparatus
US8595747B2 (en) 2005-12-29 2013-11-26 Sony Computer Entertainment Inc. Efficient task scheduling by assigning fixed registers to scheduler
JP5382449B2 (en) * 2007-11-26 2014-01-08 日本電気株式会社 Virtual machine migration system, virtual machine migration method, and virtual machine migration program
JP2014501425A (en) * 2010-12-28 2014-01-20 マイクロソフト コーポレーション Store and resume application runtime state
WO2014041664A1 (en) * 2012-09-13 2014-03-20 富士通株式会社 Information processing system, information processing device, transition control program and transition control method

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1703359A1 (en) 2005-03-18 2006-09-20 Fujitsu Limited Blade computer with power backup capacitor
US8141076B2 (en) 2005-09-27 2012-03-20 Sony Computer Entertainment Inc. Cell processor methods and apparatus
US8316220B2 (en) 2005-09-27 2012-11-20 Sony Computer Entertainment Inc. Operating processors over a network
US8135867B2 (en) 2005-09-27 2012-03-13 Sony Computer Entertainment, Inc. Secure operation of processors
JP4719655B2 (en) * 2005-09-27 2011-07-06 株式会社ソニー・コンピュータエンタテインメント Processor control technology on the network
JP4719656B2 (en) * 2005-09-27 2011-07-06 株式会社ソニー・コンピュータエンタテインメント Processor control technology on the network
US8037474B2 (en) 2005-09-27 2011-10-11 Sony Computer Entertainment Inc. Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution
JP2007095066A (en) * 2005-09-27 2007-04-12 Sony Computer Entertainment Inc Technique for controlling cell processor over network
JP2007095065A (en) * 2005-09-27 2007-04-12 Sony Computer Entertainment Inc Technique for controlling cell processors over network
US8595747B2 (en) 2005-12-29 2013-11-26 Sony Computer Entertainment Inc. Efficient task scheduling by assigning fixed registers to scheduler
JP2009093569A (en) * 2007-10-11 2009-04-30 Hitachi Ltd Business service using system, business service execution system, business service using method and program, and business service execution method and program
JP5382449B2 (en) * 2007-11-26 2014-01-08 日本電気株式会社 Virtual machine migration system, virtual machine migration method, and virtual machine migration program
JP2014501425A (en) * 2010-12-28 2014-01-20 マイクロソフト コーポレーション Store and resume application runtime state
US9600323B2 (en) 2010-12-28 2017-03-21 Microsoft Technology Licensing, Llc Storing and resuming application runtime state
US9934064B2 (en) 2010-12-28 2018-04-03 Microsoft Technology Licensing, Llc Storing and resuming application runtime state
WO2014041664A1 (en) * 2012-09-13 2014-03-20 富士通株式会社 Information processing system, information processing device, transition control program and transition control method

Also Published As

Publication number Publication date
JP3848268B2 (en) 2006-11-22

Similar Documents

Publication Publication Date Title
US20190075163A1 (en) Apparatus including an i/o interface and a network interface and related method of use
JP4349301B2 (en) Storage management system, method and program
US9558205B2 (en) Method for creating clone file, and file system adopting the same
US11287994B2 (en) Native key-value storage enabled distributed storage system
US8904136B2 (en) Optimized shrinking of virtual disks
JP4369471B2 (en) Mirroring program, mirroring method, information storage device
US20090063556A1 (en) Root node for carrying out file level virtualization and migration
US20090150462A1 (en) Data migration operations in a distributed file system
US20090144496A1 (en) Fast accessible compressed thin provisioning volume
US20090070444A1 (en) System and method for managing supply of digital content
US10318194B2 (en) Method and an apparatus, and related computer-program products, for managing access request in multi-tenancy environments
JP2004013367A (en) Data storage subsystem
JP2004178289A (en) Snapshot acquiring method, disk unit, and storage system
JP2007226347A (en) Computer system, management device for computer system, and data recovery management method
JPWO2004104838A1 (en) Data access response system, storage system, client device, cache device, and access method to data access response system
JP2013539119A (en) Off-road read and write
US10277678B2 (en) Method and an apparatus, and related computer-program products, for managing access request to one or more file systems
US11023433B1 (en) Systems and methods for bi-directional replication of cloud tiered data across incompatible clusters
US20090150449A1 (en) Open file migration operations in a distributed file system
JP2004234114A (en) Computer system, computer device, and method and program for migrating operating system
JP2003296035A (en) Storage device and storage method
JP3848268B2 (en) Computer system, computer apparatus, data access method and program in computer system
US8332844B1 (en) Root image caching and indexing for block-level distributed application management
JP2004334481A (en) Virtualized information management apparatus
US7613786B2 (en) Distributed file system

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060320

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060411

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060612

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060712

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060824

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090901

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120901

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120901

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130901

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees