説明

ストレージ装置、ストレージ制御ファームウェアの活性プログラム交換方法及びストレージ制御プログラム活性交換のためのプログラム

【課題】従来のプログラム活性交換では、ホストとのコネクションが一旦切断され、ホストからディスクにアクセスできない時間ができてしまう。その間、ディスクの使用が不可能となる。また、ホスト内のマルチパス管理部に、プログラム交換時に一旦パスを使わないようにし、プログラム交換後にパスを復旧させる必要があり、オペレータ操作が必要となって制御が複雑になる。
【解決手段】ストレージ制御装置2Aに、ホストインタフェース制御部3と、ストレージ制御ファームウェアAと、電気的に書き換え可能な不揮発性メモリ7を備え、不揮発性メモリ7を使用して、ストレージ制御ファームウェアAの活性プログラム交換中に必要な情報を格納し、この情報を使用してホスト1とのコネクションを切断することなく、ホスト1からのコマンドにエラー応答することなく、活性プログラム交換を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、ストレージ制御ファームウェアの活性プログラム交換を行うストレージ装置、ストレージ制御ファームウェアの活性プログラム交換方法及びストレージ制御プログラム活性交換のためのプログラムに関するものである。
【背景技術】
【0002】
(1) :従来例1
図7は従来例1の説明図である。以下、図7に基づき従来例1を説明する。
【0003】
図7に示した従来例1は、ストレージ群として、例えば、RAID装置のような磁気ディスク装置群(ディスク群)を備えた1台のディスク制御装置2をホスト1に接続して運用する例である。ディスク制御装置2には、ホスト1との間でインタフェース制御を行うためのホストインタフェースコントローラ(以下、単に「ホストI/F制御部」と記す)3を備えると共に、ディスク制御装置2内には、ディスク群の制御を行うためのファームA(ディスク制御ファームウェア)を備えている。なお、前記ファームAは、前記ディスク群の制御に必要なプログラムをメモリ内に記憶させたものである。
【0004】
また、前記ホストI/F制御部3には、ホストインタフェース制御を行うためのコントローラ4と、ファームB(ホストインタフェース制御ファームウェア)等を備えている。この場合のファームBは、ホストインタフェース制御を行うためのプログラムを格納したメモリから構成されたファームウェアであり、ファームAとはプログラムの構成が異なっている。
【0005】
前記のような構成において、ファームA内のプログラムを活性交換する場合、ディスク制御装置2が1台であれば、前記ファームAのプログラムを活性交換する過程で、ホスト1とのインタフェースを制御するホストI/F制御部3内のコントローラ4によりリセットされる。このため、ホスト1とのコネクション(パス)が一旦切断され、ホスト1からディスクにアクセスできない時間ができてしまう。その間、ディスクの使用が不可能となる。
【0006】
(2) :従来例2
図8は従来例2の説明図である。以下、図8に基づき従来例2を説明する。
【0007】
図8に示した従来例2は、ホスト1に対して、前記従来例1と同じ構成のディスク制御装置を2台(ディスク制御装置2−1及びディスク制御装置2−2)接続し、2重化したシステム(マルチパス構成のシステム)を構成する例である。この場合、ホスト1には、マルチパスの制御を行うためのマルチパス管理部5を備えている。
【0008】
そして、ディスク制御装置2−1又は2−2内のファームAのプログラム交換を行う場合、次のようにする。
【0009】
すなわち、ディスク制御装置2−1内のファームAの活性プログラム交換時には、ホスト1とディスク制御装置2−2との間のパスからディスク制御装置2−2へアクセスする。また、ディスク制御装置2−2内のファームAの活性プログラム交換時には、ホスト1とディスク制御装置2−1との間のパスからディスク制御装置2−1へアクセスする。
【0010】
前記のようなマルチパス構成のシステムにおいては、ホスト側のディスク制御装置へのアクセスのためにマルチパス管理が必要になり、ファームAの活性プログラム交換時のコネクション切断を異常と判断してしまう。
【0011】
そこで、前記の場合に異常と判断しないようにするためには、ホスト1内のマルチパス管理部5に、プログラム交換時に一旦パスを使わないようにし、活性プログラム交換後にパスを復旧させる必要があり、オペレータ操作が必要となって制御が複雑になる。
【0012】
(3) :従来例3
以下、特許文献1を従来例3として説明する。従来例3は入出力制御装置およびそのファームウェア更新方法に関するものであり、次のような内容が記載されている。
【0013】
(a) :上位装置と磁気ディスク装置との間に介装され、上位装置からの入出力信号に応じて磁気ディスク装置に対する書込/読出制御を行なう磁気ディスク制御装置(入出力制御装置)に適用される技術に関し、特に、上位装置との結合動作中にファームウェアを交換(更新)する活性交換機能(更新機能)を有する入出力制御装置、および、そのファームウェア更新方法に関する。(段落番号[0002]参照)
(b) :磁気ディスク制御装置(入出力制御装置)を成す全てのファームウェアを活性交換できるようにして、磁気ディスク制御装置を有するシステムを確実に24時間稼働できるようにするとともに、ポインタテーブル等の書換え、更新を不要にして、ファームウェアの活性交換(更新)に要する時間の短縮をはかった。入出力制御装置およびそのファームウェア更新方法を提供することを目的とする。(段落番号[0029]参照)
(4) :従来例4
以下、特許文献2を従来例4として説明する。従来例4は、ディスク制御装置に関するものであり、次のような内容が記載されている。
【0014】
(a) :プロセッサ群を全面停止させることなく、プロセッサ群が実行するプログラムを変更することが出来るデイスク制御装置を提供する。(段落番号[0003]参照)
(b) :前記チャネルプロセッサと前記ドライブプロセッサは、前記入出力要求を、新しいプログラムをローディング中は旧プログラムを使って処理し、前記チャネルプロセッサと前記ドライブプロセッサは、前記入出力要求を、前記新しいプログラムが前記チャネルプロセッサと前記ドライブプロセッサの両方において使用可能となった後は、前記新しいプログラムを使って処理することを特徴とするディスク制御装置を提供する。(段落番号[0004]参照)
(5) :従来例5
以下、特許文献3を従来例5として説明する。従来例5は、ポートを内蔵したストレージに関するものであり、次のような内容が記載されている。
【0015】
(a) :ストレージのポートの応答できない時間を短縮することにより、サーバを停止することなく、マイクロプログラム交換を実現することで、交替パスソフトの購入やサーバの停止、起動等のストレージシステム管理者の負担を軽減する。(要約の欄を参照)
(b) :SAN(ストレージエリアネットワーク)環境のストレージにスペアポートを一つ以上設定する。ストレージに設けられたポートのマイクロプログラム交換時、交換対象のポートからそのポートの持つ属性情報をスペアポートにコピーし、スペアポートにサーバとストレージの接続を切り替える。(要約の欄を参照)
【特許文献1】特許第3437083号公報
【特許文献2】特開2001−229042号公報
【特許文献3】特開2003−131897号公報
【発明の開示】
【発明が解決しようとする課題】
【0016】
(1) :従来例1では、ファームA内のプログラムを活性交換する場合、ディスク制御装置2が1台であれば、前記ファームAのプログラムを活性交換する過程で、ホスト1とのインタフェースを制御するホストI/F制御部3内のコントローラ4がリセットされる。このため、ホスト1とのコネクション(パス)が一旦切断され、ホスト1からディスクにアクセスできない時間ができてしまう。その間、ディスクの使用が不可能となる。
【0017】
(2) :従来例2では、マルチパス構成のシステムであり、ホスト側のディスク制御装置へのアクセスのためにホスト側でのマルチパス管理が必要になり、ファームAのプログラム活性交換時のコネクション切断を異常と判断してしまう。
【0018】
そこで、前記の場合に異常と判断しないようにするためには、ホスト1内のマルチパス管理部に、プログラム交換時に一旦パスを使わないようにし、プログラム交換後にパスを復旧させる必要があり、オペレータ操作が必要となって制御が複雑になる。
【0019】
(3) :従来例3は、入出力制御装置およびそのファームウェア更新方法に関するものであり、特に、上位装置との結合動作中にファームウェアを交換(更新)する活性交換機能(更新機能)を有する入出力制御装置、および、そのファームウェア更新方法に関する。
【0020】
しかし、従来例3には、本発明の構成要件である、「電気的に書き込み可能な不揮発性メモリを使用して、ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、活性プログラム交換を行うストレージ装置」の具体的な構成については記載がなく、本発明の背景技術程度の内容である。
【0021】
(4) :従来例4は、プロセッサ群を全面停止させることなく、プロセッサ群が実行するプログラムを変更することが出来るデイスク制御装置に関して記載されている。
【0022】
しかし、従来例4には、本発明の構成要件である、「電気的に書き込み可能な不揮発性メモリを使用して、ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、活性プログラム交換を行うストレージ装置」の具体的な構成については記載がなく、本発明の背景技術程度の内容である。
【0023】
(5) :従来例5は、ストレージのポートの応答できない時間を短縮することにより、サーバを停止することなく、マイクロプログラム交換を実現することで、交替パスソフトの購入やサーバの停止、起動等のストレージシステム管理者の負担を軽減するという内容である。
【0024】
しかし、従来例5には、本発明の構成要件である、「電気的に書き込み可能な不揮発性メモリを使用して、ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、活性プログラム交換を行うストレージ装置」の具体的な構成については記載がなく、本発明の背景技術程度の内容である。
【0025】
本発明は従来の課題を解決するためになされたものであり、ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を電気的に書き換え可能な不揮発性メモリに格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、前記活性プログラム交換を行えるようにすることを目的とする。
【課題を解決するための手段】
【0026】
本発明は前記の目的を達成するため、次のように構成した。
【0027】
(1) :ストレージの制御を行い、ホストに接続して運用されるストレージ制御装置に、ホスト間のインタフェース制御を行うホストインタフェース制御部と、ストレージ制御用のプログラムを有するストレージ制御ファームウェアと、電気的に書き換え可能な不揮発性メモリを備え、前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、前記活性プログラム交換を行うストレージ装置であって、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手段と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手段と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動して該ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手段と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手段と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手段とを備えていることを特徴とするストレージ装置。
【0028】
(2) :ストレージと、このストレージを制御するストレージ制御装置を備え、前記ストレージ制御装置をホストに接続して運用すると共に、前記ストレージ制御装置には、ホストとの間のインタフェース制御を行うホストインタフェース制御部と、前記ストレージの制御を行うプログラムを有するストレージ制御ファームウェアを備えたストレージ装置において、前記ホストインタフェース制御部は、ホスト間のインタフェース制御を行うプログラムを有するホストインタフェース制御ファームウェアを備え、前記ホストインタフェース制御ファームウェアは、前記ストレージ制御ファームウェアの活性プログラム交換中もホストインタフェース制御部が動作し続けられるようにする機能を備えると共に、前記ストレージ制御装置に、前記ストレージ制御ファームウェアの活性プログラム交換後の起動中もクリアされない電気的に書き換え可能な不揮発性メモリを備え、前記不揮発性メモリには、ホストから受け取ったコマンドを順次格納するコマンドキューと、前記ストレージ制御ファームウェアの活性プログラム交換をする際の順序情報を格納する活性プログラム交換用順序テーブルと、ホストから受け取ったイベント情報を格納するイベントテーブルと、ホストの情報を格納するホスト情報領域とを備え、前記ホストインタフェース制御部が前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、これらの情報を使用して、ホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、前記ストレージ制御ファームウェアの活性プログラム交換を行わせる機能を備えていることを特徴とするストレージ装置。
【0029】
(3) :ストレージの制御を行い、ホストに接続して運用されるストレージ制御装置に、ホスト間のインタフェース制御を行うホストインタフェース制御部と、ストレージ制御用のプログラムを有するストレージ制御ファームウェアと、電気的に書き換え可能な不揮発性メモリを備え、前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく前記活性プログラム交換を行うストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法であって、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手順と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手順と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動して該ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手順と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手順と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手順とを備えていることを特徴とするストレージ制御ファームウェアの活性プログラム交換方法。
【0030】
(4) :ストレージと、このストレージを制御するストレージ制御装置を備え、前記ストレージ制御装置をホストに接続して運用すると共に、前記ストレージ制御装置には、ホストとの間のインタフェース制御を行うホストインタフェース制御部と、前記ストレージの制御を行うプログラムを有するストレージ制御ファームウェアを備えたストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法において、前記ホストインタフェース制御部は、ホスト間のインタフェース制御を行うプログラムを有するホストインタフェース制御ファームウェアを備え、前記ホストインタフェース制御ファームウェアは、前記ストレージ制御ファームウェアの活性プログラム交換中もホストインタフェース制御部が動作し続けられるようにする機能を備えると共に、前記ストレージ制御装置に、前記ストレージ制御ファームウェアの活性プログラム交換後の起動中もクリアされない電気的に書き換え可能な不揮発性メモリを備え、前記ホストインタフェース制御部が前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、これらの情報を使用することにより、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手順と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手順と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動して該ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手順と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手順と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手順とを備えていることを特徴とするストレージ制御ファームウェアの活性プログラム交換方法。
【0031】
(作用)
以下、図1を参照しながら前記構成に基づく本発明の作用を説明する。
【0032】
(a) :前記(1) 、(2) 、(3) 、(4) の作用
前記ホスト1に接続されたストレージ制御装置2では次のような作用がある。
【0033】
1.ストレージ制御ファームウェア(ファームA)の活性プログラム交換開始時、外部からの指示(オペレータ等からの指示)が出された時点以降にホスト1から受け取ったコマンドの処理を停止する。そして、ホスト1から受け取ったコマンドとイベントの順序関係を保持するため、電気的に書き換え可能な不揮発性メモリ7に両者の情報を分けて格納する。また、ホスト1が発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態(該当するコマンドに無効の印を付ける)にする。
【0034】
2.次に、コマンド処理停止が完了した際、ホストインタフェース制御部(ホストI/F制御部3)からストレージ制御ファームウェア(ファームA)への割り込みを抑止し、ホスト1から受け取ったコマンドは前記不揮発性メモリ7へ転送し続け、不揮発性メモリ7内のコマンドキューの入力ポインタは更新し、ストレージ制御ファームウェア(ファームA)の処理は行わないように制御を行う。
【0035】
3.次に、ストレージ制御ファームウェア(ファームA)の活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェア(新ファームA)を起動して該ストレージ制御ファームウェアを有効にすると共に、不揮発性メモリ7の内容は保持するように制御を行う。
【0036】
4.新ストレージ制御ファームウェア(新ファームA)による起動時は、ホストインタフェース制御部(ホストI/F制御部3)の初期設定を実施しないように、コネクションを切断せずに、ホスト1との論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う。
【0037】
5.ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェア(新ファームA)が起動されたことでホスト1との論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う。
【0038】
このようにすれば、ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を電気的に書き換え可能な不揮発性メモリに格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、前記活性プログラム交換を行える。
【発明の効果】
【0039】
本発明は次のような効果がある。
【0040】
(a) :請求項1、2、3、4、5の効果
(1) :ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を電気的に書き換え可能な不揮発性メモリに格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、前記活性プログラム交換を行える。
【発明を実施するための最良の形態】
【0041】
§1:システムの概要の説明
以下、図1に基づき、システムの概要を説明する。
【0042】
(1) :図1に示したストレージ装置は、ストレージ(又はストレージ群)と、このストレージ(又はストレージ群)を制御するストレージ制御装置2Aを備え、このストレージ制御装置2Aをホスト1に接続して運用する。
【0043】
そして、ストレージ制御装置2Aには、ホスト1との間のインタフェース制御を行うホストインタフェース制御部(以下「ホストI/F制御部3」と記す)と、ストレージ(又はストレージ群)の制御を行うプログラムを有するストレージ制御ファームウェア(以下「ファームA」と記す)と、ファームA(ストレージ制御ファームウェア)がアクセスする揮発性メモリ8を備えている。
【0044】
(2) :また、ホストI/F制御部3は、ホスト1間のインタフェース制御を行うプログラムを有するファームB(ホストインタフェース制御ファームウェア)を備え、ファームB(ホストインタフェース制御ファームウェア)は、ファームA(ストレージ制御ファームウェア)の活性プログラム交換中もホストI/F制御部3が動作し続けられるようにする機能を備える。
【0045】
(3) :また、ストレージ制御装置2Aに、ファームA(ストレージ制御ファームウェア)の活性プログラム交換後の起動中もクリアされない電気的に書き換え可能な不揮発性メモリ7を備え、不揮発性メモリ7には、ホスト1から受け取ったコマンドを順次格納するコマンドキュー11と、ファームA(ストレージ制御ファームウェア)の活性プログラム交換をする際の順序情報を格納する活性プログラム交換用順序テーブル12と、ホスト1から受け取ったイベント情報を格納するイベントテーブル13と、ホスト1の情報を格納するホスト情報領域14とを備え、ホストI/F制御部3が不揮発性メモリ7を使用して、ファームA(ストレージ制御ファームウェア)の活性プログラム交換中に必要な情報を格納し、これらの情報を使用して、ホスト1とのコネクションを切断することなく、ホスト1からのコマンドにエラー応答することなく、ファームA(ストレージ制御ファームウェア)の活性プログラム交換を行わせる機能を備えている。
【0046】
§2:ディスク制御装置の構成の説明
図2はシステム構成図である。以下、前記ストレージ装置の具体例としてディスク装置(RAID構成の磁気ディスク装置)の例について説明する。
【0047】
図2に示したように、このシステムは、ホスト1と、該ホスト1にパスにより接続されたディスク制御装置2を備え、前記ディスク制御装置2にはディスク群(RAID用ディスク群)が接続されたシステムである。
【0048】
そして、ディスク制御装置2には、ホストインタフェース制御部(以下「ホストI/F制御部」と記す)3と、電気的に書き換え可能な不揮発性メモリ7と、揮発性メモリ8と、ディスク制御用ファームウェア(以下「ファームA」と記す)が設けてある。また、書き換え可能な不揮発性メモリ7には、コマンドキュー11と、活性プログラム交換用順序テーブル12と、イベントテーブル13と、ホスト情報格納領域14等が設けてある。
【0049】
また、揮発性メモリ8には、制御領域17と、ホスト管理テーブル18が設けてある。また、ホストI/F制御部3には、コントローラ4と、ファームBと、レジスタ群等が設けてある。前記各部の機能等は次の通りである。
【0050】
(a) :ディスク制御装置2は、ホスト1との間でコマンドやその他のデータの授受を行い、ディスク群の制御を行ってデータのライトやリードの制御を行うものであり、ホストI/F制御部3が、その際の各種ホストインタフェース制御を行う。
【0051】
(b) :ホストI/F制御部3は、ホスト1との間の各種ホストインタフェース制御を行うものである。コントローラ4は、ホストインタフェース制御を行うものである。また、ファームB(ホストインタフェース制御用ファームウェア)は、ファームAとは内部のプログラム構成が異なるものであり、書き換え可能な不揮発性メモリ7に対するデータの書き換えや読み出し等を行うものである。また、レジスタ群は前記ホストインタフェース制御を行う際に、ワーク用として使用するものである。
【0052】
(c) :電気的に書き換え可能な不揮発性メモリ7は、ファームAの活性プログラム交換を行う際に、必要なデータを書き込んだり、或いは書き込んだデータを読み出したりするためのものであり、ホストI/F制御部3の制御でライト/リードの処理が行われる。
【0053】
この場合、コマンドキュー11はホストから受け取ったコマンドを順次蓄積するためのものである。活性プログラム交換用順序テーブル12はファームAの活性プログラム交換を行う際の順序に従ってデータを蓄積するものである。イベントテーブル13はホスト1から受け取ったイベントを格納するものである。ホスト情報格納領域14はホスト1の情報を格納するものである。
【0054】
なお、電気的に書き換え可能な不揮発性メモリ7は、バッテリバックアップした揮発性メモリ(DRAM、SRAM等)、フラッシュメモリ等で構成する。
【0055】
(d) :揮発性メモリ8は、ファームAがアクセスするメモリであり、制御情報は制御領域17に格納し、ホスト管理情報はホスト管理テーブル18に格納するものである。なお、揮発性メモリ8は、DRAM、SRAM等で構成する。
【0056】
§3:ディスク制御装置の動作の説明
図3はディスク制御装置の動作説明図(その1)であり、A図はコマンドキューの動作、B図はコマンドとイベントの順序関係保持の動作を示す。図4はディスク制御装置の動作の説明図(その2)であり、A図はキャンセルコマンドの処理を示す。図5はディスク制御装置の動作の説明図(その3)であり、A図は例1の新ファームとホスト間のコネクション復元動作、B図は例2の新ファームとホスト間のコネクション復元動作を示す。以下、図3乃至図5に基づいて、ディスク制御装置の動作を説明する。
【0057】
(a) :コマンドキューの動作(図3のA図参照)
ホストI/F制御部3がホスト1からコマンドを受け取ると、そのコマンドを電気的に書き換え可能な不揮発性メモリ7のコマンドキュー11に順次格納して蓄積する。そして、このコマンドキュー11は、入力Pの位置がコマンドの入力位置を示している。また、出力Pは、一旦、コマンドキュー11に入力されたコマンドが実行されるために取り出されると、その位置が入力P側へ移動する。
【0058】
すなわち、処理すべきコマンド群は、入力Pと出力Pの間にある。このため、ファームAの活性プログラム交換中は、受信コマンドは処理しないため、出力Pの位置は動かない。
【0059】
(b) :コマンドとイベントの順序関係保持の動作(図3のB図参照)
活性プログラム交換用順序テーブル12は、ファームAの活性プログラム交換時の処理順序を保持するために使用するものである。ホストI/F制御部3からは、コマンドキュー11に入るコマンドだけでなく、ホストI/F制御部3内のレジスタ群で通知されるイベントもあるため、このイベントとコマンドキュー11に入るコマンドとの順序関係を保持するため、活性プログラム交換用順序テーブル12と、イベントテーブル13を使用する。
【0060】
例えば、活性プログラム交換用順序テーブル12には、種別とインデックスの欄があり、これらの欄に情報が入れられる。例えば、1番目は種別=コマンドであり、インデックス=コマンドキュー内のインデックスとなっている。2番目は種別=コマンドであり、インデックス=コマンドキュー内のインデックスとなっている。3番目は種別=イベントであり、インデックス=イベントテーブル内インデックスとなっている。以下、同様にして情報が格納される。
【0061】
また、イベントテーブル13には、前記活性プログラム交換用順序テーブル12の3番目のイベントのインデックス情報と、5番目のイベントのインデックス情報がレジスタ群の情報が格納されるようになっている。
【0062】
(c) :キャンセルコマンド処理(図4のA図参照)
さらに、ホスト1から既に受信済みのコマンドの中から、或るコマンドがキャンセルになったとの指示がホストから出された場合、処理すべきコマンド群からキャンセル対象のコマンド(例えば、コマンド2)を検索して特定し、そのコマンド(例えば、コマンド2)に「無効」印を付ける。
【0063】
(d) :例1の新ファームとホスト間のコネクション復元動作(図5のA図参照)
ファームAの新プログラムによる起動(ファームAの活性プログラム交換後の新プログラムによる新ファームAの起動)では、ホストI/F制御部3から新ファームAにコマンドによる割り込みを発生することで、交換された新ファームAを起動(リブート)し、新ファームAが有効になる。
【0064】
この時、電気的に書き換え可能な不揮発性メモリ7内の内容は保持するようにする(Warm Reboot)。
【0065】
ホストコネクションの復元動作では、新ファームA側は、リブート(起動)されたことで、ホスト1との論理的な接続(Login)状態は忘れている。そのため、リブート後のホストコマンド処理を開始する前に論理的な接続(Login)状態を復元させる必要がある。その1つの方法は、ホストI/F制御部3から情報を獲得する方法である。
【0066】
この方法では、新ファームAがホストI/F制御部3内のファームBに指示を出し、この指示に基づきファームBがホストI/F制御部3内のホスト情報テーブルに持っているホスト情報(ホスト情報A、ホスト情報B等の最新の情報)を揮発性メモリ8内のホスト管理テーブル18に入れる(コピーする)。
【0067】
この揮発性メモリ8内のホスト情報を使用して新ファームA(活性プログラム交換後の新ディスク制御ファームウェア)とホスト1間のコネクション復元動作を行う。
【0068】
(e) :例2の新ファームAとホスト1間のコネクション復元動作(図5のB図参照)
ホストコネクションの復元動作では、新ファームA側は、リブート(起動)されたことで、ホスト1との論理的な接続(Login)状態は忘れている。そのため、リブート(起動)後のホストコマンド処理を開始する前に論理的な接続(Login)状態を復元させる必要がある。
【0069】
その方法は、新ファームAが不揮発性メモリ7内のホスト情報格納領域14に格納してあるホスト情報を、揮発性メモリ8内のホスト管理テーブル18に入れる(コピーする)。この揮発性メモリ8内のホスト情報を使用して新ファームA(活性プログラム交換後の新ディスク制御ファームウェア)とホスト1間のコネクション復元動作を行う。
【0070】
この場合、図5のB図に示したように、電気的に書き換え可能な不揮発性メモリ7のホスト情報格納領域14には、例えば、ホスト情報C、ホスト情報Dのようなホスト情報が書き込んであるとすると、前記処理により、揮発性メモリ8の接続ホスト情報領域にも、ホスト情報C、ホスト情報Dのようなホスト情報がコピーされ、前記コネクション復元動作が行われる。
【0071】
§4:活性プログラム交換時のディスク制御装置の処理説明
図6はディスク制御装置の処理フローチャートである。以下、図6に基づいて、ファームAの活性プログラム交換を行う際のディスク制御装置の処理を説明する。なお、図6において、S1〜S6は各処理ステップを示す。
【0072】
この処理は、ホスト1とのコネクションを切断することなく、更にホスト1からのコマンドにエラー応答することなく、ファームA(ディスク制御ファームウェア)の活性プログラム交換を実施するための処理である。
【0073】
前記活性プログラム交換では、ディスク制御装置2内に、ファームAのプログラム交換(プログラム書き換え)後のリブート(起動)中もクリアされない書き換え可能な不揮発性メモリ7を保持し、そこに、活性プログラム交換中もホスト1とのコネクションを切断しないようにするための情報を格納する記憶領域を設ける。
【0074】
また、ホストI/F制御部3は、ファームAとは別のファームBを有し、このファームBの処理によりファームAの活性プログラム交換中もホストI/F制御部3は動作し続けられるようにしておく(ホスト1との間でコマンドやその他のデータの授受等を続ける。以下にS1〜S6の各処理を説明する。
【0075】
S1:活性プログラム交換開始(ホストからのコマンド処理停止:Suspend )
ホスト1からのコマンド処理停止:Suspend 処理で、外部からの指示が出された時点以降のホスト1からのコマンドを処理しないようにする。前記コマンドは、通常動作中から書き換え可能な不揮発性メモリ7内のコマンドキュー11の領域に、ホストI/F制御部3から入れるようにしているが、このタイミングで以降のコマンドは起動せずに、コマンドを処理しないようにする。(図3のA図参照)
ホストI/F制御部3からは、コマンドキュー11に入るコマンドだけでなく、ホストI/F制御部3内のレジスタ群で通知されるイベントもあるため、このイベントとコマンドキュー11に入るコマンドとの順序関係を保持するため、活性プログラム交換用順序テーブル12と、イベントテーブル13を使用する。(図3のB図参照)更に、ホスト1が発行したコマンドを、その後、ホスト1からキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする。(図4のA図参照)。
【0076】
S2:内部保持コマンド処理終了(Suspend 完了)
内部保持コマンド処理終了(Suspend 完了)時、すなわち、ファームAの活性プログラム交換前にホスト1から受けたコマンドの処理を終了させるための内部保持コマンド処理終了時、ホストI/F制御部3からのファームAへの割り込みを抑止する。ホストI/F制御部3は新規に受信したコマンドは不揮発性メモリ7内のコマンドキュー11に転送し続け、コマンドキューの入力ポインタ(図3のA図の入力Pを参照)は更新されるが、ファームAの処理はされないという動作になる。
【0077】
S3:ファームAの新プログラムによる起動(ファームAの活性プログラム交換後の新プログラムによる新ファームAの起動)
この動作では、ホストI/F制御部3から新ファームAにコマンドによる割り込みを発生することで、交換された新ファームAを起動(リブート)し、新ファームAが有効になる。この時、電気的に書き換え可能な不揮発性メモリ7の内容は保持するようにする(Warm Reboot)。
【0078】
S4:ホストI/F制御部の設定動作
新ファームAによるリブート(活性プログラム交換のリブート)時は、ホストI/F制御部3の初期設定を実施しないようにし、コネクションを切断せずに、ホスト1との論理的な接続(Login)状態を保持する。ホストI/F制御部3は、リセットされないため、リブート前の状態のまま動作し続けている。
【0079】
この場合、ホストI/F制御部3内には、図5のA図に示したように、ホスト情報テーブルを備えており、このホスト情報テーブルにホストの情報(新しい情報)を順次更新しながら蓄積しておく。そして、この情報は、後述するホストコネクションの復元動作で使用する。
【0080】
S5:ホストコネクションの復元動作
一方、新ファームA側は、リブートされたことで、ホストとの論理的な接続(Login)状態は忘れている。そのため、リブート後のホストコマンド処理を開始する前に論理的な接続(Login)状態を復元させる必要がある。その方法には次の2つの方法がある。
【0081】
その1つの方法は、ホストI/F制御部3から情報を獲得する方法である。他方の方法は、コネクションに関する情報を新ファームA(活性プログラム交換後のファームウェア)が自分で電気的に書き換え可能な不揮発性メモリ7のホスト情報格納領域14に記憶させておき、新ファームAのリブート時にその情報を基に復元する方法である。
【0082】
すなわち、例1の新ファームとホスト間のコネクション復元動作では、新ファームAがホストI/F制御部3内のファームBに指示を出し、この指示に基づきファームBがホストI/F制御部3内のホスト情報テーブルに持っているホスト情報を揮発性メモリ8内のホスト管理テーブル18に入れる(コピーする)。
【0083】
また、例2の新ファームAとホスト1間のコネクション復元動作では、新ファームAが不揮発性メモリ7内のホスト情報格納領域14に格納してあるホスト情報を揮発性メモリ8内のホスト管理テーブル18に入れる(コピーする)。そして、揮発性メモリ8内のホスト情報を使用して新ファームA(活性プログラム交換後の新ディスク制御ファームウェア)とホスト1間のコネクション復元動作を行う。
【0084】
S6:ホストI/F制御部の起動
この段階まできて、ファームAの活性プログラム交換中に受信していた、コマンドやイベントを起動する。最初にホストI/F制御部3の新ファームAへの割り込みを有効にする。ファームAの活性プログラム交換中に受信したコマンドやイベントの順序性を保証するために、活性プログラム交換用順序テーブル12の順序に従って起動する。
【0085】
但し、ここで一気に起動すると、ディスク内部の処理限界を超える可能性があるため、コマンド起動時に処理限界かどうかのチェック(コマンドとイベントの数≧閾値のチェック)を行い、処理限界となるところで起動を一旦停止する。この後のコマンド起動は、一定間隔(内部のタイマで計測)毎の起動確認で処理限界が解除された時や起動コマンド済コマンドの完了時に、活性プログラム交換用順序テーブル12のコマンドを起動し、活性プログラム交換用順序テーブル12のコマンドが無くなると、コマンドキュー11のコマンドを起動する。
【0086】
§5:プログラムと記録媒体の説明
図2に示したディスク制御装置2のホストI/F制御部3内のコントローラ4、ファームB(ホストインタフェース制御ファームウェア)、ファームA(ディスク制御用ファームウェア)等は、何れもプログラムを備えている。
【0087】
これらのプログラムは、例えば、外部から次のようにしてプログラムを格納し、このプログラムをCPU(図示省略)実行することで前記説明した処理や制御を行うことも可能である。
【0088】
(a) :外部の装置で作成されたリムーバブルディスク、又はパーソナルコンピュータの記憶媒体に格納されているプログラム(他の装置で作成したプログラムデータ)を読み取り、ディスク制御装置2の内部の記録媒体に格納する。
【0089】
(b) :通信回線を介して他の装置から伝送されたプログラム等のデータを、通信制御部(図示省略)を介して受信し、そのデータをディスク制御装置2の内部の記録媒体に格納する。
【0090】
(付記)
前記の説明に対し、次の構成を付記する。
【0091】
(付記1)
ストレージの制御を行い、ホストに接続して運用されるストレージ制御装置に、ホスト間のインタフェース制御を行うホストインタフェース制御部と、ストレージ制御用のプログラムを有するストレージ制御ファームウェアと、電気的に書き換え可能な不揮発性メモリを備え、
前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、前記活性プログラム交換を行うストレージ装置であって、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手段と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手段と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動して該ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手段と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手段と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手段と、
を備えていることを特徴とするストレージ装置。
【0092】
(付記2)
ストレージと、このストレージを制御するストレージ制御装置を備え、前記ストレージ制御装置をホストに接続して運用すると共に、
前記ストレージ制御装置には、ホストとの間のインタフェース制御を行うホストインタフェース制御部と、前記ストレージの制御を行うプログラムを有するストレージ制御ファームウェアを備えたストレージ装置において、
前記ホストインタフェース制御部は、ホスト間のインタフェース制御を行うプログラムを有するホストインタフェース制御ファームウェアを備え、前記ホストインタフェース制御ファームウェアは、前記ストレージ制御ファームウェアの活性プログラム交換中もホストインタフェース制御部が動作し続けられるようにする機能を備えると共に、
前記ストレージ制御装置に、前記ストレージ制御ファームウェアの活性プログラム交換後の起動中もクリアされない電気的に書き換え可能な不揮発性メモリを備え、
前記不揮発性メモリには、ホストから受け取ったコマンドを順次格納するコマンドキューと、前記ストレージ制御ファームウェアの活性プログラム交換をする際の順序情報を格納する活性プログラム交換用順序テーブルと、ホストから受け取ったイベント情報を格納するイベントテーブルと、ホストの情報を格納するホスト情報領域とを備え、
前記ホストインタフェース制御部が前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、これらの情報を使用して、ホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、前記ストレージ制御ファームウェアの活性プログラム交換を行わせる機能を備えていることを特徴とするストレージ装置。
【0093】
(付記3)
ストレージの制御を行い、ホストに接続して運用されるストレージ制御装置に、ホスト間のインタフェース制御を行うホストインタフェース制御部と、ストレージ制御用のプログラムを有するストレージ制御ファームウェアと、電気的に書き換え可能な不揮発性メモリを備え、
前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく前記活性プログラム交換を行うストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法であって、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手順と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手順と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動して該ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手順と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手順と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手順と、
を備えていることを特徴とするストレージ制御ファームウェアの活性プログラム交換方法。
【0094】
(付記4)
ストレージと、このストレージを制御するストレージ制御装置を備え、前記ストレージ制御装置をホストに接続して運用すると共に、
前記ストレージ制御装置には、ホストとの間のインタフェース制御を行うホストインタフェース制御部と、前記ストレージの制御を行うプログラムを有するストレージ制御ファームウェアを備えたストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法において、
前記ホストインタフェース制御部は、ホスト間のインタフェース制御を行うプログラムを有するホストインタフェース制御ファームウェアを備え、前記ホストインタフェース制御ファームウェアは、前記ストレージ制御ファームウェアの活性プログラム交換中もホストインタフェース制御部が動作し続けられるようにする機能を備えると共に、
前記ストレージ制御装置に、前記ストレージ制御ファームウェアの活性プログラム交換後の起動中もクリアされない電気的に書き換え可能な不揮発性メモリを備え、
前記ホストインタフェース制御部が前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、これらの情報を使用することにより、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手順と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手順と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動して該ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手順と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手順と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手順と、
を備えていることを特徴とするストレージ制御ファームウェアの活性プログラム交換方法。
【0095】
(付記5)
ストレージの制御を行い、ホストに接続して運用されるストレージ制御装置に、ホスト間のインタフェース制御を行うホストインタフェース制御部と、ストレージ制御用のプログラムを有するストレージ制御ファームウェアと、電気的に書き換え可能な不揮発性メモリを備え、
前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく前記活性プログラム交換を行うストレージ装置に、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手順と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手順と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動して該ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手順と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手順と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手順と、
を実現させるためのプログラム。
【0096】
(付記6)
ストレージの制御を行い、ホストに接続して運用されるストレージ制御装置に、ホスト間のインタフェース制御を行うホストインタフェース制御部と、ストレージ制御用のプログラムを有するストレージ制御ファームウェアと、電気的に書き換え可能な不揮発性メモリを備え、
前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく前記活性プログラム交換を行うストレージ装置に、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手順と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手順と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動して該ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手順と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手順と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手順と、
を実現させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【図面の簡単な説明】
【0097】
【図1】本発明の原理説明図である。
【図2】実施の形態におけるシステム構成図である。
【図3】実施の形態におけるディスク制御装置の動作説明図(その1)であり、A図はコマンドキューの動作、B図はコマンドとイベントの順序関係保持の動作を示した図である。
【図4】実施の形態におけるディスク制御装置の動作説明図(その2)であり、A図はキャンセルコマンドの処理を示した図である。
【図5】実施の形態におけるディスク制御装置の動作説明図(その3)であり、A図は例1の新ファームとホスト間のコネクション復元動作、B図は例2の新ファームとホスト間のコネクション復元動作を示した図である。
【図6】実施の形態におけるディスク制御装置の処理フローチャートである。
【図7】従来例1の説明図である。
【図8】従来例2の説明図である。
【符号の説明】
【0098】
1 ホスト(ホストコンピュータ)
2 ディスク制御装置
2A ストレージ制御装置
3 ホストI/F制御部(ホストインタフェース制御部)
4 コントローラ
5 マルチパス管理部
7 電気的に書き換え可能な不揮発性メモリ
8 揮発性メモリ
11 コマンドキュー
12 活性プログラム交換用順序テーブル
13 イベントテーブル
14 ホスト情報格納領域
17 制御領域
18 ホスト管理テーブル

【特許請求の範囲】
【請求項1】
ストレージの制御を行い、ホストに接続して運用されるストレージ制御装置に、ホスト間のインタフェース制御を行うホストインタフェース制御部と、ストレージ制御用のプログラムを有するストレージ制御ファームウェアと、電気的に書き換え可能な不揮発性メモリを備え、
前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、前記活性プログラム交換を行うストレージ装置であって、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手段と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手段と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動し該新ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手段と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手段と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手段と、
を備えていることを特徴とするストレージ装置。
【請求項2】
ストレージと、このストレージを制御するストレージ制御装置を備え、前記ストレージ制御装置をホストに接続して運用すると共に、
前記ストレージ制御装置には、ホストとの間のインタフェース制御を行うホストインタフェース制御部と、前記ストレージの制御を行うプログラムを有するストレージ制御ファームウェアを備えたストレージ装置において、
前記ホストインタフェース制御部は、ホスト間のインタフェース制御を行うプログラムを有するホストインタフェース制御ファームウェアを備え、前記ホストインタフェース制御ファームウェアは、前記ストレージ制御ファームウェアの活性プログラム交換中もホストインタフェース制御部が動作し続けられるようにする機能を備えると共に、
前記ストレージ制御装置に、前記ストレージ制御ファームウェアの活性プログラム交換後の起動中もクリアされない電気的に書き換え可能な不揮発性メモリを備え、
前記不揮発性メモリには、ホストから受け取ったコマンドを順次格納するコマンドキューと、前記ストレージ制御ファームウェアの活性プログラム交換をする際の順序情報を格納する活性プログラム交換用順序テーブルと、ホストから受け取ったイベント情報を格納するイベントテーブルと、ホストの情報を格納するホスト情報領域とを備え、
前記ホストインタフェース制御部が前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、これらの情報を使用して、ホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく、前記ストレージ制御ファームウェアの活性プログラム交換を行わせる機能を備えていることを特徴とするストレージ装置。
【請求項3】
ストレージの制御を行い、ホストに接続して運用されるストレージ制御装置に、ホスト間のインタフェース制御を行うホストインタフェース制御部と、ストレージ制御用のプログラムを有するストレージ制御ファームウェアと、電気的に書き換え可能な不揮発性メモリを備え、
前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく前記活性プログラム交換を行うストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法であって、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手順と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手順と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動し該新ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手順と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手順と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手順と、
を備えていることを特徴とするストレージ制御ファームウェアの活性プログラム交換方法。
【請求項4】
ストレージと、このストレージを制御するストレージ制御装置を備え、前記ストレージ制御装置をホストに接続して運用すると共に、
前記ストレージ制御装置には、ホストとの間のインタフェース制御を行うホストインタフェース制御部と、前記ストレージの制御を行うプログラムを有するストレージ制御ファームウェアを備えたストレージ装置のストレージ制御ファームウェアの活性プログラム交換方法において、
前記ホストインタフェース制御部は、ホスト間のインタフェース制御を行うプログラムを有するホストインタフェース制御ファームウェアを備え、前記ホストインタフェース制御ファームウェアは、前記ストレージ制御ファームウェアの活性プログラム交換中もホストインタフェース制御部が動作し続けられるようにする機能を備えると共に、
前記ストレージ制御装置に、前記ストレージ制御ファームウェアの活性プログラム交換後の起動中もクリアされない電気的に書き換え可能な不揮発性メモリを備え、
前記ホストインタフェース制御部が前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、これらの情報を使用することにより、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手順と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手順と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動し該新ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手順と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手順と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手順と、
を備えていることを特徴とするストレージ制御ファームウェアの活性プログラム交換方法。
【請求項5】
ストレージの制御を行い、ホストに接続して運用されるストレージ制御装置に、ホスト間のインタフェース制御を行うホストインタフェース制御部と、ストレージ制御用のプログラムを有するストレージ制御ファームウェアと、電気的に書き換え可能な不揮発性メモリを備え、
前記不揮発性メモリを使用して、前記ストレージ制御ファームウェアの活性プログラム交換中に必要な情報を格納し、この情報を使用してホストとのコネクションを切断することなく、ホストからのコマンドにエラー応答することなく前記活性プログラム交換を行うストレージ装置に、
(a) :ストレージ制御ファームウェアの活性プログラム交換開始時、外部からの指示が出された時点以降にホストから受け取ったコマンドの処理を停止し、前記ホストから受け取ったコマンドとイベントの順序関係を保持するため、前記不揮発性メモリに両者の情報を分けて格納すると共に、ホストが発行したコマンドのキャンセルを指示してきた場合、そのキャンセルに対応するコマンドを検索し、無効状態にする第1の手順と、
(b) :前記コマンド処理停止が完了した際、ホストインタフェース制御部から前記ストレージ制御ファームウェアへの割り込みを抑止し、ホストから受け取ったコマンドは前記不揮発性メモリへ転送し続け、不揮発性メモリ内のコマンドキューの入力ポインタは更新し、前記ストレージ制御ファームウェアの処理は行わないように制御を行う第2の手順と、
(c) :前記ストレージ制御ファームウェアの活性プログラム交換後の新プログラムを有する新ストレージ制御ファームウェアを起動し該新ストレージ制御ファームウェアを有効にすると共に、前記不揮発性メモリの内容は保持するように制御を行う第3の手順と、
(d) :前記新ストレージ制御ファームウェアによる起動時は、ホストインタフェース制御部の初期設定を実施しないように、コネクションを切断せずに、ホストとの論理的な接続状態を保持することで、ホストインタフェース制御部はリセットされずに起動前の状態のまま動作し続けさせる制御を行う第4の手順と、
(e) :前記ストレージ制御ファームウェア側は前記新ストレージ制御ファームウェアが起動されたことでホストとの論理的な接続状態を忘れているため、前記起動後のホストコマンド処理を開始する前に、論理的な接続状態を復元させるホストコネクションの復元を行う第5の手順と、
を実現させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2007−272496(P2007−272496A)
【公開日】平成19年10月18日(2007.10.18)
【国際特許分類】
【出願番号】特願2006−96350(P2006−96350)
【出願日】平成18年3月31日(2006.3.31)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】