JP4456084B2 - 制御装置およびそのファームウェア活***換制御方法 - Google Patents

制御装置およびそのファームウェア活***換制御方法 Download PDF

Info

Publication number
JP4456084B2
JP4456084B2 JP2006037726A JP2006037726A JP4456084B2 JP 4456084 B2 JP4456084 B2 JP 4456084B2 JP 2006037726 A JP2006037726 A JP 2006037726A JP 2006037726 A JP2006037726 A JP 2006037726A JP 4456084 B2 JP4456084 B2 JP 4456084B2
Authority
JP
Japan
Prior art keywords
firmware
processor
processing
processing instruction
request
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.)
Expired - Fee Related
Application number
JP2006037726A
Other languages
English (en)
Other versions
JP2007219696A (ja
Inventor
忠 松村
雅裕 吉田
太一 大野
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 JP2006037726A priority Critical patent/JP4456084B2/ja
Publication of JP2007219696A publication Critical patent/JP2007219696A/ja
Application granted granted Critical
Publication of JP4456084B2 publication Critical patent/JP4456084B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は,ディスク制御装置等の制御装置およびそのファームウェア活***換制御方法に関し,特に上位装置からの入出力(I/O)要求の処理を継続した状態で,制御装置におけるコントローラファームウェアの交換を可能にした技術に関する。
ディスクアレイ装置などのディスク制御装置は,上位装置であるホストプロセッサ(以下,ホストという)からのI/O要求を,CPUとそのCPUが実行する命令群からなるファームウェアとによって処理し,下位装置であるディスク装置を制御している。ディスク制御装置の機能拡張やファームウェアのバグの修正が必要なときに,ファームウェアの改版が必要になるが,このときディスク制御装置をオフラインにして,ファームウェアを改版することができれば,比較的に容易にファームウェアを新しいものに交換することができる。
しかし,24時間運用のシステムなど,ディスク制御装置をオフラインにすることができない環境では,ホストI/Oを閉塞させることなくファームウェアを改版する,いわゆる活***換が必要になる。
従来のディスクアレイ装置におけるコントローラファームウェア活***換方法について,以下に説明する。ディスクアレイ装置におけるコントローラファームウェアの活***換では,ホストI/Oのパスを閉塞させることなく,ファームウェアの改版を行うために,従来,例えば以下の(1) 〜(3) に示す方法が行われていた。
(1) ディスクアレイ装置の対ホストインタフェースのリンクをUPしたままの状態で,ビジー応答することで,ホストにI/Oリクエストをリトライさせる。この間にファームウェア改版を行う。ホスト側でI/Oリトライタイムアウトを検出する前にファームウェア改版を完了させ,I/Oの送受信を継続する。
(2) ファームウェア改版中は,I/Oをバッファに蓄えておく。上記(1) の方法と同様にホストがI/Oレスポンスタイムアウトを検出する前に,ファームウェア改版を完了させ,その後にI/Oを処理し,レスポンスを返す。
(3) 上記(l) ,(2) のいずれかの方法でホストI/Oのパスを閉塞させることなくファームウェアを改版することができない環境にある場合には,オペレータが手動でパスを切り替え,パス接続がない状態のコントローラからファームウェアを改版することで,パスの閉塞を防止する。
なお,無停止保守を実現するための従来技術が記載された文献としては,下記の特許文献1がある。この特許文献1に記載された技術では,ディスク装置を制御する冗長構成の複数のディスクドライブ制御装置による無停止稼動,無停止保守を実現している。
特許文献1に記載された技術は,2台の制御装置での負荷分散機能を実現するものであり,ファームウェアを制御装置内にアップロードする場合,I/Oの送受信を主とする装置を切り替えて,片装置毎にファームウェアのアップロードを行う。システムとしては,ファームウェアをアップロードしていない制御装置がI/Oの送受信を行うため,上位装置から見かけ上,I/Oは継続しているように見える。しかし,ファームウェアのアップロードを行っている間,その制御装置はダウンし,まったくI/Oを受け付けることはない。
特開2005−122763号公報
前述した(1) 〜(3) の方法による従来装置のコントローラファームウェア活***換においては,それぞれ以下のような問題が発生する。
[(l) の方法の問題点]
上記(l) の方法では,ホスト側のI/Oリトライタイムアウト時間以内にファームウェアの改版が完了して,見かけ上I/Oが継続しているように見える。しかし,ファームウェア改版中は,ビジー応答によりI/Oを処理することができず,その分のI/Oが滞留していることになる。また,ホスト側のI/Oリトライタイムアウト時間は,システム要求により異なるため,システムによってはホスト側でタイムアウトを検出する場合がある。
[(2) の方法の問題点]
上記(2) の方法では,ディスク制御装置内のバッファに限りがあるため,バッファフルが発生するとI/Oをロストすることになる。また,上記(1) の方法と同様の問題がある。
[(3) の方法の問題点]
上記(3) の方法を用いた場合,オペレータが行うと手間がかかり,また人為的ミスを伴う。
また,上記特許文献1の技術では,特にファームウェアのアップロードを行っている間,その制御装置はダウンし,まったくI/Oを受け付けることはないが,ファームウェアのアップロード中でも,制御装置そのものがダウンしないで,I/Oを受け付けることができることが望まれる。
本発明は上記問題点の解決を図り,特にマルチCPUおよびI/O制御テーブルを用いて,上位装置からのI/Oパス切替えおよび上位装置に対するビジー応答を不要とし,I/O処理の遅延を抑え,継続してI/Oに関する送受信を可能としたディスク等の制御装置におけるコントローラファームウェア活***換を実現することを目的とする。
上記課題を解決するため,第1の発明は,ホスト(上位装置)からのI/O要求に対して下位装置に対するI/O処理を実行する制御装置であって,ホストから要求されたI/Oを処理する複数のプロセッサ(CPU)と,メモリに格納された各プロセッサを動作させるための複数のファームウェアと,ホストからのI/O要求をどのプロセッサに振り分けるかを定める振り分け制御情報を記憶するI/O制御テーブルと,各プロセッサごとに,ホストからのI/O要求を受け付けて処理対象となっている入出力先アドレス情報を含むI/O処理命令を,そのI/O処理が完了するまで保持するI/O処理命令リストと,プロセッサとファームウェアとにより現在のファームウェアの改版を制御する制御手段とを備え,前記制御手段は,外部からのファームウェアの改版指示に対し,I/O制御テーブルにおける振り分け制御情報を,ファームウェア改版の対象となったプロセッサへのI/O要求の振り分けを禁止する状態に更新し,I/O処理命令リストが保持するI/O処理命令がなくなったことを確認して,ファームウェアの改版を実行する制御を行い,ファームウェアの改版対象となっていないプロセッサは,ファームウェアの改版時におけるI/Oチェック開始依頼の通知に対し,前記I/O処理命令リストが保持するI/O処理命令を参照して,自プロセッサが処理しようとするI/Oと入出力先アドレス情報が同一のI/O処理命令で,かつ前記ファームウェアの改版対象となったプロセッサが未処理のI/O処理命令がないかをチェックし,同一入出力先アドレスに対するI/Oの順序性を保証する処理を,I/Oチェック終了依頼の通知があるまで行うことを特徴とする。
第1の発明によれば,I/O制御テーブルを用いることにより,ファームウェア改版時にホストからのI/O要求を自動的に他のプロセッサに振り分け,ホストへの影響を最小限にしてファームウェアを改版することができる。また,入出力先アドレス情報を含むI/O処理命令を保持するI/O処理命令リストによって,受け付け済みの全てのI/O処理を完遂させることができるとともに,同一入出力先アドレスへのI/Oの順序性の矛盾が生じないようにすることができる。
また,第2の発明は,ホストからのI/O要求に対して下位装置に対するI/O処理を実行する制御装置であって,ホストから要求されたI/Oを処理する複数のプロセッサと,メモリに格納された各プロセッサを動作させるための複数のファームウェアと,ホストからのI/O要求をどのプロセッサに振り分けるかを定める振り分け制御情報を記憶するI/O制御テーブルと,各プロセッサごとに,ホストからのI/O要求を受け付けて処理対象となっている入出力先アドレス情報を含むI/O処理命令を,そのI/O処理が完了するまで保持するI/O処理命令リストと,プロセッサとファームウェアとにより現在のファームウェアの改版を制御する制御手段とを備え,前記制御手段は,外部からのファームウェアの改版指示に対し,I/O制御テーブルにおける振り分け制御情報を,ファームウェア改版の対象となったプロセッサへのI/O要求の振り分けを禁止する状態に更新し,ファームウェアの改版を実行する制御を行い,かつ,ファームウェア改版の対象となったプロセッサのI/O処理命令リストがI/O処理命令を保持するときに,他のプロセッサに対してそのI/O処理命令を引き継がせるための割込み通知を行い,前記他のプロセッサは,ファームウェアの改版時におけるI/Oチェック開始依頼の通知に対し,自プロセッサが処理しようとするI/Oと入出力先アドレス情報が同一のI/O処理命令で,かつ前記ファームウェアの改版対象となったプロセッサが未処理のI/O処理命令がないかをチェックし,同一入出力先アドレスに対するI/Oの順序性を保証する処理を,I/Oチェック終了依頼の通知があるまで行うことを特徴とする。
第2の発明によれば,I/O処理命令リストが保持する完遂前のI/O処理命令を,他のプロセッサに引き継がせる機構を持つので,第1の発明の効果に加えて,ファームウェアの改版を,外部から改版依頼があったときに即時に実行できるという効果がある。
また,第3の発明は,上記第2の発明において,前記制御手段は,複数のプロセッサのうちの一つのプロセッサがダウンした場合に,I/O制御テーブルにおける振り分け制御情報を,そのダウンしたプロセッサへのI/O要求の振り分けを禁止する状態に更新し,かつ,そのダウンしたプロセッサのI/O処理命令リストがI/O処理命令を保持するときに,他のプロセッサに対してそのI/O処理命令を引き継がせるための割込み通知を行うことを特徴とする。
第3の発明によれば,ファームウェアの改版のための制御手段を利用し,ダウンしたプロセッサが処理中のI/O処理命令を他のプロセッサに引き継がせることができるので,プロセッサのダウン時にも,ホストへの影響を少なくすることができる。
本発明によれば,上位装置からのI/Oパス切替えを不要とするとともに,上位装置に対するビジー応答を不要とし,I/O処理の遅延を抑え,継続してI/Oの送受信が可能な,ディスク等の制御装置におけるコントローラファームウェアの活***換を実現することができる。
以下,本発明の一実施形態を図面を用いて説明する。図1は,本発明に係るディスク制御装置の構成例を示す。ディスク制御装置1は,上位装置であるホスト2と下位装置であるディスク装置3との間で入出力(I/O)の制御を行う。また,ディスク制御装置1は,ファームウェアを改版する場合に,ファームウェアをアップロード(以下,ファームウェアUPという)する保守用端末4に接続される。
ホスト2からのI/Oは,ホスト2とのインタフェースとなるチャネルアダプタ(CA:Channel Adaptor )110,111で受信され,I/Oを制御するI/O制御部12に渡される。I/O制御部12ではI/Oを解析し,ディスク装置3にアクセスする場合には,ディスク装置3とのインタフェースであるドライブインタフェース(DI:Drive Interface )150,151を経由し,アクセスが行われる。
ここで,I/O制御部12には,CPUが複数あり,それぞれのCPU130,131でI/O制御を行うためのファームウェア140,141が動作する。ファームウェア140,141は,ディスク制御装置1のメモリ上に存在し,そのアーカイブは,フラッシュメモリ等で構成される展開前ファームウェア格納部19に保存され,装置ブート時,すなわち装置への電源投入時や装置リセット時にメモリ上に展開される。
また,ディスク制御装置1のメモリには,I/O制御テーブル160等の各制御部で共有する情報を格納する共有情報域が設けられている。I/O制御部12の他に各制御部を監視する監視制御部18,正常時には動作しないが,ファームウェア改版時や異常時にI/Oを別のCPU(ファームウェア)に処理させるための割込みを制御するI/O処理再割込み制御部17がある。
ディスク制御装置1においてファームウェア改版を行う場合,その改版処理が完了するまでファームウェアはI/Oを処理することができない。本実施の形態による制御方法は,I/O制御を片方のCPU(ファームウェア)に片寄せして,CPU単位に順次ファームウェア改版を行う。上述したような従来技術の問題を解決するため,I/O制御させるCPU(ファームウェア)を一つではなく複数とし,I/Oを制御するCPU(ファームウェア)の情報を載せたI/O制御テーブル160を利用する。本制御方法は,このI/O制御テーブル160を動的に変更してファームウェアの改版を行うことにより,I/Oの停止/遅延を生じさせることなく,またホスト2側からのパス切替えを行わない方法を用いることを特徴とする。その詳細を次に述べる。
以下,説明をわかりやすくするために,CPU130をCPU#0,CPU131をCPU#1と表し,CPU#0側のファームウェア140をファームウェア#0,CPU#1側のファームウェア141をファームウェア#1と表す。
図2は,ファームウェア改版前のディスク制御装置1の状態を示している。また,図3は,ディスク制御装置1内のメモリ10と展開前ファームウェア格納部19の状態を示している。
図3に示すように,メモリ10上には,CPU#0で動作しているファームウェア#0,CPU#1で動作しているファームウェア#1,および制御情報を保持している共有情報域16がある。ここで共有情報域16には,ホスト2からのI/OをどのCPU(ファーム)が制御するかを示すI/O制御テーブル160が存在する。I/O制御を担当するCPUは複数存在し,例えば一つのCPU(ファームウェア)がダウンしたときに,I/Oを一度停止させて装置の制御情報などを新たに構築するようなことを行わなくても,動作を継続することができるようになっている。また,このI/O制御テーブル160でI/O制御させるCPUをロードバランスさせることも可能である。
通常状態のときには,ホスト2からのI/Oを受信したチャネルアダプタ110または111が,I/O制御テーブル160をもとにI/Oを担当する各CPU(ファームウェア)に割り込みを上げ,I/Oを制御させる仕組みをとる。図2の例では,I/O制御テーブル160に示すように,ホスト2からのI/O#0はCPU#0(ファームウェア#0)が制御し,ホスト2からのI/O#1はCPU#1(ファームウェア#1)が制御するように設定されている。
ここでファームウェア改版指示を,保守用端末4などの外部から受信すると,図3に示すように,展開前ファームウェア格納部19からメモリの空き領域に新ファームウェアを展開すると同時に,I/O制御テーブル160を更新する。I/O制御テーブル160の更新により,I/O制御を片方のCPU(ファームウェア)側に片寄せして,ファームウェア改版を行っていく。
次に,I/O制御のベースとなるI/O制御テーブル160について説明する。ホスト2からのI/OをどのCPUが担当するかを決定するには,それぞれのCPU#0,#1が担当するディスク装置や論理ボリューム(以下,LUNと記す)が明確になっており,どのLUNにアクセスするI/Oであるかを判別することで,担当するCPUが決定される。この決定方法は,従来技術でも行われている方法である。
ここで,本実施の形態では,前述したようにLUNを担当するCPU(ファームウェア)は一つではなく,I/Oを処理させる優先度を設け,複数存在させる。I/Oを制御する担当CPU(ファームウェア)とその状態と優先度の情報を,I/O制御テーブル160に設定しておき,これをもとにI/Oの制御を行う。つまり,当該制御方法において,各CPUは担当するLUNへのアクセスがあれば,いつでも動作できる状態にあるが,I/Oに対するCPUへの割り込みは,通常全てI/O制御テーブル160の優先度をもとに行われるため,優先度が高いCPU(ファームウェア)が存在する場合,原則として優先度が低いCPU(ファームウェア)がその担当のI/Oを処理することはない。
これについて既存の従来装置との違いについて述べる。既存の装置では,あるLUNを担当するCPUは一意である。このため,I/Oを担当するCPUを変更する場合は,一度ホストI/Oを一時停止し,システム内部の制御情報を再構築し,これが完了するとホストI/Oの処理を再開する。これに対し,本実施の形態による制御方法を用いることで,ホストI/Oを停止することなく,I/O制御テーブル160の変更により,すばやく担当するCPUを切り替えることができる。
次に,本実施の形態による制御方法の仕組みについてさらに詳しく説明する。図4は,通常状態でのI/O制御方法を説明する図である。
まず,ホスト2からのI/Oを,CA(#0)110またはCA(#1)111が受信すると,CAはメモリ10上の共有情報域16に存在するI/O制御テーブル160から,そのI/Oを担当する優先度が高いI/O制御部12のCPUを割り出し,該当するCPU#0またはCPU#1へI/Oを処理するようにメッセージ(割り込み通知)を送信する。このメッセージ(割り込み通知)は,各々のCPUのメッセージキュー50,51に蓄えられ,ファームウェア#0,#1によって処理される。
また,CA110またはCA111は,I/O制御部12にメッセージ(割り込み通知)を送信すると同時に,I/O処理命令(どのLUNのどのアドレスにどのような情報をRead/Writeするかという情報)をI/O処理命令リスト60,61に登録する。このリストもメモリ上の共有情報域16に存在することとする。リスト内の命令は,I/O制御部12のCPUが処理を完全に完了した時点で削除される。通常状態,すなわち正常な稼動状態では,このリストのI/O処理命令を使用してI/O制御が行われることはない。
上記の状態で,ディスク制御装置1が,外部の保守用端末4からファームウェア改版指示を受信した際の動作を次に説明する。図5は,ファームウェア改版指示後のI/O制御方法を説明する図である。
ファームウェア改版指示があると,まず,I/Oを担当するI/O制御部12のCPUを切り替えるため,I/O制御テーブル160の変更を行う。この例では,CPU#0(ファームウェア#0)側がファームウェア改版を行うため,図5に示すように,I/O制御テーブル160上のCPU#0の状態を“Active”(稼動中)状態から“Pending”(保留)状態にし,また優先度を無効とする。ここでI/O#0を制御する担当CPUは,CPU#1が最も優先度が高くなる。
これにより,I/O制御テーブル160の変更後は,CA110,111からファームウェア改版を行う側のCPUであるCPU#0には全くI/O処理を行うメッセージ(割り込み通知)が送信されなくなる。このため,ファーム改版指示後でもI/O制御を全く停止させることも遅延させることもなく処理を継続させることが可能となる。
ファームウェア改版を行う側のCPU#0は,ファームウェア改版指示前(つまり,I/O制御テーブル160の変更前)に,自CPUに対して送信されたI/O処理は,全て完了させなければならない。これを全て完了させた後,CPU#0(ファームウェア#0)のリセット等により,実際のファームウェア改版の動作を開始する。このため,ファームウェア改版処理は,改版指示前に受け付けたI/O処理が履けるまで,待機させる。
ここで,一つの問題が発生する。I/O制御テーブル160の変更後の過渡状態の際に,ファームウェア改版を行うCPU#0で処理されるI/Oと同一LUNのブロックアドレス宛のI/Oのメッセージが,I/O制御テーブル160の更新により優先度が上がり,新たに実担当となったCPU#1に対して送信された場合である。この場合,同一ブロックへのI/Oの順序性に矛盾が生じる可能性がある。
そこでこの問題を解決するため,CPU#1のファームウェア#1は,I/O制御テーブル160の更新が行われた間際の過渡期の状態にあるI/Oのアクセス(もともとCPU#0が担当していたLUNへアクセスするI/Oのみでよい)について,ファームウェア改版を行う側のCPU#0が処理中でないか,もしくは処理しようとしていないかをチェックし,I/Oを処理する。このチェックを行うために,CA110,111からI/O制御部12へのメッセージ(割り込み通知)の送信と同時にI/O処理命令リスト(マッピング情報等でもよい)60のチェックを行う。もし,このチェックにより処理可能であればI/O処理を続行し,処理不可(同一LUNのブロックアドレス宛のI/Oが存在する場合)であれば,先にCPU#0に処理を最優先で行わせるようにメッセージを送信する。これにより,I/O処理の順序性を崩すことなく,また他のI/Oに影響を及ぼすことなく処理することができる。なお,CPU#0にメッセージを送信するのではなく,アクセス先のブロックが競合する後から発行されたI/O要求を,CPU#1のメッセージキュー51に再キューイングするなどして,一時的に所定の時間待たせるようにしてもよい。
CPU#0のファームウェアの改版が完了したならば,I/O制御テーブル160を図4に示す元の状態に戻す。その後,同様にCPU#1についての新ファームウェアの改版を実行すれば,CPU#0,CPU#1のファームウェア#0,#1は,共に新ファームウェアに改版されることになる。
上記の方法は,ファームウェア改版を行うCPUがファームウェア改版指示受信前にキューイングされたI/O処理を全て完了してから,ファームウェア改版処理(リセット等)に入る方法であるが,本実施の形態に係るもう一つの制御方法は,ファームウェア改版指示受信後,即座にファームウェア改版動作に入ることも可能とする。この方法を使用することにより,ファームウェア改版時間の短縮ばかりではなく,ファームウェア障害等でファームウェアがダウンし,不意に片側のCPUが使用できない状態に陥ったとしても,パスを閉塞させることなく処理を継続することができる。この制御方法について以下に述べる。
図6は,異常時もしくはファームウェア改版を即時実行する場合のI/O制御方法を説明する図である。CPU#0がダウンした場合(もしくは,キューイングされているI/Oを処理しないで,即時にファームウェア改版動作を開始する場合)の例を説明する。
CPU#0(ファームウェア#0)に障害が発生しダウンすると,監視制御部18がこれを検出する。その後,CPU#0が使用不可になったため,I/O制御テーブル160を更新する。図6では,CPU#0(ファームウェア#0)の状態が“Active”(稼動中)状態から“Down”(ダウン)状態に更新されている。これにより,以降ホスト2からのI/O#0は,ダウンした側のCPU#0に割り振られることはなく,CPU#1側に割り振られることになる。
次に,監視制御部18は,CPU#0に割り振られたI/O処理命令を処理させるため,I/O処理再割込み制御部17にダウンしたCPU#0のI/Oを再処理させるよう依頼する。これを受信したI/O処理再割込み制御部17は,CPU#0側のI/O処理命令リスト60をチェックし,未処理/未完了のI/O処理の存在を確認後,この情報をもとにI/O処理をCPU#1に行わせるため,メッセージ(割り込み通知)を作成し,送信する。これを受信したCPU#1は,それらのI/O処理を行う。
ここでもまた,I/O処理の順序性が問題になる。しかし,先ほど述べた方法と同様な方法で,同一LUNのブロックアドレスへのアクセスであれば,再割込みが行われたI/O処理を優先させることで順序性矛盾が生じることを回避することができる。
図7は,図5のI/O制御方法を用いたときの処理シーケンスであって,ファームウェア改版を行うCPU#0側が,既に受け付け済みのI/Oを全て処理するときのシーケンスの例を示している。
CPU#0がファームウェア改版依頼を受信すると(S1),CPU#1に対し,I/Oチェック開始依頼を行う。続いてI/O制御テーブル160を更新し,展開前ファームウェア格納部19に格納された新ファームウェアを展開する(S2)。その後,自CPU#0のI/O処理の完了を,I/O処理命令リスト60を見てチェックする(S3)。
一方,I/Oチェック開始依頼を受けたCPU#1では,自CPU#1が処理するI/Oについて,CPU#0が処理中のI/Oと同一LUNのブロックアドレスへのアクセスかをチェックする処理を開始し(S4),もし同一LUNのブロックアドレスへのアクセスがあれば,CPU#0のI/O処理部へI/O優先処理を依頼し,CPU#0からの処理完了報告により,そのI/O処理を行う。このチェックをCPU#0からI/Oチェック終了依頼がくるまで継続する。
CPU#0では,I/O処理命令リスト60のチェックにより,全I/Oの処理完了を確認したならば,CPU#1に対しI/Oチェック終了依頼を送り,その後にリセット等によりファームウェア改版を開始する(S5)。すなわち,メモリ10上に展開された新ファームウェアによる動作を開始する。
通常,CPU#0のファームウェア改版が正常に終了した後,続いてCPU#1にファームウェア改版依頼が送信され,同様にCPU#1についてもファームウェア改版処理が行われることになる。
図8は,図6のI/O制御方法を用いたときの処理シーケンスであって,CPU#0に異常が発生しダウンしたときのシーケンスの例を示している。CPU#0がファームウェア改版を即時に実行する場合のシーケンスも基本的に同様である。
監視制御部18が,CPU#0のダウンを検出すると(S10),CPU#1に対し,I/Oチェック開始依頼を行う。続いて,I/O制御テーブル160を更新し(S11),I/O処理再割込み制御部17に対し,再割込み処理開始依頼を行う。
I/Oチェック開始依頼を受けたCPU#1では,自CPU#1が処理するI/Oについて,CPU#0で未処理のI/Oと同一LUNのブロックアドレスへのアクセスかをチェックする処理を開始し(S12),もし同一LUNのブロックアドレスへのアクセスがあれば,そのI/O処理を一時的に保留する。
再割込み処理開始依頼を受けたI/O処理再割込み制御部17では,CPU#0用のI/O処理命令リスト60を参照し,未処理I/Oの存在を確認したならば,その制御のためにCPU#1に対しI/O処理割込み通知を行う(S13)。CPU#1では,この通知を受信し,CPU#0で未処理であったI/O処理を行う。I/O処理再割込み制御部17は,CPU#0のI/O処理命令リスト60がNULL(空)になるまで,同様に未処理I/Oの処理を行い,I/O処理命令リスト60がNULL(空)であることを確認したならば,監視制御部18に対し,再割込み処理終了を通知する(S14)。その通知を受けた監視制御部18は,I/Oチェック終了依頼をCPU#1に送信して,CPU#0の未処理I/Oに関する処理を完了する。
なお,CPU#0のダウンではなく,CPU#0のファームウェア改版の場合には,S11でI/O制御テーブル160を更新した後,直ちにファームウェア改版を開始できることになる。
以上の実施の形態では,CPUとファームウェアが二つ存在する場合の例を説明したが,これらが三以上であっても,本発明を用いて同様にI/Oの制御およびファームウェアの改版を行うことができることは説明するまでもなく明らかである。また,ディスク制御装置におけるファームウェア活性保守の例を説明したが,ディスク制御装置に限らず,同様な周辺装置の制御装置であれば,本発明によるファームウェア活***換制御方法を同じように適用することができる。
また,上記実施の形態において,監視制御部18およびI/O処理再割込み制御部17を特定の一つのCPU(ファームウェア)に担当させる実施も可能である。この方法として,例えば複数のCPU(ファームウェア)の中で稼動中(Active)である一つのCPU(ファームウェア)を主制御のためのマスターとして選択し,監視制御部18およびI/O処理再割込み制御部17を,そのマスターとなるCPU(ファームウェア)によって実現する方法を用いる。この場合,マスターとなるCPU(ファームウェア)についてファームウェア改版を行う場合には,事前に他のCPU(ファームウェア)に対しマスターを移行する。マスターとなるCPU(ファームウェア)がダウンした場合にも,それを検出したときに,あらかじめ定められた他のCPU(ファームウェア)がマスターとなるようにマスターの切り替えを行う。
ディスク制御装置の構成例を示す図である。 ファームウェア改版前のディスク制御装置の状態を示す図である。 ディスク制御装置内のメモリと展開前ファームウェア格納部の状態を示す図である。 通常状態でのI/O制御方法を説明する図である。 ファームウェア改版指示後のI/O制御方法を説明する図である。 異常時もしくはファームウェア改版を即時実行する場合のI/O制御方法を説明する図である。 ファームウェア改版を行うCPU側がI/Oを全て処理するときのシーケンスの例を示す図である。 異常時もしくはファームウェア改版を即時実行する場合の処理シーケンスの例を示す図である。
符号の説明
1 ディスク制御装置
2 ホスト
3 ディスク装置
4 保守用端末
10 メモリ
110,111 チャネルアダプタ(CA)
12 I/O制御部
130,131 CPU
140,141 ファームウェア
150,151 ドライブインタフェース(DI)
16 共有情報域
160 I/O制御テーブル
17 I/O処理再割込み制御部
18 監視制御部
19 展開前ファームウェア格納部

Claims (5)

  1. 上位装置からのI/O要求に対して下位装置に対するI/O処理を実行する制御装置であって,
    前記上位装置から要求されたI/Oを処理する複数のプロセッサと,
    メモリに格納された前記各プロセッサを動作させるための複数のファームウェアと,
    前記上位装置からのI/O要求をどのプロセッサに振り分けるかを定める振り分け制御情報を記憶するI/O制御情報記憶手段と,
    前記各プロセッサごとに,前記上位装置からのI/O要求を受け付けて処理対象となっている入出力先アドレス情報を含むI/O処理命令を,そのI/O処理が完了するまで保持するI/O処理命令保持手段と,
    前記プロセッサと前記ファームウェアとにより現在のファームウェアの改版を制御する制御手段とを備え,
    前記制御手段は,外部からのファームウェアの改版指示に対し,前記I/O制御情報記憶手段における前記振り分け制御情報を,ファームウェア改版の対象となったプロセッサへのI/O要求の振り分けを禁止する状態に更新し,前記I/O処理命令保持手段が保持するI/O処理命令がなくなったことを確認して,ファームウェアの改版を実行する制御を行い,
    ファームウェアの改版対象となっていないプロセッサは,ファームウェアの改版時におけるI/Oチェック開始依頼の通知に対し,前記I/O処理命令保持手段が保持するI/O処理命令を参照して,自プロセッサが処理しようとするI/Oと入出力先アドレス情報が同一のI/O処理命令で,かつ前記ファームウェアの改版対象となったプロセッサが未処理のI/O処理命令がないかをチェックし,同一入出力先アドレスに対するI/Oの順序性を保証する処理を,I/Oチェック終了依頼の通知があるまで行う
    ことを特徴とする制御装置。
  2. 上位装置からのI/O要求に対して下位装置に対するI/O処理を実行する制御装置であって,
    前記上位装置から要求されたI/Oを処理する複数のプロセッサと,
    メモリに格納された前記各プロセッサを動作させるための複数のファームウェアと,
    前記上位装置からのI/O要求をどのプロセッサに振り分けるかを定める振り分け制御情報を記憶するI/O制御情報記憶手段と,
    前記各プロセッサごとに,前記上位装置からのI/O要求を受け付けて処理対象となっている入出力先アドレス情報を含むI/O処理命令を,そのI/O処理が完了するまで保持するI/O処理命令保持手段と,
    前記プロセッサと前記ファームウェアとにより現在のファームウェアの改版を制御する制御手段とを備え,
    前記制御手段は,外部からのファームウェアの改版指示に対し,前記I/O制御情報記憶手段における前記振り分け制御情報を,ファームウェア改版の対象となったプロセッサへのI/O要求の振り分けを禁止する状態に更新し,ファームウェアの改版を実行する制御を行い,かつ,ファームウェア改版の対象となったプロセッサの前記I/O処理命令保持手段がI/O処理命令を保持するときに,他のプロセッサに対してそのI/O処理命令を引き継がせるための割込み通知を行い,
    前記他のプロセッサは,ファームウェアの改版時におけるI/Oチェック開始依頼の通知に対し,自プロセッサが処理しようとするI/Oと入出力先アドレス情報が同一のI/O処理命令で,かつ前記ファームウェアの改版対象となったプロセッサが未処理のI/O処理命令がないかをチェックし,同一入出力先アドレスに対するI/Oの順序性を保証する処理を,I/Oチェック終了依頼の通知があるまで行う
    ことを特徴とする制御装置。
  3. 請求項2記載の制御装置において,
    さらに前記制御手段は,前記複数のプロセッサのうちの一つのプロセッサがダウンした場合に,前記I/O制御情報記憶手段における前記振り分け制御情報を,そのダウンしたプロセッサへのI/O要求の振り分けを禁止する状態に更新し,かつ,そのダウンしたプロセッサの前記I/O処理命令保持手段がI/O処理命令を保持するときに,他のプロセッサに対してそのI/O処理命令を引き継がせるための割込み通知を行う
    ことを特徴とする制御装置。
  4. 上位装置から要求されたI/Oを処理する複数のプロセッサと,メモリに格納された前記各プロセッサを動作させるための複数のファームウェアと,前記上位装置からのI/O要求をどのプロセッサに振り分けるかを定める振り分け制御情報を記憶するI/O制御情報記憶手段と,前記各プロセッサごとに,前記上位装置からのI/O要求を受け付けて処理対象となっている入出力先アドレス情報を含むI/O処理命令を,そのI/O処理が完了するまで保持するI/O処理命令保持手段とを備え,上位装置からのI/O要求に対して下位装置に対するI/O処理を実行する制御装置におけるファームウェア活***換制御方法であって,
    外部からのファームウェアの改版指示に対し,前記I/O制御情報記憶手段における前記振り分け制御情報を,ファームウェア改版の対象となったプロセッサへのI/O要求の振り分けを禁止する状態に更新することにより,以降の上位装置からのI/O要求を他のプロセッサに担当させる過程と,
    ファームウェアの改版対象となっていないプロセッサが,ファームウェアの改版時におけるI/Oチェック開始依頼の通知に対し,前記I/O処理命令保持手段が保持するI/O処理命令を参照して,自プロセッサが処理しようとするI/Oと入出力先アドレス情報が同一のI/O処理命令で,かつ前記ファームウェアの改版対象となったプロセッサが未処理のI/O処理命令がないかをチェックし,同一入出力先アドレスに対するI/Oの順序性を保証する処理を,I/Oチェック終了依頼の通知があるまで行う過程と,
    前記I/O処理命令保持手段が保持するI/O処理命令がなくなったことを確認して,前記ファームウェアの改版対象となったプロセッサのファームウェアの改版を実行する過程とを有する
    ことを特徴とする制御装置のファームウェア活***換制御方法。
  5. 上位装置から要求されたI/Oを処理する複数のプロセッサと,メモリに格納された前記各プロセッサを動作させるための複数のファームウェアと,前記上位装置からのI/O要求をどのプロセッサに振り分けるかを定める振り分け制御情報を記憶するI/O制御情報記憶手段と,前記各プロセッサごとに,前記上位装置からのI/O要求を受け付けて処理対象となっている入出力先アドレス情報を含むI/O処理命令を,そのI/O処理が完了するまで保持するI/O処理命令保持手段とを備え,上位装置からのI/O要求に対して下位装置に対するI/O処理を実行する制御装置におけるファームウェア活***換制御方法であって,
    外部からのファームウェアの改版指示に対し,前記I/O制御情報記憶手段における前記振り分け制御情報を,ファームウェア改版の対象となったプロセッサへのI/O要求の振り分けを禁止する状態に更新することにより,以降の上位装置からのI/O要求を他のプロセッサに担当させる過程と,
    前記ファームウェアの改版対象となったプロセッサのファームウェアの改版を実行する過程と,
    前記プロセッサの前記I/O処理命令保持手段がI/O処理命令を保持するときに,他のプロセッサに対してそのI/O処理命令を引き継がせるための割込み通知を行う過程と,
    前記他のプロセッサが,ファームウェアの改版時におけるI/Oチェック開始依頼の通知に対し,自プロセッサが処理しようとするI/Oと入出力先アドレス情報が同一のI/O処理命令で,かつ前記ファームウェアの改版対象となったプロセッサが未処理のI/O処理命令がないかをチェックし,同一入出力先アドレスに対するI/Oの順序性を保証する処理を,I/Oチェック終了依頼の通知があるまで行う過程とを有する
    ことを特徴とする制御装置のファームウェア活***換制御方法。
JP2006037726A 2006-02-15 2006-02-15 制御装置およびそのファームウェア活***換制御方法 Expired - Fee Related JP4456084B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006037726A JP4456084B2 (ja) 2006-02-15 2006-02-15 制御装置およびそのファームウェア活***換制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006037726A JP4456084B2 (ja) 2006-02-15 2006-02-15 制御装置およびそのファームウェア活***換制御方法

Publications (2)

Publication Number Publication Date
JP2007219696A JP2007219696A (ja) 2007-08-30
JP4456084B2 true JP4456084B2 (ja) 2010-04-28

Family

ID=38496950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006037726A Expired - Fee Related JP4456084B2 (ja) 2006-02-15 2006-02-15 制御装置およびそのファームウェア活***換制御方法

Country Status (1)

Country Link
JP (1) JP4456084B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5223612B2 (ja) * 2008-11-14 2013-06-26 日本電気株式会社 ディスク制御装置およびファームウェアの更新方法
JP2010152508A (ja) * 2008-12-24 2010-07-08 Fujitsu Ltd 制御装置、ディスクアレイ装置および制御方法
WO2011114476A1 (ja) * 2010-03-17 2011-09-22 富士通株式会社 マルチコアプロセッサシステム、通知プログラム、および通知方法
JP5953976B2 (ja) * 2012-06-25 2016-07-20 富士通株式会社 ファームウェア交換支援プログラム、ファームウェア交換支援方法、及び処理装置
JP5713089B2 (ja) * 2013-11-13 2015-05-07 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法

Also Published As

Publication number Publication date
JP2007219696A (ja) 2007-08-30

Similar Documents

Publication Publication Date Title
JP2587195B2 (ja) 負荷平衡または非同期データ移動のためのコンピュータ・システム及び方法
US7779170B2 (en) Storage area network system
US6260158B1 (en) System and method for fail-over data transport
EP0687975B1 (en) Method and system for downloading data to network nodes
CN101471882B (zh) 存储子***
US20070174849A1 (en) Non-disruptive multipath device driver update system and method
JPH08335144A (ja) 外部記憶装置
JP2005508551A (ja) 共有バスを用いたデータのミラー化
JP2005115506A (ja) ストレージシステム
JP4456084B2 (ja) 制御装置およびそのファームウェア活***換制御方法
JP2003501746A (ja) ホスト・システムとホスト・アダプタとの間でi/oブロックを自動的に転送するための方法および装置
JP2017010390A (ja) ストレージ制御装置、ストレージ制御プログラム、およびストレージ制御方法
JP2000099277A (ja) ファイルユニット間のリモート転送方法
WO2006114822A1 (ja) Dmaコントローラ、ノード、データ転送制御方法、及びプログラム
US6804794B1 (en) Error condition handling
US20060149866A1 (en) Method and apparatus for transferring data
JP2010152508A (ja) 制御装置、ディスクアレイ装置および制御方法
JP4161276B2 (ja) フォルトトレラントコンピュータ装置およびその同期化方法
JP2009176232A (ja) 起動装置、起動方法、及び、起動プログラム
US8346996B2 (en) Information processing system
JPH03241448A (ja) Ipl方式
US20060129714A1 (en) Method and apparatus for transferring data
JPH09218788A (ja) インサービス直接ダウンロード方式
US20190266061A1 (en) Information processing apparatus, control method for information processing apparatus, and computer-readable recording medium having stored therein control program for information processing apparatus
JP2017130002A (ja) ストレージ制御装置および制御プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100107

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100107

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100107

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: 20100202

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100204

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140212

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees