JP2010097385A - データ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステム - Google Patents

データ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステム Download PDF

Info

Publication number
JP2010097385A
JP2010097385A JP2008267280A JP2008267280A JP2010097385A JP 2010097385 A JP2010097385 A JP 2010097385A JP 2008267280 A JP2008267280 A JP 2008267280A JP 2008267280 A JP2008267280 A JP 2008267280A JP 2010097385 A JP2010097385 A JP 2010097385A
Authority
JP
Japan
Prior art keywords
slice
storage
node
access
metadata
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.)
Pending
Application number
JP2008267280A
Other languages
English (en)
Inventor
Yasuo Noguchi
泰生 野口
Kazutaka Ogiwara
一隆 荻原
Masatoshi Tamura
雅寿 田村
Yoshihiro Tsuchiya
芳浩 土屋
Tetsutaro Maruyama
哲太郎 丸山
Takashi Watanabe
高志 渡辺
Tatsuo Kumano
達夫 熊野
Kazuichi Oe
和一 大江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008267280A priority Critical patent/JP2010097385A/ja
Priority to US12/585,384 priority patent/US8458398B2/en
Priority to EP09170523A priority patent/EP2177984A3/en
Publication of JP2010097385A publication Critical patent/JP2010097385A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • G06F11/2092Techniques of failing over between control units

Abstract

【課題】ストレージ装置の故障発生時に生じるデータアクセスの停止期間を短縮できるようにする。
【解決手段】 ストレージ装置1の動作が不調になるか、あるいは故障により、応答時間計測手段4aで計測している経過時間「T」が動作不調検出時間「T1」を超えると、動作不調検出手段4bにより、ストレージ装置1が故障中の可能性があることを示す動作不調情報が、制御ノード7に対して出力される。制御ノード7では、動作不調情報が動作不調情報記憶手段7bに格納される。その後、アクセスノード8がストレージ装置1内の先頭のスライス1aにアクセスしエラーになると、制御ノード7に対して、アクセスが失敗したことを示すアクセス関連情報を送信する。制御ノード7では、アクセス関連情報で示されるスライス1aのリカバリ指示をディスクノード5,6に対して行う。
【選択図】図1

Description

本発明はデータを二重化して管理するためのデータ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステムに関し、特にストレージ装置の診断結果に応じてデータのリカバリ処理を行うデータ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステムに関する。
ネットワーク上でデータを管理するシステムの1つにマルチノードストレージシステムがある。マルチノードストレージシステムは、複数のディスクノード、少なくとも1つのアクセスノード、および制御ノードで構成される。ディスクノード、アクセスノード、および制御ノードは、ネットワークを介して接続されている。
マルチノードストレージシステム内では、仮想ディスクが定義されている。仮想ディスクは、複数のセグメントと呼ばれる複数の単位記憶領域で構成される。また、ディスクノードは、接続されたストレージ装置の記憶領域をスライスと呼ばれる単位に分割して管理する。そして、仮想ディスクを構成するセグメントと、各ディスクノードが管理するスライスとの対応関係が制御ノードで管理される。その対応関係を示すメタデータは、制御ノードからアクセスノードに通知される。
アクセスノードは、仮想ディスク内のデータを指定したデータアクセスを受け取ると、メタデータに基づいて、そのデータが格納されたセグメントに対応するスライスを判断する。そして、アクセスノードは、実際にデータが格納されたスライスを管理するディスクノードに対してアクセス要求を送信する。
このようなマルチノードストレージシステムにより、アクセスノードを使用するユーザは、ディスクノードに接続された多数のストレージ装置を、ローカルのディスク装置と同様に使用することができる。しかも、マルチノードストレージシステムでは、1つのセグメントに2つのスライスを割り当てることで、データを二重化することもできる。データの二重化を行っていれば、1台のストレージ装置が故障してもデータを消失させずにすむ。
なお、データを二重化していても、障害によりストレージ装置へのアクセスができなくなると、一部のセグメントに関して二重化状態が崩れてしまう。その場合、リカバリ処理が行われる。リカバリ処理では、制御ノードにより、二重化状態が崩れたセグメント(リカバリ対象セグメント)に対して新たなスライスが割り当てられる。そして、リカバリ対象セグメントに割り当てられた既存のスライス内のデータを、ディスクノードが新たに割り当てたスライスへコピーする。これにより、データの二重化状態が回復する。
また、仮想ディスクのセグメントに二重化のために割り当てられている2つのスライスは、それぞれプライマリスライスとセカンダリスライスとの属性が与えられている。アクセスノードは、プライマリスライスに対してアクセスを行う。もし、プライマリスライスを有するストレージ装置に障害が発生すると、制御ノードは、セカンダリスライスの属性を、プライマリスライスに変更する。その結果、アクセスノードは、リカバリ処理の完了を待たずに、障害が発生したストレージ装置に格納されていたデータへのアクセスが可能となる。
国際公開第WO2004/104845号パンフレット
ところで、アクセスノードからデータへのアクセスができなくなる障害の1つとして、ストレージ装置の機能障害がある。ストレージ装置に障害が発生した場合、まず、ディスクノードがその障害を検出する。障害を検出したディスクノードが、障害発生を制御ノードに通知することで、制御ノードが障害の発生を認識する。そして、制御ノードの管理の下、リカバリ処理が実行される。
しかし、故障の誤検出を防止するためには、ストレージ装置の障害の予兆(動作不調)をディスクノードが検知してから障害であると判断するまでに、ある程度の猶予期間を設ける必要がある。そのため、その猶予期間中はアクセスノードのアクセス先を別のストレージ装置に変更する処理が実行されず、その間、アクセスノードからのデータアクセスが停止してしまう。
プライマリスライスを有するストレージ装置に障害が発生した場合、障害発生直後から、そのプライマリスライスへのアクセスノードからのアクセスはエラーとなる。他方、ディスクノードは、回復不能な障害が発生したのか、あるいは一時的な問題であり、ある程度の猶予期間をおけばアクセス可能となるのかが不明である。そのためディスクノードは、所定の猶予期間が経過するまで、故障であるとの判断をしない。その結果、現在のセカンダリスライスをプライマリスライスに切り替えるタイミングが遅れ、アクセスノードによるアクセスの停止期間が長期化していた。
本発明はこのような点に鑑みてなされたものであり、ストレージ装置の故障発生時に生じるデータアクセスの停止期間を短縮できるデータ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステムを提供することを目的とする。
上記課題を解決するために、以下の機能をコンピュータで実現するためのデータ管理プログラムが提供される。このデータ管理プログラムは、記憶領域が複数のスライスに分割して管理されている複数のストレージ装置に二重化して格納されたデータの管理処理をコンピュータに実行させるものである。
データ管理プログラムを実行するコンピュータは、動作不調情報管理手段とリカバリ指示手段として機能する。動作不調情報管理手段は、複数のストレージ装置のうちの1つが故障中の可能性があることを示す動作不調情報を受け取ると、動作不調情報を動作不調情報記憶手段に格納する。リカバリ指示手段は、複数のストレージ装置のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、動作不調情報記憶手段内の動作不調情報を参照してアクセス対象スライスが属するストレージ装置が故障中である可能性の有無を判断し、故障の可能性がある場合、アクセス対象スライス内のデータと同じ内容の冗長データを格納するストレージ装置へのデータ入出力機能を有するスライス管理手段へ、アクセス対象スライスに格納されていたデータのリカバリ処理を指示する。
また、上記課題を解決するために、以下の機能をコンピュータで実現するためのストレージ装置診断プログラムが提供される。ストレージ装置診断プログラムは、ストレージ装置がローカルに接続されると共に、ストレージ装置に格納するデータの管理を行う制御ノードにネットワーク経由で接続されたコンピュータに、ストレージ装置の動作診断処理を実行させるためのものである。
ストレージ装置診断プログラムを実行するコンピュータは、応答時間計測手段、動作不調検出手段、および復帰検出手段として機能する。応答時間計測手段は、ストレージ装置に対して検査コマンドを発行し、検査コマンド発行から応答があるまでの経過時間を計測する。動作不調検出手段は、経過時間が予め設定された動作不調検出時間に達しても応答がない場合、制御ノードに対して、ストレージ装置が故障中の可能性があることを示す動作不調情報を送信する。復帰検出手段は、動作不調情報を送信後にストレージ装置から検査コマンドに対する応答が返されると、制御ノードに対してストレージ装置の復帰を示す復帰情報を送信する。
ストレージ装置の障害発生時に生じるデータアクセス停止期間を短縮できる。
以下、本発明の実施の形態を図面を参照して説明する。
図1は、実施の形態の概要を示す図である。図1には、マルチノードストレージシステムが示されている。マルチノードストレージシステムは、ストレージ装置1〜3に格納されたデータを二重化して管理するため複数のディスクノード4〜6、制御ノード7、およびアクセスノード8を有する。
ストレージ装置1〜3は、記憶領域が複数のスライスに分割して管理されている。また、ストレージ装置1〜3は、それぞれディスクノード4〜6に対してローカルに接続されている。ここで、ローカルに接続されているとは、ネットワーク経由での接続ではないことを意味している。
ディスクノード4は、応答時間計測手段4a、動作不調検出手段4b、故障検出手段4c、および復帰検出手段4dを有する。
応答時間計測手段4aは、ローカルに接続されたストレージ装置1に対して検査コマンドを発行する。そして、応答時間計測手段4aは、検査コマンドの発行から検査コマンドに対する応答がストレージ装置1から返されるまでの経過時間「T」を計測する。
動作不調検出手段4bには、動作不調検出時間「T1」が予め設定されている。例えば、動作不調検出手段4bの管理するメモリ内に動作不調検出時間「T1」が格納されている。動作不調検出時間「T1」には、例えば、ストレージ装置1の動作が正常な場合に検査コマンドに応答可能な時間(例えば1秒)が設定される。動作不調検出手段4bは、経過時間「T」が動作不調検出時間「T1」に達してもストレージ装置1からの応答がない場合、制御ノード7に対してストレージ装置1が故障中の可能性があることを示す動作不調情報を送信する。
故障検出手段4cには、動作不調検出時間「T1」よりも大きな値が故障検出時間「T2」として設定されている。故障検出時間「T2」には、例えば、ストレージ装置1の処理が過負荷であっても、故障していなければ検査コマンドに応答可能な時間の最大値(例えば1分)が設定される。故障検出手段4cは、経過時間「T」が故障検出時間「T2」に達してもストレージ装置1からの応答がない場合、制御ノード7に対してストレージ装置1に関する故障検出情報を送信する。
復帰検出手段4dは、動作不調情報を送信後にストレージ装置1から検査コマンドに対する応答が返されると、制御ノード7に対してストレージ装置1の復帰を示す復帰情報を送信する。
ディスクノード5は、ストレージ装置2にデータの入出力を行うスライス管理手段5aを有する。同様に、ディスクノード6は、ストレージ装置3にデータの入出力を行うスライス管理手段6aを有する。
なお、図1では省略しているが、ディスクノード4が有する各機能と同様の機能が、ディスクノード5,6にも含まれる。同様に、図1では省略しているが、ディスクノード5,6が有するスライス管理手段5a,6aと同様の機能は、ディスクノード4にも含まれる。
制御ノード7は、動作不調情報管理手段7a、動作不調情報記憶手段7b、およびリカバリ指示手段7cを有する。
動作不調情報管理手段7aは、ディスクノード4〜6の1つから動作不調情報を受け取ると、動作不調情報を動作不調情報記憶手段7bに格納する。
動作不調情報記憶手段7bは、動作不調情報を記憶する。例えば、メモリの記憶領域の一部が動作不調情報記憶手段7bとして用いられる。
リカバリ指示手段7cは、複数のストレージ装置1〜3のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、動作不調情報記憶手段7b内の動作不調情報を参照してアクセス対象スライスが属するストレージ装置が故障中である可能性の有無を判断する。すなわち、アクセス対象スライスが属するストレージ装置に故障の可能性がある旨の動作不調情報が動作不調情報記憶手段7bに格納されていれば、故障の可能性ありと判断される。
リカバリ指示手段7cは、故障の可能性がある場合、アクセス対象スライス内のデータと同じ内容の冗長データを格納するストレージ装置が接続されたディスクノードへ、アクセス対象スライスに格納されていたデータのリカバリ処理を指示する。なお、リカバリ処理とは、アクセス対象スライス内の冗長データを他のストレージ装置にコピーし、データの二重化状態を回復する処理である。
なお、図1の例では、アクセス関連情報は、複数のストレージ装置1〜3にアクセスを行うアクセスノード8によるストレージ装置1内のスライスへのアクセスが失敗したときに、アクセスノード8から送信される。この場合、リカバリ指示手段7cは、アクセスノード8からアクセス関連情報を受け取ると、アクセスノード8に対して冗長データの格納場所を通知する。
このようなマルチノードストレージシステムによれば、過負荷などによりストレージ装置1の動作が不調になると、応答時間計測手段4aが出力する検査コマンドに対するストレージ装置1からの応答時間は、動作不調検出時間「T1」より長くかかるが故障検出時間「T2」よりは短くなる。また、ストレージ装置1が故障していれば、検査コマンドに対する応答は、故障検出時間「T2」を過ぎても出されない。
ここで、ストレージ装置1の動作が不調になるか、あるいは故障により、応答時間計測手段4aで計測している経過時間「T」が動作不調検出時間「T1」を超えたものとする。すると、動作不調検出手段4bにより、ストレージ装置1が故障中の可能性があることを示す動作不調情報が、制御ノード7に対して出力される。制御ノード7では、動作不調情報管理手段7aにより、動作不調情報が動作不調情報記憶手段7bに格納される。
その後、アクセスノード8がストレージ装置1内の先頭のスライス1aにアクセスすると、そのアクセスはエラーとなる。そこで、アクセスノード8は、制御ノード7に対して、ストレージ装置1の先頭のスライス1aへのアクセスが失敗したことを示すアクセス関連情報を送信する。制御ノード7では、リカバリ指示手段7cが動作不調情報記憶手段7bを参照し、ストレージ装置1が故障中の可能性があることを認識する。そこで、リカバリ指示手段7cは、アクセス関連情報で示されるスライス1aのリカバリ指示をディスクノード5,6に対して行う。
ここで、図1の例では、スライス1a内のデータ(data[A])の冗長データがストレージ装置2の先頭のスライス2aに格納されているものとする。また、ストレージ装置3の先頭のスライスが空き状態(有効なデータが格納されていない状態)であるものとする。この場合、リカバリ指示手段7cは、ディスクノード5のスライス管理手段5aに対してスライス2aのデータをスライス3aにコピーすることを指示する。すると、スライス管理手段5aは、スライス2aのデータを読み出し、ディスクノード6に転送する。ディスクノード6では、スライス管理手段6aがデータを受け取り、スライス3aに書き込む。
リカバリ指示手段7cは、ストレージ装置2のスライス2aにスライス1aの冗長データが格納されていることを、アクセスノード8に通知する。これにより、アクセスノード8は、迅速にアクセス先をストレージ装置2のスライス2aに変更できる。
その後、ストレージ装置1からの応答が故障検出時間「T2」を経過してもディスクノード4に対して出力されなかった場合、故障検出手段4cが故障検出時間「T2」の経過を検出する。そして、故障検出手段4cから制御ノード7へ、ストレージ装置1が故障したことを示す故障検出情報が送信される。制御ノード7では、リカバリ指示手段7cがストレージ装置2内のすべてのスライスについて、ディスクノード5へリカバリの指示を行う。
また、ストレージ装置1からの応答が故障検出時間「T2」経過前にディスクノード4に対して出力された場合、復帰検出手段4dが復帰を検出する。そして、復帰検出手段4dから制御ノード7へ、ストレージ装置1が復帰したことを示す復帰情報が送信される。制御ノード7では、動作不調情報管理手段7aにより、ストレージ装置1が故障中の可能性があることを示す動作不調情報が、動作不調情報記憶手段7bから消去される。
このように、図1に示すマルチノードストレージシステムでは、ストレージ装置1〜3の故障検出時間を動作不調検出時間「T1」、故障検出時間「T2」(T1<T2)の2段階にする。従来は、故障検出時間「T2」のみが存在し、ディスクノードが故障検出時間「T2」を検出するとリカバリ処理が開始されていた。そのため、故障検出時間「T2」を長くとりすぎるとリカバリ処理が遅れ、故障発生時にアクセス不能の期間も長期化していた。本実施の形態では、図1に示したように、ディスクノード4が動作不調検出時間「T1」を検出して制御ノード7に通知しておく。そして制御ノード7は、アクセスに失敗したスライス1aのデータのみのリカバリ処理を指示する。これにより、アクセス不能の期間の長期化が防止される。
なお、図1では、ストレージ装置1〜3がそれぞれ個別のディスクノード4〜6に接続されているが、1つのノードで複数のストレージ装置がローカルに接続されるシステムもある。そのようなシステムでは、ストレージ装置が接続された1つのノードに、図1に示した制御ノード7とディスクノード4〜6との機能が内蔵されることとなる。
ところで、マルチノードストレージシステムでは、仮想ディスクを介してデータアクセスが行われる。このとき、仮想ディスク内の記憶領域とストレージ装置内の記憶領域との割り当て関係はメタデータを用いて管理できる。そこで、メタデータを用いて割り当て関係を管理する場合の例を用い、以下に、本実施の形態の詳細を説明する。
[第1の実施の形態]
図2は、第1の形態のマルチノードストレージシステム構成例を示す図である。本実施の形態では、ネットワーク10を介して、複数のディスクノード100,200,300、制御ノード500、アクセスノード600,700、および管理ノード30が接続されている。ディスクノード100,200,300それぞれには、ストレージ装置110,210,310が接続されている。
ストレージ装置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のディスク管理サービスを提供する。
ディスクノード100,200,300は、接続されたストレージ装置110,210,310に格納されたデータを管理し、管理しているデータをネットワーク10経由で端末装置21,22,23に提供する。また、ディスクノード100,200,300は、冗長性を有するデータを管理している。すなわち、同一のデータが、少なくとも2つのディスクノードで管理されている。
制御ノード500は、ディスクノード100,200,300を管理する。例えば、制御ノード500は、ディスクノード100,200,300から新たなストレージ装置の接続通知を受け取ると、新たな仮想ディスクを定義し、その仮想ディスクを介して接続されたストレージ装置に格納されていたデータにアクセスできるようにする。
アクセスノード600,700には、ネットワーク20を介して複数の端末装置21,22,23が接続されている。また、アクセスノード600,700には、仮想ディスクが定義されている。そして、アクセスノード600,700は、端末装置21,22,23からの仮想ディスクのデータのアクセス要求に応答して、ディスクノード100,200,300内の対応するデータへアクセスする。
管理ノード30は、管理者がマルチノードストレージシステムの運用を管理するために使用するコンピュータである。例えば、管理ノード30では、ストレージ装置の動作上級などの情報を収集し、収集した情報を画面に表示する。管理ノード30を使用する管理者は、画面に表示された情報を参照し、リカバリ処理が必要なストレージ装置を見つけた場合、そのストレージ装置のリカバリ処理の指示を管理ノード30に入力する。すると、管理ノード30から制御ノード500に、ストレージ装置を指定したリカバリ要求が送信される。
図3は、第1の形態に用いる制御ノードのハードウェア構成例を示す図である。制御ノード500は、CPU(Central Processing Unit)501によって装置全体が制御されている。CPU501には、バス507を介してRAM(Random Access Memory)502、ハードディスクドライブ(HDD:Hard Disk Drive)503、グラフィック処理装置504、入力インタフェース505、および通信インタフェース506が接続されている。
RAM502は、制御ノード500の主記憶装置として使用される。RAM502には、CPU501に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM502には、CPU501による処理に必要な各種データが格納される。HDD503は、制御ノード500の二次記憶装置として使用される。HDD503には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置504には、モニタ11が接続されている。グラフィック処理装置504は、CPU501からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置がある。
入力インタフェース505には、キーボード12とマウス13とが接続されている。入力インタフェース505は、キーボード12やマウス13から送られてくる信号を、バス507を介してCPU501に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
通信インタフェース506は、ネットワーク10に接続されている。通信インタフェース506は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図3では制御ノード500のハードウェア構成を示したが、ディスクノード100,200,300、アクセスノード600,700、および管理ノード30も同様のハードウェア構成で実現することができる。ただし、ディスクノード100,200,300は、図3に示した機能に加え、ストレージ装置110,210,310を外部接続するためのインタフェースを有している。
次に、マルチノードストレージシステムにおいて定義される仮想ディスクのデータ構造について説明する。
図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で一意に識別される。
各ディスクノード100,200,300が有するストレージ装置110,210,310それぞれにおいてRAID5のストレージシステムが構成されている。各ストレージ装置110,210,310で提供される記憶機能は、複数のスライス115a〜115c,215a〜215c,315a〜315cに分割されて管理されている。
仮想ディスク60は、セグメント61〜63という単位で構成される。セグメント61〜63の記憶容量は、ストレージ装置110,210における管理単位であるスライスの記憶容量と同じである。例えば、スライスの記憶容量が1ギガバイトとするとセグメントの記憶容量も1ギガバイトである。仮想ディスク60の記憶容量はセグメント1つ当たりの記憶容量の整数倍である。セグメント61〜63は、それぞれプライマリスライス61a,62a,63aとセカンダリスライス61b,62b,63bとの組(スライスペア)で構成される。
同一セグメントに属する2つのスライスは別々のディスクノードに属する。個々のスライスを管理する領域には仮想ディスク識別子やセグメント情報や同じセグメントを構成するスライス情報の他にフラグがあり、そのフラグにはプライマリあるいはセカンダリなどを表す値が格納される。
図4の例では、仮想ディスク60内のスライスの識別子を、「P」または「S」のアルファベットと数字との組合せで示している。「P」はプライマリスライスであることを示している。「S」はセカンダリスライスであることを示している。アルファベットに続く数字は、何番目のセグメントに属するのかを表している。例えば、1番目のセグメント61のプライマリスライスが「P1」で示され、セカンダリスライスが「S1」で示される。
図5は、マルチノードストレージシステムの各装置の機能を示すブロック図である。アクセスノード600は、メタデータ照会部610、アクセス用メタデータ記憶部620、およびスライスアクセス要求部630を有している。
メタデータ照会部610は、仮想ディスク60を定義するメタデータを、制御ノード500から取得する。具体的には、メタデータ照会部610は、アクセスノード600の起動時に制御ノード500に対して全メタデータの照会要求を送信する。すると、制御ノード500から仮想ディスク60に関する全メタデータが送られてくる。また、メタデータ照会部610は、スライスアクセス要求部630による任意のスライスへのデータアクセスがエラーとなったとき、アクセス対象のスライスが割り当てられたセグメントに関するメタデータの照会要求を制御ノード500に送信する。すると、制御ノード500から、該当セグメントの最新のメタデータが送られてくる。なお、メタデータ照会部610は、制御ノード500からメタデータを取得すると、そのメタデータをアクセス用メタデータ記憶部620に格納する。
アクセス用メタデータ記憶部620は、仮想ディスク60を定義するメタデータの記憶機能である。例えば、アクセスノード600のRAMの一部がアクセス用メタデータ記憶部620として使用される。なお、本実施の形態では、アクセスノード600は常にプライマリスライスにアクセスを行う。そのため、アクセス用メタデータ記憶部620には、仮想ディスク60のメタデータのうち、少なくともプライマリスライスに関するメタデータが格納されていればよい。
スライスアクセス要求部630は、端末装置21,22,23からの仮想ディスク上でのデータのアクセス要求に応答して、ストレージ装置110,210,310のデータのアクセス要求(リード要求またはライト要求)をディスクノード100,200,300に対して送信する。具体的には、スライスアクセス要求部630は、仮想ディスクのアドレスを指定したアクセス要求を受け取ると、まず、アクセス用メタデータ記憶部620を参照し、アクセス対象のデータが属するセグメントを判断する。次に、スライスアクセス要求部630は、該当するセグメントにプライマリスライスとして割り当てられたスライスを判断する。そして、スライスアクセス要求部630は、該当するスライスを管理するディスクノードに対して、そのスライス内のデータのアクセス要求を送信する。ディスクノードからアクセス結果が応答されると、スライスアクセス要求部630は、端末装置21,22,23にアクセス結果を送信する。
なお、スライスアクセス要求部630は、アクセス先のディスクノードからエラーが返された場合、エラーが発生したセグメントをメタデータ照会部610に通知する。その後、スライスアクセス要求部630は、データアクセスのリトライを行う。リトライでは、アクセス用メタデータ記憶部620を参照して、プライマリスライスとした割り当てられたスライスを判断する処理から再度実行される。すなわち、前回のアクセス要求後にアクセス用メタデータ記憶部620内のメタデータが更新されていれば、更新後のメタデータに基づいてリトライ時のアクセス先となるディスクノードが判断される。
ディスクノード100は、スライスアクセス処理部120、T1/復帰検出部130、T2検出部140、メタデータ記憶部150、およびスライス管理部160を有している。
スライスアクセス処理部120は、アクセスノード600からのアクセス要求に応答して、ストレージ装置110に対するデータアクセスを行う。具体的には、スライスアクセス処理部120は、アクセスノード600からアクセス要求を受け取ると、メタデータ記憶部150を参照し、アクセス対象となるセグメントに対して、割り当てられているストレージ装置110内のスライスを判断する。
次に、スライスアクセス処理部120は、アクセス要求で指定されている該当するスライス内のデータに対してアクセスする。例えば、データリードのアクセス要求であれば、スライスアクセス処理部120は、該当するデータをストレージ装置110から読み出す。また、データライトのアクセス要求であれば、スライスアクセス処理部120は、ストレージ装置110内の該当する記憶領域にアクセス要求に含まれるデータを書き込む。そして、スライスアクセス処理部120は、アクセス結果をアクセスノード600に送信する。データリードのアクセス要求の場合、ストレージ装置110から読み出したデータがアクセス結果に含まれる。なお、ストレージ装置110がアクセスに対する応答を返せない状況にある場合(検査コマンドへの応答が返せない状況と同様)、スライスアクセス処理部120は、アクセスノード600に対してエラーを返す(エラーメッセージを送信する)。
T1/復帰検出部130は、定期的にストレージ装置110に対して検査コマンドを送信し、応答の有無により故障の有無を判定する。具体的には、T1/復帰検出部130は、定期的にストレージ装置110へ”test unit ready”などの検査コマンドを発行する。また、T1/復帰検出部130は、内部に動作不調検出時間「T1」の値を保持している。例えば、T1/復帰検出部130が使用しているRAM内に「T1」の値が設定されている。T1としては、例えば、数秒から十数秒程度の時間が設定される。
そして、T1/復帰検出部130は、検査コマンド発行から動作不調検出時間が経過してもストレージ装置110から応答が返ってこない場合、故障の可能性有りと判定する。故障の可能性有りと判定した場合、T1/復帰検出部130は、制御ノード500に対してT1経過通知を送信する。また、T1/復帰検出部130は、検査コマンド発行からT1経過後に、ストレージ装置110から応答が返されると、制御ノード500に対して復帰通知を送信する。
T2検出部140は、故障の可能性有りと判定した後に、故障確定判定を行う。具体的には、T2検出部140は、内部に故障検出時間「T2」(T1<T2)の値を予め保持している。例えば、T2検出部140が使用しているRAM内に「T2」の値が設定されている。T2としては、例えば、30秒から1分程度の時間が設定される。
T2検出部140は、T1/復帰検出部130が検査コマンドを発行してからT2が経過するまでにストレージ装置110から応答が返ってこない場合、故障確定と判定する。故障確定と判定した場合、T2検出部140は、T2経過通知を制御ノード500に送信する。
メタデータ記憶部150は、ディスクノード100が管理しているスライスのメタデータの記憶機能である。例えば、ディスクノード100のRAM内の一部の記憶領域がメタデータ記憶部150として使用される。
スライス管理部160は、ストレージ装置110内の各スライスのメタデータを管理する。具体的には、スライス管理部160は、ディスクノード100起動時に、ストレージ装置110から各スライスのメタデータを読み出し、メタデータ記憶部150に格納する。また、スライス管理部160は、制御ノード500からメタデータの収集要求があれば、メタデータ記憶部150に格納されているメタデータを制御ノード500に送信する。さらにスライス管理部160は、制御ノード500からメタデータの変更要求を受け取ると、その変更要求で指定されたメタデータの内容を変更する。この際、スライス管理部160は、メタデータ記憶部150内のメタデータと、ストレージ装置110内のメタデータとを変更する。
制御ノード500は、仮想ディスクメタデータ記憶部510、メタデータ検索部520、ストレージ状態記憶部530、ストレージ状態管理部540、およびスライス割り当て管理部550を有している。
仮想ディスクメタデータ記憶部510は、仮想ディスク60を構成するセグメントへのスライスの割り当て関係を示すメタデータを記憶する記憶機能である。例えば、RAM502の記憶領域の一部が仮想ディスクメタデータ記憶部510として使用される。
メタデータ検索部520は、アクセスノード600から照会されたセグメントに割り当てられたスライスのメタデータを仮想ディスクメタデータ記憶部510から検索し、検索結果をアクセスノード600に応答する。また、メタデータ検索部520は、アクセスノード600から照会されたスライスを有するストレージ装置が故障の可能性がある場合、アクセスノード600から照会されたセグメントへのスライスの再割り当てをスライス割り当て管理部550に要求する。そして、メタデータ検索部520は、再割り当て結果を反映したメタデータを仮想ディスクメタデータ記憶部510より取得し、取得したメタデータをアクセスノード600に応答する。なお、メタデータ検索部520は、各ストレージ装置の状態は、ストレージ状態記憶部530を参照することで判断する。
ストレージ状態記憶部530には、各ディスクノード100,200,300に接続されているストレージ装置110,210,310の状態を記憶する記憶機能である。例えば、RAM502の記憶領域の一部がストレージ状態記憶部530として使用される。ストレージ状態記憶部530に設定されるストレージ装置110,210,310の状態には、通常の状態と、T1経過後の状態とがある。T1経過後の状態は、検査コマンドへの無応答時間が動作不調検出時間が経過したことを示している。ストレージ装置の状態が、T1経過後の状態であれば、そのストレージ装置が故障している可能性があることが分かる。
ストレージ状態管理部540は、ディスクノード100からの通知に応じて、ストレージ状態記憶部530内に示されるストレージ装置110の状態を変更する。具体的には、ディスクノード100からT1経過通知を受け取ると、ストレージ状態管理部540は、ストレージ状態記憶部530内に示されるストレージ装置110の状態を、T1経過後の状態とする。また、ディスクノード100から復帰通知を受け取ると、ストレージ状態管理部540は、ストレージ状態記憶部530内に示されるストレージ装置110の状態を、通常の状態とする。
スライス割り当て管理部550は、仮想ディスク60のセグメントへのスライスの割り当てを管理する。例えば、スライス割り当て管理部550は、メタデータ検索部520から、故障の可能性があるストレージ装置内のアクセス対象となったスライスが通知されると、そのスライスが割り当てられているセグメントに対して、別のスライスを割り当てる。
また、スライス割り当て管理部550は、ディスクノード100からT2経過通知を受け取ると、ストレージ装置110内のスライスが割り当てられたセグメントのリカバリ処理を開始する。スライス割り当て管理部550は、リカバリ処理において、リカバリ対象セグメントに割り当てられたスライスのうち、ストレージ装置110以外のストレージ装置210,310のスライスをすべてプライマリスライスとする。次に、スライス割り当て管理部550は、リカバリ対象セグメントのセカンダリスライスとして、ストレージ装置210,310のスライスを割り当てる。そして、スライス割り当て管理部550は、割り当て結果に応じたメタデータの更新要求をディスクノード200,300に送信する。ディスクノード200,300においてメタデータの更新が完了すると、スライス割り当て管理部550は、仮想ディスクメタデータ記憶部510内のメタデータを更新する。
リカバリ処理によりメタデータが更新された場合、リカバリ対象セグメントのプライマリスライスを管理するディスクノードは、ネットワーク10経由でプライマリスライス内のデータをセカンダリスライスにコピーする。リカバリ処理に伴うデータのコピーは、プライマリスライスを管理するディスクノードとセカンダリスライスを管理するディスクノードとにおけるスライス管理部160に相当する機能の協働動作により実行される。
なお、図5では、2台のアクセスノード600,700のうちのアクセスノード600の機能を代表で示しているが、アクセスノード700も同様の機能を有している。また、3台のディスクノード100,200,300のうちのディスクノード100の機能を代表で示しているが、他のディスクノード200,300も同様の機能を有している。
次に、マルチノードストレージシステムの各ノードで管理されるメタデータについて詳細に説明する。本実施の形態におけるメタデータは、システムが停止している間は、ストレージ装置110,210,310に格納されている。マルチノードストレージシステムが起動されると、ストレージ装置110,210,310内のメタデータが読み出され、各ノードに保持される。
次に、各ノードで管理されているデータの構造について説明する。
図6は、ストレージ装置のデータ構造例を示す図である。ストレージ装置110には、スライス115a,115b,115c,・・・とは別に複数のメタデータ117a,117b,117c,・・・が格納されている。
ストレージ装置110に格納されたメタデータ117a,117b,117c,・・・は、ディスクノード100の起動時にスライス管理部160によって読み出され、メタデータ記憶部150に格納される。
図7は、メタデータ記憶部のデータ構造例を示す図である。メタデータ記憶部150には、メタデータテーブル151が格納されている。メタデータテーブル151には、ディスクノードID、ディスクID、スライスID、状態、仮想ディスクID、セグメントID、仮想ディスクアドレス、ペアのディスクノードID、ペアのディスクID、ペアのスライスID、およびタイムスタンプの欄が設けられている。メタデータテーブル151内の横方向に並べられた情報同士が互いに関連付けられ、メタデータを示す1つのレコードを構成している。
ディスクノードIDの欄は、ストレージ装置110を管理しているディスクノード100の識別情報(ディスクノードID)が設定される。
ディスクIDの欄には、ディスクノード100に接続されているストレージ装置の識別情報(ディスクID)が設定される。本実施の形態ではディスクノード100に1台のストレージ装置110しか接続されていないが、複数のストレージ装置が接続された場合、各ストレージ装置に異なるディスクIDが設定される。
スライスIDの欄には、メタデータに対応するスライスのストレージ装置110内での識別情報(スライスID)が設定される。
状態の欄には、スライスの状態を示す状態フラグが設定される。スライスが仮想ディスクのセグメントに割り当てられていない場合、状態フラグ「F」が設定される。仮想ディスクのセグメントのプライマリストレージに割り当てられている場合、状態フラグ「P」が設定される。仮想ディスクのセグメントのセカンダリストレージに割り当てられている場合、状態フラグ「S」が設定される。仮想ディスクのセグメントに割り当てることが決定したが、まだデータのコピーが行われていない場合、予約済を示す状態フラグ「R」が設定される。異常セグメントと判定された場合、異常であることを示す状態フラグ「B」が設定される。
仮想ディスクIDの欄には、スライスに対応するセグメントが属する仮想ディスクを識別するための識別情報(仮想ディスクID)が設定される。
セグメントIDの欄には、スライスが割り当てられたセグメントの識別情報(セグメントID)が設定される。
仮想ディスクアドレスの欄には、スライスが割り当てられているセグメントの先頭を示す仮想ディスク内でのアドレスが設定される。
ペアのディスクノードIDの欄には、ペアのスライス(同じセグメントに属する別のスライス)を有するストレージ装置を管理するディスクノードの識別情報(ディスクノードID)が設定される。
ペアのディスクIDの欄には、ペアのディスクノードIDで示されるディスクノード内で、ペアのスライスを有するストレージ装置を識別するための識別情報(ディスクID)が設定される。
ペアのスライスIDの欄には、ペアのスライスを、そのスライスが属するストレージ装置内で識別するための識別情報(スライスID)が設定される。
タイムスタンプの欄には、セグメントへのスライスの割り当てを行った時刻(タイムスタンプ)が設定される。図中のタイムスタンプの値は、「t」に続く数が大きいほど、新しい時刻を示している。tnの「n」は自然数を示している。
図7にはディスクノード100のメタデータ記憶部150の内容を示しているが、他のディスクノード200,300も同様のメタデータ記憶部を有している。そして、各ディスクノード100,200,300のメタデータ記憶部に格納されたメタデータは、制御ノード500からの要求に応じて制御ノード500に送信される。制御ノード500では、ディスクノード100,200,300から収集したメタデータは、スライス割り当て管理部550により仮想ディスクメタデータ記憶部510に格納される。
図8は、仮想ディスクメタデータ記憶部のデータ構造例を示す図である。仮想ディスクメタデータ記憶部510には、仮想ディスクメタデータテーブル511が格納されている。仮想ディスクメタデータテーブル511には、ディスクノードID、ディスクID、スライスID、状態、仮想ディスクID、セグメントID、仮想ディスクアドレス、ペアのディスクノードID、ペアのディスクID、ペアのスライスID、およびタイムスタンプの欄が設けられている。仮想ディスクメタデータテーブル511内の横方向に並べられた情報が互いに関連付けられ、メタデータを示す1つのレコードを構成している。仮想ディスクメタデータテーブル511の各欄に設定される情報は、メタデータテーブル151の同名の欄と同種の情報である。
仮想ディスクメタデータテーブル511に格納されたメタデータは、アクセスノード600,700からの照会要求に応答して、アクセスノード600,700に送信される。アクセスノード600,700は、取得したメタデータを記憶する。アクセスノード600であれば、アクセス用メタデータ記憶部620にメタデータが格納される。アクセスノード700においても、アクセス用メタデータ記憶部620に相当する記憶機能にメタデータが格納される。
アクセス用メタデータ記憶部620のデータ構造は、仮想ディスクメタデータ記憶部510と同様である。なお、本実施の形態では、アクセスノード600は常にプライマリスライスにアクセスする。そのため、アクセス用メタデータ記憶部620には、少なくともプライマリスライスに関するメタデータが格納されていればよい。また、各メタデータにおけるペアのディスクノードID、ペアのディスクID、ペアのスライスID、タイムスタンプの各欄のデータは無くてもよい。
次に、制御ノード500内のストレージ状態記憶部530に格納されるデータについて説明する。
図9は、ストレージ状態記憶部のデータ構造例を示す図である。ストレージ状態記憶部530には、ディスク管理テーブル531が格納されている。ディスク管理テーブル531には、ディスクノードID、ディスクID、および状態の欄が設けられている。
ディスクノードIDの欄には、ディスクノードを一意に識別するための識別情報(ディスクノードID)が設定される。ディスクIDの欄には、ディスクノードに接続されたストレージ装置の識別情報(ディスクID)が設定される。
状態の欄には、各ストレージ装置の状態が設定される。状態には、「通常」と「T1」とがある。「通常」の状態とは、ストレージ装置が正常に動作している状態である。具体的には、定期的にディスクノードから出力される検査コマンドに対してストレージ装置から応答が返されている場合、そのストレージ装置の状態は「通常」に設定される。「T1」の状態とは、ストレージ装置の故障の可能性がある状態である。具体的には、定期的にディスクノードから出力される検査コマンドに対して、T1経過前にストレージ装置から応答が返されない場合、そのストレージ装置の状態は「T1」に設定される。
このような構成のマルチノードストレージシステムにおいて、検査コマンドに対するストレージ装置からの応答が、T1を経過しても返されない場合、以下のようなスライス切り替え処理が実行される。
図10は、ストレージ装置故障時のスライス切り替え処理の手順を示すシーケンス図である。この例では、ディスクノード100に接続されたストレージ装置110が故障したものとする。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS11]ディスクノード100のT1/復帰検出部130は、定期的にストレージ装置110のディスク診断(動作確認)を行う。具体的には、T1/復帰検出部130は、定期的にストレージ装置110へ”test unit ready”の検査コマンドを発行する。ストレージ装置110が正常に動作していれば、ストレージ装置110からT1以内に応答が返される。
ストレージ装置110が故障している場合やストレージ装置110内部でデータの再生成処理が行われている場合などには、ストレージ装置110からT1以内に応答が返されない。
データの再生成処理は、RAID5のディスク故障時に実行される処理である。すなわち、図2に示すようにストレージ装置110は、複数のHDD111〜114が実装されており、RAID5システムを構成している。RAID5では、データを分割して複数のHDDに分散格納するストライピング処理が行われる。その際、データを修復するためのパリティデータが生成され、データとは別のHDDに格納される。ストレージ装置110内の1台のHDDが故障した場合、パリティデータを用いて、そのHDDに格納されていたデータが再生成される。
このようなデータの再生成処理は、ストレージ装置110内で自動的に実行される。例えば、ストレージ装置110内の4台のHDD111〜114の1台が故障した場合、ストレージ装置110内のRAIDコントローラによる故障したHDDに格納されていたデータが再生成される。さらに、RAIDコントローラは、稼動するHDDが3台になったことにより、ストライピング処理によるデータの再配置を行う。このようなデータの再生成や再配置の処理中は、ストレージ装置110内のRAIDコントローラへの負荷が普段より大きくなる。そのため、データの再生成処理中にディスクノード100からストレージ装置110に検査コマンドが入力されると、応答に通常より多くの時間がかかることがある。ただし、データの再生成などの処理はストレージ装置110の正常動作の1つである。そのため、再生成処理中に検査コマンドへの応答が遅れたとしても、ストレージ装置110全体としての故障ではない。
図10の例では、ストレージ装置110が故障しているため、検査コマンドを発行してからT1が経過しても、応答が返ってこない。その場合、まずT1/復帰検出部130がT1が経過したことを検出する。
T1の経過を検出すると、T1/復帰検出部130は、制御ノード500に対してT1経過通知を送信する。T1経過通知には、ディスクノード100のディスクノードIDとストレージ装置110のディスクIDとが含まれる。T1/復帰検出部130は、その後もストレージ装置110からの応答を待つ。
制御ノード500のストレージ状態管理部540は、T1経過通知を受信すると、ストレージ装置110の状態を切り替える。すなわち、ストレージ状態管理部540は、T1経過通知に示されるディスクノードIDとディスクIDとの組みに対応する情報をストレージ状態記憶部530から検索する。そして、ストレージ状態管理部540は、該当するストレージ装置に関する情報の状態を「T1」に変更する。
図11は、状態変更後のストレージ状態記憶部の例を示す図である。図11に示すように、ディスクノードID「SN−A」とディスクID「1」との組に対応する状態が「T1」に変更されている。これにより、制御ノード500では、ディスクノード100に接続されたストレージ装置110に故障の可能性があることが認識できる。
図10の説明に戻る。
[ステップS12]状態の切り替えが完了すると、ストレージ状態管理部540は、切り替え完了応答をディスクノード100に送信する。
[ステップS13]一方、アクセスノード600のスライスアクセス要求部630は、ユーザによる端末装置21,22,23への操作入力などに応じて仮想ディスク60内のデータへのアクセスが発生すると、アクセス用メタデータ記憶部620を参照し、アクセス対象のデータを管理しているディスクノードを判断する。図10の例では、ディスクノード100が管理するスライスへのリードのアクセスが発生したものとする。すると、スライスアクセス要求部630は、ディスクノード100に対してアクセス対象データのリード要求を送信する。ディスクノード100のスライスアクセス処理部120は、メタデータ記憶部150を参照して、アクセス対象スライスが自己の管理するストレージ装置110内のスライスであることを確認し、ストレージ装置110内の該当スライス内のデータを指定したリードアクセスを行う。
図10の例では、T1/復帰検出部130によるT1の経過が検出された後に、アクセスノード600からのリード要求が出されている。この例では、ストレージ装置110は故障している。そのため、ストレージ装置110へのアクセスはエラーになる。ストレージ装置110が過負荷状態であっても、検査コマンドへの応答検出前(復帰前)であればデータアクセスもエラーとなる。
なお、リード要求の場合には、プライマリスライスを有するストレージ装置に問題(故障または過負荷)がある場合にのみエラーとなる。他方、ライト要求の場合には、プライマリスライスを有するストレージ装置とセカンダリスライスを有するストレージ装置との少なくとも一方で問題(故障または過負荷)があるときにエラーとなる。すなわち、データのライトのアクセス要求を受け取ったディスクノード100では、まず、スライスアクセス処理部120がデータ更新を行う。その後、スライス管理部160がメタデータ記憶部150を参照し、データが更新されたスライス(プライマリスライス)とペアとなるスライス(セカンダリスライス)を判断する。そして、スライス管理部160は、セカンダリスライスを管理するディスクノードに書き込み対象のデータを送信し、セカンダリスライスのデータ更新を要求する。スライスアクセス処理部120は、プライマリスライスとセカンダリスライスとの両方のデータ更新が完了したことを確認後、アクセスノード600に対してライト要求の完了応答を返す。もし、プライマリスライスとセカンダリスライスとの少なくとも一方でデータ更新が失敗した場合、スライスアクセス処理部120はアクセスノード600にエラーを応答する。
図10の例では、ストレージ装置110(ディスクノードID「SN−A」)の故障により、ストレージ装置110(ディスクID「1」)の先頭のスライス(スライスID「1」)へのリード要求がエラーになっている。
[ステップS14]ディスクノード100のスライスアクセス処理部120は、アクセスノード600からのリード要求に対してエラーを応答する。すると、アクセスノード600のスライスアクセス要求部630は、メタデータ照会部610に対してエラーの発生を通知する。このとき、スライスアクセス要求部630は、アクセスがエラーとなったセグメントに関する仮想ディスクIDとセグメントIDとについてもメタデータ照会部610に伝える。
[ステップS15]メタデータ照会部610は、制御ノード500に対してセグメントを指定したメタデータの照会要求を送信する。照会要求で指定されるセグメント(照会対象セグメント)は、エラーによりアクセスが失敗したセグメントである。紹介対象セグメントを指定したメタデータの照会要求は、その紹介対象セグメントに割り当てられているスライスへのアクセスに失敗したことを意味している。
メタデータの照会要求を請け受け取った制御ノード500のメタデータ検索部520は、スライス割り当て管理部550へ照会対象セグメントへのスライスの再割り当てを要求する。
具体的には、メタデータ検索部520は、照会要求を受け取ると、仮想ディスクメタデータ記憶部510から、照会対象セグメントに割り当てられたスライス(プライマリスライスとセカンダリスライス)のメタデータを検索する。次に、メタデータ検索部520は、ストレージ状態記憶部530を参照し、照会対象のセグメントに割り当てられたスライスを有するストレージ装置の状態を確認する。
ここで、各スライスを有するストレージ装置の状態が「通常」であれば、メタデータ検索部520は、検索によって取得したメタデータのうち、プライマリスライスのメタデータをアクセスノード600に送信する。
スライスを有するストレージ装置の状態が「T1」であれば、照会対象セグメントのリカバリ処理(二重化回復処理)が開始される。そのリカバリ処理では、まずメタデータ検索部520が照会対象セグメントへのスライスの再割り当てを行う。例えば、照会対象セグメントのプライマリスライスを有するストレージ装置の状態が「T1」であれば、プライマリスライスの再割り当てが行われる。また、照会対象セグメントのセカンダリスライスを有するストレージ装置の状態が「T1」であれば、セカンダリスライスの再割り当てが行われる。
図10の例では、ストレージ装置110の状態が「T1」となっており、プライマリスライスの再割り当てが行われる。具体的には、メタデータ検索部520からスライス割り当て管理部550へ、仮想ディスクのセグメントを指定したプライマリスライスの再割り当て要求を出力する。すると、スライス割り当て管理部550は、仮想ディスクメタデータ記憶部510から、照会対象セグメントのセカンダリスライスを管理するディスクノード以外のディスクノードで管理されるスライスのうち、空き(状態が「F」)のスライスを検索する。
次に、スライス割り当て管理部550は、見つけ出した空きスライスを、照会対象セグメントのセカンダリスライスとすることを決定する。また、スライス割り当て管理部550は、照会対象セグメントにセカンダリスライスとして割り当てられているスライスの状態を、プライマリスライスに変更することを決定する。
図10の例では、ディスクノード200が管理するスライスをセカンダリスライスとして照会対象セグメントに割り当て、ディスクノード300が管理するスライスの状態を、プライマリスライスからセカンダリスライスに変更することが決定される。スライス割り当て管理部550は、決定された再割り当ての内容に基づいて、仮想ディスクメタデータ記憶部510内のメタデータを更新する。
[ステップS16]スライス割り当て管理部550は、ディスクノード200に対して、メタデータの変更要求を送信する。具体的には、スライス割り当て管理部550は、再割り当て後のセカンダリスライス用のメタデータの情報をディスクノード200に送信する。すると、ディスクノード200では、取得した情報に基づいて、ディスクノード200内で保持するメタデータとストレージ装置210内のメタデータとの内容を変更する。これにより、ストレージ装置210内の空きスライスが、照会対象セグメントのセカンダリスライスに変更される。
[ステップS17]スライス割り当て管理部550は、ディスクノード300に対して、メタデータの変更要求を送信する。具体的には、スライス割り当て管理部550は、再割り当て後のプライマリスライス用のメタデータの情報をディスクノード300に送信する。すると、ディスクノード300では、取得した情報に基づいて、ディスクノード300内で保持するメタデータとストレージ装置310内のメタデータとの内容を変更する。これにより、ストレージ装置310内の照会対象セグメントに割り当てられていたスライスが、セカンダリスライスからプライマリスライスに変更される。
[ステップS18]ディスクノード200から制御ノード500に、メタデータの変更完了応答が送信される。
[ステップS19]ディスクノード300から制御ノード500に、メタデータの変更完了応答が送信される。
なお、図10には示していないが、各ディスクノード200,300でメタデータの変更処理が完了すると、照会対象セグメントに対する二重化状態回復のためのデータコピーが開始される。具体的には、照会対象セグメントのプライマリスライスに変更されたディスクノード300内のメタデータのデータが、ディスクノード300からディスクノード200へ転送される。そして、照会対象セグメントのセカンダリスライスとして新たに割り当てられたディスクノード200内のスライスに、ディスクノード300から送られたデータが格納される。データコピーが完了した時点で、紹介対象セグメントのリカバリ処理が完了する。
このようにして、メタデータ照会要求に起因してスライスの再割り当てが行われる。このとき、スライス割り当て管理部550は、ストレージ装置の状態が「T1」であることにより再割り当てが行われたセグメント(再割り当て済セグメント)をRAM502内に記憶しておく。具体的には、再割り当て済セグメントの仮想ディスクIDとセグメントIDとの組が、RAMに記憶される。再割り当て後にストレージ装置が復帰した場合、復帰したストレージ装置のスライスのうち再割り当て済セグメントに割り当てられていたスライスは、空きスライスに変更されることとなる。
図12は、更新後の仮想ディスクメタデータ記憶部の内容を示す図である。図12に示すように、ディスクノードID「SN−A」、ディスクID「1」、スライスID「1」で示されるスライスのメタデータは、状態が「F」に変更されている。これにより、ストレージ装置110内のスライスの照会対象セグメント(セグメントID「1」)への割り当てが解除される。
また、ディスクノードID「SN−C」、ディスクID「1」、スライスID「1」で示されるスライスのメタデータは、状態が「P」に変更されている。これにより、照会対象セグメントに割り当てられていたストレージ装置310内のスライスが、セカンダリスライスからプライマリスライスに変更される。
さらに、ディスクノードID「SN−B」、ディスクID「1」、スライスID「2」で示されるスライスのメタデータは、状態が「S」に変更され、仮想ディスクIDに「VLOX−X」が設定され、セグメントIDに「1」が設定されている。これにより、照会対象セグメントのセカンダリスライスとして、ストレージ装置210内のスライスが割り当てられる。
また、状態等の内容が変更された各メタデータは、タイムスタンプが「t(n+1)」に更新されている。「t(n+1)」はメタデータの更新時刻である。
図10の説明に戻り、メタデータの更新が完了すると、スライス割り当て管理部550は、メタデータ検索部520に対してスライス再割り当ての完了を通知する。
[ステップS20]メタデータ検索部520は、アクセスノード600に対して照会対象セグメントのプライマリスライスのメタデータを通知する。すると、アクセスノード600のメタデータ照会部610は、取得したメタデータに基づいて、アクセス用メタデータ記憶部560内のメタデータを更新する。その後、メタデータ照会部610は、スライスアクセス要求部630に対して、メタデータの照会が完了したことを通知する。
[ステップS21]スライスアクセス要求部630は、メタデータの照会が完了すると、アクセス用メタデータ記憶部620を参照してアクセス対象のスライスを管理するディスクノードを判断し、そのディスクノードへリード要求(リードリトライ)を送信する。リトライ時には、アクセス対象のプライマリスライスは、ディスクノード300で管理されたスライスとなっている。そのため、リードリトライはディスクノード300に対して行われる。
[ステップS22]ディスクノード300ではリード要求を受け取ると、ストレージ装置310内のスライスからデータを読み出し、読み出したデータをアクセスノード600に送信する。すると、スライスアクセス要求部630は、アクセス指示を出した端末装置に対して取得したデータを送信する。
[ステップS23]図10の例では、ストレージ装置110が故障しているため、検査コマンドの発行からT2が経過しても、ストレージ装置110からの応答は返ってこない。そのため、ディスクノード100のT2検出部140は、検査コマンド発行からT2が経過したことを検出する。そして、T2検出部140は、制御ノード500に対してT2経過通知を送信する。
[ステップS24]T2経過通知を受け取った制御ノード500のスライス割り当て管理部550は、ストレージ装置110が故障により使用不可になったことを認識し、ストレージ装置410全体のリカバリ処理を開始する。
このようにして、ストレージ装置110が故障した場合、故障検出時間の経過を待たずに、ストレージ装置110内のスライスがプライマリスライスとして割り当てられていたセグメント内のデータへのアクセスが可能となる。その結果、アクセスノード600からのアクセスがエラーとなる期間が短くて済む。
次に、正常に動作しているストレージ装置110の負荷が一時的に過大であったため検査コマンドへの応答が遅れた場合のスライス切り替え処理について説明する。
図13は、ストレージ装置の負荷が過大となったときのスライス切り替え処理の手順を示すシーケンス図である。この例では、ディスクノード100に接続されたストレージ装置110の負荷が一時的に過大になったものとする。なお、図13のステップS31〜ステップS42の処理は、それぞれ図10のステップS11〜S22の処理と同じである。そこで、ステップS43以降の処理をステップ番号に沿って説明する。
[ステップS43]ディスクノード100のT1/復帰検出部130は、検査コマンドに対するストレージ装置110からの応答を受信する。これによりT1/復帰検出部130は、ストレージ装置110がアクセス可能な状態に復帰したことを検出する。すると、T1/復帰検出部130は、制御ノード500に対してストレージ装置110の復帰通知を送信する。
[ステップS44]制御ノード500のスライス割り当て管理部550は、復帰通知を受け取ると、ディスクノード100に対して、メタデータの変更要求を送信する。具体的には、スライス割り当て管理部550は、仮想ディスクメタデータ記憶部510を参照し、ストレージ装置110のスライスのうち、メタデータ照会に基づくスライスの再割り当てを行ったセグメント(再割り当て済セグメント)に割り当てられていたスライスを抽出する。そして、スライス割り当て管理部550は、該当するスライスのセグメントへの割り当てを解除(状態を「F」として空きスライスに変更)するためのメタデータ変更要求をディスクノード100に送信する。
[ステップS45]ディスクノード100のスライス管理部160は、メタデータ更新要求に基づいて、メタデータ記憶部150内の指定されたスライスのメタデータを更新する。スライス管理部160は、メタデータの更新後、変更完了応答を制御ノード500に送信する。
このようにして、ストレージ装置110の過負荷状態が解消し、ストレージ装置110が復帰した場合、ディスクノード100側のメタデータを更新することで、メタデータ間の矛盾が防止される。すなわち、メタデータの再割り当てが行われたことにより、再割り当て済セグメントには、プライマリスライス、セカンダリスライス共に、ストレージ装置110のスライスとは異なるストレージ装置のスライスが割り当てられている。そのため、ストレージ装置110が復帰すると、再割り当て済セグメントに割り当てられたスライス(図13の例ではプライマリスライス)が重複して存在することとなってしまう。そこで、ストレージ装置110内のスライスを空き(Free)の状態に変更することで、割り当て関係の矛盾の発生を防止している。
ところで、ストレージ装置110のメタデータの変更をストレージ装置110復帰後に行うのは、復帰が確認できるまではストレージ装置110が故障している可能性が残されており、正常にメタデータを更新できない可能性があるためである。そこで、制御ノード500は、スライスの再割り当てを行った場合、再割り当て済セグメントをRAM内に記憶している。再割り当て済セグメントを記憶しておくことで、ストレージ装置110復帰時に空き状態とすべきスライスを判断することができる。
ここで、ストレージ装置110が復帰する前に制御ノード500に障害が発生し、制御ノード500のRAM502内のデータが失われる場合も有り得る。例えば、制御ノード500に障害が発生したことにより、代替のノードに機能が引き継がれた場合(ファイルオーバ)や、制御ノード500の再起動が行われた場合である。このような場合、制御ノード500はメタデータを各ディスクノード100,200,300から収集して、仮想ディスクメタデータテーブル511を再構築する。このとき、制御ノード500がフェイルオーバまたは再起動する間に該当ディスクが復帰すると、再割り当て済セグメントに割り当てられたスライスを示すメタデータが3つ収集され矛盾が生じる。これを防ぐため、仮想ディスクメタデータテーブル511を再構築した制御ノード500は、メタデータに付与されているタイムスタンプを参照して、空き状態とすべきスライスを判断する。
図14は、タイムスタンプを用いた矛盾解消処理を示すシーケンス図である。以下、図14に示す処理をステップ番号に沿って説明する。なお、以下の処理は、制御ノード500が再起動またはフェイルオーバされたときに実行される。
[ステップS51]制御ノード500のスライス割り当て管理部550は、各ディスクノード100,200,300に対して、メタデータ要求を送信する。
[ステップS52]メタデータ要求を受信したディスクノード100のスライス管理部160は、メタデータ記憶部150またはストレージ装置110からメタデータを取得し、制御ノード500に送信する。他のディスクノード200,300も同様にメタデータを制御ノード500に送信する。
各ディスクノード100,200,300からメタデータを収集した制御ノード500では、スライス割り当て管理部550が、収集したメタデータに基づいて仮想ディスクメタデータテーブル511を再構成する。そして、スライス割り当て管理部550は、メタデータの整合性チェックを行う。整合性チェックでは、3つ以上のスライスが割り当てられているセグメントの存在の有無を確認する。次に、スライス割り当て管理部550は、該当するセグメントがある場合、割り当てられているスライスのメタデータを比較する。そして、スライス割り当て管理部550は、状態(プライマリスライスまたはセカンダリスライス)が同一のスライスのうち、タイムスタンプの時刻が最新のスライス以外を、割り当てを解除すべきスライスと判断する。
[ステップS53]スライス割り当て管理部550は、割り当てを解除すべきスライスを管理するディスクノード(図14の例では、ディスクノード100)に対して、該当するスライスの状態を「F」に変更するためのメタデータ変更要求を送信する。
[ステップS54]ディスクノード100のスライス管理部160は、メタデータ変更要求に応じてメタデータ記憶部150とストレージ装置110とのメタデータの内容を更新する。そして、スライス管理部160は、変更完了の応答を制御ノード500に返す。
図15は、再構成された仮想ディスクメタデータテーブルの例を示す図である。この例は、ステップS38,S39後の仮想ディスクメタデータテーブル511更新後、ステップS43の復帰通知前に、制御ノード500が再起動された場合を想定している。
図15の例では、ディスクノードID「SN−A」、ディスクID「1」、およびスライスID「1」で特定されるスライスと、ディスクノードID「SN−C」、ディスクID「1」、およびスライスID「1」で特定されるスライスとが、セグメントID「1」のセグメントにプライマリスライス(状態「P」)として割り当てられている。そこで、スライス割り当て管理部550によって重複して割り当てられた2つのスライスのメタデータにおけるタイムスタンプが比較される。
ディスクノード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」(空き状態を示す)に変更するためのメタデータ変更要求が送信される。
このようにして、ディスクノード100からのT1経過通知に起因するメタデータの再割り当てからディスクノード100からの復帰通知までの間に制御ノード500の再起動やファイルオーバが発生しても、タイムスタンプを用いてメタデータの整合性を保つことができる。すなわち、フェイルオーバまたは再起動により実行できなかったメタデータの更新を、フェイルオーバまたは再起動後に行うことが可能となる。
以上のように、第1の実施の形態によれば、故障検出時間「T2」と動作不調検出時間「T1」を分離することにより、以下の効果を持つ。
1.故障検出時間「T2」を長くとってもアクセスが長時間止まらない。
ディスク装置は内部で切り替えが発生するため、故障ではないがしばらく不応答(分オーダ)になるものがある。このような装置を使用しても動作不調検出時間「T1」(例えば1秒)でアクセスを復帰できる。
2.ディスク装置ごとに故障検出時間を調整しなくてよい。
従来のマルチノードストレージでは誤検出を起こさず、できるだけ早くアクセスを復帰させるためにディスク装置ごとに故障検出時間を調整する必要があった。第1の実施の形態によれば、故障検出時間「T2」を大部分の装置が応答する時間(例えば1分)に設定し、動作不調検出時間「T1」を例えば1秒に設定する。故障検出時間「T2」を長く設定したことで、どのようなタイプのストレージ装置であっても、故障の誤検出をすることがなくなる。
このように、信頼性の高い故障検出と、動作不調時における短時間でのアクセス環境の回復とを両立することが可能となる。
[第2の実施の形態]
第2の実施の形態は、T2を用いずに、管理ノード30からのディスクノード切り離し指示に基づいてリカバリ処理を開始するものである。
第1の実施の形態では、ディスクノード100が、検査コマンド発行からT2が経過するまでストレージ装置110から応答がなければ、ディスクノード100からT2経過通知が出力される。ただし、T2として適切な値を決定するのが困難な場合がある。例えば、接続されるストレージ装置110,210,310の製造元や性能が異なる場合、適切なT2も異なってくる。
また、第1の実施の形態で示したように、検査コマンドの発行からT1経過するまで無応答であれば、スライスの再割り当てをするようにしたことで、ストレージ装置の復帰を待たずにデータアクセスが可能となる。そのため、T2の検出を行わなくても、アクセスノードからのデータアクセスには影響がない。
一方、ストレージ装置が故障しているのであれば、そのストレージ装置内のデータのリカバリが必要である。そこで、第2の実施の形態では、管理者がストレージ装置の故障を確認した場合に、管理ノード30を介してストレージ装置の切り離しを指示できるようにした。
図16は、管理ノードからディスクノード切り離しを指示する場合の処理手順を示すシーケンス図である。なお、図16に示すステップS61〜S72,S74の処理は、それぞれ図10に示したステップS11〜S22,S24と同じ処理である。そこで、図10とは異なるステップS73の処理について説明する。
[ステップS73]管理ノード30は、ディスクノード100,200,300や制御ノード500から、運用状況を示す各種情報を取得することができる。取得した情報は、管理ノード30のモニタに表示される。従って、ストレージ装置110が検査コマンドに対する応答を返していないことも、管理ノード30の画面に表示される。
マルチノードストレージシステムの管理者は、管理ノード30が画面を見ることで、ストレージ装置110が故障している可能性があることを認識する。管理者は、ストレージ装置110に対する各種制御コマンド(例えば再起動)を発行するなどの作業を行う。その結果、ストレージ装置110が故障していることが確認できると、管理者は、管理ノード30に対してディスクノード100の切り離しを指示する操作入力を行う。すると、管理ノード30は、制御ノード500に対してディスクノード切り離し要求を送信する。
このディスクノード切り離し要求に応答して、制御ノード500の制御の元、リカバリ処理(ステップS74)が実行され、ディスクノード100がマルチノードストレージシステムから切り離される。
このようにして、管理者からの指示があるまで、ストレージ装置全体に対するリカバリ処理の開始を待つことができる。
[第3の実施の形態]
第3の実施の形態は、ディスクノードからのスライスを指定したスライス異常通知に基づいて、指定されたスライスが割り当てられていたセグメントへのスライスの再割り当てを行うものである。
第1、第2の実施の形態では、アクセスノードからメタデータ照会要求があったときに、制御ノードにおいて、メタデータ照会の対象となるセグメントに対するスライスの再割り当てを行っている。この場合、メタデータの照会処理の延長で、ディスクノードのメタデータの変更処理が実施される。スライスの再割り当て処理によりメタデータが変更されるディスクノードが正常に動作していれば、図10に示すメタデータ照会要求の送信(ステップS15)からメタデータ通知(ステップS20)までの時間は、短時間ですむ。
ところが、メタデータを変更するディスクノードが過負荷の場合、ディスクノードから制御ノードへメタデータの変更完了の応答が返ってこない場合がある。すると、制御ノードからアクセスノードへのメタデータ通知も遅れてしまう。
また、制御ノードでは、メタデータ照会要求に応じたメタデータ検索処理を1つのプロセスで実行している場合がある。それは、システムの設計上、複数のプロセスで並列実行するよりも、単一のプロセスで短い処理を繰り返し実行した方が、全体的に処理効率が高い場合があるためである。例えば、複数のプロセスでメタデータ照会要求に応じたメタデータ検索処理を行うと、受信したメタデータ照会要求の振り分け処理などの余分な処理が必要となり、かえって処理効率が低下する場合がある。さらに、メタデータ検索用のプロセスが多数起動されると、そのプロセスでメモリなどの資源が多く消費されてしまい、制御ノード全体の処理効率を低下させる原因にもなる。
1つのプロセスで多数のメタデータ照会要求に応じた処理を受け持っている場合、1つの処理に時間がかかると、他のメタデータ照会要求に応じた処理が待たされることとなる。すると、アクセスノードがメタデータ照会の結果を取得するまでに時間がかかり、マルチノードストレージシステムとしてのサービス効率が低下する。
そこで、第3の実施の形態では、各ディスクノードは、動作不調検出時刻「T1」を検出したストレージ装置内のスライスへのアクセス要求を受け取ると、制御ノードに対してスライス異常通知を行うようにする。制御ノードでは、メタデータ照会要求に応じた処理の延長としてスライス再割り当てを行うのではなく、ディスクノードからのスライス異常通知に応じてスライス再割り当てを行う。これにより、メタデータの照会要求への応答を遅延させずに、アクセス対象となったスライスが割り当てられていたセグメントの再割り当てが可能となる。
第3の実施の形態のシステム構成は、図2に示した第1の実施の形態のシステム構成と同様である。ただし、ディスクノードと制御ノードとの機能が異なる。そこで、第3の実施の形態におけるディスクノードと制御ノードとの機能について説明する。
図17は、第3の実施の形態におけるマルチノードストレージシステムの各装置の機能を示すブロック図である。図2の各ディスクノード100,200,300の内部機能を、図17に示したディスクノード400と同様の機能に置き換え、図2の制御ノード500の内部機能を図17に示した制御ノード800と同様の機能に置き換えることで、第3の実施の形態に係るマルチノードストレージシステムが構築できる。
ディスクノード400は、スライスアクセス処理部420、T1/復帰検出部430、T2検出部440、メタデータ記憶部450、スライス管理部460、および被アクセススライス検出部470を有している。
スライスアクセス処理部420は、図5に示したT1/復帰検出部130が有している機能を有する、さらに、スライスアクセス処理部420は、アクセスノード600からのアクセス要求にエラーを返す場合、エラーとなったストレージ装置のスライスに関する情報を被アクセススライス検出部470に通知する機能を有している。
T1/復帰検出部430は、図5に示したT1/復帰検出部130が有している機能に加え、T1を検出した場合、その旨を被アクセススライス検出部470に通知する機能を有している。また、T1/復帰検出部430は、T1検出後にストレージ装置410が復帰した場合、その旨を被アクセススライス検出部470に通知する機能を有している。
T2検出部440は、図5に示したT2検出部140が有している機能に加え、T2を検出した場合、その旨を被アクセススライス検出部470に通知する機能を有している。
メタデータ記憶部450は、図5に示したメタデータ記憶部450が記憶している情報に加え、各スライスの二重化状態を示す情報を記憶している。二重化状態を示す情報としては、二重化状態には、正常とコピー中とがある。正常は、ペアとなったスライスとの間の二重化が保たれている(格納されているデータの同一性が保たれている)状態である。コピー中は、ペアとなったスライスとの間で二重化を確立するためにデータをコピーしている状態である。
スライス管理部460は、図5に示したスライス管理部160が有している機能に加え、スライスの二重化状態を管理し、各スライスの現在の二重化状態をメタデータ記憶部450に設定する機能を有している。
被アクセススライス検出部470は、アクセスノード600からのアクセス要求がエラーとなったスライスに関するスライス異常通知を制御ノード800に送信する。具体的には、被アクセススライス検出部470は、T1/復帰検出部430からの通知によって、ストレージ装置410のT1が検出されたこと、およびその後復帰したことを認識する。また、被アクセススライス検出部470は、T2検出部440からの通知によって、ストレージ装置410のT2が検出されたことを認識する。さらに、被アクセススライス検出部470は、スライスアクセス処理部420からの通知によって、ストレージ装置410内のスライスへのアクセスがエラーになったことを認識する。
そして、被アクセススライス検出部470は、ストレージ装置410内のスライスへのアクセスがエラーになると、ストレージ装置410の状態を確認する。すなわち、被アクセススライス検出部470は、ストレージ装置410の検査コマンドに対する応答がなく、T1検出後であって、T2検出前であるか否かを判断する。この条件が満たされていた場合、被アクセススライス検出部470は、アクセス対象となっていたスライスを指定したスライス異常通知を制御ノード800に送信する。
制御ノード800は、仮想ディスクメタデータ記憶部810、メタデータ検索部820、割り当て可否記憶部830、ストレージ状態管理部840、およびスライス割り当て管理部850を有している。
仮想ディスクメタデータ記憶部810の機能は、図5に示した仮想ディスクメタデータ記憶部510の機能と同様である。
メタデータ検索部820の機能は、図5に示したメタデータ検索部520の機能と同様である。ただし、スライスの再割り当てをスライス割り当て管理部550に要求する機能は不要である。
割り当て可否記憶部830は、ストレージ装置ごとに、そのストレージ装置内のスライスをセグメントに割り当て可能か否かを示す情報(割り当て可否情報)を記憶する記憶機能である。例えば、制御ノード800のRAM内の記憶領域の一部が、割り当て可否記憶部830として使用される。
ストレージ状態管理部840は、ディスクノード400からの通知に応じて、ストレージ状態記憶部530内に示されるストレージ装置410の状態を変更する。具体的には、ディスクノード400からT1経過通知を受け取ると、ストレージ状態管理部540は、割り当て可否記憶部830内に示されるストレージ装置410の状態を、割り当て不可の状態とする。また、ディスクノード400から復帰通知を受け取ると、ストレージ状態管理部540は、ストレージ状態記憶部530内に示されるストレージ装置410の状態を、割り当て可の状態とする。
スライス割り当て管理部850は、仮想ディスク60のセグメントへのスライスの割り当てを管理する。例えば、スライス割り当て管理部850は、ディスクノード400からスライス異常通知を受け取ると、スライス異常通知に示されるスライスが割り当てられているセグメントに対して、別のスライスを割り当てる。
また、スライス割り当て管理部850は、ディスクノード400からT2経過通知を受け取ると、ストレージ装置410内のスライスが割り当てられたセグメントのリカバリ処理を開始する。スライス割り当て管理部850は、リカバリ処理において、リカバリ対象セグメントに割り当てられたスライスのうち、ストレージ装置410以外のストレージ装置(正常動作ストレージ装置)のスライスをすべてプライマリスライスとする。次に、スライス割り当て管理部850は、リカバリ対象セグメントのセカンダリスライスとして、ストレージ装置210,310のスライスを割り当てる。そして、スライス割り当て管理部850は、割り当て結果に応じたメタデータの更新要求を、正常動作ストレージ装置を管理するディスクノードに送信する。メタデータの更新要求を受け取ったディスクノードにおいてメタデータの更新が完了すると、スライス割り当て管理部850は、仮想ディスクメタデータ記憶部810内のメタデータを更新する。
次に、各ノードで管理されているデータの構造について説明する。
図18は、メタデータ記憶部のデータ構造例を示す図である。メタデータ記憶部450には、メタデータテーブル451が格納されている。メタデータテーブル451には、ディスクノードID、ディスクID、スライスID、状態、仮想ディスクID、セグメントID、仮想ディスクアドレス、ペアのディスクノードID、ペアのディスクID、ペアのスライスID、タイムスタンプ、および二重化状態の欄が設けられている。メタデータテーブル451内の横方向に並べられた情報が互いに関連付けられ、メタデータを示す1つのレコードを構成している。メタデータテーブル451の二重化状態以外の各欄に設定される情報は、図7に示したメタデータテーブル151の同名の欄と同種の情報である。
二重化状態の欄には、対応するスライスの二重化状態が設定される。ペアとなったスライスとの間の二重化が保たれていれば「正常」、ペアとなったスライスとの間でデータのコピー処理中であれば「コピー中」と設定される。
図19は、仮想ディスクメタデータ記憶部のデータ構造例を示す図である。仮想ディスクメタデータ記憶部810には、仮想ディスクメタデータテーブル811が格納されている。仮想ディスクメタデータテーブル811には、ディスクノードID、ディスクID、スライスID、状態、仮想ディスクID、セグメントID、仮想ディスクアドレス、ペアのディスクノードID、ペアのディスクID、ペアのスライスID、タイムスタンプ、および二重化状態の欄が設けられている。仮想ディスクメタデータテーブル811内の横方向に並べられた情報が互いに関連付けられ、メタデータを示す1つのレコードを構成している。仮想ディスクメタデータテーブル811の各欄に設定される情報は、メタデータテーブル451の同名の欄と同種の情報である。
図20は、割り当て可否記憶部のデータ構造例を示す図である。割り当て可否記憶部830には、割り当て可否管理テーブル831が格納されている。割り当て可否管理テーブル831には、ディスクノードID、ディスクID、および可/不可の欄が設けられている。
ディスクノードIDの欄には、ディスクノードを一意に識別するための識別情報(ディスクノードID)が設定される。ディスクIDの欄には、ディスクノードに接続されたストレージ装置の識別情報(ディスクID)が設定される。
可/不可の欄には、各ストレージ装置のスライスをセグメントに割り当て可能か否かを示すフラグが設定される。割り当てが可能な場合、可/不可の欄には「可」の値が設定される。割り当てが不可能な場合、可/不可の欄には「不可」の値が設定される。
このような構成のマルチノードストレージシステムにおいて、検査コマンドに対するストレージ装置からの応答が、T1経過しても返されない場合、以下のようなスライス切り替え処理が実行される。
図21は、ストレージ装置故障時のスライス切り替え処理の手順を示すシーケンス図である。図21の例では、ディスクノード400のディスクノードIDは「SN−A」であり、ディスクノード400aのディスクノードIDは「SN−C」であり、ディスクノード400bのディスクノードIDは「SN−C」であるものとする。ディスクノード400a,400bは、ディスクノード400と同じ機能(図17参照)を有している。
なお、図21に示すステップS88〜S95の処理は、それぞれ図10に示したステップS16〜S19,S21〜S24と同じ処理である。そこで、図10とは異なる処理について説明する。
[ステップS81]ディスクノード400のT1/復帰検出部430は、定期的にストレージ装置410の動作確認を行う。その詳細は、ステップS11の説明と同様である。T1/復帰検出部430は、動作確認により、T1の経過を検出すると、制御ノード800に対してT1経過通知を送信する。T1経過通知には、ディスクノード400のディスクノードIDとストレージ装置410のディスクIDとが含まれる。T1/復帰検出部430は、その後もストレージ装置410からの応答を待つ。
制御ノード800のストレージ状態管理部840は、T1経過通知を受信すると、ストレージ装置410の状態を切り替える。すなわち、ストレージ状態管理部840は、T1経過通知に示されるディスクノードIDとディスクIDとの組みに対応する情報を割り当て可否記憶部830から検索する。そして、ストレージ状態管理部840は、該当するストレージ装置に関する情報の可/不可の情報を「不可」に変更する。
図22は、割り当て可否更新後の割り当て可否記憶部の例を示す図である。図22に示すように、ディスクノードID「SN−A」とディスクID「1」との組に対応する状態が「不可」に変更されている。これにより、制御ノード800では、以後、ディスクノード400に接続されたストレージ装置410のスライスをセグメントに割り当てることができないことを認識する。
図21の説明に戻る。
[ステップS82]割り当て可否の切り替えが完了すると、ストレージ状態管理部840は、切り替え完了応答をディスクノード400に送信する。
[ステップS83]一方、アクセスノード600のスライスアクセス要求部630は、ユーザによる端末装置21,22,23への操作入力などに応じて仮想ディスク60内のデータへのアクセスが発生すると、アクセス用メタデータ記憶部620を参照し、アクセス対象のデータを管理しているディスクノードを判断する。図21の例では、ディスクノード400が管理するスライスへのリードのアクセスが発生したものする。すると、スライスアクセス要求部630は、ディスクノード400に対してアクセス対象データのリード要求を送信する。ディスクノード400のスライスアクセス処理部420は、メタデータ記憶部450を参照して、アクセス対象スライスが自己の管理するストレージ装置410内のスライスであることを確認し、ストレージ装置410内の該当スライス内のデータを指定したリードアクセスを行う。
図21の例では、T1/復帰検出部430によるT1の経過が検出された後に、アクセスノード600からのリード要求が出されている。この場合、ストレージ装置410は故障しているか、検査コマンドに対する応答が直ぐに返せない程の過負荷状態である。ストレージ装置410が故障していれば、ストレージ装置410へのアクセスはエラーになる。また、ストレージ装置410が過負荷状態であれば、高い頻度でデータアクセスもエラーとなる。図21の例では、ストレージ装置410(ディスクノードID「SN−A」)の故障により、ストレージ装置410(ディスクID「1」)の先頭のスライス(スライスID「1」)へのリード要求がエラーになっている。
[ステップS84]ディスクノード400のスライスアクセス処理部420は、アクセスノード600からのリード要求に対してエラーを応答する。すると、アクセスノード600のスライスアクセス要求部630は、メタデータ照会部610に対してエラーの発生を通知する。このとき、スライスアクセス要求部630は、アクセスがエラーとなったセグメントに関する仮想ディスクIDとセグメントIDとについてもメタデータ照会部610に伝える。
[ステップS85]一方、ディスクノード400のスライスアクセス処理部420は、リード要求に応じたストレージ装置410へのデータリードに失敗すると、被アクセススライス検出部470に対してエラーの発生を通知する。その際、アクセス対象となったストレージ装置のスライスを示すディスクIDとスライスIDとの組みが、被アクセススライス検出部470に渡される。
被アクセススライス検出部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」に変更する。
さらに、被アクセススライス検出部470は、上記第1と第2の条件が満たされた場合、制御ノード800に対してスライス異常通知を送信する。スライス異常通知には、アクセス対象となったストレージ装置のスライスを示すディスクIDとスライスIDとの組みが含められる。
スライス異常通知を受け取った制御ノード800では、スライス割り当て管理部850がアクセス対象となったスライスが割り当てられているセグメント(リカバリ対象セグメント)へのスライス再割り当て処理を行う。具体的には、スライス割り当て管理部850は、仮想ディスクメタデータ記憶部810を参照し、スライス異常通知で示されたスライス(異常スライス)がリカバリ対象セグメントのプライマリスライスかセカンダリスライスかを判断する。
異常スライスがプライマリスライスであれば、スライス割り当て管理部850は、リカバリ対象セグメントの現在のプライマリスライスの状態を空きに変更し、セカンダリスライスをプライマリスライスに変更する。その後、スライス割り当て管理部850は、新たなプライマリスライスを管理するディスクノードとは別のディスクノードで管理されている空きスライスを、リカバリ対象セグメントのセカンダリスライスとして割り当てる。
異常スライスがセカンダリスライスであれば、スライス割り当て管理部850は、リカバリ対象セグメントの現在のセカンダリスライスの状態を空きに変更する。その後、スライス割り当て管理部850は、現在のプライマリスライスを管理するディスクノードとは別のディスクノードで管理されている空きスライスを、リカバリ対象セグメントのセカンダリスライスとして割り当てる。
ところで、図21の例では、アクセスノード600からのリード要求に起因してスライス異常通知が出力されている。リード要求はプライマリスライスに対してのみ行われるため、このとき検出される異常スライスはプライマリスライスである。セカンダリスライスが異常スライスとして検出されるのは、ライト要求が出された場合である。例えば、ディスクノード400のストレージ装置410の動作が正常(検査コマンドにT1内に応答を返す)であるときに、アクセスノード600からディスクノード400にライト要求が出されると、ストレージ装置410内のスライスデータが書き込まれる。この際、二重化を維持するために、スライス管理部460によって、アクセス対象のスライスとペアを組んでいるセカンダリスライスにも同じデータが書き込まれる。セカンダリスライスへのデータの書き込みがエラーになると、セカンダリスライスを管理するディスクノードから制御ノード800へスライス異常通知が出される。そして、スライス割り当て管理部850では、異常スライスがセカンダリスライスであると認識し、リカバリ対象セグメントへのセカンダリスライスの再割り当て処理を行う。
スライス割り当て管理部850は、リカバリ対象セグメントのスライスの再割り当ての内容が確定すると、仮想ディスクメタデータ記憶部810の内容を更新する。
図23は、更新後の仮想ディスクメタデータ記憶部の内容を示す図である。図23に示すように、ディスクノードID「SN−A」、ディスクID「1」、スライスID「1」で示されるスライスのメタデータは、状態が「B」に変更されている。なお、状態「B」は、対応するスライスが異常であることを示す。これにより、ストレージ装置410内のスライスの照会対象セグメント(セグメントID「1」)への割り当てが解除される。
また、ディスクノードID「SN−C」、ディスクID「1」、スライスID「1」で示されるスライスのメタデータは、状態が「P」に変更されている。これにより、リカバリ対象セグメントに割り当てられていたスライスが、セカンダリスライスからプライマリスライスに変更される。
さらに、ディスクノードID「SN−B」、ディスクID「1」、スライスID「2」で示されるスライスのメタデータは、状態が「S」に変更され、仮想ディスクIDに「VLOX−X」が設定され、セグメントIDに「1」が設定されている。これにより、リカバリ対象セグメントに対してセカンダリスライスが割り当てられる。
また、状態等の内容が変更された各メタデータは、タイムスタンプが「t(n+1)」に更新されている。「t(n+1)」はメタデータの更新時刻である。
メタデータの更新が完了したことで、メタデータ検索部820は、リカバリ対象セグメントへのメタデータ照会要求があれば、リカバリ対象セグメントのリカバリ後の状態を示すメタデータをアクセスノード600に提供可能となる。
以下、図21の説明に戻る。
[ステップS86]メタデータ照会部610は、制御ノード800に対してセグメントを指定したメタデータの照会要求を送信する。照会要求で指定されるセグメント(照会対象セグメント)は、エラーによりアクセスが失敗したセグメントである。
[ステップS87]制御ノード800のメタデータ検索部820は、仮想ディスクメタデータ記憶部810を参照し、照会対象セグメントのプライマリスライスのメタデータをアクセスノード600に通知する。
一方、スライス割り当て管理部850は、メタデータ照会に対するメタデータ検索とは別プロセスで、リカバリ対象セグメントのリカバリ処理を続行している。すなわち、スライス割り当てに続けて、ステップS88〜ステップS91の処理が行われる。そして、ステップS92においてアクセスノード600がディスクノード400bにリードリトライをすると、ステップS93で目的のデータが応答される。また、ステップS94でT2の経過が通知されると、ステップS95でリカバリ処理が行われる。
以上のようにして、T2の経過が検出される前に、アクセス対象のスライスが割り当てられたセグメントのみのリカバリ処理を行うことができる。しかも、ディスクノード400からのスライス異常通知に基づいてセグメントのリカバリ処理が行われる。そのため、メタデータ照会要求に応じたメタデータ検索処理の実行を阻害せずに済み、システム全体の処理効率の低下を防止できる。
次に、正常に動作しているストレージ装置410の負荷が一時的に過大であったため検査コマンドへの応答が遅れた場合のスライス切り替え処理について説明する。
図24は、ストレージ装置の負荷が過大となったときのスライス切り替え処理の手順を示すシーケンス図である。この例では、ディスクノード400に接続されたストレージ装置410の負荷が一時的に過大になったものとする。なお、図24のステップS101〜ステップS113の処理は、それぞれ図21のステップS81〜S93の処理と同じである。そこで、ステップS114以降の処理をステップ番号に沿って説明する。
[ステップS114]ディスクノード400のT1/復帰検出部430は、検査コマンドに対するストレージ装置410からの応答を受信する。これによりT1/復帰検出部430は、ストレージ装置410がアクセス可能な状態に復帰したことを検出する。すると、T1/復帰検出部430は、制御ノード800に対してストレージ装置410の復帰通知を送信する。
制御ノード800のストレージ状態管理部840は、復帰通知を受け取ると、割り当て可否記憶部830内の復帰したストレージ装置の割り当て可否の情報を「可」に変更する。
[ステップS115]ストレージ状態管理部840は、割り当て可否記憶部830の変更後、ディスクノード400に対して、確認応答を送信する。
なお、第1の実施の形態では、ストレージ装置が復帰するとリカバリ処理を行ったセグメント(第1の実施の形態では「照会対象セグメント」)に割り当てられていたスライスを空き(Free)状態に変更している。他方、第3の実施の形態では、T1経過後にアクセスがあったスライスは、アクセスがあった時点で状態を「B(Bad)」に変更している。そのため、ストレージ装置が復帰しても、メタデータの変更処理は不要である。
ところで、検査コマンドによるストレージ装置の故障診断は、すべてのディスクノード400,400a,400bで行われている。図21の例は、1つのストレージ装置においてのみT1の経過が検出された場合である。他方、2台のストレージ装置で同時にT1の経過が検出されることも有り得る。このときT1の経過が検出された2台のストレージ装置それぞれのスライスでスライスペアを構成するセグメントがある場合、両方のスライスの状態を異常状態(状態「B」)にしてしまうと、そのセグメントのデータを喪失してしまう。そこで、そのような場合には、後にT1の経過が検出されたディスクノードでは、スライス異常通知を行わないこととする。
図25は、複数のディスクでT1経過が検出されたときのスライス割り当て処理を示すシーケンス図である。この例では、ディスクノード400に接続されたストレージ装置410が故障し、ディスクノード400bに接続されたストレージ装置の負荷が一時的に過大になったものとする。なお、図25のステップS121〜ステップS131の処理は、それぞれ図21のステップS81〜S91の処理と同じである。そこで、ステップS132以降の処理をステップ番号に沿って説明する。
[ステップS132]ディスクノード400bは、定期的にストレージ装置のディスク診断を行う。ストレージ装置が正常に動作していれば、ストレージ装置からT1以内に応答が返される。図25の例では、ステップS131の処理を実行するまではディスクノード400bのストレージ装置は正常に動作していたが、メタデータを変更したことによるコピー処理が完了する前に、ストレージ装置が過負荷状態となったものとする。ストレージ装置が過負荷であることにより、ディスクノード400bは検査コマンド発行後T1が経過しても、正常な応答が返されていない。そこで、ディスクノード400bはT1を検出し、制御ノード800に対してT1経過通知を送信する。
T1経過通知を受信した制御ノード800のストレージ状態管理部840は、T1経過通知を受信すると、ディスクノード400bに接続されたストレージ装置の状態を割り当て「不可」に切り替える。
[ステップS133]状態の切り替えが完了すると、ストレージ状態管理部840は、切り替え完了応答をディスクノード400bに送信する。
[ステップS134]その後、アクセスノード600のスライスアクセス要求部630は、メタデータの照会が完了すると、アクセス用メタデータ記憶部620を参照してアクセス対象のスライスを管理するディスクノードを判断し、そのディスクノードへリード要求(リードリトライ)を送信する。
このときディスクノード400bでは、まだT2の検出も復帰の検出もされていないものとする。この場合、ディスクノード400bは、リード要求におけるアクセス対象のスライスの状態をメタデータに基づいて確認する。このとき参照されるメタデータは、図23に示した仮想ディスクメタデータテーブル811内のディスクノードIDが「SN−C」である各メタデータと同じである。すると、該当するスライス(この例では、図23に示されたディスクノードID「SN−C」、ディスクID「1」、スライスID「1」のスライス)は、ステップS129のメタデータ更新要求によってセカンダリスライスからプライマリスライスに変更されている。そして、該当するスライス内のデータが、ディスクノード400a内のペアとなるセカンダリスライスにコピーされている最中である。
ディスクノード400bは、アクセス対象のスライスがコピー中であるため、スライス異常通知を行わず、データのリードができるようになるのを待つ。
[ステップS135]その後、ディスクノード400のT2検出部440は、検査コマンド発行からT2が経過したことを検出する。そして、T2検出部440は、制御ノード800に対してT2経過通知を送信する。
[ステップS136]T2経過通知を受け取った制御ノード800のスライス割り当て管理部850は、ストレージ装置410が故障により使用不可になったことを認識し、ストレージ装置410全体のリカバリ処理を開始する。
[ステップS137]一方、ディスクノード400bは、検査コマンドに対するストレージ装置からの応答を受信する。すると、ディスクノード400bは、制御ノード800に対してストレージ装置の復帰通知を送信する。
[ステップS138]ストレージ状態管理部840は、割り当て可否記憶部830の変更後、ディスクノード400bに対して、確認応答を送信する。
このように、ストレージ装置内のスライス内のデータのコピー中(二重化状態が復旧していない状態)の場合、ディスクノードは、当該ストレージ装置のT1経過を検出し、当該スライスへのアクセスがあってもリード処理を継続する。すなわち、ディスクノードは、アクセス対象のスライスの状態を「B(Bad)」に変更したり、制御ノード800にスライス異常通知を送信したりしない。これにより、二重化回復のためのコピー処理が完了する前に、プライマリスライスが異常として取り扱われることを防ぐことができる。その結果、データのロストが防止される。
次に、ディスクノードにおけるディスク診断処理の詳細な手順を説明する。なお、以下の処理は、ディスクノード400が行うものとして説明するが、他のディスクノード400a,400bも同様の処理を定期的に実行する。
図26は、ディスク診断処理の手順を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。なお、この処理は予め設定された間隔で定期的に実行される。
[ステップS151]T1/復帰検出部430は、検査コマンドをストレージ装置410に対して出力する。このときT1/復帰検出部430は、検査コマンドの出力時刻を内部メモリに記憶する。
[ステップS152]T1/復帰検出部430は、検査コマンドが発行されてからT1が経過したか否かを判断する。具体的には、T1/復帰検出部430は、現在の時刻から検査コマンドの出力時刻を減算し、減算結果がT1以上であれば、T1が経過したものと判断する。T1が経過した場合、処理がステップS155に進められる。T1が経過していなければ、処理がステップS153に進められる。
[ステップS153]T1/復帰検出部430は、診断完了チェックを行う。具体的には、T1/復帰検出部430は、ストレージ装置410から正常応答が返信されたかどうかを検査する。
[ステップS154]T1/復帰検出部430は、正常応答が返信された場合、処理を終了する。正常応答が返信されていなければ、処理がステップS152に進められる。
[ステップS155]T1/復帰検出部430は、検査コマンドの送信からT1が経過すると、T1経過通知を制御ノード800に送信する。
[ステップS156]ディスクノード400内の複数の要素の連携処理により、T2/復帰検出処理が実行される。この処理の詳細は後述する。この処理が終了すると、ディスク診断処理が終了する。
図27は、T2/復帰検出処理の手順を示すフローチャートである。以下、図27に示す処理をステップ番号に沿って説明する。
[ステップS161]T2検出部440は、検査コマンドが発行されてからT2が経過したか否かを判断する。具体的には、T2検出部440は、T1/復帰検出部430から検査コマンドの出力時刻を取得する。そして、T2検出部440は、現在時刻から検査コマンドの出力時刻を減算し、減算結果がT2以上であれば、T2が経過したものと判断する。T2が経過した場合、処理がステップS162に進められる。T2が経過していない場合、処理がステップS163に進められる。
[ステップS162]T2検出部440は、T2経過通知を制御ノード800に対して送信する。その後、T2/復帰検出処理が終了する。
[ステップS163]スライスアクセス処理部420は、ストレージ装置410に対するアクセス要求が入力されたか否かを判断する。アクセス要求が入力された場合、処理がステップS165に進められる。アクセス要求が入力されていなければ、処理がステップS164に進められる。
[ステップS164]T1/復帰検出部430は、診断完了チェックを行う。具体的には、T1/復帰検出部430は、ストレージ装置410から正常応答が返信されたかどうかを検査する。その後、処理がステップS170に進められる。
[ステップS165]スライスアクセス処理部420は、アクセス対象のスライスがコピー中か否かを判断する。具体的には、スライスアクセス処理部420は、メタデータ記憶部450を参照し、アクセス対象のスライスの二重化状態を確認する。二重化状態として「コピー中」と設定されていれば、該当するスライスはコピー中である。コピー中であれば、処理がステップS166に進められる。コピー中でなければ、処理がステップS167に進められる。
[ステップS166]スライスアクセス処理部420は、アクセス要求に応じたストレージ装置410へのアクセス処理を行う。なお、このアクセス処理はストレージ装置410が復帰するまで成功しない。そのため、スライスアクセス処理部420は、ストレージ装置410が復帰するのを待ち、アクセス要求に応じたデータリードまたはデータライトを実行する。その後、処理がステップS170に進められる。
[ステップS167]アクセス対象のスライスがコピー中ではない場合、スライスアクセス処理部420から被アクセススライス検出部470へ、ストレージ装置410内のスライスへのアクセス要求があったことを通知する。被アクセススライス検出部470は、ストレージ装置410のディスク診断処理において、検査コマンド発行からT1経過後、T2経過/復帰前であることを確認し、スライス管理部460へメタデータの変更要求を送信する。メタデータの変更要求に応じて、スライス管理部460は、メタデータ記憶部450内のアクセス対象のスライスのメタデータに対し、状態を「B(Bad)」とする更新を行う。また、スライス管理部460は、ストレージ装置410が復帰した場合は、ストレージ装置410内のメタデータも同様に更新する。
[ステップS168]被アクセススライス検出部470は、制御ノード800に対してスライス異常通知を行う。
[ステップS169]スライスアクセス処理部420は、アクセスエラーをアクセスノード600に送信する。その後、処理がステップS170に進められる。
[ステップS170]T1/復帰検出部430は、正常応答が返信された場合、処理をステップS171に進める。正常応答が返信されていなければ、処理をステップS161に進める。
[ステップS171]T1/復帰検出部430は、復帰通知を制御ノード800に送信する。その後、T2/復帰検出処理が終了する。
このようにして、リカバリ中のセグメントに割り当てられているスライスを有するストレージ装置でT1が検出され、そのスライスに対するアクセス要求があっても、スライス異常通知が行われない。その結果、複数のストレージ装置において同時にT1経過が検出された場合でも、データが消失するのを防止できる。
以上のように、第3の実施の形態では、ディスクノードからの異常通知に基づいてスライスの再割り当てを行うようにしたため、メタデータ照会に応じたメタデータ検索処理を遅延させずに済む。これにより、アクセスノードは、スライス再割り当てに伴うメタデータ変更に時間がかかったとしても、メタデータ照会に対する応答を迅速に受け取ることができる。その結果、複数のストレージ装置が同時に不調に陥った場合でも、アクセスノードからのデータアクセスを可能な限り滞らせずにすむ。
また、第3の実施の形態においても第1、第2の実施の形態と同様に、アクセスを長い時間止めることを抑えつつ、故障検出時間「T2」を長く設定することができる。すなわち、ストレージ装置ごとに故障検出時間「T2」を調整しなくてもよいという利点を有する。
なお、第3の実施の形態の割り当て可否記憶部830に代えて、第1の実施の形態におけるストレージ状態記憶部530を用いることもできる。その場合、ストレージ状態記憶部530において状態が「正常」とされたストレージ装置は「割り当て可能」、状態が「T1」のストレージ装置は「割り当て不可」と判断する。
また、上記第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)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
なお、本発明は、上述の実施の形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変更を加えることができる。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) 記憶領域が複数のスライスに分割して管理されている複数のストレージ装置に二重化して格納されたデータの管理処理をコンピュータに実行させるデータ管理プログラムであって、
前記コンピュータを、
前記複数のストレージ装置のうちの1つが故障中の可能性があることを示す動作不調情報を受け取ると、前記動作不調情報を動作不調情報記憶手段に格納する動作不調情報管理手段、
前記複数のストレージ装置のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、前記動作不調情報記憶手段内の前記動作不調情報を参照して前記アクセス対象スライスが属する前記ストレージ装置が故障中である可能性の有無を判断し、故障の可能性がある場合、前記アクセス対象スライス内のデータと同じ内容の冗長データを格納する前記ストレージ装置へのデータ入出力機能を有するスライス管理手段へ、前記アクセス対象スライスに格納されていたデータのリカバリ処理を指示するリカバリ指示手段、
として機能させることを特徴とするデータ管理プログラム。
(付記2) 前記動作不調情報は、故障中の可能性がある前記ストレージ装置が接続されたディスクノードから、ネットワークを介して送信されることを特徴とする付記1記載のデータ管理プログラム。
(付記3) 前記アクセス関連情報は、ネットワークを介して前記複数のストレージ装置にアクセスを行うアクセスノードによる前記ストレージ装置内のスライスへのアクセスが失敗したときに、前記アクセスノードから送信されることを特徴とする付記1記載のデータ管理プログラム。
(付記4) 前記リカバリ指示手段は、前記アクセスノードから前記アクセス関連情報を受け取ると、前記アクセスノードに対して前記冗長データの格納場所を通知することを特徴とする付記3記載のデータ管理プログラム。
(付記5) 前記スライス管理手段は、前記コンピュータに対してネットワークを介して接続され、前記冗長データを格納する前記ストレージ装置が接続されたディスクノードの一機能であることを特徴とする付記1記載のデータ管理プログラム。
(付記6) 前記コンピュータを、さらに、
複数のセグメントで構成される仮想ディスクが定義されており、異なるストレージ装置に属する2つの前記スライスが前記セグメントそれぞれに割り当てられており、前記複数のストレージ装置それぞれの前記スライスごとに設けられ、前記スライスと前記セグメントとの割り当て関係を示すメタデータを記憶する仮想ディスクメタデータ記憶手段として機能させ、
前記アクセス関連情報は、ネットワークを介して前記複数のストレージ装置にアクセスを行うアクセスノードによる前記ストレージ装置内のスライスへのアクセスが失敗したときに前記アクセスノードから送信される、アクセスに失敗したスライスが割り当てられているセグメントを照会対象セグメントとして指定した割り当て関係の照会要求であり、
前記リカバリ指示手段は、
前記仮想ディスクメタデータ記憶手段から、前記アクセス関連情報で指定された前記照会対象セグメントに割り当てられている2つの被割り当てスライスの前記メタデータを検索し、前記動作不調情報記憶手段を参照し、検索により得られた前記メタデータに基づいて前記被割り当てスライスが属する前記ストレージ装置が故障中である可能性の有無を判断するメタデータ検索手段と、
前記メタデータ検索手段が故障中の可能性があると判断された場合、故障中の可能性がある前記ストレージ装置に属する前記被割り当てスライスの前記照会対象セグメントへの割り当てを解除し、他の前記スライスを前記照会対象セグメントに新規に割り当てるスライス割り当て手段と、
を有することを特徴とする付記1記載のデータ管理プログラム。
(付記7) 前記スライス割り当て手段は、前記照会対象セグメントへの新規のスライスの割り当てが完了すると、割り当て結果に応じて前記仮想ディスクメタデータ記憶手段内のメタデータを更新し、
前記メタデータ検索手段は、前記被割り当てスライスが属する前記ストレージ装置が故障中の可能性があると判断した場合、前記被割り当てスライスに代えて前記照会対象セグメントに対して新規のスライスの割り当てられるのを待ち、新規のスライスが割り当てられた後、前記照会対象セグメントに割り当てられたスライスのメタデータを前記仮想ディスクメタデータ記憶手段から取得し、前記アクセスノードに送信することを特徴とする付記6記載のデータ管理プログラム。
(付記8) 前記スライス割り当て手段は、前記動作不調情報記憶手段を参照し、前記照会対象セグメントに新規に割り当てるスライスとして、前記動作不調情報で示されていない前記ストレージ装置のスライスから選択することを特徴とする付記6記載のデータ管理プログラム。
(付記9) 前記リカバリ指示手段は、前記複数のストレージ装置のいずれか1つが故障したことを示す故障検出情報を受け取ると、故障したストレージ装置内の各データと同じ内容の冗長データを格納する前記ストレージ装置へのデータ入出力機能を有するスライス管理手段へ、前記故障したストレージ装置内のすべてのデータのリカバリ処理を指示する指示することを特徴とする付記1記載のデータ管理プログラム。
(付記10) 前記動作不調情報管理手段は、故障中の可能性があるとされていた前記ストレージ装置の正常動作が確認されたことを示す復帰情報を受け取ると、前記動作不調情報記憶手段から、正常動作が確認された前記ストレージ装置の前記動作不調情報を消去することを特徴とする付記1記載のデータ管理プログラム。
(付記11) ストレージ装置が接続されると共に、前記ストレージ装置に格納するデータの管理を行う制御ノードにネットワーク経由で接続されたコンピュータに、前記ストレージ装置の動作診断処理を実行させるストレージ装置診断プログラムであって、
前記コンピュータを、
前記ストレージ装置に対して検査コマンドを発行し、前記検査コマンド発行から応答があるまでの経過時間を計測する応答時間計測手段、
前記経過時間が予め設定された動作不調検出時間に達しても応答がない場合、前記制御ノードに対して、前記ストレージ装置が故障中の可能性があることを示す動作不調情報を送信する動作不調検出手段、
前記動作不調情報を送信後に前記ストレージ装置から前記検査コマンドに対する応答が返されると、前記制御ノードに対して前記ストレージ装置の復帰を示す復帰情報を送信する復帰検出手段、
として機能させることを特徴とするストレージ装置診断プログラム。
(付記12) 前記コンピュータを、さらに、
前記経過時間が、前記動作不調検出時間よりも大きな値が予め設定された故障検出時間に達しても応答がない場合、前記制御ノードに対して前記ストレージ装置に関する故障検出情報を送信する故障検出手段、
として機能させることを特徴とする付記11記載のストレージ装置診断プログラム。
(付記13) 前記コンピュータを、さらに、
前記動作不調情報送信後、前記復帰情報または前記故障検出情報送信前に前記ストレージ装置内のスライスへのアクセスがあると、アクセス対象スライスを指定したスライス異常通知を前記制御ノードに送信するスライス異常通知手段、
として機能させることを特徴とする付記12記載のストレージ装置診断プログラム。
(付記14) ストレージ装置が接続されると共に、前記ストレージ装置に格納するデータの管理を行う制御ノードにネットワーク経由で接続されたコンピュータに、前記ストレージ装置の動作診断処理を実行させるストレージ装置診断プログラムであって、
前記コンピュータを、
前記ストレージ装置に対して検査コマンドを発行し、前記検査コマンド発行から応答があるまでの経過時間を計測する応答時間計測手段、
前記経過時間が、予め設定された動作不調検出時間を超えた後、前記検査コマンドに対する応答取得前に前記ストレージ装置内のスライスへのアクセスがあると、アクセス対象スライスを指定したスライス異常通知を前記制御ノードに送信するスライス異常通知手段、
として機能させることを特徴とするストレージ装置診断プログラム。
(付記15) データを二重化して管理するマルチノードストレージシステムであって、
記憶領域が複数のスライスに分割して管理されたストレージ装置に対して検査コマンドを発行し、前記検査コマンド発行から応答があるまでの経過時間を計測する応答時間計測手段と、
前記経過時間が予め設定された動作不調検出時間に達しても応答がない場合、制御ノードに対して前記ストレージ装置が故障中の可能性があることを示す動作不調情報を送信する動作不調検出手段と、
前記動作不調情報を送信後に前記ストレージ装置から前記検査コマンドに対する応答が返されると、前記制御ノードに対して前記ストレージ装置の復帰を示す復帰情報を送信する復帰検出手段と、
を具備する複数のディスクノードと、
前記ディスクノードの1つから前記動作不調情報を受け取ると、前記動作不調情報を動作不調情報記憶手段に格納する動作不調情報管理手段と、
前記複数のストレージ装置のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、前記動作不調情報記憶手段内の前記動作不調情報を参照して前記アクセス対象スライスが属する前記ストレージ装置が故障中である可能性の有無を判断し、故障の可能性がある場合、前記アクセス対象スライス内のデータと同じ内容の冗長データを格納する前記ストレージ装置が接続された前記ディスクノードへ、前記アクセス対象スライスに格納されていたデータのリカバリ処理を指示するリカバリ指示手段と、
を具備する前記制御ノードと、
を有することを特徴とするマルチノードストレージシステム。
実施の形態の概要を示す図である。 第1の形態のマルチノードストレージシステム構成例を示す図である。 第1の形態に用いる制御ノードのハードウェア構成例を示す図である。 仮想ディスクのデータ構造を示す図である。 マルチノードストレージシステムの各装置の機能を示すブロック図である。 ストレージ装置のデータ構造例を示す図である。 メタデータ記憶部のデータ構造例を示す図である。 仮想ディスクメタデータ記憶部のデータ構造例を示す図である。 ストレージ状態記憶部のデータ構造例を示す図である。 ストレージ装置故障時のスライス切り替え処理の手順を示すシーケンス図である。 状態変更後のストレージ状態記憶部の例を示す図である。 更新後の仮想ディスクメタデータ記憶部の内容を示す図である。 ストレージ装置の負荷が過大となったときのスライス切り替え処理の手順を示すシーケンス図である。 タイムスタンプを用いた矛盾解消処理を示すシーケンス図である。 再構成された仮想ディスクメタデータテーブルの例を示す図である。 管理ノードからディスクノード切り離しを指示する場合の処理手順を示すシーケンス図である。 第3の実施の形態におけるマルチノードストレージシステムの各装置の機能を示すブロック図である。 メタデータ記憶部のデータ構造例を示す図である。 仮想ディスクメタデータ記憶部のデータ構造例を示す図である。 割り当て可否記憶部のデータ構造例を示す図である。 ストレージ装置故障時のスライス切り替え処理の手順を示すシーケンス図である。 割り当て可否更新後の割り当て可否記憶部の例を示す図である。 更新後の仮想ディスクメタデータ記憶部の内容を示す図である。 ストレージ装置の負荷が過大となったときのスライス切り替え処理の手順を示すシーケンス図である。 複数のディスクでT1経過が検出されたときのスライス割り当て処理を示すシーケンス図である。 ディスク診断処理の手順を示すフローチャートである。 T2/復帰検出処理の手順を示すフローチャートである。
符号の説明
1〜3 ストレージ装置
1a,2a,3a スライス
4〜6 ディスクノード
4a 応答時間計測手段
4b 動作不調検出手段
4c 故障検出手段
4d 復帰検出手段
5a,6a スライス管理手段
7 制御ノード
7a 動作不調情報管理手段
7b 動作不調情報記憶手段
7c リカバリ指示手段
8 アクセスノード

Claims (8)

  1. 記憶領域が複数のスライスに分割して管理されている複数のストレージ装置に二重化して格納されたデータの管理処理をコンピュータに実行させるデータ管理プログラムであって、
    前記コンピュータを、
    前記複数のストレージ装置のうちの1つが故障中の可能性があることを示す動作不調情報を受け取ると、前記動作不調情報を動作不調情報記憶手段に格納する動作不調情報管理手段、
    前記複数のストレージ装置のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、前記動作不調情報記憶手段内の前記動作不調情報を参照して前記アクセス対象スライスが属する前記ストレージ装置が故障中である可能性の有無を判断し、故障の可能性がある場合、前記アクセス対象スライス内のデータと同じ内容の冗長データを格納する前記ストレージ装置へのデータ入出力機能を有するスライス管理手段へ、前記アクセス対象スライスに格納されていたデータのリカバリ処理を指示するリカバリ指示手段、
    として機能させることを特徴とするデータ管理プログラム。
  2. 前記アクセス関連情報は、ネットワークを介して前記複数のストレージ装置にアクセスを行うアクセスノードによる前記ストレージ装置内のスライスへのアクセスが失敗したときに、前記アクセスノードから送信されることを特徴とする請求項1記載のデータ管理プログラム。
  3. 前記リカバリ指示手段は、前記アクセスノードから前記アクセス関連情報を受け取ると、前記アクセスノードに対して前記冗長データの格納場所を通知することを特徴とする請求項2記載のデータ管理プログラム。
  4. 前記コンピュータを、さらに、
    複数のセグメントで構成される仮想ディスクが定義されており、異なるストレージ装置に属する2つの前記スライスが前記セグメントそれぞれに割り当てられており、前記複数のストレージ装置それぞれの前記スライスごとに設けられ、前記スライスと前記セグメントとの割り当て関係を示すメタデータを記憶する仮想ディスクメタデータ記憶手段として機能させ、
    前記アクセス関連情報は、ネットワークを介して前記複数のストレージ装置にアクセスを行うアクセスノードによる前記ストレージ装置内のスライスへのアクセスが失敗したときに前記アクセスノードから送信される、アクセスに失敗したスライスが割り当てられているセグメントを照会対象セグメントとして指定した割り当て関係の照会要求であり、
    前記リカバリ指示手段は、
    前記仮想ディスクメタデータ記憶手段から、前記アクセス関連情報で指定された前記照会対象セグメントに割り当てられている2つの被割り当てスライスの前記メタデータを検索し、前記動作不調情報記憶手段を参照し、検索により得られた前記メタデータに基づいて前記被割り当てスライスが属する前記ストレージ装置が故障中である可能性の有無を判断するメタデータ検索手段と、
    前記メタデータ検索手段が故障中の可能性があると判断された場合、故障中の可能性がある前記ストレージ装置に属する前記被割り当てスライスの前記照会対象セグメントへの割り当てを解除し、他の前記スライスを前記照会対象セグメントに新規に割り当てるスライス割り当て手段と、
    を有することを特徴とする請求項1記載のデータ管理プログラム。
  5. 前記スライス割り当て手段は、前記照会対象セグメントへの新規のスライスの割り当てが完了すると、割り当て結果に応じて前記仮想ディスクメタデータ記憶手段内のメタデータを更新し、
    前記メタデータ検索手段は、前記被割り当てスライスが属する前記ストレージ装置が故障中の可能性があると判断した場合、前記被割り当てスライスに代えて前記照会対象セグメントに対して新規のスライスの割り当てられるのを待ち、新規のスライスが割り当てられた後、前記照会対象セグメントに割り当てられたスライスのメタデータを前記仮想ディスクメタデータ記憶手段から取得し、前記アクセスノードに送信することを特徴とする請求項4記載のデータ管理プログラム。
  6. ストレージ装置が接続されると共に、前記ストレージ装置に格納するデータの管理を行う制御ノードにネットワーク経由で接続されたコンピュータに、前記ストレージ装置の動作診断処理を実行させるストレージ装置診断プログラムであって、
    前記コンピュータを、
    前記ストレージ装置に対して検査コマンドを発行し、前記検査コマンド発行から応答があるまでの経過時間を計測する応答時間計測手段、
    前記経過時間が予め設定された動作不調検出時間に達しても応答がない場合、前記制御ノードに対して、前記ストレージ装置が故障中の可能性があることを示す動作不調情報を送信する動作不調検出手段、
    前記動作不調情報を送信後に前記ストレージ装置から前記検査コマンドに対する応答が返されると、前記制御ノードに対して前記ストレージ装置の復帰を示す復帰情報を送信する復帰検出手段、
    として機能させることを特徴とするストレージ装置診断プログラム。
  7. ストレージ装置が接続されると共に、前記ストレージ装置に格納するデータの管理を行う制御ノードにネットワーク経由で接続されたコンピュータに、前記ストレージ装置の動作診断処理を実行させるストレージ装置診断プログラムであって、
    前記コンピュータを、
    前記ストレージ装置に対して検査コマンドを発行し、前記検査コマンド発行から応答があるまでの経過時間を計測する応答時間計測手段、
    前記経過時間が、予め設定された動作不調検出時間を超えた後、前記検査コマンドに対する応答取得前に前記ストレージ装置内のスライスへのアクセスがあると、アクセス対象スライスを指定したスライス異常通知を前記制御ノードに送信するスライス異常通知手段、
    として機能させることを特徴とするストレージ装置診断プログラム。
  8. データを二重化して管理するマルチノードストレージシステムであって、
    記憶領域が複数のスライスに分割して管理されたストレージ装置に対して検査コマンドを発行し、前記検査コマンド発行から応答があるまでの経過時間を計測する応答時間計測手段と、
    前記経過時間が予め設定された動作不調検出時間に達しても応答がない場合、制御ノードに対して前記ストレージ装置が故障中の可能性があることを示す動作不調情報を送信する動作不調検出手段と、
    前記動作不調情報を送信後に前記ストレージ装置から前記検査コマンドに対する応答が返されると、前記制御ノードに対して前記ストレージ装置の復帰を示す復帰情報を送信する復帰検出手段と、
    を具備する複数のディスクノードと、
    前記ディスクノードの1つから前記動作不調情報を受け取ると、前記動作不調情報を動作不調情報記憶手段に格納する動作不調情報管理手段と、
    前記複数のストレージ装置のスライスをアクセス対象スライスとしてアクセス要求が出されたことを示すアクセス関連情報を受け取ると、前記動作不調情報記憶手段内の前記動作不調情報を参照して前記アクセス対象スライスが属する前記ストレージ装置が故障中である可能性の有無を判断し、故障の可能性がある場合、前記アクセス対象スライス内のデータと同じ内容の冗長データを格納する前記ストレージ装置が接続された前記ディスクノードへ、前記アクセス対象スライスに格納されていたデータのリカバリ処理を指示するリカバリ指示手段と、
    を具備する前記制御ノードと、
    を有することを特徴とするマルチノードストレージシステム。
JP2008267280A 2008-10-16 2008-10-16 データ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステム Pending JP2010097385A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008267280A JP2010097385A (ja) 2008-10-16 2008-10-16 データ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステム
US12/585,384 US8458398B2 (en) 2008-10-16 2009-09-14 Computer-readable medium storing data management program, computer-readable medium storing storage diagnosis program, and multinode storage system
EP09170523A EP2177984A3 (en) 2008-10-16 2009-09-17 Multinode network storage data management method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008267280A JP2010097385A (ja) 2008-10-16 2008-10-16 データ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2012197110A Division JP5348300B2 (ja) 2012-09-07 2012-09-07 データ管理プログラム、およびマルチノードストレージシステム

Publications (1)

Publication Number Publication Date
JP2010097385A true JP2010097385A (ja) 2010-04-30

Family

ID=41572410

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008267280A Pending JP2010097385A (ja) 2008-10-16 2008-10-16 データ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステム

Country Status (3)

Country Link
US (1) US8458398B2 (ja)
EP (1) EP2177984A3 (ja)
JP (1) JP2010097385A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015208526A (ja) * 2014-04-28 2015-11-24 日本光電工業株式会社 医療機器
US9430489B2 (en) 2012-05-17 2016-08-30 Fujitsu Limited Computer, data storage method, and information processing system

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2673554C (en) * 2009-07-21 2017-01-03 Ibm Canada Limited - Ibm Canada Limitee Web distributed storage system
US9244768B2 (en) * 2010-03-12 2016-01-26 International Business Machines Corporation Dispersed storage network file system directory
US8751740B1 (en) 2010-03-31 2014-06-10 Emc Corporation Systems, methods, and computer readable media for performance optimization of storage allocation to virtual logical units
US8402106B2 (en) * 2010-04-14 2013-03-19 Red Hat, Inc. Asynchronous future based API
US8479046B1 (en) * 2010-06-28 2013-07-02 Emc Corporation Systems, methods, and computer readable media for tracking pool storage space reservations
US10157002B2 (en) * 2010-08-26 2018-12-18 International Business Machines Corporation Migrating an encoded data slice based on an end-of-life memory level of a memory device
US8782339B2 (en) * 2010-10-11 2014-07-15 Open Invention Network, Llc Storage system having cross node data redundancy and method and computer readable medium for same
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9747287B1 (en) * 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US9652265B1 (en) 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
US9405545B2 (en) * 2011-12-30 2016-08-02 Intel Corporation Method and apparatus for cutting senior store latency using store prefetching
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
DE102014205121A1 (de) * 2013-04-04 2014-10-09 Schaeffler Technologies Gmbh & Co. Kg Verfahren zur Ermittlung einer Fehlfunktion einer, einem Steuergerät zugeordneten Zeitmesseinheit
US20180101457A1 (en) * 2014-10-29 2018-04-12 International Business Machines Corporation Retrying failed write operations in a dispersed storage network
US10089307B2 (en) * 2014-12-31 2018-10-02 International Business Machines Corporation Scalable distributed data store
US10223222B2 (en) * 2015-12-21 2019-03-05 International Business Machines Corporation Storage system-based replication for disaster recovery in virtualized environments
US11106369B1 (en) * 2016-06-28 2021-08-31 Amazon Technologies, Inc. Host-accessible storage device service level indicators
US10303562B2 (en) * 2017-03-30 2019-05-28 Entit Software Llc Using metadata extracted from proxy files to access data stored in secondary storage
CN110413218B (zh) * 2018-04-28 2023-06-23 伊姆西Ip控股有限责任公司 用于存储系统中的故障恢复的方法、装置和计算机程序产品
CN113590016A (zh) * 2020-04-30 2021-11-02 伊姆西Ip控股有限责任公司 用于管理存储盘的方法、电子设备和计算机程序产品
CN115016741B (zh) * 2022-07-15 2022-10-25 中国长江三峡集团有限公司 一种智能电力电子设备数据存储和传输系统及方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129331A (ja) * 1993-11-05 1995-05-19 Fujitsu Ltd ディスクアレイ装置
JPH08249133A (ja) * 1994-12-15 1996-09-27 Internatl Business Mach Corp <Ibm> ディスク・ドライブ・アレイの故障対策の方法及びシステム
JPH10333841A (ja) * 1997-05-28 1998-12-18 Nec Corp ディスクアレイ装置の障害復旧装置
JP2002149500A (ja) * 2000-11-08 2002-05-24 Matsushita Electric Ind Co Ltd ハードディスク装置
JP2003345531A (ja) * 2002-05-24 2003-12-05 Hitachi Ltd ストレージシステム、管理サーバ、及びそのアプリケーションの管理方法
JP2004252692A (ja) * 2003-02-20 2004-09-09 Nec Corp ディスクアレイ装置
JP2005157739A (ja) * 2003-11-26 2005-06-16 Hitachi Ltd ディスクアレイ装置及びディスクアレイ装置の障害回避方法
JP2006172320A (ja) * 2004-12-17 2006-06-29 Fujitsu Ltd データ複製制御装置
JP2007206931A (ja) * 2006-02-01 2007-08-16 Hitachi Ltd 記憶システム、データ処理方法並びにストレージ装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158625A (ja) 1991-12-06 1993-06-25 Hitachi Ltd アレイ型記憶装置の障害対策方式
JPH06187101A (ja) 1992-09-09 1994-07-08 Hitachi Ltd ディスクアレイ
JP2708386B2 (ja) 1994-03-18 1998-02-04 インターナショナル・ビジネス・マシーンズ・コーポレイション 同時更新及び複写手順を通して重複データベースを回復させる方法及び装置
JPH11345095A (ja) 1998-06-02 1999-12-14 Toshiba Corp ディスクアレイ装置およびその制御方法
US6408401B1 (en) * 1998-11-13 2002-06-18 Compaq Information Technologies Group, L.P. Embedded RAM with self-test and self-repair with spare rows and columns
JP3606797B2 (ja) 1999-09-30 2005-01-05 富士通株式会社 記憶装置のデータ領域間の複写処理方法、記憶システム、及びその記憶媒体
US6885620B2 (en) * 2001-01-25 2005-04-26 Dphi Acquisitions, Inc. System and method for recovering from performance errors in an optical disc drive
JP2003316522A (ja) 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
JP4252301B2 (ja) * 2002-12-26 2009-04-08 株式会社日立製作所 記憶システム及びそのデータバックアップ方法
JP4711688B2 (ja) * 2003-05-21 2011-06-29 富士通株式会社 ストレージシステム
JP2005000468A (ja) 2003-06-13 2005-01-06 Omron Healthcare Co Ltd 心電計、および心電計における表示方法
JP4317436B2 (ja) * 2003-12-16 2009-08-19 株式会社日立製作所 ディスクアレイシステム及びインターフェイス変換装置
JP2005326935A (ja) 2004-05-12 2005-11-24 Hitachi Ltd 仮想化ストレージを備える計算機システムの管理サーバおよび障害回避復旧方法
JP2006285464A (ja) * 2005-03-31 2006-10-19 Hitachi Ltd 計算機システムとストレージ及びデバイス制御方法
US7363457B1 (en) * 2005-07-21 2008-04-22 Sun Microsystems, Inc. Method and system for providing virtualization data services for legacy storage devices
JP4775843B2 (ja) * 2005-08-10 2011-09-21 株式会社日立製作所 ストレージシステム及び記憶制御方法
JP4550717B2 (ja) * 2005-10-28 2010-09-22 富士通株式会社 仮想ストレージシステム制御装置、仮想ストレージシステム制御プログラム、仮想ストレージシステム制御方法
JP4767139B2 (ja) * 2006-09-15 2011-09-07 富士通株式会社 ストレージ管理プログラム、ストレージ管理装置、およびストレージ管理方法
JP5158625B2 (ja) 2007-05-28 2013-03-06 株式会社アソピクス 秘密idを格納した外部デバイスを備える暗号化メール送受信システム

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129331A (ja) * 1993-11-05 1995-05-19 Fujitsu Ltd ディスクアレイ装置
JPH08249133A (ja) * 1994-12-15 1996-09-27 Internatl Business Mach Corp <Ibm> ディスク・ドライブ・アレイの故障対策の方法及びシステム
JPH10333841A (ja) * 1997-05-28 1998-12-18 Nec Corp ディスクアレイ装置の障害復旧装置
JP2002149500A (ja) * 2000-11-08 2002-05-24 Matsushita Electric Ind Co Ltd ハードディスク装置
JP2003345531A (ja) * 2002-05-24 2003-12-05 Hitachi Ltd ストレージシステム、管理サーバ、及びそのアプリケーションの管理方法
JP2004252692A (ja) * 2003-02-20 2004-09-09 Nec Corp ディスクアレイ装置
JP2005157739A (ja) * 2003-11-26 2005-06-16 Hitachi Ltd ディスクアレイ装置及びディスクアレイ装置の障害回避方法
JP2006172320A (ja) * 2004-12-17 2006-06-29 Fujitsu Ltd データ複製制御装置
JP2007206931A (ja) * 2006-02-01 2007-08-16 Hitachi Ltd 記憶システム、データ処理方法並びにストレージ装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430489B2 (en) 2012-05-17 2016-08-30 Fujitsu Limited Computer, data storage method, and information processing system
JP2015208526A (ja) * 2014-04-28 2015-11-24 日本光電工業株式会社 医療機器

Also Published As

Publication number Publication date
US20100106907A1 (en) 2010-04-29
EP2177984A3 (en) 2010-05-19
US8458398B2 (en) 2013-06-04
EP2177984A2 (en) 2010-04-21

Similar Documents

Publication Publication Date Title
JP2010097385A (ja) データ管理プログラム、ストレージ装置診断プログラム、およびマルチノードストレージシステム
JP5412882B2 (ja) 論理ボリューム構成情報提供プログラム、論理ボリューム構成情報提供方法、および論理ボリューム構成情報提供装置
JP2011128917A (ja) データ割当制御プログラム、データ割当制御方法、およびデータ割当制御装置
US8271761B2 (en) Storage system and management method thereof
JP4480756B2 (ja) ストレージ管理装置、ストレージシステム制御装置、ストレージ管理プログラム、データ記憶システムおよびデータ記憶方法
JP5158074B2 (ja) ストレージ管理プログラム、ストレージ管理方法、ストレージ管理装置およびストレージシステム
JP5217967B2 (ja) 故障ノード切り離し処理プログラム、故障ノード切り離し方法及びストレージシステム
JP5396836B2 (ja) データ分散制御プログラム、ストレージ管理プログラム、制御ノード、およびディスクノード
US20070011579A1 (en) Storage system, management server, and method of managing application thereof
JP6237406B2 (ja) 情報処理装置、ストレージシステム、およびプログラム
JP5218284B2 (ja) 仮想ディスク管理プログラム、ストレージ装置管理プログラム、マルチノードストレージシステム、および仮想ディスク管理方法
JP6212934B2 (ja) ストレージシステム、情報処理装置の制御プログラム、およびストレージシステムの制御方法
US11573737B2 (en) Method and apparatus for performing disk management of all flash array server
JP6850771B2 (ja) 情報処理システム、情報処理システムの管理方法及びプログラム
JP5348300B2 (ja) データ管理プログラム、およびマルチノードストレージシステム
US20050198411A1 (en) Commingled write cache in dual input/output adapter
US20160371136A1 (en) Storage system
JP6569476B2 (ja) ストレージ装置、ストレージシステムおよびストレージ制御プログラム
JP5640480B2 (ja) データ管理プログラム、ストレージシステム、およびデータ管理方法
TWI756007B (zh) 用以進行全快閃記憶體陣列伺服器的高可用性管理的方法與設備
CN112445652A (zh) 远程复制系统
JP5309816B2 (ja) データ管理プログラム、データ管理装置、およびデータ管理方法
JP5924117B2 (ja) コンピュータ、データ格納方法、データ格納プログラム及び情報処理システム
JP2010198467A (ja) 情報処理装置の障害復旧システム及び情報処理装置の障害復旧方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120907

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130326

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130723