(57)【要約】【課題】  ストレージ装置の制御装置を構成する回路基板においてクライアントに対するサービスを継続したままファームウェアの更新を行うことのできる技術を提供する。【解決手段】  制御装置１００を構成する複数のブレード１０は、フラッシュメモリ１５上に旧ＢＩＯＳ２０を有する。ファームウェア更新対象となるブレード１０を含んでクラスタが構成される。ファームウェア更新の際、更新対象基板について、ファームウェア更新処理の実行対象となるブレード１０のＯＳ２１で提供しているサービスをクラスタ内の他ブレード１０のＯＳ２１へ移動する処理と、サービス非提供状態となったブレード１０の旧ＢＩＯＳ２０についてＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３を用いて更新するファームウェア更新処理とを含む処理単位を実行する。【選択図】  図４
2006031312.tif 000002
【特許請求の範囲】
【請求項１】
記憶デバイスと、前記記憶デバイスにデータを記憶する制御を行う複数の回路基板を有して成る制御装置とを有し、
前記回路基板は、ＣＰＵと、前記ＣＰＵと記憶デバイスとの間の入出力を制御する入出力プロセッサと、前記ＣＰＵと入出力プロセッサが作業用に使用するメモリと、ファームウェアを保持する不揮発性メモリと、ネットワーク制御部とを有し、第１のネットワークを通じて接続される情報処理装置に対し前記ＣＰＵ上で稼動するＯＳにより前記データの入出力に関するサービスを提供し、前記ファームウェアの更新対象となる回路基板を含んでクラスタが構成され、
前記制御装置は、前記クラスタ内の回路基板上のＯＳ間で前記サービスを引き継ぐサービス移動機能を有し、
前記ファームウェアの更新の際、ファームウェア更新対象となる回路基板について、
ファームウェア更新処理を実行する対象となる回路基板のＯＳで提供しているサービスを、前記サービス移動機能により前記クラスタ内の他の回路基板のＯＳへ移動するサービス移動処理と、
前記サービスの移動によりサービス非提供状態となった回路基板についてファームウェア更新プログラムと新ファームウェアイメージを用いて前記不揮発性メモリ上のファームウェアを新ファームウェアに更新するファームウェア更新処理とを含む処理単位を実行することを特徴とするストレージ装置。
【請求項２】
請求項１記載のストレージ装置において、
前記ファームウェア更新処理では、前記サービスの移動によりサービス非提供状態となった回路基板について、
前記入出力プロセッサの制御に基づき前記ＯＳをシャットダウンし前記ＣＰＵをリセットしてリブートし前記不揮発性メモリ上の旧ファームウェアを起動させ、
前記起動された旧ファームウェアが前記メモリに前記ファームウェア更新プログラムをロードして制御を移し、
前記ファームウェア更新プログラムが、前記新ファームウェアイメージを前記メモリにロードして前記新ファームウェアイメージを前記不揮発性メモリにライトして更新し、前記ＣＰＵをリセットして前記更新後の新ファームウェアを起動させ、
前記起動された新ファームウェアにより前記ＯＳが起動され、前記入出力プロセッサがファームウェア更新完了の通知を行うことを特徴とするストレージ装置。
【請求項３】
請求項２記載のストレージ装置において、
前記回路基板の入出力プロセッサは、前記ＣＰＵの状態を監視して、前記ＯＳについての稼動やインストールの状態を表わすＯＳ状態情報を、前記回路基板の入出力プロセッサがアクセス可能な共有メモリに格納し、前記共有メモリ上のＯＳ状態情報を参照することで前記ＯＳのシャットダウンの要否や前記回路基板間でのサービスの移動についての判断を行うことを特徴とするストレージ装置。
【請求項４】
請求項１記載のストレージ装置において、
前記サービス移動処理とファームウェア更新処理の実行によりファームウェア更新が完了した回路基板について、前記サービス移動機能により、前記クラスタ内の他の回路基板のＯＳへ移動していたサービスを戻す処理を行うことを特徴とするストレージ装置。
【請求項５】
請求項１記載のストレージ装置において、
前記ファームウェア更新対象となる回路基板について、そのうちの一つ以上の回路基板を単位として、前記サービス移動処理と前記ファームウェア更新処理とを含む処理単位を順次に実行することを特徴とするストレージ装置。
【請求項６】
請求項１記載のストレージ装置において、
前記ファームウェア更新対象となる回路基板について、そのうちの複数の回路基板を単位として、前記サービス移動処理と前記ファームウェア更新処理とを含む処理単位を同時並行的に実行することを特徴とするストレージ装置。
【請求項７】
請求項１記載のストレージ装置において、
前記回路基板の入出力プロセッサは、第２のネットワークを通じて保守装置に接続され、
前記保守装置は、前記ファームウェア更新に係わる操作のために、前記第２のネットワークを通じた前記回路基板との通信をもとに前記サービス移動処理と前記ファームウェア更新処理の状況や指示の情報を入出力する更新管理処理を行い、
前記保守装置は、前記ファームウェア更新の際、前記ファームウェア更新プログラムと新ファームウェアイメージを前記回路基板の入出力プロセッサへ送信する処理を行い、
前記保守装置から前記回路基板の入出力プロセッサへの指示に応じて、前記入出力プロセッサの制御に基づき前記回路基板で前記ファームウェア更新処理を実行することを特徴とするストレージ装置。
【請求項８】
請求項１記載のストレージ装置において、
前記情報処理装置として管理用プログラムを備えた管理用の情報処理装置を有し、
前記サービス移動処理では、
前記管理用の情報処理装置が、前記ファームウェア更新処理を実行する対象となる回路基板のＯＳに対して前記サービスの移動のための指示を前記第１のネットワークを介して送信する処理を行い、
前記回路基板のＯＳが、前記管理用の情報処理装置からの指示に基づき前記クラスタ内の回路基板のＯＳ間でサービスの移動を行うことを特徴とするストレージ装置。
【請求項９】
請求項７記載のストレージ装置において、
前記回路基板の入出力プロセッサがアクセス可能な共有メモリを有し、
前記保守装置は、前記ファームウェア更新対象となる複数の回路基板のうち、任意の回路基板の入出力プロセッサを代表として、前記ファームウェア更新プログラムと新ファームウェアイメージを送信する処理を行い、
前記代表の入出力プロセッサは、前記ファームウェア更新プログラムと新ファームウェアイメージを前記共有メモリに格納する処理を行い、
前記ファームウェア更新対象となる複数の回路基板は、前記共有メモリ上に格納されている前記ファームウェア更新プログラムと新ファームウェアイメージを利用して前記ファームウェア更新処理を行うことを特徴とするストレージ装置。
【請求項１０】
請求項７記載のストレージ装置において、
前記情報処理装置として管理用プログラムを備えた管理用の情報処理装置を有し、
前記ファームウェアの更新の際、
前記管理用の情報処理装置は、前記保守装置での更新管理処理に基づき、前記サービスの移動のための指示を前記第１のネットワークを通じて前記回路基板に対して送信する処理を行って、前記指示に基づき前記クラスタ内の回路基板上のＯＳ間でサービスの移動を行わせ、
前記サービスの移動後、前記保守装置は、前記ファームウェア更新処理を実行する対象となる回路基板の入出力プロセッサに対しファームウェア更新の指示を送信する処理を行って、前記指示に基づき前記ファームウェア更新処理を行わせることを特徴とするストレージ装置。
【請求項１１】
請求項７記載のストレージ装置において、
前記ファームウェアの更新の際、
前記保守装置は、前記回路基板の入出力プロセッサに対し前記第２のネットワークを通じてファームウェア更新の指示を送信する処理を行い、
前記回路基板の入出力プロセッサは、前記保守装置からの指示に基づき、前記ＯＳに対しサービス移動とシャットダウンのための指示を行い、
前記回路基板のＯＳは、前記入出力プロセッサからの指示に基づき、前記クラスタ内の回路基板上のＯＳ間でサービスを引き継ぐ移動を行ってからシャットダウンを行い、シャットダウン後に前記ファームウェア更新処理を行うことを特徴とするストレージ装置。
【請求項１２】
請求項７記載のストレージ装置において、
前記ファームウェアの更新の際、
前記保守装置は、前記ファームウェア更新処理を実行する対象となる回路基板に対し、前記サービスを中断してファームウェアを更新させるための指示を送信する処理を行い、
前記回路基板は、前記保守装置からの指示に基づき、提供中サービスを中断して前記サービス移動処理は行わず、その後に前記ファームウェア更新処理を行い、前記更新の完了後に担当サービスの提供を開始することを特徴とするストレージ装置。
【請求項１３】
請求項８記載のストレージ装置において、
前記制御装置への前記回路基板の増設時に、前記共有メモリ上に前記新ファームウェアイメージが格納されている場合、
前記増設された回路基板の不揮発性メモリ上のファームウェアのバージョンと、前記共有メモリ上に格納されている前記新ファームウェアイメージのバージョンとを参照して、前記増設された回路基板内のファームウェアについて更新が必要かどうか判断する処理を行い、
前記更新が必要と判断した場合は、前記増設された回路基板において前記入出力プロセッサと第２のネットワークを通じて前記ファームウェア更新プログラムと新ファームウェアイメージを取得して前記不揮発性メモリ上のファームウェアを新ファームウェアに更新するファームウェア更新処理を実行することを特徴とするストレージ装置。
【請求項１４】
請求項８記載のストレージ装置において、
前記制御装置への前記回路基板の増設時に、前記共有メモリ上に前記新ファームウェアイメージが格納されておらず、他の回路基板が動作状態の場合、
前記保守装置から前記第２のネットワークを通じて前記動作状態の回路基板の入出力プロセッサへ指示を行い、
前記指示に基づき前記動作状態の回路基板の入出力プロセッサは、前記ＣＰＵに指示して前記不揮発性メモリから新ファームウェアイメージをリードさせ、前記リードした新ファームウェアイメージを前記共有メモリに格納する処理を行い、
前記増設された回路基板内のファームウェアのバージョンと、前記共有メモリ上に格納された前記新ファームウェアイメージのバージョンとを参照して、前記増設された回路基板内のファームウェアについて更新が必要か判断する処理を行い、
前記更新が必要と判断した場合は、前記増設された回路基板において前記入出力プロセッサと第２のネットワークを通じて前記ファームウェア更新プログラムと新ファームウェアイメージを取得して前記不揮発性メモリ上のファームウェアを新ファームウェアに更新するファームウェア更新処理を実行することを特徴とするストレージ装置。
【請求項１５】
請求項８記載のストレージ装置において、
前記制御装置への前記回路基板の増設時に、前記共有メモリ上に前記新ファームウェアイメージが格納されておらず、他の回路基板が非動作状態の場合、
前記保守装置から前記第２のネットワークを通じて前記増設された回路基板の入出力プロセッサに対し前記ファームウェア更新プログラムと新ファームウェアイメージを送信し、
前記増設された回路基板は、前記ファームウェア更新プログラムと新ファームウェアイメージを前記共有メモリに格納する処理を行い、
前記増設された回路基板内のファームウェアのバージョンと、前記共有メモリ上に格納された前記新ファームウェアイメージのバージョンとを参照して、前記増設された回路基板内のファームウェアについて更新が必要か判断する処理を行い、
前記更新が必要と判断した場合は、前記増設された回路基板において前記不揮発性メモリ上のファームウェアを新ファームウェアに更新するファームウェア更新処理を実行することを特徴とするストレージ装置。
【請求項１６】
請求項８記載のストレージ装置において、
前記制御装置の回路基板の交換時に、
前記交換後の回路基板の不揮発性メモリ上のファームウェアのバージョンと、前記共有メモリ上に格納されている新ファームウェアイメージあるいは前記保守装置から取得した新ファームウェアイメージのバージョンとを参照して、前記交換後の回路基板内のファームウェアについて更新が必要かどうか判断する処理を行い、
前記更新が必要と判断した場合は、前記交換後の回路基板において前記入出力プロセッサと第２のネットワークを通じて前記ファームウェア更新プログラムと新ファームウェアイメージを取得して前記不揮発性メモリ上のファームウェアを新ファームウェアに更新するファームウェア更新処理を実行し、更新完了後に必要に応じて交換前の回路基板で提供していたサービスを引き継いだ他の回路基板から前記サービスを戻す処理を行うことを特徴とするストレージ装置。
【請求項１７】
記憶デバイスと、前記記憶デバイスにデータを記憶する制御を行う複数の回路基板を有して成る制御装置とを有し、
前記回路基板は、ＣＰＵと、前記ＣＰＵが作業用に使用するメモリと、ファームウェアを保持する不揮発性メモリと、ネットワーク制御部とを有し、第１のネットワークを通じて接続される情報処理装置に対し前記ＣＰＵ上で稼動するＯＳにより前記データの入出力に関するサービスを提供し、前記ファームウェアの更新対象となる回路基板を含んでクラスタが構成され、
前記制御装置は、前記クラスタ内の回路基板上のＯＳ間で前記サービスを引き継ぐサービス移動機能を有し、
前記情報処理装置として管理用プログラムを備えた管理用の情報処理装置を有し、
前記ファームウェアの更新の際、ファームウェア更新対象となる回路基板について、
前記管理用の情報処理装置から前記回路基板のＯＳに対し前記第１のネットワークを通じてファームウェア更新のための指示を送信する処理を行い、前記指示に基づき、
前記回路基板のＯＳが提供中サービスを前記サービス移動機能により前記クラスタ内の他の回路基板のＯＳへ移動するサービス移動処理と、
前記サービスの移動によりサービス非提供状態となった回路基板についてファームウェア更新プログラムと新ファームウェアイメージを用いて前記ＯＳで前記ファームウェア更新プログラムを動作させることで前記不揮発性メモリ上のファームウェアを新ファームウェアに更新するファームウェア更新処理とを含む処理単位を実行することを特徴とするストレージ装置。
【請求項１８】
請求項１７記載のストレージ装置において、
前記ファームウェアの更新の際、
前記管理用の情報処理装置は、前記サービス移動処理として、前記回路基板のＯＳに対して前記第１のネットワークを通じて前記サービスの移動のための指示を送信する処理を行い、
前記指示に基づき前記回路基板のＯＳは、前記クラスタ内の回路基板上のＯＳ間でサービスの移動を行い、
前記サービス移動後、前記管理用の情報処理装置から前記ファームウェア更新処理を実行する対象となる回路基板のＯＳに対し前記ファームウェア更新プログラムと新ファームウェアイメージを送信する処理を行い、
前記回路基板のＯＳは、前記前記ファームウェア更新プログラムを実行し前記新ファームウェアイメージを用いて前記ファームウェア更新処理を行うことを特徴とするストレージ装置。
【請求項１９】
請求項１７記載のストレージ装置において、
前記ファームウェアの更新の際、
前記管理用の情報処理装置は、前記回路基板のＯＳに対し前記第１のネットワークを通じてファームウェア更新の指示を送信する処理を行い、
前記回路基板のＯＳは、前記指示に基づき、前記クラスタ内の回路基板上のＯＳ間でサービスを引き継ぐ移動を行ってからシャットダウンを行い、前記シャットダウン後に前記ファームウェア更新処理を行うことを特徴とするストレージ装置。
【請求項２０】
請求項１７記載のストレージ装置において、
前記ファームウェアの更新の際、
前記管理用の情報処理装置は、前記ファームウェア更新処理を実行する対象となる回路基板のＯＳに対し、前記サービスを中断してファームウェアを更新させるための指示を送信する処理を行い、
前記回路基板のＯＳは、前記指示に基づき、提供中サービスを中断して前記サービス移動処理は行わず、その後に前記ファームウェア更新処理を行い、前記更新の完了後に担当サービスの提供を開始することを特徴とするストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置にデータを記憶する制御を行うストレージ装置（ディスクアレイ装置ともいう）に関し、特に、ストレージ装置内の回路基板のＢＩＯＳ（Basic Input Output System）を含むファームウェアの更新を行う技術に関するものである。
【背景技術】
【０００２】
記憶装置にデータを記憶する制御を行うストレージ装置、特に企業等において使用されるストレージ装置では、２４時間・３６５日停止せずに稼動することが求められている。このようなストレージ装置におけるファームウェアの更新（バージョンアップ等）は、他のコンピュータシステムと同様にリブート（再起動）を伴うので、一旦クライアントに対するサービスを中断する必要がある。
【０００３】
従来のストレージ装置、及び、ストレージ装置とクライアントとなる情報処理装置とネットワーク等を含んで構成されるコンピュータシステムでは、ストレージ装置の制御装置を構成する回路基板の起動時に、不揮発性メモリに格納されているファームウェアすなわちＢＩＯＳを含むプログラムによりハードウェアの初期設定を行ってＯＳ（Operating System）の起動を行う。前記ストレージ装置においてファームウェアの更新を行い、かつその更新を有効な状態にするには、前記ファームウェアを使用するシステムの再起動が必要となる。前記ファームウェアを使用するシステムの再起動は、当然のことながら、前記回路基板のＣＰＵ上で稼動するＯＳによるクライアントに対するサービス（プロセス）を一時中断することになる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来では、ストレージ装置においてクライアントへのサービスを継続したまま回路基板のファームウェアの更新を行うことはできなかった。すなわちファームウェアに関する機構上、単独のコンピュータではファームウェア更新のためのＯＳのシャットダウン（稼動停止）及びコンピュータシステム再起動によるサービス中断が避けられなかった。しかしながら、ストレージ装置に期待される機能上、ファームウェアの更新時もサービスを継続ができることが望ましい。
【０００５】
本発明は以上のような問題に鑑みてなされたものであり、その目的は、ストレージ装置においてクライアントに対するサービスを継続したままファームウェアの更新を行うことのできる技術を提供することにある。
【課題を解決するための手段】
【０００６】
前記目的を達成するために、本発明のストレージ装置は、一つ以上の記憶デバイスと、前記記憶デバイスにデータを記憶する制御を行う複数の回路基板（ブレード基板）を有して成る制御装置（記憶デバイス制御装置）とを有し、第１のネットワークを通じて接続される情報処理装置に対し前記ＣＰＵ上で稼動するＯＳにより前記データの入出力に関するサービスを提供する構成において、以下（１）、（２）に示す技術的手段を備えることを特徴とする。
【０００７】
（１）本発明のストレージ装置で、前記回路基板は、ＣＰＵと、前記ＣＰＵと記憶デバイスとの間の入出力を制御する入出力プロセッサ（ＩＯＰ）と、前記ＣＰＵやＩＯＰの作業用となるメモリ（ＲＡＭ等）と、ファームウェア（ＢＩＯＳを含むプログラム）を保持する不揮発性メモリ（フラッシュメモリ等）と、通信処理を行うネットワーク制御部（ＬＡＮコントローラ等）とを有する。前記ＣＰＵ上で稼動するＯＳにより、クライアントとなる情報処理装置からの要求に基づきデータを前記記憶デバイスの記憶領域に入出力するサービスを提供する。前記不揮発性メモリには、ハードウェア初期化及び前記ＯＳの起動を行うためのＢＩＯＳを含むファームウェアが保持される。前記ＯＳは、上位のアプリケーションプログラム等まで含むプログラムとする。このような構成において、前記ファームウェアの更新を行うために、以下のように前記ＩＯＰによる制御を中心にファームウェアの更新を行う。
【０００８】
前記制御装置では、ファームウェア更新対象の回路基板を含んで複数の回路基板が相互に通信可能なように接続されてクラスタを構成し、前記クラスタ内の回路基板のＯＳ間で必要に応じて前記サービスを引き継ぐサービス移動機能を有する。前記クラスタ構成の複数の回路基板において前記ファームウェアの更新の対象となる一つ以上の回路基板（更新対象基板）があるとする。この状態で、前記クラスタ内の更新対象基板について、ファームウェア更新処理の実行対象となる回路基板で提供中のサービスがある場合は前記サービス移動機能を用いて前記サービスをクラスタ内の他の回路基板に移動しながら、サービス非提供状態となった回路基板についてファームウェア更新処理を実行する。すなわち、ファームウェア更新処理の実行対象となる回路基板について、その回路基板のＯＳで提供中のすべてのサービスを前記クラスタ内の他の回路基板に移動して前記ＯＳをシャットダウン可能な状態にするサービス移動処理と、前記サービスの移動によりサービス非提供状態となった回路基板について、ファームウェア更新プログラムと新ファームウェアイメージを用いてその回路基板の不揮発性メモリ上のファームウェア（旧ファームウェア）を新ファームウェアに更新するファームウェア更新処理とを含む処理単位を実行する。前記クラスタ内でサービスの移動先となる他の回路基板は、前記サービスの移動元の回路基板に対するファームウェア更新処理の実行の際にはファームウェア更新処理の実行対象でないが、順次のファームウェア更新処理に従ってこの回路基板に対しファームウェア更新処理を実行する際には更にクラスタ内の他の回路基板にサービスを移動する。
【０００９】
前記ファームウェア更新処理では、前記サービスの移動によりサービス非提供状態となった回路基板について、例えば以下のような処理手順でファームウェアを更新する。まず、前記ＩＯＰの制御に基づき、ＣＰＵ上で稼動するＯＳに対し指示を行ってＯＳをシャットダウンし、ＣＰＵをリセットしてリブートし、これにより不揮発性メモリ上の旧ファームウェア（旧ＢＩＯＳ）を起動させる。そして、起動された旧ファームウェアが回路基板のメモリにファームウェア更新プログラムをロードして、ファームウェア更新プログラムに制御を移す。そして、ファームウェア更新プログラムが、新ファームウェアイメージを回路基板のメモリにロードして、新ファームウェアイメージを不揮発性メモリにライトしてファームウェアを更新し、ＣＰＵをリセットして更新後の新ファームウェア（新ＢＩＯＳ）を起動させる。そして、起動された新ファームウェアによりＯＳが起動され、ＩＯＰがファームウェア更新完了の通知を行う。前記ＣＰＵのリセット後に新ファームウェアが起動されることで前記ファームウェアの更新が有効な状態となる。
【００１０】
また、前記回路基板のＩＯＰは、前記ＣＰＵの状態を監視して、前記ＯＳについての稼動やインストールの状態を表わすＯＳ状態情報を、前記回路基板のＩＯＰがアクセス可能なメモリ例えば前記共有メモリ等に格納する。各基板基板のＩＯＰは、前記ＯＳ状態情報を参照することで前記ＯＳのシャットダウンの要否や前記回路基板間でのサービスの移動についての判断を行う。
【００１１】
また、前記回路基板のＯＳは、クライアントに対するサービス提供のための制御情報、例えばサービスのためのＩＰアドレスやサービス状態等を含むサービス情報や、回路基板と記憶デバイスとのマウント状態等を含むディスク情報等を記憶デバイス上の記憶領域に格納する。前記ＯＳは、前記サービス移動機能によるサービス移動に伴ってこれら制御情報を変更する。
【００１２】
また、前記ファームウェア更新処理が完了してファームウェア更新が有効な状態となった回路基板について、前記ファームウェア更新前に提供していて前記クラスタ内の他の回路基板に引き継いでいるサービスを戻す処理を前記サービス移動機能により行ってもよい。
【００１３】
また、前記更新対象基板について、そのうちの一つ以上の回路基板を単位として、前記クラスタ構成の回路基板のＯＳ間でのサービス移動処理とサービス移動後の回路基板のファームウェア更新処理とを含む処理単位を順次に実行する。前記処理単位の順次の実行により更新対象基板の全ファームウェアの更新を完了し、サービスの提供元の移動を伴いながらサービスの提供が継続される。
【００１４】
また、前記更新対象基板について、更にそのうちの複数の回路基板を単位として、前記サービス移動処理と前記ファームウェア更新処理とを含む処理単位を同時並行的すなわち時間的に略同タイミングで実行する。
【００１５】
また、ファームウェア更新の指示は、例えば、ファームウェア更新処理の実行対象となる回路基板の外部、例えば回路基板のＩＯＰと第２ネットワークを通じて接続される保守装置（保守ＰＣ）から、前記対象の回路基板のＩＯＰに対して行う。指示を受けた回路基板のＩＯＰの制御に基づき前記処理手順でファームウェア更新処理を行う。また、ファームウェア更新処理後に新ファームウェアが有効な状態となると、ＩＯＰが前記保守装置等に対し更新完了の通知を行う。
【００１６】
前記ファームウェア更新処理において、前記旧ファームウェアは、前記ファームウェア更新プログラムが前記回路基板のメモリに既に取得されている場合は前記ロードを行う必要はない。また、前記旧ファームウェアは、前記ファームウェア更新プログラムが、自回路基板の外部のメモリ、例えばストレージ装置内の複数の回路基板が共有してアクセス可能に設けられた共有メモリに格納されている場合は、そのメモリを参照してファームウェア更新プログラムを回路基板内のメモリへロードする。
【００１７】
また、前記ファームウェア更新プログラムは、前記新ファームウェアイメージが回路基板のメモリに既に取得されている場合は前記ロードを行う必要はない。また、前記ファームウェア更新プログラムは、前記新ファームウェアイメージが、自回路基板の外部のメモリ、例えば前記共有メモリに格納されている場合は、その外部のメモリを参照して新ファームウェアイメージを回路基板内のメモリへロードする。
【００１８】
また、前記制御装置を構成する回路基板に第２のネットワークを通じて接続され相互に通信可能な保守装置を有する。前記保守装置は、ファームウェア更新に係わる操作のためのユーザインターフェイスを提供する。すなわち、保守装置は、第２のネットワークを通じた回路基板のＩＯＰとの通信をもとに、前記サービス移動処理と前記ファームウェア更新処理の状況を表わす情報や、その指示のための情報を入出力する更新管理処理を行う。例えば、保守装置は、サービス移動の指示や、サービス移動完了状態やファームウェア更新完了状態等を表示し、またオペレータ（保守員）の操作入力に基づきファームウェア更新指示等を回路基板に対して発行する。
【００１９】
また、前記情報処理装置として管理用プログラムを備えた管理用の情報処理装置を有する。前記サービス移動処理の際、前記管理用の情報処理装置が、前記保守装置での更新管理処理に基づき、前記サービスの移動のための指示を第１のネットワークを通じて対象の回路基板のＯＳに対して送信する処理を行う。回路基板のＯＳが、前記指示に基づきクラスタ内の回路基板のＯＳ間でサービスの移動を行う。
【００２０】
前記ファームウェア更新処理に必要となる前記ファームウェア更新プログラムと新ファームウェアイメージは、例えば保守装置が取得して保守装置から前記回路基板のＩＯＰに対して送信することで提供する。前記ファームウェア更新プログラムは回路基板にファームウェア更新のための処理を行わせるためのプログラムである。前記新ファームウェアイメージは、更新後の新ファームウェアとなるコードを含んだデータである。前記保守装置は、前記第２のネットワークを通じて、前記ファームウェア更新対象の回路基板のうち、任意の回路基板のＩＯＰを代表ＩＯＰとして、前記ファームウェア更新プログラムと新ファームウェアイメージとを送信して、その回路基板内のメモリに取得させる。そして、前記回路基板の代表ＩＯＰから、前記ファームウェア更新プログラムと新ファームウェアイメージを、その回路基板の外部のメモリ、例えば前記共有メモリへと格納させる。前記回路基板の外部のメモリにファームウェア更新プログラムと新ファームウェアイメージを格納することで、ファームウェア更新対象となる複数の回路基板が前記外部のメモリ上に格納されたデータをファームウェア更新処理に利用できる。
【００２１】
前記ファームウェア更新対象となる回路基板の選択及び前記ファームウェア更新処理の同時平行的な実行対象となる回路基板の選択については、ストレージ装置の設定に従って自動的になされるように制御される。あるいは、前記選択は、ファームウェアの更新を実行したい際に前記保守装置を操作する保守員や前記クライアントとなる情報処理装置を操作するユーザ側管理者等が選択操作して、これに基づき処理が制御される。
【００２２】
また、ファームウェア更新のための一処理方法として、ファームウェア更新の際、前記管理用の情報処理装置は、前記保守装置での更新管理処理に基づき、前記サービスの移動のための指示を前記第１のネットワークを通じて前記回路基板のＯＳに対して送信する処理を行って、前記クラスタ内の回路基板上のＯＳ間でサービスの移動を行わせ、前記サービス移動後、前記保守装置は、前記ファームウェア更新処理の実行対象となる回路基板のＩＯＰに対しファームウェア更新の指示を送信する処理を行って、前記ファームウェア更新処理を行わせる。
【００２３】
また、ファームウェア更新のための一処理方法として、ファームウェア更新の際、前記保守装置は、前記回路基板のＩＯＰに対し第２のネットワークを通じてファームウェア更新の指示を送信する処理を行い、前記回路基板のＩＯＰは、前記保守装置からの指示を受信して、前記ＯＳに対しサービス移動とシャットダウンのための指示を行い、前記回路基板のＯＳは、ＩＯＰからの指示に基づき、前記クラスタ内の回路基板上のＯＳ間でサービスを引き継ぐ移動を行ってからシャットダウンを行い、前記ＯＳのシャットダウン後、前記ファームウェア更新処理を行う。
【００２４】
また、ファームウェア更新のための一処理方法として、ファームウェア更新の際、前記保守装置は、前記ファームウェア更新処理の実行対象となる回路基板に対し、前記サービスを中断してファームウェアを更新させるための指示を送信する処理を行い、前記回路基板は、前記保守装置からの指示に基づき、提供中のサービスが有れば中断して前記サービス移動処理は行わず、その後に前記ファームウェア更新処理を行い、前記更新の完了後に担当サービスの提供を開始する。
【００２５】
また、前記ファームウェア更新対象となる回路基板を含んで複数のクラスタ単位を構成し、前記クラスタ単位において、それぞれ前記各処理方法を組み合わせてファームウェア更新を行ってもよい。
【００２６】
また、制御装置への回路基板の増設時に、前記共有メモリ上に前記新ファームウェアイメージが格納されている場合、前記増設された回路基板の不揮発性メモリ上のファームウェアのバージョンと、前記共有メモリ上に格納されている前記新ファームウェアイメージのバージョンとを参照して、前記増設された回路基板内のファームウェアについて更新が必要かどうか判断する処理を行い、前記更新が必要と判断した場合は、前記増設された回路基板において前記ＩＯＰと第２のネットワークを通じて前記ファームウェア更新プログラムと新ファームウェアイメージを取得して前記不揮発性メモリ上のファームウェアを新ファームウェアに更新するファームウェア更新処理を実行する。
【００２７】
また、制御装置への回路基板の増設時に、前記共有メモリ上に前記新ファームウェアイメージが格納されておらず、他の回路基板が動作状態の場合、前記保守装置から第２のネットワークを通じて前記動作状態の回路基板のＩＯＰへ指示を行い、前記指示に基づき前記動作状態の回路基板のＩＯＰは、前記ＣＰＵに指示して前記不揮発性メモリから新ファームウェアイメージをリードさせ、前記リードした新ファームウェアイメージを前記共有メモリに格納する処理を行う。前記共有メモリに格納したデータを用いて前記増設された回路基板でのファームウェア更新処理を実行する。
【００２８】
また、制御装置への回路基板の増設時に、前記共有メモリ上に前記新ファームウェアイメージが格納されておらず、他の回路基板が非動作状態の場合、前記保守装置から第２のネットワークを通じて前記増設された回路基板のＩＯＰに対し前記ファームウェア更新プログラムと新ファームウェアイメージを送信し、前記増設された回路基板は、前記ファームウェア更新プログラムと新ファームウェアイメージを前記共有メモリに格納する処理を行う。前記送信されたデータをもとに前記増設された回路基板でのファームウェア更新処理を実行する。
【００２９】
また、制御装置の回路基板の交換（すなわち交換対象回路基板の取り外し及び交換後回路基板の装着）時に、前記増設時と同様の処理に従って、交換後回路基板の不揮発性メモリ上のファームウェアのバージョンと、前記共有メモリ上に格納されている新ファームウェアイメージあるいは前記保守装置から取得する新ファームウェアイメージのバージョンとを参照して、前記交換後回路基板内のファームウェアについて更新が必要かどうか判断する処理を行い、前記更新が必要と判断した場合は、前記交換後回路基板において前記ＩＯＰと第２のネットワークを通じて前記ファームウェア更新プログラムと新ファームウェアイメージを取得して前記不揮発性メモリ上のファームウェアを新ファームウェアに更新するファームウェア更新処理を実行する。更新完了後に、必要に応じて、交換前の回路基板で提供していたサービスを引き継いだ他の回路基板からサービスを戻す処理を前記サービス移動機能により行う。
【００３０】
（２）本発明のストレージ装置で、前記回路基板は、ＣＰＵと、前記ＣＰＵの作業用となるメモリ（ＲＡＭ等）と、ファームウェアを保持する不揮発性メモリと、ネットワーク制御部とを有する。前記ＣＰＵ上で稼動するＯＳにより、クライアントとなる情報処理装置からの要求に基づきデータを前記記憶デバイスの記憶領域に入出力するサービスを提供する。前記不揮発性メモリには、ハードウェア初期化及び前記ＯＳの起動を行うためのＢＩＯＳを含むファームウェアが保持される。前記ネットワーク制御部は前記第１のネットワークに対する通信インターフェイスである。このような構成において、前記ファームウェアの更新を行うために、以下のように前記回路基板のＣＰＵ上で稼動するＯＳによる制御を中心にファームウェアの更新を行う。
【００３１】
前記制御装置では、ファームウェア更新対象の回路基板を含んで複数の回路基板が相互に通信可能なように接続されてクラスタを構成し、前記クラスタ内の回路基板のＯＳ間で必要に応じて前記サービスを引き継ぐサービス移動機能を有する。また、前記第１のネットワークに接続される情報処理装置として、管理用プログラムを備えた管理用の情報処理装置を有する。前記回路基板のＣＰＵ上で稼動するＯＳでファームウェア更新のためのファームウェア更新プログラムを動作させる。
【００３２】
前記ファームウェアの更新の際は、前記ファームウェア更新対象となる回路基板について、前記管理用の情報処理装置から前記第１のネットワークを通じて回路基板のＯＳに対しファームウェア更新のための指示を送信する処理を行う。
【００３３】
前記回路基板のＯＳは、自ＯＳで提供中のサービスを前記サービス移動機能により前記クラスタ内の他の回路基板のＯＳへ移動するサービス移動処理と、前記サービスの移動によりサービス非提供状態となった回路基板について前記ファームウェア更新プログラムと新ファームウェアイメージを用いて前記不揮発性メモリ上のファームウェアを新ファームウェアに更新するファームウェア更新処理とを行う。前記サービス移動処理とファームウェア更新処理とを含む処理単位を、前記ファームウェア更新対象となる回路基板のＯＳでファームウェア更新プログラムを動作させることで実行する。当該（２）における処理では、前記（１）における処理とは異なり、前記ＩＯＰや保守装置による処理は必要でない。
【００３４】
ファームウェア更新のための一処理方法として、前記ファームウェアの更新の際、前記サービス移動処理として、前記管理用の情報処理装置は、前記サービスの移動のための指示を前記第１のネットワークを通じて前記回路基板のＯＳに対して送信する処理を行う。前記指示に基づき、前記回路基板のＯＳは、前記クラスタ内の回路基板上のＯＳ間でサービスの移動を行う。前記サービスの移動後、前記管理用の情報処理装置から前記ファームウェア更新処理の実行対象となる回路基板のＯＳに対し前記ファームウェア更新プログラムと新ファームウェアイメージを送信する処理を行う。前記回路基板のＯＳは、前記ファームウェア更新プログラムを実行し前記新ファームウェアイメージを用いて前記ファームウェア更新処理を行う。
【００３５】
また、ファームウェア更新のための一処理方法として、前記ファームウェアの更新の際、前記管理用の情報処理装置は、前記回路基板のＯＳに対し前記第１のネットワークを通じてファームウェア更新の指示を送信する処理を行い、前記回路基板のＯＳは、前記指示に基づき、前記クラスタ内の回路基板上のＯＳ間でサービスを引き継ぐ移動を行ってからシャットダウンを行い、前記ＯＳのシャットダウン後、前記ファームウェア更新処理を行う。
【００３６】
また、ファームウェア更新のための一処理方法として、前記ファームウェアの更新の際、前記管理用の情報処理装置は、前記ファームウェア更新処理の実行対象となる回路基板のＯＳに対し、前記サービスを中断してファームウェアを更新させるための指示を送信する処理を行う。前記回路基板のＯＳは、前記指示に基づき、提供中サービスが有れば中断して前記サービス移動処理は行わず、その後に前記ファームウェア更新処理を行い、前記更新の完了後に担当サービスの提供を開始する。
【発明の効果】
【００３７】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００３８】
本発明によれば、クライアントに対するサービスを継続したまま一つ以上の回路基板におけるＢＩＯＳを含むファームウェアの更新を完了できる。
【００３９】
特に前記（１）の構成によれば、回路基板のＩＯＰを中心にファームウェア更新を制御し、共有メモリ等にファームウェア更新プログラム及び新ファームウェアイメージを保持させるため、回路基板の交換や増設が行われた契機でも新ファームウェアに更新可能である。また、ＯＳの障害やＯＳインストール前などＯＳが起動できない場合でもファームウェアの更新を行うことが可能である。
【００４０】
特に前記（２）の構成によれば、回路基板のＯＳ上でファームウェア更新プログラムを動作させるので、ＰＣ等の一般的な機器からファームウェア更新のためのローディング（ファイル転送）が可能である。またファームウェア更新プログラムは、汎用的なＯＳ上で動作するアプリケーションとして動作するので、ＯＳの機能と組み合わせて動作させることが可能である。
【発明を実施するための最良の形態】
【００４１】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【００４２】
＜ストレージ装置及びコンピュータシステム全体構成＞
まず、本発明の各実施の形態に係わるストレージ装置の全体構成について説明する。図１は、各実施の形態に係わるストレージ装置全体のハードウェア外観構成を示す。図２は、各実施の形態に係わるストレージ装置のうち特に記憶デバイス制御装置のハードウェア外観構成を示す。図３は、本実施の形態のストレージ装置を含むコンピュータシステム全体の機能ブロック構成を示す。
【００４３】
図１において、各実施の形態に係わるストレージ装置（ストレージシステム）６００は、制御装置（記憶デバイス制御装置）１００と記憶デバイス３００がそれぞれの筐体に収納された形態である。一形態として、制御装置１００の筐体の両側に記憶デバイス３００の筐体が配置されている。
【００４４】
図２において、制御装置１００は、正面中央に管理端末（後述の保守ＰＣ）１６０が備えられている。管理端末１６０は一形態としてノート型ＰＣの形態である。管理端末１６０はカバーで覆われており、カバーを開けることで管理端末１６０を使用できる。管理端末１６０の下部には、チャネル制御部１１０となる回路基板（後述のブレード基板）を装着するためのスロットが設けられている。各スロットには一つのチャネル制御部１１０の回路基板が着脱可能である。ストレージ装置６００には、一形態として８個のスロットが有り、各スロットには回路基板を装着するためのガイドレールが設けられている。ガイドレールに沿ってチャネル制御部１１０の回路基板が挿入あるいは取り外しされる。各スロットの奥手方向にはチャネル制御部１１０の回路基板を制御装置１００と電気的に接続するためのコネクタが設けられており、回路基板側のコネクタ部分がスロット内のコネクタに接続されることで制御装置１００に接続された状態となる。保守員等により、必要に応じて回路基板の増設、減設、交換が可能である。
【００４５】
制御装置１００におけるディスク制御部１４０や共有メモリ１２０等についても、一形態としてチャネル制御部１１０と同様に回路基板として実装され、制御装置１００の背面等に装着される。
【００４６】
制御装置１００には、チャネル制御部１１０等から発生する熱を放熱するための複数のファン１７０が設けられている。ファン１７０は、制御装置１００の上面部やスロットの上部等に設けられる。
【００４７】
図３において、ストレージ装置６００は、主に制御装置１００と複数の記憶デバイス３００とを備えた構成である。制御装置１００は、通信手段を通じて接続される情報処理装置（後述のＰＣ）２００から受信したコマンドに従って記憶デバイス３００に対する制御を行う。例えば情報処理装置２００からのデータの入出力要求を受信して、記憶デバイス３００の記憶領域に記憶されているデータの入出力のための処理を行う。データは、記憶デバイス３００が備えるディスクドライブにより提供される物理的な記憶領域上に論理的に設定される記憶領域である論理ボリューム（ＬＵ）に記憶されている。また制御装置１００は、情報処理装置２００との間で、ストレージ装置６００を管理するための各種コマンドの授受も行う。
【００４８】
情報処理装置２００は、ＣＰＵやメモリを備えたコンピュータである。情報処理装置２００が備えるＣＰＵにより各種プログラムが実行されることにより様々な機能が実現される。情報処理装置２００は、例えばＰＣ（パーソナルコンピュータ）やワークステーションであることもあるし、メインフレームコンピュータであることもある。
【００４９】
図３で、情報処理装置１乃至３（２００）は、ＬＡＮ（Local Area Network）４００を介して制御装置１００と接続されている。ＬＡＮ４００は、インターネットとすることもできるし、専用ネットワークとすることもできる。ＬＡＮ４００を介して行われる情報処理装置１乃至３（２００）と制御装置１００との間の通信は、例えばＴＣＰ／ＩＰプロトコルに従って行われる。情報処理装置１乃至３（２００）からは、ストレージ装置６００に対して、ファイル名指定によるデータアクセス要求（ファイル単位でのデータ入出力要求。以下、ファイルアクセス要求と称する）が送信される。
【００５０】
ＬＡＮ４００には、バックアップデバイス９１０が接続されている。バックアップデバイス９１０は、具体的には、ＭＯやＣＤ−Ｒ、ＤＶＤ−ＲＡＭなどのディスク系デバイス、ＤＡＴテープ、カセットテープ、オープンテープ、カートリッジテープなどのテープ系デバイスである。バックアップデバイス９１０には、ＬＡＮ４００を介して制御装置１００との間で通信を行うことにより、記憶デバイス３００に記憶されているデータのバックアップデータを記憶する。またバックアップデバイス９１０は、情報処理装置１（２００）と接続されるようにすることもできる。この場合は情報処理装置１（２００）を介して記憶デバイス３００に記憶されているデータのバックアップデータを取得するようにする。
【００５１】
制御装置１００は、チャネル制御部１乃至４（１１０）を備える。以下、チャネル制御部１乃至４をＣＨＮと記す。制御装置１００は、ＣＨＮ（１１０）によりＬＡＮ４００を介して情報処理装置１乃至３（２００）やバックアップデバイス９１０との間で通信を行う。ＣＨＮ（１１０）は、情報処理装置１乃至３（２００）からのファイルアクセス要求を個々に受け付ける。すなわち、ＣＨＮ（１１０）には、個々にＬＡＮ４００上のネットワークアドレス、例えばＩＰアドレスが割り当てられていて、それぞれが個別にＮＡＳ（Network Attached Storage）として振る舞い、個々のＮＡＳがあたかも独立したＮＡＳが存在するようにＮＡＳとしてのサービスを情報処理装置１乃至４（１１０）に提供することができる。このように一台のストレージ装置６００に個別にＮＡＳとしてのサービスを提供するＣＨＮを備えるように構成したことで、従来、独立したコンピュータで個々に運用されていたＮＡＳサーバが一台のストレージ装置６００に集約される。そして、これによりストレージ装置６００の統括的な管理が可能となり、各種設定・制御や障害管理、バージョン管理といった保守業務の効率化が図られる。
【００５２】
制御装置１００のＣＨＮ（１１０）は、後述するように、一体的にユニット化された回路基板上に形成されたハードウェア及びこのハードウェアにより実行されるＯＳやこのＯＳ上で動作するアプリケーションプログラムなどのソフトウェアにより実現される。このようにストレージ装置６００では、従来ハードウェアの一部として実装されてきた機能がソフトウェアにより実現されている。このため、ストレージ装置６００では柔軟なシステム運用が可能となり、多様で変化の激しいユーザニーズに対しきめ細かなサービスを提供することが可能となる。
【００５３】
情報処理装置３乃至４は（２００）は、ＳＡＮ（Storage Area Network）５００を介して制御装置１００と接続されている。ＳＡＮ５００は、記憶デバイス３００が提供する記憶領域におけるデータの管理単位であるブロックを単位として情報処理装置３乃至４（２００）との間でデータの授受を行うためのネットワークである。ＳＡＮ５００を介して行われる情報処理装置３乃至４（２００）と制御装置１００との間の通信は、一般にファイバチャネルプロトコルに従って行われる。情報処理装置３乃至４（２００）からは、ストレージ装置６００に対してファイバチャネルプロトコルに従ってブロック単位のデータアクセス要求（以下、ブロックアクセス要求と称する）が送信される。
【００５４】
ＳＡＮ５００にはＳＡＮ対応のバックアップデバイス９００が接続されている。ＳＡＮ対応バックアップデバイス９００には、ＳＡＮ５００を介して制御装置１００との間で通信を行うことにより、記憶デバイス３００に記憶されているデータのバックアップデータを記憶する。
【００５５】
制御装置１００は、チャネル制御部５乃至６（１１０）を備える。以下、チャネル制御部５乃至６をＣＨＦと記す。制御装置１００は、ＣＨＦ（１１０）により、ＳＡＮ５００を介して情報処理装置３乃至４（２００）及びＳＡＮ対応バックアップデバイス９００との間の通信を行う。
【００５６】
また情報処理装置５（２００）は、ＬＡＮ４００やＳＡＮ５００等のネットワークを介さずに制御装置１００と接続される。情報処理装置５（２００）と制御装置１００との間の通信は、例えばＦＩＣＯＮ（Fibre Connection）（登録商標）やＥＳＣＯＮ（Enterprise System Connection）（登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture）（登録商標）、ＦＩＢＡＲＣ（Fibre Connection Architecture）（登録商標）などの通信プロトコルに従って行われる。情報処理装置５（２００）からは、ストレージ装置６００に対してこれら通信プロトコルに従ってブロックアクセス要求が送信される。
【００５７】
制御装置１００は、チャネル制御部７乃至８（１１０）により情報処理装置５（２００）との間で通信を行う。以下、チャネル制御部７乃至８をＣＨＡと記す。
【００５８】
ＳＡＮ５００には、ストレージ装置６００の設置場所（プライマリサイト）とは遠隔した場所（セカンダリサイト）に設置される他のストレージ装置６１０が接続されている。ストレージ装置６１０は、レプリケーション又はリモートコピーの機能におけるデータの複製先の装置として利用される。なおストレージ装置６１０は、ＳＡＮ５００以外にもＡＴＭなどの通信回線によりストレージ装置６００に接続されることもある。この場合には例えばチャネル制御部１１０として上記通信回線を利用するためのインターフェイス（チャネルエクステンダ）を備えるものが採用される。
【００５９】
本実施の形態によれば、ストレージ装置６００内にチャネル制御部１１０としてＣＨＮ、ＣＨＦ、ＣＨＡを混在させて装着させることにより、異種ネットワークに接続されるストレージ装置を実現できる。具体的には、ストレージ装置６００は、ＣＨＮ１１０を用いてＬＡＮ４００に接続され、かつＣＨＦ１１０を用いてＳＡＮ５００に接続されるというＳＡＮ−ＮＡＳ統合ストレージシステムである。
【００６０】
＜記憶デバイス＞
記憶デバイス３００は、多数のディスクドライブ（物理ディスク）を備えて構成され、情報処理装置２００に対して記憶領域を提供する。データは、ディスクドライブにより提供される物理的な記憶領域上に論理的に設定される記憶領域であるＬＵに記憶される。ディスクドライブとしては、例えばハードディスク装置やフレキシブルディスク装置、半導体記憶装置等様々なものを用いることができる。記憶デバイス３００は、例えば複数のディスクドライブによりディスクアレイを構成することもできる。この場合、情報処理装置２００に対して提供される記憶領域は、ＲＡＩＤにより管理された複数のディスクドライブにより提供されるようにすることができる。
【００６１】
制御装置１００と記憶デバイス３００との間は、図３のように直接接続される形態にもできるし、ネットワークを介して接続される形態にもできる。更に記憶デバイス３００は制御装置１００と一体化構成にもできる。
【００６２】
記憶デバイス３００に設定されるＬＵは、情報処理装置２００からアクセス可能なユーザＬＵ（データデバイス）や、チャネル制御部１１０による制御等、システム制御のために使用されるシステムＬＵ（システムデバイス）等がある。また各ＬＵにはチャネル制御部１１０が対応付けられている。これによりチャネル制御部１１０ごとにアクセス可能なＬＵが割り当てられている。また上記対応付けは、複数のチャネル制御部１１０で一つのＬＵを共有するようにすることもできる。なお、複数のチャネル制御部１１０で共有されるＬＵを共有ＬＵ等と称する。
【００６３】
＜記憶デバイス制御装置＞
制御装置１００は、チャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１３０、ディスク制御部１４０、管理端末１６０、接続部１５０等を備える。
【００６４】
チャネル制御部１１０は、情報処理装置２００との間で通信を行うための通信インターフェイスを備え、情報処理装置２００との間でデータ入出力コマンド等を授受する機能を備える。例えばＣＨＮ１１０は、情報処理装置１乃至３（２００）からのファイルアクセス要求を受け付ける。そしてファイルの記憶アドレスやデータ長等を求めて、ファイルアクセス要求に対応するＩ／Ｏ要求を出力することにより、記憶デバイス３００へのアクセスを行う。これによりストレージ装置６００はＮＡＳとしてのサービスを情報処理装置１乃至３（２００）に提供できる。なおＩ／Ｏ要求にはデータの先頭アドレス、データ長、読み出し又は書き込み等のアクセス種別が含まれている。またデータの書き込みの場合にはＩ／Ｏ要求には書き込みデータが含まれるようにすることができる。Ｉ／Ｏ要求の出力は、後述されるＩＯＰ（Ｉ／Ｏプロセッサ）により行われる。またＣＨＦ１１０は、情報処理装置３乃至４（２００）からのファイバチャネルプロトコルに従ったブロックアクセス要求を受け付ける。これにより、ストレージ装置６００は高速アクセス可能なデータ記憶サービスを情報処理装置３乃至４（２００）に対し提供できる。またＣＨＡ１１０は、情報処理装置５（２００）からの前記ＦＩＣＯＮ等のプロトコルに従ったブロックアクセス要求を受け付ける。これによりストレージ装置６００は、情報処理装置５（２００）のようなメインフレームコンピュータに対してデータ記憶サービスを提供できる。
【００６５】
各チャネル制御部１１０は、管理端末１６０と共に内部ＬＡＮ１５１で接続されている。これによりチャネル制御部１１０に実行させるプログラムを管理端末１６０から送信してインストールすることが可能となっている。
【００６６】
チャネル制御部１１０にはＣＨＮ、ＣＨＦ、ＣＨＡ等の各種が有るが、サイズやコネクタ形式等に互換性を持たせておりストレージ装置６００の持つ前記各スロットにいずれのチャネル制御部１１０の回路基板でも装着可能である。従って、例えば８個のスロットにすべてＣＨＮ１１０を装着可能である。また、４枚の回路基板をグループとして２種の回路基板を装着可能である。また、２枚の回路基板をグループとして４種の回路基板を装着可能である。また８個のスロットにそれぞれ異なる種類の回路基板を装着可能である。また、図３に示したように、４枚のＣＨＮ１１０と２枚のＣＨＦと２枚のＣＨＡなどのように任意に組み合わせて装着可能である。またスロットには必ずしも回路基板を装着する必要はなく空き状態となっていても構わない。
【００６７】
接続部１５０は、チャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１２０、ディスク制御部１４０を相互に接続する。チャネル制御部１１０、共有メモリ１２０、キャッシュメモリ１２０、ディスク制御部１４０の間でのデータやコマンドの授受は接続部１５０を介することで行われる。接続部１５０は、例えば高速スイッチングによりデータ伝送を行うクロスバースイッチなどの高速バスで構成される。チャネル制御部１１０同士が高速バスで接続されることで、個々のコンピュータ上で動作するＮＡＳサーバがＬＡＮを通じて接続する従来構成に比べチャネル制御部１１０間の通信パフォーマンスが向上している。またこれにより高速なファイル共有機能や高速なフェイルオーバなどが可能となる。
【００６８】
共有メモリ１２０及びキャッシュメモリ１３０は、チャネル制御部１１０、ディスク制御部１４０により共有されるメモリである。共有メモリ１２９は、主に制御情報やコマンド等を記憶するために利用され、キャッシュメモリ１３０は、主にデータ（ユーザデータ）を記憶するために利用される。
【００６９】
例えば、あるチャネル制御部１１０がある情報処理装置２００から受信したデータ入出力コマンドが書き込みコマンドであった場合、当該チャネル制御部１１０は、書き込みコマンドを共有メモリ１２０に書き込むと共に、情報処理装置２００から受信した書き込みデータをキャッシュメモリ１３０に書き込む。一方、ディスク制御部１４０は、共有メモリ１２０を監視しており、共有メモリ１２０に書き込みコマンドが書き込まれたことを検出すると、当該コマンドに従ってキャッシュメモリ１３０から書き込みデータを読み出して記憶デバイス３００に書き込む。
【００７０】
また、あるチャネル制御部１１０がある情報処理装置２００から受信したデータ入出力コマンドが読み出しコマンドであった場合、当該チャネル制御部１１０は、読み出しコマンドを共有メモリ１２０に書き込むと共に、読み出し対象となるデータがキャッシュメモリ１３０に存在するかどうか調べる。ここでキャッシュメモリ１３０に読み出し対象データが存在すれば、チャネル制御部１１０はそのデータを情報処理装置２００に送信する。一方、読み出し対象データがキャッシュメモリ１３０に存在しない場合は、共有メモリ１２０を監視することにより読み出しコマンドが共有メモリ１２０に書き込まれたことを検出したディスク制御部１４０が、記憶デバイス３００から読み出し対象データを読み出してこれをキャッシュメモリ１３０に書き込むと共に、その旨を共有メモリ１２０に書き込む。そして、チャネル制御部１１０は、共有メモリ１２０を監視することで読み出し対象データがキャッシュメモリ１３０に書き込まれたことを検出すると、そのデータを情報処理装置２００に送信する。
【００７１】
なお、このようにチャネル制御部１１０からディスク制御部１４０に対するデータの書き込みや読み出しの指示を、共有メモリ１２０を介在させて間接に行う構成の他、例えばチャネル制御部１１０からディスク制御部１４０に対してデータの書き込みや読み出しの指示を、共有メモリ１２０を介さずに直接行う構成とすることもできる。
【００７２】
ディスク制御部１４０は、記憶デバイス３００の制御を行う。例えば前記チャネル制御部１１０が情報処理装置２００から受信したデータ書き込みコマンドに従って記憶デバイス３００へデータの書き込みを行う。また、チャネル制御部１１０により送信された論理アドレス指定によるＬＵへのデータアクセス要求を、物理アドレス指定による物理ディスクへのデータアクセス要求に変換する。記憶デバイス３００における物理ディスクがＲＡＩＤにより管理されている場合には、ＲＡＩＤ構成に従ったデータアクセスを行う。またディスク制御部１４０は、記憶デバイス３００に記憶されたデータの複製管理の制御やバックアップ制御を行う。更にディスク制御部１４０は、障害発生時のデータ消失防止（ディザスタリカバリ）等を目的としてプライマリサイトのストレージ装置６００のデータについての複製をセカンダリサイトのストレージ装置６１０に記憶する制御（レプリケーション機能又はリモートコピー機能）等も行う。
【００７３】
各ディスク制御部１４０は、管理端末１６０と共に内部ＬＡＮ１５１で接続されており、相互に通信を行うことが可能である。これによりディスク制御部１４０に実行させるプログラムを管理端末１６０から送信してインストールすることが可能となっている。
【００７４】
なお本実施の形態では共有メモリ１２０及びキャッシュメモリ１３０がチャネル制御部１１０及びディスク制御部１４０に対して独立に設けられている構成について記載したが、これに限らず、共有メモリ１２０、キャッシュメモリ１３０がチャネル制御部１１０、ディスク制御部１４０の各々に分散されて設けられる形態も可能である。この場合、接続部１５０は、分散された共有メモリ又はキャッシュメモリを有するチャネル制御部及びディスク制御部を相互に接続させる。
【００７５】
＜保守・管理端末＞
管理端末（保守ＰＣ）１６０は、ストレージ装置６００の保守・管理を行うためのコンピュータである。保守員は、管理端末１６０を操作して各種保守・管理の業務を行う。管理端末１６０を操作することにより、例えば記憶デバイス３００内の物理ディスク構成の設定やＬＵの設定、チャネル制御部１１０等において実行されるプログラムのインストール等を行うことができる。ここで、記憶デバイス３００内の物理ディスク構成の設定としては、例えば物理ディスクの増設や減設、ＲＡＩＤ構成の変更（ＲＡＩＤレベルの変更等）等を行うことができる。更に、管理端末１６０からは、ストレージ装置６００の動作状態の確認や、故障部位の特定、チャネル制御部１１０等で実行されるＯＳのインストール等の作業を行うこともできる。また管理端末１６０は、ＬＡＮや電話回線等を通じて外部の保守センタと接続されており、障害が発生した場合に迅速に対応できる。障害の発生は例えばＯＳやアプリケーションプログラム、ドライバソフトウェア等から通知される。この通知は、ＨＴＴＰやＳＮＭＰや電子メール等の手段により行われる。これらの設定や制御は、管理端末１６０で動作するＷｅｂサーバが提供するＷｅｂページをユーザインターフェイスとしてオペレータにより行われる。オペレータは、管理端末１６０を操作して障害監視する対象や内容の設定、障害通知先の設定等を行うこともできる。
【００７６】
管理端末１６０は、制御装置１００に内蔵される形態とすることもできるし、外付けされる形態とすることもできる。また管理端末１６０は、制御装置１００及び記憶デバイス３００の保守・管理を専用に行うコンピュータの形態にも、汎用コンピュータに保守・管理機能を持たせた形態にもできる。
【００７７】
管理端末１６０は、ＣＰＵ、メモリ（ＲＡＭ）、ポート（通信インターフェイス）、記憶媒体読み取り装置、入力装置（キーボード・マウス等）、出力装置（ディスプレイ等）、記憶装置（ハードディスクドライブ等）を備える。前記ＣＰＵは、管理端末１６０全体の制御を司る。ＣＰＵが前記メモリに格納されたプログラムを実行することで前記Ｗｅｂサーバとしての機能を実現する。メモリには、保守・管理のための情報・データ、例えば物理ディスク管理テーブルやＬＵ管理テーブル等が記憶される。記憶媒体読み取り装置は、記憶媒体に記憶されているプログラムやデータを読み取るための装置である。本実施の形態の場合、記憶媒体として後述のＦＤ（フレキシブルディスク）３１にＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３を記憶している。ＦＤ３１に限らずＣＤや半導体メモリ等を用いてもよい。記憶媒体読み取り装置で記憶媒体から読み取られたデータは、メモリや記憶装置に格納される。例えば、ＦＤ３１に記憶されているＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３を、記憶媒体読み取り装置を通じて読み取って、メモリや記憶装置に格納する。ポートは内部ＬＡＮ１５１に接続され、チャネル制御部１１０やディスク制御部１４０等の回路基板と通信可能である。またポートをＬＡＮ４００や電話回線等に接続することも可能である。
【００７８】
（実施の形態１）
本発明の実施の形態１におけるストレージ装置について以下説明する。図４は、本発明の実施の形態１におけるストレージ装置を含むコンピュータシステム全体の機能ブロック構成を示す。本図では、特に制御装置１００を構成する回路基板の保持するファームウェアの更新を行うにあたり係わる部位を中心に図示している。
【００７９】
実施の形態１のストレージ装置でのファームウェア更新の方法（第１のファームウェア更新方法と称する）では、制御装置１００を構成する回路基板内のＩＯＰでの制御を中心に管理端末１６０を用いてファームウェアの更新を行う。制御装置１００におけるファームウェア更新対象となる回路基板を含んでクラスタを構成する。クラスタ内の回路基板間でサービスを引き継ぐフェイルオーバを適宜実行することでクライアントとなる情報処理装置２００に対するサービスの提供を継続したまま、各回路基板のファームウェアの更新を行う。
【００８０】
図４において、制御装置１００を構成するブレード基板（以下、ブレードと称する）であるブレード＃１及びブレード＃２（１０）は、それぞれ前記チャネル制御部１１０に対応する。以下、区別のための番号を＃で表わす。なお本図ではクラスタ構成として２枚のブレード１０のみ示すが、複数のブレード１０により後述のクラスタが構成可能である。また、点線枠で示す制御装置１００を構成する、ブレード１０以外の共有メモリ１２０等の要素は、点線枠の外部に示す。各ブレード１０は、記憶デバイス３００に物理的及び論理的なパスを通じて接続され、データの記憶に関する処理を制御する。各ブレード１０は、クライアントとなるＰＣ２００に対してファイルサーバ等のサービスを提供する。
【００８１】
ＰＣ（及び管理用ＰＣ）２００は、前記情報処理装置２００に対応する。ＰＣ２００は、当該コンピュータシステムのユーザが通常業務等のために利用するコンピュータである。ＰＣ２００は、それぞれ個別のサーバとして機能するブレード１０に対して第１ネットワーク４１経由でアクセス要求を送信し、ブレード１０での処理を経由して記憶デバイス３００に対するデータのリード／ライトを行う。
【００８２】
管理用ＰＣ２００は、ＰＣ２００のうちの一つであり、当該コンピュータシステムのユーザ側管理者が本ストレージ装置に対する管理のために利用可能なコンピュータである。管理用ＰＣ２００から、後述のフェイルオーバ（サービス移動）等の実行のための管理機能が専用ソフトウェア（管理プログラム）上で利用可能であり、ユーザ側管理者の指示入力に基づきフェイルオーバ指示等をブレード１０に対して実行可能である。
【００８３】
保守ＰＣ（前記管理端末）１６０は、本ストレージ装置を含んだコンピュータシステムの運用側の保守員が使用するコンピュータである。保守ＰＣ１６０は、第２ネットワーク４２を通じて各ブレード１０と通信を行って保守・管理に係わる処理を実行する。保守ＰＣ１６０は、特に各ブレード１０のＩＯＰ１２とＬＡＮコントローラ１７を通じて通信可能である。特に実施の形態１の場合、各ブレード１０の保持するファームウェアの更新を保守ＰＣ１６０から行う。保守ＰＣ１６０のハードウェア構成は前述の通りである。保守ＰＣ１６０は、ＦＤ３１からデータを読み取る処理を行う。ＦＤ３１は、ＢＩＯＳ更新プログラム２２と、新ＢＩＯＳイメージ２３とを記憶している。また保守ＰＣ１６０は、通信回線を通じて本ストレージ装置及びコンピュータシステムの総合的な保守・管理のための保守センタ３２に接続される。保守ＰＣ１６０は、保守センタ３２からも、ＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３とをダウンロードして取得可能である。
【００８４】
保守ＰＣ１６０は、ファームウェア更新に係わる操作のためのユーザインターフェイスを提供する。すなわち、保守ＰＣ１６０は、ブレード１０のＩＯＰ１２との通信をもとに、サービス移動処理とファームウェア更新処理の状況を表わす情報や、その指示のための情報を入出力する更新管理処理を行う。例えば、サービス移動の指示や、サービス移動完了状態やファームウェア更新完了状態等を表示し、また保守員の操作入力に基づきファームウェア更新指示等をブレード１０に対して発行する。
【００８５】
第１ネットワーク４１は、主にＰＣ２００に対するサービス提供用のネットワークであり、前記ＬＡＮ４００やＳＡＮ５００等に対応する。第１ネットワーク４１を通じてＰＣ２００とブレード１０との間で通信が可能である。
【００８６】
第２ネットワーク４２は、主にストレージ装置の保守・管理用のネットワークであり、前記内部ＬＡＮ１５１に対応する。第２ネットワーク４２は、保守ＰＣ１６０に接続される。第２ネットワーク４２を通じて保守ＰＣ１６０と各ブレード１０のＩＯＰ１２との間で通信可能である。
【００８７】
内部バス４３は、制御装置１００の内部でブレード１０及び共有メモリ１２０を含む各回路基板を接続するバスであり、前記接続部１５０が対応する。内部バス４３を通じてＩＯＰ１２と共有メモリ１２０が通信可能である。特に、ＩＯＰ１２は、共有メモリ１２０に後述のＯＳ状態情報２７等の各種情報を格納し、必要に応じて参照する処理を行う。
【００８８】
共有メモリは、例えば一つの回路基板として実装され、ブレードと同様にストレージ装置の論理ボックス内に装着される。ストレージ装置内で、各ブレードと共有メモリは、ＩＯＰを介してバスで接続される。
【００８９】
実施の形態１で、保守ＰＣ１６０のＣＰＵと、管理用ＰＣ２００のＣＰＵと、ブレード１０特にＩＯＰ１２とＣＰＵ１１とでは、後述するファームウェアの更新に係わる各種処理を実現するためのプログラムが実行される。
【００９０】
＜ブレード基板＞
ブレード（＃１、＃２）１０のハードウェアは、基板上に、ＣＰＵ１１、ＩＯＰ１２、メモリＡ１３、メモリＢ１４、フラッシュメモリ１５、ＬＡＮコントローラ１６，１７、及びこれらを接続するバス等が形成された構成である。
【００９１】
本実施の形態の場合、ブレード１０は前記チャネル制御部１１０に相当する回路基板とするが、ストレージ装置の制御装置１００が前記チャネル制御部１１０やディスク制御部１４０等により構成される以外の形態でも同様である。すなわち本実施の形態におけるブレード１０の構成は、ストレージ装置の制御装置１００を構成する回路基板としての一般的な構成を示している。
【００９２】
ＣＰＵ１１は、ブレード１０の全体を制御する。ＣＰＵ１１上で稼動するＯＳ２１により、クライアントとなるＰＣ２００に対するサービスの提供を含む各処理を実行する。ＣＰＵ１１はＩＯＰ１２にバスで接続され通信を行う。ＣＰＵ１１は、主にメモリＡ１３を作業用に使用する。
【００９３】
ＯＳ（＃１、＃２）２１は、ＣＰＵ１１上で稼動する。ＯＳ２１は、ブレード１０の電源オンと共にフラッシュメモリ１５上のＢＩＯＳ（旧ＢＩＯＳ）２０に従って起動される。ＯＳ２１は、ベースとなるＯＳ部分のみならず、ファイルシステム、ＲＡＩＤ管理プログラム、保守・管理プログラム、障害管理プログラム、ＮＡＳ管理プログラム等、上位アプリケーションプログラムまで含むソフトウェアであるものとする。ＯＳ２１は、例えば記憶デバイス３００のうちシステムデバイスの領域に格納・管理される。
【００９４】
ＩＯＰ１２は、前記ディスク制御部１４０やキャッシュメモリ１３０や共有メモリ１２０、保守ＰＣ１６０との間でデータやコマンドの授受を行うプロセッサである。ＩＯＰ１２は、ＣＰＵ１１と直接通信可能であり、ＣＰＵ１１とディスク制御部１４０・記憶デバイス３００との間の通信を中継する。ＩＯＰ１２は、主にメモリＢ１４を作業用に使用する。ＩＯＰ１２は、記憶デバイス３００へのＩ／Ｏ処理の他、ＣＰＵ１１の障害監視等の処理も行う。ＩＯＰ１２は例えば１チップマイコンで構成される。
【００９５】
メモリＡ１３は、ＲＡＭであり、各種プログラムやデータが記憶される。例えば、ＣＰＵ１１上で稼動するＯＳ２１を構成するプログラム、特にクライアントとなるＰＣ２００に対するサービスのためのプログラム、後述のフェイルオーバ機能のためのプログラム、ＰＣ２００やＩＯＰ１２との間で授受するデータ等が記憶される。クライアントに対するサービスのためのデータとしては、例えばファイルシステムのためのメタデータや、ファイル排他制御のためのロックテーブル等がある。前記メタデータには例えばファイルのデータが記憶されるＬＵアドレスやデータサイズ等の情報が含まれる。前記ロックテーブルには、ファイルやＬＵ単位でのアクセス禁止情報が含まれる。
【００９６】
メモリＡ１４は、ＲＡＭであり、各種プログラムやデータが記憶される。例えば、ＩＯＰ１２がＣＰＵ１１と記憶デバイス３００との間で授受するデータ、ＩＯＰ１２が保守ＰＣ１６０との間で授受するデータ等が記憶される。
【００９７】
なお、本実施の形態では、ブレード１０内に作業用のメモリとして二つのメモリＡ１３、メモリＢ１４を設けているが、これに限らず単一のメモリをＣＰＵ１１とＩＯＰ１２で共用する構成等も可能である。
【００９８】
フラッシュメモリ１５は、電力供給が遮断されてもデータを保持できる不揮発性メモリであり、その記憶領域に、ＢＩＯＳ（旧ＢＩＯＳ）２０を含むファームウェアが書き込まれ保持されている。ブレード１０における電源供給オフ時もＢＩＯＳ２０を含むファームウェアが保持され、ブレードにおける電源供給オン時にはまずＢＩＯＳ２０を含むファームウェアが起動される。図４の状態では、ブレード１０内のＢＩＯＳ２０は、更新前の状態の旧ＢＩＯＳである。旧ＢＩＯＳ２０よりも新しいバージョンの新ＢＩＯＳが新ＢＩＯＳイメージ２３に含まれている。
【００９９】
前記ファームウェアは、ＣＰＵ１１周辺のハードウェアの初期化や、ＯＳ２１の起動を行うＢＩＯＳ２０を含んだプログラムであり、ブレード１０の起動時にＣＰＵ１１により実行される。ＢＩＯＳ２０中のコードは、ＯＳ２１が起動されるまでに使用されるブート・コードである。当該ファームウェアを更新すなわち書き換えることで、ブレード１０及びストレージ装置の動作・機能が更新されることとなる。
【０１００】
ＬＡＮコントローラ１６は、第１ネットワーク４１に接続されＰＣ２００との間で通信を行うための通信インターフェイスを備える。例えばブレード１０がＣＨＮ１１０である場合は、ＴＣＰ／ＩＰプロトコルに従ってＰＣ２００との間で通信を行う。ＰＣ２００からのアクセス要求はＬＡＮコントローラ１６での処理を経由してＣＰＵ１１が処理する。
【０１０１】
例えばブレード１０が特に前記ＣＨＮ１１０に対応する回路基板である場合、ＣＨＮ１１０であるブレード１０は、ＰＣ２００からのファイルアクセス要求を、第１ネットワーク４１を介して受け付け、ＣＰＵ１１上で稼動するＯＳ２１によりＮＡＳとしてのサービスを提供する。
【０１０２】
ＬＡＮコントローラ１７は、第２ネットワーク４２に接続され保守ＰＣ１６０との間で通信を行うための通信インターフェイスを備える。保守ＰＣ１６０からの要求はＬＡＮコントローラ１７での処理を経由してＩＯＰ１２が処理する。
【０１０３】
前記ＯＳ２１において、ファイルシステムは、ファイルアクセス要求で指定されるファイル名とＬＵとの対応付けを管理する。ＲＡＩＤ管理プログラムは、ＲＡＩＤ制御に関する設定等の処理を行う。保守・管理プログラムは、保守ＰＣ１６０からの要求に基づき、保守・管理に係わるサービスを保守ＰＣ１６０に対して提供する。例えば、ＬＵやＲＡＩＤの設定内容の表示及び保守ＰＣ１６０からの設定反映等を行う。障害管理プログラムは、ストレージ装置の障害対策に係わる処理として、クラスタを構成するブレード１０間でのフェイルオーバの制御等を行う。を行う。ＮＡＳ管理プログラムは、ストレージ装置についての動作状態の確認、設定や制御等を行うためのプログラムである。ＮＡＳ管理プログラムは、Ｗｅｂサーバとしての機能を有し、管理用ＰＣ２００等からストレージ装置の設定や制御を行うための設定Ｗｅｂページを提供する。すなわち、管理用ＰＣ２００からのＨＴＴＰ要求に応じて設定Ｗｅｂページを応答送信する。管理用ＰＣ２００において、設定Ｗｅｂページが表示され、管理用ＰＣ２００のユーザ（システムアドミニストレータ等）によりストレージ装置に関する設定や制御の入力操作が行われる。設定Ｗｅｂページを通じて設定可能な内容としては、例えば、ＬＵ管理、バックアップ管理、複製管理、クラスタ構成の管理（フェイルオーバにおける対応関係やフェイルオーバ方法等）、ＯＳ２１のバージョン管理、セキュリティ管理等がある。ＮＡＳ管理プログラムは、管理用ＰＣ２００から設定Ｗｅｂページを通じて入力送信される情報をもとに対応する設定や制御を実行する。
【０１０４】
＜クラスタ構成＞
図５は、実施の形態１のストレージ装置におけるブレード１０のクラスタ構成について示す説明図である。複数のブレード１０によりクラスタを構成する。ここでは例として２枚のＣＨＮ１１０であるブレード１０でクラスタが構成される例を示す。二つのブレード＃１とブレード＃２によりクラスタ＃１（７１）を構成している。クラスタを構成するブレード１０間で、障害管理プログラムにおけるフェイルオーバ機能によりフェイルオーバ処理が実行可能である。クラスタ構成とすることで、クラスタ内のあるブレード１０に障害が発生した場合でも、障害発生したブレード１０がそれまで実行していた処理、例えばクライアントに対するサービスを、クラスタ内の他のブレード１０に引き継ぐフェイルオーバ処理を行わせることができる。クラスタ内の回路基板間での処理の引き継ぎを本実施の形態ではフェイルオーバと称する。特に障害が発生していない場合でも保守員やユーザ側管理者からの指示に基づきフェイルオーバを実行可能である。またフェイルオーバの機能には、フェイルオーバ実行により他のブレード１０へ引き継いだサービスを、元々サービスを提供していたブレード（オリジナルブレード）１０へと戻す機能（フェイルバック機能）も含まれる。本実施の形態では、このようなフェイルオーバ機能を用いてファームウェアの更新を行う。
【０１０５】
まず、障害発生時に実行されるフェイルオーバ処理について説明する。クライアントとなるＰＣ２００に対し、ブレード＃１（１０）のＯＳ２１でサービス＃１（８１）を提供しており、また、ブレード＃２（１０）のＯＳ２１でサービス＃２（８２）を提供している状態とする。例えばブレード＃１（１０）で障害が発生してＯＳ２１でクライアントに対するサービス＃１（８１）が継続できなくなった場合、それまで行っていたサービス＃１（８１）をブレード＃２（１０）のＯＳ２１に引き継ぐフェイルオーバ処理が自動的に行われる。またブレード＃１（１０）が障害から回復後に、ブレード＃２（１０）からサービス＃１（８１）をブレード＃１のＯＳ２１に戻すフェイルバック処理も可能である。
【０１０６】
クラスタを構成するブレード（＃１、＃２）１０は、共に障害管理プログラムを実行し、共有メモリ１２０に対して自己の処理が正常に行われていることを書き込むようにする。そして、相手側ブレードの前記書き込みの有無を相互に確認するようにする。相手側による書き込み検出できない場合は、相手側に障害が発生したと判断し、フェイルオーバ処理を実行する。フェイルオーバ実行時のサービス引き継ぎは、記憶デバイス３００上の共有ＬＵを介して行われる。
【０１０７】
クラスタを構成する各ブレード１０は、アクセス可能なＰＣ２００を管理できる。アクセス可能なＰＣ２００からのアクセス要求にのみそのアクセス要求を受け付けるようにする。アクセス可能なＰＣ２００の管理は、ブレード１０内のメモリＡ１３や記憶デバイス３００のシステムデバイス等に、アクセスを許可するＰＣ２００のアドレス情報すなわちＩＰアドレス等を記憶させることで行う。これにより、複数のＰＣ２００が同じＬＡＮ４００等の第１ネットワーク４１に介してストレージ装置に接続される構成においても、ＰＣ２００のそれぞれに対して排他的にＬＵを割り当てることができる。上記設定は、保守ＰＣ１６０やＰＣ２００から行うことが可能である。ＰＣ２００から行う場合には、ブレード１０上で動作するＮＡＳ管理プログラムによりＰＣ２００に表示される設定Ｗｅｂページを利用して行う。
【０１０８】
ブレード１０間では、第１ネットワーク４１経由で、互いの状態の監視のための通信が行われる。これにより各ブレード１０の状態を認識して障害検出が可能である。ブレード１０の状態監視のための通信として、ハートビート通信が行われる。ハートビート通信では、ブレード１０間で定期的にハートビート情報の送受信を行い、応答が無い場合には該当ブレードに障害が発生していると判断する。
【０１０９】
前記フェイルオーバ機能では、ブレード１０間において、一つのブレードが障害等によりダウンすると、自動または手動で、別のブレード１０にサービスを引き継ぐ処理が可能である。また、ダウンしたブレードが回復すると、自動または手動で、前記引き継ぎされたサービスを引き戻す処理が可能である。手動でフェイルオーバを実行する場合は、保守ＰＣ１６０や管理用ＰＣ２００から指示して実行可能である。
【０１１０】
ブレード１０と記憶デバイス３００とのインターフェイスとして、図中の実線部分のパス９１，９４は通常時のパスである。フェイルオーバ時は、破線部分のパス９２，９３が有効になる。例えば、通常時にブレード＃１が記憶デバイス３００のデータデバイス＃１を用いてサービス＃１を、ブレード＃２が記憶デバイス３００のデータデバイス＃２を用いてサービス＃２を行っているとする。この状態で、フェイルオーバを実行してサービス＃１をブレード＃２に引き継ぐ場合、サービス＃１を引き継いだブレード＃２が、破線部分のパス９２を通じて両方の記憶デバイス３００のデータデバイス＃１、＃２へのアクセスを行う。
【０１１１】
ブレード１０とＰＣ２００とのインターフェイスとしては、フェイルオーバ時に、ブレード１０間でサービスのためのＩＰアドレス情報を引き継ぐことによって、クライアントのＰＣ２００はサーバすなわちブレード１０がダウンしたことを意識することなくサービスの提供を継続的に受けることができる。
【０１１２】
ストレージ装置の記憶デバイス３００上のシステムデバイスには、前記ブレード１０とＰＣ２００との間でのサービスのためのＩＰアドレス情報等を含む制御情報であるサービス情報２５や、前記ブレード１０と記憶デバイス３００との間でのパス及びマウント状態を管理する制御情報であるディスク情報２６等が格納される。
【０１１３】
＜複数のクラスタ＞
図６は、実施の形態１のストレージ装置で、複数のブレード１０で複数のクラスタを構成する例について示す説明図である。制御装置１００を構成するブレード１０をいくつかのクラスタにグループ化可能である。例えば本ストレージ装置を含むコンピュータシステムを利用する企業の部門単位に一つのクラスタを割り当てる。図６では、クラスタのグループ化の例として、クラスタ＃１〜クラスタ＃３の三つのクラスタを構成した場合を示す。クラスタ＃１（７１）は、ブレード＃１、ブレード＃２を含む構成である。クラスタ＃２（７２）は、ブレード＃３、ブレード＃４を含む構成である。クラスタ＃３（７３）は、ブレード＃５〜ブレード＃７を含む構成である。
【０１１４】
例えば、ストレージ装置の有する前記各スロットに装着されるブレード１０は、同種の複数のチャネル制御部１１０でクラスタを構成できる。例えば、２枚のＣＨＮ１１０をペアとしてクラスタを構成できる。
【０１１５】
なお制御装置１００は、信頼性向上のために電源系統が２系統化されており、チャネル制御部１１０となるブレード１０が装着される前記８個のスロットは電源系統ごとに４個ずつに分けられている。そこでクラスタを構成する場合には、両方の電源系統のチャネル制御部１１０を含むようにすれば、片方の電源系統に障害が発生して電力供給が停止した場合でも、同一クラスタ内の他方の電源系統に属するチャネル制御部１１０への電源供給は継続されるため、当該チャネル制御部１１０に処理を引き継ぐことができる。
【０１１６】
＜サービスのための制御情報＞
図７と図８は、実施の形態１のストレージ装置で記憶デバイス３００上のシステムデバイスに保持される、サービスのための制御情報について示すテーブルである。ＯＳ２１の扱うサービス提供に係わる制御情報として、例えばサービスのためのＩＰアドレス等の情報が、記憶デバイス３００上のシステムデバイスの領域に格納される。図７は、ブレード１０がＰＣ２００と通信してサービスを提供するための制御情報であるサービス情報２５を保持するテーブルを示す。図８は、前記サービスの提供に係わる記憶デバイス３００及びＬＵの管理のための制御情報であるディスク情報２６を保持するテーブルを示す。これらは保守ＰＣ１６０や管理用ＰＣ２００からも参照可能である。
【０１１７】
図７で、サービス情報２５は、データ項目として、ブレード２５ａと、ホスト名２５ｂと、サービスＩＰアドレス２５ｃと、オリジナルブレード２５ｄと、サービス状態２５ｅとを有する。ブレード２５ａはブレード識別情報である。ブレード２５ａで示されるブレード１０は、クライアントとなるＰＣ２００に対して、ホスト名２５ｂで示されるホストとして、サービスＩＰアドレス２５ｃで示されるＩＰアドレスにより、サービスを提供する。サービス状態２５ｅは、“サービス中”や“サービス停止”などの状態を表わす。オリジナルブレード２５ｄは、サービスの元々の提供元を表わし、フェイルバックを行う際に、どのＩＰアドレス及びデバイスに対しサービスを戻せばよいかの判定に使用される。例として、図７の上のテーブルに示すように、ブレード＃１（“Blade1”）が、ホスト名が“Server1”、サービスＩＰアドレスが“192.168.1.10”で、ＰＣ２００に対して“サービス中”である。同様にブレード＃２、＃３もそれぞれＰＣ２００に対して“サービス中”である。この状態から、後述するようにブレード１０のファームウェア更新のために、フェイルオーバ実行によりサービスを移動してブレード１０を一旦ダウン（サービス停止）させる。図７の下のテーブルに示すように、フェイルオーバ実行によりブレード＃１を一旦ダウンさせて“サービス停止”の状態にし、ブレード＃２に、ブレード＃１の前記“Server1”のサービスを引き継がせて“サービス中”の状態となる。
【０１１８】
図８で、ディスク情報２６は、データ項目として、ブレード２６ａと、デバイス２６ｂと、マウント状態２６ｃと、オリジナルブレード２６ｄとを有する。ブレード２６ａはブレード識別情報である。デバイス２６ｂはデバイス識別情報である。ブレード２６ａで示すブレード１０は、デバイス２６ｂで示す物理ボリュームあるいは論理ボリュームにマウントあるいはアンマウントされる。マウント状態２６ｃは、デバイスに対する“マウント中”や“アンマウント”などの状態を表わす。オリジナルブレード２６ｄは、サービスの元々の提供元を表わす。例として、図８の上のテーブルに示すように、ブレード＃１（“Blade1”）が、デバイス“Disk1”，“Disk2”にマウント中で前記サービスを提供中である。この状態から、図８の下のテーブルに示すように、前記フェイルオーバ実行によりブレード＃１をダウンさせて、デバイス“Disk1”，“Disk2”をアンマウントして“アンマウント”の状態にし、かつブレード＃２に前記デバイス“Disk1”，“Disk2”をマウントして、オリジナルブレード２６ｄがブレード＃１であるサービスをブレード＃２に引き継がせて“マウント中”の状態にする。
【０１１９】
＜一般的なＢＩＯＳ更新手順＞
比較のために、従来の一般的な、ＰＣ（パーソナルコンピュータ）におけるＢＩＯＳの更新の処理手順について簡単に説明しておく。ＰＣは、ＣＰＵ、メモリ（ＲＡＭ）、旧ＢＩＯＳを保持するフラッシュメモリ、その他入出力装置等の一般的な要素を有するものとする。新ＢＩＯＳイメージとＢＩＯＳ更新プログラムとを記録したＦＤ（フレキシブルディスク）を用いて、前記フラッシュメモリ上の旧ＢＩＯＳを新ＢＩＯＳに更新する際の処理手順は以下のようになる。前記新ＢＩＯＳイメージは、新ＢＩＯＳのコードを含むデータであり、前記ＢＩＯＳ更新プログラムは、ＢＩＯＳ更新のための処理を記述したプログラムである。まず、ＰＣの電源がオンされるとフラッシュメモリ上の旧ＢＩＯＳが起動される。旧ＢＩＯＳは、ＦＤドライブからＦＤを検出して、ＦＤ内に記録されているＢＩＯＳ更新プログラムをＲＡＭへロードする。旧ＢＩＯＳは、ロードされたＢＩＯＳ更新プログラムに制御を移す。次に、ＢＩＯＳ更新プログラムは、ＦＤ内の新ＢＩＯＳイメージをＲＡＭにロードし、ロードした新ＢＩＯＳイメージをフラッシュメモリの旧ＢＩＯＳ上にライトする。これによりＰＣにおけるＢＩＯＳのコードが更新された状態となるが、まだ当該ＰＣのシステムはＢＩＯＳ更新が有効な状態とはなっていない。次に、ＢＩＯＳ更新プログラムは、ＣＰＵをハードウェア的にリセットしてシステムをリブートさせる。システムのリブートによりフラッシュメモリ上の新ＢＩＯＳが起動され、前記ＢＩＯＳ更新が有効な状態となる。
【０１２０】
＜第１のファームウェア更新方法＞
前記図４を参照しながら、実施の形態１におけるストレージ装置での第１のファームウェア更新方法について説明する。第１のファームウェア更新方法では、ブレード１０のＩＯＰ１２での制御を中心に保守ＰＣ１６０を用いてファームウェアの更新を行う。ファームウェア更新対象となるブレード１０を含んでクラスタを構成する。ＩＯＰ１２と保守ＰＣ１６０は、第２ネットワーク４２を通じて通信を行う。保守ＰＣ１６０は、第２ネットワーク４２を通じてファームウェア更新対象となるすべてのブレード１０にアクセスできる。共有メモリ１６０は、すべてのブレード１０のＩＯＰ１２で共有してデータのリード／ライトのアクセスが可能である。ＯＳ２１に対するフェイルオーバすなわちサービス移動の指示は、管理用ＰＣ２００からユーザ側管理者等が指示入力することで実行される。保守ＰＣ１６０は保守員により操作される。管理用ＰＣ２００はユーザ側管理者により操作される。ファームウェア更新対象となるブレード１０の例として、制御装置１００に複数接続されているブレード１０のうちの前記ブレード＃１とブレード＃２を対象とする。
【０１２１】
第１のファームウェア更新方法において、更に以下に示す複数の処理方法を選択的に用いることができる。
【０１２２】
＜第１のファームウェア更新方法−第１の処理方法＞
図９は、実施の形態１のストレージ装置での、第１のファームウェア更新方法のうち第１の処理方法に対応した処理手順を示すフローチャートである。第１のファームウェア更新方法のうち第１の処理方法では、オペレータ（保守員及びユーザ側管理者）を介入して手動操作でフェイルオーバを実行してクライアントとなるＰＣ２００に対するサービスのための通信を継続したまま、各ブレード１０のファームウェアの更新を行う。また、第１ネットワーク４１を介して管理用ＰＣ２００からの指示を起点として前記ファームウェア更新のためのフェイルオーバを行う。以下、例として、ブレード＃１、＃２の順でファームウェア更新処理を実行する。
【０１２３】
まず、保守ＰＣ１６０は、保守員の操作に基づき、ＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３を、ＦＤ３１から読み込みあるいは保守センタ３２からダウンロードして保守ＰＣ１６０内のメモリ領域に取得する（ステップＳ１０１）。次に、保守ＰＣ１６０から、ファームウェア更新対象となるブレード１０から任意に選択してこの選択されたブレード１０のＩＯＰ１２に対し、第２ネットワーク４２を通じて通信を行い、ＢＩＯＳ更新プログラム２２及び新ＢＩＯＳイメージ２３を送信して、メモリＢ１４に格納させる（Ｓ１０２）。ここで前記ファームウェア更新対象となるブレード１０のうちＢＩＯＳ更新プログラム２２及び新ＢＩＯＳイメージ２３の送付先となるＩＯＰ１２を、以下、代表ＩＯＰ１２と称する。前記代表ＩＯＰ１２の選択は、自動でも手動でもよい。
【０１２４】
次に、前記選択されたブレード１０の代表ＩＯＰ１２は、保守ＰＣ１６０から受信してメモリＢ１４に格納したＢＩＯＳ更新プログラム２２及び新ＢＩＯＳイメージ２３を、共有メモリ１２０に格納（コピー）する処理を行う（Ｓ１０３）。この格納処理は、他のブレード１０が共有メモリ１２０上からＢＩＯＳ更新プログラム２２及び新ＢＩＯＳイメージ２３を利用できるようにするための処理である。
【０１２５】
上記処理完了後、第２ネットワーク４２での通信を通じて、保守ＰＣ１６０の出力装置画面上にサービス移動指示（フェイルオーバ指示）が表示される（Ｓ１０４）。この指示は、ファームウェア更新対象のブレード１０におけるファームウェア更新処理実行開始のために、その前処理として該当ブレード１０における他ブレード１０へのサービス引き継ぎを実行させるための指示である。保守員は、保守ＰＣ１６０でこの指示を認識して、管理用ＰＣ２００を使用するユーザ側管理者に対しフェイルオーバ操作を指示する。
【０１２６】
ユーザ側管理者は、保守員側からの指示に基づき、管理用ＰＣ２００上のソフトウェアから、前記ファームウェア更新処理実行開始対象となるブレード１０上のＯＳ２１に対しフェイルオーバ指示を送信する（Ｓ１０５）。フェイルオーバ指示を受信したブレード１０のＯＳ２１は、他ブレード１０のＯＳ２１と通信して、自ＯＳ２１で提供中のサービスを他ＯＳ２１へと引き継がせるサービス移動処理を行う。サービスの移動に伴い、該当ブレード１０は、記憶デバイス３００のシステムデバイスに保持する前記サービス情報２５及びディスク情報２６等のサービス提供に係わる制御情報を当該サービス移動に応じて変更する（Ｓ１０６）。前記サービス移動処理では、ファームウェア更新処理実行開始対象となるブレード１０（例えばブレード＃１）におけるすべてのサービスを、ファームウェア更新処理実行開始対象でない他のブレード１０（例えばブレード＃２）に引き継ぎ、当該ブレード１０を一旦ダウン状態にする。
【０１２７】
Ｓ１０６までの処理でファームウェア更新処理実行開始対象のブレード１０におけるフェイルオーバすなわちサービス移動が完了したら、Ｓ１０７で、ファームウェア更新処理実行開始対象のブレード１０におけるファームウェア更新処理の実行を開始する。
【０１２８】
Ｓ１０７のファームウェア更新処理では、まず、Ｓ１０６までの処理でファームウェア更新処理実行開始対象のブレード１０におけるフェイルオーバが完了した状態であること、すなわちファームウェア更新処理開始可能な状態であることを報せる情報（「フェイルオーバ完了」）を、第２ネットワーク４２での通信を通じて保守ＰＣ１６０の画面に表示させる。保守員は保守ＰＣ１６０で前記「フェイルオーバ完了」を認識後、該当ブレード１０のファームウェア更新処理の実行を開始する（Ｓ１２１）。
【０１２９】
保守員は、保守ＰＣ１６０から第２ネットワーク４２を通じてファームウェア更新処理実行対象ブレード（例えばブレード＃１）１０のＩＯＰ１２に対しＢＩＯＳ更新指示を送信する（Ｓ１２２）。ブレード１０のＩＯＰ１２は、保守ＰＣ１６０から前記ＢＩＯＳ更新指示を受けると、ＣＰＵ１１上で稼動するＯＳ２１にシャットダウン指示を行う（Ｓ１２３）。前記シャットダウン指示を受けたＯＳ２１は、シャットダウン処理を行い、その処理の最後にＩＯＰ１２に対しシャットダウン完了通知を行う。ＩＯＰ１２は、ＯＳ２１からシャットダウン完了通知を受領後、ＣＰＵ１１をハードウェア的にリセットする。その結果、フラッシュメモリ１５上の旧ＢＩＯＳ２０が起動される（Ｓ１２４）。
【０１３０】
前記ＣＰＵ１１のリセットにより起動された旧ＢＩＯＳ２０は、ＩＯＰ１２と通信を行い、メモリＢ１４に記憶されているＢＩＯＳ更新プログラム２２をメモリＡ１３へロードする（Ｓ１２５）。そして、旧ＢＩＯＳ２０は、ＢＩＯＳ更新プログラム２２に制御を移す（Ｓ１２６）。
【０１３１】
ＢＩＯＳ更新プログラム２２は、ＩＯＰ１２と通信を行い、メモリＢ１４に記憶されている新ＢＩＯＳイメージ２３をメモリＡ１３にロードする（Ｓ１２７）。ＢＩＯＳ更新プログラム２２は、メモリＡ１３にロードした新ＢＩＯＳイメージ２３をフラッシュメモリ１５の旧ＢＩＯＳ２０上にライトして更新する（Ｓ１２８）。ＢＩＯＳ更新プログラム２３は、ＣＰＵ１１をハードウェア的にリセットしてブレード１０のシステムをリブート（再起動）する（Ｓ１２９）。前記ＣＰＵ１１のリセットにより、フラッシュメモリ１５上の新ＢＩＯＳが起動される（Ｓ１３０）。
【０１３２】
起動された新ＢＩＯＳによる処理により、ＯＳ２１が起動される。ＯＳ２１の起動完了後、ＯＳ２１は、ＩＯＰ１２に対し起動完了通知を行う（Ｓ１３１）。ＯＳ２１から起動完了通知を受けたＩＯＰ１２は、保守ＰＣ１６０に対し第２ネットワーク４２を通じてＢＩＯＳ更新完了を通知する（Ｓ１３２）。以上で対象ブレード１０におけるファームウェア更新処理が完了する。
【０１３３】
前記Ｓ１２５においてブレード１０のメモリＢ１４にＢＩＯＳ更新プログラム２２や新ＢＩＯＳイメージ２３が格納されていない場合は、共有メモリ１２０に格納されているデータ（前記Ｓ１０３で代表ＩＯＰ１２が格納処理したデータ）を参照して取得させる。
【０１３４】
Ｓ１０７で前記ファームウェア更新処理実行開始対象ブレード（例えばブレード＃１）のファームウェア更新処理が完了後、保守員は保守ＰＣ１６０上でファームウェア更新完了を認識する。保守員は、ユーザ側管理者に対し、ファームウェア更新完了後のブレード１０にサービスを戻すためのフェイルオーバすなわちフェイルバックの操作を指示する。
【０１３５】
ユーザ側管理者は、管理用ＰＣ２００から該当ブレード１０のＯＳ２１に対し、サービスをオリジナルブレード（例えばブレード＃１）に戻すためのフェイルバック指示を送信する（Ｓ１０８）。前記フェイルバック指示は、前記ファームウェア更新処理完了後のブレード１０（例えばブレード＃１）のＯＳ２１あるいは前記更新処理のためにサービスを引き継いだブレード１０（例えばブレード＃２）のＯＳ２１に送信される。フェイルバック指示を受信した該当ブレード１０のＯＳ２１は、他のブレード１０と通信を行ってサービス移動処理を行い、システムデバイスのサービス情報２５及びディスク情報２６を変更する（Ｓ１０９）。前記サービス移動処理により、ファームウェア更新処理完了後すなわち新ＢＩＯＳが有効となったブレード１０のＯＳ２１に、ファームウェア更新前に提供していたサービスが戻される。なお前記フェイルバックの際に、更に次のファームウェア更新処理のためのサービス引き継ぎ処理も共に行うようにしてもよい（例えば前記ブレード＃２のサービス＃２をブレード＃１に移動する）。
【０１３６】
Ｓ１０４からＳ１０９の処理でファームウェア更新対象ブレード１０のうちの一つにおけるファームウェア更新処理が完了する。これら処理を、ファームウェア更新対象となるすべてのブレード１０でファームウェア更新が完了するまで繰り返す（Ｓ１１０）。
【０１３７】
なおファームウェア更新のための複数のブレード１０間でのサービスの引き継ぎの仕方は、ファームウェア更新処理実行対象ブレードで実行していたサービスをすべて一旦他ブレード１０に引き継いでからファームウェア更新処理を実行するという手順が満たされていれば、各種の引き継ぎの仕方が可能である。例えば、ブレード＃１のＯＳ２１でサービス＃１、ブレード＃２のＯＳ２１でサービス＃２を実行している状況において、まず、ブレード＃１のＯＳ２１のサービス＃１をブレード＃２のＯＳ２１に移動し、ブレード＃１のＢＩＯＳ更新を行う。そして、ブレード＃１のＯＳ２１にブレード＃２からサービス＃１を戻すと共にブレード＃２のＯＳ２１のサービス＃２をブレード＃１に移動し、ブレード＃２のＢＩＯＳ更新を行う。
【０１３８】
また、前記Ｓ１０４からＳ１０９におけるファームウェア更新処理において、同時に複数のブレード１０のファームウェア更新処理を実行させるようにしてもよい。すなわち、ファームウェア更新処理を同時に実行する対象となる複数のブレード１０を保守ＰＣ１６０や管理用ＰＣ２００等から選択して、前記フェイルオーバを指示し、前記Ｓ１０７の処理を複数のブレード１０で同時に開始させる。
【０１３９】
＜第１のファームウェア更新方法−第２の処理方法＞
図１０は、実施の形態１におけるストレージ装置での第１のファームウェア更新方法のうち第２の処理方法に対応した処理手順を示すフローチャートである。第２の処理方法では、ブレード１０がＰＣ２００とのサービスのための通信を継続したまま、オペレータ（前記保守員やユーザ側管理者）の手動操作の介入無しで自動的にフェイルオーバを行ってファームウェアの更新を行う。第２の処理方法では、ブレード１０のＯＳ２１を起点としてサービスの引き継ぎを行う。例として、ブレード＃１、＃２の順でファームウェア更新処理を実行する。
【０１４０】
Ｓ２０１〜Ｓ２０３の処理は、前記第１の処理方法におけるＳ１０１〜Ｓ１０３と同様である。これら処理により共有メモリ１２０上にＢＩＯＳ更新プログラム２２及び新ＢＩＯＳイメージ２３が格納され、各ブレード１０におけるファームウェア更新処理の開始のための準備が整った状態となる。この後、保守ＰＣ１６０と各ブレード１０のＩＯＰ１２の間での通信を通じて、自動的にファームウェア更新処理を実行する。
【０１４１】
Ｓ２０４とＳ２０５で、前記第１の処理方法におけるフェイルオーバやフェイルバックの操作の介入は無しで、ファームウェア更新処理実行対象となるブレード１０のファームウェア更新処理を実行し、すべての対象ブレード１０のファームウェア更新処理が完了するまで繰り返す。
【０１４２】
Ｓ２０４の処理において、まず、保守ＰＣ１６０から第２ネットワーク４２を通じてファームウェア更新処理実行対象ブレード（例えばブレード＃１）１０のＩＯＰ１２に対しＢＩＯＳ更新指示を送信する（Ｓ２２１）。ブレード１０のＩＯＰ１２は、保守ＰＣ１６０から前記ＢＩＯＳ更新指示を受けると、ＣＰＵ１１上で稼動するＯＳ２１にシャットダウン指示を行う。このシャットダウン指示を受けたＯＳ２１は、他のファームウェア更新処理実行開始対象でないブレード１０（例えばブレード＃２）へとサービスを引き継ぐサービス移動処理を行ってからシャットダウンを行う（Ｓ２２２）。
【０１４３】
以後、Ｓ２２３〜Ｓ２２９で、前記第１の処理方法と同様にＢＩＯＳ更新処理を行う。これにより新ＢＩＯＳが起動される。
【０１４４】
Ｓ２３０で、ＯＳ２１が起動され、起動完了後、ＯＳ２１は、ＩＯＰ１２へ起動完了通知を行う。また、このＯＳ２１は、ファームウェア更新処理前に他のブレード１０（例えばブレード＃２）に引き継いだサービスを自ＯＳ２１に戻すフェイルバック処理を行って、ＰＣ２００に対する当該サービスの提供を継続する。その後、ＩＯＰ１２から保守ＰＣ１６０へＢＩＯＳ更新完了が通知される（Ｓ２３１）。
【０１４５】
上記処理手順のように、更新指示を受けたブレード１０のＯＳ２１が他のブレード１０との間でフェイルオーバを行って他ＯＳ２１へとサービスを引き継いでから自ブレード１０のファームウェア更新を行う。フェイルオーバの処理の詳細は前記第１の処理方法と同様である。
【０１４６】
前記第１の処理方法と第２の処理方法の主な違いは、ファームウェア更新のためのフェイルオーバをオペレータ介入により手動で実行するか、自動で実行するかの違いである。フェイルオーバ中、すなわちブレード１０間でのサービス移動処理において一方のブレード１０のサービス提供を停止して他方のブレードでサービス提供を開始するまでの間には、クライアントとなるＰＣ２００からのアクセスが不可能となる期間が存在する。前記第１の処理方法では、このフェイルオーバ中の期間を、保守員やユーザ側管理者が明示的に認識・把握できる。それにより例えば保守員やユーザ側管理者が前記期間を把握して事前にユーザ側やシステム運用側に通知できる等の利点がある。一方、前記第２の処理方法では、前記フェイルオーバ中の期間を明示的には認識・把握できないが、オペレータの介入が必要無いのでその分操作の煩わしさが省けるという利点がある。
【０１４７】
また、第２の処理方法においても、Ｓ２０４のファームウェア更新処理において、同時に複数のブレード１０のファームウェア更新処理を実行させるようにしてもよい。
【０１４８】
＜第１のファームウェア更新方法−第３の処理方法＞
図１１は、実施の形態１におけるストレージ装置での第１のファームウェア更新方法のうち第３の処理方法に対応した処理手順を示すフローチャートである。第３の処理方法では、ブレード１０とクライアントとなるＰＣ２００とのサービスのための通信が切断された状態（オフライン状態）で、ファームウェアの更新を行う。ファームウェア更新対象となる複数のブレード１０において一斉にファームウェア更新処理を行い、フェイルオーバによるブレード１０間でのサービスの移動は行わない。この第３の処理方法の場合は、ファームウェアを更新するブレード１０ではクライアントとなるＰＣ２００に対するサービスの継続ができないが、後述するように他の処理方法（前記第１、第２の処理方法）と組み合わせることで有効な効果を得ることができる。
【０１４９】
Ｓ３０１〜Ｓ３０３の処理は、前記第１の処理方法のＳ１０１〜Ｓ１０３と同様である。Ｓ３０４で、保守ＰＣ１６０は、ファームウェア更新処理実行開始対象となるすべてのブレード１０（例えばブレード＃１、＃２）に対して第２ネットワーク４２を通じてＢＩＯＳ更新指示を送信する。指示に基づき、Ｓ３０５で各ブレード１０のファームウェア更新処理を同時に開始する。
【０１５０】
Ｓ３２１〜Ｓ３２９の処理は、前記第１の処理方法のＳ１２１〜Ｓ１３０と同様である。Ｓ３３０で、ＢＩＯＳが更新された各ブレード１０において、ＯＳ２１が起動され、起動完了後、ＯＳ２１は、ＩＯＰ１２に対し起動完了通知を行う。そして、起動後のＯＳ２１は、担当するサービスをＰＣ２００に対して提供する。ＯＳ２１から起動完了通知を受けたＩＯＰ１２は、保守ＰＣ１６０に対し第２ネットワーク４２を通じてＢＩＯＳ更新完了を通知する（Ｓ３３１）。
【０１５１】
前記第１、第２の処理方法と第３の処理方法との主な違いは、クライアントとなるＰＣ２００からのアクセス中にオンラインでファームウェア更新を実行するか、ＰＣ２００からのアクセスを停止してオフラインでファームウェア更新を行うかの違いである。第３の処理方法では、サービスを中断するあるいは提供しないのでブレード１０間でのサービスの移動が伴わず、また更新対象となる複数の各ブレード１０のファームウェアを同時に更新処理することにより、複数のブレード１０のファームウェア更新に要する時間を最小限にできる利点がある。例えばクライアントとなるＰＣ２００に対するサービス提供の必要が無い、あるいは提供中サービスを一旦中断しても差し支えの無い状況のブレード１０が有る場合には第３の処理方法を選択して更新を行う。
【０１５２】
前記クラスタ構成におけるクラスタ単位で上述した第１のファームウェア更新方法における第１〜第３の処理方法を組み合わせてファームウェア更新を実行できる。例えば、前記クラスタ＃１に接続されているＰＣ２００がサービスのアクセスを切断することができない場合に、クラスタ＃１内のブレード１０については前記第１または第２の処理方法でファームウェア更新を行い、かつ、クラスタ＃２に接続されているＰＣ２００がサービスのアクセスを切断できる場合に、クラスタ＃２内のブレード１０については前記第３の処理方法でファームウェア更新を行う。
【０１５３】
また、前記第１〜第３の処理方法において、一つのクラスタ単位を構成するブレード１０のグループにおいて同時にファームウェア更新処理を行う対象となるブレード１０の数や選択は任意である。また、ファームウェア更新処理の実行順序も任意である。例えば、クラスタ内の一つのブレード１０ごとに順にファームウェア更新処理を実行することができる（例Ａとする）。例えば８個のブレード１０のうち１個のブレードずつ順に更新処理を行う。この場合、複数のブレードのファームウェア更新に要する総時間は長くなる。すなわち、概略「一つのブレードのファームウェア更新処理時間×更新対象ブレード数」の時間がかかる。その代わりに、新ＢＩＯＳイメージ２３の不良や、更新処理中の電源障害（装置全体がダウンする）等の障害の影響範囲が一つのブレードに抑えられる。また例えば、クラスタ内の１／２（半分）のブレード１０ごとにファームウェア更新処理を実行することができる（例Ｂとする）。例えば８個のブレードのうち４個のブレードごとに順に更新処理を行う。この場合、ファームウェア更新に要する総時間は最小限で済む。すなわち、概略「一つのブレードのファームウェア更新時間×２」の時間がかかる。その代わりに、不良な新ＢＩＯＳイメージ２３をフラッシュメモリ１５にライトしてしまうと、クラスタのうち半分のブレード１０のＯＳ２１が起動できなくなるので、その分更新処理のリスクが大きい。また例えば、クラスタ内の１／４のブレード１０ごとにファームウェア更新処理を実行することができる。例えば８個のブレードのうち２個のブレードごとに順に更新処理を行う。この場合、ファームウェア更新に要する総時間は前記二つの場合（例Ａ、例Ｂ）に要する総時間に対する中間となる。すなわち、概略「一つのブレードのファームウェア更新時間×４」の時間がかかる。また更新処理のリスクも中間となる。ブレード１０のファームウェア更新を行う際には、ストレージ装置及びコンピュータシステムの状況に応じて、前記各処理方法をその効率とリスクを考慮して適宜選択し組み合わせて柔軟に行うことができる。
【０１５４】
＜ＯＳ状態情報＞
図１２は、ＯＳ状態情報２７を保持するテーブルについて示す。ストレージ装置の制御装置１００は、ファームウェア更新処理のために、各ブレード１０のＯＳ２１の状態を把握するための制御情報であるＯＳ状態情報２７をいずれかのメモリに保持する。例えば共有メモリ１２０にＯＳ状態情報２７を保持する。ＯＳ状態情報２７は、第１のファームウェア更新方法等によるファームウェア更新を行う際、特にブレード１０間でのサービス移動と、ＯＳ２１のシャットダウンを行う際の判断のために用いられる。各ブレード１０のＩＯＰ１２は、ＣＰＵ１１との直接の通信に基づき自ブレード１０におけるＯＳ２１のインストールや稼動の状態を把握し、共有メモリ１２０に、ＯＳ状態情報２７として格納する。ＩＯＰ１２は、共有メモリ１２０に格納されているＯＳ状態情報２７を参照することで、他ブレード１０を含む各ブレード１０におけるＯＳ２１の状態を認識できる。
【０１５５】
ＯＳ状態情報２７は、データ項目として、ブレード識別情報であるブレード２７ａ、ＯＳインストール状態２７ｂ、ＯＳ稼動状態２７ｃを有する。ＯＳインストール状態２７ｂは、“インストール済み”、“未インストール”などの状態である。ＯＳ稼動状態２７ｃは、“稼動中”、“非稼動”、“サービス停止”などの状態である。前記“稼動中”状態は、該当ブレード１０のＯＳ２１が起動されていてＰＣ２００に対するサービスを提供中であることを示す。前記“非稼動”状態は、該当ブレード１０のＯＳ２１がシャットダウンされていることを示す。前記“サービス停止”状態は、該当ブレード１０のＯＳ２１は起動しているがＰＣ２００に対するサービスは提供していない状態である。“サービス停止”状態には、フェイルオーバによりサービスを他ブレード１０へ引き継いでいる状態も含む。
【０１５６】
前記第１のファームウェア更新方法において、ファームウェア更新処理中にＯＳ２１をシャットダウンすることが必要かどうかはＯＳ２１の状態による。このために、ＩＯＰ１２は、共有メモリ１２０上のＯＳ状態情報２７を参照してＯＳ２１のシャットダウンの要否を判定する。例えば前記Ｓ１２３において、ＩＯＰ１２は、ＯＳ状態情報２７に基づき、該当ＯＳ２１のＯＳ稼動状態２７ｃが前記“非稼動”である場合、既にシャットダウンされている状態であるため、該当ＯＳ２１に対しシャットダウン指示は行わず、次のステップの処理（ＣＰＵ１１のリセット）に移行する。また、ＩＯＰ１２は、ＯＳ２１のシャットダウンに先立ち、クラスタ内の他ブレード１０のＯＳ２１が稼動しているかどうかを、ＯＳ状態情報２７を参照してチェックする。クラスタ内の他ブレード１０のＯＳ２１の稼動状態が“稼動中”でない場合は、自ＯＳ２１で提供しているサービスの引き継ぎのための移動ができないので、ＣＰＵ１１上で稼動するＯＳ２１に対するシャットダウン指示は行わずに処理を中止する。
【０１５７】
保守ＰＣ１６０や管理用ＰＣ２００は、前記図７，８，１２等に示すテーブルの情報や、前記図６に示すクラスタ構成に関する情報等を、出力装置画面に表示することが可能である。保守員やユーザ側管理者は画面に表示された情報を参照してファームウェア更新のための指示を入力する。
【０１５８】
＜ＢＩＯＳイメージ＞
図１３は、ファームウェア更新に用いる新ＢＩＯＳイメージ２３のデータ構成を示す説明図である。新ＢＩＯＳイメージ２３は、ＢＩＯＳバージョン２３ａ、ＢＩＯＳコード２３ｂ、チェックコード２３ｃを有する。ＢＩＯＳバージョン２３ａは、ＢＩＯＳコード２３ｂのバージョンを表わす情報である。ＢＩＯＳバージョン２３ａは、対象のファームウェアについて更新を行う必要があるかどうかのバージョン判断処理の際に参照される。ＢＩＯＳコード２３ｂは、ＢＩＯＳ本体を構成するコードである。ＢＩＯＳコード２３ｂは、ＯＳ２１の起動処理のためのコードを含んでいる。チェックコード２３ｃは、ＢＩＯＳコード２３ｂから生成されるチェック処理用のコードである。チェック処理は、ＢＩＯＳコード２３ｂすなわち新ＢＩＯＳが正常かどうか、すなわち新ＢＩＯＳイメージ２３の各部間での転送中などに正しく転送され壊れていないかどうかをチェックするための処理であり、新ＢＩＯＳイメージ２３を転送する処理を行う各部等において行われる。チェック処理を行うのは、例えば保守ＰＣ１６０、ブレード１０におけるＩＯＰ１２やＣＰＵ１１等である。
【０１５９】
ファームウェア更新処理中、各部間での新ＢＩＯＳイメージ２３の転送などに伴うタイミングで、前記各部においてチェックコード２３ｃを使用してＢＩＯＳコード２３ｂのチェック処理を行う。チェックコード２３ｃを使用してＢＩＯＳコード２３ｂをチェックした結果がエラーとなった場合はそのＢＩＯＳコード２３ｂすなわち新ＢＩＯＳが不良であるので、保守ＰＣ１６０及びストレージ装置はファームウェア更新処理を中断する。前記チェック処理を行うタイミングは、例えば、保守ＰＣ１６０がＦＤ３１や保守センタ３２から新ＢＩＯＳイメージ２３をメモリ上に取得した時に保守ＰＣ１６０により行う。また、保守ＰＣ１６０からブレード１０のＩＯＰ１２に対しメモリＢ１４へと新ＢＩＯＳイメージ２３を転送した時に、ＩＯＰ１２により行う。また、ブレード１０のメモリＡ１３上からフラッシュメモリ１５上に新ＢＩＯＳイメージ２３をライトする直前に、ＣＰＵ１１上のＢＩＯＳ更新プログラム２２により行う。なお前記チェック処理は、前記各部すべてで行うようにしてもよいし、いずれかの部分で１回のみ例えばフラッシュメモリ１５上にライトする直前のみ等で行うようにしてもよい。
【０１６０】
以上、実施の形態１のストレージ装置では、第１のファームウェア更新方法により、クラスタ構成によってブレード１０を単位にファームウェア更新のためのフェイルオーバ（サービス移動処理）を行いながらファームウェア更新対象となる各ブレード１０のファームウェアの更新処理を順次に実行する。これにより、クライアントとなるＰＣ２００に対するサービスの提供を継続したままファームウェアの更新を完了できる。特に実施の形態１の場合、共有メモリ１２０にＢＩＯＳ更新プログラム２２及び新ＢＩＯＳイメージ２３を格納するため、後述するようにストレージ装置へのブレード１０の増設や交換を行った契機でも最新ＢＩＯＳへの更新が可能である。また、ＯＳ２１が起動できない場合、例えばＯＳ２１の障害やＯＳ２１のインストール前などの場合においてもファームウェアの更新を行うことができる。
【０１６１】
（実施の形態２）
次に、本発明の実施の形態２におけるストレージ装置について以下説明する。図１４は、本発明の実施の形態２におけるストレージ装置を含むコンピュータシステム全体の機能ブロック構成を示す。本図では、特に制御装置１００を構成する回路基板の保持するファームウェアの更新を行うにあたり係わる部位を中心に図示している。実施の形態２のストレージ装置のハードウェア構成は実施の形態１と同様であるが、ソフトウェア的に実行される処理が異なる。実施の形態２でも実施の形態１と同様に、クラスタを構成し、またサービスのための制御情報やＯＳ状態情報２７をメモリに格納・管理する。
【０１６２】
実施の形態２のストレージ装置でのファームウェア更新の方法（第２のファームウェア更新方法と称する）では、ブレード１０のＣＰＵ１１上で稼動するＯＳ２１による制御を中心にファームウェアの更新を行う。ファームウェア更新対象となる回路基板を含んでクラスタを構成する。ユーザ側管理者が使用する管理用ＰＣ２００は、ファームウェア更新対象となるすべてのブレード１０にアクセス可能であり、ブレード１０のＣＰＵ１１上で稼動するＯＳ２１と通信可能である。ＯＳ２１に対するファームウェア更新のためのサービス移動（フェイルオーバ）の指示は、管理用ＰＣ２００からユーザ側管理者等が指示入力することで実行される。実施の形態２では、ファームウェアの更新に保守ＰＣ１６０の使用は必要無い。
【０１６３】
図１４において、制御装置１００を構成するブレードであるブレード＃１及びブレード＃２（１０）は、それぞれ前記チャネル制御部１１０に対応する。本図ではクラスタ構成として２枚のブレード１０のみ示すが、複数のブレード１０によりクラスタが構成可能である。ブレード１０のハードウェア構成は、実施の形態１の場合と同様である。実施の形態２では、前記第２ネットワーク４２及びＬＡＮコントローラ１７の使用は必要無い。
【０１６４】
管理用ＰＣ２００は、フェイルオーバ等の実行のための管理機能が専用ソフトウェア上で利用可能であり、ユーザ側管理者の指示入力に基づきフェイルオーバ指示等をブレード１０に対して実行可能である。管理用ＰＣ２００は、ＦＤ３１からデータを読み取る処理を行う。ＦＤ３１は、ＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３とを記憶している。また管理用ＰＣ１６０は、通信回線を通じて前記保守センタ３２からＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３とをダウンロードして取得してもよい。第１ネットワーク４１は、主にＰＣ２００に対するサービス提供用のネットワークであり、前記ＬＡＮ４００やＳＡＮ５００等に対応する。第１ネットワーク４１を通じて管理用ＰＣ２００を含むＰＣ２００と、ファームウェア更新対象のブレード１０との間で通信が可能である。
【０１６５】
実施の形態２で、管理用ＰＣ２００のＣＰＵと、ブレード１０のＣＰＵ１１では、後述するファームウェアの更新に係わる各種処理を実現するためのプログラムが実行される。
【０１６６】
＜第２のファームウェア更新方法＞
前記図１４を参照しながら、第２のファームウェア更新方法について説明する。ファームウェア更新処理対象となるブレード１０の例として、制御装置１００に複数接続されているブレード１０のうちの前記ブレード＃１とブレード＃２を対象とする。
【０１６７】
図１５は、実施の形態２のストレージ装置での第２のファームウェア更新方法に対応した処理手順を示すフローチャートである。第２のファームウェア更新方法では、オペレータ（ユーザ側管理者等）を介入して手動操作であるいは自動でフェイルオーバを実行してクライアントとなるＰＣ２００に対するサービスのための通信を継続したまま、各ブレード１０のファームウェアの更新を行う。また、第１ネットワーク４１を介して管理用ＰＣ２００からの指示を起点として前記ファームウェア更新のためのフェイルオーバを行う。以下、例として、ブレード＃１、＃２の順でファームウェア更新処理を実行する。
【０１６８】
まず、ユーザ側管理者の操作に基づき、管理用ＰＣ２００から、ファームウェア更新対象のブレード１０のうちファームウェア更新処理実行開始対象となるブレード（例えばブレード＃１）１０のＯＳ２１に対して、提供中サービスを他のファームウェア更新処理実行開始対象でないブレード（例えばブレード＃２）１０へ移動させるためのサービス移動指示を送信する（Ｓ４０１）。
【０１６９】
管理用ＰＣ２００から前記ファームウェア更新処理のためのサービス移動指示を受けたブレード（ブレード＃１）１０のＯＳ２１は、他のブレード（例えばブレード＃２）のＯＳ２１と通信し、自ＯＳ２１で提供中のサービスを他ＯＳ２１へと引き継ぐ処理を行う（Ｓ４０２）。サービス移動に伴い前記システムデバイスの制御情報も変更される。
【０１７０】
サービス移動後、前記ファームウェア更新処理実行開始対象のブレード（ブレード＃１）１０についてのファームウェア更新処理を実行開始する（Ｓ４０３）。
【０１７１】
Ｓ４０３では、まず、管理用ＰＣ２００から、第１ネットワーク４１を通じて、対象ブレード１０のＣＰＵ１１及びメモリＡ１３へ、ＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３を送信し、メモリＡ１３へとロードする（Ｓ４２１）。
【０１７２】
次に、対象ブレード１０のＣＰＵ１１でメモリＡ１３上のＢＩＯＳ更新プログラム２２を実行して、ＢＩＯＳ更新プログラム２２は、メモリＡ１３上にロードされた新ＢＩＯＳイメージ２３を、フラッシュメモリ１５の旧ＢＩＯＳ２０上にライトする（Ｓ４２２）。そして、ＢＩＯＳ更新プログラム２２は、ＣＰＵ１１をハードウェア的にリセットして当該ブレード１０のシステムをリブートする（Ｓ４２３）。
【０１７３】
前記リブートにより前記ブレード１０のフラッシュメモリ１５上の新ＢＩＯＳが起動される（Ｓ４２４）。起動された新ＢＩＯＳによる処理によりＯＳ２１が起動され、ＢＩＯＳ更新が有効な状態となる（Ｓ４２５）。以上で対象ブレード１０におけるファームウェア更新処理が完了する。
【０１７４】
前記Ｓ４０３の処理により前記ファームウェア更新対象のブレード１０のうち対象ブレード（ブレード＃１）１０のファームウェア更新処理を完了後、次にＳ４０４以後で、ファームウェア更新処理完了済みのブレード（ブレード＃１）１０にサービスを戻すサービス移動処理、あるいは、次のファームウェア更新処理実行開始対象となるブレード（ブレード＃２）１０のファームウェア更新処理のためのサービス移動処理を実行する。図１５に示す処理手順の例ではこれらサービス移動処理をまとめて行う。
【０１７５】
Ｓ４０４で、ユーザ側管理者の操作に基づき、管理用ＰＣ２００から、次のファームウェア更新処理実行開始対象となるブレード（ブレード＃２）１０のＯＳ２１に対して、提供中サービスを他のファームウェア更新処理実行開始対象でないブレード（例えばブレード＃１）１０へ移動させるためのサービス移動指示を送信する（Ｓ４０４）。本例ではファームウェア更新の順序として、ブレード＃１の更新の次に、ブレード＃１のサービスを引き継いだブレード＃２を更新対象として選択している。
【０１７６】
管理用ＰＣ２００から前記ファームウェア更新処理のためのサービス移動指示を受けたブレード（ブレード＃２）１０のＯＳ２１は、他のブレード（ブレード＃１）１０のＯＳ２１と通信し、自ＯＳ２１で提供中のサービスを他ＯＳ２１へと引き継ぐ処理を行う（Ｓ４０５）。サービス移動に伴い前記システムデバイスの制御情報も変更される。本例ではサービスの移動として、ブレード＃２からブレード＃１へ、ブレード＃２で元々提供していたサービスの移動と、前記ブレード＃１から引き継いでいたサービスの移動（すなわちフェイルバック）とを行っている。
【０１７７】
サービス移動後、前記ファームウェア更新処理実行開始対象のブレード（ブレード＃２）１０についてのファームウェア更新処理を実行開始する（Ｓ４０６）。当該処理は、前記Ｓ４０３における処理と同様である。これにより対象ブレード（ブレード＃２）１０のフラッシュメモリ１５上のＢＩＯＳが更新され、ＢＩＯＳ更新が有効な状態となる。
【０１７８】
前記Ｓ４０６の処理により対象ブレード（ブレード＃２）１０のファームウェア更新処理を完了後、次にＳ４０７以後で、ファームウェア更新処理完了済みのブレード（ブレード＃２）１０にサービスを戻すサービス移動処理、あるいは、次のファームウェア更新処理実行開始対象となるブレード１０のファームウェア更新処理のためのサービス移動処理を実行する。本例では、ブレード＃１からブレード＃２へ、ブレード＃２で元々提供していたサービスを戻すサービス移動を行ってファームウェア更新が完了する。
【０１７９】
すなわち、ユーザ側管理者の操作に基づき、管理用ＰＣ２００から、前記ファームウェア更新処理完了済みのブレード（ブレード＃２）１０のサービスを引き継いでいるブレード（ブレード＃１）１０のＯＳ２１に対して、オリジナルブレード（ブレード＃２）１０へサービスを戻すためのサービス移動指示を送信する（Ｓ４０７）。
【０１８０】
そして、管理用ＰＣ２００から前記サービス移動指示を受けたブレード（ブレード＃１）１０のＯＳ２１は、他のブレード（ブレード＃２）１０のＯＳ２１と通信し、自ＯＳ２１で提供中のサービスのうち元々他のブレード（ブレード＃２）で提供していたサービスをそのオリジナルブレード１０へと戻す処理を行う（Ｓ４０８）。サービス移動に伴い前記システムデバイスの制御情報も変更される。次のファームウェア更新処理実行対象のブレードが無くなったらファームウェア更新処理を終了する。
【０１８１】
実施の形態２においても、実施の形態１と同様に、前記クラスタ構成におけるクラスタ単位で前記第１のファームウェア更新方法における第１〜第３の処理方法に相当する処理方法を組み合わせてファームウェア更新を実行できる。すなわち、管理用ＰＣ２００からブレード１０に対する前記ファームウェア更新のためのフェイルオーバ指示の発行は、オペレータ介入により手動操作で各ブレードに対し行うようにしてもよいし、ソフトウェア的に自動で順に処理してもよい。また、ブレード１０についてサービスを中断してファームウェア更新を行うことを組み合わせても良い。また、実施の形態１と同様に、一つのクラスタ単位を構成するブレード１０のグループにおいて同時に複数のブレード１０でファームウェア更新処理を行うことが可能である。前記同時にファームウェア更新処理を行う対象となるブレード１０の数や選択は任意である。また、ファームウェア更新処理の実行順序も任意である。
【０１８２】
以上、実施の形態２のストレージ装置では、第２のファームウェア更新方法により、クラスタ構成によってブレード１０を単位にファームウェア更新のためのフェイルオーバを行いながらファームウェア更新対象となる各ブレード１０のファームウェアの更新処理を順次に実行する。これにより、クライアントとなるＰＣ２００に対するサービスの提供を継続したままファームウェアの更新を完了できる。特に実施の形態２の場合、ＰＣ２００等の一般的なコンピュータ機器からブレード１０のファームウェア更新のためのローディング（ファイル転送）及び更新処理が可能である。またＢＩＯＳ更新プログラム２２は、汎用的なＯＳ２１上で動作するアプリケーションとして機能するので、ＯＳ２１の機能と組み合わせて動作させることが可能である。これにより例えば、ＯＳ２１の有するスケジュール機能を用いて、夜間に無人でブレード１０のＢＩＯＳ更新を行うこと等が可能である。
【０１８３】
＜ブレード増設時のファームウェア更新＞
次に、前記第１のファームウェア更新方法を用いてブレード増設時のファームウェア更新を行う処理について説明する。図１６は、実施の形態１のストレージ装置へのブレード増設時のファームウェア更新処理に係わる構成を示す説明図である。ＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３は、保守ＰＣ１６０、ブレード１０、共有メモリ１２０等のうち少なくともいずれかの箇所には存在する。
【０１８４】
ストレージ装置の制御装置１００にブレード１０を増設する際、その増設対象のブレード１０にはまだＯＳ２１がインストールされていない状態である。従って、この場合、前記第２のファームウェア更新方法は適用できず、前記第１のファームウェア更新方法をもとにして、ブレード１０のＩＯＰ１１による制御を中心として旧ＢＩＯＳ２０を含むファームウェアの更新を行う。例として、ブレード＃１、＃２を装着済みのストレージ装置に対し更にブレード＃３を増設する場合について説明する。
【０１８５】
上記ブレード増設を行う場合において、更にそのブレード増設時の状況の違いに応じた以下の第１〜第３の処理方法が有る。各状況の違いに応じてファームウェア更新処理を行う。なお前記ブレード増設時の状況の違いは、ストレージ装置内の各部、ＩＯＰ１２や保守ＰＣ１６０等による処理で自動的に判断される。例えば、ＩＯＰ１２や保守ＰＣ１２０が共有メモリ１２０を参照して新ＢＩＯＳイメージ２３が有るかどうか判断できる。
【０１８６】
まず、ブレード増設時における第１の処理方法は、ブレード増設時の状況として共有メモリ１２０に新ＢＩＯＳイメージ２３が格納されている場合の処理である。図１７は、ブレード増設時における第１の処理方法に対応した処理手順を示すフローチャートである。共有メモリ１２０に新ＢＩＯＳイメージ２３が格納されている場合とは、例えば、前記第１のファームウェア更新処理方法における代表ＩＯＰ１２がメモリＢ１４から共有メモリ１２０へＢＩＯＳ更新プログラム２２及び新ＢＩＯＳイメージ２３を格納処理している場合である。
【０１８７】
まず、保守員等の作業によりストレージ装置のスロットに増設対象となる新たなブレード＃３（１０）が装着され、通電される（Ｓ５０１）。通電後のブレード＃３（１０）は、自フラッシュメモリ１５上に記憶されているＢＩＯＳ（旧ＢＩＯＳ）２０と、共有メモリ１２０に格納されているＢＩＯＳ（新ＢＩＯＳイメージ２３）とでそのバージョンの違いをチェックするバージョン判断処理を行う（Ｓ５０２）。このバージョン判断処理では、前記新ＢＩＯＳイメージ２３に含まれているＢＩＯＳバージョン２３ａの情報等を参照して各ＢＩＯＳにおけるバージョンの大小を比較すること等によりＢＩＯＳ更新の要否の判断を行う。
【０１８８】
バージョン判断の結果、バージョンが一致している場合（Ｓ５０３−Ｎｏ）、ＢＩＯＳ２０の更新が必要ないと判断して、増設ブレード＃３（１０）のＢＩＯＳ２０の更新を行わずに終了する。バージョン判断の結果、バージョンが不一致の場合（Ｓ５０３−Ｙｅｓ）、すなわち増設ブレード＃３（１０）のＢＩＯＳ２０を新ＢＩＯＳイメージ２３に含まれるＢＩＯＳにバージョンアップする必要があると判断した場合、増設ブレード＃３（１０）のＢＩＯＳ２０についてのファームウェア更新処理を行う（Ｓ５０４）。
【０１８９】
Ｓ５０４の処理において、まず、増設ブレード＃３（１０）のＢＩＯＳ（旧ＢＩＯＳ）２０は、同ブレード内のＩＯＰ１２と通信し、ＩＯＰ１２による処理を通じて共有メモリ１２０からＢＩＯＳ更新プログラム２２をメモリＡ１３へロードする。またこの際、同ＩＯＰ１２は、共有メモリ１２０から新ＢＩＯＳイメージ２３をメモリＢ１４へ取得する（Ｓ５２１）。次に、増設ブレード＃３（１０）の旧ＢＩＯＳ２０は、前記ＢＩＯＳ更新プログラム２２に制御を移す（Ｓ５２２）。
【０１９０】
次に、ＢＩＯＳ更新プログラム２２は、ＩＯＰ１２と通信して新ＢＩＯＳイメージ２３をメモリＢ１４からメモリＡ１３にロードする（Ｓ５２３）。そして、ＢＩＯＳ更新プログラム２２は、前記メモリＡ１３にロードされた新ＢＩＯＳイメージ２３を、フラッシュメモリ１５の旧ＢＩＯＳ２０上にライトする（Ｓ５２４）。そして、ＢＩＯＳ更新プログラム２２は、ＣＰＵ１１をハードウェア的にリセットしてブレード１０のシステムをリブートする（Ｓ５２５）。前記リブートによりフラッシュメモリ１５上の新ＢＩＯＳが起動され、ＢＩＯＳ更新が有効な状態となる（Ｓ５２６）。
【０１９１】
次に、ブレード増設時における第２の処理方法は、ブレード増設時の状況として共有メモリ１２０に新ＢＩＯＳイメージ２３が格納されておらず、増設ブレード１０以外の装着済みのブレード１０が既に動作している場合の処理である。図１８は、ブレード増設時における第２の処理方法に対応した処理手順を示すフローチャートである。第２の処理方法の場合、共有メモリ１２０上には更新に必要となる新ＢＩＯＳイメージ２３が無いので、新ＢＩＯＳイメージ２３を既に有している動作状態のブレード１０から新ＢＩＯＳイメージ２３を共有メモリ１２０へと格納させる処理を行わせてファームウェア更新を行う。なおＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３はセットで扱われて共有メモリ１２０に格納される。例として、ブレード＃３（１０）の増設時にブレード＃１、＃２（１０）が既に装着・動作済みであり、共有メモリ１２０に新ＢＩＯＳイメージ２３が格納されていない状況とする。
【０１９２】
各部間の通信を通じて共有メモリ１２０に新ＢＩＯＳイメージ２３が無いことが判断されると、まず、保守ＰＣ１６０は、第２ネットワーク４２を介して、動作済みのブレード＃１（１０）のＩＯＰ１２に対して、共有メモリ１２０への新ＢＩＯＳイメージ２３の格納指示を行う（Ｓ６０１）。
【０１９３】
ブレード＃１（１０）のＩＯＰ１２は、ＣＰＵ１１上で稼動するＯＳ２１に対してフラッシュメモリ・リード指示を行う（Ｓ６０２）。この指示に基づきＣＰＵ１１上のＯＳ２１は、フラッシュメモリ１５上に記憶されているＢＩＯＳ２０すなわち新ＢＩＯＳイメージ２３をリードし、ＩＯＰ１２へ送信する（Ｓ６０３）。
【０１９４】
ＩＯＰ１２は、ＣＰＵ１１上のＯＳ２１から受信した新ＢＩＯＳイメージ２３を、内部バス４３を通じて共有メモリ１２０に格納する処理を行う（Ｓ６０４）。
【０１９５】
共有メモリ１２０に新ＢＩＯＳイメージ２３が格納された状態になると、ＩＯＰ１２からの通信に基づき、保守ＰＣ１６０の画面上に「ブレード装着指示」が表示される。この指示は、共有メモリ１２０に新ＢＩＯＳイメージ２３が格納され、ブレード１０を装着可能な状態となったことを保守員に対し示すものである。保守員は、保守ＰＣ１６０上の指示に基づき、ストレージ装置のスロットに増設対象のブレード＃３（１０）を装着する。装着によりブレード＃３（１０）に通電される（Ｓ６０５）。
【０１９６】
この後、前記ブレード増設時における第１の処理方法と同様の処理が行われる（Ｓ６０６〜Ｓ６０８）。すなわち、Ｓ６０６で、通電後のブレード＃３（１０）は、自フラッシュメモリ１５上に記憶されているＢＩＯＳ２０と、共有メモリ１２０に格納されているＢＩＯＳ（新ＢＩＯＳイメージ２３）とでそのバージョンの違いをチェックするバージョン判断処理を行い、判断結果に基づき、バージョンが不一致の場合（Ｓ５０３−Ｙｅｓ）、Ｓ６０８で増設ブレード＃３（１０）のＢＩＯＳ２０についてのファームウェア更新処理を行う。Ｓ６０８の処理は前記Ｓ５２１〜Ｓ５２６と同様である。
【０１９７】
次に、ブレード増設時における第３の処理方法は、ブレード増設時の状況として共有メモリ１２０に新ＢＩＯＳイメージ２３が格納されておらず、増設ブレード１０以外の装着済みのブレード１０が動作していない場合の処理である。図１９は、ブレード増設時における第３の処理方法に対応した処理手順を示すフローチャートである。第３の処理方法の場合、共有メモリ１２０上には更新に必要となる新ＢＩＯＳイメージ２３が無く、他の装着済みのブレード１０からも非動作状態のため新ＢＩＯＳイメージ２３を取得できないので、保守ＰＣ１６０を通じて新ＢＩＯＳイメージ２３を取得させる処理を行わせてファームウェア更新を行う。例として、ブレード＃３（１０）の増設時にブレード＃１、＃２（１０）が既に装着済みであるが動作しておらず、共有メモリ１２０にも新ＢＩＯＳイメージ２３が格納されていない状況とする。
【０１９８】
各部間の通信を通じて共有メモリ１２０に新ＢＩＯＳイメージ２３が無く、増設ブレード＃３（１０）以外の他ブレード（＃１、＃２）１０も非動作状態であることが判断されると、まず、保守ＰＣ１６０の画面上に「ブレード装着指示」が表示される。保守員が前記指示に基づきストレージ装置のスロットに増設対象のブレード＃３（１０）を装着し、装着により通電される（Ｓ７０１）。
【０１９９】
次に、保守ＰＣ１６０は、ＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３を、ＦＤ３１あるいは保守センタ３２からメモリ上に取得する（Ｓ７０２）。次に、保守ＰＣ１６０は、増設ブレード＃３（１０）のＩＯＰ１２へ、ＢＩＯＳ更新プログラム２２及び新ＢＩＯＳイメージ２３を、第２ネットワーク４２を経由して送信する（Ｓ７０３）。
【０２００】
次に、増設ブレード＃３（１０）のＩＯＰ１２は、保守ＰＣ１６０からメモリＢ１４に受信したＢＩＯＳ更新プログラム２２及び新ＢＩＯＳイメージ２３を、共有メモリ１２０に格納（コピー）する（Ｓ７０４）。その後、前記ブレード増設時における第１の処理方法と同様の処理が行われる（Ｓ７０５〜Ｓ７０７）。すなわち、Ｓ７０５で、増設ブレード＃３（１０）は、自フラッシュメモリ１５上に記憶されているＢＩＯＳ２０と、前記受信した新ＢＩＯＳイメージ２３とでそのバージョンの違いをチェックするバージョン判断処理を行い、判断結果に基づき、バージョンが不一致の場合（Ｓ７０６−Ｙｅｓ）、Ｓ７０７で増設ブレード＃３（１０）のＢＩＯＳ２０についてのファームウェア更新処理を行う。Ｓ７０７の処理は前記Ｓ５２１〜Ｓ５２６と同様である。
【０２０１】
以上のように、ブレード１０の増設時の状況に応じて前記各処理方法で増設ブレード１０のファームウェアの更新が速やかに可能である。
【０２０２】
＜ブレード交換時のファームウェア更新＞
次に、前記第１のファームウェア更新方法を用いてブレード交換時のファームウェア更新を行う処理について説明する。図２０は、実施の形態１のストレージ装置でのブレード交換時のファームウェア更新処理に係わる構成を示す説明図である。ＢＩＯＳ更新プログラム２２と新ＢＩＯＳイメージ２３は、保守ＰＣ１６０、ブレード１０、共有メモリ１２０等のうち少なくともいずれかの箇所には存在する。
【０２０３】
ストレージ装置の制御装置１００でブレード１０を交換する際、その交換後のブレード１０は必ずしも最新のファームウェアが格納されているとは限らない。従って、ブレード１０を交換するタイミングでその交換後のブレード１０に保持されるファームウェアの更新も自動的に判断して実行する。前記第１のファームウェア更新方法をもとにして、ブレード１０のＩＯＰ１１による制御を中心として旧ＢＩＯＳ２０を含むファームウェアの更新を行う。
【０２０４】
例として、ブレード＃１、＃２を装着済みで、ブレード＃１とブレード＃２を含んでクラスタ単位を構成している状態において、ブレード＃２にハードウェア障害等が発生して使用できない状態となったためにブレード＃２を別のブレード＃３に交換する場合について説明する。
【０２０５】
上記ブレード交換を行う場合において、更にそのブレード交換時の状況の違いに応じて前記ブレード増設時の第１〜第３の処理方法と同様の各処理方法でファームウェア更新処理を行う。前記ブレード交換時の状況の違いは、ストレージ装置内の各部による処理で自動的に判断される。
【０２０６】
ブレード＃１とブレード＃２を含むクラスタ構成において、クラスタ内のブレード＃１、＃２間で前記ハートビート通信が行われている。例えばブレード＃２が障害発生により使用できない状態になると、前記ハートビート通信におけるハートビート情報の応答が途絶えることでブレード＃２の障害が検出された状態となる。ブレード＃２の障害が検出されると、クラスタ内の他のブレード１０、本例ではブレード＃１へのフェイルオーバにより、クライアントとなるＰＣ２００に対するサービスが移動される。例えばブレード＃２で動作していたサービス＃２がブレード＃１のＯＳ２１に移動されるものとする。保守員等は、障害が検出されたブレード＃２を別のブレード＃３に交換する。このタイミングで、交換後のブレード＃３内のＢＩＯＳ２０についての更新の要否を判断して必要なら最新ＢＩＯＳへの更新を行う。
【０２０７】
図２１は、ブレード交換時における処理方法に対応した処理手順を示すフローチャートである。まず、前記機構に基づき、ブレード１０（例えばブレード＃２）の障害が検出されると、第２ネットワーク４２を通じて、保守ＰＣ１６０の画面上に、障害状態のブレード１０についての情報が表示される（Ｓ８０１）。
【０２０８】
保守員等は、保守ＰＣ１６０上の表示に基づき障害状態ブレード（＃２）１０についての交換の要否を判断後、交換対象となる障害状態のブレード（＃２）１０を、新しいブレード（＃３）１０に交換する。すなわち、保守員等は、ストレージ装置のスロットから障害状態のブレード（＃２）１０を取り外して、新ブレード（＃３）１０を装着する。装着により交換後のブレード（＃３）１０に通電される（Ｓ８０２）。
【０２０９】
その後は、前記ブレード増設時の処理と略同様の処理である。ブレード交換時の状況に応じて前記第１〜第３の各処理方法と同様に処理方法で処理が行われる（Ｓ８０４３〜Ｓ８０６）。例えば前記第１の処理方法の場合は、交換後ブレード（＃３）１０のフラッシュメモリ上のＢＩＯＳ２０と、共有メモリ１２０に格納されている新ＢＩＯＳイメージ２３とで、ＢＩＯＳのバージョンをチェックし（Ｓ８０３）、バージョンが不一致でＢＩＯＳ更新の必要がある場合は（Ｓ８０４−Ｙｅｓ）、交換後のブレード（＃３）１０のＢＩＯＳ２０についてファームウェア更新処理が行われる（Ｓ８０５）。Ｓ８０５の処理は、前記Ｓ５２１〜Ｓ５２６と同様である。これにより、交換後ブレード（＃３）１０で新ＢＩＯＳが起動され、ＯＳ２１が起動される。
【０２１０】
交換後ブレード（＃３）１０のＢＩＯＳが更新され更新が有効な状態となった後、前記障害状態のブレード（＃２）１０のサービス（サービス＃２）を引き継いだブレード（＃１）１０で動作しているサービスのうち、元々交換前のブレード（＃２）１０で動作していたサービス（サービス＃２）を、交換後のブレード（＃３）１０へ移動させるフェイルオーバを行う（Ｓ８０６）。
【０２１１】
以上のように、障害等によるブレード１０の交換時の状況に応じて前記各処理方法で交換後のブレード１０についてのファームウェアの更新が速やかに可能である。
【０２１２】
以上説明したように、本発明の各実施の形態のストレージ装置では、クラスタ構成でのブレード間でのサービス移動と、ブレードのファームウェアの更新とを関連付けて動作させるようにしたことで、クライアントに対するサービスの提供を継続したままブレードのファームウェアの更新を行うことができる。またブレードの状況に応じて各処理方法で効率的にファームウェアの更新を行うことができる。
【０２１３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【０２１４】
本発明は、ストレージ装置、及びストレージ装置を含んで構成されるコンピュータシステム等に利用可能である。
【図面の簡単な説明】
【０２１５】
【図１】本発明の各実施の形態に係わるストレージ装置の全体のハードウェア外観構成を示す図である。
【図２】本発明の各実施の形態に係わるストレージ装置の制御装置のハードウェア外観構成を示す図である。
【図３】本発明の各実施の形態に係わるストレージ装置を含むコンピュータシステム全体の機能ブロック構成を示す図である。
【図４】本発明の実施の形態１におけるストレージ装置を含むコンピュータシステム全体の機能ブロック構成を示す図である。
【図５】本発明の実施の形態１におけるストレージ装置での、ブレード基板のクラスタ構成について示す説明図である。
【図６】本発明の実施の形態１におけるストレージ装置での、複数のブレードで複数のクラスタを構成する例について示す説明図である。
【図７】本発明の実施の形態１におけるストレージ装置での、記憶デバイス上に保持されるサービス提供に係わる制御情報、特にサービス情報について示す表である。
【図８】本発明の実施の形態１におけるストレージ装置での、記憶デバイス上に保持されるサービス提供に係わる制御情報、特にディスク情報について示す表である。
【図９】本発明の実施の形態１におけるストレージ装置での、第１のファームウェア更新方法のうち第１の処理方法に対応した処理手順を示すフローチャートである。
【図１０】本発明の実施の形態１におけるストレージ装置での、第１のファームウェア更新方法のうち第２の処理方法に対応した処理手順を示すフローチャートである。
【図１１】本発明の実施の形態１におけるストレージ装置での、第１のファームウェア更新方法のうち第３の処理方法に対応した処理手順を示すフローチャートである。
【図１２】本発明の実施の形態１におけるストレージ装置での、ブレードのＯＳの状態を把握するための制御情報について示す表である。
【図１３】本発明の実施の形態１におけるストレージ装置での、ファームウェア更新に用いる新ＢＩＯＳイメージのデータ構成を示す説明図である。
【図１４】本発明の実施の形態２におけるストレージ装置を含むコンピュータシステム全体の機能ブロック構成を示す図である。
【図１５】本発明の実施の形態２におけるストレージ装置での、第２のファームウェア更新方法に対応した処理手順を示すフローチャートである。
【図１６】本発明の実施の形態１におけるストレージ装置での、ブレード基板増設時のファームウェア更新処理に係わる構成を示す説明図である。
【図１７】本発明の実施の形態１におけるストレージ装置での、ブレード基板増設時における第１の処理方法に対応した処理手順を示すフローチャートである。
【図１８】本発明の実施の形態１におけるストレージ装置での、ブレード基板増設時における第２の処理方法に対応した処理手順を示すフローチャートである。
【図１９】本発明の実施の形態１におけるストレージ装置での、ブレード基板増設時における第３の処理方法に対応した処理手順を示すフローチャートである。
【図２０】本発明の実施の形態１におけるストレージ装置での、ブレード基板交換時のファームウェア更新処理に係わる構成を示す説明図である。
【図２１】本発明の実施の形態１におけるストレージ装置での、ブレード基板交換時における処理方法に対応した処理手順を示すフローチャートである。
【符号の説明】
【０２１６】
１００…制御装置、１１０…チャネル制御部、１２０…共有メモリ、１３０…キャッシュメモリ、１４０…ディスク制御部、１５０…接続部、１５１…内部ＬＡＮ、１６０…管理端末（保守ＰＣ）、１７０…ファン、２００…情報処理装置（ＰＣ）、３００…記憶デバイス、４００…ＬＡＮ、５００…ＳＡＮ、６００，６１０…ストレージ装置、９００，９１０…バックアップデバイス、１０…ブレード、１１…ＣＰＵ、１２…ＩＯＰ、１３…メモリＡ、１４…メモリＢ、１５…フラッシュメモリ、１６，１７…ＬＡＮコントローラ、２０…ＢＩＯＳ、２１…ＯＳ、２２…ＢＩＯＳ更新プログラム、２３…新ＢＩＯＳイメージ、２５…サービス情報、２６…ディスク情報、２７…ＯＳ状態情報、３１…ＦＤ、３２…保守センタ、４１…第１ネットワーク、４２…第２ネットワーク、４３…内部バス、７１〜７３…クラスタ、８１，８２…サービス、９１〜９４…パス。
【図１】
2006031312.tif 000003
【図２】
2006031312.tif 000004
【図３】
2006031312.tif 000005
【図４】
2006031312.tif 000006
【図５】
2006031312.tif 000007
【図６】
2006031312.tif 000008
【図７】
2006031312.tif 000009
【図８】
2006031312.tif 000010
【図９】
2006031312.tif 000011
【図１０】
2006031312.tif 000012
【図１１】
2006031312.tif 000013
【図１２】
2006031312.tif 000014
【図１３】
2006031312.tif 000015
【図１４】
2006031312.tif 000016
【図１５】
2006031312.tif 000017
【図１６】
2006031312.tif 000018
【図１７】
2006031312.tif 000019
【図１８】
2006031312.tif 000020
【図１９】
2006031312.tif 000021
【図２０】
2006031312.tif 000022
【図２１】
2006031312.tif 000023