JP5348300B2 - Data management program and multi-node storage system - Google Patents
Data management program and multi-node storage system Download PDFInfo
- Publication number
- JP5348300B2 JP5348300B2 JP2012197110A JP2012197110A JP5348300B2 JP 5348300 B2 JP5348300 B2 JP 5348300B2 JP 2012197110 A JP2012197110 A JP 2012197110A JP 2012197110 A JP2012197110 A JP 2012197110A JP 5348300 B2 JP5348300 B2 JP 5348300B2
- Authority
- JP
- Japan
- Prior art keywords
- slice
- storage
- node
- disk
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Abstract
Description
本発明はデータを二重化して管理するためのデータ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステムに関し、特にストレージ装置の診断結果に応じてデータのリカバリ処理を行うデータ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステムに関する。 The present invention relates to a data management program, a storage device diagnosis program, and a multi-node storage system for managing data by duplication, and in particular, a data management program for performing data recovery processing according to a diagnosis result of a storage device, and a storage device diagnosis The present invention relates to a program and a multinode storage system.
ネットワーク上でデータを管理するシステムの1つにマルチノードストレージシステムがある。マルチノードストレージシステムは、複数のディスクノード、少なくとも1つのアクセスノード、および制御ノードで構成される。ディスクノード、アクセスノード、および制御ノードは、ネットワークを介して接続されている。 One system for managing data on a network is a multi-node storage system. The multi-node storage system is composed of a plurality of disk nodes, at least one access node, and a control node. The disk node, access node, and control node are connected via a network.
マルチノードストレージシステム内では、仮想ディスクが定義されている。仮想ディスクは、複数のセグメントと呼ばれる複数の単位記憶領域で構成される。また、ディスクノードは、接続されたストレージ装置の記憶領域をスライスと呼ばれる単位に分割して管理する。そして、仮想ディスクを構成するセグメントと、各ディスクノードが管理するスライスとの対応関係が制御ノードで管理される。その対応関係を示すメタデータは、制御ノードからアクセスノードに通知される。 Within the multi-node storage system, virtual disks are defined. A virtual disk is composed of a plurality of unit storage areas called a plurality of segments. Further, the disk node manages the storage area of the connected storage device by dividing it into units called slices. Then, the correspondence relationship between the segments constituting the virtual disk and the slices managed by each disk node is managed by the control node. The metadata indicating the correspondence is notified from the control node to the access node.
アクセスノードは、仮想ディスク内のデータを指定したデータアクセスを受け取ると、メタデータに基づいて、そのデータが格納されたセグメントに対応するスライスを判断する。そして、アクセスノードは、実際にデータが格納されたスライスを管理するディスクノードに対してアクセス要求を送信する。 When the access node receives data access designating data in the virtual disk, the access node determines a slice corresponding to the segment in which the data is stored based on the metadata. Then, the access node transmits an access request to the disk node that manages the slice in which the data is actually stored.
このようなマルチノードストレージシステムにより、アクセスノードを使用するユーザは、ディスクノードに接続された多数のストレージ装置を、ローカルのディスク装置と同様に使用することができる。しかも、マルチノードストレージシステムでは、1つのセグメントに2つのスライスを割り当てることで、データを二重化することもできる。データの二重化を行っていれば、1台のストレージ装置が故障してもデータを消失させずにすむ。 With such a multi-node storage system, a user who uses an access node can use a large number of storage devices connected to the disk node in the same way as a local disk device. Moreover, in a multi-node storage system, data can be duplicated by assigning two slices to one segment. If data is duplicated, it is not necessary to lose data even if one storage device fails.
なお、データを二重化していても、障害によりストレージ装置へのアクセスができなくなると、一部のセグメントに関して二重化状態が崩れてしまう。その場合、リカバリ処理が行われる。リカバリ処理では、制御ノードにより、二重化状態が崩れたセグメント(リカバリ対象セグメント)に対して新たなスライスが割り当てられる。そして、リカバリ対象セグメントに割り当てられた既存のスライス内のデータを、ディスクノードが新たに割り当てたスライスへコピーする。これにより、データの二重化状態が回復する。 Even if the data is duplicated, if the storage device cannot be accessed due to a failure, the duplicated state will be lost for some segments. In that case, a recovery process is performed. In the recovery process, a new slice is assigned to the segment (recovery target segment) whose duplex state has been lost by the control node. Then, the data in the existing slice assigned to the recovery target segment is copied to the slice newly assigned by the disk node. As a result, the data duplex state is recovered.
また、仮想ディスクのセグメントに二重化のために割り当てられている2つのスライスは、それぞれプライマリスライスとセカンダリスライスとの属性が与えられている。アクセスノードは、プライマリスライスに対してアクセスを行う。もし、プライマリスライスを有するストレージ装置に障害が発生すると、制御ノードは、セカンダリスライスの属性を、プライマリスライスに変更する。その結果、アクセスノードは、リカバリ処理の完了を待たずに、障害が発生したストレージ装置に格納されていたデータへのアクセスが可能となる。 Further, the attributes of the primary slice and the secondary slice are given to the two slices assigned to the virtual disk segment for duplication. The access node accesses the primary slice. If a failure occurs in the storage apparatus having the primary slice, the control node changes the attribute of the secondary slice to the primary slice. As a result, the access node can access the data stored in the storage apparatus in which the failure has occurred without waiting for the completion of the recovery process.
ところで、アクセスノードからデータへのアクセスができなくなる障害の1つとして、ストレージ装置の機能障害がある。ストレージ装置に障害が発生した場合、まず、ディスクノードがその障害を検出する。障害を検出したディスクノードが、障害発生を制御ノードに通知することで、制御ノードが障害の発生を認識する。そして、制御ノードの管理の下、リカバリ処理が実行される。 By the way, as one of the failures that make it impossible to access data from the access node, there is a functional failure of the storage apparatus. When a failure occurs in the storage device, first, the disk node detects the failure. The disk node that detects the failure notifies the control node of the occurrence of the failure, so that the control node recognizes the occurrence of the failure. Then, recovery processing is executed under the control of the control node.
しかし、故障の誤検出を防止するためには、ストレージ装置の障害の予兆(動作不調)をディスクノードが検知してから障害であると判断するまでに、ある程度の猶予期間を設ける必要がある。そのため、その猶予期間中はアクセスノードのアクセス先を別のストレージ装置に変更する処理が実行されず、その間、アクセスノードからのデータアクセスが停止してしまう。 However, in order to prevent erroneous detection of a failure, it is necessary to provide a certain grace period after the disk node detects a failure sign (operation failure) of the storage apparatus until it is determined to be a failure. For this reason, during the grace period, the process of changing the access destination of the access node to another storage device is not executed, and data access from the access node is stopped during that period.
プライマリスライスを有するストレージ装置に障害が発生した場合、障害発生直後から、そのプライマリスライスへのアクセスノードからのアクセスはエラーとなる。他方、ディスクノードは、回復不能な障害が発生したのか、あるいは一時的な問題であり、ある程度の猶予期間をおけばアクセス可能となるのかが不明である。そのためディスクノードは、所定の猶予期間が経過するまで、故障であるとの判断をしない。その結果、現在のセカンダリスライスをプライマリスライスに切り替えるタイミングが遅れ、アクセスノードによるアクセスの停止期間が長期化していた。 When a failure occurs in a storage device having a primary slice, an access from the access node to the primary slice results in an error immediately after the failure occurs. On the other hand, it is unclear whether a disk node has an unrecoverable failure or is a temporary problem and can be accessed after a certain grace period. Therefore, the disk node does not determine that there is a failure until a predetermined grace period elapses. As a result, the timing for switching the current secondary slice to the primary slice is delayed, and the access stop period by the access node is prolonged.
本発明はこのような点に鑑みてなされたものであり、ストレージ装置の故障発生時に生じるデータアクセスの停止期間を短縮できるデータ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステムを提供することを目的とする。 The present invention has been made in view of the above points, and provides a data management program, a storage device diagnostic program, and a multi-node storage system that can shorten a data access stop period that occurs when a storage device failure occurs. Objective.
上記課題を解決するために、以下の機能をコンピュータで実現するためのデータ管理プログラムが提供される。このデータ管理プログラムは、記憶領域が複数のスライスに分割して管理されている複数のストレージ装置に二重化して格納されたデータの管理処理をコンピュータに実行させるものである。 In order to solve the above problems, a data management program for realizing the following functions by a computer is provided. This data management program causes a computer to execute management processing of data stored in duplicate in a plurality of storage devices whose storage areas are divided into a plurality of slices and managed.
データ管理プログラムを実行するコンピュータは、動作不調情報管理手段とリカバリ指示手段として機能する。動作不調情報管理手段は、複数のストレージ装置のうちの1つが故障中の可能性があることを示す動作不調情報を受け取ると、動作不調情報を動作不調情報記憶手段に格納する。リカバリ指示手段は、複数のストレージ装置のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、動作不調情報記憶手段内の動作不調情報を参照してアクセス対象スライスが属するストレージ装置が故障中である可能性の有無を判断し、故障の可能性がある場合、アクセス対象スライス内のデータと同じ内容の冗長データを格納するストレージ装置へのデータ入出力機能を有するスライス管理手段へ、アクセス対象スライスに格納されていたデータのリカバリ処理を指示する。 The computer that executes the data management program functions as malfunction information management means and recovery instruction means. When the malfunction information management means receives malfunction information indicating that one of the plurality of storage devices may be out of order, the malfunction information management means stores the malfunction information in the malfunction information storage means. When the recovery instruction means receives access-related information indicating that an access request has been issued with the slices of a plurality of storage devices as access target slices, the recovery instruction means refers to the operation failure information in the operation failure information storage means to determine the access target slice. A slice that has a data input / output function to the storage device that stores the redundant data with the same contents as the data in the access target slice if the storage device to which it belongs is determined whether there is a failure and if there is a failure The management unit is instructed to recover the data stored in the access target slice.
また、上記課題を解決するために、以下の機能をコンピュータで実現するためのストレージ装置診断プログラムが提供される。ストレージ装置診断プログラムは、ストレージ装置がローカルに接続されると共に、ストレージ装置に格納するデータの管理を行う制御ノードにネットワーク経由で接続されたコンピュータに、ストレージ装置の動作診断処理を実行させるためのものである。 In order to solve the above problems, a storage apparatus diagnosis program for realizing the following functions by a computer is provided. The storage device diagnosis program causes a computer connected to the control node that manages the data stored in the storage device via the network to execute the storage device operation diagnosis process while being connected locally. It is.
ストレージ装置診断プログラムを実行するコンピュータは、応答時間計測手段、動作不調検出手段、および復帰検出手段として機能する。応答時間計測手段は、ストレージ装置に対して検査コマンドを発行し、検査コマンド発行から応答があるまでの経過時間を計測する。動作不調検出手段は、経過時間が予め設定された動作不調検出時間に達しても応答がない場合、制御ノードに対して、ストレージ装置が故障中の可能性があることを示す動作不調情報を送信する。復帰検出手段は、動作不調情報を送信後にストレージ装置から検査コマンドに対する応答が返されると、制御ノードに対してストレージ装置の復帰を示す復帰情報を送信する。 The computer that executes the storage apparatus diagnosis program functions as response time measurement means, malfunction detection means, and recovery detection means. The response time measuring means issues an inspection command to the storage device and measures an elapsed time from when the inspection command is issued until there is a response. If there is no response when the elapsed time reaches a preset malfunction detection time, the malfunction detection means transmits malfunction information indicating that the storage device may be out of order to the control node. To do. When a response to the inspection command is returned from the storage apparatus after transmitting the malfunction information, the recovery detection means transmits recovery information indicating the recovery of the storage apparatus to the control node.
ストレージ装置の障害発生時に生じるデータアクセス停止期間を短縮できる。 The data access stop period that occurs when a storage device failure occurs can be shortened.
以下、本発明の実施の形態を図面を参照して説明する。
図1は、実施の形態の概要を示す図である。図1には、マルチノードストレージシステムが示されている。マルチノードストレージシステムは、ストレージ装置1〜3に格納されたデータを二重化して管理するため複数のディスクノード4〜6、制御ノード7、およびアクセスノード8を有する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a diagram showing an outline of the embodiment. FIG. 1 shows a multi-node storage system. The multi-node storage system has a plurality of disk nodes 4 to 6, a
ストレージ装置1〜3は、記憶領域が複数のスライスに分割して管理されている。また、ストレージ装置1〜3は、それぞれディスクノード4〜6に対してローカルに接続されている。ここで、ローカルに接続されているとは、ネットワーク経由での接続ではないことを意味している。
The
ディスクノード4は、応答時間計測手段4a、動作不調検出手段4b、故障検出手段4c、および復帰検出手段4dを有する。
応答時間計測手段4aは、ローカルに接続されたストレージ装置1に対して検査コマンドを発行する。そして、応答時間計測手段4aは、検査コマンドの発行から検査コマンドに対する応答がストレージ装置1から返されるまでの経過時間「T」を計測する。
The disk node 4 includes response
The response
動作不調検出手段4bには、動作不調検出時間「T1」が予め設定されている。例えば、動作不調検出手段4bの管理するメモリ内に動作不調検出時間「T1」が格納されている。動作不調検出時間「T1」には、例えば、ストレージ装置1の動作が正常な場合に検査コマンドに応答可能な時間(例えば1秒)が設定される。動作不調検出手段4bは、経過時間「T」が動作不調検出時間「T1」に達してもストレージ装置1からの応答がない場合、制御ノード7に対してストレージ装置1が故障中の可能性があることを示す動作不調情報を送信する。
An operation failure detection time “T1” is preset in the operation failure detection means 4b. For example, the malfunction detection time “T1” is stored in the memory managed by the malfunction detection means 4b. In the malfunction detection time “T1”, for example, a time (for example, 1 second) that can respond to the inspection command when the operation of the
故障検出手段4cには、動作不調検出時間「T1」よりも大きな値が故障検出時間「T2」として設定されている。故障検出時間「T2」には、例えば、ストレージ装置1の処理が過負荷であっても、故障していなければ検査コマンドに応答可能な時間の最大値(例えば1分)が設定される。故障検出手段4cは、経過時間「T」が故障検出時間「T2」に達してもストレージ装置1からの応答がない場合、制御ノード7に対してストレージ装置1に関する故障検出情報を送信する。
In the failure detection means 4c, a value larger than the malfunction detection time “T1” is set as the failure detection time “T2”. For the failure detection time “T2”, for example, the maximum value (for example, 1 minute) of the time that can respond to the inspection command if there is no failure even if the processing of the
復帰検出手段4dは、動作不調情報を送信後にストレージ装置1から検査コマンドに対する応答が返されると、制御ノード7に対してストレージ装置1の復帰を示す復帰情報を送信する。
The
ディスクノード5は、ストレージ装置2にデータの入出力を行うスライス管理手段5aを有する。同様に、ディスクノード6は、ストレージ装置3にデータの入出力を行うスライス管理手段6aを有する。
The
なお、図1では省略しているが、ディスクノード4が有する各機能と同様の機能が、ディスクノード5,6にも含まれる。同様に、図1では省略しているが、ディスクノード5,6が有するスライス管理手段5a,6aと同様の機能は、ディスクノード4にも含まれる。
Although omitted in FIG. 1, functions similar to the functions of the disk node 4 are also included in the
制御ノード7は、動作不調情報管理手段7a、動作不調情報記憶手段7b、およびリカバリ指示手段7cを有する。
動作不調情報管理手段7aは、ディスクノード4〜6の1つから動作不調情報を受け取ると、動作不調情報を動作不調情報記憶手段7bに格納する。
The
When the malfunction
動作不調情報記憶手段7bは、動作不調情報を記憶する。例えば、メモリの記憶領域の一部が動作不調情報記憶手段7bとして用いられる。
リカバリ指示手段7cは、複数のストレージ装置1〜3のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、動作不調情報記憶手段7b内の動作不調情報を参照してアクセス対象スライスが属するストレージ装置が故障中である可能性の有無を判断する。すなわち、アクセス対象スライスが属するストレージ装置に故障の可能性がある旨の動作不調情報が動作不調情報記憶手段7bに格納されていれば、故障の可能性ありと判断される。
The malfunction
When receiving the access related information indicating that an access request has been issued with the slices of the plurality of
リカバリ指示手段7cは、故障の可能性がある場合、アクセス対象スライス内のデータと同じ内容の冗長データを格納するストレージ装置が接続されたディスクノードへ、アクセス対象スライスに格納されていたデータのリカバリ処理を指示する。なお、リカバリ処理とは、アクセス対象スライス内の冗長データを他のストレージ装置にコピーし、データの二重化状態を回復する処理である。
When there is a possibility of failure, the
なお、図1の例では、アクセス関連情報は、複数のストレージ装置1〜3にアクセスを行うアクセスノード8によるストレージ装置1内のスライスへのアクセスが失敗したときに、アクセスノード8から送信される。この場合、リカバリ指示手段7cは、アクセスノード8からアクセス関連情報を受け取ると、アクセスノード8に対して冗長データの格納場所を通知する。
In the example of FIG. 1, the access related information is transmitted from the access node 8 when the access node 8 that accesses the plurality of
このようなマルチノードストレージシステムによれば、過負荷などによりストレージ装置1の動作が不調になると、応答時間計測手段4aが出力する検査コマンドに対するストレージ装置1からの応答時間は、動作不調検出時間「T1」より長くかかるが故障検出時間「T2」よりは短くなる。また、ストレージ装置1が故障していれば、検査コマンドに対する応答は、故障検出時間「T2」を過ぎても出されない。
According to such a multi-node storage system, when the operation of the
ここで、ストレージ装置1の動作が不調になるか、あるいは故障により、応答時間計測手段4aで計測している経過時間「T」が動作不調検出時間「T1」を超えたものとする。すると、動作不調検出手段4bにより、ストレージ装置1が故障中の可能性があることを示す動作不調情報が、制御ノード7に対して出力される。制御ノード7では、動作不調情報管理手段7aにより、動作不調情報が動作不調情報記憶手段7bに格納される。
Here, it is assumed that the operation time of the
その後、アクセスノード8がストレージ装置1内の先頭のスライス1aにアクセスすると、そのアクセスはエラーとなる。そこで、アクセスノード8は、制御ノード7に対して、ストレージ装置1の先頭のスライス1aへのアクセスが失敗したことを示すアクセス関連情報を送信する。制御ノード7では、リカバリ指示手段7cが動作不調情報記憶手段7bを参照し、ストレージ装置1が故障中の可能性があることを認識する。そこで、リカバリ指示手段7cは、アクセス関連情報で示されるスライス1aのリカバリ指示をディスクノード5,6に対して行う。
Thereafter, when the access node 8 accesses the
ここで、図1の例では、スライス1a内のデータ(data[A])の冗長データがストレージ装置2の先頭のスライス2aに格納されているものとする。また、ストレージ装置3の先頭のスライスが空き状態(有効なデータが格納されていない状態)であるものとする。この場合、リカバリ指示手段7cは、ディスクノード5のスライス管理手段5aに対してスライス2aのデータをスライス3aにコピーすることを指示する。すると、スライス管理手段5aは、スライス2aのデータを読み出し、ディスクノード6に転送する。ディスクノード6では、スライス管理手段6aがデータを受け取り、スライス3aに書き込む。
Here, in the example of FIG. 1, it is assumed that redundant data of data (data [A]) in the
リカバリ指示手段7cは、ストレージ装置2のスライス2aにスライス1aの冗長データが格納されていることを、アクセスノード8に通知する。これにより、アクセスノード8は、迅速にアクセス先をストレージ装置2のスライス2aに変更できる。
The
その後、ストレージ装置1からの応答が故障検出時間「T2」を経過してもディスクノード4に対して出力されなかった場合、故障検出手段4cが故障検出時間「T2」の経過を検出する。そして、故障検出手段4cから制御ノード7へ、ストレージ装置1が故障したことを示す故障検出情報が送信される。制御ノード7では、リカバリ指示手段7cがストレージ装置2内のすべてのスライスについて、ディスクノード5へリカバリの指示を行う。
Thereafter, if the response from the
また、ストレージ装置1からの応答が故障検出時間「T2」経過前にディスクノード4に対して出力された場合、復帰検出手段4dが復帰を検出する。そして、復帰検出手段4dから制御ノード7へ、ストレージ装置1が復帰したことを示す復帰情報が送信される。制御ノード7では、動作不調情報管理手段7aにより、ストレージ装置1が故障中の可能性があることを示す動作不調情報が、動作不調情報記憶手段7bから消去される。
Further, when the response from the
このように、図1に示すマルチノードストレージシステムでは、ストレージ装置1〜3の故障検出時間を動作不調検出時間「T1」、故障検出時間「T2」(T1<T2)の2段階にする。従来は、故障検出時間「T2」のみが存在し、ディスクノードが故障検出時間「T2」を検出するとリカバリ処理が開始されていた。そのため、故障検出時間「T2」を長くとりすぎるとリカバリ処理が遅れ、故障発生時にアクセス不能の期間も長期化していた。本実施の形態では、図1に示したように、ディスクノード4が動作不調検出時間「T1」を検出して制御ノード7に通知しておく。そして制御ノード7は、アクセスに失敗したスライス1aのデータのみのリカバリ処理を指示する。これにより、アクセス不能の期間の長期化が防止される。
As described above, in the multi-node storage system shown in FIG. 1, the failure detection times of the
なお、図1では、ストレージ装置1〜3がそれぞれ個別のディスクノード4〜6に接続されているが、1つのノードで複数のストレージ装置がローカルに接続されるシステムもある。そのようなシステムでは、ストレージ装置が接続された1つのノードに、図1に示した制御ノード7とディスクノード4〜6との機能が内蔵されることとなる。
In FIG. 1, the
ところで、マルチノードストレージシステムでは、仮想ディスクを介してデータアクセスが行われる。このとき、仮想ディスク内の記憶領域とストレージ装置内の記憶領域との割り当て関係はメタデータを用いて管理できる。そこで、メタデータを用いて割り当て関係を管理する場合の例を用い、以下に、本実施の形態の詳細を説明する。 By the way, in a multi-node storage system, data access is performed via a virtual disk. At this time, the allocation relationship between the storage area in the virtual disk and the storage area in the storage device can be managed using metadata. Therefore, the details of the present embodiment will be described below using an example in which the allocation relationship is managed using metadata.
[第1の実施の形態]
図2は、第1の形態のマルチノードストレージシステム構成例を示す図である。本実施の形態では、ネットワーク10を介して、複数のディスクノード100,200,300、制御ノード500、アクセスノード600,700、および管理ノード30が接続されている。ディスクノード100,200,300それぞれには、ストレージ装置110,210,310が接続されている。
[First Embodiment]
FIG. 2 is a diagram illustrating a configuration example of a multi-node storage system according to the first embodiment. In the present embodiment, a plurality of
ストレージ装置110には、複数のハードディスク装置(HDD)111,112,113,114が実装されている。ストレージ装置210には、複数のHDD211,212,213,214が実装されている。ストレージ装置310には、複数のHDD311,312,313,314が実装されている。各ストレージ装置110,210,310は、内蔵するHDDを用いたRAIDシステムである。本実施の形態では、各ストレージ装置110,210,310のRAID5のディスク管理サービスを提供する。
A plurality of hard disk devices (HDDs) 111, 112, 113, and 114 are mounted on the
ディスクノード100,200,300は、接続されたストレージ装置110,210,310に格納されたデータを管理し、管理しているデータをネットワーク10経由で端末装置21,22,23に提供する。また、ディスクノード100,200,300は、冗長性を有するデータを管理している。すなわち、同一のデータが、少なくとも2つのディスクノードで管理されている。
The
制御ノード500は、ディスクノード100,200,300を管理する。例えば、制御ノード500は、ディスクノード100,200,300から新たなストレージ装置の接続通知を受け取ると、新たな仮想ディスクを定義し、その仮想ディスクを介して接続されたストレージ装置に格納されていたデータにアクセスできるようにする。
The
アクセスノード600,700には、ネットワーク20を介して複数の端末装置21,22,23が接続されている。また、アクセスノード600,700には、仮想ディスクが定義されている。そして、アクセスノード600,700は、端末装置21,22,23からの仮想ディスクのデータのアクセス要求に応答して、ディスクノード100,200,300内の対応するデータへアクセスする。
A plurality of
管理ノード30は、管理者がマルチノードストレージシステムの運用を管理するために使用するコンピュータである。例えば、管理ノード30では、ストレージ装置の動作上級などの情報を収集し、収集した情報を画面に表示する。管理ノード30を使用する管理者は、画面に表示された情報を参照し、リカバリ処理が必要なストレージ装置を見つけた場合、そのストレージ装置のリカバリ処理の指示を管理ノード30に入力する。すると、管理ノード30から制御ノード500に、ストレージ装置を指定したリカバリ要求が送信される。
The
図3は、第1の形態に用いる制御ノードのハードウェア構成例を示す図である。制御ノード500は、CPU(Central Processing Unit)501によって装置全体が制御されている。CPU501には、バス507を介してRAM(Random Access Memory)502、ハードディスクドライブ(HDD:Hard Disk Drive)503、グラフィック処理装置504、入力インタフェース505、および通信インタフェース506が接続されている。
FIG. 3 is a diagram illustrating a hardware configuration example of a control node used in the first embodiment. The
RAM502は、制御ノード500の主記憶装置として使用される。RAM502には、CPU501に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM502には、CPU501による処理に必要な各種データが格納される。HDD503は、制御ノード500の二次記憶装置として使用される。HDD503には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
The
グラフィック処理装置504には、モニタ11が接続されている。グラフィック処理装置504は、CPU501からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置がある。
A
入力インタフェース505には、キーボード12とマウス13とが接続されている。入力インタフェース505は、キーボード12やマウス13から送られてくる信号を、バス507を介してCPU501に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
A
通信インタフェース506は、ネットワーク10に接続されている。通信インタフェース506は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
The
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3では制御ノード500のハードウェア構成を示したが、ディスクノード100,200,300、アクセスノード600,700、および管理ノード30も同様のハードウェア構成で実現することができる。ただし、ディスクノード100,200,300は、図3に示した機能に加え、ストレージ装置110,210,310を外部接続するためのインタフェースを有している。
With the hardware configuration as described above, the processing functions of the present embodiment can be realized. Although FIG. 3 shows the hardware configuration of the
次に、マルチノードストレージシステムにおいて定義される仮想ディスクのデータ構造について説明する。
図4は、仮想ディスクのデータ構造を示す図である。本実施の形態では、仮想ディスク60には仮想ディスク識別子「LVOL−X」が付与されている。ネットワーク経由で接続された3台のディスクノード100,200,300には、個々のノードの識別のためにそれぞれ「SN−A」、「SN−B」、「SN−C」というノード識別子が付与されている。そして、各ディスクノード100,200,300に接続されているストレージ装置110,210,310は、ディスクノード100,200,300のノード識別子と、各ディスクノード100,200,300内でのディスクIDの組によってネットワーク10で一意に識別される。
Next, the data structure of the virtual disk defined in the multi-node storage system will be described.
FIG. 4 shows the data structure of the virtual disk. In the present embodiment, a virtual disk identifier “LVOL-X” is assigned to the
各ディスクノード100,200,300が有するストレージ装置110,210,310それぞれにおいてRAID5のストレージシステムが構成されている。各ストレージ装置110,210,310で提供される記憶機能は、複数のスライス115a〜115c,215a〜215c,315a〜315cに分割されて管理されている。
A
仮想ディスク60は、セグメント61〜63という単位で構成される。セグメント61〜63の記憶容量は、ストレージ装置110,210における管理単位であるスライスの記憶容量と同じである。例えば、スライスの記憶容量が1ギガバイトとするとセグメントの記憶容量も1ギガバイトである。仮想ディスク60の記憶容量はセグメント1つ当たりの記憶容量の整数倍である。セグメント61〜63は、それぞれプライマリスライス61a,62a,63aとセカンダリスライス61b,62b,63bとの組(スライスペア)で構成される。
The
同一セグメントに属する2つのスライスは別々のディスクノードに属する。個々のスライスを管理する領域には仮想ディスク識別子やセグメント情報や同じセグメントを構成するスライス情報の他にフラグがあり、そのフラグにはプライマリあるいはセカンダリなどを表す値が格納される。 Two slices belonging to the same segment belong to different disk nodes. In the area for managing individual slices, there are flags in addition to the virtual disk identifier, segment information, and slice information constituting the same segment, and a value representing primary or secondary is stored in the flag.
図4の例では、仮想ディスク60内のスライスの識別子を、「P」または「S」のアルファベットと数字との組合せで示している。「P」はプライマリスライスであることを示している。「S」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。例えば、1番目のセグメント61のプライマリスライスが「P1」で示され、セカンダリスライスが「S1」で示される。
In the example of FIG. 4, the identifier of the slice in the
図5は、マルチノードストレージシステムの各装置の機能を示すブロック図である。アクセスノード600は、メタデータ照会部610、アクセス用メタデータ記憶部620、およびスライスアクセス要求部630を有している。
FIG. 5 is a block diagram illustrating functions of each device of the multi-node storage system. The
メタデータ照会部610は、仮想ディスク60を定義するメタデータを、制御ノード500から取得する。具体的には、メタデータ照会部610は、アクセスノード600の起動時に制御ノード500に対して全メタデータの照会要求を送信する。すると、制御ノード500から仮想ディスク60に関する全メタデータが送られてくる。また、メタデータ照会部610は、スライスアクセス要求部630による任意のスライスへのデータアクセスがエラーとなったとき、アクセス対象のスライスが割り当てられたセグメントに関するメタデータの照会要求を制御ノード500に送信する。すると、制御ノード500から、該当セグメントの最新のメタデータが送られてくる。なお、メタデータ照会部610は、制御ノード500からメタデータを取得すると、そのメタデータをアクセス用メタデータ記憶部620に格納する。
The
アクセス用メタデータ記憶部620は、仮想ディスク60を定義するメタデータの記憶機能である。例えば、アクセスノード600のRAMの一部がアクセス用メタデータ記憶部620として使用される。なお、本実施の形態では、アクセスノード600は常にプライマリスライスにアクセスを行う。そのため、アクセス用メタデータ記憶部620には、仮想ディスク60のメタデータのうち、少なくともプライマリスライスに関するメタデータが格納されていればよい。
The access
スライスアクセス要求部630は、端末装置21,22,23からの仮想ディスク上でのデータのアクセス要求に応答して、ストレージ装置110,210,310のデータのアクセス要求(リード要求またはライト要求)をディスクノード100,200,300に対して送信する。具体的には、スライスアクセス要求部630は、仮想ディスクのアドレスを指定したアクセス要求を受け取ると、まず、アクセス用メタデータ記憶部620を参照し、アクセス対象のデータが属するセグメントを判断する。次に、スライスアクセス要求部630は、該当するセグメントにプライマリスライスとして割り当てられたスライスを判断する。そして、スライスアクセス要求部630は、該当するスライスを管理するディスクノードに対して、そのスライス内のデータのアクセス要求を送信する。ディスクノードからアクセス結果が応答されると、スライスアクセス要求部630は、端末装置21,22,23にアクセス結果を送信する。
In response to a data access request on the virtual disk from the
なお、スライスアクセス要求部630は、アクセス先のディスクノードからエラーが返された場合、エラーが発生したセグメントをメタデータ照会部610に通知する。その後、スライスアクセス要求部630は、データアクセスのリトライを行う。リトライでは、アクセス用メタデータ記憶部620を参照して、プライマリスライスとした割り当てられたスライスを判断する処理から再度実行される。すなわち、前回のアクセス要求後にアクセス用メタデータ記憶部620内のメタデータが更新されていれば、更新後のメタデータに基づいてリトライ時のアクセス先となるディスクノードが判断される。
When an error is returned from the access destination disk node, the slice
ディスクノード100は、スライスアクセス処理部120、T1/復帰検出部130、T2検出部140、メタデータ記憶部150、およびスライス管理部160を有している。
The
スライスアクセス処理部120は、アクセスノード600からのアクセス要求に応答して、ストレージ装置110に対するデータアクセスを行う。具体的には、スライスアクセス処理部120は、アクセスノード600からアクセス要求を受け取ると、メタデータ記憶部150を参照し、アクセス対象となるセグメントに対して、割り当てられているストレージ装置110内のスライスを判断する。
The slice
次に、スライスアクセス処理部120は、アクセス要求で指定されている該当するスライス内のデータに対してアクセスする。例えば、データリードのアクセス要求であれば、スライスアクセス処理部120は、該当するデータをストレージ装置110から読み出す。また、データライトのアクセス要求であれば、スライスアクセス処理部120は、ストレージ装置110内の該当する記憶領域にアクセス要求に含まれるデータを書き込む。そして、スライスアクセス処理部120は、アクセス結果をアクセスノード600に送信する。データリードのアクセス要求の場合、ストレージ装置110から読み出したデータがアクセス結果に含まれる。なお、ストレージ装置110がアクセスに対する応答を返せない状況にある場合(検査コマンドへの応答が返せない状況と同様)、スライスアクセス処理部120は、アクセスノード600に対してエラーを返す(エラーメッセージを送信する)。
Next, the slice
T1/復帰検出部130は、定期的にストレージ装置110に対して検査コマンドを送信し、応答の有無により故障の有無を判定する。具体的には、T1/復帰検出部130は、定期的にストレージ装置110へ”test unit ready”などの検査コマンドを発行する。また、T1/復帰検出部130は、内部に動作不調検出時間「T1」の値を保持している。例えば、T1/復帰検出部130が使用しているRAM内に「T1」の値が設定されている。T1としては、例えば、数秒から十数秒程度の時間が設定される。
The T1 /
そして、T1/復帰検出部130は、検査コマンド発行から動作不調検出時間が経過してもストレージ装置110から応答が返ってこない場合、故障の可能性有りと判定する。故障の可能性有りと判定した場合、T1/復帰検出部130は、制御ノード500に対してT1経過通知を送信する。また、T1/復帰検出部130は、検査コマンド発行からT1経過後に、ストレージ装置110から応答が返されると、制御ノード500に対して復帰通知を送信する。
Then, the T1 /
T2検出部140は、故障の可能性有りと判定した後に、故障確定判定を行う。具体的には、T2検出部140は、内部に故障検出時間「T2」(T1<T2)の値を予め保持している。例えば、T2検出部140が使用しているRAM内に「T2」の値が設定されている。T2としては、例えば、30秒から1分程度の時間が設定される。
After determining that there is a possibility of failure, the
T2検出部140は、T1/復帰検出部130が検査コマンドを発行してからT2が経過するまでにストレージ装置110から応答が返ってこない場合、故障確定と判定する。故障確定と判定した場合、T2検出部140は、T2経過通知を制御ノード500に送信する。
The
メタデータ記憶部150は、ディスクノード100が管理しているスライスのメタデータの記憶機能である。例えば、ディスクノード100のRAM内の一部の記憶領域がメタデータ記憶部150として使用される。
The
スライス管理部160は、ストレージ装置110内の各スライスのメタデータを管理する。具体的には、スライス管理部160は、ディスクノード100起動時に、ストレージ装置110から各スライスのメタデータを読み出し、メタデータ記憶部150に格納する。また、スライス管理部160は、制御ノード500からメタデータの収集要求があれば、メタデータ記憶部150に格納されているメタデータを制御ノード500に送信する。さらにスライス管理部160は、制御ノード500からメタデータの変更要求を受け取ると、その変更要求で指定されたメタデータの内容を変更する。この際、スライス管理部160は、メタデータ記憶部150内のメタデータと、ストレージ装置110内のメタデータとを変更する。
The
制御ノード500は、仮想ディスクメタデータ記憶部510、メタデータ検索部520、ストレージ状態記憶部530、ストレージ状態管理部540、およびスライス割り当て管理部550を有している。
The
仮想ディスクメタデータ記憶部510は、仮想ディスク60を構成するセグメントへのスライスの割り当て関係を示すメタデータを記憶する記憶機能である。例えば、RAM502の記憶領域の一部が仮想ディスクメタデータ記憶部510として使用される。
The virtual disk
メタデータ検索部520は、アクセスノード600から照会されたセグメントに割り当てられたスライスのメタデータを仮想ディスクメタデータ記憶部510から検索し、検索結果をアクセスノード600に応答する。また、メタデータ検索部520は、アクセスノード600から照会されたスライスを有するストレージ装置が故障の可能性がある場合、アクセスノード600から照会されたセグメントへのスライスの再割り当てをスライス割り当て管理部550に要求する。そして、メタデータ検索部520は、再割り当て結果を反映したメタデータを仮想ディスクメタデータ記憶部510より取得し、取得したメタデータをアクセスノード600に応答する。なお、メタデータ検索部520は、各ストレージ装置の状態は、ストレージ状態記憶部530を参照することで判断する。
The
ストレージ状態記憶部530には、各ディスクノード100,200,300に接続されているストレージ装置110,210,310の状態を記憶する記憶機能である。例えば、RAM502の記憶領域の一部がストレージ状態記憶部530として使用される。ストレージ状態記憶部530に設定されるストレージ装置110,210,310の状態には、通常の状態と、T1経過後の状態とがある。T1経過後の状態は、検査コマンドへの無応答時間が動作不調検出時間が経過したことを示している。ストレージ装置の状態が、T1経過後の状態であれば、そのストレージ装置が故障している可能性があることが分かる。
The storage
ストレージ状態管理部540は、ディスクノード100からの通知に応じて、ストレージ状態記憶部530内に示されるストレージ装置110の状態を変更する。具体的には、ディスクノード100からT1経過通知を受け取ると、ストレージ状態管理部540は、ストレージ状態記憶部530内に示されるストレージ装置110の状態を、T1経過後の状態とする。また、ディスクノード100から復帰通知を受け取ると、ストレージ状態管理部540は、ストレージ状態記憶部530内に示されるストレージ装置110の状態を、通常の状態とする。
The storage
スライス割り当て管理部550は、仮想ディスク60のセグメントへのスライスの割り当てを管理する。例えば、スライス割り当て管理部550は、メタデータ検索部520から、故障の可能性があるストレージ装置内のアクセス対象となったスライスが通知されると、そのスライスが割り当てられているセグメントに対して、別のスライスを割り当てる。
The slice
また、スライス割り当て管理部550は、ディスクノード100からT2経過通知を受け取ると、ストレージ装置110内のスライスが割り当てられたセグメントのリカバリ処理を開始する。スライス割り当て管理部550は、リカバリ処理において、リカバリ対象セグメントに割り当てられたスライスのうち、ストレージ装置110以外のストレージ装置210,310のスライスをすべてプライマリスライスとする。次に、スライス割り当て管理部550は、リカバリ対象セグメントのセカンダリスライスとして、ストレージ装置210,310のスライスを割り当てる。そして、スライス割り当て管理部550は、割り当て結果に応じたメタデータの更新要求をディスクノード200,300に送信する。ディスクノード200,300においてメタデータの更新が完了すると、スライス割り当て管理部550は、仮想ディスクメタデータ記憶部510内のメタデータを更新する。
When the slice
リカバリ処理によりメタデータが更新された場合、リカバリ対象セグメントのプライマリスライスを管理するディスクノードは、ネットワーク10経由でプライマリスライス内のデータをセカンダリスライスにコピーする。リカバリ処理に伴うデータのコピーは、プライマリスライスを管理するディスクノードとセカンダリスライスを管理するディスクノードとにおけるスライス管理部160に相当する機能の協働動作により実行される。
When the metadata is updated by the recovery process, the disk node that manages the primary slice of the recovery target segment copies the data in the primary slice to the secondary slice via the
なお、図5では、2台のアクセスノード600,700のうちのアクセスノード600の機能を代表で示しているが、アクセスノード700も同様の機能を有している。また、3台のディスクノード100,200,300のうちのディスクノード100の機能を代表で示しているが、他のディスクノード200,300も同様の機能を有している。
In FIG. 5, the function of the
次に、マルチノードストレージシステムの各ノードで管理されるメタデータについて詳細に説明する。本実施の形態におけるメタデータは、システムが停止している間は、ストレージ装置110,210,310に格納されている。マルチノードストレージシステムが起動されると、ストレージ装置110,210,310内のメタデータが読み出され、各ノードに保持される。
Next, metadata managed in each node of the multi-node storage system will be described in detail. The metadata in the present embodiment is stored in the
次に、各ノードで管理されているデータの構造について説明する。
図6は、ストレージ装置のデータ構造例を示す図である。ストレージ装置110には、スライス115a,115b,115c,・・・とは別に複数のメタデータ117a,117b,117c,・・・が格納されている。
Next, the structure of data managed by each node will be described.
FIG. 6 is a diagram illustrating an exemplary data structure of the storage apparatus. In addition to the
ストレージ装置110に格納されたメタデータ117a,117b,117c,・・・は、ディスクノード100の起動時にスライス管理部160によって読み出され、メタデータ記憶部150に格納される。
The
図7は、メタデータ記憶部のデータ構造例を示す図である。メタデータ記憶部150には、メタデータテーブル151が格納されている。メタデータテーブル151には、ディスクノードID、ディスクID、スライスID、状態、仮想ディスクID、セグメントID、仮想ディスクアドレス、ペアのディスクノードID、ペアのディスクID、ペアのスライスID、およびタイムスタンプの欄が設けられている。メタデータテーブル151内の横方向に並べられた情報同士が互いに関連付けられ、メタデータを示す1つのレコードを構成している。
FIG. 7 is a diagram illustrating an example of the data structure of the metadata storage unit. A metadata table 151 is stored in the
ディスクノードIDの欄は、ストレージ装置110を管理しているディスクノード100の識別情報(ディスクノードID)が設定される。
ディスクIDの欄には、ディスクノード100に接続されているストレージ装置の識別情報(ディスクID)が設定される。本実施の形態ではディスクノード100に1台のストレージ装置110しか接続されていないが、複数のストレージ装置が接続された場合、各ストレージ装置に異なるディスクIDが設定される。
In the disk node ID column, identification information (disk node ID) of the
In the disk ID column, identification information (disk ID) of the storage device connected to the
スライスIDの欄には、メタデータに対応するスライスのストレージ装置110内での識別情報(スライスID)が設定される。
状態の欄には、スライスの状態を示す状態フラグが設定される。スライスが仮想ディスクのセグメントに割り当てられていない場合、状態フラグ「F」が設定される。仮想ディスクのセグメントのプライマリストレージに割り当てられている場合、状態フラグ「P」が設定される。仮想ディスクのセグメントのセカンダリストレージに割り当てられている場合、状態フラグ「S」が設定される。仮想ディスクのセグメントに割り当てることが決定したが、まだデータのコピーが行われていない場合、予約済を示す状態フラグ「R」が設定される。異常セグメントと判定された場合、異常であることを示す状態フラグ「B」が設定される。
In the slice ID column, identification information (slice ID) in the
In the status column, a status flag indicating the status of the slice is set. If the slice is not assigned to a virtual disk segment, the status flag “F” is set. When the virtual disk segment is assigned to the primary storage, the status flag “P” is set. When the virtual disk segment is allocated to the secondary storage, the status flag “S” is set. If it has been decided to allocate to a segment of a virtual disk, but data has not yet been copied, a status flag “R” indicating reserved is set. When it is determined that the segment is abnormal, a status flag “B” indicating that the segment is abnormal is set.
仮想ディスクIDの欄には、スライスに対応するセグメントが属する仮想ディスクを識別するための識別情報(仮想ディスクID)が設定される。
セグメントIDの欄には、スライスが割り当てられたセグメントの識別情報(セグメントID)が設定される。
In the virtual disk ID column, identification information (virtual disk ID) for identifying the virtual disk to which the segment corresponding to the slice belongs is set.
In the segment ID column, identification information (segment ID) of a segment to which a slice is assigned is set.
仮想ディスクアドレスの欄には、スライスが割り当てられているセグメントの先頭を示す仮想ディスク内でのアドレスが設定される。
ペアのディスクノードIDの欄には、ペアのスライス(同じセグメントに属する別のスライス)を有するストレージ装置を管理するディスクノードの識別情報(ディスクノードID)が設定される。
In the virtual disk address column, an address in the virtual disk indicating the head of the segment to which the slice is assigned is set.
In the paired disk node ID column, identification information (disk node ID) of a disk node that manages a storage device having a pair of slices (another slice belonging to the same segment) is set.
ペアのディスクIDの欄には、ペアのディスクノードIDで示されるディスクノード内で、ペアのスライスを有するストレージ装置を識別するための識別情報(ディスクID)が設定される。 In the paired disk ID column, identification information (disk ID) for identifying a storage device having a paired slice in the disk node indicated by the paired disk node ID is set.
ペアのスライスIDの欄には、ペアのスライスを、そのスライスが属するストレージ装置内で識別するための識別情報(スライスID)が設定される。
タイムスタンプの欄には、セグメントへのスライスの割り当てを行った時刻(タイムスタンプ)が設定される。図中のタイムスタンプの値は、「t」に続く数が大きいほど、新しい時刻を示している。tnの「n」は自然数を示している。
In the pair slice ID column, identification information (slice ID) for identifying the pair slice within the storage apparatus to which the slice belongs is set.
In the time stamp column, a time (time stamp) at which a slice is assigned to a segment is set. The time stamp value in the figure indicates a new time as the number following “t” increases. “n” in tn represents a natural number.
図7にはディスクノード100のメタデータ記憶部150の内容を示しているが、他のディスクノード200,300も同様のメタデータ記憶部を有している。そして、各ディスクノード100,200,300のメタデータ記憶部に格納されたメタデータは、制御ノード500からの要求に応じて制御ノード500に送信される。制御ノード500では、ディスクノード100,200,300から収集したメタデータは、スライス割り当て管理部550により仮想ディスクメタデータ記憶部510に格納される。
FIG. 7 shows the contents of the
図8は、仮想ディスクメタデータ記憶部のデータ構造例を示す図である。仮想ディスクメタデータ記憶部510には、仮想ディスクメタデータテーブル511が格納されている。仮想ディスクメタデータテーブル511には、ディスクノードID、ディスクID、スライスID、状態、仮想ディスクID、セグメントID、仮想ディスクアドレス、ペアのディスクノードID、ペアのディスクID、ペアのスライスID、およびタイムスタンプの欄が設けられている。仮想ディスクメタデータテーブル511内の横方向に並べられた情報が互いに関連付けられ、メタデータを示す1つのレコードを構成している。仮想ディスクメタデータテーブル511の各欄に設定される情報は、メタデータテーブル151の同名の欄と同種の情報である。
FIG. 8 is a diagram illustrating an example of the data structure of the virtual disk metadata storage unit. The virtual disk
仮想ディスクメタデータテーブル511に格納されたメタデータは、アクセスノード600,700からの照会要求に応答して、アクセスノード600,700に送信される。アクセスノード600,700は、取得したメタデータを記憶する。アクセスノード600であれば、アクセス用メタデータ記憶部620にメタデータが格納される。アクセスノード700においても、アクセス用メタデータ記憶部620に相当する記憶機能にメタデータが格納される。
The metadata stored in the virtual disk metadata table 511 is transmitted to the
アクセス用メタデータ記憶部620のデータ構造は、仮想ディスクメタデータ記憶部510と同様である。なお、本実施の形態では、アクセスノード600は常にプライマリスライスにアクセスする。そのため、アクセス用メタデータ記憶部620には、少なくともプライマリスライスに関するメタデータが格納されていればよい。また、各メタデータにおけるペアのディスクノードID、ペアのディスクID、ペアのスライスID、タイムスタンプの各欄のデータは無くてもよい。
The data structure of the access
次に、制御ノード500内のストレージ状態記憶部530に格納されるデータについて説明する。
図9は、ストレージ状態記憶部のデータ構造例を示す図である。ストレージ状態記憶部530には、ディスク管理テーブル531が格納されている。ディスク管理テーブル531には、ディスクノードID、ディスクID、および状態の欄が設けられている。
Next, data stored in the storage
FIG. 9 is a diagram illustrating an example of a data structure of the storage state storage unit. The storage
ディスクノードIDの欄には、ディスクノードを一意に識別するための識別情報(ディスクノードID)が設定される。ディスクIDの欄には、ディスクノードに接続されたストレージ装置の識別情報(ディスクID)が設定される。 In the disk node ID column, identification information (disk node ID) for uniquely identifying a disk node is set. In the disk ID column, identification information (disk ID) of the storage apparatus connected to the disk node is set.
状態の欄には、各ストレージ装置の状態が設定される。状態には、「通常」と「T1」とがある。「通常」の状態とは、ストレージ装置が正常に動作している状態である。具体的には、定期的にディスクノードから出力される検査コマンドに対してストレージ装置から応答が返されている場合、そのストレージ装置の状態は「通常」に設定される。「T1」の状態とは、ストレージ装置の故障の可能性がある状態である。具体的には、定期的にディスクノードから出力される検査コマンドに対して、T1経過前にストレージ装置から応答が返されない場合、そのストレージ装置の状態は「T1」に設定される。 In the status column, the status of each storage device is set. The state includes “normal” and “T1”. The “normal” state is a state in which the storage apparatus is operating normally. Specifically, when a response is returned from the storage apparatus to the inspection command periodically output from the disk node, the state of the storage apparatus is set to “normal”. The “T1” state is a state where there is a possibility of failure of the storage apparatus. Specifically, in the case where a response is not returned from the storage apparatus before T1 elapses with respect to the inspection command periodically output from the disk node, the state of the storage apparatus is set to “T1”.
このような構成のマルチノードストレージシステムにおいて、検査コマンドに対するストレージ装置からの応答が、T1を経過しても返されない場合、以下のようなスライス切り替え処理が実行される。 In the multi-node storage system having such a configuration, when the response from the storage apparatus to the inspection command is not returned even after T1, the following slice switching process is executed.
図10は、ストレージ装置故障時のスライス切り替え処理の手順を示すシーケンス図である。この例では、ディスクノード100に接続されたストレージ装置110が故障したものとする。以下、図10に示す処理をステップ番号に沿って説明する。
FIG. 10 is a sequence diagram illustrating a procedure of slice switching processing when a storage apparatus fails. In this example, it is assumed that the
[ステップS11]ディスクノード100のT1/復帰検出部130は、定期的にストレージ装置110のディスク診断(動作確認)を行う。具体的には、T1/復帰検出部130は、定期的にストレージ装置110へ”test unit ready”の検査コマンドを発行する。ストレージ装置110が正常に動作していれば、ストレージ装置110からT1以内に応答が返される。
[Step S11] The T1 /
ストレージ装置110が故障している場合やストレージ装置110内部でデータの再生成処理が行われている場合などには、ストレージ装置110からT1以内に応答が返されない。
When the
データの再生成処理は、RAID5のディスク故障時に実行される処理である。すなわち、図2に示すようにストレージ装置110は、複数のHDD111〜114が実装されており、RAID5システムを構成している。RAID5では、データを分割して複数のHDDに分散格納するストライピング処理が行われる。その際、データを修復するためのパリティデータが生成され、データとは別のHDDに格納される。ストレージ装置110内の1台のHDDが故障した場合、パリティデータを用いて、そのHDDに格納されていたデータが再生成される。
The data regeneration process is a process executed when a
このようなデータの再生成処理は、ストレージ装置110内で自動的に実行される。例えば、ストレージ装置110内の4台のHDD111〜114の1台が故障した場合、ストレージ装置110内のRAIDコントローラによる故障したHDDに格納されていたデータが再生成される。さらに、RAIDコントローラは、稼動するHDDが3台になったことにより、ストライピング処理によるデータの再配置を行う。このようなデータの再生成や再配置の処理中は、ストレージ装置110内のRAIDコントローラへの負荷が普段より大きくなる。そのため、データの再生成処理中にディスクノード100からストレージ装置110に検査コマンドが入力されると、応答に通常より多くの時間がかかることがある。ただし、データの再生成などの処理はストレージ装置110の正常動作の1つである。そのため、再生成処理中に検査コマンドへの応答が遅れたとしても、ストレージ装置110全体としての故障ではない。
Such data regeneration processing is automatically executed in the
図10の例では、ストレージ装置110が故障しているため、検査コマンドを発行してからT1が経過しても、応答が返ってこない。その場合、まずT1/復帰検出部130がT1が経過したことを検出する。
In the example of FIG. 10, since the
T1の経過を検出すると、T1/復帰検出部130は、制御ノード500に対してT1経過通知を送信する。T1経過通知には、ディスクノード100のディスクノードIDとストレージ装置110のディスクIDとが含まれる。T1/復帰検出部130は、その後もストレージ装置110からの応答を待つ。
When the elapse of T1 is detected, the T1 /
制御ノード500のストレージ状態管理部540は、T1経過通知を受信すると、ストレージ装置110の状態を切り替える。すなわち、ストレージ状態管理部540は、T1経過通知に示されるディスクノードIDとディスクIDとの組みに対応する情報をストレージ状態記憶部530から検索する。そして、ストレージ状態管理部540は、該当するストレージ装置に関する情報の状態を「T1」に変更する。
When the storage
図11は、状態変更後のストレージ状態記憶部の例を示す図である。図11に示すように、ディスクノードID「SN−A」とディスクID「1」との組に対応する状態が「T1」に変更されている。これにより、制御ノード500では、ディスクノード100に接続されたストレージ装置110に故障の可能性があることが認識できる。
FIG. 11 is a diagram illustrating an example of the storage state storage unit after the state change. As shown in FIG. 11, the state corresponding to the set of the disk node ID “SN-A” and the disk ID “1” is changed to “T1”. As a result, the
図10の説明に戻る。
[ステップS12]状態の切り替えが完了すると、ストレージ状態管理部540は、切り替え完了応答をディスクノード100に送信する。
Returning to the description of FIG.
[Step S12] When the state switching is completed, the storage
[ステップS13]一方、アクセスノード600のスライスアクセス要求部630は、ユーザによる端末装置21,22,23への操作入力などに応じて仮想ディスク60内のデータへのアクセスが発生すると、アクセス用メタデータ記憶部620を参照し、アクセス対象のデータを管理しているディスクノードを判断する。図10の例では、ディスクノード100が管理するスライスへのリードのアクセスが発生したものとする。すると、スライスアクセス要求部630は、ディスクノード100に対してアクセス対象データのリード要求を送信する。ディスクノード100のスライスアクセス処理部120は、メタデータ記憶部150を参照して、アクセス対象スライスが自己の管理するストレージ装置110内のスライスであることを確認し、ストレージ装置110内の該当スライス内のデータを指定したリードアクセスを行う。
[Step S13] On the other hand, the slice
図10の例では、T1/復帰検出部130によるT1の経過が検出された後に、アクセスノード600からのリード要求が出されている。この例では、ストレージ装置110は故障している。そのため、ストレージ装置110へのアクセスはエラーになる。ストレージ装置110が過負荷状態であっても、検査コマンドへの応答検出前(復帰前)であればデータアクセスもエラーとなる。
In the example of FIG. 10, a read request is issued from the
なお、リード要求の場合には、プライマリスライスを有するストレージ装置に問題(故障または過負荷)がある場合にのみエラーとなる。他方、ライト要求の場合には、プライマリスライスを有するストレージ装置とセカンダリスライスを有するストレージ装置との少なくとも一方で問題(故障または過負荷)があるときにエラーとなる。すなわち、データのライトのアクセス要求を受け取ったディスクノード100では、まず、スライスアクセス処理部120がデータ更新を行う。その後、スライス管理部160がメタデータ記憶部150を参照し、データが更新されたスライス(プライマリスライス)とペアとなるスライス(セカンダリスライス)を判断する。そして、スライス管理部160は、セカンダリスライスを管理するディスクノードに書き込み対象のデータを送信し、セカンダリスライスのデータ更新を要求する。スライスアクセス処理部120は、プライマリスライスとセカンダリスライスとの両方のデータ更新が完了したことを確認後、アクセスノード600に対してライト要求の完了応答を返す。もし、プライマリスライスとセカンダリスライスとの少なくとも一方でデータ更新が失敗した場合、スライスアクセス処理部120はアクセスノード600にエラーを応答する。
In the case of a read request, an error occurs only when there is a problem (failure or overload) in the storage apparatus having the primary slice. On the other hand, in the case of a write request, an error occurs when there is a problem (failure or overload) in at least one of the storage device having the primary slice and the storage device having the secondary slice. That is, in the
図10の例では、ストレージ装置110(ディスクノードID「SN−A」)の故障により、ストレージ装置110(ディスクID「1」)の先頭のスライス(スライスID「1」)へのリード要求がエラーになっている。 In the example of FIG. 10, a read request to the first slice (slice ID “1”) of the storage device 110 (disk ID “1”) is an error due to a failure of the storage device 110 (disk node ID “SN-A”). It has become.
[ステップS14]ディスクノード100のスライスアクセス処理部120は、アクセスノード600からのリード要求に対してエラーを応答する。すると、アクセスノード600のスライスアクセス要求部630は、メタデータ照会部610に対してエラーの発生を通知する。このとき、スライスアクセス要求部630は、アクセスがエラーとなったセグメントに関する仮想ディスクIDとセグメントIDとについてもメタデータ照会部610に伝える。
[Step S14] The slice
[ステップS15]メタデータ照会部610は、制御ノード500に対してセグメントを指定したメタデータの照会要求を送信する。照会要求で指定されるセグメント(照会対象セグメント)は、エラーによりアクセスが失敗したセグメントである。紹介対象セグメントを指定したメタデータの照会要求は、その紹介対象セグメントに割り当てられているスライスへのアクセスに失敗したことを意味している。
[Step S15] The
メタデータの照会要求を請け受け取った制御ノード500のメタデータ検索部520は、スライス割り当て管理部550へ照会対象セグメントへのスライスの再割り当てを要求する。
The
具体的には、メタデータ検索部520は、照会要求を受け取ると、仮想ディスクメタデータ記憶部510から、照会対象セグメントに割り当てられたスライス(プライマリスライスとセカンダリスライス)のメタデータを検索する。次に、メタデータ検索部520は、ストレージ状態記憶部530を参照し、照会対象のセグメントに割り当てられたスライスを有するストレージ装置の状態を確認する。
Specifically, when receiving the inquiry request, the
ここで、各スライスを有するストレージ装置の状態が「通常」であれば、メタデータ検索部520は、検索によって取得したメタデータのうち、プライマリスライスのメタデータをアクセスノード600に送信する。
Here, if the state of the storage device having each slice is “normal”, the
スライスを有するストレージ装置の状態が「T1」であれば、照会対象セグメントのリカバリ処理(二重化回復処理)が開始される。そのリカバリ処理では、まずメタデータ検索部520が照会対象セグメントへのスライスの再割り当てを行う。例えば、照会対象セグメントのプライマリスライスを有するストレージ装置の状態が「T1」であれば、プライマリスライスの再割り当てが行われる。また、照会対象セグメントのセカンダリスライスを有するストレージ装置の状態が「T1」であれば、セカンダリスライスの再割り当てが行われる。
If the state of the storage device having the slice is “T1”, the recovery process (duplex recovery process) of the inquiry target segment is started. In the recovery processing, first, the
図10の例では、ストレージ装置110の状態が「T1」となっており、プライマリスライスの再割り当てが行われる。具体的には、メタデータ検索部520からスライス割り当て管理部550へ、仮想ディスクのセグメントを指定したプライマリスライスの再割り当て要求を出力する。すると、スライス割り当て管理部550は、仮想ディスクメタデータ記憶部510から、照会対象セグメントのセカンダリスライスを管理するディスクノード以外のディスクノードで管理されるスライスのうち、空き(状態が「F」)のスライスを検索する。
In the example of FIG. 10, the state of the
次に、スライス割り当て管理部550は、見つけ出した空きスライスを、照会対象セグメントのセカンダリスライスとすることを決定する。また、スライス割り当て管理部550は、照会対象セグメントにセカンダリスライスとして割り当てられているスライスの状態を、プライマリスライスに変更することを決定する。
Next, the slice
図10の例では、ディスクノード200が管理するスライスをセカンダリスライスとして照会対象セグメントに割り当て、ディスクノード300が管理するスライスの状態を、プライマリスライスからセカンダリスライスに変更することが決定される。スライス割り当て管理部550は、決定された再割り当ての内容に基づいて、仮想ディスクメタデータ記憶部510内のメタデータを更新する。
In the example of FIG. 10, it is determined that the slice managed by the
[ステップS16]スライス割り当て管理部550は、ディスクノード200に対して、メタデータの変更要求を送信する。具体的には、スライス割り当て管理部550は、再割り当て後のセカンダリスライス用のメタデータの情報をディスクノード200に送信する。すると、ディスクノード200では、取得した情報に基づいて、ディスクノード200内で保持するメタデータとストレージ装置210内のメタデータとの内容を変更する。これにより、ストレージ装置210内の空きスライスが、照会対象セグメントのセカンダリスライスに変更される。
[Step S16] The slice
[ステップS17]スライス割り当て管理部550は、ディスクノード300に対して、メタデータの変更要求を送信する。具体的には、スライス割り当て管理部550は、再割り当て後のプライマリスライス用のメタデータの情報をディスクノード300に送信する。すると、ディスクノード300では、取得した情報に基づいて、ディスクノード300内で保持するメタデータとストレージ装置310内のメタデータとの内容を変更する。これにより、ストレージ装置310内の照会対象セグメントに割り当てられていたスライスが、セカンダリスライスからプライマリスライスに変更される。
[Step S <b> 17] The slice
[ステップS18]ディスクノード200から制御ノード500に、メタデータの変更完了応答が送信される。
[ステップS19]ディスクノード300から制御ノード500に、メタデータの変更完了応答が送信される。
[Step S18] A metadata change completion response is transmitted from the
[Step S19] A metadata change completion response is transmitted from the
なお、図10には示していないが、各ディスクノード200,300でメタデータの変更処理が完了すると、照会対象セグメントに対する二重化状態回復のためのデータコピーが開始される。具体的には、照会対象セグメントのプライマリスライスに変更されたディスクノード300内のメタデータのデータが、ディスクノード300からディスクノード200へ転送される。そして、照会対象セグメントのセカンダリスライスとして新たに割り当てられたディスクノード200内のスライスに、ディスクノード300から送られたデータが格納される。データコピーが完了した時点で、紹介対象セグメントのリカバリ処理が完了する。
Although not shown in FIG. 10, when the metadata change processing is completed in each of the
このようにして、メタデータ照会要求に起因してスライスの再割り当てが行われる。このとき、スライス割り当て管理部550は、ストレージ装置の状態が「T1」であることにより再割り当てが行われたセグメント(再割り当て済セグメント)をRAM502内に記憶しておく。具体的には、再割り当て済セグメントの仮想ディスクIDとセグメントIDとの組が、RAMに記憶される。再割り当て後にストレージ装置が復帰した場合、復帰したストレージ装置のスライスのうち再割り当て済セグメントに割り当てられていたスライスは、空きスライスに変更されることとなる。
In this way, slice reassignment is performed due to the metadata query request. At this time, the slice
図12は、更新後の仮想ディスクメタデータ記憶部の内容を示す図である。図12に示すように、ディスクノードID「SN−A」、ディスクID「1」、スライスID「1」で示されるスライスのメタデータは、状態が「F」に変更されている。これにより、ストレージ装置110内のスライスの照会対象セグメント(セグメントID「1」)への割り当てが解除される。
FIG. 12 is a diagram showing the contents of the updated virtual disk metadata storage unit. As shown in FIG. 12, the status of the metadata of the slice indicated by the disk node ID “SN-A”, the disk ID “1”, and the slice ID “1” is changed to “F”. As a result, the assignment of the slice in the
また、ディスクノードID「SN−C」、ディスクID「1」、スライスID「1」で示されるスライスのメタデータは、状態が「P」に変更されている。これにより、照会対象セグメントに割り当てられていたストレージ装置310内のスライスが、セカンダリスライスからプライマリスライスに変更される。
Further, the status of the metadata of the slice indicated by the disk node ID “SN-C”, the disk ID “1”, and the slice ID “1” is changed to “P”. Thereby, the slice in the
さらに、ディスクノードID「SN−B」、ディスクID「1」、スライスID「2」で示されるスライスのメタデータは、状態が「S」に変更され、仮想ディスクIDに「VLOX−X」が設定され、セグメントIDに「1」が設定されている。これにより、照会対象セグメントのセカンダリスライスとして、ストレージ装置210内のスライスが割り当てられる。
Furthermore, the status of the metadata of the slice indicated by the disk node ID “SN-B”, the disk ID “1”, and the slice ID “2” is changed to “S”, and “VLOX-X” is set to the virtual disk ID. The segment ID is set to “1”. As a result, the slice in the
また、状態等の内容が変更された各メタデータは、タイムスタンプが「t(n+1)」に更新されている。「t(n+1)」はメタデータの更新時刻である。
図10の説明に戻り、メタデータの更新が完了すると、スライス割り当て管理部550は、メタデータ検索部520に対してスライス再割り当ての完了を通知する。
In addition, the time stamp of each metadata whose contents such as the state are changed is updated to “t (n + 1)”. “T (n + 1)” is a metadata update time.
Returning to the description of FIG. 10, when the update of the metadata is completed, the slice
[ステップS20]メタデータ検索部520は、アクセスノード600に対して照会対象セグメントのプライマリスライスのメタデータを通知する。すると、アクセスノード600のメタデータ照会部610は、取得したメタデータに基づいて、アクセス用メタデータ記憶部560内のメタデータを更新する。その後、メタデータ照会部610は、スライスアクセス要求部630に対して、メタデータの照会が完了したことを通知する。
[Step S20] The
[ステップS21]スライスアクセス要求部630は、メタデータの照会が完了すると、アクセス用メタデータ記憶部620を参照してアクセス対象のスライスを管理するディスクノードを判断し、そのディスクノードへリード要求(リードリトライ)を送信する。リトライ時には、アクセス対象のプライマリスライスは、ディスクノード300で管理されたスライスとなっている。そのため、リードリトライはディスクノード300に対して行われる。
[Step S21] Upon completion of the metadata inquiry, the slice
[ステップS22]ディスクノード300ではリード要求を受け取ると、ストレージ装置310内のスライスからデータを読み出し、読み出したデータをアクセスノード600に送信する。すると、スライスアクセス要求部630は、アクセス指示を出した端末装置に対して取得したデータを送信する。
[Step S22] Upon receiving a read request, the
[ステップS23]図10の例では、ストレージ装置110が故障しているため、検査コマンドの発行からT2が経過しても、ストレージ装置110からの応答は返ってこない。そのため、ディスクノード100のT2検出部140は、検査コマンド発行からT2が経過したことを検出する。そして、T2検出部140は、制御ノード500に対してT2経過通知を送信する。
[Step S23] In the example of FIG. 10, since the
[ステップS24]T2経過通知を受け取った制御ノード500のスライス割り当て管理部550は、ストレージ装置110が故障により使用不可になったことを認識し、ストレージ装置410全体のリカバリ処理を開始する。
[Step S24] Upon receiving the T2 progress notification, the slice
このようにして、ストレージ装置110が故障した場合、故障検出時間の経過を待たずに、ストレージ装置110内のスライスがプライマリスライスとして割り当てられていたセグメント内のデータへのアクセスが可能となる。その結果、アクセスノード600からのアクセスがエラーとなる期間が短くて済む。
In this way, when the
次に、正常に動作しているストレージ装置110の負荷が一時的に過大であったため検査コマンドへの応答が遅れた場合のスライス切り替え処理について説明する。
図13は、ストレージ装置の負荷が過大となったときのスライス切り替え処理の手順を示すシーケンス図である。この例では、ディスクノード100に接続されたストレージ装置110の負荷が一時的に過大になったものとする。なお、図13のステップS31〜ステップS42の処理は、それぞれ図10のステップS11〜S22の処理と同じである。そこで、ステップS43以降の処理をステップ番号に沿って説明する。
Next, the slice switching process when the response to the inspection command is delayed because the load on the normally operating
FIG. 13 is a sequence diagram illustrating a procedure of slice switching processing when the load on the storage apparatus becomes excessive. In this example, it is assumed that the load on the
[ステップS43]ディスクノード100のT1/復帰検出部130は、検査コマンドに対するストレージ装置110からの応答を受信する。これによりT1/復帰検出部130は、ストレージ装置110がアクセス可能な状態に復帰したことを検出する。すると、T1/復帰検出部130は、制御ノード500に対してストレージ装置110の復帰通知を送信する。
[Step S43] The T1 /
[ステップS44]制御ノード500のスライス割り当て管理部550は、復帰通知を受け取ると、ディスクノード100に対して、メタデータの変更要求を送信する。具体的には、スライス割り当て管理部550は、仮想ディスクメタデータ記憶部510を参照し、ストレージ装置110のスライスのうち、メタデータ照会に基づくスライスの再割り当てを行ったセグメント(再割り当て済セグメント)に割り当てられていたスライスを抽出する。そして、スライス割り当て管理部550は、該当するスライスのセグメントへの割り当てを解除(状態を「F」として空きスライスに変更)するためのメタデータ変更要求をディスクノード100に送信する。
[Step S44] Upon receiving the return notification, the slice
[ステップS45]ディスクノード100のスライス管理部160は、メタデータ更新要求に基づいて、メタデータ記憶部150内の指定されたスライスのメタデータを更新する。スライス管理部160は、メタデータの更新後、変更完了応答を制御ノード500に送信する。
[Step S45] The
このようにして、ストレージ装置110の過負荷状態が解消し、ストレージ装置110が復帰した場合、ディスクノード100側のメタデータを更新することで、メタデータ間の矛盾が防止される。すなわち、メタデータの再割り当てが行われたことにより、再割り当て済セグメントには、プライマリスライス、セカンダリスライス共に、ストレージ装置110のスライスとは異なるストレージ装置のスライスが割り当てられている。そのため、ストレージ装置110が復帰すると、再割り当て済セグメントに割り当てられたスライス(図13の例ではプライマリスライス)が重複して存在することとなってしまう。そこで、ストレージ装置110内のスライスを空き(Free)の状態に変更することで、割り当て関係の矛盾の発生を防止している。
In this way, when the overload state of the
ところで、ストレージ装置110のメタデータの変更をストレージ装置110復帰後に行うのは、復帰が確認できるまではストレージ装置110が故障している可能性が残されており、正常にメタデータを更新できない可能性があるためである。そこで、制御ノード500は、スライスの再割り当てを行った場合、再割り当て済セグメントをRAM内に記憶している。再割り当て済セグメントを記憶しておくことで、ストレージ装置110復帰時に空き状態とすべきスライスを判断することができる。
By the way, the metadata of the
ここで、ストレージ装置110が復帰する前に制御ノード500に障害が発生し、制御ノード500のRAM502内のデータが失われる場合も有り得る。例えば、制御ノード500に障害が発生したことにより、代替のノードに機能が引き継がれた場合(ファイルオーバ)や、制御ノード500の再起動が行われた場合である。このような場合、制御ノード500はメタデータを各ディスクノード100,200,300から収集して、仮想ディスクメタデータテーブル511を再構築する。このとき、制御ノード500がフェイルオーバまたは再起動する間に該当ディスクが復帰すると、再割り当て済セグメントに割り当てられたスライスを示すメタデータが3つ収集され矛盾が生じる。これを防ぐため、仮想ディスクメタデータテーブル511を再構築した制御ノード500は、メタデータに付与されているタイムスタンプを参照して、空き状態とすべきスライスを判断する。
Here, there is a case where a failure occurs in the
図14は、タイムスタンプを用いた矛盾解消処理を示すシーケンス図である。以下、図14に示す処理をステップ番号に沿って説明する。なお、以下の処理は、制御ノード500が再起動またはフェイルオーバされたときに実行される。
FIG. 14 is a sequence diagram showing a conflict resolution process using a time stamp. In the following, the process illustrated in FIG. 14 will be described in order of step number. The following process is executed when the
[ステップS51]制御ノード500のスライス割り当て管理部550は、各ディスクノード100,200,300に対して、メタデータ要求を送信する。
[ステップS52]メタデータ要求を受信したディスクノード100のスライス管理部160は、メタデータ記憶部150またはストレージ装置110からメタデータを取得し、制御ノード500に送信する。他のディスクノード200,300も同様にメタデータを制御ノード500に送信する。
[Step S51] The slice
[Step S <b> 52] The
各ディスクノード100,200,300からメタデータを収集した制御ノード500では、スライス割り当て管理部550が、収集したメタデータに基づいて仮想ディスクメタデータテーブル511を再構成する。そして、スライス割り当て管理部550は、メタデータの整合性チェックを行う。整合性チェックでは、3つ以上のスライスが割り当てられているセグメントの存在の有無を確認する。次に、スライス割り当て管理部550は、該当するセグメントがある場合、割り当てられているスライスのメタデータを比較する。そして、スライス割り当て管理部550は、状態(プライマリスライスまたはセカンダリスライス)が同一のスライスのうち、タイムスタンプの時刻が最新のスライス以外を、割り当てを解除すべきスライスと判断する。
In the
[ステップS53]スライス割り当て管理部550は、割り当てを解除すべきスライスを管理するディスクノード(図14の例では、ディスクノード100)に対して、該当するスライスの状態を「F」に変更するためのメタデータ変更要求を送信する。
[Step S53] The slice
[ステップS54]ディスクノード100のスライス管理部160は、メタデータ変更要求に応じてメタデータ記憶部150とストレージ装置110とのメタデータの内容を更新する。そして、スライス管理部160は、変更完了の応答を制御ノード500に返す。
[Step S54] The
図15は、再構成された仮想ディスクメタデータテーブルの例を示す図である。この例は、ステップS38,S39後の仮想ディスクメタデータテーブル511更新後、ステップS43の復帰通知前に、制御ノード500が再起動された場合を想定している。
FIG. 15 is a diagram illustrating an example of a reconfigured virtual disk metadata table. In this example, it is assumed that the
図15の例では、ディスクノードID「SN−A」、ディスクID「1」、およびスライスID「1」で特定されるスライスと、ディスクノードID「SN−C」、ディスクID「1」、およびスライスID「1」で特定されるスライスとが、セグメントID「1」のセグメントにプライマリスライス(状態「P」)として割り当てられている。そこで、スライス割り当て管理部550によって重複して割り当てられた2つのスライスのメタデータにおけるタイムスタンプが比較される。
In the example of FIG. 15, the slice specified by the disk node ID “SN-A”, the disk ID “1”, and the slice ID “1”, the disk node ID “SN-C”, the disk ID “1”, and The slice identified by the slice ID “1” is assigned as the primary slice (state “P”) to the segment with the segment ID “1”. Therefore, the time stamps in the metadata of the two slices assigned redundantly by the slice
ディスクノードID「SN−A」のスライスのタイムスタンプは「t1」であり、ディスクノードID「SN−C」のスライスのタイムスタンプは「t(n+1)」である。「t(n+1)」は「t1」よりも時刻が新しいため、ディスクノードID「SN−C」のスライスの方が正しいスライスである。従って、ディスクノードID「SN−A」で示されるディスクノード100に対して、ディスクID「1」のストレージ装置110内のスライスID「1」のスライスの状態を「F」(空き状態を示す)に変更するためのメタデータ変更要求が送信される。
The time stamp of the slice with the disk node ID “SN-A” is “t1”, and the time stamp of the slice with the disk node ID “SN-C” is “t (n + 1)”. Since “t (n + 1)” has a newer time than “t1”, the slice with the disk node ID “SN-C” is the correct slice. Therefore, for the
このようにして、ディスクノード100からのT1経過通知に起因するメタデータの再割り当てからディスクノード100からの復帰通知までの間に制御ノード500の再起動やファイルオーバが発生しても、タイムスタンプを用いてメタデータの整合性を保つことができる。すなわち、フェイルオーバまたは再起動により実行できなかったメタデータの更新を、フェイルオーバまたは再起動後に行うことが可能となる。
In this manner, even if the
以上のように、第1の実施の形態によれば、故障検出時間「T2」と動作不調検出時間「T1」を分離することにより、以下の効果を持つ。
1.故障検出時間「T2」を長くとってもアクセスが長時間止まらない。
As described above, according to the first embodiment, by separating the failure detection time “T2” from the malfunction detection time “T1”, the following effects are obtained.
1. Even if the failure detection time “T2” is long, the access does not stop for a long time.
ディスク装置は内部で切り替えが発生するため、故障ではないがしばらく不応答(分オーダ)になるものがある。このような装置を使用しても動作不調検出時間「T1」(例えば1秒)でアクセスを復帰できる。 Since the disk device is switched internally, there is a disk device that does not fail but does not respond (minute order) for a while. Even when such a device is used, the access can be restored with the malfunction detection time “T1” (for example, 1 second).
2.ディスク装置ごとに故障検出時間を調整しなくてよい。
従来のマルチノードストレージでは誤検出を起こさず、できるだけ早くアクセスを復帰させるためにディスク装置ごとに故障検出時間を調整する必要があった。第1の実施の形態によれば、故障検出時間「T2」を大部分の装置が応答する時間(例えば1分)に設定し、動作不調検出時間「T1」を例えば1秒に設定する。故障検出時間「T2」を長く設定したことで、どのようなタイプのストレージ装置であっても、故障の誤検出をすることがなくなる。
2. It is not necessary to adjust the failure detection time for each disk device.
In the conventional multi-node storage, it is necessary to adjust the failure detection time for each disk device in order to restore access as soon as possible without causing erroneous detection. According to the first embodiment, the failure detection time “T2” is set to a time for which most devices respond (for example, 1 minute), and the malfunction detection time “T1” is set to, for example, 1 second. Since the failure detection time “T2” is set to be long, any type of storage device is not erroneously detected as a failure.
このように、信頼性の高い故障検出と、動作不調時における短時間でのアクセス環境の回復とを両立することが可能となる。
[第2の実施の形態]
第2の実施の形態は、T2を用いずに、管理ノード30からのディスクノード切り離し指示に基づいてリカバリ処理を開始するものである。
As described above, it is possible to achieve both the reliable failure detection and the recovery of the access environment in a short time when the operation is malfunctioning.
[Second Embodiment]
In the second embodiment, recovery processing is started based on a disk node disconnection instruction from the
第1の実施の形態では、ディスクノード100が、検査コマンド発行からT2が経過するまでストレージ装置110から応答がなければ、ディスクノード100からT2経過通知が出力される。ただし、T2として適切な値を決定するのが困難な場合がある。例えば、接続されるストレージ装置110,210,310の製造元や性能が異なる場合、適切なT2も異なってくる。
In the first embodiment, if the
また、第1の実施の形態で示したように、検査コマンドの発行からT1経過するまで無応答であれば、スライスの再割り当てをするようにしたことで、ストレージ装置の復帰を待たずにデータアクセスが可能となる。そのため、T2の検出を行わなくても、アクセスノードからのデータアクセスには影響がない。 In addition, as shown in the first embodiment, if there is no response until the time T1 elapses from the issue of the inspection command, the slice is reassigned so that the data is not waited for the storage device to return. Access is possible. Therefore, even if the detection of T2 is not performed, the data access from the access node is not affected.
一方、ストレージ装置が故障しているのであれば、そのストレージ装置内のデータのリカバリが必要である。そこで、第2の実施の形態では、管理者がストレージ装置の故障を確認した場合に、管理ノード30を介してストレージ装置の切り離しを指示できるようにした。
On the other hand, if the storage device is out of order, it is necessary to recover the data in the storage device. Therefore, in the second embodiment, when the administrator confirms the failure of the storage device, the storage device can be instructed to be disconnected via the
図16は、管理ノードからディスクノード切り離しを指示する場合の処理手順を示すシーケンス図である。なお、図16に示すステップS61〜S72,S74の処理は、それぞれ図10に示したステップS11〜S22,S24と同じ処理である。そこで、図10とは異なるステップS73の処理について説明する。 FIG. 16 is a sequence diagram illustrating a processing procedure in the case of instructing the disk node separation from the management node. Note that the processes in steps S61 to S72 and S74 shown in FIG. 16 are the same processes as steps S11 to S22 and S24 shown in FIG. 10, respectively. Therefore, the process of step S73 different from FIG. 10 will be described.
[ステップS73]管理ノード30は、ディスクノード100,200,300や制御ノード500から、運用状況を示す各種情報を取得することができる。取得した情報は、管理ノード30のモニタに表示される。従って、ストレージ装置110が検査コマンドに対する応答を返していないことも、管理ノード30の画面に表示される。
[Step S <b> 73] The
マルチノードストレージシステムの管理者は、管理ノード30が画面を見ることで、ストレージ装置110が故障している可能性があることを認識する。管理者は、ストレージ装置110に対する各種制御コマンド(例えば再起動)を発行するなどの作業を行う。その結果、ストレージ装置110が故障していることが確認できると、管理者は、管理ノード30に対してディスクノード100の切り離しを指示する操作入力を行う。すると、管理ノード30は、制御ノード500に対してディスクノード切り離し要求を送信する。
The administrator of the multi-node storage system recognizes that there is a possibility that the
このディスクノード切り離し要求に応答して、制御ノード500の制御の元、リカバリ処理(ステップS74)が実行され、ディスクノード100がマルチノードストレージシステムから切り離される。
In response to this disk node disconnection request, recovery processing (step S74) is executed under the control of the
このようにして、管理者からの指示があるまで、ストレージ装置全体に対するリカバリ処理の開始を待つことができる。
[第3の実施の形態]
第3の実施の形態は、ディスクノードからのスライスを指定したスライス異常通知に基づいて、指定されたスライスが割り当てられていたセグメントへのスライスの再割り当てを行うものである。
In this way, it is possible to wait for the start of recovery processing for the entire storage apparatus until an instruction from the administrator is given.
[Third Embodiment]
In the third embodiment, a slice is reassigned to a segment to which a designated slice has been assigned based on a slice abnormality notification that designates a slice from a disk node.
第1、第2の実施の形態では、アクセスノードからメタデータ照会要求があったときに、制御ノードにおいて、メタデータ照会の対象となるセグメントに対するスライスの再割り当てを行っている。この場合、メタデータの照会処理の延長で、ディスクノードのメタデータの変更処理が実施される。スライスの再割り当て処理によりメタデータが変更されるディスクノードが正常に動作していれば、図10に示すメタデータ照会要求の送信(ステップS15)からメタデータ通知(ステップS20)までの時間は、短時間ですむ。 In the first and second embodiments, when there is a metadata inquiry request from the access node, the control node reassigns the slice to the segment that is the object of the metadata inquiry. In this case, the metadata change processing of the disk node is performed as an extension of the metadata inquiry processing. If the disk node whose metadata is changed by the slice reassignment process is operating normally, the time from the transmission of the metadata inquiry request (step S15) to the metadata notification (step S20) shown in FIG. It takes a short time.
ところが、メタデータを変更するディスクノードが過負荷の場合、ディスクノードから制御ノードへメタデータの変更完了の応答が返ってこない場合がある。すると、制御ノードからアクセスノードへのメタデータ通知も遅れてしまう。 However, when the disk node that changes the metadata is overloaded, there is a case where the response of completion of the metadata change is not returned from the disk node to the control node. Then, metadata notification from the control node to the access node is also delayed.
また、制御ノードでは、メタデータ照会要求に応じたメタデータ検索処理を1つのプロセスで実行している場合がある。それは、システムの設計上、複数のプロセスで並列実行するよりも、単一のプロセスで短い処理を繰り返し実行した方が、全体的に処理効率が高い場合があるためである。例えば、複数のプロセスでメタデータ照会要求に応じたメタデータ検索処理を行うと、受信したメタデータ照会要求の振り分け処理などの余分な処理が必要となり、かえって処理効率が低下する場合がある。さらに、メタデータ検索用のプロセスが多数起動されると、そのプロセスでメモリなどの資源が多く消費されてしまい、制御ノード全体の処理効率を低下させる原因にもなる。 In addition, in the control node, there is a case where the metadata search process corresponding to the metadata inquiry request is executed in one process. This is because, in terms of system design, overall processing efficiency may be higher when short processes are repeatedly executed in a single process than in parallel execution in a plurality of processes. For example, when metadata search processing corresponding to a metadata inquiry request is performed in a plurality of processes, extra processing such as distribution processing of the received metadata inquiry request is required, and the processing efficiency may be lowered. Furthermore, if a large number of processes for searching for metadata are started, resources such as memory are consumed in the processes, which causes a reduction in processing efficiency of the entire control node.
1つのプロセスで多数のメタデータ照会要求に応じた処理を受け持っている場合、1つの処理に時間がかかると、他のメタデータ照会要求に応じた処理が待たされることとなる。すると、アクセスノードがメタデータ照会の結果を取得するまでに時間がかかり、マルチノードストレージシステムとしてのサービス効率が低下する。 When one process takes charge of processing corresponding to a large number of metadata query requests, if one process takes time, processing corresponding to another metadata query request is awaited. Then, it takes time until the access node acquires the result of the metadata inquiry, and the service efficiency as the multi-node storage system decreases.
そこで、第3の実施の形態では、各ディスクノードは、動作不調検出時刻「T1」を検出したストレージ装置内のスライスへのアクセス要求を受け取ると、制御ノードに対してスライス異常通知を行うようにする。制御ノードでは、メタデータ照会要求に応じた処理の延長としてスライス再割り当てを行うのではなく、ディスクノードからのスライス異常通知に応じてスライス再割り当てを行う。これにより、メタデータの照会要求への応答を遅延させずに、アクセス対象となったスライスが割り当てられていたセグメントの再割り当てが可能となる。 Therefore, in the third embodiment, when each disk node receives an access request to a slice in the storage apparatus that has detected the malfunction detection time “T1”, it notifies the control node of a slice abnormality. To do. The control node does not perform slice reassignment as an extension of processing in response to the metadata inquiry request, but performs slice reassignment in response to a slice abnormality notification from the disk node. This makes it possible to reassign the segment to which the slice to be accessed has been assigned without delaying the response to the metadata inquiry request.
第3の実施の形態のシステム構成は、図2に示した第1の実施の形態のシステム構成と同様である。ただし、ディスクノードと制御ノードとの機能が異なる。そこで、第3の実施の形態におけるディスクノードと制御ノードとの機能について説明する。 The system configuration of the third embodiment is the same as the system configuration of the first embodiment shown in FIG. However, the functions of the disk node and the control node are different. Therefore, the functions of the disk node and the control node in the third embodiment will be described.
図17は、第3の実施の形態におけるマルチノードストレージシステムの各装置の機能を示すブロック図である。図2の各ディスクノード100,200,300の内部機能を、図17に示したディスクノード400と同様の機能に置き換え、図2の制御ノード500の内部機能を図17に示した制御ノード800と同様の機能に置き換えることで、第3の実施の形態に係るマルチノードストレージシステムが構築できる。
FIG. 17 is a block diagram illustrating functions of each device of the multi-node storage system according to the third embodiment. The internal functions of the
ディスクノード400は、スライスアクセス処理部420、T1/復帰検出部430、T2検出部440、メタデータ記憶部450、スライス管理部460、および被アクセススライス検出部470を有している。
The
スライスアクセス処理部420は、図5に示したT1/復帰検出部130が有している機能を有する、さらに、スライスアクセス処理部420は、アクセスノード600からのアクセス要求にエラーを返す場合、エラーとなったストレージ装置のスライスに関する情報を被アクセススライス検出部470に通知する機能を有している。
The slice
T1/復帰検出部430は、図5に示したT1/復帰検出部130が有している機能に加え、T1を検出した場合、その旨を被アクセススライス検出部470に通知する機能を有している。また、T1/復帰検出部430は、T1検出後にストレージ装置410が復帰した場合、その旨を被アクセススライス検出部470に通知する機能を有している。
In addition to the functions of the T1 /
T2検出部440は、図5に示したT2検出部140が有している機能に加え、T2を検出した場合、その旨を被アクセススライス検出部470に通知する機能を有している。
メタデータ記憶部450は、図5に示したメタデータ記憶部450が記憶している情報に加え、各スライスの二重化状態を示す情報を記憶している。二重化状態を示す情報としては、二重化状態には、正常とコピー中とがある。正常は、ペアとなったスライスとの間の二重化が保たれている(格納されているデータの同一性が保たれている)状態である。コピー中は、ペアとなったスライスとの間で二重化を確立するためにデータをコピーしている状態である。
In addition to the function of the
The
スライス管理部460は、図5に示したスライス管理部160が有している機能に加え、スライスの二重化状態を管理し、各スライスの現在の二重化状態をメタデータ記憶部450に設定する機能を有している。
In addition to the functions of the
被アクセススライス検出部470は、アクセスノード600からのアクセス要求がエラーとなったスライスに関するスライス異常通知を制御ノード800に送信する。具体的には、被アクセススライス検出部470は、T1/復帰検出部430からの通知によって、ストレージ装置410のT1が検出されたこと、およびその後復帰したことを認識する。また、被アクセススライス検出部470は、T2検出部440からの通知によって、ストレージ装置410のT2が検出されたことを認識する。さらに、被アクセススライス検出部470は、スライスアクセス処理部420からの通知によって、ストレージ装置410内のスライスへのアクセスがエラーになったことを認識する。
The to-be-accessed
そして、被アクセススライス検出部470は、ストレージ装置410内のスライスへのアクセスがエラーになると、ストレージ装置410の状態を確認する。すなわち、被アクセススライス検出部470は、ストレージ装置410の検査コマンドに対する応答がなく、T1検出後であって、T2検出前であるか否かを判断する。この条件が満たされていた場合、被アクセススライス検出部470は、アクセス対象となっていたスライスを指定したスライス異常通知を制御ノード800に送信する。
Then, the accessed
制御ノード800は、仮想ディスクメタデータ記憶部810、メタデータ検索部820、割り当て可否記憶部830、ストレージ状態管理部840、およびスライス割り当て管理部850を有している。
The
仮想ディスクメタデータ記憶部810の機能は、図5に示した仮想ディスクメタデータ記憶部510の機能と同様である。
メタデータ検索部820の機能は、図5に示したメタデータ検索部520の機能と同様である。ただし、スライスの再割り当てをスライス割り当て管理部550に要求する機能は不要である。
The function of the virtual disk
The function of the
割り当て可否記憶部830は、ストレージ装置ごとに、そのストレージ装置内のスライスをセグメントに割り当て可能か否かを示す情報(割り当て可否情報)を記憶する記憶機能である。例えば、制御ノード800のRAM内の記憶領域の一部が、割り当て可否記憶部830として使用される。
The allocation
ストレージ状態管理部840は、ディスクノード400からの通知に応じて、ストレージ状態記憶部530内に示されるストレージ装置410の状態を変更する。具体的には、ディスクノード400からT1経過通知を受け取ると、ストレージ状態管理部540は、割り当て可否記憶部830内に示されるストレージ装置410の状態を、割り当て不可の状態とする。また、ディスクノード400から復帰通知を受け取ると、ストレージ状態管理部540は、ストレージ状態記憶部530内に示されるストレージ装置410の状態を、割り当て可の状態とする。
The storage
スライス割り当て管理部850は、仮想ディスク60のセグメントへのスライスの割り当てを管理する。例えば、スライス割り当て管理部850は、ディスクノード400からスライス異常通知を受け取ると、スライス異常通知に示されるスライスが割り当てられているセグメントに対して、別のスライスを割り当てる。
The slice
また、スライス割り当て管理部850は、ディスクノード400からT2経過通知を受け取ると、ストレージ装置410内のスライスが割り当てられたセグメントのリカバリ処理を開始する。スライス割り当て管理部850は、リカバリ処理において、リカバリ対象セグメントに割り当てられたスライスのうち、ストレージ装置410以外のストレージ装置(正常動作ストレージ装置)のスライスをすべてプライマリスライスとする。次に、スライス割り当て管理部850は、リカバリ対象セグメントのセカンダリスライスとして、ストレージ装置210,310のスライスを割り当てる。そして、スライス割り当て管理部850は、割り当て結果に応じたメタデータの更新要求を、正常動作ストレージ装置を管理するディスクノードに送信する。メタデータの更新要求を受け取ったディスクノードにおいてメタデータの更新が完了すると、スライス割り当て管理部850は、仮想ディスクメタデータ記憶部810内のメタデータを更新する。
When the slice
次に、各ノードで管理されているデータの構造について説明する。
図18は、メタデータ記憶部のデータ構造例を示す図である。メタデータ記憶部450には、メタデータテーブル451が格納されている。メタデータテーブル451には、ディスクノードID、ディスクID、スライスID、状態、仮想ディスクID、セグメントID、仮想ディスクアドレス、ペアのディスクノードID、ペアのディスクID、ペアのスライスID、タイムスタンプ、および二重化状態の欄が設けられている。メタデータテーブル451内の横方向に並べられた情報が互いに関連付けられ、メタデータを示す1つのレコードを構成している。メタデータテーブル451の二重化状態以外の各欄に設定される情報は、図7に示したメタデータテーブル151の同名の欄と同種の情報である。
Next, the structure of data managed by each node will be described.
FIG. 18 is a diagram illustrating an example of the data structure of the metadata storage unit. A metadata table 451 is stored in the
二重化状態の欄には、対応するスライスの二重化状態が設定される。ペアとなったスライスとの間の二重化が保たれていれば「正常」、ペアとなったスライスとの間でデータのコピー処理中であれば「コピー中」と設定される。 The duplex status of the corresponding slice is set in the duplex status column. “Normal” is set if duplication between the paired slices is maintained, and “copying” is set if data is being copied between the paired slices.
図19は、仮想ディスクメタデータ記憶部のデータ構造例を示す図である。仮想ディスクメタデータ記憶部810には、仮想ディスクメタデータテーブル811が格納されている。仮想ディスクメタデータテーブル811には、ディスクノードID、ディスクID、スライスID、状態、仮想ディスクID、セグメントID、仮想ディスクアドレス、ペアのディスクノードID、ペアのディスクID、ペアのスライスID、タイムスタンプ、および二重化状態の欄が設けられている。仮想ディスクメタデータテーブル811内の横方向に並べられた情報が互いに関連付けられ、メタデータを示す1つのレコードを構成している。仮想ディスクメタデータテーブル811の各欄に設定される情報は、メタデータテーブル451の同名の欄と同種の情報である。
FIG. 19 is a diagram illustrating an example of the data structure of the virtual disk metadata storage unit. The virtual disk
図20は、割り当て可否記憶部のデータ構造例を示す図である。割り当て可否記憶部830には、割り当て可否管理テーブル831が格納されている。割り当て可否管理テーブル831には、ディスクノードID、ディスクID、および可/不可の欄が設けられている。
FIG. 20 is a diagram illustrating an example of a data structure of the allocation availability storage unit. The
ディスクノードIDの欄には、ディスクノードを一意に識別するための識別情報(ディスクノードID)が設定される。ディスクIDの欄には、ディスクノードに接続されたストレージ装置の識別情報(ディスクID)が設定される。 In the disk node ID column, identification information (disk node ID) for uniquely identifying a disk node is set. In the disk ID column, identification information (disk ID) of the storage apparatus connected to the disk node is set.
可/不可の欄には、各ストレージ装置のスライスをセグメントに割り当て可能か否かを示すフラグが設定される。割り当てが可能な場合、可/不可の欄には「可」の値が設定される。割り当てが不可能な場合、可/不可の欄には「不可」の値が設定される。 A flag indicating whether or not a slice of each storage device can be assigned to a segment is set in the possible / impossible column. When assignment is possible, a value of “permitted” is set in the field of possible / impossible. When assignment is impossible, a value of “impossible” is set in the possible / impossible column.
このような構成のマルチノードストレージシステムにおいて、検査コマンドに対するストレージ装置からの応答が、T1経過しても返されない場合、以下のようなスライス切り替え処理が実行される。 In the multi-node storage system having such a configuration, when a response from the storage apparatus to the inspection command is not returned even after T1 elapses, the following slice switching process is executed.
図21は、ストレージ装置故障時のスライス切り替え処理の手順を示すシーケンス図である。図21の例では、ディスクノード400のディスクノードIDは「SN−A」であり、ディスクノード400aのディスクノードIDは「SN−C」であり、ディスクノード400bのディスクノードIDは「SN−C」であるものとする。ディスクノード400a,400bは、ディスクノード400と同じ機能(図17参照)を有している。
FIG. 21 is a sequence diagram illustrating a procedure of slice switching processing when a storage apparatus fails. In the example of FIG. 21, the disk node ID of the
なお、図21に示すステップS88〜S95の処理は、それぞれ図10に示したステップS16〜S19,S21〜S24と同じ処理である。そこで、図10とは異なる処理について説明する。 21 are the same as steps S16 to S19 and S21 to S24 shown in FIG. 10, respectively. Therefore, processing different from that in FIG. 10 will be described.
[ステップS81]ディスクノード400のT1/復帰検出部430は、定期的にストレージ装置410の動作確認を行う。その詳細は、ステップS11の説明と同様である。T1/復帰検出部430は、動作確認により、T1の経過を検出すると、制御ノード800に対してT1経過通知を送信する。T1経過通知には、ディスクノード400のディスクノードIDとストレージ装置410のディスクIDとが含まれる。T1/復帰検出部430は、その後もストレージ装置410からの応答を待つ。
[Step S81] The T1 /
制御ノード800のストレージ状態管理部840は、T1経過通知を受信すると、ストレージ装置410の状態を切り替える。すなわち、ストレージ状態管理部840は、T1経過通知に示されるディスクノードIDとディスクIDとの組みに対応する情報を割り当て可否記憶部830から検索する。そして、ストレージ状態管理部840は、該当するストレージ装置に関する情報の可/不可の情報を「不可」に変更する。
When the storage
図22は、割り当て可否更新後の割り当て可否記憶部の例を示す図である。図22に示すように、ディスクノードID「SN−A」とディスクID「1」との組に対応する状態が「不可」に変更されている。これにより、制御ノード800では、以後、ディスクノード400に接続されたストレージ装置410のスライスをセグメントに割り当てることができないことを認識する。
FIG. 22 is a diagram illustrating an example of the assignment availability storage unit after the assignment availability update. As shown in FIG. 22, the state corresponding to the set of the disk node ID “SN-A” and the disk ID “1” is changed to “impossible”. Thereby, the
図21の説明に戻る。
[ステップS82]割り当て可否の切り替えが完了すると、ストレージ状態管理部840は、切り替え完了応答をディスクノード400に送信する。
Returning to the description of FIG.
[Step S <b> 82] When the switching of the allocation possibility is completed, the storage
[ステップS83]一方、アクセスノード600のスライスアクセス要求部630は、ユーザによる端末装置21,22,23への操作入力などに応じて仮想ディスク60内のデータへのアクセスが発生すると、アクセス用メタデータ記憶部620を参照し、アクセス対象のデータを管理しているディスクノードを判断する。図21の例では、ディスクノード400が管理するスライスへのリードのアクセスが発生したものする。すると、スライスアクセス要求部630は、ディスクノード400に対してアクセス対象データのリード要求を送信する。ディスクノード400のスライスアクセス処理部420は、メタデータ記憶部450を参照して、アクセス対象スライスが自己の管理するストレージ装置410内のスライスであることを確認し、ストレージ装置410内の該当スライス内のデータを指定したリードアクセスを行う。
[Step S83] On the other hand, the slice
図21の例では、T1/復帰検出部430によるT1の経過が検出された後に、アクセスノード600からのリード要求が出されている。この場合、ストレージ装置410は故障しているか、検査コマンドに対する応答が直ぐに返せない程の過負荷状態である。ストレージ装置410が故障していれば、ストレージ装置410へのアクセスはエラーになる。また、ストレージ装置410が過負荷状態であれば、高い頻度でデータアクセスもエラーとなる。図21の例では、ストレージ装置410(ディスクノードID「SN−A」)の故障により、ストレージ装置410(ディスクID「1」)の先頭のスライス(スライスID「1」)へのリード要求がエラーになっている。
In the example of FIG. 21, a read request is issued from the
[ステップS84]ディスクノード400のスライスアクセス処理部420は、アクセスノード600からのリード要求に対してエラーを応答する。すると、アクセスノード600のスライスアクセス要求部630は、メタデータ照会部610に対してエラーの発生を通知する。このとき、スライスアクセス要求部630は、アクセスがエラーとなったセグメントに関する仮想ディスクIDとセグメントIDとについてもメタデータ照会部610に伝える。
[Step S84] The slice
[ステップS85]一方、ディスクノード400のスライスアクセス処理部420は、リード要求に応じたストレージ装置410へのデータリードに失敗すると、被アクセススライス検出部470に対してエラーの発生を通知する。その際、アクセス対象となったストレージ装置のスライスを示すディスクIDとスライスIDとの組みが、被アクセススライス検出部470に渡される。
[Step S85] On the other hand, when the data access to the
被アクセススライス検出部470は、エラーが発生したストレージ装置の状態を判断する。すなわち、被アクセススライス検出部470は、T1/復帰検出部430からストレージ装置410のT1の経過が検出されたことの通知を受けたがまだ復帰の通知を受けていないという第1の条件と、T2検出部440からストレージ装置410のT2の経過が検出されたことの通知を受けていないとう第2の条件とが共に満たされるか否かを判断する。条件が満たされていれば、被アクセススライス検出部470は、ストレージ装置410は故障の可能性がるものの、まだ故障であるとの判断は確定していない(ストレージ装置410全体のリカバリ処理は開始されていない)と判断する。そこで、条件が満たされていた場合、被アクセススライス検出部470は、アクセス対象となったスライスの状態を異常(Bad)とするべき旨をスライス管理部460に通知する。すると、スライス管理部460は、メタデータ記憶部450内のアクセス対象となったスライスに対応するメタデータを検索し、状態を「B(Bad)」(異常であることを示す)に変更する。さらに、スライス管理部460は、ストレージ装置410が復帰するのを待って、ストレージ装置410内のアクセス対象スライスに対応するメタデータの状態を「B」に変更する。
The accessed
さらに、被アクセススライス検出部470は、上記第1と第2の条件が満たされた場合、制御ノード800に対してスライス異常通知を送信する。スライス異常通知には、アクセス対象となったストレージ装置のスライスを示すディスクIDとスライスIDとの組みが含められる。
Furthermore, the accessed
スライス異常通知を受け取った制御ノード800では、スライス割り当て管理部850がアクセス対象となったスライスが割り当てられているセグメント(リカバリ対象セグメント)へのスライス再割り当て処理を行う。具体的には、スライス割り当て管理部850は、仮想ディスクメタデータ記憶部810を参照し、スライス異常通知で示されたスライス(異常スライス)がリカバリ対象セグメントのプライマリスライスかセカンダリスライスかを判断する。
In the
異常スライスがプライマリスライスであれば、スライス割り当て管理部850は、リカバリ対象セグメントの現在のプライマリスライスの状態を空きに変更し、セカンダリスライスをプライマリスライスに変更する。その後、スライス割り当て管理部850は、新たなプライマリスライスを管理するディスクノードとは別のディスクノードで管理されている空きスライスを、リカバリ対象セグメントのセカンダリスライスとして割り当てる。
If the abnormal slice is the primary slice, the slice
異常スライスがセカンダリスライスであれば、スライス割り当て管理部850は、リカバリ対象セグメントの現在のセカンダリスライスの状態を空きに変更する。その後、スライス割り当て管理部850は、現在のプライマリスライスを管理するディスクノードとは別のディスクノードで管理されている空きスライスを、リカバリ対象セグメントのセカンダリスライスとして割り当てる。
If the abnormal slice is a secondary slice, the slice
ところで、図21の例では、アクセスノード600からのリード要求に起因してスライス異常通知が出力されている。リード要求はプライマリスライスに対してのみ行われるため、このとき検出される異常スライスはプライマリスライスである。セカンダリスライスが異常スライスとして検出されるのは、ライト要求が出された場合である。例えば、ディスクノード400のストレージ装置410の動作が正常(検査コマンドにT1内に応答を返す)であるときに、アクセスノード600からディスクノード400にライト要求が出されると、ストレージ装置410内のスライスデータが書き込まれる。この際、二重化を維持するために、スライス管理部460によって、アクセス対象のスライスとペアを組んでいるセカンダリスライスにも同じデータが書き込まれる。セカンダリスライスへのデータの書き込みがエラーになると、セカンダリスライスを管理するディスクノードから制御ノード800へスライス異常通知が出される。そして、スライス割り当て管理部850では、異常スライスがセカンダリスライスであると認識し、リカバリ対象セグメントへのセカンダリスライスの再割り当て処理を行う。
Incidentally, in the example of FIG. 21, a slice abnormality notification is output due to a read request from the
スライス割り当て管理部850は、リカバリ対象セグメントのスライスの再割り当ての内容が確定すると、仮想ディスクメタデータ記憶部810の内容を更新する。
図23は、更新後の仮想ディスクメタデータ記憶部の内容を示す図である。図23に示すように、ディスクノードID「SN−A」、ディスクID「1」、スライスID「1」で示されるスライスのメタデータは、状態が「B」に変更されている。なお、状態「B」は、対応するスライスが異常であることを示す。これにより、ストレージ装置410内のスライスの照会対象セグメント(セグメントID「1」)への割り当てが解除される。
The slice
FIG. 23 is a diagram showing the contents of the updated virtual disk metadata storage unit. As shown in FIG. 23, the status of the metadata of the slice indicated by the disk node ID “SN-A”, the disk ID “1”, and the slice ID “1” is changed to “B”. The state “B” indicates that the corresponding slice is abnormal. Thereby, the assignment of the slice in the
また、ディスクノードID「SN−C」、ディスクID「1」、スライスID「1」で示されるスライスのメタデータは、状態が「P」に変更されている。これにより、リカバリ対象セグメントに割り当てられていたスライスが、セカンダリスライスからプライマリスライスに変更される。 Further, the status of the metadata of the slice indicated by the disk node ID “SN-C”, the disk ID “1”, and the slice ID “1” is changed to “P”. As a result, the slice assigned to the recovery target segment is changed from the secondary slice to the primary slice.
さらに、ディスクノードID「SN−B」、ディスクID「1」、スライスID「2」で示されるスライスのメタデータは、状態が「S」に変更され、仮想ディスクIDに「VLOX−X」が設定され、セグメントIDに「1」が設定されている。これにより、リカバリ対象セグメントに対してセカンダリスライスが割り当てられる。 Furthermore, the status of the metadata of the slice indicated by the disk node ID “SN-B”, the disk ID “1”, and the slice ID “2” is changed to “S”, and “VLOX-X” is set to the virtual disk ID. The segment ID is set to “1”. As a result, the secondary slice is assigned to the recovery target segment.
また、状態等の内容が変更された各メタデータは、タイムスタンプが「t(n+1)」に更新されている。「t(n+1)」はメタデータの更新時刻である。
メタデータの更新が完了したことで、メタデータ検索部820は、リカバリ対象セグメントへのメタデータ照会要求があれば、リカバリ対象セグメントのリカバリ後の状態を示すメタデータをアクセスノード600に提供可能となる。
In addition, the time stamp of each metadata whose contents such as the state are changed is updated to “t (n + 1)”. “T (n + 1)” is a metadata update time.
When the metadata update is completed, the
以下、図21の説明に戻る。
[ステップS86]メタデータ照会部610は、制御ノード800に対してセグメントを指定したメタデータの照会要求を送信する。照会要求で指定されるセグメント(照会対象セグメント)は、エラーによりアクセスが失敗したセグメントである。
Returning to the description of FIG.
[Step S86] The
[ステップS87]制御ノード800のメタデータ検索部820は、仮想ディスクメタデータ記憶部810を参照し、照会対象セグメントのプライマリスライスのメタデータをアクセスノード600に通知する。
[Step S87] The
一方、スライス割り当て管理部850は、メタデータ照会に対するメタデータ検索とは別プロセスで、リカバリ対象セグメントのリカバリ処理を続行している。すなわち、スライス割り当てに続けて、ステップS88〜ステップS91の処理が行われる。そして、ステップS92においてアクセスノード600がディスクノード400bにリードリトライをすると、ステップS93で目的のデータが応答される。また、ステップS94でT2の経過が通知されると、ステップS95でリカバリ処理が行われる。
On the other hand, the slice
以上のようにして、T2の経過が検出される前に、アクセス対象のスライスが割り当てられたセグメントのみのリカバリ処理を行うことができる。しかも、ディスクノード400からのスライス異常通知に基づいてセグメントのリカバリ処理が行われる。そのため、メタデータ照会要求に応じたメタデータ検索処理の実行を阻害せずに済み、システム全体の処理効率の低下を防止できる。
As described above, it is possible to perform the recovery process only for the segment to which the slice to be accessed is allocated before the passage of T2 is detected. In addition, segment recovery processing is performed based on the slice abnormality notification from the
次に、正常に動作しているストレージ装置410の負荷が一時的に過大であったため検査コマンドへの応答が遅れた場合のスライス切り替え処理について説明する。
図24は、ストレージ装置の負荷が過大となったときのスライス切り替え処理の手順を示すシーケンス図である。この例では、ディスクノード400に接続されたストレージ装置410の負荷が一時的に過大になったものとする。なお、図24のステップS101〜ステップS113の処理は、それぞれ図21のステップS81〜S93の処理と同じである。そこで、ステップS114以降の処理をステップ番号に沿って説明する。
Next, the slice switching process when the response to the inspection command is delayed because the load on the normally operating
FIG. 24 is a sequence diagram illustrating a procedure of slice switching processing when the load on the storage apparatus becomes excessive. In this example, it is assumed that the load on the
[ステップS114]ディスクノード400のT1/復帰検出部430は、検査コマンドに対するストレージ装置410からの応答を受信する。これによりT1/復帰検出部430は、ストレージ装置410がアクセス可能な状態に復帰したことを検出する。すると、T1/復帰検出部430は、制御ノード800に対してストレージ装置410の復帰通知を送信する。
[Step S114] The T1 /
制御ノード800のストレージ状態管理部840は、復帰通知を受け取ると、割り当て可否記憶部830内の復帰したストレージ装置の割り当て可否の情報を「可」に変更する。
When the storage
[ステップS115]ストレージ状態管理部840は、割り当て可否記憶部830の変更後、ディスクノード400に対して、確認応答を送信する。
なお、第1の実施の形態では、ストレージ装置が復帰するとリカバリ処理を行ったセグメント(第1の実施の形態では「照会対象セグメント」)に割り当てられていたスライスを空き(Free)状態に変更している。他方、第3の実施の形態では、T1経過後にアクセスがあったスライスは、アクセスがあった時点で状態を「B(Bad)」に変更している。そのため、ストレージ装置が復帰しても、メタデータの変更処理は不要である。
[Step S <b> 115] The storage
In the first embodiment, when the storage apparatus returns, the slice assigned to the segment for which the recovery process has been performed (“query target segment” in the first embodiment) is changed to a free state. ing. On the other hand, in the third embodiment, the state of the slice that has been accessed after the elapse of T1 is changed to “B (Bad)” at the time of access. Therefore, even if the storage device is restored, the metadata change process is unnecessary.
ところで、検査コマンドによるストレージ装置の故障診断は、すべてのディスクノード400,400a,400bで行われている。図21の例は、1つのストレージ装置においてのみT1の経過が検出された場合である。他方、2台のストレージ装置で同時にT1の経過が検出されることも有り得る。このときT1の経過が検出された2台のストレージ装置それぞれのスライスでスライスペアを構成するセグメントがある場合、両方のスライスの状態を異常状態(状態「B」)にしてしまうと、そのセグメントのデータを喪失してしまう。そこで、そのような場合には、後にT1の経過が検出されたディスクノードでは、スライス異常通知を行わないこととする。
Incidentally, the failure diagnosis of the storage apparatus by the inspection command is performed in all the
図25は、複数のディスクでT1経過が検出されたときのスライス割り当て処理を示すシーケンス図である。この例では、ディスクノード400に接続されたストレージ装置410が故障し、ディスクノード400bに接続されたストレージ装置の負荷が一時的に過大になったものとする。なお、図25のステップS121〜ステップS131の処理は、それぞれ図21のステップS81〜S91の処理と同じである。そこで、ステップS132以降の処理をステップ番号に沿って説明する。
FIG. 25 is a sequence diagram showing slice allocation processing when T1 progress is detected in a plurality of disks. In this example, it is assumed that the
[ステップS132]ディスクノード400bは、定期的にストレージ装置のディスク診断を行う。ストレージ装置が正常に動作していれば、ストレージ装置からT1以内に応答が返される。図25の例では、ステップS131の処理を実行するまではディスクノード400bのストレージ装置は正常に動作していたが、メタデータを変更したことによるコピー処理が完了する前に、ストレージ装置が過負荷状態となったものとする。ストレージ装置が過負荷であることにより、ディスクノード400bは検査コマンド発行後T1が経過しても、正常な応答が返されていない。そこで、ディスクノード400bはT1を検出し、制御ノード800に対してT1経過通知を送信する。
[Step S132] The
T1経過通知を受信した制御ノード800のストレージ状態管理部840は、T1経過通知を受信すると、ディスクノード400bに接続されたストレージ装置の状態を割り当て「不可」に切り替える。
Upon receiving the T1 progress notification, the storage
[ステップS133]状態の切り替えが完了すると、ストレージ状態管理部840は、切り替え完了応答をディスクノード400bに送信する。
[ステップS134]その後、アクセスノード600のスライスアクセス要求部630は、メタデータの照会が完了すると、アクセス用メタデータ記憶部620を参照してアクセス対象のスライスを管理するディスクノードを判断し、そのディスクノードへリード要求(リードリトライ)を送信する。
[Step S133] When the switching of the state is completed, the storage
[Step S134] After that, when the metadata inquiry is completed, the slice
このときディスクノード400bでは、まだT2の検出も復帰の検出もされていないものとする。この場合、ディスクノード400bは、リード要求におけるアクセス対象のスライスの状態をメタデータに基づいて確認する。このとき参照されるメタデータは、図23に示した仮想ディスクメタデータテーブル811内のディスクノードIDが「SN−C」である各メタデータと同じである。すると、該当するスライス(この例では、図23に示されたディスクノードID「SN−C」、ディスクID「1」、スライスID「1」のスライス)は、ステップS129のメタデータ更新要求によってセカンダリスライスからプライマリスライスに変更されている。そして、該当するスライス内のデータが、ディスクノード400a内のペアとなるセカンダリスライスにコピーされている最中である。
At this time, in the
ディスクノード400bは、アクセス対象のスライスがコピー中であるため、スライス異常通知を行わず、データのリードができるようになるのを待つ。
[ステップS135]その後、ディスクノード400のT2検出部440は、検査コマンド発行からT2が経過したことを検出する。そして、T2検出部440は、制御ノード800に対してT2経過通知を送信する。
Since the slice to be accessed is being copied, the
[Step S135] Thereafter, the
[ステップS136]T2経過通知を受け取った制御ノード800のスライス割り当て管理部850は、ストレージ装置410が故障により使用不可になったことを認識し、ストレージ装置410全体のリカバリ処理を開始する。
[Step S136] Upon receiving the T2 progress notification, the slice
[ステップS137]一方、ディスクノード400bは、検査コマンドに対するストレージ装置からの応答を受信する。すると、ディスクノード400bは、制御ノード800に対してストレージ装置の復帰通知を送信する。
[Step S137] On the other hand, the
[ステップS138]ストレージ状態管理部840は、割り当て可否記憶部830の変更後、ディスクノード400bに対して、確認応答を送信する。
このように、ストレージ装置内のスライス内のデータのコピー中(二重化状態が復旧していない状態)の場合、ディスクノードは、当該ストレージ装置のT1経過を検出し、当該スライスへのアクセスがあってもリード処理を継続する。すなわち、ディスクノードは、アクセス対象のスライスの状態を「B(Bad)」に変更したり、制御ノード800にスライス異常通知を送信したりしない。これにより、二重化回復のためのコピー処理が完了する前に、プライマリスライスが異常として取り扱われることを防ぐことができる。その結果、データのロストが防止される。
[Step S138] The storage
As described above, when data in a slice in the storage device is being copied (the duplexed state has not been restored), the disk node detects T1 progress of the storage device and there is access to the slice. Continue the lead process. In other words, the disk node does not change the status of the slice to be accessed to “B (Bad)” or transmits a slice abnormality notification to the
次に、ディスクノードにおけるディスク診断処理の詳細な手順を説明する。なお、以下の処理は、ディスクノード400が行うものとして説明するが、他のディスクノード400a,400bも同様の処理を定期的に実行する。
Next, a detailed procedure of the disk diagnosis process in the disk node will be described. Although the following processing is described as being performed by the
図26は、ディスク診断処理の手順を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。なお、この処理は予め設定された間隔で定期的に実行される。 FIG. 26 is a flowchart showing the procedure of the disk diagnosis process. In the following, the process illustrated in FIG. 26 will be described in order of step number. This process is periodically executed at preset intervals.
[ステップS151]T1/復帰検出部430は、検査コマンドをストレージ装置410に対して出力する。このときT1/復帰検出部430は、検査コマンドの出力時刻を内部メモリに記憶する。
[Step S151] The T1 /
[ステップS152]T1/復帰検出部430は、検査コマンドが発行されてからT1が経過したか否かを判断する。具体的には、T1/復帰検出部430は、現在の時刻から検査コマンドの出力時刻を減算し、減算結果がT1以上であれば、T1が経過したものと判断する。T1が経過した場合、処理がステップS155に進められる。T1が経過していなければ、処理がステップS153に進められる。
[Step S152] The T1 /
[ステップS153]T1/復帰検出部430は、診断完了チェックを行う。具体的には、T1/復帰検出部430は、ストレージ装置410から正常応答が返信されたかどうかを検査する。
[Step S153] The T1 /
[ステップS154]T1/復帰検出部430は、正常応答が返信された場合、処理を終了する。正常応答が返信されていなければ、処理がステップS152に進められる。
[ステップS155]T1/復帰検出部430は、検査コマンドの送信からT1が経過すると、T1経過通知を制御ノード800に送信する。
[Step S154] When the normal response is returned, the T1 /
[Step S155] The T1 /
[ステップS156]ディスクノード400内の複数の要素の連携処理により、T2/復帰検出処理が実行される。この処理の詳細は後述する。この処理が終了すると、ディスク診断処理が終了する。
[Step S156] The T2 / recovery detection process is executed by the cooperation process of a plurality of elements in the
図27は、T2/復帰検出処理の手順を示すフローチャートである。以下、図27に示す処理をステップ番号に沿って説明する。
[ステップS161]T2検出部440は、検査コマンドが発行されてからT2が経過したか否かを判断する。具体的には、T2検出部440は、T1/復帰検出部430から検査コマンドの出力時刻を取得する。そして、T2検出部440は、現在時刻から検査コマンドの出力時刻を減算し、減算結果がT2以上であれば、T2が経過したものと判断する。T2が経過した場合、処理がステップS162に進められる。T2が経過していない場合、処理がステップS163に進められる。
FIG. 27 is a flowchart illustrating a procedure of the T2 / return detection process. In the following, the process illustrated in FIG. 27 will be described in order of step number.
[Step S161] The
[ステップS162]T2検出部440は、T2経過通知を制御ノード800に対して送信する。その後、T2/復帰検出処理が終了する。
[ステップS163]スライスアクセス処理部420は、ストレージ装置410に対するアクセス要求が入力されたか否かを判断する。アクセス要求が入力された場合、処理がステップS165に進められる。アクセス要求が入力されていなければ、処理がステップS164に進められる。
[Step S162] The
[Step S163] The slice
[ステップS164]T1/復帰検出部430は、診断完了チェックを行う。具体的には、T1/復帰検出部430は、ストレージ装置410から正常応答が返信されたかどうかを検査する。その後、処理がステップS170に進められる。
[Step S164] The T1 /
[ステップS165]スライスアクセス処理部420は、アクセス対象のスライスがコピー中か否かを判断する。具体的には、スライスアクセス処理部420は、メタデータ記憶部450を参照し、アクセス対象のスライスの二重化状態を確認する。二重化状態として「コピー中」と設定されていれば、該当するスライスはコピー中である。コピー中であれば、処理がステップS166に進められる。コピー中でなければ、処理がステップS167に進められる。
[Step S165] The slice
[ステップS166]スライスアクセス処理部420は、アクセス要求に応じたストレージ装置410へのアクセス処理を行う。なお、このアクセス処理はストレージ装置410が復帰するまで成功しない。そのため、スライスアクセス処理部420は、ストレージ装置410が復帰するのを待ち、アクセス要求に応じたデータリードまたはデータライトを実行する。その後、処理がステップS170に進められる。
[Step S166] The slice
[ステップS167]アクセス対象のスライスがコピー中ではない場合、スライスアクセス処理部420から被アクセススライス検出部470へ、ストレージ装置410内のスライスへのアクセス要求があったことを通知する。被アクセススライス検出部470は、ストレージ装置410のディスク診断処理において、検査コマンド発行からT1経過後、T2経過/復帰前であることを確認し、スライス管理部460へメタデータの変更要求を送信する。メタデータの変更要求に応じて、スライス管理部460は、メタデータ記憶部450内のアクセス対象のスライスのメタデータに対し、状態を「B(Bad)」とする更新を行う。また、スライス管理部460は、ストレージ装置410が復帰した場合は、ストレージ装置410内のメタデータも同様に更新する。
[Step S167] When the slice to be accessed is not being copied, the slice
[ステップS168]被アクセススライス検出部470は、制御ノード800に対してスライス異常通知を行う。
[ステップS169]スライスアクセス処理部420は、アクセスエラーをアクセスノード600に送信する。その後、処理がステップS170に進められる。
[Step S168] The accessed
[Step S169] The slice
[ステップS170]T1/復帰検出部430は、正常応答が返信された場合、処理をステップS171に進める。正常応答が返信されていなければ、処理をステップS161に進める。
[Step S170] When a normal response is returned, the T1 /
[ステップS171]T1/復帰検出部430は、復帰通知を制御ノード800に送信する。その後、T2/復帰検出処理が終了する。
このようにして、リカバリ中のセグメントに割り当てられているスライスを有するストレージ装置でT1が検出され、そのスライスに対するアクセス要求があっても、スライス異常通知が行われない。その結果、複数のストレージ装置において同時にT1経過が検出された場合でも、データが消失するのを防止できる。
[Step S171] The T1 /
In this way, T1 is detected in the storage apparatus having the slice assigned to the segment being recovered, and even if there is an access request for that slice, no slice abnormality notification is performed. As a result, it is possible to prevent the data from being lost even when the T1 progress is simultaneously detected in a plurality of storage apparatuses.
以上のように、第3の実施の形態では、ディスクノードからの異常通知に基づいてスライスの再割り当てを行うようにしたため、メタデータ照会に応じたメタデータ検索処理を遅延させずに済む。これにより、アクセスノードは、スライス再割り当てに伴うメタデータ変更に時間がかかったとしても、メタデータ照会に対する応答を迅速に受け取ることができる。その結果、複数のストレージ装置が同時に不調に陥った場合でも、アクセスノードからのデータアクセスを可能な限り滞らせずにすむ。 As described above, in the third embodiment, since slice reassignment is performed based on an abnormality notification from a disk node, it is not necessary to delay the metadata search processing according to the metadata inquiry. As a result, the access node can quickly receive a response to the metadata query even if it takes time to change the metadata accompanying the slice reassignment. As a result, even when a plurality of storage apparatuses are in trouble at the same time, data access from the access node is prevented from being delayed as much as possible.
また、第3の実施の形態においても第1、第2の実施の形態と同様に、アクセスを長い時間止めることを抑えつつ、故障検出時間「T2」を長く設定することができる。すなわち、ストレージ装置ごとに故障検出時間「T2」を調整しなくてもよいという利点を有する。 Also in the third embodiment, similarly to the first and second embodiments, the failure detection time “T2” can be set long while suppressing the access from being stopped for a long time. That is, there is an advantage that it is not necessary to adjust the failure detection time “T2” for each storage device.
なお、第3の実施の形態の割り当て可否記憶部830に代えて、第1の実施の形態におけるストレージ状態記憶部530を用いることもできる。その場合、ストレージ状態記憶部530において状態が「正常」とされたストレージ装置は「割り当て可能」、状態が「T1」のストレージ装置は「割り当て不可」と判断する。
Note that the storage
また、上記第1の実施の形態において、第3の実施の形態と同様にT1経過が検出されたストレージ装置内のスライスを、リカバリ処理における割当不可とすることもできる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、制御ノードやディスクノードが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
In the first embodiment, as in the third embodiment, a slice in the storage apparatus in which the T1 progress has been detected can be disabled in the recovery process.
The above processing functions can be realized by a computer. In that case, a program describing the processing contents of the functions that the control node and the disk node should have is provided. By executing the program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded on a computer-readable recording medium. Examples of the computer-readable recording medium include a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory. Examples of the magnetic recording device include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape. Optical disks include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), and the like. Magneto-optical recording media include MO (Magneto-Optical disc).
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。 When distributing the program, for example, a portable recording medium such as a DVD or a CD-ROM in which the program is recorded is sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。 The computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. Further, each time the program is transferred from the server computer, the computer can sequentially execute processing according to the received program.
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
The present invention is not limited to the above-described embodiment, and various modifications can be made without departing from the gist of the present invention.
The main technical features of the embodiment described above are as follows.
(付記1) 記憶領域が複数のスライスに分割して管理されている複数のストレージ装置に二重化して格納されたデータの管理処理をコンピュータに実行させるデータ管理プログラムであって、
前記コンピュータを、
前記複数のストレージ装置のうちの1つが故障中の可能性があることを示す動作不調情報を受け取ると、前記動作不調情報を動作不調情報記憶手段に格納する動作不調情報管理手段、
前記複数のストレージ装置のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、前記動作不調情報記憶手段内の前記動作不調情報を参照して前記アクセス対象スライスが属する前記ストレージ装置が故障中である可能性の有無を判断し、故障の可能性がある場合、前記アクセス対象スライス内のデータと同じ内容の冗長データを格納する前記ストレージ装置へのデータ入出力機能を有するスライス管理手段へ、前記アクセス対象スライスに格納されていたデータのリカバリ処理を指示するリカバリ指示手段、
として機能させることを特徴とするデータ管理プログラム。
(Supplementary note 1) A data management program for causing a computer to execute management processing of data stored in a duplicated manner in a plurality of storage devices in which a storage area is divided into a plurality of slices and managed.
The computer,
Operation malfunction information management means for storing the operation malfunction information in the malfunction information storage means when receiving malfunction information indicating that one of the plurality of storage devices may be out of order;
When access related information indicating that an access request is issued with the slices of the plurality of storage devices as access target slices, the access target slice belongs with reference to the operation malfunction information in the operation malfunction information storage unit A data input / output function to the storage device that determines whether or not the storage device may be in failure and stores redundant data having the same contents as the data in the access target slice when there is a possibility of failure. Recovery instruction means for instructing the slice management means having recovery processing of data stored in the access target slice;
Data management program characterized by functioning as
(付記2) 前記動作不調情報は、故障中の可能性がある前記ストレージ装置が接続されたディスクノードから、ネットワークを介して送信されることを特徴とする付記1記載のデータ管理プログラム。
(Supplementary note 2) The data management program according to
(付記3) 前記アクセス関連情報は、ネットワークを介して前記複数のストレージ装置にアクセスを行うアクセスノードによる前記ストレージ装置内のスライスへのアクセスが失敗したときに、前記アクセスノードから送信されることを特徴とする付記1記載のデータ管理プログラム。
(Supplementary Note 3) The access-related information is transmitted from the access node when access to the slice in the storage device by the access node that accesses the plurality of storage devices via the network fails. A data management program according to
(付記4) 前記リカバリ指示手段は、前記アクセスノードから前記アクセス関連情報を受け取ると、前記アクセスノードに対して前記冗長データの格納場所を通知することを特徴とする付記3記載のデータ管理プログラム。
(Supplementary note 4) The data management program according to
(付記5) 前記スライス管理手段は、前記コンピュータに対してネットワークを介して接続され、前記冗長データを格納する前記ストレージ装置が接続されたディスクノードの一機能であることを特徴とする付記1記載のデータ管理プログラム。 (Additional remark 5) The said slice management means is one function of the disk node connected to the said computer via a network, and the said storage apparatus which stores the said redundant data is connected. Data management program.
(付記6) 前記コンピュータを、さらに、
複数のセグメントで構成される仮想ディスクが定義されており、異なるストレージ装置に属する2つの前記スライスが前記セグメントそれぞれに割り当てられており、前記複数のストレージ装置それぞれの前記スライスごとに設けられ、前記スライスと前記セグメントとの割り当て関係を示すメタデータを記憶する仮想ディスクメタデータ記憶手段として機能させ、
前記アクセス関連情報は、ネットワークを介して前記複数のストレージ装置にアクセスを行うアクセスノードによる前記ストレージ装置内のスライスへのアクセスが失敗したときに前記アクセスノードから送信される、アクセスに失敗したスライスが割り当てられているセグメントを照会対象セグメントとして指定した割り当て関係の照会要求であり、
前記リカバリ指示手段は、
前記仮想ディスクメタデータ記憶手段から、前記アクセス関連情報で指定された前記照会対象セグメントに割り当てられている2つの被割り当てスライスの前記メタデータを検索し、前記動作不調情報記憶手段を参照し、検索により得られた前記メタデータに基づいて前記被割り当てスライスが属する前記ストレージ装置が故障中である可能性の有無を判断するメタデータ検索手段と、
前記メタデータ検索手段が故障中の可能性があると判断された場合、故障中の可能性がある前記ストレージ装置に属する前記被割り当てスライスの前記照会対象セグメントへの割り当てを解除し、他の前記スライスを前記照会対象セグメントに新規に割り当てるスライス割り当て手段と、
を有することを特徴とする付記1記載のデータ管理プログラム。
(Supplementary note 6)
A virtual disk composed of a plurality of segments is defined, two slices belonging to different storage devices are assigned to each of the segments, and each slice of the plurality of storage devices is provided for each slice. And function as virtual disk metadata storage means for storing metadata indicating the allocation relationship between the segment and the segment,
The access-related information is transmitted from the access node when access to the slice in the storage device by the access node that accesses the plurality of storage devices via the network fails. An allocation-related query request that specifies the segment being allocated as the query target segment,
The recovery instruction means includes
Search the metadata of the two allocated slices assigned to the inquiry target segment specified by the access related information from the virtual disk metadata storage means, and refer to the malfunction information storage means and search Metadata search means for determining whether or not there is a possibility that the storage device to which the allocated slice belongs is based on the metadata obtained by
When it is determined that the metadata search means may be in failure, the allocation of the allocated slice belonging to the storage device that may be in failure may be released from the query target segment, and the other A slice assignment means for newly assigning a slice to the query target segment;
The data management program according to
(付記7) 前記スライス割り当て手段は、前記照会対象セグメントへの新規のスライスの割り当てが完了すると、割り当て結果に応じて前記仮想ディスクメタデータ記憶手段内のメタデータを更新し、
前記メタデータ検索手段は、前記被割り当てスライスが属する前記ストレージ装置が故障中の可能性があると判断した場合、前記被割り当てスライスに代えて前記照会対象セグメントに対して新規のスライスの割り当てられるのを待ち、新規のスライスが割り当てられた後、前記照会対象セグメントに割り当てられたスライスのメタデータを前記仮想ディスクメタデータ記憶手段から取得し、前記アクセスノードに送信することを特徴とする付記6記載のデータ管理プログラム。
(Appendix 7) When the slice allocation unit completes the allocation of the new slice to the inquiry target segment, it updates the metadata in the virtual disk metadata storage unit according to the allocation result,
When the metadata search unit determines that there is a possibility that the storage device to which the allocated slice belongs has a failure, a new slice is allocated to the inquiry target segment instead of the allocated slice. After the new slice is allocated, the metadata of the slice allocated to the inquiry target segment is acquired from the virtual disk metadata storage unit and transmitted to the access node. Data management program.
(付記8) 前記スライス割り当て手段は、前記動作不調情報記憶手段を参照し、前記照会対象セグメントに新規に割り当てるスライスとして、前記動作不調情報で示されていない前記ストレージ装置のスライスから選択することを特徴とする付記6記載のデータ管理プログラム。
(Supplementary Note 8) The slice allocating unit refers to the operation malfunction information storage unit, and selects a slice to be newly allocated to the inquiry target segment from slices of the storage device not indicated by the operation malfunction information. The data management program according to
(付記9) 前記リカバリ指示手段は、前記複数のストレージ装置のいずれか1つが故障したことを示す故障検出情報を受け取ると、故障したストレージ装置内の各データと同じ内容の冗長データを格納する前記ストレージ装置へのデータ入出力機能を有するスライス管理手段へ、前記故障したストレージ装置内のすべてのデータのリカバリ処理を指示する指示することを特徴とする付記1記載のデータ管理プログラム。
(Supplementary Note 9) When the recovery instruction means receives failure detection information indicating that any one of the plurality of storage devices has failed, the recovery instruction means stores redundant data having the same content as each data in the failed storage device. The data management program according to
(付記10) 前記動作不調情報管理手段は、故障中の可能性があるとされていた前記ストレージ装置の正常動作が確認されたことを示す復帰情報を受け取ると、前記動作不調情報記憶手段から、正常動作が確認された前記ストレージ装置の前記動作不調情報を消去することを特徴とする付記1記載のデータ管理プログラム。
(Supplementary Note 10) When the malfunction information management unit receives return information indicating that the normal operation of the storage device that has been considered to be in failure is confirmed, from the malfunction information storage unit, The data management program according to
(付記11) ストレージ装置が接続されると共に、前記ストレージ装置に格納するデータの管理を行う制御ノードにネットワーク経由で接続されたコンピュータに、前記ストレージ装置の動作診断処理を実行させるストレージ装置診断プログラムであって、
前記コンピュータを、
前記ストレージ装置に対して検査コマンドを発行し、前記検査コマンド発行から応答があるまでの経過時間を計測する応答時間計測手段、
前記経過時間が予め設定された動作不調検出時間に達しても応答がない場合、前記制御ノードに対して、前記ストレージ装置が故障中の可能性があることを示す動作不調情報を送信する動作不調検出手段、
前記動作不調情報を送信後に前記ストレージ装置から前記検査コマンドに対する応答が返されると、前記制御ノードに対して前記ストレージ装置の復帰を示す復帰情報を送信する復帰検出手段、
として機能させることを特徴とするストレージ装置診断プログラム。
(Supplementary Note 11) A storage device diagnosis program that causes a computer connected to a control node that manages data stored in the storage device to be connected to the storage node via a network, and that performs an operation diagnosis process of the storage device. There,
The computer,
A response time measuring means for issuing an inspection command to the storage device and measuring an elapsed time from when the inspection command is issued until there is a response;
If there is no response even when the elapsed time reaches a preset operation malfunction detection time, operation malfunction information indicating that the storage apparatus may be out of order is sent to the control node. Detection means,
A return detection means for transmitting return information indicating return of the storage device to the control node when a response to the inspection command is returned from the storage device after transmitting the malfunction information;
A storage apparatus diagnosis program that is caused to function as a storage device.
(付記12) 前記コンピュータを、さらに、
前記経過時間が、前記動作不調検出時間よりも大きな値が予め設定された故障検出時間に達しても応答がない場合、前記制御ノードに対して前記ストレージ装置に関する故障検出情報を送信する故障検出手段、
として機能させることを特徴とする付記11記載のストレージ装置診断プログラム。
(Supplementary note 12)
Failure detection means for transmitting failure detection information relating to the storage device to the control node when there is no response even when the elapsed time reaches a failure detection time set in advance that is larger than the malfunction detection time ,
The storage apparatus diagnosis program according to
(付記13) 前記コンピュータを、さらに、
前記動作不調情報送信後、前記復帰情報または前記故障検出情報送信前に前記ストレージ装置内のスライスへのアクセスがあると、アクセス対象スライスを指定したスライス異常通知を前記制御ノードに送信するスライス異常通知手段、
として機能させることを特徴とする付記12記載のストレージ装置診断プログラム。
(Supplementary note 13)
After sending the malfunction information, if there is an access to a slice in the storage device before sending the return information or the failure detection information, a slice error notification that sends a slice error notification specifying the access target slice to the control node means,
The storage device diagnostic program according to
(付記14) ストレージ装置が接続されると共に、前記ストレージ装置に格納するデータの管理を行う制御ノードにネットワーク経由で接続されたコンピュータに、前記ストレージ装置の動作診断処理を実行させるストレージ装置診断プログラムであって、
前記コンピュータを、
前記ストレージ装置に対して検査コマンドを発行し、前記検査コマンド発行から応答があるまでの経過時間を計測する応答時間計測手段、
前記経過時間が、予め設定された動作不調検出時間を超えた後、前記検査コマンドに対する応答取得前に前記ストレージ装置内のスライスへのアクセスがあると、アクセス対象スライスを指定したスライス異常通知を前記制御ノードに送信するスライス異常通知手段、
として機能させることを特徴とするストレージ装置診断プログラム。
(Supplementary Note 14) A storage device diagnosis program for causing a computer connected to a control node for managing data stored in the storage device via a network to execute operation diagnosis processing of the storage device while the storage device is connected There,
The computer,
A response time measuring means for issuing an inspection command to the storage device and measuring an elapsed time from when the inspection command is issued until there is a response;
After the elapsed time exceeds a preset operation malfunction detection time, if there is an access to a slice in the storage device before obtaining a response to the check command, a slice abnormality notification specifying the access target slice is sent. Slice abnormality notification means to be transmitted to the control node,
A storage apparatus diagnosis program which is made to function as a storage device.
(付記15) データを二重化して管理するマルチノードストレージシステムであって、
記憶領域が複数のスライスに分割して管理されたストレージ装置に対して検査コマンドを発行し、前記検査コマンド発行から応答があるまでの経過時間を計測する応答時間計測手段と、
前記経過時間が予め設定された動作不調検出時間に達しても応答がない場合、制御ノードに対して前記ストレージ装置が故障中の可能性があることを示す動作不調情報を送信する動作不調検出手段と、
前記動作不調情報を送信後に前記ストレージ装置から前記検査コマンドに対する応答が返されると、前記制御ノードに対して前記ストレージ装置の復帰を示す復帰情報を送信する復帰検出手段と、
を具備する複数のディスクノードと、
前記ディスクノードの1つから前記動作不調情報を受け取ると、前記動作不調情報を動作不調情報記憶手段に格納する動作不調情報管理手段と、
前記複数のストレージ装置のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、前記動作不調情報記憶手段内の前記動作不調情報を参照して前記アクセス対象スライスが属する前記ストレージ装置が故障中である可能性の有無を判断し、故障の可能性がある場合、前記アクセス対象スライス内のデータと同じ内容の冗長データを格納する前記ストレージ装置が接続された前記ディスクノードへ、前記アクセス対象スライスに格納されていたデータのリカバリ処理を指示するリカバリ指示手段と、
を具備する前記制御ノードと、
を有することを特徴とするマルチノードストレージシステム。
(Supplementary note 15) A multi-node storage system for managing data by duplication,
A response time measuring means for issuing an inspection command to a storage device managed by dividing a storage area into a plurality of slices, and measuring an elapsed time from the inspection command issuance to a response;
When there is no response even when the elapsed time reaches a preset operation malfunction detection time, an operation malfunction detection means for transmitting malfunction information indicating that the storage apparatus may be out of order to the control node. When,
A return detection means for sending return information indicating return of the storage device to the control node when a response to the inspection command is returned from the storage device after sending the malfunction information;
A plurality of disk nodes comprising:
Upon receiving the malfunction information from one of the disk nodes, malfunction information management means for storing the malfunction information in the malfunction information storage means;
When access related information indicating that an access request is issued with the slices of the plurality of storage devices as access target slices, the access target slice belongs with reference to the operation malfunction information in the operation malfunction information storage unit The disk node to which the storage device that stores the redundant data having the same contents as the data in the slice to be accessed is determined if there is a possibility that the storage device is in failure. Recovery instruction means for instructing recovery processing of data stored in the access target slice,
The control node comprising:
A multi-node storage system comprising:
1〜3 ストレージ装置
1a,2a,3a スライス
4〜6 ディスクノード
4a 応答時間計測手段
4b 動作不調検出手段
4c 故障検出手段
4d 復帰検出手段
5a,6a スライス管理手段
7 制御ノード
7a 動作不調情報管理手段
7b 動作不調情報記憶手段
7c リカバリ指示手段
8 アクセスノード
1-3
Claims (4)
前記コンピュータに、
前記複数のストレージ装置のうちの1つが予め設定された動作不調検出時間に達しても応答がない場合に発行される、前記複数のストレージ装置のうちの1つが故障中の可能性があることを示す動作不調情報を受け取り、前記動作不調情報を記憶手段に格納し、
前記複数のストレージ装置のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、前記記憶手段内の前記動作不調情報を参照して前記アクセス対象スライスが属するストレージ装置が故障中である可能性の有無を判断し、故障中の可能性がある場合、前記アクセス対象スライス内のデータと同じ内容の冗長データを格納するストレージ装置と、前記アクセス対象スライスが属するストレージ装置とのいずれとも異なるストレージ装置をコピー先とした、該冗長データのコピー指示を、該冗長データを格納するストレージ装置へのデータ入出力機能を有する装置へ送信し、
経過時間が、前記動作不調検出時間よりも大きな値が予め設定された故障検出時間に達しても応答がない場合に発行される、前記複数のストレージ装置のうちの1つが故障したことを示す故障検出情報を受け取り、故障したストレージ装置内の各データと同じ内容の冗長データごとに、該冗長データを格納するストレージ装置と、前記故障したストレージ装置とのいずれとも異なるストレージ装置をコピー先とした、該冗長データのコピー指示を、該冗長データを格納するストレージ装置へのデータ入出力機能を有する装置へ送信する、
処理を実行させることを特徴とするデータ管理プログラム。 A data management program for causing a computer to execute a management process of data stored in duplicate in a plurality of storage devices managed by dividing a storage area into a plurality of slices,
In the computer,
One of the plurality of storage devices is issued when there is no response even when a preset malfunction detection time is reached, and there is a possibility that one of the plurality of storage devices is in failure. receives irregularity information indicating, storing the irregularity information memorize means,
Wherein the plurality of the slice-access request as an access target slice in the storage device receives the access-related information indicating that issued, the irregularity information referring to the storage access target slice belongs before crisis憶the means It is determined whether there is a possibility that the device is in failure. If there is a possibility that the device is in failure, a storage device that stores redundant data having the same contents as the data in the access target slice, and a storage to which the access target slice belongs Sending a redundant data copy instruction to a storage device that is different from any of the devices, and having a data input / output function to the storage device storing the redundant data ,
A failure indicating that one of the plurality of storage devices has failed, which is issued when there is no response even when the elapsed time reaches a failure detection time set in advance that is larger than the malfunction detection time. For each piece of redundant data having the same content as each data in the failed storage device, the detection information is received, and the storage device that stores the redundant data and a storage device that is different from both of the failed storage devices are used as copy destinations. Sending a copy instruction of the redundant data to a device having a data input / output function to a storage device storing the redundant data ;
A data management program for executing processing.
前記アクセス対象スライスが属するストレージ装置が故障中である可能性が有る場合、前記アクセス対象スライス内のデータにアクセスする際のアクセス先を、該データと同じ内容の冗長データを格納するストレージ装置に変更する指示を、前記アクセス関連情報の送信元に通知する、 When there is a possibility that the storage device to which the access target slice belongs is in failure, the access destination when accessing the data in the access target slice is changed to a storage device that stores redundant data having the same contents as the data To notify the transmission source of the access related information,
処理を実行させることを特徴とする請求項1記載のデータ管理プログラム。 The data management program according to claim 1, wherein processing is executed.
記憶領域が複数のスライスに分割して管理された複数のストレージ装置のうちのいずれかに接続された複数のディスクノードと、制御ノードとを有し、 A storage area having a plurality of disk nodes connected to one of a plurality of storage devices managed by dividing into a plurality of slices, and a control node;
前記複数のディスクノードは、それぞれ、 Each of the plurality of disk nodes is
接続されているストレージ装置に対して検査コマンドを発行し、該検査コマンドの発行から応答があるまでの経過時間を計測する応答時間計測手段と、 A response time measuring means for issuing an inspection command to the connected storage device and measuring an elapsed time from when the inspection command is issued until a response is received;
該経過時間が予め設定された動作不調検出時間に達しても応答がない場合、前記制御ノードに対して該ストレージ装置が故障中の可能性があることを示す動作不調情報を送信する動作不調検出手段と、 If there is no response when the elapsed time reaches a preset malfunction detection time, malfunction detection is performed to transmit malfunction information indicating that the storage device may be out of order to the control node. Means,
前記経過時間が、前記動作不調検出時間よりも大きな値が予め設定された故障検出時間に達しても応答がない場合に、該ストレージ装置が故障したことを示す故障検出情報を送信する故障検出手段と、 Failure detection means for transmitting failure detection information indicating that the storage device has failed when there is no response even if the elapsed time reaches a failure detection time set in advance that is larger than the malfunction detection time When,
データのコピー指示に従って、該ストレージ装置内のデータを他のストレージ装置にコピーするスライス管理手段と、 In accordance with a data copy instruction, slice management means for copying data in the storage device to another storage device;
を具備し、 Comprising
前記制御ノードは、 The control node is
前記複数のディスクノードのうちの1つから前記動作不調情報を受け取ると、前記動作不調情報を記憶手段に格納する動作不調情報管理手段と、 Upon receiving the malfunction information from one of the plurality of disk nodes, malfunction information management means for storing the malfunction information in storage means;
前記複数のストレージ装置のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、前記記憶手段内の前記動作不調情報を参照して前記アクセス対象スライスが属するストレージ装置が故障中である可能性の有無を判断し、故障中の可能性がある場合、前記アクセス対象スライス内のデータと同じ内容の冗長データを格納するストレージ装置と、前記アクセス対象スライスが属するストレージ装置とのいずれとも異なるストレージ装置をコピー先とした、該冗長データのコピー指示を、該冗長データを格納するストレージ装置が接続されたディスクノードへ送信する第一のリカバリ指示手段と、 Upon receiving access-related information indicating that an access request has been issued with the slices of the plurality of storage devices as access target slices, the storage device to which the access target slice belongs is referred to the operation malfunction information in the storage means It is determined whether or not there is a possibility of failure, and when there is a possibility of failure, a storage device that stores redundant data having the same content as the data in the access target slice, and a storage device to which the access target slice belongs A first recovery instruction means for sending a redundant data copy instruction to a disk node to which the storage apparatus storing the redundant data is connected, with the storage apparatus being different from any of the storage apparatuses as a copy destination;
前記複数のディスクノードのうちの1つから故障検出情報を受け取ると、故障したストレージ装置内の各データと同じ内容の冗長データごとに、該冗長データを格納するストレージ装置と、前記故障したストレージ装置とのいずれとも異なるストレージ装置をコピー先とした、該冗長データのコピー指示を、該冗長データを格納するストレージ装置が接続されたディスクノードへ送信する第二のリカバリ指示手段と、 Upon receiving failure detection information from one of the plurality of disk nodes, a storage device that stores the redundant data for each redundant data having the same content as each data in the failed storage device, and the failed storage device A second recovery instruction means for transmitting a copy instruction of the redundant data to a disk node to which the storage apparatus storing the redundant data is connected, with the storage apparatus different from any of the storage apparatuses as a copy destination;
を具備する、 Comprising
ことを特徴とするマルチノードストレージシステム。 A multi-node storage system characterized by that.
前記アクセス対象スライスが属するストレージ装置が故障中である可能性が有る場合、前記アクセス対象スライス内のデータにアクセスする際のアクセス先を、該データと同じ内容の冗長データを格納するストレージ装置に変更する指示を、前記アクセス関連情報の送信元に通知する、 When there is a possibility that the storage device to which the access target slice belongs is in failure, the access destination when accessing the data in the access target slice is changed to a storage device that stores redundant data having the same contents as the data To notify the transmission source of the access related information,
をさらに有することを特徴とする請求項3記載のマルチノードストレージシステム。 The multi-node storage system according to claim 3, further comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012197110A JP5348300B2 (en) | 2012-09-07 | 2012-09-07 | Data management program and multi-node storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012197110A JP5348300B2 (en) | 2012-09-07 | 2012-09-07 | Data management program and multi-node storage system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008267280A Division JP2010097385A (en) | 2008-10-16 | 2008-10-16 | Data management program, storage device diagnostic program, and multi-node storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013008387A JP2013008387A (en) | 2013-01-10 |
JP5348300B2 true JP5348300B2 (en) | 2013-11-20 |
Family
ID=47675623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012197110A Expired - Fee Related JP5348300B2 (en) | 2012-09-07 | 2012-09-07 | Data management program and multi-node storage system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5348300B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5972802B2 (en) | 2013-01-21 | 2016-08-17 | 株式会社マキタ | Tabletop cutting machine |
JP7111964B2 (en) * | 2018-07-31 | 2022-08-03 | 富士通株式会社 | Storage management device, storage system and program |
CN111007992B (en) * | 2020-03-04 | 2020-08-04 | 广东电网有限责任公司佛山供电局 | Disk data storage representation method, system and storage medium |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05158625A (en) * | 1991-12-06 | 1993-06-25 | Hitachi Ltd | Trouble countermeasure system for array type storage device |
JPH08249133A (en) * | 1994-12-15 | 1996-09-27 | Internatl Business Mach Corp <Ibm> | Method and system for measures against fault of disk drive array |
JP3120753B2 (en) * | 1997-05-28 | 2000-12-25 | 日本電気株式会社 | Disk array unit failure recovery device |
JPH11345095A (en) * | 1998-06-02 | 1999-12-14 | Toshiba Corp | Disk array device and control method therefor |
JP3606797B2 (en) * | 1999-09-30 | 2005-01-05 | 富士通株式会社 | Copy processing method between data areas of storage device, storage system, and storage medium thereof |
JP2002149500A (en) * | 2000-11-08 | 2002-05-24 | Matsushita Electric Ind Co Ltd | Hard disk device |
JP3778171B2 (en) * | 2003-02-20 | 2006-05-24 | 日本電気株式会社 | Disk array device |
JP4426262B2 (en) * | 2003-11-26 | 2010-03-03 | 株式会社日立製作所 | Disk array device and failure avoiding method for disk array device |
JP4324088B2 (en) * | 2004-12-17 | 2009-09-02 | 富士通株式会社 | Data replication control device |
-
2012
- 2012-09-07 JP JP2012197110A patent/JP5348300B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013008387A (en) | 2013-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2010097385A (en) | Data management program, storage device diagnostic program, and multi-node storage system | |
JP5412882B2 (en) | Logical volume configuration information providing program, logical volume configuration information providing method, and logical volume configuration information providing apparatus | |
JP2011128917A (en) | Data allocation control program, data allocation control method, and data allocation control apparatus | |
US8271761B2 (en) | Storage system and management method thereof | |
JP5396836B2 (en) | Data distribution control program, storage management program, control node, and disk node | |
JP5158074B2 (en) | Storage management program, storage management method, storage management device, and storage system | |
US20100138687A1 (en) | Recording medium storing failure isolation processing program, failure node isolation method, and storage system | |
JP6237406B2 (en) | Information processing apparatus, storage system, and program | |
JP5218284B2 (en) | Virtual disk management program, storage device management program, multi-node storage system, and virtual disk management method | |
JP6212934B2 (en) | Storage system, information processing apparatus control program, and storage system control method | |
JP2009140153A (en) | Storage management device, storage system control device, storage management program, and storage system | |
US11573737B2 (en) | Method and apparatus for performing disk management of all flash array server | |
JP2020021277A (en) | Information processing system, managing method for information processing system, and program | |
US9047247B2 (en) | Storage system and data processing method | |
JP6540334B2 (en) | SYSTEM, INFORMATION PROCESSING DEVICE, AND INFORMATION PROCESSING METHOD | |
JP5348300B2 (en) | Data management program and multi-node storage system | |
JP5640480B2 (en) | Data management program, storage system, and data management method | |
TWI756007B (en) | Method and apparatus for performing high availability management of all flash array server | |
JP2008276281A (en) | Data synchronization system, method, and program | |
CN112445652A (en) | Remote copy system | |
JP5309816B2 (en) | Data management program, data management apparatus, and data management method | |
JP5924117B2 (en) | Computer, data storage method, data storage program, and information processing system | |
JP2010198467A (en) | Failure recovery system and method for information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130326 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130521 |
|
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: 20130723 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130805 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5348300 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |