JP4245304B2 - Computer cluster system, file access method - Google Patents

Computer cluster system, file access method Download PDF

Info

Publication number
JP4245304B2
JP4245304B2 JP2002117059A JP2002117059A JP4245304B2 JP 4245304 B2 JP4245304 B2 JP 4245304B2 JP 2002117059 A JP2002117059 A JP 2002117059A JP 2002117059 A JP2002117059 A JP 2002117059A JP 4245304 B2 JP4245304 B2 JP 4245304B2
Authority
JP
Japan
Prior art keywords
file
path
computer
management unit
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002117059A
Other languages
Japanese (ja)
Other versions
JP2003316637A (en
Inventor
誠司 前田
記代子 佐藤
伸夫 崎山
浩邦 矢野
拓也 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2002117059A priority Critical patent/JP4245304B2/en
Publication of JP2003316637A publication Critical patent/JP2003316637A/en
Application granted granted Critical
Publication of JP4245304B2 publication Critical patent/JP4245304B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、ネットワークを介して共通に接続された複数の計算機で構成する計算機クラスタシステムに関する。
【0002】
【従来の技術】
計算機単体の機能を補い、高性能化や高信頼性化を実現するために、複数の計算機を通信装置を介して接続した計算機クラスタシステムが用いられている。このように計算機同士を接続することで、個々の計算機に処理が分散されて高性能化でき、また、接続した計算機の一部に障害が発生した際に、他の計算機によって故障した計算機上の処理を引き継ぐことで高信頼性化を実現することができる。
【0003】
このような計算機クラスタシステムを実現するのに適したOS(Operating System)の構造の一つにマイクロカーネル方式がある。
【0004】
マイクロカーネル方式のOSは特開平11−345134号公報にあるように、OSをプロセス管理やメモリ管理等を行うカーネル部分と、ファイルシステム管理やユーザ管理等のサービスをサブシステム部分としてカーネルから分離した構造になっている。
【0005】
計算機クラスタシステムでマイクロカーネル方式のOSを用いた場合は、通信装置で接続された複数の計算機の全てでカーネルを動作させ、サブシステムは、計算機クラスタシステムの一部若しくは単一の計算機上でのみ動作させる。そして、計算機クラスタシステム上で動かす一般のプログラム(ユーザプログラム)は、ファイルアクセス等のOSのサービスを利用する際には、そのサービスを提供するサブシステムと通信を行い、当該サブシステムがカーネルと連携してサービスを提供する。
【0006】
マイクロカーネル方式の利点は、新しいサービスの提供やOSのバージョンアップを、OS全体を入れ替える代わりにサブシステムの追加・変更という形で用意に実現でき、メンテナンス性に優れている点と、各計算機で動作させるカーネルがコンパクトにできるので、計算機の処理能力をユーザプログラムの動作に多く割り当てることができるという点が挙げられる。
【0007】
【発明が解決しようとする課題】
図12は従来のマイクロカーネル方式のOSで実現した計算機クラスタシステムを説明する図である。このシステムは、ユーザプログラム901が動作する計算機900とファイルシステムを管理するサブシステム911が動作する計算機910がネットワーク920を介して共通に接続されている。説明を簡略化するために他のサブシステムが動作する計算機については省略する。
【0008】
計算機900は、ユーザプログラム901と、各種のハードウエア制御を行うカーネル902と、データ等を記憶する記憶装置903と、ネットワークを介して他の計算機と通信を行う通信装置904とを含んで構成されている。計算機910も同等な構成である。
【0009】
計算機910上で動作するサブシステム911は、前述の通りファイルシステムを管理するためのサブシステムで、ディレクトリ構造等のパスを管理するパス管理部915と、ファイルがどの計算機の記憶装置内に存在するかを管理するリソース管理部916と、記憶装置内におけるファイルの物理的位置を管理するファイル管理部917とを有し、サブシステム911はこれらを利用してファイルシステムの管理を行っている。
【0010】
図13は従来の計算機クラスタシステムにおいて、ユーザプログラム901がファイルを読み出す際の読み出し要求及びデータの流れを説明する図である。
【0011】
(1)まず、ユーザプログラム901はファイルシステムを管理するサブシステム911にアクセスして読み出したいファイル名を通知する。(2)サブシステム911は、ユーザプログラム901から通知された名称のファイルが、どの計算機のどの記憶装置のどの空間に保存されているかを検索し、当該ファイルが存在する記憶装置を持つ計算機のカーネルに通知する。
【0012】
カーネル902に通知した場合は(3)カーネル902は記憶装置903に読み出し要求を通知する。(4)記憶装置903はファイルの内容を読み出してカーネル902に通知する。(5)カーネル902はサブシステム911にファイルの内容を転送する。(6)サブシステム911はファイルの内容をユーザプログラム901に転送する。
【0013】
一方カーネル912に通知した場合は(3’)カーネル912は記憶装置913に読み出し要求を通知する。(4’)記憶装置913はファイルの内容を読み出してカーネル912に通知する。(5’)カーネル912はサブシステム911にファイルの内容を転送する。(6’)サブシステム911はファイルの内容をユーザプログラム901に転送する。
【0014】
ファイル書き込み時の書き込み要求及びデータの流れもほぼ同じである。
【0015】
このように従来のOSではサブシステム911でファイルシステムの論理的構造と物理的構造の両方を管理しているために、ファイルの読み書きを、常に一旦サブシステムの動いている計算機を経由して行うので、特にユーザプログラムが動作する計算機とファイルが存在する記憶装置を管理する計算機が同一である場合は、計算機内部のデータの流れに比べて低速なネットワーク経由でデータを送受信するために効率面で問題があった。
【0016】
特に図13の(5)(6)はネットワークを介したデータの通信であるので、計算機内部の通信である(4)などに比べると非常に効率が悪い。
【0017】
また、記憶装置として用いられるハードディスク等の磁気ディスクは内部に駆動部品を含むため計算機を構成するメモリやプロセッサ等に比べると故障する可能性が極めて高いため、従来よりハードディスク間でデータの冗長性を持たせて故障によるファイル消失を防ぐ手法を用いることが多い。
【0018】
従来の計算機クラスタシステムでも、各計算機の記憶装置間でファイルの複製を持つことで容易にデータに冗長性を持たせることができる。そして、記憶装置の故障時には複製したデータを利用することで処理を継続できる。しかし、従来の計算機クラスタシステムではファイルの読み書きをサブシステム経由で行うため、データに冗長性を持たせると、ファイルの複製を作る際のオーバヘッドが非常に大きくなり非効率である。
【0019】
ここでは計算機2台だけで説明したが、台数が増えるとサブシステム911が動作する計算機910とは異なる計算機に接続された記憶装置へアクセスする機会が激増する。特に前述のようにファイルの複製を持つようにした場合は、複製元のファイルと複製したファイルの両方がサブシステム911が動作する計算機910とは異なる計算機に接続された記憶装置に存在するというケースが生じる。そして、その頻度は計算機の台数に比例して多くなるため、効率も計算機の台数に比例して悪くなってしまう。
【0020】
そこで本発明では、効率よくファイルの読み書きを行うことができる計算機クラスタシステムを提供することを目的とする。
【0021】
【課題を解決するための手段】
上記課題を解決するために本発明の計算機クラスタシステムは、それぞれが記憶装置と通信装置を備えた複数の計算機を、ネットワークを介して共通に接続した計算機クラスタシステムにおいて、計算機クラスタシステム全体のファイルシステムは各計算機の記憶装置上に分散して存在し、一部の計算機は、前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムを有し、各計算機は、それぞれの計算機が有する記憶装置の制御を行うカーネルを有し、前記カーネルは、ファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする。
【0022】
また、本本発明の計算機クラスタシステムは、記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおいて、計算機クラスタシステム全体で使用するファイルシステムは各計算機の記憶装置上に分散して存在し、計算機クラスタシステムで使用するオペレーティングシステムは、前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムと、それぞれの計算機が有する記憶装置の制御を行うカーネルとを有し、前記カーネルはファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、かつ、各計算機において動作させ、前記サブシステムは一部の計算機で動作させ、前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする。
【0023】
また、本発明の計算機クラスタシステムは、記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおいて、計算機クラスタシステム全体で使用するファイルシステムは各計算機の記憶装置上に分散して存在し、一部の計算機では、前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムを動作させ、各計算機上では、それぞれの計算機が有する記憶装置の制御を行うカーネルを動作させ、前記カーネルは、ファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする。
【0024】
また、本発明のファイルアクセス方法は、記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおけるファイルアクセス方法であって、ユーザプログラムがファイルシステムの論理的構造を管理するサブシステムにファイルのパスを通知して当該ファイルの大域識別子を取得するオープンステップと、ユーザプログラムが、ユーザプログラムと同一の計算機で動作するカーネルに前記大域識別子を通知してファイルの読み書きを依頼する要求ステップと、前記カーネルが、前記大域識別子を局所識別子に変換して、読み書きすべきファイルが存在する記憶装置の所在を調べるファイル所在検索ステップと、前記ファイル所在検索ステップの結果、カーネルが動作している計算機とファイルが存在する記憶装置の属する計算機とが異なる場合に、前記カーネルがファイルが存在する記憶装置の属する計算機で動作するカーネルへ読み書き要求及び前記局所識別子を転送する要求転送ステップと、ファイルが存在する記憶装置の属する計算機上で動作するカーネルが前記局所識別子の示す記憶装置にアクセスして読み書き要求を実行するアクセスステップと、前記アクセスステップを実行したカーネルが、前記アクセスステップの結果を前記ユーザプログラムに通知する結果報告ステップとを有し、前記オープンステップにおいて、前記サブシステムのパス管理部に前記ファイルのパスに対応する大域識別子がない場合に、前記ユーザプログラムが前記サブシステムにファイルのパスを通知後、前記カーネルが前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに割り当てて記憶するステップと、前記カーネルとその他の計算機のカーネルとの大域識別子と局所識別子との対応関係の情報を同一に保つステップと、前記サブシステムが前記ファイルのパスに対応する大域識別子とパスの新規割り当てを行い記憶するステップとを含むことを特徴とする。
【0025】
また、本発明のファイルアクセス方法は、記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおけるファイルアクセス方法であって、ユーザプログラムがファイルシステムの論理的構造を管理するサブシステムにファイルのパスを通知して当該ファイルの大域識別子を取得するオープンステップと、ユーザプログラムが、ユーザプログラムと同一の計算機で動作するカーネルに前記大域識別子を通知してファイルの読み書きを依頼する要求ステップと、前記カーネルが、前記大域識別子を局所識別子に変換して、読み書きすべきファイルが存在する記憶装置の所在を調べるファイル所在検索ステップと、前記ファイル所在検索ステップの結果、カーネルが動作している計算機とファイルが存在する記憶装置の属する計算機とが異なる場合に、前記カーネルがファイルが存在する記憶装置の属する計算機で動作するカーネルへ読み書き要求及び前記局所識別子を転送する要求転送ステップと、ファイルが存在する記憶装置の属する計算機上で動作するカーネルが前記局所識別子の示す記憶装置にアクセスして読み書き要求を実行するアクセスステップと、前記アクセスステップを実行したカーネルが、前記アクセスステップの結果を前記ユーザプログラムに通知する結果報告ステップとを有し、前記オープンステップにおいて、前記サブシステムのパス管理部に、前記ファイルのパスに対応する大域識別子がない場合に、前記ユーザプログラムが前記サブシステムにファイルのパスを通知後、前記サブシステムが前記ファイルのパスに対応する大域識別子を割り当てて、パスと関連付けて記憶するステップと、前記カーネルが前記ファイルのパスに対応する大域識別子に対応する局所識別子を新たに割り当てて記憶するステップと、前記カーネルとその他の計算機のカーネルとの大域識別子と局所識別子との対応関係の情報を同一に保つステップとを有することを特徴とする。
【0037】
【発明の実施の形態】
(システム概要・構成)以下、図面を参照して本発明の一実施形態の計算機クラスタシステムについて説明する。図1は本発明の一実施形態の計算機クラスタシステムについて説明する図である。
【0038】
本実施形態の計算機クラスタシステムは、ユーザプログラム101を実行する計算機100と、サブシステム111を実行する計算機110の2台がネットワーク120を介して接続されている。
【0039】
計算機100には、データを記憶するための磁気ディスクである記憶装置105と、ネットワークを介して他の計算機と通信を行う通信装置106が備わっている。また、計算機100では、これらの記憶装置105や通信装置106、そして図示しないメモリ等のハードウエア制御等を担当するプログラムであるカーネル102と、計算機クラスタシステム及びサブシステム108で提供されるサービスを利用するアプリケーション等のプログラムであるユーザプログラム101が実行されている。
【0040】
カーネル102は、ハードウエアを制御するインターフェース(図示せず)の他に、計算機システム全体で用いられるファイルやプロセス等のリソースを管理するリソース管理部103と、記憶装置105に記憶させたデータの物理的な所在(すなわち、ファイルシステムの物理的構造)を管理するファイル管理部104とを備え、これらはシステムコールを用いてカーネル102の外部(例えばユーザプログラム101)からアクセス可能になっている。
【0041】
計算機110の構成は計算機100と同様で、記憶装置115と通信装置116を備える。また、計算機110上ではハードウエア制御等を担当するプログラムで、カーネル102と同等の機能を持つカーネル112と、ユーザプログラム101を含むあらゆるユーザプログラムに対してサービスを提供するプログラムであるサブシステム111が実行されている。
【0042】
カーネル112の構成はカーネル102と同様で、ハードウエアを制御するインターフェース(図示せず)の他に、計算機システム全体で用いられるファイルやプロセス等のリソースを管理するリソース管理部113と、記憶装置115に記憶させたデータの物理的な所在を管理するファイル管理部114とを備え、これらはシステムコールを用いてカーネル112の外部(例えばサブシステム111)からアクセス可能になっている。
【0043】
サブシステム111はディレクトリ構造等のファイルシステムの論理的構造を管理するプログラムであり、パスと呼ばれるユーザがファイルを識別するための文字列(例えば「/home/user1/movie/gogo.mpg」など)をファイルの識別子に変換する機能を提供するパス管理部117を備える。サブシステム111は、計算機クラスタシステム全体で用いられるあらゆるリソースに割り当てられる大域識別子(以下、GID)のうち、計算機クラスタシステム全体で用いられるファイルに対するGIDとパスの関係を記憶し管理する。
【0044】
リソース管理部103、113は、計算機クラスタシステム全体で用いられるリソースに対して、前述のGID及びリソースが実際に存在する計算機内での一意の識別子である局所識別子(以下、LID)を割り当てを行うとともに、GIDとLIDの対応関係を記憶し管理する。LIDは当該リソースが存在する計算機自体の識別子とその計算機内でのリソース識別子を組み合わせた構造をしている。例えば、計算機100の記憶装置105に記憶されたファイルのLIDは「(計算機100を表す識別子):(記憶装置105を表す識別子):(計算機100内で一意なファイルの識別子)」のような構造になる。
【0045】
本実施形態においては、リソース管理部103、113は、一方のGIDとLIDの対応関係に変更が生じた場合は他方に変更を通知して互いの持つ対応関係の情報を同一に保つようにする。ただし、GIDとLIDの対応関係情報の管理はこれに限らない。例えばリソース管理部103で中央集権的に管理して、リソース管理部113は必要な時に問い合わせ、変更時に変更内容をリソース管理部103に通知するようにしても良い。または、分散管理方式にして互いに必要な時、例えばLIDとの対応関係が不明なGIDを受け取った場合に問い合わせをしても良い。リソース管理部間でのGIDとLIDの対応関係の情報の同期もしくは交換方法は、計算機クラスタシステムの規模・設計・目的に応じて適宜変更するのが望ましい。
【0046】
ファイル管理部104はカーネル102に接続された記憶装置105に記憶されるファイルの物理的な所在を管理し、ファイル管理部114はカーネル112に接続された記憶装置115に記憶されるファイルの物理的な所在を管理する。物理的な所在とは、ファイルに対してデータサイズに応じた数だけ割り当てられた、記憶装置105、115の記録単位であるブロックの番号やアドレスのことである。ファイル管理部104、114では、LIDとLIDが指すファイルに割り当てられた全ブロックのアドレスを管理する。
【0047】
記憶装置105、115はファイルを記憶する磁気ディスクである。尚、磁気ディスクに限らずフラッシュメモリ等でも良い。記憶装置105はカーネル102のファイル管理部104からの読み出し要求に応じてファイルのデータをファイル管理部104に渡し、ファイル管理部104からの書き込み要求に応じて、ファイル管理部104から受け取ったデータを記憶する。記憶装置115はカーネル112のファイル管理部114からの読み出し要求に応じてファイルのデータをファイル管理部114に渡し、ファイル管理部114からの書き込み要求に応じて、ファイル管理部114から受け取ったデータを記憶する。
【0048】
通信装置106、116はネットワーク120を介して相互に通信を行う。通信装置106はカーネル102からの要求に応じて通信装置116へデータを送信し、通信装置116から受信したデータをカーネル102に渡す。通信装置116はカーネル112からの要求に応じて通信装置106へデータを送信し、通信装置106から受信したデータをカーネル112に渡す。通信装置106、116としては、例えば、イーサネット(登録商標)、非同期通信モード(ATM)、トークンリング等を用いることができる。
【0049】
(ファイルオープン)以下、図2のフローチャートを用いてユーザプログラム101がファイルをオープンする動作を説明する。
【0050】
ユーザプログラム101は、オープンするファイルのパスを含むオープン要求をリソース管理部103に通知する(ステップ201)。リソース管理部103はオープン要求をサブシステム111に転送する(ステップ202)。サブシステム111は、オープン要求に含まれるパスに対応するGIDをサブシステム111が記憶しているテーブルの中から探索する(ステップ203)。そして、見つかったか否かで処理を分岐させる(ステップ204)。
【0051】
見つかった場合は、サブシステム111はそのGIDを要求結果に含めてリソース管理部103に通知する(ステップ205)。リソース管理部103はユーザプログラム101に要求結果を通知する(ステップ206)。そして、ユーザプログラム101はGIDを得る(ステップ207)。
【0052】
一方、見つからなかった場合は、サブシステム111は後述するリソース管理部103にGIDの割り当てを要求する(ステップ208)。リソース管理部103は後述するGIDの新規割り当てを行い(ステップ209)、割り当て結果をユーザプログラム101に通知する(ステップ210)。そして、ユーザプログラム101はGIDを得る(ステップ207)。
【0053】
以後、ユーザプログラム101は当該ファイルの読み書きに際してはこのGIDを用いて対象となるファイルを指定する。
【0054】
図3は、前述のステップ208とステップ209、すなわちサブシステム111によるGID割り当て要求とリソース管理部103によるGIDの新規割り当ての動作を説明するフローチャートである。
【0055】
サブシステム111はパスに対応するGIDが存在しないことが判明したら、ユーザプログラム101からのオープン要求を解析して、ファイルの新規作成許可の有無を調べ(ステップ221)、以後の処理を分岐させる(ステップ222)。
【0056】
新規作成許可が無い場合は、オープン結果は失敗となるのでリソース管理部103にオープン失敗を通知する(ステップ227)。リソース管理部103は、オープン結果は失敗なのでGIDの割り当ては行わず(ステップ228)前述のステップ210でその旨をユーザプログラム101に通知する。
【0057】
新規作成許可が有る場合は、サブシステム111はリソース管理部103にGIDの新規割り当てを要求する(ステップ223)。リソース管理部103は、新たなGIDとLIDの組を生成して記憶する(ステップ224)。そして、生成したGIDとパスをサブシステム111に通知して対応関係を記憶させるとともに、前述の通りGIDとLIDをリソース管理部113に通知してリソース情報の更新を行う(ステップ225)。そして、割り当て結果は成功となり(ステップ226)、前述のステップ210では成功した旨とGIDをユーザプログラム101に通知する。
【0058】
ここではファイルオープンについて説明したが、ファイル削除要求の場合は次のように処理を行う。
【0059】
(1)ユーザプログラム101はリソース管理部103に削除要求を通知し、リソース管理部103はサブシステム111に削除要求を転送する。(2)サブシステム111はパス管理部117で記憶しているGIDとこれに対応するパスを削除して、リソース管理部103にGIDが削除されたことを通知する。(3)サブシステム111から通知を受けたリソース管理部103は該当するGIDとこれに対応するLIDを記憶から削除し、ファイル管理部104にLIDが削除されたことを通知する。(4)リソース管理部103から通知を受けたファイル管理部104は、該当するLIDとこれに対応するLIDが指すファイルに割り当てられた全ブロックのアドレスの関係を記憶から削除する。
【0060】
リソース管理部103からユーザプログラム101への削除結果の通知は、(3)の処理を行う時に並行して行っても良いし、(3)の処理終了後や、(4)の処理終了後でも構わない。(4)の処理終了後に削除結果の通知を行う場合は、ファイル管理部104の削除処理結果をリソース管理部103に通知させるようにする。
【0061】
(ファイル書き込み)以下、図4のフローチャートを用いてユーザプログラム101がファイルにデータを書き込む動作を説明する。
【0062】
ユーザプログラム101はファイルへの書き込み要求とGIDとデータをリソース管理部103に通知する(ステップ301)。リソース管理部103はGIDに対応するLIDを検索する。そして、見つかったLIDが示す計算機が計算機100と異なる場合(すなわち、計算機110を示す場合)には書き込み要求とLIDとデータをLIDが示す計算機のリソース管理部に転送する(ステップ302)。
【0063】
LIDが計算機110を示している場合は、ステップ302で書き込み要求とLIDとデータは計算機110のリソース管理部113に転送される。リソース管理部113が後述するようなデータの書き込み処理を行い(ステップ303)、リソース管理部113は結果をリソース管理部103に通知する(ステップ304)。そして、リソース管理部103は書き込み処理の結果をユーザプログラム101に通知する(ステップ306)。
【0064】
LIDが計算機100を示している場合は転送の必要は無い。リソース管理部103は後述する書き込み処理を行い(ステップ305)、ステップ306を実行する。
【0065】
図5はリソース管理部103におけるファイルの書き込み処理のフローチャートである。リソース管理部113についても同様の処理を行う。
【0066】
リソース管理部103は書き込み要求とLIDとデータをファイル管理部104に通知する(ステップ311)。ファイル管理部104はLIDが示すファイルの記憶装置105内における物理的位置を検索するとともに(ステップ312)、LIDが示すファイルに割り当てられた記憶領域が書き込むデータのサイズに比べて十分な大きさが確保されているかをチェックする(ステップ313)。そして、十分な大きさの記憶領域がなければ確保を行う(ステップ314)。
【0067】
そして、ファイル管理部104はデータを記憶装置105に書き込む(ステップ315)。ファイル管理部104は書き込み結果をリソース管理部103に通知する(ステップ316)。
【0068】
このように、ユーザプログラム101がファイルにデータを書き込む際に、従来は必ずサブシステム111がユーザプログラム101からデータを受け取って書き込んでいたが、本実施形態ではユーザプログラム101が動作する計算機100に接続された記憶装置105に書き込み対象のファイルが存在する場合は、ネットワークを介してデータを送信することなくファイルの書き込みが可能であるので効率がよい。
【0069】
(ファイル読み出し)以下、図6のフローチャートを用いてユーザプログラム101がファイルからデータを読み出す動作を説明する。
【0070】
ユーザプログラム101は読み出し要求とGIDをリソース管理部103に通知する(ステップ401)。リソース管理部103はGIDからLIDを検索する。そして、見つかったLIDが示す計算機が計算機100と異なる場合(すなわち、計算機110を示す場合)には読み出し要求とLIDをLIDが示す計算機のリソース管理部に転送する(ステップ402)。
【0071】
LIDが計算機110を示していた場合は、ステップ402で読み出し要求とLIDを計算機110のリソース管理部113に転送される。リソース管理部113は後述するような読み出し処理を行い(ステップ403)、リソース管理部113は読み出し結果とデータをリソース管理部103に通知する(ステップ404)。そして、リソース管理部103は読み出し結果とデータをユーザプログラム101に通知する(ステップ406)。
【0072】
LIDが計算機100を示していた場合は転送の必要は無い。リソース管理部103は、後述する読み出し処理を行い(ステップ405)、ステップ406を実行する。
【0073】
図7はリソース管理部103におけるファイルの読み出し処理のフローチャートである。リソース管理部113における読み出し処理も同様に行われる。
【0074】
リソース管理部103は読み出し要求とLIDをファイル管理部104に通知する(ステップ411)。ファイル管理部104はLIDが示すファイルの記憶装置105内における物理的位置を検索する(ステップ412)。ファイル管理部104は記憶装置105からデータを読み出す(ステップ413)。ファイル管理部104はデータと読み出し結果をリソース管理部103に通知する(ステップ414)。
【0075】
このように、ユーザプログラム101がファイルからデータを読み出す際に、従来は必ずサブシステム111が記憶装置105からデータを読み出してユーザプログラム101にデータを転送していたが、本実施形態ではユーザプログラム101が動作する計算機100に接続された記憶装置105に読み出し対象ファイルが存在する場合はネットワークを介してデータを受信することなくファイルの読み出しが可能であるので効率がよい。
【0076】
(リソース管理部の構成)図8はリソース管理部の構成を説明する図である。リソース管理部601は、GIDとLIDの変換を行うID変換部602と、GIDとLIDの対応関係を記憶しているリソース管理テーブル603とを有する。
【0077】
ID変換部602は、ユーザプログラムやサブシステムから通知された要求、及び、他の計算機上のリソース管理部から転送された要求を受信して処理する。要求に含まれるIDがGIDである場合は、リソース管理テーブル603を参照してGIDをLIDに変換する。変換して得られたLIDが他の計算機に関するLIDである場合には、該当する計算機に要求を転送する。さらに、ファイルの新規オープン時には新たなGIDとLIDを生成してリソース管理テーブル603に記憶させ、ファイル削除時にはGIDとLIDの削除を行う。
【0078】
尚、前述の通り、本実施形態の場合はリソース管理テーブル603に変更が生じた場合は他の計算機のリソース管理部に変更内容を通知して、リソース管理テーブル603の内容の同一性を保つ。
【0079】
リソース管理テーブル603はGIDで表されるリソースに対応するLIDを管理する。GIDはリソースの種類(プロセス、ファイル等)によって番号の付け方が異なるようにしてある。例えば図8だとVPで始まるGIDはプロセス、VFで始まるGIDはファイルを表す。例えば、GIDがVP0001で表されるリソースは計算機100上で動作するプロセスのP0001であることが分かる。
【0080】
(ファイル管理部の構成)図9はファイル管理部の構成を説明する図である。ファイル管理部701は、LIDを記憶装置上の位置に変換するブロック位置変換部702と、LIDと記憶装置上の位置の対応関係を記憶しているファイル管理テーブル703とを有する。
【0081】
ブロック位置変換部702は、リソース管理部から受け取った書き込みや読み出し要求に含まれるLID及びファイル内でのデータの位置情報(ファイルの先頭から何バイト目という情報)を、ファイル管理テーブル703を用いて記憶装置上の位置に変換する。記憶装置のブロックサイズが64KBの場合ならば、LIDがF0003であるファイルの先頭から130KB目のデータは、ファイル管理テーブル703よりブロック8に格納されていることが分かる。
【0082】
尚、ファイル管理部はLID及びファイル内でのデータの位置情報から、記憶装置上の位置を知ることができれば図8の構成でなくても良い。
【0083】
(パス管理部の構成)図10はサブシステムのパス管理部の構成を説明する図である。パス管理部801は、ファイルシステムの一機能であるパスをGIDに変換する機能を提供するパス変換部802と、パスとGIDの対応を記憶するパス管理テーブル803とを有する。
【0084】
パス変換部802は、リソース管理部よりファイルのオープン要求を受信し、要求に含まれるパスを、パス管理テーブル803を用いてGIDに変換し、結果に含めてリソース管理部に通知する。また、逆にリソース管理部で生成されたファイルのGIDとパスを受け取ってパス管理テーブルに記憶させたり、リソース管理部からGIDが抹消された旨の通知を受けた場合にはパス管理テーブルから当該GIDとこれに関連付けられたパスを削除するなどの、パス管理テーブルの管理を行う。
【0085】
変換の具体例を説明すると、例えばパスが「/home/doc/document.txt」であった場合、「home」、「doc」、「document.txt」の順にパス管理テーブル803を検索してGIDを得る。
【0086】
始めに、パス管理テーブル803に記憶されたデータから親GIDが無く、名前が「home」であるデータを検索してデータ804を得る。
【0087】
次に、データ804に含まれるGID「VF0001」を用いて、今度は親GIDが「VF0001」であり、名前が「doc」であるデータを検索してデータ805を得る。
【0088】
同様にしてデータ805を利用して、親GIDが「VF0002」であり、名前が「document.txt」であるデータを検索してデータ806を得て、「document.txt」のGID「VF0003]」を結果に含めてリソース管理部に通知する。
【0089】
ファイルが存在しない等の事情で変換できない場合はオープン要求を解析し、ファイルの新規作成許可が与えられている場合にはリソース管理部にGIDの割り当てを要求し、許可が与えられていない場合はリソース管理部にエラーを返す。
【0090】
尚、パスをGIDに変換する機能を有すれば、パス管理部は図9の構成でなくても構わない。
(データの流れ)図11はユーザプログラム1001が記憶装置からデータを読み出す場合のデータの流れを説明する図である。図中では通信装置は省略してあるが計算機1000、1010間の通信は通信装置を利用してネットワーク経由で行われる。
【0091】
ユーザプログラム1001が記憶装置1003からファイルを読み出す場合は、読み出し要求は(1)ユーザプログラム1001からカーネル1002へ伝わり(2)カーネル1002から記憶装置1003に伝わる。そして、読み出したデータは(3)記憶装置1003からカーネル1002へ伝わり(4)カーネル1002からユーザプログラム1001に伝わる。
【0092】
(1)〜(4)までの全ての通信は計算機内部で行われる。計算機内部の通信はネットワーク経由の通信に比べて大変高速であるので、読み出しが完了するまでの時間が短く済み、処理の効率が良いことがわかる。書き込みについても同様である。
【0093】
一方、ユーザプログラム1001が記憶装置1013からファイルを読み出す場合は、読み出し要求は(1)ユーザプログラム1001からカーネル1002へ伝わり(2’)カーネル1002からカーネル1012へ転送されて(3’)カーネル1012から記憶装置1013に伝わる。そして、読み出したデータは(4’)記憶装置1013からカーネル1012へ伝わり(5’)カーネル1012からカーネル1002へ転送され、(6’)カーネル1002からユーザプログラム1001に伝わる。書き込みの場合も同様である。
【0094】
ユーザプログラムが動作する計算機とファイルが格納された記憶装置が接続された計算機が異なる場合は、読み書きの効率は従来と変わらない。しかし、同一の計算機に接続された記憶装置から読み書きする場合には従来のようなネットワーク経由のファイル内容の通信が行われないのでオーバヘッドが激減して効率が良くなるので、システム全体としてファイルの読み書きの効率が良くなる。
【0095】
本実施形態では計算機は2台だけで説明したが、3台以上の計算機を用いて計算機クラスタシステムを構成することも可能である。また、複数のユーザプログラムを計算機クラスタシステムの異なる計算機上で実行し、そのユーザプログラムの一部をサブシステムが実行されている計算機上で実行しても良い。また、複数のサブシステムを計算機クラスタシステム内の異なる計算機上で実行しても良い。さらに、サブシステムの機能を分割し、計算機クラスタシステム内の異なる計算機上に分散して実行しても良い。
【0096】
また、本実施形態では新しいファイルに対するGIDをリソース管理部103若しくは113で割り当てるとしたが、サブシステム111で割り当てるようにしても良い。ユーザプログラム101ファイルのオープンをリソース管理部103に通知した場合を例に説明すると、ファイルが存在しない場合はサブシステム111はGIDを割り当ててパスと関連付けて記憶するとともに、リソース管理部103に通知する。そして、リソース管理部103はGIDに対応するLIDを新たに割り当てて記憶する。
【0097】
(冗長性を持たせた場合)ここまでは基本的なファイル読み書きについて説明してきたが、以下は異なる計算機の記憶装置にファイルの複製を作ることでデータの冗長性を持たせた場合の動作について説明する。
【0098】
冗長性を持たせたファイルの場合、図8のGID「VF0004」のように一つのGIDに対して複数のLID「計算機100:記憶装置105:F0004」「計算機110:記憶装置115:F0004」が存在する。
【0099】
ファイルへの書き込み動作においては、ステップ302でGIDに対応するLIDを全て抽出する。そして、計算機110のリソース管理部113に書き込み要求とデータとLID「計算機110:F0004」を転送してリソース管理部113に書き込み処理を行わせる。これと並行してリソース管理部103も書き込み処理を行う。そしてリソース管理部103は両方の書き込みが完了してからステップ306を実行して書き込み結果をユーザプログラム101に通知する。尚、計算機クラスタシステムの運用形態・方針によっては、一方の書き込みが終わった段階でステップ306を実行させても良い。
【0100】
ファイルの読み出し動作は、複数の計算機のうちの一つを選択して、冗長性を持たせていない場合と同様に行う。計算機の選択にあたっては、要求を出したユーザプログラムを実行している計算機を選択するのが最も効率的である。
【0101】
記憶装置に障害が発生した場合には、リソース管理部では故障した記憶装置の代わりに他の記憶装置のLIDを選択するようにする。
【0102】
例えば、記憶装置105に障害が発生した場合には、ユーザプログラム101からのGID「VF0004」のファイルの読み出し要求を受けたリソース管理部103は、GIDからLIDに変換する際には記憶装置105を指す「計算機100:記憶装置105:F0004」は選択せず、「計算機110:記憶装置115:F0004」を選択するようにする。
【0103】
その結果、書き込み動作は図6のステップ401、402、403、404、406を実行することになり、書き込み動作は図4のステップ301、302、303、304、306を実行する。
【0104】
いずれの場合でもユーザプログラム101は障害が無い時と同様に読み書きをリクエストすれば良い。
【0105】
本実施形態の計算機クラスタシステムならば、ファイルの読み書きを要求したユーザプログラムやサブシステムが実行されている計算機と、読み書き対象のファイルが記憶された記憶装置が接続された計算機が同一である場合に効率よくファイルの読み書きを行えるので、システム全体の平均ファイルアクセス効率が向上する。また、ファイルの読み書きをカーネル側で実行することで、サブシステムが稼動する計算機に通信が集中しにくくなるので、システム全体の能力、堅牢性及び信頼性を向上させることができる。また、ファイルに冗長性を持たせた場合でも持たせていない場合と同様にファイルの読み書きを効率良くできる。
【0106】
【発明の効果】
以上、本発明の計算機クラスタシステムならば、ファイルシステムの機能を分割して、パス管理をサブシステムに、リソース管理及びファイル管理をカーネルに実装することにより、読み書きの効率を向上させることができる。
【図面の簡単な説明】
【図1】 本発明の一実施形態の計算機クラスタシステムの構成を説明する図。
【図2】 本発明の一実施形態の計算機クラスタシステムにおけるファイルオープン動作を説明するフローチャート。
【図3】 図2のステップ208、209におけるGID割り当て動作を説明するフローチャート。
【図4】 本発明の一実施形態の計算機クラスタシステムにおけるファイル書き込み動作を説明するフローチャート。
【図5】 リソース管理部におけるファイル書き込み動作を説明するフローチャート。
【図6】 本発明の一実施形態の計算機クラスタシステムにおけるファイル読み出し動作を説明するフローチャート。
【図7】 リソース管理部におけるファイル読み出し動作を説明するフローチャート。
【図8】 リソース管理部の構成を説明する図。
【図9】 ファイル管理部の構成を説明する図。
【図10】 サブシステムの構成を説明する図。
【図11】 本発明の一実施形態の計算機クラスタシステムにおけるファイル読み出し時のデータの流れの一例を説明する図。
【図12】 従来の計算機クラスタシステムの構成を説明する図。
【図13】 従来の計算機クラスタシステムにおけるファイル読み出し時のデータの流れの一例を説明する図。
【符号の説明】
100、110 計算機
101 ユーザプログラム
102、112 カーネル
103、113 リソース管理部
104、114 ファイル管理部
105、115 記憶装置
106、116 通信装置
111 サブシステム
117 パス管理部
120 ネットワーク
601 リソース管理部
602 ID変換部
603 リソース管理テーブル
701 ファイル管理部
702 ブロック位置変換部
703 ファイル管理テーブル
801 サブシステム(パス管理部)
802 パス変換部
803 パス管理テーブル
900、910 計算機
901 ユーザプログラム
902、912 カーネル
903、913 記憶装置
904、914 通信装置
915 パス管理部
916 リソース管理部
917 ファイル管理部
920 ネットワーク
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a computer cluster system including a plurality of computers commonly connected via a network.
[0002]
[Prior art]
A computer cluster system in which a plurality of computers are connected via a communication device is used to supplement the functions of a single computer and achieve high performance and high reliability. By connecting computers in this way, processing can be distributed to individual computers to improve performance, and when a failure occurs in a part of the connected computers, on the computer that has failed by another computer High reliability can be realized by taking over the processing.
[0003]
One of the OS (Operating System) structures suitable for realizing such a computer cluster system is a microkernel system.
[0004]
As described in Japanese Patent Application Laid-Open No. 11-345134, the microkernel OS is separated from the kernel as a kernel part for performing process management and memory management, and a service for file system management and user management as a subsystem part. It has a structure.
[0005]
When a micro-kernel OS is used in a computer cluster system, the kernel is operated on all of a plurality of computers connected by a communication device, and the subsystem is only a part of the computer cluster system or a single computer. Make it work. When a general program (user program) that runs on a computer cluster system uses an OS service such as file access, it communicates with a subsystem that provides the service, and the subsystem cooperates with the kernel. And provide services.
[0006]
The advantage of the microkernel method is that it is possible to provide new services and upgrade the OS in the form of adding and changing subsystems instead of replacing the entire OS. Since the kernel to be operated can be made compact, it is possible to allocate a large amount of processing capacity of the computer to the operation of the user program.
[0007]
[Problems to be solved by the invention]
FIG. 12 is a diagram for explaining a computer cluster system realized by a conventional microkernel OS. In this system, a computer 900 that operates a user program 901 and a computer 910 that operates a subsystem 911 that manages a file system are commonly connected via a network 920. In order to simplify the description, a computer in which another subsystem operates is omitted.
[0008]
The computer 900 includes a user program 901, a kernel 902 that performs various hardware controls, a storage device 903 that stores data and the like, and a communication device 904 that communicates with other computers via a network. ing. The computer 910 has an equivalent configuration.
[0009]
The subsystem 911 operating on the computer 910 is a subsystem for managing the file system as described above, and a path management unit 915 for managing a path such as a directory structure and a storage device of which computer the file is in. A resource management unit 916 that manages the file, and a file management unit 917 that manages the physical location of the file in the storage device, and the subsystem 911 uses these to manage the file system.
[0010]
FIG. 13 is a diagram for explaining a read request and a data flow when the user program 901 reads a file in a conventional computer cluster system.
[0011]
(1) First, the user program 901 accesses the subsystem 911 that manages the file system and notifies the name of the file to be read. (2) The subsystem 911 searches in which space of which storage device of which computer the file with the name notified from the user program 901 is stored, and the kernel of the computer having the storage device in which the file exists Notify
[0012]
When notified to the kernel 902 (3) the kernel 902 notifies the storage device 903 of a read request. (4) The storage device 903 reads the contents of the file and notifies the kernel 902 of it. (5) The kernel 902 transfers the file contents to the subsystem 911. (6) The subsystem 911 transfers the contents of the file to the user program 901.
[0013]
On the other hand, when notified to the kernel 912 (3 ′), the kernel 912 notifies the storage device 913 of a read request. (4 ′) The storage device 913 reads the contents of the file and notifies the kernel 912 of it. (5 ′) The kernel 912 transfers the file contents to the subsystem 911. (6 ′) The subsystem 911 transfers the contents of the file to the user program 901.
[0014]
The write request and data flow at the time of writing the file are almost the same.
[0015]
As described above, in the conventional OS, both the logical structure and the physical structure of the file system are managed by the subsystem 911. Therefore, the reading and writing of the file is always performed once via the computer in which the subsystem is running. Therefore, especially when the computer that runs the user program and the computer that manages the storage device where the file exists are the same, it is efficient in order to send and receive data via a network that is slower than the data flow inside the computer. There was a problem.
[0016]
In particular, since (5) and (6) in FIG. 13 are data communications via a network, they are very inefficient compared to (4) or the like, which is communications within a computer.
[0017]
In addition, magnetic disks such as hard disks used as storage devices contain drive components inside, so they are very likely to fail compared to memory and processors that make up computers. Many methods are used to prevent file loss due to failure.
[0018]
Even in a conventional computer cluster system, data can be easily made redundant by having a file copy between storage devices of each computer. When the storage device fails, the process can be continued by using the replicated data. However, since the conventional computer cluster system reads and writes files via the subsystem, if data is made redundant, the overhead in making a copy of the file becomes very large and inefficient.
[0019]
Although only two computers have been described here, the opportunity to access a storage device connected to a computer different from the computer 910 on which the subsystem 911 operates increases as the number increases. In particular, in the case of having a copy of a file as described above, a case where both the copy source file and the copied file exist in a storage device connected to a computer different from the computer 910 on which the subsystem 911 operates. Occurs. Since the frequency increases in proportion to the number of computers, the efficiency also decreases in proportion to the number of computers.
[0020]
Therefore, an object of the present invention is to provide a computer cluster system that can efficiently read and write files.
[0021]
[Means for Solving the Problems]
In order to solve the above problems, a computer cluster system according to the present invention is a computer cluster system in which a plurality of computers each having a storage device and a communication device are commonly connected via a network. Exist in a distributed manner on the storage device of each computer, and some computers have a relationship between a path representing the logical structure of the file system and a global identifier uniquely assigned to the file in the entire computer cluster system. Each computer has a subsystem that has a path management unit for managing, and each computer has a kernel that controls the storage device that each computer has, and the kernel identifies which storage device the file is stored in A resource management unit for storing and managing a correspondence relationship between a local identifier and the global identifier; And a file management unit for managing the relationship between the address of the location where the file is stored as the local identifier within, the path management unit of the subsystems, operating on the computer cluster system User program If there is no global identifier corresponding to the file path notified by For each calculator The resource management unit newly stores a global identifier and local identifier pair corresponding to the file path, and the subsystem newly stores a global identifier and path pair corresponding to the file path, The user program acquires a global identifier corresponding to a path of the file.
[0022]
The computer cluster system of the present invention includes a storage device and a communication device. In a computer cluster system composed of a plurality of computers commonly connected via a network, the file system used in the entire computer cluster system is the same as that of each computer. An operating system that is distributed on a storage device and used in a computer cluster system has a relationship between a path that represents the logical structure of the file system and a global identifier that is uniquely assigned to the file throughout the computer cluster system. A local identifier that identifies a storage device in which the file is stored, and a global identifier that includes a subsystem having a path management unit for management and a kernel that controls a storage device included in each computer; For storing and managing the relationship A management unit, and a file management unit that manages the relationship between the address of the location where the file is stored in the storage device and the local identifier, and is operated in each computer. And operate on the computer cluster system in the path management unit of the subsystem. User program If there is no global identifier corresponding to the file path notified by For each calculator The resource management unit newly stores a global identifier and local identifier pair corresponding to the file path, and the subsystem newly stores a global identifier and path pair corresponding to the file path, The user program acquires a global identifier corresponding to a path of the file.
[0023]
The computer cluster system of the present invention includes a storage device and a communication device, and in a computer cluster system composed of a plurality of computers commonly connected via a network, the file system used in the entire computer cluster system is the same for each computer. Path management that exists in a distributed manner on a storage device and manages the relationship between the path that represents the logical structure of the file system and the global identifier that is uniquely assigned to the file in the entire computer cluster system. A local identifier that identifies which storage device the file is stored in, and a kernel that controls a storage device included in each computer is operated on each computer. A resource management unit for storing and managing a correspondence relationship with the global identifier; And a file management unit for managing the relationship between the address of the location where the file is stored as the local identifier within, the path management unit of the subsystems, operating on the computer cluster system User program If there is no global identifier corresponding to the file path notified by For each calculator The resource management unit newly stores a global identifier and local identifier pair corresponding to the file path, and the subsystem newly stores a global identifier and path pair corresponding to the file path, The user program acquires a global identifier corresponding to a path of the file.
[0024]
The file access method of the present invention is a file access method in a computer cluster system comprising a plurality of computers commonly provided with a storage device and a communication device and connected via a network, wherein the user program is a logic of the file system. An open step of notifying the subsystem that manages the physical structure of the file and obtaining the global identifier of the file; and the user program notifying the global identifier to the kernel operating on the same computer as the user program. A request step for requesting reading / writing, a file location search step in which the kernel converts the global identifier into a local identifier to check the location of a storage device in which a file to be read / written exists, and a result of the file location search step The computer on which the kernel is running When the computer to which the storage device in which the file exists belongs is different from the computer to which the file exists, a request transfer step for transferring the read / write request and the local identifier to the kernel operating in the computer to which the storage device in which the file exists belongs, and the file exists An access step in which a kernel operating on a computer to which the storage device belongs accesses the storage device indicated by the local identifier to execute a read / write request, and the kernel that has executed the access step sends the result of the access step to the user program A result reporting step of notifying, and in the open step, the user program notifies the subsystem of the file path when there is no global identifier corresponding to the path of the file in the path management unit of the subsystem. After that, the kernel A step of newly allocated and stores the set of the global identifier and the local identifier corresponding to the path of, Maintaining the same correspondence information between global identifiers and local identifiers of the kernel and kernels of other computers; and The subsystem includes a step of newly assigning and storing a global identifier corresponding to the path of the file and a path.
[0025]
The file access method of the present invention is a file access method in a computer cluster system comprising a plurality of computers commonly provided with a storage device and a communication device and connected via a network, wherein the user program is a logic of the file system. An open step of notifying the subsystem that manages the physical structure of the file and obtaining the global identifier of the file; and the user program notifying the global identifier to the kernel operating on the same computer as the user program. A request step for requesting read / write of the file, a result of the file location search step in which the kernel converts the global identifier into a local identifier to check the location of the storage device in which the file to be read / written exists, and the file location search step The computer on which the kernel is running When the computer to which the storage device in which the file exists belongs is different from the computer to which the file exists, a request transfer step for transferring the read / write request and the local identifier to the kernel operating in the computer to which the storage device in which the file exists belongs, and the file exists An access step in which a kernel operating on a computer to which the storage device belongs accesses the storage device indicated by the local identifier to execute a read / write request, and the kernel that has executed the access step sends the result of the access step to the user program A reporting result report step, and in the open step, when the path management unit of the subsystem does not have a global identifier corresponding to the path of the file, the user program sets the path of the file to the subsystem. After notification, the subsystem Assigning a global identifier corresponding to the path of Airu, and storing in association with the path, the steps of the kernel newly allocated and storing local identifier corresponding to the global identifier corresponding to the path of the file, Maintaining the same correspondence information between global identifiers and local identifiers of the kernel and kernels of other computers; and It is characterized by having.
[0037]
DETAILED DESCRIPTION OF THE INVENTION
(System Overview / Configuration) A computer cluster system according to an embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a diagram for explaining a computer cluster system according to an embodiment of this invention.
[0038]
In the computer cluster system of this embodiment, two computers, a computer 100 that executes a user program 101 and a computer 110 that executes a subsystem 111, are connected via a network 120.
[0039]
The computer 100 includes a storage device 105 that is a magnetic disk for storing data, and a communication device 106 that communicates with other computers via a network. In the computer 100, the storage device 105, the communication device 106, the kernel 102 which is a program responsible for hardware control of a memory (not shown), and the services provided by the computer cluster system and the subsystem 108 are used. A user program 101 that is a program such as an application to be executed is executed.
[0040]
The kernel 102 has an interface (not shown) for controlling hardware, a resource management unit 103 that manages resources such as files and processes used in the entire computer system, and the physical data stored in the storage device 105. And a file management unit 104 that manages a specific location (that is, a physical structure of the file system), and these can be accessed from outside the kernel 102 (for example, the user program 101) using a system call.
[0041]
The configuration of the computer 110 is the same as that of the computer 100 and includes a storage device 115 and a communication device 116. Further, on the computer 110, there is a subsystem 111 which is a program responsible for hardware control and the like, and has a kernel 112 having the same function as the kernel 102 and a program that provides services to all user programs including the user program 101. It is running.
[0042]
The configuration of the kernel 112 is the same as that of the kernel 102. In addition to an interface (not shown) for controlling hardware, a resource management unit 113 for managing resources such as files and processes used in the entire computer system, and a storage device 115 And a file management unit 114 for managing the physical location of the data stored therein, which can be accessed from outside the kernel 112 (for example, the subsystem 111) using a system call.
[0043]
The subsystem 111 is a program that manages the logical structure of a file system such as a directory structure, and is a character string (for example, “/home/user1/movie/gogo.mpg”) used to identify a file called a path. Is provided with a path management unit 117 that provides a function of converting a file identifier into a file identifier. The subsystem 111 stores and manages a relationship between a GID and a path for a file used in the entire computer cluster system among global identifiers (hereinafter referred to as GIDs) assigned to all resources used in the entire computer cluster system.
[0044]
The resource managers 103 and 113 assign the above-mentioned GID and local identifier (hereinafter referred to as LID) that is a unique identifier within the computer in which the resource actually exists to resources used in the entire computer cluster system. In addition, the correspondence between GID and LID is stored and managed. The LID has a structure in which the identifier of the computer itself in which the resource exists and the resource identifier in the computer are combined. For example, the LID of a file stored in the storage device 105 of the computer 100 has a structure such as “(identifier representing the computer 100): (identifier representing the storage device 105): (identifier of the file unique within the computer 100)”. become.
[0045]
In the present embodiment, when a change occurs in the correspondence relationship between one GID and LID, the resource management units 103 and 113 notify the other to the change so that the information on the correspondence relationship held by each other remains the same. . However, the management of correspondence information between GID and LID is not limited to this. For example, the resource management unit 103 may perform centralized management, and the resource management unit 113 may inquire when necessary, and notify the resource management unit 103 of the change contents when a change is made. Alternatively, inquiries may be made when a mutual management method is required for each other, for example, when a GID having an unknown correspondence with an LID is received. It is desirable that the method of synchronizing or exchanging information on the correspondence relationship between GID and LID between resource management units is appropriately changed according to the scale, design, and purpose of the computer cluster system.
[0046]
The file management unit 104 manages the physical location of the file stored in the storage device 105 connected to the kernel 102, and the file management unit 114 manages the physical location of the file stored in the storage device 115 connected to the kernel 112. Manage whereabouts. The physical location is a block number or address which is a recording unit of the storage devices 105 and 115 and is assigned to the file in a number corresponding to the data size. The file management units 104 and 114 manage LIDs and addresses of all blocks assigned to the file indicated by the LID.
[0047]
The storage devices 105 and 115 are magnetic disks that store files. It should be noted that a flash memory or the like is not limited to a magnetic disk. The storage device 105 passes file data to the file management unit 104 in response to a read request from the file management unit 104 of the kernel 102, and receives data received from the file management unit 104 in response to a write request from the file management unit 104. Remember. The storage device 115 passes file data to the file management unit 114 in response to a read request from the file management unit 114 of the kernel 112, and receives data received from the file management unit 114 in response to a write request from the file management unit 114. Remember.
[0048]
The communication devices 106 and 116 communicate with each other via the network 120. The communication device 106 transmits data to the communication device 116 in response to a request from the kernel 102, and passes the data received from the communication device 116 to the kernel 102. The communication device 116 transmits data to the communication device 106 in response to a request from the kernel 112, and passes the data received from the communication device 106 to the kernel 112. As the communication devices 106 and 116, for example, Ethernet (registered trademark), asynchronous communication mode (ATM), token ring, or the like can be used.
[0049]
(File Opening) The operation of the user program 101 opening a file will be described below using the flowchart of FIG.
[0050]
The user program 101 notifies the resource management unit 103 of an open request including the path of the file to be opened (step 201). The resource management unit 103 transfers the open request to the subsystem 111 (step 202). The subsystem 111 searches the GID corresponding to the path included in the open request from the table stored in the subsystem 111 (step 203). Then, the process branches depending on whether it is found (step 204).
[0051]
If found, the subsystem 111 includes the GID in the request result and notifies the resource management unit 103 (step 205). The resource management unit 103 notifies the request result to the user program 101 (step 206). Then, the user program 101 obtains a GID (Step 207).
[0052]
On the other hand, if not found, the subsystem 111 requests the resource management unit 103 described later to assign a GID (step 208). The resource management unit 103 newly assigns a GID, which will be described later (step 209), and notifies the user program 101 of the assignment result (step 210). Then, the user program 101 obtains a GID (Step 207).
[0053]
Thereafter, the user program 101 designates a target file using this GID when reading and writing the file.
[0054]
FIG. 3 is a flowchart for explaining the above-described steps 208 and 209, that is, the GID assignment request by the subsystem 111 and the new assignment of GID by the resource management unit 103.
[0055]
If it is determined that the GID corresponding to the path does not exist, the subsystem 111 analyzes the open request from the user program 101, checks whether or not new file creation is permitted (step 221), and branches the subsequent processing (step 221). Step 222).
[0056]
If there is no permission for new creation, the open result is a failure, so the resource management unit 103 is notified of the open failure (step 227). Since the open result is unsuccessful, the resource management unit 103 does not assign a GID (step 228), and notifies the user program 101 to that effect in step 210 described above.
[0057]
If there is permission for new creation, the subsystem 111 requests the resource management unit 103 to assign a new GID (step 223). The resource management unit 103 generates and stores a new set of GID and LID (step 224). Then, the generated GID and path are notified to the subsystem 111 to store the correspondence, and the GID and LID are notified to the resource management unit 113 as described above to update the resource information (step 225). Then, the assignment result is successful (step 226), and in step 210 described above, the success and the GID are notified to the user program 101.
[0058]
Although the file open has been described here, in the case of a file deletion request, processing is performed as follows.
[0059]
(1) The user program 101 notifies the resource management unit 103 of a deletion request, and the resource management unit 103 transfers the deletion request to the subsystem 111. (2) The subsystem 111 deletes the GID stored in the path management unit 117 and the corresponding path, and notifies the resource management unit 103 that the GID has been deleted. (3) Upon receiving the notification from the subsystem 111, the resource management unit 103 deletes the corresponding GID and the corresponding LID from the storage, and notifies the file management unit 104 that the LID has been deleted. (4) Upon receiving the notification from the resource management unit 103, the file management unit 104 deletes the relationship between the corresponding LID and the addresses of all blocks assigned to the file indicated by the corresponding LID from the storage.
[0060]
The notification of the deletion result from the resource management unit 103 to the user program 101 may be performed in parallel with the processing of (3), or after the processing of (3) or after the processing of (4). I do not care. When notifying the deletion result after completion of the process (4), the resource management unit 103 is notified of the deletion processing result of the file management unit 104.
[0061]
(File Writing) The operation of the user program 101 writing data to a file will be described below using the flowchart of FIG.
[0062]
The user program 101 notifies the resource management unit 103 of a file write request, GID, and data (step 301). The resource management unit 103 searches for an LID corresponding to the GID. If the computer indicated by the found LID is different from the computer 100 (ie, indicating the computer 110), the write request, LID, and data are transferred to the resource management unit of the computer indicated by the LID (step 302).
[0063]
If the LID indicates the computer 110, the write request, LID, and data are transferred to the resource management unit 113 of the computer 110 in step 302. The resource management unit 113 performs a data writing process as described later (step 303), and the resource management unit 113 notifies the resource management unit 103 of the result (step 304). Then, the resource management unit 103 notifies the user program 101 of the result of the writing process (step 306).
[0064]
When the LID indicates the computer 100, there is no need for transfer. The resource management unit 103 performs a writing process to be described later (step 305) and executes step 306.
[0065]
FIG. 5 is a flowchart of file write processing in the resource management unit 103. The resource management unit 113 performs similar processing.
[0066]
The resource management unit 103 notifies the file management unit 104 of the write request, LID, and data (step 311). The file management unit 104 searches for the physical location of the file indicated by the LID in the storage device 105 (step 312), and the storage area allocated to the file indicated by the LID is sufficiently larger than the size of data to be written. It is checked whether it is secured (step 313). If there is not a sufficiently large storage area, it is secured (step 314).
[0067]
Then, the file management unit 104 writes the data into the storage device 105 (step 315). The file management unit 104 notifies the write result to the resource management unit 103 (step 316).
[0068]
As described above, when the user program 101 writes data to a file, the subsystem 111 has always received and written data from the user program 101 in the past, but in the present embodiment, it is connected to the computer 100 on which the user program 101 operates. When the file to be written exists in the storage device 105, the file can be written without transmitting data via the network, which is efficient.
[0069]
(File Read) The operation of the user program 101 reading data from a file will be described below using the flowchart of FIG.
[0070]
The user program 101 notifies the resource management unit 103 of the read request and GID (step 401). The resource management unit 103 searches the LID from the GID. If the computer indicated by the found LID is different from the computer 100 (ie, indicating the computer 110), the read request and the LID are transferred to the resource management unit of the computer indicated by the LID (step 402).
[0071]
If the LID indicates the computer 110, the read request and the LID are transferred to the resource management unit 113 of the computer 110 in step 402. The resource management unit 113 performs a read process as described later (step 403), and the resource management unit 113 notifies the resource management unit 103 of the read result and data (step 404). Then, the resource management unit 103 notifies the read result and data to the user program 101 (step 406).
[0072]
When the LID indicates the computer 100, there is no need for transfer. The resource management unit 103 performs a read process described later (step 405) and executes step 406.
[0073]
FIG. 7 is a flowchart of file read processing in the resource management unit 103. The reading process in the resource management unit 113 is performed in the same manner.
[0074]
The resource management unit 103 notifies the file management unit 104 of the read request and LID (step 411). The file management unit 104 searches the physical location of the file indicated by the LID in the storage device 105 (step 412). The file management unit 104 reads data from the storage device 105 (step 413). The file management unit 104 notifies the resource management unit 103 of the data and the read result (step 414).
[0075]
As described above, when the user program 101 reads data from a file, conventionally, the subsystem 111 always reads the data from the storage device 105 and transfers the data to the user program 101. However, in this embodiment, the user program 101 If the file to be read exists in the storage device 105 connected to the computer 100 that operates, the file can be read without receiving data via the network, which is efficient.
[0076]
(Configuration of Resource Management Unit) FIG. 8 is a diagram for explaining the configuration of the resource management unit. The resource management unit 601 includes an ID conversion unit 602 that converts GID and LID, and a resource management table 603 that stores a correspondence relationship between GID and LID.
[0077]
The ID conversion unit 602 receives and processes a request notified from a user program or a subsystem and a request transferred from a resource management unit on another computer. If the ID included in the request is a GID, the GID is converted to an LID with reference to the resource management table 603. If the LID obtained by the conversion is an LID related to another computer, the request is transferred to the corresponding computer. Further, when a file is newly opened, a new GID and LID are generated and stored in the resource management table 603. When a file is deleted, the GID and LID are deleted.
[0078]
As described above, in the case of the present embodiment, when a change occurs in the resource management table 603, the change contents are notified to the resource management unit of another computer, and the same contents of the resource management table 603 are maintained.
[0079]
The resource management table 603 manages the LID corresponding to the resource represented by GID. The GID is numbered differently depending on the resource type (process, file, etc.). For example, in FIG. 8, GID starting with VP indicates a process, and GID starting with VF indicates a file. For example, it can be seen that the resource whose GID is VP0001 is P0001 of a process operating on the computer 100.
[0080]
(Configuration of File Management Unit) FIG. 9 is a diagram for explaining the configuration of the file management unit. The file management unit 701 includes a block position conversion unit 702 that converts the LID into a position on the storage device, and a file management table 703 that stores the correspondence between the LID and the position on the storage device.
[0081]
The block position conversion unit 702 uses the file management table 703 to obtain the LID included in the write or read request received from the resource management unit and the position information of the data in the file (information on the number of bytes from the beginning of the file). Convert to a location on the storage device. If the block size of the storage device is 64 KB, it can be seen that the 130 KB data from the beginning of the file with LID F0003 is stored in block 8 from the file management table 703.
[0082]
Note that the file management unit need not have the configuration shown in FIG. 8 as long as the location on the storage device can be known from the LID and the location information of the data in the file.
[0083]
(Configuration of Path Management Unit) FIG. 10 is a diagram for explaining the configuration of the path management unit of the subsystem. The path management unit 801 includes a path conversion unit 802 that provides a function of converting a path, which is a function of the file system, to a GID, and a path management table 803 that stores the correspondence between the path and the GID.
[0084]
The path conversion unit 802 receives a file open request from the resource management unit, converts the path included in the request into a GID using the path management table 803, and notifies the resource management unit of the result. Conversely, when the GID and path of the file generated by the resource management unit are received and stored in the path management table, or when a notification that the GID has been deleted is received from the resource management unit, The path management table is managed, such as deleting a GID and a path associated with the GID.
[0085]
For example, when the path is “/home/doc/document.txt”, the path management table 803 is searched in the order of “home”, “doc”, “document.txt” to obtain the GID. Get.
[0086]
First, data having no parent GID and having a name “home” is retrieved from data stored in the path management table 803 to obtain data 804.
[0087]
Next, using the GID “VF0001” included in the data 804, this time, the data having the parent GID “VF0001” and the name “doc” is retrieved to obtain the data 805.
[0088]
Similarly, data 805 is used to search for data whose parent GID is “VF0002” and whose name is “document.txt” to obtain data 806, and GID “VF0003]” of “document.txt” Is included in the result and notified to the resource management unit.
[0089]
If conversion is not possible due to circumstances such as the file does not exist, the open request is analyzed. If permission to create a new file is granted, the GID is requested to the resource management unit. If permission is not granted An error is returned to the resource manager.
[0090]
Note that the path management unit may not have the configuration of FIG. 9 as long as it has a function of converting a path to GID.
(Data Flow) FIG. 11 is a diagram for explaining the data flow when the user program 1001 reads data from the storage device. Although a communication device is omitted in the figure, communication between the computers 1000 and 1010 is performed via a network using the communication device.
[0091]
When the user program 1001 reads a file from the storage device 1003, the read request is transmitted (1) from the user program 1001 to the kernel 1002 (2) from the kernel 1002 to the storage device 1003. The read data is (3) transmitted from the storage device 1003 to the kernel 1002 and (4) transmitted from the kernel 1002 to the user program 1001.
[0092]
All communications from (1) to (4) are performed inside the computer. Since the communication inside the computer is much faster than the communication via the network, it can be understood that the time until the reading is completed is short and the processing efficiency is good. The same applies to writing.
[0093]
On the other hand, when the user program 1001 reads a file from the storage device 1013, the read request is transmitted from the user program 1001 to the kernel 1002 (2 ') and transferred from the kernel 1002 to the kernel 1012 (3') from the kernel 1012. It is transmitted to the storage device 1013. The read data is transmitted (4 ′) from the storage device 1013 to the kernel 1012 (5 ′) transferred from the kernel 1012 to the kernel 1002, and (6 ′) transmitted from the kernel 1002 to the user program 1001. The same applies to writing.
[0094]
When the computer on which the user program operates and the computer to which the storage device storing the file is different, the read / write efficiency is the same as before. However, when reading and writing from a storage device connected to the same computer, file contents are not communicated over the network as in the conventional case, so overhead is drastically reduced and efficiency is improved. The efficiency of.
[0095]
Although this embodiment has been described with only two computers, it is also possible to configure a computer cluster system using three or more computers. A plurality of user programs may be executed on different computers in the computer cluster system, and a part of the user programs may be executed on a computer on which the subsystem is executed. A plurality of subsystems may be executed on different computers in the computer cluster system. Furthermore, the functions of the subsystem may be divided and executed by being distributed over different computers in the computer cluster system.
[0096]
In this embodiment, the GID for the new file is assigned by the resource management unit 103 or 113, but may be assigned by the subsystem 111. The case where the resource management unit 103 is notified of the opening of the user program 101 file will be described as an example. If the file does not exist, the subsystem 111 allocates a GID, stores it in association with the path, and notifies the resource management unit 103 of it. . Then, the resource management unit 103 newly allocates and stores an LID corresponding to the GID.
[0097]
Up to this point, basic file read / write has been explained so far. The following is the operation when data redundancy is provided by creating a file copy on a storage device of a different computer. explain.
[0098]
In the case of a file having redundancy, a plurality of LIDs “computer 100: storage device 105: F0004” “computer 110: storage device 115: F0004” are associated with one GID, such as GID “VF0004” in FIG. Exists.
[0099]
In the file writing operation, all LIDs corresponding to GID are extracted in step 302. Then, the write request, the data, and the LID “computer 110: F0004” are transferred to the resource management unit 113 of the computer 110 and the resource management unit 113 performs the write process. In parallel with this, the resource management unit 103 also performs write processing. The resource management unit 103 executes step 306 after both writings are completed, and notifies the user program 101 of the writing result. It should be noted that step 306 may be executed at the stage where one writing is completed depending on the operation mode and policy of the computer cluster system.
[0100]
The file read operation is performed in the same manner as when one of a plurality of computers is selected and no redundancy is provided. When selecting a computer, it is most efficient to select a computer executing the user program that issued the request.
[0101]
When a failure occurs in the storage device, the resource management unit selects an LID of another storage device instead of the failed storage device.
[0102]
For example, when a failure occurs in the storage device 105, the resource management unit 103 that has received a read request for the file with the GID “VF0004” from the user program 101 changes the storage device 105 when converting from GID to LID. The “computer 100: storage device 105: F0004” is not selected, but “computer 110: storage device 115: F0004” is selected.
[0103]
As a result, the write operation executes steps 401, 402, 403, 404, and 406 in FIG. 6, and the write operation executes steps 301, 302, 303, 304, and 306 in FIG.
[0104]
In any case, the user program 101 may request reading and writing as in the case where there is no failure.
[0105]
In the computer cluster system according to the present embodiment, when the computer that is executing the user program or subsystem that requested reading / writing of the file is the same as the computer to which the storage device storing the file to be read / written is connected. Since the file can be read and written efficiently, the average file access efficiency of the entire system is improved. In addition, by executing reading and writing of files on the kernel side, it becomes difficult for communication to be concentrated on the computer on which the subsystem operates, so that the capacity, robustness and reliability of the entire system can be improved. In addition, even when the file is given redundancy, the file can be read and written efficiently as in the case where the file is not given redundancy.
[0106]
【The invention's effect】
As described above, the computer cluster system of the present invention can improve the read / write efficiency by dividing the file system functions and implementing path management in the subsystem and resource management and file management in the kernel.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration of a computer cluster system according to an embodiment of this invention.
FIG. 2 is a flowchart for explaining a file open operation in the computer cluster system according to the embodiment of this invention.
FIG. 3 is a flowchart for explaining a GID assignment operation in steps 208 and 209 in FIG. 2;
FIG. 4 is a flowchart for explaining a file writing operation in the computer cluster system according to the embodiment of this invention.
FIG. 5 is a flowchart for explaining a file writing operation in a resource management unit.
FIG. 6 is a flowchart for explaining a file read operation in the computer cluster system according to the embodiment of this invention.
FIG. 7 is a flowchart for explaining a file read operation in the resource management unit.
FIG. 8 is a diagram illustrating a configuration of a resource management unit.
FIG. 9 is a diagram illustrating a configuration of a file management unit.
FIG. 10 is a diagram illustrating the configuration of a subsystem.
FIG. 11 is a diagram illustrating an example of a data flow when reading a file in the computer cluster system according to the embodiment of this invention.
FIG. 12 is a diagram for explaining the configuration of a conventional computer cluster system.
FIG. 13 is a diagram for explaining an example of a data flow when reading a file in a conventional computer cluster system.
[Explanation of symbols]
100, 110 computer
101 User program
102, 112 kernel
103, 113 Resource Management Department
104, 114 File management unit
105, 115 Storage device
106, 116 Communication device
111 subsystem
117 Path management department
120 network
601 Resource Management Department
602 ID converter
603 Resource management table
701 File Management Department
702 Block position conversion unit
703 File management table
801 Subsystem (path management unit)
802 Path conversion unit
803 Path management table
900, 910 calculator
901 User program
902, 912 kernel
903, 913 storage device
904, 914 communication device
915 Path Management Department
916 Resource Management Department
917 File Management Department
920 network

Claims (16)

それぞれが記憶装置と通信装置を備えた複数の計算機を、ネットワークを介して共通に接続した計算機クラスタシステムにおいて、
計算機クラスタシステム全体のファイルシステムは各計算機の記憶装置上に分散して存在し、
一部の計算機は、前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムを有し、
各計算機は、それぞれの計算機が有する記憶装置の制御を行うカーネルを有し、
前記カーネルは、ファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、
前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする計算機クラスタシステム。
In a computer cluster system in which a plurality of computers each having a storage device and a communication device are connected in common via a network,
The file system of the entire computer cluster system is distributed on the storage device of each computer,
Some computers have a subsystem having a path management unit that manages a relationship between a path representing the logical structure of the file system and a global identifier that is uniquely assigned to the file in the entire computer cluster system.
Each computer has a kernel that controls the storage device that each computer has,
The kernel stores and manages a correspondence relationship between a local identifier for identifying a storage device in which a file is stored and the global identifier, and an address of a location where the file is stored in the storage device. A file management unit for managing a relationship with the local identifier,
When the path management unit of the subsystem does not have a global identifier corresponding to the file path notified by the user program operating on the computer cluster system, the resource management unit of each computer corresponds to the file path. A new set of global identifiers and local identifiers to be stored, the subsystem newly stores a set of global identifiers and paths corresponding to the path of the file, and the user program corresponds to the path of the file A computer cluster system characterized in that a global identifier is obtained.
記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおいて、
計算機クラスタシステム全体で使用するファイルシステムは各計算機の記憶装置上に分散して存在し、
計算機クラスタシステムで使用するオペレーティングシステムは、
前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムと、
それぞれの計算機が有する記憶装置の制御を行うカーネルとを有し、
前記カーネルはファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、かつ、各計算機において動作させ、
前記サブシステムは一部の計算機で動作させ、
前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする計算機クラスタシステム。
In a computer cluster system comprising a plurality of computers that are commonly connected via a network, including a storage device and a communication device,
The file system used in the entire computer cluster system is distributed on the storage device of each computer,
The operating system used in the computer cluster system is
A subsystem having a path management unit that manages a relationship between a path representing a logical structure of the file system and a global identifier uniquely assigned to the file in the entire computer cluster system;
A kernel for controlling the storage device of each computer,
The kernel stores and manages a correspondence relationship between a local identifier for identifying a storage device in which a file is stored and the global identifier, an address of a location where the file is stored in the storage device, and the A file management unit that manages the relationship with the local identifier, and operates on each computer,
The subsystem operates on some computers,
When the path management unit of the subsystem does not have a global identifier corresponding to the file path notified by the user program operating on the computer cluster system, the resource management unit of each computer corresponds to the file path. A new set of global identifiers and local identifiers to be stored, the subsystem newly stores a set of global identifiers and paths corresponding to the path of the file, and the user program corresponds to the path of the file A computer cluster system characterized in that a global identifier is obtained.
記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおいて、
計算機クラスタシステム全体で使用するファイルシステムは各計算機の記憶装置上に分散して存在し、
一部の計算機では、前記ファイルシステムの論理的構造を表すパスとファイルに対して計算機クラスタシステム全体で一意に割り当てられる大域識別子との関係を管理するパス管理部を有するサブシステムを動作させ、
各計算機上では、それぞれの計算機が有する記憶装置の制御を行うカーネルを動作させ、
前記カーネルは、ファイルがどの記憶装置に記憶されているかを識別する局所識別子と前記大域識別子との対応関係を記憶・管理するリソース管理部と、記憶装置内でファイルが記憶された場所の番地と前記局所識別子との関係を管理するファイル管理部とを有し、
前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記各計算機のリソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに記憶し、前記サブシステムは、前記ファイルのパスに対応する大域識別子とパスとの組を新たに記憶し、前記ユーザプログラムは、前記ファイルのパスに対応する大域識別子を取得することを特徴とする計算機クラスタシステム。
In a computer cluster system comprising a plurality of computers that are commonly connected via a network, including a storage device and a communication device,
The file system used in the entire computer cluster system is distributed on the storage device of each computer,
In some computers, a subsystem having a path management unit that manages a relationship between a path representing the logical structure of the file system and a global identifier uniquely assigned to the file in the entire computer cluster system is operated.
On each computer, run the kernel that controls the storage devices of each computer,
The kernel stores and manages a correspondence relationship between a local identifier for identifying a storage device in which a file is stored and the global identifier, and an address of a location where the file is stored in the storage device. A file management unit for managing a relationship with the local identifier,
When the path management unit of the subsystem does not have a global identifier corresponding to the file path notified by the user program operating on the computer cluster system, the resource management unit of each computer corresponds to the file path. A new set of global identifiers and local identifiers to be stored, the subsystem newly stores a set of global identifiers and paths corresponding to the path of the file, and the user program corresponds to the path of the file A computer cluster system characterized in that a global identifier is obtained.
前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記リソース管理部は、前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに割り当てることを特徴とする請求項1乃至3いずれか1項記載の計算機クラスタシステム。If the path management unit of the subsystem does not have a global identifier corresponding to the path of the file notified by the user program operating on the computer cluster system, the resource management unit can determine the global identifier corresponding to the path of the file. 4. The computer cluster system according to claim 1, wherein a set of a local identifier is newly allocated. 前記サブシステムのパス管理部に、前記計算機クラスタシステム上で動作するユーザプログラムが通知したファイルのパスに対応する大域識別子がない場合に、前記サブシステムは、前記ファイルのパスに対応する大域識別子を割り当てて、パスと関連付けて記憶し、前記リソース管理部は、前記ファイルのパスに対応する大域識別子に対応する局所識別子を新たに割り当てて記憶することを特徴とする請求項1乃至3いずれか1項記載の計算機クラスタシステム。If the path management unit of the subsystem does not have a global identifier corresponding to the file path notified by the user program operating on the computer cluster system, the subsystem assigns a global identifier corresponding to the file path. 4. The resource management unit newly assigns and stores a local identifier corresponding to a global identifier corresponding to the path of the file, and stores the information in association with a path. The computer cluster system described in the section. 前記リソース管理部の大域識別子と局所識別子の対応関係に変更が生じた場合、前記リソース管理部とその他の計算機のリソース管理部との大域識別子と局所識別子との対応関係の情報を同一に保つことを特徴とする請求項1乃至5いずれか1項記載の計算機クラスタシステム。  When a change occurs in the correspondence between the global identifier and the local identifier of the resource management unit, the correspondence information between the global identifier and the local identifier between the resource management unit and the resource management unit of another computer is kept the same. The computer cluster system according to claim 1, wherein: 前記リソース管理部は、
前記カーネルから大域識別子を受け取って、これに対応する局所識別子を出力することを特徴とする請求項1乃至請求項6記載の計算機クラスタシステム。
The resource management unit
7. The computer cluster system according to claim 1, wherein a global identifier is received from the kernel and a local identifier corresponding to the global identifier is output.
前記リソース管理部は、
計算機クラスタシステムを構成する他の計算機のリソース管理部から、前記局所識別子と前記大域識別子との対応関係の情報を取得することを特徴とする請求項1乃至請求項7記載の計算機クラスタシステム。
The resource management unit
8. The computer cluster system according to claim 1, wherein information on a correspondence relationship between the local identifier and the global identifier is acquired from a resource management unit of another computer constituting the computer cluster system.
前記リソース管理部は、
計算機クラスタシステムを構成する他の計算機のリソース管理部に前記局所識別子と前記大域識別子との対応関係の情報を通知することを特徴とする請求項1乃至請求項8記載の計算機クラスタシステム。
The resource management unit
9. The computer cluster system according to claim 1, wherein information on a correspondence relationship between the local identifier and the global identifier is notified to a resource management unit of another computer constituting the computer cluster system.
前記カーネルは、
計算機クラスタシステム上で動作するユーザプログラムから受け取ったファイルのパスとファイルオープン要求を前記サブシステムに通知して前記パスに対応する大域識別子を取得し、
前記ユーザプログラムに取得した大域識別子を返すことを特徴とする請求項1乃至請求項9記載の計算機クラスタシステム。
The kernel is
A file path received from a user program operating on a computer cluster system and a file open request are notified to the subsystem to obtain a global identifier corresponding to the path,
10. The computer cluster system according to claim 1, wherein a global identifier obtained is returned to the user program.
前記カーネルは、
前記ユーザプログラムから受けた前記大域識別子とファイルの読み出し要求を前記リソース管理部に通知して前記大域識別子を前記局所識別子に変換し、
変換して得られた前記局所識別子を前記ファイル管理部で記憶装置内の番地に変換し、
変換して得られた番地を利用して前記記憶装置にアクセスしてデータを読み出して、
読み出したデータを前記ユーザプログラムに返すことを特徴とする請求項1乃至10記載の計算機クラスタシステム。
The kernel is
Notifying the resource management unit of the global identifier received from the user program and a file read request to convert the global identifier into the local identifier,
The local identifier obtained by conversion is converted into an address in a storage device by the file management unit,
Access the storage device using the address obtained by conversion, read the data,
11. The computer cluster system according to claim 1, wherein the read data is returned to the user program.
前記カーネルは、
前記ユーザプログラムから前記大域識別子とファイルに書き込むデータとファイルの書き込み要求を受け、
前記リソース管理部で前記大域識別子を前記局所識別子に変換し、
前記ファイル管理部で前記局所識別子を記憶装置内の番地に変換し、
前記記憶装置にアクセスしてデータを書き込むことを特徴とする請求項1乃至11記載の計算機クラスタシステム。
The kernel is
The global identifier and data to be written to the file and a file write request are received from the user program
Converting the global identifier into the local identifier in the resource management unit;
The file management unit converts the local identifier into an address in a storage device,
12. The computer cluster system according to claim 1, wherein data is written by accessing the storage device.
前記カーネルは、
計算機クラスタシステム上で動作するプログラムからのファイル書き込み要求を受けた場合、
計算機クラスタシステムの異なる計算機に接続された複数の記憶装置にファイルを書き込み、
前記複数の記憶装置のうちのいずれかが故障した場合は他の記憶装置のファイルを利用してファイルアクセスを行うことを特徴とする請求項1乃至請求項12記載の計算機クラスタシステム。
The kernel is
When a file write request is received from a program running on a computer cluster system,
Write files to multiple storage devices connected to different computers in the computer cluster system,
13. The computer cluster system according to claim 1, wherein when any of the plurality of storage devices fails, file access is performed using a file of another storage device.
前記サブシステムは、
前記カーネルから前記ファイルシステムの論理的構造を表すパスを受け取って、
前記パスに対応する大域識別子を出力することを特徴とする請求項1乃至請求項13記載の計算機クラスタシステム。
The subsystem is
Receiving a path representing the logical structure of the file system from the kernel;
14. The computer cluster system according to claim 1, wherein a global identifier corresponding to the path is output.
記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおけるファイルアクセス方法であって、
ユーザプログラムがファイルシステムの論理的構造を管理するサブシステムにファイルのパスを通知して当該ファイルの大域識別子を取得するオープンステップと、
ユーザプログラムが、ユーザプログラムと同一の計算機で動作するカーネルに前記大域識別子を通知してファイルの読み書きを依頼する要求ステップと、
前記カーネルが、前記大域識別子を局所識別子に変換して、読み書きすべきファイルが存在する記憶装置の所在を調べるファイル所在検索ステップと、
前記ファイル所在検索ステップの結果、カーネルが動作している計算機とファイルが存在する記憶装置の属する計算機とが異なる場合に、前記カーネルがファイルが存在する記憶装置の属する計算機で動作するカーネルへ読み書き要求及び前記局所識別子を転送する要求転送ステップと、
ファイルが存在する記憶装置の属する計算機上で動作するカーネルが前記局所識別子の示す記憶装置にアクセスして読み書き要求を実行するアクセスステップと、
前記アクセスステップを実行したカーネルが、前記アクセスステップの結果を前記ユーザプログラムに通知する結果報告ステップとを有し、
前記オープンステップにおいて、前記サブシステムのパス管理部に前記ファイルのパスに対応する大域識別子がない場合に、前記ユーザプログラムが前記サブシステムにファイルのパスを通知後、
前記カーネルが前記ファイルのパスに対応する大域識別子と局所識別子の組を新たに割り当てて記憶するステップと、
前記カーネルとその他の計算機のカーネルとの大域識別子と局所識別子との対応関係の情 報を同一に保つステップと、
前記サブシステムが前記ファイルのパスに対応する大域識別子とパスの新規割り当てを行い記憶するステップとを含むことを特徴とするファイルアクセス方法。
A file access method in a computer cluster system including a storage device and a communication device and comprising a plurality of computers commonly connected via a network,
An open step in which the user program notifies the subsystem that manages the logical structure of the file system of the file path and obtains the global identifier of the file;
A request step in which a user program notifies the kernel operating on the same computer as the user program to request reading and writing of the file by notifying the global identifier;
A file location search step in which the kernel converts the global identifier into a local identifier and checks the location of a storage device in which a file to be read and written exists;
As a result of the file location search step, when the computer in which the kernel is operating differs from the computer to which the storage device in which the file exists belongs, the kernel requests a read / write request to the kernel operating in the computer in which the storage device in which the file exists And a request transfer step for transferring the local identifier;
An access step in which a kernel operating on a computer to which the storage device in which the file exists belongs accesses the storage device indicated by the local identifier and executes a read / write request;
A kernel that has executed the access step has a result reporting step of notifying the user program of the result of the access step;
In the open step, when there is no global identifier corresponding to the file path in the path management unit of the subsystem, the user program notifies the subsystem of the file path,
The kernel newly assigning and storing a global identifier and local identifier pair corresponding to the path of the file;
A step of maintaining the information of the correspondence relationship between the global identifier and the local identifier of the kernel of the kernel and other computers on the same,
A file access method comprising the step of: the subsystem performing a new assignment of a global identifier and a path corresponding to the path of the file and storing them.
記憶装置と通信装置を備え、ネットワークを介して共通に接続された複数の計算機から成る計算機クラスタシステムにおけるファイルアクセス方法であって、
ユーザプログラムがファイルシステムの論理的構造を管理するサブシステムにファイルのパスを通知して当該ファイルの大域識別子を取得するオープンステップと、
ユーザプログラムが、ユーザプログラムと同一の計算機で動作するカーネルに前記大域識別子を通知してファイルの読み書きを依頼する要求ステップと、
前記カーネルが、前記大域識別子を局所識別子に変換して、読み書きすべきファイルが存在する記憶装置の所在を調べるファイル所在検索ステップと、
前記ファイル所在検索ステップの結果、カーネルが動作している計算機とファイルが存在する記憶装置の属する計算機とが異なる場合に、前記カーネルがファイルが存在する記憶装置の属する計算機で動作するカーネルへ読み書き要求及び前記局所識別子を転送する要求転送ステップと、
ファイルが存在する記憶装置の属する計算機上で動作するカーネルが前記局所識別子の示す記憶装置にアクセスして読み書き要求を実行するアクセスステップと、
前記アクセスステップを実行したカーネルが、前記アクセスステップの結果を前記ユーザプログラムに通知する結果報告ステップとを有し、
前記オープンステップにおいて、前記サブシステムのパス管理部に、前記ファイルのパスに対応する大域識別子がない場合に、前記ユーザプログラムが前記サブシステムにファイルのパスを通知後、
前記サブシステムが前記ファイルのパスに対応する大域識別子を割り当てて、パスと関連付けて記憶するステップと、
前記カーネルが前記ファイルのパスに対応する大域識別子に対応する局所識別子を新たに割り当てて記憶するステップと、
前記カーネルとその他の計算機のカーネルとの大域識別子と局所識別子との対応関係の情報を同一に保つステップと、
を有することを特徴とするファイルアクセス方法。
A file access method in a computer cluster system including a storage device and a communication device and comprising a plurality of computers commonly connected via a network,
An open step in which the user program notifies the subsystem that manages the logical structure of the file system of the file path and obtains the global identifier of the file;
A request step in which a user program notifies the kernel operating on the same computer as the user program to request reading and writing of the file by notifying the global identifier;
A file location search step in which the kernel converts the global identifier into a local identifier and checks the location of a storage device in which a file to be read and written exists;
As a result of the file location search step, when the computer in which the kernel is operating differs from the computer to which the storage device in which the file exists belongs, the kernel requests a read / write request to the kernel operating in the computer in which the storage device in which the file exists And a request transfer step for transferring the local identifier;
An access step in which a kernel operating on a computer to which the storage device in which the file exists belongs accesses the storage device indicated by the local identifier and executes a read / write request;
A kernel that has executed the access step has a result reporting step of notifying the user program of the result of the access step;
In the open step, when there is no global identifier corresponding to the file path in the path management unit of the subsystem, the user program notifies the subsystem of the file path,
The subsystem assigns a global identifier corresponding to the path of the file and stores it in association with the path;
The kernel newly assigning and storing a local identifier corresponding to a global identifier corresponding to the path of the file;
Maintaining the same correspondence information between global identifiers and local identifiers of the kernel and kernels of other computers; and
A file access method comprising:
JP2002117059A 2002-04-19 2002-04-19 Computer cluster system, file access method Expired - Fee Related JP4245304B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002117059A JP4245304B2 (en) 2002-04-19 2002-04-19 Computer cluster system, file access method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002117059A JP4245304B2 (en) 2002-04-19 2002-04-19 Computer cluster system, file access method

Publications (2)

Publication Number Publication Date
JP2003316637A JP2003316637A (en) 2003-11-07
JP4245304B2 true JP4245304B2 (en) 2009-03-25

Family

ID=29534379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002117059A Expired - Fee Related JP4245304B2 (en) 2002-04-19 2002-04-19 Computer cluster system, file access method

Country Status (1)

Country Link
JP (1) JP4245304B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6610398B2 (en) 2016-04-12 2019-11-27 富士通株式会社 Parallel processing apparatus and communication control method

Also Published As

Publication number Publication date
JP2003316637A (en) 2003-11-07

Similar Documents

Publication Publication Date Title
US10649827B2 (en) Two level addressing in storage clusters
CN110663019B (en) File system for Shingled Magnetic Recording (SMR)
US8996611B2 (en) Parallel serialization of request processing
US8074041B2 (en) Apparatus, system, and method for managing storage space allocation
TW409215B (en) Parallel file system and method for multiple node file access
US7707337B2 (en) Object-based storage device with low process load and control method thereof
US10158579B2 (en) Resource silos at network-accessible services
JP2019212330A (en) Scalable distributed storage architecture
US11287994B2 (en) Native key-value storage enabled distributed storage system
US11693789B2 (en) System and method for mapping objects to regions
US20080184000A1 (en) Storage module and capacity pool free capacity adjustment method
US20060064441A1 (en) Storage apparatus, storage control method, and computer product
CN105975214A (en) Configuring object storage system for input/output operations
WO2014180232A1 (en) Method and device for responding to a request, and distributed file system
CN109542861B (en) File management method, device and system
WO2019148841A1 (en) Distributed storage system, data processing method and storage node
CN107924289A (en) Computer system and access control method
JP2005228278A (en) Management method, management device and management program of storage area
JP2012504295A (en) Storage hierarchy for database server systems
CN113220729A (en) Data storage method and device, electronic equipment and computer readable storage medium
CN109840051B (en) Data storage method and device of storage system
US7958097B1 (en) Method and system for implementation of data storage quota
JP2022500724A (en) Replacing the tenant identifier
CN111435286A (en) Data storage method, device and system
JP4245304B2 (en) Computer cluster system, file access method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050207

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050415

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050606

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080912

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081113

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20081128

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090106

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

Free format text: PAYMENT UNTIL: 20120116

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees