JP2019082897A - 情報処理装置、情報処理システム及びプログラム - Google Patents

情報処理装置、情報処理システム及びプログラム Download PDF

Info

Publication number
JP2019082897A
JP2019082897A JP2017210320A JP2017210320A JP2019082897A JP 2019082897 A JP2019082897 A JP 2019082897A JP 2017210320 A JP2017210320 A JP 2017210320A JP 2017210320 A JP2017210320 A JP 2017210320A JP 2019082897 A JP2019082897 A JP 2019082897A
Authority
JP
Japan
Prior art keywords
information processing
processing apparatus
information
data
storage device
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
JP2017210320A
Other languages
English (en)
Inventor
野中 隆
Takashi Nonaka
隆 野中
明日翔 岡川
Asuka Okagawa
明日翔 岡川
章洋 菅谷
Akihiro Sugaya
章洋 菅谷
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 JP2017210320A priority Critical patent/JP2019082897A/ja
Priority to US16/145,247 priority patent/US11126514B2/en
Publication of JP2019082897A publication Critical patent/JP2019082897A/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/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/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/2071Error 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 using a plurality of controllers
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】リモートディスクへデータを書き込む際にエラーが発生した場合にアプリケーションの中断を防ぐこと。【解決手段】リモートディスクにデータを書き込む際にエラーが発生すると、ドライバ31は、書き込み処理を保留してデーモン33にエラーの発生を通知する。そして、デーモン33は、エラー発生スライスの情報をファイルに記録し、一時記録完了をドライバ31に応答する。そして、ドライバ31は、書き込み処理を再開して書き込み完了をappに応答してユーザI/O復帰を行う。また、デーモン33は、エラー発生スライスの情報をファイルに記録した後、エラー発生スライスの切離しを行う。【選択図】図2

Description

本発明は、情報処理装置、情報処理システム及びプログラムに関する。
近年、ローカルディスク装置に記憶したデータを他の情報処理装置のローカルディスク装置にミラーリングすることでデータの可用性を向上する情報処理装置が利用されている。このようなローカルディスク装置を用いた情報処理装置間のミラーリングには、共用ストレージなしでクラスタシステムを構築できる、遠隔地へのフェイルオーバが可能である、ストレージ筐体が単一障害点となることがない等の利点がある。ここで、クラスタシステムとは、複数の情報処理装置を連携して1つのシステムとして運用されるシステムである。
なお、故障ノードが検出されると、管理対象のスライスに対応付けられ、他のストレージノードが管理するスライスに、故障ノードのスライスが含まれているかどうかを判定し、故障ノードのスライスが含まれているときはミラーリングを行わない技術がある。この技術によれば、故障ノードの切離しなしでストレージサービスを継続できるので、故障ノードの切離しを行う制御ノードが停止している場合にもストレージサービスを継続することができる。
また、現用系ノードのディスクをオリジナルとし、ネットワークを介して接続される待機系ノードのディスクをシャドウとするミラーリング構成を採るときに、障害発生に適切に対処する二重化システムがある。この二重化システムは、現用系ノードのディスクに障害が発生すると、待機系として動作しているノードを運用状態にするとともに、それまで現用系として動作していたノードを停止させることで、二重化システムとしての動作を停止させるように処理する。また、この二重化システムは、待機系ノードのディスクに障害が発生すると、待機系として動作しているノードを停止させることで、二重化システムとしての動作を停止させるように処理する。また、この二重化システムは、シャドウディスクへのアクセス用に用意されるネットワークに障害が発生すると、待機系として動作しているノードを停止させることで、二重化システムとしての動作を停止させるように処理する。
特開2010−128886号公報 特開2002−123406号公報
ローカルディスク装置を用いた情報処理装置間のミラーリングには、アプリケーションからのデータ書き込み要求に関して他の情報処理装置のローカルディスク装置へのデータの書き込みでエラーが発生すると、アプリケーションへの応答が行われない。したがって、アプリケーションの処理が中断されるという問題がある。
図14は、従来の書き込み処理の問題を説明するための図である。図14において、情報処理システム9は、ノード#11及びノード#12で表されるノード91を有する。ノード91は、情報処理装置である。ノード#11及びノード#12は、クラスタシステムを構築し、ネットワーク3で接続される。ネットワーク3は、リモートディスクへのアクセス、ハートビート、ノード91の停止確認の全てに用いられる。ここで、リモートディスクとは、クラスタシステムを構築する他のノード91が有するディスク装置23である。
ノード91ではapp21で表されるアプリケーションが動作する。app21は、クラスタ制御部92を介してディスク装置23へのデータの書き込み及びディスク装置23からのデータの読み出しを行う。クラスタ制御部92は、クラスタシステムに関する処理を行い、ディスク制御部90を有する。
ディスク制御部90は、ディスク装置23へのデータの書き込み及びディスク装置23からのデータの読み出しを制御する。ノード#11のディスク制御部90は、自装置のディスク装置23にデータを書き込む際に、ノード#12のディスク装置23にもデータを書き込む。すなわち、ディスク制御部90は、ミラーリングを行う。
ノード#11のディスク制御部90は、app21からデータの書き込み要求を受け付けると(t91)、ローカルディスクにデータの書き込み(WRITE)を行う(t92)とともに、ネットワーク3を介してリモートディスクへもデータの書き込み(WRITE)を行う(t93)。
そして、ノード#11のディスク制御部90は、ローカルディスクから書き込み完了の応答を受け取る(t94)。一方、ネットワーク3及びノード#12に異常がある場合、ノード#12との通信が行えないため、ノード#11のディスク制御部90は、ERRORを受け取る(t95)。例えば、情報処理システム9が災害対策用に構築されている場合、災害発生によりネットワーク3及びノード#12に異常が発生する。
ERRORを受け取ると、ノード#11のディスク制御部90は、リモートスライスの切離しを行う。ここで、スライスとは、ノード#11のapp21が使用するデータの部分データである。ノード#11のディスク制御部90は、リモートスライスの切離しを行うため、クラスタロックを取得しようとする(t96)。ここで、クラスタロックとは、クラスタシステムを構築するノード91間の排他制御で使用される鍵である。
ノード#11のディスク制御部90は、ノード#12との通信が行えないため、クラスタロックを取得することができない。また、ネットワーク3は、リモートディスクへのアクセス及びハートビートに用いられるため、ノード#11のディスク制御部90は、ノード#12の生存確認ができない。さらに、ネットワーク3は、ノード#12の停止確認にも用いられるため、ノード#11のディスク制御部90は、ノード#12の停止確認を行うことができない。したがって、ノード#11のディスク制御部90は、ノード#12の停止確定待ちとなり、app21への応答を行うことができない。
オペレータによりノード#12の停止確認が行われ、ノード#11にノード#12の停止確認が伝えられると、ノード#11のディスク制御部90は、ローカルディスクの構成情報の書き換えを行う(t97)とともに、リモートディスクの構成情報の書き換えを行う(t98)。
ここで、構成情報は、クラスタシステムの構成に関する情報であり、スライス毎の状態に関する情報を含む。スライスの状態としては、例えば、正常、切離し等がある。構成情報の変更には、ノード91間で排他をとる必要がある。このため、ノード#11のディスク制御部90は、t96において、クラスタロックを取得しようとする。
そして、ノード#11のディスク制御部90は、ローカルディスクから書き込み完了の応答を受け取る(t99)。一方、ネットワーク3に異常があるため、ノード#11のディスク制御部90は、ERRORを受け取る(t100)。そして、ノード#11のディスク制御部90は、app21に書き込み完了を応答することでユーザI/O復帰を行う(t101)。この場合、app21への応答が行われるが、応答までに要する時間が長い。
本発明は、1つの側面では、アプリケーションの中断を防ぐことを目的とする。
1つの態様では、情報処理装置は、自身の不揮発性記憶装置へのデータの書き込み時に他の情報処理装置の不揮発性記憶装置に該データを書き込む。情報処理装置は、保留部と、記録部と、通知部と、切離部とを有する。保留部は、アプリケーションからデータの書き込み要求を受け付けて自身の不揮発性記憶装置へのデータの書き込みに成功する一方で他の情報処理装置の不揮発性記憶装置へデータを書き込む際にエラーが発生すると該書き込み要求に関する書き込み処理を保留する。記録部は、保留部による前記書き込み処理の保留後、他の情報処理装置の不揮発性記憶装置へのデータ書き込みのエラーを示すエラー情報を記録する。通知部は、記録部によるエラー情報の記録後、書き込み処理を再開して書き込み処理の完了をアプリケーションに通知する。切離部は、通知部による書き込み処理の完了の通知後、他の情報処理装置の不揮発性記憶装置の前記アプリケーションで使用される領域を切離す。
1つの側面では、本発明は、アプリケーションの中断を防ぐことができる。
図1Aは、実施例に係る情報処理システムによる書き込み処理を説明するための第1の図である。 図1Bは、実施例に係る情報処理システムによる書き込み処理を説明するための第2の図である。 図1Cは、実施例に係る情報処理システムによる書き込み処理を説明するための第3の図である。 図1Dは、実施例に係る情報処理システムによる書き込み処理を説明するための第4の図である。 図1Eは、実施例に係る情報処理システムによる書き込み処理を説明するための第5の図である。 図1Fは、実施例に係る情報処理システムによる書き込み処理を説明するための第6の図である。 図1Gは、実施例に係る情報処理システムによる書き込み処理を説明するための第7の図である。 図1Hは、実施例に係る情報処理システムによる書き込み処理を説明するための第8の図である。 図1Iは、実施例に係る情報処理システムによる書き込み処理を説明するための第9の図である。 図2は、ディスク制御部の機能構成を示す図である。 図3Aは、故障情報記憶部の一例を示す図である。 図3Bは、クラス、ボリューム、スライスの関係を示す図である。 図4は、リモートディスクにおいて書き込みエラーが発生する場合のシーケンス図である。 図5は、ドライバによる書き込処理のフローを示すフローチャートである。 図6は、書き込み完了時の割込み処理のフローを示すフローチャートである。 図7は、I/Oエラーイベントに関してデーモンが行う処理のフローを示すフローチャートである。 図8は、エラー発生スライスの情報を一時記録する処理のフローを示すフローチャートである。 図9は、切離し処理のフローを示すフローチャートである。 図10は、構成情報を更新する処理のフローを示すフローチャートである。 図11は、ボリューム起動時の処理のフローを示すフローチャートである。 図12は、コピー完了時の故障ディスク情報の削除処理のフローを示すフローチャートである。 図13は、実施例に係るディスク制御プログラムを実行するコンピュータのハードウェア構成を示す図である。 図14は、従来の書き込み処理の問題を説明するための図である。
以下に、本願の開示する情報処理装置、情報処理システム及びプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
まず、実施例に係る情報処理システムによる書き込み処理について説明する。図1A〜図1Iは、実施例に係る情報処理システムによる書き込み処理を説明するための図である。図1A〜図1Iにおいて、情報処理システム1は、ノード#1及びノード#2で表されるノード2を有する。ノード2は、情報処理装置である。ノード#1及びノード#2は、クラスタシステムを構築し、ネットワーク3で接続される。ネットワーク3は、リモートディスクへのアクセス、ハートビート、ノード2の停止確認の全てに用いられる。なお、情報処理システム1は、3台以上のノード2を用いてクラスタシステムを構築してもよい。
ノード2ではapp21で表されるアプリケーションが動作する。app21は、クラスタ制御部22を介してディスク装置23へのデータの書き込み及びディスク装置23からのデータの読み出しを行う。クラスタ制御部22は、クラスタシステムに関する処理を行い、ディスク制御部30を有する。
ディスク制御部30は、ディスク装置23へのデータの書き込み及びディスク装置23からのデータの読み出しを制御する。ノード#1のディスク制御部30は、自装置のディスク装置23にデータを書き込む際に、ノード#2のディスク装置23にもデータを書き込む。すなわち、ディスク制御部30は、ミラーリングを行う。
図1Aに示すように、ノード#1のディスク制御部30は、app21からデータの書き込み要求を受け付けると(t1)、ローカルディスクにデータの書き込み(WRITE)を行う(t2)とともに、ネットワーク3を介してリモートディスクへもデータの書き込み(WRITE)を行う(t3)。
そして、図1Bに示すように、ノード#1のディスク制御部30は、ローカルディスクから書き込み完了の応答を受け取る(t4)。一方、ネットワーク3及びノード#2に異常がある場合、ノード#2との通信が行えないため、ノード#1のディスク制御部30は、ERRORを受け取る(t5)。
すると、図1Cに示すように、ノード#1のディスク制御部30は、書き込み処理を保留し、故障ディスク情報を他のノード2からもアクセス可能な所定の領域に記録する(t6)。そして、図1Dに示すように、ノード#1のディスク制御部30は、書き込み処理を再開し、app21に書き込み完了を応答することでユーザI/O復帰を行う(t7)。
そして、ノード#1のディスク制御部30は、図1Eに示すように、リモートスライスの切離しを行う。ノード#1のディスク制御部30は、リモートスライスの切離しを行うため、クラスタロックを取得しようとする(t8)。
ノード#1のディスク制御部30は、ノード#2との通信が行えないため、クラスタロックを取得することができない。また、ネットワーク3は、リモートディスクへのアクセス及びハートビートに用いられるため、ノード#1のディスク制御部30は、ノード#2の生存確認ができない。さらに、ネットワーク3は、ノード#2の停止確認にも用いられるため、ノード#1のディスク制御部30は、ノード#2の停止確認を行うことができない。したがって、ノード#1のディスク制御部30は、図1Fに示すように、ノード#2の停止確定待ちとなる。
その後、オペレータによりノード#2の停止確認が行われ、ノード#1にノード#2の停止確認が伝えられると、ノード#1のディスク制御部30は、図1Gに示すように、ローカルディスクの構成情報の書き換えを行う(t9)。
そして、ノード#1のディスク制御部30は、図1Hに示すように、リモートディスクの構成情報の書き換えを行う(t10)。そして、ノード#1のディスク制御部30は、ローカルディスクから書き込み完了の応答を受け取る(t11)。一方、ネットワーク3及びノード#2に異常があるため、ノード#1のディスク制御部30は、ERRORを受け取る(t12)。そして、図1Iに示すように、ノード#1のディスク制御部30は、スライス切離しを完了する。
このように、ノード#1のディスク制御部30は、ネットワーク3に異常がある場合、故障ディスク情報を他のノード2からもアクセス可能な所定の領域に記録し、app21に書き込み完了を応答してユーザI/O復帰を行う。したがって、ノード#1のディスク制御部30は、アプリケーションの中断を防ぐことができる。
次に、ディスク制御部30の機能構成について説明する。図2は、ディスク制御部30の機能構成を示す図である。図2に示すように、ディスク制御部30は、ドライバ31と、イニシエータ32と、デーモン33と、故障情報記憶部34aと、構成情報記憶部34bとを有する。
ドライバ31は、ディスク装置23からのデータの読み出し及びディスク装置23へのデータの書き込みを制御する。ドライバ31は、app21からデータの書き込み要求を受け付けて、ローカルディスク及びリモートディスクへのデータの書き込みを制御する。イニシエータ32は、ドライバ31の指示に基づいて、リモートディスクへのデータの書き込みを行う。ドライバ31は、エラー通知部31aと、完了通知部31bと、コピー部31cを有する。
エラー通知部31aは、イニシエータ32からリモートディスクへのデータの書き込みでI/Oエラーの発生を通知されると、書き込み処理を保留し、デーモン33にI/Oエラーを通知する。
完了通知部31bは、I/Oエラーの発生を通知されたデーモン33から、故障ディスク情報の書き込み完了を通知されると、書き込み処理を再開して書き込み完了をapp21に通知する。
コピー部31cは、例えば、ノード2の起動時に、他のノード2が正常に動作している場合、故障ディスク情報を用いてローカルディスクとリモートディスクの間で整合をとる処理を行う。
デーモン33は、イベントを受信すると、イベントに対応する処理を行う。イベントには、I/Oエラーの他、ボリューム起動要求、コピー完了通知等がある。
故障情報記憶部34aは、故障ディスク情報を記憶する。故障情報記憶部34aの情報は、他のノード2からのアクセス可能である。図3Aは、故障情報記憶部34aの一例を示す図である。図3Aに示すように、故障情報記憶部34aは、故障ディスク情報として、I/Oエラーが発生したスライス毎に、クラスID、ボリュームID、SCSIIDを記憶する。
クラスIDは、クラスを識別する識別子であり、ボリュームIDは、ボリュームを識別する識別子であり、SCSIIDは、ミラーリングペアのいずれであるかを識別する識別子である。図3Bは、クラス、ボリューム、スライスの関係を示す図である。図3Bに示すように、ミラーリングペアのディスク装置23はクラスとして管理され、クラスには複数のボリュームが含まれる。ボリュームはミラーリングペアのスライスで構成される。したがって、クラスID、ボリュームID、SCSIIDによりスライスが特定される。
構成情報記憶部34bは、構成情報を記憶する。すなわち、構成情報記憶部34bは、クラスタシステムの構成に関する情報を記憶する。構成情報記憶部34bは、スライス毎の状態を記憶する。
デーモン33は、故障情報書込部35と、切離部36と、起動制御部37と、故障情報削除部38とを有する。故障情報書込部35は、リモートディスクへのデータの書き込みが失敗した場合に、故障ディスク情報を故障情報記憶部34aに書き込む。そして、故障情報書込部35は、故障ディスク情報を故障情報記憶部34aに書き込んだことをドライバ31に通知する。
切離部36は、リモートディスクへのデータの書き込みが失敗した場合に、リモートスライスの切離しを行う。具体的には、切離部36は、クラスタロックを取得し、構成情報の変更を行う。
起動制御部37は、ボリュームの起動時に、自ノード2に記録された故障ディスク情報とリモートノード2に記録された故障ディスク情報を取得し、取得した故障情報に基づいて、構成情報を更新する。
故障情報削除部38は、ミラーリングペアのスライスの間でコピー処理により整合がとられると、整合がとれたスライスについて故障ディスク情報から情報を削除し、構成情報の当該スライスの状態を正常に変更する。
次に、リモートディスクにおいて書き込みエラーが発生する場合のシーケンスについて説明する。図4は、リモートディスクにおいて書き込みエラーが発生する場合のシーケンス図である。
図4に示すように、ノード#1のドライバ31は、app21からデータの書き込み要求を受け付けると(t21)、ローカルディスクにデータの書き込み(WRITE)を行う(t22)。そして、ノード#1のドライバ31は、イニシエータ32にリモートディスクへのデータの書き込みを依頼する(t23)。
イニシエータ32は、ネットワーク3を介してリモートディスクへデータの書き込みを行う(t24)が、ネットワーク3及びノード#2に異常があるため、データの書き込みに失敗してエラーを通知される(t25)。
そして、ドライバ31は、ローカルディスクから書き込み完了の応答を受け取り(t26)、イニシエータ32からERRORを受け取る(t27)。すると、ドライバ31は、書き込み処理を保留し、デーモン33にERROR通知を行う(t28)。すると、デーモン33は、エラー発生スライスの情報をファイルに記録する(t29)。エラー発生スライスの情報の記録は、故障ディスク情報の記録に対応し、デーモン33は、クラスID、ボリュームID及びSCSIIDをファイルに書き込む。また、ファイルは故障情報記憶部34aに対応する。
そして、デーモン33は、クラスID、ボリュームID及びSCSIIDの書き込みの応答を受け取ると(t30)、一時記録完了をドライバ31に通知する(t31)。ここで、一時記録とは、エラー発生スライスの情報をファイルに記録することである。そして、ドライバ31は、書き込み処理を再開し、app21に書き込み完了を応答することでユーザI/O復帰を行う(t32)。
また、デーモン33は、一時記録完了をドライバ31に通知後、エラー発生スライスの切離しを行う。デーモン33は、エラー発生スライスの切離しとして、クラスタロックを取得しようとする(t33)が、ノード#2との通信が行えないため、クラスタロックを取得することができない。
また、ネットワーク3は、リモートディスクへのアクセス及びハートビートに用いられるため、ノード#1は、ノード#2の生存確認ができない。さらに、ネットワーク3は、ノード#2の停止確認にも用いられるため、ノード#1は、ノード#2の停止確認を行うことができない。したがって、デーモン33は、ノード#2の停止確定待ちとなる。
その後、オペレータによりノード#2の停止確認が行われ、ノード#1にノード#2の停止確認が伝えられると、デーモン33は、占有域の情報を更新する(t34)。ここで、占有域とは、構成情報が記憶される領域である。そして、デーモン33は、イニシエータ32にリモートディスクの占有域の情報更新を依頼する(t35)。
イニシエータ32は、ネットワーク3を介してリモートディスクの占有域の情報を更新を行う(t36)が、ネットワーク3及びノード#2に異常があるため、更新に失敗してエラーを通知される(t37)。
そして、デーモン33は、ローカルディスクから応答を受け取り(t38)、イニシエータ32からERRORを受け取る(t39)。そして、デーモン33は、占有域(リモート)の切離しを行い、エラー発生スライスの切離しを完了する。そして、デーモン33は、リカバリ処理完了をドライバ31に通知する(t40)。
次に、ドライバ31及びデーモン33による処理のフローについて図5〜図12を用いて説明する。図5は、ドライバ31による書き込み処理のフローを示すフローチャートである。図5に示すように、ドライバ31は、I/Oカウンタをインクリメントする(ステップS1)。ここで、I/Oカウンタは、発行したWRITEの数をカウントするカウンタである。
そして、ドライバ31は、ローカルディスクにWRITEを発行し(ステップS2)、I/Oカウンタをインクリメントする(ステップS3)。そして、ドライバ31は、リモートディスクにWRITEを発行する(ステップS4)。
このように、ドライバ31は、WRITEを発行する毎にI/Oカウンタをインクリメントすることで、発行したWRITEに対する応答の有無を判定することができる。
図6は、書き込み完了時の割込み処理のフローを示すフローチャートである。ドライバ31により発行されたWRITEが完了すると割込みが発生する。したがって、ドライバ31がローカルディスクとリモートディスクにWRITEを発行すると、図6の処理は2回実行される。
図6に示すように、ドライバ31は、割込み処理において、I/O結果を判定する(ステップS11)。そして、I/O結果が失敗である場合には、ドライバ31は、デーモン33にI/Oエラーイベントを発行する(ステップS12)。そして、ドライバ31は、デーモン33から一時記録完了通知を受信する(ステップS13)。一方、I/O結果が成功である場合には、ドライバ31は、ステップS14へ進む。
そして、ドライバ31は、I/Oカウンタをデクリメントし(ステップS14)、I/Oカウンタ数を判定する(ステップS15)。そして、I/Oカウンタ数が1以上である場合には、2つのWRITE発行後の1回目の割込み処理なので、ドライバ31は、割込み処理を終了する。
一方、I/Oカウンタ数が1未満である場合には、2つのWRITE発行後の2回目の割込み処理なので、ドライバ31は、I/O成功数を判定する(ステップS16)。ここで、I/O成功数は、ディスク装置23へのI/Oが成功した数である。そして、ドライバ31は、I/O成功数が1未満である場合には、失敗でユーザI/O復帰を行い(ステップS17)、1以上である場合には、成功でユーザI/O復帰を行う(ステップS18)。
このように、ドライバ31は、発行したWRITEが失敗した場合にデーモン33にI/Oエラーイベントを発行することで、I/Oエラーの発生を記録することができる。
図7は、I/Oエラーイベントに関してデーモン33が行う処理のフローを示すフローチャートである。図7に示すように、デーモン33は、I/Oエラーイベントを受信する(ステップS21)と、ファイルにエラー発生スライスの情報を記録する(ステップS22)。
そして、デーモン33は、記録結果を判定し(ステップS23)、記録が成功である場合には、ドライバ31に一時記録完了を通知し(ステップS24)、メモリに一時記録結果として成功を格納する(ステップS25)。一方、記録が失敗である場合には、デーモン33は、メモリに一時記録結果として失敗を格納する(ステップS26)。
そして、デーモン33は、自分がマスターノード2か否かを判定する(ステップS27)。ここで、マスターノード2とは、クラスタシステムにおいてマスタとして動作するノード2であり、構成情報の更新等を行うノード2である。そして、自分がマスターノード2である場合には、デーモン33は、構成情報の更新を行う切離し処理を実行する(ステップS28)。そして、デーモン33は、ドライバ31にリカバリ処理完了を通知する(ステップS29)。
一方、自分がマスターノード2でない場合には、デーモン33は、リモートノード2へ切離し処理を依頼し(ステップS30)、通信に失敗したか否か判定する(ステップS31)。そして、デーモン33は、通信に失敗した場合には、ステップS30へ戻り、通信に成功した場合には、リモートノード2から切離し処理の完了通知を受信する(ステップ32)。そして、デーモン33は、ドライバ31にリカバリ処理完了を通知する(ステップS29)。
このように、デーモン33が、I/Oエラーイベントを受信すると、ファイルにエラー発生スライスの情報を記録し、ドライバ31に一時記録完了を通知することで、ドライバ31は、切離し処理の前にapp21に書き込み処理の完了を通知することができる。
図8は、エラー発生スライスの情報を一時記録する処理のフローを示すフローチャートである。なお、図8の処理は、図7に示したステップS22の処理に対応する。図8に示すように、デーモン33は、エラー発生スライスとして指定されたクラスIDとボリュームIDに一致する情報が既にあるか否かを判定し(ステップS41)、既にある場合には、ステップS45へ進む。
一方、エラー発生スライスとして指定されたクラスIDとボリュームIDに一致する情報がない場合には、デーモン33は、指定されたクラスID、ボリュームID及びSCSIIDをファイルに書き込む(ステップS42)。そして、デーモン33は、書き込み結果を判定し(ステップS43)、失敗した場合には失敗を返し(ステップS44)、成功した場合には、成功を返す(ステップS45)。
このように、デーモン33は、クラスID、ボリュームID及びSCSIIDをファイルに書き込むことで、エラー発生スライスを特定できる情報を記録することができる。
図9は、切離し処理のフローを示すフローチャートである。図9に示すように、デーモン33は、クラスタロックを取得し(ステップS51)、クラスタロックが取れたか否かを判定する(ステップS52)。そして、クラスタロックが取れない場合には、デーモン33は、ステップS51へ戻る。
一方、クラスタロックが取れた場合には、デーモン33は、メモリ上の構成情報でエラー発生スライスの状態を切離し状態に変更し(ステップS53)、ディスク装置23の構成情報を更新する(ステップS54)。そして、デーモン33は、更新結果を判定し(ステップS55)、更新に成功した場合には、メモリの一時記録結果を判定する(ステップS56)。
そして、一時記録結果が失敗である場合には、デーモン33は、ファイルにエラー発生スライスの情報を記録し(ステップS57)、記録結果を判定する(ステップS58)。そして、記録が失敗である場合には、デーモン33は、ボリュームを強制停止する(ステップS59)。そして、デーモン33は、リモートノード2に切離し完了を通知する(ステップS60)。なお、図7のステップS28において、自身がマスターノード2で切離し処理を行った場合には、リモートノード2に切離し完了を通知することなく処理を終了する。
また、ステップS58において記録結果が成功の場合、ステップS56においてメモリの一時記録結果が成功の場合、又はステップS55において更新に失敗した場合には、デーモン33は、ステップS60へ進む。
このように、デーモン33は、エラー発生スライスの状態を切離し状態に変更して構成情報を更新することで、ディスク制御部30がエラー発生スライスにアクセスすることを防ぐことができる。なお、図7のステップS30において、リモートノード2に構成情報更新を依頼した場合には、ステップS56〜ステップ59の処理は、ステップS30を実行したノード2で行われる。
図10は、構成情報を更新する処理のフローを示すフローチャートである。図10の処理は、図9に示したステップS54の処理に対応する。図10に示すように、デーモン33は、ローカルディスクに構成情報をWRITEし(ステップS71)、リモートディスクに構成情報をWRITEする(ステップS72)。なお、ステップS71とステップS72の順序は逆でもよい。
そして、デーモン33は、I/O成功数を判定し(ステップS73)、1未満である場合には、ボリュームを強制停止し(ステップS74)、失敗を返す(ステップS75)。一方、I/O成功数が1以上である場合には、デーモン33は、I/O成功数を判定し(ステップS76)、1である場合には、エラーの占有域を切離し(ステップS77)、成功を返す(ステップS78)。また、I/O成功数が1より大きい場合には、デーモン33は、成功を返す(ステップS78)。
このように、デーモン33は、構成情報を更新する際に、ローカルディスクとリモートディスクの両方を更新することで、クラスタシステムを構築するノード2間で構成情報の整合をとることができる。
図11は、ボリューム起動時の処理のフローを示すフローチャートである。図11に示すように、デーモン33は、ボリューム起動処理要求を受信する(ステップS81)と、自ノード2の故障ディスク情報をファイルから取得する(ステップS82)。そして、デーモン33は、取得結果を判定し(ステップS83)、失敗である場合には、ボリューム起動失敗を応答する(ステップS84)。
一方、自ノード2の故障ディスク情報の取得に成功した場合には、デーモン33は、他ノード2の故障ディスク情報をファイルから取得する(ステップS85)。そして、デーモン33は、取得結果を判定し(ステップS86)、失敗である場合には、ボリューム起動失敗を応答する(ステップS87)。
一方、他ノード2の故障ディスク情報の取得に成功した場合には、デーモン33は、エラー発生スライスがないか否かを判定し(ステップS88)、ない場合にはボリュームを起動する(ステップS89)。一方、エラー発生スライスがある場合には、デーモン33は、エラー発生スライス情報が片ノード2だけにあるか否かを判定する(ステップS90)。
そして、エラー発生スライス情報が片ノード2だけにある場合には、デーモン33は、エラー発生スライス情報があるスライスの構成情報における状態が正常であるか否かを判定する(ステップS91)。そして、エラー発生スライス情報があるスライスの構成情報における状態が正常である場合には、デーモン33は、エラー発生スライスの状態をメモリ上の構成情報で切離しに変更する(ステップS92)。そしてデーモン33は、非エラー発生スライスの状態をメモリ上の構成情報で正常に変更する(ステップS93)。
そして、デーモン33は、ディスク装置23の構成情報を更新し(ステップS94)、更新結果を判定する(ステップS95)。そして、デーモン33は、更新に失敗した場合には、ボリューム起動失敗を応答し(ステップS96)、更新に成功した場合には、ボリュームを起動する(ステップS97)。
また、ステップS90においてエラー発生スライス情報が両ノード2にある場合には、デーモン33は、エラー発生スライス情報が両ノード2で一致するか否かを判定し(ステップS98)、一致する場合には、ステップS91へ移動する。一方、エラー発生スライス情報が両ノード2で一致しない場合には、デーモン33は、ボリューム起動失敗を応答する(ステップS99)。
このように、デーモン33は、ボリューム起動時に故障ディスク情報に基づいて構成情報を更新することにより、構成情報に最新の状態を反映することができる。
図12は、コピー完了時の故障ディスク情報の削除処理のフローを示すフローチャートである。図12に示すように、デーモン33は、ドライバ31からコピー完了通知を受領する(ステップS101)と、コピーが完了したスライスの状態を判定し(ステップS102)、切離し状態である場合には、処理を終了する。
一方、コピーが完了したスライスの状態がコピー中である場合には、デーモン33は、コピー結果を判定し(ステップS103)、成功である場合には、ファイルのエラー発生スライス情報を削除し(ステップS104)、削除結果を判定する(ステップS105)。そして、デーモン33は、削除結果が成功である場合には、メモリ上の構成情報でスライスの状態をコピー中から正常に変更する(ステップS106)。一方、デーモン33は、削除結果が失敗である場合には、メモリ上の構成情報でスライスの状態をコピー中から切離しに変更する(ステップS107)。そして、デーモン33は、ディスク装置23の構成情報を更新する(ステップS108)。
また、ステップS103においてコピー結果が失敗である場合には、デーモン33は、メモリ上の構成情報でスライスの状態をコピー中から切離しに変更し(ステップS109)、ディスク装置23の構成情報を更新する(ステップS108)。
このように、デーモン33は、コピー完了時にエラー発生スライス情報を削除することで、故障ディスク情報が誤って用いられることを防ぐことができる。
上述してきたように、実施例では、リモートディスクにデータを書き込む際にエラーが発生すると、ドライバ31は、書き込み処理を保留してデーモン33にエラーの発生を通知する。そして、デーモン33は、エラー発生スライスの情報をファイルに記録し、一時記録完了をドライバ31に応答する。そして、ドライバ31は、書き込み処理を再開して書き込み完了をapp21に応答してユーザI/O復帰を行う。また、デーモン33は、エラー発生スライスの情報をファイルに記録した後、エラー発生スライスの切離しを行う。したがって、ディスク制御部30は、リモートディスクにデータを書き込む際にエラーが発生した場合にapp21へ応答することができ、app21の中断を防ぐことができる。
また、実施例では、スライスの状態を示す情報を構成情報として各ノード2に記憶し、デーモン33は、クラスタロックを取得し、エラー発生スライスの状態を構成情報において切離し状態に更新するので、エラー発生スライスを切離すことができる。
また、実施例では、デーモン33は、エラー発生スライスの情報をファイルに記録する処理で失敗した場合に、切離し処理後にエラー発生スライスの情報をファイルに記録する処理を再実行する。したがって、デーモン33は、エラー発生スライスの情報をファイルに記録する可能性を高くすることができる。
また、実施例では、コピー部31cが、ノード2の起動時に、他のノード2が正常に動作している場合、故障ディスク情報を用いてローカルディスクとリモートディスクの間で整合をとる処理を行う。したがって、リモートディスクへデータを書き込む際にエラーが発生した場合でも、整合のとれていないデータが用いられることを防ぐことができる。
また、実施例では、故障ディスク情報を用いてローカルディスクとリモートディスクの間で整合がとられると、故障情報削除部38が故障ディスク情報を削除するので、故障ディスク情報が誤って利用されることを防ぐことができる。
また、実施例では、起動制御部37が、ノード2の起動時に、他のノード2が正常に動作している場合、故障ディスク情報を用いて自ノード2及び他ノード2の構成情報を更新するので、自ノード2及び他ノード2の間で構成情報の整合をとることができる。
また、実施例では、故障情報書込部35は、故障ディスク情報としてクラスID、ボリュームID及びSCSIIDをファイルに書き込むので、デーモン33は、故障ディスク情報に基づいて、エラーが発生したスライスを特定することができる。
なお、実施例では、ディスク制御部30について説明したが、ディスク制御部30が有する構成をソフトウェアによって実現することで、同様の機能を有するディスク制御プログラムを得ることができる。そこで、ディスク制御プログラムを実行するコンピュータについて説明する。
図13は、実施例に係るディスク制御プログラムを実行するコンピュータのハードウェア構成を示す図である。図13に示すように、コンピュータ50は、メインメモリ51と、CPU(Central Processing Unit)52と、LAN(Local Area Network)インタフェース53と、HDD(Hard Disk Drive)54とを有する。また、コンピュータ50は、スーパーIO(Input Output)55と、DVI(Digital Visual Interface)56と、ODD(Optical Disk Drive)57とを有する。
メインメモリ51は、プログラムやプログラムの実行途中結果などを記憶するメモリである。CPU52は、メインメモリ51からプログラムを読み出して実行する中央処理装置である。CPU52は、メモリコントローラを有するチップセットを含む。
LANインタフェース53は、コンピュータ50をLAN経由で他のコンピュータに接続するためのインタフェースである。HDD54は、プログラムやデータを格納するディスク装置であり、スーパーIO55は、マウスやキーボードなどの入力装置を接続するためのインタフェースである。DVI56は、液晶表示装置を接続するインタフェースであり、ODD57は、DVDの読み書きを行う装置である。
LANインタフェース53は、PCIエクスプレス(PCIe)によりCPU52に接続され、HDD54及びODD57は、SATA(Serial Advanced Technology Attachment)によりCPU52に接続される。スーパーIO55は、LPC(Low Pin Count)によりCPU52に接続される。
そして、コンピュータ50において実行されるディスク制御プログラムは、コンピュータ50により読み出し可能な記録媒体の一例であるDVDに記憶され、ODD57によってDVDから読み出されてコンピュータ50にインストールされる。あるいは、ディスク制御プログラムは、LANインタフェース53を介して接続された他のコンピュータシステムのデータベースなどに記憶され、これらのデータベースから読み出されてコンピュータ50にインストールされる。そして、インストールされたディスク制御プログラムは、HDD54に記憶され、メインメモリ51に読み出されてCPU52によって実行される。
また、実施例では、データを記憶する装置としてディスク装置23を用いる場合について説明したが、ノード2は、例えばSSD(Solid State Drive)のように他の不揮発性記憶装置を用いてもよい。
1,9 情報処理システム
2,91 ノード
3 ネットワーク
21 app
22,92 クラスタ制御部
23 ディスク装置
30,90 ディスク制御部
31 ドライバ
31a エラー通知部
31b 完了通知部
31c コピー部
32 イニシエータ
33 デーモン
34a 故障情報記憶部
34b 構成情報記憶部
35 故障情報書込部
36 切離部
37 起動制御部
38 故障情報削除部
50 コンピュータ
51 メインメモリ
52 CPU
53 LANインタフェース
54 HDD
55 スーパーIO
56 DVI
57 ODD

Claims (9)

  1. 自身の不揮発性記憶装置へのデータの書き込み時に他の情報処理装置の不揮発性記憶装置に該データを書き込む情報処理装置において、
    アプリケーションからデータの書き込み要求を受け付けて自身の不揮発性記憶装置への該データの書き込みに成功する一方で前記他の情報処理装置の不揮発性記憶装置へ該データを書き込む際にエラーが発生すると該書き込み要求に関する書き込み処理を保留する保留部と、
    前記保留部による前記書き込み処理の保留後、前記他の情報処理装置の不揮発性記憶装置へのデータ書き込みのエラーを示すエラー情報を記録する記録部と、
    前記記録部による前記エラー情報の記録後、前記書き込み処理を再開して前記書き込み処理の完了をアプリケーションに通知する通知部と、
    前記通知部による前記書き込み処理の完了の通知後、前記他の情報処理装置の不揮発性記憶装置の前記アプリケーションで使用される領域を切離す切離部と
    を有することを特徴とする情報処理装置。
  2. 当該情報処理装置の起動時に、前記他の情報処理装置が正常に動作している場合に、前記エラー情報に基づいて、自身の不揮発性記憶装置と前記他の情報処理装置の不揮発性記憶装置との間でデータの整合をとる複写部
    をさらに有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記複写部により自身の不揮発性記憶装置と前記他の情報処理装置の不揮発性記憶装置との間でデータの整合がとられると、前記エラー情報を削除する削除部
    をさらに有することを特徴とする請求項2に記載の情報処理装置。
  4. アプリケーションで使用される領域毎に切離しが行われているか否かを示す情報を構成情報として記憶する構成情報記憶部をさらに有し、
    前記切離部は、前記他の情報処理装置との間での排他制御に用いられるロックを取得し、前記構成情報のうち前記エラーが発生した領域に対応する箇所を、切離しが行われていることを示す情報に更新することを自身及び前記他の情報処理装置に対して行うことを特徴とする請求項1、2又は3に記載の情報処理装置。
  5. 当該情報処理装置の起動時に、前記他の情報処理装置が正常に動作している場合に、前記エラー情報に基づいて、当該情報処理装置及び前記他の情報処理装置の前記構成情報を更新する起動制御部
    をさらに有することを特徴とする請求項4に記載の情報処理装置。
  6. 前記記録部は、前記エラー情報の記録に失敗した場合に、前記構成情報の更新後に、前記エラー情報の記録を再度試みることを特徴とする請求項5に記載の情報処理装置。
  7. 前記記録部は、前記エラー情報として、自身の不揮発性記憶装置と前記他の情報処理装置の不揮発性記憶装置の組を識別するクラス識別子と、前記アプリケーションで使用される領域を識別するボリューム識別子と、自身の不揮発性記憶装置と前記他の情報処理装置の不揮発性記憶装置のいずれであるかを識別するSCSI識別子を記録することを特徴とする請求項1〜6のいずれか1つに記載の情報処理装置。
  8. 不揮発性記憶装置をそれぞれ備える第1の情報処理装置と第2の情報処理装置を有し、一方の不揮発性記憶装置にデータを書き込む際に他方の不揮発性記憶装置に該データを書き込む情報処理システムにおいて、
    前記第1の情報処理装置は、
    アプリケーションからデータの書き込み要求を受け付けて自身の不揮発性記憶装置への該データの書き込みに成功する一方で前記第2の情報処理装置の不揮発性記憶装置へ該データを書き込む際にエラーが発生すると該書き込み要求に関する書き込み処理を保留する保留部と、
    前記保留部による前記書き込み処理の保留後、前記第2の情報処理装置の不揮発性記憶装置へのデータ書き込みのエラーを示すエラー情報を記録する記録部と、
    前記記録部による前記エラー情報の記録後、前記書き込み処理を再開して前記書き込み処理の完了をアプリケーションに通知する通知部と、
    前記通知部による前記書き込み処理の完了の通知後、前記第2の情報処理装置の不揮発性記憶装置の前記アプリケーションで使用される領域を切離す切離部と
    を有することを特徴とする情報処理システム。
  9. 自身の不揮発性記憶装置へのデータの書き込み時に他の情報処理装置の不揮発性記憶装置に該データを書き込む情報処理装置で実行されるプログラムにおいて、
    アプリケーションからデータの書き込み要求を受け付けて自装置の不揮発性記憶装置への該データの書き込みに成功する一方で前記他の情報処理装置の不揮発性記憶装置へ該データを書き込む際にエラーが発生すると該書き込み要求に関する書き込み処理を保留し、
    前記書き込み処理の保留後、前記他の情報処理装置の不揮発性記憶装置へのデータ書き込みのエラーを示すエラー情報を記録し、
    前記エラー情報の記録後、前記書き込み処理を再開して前記書き込み処理の完了をアプリケーションに通知し、
    前記書き込み処理の完了を通知後、前記他の情報処理装置の不揮発性記憶装置の前記アプリケーションで使用される領域を切離す
    処理を前記情報処理装置に実行させることを特徴とするプログラム。
JP2017210320A 2017-10-31 2017-10-31 情報処理装置、情報処理システム及びプログラム Pending JP2019082897A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017210320A JP2019082897A (ja) 2017-10-31 2017-10-31 情報処理装置、情報処理システム及びプログラム
US16/145,247 US11126514B2 (en) 2017-10-31 2018-09-28 Information processing apparatus, information processing system, and recording medium recording program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017210320A JP2019082897A (ja) 2017-10-31 2017-10-31 情報処理装置、情報処理システム及びプログラム

Publications (1)

Publication Number Publication Date
JP2019082897A true JP2019082897A (ja) 2019-05-30

Family

ID=66243973

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017210320A Pending JP2019082897A (ja) 2017-10-31 2017-10-31 情報処理装置、情報処理システム及びプログラム

Country Status (2)

Country Link
US (1) US11126514B2 (ja)
JP (1) JP2019082897A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021086331A (ja) * 2019-11-27 2021-06-03 富士通株式会社 情報処理装置、情報処理システム及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647764B (zh) * 2019-09-05 2022-10-28 上海交通大学 针对用户态非易失性内存文件系统的保护方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158631A (ja) * 1991-12-02 1993-06-25 Hitachi Ltd 二重化ファイル制御方法
JP2003006015A (ja) * 2001-06-25 2003-01-10 Toshiba Corp 分散ミラードディスクシステム
US20100138687A1 (en) * 2008-11-28 2010-06-03 Fujitsu Limited Recording medium storing failure isolation processing program, failure node isolation method, and storage system
JP2011253400A (ja) * 2010-06-03 2011-12-15 Nec System Technologies Ltd 分散ミラードディスクシステム、コンピュータ装置、ミラーリング方法およびそのプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664195A (en) * 1993-04-07 1997-09-02 Sequoia Systems, Inc. Method and apparatus for dynamic installation of a driver on a computer system
US5822782A (en) * 1995-10-27 1998-10-13 Symbios, Inc. Methods and structure to maintain raid configuration information on disks of the array
JP2002123406A (ja) 2000-10-17 2002-04-26 Pfu Ltd 高信頼性システム
GB2375847B (en) * 2001-05-22 2005-03-16 Hewlett Packard Co Protection and restoration of RAID configuration information in disaster recovery process
EP1650646A3 (en) * 2004-10-22 2008-11-19 Quantum Corporation Data storage system for storing data in different types of data storage media
US7610463B2 (en) * 2004-10-22 2009-10-27 Qualcomm Incorporated Method and apparatus for performing an atomic semaphore operation
JP2010015195A (ja) * 2008-06-30 2010-01-21 Toshiba Corp 記憶制御装置及び記憶制御方法
EP2172890A1 (en) * 2008-09-26 2010-04-07 Brother Kogyo Kabushiki Kaisha Image forming device and management device and management system for image forming
US9864772B2 (en) * 2010-09-30 2018-01-09 International Business Machines Corporation Log-shipping data replication with early log record fetching
JP5297479B2 (ja) * 2011-02-14 2013-09-25 エヌイーシーコンピュータテクノ株式会社 ミラーリング復旧装置、および、ミラーリング復旧方法
US9679664B2 (en) * 2012-02-11 2017-06-13 Samsung Electronics Co., Ltd. Method and system for providing a smart memory architecture
WO2016001962A1 (ja) * 2014-06-30 2016-01-07 株式会社日立製作所 ストレージシステム及び記憶制御方法
WO2016024994A1 (en) * 2014-08-15 2016-02-18 Hitachi, Ltd. Method and apparatus to virtualize remote copy pair in three data center configuration
US9910747B2 (en) * 2014-09-12 2018-03-06 International Business Machines Corporation Parallel mirrored copying with write consistency
JP6696280B2 (ja) * 2016-04-13 2020-05-20 富士通株式会社 情報処理装置、raid制御方法、およびraid制御プログラム
US9786349B1 (en) * 2016-07-01 2017-10-10 Micron Technology, Inc. Cell performance recovery using cycling techniques
US10540505B2 (en) * 2017-09-29 2020-01-21 Intel Corporation Technologies for protecting data in an asymmetric storage volume

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158631A (ja) * 1991-12-02 1993-06-25 Hitachi Ltd 二重化ファイル制御方法
JP2003006015A (ja) * 2001-06-25 2003-01-10 Toshiba Corp 分散ミラードディスクシステム
US20100138687A1 (en) * 2008-11-28 2010-06-03 Fujitsu Limited Recording medium storing failure isolation processing program, failure node isolation method, and storage system
JP2011253400A (ja) * 2010-06-03 2011-12-15 Nec System Technologies Ltd 分散ミラードディスクシステム、コンピュータ装置、ミラーリング方法およびそのプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021086331A (ja) * 2019-11-27 2021-06-03 富士通株式会社 情報処理装置、情報処理システム及びプログラム
US11487459B2 (en) 2019-11-27 2022-11-01 Fujitsu Limited Information processing apparatus, information processing system, and recording medium storing program
JP7363413B2 (ja) 2019-11-27 2023-10-18 富士通株式会社 情報処理装置、情報処理システム及びプログラム

Also Published As

Publication number Publication date
US20190129816A1 (en) 2019-05-02
US11126514B2 (en) 2021-09-21

Similar Documents

Publication Publication Date Title
US10108367B2 (en) Method for a source storage device sending data to a backup storage device for storage, and storage device
US8719497B1 (en) Using device spoofing to improve recovery time in a continuous data protection environment
US7370248B2 (en) In-service raid mirror reconfiguring
US8762648B2 (en) Storage system, control apparatus and control method therefor
US7661018B2 (en) Method, apparatus and program storage device for providing automatic recovery from premature reboot of a system during a concurrent upgrade
JP5286212B2 (ja) ストレージクラスタ環境でのリモートコピー制御方法及びシステム
JP4939180B2 (ja) 接続された装置を構成するための初期設定コードの実行
JP2005196683A (ja) 情報処理システム、情報処理装置、及び情報処理システムの制御方法
US7216210B2 (en) Data I/O system using a plurality of mirror volumes
US10503620B1 (en) Parity log with delta bitmap
US20100205482A1 (en) Mirroring controller, storage device, and mirroring control method
JP2019082897A (ja) 情報処理装置、情報処理システム及びプログラム
US20110173233A1 (en) Database system and database control method
JP6230707B2 (ja) ストレージシステム
JP6569476B2 (ja) ストレージ装置、ストレージシステムおよびストレージ制御プログラム
JP6749072B2 (ja) ストレージ管理装置及びストレージ管理プログラム
EP2921965B1 (en) Information processing device and shared memory management method
JP6435842B2 (ja) ストレージ制御装置及びストレージ制御プログラム
JP7363413B2 (ja) 情報処理装置、情報処理システム及びプログラム
JP2016143248A (ja) ストレージ制御装置及びストレージ制御プログラム
US11953985B1 (en) Dial-home and template based automatic recovery of virtual machine guest operating system
JP2008242742A (ja) クラスタシステム
JP2019197602A (ja) ストレージ管理装置及びストレージ管理プログラム
JP2018028793A (ja) 情報処理プログラム、情報処理システムおよび情報処理方法
JP2015185068A (ja) ストレージ装置、ストレージシステムおよびデータ配置方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210629

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210803

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220118