JP2014041407A - 情報処理装置、起動プログラム、および起動方法 - Google Patents

情報処理装置、起動プログラム、および起動方法 Download PDF

Info

Publication number
JP2014041407A
JP2014041407A JP2012182120A JP2012182120A JP2014041407A JP 2014041407 A JP2014041407 A JP 2014041407A JP 2012182120 A JP2012182120 A JP 2012182120A JP 2012182120 A JP2012182120 A JP 2012182120A JP 2014041407 A JP2014041407 A JP 2014041407A
Authority
JP
Japan
Prior art keywords
activation
information processing
execution state
processing apparatus
sequence
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.)
Granted
Application number
JP2012182120A
Other languages
English (en)
Other versions
JP5910413B2 (ja
Inventor
Hirosuke Ota
裕助 太田
Hideshi Kobayashi
秀史 小林
Tatsuya Yanagisawa
達也 柳澤
Mihoko Tojo
美帆子 東條
Tsukasa Makino
司 牧野
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 JP2012182120A priority Critical patent/JP5910413B2/ja
Priority to US13/940,300 priority patent/US9195529B2/en
Publication of JP2014041407A publication Critical patent/JP2014041407A/ja
Application granted granted Critical
Publication of JP5910413B2 publication Critical patent/JP5910413B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • 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/079Root cause analysis, i.e. error or fault diagnosis
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures

Abstract

【課題】起動過程の情報を保持しながら、起動失敗の原因を排除した再起動をおこなう。
【解決手段】情報処理装置1は、プログラムの起動を、実行単位となるタスクで管理し、処理ブロック単位でシーケンスごとにタスクを実行する。情報処理装置1は、実行状態管理テーブル3を保持する不揮発性メモリ2を備える。処理ブロックの実行状態は、実行状態管理テーブル3に記録される。制御部9は、情報処理装置1の起動時に、実行状態管理テーブル3の初期化をおこない、実行状態管理テーブル3の実行状態を更新しながらタスクを実行する第1起動処理4を実行する。制御部9は、第1起動処理4による起動に失敗したときに、第2起動処理5による起動をおこない、被疑シーケンス7を特定する。制御部9は、第2起動処理5による起動に失敗したときに、第3起動処理6による起動をおこない、被疑タスク8を特定する。
【選択図】図1

Description

本発明は、情報処理装置、起動プログラム、および起動方法に関する。
情報処理装置は、電源投入から所定のプログラムを起動する起動処理をおこなう。情報処理装置は、起動処理で正常に起動しない異常を検出した場合、リカバリ処理で再起動をおこない自動復旧を試みることがおこなわれる。
こうした起動処理の失敗原因を解析するために、初期化処理過程の状態表示や、ログの記録をおこなう情報処理装置がある。
特開平5−108394号公報
しかしながら、同一箇所で固定的にプログラム異常が発生する状態(0番地アクセスなど)の場合、情報処理装置は、リカバリ処理を繰り返し実行することとなり起動することができない。
そのため、情報処理装置は、起動過程で起動失敗の原因を処置しないと、起動過程の情報を確認することができない。このような情報処理装置は、再起動により起動過程の情報を喪失し、起動失敗の原因追究を困難にしている。
1つの側面では、本発明は、起動過程の情報を保持しながら、起動失敗の原因を排除した再起動が可能な情報処理装置、起動プログラム、および起動方法を提供することを目的とする。
上記目的を達成するために、以下に示すような、情報処理装置が提供される。情報処理装置は、不揮発性メモリと、制御部と、を備える。不揮発性メモリは、タスクごとにシーケンスで分割された処理ブロックの実行状態を記録可能な実行状態管理テーブルを保持する。制御部は、第1起動処理と、第2起動処理と、第3起動処理とをおこなう。第1起動処理は、実行状態管理テーブルを初期化し、処理ブロックごとの実行状態を、実行状態管理テーブルに記録しながら、シーケンスごとにタスクを実行し、情報処理装置を起動する。第2起動処理は、第1起動処理による情報処理装置の起動に失敗した後に、実行状態管理テーブルにもとづいて情報処理装置の起動に失敗した被疑シーケンスを特定し、処理ブロックごとの実行状態を、実行状態管理テーブルに記録しながら、被疑シーケンスでは、タスクごとに処理ブロックを実行し、情報処理装置を起動する。第3起動処理は、第2起動処理による情報処理装置の起動に失敗した後に、実行状態管理テーブルにもとづいて情報処理装置の起動に失敗した被疑タスクを特定し、処理ブロックごとの実行状態を、実行状態管理テーブルに記録し、被疑シーケンス以降の被疑タスクの実行をパスし、情報処理装置を起動する。
また、上記目的を達成するために、情報処理装置を起動する起動プログラム、および起動方法が提供される。起動プログラム、および起動方法は、以下に示すような処理をコンピュータに実行させる。コンピュータは、情報処理装置を起動する第1起動時に、不揮発性メモリにあって、タスクごとにシーケンスで分割された処理ブロックの実行状態を記録可能な実行状態管理テーブルを初期化し、処理ブロックごとの実行状態を、実行状態管理テーブルに記録しながら、シーケンスごとにタスクを実行し、第1起動に失敗した後に情報処理装置を起動する第2起動時に、実行状態管理テーブルにもとづいて第1起動を失敗した被疑シーケンスを特定し、処理ブロックごとの実行状態を、実行状態管理テーブルに記録しながら、被疑シーケンスでは、タスクごとに処理ブロックを実行し、第2起動に失敗した後に情報処理装置を起動する第3起動時に、実行状態管理テーブルにもとづいて第2起動を失敗した被疑タスクを特定し、処理ブロックごとの実行状態を、実行状態管理テーブルに記録し、被疑シーケンス以降の被疑タスクの実行をパスする。
1態様によれば、情報処理装置、起動プログラム、および起動方法において、起動過程の情報を保持しながら、起動失敗の原因を排除した再起動ができる。
第1の実施形態の情報処理装置の構成例を示す図である。 第2の実施形態のストレージ装置のハードウェア構成例を示す図である。 第2の実施形態の本体制御部のハードウェア構成例を示す図である。 第2の実施形態の起動処理のフローチャートである。 第2の実施形態のマシンダウンリカバリ管理テーブルの一例である。 第2の実施形態の電源投入時起動処理のフローチャートである。 第2の実施形態の装置起動シーケンステーブルの一例である。 第2の実施形態の初期化時のシーケンス管理テーブルの一例である。 第2の実施形態の電源投入起動時のシーケンス管理テーブルの一例である。 第2の実施形態の電源投入起動時のシーケンス管理テーブルの一例である。 第2の実施形態の電源投入起動時のシーケンス管理テーブルの一例である。 第2の実施形態の電源投入起動時のシーケンス管理テーブルの一例である。 第2の実施形態のマシンダウンリカバリ起動処理のフローチャートである。 第2の実施形態のマシンダウンリカバリ起動処理のフローチャートである。 第2の実施形態の被疑シーケンス実行処理のフローチャートである。 第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。 第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。 第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。 第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。 第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。 第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。 第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。 第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。 第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。 第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。 第3の実施形態のマシンダウンリカバリ管理テーブルの一例である。
以下、実施の形態を図面を参照して詳細に説明する。
[第1の実施形態]
まず、第1の実施形態の情報処理装置について図1を用いて説明する。図1は、第1の実施形態の情報処理装置の構成例を示す図である。
情報処理装置は、不揮発性メモリと、制御部と、を備える。不揮発性メモリは、タスクごとにシーケンスで分割された処理ブロックの実行状態を記録可能な実行状態管理テーブルを保持する。制御部は、第1起動処理と、第2起動処理と、第3起動処理とをおこなう。第1起動処理は、実行状態管理テーブルを初期化し、処理ブロックごとの実行状態を、実行状態管理テーブルに記録しながら、シーケンスごとにタスクを実行し、情報処理装置を起動する。第2起動処理は、第1起動処理による情報処理装置の起動に失敗した後に、実行状態管理テーブルにもとづいて情報処理装置の起動に失敗した被疑シーケンスを特定し、処理ブロックごとの実行状態を、実行状態管理テーブルに記録しながら、被疑シーケンスでは、タスクごとに処理ブロックを実行し、情報処理装置を起動する。第3起動処理は、第2起動処理による情報処理装置の起動に失敗した後に、実行状態管理テーブルにもとづいて情報処理装置の起動に失敗した被疑タスクを特定し、処理ブロックごとの実行状態を、実行状態管理テーブルに記録し、被疑シーケンス以降の被疑タスクの実行をパスし、情報処理装置を起動する。
情報処理装置1は、起動プログラムにしたがい、所定の起動契機(たとえば、電源投入)から所定のプログラム(サービスプログラム)を起動する起動処理をおこなう。情報処理装置1は、プログラムの起動を、実行単位となるタスクで管理する。タスクは、1以上の処理ブロック単位で、シーケンスごとに実行される。
情報処理装置1は、不揮発性メモリ2と、制御部9と、を備える。不揮発性メモリ2は、タスクごとにシーケンスで分割された処理ブロックの実行状態を記録可能な実行状態管理テーブル3を保持する。不揮発性メモリ2は、情報処理装置1の電源遮断時においても情報を保持可能なメモリであり、たとえば、EEPROM(Electrically Erasable Programmable Read-Only Memory)やフラッシュメモリ、HDD(Hard Disk Drive)などである。
制御部9は、第1起動処理4と、第2起動処理5と、第3起動処理6とを実行する。第1起動処理4は、情報処理装置1の起動時に、実行状態管理テーブル3の初期化をおこなう処理である。制御部9は、第1起動処理4において、実行状態管理テーブル3に記録されている各処理ブロックの実行状態を未だ実行されていない状態(実行前の状態)とする。
制御部9は、第1起動処理4において、シーケンスごとにタスクを実行する。たとえば、タスクa,b,cがあるとき、制御部9は、シーケンス(1)でタスクa,b,cの処理ブロックを同時に実行する。制御部9は、タスクa,b,cの処理ブロックの実行開始時に、各処理ブロックの実行状態を実行中とする。制御部9は、各処理ブロックの実行が終了するごとに、各処理ブロックの実行状態を実行完了とする。制御部9は、シーケンス(1)のすべての処理ブロック(タスクa,b,cの処理ブロック)の実行が終了すると、次のシーケンス(2)の処理ブロックの実行をおこなう。このようにして、制御部9は、処理ブロックごとの実行状態を、実行前、実行中、および実行完了を区別可能にして実行状態管理テーブル3に記録しながら、シーケンスごとにタスクを実行する第1起動処理4を実行する。
制御部9は、第2起動処理5において、第1起動処理4で情報処理装置1の起動に失敗したときに、情報処理装置1の起動をおこなう。制御部9は、第2起動処理5において、実行状態管理テーブル3の初期化を伴わない起動、すなわち、実行状態管理テーブル3の記録状態を保持して起動をおこなう。
制御部9は、第2起動処理5において、実行状態管理テーブル3にもとづいて情報処理装置1の起動に失敗した被疑シーケンス7を特定する。第1起動処理4による起動に失敗した情報処理装置1は、起動失敗時のシーケンスでいくつかの処理ブロックが実行中である。これら処理ブロックの実行状態は、実行状態管理テーブル3に記録されていることから、制御部9は、第2起動処理5において、これら処理ブロックを実行するシーケンスを被疑シーケンス7として特定することができる。
第2起動処理5において制御部9は、被疑シーケンス7に至る前までのシーケンスでは、第1起動処理4と同様にシーケンスごとにタスクを実行する。第2起動処理5において制御部9は、被疑シーケンス7では、タスクごとに処理ブロックを実行する。たとえば、タスクa,b,cがあるとき、制御部9は、シーケンス(3)(被疑シーケンス7)でタスクa,b,cの処理ブロックを1つずつ順次に実行する。制御部9は、タスクaの処理ブロックの実行開始時に、タスクaの処理ブロックの実行状態を実行中とし、タスクaの実行が終了するとタスクaの処理ブロックの実行状態を実行完了とする。制御部9は、以降、同様にして、タスクb,cの処理ブロックを1つずつ順次に実行する。このようにして、制御部9は、処理ブロックごとの実行状態を、実行前、実行中、および実行完了を区別可能にして実行状態管理テーブル3に記録しながら、被疑シーケンス7では、タスクごとに処理ブロックを実行する第2起動処理5を実行する。
制御部9は、第3起動処理6において、第2起動処理5での情報処理装置1の起動に失敗したときに、情報処理装置1の起動をおこなう。制御部9は、第3起動処理6において、実行状態管理テーブル3の初期化を伴わない起動、すなわち、実行状態管理テーブル3の記録状態を保持して起動をおこなう。
第3起動処理6において制御部9は、実行状態管理テーブル3にもとづいて情報処理装置1の起動に失敗した被疑タスク8を特定する。第2起動処理5での起動に失敗した情報処理装置1は、起動失敗時のシーケンスで1つの処理ブロックが実行中である。この処理ブロックの実行状態は、実行状態管理テーブル3に記録されていることから、第3起動処理6において制御部9は、この処理ブロックを実行するタスクを被疑タスク8として特定することができる。
第3起動処理6において制御部9は、被疑シーケンス7以降の被疑タスク8の処理ブロックについて、実行状態管理テーブル3の実行状態を実行をパスする状態(実行不能の状態)とする。被疑シーケンス7以降の被疑タスク8の処理ブロックに、情報処理装置1の起動に失敗した原因があれば、第3起動処理6において制御部9は、被疑シーケンス7以降の被疑タスク8の処理ブロックの実行をパスすることにより情報処理装置1を起動することができる。
このように、情報処理装置1は、不揮発性メモリ2に起動過程の情報を保持しながら、起動失敗の原因を排除して再起動をおこなうことができる。これにより、情報処理装置1は、起動に失敗した原因の特定を容易にすることができる。
なお、情報処理装置1は、第1起動処理4を電源投入時の起動処理とし、第2起動処理5を1回目のマシンリカバリ時の起動処理とし、第3起動処理6を2回目のマシンリカバリ時の起動処理とすることができる。また、情報処理装置1は、第1起動処理4を1回目のマシンリカバリ時の起動処理とし、第2起動処理5を2回目のマシンリカバリ時の起動処理とし、第3起動処理6を3回目のマシンリカバリ時の起動処理とすることもできる。
[第2の実施形態]
次に、第2の実施形態のストレージ装置について図2を用いて説明する。図2は、第2の実施形態のストレージ装置のハードウェア構成例を示す図である。
ストレージ装置20は、データを格納可能なストレージデバイスであり、情報処理装置の1つである。ストレージ装置20は、ホスト11の要求に応じてデータのリード/ライトをおこなう。
ストレージ装置20は、チャネルアダプタ21,25と、ディスクデバイス22と、メインコントローラ26,33と、メインコントローラ監視制御部32を備える。ストレージ装置20は、チャネルアダプタ21,25を介してホストと接続する。チャネルアダプタ21は、メインコントローラ26とホスト11との接続制御をおこなう。チャネルアダプタ25は、メインコントローラ33とホスト11との接続制御をおこなう。
メインコントローラ26,33は、ストレージ制御のメイン制御モジュールであり、ストレージ装置20は、メインコントローラ26とメインコントローラ33によりストレージ制御を冗長化(二重化)している。メインコントローラ監視制御部32は、メインコントローラ26,33の状態監視をおこない、異常を検出したメインコントローラの切り離しをおこなう。
メインコントローラ26は、本体制御部27と、ハード制御部31を備える。本体制御部27は、I/O制御部28と、システム制御部29と、装置起動制御部30を備え、メインコントローラ26の動作制御を担う。ハード制御部31は、図示しないRAM(Random Access Memory)の電源保持や、本体制御部27のリセット制御を担う。
I/O制御部28は、ホスト11の要求に応じてディスクデバイス22とのI/O制御をおこなう。システム制御部29は、ストレージ装置20のシステム制御をおこなう。
装置起動制御部30は、ストレージ装置20の電源投入時やマシンダウンリカバリ時の起動制御をおこなう。装置起動制御部30は、メインコントローラ26,33の間で起動処理を同期させるため、ストレージ装置20を起動するためのプロセスを複数の処理ブロックに分けてシーケンス化したうえで、電源投入時およびマシンダウンリカバリ時の起動処理を実行している。
また、装置起動制御部30は、本体制御部27のI/O制御部28やシステム制御部29、チャネルアダプタ21,25、やディスクデバイス22の制御などをタスク化して、タスクごとに起動処理を管理している。ストレージ装置20の起動プロセスは、シーケンス単位に進行が管理される。装置起動制御部30は、1シーケンスで複数のタスク処理を並行して実行する。
I/O制御部28、システム制御部29、および装置起動制御部30を含む本体制御部27は、カーネル層(制御ファーム向けOS(Operating System))上で動作する。
ディスクデバイス22は、ディスク制御部23と、1以上のディスク24を備え、ディスク24のI/O制御をおこなう。ディスク制御部23は、ディスク24のインタフェース制御をおこなう。ディスク24は、たとえば、HDDであり、複数台でRAID(Redundant Array of Inexpensive Disks)を構成する。
なお、メインコントローラ33もメインコントローラ26と同様の構成であるため、メインコントローラ26の説明に代えて図示を省略するとともに説明を省略する。
次に、第2の実施形態の本体制御部27のハードウェア構成について図3を用いて説明する。図3は、第2の実施形態の本体制御部のハードウェア構成例を示す図である。
本体制御部27は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス106を介してRAM102と複数の周辺機器が接続されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM102は、本体制御部27の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOSのプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データ(たとえば、システム制御の情報管理)が格納される。また、RAM102は、ホスト11からのI/Oデータを格納するキャッシュ領域として使用される。
バス106に接続されている周辺機器としては、不揮発性メモリ103、入出力インタフェース104、およびネットワークインタフェース105がある。
不揮発性メモリ103は、ストレージ装置20の電源遮断から電源投入の間、あるいはリセットの前後で記憶内容を保持する。不揮発性メモリ103は、たとえば、EEPROMやフラッシュメモリなどの半導体記憶装置や、HDDなどである。不揮発性メモリ103は、起動制御に用いる情報を記憶保持する。また、不揮発性メモリ103は、本体制御部27の補助記憶装置として使用される。不揮発性メモリ103には、OSのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
入出力インタフェース104は、所要の入出力装置と接続して入出力をおこなう。入出力インタフェース104は、たとえば、他の制御部や、本体制御部27と接続するキーボードやマウスから送られてくる信号をプロセッサ101に送信する。また、入出力インタフェース104は、たとえば、プロセッサ101から受信した信号を、他の制御部や、本体制御部27と接続する表示器やスピーカに出力する。
ネットワークインタフェース105は、ネットワーク107に接続可能にしている。ネットワークインタフェース105は、ネットワーク107と接続することで、ネットワーク107を介して、他のコンピュータまたは通信機器との間でデータの送受信をおこなう。
なお、本体制御部27は、必要に応じてグラフィック処理装置、光学ドライブ装置、および機器接続インタフェースを備えるようにしてもよい。
グラフィック処理装置は、モニタを接続して、プロセッサ101からの命令に従って、画像を表示することができる。モニタとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
光学ドライブ装置は、レーザ光などを利用して、光ディスクに記録されたデータの読み取りをおこなうことができる。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェースは、本体制御部27に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェースには、メモリ装置やメモリリーダライタを接続することができる。メモリ装置は、機器接続インタフェースとの通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなう装置である。メモリカードは、カード型の記録媒体である。
以上のようなハードウェア構成によって、第2の実施形態の本体制御部27の処理機能を実現することができる。なお、第1の実施形態に示した情報処理装置1も、図3に示した本体制御部27と同様のハードウェアにより実現することができる。
また、第2の実施形態に示す他の制御部(I/O制御部28、システム制御部29、および装置起動制御部30)は、本体制御部27と共通のハードウェア上に実装するものであるが、個別のハードウェア上に実装するものであってもよい。その場合、他の制御部は、本体制御部27と同様のハードウェアにより実現することができる。
本体制御部27は、たとえば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施形態の処理機能を実現する。本体制御部27に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、本体制御部27に実行させるプログラムを不揮発性メモリ103に格納しておくことができる。プロセッサ101は、不揮発性メモリ103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。また、本体制御部27に実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ101からの制御により、不揮発性メモリ103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
次に、第2の実施形態の装置起動制御部30が実行する起動処理について図4、図5を用いて説明する。図4は、第2の実施形態の起動処理のフローチャートである。図5は、第2の実施形態のマシンダウンリカバリ管理テーブルの一例である。
起動処理は、ストレージ装置20の起動を制御する処理である。起動処理は、電源投入による起動時またはマシンリカバリによる起動時に、装置起動制御部30により実行される。
[ステップS11]装置起動制御部30は、ストレージ装置20の起動状態を判定する。ストレージ装置20の起動状態は、電源投入状態(P_ON)と、マシンダウンリカバリ状態(S3状態)とがある。S3状態は、省電力規格「ACPI(Advanced Configuration and Power Interface)」で規定されている「スタンバイ状態」である。S3状態は、消費電力の抑制モードであり、メモリに対して電力を供給するものの、ディスクデバイス22、その他のデバイスの電源をオフにする。
電源投入状態は、電源投入からのストレージ装置20の起動状態であり、マシンダウンリカバリ状態は、マシンダウンからのストレージ装置20の起動状態である。マシンダウンとは、ストレージ装置20の運用が維持できない状態を示す。たとえば、メインコントローラ26が本体制御部27や構成部品等の異常を生じ、正常に起動できない状態をいう。
ストレージ装置20は、メインコントローラ26,33によって冗長化されているので、同時故障により冗長性を維持できない状態をマシンダウンとする。メインコントローラ監視制御部32が2つのメインコントローラ26,33のハード制御部31の状態(S3状態)をチェックし、マシンリカバリの可否を判断する。装置起動制御部30は、メインコントローラ監視制御部32の判断からストレージ装置20の起動状態を判定することができる。
なお、各メインコントローラ26,33の電源投入状態およびマシンダウンリカバリ状態の検出は、ハード制御部31に問い合わせることでおこなうことができる。ハード制御部31は、本体制御部27で発生した異常を認識したカーネル層から、異常発生の通知を受ける。ハード制御部31は、データの保護を目的として、メモリ(たとえば、RAM102)に供給する電源を保持して、メインコントローラ26がマシンダウンリカバリ状態であることをハード制御部31内のメモリ(たとえば、RAM)に記録する。メインコントローラ33についても各メインコントローラ26と同様である。
これにより、装置起動制御部30は、ストレージ装置20の起動状態を判定することができる。装置起動制御部30は、ストレージ装置20の起動状態が電源投入状態である場合にステップS12にすすみ、ストレージ装置20の起動状態がマシンダウンリカバリ状態である場合にステップS13にすすむ。
[ステップS12]装置起動制御部30は、電源投入時起動処理を実行する。電源投入時起動処理は、電源投入状態における起動処理である。ストレージ装置20は、電源投入時起動処理の実行により正常に起動した場合に正常な稼働をおこなうことが可能な「Ready」状態となり、異常を検出(Panic検出)して正常に起動しなかった場合に「S3状態」となる。電源投入時起動処理の詳細は、図6を用いて後で説明する。
[ステップS13]装置起動制御部30は、マシンダウンリカバリ管理テーブル50が記憶するマシンダウンリカバリの実行回数を1インクリメントする。マシンダウンリカバリ管理テーブル50は、不揮発性メモリ103に保持され、マシンダウンリカバリ(マシンダウンリカバリ起動処理)の実行回数を記憶する。マシンダウンリカバリ管理テーブル50は、電源投入時起動処理の中で初期値1に初期化される。装置起動制御部30は、マシンダウンリカバリ管理テーブル50を参照することにより、マシンダウンリカバリの実行回数を把握できる。
[ステップS14]装置起動制御部30は、マシンダウンリカバリ起動処理を実行する。マシンダウンリカバリ起動処理は、マシンダウンリカバリ状態における起動処理である。
装置起動制御部30は、メインコントローラ26のハード制御部に対してリセット指示をおこないリブートさせる。このとき、カーネル層はマシンダウンからのリカバリ起動であることを本体制御部27が認識できるように固有のブートモードを見せる機構をもつ。メインコントローラ33についても各メインコントローラ26と同様である。
ストレージ装置20は、マシンダウンリカバリ起動処理の実行により異常を検出しなかった場合に機能を限定して起動する「Not Ready」状態となり、異常を検出(Panic検出)した場合に「S3状態」となる。マシンダウンリカバリ起動処理の詳細は、図8を用いて後で説明する。
次に、第2の実施形態の装置起動制御部30が実行する電源投入時起動処理について図6から図12を用いて説明する。図6は、第2の実施形態の電源投入時起動処理のフローチャートである。図7は、第2の実施形態の装置起動シーケンステーブルの一例である。図8は、第2の実施形態の初期化時のシーケンス管理テーブルの一例である。図9から図12は、第2の実施形態の電源投入起動時のシーケンス管理テーブルの一例である。
電源投入時起動処理は、ストレージ装置20の電源投入起動時の起動を制御する処理である。電源投入時起動処理は、起動処理のステップS12で、装置起動制御部30により実行される。
[ステップS21]装置起動制御部30は、シーケンス管理テーブル52を含む所要の情報を初期化する。装置起動制御部30は、シーケンス管理テーブル52の他に、たとえば、マシンダウンリカバリ管理テーブル50を「0」に、シーケンス番号を「0」にする。
ここで、図7を用いて装置起動シーケンステーブル51について説明する。装置起動制御部30は、装置起動シーケンステーブル51にしたがい、ストレージ装置20の起動をおこなう。装置起動シーケンステーブル51は、電源投入時起動処理において実行するタスクごとの処理ブロックの実行手順をシーケンス順に記録する。
たとえば、装置起動シーケンステーブル51aは、シーケンス(0)からシーケンス(5)の6ステップで、タスク1からタスク4の各処理ブロックの実行手順を記録する。装置起動シーケンステーブル51aによれば、装置起動制御部30は、シーケンス(0)で、タスク1−0(タスク1の処理ブロック)、タスク2−0、およびタスク3−0を実行する。装置起動制御部30は、タスク4がシーケンス(0)において「処理なし」のため、タスク4を実行しない。装置起動制御部30は、シーケンス(0)のすべての処理ブロックの実行が終了すると、シーケンス(1)の処理ブロックの実行をおこなう。装置起動制御部30は、以降、同様にしてシーケンス(5)の処理ブロックの実行を終了すると、装置起動シーケンスの完了となる。
装置起動制御部30は、装置起動シーケンステーブル51にしたがいシーケンス管理テーブル52を初期化する。たとえば、装置起動制御部30は、装置起動シーケンステーブル51aにしたがい初期化することで、シーケンス管理テーブル52a(図8参照)を得る。装置起動シーケンステーブル51aにおいて「処理なし」とされている処理ブロックは、シーケンス管理テーブル52aにおいて「実行不要」が記録される。また、装置起動シーケンステーブル51aにおいて処理ブロック名(たとえば、タスク1−0)が記録されている処理ブロックは、シーケンス管理テーブル52aにおいて「実行未」が記録される。「実行不要」は、該当シーケンスにおいて該当タスクの処理ブロックの実行を要しないことを意味する。また、「実行未」は、該当シーケンスにおいて該当タスクの処理ブロックが未だ実行されていないことを意味する。
[ステップS22]装置起動制御部30は、シーケンス番号を参照し、シーケンス管理テーブル52に記録する。
[ステップS23]装置起動制御部30は、シーケンス管理テーブル52に記録されているシーケンス番号に対応するすべての処理ブロックについて、実行状態を「実行未」から「実行中」に更新する。
たとえば、シーケンス管理テーブル52aに記録されているシーケンス番号が「0」であれば、装置起動制御部30は、シーケンス(0)のタスク1、タスク2、およびタスク3の実行状態を「実行未」から「実行中」に更新する。なお、装置起動制御部30は、シーケンス(0)のタスク4については、「実行不要」のため更新をおこなわない。これにより、装置起動制御部30は、シーケンス管理テーブル52b(図9参照)を得る。
[ステップS24]装置起動制御部30は、実行状態を「実行中」に更新した処理ブロックを実行する。このとき、装置起動制御部30は、各処理ブロックを並行して実行する。
[ステップS25]装置起動制御部30は、実行中の処理ブロックの異常検出をおこなう。装置起動制御部30は、実行中の処理ブロックで異常を検出しない場合にステップS26にすすみ、実行中の処理ブロックで異常を検出した場合に「S3状態」となる。
[ステップS26]装置起動制御部30は、正常に終了した処理ブロックについて、実行状態を「実行中」から「実行済」に更新する。
たとえば、装置起動制御部30は、シーケンス(0)のタスク1、タスク2、およびタスク3の実行を正常に終了したのであれば、これら処理ブロックの実行状態を「実行中」から「実行済」に更新する。なお、装置起動制御部30は、シーケンス(0)のタスク4については、「実行不要」のため更新をおこなわない。これにより、装置起動制御部30は、シーケンス管理テーブル52c(図10参照)を得る。
[ステップS27]装置起動制御部30は、実行対象とした処理ブロックの実行状態を監視する。装置起動制御部30は、実行対象としたすべての処理ブロックの実行が終了したか否かを判定する。装置起動制御部30は、実行対象としたすべての処理ブロックの実行が終了した場合にステップS28にすすみ、実行対象としたすべての処理ブロックの実行が終了していない場合にステップS25にすすむ。
[ステップS28]装置起動制御部30は、シーケンス番号を1インクリメントして更新する。
[ステップS29]装置起動制御部30は、実行可能なシーケンスが終了しているか否かを判定し、終了していない場合にはステップS22にすすみ、終了している場合には、「Ready」状態となる。
たとえば、装置起動制御部30は、シーケンス(0)を正常に終了したのであれば、次に、シーケンス(1)を実行し、ステップS23の2回目の実行で、シーケンス管理テーブル52d(図11参照)を得る。このようにして、装置起動制御部30は、シーケンス(0)からシーケンス(5)までを正常に終了すると、シーケンス管理テーブル52e(図12参照)を得る。
このように、装置起動制御部30は、シーケンス管理テーブル52に、処理ブロックの実行状態を記録するので、電源投入時起動処理の実行中に異常が生じても「S3状態」となり、シーケンス管理テーブル52を参照可能にする。
次に、第2の実施形態の装置起動制御部30が実行するマシンダウンリカバリ起動処理について図13、図14を用いて説明する。図13、図14は、第2の実施形態のマシンダウンリカバリ起動処理のフローチャートである。
マシンダウンリカバリ起動処理は、ストレージ装置20のマシンダウンリカバリ時の起動を制御する処理である。マシンダウンリカバリ起動処理は、起動処理のステップS14で、装置起動制御部30により実行される。
[ステップS31]装置起動制御部30は、シーケンス管理テーブル52からマシンダウンの原因となった処理ブロックの実行時のシーケンスを被疑シーケンスとして特定する。シーケンス管理テーブル52は、電源投入時起動処理におけるマシンダウン時の処理ブロックの実行状態を「実行中」として記録している。これにより、装置起動制御部30は、シーケンス管理テーブル52を参照することで、実行状態が「実行中」の処理ブロックを含むシーケンスを、被疑シーケンスとして特定することができる。
[ステップS32]装置起動制御部30は、シーケンス管理テーブル52から被疑シーケンスに含まれるタスクの処理ブロックの実行状態をすべて取得する。
[ステップS33]装置起動制御部30は、実行状態が「実行中」の処理ブロックについて実行状態を「再実行未」に更新する。「再実行未」とは、被疑タスク候補として、処理ブロックを再実行対象とする実行状態である。
[ステップS34]装置起動制御部30は、実行状態が「再実行中」の処理ブロックの有無を判定する。装置起動制御部30は、実行状態が「再実行中」の処理ブロックがある場合にステップS35にすすみ、実行状態が「再実行中」の処理ブロックがない場合にステップS36にすすむ。
[ステップS35]装置起動制御部30は、実行状態が「再実行中」の処理ブロックおよび該当するタスクの以降の処理ブロックについて実行状態を「実行不能」に更新する。「実行不能」とは、処理ブロックを実行対象外とする実行状態である。
[ステップS36]装置起動制御部30は、シーケンス管理テーブル52のすべての処理ブロックについて、実行状態が「実行済」である場合に実行状態を「実行未」に更新する。
[ステップS37]装置起動制御部30は、シーケンス番号を「0」に初期化する。
[ステップS38]装置起動制御部30は、シーケンス番号を参照し、シーケンス管理テーブル52に記録する。
[ステップS39]装置起動制御部30は、シーケンス番号により特定されるシーケンスが被疑シーケンスであるか否かを判定する。装置起動制御部30は、被疑シーケンスである場合にステップS40にすすみ、被疑シーケンスでない場合にステップS41にすすむ。
[ステップS40]装置起動制御部30は、被疑シーケンス実行処理を実行する。被疑シーケンス実行処理は、マシンダウンの原因となった被疑シーケンスの処理ブロックを実行する処理である。被疑シーケンス実行処理の詳細は、図15を用いて後で説明する。
[ステップS41]装置起動制御部30は、シーケンス番号により特定されるシーケンスで実行対象とするタスクの処理ブロックを選択する。
[ステップS42]装置起動制御部30は、選択した処理ブロックのうち、実行状態が「実行不能」の処理ブロックを実行対象から除外する。
[ステップS43]装置起動制御部30は、選択した処理ブロックの実行状態を「実行未」から「実行中」に更新する。
[ステップS44]装置起動制御部30は、実行状態を「実行中」に更新した処理ブロックを実行する。このとき、装置起動制御部30は、各処理ブロックを並行して実行する。
[ステップS45]装置起動制御部30は、正常に終了した処理ブロックについて、実行状態を「実行中」から「実行済」に更新する。
[ステップS46]装置起動制御部30は、実行対象とした処理ブロックの実行状態を監視する。装置起動制御部30は、実行対象としたすべての処理ブロックの実行が終了したか否かを判定する。装置起動制御部30は、実行対象としたすべての処理ブロックの実行が終了した場合にステップS47にすすみ、実行対象としたすべての処理ブロックの実行が終了していない場合にステップS45にすすむ。
[ステップS47]装置起動制御部30は、シーケンス番号を1インクリメントして更新する。
[ステップS48]装置起動制御部30は、実行可能なシーケンスが終了しているか否かを判定し、終了していない場合にはステップS38にすすみ、終了している場合には、「Not Ready」状態となる。
次に、第2の実施形態の装置起動制御部30が実行する被疑シーケンス実行処理について図15を用いて説明する。図15は、第2の実施形態の被疑シーケンス実行処理のフローチャートである。
被疑シーケンス実行処理は、ストレージ装置20のマシンダウンリカバリ時の起動を制御する処理である。被疑シーケンス実行処理は、マシンダウンの原因となった被疑シーケンスの処理ブロックを実行する処理であり、マシンダウンリカバリ起動処理のステップS40で、装置起動制御部30により実行される。
[ステップS51]装置起動制御部30は、被疑シーケンスで実行対象とするタスクの処理ブロックを1つ選択する。被疑シーケンス実行処理では、被疑タスクを特定するため、実行対象となる処理ブロックを1つ選択する。
[ステップS52]装置起動制御部30は、選択した処理ブロックの実行状態が「実行不能」であるか否かを判定する。装置起動制御部30は、選択した処理ブロックの実行状態が「実行不能」である場合にステップS59にすすみ、選択した処理ブロックの実行状態が「実行不能」でない場合にステップS53にすすむ。
[ステップS53]装置起動制御部30は、選択した処理ブロックの実行状態が「再実行未」であるか否かを判定する。装置起動制御部30は、選択した処理ブロックの実行状態が「再実行未」である場合にステップS54にすすみ、選択した処理ブロックの実行状態が「再実行未」でない場合、すなわち「実行未」である場合にステップS55にすすむ。
[ステップS54]装置起動制御部30は、選択した処理ブロックの実行状態を「再実行未」から「再実行中」に更新する。
[ステップS55]装置起動制御部30は、選択した処理ブロックの実行状態を「実行未」から「実行中」に更新する。
[ステップS56]装置起動制御部30は、実行状態を「再実行中」または「実行中」に更新した処理ブロックを実行する。このとき、装置起動制御部30は、処理ブロックを1つずつ実行する。これにより、装置起動制御部30は、マシンダウンの原因となる処理ブロックを特定可能にする。
[ステップS57]装置起動制御部30は、実行中の処理ブロックの異常検出をおこなう。装置起動制御部30は、実行中の処理ブロックで異常を検出しない場合にステップS58にすすみ、実行中の処理ブロックで異常を検出した場合に「S3状態」となる。
[ステップS58]装置起動制御部30は、正常に終了した処理ブロックについて、実行状態を「実行中」から「実行済」に更新する。
[ステップS59]装置起動制御部30は、実行対象とするタスクの処理ブロックのすべてについて選択したか否かを判定する。装置起動制御部30は、実行対象とするタスクの処理ブロックのすべてについて選択していない場合にステップS51にすすみ、選択している場合に被疑シーケンス実行処理を終了する。
これにより、装置起動制御部30は、1回目のマシンダウンリカバリ起動処理の実行により、被疑シーケンスを特定することができ、2回目のマシンダウンリカバリ起動で被疑タスク(被疑処理ブロック)を特定することができる。装置起動制御部30は、被疑タスクが複数ある場合には、3回目以降のマシンダウンリカバリ起動で、被疑タスクを1つずつ特定することができる。装置起動制御部30は、被疑タスクを1つずつ実行対象から除外することで、「Not Ready」状態での起動をおこなうことができる。装置起動制御部30は、マシンダウンの原因となった処理ブロックを特定可能なシーケンス管理テーブル52を不揮発性メモリ103に保持することができる。
次に、マシンダウン発生時の起動処理実行過程を、図16から図23を用いたシーケンス管理テーブルの更新過程によって説明する。図16から図23は、第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。
ここで説明するマシンダウンは、シーケンス(1)でタスク3の処理ブロックを実行中に生じたものとする。
1回目のマシンダウンリカバリ処理の実行開始時に、不揮発性メモリ103は、シーケンス管理テーブル52f(図16参照)を保持する。シーケンス管理テーブル52fのシーケンス(1)のタスク3とタスク4に実行状態が「実行中」の処理ブロックがあることから、装置起動制御部30は、1回目のマシンダウンリカバリ処理でシーケンス(1)を被疑タスクであると特定することができる。
装置起動制御部30は、実行状態が「実行中」の処理ブロックの実行状態を「再実行未」に更新し、実行状態が「再実行済」の処理ブロックの実行状態を「実行未」に更新する。これにより、装置起動制御部30は、シーケンス管理テーブル52g(図17参照)を得る。
装置起動制御部30は、処理ブロックの実行状態が「実行不要」のタスク4を除いて、シーケンス(0)の処理ブロック(タスク1、タスク2、タスク3)を実行対象として、実行対象の処理ブロックの実行状態を「実行中」に更新する。装置起動制御部30は、シーケンス(0)で実行対象とした処理ブロックを並行して実行する。これにより、装置起動制御部30は、シーケンス管理テーブル52h(図18参照)を得る。
装置起動制御部30は、シーケンス(0)で実行対象とした処理ブロックの実行後に、シーケンス(0)で実行対象とした処理ブロックの実行状態を「実行済」に更新する。装置起動制御部30は、実行シーケンスをシーケンス(0)からシーケンス(1)にすすめる。装置起動制御部30は、被疑シーケンスであるシーケンス(1)では、処理ブロックを1つずつ実行する。たとえば、装置起動制御部30は、タスク1から、タスク2(実行状態「実行不要」であるため実行しない)、タスク3、タスク4の順に処理ブロックを実行する。シーケンス管理テーブル52i(図19参照)は、タスク1の実行状態が「実行済」、タスク3の実行状態が「再実行中」であることを示す。
ここで、シーケンス(1)でタスク3の処理ブロックの実行により、マシンダウンが発生する。したがって、シーケンス管理テーブル52iは、2回目のマシンダウンリカバリ処理の実行開始時に、不揮発性メモリ103に保持されている。
シーケンス管理テーブル52iのシーケンス(1)のタスク3の処理ブロックの実行状態が「再実行中」であることから、装置起動制御部30は、2回目のマシンダウンリカバリ処理でシーケンス(1)のタスク3が被疑タスクであると特定することができる。
装置起動制御部30は、タスク3のシーケンス(1)以降の処理ブロックについて、実行状態を「実行不能」に更新し、実行状態が「再実行済」の処理ブロックの実行状態を「実行未」に更新する。これにより、装置起動制御部30は、シーケンス管理テーブル52j(図20参照)を得る。なお、タスク3のシーケンス(1)以降の処理ブロックは、実行状態が「実行不能」に更新されたことにより実行されない。
装置起動制御部30は、マシンダウンの原因となった被疑タスクを特定することができたが、未だシーケンス(1)のタスク4の処理ブロックの実行状態が「再実行未」であるため、1回目のマシンダウンリカバリ処理と同様にして、処理をすすめる。シーケンス管理テーブル52k(図21参照)は、シーケンス(1)において、もう1つの被疑タスク候補であるタスク4の処理ブロックの実行前を示す。
ここで、もう1つの被疑タスク候補であるタスク4の処理ブロックが正常に実行が終了した場合、装置起動制御部30は、被疑タスク候補であるタスク4の処理ブロックの実行状態を「実行済」に更新する。これにより、装置起動制御部30は、シーケンス管理テーブル52m(図22参照)を得る。以降、装置起動制御部30は、マシンダウンすることなく、「Not Ready」状態での起動をおこなうことができる。
このとき、不揮発性メモリ103は、シーケンス管理テーブル52n(図23参照)を保持する。シーケンス管理テーブル52nのタスク3がシーケンス(1)以降の処理ブロックの実行状態が「実行不能」であることから、マシンダウンの原因が、シーケンス(1)のタスク3の処理ブロックにあることがわかる。
次に、もう1つのマシンダウン発生時の起動処理実行過程を、図24、図25を用いたシーケンス管理テーブルの更新過程によって説明する。図24、図25は、第2の実施形態のマシンダウン発生時のシーケンス管理テーブルの一例である。
ここで説明するマシンダウンは、シーケンス(1)でタスク3の処理ブロックあるいはタスク4の処理ブロックを実行中に生じたものとする。
シーケンス管理テーブル52k(図21参照)が示す状態までのシーケンス管理テーブル52の更新過程は、上記したマシンダウン発生時の起動処理実行過程と同様のため、説明を省略する。
装置起動制御部30は、シーケンス(0)で実行対象とした処理ブロックの実行後に、シーケンス(0)で実行対象とした処理ブロックの実行状態を「実行済」に更新する。装置起動制御部30は、実行シーケンスをシーケンス(0)からシーケンス(1)にすすめる。装置起動制御部30は、被疑シーケンスであるシーケンス(1)では、処理ブロックを1つずつ実行する。たとえば、装置起動制御部30は、タスク1から、タスク2(実行状態「実行不要」であるため実行しない)、タスク3(実行状態「実行不能」であるため実行しない)、タスク4の順に処理ブロックを実行する。シーケンス管理テーブル52p(図24参照)は、タスク1の実行状態が「実行済」、タスク4の実行状態が「再実行中」であることを示す。
ここで、シーケンス(1)でタスク4の処理ブロックの実行により、マシンダウンが発生する。したがって、シーケンス管理テーブル52pは、3回目のマシンダウンリカバリ処理の実行開始時に、不揮発性メモリ103に保持されている。
以降、装置起動制御部30は、2回目のマシンダウンリカバリ処理と同様の3回目のマシンダウンリカバリ処理を実行し、「Not Ready」状態での起動をおこなうことができる。
このとき、不揮発性メモリ103は、シーケンス管理テーブル52q(図25参照)を保持する。シーケンス管理テーブル52qのタスク3およびタスク4がシーケンス(1)以降の処理ブロックの実行状態が「実行不能」であることから、マシンダウンの原因が、シーケンス(1)のタスク3およびタスク4の処理ブロックにあることがわかる。
このように、シーケンス管理テーブル52は、マシンダウンの原因が複数あっても、記録を保持することが可能である。これにより、ストレージ装置20は、マシンダウンの原因を除去して起動することができる。また、ストレージ装置20は、起動時の処理状況(起動過程の情報)を保持して起動するため、異常原因の究明を容易にすることができる。
[第3の実施形態]
次に、第3の実施形態のストレージ装置20について図26を用いて説明する。図26は、第3の実施形態のマシンダウンリカバリ管理テーブルの一例である。
第2の実施形態において、装置起動制御部30は、装置起動シーケンステーブル51aにしたがい、ストレージ装置20の電源投入時起動とマシンダウンリカバリ起動とをおこなっていた。第3の実施形態では、ストレージ装置20のマシンダウンリカバリ起動で、一部処理ブロックをスキップする点で第2の実施形態と相違する。
マシンダウンリカバリ起動は、一旦、電源投入時起動を経ていることなどから、一部の処理ブロックをスキップして起動した方がよい場合がある。そのため、装置起動制御部30は、マシンダウンリカバリ起動の開始時(たとえば、ステップS31の前後)で、スキップ対象とする処理ブロックに、装置起動シーケンステーブル51bのように、スキップフラグを設定する。具体的には、装置起動シーケンステーブル51bは、タスク2−2(シーケンス(2)のタスク2の処理ブロック)およびタスク3−4(シーケンス(4)のタスク3の処理ブロック)にスキップフラグ(スキップ=1)を設定する。
これにより、装置起動制御部30は、装置起動シーケンステーブル51bを参照し、シーケンス管理テーブル52の該当シーケンスの該当タスクの処理ブロックの実行状態を「実行不要」に更新することで、対象とする処理ブロックをスキップすることができる。
これにより、装置起動制御部30は、ストレージ装置20の運用状態からの再起動/データ保護の優先を、マシンダウンリカバリ起動に反映することができる。
なお、スキップフラグの設定は、あらかじめおこなうものであってもよい。たとえば、スキップ設定の異なる装置起動シーケンステーブル51をあらかじめ複数種類用意して、マシンダウンリカバリ起動時の環境条件(たとえば、把握可能なマシンダウンの原因)にしたがい、装置起動シーケンステーブル51を選択することができる。
以上、ストレージ装置20を例示して説明したが、その他の情報処理装置においても適用可能である。
なお、装置起動制御部30は、正常な起動時の起動過程のログから装置起動シーケンステーブル51を生成するようにしてもよい。これにより、シーケンス数やタスク数などの起動条件が固定されていない情報処理装置にも本技術が適用可能になる。
また、シーケンス管理テーブル52の初期化処理を電源投入時起動処理でおこなうようにしたが、マシンダウンリカバリ起動処理の1回目でおこなうようにしてもよい。この場合、装置起動制御部30は、2回目のマシンダウンリカバリ起動処理で被疑シーケンスを特定することができる。装置起動制御部30は、マシンダウンリカバリ管理テーブル50によって、マシンダウンリカバリ起動処理の起動回数を把握することができる。
なお、電源投入時起動処理でシーケンス管理テーブル52の初期化処理をおこなう場合、電源投入時起動処理が第1の実施形態の第1起動処理4に相当する。また、マシンダウンリカバリ起動処理の1回目でシーケンス管理テーブル52の初期化処理をおこなう場合、1回目のマシンダウンリカバリ起動処理が第1の実施形態の第1起動処理4に相当する。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置1、ストレージ装置20(本体制御部27、I/O制御部28、システム制御部29、装置起動制御部30、ハード制御部31、およびディスク制御部23等)が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP、ASIC、PLDなどの電子回路で実現することもできる。
1 情報処理装置
2,103 不揮発性メモリ
3 実行状態管理テーブル
4 第1起動処理
5 第2起動処理
6 第3起動処理
7 被疑シーケンス
8 被疑タスク
9 制御部
11 ホスト
20 ストレージ装置
21,25 チャネルアダプタ
22 ディスクデバイス
23 ディスク制御部
24 ディスク
26,33 メインコントローラ
27 本体制御部
28 I/O制御部
29 システム制御部
30 装置起動制御部
31 ハード制御部
32 メインコントローラ監視制御部
50 マシンダウンリカバリ管理テーブル
51 装置起動シーケンステーブル
52 シーケンス管理テーブル
101 プロセッサ
102 RAM
104 入出力インタフェース
105 ネットワークインタフェース
106 バス
107 ネットワーク

Claims (11)

  1. タスクごとにシーケンスで分割された処理ブロックの実行状態を記録可能な実行状態管理テーブルを保持する不揮発性メモリと、
    前記実行状態管理テーブルを初期化し、前記処理ブロックごとの実行状態を、前記実行状態管理テーブルに記録しながら、前記シーケンスごとに前記タスクを実行し、情報処理装置を起動する第1起動処理と、
    前記第1起動処理による前記情報処理装置の起動に失敗した後に、前記実行状態管理テーブルにもとづいて前記情報処理装置の起動に失敗した被疑シーケンスを特定し、前記処理ブロックごとの実行状態を、前記実行状態管理テーブルに記録しながら、前記被疑シーケンスでは、前記タスクごとに前記処理ブロックを実行し、前記情報処理装置を起動する第2起動処理と、
    前記第2起動処理による前記情報処理装置の起動に失敗した後に、前記実行状態管理テーブルにもとづいて前記情報処理装置の起動に失敗した被疑タスクを特定し、前記処理ブロックごとの実行状態を前記実行状態管理テーブルに記録し、前記被疑シーケンス以降の前記被疑タスクの実行をパスし、前記情報処理装置を起動する第3起動処理と、をおこなう制御部と、
    を備えることを特徴とする情報処理装置。
  2. 前記制御部は、前記第2起動処理による前記情報処理装置の起動時に、
    前記被疑シーケンスで前記処理ブロックを実行中の前記タスクを被疑タスク候補として、前記被疑タスクの実行状態と、前記被疑タスク候補の実行状態とを区別可能にして前記実行状態管理テーブルに記録する、
    ことを特徴とする請求項1記載の情報処理装置。
  3. 前記制御部は、前記被疑タスクにおける、前記第2起動処理による前記情報処理装置の起動を失敗した前記被疑シーケンス以降の処理ブロックを実行対象外とする、
    ことを特徴とする請求項2記載の情報処理装置。
  4. 前記制御部は、前記第3起動処理による前記情報処理装置の起動に失敗した場合、再度、前記第3起動処理をおこなう、
    ことを特徴とする請求項3記載の情報処理装置。
  5. 前記制御部は、あらかじめ設定する、前記タスクごとの処理ブロックの実行手順にもとづいて前記実行状態管理テーブルを初期化する、
    ことを特徴とする請求項1乃至4のいずれか1項記載の情報処理装置。
  6. 前記第1起動処理による前記情報処理装置の起動は、電源投入検出にもとづく前記情報処理装置の起動であり、前記第2起動処理による前記情報処理装置の起動および前記第3起動処理による前記情報処理装置の起動は、マシンリカバリにもとづく前記情報処理装置の起動である、
    ことを特徴とする請求項1乃至4のいずれか1項記載の情報処理装置。
  7. 前記第1起動処理、前記第2起動処理および前記第3起動処理による前記情報処理装置の起動は、マシンリカバリにもとづく前記情報処理装置の起動である、
    ことを特徴とする請求項1乃至4のいずれか1項記載の情報処理装置。
  8. 前記制御部は、マシンリカバリにもとづく前記情報処理装置の起動で、前記処理ブロックの一部をスキップする、
    ことを特徴とする請求項1乃至4のいずれか1項記載の情報処理装置。
  9. 前記制御部は、
    前記第1起動処理および前記第2起動処理において、前記処理ブロックごとの実行状態を、実行前、実行中、および実行完了を区別可能にして前記実行状態管理テーブルに記録し、
    前記第3起動処理において、前記処理ブロックごとの実行状態を、前記情報処理装置の起動に失敗した被疑処理ブロックを特定可能にして前記実行状態管理テーブルに記録する、
    ことを特徴とする請求項1乃至4のいずれか1項記載の情報処理装置。
  10. 情報処理装置を起動する起動プログラムであって、
    コンピュータに、
    前記情報処理装置を起動する第1起動時に、不揮発性メモリにあって、タスクごとにシーケンスで分割された処理ブロックの実行状態を記録可能な実行状態管理テーブルを初期化し、
    前記処理ブロックごとの実行状態を前記実行状態管理テーブルに記録しながら、前記シーケンスごとに前記タスクを実行し、
    前記第1起動に失敗した後に前記情報処理装置を起動する第2起動時に、前記実行状態管理テーブルにもとづいて前記第1起動を失敗した被疑シーケンスを特定し、
    前記処理ブロックごとの実行状態を前記実行状態管理テーブルに記録しながら、前記被疑シーケンスでは、前記タスクごとに前記処理ブロックを実行し、
    前記第2起動に失敗した後に前記情報処理装置を起動する第3起動時に、前記実行状態管理テーブルにもとづいて前記第2起動を失敗した被疑タスクを特定し、前記処理ブロックごとの実行状態を前記実行状態管理テーブルに記録し、前記被疑シーケンス以降の前記被疑タスクの実行をパスする、
    処理を実行させる、
    ことを特徴とする起動プログラム。
  11. 情報処理装置を起動する起動方法であって、
    コンピュータが、
    前記情報処理装置を起動する第1起動時に、不揮発性メモリにあって、タスクごとにシーケンスで分割された処理ブロックの実行状態を記録可能な実行状態管理テーブルを初期化し、
    前記処理ブロックごとの実行状態を前記実行状態管理テーブルに記録しながら、前記シーケンスごとに前記タスクを実行し、
    前記第1起動に失敗した後に前記情報処理装置を起動する第2起動時に、前記実行状態管理テーブルにもとづいて前記第1起動を失敗した被疑シーケンスを特定し、
    前記処理ブロックごとの実行状態を前記実行状態管理テーブルに記録しながら、前記被疑シーケンスでは、前記タスクごとに前記処理ブロックを実行し、
    前記第2起動に失敗した後に前記情報処理装置を起動する第3起動時に、前記実行状態管理テーブルにもとづいて前記第2起動を失敗した被疑タスクを特定し、前記処理ブロックごとの実行状態を前記実行状態管理テーブルに記録し、前記被疑シーケンス以降の前記被疑タスクの実行をパスする、
    ことを特徴とする起動方法。
JP2012182120A 2012-08-21 2012-08-21 情報処理装置、起動プログラム、および起動方法 Active JP5910413B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012182120A JP5910413B2 (ja) 2012-08-21 2012-08-21 情報処理装置、起動プログラム、および起動方法
US13/940,300 US9195529B2 (en) 2012-08-21 2013-07-12 Information processing apparatus and activation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012182120A JP5910413B2 (ja) 2012-08-21 2012-08-21 情報処理装置、起動プログラム、および起動方法

Publications (2)

Publication Number Publication Date
JP2014041407A true JP2014041407A (ja) 2014-03-06
JP5910413B2 JP5910413B2 (ja) 2016-04-27

Family

ID=50149101

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012182120A Active JP5910413B2 (ja) 2012-08-21 2012-08-21 情報処理装置、起動プログラム、および起動方法

Country Status (2)

Country Link
US (1) US9195529B2 (ja)
JP (1) JP5910413B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013254303A (ja) * 2012-06-06 2013-12-19 Sony Corp 情報処理装置、情報処理方法およびプログラム
JP2015146102A (ja) * 2014-02-03 2015-08-13 株式会社ワコム センサコントローラ、センサコントローラを備えたセンサデバイス、センサデバイスが搭載された電子機器およびアプリケーションソフトウェアの復旧方法
CN107766227A (zh) * 2016-08-19 2018-03-06 阿里巴巴集团控股有限公司 一种用于远程测试的方法与设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393559B1 (en) * 1999-04-30 2002-05-21 Dell Usa, L.P. Method and computer for self-healing BIOS initialization code
JP2002215429A (ja) * 2001-01-18 2002-08-02 Toshiba Tec Corp サービスプログラム起動監視プログラム及びこのプログラムを記録したコンピュータ読取り可能な記録媒体並びにサービスプログラム起動監視装置
JP2012058879A (ja) * 2010-09-07 2012-03-22 Toshiba Corp オペレーティングシステム起動管理装置
JP2012108724A (ja) * 2010-11-17 2012-06-07 Nec Access Technica Ltd 情報処理装置および情報処理装置の履歴出力方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62245340A (ja) 1986-04-18 1987-10-26 Furukawa Electric Co Ltd:The 電子制御装置の異常検知方法
US5323444A (en) * 1991-08-16 1994-06-21 U S West Advanced Technologies, Inc. Emergency call system with call capacity/last chance routing feature
JPH05108394A (ja) 1991-10-18 1993-04-30 Fujitsu Ltd 計算機システムの初期化診断方式
US6182188B1 (en) * 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US7421478B1 (en) * 2002-03-07 2008-09-02 Cisco Technology, Inc. Method and apparatus for exchanging heartbeat messages and configuration information between nodes operating in a master-slave configuration
US7330894B2 (en) * 2002-04-19 2008-02-12 International Business Machines Corporation System and method for preventing timeout of a client
GB2412190B (en) * 2004-03-17 2007-03-28 Ibm A recovery framework
US20060112061A1 (en) * 2004-06-24 2006-05-25 Masurkar Vijay B Rule based engines for diagnosing grid-based computing systems
US8230491B2 (en) * 2005-08-19 2012-07-24 Opnet Technologies, Inc. Automatic access to network devices using various authentication schemes
US7130222B1 (en) * 2005-09-26 2006-10-31 Macronix International Co., Ltd. Nonvolatile memory with program while program verify
US20080256445A1 (en) * 2007-02-05 2008-10-16 Olch Ronald H System and method for automated aids for activities of daily living
WO2009096181A2 (en) * 2008-01-30 2009-08-06 Panasonic Corporation Secure boot with optional components method
JP5593856B2 (ja) * 2010-06-02 2014-09-24 富士通株式会社 情報処理装置およびドライバ実行制御方法
JP4829367B1 (ja) * 2010-06-09 2011-12-07 株式会社東芝 状態表示制御装置、方法、及び状態表示制御システム
US8560887B2 (en) * 2010-12-09 2013-10-15 International Business Machines Corporation Adding scalability and fault tolerance to generic finite state machine frameworks for use in automated incident management of cloud computing infrastructures
JP4875222B2 (ja) 2011-09-27 2012-02-15 株式会社東芝 サーバ装置及び起動制御方法及び情報処理装置
WO2014059256A1 (en) * 2012-10-12 2014-04-17 Kludy Thomas M Performing reboot cycles, a reboot schedule on on-demand rebooting
US20140181582A1 (en) * 2012-12-21 2014-06-26 Unisys Corporation Automatic retry for position identifiers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393559B1 (en) * 1999-04-30 2002-05-21 Dell Usa, L.P. Method and computer for self-healing BIOS initialization code
JP2002215429A (ja) * 2001-01-18 2002-08-02 Toshiba Tec Corp サービスプログラム起動監視プログラム及びこのプログラムを記録したコンピュータ読取り可能な記録媒体並びにサービスプログラム起動監視装置
JP2012058879A (ja) * 2010-09-07 2012-03-22 Toshiba Corp オペレーティングシステム起動管理装置
JP2012108724A (ja) * 2010-11-17 2012-06-07 Nec Access Technica Ltd 情報処理装置および情報処理装置の履歴出力方法

Also Published As

Publication number Publication date
JP5910413B2 (ja) 2016-04-27
US9195529B2 (en) 2015-11-24
US20140059335A1 (en) 2014-02-27

Similar Documents

Publication Publication Date Title
US10067835B2 (en) System reset
US8762648B2 (en) Storage system, control apparatus and control method therefor
KR100389206B1 (ko) 컴퓨터 운영 시스템 보호 방법 및 장치
RU2568280C2 (ru) Быстрый запуск компьютера
JP4467624B2 (ja) ソフトウェアアップデート管理プログラム、ソフトウェアアップデート管理装置、およびソフトウェアアップデート管理方法
JP5575338B2 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
US10068015B2 (en) Monitoring a monitoring-target process
JP2010086181A (ja) 仮想計算機システム及びその管理方法、プログラム並びに記録媒体
US20130061090A1 (en) Partial rebooting recovery apparatus and method
US20120102358A1 (en) Server having memory dump function and memory dump acquisition method
CN111090546B (zh) 一种操作系统重启方法、装置、设备及可读存储介质
JP5910413B2 (ja) 情報処理装置、起動プログラム、および起動方法
JP4836732B2 (ja) 情報処理装置
US10296218B2 (en) Update control method, update control apparatus, and storage medium
JP6802484B2 (ja) ストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法
JP2013061841A (ja) 情報処理装置および情報処理装置の試験方法
WO2014024279A1 (ja) メモリ障害リカバリ装置、方法、及びプログラム
US20160004607A1 (en) Information processing apparatus and information processing method
JP2014127193A (ja) 情報処理装置、及び記憶情報解析方法
TW202223655A (zh) 可自我監視及恢復作業系統運作的電腦系統及方法
JP2004054616A (ja) ファームウェア自動修復機能を有する情報処理装置
US20240012572A1 (en) Operationalization of memories using memory information sets
JP2017062697A (ja) 情報処理装置、情報処理システム、情報処理方法およびプログラム
JP2017084207A (ja) 情報処理装置及びその診断方法、並びにコンピュータ・プログラム
WO2014045453A1 (ja) 環境変数保存方法、情報処理装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160314

R150 Certificate of patent or registration of utility model

Ref document number: 5910413

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150