(57)【要約】【課題】  ストレージ制御プログラムの交換中もライトバック動作を行い得るストレージシステム等の提供。【解決手段】第二コントローラにおける前記データの受信を不能にし、前記第二コントローラが格納している管理情報について第一コントローラへの転送と格納とを行い、前記交換中に前記第一コントローラに前記入力が行われた前記データを前記第一コントローラが記憶するとともに、前記第一コントローラから前記第二コントローラへの第二転送と前記記憶とを行い、前記交換中データに係る前記第一管理情報について、前記第一コントローラが前記格納を行うとともに、前記第一コントローラから前記第二コントローラへの第三転送と格納とを行い、前記交換の後に、前記データの前記第二コントローラにおける前記受信を可能にする。【選択図】      図１
2019125292.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータの記憶を行った後に、前記データの記録装置への記録を行うコントローラからなるコントローラ群を備える制御装置であって、
前記コントローラである第二コントローラに導入された、前記記録を行うためのプログラムを新しいものに交換する際に、
第二コントローラにおける前記データの受信を不能にし、
前記第二コントローラが格納している前記記憶に係る管理情報である第一管理情報の、前記コントローラである第一コントローラへの第一転送と前記第一コントローラにおける格納とを行い、
前記交換を行っている間に前記第一コントローラに前記入力が行われた前記データである交換中データについて、前記第一コントローラが前記記憶を行うとともに、前記第一コントローラから前記第二コントローラへの第二転送と前記第二コントローラによる前記記憶とを行い、
前記交換中データに係る前記第一管理情報について、前記第一コントローラが前記格納を行うとともに、前記第一コントローラから前記第二コントローラへの第三転送と前記第二コントローラにおける前記格納とを行い、
前記交換の後に、前記データの前記第二コントローラにおける前記受信を可能にする、
制御装置。
【請求項２】
前記第二コントローラが前記不能を表す第一情報を前記第一コントローラに送る、請求項１に記載された制御装置。
【請求項３】
前記第二コントローラが前記不能の後に、前記第二コントローラにおけるキャッシュメモリに関する処理であるキャッシュ処理の終了を判定することにより、その旨を表す第二情報を、前記第一コントローラに送る、請求項１又は請求項２に記載された制御装置。
【請求項４】
前記第一コントローラが、前記第二情報により、前記第二転送及び前記第三転送を行う、請求項３に記載された制御装置。
【請求項５】
前記第二コントローラが前記不能の後に、前記プログラムの切離しを行う、請求項１乃至請求項４のうちのいずれか一に記載された制御装置。
【請求項６】
前記切離し後に前記新しいものの取付けが行われる、請求項５に記載された制御装置。
【請求項７】
前記取付けが終わるとその旨を表す第三情報を、前記第二コントローラが、前記第一コントローラに送付する、請求項６に記載された制御装置。
【請求項８】
前記第三情報により、前記第一コントローラが、前記第一転送及び前記第二転送を中止する、請求項７に記載された制御装置。
【請求項９】
前記第一コントローラが、前記中止により、その旨を表す第四情報を、前記第二コントローラに送付する、請求項８に記載された制御装置。
【請求項１０】
前記第二コントローラが、前記第四情報により、前記第二コントローラにおけるキャッシュメモリに関する処理の再開を行う、請求項９に記載された制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力された情報を記録する装置に関する。
【背景技術】
【０００２】
ストレージ装置に対する高信頼性化の要求にともない、記録するデータの冗長化に加えて、ストレージ装置内のコントローラを冗長化することで、障害発生時のシステム停止を回避する方法が用いられている（特許文献１参照）。この種の冗長構成を持つストレージ装置では、キャッシュメモリの保全性を高めるために、キャッシュデータの二重化（キャッシュミラーリング）を行う。入力データは他系コントローラのキャッシュメモリにコピーされ、入力データをディスクアレイへ書き込む前にコントローラが停止しても、他系コントローラがディスクアレイへ書き込む処理を引き継ぐことで、入力データ消失は回避される。
【０００３】
そのため、上述の冗長構成を備える場合には、ライトバックを行うことが可能になる。ここで、ライトバックについては非特許文献１参照に説明がある。
【０００４】
ここで、冗長構成を備える上記ストレージシステムにおいて、各コントローラに処理を行わせるプログラムを交換することを考える。その交換の際には、一般的には、２つのコントローラのうちの一方の動作を停止し、交互にプログラム書換えを行う。それにより、上記ストレージシステムの動作を停止させずにプログラムを交換することが可能である。
【０００５】
ここで、特許文献１は、少なくとも１台のディスク装置から構成されるディスクアレイへのアクセスを制御する第１及び第２のコントローラからなる二重化コントローラ構成ブロックデバイス制御装置を開示する。
【０００６】
また、特許文献２は、上位装置からのアクセス要求を受信した場合に、記憶デバイスにアクセスし、所定のデータ処理を実行することにより、アクセス要求を処理するコントローラを複数備える記憶制御装置を開示する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−０５３９４６号公報
【特許文献２】特開２００７−２１９５７１号公報
【非特許文献】
【０００８】
【非特許文献１】ＩＢＭ  ストレージマネージャ  ＦＡＱ、”ライトスルーとライトバックの違いは”、［平成２９年１２月８日検索］、インターネット（ｈｔｔｐ：／／ｔｏｏｌｊｐ．ｃｏｍ／ｂｌａｄｅ／ＳｔｏｒａｇｅＭａｎａｇｅｒ／ＳｔｏｒａｇｅＭａｎａｇｅｒ＿４０５２ＢＤＤ６Ｄ０７０２３ＡＣ４９２５７ＡＡＡ００６１７８８９．ｈｔｍｌ）
【非特許文献２】Ｐｒｏｄｕｃｔ  Ｂｒｉｅｆ、ＰＥＸ８７３３、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｇｅｎ  ３  Ｓｗｉｃｈ、３２Ｌａｎｅｓ、１８Ｐｏｒｔｓ、［平成２９年１２月１８日検索］、インターネット（ｈｔｔｐｓ：／／ｄｏｃｓ．ｂｒｏａｄｃｏｍ．ｃｏｍ／ｄｏｃｓ／１２３５１８５２）
【発明の概要】
【発明が解決しようとする課題】
【０００９】
背景技術の項で説明したプログラム交換方法は、プログラム交換時に、一方のコントローラの動作を停止させる。そのため、背景技術の項で説明したプログラム交換方法を適用した場合、プログラム交換中は、ユーザデータの二重化を行うことができない。そのため、ストレージシステムは、プログラム交換中は、ライトバック動作を行うことができず、ライトスルー動作を行う必要がある。
【００１０】
本発明は、ストレージ制御プログラムの交換中も記録データの二重化を行い得る制御装置等の提供を目的とする。
【課題を解決するための手段】
【００１１】
本発明の制御装置は、入力されたデータの記憶を行った後に、前記データの記録装置への記録を行うコントローラからなるコントローラ群を備えるストレージシステムであって、前記コントローラである第二コントローラに導入された、前記記録を行うためのプログラムを新しいものに交換する際に、第二コントローラにおける前記データの受信を不能にし、前記第二コントローラが格納している前記記憶に係る管理情報である第一管理情報の、前記コントローラである第一コントローラへの第一転送と前記第一コントローラにおける格納とを行い、前記交換を行っている間に前記第一コントローラに前記入力が行われた前記データである交換中データについて、前記第一コントローラが前記記憶を行うとともに、前記第一コントローラから前記第二コントローラへの第二転送と前記第二コントローラによる前記記憶とを行い、前記交換中データに係る前記第一管理情報について、前記第一コントローラが前記格納を行うとともに、前記第一コントローラから前記第二コントローラへの第三転送と前記第二コントローラにおける前記格納とを行い、前記交換の後に、前記データの前記第二コントローラにおける前記受信を可能にする。
【発明の効果】
【００１２】
本発明の制御装置等は、ストレージ制御プログラムの交換中も記録データの二重化を行い得る。
【図面の簡単な説明】
【００１３】
【図１】第一実施形態のストレージシステムの構成例を表す概念図である。
【図２】第二実施形態のストレージシステムのハードウェア構成例を表す概念図である。
【図３】第二実施形態のストレージシステムのソフトウェアの構成例を表す概念図である。
【図４】ストレージ制御プログラムの交換のために行う動作を表す図（その１）である。
【図５】ストレージ制御プログラムの交換のために行う動作を表す図（その２）である。
【図６】ストレージ制御プログラムの交換のために行う動作を表す図（その３）である。
【図７】ストレージ制御プログラムの交換のために行う動作を表す図（その４）である。
【図８】ストレージ制御プログラムの交換のために行う動作を表す図（その５）である。
【図９】ストレージ制御プログラムの交換のために行う動作を表す図（その６）である。
【図１０】ストレージ制御プログラムの交換のために行う動作を表す図（その７）である。
【図１１】ストレージ制御プログラムの交換のために行う動作を表す図（その８）である。
【図１２】ストレージ制御プログラムの交換に関する処理の処理フロー例を表す概念図である。
【図１３】ストレージ制御プログラムの交換の際にメイトコントローラが行う処理の処理フロー例を表す概念図である。
【図１４】フラグ情報の転送指示処理の処理フロー例を表す概念図である。
【図１５】実施形態の制御装置の最小限の構成を表す概念図である。
【発明を実施するための形態】
【００１４】
＜第一実施形態＞
第一実施形態は、ストレージ制御プログラムの交換をシステムの動作を停止させずに行うストレージシステムについての実施形態である。
［構成と動作］
図１は、第一実施形態のストレージシステムの例であるストレージシステム１０１の構成を表す概念図である。
【００１５】
ストレージシステム１０１は、コントローラ１０６ａ及び１０６ｂと、ＨＤＤ群１５０とを備える。
【００１６】
ストレージシステム１０１は、背景技術の項において説明した、ＨＤＤ群１５０に記録するデータの二重化に加えて、コントローラを二重化した冗長構成を備えるストレージシステムである。
【００１７】
コントローラ１０６ａ及び１０６ｂには、入力データをＨＤＤ群１５０を記録させるための、第一ストレージ制御プログラム及び第二ストレージ制御プログラムがこの順にロードされている。
【００１８】
ここで、コントローラ１０６ｂに導入されている第二ストレージ制御プログラムを新しいものに交換することを想定する。
【００１９】
その場合、コントローラ１０６ｂは、まず、外部からのデータの受領を停止する。
【００２０】
そして、ストレージシステム１０１は、コントローラ１０６ｂに係るキャッシュデータ格納管理情報をコントローラ１０６ａにコピーして格納する。以下、キャッシュデータ格納管理情報をキャッシュ管理情報ということもある。
【００２１】
そして、コントローラ１０６は、前記第二ＰＧモジュールの新しい前記第二ＰＧモジュールへの交換を開始する。
【００２２】
コントローラ１０６ａは、前記交換中に、コントローラ１０６ａが外部からデータの送付を受けると、キャッシュデータとして格納する。そして、コントローラ１０６ａは、当該キャッシュデータに係るキャッシュ管理情報を生成し、格納する。そして、ストレージシステム１０１は、前記キャッシュデータと前記キャッシュデータ管理情報とのコピーを、コントローラ１０６ｂにも格納させる。
【００２３】
そして、ストレージ制御プログラムの交換が完了すると、ストレージシステム１０１は、第二コントローラにおける外部からのデータの受領の停止を解除し、交換後の新しい第二ＰＧモジュールによる記録処理を開始させる。
【００２４】
コントローラ１０６ａに格納された第一ストレージ制御プログラムの新しい第一ストレージ制御プログラムへの交換も、上記と同様にして行うことができる。
【００２５】
なお、上記動作を行うためにストレージシステム１０１が備える具体的構成及び処理フローは第二実施形態において説明する。
【００２６】
なお、前述のキャッシュ管理情報は、キャッシュデータの、論理情報（イニシエータＩＤ、ＬＵＮ、ＬＢＡ等）と、キャッシュデータを格納するアドレスとを紐付けるための情報である。ここで、ＩＤはＩｄｅｎｔｉｆｉｅｒの略である。また、ＬＵＮはＬｏｇｉｃａｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒの略である。また、ＬＢＡは、Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓｉｎｇの略である。
［効果］
本実施形態のストレージシステムは、ストレージ制御プログラムの交換中に外部から入力されたデータの記録部への記録のための動作を行っても、格納するキャッシュデータ及びキャッシュ管理情報を、通常動作させた場合と同様の内容にすることができる。ここで、通常動作は、前記ストレージシステムが前記ストレージ制御プログラムの交換を行わないときの動作である。
【００２７】
各コントローラのキャッシュデータは、後に、対応するコントローラの各々により、ＨＤＤ群に記録される。そのため、前記ストレージシステムは、プログラム交換中に記録のための動作を行っても、記録部に記録するデータの二重化を行うことができる。
＜第二実施形態＞
第二実施形態は、第一実施形態のストレージシステムの詳細例についての実施形態である。
［構成と動作］
図２は、第二実施形態のストレージシステムの例であるストレージシステム１０１のハードウェア構成を表す概念図である。
【００２８】
ストレージシステム１０１は、コントローラ１０６ａ及び１０６ｂと、ＨＤＤ群１５０と、Ｐｏｒｔ１１１ａ及び１１１ｂと、Ｅｘｉｔ−Ｐｏｒｔ１４１ａ及び１４１ｂとを備える。
【００２９】
図２には、ストレージシステム１０１の他に、ホスト９００を表してある。ホスト９００は、ストレージシステム１０１に記録させるデータを、Ｐｏｒｔ１１１ａ及び１１１ｂのいずれかに振り分けて入力する。
【００３０】
コントローラ１０６ａと１０６ｂとは、ホスト９００から送付された情報のＨＤＤ群１５０への記録に関して同等の処理能力を有する。ストレージシステム１０１は、ホスト９００から送付された情報のＨＤＤ群１５０への格納に関して冗長構成を有している。
【００３１】
コントローラ１０６ａは、Ｈｏｓｔ−Ｐｏｒｔ−Ｃｈｉｐ１１６ａと、ＣＰＵ１２１ａと、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａと、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａと、Ｄｉｓｋ−Ｐｏｒｔ−Ｃｈｉｐ１３６ａとを備える。ここで、ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。
【００３２】
コントローラ１０６ｂは、Ｈｏｓｔ−Ｐｏｒｔ−Ｃｈｉｐ１１６ｂと、ＣＰＵ１２１ｂと、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂと、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂと、Ｄｉｓｋ−Ｐｏｒｔ−Ｃｈｉｐ１３６ｂとを備える。
【００３３】
Ｈｏｓｔ−Ｐｏｒｔ−Ｃｈｉｐ１１６ａはホストと接続するためのポートであるＰｏｒｔ１１１ａを介して、ホスト９００に接続されている。
【００３４】
Ｈｏｓｔ−Ｐｏｒｔ−Ｃｈｉｐ１１６ｂはホストと接続するためのポートであるＰｏｒｔ１１１ｂを介して、ホスト９００に接続されている。
【００３５】
Ｈｏｓｔ−Ｐｏｒｔ−Ｃｈｉｐ１１６ａは、Ｐｏｒｔ１１１ａを介してホスト９００より入力されたデータを、ＣＰＵ１２１ａでの処理に適した形式に変換し、ＣＰＵ１２１ａに入力する。
【００３６】
Ｈｏｓｔ−Ｐｏｒｔ−Ｃｈｉｐ１１６ｂは、Ｐｏｒｔ１１１ｂを介してホスト９００より入力されたデータを、ＣＰＵ１２１ｂでの処理に適した形式に変換し、ＣＰＵ１２１ｂに入力する。
【００３７】
Ｈｏｓｔ−Ｐｏｒｔ−Ｃｈｉｐ１１６ａ及び１１６ｂのＩ／Ｆ（インタフェース）は、例えば、ＦＣ（ファイバーチャネル）、ｉＳＣＳＩ、ＳＡＳ等である。
【００３８】
ＣＰＵ１２１ａは、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａに接続されている。
【００３９】
ＣＰＵ１２１ａは、Ｈｏｓｔ−Ｐｏｒｔ−Ｃｈｉｐ１１６ａから入力されたデータをＬｏｃａｌ−Ｍｅｍｏｒｙ１２６ａにキャッシュデータとして格納させる。
ＣＰＵ１２１ａは、また、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａに格納させたキャッシュデータについてのキャッシュ管理情報を生成し、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａに格納させる。
【００４０】
ＣＰＵ１２１ａは、また、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａに格納させたキャッシュデータを、Ｄｉｓｋ−Ｐｏｒｔ−Ｃｈｉｐ１３６ａを介して、ＨＤＤ群１５０に格納する。
【００４１】
ＣＰＵ１２１ａは、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａに対して指示を行うことにより、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａが保持するキャッシュデータ及びキャッシュ管理情報を、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂの所定の位置に送付し、格納させ得る。ＣＰＵ１２１ａは、当該送付を、コントローラ１０６ｂのＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂ経由で行う。
【００４２】
ＣＰＵ１２１ａは、また、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａに対しての指示により、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂが保持するデータを、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａの所定の位置に受領し、格納させ得る。当該受領は、コントローラ１０６ｂのＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂ経由で行われる。
【００４３】
ＣＰＵ１２１ｂは、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂと接続されている。
【００４４】
ＣＰＵ１２１ｂは、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂに対しての指示により、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂが保持するキャッシュデータ及びキャッシュ管理情報を、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａの所定の位置に送付し格納させ得る。当該送付は、コントローラ１０６ａのＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ経由で行われる。
【００４５】
ＣＰＵ１２１ｂは、また、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂに対しての指示により、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａが保持するデータを、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂの所定の位置に受領し、格納させ得る。当該受領は、コントローラ１０６ｂのＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ経由で行われる。
【００４６】
ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａとＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂとは接続されている。ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａとＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂとは、コントローラ１０６ａとコントローラ１０６ｂとの間のデータ通信Ｉ／Ｆとして使用される。
【００４７】
ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂの各々は、ＰＣＩ−Ｅｘｐｒｅｓｓ等の汎用バスをインタコネクトとして結合し、インタコネクトを介したコントローラ間通信を行うためのデバイスである。ここで、ＰＣＩ−Ｅｘｐｒｅｓｓは、ＰＣＩ−ＳＩＧ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ−Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ）が策定した装置間を接続するバスの標準規格である。
【００４８】
ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂの各々は、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）機能を備える。そのため、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａの各々は、ＣＰＵ１２１ａの実行時間を消費しないで、この順にＬｏｃａｌ−Ｍｅｍｏｒｙ１２６ａ及び１２６ｂの各々が保持するデータにアクセスすることができる。
【００４９】
前記ＤＭＡ機能は、次の経路でデータの転送を行う機能である。当該経路は、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａ、ＣＰＵ１２１ａ、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂ、ＣＰＵ１２１ｂ、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂを接続する経路である。ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂは、前記転送を、事前の転送設定、及び、対応するＣＰＵがＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂに対して送付する転送指示により行う。
【００５０】
コントローラ１０６ａ及び１０６ｂは、これらのうちの一方に係るプログラムが動作しなくても、事前の転送設定により、他方のＬｏｃａｌ−Ｍｅｍｏｒｙ１２６ａ及び１２６ｂのいずれかの読み書きができる。
【００５１】
ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂとしては、例えば、市販のＢｒｏａｄｃｏｍ社製のＰＥＸ８７３３を用いることができる（非特許文献２参照）。
【００５２】
Ｄｉｓｋ  Ｐｏｒｔ  Ｃｈｉｐ１３６ａは、ＨＤＤ１５１乃至１５ｎのｎ台のＨＤＤを備えるＨＤＤ群１５０の備える各ＨＤＤと接続されている。そして、Ｄｉｓｋ  Ｐｏｒｔ  Ｃｈｉｐ１３６ａは、ＣＰＵ１２１ａの指示に従い、ＣＰＵ１２１ａの送付するデータをＨＤＤ群１５０に送付し、格納させる。Ｄｉｓｋ  Ｐｏｒｔ  Ｃｈｉｐ１３６ａは、また、ＣＰＵ１２１ａの指示に従い、ＨＤＤ群１５０から記録されたデータを読み込み、Ｅｘｉｔ−Ｐｏｒｔ１４１ａを介して、図示しない他のＨＤＤやＤｉｓｋ拡張機器に送付する。
【００５３】
なお、コントローラ１０６ｂの備える各構成の説明は、上記のコントローラ１０６ａについての説明において、符号のａをｂに、ｂをａに、それぞれ、置き換えたものである。
【００５４】
図３は、ストレージシステム１０１が備えるソフトウェアの構成を表す概念図である。図３に表すカッコ内の記述は、図２に表す対応するハードウェア構成を表す。
【００５５】
ストレージシステム１０１には、前述のストレージ制御プログラムを、単独で切離し（ｄｅｔａｃｈ）、組み込む（ａｔｔａｃｈ）ことが可能なＯＳが採用されているものとする。ここで、ＯＳは、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略である。当該ＯＳとしては、例えば、Ｌｉｎｕｘ（登録商標）やＯｐｅｎ  Ｓｏｌａｒｉｓを用いることができる。
【００５６】
ストレージシステム１０１は、コントローラＳＷ２４０ａ及び２４０ｂを備える。ここで、ＳＷはソフトウェアの略である。ＳＷには、プログラム及びデータのうちの少なくとも一方が含まれる。
【００５７】
コントローラＳＷ２４０ａは、図２に表すコントローラ１０６ａ用のソフトウェアである。また、コントローラＳＷ２４０ｂは、図２に表すコントローラ１０６ｂ用のＳＷである。
【００５８】
コントローラＳＷ２４０ａは、ＰＧモジュール２００ａと、制御メモリ情報２２０ａとを備える。
【００５９】
ＰＧモジュール２００ａは、前述のストレージ制御プログラムでもある。ＰＧモジュール２００ａは、図２に表すＣＰＵ１２１ａを動作させるプログラム群である。ＰＧモジュール２００ａは、単独で、ｄｅｔａｃｈ及びａｔｔａｃｈできるようになっている。
【００６０】
ＰＧモジュール２００ａは、Ｉ／Ｏ制御ＰＧ２０２ａと、キャッシュｈｉｔ判定ＰＧ２０４ａと、Ｄｉｓｋ制御ＰＧ２０６ａと、コントローラ間通信制御ＰＧ２０８ａと、アップデート監視デーモン２１０ａとを備える。
【００６１】
Ｉ／Ｏ制御ＰＧ２０２ａは、図２に表すＨｏｓｔ−Ｐｏｒｔ−Ｃｈｉｐ１１６ａに図２を参照して説明した動作を行わせるためのものである。
【００６２】
キャッシュｈｉｔ判定ＰＧ２０４ａは、キャッシュデータの格納及びキャッシュ管理情報の制御を行うためのものである。
【００６３】
Ｄｉｓｋ制御ＰＧ２０６ａは、図２に表すＤｉｓｋ  Ｐｏｒｔ  Ｃｈｉｐ１３６ａに図２を参照して説明した動作を行わせるためのものである。
【００６４】
コントローラ間通信制御ＰＧ２０８ａは、図２に表すＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａに図２を参照して説明したコントローラ間通信を行わせるためのものである。
【００６５】
制御メモリ情報２２０ａは、図２に表すＬｏｃａｌ−Ｍｅｍｏｒｙ１２６ａが備える情報群である。
【００６６】
制御メモリ情報２２０ａは、第一キャッシュ管理情報２２２ａ、キャッシュデータ２２４ａ、第一アップデート状態フラグ２２６ａ、第二キャッシュ管理情報２２８ａ及び第二アップデート状態フラグ２３０ａを備える。
【００６７】
Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａを配置するアドレスとしては、制御プログラムのＲｅｖｉｓｉｏｎによって変化しない固定アドレス配置を用いる。
【００６８】
第一アップデート状態フラグ２２６ａ及び第二アップデート状態フラグ２３０ａの各々は、これらが備える、図示しない、切離し開始フラグとキャッシュ操作停止フラグのそれぞれの値を独立に設定できるものとする。ここで、切離し開始フラグは、ＰＧモジュール２００ｂのコントローラ１０６ｂからの切離しが開始されたか否かを表すフラグである。また、キャッシュ操作停止フラグは、コントローラ１０６ｂにおけるキャッシュデータに係る処理が停止したか否かを表すフラグである。
【００６９】
Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａが格納するコントローラＳＷ２４０ｂのキャッシュ管理情報とアップデート状態フラグは、ＣＰＵ１２１ａの指示により、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａに送付し、格納され得る。つまり、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａの第一キャッシュ管理情報２２２ｂのコピーは、ＣＰＵ１２１ａの指示により、第二キャッシュ管理情報２２８ａに格納され得る。
【００７０】
また、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂの第一アップデート状態フラグ２２６ｂのコピーは、ＣＰＵ１２１ａの指示により、第二アップデート状態フラグ２３０ａに格納され得る。
【００７１】
なお、コントローラＳＷ２４０ｂの説明は、上記コントローラＳＷ２４０ａの説明において、符号に含まれるアルファベットのａをｂに、ｂをａに、それぞれ、置き換えたものである。
【００７２】
次に、図４乃至図１１を参照して、図２に表すストレージシステム１０１が、図３に表すＳＷ構成により、ＰＧモジュール２００ｂを交換する際に行う動作を説明する。
【００７３】
なお、図４乃至図１１においては、ＳＷ構成に加えてＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｎを表示する。
【００７４】
また、図４乃至図１１においては第一アップデート状態フラグ２２６ａ及び２２６ｂと第二アップデート状態フラグ２３０ａ及び２３０ｂについて、必要に応じて前述の切離し開始フラグ及びキャッシュ操作停止フラグのフラグ値を図示する。
【００７５】
図４は、ＰＧモジュール２００ｂの交換開始時の動作を表すイメージ図である。
【００７６】
まず、図２に表すＣＰＵ１２１ｂは、（１）の動作として、ホスト９００からストレージシステム１０１への入力が、コントローラ１０６ａのみに入力されるようにする。ＣＰＵ１２１ｂは、例えば、ホスト９００に通知信号を送付することにより、当該動作をホスト９００に行わせる。
【００７７】
次に、ＣＰＵ１２１ｂは、（２）の動作として、コントローラ１０６ｂのアップデート監視デーモン２１０ｂによる処理により、第一アップデート状態フラグ２２６ｂの切離し開始フラグ４００に、切離しを開始する旨を表す１を格納する。
【００７８】
そして、ＣＰＵ１２１ｂは、切離し開始フラグ４００に格納されたフラグ情報である１の値を、コントローラ間通信制御ＰＧ２０８ｂによる処理により、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂに送付する。これにより、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂは、第二アップデート状態フラグ２３０ａの切離し開始フラグ４０１にコピーする。
【００７９】
そして、（４）の動作として、ＣＰＵ１２１ｂは、図３に表すＩ／Ｏ制御ＰＧ２０２ｂによる処理により、データの受領を停止する。
【００８０】
図５は、ストレージシステム１０１がＰＧモジュール２００ｂを切り離す動作を表すイメージ図である。
【００８１】
ＣＰＵ１２１ｂは、（１）の動作として、まず、第一アップデート状態フラグ２２６ｂの切離し開始フラグ４００の値が１であり、かつ、ホスト９００からのデータ入力がないアイドル状態に遷移したことを検出する。ＣＰＵ１２１ｂは、当該検出を、図３に表すキャッシュｈｉｔ判定ＰＧ２０４ｂにより行う。
【００８２】
そして、ＣＰＵ１２１ｂは、（２）の動作として、キャッシュｈｉｔ判定ＰＧ２０４ｂによる処理により、第一アップデート状態フラグ２２６ｂのキャッシュ操作停止フラグ４０２に、キャッシュ操作が停止していることを表す値である１を格納する。
【００８３】
次に、ＣＰＵ１２１ｂは、（３）の動作として、コントローラ間通信制御ＰＧ２０８ｂによる処理によりＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂに制御情報を送付する。そして、ＣＰＵ１２１ｂは、同動作として、キャッシュ操作停止フラグ４０２に格納されたフラグ値である１を、第二アップデート状態フラグ２３０ａのキャッシュ操作停止フラグ４０３にコピーする。当該コピーは、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂの動作により行われる。
【００８４】
そして、ＣＰＵ１２１ｂは、（４）の動作として、アップデート監視デーモン２１０ｂにより、キャッシュ操作停止フラグ４０２からキャッシュ操作停止フラグの値が１に設定されたことを検出する。そして、ＣＰＵ１２１ｂは、前記ＯＳによる処理により、ＰＧモジュール２００ｂを前述のｄｅｔａｃｈにより切り離す。
【００８５】
図６は、コントローラ１０６ｂが保持するキャッシュ管理情報のコントローラ１０６ａへの格納動作を表すイメージ図である。
【００８６】
前述のキャッシュ操作の停止により、ＰＦモジュール２００ｂは、コントローラ１０６ｂから切り離された状態になっている。
【００８７】
ＣＰＵ１２１ａは、まず、（１）の動作として、アップデート監視デーモン２１０ａによる処理により、第二アップデート状態フラグ２３０ａのキャッシュ操作停止フラグ４０３の値が１であることを検出する。第二アップデート状態フラグ２３０ａのキャッシュ操作停止フラグ４０３の値が１であることは、ＰＧモジュール２００ｂがコントローラ１０６ｂから切り離された状態になっていることを意味する。
【００８８】
そして、ＣＰＵ１２１ａは、（２）の動作として、コントローラ間通信制御ＰＧ２０８ａによる処理によりＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａに切離し開始フラグのフラグ値である１を送付する。当該送付により、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂは、コントローラ１０６ｂの第一キャッシュ管理情報２２２ｂの内容を、第二キャッシュ管理情報２２８ａにコピーする。
【００８９】
図７は、ＰＧモジュール２００ｂがコントローラ１０６ｂから切り離された状態での、ＣＰＵ１２１ａによるキャッシュデータの格納動作を表すイメージ図である。
【００９０】
ホスト９００からのデータがコントローラ１０６ａに入力された場合、ＣＰＵ１２１ａは、キャッシュｈｉｔ判定ＰＧ２０４ａによる処理により、キャッシュデータ２２４ａに入力データを格納する。そして、ＣＰＵ１２１ａは、キャッシュｈｉｔ判定ＰＧ２０４ａにより、格納したキャッシュデータに係るキャッシュ管理情報を第一キャッシュ管理情報２２２ａに追加する。
【００９１】
図８は、ＰＧモジュール２００ｂがコントローラ１０６ｂから切り離された状態でコントローラ１０６ａが格納したデータ及びキャッシュ管理情報の、コントローラ１０６ｂへのコピー動作を表すイメージ図である。
【００９２】
ホスト９００からコントローラ１０６ａに送付され、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａに格納されたデータは、コントローラ１０６ｂのＬｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂへデータ転送され格納される。これにより、キャッシュデータの二重化が行われる。キャッシュデータは、後に、ＨＤＤ群１５０に記録されるので、ＨＤＤ群１５０に記録されるデータも、後に、二重化される。
【００９３】
当該データ転送は、前述のように、ＣＰＵ１２１ａからＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａに送付する制御信号によりＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂのＤＭＡ機能によりＣＰＵ１２１ｂのプログラムによる動作を必要とせずに行い得る。
【００９４】
ＣＰＵ１２１ａは、（１）の動作として、まず、第二キャッシュ管理情報２２８ａを参照する。そして、ＣＰＵ１２１ａは、図７に表すデータ格納とキャッシュデータ更新動作によりキャッシュデータ２２４ａに格納したデータである更新データを格納するキャッシュデータ２２４ｂの格納位置を決定する。ここでは、決定した格納位置のアドレスＡとする。
【００９５】
次に、ＣＰＵ１２１ａは、（２）の動作として、キャッシュデータ２２４ａに格納した更新データを、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂにおけるキャッシュデータ２２４ｂの格納位置のアドレスＡへ送付する。
【００９６】
そして、ＣＰＵ１２１ａは、（３）の動作として、キャッシュｈｉｔ判定ＰＧ２０４ａによる処理により、キャッシュデータ２２４ｂの更新状態に基づき、第二キャッシュ管理情報２２８ａを更新する。
【００９７】
そして、ＣＰＵ１２１ａは、（４）の動作として、コントローラ間通信制御ＰＧ２０８ａにより、第二キャッシュ管理情報２２８ａの更新部分を、第一キャッシュ管理情報２２２ｂにおける対応するアドレスに送付する。
【００９８】
以上により、第二キャッシュ管理情報２２８ａと第一キャッシュ管理情報２２２ｂは二重化される。
【００９９】
図９は、新規プログラムのコントローラ１０６ｂへの導入動作（その１）を表すイメージ図である。
【０１００】
ＣＰＵ１２１ｂは、まず、（１）の動作として、ＰＧモジュール２００ｂを置き換えるプログラムであるＰＧモジュール２００ｃを導入し、前記ＯＳによる処理によりａｔｔａｃｈする。これにより、ＣＰＵ１２１ｂは、ＰＧモジュール２００ｃによる動作を開始する。
【０１０１】
なお、ＰＧモジュール２００ｃは、ＰＧモジュール２００ｂが備える各構成の符号に含まれるｂをｃで置き換えた構成を備えるものとする。ＰＧモジュール２００ｃが備える符号の付された各構成は、ＰＧモジュール２００ｂが備える符号が付された各構成と同様の動作を行う。
【０１０２】
次に、ＣＰＵ１２１ｂは、（２）の動作として、アップデート監視デーモン２１０ｃにより、第一アップデート状態フラグ２２６ｂの切離し開始フラグ４００の値を０に書き換える。
【０１０３】
そして、ＣＰＵ１２１ｂは、第二アップデート状態フラグ２３０ｂの切離し開始フラグ４００の値である０を第二アップデート状態フラグ２３０ｂの切離し開始フラグ４０１にコピーする。ＣＰＵ１２１ｂは当該動作を、コントローラ間通信制御ＰＧ２０８ｃによりＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂに送付する制御信号により、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂを介して行う。
【０１０４】
そして、ＣＰＵ１２１ａは、（４）の動作として、アップデート監視デーモン２１０ａにより、プログラム切離しフラグ４０４のフラグ値が０であることを検出する。そして、ＣＰＵ１２１ａは、キャッシュｈｉｔ判定ＰＧ２０４ａによる第二キャッシュ管理情報２２８ａの更新動作を中止する。
【０１０５】
図１０は、新規プログラムのコントローラ１０６ｂへの導入動作（その２）を表すイメージ図である。
【０１０６】
ＣＰＵ１２１ａは、（１）の動作として、まず、第二キャッシュ管理情報２２８ａの更新動作の中止を受けて、第二アップデート状態フラグ２３０ａの中のキャッシュ操作停止フラグ４０３のフラグ値を０にする。ＣＰＵ１２１ａは、当該設定を、キャッシュｈｉｔ判定ＰＧ２０４ａによる処理により行う。
【０１０７】
次に、ＣＰＵ１２１ａは、（２）の動作として、キャッシュ操作停止フラグ４０３の値をコントローラ１０６ｂの２２６ｂの第一アップデート状態フラグ２２６ｂの中のキャッシュ操作停止フラグ４０２へコピーする。ＣＰＵ１２１ａは、当該コピーを、コントローラ間通信制御ＰＧ２０８ａによりＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａに送付する制御情報により、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂを介して行う。
【０１０８】
そして、ＣＰＵ１２１ｂは、（３）の動作として、アップデート監視デーモン２１０ｃにより、キャッシュ操作停止フラグ４０２の値から、ＣＰＵ１２１ａがキャッシュデータ２２４ｂの更新処理を行っていないことを検出する。
【０１０９】
そして、ＣＰＵ１２１ｂは、（４）の動作として、アップデート監視デーモン２１０ｃにより、キャッシュｈｉｔ判定ＰＧ２０４ｃにキャッシュ操作を開始させる。キャッシュ操作が可能となったコントローラ１０６ｂは、ホスト９００からのデータの受領が可能な状態である。
【０１１０】
図１１は、ホスト９００によるデータの振り分けが開始された状態を表すイメージ図である。
【０１１１】
ＣＰＵ１２１ｂは、（１）の動作として、Ｉ／Ｏ制御ＰＧ２０２ｃにより、ホスト９００からのデータの受領を再開する。
【０１１２】
そして、ＣＰＵ１２１ｂは、例えば、Ｉ／Ｏ制御ＰＧ２０２ｃによる処理により、ホスト９００に対して、データのコントローラ１０６ａ及び１０６ｂへの振り分けを要請する。これにより、ホスト９００は、当該振り分けを再開する。
【０１１３】
そして、ストレージシステム１０１は、コントローラ１０６ａ及び１０６ｂによる通常動作に移行する。
【０１１４】
以上は、図３に表すＰＧモジュール２００ｂを図９に表すＰＧモジュール２００ｃに交換する際にストレージシステム１０１が行う動作である。図３に表すＰＧモジュール２００ａを他のＰＧモジュールに交換する場合も同様に行うことができる。その場合の説明は、上記説明において、符号に含まれるａをｂに、ｂをａに、それぞれ、置き換えたものである。
［処理フロー］
図１２は、図２に表すＣＰＵ１２１ｂが行う、コントローラ１０６ｂにおけるＰＧモジュール交換に関する処理の処理フロー例を表す概念図である。
【０１１５】
ＣＰＵ１２１ｂは、例えば、外部からの開始情報の入力により、図１２に表す処理を開始する。
【０１１６】
そして、ＣＰＵ１２１ｂは、Ｓ１０１の処理として、図３に表す第一アップデート状態フラグに含まれる切離し開始フラグの値を１に設定する。同処理は、図３に表すアップデート監視デーモン２１０ｂによるものである。同処理は、図４に表す（２）の動作に対応する。
【０１１７】
そして、ＣＰＵ１２１ｂは、Ｓ１０２の処理として、前記切離し開始フラグの値である１を、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂに転送する。同処理は、図３に表すコントローラ間通信制御ＰＧ２０８ｂによるものである。当該転送を受けて、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂは、図３に表す第二アップデート状態フラグ２３０ａの切離し開始フラグに格納する。前記処理は、図４に表す（３）の動作に対応する。
【０１１８】
次に、ＣＰＵ１２１ｂは、Ｓ１０３の処理として、ホスト９００から送付される新規データの受信を拒否する設定を行う。同処理は、図３に表すＩ／Ｏ制御ＰＧ２０２ｂによるものである。同処理は、図４に表す（４）の動作に対応する。
【０１１９】
そして、ＣＰＵ１２１ｂは、Ｓ１０４の処理として、ホスト９００からの新規データの送付があるかについての判定を行う。
【０１２０】
ＣＰＵ１２１ｂは、Ｓ１０４の処理による判定結果がｙｅｓの場合は、Ｓ１０４の処理を再度行う。
【０１２１】
一方、ＣＰＵ１２１ｂは、Ｓ１０４の処理による判定結果がｎｏの場合は、Ｓ１０５の処理を行う。
【０１２２】
ＣＰＵ１２１ｂは、Ｓ１０５の処理を行う場合は、同処理として、ＣＰＵ１２１ｂが処理中の、ホスト９００から送付されたデータがあるかについての判定を行う。同処理は、図３に表すキャッシュｈｉｔ判定ＰＧ２０４ａによる処理である。同処理は、また、図５に表す（１）の動作に対応する処理である。
【０１２３】
ＣＰＵ１２１ｂは、Ｓ１０５の処理による判定結果がｙｅｓの場合は、Ｓ１０５の処理を再度行う。
【０１２４】
一方、ＣＰＵ１２１ｂは、Ｓ１０５の処理による判定結果がｎｏの場合は、Ｓ１０６の処理を行う。
【０１２５】
ＣＰＵ１２１ｂは、Ｓ１０６の処理を行う場合は、同処理として、図３に表す第一アップデート状態フラグ２２６ｂに含まれるキャッシュ操作停止フラグの値を１にする。同処理は、図３に表すキャッシュｈｉｔ判定ＰＧ２０４ａによる処理である。同処理は、図５に表す（２）の動作に対応するものである。
【０１２６】
そして、ＣＰＵ１２１ｂは、Ｓ１０７の処理として、第一アップデート状態フラグ２２６ｂに含まれるキャッシュ操作停止フラグの値である１を、図２に表すＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂに送付する。同処理は、図３に表すコントローラ間通信制御ＰＧ２０８ｂによる処理である。当該送付を受けて、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂ及び１３１ａは、第二アップデート状態フラグ２３０ａのキャッシュ操作停止フラグの値を１に設定する。当該処理は、図５に表す（３）の動作に対応するものである。
【０１２７】
次に、ＣＰＵ１２１ｂは、Ｓ１０８の処理として、図３に表すＰＧモジュール２００ｂの前述のｄｅｔａｃｈを行う。当該処理は、前記ＯＳによる処理である。
【０１２８】
そして、ＣＰＵ１２１ｂは、Ｓ１０９の処理として、図３に表すＰＧモジュール２００ｂを置き換える新しいＰＧモジュールである図９に表すＰＧモジュール２００ｃが導入されたかについての判定を行う。
【０１２９】
ＣＰＵ１２１ｂは、Ｓ１０９の処理による判定結果がｙｅｓの場合は、Ｓ１１０の処理を行う。
【０１３０】
一方、ＣＰＵ１２１ｂは、Ｓ１０９の処理による判定結果がｎｏの場合は、Ｓ１０９の処理を再度行う。
【０１３１】
ＣＰＵ１２１ｂは、Ｓ１１０の処理を行う場合は、同処理として、導入されたＰＧモジュール２００ｃの前記ａｔｔａｃｈ及び起動を行う。同処理は、前記ＯＳによる処理である。同処理は、図９に表す（１）の動作に対応する。
【０１３２】
そして、ＣＰＵ１２１ｂは、Ｓ１１１の処理として、ＰＧモジュール２００ｃの前記ＯＳによる起動が完了したかについての判定を行う。
【０１３３】
ＣＰＵ１２１ｂは、Ｓ１１１の処理による判定結果がｙｅｓの場合は、Ｓ１１２の処理を行う。
【０１３４】
一方、ＣＰＵ１２１ｂは、Ｓ１１１の処理による判定結果がｎｏの場合は、Ｓ１１１の処理を再度行う。
【０１３５】
ＣＰＵ１２１ｂは、Ｓ１１２の処理を行う場合は、同処理として、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂに係るメモリマップが正常かについての判定を行う。
【０１３６】
ＣＰＵ１２１ｂは、Ｓ１１２の処理による判定結果がｙｅｓの場合は、Ｓ１１３の処理を行う。
【０１３７】
一方、ＣＰＵ１２１ｂは、Ｓ１１２の処理による判定結果がｎｏの場合は、Ｓ１１７の処理を再度行う。
【０１３８】
ＣＰＵ１２１ｂは、Ｓ１１３の処理を行う場合は、同処理として、図３に表す第一アップデート状態フラグ２２６ｂに含まれる切離し開始フラグの値を０にする。同処理は、図３に表すアップデート監視デーモン２１０ｂによる処理である。同処理は、また、図９に表す（２）の動作に対応する。
【０１３９】
そして、ＣＰＵ１２１ｂは、Ｓ１１４の処理として、第一アップデート状態フラグ２２６ｂに含まれる切離し開始フラグの値を、図２に表すＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂに送付する。同処理は、図３に表すコントローラ間通信制御ＰＧ２０８ｂによる処理である。これにより、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ｂ及び１３１ａは、０の値を第二アップデート状態フラグ２３０ａの切離し開始フラグに格納する。同処理は、図９に表す（３）の動作に対応するものである。
【０１４０】
そして、ＣＰＵ１２１ｂは、Ｓ１１５の処理として、図３に表す第一アップデート状態フラグ２２６ｂに含まれるキャッシュ操作停止フラグの値が０であるかについての判定を行う。同処理は、図１０に表すアップデート監視デーモン２１０ｃによる処理である。同処理は、図１０の（３）の動作に対応する。
【０１４１】
ＣＰＵ１２１ｂは、Ｓ１１５の処理による判定結果がｙｅｓの場合は、Ｓ１１６の処理を行う。
【０１４２】
一方、ＣＰＵ１２１ｂは、Ｓ１１５の処理による判定結果がｎｏの場合は、Ｓ１１５の処理を再度行う。
【０１４３】
ＣＰＵ１２１ｂは、Ｓ１１６の処理を行う場合は、同処理として、図２に表すホスト９００からのデータの受領拒否を解除する。同処理は、図３に表すＩ／Ｏ制御ＰＧ２０２ｂによる処理である。そして、ＣＰＵ１２１ｂは、図１２に表す処理を終了する。
【０１４４】
その後、図２に表すホストが、Ｐｏｒｔ１１１ｂへのデータの振り分けを再開すると、ストレージシステム１０１へのＰＧモジュール２００ｂの交換に係る処理は正常終了する。
【０１４５】
ＣＰＵ１２１ｂは、Ｓ１１７の処理を行う場合は、図２に図示しない出力部にエラーを表す情報を出力する。当該出力部は、例えば、表示部である。そして、ＣＰＵ１２１ｂは、図１２に表す処理を終了する。
【０１４６】
図１３は、図２に表すコントローラ１０６ｂにおけるＰＧモジュールの交換の際にＣＰＵ１２１ａが行う処理の処理フロー例を表す概念図である。
【０１４７】
ＣＰＵ１２１ａは、例えば、外部からの開始情報の入力により図１３に表す処理を開始する。
【０１４８】
そして、ＣＰＵ１２１ａは、Ｓ２０１の処理として、図３に表す第二アップデート状態フラグ２３０ａの切離し開始フラグの値が１であるかについての判定を行う。同処理は、図３に表すアップデート監視デーモン２１０ａによる処理である。同処理は、図６の（１）の動作に対応する。
【０１４９】
ＣＰＵ１２１ａは、Ｓ２０１の処理による判定結果がｙｅｓの場合は、Ｓ２０６の処理を行う。
【０１５０】
一方、ＣＰＵ１２１ａは、Ｓ２０１の処理による判定結果がｎｏの場合は、Ｓ２０２の処理を行う。
【０１５１】
ＣＰＵ１２１ａは、Ｓ２０２の処理を行う場合は、同処理として、図２に表すホスト９００からデータを受けたかについての判定を行う。同処理は、図３に表すＩ／Ｏ制御ＰＧ２０２ａが行う処理である。
【０１５２】
ＣＰＵ１２１ａは、Ｓ２０２の処理による判定結果がｙｅｓの場合は、Ｓ２０３の処理を行う。
【０１５３】
一方、ＣＰＵ１２１ａは、Ｓ２０２の処理による判定結果がｎｏの場合は、Ｓ２０２の処理を再度行う。
【０１５４】
ＣＰＵ１２１ａは、Ｓ２０３の処理を行う場合は、同処理として、Ｓ２０２の処理により送付を受けたことを判定したデータを、図２に表すＬｏｃａｌ−Ｍｅｍｏｒｙ１２６ａが保持する図３に表すキャッシュデータ２２４ａを格納する部分に格納する。同処理は、図３に表すキャッシュｈｉｔ判定ＰＧ２０４ａによる処理である。
【０１５５】
そして、ＣＰＵ１２１ａは、Ｓ２０４の処理として、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａが保持する図３に表す第二キャッシュ管理情報２２８ａの更新を行う。同処理は、図３に表すキャッシュｈｉｔ判定ＰＧ２０４ａによる処理である。
【０１５６】
そして、ＣＰＵ１２１ａは、Ｓ２０５の処理として、Ｓ２０３の処理により格納したキャッシュデータの、図２に表すＬｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂにおける図３に表すキャッシュデータ２２４ｂを格納する部分への転送指示を行う。ＣＰＵ１２１ａは、当該転送指示を、図２に表すＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａに対して行う。同処理は、図３に表すコントローラ間通信制御ＰＧ２０８ａによる処理である。ＣＰＵ１２１ａは、当該転送指示の際に、前記データを格納する格納先のアドレスの指定を行わない。Ｓ２０５の処理の段階では、図３に表すＰＧモジュール２００ｂは動作している。従い、キャッシュｈｉｔ判定ＰＧ２０４ａが、前記データを格納する格納先のアドレスの指定を行う。
【０１５７】
なお、前述のＳ２０２乃至Ｓ２０５の処理は、コントローラ１０６ａにおいてＰＧモジュール２００ｂの交換が行われない通常時の処理である。Ｓ２０２乃至Ｓ２０５の処理に対応する動作は、図４乃至図１１には記述されていない。
【０１５８】
ＣＰＵ１２１ａは、Ｓ２０６の処理を行う場合は、同処理として、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂが保持する第一キャッシュ管理情報２２２ｂの内容を、第二キャッシュ管理情報２２８ａの格納部分に転送させ、格納させる。ＣＰＵ１２１ａは、同処理を、図２に表すＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａに転送指示を行うことにより行う。当該指示を受けて、ＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａ及び１３１ｂは、第一キャッシュ管理情報２２２ｂを、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａにおける第二キャッシュ管理情報２２８ａの格納部分に格納する。同処理は、図３に表すコントローラ間通信制御ＰＧ２０８ａによる処理である。
【０１５９】
そして、ＣＰＵ１２１ａは、Ｓ２０７の処理として、図２に表すホスト９００からデータを受けたかについての判定を行う。同処理は、図３に表すＩ／Ｏ制御ＰＧ２０２ａが行う処理である。
【０１６０】
ＣＰＵ１２１ａは、Ｓ２０７の処理による判定結果がｙｅｓの場合は、Ｓ２０８の処理を行う。
【０１６１】
一方、ＣＰＵ１２１ａは、Ｓ２０７の処理による判定結果がｎｏの場合は、Ｓ２０７の処理を再度行う。
【０１６２】
ＣＰＵ１２１ａは、Ｓ２０８の処理を行う場合は、同処理として、Ｓ２０７の処理により送付を受けたことを判定したデータを、図２に表すＬｏｃａｌ−Ｍｅｍｏｒｙ１２６ａにおける図３に表すキャッシュデータ２２４ａの格納部分に格納する。同処理は、図３に表すキャッシュｈｉｔ判定ＰＧ２０４ａによる処理である。
【０１６３】
そして、ＣＰＵ１２１ａは、Ｓ２０９の処理として、Ｓ２０８の処理により格納したデータを格納する予定の、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂにおける図３に表すキャッシュデータ２２４ｂの格納部分のアドレスを特定する。ＣＰＵ１２１ａは、また、同処理として、後述のＳ２１１の処理により第二キャッシュ管理情報２２８ａの更新分を格納する予定の、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂにおける第一キャッシュ管理情報２２２ｂ格納部分のアドレスを特定する。
【０１６４】
ＣＰＵ１２１ａは、これらの特定を、図３に表す第二キャッシュ管理情報２２８ａを参照することにより行う。同処理は、図３に表すキャッシュｈｉｔ判定ＰＧ２０４ａによる処理である。同処理は、図８の（１）の動作に対応する。
【０１６５】
そして、ＣＰＵ１２１ａは、Ｓ２１０の処理として、Ｓ２０８の処理により格納したデータのＬｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂにおける図３に表すキャッシュデータ２２４ｂの格納部分への転送を、図２に表すＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａに指示する。同処理は、図３に表すコントローラ間通信制御ＰＧ２０８ａによるものである。同処理は、また、図８の（２）の動作に対応する。
【０１６６】
その際に、ＣＰＵ１２１ａは、Ｓ２０９の処理により特定した、前記データを格納する、キャッシュデータ２２４ｂにおけるアドレスを指定する。Ｓ２１１の処理の際には、図３に表すＰＧモジュール２００ｂは、コントローラ１０６ａから切り離されている。そのため、キャッシュｈｉｔ判定ＰＧ２０４ａは、キャッシュデータ２２４ｂにおける前記データを格納するアドレスの指定を行うことができない。従い、ＣＰＵ１２１ａが前記データを格納するアドレスの指定を行う。
【０１６７】
そして、ＣＰＵ１２１ａは、Ｓ２１１の処理として、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ａが保持する図３に表す第二キャッシュ管理情報２２８ａの更新を行う。同処理は、図３に表すキャッシュｈｉｔ判定ＰＧ２０４ａによる処理である。同処理は、図８の（３）の動作に対応する。
【０１６８】
そして、ＣＰＵ１２１ａは、Ｓ２１２の処理として、Ｓ２１１の処理により更新した図３に表す第二キャッシュ管理情報２２８ａの更新部分の転送を、図２に表すＰＣＩｅ−ＳＷ−Ｃｈｉｐ１３１ａに指示する。当該転送は、Ｌｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂにおける図３に表す第一キャッシュ管理情報２２２ｂの格納部分への転送である。同処理は、図３に表すコントローラ間通信制御ＰＧ２０８ａによる処理である。同処理は、図８の（４）の動作に対応する。
【０１６９】
その際に、ＣＰＵ１２１ａは、Ｓ２０９の処理により特定した、前記更新部分を格納する、前記格納部分におけるアドレスを指定する。Ｓ２１１の処理の際には、図３に表すＰＧモジュール２００ｂは、コントローラ１０６ａから切り離されている。そのため、キャッシュｈｉｔ判定ＰＧ２０４ａは、前記格納部分における前記更新部分を格納するアドレスの指定を行うことができない。そのため、ＣＰＵ１２１ａが前記更新部分を格納するアドレスの指定を行う。
【０１７０】
Ｓ２０５の処理又はＳ２１２の処理が終了すると、ＣＰＵ１２１ａは、Ｓ２１３の処理を行う。
【０１７１】
ＣＰＵ１２１ａは、Ｓ２１３の処理を行う場合は、同処理として、Ｓ２０５の処理又はＳ２１０及びＳ２１２の処理に係る転送指示に係る転送が正常に行われたかについての判定を行う。ＣＰＵ１２１ａは、当該判定を、例えば、転送先であるＬｏｃａｌ−Ｍｅｍｏｒｙ１２６ｂからのＲｅｓｐｏｎｓｅが発行されたかを判定することにより行う。
【０１７２】
ＣＰＵ１２１ａは、Ｓ２１４の処理による判定結果がｙｅｓの場合は、図１３に表す処理を終了する。
【０１７３】
一方、ＣＰＵ１２１ａは、Ｓ２１４の処理による判定結果がｎｏの場合は、Ｓ２０１の処理を再度行う。
【０１７４】
図１４は、ＣＰＵ１２１ａ及び１２１ｂが行う、フラグ情報の転送指示処理の処理フロー例を表す概念図である。
【０１７５】
図１４の処理は、ＣＰＵ１２１ａが行う場合は、アップデート監視デーモン２１０ａにより行われる。また、図１４の処理は、ＣＰＵ１２１ｂが行う場合は、アップデート監視デーモン２１０ｂにより行われる。
【０１７６】
また、同処理をＣＰＵ１２１ａが行う場合は、監視対象は、第一アップデート状態フラグ２２６ａ及び第二アップデート状態フラグ２３０ａのいずれかに含まれる、キャッシュ操作停止フラグ又は切離し開始フラグである。
【０１７７】
また、同処理をＣＰＵ１２１ａが行う場合は、監視対象は、第一アップデート状態フラグ２２６ｂ及び第二アップデート状態フラグ２３０ｂのいずれかに含まれる、キャッシュ操作停止フラグ又は切離し開始フラグである。
【０１７８】
以下、ＣＰＵ１２１ａ及び１２１ｂのいずれかを単にＣＰＵという。
【０１７９】
ＣＰＵは、例えば、外部からの開始情報の入力により、図１４に表す処理を開始する。
【０１８０】
そして、ＣＰＵは、Ｓ３０１の処理として、監視対象のフラグ値の監視を開始する。
【０１８１】
そして、ＣＰＵは、Ｓ３０２の処理として、監視対象のフラグ値が変化したかについての判定を行う。
【０１８２】
ＣＰＵは、Ｓ３０２の処理による判定結果がｙｅｓの場合は、Ｓ３０３の処理を行う。
【０１８３】
一方、ＣＰＵは、Ｓ３０２の処理による判定結果がｎｏの場合は、Ｓ３０２の処理を再度行う。
【０１８４】
ＣＰＵは、Ｓ３０３の処理を行う場合は、同処理として、Ｓ３０２の処理により変化したことを判定したフラグ値の転送先への転送を、そのＣＰＵが属するコントローラに属するＰＣＩｅ−ＳＷ−Ｃｈｉｐに行わせる。同処理は、そのＣＰＵが属するコントローラに係る図３に表すコントローラ間通信ＰＧにより行われる処理である。
【０１８５】
前記転送先は、監視対象フラグが第一アップデート状態フラグ２２６ａ、２２６ｂのキャッシュ操作停止フラグである場合は、この順に、第二アップデート状態フラグ２３０ａ、２３０ｂのキャッシュ操作停止フラグである。
【０１８６】
また、前記転送先は、監視対象フラグが第一アップデート状態フラグ２２６ａ、２２６ｂの切離し開始フラグである場合は、この順に、第二アップデート状態フラグ２３０ａ、２３０ｂの切離し開始フラグである。
【０１８７】
また、前記転送先は、監視対象フラグが第二アップデート状態フラグ２３０ａ、２３０ｂのキャッシュ操作停止フラグである場合は、この順に、第一アップデート状態フラグ２２６ａ、２２６ｂのキャッシュ操作停止フラグである。
【０１８８】
また、前記転送先は、監視対象フラグが第二アップデート状態フラグ２３０ａ、２３０ｂの切離し開始フラグである場合は、この順に、第一アップデート状態フラグ２２６ａ、２２６ｂの切離し開始フラグである。
【０１８９】
前記転送指示を受けて、ＣＰＵの属するコントローラに属するＰＣＩｅ−ＳＷ−Ｃｈｉｐ及びメイトコントローラのＰＣＩｅ−ＳＷ−Ｃｈｉｐは、転送指示があったフラグの値を、前述の転送先に転送し、格納させる。ここで、メイトコントローラは、他方のコントローラをいう。
【０１９０】
そして、ＣＰＵは、Ｓ３０４の処理として、図１４に表す処理を終了するかについての判定を行う。
【０１９１】
ＣＰＵは、Ｓ３０４の処理による判定結果がｙｅｓの場合は、図１４に表す処理を終了する。
【０１９２】
一方、ＣＰＵは、Ｓ３０４の処理による判定結果がｎｏの場合は、Ｓ３０１の処理を再度行う。
【０１９３】
図１４に表す処理には、図１２に表すＳ１０２、Ｓ１０７及びＳ１１４の処理が含まれる。また、図１４に表す処理は、図４の（３）の動作、図５の（３）の動作及び図９の（３）の動作、図９の（２）の動作の各々に対応する処理が含まれる。
［効果］
第二実施形態のストレージシステムは、第二コントローラに係るストレージ制御プログラムである第二ＰＧモジュールを交換する際に、以下の動作を行う。
【０１９４】
すなわち、前記ストレージシステムは、まず、第二コントローラにおける外部からのデータの受領を停止し、前記第二ＰＧモジュールの交換を開始する。
【０１９５】
そして、前記ストレージシステムは、前記第二コントローラに係るキャッシュ管理情報を第一コントローラにコピーする。
【０１９６】
前記第一コントローラは、前記交換中に、第一コントローラが外部からデータの送付を受けると、前記データと前記データの管理情報とを、格納する。
【０１９７】
前記第一コントローラは、また、第二コントローラに格納させる。
【０１９８】
そして、前記交換が完了すると、前記ストレージシステムは、第二コントローラにおける外部からのデータの受領の停止を解除し、交換後の第二ＰＧモジュールによる処理を開始させる。
【０１９９】
前記ストレージシステムは、前記動作により、前記第二ＰＧモジュールの交換中に外部からのデータの記録動作を行っても、第二コントローラが格納するデータ及びデータ管理情報を、通常動作時と同様の内容にすることができる。当該通常動作は、前記第二ＰＧモジュールの交換を行わずに行う前記ストレージシステムの動作である。すなわち、前記ストレージシステムは、プログラム交換中に記録動作を行わせても、記録するためのデータの二重化を行うことができる。そのため、ストレージシステムは、プログラム交換中にライトバック動作を行ってもデータが消失しない。
【０２００】
図１５は、実施形態の制御装置の最小限の構成である制御装置１０１ｘの構成を表す概念図である。
【０２０１】
制御装置１０１ｘは、入力されたデータの記憶を行った後に、前記データの記録装置への記録を行うコントローラからなるコントローラ群を備える。前記コントローラ群には、図１５に表す第一コントローラ１０６ａｘと第二コントローラ１０６ｂｘとが含まれる。
【０２０２】
制御装置１０１ｘは、第二コントローラ１０６ｂｘに導入された、前記記録を行うためのプログラムを新しいものに交換する際に、以下の処理を行う。
【０２０３】
制御装置１０１ｘは、まず、第二コントローラ１０６ｂｘにおける前記データの受信を不能にする。
【０２０４】
そして、制御装置１０１ｘは、第二コントローラ１０６ｂｘが格納している前記記憶に係る管理情報である第一管理情報の、前記コントローラである第一コントローラ１０６ａｘへの転送と第一コントローラ１０６ａｘにおける格納とを行う。
【０２０５】
前記交換中に第一コントローラ１０６ａｘに前記入力が行われた前記データである交換中データについて、第一コントローラ１０６ａｘが前記記憶を行う。それとともに、第一コントローラ１０６ａｘから第二コントローラ１０６ｂｘへの第二転送と第二コントローラ１０６ｂｘによる前記記憶とを行う。
【０２０６】
前記交換中データに係る前記第一管理情報について、第一コントローラ１０６ａｘが前記格納を行うとともに、第一コントローラ１０６ａｘから第二コントローラ１０６ｂｘへの第三転送と第二コントローラ１０６ｂｘにおける前記格納とを行う。
【０２０７】
前記交換の後に、前記データの第二コントローラ１０６ｂｘにおける前記受信を可能にする。
【０２０８】
制御装置１０１ｘは、前記動作により、前記プログラム交換中に前記データの記録を行っても、第二コントローラ１０６ｂｘが前記記憶する前記データ及び前記格納するデータ管理情報を、通常動作時と同様な内容にすることができる。ここで、通常動作は、前記ストレージシステムが、前記プログラムの交換を行わずに行う記録動作である。すなわち、制御装置１０１ｘは、プログラム交換中に動作させても、記録するデータの二重化を行うことができる。
【０２０９】
そのため、制御装置１０１ｘは、前記構成により、［発明の効果］の項に記載した効果を奏する。
【０２１０】
なお、制御装置１０１ｘは、例えば、図１又は図２に表すストレージシステム１０１の、コントローラ１０６ａと１０６ｂとを含む部分である。また、第一コントローラ１０６ａｘは、例えば、図１又は図２に表すコントローラ１０６ａである。第二コントローラ１０６ｂｘは、例えば、図１又は図２に表すコントローラ１０６ｂである。また、前記記録部は、例えば、図１又は図２に表すＨＤＤ群１５０である。また、前記プログラムは、例えば、図３に表すＰＧモジュール２００ｂである。また、前記第一転送は、例えば、図６に表す（２）の動作である。また、前記第二転送は、例えば、図８に表す（２）の動作である。また、前記第三転送は、例えば、図８に表す（４）の動作である。
【０２１１】
以上、本発明の各実施形態を説明したが、本発明は、前記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で更なる変形、置換、調整を加えることができる。例えば、各図面に示した要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【０２１２】
また、前記の実施形態の一部又は全部は、以下の付記のようにも記述され得るが、以下には限られない。
（付記１）
入力されたデータの記憶を行った後に、前記データの記録装置への記録を行うコントローラからなるコントローラ群を備える制御装置であって、
前記コントローラである第二コントローラに導入された、前記記録を行うためのプログラムを新しいものに交換する際に、
第二コントローラにおける前記データの受信を不能にし、
前記第二コントローラが格納している前記記憶に係る管理情報である第一管理情報の、前記コントローラである第一コントローラへの第一転送と前記第一コントローラにおける格納とを行い、
前記交換を行っている間に前記第一コントローラに前記入力が行われた前記データである交換中データについて、前記第一コントローラが前記記憶を行うとともに、前記第一コントローラから前記第二コントローラへの第二転送と前記第二コントローラによる前記記憶とを行い、
前記交換中データに係る前記第一管理情報について、前記第一コントローラが前記格納を行うとともに、前記第一コントローラから前記第二コントローラへの第三転送と前記第二コントローラにおける前記格納とを行い、
前記交換の後に、前記データの前記第二コントローラにおける前記受信を可能にする、
制御装置。
（付記２）
前記第二コントローラが前記不能を表す第一情報を前記第一コントローラに送る、付記１に記載された制御装置。
（付記３）
前記第二コントローラが前記不能の後に、前記第二コントローラにおけるキャッシュメモリに関する処理であるキャッシュ処理の終了を判定することにより、その旨を表す第二情報を、前記第一コントローラに送る、付記１又は付記２に記載された制御装置。
（付記４）
前記第一コントローラが、前記第二情報により、前記第二転送及び前記第三転送を行う、付記３に記載された制御装置。
（付記５）
前記第二コントローラが前記不能の後に、前記プログラムの切離しを行う、付記１乃至付記４のうちのいずれか一に記載された制御装置。
（付記６）
前記切離しがｄｅｔａｃｈによるものである、付記５に記載された制御装置。
（付記７）
前記切離し後に前記交換が行われる、付記５又は付記６に記載された制御装置。
（付記８）
前記切離し後に前記新しいものの取付けが行われる、付記５乃至付記７のうちのいずれか一に記載された制御装置。
（付記９）
前記取付けがａｔｔａｃｈによるものである、付記８に記載された制御装置。
（付記１０）
前記取付けが終わるとその旨を表す第三情報を、前記第二コントローラが、前記第一コントローラに送付する、付記８又は付記９に記載された制御装置。
（付記１１）
前記第三情報により、前記第一コントローラが、前記第一転送及び前記第二転送を中止する、付記１０に記載された制御装置。
（付記１２）
前記第一コントローラが、前記中止により、その旨を表す第四情報を、前記第二コントローラに送付する、付記１１に記載された制御装置。
（付記１３）
前記第二コントローラが、前記第四情報により、前記第二コントローラにおけるキャッシュメモリに関する処理の再開を行う、付記１２に記載された制御装置。
（付記１４）
前記第二コントローラが、前記再開により、前記受信を前記可能にする、付記１３に記載された制御装置。
（付記１５）
前記コントローラの各々が、前記第一転送及び前記第二転送を行うための通信部を備える、付記１乃至付記１４のうちのいずれか一に記載された制御装置。
（付記１６）
前記通信部が、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｓｏｆｔｗａｒｅ  Ｃｈｉｐである、付記１５に記載された制御装置。
（付記１７）
前記入力に、外部からの前記入力と、他の前記コントローラからの前記入力とが含まれる、付記１乃至付記１６のうちのいずれか一に記載された制御装置。
（付記１８）
前記コントローラの各々が、前記記憶及び前記格納を行うためのメモリを備える、付記１乃至付記１７のうちのいずれか一に記載された制御装置。
（付記１９）
前記コントローラの各々が、前記プログラムによる処理を行うための処理部を備える、付記１乃至付記１８のうちのいずれか一に記載された制御装置。
（付記２０）
前記処理部が中央演算処理装置である、付記１９に記載された制御装置。
（付記２１）
前記記録装置がハードディスク装置である、付記１乃至付記２０のうちのいずれか一に記載された制御装置。
（付記２２）
付記１乃至２１のうちのいずれか一に記載された制御装置と前記記録装置とを備える記録システム。
（付記２３）
入力されたデータを記憶した後に記録装置への記録を行うコントローラからなるコントローラ群を備える制御装置の、前記コントローラである第二コントローラに導入された、前記記録を行うためのプログラムを新しいものに交換するプログラム交換方法であって、
第二コントローラへの前記入力の停止を行い、
前記第二コントローラが格納する前記記憶に係る管理情報である第一管理情報を、前記コントローラである第一コントローラにも前記格納させ、
前記交換を開始し、
前記交換を行っている間に前記第一コントローラに前記入力がされたデータである交換中データを前記第二コントローラに前記記憶させ、その交換中データに係る前記管理情報である第二管理情報を前記第二コントローラに前記格納させ、
前記交換の終了後に、前記データの前記第二コントローラへの前記入力を再開させる、
プログラム交換方法。
【符号の説明】
【０２１３】
１０１    ストレージシステム
１０１ｘ    制御装置
１０６ａ、１０６ｂ    コントローラ
１０６ａｘ    第一コントローラ
１０６ｂｘ    第二コントローラ
１１１ａ、１１１ｂ    Ｐｏｒｔ
１１６ａ、１１６ｂ    Ｈｏｓｔ−Ｐｏｒｔ−Ｃｈｉｐ
１２１ａ、１２１ｂ    ＣＰＵ
１２６ａ、１２６ｂ    Ｌｏｃａｌ−Ｍｅｍｏｒｙ
１３１ａ、１３１ｂ    ＰＣＩｅ−ＳＷ−Ｃｈｉｐ
１３６ａ、１３６ｂ    Ｄｉｓｋ−Ｐｏｒｔ−Ｃｈｉｐ
１４１ａ、１４１ｂ    Ｅｘｉｔ−Ｐｏｒｔ
１５０    ＨＤＤ群
１５１、１５２、１５（ｎ−１）、１５ｎ    ＨＤＤ
２０２ａ、２０２ｂ    Ｉ／Ｏ制御ＰＧ
２０４ａ、２０４ｂ    キャッシュｈｉｔ判定ＰＧ
２０６ａ、２０６ｂ    Ｄｉｓｋ制御ＰＧ
２０８ａ、２０８ｂ    コントローラ間通信制御ＰＧ
２１０ａ、２１０ｂ    アップデート監視デーモン
２２０ａ、２２０ｂ    制御メモリ情報
２２２ａ、２２２ｂ    第一キャッシュ管理情報
２２４ａ、２２４ｂ    キャッシュデータ
２２６ａ、２２６ｂ    第一アップデート状態フラグ
２２８ａ、２２８ｂ    第二キャッシュ管理情報
２３０ａ、２３０ｂ    第二アップデート状態フラグ
２４０ａ、２４０ｂ    コントローラＳＷ
９００    ホスト
【図１】
2019125292.tif 000003
【図２】
2019125292.tif 000004
【図３】
2019125292.tif 000005
【図４】
2019125292.tif 000006
【図５】
2019125292.tif 000007
【図６】
2019125292.tif 000008
【図７】
2019125292.tif 000009
【図８】
2019125292.tif 000010
【図９】
2019125292.tif 000011
【図１０】
2019125292.tif 000012
【図１１】
2019125292.tif 000013
【図１２】
2019125292.tif 000014
【図１３】
2019125292.tif 000015
【図１４】
2019125292.tif 000016
【図１５】
2019125292.tif 000017