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 PDFInfo
- 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
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,
[0020]
The
[0021]
The input /
[0022]
The
[0023]
For example, when the
[0024]
The
[0025]
The
[0026]
Thus, since each computer has a program transmission / reception unit, the
[0027]
Each of the
[0028]
The
[0029]
In the position management table 104, as the position data, correspondence between data area information indicating a data area accessed by the program
[0030]
The location management table 104 managed by the
[0031]
Although it is conceivable to use Ethernet (R), a wireless LAN, or the like as the
[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
[0033]
First, according to the present embodiment, when the program is transferred in the
[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
[0036]
Assume that the
[0037]
Therefore, the data update operation by the migrated
[0038]
Then, if the migrated
[0039]
Next, it is assumed that the
[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
[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
[0044]
First, the flow of processing of the
[0045]
When the program
[0046]
Next, data write operation, that is, update operation processing will be described with reference to FIG. When the
[0047]
In the case of FIG. 4, since the identifier of the computer other than the
[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
[0049]
The above is the processing flow of the
[0050]
When the
[0051]
Next, it is assumed that the
[0052]
When the
[0053]
First, the processing flow of the
[0054]
If the
[0055]
Next, a flow of processing of the
[0056]
When the
[0057]
In
[0058]
Therefore, after the
[0059]
As described above, in the
[0060]
Further, when the program
[0061]
As described above, when the
[0062]
Furthermore, it is assumed that the
[0063]
When the
[0064]
First, the processing flow of the
[0065]
According to the location management table 104, the computer identifier corresponding to the data area B is the identifier of the
[0066]
The
[0067]
Note that there is no restriction on the order of
[0068]
Further, when the program
[0069]
Since the program
[0070]
As described above, when the
[0071]
Further, it is assumed that the
[0072]
As described above, when the
[0073]
Therefore, by using the above data access method while the
[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
[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
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:
各計算機装置は、
通信路を介して他計算機装置と接続される通信手段と、
自計算機装置を示す自計算機識別情報を格納する格納手段と、
前記他計算機装置から、プログラムと、前記他計算機装置が有するデータ領域を示すデータ領域情報と、該データ領域情報に対応付けられ前記他計算機装置を示す他計算機識別情報と、の移送を受けるマイグレーション手段と、
前記プログラムに従って前記データ領域の参照を行う場合に前記他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶する管理手段と、
前記他計算機装置が有する前記データ領域から取得するデータを記憶する記憶手段と、
を備え、
前記管理手段は、前記プログラムに従って前記参照を行う場合に、前記データ領域情報に対応付けられた他計算機装置が複数あるときは、前記通信路を介する前記複数の他計算機装置の中で通信速度が最も速い計算機装置から前記データ領域のデータを取得することを特徴とする計算機システム。 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.
自計算機装置を示す自計算機識別情報を格納する格納手段と、
前記第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:
自計算機装置を示す自計算機識別情報を格納する格納手段と、
前記他計算機装置から、プログラムと、前記他計算機装置が有するデータ領域を示すデータ領域情報と、該データ領域情報に対応付けられ前記他計算機装置を示す他計算機識別情報と、の移送を受けるマイグレーション手段と、
前記プログラムに従って前記データ領域の参照を行う場合に前記他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶する管理手段と、
前記他計算機装置が有する前記データ領域から取得するデータを記憶する記憶手段と、
を備え、
前記管理手段は、前記プログラムに従って前記参照を行う場合に、前記データ領域情報に対応付けられた他計算機装置が複数あるときは、前記通信路を介する前記複数の他計算機装置の中で通信速度が最も速い計算機装置から前記データ領域のデータを取得することを特徴とする計算機装置。 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.
前記管理手段は、前記プログラムに従って前記データの参照を行う場合に前記第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.
前記管理手段は、前記プログラムに従って前記データ領域の参照を行う場合に前記他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶し、
前記管理手段は、前記プログラムに従って前記参照を行う場合に、前記データ領域情報に対応付けられた他計算機装置が複数あるときは、前記通信路を介する前記複数の他計算機装置の中で通信速度が最も速い計算機装置から前記データ領域のデータを取得し、
前記管理手段は、前記他計算機装置が有する前記データ領域から取得した前記データを前記記憶手段に記憶することを特徴とする計算機システムにおけるデータアクセス方法。 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 .
前記管理手段により、前記プログラムに従って前記データの参照を行う場合に前記第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
前記管理手段により、前記プログラムに従って前記データ領域の参照を行う場合に前記他計算機識別情報に加えて前記自計算機識別情報を前記データ領域情報に対応付けて記憶する機能と、
前記管理手段により、前記プログラムに従って前記参照を行う場合に、前記データ領域情報に対応付けられた他計算機装置が複数あるときは、前記通信路を介する前記複数の他計算機装置の中で通信速度が最も速い計算機装置から前記データ領域のデータを取得する機能と、
前記管理手段により、前記他計算機装置が有する前記データ領域から取得した前記データを前記記憶手段に記憶する機能と、
を前記コンピュータに実行させるためのプログラム。 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.
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)
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 |
-
2003
- 2003-02-14 JP JP2003037019A patent/JP3848268B2/en not_active Expired - Fee Related
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 |