(57)【特許請求の範囲】
【請求項１】
ホスト計算機と、単一又は複数の記憶装置とに接続され、前記単一又は複数の記憶装置の一部又は全ての領域を使用し、前記ホスト計算機に対し論理記憶装置を提供する記憶制御装置の制御プログラムを更新する方法であって、前記記憶制御装置は、前記論理記憶装置に対して複数接続されることにより冗長化されており、前記方法は、
前記ホスト計算機が、前記冗長化された記憶制御装置のうちのどれを経由して前記論理記憶装置へアクセスするかを選択し、前記選択した記憶制御装置にアクセスして、この記憶制御装置の状態を監視し、
前記冗長化された各記憶制御装置は、自己の制御プログラムが書き替えられ、前記制御プログラムの更新のために必要な自己の再起動処理の要求が入力された場合、この要求の入力時から予め定めた時間の経過時に自己の再起動処理を開始し、前記書き替えられた制御プログラムを使用した動作を実行できるようにするとともに、前記入力時から前記再起動処理が行われるまでの間に前記ホスト計算機によってアクセスされた場合には、前記状態の監視の結果として、自己が再起動処理待ちであることを示す再起動ステータスを応答し、
前記ホスト計算機は、前記状態を監視している記憶制御装置から前記再起動ステータスが応答された場合、前記冗長化された各記憶制御装置のうち、前記再起動ステータスを応答した記憶制御装置以外の記憶制御装置を経由して前記論理記憶装置へアクセスするように前記選択を切り替える
ようにした制御プログラムの更新方法。
【請求項２】
前記選択を切り替えることができない場合、前記ホスト計算機は、前記再起動ステータスを応答した記憶制御装置に対して、前記要求された再起動処理をしないように要求する無効要求コマンドを発行し、
前記無効要求コマンドを発行された記憶制御装置は、前記要求された再起動処理をしないようにした請求項１に記載の制御プログラムの更新方法。
【請求項３】
前記予め定めた時間は、前記状態の監視がなされる監視周期よりも長い第１の時間と、前記ホスト計算機から前記記憶装置に対するアクセス頻度に対して十分長い時間である第２の時間とを合わせてなり、前記記憶制御装置は、前記再起動処理の要求の入力時から前記第１の時間が経過した後であって、更に前記第２の時間が経過するまでの間に前記ホスト計算機によってアクセスされた場合には、前記要求された再起動処理をしないようにした請求項１又は請求項２に記載の制御プログラムの更新方法。
【請求項４】
前記ホスト計算機は、前記再起動ステータスを応答した記憶制御装置にその後アクセスした際に、この記憶制御装置から再起動ステータスの応答がなかった場合には、この記憶制御装置を経由して前記論理記憶装置へアクセスするように前記選択を切り替えるようにした請求項１乃至３のうち何れか１項に記載の制御プログラムの更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、単一又は複数の記憶装置が接続され、それら記憶装置を使用してホスト計算機に対し論理記憶装置を提供する記憶制御装置に関し、特に、この記憶制御装置が冗長化されている場合に、ホスト計算機から論理記憶装置へのアクセスを停止することなく、オンラインで記憶制御装置の制御プログラムを更新する方法に関する。
【背景技術】
【０００２】
従来、ホスト計算機と、単一又は複数の記憶装置とに接続され、前記単一又は複数の記憶装置の一部又は全ての領域を使用し、前記ホスト計算機に対し論理記憶装置を提供する記憶制御装置において、記憶制御装置を冗長化し、ホスト計算機から論理記憶装置へのアクセス経路を冗長化する技術が存在する。特に、最近の高機能なディスクアレイ装置について、この技術に基づく記憶制御装置の二重化はもはや標準的な機能となっている。このように記憶制御装置を冗長化することで、記憶制御装置の故障や計画停止などの際に、ホスト計算機はその記憶制御装置以外の記憶制御装置を経由して論理記憶装置へアクセスを継続できるようになり、計算機システムの可用性を大幅に高めることができる。
【０００３】
ところで、最近のディスクアレイ装置に代表される記憶制御装置は、非常に高機能になってきた一方で、記憶制御装置の機能を実現する制御プログラムはコード量も多くかつ複雑なものとなってきている。その結果として、計算機システムが運用を開始した以降も、不適合の修正や機能の改善などにより記憶制御装置の制御プログラムの更新が度々必要となっている。
【０００４】
記憶制御装置の制御プログラムを更新するためには、一般的には新しい制御プログラムを記憶制御装置へアップロード（書き込み）した後、その記憶制御装置を一度再起動する必要がある。これを再起動処理という。記憶制御装置の再起動処理を行うと、その間の十数秒〜数十秒の間はこの記憶制御装置はホスト計算機からのアクセスに応答することができなくなり、この記憶制御装置を経由した論理記憶装置へのアクセスができなくなる。
【０００５】
そこで記憶制御装置の制御プログラムの更新を行う際に、作業者は事前にパス切り替えソフトウェアを操作し、論理記憶装置へのアクセスを他の記憶制御装置を経由した経路に全て切り替えてから作業を行っている。このようにすることで、ホスト計算機から論理記憶装置へのアクセスを継続したまま、オンラインで制御プログラムの更新が可能となる。
【特許文献１】特開２００７−２５９３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような従来の制御プログラムの更新方法では、以下のような問題がある。
【０００７】
すなわち、接続されたホスト計算機の台数や論理記憶装置の台数が増えてくると、これら全てのホスト計算機及び論理記憶装置についてアクセス経路を切り替える作業が大変になってくる。そのため、作業ミスの発生や作業時間が長くなるなどの問題が顕在化してくる。
【０００８】
更には、システムのセキュリティなどの関係から、パス切り替えソフトウェアのようなホスト計算機上のソフトウェアの操作は限られた担当者のみしか許可されていない場合もあり、そのような場合はその担当者のスケジュールの確保なども大きな負担になるという問題もある。
【０００９】
これらの結果として、実際には記憶制御装置が冗長化されているにもかかわらず、例えば、上記特許文献１のように、オンラインではなく、計算機システムを停止して制御プログラムを入れ替えることにより更新を行っているようなケースも多く存在している。
【００１０】
本発明はこのような事情に鑑みてなされたものであり、記憶制御装置の制御プログラムをオンラインで、より簡単かつ安全に更新することが可能な方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明では、以下のような手段を講じる。
【００１２】
すなわち、請求項１の発明は、ホスト計算機と、単一又は複数の記憶装置とに接続され、単一又は複数の記憶装置の一部又は全ての領域を使用し、ホスト計算機に対し論理記憶装置を提供する記憶制御装置の制御プログラムを更新する方法であって、記憶制御装置が、論理記憶装置に対して複数接続されることにより冗長化されている。この方法では、ホスト計算機は、冗長化された記憶制御装置のうちのどれを経由して論理記憶装置へアクセスするかを選択し、選択した記憶制御装置にアクセスして、この記憶制御装置の状態を監視する。そして、冗長化された各記憶制御装置は、自己の制御プログラムが書き替えられ、制御プログラムの更新のために必要な自己の再起動処理の要求が入力された場合、この要求の入力時から予め定めた時間の経過時に自己の再起動処理を開始し、書き替えられた制御プログラムを使用した動作を実行できるようにするとともに、入力時から再起動処理が行われるまでの間にホスト計算機によってアクセスされた場合には、状態の監視の結果として、自己が再起動処理待ちであることを示す再起動ステータスを応答する。更に、ホスト計算機は、状態を監視している記憶制御装置から再起動ステータスが応答された場合、冗長化された各記憶制御装置のうち、再起動ステータスを応答した記憶制御装置以外の記憶制御装置を経由して論理記憶装置へアクセスするように選択を切り替える。
【００１３】
請求項２の発明は、請求項１の発明の制御プログラムの更新方法において、選択を切り替えることができない場合、ホスト計算機は、再起動ステータスを応答した記憶制御装置に対して、要求された再起動処理をしないように要求する無効要求コマンドを発行し、無効要求コマンドを発行された記憶制御装置は、要求された再起動処理を行わない。
【００１４】
請求項３の発明は、請求項１又は請求項２の発明の制御プログラムの更新方法において、予め定めた時間は、状態の監視がなされる監視周期よりも長い第１の時間と、ホスト計算機から記憶装置に対するアクセス頻度に対して十分長い時間である第２の時間とを合わせてなり、記憶制御装置は、再起動処理の要求の入力時から第１の時間が経過した後であって、更に第２の時間が経過するまでの間にホスト計算機によってアクセスされた場合には、要求された再起動処理を行わない。
【００１５】
請求項４の発明は、請求項１乃至３のうち何れか１項の発明の制御プログラムの更新方法において、ホスト計算機は、再起動ステータスを応答した記憶制御装置にその後アクセスした際に、この記憶制御装置から再起動ステータスの応答がなかった場合には、この記憶制御装置を経由して論理記憶装置へアクセスするように選択を切り替える。
【発明の効果】
【００１６】
本発明によれば、記憶制御装置の制御プログラムをオンラインで、より簡単かつ安全に更新することが可能な方法を実現することができる。
【発明を実施するための最良の形態】
【００１７】
以下に、本発明を実施するための最良の形態について図面を参照しながら説明する。
【００１８】
図１は、本発明の実施の形態に係る記憶制御装置の制御プログラムの更新方法を適用した計算機システムの構成例を示す機能ブロック図である。
【００１９】
すなわち、この計算機システム１００は、複数のホスト計算機１０１（＃０〜＃ｎ）と、例えばハードディスクである単一又は複数の記憶装置１０７（＃０〜＃ｍ）と、ネットワークスイッチ１０３を介してホスト計算機１０１（＃０〜＃ｎ）と、インタフェース１０８を介して記憶装置１０７（＃０〜＃ｍ）とにそれぞれ接続され、記憶装置１０７（＃０〜＃ｍ）の一部又は全ての領域を使用し、ホスト計算機１０１（＃０〜＃ｎ）に対し論理記憶装置を提供する複数の記憶制御装置１０５（＃０，＃１）とを備えている。このように、記憶制御装置１０５は、論理記憶装置に対して複数接続されることにより冗長化されている。そして、これら複数の記憶制御装置１０５（＃０，＃１）と、複数の記憶装置１０７（＃０〜＃ｍ）とで外部記憶装置１０９を構成している。ネットワークスイッチ１０３及び記憶制御装置１０５は、一例として２個のみ図示しているが、もちろん、２個に限定されるものではない。
【００２０】
ホスト計算機１０１は、本発明の実施の形態に係る記憶制御装置の制御プログラムの更新方法を実現するパス切り替えソフトウェア及びパス監視ソフトウェアがインストールされている。このようなホスト計算機１０１の詳細構成については、図３を用いて後述するが、図１では、Ｉ／Ｏポート１０２のみが示されている。
【００２１】
Ｉ／Ｏポート１０２は、ホスト計算機１０１を外部記憶装置１０９に接続するためのインタフェースであり、ＳＡＮ（Storage area network）構成を実現するために、Ｆｉｂｒｅ  ｃｈａｎｎｅｌやｉＳＣＳＩなどのネットワーク型のインタフェースが一般的である。また、重要な計算機システムでは、システムの可用性を向上させるために、ホスト計算機１０１に複数のＩ／Ｏポート１０２を装備し（図１では、各ホスト計算機１０１が２つのＩ／Ｏポート１０２を装備した例を示している）、外部記憶装置１０９へのアクセス経路を冗長化することも行われている。このようなＩ／Ｏポート１０２は、一般的には、ＨＢＡ（ホストバスアダプタ）と呼ばれるＰＣＩ−Ｘや、ＰＣＩ−Ｅｘｐｒｅｓｓのカードで実装されることが多い。
【００２２】
ネットワークスイッチ１０３は、ＳＡＮ構成のためのものであり、Ｆｉｂｒｅ  ｃｈａｎｎｅｌやｉＳＣＳＩなどのインタフェースを持つホスト計算機１９１や外部記憶装置１０９を相互接続するためのスイッチである。故障によるシステム停止を避けるため、ネットワークスイッチ１０３を、図１の例に示すように冗長構成とする場合も多い。
【００２３】
ネットワークスイッチ１０３はそれぞれ、ホスト計算機１０１に接続されたＩ／Ｏポート１０４と、記憶制御装置１０５に接続されたＩ／Ｏポート１０４’とを備えており、それらの数や種類は、接続するホスト計算機１０１や外部記憶装置１０９の台数や、インタフェースによる。
【００２４】
記憶制御装置１０５は、外部記憶装置１０９の各種機能を実現するものであり、本実施の形態では冗長化されている。図１に示す例では、二重化により冗長化されている。このような記憶制御装置１０５の詳細構成については、図２を用いて後述するが、図１では、Ｉ／Ｏポート１０６のみが示されている。
【００２５】
Ｉ／Ｏポート１０６は、例えばＦｉｂｒｅ  ｃｈａｎｎｅｌやｉＳＣＳＩに準拠し、本実施の形態のように、冗長構成での使用を想定した装置であれば、最低２ポート装備される。
【００２６】
例えばＨＤＤや光磁気ディスク等である複数の記憶装置１０７（＃０〜＃ｍ）は、記憶制御装置１０５によって組み合わされることにより、仮想的な記憶装置即ち論理記憶装置を構成する。ホスト計算機１０１からは、この論理記憶装置が一つの記憶装置として認識される。
【００２７】
インタフェース１０８は、記憶装置１０７を接続するためのものであり、記憶装置１０７がＨＤＤである場合、Ｆｉｂｒｅ  ｃｈａｎｎｅｌや、ＳＡＳ、ＳＡＴＡ、ＳＣＳＩ等が一般的である。
【００２８】
外部記憶装置１０９は、一般に、記憶制御装置１０５と記憶装置１０７とから構成される。実際の製品としては、記憶装置１０７として複数のＨＤＤを備え、ＲＡＩＤの手法によりＨＤＤ故障に対する可用性を高めたディスクアレイ装置が一般的である。
【００２９】
記憶制御装置１０５の構成例を、図２の機能ブロック図に示す。
【００３０】
インタフェース制御回路２０１は、ホスト計算機１０１を接続するためのインタフェースであるＩ／Ｏポート１０６（図２には図示せず）を制御する回路であり、マイクロプロセッサ２０３にて動作している制御プログラムの指示で動作する。
【００３１】
インタフェース制御回路２０２は、ＨＤＤ等の記憶装置１０７を接続するためのインタフェース（図示せず）を制御する回路であり、マイクロプロセッサ２０３にて動作している制御プログラムの指示で動作する。
【００３２】
マイクロプロセッサ２０３は、ＲＡＭ２０５上の制御プログラムにより動作し、記憶制御装置１０５の機能を実現するための各種処理を行う。
【００３３】
ブリッジ回路２０４は、ＰＣＩ−ＸやＰＣＩ−Ｅｘｐｒｅｓｓ等の内部バス２１３と、マイクロプロセッサ２０３及びその周辺回路とを接続する。
【００３４】
ＲＡＭ２０５は、処理上必要となるワークメモリや通信のためのバッファメモリなどとして使用されるほか、制御プログラムのメインのコードが、フラッシュメモリ２０７からコピーされる。このＲＡＭ２０５上のコードにしたがってマイクロプロセッサ２０３が動作する。
【００３５】
キャッシュメモリ２０６は、ホスト計算機１０１と記憶装置１０７との間でのデータ転送の際に、バッファ用途で使用されるのみならず、アクセス性能を向上させるためのリードキャッシュやライトキャッシュとしても使用可能な大容量のメモリである。
【００３６】
フラッシュメモリ２０７は、記憶制御装置１０５の制御プログラムを格納する。フラッシュメモリ２０７内の制御プログラムは書き替えが可能である。記憶制御装置１０５は、起動されると、フラッシュメモリ２０７内の制御プログラムをＲＡＭ２０５にコピーし、ＲＡＭ２０５のイメージを使用してマイクロプロセッサ２０３が動作する。よって、記憶制御装置１０５が動作している状態でフラッシュメモリ２０７内の制御プログラムを書き替えても、記憶制御装置１０５はＲＡＭ２０５上の制御プログラムで動作しているため影響がない。
【００３７】
通信ポート２０８は、作業用の端末を接続するためのものである。フラッシュメモリ２０７内の制御プログラムの書き替え（アップロード）や、記憶制御装置１０５へ再起動処理要求の入力を行う場合には、この作業用の端末から行う。
【００３８】
この通信ポート２０８を介して、フラッシュメモリ２０７内の制御プログラムが書き替えられ、制御プログラムの更新のために必要な再起動処理要求が入力されると、記憶制御装置１０５は、図４のタイミングチャートに示すように、再起動処理要求の入力時ｔ０から時間Ｔ１と時間Ｔ２とを加えた時ｔ２に自己の再起動処理を行い、書き替えられた制御プログラムを使用した動作を開始できるようにする。このように、制御プログラムが書き替えられると、再起動処理要求の入力時ｔ０から時間Ｔ１と時間Ｔ２とを加えた時ｔ２に自己の再起動処理を行う処理を再起動処理シーケンスと称する。
【００３９】
また、再起動処理シーケンス中（再起動処理要求の入力時ｔ０から再起動処理が行われる時ｔ２までの間）にホスト計算機１０１によってアクセスされた場合には、状態の監視の結果として、図中（ａ）に示すように、自己が再起動処理実行待ちであることを示す再起動ステータスをホスト計算機１０１に応答する。
【００４０】
なお、時間Ｔ１は、ホスト計算機１０１に備えられている後述するパス監視ソフトウェア３０３ｂによる記憶制御装置１０５の状態監視周期（例えば、１分）よりも長い第１の時間（例えば、状態監視周期の２〜３倍程度の時間）である。また、時間Ｔ２は、ホスト計算機１０１から記憶装置１０７に対するリード及びライト頻度に対して十分長い時間であり、一般的に数秒から１分程度であり、時間Ｔ１よりも短い。
【００４１】
そして、記憶制御装置１０５は、図４の（ｃ）に示すように、再起動処理要求の入力時ｔ０から時間Ｔ１が経過した時ｔ１以降であって、更に時間Ｔ２が経過する時ｔ２までの間にホスト計算機１０１によってアクセスされた場合には、再起動処理シーケンスを中止し、再起動処理も行わない。
【００４２】
通信ポート２０９は、記憶制御装置１０５間（例えば、記憶制御装置１０５（＃０）と記憶制御装置１０５（＃１）との間）で通信するためのポートである。この通信ポート２０９は、二重化した記憶制御装置１０５間で、情報のやり取りや処理の同期を取るために使用する。
【００４３】
次に、ホスト計算機１０１の構成例を、図３の機能ブロック図に示す。
【００４４】
すなわち、ホスト計算機１０１は、ソフトウェアであるアプリケーション３０１、ファイルシステム３０２、パス切り替えソフトウェア及びパス監視ソフトウェア３０３、ディスクドライバ３０４、及びカードドライバ３０５（一例として、カードドライバ３０５（＃−０）とカードドライバ３０５（＃−１）との２つを示す）がインストールされているとともに、カードドライバ３０５に対応して備えられたハードウェア３０６を備えている。
【００４５】
アプリケーション３０１は、アプリケーションソフトウェアやミドルウェアなどである。アプリケーション３０１から論理記憶装置へアクセスする場合、ファイルシステム３０２を介してアクセスする方法と直接アクセスする方法がある。
【００４６】
ファイルシステム３０２は、ホスト計算機１０１にインストールされた各種ソフトウェア（３０１，３０３〜３０５）が扱うファイルの管理や、それに関連した論理記憶装置の管理を行う。
【００４７】
パス切り替えソフトウェア及びパス監視ソフトウェア３０３は、論理記憶装置への冗長化されたアクセス経路の管理を行うためのソフトウェアであるパス切り替えソフトウェア３０３ａとパス監視ソフトウェア３０３ｂとからなる。
【００４８】
パス切り替えソフトウェア３０３ａは、上位のファイルシステム３０２やアプリケーション３０１から論理記憶装置へアクセスする際に、そのアクセス要求を受け取ると、アクセス対象の論理記憶装置に対し複数存在するアクセス経路のうちのどれを経由して論理記憶装置にアクセスするのかを選択し、選択した経路を用いて、対応する記憶制御装置１０５（以下、例えば、記憶制御装置１０５（＃０）とする）を介して論理記憶装置へのアクセスを実行する。また、その経路でアクセス実行できなかった場合は、他の経路に切り替えてアクセスを実行する。これら経路の切り替えをパス切り替えソフトウェア３０３ａが自動的に行うことにより、上位のファイルシステム３０２やアプリケーション３０１からは記憶制御装置１０５の故障などの影響を受けることなく論理記憶装置へのアクセスが継続される。
【００４９】
また、パス監視ソフトウェア３０３ｂは、パス切り替えソフトウェア３０３ａによって選択されたアクセス経路に存在する記憶制御装置１０５（＃０）にアクセスし、この記憶制御装置１０５（＃０）の状態を監視するソフトウェアである。記憶制御装置１０５（＃０）について、主にアクセスしている経路だけでなく、代替用に準備した経路についても正常に動作していることを、例えば１分のような所定の監視周期で確認する。これにより経路を切り替えようとした際に代替用の経路が故障している多重故障を抑止する。また経路の監視は、そのアクセス経路に存在する記憶制御装置１０５（＃０）に対しコマンドを発行し、その応答を確認することにより行う。
【００５０】
このコマンドの発行に対して、記憶制御装置１０５（＃０）から、パス監視ソフトウェア３０３ｂに再起動ステータスが応答されると、パス切り替えソフトウェア３０３ａは、冗長化された各記憶制御装置１０５（＃０，＃１）のうち、再起動ステータスを応答した記憶制御装置１０５（＃０）以外の記憶制御装置１０５（＃１）を経由して論理記憶装置へアクセスするように選択を切り替える。
【００５１】
なお、この選択切り替えができない場合、パス監視ソフトウェア３０３ｂは、再起動ステータスを応答した記憶制御装置１０５（＃０）に対して、再起動処理シーケンスを中止する（すなわち、再起動処理も行わない）ように要求するリジェクトコマンドを発行する。この場合、図４の（ｂ）に示すように、リジェクトコマンドを発行された記憶制御装置１０５（＃０）は、再起動処理シーケンスを中止する。
【００５２】
また、ホスト計算機１０１が、再起動ステータスを応答した記憶制御装置１０５（＃０）にその後アクセスしたところ、この記憶制御装置１０５（＃０）からパス監視ソフトウェア３０３ｂに対して再起動ステータスの応答がなかった場合には、パス切り替えソフトウェア３０３ａは、この記憶制御装置１０５（＃０）を経由して論理記憶装置へアクセスするように選択を切り替える。
【００５３】
ディスクドライバ３０４は、記憶装置１０７に対する例えばＳＣＳＩコマンドに代表されるコマンド処理を行うソフトウェアである。
【００５４】
カードドライバ３０５は、ハードウェア３０６を制御するソフトウェアであり、ハードウェア３０６は、ホスト計算機１０１をネットワークスイッチ１０３に接続するＩ／Ｏポート１０２を装備しており、ＰＣＩ−ＸやＰＣＩ−Ｅｘｐｒｅｓｓ等のＨＢＡで実装されることが多い。
【００５５】
インタフェース３０７は、ホスト計算機１０１をネットワークスイッチ１０３に接続するものであり、Ｆｉｂｒｅ  ｃｈａｎｎｅｌや、ｉＳＣＳＩ等が一般的である。
【００５６】
次に、以上のように構成した本発明の実施の形態に係る記憶制御装置１０５（＃０）の制御プログラムの更新方法の詳細を図４のタイミングチャートを用いて説明する。
【００５７】
まず、図示しない作業用端末を、記憶制御装置１０５（＃０）の通信ポート２０８に接続し、この作業用端末を用いて、フラッシュメモリ２０７内の制御プログラムを、新しい制御プログラムに書き替える。図４では、このタイミングを、時間ｔｋで示す。
【００５８】
次に、この作業用端末などから、記憶制御装置１０５（＃０）に対して、制御プログラムの更新のために必要な処理である再起動処理要求の入力を行う。この再起動処理要求が入力された記憶制御装置１０５（＃０）では、この時点ｔ０から再起動処理シーケンスが開始される。再起動処理シーケンスは、最終的に時間ｔ２において再起動処理が実行されるか、または時間ｔ２に至る前に再起動処理シーケンスが中止されるタイミングまで継続する。
【００５９】
そして、このような再起動処理シーケンス中の記憶制御装置１０５（＃０）は、再起動処理シーケンスが開始された時点ｔ０から時間（Ｔ１＋Ｔ２）が経過した時点ｔ２まで待ってから記憶制御装置１０５（＃０）を再起動処理を開始し、再起動処理が完了すると、書き替えられた新しい制御プログラムでの動作を開始できるようになる。
【００６０】
なお、記憶制御装置１０５（＃０）は、図４中に示す（ａ）のように、再起動処理シーケンス中に、ホスト計算機１０１のパス監視ソフトウェア３０３ｂからコマンドを受信した場合、そのコマンドに対して再起動ステータスを応答する。このように、再起動ステータスが応答された場合、ホスト計算機１０１のパス監視ソフトウェア３０３ｂは、論理記憶装置へのアクセスを再起動ステータスが応答された記憶制御装置１０５（＃０）ではない記憶制御装置１０５（＃１）を経由して行うよう、パス切り替えソフトウェア３０３ａを操作する。
【００６１】
また、記憶制御装置１０５（＃０）を再起動することにより再起動処理シーケンスは完了するため、以降パス監視ソフトウェア３０３ｂからのアクセスに対しては、再起動ステータスを応答することはなくなり、通常の応答がされる。この通常の応答を検出したパス監視ソフトウェア３０３ｂは、その記憶制御装置１０５（＃０）にて再起動ステータスを検出して他の記憶制御装置１０５（＃１）を経由するよう切り替えていたアクセス経路を、以前の元のアクセス経路に戻す処理を行う。
【００６２】
前述したように、時間Ｔ１は、ホスト計算機１０１に備えられている後述するパス監視ソフトウェア３０３ｂによる記憶制御装置１０５の状態監視周期（例えば、１分）よりも長い（例えば、状態監視周期の２〜３倍程度の時間である）。また、時間Ｔ２は、ホスト計算機１０１から記憶装置１０７に対するリード及びライト頻度に対して十分長く、一般的に数秒から１分程度である。したがって、記憶制御装置１０５に接続された複数のホスト計算機１０１の全てが再起動ステータスを受信することができ、アクセス経路を切り替えることが可能となる。
【００６３】
また、ホスト計算機１０１は、パス監視ソフトウェア３０３ｂが、記憶制御装置１０５（＃０）から再起動ステータスを受信した際に、論理記憶装置へのアクセスについて、再起動ステータスを受信した記憶制御装置１０５（＃０）以外の全ての記憶制御装置１０５（例えば、記憶制御装置１０５（＃１））を経由してもアクセスが行えない場合、例えば、他の記憶制御装置１０５（＃１）が故障している場合や、ホスト計算機１０１側のＩ／Ｏポート１０２等が故障しており他の記憶制御装置１０５（＃１）側の経路が使えない場合等に、パス監視ソフトウェア３０３ｂは、再起動ステータスを応答した記憶制御装置１０５（＃０）に対し、図４中の（ｂ）に示すように、リジェクトコマンドを発行する。
【００６４】
そして、このリジェクトコマンドを受信した記憶制御装置１０５（＃０）は、自装置１０５（＃０）を経由した論理記憶装置へのアクセスを回避することができないため、再起動処理シーケンスを中止する。
【００６５】
また、パス監視ソフトウェア３０３ｂが動作していないホスト計算機１０１が混在して接続されている場合の動作について以下に説明する。
【００６６】
この場合、アクセス経路が切り替えられないまま記憶制御装置１０５（＃０）を再起動すると、その間、そのホスト計算機１０１からは論理記憶装置へのアクセスが不可能な状態となり、その結果、システム停止の障害となる可能性がある。このような場合に対処するためのガード機構として、本実施の形態に係る制御プログラムの更新方法では、図４中の（ｃ）に示すように、再起動処理シーケンスが開始されてから時間Ｔ１経過してから、更に時間Ｔ２経過するまでの期間（すなわち、ｔ１からｔ２までの期間）内に、何れかのホスト計算機１０１から論理記憶装置に対し、この再起動シーケンス中の記憶制御装置１０５（＃０）を経由してアクセスが発生した場合、動作していないホスト計算機１０１が存在するものとパス監視ソフトウェア３０３ｂが判断し、再起動処理シーケンスを中止する。
【００６７】
記憶制御装置１０５（＃０）は、再起動処理シーケンスの期間中、図４（ｂ）に示すようなリジェクトコマンドの受信もなく、図４（ｃ）に示すようなアクセスもない場合に、図４（ａ）に示すように、最終ステップとして再起動処理を実行する。そして、再起動された記憶制御装置１０５（＃０）は、新しい制御プログラムをフラッシュメモリ２０７（＃０）より読み出し、その制御プログラムでの動作を開始できるようになる。同様の手順にて、他の記憶制御装置（例えば、記憶制御装置１０５（＃１））についても制御プログラムの更新を行うことができる。
【００６８】
次に、再起動処理シーケンス中の記憶制御装置１０５（＃０）の動作例を図５のフローチャートを用いて説明する。
【００６９】
記憶制御装置１０５（＃０）は、再起動処理シーケンスの開始にあたってアクセスカウンタ（ホスト計算機１０１から論理記憶装置へのアクセスの有無をカウントするためのカウンタ）をゼロクリアする（ステップ５０２）。なお、アクセスカウンタの動作の詳細については、図６のフローチャートを用いて後述する。
【００７０】
次に、ホスト計算機１０１上のパス監視ソフトウェア３０３ｂから、状態確認のためのコマンドを受信した場合（ステップ５０３：状態確認コマンド）は、再起動ステータスを応答し（ステップ５０４）、ステップ５０５に進む。
【００７１】
一方、ステップ５０３において、パス監視ソフトウェア３０３ｂからリジェクトコマンドを受信した場合（ステップ５０３：リジェクトコマンド）は、直ちに再起動処理シーケンスを中止する（ステップ５０９）。
【００７２】
また、ステップ５０３において、何れのコマンドも受信しない場合（ステップ５０３：なし）には、ステップ５０５に進む。
【００７３】
ステップ５０５では、再起動シーケンスが開始されてから一定時間Ｔ１を経過し、時間ｔ１に到達したかが判定される。そして、時間ｔ１に到達すると（ステップ５０５：Ｙｅｓ）、アクセスカウンタの値を確認し（ステップ５０６）、アクセスカウンタの値がゼロでない場合（ステップ５０６：≧０）には、ホスト計算機１０１からアクセスが発生しているため、再起動処理シーケンスを中止する（ステップ５０９）。一方、時間ｔ１に到達していない場合（ステップ５０５：Ｎｏ）には、ステップ５０３に戻る。
【００７４】
ステップ５０６において、アクセスカウンタの値がゼロであり（ステップ５０６：＝０）、時間ｔ１から更にＴ２経過し、時間ｔ２に到達した場合（ステップ５０７：Ｙｅｓ）、この記憶制御装置１０５（＃０）の再起動処理を実行し、再起動処理シーケンスを完了する（ステップ５０８）。
【００７５】
一方、ステップ５０７において、時間ｔ２に到達していない場合（ステップ５０７：Ｎｏ）には、ステップ５０３に戻る。
【００７６】
次に、アクセスカウンタの動作の詳細について、図６のフローチャートを用いて説明する。
【００７７】
アクセスカウンタは、再起動処理シーケンス中であり、ホスト計算機１０１から論理記憶装置へのアクセスを受信した場合（ステップ６０２：Ｙｅｓ）、再起動シーケンスが開始されてから一定時間Ｔ１を経過し、時間ｔ１に到達したのであれば（ステップ６０３：Ｙｅｓ）、値をインクリメントし（ステップ６０４）、アクセス処理を行う（ステップ６０５）。
【００７８】
なお、ステップ６０２において、アクセスを受信していない場合（ステップ６０２：Ｎｏ）、ステップ６０３において、再起動シーケンスが開始されてから一定時間Ｔ１を経過しておらず、時間ｔ１に到達していないのであれば（ステップ６０３：Ｎｏ）、ステップ６０５に進む。
【００７９】
尚、アクセスカウンタは、桁あふれすることのないよう十分な桁数を用意する。アクセスカウンタの処理以外は、通常のアクセスの処理を行う（ステップ６０６）。
【００８０】
上述したように、本発明の実施の形態に係る記憶制御装置の制御プログラムの更新方法においては、上記のような作用により、記憶制御装置１０５の制御プログラムをオンラインで、より簡単かつ安全に更新することが可能となる。
【００８１】
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００８２】
【図１】本発明の実施の形態に係る記憶制御装置の制御プログラムの更新方法を適用した計算機システムの構成例を示す機能ブロック図。
【図２】記憶制御装置の詳細構成を示す機能ブロック図。
【図３】ホスト計算機の構成例を示す機能ブロック図。
【図４】再起動処理シーケンスの詳細を示すタイミングチャート。
【図５】再起動処理シーケンス中の記憶制御装置の動作例を示すフローチャート。
【図６】アクセスカウンタの動作の詳細例を示すフローチャート。
【符号の説明】
【００８３】
１００…計算機システム、１０１…ホスト計算機、１０２…Ｉ／Ｏポート、１０３…ネットワークスイッチ、１０４…Ｉ／Ｏポート、１０５…記憶制御装置、１０６…Ｉ／Ｏポート、１０７…記憶装置、１０８…インタフェース、１０９…外部記憶装置、１９１…ホスト計算機、２０１…インタフェース制御回路、２０２…インタフェース制御回路、２０３…マイクロプロセッサ、２０４…ブリッジ回路、２０５…ＲＡＭ、２０６…キャッシュメモリ、２０７…フラッシュメモリ、２０８…通信ポート、２０９…通信ポート、２１３…内部バス、３０１…アプリケーション、３０２…ファイルシステム、３０３…パス切り替えソフトウェア及びパス監視ソフトウェア、３０３ａ…パス切り替えソフトウェア、３０３ｂ…パス監視ソフトウェア、３０４…ディスクドライバ、３０５…カードドライバ、３０６…ハードウェア、３０７…インタフェース
【図１】
0004635032.tif 000002
【図２】
0004635032.tif 000003
【図３】
0004635032.tif 000004
【図４】
0004635032.tif 000005
【図５】
0004635032.tif 000006
【図６】
0004635032.tif 000007