JP5900096B2 - レプリケーションシステム、レプリケーションプログラム及びレプリケーション構成の再構築方法 - Google Patents

レプリケーションシステム、レプリケーションプログラム及びレプリケーション構成の再構築方法 Download PDF

Info

Publication number
JP5900096B2
JP5900096B2 JP2012074089A JP2012074089A JP5900096B2 JP 5900096 B2 JP5900096 B2 JP 5900096B2 JP 2012074089 A JP2012074089 A JP 2012074089A JP 2012074089 A JP2012074089 A JP 2012074089A JP 5900096 B2 JP5900096 B2 JP 5900096B2
Authority
JP
Japan
Prior art keywords
data
storage device
replication
permutation
read
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
JP2012074089A
Other languages
English (en)
Other versions
JP2013206100A (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012074089A priority Critical patent/JP5900096B2/ja
Priority to US13/778,195 priority patent/US9015124B2/en
Publication of JP2013206100A publication Critical patent/JP2013206100A/ja
Application granted granted Critical
Publication of JP5900096B2 publication Critical patent/JP5900096B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、レプリケーションシステムと、レプリケーションプログラムと、レプリケーション構成の再構築方法とに、関する。
ストレージシステムとして、同じデータが複数の記憶装置に記憶されるシステム(以下、レプリケーションシステムと表記する)が、知られている。以下、図1乃至図4を用いて、既存のレプリケーションシステムの構成及び機能を説明する。
図1に模式的に示してあるように、既存のレプリケーションシステムは、N(図1では、N=4)個の記憶装置と、ホスト(ホストコンピュータ)とネットワーク接続され、互いに異なる記憶装置と接続されたN個のノードとを、含む。このレプリケーションシステム内の各ノードは、基本的には、ホストからのリード/ライト要求に応じた内容の制御(リード/ライトアクセス)を、自身に接続されている記憶装置に対して行うコンピュータである。ただし、各ノードは、「レプリケーション数=3」という設定がなされている状況下、或るデータのライト要求を受信した場合には、当該データの識別情報のハッシュ値等から定まる次ノードにそのデータの記憶装置への記憶を指示する。次ノードも、自身の次ノードにそのデータの記憶装置への記憶を指示する。そして、ライト要求を受信したノードと他ノードから指示を受けた2個のノードとにより3個の記憶装置に同一のデータが記憶される。
また、既存のレプリケーションシステムは、或る記憶装置又は或るノードに障害が発生した場合に、全データのレプリケーション数が設定値となるように、データをコピーする機能(以下、レプリケーション再構成機能と表記する)も有している。
具体的には、図1に示したレプリケーションシステムのノードB又は記憶装置Bに障害が発生した場合、図2に示したように、データ1、2、4のレプリケーション数が2に減ってしまうことになる。
そのような場合、既存のレプリケーションシステムでは、図3に模式的に示したように、各ノードにより、記憶装置Bに記憶されていた特定のデータを自身の記憶装置から読み出して、読み出したデータの記憶装置への記憶を他のノードに依頼する処理が行われる。そして、図4に示したように、レプリケーションシステムの状態が、全データのレプリケーション数が3となっている状態に戻される。
特開2005−353035号公報 特開2002−215554号公報 国際公開第08/114441号パンフレット 特開2011−95976号公報
上記した機能から明らかなように、レプリケーションシステムは、信頼性やフォールトトレラント性が高いシステムとなっている。
ただし、既存のレプリケーションシステムでは、レプリケーション構成の再構築時(図3)に、ホストとシステムとを繋ぐネットワークがコピーするデータの授受のために使用される。そのため、既存のレプリケーションシステムは、レプリケーション構成の再構築中に、ホストからのリード/ライト要求に対する応答速度が低下するものとなっている。
1つの側面において、本発明は、ホストとの間のネットワークの帯域を消費することなくレプリケーション構成を再構築できる技術を提供する。
一態様のレプリケーションシステムは、
N(N≧3)台の記憶装置と、
ホストと第1ネットワークを介して接続され、N台の記憶装置と第2ネットワークを介して接続されたN台のノードであって、それぞれ、自ノードに対応づけられている記憶装置に対するアクセス要求をホストから受信し、受信したアクセス要求に応じた内容のアクセスを対応する記憶装置に対して行うN台のノードと、
を、含み、
N台のノードのうち、いずれか1つのノードがホストからデータのライト要求を受信した場合に、いずれかの1つのノードを含むM(1<M<N)台のノードのそれぞれは、自ノードに対応づけられている記憶装置にデータを記憶し、
N台の記憶装置のうち、第1の記憶装置内の第1のデータが読み出せなくなった場合に、他の記憶装置内に記憶されている第1のデータを第2ネットワークを介して伝送して第1のデータを記憶していない第1の記憶装置に記憶するシステムである。
一態様のレプリケーションプログラムは、
N(N≧3)台の記憶装置と、ホストと第1ネットワークを介して接続され、N台の記憶装置と第2ネットワークを介して接続されたN台のコンピュータとを含むレプリケーションシステム用のレプリケーションプログラムであって、
N台のコンピュータのそれぞれで実行されることにより、レプリケーションシステムを、
各コンピュータが、自身に対応づけられている記憶装置に対するアクセス要求をホストから受信して受信したアクセス要求に応じた内容のアクセスを当該記憶装置に対して行い、
いずれか1つのコンピュータがホストからデータのライト要求を受信した場合に、いずれかの1つのコンピュータを含むM(1<M<N)台のコンピュータのそれぞれが、自ノードに対応づけられている記憶装置にデータを記憶し、
N台の記憶装置のうち、第1の記憶装置内の第1のデータが読み出せなくなった場合に、第1の記憶装置に対応づけられているコンピュータが、他の記憶装置内に記憶されている第1のデータが、第2ネットワークを介して伝送して第1のデータを記憶していない第1の記憶装置に記憶する、
システムとして機能させるプログラムである。
一態様のレプリケーション構成の再構築方法は、
N(N≧3)台の記憶装置と、ホストと第1ネットワークを介して接続され、N台の記憶装置と第2ネットワークを介して接続されたN台のノードであって、それぞれ、自ノードに対応づけられている記憶装置に対するアクセス要求をホストから受信し、受信したアクセス要求に応じた内容のアクセスを対応する記憶装置に対して行うN台のノードとを含むレプリケーションシステムにおけるレプリケーション構成の再構築方法において、
N台の記憶装置のうち、第1の記憶装置内の第1のデータが読み出せなくなった場合に、他の記憶装置内に記憶されている第1のデータを第2ネットワークを介して伝送して第
1のデータを記憶していない第1の記憶装置に記憶する方法である。
ホストとの間のネットワークの帯域を消費することなくレプリケーション構成を再構築できる技術を提供できる。
図1は、既存のレプリケーションシステムの構成図である。 図2は、既存のレプリケーションシステムの機能を説明するための図(その1)である。 図3は、既存のレプリケーションシステムの機能を説明するための図(その2)である。 図4は、既存のレプリケーションシステムの機能を説明するための図(その3)である。 図5は、実施形態に係るレプリケーションシステムの構成図である。 図6Aは、実施形態に係るレプリケーションシステムが備える各記憶装置の記憶領域の使用形態の説明図である。 図6Bは、実施形態に係るレプリケーションシステム内の各ノードのハードウェア構成の説明図である。 図7は、実施形態に係るレプリケーションシステムが備える各ノードの機能ブロック図である。 図8は、実施形態に係る各記憶装置内に記憶されているエントリテーブルの説明図である。 図9は、実施形態に係る各記憶装置内に記憶されているクラスタ管理テーブルの説明図である。 図10は、エントリテーブル及びクラスタ管理テーブル上の情報が表している状態の説明図である。 図11は、実施形態に係る各ノードが備える配置パタンテーブルの説明図である。 図12は、実施形態に係る各ノードが備える割当テーブルの説明図である。 図13は、1台のノード又は記憶装置に障害が発生しているレプリケーションシステムの状態の説明図である。 図14は、レプリケーション構成の再構築後のレプリケーションシステムの状態の説明図である。 図15は、1台のノード又は記憶装置に障害が発生した場合に、配置パターンテーブルに対して行われる処理の説明図である。 図16は、1台のノード又は記憶装置に障害が発生した場合に、割当テーブルに対して行われる処理の説明図である。 図17は、データ管理部が実行するコピー処理の流れ図である。 図18は、図17のコピー処理の説明図である。 図19は、コピー処理の完了前に更新要求が送信されてきた場合におけるノード間の情報の授受手順を示したシーケンス図である。 図20は、コピー処理の実行中に更新要求を受信した場合に実行される処理の流れ図である。 図21は、ACK受信時に実行される処理の流れ図である。
以下、本発明の一実施形態について、図面を参照して詳細に説明する。尚、以下で説明する実施形態の構成は、本発明の例示に過ぎず、本発明は、実施形態の構成に限定されないものである。
まず、図5、図6A及び図6Bを用いて、実施形態に係るレプリケーションシステムの概要を説明する。尚、これらの図のうち、図5は、本実施形態に係るレプリケーションシステムの構成図である。図6Aは、レプリケーションシステム内の各記憶装置30X(X=A〜D)の記憶領域の使用形態の説明図であり、図6Bは、レプリケーションシステム内の各ノード10Xのハードウェア構成の説明図である。
図5に示してあるように、本実施形態に係るレプリケーションシステムは、第1ネットワーク50を介してホスト100に接続される4台のノード10A〜10D、4台の記憶装置20A〜20D、及び、第2ネットワーク30を備える。
第1ネットワーク50は、ホスト100及び4台のノード10A〜10D間を相互に接続するネットワーク(バックボーンネットワーク)である。この第1ネットワーク50(以下、第1NW50とも表記する)としては、インターネット自体や、ノード10側のローカルエリアネットワークとインターネットとを組み合わせたネットワークが、利用される。
第2ネットワーク30は、4台のノード10A〜10D及び4台の記憶装置20A〜20D間を相互に接続するネットワークである。この第2ネットワーク30(以下、第2NW30とも表記する)としては、例えば、幾つかのSAS(Serial Attached SCSI(Small
Computer System Interface))エクスパンダにより構成されたネットワークや、ファイバーチャネルネットワークが使用される。
各記憶装置20X(X=A〜D)は、第2NW30用の通信インタフェースを備えた記憶装置(HDD(Hard Disk Drive)等)である。図6Aに模式的に示してあるように、記憶装置20Xの記憶領域は、Nc個のクラスタ(固定長の記憶領域)、エントリテーブル25X及びクラスタ管理テーブル26Xとして使用されている。
ノード10X(X=A〜D)は、図6Bに示したような、第1NW50用のインタフェース回路61と第2NW30用のインタフェース回路62とを備えたコンピュータ60に、OS(Operating System)、レプリケーションプログラム18等をインストールした装置である。尚、レプリケーションプログラム18とは、2つの通信アダプタを備えたコンピュータ内のCPUにより実行されることにより、当該コンピュータを、以下で説明する機能を有するノード10Xとして動作させるプログラムのことである。
各ノード10X(図5)は、基本的には、記憶装置20Xに対するリード/ライト要求をホスト100から受信し、記憶装置20Xを制御することにより受信したリード/ライト要求に応答する装置である。
ただし、各ノード10Xは、4台の記憶装置20A〜20D中の3台に同一のデータ(“データ1”、“データ2”等;以下、エクステントとも表記する)が記憶されている状態を形成する機能を有している。また、各ノード10Xは、或る1台のノード10又は記憶装置20に障害が発生した場合に、システム内の各データ(エクステント)のレプリケーション数を“3”に戻す機能も有している。
以上のことを前提に、以下、本実施形態に係るレプリケーションシステムの構成及び動作をさらに具体的に説明する。
図7に、ノード10X(X=A〜D)の機能ブロック図を示す。この図7に示してあるように、ノード10Xは、配置パタンテーブル15と割当テーブル16とを保持したデー
タ管理部11X、及び、領域管理部12Xを備えた装置として動作するように構成(プログラミング)されている。
まず、領域管理部12Xの機能を説明する。
領域管理部12Xは、第1要求、第2要求及び書込完了通知を自ノード10X内のデータ管理部11Xから受信し、第2要求及び書込完了通知を第1NW50経由で他ノード10Y内のデータ管理部11Yから受信するユニット(機能ブロック)である。
第1要求は、記憶装置20X内の或るエクステントについてのリード要求をホスト100から受信したデータ管理部11Xが、当該エクステントに関する領域情報を得るために、領域管理部12Xに対して送信する要求である。尚、上記説明及び以下の説明において、或るエクステントに関する領域情報とは、『或るエクステントが既に格納されている/これから格納される1個のクラスタのクラスタ番号』又は『或るエクステントが既に格納されている/これから格納される複数のクラスタのクラスタ番号をクラスタの使用順通りに並べた情報』のことである。また、エクステントのキーとは、エクステントのユニークな識別情報のことである。
データ管理部11Xがホスト100から受信するリード要求には、記憶装置20Xから読み出すべきエクステントのキーが含まれている。以下、ホスト100からのリード要求にて読み出しが要求されているエクステントのことを、読出対象エクステントと表記する。また、読出対象エクステントのキー(リード要求に含まれるキー)のことを、読出対象キーと表記する。
ホスト100からのリード要求を受信したデータ管理部11Xは、受信したリード要求中の読出対象キーを含めた第1要求を、領域管理部12Xに対して送信する。
第1要求を受信した領域管理部12Xは、まず、エントリテーブル25Xから、受信した第1要求中の読出対象キーに対応づけられているクラスタ番号を読み出す。
図8に、エントリテーブル25Xの一例を示す。
このエントリテーブル25Xは、或るエクステントの記憶装置20Xへの新規書込完了時に、そのエクステントのキー及びサイズと、そのエクステントの先頭データが格納されたクラスタのクラスタ番号とを設定したレコードが追加されるテーブルである。すなわち、エントリテーブル25Xは、記憶装置20X内に既に格納されている各エクステントについて、そのエクステントのキー及びサイズと、そのエクステントの先頭データが格納されたクラスタのクラスタ番号とを含むレコードを記憶したテーブルとなっている。尚、エクステントの先頭データとは、1クラスタサイズよりも大きなエクステントの、先頭から1クラスタ分のデータ、又は、1クラスタサイズよりも小さなエクステントの全データのことである。
読出対象キーに対応づけられているクラスタ番号をエントリテーブル25Xから読み出した領域管理部12Xは、当該クラスタ番号に対応づけられている状況値をクラスタ管理テーブル26Xから読み出す。
図9に示したように、クラスタ管理テーブル26Xは、記憶装置20X内の各クラスタのクラスタ番号に対応づけた形で、各クラスタに関する状況値(本実施形態では、正の整数を表す値)を保持したテーブルである。
このクラスタ管理テーブル26Xに保持される状況値には、以下の3種のものが存在し
ている。
・対応するクラスタ(自状況値に対応づけられているクラスタ番号を有するクラスタ)が未使用クラスタ(データの記憶のために使用されていないクラスタ)であることを示す状況値0
・対応するクラスタに記憶されているデータ(エクステントの一部)に続くデータが記憶されているクラスタのクラスタ番号自体である状況値1〜Nc
・対応するクラスタが、エクステントの最後のデータを記憶したクラスタであることを示す、Nc(=記憶装置20Xの最大クラスタ番号)よりも大きな状況値“END”
上記条件を満たす状況値をクラスタ管理テーブル26Xから読み出した領域管理部12Xは、読み出した状況値が、クラスタ番号(1〜Ncのいずれか)であるか、“END”(Ncよりも大きな整数値)であるかを判断する。
クラスタ管理テーブル26Xから読み出した状況値がクラスタ番号であった場合、領域管理部12Xは、読み出した状況値(クラスタ番号)と同じクラスタ番号に対応づけられている状況値をクラスタ管理テーブル26Xから読み出す。領域管理部12Xは、そのような処理を、クラスタ管理テーブル26Xから“END”が読み出されるまで繰り返す。
クラスタ管理テーブル26Xから“END”が読み出された場合、領域管理部12Xは、テーブル25X及び26Xから読み出してある一連のクラスタ番号を読出順通りに並べた領域情報を生成する。
具体的には、読出対象キーがαであった場合には、エントリテーブル25X(図8)からクラスタ番号“1”が読み出される。そして、図9に示したクラスタ管理テーブル26Xには、クラスタ1(クラスタ番号1のクラスタ;以下、同様)に関する状況値として2が記憶されている。さらに、クラスタ管理テーブル26Xには、クラスタ2に関する状況値として4が、クラスタ4に関する状況値として3が、クラスタ4に関する状況値として“END”が記憶されている。従って、読出対象キーがαであった場合、領域管理部12Xは、クラスタ番号1、2、4、3をこの順に並べた領域情報、すなわち、エクステントαが、図10に模式的に示したように、クラスタ1、2、4、3に格納されていることを示す領域情報を、生成する。
また、図8に示したエントリテーブル25Xには、“β”というキーに対応づけてクラスタ番号6が記憶されている。そして、図9に示したクラスタ管理テーブル26Xには、クラスタ6に関する状況値として“END”が記憶されている。従って、読出対象キーがβであった場合、領域管理部12Xは、クラスタ番号6のみを含む領域情報、すなわち、エクステントβが、図10に模式的に示したように、クラスタ6のみに格納されていることを示す領域情報を、生成する。
上記のようにして領域情報を生成した領域管理部12Xは、生成した領域情報をデータ管理部11Xに送信(返送)してから、受信した第1要求に対する処理を終える。
第2要求は、データ管理部11X又は11Yが、或るエクステントを記憶装置20X内に書き込む必要が生じた際に、当該エクステント(以下、書込対象エクステントと表記する)に関する領域情報を得るために、領域管理部12Xに対して送信する要求である。この第2要求には、書込対象エクステントのキー(以下、書込対象キーと表記する)及びサイズ(以下、要求サイズと表記する)が含まれている。
第2要求を受信した場合、領域管理部12Xは、まず、受信した第2要求中の書込対象キーと同じキーがエントリテーブル25Xに登録(記憶)されているか否かを判断する。
既に説明したように、エントリテーブル25X(図8)には、或るエクステントの記憶装置20Xへの新規書込完了時に、そのエクステントのキー及びサイズと、そのエクステントの先頭データが記憶されているクラスタのクラスタ番号とからなるレコードが追加される。従って、書込対象キーと同じキーがエントリテーブル25Xに登録されていた場合、書込対象エクステントが、“記憶装置20X内に既に存在している既存エクステントの内容を更新した更新エクステント”であることになる。また、書込対象キーと同じキーがエントリテーブル25Xに登録されていなかった場合、書込対象エクステントが、“それまで記憶装置20X内に記憶されていなかった新エクステント”であることになる。
書込対象エクステントが新エクステントであった場合、領域管理部12Xは、書込対象エクステントに関する領域情報を生成する領域情報生成処理を行ってから、生成した領域情報と書込対象キー及び要求サイズとを含めた書込未完了領域情報を内部に記憶する。尚、“内部に記憶する”とは、“ノード10X内のメモリ(図6B参照)上の、書込未完了領域情報用の記憶領域に記憶する”ということである。
領域情報生成処理は、基本的には、『要求サイズのデータを記憶できる数の未使用クラスタのクラスタ番号をクラスタ管理テーブル26Xから読み出し、読み出したクラスタ番号を読出順通りに並べた領域情報を生成する処理』である。ただし、領域情報生成処理は、領域管理部12X内に幾つかの書込未完了領域情報が存在していた場合、各書込未完了領域情報中の領域情報にそのクラスタ番号が含まれているクラスタを、未使用クラスタではないクラスタ(生成する領域情報中にそのクラスタ番号を含めないクラスタ)として取り扱う処理となっている。
以下、領域情報生成処理が生成する領域情報中にそのクラスタ番号が含められるクラスタのことを、割当可能クラスタと表記する。すなわち、そのクラスタ番号に対応づけられているクラスタ管理テーブル26X上の状況値が“0”であり、そのクラスタ番号がいずれの書込未完了領域情報にも含まれていないクラスタのことを、割当可能クラスタと表記する。
領域情報生成処理を行い、書込未完了領域情報を内部に記憶した領域管理部12Xは、領域情報生成処理により生成した領域情報を、第2要求の送信元(データ管理部11X又は11Y)に送信する。そして、領域管理部12Xは、受信した第2要求に対する処理を終える。
一方、書込対象エクステントが更新エクステントであった場合、領域管理部12Xは、まず、処理対象キーに対応付けられているクラスタ番号及びサイズをエントリテーブル25Xから読み出す。次いで、領域管理部12Xは、エントリテーブル25Xから読み出したサイズのデータを記憶するのに必要なクラスタ数(以下、現クラスタ数と表記する)と、要求サイズのデータを記憶するのに必要なクラスタ数(以下、新クラスタ数と表記する)とを、算出して比較する。
“新クラスタ数≦現クラスタ数”が成立していた場合、領域管理部12Xは、上記した第1要求に対する応答時の手順と同様の手順で、新クラスタ数と同数のクラスタ番号をテーブル25X及び26Xから読み出す。換言すれば、領域管理部12Xは、“END”が読み出される前にクラスタ番号(状況値)の読み出しを終える点のみが第1要求に対する応答時の手順と異なる手順で、新クラスタ数と同数のクラスタ番号をテーブル25X及び26Xから読み出す。
次いで、領域管理部12Xは、読み出したクラスタ番号を並べた領域情報を生成し、生
成した領域情報と書込対象キー及び要求サイズとを含めた書込未完了領域情報を内部に記憶する。その後、領域管理部12Xは、生成した領域情報を、第2要求の送信元(データ管理部11X又は11Y)に送信する。そして、領域管理部12Xは、受信した第2要求に対する処理を終える。
“新クラスタ数>現クラスタ数”が成立していた場合、領域管理部12Xは、上記した第1要求に対する応答時の手順と同手順で、書込対象キーで識別されるエクステントが記憶されていた1つ以上のクラスタのクラスタ番号をテーブル25X及び26Xから読み出す。次いで、領域管理部12Xは、クラスタ管理テーブル26上の情報及び自身が保持している各書込未完了領域情報に基づき、“新クラスタ数−現クラスタ数”と同数の割当可能クラスタのクラスタ番号を特定する。
上記した数の割当可能クラスタのクラスタ番号を特定した領域管理部12Xは、テーブル25X及び26Xから読み出してあるクラスタ番号群と新たに特定したクラスタ番号群とを並べた領域情報を生成する。次いで、領域管理部12Xは、生成した領域情報と書込対象キー及び要求サイズとを含めた書込未完了領域情報を内部に記憶する。そして、領域管理部12Xは、生成した領域情報を第2要求の送信元に送信してから、受信した第2要求に対する処理を終える。
書込完了通知は、第2要求の送信により領域管理部12Xから或る領域情報を得たデータ管理部11が、当該領域情報が示している記憶装置20X内のクラスタ群への書込対象エクステントの書き込みを行った後に、領域管理部12Xに対して送信する通知である。この書込完了通知には、書込が完了した書込対象エクステントのキー(以下、書込完了キーと表記する)が含まれている。
書込完了通知を受信した領域管理部12Xは、まず、書込完了キーと同じキーを含む書込未完了領域情報を自身が保持している書込未完了領域情報の中から検索する。そして、領域管理部12Xは、検索した書込未完了領域情報に基づき、テーブル25X及び26Xの内容を現状を表すものに更新する処理であるテーブル更新処理を行う。
以下、このテーブル更新処理の内容を説明する。尚、以下では、説明の便宜上、検索した書込未完了領域情報に含まれるキー(=書込完了キー)、サイズのことを、それぞれ、処理対象キー、処理対象サイズと表記する。また、検索した書込未完了領域情報に含まれる領域情報中のクラスタ番号の総数のことをLと表記し、領域情報中のn(1≦n≦L)番目のクラスタ番号のことを、クラスタ番号#nと表記する。
テーブル更新処理を開始した領域管理部12Xは、まず、書込完了キーと同じキーがエントリテーブル25Xに登録されているか否かを判断する。
書込完了キーと同じキーがエントリテーブル25Xに登録されていなかった場合、領域管理部12Xは、処理対象キー及び処理対象サイズと、クラスタ番号#1とを設定したレコードをエントリテーブル25Xに追加する。
次いで、領域管理部12Xは、クラスタ番号#1〜#Lに対応付けられているクラスタ管理テーブル26X上の状況値を、それぞれ、クラスタ番号#2〜#L、“END”に書き換える。より具体的には、領域管理部12Xは、L=1の場合には、クラスタ番号#1に対応付けられているクラスタ管理テーブル26X上の状況値を“END”に書き換える。また、領域管理部12Xは、L>1の場合には、クラスタ番号#1〜#L−1に対応付けられているクラスタ管理テーブル26X上の状況値を、それぞれ、クラスタ番号#2〜#Lに書き換え、クラスタ番号#Lに対応付けられているクラスタ管理テーブル26上の
状況値を“END”に書き換える。
そして、領域管理部12Xは、処理した書込未完了領域情報(書込完了キーと同じキーを含む書込未完了領域情報)を破棄してから、テーブル更新処理を終了する。
一方、書込完了キーと同じキーがエントリテーブル25Xに登録されていた場合、領域管理部12Xは、書込完了キーに対応づけられているエントリテーブル25X上のサイズを読み出してから、エントリテーブル25X上の当該サイズを処理対象サイズに書き換える。尚、読み出したサイズが処理対象サイズと一致していた場合、エントリテーブル25X上のサイズの書き換え(同じデータの書き込み)が行われないようにしておくことも出来る。
次いで、領域管理部12Xは、エントリテーブル25Xから読み出したサイズのデータを記憶するのに必要なクラスタ数(以下、旧クラスタ数と表記する)と、処理対象サイズのデータを記憶するのに必要なクラスタ数(以下、現クラスタ数と表記する)とを算出して比較する。
“旧クラスタ数≦現クラスタ数”が成立していた場合、領域管理部12Xは、クラスタ番号#1〜#Lに対応付けられているクラスタ管理テーブル26X上の状況値を、それぞれ、クラスタ番号#2〜#L、“END”に書き換える。そして、領域管理部12Xは、処理した書込未完了領域情報を破棄してから、テーブル更新処理を終了する。
“旧クラスタ数≦現クラスタ数”が成立していなかった場合にも、領域管理部12Xは、クラスタ番号#1〜#Lに対応付けられているクラスタ管理テーブル26X上の状況値を、それぞれ、クラスタ番号#2〜#L、“END”に書き換える。ただし、この場合、領域管理部12Xは、クラスタ番号#Lに対応付けられている状況値を読み出してから、当該状況値を“END”に書き換える。その後、領域管理部12Xは、読み出した状況値と一致するクラスタ番号に対応付けられている状況値を読み出してから当該状況値を“0”に書き換える処理を、“END”が読み出されるまで繰り返す。
そして、“END”が読み出されたときに、領域管理部12Xは、処理した書込未完了領域情報を破棄してから、テーブル更新処理を終了する。
以下、データ管理部11X(X=A〜D)の機能を説明する。
データ管理部11X(図5)は、ホスト100からのリード/ライト要求や、他のデータ管理部11からの更新要求(詳細は後述)を受信するユニット(機能ブロック)である。
まず、データ管理部11Xの、ホスト100からのリード要求に対する動作を説明する。
ホスト100からのリード要求には、読み出すべきエクステントのキー(以下、読出対象キーと表記する)が含まれている。或るリード要求を受信したデータ管理部11Xは、そのリード要求中の読出対象キーを含めた第1要求を領域管理部12Xに対して送信する。その後、データ管理部11Xは、第1要求に対する応答情報として上記した領域情報が返送されてくるのを待機する。
領域情報が返送されてくきた場合には、データ管理部11Xは、その領域情報中の各クラスタ番号で識別されるクラスタ上のデータ(図10参照)を記憶装置20Xから読み出
す。そして、データ管理部11Xは、読み出したデータを繋げたデータをホスト100に返送してから、受信したリード要求に対する処理を終える。
次に、データ管理部11A〜11Dのホスト100からのライト要求に対する動作を説明する。
各データ管理部11A〜11Dは、通常は、メモリ上に、図11に示したような内容の配置パタンテーブル15と図12に示したような内容の割当テーブル16とを保持した状態で動作している。尚、“通常”とは、“ノード10A〜10D及び記憶装置20A〜20Dが全て正常に機能している場合”のことである。
すなわち、各データ管理部10X(X=A〜D)は、通常は、『4台の記憶装置20(及び/又はノード10)の識別情報(A〜D)の総計24通りの順列をパタン識別子(P1〜P24)で識別可能なように記憶した配置パタンテーブル15』(図11)を保持している。また、各データ管理部10Xは、通常は、『ハッシュ値(例えば、SHA(Secure Hash Algorithm)−1によるハッシュ値)の各範囲を、P1〜P24のいずれかのパタン識別子に対応づけるための割当テーブル16』(図12)を保持している。
一方、ホスト100からのライト要求には、記憶装置20X内に書き込むべきエクステント(以下、書込対象エクステントと表記する)のキー及びサイズが含まれている。
ライト要求をホスト100から受信したデータ管理部11Xは、まず、当該ライト要求に含まれる書込対象エクステントのキーのハッシュ値を算出し、算出したハッシュ値に対応づけられているパタン識別子を割当テーブル16から検索する。次いで、データ管理部11Xは、配置パタンテーブル15から、検索したパタン識別子と同じパタン識別子が設定されているレコードを読み出す。尚、各データ管理部11Xがホスト100から受信するライト要求は、この際、読み出されるレコードのR1値(R1フィールドの値)が、自身の識別情報と一致することになるものである。
そして、データ管理部11Xは、読み出したレコードのR2値にて識別されるノード10Y内のデータ管理部11Yに対して、第1NW50経由で、受信したライト要求と同内容の更新要求を送信する。
更新要求を受信したデータ管理部11Yは、更新要求に含まれるキーのハッシュ値を算出し、算出したハッシュ値に対応づけられているパタン識別子を割当テーブル16から検索する。次いで、データ管理部11Yは、配置パタンテーブル15から、検索したパタン識別子と同じパタン識別子が設定されているレコードを読み出し、自身の識別子が、読み出したレコードのR2値と一致しているか否かを判断する。
自身の識別子が読み出したレコードのR2値と一致していた場合、データ管理部11Yは、読み出したレコードのR3値にて識別されるノード10Z内のデータ管理部11Zに対して、第1NW50経由で、受信した更新要求と同内容の更新要求を送信する。
更新要求を受信したデータ管理部11Zは、更新要求に含まれるキーのハッシュ値を算出し、算出したハッシュ値に対応づけられているパタン識別子を割当テーブル16から検索する。次いで、データ管理部11Zは、配置パタンテーブル15から、検索したパタン識別子と同じパタン識別子が設定されているレコードを読み出し、自身の識別子が、読み出したレコードのR2値と一致しているか否かを判断する。そして、自身の識別子が、読み出したレコードのR2値と一致していない(この場合、R3値が“Z”となっている)、ため、データ管理部11Zは、受信した更新要求が要求している内容のデータの書込を
自身が管理している記憶装置20Zに対して行う。
すなわち、データ管理部11Zは、第2要求の送信により領域管理部12Zから領域情報を取得し、取得した領域情報が示している記憶装置20Zの1つ以上のクラスタに書込対象エクステントを書き込み、書込完了通知を領域管理部12Zに対して送信する。
その後、データ管理部11Zは、処理した更新要求に対するACK(確認応答)を、当該更新要求の送信元(この場合、データ管理部11Y)に対して送信する。
送信した更新要求に対するACKを受信したデータ管理部11Yは、受信済みの更新要求が要求している内容のデータの書込を記憶装置20Yに対して行う。その後、データ管理部11Yは、処理した更新要求に対するACKを、当該更新要求の送信元(この場合、データ管理部11X)に対して送信する。
送信した更新要求に対するACKを受信したデータ管理部11Xは、ホスト100から受信したライト要求が要求している内容のデータの書込を記憶装置20Xに対して行う。そして、データ管理部11Xは、ホスト100に対してACKを送信し、受信したライト要求に対する処理を終える。
以下、ノード10B又は記憶装置20Bに障害が発生し、記憶装置20B内のデータが読み出せなくなった場合を例に、1台の記憶装置20内のデータが読み出せなくなった場合における他の各ノード10の動作を説明する。
尚、以下の説明において、第3レプリケーションとは、ホスト100からのライト要求が或るノード10により受信された場合に、最初に更新されるシステム内のデータ(エクステント)のことである。第2レプリケーションとは、ホスト100からのライト要求が或るノード10により受信された場合に、2番目に更新されるシステム内のデータのことであり、第1レプリケーションとは、ホスト100からのライト要求が或るノード10により受信された場合に、最後に更新されるシステム内のデータのことである。さらに、第1乃至第3記憶装置とは、それぞれ、第1乃至第3レプリケーションが記憶される記憶装置20のことであり、第1乃至第3ノードとは、それぞれ、第1乃至第3記憶装置からのデータの読み出しを行うノード10のことである。
記憶装置20Bからデータが読み出せなくなった場合、図13に模式的に示してあるように、システム内の幾つかのデータのレプリケーション数が“2”となってしまうことになる。そのため、記憶装置20Bからデータが読み出せなくなった場合、各ノード10X(X=A、C、D)は、システムの状態を、図14に示してあるような状態(各データのレプリケーション数が“3”である状態)とするためのレプリケーション構成再構築処理を開始する。
レプリケーション構成再構築処理を開始した各ノード10Xは、まず、配置パタンテーブル15を加工することにより、図15の右側に示してあるような内容の配置パタンテーブル15′を得る。
すなわち、各ノード10Xは、配置パタンテーブル15に対して以下の(1)〜(4)の処理を順々に行ったものに相当する配置パタンテーブル15′を生成する。
(1)配置パタンテーブル15から障害が発生した記憶装置20(又はノード10)の識別情報“B”を消去し、“B”より右側に位置していた1個乃至3個の識別情報を左側にシフト。
(2)“B”がR4値ではなかった各レコードに、『第2ノードによる第2レプリケーシ
ョンの第3記憶装置へのコピー』(詳細は後述)が必要であることを示す情報(図15における“要”及び“D′”等の“′”)を追加。
(3)(1)の処理の結果としてR1値〜R3値が同一となった2レコードを1レコードに縮退させる。
(4)各レコードにパタン識別子を付け直す。
また、各ノード10Xは、割当テーブル16を、図16に示してあるような内容の割当テーブル16′に変更する処理も行う。すなわち、各ノード10Xは、割当テーブル15を、縮退させた配置パタンテーブル15(15′)の各レコードにそれまで対応づけられていたハッシュ値の範囲に、縮退後のレコードのパタン識別子が対応づけられている割当テーブル16′に変更する処理を行う。
そして、各第2ノードは、配置パタンテーブル15′と割当テーブル16′上の情報に基づき、第3記憶装置へのコピーが必要な第2記憶装置内の第2レプリケーションを第2NW30を介して第3記憶装置内にコピーするコピー処理を実行する。
具体的には、データ管理部11Aは、記憶装置20Cへのコピーが必要な記憶装置20A内の第2レプリケーションを第2NW30を介して記憶装置20Cにコピーするコピー処理を行う。さらに、データ管理部11Aは、記憶装置20Dへのコピーが必要な記憶装置20A内の第2レプリケーションを第2NW30を介して記憶装置20Dにコピーするコピー処理も行う。
また、データ管理部11Cは、記憶装置20Aへのコピーが必要な記憶装置20C内の第2レプリケーションを第2NW30を介して記憶装置20Aにコピーするコピー処理を行う。さらに、データ管理部11Cは、記憶装置20Dへのコピーが必要な記憶装置20C内の第2レプリケーションを第2NW30を介して記憶装置20Dにコピーするコピー処理も行う。
同様に、データ管理部11Dは、記憶装置20Aへのコピーが必要な記憶装置20D内の第2レプリケーションを第2NW30を介して記憶装置20Aにコピーするコピー処理と、記憶装置20Cへのコピーが必要な記憶装置20A内の第2レプリケーションを第2NW30を介して記憶装置20Cにコピーするコピー処理とを行う。
各データ管理部11X(X=A〜D)が行うコピー処理は、本質的には、同内容の処理である。そのため、以下では、ノード10C内のデータ管理部11Cが実行する、記憶装置20Dへのコピーが必要な記憶装置20C内の第2レプリケーションを第2NW30を介して記憶装置20Dにコピーするコピー処理の内容のみを説明することにする。
図17に、データ管理部11Cが実行する、記憶装置20Dへのコピーが必要な記憶装置20C内の第2レプリケーションを第2NW30を介して記憶装置20Dにコピーするコピー処理の流れ図を示す。また、図18に、このコピー処理時における各部間の情報の授受手順を示す。
図17に示してあるように、このコピー処理を開始したデータ管理部11Cは、まず、記憶装置20Dへのコピーが必要な第2レプリケーション(図17では、要コピーデータ)が記憶装置20C内に残っているか否かを判断する(ステップS11)。ここで、説明しているコピー処理は、記憶装置20Dへのコピーが必要な記憶装置20C内の第2レプリケーションを第2NW30を介して記憶装置20Dにコピーする処理、つまり、配置パタンテーブル15′の先頭のレコードに従って第1〜第3記憶装置が決定される第2記憶装置内のデータをコピーする処理である。従って、ステップS11では、そのキーのハッ
シュ値と割当テーブル16′とによりパタン識別子P1に対応づけられることになるデータの有無が判断される。
要コピーデータが記憶装置20C内に残っていた場合(ステップS11;YES)、データ管理部11Cは、1つの要コピーデータを処理対象データとして選択する(ステップS12)。そして、データ管理部11Xは、処理対象データが、そのキーが処理中リストに登録されている処理中データであるか否かを判断する(ステップS13)。ここで、処理中リストとは、ステップS14の処理時と後述する図20のステップS22の処理時に、処理対象データのキーが登録されるリストのことである。
選択した処理対象データが処理中データであった場合(ステップS13;YES)、データ管理部11Cは、処理対象データが処理中データでなくなる(ステップS13;NO)のを待機する。そして、データ管理部11Cは、処理対象データが処理中データでなくなったとき(ステップS13;NO)に、処理対象データのキーを処理中リストに登録する(ステップS14)。
また、データ管理部11Xは、処理対象データが初めから処理中データでなかった場合(ステップS13;NO)には、即座に、ステップS14の処理を行う。
ステップS14の処理を終えたデータ管理部11Cは、処理対象データを記憶装置20Cから読み出す(ステップS15)。尚、既に説明したように、データ管理部11Cは、処理対象データの記憶装置20Cへの記憶に必要とされる領域情報を領域管理部12Cから取得する。従って、このステップS15の実行前に、データ管理部11Cは、図18に模式的に示してあるように、領域管理部12Cに第1要求を送信する(ステップS15′)。また、第1要求を受信した領域管理部12Cは、記憶装置20Cにアクセスして領域情報を生成(ステップS15″)し、データ管理部11Cに領域情報を返送する(ステップS15′)。
ステップS15の処理を終えたデータ管理部11Cは、処理対象データのキー、サイズを含めた第2要求を第1NW50経由で送信することにより、領域管理部11Dから処理対象データに関する領域情報を取得する(図17、図18;ステップS16)。尚、第2要求を受信した領域管理部12Dは、記憶装置20Dにアクセスして領域情報を生成(図18;ステップS16′)し、データ管理部11Cに領域情報を返送する(ステップS16)。
その後、データ管理部11Cは、領域管理部11Dから取得した領域情報を用いて、第2NW30経由で、記憶装置20D内への処理対象データの書き込みを行う(図17,図18;ステップS17)。
処理対象データの書き込みが完了したデータ管理部11Cは、領域管理部11Dに対して第1NW50経由で書込完了通知を送信する(ステップS18)。
書込完了通知を受信した領域管理部11Dは、記憶装置20D内のテーブル25D及び26Dを更新する(図18;ステップS18′)。尚、コピー処理時にデータ管理部11Cにより記憶装置20Cに書き込まれる処理対象データは、通常、それまで記憶装置20C内に存在していなかったデータである。従って、ステップS18′では、エントリテーブル25Dに処理対象データに関するレコードが追加され、クラスタ管理テーブル26D上の幾つかの状況値が“0”から“0”以外の値に書き換えられる。
ステップS18(図17)の処理を終えたデータ管理部11Cは、処理対象データのキ
ーを処理中リストから削除(ステップS19)してから、ステップS11に戻って要コピーデータが残っているか否かを判断する。
データ管理部11Cは、要コピーデータが無くなるまで、このような処理を繰り返す。そして、データ管理部11Cは、要コピーデータが無くなったとき(ステップS11;NO)に、配置パタンテーブル15′の内容を、P1に関するコピーが完了していることを示すもの更新すると共に、P1に関するコピーが完了したことを他の各ノード10内のデータ管理部11に通知する。そして、データ管理部11Cは、このコピー処理を終了する。
次に、上記内容のコピー処理が完了する前に、そのキーのハッシュ値がRNG1(図16)内に入る既存エクステントについての更新要求(ライト要求)が、ホスト100からノード10Aに送信された場合における各部の動作を説明する。
この場合、更新要求を受信したデータ管理部11Aは、更新対象エクステントのキーのハッシュ値に対応付けられている割当テーブル16′(図16)上のパタン識別子がP1であるため、配置パタンテーブル15′(図15)から、P1が含まれるレコードを読み出す。そして、当該レコードのR2値がCであるため、図19に示したように、データ管理部11A(“A(R1)”)は、データ管理部11C(“C(R2)”)に対して受信した更新要求と同内容の更新要求を送信する。
更新要求を受信したデータ管理部11Cは、割当テーブル16′と配置パタンテーブル15′と更新対象エクステントのキーから、受信した更新要求がデータ管理部11Dに送信すべきものであることを把握する。そして、データ管理部11Cは、データ管理部11Dに対するコピー処理を実行中であるため、図20に示した手順の処理を開始し、まず、更新対象データが処理中データであるか否かを判断する(ステップS21)。
更新対象データが処理中データであった場合(ステップS21;YES)、データ管理部11Cは、更新対象データが処理中データでなくなる(ステップS21;NO)のを待機する。そして、データ管理部11Cは、更新対象データが処理中データでなくなったとき(ステップS21;NO)に、更新対象データのキーを処理中リストに登録する(ステップS22)。
また、データ管理部11Cは、更新対象データが初めから処理中データでなかった場合(ステップS21;NO)には、即座に、ステップS22の処理を行う。
ステップS22の処理を終えたデータ管理部11Cは、ノード10D内のデータ管理部11Dに対して更新要求を送信(ステップS23)してから、この図20の処理を終了する。
データ管理部11Cからの更新要求を受信したデータ管理部11Dは、割当テーブル16′と配置パタンテーブル15′と更新対象エクステントのキーから、自ノード10Cが、更新要求を他ノードに送信する必要がない第3ノードであることを把握する。そして、データ管理部11Dは、領域管理部12Dを利用することにより更新対象エクステントを記憶装置20C内に書き込んでから、データ管理部11Cに対してACKを送信する。
ACKを受信したデータ管理部11Cは、図21に示した手順の処理を開始して、まず、更新対象データに関する領域情報を領域管理部12Dから取得する(ステップS31)。次いで、データ管理部11Cは、取得した領域情報を用いて、更新対象エクステントを記憶装置20C内に書き込む(ステップSS32)。その後、データ管理部11Cは、更
新対象エクステントのキーを処理中リストから削除する(ステップS33)。そして、データ管理部11Cは、データ管理部11Aに対してACKを送信(ステップS34)してから、この図21の処理を終了する。
以上、説明したように、本実施形態に係るレプリケーションシステムは、或る記憶装置20内のデータが読み出せなくなった場合、他の記憶装置20内の当該データが第2NW30を介して授受されることにより当該データがコピー先記憶装置20にコピーされる構成を有する。従って、本実施形態に係るレプリケーションシステムによれは、ホスト100との間の第1NW50の帯域を消費することなくレプリケーション構成を再構築できることになる。
《変形形態》
上記した実施形態に係るレプリケーションシステムは、各種の変形を行うことが出来るものである。例えば、実施形態に係るレプリケーションシステムを、『ノード10Xが、記憶装置20Y内にコピーすべきデータを記憶装置20Xから読み出し、そのデータの書き込み要求をノード10Yに第2NW30を経由で送信し、ノード10Yが書き込み要求を処理することによりデータを記憶装置20Y内に格納するシステム』に変形することが出来る。ただし、レプリケーションシステムをそのようなシステムに変形すると、上記したレプリケーションシステムよりも、第2NW30を介して授受されるデータ量が多いシステムが得られてしまうことになる。従って、上記した構成(記憶装置20Xからデータを読み出したノード10Xが、記憶装置20Y(≠X)にデータを書き込む構成)を採用しておくことが好ましい。
実施形態に係るレプリケーションシステムを、データ管理部11Xから領域管理部12Yへデータ管理部11Yを経由して第2要求、書込完了通知が送信されるシステムに変形することも出来る。また、実施形態に係るレプリケーションシステムを、上記したものとは異なるアルゴリズムで、レプリケーションの配置が決定されるシステムに変形することも出来る。さらに、実施形態に係るレプリケーションシステムを、レプリケーション数が“3”ではないシステムや、ノード10/記憶装置20の台数が4台ではないシステムに変形しても良いことなどは当然のことである。
以上、開示した技術に関し、更に以下の付記を開示する。
(付記1) N(N≧3)台の記憶装置と、
ホストと第1ネットワークを介して接続され、前記N台の記憶装置と第2ネットワークを介して接続されたN台のノードであって、それぞれ、自ノードに対応づけられている記憶装置に対するアクセス要求を前記ホストから受信し、受信したアクセス要求に応じた内容のアクセスを対応する記憶装置に対して行うN台のノードと、
を、含み、
前記N台のノードのうち、いずれか1つのノードが前記ホストからデータのライト要求を受信した場合に、前記いずれかの1つのノードを含むM(1<M<N)台のノードのそれぞれは、自ノードに対応づけられている記憶装置に前記データを記憶し、
前記N台の記憶装置のうち、第1の記憶装置内の第1のデータが読み出せなくなった場合に、他の記憶装置内に記憶されている前記第1のデータを前記第2ネットワークを介して伝送して前記第1のデータを記憶していない前記第1の記憶装置に記憶する、
ことを特徴とするレプリケーションシステム。
(付記2) 前記N台のノードのそれぞれは、
或る記憶装置から読み出せなくなったデータと同じデータを自ノードに対応づけられている記憶装置から読み出し、読み出したデータを記憶すべき記憶装置である記憶先装置に
対応づけられているノードに、読み出したデータ用の記憶領域の割り当てを依頼し、割り当てられた前記記憶先装置の記憶領域に前記第2ネットワークを利用して読み出したデータを記憶する機能、及び、
他のノードから、或るデータの記憶領域の割り当てが依頼された場合に、自ノードに対応付けられている記憶装置に当該データ用の記憶領域を割り当てる機能、
を有する
ことを特徴とする付記1に記載のレプリケーションシステム。
(付記3) N(N≧3)台の記憶装置と、ホストと第1ネットワークを介して接続され、前記N台の記憶装置と第2ネットワークを介して接続されたN台のコンピュータとを含むレプリケーションシステム用のレプリケーションプログラムであって、
前記N台のコンピュータのそれぞれで実行されることにより、前記レプリケーションシステムを、
各コンピュータが、自身に対応づけられている記憶装置に対するアクセス要求を前記ホストから受信して受信したアクセス要求に応じた内容のアクセスを当該記憶装置に対して行い、
いずれか1つのコンピュータが前記ホストからデータのライト要求を受信した場合に、前記いずれかの1つのコンピュータを含むM(1<M<N)台のコンピュータのそれぞれが、自ノードに対応づけられている記憶装置に前記データを記憶し、
前記N台の記憶装置のうち、第1の記憶装置内の第1のデータが読み出せなくなった場合に、前記第1の記憶装置に対応づけられているコンピュータが、他の記憶装置内に記憶されている前記第1のデータが、前記第2ネットワークを介して伝送して前記第1のデータを記憶していない前記第1の記憶装置に記憶する、
システムとして機能させることを特徴とするレプリケーションプログラム。
(付記4) 前記レプリケーションシステムを、
各コンピュータが、
或る記憶装置から読み出せなくなったデータと同じデータを自ノードに対応づけられている記憶装置から読み出し、読み出したデータを記憶すべき記憶装置である記憶先装置に対応づけられているコンピュータに、読み出したデータ用の記憶領域の割り当てを依頼し、割り当てられた前記記憶先装置の記憶領域に第2ネットワークを利用して読み出したデータを記憶する処理、及び、
他のコンピュータから、或るデータの記憶領域の割り当てが依頼された場合に、自コンピュータに対応付けられている記憶装置に当該データ用の記憶領域を割り当てる処理、
を実行可能なシステムとして機能させることを特徴とする付記3に記載のレプリケーションプログラム。
(付記5) N(N≧3)台の記憶装置と、ホストと第1ネットワークを介して接続され、前記N台の記憶装置と第2ネットワークを介して接続されたN台のノードであって、それぞれ、自ノードに対応づけられている記憶装置に対するアクセス要求を前記ホストから受信し、受信したアクセス要求に応じた内容のアクセスを対応する記憶装置に対して行うN台のノードとを含むレプリケーションシステムにおけるレプリケーション構成の再構築方法において、
前記N台の記憶装置のうち、第1の記憶装置内の第1のデータが読み出せなくなった場合に、他の記憶装置内に記憶されている前記第1のデータを前記第2ネットワークを介して伝送して前記第1のデータを記憶していない前記第1の記憶装置に記憶する、
ことを特徴とするレプリケーション構成の再構築方法。
(付記6) N(N≧3)台の記憶装置と、ホストと第1ネットワークを介して接続され、前記N台の記憶装置と第2ネットワークを介して接続されたN台のコンピュータとを含
むレプリケーションシステム用のレプリケーションプログラムを記録したコンピュータ可読媒体であって、
前記N台のコンピュータのそれぞれで実行されることにより、前記レプリケーションシステムを、
各コンピュータが、自身に対応づけられている記憶装置に対するアクセス要求を前記ホストから受信して受信したアクセス要求に応じた内容のアクセスを当該記憶装置に対して行い、
いずれか1つのコンピュータが前記ホストからデータのライト要求を受信した場合に、前記いずれかの1つのコンピュータを含むM(1<M<N)台のコンピュータのそれぞれが、自ノードに対応づけられている記憶装置に前記データを記憶し、
前記N台の記憶装置のうち、第1の記憶装置内の第1のデータが読み出せなくなった場合に、前記第1の記憶装置に対応づけられているコンピュータが、他の記憶装置内に記憶されている前記第1のデータが、前記第2ネットワークを介して伝送して前記第1のデータを記憶していない前記第1の記憶装置に記憶する、
システムとして機能させるレプリケーションプログラムを記録したコンピュータ可読媒体。
(付記7) N(N≧3)台の記憶装置と、
ホストと第1ネットワークを介して接続され、前記N台の記憶装置と第2ネットワークを介して接続されたN台のノードであって、それぞれ、自ノードに対応づけられている記憶装置に対するアクセス要求を前記ホストから受信し、受信したアクセス要求に応じた内容のアクセスを当該記憶装置に対して行うN台のノードと、
を、含み、
或るノードが前記ホストから或るデータのライト要求を受信した場合に、M(M<N)台のノードのそれぞれにより当該データが各ノードに対応づけられている記憶装置に記憶され、
各ノードが、自ノードに対応づけられている記憶装置内のデータを前記第2ネットワークを介して送信することにより他の記憶装置内にコピーする機能を有する
前記N台のノードのうち、いずれか1つのノードが前記ホストからデータのライト要求を受信した場合に、前記いずれかの1つのノードを含むM(1<M<N)台のノードのそれぞれは、自ノードに対応づけられている記憶装置に前記データを記憶し、
各ノードが、自ノードに対応づけられている記憶装置内のデータを前記第2ネットワークを介して送信することにより他の記憶装置内にコピーする機能を有する
ことを特徴とするレプリケーションシステム。
10 ノード
11 データ管理部
12 領域管理部
15、15′ 配置パタンテーブル
16、16′ 割当テーブル
18 レプリケーションプログラム
20 記憶装置
25 エントリテーブル
26 クラスタ管理テーブル
30 第2ネットワーク
50 第1ネットワーク
60 コンピュータ
61、62 インタフェース回路
100 ホスト

Claims (5)

  1. N(N≧3)台の記憶装置と、
    ホストと第1ネットワークを介して接続され、前記N台の記憶装置と第2ネットワークを介して接続されたN台のノードであって、それぞれ、自ノードに対応づけられている記憶装置に対するアクセス要求を前記ホストから受信し、受信したアクセス要求に応じた内容のアクセスを対応する記憶装置に対して行うN台のノードと、
    を、含み、
    前記の各ノードは、第1配置パターンテーブルと第1割当テーブルとを有し、第1配置パターンテーブルに前記N台の記憶装置の識別情報の順列と前記それぞれの順列の識別子とを格納し、前記第1割当表にアクセス先を示すキー情報のハッシュ値の範囲と前記順列の識別子とを関連付けて格納し、
    前記N台のノードのうち、いずれか1つのノードが前記ホストからデータのライト要求を受信した場合に、前記いずれかの1つのノードを含むM(1<M<N)台のノードのそれぞれは、自ノードに対応づけられている記憶装置に前記データを記憶するために、前記ライト要求に含まれるキー情報のハッシュ値と前記割当表とによって特定される前記配置パターンテーブルの順列に基づいてレプリケーションを実行し、
    前記N台の記憶装置のうち、第1の記憶装置内の第1のデータが読み出せなくなった場合に、各ノードは、第1の配置パターンテーブルのそれぞれの順列から前記第1の記憶装置の識別情報を除外した順列で重複を除去した順列と前記重複を除去したそれぞれの順列の識別子とを格納する第2配置パターンテーブルと、前記重複を除去したそれぞれの順列の識別子と前記アクセス先を示すキー情報のハッシュ値の範囲とを対応づけた第2割当表とを生成してレプリケーションを実行し、一の記憶装置内に記憶されている前記第1のデータを前記第2ネットワークを介して伝送して前記第1のデータを記憶していない前記第の記憶装置に記憶する、
    ことを特徴とするレプリケーションシステム。
  2. 前記N台のノードのそれぞれは、
    或る記憶装置から読み出せなくなったデータと同じデータを自ノードに対応づけられている記憶装置から読み出し、読み出したデータを記憶すべき記憶装置である記憶先装置に対応づけられているノードに、読み出したデータ用の記憶領域の割り当てを依頼し、割り
    当てられた前記記憶先装置の記憶領域に前記第2ネットワークを利用して読み出したデータを記憶する機能、及び、
    他のノードから、或るデータの記憶領域の割り当てが依頼された場合に、自ノードに対応付けられている記憶装置に当該データ用の記憶領域を割り当てる機能、
    を有する
    ことを特徴とする請求項1に記載のレプリケーションシステム。
  3. N(N≧3)台の記憶装置と、ホストと第1ネットワークを介して接続され、前記N台の記憶装置と第2ネットワークを介して接続されたN台のコンピュータとを含むレプリケーションシステム用のレプリケーションプログラムであって、
    前記N台のコンピュータのそれぞれで実行されることにより、前記レプリケーションシステムを、
    各コンピュータが、第1配置パターンテーブルと第1割当テーブルとを有し、第1配置パターンテーブルに前記N台の記憶装置の識別情報の順列と前記それぞれの順列の識別子とを格納し、前記第1割当表にアクセス先を示すキー情報のハッシュ値の範囲と前記順列の識別子とを関連付けて格納し、
    自身に対応づけられている記憶装置に対するアクセス要求を前記ホストから受信して受信したアクセス要求に応じた内容のアクセスを当該記憶装置に対して行い、
    いずれか1つのコンピュータが前記ホストからデータのライト要求を受信した場合に、前記いずれか1つのコンピュータを含むM(1<M<N)台のコンピュータのそれぞれが、自ノードに対応づけられている記憶装置に前記データを記憶するために、前記ライト要求に含まれるキー情報のハッシュ値と前記割当表とによって特定される前記配置パターンテーブルの順列に基づいてレプリケーションを実行し、
    前記N台の記憶装置のうち、第1の記憶装置内の第1のデータが読み出せなくなった場合に、各コンピュータは、第1の配置パターンテーブルのそれぞれの順列から前記第1の記憶装置の識別情報を除外した順列で重複を除去した順列と前記重複を除去したそれぞれの順列の識別子とを格納する第2配置パターンテーブルと、前記重複を除去したそれぞれの順列の識別子と前記アクセス先を示すキー情報のハッシュ値の範囲とを対応づけた第2割当表とを生成してレプリケーションを実行し、一の記憶装置内に記憶されている前記第1のデータ前記第2ネットワークを介して伝送して前記第1のデータを記憶していない前記第の記憶装置に記憶する、
    システムとして機能させることを特徴とするレプリケーションプログラム。
  4. 前記レプリケーションシステムを、
    各コンピュータが、
    或る記憶装置から読み出せなくなったデータと同じデータを自ノードに対応づけられている記憶装置から読み出し、読み出したデータを記憶すべき記憶装置である記憶先装置に対応づけられているコンピュータに、読み出したデータ用の記憶領域の割り当てを依頼し、割り当てられた前記記憶先装置の記憶領域に第2ネットワークを利用して読み出したデータを記憶する処理、及び、
    他のコンピュータから、或るデータの記憶領域の割り当てが依頼された場合に、自コンピュータに対応付けられている記憶装置に当該データ用の記憶領域を割り当てる処理、
    を実行可能なシステムとして機能させることを特徴とする請求項3に記載のレプリケーションプログラム。
  5. N(N≧3)台の記憶装置と、ホストと第1ネットワークを介して接続され、前記N台の記憶装置と第2ネットワークを介して接続されたN台のノードであって、それぞれ、自ノードに対応づけられている記憶装置に対するアクセス要求を前記ホストから受信し、受信したアクセス要求に応じた内容のアクセスを対応する記憶装置に対して行うN台のノードとを含むレプリケーションシステムにおけるレプリケーション構成の再構築方法におい
    て、
    前記の各ノードは、第1配置パターンテーブルと第1割当テーブルとを有し、第1配置パターンテーブルに前記N台の記憶装置の識別情報の順列と前記それぞれの順列の識別子とを格納し、前記第1割当表にアクセス先を示すキー情報のハッシュ値の範囲と前記順列の識別子とを関連付けて格納し、
    前記N台のノードのうち、いずれか1つのノードが前記ホストからデータのライト要求を受信した場合に、前記いずれか1つのノードを含むM(1<M<N)台のノードのそれぞれは、自ノードに対応づけられている記憶装置に前記データを記憶するために、前記ライト要求に含まれるキー情報のハッシュ値と前記割当表とによって特定される前記配置パターンテーブルの順列に基づいてレプリケーションを実行し、
    前記N台の記憶装置のうち、第1の記憶装置内の第1のデータが読み出せなくなった場合に、各ノードは、第1の配置パターンテーブルのそれぞれの順列から前記第1の記憶装置の識別情報を除外した順列で重複を除去した順列と前記重複を除去したそれぞれの順列の識別子とを格納する第2配置パターンテーブルと、前記重複を除去したそれぞれの順列の識別子と前記アクセス先を示すキー情報のハッシュ値の範囲とを対応づけた第2割当表とを生成してレプリケーションを実行し、一の記憶装置内に記憶されている前記第1のデータを前記第2ネットワークを介して伝送して前記第1のデータを記憶していない前記第の記憶装置に記憶する、
    ことを特徴とするレプリケーション構成の再構築方法。
JP2012074089A 2012-03-28 2012-03-28 レプリケーションシステム、レプリケーションプログラム及びレプリケーション構成の再構築方法 Expired - Fee Related JP5900096B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012074089A JP5900096B2 (ja) 2012-03-28 2012-03-28 レプリケーションシステム、レプリケーションプログラム及びレプリケーション構成の再構築方法
US13/778,195 US9015124B2 (en) 2012-03-28 2013-02-27 Replication system and method of rebuilding replication configuration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012074089A JP5900096B2 (ja) 2012-03-28 2012-03-28 レプリケーションシステム、レプリケーションプログラム及びレプリケーション構成の再構築方法

Publications (2)

Publication Number Publication Date
JP2013206100A JP2013206100A (ja) 2013-10-07
JP5900096B2 true JP5900096B2 (ja) 2016-04-06

Family

ID=49236393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012074089A Expired - Fee Related JP5900096B2 (ja) 2012-03-28 2012-03-28 レプリケーションシステム、レプリケーションプログラム及びレプリケーション構成の再構築方法

Country Status (2)

Country Link
US (1) US9015124B2 (ja)
JP (1) JP5900096B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725963B2 (en) 2015-09-12 2020-07-28 Microsoft Technology Licensing, Llc Distributed lock-free RDMA-based memory allocation and de-allocation
US10713210B2 (en) * 2015-10-13 2020-07-14 Microsoft Technology Licensing, Llc Distributed self-directed lock-free RDMA-based B-tree key-value manager
US10375167B2 (en) 2015-11-20 2019-08-06 Microsoft Technology Licensing, Llc Low latency RDMA-based distributed storage
CN109189476B (zh) * 2018-09-19 2021-10-29 郑州云海信息技术有限公司 Fpga的控制流执行方法、装置、设备及介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4187403B2 (ja) 2000-12-20 2008-11-26 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記録システム、データ記録方法およびネットワークシステム
US7069295B2 (en) * 2001-02-14 2006-06-27 The Escher Group, Ltd. Peer-to-peer enterprise storage
US7143170B2 (en) * 2003-04-30 2006-11-28 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
JP4313650B2 (ja) * 2003-11-07 2009-08-12 株式会社日立製作所 ファイルサーバ、冗長度回復方法、プログラム及び記録媒体
JP4718851B2 (ja) 2004-05-10 2011-07-06 株式会社日立製作所 ストレージシステムにおけるデータ移行
US7418621B2 (en) * 2005-02-24 2008-08-26 Dot Hill Systems Corp. Redundant storage array method and apparatus
JP3823169B1 (ja) * 2005-12-06 2006-09-20 データアクセス株式会社 データ制御装置、システム、方法、及びプログラム
WO2008114441A1 (ja) 2007-03-20 2008-09-25 Fujitsu Limited ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置
US8560639B2 (en) * 2009-04-24 2013-10-15 Microsoft Corporation Dynamic placement of replica data
US8037349B2 (en) * 2009-08-28 2011-10-11 International Business Machines Corporation Data replication based on capacity optimization
JP2011095976A (ja) 2009-10-29 2011-05-12 Nippon Telegr & Teleph Corp <Ntt> 分散データ管理装置及び方法及びプログラム
US8650365B2 (en) * 2011-09-02 2014-02-11 Compuverde Ab Method and device for maintaining data in a data storage system comprising a plurality of data storage nodes

Also Published As

Publication number Publication date
JP2013206100A (ja) 2013-10-07
US20130262384A1 (en) 2013-10-03
US9015124B2 (en) 2015-04-21

Similar Documents

Publication Publication Date Title
JP6344798B2 (ja) データ送信方法、データ受信方法、及びストレージデバイス
JP6309103B2 (ja) スナップショットおよびクローンの複製
JP5052376B2 (ja) ストレージシステム及びストレージシステムにおける論理ユニットの引継方法
US8140625B2 (en) Method for operating a fixed prefix peer to peer network
WO2017119091A1 (ja) 分散型ストレージシステム、データ格納方法、およびソフトウェアプログラム
JP4369471B2 (ja) ミラーリングプログラム、ミラーリング方法、情報記憶装置
KR101055918B1 (ko) 패일오버에 따른 캐시 데이터의 보존
US10496674B2 (en) Self-describing volume ancestry for data synchronization
JP6264666B2 (ja) データ格納方法、データストレージ装置、及びストレージデバイス
JP6588080B2 (ja) 分散型共有メモリアプリケーションのメモリ破損の検出サポート
JP4170056B2 (ja) 複製ボリューム間でのバックアップ・リストア管理方法およびこの方法に用いる記憶制御装置
JP2007507030A (ja) データを同期させるための方法、システム及びプログラム
JP2005532611A (ja) 仮想記憶装置
US20130332418A1 (en) Method of managing data in asymmetric cluster file system
JP5900096B2 (ja) レプリケーションシステム、レプリケーションプログラム及びレプリケーション構成の再構築方法
WO2018076633A1 (zh) 一种远程数据复制方法、存储设备及存储系统
JP6931081B2 (ja) データバックアップシステム、中継サイトストレージ、データバックアップ方法、及び中継サイトストレージの制御プログラム
US7549029B2 (en) Methods for creating hierarchical copies
JP6197816B2 (ja) ストレージシステム、ストレージの管理方法、及び、コンピュータ・プログラム
CN113220729A (zh) 数据存储方法、装置、电子设备及计算机可读存储介质
JP5540636B2 (ja) ストレージシステム、ストレージ装置、ストレージ装置の記憶内容複製方法およびプログラム
JP2007310448A (ja) 計算機システム、管理計算機、および、ストレージシステム管理方法
JPWO2015141219A1 (ja) ストレージシステム、制御装置、データアクセス方法およびプログラム
JP6376626B2 (ja) データ格納方法、データストレージ装置、及びストレージデバイス
CN109254870B (zh) 数据备份的方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160222

R150 Certificate of patent or registration of utility model

Ref document number: 5900096

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees