JP4284837B2 - 負荷分散サーバシステム - Google Patents
負荷分散サーバシステム Download PDFInfo
- Publication number
- JP4284837B2 JP4284837B2 JP2000200367A JP2000200367A JP4284837B2 JP 4284837 B2 JP4284837 B2 JP 4284837B2 JP 2000200367 A JP2000200367 A JP 2000200367A JP 2000200367 A JP2000200367 A JP 2000200367A JP 4284837 B2 JP4284837 B2 JP 4284837B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cluster
- client
- cache memory
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
【発明の属する技術分野】
本発明は、データの読み出し/書き込み及び各種データ処理を複数のクラスタで分散して処理を行う負荷分散サーバシステムに関するものである。
【0002】
【従来の技術】
従来より、複数のクラスタにより構成されたクラスタ型負荷分散サーバシステムが知られている。
【0003】
負荷分散とは、複数のクラスタを用意し、複数のクライアントからの各々の要求を、なんらかの手法により複数のクラスタに振り分けて処理させるものである。複数のクライアントからの要求を1つのクラスタが集中して一括処理をすると、そのクラスタの負荷が高くなり、レスポンスも悪くなる。負荷分散は、このような問題を解決するシステムで、負荷分散をすることにより1台あたりのクラスタの負荷を減少し、レスポンスを向上させることができる。
【0004】
クラスタ型負荷分散サーバシステムは、複数のクラスタと、各クラスタからアクセスが可能な1以上のストレージデバイスとから構成される。このクラスタ型負荷分散サーバシステムでは、各クラスタがネットワーク網を介してクライアントと接続され、それぞれ独立のネットワークサーバとして機能する。しかしながら、クライアントからは各クラスタは個別独立には見えず、複数のクラスタが1つのサーバのようにクライアントに使用される。
【0005】
このクラスタ型負荷分散サーバシステムの動作について説明をする。
【0006】
データの書き込み時の動作は、以下のようになる。
【0007】
まず、クライアントからサーバ側にデータの書き込み要求が発せられる。サーバ側では、書き込み要求を受けると、負荷分散により処理担当となるクラスタが決定される。処理担当となったクラスタは、そのクライアントからデータを受信し、自己の内部キャッシュメモリに記憶する。続いて、このクラスタは、内部キャッシュメモリに記憶したデータを、ストレージに保存する。
【0008】
また、データの読み出し時の動作は、以下のようになる。
【0009】
まず、クライアントからサーバ側にデータの読み出し要求が発せられる。サーバ側では、読み出し要求を受けると、負荷分散により処理担当となるクラスタが決定される。処理担当となったクラスタは、ストレージからデータを読み出し、クライアントに送信をする。
【0010】
【発明が解決しようとする課題】
ところで、このようなクラスタ型負荷分散サーバシステムでは、あるクライアントからデータの書き込み要求があったのち、すぐに、他のクライアントから当該データの読み出し要求があったときなどに、データの一貫性を確保することができない現象が生じる場合がある。
【0011】
例えば、あるクライアントAからデータ0の更新要求が発せられたとする(更新後はデータ0+)。そして、負荷分散によりクラスタXがその要求を処理することとなり、そのクラスタXがデータ0+を自己の内部キャッシュメモリに記憶した。このとき、他のクライアントBからデータ0の読み出し要求があった。ここで、クラスタXがキャッシュメモリの内部のデータ0+をストレージに保存することとなるが、データ0+がストレージに保存される前に他のクライアントBの読み出し要求に対する処理担当となったクラスタYが、更新前の古いデータ0をストレージから読み出してしまった。
【0012】
このように、従来のクラスタ型負荷分散サーバシステムでは、クライアントBからのデータ0に対する読み出し要求が発せられる前に、クライアントAからのデータ0の更新要求が発生られているため、本来、更新されたデータ0+をクライアントBに対して送信するべきであるにもかかわらず、更新前のデータ0をクライアントBに対して送信してしまい、データの一貫性を確保することができなかった。
【0013】
このような問題を解決する方法として、クライアントからの更新要求に対しては特定の1つのクラスタが一括してその要求を受け付け、受け付けた更新データを他のクラスタに転送し、転送を受けたクラスタがストレージに書き込む処理を行うという方法がある。この方法では、更新データがストレージに書き込まれるまでの間に発せられた当該更新データの読み出し要求に対しては、その特定の1のクラスタが処理担当となることで、データの一貫性を確保している。
【0014】
しかしながら、このような方法では、更新要求の受付をするクラスタ、及び、更新データの書き込みまでに発せられる読み出し要求の処理担当となるクラスタは、唯一となってしまう。そのため、もしこのクラスタが故障した場合、更新要求を処理することができなくなってしまい、システム全体が機能しなくなってしまう。また、多数のクライアントから更新要求等があった場合、1つのクラスタでのみしか更新処理等が行われないので、サーバの性能のボトルネックとなり、負荷分散している利点が損なわれてしまう。
【0015】
また、このような問題を解決する他の方法として、特開平8−83216号公報において提案されている方法がある。本公報において提案されている方法は、各クラスタの中央にキャッシング情報を一時的に統合して記憶する制御装置を設けることによって、キャッシュメモリを結合してデータの一貫性を保持する方法である。
【0016】
しかしながら、この方法も、キャッシング情報を統合して記憶する制御装置が故障した場合、更新要求を処理することができなくなってしまい、システム全体が機能しなくなってしまう。また、多数のクライアントからの更新要求があった場合には、この制御装置がボトルネックとなり、負荷分散している利点が損なわれてしまう。
【0017】
本発明は、このような実情を鑑みてなされたものであり、あるクライアントからデータの書き込みがあったのち、すぐに、他のクライアントから当該データの読み出しがあった場合などの複数クライアントからのアクセスに対して、データの一貫性を確保することができる負荷分散サーバシステムを提供することを目的とする。
【0018】
【課題を解決するための手段】
上述の課題を解決するために、本発明に係る負荷分散サーバシステムは、クライアントからの処理要求に対して、負荷分散により処理担当となるクラスタが決定される負荷分散サーバシステムにおいて、1以上のストレージデバイスからなるデータ格納手段と、各クライアントとネットワークを介して接続され、クライアントから送信されたデータを上記データ格納手段に書き込み、上記データ格納手段に格納されているデータを読み出しクライアントへ送信する複数のクラスタとを備え、各クラスタは、クライアントから送信されたデータを一時的に格納するキャッシュメモリを有し、クライアントから全クラスタに対してマルチキャスト送信された、当該書き込みデータを含む書き込み要求があった場合には、全クラスタが各キャッシュメモリに上記書き込みデータを記憶し、処理担当となる1のクラスタが当該データを上記データ格納手段に格納し、クライアントからデータの読み出し要求があった場合には、処理担当となる1のクラスタが当該データがキャッシュメモリに記憶されているかどうかを検索し、検索した結果キャッシュメモリに当該データが記憶されている場合には、このキャッシュメモリから当該データを読み出して、クライアントに当該データを送信することを特徴とする。
【0019】
本発明の負荷分散サーバシステムでは、各クラスタがキャッシュメモリを有している。
【0020】
クライアントは、データの書き込みを行う場合には、全てのクラスタに対して当該書き込みデータをマルチキャスト送信する。全てのクラスタは、処理担当になるか否かに関わらず、クライアントからデータの書き込み要求があった場合には、当該書き込みデータをそれぞれのキャッシュメモリに記憶する。そして、処理担当となる1のクラスタのみが、当該書き込みデータをデータ格納手段に格納する。
【0021】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【0022】
図1に本発明の実施の形態のクラスタ型負荷分散サーバシステム(以下、単にサーバシステムと称する。)のシステム構成図を示す。
【0023】
サーバシステム1は、複数のクラスタ11〜14と、複数のストレージ装置21〜25とから構成されている。
【0024】
各クラスタ11〜14は、ネットワーク網2を介して各クライアントと接続されている。また、各クラスタ11〜14は、全てストレージ装置21〜25に接続され、全てのストレージ装置21〜25に対してアクセスが可能となっている。なお、ここでは、クラスタの数を4つとしているが、その数に制限はない。また、ストレージ装置の数も5つとしているが、その数に制限はない。また、クラスタとストレージ装置の接続形態であるが、ループ接続しているものを図示しているが、その接続形態は、バス接続、スイッチ接続等、どのような形態であってもよい。
【0025】
図2に、各クラスタの構成図を示す。各クラスタは、同一のブロック構成となる。
【0026】
クラスタ11〜14は、この図2に示すように、プロセッサ31と、キャッシュメモリ32と、ネットワークインタフェース33と、ストレージインタフェース34とを備え、これらがバス35により接続されている。
【0027】
プロセッサ31は、クラスタ全体の動作制御をする回路である。キャッシュメモリ32は、クライアントから送信された書き込みデータ及びストレージ装置21〜25からの読み出しデータを一時的に記憶する記憶部である。ネットワークインタフェース33は、ネットワーク網2を介してクライアントとデータの送受信を行う回路である。ストレージインタフェース34は、各ストレージ装置21〜25とデータの送受信を行う回路である。
【0028】
以上のような構成のサーバシステム1では、各クライアントからの要求(データ書き込み要求/データ読み出し要求等)に対して、処理担当となるクラスタが負荷分散によって決定され、1つのクライアントからの要求は1つのクラスタが処理することとなる。クライアントは、特定のクライアントに対してのみ要求(データ書き込み要求/データ読み出し要求等)を送信するのではなく、複数のクラスタを1つのサーバシステムとみなして、全体に対して要求をマルチキャスト送信する。
【0029】
つぎに、各クラスタ11〜14の動作について図3に示すフローチャートを用いて説明をする。
【0030】
まず、クラスタ11〜14は、クライアントからの要求を待ち受ける(ステップS1)。
【0031】
そして、クライアントは、データの書き込み、データの読み出し等を行う場合、その要求が全クラスタ11〜14に対してマルチキャスト送信する。
【0032】
各クラスタ11〜14は、クライアントからの要求を受信すると、その要求の内容を判断する(ステップS2)。ここで、その要求がデータの書き込み要求(ストレージ装置21〜25にデータを保存する要求)であった場合には、ステップS3に進み、その要求がデータの読み出し要求(ストレージ装置21〜25に保存されているデータを読み出す要求)であった場合には、ステップS7に進む。
【0033】
その要求がデータの書き込み要求であった場合、受信したデータをキャッシュメモリ32に記憶させる。なお、このキャッシュメモリ32への記憶動作は、全てのクラスタ11〜14が同時並行的に行うこととなる。
【0034】
続いて、クラスタ11〜14は、負荷分散において、その要求に対する処理担当となっているかどうかを判断する(ステップS4)。処理担当となっていない場合には、ステップS1に戻り次の要求を待ち受ける。
【0035】
処理担当となっている場合には、クラスタ11〜14は、キャッシュメモリ32に記憶させた当該書き込みデータを、任意な時にストレージ装置21〜25に保存する(ステップS5)。
【0036】
処理担当となっているクラスタは、ストレージ装置21〜25に当該書き込みデータを保存すると、他のクラスタに対して保存完了通知を行う。そして、この処理担当となっているクラスタは、キャッシュメモリ32に記憶している当該保存済みのデータを削除する。なお、この処理担当となっているクラスタは、キャッシュメモリ32のメモリ容量に余裕があれば記憶を維持し、容量の余裕がなくなったときに当該保存済みのデータを削除してもよい。
【0037】
また、処理担当となっていないクラスタは、保存完了通知を受けると、同様に、キャッシュメモリ32に記憶している当該保存済みのデータを削除する。なお、処理担当となっていないクラスタも、キャッシュメモリ32のメモリ容量に余裕があれば記憶を維持し、容量の余裕がなくなったときに当該保存済みのデータを削除してもよい。
【0038】
一方、要求がデータの読み出し要求であった場合、クラスタ11〜14は、負荷分散において、その要求に対する処理担当となっているかどうかを判断する(ステップS7)。処理担当となっていない場合には、ステップS1に戻り次の要求を待ち受ける。
【0039】
続いて、処理担当となっている場合には、クラスタ11〜14は、当該読み出し要求があったデータを、キャッシュメモリ32内を検索する(ステップS8)。
【0040】
キャッシュメモリ32を検索した結果、当該読み出し要求があったデータがヒットした場合には、キャッシュメモリ32内に記憶されているデータをクライアントに送信する(ステップS9)。
【0041】
キャッシュメモリ32内を検索した結果、当該読み出し要求があったデータがヒットしなかった場合には、ストレージ装置21〜25からデータを読み出し、キャッシュメモリ32に記憶する(ステップS10)。
【0042】
続いて、キャッシュメモリ32内に記憶されているデータをクライアントに送信する(ステップS11)。
【0043】
以上のように本発明の実施の形態のクラスタ型負荷分散サーバシステム1では、各クラスタ11〜14がキャッシュメモリ32を有している。そして、各クライアントは、データの書き込みを行う場合には、全てのクラスタ11〜14に対して当該書き込みデータをマルチキャスト送信する。全てのクラスタ11〜14は、処理担当になるか否かに関わらず、クライアントからデータの書き込み要求があった場合には、当該書き込みデータをそれぞれのキャッシュメモリ32に記憶する。そして、処理担当となる1のクラスタのみが、当該書き込みデータをストレージ装置21〜25に格納する。
【0044】
また、クライアントからデータの読み出し要求があった場合には、処理担当となる1のクラスタは、まず、キャッシュメモリ32内に当該読み出しデータを記憶しているかどうかを検索する。検索した結果、キャッシュメモリ内に記憶している場合には、当該読み出しデータをキャッシュメモリ32から読み出して、クライアントに送信する。また、検索した結果、キャッシュメモリ32内に記憶していなければ、当該読み出しデータをストレージ装置21〜25から読み出して、クライアントに送信する。
【0045】
このことにより本発明の実施の形態のクラスタ型負荷分散サーバシステム1では、あるクライアントからデータの書き込みがあったのち、すぐに、他のクライアントから当該データの読み出しがあった場合などの複数クライアントからのアクセスに対して、データの一貫性を確保することができる。
【0046】
クライアントから送信されたデータをすぐにストレージ装置21〜25に格納する必要がなく、例えば、そのクラスタのアイドルタイムなどに、他のデータと併せてストレージ装置21〜25に格納すればよく、書き込み効率が向上する。また、クライアントに送信するデータをキャッシュメモリ32から読み出せば、ストレージ装置21〜25からデータを読み出す必要がなく、レスポンスが高くなる。
【0047】
また、全クラスタ11〜14がそれぞれキャッシュメモリ32を有しているので、例えばある1のクラスタが故障しても、システム全体の動作は可能であるため、安全性が向上する。
【0048】
【発明の効果】
本発明の負荷分散サーバシステムでは、各クラスタがキャッシュメモリを有している。
【0049】
クライアントは、データの書き込みを行う場合には、全てのクラスタに対して当該書き込みデータをマルチキャスト送信する。全てのクラスタは、処理担当になるか否かに関わらず、クライアントからデータの書き込み要求があった場合には、当該書き込みデータをそれぞれのキャッシュメモリに記憶する。そして、処理担当となる1のクラスタのみが、当該書き込みデータをデータ格納手段に格納する。
【0050】
また、クライアントからデータの読み出し要求があった場合には、処理担当となる1のクラスタは、まず、キャッシュメモリ内に当該読み出しデータを記憶しているかどうかを検索する。検索した結果、キャッシュメモリ内に記憶している場合には、当該読み出しデータをキャッシュメモリから読み出して、クライアントに送信する。また、検索した結果、キャッシュメモリ内に記憶していなければ、当該読み出しデータをデータ格納手段から読み出して、クライアントに送信する。
【0051】
このことにより本発明の負荷分散サーバシステムでは、あるクライアントからデータの書き込みがあったのち、すぐに、他のクライアントから当該データの読み出しがあった場合などの複数クライアントからのアクセスに対して、データの一貫性を確保することができる。
【0052】
また、本発明の負荷分散サーバシステムでは、クライアントから送信されたデータをすぐにデータ格納手段に格納する必要がなく、例えば、そのクラスタのアイドルタイムなどに、他のデータと併せてデータ格納手段に格納すればよく、書き込み効率が向上する。また、クライアントに送信するデータをキャッシュメモリから読み出せば、データ格納手段からデータを読み出す必要がなく、レスポンスが高くなる。
【0053】
また、全クラスタがそれぞれキャッシュメモリを有しているので、例えばある1のクラスタが故障しても、システム全体の動作は可能であるため、安全性が向上する。
【図面の簡単な説明】
【図1】本発明を適用したクラスタ型負荷分散サーバシステムのシステム構成図である。
【図2】上記クラスタ型負荷分散システムのクラスタの構成図である。
【図3】上記クラスタの動作を説明するためのフローチャートである。
【符号の説明】
1 クラスタ型負荷分散サーバシステム、2 ネットワーク網、11〜14 クラスタ、21〜25 ストレージ装置
Claims (3)
- クライアントからの処理要求に対して、負荷分散により処理担当となるクラスタが決定される負荷分散サーバシステムにおいて、
1以上のストレージデバイスからなるデータ格納手段と、
各クライアントとネットワークを介して接続され、クライアントから送信されたデータを上記データ格納手段に書き込み、上記データ格納手段に格納されているデータを読み出しクライアントへ送信する複数のクラスタとを備え、
各クラスタは、クライアントから送信されたデータを一時的に格納するキャッシュメモリを有し、
クライアントから全クラスタに対してマルチキャスト送信された、当該書き込みデータを含む書き込み要求があった場合には、全クラスタが各キャッシュメモリに上記書き込みデータを記憶し、処理担当となる1のクラスタが当該データを上記データ格納手段に格納し、
クライアントからデータの読み出し要求があった場合には、処理担当となる1のクラスタが当該データがキャッシュメモリに記憶されているかどうかを検索し、検索した結果キャッシュメモリに当該データが記憶されている場合には、このキャッシュメモリから当該データを読み出して、クライアントに当該データを送信すること
を特徴とする負荷分散サーバシステム。 - 各クラスタは、上記データ格納手段にデータを格納すると、他のクラスタに対して格納完了通知を行うこと
を特徴とする請求項1記載の負荷分散サーバシステム。 - 処理担当となっていないクラスタは、上記格納完了通知を受けると、上記キャッシュメモリに記憶されている上記書き込みデータを削除すること
を特徴とする請求項2記載の負荷分散サーバシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000200367A JP4284837B2 (ja) | 2000-06-30 | 2000-06-30 | 負荷分散サーバシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000200367A JP4284837B2 (ja) | 2000-06-30 | 2000-06-30 | 負荷分散サーバシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002024193A JP2002024193A (ja) | 2002-01-25 |
JP4284837B2 true JP4284837B2 (ja) | 2009-06-24 |
Family
ID=18698253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000200367A Expired - Fee Related JP4284837B2 (ja) | 2000-06-30 | 2000-06-30 | 負荷分散サーバシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4284837B2 (ja) |
-
2000
- 2000-06-30 JP JP2000200367A patent/JP4284837B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002024193A (ja) | 2002-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5548724A (en) | File server system and file access control method of the same | |
US8281081B2 (en) | Shared memory architecture | |
US8281022B1 (en) | Method and apparatus for implementing high-performance, scaleable data processing and storage systems | |
US7917599B1 (en) | Distributed adaptive network memory engine | |
JPH0962558A (ja) | データベース管理システム及び方法 | |
US20050086386A1 (en) | Shared running-buffer-based caching system | |
US20060123121A1 (en) | System and method for service session management | |
CN108153683A (zh) | 用于在存储器中的地址范围之间传输数据的装置和方法 | |
JPH1185710A (ja) | サーバ装置およびファイル管理方法 | |
JPH11120156A (ja) | マルチプロセッサシステムにおけるデータ通信方式 | |
JP2001511559A (ja) | マルチポート内部キャッシュdram | |
US20080201444A1 (en) | File sharing system and file sharing method | |
JP3776496B2 (ja) | データ記憶システム | |
JP4208506B2 (ja) | 高性能記憶装置アクセス環境 | |
US7441009B2 (en) | Computer system and storage virtualizer | |
US7136969B1 (en) | Using the message fabric to maintain cache coherency of local caches of global memory | |
US6374248B1 (en) | Method and apparatus for providing local path I/O in a distributed file system | |
US20120158682A1 (en) | Scatter-gather list usage for a configuration database retrieve and restore function and database blocking and configuration changes during a database restore process | |
JP3736305B2 (ja) | ディスクキャッシュシステムおよびディスクキャッシュ制御方法 | |
JP4284837B2 (ja) | 負荷分散サーバシステム | |
JPH04313126A (ja) | 分散ファイルシステムのファイル入出力方式 | |
WO2017177400A1 (zh) | 一种数据处理方法及系统 | |
CN116414563A (zh) | 内存控制装置、缓存一致性系统和缓存一致性方法 | |
JP4187403B2 (ja) | データ記録システム、データ記録方法およびネットワークシステム | |
US6721858B1 (en) | Parallel implementation of protocol engines based on memory partitioning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080910 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081014 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090120 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090206 |
|
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: 20090303 |
|
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: 20090316 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120403 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120403 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |