JP2014081884A - 計算機システム - Google Patents

計算機システム Download PDF

Info

Publication number
JP2014081884A
JP2014081884A JP2012230966A JP2012230966A JP2014081884A JP 2014081884 A JP2014081884 A JP 2014081884A JP 2012230966 A JP2012230966 A JP 2012230966A JP 2012230966 A JP2012230966 A JP 2012230966A JP 2014081884 A JP2014081884 A JP 2014081884A
Authority
JP
Japan
Prior art keywords
write
data
processing unit
write information
disk devices
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
JP2012230966A
Other languages
English (en)
Inventor
Kazuhiro Matsushita
和寛 松下
Kimishige Nakanoya
仁茂 仲野谷
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2012230966A priority Critical patent/JP2014081884A/ja
Publication of JP2014081884A publication Critical patent/JP2014081884A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】OSにエラーが発生した場合、ソフトウェアによるミラーリングを継続する。
【解決手段】計算機システムは、複数台のディスク装置が接続され、データ書込み時に書込みデータに関する書込み情報を取得する書込み情報取得部と、書込み情報に識別情報を付加しRAM上に保存する識別情報付加部と、書込みデータを複数台のディスク装置に書込むミラーリング処理部と、該計算機システムのOSにエラーが発生したときに動作し、ミラーリング処理部の実行を停止するシステム障害処理部と、システム障害処理部から起動される、RAM上のデータを複数台のディスク装置にダンプするダンプ処理部と、ダンプ処理部からの書込み命令に応答して、識別情報を基に書込み情報を検出する書込み情報検出部と、書込み情報検出部が検出した書込み情報に対応して書込みデータを複数のディスク装置に書込むデータ一致化部を具備する。
【選択図】図1

Description

本発明は、システム障害発生に対応する計算機システムに関し、特にシステム障害発生時にもソフトウェアミラーリングの処理を継続する計算機システムに関する。
信頼性や可用性が高く求められる計算機システムでは、従来から、データの冗長性を保つ方法として、ハードディスクなどの記録装置を多重に接続し、同じデータを複数の記録装置に記録(ミラーリング)する方法等がある。ミラーリングの方法としてディスクアレイ装置のような特別なハードウェアを使用せず、ソフトウェアによるミラーリングがある。特にソフトウェアによるミラーリングはハードウェアによるミラーリングより安価に冗長構成を構築できるため、多くのローカルサーバなどで利用され始めている。それに伴い、ハードウェアによるミラーリングに劣っていた機能や性能の差を埋める工夫がなされてきている(例えば特許文献1参照)。
一方、一般のオペレーティングシステム(Operating System、以下、OSと称する)では、ハードウェアの障害やOS自身の論理矛盾やバグを検出し、計算機システムの処理を停止させる場合がある。このような場合、信頼性や可用性が高く求められる計算機システムでは、OS自身の論理矛盾やバグの原因となる障害をすばやく解決することが求められている。この要求に応える機能として、メモリダンプを実施する機能がある。この機能はシステム障害発生時のRAM(Random Access Memory)上のデータを採取し、ハードディスクなどの補助記憶装置にメモリダンプファイルとして保存する。この機能により生成されたメモリダンプファイルには、障害発生時のメモリ内容が保持されているため、このファイルを解析することによりOSで発生していた障害の原因特定を行うことができる。メモリダンプ機能はOSが自身の論理矛盾やバグを認知した場合に動作する他、OSのハングアップが発生した場合等に外部装置からCPUに対してNon−Maskable Interrupt(以下、NMIと称する)を発行することによりメモリダンプ機能を動作させることも可能である。
特開2012−8870号公報
一般的なOS上で動作するソフトウェアとしてミラーリングを行なう場合、OSに動作継続不可能な致命的なエラーが発生すると、ディスクへの書込み処理の最中であってもOSのシステム障害処理部が動作する。システム障害処理部は他の動作に割り込んで動作するため、ミラーリングの処理は中断され、ディスク装置間のデータの整合性を保証できない状態になってしまう。そのためソフトウェアによるミラーリングでは、OSに動作継続不可能な致命的なエラーが発生すると、エラー発生後のOS起動時にはデータの整合性を保証するため、ミラーリングを解除し、縮退動作しなければならないという課題があった。
また、プログラムがハングアップした原因を解析する目的で、サーバーなどに取り付けられているダンプスイッチなどを押下した場合、CPUに対して割込信号が入るため、前述のエラーが発生した場合と同様の状態になってしまう。これによりハードウェアには障害が発生していないにも関わらず、ミラーリングが解除されてしまうという課題もあった。
開示する計算機システムは、複数台のディスク装置が接続され、データ書込み時に書込みデータに関する書込み情報を取得する書込み情報取得部と、書込み情報に識別情報を付加しRAM上に保存する識別情報付加部と、書込みデータを複数台のディスク装置に書込むミラーリング処理部と、該計算機システムのOSにエラーが発生したときに動作し、ミラーリング処理部の実行を停止するシステム障害処理部と、システム障害処理部から起動される、RAM上のデータを複数台のディスク装置にダンプするダンプ処理部と、ダンプ処理部からの書込み命令に応答して、識別情報を基に書込み情報を検出する書込み情報検出部と、書込み情報検出部が検出した書込み情報に対応して書込みデータを複数のディスク装置に書込むデータ一致化部を具備する。
開示する計算機システムの他の態様は、ダンプ処理部の処理完了後に、識別情報を基に書込み情報を検出する書込み情報検出部と、書込み情報検出部が検出した書込み情報に対応して書込みデータを複数のディスク装置に書込むデータ一致化部を具備する。
本発明によれば、OSに動作継続不可能な致命的なエラーが発生した場合、ソフトウェアによるミラーリングであっても縮退動作することなくミラーリングを継続することができる。
計算機システムの構成図である。 通常稼働時の処理を示すフローチャートである。 RAM上のデータの配置を示す構成図である。 システム障害発生時の処理を示すフローチャートである。
本発明の一実施例を図1から図4により説明する。図1は本実施例の計算機システム100の構成図である。
(計算機システムの構成)
計算機システム100は、OSやアプリケーションを動作させるCPU(Central Processing Unit:中央制御ユニット)200と、RAM300、OSやアプリケーションなどのデータが記録されている第1のディスク装置410および第2のディスク装置420(併せて以下、複数のディスク装置と称する)から構成される。複数のディスク装置はディスクアレイ装置のような特別なハードウェアを有することなく接続されており、OS上で動作するソフトウェア(デバイスドライバ)によりミラーリングされている。なお本実施例ではディスク装置は2台となっているが、2台以上のディスク装置であってもよい。
CPU200では、システム障害処理部210、ダンプ処理部220、データ書込み部230が動作する。システム障害処理部210とダンプ処理部220はOSの機能として実装され、データ書込み部230はデバイスドライバとして実装される。データ書込み部230は、更に書込み情報取得部231、識別情報付加部232、書込み情報検出部233、データ一致化部234、ミラーリング処理部235によって構成されており、データ書込み部230により複数のディスク装置への書込みやディスク装置への書込み状態の管理を行なっている。CPU200で動作するプログラムの詳細については、以降で説明する。
RAM300上にはOSの動作に必要なデータの他に、書込み情報取得部231および識別情報付加部232によって生成された、識別情報310と書込み情報320が保存されている。
(通常稼動時の処理の流れ)
次に通常稼動時の処理の流れについて図2のフローチャートを用いて説明する。
データ書込み部230がOSやアプリケーション(以下、上位プログラムと称す)からディスク装置へのデータの書込み命令を受けると、書込み情報取得部231は、書込むデータに関する情報を書込み情報320として取得する(S21)。識別情報付加部232により書込み情報320に識別情報310を付加し(ステップS22)、RAM300上に保存する(S23)。識別情報310は、RAM300上で他に同一の値が見つからないような固有値(例えば固有名詞)などであり、所定の規則に従った値とする。識別情報付加部232が、書込み情報320に識別情報310を付加し、保存するRAM300上の領域はあらかじめ定められた領域であるので、識別情報310はその領域内で同一の値が見つからなければよい。書込み情報320は書込み命令がある度に更新し、RAM300上には常に書込み中または最後に書込みが完了したデータの書込み情報が保存されている。その後、ミラーリング処理部235により複数のディスク装置に同じデータを書込む(ステップS24)。通常稼動時は以上の処理を上位プログラムから書込み命令がある度に行なう。
ここで、識別情報310と書込み情報320の構成例を、図3を用いて詳細に説明する。
RAM300上から書込み情報320を検索するための情報として、識別情報310は書込み情報320の直前に配置する。これにより、RAM300上から書込み情報320の開始位置を特定することができる。書込み情報320は書込むデータのRAM300上の開始アドレス、データサイズ、書込み先のディスク装置のLBA(Logical Block Addressing)番号により構成されている。
書込むデータのRAM300上の開始アドレスではなく、書込むデータをそのままコピーしておいても良いが、アドレスのみを記録することでのRAMのリソースとデータをコピーするための時間を軽減することができる。
ミラーリング処理部235による複数のディスク装置への同じデータの書込みは、第1のディスク装置410の指定されたLBA番号に対応する領域へのデータの書き込み後に、第2のディスク装置420の指定されたLBA番号に対応する領域へデータを書き込む。
以上のようなフォーマットを設定することで書込むデータと書込み先を特定することができる。
(システム障害発生時の処理の流れ)
次にOSに動作継続不可能な致命的なエラーが発生した場合、またはNMIが発行された場合(併せて以下、システム障害発生時と称する)の処理について図4のフローチャートを用いて説明する。
システム障害発生時、OSに備わっているシステム障害処理部210が呼びだされる(ステップS41)。システム障害処理部210は、システム障害発生時に実行中の処理より優先して動作するため、システム障害発生時に実行中の処理は停止される。実行中のミラーリング処理部235もシステム障害発生時には処理が停止される。システム障害処理部210では、システム障害発生時のハードウェアのレジスタ情報などを取得し、RAM300上の所定の領域に書き込み後、ダンプ処理部220を呼び出す(ステップS42)。ダンプ処理部220ではRAM300上のデータを複数のディスク装置の特定の領域にダンプするため、データ書込み部230に順次書込み命令を発行する(ステップS43)。ダンプ処理部220からRAM300上のデータを書き込むよう命令を受けたデータ書込み部230は書込み情報検出部233にて、書込み命令があったデータの中から、通常稼働時に保存してあった識別情報310を検索する(ステップS44)。識別情報310が検出されなかった場合(ステップS45のNO)はダンプ処理部220の指示に従い、複数のディスク装置にダンプデータを書込む(ステップS48)。書込み情報検出部233にて、所定の規則に従った値である識別情報310を検出した場合(ステップS45のYES)、データ一致化部234は識別情報310に付随する書込み情報320から、システム障害発生時に書込み中であったデータと書込み先のアドレスを特定し(ステップS46)、複数のディスク装置の特定したアドレス部分に書込み途中であったデータを書込む(ステップS47)。データ一致化部235によりデータの書込みが終了した後は、複数のディスク装置に記録されているデータは一致している状態となる。次にダンプ処理部220から書込み命令をされていた、識別情報310および書込み情報320を含むデータを今までと同様複数のディスク装置に書込む(ステップS48)。
その後は、ダンプ処理部220からの指示に従い、複数のディスク装置への書込みをダンプが完了するまで継続する(ステップS39)。
以上の処理を行なうことにより、システム障害発生後の再起動時には複数のディスク装置のデータは一致しており、ミラーリングされた状態でシステムの運用を継続することができる。
図4のフローチャートによる処理は、ダンプ処理部220による書込み命令に応答して、データ書込み部230の書込み情報検出部233が書込み命令があったデータの中から、識別情報310を検索し、識別情報を検出したならば、データ一致化部234は書込み途中であったデータを複数のディスク装置の特定したアドレス部分に書込む。言い換えると、データ一致化部234は、システム障害発生に伴って処理を停止したミラーリング処理部235の処理を継続することにより、複数のディスク装置のデータの一致化を図っている。
一方、図4のフローチャートによる処理を次のように変えても良い。ダンプ処理部220による書込み命令(ステップ43)に応答して、データ書込み部230は、識別情報310および書込み情報320を含むダンプデータを複数のディスク装置に書込む(ステップ48)処理をダンプ処理が完了するまで繰り返す(ステップ49)。この後で、書込み情報検出部233が識別情報310を検索する。この検索は、識別情報付加部232が、書込み情報320に識別情報310を付加し、保存する、あらかじめ定められたRAM300上の領域を対象とし、識別情報を検出したならば、データ一致化部234は、書き込み先アドレスを特定し(ステップ46)、書込み途中であったデータを複数のディスク装置の特定したアドレス部分に書込む(ステップ47)。識別情報310を検出できなくなるまで、ステップ46およびステップ47を繰り返すことにより、複数のディスク装置のデータを一致させることができる。
この方法では、ダンプ処理が完了してからデータ一致化部234の処理を実行するので、ダンプ処理後に何らかの原因でRAM300上のデータが消失または破壊されたとしても、複数のディスク装置にはダンプデータとしてRAM300上のデータが存在するので、このダンプデータを対象として、書込み情報検出部233およびデータ一致化部234による処理を実行することにより、複数のディスク装置のデータを一致させることができる。書込み情報検出部233およびデータ一致化部234による処理は、ディスク装置のダンプデータを直接対象にして実行しても良いが、RAM300上にダンプデータを再現して、実行しても良い。このようにダンプデータを対象にして実行する場合は、RAM300上のデータが消失または破壊されていても良いので、システム障害発生後に計算機システムを再起動する際に実行しても複数のディスク装置のデータを一致させることができる。
以上の実施形態によれば、OSに動作継続不可能な致命的なエラーが発生した場合、ソフトウェアによるミラーリングであっても縮退動作することなくミラーリングを継続することができる。
100…計算機システム、200…CPU、210…システム障害処理部、220…ダンプ処理部、230…データ書込み部、231…書込み情報取得部、232…識別情報付加部、233…書込み情報検出部、234…データ一致化部、235…ミラーリング処理部、300…RAM、310…識別情報、320…書込み情報、410…第1のディスク装置、420…第2のディスク装置。

Claims (3)

  1. 複数台のディスク装置が接続された計算機システムであって、データ書込み時に書込みデータに関する書込み情報を取得する書込み情報取得部と、前記書込み情報に識別情報を付加しRAM上に保存する識別情報付加部と、前記書込みデータを前記複数台のディスク装置に書込むミラーリング処理部と、該計算機システムのOSにエラーが発生したときに動作し、前記ミラーリング処理部の実行を停止するシステム障害処理部と、前記システム障害処理部から起動される、前記RAM上のデータを前記複数台のディスク装置にダンプするダンプ処理部と、前記ダンプ処理部からの書込み命令に応答して、前記識別情報を基に前記書込み情報を検出する書込み情報検出部と、前記書込み情報検出部が検出した前記書込み情報に対応して前記書込みデータを前記複数のディスク装置に書込むデータ一致化部を具備することを特徴とする計算機システム。
  2. 複数台のディスク装置が接続された計算機システムであって、データ書込み時に書込みデータに関する書込み情報を取得する書込み情報取得部と、前記書込み情報に識別情報を付加しRAM上に保存する識別情報付加部と、前記書込みデータを前記複数台のディスク装置に書込むミラーリング処理部と、該計算機システムのOSにエラーが発生したときに動作し、前記ミラーリング処理部の実行を停止するシステム障害処理部と、前記システム障害処理部から起動される、前記RAM上のデータを前記複数台のディスク装置にダンプするダンプ処理部と、前記ダンプ処理部の処理完了後に、前記識別情報を基に前記書込み情報を検出する書込み情報検出部と、前記書込み情報検出部が検出した前記書込み情報に対応して前記書込みデータを前記複数のディスク装置に書込むデータ一致化部を具備することを特徴とする計算機システム。
  3. 前記ダンプ処理部の処理完了後の、前記書込み情報検出部と前記データ一致化部の処理は、該計算機システムの再起動時に実行されることを特徴とする請求項2記載の計算機システム。
JP2012230966A 2012-10-18 2012-10-18 計算機システム Pending JP2014081884A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012230966A JP2014081884A (ja) 2012-10-18 2012-10-18 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012230966A JP2014081884A (ja) 2012-10-18 2012-10-18 計算機システム

Publications (1)

Publication Number Publication Date
JP2014081884A true JP2014081884A (ja) 2014-05-08

Family

ID=50785997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012230966A Pending JP2014081884A (ja) 2012-10-18 2012-10-18 計算機システム

Country Status (1)

Country Link
JP (1) JP2014081884A (ja)

Similar Documents

Publication Publication Date Title
TWI554875B (zh) 基於資源存取模式預測、診斷應用程式故障並從應用程式故障恢復
US7716520B2 (en) Multi-CPU computer and method of restarting system
JP2009522664A (ja) メモリ障害を処理するために、センサーネットワークで使用可能な方法及びシステム
JP4535371B2 (ja) ディスクアレイ制御プログラム、方法及び装置
US8555105B2 (en) Fallover policy management in high availability systems
JP5440073B2 (ja) 情報処理装置,情報処理装置の制御方法および制御プログラム
US9959278B1 (en) Method and system for supporting block-level incremental backups of file system volumes using volume pseudo devices
CN115495278B (zh) 异常修复方法、设备及存储介质
WO2014024279A1 (ja) メモリ障害リカバリ装置、方法、及びプログラム
JP2010536112A (ja) 中断された書込みの回復のためのデータ記憶方法、機器およびシステム
US20130110789A1 (en) Method of, and apparatus for, recovering data on a storage system
JP2014081884A (ja) 計算機システム
JP6160688B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
US10592329B2 (en) Method and electronic device for continuing executing procedure being aborted from physical address where error occurs
US9047185B2 (en) Inadvertent freed storage recovery
CN104657227A (zh) 硬盘写操作失败时的处理方法及系统
JP2011018187A (ja) 試験方法、試験プログラム、試験装置、及び試験システム
JP5842655B2 (ja) 情報処理装置、プログラムおよびエラー処理方法
JP6287055B2 (ja) 情報処理装置、情報収集方法および情報収集プログラム
JP2005149248A (ja) メタデータ修復方式,方法および記憶装置ならびにプログラム
JP2008146365A (ja) ストレージシステムの障害回避方法
JP4876662B2 (ja) メモリダンプ機能を備えたコンピュータシステム、プログラム及びメモリダンプの方法
CN109343986B (zh) 处理内存故障的方法与计算机系统
JP7180319B2 (ja) 情報処理装置、及び情報処理装置のダンプ管理方法
JP2005055963A (ja) ボリューム制御方法、この方法を実行するプログラム、及びストレージ装置