JP6322161B2 - Node, data relief method and program - Google Patents
Node, data relief method and program Download PDFInfo
- Publication number
- JP6322161B2 JP6322161B2 JP2015124412A JP2015124412A JP6322161B2 JP 6322161 B2 JP6322161 B2 JP 6322161B2 JP 2015124412 A JP2015124412 A JP 2015124412A JP 2015124412 A JP2015124412 A JP 2015124412A JP 6322161 B2 JP6322161 B2 JP 6322161B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- data
- server
- original
- failure probability
- 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
Links
Images
Description
本発明は、クラスタ構成の高可用システムを利用したサービスにおいて、大規模な災害等が発生した場合でもサービスを継続するために、災害等により影響を受けないようにデータを救済する技術に関する。 The present invention relates to a technique for relieving data so as not to be affected by a disaster or the like in order to continue the service even when a large-scale disaster or the like occurs in a service using a highly available system having a cluster configuration.
従来のクラスタ構成の高可用システムでは、サービスの利用状況や負荷変動に応じて、クラスタを構成する各サーバ(以下、「ノード」と称する場合がある。)を増設・減設することにより、動的な計算資源の最適化(保守増減設)が実行される。例えば、データの原本(以下、「原本データ」と称する場合がある。)を保持するサーバが故障した場合や、故障の可能性が高い場合に、以下の処理手順(保守減設)が実行される。 In a conventional highly available system with a cluster configuration, each server (hereinafter also referred to as a “node”) that constitutes a cluster can be added and removed in accordance with service usage and load fluctuations. Computational resource optimization (maintenance increase / decrease) is executed. For example, the following processing procedure (maintenance reduction) is executed when a server holding the original data (hereinafter sometimes referred to as “original data”) fails or when there is a high possibility of failure. The
(1)その原本データの複製(以下、「複製データ」と称する場合がある。)を、原本データに昇格させる。
(2)原本データの複製(複製データ)を、予め設定された冗長数を保つように再配置する。
(3)故障したサーバ(故障の可能性の高いサーバ)をクラスタから切り離す。
このような保守減設を行うことにより、原本データを救済し、サービスを継続させている。なお、故障の可能性が高いサーバは、ハードウェアの劣化や異常発熱による温度上昇などの進行性の障害がある場合に検出されたり、SNMP(Simple Network Management Protocol)trapや、syslog等による障害情報や警報等を取得することにより検出されたりする。
(1) Promoting a copy of the original data (hereinafter sometimes referred to as “replicated data”) to the original data.
(2) Rearrange original data replicas (replicated data) so as to maintain a preset redundancy number.
(3) Disconnect a failed server (a server with a high possibility of failure) from the cluster.
By performing such maintenance reduction, the original data is relieved and the service is continued. A server with a high possibility of failure is detected when there is a progressive failure such as a temperature rise due to hardware deterioration or abnormal heat generation, or failure information such as SNMP (Simple Network Management Protocol) trap or syslog. Or being detected by acquiring an alarm or the like.
しかしながら、大規模な災害等が発生した場合において、冗長化している原本データと複製データとが、同じ拠点(データセンタが存在するエリア(以下、「データセンタエリア」と称する場合がある。))に設置されているときには、原本データと複製データとが同時に失われてしまうことが起こり得る。そこで、冗長化している原本データと複製データとが、同時に失われることがないように、原本データと複製データとを異なる拠点のサーバに配置するクラスタ構成の高可用システムが提案されている(特許文献1参照)。 However, when a large-scale disaster or the like occurs, the original data and the duplicated data that are made redundant are the same base (an area where a data center exists (hereinafter sometimes referred to as a “data center area”)). When it is installed in the original data, the original data and the duplicate data may be lost at the same time. In view of this, there has been proposed a highly available system having a cluster configuration in which original data and replicated data are placed on servers at different locations so that redundant original data and replicated data are not lost at the same time (patents). Reference 1).
前記した特許文献1に記載の高可用システムでは、大規模な災害等が発生した場合においても、原本データか複製データのいずれかは失わず、サービスを継続することができる。しかし、大規模災害等に伴う大規模障害が発生し原本データが消失すると、サーバの故障検知の処理を実行し、故障したサーバについては、前記した保守減設の処理を実行することに加え、正常性確認等のためサービス自体を利用するリクエストが増加すること等により、トラヒックが増加する。これにより、システムの性能が不足してしまう上に、遠隔地のサーバへのデータの複製や再配置により、ネットワークコスト(通信コストやインフラコスト)が増大することや、冗長化を実現したシステム(冗長化システム)を再構成するまでの遅延が発生することが課題となる。
また、例えば、緊急地震速報のように、災害の予報から災害までの間が短く、突発的にデータ救済を実施しなければならない場合、保守減設のように複雑な手順を追うと救済が間に合わないことも課題となる。
In the high availability system described in
Also, for example, when the time between a disaster forecast and a disaster is short, such as an earthquake early warning, and data must be relieved suddenly, the relief will be in time if a complicated procedure is followed, such as maintenance reduction. Not being an issue is also an issue.
このような背景を鑑みて本発明がなされたのであり、本発明は、大規模災害等に伴う大規模障害が発生した場合においても、ネットワークコストの増加や、システム再構成の遅延を抑えた上で、原本データを救済することができる、ノード、データ救済方法およびプログラムを提供することを課題とする。 The present invention has been made in view of such a background. The present invention suppresses an increase in network cost and a delay in system reconfiguration even when a large-scale failure occurs due to a large-scale disaster or the like. Therefore, it is an object to provide a node, a data relief method, and a program that can rescue original data.
前記した課題を解決するため、請求項1に記載の発明は、クラスタを構成する複数のノードそれぞれが、処理を担当するデータを、原本データまたは前記原本データの複製である複製データとして保持する分散処理システムの前記ノードであって、前記ノードそれぞれが物理的に設置された地域を示す位置情報と、当該地域に設置された前記ノードの識別子とに対応付けて、前記ノードそれぞれが処理を担当するデータが、前記原本データ、または、当該原本データを保持するノードとは異なる地域に設置されたノードに配置される前記複製データとして格納されるノード管理情報、が記憶される記憶部と、前記位置情報に対応付けた前記ノードそれぞれの、所定時刻における故障確率を示す故障確率情報を受け付け、前記原本データを保持するノードについて、前記故障確率情報を参照し、前記故障確率が所定の閾値を超えるノードを救済ノードとして抽出し、前記抽出した救済ノードが保持する原本データに対応する複製データを保持するノードを、前記ノード管理情報を参照して検出し、前記検出した複製データを保持するノードのうち、前記故障確率情報を参照し、前記故障確率が最も低いノードを交換先ノードとして決定し、前記救済ノードと前記交換先ノードとの間で、前記原本データを処理する機能と前記複製データを処理する機能とを交換するデータ救済部と、を備えることを特徴とするノードとした。
In order to solve the above-described problem, the invention according to
また、請求項2に記載の発明は、クラスタを構成する複数のノードそれぞれが、処理を担当するデータを、原本データまたは前記原本データの複製である複製データとして保持する分散処理システムにおける前記ノードのデータ救済方法であって、前記ノードが、前記ノードそれぞれが物理的に設置された地域を示す位置情報と、当該地域に設置された前記ノードの識別子とに対応付けて、前記ノードそれぞれが処理を担当するデータが、前記原本データ、または、当該原本データを保持するノードとは異なる地域に設置されたノードに配置される前記複製データとして格納されるノード管理情報、が記憶される記憶部を備えており、前記位置情報に対応付けた前記ノードそれぞれの、所定時刻における故障確率を示す故障確率情報を受け付けるステップと、前記原本データを保持するノードについて、前記故障確率情報を参照し、前記故障確率が所定の閾値を超えるノードを救済ノードとして抽出し、前記抽出した救済ノードが保持する原本データに対応する複製データを保持するノードを、前記ノード管理情報を参照して検出し、前記検出した複製データを保持するノードのうち、前記故障確率情報を参照し、前記故障確率が最も低いノードを交換先ノードとして決定するステップと、前記救済ノードと前記交換先ノードとの間で、前記原本データを処理する機能と前記複製データを処理する機能とを交換するステップと、を実行することを特徴とするデータ救済方法とした。 Further, according to the present invention, each of a plurality of nodes constituting a cluster holds the data in charge of processing as original data or duplicate data that is a duplicate of the original data. In the data relief method, each of the nodes performs processing in association with position information indicating an area where each of the nodes is physically installed and an identifier of the node installed in the area. A storage unit in which the data in charge is stored with the original data or node management information stored as the duplicated data arranged in a node installed in a region different from the node holding the original data. Failure probability information indicating failure probability at a predetermined time for each of the nodes associated with the position information is received. And referring to the failure probability information for a node holding the original data, extracting a node having the failure probability exceeding a predetermined threshold as a relief node, and corresponding to the original data held by the extracted relief node The node that holds the duplicate data to be detected is detected with reference to the node management information, and among the nodes that hold the detected duplicate data, the failure probability information is referred to, and the node with the lowest failure probability is exchanged A step of determining as a node, and a step of exchanging a function of processing the original data and a function of processing the duplicated data between the relief node and the exchange destination node. Data relief method was adopted.
このようにすることで、例えば、大規模災害等に伴う大規模障害が発生する前に、故障確率が所定の閾値を超えるノードについては、原本データを処理する機能と複製データを処理する機能とを異なる地域のノード間で交換しておくため、その後大規模障害が発生した場合でも、原本データを消失することなく処理を継続することができる。また、原本データを処理する機能と複製データを処理する機能とを交換するだけであるため、当該データについて複製や再配置をする必要がないため、ネットワークコストの増加や、システム再構成の遅延を抑えた上で、原本データを救済することができる。 By doing so, for example, for a node whose failure probability exceeds a predetermined threshold before a large-scale failure due to a large-scale disaster or the like occurs, a function for processing original data and a function for processing duplicate data Are exchanged between nodes in different regions, so that even if a large-scale failure occurs thereafter, the processing can be continued without losing the original data. In addition, since only the function of processing the original data and the function of processing the replicated data are exchanged, there is no need to replicate or relocate the data, thereby increasing the network cost and delaying the system reconfiguration. The original data can be relieved after the suppression.
請求項3に記載の発明は、請求項2に記載のデータ救済方法を、コンピュータに実行させるためのプログラムとした。
The invention described in claim 3 is a program for causing a computer to execute the data rescue method according to
このようなプログラムによれば、請求項2に記載のデータ救済方法を、一般的なコンピュータで実現することができる。
According to such a program, the data rescue method according to
本発明によれば、大規模災害等に伴う大規模障害が発生した場合においても、ネットワークコストの増加や、システム再構成の遅延を抑えた上で、原本データを救済する、ノード、データ救済方法およびプログラムを提供することができる。 According to the present invention, even when a large-scale failure occurs due to a large-scale disaster or the like, a node and a data relief method for relieving original data while suppressing an increase in network cost and a delay in system reconfiguration And can provide programs.
<比較例の分散処理システム>
まず、本実施形態に係るクラスタ構成の高可用システム(以下、「分散処理システム」ともいう。)の比較例として、前記した特許文献1に係る分散処理システムについて説明する。
<Distributed processing system of comparative example>
First, the above-described distributed processing system according to
特許文献1に係る分散処理システムでは、クラスタを構成する各サーバ(以下、「ノード」と称する場合がある。)が担当するデータをコンシステントハッシュ法に基づき決定する。具体的には、コンシステントハッシュ法では、ノードとデータの双方にID(IDentifier)を割り当てる。そして、各ノードがコンシステントハッシュのID空間(以下、単に「ID空間」と称する場合がある。)にマッピングされることで、各ノードは自身が担当するハッシュIDの範囲(「担当領域」ともいう。)を持つ。データを処理する際には、そのデータを一意に特定するkey情報をハッシュ関数にかけ、導出されたコンシステントハッシュのID空間上の位置から所定の方法(例えば、時計回り)に進んで最初に遭遇するノードが、そのデータの処理を担当するノード(原本データを保持するノード)となる。また、複製データは、ID空間上で時計回り(若しくは、反時計回り)に隣のノードに作成する(冗長数が「2」の場合)。冗長数が「3」以上の場合には、さらに時計回りに隣のノードに、というように複製データを作成していく。なお、冗長数は、原本データを保持するノードと複製データを保持するノードとを合わせた数である。
このようにすることにより、原本データを保持するノードが故障等の理由によりクラスタから離脱しても、そのデータへの問い合わせを、複製データを保持するノードに振り分けることで、処理を継続することが可能となる。
In the distributed processing system according to
In this way, even if the node that holds the original data leaves the cluster due to a failure or the like, the process can be continued by distributing the inquiry to the data to the node that holds the duplicate data. It becomes possible.
上記のような、コンシステントハッシュ法によるデータ管理手法は、クラスタを構成するノードの追加や離脱に伴うデータの移行が全データに対する一部のデータに限られるため、クラスタ構成の動的な変更(ノードの追加・離脱)が頻繁に起こるシステムに対して有効である。また、クラスタを構成するノードの障害に備えて、原本データを保持するノード以外の1つ以上のノードに対して複製データを保持させることで、耐故障性を高めている。しかしながら、ノードの物理的な配置(エリア等の位置情報)を考慮しないと、大規模災害等による大規模故障が発生した場合、該当データを保持したすべてのノードに障害が同時に発生してしまう可能性がある。以下、具体的に説明する。 As described above, the data management method based on the consistent hash method dynamically changes the cluster configuration because the data migration associated with the addition or removal of the nodes constituting the cluster is limited to a part of the data. This is effective for systems in which node addition / removal) occurs frequently. Further, in preparation for a failure of a node constituting the cluster, fault tolerance is improved by holding one or more nodes other than the node holding the original data to hold the duplicate data. However, without considering the physical arrangement of nodes (location information of areas, etc.), if a large-scale failure occurs due to a large-scale disaster, a failure may occur simultaneously in all nodes that hold the corresponding data There is sex. This will be specifically described below.
図8は、コンシステントハッシュに基づくデータ管理を行う分散処理システムの各ノードを、物理的に配置した例を示している。図8(a)は、大規模災害等が発生する前の状態を示し、図8(b)は、大規模災害等が発生した後の状態を示している。図8(a)に示すように、コンシステントハッシュのID空間上に、日本全国の各拠点(データセンタエリア)に属する複数のノードを配置し、クラスタを構成している。 FIG. 8 shows an example in which each node of the distributed processing system that performs data management based on the consistent hash is physically arranged. FIG. 8A shows a state before a large-scale disaster or the like occurs, and FIG. 8B shows a state after a large-scale disaster or the like occurs. As shown in FIG. 8A, a plurality of nodes belonging to each base (data center area) in Japan are arranged on the consistent hash ID space to form a cluster.
ここで、関東エリアにおいて、大規模災害等が発生した場合、コンシステントハッシュのID空間上の関東エリアのノードが故障し、ID空間から離脱する。このとき、図8に示すような通常のデータ管理手法では、ノードの物理的な配置(エリア等の位置情報)が考慮されていないため、同じ関東エリアのノードが隣り合うことが想定され、図8(b)に示すように、原本データもその複製データも同時に失われる可能性がある(冗長数「2」の場合)。
このように、冗長化している原本データと複製データとが、同時に失われることがないように、原本データと複製データとを異なる拠点のサーバに配置する手法が、特許文献1に係る分散処理システムで提案されている。
When a large-scale disaster or the like occurs in the Kanto area, a node in the Kanto area on the consistent hash ID space fails and leaves the ID space. At this time, in the normal data management method as shown in FIG. 8, since the physical arrangement of nodes (position information of areas and the like) is not considered, it is assumed that nodes in the same Kanto area are adjacent to each other. As shown in FIG. 8B, there is a possibility that both the original data and the duplicated data may be lost at the same time (in the case of the redundancy number “2”).
In this way, the distributed data processing system according to
特許文献1に係る分散処理システムでは、大規模災害等に伴う大規模障害が発生し、コンシステントハッシュのID空間上で連続するM個(M≧2,Mは「冗長数」)のノードが同時に離脱した場合においても、原本データおよび複製データの両方が消失することを防ぐため、少なくともM−X個は、新たに挿入するノードの拠点(データセンタエリア)と異なる拠点のノードに複製データを配置するようにして、ID空間へのノード挿入位置決定処理を実行する。ここで、X(1≦X<M)は、あるデータ(原本データおよび複製データの合計M個)について大規模災害等の大規模障害で同時に失われて良いと設定するデータ数である。なお、M−X個は、大規模障害後でも失われない、拠点が異なるノードの数に相当する。
In the distributed processing system according to
以下、図9および図10を参照して、特許文献1に係る分散処理システムにおける、ノード挿入位置決定処理を説明する。
図9は、特許文献1に係る分散処理システムが行う、ノード参加時のID空間におけるノード挿入位置決定処理の流れを示すフローチャートである。また、図10は、ノード参加時のID空間におけるノード挿入位置決定処理を説明するための図である。なお、このノード挿入位置決定処理は、特許文献1に係る分散処理システムの各ノードから選出された特定のノード(特権ノード)が行ってもよいし、分散処理システムの全体を管理する管理装置等が行ってもよいが、ここでは、当該分散処理システムを構成する特権ノード(以下、単に「ノード」という。)が行うものとして説明する。
The node insertion position determination process in the distributed processing system according to
FIG. 9 is a flowchart showing a flow of node insertion position determination processing in the ID space performed by the distributed processing system according to
まず、拠点(データセンタエリア)毎に、クラスタを構成するすべてのノードの数(一つの物理ノードに複数の仮想ノードを割り当てている場合には、仮想ノードの数)を合計した値を算出する(ステップS1)。 First, for each base (data center area), a total value of the number of all nodes constituting the cluster (or the number of virtual nodes when a plurality of virtual nodes are assigned to one physical node) is calculated. (Step S1).
続いて、ステップS1で算出した拠点の合計値が、最も小さい拠点のサーバ(ノード)を選択する(ステップS2)。
図10では、例として「○(白丸)」の拠点(データセンタエリア)に属する待機中のサーバが選択されたことを示している(図10のT1)。
Subsequently, the server (node) of the base having the smallest base value calculated in step S1 is selected (step S2).
FIG. 10 shows that a standby server belonging to the base (data center area) of “◯ (white circle)” is selected as an example (T1 in FIG. 10).
次に、所定のID割当手法(例えば、ランダムやID空間上の最大領域を2分割する手法)に従い、ID空間上におけるID(挿入位置)の候補を選択する(ステップS3)。
図10では、例として「△(白三角)」で示される拠点のサーバと、「□(白四角)」で示される拠点のサーバとの間のIDが、挿入位置として選択されたことを示している(図10のT2)。
Next, candidates for IDs (insertion positions) in the ID space are selected according to a predetermined ID assignment method (for example, a method of dividing the maximum region in the ID space at random or into two) (step S3).
FIG. 10 shows that the ID between the base server indicated by “Δ (white triangle)” and the base server indicated by “□ (white square)” is selected as the insertion position as an example. (T2 in FIG. 10).
そして、選択された挿入位置から周囲(左右(両側)それぞれ)M−1個のノードの属する拠点を確認し、M−X個以上のノードの属する拠点が新たに挿入するノードの拠点と異なるか否かを判定する(ステップS4、図10のT3)。なお、「M−X個以上のノードの属する拠点が新たに挿入するノードの拠点と異なる」ことを、以下、「大規模障害に耐えるためのノード挿入条件」と呼ぶことがある。
ここで、この大規模障害に耐えるためのノード挿入条件を満たさない場合は(ステップS4→No)、ステップS3に戻り、所定のID割当手法を用いて、それまでに選択されたID(挿入位置)の候補を除いた上で、再度、挿入位置の選択処理を実行して処理を繰り返す。一方、この大規模障害に耐えるためのノード挿入条件を満たす場合には(ステップS4→Yes)、ステップS3で選択したIDを、新たに参加するノードのID空間上の挿入位置として決定する(ステップS5)。そして、処理を終了する。
Then, from the selected insertion position, the bases to which the surrounding (left and right (both sides)) M-1 nodes belong are confirmed, and whether the bases to which M−X or more nodes belong are different from the bases of the newly inserted nodes. It is determined whether or not (step S4, T3 in FIG. 10). In addition, the fact that “the base where the M−X or more nodes belong is different from the base of the newly inserted node” may be hereinafter referred to as “node insertion condition for withstanding a large-scale failure”.
Here, when the node insertion condition for withstanding this large-scale failure is not satisfied (step S4 → No), the process returns to step S3, and the ID (insertion position) selected so far using a predetermined ID allocation method. ), The insertion position selection process is executed again, and the process is repeated. On the other hand, when the node insertion condition for withstanding this large-scale failure is satisfied (step S4 → Yes), the ID selected in step S3 is determined as the insertion position in the ID space of the newly participating node (step S4). S5). Then, the process ends.
このようにすることで、特許文献1に係る分散処理システムでは、クラスタに新たなサーバが参加する際、その挿入位置の周囲M−1個のノードが属する拠点のうち、M−X個以上のノードの属する拠点が新たに挿入するノードの拠点と異なるように配置することができる。よって、ノード(特権ノード)は、新たなサーバ(ノード)を参加させる際に、このノード挿入位置決定処理に基づく配置をクラスタ内で繰り返すことにより、同一拠点のノードがID空間上で隣接するケースを低減させて、複製データの偏りやノード離脱時のデータ取得の処理の発生を抑制することができる。
しかしながら、前記したように特許文献1に係る分散処理システムでは、大規模災害等に伴う大規模障害が発生し原本データを消失した場合においては、保守減設等を実行するためトラヒックが増加し、システムの性能が不足するとともに、遠隔地のサーバへのデータの複製や再配置により、ネットワークコストが増大することや、冗長化システムを再構成するまでの遅延が発生することが課題となる。この課題を解決するための本発明に係る実施の形態について以下説明する。
By doing so, in the distributed processing system according to
However, as described above, in the distributed processing system according to
<本実施形態の分散処理システム>
次に、本発明を実施するための形態(以下、「本実施形態」と称する。)に係るノード1(図3参照)を含む分散処理システム1000(図1参照)について説明する。
<Distributed processing system of this embodiment>
Next, a distributed processing system 1000 (see FIG. 1) including the node 1 (see FIG. 3) according to a mode for carrying out the present invention (hereinafter referred to as “this embodiment”) will be described.
≪分散システムの全体構成≫
まず、本実施形態に係るノード1を含む分散処理システム1000の全体構成について説明する。
図1は、本実施形態に係るノード1を含む分散処理システム1000の全体構成を示す図である。
≪Overall configuration of distributed system≫
First, the overall configuration of the distributed
FIG. 1 is a diagram showing an overall configuration of a distributed
この分散処理システム1000は、各クライアント2からのメッセージを受け付けるロードバランサ3と、振り分け装置4と、クラスタを構成する複数のノード1とを含んで構成される。ロードバランサ3は、クライアント2からのメッセージを単純なラウンドロビン法等により各振り分け装置4に振り分ける。振り分け装置4は、受信したメッセージを、例えば、コンシステントハッシュ法等に基づき、各ノード1に振り分ける。各ノード1では、メッセージ処理を行い、クライアント2にサービスを提供する。
The distributed
図1においては、振り分け装置4とノード1とを別装置として記載したが、同一サーバ上で別々の機能として動作させることも可能である。また、振り分け装置4も、図1に示すように、クラスタ構成をとることができる。さらに、ロードバランサ3が存在せず、クライアント2から任意の振り分け装置4にメッセージを送信することも可能である。
In FIG. 1, the
≪処理概要≫
本実施形態の分散処理システム1000は、前記した比較例の分散処理システムにおけるノードの物理的な配置(エリア等の位置情報)を考慮したID空間上でのサーバ配置を実行することに加え、大規模災害等に伴う大規模障害の発生に備えて、以下の処理を実行する。
≪Process outline≫
The distributed
まず、本実施形態に係る分散処理システム1000では、将来発生が予測される大規模災害等により各拠点のサーバが故障する確率を示す情報(以下、「故障確率情報」と称する。)を外部装置等から受信する。そして、その故障確率が所定の閾値を超えるサーバ(後記する「救済サーバ」(救済ノード))を抽出する(図2の符号a参照)。次に、抽出したサーバが保持する原本データに対応する複製データを保持するサーバ(異なる地域に位置するサーバ)を検索し、その複製データを保持するサーバのうち、故障確率が最も低いサーバを交換先サーバ(交換先ノード)として決定する(図2の符号b参照)。そして、その決定した複製データを保持するサーバ(交換先サーバ)と、原本データを保持するサーバ(救済サーバ)とにおいて、原本と複製の役割を交換する(図2の符号c参照)。つまり、複製データを原本データに昇格させ、当該複製データを保持していたサーバ(交換先サーバ)が、当該データの処理(原本データに対する処理)を担当する。一方、原本データを複製データに降格させ、原本データを保持していたサーバ(救済サーバ)は、役割変更以後にそのデータの処理(原本データに対する処理)を行わず、保持していた原本データを複製データとして処理する。
First, in the distributed
図2においては、故障確率が所定の閾値を超えるとして抽出されたサーバ(救済サーバ)が保持する原本データ「Original(図2においては、「O」と記載。)」に対応する2つの複製データ「Replica(図2においては「R1」「R2」と記載。)」のうち、故障確率が最も低いサーバとして「R1」の複製データを保持するサーバが交換先サーバとして決定される例を示している。そして、原本データ「O」を保持するサーバ(救済サーバ)と、複製データ「R1」を保持するサーバ(交換先サーバ)とにおいて、原本と複製の役割を交換する。 In FIG. 2, two replicated data corresponding to the original data “Original (indicated as“ O ”in FIG. 2)” held by the server (relief server) extracted as the failure probability exceeds a predetermined threshold value. Of “Replica” (described as “R 1 ” and “R 2 ” in FIG. 2) ”, an example in which the server holding the replicated data of“ R 1 ”as the server with the lowest failure probability is determined as the replacement server Is shown. Then, the role of the original and the copy is exchanged between the server holding the original data “O” (relief server) and the server holding the duplicate data “R 1 ” (exchange destination server).
このようにすることにより、本実施形態に係るノード1を含む分散処理システム1000では、大規模災害等に伴う大規模障害が発生する前に、原本と複製の役割を異なる地域のノード間で適切に交換しておくため、その後大規模障害が発生した場合でも、原本データを消失することなく処理を継続することができる。また、原本と複製の役割を交換するだけであるため、当該データについて複製や再配置をする必要がないため、大規模障害が発生した場合において、ネットワークコストの増加や、システム再構成の遅延を抑えた上で、原本データを救済することができる。
以下、本実施形態に係るノード1の具体的な構成および処理について説明する。
In this way, in the distributed
Hereinafter, a specific configuration and processing of the
<ノード>
次に、本実施形態に係る分散処理システム1000を構成するノード1について、具体的に説明する。なお、本実施形態に係るノード1は、分散処理システム1000の複数のノード1のうち、後記するノード管理テーブル100(ノード管理情報)を管理する特権ノードとなる場合と、特権ノードからノード管理テーブル100の情報を受け取り自身のノード管理テーブル100を更新する特権ノードではない場合とが存在する。なお、特権ノードが行う処理等については、後記する。
<Node>
Next, the
図3は、本実施形態に係るノード1の構成例を示す機能ブロック図である。
ノード1は、図1に示したように、各振り分け装置4と通信可能に接続されると共に、クラスタを構成する自身以外の他のノード1とも通信可能に接続される。そして、クライアント2からのメッセージを受信し、サービスを提供する。また、このノード1は、自身が原本データとして保持する情報を、予め設定された冗長数に応じて、他のノード1に対して送信することにより、他のノード1に複製データを保持させる。
なお、本実施形態に係るノード1のデータ管理手法として、コンシステントハッシュ法に基づき、データの振り分け先や複製先を決定する例を以下において説明するが、本発明は、コンシステントハッシュ法に限定されず、複数のノード1がクラスタ構成され、原本データとそれに対応する複製データとを分散してデータ処理するシステムであれば適応可能である。
このノード1は、図3に示すように、制御部10と、入出力部11と、記憶部12とを含んで構成される。
FIG. 3 is a functional block diagram illustrating a configuration example of the
As shown in FIG. 1, the
Note that, as an example of the data management method of the
As illustrated in FIG. 3, the
入出力部11は、振り分け装置4や、自身以外の他のノード1との間の情報の入出力を行う。また、この入出力部11は、通信回線を介して情報の送受信を行う不図示の通信インタフェースと、不図示のキーボード等の入力手段やモニタ等の出力手段等との間で入出力を行う入出力インタフェースとから構成される。
The input /
記憶部12は、ハードディスクやフラッシュメモリ、RAM(Random Access Memory)等の記憶手段からなり、処理の対象となる原本データや複製データ(いずれも不図示)、ノード管理テーブル100(図4参照)や、死活監視テーブル200(図5参照)、故障確率情報300(図6参照)等が記憶される。なお、ノード管理テーブル100、死活監視テーブル200および故障確率情報300の詳細は後記する。また、記憶部12には、各パラメータの値(M:冗長数、X:M個のうち大規模障害で同時に失われて良いと設定するデータ数、後記する判定に用いる所定の閾値)が記憶される。
The storage unit 12 includes storage means such as a hard disk, a flash memory, and a RAM (Random Access Memory), and original data and duplicated data (both not shown) to be processed, a node management table 100 (see FIG. 4), A life / death monitoring table 200 (see FIG. 5), failure probability information 300 (see FIG. 6), and the like are stored. Details of the node management table 100, the alive monitoring table 200, and the
制御部10は、ノード1全体の制御を司り、図3に示すように、ノード管理部101、ノード配置決定部102、メッセージ処理部103、データ複製処理部104、死活監視部105、データ救済部106を含んで構成される。このうちデータ救済部106は、さらに、故障情報受付部107、データ検索部108および原本・複製交換処理部109の機能を含んで構成される。
また、この制御部10は、例えば、記憶部12に格納されたプログラムをCPU(Central Processing Unit)がRAMに展開し実行することで実現される。
The
The
ノード管理部101は、クラスタを構成する各ノード1に関する識別情報や、担当データの情報、物理位置(データセンタエリア等の位置情報)に関する情報、原本・複製交換情報(詳細は後記)等を、ノード管理テーブル100(ノード管理情報:図4参照)として管理する。ノード管理部101は、自身が特権ノードである場合に、クラスタへのノード1の追加や離脱の情報を受信し、自身が保持するノード管理テーブル100の情報を更新する。そして、ノード管理部101は、その更新したノード管理テーブル100の更新情報を、クラスタ内の自身以外の他のノード1や振り分け装置4に送信する。
また、ノード管理部101は、自身が特権ノードではない場合には、特権ノードからノード管理テーブル100の情報(更新情報)を受信し、自身が保持するノード管理テーブル100を更新する。
このようにすることにより、クラスタ内の各ノード1や各振り分け装置4は、常に、同一内容のノード管理テーブル100を備える。
The
Further, when the
In this way, each
なお、ノード管理部101は、ノード管理テーブル100が更新された場合、つまり、ノード1の追加や離脱があった場合に、データ複製処理部104に対して、原本データや複製データの再配置を実行させるため、データ複製指示を出力する。
Note that when the node management table 100 is updated, that is, when the
図4は、本実施形態に係るノード管理テーブル100(ノード管理情報)のデータ構成例を示す図である。図4に示すように、ノード管理テーブル100は、クラスタを構成する各ノード1のノード識別子110、担当データ120、サーバ名(アドレス)130、地域ID140および原本・複製交換情報150を含んで構成される。
なお、図4(a)は、データ救済部106によるデータ救済処理(詳細は後記)が実行されていない状態を示している。具体的には、原本・複製交換情報150のデータ項目に何も情報が格納されていない。これに対し、図4(b)は、データ救済部106によるデータ救済処理が実行中である状態を示している。具体的には、原本・複製交換情報150のデータ項目に、「原本と複製の役割を交換したことを示す情報」が格納される。
ここでは、図4(a)の状態におけるノード管理テーブル100について説明し、図4(b)の状態におけるノード管理テーブル100については、後記する。
FIG. 4 is a diagram showing a data configuration example of the node management table 100 (node management information) according to the present embodiment. As shown in FIG. 4, the node management table 100 is configured to include a
FIG. 4A shows a state in which data relief processing (details will be described later) by the data relief unit 106 is not executed. Specifically, no information is stored in the data item of the original /
Here, the node management table 100 in the state of FIG. 4A will be described, and the node management table 100 in the state of FIG. 4B will be described later.
ノード識別子110は、コンシステントハッシュ法のID空間上でのノードIDに対応する。また、コンシステントハッシュ法において仮想IDを用いる場合には、ノード識別子110は、仮想ID毎に割り当てられ、ノード管理テーブル100に登録される。そして、このノード管理テーブル100では、例えば、コンシステントハッシュのID空間におけるID(または仮想ID)を昇順に並べて管理する。つまり、ノード管理テーブル100において、ノード識別子110(ノードID)を昇順に並べたときの自身のノード1の行の次の行のノード1が、ID空間上での右隣(時計回りに次)のノード1となる。
例えば、図4においては、コンシステントハッシュのID空間に基づくデータ識別子が「0」から「56」であるデータについては、同図の第1行目に示すノード(ノード識別子「56」、サーバ名「サーバA」であるノード)がそのデータに関する処理(原本データの記憶や更新、データの抽出等を含む)を担当する。同様に、データ識別子が「56」に1を加えた「57」から「172」であるデータについては、第2行目に示すノード(ノード識別子「172」、サーバ名「サーバB」であるノード)がそのデータに関する処理を担当する。以下、同様である。
The
For example, in FIG. 4, for data whose data identifier based on the ID space of the consistent hash is “0” to “56”, the node (node identifier “56”, server name shown in the first row of FIG. The node “server A”) is in charge of processing related to the data (including storage and update of original data, data extraction, etc.). Similarly, for data whose data identifier is “57” to “172” obtained by adding 1 to “56”, the node shown in the second row (the node having the node identifier “172” and the server name “server B”) ) Is in charge of processing related to the data. The same applies hereinafter.
担当データ120には、そのサーバが原本データとして担当するデータのIDが格納される。上記のように、第1行目に示すノード(ノード識別子「56」、サーバ名「サーバA」であるノード)が原本データとして担当するデータのデータIDが「0」〜「56」として格納される。なお、図4においては、データIDが「0」〜「56」であり、「サーバA」が原本データとして管理するデータを、「データa」とまとめて表記する。
同様に、第2行目に示すノード(ノード識別子「172」、サーバ名「サーバB」であるノード)が原本データとして担当するデータとして、「データb」(データIDが「57」〜「172」)が格納される。以下同様である。
In
Similarly, “data b” (data IDs “57” to “172”) is the data that the node shown in the second row (the node having the node identifier “172” and the server name “server B”) takes charge of as the original data. ") Is stored. The same applies hereinafter.
サーバ名(アドレス)130は、クラスタを構成する各ノード1の識別子を表す。このサーバ名130は、ノード1それぞれのアドレス(例えば、IPアドレス)に対応付けられて記憶される。
The server name (address) 130 represents the identifier of each
地域ID140は、物理位置(データセンタエリア等の位置情報)に関する情報である拠点(K箇所)の識別子を表す。例えば、地域ID140が「00」は「拠点α(九州エリア)」を表し、地域ID140「01」は、「拠点β(関西エリア)」を表し、地域ID140が「02」は、「拠点γ(関東エリア)」を表す。
原本・複製交換情報(交換先サーバ)150については、後記するが、データ救済部106によるデータ救済処理が実行されていない状態では、何も情報が格納されていないものとなる。
The
The original / duplicate exchange information (exchange destination server) 150 will be described later, but no information is stored in a state where the data relief processing by the data relief unit 106 is not executed.
なお、このノード管理テーブル100のノード識別子110は、特権ノードのノード管理部101が各ノード1に対して付与することもできるし、外部装置(例えば、ネットワーク管理装置等)が各ノード1に対して付与したノード識別子110を受信して格納することも可能である。また、特権ノードを設けず、分散処理システム1000についての管理装置を設け、その管理装置が、ノード管理テーブル100に関するノード1の離脱や追加(参加)を管理し、更新したノード管理テーブル100を各ノード1に配信するようにしてもよい。
さらに、このノード管理テーブル100には、処理で必要となる他の付加情報(例えば、各ノード1のクラスタへの参加日時等)を加えることも可能である。
Note that the
Furthermore, it is also possible to add other additional information (for example, the date and time of joining each
このノード管理部101は、自身が特権ノードである場合に、自身の死活監視部105や、特権ノードでない他のノード1、外部装置(ネットワーク管理装置等)から、ノード1の離脱の情報を受信した場合に、ノード管理テーブル100において、その離脱させるノード1の情報(ノード識別子110、担当データ120、サーバ名(アドレス)130、地域ID140および原本・複製交換情報150)を含むレコードを削除する。
また、ノード管理部101は、自身が特権ノードである場合に、ノード管理テーブル100において、新たに追加するノード1の情報(ノード識別子110、担当データ120、サーバ名(アドレス)130、地域ID140および原本・複製交換情報150)を含むレコードを、ノード配置決定部102が決定した位置に挿入する。
When the
In addition, when the
ノード配置決定部102は、自身が特権ノードである場合に、自身の死活監視部105や、特権ノードでない他のノード1、外部装置(ネットワーク管理装置等)から、ノード1の追加(参加)の情報を受信し、ID空間(ノード管理テーブル100)に新たなノードを追加しようとするとき、次のようなノード挿入位置決定処理を行う。なお、このノード挿入位置決定処理は、図9および図10を参照して説明した処理と同様の処理である。
ノード配置決定部102は、新たなノードを追加するノードIDの周囲(左右それぞれ)M−1個のノードのうちM−X個以上のノードが、追加するノードが属する拠点(データセンタエリア)と異なる拠点(データセンタエリア)となるように配置を決定する。つまり、ノード配置決定部102は、M−X個のノードの拠点および追加するノードの拠点のそれぞれが異なる拠点となるようなID空間の挿入位置を、新たに追加するノードの挿入位置として決定する。そして、ノード配置決定部102は、ノード管理部101を介して、新たに追加するノード1の情報をノード管理テーブル100の決定した挿入位置に挿入させる。
このノード配置決定部102が実行するノード挿入位置決定処理に基づく配置をクラスタ内で繰り返すことにより、同一拠点のノードがID空間上で隣接するケースを低減させて、複製データの偏りやノード離脱時のデータ取得の処理の発生を抑制することができる。
When the node
The node
By repeating the arrangement based on the node insertion position determining process executed by the node
メッセージ処理部103は、振り分け装置4から振り分けられたメッセージを受信し、そのメッセージの処理を実行し、処理結果をクライアント2に返信することにより、サービスを提供する。また、メッセージ処理部103は、メッセージの処理に必要なデータをそのノード1自身が保持していなかった場合には、他のノード1(ノード管理テーブル100で自身の次の行のノード1、さらに、その次の行のノード1等)に要求すること等により、そのデータを取得することが可能である。
また、メッセージ処理部103は、受信したメッセージの処理により、原本データを新たに格納したり、更新したりした場合には、新たに格納した原本データや更新後の原本データを複製して、複製データとして他のノードに格納させるため、データ複製処理部104に対して、データ複製指示を出力する。
The
In addition, when the original message data is newly stored or updated by processing of the received message, the
さらに、メッセージ処理部103は、メッセージを受信した際に、ノード管理テーブル100を参照し、原本・複製交換情報150に、「原本と複製の役割を交換したことを示す情報」が格納されている場合には、当該情報に応じて、原本データを保持する役割のノード1としての処理、または、複製データを保持する役割のノード1としての処理を交換した役割として実行する。なお、詳細は後記する。
Further, when the
データ複製処理部104は、自身が保持するデータ(原本データ)について、ノード管理テーブル100を参照し、自身のレコードの次の(下の)行のノード(つまり、ID空間での右隣のノード)を、複製データを保持させるノードとして選択し、原本データの複製を生成して複製データとして送信する。データ複製処理部104は、冗長数が「M」個の場合に、ノード管理テーブル100を参照し、上記のように自身のレコードの次の行のノード、また、次の行のノードという順(ID空間で右隣、さらに、右隣りの順)に、複製データを保持させるノードを「M−1」個決定して、複製データを送信する。
The data
また、データ複製処理部104は、ノード管理テーブル100の原本・複製交換情報150に「原本と複製の役割を交換したことを示す情報」が格納されている場合において、自身が原本の役割を示す情報が格納されているときには、救済サーバとして格納されているサーバに対して、複製データを送信するとともに、その救済サーバが複製データを送信していたサーバのうち、自身以外のサーバに対して、当該複製データを送信する。つまり、原本データを保持するサーバに代わって、データの冗長度を保持するための複製データの送信処理を実行する。
The data
死活監視部105は、死活監視テーブル200(後記する図5)を参照して、指定されたノード1(例えば、自身の次の行のノード)と所定の時間間隔で死活監視信号のやり取りを行い、クラスタを構成するノード1の障害を検出する。ノード1の障害を検出した場合、死活監視部105は、自身が特権ノードの場合はノード管理部101に、自身が特権ノードでない場合は特権ノードに通知(障害発生通知)を行う。なお、特権ノードを設けず、ノード管理テーブル100を管理する管理装置を設けた場合には、各ノード1の死活監視部105は、その管理装置に対して、障害発生通知を送信する。
The life and
図5は、本実施形態に係る死活監視テーブル200のデータ構成例を示す図である。
死活監視テーブル200は、1台の物理装置を単位として作成され、監視対象となるノード1(サーバ)がリスト化されたものである。死活監視テーブル200には、例えば、サーバ名とそれに紐付くアドレス(IPアドレス)とが記憶される。
FIG. 5 is a diagram illustrating a data configuration example of the life and death monitoring table 200 according to the present embodiment.
The life and death monitoring table 200 is created in units of one physical device, and lists nodes 1 (servers) to be monitored. In the alive monitoring table 200, for example, a server name and an address (IP address) associated with the server name are stored.
死活監視テーブル200は、論理装置(仮想ノード)単位でノードが構成されるパターンを考慮して、その論理装置を構築する物理装置が少なくとも1回は監視対象となるように設定される。また、クラスタを構成するノード1に追加や離脱があった場合、ノード管理テーブル100と同期的に更新されるものとする。よって、ノード管理テーブル100のノード識別子110が、論理装置単位で構成された仮想IDによるものではなく、物理装置単位のIDである場合には、死活監視テーブル200とノード管理テーブル100とについて、同一のものを用いてもよい。また、この場合、死活監視テーブル200を生成せず、ノード管理テーブル100を用いて、死活監視部105が各ノード1の死活監視を行うようにしてもよい。
The alive monitoring table 200 is set so that a physical device that constructs a logical device becomes a monitoring target at least once in consideration of a pattern in which nodes are configured in units of logical devices (virtual nodes). In addition, when there is an addition or withdrawal to the
ここで、クラスタ内における複数のノード1の中から特権ノードを決定する処理について説明する。
各ノード1は、ノード管理テーブル100に付加情報として、前記したように、各ノード1のクラスタへの参加日時等が格納されている場合、その参加日時が古い順に、特権ノードが選択されるようにしてもよい。また、各ノード1は、死活監視テーブル200を参照し、死活監視テーブル200の一番上の行から順に、特権ノードとなるように設定してもよい。
ノード1が新たに特権ノードになった場合、自身が特権ノードであることを示す情報を、各ノード1等に送信する。そして、特権ノードは、クラスタ内のノード1に離脱や追加(参加)があった場合に、自身のノード管理テーブル100を更新し、その更新情報を各ノード1や振り分け装置4等に配信する。
Here, processing for determining a privileged node from among a plurality of
As described above, when each
When
図3に戻り、データ救済部106について説明する。
データ救済部106は、大規模災害等に伴う大規模障害により原本データを消失しないようにする「データ救済処理」を実行する。このデータ救済処理において、データ救済部106は、外部装置(図示省略)から、将来発生が予測される大規模災害等により各拠点のサーバが故障する確率を示す情報(故障確率情報)を受信し、その故障確率が所定の閾値を超えるサーバ(救済サーバ(救済ノード))を抽出する。そして、データ救済部106は、抽出したサーバ(救済サーバ)が保持する原本データに対応する複製データを保持するサーバを検索し、その中から故障確率の最も低いサーバを交換先サーバ(交換先ノード)として決定する。データ救済部106は、その決定した複製データを保持するサーバ(交換先サーバ)と、原本データを保持するサーバ(救済サーバ)とについて、原本データと複製データを処理する役割を交換させる。
このデータ救済部106は、故障情報受付部107と、データ検索部108と、原本・複製交換処理部109とを含んで構成される。
Returning to FIG. 3, the data rescue unit 106 will be described.
The data rescue unit 106 executes “data rescue processing” that prevents original data from being lost due to a large-scale failure caused by a large-scale disaster or the like. In this data relief process, the data relief unit 106 receives information (failure probability information) indicating the probability that a server at each site will fail due to a large-scale disaster that is predicted to occur in the future from an external device (not shown). Then, a server (relief server (relief node)) whose failure probability exceeds a predetermined threshold is extracted. Then, the data rescue unit 106 searches for a server holding duplicate data corresponding to the original data held by the extracted server (relief server), and selects a server with the lowest failure probability from among them as a replacement server (replacement node) ). The data rescue unit 106 exchanges the role of processing the original data and the replicated data for the server (replacement destination server) that retains the determined replicated data and the server (rescue server) that retains the original data.
The data rescue unit 106 includes a failure
故障情報受付部107は、入出力部11を介して、外部装置等から故障確率情報300を受信する。そして、故障情報受付部107は、記憶部12に故障確率情報300を記憶する。故障情報受付部107は、所定の時間間隔で故障確率情報300を受信する場合には、記憶部12に記憶されている故障確率情報300を最新の情報に更新する。また、故障情報受付部107は、不定期に受信する故障確率情報300、例えば、突発的な緊急地震速報に伴い算出された故障確率情報300を受信し、記憶部12に記憶されている故障確率情報300を更新するようにしてもよい。
The failure
図6は、本実施形態に係る故障確率情報300のデータ構成例を示す図である。
故障確率情報300は、各拠点のノード1(サーバ)それぞれが、将来発生が予測される大規模災害等により故障する確率(障害が発生する確率)を示す情報である。なお、大規模災害等とは、例えば、台風や暴風雨、竜巻、落雷、大雨、河川の氾濫、津波、地震等であり、数日若しくは数秒から数時間後に、拠点が位置する地域において、上記災害による物理的な損傷(ネットワークの切断等も含む)や、停電の発生、若しくは、サーバの管理者がサーバ設置施設に近付けない等を含む障害によりサーバが使用不能となる予測される確率を示す情報である。
FIG. 6 is a diagram illustrating a data configuration example of the
The
この故障確率情報300は、地域ID310、サーバ名320、時刻330、故障確率340のデータ項目から構成される。
地域ID310は、図4に示したノード管理テーブル100の地域ID140と同様の情報である。サーバ名320も、図4に示したノード管理テーブル100のサーバ名130と同様の情報である。
時刻330および故障確率340は、地域ID310およびサーバ名320に対応付けて格納される情報である。故障確率340には、時刻330(所定時刻)における当該サーバの故障確率(%)が格納される。なお、図6においては、時刻330は、1時間毎に設定される例を示している。
例えば、故障確率情報300の1行目に示すように、地域ID310が「00(拠点α)」に位置するサーバ名320の「サーバA」は、時刻330で示される「2015年6月1日」の13時から14時の間の故障確率340が「10(%)」、14時から15時の間の故障確率340が「30(%)」であることを示している。
The
The
The
For example, as shown in the first line of the
図3に戻り、データ検索部108は、故障情報受付部107が故障確率情報300を受け付けたこと等を契機として、原本データを保持する各サーバについて、受け付けた故障確率情報300を参照し、例えば、現在時刻を基準として、直近の故障確率を抽出し、所定の閾値を越えているか否かを判定する。
図6に示す故障確率情報300の例では、現在時刻が2015年6月1日の12時50分である場合に、時刻330の「20150601(13:00〜)」を参照し、故障確率340として「10(%)」を抽出する。そして、データ検索部108は、所定の閾値(例えば、20(%))を超えるか否かを判定する。ここでは、データ検索部108は、所定の閾値を超えないと判定する。
また、データ検索部108は、現在時刻が2015年6月1日の13時50分である場合に、時刻330の「20150601(14:00〜)」を参照し、故障確率340として「30(%)」を抽出する。そして、データ検索部108は、予め設定された閾値(例えば、20(%))を超えるか否かを判定する。ここでは、データ検索部108は、所定の閾値を超えると判定する。
Returning to FIG. 3, the
In the example of the
Further, when the current time is 13:50 on June 1, 2015, the
データ検索部108は、所定の閾値を超えるサーバ(救済サーバ)が存在すると判定した場合に、当該サーバ(救済サーバ)が保持する原本データを、ノード管理テーブル100(図4)の担当データ120を参照して抽出する。また、データ検索部108は、当該サーバ(救済サーバ)が保持する原本データの複製データを保持するサーバを検索する。そして、データ検索部108は、検索した複製データを保持するサーバの同時刻における故障確率340を故障確率情報300において参照し、故障確率の最も低いサーバを交換先サーバとして決定する。
When the
原本・複製交換処理部109は、データ検索部108が所定の閾値を超えると判定したサーバ(救済サーバ)と、当該サーバ(救済サーバ)が保持する原本データの複製データを保持するサーバの中から決定された交換先サーバの情報に基づき、原本と複製の役割を交換させる処理を実行する。
具体的には、原本・複製交換処理部109は、ノード管理テーブル100(図4参照)の原本・複製交換情報150の欄において、救済サーバとされたサーバには、原本データを複製データとして扱う旨の情報(図4(b)においては、「原本→複製」)を格納する。このとき、原本・複製交換処理部109は、交換先サーバの識別情報を対応付けて記憶する(図4(b)においては、「交換先サーバ:サーバB」)。
また、原本・複製交換処理部109は、ノード管理テーブル100の原本・複製交換情報150の欄において、交換先サーバとして決定されたサーバには、複製データを原本データとして扱う旨の情報(図4(b)においては、「複製→原本」)を格納する。このとき、原本・複製交換処理部109は、救済サーバの識別情報を対応付けて記憶する(図4(b)においては、「救済サーバ:サーバA」)。
The original / duplicate
Specifically, the original / duplicate
Further, the original / duplicate
このように、ノード管理テーブル100において、原本と複製の役割を交換したサーバの情報を格納しておく。ノード1のメッセージ処理部103は、新たなメッセージを受け付けた場合に、そのデータの原本データを保存するサーバについて、ノード管理テーブル100の原本・複製交換情報150を参照し、原本と複製の役割を交換したことを示す情報が設定されているか否かを確認する。そして、自身のサーバが原本データとして処理すべきデータについて、当該サーバの役割が「原本→複製」となっていた場合には、当該要求を原本データとして処理せず、複製データとして処理すると判定する。一方、メッセージ処理部103は、そのデータについて、ノード管理テーブル100の原本・複製交換情報150を参照し、自身のサーバが原本データとして処理すべきデータではないデータについて、原本と複製の役割を交換したことを示す情報が設定されているか否かを確認し、当該サーバの役割が「原本→複製」となっており、かつ、その交換先サーバとして自身のサーバが設定されている場合には、そのデータを原本データとして処理する。
In this way, in the node management table 100, information of the server whose role of the original and the copy is exchanged is stored. When receiving a new message, the
なお、このとき、データ複製処理部104は、ノード管理テーブル100において、自身のサーバのレコードに格納された原本・複製交換情報150の救済サーバの識別情報を確認し、その救済サーバに対して、メッセージ処理により更新されたデータ(複製データ)を送信する。また、データ複製処理部104は、その救済サーバが複製データを送信していたサーバを、ノード管理テーブル100を参照して抽出し、その抽出したサーバのうち、自身以外のサーバに対して更新された複製データを送信する処理を実行する。このようにすることで、原本データと複製データを再配置することがなく、システム全体としての冗長度を保つことができる。
At this time, the data
また、データ検索部108は、データ救済処理を実行した後、時間が経過し、前回の処理において、救済サーバであると判定したサーバについて、その次のデータ救済処理を実行した場合に、所定の閾値以下となったと判定した場合には、原本・複製交換処理部109を介して、ノード管理テーブル100の原本・複製交換情報150に格納した原本と複製の役割を交換したことを示す情報を消去する。これにより、原本と複製の役割を元の状態に容易に戻すことができる。
In addition, the
<処理の流れ>
次に、本実施形態に係るノード1が実行する、データ救済処理について、図7を参照して説明する。図7は、本実施形態に係るノード1が実行するデータ救済処理の流れを示すフローチャートである。
<Process flow>
Next, data relief processing executed by the
まず、ノード1の故障情報受付部107が、外部装置等から故障確率情報300を受信する(ステップS10)。そして、故障情報受付部107は、受信した故障確率情報300を記憶部12に記憶する。
First, the failure
続いて、ノード1のデータ検索部108は、故障情報受付部107が故障確率情報300を受け付けたこと等を契機として、原本データを保持する各サーバについて、受け付けた故障確率情報300を参照し、例えば、現在時刻を基準として、直近の故障確率を抽出し、所定の閾値(例えば、20(%))を超えているか否かを判定する(ステップS11)。
Subsequently, the
そして、データ検索部108は、原本データを保持するサーバが、所定の閾値を超えていないと判定した場合には(ステップS11→No)、処理を終了する。一方、データ検索部108は、原本データを保持するサーバが、所定の閾値を超えていると判定した場合には(ステップS11→Yes)、当該サーバを原本データの救済が必要なサーバ(救済サーバ)であるとし、当該サーバ(救済サーバ)が保持する原本データ(の識別子)を、ノード管理テーブル100(図4)の担当データ120を参照して抽出する(ステップS12)。
なお、ステップS12以降ステップS16までの処理は、救済サーバとして判定されたサーバ毎に実行される処理である。
If the
Note that the processing from step S12 to step S16 is processing executed for each server determined as the rescue server.
続いて、データ検索部108は、当該サーバ(救済サーバ)が保持する原本データの複製データを保持するサーバを、ノード管理テーブル100を参照して検索する(ステップS13)。具体的には、データ検索部108は、ノード管理テーブル100(図4(a)参照)において、当該サーバ(救済サーバ)の位置する行を基準として、次の「M−1」個の行までに記載されたノードを、複製データを保持するサーバとして検索する。
Subsequently, the
次に、データ検索部108は、検索した複製データを保持するサーバの同時刻における故障確率340を故障確率情報300において参照し、故障確率の最も低いサーバを決定する(ステップS14)。なお、データ検索部108は、故障確率が最も低いサーバが複数存在する場合には、例えば、その中から、ランダムに決定してもよいし、ノード管理テーブル100において救済サーバにより近い行のサーバ(ID空間上でより隣のサーバ)に決定してもよい。
Next, the
そして、データ検索部108は、ステップS14において決定したサーバの故障確率が、前記した所定の閾値(例えば、20(%))を超えるか否かを判定する(ステップS15)。ここで、決定したサーバの故障確率が、所定の閾値を超えていれば(ステップS15→Yes)、処理を終了する。一方、決定したサーバの故障確率が所定の閾値を超えていなければ(ステップS15→No)、データ検索部108は、ステップS14において決定したサーバを交換先サーバとし、次のステップS16に進む。
Then, the
ステップS16において、ノード1の原本・複製交換処理部109は、データ検索部108がステップS11において閾値を超えると判定したサーバ(救済サーバ)と、当該サーバ(救済サーバ)が保持する原本データの複製データを保持するサーバの中から決定された交換先サーバ(ステップS14で決定されたサーバ)の情報に基づき、原本と複製の役割を交換させる処理を実行する。
具体的には、原本・複製交換処理部109は、図4(b)に示す例のように、ノード管理テーブル100の原本・複製交換情報150の欄において、救済サーバとされたサーバには、原本データを複製データとして扱う旨の情報(図4(b)においては、「原本→複製」)を格納する。このとき、原本・複製交換処理部109は、交換先サーバの識別情報を対応付けて記憶する。
また、原本・複製交換処理部109は、ノード管理テーブル100の原本・複製交換情報150の欄において、交換先サーバとして決定されたサーバには、複製データを原本データとして扱う旨の情報(図4(b)においては、「複製→原本」)を格納する。このとき、原本・複製交換処理部109は、救済サーバの識別情報を対応付けて記憶する。
このようにして、救済サーバと判定したすべてのノードについて処理を実行し、ノード1によるデータ救済処理を終了する。
In step S16, the original / copy
Specifically, as shown in FIG. 4B, the original / duplicate
Further, the original / duplicate
In this way, the process is executed for all the nodes determined as the repair server, and the data repair process by the
なお、ノード1のデータ検索部108は、ステップS11において、原本データを保持するサーバが、所定の閾値を超えていると判断した場合に(ステップS11→Yes)、現在時刻から故障確率情報300の時刻330で設定されている時刻までの時間(該当する故障発生確率に至るまでの時間)が、原本と複製の役割を交換に必要となる時間(ステップS16を実行する時間)よりも長いときに、当該所定の閾値を超えたサーバを救済サーバとし、ステップS12以降の処理を実行するようにしてもよい。ここで、原本と複製の役割を交換に必要となる時間は、たとえば、それまでの実測値の平均等に基づき、予め設定しておく。
また、上記の処理の流れの説明では、ステップS15における所定の閾値を、ステップS11での原本データの救済の対象となるサーバを判定する際に用いた閾値と同じ閾値として説明した。しかしながら、ステップS11とステップS15の閾値は同一である必要はなく、別々に任意の値を設定してもよい。
Note that if the
In the above description of the processing flow, the predetermined threshold value in step S15 has been described as the same threshold value used when determining the server that is the target of the original data relief in step S11. However, the threshold values in step S11 and step S15 do not have to be the same, and arbitrary values may be set separately.
以上、説明したように、本実施形態に係るノード1、データ救済方法およびプログラムによれば、大規模災害等に伴う大規模障害が発生する前に、原本と複製の役割を異なる地域のノード間で適切に交換しておくため、その後大規模障害が発生した場合でも、原本データを消失することなく処理を継続することができる。また、原本と複製の役割を交換するだけであるため、当該データについて複製や再配置をする必要がないため、大規模障害が発生した場合において、ネットワークコストの増加や、システム再構成の遅延を抑えた上で、原本データを救済することができる。
As described above, according to the
なお、前記したように、本実施形態に係るノードのデータ管理手法は、コンシステントハッシュ法に限定されるものではなく、複数のノードがクラスタ構成され、原本データとそれに対応する複製データとを分散してデータ処理するシステムであれば適応可能である。例えば、各ノードは、各拠点のサーバに配置されるデータの一覧表を備える。そして、そのデータの一覧表において、各サーバに配置されるデータには、原本データであるか複製データであるかの識別情報が付されるともに、図4おいて示した、原本・複製交換情報150が付される。このようにすることにより、各ノードは、原本と複製の役割を交換したことを示す情報を参照した上で、そのデータを処理することができる。 As described above, the node data management method according to the present embodiment is not limited to the consistent hash method, and a plurality of nodes are clustered to distribute the original data and the corresponding replicated data. Thus, any system that processes data can be applied. For example, each node includes a list of data arranged on the server at each site. In the list of data, the data arranged in each server is given identification information indicating whether it is original data or duplicated data, and the original / replica exchange information shown in FIG. 150 is attached. In this way, each node can process the data after referring to the information indicating that the role of the original and the copy has been exchanged.
1 ノード
2 クライアント
3 ロードバランサ
4 振り分け装置
10 制御部
11 入出力部
12 記憶部
100 ノード管理テーブル(ノード管理情報)
101 ノード管理部
102 ノード配置決定部
103 メッセージ処理部
104 データ複製処理部
105 死活監視部
106 データ救済部
107 故障情報受付部
108 データ検索部
109 原本・複製交換処理部
200 死活監視テーブル
300 故障確率情報
1000 分散処理システム
1
DESCRIPTION OF
Claims (3)
前記ノードそれぞれが物理的に設置された地域を示す位置情報と、当該地域に設置された前記ノードの識別子とに対応付けて、前記ノードそれぞれが処理を担当するデータが、前記原本データ、または、当該原本データを保持するノードとは異なる地域に設置されたノードに配置される前記複製データとして格納されるノード管理情報、が記憶される記憶部と、
前記位置情報に対応付けた前記ノードそれぞれの、所定時刻における故障確率を示す故障確率情報を受け付け、
前記原本データを保持するノードについて、前記故障確率情報を参照し、前記故障確率が所定の閾値を超えるノードを救済ノードとして抽出し、前記抽出した救済ノードが保持する原本データに対応する複製データを保持するノードを、前記ノード管理情報を参照して検出し、前記検出した複製データを保持するノードのうち、前記故障確率情報を参照し、前記故障確率が最も低いノードを交換先ノードとして決定し、
前記救済ノードと前記交換先ノードとの間で、前記原本データを処理する機能と前記複製データを処理する機能とを交換するデータ救済部と、
を備えることを特徴とするノード。 Each of a plurality of nodes constituting the cluster is the node of the distributed processing system that holds data in charge of processing as original data or replicated data that is a duplicate of the original data,
Corresponding to the location information indicating the area where each of the nodes is physically installed and the identifier of the node installed in the area, the data each node is responsible for processing is the original data, or A storage unit for storing node management information stored as the duplicated data arranged in a node installed in a different area from the node holding the original data;
Receiving failure probability information indicating failure probability at a predetermined time for each of the nodes associated with the location information,
For the node holding the original data, refer to the failure probability information, extract a node having the failure probability exceeding a predetermined threshold as a relief node, and copy data corresponding to the original data held by the extracted relief node A node to be held is detected by referring to the node management information, and among the nodes holding the detected duplicate data, the failure probability information is referred to, and the node having the lowest failure probability is determined as a replacement destination node. ,
A data relief unit for exchanging a function for processing the original data and a function for processing the duplicate data between the relief node and the exchange destination node;
A node characterized by comprising:
前記ノードは、
前記ノードそれぞれが物理的に設置された地域を示す位置情報と、当該地域に設置された前記ノードの識別子とに対応付けて、前記ノードそれぞれが処理を担当するデータが、前記原本データ、または、当該原本データを保持するノードとは異なる地域に設置されたノードに配置される前記複製データとして格納されるノード管理情報、が記憶される記憶部を備えており、
前記位置情報に対応付けた前記ノードそれぞれの、所定時刻における故障確率を示す故障確率情報を受け付けるステップと、
前記原本データを保持するノードについて、前記故障確率情報を参照し、前記故障確率が所定の閾値を超えるノードを救済ノードとして抽出し、前記抽出した救済ノードが保持する原本データに対応する複製データを保持するノードを、前記ノード管理情報を参照して検出し、前記検出した複製データを保持するノードのうち、前記故障確率情報を参照し、前記故障確率が最も低いノードを交換先ノードとして決定するステップと、
前記救済ノードと前記交換先ノードとの間で、前記原本データを処理する機能と前記複製データを処理する機能とを交換するステップと、
を実行することを特徴とするデータ救済方法。 Each of a plurality of nodes constituting a cluster is a data recovery method for the nodes in a distributed processing system that holds data in charge of processing as original data or replicated data that is a copy of the original data,
The node is
Corresponding to the location information indicating the area where each of the nodes is physically installed and the identifier of the node installed in the area, the data each node is responsible for processing is the original data, or A node for storing node management information stored as the duplicate data arranged in a node installed in a different area from the node holding the original data;
Receiving failure probability information indicating failure probability at a predetermined time for each of the nodes associated with the position information;
For the node holding the original data, refer to the failure probability information, extract a node having the failure probability exceeding a predetermined threshold as a relief node, and copy data corresponding to the original data held by the extracted relief node A node to be held is detected by referring to the node management information, and a node having the lowest failure probability is determined as a replacement destination node by referring to the failure probability information among nodes holding the detected duplicate data. Steps,
Exchanging a function for processing the original data and a function for processing the duplicated data between the rescue node and the exchange destination node;
A data relief method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015124412A JP6322161B2 (en) | 2015-06-22 | 2015-06-22 | Node, data relief method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015124412A JP6322161B2 (en) | 2015-06-22 | 2015-06-22 | Node, data relief method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017010237A JP2017010237A (en) | 2017-01-12 |
JP6322161B2 true JP6322161B2 (en) | 2018-05-09 |
Family
ID=57761594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015124412A Active JP6322161B2 (en) | 2015-06-22 | 2015-06-22 | Node, data relief method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6322161B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020158016A1 (en) * | 2019-01-29 | 2020-08-06 | 日本電信電話株式会社 | Backup system, method therefor, and program |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4054616B2 (en) * | 2002-06-27 | 2008-02-27 | 株式会社日立製作所 | Logical computer system, logical computer system configuration control method, and logical computer system configuration control program |
JP2008112358A (en) * | 2006-10-31 | 2008-05-15 | Hitachi Software Eng Co Ltd | Backup system |
JP5949780B2 (en) * | 2011-12-19 | 2016-07-13 | 富士通株式会社 | Program, information processing apparatus and method |
JP5723309B2 (en) * | 2012-03-05 | 2015-05-27 | 日本電信電話株式会社 | Server and program |
JP6042692B2 (en) * | 2012-10-18 | 2016-12-14 | 株式会社日立システムズ | Split file backup system |
JP6056453B2 (en) * | 2012-12-20 | 2017-01-11 | 富士通株式会社 | Program, data management method, and information processing apparatus |
JP5956364B2 (en) * | 2013-02-25 | 2016-07-27 | 日本電信電話株式会社 | Cluster system |
JP5945252B2 (en) * | 2013-07-12 | 2016-07-05 | 日本電信電話株式会社 | Distributed processing system |
JP5815000B2 (en) * | 2013-10-21 | 2015-11-17 | 日本電信電話株式会社 | Nodes and programs |
-
2015
- 2015-06-22 JP JP2015124412A patent/JP6322161B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017010237A (en) | 2017-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102868754B (en) | A kind of realize the method for cluster-based storage high availability, node apparatus and system | |
US7702947B2 (en) | System and method for enabling site failover in an application server environment | |
KR100956638B1 (en) | Large Scale Cluster Monitoring System, And Automatic Building And Restoration Method Thereof | |
US20130205017A1 (en) | Computer failure monitoring method and device | |
CN112463448B (en) | Distributed cluster database synchronization method, device, equipment and storage medium | |
CN107360025B (en) | Distributed storage system cluster monitoring method and device | |
CN111800484B (en) | Service anti-destruction replacing method for mobile edge information service system | |
CN113010313A (en) | Load balancing method and device, electronic equipment and computer storage medium | |
JP6322161B2 (en) | Node, data relief method and program | |
JP6085266B2 (en) | Server resource management device | |
CN111367711A (en) | Safety disaster recovery method based on super fusion data | |
CN113890850B (en) | Route disaster recovery system and method | |
JP7260801B2 (en) | Backup system and its method and program | |
JP6564349B2 (en) | Maintenance reduction system, node and maintenance reduction method | |
CN116668269A (en) | Arbitration method, device and system for dual-activity data center | |
JP5815000B2 (en) | Nodes and programs | |
JP6473425B2 (en) | Node and data placement method | |
CN106777238B (en) | A kind of self-adapted tolerance adjusting method of HDFS distributed file system | |
JP5711772B2 (en) | Cluster system | |
CN108809986A (en) | A kind of privately owned cloud system of enterprise | |
CN116614346B (en) | Cross-region-based distributed storage backup method and device | |
WO2023148976A1 (en) | Node device, cluster reconfiguration method, program, and cluster system | |
EP4323881A1 (en) | Geographically dispersed hybrid cloud cluster | |
JP5890452B2 (en) | Cluster system server device and program thereof | |
JP6127005B2 (en) | Cluster system server device and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170630 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180326 |
|
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: 20180403 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180406 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6322161 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |