(57)【要約】【課題】多重化された不揮発性のキャッシュを含むキャッシュ機構を搭載したディスクアレイ装置の機能拡張のための制御ファームウェアの交換を効率的に行う。【解決手段】制御ファームウェアの各機能が使用するキャッシュ２１，２２上の制御情報を機能毎に機能レビジョンで管理し、制御ファームウェア４０の交換の際にキャッシュ２１，２２上の各機能が使用する制御情報を機能レビジョンで確認し、キャッシュ２１，２２上の各機能が使用する制御情報を継承して交換後の制御ファームウェア４０の各機能が使用する制御情報のフォームに書き換える。【選択図】図１
2005165528.tif 000002
【特許請求の範囲】
【請求項１】
多重化された不揮発性のキャッシュを含むキャッシュ機構と、多重化されたＣＰＵとを有するディスクアレイ装置において、
ＣＰＵの制御ファームウェアの交換の際に、制御ファームウェアの各機能が使用するキャッシュ上の制御情報の書き換えが必要となった場合、交換前の制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して交換後の制御ファームウェアの各機能が使用するキャッシュ上の制御情報のフォームに書き換える手段を有することを特徴とするディスクアレイ装置。
【請求項２】
多重化された不揮発性のキャッシュを含むキャッシュ機構と、多重化されたＣＰＵとを有するディスクアレイ装置において、
ＣＰＵの制御ファームウェアに設けられ、制御ファームウェアの機能毎の適応レビジョンを格納する適応レビジョンリストと、
キャッシュ上に設けられ、制御ファームウェアの各機能が使用するキャッシュ上の制御情報のエリアアドレスおよび機能レビジョンを格納するエリア管理情報リストと、
制御ファームウェアの交換の際に、交換後の制御ファームウェアに設けられた前記適応レビジョンリストの機能毎の適応レビジョンと前記エリア管理情報リストの機能毎の機能レビジョンとを照合して、機能レビジョンが適応レビジョンより古ければ、交換前の制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して交換後の制御ファームウェアの各機能が使用する制御情報のフォームに書き換える手段と
を有することを特徴とするディスクアレイ装置。
【請求項３】
機能の追加による制御ファームウェアの交換の際に、当該機能が使用するキャッシュ上の制御情報の追加が必要となった場合、上位装置からのアクセスを停止せずに追加する手段を有することを特徴とする請求項１または請求項２記載のディスクアレイ装置。
【請求項４】
機能の更新による制御ファームウェアの交換の際に、当該機能が使用するキャッシュ上の制御情報の書き換えが必要となった場合、上位装置からのアクセスを停止せずに書き換える手段を有することを特徴とする請求項１または請求項２記載のディスクアレイ装置。
【請求項５】
ＣＰＵの制御ファームウェアの機能を１つ選択する工程と、
キャッシュ上のエリア管理情報リストの該当する機能ＩＤに対応する機能レビジョンを確認し、制御ファームウェア上の適応レビジョンリストの該当する機能ＩＤに対応する適応レビジョンと照合して、制御ファームウェアの各機能が使用するキャッシュ上の制御情報の機能レビジョンが継続使用可能レビジョンであるかどうかを判断する工程と、
継続使用可能レビジョンでなければ、制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して交換後の制御ファームウェアの各機能が使用する制御情報のフォームに書き換える工程と、
全ての機能を選択したかどうかを判断し、全ての機能を選択していれば、ＣＰＵの制御ファームウェアを交換する工程と
を含むことを特徴とするディスクキャッシュ管理方法。
【請求項６】
ユーザデータをディスクに書き込んで未使用エリアを作成する工程と、
一方のＣＰＵの制御ファームウェアの交換後は、作成した未使用エリアを更新または追加後の機能が使用する制御情報のエリアとし、該エリアに更新または追加前の機能が使用する制御情報をファームを変換して書き込む工程と、
更新または追加前の機能が使用する制御情報のエリアの更新内容を反映させる工程と、
他方のＣＰＵの制御ファームウェアの交換後は、更新または追加後の機能が使用する制御情報のエリアのみを使用する工程と、
連続したエリアを必要としない場合は、更新または追加前の機能が使用する制御情報のエリアを未使用エリアとし、連続したエリアが必要な場合は、機能が使用する制御情報のエリアを詰める工程と、
未使用エリアをユーザデータに戻す工程と
を含むことを特徴とするディスクキャッシュ管理方法。
【請求項７】
上位装置からの一方のＣＰＵへのアクセスを停止する工程と、
一方のＣＰＵの制御ファームウェアを交換する工程と、
一方のＣＰＵの制御ファームウェアの起動時に、一方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って他方のＣＰＵに通知する工程と、
他方のＣＰＵが他方のキャッシュのみを使用し、一方のキャッシュへアクセスしないようにする工程と、
一方のＣＰＵが、交換後の制御ファームウェアで立ち上げ後に、他方のキャッシュを使って一方の制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して、交換後の制御ファームウェアの各機能が使用する制御情報のフォームに書き換える工程と、
上位装置からの一方のＣＰＵへのアクセスを再開する工程と、
他方のＣＰＵが、他方のキャッシュのみの使用を継続する工程と、
一方のＣＰＵが、一方のキャッシュおよび他方のキャッシュをそれぞれの制御情報で使用するとともに、他方のＣＰＵが他方のキャッシュを変更した内容を他方のキャッシュから変換して一方のキャッシュに反映する工程と、
上位装置からの他方のＣＰＵへのアクセスを停止する工程と、
他方のＣＰＵの制御ファームウェアを交換する工程と、
交換後の制御ファームウェアの起動時に、他方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って一方のＣＰＵに通知する工程と、
一方のＣＰＵが他方のＣＰＵの変更を変換して一方のキャッシュに反映する作業を停止し、一方のキャッシュのみを使用する工程と、
他方のＣＰＵが一方のキャッシュを他方のキャッシュにコピ−する工程と、
コピ−完了後に上位装置からの他方のＣＰＵへのアクセスを再開する工程と
を含むことを特徴とするディスクキャッシュ管理方法。
【請求項８】
上位装置からの一方のＣＰＵへのアクセスを停止する工程と、
一方のＣＰＵの制御ファームウェアを交換する工程と、
一方のＣＰＵの制御ファームウェアの起動時に、一方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って他方のＣＰＵに通知する工程と、
他方のＣＰＵが、新しい機能が使用する制御情報のエリアを使用しない工程と、
一方のＣＰＵが、新しい機能が使用する制御情報のエリアを確保する工程と、
上位装置からの他方のＣＰＵへのアクセスを停止する工程と、
他方のＣＰＵの制御ファームウェアを交換する工程と、
他方のＣＰＵが、制御ファームウェアの交換が完了した後に、新しい機能が使用する制御情報のエリアを使用しない工程と、
一方のＣＰＵが、制御ファームウェアの交換が完了した後に、新しい機能が使用する制御情報のエリアを使用しない工程と、
新しい機能が使用する制御情報のエリアを初期化して、一方のＣＰＵの使用を開始する工程と、
新しい機能が使用する制御情報のエリアを初期化して、他方のＣＰＵの使用を開始する工程と
を含むことを特徴とするディスクキャッシュ管理方法。
【請求項９】
コンピュータを、ＣＰＵの制御ファームウェアの機能を１つ選択する工程と、キャッシュ上のエリア管理情報リストの該当する機能ＩＤに対応する機能レビジョンを確認し、制御ファームウェア上の適応レビジョンリストの該当する機能ＩＤに対応する適応レビジョンと照合して、制御ファームウェアの各機能が使用するキャッシュ上の制御情報の機能レビジョンが継続使用可能レビジョンであるかどうかを判断する工程と、継続使用可能レビジョンでなければ、制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して交換後の制御ファームウェアの各機能が使用する制御情報のフォームに書き換える工程と、全ての機能を選択したかどうかを判断し、全ての機能を選択していれば、ＣＰＵの制御ファームウェアを交換する工程として動作させることを特徴とするプログラム。
【請求項１０】
コンピュータを、ユーザデータをディスクに書き込んで未使用エリアを作成する工程と、一方のＣＰＵの制御ファームウェアの交換後は、作成した未使用エリアを更新または追加後の機能が使用する制御情報のエリアとし、該エリアに更新または追加前の機能が使用する制御情報をファームを変換して書き込む工程と、更新または追加前の機能が使用する制御情報のエリアの更新内容を反映させる工程と、他方のＣＰＵの制御ファームウェアの交換後は、更新または追加後の機能が使用する制御情報のエリアのみを使用する工程と、連続したエリアを必要としない場合は、更新または追加前の機能が使用する制御情報のエリアを未使用エリアとし、連続したエリアが必要な場合は、機能が使用する制御情報のエリアを詰める工程と、未使用エリアをユーザデータに戻す工程として動作させることを特徴とするプログラム。
【請求項１１】
コンピュータを、上位装置からの一方のＣＰＵへのアクセスを停止する工程と、一方のＣＰＵの制御ファームウェアを交換する工程と、一方のＣＰＵの制御ファームウェアの起動時に、一方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って他方のＣＰＵに通知する工程と、他方のＣＰＵが他方のキャッシュのみを使用し、一方のキャッシュへアクセスしないようにする工程と、一方のＣＰＵが、交換後の制御ファームウェアで立ち上げ後に、他方のキャッシュを使って一方の制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して、交換後の制御ファームウェアの各機能が使用する制御情報のフォームに書き換える工程と、上位装置からの一方のＣＰＵへのアクセスを再開する工程と、他方のＣＰＵが、他方のキャッシュのみの使用を継続する工程と、一方のＣＰＵが、一方のキャッシュおよび他方のキャッシュをそれぞれの制御情報で使用するとともに、他方のＣＰＵが他方のキャッシュを変更した内容を他方のキャッシュから変換して一方のキャッシュに反映する工程と、上位装置からの他方のＣＰＵへのアクセスを停止する工程と、他方のＣＰＵの制御ファームウェアを交換する工程と、交換後の制御ファームウェアの起動時に、他方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って一方のＣＰＵに通知する工程と、一方のＣＰＵが他方のＣＰＵの変更を変換して一方のキャッシュに反映する作業を停止し、一方のキャッシュのみを使用する工程と、他方のＣＰＵが一方のキャッシュを他方のキャッシュにコピ−する工程と、コピ−完了後に上位装置からの他方のＣＰＵへのアクセスを再開する工程として動作させることを特徴とするプログラム。
【請求項１２】
コンピュータを、上位装置からの一方のＣＰＵへのアクセスを停止する工程と、一方のＣＰＵの制御ファームウェアを交換する工程と、一方のＣＰＵの制御ファームウェアの起動時に、一方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って他方のＣＰＵに通知する工程と、他方のＣＰＵが、新しい機能が使用する制御情報のエリアを使用しない工程と、一方のＣＰＵが、新しい機能が使用する制御情報のエリアを確保する工程と、上位装置からの他方のＣＰＵへのアクセスを停止する工程と、他方のＣＰＵの制御ファームウェアを交換する工程と、他方のＣＰＵが、制御ファームウェアの交換が完了した後に、新しい機能が使用する制御情報のエリアを使用しない工程と、一方のＣＰＵが、制御ファームウェアの交換が完了した後に、新しい機能が使用する制御情報のエリアを使用しない工程と、新しい機能が使用する制御情報のエリアを初期化して、一方のＣＰＵの使用を開始する工程と、新しい機能が使用する制御情報のエリアを初期化して、他方のＣＰＵの使用を開始する工程として動作させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はディスクアレイ装置およびディスクキャッシュ管理方法ならびにプログラムに関し、特に制御ファームウェアの各機能が使用するキャッシュ上のユーザデータおよび制御情報を管理するディスクアレイ装置およびディスクキャッシュ管理方法ならびにプログラムに関する。
【背景技術】
【０００２】
従来、ディスクアレイ装置のキャッシュ機構は、ユーザデータをディスクにアクセスせずに高速に処理するための機構であった。
【０００３】
例えば、従来のキャッシュメモリの制御方法として、複数のディスク装置とホストコンピュータとの間に介在し、両者間で授受されるリードデータ／ライトデータを一時的に保持する不揮発性のキャッシュを備えた記憶制御装置において、キャッシュ上のユーザデータの管理情報を、キャッシュ内のキャッシュ内管理情報領域と、より高速なアクセスが可能な揮発性のローカルメモリ内のローカルメモリ内管理情報領域とに２元管理し、正常時の管理情報の参照は高速なローカルメモリ内管理情報領域から実施し、障害時には不揮発性のキャッシュ内管理情報領域からローカルメモリ内管理情報領域に管理情報を復元することにより、信頼性を落とすことなくキャッシュのアクセス処理の高速化を図るものがあった（特許文献１等参照）。
【０００４】
しかし、近年、ディスクアレイ装置のキャッシュ機構は、ディスクアレイ装置の多機能化に伴い、付加された機能の不揮発性の制御情報や、複数のＣＰＵでディスクを共有するための制御情報を保持する役目をもつようになってきている。キャッシュは、電源切断後も、バッテリにより情報が保持されている。
【０００５】
一方、従来のファームウェア管理方式として、ホスト装置が保持する周辺装置用ファームウェアプログラムを周辺装置にロードして使用するシステムにおいて、ホスト装置内に設けられ、周辺装置用ファームウェアプログラムおよびそのファームウェアプログラムのレビジョン情報を保持する格納手段と、周辺装置内に設けられ、ファームウェアプログラムおよびそのファームウェアプログラムのレビジョン情報を保持する記憶手段と、システム立ち上げ時、ホスト装置内に保持されたレビジョン情報を読み出し、周辺装置内に保持されたレビジョン情報とを比較する比較手段と、比較手段により相違が判別されたときに、格納手段が保持するファームウェアプログラムを記憶手段にロードし、記憶手段内のレビジョン情報をホスト装置内のレビジョン情報に書き換える制御手段とを備えることにより、ファームウェアプログラムの入れ替えに伴う障害等の発生を防止できるとともに、ファームウェアプログラムの一元管理が可能となるようにしたものがあった（特許文献２等参照）。
【０００６】
図１５は、従来のディスクアレイ装置において、ＣＰＵの制御ファームウェアを交換する際に、レビジョンをどのように制御するかを表すフローチャートであり、保守者に確認する手順を示したものである。
【０００７】
まず、キャッシュ上のユーザデータおよび制御情報のレビジョンを確認し（ステップＳ２０１）、キャッシュ上のユーザデータおよび制御情報のレビジョンを制御ファームウェアのレビジョンと照合して継続使用可能レビジョンであるかどうかを判断する（ステップＳ２０２）。
【０００８】
キャッシュ上のユーザデータおよび制御情報のレビジョンが継続使用可能レビジョンであれば、ＣＰＵに接続または内蔵されているＲＯＭを書き換えることで、制御ファームウェアの交換を実施する（ステップＳ２０３）。
【０００９】
一方、キャッシュ上のユーザデータおよび制御情報のレビジョンが継続使用可能レビジョンでなければ、キャッシュ上のユーザデータおよび制御情報を消去した後に再構築を行って制御ファームウェアの交換を実施することを保守者に確認する（ステップＳ２０４）。
【００１０】
保守者の判断でキャッシュ上のユーザデータおよび制御情報を消去した後に再構築を行わない場合は（ステップＳ２０５でノー）、何もせずに制御ファームウェアの交換を中止する。
【００１１】
保守者の判断でキャッシュ上のユーザデータおよび制御情報を消去した後に再構築を行う場合には（ステップＳ２０５でイエス）、制御ファームウェアの交換を行い（ステップＳ２０６）、キャッシュ上のユーザデータおよび制御情報を消去して該当するユーザデータおよび制御情報に書き換えることにより再構築を行う（ステップＳ２０７）。
【特許文献１】特開２００１−１６６９９３（第３−４頁、図１）
【特許文献２】特開平１−２３４９５４（第３頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１２】
第１の問題点は、機能の更新および追加のために制御ファームウェアを新しいものに交換する際、交換前の制御ファームウェアと交換後の制御ファームウェアとでは、キャッシュの内容（ユーザデータおよび制御情報）に互換性がないことがあるため、制御ファームウェアの交換の際にキャッシュの初期化のためにユーザデータおよび制御情報を人手で消去しなければならなかったことである。
【００１３】
第２の問題点は、機能の更新および追加のために制御ファームウェアを新しいものに交換する際、交換後に制御ファームウェアを再起動して実行するまで、交換前の制御ファームウェアで動作していたユーザデータおよび制御情報のフォーム（形式）に変更が必要か否かを判断することが制御ファームウェアではできず、人手による確認が必要であったことである。
【００１４】
第３の問題点は、制御ファームウェアの機能毎に分割されているキャッシュ上のエリア内のユーザデータおよび制御情報は、制御ファームウェアの交換により新しいレビジョンでそのまま使える機能と、使えない機能とが存在する場合があるが、制御ファームウェアの全ての機能が使用するキャッシュ上のユーザデータおよび制御情報がそのまま使えないと、キャッシュの初期化のためにユーザデータおよび制御情報を消去しなければならなかったことである。
【００１５】
第４の問題点は、ディスクアレイ装置の制御のために、複数のＣＰＵが多重化されているディスクアレイ装置で制御ファームウェアを交換する際に、交換後の制御ファームウェアの各機能が使用するキャッシュ上のユーザデータおよび制御情報が交換前の制御ファームウェアの各機能が使用するキャッシュ上のユーザデータおよび制御情報と異なる場合には、制御ファームウェアの各機能が使用するキャッシュ上のユーザデータおよび制御情報を初期化する必要があるが、この場合、一旦、上位装置からのアクセスをすべて停止して制御ファームウェアを交換しキャッシュを初期化する必要があったため、システム運用中に（上位装置からのアクセスを停止せずに）制御ファームウェアを交換することができなかったことである。
【００１６】
本発明の目的は、制御ファームウェアの各機能が使用するキャッシュ上の制御情報を機能毎に機能レビジョンで管理し、機能の拡張のための制御ファームウェアの交換を、ユーザデータおよび制御情報を消去したりディスクに書き込んだりすることなく、ディスクアレイ装置の運用効率および信頼性を向上できるディスクアレイ装置およびディスクキャッシュ管理方法ならびにプログラムを提供することにある。
【００１７】
また、本発明の他の目的は、ＣＰＵが多重化されているディスクアレイ装置の制御ファームウェアの交換を上位装置からの処理を停止せずに実行し、ディスクアレイ装置の運用の効率および信頼性を向上できるディスクアレイ装置およびディスクキャッシュ管理方法ならびにプログラムを提供することにある。
【課題を解決するための手段】
【００１８】
本発明のディスクアレイ装置は、多重化された不揮発性のキャッシュを含むキャッシュ機構と、多重化されたＣＰＵとを有するディスクアレイ装置において、ＣＰＵの制御ファームウェアの交換の際に、制御ファームウェアの各機能が使用するキャッシュ上の制御情報の書き換えが必要となった場合、交換前の制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して交換後の制御ファームウェアの各機能が使用するキャッシュ上の制御情報のフォームに書き換える手段を有することを特徴とする。
【００１９】
また、本発明のディスクアレイ装置は、多重化された不揮発性のキャッシュを含むキャッシュ機構と、多重化されたＣＰＵとを有するディスクアレイ装置において、ＣＰＵの制御ファームウェアに設けられ、制御ファームウェアの機能毎の適応レビジョンを格納する適応レビジョンリストと、キャッシュ上に設けられ、制御ファームウェアの各機能が使用するキャッシュ上の制御情報のエリアアドレスおよび機能レビジョンを格納するエリア管理情報リストと、制御ファームウェアの交換の際に、交換後の制御ファームウェアに設けられた前記適応レビジョンリストの機能毎の適応レビジョンと前記エリア管理情報リストの機能毎の機能レビジョンとを照合して、機能レビジョンが適応レビジョンより古ければ、交換前の制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して交換後の制御ファームウェアの各機能が使用する制御情報のフォームに書き換える手段とを有することを特徴とする。
【００２０】
さらに、本発明のディスクアレイ装置は、機能の追加による制御ファームウェアの交換の際に、当該機能が使用するキャッシュ上の制御情報の追加が必要となった場合、上位装置からのアクセスを停止せずに追加する手段を有することを特徴とする。
【００２１】
さらにまた、本発明のディスクアレイ装置は、機能の更新による制御ファームウェアの交換の際に、当該機能が使用するキャッシュ上の制御情報の書き換えが必要となった場合、上位装置からのアクセスを停止せずに書き換える手段を有することを特徴とする。
【００２２】
一方、本発明のディスクキャッシュ管理方法は、ＣＰＵの制御ファームウェアの機能を１つ選択する工程と、キャッシュ上のエリア管理情報リストの該当する機能ＩＤに対応する機能レビジョンを確認し、制御ファームウェア上の適応レビジョンリストの該当する機能ＩＤに対応する適応レビジョンと照合して、制御ファームウェアの各機能が使用するキャッシュ上の制御情報の機能レビジョンが継続使用可能レビジョンであるかどうかを判断する工程と、継続使用可能レビジョンでなければ、制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して交換後の制御ファームウェアの各機能が使用する制御情報のフォームに書き換える工程と、全ての機能を選択したかどうかを判断し、全ての機能を選択していれば、ＣＰＵの制御ファームウェアを交換する工程とを含むことを特徴とする。
【００２３】
また、本発明のディスクキャッシュ管理方法は、ユーザデータをディスクに書き込んで未使用エリアを作成する工程と、一方のＣＰＵの制御ファームウェアの交換後は、作成した未使用エリアを更新または追加後の機能が使用する制御情報のエリアとし、該エリアに更新または追加前の機能が使用する制御情報をファームを変換して書き込む工程と、更新または追加前の機能が使用する制御情報のエリアの更新内容を反映させる工程と、他方のＣＰＵの制御ファームウェアの交換後は、更新または追加後の機能が使用する制御情報のエリアのみを使用する工程と、連続したエリアを必要としない場合は、更新または追加前の機能が使用する制御情報のエリアを未使用エリアとし、連続したエリアが必要な場合は、機能が使用する制御情報のエリアを詰める工程と、未使用エリアをユーザデータに戻す工程とを含むことを特徴とする。
【００２４】
さらに、本発明のディスクキャッシュ管理方法は、上位装置からの一方のＣＰＵへのアクセスを停止する工程と、一方のＣＰＵの制御ファームウェアを交換する工程と、一方のＣＰＵの制御ファームウェアの起動時に、一方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って他方のＣＰＵに通知する工程と、他方のＣＰＵが他方のキャッシュのみを使用し、一方のキャッシュへアクセスしないようにする工程と、一方のＣＰＵが、交換後の制御ファームウェアで立ち上げ後に、他方のキャッシュを使って一方の制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して、交換後の制御ファームウェアの各機能が使用する制御情報のフォームに書き換える工程と、上位装置からの一方のＣＰＵへのアクセスを再開する工程と、他方のＣＰＵが、他方のキャッシュのみの使用を継続する工程と、一方のＣＰＵが、一方のキャッシュおよび他方のキャッシュをそれぞれの制御情報で使用するとともに、他方のＣＰＵが他方のキャッシュを変更した内容を他方のキャッシュから変換して一方のキャッシュに反映する工程と、上位装置からの他方のＣＰＵへのアクセスを停止する工程と、他方のＣＰＵの制御ファームウェアを交換する工程と、交換後の制御ファームウェアの起動時に、他方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って一方のＣＰＵに通知する工程と、一方のＣＰＵが他方のＣＰＵの変更を変換して一方のキャッシュに反映する作業を停止し、一方のキャッシュのみを使用する工程と、他方のＣＰＵが一方のキャッシュを他方のキャッシュにコピ−する工程と、コピ−完了後に上位装置からの他方のＣＰＵへのアクセスを再開する工程とを含むことを特徴とする。
【００２５】
さらにまた、本発明のディスクキャッシュ管理方法は、上位装置からの一方のＣＰＵへのアクセスを停止する工程と、一方のＣＰＵの制御ファームウェアを交換する工程と、一方のＣＰＵの制御ファームウェアの起動時に、一方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って他方のＣＰＵに通知する工程と、他方のＣＰＵが、新しい機能が使用する制御情報のエリアを使用しない工程と、一方のＣＰＵが、新しい機能が使用する制御情報のエリアを確保する工程と、上位装置からの他方のＣＰＵへのアクセスを停止する工程と、他方のＣＰＵの制御ファームウェアを交換する工程と、他方のＣＰＵが、制御ファームウェアの交換が完了した後に、新しい機能が使用する制御情報のエリアを使用しない工程と、一方のＣＰＵが、制御ファームウェアの交換が完了した後に、新しい機能が使用する制御情報のエリアを使用しない工程と、新しい機能が使用する制御情報のエリアを初期化して、一方のＣＰＵの使用を開始する工程と、新しい機能が使用する制御情報のエリアを初期化して、他方のＣＰＵの使用を開始する工程とを含むことを特徴とする。
【００２６】
他方、本発明のプログラムは、コンピュータを、ＣＰＵの制御ファームウェアの機能を１つ選択する工程と、キャッシュ上のエリア管理情報リストの該当する機能ＩＤに対応する機能レビジョンを確認し、制御ファームウェア上の適応レビジョンリストの該当する機能ＩＤに対応する適応レビジョンと照合して、制御ファームウェアの各機能が使用するキャッシュ上の制御情報の機能レビジョンが継続使用可能レビジョンであるかどうかを判断する工程と、継続使用可能レビジョンでなければ、制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して交換後の制御ファームウェアの各機能が使用する制御情報のフォームに書き換える工程と、全ての機能を選択したかどうかを判断し、全ての機能を選択していれば、ＣＰＵの制御ファームウェアを交換する工程として動作させることを特徴とする。
【００２７】
また、本発明のプログラムは、コンピュータを、ユーザデータをディスクに書き込んで未使用エリアを作成する工程と、一方のＣＰＵの制御ファームウェアの交換後は、作成した未使用エリアを更新または追加後の機能が使用する制御情報のエリアとし、該エリアに更新または追加前の機能が使用する制御情報をファームを変換して書き込む工程と、更新または追加前の機能が使用する制御情報のエリアの更新内容を反映させる工程と、他方のＣＰＵの制御ファームウェアの交換後は、更新または追加後の機能が使用する制御情報のエリアのみを使用する工程と、連続したエリアを必要としない場合は、更新または追加前の機能が使用する制御情報のエリアを未使用エリアとし、連続したエリアが必要な場合は、機能が使用する制御情報のエリアを詰める工程と、未使用エリアをユーザデータに戻す工程として動作させることを特徴とする。
【００２８】
さらに、本発明のプログラムは、コンピュータを、上位装置からの一方のＣＰＵへのアクセスを停止する工程と、一方のＣＰＵの制御ファームウェアを交換する工程と、一方のＣＰＵの制御ファームウェアの起動時に、一方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って他方のＣＰＵに通知する工程と、他方のＣＰＵが他方のキャッシュのみを使用し、一方のキャッシュへアクセスしないようにする工程と、一方のＣＰＵが、交換後の制御ファームウェアで立ち上げ後に、他方のキャッシュを使って一方の制御ファームウェアの各機能が使用するキャッシュ上の制御情報を継承して、交換後の制御ファームウェアの各機能が使用する制御情報のフォームに書き換える工程と、上位装置からの一方のＣＰＵへのアクセスを再開する工程と、他方のＣＰＵが、他方のキャッシュのみの使用を継続する工程と、一方のＣＰＵが、一方のキャッシュおよび他方のキャッシュをそれぞれの制御情報で使用するとともに、他方のＣＰＵが他方のキャッシュを変更した内容を他方のキャッシュから変換して一方のキャッシュに反映する工程と、上位装置からの他方のＣＰＵへのアクセスを停止する工程と、他方のＣＰＵの制御ファームウェアを交換する工程と、交換後の制御ファームウェアの起動時に、他方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って一方のＣＰＵに通知する工程と、一方のＣＰＵが他方のＣＰＵの変更を変換して一方のキャッシュに反映する作業を停止し、一方のキャッシュのみを使用する工程と、他方のＣＰＵが一方のキャッシュを他方のキャッシュにコピ−する工程と、コピ−完了後に上位装置からの他方のＣＰＵへのアクセスを再開する工程として動作させることを特徴とする。
【００２９】
さらにまた、本発明のプログラムは、コンピュータを、上位装置からの一方のＣＰＵへのアクセスを停止する工程と、一方のＣＰＵの制御ファームウェアを交換する工程と、一方のＣＰＵの制御ファームウェアの起動時に、一方のＣＰＵが制御ファームウェアが交換されたことをＣＰＵ間通信を使って他方のＣＰＵに通知する工程と、他方のＣＰＵが、新しい機能が使用する制御情報のエリアを使用しない工程と、一方のＣＰＵが、新しい機能が使用する制御情報のエリアを確保する工程と、上位装置からの他方のＣＰＵへのアクセスを停止する工程と、他方のＣＰＵの制御ファームウェアを交換する工程と、他方のＣＰＵが、制御ファームウェアの交換が完了した後に、新しい機能が使用する制御情報のエリアを使用しない工程と、一方のＣＰＵが、制御ファームウェアの交換が完了した後に、新しい機能が使用する制御情報のエリアを使用しない工程と、新しい機能が使用する制御情報のエリアを初期化して、一方のＣＰＵの使用を開始する工程と、新しい機能が使用する制御情報のエリアを初期化して、他方のＣＰＵの使用を開始する工程として動作させることを特徴とする。
【発明の効果】
【００３０】
第１の効果は、制御ファームウェアを交換する際に、制御ファームウェアの各機能が使用するキャッシュ上の制御情報を消去せずに制御ファームウェアが交換できることである。その理由は、制御ファームウェアの各機能の適応レビジョンと制御ファームウェアの各機能が使用するキャッシュ上の制御情報の機能レビジョンとを管理し、制御ファームウェアを交換する際に、制御ファームウェアの各機能が使用するキャッシュ上の制御情報がそのまま使えるかどうかを判断し、使えない場合は、機能レビジョンに従った制御情報を継承して最新の制御ファームウェアに合った制御情報のフォームに書き換えることで、初期化して消去せずに更新が可能になるようにしたからである。
【００３１】
第２の効果は、ＣＰＵが多重化されたディスクアレイ装置の制御ファームウェアの交換の際に制御ファームウェアの各機能が使用するキャッシュ上の制御情報の変更が必要な場合、システム（上位装置からのアクセス）を停止せずに、制御ファームウェアの各機能が使用するキャッシュ上の制御情報を消去せずに、制御ファームウェアが交換できることである。その理由は、制御ファームウェアの交換の際に、交換後の制御ファームウェアに合った制御情報と、交換前の制御ファームウェアに合った制御情報とを共存させ、キャッシュの内容を変更することで実行するようにしたからである。
【発明を実施するための最良の形態】
【００３２】
次に、本発明の実施例について図面を参照して詳細に説明する。
【実施例１】
【００３３】
図１は、本発明の実施例１に係るディスクアレイ装置１の構成を示すブロック図である。本実施例１に係るディスクアレイ装置１は、二重化されたＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２と、二重化された不揮発性のキャッシュ（＃０）２１およびキャッシュ（＃１）２２を含むキャッシュ機構２０と、ＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２にそれぞれ接続または内蔵されたＲＯＭ３１およびＲＯＭ３２と、ＲＯＭ３１およびＲＯＭ３２上の制御ファームウェア４０と、複数のディスク５０とから構成されている。なお、図１中の符号２は、ディスクアレイ装置１に接続された上位装置を示す。
【００３４】
本実施例１に係るディスクアレイ装置１は、制御ファームウェア４０の交換の際に、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報が書き換えられ、交換後の制御ファームウェア４０ではそのまま使用できない場合、従来ならば、ディスクアレイ装置１を停止しなければ交換できなかった制御ファームウェア４０の交換作業を、ディスクアレイ装置１を停止せずに実施することを可能にする。
【００３５】
上位装置２は、ディスク５０への書き込み，読み出し，ディスクアレイ装置１への制御，情報の採取などの指示を出す。
【００３６】
ＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２は、ディスクアレイ装置１の制御，障害，高速化などの理由により、二重化されている。各ＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２は、制御ファームウェア４０により、上位装置２，ディスク５０，キャッシュ（＃０）２１およびキャッシュ（＃１）２２を制御する。
【００３７】
キャッシュ（＃０）２１およびキャッシュ（＃１）２２は、不揮発性メモリで形成されており、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報は、電源オフや瞬断対策のために、バッテリでバックアップされている。
【００３８】
ディスク５０は、主にユーザデータを保存するが、キャッシュ（＃０）２１およびキャッシュ（＃１）２２に比べて応答速度および転送速度が遅いので、高速化のためにキャッシュ（＃０）２１およびキャッシュ（＃１）２２が使用される。
【００３９】
ディスクアレイ装置１では、高速および大容量以外にも様々な機能が追加されているため、制御ファームウェア４０の各機能が使用する制御情報を共有のキャッシュ（＃０）２１およびキャッシュ（＃１）２２上に保持し、どちらのＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２からも操作可能としている。上位装置２から見た場合、それぞれのパスを二重化しているため、ＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２の動作は同じである必要がある。
【００４０】
図２は、本実施例１に係るディスクアレイ装置１におけるディスクキャッシュ管理方法を示す。図２に示すように、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報を、機能毎にエリアに分割し、エリア内の制御情報に対して機能レビジョンを設定する。キャッシュ（＃０）２１およびキャッシュ（＃１）２２には、機能毎の制御情報のエリアを示すエリア管理情報リスト２３が設けられ、エリア管理情報リスト２３には、機能ＩＤ，キャッシュ（＃０）２１およびキャッシュ（＃１）２２上のエリアを示す開始アドレスおよび終了アドレス，ならびに機能レビジョンからなるエリア管理情報が格納されている。
【００４１】
制御ファームウェア４０には、機能ＩＤおよび適応レビジョンからなる適応レビジョン情報を格納する適応レビジョンリスト４１が設けられている。制御ファームウェア４０の交換時に、キャッシュ（＃０）２１およびキャッシュ（＃１）２２上の機能毎に分割したエリアのエリア管理情報リスト２３を参照して機能レビジョンを確認し、その機能レビジョンに合わせて制御ファームウェア４０の交換作業を行う。
【００４２】
制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報を継承して、交換後の制御ファームウェア４０の各機能が使用する制御情報のフォームに書き換えた場合は、キャッシュ（＃０）２１およびキャッシュ（＃１）２２上のエリア管理情報リスト２３の該当する機能ＩＤに対応する機能レビジョンを変更する。
【００４３】
交換後の制御ファームウェア４０が、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報の機能レビジョンをサポートしていない場合（エリア管理情報リスト２３の該当する機能ＩＤに対応する機能レビジョンが制御ファームウェア４０の該当する機能ＩＤに対応する適応レビジョンより以前のものである場合）、制御ファームウェア４０は、保守者に通知したり、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報を書き換えたり、初期化したりして、各機能が使用する制御情報の機能レビジョンに応じた動作を行う。
【００４４】
制御ファームウェア４０上の適応レビジョンリスト４１には、機能ＩＤおよび適応レビジョン（動作可能な機能毎の機能レビジョン）からなる適応レビジョン情報が格納されている。
【００４５】
制御ファームウェア４０を交換する際に、交換後の制御ファームウェア４０の機能と、機能ＩＤおよび適応レビジョンからなる適応レビジョン情報と、キャッシュ（＃０）２１およびキャッシュ（＃１）２２上のエリア管理情報リスト２３の該当する機能ＩＤに対応する機能レビジョンとを使って、該当機能が使用する制御情報の機能レビジョンが継続使用可能レビジョンかどうかを判定する。
【００４６】
制御ファームウェア４０の既存の機能を更新する場合、キャッシュ（＃０）２１およびキャッシュ（＃１）２２上の該当機能を使用する制御情報のエリアが書き換えられ、エリア管理情報リスト２３の該当する機能ＩＤに対応する機能レビジョンが書き換えられる。
【００４７】
制御ファームウェア４０に新たな機能を追加する場合、キャッシュ（＃０）２１およびキャッシュ（＃１）２２上にすでにある空きエリアまたはユーザデータのエリアを縮小して作成した空きエリアに該当機能が使用する制御情報を書き込んで該当機能を使用する制御情報のエリアが設けられ、このエリアの機能ＩＤ，開始アドレス，終了アドレスおよび機能レビジョンからなるエリア管理情報を作成してエリア管理情報リスト２３に追加する。
【００４８】
制御ファームウェア４０から機能を削除する場合、エリア管理情報リスト２３から該当する機能ＩＤのエリア管理情報を消去する。
【００４９】
図３は、本実施例１に係るディスクアレイ装置１における保守員への問い合わせをせずに制御ファームウェア４０を交換する際の手順を示すフローチャートである。この手順は、制御ファームウェア機能選択ステップＳ１０１と、キャッシュレビジョン確認ステップＳ１０２と、継続使用可能レビジョン判断ステップＳ１０３と、制御情報フォーム書き換えステップＳ１０４と、全機能選択判断ステップＳ１０５と、制御ファームウェア交換作業ステップＳ１０６とからなる。
【００５０】
制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報を消去せずに、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報を継承したまま、該当制御情報を交換後の制御ファームウェア４０の各機能が使用する制御情報のフォームに書き換える。
【００５１】
まず、制御ファームウェア４０の機能を１つ選択し（ステップＳ１０１）、キャッシュ（＃０）２１およびキャッシュ（＃１）２２上のエリア管理情報リスト２３の該当する機能ＩＤに対応する機能レビジョンを確認し（ステップＳ１０２）、制御ファームウェア４０上の適応レビジョンリスト４１の該当する機能ＩＤに対応する適応レビジョンと照合して継続使用可能レビジョンであるかどうかを判断する（ステップＳ１０３）。
【００５２】
キャッシュ（＃０）２１およびキャッシュ（＃１）２２上のエリア管理情報リスト２３の該当する機能ＩＤに対応する機能レビジョンが継続使用可能レビジョンでなければ（ステップＳ１０３でノー）、選択された機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報を継承し、交換後の制御ファームウェア４０の該当機能が使用する制御情報のフォームに書き換える（ステップＳ１０４）。
【００５３】
次に、全ての機能について選択したかどうかを判断し（ステップＳ１０５）、全ての機能について選択していなければ、ステップＳ１０１に制御を戻す。
【００５４】
全ての機能について選択していれば、ＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２に接続または内蔵されているＲＯＭ３１およびＲＯＭ３２の交換前の制御ファームウェア４０を交換後の制御ファームウェア４０で書き換えることで、制御ファームウェア４０の交換を行う（ステップＳ１０６）。
【００５５】
ＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２が二重化されているディスクアレイ装置１に当てはめてみると、制御ファームウェア４０を交換する際に、どのＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２もキャッシュ（＃０）２１およびキャッシュ（＃１）２２にアクセスしていないときに該当機能が使用する制御情報を書き換えることができる。
【００５６】
制御ファームウェア４０の交換対象でないＣＰＵ（＃０）１１またはＣＰＵ（＃１）１２がキャッシュ（＃０）２１およびキャッシュ（＃１）２２にアクセスしている場合に、該当機能が使用する制御情報の書き換えを行うと、キャッシュ（＃０）２１およびキャッシュ（＃１）２２が論理的に乱れ、異常状態と判断される。
【００５７】
ただし、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報の書き換え時間が短く、キャッシュ（＃０）２１およびキャッシュ（＃１）２２上の書き換えエリアを占有できる最大時間内に完了できる場合は、制御ファームウェア４０の交換の際に該当機能が使用する制御情報の書き換えをすることが可能である。
【００５８】
次に、このように構成された実施例１に係るディスクアレイ装置１の動作について、図１ないし図３，および図４ないし図１４を参照しながら詳しく説明する。
【００５９】
ただし、以下の動作説明での制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報の詳細，ならびに制御ファームウェア４０の交換方法は、ディスクアレイ装置１により異なり、本発明とは直接関係しないので、詳しい説明を省略する。
【００６０】
図４〜図７は、ディスクアレイ装置１において、上位装置２からのアクセスをパス毎に停止することにより、ディスクアレイ装置１全体を停止せずに制御ファームウェア４０を交換する場合の動作を示す。
【００６１】
この例では、ＣＰＵ（＃０）１１の制御ファームウェア４０の交換を最初に行う場合について説明するが、ＣＰＵ（＃１）１２の制御ファームウェア４０の交換を最初に行う場合も同様の動作となる。
【００６２】
図４を参照すると、ディスクアレイ装置１は、ＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２が二重化されているとともに、不揮発性のキャッシュ（＃０）２１およびキャッシュ（＃１）２２も二重化されていて、いずれのＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２からもキャッシュ（＃０）２１およびキャッシュ（＃１）２２がアクセスできる構成である。
【００６３】
通常運用時には、キャッシュ（＃０）２１およびキャッシュ（＃１）２２は、同じデータを書き込むミラーリング構成になっている。
【００６４】
上位装置２からの書き込み時には、どちらのキャッシュ（＃０）２１およびキャッシュ（＃１）２２にもデータを書き込む。一方、上位装置２からの読み出し時には、処理の競合を減らすために、ぶつからないように決められた方のキャッシュ（＃０）２１またはキャッシュ（＃１）２２からデータを読み出す。
【００６５】
図５ないし図７は、制御ファームウェア４０の交換の際の動作を示す。
【００６６】
（ａ０）  図５を参照すると、まず、上位装置２からのＣＰＵ（＃０）１１へのアクセスを停止する。停止の間、上位装置２は、ＣＰＵ（＃１）１２のパスでのみアクセスを行う。
【００６７】
（ａ１）  ＣＰＵ（＃０）１１の制御ファームウェア４０を交換する。交換後、ＣＰＵ（＃０）１１は、交換後の制御ファームウェア４０で動作するが、キャッシュ（＃０）２１およびキャッシュ（＃１）２２は、交換前の制御ファームウェア４０の各機能が使用する制御情報のままである。そこで、まず、ＣＰＵ（＃０）１１の制御ファームウェア４０の起動時に、ＣＰＵ（＃０）１１は、制御ファームウェア４０が交換されたことをＣＰＵ間通信を使ってＣＰＵ（＃１）１２に通知する。
【００６８】
（ａ２）  これにより、ＣＰＵ（＃１）１２は、キャッシュ（＃１）２２のみを使用し、キャッシュ（＃０）２１へアクセスしないようにする。
【００６９】
（ａ３）  ＣＰＵ（＃０）１１は、交換後の制御ファームウェア４０で立ち上げ後に、キャッシュ（＃１）２２を使ってキャッシュ（＃０）２１上の各機能が使用する制御情報を継承して、交換後の制御ファームウェア４０の各機能が使用する制御情報のフォームに書き換える。この操作は、ＣＰＵ（＃１）１２が、キャッシュ（＃１）２２上の各機能が使用する制御情報を更新するたびに実施する。
【００７０】
（ａ４）  図６を参照すると、図５に続いて、上位装置２からのＣＰＵ（＃０）１１へのアクセスを再開する。
【００７１】
（ａ５）  ＣＰＵ（＃１）１２は、キャッシュ（＃１）２２のみの使用を継続する。
【００７２】
（ａ６）  ＣＰＵ（＃０）１１は、キャッシュ（＃０）２１およびキャッシュ（＃１）２２をそれぞれの制御情報で使用するとともに、ＣＰＵ（＃１）１２がキャッシュ（＃１）２２を変更した内容をキャッシュ（＃１）２２から変換してキャッシュ（＃０）２１に反映する。これにより、上位装置２からのＣＰＵ（＃０）１１へのアクセスを再開しても、ＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２の動作は変わらない。
【００７３】
（ａ７）  図７を参照すると、図６に続いて、ＣＰＵ（＃１）１２の制御ファームウェア４０の交換のため、上位装置２からのＣＰＵ（＃１）１２へのアクセスを停止する。停止の間、上位装置２は、ＣＰＵ（＃０）１１のパスでのみキャッシュ（＃０）２１のアクセスを行う。
【００７４】
（ａ８）  ＣＰＵ（＃１）１２の制御ファームウェア４０の交換を行い、交換後の制御ファームウェア４０の起動時に、ＣＰＵ（＃１）１２は、制御ファームウェア４０が交換されたことをＣＰＵ間通信を使ってＣＰＵ（＃０）１１に通知する。
【００７５】
（ａ９）  これにより、ＣＰＵ（＃０）１１は、ＣＰＵ（＃１）１２の変更を変換してキャッシュ（＃０）２１に反映する作業を停止し、キャッシュ（＃０）２１のみを使用する。
【００７６】
（ａ１０）  ＣＰＵ（＃１）１２は、キャッシュ（＃０）２１をキャッシュ（＃１）２２にコピ−する。コピ−完了後、上位装置２からのＣＰＵ（＃１）１２へのアクセスを再開し、ＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２ともに通常の図４の状態に戻り、制御ファームウェア４０の交換作業は完了する。
【００７７】
このような動作により、ＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２が二重化されているディスクアレイ装置１での制御ファームウェア４０の交換の際に、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報の書き換えが必要な場合に、上位装置２からのディスクアレイ装置１へのアクセスを停止せずに、制御ファームウェア４０を交換することが可能になる。
【００７８】
図８ないし図１０は、キャッシュ（＃０）２１およびキャッシュ（＃１）２２上の既存の機能が使用する制御情報を継承して、交換後の制御ファームウェア４０の各機能が使用する制御情報のフォームに書き換えるのではなく、新しく機能を追加する場合について説明する。
【００７９】
（ｂ０）  図８を参照すると、まず、上位装置２からのＣＰＵ（＃０）１１へのアクセスを停止する。停止の間、上位装置２は、ＣＰＵ（＃１）１２のパスでのみアクセスを行う。
【００８０】
（ｂ１）  ＣＰＵ（＃０）１１の制御ファームウェア４０を交換する。交換後、ＣＰＵ（＃０）１１は、交換後の制御ファームウェア４０で動作するが、キャッシュ（＃０）２１およびキャッシュ（＃１）２２は、交換前の制御ファームウェア４０の各機能が使用する制御情報のままである。そこで、まず、ＣＰＵ（＃０）１１の制御ファームウェア４０の起動時に、ＣＰＵ（＃０）１１は、制御ファームウェア４０が交換されたことをＣＰＵ間通信を使ってＣＰＵ（＃１）１２に通知する。
【００８１】
（ｂ２）  ＣＰＵ（＃１）１２は、新しい機能が使用する制御情報のエリアは使用しない。
【００８２】
（ｂ３）  ＣＰＵ（＃０）１１は、新しい機能が使用する制御情報のエリアを確保する。このエリアは、すでにある未使用エリアあるいはユーザデータを移動して確保された未使用エリアである。
【００８３】
（ｂ４）  図９を参照すると、図８に続いて、上位装置２からのＣＰＵ（＃１）１２へのアクセスを停止する。停止の間、上位装置２は、ＣＰＵ（＃０）１１のパスでのみキャッシュ（＃０）２１のアクセスを行う。
【００８４】
（ｂ５）  ＣＰＵ（＃１）１２の制御ファームウェア４０も交換する。
【００８５】
（ｂ６）  ＣＰＵ（＃１）１２は、制御ファームウェア４０の交換が完了した後に、新しい機能が使用する制御情報のエリアは使用しない。
【００８６】
（ｂ７）  ＣＰＵ（＃０）１１は、制御ファームウェア４０の交換が完了した後に、新しい機能が使用する制御情報のエリアは使用しない。
【００８７】
（ｂ８）  図１０を参照すると、図９に続いて、新しい機能が使用する制御情報のエリアを初期化して、ＣＰＵ（＃０）１１の使用を開始する。
【００８８】
（ｂ９）  これと同時に、新しい機能が使用する制御情報のエリアを初期化して、ＣＰＵ（＃１）１２の使用を開始する。これにより、機能を追加する場合には、図４ないし図７のような複雑な処理をせずに、かつ上位装置２からのアクセスを停止せずに、制御ファームウェア４０を交換することが可能になる。
【００８９】
図１１は、制御ファームウェア４０に新しく機能を追加する場合に、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報のエリアを確保する動作を説明する図である。この例では、ユーザデータの一部をディスク５０に書き込み、その領域を空けて未使用エリアとし、その後、新しい機能ｆ３が使用する制御情報のエリアとして追加する。ユーザデータは、本来、ディスク５０に存在するデータなので、エリアを空けることが可能である。
【００９０】
図１２は、制御ファームウェア４０の機能を変更する場合に、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報の変更を説明する図である。同一のエリア内の制御情報を書き換えるためのもので、各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報のエリアの内容が変わるだけでエリアそのものは変化しない。この例では、まず、新しい制御ファームウェア４０で動作するために、キャッシュ（＃０）２１上の機能ｆ２の制御情報を機能ｆ２’の制御情報に変更する。次に、キャッシュ（＃１）２２の更新内容をキャッシュ（＃０）２１に反映する。続いて、キャッシュ（＃０）２１の内容をキャッシュ（＃１）２２に写す。
【００９１】
実施例１によれば、制御ファームウェア４０を交換する際に、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報を消去せずに、制御ファームウェア４０を交換できる。その理由は、制御ファームウェア４０の各機能の適応レビジョンと、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報の機能レビジョンとを管理し、制御ファームウェア４０を交換する際に、そのまま制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報が使えるか否かを判断し、使えない場合には、機能レビジョンに従った制御情報を継承して最新の制御ファームウェア４０の各機能が使用する制御情報のフォームに書き換えることで、キャッシュ（＃０）２１およびキャッシュ（＃１）２２を初期化して制御情報を消去せずに、制御ファームウェア４０の交換が可能になるからである。
【００９２】
また、ＣＰＵ（＃０）１１およびＣＰＵ（＃１）１２が二重化されているディスクアレイ装置１における制御ファームウェア４０の交換の際に、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報の書き換えが必要な場合、システム（上位装置２からのアクセス）を停止せずに、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報を消去せずに、制御ファームウェア４０の交換ができる。その理由は、制御ファームウェア４０の交換の際に、キャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報を、交換後の制御ファームウェア４０の各機能が使用する制御情報と、交換前の制御ファームウェア４０の各機能が使用する制御情報とを共存させ、書き換えることで実行するからである。
【実施例２】
【００９３】
図１３および図１４は、制御ファームウェア４０の既存の機能を変更する場合に、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報のエリアを確保する別の方法を説明する図である。機能が使用する制御情報のエリアが変化する場合に、この方法が適用される。
【００９４】
図１１および図１２と同様に、ユーザデータをディスク５０に書き込んで未使用エリアを作成する。ＣＰＵ（＃０）１１の制御ファームウェア４０の交換後は、作成した未使用エリアを更新または追加後の機能ｆ２’が使用する制御情報のエリアとして更新または追加前の機能が使用する制御情報を変換して書き込む。この場合、キャッシュ（＃０）２１およびキャッシュ（＃１）２２ともに書き込み、ＣＰＵ（＃１）１２の更新または追加前の機能ｆ２が使用する制御情報のエリアの更新内容も反映させる。ＣＰＵ（＃１）１２は、更新または追加前の機能が使用する制御情報のエリアのみを使用する。
【００９５】
ＣＰＵ（＃１）１２の制御ファームウェア４０の交換後は、ＣＰＵ（＃０）１１ともに更新または追加後の機能ｆ２’が使用する制御情報のエリアのみを使用する。連続したエリアを必要としない場合は、このまま更新または追加前の機能ｆ２が使用する制御情報のエリアは未使用エリアとし、連続したエリアが必要な場合は、機能ｆ２’が使用する制御情報のエリアを詰める処理を行う。
【００９６】
最後に、未使用エリアをユーザデータに戻す処理を行う。
【００９７】
実施例２によれば、機能が使用する制御情報のエリアが変化する場合でも、制御ファームウェア４０の各機能が使用するキャッシュ（＃０）２１およびキャッシュ（＃１）２２上の制御情報を消去せずに、制御ファームウェア４０を交換できるとともに、連続したエリアが必要な場合は、機能が使用する制御情報のエリアを詰めることができるという効果がある。
【産業上の利用可能性】
【００９８】
本発明の活用例として、キャッシュやディスクのような不揮発性のエリアの制御情報を変更したい場合に使用できる。
【図面の簡単な説明】
【００９９】
【図１】本発明の実施例１に係るディスクアレイ装置の基本的な構成例を示すブロック図である。
【図２】本実施例１に係るディスクアレイ装置における制御ファームウェアの各機能が使用するキャッシュ上の制御情報のエリアを示したマップおよび制御ファームウェアのマップである。
【図３】本実施例１に係るディスクアレイ装置における保守員への問い合わせをせずに制御ファームウェアを交換する際の手順を示すフローチャートである。
【図４】本実施例１に係るディスクアレイ装置の要部を示すブロック図である。
【図５】本実施例１に係るディスクアレイ装置における制御ファームウェアの各機能が使用するキャッシュ上の制御情報を消去せずに制御ファームウェアを交換する流れ図である。
【図６】本実施例１に係るディスクアレイ装置における制御ファームウェアの各機能が使用するキャッシュ上の制御情報を消去せずに制御ファームウェアを交換する流れ図である。
【図７】本実施例１に係るディスクアレイ装置における制御ファームウェアの各機能が使用するキャッシュ上の制御情報を消去せずに制御ファームウェアを交換する流れ図である。
【図８】本実施例１に係るディスクアレイ装置における制御ファームウェアの各機能が使用するキャッシュ上の制御情報を追加する流れ図である。
【図９】本実施例１に係るディスクアレイ装置における制御ファームウェアの各機能が使用するキャッシュ上の制御情報を追加する流れ図である。
【図１０】本実施例１に係るディスクアレイ装置における制御ファームウェアの各機能が使用するキャッシュ上の制御情報を追加する流れ図である。
【図１１】本実施例１に係るディスクアレイ装置におけるキャッシュに機能追加する場合のキャッシュ内部手順の図である。
【図１２】本実施例１に係るディスクアレイ装置における制御ファームウェアの各機能が使用するキャッシュ上の制御情報を追加する場合のキャッシュ内部手順を示す図である。
【図１３】本発明の実施例２に係るディスクアレイ装置における制御ファームウェアの各機能が使用するキャッシュ上の制御情報を追加する場合のキャッシュ内部手順の別の案を示す図である。
【図１４】本実施例２に係るディスクアレイ装置における制御ファームウェアの各機能が使用するキャッシュ上の制御情報を追加する場合のキャッシュ内部手順の別の案の図である。
【図１５】従来のＣＰＵ単位で制御ファームウェアを交換する際に保守員に指示を出す仕組みを表したフローチャートである。
【符号の説明】
【０１００】
１  ディスクアレイ装置
２  上位装置
１１  ＣＰＵ（＃０）
１２  ＣＰＵ（＃１）
２１  キャッシュ（＃０）
２２  キャッシュ（＃１）
２０  キャッシュ機構
３１，３２  ＲＯＭ
４１，４２  制御ファームウェア
５０  ディスク
Ｓ１０１  制御ファームウェア機能選択ステップ
Ｓ１０２  キャッシュレビジョン確認ステップ
Ｓ１０３  継続使用可能レビジョン判断ステップ
Ｓ１０４  制御情報フォーム書き換えステップ
Ｓ１０５  全機能選択判断ステップ
Ｓ１０６  制御ファームウェア交換作業ステップ
【図１】
2005165528.tif 000003
【図２】
2005165528.tif 000004
【図３】
2005165528.tif 000005
【図４】
2005165528.tif 000006
【図５】
2005165528.tif 000007
【図６】
2005165528.tif 000008
【図７】
2005165528.tif 000009
【図８】
2005165528.tif 000010
【図９】
2005165528.tif 000011
【図１０】
2005165528.tif 000012
【図１１】
2005165528.tif 000013
【図１２】
2005165528.tif 000014
【図１３】
2005165528.tif 000015
【図１４】
2005165528.tif 000016
【図１５】
2005165528.tif 000017