JPH1125022A - クライアントサーバシステム - Google Patents

クライアントサーバシステム

Info

Publication number
JPH1125022A
JPH1125022A JP9177345A JP17734597A JPH1125022A JP H1125022 A JPH1125022 A JP H1125022A JP 9177345 A JP9177345 A JP 9177345A JP 17734597 A JP17734597 A JP 17734597A JP H1125022 A JPH1125022 A JP H1125022A
Authority
JP
Japan
Prior art keywords
data
server
error correction
servers
client
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.)
Pending
Application number
JP9177345A
Other languages
English (en)
Inventor
Yuji Kiyohara
裕二 清原
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.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP9177345A priority Critical patent/JPH1125022A/ja
Publication of JPH1125022A publication Critical patent/JPH1125022A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 サーバ側での障害発生への耐性面で強いクラ
イアントサーバシステムを提供する。 【解決手段】 データが複数のブロックデータに分割さ
れて第1〜第4のサーバ101〜104に分散格納され
ていると共に、それらのパリティデータがパリティサー
バ105に格納されている。クライアント100がデー
タを読み出す際には、第1〜第4のサーバ101〜10
4に分散格納されている該当ブロックデータを読み出
し、データ結合手段113にてそれらを結合して元のデ
ータを得ることができる。また、いずれかのサーバ10
1〜104から正常なデータ読み出しができなかった場
合には、正常に読み出したブロックデータとパリティサ
ーバ105から読み出したパリティデータに基づき、エ
ラー訂正手段114において正常に読み出せなかったブ
ロックデータを復元し、その復元データを用いてデータ
結合を行えば元のデータを得ることができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、クライアントと、
当該クライアントから転送されたデータの格納やクライ
アントからのデータ読み出し要求に応じたデータの供給
などを行なうサーバとが所定の伝送路を介して接続され
てネットワークを構成するクライアントサーバシステム
に関し、特にサーバ側での障害発生への耐性を持つシス
テムに関する。
【0002】
【従来の技術】従来、例えばインターネットやLANな
どのネットワークを構築し、そのネットワーク上のクラ
イアントが同じくネットワーク上のサーバに対してデー
タの格納やデータの供給を要求するようなクライアント
サーバシステムが実現されている。あるクライアント
は、あるサーバに格納されている様々なファイルにアク
セスし、また特定のサーバだけでなく、様々なサーバに
もアクセスする。
【0003】この場合、例えば所定のファイルが特に重
要なものであって破損すると困る場合には、同じファイ
ルをバックアップ用としてコピーし、別のサーバにも記
憶させておくのが効果的である。また、ファイル単体の
破損だけでなく、特定のサーバが故障を起こした場合、
そのサーバが記憶している全てのファイルが使えなくな
るケースも想定される。これに対応するには、サーバを
まるごと二重化することが考えられる。つまり、そのサ
ーバが記憶している全てのファイルをコピーして記憶し
ているバックアップサーバを設け、一方のサーバが故障
しても、バックアップサーバが代わって稼働するような
システムにするのである。
【0004】
【発明が解決しようとする課題】しかしながら、上述し
たバックアップファイルを別のサーバに作っておく方法
では、記憶装置の容量を2倍使用することになるため非
効率的であり費用もかさむ。サーバ全体を二重化した場
合はなおさらである。
【0005】また、ファイルやサーバが壊れていない場
合でも、あるサーバにアクセスが集中すると、その特定
サーバの処理速度がネックになってネットワークシステ
ム全体の処理スピードが上がらない。この問題は、ネッ
トワークを構成するクライアントサーバシステムには元
々内在している。
【0006】そこで、本発明は従来のクライアントサー
バシステムにおける上述の問題を取り除き、特にサーバ
側での障害発生への耐性面で強いクライアントサーバシ
ステムを提供することを目的とする。
【0007】
【課題を解決するための手段及び発明の効果】上記目的
を達成するためになされた請求項1に記載の発明は、ク
ライアントと、当該クライアントからのデータ読み出し
要求に応じたデータの供給を行なう複数のサーバとが所
定の伝送路を介して接続されてネットワークを構成する
クライアントサーバシステムであって、前記クライアン
トの読み出し対象のデータは、複数のブロックデータに
分割されて前記サーバの内のデータ用サーバとみなした
複数のものに分散して格納されていると共に、前記複数
のブロックデータに対応するエラー訂正データが前記複
数のサーバの内の前記データ用サーバ以外でエラー訂正
用サーバとみなしたものに格納されており、前記クライ
アントは、データ結合手段とエラー訂正手段とを有し、
前記サーバからデータを読み出す際、該当する前記デー
タ用サーバの全てからブロックデータを読み出せた場合
には、その読み出したブロックデータを前記データ結合
手段によって結合することで元のデータを得るように
し、前記いずれかのデータ用サーバから正常なデータ読
み出しができなかった場合には、残りのデータ用サーバ
から正常に読み出したデータと前記エラー訂正用サーバ
から読み出したエラー訂正データに基づき前記エラー訂
正手段において前記正常に読み出せなかったブロックデ
ータを復元し、前記データ結合手段によって元のデータ
を得るよう構成されていることを特徴とする。
【0008】本発明のクライアントサーバシステムは、
クライアントと複数のサーバとが所定の伝送路を介して
接続されてネットワークを構成する形態であるが、この
場合のサーバは、クライアントからのデータ読み出し要
求に応じたデータの供給を行なうことができるようにさ
れている。そして、クライアントの読み出し対象のデー
タは、複数のブロックデータに分割されてサーバの内の
データ用サーバとみなした複数のものに分散して格納さ
れていると共に、複数のブロックデータに対応するエラ
ー訂正データが複数のサーバの内のデータ用サーバ以外
でエラー訂正用サーバとみなしたものに格納されてい
る。
【0009】ここで、クライアントがサーバからデータ
を読み出す際には、該当するデータ用サーバの全てから
ブロックデータを読み出せた場合には、その読み出した
ブロックデータを結合して元のデータを得るようにし、
いずれかのデータ用サーバから正常なデータ読み出しが
できなかった場合には、残りのデータ用サーバから正常
に読み出したデータとエラー訂正用サーバから読み出し
たエラー訂正データに基づきエラー訂正手段において正
常に読み出せなかったブロックデータを復元し、その復
元したデータを用いてデータ結合を行い元のデータを得
る。
【0010】上述したように、クライアントが所望する
データの全てが1つのサーバに記憶されている場合に
は、そのデータが破損した場合を想定して複数のサーバ
に同じデータをバックアップ用にコピーして記憶させて
おくことが考えられる。また、クライアントの所望する
データを記憶しているサーバ自体が故障を起こすと、そ
のサーバに含まれる全てのデータが使えなくなるケース
もある。これに対応するには、サーバをまるごと二重化
し、一方のサーバが故障しても、バックアップサーバが
代わって稼働するようなシステムにする必要がある。し
かしデータのバックアップを別のサーバに作っておく方
法は、記憶装置の容量を2倍使用することになり、費用
がかさみ、サーバ全体を二重化した場合はなおさらであ
る。
【0011】それに対して、本発明のシステムでは、ク
ライアントの読み出し対象のデータが複数のブロックデ
ータに分割されて複数のデータ用サーバに分散して格納
されている。そのため、たとえ、複数のブロックデータ
の一つが破損していても、残りのブロックデータとエラ
ー訂正用サーバから読み出したエラー訂正データに基づ
き正常に読み出せなかったブロックデータを復元し、所
望のデータを得ることができる。そして、このようなデ
ータの耐故障性を向上することができながら、元のデー
タ以外にはエラー訂正データだけしか必要ない。つま
り、従来のように読み出し対象の全データと同じバック
アップを別のサーバに作っておく方法では、記憶装置の
容量を2倍使うこととなっていたが、本システムの場合
には、読み出し対象の全データに比べて相当データサイ
ズが小さなエラー訂正データだけを準備すればよい。
【0012】また、このようなネットワークを構成する
クライアントサーバシステムでは、データ自体が破壊さ
れていない場合であっても、あるサーバにアクセスが集
中した場合には、サーバの処理速度がネックになってシ
ステム全体の処理スピードが上がらないという問題が元
々内在している。その点でも、クライアントがあるデー
タを読み出そうとした場合、サーバ単位で見れば、その
データが複数に分割されたブロックデータ分しか記憶し
ていないので、当然ながらクライアントからの読み出し
要求に応じたデータ供給に要する処理時間は短縮され
る。また、一つのサーバへのアクセスが集中することも
防止できる。したがって、システム全体の処理スピード
の向上にも寄与することができる。
【0013】上述したように、クライアントの読み出し
対象のデータは、複数のブロックデータに分割されてサ
ーバの内のデータ用サーバに分散して格納されると共
に、複数のブロックデータに対応するエラー訂正データ
がエラー訂正用サーバに格納されている。このデータ格
納は、例えばサーバ側の主導で実行してもよいが、クラ
イアント主導で行なうこともできる。つまり、クライア
ントにデータ格納を行なう機能を持たせるのである。
【0014】この場合、例えば請求項2に示すように、
複数のクライアントの内の少なくとも一つをデータ格納
用クライアントとし、少なくとも一つをデータ読出用ク
ライアントとする構成も考えられるし、あるいは、請求
項3に示すように、クライアントがデータ格納機能及び
データ読出機能を併有するようにしてもよい。
【0015】請求項2に示す構成では、データ格納用ク
ライアントがデータ分割手段とエラー訂正データ生成手
段とを有している。そして、サーバへデータを格納する
際、格納対象データを複数のブロックデータに分割する
と共に、当該複数のブロックデータに対応するエラー訂
正データを生成し、分割されたブロックデータをデータ
用サーバに分散して格納すると共に、生成したエラー訂
正データをエラー訂正用サーバに格納する。また、デー
タ読出用クライアントはデータ結合手段とエラー訂正手
段とを有している。そして、サーバからデータを読み出
す際、該当するデータ用サーバの全てからブロックデー
タを読み出せた場合には、その読み出したブロックデー
タを結合することで元のデータを得るようにし、いずれ
かのデータ用サーバから正常なデータ読み出しができな
かった場合には、残りのデータ用サーバから正常に読み
出したデータとエラー訂正用サーバから読み出したエラ
ー訂正データに基づき正常に読み出せなかったブロック
データを復元し、その復元データを用いてデータ結合す
ることで元のデータを得る。
【0016】一方、請求項3に示す場合には、クライア
ントが、データ分割手段と、エラー訂正データ生成手段
と、データ結合手段と、エラー訂正手段とを有してい
る。そして、サーバへデータを格納する際には、格納対
象データを複数のブロックデータに分割すると共に、複
数のブロックデータに対応するエラー訂正データを生成
し、分割されたブロックデータをデータ用サーバに分散
して格納すると共に、生成したエラー訂正データをエラ
ー訂正用サーバに格納する。また、サーバからデータを
読み出す際には、該当するデータ用サーバの全てからブ
ロックデータを読み出せた場合には、その読み出したブ
ロックデータを結合することで元のデータを得るように
し、いずれかのデータ用サーバから正常なデータ読み出
しができなかった場合には、残りのデータ用サーバから
正常に読み出したデータとエラー訂正用サーバから読み
出したエラー訂正データに基づき正常に読み出せなかっ
たブロックデータを復元し、その復元データを用いてデ
ータ結合することで元のデータを得る。
【0017】また、このようにクライアントがデータ格
納機能及びデータ読出機能を併有するクライアントサー
バシステムにおいては、請求項4に示すように、複数の
データ用サーバ及びエラー訂正用サーバのいずれかにお
いて格納されていたデータが消失した場合には、クライ
アントが、残りのサーバからのデータを読み出し、エラ
ー訂正手段によって消失データを復元してデータ消失の
あったサーバに格納させるリビルド処理を実行するよう
構成してもよい。この場合には、サーバ上で失われたデ
ータを復元することができる。
【0018】また、上述したクライアントサーバシステ
ムにおいては、請求項5に示すように構成してもよい。
すなわち、クライアントは、サーバからデータを読み出
す際、該当するデータ用サーバ及びエラー訂正用サーバ
の内の、ネットワーク上での経路が近い所定数のサーバ
から読み出したデータあるいはエラー訂正データに基づ
き、データ結合手段によって元のデータを得るよう構成
するのである。
【0019】ネットワーク上での経路の長短によって、
クライアント側がデータ読み出し要求をしてからその要
求に応じたデータが供給されるまでの時間にも違いが出
る可能性がある。したがって、例えばデータ用サーバか
らのブロックデータが全て供給されるまで必ず待つ必要
はなく、データ用サーバからのブロックデータのいくつ
かとエラー訂正用サーバからのエラー訂正データが供給
されているのであればそれらを用いて元のデータを得れ
ばよい。
【0020】
【発明の実施の形態】以下、本発明を具体化した一実施
例を図面を参照して説明する。図1は、本発明の実施形
態であるクライアントサーバシステム(以下、C/Sシ
ステムと略記する。)の概略構成を示す機能ブロック図
である。
【0021】本実施形態のC/Sシステムは、クライア
ント100と、複数(ここでは5台)のサーバ101〜
105とを主要構成として有し、サーバ101〜105
とクライアント100はネットワーク200により接続
されている。このネットワーク200は、多対多の相互
接続が可能なネットワークであるが、LANであるかW
ANであるかは問わない。要はクライアント100から
複数のサーバ101〜105に対して、ファイルのアク
セスが可能であれば良く、一般的なイーサネット(Ethe
rnet)のLANでも良いし、ダイアルアップ接続のイン
ターネットでも良い。
【0022】複数のサーバ101〜105の内の一つあ
るいは複数にはエラー訂正用データを格納する。エラー
訂正符号には、パリティ、ハミング符号、BCH符号、
リードソロモン符号といった技術が知られているが、こ
の実施形態では、エラー訂正符号にはパリティを使用
し、エラー訂正用サーバは一つだけ用意する。以下で
は、エラー訂正用サーバはパリティサーバ105と呼ぶ
ことにする。このシステムでは第1〜第4のサーバ10
1〜104に格納されているデータを元にしてパリティ
データを計算し、パリティサーバ105に格納する。
【0023】クライアント100は、第1〜第4のサー
バ101〜104にデータを分散させるためのデータ分
割手段111と、エラー訂正用データを生成するための
エラー訂正符号生成手段112と、第1〜第4のサーバ
101〜104からのデータを結合して元のデータを得
るデータ結合手段113と、第1〜第4のサーバ101
〜104からのデータとパリティサーバ105からのパ
リティデータに基づいて、欠落したデータを復元するた
めのエラー訂正手段114とを備えている。
【0024】図1で示したクライアント100の構成
は、主にその機能的な面から捉えたものであったが、図
2を参照してクライアント100の内部構成を説明す
る。図2はクライアント100の内部ブロック図であ
り、図1では省略されているが、ネットワークI/F1
15でデータを送る際、分割したデータを順に送るため
分割データを一旦保持するためのバッファを明示してい
る。なお、このバッファは複数のサーバからのデータを
順に集めて一気にデータ結合回路123及びエラー訂正
回路124に処理させるためにも必要である。このバッ
ファはクライアント100の構成として必須要件ではな
いが、現実的には大抵の場合は必要になる。
【0025】図2において、制御手段としてのCPU1
16はクライアント100全体を制御するものである。
記憶手段としてのメモリ117とHDD118にはクラ
イアント100が処理するためのデータが入っている。
HDD118上のデータは電源を切っても消えないよう
になっている。メモリ117上のデータは電源を切ると
消えてしまうが、高速にアクセスできる。データは、利
用者のキーボード119の操作によって入力されたり、
外部のサーバから取ってきたりして、メモリ117やH
DD118上にやってくる。これにCPU116が色々
な処理を施した後、HDD118に格納したり、CRT
120に表示したり、外部の機器にデータを渡したりす
る。これがクライアント100の実行する動作である。
【0026】本実施形態では、クライアント100が外
部のサーバ101〜105にアクセスする際には、デー
タ分割回路121、パリティジェネレータ122、デー
タ結合回路123、エラー訂正回路124を通してアク
セスする。データを外部のサーバ101〜105に格納
する動作を「ライト」、外部のサーバ101〜105か
らデータを読み出す動作を「リード」と呼ぶことにす
る。以下では、クライアント100のライトモード、リ
ードモードに分けて各部の動作を説明する。なお、本実
施形態では、このライト、リード以外に、「リビルド」
という動作モードがある。これは、外部のサーバ101
〜105に故障が起きてデータが紛失した場合に、この
データを復元する動作を言う。これも、以下でリビルド
モードの動作ということで説明する。 (1)ライトモード CPU116は、まずサーバに格納したいデータをデー
タ分割回路121に転送する。このデータは、所定のデ
ータ、あるいはそのデータに所定のデータ処理をした結
果のデータであり、通常メモリ117あるいはHDD1
18上にある。したがって、それを読み出してデータ分
割回路121に転送する。
【0027】データ分割回路121は、元データをいく
つかのブロックに分割する処理を行なうものであり、本
実施形態では4つに分割される。分割の仕方は、自由度
があるが、各ブロックのサイズは均等になったほうが都
合が良い。差があるとパリティの計算が面倒になるから
である。例えば、1ビットおきに4つに分散させると
か、1バイトおきに4つに分散させるとか、256バイ
ト毎に分割するとか、色々考えられる。
【0028】そして、各々のブロックデータは、別々の
4つの出力バッファ、すなわち第1〜第4の出力バッフ
ァ131〜134に格納される。データ分割回路121
と第1〜第4の出力バッファ131〜134の間にはそ
れぞれセレクタ141〜144が介装されているが、こ
れは後述のリビルドモードで使うためのもので、通常
は、データ分割回路121の出力が第1〜第4の出力バ
ッファ131〜134に入るようにスイッチ選択されて
いる。
【0029】また、データ分割回路121の出力はパリ
ティジェネレータ122にも入力される。パリティジェ
ネレータ122は、4つのブロックデータからパリティ
を計算するものである。例えば、1バイトおきに4つに
分割した場合は、4つのブロックから1バイトずつ取っ
て、その4バイトの排他的論理和(Exclusive-OR)演算
をすることで、偶数パリティが求められる。このパリテ
ィジェネレータ122から出力されたパリティデータ
は、上述した第1〜第4の出力バッファ131〜134
とは別のパリティ用出力バッファ135に格納される。
なお、パリティジェネレータ122とパリティ用出力バ
ッファ135との間にセレクタ145が介装されている
が、上述したようにリビルドモードで使うためのもの
で、通常は、パリティジェネレータ122の出力がパリ
ティ用出力バッファ135に入るようにスイッチ選択さ
れている。
【0030】上述した第1〜第4の出力バッファ131
〜134及びパリティ用出力バッファ135(以下、こ
れらの区別をしない場合には単に「出力バッファ131
〜135」と示すことにする。)はネットワークI/F
115に接続されている。ネットワークI/F115
は、外部のサーバ等の通信機器に対して通信を行うため
のもので、送信時には、出力バッファ131〜135の
データを送信する。どの出力バッファ131〜135の
データを出力するかは、CPU116が制御する。各々
の出力バッファ131〜135毎に送信先のサーバを違
えてデータを送信する。具体的に説明すると、第1〜第
4の出力バッファ131〜134からのブロックデータ
は第1〜第4のサーバ101〜104(図1参照)に送
信され、パリティ用出力バッファ135からのパリティ
データはパリティサーバ105に送信される。
【0031】次に、このライトモードの場合のクライア
ント100が実行する処理の概略を図3のフローチャー
トを参照してさらに説明する。最初のステップS110
では、サーバに格納したいデータをデータ分割回路12
1に転送する。続くS120では、転送されたデータを
データ分割回路121にて4つのブロックデータに分割
し、S130では、その分割されたブロックデータを基
にパリティジェネレータ122にてパリティデータを生
成する。そしてS140では、S120の処理で得た4
つのブロックデータとS130の処理で得たパリティデ
ータをそれぞれ該当するサーバ、つまりブロックデータ
は第1〜第4のサーバ101〜104に送信し、パリテ
ィデータはパリティサーバ105に送信する。 (2)リードモード ネットワークI/F115は、外部のサーバ101〜1
05からのデータを受信することもできる。上述したラ
イトモードで第1〜第4のサーバ101〜104に分散
して格納したブロックデータを、第1〜第4のサーバ1
01〜104それぞれから受信する。受信したブロック
データは第1〜第4の入力バッファ151〜154に格
納される。ここでは、第1のサーバ101から受信した
ブロックデータは第1の入力バッファ151に格納し、
第2のサーバ102から受信したブロックデータは第2
の入力バッファ151に格納する、というようにそれぞ
れに対応する入力バッファ151〜154に格納するこ
ととなる。また、パリティサーバ105から送信されて
きたパリティデータもパリティ用入力バッファ155に
格納される。
【0032】そして、エラー訂正回路124は、4つの
データ用バッファである第1〜第4の入力バッファ15
1〜154とパリティ用入力バッファ155からのデー
タを受けて、もしも4つのブロックデータの内にエラー
データがあったとしてもそれを復元することができる。
本実施形態ではエラー訂正符号にパリティを使っている
ので、第1〜第4のサーバ101〜104のうち1つま
でのデータ欠落に対応できる。CPU116は各サーバ
101〜105との通信を管理しており、どのサーバ1
01〜105のデータが欠落しているかを知っている。
したがって、データ欠落があったサーバ101〜105
から送られてくるはずのデータ復元をエラー訂正回路1
24に指示する。但し、パリティデータについてはあえ
て復元する必要はないので、実際には、4つのブロック
データの内でデータ欠落があった場合に、そのブロック
データの復元をエラー訂正回路124に指示することと
なる。
【0033】エラー訂正回路124にて復元されたデー
タは、第1〜第4の入力バッファ151〜154からの
データと共にデータ結合回路123に入力される。ここ
でも、CPU116はどのブロックデータが欠落してい
るかを指示することで、適切なブロックデータが選ばれ
て結合される。例えば、先のデータ分割で1バイト単位
で分割した場合、第3のサーバ103からのブロックデ
ータがうまく受信できなかった場合は、第1のサーバ1
01、第2のサーバ102、第4のサーバ104からの
ブロックデータと、パリティサーバ105のエラー訂正
データをエラー訂正回路124に入れて第3のサーバ1
03からのブロックデータを復元するように指示する。
これによって、エラー訂正回路124は第3のサーバ1
03が保持していたはずのブロックデータを生成する。
【0034】したがって、このエラー訂正回路124か
らのブロックデータ(第3のサーバ103が保持してい
たはずのブロックデータ)と、第1,第2,第4の入力
バッファ151,152,154からのデータ(第1,
第2,第4のサーバ101,102,104が保持して
いたブロックデータ)とを、データ結合回路123で選
んで結合すると元のデータが得られる。
【0035】なお、ブロックデータの欠落があった場合
を想定して説明したが、データ欠落がない場合には、第
1〜第4の入力バッファ151〜154からの4つのデ
ータ(第1〜第4のサーバ101〜104が保持してい
たブロックデータ)がデータ結合回路123にて結合さ
れて元のデータが得られる。
【0036】次に、このリードモードの場合のクライア
ント100が実行する処理の概略を図4のフローチャー
トを参照してさらに説明する。最初のステップS210
では、第1〜第4のサーバ101〜104及びパリティ
サーバ105に対して、該当するデータの読み出し要求
を送信する。これは、例えば利用者がキーボード119
を操作して所定のデータ読み出しの指示を入力した場合
には、その指示されたデータに対応するブロックデータ
及びパリティデータをそれぞれ読み出す要求を送信する
こととなる。
【0037】続くS220では、S210での要求に応
じて各サーバ101〜105から送信されてきた4つの
ブロックデータとパリティデータを受信し、続くS23
0では、4つのブロックデータの内に欠落しているもの
があるかどうかを判断する。もしも、ブロックデータが
欠落していない場合には(S230:NO)、S240
へ移行し、受信した4つのブロックデータをデータ結合
回路123にて結合し元のデータを得る。一方、ブロッ
クデータが欠落していた場合には(S230:YE
S)、S250へ移行し、残りの3つのブロックデータ
とパリティデータに基づきエラー訂正回路124にて欠
落していたブロックデータを復元する。その後、S24
0へ移行して、S250にて復元したブロックデータを
含めた4つのブロックデータを結合して元のデータを得
る。
【0038】このようにして、第1〜第4のサーバ10
1〜104に分散して格納していた元のデータを復元す
ることができる。以上のように、データをブロックデー
タに分散して格納し、パリティデータも格納しておく
と、第1〜第4のサーバ101〜104の一つが故障し
てブロックデータが読み出せなくなっても、パリティサ
ーバ105からのパリティデータを読み、これと残りの
3つのブロックデータをつきあわせることで、失われた
データが復元可能となる。
【0039】また、複数のサーバに分散してデータを格
納することで、サーバを並列動作させることになり、デ
ータの入出力速度を高速化できる。つまり、本実施形態
のように、ネットワークを構成するC/Sシステムで
は、データ自体あるいはサーバ自体が破壊されていない
場合であっても、あるサーバにアクセスが集中した場合
には、サーバの処理速度がネックになってシステム全体
の処理スピードが上がらないという問題が元々内在して
いる。その点でも、クライアント100があるデータを
読み出そうとした場合、サーバ101〜105単位で見
れば、そのデータが複数に分割されたブロックデータ分
あるいはパリティデータ分しか記憶していないので、当
然ながらクライアント100からの読み出し要求に応じ
たデータ供給に要する処理時間は短縮される。また、一
つのサーバへのアクセスが集中することも防止できる。
したがって、システム全体の処理スピードの向上にも寄
与することができる。但し、このためにはサーバの内部
データ速度に比べて、ネットワークの通信速度が速くな
ければ効果が出ない。ネットワークがボトルネックにな
っては並列化の効果がないからである。 (3)リビルドモード サーバ101〜105が故障し、その故障が直ったとき
サーバ内部のHDDなどが交換されたりして以前のデー
タが消えてしまうことがある。このときに、残りの4つ
のサーバのデータから、その失われたデータを復元し、
この復元したデータを復旧したサーバに格納するという
「リビルド機能」も備えている。このときはリビルド用
バス250を使用する。
【0040】例えば、第2のサーバ102が故障したと
すると、故障していない4つのサーバ(第1,第3,第
4のサーバ101,103,104とパリティサーバ1
05)からのデータが第1,第3,第4の入力バッファ
151,153,154及びパリティ用入力バッファ1
55に読み込まれ、これらのデータをエラー訂正回路1
24で処理すると故障した第2のサーバ103に格納さ
れていたデータを復元することができる。したがって、
これをリビルド用バス250を通して第2の出力バッフ
ァ132に格納し、ネットワークI/F115を介して
第2のサーバ102に書き込むことによって、データ復
元ができる。故障していない各サーバ(第1,第3,第
4のサーバ101,103,104とパリティサーバ1
05)に格納されている全てのブロックに対してこのリ
ビルド処理を行うと、故障が起きる前の全てのデータを
第2のサーバ102上に復元できる。
【0041】次に、このリビルドモードの場合のクライ
アント100が実行する処理の概略を図5のフローチャ
ートを参照してさらに説明する。最初のステップS31
0では、リビルド対象のサーバ及びデータ範囲を取得す
る。例えば第2のサーバ102が故障したとすると、リ
ビルド対象のサーバは第2のサーバ102となる。ま
た、リビルド対象のデータ範囲は、第2のサーバ102
が格納していた全てのデータであることもあるし一部の
データであることも考えられる。例えば第2のサーバ1
02が5台のHDDを備えており、その内の1台が故障
して交換した場合には、その1台に格納されていたデー
タだけがリビルド対象となる。
【0042】続くS320では、残りのサーバ、つま
り、第2のサーバ102が故障した場合には故障してい
ない4つのサーバ(第1,第3,第4のサーバ101,
103,104とパリティサーバ105)に対して、該
当範囲のデータの読み出し要求を送信する。
【0043】そして、S330にて、S320での要求
に応じて4台の各サーバ101,103,104,10
5から送信されてきた3つのブロックデータとパリティ
データを受信する。続くS340では、それらのデータ
(3つのブロックデータとパリティデータ)に基づき、
エラー訂正回路124にてリビルド対象のデータ(この
場合は第2のサーバ102であるのでブロックデータ)
を復元する。そして、S350では、その復元したブロ
ックデータをリビルド対象のサーバである第2のサーバ
102に送信する。
【0044】以上、本発明はこのような実施形態に何等
限定されるものではなく、本発明の主旨を逸脱しない範
囲において種々なる形態で実施し得る。例えば、上述し
た図2に示すクライアント100の内部構成では、デー
タ分割回路121とデータ結合回路123、あるいはパ
リティジェネレータ122とエラー訂正回路124を、
それぞれ別々の構成のように説明したが、実際にはこれ
らのペアは同じ機能ブロックにした方がバッファあるい
はバスの結線が減って都合がよい。そのように同じ機能
ブロックにした構成を図6に示す。
【0045】図6に示す分割/結合回路211は、図2
に示すデータ分割回路121とデータ結合回路123の
両方の機能を併せ持つものであり、パリティジェネレー
タ&エラー訂正回路212は、図2に示すパリティジェ
ネレータ122とエラー訂正回路124の両方の機能を
併せ持つものである。
【0046】また、図6における第1の入出力バッファ
231は、図2における第1の出力バッファ131と第
1の入力バッファ151の両方の機能を併せ持ったバッ
ファである。同様に、図6における第2,第3,第4の
入出力バッファ232,233,234は、それぞれ図
2における第2の出力バッファ132と第2の入力バッ
ファ152、第3の出力バッファ133と第3の入力バ
ッファ153、第4の出力バッファ134と第4の入力
バッファ154の両方の機能を併せ持ったバッファであ
る。さらに、図6におけるパリティ用入出力バッファ2
35は、図2におけるパリティ用出力バッファ135と
パリティ用入力バッファ155の両方の機能を併せ持っ
たバッファである。
【0047】そして、第1〜第4の入出力バッファ23
1〜234からのデータは、セレクタ241〜244を
介して分割/結合回路211やパリティジェネレータ&
エラー訂正回路212に入力可能とされている。逆に、
分割/結合回路211やパリティジェネレータ&エラー
訂正回路212からのデータは、セレクタ241〜24
4を介して第1〜第4の入出力バッファ231〜234
に入力可能とされている。さらに、パリティ用入出力バ
ッファ235とパリティジェネレータ&エラー訂正回路
212との間でも互いにデータの入出力が可能とされて
おり、パリティジェネレータ&エラー訂正回路212か
らのデータは分割/結合回路211にも出力可能であ
る。
【0048】この構成の場合におけるライトモード、リ
ードモード、リビルドモードは上述した内容と同様であ
るので、ここでは省略する。また、図2,図6で示した
構成は、図1に示すデータ分割手段111、エラー訂正
符号生成手段112,データ結合手段113、エラー訂
正手段114をそれぞれハードウェアで実現した例であ
ったが、CPU116とメモリ117だけを用意して、
後はソフトウェアだけで実現することも可能である。ハ
ードウェアで実現する場合に比べると、一般に処理速度
が遅くなるが、速度を要求されないケースではこの方法
も有効と考えられる。また、上述の実施形態では、図4
のリードモード処理において、ブロックデータに欠落が
あった場合に限って(S230:YES)、S240で
の欠落データの復元を行っているが、例えば、3つのブ
ロックデータとパリティデータは受信できたが、最後の
1つのブロックデータをまだ受信できていない場合に
は、その最後のブロックデータの受信を待たずに処理を
進めることも可能である。つまり、本実施形態の場合に
は、4つのブロックデータと1つのパリティデータの5
つのデータの内の4つが揃えば、元のデータを得ること
はできるからである。その意味では、ブロックデータを
全て取得することにこだわらず、例えばネットワーク上
での経路が近い4台のサーバから読み出したブロックデ
ータあるいはパリティデータに基づき元のデータを得る
ようにしてもよい。ネットワーク上での経路の長短によ
って、クライアント側がデータ読み出し要求をしてから
その要求に応じたデータが供給されるまでの時間にも違
いが出る可能性がある。したがって、ブロックデータか
パリティデータかにこだわらず早期に取得したデータに
基づいて元のデータを復元すれば、元のデータを取得す
るまでの時間短縮が実現する。
【図面の簡単な説明】
【図1】 実施形態のクライアントサーバシステムの概
略構成を示す機能ブロック図である。
【図2】 実施形態のクライアントの内部構成を示すブ
ロック図である。
【図3】 実施形態のクライアントが実行するライトモ
ード処理を示すフローチャートである。
【図4】 実施形態のクライアントが実行するリードモ
ード処理を示すフローチャートである。
【図5】 実施形態のクライアントが実行するリビルド
モード処理を示すフローチャートである。
【図6】 別実施形態のクライアントの内部構成を示す
ブロック図である。
【符号の説明】
100…クライアント 101…第1の
サーバ 102…第2のサーバ 103…第3の
サーバ 104…第4のサーバ 105…パリテ
ィサーバ 111…データ分割手段 112…エラー
訂正符号生成手段 113…データ結合手段 114…エラー
訂正手段 115…ネットワークI/F 117…メモリ 118…HDD 119…キーボ
ード 121…データ分割回路 122…パリテ
ィジェネレータ 123…データ結合回路 124…エラー
訂正回路 131…第1の出力バッファ 132…第2の
出力バッファ 133…第3の出力バッファ 134…第4の
出力バッファ 135…パリティ用出力バッファ 141〜145
…セレクタ 151…第1の入力バッファ 152…第2の
入力バッファ 153…第3の入力バッファ 154…第4の
入力バッファ 155…パリティ用入力バッファ 200…ネット
ワーク 211…分割/結合回路 212…パリティジェネレータ&エラー訂正回路 231…第1の入出力バッファ 232…第2の
入出力バッファ 233…第3の入出力バッファ 234…第4の
入出力バッファ 235…パリティ用入出力バッファ 241〜244
…セレクタ 250…リビルド用バス

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 クライアントと、当該クライアントから
    のデータ読み出し要求に応じたデータの供給を行なう複
    数のサーバとが所定の伝送路を介して接続されてネット
    ワークを構成するクライアントサーバシステムであっ
    て、 前記クライアントの読み出し対象のデータは、複数のブ
    ロックデータに分割されて前記サーバの内のデータ用サ
    ーバとみなした複数のものに分散して格納されていると
    共に、前記複数のブロックデータに対応するエラー訂正
    データが前記複数のサーバの内の前記データ用サーバ以
    外でエラー訂正用サーバとみなしたものに格納されてお
    り、 前記クライアントは、 データ結合手段とエラー訂正手段とを有し、 前記サーバからデータを読み出す際、該当する前記デー
    タ用サーバの全てからブロックデータを読み出せた場合
    には、その読み出したブロックデータを前記データ結合
    手段によって結合することで元のデータを得るように
    し、前記いずれかのデータ用サーバから正常なデータ読
    み出しができなかった場合には、残りのデータ用サーバ
    から正常に読み出したデータと前記エラー訂正用サーバ
    から読み出したエラー訂正データに基づき前記エラー訂
    正手段において前記正常に読み出せなかったブロックデ
    ータを復元し、前記データ結合手段によって元のデータ
    を得るよう構成されていることを特徴とするクライアン
    トサーバシステム。
  2. 【請求項2】 複数のクライアントと、当該クライアン
    トから転送されたデータの格納及びクライアントからの
    データ読み出し要求に応じたデータの供給を行なう複数
    のサーバとが所定の伝送路を介して接続されてネットワ
    ークを構成するクライアントサーバシステムであって、 前記複数のクライアントの内の少なくとも一つは、デー
    タ分割手段とエラー訂正データ生成手段とを有するデー
    タ格納用クライアントであり、 前記サーバへデータを格納する際、格納対象データを前
    記データ分割手段によって複数のブロックデータに分割
    すると共に、当該複数のブロックデータに対応するエラ
    ー訂正データを前記エラー訂正データ生成手段によって
    生成し、前記分割されたブロックデータを前記サーバの
    内のデータ用サーバとみなした複数のものに分散して格
    納すると共に、前記生成したエラー訂正データを前記複
    数のサーバの内の前記データ用サーバ以外でエラー訂正
    用サーバとみなしたものに格納するよう構成され、 前記複数のクライアントの内の少なくとも一つは、デー
    タ結合手段とエラー訂正手段とを有するデータ読出用ク
    ライアントであり、 前記サーバからデータを読み出す際、該当する前記デー
    タ用サーバの全てからブロックデータを読み出せた場合
    には、その読み出したブロックデータを前記データ結合
    手段によって結合することで元のデータを得るように
    し、前記いずれかのデータ用サーバから正常なデータ読
    み出しができなかった場合には、残りのデータ用サーバ
    から正常に読み出したデータと前記エラー訂正用サーバ
    から読み出したエラー訂正データに基づき前記エラー訂
    正手段において前記正常に読み出せなかったブロックデ
    ータを復元し、前記データ結合手段によって元のデータ
    を得るよう構成されていることを特徴とするクライアン
    トサーバシステム。
  3. 【請求項3】 クライアントと、当該クライアントから
    転送されたデータの格納及びクライアントからのデータ
    読み出し要求に応じたデータの供給を行なう複数のサー
    バとが所定の伝送路を介して接続されてネットワークを
    構成するクライアントサーバシステムであって、 前記クライアントは、 データ分割手段と、エラー訂正データ生成手段と、デー
    タ結合手段と、エラー訂正手段とを有しており、 前記サーバへデータを格納する際、格納対象データを前
    記データ分割手段によって複数のブロックデータに分割
    すると共に、当該複数のブロックデータに対応するエラ
    ー訂正データを前記エラー訂正データ生成手段によって
    生成し、前記分割されたブロックデータを前記サーバの
    内のデータ用サーバとみなした複数のものに分散して格
    納すると共に、前記生成したエラー訂正データを前記複
    数のサーバの内の前記データ用サーバ以外でエラー訂正
    用サーバとみなしたものに格納するよう構成され、 一方、前記サーバからデータを読み出す際、該当する前
    記データ用サーバの全てからブロックデータを読み出せ
    た場合には、その読み出したブロックデータを前記デー
    タ結合手段によって結合することで元のデータを得るよ
    うにし、前記いずれかのデータ用サーバから正常なデー
    タ読み出しができなかった場合には、残りのデータ用サ
    ーバから正常に読み出したデータと前記エラー訂正用サ
    ーバから読み出したエラー訂正データに基づき前記エラ
    ー訂正手段において前記正常に読み出せなかったブロッ
    クデータを復元し、前記データ結合手段によって元のデ
    ータを得るよう構成されていることを特徴とするクライ
    アントサーバシステム。
  4. 【請求項4】 請求項3に記載のクライアントサーバシ
    ステムにおいて、 前記複数のデータ用サーバ及びエラー訂正用サーバのい
    ずれかにおいて格納されていたデータが消失した場合に
    は、前記クライアントが、残りのサーバからのデータを
    読み出し、前記エラー訂正手段によって前記消失データ
    を復元して前記データ消失のあったサーバに格納させる
    リビルド処理を実行するよう構成されていることを特徴
    とするクライアントサーバシステム。
  5. 【請求項5】 請求項1〜4のいずれかに記載のクライ
    アントサーバシステムにおいて、 前記クライアントは、前記サーバからデータを読み出す
    際、該当する前記データ用サーバ及び前記エラー訂正用
    サーバの内の、ネットワーク上での経路が近い所定数の
    サーバから読み出したデータあるいはエラー訂正データ
    に基づき、前記データ結合手段によって元のデータを得
    るよう構成されていることを特徴とするクライアントサ
    ーバシステム。
JP9177345A 1997-07-02 1997-07-02 クライアントサーバシステム Pending JPH1125022A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9177345A JPH1125022A (ja) 1997-07-02 1997-07-02 クライアントサーバシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9177345A JPH1125022A (ja) 1997-07-02 1997-07-02 クライアントサーバシステム

Publications (1)

Publication Number Publication Date
JPH1125022A true JPH1125022A (ja) 1999-01-29

Family

ID=16029352

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9177345A Pending JPH1125022A (ja) 1997-07-02 1997-07-02 クライアントサーバシステム

Country Status (1)

Country Link
JP (1) JPH1125022A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004088520A1 (ja) * 2003-03-31 2004-10-14 Minoru Ikeda セキュアー・ネットワーク・データベース・システムおよび情報交換方法
US7386757B2 (en) 2003-10-30 2008-06-10 Certon Systems Gmbh Method and apparatus for enabling high-reliability storage of distributed data on a plurality of independent storage devices
JP2016525256A (ja) * 2013-07-24 2016-08-22 アルカテル−ルーセント 冗長データアクセスを提供するための方法および装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004088520A1 (ja) * 2003-03-31 2004-10-14 Minoru Ikeda セキュアー・ネットワーク・データベース・システムおよび情報交換方法
US7386757B2 (en) 2003-10-30 2008-06-10 Certon Systems Gmbh Method and apparatus for enabling high-reliability storage of distributed data on a plurality of independent storage devices
JP2016525256A (ja) * 2013-07-24 2016-08-22 アルカテル−ルーセント 冗長データアクセスを提供するための方法および装置

Similar Documents

Publication Publication Date Title
US5166674A (en) Multiprocessing packet switching connection system having provision for error correction and recovery
US5630007A (en) Client-server system with parity storage
US7743275B1 (en) Fault tolerant distributed storage method and controller using (N,K) algorithms
US5845061A (en) Redundant client server system
US20200250032A1 (en) Flexible reliability coding for storage on a network
US6950966B2 (en) Data transmission from raid services
US8522073B2 (en) Distributed storage of recoverable data
US4907232A (en) Fault-tolerant parallel processing system
US20050022046A1 (en) Method and system for enabling recovery of data stored in a computer network; a method and a system for recovering data stored in a computer network
CN113326006B (zh) 一种基于纠删码的分布式块存储系统
US20080133967A1 (en) Distributed object sharing system and method thereof
JPH05100879A (ja) 制御情報のインテグリテイを維持するための装置及び方法
WO2021139571A1 (zh) 存储系统中的数据存储方法、数据读取方法、装置及系统
JPH1125022A (ja) クライアントサーバシステム
JP6369226B2 (ja) 情報処理装置、情報処理システム、情報処理システムの制御方法および情報処理装置の制御プログラム
JP3663151B2 (ja) データ転送方法、データ転送システム、および受信装置
US20230305713A1 (en) Client and network based erasure code recovery
US20180018222A1 (en) Router-based routing selection
JP4478000B2 (ja) データ仲介方法およびデータ仲介装置
CN116804952A (zh) 基于客户端和网络的擦除码恢复
JP7140424B1 (ja) コンピュータ装置、情報処理方法、プログラム
JPH09258913A (ja) 記憶装置アレイシステム
CN117472642A (zh) 一种基于编码的卫星网络数据的高可靠存储方法
JP2004348278A (ja) 冗長記憶システム、方法、コンテンツ格納装置、および冗長情報格納装置
JPH10143331A (ja) 記憶装置アレイシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040420

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070410

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070611

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080122