(57)【要約】【課題】  保守部品配備されている部品に実装されているファームウェアの改良版への更新をより簡易化する。【解決手段】  ストレージシステムは、メイン電源が投入されると（Ｓ１０１）、ストレージシステムの資源管理プロセッサに実装されているメインファームウェアのリビジョンを格納するリビジョンテーブルを作成する（Ｓ１０３）。次に、システムドライブからメインファームウェアをキャッシュメモリ上にロードする（Ｓ１０４）。資源管理プロセッサに実装されているメインファームウェアのリビジョンが古い場合には、そのメインファームウェアをキャッシュ上にロードされたメインファームウェアに更新する（Ｓ１０６）。【選択図】      図８
2007025933.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムからのＩ／Ｏリクエストに応答してストレージデバイスへのデータ入出力を制御するコントローラと、
筺体資源を管理する資源管理プロセッサと、
前記資源管理プロセッサのメインファームウェアを格納するシステムドライブと、
を備え、
前記コントローラは、前記資源管理プロセッサに実装されているメインファームウェアのリビジョンと、前記システムドライブに格納されているメインファームウェアのリビジョンとを比較する比較判定を行い、前記資源管理プロセッサに実装されているメインファームウェアのリビジョンが前記システムドライブに格納されているメインファームウェアのリビジョンよりも古い場合に、前記資源管理プロセッサに実装されているメインファームウェアを前記システムドライブに格納されているメインファームウェアに更新する、ストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、
ＦＣ／ＳＡＴＡコンバータを更に備え、
前記システムドライブには、前記ＦＣ／ＳＡＴＡコンバータのメインファームウェアが格納されており、
前記コントローラは、前記ＦＣ／ＳＡＴＡコンバータに実装されているメインファームウェアのリビジョンと、前記システムドライブに格納されているメインファームウェアのリビジョンとを比較する比較判定を行い、前記ＦＣ／ＳＡＴＡコンバータに実装されているメインファームウェアのリビジョンが前記システムドライブに格納されているメインファームウェアのリビジョンよりも古い場合に、前記ＦＣ／ＳＡＴＡコンバータに実装されているメインファームウェアを前記システムドライブに格納されているメインファームウェアに更新する、ストレージシステム。
【請求項３】
請求項１に記載のストレージシステムであって、
ローカルメモリを更に備え、
前記システムドライブには、前記コントローラのメインマイクロソースファイルが前記資源管理プロセッサのメインファームウェアとともに格納されており、
前記コントローラは、前記メインマイクロソースファイルとともに前記メインファームウェアを前記ローカルメモリにロードする、ストレージシステム。
【請求項４】
請求項１に記載のストレージシステムであって、
前記コントローラは、メイン電源投入を契機として前記比較判定を行う、ストレージシステム。
【請求項５】
請求項１に記載のストレージシステムであって、
前記ストレージシステムは、基本筺体と一台又は複数の増設筺体から構成されており、
前記コントローラは、前記ストレージシステムがオンラインの状態で筺体増設が行われたことを契機として前記比較判定を行う、ストレージシステム。
【請求項６】
請求項１に記載のストレージシステムであって、
前記コントローラは、前記ストレージシステムがオンラインの状態で前記コントローラが交換されたことを契機として前記比較判定を行う、ストレージシステム。
【請求項７】
請求項３に記載のストレージシステムであって、
前記コントローラは、前記ストレージシステムがオンラインの状態で前記システムドライブに格納される前記メインマイクロソースファイルが前記メインファームウェアとともに更新されたことを契機として前記比較判定を行う、ストレージシステム。
【請求項８】
請求項１に記載のストレージシステムであって、
前記コントローラは、前記ストレージシステムがオンラインの状態で前記資源管理プロセッサが交換されたことを契機として前記比較判定を行う、ストレージシステム。
【請求項９】
請求項２に記載のストレージシステムであって、
前記コントローラは、前記ストレージシステムがオンラインの状態で前記ＦＣ／ＳＡＴＡコンバータが交換されたことを契機として前記比較判定を行う、ストレージシステム。
【請求項１０】
請求項１に記載のストレージシステムであって、
前記コントローラは、前記ストレージシステムがオンラインの状態において、前記比較判定を一定周期で繰り返し行う、ストレージシステム。
【請求項１１】
ストレージシステムの資源管理を行う資源管理プロセッサに実装されているメインファームウェアのリビジョンを取得するステップと、
前記ストレージシステムのシステムドライブに格納されている前記資源管理プロセッサのメインファームウェアのリビジョンを取得するステップと、
前記資源管理プロセッサに実装されているメインファームウェアのリビジョンと、前記システムドライブに格納されているメインファームウェアのリビジョンとを比較する比較判定を行うステップと、
前記資源管理プロセッサに実装されているメインファームウェアのリビジョンが前記システムドライブに格納されているメインファームウェアのリビジョンよりも古い場合に、前記資源管理プロセッサに実装されているメインファームウェアを前記システムドライブに格納されているメインファームウェアに更新するステップと、
を備える、ストレージシステムのファームウェア自動更新方法。
【請求項１２】
ストレージシステムのＦＣ／ＳＡＴＡコンバータに実装されているメインファームウェアのリビジョンを取得するステップと、
前記ストレージシステムのシステムドライブに格納されている前記ＦＣ／ＳＡＴＡコンバータのメインファームウェアのリビジョンを取得するステップと、
前記ＦＣ／ＳＡＴＡコンバータに実装されているメインファームウェアのリビジョンと、前記システムドライブに格納されているメインファームウェアのリビジョンとを比較する比較判定を行うステップと、
前記ＦＣ／ＳＡＴＡコンバータに実装されているメインファームウェアのリビジョンが前記システムドライブに格納されているメインファームウェアのリビジョンよりも古い場合に、前記ＦＣ／ＳＡＴＡコンバータに実装されているメインファームウェアを前記システムドライブに格納されているメインファームウェアに更新するステップと、
を備える、ストレージシステムのファームウェア自動更新方法。
【請求項１３】
請求項１１に記載のストレージシステムのファームウェア自動更新方法であって、
前記ストレージシステムのメイン電源投入を契機として前記比較判定を行う、ストレージシステムのファームウェア自動更新方法。
【請求項１４】
請求項１１に記載のストレージシステムのファームウェア自動更新方法であって、
前記ストレージシステムがオンラインの状態で筺体増設が行われたことを契機として前記比較判定を行う、ストレージシステムのファームウェア自動更新方法。
【請求項１５】
請求項１１に記載のストレージシステムのファームウェア自動更新方法であって、
前記ストレージシステムがオンラインの状態で前記資源管理プロセッサの交換が行われたことを契機として前記比較判定を行う、ストレージシステムのファームウェア自動更新方法。
【請求項１６】
請求項１２に記載のストレージシステムのファームウェア自動更新方法であって、
前記ストレージシステムがオンラインの状態で前記ＦＣ／ＳＡＴＡコンバータが交換されたことを契機として前記比較判定を行う、ストレージシステムのファームウェア自動更新方法。
【請求項１７】
請求項１１に記載のストレージシステムのファームウェア自動更新方法であって、
前記ストレージシステムがオンラインの状態において、前記比較判定を一定周期で繰り返し行う、ストレージシステムのファームウェア自動更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージシステム及びそのファームウェア自動更新方法に関する。
【背景技術】
【０００２】
データセンタ等のような大規模なデータを取り扱うデータベースシステムでは、ホストコンピュータとは別に構成されたストレージシステムを用いてデータを管理する。このストレージシステムは、例えば、ディスクアレイ装置等から構成される。ディスクアレイ装置は、多数のストレージデバイスをアレイ状に配設して構成されるもので、例えば、RAID（Redundant Array of Independent Inexpensive Disks）に基づいて構築されている。ストレージデバイス群が提供する物理的な記憶領域上には、少なくとも１つ以上の論理ボリュームが形成され、この論理ボリュームがホストシステムに提供される。ホストシステムは、論理ボリュームに対してライトアクセスやリードアクセスを行うことができきる。ところで、このようなストレージシステムが市場に出荷された後において、ストレージシステムの部品に実装されているファームウェアに不具合などが発覚すると、ファームウェアを更新する必要がある。
【０００３】
尚、特許文献１には、ファームウェアの自動ダウンロードについて言及されている。
【特許文献１】特開２００５−７１０４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、保守部品を配備する保守拠点には、ストレージシステムが配備されていないので、保守部品配備されている部品に実装されているファームウェアを改良版のものに更新することは容易でない。現状では、保守部品配備されている部品を全て回収して、改良版のものに交換するか、或いは保守部品配備されている部品に実装されているファームウェアのリビジョンを確認した上で、部品交換を行っているので、更新作業が煩雑である。
【０００５】
本発明はこのような問題点に鑑みてなされたものであり、保守部品配備されている部品に実装されているファームウェアの改良版への更新をより簡易化することを課題とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明のストレージシステムは、ホストシステムからのＩ／Ｏリクエストに応答してストレージデバイスへのデータ入出力を制御するコントローラと、筺体資源を管理する資源管理プロセッサと、資源管理プロセッサのメインファームウェアを格納するシステムドライブとを備える。コントローラは、資源管理プロセッサに実装されているメインファームウェアのリビジョンと、システムドライブに格納されているメインファームウェアのリビジョンとを比較する比較判定を行い、資源管理プロセッサに実装されているメインファームウェアのリビジョンがシステムドライブに格納されているメインファームウェアのリビジョンよりも古い場合に、資源管理プロセッサに実装されているメインファームウェアをシステムドライブに格納されているメインファームウェアに更新する。
【０００７】
ストレージシステムがＦＣ／ＳＡＴＡコンバータを更に備えている場合には、ＦＣ／ＳＡＴＡコンバータのメインファームウェアについても同様に、リビジョンの比較判定を行い、ＦＣ／ＳＡＴＡコンバータに実装されているメインファームウェアのリビジョンがシステムドライブに格納されているメインファームウェアのリビジョンよりも古い場合に、ＦＣ／ＳＡＴＡコンバータに実装されているメインファームウェアをシステムドライブに格納されているメインファームウェアに更新する。
【０００８】
メインファームウェアのリビジョンを比較判定する契機としては、例えば、メイン電源投入時、ストレージシステムの筺体増設時、コントローラ交換時、システムドライブに格納されているメインファームウェアの更新時、資源管理プロセッサ交換時、ＦＣ／ＳＡＴＡコンバータ交換時などを挙げることができる。ストレージシステムがオンラインの状態にあるときには、比較判定を一定周期で繰り返し行ってもよい。
【発明の効果】
【０００９】
本発明によれば、ストレージシステムに実装されているメインファームウェアのリビジョンが古い場合には自動的に新しいリビジョンのファームウェアに更新されるので、ストレージシステムの保守管理が容易になる。
【発明を実施するための最良の形態】
【００１０】
以下、各図を参照しながら本発明の実施形態について説明する。
図１は本実施形態に係るストレージシステム１０の基本筺体２０のシステム構成を示している。ストレージシステム１０は、基本筺体２０単体で構成することもできるし、或いは、基本筺体２０に一台又は複数台の増設筺体を接続することによっても構成できる。増設筺体の詳細については後述する。
【００１１】
ストレージシステム１０は、通信ネットワーク６１を介して一台又は複数台のホストシステム６０に接続している。ホストシステム６０は、例えば、業務用サーバシステム、ワークステーション、メインフレーム、パーソナルコンピュータ等である。通信ネットワーク６１としては、例えば、ＳＡＮ（Storage Area Network）、ＬＡＮ(Local Area Network)、インターネット、専用回線、公衆回線等を挙げることができる。ホストシステム６０がＳＡＮを介してストレージシステム１０に接続する場合には、ホストシステム６０は、ファイバチャネルプロトコルに従って、ストレージシステム１０の記憶資源のデータ管理単位であるブロックを単位としてデータ入出力を要求する。ホストシステム６０がＬＡＮを介してストレージシステム１０に接続する場合には、ホストシステム６０は、ＮＦＳ（Network File System）等のプロトコルにより、ファイル名を指定してファイル単位でのデータ入出力を要求する。ホストシステム６０からのファイルアクセス要求を受け付けるためには、ストレージシステム１０にＮＡＳ（Network Attached Storage）機能を搭載する必要がある。
【００１２】
基本筺体２０は、複数のＦＣ（Fiber Chanel）ディスクドライブ５１と、複数のＦＣディスクドライブ５１へのデータ入出力を制御するコントローラ３０，４０を備える。
【００１３】
コントローラ３０，４０は、複数のＦＣディスクドライブ５１をいわゆるＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，５）で制御することができる。ＲＡＩＤ方式においては、複数のＦＣディスクドライブ５１一つのＲＡＩＤグループとして管理される。ＲＡＩＤグループ上には、ホストシステム６０からのアクセス単位である複数の論理ボリュームが定義されている。各論理ボリュームには、ＬＵＮ（Logical Unit Number）がアサインされる。コントローラ３０，４０と、複数のＦＣディスクドライブ５１は、バックボード５０を介して接続される。
【００１４】
コントローラ３０は、ホストインターフェース（Ｉ／Ｆ）３０１，３０２、ＦＣコントローラ（Ｆ−ＣＴＬ）３０３、データコントローラ（Ｄ−ＣＴＬ）３０４、ＣＰＵ／ＰＣＩブリッジ３０５、メインプロセッサ（ＭＰＵ）３０６、ローカルメモリ（ＬＭ）３０７、キャッシュメモリ（ＣＭ）３０８、ＦＣコントローラ（Ｆ−ＣＴＬ）３０９、ポートバイパス回路（ＰＢＣ）３１０，３１１，３１２，３１３、ＦＣ−ＡＬ（Fibre Channel Arbitrated Loop）３１４，３１５、ＦＣパス３１６，３１７，３１８，３１９、及びＳＥＳ（SCSI Enclosure Service）３２０制御部を備える。
【００１５】
メインプロセッサ３０６は、ホストシステム６０からのＩ／Ｏリクエストに応答して、複数のＦＣディスクドライブ５１へのＩ／Ｏ処理（ライトアクセス又はリードアクセス）を制御する。ローカルメモリ３０７は、メインプロセッサ３０６の各種プログラム（メインマイクロソースファイル等）を格納する他、メインプロセッサ３０６のワークエリアとして機能する。ＣＰＵ／ＰＣＩブリッジ３０５は、メインプロセッサ３０６、ローカルメモリ３０７、及びデータコントローラ３０４を相互に接続する。キャッシュメモリ３０８は、ＦＣディスクドライブ５１に書き込むためのデータ、又はＦＣディスクドライブ５１から読み出したリードデータを一時的に格納するバッファメモリである。キャッシュメモリ３０８は、電源バックアップされており、ストレージシステム１０に電源障害が発生した場合でも、キャッシュデータのロストを防ぐ不揮発性メモリとして構成されている。
【００１６】
ＦＣコントローラ３０３は、ホストインターフェース制御用のコントローラであり、例えば、ファイバチャネルプロトコルによるホストシステム６０からのブロックアクセス要求を受信する機能を有する。一方、ＦＣコントローラ３０９は、バックインターフェース制御用のコントローラであり、複数のＦＣディスクドライブ５１へのデータ入出力を制御する。データコントローラ３０４は、ＣＰＵ／ＰＣＩブリッジ３０５、キャッシュメモリ３０８、及びＦＣコントローラ３０３、３０９を相互に接続し、ホストシステム６０とＦＣディスクドライブ５１との間のデータ転送を制御する。より詳細には、データコントローラ３０４は、ホストシステム６０からのライトアクセスに応答して、ホストシステム６０から受け取ったライトデータ（ダーティデータ）をキャッシュメモリ３０８に書き込む。その後、キャッシュメモリ３０８上のライトデータがある程度蓄積された段階で、データコントローラ３０４は、そのライトデータをＦＣディスクドライブ５１に非同期書き込みする。一方、データコントローラ３０４は、ホストシステム６０からのリードアクセスに応答して、ＦＣディスクドライブ５１から読み取ったリードデータをキャッシュメモリ３０８に書き込むとともに、ホストシステム６０に転送する。
【００１７】
ＦＣコントローラ３０９は、ポートバイパス回路３１０，３１１を介してそれぞれＦＣ−ＡＬ３１４，３１５に接続している。ＦＣ−ＡＬ３１４は、偶数番目のＦＣディスクドライブ５１に接続している。ＦＣ−ＡＬ３１５は、奇数番目のＦＣディスクドライブ５１に接続している。ＦＣ−ＡＬ３１４にループ障害が生じると、ポートバイパス回路３１０は、接続先をＦＣ−ＡＬ３１４からＦＣパス３１６に切り替えることができる。同様に、ＦＣ−ＡＬ３１５にループ障害が生じると、ポートバイパス回路３１１は、接続先をＦＣ−ＡＬ３１５からＦＣパス３１７に切り替えることができる。基本筺体２０に増設筺体が接続されている場合には、ポートバイパス回路３１２は、ＦＣ−ＡＬ３１４を後段のＦＣパス３１８に接続し、ポートバイパス回路３１３は、ＦＣ−ＡＬ３１５を後段のＦＣパス３１９に接続する。
【００１８】
ＳＥＳ制御部３２０は、資源管理プロセッサ（ＲＭＰ１）３２１、及びエンクロージャーコントローラ（Ｅ−ＣＴＬ）３２２を備える。
【００１９】
資源管理プロセッサ３２１は、基本筺体資源（コントローラ３０、電源、バッテリ、ファンユニット、パネルスイッチ、電圧モニタ、パネルＬＥＤ、警告ＬＥＤなど）の監視や制御などを行う。例えば、資源管理プロセッサ３２１は、電圧モニタを基にシステムの電圧監視を行い、電圧異常を検出する。或いは、資源管理プロセッサ３２１は、コントローラ３０の温度監視を行い、温度異常を検出する。或いは、資源管理プロセッサ３１２は、ファンユニットの回転数を制御することにより、システム温度を調整する。或いは、資源管理プロセッサ３２１は、パネルＬＥＤや警告ＬＥＤの点滅を制御する。或いは、資源管理プロセッサ３２１は、バッテリのステータス監視を行う。
【００２０】
エンクロージャーコントローラ３２２は、ＳＥＳドライブを制御する。ＳＥＳドライブは、ＳＣＳＩ３規格に規定されるＳＥＳやＥＳＩ(Enclosure Service I/F)の機能を備えている。本実施形態では、複数のＦＣディスクドライブ５１のうち４台のＦＣディスクドライブＤＲＶ０，ＤＲＶ１，ＤＲＶ２，ＤＲＶ３がＳＥＳドライブである。エンクロージャーコントローラ３２２は、ＦＣディスクドライブＤＲＶ０，ＤＲＶ２と通信可能に接続されている。メインプロセッサ３０６は、ＳＥＳドライブ経由でＳＥＳ制御部３２０にアクセスすることで、ＳＥＳ情報を取得できる。ＳＥＳ情報には、基本筺体資源の監視情報（例えば、温度監視情報、電源監視情報、通信障害情報、増設筺体の接続情報など）や、或いは資源管理プロセッサ３２１，４２１に実装されるメインファームウェアのリビジョン情報などが含まれる。
【００２１】
一方、コントローラ４０は、ホストインターフェース（Ｉ／Ｆ）４０１、４０２、ＦＣコントローラ（Ｆ−ＣＴＬ）４０３、データコントローラ（Ｄ−ＣＴＬ）４０４、ＣＰＵ／ＰＣＩブリッジ４０５、メインプロセッサ（ＭＰＵ）４０６、ローカルメモリ（ＬＭ）４０７、キャッシュメモリ（ＣＭ）４０８、ＦＣコントローラ（Ｆ−ＣＴＬ）４０９、ポートバイパス回路（ＰＢＣ）４１０，４１１，４１２，４１３、ＦＣ−ＡＬ４１４，４１５、ＦＣパス４１６，４１７，４１８，４１９、及びＳＥＳ４２０制御部を備えている。ＳＥＳ制御部４２０は、資源管理プロセッサ（ＲＭＰ１）４２１、及びエンクロージャーコントローラ（Ｅ−ＣＴＬ）４２２を備える。エンクロージャーコントローラ４２２は、ＦＣディスクドライブＤＲＶ１，ＤＲＶ３と通信可能に接続されている。コントローラ４０の構成は、コントローラ３０の構成と同様であるため、詳細な説明は省略する。
【００２２】
各コントローラ３０，４０のデータコントローラ３０４，４０４は、データバス５６を介して接続されており、同一のデータが二つのキャッシュメモリ３０８，４０８に二重書きされるようにデータ転送を制御する。また、ＦＣディスクドライブ５１がＲＡＩＤレベル５で管理される場合には、データコントローラ３０４，４０４がパリティデータを演算する。
【００２３】
ポートバイパス回路３１０，３１１，４１０，４１１は、それぞれ交替パス５２，５３，５４，５５を介して、ＦＣ−ＡＬ４１４，４１５，３１４，３１５に接続している。例えば、コントローラ３０に障害が生じると、コントローラ３０が受信するホストシステム６０からのＩ／Ｏリクエストは、交替パス５２，５３を経由してコントローラ４０に引き継がれる。
【００２４】
基本筺体２０には、システムを保守又は管理するための管理端末（ＳＶＰ）７０が接続されている。保守員は、管理端末７０を操作することにより、例えば、ＦＣディスクドライブ５１上に定義される論理ボリュームの設定、ＦＣディスクドライブ５１の増設又は減設、ＲＡＩＤ構成の設定変更（例えば、ＲＡＩＤレベル５からＲＡＩＤレベル１への変更）等を行うことができる。また、管理端末７０から資源管理プロセッサ３２１，４２１等のメインファームウェアをキャッシュメモリ３０８，４０８に送信することもできる。管理端末７０は、基本筺体２０に内蔵してもよく、或いは外付けの構成としてもよい。
【００２５】
図２は本実施形態のストレージシステム１０に接続する増設筺体８０のシステム構成を示している。増設筺体８０は、エンクロージャー９０，１００と、複数のＦＣディスクドライブ１１１を備える。エンクロージャー９０，１００と、複数のＦＣディスクドライブ１１１は、バックボード１１０を介して接続される。エンクロージャー９０，１００は、増設筺体資源（電源、バッテリ、ファンユニット、パネルスイッチ、電圧モニタ、パネルＬＥＤ、警告ＬＥＤなど）の監視や制御などを行う。
【００２６】
エンクロージャー９０は、ポートバイパス回路（ＰＢＣ）９０１，９０２，９０３，９０４、ＦＣ−ＡＬ９０５，９０６、ＦＣパス９０７，９０８，９０９，９１０，９１１，９１２、資源管理プロセッサ（ＲＭＰ１）９１３、及びエンクロージャーコントローラ（Ｅ−ＣＴＬ）９１４を備える。
【００２７】
ポートバイパス回路９０１，９０２，９０３，９０４のそれぞれは、ＦＣパス９０９，９１０，９１１，９１２を介して基本筺体２０又は他の増設筺体に接続する。ＦＣ−ＡＬ９０５は、偶数番目のＦＣディスクドライブ１１１に接続する。ＦＣ−ＡＬ９０６は、奇数番目のＦＣディスクドライブ１１１に接続する。ＦＣ−ＡＬ９０５にループ障害が生じると、ポートバイパス回路９０１は、接続先をＦＣ−ＡＬ９０５からＦＣパス９０７に切り替えることができる。同様に、ＦＣ−ＡＬ９０６にループ障害が生じると、ポートバイパス回路９０２は、接続先をＦＣ−ＡＬ９０６からＦＣパス９０８に切り替えることができる。
【００２８】
資源管理プロセッサ９１３は、増設筺体資源（エンクロージャー９０、電源、バッテリ、ファンユニット、パネルスイッチ、電圧モニタ、パネルＬＥＤ、警告ＬＥＤなど）の監視や制御などを行う。例えば、資源管理プロセッサ９１３は、電圧モニタを基にシステムの電圧監視を行い、電圧異常を検出する。或いは、資源管理プロセッサ９１３は、エンクロージャー９０の温度監視を行い、温度異常を検出する。或いは、資源管理プロセッサ９１３は、ファンユニットの回転数を制御することにより、システム温度を調整する。或いは、資源管理プロセッサ９１３は、パネルＬＥＤや警告ＬＥＤの点滅を制御する。或いは、資源管理プロセッサ９１３は、バッテリのステータス監視を行う。
【００２９】
エンクロージャーコントローラ９１４は、ＳＥＳドライブを制御する。本実施形態では複数のＦＣディスクドライブ１１１のうち４台のＦＣディスクドライブＤＲＶ０，ＤＲＶ１，ＤＲＶ２，ＤＲＶ３がＳＥＳドライブである。エンクロージャーコントローラ９１４は、ＦＣディスクドライブＤＲＶ０，ＤＲＶ２と通信可能に接続されている。基本筺体２０のメインプロセッサ３０６は、ＦＣ−ＡＬ９０５，９０６からＳＥＳドライブ経由で資源管理プロセッサ９１３にアクセスすることで、ＳＥＳ情報を取得できる。ＳＥＳ情報には、増設筺体資源の監視情報（例えば、温度監視情報、電源監視情報、通信障害情報、増設筺体の接続情報など）や、或いは資源管理プロセッサ９１３に実装されるメインファームウェアのリビジョン情報などが含まれる。
【００３０】
一方、エンクロージャー１００は、ポートバイパス回路（ＰＢＣ）１００１，１００２，１００３，１００４、ＦＣ−ＡＬ１００５，１００６、ＦＣパス１００７，１００８，１００９，１０１０，１０１１，１０１２、資源管理プロセッサ（ＲＭＰ１）１０１３、及びエンクロージャーコントローラ（Ｅ−ＣＴＬ）１０１４を備える。エンクロージャーコントローラ１０１４は、ＦＣディスクドライブＤＲＶ１，ＤＲＶ３と通信可能に接続されている。エンクロージャー１００の構成は、エンクロージャー９０の構成と同様であるため、詳細な説明は省略する。
【００３１】
図３は本実施形態のストレージシステム１０に接続する増設筺体１２０のシステム構成を示している。増設筺体１２０は、ルータ１３０，１４０と、複数のＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ１５２を備える。ルータ１３０，１４０と、複数のＳＡＴＡディスクドライブ１５２は、バックボード１５０を介して接続される。ルータ１３０，１４０は、ＦＣプロトコルとＳＡＴＡプロトコルとの間でトランスペアレントなアクセスを可能にするとともに、増設筺体資源（電源、バッテリ、ファンユニット、パネルスイッチ、電圧モニタ、パネルＬＥＤ、警告ＬＥＤなど）の監視や制御などを行う。
【００３２】
ルータ１３０は、ポートバイパス回路（ＰＢＣ）１３０１、ＦＣ／ＳＡＴＡコンバータ１３０２、資源管理プロセッサ（ＲＭＰ２）１３０３、及びＦＣパス１３０４，１３０５を備える。
【００３３】
ポートバイパス回路１３０１は、ＦＣパス１３０４，１３０５を介して基本筺体２０又は他の増設筺体に接続する。ＦＣ／ＳＡＴＡコンバータ１３０２は、ＦＣプロトコルをＳＡＴＡプロトコルに変換するとともに、ＳＡＴＡプロトコルをＦＣプロトコルに変換する機能を有している。これにより、基本筺体２０のコントローラ３０，４０は、ＳＡＴＡディスクドライブ１５２がＦＣループ上に直接接続されたイメージで認識する。ＦＣ／ＳＡＴＡコンバータ１３０２は、パススイッチ１５１を介して偶数番目のＳＡＴＡディスクドライブ１５２に接続する。パススイッチ１５１は、２ポートを有しており、通常は稼働系のパスに接続しているが、障害発生時などの場合は、ＦＣ／ＳＡＴＡコンバータ１３０２の制御によって、待機系のパスに切り替える。
【００３４】
資源管理プロセッサ１３０３は、増設筺体資源（ルータ１３０、電源、バッテリ、ファンユニット、パネルスイッチ、電圧モニタ、パネルＬＥＤ、警告ＬＥＤなど）の監視や制御などを行う。例えば、資源管理プロセッサ１３０３は、電圧モニタを基にシステムの電圧監視を行い、電圧異常を検出する。或いは、資源管理プロセッサ１３０３は、ルータ１３０の温度監視を行い、温度異常を検出する。或いは、資源管理プロセッサ１３０３は、ファンユニットの回転数を制御することにより、システム温度を調整する。或いは、資源管理プロセッサ１３０３は、パネルＬＥＤや警告ＬＥＤの点滅を制御する。或いは、資源管理プロセッサ１３０３は、バッテリのステータス監視を行う。基本筺体２０のメインプロセッサ３０６は、資源管理プロセッサ１３０３にアクセスすることで、ＳＥＳ情報を取得できる。ＳＥＳ情報には、増設筺体資源の監視情報（例えば、温度監視情報、電源監視情報、通信障害情報、増設筺体の接続情報など）や、或いは資源管理プロセッサ１３０３に実装されるメインファームウェアのリビジョン情報などが含まれる。
【００３５】
一方、ルータ１４０は、ポートバイパス回路（ＰＢＣ）１４０１、ＦＣ／ＳＡＴＡコンバータ１４０２、資源管理プロセッサ（ＲＭＰ２）１４０３、及びＦＣパス１４０４，１４０５を備える。ＦＣ／ＳＡＴＡコンバータ１４０２は、パススイッチ１５１を介して奇数番目のＳＡＴＡディスクドライブ１５２に接続する。ルータ１４０の構成は、ルータ１３０の構成と同様であるため、詳細な説明は省略する。
【００３６】
ルータ１３０，１４０は、内部パス１６１を介して接続されており、ルータ１３０，１４０相互間でホストシステム６０からのＩ／Ｏリクエストをルーティングすることができる。例えば、ルータ１３０は、ルータ１４０が処理担当を有する論理ボリュームへのアクセスをホストシステム６０から受信した場合には、内部パス１６１を介してルータ１４０にその処理依頼をすることにより、ルータ１３０が受けたＩ／Ｏリクエストをルータ１４０が実施することができる。
【００３７】
また、資源管理プロセッサ（ＲＭＰ２）１３０３，１４０３は、ホットライン１６２を介して接続されており、互いに相手を閉塞させたり、或いはリブートさせたりすることができる。
【００３８】
図４はＳＥＳ制御部３２０のファームウェア構成を示している。資源管理プロセッサ３２１には、資源管理プロセッサ用のメインファームウェア２００１と、セルフテストプログラム２００２が実装されている。エンクロージャーコントローラ３２２には、エンクロージャーコントローラ用のメインファームウェア２００３が実装されている。ＳＥＳ制御部４２０のファームウェア構成も同様である。
【００３９】
図５はエンクロージャー９０のファームウェア構成を示している。資源管理プロセッサ９１３には、資源管理プロセッサ用のメインファームウェア２００１と、セルフテストプログラム２００２が実装されている。エンクロージャーコントローラ９１４には、エンクロージャーコントローラ用のメインファームウェア２００３が実装されている。エンクロージャー１００のファームウェア構成も同様である。
【００４０】
図６はルータ１３０のファームウェア構成を示している。ＦＣ／ＳＡＴＡコンバータ１３０２には、ＦＣ／ＳＡＴＡコンバータ用のメインファームウェア２００４と、セルフテストプログラム２００５と、ブートプログラム２００６と、各種パラメータ２００７が実装される。資源管理プロセッサ１３０３には、資源管理プロセッサ用のファームウェア２００８が実装される。ルータ１４０のファームウェア構成も同様である。
【００４１】
上述したファームウェアのうち、メインファームウェア２００１，２００４，２００８は、本実施形態の自動ダウンロードにより更新することができる。自動ダウンロードの詳細については、後述する。
【００４２】
尚、セルフテストプログラム２００２，２００５，ブートプログラム２００６，パラメータ２００７は、オフラインで更新することができるので、本実施形態では、自動ダウンロードの対象とはしていない。また、エンクロージャーコントローラ３２２，９１４には、基本的な論理回路が組み込まれているので、メインファームウェア２００３を更新する必要性に乏しい。このため、本実施形態では、エンクロージャーコントローラ用のメインファームウェア２００３は自動ダウンロードの対象とはしていない。但し、セルフテストプログラム２００２，２００５，ブートプログラム２００６，パラメータ２００７，メインファームウェア２００３についても、自動ダウンロードの対象としてもよい。
【００４３】
図７はメインファームウェアの自動ダウンロードの概要を示している。同図を参照しながら、自動ダウンロード用ファイルの作成からメインファームウェアの更新に至るまでの流れを説明する。まず、上述したメインファームウェア２００１，２００４，２００８を含む自動ダウンロード用のメインファームウェア３００１をＣソース変換し、これを基本筺体２０のメインプロセッサ３０６，４０６用のメインマイクロソースファイル３００２に付加してＳＩ化し、インストールファイル３００３を作成する。インストールファイル３００３は、常駐モジュール３００４、非常駐モジュール３００５、及びブートプログラム３００６を含む。常駐モジュール３００４には、メインマイクロソースファイル３００２と、自動ダウンロード用のメインファームウェア３００１が含まれている。インストールファイル３００３は、基本筺体２０のＦＣディスクドライブ５１のシステム領域３００７にインストールされる。本実施形態では、複数のＦＣディスクドライブ５１のうち、５台のＦＣディスクドライブ５１をシステムドライブとして使用し、各々のシステムドライブのシステム領域３００７に同一のインストールファイル３００３をインストールしている。システム領域３００７は、インストールファイル３００３を格納するプログラム領域３００８と、管理情報を格納する管理ブロック３００９を含む。
【００４４】
基本筺体２０のメイン電源が投入され、装置が立ち上がると、常駐モジュール３００４は、システム領域３００７から読み出されて、ローカルメモリ３０７に格納される。ローカルメモリ３０７には、更にリビジョンテーブル３０１０が格納される。リビジョンテーブル３０１０には、基本筺体２０のＳＥＳ制御部３２０，４２０、増設筺体８０のエンクロージャー９０，１００、或いは増設筺体１２０のルータ１３０，１４０に実装されているメインファームウェア２００１，２００４，２００８のリビジョン情報が含まれている。リビジョンテーブル３０１０の作成方法については、後述する。
【００４５】
ローカルメモリ３０７に格納されている常駐モジュール３００４は、メインファームウェア３００１と、メインファームウェア３００１に含まれている各メインファームウェア２００１，２００４，２００８のファイル名を記述したリストファイル３０１１と、各メインファームウェア２００１，２００４，２００８のリビジョン情報３０１２とに分割されて、キャッシュメモリ３０８に格納される。
【００４６】
メインプロセッサ３０６，４０６は、リビジョンテーブル３０１０と、リビジョン情報３０１２とを比較する比較判定を行い、基本筺体２０のＳＥＳ制御部３２０，４２０、増設筺体８０のエンクロージャー９０，１００、或いは増設筺体１２０のルータ１３０，１４０に実装されているメインファームウェア２００１，２００４，２００８のリビジョンがリビジョン情報３０１２よりも古い場合に、メインファームウェアのダウンロードを行い、古いリビジョンのメインファームを新しいリビジョンのメインファームウェアに更新する。
【００４７】
図８は装置立ち上げ時にメインファームウェアを自動ダウンロードする処理手順を示すフローチャートである。同図を参照しながら、装置立ち上げ時の自動ダウンロードについて説明する。まず、電源が投入されると（Ｓ１０１）、ストレージシステム１０は、初期設定を行い（Ｓ１０２）、リビジョンテーブル３０１０を作成する（Ｓ１０３）。次いで、システム領域３００７から常駐モジュール３００４が読み出され、キャッシュメモリ３０８上にメインファームウェア３００１、リストファイル３０１１、及びリビジョン情報３０１２が格納される（Ｓ１０４）。ストレージシステム１０が正常に立ち上がると、システムは、Ｒｅａｄｙ状態となる（Ｓ１０５）。基本筺体２０のＳＥＳ制御部３２０，４２０、増設筺体８０のエンクロージャー９０，１００、或いは増設筺体１２０のルータ１３０，１４０に実装されているメインファームウェア２００１，２００４，２００８のリビジョンがリビジョン情報３０１２よりも古い場合には、メインファームウェアの自動ダウンロードを行う（Ｓ１０６）。
【００４８】
一方、基本筺体２０のＳＥＳ制御部３２０，４２０、増設筺体８０のエンクロージャー９０，１００、或いは増設筺体１２０のルータ１３０，１４０に実装されているメインファームウェア２００１，２００４，２００８のリビジョンがリビジョン情報３０１２と同一か、或いはリビジョン情報３０１２よりも新しい場合には、メインファームウェアの自動ダウンロードは行わない。
【００４９】
尚、ストレージシステム１０が正常に立ち上がらない場合には、システムはＷａｒｎｉｎｇ状態になり、メインファームウェア２００１，２００４，２００８の自動ダウンロードは行われない。以降の説明においては、ストレージシステム１０がＲｅａｄｙ状態となる前をオフライン状態と称し、Ｒｅａｄｙ状態となった後をオンライン状態と称する。オフライン状態では、ストレージシステム１０はホストシステム６０からのＩ／Ｏリクエストに応答することができないが、オンライン状態ならば、ホストシステム６０からのＩ／Ｏリクエストに応答できる。
【００５０】
図９はリビジョンテーブル３０１０の内容を示している。本実施形態では、基本筺体２０にユニット番号０を割り当て、増設筺体８０又は１２０にユニット番号１，２，３，…を割り当てている。同図に示す例は、基本筺体２０に増設筺体８０と増設筺体１２０とが接続されている例を示している。基本筺体２０に接続する増設筺体８０には、ユニット番号１が割り当てられている。増設筺体８０に接続する増設筺体１２０には、ユニット番号２が割り当てられている。
【００５１】
種別情報は、基本筺体２０，増設筺体８０，１２０を区別するための情報である。"ＤＫＣ"は基本筺体２０を示し、"ＦＣ"は増設筺体８０を示し、"ＡＴ"は増設筺体１２０を示す。
【００５２】
機種情報は、新機種と旧機種とを区別するための情報である。例えば、新機種では、ダウンロード対象となるメインファームウェア２００１，２００４，２００８が旧機種では、ダウンロード対象とならないように設計されている場合を考慮して、基本筺体２０，増設筺体８０，１２０のそれぞれが旧機種であるか、或いは新機種であるかを区別している。例えば、旧機種では、増設筺体１２０に搭載されるＦＳ／ＳＡＴＡコンバータ１３０２，１４０２のメインファームウェア２００４のみ自動ダウンロードの対象となるように設計されているが、新機種では、全てのメインファームウェア２００１，２００４，２００８が自動ダウンロードの対象となるように設計されているケースが考えられる。どのメインファームウェアを自動ダウンロードの対象とするかは、設計事項であるから、上述の例に限られるものではない。
【００５３】
＃ＥＮＣの"０"は、基本筺体２０については、コントローラ３０を示し、"１"はコントローラ４０を示す。＃ＥＮＣの"０"は、増設筺体８０については、エンクロージャー９０を示し、"１"はエンクロージャー１００を示す。＃ＥＮＣの"０"は、増設筺体１２０については、ルータ１３０を示し、"１"はルータ１４０を示す。
【００５４】
ＲＭＰ１は、資源管理プロセッサ３２１，４２１，９１３，１０１３を示す。ＲＭＰ２は、資源管理プロセッサ１３０３，１４０３を示す。ＦＣ／ＳＡＴＡは、ＦＣ／ＳＡＴＡコンバータ１３０２，１４０２を示す。図中のＡ１，Ａ２，Ｂ２，Ｃ１，Ｃ２はメインファームウェア２００１，２００４，２００８のリビジョンを示している。例えば、基本筺体２０のコントローラ３０，４０の資源管理プロセッサ３２１，４２１のそれぞれに実装されているメインファームウェア２００１のリビジョンはＡ２である。増設筺体８０のエンクロージャー９０，１００の資源管理プロセッサ９１３，１０１３のそれぞれ実装されているメインファームウェア２００１のリビジョンはＡ１である。増設筺体１２０のルータ１３０，１４０の資源管理プロセッサ１３０３，１４０３のそれぞれに実装されているメインファームウェア２００８のリビジョンはＢ２である。同筺体１２０のＦＣ／ＳＡＴＡコンバータ１３０２に実装されているメインファームウェア２００４のリビジョンはＣ１であり、ＦＣ／ＳＡＴＡコンバータ１４０２に実装されているメインファームウェア２００４のリビジョンはＣ２である。
【００５５】
リビジョンテーブル３０１０は、装置立ち上げ時にメインプロセッサ３０６，４０６が基本筺体２０のＳＥＳ制御部３２０，４２０、増設筺体８０のエンクロージャー９０，１００、及び増設筺体１２０のルータ１３０，１４０にＳＥＳアクセスすることによって、メインファームウェア２００１，２００４，２００８のリビジョン情報を取得することによって、作成される。
【００５６】
図１０はリビジョンテーブル３０１０を作成する処理手順を示すフローチャートである。同図を参照しながら、リビジョンテーブル３０１０の作成手順について説明する。まず、後述するＳ２０２〜Ｓ２０９のループ処理を１回行う毎に１カウントし、カウント数が筺体数に等しいか否かを判定する（Ｓ２０１）。筺体数とは、基本筺体２０と増設筺体８０又は１２０を含めた全台数である。
【００５７】
カウント数が筺体数より少ない場合には（Ｓ２０１；ＮＯ）、Ｓ２０３〜Ｓ２０９のループ処理を２回繰り返したか否かを判定する（Ｓ２０２）。Ｓ２０３〜Ｓ２０９のループ処理を２回繰り返すのは、ＳＥＳ制御部３２０，４２０が基本筺体２０内に合計２個、エンクロージャー９０，１００が増設筺体８０内に合計２個、ルータ１３０，１４０が増設筺体１２０内に合計２個実装されているためである。
【００５８】
Ｓ２０３〜Ｓ２０９のループ処理が２回未満である場合には（Ｓ２０２；ＮＯ）、各筺体が旧機種であるか否かを判定する（Ｓ２０３）。各筺体が旧機種であるか、或いは新機種であるかは、各筺体にＳＥＳアクセスし、ＳＥＳ情報を取得することで判別できる。
【００５９】
筺体が旧機種である場合には（Ｓ２０３；ＹＥＳ）、その筺体がＦＣ筺体であるか否かを判定する（Ｓ２０４）。ＦＣ筺体とは、基本筺体２０や増設筺体８０のように、ＦＣディスクドライブを実装している筺体のことである。筺体がＦＣ筺体である場合には（Ｓ２０４；ＹＥＳ）、メインファームウェア２００１のリビジョンを判定し（Ｓ２０５）、ＦＣ筺体でない場合には（Ｓ２０４；ＮＯ）、メインファームウェア２００４，２００８のリビジョンを判定する（Ｓ２０６）。
【００６０】
一方、筺体が新機種である場合には（Ｓ２０３；ＮＯ）、その筺体がＦＣ筺体であるか否かを判定する（Ｓ２０７）。筺体がＦＣ筺体である場合には（Ｓ２０７；ＹＥＳ）、メインファームウェア２００１のリビジョンを判定し（Ｓ２０８）、ＦＣ筺体でない場合には（Ｓ２０７；ＮＯ）、メインファームウェア２００４，２００８のリビジョンを判定する（Ｓ２０９）。
【００６１】
図１１はメインファームウェアの自動ダウンロード処理を示すフローチャートである。同図に示すように、自動ダウンロード処理は、３段階のプログラムシーケンスを有する。シーケンス＃１では、エンクロージャー９０，１００やルータ１３０，１４０とのインターフェース制御が行われる（Ｓ３０１〜Ｓ３０５）。シーケンス＃２では、メインファームウェア２００１，２００４，２００８のダウンロードシーケンスが行われる（Ｓ４０１〜Ｓ４０６）。シーケンス＃３では、コマンド発行シーケンスが行われる（Ｓ５０１〜Ｓ５１１）。
【００６２】
メインプロセッサ３０６，４０６は、システムがＲｅａｄｙ状態になると、バックエンド監視を行う（Ｓ３０１）。バックエンド監視には、基本筺体資源及び増設筺体資源の監視（例えば、温度監視、電源監視、通信障害監視、増設筺体の接続監視など）や、或いはメインファームウェア２００１，２００４，２００８のリビジョンチェックなどが含まれる。上述の如く、基本筺体２０、増設筺体８０，１２０に実装されているメインファームウェア２００１，２００４，２００８のリビジョンがシステム領域３００７に格納されているメインファームウェア２００１，２００４，２００８のリビジョンよりも古い場合には、まず、メインファームウェア２００４，２００８の自動ダウンロードを行い（Ｓ３０２）、次いで、メインファームウェア２００１の自動ダウンロードを行う（Ｓ３０３）。
【００６３】
その後、メインプロセッサ３０６，４０６は、正常に自動ダウンロードが行われたか否かを確認するためのリビジョンチェックを行う（Ｓ３０４）。自動ダウンロードが正常に行われると、次に、エンクロージャー９０，１００が正常に機能するか否かの診断処理を行う（Ｓ３０５）。
【００６４】
メインファームウェア２００４，２００８の自動ダウンロード処理（Ｓ３０２）では、メインファームウェア２００８の自動ダウンロード処理（Ｓ４０１）と、メインファームウェア２００４のダウンロード処理（Ｓ４０３）が行われる。
【００６５】
尚、システムがオフラインのときには、メインファームウェア２００４，２００８のダウンロード処理（Ｓ４０１，Ｓ４０３）に加えて、更に、パラメータ２００７のダウンロード処理（Ｓ４０２）、ブートプログラム２００６のダウンロード処理（Ｓ４０４）、セルフテストプログラム２００５のダウンロード処理（Ｓ４０５）を実行することも可能である。管理端末７０からメインファームウェア２００１，２００４，２００８，パラメータ２００７，ブートプログラム２００６，セルフテストプログラム２００５を増設筺体８０に送信することにより、オフラインでのダウンロードを行うことができる。
【００６６】
メインファームウェア２００１の自動ダウンロード処理（Ｓ３０３）では、メインファームウェア２００１の自動ダウンロード処理（Ｓ４０６）が行われる。
【００６７】
メインファームウェア２００８の自動ダウンロード処理（Ｓ４０１）においては、メインプロセッサ３０６，４０６は、資源管理プロセッサ（ＲＭＰ２）１３０３，１４０３にダウンロードスタートコマンドを発行し（Ｓ５０１）、次に、データフレームコマンドを発行することにより、メインファームウェア２００８を資源管理プロセッサ（ＲＭＰ２）１３０３，１４０３に送信する（Ｓ５０２）。次に、ダウンロードエンドコマンドを発行し、資源管理プロセッサ（ＲＭＰ２）１３０３，１４０３をリブートさせる（Ｓ５０３）。次に、ステータスリードコマンドを発行して、資源管理プロセッサ（ＲＭＰ２）１３０３，１４０３のステータスをチェックする（Ｓ５０４）。最後に、レシーブコマンドを発行して、自動ダウンロードが正常に終了したか否かをチェックする（Ｓ５０５）。
【００６８】
パラメータ２００７のダウンロード処理（Ｓ４０２）、メインファームウェア２００４のダウンロード処理（Ｓ４０３）、ブートプログラム２００６のダウンロード処理（Ｓ４０４）、及びセルフテストプログラム２００５のダウンロード処理（Ｓ４０５）においては、メインプロセッサ３０６，４０６は、それぞれパラメータ２００７、メインファームウェア２００４、ブートプログラム２００６、及びセルフテストプログラム２００５をＦＣ／ＳＡＴＡコンバータ１３０２，１４０２に送信した後に、ライトバッファコマンドを発行し、ＦＣ／ＳＡＴＡコンバータ１３０２，１４０２をリブートさせる（Ｓ５０６）。
【００６９】
メインファームウェア２００１の自動ダウンロード処理（Ｓ４０６）においても、同様に、メインプロセッサ３０６，４０６は、ダウンロードスタートコマ発行（Ｓ５０７）、データフレームコマンド発行（Ｓ５０８）、ダウンロードエンドコマンド発行（Ｓ５０９）、ステータスリードコマンド発行（Ｓ５１０）、レシーブコマンド発行（Ｓ５１１）を行う。
【００７０】
尚、上述の説明においては、装置立ち上げを契機として、メインファームウェア２００１，２００４，２００８の自動ダウンロードを実施するケースを例示したが、この他にも、例えば、以下の４つの事象を契機として、メインファームウェア２００１，２００４，２００８の自動ダウンロードを実施してもよい。
【００７１】
（１）システムがオンラインの状態で、筺体増設を実施した場合。
（２）システムがオンラインの状態で、基本筺体２０のコントローラ３０，４０を部品交換した場合。
（３）システムがオンラインの状態で、システム領域３００７のインストールファイル３００３を更新した場合。
（４）システムがオンラインの状態で、ＳＥＳ制御部３２０，４２０、エンクロージャー９０，１００、ルータ１３０，１４０を保守交換した場合。
【００７２】
図１２はＳＥＳ情報の監視を行うモジュール構成を示している。メインプロセッサ３０６，４０６上で動作するカーネル４０００は、ＳＥＳ情報を収集するために、一定周期（例えば、２秒間隔）にバックエンド監視モジュール４００１を起動する。バックエンド監視モジュール４００１は、コマンド発行制御モジュール４００２を起動させる。コマンド発行起動モジュール４００２は、基本筺体２０のＳＥＳ制御部３２０，４２０、増設筺体８０のエンクロージャー９０，１００、或いは増設筺体１２０のルータ１３０，１４０ＳＥＳコマンドを発行し、ＳＥＳ情報をＳＥＳ情報収集テーブル４００３に格納する。バックエンド監視モジュール４００１は、ストレージシステム１０の構成情報（リビジョンテーブル３０１０を含む）を格納する構成情報テーブル４００４と、ＳＥＳ情報を格納するＳＥＳ情報テーブル４００３とを参照することにより、ストレージシステム１０に既に実装されているメインファームウェア２００１，２００４，２００８のリビジョンが新しいものであるか、或いは古いものであるかを判定する。上述した４つの事象が生じると、ストレージシステム１０に実装されているメインファームウェア２００１，２００４，２００８のリビジョンと、常駐モジュール３００４に含まれるメインファームウェア２００１，２００４，２００８のリビジョンは不一致となる場合がある。ストレージシステム１０に既に実装されているメインファームウェア２００１，２００４，２００８のリビジョンが古い場合には、メインプロセッサ３０６，４０６は、メインファームウェア２００１，２００４，２００８の自動ダウンロードを実施する。
【００７３】
図１３は増設筺体１２０のルータ１３０のメインファームウェア２００４を自動ダウンロードにより更新するときのループスイッチ切り替え処理の概要を示している。ルータ１３０，１４０は、ＦＣループの一部を構成するので、例えば、ルータ１３０のメインファームウェア２００４を更新するときには、ルータ１３０が属するＦＣループは一時的に使用不可となり、ホストシステム６０からのＩ／Ｏリクエストを処理することが出来ない。そこで、このような場合には、ループスイッチをルータ１４０に切り替える必要がある。
【００７４】
まず、ルータ１３０を閉塞させるために、コントローラ３０からＦＣ／ＳＡＴＡコンバータ１３０２、内部パス１６１、ＦＣ／ＳＡＴＡコンバータ１４０２、資源管理プロセッサ１４０３、及びホットライン１６２を通じて資源管理プロセッサ１３０３に無応答コマンドを送信する（Ｓ１）。資源管理プロセッサ１３０３が無応答になると、タイムアウトエラーにより、ＦＣ／ＳＡＴＡコンバータ１３０２は障害が発生したものと判断し、ルータ１３０を閉塞させる。
【００７５】
次に、ルータ１３０が処理担当としてアサインされていたＳＡＴＡディスクドライブ１５２の処理担当をルータ１４０に切り替え、ローカルパスフェイルオーバーを発生させる（Ｓ２）。次に、ループ切り替えを実施し（Ｓ３）、ホストシステム６０からのＩ／Ｏリクエストをルータ１４０に実施させる。次に、ルータ１３０へのメインファームウェア２００４の自動ダウンロードが完了した段階で、コントローラ４０からＦＣ／ＳＡＴＡコンバータ１４０２、資源管理プロセッサ１４０３、及びホットライン１６２を通じて資源管理プロセッサ１３０３にリセット解除信号を送信する（Ｓ４）。これにより、ＦＣ／ＳＡＴＡコンバータ１３０２はリブートする。
【００７６】
次に、ルータ１４０が処理担当を受け持っていたＳＡＴＡディスクドライブ１５２の処理担当をルータ１３０に戻し（Ｓ５）、ルータ１３０が正常に機能するか否かの診断を、内部パス１６１を通じて実施する（Ｓ６）。次に、ルータ１４０が有していた筺体資源情報などを、内部パス１６１を通じてルータ１３０に送信し、共通フィールド設定（筺体資源情報の引継ぎ）を行う。最後に、ループ切り替えを実施し（Ｓ７）、ルータ１３０が処理担当を有していたＳＡＴＡディスクドライブ１５２へのＩ／Ｏ処理はルータ１３０が実施するように制御する。
【００７７】
尚、ルータ１４０のメインファームウェア２００４を自動ダウンロードにより更新するには、コントローラ３０からＦＣ／ＳＡＴＡコンバータ１３０２、資源管理プロセッサ１３０３、及びホットライン１６２を通じて資源管理プロセッサ１４０３に無応答コマンドを送信し、ルータ１４０を閉塞させて、メインファームウェア２００４を自動更新し、その後、資源管理プロセッサ１３０３がホットライン１６２を通じて資源管理プロセッサ１４０３にリセット解除信号を送信することで、ＦＣ／ＳＡＴＡコンバータ１４０２をリブートさせればよい。
【００７８】
上述の説明では、ルータ１３０を閉塞させるために、資源管理プロセッサ１４０３がホットライン１６２を通じて資源管理プロセッサ１３０３に無応答コマンドを送信する例を示したが、コントローラ３０からＦＣ／ＳＡＴＡコンバータ１３０２へリブートコマンドを送信することにより、ＦＣ／ＳＡＴＡコンバータ１３０２をリブートさせるように制御してもよい。
【００７９】
また、上述の説明では、ストレージシステム１０の基本筺体として、複数のＦＣディスクドライブ５１を備える基本筺体２０を例示したが、図１４に示すように、複数のＳＡＴＡディスクドライブ２０２を備える基本筺体１７０を用いてもよい。同図において、図１に示した符号と同一符号のデバイス等は同一のデバイス等を示すものとして、その詳細な説明を省略する。
【００８０】
基本筺体１７０は、複数のＳＡＴＡディスクドライブ２０２と、複数のＳＡＴＡディスクドライブ２０２へのデータ入出力を制御するコントローラ１８０，１９０を備える。コントローラ１８０，１９０と、複数のＳＡＴＡディスクドライブ２０２は、バックボード２００を介して接続される。
【００８１】
コントローラ１８０は、メインプロセッサ（ＭＰＵ）１８０１、ＣＰＵ／ＰＣＩブリッジ１８０２、ローカルメモリ（ＬＭ）１８０３、データコントローラ（Ｄ−ＣＴＬ）１８０４、キャッシュメモリ（ＣＭ）１８０５、ＦＣコントローラ（Ｆ−ＣＴＬ）１８０６、ポートバイパス回路１８０７，１８０８，１８０９，ホストインターフェース（Ｉ／Ｆ）１８１０、１８１１、ＦＣ／ＳＡＴＡコンバータ１８１２、資源管理プロセッサ（ＲＭＰ）１８１３、及びＦＣパス１８１４を備えている。
【００８２】
同様に、コントローラ１９０は、メインプロセッサ（ＭＰＵ）１９０１、ＣＰＵ／ＰＣＩブリッジ１９０２、ローカルメモリ（ＬＭ）１９０３、データコントローラ（Ｄ−ＣＴＬ）１９０４、キャッシュメモリ（ＣＭ）１９０５、ＦＣコントローラ（Ｆ−ＣＴＬ）１９０６、ポートバイパス回路１９０７，１９０８，１９０９，ホストインターフェース（Ｉ／Ｆ）１９１０、１９１１、ＦＣ／ＳＡＴＡコンバータ１９１２、資源管理プロセッサ（ＲＭＰ）１９１３、及びＦＣパス１９１４を備えている。
【００８３】
ＦＣ／ＳＡＴＡコンバータ１８１２は、パススイッチ２０１を介して偶数番目のＳＡＴＡディスクドライブ２０２に接続する。ＦＣ／ＳＡＴＡコンバータ１９１２は、パススイッチ２０１を介して奇数番目のＳＡＴＡディスクドライブ２０２に接続する。基本筺体１７０に増設筺体が接続されている場合には、各コントローラ１８０，１９０は、ＦＣパス１８１４，１９１４を介して増設筺体に接続する。
【００８４】
また、各コントローラ１８０，１９０のデータコントローラ１８０４，１９０４は、データバス２０５を介して接続されており、同一のデータが二つのキャッシュメモリ１８０５，１９０５に二重書きされるようにデータ転送を制御する。
【００８５】
ポートバイパス回路１８０８，１９０８は、２パスの交替パス２０３，２０４によって接続されており、例えば、コントローラ１８０に障害が発生すると、コントローラ１９０にフェイルオーバーできるように構成されている。
【００８６】
尚、資源管理プロセッサ（ＲＭＰ２）１８１３，１９１３には、メインファームウェア２００８が実装される。
【００８７】
ストレージシステム１０は、基本筺体１７０単体で構成してもよく、或いは基本筺体１１７０に一台又は複数台の増設筺体８０又は増設筺体１２０を接続することにより構成してもよい。何れの場合においても、メインファームウェアを自動ダウンロードする方法は上述の方法と同様である。
【００８８】
本実施形態によれば、保守部品配備されているコントローラ３０，４０，１８０，１９０、エンクロージャー９０，１００又はルータ１３０，１４０を部品交換等した場合に、メインファームウェア２００１，２００４，２００８のリビジョンが古ければ、新しいリビジョンのメインファームウェア２００１，２００４，２００８に自動交換できるので、保守管理が容易になる。また、メインプロセッサ３０，４０６，１８０１，１９０１のメインマイクロソースファイル３００２とともにメインファームウェア２００１，２００４，２００８を管理するので、保守管理が容易になる。
【図面の簡単な説明】
【００８９】
【図１】本実施形態のストレージシステムの基本筺体のシステム構成図である。
【図２】本実施形態のストレージシステムの増設筺体のシステム構成図である。
【図３】本実施形態のストレージシステムの増設筺体のシステム構成図である。
【図４】ＳＥＳ制御部のファームウェア構成図である。
【図５】エンクロージャーのファームウェア構成図である。
【図６】ルータのファームウェア構成図である。
【図７】メインファームウェアの自動ダウンロードの概要を示す図である。
【図８】装置立ち上げ時にメインファームウェアを自動ダウンロードする処理手順を示すフローチャートである。
【図９】リビジョンテーブルの内容を示す説明図である。
【図１０】リビジョンテーブルの作成処理を示すフローチャートである。
【図１１】メインファームウェアの自動ダウンロード処理を示すフローチャートである。
【図１２】ＳＥＳ情報の監視を行うモジュール構成の説明図である。
【図１３】ルータに実装されるメインファームウェアを自動更新するときのループスイッチ切り替え処理の概要を示す説明図である。
【図１４】本実施形態のストレージシステムの基本筺体のシステム構成図である。
【符号の説明】
【００９０】
１０…ストレージシステム  ２０…基本筺体  ８０，１２０…増設筺体  ３２０，４２０…ＳＥＳ制御部  ９０，１００…エンクロージャー  １３０，１４０…ルータ  ３２１，４２１，９１３，１０１３，１３０３，１４０３，１８１３，１９１３…資源管理プロセッサ  １３０２，１４０２，１８１２，１９１２…ＦＣ／ＳＡＴＡコンバータ
【図１】
2007025933.tif 000003
【図２】
2007025933.tif 000004
【図３】
2007025933.tif 000005
【図４】
2007025933.tif 000006
【図５】
2007025933.tif 000007
【図６】
2007025933.tif 000008
【図７】
2007025933.tif 000009
【図８】
2007025933.tif 000010
【図９】
2007025933.tif 000011
【図１０】
2007025933.tif 000012
【図１１】
2007025933.tif 000013
【図１２】
2007025933.tif 000014
【図１３】
2007025933.tif 000015
【図１４】
2007025933.tif 000016