JP2007293802A - ディスクアレイ装置、ディスクアレイ装置の制御方法及びディスクアレイ装置の制御プログラム。 - Google Patents

ディスクアレイ装置、ディスクアレイ装置の制御方法及びディスクアレイ装置の制御プログラム。 Download PDF

Info

Publication number
JP2007293802A
JP2007293802A JP2006314744A JP2006314744A JP2007293802A JP 2007293802 A JP2007293802 A JP 2007293802A JP 2006314744 A JP2006314744 A JP 2006314744A JP 2006314744 A JP2006314744 A JP 2006314744A JP 2007293802 A JP2007293802 A JP 2007293802A
Authority
JP
Japan
Prior art keywords
unit
firmware
area
disk array
array device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006314744A
Other languages
English (en)
Inventor
Masaru Kawada
大 川田
Osamu Kimura
修 木村
Koji Yamaguchi
浩二 山口
Kazuo Nakajima
一雄 中嶋
Chikashi Maeda
親志 前田
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 JP2006314744A priority Critical patent/JP2007293802A/ja
Priority to US11/723,153 priority patent/US8074018B2/en
Publication of JP2007293802A publication Critical patent/JP2007293802A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2015Redundant power supplies

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】 ディスクアレイ装置内の機能毎の各ユニットに格納された各ファームウェアの版数および稼動するファームウェアを一致させる。
【解決手段】 装置は装置内で同じ種類の複数のユニットを有する。ユニットは複数の記憶領域を有する。記憶領域にはユニットが動作するためのファームウェアが記憶領域ごとに格納される。ユニットを装置に取り付けるときに、装置が第一のユニットの取り付けを認識すると、前記第一のユニットの各記憶領域に格納されたファームウェア版数と、前記装置で動作する第二のユニットの各記憶領域に格納されたファームウェア版数とを比較する。そして、前記比較手段で各ファームウェア版数が合致する場合は、前記第一のユニットが実行するファームウェアが格納されている記憶領域を前記装置で動作する第二のユニットの各記憶領域に合致させる。
【選択図】図1

Description

本発明はディスクアレイ装置に関する。特にディスクアレイ装置を構成するユニットを交換するときの保守技術に関する。
ディスクアレイ装置は複数のユニットを有する。それぞれのユニットはユニットの機能を実現するためのファームウェアを記憶する。それぞれのユニットがファームウェアを実行することによりディスクアレイ装置が動作する。それぞれのユニットは故障する場合がある。ディスクアレイ装置内の故障したユニットは交換される。
ディスクアレイ装置は連続した動作が要求されるため、ディスクアレイ装置のユニットは同じ機能を実現するユニットを複数有した冗長な構成となる。また、ディスクアレイ装置は故障したユニットを交換した後でディスクアレイ装置全体の動作する性能が低下することを避けることを必要とする。性能の低下とは、例えば、ユニットが誤動作することにより、ユニットが本来の機能を発揮せず、装置全体に影響を及ぼす状態である。ディスクアレイ装置の処理の動作する性能が低下することを避けるためには、交換の対象のユニットがディスクアレイ装置内で動作中の他のユニットと同じファームウェアの版数で稼動することにより可能である。
従来のディスクアレイ装置に交換の対象のユニットを組み込む際の方法として、交換の対象のユニットのファームウェアの版数とディスクアレイ装置内で動作中のユニットのファームウェアの版数とを一致させるファームウェアのダウンロードの方法がある。例えば、装置内のファームウェアを内蔵した第1のユニットから他の第2のユニットに交換する場合は以下の方法で行っていた。まず、第2のユニットのファームウェアの版数と装置で稼働している第3のユニットのファームウェアの版数とを比較する。第2のユニットと第3のユニットとの版数が一致しなかった場合、第2のユニットのファームウェアを記憶する記憶領域に装置で稼働している第3のユニットが有する版のファームウェアをダウンロードする。第2のユニットは記憶領域にダウンロードされた版のファームウェアが実行されることによってファームウェアに従った所定の動作を行なう(例えば特許文献1参照)。
ディスクアレイ装置が運用中のときに不具合が発生すると、不具合の原因を調査するために、ディスクアレイ装置で不具合が発生した状況を再現する必要がある。しかし、従来技術ではユニットが実行しないファームウェアについては考慮していない。したがって、従来技術では不具合が発生した状況を正確に再現することができない問題があった。
また、従来技術ではユニットが実行しないファームウェアについては考慮していない。従って、記憶領域に複数のファームウェアを格納することが可能なユニットを有するディスクアレイ装置を再起動した場合、各ユニットは再起動後に再起動前とは異なるファームウェアを実行する問題があった。
特開2005−71042号公報
本発明は上記のような問題点を解決するために、ディスクアレイ装置内の機能毎の各ユニットに格納された各ファームウェアの版数および稼動するファームウェアを統一させることを目的とする。
本発明は上記の課題を解決するため、複数のファームウェアを格納したユニットを複数使用するディスクアレイ装置を以下のように制御する。ディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数を統一する。また複数のユニットで実行するファームウェアを統一する。この構成により、装置内のユニットと新たに取付けるユニットとの各ファームウェア及び稼動するファームウェアとを統一させることが可能となる。
また、ディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数の情報を取得し、取得したファームウェアの版数の情報が異なる場合に複数のユニットに同一の版数のファームウェアを送信する。ディスクアレイ装置の同一の機能を実行する複数のユニットの実行するファームウェアの情報を取得し、実行するファームウェアの情報が異なる場合に同一のファームウェアを実行させる情報を複数のユニットに送信する。この構成により、装置内のユニットと新たに取付けるユニットとの各ファームウェア及び稼動するファームウェアとを統一させることが可能となる。
また、複数のユニットは記憶手段を有し、複数のユニットの記憶手段の複数のファームウェアを格納する領域を統一する。この構成により、装置内のユニットと新たに取付けるユニットとの記憶領域内のファームウェアの格納領域も統一することができる。
また、ディスクアレイ装置が新たにユニットを認識した場合に、新たに認識したユニットと同一の機能を実行するユニットとの間の複数のファームウェアの版数を統一する。また、新たに認識されたユニットで実行するファームウェアと同一の機能を実行するユニットとの間で実行するファームウェアを統一する。この構成により、装置に新たなユニットが取付けられた場合でもユニットの設定を統一することができる。
また、ディスクアレイ装置が新たにユニットを認識するとディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数に統一する。また、新たに認識されたユニットで実行するファームウェアをディスクアレイ装置の同一の機能を実行する複数のユニットで実行するファームウェアに統一する。この構成により、ディスクアレイ装置で動作するユニットの状態に統一することが可能となるため、ディスクアレイ装置は安定した動作が可能となる。
また、新たに認識したユニットが実行中のファームウェアが記憶された記憶領域にダウンロードできないユニットの場合、新たに認識したユニットの記憶領域の実行中ではないファームウェアが記憶された領域とディスクアレイ装置の同一の機能を実行するユニットが実行する版数のファームウェアとを統一する。また、新たに認識したユニットが変更後の該ディスクアレイ装置の同一の機能を実行するユニットが実行する版数のファームウェアにより再起動した後で、新たに認識したユニットの記憶領域の実行中ではないファームウェアが記憶された領域とディスクアレイ装置の同一の機能を実行するユニットが実行する版数のファームウェアとを統一する。この構成により、現在実行中のファームウェアが格納されている領域に直接ファームウェアを格納することができないユニットであっても、自動で装置内のユニットと新たに取付けるユニットの各ファームウェア及び稼動するファームウェアを統一することが可能となる。
また、ディスクアレイ装置の同一の機能を実行する複数のユニットが再起動したときに実行するファームウェアを統一する。この構成により、装置又はユニットが再起動した場合であっても、ユニットの設定の統一を保つことが可能となる。
本発明によって、交換の対象のユニットのファームウェアの版数とディスクアレイ装置内で動作するユニットのファームウェアの版数とを統一させることができる。更に、交換の対象のユニットの記憶手段の稼動領域の番号とディスクアレイ装置内で動作するユニットの交換の対象のユニットの記憶手段の稼動領域の番号とを統一させることができる。交換の対象のユニットのファームウェアの版数が異なることによるユニットの誤動作を防ぐディスクアレイ装置を提供することができる。
図1は、本実施例のディスクアレイ装置1の構成図である。ディスクアレイ装置1を構成するユニットは多くの種類を有する。CM(Controller Module)ユニット2、3はディスクアレイ装置1の全体の制御を行う。SVC(Service Controller)ユニット41,42は装置全体の電源監視、制御を行う。CA(Channel Adapter)ユニット43,44は外部装置とCM2,3との間で情報の送受信を行う。外部装置とは例えばホスト装置である。DE(Device Enclosure)47,48は磁気ディスク装置を複数個格納する。PBC(Port Bypass Circuit)ユニット45,46はDEの制御、監視を行う。PSU(Power Suply unit)ユニット49,50は他の各ユニットに電源を供給する。BU(Battery unit)ユニット51,52は停電時に電源を供給する。RT(Router)ユニット53、54はディスクアレイ装置1のCM2とCM3との間、CM2およびCM3とPBC45およびPBC46との間を接続し、ルーティングを行う。各ユニットはバス4により接続されている。
ディスクアレイ装置1はCA43、CA44を経由してホスト装置に応答するため常に動作することを要求される。したがって、ディスクアレイ装置1の各ユニットは同一の機能を実行するユニットを複数有した冗長な構成となる。例えば、ディスクアレイ装置1はCM2とCM3の2つのCMを有する。この構成により一方のユニットが故障した場合でも故障していないユニットが継続して動作することによりディスクアレイ装置1全体としての動作が停止することはない。また、同一の機能を実行するユニット間では、ユニットに格納されたファームウェアの版数、実行するファームウェア、再起動後に実行するファームウェアが全て一致するように設定される。したがって、同一の機能を実行するユニット間の設定は統一される。ファームウェアはユニットの基本的な制御を行なうためにユニットに組み込まれたソフトウェアである。ユニットに固定的に搭載され、本来はあまり変更が加えられない。ユニットに内蔵されたROMやフラッシュメモリに記憶される。ファームウェアは、ユニットの機能の追加や不具合の修正のため、後から変更できるようになっているものが多い。改版されたファームウェアを識別するために付す数字を版数という。したがって、版数が異なるファームウェアを実行するユニットは異なる処理を実行する。
ディスクアレイ装置1はDE47および48内の磁気ディスク装置にシステムディスク90、システムディスク91を有する。システムディスク90、システムディスク91にはディスクアレイ装置1内の各ユニットにダウンロードするファームウェアのファイル92およびファイル93が格納される。システムディスクおよびファイルも冗長な構成となる。各ユニットはファームウェアをダウンロードして、ファームウェアの命令群に応じた動作することにより機能する。ファイル92には各版数のファームウェアが格納される。したがって、ファイル92は同じユニットのファームウェアであっても複数の版数のファームウェアを有する構成となる。ディスクアレイ装置1を構成するそれぞれのユニットは、2つの種類に分類可能である。1つ目の種類のユニットは、記憶手段の稼動領域にファームウェアのダウンロードが可能なユニットである。2つ目の種類のユニットは、記憶手段の稼動領域にファームウェアのダウンロードが不可能なユニットである。以降の説明のために、交換の対象となるユニットをユニット70とし、ディスクアレイ装置1内で動作するユニットをユニット80とする。
本実施例で交換の対象となるディスクアレイ装置1内のユニットについて説明する。図2はユニットの構成図である。ユニット60は実行部61と主記憶62と記憶手段63とインターフェース部64を有する。実行部61と主記憶62と記憶手段63とインターフェース部64はバス65により接続される。
実行部61は主記憶62に展開されたファームウェアに従った処理を実行する。実行部61は記憶手段63からファームウェアを呼び出して主記憶62に展開する。ユニット60は主記憶62に読出したファームウェアに応じた処理を実行する。従って、ファームウェアの版数が異なるとユニット60は異なる処理を実行することとなる。ディスクアレイ装置1内の各ユニットが有する主記憶の記憶容量は異なる。大容量の主記憶を搭載したユニットは、記憶手段に圧縮形式で保存されているファームウェアを主記憶上に展開する。大容量の主記憶を搭載したユニットは主記憶上に全てのファームウェアを展開して稼動する。大容量の主記憶を有するユニットは、例えばCMである。大容量の主記憶を有するユニットは、主記憶にファームウェアを展開した後、記憶手段に対する読込処理は発生しない。したがって、記憶手段内のファームウェアの更新が可能である。大容量の主記憶を搭載したユニットは高価である。一方、小容量の主記憶を搭載したユニットは、記憶手段に保存されているファームウェアを主記憶上にすべて展開することはできない。主記憶の容量が足りないためである。小容量主記憶を搭載したユニットは、例えば、制御を行うユニットであるPBC(Port Bypass Circuit)ユニットおよび装置全体の電源監視や制御を行うSVC(SerVice Controller)ユニット等がある。小容量の主記憶を搭載したユニットは安価である。また、小容量の主記憶を搭載したユニットは記憶手段内にファイルシステムを有するものもある。ファイルシステムを有するユニットは複数のファームウェアをユニットの機能ごとに分割して管理する。ディスクアレイ装置内でユニットが稼動するとき、ユニットの実行部は、ユニットの現在の稼動に必要なファームウェアのみを記憶手段内のファイルシステムから主記憶に展開する。従って、ファイルシステムを採用したユニットは、ユニットの稼動中は記憶手段内の稼動するファームウェアが格納された領域に対する読み込み処理が常に発生する。
主記憶62は、記憶手段63に格納されたファームウェアが展開されるメモリである。例えばRAMである。インターフェース部64はCM2及びCM3と接続する。CM2又はCM3から情報を受信すると実行部61に受け渡す。またユニット60の実行部61が処理をした結果をCM2またはCM3に受け渡す。
記憶手段63はファームウェアを格納する。記憶手段63は複数の記憶領域を有する。記憶手段63は、第一の記憶領域631、第二の記憶領域632、第三の記憶領域633を有する。ユニット60を機能させる一つのまとまりからなるファームウェアは記憶領域に格納される。具体的には、記憶手段63は第一の記憶手段631にファームウェアを格納し、第二の記憶手段632に別のファームウェアを格納する。複数のファームウェアを記憶することにより、例えば一方のファームウェアに不具合があることが判明した場合に、ユニットに格納された他の版数のファームウェアを実行することにより、不具合を回避することが可能となる。したがって、ユニット60は、記憶手段63の第一の記憶領域631あるいは第二の記憶領域632から主記憶62に展開するファームウェアを選択することが可能である。ユニット60の実行部61が主記憶62に展開して実行するファームウェアが格納される記憶領域を稼動領域634とする。一方、ユニットが主記憶に展開しないファームウェアが格納されている領域を非稼動領域635とする。稼動領域634となる記憶領域は第三の記憶手段633に格納された稼動領域を識別する番号に応じて切り替わる。したがって、稼動領域634は稼動領域を識別する番号に応じて第一の記憶領域631または第二の記憶領域632のどちらかとなる。記憶手段63は例えば、フラッシュメモリである。
以降の説明のために、図3(b)に交換の対象となるユニット70の構成を示し、図3(a)にディスクアレイ装置内で動作するユニット80の構成を示す。交換の対象となるユニット70は、実行部71、主記憶72、記憶手段73およびインターフェース部74を有する。実行部71、主記憶72、記憶手段73およびインターフェース部74は、バス75により接続される。記憶手段は第一の記憶領域731、第二の記憶領域732、第三の記憶領域733を有する。また、稼動領域は稼動領域734、非稼動領域は非稼動領域735とする。ディスクアレイ装置内で動作するユニット80は、実行部81、主記憶82、記憶手段83およびインターフェース部84を有する。実行部81、主記憶82、記憶手段83およびインターフェース部84は、バス85により接続される。記憶手段は第一の記憶領域831、第二の記憶領域832、第三の記憶領域833を有する。また、稼動領域は稼動領域834、非稼動領域は非稼動領域835とする。
次にCMユニットの説明をする。ディスクアレイ装置1は複数のCMユニットを有する。図1ではCM2及びCM3である。以下はCM2について説明するがCM3も同様の構成である。図4にCMの構成図を示す。CM2は、実行部201、主記憶202、記憶手段203、インターフェース部204を有する。実行部201、主記憶202、記憶手段203およびインターフェース部204は、バス205により接続される。CM2の実行部201は、書込判別部、版数判別部、第一の記憶領域のファームウェア版数一致部、第二の記憶領域のファームウェア版数一致部、稼働領域一致部、および、次稼動領域一致部として機能する。CM2の実行部201は、CM2の記憶手段203に格納された書込判別プログラム211、版数判別プログラム222、第一の記憶領域のファームウェア版数一致プログラム233、第二の記憶領域のファームウェア版数一致プログラム244、稼働領域一致プログラム255、および、次稼動領域一致プログラム266をCM2の主記憶202に展開して実行する。
書込判別部は交換の対象のユニット70の記憶手段73の稼働領域734にファームウェアを書き込み不可能であるかどうかを判別する。
版数判別部は、ディスクアレイ装置1内で動作中のユニット80の記憶手段83に格納されるファームウェアの版数および交換の対象のユニット70の記憶手段73に格納されているファームウェアの版数を検出する。また、版数判別部は、ディスクアレイ装置1内で動作中のユニット80の記憶手段83の稼動領域834を識別する番号および交換の対象のユニット70の記憶手段73の稼動領域734を識別する番号を検出する。また、版数判別部は、ディスクアレイ装置1内で動作中のユニット80の記憶手段83の次稼動領域を識別する番号および交換の対象のユニット70の記憶手段73の次稼動領域を識別する番号を検出する。
稼働領域一致部は、版数判別部におけるディスクアレイ装置1内で動作中のユニット80の記憶手段83の稼働領域834の識別番号と交換の対象のユニット70の記憶手段73の稼働領域734の識別番号とが不一致であった場合に、交換の対象のユニット70の記憶手段73の稼動領域734に対応する識別番号とディスクアレイ装置1内で動作中のユニット80の記憶手段83の稼動領域834に対応する識別番号とを一致させる。
第一の記憶領域のファームウェア版数一致部は、ディスクアレイ装置1内で動作中のユニット80の記憶手段83の第一の記憶領域831に格納されるファームウェアの版数と交換の対象のユニット70の記憶手段73の第一の記憶領域731に格納されるファームウェアの版数とを一致させる。
第二の記憶領域のファームウェア版数一致部は、ディスクアレイ装置1内で動作中のユニット80の記憶手段83の第二の記憶領域832に格納されるファームウェアの版数と交換の対象のユニット70の記憶手段73の第二の記憶領域732に格納されるファームウェアの版数とを一致させる。
次稼動面側面一致部26は、ディスクアレイ装置1内で動作中のユニット80が再起動した後に主記憶82に展開するファームウェアが記憶された記憶手段83の稼動領域834に対応する識別番号と交換の対象のユニット70が再起動した後に主記憶72に展開するファームウェアが記憶された記憶手段73の稼動領域734に対応する識別番号とを一致させる。
CM2の記憶手段203はファームウェア制御テーブル27が記憶される。ファームウェア制御テーブル27はCM2がディスクアレイ装置1内の各ユニットの記憶手段に格納されたファームウェアを管理する情報を記憶する。次にファームウェア制御テーブル27について説明する。
図5は、CMが有するファームウェア制御テーブル27の構成である。なお、図5のファームウェア制御テーブル27は本発明の特徴に関連した部分の項目のみの構成であり、従来のファームウェアの制御に関する部分は省略する。ファームウェア制御テーブルには、ディスクアレイ装置1内で動作するユニット80の状態、交換の対象のユニット70の状態、交換の対象のユニットに対する処理条件の設定値が格納される。
ファームウェア制御テーブル27は、動作ユニット領域1ファームウェア版数2701、動作ユニット領域2ファームウェア版数2702、動作ユニット稼働領域識別番号2703、動作ユニット次稼働領域識別番号2704、交換ユニット領域1ファームウェア版数2705、動作ユニット領域2ファームウェア版数2706、交換ユニット稼働領域識別番号2707、交換ユニット次稼働領域識別番号2708を有する。
動作ユニット領域1ファームウェア版数2701は、ディスクアレイ装置1内で動作するユニット80の記憶手段83の第一の記憶領域831に格納されたファームウェアの版数の情報である。動作ユニット領域2ファームウェア版数2702は、ディスクアレイ装置1内で動作するユニット80の記憶手段83の第二の記憶領域832に格納されたファームウェアの版数の情報である。動作ユニット稼働領域識別番号2703は、ディスクアレイ装置1内で動作するユニット80の記憶手段83の稼動領域834に対応する記憶領域を識別する番号である。動作ユニット次稼働領域識別番号2704は、ディスクアレイ装置1内で動作するユニット80がリブートした後に稼動領域とする記憶領域を識別する番号である。
交換ユニット領域1ファームウェア版数2705は、交換の対象のユニット70の記憶手段73の第一の記憶領域731に格納されたファームウェアの版数の情報である。動作ユニット領域2ファームウェア版数2706は、交換の対象のユニット70の記憶手段73の第二の記憶領域732に格納されたファームウェアの版数の情報である。交換ユニット稼働領域識別番号2707は、交換の対象のユニット70の記憶手段73の稼動領域734に対応する記憶領域を識別する番号である。交換ユニット次稼働領域識別番号2708は、交換の対象のユニット70がリブートした後に稼動領域とする記憶領域を識別する番号である。
本実施例は動作ユニット領域1ファームウェア版数2701、動作ユニット領域2ファームウェア版数2702、動作ユニット稼働領域識別番号2703、動作ユニット次稼働領域識別番号2704を元に、ディスクアレイ装置1内で動作中のすべてのユニットの記憶手段の各記憶領域に格納されたファームウェアの版数、および、記憶手段の稼働領域、および、ユニットがリブートした後の稼働領域を一致させる。
なお、ディスクアレイ装置1内で動作中のユニットの種類を基準としてユニットの記憶手段の各記憶領域に格納されたファームウェアの版数、および、記憶手段の稼働領域、および、ユニットがリブートした後の稼働領域を一致させるためには、以下の構成とする。ユニットの種類毎に動作ユニット領域1ファームウェア版数2701、動作ユニット領域2ファームウェア版数2702、動作ユニット稼働領域識別番号2703、動作ユニット稼働領域識別番号2704を設ける。
モードパラメタ2709は、リブートBIT、稼働領域変更BITおよびファームウェアダウンロードBITを有する。リブートBITは、交換の対象のユニット70をリブートするか否かを判定するビットである。稼働領域変更BITは、ユニット70の記憶手段73の稼動領域734を変更するか否かを判定するビットである。ファームウェアダウンロードBITは、ユニット70の記憶手段73の第一の記憶領域731あるいは第二の記憶領域732にファームウェアをダウンロードするか否かを判定するビットである。モードパラメタ2709は、図8に示す「稼働領域にファームウェアを書き込み可能なユニットの場合のファームウェアの版数のチェック」のフローチャート、及び図7に示す「稼働領域にファームウェアを書き込み不可能なユニットの場合のファームウェアの版数のチェック」のフローチャートで示される処理においてCM2の実行部201が設定する。設定されたモードパラメタ2709は、図6に示す「ユニットのファームウェアの版数の一致」のフローチャートで示される処理中でCM2の実行部201が処理の判断に使用する。
ダウンロード先指定パラメタ2710は、交換の対象のユニット70の記憶手段73のファームウェアをダウンロードする先の記憶領域を識別する番号を記憶する。版数指定パラメタ2711は、交換の対象のユニット70の記憶手段73の記憶領域にダウンロードするファームウェアの版数を記憶する。稼働領域変更指定パラメタ2712は、交換の対象のユニット70がリブートした後に稼働領域734となる記憶領域を識別する番号が設定される。
図6は、本発明に係るディスクアレイ装置1に新たにユニットを組み込むときの処理のフローチャートである。なお、ディスクアレイ装置1全体は、新たなユニットを組み込む間も継続して動作する。新たなユニットを組み込むときディスクアレイ装置1のCM2は以下の3つの状態を装置で稼動するユニットと一致させる。一つ目の状態は、交換の対象のユニット70の記憶手段73の第一の記憶領域731及び第二の記憶領域732のファームウェアの版数をディスクアレイ装置1内で動作するユニット80の記憶手段83の第一の記憶領域831及び第二の記憶領域832に格納されたファームウェアの版数に一致させる。二つ目は、交換の対象のユニット70の記憶手段73の稼動領域734をディスクアレイ装置1内で動作するユニット80の記憶手段83の稼動領域834に一致させる。三つ目は、交換の対象のユニット70が再起動した後に稼動する記憶手段73の稼動領域734をディスクアレイ装置1内で動作するユニット80が再起動した後に稼動する記憶手段83の稼動領域834に一致させる。
CM2の実行部201は、CM2の記憶手段203に格納された書込判別プログラム211、版数判別プログラム222、第一の記憶領域のファームウェア版数一致プログラム233、第二の記憶領域のファームウェア版数一致プログラム244、稼働領域一致プログラム255、および、次稼動領域一致プログラム266をCM2の主記憶202に展開して実行する。CM2は交換の対象のユニット70をディスクアレイ装置1が認識したときに、交換の対象のユニット70の状態とディスクアレイ装置1内で動作するユニット80の状態とを一致させるために、書込判別部、版数判別部、第一の記憶領域のファームウェア版数一致部、第二の記憶領域のファームウェア版数一致部、稼働領域一致部、および、次稼動領域一致部として機能する。
まず、CM2の実行部201は交換の対象のユニット70を確認する(S301)。具体的には、CM2の実行部201は交換の対象のユニット70の記憶手段73の第三の記憶領域からユニット70の種類情報、ユニット70の記憶手段73の稼働領域734に該当する記憶領域を識別する番号、ユニット70がリブートした後に稼動領域となる記憶手段73の記憶領域を識別する番号、ユニット70の記憶手段73の第一の記憶領域731に格納されたファームウェアの版数、ユニット70の記憶手段73の第二の記憶領域732に格納されたファームウェアの版数、ユニット70のシリアルナンバ、ユニット70のOS情報、ユニット70のファイルシステム情報を取得する。CM2の実行部201は取得した情報をCM2のファームウェア制御テーブル27に登録する。
次に、CM2の実行部201は交換の対象のユニット70から取得したOS情報とファイルシステム情報とから、交換の対象のユニット70は記憶手段73の稼動領域734にファームウェアをダウンロードすることが可能か否かを判定する(S302)。例えば、S302の判定は、CM2が稼動領域に直接ファームウェアをダウンロード可能か否かの情報とOS情報とを予め関連付けた情報、および、稼動領域に直接ファームウェアをダウンロード可能か否かの情報とファイルシステム情報とを関連付けた情報を予め記憶手段203に記憶しておくことにより可能である。
なお、S302の判定は、交換の対象のユニット70の種別のみによりユニット70の記憶手段73の稼動領域734にファームウェアをダウンロードすることができるユニットか否かを判断することが可能な場合は、交換の対象のユニット70の種別の情報と稼動領域に直接ファームウェアをダウンロード可能か否かの情報とを関連付けた情報を基準とすることも可能である
また、交換の対象のユニット70の種別、版数情報及びシリアルナンバなどの組合せにより交換の対象のユニット70の記憶手段73の稼動領域734にファームウェアをダウンロードすることができるユニットか否かを判断することが可能な場合には、交換の対象のユニット70の種別、版数情報及びシリアルナンバなどの組合せにより判定することも可能である。
書込判別部は、交換の対象のユニット70のOS情報及びファイルシステム情報から交換の対象のユニット70の稼動領域にファームウェアが書き込み可能であるかどうかを判別する。したがって、仮にあらかじめ登録したOS情報及びファイルシステム情報の範囲内であれば記憶手段の稼動領域に書き込み可能なユニットが開発途中でユニット仕様が変わり、ユニットが記憶手段の稼動領域に書き込み不可能になったとしても、ファームウェアダウンロード制御プログラム側に影響がない。
交換の対象のユニット70が記憶手段73の稼動領域734にファームウェアをダウンロードすることができる場合は、CM2の実行部201は「稼働領域にファームウェア書き込み可能なユニットの版数チェック」処理(S303)を実行する。S303の処理の詳細は図8に示す。一方、交換の対象のユニット70が記憶手段73の稼動領域734にファームウェアをダウンロードすることができない場合は、CM2の実行部201は「稼働領域にファームウェアの書き込みが不可能なユニットの版数チェック」処理(S304)を実行する。S304の処理の詳細は図7に示す。
CM2の実行部201は、S303あるいはS304により、交換の対象のユニット70のファームウェアの版数のチェックが完了するとCM2のファームウェア制御テーブル27を参照する。CM2の実行部201はファームウェア制御テーブル27のモードパラメタ2709のファームウェアダウンロードBITがONになっているかどうかを判定する(S305)。
ファームウェアダウンロードBITがONの場合(S305:Yes)には、CM2の実行部201は版数指定パラメタ2711によって特定される交換の対象のユニット70の記憶手段73の記憶領域に対してダウンロード先指定パラメタ2710によって特定されるファームウェアのダウンロードを行う(S306)。
次にCM2の実行部201はモードパラメタ2709の稼働領域変更BITがONになっているかどうかを判定する(S307)。稼働領域変更BITがONの場合(S307:Yes)には、実行部201は交換の対象のユニット70の記憶手段73の稼働領域変更指定パラメタ2712に合致する識別番号に対応する記憶領域を稼動領域734に変更する(S308)。具体的には、CM2の実行部201は、設定情報を交換の対象のユニット70に送信する。ユニット70の実行部71は受け取った設定情報を第三の記憶領域733に記憶する。
次にCM2の実行部201はモードパラメタ2709のリブートBITがONになっているかどうかを判定する(S309)。リブートBITがONの場合(S309:Yes)は、実行部201は交換の対象のユニット70に対してリブート指示を発信する(S310)。リブートBITがOFFの場合(S309:No)は、実行部201は処理を終了する。したがって、CM2の実行部201は、モードパラメタ2709のリブートBITがONの場合、交換の対象のユニット70がリブートした後にS301からS309までの処理を再度実行する。CM2の実行部201は、モードパラメタ2709のリブートBITがONにならなくなるまで実行することとなる。
なお、交換の対象のユニット70が記憶手段73の稼動領域734にファームウェアをダウンロードすることができる場合は、最大で1回のリブートによりディスクアレイ装置1内で動作中のユニット80と交換の対象のユニット70との間で記憶手段の各記憶領域に格納されたファームウェアの版数および記憶手段の稼動領域を一致させることが可能である。また、交換の対象のユニット70が記憶手段73の稼動領域734にファームウェアをダウンロードすることができない場合は、最大で2回のリブートによりディスクアレイ装置1内で動作中のユニット80と交換の対象のユニット70との間で記憶手段の各記憶領域に格納されたファームウェアの版数および記憶手段の稼動領域を一致させることが可能である。
したがって、図6のフローチャートが実施される場合にリブートが最大の回数を超えたにもかかわらずモードパラメタ2709のリブートBITがONである場合は、交換の対象のユニット70が想定通りにファームウェアの版数および記憶手段の面をディスクアレイ装置1内で動作中のユニット80と一致させることができていない可能性がある。したがって、対象となる交換の対象のユニット70を異常とみなして検出することも可能である。
図7は、交換の対象のユニット70の記憶手段73の稼動領域734にファームウェアをダウンロードすることができない場合のファームウェアの版数をチェックする処理のフローチャートである。図7のフローチャートの各表記を説明する。「70」は装置に取付けるユニットを示す。「80」は装置で稼動するユニットを示す。「稼動領域734」は装置に取付けるユニットの稼動するファームウェアが格納された領域を示す。「稼動領域834」は装置内で稼動するユニットの稼動するファームウェアが格納された領域を示す。「稼動版数70」は、稼動領域734に格納されたファームウェアの版数を示す。「稼動版数80」は稼動領域834に格納されたファームウェアの版数を示す。「非稼動版数70」は、装置に取付けるユニットの記憶領域の内、稼動領域ではない領域に格納されたファームウェアの版数を示す。「非稼動版数80」は、装置内で稼動するユニットの記憶領域の内、稼動領域ではない領域に格納されたファームウェアの版数を示す。「次稼動領域70」はユニット70が再起動した後に稼動するファームウェアが格納された領域を示す。「次稼動領域80」はユニット80が再起動した後に稼動するファームウェアが格納された領域を示す。
CM2の実行部201はファームウェア制御テーブル27に登録した動作ユニット稼働領域識別番号2703と交換ユニット稼働領域識別番号2707とを比較する(S401)。S401で比較した番号が一致している場合は、実行部はS407の処理を実行する。
CM2の実行部201は、ファームウェア制御テーブル27のモードパラメタ2709のリブートBITをONにする(S402)。現在、交換の対象のユニット70の稼動領域734に対応する識別番号とディスクアレイ装置1内で動作中のユニット80の稼動領域834に対応する識別番号とが異なるため、ユニット70をリブートさせる処理が必要だからである。
次にCM2の実行部201は動作ユニット稼働領域識別番号2703と交換ユニット次稼働領域識別番号2708とが一致しているか判定する(S403)。S403で比較する番号が不一致であると判断した場合(S403:Yes)、CM2の実行部201はファームウェア制御テーブル27の稼働領域変更指定パラメタ2712にディスクアレイ装置1内で動作中のユニット80の稼動領域834に対応する識別番号を設定する(S404)。現在、交換の対象のユニット70の稼動領域734に対応する識別番号とディスクアレイ装置1内で動作中のユニット80の稼動領域834に対応する識別番号が異なるためである。また、CM2の実行部201はモードパラメタ2709の稼働領域変更BITをONにする(S404)。交換の対象のユニット70の稼動領域734に対応する記憶領域を変更させるためである。
次にCM2の実行部201は、交換の対象のユニット70の記憶手段73の非稼働領域735に格納されたファームウェアの版数とディスクアレイ装置1内で動作中のユニット80の稼動領域834に格納されたファームウェアの版数とが一致しているかどうかを判定する(S405)。
具体的には、交換の対象のユニット70の非稼働領域735のファームウェアの版数は、交換ユニット稼働領域識別番号2707が「1」である場合は、交換の対象のユニット70の記憶手段73の第二の記憶領域732に格納されたファームウェアの版数である。
また、交換の対象のユニット70の非稼働領域735のファームウェアの版数は、交換ユニット稼働領域識別番号2707が「2」である場合は、交換の対象のユニット70の記憶手段73の第一の記憶領域731に格納されたファームウェアの版数が交換の対象のユニット70の非稼働領域735のファームウェアの版数である。また、動作ユニット稼働領域識別番号2703が「1」である場合は、ディスクアレイ装置1内で動作中のユニット80の非稼働領域835のファームウェアの版数は、ディスクアレイ装置1内で動作するユニット80の記憶手段83の第二の記憶領域832に格納されたファームウェアの版数である。また、動作ユニット稼働領域識別番号が「2」である場合は、ディスクアレイ装置1内で動作中のユニット80の非稼働領域835のファームウェアの版数は、ディスクアレイ装置1内で動作するユニット80の記憶手段83の第一の記憶領域831に格納されたファームウェアの版数である。
S405で比較したファームウェアの版数が不一致である場合、CM2の実行部201はファームウェア制御テーブル27のダウンロード先指定パラメタ2710に交換の対象のユニット70の非稼働領域735に対応する識別番号を設定する。さらに、実行部201はディスクアレイ装置1内で動作するユニット80の稼働領域834に対応する識別番号に格納されたファームウェアの版数を版数指定パラメタ2711に設定する。実行部201は、交換の対象のユニット70の非稼動領域735にディスクアレイ装置1内で動作するユニット80の稼動領域834に格納された版数のファームウェアをダウンロードさせるためにモードパラメタ2709のファームウェアダウンロードBITをONに設定する(S406)。
次にS401の判定結果が、交換の対象のユニット70稼働領域734に対応する識別番号とディスクアレイ装置1内で動作するユニット80の稼働領域834に対応する識別番号とが一致した場合の処理について説明する。
ファームウェア制御テーブル27の動作ユニット稼働領域識別番号2703と交換ユニット稼働領域識別番号2707とが一致する場合(S401:No)、CM2の実行部201は交換の対象のユニット70の稼働領域734に格納されたファームウェアの版数とディスクアレイ装置1内で動作するユニット80の稼働領域834に格納されたファームウェアの版数とを比較する(S407)。ユニット70の稼動領域734およびユニット80の稼動領域834のファームウェアの版数が一致する場合にはユニット70をリブートさせることなく、交換の対象のユニット70の状態とディスクアレイ装置1内で動作するユニット80の状態とを合致させることができるためである。状態とはユニット70の記憶手段73の第一の記憶領域731および第二の記憶領域732に格納されたファームウェアの版数、ユニット70の記憶手段73の稼動領域734、および、ユニット70がリブート後に展開する記憶領域を識別する番号である。
S407で比較する版数が不一致である場合(S407:Yes)には、CM2の実行部201はファームウェア制御テーブル27内のモードパラメタ2709のリブートBITをONにする(S408)。以降の設定後にユニット70をリブートすることを必要とするためである。すなわち、ユニット70はリブート処理を行い、リブート前のユニット70の稼動領域734をリブート後に非稼動領域735として、非稼動領域735にディスクアレイ装置1で動作中のユニット80の稼動領域834のファームウェアを書き込む必要があるからである。
次にCM2の実行部201は交換の対象のユニット70がリブート後に稼動領域734とする識別番号とディスクアレイ装置1内で動作中のユニット80の記憶手段83の稼働領域834に対応する識別番号とが一致しているか判定する。実行部201はファームウェア制御テーブル27の交換ユニット次稼働領域識別番号2708と動作ユニット稼働領域識別番号2703とが一致しているかを判定する(S409)。
S409で比較した番号が一致していれば、CM2の実行部201はファームウェア制御テーブル27の稼働領域変更指定パラメタ2712にディスクアレイ装置1内で動作するユニット80の記憶手段83の非稼動領域835に対応する識別番号を設定する。実行部201はモードパラメタ2709の稼働領域変更BITをONに設定する(S410)。
次にCM2の実行部201は交換の対象のユニット70の非稼働領域735に格納されたファームウェアの版数とディスクアレイ装置1内で動作中のユニット80の稼働領域834に格納されたファームウェアの版数が一致しているかどうかを判定する(S411)。実行部201は、交換ユニット稼働領域識別番号2707ではない識別番号に対応する交換ユニット領域1ファームウェア版数2705あるいは交換ユニット領域2ファームウェア版数2706から交換の対象のユニット70の非稼動領域735のファームウェアの版数を特定する。また、実行部201は、動作ユニット稼働領域識別番号2703に対応する動作ユニット領域1ファームウェア版数2701あるいは動作ユニット領域2ファームウェア版数2702からディスクアレイ装置1内で動作中のユニット80の稼動領域834のファームウェアの版数を特定する。
CM2の実行部201は、S411で比較する版数が不一致の場合には、ファームウェア制御テーブル27のダウンロード先指定パラメタ2710に交換の対象のユニット70の非稼働領域735に対応する識別番号を設定する。実行部201は版数指定パラメタ2711にディスクアレイ装置1内で動作するユニット80の稼働領域834に格納されたファームウェアの版数を設定する。実行部201はモードパラメタ2709のファームウェアダウンロードBITをONに設定する(S412)。
次にS407で比較する版数が一致している場合の処理を説明する。S407で比較する版数が一致する場合(S407:No)は、CM2の実行部201は交換の対象のユニット70の非稼働領域735のファームウェアの版数とディスクアレイ装置1内で動作中のユニット80の非稼働領域835のファームウェアの版数が一致しているかどうかを判定する(S413)。CM2の実行部201は、S413で比較した版数が一致していれば、S415を実行する。CM2の実行部201は、S413で比較した版数が不一致の場合には、ファームウェア制御テーブル27のダウンロード先指定パラメタ2710に交換の対象のユニット70の非稼働領域735に対応する識別番号を設定する。非稼働領域735に対応する識別番号はファームウェア制御テーブル27の交換ユニット稼働領域識別番号2707とは異なる値となる。実行部201は、ファームウェア制御テーブル27の版数指定パラメタ2711にディスクアレイ装置1内で動作するユニット80の非稼働領域835に格納されたファームウェアの版数を設定する。実行部201は、モードパラメタ2709のファームウェアダウンロードBITをONに設定する(S414)。
次に実行部201は交換の対象のユニット70がリブート後に稼動領域734とする記憶領域の識別番号とディスクアレイ装置1内で動作するユニット80がリブート後に稼動領域834とする記憶領域の識別番号とが一致しているか判定する(S415)。具体的には、実行部201は動作ユニット次稼働領域識別番号2704と交換ユニット次稼働領域識別番号2708とが一致するかを判定する。実行部201は、S415で比較する番号が一致していれば、処理を終了する。実行部201は、S415で比較する番号が不一致の場合には、ファームウェア制御テーブル27の稼働領域変更指定パラメタ2712に動作ユニット次稼働領域識別番号を設定する。また実行部201は、モードパラメタ2709の稼働領域変更BITをONに設定する(S416)。

図8は、ユニットの記憶手段の稼動領域にファームウェアをダウンロードすることができるユニットである場合のファームウェアの版数をチェックする処理のフローチャートである。図8のフローチャートの各表記を説明する。「70」は装置に取付けるユニットを示す。「80」は装置で稼動するユニットを示す。「稼動領域734」は装置に取付けるユニットの稼動するファームウェアが格納された領域を示す。「稼動領域834」は装置内で稼動するユニットの稼動するファームウェアが格納された領域を示す。「稼動版数70」は、稼動領域734に格納されたファームウェアの版数を示す。「稼動版数80」は稼動領域834に格納されたファームウェアの版数を示す。「非稼動版数70」は、装置に取付けるユニットの記憶領域の内、稼動領域ではない領域に格納されたファームウェアの版数を示す。「非稼動版数80」は、装置内で稼動するユニットの記憶領域の内、稼動領域ではない領域に格納されたファームウェアの版数を示す。「次稼動領域70」はユニット70が再起動した後に稼動するファームウェアが格納された領域を示す。「次稼動領域80」はユニット80が再起動した後に稼動するファームウェアが格納された領域を示す。
CM2の実行部201は、交換の対象のユニット70の稼働領域734に対応する識別番号とディスクアレイ装置1内で動作するユニット80の稼働領域834に対応する識別番号とを比較する(S501)。実行部201は、S501で比較した番号が一致している場合は、S507の処理を実行する。
一方、実行部201は、S501で比較した番号が不一致の場合には、S502以降の処理を実行する。まず実行部201は、ファームウェア制御テーブル27内のモードパラメタ2709のリブートBITをONに設定する(S502)。次に実行部201は、交換ユニット次稼働領域識別番号2708と動作ユニット稼働領域識別番号2703とが一致しているか判定する(S503)。S503で比較した番号が一致していれば、実行部はS505の処理を実行する。一方、S503で比較した番号が不一致の場合には、実行部201はファームウェア制御テーブル27の稼働領域変更指定パラメタ2712に動作ユニット稼働領域識別番号2703を設定する。実行部は、モードパラメタ2709の稼働領域変更BITをONに設定する(S504)。
次に、CM2の実行部201は交換の対象のユニット70の非稼働領域735に格納されたファームウェアの版数とディスクアレイ装置1内で動作中のユニット80の稼働領域834に格納されたファームウェアの版数とが一致しているか判定する(S505)。実行部201は、交換ユニット稼働領域識別番号2707ではない識別番号に対応する非稼動領域735のファームウェアの版数を交換ユニット領域1ファームウェア版数2705あるいは交換ユニット領域2ファームウェア版数2706から抽出する。また、実行部201は動作ユニット稼働領域識別番号2703に対応するディスクアレイ装置1内で動作するユニット80の稼動領域834のファームウェアの版数を動作ユニット領域1ファームウェア版数2701あるいは動作ユニット領域2ファームウェア版数2702から抽出する。
CM2の実行部201は、S505で比較した版数が一致していれば処理を終了する。一方、S505で比較した版数が不一致の場合、実行部201はファームウェア制御テーブル27のダウンロード先指定パラメタ2710に交換の対象のユニット70の非稼働領域735に対応する識別番号を設定する。また、実行部201は、版数指定パラメタ2711に動作ユニット稼働領域識別番号2703に対応する稼動領域734のファームウェアの版数を設定する。また、実行部201は、モードパラメタ2709のファームウェアダウンロードBITをONに設定する(S506)。その後、処理を終了する。
S501の判定結果、実行部201は交換の対象のユニット70の稼働領域734に対応する識別番号とディスクアレイ装置1内で動作中のユニット80の稼働領域834に対応する識別番号とが一致した場合は、実行部201は交換の対象のユニット70の稼働領域734に格納されたファームウェアの版数とディスクアレイ装置1内で動作中のユニット80の稼働領域834に格納されたファームウェアの版数とを判定する(S507)。
実行部201は、S507で比較した版数が一致している場合にはS511の処理を行う。一方、S507で比較した版数が不一致の場合には、実行部201はファームウェア制御テーブル27のダウンロード先指定パラメタ2710に交換の対象のユニット70の稼働領域734に対応する識別番号を設定する。また、実行部201は、動作ユニット稼働領域識別番号2703と動作ユニット領域1ファームウェア版数2701と動作ユニット領域2ファームウェア版数2702とから特定されるディスクアレイ装置1内で動作するユニット80の稼働領域834に格納されたファームウェアの版数を版数指定パラメタ2711に設定する。さらに実行部201は、モードパラメタ2709のファームウェアダウンロードBITおよびリブートBITをONに設定する(S508)。
次に実行部201は交換ユニット次稼働領域識別番号2708とディスクアレイ装置1内で動作中のユニット80の稼働領域834に対応する識別番号とが一致しているか判定する(S509)。
実行部201は、S509で比較した番号が一致していれば処理を終了する。一方、S509で比較した番号が不一致の場合には、実行部201はファームウェア制御テーブル27の稼働領域変更指定パラメタ2712に動作ユニット稼働領域識別番号2703を設定する。実行部201は、モードパラメタ2709の稼働領域変更BITをONに設定する(S510)。その後、処理を終了する。
次に、S507の判定結果、交換の対象のユニット70の稼働領域734に格納されたファームウェアの版数とディスクアレイ装置1内で動作中のユニット80の稼働領域834に格納されたファームウェアの版数とが一致する場合を説明する。
CM2の実行部201は交換の対象のユニット70の非稼働領域735に格納されたファームウェアの版数とディスクアレイ装置1内で動作中のユニット80の非稼働領域835に格納されたファームウェアの版数とが一致しているか判定する(S511)。実行部201は、S511で比較した版数が一致していればS513の処理を行う。実行部201は、S511で比較した版数が不一致の場合にはファームウェア制御テーブル27のダウンロード先指定パラメタ2710に交換の対象のユニット70の非稼働領域735に対応する識別番号を設定する。実行部201は、版数指定パラメタ2711にディスクアレイ装置1内で動作中のユニット80の非稼働領域835に格納されたファームウェアの版数を設定する。実行部201は、モードパラメタ2709のファームウェアダウンロードBITをONに設定する(S512)。
次に実行部201は交換ユニット次稼働領域識別番号2708が動作ユニット次稼働領域識別番号2704と一致しているか判定する(S513)。実行部201は、S513で比較した番号が一致していれば処理を終了する。一方、実行部201はS513で比較した番号が不一致の場合には、ファームウェア制御テーブル27の稼働領域変更指定パラメタ2712に動作ユニット次稼働領域識別番号2704を設定する。また、実行部201は、モードパラメタ2709の稼働領域変更BITをONに設定する(S514)。その後処理を終了する。
以上の処理により、ディスクアレイ装置1が動作中でのユニットを交換する作業において、稼動領域にファームウェアをダウンロードすることが可能であるユニットと稼動領域にファームウェアをダウンロードすることが不可能であるユニットとがディスクアレイ装置1内に混在する場合でも、交換の対象のユニット70とディスクアレイ装置1内で動作するユニット80の各記憶領域に格納されたファームウェアの版数を一致させることが可能となる。
また、ディスクアレイ装置1内で動作するユニット80の記憶手段83の稼動領域834に対応する識別番号が一致し、交換の対象のユニット70がリブート後に稼動領域734とする記憶領域も一致する。一般にユニットは新しい版数のファームウェアを稼動領域に格納し、旧い版数のファームウェアを非稼動領域に格納する。したがって、例えば障害が発生したときなどにディスクアレイ装置1全体のファームウェアの版数を容易に切り替えることが可能となる。
なお、本実施例では、ディスクアレイ装置1内のユニットを同時に複数交換する構成ではない。同時に複数のユニットを交換することを可能にするためには以下の構成とする。ファームウェア制御テーブル27の動作ユニット領域1ファームウェア版数2701、動作ユニット領域2ファームウェア版数2702、動作ユニット稼働領域識別番号2703、動作ユニット次稼働領域識別番号2704、交換ユニット領域1ファームウェア版数2705、交換ユニット領域2ファームウェア版数2706、交換ユニット稼働領域識別番号2707、交換ユニット次稼働領域識別番号2708、モードパラメタ2709、ダウンロード先指定パラメタ2710、版数指定パラメタ2711、および稼働領域変更指定パラメタ2712のユニットに固有の情報を、ユニット毎に用意する。CM2の実行部201がファームウェア制御テーブル27を参照する際に、現在の処理の対象である交換の対象のユニット70から取得した固有の情報の部分を参照する。以上の構成により同時に複数のユニットを交換することが可能となる。
本発明のユニットの記憶手段は複数のファームウェアを格納する領域を有する。ユニットの記憶手段の稼動領域に書き込み可能なユニットとユニットの記憶手段の稼動領域に書き込み不可能なユニットがあった場合で、かつ、ディスクアレイ装置内で稼動中のユニットのファームウェアの版数と交換の対象のユニットのファームウェアの版数とが不一致であった場合、CMは記憶手段の非稼動側領域にディスクアレイ装置内で稼動中のユニットのファームウェアの版数が同じファームウェアを書き込む。その後、CMが交換の対象のユニットの稼動側領域と非稼動側領域とを切り替えて、非稼動側に格納されたファームウェアを稼動側領域のファームウェアとすることにより、装置で稼動するユニットの稼動領域に格納されたファームウェアの版数と交換の対象のユニットの稼動領域に格納されたファームウェアの版数とを一致させる方法が考えられる。しかしながら、従来技術は、記憶手段の稼動領域の識別番号を揃えることについて考慮しない。ディスクアレイ装置は100個以上ユニットを搭載する場合がある。ディスクアレイ装置の開発時にディスクアレイ装置の全ユニットにファームウェアをダウンロードし、ディスクアレイ装置を再起動した後に、ユニットが本当に正常に立ち上がってきたかどうかを判断する際に、ユニットが再起動する前に記憶手段のいずれの領域で処理を実行していたのかをユニット毎に比較して判断する必要がある。ユニットが再起動する前に記憶手段のいずれの領域で処理を実行していたのかが不明である。実際に記憶手段のいずれの領域で処理を実行していたのかを比較する場合は多大な労力を必要とする。本発明は稼動領域を揃える構成を有しているためデバッグの作業効率が向上する。
また、従来技術では、交換の対象のユニットの記憶手段にファームウェアをダウンロードした後にユニットの再起動をした場合、ダウンロードしたファームウェアに応じた処理をユニットが実行するとディスクアレイ装置が動作しない場合がある。例えば、ディスクアレイ装置の開発時のファームウェアの場合、ユニットのファームウェアであってもディスクアレイ装置全体が起動しない不具合を持つ場合がある。したがって、ディスクアレイ装置を復旧させるために各ユニットの記憶手段の稼動領域を装置リブート前状態に戻す作業が発生し、多大な労力を必要とする。本発明では、再起動後に稼動する記憶手段の領域も一致させる構成を有する。したがって、装置を再起動した後であっても、各ユニットを再起動前の状態に戻すことが容易である。
また、ディスクアレイ装置が運用中のときに不具合が発生すると、不具合の原因を調査する必要がある。ディスクアレイ装置で不具合が発生した状況を再現するためには、不具合が発生した時のディスクアレイ装置の状態にあわせる必要がある。したがって、ディスクアレイ装置の各ユニットの記憶手段の稼動領域も一致させる必要がある。ディスクアレイ装置で不具合が発生した状況を人間が解析するには多大な労力と時間がかかる。本発明は、稼動領域に記憶された各ファームウェアの版数、稼動するファームウェア、および、再起動後に実行するファームウェアを一致させることができる。また、各ユニットの稼動領域も一致して動作する。したがって、デバッグ時の状態を再現する作業数を減少させることが可能となる。
(付記1)
複数のファームウェアを格納したユニットを複数使用するディスクアレイ装置の制御方法であって、
該ディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数を統一し、
該複数のユニットで実行するファームウェアを統一する
ことを特徴とするディスクアレイ装置の制御方法。
(付記2)
該ディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数の情報を取得し、該取得したファームウェアの版数の情報が異なる場合に該複数のユニットに同一の版数のファームウェアを送信し、該ディスクアレイ装置の同一の機能を実行する複数のユニットの実行するファームウェアの情報を取得し、該実行するファームウェアの情報が異なる場合に同一のファームウェアを実行させる情報を該複数のユニットに送信することを特徴とする付記1に記載のディスクアレイ装置の制御方法。
(付記3)
該複数のユニットは記憶手段を有し、
該複数のユニットの記憶手段の複数のファームウェアを格納する領域を統一することを特徴とする付記1に記載のディスクアレイ装置の制御方法。
(付記4)
該ディスクアレイ装置が新たにユニットを認識した場合に、該ディスクアレイ装置の該新たに認識したユニットと同一の機能を実行するユニット間の複数のファームウェアの版数を統一し、該新たに認識されたユニットで実行するファームウェアと該同一の機能を実行するユニット間で実行するファームウェアを統一することを特徴とする付記1に記載のディスクアレイ装置の制御方法。
(付記5)
該ディスクアレイ装置が新たにユニットを認識すると該ディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数に統一し、該新たに認識されたユニットで実行するファームウェアを該ディスクアレイ装置の同一の機能を実行する複数のユニットで実行するファームウェアに統一することを特徴とする付記4に記載のディスクアレイ装置の制御方法。
(付記6)
該新たに認識したユニットが実行中のファームウェアが記憶された記憶領域にダウンロードできないユニットの場合、該新たに認識したユニットの記憶領域の実行中ではないファームウェアが記憶された領域と該ディスクアレイ装置の同一の機能を実行するユニットが実行する版数のファームウェアとを統一し、該新たに認識したユニットが該変更後の該ディスクアレイ装置の同一の機能を実行するユニットが実行する版数のファームウェアにより再起動した後で、該新たに認識したユニットの記憶領域の実行中ではないファームウェアが記憶された領域と該ディスクアレイ装置の同一の機能を実行するユニットが実行する版数のファームウェアとを統一することを特徴とする付記1に記載のディスクアレイ装置の制御方法。
(付記7)
該ディスクアレイ装置の同一の機能を実行する複数のユニットが再起動したときに実行するファームウェアを統一することを特徴とする付記1に記載のディスクアレイ装置の制御方法。
(付記8)
複数のファームウェアを格納したユニットを複数使用するディスクアレイ装置であって
該ディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数を統一する統一手段と、
該複数のユニットで実行するファームウェアを統一する第二の統一手段と
を有することを特徴とするディスクアレイ装置。
(付記9)
複数のファームウェアを格納したユニットを複数使用するディスクアレイ装置のコンピュータの制御プログラムであって、該コンピュータを、
該ディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数を統一する統一手段、
該複数のユニットで実行するファームウェアを統一する第二の統一手段
として機能させることを特徴とするディスクアレイ装置の制御プログラム。
実施例の全体構成図 ユニットの構成図 交換の対象となるユニット70及びディスクアレイ装置内で動作するユニット80の構成図 CM2の構成図 ファームウェア制御テーブル27の構成図 活性保守ファームウェア版数一致処理のフローチャート 稼働側にファームウェア書き込み不可な保守ユニットの場合の版数チェックのフローチャート 稼働側にファームウェア書き込み可能な保守ユニットの場合の版数チェックのフローチャート
符号の説明
1 ディスクアレイ装置
2、3 CM
41、42 SVC
43、44 CA
47、48 DE
45、46 PBC
49、50 PSU
51、52 BU
53、54 RT
60 ユニット
61 実行部
62 主記憶
63 記憶手段

631 第一の記憶領域
632 第二の記憶領域
633 第三の記憶領域
634 稼動領域
635 非稼動領域
64 インターフェース部
65 バス
70 ユニット
71 実行部
72 主記憶
73 記憶手段
731 第一の記憶領域
732 第二の記憶領域
733 第三の記憶領域
734 稼動領域
735 非稼動領域
74 インターフェース部
75 バス
80 ユニット
81 実行部
82 主記憶
83 記憶手段
831 第一の記憶領域
832 第二の記憶領域
833 第三の記憶領域
834 稼動領域
835 非稼動領域
84 インターフェース部
85 バス
90、91 システムディスク
92、93 ファームウェアファイル
201 実行部
202 主記憶
203 記憶手段
204 インターフェース部
205 バス
211 書込判別プログラム
222 版数判別プログラム
233 第一の記憶領域のファームウェア版数一致プログラム
244 第二の記憶領域のファームウェア版数一致プログラム
255 稼働領域一致プログラム
266 次稼動領域一致プログラム
27 ファームウェア制御テーブル
2701 動作ユニット領域1ファームウェア版数
2702 動作ユニット領域2ファームウェア版数
2703 動作ユニット稼働領域識別番号
2704 動作ユニット次稼働領域識別番号
2705 交換ユニット領域1ファームウェア版数
2706 交換ユニット領域2ファームウェア版数
2707 交換ユニット稼働領域識別番号
2708 交換ユニット次稼働領域識別番号
2709 モードパラメタ
2710 ダウンロード先指定パラメタ
2711 版数指定パラメタ
2712 稼働領域変更指定パラメタ

Claims (5)

  1. 複数のファームウェアを格納したユニットを複数使用するディスクアレイ装置の制御方法であって、
    該ディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数を統一し、
    該複数のユニットで実行するファームウェアを統一する
    ことを特徴とするディスクアレイ装置の制御方法。
  2. 該ディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数の情報を取得し、該取得したファームウェアの版数の情報が異なる場合に該複数のユニットに同一の版数のファームウェアを送信し、該ディスクアレイ装置の同一の機能を実行する複数のユニットの実行するファームウェアの情報を取得し、該実行するファームウェアの情報が異なる場合に同一のファームウェアを実行させる情報を該複数のユニットに送信することを特徴とする請求項1に記載のディスクアレイ装置の制御方法。
  3. 該複数のユニットは記憶手段を有し、
    該複数のユニットの記憶手段の複数のファームウェアを格納する領域を統一することを特徴とする請求項1に記載のディスクアレイ装置の制御方法。
  4. 複数のファームウェアを格納したユニットを複数使用するディスクアレイ装置であって
    該ディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数を統一する統一手段と、
    該複数のユニットで実行するファームウェアを統一する第二の統一手段と
    を有することを特徴とするディスクアレイ装置。
  5. 複数のファームウェアを格納したユニットを複数使用するディスクアレイ装置のコンピュータの制御プログラムであって、該コンピュータを、
    該ディスクアレイ装置の同一の機能を実行する複数のユニットの複数のファームウェアの版数を統一する統一手段、
    該複数のユニットで実行するファームウェアを統一する第二の統一手段
    として機能させることを特徴とするディスクアレイ装置の制御プログラム。
JP2006314744A 2006-03-31 2006-11-21 ディスクアレイ装置、ディスクアレイ装置の制御方法及びディスクアレイ装置の制御プログラム。 Pending JP2007293802A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006314744A JP2007293802A (ja) 2006-03-31 2006-11-21 ディスクアレイ装置、ディスクアレイ装置の制御方法及びディスクアレイ装置の制御プログラム。
US11/723,153 US8074018B2 (en) 2006-03-31 2007-03-16 Disk array apparatus, and control method and control program recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006100022 2006-03-31
JP2006314744A JP2007293802A (ja) 2006-03-31 2006-11-21 ディスクアレイ装置、ディスクアレイ装置の制御方法及びディスクアレイ装置の制御プログラム。

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013005810A Division JP5360311B2 (ja) 2006-03-31 2013-01-16 ディスクアレイ装置

Publications (1)

Publication Number Publication Date
JP2007293802A true JP2007293802A (ja) 2007-11-08

Family

ID=38560800

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006314744A Pending JP2007293802A (ja) 2006-03-31 2006-11-21 ディスクアレイ装置、ディスクアレイ装置の制御方法及びディスクアレイ装置の制御プログラム。

Country Status (2)

Country Link
US (1) US8074018B2 (ja)
JP (1) JP2007293802A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013077331A (ja) * 2006-03-31 2013-04-25 Fujitsu Ltd ディスクアレイ装置
US10007508B2 (en) 2014-09-09 2018-06-26 Toshiba Memory Corporation Memory system having firmware and controller

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009282834A (ja) * 2008-05-23 2009-12-03 Fujitsu Ltd ディスクアレイ装置,制御ファーム適用方法,及び制御ファーム適用制御部
US8656227B2 (en) * 2008-11-13 2014-02-18 Transcend Information, Inc. On-line client service method for storage apparatus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134114A (ja) * 1997-10-30 1999-05-21 Fujitsu Ltd ディスクアレイ装置
JP2003196104A (ja) * 2001-12-03 2003-07-11 Hewlett Packard Co <Hp> 高可用性ファームウェアロードのためのシステム
JP2003196105A (ja) * 2001-12-03 2003-07-11 Hewlett Packard Co <Hp> 高可用性ファームウェアロードのためのシステム
JP2005071042A (ja) * 2003-08-22 2005-03-17 Fujitsu Ltd ファームウェア自動ダウンロード方法及びシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3573387B2 (ja) 1996-05-16 2004-10-06 株式会社日立製作所 オンライン端末のプログラム変更システム
JP3853561B2 (ja) 1999-11-10 2006-12-06 株式会社リコー 画像形成装置管理システムおよび画像形成装置管理方法とそれに使用する携帯型コンピュータ,中央管理装置,画像形成装置,並びに記録媒体
JP2002091719A (ja) 2000-07-11 2002-03-29 Ricoh Co Ltd 画像形成装置管理システムおよび画像形成装置管理方法とそれに使用する中央管理装置並びに画像形成装置
JP2002125070A (ja) * 2000-10-17 2002-04-26 Hisatake Sotokoshi 可搬式情報機器を利用したインターネット電話システムと方法
TWI243994B (en) * 2003-09-08 2005-11-21 Mediatek Inc Method and apparatus for protecting a specific memory section
JP2005242555A (ja) * 2004-02-25 2005-09-08 Hitachi Ltd 記憶制御システム及び記憶制御システムが有するディスク型記憶装置にファームウェアを搭載する方法
US7426633B2 (en) * 2005-05-12 2008-09-16 Hewlett-Packard Development Company, L.P. System and method for reflashing disk drive firmware

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11134114A (ja) * 1997-10-30 1999-05-21 Fujitsu Ltd ディスクアレイ装置
JP2003196104A (ja) * 2001-12-03 2003-07-11 Hewlett Packard Co <Hp> 高可用性ファームウェアロードのためのシステム
JP2003196105A (ja) * 2001-12-03 2003-07-11 Hewlett Packard Co <Hp> 高可用性ファームウェアロードのためのシステム
JP2005071042A (ja) * 2003-08-22 2005-03-17 Fujitsu Ltd ファームウェア自動ダウンロード方法及びシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013077331A (ja) * 2006-03-31 2013-04-25 Fujitsu Ltd ディスクアレイ装置
US10007508B2 (en) 2014-09-09 2018-06-26 Toshiba Memory Corporation Memory system having firmware and controller

Also Published As

Publication number Publication date
US8074018B2 (en) 2011-12-06
US20070233951A1 (en) 2007-10-04

Similar Documents

Publication Publication Date Title
US8713296B2 (en) Apparatus for restoring setting information of a board management controller from a backup memory before loading an OS when a system board is replaced
US8930931B2 (en) Information processing apparatus using updated firmware and system setting method
US20080046780A1 (en) Nonvolatile memory
US8713553B2 (en) Disk array apparatus and firmware update method therefor
US8429392B2 (en) Function expansion apparatus for connecting an information processing apparatus to an external storage apparatus
JP2010170197A (ja) ファームウェア管理プログラム、記憶装置およびファームウェア管理方法
WO2019156062A1 (ja) 情報処理システム、情報処理装置、情報処理装置のbios更新方法、及び情報処理装置のbios更新プログラム
US7861112B2 (en) Storage apparatus and method for controlling the same
JP2006277078A (ja) ログ情報管理装置、ログ情報管理方法およびログ情報管理プログラム
JP2007293802A (ja) ディスクアレイ装置、ディスクアレイ装置の制御方法及びディスクアレイ装置の制御プログラム。
CN114594970A (zh) 一种dsp软件远程升级***及方法
KR101576370B1 (ko) 컴퓨터 시스템의 원격 복원 시스템 및 그 방법, 그리고 기록한 컴퓨터로 읽어 들일 수 있는 기록매체
JP2006244269A (ja) 設備管理装置、プログラム更新システム、設備管理プログラム更新方法、起動プログラム、および設備管理プログラム
CN101207382A (zh) 数据配置***、方法及相关装置
JP5360311B2 (ja) ディスクアレイ装置
JP5279981B2 (ja) 更新制御プログラム、更新制御方法および更新制御装置
JP6802484B2 (ja) ストレージ制御装置、ストレージ制御プログラムおよびストレージ制御方法
JP2014089497A (ja) 情報処理装置
JP2006079155A (ja) 情報処理装置
JP6911591B2 (ja) 情報処理装置、制御装置および情報処理装置の制御方法
TWI417888B (zh) An embedded chip system, a method for burning a wafer, and a computer program product
JP2020171002A (ja) 情報処理装置及びその制御方法
US20110314236A1 (en) Control apparatus, control method, and storage system
JP6554801B2 (ja) 冗長通信装置及びその制御方法
JP2010259004A (ja) 画像処理装置、画像形成装置、記憶装置増設方法、及び記憶装置増設プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110912

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121016

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130116

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130123

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20130308