JP2013073258A - ストレージ装置及びストレージ装置のプログラムデータ復旧方法 - Google Patents

ストレージ装置及びストレージ装置のプログラムデータ復旧方法 Download PDF

Info

Publication number
JP2013073258A
JP2013073258A JP2011209616A JP2011209616A JP2013073258A JP 2013073258 A JP2013073258 A JP 2013073258A JP 2011209616 A JP2011209616 A JP 2011209616A JP 2011209616 A JP2011209616 A JP 2011209616A JP 2013073258 A JP2013073258 A JP 2013073258A
Authority
JP
Japan
Prior art keywords
controller
data
unit
management unit
program data
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.)
Withdrawn
Application number
JP2011209616A
Other languages
English (en)
Inventor
Naganori Fukuyama
長憲 福山
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2011209616A priority Critical patent/JP2013073258A/ja
Publication of JP2013073258A publication Critical patent/JP2013073258A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】安価にプログラムムデータを冗長化すると共に、自動的かつ安全に故障したプログラムデータを復旧すること。
【解決手段】CPU11は、管理部17が起動時の処理失敗を確認した場合、管理部17からコントローラ20内の管理部27へアクセスし、セレクタ18,19を介してコントローラ20内のBIOS ROM26からBIOSデータを読み出す。そして、CPU11は、この読み出したBIOSデータと、起動時に用いたBIOSデータとが一致するか否かを判定し、両BIOSデータが一致しないと判定した場合、読み出したBIOSデータをBIOS ROM16に上書きし、この上書きしたBIOSデータを用いて再起動を行なう。
【選択図】図1

Description

本発明は、ストレージ装置及びストレージ装置のプログラムデータ復旧方法に関する。
近年、ストレージ装置、例えば、ストレージ装置のコントローラに搭載されるCPUやチップセット、その他のデバイスが高度化しており、これにより、コントローラのプログラムデータ、例えばBIOS(Basic Input/Output System)データはより複雑になる傾向にある。そのため出荷後に、製品の安定性や機能の向上を図るため、クライアントが使用する環境でBIOSデータの書き換えを行う機会が増えてきている。この際、BIOSデータの書き換え途中に予期しないトラブルが発生し、ROM内のBIOSデータが破損し、コントローラが起動不能になる可能性がある。
従来は、コントローラが起動不能になった場合に、そのコントローラを他の新たなコントローラに交換する手段が取られていた。しかし、これでは作業者の手間及び時間がかかるため、ストレージ装置においてもBIOSデータを予め冗長化しておくことが求められるようになった。
そこで、BIOSデータを冗長化する技術として、同一コントローラ内にBIOSを有するフラッシュROMを設け、管理結果に基づいて、フラッシュROMを選択することにより、使用するBIOSデータを切り替える技術が提案されている(例えば、特許文献1参照)。
また、他の技術として、大容量のBIOS ROMを用いて、当該BIOS ROMの記憶領域をメイン用及びバックアップ用などの領域に分けて、複数のBIOSデータを予め格納する技術が提案されている。
また更に、他の技術として、BIOS ROM内をコントローラの起動に最低限必要なブートブロックとそれ以外の機能を実現するメインブロックに区切り、ブートブロックについては書き換え不能にし、メインブロックについて書き換え可能にし、当該メインブロックにBIOSデータを格納することにより、安全に復旧を行なう技術が提案されている。
特開2003−316582号公報
上記のBIOSを冗長化する技術のうち、先の2つの技術については、同一コントローラ内に複数のBIOSフラッシュROMを設ける必要があり、又は、大容量のBIOS ROMを設ける必要があるためコストアップになるというデメリットがあった。
また、最後の技術については、データを安全に復旧することは可能になるが、メインブロック内のBIOSデータが破損した場合は、ブートブロックのみで起動し、その際手作業で外部メディアからメインブロックのデータを復旧する作業が必要になるなど特別な手間が必要であり、コストアップに繋がる。
したがって、上記技術のいずれの場合でも、BIOS ROM内のデータが破損した場合に自動で復旧を行うためには、何らかの方法でコントローラが起動できないことを検出し、当該検出結果に基づいて、BIOS ROMを切り替えや領域の切り替え、又はメインブロックのデータの復旧を行う仕組みが必要であった。
本発明は、上記事情に鑑みてなされたものであり、その目的は、プログラムデータの冗長化を安価に行なうと共に、自動的かつ安全に破損したプログラムデータを復旧することができるストレージ装置及びストレージ装置のプログラムデータ復旧方法を提供することにある。
本発明は、同一構成のコントローラを少なくとも1ペア含むストレージ装置であって、前記コントローラは、制御部と、ハードウェアとの入出力を制御するプログラムデータを記憶するデータ記憶部と、前記データ記憶部に記憶するプログラムデータを用いた起動時の処理を管理する管理部と、前記管理部から他の前記コントローラ内の管理部へ所定のアクセスがあった場合のみ当該他のコントローラ内のデータ記憶部との通信を許可する通信部と、を備え、前記制御部は、前記管理部が起動時の処理失敗を確認した場合、前記管理部から他の前記コントローラ内の管理部へのアクセスし、前記通信部を介して前記他のコントローラ内のデータ記憶部からプログラムデータを読み出すデータ読み出し手段と、前記データ読み出し手段で読み出したプログラムデータと、前記起動時に用いたプログラムデータとが一致するか否かを判定する判定手段と、前記判定手段で両プログラムデータが一致しないと判定した場合、前記データ読み出し手段で読み出したプログラムデータを前記データ記憶部に上書きする上書き手段と、前記上書き手段で前記データ記憶部に上書きしたプログラムデータを用いて再起動を行なう再起動手段と、を有することを特徴とする。
他の本発明は、同一構成のコントローラを少なくとも1ペア含むストレージ装置のプログラムデータ復旧方法であって、前記コントローラは、制御部と、ハードウェアとの入出力を制御するプログラムデータを記憶するデータ記憶部と、前記データ記憶部に記憶するプログラムデータを用いた起動時の処理を管理する管理部と、前記管理部から他の前記コントローラ内の管理部へ所定のアクセスがあった場合のみ当該他のコントローラ内のデータ記憶部との通信を許可する通信部と、を備え、前記制御部は、前記管理部が起動時の処理失敗を確認した場合、前記管理部から他の前記コントローラ内の管理部へのアクセスし、前記通信部を介して前記他のコントローラ内のデータ記憶部からプログラムデータを読み出すステップと、前記読み出したプログラムデータと、前記起動時に用いたプログラムデータとが一致するか否かを判定するステップと、両プログラムデータが一致しないと判定した場合、前記読み出したプログラムデータを前記データ記憶部に上書きするステップと、前記上書き手段で前記データ記憶部に上書きしたプログラムデータを用いて再起動を行なうステップと、を有することを特徴とする。
本発明によると、プログラムデータの冗長化を安価に行なうと共に、自動的かつ安全に破損したプログラムデータを復旧することができるストレージ装置及びストレージ装置のプログラムデータ復旧方法を提供できる。
本発明の実施の形態に係るストレージ装置の構成を示す図である。 同実施の形態に係るセレクタの経路切替条件を示す図である。 同実施の形態に係るセレクタの経路切替条件を示す図である。 同実施の形態に係るセレクタの経路切替条件を示す図である。 同実施の形態に係るセレクタの経路切替条件を示す図である。 同実施の形態に係るBIOSの復旧処理を示すフローチャートである。 同実施の形態に係るBIOSの復旧処理を示すフローチャートである。 同実施の形態に係るBIOSの復旧処理を示すフローチャートである。 同実施の形態に係るBIOSの復旧処理を示すフローチャートである。 同実施の形態に係るBIOSの復旧処理を示すフローチャートである。 上記ストレージ装置のセレクタに係る構成の変形例を示す図である。 同実施の形態に係るセレクタの経路切替条件を示す図である。 同実施の形態に係るセレクタの経路切替条件を示す図である。
以下、本発明の実施の形態について図面を参照して説明する。
図1は、ストレージ装置であるストレージサブシステム3の構成を示す図である。同図に示すように、ストレージサブシステム3は、コントローラ10、コントローラ20、及びディスクエンクロージャ30を有している。また、コントローラ10は、ホスト1及びホスト2と通信可能に接続されており、コントローラ20はホスト1及びホスト2と通信可能に接続されている。
コントローラ10は、ストレージサブシステム3の各種制御を行うコントローラであり、制御部であるCPU11、チップセット12、メモリ13、ホストI/F(Interface)14、ディスクI/F(Interface)15、データ記憶部であるBIOS ROM16、管理部17、セレクタ18及びセレクタ19を有している。
また、コントローラ20は、コントローラ10と同様に、ストレージサブシステム3の各種制御を行うコントローラであり、CPU21、チップセット22、メモリ23、ホストI/F24、ディスクI/F25、BIOS ROM26、管理部27、セレクタ28及びセレクタ29を有している。
更に、コントローラ10及び20間においては、セレクタ18とセレクタ29とが接続可能に構成され、セレクタ19とセレクタ28とが接続可能に構成されている。これらセレクタ18とセレクタ29,セレクタ19とセレクタ28とがどのような場合に接続されるかについては後述する。また、管理部17と管理部27とが通信可能に接続されている。このように、ストレージサブシステム3は、コントローラ10及び20間で通信可能となるように構成されている。
次に、ストレージサブシステム3に含まれるコントローラ10,20及びディスクエンクロージャ30について詳細に説明する。なお、コントローラ20は、コントローラ10と同一な構成をしているため、以下では、コントローラ10の構成について詳細に説明し、コントローラ20の構成についての詳細な説明は省略する。
CPU11は、中央制御装置であり、復旧プログラム11aを有している。この復旧プログラム11aは、BIOSの復旧処理を行うためのプログラムであり、CPU11は復旧プログラム11aを実行することにより、BIOS ROM16に保存されたBIOSデータの復旧を行なうことが可能になっている。このBIOSデータの復旧処理については後述する。
また、CPU11はチップセット12を介して、制御信号S00を用いてセレクタ18の制御を行う。さらに、CPU11はチップセット12及び管理部17を介してコントローラ20の管理部27に対して制御信号T10を送信し、間接的にセレクタ29の制御を行うことが可能になっている。
チップセット12は、CPU11と組み合わせてI/O(Input/Output)機能等を提供する。チップセット12はCPU11とDMI(Direct Media Interface)又はESI(Enterprise Southbridge Interface)等の専用インターフェースで接続され、管理部17とLPC(Low Pin Count)インターフェースで接続される。チップセット12は、更に、制御信号S00によりセレクタ18を制御する。
メモリ13は、DRAM(Dynamic Random Access Memory)等のメモリデバイスで構成され、CPU11とDDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)、DDR2 SDRAM、DDR3 SDRAM等のメモリインターフェース規格で接続される。メモリ13は、ホスト1,2又はディスクエンクロージャ30からのデータの授受を行なう際のキャッシュメモリとして使用されると共に後述するBIOSデータの復旧処理を行なう場合には、BIOSデータの保存場所としても使用される。
ホストI/F14は、CPU11とPCI Express等のインターフェースで接続され、また、ホスト1,2とファイバチャネルやiSCSI(Internet Small Computer System Interface)等のインターフェースで接続される。ホストI/F14は、ホスト1,2とCPU11との間でのデータの授受等に使用される。
ディスクI/F15は、CPU11とPCI Express等のインターフェースで接続され、また、ディスクエンクロージャ30とSAS(Serial Attached SCSI)又はSATA(Serial Advanced Technology Attachment)等のインターフェースで接続される。ディスクI/F15は、CPU11とディスクエンクロージャ30との間でのデータの授受等に使用される。
BIOS ROM16は、ハードウェアとの入出力を制御するプログラムデータを記憶するROMであり、より詳細には、コントローラ10の起動に必要なBIOSデータが格納されている書き換え可能な不揮発性メモリデバイスである。BIOS ROM16は、経路Z00、セレクタ19、経路Y00、セレクタ18及び経路X00を経由して、チップセット12とSPI(Serial Peripheral Interface)等のインターフェースで接続される。なお、BIOS ROM16内のBIOSデータがなんらかの理由で破損した場合、コントローラ10は起動できなくなる。
セレクタ18は、コントローラ20内のBIOS ROM26との間の経路の切り替えを行う。より詳細には、セレクタ18はチップセット12とSPI等の経路X00で接続され、セレクタ19とSPI等の経路Y00で接続され、コントローラ20内のセレクタ29とSPI等の経路Y01で接続される。また、セレクタ18は、チップセット12から送信される制御信号S00に基づいて、経路を経路Y00及び経路Y01のいずれかに切り替えるようになっている。
セレクタ19は、セレクタ18とSPI等の経路Y00で接続され、BIOS ROM16とSPI等の経路Z00で接続され、コントローラ20内のセレクタ28とSPI等の経路Y11で接続されている。また、セレクタ19は、管理部17から送信される制御信号T00に基づいて、経路を経路Z00及び経路Y11のいずれかに切り替えるようになっている。
なお、既述の制御信号S00、制御信号T00(コントローラ20では、制御信号S10、制御信号T10に相当する。)は、「True」と「False」のいずれかの論理状態をとるように構成されている。制御信号S00,T00(制御信号S10,T10)はいずれもコントローラ10(コントローラ20)の起動後の初期状態は「False」の状態をとるように構成されている。
管理部17は、チップセット12とLPCインターフェース等で接続され、コントローラ20の管理部27とI2C(Inter-Integrated Circuit)インターフェース等で接続される。また、管理部17は、ントローラ20内の管理部27から管理部17から送信される送制御信号T00をセレクタ19へ送信できるようになっている。
管理部17は、コントローラ10内の他の制御部(又は回路)とは独立して動作し、BIOS ROM16に保存するBIOSデータを用いた起動時の処理等を管理する。より詳細には、管理部17は、コントローラ10の起動指示、起動失敗等の故障管理、発生したイベント及び各種エラーに関する情報の登録、並びに制御信号T00を用いたセレクタ19の切替制御を行う。例えば、管理部は、BMC(Baseboard Management Controller)である。
また、管理部17は、カウンタ17aを有している。カウンタ17aは、コントローラ10が再起動を行なった回数を示すカウント値を記憶する。
上述のコントローラ10とコントローラ20とは、ペア(冗長構成)となっており、一方が故障もしくは取り外された状態でも、他方のコントローラでストレージサブシステム3の制御を続行することができるようになっている。
ディスクエンクロージャ30は、複数のHDD(Hard Disk Drive)又はSSD(Solid State Drive)等の不揮発性記憶デバイスを搭載し、これら不揮発性記憶デバイスを制御する。本実施の形態においては、図1に示すように、HDD31a,HDD31b,・・・,HDD31nがディスクエンクロージャ30内に搭載されている。
次に、セレクタ18,19,28及び29の経路切替条件について図2から図5を参照して説明する。
図2に示すように、セレクタ18は、制御信号S00が「False」の場合、経路X00と経路Y00とを接続し、制御信号S00が「True」の場合、経路X00と経路Y01と接続するように経路を切り替える。
また、図3に示すように、セレクタ19は、制御信号T00が「False」の場合、経路Y00と経路Z00とを接続し、制御信号T00が「True」の場合、経路Y11と経路Z00とを接続するように経路を切り替える。
更に、図4に示すように、セレクタ28は、制御信号S10が「False」の場合、経路X10と経路Y10とを接続し、制御信号S10が「True」の場合、経路X10と経路Y11とを接続するように経路を切り替える。
更にまた、図5に示すように、セレクタ29は、制御信号T10が「False」の場合、経路Y10と経路Z10とを接続し、制御信号T10が「True」の場合、経路Y01と経路Z10とを接続するように経路を切り替える。
次に、何らかの理由によりコントローラ10のBIOS ROM16内に保存しているBIOSデータが破損した場合に、コントローラ10が起動処理を行なったときに、当該破損したBIOSデータを復旧し、復旧したBIOSデータに基づいてコントローラ10が再起動する処理について図6から図10を参照して説明する。
管理部17は、BIOSデータが破損しているため、コントローラ10の起動失敗を検出する(S101)。起動失敗の検出方法は、例えば、管理部17内にウォッチドッグタイマー(Watch Dog Timer)を設け、管理部17が起動前にこのウォッチドッグタイマーを0からスタートさせ、起動成功時にCPU11がこのウォッチドッグタイマーをクリアするという仕組みを予め用意し、このウォッチドッグタイマーが規定時間を超えタイムアウトした場合に起動失敗と判断する方法等によって容易に実現できる。
管理部17は、コントローラ10の起動失敗を検出した後、カウンタ17aのカウント値が所定値(規定回数)を超えているか否かを判定する(S102:カウンタ値判定手段)。所定値は、例えば、ストレージサブシステム3の保守者等が予め任意の値を設定しておけば良い。所定値を超えていると判定した場合(S102:YES)、管理部17は、後述するコントローラ10の交換を要求する処理(図10参照)を実行する。
一方、規定回数を超えていないと判定した場合(S102:NO)、管理部17は、コントローラ20の管理部27へ起動失敗を通知し(S103)、CPU11へBIOSデータ復旧処理の開始を指示する(S104)。
当該指示を受け付けると、CPU11は、BIOS ROM16内のBIOSデータを読み出し、メモリ13へ保存し(S105)、制御信号S00の状態を初期状態の「False」から「True」へ変更し(S106)、管理部17を介してコントローラ20の管理部(他の管理部)27へ制御信号T10を「False」から「True」へ変更するための指示を送信する(S107)。これにより、CPU11がチップセット12、セレクタ18、コントローラ20内のセレクタ29を介してコントローラ20内のBIOS ROM26からBIOSデータを読み出せるようになる。
このように、ストレージサブシステム3は、管理部17から他のコントローラ20内の管理部27へ所定のアクセスがあった場合のみ、CPU11は、当該他のコントローラ20内のBIOS ROM26との通信が許可され、BIOS ROM26からBIOSデータを読み出せるようになっている。このようなセレクタ18,29の動作等により通信部が構成される。
次に、CPU11は、コントローラ20内のBIOS ROM26からBIOSデータを読み出し、メモリ13に保存し(S108:読み出し手段)、当該メモリ13に保存したBIOSデータと、既述のステップS105においてメモリ13に保存したBIOSデータとが一致するか否かを判定する(S109:判定手段)。
両BIOSデータが一致していると判定した場合(S109:YES)、コントローラ10の起動失敗の原因はBIOSデータの破損ではないことを意味するため、CPU11は、当該判定結果に応じて後述する処理(図8参照)を実行する。
一方、両BIOSデータが一致していないと判定した場合(S109:NO)、CPU11はBIOS ROM16内のBIOSデータが破損していることを示す情報を管理部17に登録する(S110)。
次に、CPU11は、既述のステップS105においてメモリ13に保存したコントローラ20のBIOS ROM26から読み出したBIOSデータをBIOS ROM16上書きする(S111:上書き手段)。
次に、CPU11は、BIOS ROM16からBIOSデータを読み出し(S112)、当該読み出したBIOSデータと、既述のステップS105においてメモリ13に保存したコントローラ20のBIOS ROM26から読み出したBIOSデータとが一致するか否かを判定する(S113)。これにより、BIOS ROM16に上書きしたBIOSデータのベリファイを行なうことができる。
両BIOSデータが一致していないと判定した場合(S113:NO)、BIOSデータの復旧ができないことを示すため、CPU11は、後述するコントローラ10の交換を要求する処理(図9参照)を実行する。
一方、両BIOSデータが一致していると判定した場合(S113:YES)、CPU11は、BIOS ROM16内のBIOSデータが正常に復旧したことを示す情報を管理部17に登録する(S114)。
次に、CPU11は、管理部17を介してコントローラ20の管理部27へ、制御信号T10を「True」から「False」へ変更する指示を送信し(S115)、制御信号S00を「True」から「False」へ変更し(S116)、メモリ13に保存しているBIOS ROM26から読み出したBIOSデータを消去する(S117)。
次に、CPU11は、BIOSデータの復旧が完了したことを管理部17へ通知する(S118)。このCPU11からの通知を受けて管理部17は、BIOSデータの復旧が完了したことをコントローラ20の管理部27へ通知する(S119)。
次に、管理部17は、カウンタ17aをインクリメントし(S120)、コントローラ10の再起動を行ない(S121:再起動手段)、コントローラ10の再起動が実行でき、正常起動できたか否かを判定する(S122)。再起動が正常にできなかったと判定した場合(S122:NO)、処理は既述したステップS101へ進み、当該ステップS101からの処理が繰り返される。
一方、正常起動できたと判定した場合(S122:YES)、CPU11は、管理部17へカウンタ17aをクリアする指示を送信し(S123)、処理が終了する。このようにBIOS ROM16のBIOSデータの復旧が行なわれ、コントローラ10の再起動が行なわれる。
次に、既述のステップS109において、両BIOSデータが一致していると判定した場合(S109:YES)の処理について図8を参照しながら説明する。
図8に示すように、CPU11は、BIOS ROM16のBIOSデータは正常であることを示す情報を管理部17に登録する(S301)。
次に、CPU11は、管理部17を介してコントローラ20の管理部27へ制御信号T10を「True」から「False」へ変更する指示を送信し(S302)、制御信号S00を「True」から「False」へ変更する(S303)。
次に、CPU11は、メモリ13に保存しているコントローラ20内のBIOS ROMか26ら読み出したBIOSデータを消去する(S304)。
次に、CPU11は、コントローラ10が起動しない場合に、他の復旧手段が設けられている場合、当該復旧手段を実行し(S305)、処理を終了する。なお、他の復旧手段が予めストレージサブシステム3に設けられていない場合、ステップS305の処理は行なわずにこの処理が終了する。
次に、既述のステップS113において、両BIOSデータが一致していないと判定した場合(S113:NO)の処理について図9を参照しながら説明する。
図9に示すように、CPU11は、BIOS ROM16のBIOSデータの復旧が失敗したことを示す情報を管理部17に登録する(S401)。
次に、CPU11は、管理部17を介してコントローラ20の管理部27へ制御信号T10を「True」から「False」へ変更する指示を送信し(S402)、制御信号S00を「True」から「False」へ変更する(S403)。
次に、CPU11は、メモリ13に保存しているコントローラ20のBIOS ROM26から読み出したBIOSデータを消去する(S404)。
上記ステップS401において、BIOSデータの復旧が失敗したことを示す情報が管理部17に登録された場合、この登録情報が、例えば管理ネットワークに接続された保守端末装置(図示を省略する。)を介して保守員によって確認され、当該保守員によってコントローラ10、は正常動作する新たなコントローラに交換される。このようにコントローラが交換された後、当該交換されたコントローラによって起動処理が行なわれる。これにより、処理が終了する。
次に、既述のステップS102において、所定値を超えていると判定した場合(S102:YES)の処理について図10を参照しながら説明する。
図10に示すように、CPU11は、BIOS ROM16のBIOSデータの復旧回数が所定値を超えたことを示す情報を管理部17に登録する(S501)。
上記ステップS501において、BIOS ROM16のBIOSデータの復旧回数が所定値を超えたことを示す情報が管理部17に登録された場合、この登録情報が、図9を参照して説明した場合と同様に、例えば管理ネットワークに接続された保守端末装置(図示を省略する。)を介して保守員によって確認され、当該保守員によってコントローラ10は正常動作する新たなコントローラに交換される。このようにコントローラが交換された後、当該交換されたコントローラによって起動処理が行なわれる。これにより、処理が終了する。
以上のように構成されたストレージサブシステム3は、管理部17でBIOS ROM16のBIOSデータの破損を検出した場合、CPU11が復旧プログラム11aを実行することにより、自動的にBIOSデータの復旧をすることができる。
また、ストレージサブシステム3において、コントローラ10は、コントローラ20内のBIOS ROM26に保存されるBIOSデータへアクセスする回路を備えているため、同一コントローラ内に複数のBIOS ROM及びBIOSデータを持たなくてもBIOSを冗長化することができる。
更に、ストレージサブシステム3は、BIOSデータの復旧開始の指示を故障したコントローラ10の管理部17が行ない、CPU11がセレクタ18,管理部27を介したセレクタ29の制御を行なうことにより、コントローラ20内のBIOS ROM26とのアクセスを許可し、BIOS ROM16のBIOSデータを復旧する構成になっている。このため、CPU11がアクセスを許可する処理をしない限り、BIOS ROM16のBIOSデータが上書きされない。言い換えれば、コントローラ10以外の他のコントローラ(コントローラ20を含む)から勝手にBIOS ROM16のBIOSデータを上書きすることができない。したがって、ストレージサブシステム3は、故障したBIOSデータの復旧を安全に行なうことができる。
なお、上記実施の形態では、コントローラ10のBIOS ROM16内のBIOSデータが破損した場合の復旧処理について説明したが、コントローラ20のBIOS ROM26内のBIOSデータが破損した場合の復旧処理も、実質的に同様な処理で行なうことができる。
(変形例)
次に、図11から図13を参照して、ストレージサブシステム3内のコントローラ10,20間を接続するセレクタの構成の変形例を説明する。このセレクタの構成を変形したストレージサブシステム4は、上述したストレージサブシステム3とは、セレクタに係る構成が異なるのみで、他の構成については同様であるため、同一な構成には同一の符号を付し、詳細な説明は省略する。
図11に示すように、ストレージサブシステム4においては、既述の図1に示すストレージサブシステム3のセレクタ18,19,28及び29、並びに経路X00,経路X10,経路Y00,経路Y01,経路Y10,経路Y11,経路Z00及び経路Z10に代えて、セレクタ51及び52、並びに経路W,経路X02,経路X12,経路Z02及び経路Z12に置き換える構成となっている。
次に、セレクタ51,52の切替制御条件について図12及び図13を参照して説明する。
先ず、セレクタ51の経路の切替制御条件61について説明する。セレクタ51は、制御信号S01,T01,EN1に基づいて経路X02,経路Z02及び経路Wの切り替えを以下のように行う。
図12に示すように、制御信号S01が「False」、かつ制御信号T01が「False」の場合、セレクタ51は、制御信号EN1の状態によらず経路X02と経路Z02とを接続する。また、経路WがHi―Z(ハイインピーダンス)状態に設定され、制御信号EN0が「False」に設定される。
制御信号S01が「True」、かつ制御信号T01が「False」、かつ制御信号EN1が「False」の場合、セレクタ51は、経路X02と経路Wとを接続する。また、経路Z02がHi―Z状態に設定され、制御信号EN0が「True」に設定される。
制御信号S01が「False」、かつ制御信号T01が「True」、かつ制御信号EN1が「True」の場合、セレクタ51は経路Wと経路Z02とを接続する。また、経路X02がHi―Z状態に設定され、制御信号EN0が「False」に設定される。
制御信号S01、制御信号T01及び制御信号EN1の状態の組み合わせが既述した組み合わせ以外の場合は不正な状態であるため、経路X02,経路Z02,経路Wの全てがHi―Z状態に設定され、制御信号EN0が「False」に設定される。
次に、セレクタ52の経路の切替制御条件62について説明する。セレクタ52は制御信号S11,T11,EN0に基づいて経路X12,経路Z12及び経路Wの切り替えを以下のように行う。
制御信号S11が「False」、かつ制御信号T11が「False」の場合、セレクタ52は、制御信号EN0の状態によらず経路X12と経路Z12とを接続する。また、経路WがHi―Z状態に設定され、制御信号EN1が「False」に設定される。
制御信号S11が「True」、かつ制御信号T11が「False」、かつ制御信号EN0が「False」の場合、セレクタ52は、経路X12と経路Wとを接続する。また、経路Z12がHi―Z状態に設定され、制御信号EN1が「True」に設定される。
制御信号S11が「False」、かつ制御信号T11が「True」、かつ制御信号EN0が「True」の場合、セレクタ52は経路Wと経路Z12とを接続する。また、経路X12がHi―Z状態に設定され、制御信号EN1が「False」に設定される。
制御信号S11,制御信号T11及び制御信号EN0の状態の組み合わせが既述した組み合わせ以外の場合は不正な状態であるため、経路X12,経路Z12,経路Wの全てがHi―Z状態に設定され、制御信号EN1が「False」に設定される。
なお、経路W,経路X02,経路X12,経路Z02,経路Z12は電気的にフローティング(中間電位)状態にならないように、電位を確定させるための弱いプルアップ処理又は弱いプルダウン処理がなされている。
以上説明したストレージサブシステム4のようにストレージサブシステム3からセレクタに係る構成を変形した場合でも、ストレージサブシステム4は、ストレージサブシステム3の奏する効果と同様な効果を奏することができる。
なお、上記実施の形態は、同一構成のコントローラ10,20を1ペア有するストレージサブシステム3又は4について説明したが、このように1ペアのコントローラ10,20を有する場合に限らず、ストレージサブシステムが同一構成のコントローラを複数ペア有する場合にも本発明を適用することができる。
更に、上記実施の形態は、本発明のストレージ装置をストレージサブシステム3又は4に適用した場合で説明したが、ストレージサブシステムに適用される場合に限らず、記憶装置等のハードウェアを制御する同一構成のコントローラを1又は複数ペア有する情報処理装置にも適用することができる。また、プログラムデータの一例として、BIOSデータについて説明したが、他のプログラムデータにも適用可能である。
なお、本発明は上述の実施の形態に限定されるものではなく、その実施に際して様々な変形が可能である。
上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
同一構成のコントローラを少なくとも1ペア含むストレージ装置であって、
前記コントローラは、
制御部と、
ハードウェアとの入出力を制御するプログラムデータを記憶するデータ記憶部と、
前記データ記憶部に記憶するプログラムデータを用いた起動時の処理を管理する管理部と、
前記管理部から他の前記コントローラ内の管理部へ所定のアクセスがあった場合のみ当該他のコントローラ内のデータ記憶部との通信を許可する通信部と、
を備え、
前記制御部は、
前記管理部が起動時の処理失敗を確認した場合、前記管理部から他の前記コントローラ内の管理部へのアクセスし、前記通信部を介して前記他のコントローラ内のデータ記憶部からプログラムデータを読み出すデータ読み出し手段と、
前記データ読み出し手段で読み出したプログラムデータと、前記起動時に用いたプログラムデータとが一致するか否かを判定する判定手段と、
前記判定手段で両プログラムデータが一致しないと判定した場合、前記データ読み出し手段で読み出したプログラムデータを前記データ記憶部に上書きする上書き手段と、
前記上書き手段で前記データ記憶部に上書きしたプログラムデータを用いて再起動を行なう再起動手段と、
を有することを特徴とするストレージ装置。
(付記2)
前記コントローラは、
前記再起動を行なった回数を示すカウント値を記憶するカウンタを備え、
前記管理部は、
前記起動時の処理失敗を確認した場合、前記カウント値が所定値を超えているか否かを判定するカウント値判定手段を備え、
前記カウント値判定手段で前記カウント値が所定値を超えていると判定した場合、前記制御部は、当該コントローラの交換を要求するために必要な情報を前記管理部に記憶し、
前記カウント値判定手段で前記カウント値が所定値を超えていないと判定した場合、前データ読み出し手段、前記判定手段、前記上書き手段、前記再起動手段が動作することを特徴とする付記1記載のストレージ装置。
(付記3)
前記ハードウェアは、複数の不揮発性記憶装置を含むディスクエンクロージャであることを特徴とする付記1又は2記載のストレージ装置。
(付記4)
前記プログラムデータは、BIOS(Basic Input/Output System)データであることを特徴とする付記1乃至3のいずれか一項に記載のストレージ装置。
(付記5)
同一構成のコントローラを少なくとも1ペア含むストレージ装置のプログラムデータ復旧方法であって、
前記コントローラは、
制御部と、
ハードウェアとの入出力を制御するプログラムデータを記憶するデータ記憶部と、
前記データ記憶部に記憶するプログラムデータを用いた起動時の処理を管理する管理部と、
前記管理部から他の前記コントローラ内の管理部へ所定のアクセスがあった場合のみ当該他のコントローラ内のデータ記憶部との通信を許可する通信部と、
を備え、
前記制御部は、
前記管理部が起動時の処理失敗を確認した場合、前記管理部から他の前記コントローラ内の管理部へのアクセスし、前記通信部を介して前記他のコントローラ内のデータ記憶部からプログラムデータを読み出すステップと、
前記読み出したプログラムデータと、前記起動時に用いたプログラムデータとが一致するか否かを判定するステップと、
両プログラムデータが一致しないと判定した場合、前記読み出したプログラムデータを前記データ記憶部に上書きするステップと、
前記上書き手段で前記データ記憶部に上書きしたプログラムデータを用いて再起動を行なうステップと、
を有することを特徴とするストレージ装置のプログラムデータ復旧方法。
本発明は、冗長性のあるコントローラを含むストレージ装置及びこれのプログラムデータ復旧方法に広く適用可能である。
1,2・・・ホスト
3・・・ストレージサブシステム
10,20・・・コントローラ
11,21・・・CPU
11a,21a・・・復旧プログラム
12,22・・・チップセット
13,23・・・メモリ
14,24・・・ホストI/F
15,25・・・ディスクI/F
16,26・・・BIOS ROM
17,27・・・管理部
17a,27a・・・カウンタ
18,19,28,29,51,52・・・セレクタ
30・・・ディスクエンクロージャ
31a,・・・,31n・・・HDD

Claims (5)

  1. 同一構成のコントローラを少なくとも1ペア含むストレージ装置であって、
    前記コントローラは、
    制御部と、
    ハードウェアとの入出力を制御するプログラムデータを記憶するデータ記憶部と、
    前記データ記憶部に記憶するプログラムデータを用いた起動時の処理を管理する管理部と、
    前記管理部から他の前記コントローラ内の管理部へ所定のアクセスがあった場合のみ当該他のコントローラ内のデータ記憶部との通信を許可する通信部と、
    を備え、
    前記制御部は、
    前記管理部が起動時の処理失敗を確認した場合、前記管理部から他の前記コントローラ内の管理部へのアクセスし、前記通信部を介して前記他のコントローラ内のデータ記憶部からプログラムデータを読み出すデータ読み出し手段と、
    前記データ読み出し手段で読み出したプログラムデータと、前記起動時に用いたプログラムデータとが一致するか否かを判定する判定手段と、
    前記判定手段で両プログラムデータが一致しないと判定した場合、前記データ読み出し手段で読み出したプログラムデータを前記データ記憶部に上書きする上書き手段と、
    前記上書き手段で前記データ記憶部に上書きしたプログラムデータを用いて再起動を行なう再起動手段と、
    を有することを特徴とするストレージ装置。
  2. 前記コントローラは、
    前記再起動を行なった回数を示すカウント値を記憶するカウンタを備え、
    前記管理部は、
    前記起動時の処理失敗を確認した場合、前記カウント値が所定値を超えているか否かを判定するカウント値判定手段を備え、
    前記カウント値判定手段で前記カウント値が所定値を超えていると判定した場合、前記制御部は、当該コントローラの交換を要求するために必要な情報を前記管理部に記憶し、
    前記カウント値判定手段で前記カウント値が所定値を超えていないと判定した場合、前データ読み出し手段、前記判定手段、前記上書き手段、前記再起動手段が動作することを特徴とする請求項1記載のストレージ装置。
  3. 前記ハードウェアは、複数の不揮発性記憶装置を含むディスクエンクロージャであることを特徴とする請求項1又は2記載のストレージ装置。
  4. 前記プログラムデータは、BIOS(Basic Input/Output System)データであることを特徴とする請求項1乃至3のいずれか一項に記載のストレージ装置。
  5. 同一構成のコントローラを少なくとも1ペア含むストレージ装置のプログラムデータ復旧方法であって、
    前記コントローラは、
    制御部と、
    ハードウェアとの入出力を制御するプログラムデータを記憶するデータ記憶部と、
    前記データ記憶部に記憶するプログラムデータを用いた起動時の処理を管理する管理部と、
    前記管理部から他の前記コントローラ内の管理部へ所定のアクセスがあった場合のみ当該他のコントローラ内のデータ記憶部との通信を許可する通信部と、
    を備え、
    前記制御部は、
    前記管理部が起動時の処理失敗を確認した場合、前記管理部から他の前記コントローラ内の管理部へのアクセスし、前記通信部を介して前記他のコントローラ内のデータ記憶部からプログラムデータを読み出すステップと、
    前記読み出したプログラムデータと、前記起動時に用いたプログラムデータとが一致するか否かを判定するステップと、
    両プログラムデータが一致しないと判定した場合、前記読み出したプログラムデータを前記データ記憶部に上書きするステップと、
    前記上書き手段で前記データ記憶部に上書きしたプログラムデータを用いて再起動を行なうステップと、
    を有することを特徴とするストレージ装置のプログラムデータ復旧方法。
JP2011209616A 2011-09-26 2011-09-26 ストレージ装置及びストレージ装置のプログラムデータ復旧方法 Withdrawn JP2013073258A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011209616A JP2013073258A (ja) 2011-09-26 2011-09-26 ストレージ装置及びストレージ装置のプログラムデータ復旧方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011209616A JP2013073258A (ja) 2011-09-26 2011-09-26 ストレージ装置及びストレージ装置のプログラムデータ復旧方法

Publications (1)

Publication Number Publication Date
JP2013073258A true JP2013073258A (ja) 2013-04-22

Family

ID=48477760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011209616A Withdrawn JP2013073258A (ja) 2011-09-26 2011-09-26 ストレージ装置及びストレージ装置のプログラムデータ復旧方法

Country Status (1)

Country Link
JP (1) JP2013073258A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018022333A (ja) * 2016-08-03 2018-02-08 富士通株式会社 ストレージ制御装置および記憶装置管理プログラム
US10108499B2 (en) 2015-03-24 2018-10-23 Mitsubishi Electric Corporation Information processing device with watchdog timer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10108499B2 (en) 2015-03-24 2018-10-23 Mitsubishi Electric Corporation Information processing device with watchdog timer
JP2018022333A (ja) * 2016-08-03 2018-02-08 富士通株式会社 ストレージ制御装置および記憶装置管理プログラム

Similar Documents

Publication Publication Date Title
JP6198876B2 (ja) セキュア・リカバリ装置及び方法
US9575905B2 (en) Storage controller cache synchronization method and apparatus
US10078566B2 (en) Managing health conditions to determine when to restart replication after a swap triggered by a storage health event
US10977142B2 (en) After swapping from a first storage to a second storage, mirroring data from the second storage to the first storage for data in the first storage that experienced data errors
US9052833B2 (en) Protection of former primary volumes in a synchronous replication relationship
EP2765515B1 (en) System and method for rebuilding redundant secondary storage caches
TWI453592B (zh) 利用儲存區域網路回復電腦系統的系統及方法
TW201239622A (en) Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
JP2002358210A (ja) コントローラリセットを処理する方法、及びコントローラリセットを処理するシステム及び方法を有する冗長コントローラデータ格納システム
JP4939180B2 (ja) 接続された装置を構成するための初期設定コードの実行
CN107168829B (zh) 一种确保服务器系统双bios安全可信运行的方法及系统
US20210248124A1 (en) Io metadata management for directly connected host
US20170139605A1 (en) Control device and control method
JP2007025933A (ja) ストレージシステム及びそのファームウェア自動更新方法
US10216595B2 (en) Information processing apparatus, control method for the information processing apparatus, and recording medium
US10235255B2 (en) Information processing system and control apparatus
JP2013073258A (ja) ストレージ装置及びストレージ装置のプログラムデータ復旧方法
US9740423B2 (en) Computer system
JP4635032B2 (ja) 記憶制御装置の制御プログラムの更新方法
EP2921965B1 (en) Information processing device and shared memory management method
JP6764927B2 (ja) ストレージシステム、ストレージ装置、およびストレージシステムの制御方法
JPWO2016075765A1 (ja) 計算機システム及びその制御方法
US20190073128A1 (en) Computer system, data management method, and data management program
US11074144B2 (en) Active firmware replacement in storage system and in storage controller, and computer-readable recording medium having stored therein program for active firmware replacement in controlling storage
JP2968484B2 (ja) マルチプロセッサ計算機及びマルチプロセッサ計算機における障害復旧方法

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141202