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

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

Info

Publication number
JP3848268B2
JP3848268B2 JP2003037019A JP2003037019A JP3848268B2 JP 3848268 B2 JP3848268 B2 JP 3848268B2 JP 2003037019 A JP2003037019 A JP 2003037019A JP 2003037019 A JP2003037019 A JP 2003037019A JP 3848268 B2 JP3848268 B2 JP 3848268B2
Authority
JP
Japan
Prior art keywords
computer
data
data area
identification information
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003037019A
Other languages
Japanese (ja)
Other versions
JP2004246702A (en
Inventor
浩邦 矢野
誠司 前田
記代子 佐藤
謙一郎 吉井
拓也 林
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

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】
【課題を解決するための手段】
本発明の計算機システムは、通信路を介して互いに接続された複数の計算機装置を含む計算機システムにおいて、各計算機装置は、通信路を介して第1の他計算機装置および第2の他計算機装置と接続される通信手段と、自計算機装置を示す自計算機識別情報を格納する格納手段と、前記第1の他計算機装置から、プログラムと、前記第1の他計算機装置が有し前記プログラムの実行に際して参照するデータを記憶する第1のデータ領域を示すデータ領域情報と、該データ領域情報に対応付けられ前記第1の他計算機装置を示す第1の他計算機識別情報と、前記第1のデータ領域と同じ前記データを記憶しており前記第2の他計算機装置が有する第2のデータ領域に対応付けられ前記第2の他計算機装置を示す第2の他計算機識別情報と、の移送を受けるマイグレーション手段と、前記プログラムに従って前記データの参照を行う場合に前記第1の他計算機識別情報および前記第2の他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶する管理手段と、前記第1の他計算機装置が有する前記第1のデータ領域あるいは前記第2の他計算機装置が有する前記第2のデータ領域から取得する前記データを記憶する記憶手段と、を備える。
【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]
BACKGROUND OF THE INVENTION
The present invention relates to a computer system, a computer apparatus, and a data access method and program in the computer system, and more particularly, to a computer system, a computer apparatus, and a data access method and program in a computer system in which a software program is migrated between a plurality of computers. .
[0002]
[Prior art]
In a computer system composed of a plurality of computers capable of communicating with each other, there is a migration technique for transferring a software program (hereinafter referred to as a program) between computers.
[0003]
In the program migration technology, the context that is the execution state of the running program is saved, the context is transferred to another computer, and the execution state is restored in the transfer destination computer so that the program can be continuously executed. Technology. The program context generally means a register value of a central processing unit (hereinafter also referred to as a CPU), the contents of a memory area used by the program, and a communication state with the outside.
[0004]
The migration technique is used for high reliability and load distribution of a computer system composed of a plurality of computers. For example, when a computer fails, the program running on the failed computer is transferred to a normal computer in the system by the migration technique, and the execution is continued, so that the system is highly reliable. Alternatively, if 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 computer with a low load in the system by migration technology, and the system is continued by executing it. Load distribution is realized.
[0005]
Various representative methods of program migration are disclosed (for example, see Non-Patent Document 1).
[0006]
When using the migration technique, before and after migration, a program executed in the migration destination computer may need to continuously access data on a storage medium included in the migration destination computer. In such a case, during program migration, in addition to the program context, the contents of the data on the storage medium are also replicated on the storage medium of the destination computer, and data access after the transfer is performed on the destination computer. By doing so, continuous data access before and after the migration becomes possible. In this way, if the content of the data on the storage medium is copied, subsequent data access can be performed at high speed.
[0007]
On the other hand, a network file system is often used in order to continuously access data on a storage medium before and after migration without copying data on the storage medium to a migration destination computer. A typical network file system is NFS (Network File System). NFS technology is disclosed in various documents (for example, see Non-Patent Document 2).
[0008]
If a network file system is used, it becomes possible to access data on a storage medium in the same manner from any computer constituting the computer system. The network file system is a technique that enables obtaining or updating desired data by communicating with a computer in which data entities are stored during data access.
[0009]
If the network file system is used, the data on the storage medium used by the program executed on the migration source computer can be used also by the migration destination computer. In this way, the data on the storage medium used by the program to be migrated is stored on the network file system, and the data that is visible to each computer is used to make the data on the storage medium at the time of migration. In many cases, the transfer is not performed.
[0010]
However, the form of a computer system using this network file system is premised on that computers constituting the system are connected by a high-speed network. This is because, when reading or writing data, because network communication for reference or update occurs with the computer where the substance of the data is stored, in an environment where low-speed network connections are mixed, This is because reading and writing data becomes very slow. In general, the data read / write performance greatly affects the execution speed of the program.
[0011]
[Non-Patent Document 1]
"Butterfield, SA and Popec, GJ", "Network Tasking in the Locus Distributed Unix System", Eunix Summer 84 ( Usenix Summer '84), pp.62-71 (1984)
[0012]
[Non-Patent Document 2]
Callaghan, Brent, NFS Illustrated, 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 replication takes time, and as a result, the time required for program transfer It will increase. As a result, since it is necessary to stop the program during the program migration, there is a problem that if the program migration takes a long time, the program stop time becomes long.
[0014]
On the other hand, when using a system that uses a network file system to share data on storage media between computers without duplicating data during program migration, every time the program of the migration destination computer accesses the data There is a problem that the speed of data access decreases because network communication occurs 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 reducing 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 a computer system including a plurality of computer devices connected to each other via a communication path, and each computer device is connected via a communication path. First Other computer equipment And second other computer device A communication means connected to the storage device, a storage means for storing own computer identification information indicating the own computer device, First From another computer device, the program First Other computer devices are available And storing data to be referred to when executing the program. Data area information indicating a data area, and the data area information associated with the data area information First Indicates other computer equipment First Other computer identification information, Second other computer identification information that stores the same data as the first data region and is associated with a second data region of the second other computer device and indicates the second other computer device; , Migration means that receives the transfer of the data, and when referring to the data according to the program First Other computer identification information And the second other computer identification information In addition to the management means for storing the computer identification information in association with the data area information, First The other computer apparatus has First Data area Alternatively, the second data area of the second other computer device Get from Said Storage means for storing data.
[0017]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
[0018]
First, based on FIG. 1, the structure of the computer system concerning this Embodiment is demonstrated. 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. 110 is a communication path for connecting the computer 101 and the communication path 131, 120 is a communication path for connecting the computer 111 and the communication path 131, and 130 is a connection between the computer 121 and the communication path 131. This is a communication channel. Each communication path is connected via a connection device (not shown).
[0020]
The computer 101 includes a program unit 102. The program unit 102 includes a program main body 102a to be migrated, a location management unit 103, and a location management table 104 as will be 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 / outputting data to / 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 other computers via the communication path 131.
[0022]
The computer 101 includes a location management unit 103 that manages location information of data accessed by the program main body 102 a and a location management table 104. 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 main body 102a. The location management table 104 is in the memory used by the program unit 102 and is included in the context 108.
[0023]
For example, when the program body 102 a writes data to a certain data area on the storage medium 106 via the input / output unit 105, the write request access data is supplied to the input / output unit 105 via the position management unit 103. In response to the write request, the input / output unit 105 writes data in 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. Similar to the input / output unit 105, the input / output unit 115 is a program that performs data input / output with respect to the storage medium 116. Similar to the program transmission / reception unit 107, the program transmission / reception unit 117 is a program for performing migration of the program unit 102 and generating a transferred program. The program transmission / reception unit 117 manages the context of the program unit 102. Similar to the communication apparatus 109, the communication apparatus 119 performs data communication with other computers via the communication path 131.
[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. Similarly to the program transmission / reception unit 107, the program transmission / reception unit 127 is a program that performs program migration and generation of a transferred program. The program transmission / reception unit 127 manages the context of the program unit 102. Similar to the communication device 109, the communication device 129 performs data communication with other computers via the communication path 131.
[0026]
Thus, since each computer has a program transmission / reception unit, the computer system 100 has a function of performing program migration between computers. Accordingly, in the computer system 100, the program main body 102a can operate while the program unit 102 is being transferred between the plurality of computers 101, 111, and 121.
[0027]
Each of the computers 101, 111, and 121 is preliminarily assigned an identifier that is unique computer identification information, and each computer can be specified by the identifier. Each computer stores data of a computer identifier 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 executing the program unit 102. The computer identifier may be the host name or IP address of the computer, but the type of the computer identifier is not limited as long as it is unique to each computer.
[0028]
The location management unit 103 obtains information on an area in which data in the storage medium 106 is written by monitoring the contents of access performed by the program body 102 a to the input / output unit 105. The location management unit 103 stores and manages, in the location management table 104, a combination of data area information accessed by the program main body 102a and the identifier of the computer 101 executing the program main body 102a.
[0029]
In the position management table 104, as the position data, correspondence between data area information indicating a data area accessed by the program main body 102a and the identifier of the computer storing the data in the data area is recorded. 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 represents that the computer 111 has. Similarly, the data of the area B is included in the computer 111 and the computer 121, and the data of the area C is included in the computer 101. In the location management table 104 of the computer 101, the presence of the identifiers of the computers 111 and 121 indicates that the program main body 102a has operated on the computers 111 and 121 in the past and has updated the data. The table update method will be described later. The number of computer identifiers that can be recorded in the entry corresponding to each data area of the location management table 104, that is, the data registration area is not defined, and any number may be used as long as it is one or more. You may make it provide restrictions, such as leaving.
[0030]
The location management table 104 managed by the location management unit 103 is transferred to another computer as a part of the context of the program unit 102 when the program unit 102 is transferred to another computer, as will be described later.
[0031]
Although it is conceivable to use Ethernet (R), a wireless LAN, or the like as the communication paths 110, 120, 130, and 131, any type is acceptable as long as they can communicate with each other. Information on the communication speed of each communication path is held in each computer as tabular data as shown in FIG. 3, for example. 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 100 Mbps high-speed communication paths, and the speed of the communication path 110 is 10 Mbps low-speed communication paths. Each computer refers to this speed management table, so that the communication speed between the computer 101 and the computer 111 and between the computer 101 and the computer 121 is 10 Mbps, and the communication speed between the computer 111 and the computer 121 is It can be determined that the speed is 100 Mbps. The management method of this table is not particularly specified as long as each computer can refer to this table.
[0032]
In the present embodiment, the program migration method is not particularly limited. The migration process can be realized by transferring the CPU register value that is the execution context of the program and the contents of the memory used by the program between computers using the same method as the conventional migration, so the contents of the migration process Description of is omitted. In addition, it is possible to migrate programs between a plurality of computers 101, 111, 121 by using the program transmission / reception unit of computers 111, 121. However, since migration processing can also be performed in the same manner as before, Description is omitted.
[0033]
First, according to the present embodiment, when the program is transferred in the computer system 100 of FIG. 1, how the data in the data area accessed by the program is distributed among a plurality of computers and duplicated. It will be described using a specific example how it is stored.
[0034]
FIGS. 4 to 7 are diagrams for explaining an example of how data is replicated between computers when a program is transferred.
[0035]
As shown in FIG. 4, the program unit 102 is operating on the computer 101 in the initial state, and the data in the data areas A, B, and C are stored in the 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 only “101”, respectively.
[0036]
Assume that the program unit 102 is transferred and migrated to the computer 111 from the initial state of FIG. 4, and the program unit 102 is continuously executed in the migration destination computer 111. When the program unit 102 operating on the computer 111 accesses to write or update the data in the data area A during the execution, the update data is transferred to the recording medium 106 as shown in FIG. Area) data is stored or written in the recording medium 116. 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 in the data area A exists only in the recording medium 116 of the computer 111, and the data in the data area A recorded in the recording medium 106 of the migration source computer 101 is invalidated. The
[0037]
Therefore, the data update operation by the migrated program unit 102 is written in a storage medium included in the computer on which the program unit 102 operates, and therefore does not involve communication processing via a communication path, and thus can be performed at high speed.
[0038]
Then, if the migrated program unit 102 of the computer 111 accesses the data area B by referring to the data, that is, simply reading the data area B without updating it, the computer 101 (reference data holding computer) stores the data in the recording medium 106. Data in the data area B (reference data area) is acquired 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, it accesses the recording medium 116 and does not perform communication processing via the communication path. It can be done at high speed.
[0039]
Next, it is assumed that the program unit 102 of the computer 111 is transferred to the computer 121. Then, when the program unit 102 of the computer 121 refers to the data in the data area B, similarly to FIG. 6, the computer 121 starts the data area B (reference data area) from the computer 111 faster than the communication speed with the computer 101. Data is acquired and copied to the recording medium 126 of the computer 121 as reference data area data as shown in FIG. Both the computer 101 and the computer 111 are reference data holding computers having data in the data area B, but 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 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, the recording medium 126 is accessed.
[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 update data area is stored in the storage medium included in the migration destination computer. The data in the corresponding data area of the migration source computer is invalidated. In addition, when data in a data area on a storage medium accessed by a program is referenced by a program operating on a migration destination computer, the data in the reference data area is transferred to the migration destination computer and duplicated data is stored. 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 in multiple on a plurality of computers. Further, as will be described later, in the case of the data reference operation by the program, since the data in the reference data area is stored in a plurality of computers (reference data holding computers), from among the plurality of reference data holding computers, By transferring data in the reference data area from a computer that can transfer data at the highest speed, efficient data access can be performed.
[0042]
Next, as shown in FIG. 4 to FIG. 7 described above, the data update operation and the data reference operation are performed in the process of transferring the program on the computer system as an example. Will be described. 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 location management unit 103 in the case of data update. FIG. 10 is a diagram for explaining an example of how the contents of the location management table change when data is updated and referenced while the program is 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 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 of the location 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, data reference operation processing will be described with reference to FIG.
[0045]
When the program main body 102a operating on the computer 101 issues a reference request for data in the data area B to the position management unit 103, the position management unit 103 receives the reference request (step 401). Next, based on the location management table 104, 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 (step 402). In other words, the location management unit 103 checks whether or not the identifier of the computer 101 exists in the entry corresponding to the data area B of 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 of the location management table 104, that is, the computer 101 is a computer having data in the data area B (reference data holding computer). The position management unit 103 reads the data from its own storage medium 106 via the input / output unit 105 (step 403). Then, the location management unit 103 supplies the data received from the input / output unit 105 to the program body 102a (step 408).
[0046]
Next, data write operation, that is, update operation processing 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 the write data, the location management unit 103 receives the update request (step 501). Based on the position management table 104, the position management unit 103 determines whether the data area (update data area) requested to be updated belongs to a computer other than itself (step 502). For example, when the program main body 102 a updates data in the data area A, the location management unit 103 checks whether an identifier of a 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 area A in its own storage medium 106 ( Step 505).
[0048]
In the case of FIG. 4, since the computer identifiers corresponding to the respective data areas in the location management table 104 are all “101”, in the update operation for the data area whose data of the computer identifier is “101”, the processing is as follows. In step 502, NO is determined, and the position management unit 103 transfers an 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 to the storage medium 106 (step 505). ).
[0049]
The above is the processing flow of the location management unit 103 when the program unit 102 operating on the computer 101 refers to and updates data in the above-described initial state. Note that the order of processing in steps 502 to 504 and step 505 is not limited, and either may be performed first or simultaneously.
[0050]
When the program unit 102 operates on the computer 101 and accesses the data in the storage medium 106 of the computer 101, the state of step 611 in FIG. 10 is in effect, and the content of the location management table 104 is 601 at that time. This is the state shown.
[0051]
Next, it is assumed that the program unit 102 is migrated from the computer 101 to the computer 111 as shown in Step 612 of FIG. At this time, since the program unit 102 is transferred to the computer 111, the position management unit 103 and the position management table 104 are also transferred to the computer 111 together. The transferred program unit 102 is restored by the computer 111 and re-executed.
[0052]
When the program unit 102 is re-executed after the migration of the program 102, the program body 102a performs data access to the input / output unit via the location management unit 103. At this time, the location management unit 103 8 and FIG. 9 are executed.
[0053]
First, the processing flow of the location management unit 103 when the program main body 102a operating on the computer 111 updates data in the data area A will be described. In FIG. 9, when the program body 102a issues a data write request, that is, an update request together with the write data, the location management unit 103 receives the update request (step 501). Based on the position management table 104, the location management unit 103 determines whether the data area (update data area) for which update has been requested belongs to a computer other than itself, that is, other than the recording medium 116 of the migration destination computer 111. Is determined (step 502).
[0054]
If the program unit 102 is transferred from the computer 101 and has not yet accessed the data in each data area, the computer identifier corresponding to each data area in the location management table 104 is all “101”. Yes. Therefore, YES is obtained in step 502, and the computer identifier data “101”, which is a computer identifier other than itself, 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 its own computer is written as the computer identifier corresponding to the data area A for which an update request has been made (step 504). Then, according to the update request, the update request is transferred to the input / output unit 115, and the input / output unit 115 writes the write data in the data area A into its own storage medium 115 (step 505).
[0055]
Next, a flow of processing of the location 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 reference request for data in the data area B to the position management unit 103, the position management unit 103 receives the reference request (step 401). The position management unit 103 checks whether or not the identifier of the computer 111 exists in the entry corresponding to the data area B (reference data area) of the position management table 104 (step 402). For the data area B related to the reference request, since the identifier of the computer 111 that is its own computer does not yet exist in the location management table 104, the identifier of the computer 101 exists instead. , Go 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, the computer that can transfer data to the computer 111 at the highest speed is selected from among the identifiers. The reference request is output 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 only transfer of data from the computer 101. . The location management unit 103 reads data in the data area B from the storage medium 106 through the communication device 119, the communication paths 120, 131, and 110, the communication device 109, and the input / output unit 105 (step 405). The location management unit 103 writes the acquired data area B data 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 of the location management table 104 (step 407). Then, the data acquired in step 405 is supplied to the program 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 simultaneously stored in the computer 101. The data on the medium 106 is invalidated, and when the migration destination computer 111 references the data, 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 main 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 contents to the input / output unit 115. Thus, the computer in which the data of the referenced data area is stored is searched using the location management table 104 managed by the location management unit 103. Next, a computer that can transfer data to the computer 111 that is currently executing the program at the highest speed is selected from a list of computers that hold data found by the search (reference data holding computer), and the computer Read data from the storage medium.
[0060]
Further, when the program main body 102a acquires the data from another computer in order to refer to the data in the data area, the data is also copied to the storage medium 116 included in the computer 111 executing the program, and the position 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 node 103. As a result, data is distributed and stored in multiple on a plurality of computers constituting the system, and when a reference to this data area occurs thereafter, the storage medium of the computer 111 can also 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. It becomes a state.
[0062]
Furthermore, it is assumed that the program unit 102 is 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 in the computer 121 and re-executed.
[0063]
When the program unit 102 is re-executed after the migration of the program unit 102, the program body 102 a performs data access to the input / output unit 125 via the location management unit 103 in the computer 121.
[0064]
First, the processing flow of the location management unit 103 when the program main body 102a operating on the computer 121 refers to the data in the area B will be described. When the program main body 102 a refers to data via the position management unit 103, the program main body 102 a issues a data reference request for data in the data area B to the position management unit 103. The location management unit 103 receives the reference request (step 401). The location management unit 103 checks whether the identifier of the computer 121 exists in the entry corresponding to the data area B of 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, NO is determined in step 402, and the computer that can transfer data to the computer 121 at the highest speed (reference) (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 fastest transfer speed (step 404).
[0065]
According to the location management table 104, the computer identifier corresponding to the data area B is the identifier of the computer 101 and the computer 111 (both are reference data holding computers). You have to be forwarded. Therefore, the position management unit 103 determines which of the computer 101 and the computer 111 can receive the data earlier based on the speed data of each communication path in FIG. 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, all have the same communication speed, and therefore 100 Mbps. Accordingly, the communication path 110 to which the computer 101 is connected has a communication speed slower than that of the communication paths 110, 130, and 131, and it is faster to transfer data from the computer 111, so the location management unit 103 selects the computer 111. The location management unit 103 transmits a reference request to the computer 111 with the fastest transfer speed in order to transfer data in the data area B from the computer 111 (step 404).
[0066]
The location 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 location management unit 103 writes the data of the data area B read and acquired through the input / output unit 125 to the storage medium 126 (step 406). The location management unit 103 adds the identifier of the computer 121 to the entry corresponding to the data area B of the location management table 104 (step 407). The data acquired in step 405 is output to the program body 102a (step 408). As a result, the data on each storage medium is as shown in FIG.
[0067]
Note that there is no restriction on the order of steps 404 to 406 and step 407, which may be performed first or simultaneously.
[0068]
Further, when the program main body 102a on the computer 121 tries to update the data in the data area A, the processing of FIG. 9 is executed.
[0069]
Since the program main body 102a updates 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 the 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 a computer identifier corresponding to the data area A (update data area) for which an update request has been made (step 504). Then, according to the update request, the update request is transferred to the input / output unit 125, and the input / output unit 125 writes the write data as data in the data area A to the storage medium 126 (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 location management table 104 are in a state indicated by 603.
[0071]
Further, it is assumed that the program unit 102 has been migrated from the computer 121 to the computer 101 (step 616). If the program main body 102a on the computer 101 refers to data in the data area B, the entry corresponding to the data area B in the position management table 104 also includes the identifier of the computer 101. 103 becomes YES in step 402, and data in the data area B to be referred to is read from the storage medium 106 in step 403.
[0072]
As described above, when the program body 102a refers to the data in the data area B (step 617), the contents of the location management table 104 are in a state indicated 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 multiple on a plurality of computers. As a result, when data that is multiplexed and arranged between computers in the system increases and data becomes necessary, data is transferred from the computer that can perform data communication at the highest speed among the computers that store the data. Acquire efficient reference access by acquiring. In addition, update access can be performed at high speed because it is performed on a storage medium included in the computer on which the program operates.
[0074]
As described above, when a program is transferred between computers constituting a computer system and the program updates data, the data is stored on the storage medium of the migration destination computer. Also, when the program on the migration destination computer references the data, the data is replicated on the storage medium of the migration destination computer, and when the replication is generated, the data stored in a distributed manner is stored. By selecting and referring to a computer that can transfer data at the highest speed from among a plurality of reference data holding computers, it is possible to transfer data at high speed, thereby realizing efficient reference access.
[0075]
In the above description, the case where the program body 102a refers to the data has been described. However, when the location management unit 103 refers to the data for the purpose of prefetching the data, the above-described reference processing is performed. Also good.
[0076]
Further, as described above, the program migration method in the present embodiment, like the conventional migration method, transfers the program context to another computer and restores the program execution state on the migration destination computer. The method to be used is used. In this case, any method may be used as the method for storing and transferring the context, and the method is not limited.
[0077]
Further, the migrated program may be a normal application program, an operating system program, or the like.
[0078]
Furthermore, in the above description, the data area accessed by the program has been described as being in a storage medium provided in the computer. However, a program operating on the computer may be handled as a file, so the data area is stored in the storage medium. Includes files. In this 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 migrated program. In that case, the location management unit or location management table may be sent from the migration source computer to the migration destination computer separately from the program to be migrated, or only the location management table may be sent between computers. The location management unit may communicate with the computer in advance.
[0080]
In addition, when 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 prefetch 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 data but also when the data is referred to in advance for prefetching before performing the data reference operation.
[0081]
As described above, according to the present embodiment, at the time of program migration, it is not necessary to copy the data on the storage medium to the storage medium of the destination computer. It is possible to keep the program stop time short.
[0082]
Each “unit” in this specification is a conceptual one corresponding to each function of the embodiment, and does not necessarily correspond to a specific hardware or software routine on a one-to-one basis. Therefore, in the present specification, the embodiment has been described above assuming a virtual circuit block (unit) having each function of the embodiment. In addition, each step of each procedure in the present embodiment may be executed in a different order for each execution by changing the execution order and performing a plurality of steps at the same time, as long as it does not contradict its nature.
[0083]
The program for executing the operations described above is recorded or stored in whole or in part on a portable medium such as a floppy disk, CD-ROM, or a storage device such as a hard disk. Yes. The program is read by a computer, and all or part of the operation is executed. Alternatively, all or 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 it on a computer, or installing it from a recording medium to a computer.
[0084]
The present invention is not limited to the above-described embodiments, and various changes and modifications can be made without departing from the scope of the present invention.
[0085]
【The invention's effect】
As described above, according to the present invention, it is possible to realize a computer system that can perform data access without reducing the data access speed in a system in which program migration is performed.
[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 replicated between computers when a program is transferred;
FIG. 5 is a diagram for explaining an example of how data is replicated between computers when a program is transferred;
FIG. 6 is a diagram for explaining an example of how data is replicated between computers when a program is transferred;
FIG. 7 is a diagram for explaining an example of how data is replicated between computers when a program is transferred;
FIG. 8 is a flowchart showing a processing flow of a location management unit in the case of data reference according to the embodiment of the present invention.
FIG. 9 is a flowchart showing an example of a processing flow of a location 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 a location management table change when data is updated and referenced while a program is migrated.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 100 ... Computer system, 101, 111, 121 ... Computer, 110, 120, 130, 131 ... Communication path, 106, 116, 126 ... Storage medium

Claims (16)

通信路を介して互いに接続された複数の計算機装置を含む計算機システムにおいて、
各計算機装置は、
通信路を介して第1の他計算機装置および第2の他計算機装置と接続される通信手段と、
自計算機装置を示す自計算機識別情報を格納する格納手段と、
前記第1の他計算機装置から、プログラムと、前記第1の他計算機装置が有し前記プログラムの実行に際して参照するデータを記憶する第1のデータ領域を示すデータ領域情報と、該データ領域情報に対応付けられ前記第1の他計算機装置を示す第1の他計算機識別情報と、前記第1のデータ領域と同じ前記データを記憶しており前記第2の他計算機装置が有する第2のデータ領域に対応付けられ前記第2の他計算機装置を示す第2の他計算機識別情報と、の移送を受けるマイグレーション手段と、
前記プログラムに従って前記データの参照を行う場合に前記第1の他計算機識別情報および前記第2の他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶する管理手段と、
前記第1の他計算機装置が有する前記第1のデータ領域あるいは前記第2の他計算機装置が有する前記第2のデータ領域から取得する前記データを記憶する記憶手段と、
を備えることを特徴とする計算機システム。
In a computer system including a plurality of computer devices connected to each other via a communication path,
Each computer device
Communication means connected to the first other computer device and the second other computer device via a communication path;
Storage means for storing own computer identification information indicating the own computer device;
From said first other computer device, program and, said first other computer device first data area information indicating a data area for storing data to be referenced when executing chromatic above program, in the data area information a correspondence is first other computer identification information indicating the first other computer device, the second data area the first of the stores the same the data as the data area of the second other computer device having Migration means that receives the second other computer identification information associated with the second other computer identification information indicating the second other computer device;
Said first other computer identification information and the second other computer in addition to the identification information management means for storing in association with the own computer identification information to the data area information when performing reference of the data in accordance with said program When,
Storage means for storing the data acquired from the second data area in which the first other computer device said first data area or the second other computer device having the having,
A computer system comprising:
前記管理手段は、さらに、前記プログラムに従って前記データの更新を行う場合に前記第1の他計算機識別情報および前記第2の他計算機識別情報を削除して前記自計算機識別情報を前記データ領域情報に対応付けて記憶することを特徴とする請求項1記載の計算機システム。The management means further deletes the first other computer identification information and the second other computer identification information and updates the own computer identification information to the data area information when updating the data according to the program. 2. The computer system according to claim 1, wherein the computer system is stored in association with each other. 通信路を介して互いに接続された複数の計算機装置を含む計算機システムにおいて、
各計算機装置は、
通信路を介して他計算機装置と接続される通信手段と、
自計算機装置を示す自計算機識別情報を格納する格納手段と、
前記他計算機装置から、プログラムと、前記他計算機装置が有するデータ領域を示すデータ領域情報と、該データ領域情報に対応付けられ前記他計算機装置を示す他計算機識別情報と、の移送を受けるマイグレーション手段と、
前記プログラムに従って前記データ領域の参照を行う場合に前記他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶する管理手段と、
前記他計算機装置が有する前記データ領域から取得するデータを記憶する記憶手段と、
を備え、
前記管理手段は、前記プログラムに従って前記参照を行う場合に、前記データ領域情報に対応付けられた他計算機装置が複数あるときは、前記通信路を介する前記複数の他計算機装置の中で通信速度が最も速い計算機装置から前記データ領域のデータを取得することを特徴とする計算機システム。
In a computer system including a plurality of computer devices connected to each other via a communication path,
Each computer device
A communication means connected to another computer device via a communication path;
Storage means for storing own computer identification information indicating the own computer device;
Migration means for receiving transfer of a program, data area information indicating a data area of the other computer apparatus, and other computer identification information indicating the other computer apparatus associated with the data area information from the other computer apparatus When,
A management unit that stores the computer identification information in association with the data region information in addition to the other computer identification information when referring to the data region according to the program;
Storage means for storing data acquired from the data area of the other computer device;
With
When the management unit performs the reference according to the program and there are a plurality of other computer devices associated with the data area information, a communication speed is set among the plurality of other computer devices via the communication path. A computer system characterized by acquiring data in the data area from the fastest computer device.
前記管理手段は、さらに、前記プログラムに従って前記データ領域の更新を行う場合に前記他計算機識別情報を削除して前記自計算機識別情報を前記データ領域情報に対応付けて記憶することを特徴とする請求項3記載の計算機システム。  The management unit is further configured to delete the other computer identification information and store the own computer identification information in association with the data region information when updating the data region according to the program. Item 4. The computer system according to item 3. 通信路を介して第1の他計算機装置および第2の他計算機装置と接続される通信手段と、
自計算機装置を示す自計算機識別情報を格納する格納手段と、
前記第1の他計算機装置から、プログラムと、前記第1の他計算機装置が有し前記プログラムの実行に際して参照するデータを記憶する第1のデータ領域を示すデータ領域情報と、該データ領域情報に対応付けられ前記第1の他計算機装置を示す第1の他計算機識別情報と、前記第1のデータ領域と同じ前記データを記憶しており前記第2の他計算機装置が有する第2のデータ領域に対応付けられ前記第2の他計算機装置を示す第2の他計算機識別情報と、の移送を受けるマイグレーション手段と、
前記プログラムに従って前記データの参照を行う場合に前記第1の他計算機識別情報および前記第2の他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶する管理手段と、
前記第1の他計算機装置が有する前記第1のデータ領域あるいは前記第2の他計算機装置が有する前記第2のデータ領域から取得する前記データを記憶する記憶手段と、
を備えることを特徴とする計算機装置。
Communication means connected to the first other computer device and the second other computer device via a communication path;
Storage means for storing own computer identification information indicating the own computer device;
From said first other computer device, program and, said first other computer device first data area information indicating a data area for storing data to be referenced when executing chromatic above program, in the data area information a correspondence is first other computer identification information indicating the first other computer device, the second data area the first of the stores the same the data as the data area of the second other computer device having Migration means that receives the second other computer identification information associated with the second other computer identification information indicating the second other computer device;
A management means for storing the computer identification information in association with the data area information in addition to the first other computer identification information and the second other computer identification information when referring to the data according to the program; ,
Storage means for storing the data acquired from the second data area in which the first other computer device said first data area or the second other computer device having the having,
A computer apparatus comprising:
前記管理手段は、さらに、前記プログラムに従って前記データの更新を行う場合に前記第1の他計算機識別情報および前記第2の他計算機識別情報を削除して前記自計算機識別情報を前記データ領域情報に対応付けて記憶することを特徴とする請求項5記載の計算機装置。The management means further deletes the first other computer identification information and the second other computer identification information and updates the own computer identification information to the data area information when updating the data according to the program. 6. The computer apparatus according to claim 5, wherein the computer apparatus stores the information in association with each other. 通信路を介して他計算機装置と接続される通信手段と、
自計算機装置を示す自計算機識別情報を格納する格納手段と、
前記他計算機装置から、プログラムと、前記他計算機装置が有するデータ領域を示すデータ領域情報と、該データ領域情報に対応付けられ前記他計算機装置を示す他計算機識別情報と、の移送を受けるマイグレーション手段と、
前記プログラムに従って前記データ領域の参照を行う場合に前記他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶する管理手段と、
前記他計算機装置が有する前記データ領域から取得するデータを記憶する記憶手段と、
を備え、
前記管理手段は、前記プログラムに従って前記参照を行う場合に、前記データ領域情報に対応付けられた他計算機装置が複数あるときは、前記通信路を介する前記複数の他計算機装置の中で通信速度が最も速い計算機装置から前記データ領域のデータを取得することを特徴とする計算機装置。
A communication means connected to another computer device via a communication path;
Storage means for storing own computer identification information indicating the own computer device;
Migration means for receiving transfer of a program, data area information indicating a data area of the other computer apparatus, and other computer identification information indicating the other computer apparatus associated with the data area information from the other computer apparatus When,
A management unit that stores the computer identification information in association with the data region information in addition to the other computer identification information when referring to the data region according to the program;
Storage means for storing data acquired from the data area of the other computer device;
With
When the management unit performs the reference according to the program and there are a plurality of other computer devices associated with the data area information, a communication speed is set among the plurality of other computer devices via the communication path. A computer apparatus characterized in that the data area data is acquired from the fastest computer apparatus.
前記管理手段は、さらに、前記プログラムに従って前記データ領域の更新を行う場合に前記他計算機識別情報を削除して前記自計算機識別情報を前記データ領域情報に対応付けて記憶することを特徴とする請求項7記載の計算機装置。  The management unit is further configured to delete the other computer identification information and store the own computer identification information in association with the data region information when updating the data region according to the program. Item 8. The computer device according to Item 7. 通信路を介して互いに接続された複数の計算機装置を含み、各計算機装置は、通信路を介して第1の他計算機装置および第2の他計算機装置と接続される通信手段と、自計算機装置を示す自計算機識別情報を格納する格納手段と、前記第1の他計算機装置からプログラムと前記第1の他計算機装置が有し前記プログラムの実行に際して参照するデータを記憶する第1のデータ領域を示すデータ領域情報と該データ領域情報に対応付けられ前記第1の他計算機装置を示す第1の他計算機識別情報と前記第1のデータ領域と同じ前記データを記憶しており前記第2の他計算機装置が有する第2のデータ領域に対応付けられ前記第2の他計算機装置を示す第2の他計算機識別情報との移送を受けるマイグレーション手段と、前記第1の他計算機識別情報と前記第2の他計算機識別情報を前記データ領域情報に対応付けて記憶する管理手段と、前記第1の他計算機装置が有する前記第1のデータ領域あるいは前記第2の他計算機装置が有する前記第2のデータ領域から取得する前記データを記憶する記憶手段を有する計算機システムにおけるデータアクセス方法であって、
前記管理手段は、前記プログラムに従って前記データの参照を行う場合に前記第1の他計算機識別情報および前記第2の他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶し、
前記管理手段は、前記第1の他計算機装置が有する前記第1のデータ領域あるいは前記 第2の他計算機装置が有する前記第2のデータ領域から取得した前記データを前記記憶手段に記憶することを特徴とする計算機システムにおけるデータアクセス方法。
A plurality of computer devices connected to each other via a communication path, each computer device being connected to a first other computer device and a second other computer device via a communication path; storage means for storing its own computer identification information indicating a first data area for storing data wherein the first program from another computer device a first other computer devices refers when executing chromatic and said program It said second other stores the same the data as the data area information of the first other computer identification information and the first data area corresponding to the data area information indicating the first other computer apparatus shown a migration means for receiving the transfer of the second other computer identification information associated with the second data area by the computer system has shown the second other computer device, the first other computer identification A management means for storing in association distribution and the second other computer identification information to the data area information, the first other computer device having a first data area or the second other computer devices a data access method in a computer system having a storage means for storing the data acquired from the second data area,
The management means associates the own computer identification information with the data area information in addition to the first other computer identification information and the second other computer identification information when referring to the data according to the program. Remember,
It said management means to store the data acquired from the first of said first data area or the second data area in which the second other computer device having the other computer device having said storage means A data access method in a computer system.
前記管理手段は、さらに、前記プログラムに従って前記データの更新を行う場合に前記第1の他計算機識別情報および前記第2の他計算機識別情報を削除して前記自計算機識別情報を前記データ領域情報に対応付けて記憶することを特徴とする請求項に記載の計算機システムにおけるデータアクセス方法。The management means further deletes the first other computer identification information and the second other computer identification information and updates the own computer identification information to the data area information when updating the data according to the program. 10. A data access method in a computer system according to claim 9 , wherein the data is stored in association with each other. 通信路を介して互いに接続された複数の計算機装置を含み、各計算機装置は、通信路を介して他計算機装置と接続される通信手段と、自計算機装置を示す自計算機識別情報を格納する格納手段と、前記他計算機装置からプログラムと前記他計算機装置が有するデータ領域を示すデータ領域情報と該データ領域情報に対応付けられ前記他計算機装置を示す他計算機識別情報との移送を受けるマイグレーション手段と、計算機識別情報を前記データ領域情報に対応付けて記憶する管理手段と、前記他計算機装置が有する前記データ領域から取得するデータを記憶する記憶手段を有する計算機システムにおけるデータアクセス方法であって、
前記管理手段は、前記プログラムに従って前記データ領域の参照を行う場合に前記他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶し、
前記管理手段は、前記プログラムに従って前記参照を行う場合に、前記データ領域情報に対応付けられた他計算機装置が複数あるときは、前記通信路を介する前記複数の他計算機装置の中で通信速度が最も速い計算機装置から前記データ領域のデータを取得し、
前記管理手段は、前記他計算機装置が有する前記データ領域から取得した前記データを前記記憶手段に記憶することを特徴とする計算機システムにおけるデータアクセス方法。
A plurality of computer devices connected to each other via a communication path, each computer device storing communication means connected to other computer devices via a communication channel, and storage for storing own computer identification information indicating the own computer device And migration means for receiving transfer of a program, data area information indicating a data area of the other computer apparatus, and other computer identification information indicating the other computer apparatus associated with the data area information, from the other computer apparatus A data access method in a computer system comprising: management means for storing computer identification information in association with the data area information; and storage means for storing data acquired from the data area of the other computer device,
The management means stores the computer identification information in association with the data area information in addition to the other computer identification information when referring to the data area according to the program,
When the management unit performs the reference according to the program and there are a plurality of other computer devices associated with the data area information, a communication speed is set among the plurality of other computer devices via the communication path. Get the data area data from the fastest computer device,
The data access method in a computer system , wherein the management means stores the data acquired from the data area of the other computer device in the storage means .
前記管理手段は、さらに、前記プログラムに従って前記データ領域の更新を行う場合に前記他計算機識別情報を削除して前記自計算機識別情報を前記データ領域情報に対応付けて記憶することを特徴とする請求項11記載の計算機システムにおけるデータアクセス方法。  The management unit is further configured to delete the other computer identification information and store the own computer identification information in association with the data region information when updating the data region according to the program. Item 12. A data access method in a computer system according to Item 11. 通信路を介して第1の他計算機装置及び第2の他計算機装置と接続される通信手段と、自計算機装置を示す自計算機識別情報を格納する格納手段と、前記第1の他計算機装置からプログラムと前記第1の他計算機装置が有し前記プログラムの実行に際して参照するデータを記憶する第1のデータ領域を示すデータ領域情報と該データ領域情報に対応付けられ前記第1の他計算機装置を示す第1の他計算機識別情報と前記第1のデータ領域と同じ前記データを記憶しており前記第2の他計算機装置が有する第2のデータ領域に対応付けられ前記第2の他計算機装置を示す第2の他計算機識別情報との移送を受けるマイグレーション手段と、前記第1の他計算機識別情報と前記第2の他計算機識別情報を前記データ領域情報に対応付けて記憶する管理手段と、前記第1の他計算機装置が有する前記第1のデータ領域あるいは前記第2の他計算機装置が有する前記第2のデータ領域から取得する前記データを記憶する記憶手段を有するコンピュータに、
前記管理手段により、前記プログラムに従って前記データの参照を行う場合に前記第1の他計算機識別情報および前記第2の他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶する機能と、
前記管理手段により、前記第1の他計算機装置が有する前記第1のデータ領域あるいは前記第2の他計算機装置が有する前記第2のデータ領域から取得した前記データを前記記憶手段に記憶する機能とを実行させるためのプログラム。
Communication means connected to the first other computer apparatus and the second other computer apparatus via a communication path, storage means for storing own computer identification information indicating the own computer apparatus, and the first other computer apparatus other computing device the associated first data area information and the data area information indicating the first data area in which the the program first other computer device stores data to be referred to in executing chromatic and said program The first other computer identification information shown and the same data as the first data area are stored, and the second other computer apparatus is associated with the second data area of the second other computer apparatus. to the second and migration means for receiving the transfer of the other computer identification information, storing said first other computer identification information a second other computer identification information the data area information associated with showing And management means, said first computer having a storage means for storing the data acquired from the second data area in which the first data area or the second other computer device having the other computer device having,
When referring to the data according to the program by the management means, the computer identification information is associated with the data area information in addition to the first other computer identification information and the second other computer identification information. A function to memorize,
By the management unit, a function of storing the data acquired from the second data area in which the first other computer device said first data area or the second with the other computer device having said storage means A program for running
前記管理手段により、さらに、前記プログラムに従って前記データ領域の更新を行う場合に前記第1の他計算機識別情報および前記第2の他計算機識別情報を削除して前記自計算機識別情報を前記データ領域情報に対応付けて記憶する機能を前記コンピュータに実行させるための請求項13に記載のプログラム。When the data area is updated according to the program by the management means, the first other computer identification information and the second other computer identification information are deleted, and the own computer identification information is replaced with the data area information. The program according to claim 13 , which causes the computer to execute a function of storing in association with each other. 通信路を介して他計算機装置と接続される通信手段と、自計算機装置を示す自計算機識別情報を格納する格納手段と、前記他計算機装置からプログラムと前記他計算機装置が有するデータ領域を示すデータ領域情報と該データ領域情報に対応付けられ前記他計算機装置を示す他計算機識別情報との移送を受けるマイグレーション手段と、計算機識別情報を前記データ領域情報に対応付けて記憶する管理手段と、前記他計算機装置が有する前記データ領域から取得するデータを記憶する記憶手段を有するコンピュータに、
前記管理手段により、前記プログラムに従って前記データ領域の参照を行う場合に前記他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶する機能と、
前記管理手段により、前記プログラムに従って前記参照を行う場合に、前記データ領域情報に対応付けられた他計算機装置が複数あるときは、前記通信路を介する前記複数の他計算機装置の中で通信速度が最も速い計算機装置から前記データ領域のデータを取得する機能と、
前記管理手段により、前記他計算機装置が有する前記データ領域から取得した前記データを前記記憶手段に記憶する機能と、
を前記コンピュータに実行させるためのプログラム。
Communication means connected to another computer apparatus via a communication path, storage means for storing own computer identification information indicating the own computer apparatus, data from the other computer apparatus and data indicating a data area of the other computer apparatus Migration means for receiving transfer of area information and other computer identification information indicating the other computer apparatus associated with the data area information; management means for storing computer identification information in association with the data area information; In a computer having storage means for storing data acquired from the data area of the computer device,
A function of storing the computer identification information in association with the data area information in addition to the other computer identification information when the management means refers to the data area according to the program;
When the management unit performs the reference according to the program and there are a plurality of other computer devices associated with the data area information, a communication speed is set among the plurality of other computer devices via the communication path. A function of acquiring data in the data area from the fastest computer device ;
A function of storing the data acquired from the data area of the other computer device in the storage unit by the management unit;
For causing the computer to execute.
前記管理手段により、さらに、前記プログラムに従って前記データ領域の更新を行う場合に前記他計算機識別情報を削除して前記自計算機識別情報を前記データ領域情報に対応付けて記憶する機能を前記コンピュータに実行させるための請求項15に記載のプログラム。  When the data area is updated according to the program, the management unit further executes a function of deleting the other computer identification information and storing the own computer identification information in association with the data area information in the computer. The program according to claim 15 for causing the program to occur.
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 JP2004246702A (en) 2004-09-02
JP3848268B2 true 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)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4476143B2 (en) 2005-03-18 2010-06-09 富士通株式会社 Blade type computer, blade management device, blade management program, and control 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
US8316220B2 (en) * 2005-09-27 2012-11-20 Sony Computer Entertainment Inc. Operating processors over a network
US7734827B2 (en) 2005-09-27 2010-06-08 Sony Computer Entertainment, Inc. Operation of cell processors
US8595747B2 (en) 2005-12-29 2013-11-26 Sony Computer Entertainment Inc. Efficient task scheduling by assigning fixed registers to scheduler
JP4863959B2 (en) * 2007-10-11 2012-01-25 株式会社日立製作所 Business service execution system, business service execution method, and business service execution program
JP5382449B2 (en) * 2007-11-26 2014-01-08 日本電気株式会社 Virtual machine migration system, virtual machine migration method, and virtual machine migration program
US9223611B2 (en) * 2010-12-28 2015-12-29 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
JP2004246702A (en) 2004-09-02

Similar Documents

Publication Publication Date Title
US20190075163A1 (en) Apparatus including an i/o interface and a network interface and related method of use
JP4369471B2 (en) Mirroring program, mirroring method, information storage device
US11287994B2 (en) Native key-value storage enabled distributed storage system
US8694469B2 (en) Cloud synthetic backups
JP4278445B2 (en) Network system and switch
US20090063556A1 (en) Root node for carrying out file level virtualization and migration
JP4615344B2 (en) Data processing system and database management method
JP2004178289A (en) Snapshot acquiring method, disk unit, and storage system
JP2002351703A (en) Storage device, file data backup method and file data copying method
JP2009087320A (en) Method and unit for unified nas/cas storage system
JPWO2004104838A1 (en) Data access response system, storage system, client device, cache device, and access method to data access response system
JP2007226347A (en) Computer system, management device for computer system, and data recovery management method
JP2014517363A (en) Clone file creation method and file system using it
TWI782487B (en) Method for performing simple storage service seamless migration using index objects, host device, and storage server
US10277678B2 (en) Method and an apparatus, and related computer-program products, for managing access request to one or more file systems
JP4278452B2 (en) Computer system
JP3848268B2 (en) Computer system, computer apparatus, data access method and program in computer system
JP5241298B2 (en) System and method for supporting file search and file operations by indexing historical file names and locations
JP2003296035A (en) Storage device and storage method
JPWO2007099636A1 (en) File system migration method, file system migration program, and file system migration apparatus
JP2004334481A (en) Virtualized information management apparatus
JP2007004710A (en) Storage access system, data transfer device, storage accessing method and program
JP2005018643A (en) Access system to shared disk device on storage area network, and client therefor
WO2021142768A1 (en) Method and apparatus for cloning file system
JP3754393B2 (en) Distributed file apparatus, process migration method thereof, and computer apparatus

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