JP2004246702A - Computer system, computer apparatus, and data access method and program in computer system - Google Patents
Computer system, computer apparatus, and data access method and program in computer system Download PDFInfo
- Publication number
- JP2004246702A JP2004246702A JP2003037019A JP2003037019A JP2004246702A JP 2004246702 A JP2004246702 A JP 2004246702A JP 2003037019 A JP2003037019 A JP 2003037019A JP 2003037019 A JP2003037019 A JP 2003037019A JP 2004246702 A JP2004246702 A JP 2004246702A
- Authority
- JP
- Japan
- Prior art keywords
- computer
- data
- data area
- program
- identification information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラムに関し、特に、複数の計算機間でソフトウエアプログラムのマイグレーションが行われる計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラムに関する。
【0002】
【従来の技術】
互いに通信が可能な複数の計算機で構成される計算機システムにおいて、ソフトウエアプログラム(以下、プログラムという)を計算機間で移送するマイグレーション技術がある。
【0003】
プログラムのマイグレーション技術は、動作中のプログラムの実行状態であるコンテキストを保存し、そのコンテキストを他の計算機に移送し、移送先の計算機においてその実行状態を復元することにより、プログラムを継続実行させるための技術である。プログラムのコンテキストとは、一般に、中央演算装置(以下、CPUともいう)のレジスタ値や、プログラムが使用しているメモリ領域の内容、外部との通信状態をいう。
【0004】
そのマイグレーション技術は、複数の計算機によって構成される計算機システムの高信頼化や負荷分散のために利用される。例えば、計算機が故障した場合、故障した計算機上で動作しているプログラムを、マイグレーション技術によってシステム内の正常な計算機に移送し、実行を継続することによってシステムの高信頼化が図られる。あるいは、システム内の特定の計算機に負荷が集中している場合、負荷が集中している計算機上のプログラムを、マイグレーション技術によってシステム内の負荷の低い計算機に移送し、実行を継続することによってシステムの負荷分散が実現される。
【0005】
プログラムのマイグレーションの代表的な手法は、種々開示されている(例えば、非特許文献1参照)。
【0006】
マイグレーション技術を使用する場合に、マイグレーション前後において、マイグレーション先の計算機において実行されるプログラムが、マイグレーション先の計算機が備える記憶媒体上のデータに対して継続してアクセスを行う必要がある場合がある。このような場合、プログラムのマイグレーション時に、プログラムのコンテキストに加えて、記憶媒体上のデータの内容も移送先の計算機が備える記憶媒体上に複製し、移送後のデータアクセスが移送先の計算機上で行われるようにすることによってマイグレーション前後での継続したデータアクセスが可能となる。このように、記憶媒体上のデータの内容複製を行ってしまえば、それ以降のデータアクセスは、高速に行うことができる。
【0007】
これに対し、マイグレーション先の計算機への記憶媒体上のデータの複製を行わずにマイグレーション前後で継続して記憶媒体上のデータに対してアクセスを行うために、ネットワークファイルシステムを用いることが多い。ネットワークファイルシステムの代表的なものとしては、NFS(Network File System)がある。NFSの技術は、種々の文献に開示されている(例えば、非特許文献2参照)。
【0008】
ネットワークファイルシステムを用いると、計算機システムを構成するどの計算機からも同じように記憶媒体上のデータに対してアクセスを行うことが可能となる。ネットワークファイルシステムは、データアクセスの際に、データの実体が格納されている計算機と通信を行うことによって、所望のデータを取得したり、更新したりすることができるようにする技術である。
【0009】
ネットワークファイルシステムを用いれば、マイグレーション元の計算機上で実行していたプログラムが使用していた記憶媒体上のデータは、マイグレーション先の計算機からも使用できるようになる。このように、マイグレーション対象のプログラムが使用している記憶媒体上のデータを、ネットワークファイルシステム上に格納し、各計算機から見えるデータを同一にする手法を利用して、マイグレーション時に記憶媒体上のデータの転送を行わないようにする場合が多い。
【0010】
但し、このネットワークファイルシステムを用いる計算機システムの形態は、そのシステムを構成する計算機間が高速なネットワークによって接続されていることを前提としている。これは、データに対する読み出しあるいは書き込みの際に、データの実体が格納されている計算機との間で参照あるいは更新のためのネットワーク通信が発生するため、低速なネットワーク接続が混在するような環境では、データの読み書きが非常に遅くなってしまうからである。一般に、データの読み出し及び書き込み性能は、プログラムの実行速度に大きな影響を与える。
【0011】
【非特許文献1】
エス・エー・バターフィールドとジー・ジェイ・ポペック(Butterfield,S.A. and Popec,G.J)著、「地域分散UNIXシステムにおけるネットワークタスキング(Network Tasking in the Locus Distributed Unix System)」、ユーズニックス夏84年(Usenix Summer ’84)、pp.62−71(1984)
【0012】
【非特許文献2】
ブレント・コーラガン(Callaghan, Brent)著、NFS イラストレイテッド(NFS Illustrated)、ISBN:0−201−32570−5、アディソン・ワイズレイ社(Addison Wesley)
【0013】
【発明が解決しようとする課題】
しかし、プログラムのマイグレーション時に記憶媒体上のデータの複製を行う場合、複製すべきデータが巨大であると、データの複製のためのネットワーク通信に時間がかかり、その結果、プログラムの移送にかかる時間が増大してしまう。その結果、プログラムのマイグレーション中はプログラムを停止させる必要があるため、プログラムのマイグレーションに時間がかかると、プログラムの停止時間が長くなってしまうという問題があった。
【0014】
一方、プログラムのマイグレーション時にデータの複製を行わずに、ネットワークファイルシステムを用いて記憶媒体上のデータを計算機間で共有するシステムを用いる場合は、マイグレーション先の計算機のプログラムがデータにアクセスする度に、データの実態を格納する計算機との間でネットワーク通信が発生するめに、データアクセスの速度が低下してしまうという問題があった。
【0015】
そこで、本発明は、プログラムのマイグレーションが行われるシステムにおいて、データアクセス速度を低下させずに、データアクセスをすることができる計算機システムを提供することを目的とする。
【0016】
【課題を解決するための手段】
本発明の計算機システムは、通信路を介して接続され、それぞれ記憶媒体を備える複数の計算機と、プログラム本体、該プログラム本体がアクセス可能なデータ領域とそのデータ領域を有する前記複数の計算機に含まれる特定の計算機を示す計算機識別情報とを対応付けて記憶する管理表、及び該管理表を管理する管理部とを備えるプログラム部と、前記プログラム部の移動を行うマイグレーション機能とを備える。マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理部は、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の計算機を示すときは、得られた計算機識別情報が示す計算機の前記データ領域からデータを取得して前記第一の計算機の記憶媒体に記憶すると共に、前記管理表の前記データ領域に対応させて前記第一の計算機の計算機識別情報を追加する。
【0017】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
【0018】
まず図1に基づき、本実施の形態に係わる計算機システムの構成を説明する。図1は、本実施の形態に係わる計算機システムの構成を示す構成図である。
【0019】
図1において、100は計算機システムであり、計算機101、計算機111及び計算機121を含む。各計算機は、通信路131によって接続されている。110は、計算機101と通信路131とを接続するため通信路であり、120は、計算機111と通信路131とを接続するため通信路であり、130は、計算機121と通信路131とを接続するため通信路である。なお、各通信路間は、図示しない接続装置を介して接続されている。
【0020】
計算機101は、プログラム部102を含む。プログラム部102は、後述するようにマイグレーションされるプログラム本体102aと、位置管理部103と、位置管理表104を含む。計算機101は、さらに、入出力部105と、ハードディスク等の記憶媒体106と、プログラム送受信部107と、通信装置109を含む。
【0021】
入出力部105は、プログラム部102からの指令に応じて、記憶媒体106に対するデータ入出力を行うプログラムである。プログラム送受信部107は、プログラムのマイグレーションと、移動すなわち移送されたプログラムの生成を行うプログラムである。プログラム送受信部107は、プログラム部102のマイグレーションのためのコンテキスト108を含み、コンテキスト108を管理する。通信装置109は、通信路131を介して、他の計算機とデータ通信を行う。
【0022】
計算機101は、プログラム本体102aがアクセスするデータの位置情報を管理する位置管理部103と位置管理表104とを有し、プログラム本体102aからのデータ入出力の要求をその位置管理部103を通して入出力部105へ供給している。位置管理部103は、プログラム部102の一部であり、プログラム本体102aが使用するデータがどの計算機にあるかを示す位置データを格納する位置管理表104を管理する。なお、位置管理表104は、プログラム部102が使用するメモリ内にあり、コンテキスト108に含まれる。
【0023】
例えば、プログラム本体102aが入出力部105を介してデータを記憶媒体106上のあるデータ領域に書き込むときは、位置管理部103を介して、入出力部105へ書込要求のアクセスのデータを供給し、書込要求を受けた入出力部105が記憶媒体106上のそのデータ領域への書き込みを行う。
【0024】
計算機111は、入出力部115と、ハードディスク等の記憶媒体116と、プログラム送受信部117と、通信装置119を含む。入出力部115は、入出力部105と同様に、記憶媒体116に対してデータ入出力を行うプログラムである。プログラム送受信部117は、プログラム送受信部107と同様に、プログラム部102のマイグレーションと、移送されたプログラムの生成を行うプログラムである。プログラム送受信部117は、プログラム部102のコンテキストを管理する。通信装置119は、通信装置109と同様に、通信路131を介して、他の計算機とデータ通信を行う。
【0025】
計算機121は、入出力部125と、ハードディスク等の記憶媒体126、プログラム送受信部127と、通信装置129を含む。入出力部125は、入出力部105と同様に、記憶媒体126に対してデータ入出力を行うプログラムである。プログラム送受信部127は、プログラム送受信部107と同様に、プログラムのマイグレーションと、移送されたプログラムの生成を行うプログラムである。プログラム送受信部127は、プログラム部102のコンテキストを管理する。通信装置129は、通信装置109と同様に、通信路131を介して、他の計算機とデータ通信を行う。
【0026】
このように、各計算機はプログラム送受信部を有するので、計算機システム100は、計算機間でプログラムのマイグレーションを行う機能を有する。従って、計算機システム100において、複数の計算機101、111及び121間において、プログラム部102が移送されながら、プログラム本体102aは動作することができる。
【0027】
計算機101、111及び121には、それぞれ固有の計算機識別情報である識別子が予め付けられており、各計算機は、その識別子によって特定が可能である。各計算機は、図示しないデータ格納手段であるメモリ装置に自己の計算機を示す計算機識別子のデータを格納している。位置管理部103は、プログラム部102を実行している計算機の識別子を取得することができる。計算機の識別子は、計算機のホスト名やIPアドレスなどを用いればよいが、計算機毎に固有であればその種類は問わない。
【0028】
位置管理部103は、プログラム本体102aが入出力部105に対して行ったアクセスの内容をモニタすることによって、記憶媒体106中のデータが書込みされる領域の情報を得る。位置管理部103は、プログラム本体102aによってアクセスされたデータ領域の情報と、プログラム本体102aを実行している計算機101の識別子の組み合わせを、位置管理表104に記憶して管理する。
【0029】
位置管理表104には、位置データとして、プログラム本体102aによってアクセスされるデータ領域を示すデータ領域情報と、そのデータ領域のデータを格納している計算機の識別子の対応が記録されている。図2は、位置管理表104の例を示す図である。位置管理表104は、データ領域を示すデータ領域情報毎に、そのデータ領域に対応するエントリに、そのデータ領域を有する特定の計算機を示す計算機の識別子が記録されている。この例では、領域Aのデータは計算機111が有していることを表している。同様に、領域Bのデータは計算機111および計算機121が有し、領域Cのデータは計算機101が有していることを表している。計算機101の有する位置管理表104において、計算機111と121の識別子が存在するのは、過去にプログラム本体102aが計算機111と121上で動作して、データを更新したことを表している。なお、表の更新方法については後述する。位置管理表104の各データ領域に対応するエントリすなわちデータ登録領域に記録できる計算機の識別子の数は規定しておらず、1つ以上であれば何個でもよく、さらに最新の数個の識別子を残すなど制限を設けるようにしてもよい。
【0030】
位置管理部103が管理する位置管理表104は、後述するように、プログラム部102が他の計算機へ移送されるときに、プログラム部102のコンテキストの一部として他の計算機へ転送される。
【0031】
通信路110、120、130及び131として、それぞれイーサネット(R)、無線LAN等を使用することが考えられるが、計算機間で相互に通信が行えればよく、特に種類は問わない。各通信路の通信速度の情報は、例えば、図3に示すような表形式データとして、各計算機に保持される。図3は、各通信路の速度を記録する速度管理表の例を示す図である。この例では、通信路131、120及び130の速度が100Mbpsの高速通信路であり、通信路110の速度が10Mbpsの低速通信路であることを示している。各計算機は、この速度管理表を参照することにより、計算機101と計算機111の間、及び計算機101と計算機121の間の通信速度が10Mbpsの低速で、計算機111と計算機121の間の通信速度は100Mbpsの高速であることを判断することができる。この表の管理方法は、各計算機がこの表を参照できればよく、特に規定されない。
【0032】
なお、本実施の形態においては、プログラムのマイグレーションの方法は、特に制限はない。マイグレーション処理は従来のマイグレーションと同様の方法を用いて、プログラムの実行コンテキストであるCPUのレジスタ値、プログラムが使用しているメモリの内容を計算機間で転送することによって実現できるので、マイグレーション処理の内容については説明を省略する。また、計算機111、121のプログラム送受信部を用いて、複数の計算機101、111、121の間で相互にプログラムのマイグレーションが可能であるが、これについても従来と同様の方法でマイグレーション処理ができるので説明は省略する。
【0033】
まず、本実施の形態によって、図1の計算機システム100において、プログラムが移送されていくときに、プログラムによってアクセスされたデータ領域のデータが、複数の計算機間でどのように分散して多重に複製されて格納されていくかを具体的な例を用いて説明する。
【0034】
図4から図7は、プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【0035】
図4に示すように、初期状態において、計算機101上でプログラム部102が動作しており、データ領域A、B及びCのデータは、計算機101が備えた記憶媒体106に格納され、プログラム部102は、記憶媒体106内のデータ領域A、B及びCにアクセスしていたとする。ここで、プログラム部102に含まれる位置管理表104において、データ領域A、B及びCに対応する計算機識別子は、それぞれ「101」のみであるとする。
【0036】
図4の初期状態から、プログラム部102が転送されて計算機111にマイグレーションされ、マイグレーション先の計算機111においてプログラム部102が継続して実行されたとする。計算機111上で動作するプログラム部102がその実行中にデータ領域Aのデータを書き込みすなわち更新するためのアクセスをすると、図5に示すように記録媒体106に更新データが、データ領域A(更新データ領域)のデータとして記録媒体116に記憶すなわち書き込まれる。従って、計算機111上で動作するプログラム部102は、その後データ領域Aにアクセスするときは、記録媒体116にアクセスする。このとき、図5に示すように、データ領域Aのデータは、計算機111の記録媒体116にのみ存在し、マイグレーション元の計算機101の記録媒体106に記録されたデータ領域Aのデータは無効とされる。
【0037】
よって、マイグレーションされたプログラム部102によるデータの更新動作は、プログラム部102が動作する計算機が備える記憶媒体に書き込むため、通信路を介する通信処理を伴わないので、高速に行い得る。
【0038】
そして、マイグレーションされた計算機111のプログラム部102が、データ領域Bのデータを参照、すなわち更新を行わずに単に読み出すためのアクセスをしたとすると、計算機101(参照データ保持計算機)から記録媒体106のデータ領域B(参照データ領域)のデータが取得され、図6に示すように、計算機111の記録媒体116に複製される。従って、その後、計算機111上で動作するプログラム部102がデータ領域Bのデータを参照するときは、記録媒体116に対してアクセスし、通信路を介する通信処理を行わないので、データの参照動作は高速に行い得る。
【0039】
次に、計算機111のプログラム部102が、計算機121に移送されたとする。そして、計算機121のプログラム部102がデータ領域Bのデータを参照すると、図6と同様に、計算機121は、計算機101との通信速度よりも速い計算機111から、データ領域B(参照データ領域)のデータを取得し、図7に示すように、参照データ領域のデータとして計算機121の記録媒体126に複製される。計算機101と計算機111は、共にデータ領域Bのデータを有する参照データ保持計算機であるが、通信路110の通信速度が10Mbpsで、通信路120の通信速度が100Mbpsであるので、計算機121は、計算機111からデータ転送を行う方が、計算機101からデータ転送を行うよりも効率的だからである。その後、計算機121のプログラム部102がデータ領域Bのデータを参照するときは、記録媒体126に対してアクセスする。
【0040】
このように、プログラムによってアクセスされる記憶媒体上のデータ領域のデータが、マイグレーション先の計算機上で動作するプログラムによって更新される場合、その更新データ領域のデータは、マイグレーション先の計算機が有する記憶媒体に記憶すなわち書き込まれ、かつマイグレーション元の計算機の対応するデータ領域のデータは無効とされる。また、プログラムによってアクセスされる記憶媒体上のデータ領域のデータが、マイグレーション先の計算機上で動作するプログラムによって参照される場合、その参照データ領域のデータは、マイグレーション先の計算機に転送され複製データが生成される。
【0041】
このような動作を行うことによって、マイグレーションされたプログラムがアクセスする記憶媒体上のデータ領域のデータが、複数の計算機上に分散して多重に格納されていく。さらに、後述するように、プログラムによるデータの参照動作の場合、参照データ領域のデータが複数の計算機(参照データ保持計算機)に多重に格納されているため、複数の参照データ保持計算機の中から、最も高速にデータ転送を行える計算機から参照データ領域のデータの転送を行うことによって、効率的なデータアクセスを行えるようになる。
【0042】
次に、上述した図4から図7に示すように、計算機システム上でプログラムが移送されていく過程を例にして、データ更新動作とデータ参照動作の処理を、図8、図9及び図10を用いて説明する。図8は、データ参照の場合の位置管理部103の処理の流れの例を示すフローチャートである。図9は、データ更新の場合の位置管理部103の処理の流れの例を示すフローチャートである。図10は、プログラムがマイグレーションされながら、データの更新と参照を行っていくときに、位置管理表の内容がどのように変化していくかの例を説明するための図である。
【0043】
図4の状態では、図2の位置管理表において、領域A、B及びCの計算機識別子は、全て「101」であり、「101」以外の他の計算機識別子はないとする。これは、プログラム部102が計算機111へ移送される前は、プログラム部102は、記録媒体106の領域A,B及びCに対してデータアクセスを行っているからである。
【0044】
まず、計算機101上で動作するプログラム部102が、記憶媒体106上のデータ領域に対してデータの参照及び更新を行う場合の位置管理部103の処理の流れについて説明する。始めにデータの参照動作の処理について図8を用いて説明する。
【0045】
計算機101上で動作するプログラム本体102aが位置管理部103に対して、データ領域Bのデータの参照要求を出すと、位置管理部103はその参照要求を受信する(ステップ401)。次に、位置管理部103は、位置管理表104に基いて、参照要求における参照されるデータ領域(参照データ領域)が、自己の計算機にあるか否かを判断する(ステップ402)。言い換えると、位置管理部103は、位置管理表104のデータ領域Bに対応するエントリに計算機101の識別子が存在するか否かをチェックする。図4の場合は計算機101の識別子が位置管理表104のデータ領域Bに対応するエントリにある、すなわち計算機101はデータ領域Bのデータを有する計算機(参照データ保持計算機)であるので、ステップ402でYESとなり、位置管理部103は、入出力部105を介して、自己の記憶媒体106からそのデータを読み出す(ステップ403)。そして、位置管理部103は、入出力部105から受信したデータを、プログラム本体102aへ供給する(ステップ408)。
【0046】
次に、データの書込動作すなわち更新動作の処理について図9を用いて説明する。計算機101上で動作するプログラム部102が、書込データと共に書き込み要求、すなわち更新要求を発行すると、位置管理部103は、その更新要求を受信する(ステップ501)。位置管理部103は、位置管理表104に基いて、更新要求があったデータ領域(更新データ領域)は、自己以外の計算機に属するかを判断する(ステップ502)。例えば、プログラム本体102aがデータ領域Aのデータを更新する場合、位置管理部103は、位置管理表104の領域Aに対応するエントリに計算機101以外の計算機の識別子が存在するかをチェックする。
【0047】
図4の場合、データ領域Aのエントリに計算機101以外の計算機の識別子が存在しないので、処理は、ステップ505へ進み、自己の記憶媒体106に、データ領域Aのデータとして書込データを書き込む(ステップ505)。
【0048】
図4の場合、位置管理表104中の各データ領域に対応する計算機識別子は、全て「101」となっているので、計算機識別子のデータが「101」のデータ領域に対する更新動作において、処理は、ステップ502でNOとなり、位置管理部103は、入出力部105に対して更新要求を転送し、入出力部105は、記憶媒体106に、更新すべきデータ領域の書込データを書き込む(ステップ505)。
【0049】
以上が、上述した初期状態における、計算機101上で動作するプログラム部102が、データを参照及び更新するときの位置管理部103の処理の流れである。なお、ステップ502から504と、ステップ505とは、処理の順序に制約はなく、どちらを先に行っても、あるいは同時に行ってもよい。
【0050】
プログラム部102が計算機101上で動作して、計算機101の記憶媒体106のデータにアクセスしているときは、図10のステップ611の状態であり、そのとき位置管理表104の内容は、601で示す状態である。
【0051】
次に、図10のステップ612に示すように、計算機101から計算機111へのプログラム部102のマイグレーションを行ったとする。このとき、プログラム部102は、計算機111へ移送されるので、位置管理部103及び位置管理表104も一緒に計算機111へ転送される。移送されたプログラム部102は、計算機111によって復元されて再実行される。
【0052】
プログラム102のマイグレーション後、プログラム部102が再実行されると、プログラム本体102aは、位置管理部103を介して入出力部に対してデータアクセスを行うが、そのとき、位置管理部103は、図8と図9の処理を実行する。
【0053】
まず、計算機111上で動作するプログラム本体102aが、データ領域Aのデータの更新をする場合の位置管理部103の処理の流れについて説明する。図9において、プログラム本体102aが、書込データと共にデータの書き込み要求、すなわち更新要求を発行すると、位置管理部103は、その更新要求を受信する(ステップ501)。位置管理部103は、位置管理表104に基いて、更新要求があったデータ領域(更新データ領域)は、自己以外の計算機に属するか、すなわちマイグレーション先の計算機111の記録媒体116以外にあるかを判断する(ステップ502)。
【0054】
プログラム部102は、計算機101から移送され、各データ領域のデータに対するアクセスを未だ行っていないのであれば、位置管理表104中の各データ領域に対応する計算機識別子は、全て「101」となっている。よって、ステップ502でYESとなり、データ領域Aに対応する、自己以外の計算機識別子である計算機識別子データ「101」を削除され(ステップ503)、記憶媒体106上のデータは無効とされる。次に、位置管理表104において、更新要求のあったデータ領域Aに対応する計算機識別子として、自己の計算機の計算機識別子「111」を書き込む(ステップ504)。そして、更新要求に従って、入出力部115に対して更新要求を転送し、入出力部115は、自己の記憶媒体115に、データ領域Aの書込データを書き込む(ステップ505)。
【0055】
次に、計算機111上で動作するプログラム本体102aが、データ領域Bのデータの参照をする場合の位置管理部103の処理の流れについて説明する。
【0056】
プログラム本体102aが位置管理部103に対してデータ領域Bのデータの参照要求を出すと、位置管理部103は、その参照要求を受信する(ステップ401)。位置管理部103は位置管理表104のデータ領域B(参照データ領域)に対応するエントリに計算機111の識別子が存在するかどうかをチェックする(ステップ402)。参照要求に係るデータ領域Bについては、自己の計算機である計算機111の識別子が位置管理表104にまだ存在せず、その代わりに計算機101の識別子が存在するので、ステップ402でNOとなり、処理は、ステップ404へ進む。
【0057】
ステップ404では、参照データ領域であるデータ領域Bのエントリに存在する計算機の識別子を調べ、複数の識別子がある場合はその中から計算機111ともっとも高速にデータの転送を行うことができる計算機を選択して参照要求をその計算機へ出力する。ここでは、位置管理表104のデータ領域Bのエントリには計算機101のみの識別子が存在しているので、計算機101からデータを転送するしかないので、計算機101(参照データ保持計算機)が選択される。位置管理部103は、通信装置119、通信路120、131、110、通信装置109、入出力部105を通して、記憶媒体106からデータ領域Bのデータを読み込む(ステップ405)。位置管理部103は、入出力部115を介して、記憶媒体116に取得したデータ領域Bのデータを書き込む(ステップ406)。位置管理部103は位置管理表104のデータ領域Bに対応するエントリに、自己の計算機識別子である計算機111の識別子を追加する(ステップ407)。そして、ステップ405で取得したデータを、プログラム本体102aに供給する(ステップ408)。
【0058】
従って、プログラム部102が計算機101から計算機111へ移送された後、マイグレーション先の計算機111が、データ更新を行うと、更新されたデータは計算機111の記憶媒体116に記憶され、同時に計算機101の記憶媒体106上のデータは無効とされ、マイグレーション先の計算機111がデータ参照を行うと、参照されたデータの複製が記憶媒体116に記憶される(図6参照)。
【0059】
以上のように、マイグレーション先の計算機111において、プログラム本体102aが入出力部115を介して記憶媒体116上のデータを参照した場合、位置管理部103は、入出力部115へのアクセス内容を監視しているので、参照されたデータ領域のデータがどの計算機に格納されているのかを、位置管理部103が管理する位置管理表104を用いて検索する。次に、検索で見つかったデータを保持する計算機(参照データ保持計算機)の一覧の中から、現在プログラムを実行している計算機111に、もっとも高速にデータを転送可能な計算機を選択し、その計算機の記憶媒体からデータを読み込む。
【0060】
さらに、プログラム本体102aがデータ領域のデータを参照するために他の計算機からそのデータを取得した場合、プログラムを実行している計算機111が備える記憶媒体116にもそのデータを複製し、位置管理部103が管理する位置管理表104の、参照したデータ領域に対応するエントリに計算機111の識別子を追加する。これにより、システムを構成する複数の計算機上にデータが分散して多重に格納され、以後、このデータ領域に対する参照が起きた場合、計算機111の記憶媒体も参照先として用いることが可能となる。
【0061】
以上のように、計算機111上で動作するプログラム本体102aがデータ領域Aのデータを更新し、さらにデータ領域Bのデータを参照する(ステップ613)と、位置管理表104の内容は、602で示す状態となる。
【0062】
さらに、計算機111から計算機121へプログラム部102が移送されたとする(ステップ614)。プログラム部102は、計算機121へ移送されるので、位置管理部103及び位置管理表104も一緒に計算機121へ転送される。移送されたプログラム部102は、計算機121において復元されて再実行される。
【0063】
プログラム部102のマイグレーション後、プログラム部102が再実行されると、プログラム本体102aは、計算機121における位置管理部103を介して入出力部125に対してデータアクセスを行う。
【0064】
まず、計算機121上で動作するプログラム本体102aが、領域Bのデータの参照をする場合の位置管理部103の処理の流れについて説明する。プログラム本体102aが位置管理部103を介してデータの参照をする場合、プログラム本体102aが位置管理部103に対してデータ領域Bのデータの参照要求を出す。位置管理部103は、その参照要求を受信する(ステップ401)。位置管理部103は位置管理表104のデータ領域Bに対応するエントリに計算機121の識別子が存在するかどうかをチェックする(ステップ402)。このとき、計算機121の識別子は、未だ位置管理表104のデータ領域Bのエントリに存在しないので、ステップ402でNOとなって、計算機121ともっとも高速にデータの転送を行うことができる計算機(参照データ保持計算機)を、図3の速度管理表のデータに基いて抽出し、その最も転送速度が速い計算機に参照要求を送信する(ステップ404)。
【0065】
データ領域Bに対応する計算機識別子は、位置管理表104によれば、計算機101と計算機111(共に参照データ保持計算機)の識別子になっているので、計算機101又は計算機111からデータ領域Bのデータの転送をしてもらわなければならない。そこで、位置管理部103は、図3の各通信路の速度データに基いて、計算機101と計算機111のいずれから転送を受けた方がデータを早く参照できるかを決定する。例えば、計算機121と計算機101との間では、通信路130、131及び110を経由するので、一番遅い通信路110の速度、10Mbpsとなる。一方、計算機121と計算機111との間では、通信路130、131及び120を経由するので、全て同じ通信速度なので、100Mbpsとなる。よって、計算機101が接続されている通信路110が通信速度は通信路110、130、131よりも遅く、計算機111からデータを転送したほうが高速なので、位置管理部103は計算機111を選択する。位置管理部103は、計算機111からデータ領域Bのデータを転送するために、最も転送速度が速い計算機111へ参照要求を送信する(ステップ404)。
【0066】
位置管理部103は、通信装置129、通信路130、131、120、通信装置119、入出力部115を通して、記憶媒体116からデータ領域Bのデータを読み込む(ステップ405)。位置管理部103は入出力部125を通して、読み出して取得したデータ領域Bのデータを記憶媒体126に書き込む(ステップ406)。位置管理部103は位置管理表104のデータ領域Bに対応するエントリに計算機121の識別子を追加する(ステップ407)。ステップ405で取得したデータを、プログラム本体102aに出力する(ステップ408)。その結果、ここまでの参照動作によって、各記憶媒体上のデータは、図7に示すようになる。
【0067】
なお、ステップ404から406と、ステップ407に順序の制約はなく、どちらを先に行っても、同時に行ってもよい。
【0068】
さらに、計算機121上のプログラム本体102aが、データ領域Aのデータを更新しようとすると、図9の処理が実行される。
【0069】
プログラム本体102aは、計算機111においてデータ領域Aのデータを更新したので、位置管理表104中のデータ領域Aに対応する計算機識別子は、「111」となっている。よって、ステップ502でYESとなり、データ領域Aに対応する計算機識別子データ「111」を削除する(ステップ503)。次に、位置管理表104において、更新要求のあったデータ領域A(更新データ領域)に対応する計算機識別子として、自己の計算機の計算機識別子「121」を書き込む(ステップ504)。そして、更新要求に従って、入出力部125に対して更新要求を転送し、入出力部125は、記憶媒体126に、データ領域Aのデータとして書込データを書き込む(ステップ505)。その結果、データ領域Aのデータは、計算機121の記憶媒体126に書き込まれ、計算機111の記憶媒体116上のデータ領域Aのデータは無効とされる。
【0070】
以上のように、プログラム本体102aがデータ領域Bのデータを参照し、さらに領域Aのデータを更新する(ステップ615)と、位置管理表104の内容は、603で示す状態である。
【0071】
そして、さらに、計算機121から計算機101へプログラム部102のマイグレーションが行われたとする(ステップ616)。そして、計算機101上のプログラム本体102aがデータ領域Bのデータを参照したとすると、位置管理表104において、データ領域Bに対応するエントリには計算機101の識別子も含まれているので、位置管理部103は、ステップ402でYESとなって、ステップ403において、記憶媒体106から参照すべきデータ領域Bのデータが読み出される。
【0072】
以上のように、プログラム本体102aがデータ領域Bのデータを参照する(ステップ617)と、位置管理表104の内容は、604で示す状態である。
【0073】
よって、プログラム部102が計算機101、111、121の間でマイグレーションしながら、以上のデータアクセス方法を用いることによって、データの複製が複数の計算機上に分散して多重に格納されていく。その結果、システム内の計算機間で多重化して配置されるデータが増加し、データが必要になったときに、データを格納している計算機のうち、もっとも高速にデータ通信を行える計算機からデータを取得することで効率的な参照アクセスを実現する。また、更新アクセスも、プログラムが動作する計算機が備える記憶媒体に対して行うため、高速に行うことができる。
【0074】
以上説明したように、プログラムが計算機システムを構成する計算機間で移送され、そのプログラムがデータの更新をすると、そのマイグレーション先の計算機の記憶媒体上にデータが格納される。また、マイグレーション先の計算機上のプログラムがデータの参照をすると、そのマイグレーション先の計算機の記憶媒体上にデータが複製され、かつその複製を生成するとき、分散して記憶されているデータを格納している複数の参照データ保持計算機の中から、もっとも高速にデータを転送できる計算機を選択して参照することによって、データの転送を高速に行えるので、効率的な参照アクセスを実現することができる。
【0075】
なお、以上の説明では、プログラム本体102aがデータを参照する場合について説明したが、データの先読み等の目的で、位置管理部103がデータを参照する場合に、上述した参照処理を行うようにしてもよい。
【0076】
また、上述したように、本実施の形態におけるプログラムのマイグレーションの方法は、従来のマイグレーションの方法と同様に、プログラムのコンテキストを他の計算機に移送し、マイグレーション先の計算機でプログラムの実行状態を復元する方法を用いる。その場合のコンテキストの保存や転送の手法は、どのような方法でもよく、その方法は限定されない。
【0077】
さらに、マイグレーションされるプログラムは、通常のアプリケーションプログラムでも、オペレーティングシステムのプログラム等でもよい。
【0078】
さらに、上述した説明では、プログラムによってアクセスされるデータ領域は、計算機に備えられた記憶媒体にあるとして説明したが、計算機上で動作するプログラムからはファイルとして扱われる場合もあるので、記憶媒体にはファイルも含まれるものとする。その場合は、プログラムによってアクセスされるデータ領域は、ファイル内を分割したデータ領域である。
【0079】
さらにまた、本実施の形態では、位置管理部又は位置管理表は、プログラムの一部としても説明したが、マイグレーションされるプログラムに含まれないようにしてもよい。その場合、位置管理部又は位置管理表は、マイグレーション元の計算機から、マイグレーションの対象であるプログラムとは別にマイグレーション先の計算機へ送信されるようにしてもよいし、あるいは位置管理表のみ計算機間で通信し、位置管理部は予め計算機に組み入れておいてもよい。
【0080】
また、データの参照をする場合、マイグレーション先の計算機がそのデータを他の計算機から取得するタイミングは、上述した実施の形態では、プログラムがデータを参照したときに行っているが、その取得のタイミングは、プログラムがデータを参照したとき以外でもよい。例えば、プログラムからの参照要求に先立って位置管理部が他の計算機からのデータ読み込みを行うという、いわゆるデータの先読みキャッシュ等のときでもよい。すなわち、プログラムがデータを参照するとき以外にも、データの参照動作をする前に、先読みなどのために事前にデータを参照する場合にも上述した方法を適用することができる。
【0081】
以上のように、本実施の形態によれば、プログラムのマイグレーション時に、記憶媒体上のデータを移送先の計算機の記憶媒体への複製を行う必要がないので、高速にマイグレーションを行うことができ、プログラムの停止時間を短く抑えることが可能になる。
【0082】
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウエアやソフトウエア・ルーチンに1対1には対応しない。従って、本明細書では、以上、実施の形態の各機能を有する仮想的回路ブロック(部)を想定して実施の形態を説明した。また、本実施の形態における各手順の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。
【0083】
なお、以上説明した動作を実行するプログラムは、フロッピー(登録商標)ディスク、CD−ROM等の可搬媒体や、ハードディスク等の記憶装置等に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明の計算機システムを実現することができる。
【0084】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【0085】
【発明の効果】
以上説明したように、本発明によれば、プログラムのマイグレーションが行われるシステムにおいて、データアクセス速度を低下させずに、データアクセスをすることができる計算機システムを実現することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係わる計算機システムの構成を示す構成図である。
【図2】本発明の実施の形態に係わる位置管理表の例を示す図である。
【図3】本発明の実施の形態に係わる速度管理表の例を示す図である。
【図4】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図5】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図6】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図7】プログラムが移送されていくときに、計算機間でデータが複製されていく様子の例を説明するための図である。
【図8】本発明の実施の形態に係わる、データ参照の場合の位置管理部の処理の流れを示すフローチャートである。
【図9】本発明の実施の形態に係わる、データ更新の場合の位置管理部の処理の流れの例を示すフローチャートである。
【図10】プログラムがマイグレーションされながら、データの更新と参照を行っていくときに、位置管理表の内容がどのように変化していくかの例を説明するための図である。
【符号の説明】
100・・・計算機システム、101、111、121・・・計算機、110、120、130、131・・・通信路、106、116、126・・・記憶媒体[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a computer system, a computer device, a data access method and a program in the computer system, and more particularly to a computer system, a computer device, a data access method and a program in a computer system in which a software program is migrated among a plurality of computers. .
[0002]
[Prior art]
In a computer system including a plurality of computers that can communicate with each other, there is a migration technique for transferring a software program (hereinafter, referred to as a program) between computers.
[0003]
The program migration technology saves a context, which is the execution state of a running program, transfers the context to another computer, and restores the execution state on the transfer destination computer, so that the program can be continuously executed. Technology. The context of a program generally refers to a register value of a central processing unit (hereinafter, also referred to as a CPU), contents of a memory area used by the program, and a state of communication with the outside.
[0004]
The migration technique is used for increasing the reliability and load distribution of a computer system composed of a plurality of computers. For example, when a computer fails, a program running on the failed computer is transferred to a normal computer in the system by a migration technique, and the execution of the program is continued, thereby increasing the reliability of the system. Alternatively, when the load is concentrated on a specific computer in the system, the program on the computer on which the load is concentrated is transferred to a low-load computer in the system by the migration technology, and the system is executed by continuing the execution. Is realized.
[0005]
Various typical methods of program migration have been disclosed (for example, see Non-Patent Document 1).
[0006]
When the migration technology is used, before and after migration, a program executed on the migration destination computer may need to continuously access data on a storage medium provided in the migration destination computer. In such a case, at the time of program migration, in addition to the context of the program, the contents of the data on the storage medium are copied onto the storage medium of the computer at the transfer destination, and data access after the transfer is performed on the computer at the transfer destination. By doing so, continuous data access before and after migration becomes possible. As described above, once the content of the data on the storage medium has been copied, subsequent data access can be performed at a high speed.
[0007]
On the other hand, a network file system is often used to continuously access data on a storage medium before and after migration without duplicating data on the storage medium to a migration destination computer. A representative example of the network file system is NFS (Network File System). The NFS technology is disclosed in various documents (for example, see Non-Patent Document 2).
[0008]
When the network file system is used, it is possible to access the data on the storage medium in the same manner from any computer constituting the computer system. The network file system is a technology that enables, at the time of data access, communication with a computer storing the substance of data to obtain or update desired data.
[0009]
If a network file system is used, data on a storage medium used by a program executed on a migration source computer can be used by a migration destination computer. As described above, the data on the storage medium used by the program to be migrated is stored on the network file system, and the data on the storage medium is used for the migration at the time of the migration by using the technique of making the data visible from each computer the same. In many cases, the transfer is not performed.
[0010]
However, the form of the computer system using the network file system is based on the premise that the computers constituting the system are connected by a high-speed network. This is because when reading or writing data, network communication for reference or update occurs with the computer where the data entity is stored, so in an environment where low-speed network connections are mixed, This is because reading and writing data becomes very slow. Generally, data reading and writing performance has a great influence on the execution speed of a program.
[0011]
[Non-patent document 1]
SA Butterfield and B. J. Poppec, SA and Popec, G. J., "Network Tasking in the Lost Distributed Unix," U.S.A. Knicks Summer 84 (Usenix Summer '84), pp. 62-71 (1984)
[0012]
[Non-patent document 2]
NFS Illustrated, Callaghan, Brent, ISBN: 0-201-32570-5, Addison Wesley.
[0013]
[Problems to be solved by the invention]
However, when copying data on a storage medium during program migration, if the data to be copied is huge, network communication for data copying takes time, and as a result, the time required to transfer the program is reduced. Will increase. As a result, it is necessary to stop the program during the migration of the program, so that if the migration of the program takes a long time, there is a problem that the stop time of the program becomes longer.
[0014]
On the other hand, when using a system in which data on a storage medium is shared between computers using a network file system without duplicating data at the time of program migration, every time a program of a migration destination computer accesses data, However, there has been a problem that the speed of data access is reduced due to the occurrence of network communication with a computer that stores the actual state of data.
[0015]
Therefore, an object of the present invention is to provide a computer system that can perform data access without lowering the data access speed in a system in which program migration is performed.
[0016]
[Means for Solving the Problems]
The computer system of the present invention is included in a plurality of computers connected via a communication path, each including a storage medium, a program body, a data area accessible by the program body, and the plurality of computers having the data area. A program unit including a management table for storing computer identification information indicating a specific computer in association with a management unit, a management unit for managing the management table, and a migration function for moving the program unit. By the migration function, after moving the program unit to the first computer of the plurality of computers, when the program body performs a reference operation to the data area, the management unit, based on the management table, When the computer identification information having the data area to be referred to is obtained and the obtained computer identification information indicates a computer other than the first computer, data is obtained from the data area of the computer indicated by the obtained computer identification information. Is acquired and stored in the storage medium of the first computer, and computer identification information of the first computer is added in association with the data area of the management table.
[0017]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0018]
First, a configuration of a computer system according to the present embodiment will be described with reference to FIG. FIG. 1 is a configuration diagram showing a configuration of a computer system according to the present embodiment.
[0019]
In FIG. 1,
[0020]
The
[0021]
The input /
[0022]
The
[0023]
For example, when the
[0024]
The
[0025]
The
[0026]
As described above, since each computer has the program transmission / reception unit, the
[0027]
Each of the
[0028]
The
[0029]
The position management table 104 records, as position data, correspondence between data area information indicating a data area accessed by the
[0030]
As will be described later, the location management table 104 managed by the
[0031]
Ethernet (R), wireless LAN, or the like may be used as the
[0032]
In the present embodiment, there is no particular limitation on the method of migrating the program. The migration process can be realized by transferring the register value of the CPU, which is the execution context of the program, and the content of the memory used by the program between the computers using the same method as the conventional migration. The description of is omitted. In addition, the programs can be mutually migrated among the plurality of
[0033]
First, according to the present embodiment, in the
[0034]
FIGS. 4 to 7 are diagrams for explaining an example of how data is copied between computers when a program is transferred.
[0035]
As shown in FIG. 4, in an initial state, the
[0036]
It is assumed that the
[0037]
Therefore, the data update operation by the migrated
[0038]
Then, assuming that the
[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 updated data area is stored in the storage medium of the migration destination computer. The data in the corresponding data area of the migration source computer is invalidated. When the data in the data area on the storage medium accessed by the program is referred to by the program operating on the migration destination computer, the data in the reference data area is transferred to the migration destination computer and the copy data is Generated.
[0041]
By performing such an operation, the data in the data area on the storage medium accessed by the migrated program is distributed and stored multiplexed on a plurality of computers. Further, as will be described later, in the case of a data reference operation by a program, since the data in the reference data area is multiplexed and stored in a plurality of computers (reference data holding computers), a plurality of reference data holding computers By transferring data in the reference data area from a computer capable of transferring data at the highest speed, efficient data access can be performed.
[0042]
Next, as shown in FIGS. 4 to 7 described above, the processes of the data update operation and the data reference operation will be described with reference to FIGS. This will be described with reference to FIG. FIG. 8 is a flowchart illustrating an example of a processing flow of the
[0043]
In the state of FIG. 4, in the location management table of FIG. 2, the computer identifiers of the areas A, B, and C are all “101”, and there is no other computer identifier other than “101”. This is because the
[0044]
First, the flow of processing performed by the
[0045]
When the program
[0046]
Next, processing of a data write operation, that is, an update operation, 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, the computer identifiers corresponding to the respective data areas in the location management table 104 are all “101”, so in the update operation on the data area with the computer identifier data of “101”, the processing is as follows. NO in
[0049]
The above is the flow of processing of the
[0050]
When the
[0051]
Next, it is assumed that the migration of the
[0052]
After the migration of the
[0053]
First, the flow of processing of the
[0054]
If the
[0055]
Next, a processing flow of the
[0056]
When the
[0057]
In
[0058]
Therefore, after the
[0059]
As described above, in the
[0060]
Further, when the
[0061]
As described above, when the
[0062]
Further, it is assumed that the
[0063]
After the migration of the
[0064]
First, the flow of processing of the
[0065]
According to the location management table 104, the computer identifier corresponding to the data area B is an 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]
Then, it is further assumed that the migration of the
[0072]
As described above, when the
[0073]
Therefore, by using the above data access method while the
[0074]
As described above, the program is transferred between the computers constituting the computer system, and when the program updates the data, the data is stored on the storage medium of the migration destination computer. When a program on the migration destination computer refers to the data, the data is copied on the storage medium of the migration destination computer, and when the copy is generated, the data stored in a distributed manner is stored. By selecting and referencing a computer capable of transferring data at the highest speed from among a plurality of reference data holding computers, data transfer can be performed at a high speed, so that efficient reference access can be realized.
[0075]
In the above description, the case where the
[0076]
As described above, the program migration method according to the present embodiment transfers the program context to another computer and restores the execution state of the program on the migration destination computer, similarly to the conventional migration method. Is used. In this case, the method of storing and transferring the context may be any method, and the method is not limited.
[0077]
Further, the program to be migrated may be a normal application program, an operating system program, or the like.
[0078]
Further, in the above description, the data area accessed by the program is described as being in the storage medium provided in the computer. However, since the program operating on the computer may be treated as a file, the data area may be stored in the storage medium. Include files. In that case, the data area accessed by the program is a data area obtained by dividing the file.
[0079]
Furthermore, in the present embodiment, the position management unit or the position management table has been described as a part of the program, but may not be included in the program to be migrated. In this case, the location management unit or location management table may be transmitted from the migration source computer to the migration destination computer separately from the migration target program, or only the location management table may be transmitted between the computers. The communication may be performed, and the position management unit may be incorporated in the computer in advance.
[0080]
In the case of referring to data, the timing at which the migration destination computer acquires the data from another computer is performed when the program refers to the data in the above-described embodiment. May be other than when the program refers to the data. For example, it may be a so-called data read-ahead cache in which the location management unit reads data from another computer prior to a reference request from a program. That is, the above-described method can be applied not only when the program refers to the data but also when referring to the data in advance for pre-reading or the like before performing the data referencing operation.
[0081]
As described above, according to the present embodiment, at the time of program migration, it is not necessary to copy data on the storage medium to the storage medium of the transfer destination computer, so migration can be performed at high speed. It is possible to keep the program stop time short.
[0082]
Each “unit” in the present specification is a conceptual one corresponding to each function of the embodiment, and does not necessarily correspond one-to-one to a specific hardware or software routine. Therefore, in this specification, the embodiments have been described above assuming virtual circuit blocks (units) having the functions of the embodiments. Also, the steps of each procedure in the present embodiment may be executed in a different order, and may be executed at the same time, or may be executed in a different order for each execution, as long as they do not violate the nature.
[0083]
The program for performing the above-described operations is recorded in whole or in part or in a portable medium such as a floppy (registered trademark) disk or a CD-ROM, or a storage device such as a hard disk. I have. The program is read by the computer, and all or a part of the operation is executed. Alternatively, the whole or a part of the program can be distributed or provided via a communication network. The user can easily realize the computer system of the present invention by downloading the program via a communication network and installing the program on a computer, or installing the program on a computer from a recording medium.
[0084]
The present invention is not limited to the above-described embodiment, and various changes and modifications can be made without departing from the spirit of the present invention.
[0085]
【The invention's effect】
As described above, according to the present invention, in a system in which a program is migrated, a computer system capable of performing data access without lowering the data access speed can be realized.
[Brief description of the drawings]
FIG. 1 is a configuration diagram showing a configuration of a computer system according to an embodiment of the present invention.
FIG. 2 is a diagram showing an example of a location management table according to the embodiment of the present invention.
FIG. 3 is a diagram showing an example of a speed management table according to the embodiment of the present invention.
FIG. 4 is a diagram for explaining an example of how data is copied between computers when a program is transferred.
FIG. 5 is a diagram for explaining an example of how data is copied between computers when a program is transferred.
FIG. 6 is a diagram for explaining an example of how data is copied between computers when a program is transferred.
FIG. 7 is a diagram for explaining an example of how data is copied between computers when a program is transferred.
FIG. 8 is a flowchart showing a processing flow of a position management unit in the case of data reference according to the embodiment of the present invention.
FIG. 9 is a flowchart illustrating an example of a processing flow of a position management unit in the case of data update according to the embodiment of the present invention.
FIG. 10 is a diagram for explaining an example of how the contents of the location management table change when updating and referencing data while a program is being migrated.
[Explanation of symbols]
100: Computer system, 101, 111, 121: Computer, 110, 120, 130, 131: Communication channel, 106, 116, 126: Storage medium
Claims (16)
前記マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理部は、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の計算機を示すときは、得られた計算機識別情報が示す計算機の前記データ領域からデータを取得して前記第一の計算機の記憶媒体に記憶すると共に、前記管理表の前記データ領域に対応させて前記第一の計算機の計算機識別情報を追加することを特徴とする計算機システム。A plurality of computers connected via a communication path, each including a storage medium, a program body, a data area accessible by the program body, and a computer identification indicating a specific computer included in the plurality of computers having the data area In a computer system including a management table that stores information in association with information, and a management unit that manages the management table, and a migration function that moves the program unit,
By the migration function, after moving the program unit to the first computer of the plurality of computers, when the program body performs a reference operation to the data area, the management unit, in the management table, Obtaining computer identification information having the data area to be referred to based on, when the obtained computer identification information indicates a computer other than the first computer, from the data area of the computer indicated by the obtained computer identification information A computer system, wherein data is acquired and stored in a storage medium of the first computer, and computer identification information of the first computer is added in correspondence with the data area of the management table.
前記第一の計算機の記憶媒体の前記データ領域の内容を更新するとともに、
前記管理表の前記データ領域に対応する計算機識別情報を前記第一の計算機の計算機識別情報に書き換えることを特徴とする請求項1記載の計算機システム。When the program body performs an update operation on data in the data area of the storage medium of the first computer, the management unit includes:
While updating the contents of the data area of the storage medium of the first computer,
2. The computer system according to claim 1, wherein the computer identification information corresponding to the data area in the management table is rewritten to the computer identification information of the first computer.
前記管理表に基づいて、参照する前記データ領域に対応する計算機識別情報を得て、得られた計算機識別情報が前記第一の計算機以外の複数の計算機を示すときは、前記通信路を介する前記第一の計算機との通信速度が最も速い計算機から前記データ領域のデータを取得することを特徴とする請求項1から請求項3のいずれかに記載の計算機システム。When the program body performs a reference operation on the data area, the management unit includes:
Based on the management table, obtain computer identification information corresponding to the data area to be referenced, and when the obtained computer identification information indicates a plurality of computers other than the first computer, the The computer system according to any one of claims 1 to 3, wherein the data in the data area is acquired from a computer having the fastest communication speed with the first computer.
自己の計算機装置を示す計算機識別情報を格納する格納手段と、
データを記憶する記憶媒体と、
マイグレーション手段と、
実行されていた前記他の計算機装置から前記マイグレーション手段によって移動されたものであって、プログラム本体、該プログラム本体がアクセス可能なデータ領域を示すデータ領域情報と前記データ領域を有する計算機を示す計算機識別情報とを対応付けて記憶する管理表、及び該管理表を管理する管理部を有するプログラム部とを備え、
前記マイグレーション手段によって移動された前記プログラム部の前記プログラム本体がデータの参照動作を行う場合に、
前記管理部は、前記管理表に基いて参照するデータを有する計算機を示す計算機識別情報を得て、該得られた計算機識別情報が前記他の計算機装置を示すときは、該得られた計算機識別情報が示す前記他の計算機装置の前記データ領域からデータを取得して前記記憶媒体に記憶すると共に、前記管理表の前記データ領域を示すデータ領域情報に対応させて前記格納手段に格納された前記計算機識別情報を追加することを特徴とする計算機装置。A computer device connected to another computer device via a communication path,
Storage means for storing computer identification information indicating its own computer device,
A storage medium for storing data,
Migration means;
A program main body, data area information indicating a data area accessible by the program main body, and computer identification indicating a computer having the data area, the program main body being moved by the migration means from the other computer apparatus being executed. Comprising a management table that stores information in association with information, and a program unit having a management unit that manages the management table;
When the program body of the program unit moved by the migration unit performs a data reference operation,
The management unit obtains computer identification information indicating a computer having data to be referred to based on the management table, and when the obtained computer identification information indicates the other computer device, obtains the obtained computer identification information. Acquiring data from the data area of the other computer device indicated by the information and storing the data in the storage medium, and storing the data stored in the storage unit in association with the data area information indicating the data area of the management table. A computer device characterized by adding computer identification information.
前記計算機装置の前記記憶媒体に前記更新動作に係るデータを記憶するとともに、前記管理表の前記データ領域を示すデータ領域情報に対応する計算機識別情報を前記計算機装置の計算機識別情報に書き換えることを特徴とする請求項5記載の計算機装置。When the program body of the program unit moved by the migration unit performs a data update operation, the management unit includes:
Storing the data relating to the update operation in the storage medium of the computer device, and rewriting computer identification information corresponding to data area information indicating the data area of the management table to computer identification information of the computer device. The computer device according to claim 5, wherein
前記管理表に基づいて、参照する前記データ領域に対応する計算機識別情報を得て、得られた計算機識別情報が前記計算機以外の複数の計算機を示すときは、前記通信路を介する前記計算機装置との通信速度が最も速い計算機から前記データ領域のデータを取得することを特徴とする請求項5から請求項7のいずれかに記載の計算機装置。When the program body performs a reference operation on the data area, the management unit includes:
Based on the management table, obtain the computer identification information corresponding to the data area to be referred to, and when the obtained computer identification information indicates a plurality of computers other than the computer, the computer device via the communication path 8. The computer device according to claim 5, wherein data of the data area is acquired from a computer having the highest communication speed.
前記マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得ることによって、参照する前記データ領域を有する計算機を前記複数の計算機の中から検索し、
検索された計算機が前記第一の計算機以外であるときは、得られた計算機識別情報が示す計算機の記憶媒体の前記データ領域からデータを取得して前記第一の計算機の前記記憶媒体に記憶すると共に、前記管理表の前記データ領域情報に対応させて前記第一の計算機の計算機識別情報を追加することを特徴とする計算機システムにおけるデータアクセス方法。A plurality of computers connected via a communication path, each including a storage medium and unique computer identification information, a program body, and data area information indicating a data area accessible by the program body and the data area A data access method in a computer system having a program unit including a management table for storing computer identification information indicating a specific computer included in a plurality of computers in association with each other, and a migration function for moving the program unit So,
By the migration function, after the program unit moves to the first computer of the plurality of computers, when the program body performs a reference operation on the data area, the program unit refers to the data area based on the management table. By obtaining computer identification information having a data area, a computer having the data area to be searched is searched from among the plurality of computers,
When the searched computer is other than the first computer, data is obtained from the data area of the storage medium of the computer indicated by the obtained computer identification information and stored in the storage medium of the first computer. A data access method in the computer system, wherein computer identification information of the first computer is added in correspondence with the data area information of the management table.
所定の処理を行うプログラム本体と、
該プログラム本体がアクセス可能なデータ領域を示すデータ領域情報とそのデータ領域を有する前記複数の計算機に含まれる特定の計算機を示す計算機識別情報とを対応付けて記憶する管理表と、該管理表を管理する管理部とを備え、
前記管理部に含まれるものであって、
前記マイグレーション機能によって、前記プログラム部が前記複数の計算機のうちの第一の計算機に移動後、前記プログラム本体が前記データ領域に対して参照動作を行う場合に、前記管理表に基づいて参照する前記データ領域を有する計算機識別情報を得ることによって、参照する前記データ領域を有する計算機を前記複数の計算機の中から検索する機能と、
検索された計算機が前記第一の計算機以外であるときは、得られた計算機識別情報が示す計算機の記憶媒体の前記データ領域からデータを取得して前記第一の計算機の前記記憶媒体に記憶すると共に、前記管理表の前記データ領域情報に対応させて前記第一の計算機の計算機識別情報を追加する機能とを、
前記第一の計算機装置で実行されるようにしたプログラム。In a computer system having a migration function and a plurality of computers connected via a communication path and each having a storage medium and unique computer identification information, the plurality of computers are moved to one of the computers by the migration function. A program that runs on a computer,
A program body for performing predetermined processing;
A management table that stores data area information indicating a data area accessible by the program body and computer identification information indicating a specific computer included in the plurality of computers having the data area in association with each other; With a management unit to manage,
Being included in the management unit,
By the migration function, after the program unit moves to the first computer of the plurality of computers, when the program body performs a reference operation on the data area, the program unit refers to the data area based on the management table. A function of searching for a computer having the data area to be referred to from among the plurality of computers by obtaining computer identification information having a data area;
When the searched computer is other than the first computer, data is obtained from the data area of the storage medium of the computer indicated by the obtained computer identification information and stored in the storage medium of the first computer. A function to add computer identification information of the first computer in association with the data area information of the management table,
A program executed by the first computer device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003037019A JP3848268B2 (en) | 2003-02-14 | 2003-02-14 | Computer system, computer apparatus, data access method and program in computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003037019A JP3848268B2 (en) | 2003-02-14 | 2003-02-14 | Computer system, computer apparatus, data access method and program in computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004246702A true JP2004246702A (en) | 2004-09-02 |
JP3848268B2 JP3848268B2 (en) | 2006-11-22 |
Family
ID=33021955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003037019A Expired - Fee Related JP3848268B2 (en) | 2003-02-14 | 2003-02-14 | Computer system, computer apparatus, data access method and program in computer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3848268B2 (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1703359A1 (en) | 2005-03-18 | 2006-09-20 | Fujitsu Limited | Blade computer with power backup capacitor |
JP2007095065A (en) * | 2005-09-27 | 2007-04-12 | Sony Computer Entertainment Inc | Technique for controlling cell processors over network |
JP2007095066A (en) * | 2005-09-27 | 2007-04-12 | Sony Computer Entertainment Inc | Technique for controlling cell processor over network |
JP2009093569A (en) * | 2007-10-11 | 2009-04-30 | Hitachi Ltd | Business service using system, business service execution system, business service using method and program, and business service execution method and program |
US8037474B2 (en) | 2005-09-27 | 2011-10-11 | Sony Computer Entertainment Inc. | Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution |
US8141076B2 (en) | 2005-09-27 | 2012-03-20 | Sony Computer Entertainment Inc. | Cell processor methods and apparatus |
US8595747B2 (en) | 2005-12-29 | 2013-11-26 | Sony Computer Entertainment Inc. | Efficient task scheduling by assigning fixed registers to scheduler |
JP5382449B2 (en) * | 2007-11-26 | 2014-01-08 | 日本電気株式会社 | Virtual machine migration system, virtual machine migration method, and virtual machine migration program |
JP2014501425A (en) * | 2010-12-28 | 2014-01-20 | マイクロソフト コーポレーション | Store and resume application runtime state |
WO2014041664A1 (en) * | 2012-09-13 | 2014-03-20 | 富士通株式会社 | Information processing system, information processing device, transition control program and transition control method |
-
2003
- 2003-02-14 JP JP2003037019A patent/JP3848268B2/en not_active Expired - Fee Related
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1703359A1 (en) | 2005-03-18 | 2006-09-20 | Fujitsu Limited | Blade computer with power backup capacitor |
US8141076B2 (en) | 2005-09-27 | 2012-03-20 | Sony Computer Entertainment Inc. | Cell processor methods and apparatus |
US8316220B2 (en) | 2005-09-27 | 2012-11-20 | Sony Computer Entertainment Inc. | Operating processors over a network |
US8135867B2 (en) | 2005-09-27 | 2012-03-13 | Sony Computer Entertainment, Inc. | Secure operation of processors |
JP4719655B2 (en) * | 2005-09-27 | 2011-07-06 | 株式会社ソニー・コンピュータエンタテインメント | Processor control technology on the network |
JP4719656B2 (en) * | 2005-09-27 | 2011-07-06 | 株式会社ソニー・コンピュータエンタテインメント | Processor control technology on the network |
US8037474B2 (en) | 2005-09-27 | 2011-10-11 | Sony Computer Entertainment Inc. | Task manager with stored task definition having pointer to a memory address containing required code data related to the task for execution |
JP2007095066A (en) * | 2005-09-27 | 2007-04-12 | Sony Computer Entertainment Inc | Technique for controlling cell processor over network |
JP2007095065A (en) * | 2005-09-27 | 2007-04-12 | Sony Computer Entertainment Inc | Technique for controlling cell processors over network |
US8595747B2 (en) | 2005-12-29 | 2013-11-26 | Sony Computer Entertainment Inc. | Efficient task scheduling by assigning fixed registers to scheduler |
JP2009093569A (en) * | 2007-10-11 | 2009-04-30 | Hitachi Ltd | Business service using system, business service execution system, business service using method and program, and business service execution method and program |
JP5382449B2 (en) * | 2007-11-26 | 2014-01-08 | 日本電気株式会社 | Virtual machine migration system, virtual machine migration method, and virtual machine migration program |
JP2014501425A (en) * | 2010-12-28 | 2014-01-20 | マイクロソフト コーポレーション | Store and resume application runtime state |
US9600323B2 (en) | 2010-12-28 | 2017-03-21 | Microsoft Technology Licensing, Llc | Storing and resuming application runtime state |
US9934064B2 (en) | 2010-12-28 | 2018-04-03 | Microsoft Technology Licensing, Llc | Storing and resuming application runtime state |
WO2014041664A1 (en) * | 2012-09-13 | 2014-03-20 | 富士通株式会社 | Information processing system, information processing device, transition control program and transition control method |
Also Published As
Publication number | Publication date |
---|---|
JP3848268B2 (en) | 2006-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190075163A1 (en) | Apparatus including an i/o interface and a network interface and related method of use | |
JP4349301B2 (en) | Storage management system, method and program | |
US9558205B2 (en) | Method for creating clone file, and file system adopting the same | |
US11287994B2 (en) | Native key-value storage enabled distributed storage system | |
US8904136B2 (en) | Optimized shrinking of virtual disks | |
JP4369471B2 (en) | Mirroring program, mirroring method, information storage device | |
US20090063556A1 (en) | Root node for carrying out file level virtualization and migration | |
US20090150462A1 (en) | Data migration operations in a distributed file system | |
US20090144496A1 (en) | Fast accessible compressed thin provisioning volume | |
US20090070444A1 (en) | System and method for managing supply of digital content | |
US10318194B2 (en) | Method and an apparatus, and related computer-program products, for managing access request in multi-tenancy environments | |
JP2004013367A (en) | Data storage subsystem | |
JP2004178289A (en) | Snapshot acquiring method, disk unit, and storage system | |
JP2007226347A (en) | Computer system, management device for computer system, and data recovery management method | |
JPWO2004104838A1 (en) | Data access response system, storage system, client device, cache device, and access method to data access response system | |
JP2013539119A (en) | Off-road read and write | |
US10277678B2 (en) | Method and an apparatus, and related computer-program products, for managing access request to one or more file systems | |
US11023433B1 (en) | Systems and methods for bi-directional replication of cloud tiered data across incompatible clusters | |
US20090150449A1 (en) | Open file migration operations in a distributed file system | |
JP2004234114A (en) | Computer system, computer device, and method and program for migrating operating system | |
JP2003296035A (en) | Storage device and storage method | |
JP3848268B2 (en) | Computer system, computer apparatus, data access method and program in computer system | |
US8332844B1 (en) | Root image caching and indexing for block-level distributed application management | |
JP2004334481A (en) | Virtualized information management apparatus | |
US7613786B2 (en) | Distributed file system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060117 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060320 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060411 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060612 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20060712 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060822 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060824 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090901 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100901 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110901 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110901 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120901 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120901 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130901 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |