JP6028641B2 - 情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法 - Google Patents

情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法 Download PDF

Info

Publication number
JP6028641B2
JP6028641B2 JP2013059039A JP2013059039A JP6028641B2 JP 6028641 B2 JP6028641 B2 JP 6028641B2 JP 2013059039 A JP2013059039 A JP 2013059039A JP 2013059039 A JP2013059039 A JP 2013059039A JP 6028641 B2 JP6028641 B2 JP 6028641B2
Authority
JP
Japan
Prior art keywords
information processing
group
node
data
server
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.)
Active
Application number
JP2013059039A
Other languages
English (en)
Other versions
JP2014186383A (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 JP2013059039A priority Critical patent/JP6028641B2/ja
Priority to US14/199,466 priority patent/US9378078B2/en
Publication of JP2014186383A publication Critical patent/JP2014186383A/ja
Application granted granted Critical
Publication of JP6028641B2 publication Critical patent/JP6028641B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)

Description

本発明は、情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法に関する。
従来、分散KVS(Key Value Store)に代表されるNoSQL(登録商標)など、複数のノード間でデータが多重化されて記憶される情報処理システムにおいては、各ノードが全ノードを対象として死活監視を行ってきた。
ここで、ノードとは、CPU(Central Processing Unit)、メインメモリ、ディスク装置などを備えた情報処理装置であり、ノード間はネットワークで相互に接続される。また、死活監視とは、他のノードが正常に動作しているか否かを監視することである。また、情報処理システムは、分散ストレージシステムとして機能し、情報処理システムにおいて、各ノードはデータを分散して記憶するストレージ装置として機能する。
また、複数のノードを有し、各ノードがレプリカを記憶する分散データベースシステムにおいて、マスタノードがアライブメッセージを各ノードから受信して死活監視を行う従来技術がある(例えば、特許文献1参照。)。なお、レプリカとは、データの複製である。
特表2012−504807号公報
しかしながら、マスタノードや各ノードが全ノードを対象として死活監視を行うと、死活監視によるオーバーヘッドが大きいという問題がある。例えば、レプリカを持ち合わないノード同士は、他のノードの障害を検知してもリカバリ処理などを行う必要はない。したがって、レプリカを持ち合わないノード同士で死活監視を行うことは、無駄な死活監視を行うことになる。
本発明は、1つの側面では、死活監視のオーバーヘッドを減らすことを目的とする。
本願の開示する情報処理システムは、同一のデータを複数の情報処理装置がそれぞれ記憶する。そして、前記複数の情報処理装置のいずれかは、同一のデータを記憶する情報処理装置のうち共通の情報処理装置を含む集合の和集合のグループごとに、各グループに含まれる情報処理装置の識別子をグループ記憶部に記憶する。そして、その情報処理装置は、前記グループ記憶部が記憶する前記各グループに含まれる情報処理装置の識別子に基づき、自装置が所属するグループである所属グループに含まれる他の情報処理装置に対して監視を行う監視部を有する。
1実施態様によれば、死活監視のオーバーヘッドを減らすことができる。
図1は、実施例に係る情報処理システムによる死活監視を説明するための図である。 図2は、実施例に係る情報処理装置の機能構成を示すブロック図である。 図3は、データ分散表の一例を示す図である。 図4は、グループテーブルの一例を示す図である。 図5は、所属グループ記憶部の一例を示す図である。 図6は、ノード状態テーブルの一例を示す図である。 図7は、アクセス表の一例を示す図である。 図8は、ノードが故障したときのリカバリ処理の一例を示す図である。 図9Aは、負荷均等化処理の一例を示す図(A)である。 図9Bは、負荷均等化処理の一例を示す図(B)である。 図10は、グループ特定部によるグループ特定処理のフローを示すフローチャートである。 図11は、死活監視部によるハートビート送信処理のフローを示すフローチャートである。 図12は、死活監視部による死活判断処理のフローを示すフローチャートである。 図13は、ノード選択部によるリカバリノード選択処理のフローを示すフローチャートである。 図14は、負荷均等化部による対象選択処理のフローを示すフローチャートである。 図15は、データ複製部によるデータ複製処理のフローを示すフローチャートである。 図16は、データ移動部によるデータ移動処理のフローを示すフローチャートである。 図17は、実施例に係る情報処理システムによるリカバリ処理の一例を示す図である。 図18は、実施例に係る情報処理装置のハードウェア構成を示す図である。
以下に、本願の開示する情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係る情報処理システムによる死活監視について説明する。図1は、実施例に係る情報処理システムによる死活監視を説明するための図である。図1に示すように、情報処理システム100は、ノードとして動作するサーバA〜サーバHを有する。
サーバAは、データ0の第1の(1st)レプリカを有する。サーバBは、データ0の第2の(2nd)レプリカを有し、データ1の第1のレプリカを有する。サーバCは、データ0の第3の(3rd)レプリカを有し、データ1の第2のレプリカを有する。サーバDは、データ1の第3のレプリカを有する。
サーバEは、データ2の第1のレプリカを有する。サーバFは、データ2の第2のレプリカを有し、データ3の第1のレプリカを有する。サーバGは、データ2の第3のレプリカを有し、データ3の第2のレプリカを有する。サーバHは、データ3の第3のレプリカを有する。
情報処理システム100は、2つのレプリカ共有ノードグループに分けられる。ここで、レプリカ共有ノードグループとは、レプリカを持ち合っているノードの集合のうち共通のノードを含む集合の和集合である。
例えば、データ0のレプリカを持ち合っているノードの集合X={サーバA,サーバB,サーバC}であり、データ1のレプリカを持ち合っているノードの集合Y={サーバB,サーバC,サーバD}である。そして、2つの集合X、YはサーバB、サーバCが共通であるので、集合X、Yの和集合をとると、サーバA〜サーバDを含む第1のレプリカ共有ノードグループが得られる。
同様に、データ2のレプリカを持ち合っているノードの集合Z={サーバE,サーバF,サーバG}であり、データ3のレプリカを持ち合っているノードの集合W={サーバF,サーバG,サーバH}である。そして、2つの集合Z、WはサーバE、サーバFが共通であるので、集合Z、Wの和集合をとると、サーバE〜サーバHを含む第2のレプリカ共有ノードグループが得られる。
情報処理システム100は、各レプリカ共有ノードグループ内で死活監視を行う。すなわち、サーバAはサーバB〜サーバDと死活監視を行い、サーバBはサーバA、サーバC及びサーバDと死活監視を行い、サーバCはサーバA、サーバB及びサーバDと死活監視を行い、サーバDはサーバA〜サーバCと死活監視を行う。
同様に、サーバEはサーバF〜サーバHと死活監視を行い、サーバFはサーバE、サーバG及びサーバHと死活監視を行い、サーバGはサーバE、サーバF及びサーバHと死活監視を行い、サーバHはサーバE〜サーバGと死活監視を行う。
このように、情報処理システム100は、レプリカの持ち合いに基づいてサーバを2つのレプリカ共有ノードグループに分類し、レプリカ共有ノードグループ単位で死活監視を行うので、死活監視のオーバーヘッドを減らすことができる。
なお、ここでは説明の便宜上、2つのレプリカ共有ノードグループのみを示したが、情報処理システムは、任意の個数のレプリカ共有ノードグループを有することができる。また、ここでは各データが3つのノードに記憶される場合を示したが、情報処理システムは、データを任意の個数のノードに記憶することができる。さらに、レプリカの個数は、データ毎に異なってもよい。
次に、実施例に係る情報処理装置の機能構成について説明する。図2は、実施例に係る情報処理装置の機能構成を示すブロック図である。ここで、情報処理装置は、図1に示したサーバに対応する。
図2に示すように、情報処理装置1は、データ分散表11と、グループ特定部12と、グループテーブル13と、所属グループ記憶部14と、死活監視部15とを有する。また、情報処理装置1は、ノード状態テーブル16と、アクセス表17と、ノード選択部18と、データ複製部19と、負荷均等化部20と、データ移動部21とを有する。
データ分散表11は、ハッシュ範囲毎に第1のレプリカ〜第3のレプリカをそれぞれ記憶するサーバの識別子を記憶するテーブルである。図3は、データ分散表11の一例を示す図である。ここで、ハッシュ範囲とは、データの名前にハッシュ関数を適用した値の範囲を示す。図3において、データの名前にハッシュ関数を適用した値が「000」〜「aaa」の範囲にある場合には、データの第1のレプリカ〜第3のレプリカはそれぞれサーバA、サーバB、サーバCに記憶される。
グループ特定部12は、データ分散表11を用いてレプリカ共有ノードグループを特定し、特定した結果をグループテーブル13に格納する。グループ特定部12は、レプリカを持ち合っているノードの集合のうち共通なノードを含む2つの集合の和集合を求めて新たにレプリカを持ち合っているノードの集合を1つとする処理を共通なノードがなくなるまで繰り返す。そして、レプリカを持ち合っているノードの集合間に共通なノードがなくなると、グループ特定部12は、レプリカを持ち合っているノードの集合それぞれをレプリカ共有ノードグループとして特定する。
例えば、図3において、ハッシュ範囲が「000〜aaa」であるノードの集合{A,B,C}とハッシュ範囲が「aaa〜bbb」であるノードの集合{B,C,D}は、共通なノード、ノードCを有するので、新たなノード集合{A,B,C,D}が作成される。そして、ノード集合{A,B,C,D}は、共通なノードを有する他のノード集合がないので、レプリカ共有ノードグループとして特定される。同様に、ノード集合{E,F,G,H}が、レプリカ共有ノードグループとして特定される。なお、グループ特定部12は、データ分散表11が更新されると起動され、グループテーブル13を更新する。
グループテーブル13は、レプリカ共有ノードグループごとに、グループに含まれるノードの情報を記憶する。図4は、グループテーブル13の一例を示す図である。図4に示すように、グループテーブル13は、レプリカ共有ノードグループの識別子と、グループに含まれるノードの識別子とを対応付けて記憶する。例えば、識別子が「1」であるレプリカ共有ノードグループは、識別子がそれぞれ「A」、「B」、「C」及び「D」であるサーバをノードとして含む。
所属グループ記憶部14は、自ノードが所属するレプリカ共有ノードグループを記憶する。図5は、所属グループ記憶部14の一例を示す図である。図5に示すように、所属グループ記憶部14は、自ノードが所属するレプリカ共有ノードグループの識別子「1」を記憶する。
死活監視部15は、グループテーブル13及び所属グループ記憶部14を用いて、自ノードが所属するレプリカ共有ノードグループに属する他のノードとの間で相互に死活監視を行い、監視結果をノード状態テーブル16に格納する。死活監視部15は、自ノードが所属するレプリカ共有ノードグループに属する他のノードとだけ死活監視を行うことによって、死活監視のオーバーヘッドを減らすことができる。
ノード状態テーブル16は、ノードの状態などの情報をノード毎に記憶する。図6は、ノード状態テーブル16の一例を示す図である。図6に示すように、ノード状態テーブル16は、サーバの識別子と、サーバの状態とを対応させて記憶する。例えば、識別子が「A」であるサーバは、状態が「正常」である。
アクセス表17は、サーバ毎にアクセス数を記憶する。アクセス数は、サーバの負荷状態を判定するために用いられる。図7は、アクセス表17の一例を示す図である。図7に示すように、アクセス表17は、サーバの識別子とそのサーバへのアクセス数を対応させて記憶する。例えば、識別子が「A」であるサーバは、アクセス数は「30」である。
ノード選択部18は、自ノードが所属するレプリカ共有ノードグループに属する他のノードが故障したときに、正常なノードの中で自ノードが最も若いレプリカを担当するデータについて、復元先のノードを選択する。ノード選択部18は、ノード状態テーブル16を参照して故障ノードを特定し、データ分散表11、グループテーブル13及びアクセス表17を参照して復元先のノードを選択する。
ノード選択部18は、復元先ノードを選択するときに、故障したノードと同じレプリカ共有ノードグループのノードを優先的に選択する。ノード選択部18は、復元されるデータのレプリカを持たないノードで負荷が最低のノードをデータの復元先のノードとして選択する。ノード選択部18は、復元されるデータのレプリカを持たないノードが故障したノードと同じレプリカ共有ノードグループにない場合には、ノード数が最小のレプリカ共有ノードグループから負荷が最低のノードを選択する。
データ複製部19は、故障したノードが記憶していたデータのレプリカをノード選択部18が選択したノードに複製する。また、データ複製部19は、レプリカの複製を反映させるために全ノードのデータ分散表11を更新する。
図8は、ノードが故障したときのリカバリ処理の一例を示す図である。図8は、サーバHが故障した場合を示す。サーバHはレプリカ共有ノードグループ「2」に属し、サーバHが記憶するデータ3を記憶するノードの中でも若いレプリカを担当するノードはサーバFである。また、レプリカ共有ノードグループ「2」に属するノードのうち、データ3を記憶していないノードはサーバEだけである。
そこで、サーバFのノード選択部18は、データ3の復元先のノードとしてサーバEを選択する。そして、サーバFのデータ複製部19は、リカバリするデータのレプリカをサーバEに複製する。そして、サーバFのデータ複製部19は、データ分散表11を更新し、データ3の第3のレプリカを記憶するノードをサーバEとする。
負荷均等化部20は、負荷が高いノードの有無をアクセス表17を用いて判定し、負荷が高いノードがある場合に、負荷が高いノードが記憶するデータの1つを移動する移動先ノードを選択する。負荷均等化部20は、アクセス数が所定の高負荷閾値を越えているノードを負荷が高いノードと判定し、移動元ノードとして選択する。負荷均等化部20は、データ分散表11、グループテーブル13、ノード状態テーブル16及びアクセス表17を参照して移動先ノードを選択する。
すなわち、負荷均等化部20は、移動元ノードとレプリカ共有ノードグループが同じノードのうち、移動されるデータのレプリカを持たないノードで負荷が低負荷閾値以下のノードをデータの移動先のノードとして選択する。負荷均等化部20は、移動元ノードが属するレプリカ共有ノードグループに移動先ノードがない場合には、低負荷閾値以下のノードでその属するレプリカ共有ノードグループのノード数が最小のノードを選択する。もし、負荷が低付加閾値以下のノードがない場合には、負荷均等化部20は、移動先ノードの選択を行わない。
データ移動部21は、負荷均等化部20により選択された移動元ノードの1つのデータを移動先ノードに移動する。また、データ移動部21は、データの移動を反映させるために全ノードのデータ分散表11を更新する。
図9A及び図9Bは、負荷均等化処理の一例を示す図(A)及び(B)である。図9Aは、負荷均等化処理前の状態を示し、図9Bは、負荷均等化処理後の状況を示す。図9Aでは、サーバFがデータ2の第2のレプリカとデータ3の第2のレプリカを記憶し、負荷が高負荷閾値を越えて高い。一方、サーバHは、データを記憶せず、負荷が低負荷閾値以下である。
そこで、負荷均等化部20は、サーバFを移動元ノードとして選択し、サーバHを移動先ノードとして選択する。そして、データ移動部21は、図9Bに示すように、データ3の第2のレプリカをサーバFからサーバHに移動し、データ分散表11を更新する。
図9Aと図9Bのデータ分散表11を比較すると、データ3に対応するハッシュ範囲「ccc〜dd」の第2のレプリカを記憶するノードがサーバFからサーバHに変更されている。この結果、サーバE、サーバF及びサーバGを含むレプリカ共有ノードグループが、サーバE及びサーバFを含むレプリカ共有ノードグループとサーバG及びサーバHを含むレプリカ共有ノードグループに分割される。
次に、グループ特定部12によるグループ特定処理のフローについて説明する。図10は、グループ特定部12によるグループ特定処理のフローを示すフローチャートである。図10に示すように、グループ特定部12は、データ分散表11から、各スロットに現れるノードの集合を求める(ステップS1)。ここで、スロットとは、データ分散表11の行を示す。
そして、グループ特定部12は、各スロットに現れるノードの集合のうち、同一のノードを含む集合があるか否かを判定する(ステップS2)。その結果、同一のノードを含む集合がある場合には、グループ特定部12は、同一のノードを含む集合の和集合を求め、元の集合と入れ替え(ステップS3)、ステップS2に戻る。一方、同一のノードを含む集合がない場合には、グループ特定部12は、各集合をグループテーブルに登録し(ステップS4)、処理を終了する。
このように、グループ特定部12がグループテーブル13を作成することにより、死活監視部15は、グループテーブル13を用いてレプリカ共有ノードグループ内で死活監視を行うことができる。
次に、死活監視部15による処理のフローについて説明する。図11は、死活監視部15によるハートビート送信処理のフローを示すフローチャートであり、図12は、死活監視部15による死活判断処理のフローを示すフローチャートである。ここで、ハートビートとは、ノードが正常に動作していることを外部に知らせるために送信する信号である。
図11に示すように、ハートビート送信処理では、死活監視部15は、一定時間待ち(ステップS11)、レプリカ共有ノードグループが同一である全ノードにハートビートを送信する(ステップS12)。そして、死活監視部15は、ステップS11に戻って処理を繰り返す。
また、死活判断処理では、図12に示すように、死活監視部15は、一定時間待ち(ステップ21)、レプリカ共有ノードグループが同一でハートビートが来ていないノードがあるか否かを判定する(ステップS22)。
その結果、レプリカ共有ノードグループが同一でハートビートが来ていないノードがない場合には、死活監視部15は、ステップS21に戻って、処理を繰り返す。一方、レプリカ共有ノードグループが同一でハートビートが来ていないノードがある場合には、死活監視部15は、ハートビートが来ていないノードを故障ノードとしてノード状態テーブル16に登録する(ステップS23)。すなわち、死活監視部15は、ハートビートが来ていないノードについてノード状態テーブル16の状態を「異常」とする。
このように、死活監視部15は、レプリカ共有ノードグループが同一であるノードだけを対象として死活監視を行うので、死活監視のオーバーヘッドを減らし、データアクセス性能を高めることができる。
次に、ノード選択部18によるリカバリノード選択処理のフローについて説明する。図13は、ノード選択部18によるリカバリノード選択処理のフローを示すフローチャートである。図13に示すように、ノード選択部18は、ノード状態テーブル16から故障ノードを選択する(ステップS31)。
そして、ノード選択部18は、故障ノードの持つスロットのハッシュ範囲の最も若いレプリカ担当が自ノードであるか否かを判定し(ステップS32)、自ノードでない場合には、リカバリ担当ではないので、処理を終了する。ここで、故障ノードの持つスロットとは、故障ノードがデータを持つスロットである。
一方、故障ノードの持つスロットのハッシュ範囲の最も若いレプリカ担当が自ノードである場合には、ノード選択部18は、自ノードが属するレプリカ共有ノードグループから同じレプリカを持たず負荷が最低のノードをデータの復元先として選択する(ステップS33)。ここで、ノード選択部18は、アクセス表17を参照し、アクセス数が最も少ないサーバを負荷が最低のノードとして選択する。
そして、ノード選択部18は、選択するノードがあるか否かを判定し(ステップS34)、ある場合にはステップS36に進む。一方、選択するノードがない場合には、ノード選択部18は、ノード数最小のレプリカ共有ノードグループを求め、求めたグループ内の負荷が最低のノードを選択する(ステップS35)。そして、ノード選択部18は、選択したノードを復元先ノードとする(ステップS36)。
このように、ノード選択部18は、自ノードが属するレプリカ共有ノードグループから復元先ノードを優先的に選択することで、ノード故障時に死活監視オーバーヘッドの増加を抑制することができる。
次に、負荷均等化部20による対象選択処理のフローについて説明する。図14は、負荷均等化部20による対象選択処理のフローを示すフローチャートである。図14に示すように、負荷均等化部20は、アクセス表17から負荷を取得する(ステップS41)。
そして、負荷均等化部20は、取得した負荷が高負荷閾値を越えているか否かを判定し(ステップS42)、高負荷閾値を越えていない場合には、ステップS41に戻る。一方、高負荷閾値を越えている場合には、負荷均等化部20は、自ノードを移動元ノードとして選択する(ステップS43)。
そして、負荷均等化部20は、自ノードが属するレプリカ共有ノードグループから負荷が低負荷閾値以下のノードを選択し(ステップS44)、選択すべきノードがあるか否かを判定する(ステップS45)。その結果、選択すべきノードがある場合には、負荷均等化部20は、ステップS48に移動する。
一方、選択すべきノードがない場合には、負荷均等化部20は、負荷が低負荷閾値以下のノードで、属するレプリカ共有ノードグループのノード数が最小のノードを選択し(ステップS46)、選択すべきノードがあるか否かを判定する(ステップS47)。その結果、選択すべきノードがない場合には、移動先ノードが選択できなかったので、負荷均等化部20は、ステップS41に戻る。一方、選択すべきノードがある場合には、負荷均等化部20は、選択したノードを移動先ノードとする(ステップS48)。
このように、負荷均等化部20は、移動元ノードが属するレプリカ共有ノードグループから移動先ノードを優先的に選択することで、負荷均等化時に死活監視オーバーヘッドの増加を抑制することができる。
次に、データ複製部19によるデータ複製処理のフローについて説明する。図15は、データ複製部19によるデータ複製処理のフローを示すフローチャートである。図15に示すように、データ複製部19は、ノード選択部18により選択されたノードに、データ分散表11から求めたレプリカをコピーする(ステップS51)。そして、データ複製部19は、全ノードのデータ分散表11を更新する(ステップS52)。
このように、データ複製部19は、ノード選択部18により選択されたノードに、データ分散表11から求めたレプリカをコピーすることで、故障したノードのデータを復元することができる。
次に、データ移動部21によるデータ移動処理のフローについて説明する。図16は、データ移動部21によるデータ移動処理のフローを示すフローチャートである。図16に示すように、データ移動部21は、負荷均等化部20により選択された移動元ノードのデータの一つを移動先ノードに移動する(ステップS61)。そして、データ移動部21は、全ノードのデータ分散表11を更新する(ステップS62)。
このように、データ移動部21は、負荷均等化部20により選択された移動元ノードのデータの一つを移動先ノードに移動することで、ノード間で負荷を均等化することができる。
次に、実施例に係る情報処理システム100によるリカバリ処理の一例について説明する。図17は、実施例に係る情報処理システム100によるリカバリ処理の一例を示す図である。
データ分散表11に示すように、ハッシュ範囲が「00〜aa」であるデータについては、サーバAが第1のレプリカを記憶し、サーバBが第2のレプリカを記憶し、サーバCが第3のレプリカを記憶している。また、ハッシュ範囲が「aa〜bb」であるデータについては、サーバBが第1のレプリカを記憶し、サーバCが第2のレプリカを記憶し、サーバDが第3のレプリカを記憶している。
したがって、グループテーブル13に示すように、サーバA、サーバB、サーバC及びサーバDは同一のレプリカ共有ノードグループ「1」に含まれる。また、所属グループ記憶部14が示すように、各サーバの所属グループは「1」である。
また、アクセス表17に示すように、サーバAへのアクセス数は「30」であり、サーバBへのアクセス数は「20」であり、サーバCへのアクセス数は「10」であり、サーバDへのアクセス数は「10」である。また、ノード状態テーブル16に示すように、サーバA、サーバB、サーバC及びサーバDの状態は「正常」である。
また、サーバAは、サーバB、サーバC及びサーバDへハートビートを送信する。同様に、サーバB、サーバC及びサーバDは、レプリカ共有ノードグループが同一であり他のサーバにハートビートを送信する。
このような状態でサーバAが故障したとすると、サーバB、サーバC及びサーバDの死活監視部15は、サーバAの故障を検出する(ステップS71〜ステップS73)。そして、各サーバの死活監視部15は、ノード状態テーブル16を更新し、サーバAの状態を「異常」に変更する。
そして、サーバBは、同一グループの正常なサーバの中で、サーバAが記憶する「データ00〜aa」について最も若い第2のレプリカを記憶しているため、サーバBのノード選択部18が復元先ノードとしてサーバDを選択する(ステップS74)。ここで、「データ00〜aa」とは、ハッシュ値が「00〜aa」であるデータである。
そして、サーバBのデータ複製部19が、「データ00〜aa」をサーバDにコピーし(ステップS75)、全ノードのデータ分散表11を更新する(ステップS76)。この結果、ハッシュ範囲「00〜aa」のデータについては、サーバBが第1のレプリカを記憶し、サーバDが第2のレプリカを記憶し、サーバCが第3のレプリカを記憶する。
一方、サーバC及びサーバDは、同一グループの正常なサーバの中で、サーバAが記憶する「データ00〜aa」について最も若いレプリカを記憶していないので、サーバC及びサーバDのノード選択部18は復元先ノードを選択しない。
このように、サーバAが故障すると、サーバBがリカバリ処理を行うことにより、サーバAが記憶していたデータを情報処理システム100内で回復することができる。
上述してきたように、実施例では、グループテーブル13がレプリカ共有ノードグループに属するサーバの識別子を記憶し、死活監視部15がグループテーブル13を参照してレプリカ共有ノードグループが同一のサーバだけを対象として死活監視を行う。したがって、情報処理システム100は、死活監視のオーバーヘッドを減らすことができ、データアクセス性能を高めることができる。
また、実施例では、データ分散表11がハッシュ範囲毎に第1のレプリカ〜第3のレプリカをそれぞれ記憶するサーバの識別子を記憶し、グループ特定部12がデータ分散表11を参照してレプリカ共有ノードグループを生成し、グループテーブル13に書込む。したがって、情報処理装置1は、グループテーブル13を自動的に作成することができ、システム管理者の負担を軽減することができる。
また、実施例では、いずれかのサーバが故障したときに、ノード選択部18がデータの復元先のサーバをレプリカ共有ノードグループが故障サーバと同一であるグループから優先的に選択する。したがって、情報処理システム100は、サーバが故障したときのリカバリ処理で死活監視オーバーヘッドが増加することを抑制できる。
また、実施例では、いずれかのサーバの負荷が高いときに、負荷均等化部20がデータの移動先のサーバをレプリカ共有ノードグループが負荷が高いサーバと同一であるグループから優先的に選択する。したがって、情報処理システム100は、負荷均等化処理で死活監視オーバーヘッドが増加することを抑制できる。
また、実施例では、情報処理装置について説明したが、情報処理装置が有する機能構成をソフトウェアによって実現することで、同様の機能を有し情報処理装置を制御する制御プログラムを得ることができる。そこで、実施例に係る情報処理装置のハードウェア構成について説明する。
図18は、実施例に係る情報処理装置のハードウェア構成を示す図である。図18に示すように、情報処理装置200は、メインメモリ210と、CPU220と、LANインタフェース230と、HDD240と、スーパーIO250と、DVI(Digital Visual Interface)260と、ODD(Optical Disk Drive)270とを有する。
メインメモリ210は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU220は、メインメモリ210からプログラムを読み出して実行する中央処理装置である。CPU220は、メモリコントローラを有するチップセットを含む。
LANインタフェース230は、情報処理装置200をLAN経由で他の情報処理装置に接続するためのインタフェースである。HDD240は、プログラムやデータを格納するディスク装置であり、スーパーIO250は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI260は、液晶表示装置を接続するインタフェースであり、ODD270は、DVDの読み書きを行う装置である。
LANインタフェース230は、PCIエクスプレスによりCPU220に接続され、HDD240及びODD270は、SATA(Serial Advanced Technology Attachment)によりCPU220に接続される。スーパーIO250は、LPC(Low Pin Count)によりCPU220に接続される。
そして、情報処理装置200において実行される制御プログラムは、DVDに記憶され、ODDドライブ270によってDVDから読み出されて情報処理装置200にインストールされる。あるいは、制御プログラムは、LANインタフェース230を介して接続された他の情報処理システムのデータベースなどに記憶され、これらのデータベースから読み出されて情報巣処理装置200にインストールされる。そして、インストールされた制御プログラムは、HDD240に記憶され、メインメモリ210に読み出されてCPU220によって実行される。
なお、本実施例では、レプリカ共有ノードグループ毎に死活監視を行う場合について説明したが、本発明はこれに限定されるものではなく、例えば、スロット毎にサーバをグループ分けし、グループ内で死活監視を行う場合にも同様に適用することができる。
すなわち、図3に示したデータ分散表11の例では、サーバA〜Hは、{A,B,C}、{B,C,D}、{E,F,G}、{F、G、H}の4つのグループに分けられる。そして、各サーバは、グループ内で死活監視を行う。例えば、サーバAは、1つのグループだけに属し、サーバB及びサーバCと死活監視を行う。一方、サーバBは、2つのグループに属するため、サーバA及びサーバCと死活監視を行うとともにサーバDとも死活監視を行う。
1 情報処理装置
11 データ分散表
12 グループ特定部
13 グループテーブル
14 所属グループ記憶部
15 死活監視部
16 ノード状態テーブル
17 アクセス表
18 ノード選択部
19 データ複製部
20 負荷均等化部
21 データ移動部
100 情報処理システム
200 情報処理装置
210 メインメモリ
220 CPU
230 LANインタフェース
240 HDD
250 スーパーIO
260 DVI
270 ODD

Claims (6)

  1. 同一のデータをそれぞれ記憶する複数の情報処理装置を有する情報処理システムにおいて、
    前記複数の情報処理装置のいずれかは、
    同一のデータを記憶する情報処理装置のうち共通の情報処理装置を含む集合の和集合のグループごとに、各グループに含まれる情報処理装置の識別子を記憶するグループ記憶部と、
    前記グループ記憶部が記憶する前記各グループに含まれる情報処理装置の識別子に基づき、自装置が所属するグループである所属グループに含まれる他の情報処理装置に対して監視を行う監視部と
    を有することを特徴とする情報処理システム。
  2. 前記情報処理装置はさらに、
    同一データの名前にハッシュ関数を適用したハッシュ値の範囲に、前記同一のデータを記憶する情報処理装置の識別子を対応させて記憶するデータ分散記憶部と、
    前記データ分散記憶部が記憶するハッシュ値の範囲と同一のデータを記憶する情報処理装置の識別子との対応関係に基づき、前記グループ記憶部が記憶する各グループに含まれる情報処理装置の識別子を生成する生成部と
    を有することを特徴とする請求項記載の情報処理システム。
  3. 前記情報処理装置はさらに、
    前記監視部が故障と判定した情報処理装置から復元されるデータである復元対象データの移動先の情報処理装置を前記所属グループから選択する選択部と、
    前記選択部が選択した情報処理装置に前記復元対象データを複製する複製部と
    を有することを特徴とする請求項1又は2に記載の情報処理システム。
  4. 前記情報処理装置はさらに、
    前記所属グループ内に他の情報処理装置よりも負荷が高い情報処理装置である高負荷情報処理装置があるかを判定する判定部と、
    前記判定部が判定した高負荷情報処理装置が有するデータのうち、移動の対象となる移動対象データを決定するとともに、決定した前記移動対象データを移動する移動先の情報処理装置を前記所属グループから決定する決定部と、
    前記決定部が前記移動先の情報処理装置として決定した情報処理装置に前記移動対象データを移動する移動部と
    を有することを特徴とする請求項1〜のいずれか1項に記載の情報処理システム。
  5. 情報処理システムに含まれ、同一のデータをそれぞれ記憶する複数の情報処理装置のいずれかを制御する情報処理装置の制御プログラムにおいて、
    前記情報処理装置に、
    同一のデータを記憶する情報処理装置のうち共通の情報処理装置を含む集合の和集合のグループごとに、各グループに含まれる情報処理装置の識別子を、前記情報処理装置が有するグループ記憶部に記憶させ、
    前記グループ記憶部が記憶する各グループに含まれる情報処理装置の識別子に基づき、自装置が所属するグループである所属グループに含まれる他の情報処理装置に対して監視させることを特徴とする情報処理装置の制御プログラム。
  6. 同一のデータをそれぞれ記憶する複数の情報処理装置を有する情報処理システムの制御方法において、
    前記複数の情報処理装置のいずれかが、
    同一のデータを記憶する情報処理装置のうち共通の情報処理装置を含む集合の和集合のグループごとに、各グループに含まれる情報処理装置の識別子を、前記情報処理装置が有するグループ記憶部に記憶し、
    前記グループ記憶部が記憶する各グループに含まれる情報処理装置の識別子に基づき、自装置が所属するグループである所属グループに含まれる他の情報処理装置に対して監視することを特徴とする情報処理システムの制御方法。
JP2013059039A 2013-03-21 2013-03-21 情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法 Active JP6028641B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013059039A JP6028641B2 (ja) 2013-03-21 2013-03-21 情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法
US14/199,466 US9378078B2 (en) 2013-03-21 2014-03-06 Controlling method, information processing apparatus, storage medium, and method of detecting failure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013059039A JP6028641B2 (ja) 2013-03-21 2013-03-21 情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法

Publications (2)

Publication Number Publication Date
JP2014186383A JP2014186383A (ja) 2014-10-02
JP6028641B2 true JP6028641B2 (ja) 2016-11-16

Family

ID=51570055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013059039A Active JP6028641B2 (ja) 2013-03-21 2013-03-21 情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法

Country Status (2)

Country Link
US (1) US9378078B2 (ja)
JP (1) JP6028641B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10810163B2 (en) 2016-01-27 2020-10-20 Hitachi, Ltd. Storage management computer, storage management method, and recording medium
WO2018235132A1 (en) * 2017-06-19 2018-12-27 Hitachi, Ltd. DISTRIBUTED STORAGE SYSTEM
JP6977473B2 (ja) * 2017-10-20 2021-12-08 富士通株式会社 ストレージ装置及びバックアッププログラム
US11010363B2 (en) 2018-04-05 2021-05-18 Sap Se Complementing existing tables while grouping tables in a distributed database
US11003693B2 (en) * 2018-04-05 2021-05-11 Sap Se Grouping tables with existing tables in a distributed database
CN110874382B (zh) * 2018-08-29 2023-07-04 阿里云计算有限公司 一种数据写入方法、装置及其设备
US10992563B2 (en) * 2019-04-30 2021-04-27 Google Llc Systems and methods of monitoring network devices
US11544294B2 (en) 2020-12-10 2023-01-03 Sap Se Distributing tables in a distributed database using consolidated grouping sources

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4313978B2 (ja) * 2002-03-19 2009-08-12 日本電気株式会社 計算機監視方式、計算機監視方法および計算機監視用プログラム
EP2350876A2 (en) 2008-10-03 2011-08-03 Telefonaktiebolaget LM Ericsson (publ) Monitoring mechanism for a distributed database
US8515915B2 (en) * 2010-09-24 2013-08-20 Hitachi Data Systems Corporation System and method for enhancing availability of a distributed object storage system during a partial database outage
JP2012221419A (ja) * 2011-04-13 2012-11-12 Hitachi Ltd 情報記憶システム及びそのデータ複製方法

Also Published As

Publication number Publication date
US20140289562A1 (en) 2014-09-25
US9378078B2 (en) 2016-06-28
JP2014186383A (ja) 2014-10-02

Similar Documents

Publication Publication Date Title
JP6028641B2 (ja) 情報処理システム、情報処理装置の制御プログラム及び情報処理システムの制御方法
US10303570B2 (en) Method and apparatus for managing data recovery of distributed storage system
US10467095B2 (en) Engaging a delegate for modification of an index structure
JP5986577B2 (ja) Aluaの選好および状態遷移のホストによる検出および処理
US9286162B2 (en) System and method for guaranteeing consistent data synchronization from a volatile data source
JP4327831B2 (ja) ストレージシステム、管理計算機及びコピーペア監視方法
JP5369807B2 (ja) ストレージ装置
CN111031096A (zh) 一种基于拟态防御的分布式存储系统构建方法
US20140351636A1 (en) Method, device, and system for data reconstruction
US9635109B2 (en) Enhancing reliability of a storage system by strategic replica placement and migration
CN109558260B (zh) Kubernetes故障排除系统、方法、设备及介质
US11023159B2 (en) Method for fast recovering of data on a failed storage device
JP2016510918A (ja) ボリューム複製を目的としたワークロードの特定およびバッファのサイズ設定
US20140351210A1 (en) Data processing system, data processing apparatus, and storage medium
US10127270B1 (en) Transaction processing using a key-value store
US9037762B2 (en) Balancing data distribution in a fault-tolerant storage system based on the movements of the replicated copies of data
CN111752892A (zh) 分布式文件系统及其实现方法、管理系统、设备及介质
US11163642B2 (en) Methods, devices and computer readable medium for managing a redundant array of independent disks
JP5963324B2 (ja) 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
US10379777B2 (en) Method for performing replication control in storage system with aid of relationship tree within database, and associated apparatus
JP6197666B2 (ja) 記憶装置、複製方法及び複製プログラム
JP5891842B2 (ja) ストレージシステム
JP2021149133A (ja) クラスタリングシステム、クラスタリングシステムの運用方法、及びプログラム
US10360107B2 (en) Modifying allocation of storage resources in a dispersed storage network
US20210092184A1 (en) Flexible associativity in multitenant clustered environments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160905

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161003

R150 Certificate of patent or registration of utility model

Ref document number: 6028641

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150