(57)【特許請求の範囲】
【請求項１】
データ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理システムであって、
該プログラムの複数の版のそれぞれを格納するプログラム格納部と、
該データ中継装置にインストールされているプログラムの版情報を格納する版情報格納部と、
該プログラムの複数の版のそれぞれに関して、他の版へ変更する際に適用可能な版の段数を示す制約情報を格納する制約情報格納部と、
該データ中継装置に適用されるべきプログラムの版情報を指示情報として入力可能な指示情報入力部と、
該指示情報入力部から入力された該指示情報により指示された版の該プログラムについて、該版情報格納部に管理された該版情報と、該制約情報格納部に格納された該制約情報とを参照して、当該プログラムを該データ中継装置に適用可能であるかを確認する確認部と、
該確認部により該プログラムが適用可能であると判断された場合に、該指示された版のプログラムを該データ中継装置にインストールするインストール処理部とをそなえることを特徴とする、管理システム。
【請求項２】
該確認部により該プログラムが適用できないと判断された場合に、該制約情報に基づき、当該データ中継装置に対して適用可能な版のプログラムを選択する選択部をそなえ、
該インストール処理部が、該選択部によって選択されたプログラムのインストールを行なった後に、該指示された版のプログラムのインストールを行なうことを特徴とする、請求項１記載の管理システム。
【請求項３】
該プログラムの該複数の版の順序を示す順序情報を、各版のプログラムのそれぞれに設定し、
該制約情報が、該プログラムの各版に対して、当該版から該順序に沿って一度に変更可能な版の段数を示す段数情報をそれぞれ対応付けて構成されたことを特徴とする、請求項１又は請求項２記載の管理システム。
【請求項４】
該インストール処理部は、
該データ中継装置と同一のグループに属する他のデータ中継装置があるかを確認し、
該他のデータ中継装置がある場合には、該データ中継装置及び該他のデータ中継装置のうち、いずれか１つのデータ中継装置に該プログラムをインストールし、
当該インストールが完了し、該プログラムがインストールされたデータ中継装置がオンライン状態に復帰したのを確認した後に、該データ中継装置及び該他のデータ中継装置のうち、次のデータ中継装置に該プログラムをインストールすることを特徴とする、請求項１〜３のいずれか１項に記載の管理システム。
【請求項５】
該データ中継装置が含まれる１以上の所定の管理領域毎にそなえられ、当該管理領域内の該データ中継装置と通信可能に接続される第１の管理装置と、
該指示情報入力部及び該１以上の第１の管理装置と通信可能に接続される第２の管理装置とをそなえ、
該第１の管理装置が、該版情報格納部，該制約情報格納部，該確認部及び該インストール処理部をそなえ、
該第２の管理装置が、該指示情報入力部から入力された該指示情報を該第１の管理装置に通知することを特徴とする、請求項１〜請求項４のいずれか１項に記載の管理システム。
【請求項６】
データ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理装置であって、
該データ中継装置にインストールされているプログラムの版情報を格納する版情報格納部と、
該プログラムの複数の版のそれぞれに関して、他の版へ変更する際に適用可能な版の段数を示す制約情報を格納する制約情報格納部と、
適用が指示された版の該プログラムについて、該版情報格納部に管理された該版情報と、該制約情報格納部に格納された該制約情報とを参照して、当該プログラムを該データ中継装置に適用可能であるかを確認する確認部と、
該確認部により該プログラムが適用可能であると判断された場合に、該指示された版のプログラムを該データ中継装置にインストールするインストール処理部とをそなえることを特徴とする、管理装置。
【請求項７】
データ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理方法であって、
該データ中継装置に適用されるべきプログラムの版情報を指示情報として入力可能な指示情報入力ステップと、
該指示情報入力ステップにおいて入力された該指示情報により指示される版の該プログラムについて、該データ中継装置にインストールされているプログラムの版情報と、該プログラムの複数の版のそれぞれに関して、他の版へ変更する際に適用可能な版の段数を示す制約情報とに基づいて、当該プログラムを該データ中継装置に適用可能であるかを確認する確認ステップと、
該確認ステップにおいて該プログラムが適用可能であると判断された場合に、該指示された版のプログラムを該データ中継装置にインストールするインストールステップとをそなえることを特徴とする、管理方法。
【請求項８】
データ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理機能をコンピュータに実行させるための管理プログラムであって、
適用が指示された版の該プログラムについて、該データ中継装置にインストールされているプログラムの版情報と、他の版へ変更する際に適用可能な版の段数を示す制約情報とを参照して、該プログラムの複数の版の中から該データ中継装置にインストールするプログラムを選択する選択ステップと、
該選択ステップにおいて選択された該プログラムを該データ中継装置にインストールするインストールステップとを該コンピュータに実行させることを特徴とする、管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、複数のデータ中継装置が接続されたデータ伝送システムにおいて、データ中継装置にインストールされるプログラムを管理する技術に関する。
【背景技術】
【０００２】
近年、ハードディスク装置や磁気テープ装置等のストレージと、サーバ等のコンピュータとをファイバチャネル等のシリアルＳＣＳＩプロトコルを用いてネットワーク化したストレージエリアネットワーク（ＳＡＮ；Storage Area Network）が知られている。
また、このようなＳＡＮの構築に際しては、一般にスイッチと呼ばれる中継装置をサーバとストレージとの間に配置することにより、フレキシブルなシステム構成を実現している（下記特許文献１，２参照）。
【０００３】
スイッチは、サーバとストレージとの間におけるデータの送受信処理を行なうものであり、ファームウェアをメインプロセッサにより実行することにより、プロトコル制御やステータス管理等の各種制御を実現している。
また、複数のＳＡＮ（ファブリック）からなる大規模なＳＡＮにおいては、各ファブリック内にそれぞれ複数のスイッチがそなえられることも多い。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−２５２８０６号公報
【特許文献２】特開２００３−１３１８９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
さて、上述の如き従来のＳＡＮの運用に際して、複数のスイッチのファームウェアの更新は、保守作業員が各スイッチに１台ずつログインしてファームウェアを適用することにより行なっている。すなわち、保守作業員が各スイッチにそれぞれ保守用ＰＣ（Personal Computer）を接続し、インストールを実行するためのコマンド入力を行なう。
このようなファームウェアのインストール作業は煩雑である。特に、スイッチの台数が多くなるに従って、ファームウェアの更新作業に要する時間が長くなり、結果的にメンテナンスコストが増大するという課題がある。
【０００６】
また、スイッチにおいては、インストールされているファームウェアに対して、新たなファームウェアを直接適用できない場合もある。このような場合には、スイッチに対して、一旦、中間のバージョンのファームウェア（中間ファームウェア）をインストールした後に、新たなファームウェアをインストールする。すなわち、段階的に複数のインストール作業を行なう必要があり、これにより、ファームウェアの更新作業が更に煩雑になる。
【０００７】
さらに、一般に、ＳＡＮにおいては、信頼性を向上させるために、サーバとストレージとの間のアクセスパスを二重化することが一般的に行なわれており、これに応じて、２以上のスイッチがペアとなるように配置される。従って、保守作業員は、サーバからストレージへの業務アクセスが停止しないように、これらのスイッチに対して１台ずつ時間を空けてインストール作業を行なう必要がある。すなわち、スイッチに対して保守作業を行なうタイミングを考慮しなければならず、これによっても煩雑である。
【０００８】
また、故障等の理由でスイッチ本体を交換する場合に、交換後のスイッチにインストールされているファームウェアの版が、交換前のスイッチにインストールされていたファームウェアの版と異なる場合がある。このような場合において、稼動実績を考慮して、交換後のスイッチに交換前のスイッチと同じ版のファームウェアをインストールして使用したい場合がある。このような場合に、保守作業員は、交換前のスイッチのファームウェアの版数を確認して、その版のファームウェアを入手する必要があり、これによっても煩雑である。
【０００９】
本件の目的の一つは、このような課題に鑑み創案されたもので、データ中継装置のファームウェア等のプログラムを一元的に管理できる工夫を施すことにより、メンテナンス作業に要する労力を軽減し、メンテナンスコストを低減できるようにすることである。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【００１０】
このため、この管理システムは、データ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理システムであって、該プログラムの複数の版のそれぞれを格納するプログラム格納部と、該データ中継装置にインストールされているプログラムの版情報を格納する版情報格納部と、該プログラムの複数の版のそれぞれに関して、他の版へ変更する際に適用可能な版の段数を示す制約情報を格納する制約情報格納部と、該データ中継装置に適用されるべきプログラムの版情報を指示情報として入力可能な指示情報入力部と、該指示情報入力部から入力された該指示情報により指示された版の該プログラムについて、該版情報格納部に管理された該版情報と、該制約情報格納部に格納された該制約情報とを参照して、当該プログラムを該データ中継装置に適用可能であるかを確認する確認部と、該確認部により該プログラムが適用可能であると判断された場合に、該指示された版のプログラムを該データ中継装置にインストールするインストール処理部とをそなえる。
【００１１】
また、この管理装置は、データ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理装置であって、該データ中継装置にインストールされているプログラムの版情報を格納する版情報格納部と、該プログラムの複数の版のそれぞれに関して、他の版へ変更する際に適用可能な版の段数を示す制約情報を格納する制約情報格納部と、適用が指示された版の該プログラムについて、該版情報格納部に管理された該版情報と、該制約情報格納部に格納された該制約情報とを参照して、当該プログラムを該データ中継装置に適用可能であるかを確認する確認部と、該確認部により該プログラムが適用可能であると判断された場合に、該指示された版のプログラムを該データ中継装置にインストールするインストール処理部とをそなえる。
【００１２】
この管理方法は、データ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理方法であって、該データ中継装置に適用されるべきプログラムの版情報を指示情報として入力可能な指示情報入力ステップと、該指示情報入力ステップにおいて入力された該指示情報により指示される版の該プログラムについて、該データ中継装置にインストールされているプログラムの版情報と、該プログラムの複数の版のそれぞれに関して、他の版へ変更する際に適用可能な版の段数を示す制約情報とに基づいて、当該プログラムを該データ中継装置に適用可能であるかを確認する確認ステップと、該確認ステップにおいて該プログラムが適用可能であると判断された場合に、該指示された版のプログラムを該データ中継装置にインストールするインストールステップとをそなえる。
【００１３】
この管理プログラムは、データ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理機能をコンピュータに実行させるための管理プログラムであって、適用が指示された版の該プログラムについて、該データ中継装置にインストールされているプログラムの該版情報と、他の版へ変更する際に適用可能な版の段数を示す制約情報とを参照して、該プログラムの複数の版の中から該データ中継装置にインストールするプログラムを選択する選択ステップと、該選択ステップにおいて選択された該プログラムを該データ中継装置にインストールするインストールステップとを該コンピュータに実行させる。
【発明の効果】
【００１４】
開示の管理システム，管理装置，管理方法および管理プログラムによれば、以下の少なくともいずれか１つの効果ないし利点が得られる。
（１）データ中継装置のプログラムに関するメンテナンスが容易となり利便性が高い。
（２）システムの管理・運用のコストを低減することができる。
（３）システム可用性を向上させることができる。
【００１５】
（４）システムの信頼性を向上させることができる。
【図面の簡単な説明】
【００１６】
【図１】実施形態の一例としての管理システムの構成を模式的に示す図である。
【図２】実施形態の一例としての管理システムがそなえられるストレージシステムの構成を模式的に示す図である。
【図３】実施形態の一例としての管理システムのスイッチのハードウェア構成を模式的に示す図である。
【図４】実施形態の一例としての管理システムの代理スイッチの構成を模式的に示す図である。
【図５】実施形態の一例としての管理システムのファームウェア管理テーブルを示す図である。
【図６】実施形態の一例としての管理システムのファームウェア管理テーブルを示す図である。
【図７】実施形態の一例としての管理システムのベーススイッチの構成例を模式的に示す図である。
【図８】実施形態の一例としての管理システムにおける各スイッチのファームウェアの管理登録手法を説明するためのフローチャートである。
【図９】実施形態の一例としての管理システムにおけるファームウェア管理テーブルセットの更新手法を説明するためのフローチャートである。
【図１０】実施形態の一例としての管理システムにおける、スイッチのファームウェアの変更手法を説明するためのフローチャートである。
【図１１】実施形態の一例としての管理システムにおけるスイッチの交換時における処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して本管理システム，管理装置，管理方法および管理プログラムに係る実施の形態を説明する。
図１は実施形態の一例としての管理システムの構成を模式的に示す図、図２は本管理システムがそなえられるストレージシステムの構成を模式的に示す図である。
ストレージシステム１００は、データ中継装置としてのスイッチ６０や通信ネットワークを介して複数のサーバ７１やストレージ７２を接続することにより構成され、ストレージ７１の記憶領域の共有や、冗長性によるデータ保護等を実現する。すなわち、このストレージシステム１００は、複数のスイッチ６０が接続されたデータ伝送システムとして機能する。
【００１８】
本管理システム１は、このストレージシステム１００にそなえられ、ストレージシステム１００にそなえられた各スイッチ６０のファームウェア（プログラム）を管理するもの
である。        
図２に示す例においては、ストレージシステム１００は、複数のファブリック（ＳＡＮ：管理領域）Ｆ１〜Ｆ３をそなえており、これらのファブリックＦ１〜Ｆ３には、それぞれサーバ７１やストレージ７２がスイッチ６０を介して接続されている。
【００１９】
なお、本実施形態においては、ストレージシステム１００にファブリックＦ１〜Ｆ３の３つのファブリックがそなえられている例について説明するが、これに限定されるものではなく、ストレージシステム１００内に、２つ以下、もしくは４つ以上のファブリックをそなえて構成してもよい。
以下、ファブリックを示す符号としては、複数のファブリックのうち１つを特定する必要があるときには符号Ｆ１〜Ｆ３を用いるが、任意のファブリックを指すときには符号Ｆを用いる。
【００２０】
本管理システム１は、図１に示すように、ベーススイッチ（第２の管理装置）１０，代理スイッチ（第１の管理装置）２０，管理端末３０およびファームサーバ４０をそなえて構成されている。
ファームサーバ４０は、ベーススイッチ１０に通信回線５０２およびＬＡＮ（Local Area Network）／ＷＡＮ（Wide Area Network）５０７を介して接続されており、管理端末３０は、ベーススイッチ１０に通信回線５０３およびＬＡＮ／ＷＡＮ５０７を介して接続されている。
【００２１】
また、各ファブリックＦ１〜Ｆ３にはそれぞれ代理スイッチ２０がそなえられ、これらの代理スイッチ２０は、ベーススイッチ１０に通信回線５０１を介して接続されている。
各ファブリックＦにおいては、代理スイッチ２０に、通信回線５０４を介してストレージ８０が接続されており、又、この代理スイッチ２０には、同一のファブリックＦ内のスイッチ６０のそれぞれが、通信回線５０６およびＬＡＮ／ＷＡＮ５０８を介して接続されている。
【００２２】
また、各スイッチ６０には、サーバ７１やストレージ７２が通信回線５０９を介して接続されている。又、一部のサーバ７１やストレージ７２は、複数のスイッチ６０と通信回線５０９を介して接続することにより、通信パスの冗長化を実現している。
なお、図２に示す例においては、通信回線５０２，５０３，５０６はイーサネット（Ethernet：登録商標）の規格に基づく回線であり、通信回線５０１，５０４，５０９はファイバチャネル（Fibre Channel：ＦＣ）の規格に基づく回線である。
【００２３】
なお、図１，図２に示す例においては、便宜上、ファブリックＦ１についてのみ、その構成を示しているが、他のファブリックＦ２，Ｆ３もファブリックＦ１と同様に構成されている。又、図１に示す例においては、便宜上、ＬＡＮ／ＷＡＮ５０７，５０８の図示を省略している。
図３は本管理システムのスイッチのハードウェア構成例を模式的に示す図である。
【００２４】
スイッチ６０は、サーバ７１やストレージ７２，他のスイッチ６０が通信回線５０９を介して接続され、これらの間のデータや各種命令の授受を中継するデータ送受信制御を行なうものである。このスイッチ６０は、図３に示すように、メインプロセッサ６１，データ送受信制御部６２，不揮発性メモリ６３，ＦＣインタフェース６４およびイーサネットインタフェース６５をそなえて構成されている。
【００２５】
ＦＣインタフェース６４は、ＦＣ規格の機器が接続されるインタフェースであり、複数（図３に示す例では５つ）のポート６４１をそなえて構成されている。これらのポート６４１には、例えば、通信回線５０９を介して、サーバ７１やストレージ７２，他のスイッチ６０が接続される。
データ送受信制御部６２は、ＦＣインタフェース６４に接続された機器間のデータ送受信処理を実現するものである。又、例えば、ＦＣインタフェース６４に接続されたサーバ７１とストレージ７２との間のデータ送受信は、通常はデータ送受信制御部６２による制御により実現され、後述するメインプロセッサ６１を介さないで行なわれる。
【００２６】
イーサネットインタフェース６５は、イーサネット規格の機器が接続されるインタフェースであり、例えば、通信回線５０６を介して代理スイッチ２０が接続される。なお、図２に示す例においては、スイッチ６０にＬＡＮ／ＷＡＮ５０８を介して代理スイッチ２０が接続されている状態を示しているが、イーサネットインタフェース６５と代理スイッチ２０との接続は種々変形して実施することができる。
【００２７】
不揮発性メモリ６３は、種々のデータやプログラムを格納する記憶領域である。この不揮発性メモリ６３には、スイッチ６０の各種機能を実現するためのファームウェア（プログラム）が格納されている。
メインプロセッサ６１は、不揮発性メモリ６３に格納されたファームウェアを実行することにより、スイッチ６０における各種制御や機能を実現するものである。例えば、メインプロセッサ６１は、ファームウェアを実行することにより、ＦＣインタフェース６４を介して接続された各種装置のステータス監視を行なったり、この監視の結果、何らかの異常を検出した場合に、後述する管理端末３０等に対してエラー通知を行なう。又、メインプロセッサ６１は、ファームウェアを実行することにより、各種設定やプロトコル制御等も行なう。これらにより、メインプロセッサ６１は、スイッチ６０において、例えば、ポート６４１に接続されている装置の種類や装置の各種情報を一括管理したり、データへのアクセス制限を行なうことにより、ゾーニング（Zoning）も実現する。なお、これらの機能はスイッチの機能（常駐プロセス）として既知のものであり、その詳細な説明は省略する。
【００２８】
また、スイッチ６０によって実行されるファームウェアは、スイッチ６０の機能強化やセキュリティの向上、動作の安定性の向上等の目的で、適宜、更新される。すなわち、同じスイッチ６０に適用される同一種類のファームウェアであっても、その更新（作成）日時により異なる。
本管理システム１においては、このように作成（更新）された複数のファームウェアを「版」を用いて区別する。この版の表現には、数字やアルファベット等の前後関係が明白な文字を用いることが望ましく、これらの数字等の順序によりファームウェアの新旧を表現することができる。本実施形態においては、英数字や記号を単独もしくは組み合わせて用い、数字の大きい方が後に作成された（新しい）ファームウェアであることを表す。例えば、図６に示す例においては、“v3.0”の如く、バージョン（version）を表す文字“v”と数字“3”、記号“.（ピリオド）”、数字“０”を組み合わせることによりファームウェアを表現している。そして、このv3.0のファームウェアよりもv3.1のファームウェアの方が新しい。
【００２９】
また、本実施形態においては、同一種類のファームウェアについて、各版の時系列的な順序を「版数」を用いて表現する。この版数の表現には、数字やアルファベット等の前後関係が明白な文字を用いることが望ましく、これらの数字等の順序によりファームウェアの新旧を表現することができる。本実施形態においては、版数を自然数を用い、数字の大きい方が後に作成された（新しい）ファームウェアであることを表す。
【００３０】
これらの版と版数との対応付けは、後述するファームウェア管理テーブルＴ２（図６参照）において管理される。
なお、ファームウェア管理テーブルＴ２における版と版数との対応付けは、本システム１の導入時や、ファームウェアの新たな版が作成されファームサーバ４０に登録されたタイミング等に、管理者等が作成してもよい。又、かかる処理を、例えばファームウェア管理プロセス１０１ｂもしくはファーム管理プロセス２０１ｂが自動的に行なってもよい。かかる処理を自動的に行なう場合には、作成されたファームウェアに設定されたファイル名や、属性情報（バージョン名），作成日時を示すタイムスタンプ等に基づいて、複数のファームウェア間で順序付けを行なうことができる。
【００３１】
そして、メインプロセッサ６１は、不揮発性メモリ６３に格納されているファームウェアを他の版のファームウェアに変更（バージョンアップ，バージョンダウン）する自ファームウェア更新プロセスも実行する。
この自ファームウェア更新プロセスは、例えば、後述する代理スイッチからリモートログインされた状態で、この代理スイッチにおいてインストールコマンドを実行することにより実施される。
【００３２】
なお、自ファームウェア更新プロセスにおいて、スイッチ６０においてファームウェアをインストールする具体的な手法は、既知のコマンド等により実現することができ、その詳細な説明は省略する。又、以下、スイッチ６０に対してファームウェアをインストールすることをファームウェアを適用すると表現する場合がある。
また、メインプロセッサ６１においては、代理スイッチ２０からのリクエストに応じて、現在インストールされているファームウェアの版情報（版数）を、代理スイッチ２０に対して送信する自ファームウェア表示プロセスを実行する機能をそなえている。ファームウェアの版情報は、例えば、ファームウェアのインストールを行なう際に、不揮発性メモリ６３の所定の領域に格納される。メインプロセッサ６１は、この自ファームウェア表示プロセスを実行する際に、この不揮発性メモリ６３の所定の領域に格納された版情報を、代理スイッチ２０に通知する。
【００３３】
なお、同一ファブリックＦ内のサーバ７１からストレージ７２にアクセスする際には、スイッチ６０を経由してアクセスする。又、本実施形態においては、スイッチ６０は仮想機能をもっていないものとする。
図４は本管理システムの代理スイッチの構成例を模式的に示す図である。
代理スイッチ２０は、ファブリックＦ毎にそなえられ、同一のファブリックＦ内のスイッチ６０の各ファームウェアを管理するものである。
【００３４】
代理スイッチ２０は、図４に示すように、メインプロセッサ２０１，データ送受信制御部２０２，不揮発性メモリ２０３，ＦＣインタフェース２０４，イーサネットインタフェース２０５，揮発性メモリ２０６および仮想−物理変換制御部２０７をそなえて構成されている。
ＦＣインタフェース２０４は、ＦＣ規格の機器が接続されるインタフェースであり、複数（図４に示す例では５つ）のポート２４１をそなえている。これらのポート２４１には、例えば、図２に示す通信回線５０１や通信回線５０４を介してベーススイッチ１０やストレージ８０が接続される。
【００３５】
データ送受信制御部２０２は、ＦＣインタフェース２４に接続されたベーススイッチ１０との間においてデータ送受信処理を実現するものである。
ストレージ（プログラム格納部）８０は、ハードディスクドライブ（Hard disk drive：ＨＤＤ）、ＳＳＤ（Solid State Drive）等の記憶装置であって、種々のデータを格納するものである。本実施形態においては、このストレージ８０には、後述の如く、代理スイッチ２０がベーススイッチ１０を介してファームサーバ４０から取得したファームウェアが格納される。
【００３６】
このストレージ８０には、同じファブリックＦ内にそなえられたスイッチ６０にインストールされているものと同じ版数の全てのファームウェアが格納される。すなわち、このストレージ８０は、ファーム格納用ストレージ装置として機能する。
このストレージ８０の所定の記憶領域には、そのストレージ８０が設置されたファブリックＦ内の各スイッチ６０にインストールされている各ファームウェアと同じ版のファームウェアが格納される。又、このストレージ８０には、新たにスイッチ６０にインストールされるファームウェアも格納される。
【００３７】
これらの各ファームウェアの格納にストレージ８０を用いることにより、複数の機種のファームウェア、かつ複数の世代のファームウェアという大量のデータを確実に格納することができる。
また、このストレージ８０をＲＡＩＤ構成にすることにより冗長度や信頼性を向上することができる。又、代理スイッチ２０に故障が生じ、交換を行なう場合においても、これらのファームウェアをストレージ８０に格納しておくことにより、ストレージ８０内のファームウェアをそのまま利用することができる。すなわち、ファームウェアのデータを改めてファームサーバ４０から取得する必要がなく利便性が高い。
【００３８】
さらに、このストレージ８０に格納されたファームウェアを、複数の格納領域にコピーすることによりデータの冗長化を容易に行なうことができる。又、ストレージ８０の交換を行なう際においても、古いストレージ８０から新しいストレージ８０に容易にファームウェアの入れ替えを行なうことができ利便性が高い。
イーサネットインタフェース２０５は、イーサネット規格の機器が接続されるインタフェースであり、例えば、通信回線５０６を介してスイッチ６０が接続される。
【００３９】
揮発性メモリ２０６は、後述するメインプロセッサ２０１の制御によりストレージ８０から取得したファームを一時的に格納するものであり、ファームデータ格納領域として機能する。
不揮発性メモリ２０３は、種々のデータやプログラムを格納する記憶領域である。この不揮発性メモリ２０３には、仮想構成情報２０３ａやファームウェア管理テーブルセットＴＳが格納される。ここで、仮想構成情報２０３ａは、後述するメインプロセッサ２０１が仮想−物理構成管理プロセス２０１ａを実行するに際して用いる情報である。又、ファームウェア管理テーブルセットＴＳは、メインプロセッサ２０１がファームウェア管理プロセス２０１ｂを実行するに際して用いる情報である（詳細は後述）。又、この不揮発性メモリ２０３には、代理スイッチ２０の各種機能を実現するためのファームウェア（プログラム）も格納される。
【００４０】
仮想−物理変換制御部２０７は、仮想ボリュームへのアクセス要求をファブリックＦ内にそなえられた実ストレージへのアクセス要求に変換してデータ送受信制御部２０２（ＦＣインタフェース２０４）へ転送するものである。又、仮想−物理変換制御部２０７は、後述するベーススイッチ１０の仮想イニシエータＶＩ−１から、代理スイッチ２０の仮想ターゲットＶＴへの要求をファームウェア管理プロセス２０１ｂへ渡す。なお、この仮想−物理変換制御部２０７としての機能は、既知の手法によって実現することができ、例えば、ＬＳＩ（Large Scale Integration）として構成される。
【００４１】
メインプロセッサ２０１は、不揮発性メモリ２０３に格納されたファームウェアを実行することにより、代理スイッチ２０における各種制御や機能を実現するものである。例えば、メインプロセッサ２０１は、ファームウェアを実行することにより、仮想−物理構成管理プロセス２０１ａやファームウェア管理プロセス２０１ｂの他、各種常駐プロセス２０１ｃを実行する。
【００４２】
仮想−物理構成管理プロセス２０１ａは、仮想ターゲットＶＴや仮想イニシエータＶＩ−２，仮想ボリュームＶＶＯＬを構築（定義）するプロセスである。
ここで、仮想ターゲットＶＴは、ベーススイッチ１０の仮想イニシエータＶＩ−１と通信するためのインタフェースであり、このベーススイッチ１０の仮想イニシエータＶＩ−１から送信される命令（コマンド）を受信するものである。
【００４３】
仮想イニシエータＶＩ−２は、その代理スイッチ２０が設置されたファブリック（以下、担当ファブリックという場合がある）Ｆ内の任意のストレージ装置（例えば、ストレージ８０）にアクセスするためのインタフェースである。
仮想ボリュームＶＶＯＬは、代理スイッチ２０の中に定義される仮想的なボリュームである。仮想−物理構成管理プロセス２０１ａは、この仮想ボリュームＶＶＯＬに、担当ファブリックＦ内のストレージ８０の任意のボリューム容量から記憶領域を割り当てる。
そして、この仮想ボリュームＶＶＯＬには、ベーススイッチ１０の仮想イニシエータＶＩ−１から代理スイッチ２０の仮想ターゲットＶＴを介してデータの読み出し／書き込みを行なうことができる。又、仮想ボリュームＶＶＯＬには、ベーススイッチ１０を介することなく代理スイッチ２０からデータの読み出し／書き込みを行なうこともできる。
【００４４】
代理スイッチ２０の仮想ボリュームＶＶＯＬは、ストレージ８０内の実ボリュームとのひもづけを行なう定義体である。この代理スイッチ２０は、仮想ボリュームＶＶＯＬ内にどのようなファームウェアデータを格納したのかがわかっているので、仮想ボリュームに対して読み書きの命令をすれば、ひもづけられている実ボリュームへアクセスしてデータを読み書きしにいく。
【００４５】
ちなみに、実ボリュームへのアクセスは、仮想イニシエータＶＩ−２を経由する。これにより、ストレージ８０から見ると、仮想イニシエータＶＩ−２という仮想的なサーバからアクセスされているように見えることになる。
そして、仮想イニシエータＶＩ−２や仮想ターゲットＶＴは、ベーススイッチ１０および代理スイッチ２０がファームウェアのデータを読み書きするべくストレージ８０にアクセスするために用いられる。
【００４６】
ファームウェア管理プロセス２０１ｂは、担当ファブリックＦ内の各スイッチ６０のファームウェアを管理するプロセスである。具体的には、ファームウェア管理プロセス２０１ｂは、各スイッチ６０にインストールされているファームウェアの情報（版等）を、ファームウェア管理テーブルセットＴＳを用いて管理する。
ファームウェア管理テーブルセットＴＳは、図１に示すように、ファームウェア管理テーブルＴ１，Ｔ２の２つのテーブルをそなえて構成されている。
【００４７】
図５はファームウェア管理テーブルＴ１の例を示す図、図６はファームウェア管理テーブルＴ２の例を示す図である。
ファームウェア管理テーブルＴ１は、ファブリックＦ内の各スイッチ６０のファームウェアに関する情報であって、図５に示すように、装置識別番号，代理，ファーム種，同版数グループ（Group；以下、Ｇと示す），冗長Ｇ，現版数および適用版数を項目（パラメータ）としてそなえている。
【００４８】
“装置識別番号”は、ファームウェアが適用される各装置（ファーム適用対象装置；スイッチ６０）の１台毎にユニークに割り当てられる識別情報である。図５に示す例においては、ファブリック番号＝１で特定されるファブリックＦに８台のスイッチ６０がそなえられており、これらの８台のスイッチ６０に対して、１〜８の整数のいずれかを装置識別番号として割り当てた例を示している。
【００４９】
なお、ファブリック番号は、ファブリックＦ毎にユニークに割り当てられる識別情報である。
“代理”は、ベースメントサーバからファーム適用指示を受ける装置を示しており、マスタとなる装置には１が、スレーブとなる装置には２が、それぞれ設定される。
“ファーム種”は、ファームウェアの種類を表す識別情報であって、図５においては、１，２，３のいずれかの整数によって特定される３種類のファームウェアが存在する例を示している。
【００５０】
“同版数Ｇ”は、同じ版のファームウェアが適用されるべきスイッチ６０（装置グループ）を示す情報であって、同じ版のファームウェアを適用する複数のスイッチ６０に、互いに同じ数値が設定される。例えば、図５に示す例においては、装置識別番号３，４のスイッチ６０に同版数Ｇ＝１が、又、装置識別番号７，８のスイッチ６０に同版数Ｇ＝２が、それぞれ設定されている。従って、装置識別番号３と装置識別番号４のスイッチ６０には同じ版数のファームウェアが適用されるべきことを示している。同様に、装置識別番号７と装置識別番号８のスイッチ６０には同じ版数のファームウェアが適用されるべきことを示している。
【００５１】
“冗長Ｇ”は、パスを冗長化しているスイッチ６０（装置グループ）を示す情報であって、パスが冗長化されている複数のスイッチ６０に、互いに同じ数値が設定される。すなわち、この冗長Ｇには、同一のパスで構成されるグループを識別する識別子が格納される。例えば、図５に示す例においては、装置識別番号５，６のスイッチ６０に冗長数Ｇ＝１が、又、装置識別番号７，８のスイッチ６０に冗長Ｇ＝２が、それぞれ設定されている。従って、装置識別番号５と装置識別番号６のスイッチ６０がパスを冗長化して構成されていることを示している。同様に、装置識別番号７と装置識別番号８のスイッチ６０がパスを冗長化して構成されていることを示している。
【００５２】
“現版数”は、そのスイッチ６０にインストールされているファームウェアの版数であり、例えば、ファームウェア管理プロセス２０１ｂがスイッチ６０に対して版数を問い合わせるコマンドを送信することにより取得される。
“適用版数”は、そのスイッチ６０に適用を希望するファームウェアの版（適用版数）を特定するための情報（版数）である。
【００５３】
なお、これらの情報のうち、例えば、同版数Ｇ，冗長Ｇおよび適用版数は、管理端末３０等を用いてオペレータ等が入力することにより任意に設定される。管理端末３０から入力されたこれらの情報は、後述するベーススイッチ１０に送信され、ベーススイッチ１０から対応する代理スイッチ２０に送信される。
ファームウェア管理テーブルＴ２は、ファームウェアについての情報であり、ファームウェアの複数の版のそれぞれに関して、他の版へ変更する際の制約条件を表す制約情報である。この制約情報は、ファームウェアの各版に対して、その版から一度に変更可能な版の段数を示す段数情報をそれぞれ対応付けて構成されている。
【００５４】
図６に示す例においては、ファーム種１，３，４の各ファームウェアには、それぞれ版数１〜４の４つの版があり、ファーム種２のファームウェアには、版数１〜５の５つの版がある。又、図６に示す例においては、ファームウェアの各版数の版情報（バージョン，リビジョン）を、「ｖ」を付し、且つ、ダブルコーテーション（”）で囲んだ状態で示している。例えば、ファーム種＝２の版数２のファームウェアは、”ｖ４．４”と表現している。同様に、例えば、ファーム種３のファームウェアは、版数１がｖ５．３、版数２がｖ６．０、版数３がｖ６．１、版数４がｖ６．１．２である。
【００５５】
また、ファームウェア管理テーブルＴ２においては、これらの各ファーム種の各版数に対応付けてＵ／Ｄパラメータがそれぞれ設定されている。Ｕ／Ｄパラメータは、その版のファームウェアを上位の版にバージョンアップする場合や、下位の版にバージョンダウンする際に、何段目の版のファームウェアまで一度に適用できるかを表す情報である。すなわち、Ｕ／Ｄパラメータは、バージョンアップもしくはバージョンダウン時における、一度に適用可能なファームウェアの段数（制約段数）である。
【００５６】
図６に示す例においては、Ｕ／Ｄパラメータとして、バージョンアップ時の制約段数をスラッシュ（／）の左側に、又、バージョンダウン時の制約段数をスラッシュの右側にそれぞれ配置することにより表している。
例えば、制約段数“Ｎ”（Ｎは自然数）は、バージョンアップに関しては、その版のファームウェアに対しては、Ｎ−１段飛ばしてＮ段階上の版のファームウェアまで適用可能であることを示す。同様に、バージョンダウンに関しては、その版のファームウェアに対しては、Ｎ−１段飛ばしてＮ段下の版のファームウェアまで適用可能であることを示す。
【００５７】
従って、制約段数＝２は、バージョンアップに関しては、その版のファームウェアに対しては、１段飛ばして２段階上の版のファームウェアまで適用可能であることを示す。同様に、バージョンダウンに関しては、その版のファームウェアに対しては、１段飛ばして２段下の版のファームウェアまで適用可能であることを示す。
また、制約段数＝１は、バージョンアップについては、その版のファームウェアに対しては、１段上の版のファームウェアのみを適用可能であることを示す。同様に、バージョンダウンについては、その版のファームウェアに対しては、１段下の版のファームウェアのみを適用可能であることを示す。
【００５８】
なお、制約段数＝０は、制限なくバージョンアップもしくはバージョンダウン可能であることを示す。又、制約段数＝FFFFは、バージョンアップもしくはバージョンダウンができないことを示す。
例えば、図６に示す例において、ファーム種２のｖ４．２のファームウェア（版数１）は、バージョンアップに関して、１つ上の版のファームウェアのみ適用可能であり、又、バージョンダウンはできない。又、ファーム種２のｖ４．４のファームウェア（版数２）は、バージョンアップに関して、２つ上の版のファームウェアまで一度に適用可能であり、ｖ５．０．１もしくはｖ５．０．２のファームウェアを適用することができる。又、バージョンダウンに関しては、１つ下の版のファームウェア（ｖ４．２）を適用することができる。
【００５９】
また、ファーム種２のｖ５．０．２のファームウェア（版数４）は、バージョンアップに関しては制限なく適用可能である。又、バージョンダウンに関しては、２つ下の版のファームウェアまで一度に適用可能であり、ｖ４．４もしくはｖ５．０．１のファームウェアを適用することができる。なお、備考は、ファームウェアに関する種々の任意の情報である。
【００６０】
なお、このファームウェア管理テーブルＴ２のＵ／Ｄパラメータや備考は、管理端末３０等を用いてオペレータ等が入力することにより任意に設定される。管理端末３０から入力されたこれらの情報は、後述するベーススイッチ１０に送信され、ベーススイッチ１０から対応する代理スイッチ２０に送信される。
そして、これらのファームウェア管理テーブルＴ１，Ｔ２はファブリックＦ毎にそなえられる。すなわち、各代理スイッチ２０にはその担当ファブリックＦに関するファームウェア管理テーブルＴ１，Ｔ２がファームウェア管理テーブルセットＴＳとして保持される。
【００６１】
このように、代理スイッチ２０においては、不揮発性メモリ２０３が、ファームウェア管理テーブルＴ１を格納することにより、複数のスイッチ６０にそれぞれインストールされているファームウェアの版情報を格納する版情報格納部として機能する。又、この不揮発性メモリ２０３は、ファームウェア管理テーブルＴ２を格納することにより、ファームウェアの複数の版のそれぞれに関して、他の版へ変更する際の制約情報を格納する制約情報格納部として機能する。
【００６２】
また、ファームウェア管理プロセス２０１ｂは、後述するベーススイッチ１０から、更新されたファームウェア管理テーブルＴ１，Ｔ２が送信された場合に、不揮発性メモリ２０３に格納されているファームウェア管理テーブルＴ１，Ｔ２を、受信したファームウェア管理テーブルＴ１，Ｔ２により更新する機能をそなえている。
さらに、ファームウェア管理プロセス２０１ｂは、スイッチ６０のファームウェアを変更するに際して、ファームウェア管理テーブルＴ１とファームウェア管理テーブルＴ２とを参照して、ファームウェアを現版から適用したい版へ変更する際に、インストールすべきファームウェアの選択を行なう。
【００６３】
例えば、ファームウェア管理プロセス２０１ｂは、ファームウェアの変更が指示されたスイッチ６０に関して、ファームウェア管理テーブルＴ１を参照して、現版数から適用版数までの段数を取得する。又、ファームウェア管理プロセス２０１ｂは、現版数に基づいてファームウェア管理テーブルＴ２を参照して、そのファームウェアについての現版数のファームウェアの制約段数を取得する。
【００６４】
ファームウェア管理プロセス２０１ｂは、これらの情報に基づいて、現版から適用したい版までファームウェアを変更するためには、適用したい版（適用が指示された版）のファームウェアをそのまま適用できるか否かの判断を行なう。
すなわち、ファームウェア管理プロセス２０１ｂは、適用版数のファームウェアについて、不揮発性メモリ２０３に格納されたファームウェア管理テーブルＴ１，Ｔ２を参照して、適用版数のファームウェアを対象スイッチ６０に適用可能であるかを確認する確認部２１０（図１参照）としての機能を実現する。
【００６５】
さらに、ファームウェア管理プロセス２０１ｂは、確認部２１０により適用版数のファームウェアを対象スイッチ６０に直接適用できないと判断された場合に、ファームウェア管理テーブルＴ１，Ｔ２を参照して、複数の版のファームウェアの中から対象スイッチ６０にインストールするファームウェアを選択する選択部２１１（図１参照）としての機能を実現する。
【００６６】
なお、以下、ファームウェアの変更が指示されたスイッチ６０のことを対象スイッチ６０という場合があり、又、この対象スイッチ６０に対して適用が指示されたファームウェア版数を適用版数という場合がある。
また、ファームウェア管理プロセス２０１ｂ（選択部２１１）は、現版数から適用版数までファームウェアを変更するためには、適用版数のファームウェアをそのまま適用できない場合には、一旦、現版数と適用版数との間の版数のファームウェア（中間ファームウェア）をインストール対象として選択する。
【００６７】
なお、ファームウェア管理プロセス２０１ｂは、選択された中間ファームウェアの版からでも適用版数を適用できない場合には、更に、この選択された中間ファームウェアの版数と適用版数との間の版数の中間ファームウェアを更にインストール対象として選択する。
すなわち、ファームウェア管理プロセス２０１ｂは、必要に応じて１以上の中間ファームウェアの選択およびインストールを順次行なうことにより、現版数から適用版数まで段階的に変更する。
【００６８】
なお、中間ファームウェアの選択手法としては、例えば、現版数に対して適用可能な版が複数ある場合には、これらの版のうち、適用版数に最も近い版数のファームウェアを選択することが望ましい。これにより、適用する中間ファームウェアの数を減らすことができ効率的である。
すなわち、ファームウェア管理プロセス２０１ｂは、適用版数のファームウェアについて、ファームウェア管理テーブルＴ１の版情報（現版数，適用版数）とファームウェア管理テーブルＴ２とを参照して、複数の版のファームウェアの中からそのスイッチ６０にインストールするファームウェアを選択する選択機能を実現する。
【００６９】
なお、ファームウェア管理プロセス２０１ｂは、中間ファームウェアの選択やスイッチ６０に対するインストールを行なう際に、管理端末３０等を介して、スイッチ６０に対するインストールの実行許可をオペレータに対して行なってもよい。又、スイッチ６０に対して中間ファームウェアや適用版数のファームウェアのインストールを行なった場合には、ファームウェア管理プロセス２０１ｂは、不揮発性メモリ２０３に格納されたファームウェア管理テーブルＴ１の更新を適宜行なう。
【００７０】
また、ファームウェア管理プロセス２０１ｂは、このファームウェア管理テーブルセットＴＳを、ＦＣインタフェース２０４を介してベーススイッチ１０に対して送信する。
さらに、ファームウェア管理プロセス２０１ｂは、ベーススイッチ１０から、担当ファブリックＦ内のスイッチ６０にインストールされるべきファームウェアを取得し、この取得したファームウェアをストレージ８０に格納する制御を行なう。
【００７１】
また、ファームウェア管理プロセス２０１ｂは、上述の如く選択したファームウェアを対象のスイッチ６０にインストールするインストール処理機能を実現する。
ファームウェア管理プロセス２０１ｂは、後述するベーススイッチ１０からファームウェアの変更指示（ファームアップ指示）を受信した場合に、指示されたスイッチ６０に対して、ストレージ８０に格納されたファームウェアをインストールさせる制御（インストール操作）を行なう。
【００７２】
すなわち、ファームウェア管理プロセス２０１ｂは、この確認部２１０によって適用可能であると判断されたファームウェアをスイッチ６０にインストールするインストール処理部２１２（図１参照）として機能する。
このインストール処理部２１２は、選択部２１１によって選択されたファームウェアを、対象となるスイッチ６０に対してインストールものであり、例えば、スイッチ６０に対して、ファームウェアをインストールするためのコマンドを出力することにより、ファームウェアのインストールを行なう。
【００７３】
このスイッチ６０にファームウェアをインストールするための具体的手法は、既知の種々の手法を用いて実現することができる。
例えば、代理スイッチ２０は、スイッチ６０に対して、Telnet等の手法により接続し、スイッチ６０に対して、ストレージ８０に格納されたファームウェアをインストールさせるためのコマンドを発行する。例えば、インストール処理部２１２は、対象となるスイッチ６０にTelnet等の機能を用いてログインして、ファームウェアをインストールするためのコマンド（例えば、firmware download）とともにファームウェアの格納場所（ストレージ８０における格納位置）を出力することにより、インストールが行なわれる。そして、このファームウェアをインストールさせるためのコマンドとしては、既知の種々のコマンドを用いることができる。
【００７４】
また、ファームウェア管理プロセス２０１ｂは、イーサネットインタフェース２０５を介して、イーサネットのポーリングを用いて、各スイッチ６０と通信できるか否かをチェックする機能、すなわち、各スイッチ６０の生存状態監視機能をそなえている。又、この生存状態監視機能においては、各スイッチ６０にインストールされているファームウェアの版数を取得し、ファームウェア管理テーブルＴ１に登録されている現版数との比較も行なう。この生存状態監視機能は、定期もしくは不定期の所定のタイミングで行なわれる。
【００７５】
後述するベーススイッチ１０の仮想イニシエータＶＩ−１から稼働中のスイッチ６０のファームウェアの版数の取得要求が行なわれると、代理スイッチ２０においては仮想ターゲットＶＴがこの取得要求を受信する。
仮想ターゲットＶＴが受けた取得要求は、代理スイッチ２０内のファームウェア管理プロセス２０１ｂへ渡され、上述したファームウェア管理プロセス２０１ｂの生存状態監視機能により、代理スイッチ２０に接続されている全てのスイッチ６０のファームウェア情報が取得される。
【００７６】
ファームウェア管理プロセス２０１ｂは、各スイッチ６０のファームウェア版数を取得すると、不揮発性メモリ２０３に格納されたファームウェア管理テーブルＴ１の現版数に全スイッチ２０のファーム版数を書き込む。そして、ファームウェア管理プロセス２０１ｂは、このファームウェア管理テーブルＴ１を添付して、ベーススイッチ１０の仮想イニシエータＶＩ−１へ応答を返す。
【００７７】
また、例えば、代理スイッチ２０においては、イーサネットインタフェース２０５にスイッチ６０が接続されたことを検知した場合に、そのスイッチ６０にインストールされているファームウェアの版数とファームウェア管理テーブルＴ１に登録されている現版数との比較が行なわれる。
例えば、スイッチ６０の交換が行なわれ、交換後のスイッチ６０が代理スイッチ２０に接続された場合に、ファームウェア管理プロセス２０１ｂは、交換後のスイッチ６０にインストールされているファームウェアの版数を取得し、ファームウェア管理テーブルＴ１に登録されている現版数と比較する。
【００７８】
そして、ファームウェア管理プロセス２０１ｂは、交換後のスイッチ６０にインストールされているファームウェアの版数が、ファームウェア管理テーブルＴ１に登録されている現版数と異なる場合には、そのスイッチ６０に対して、ファームウェア管理テーブルＴ１に登録されている現版数と同じ版数のファームウェアを、このスイッチ６０に適用する。
【００７９】
例えば、交換されたスイッチ６０に、交換前のスイッチ６０よりも新しい版のファームウェアがインストールされている場合には、ファームウェア管理プロセス２０１ｂは、ファームウェア管理テーブルＴ１に登録されている現版数と同じ版数のファームウェアをストレージ８０から取得し、その交換されたスイッチ６０にインストール（バージョンダウン）する。
【００８０】
また、この際、ファームウェア管理プロセス２０１ｂは、ファームウェア管理テーブルＴ２を参照して、交換後のスイッチ６０にインストールされているファームウェアの版数から、変更後のファームウェアの版数（適用版数）へのバージョンダウンが、制約条件を満たしているかを判断する。
そして、制約条件を満たしていない場合、すなわち、適用版数のファームウェアをそのまま適用できない場合には、ファームウェア管理プロセス２０１ｂは、中間ファームウェアのインストールを行なってから、変更後のファームウェアの版数へのバージョンダウンを行なう。
【００８１】
常駐プロセス２０１ｃは、メインプロセッサ２０１が定常的に実行するプロセスである。この常駐プロセス２０１ｃとしては、例えば、ＦＣインタフェース２０４を介して接続されたストレージ８０のステータス監視や、ベーススイッチ１０との間の通信ステータスの管理等を行なったり、この監視の結果、何らかの異常を検出した場合に、後述する管理端末３０等に対してエラー通知を行なう。又、メインプロセッサ２０１は、各種常駐プロセス２０１ｃとして、各種設定やプロトコル制御等も行なう。なお、これらの機能は一般的なスイッチの機能（常駐プロセス）として既知のものであり、その詳細な説明は省略する。
【００８２】
そして、代理スイッチ２０のメインプロセッサ２０１が、ファームウェア（管理プログラム）を実行することにより、上述したファームウェア管理プロセス２０１ｂ（確認部２１０，選択部２１１，インストール処理部２１２），仮想−物理構成管理プロセス２０１ａおよび常駐プロセス２０１ｃとして機能する。
なお、これらのファームウェア管理プロセス２０１ｂ，仮想−物理構成管理プロセス２０１ａおよび常駐プロセス２０１ｃとしての機能を実現するための管理プログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００８３】
ファームウェア管理プロセス２０１ｂ，仮想−物理構成管理プロセス２０１ａおよび常駐プロセス２０１ｃとしての機能を実現する際には、内部記憶装置（本実施形態では不揮発性メモリ２０３）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではメインプロセッサ１０１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００８４】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、代理スイッチ２０，ベーススイッチ１０がコンピュータとしての機能を有しているのである。
【００８５】
ファームサーバ４０は、本ストレージシステム１００にそなえられた各スイッチ６０において用いられるファームウェアを管理・保存するものであり、図示しないディスプレイや入力装置，ＣＰＵ（Central Processing Unit），メモリ等をそなえた情報処理装置として構成されている。このファームサーバ４０は、例えば、ストレージ４１をそなえたサーバコンピュータとして構成され、このストレージ４１に、本ストレージシステム１にそなえられた全てのスイッチ６０についての全ての版のファームウェアを保存している。
【００８６】
このファームサーバ４０は、通信回線５０２を介してベーススイッチ１０に接続されており、このベーススイッチ１０からの要求（ファームウェア入手要求）に応じて、要求された版のファームウェアをベーススイッチ１０に送信する。
また、スイッチ６０についての新たな版のファームウェアが作成された場合には、その新たな版のファームウェアが、ストレージ４１に旧版のファームウェアとともに格納され、このファームサーバ４０によって管理される。
【００８７】
なお、このファームサーバ４０への新たな版のファームウェアの登録は、例えば、管理端末３０から、新たなファームウェアのデータをファームサーバ４０に送信されることにより行なわれる。
管理端末３０は、オペレータが使用する情報処理装置であって、図示しないディスプレイや入力装置，ＣＰＵ，メモリ等をそなえた情報処理装置として構成されている。
【００８８】
オペレータは、この管理端末３０を用いて、本ストレージシステム１００の各スイッチ６０のファームウェアの管理を行なう。具体的には、オペレータは、キーボードやマウス等の入力装置を用いて、任意のスイッチ６０に関するファームウェア管理テーブルＴ１に登録されるべき“同版数Ｇ”や“冗長Ｇ”，“適用版数”等の情報を入力する。又、オペレータは、新たなファームウェアが作成された場合には、その新たなファームウェアに関してファームウェア管理テーブルＴ２に登録されるべき情報（Ｕ／Ｄパラメータや備考）を入力する。
【００８９】
これらの管理端末３０の入力装置から入力された情報は、通信回線５０３やＬＡＮ／ＷＡＮ５０７を介してベーススイッチ１０に送信される。
図７は本管理システムのベーススイッチの構成例を模式的に示す図である。
ベーススイッチ１０は、本ストレージシステム１００における各代理スイッチ２０，ファームサーバ４０および管理端末３０とそれぞれ通信可能に接続され、本ストレージシステム１００中において１つそなえられている。
【００９０】
このベーススイッチ１０は、図７に示すように、メインプロセッサ１０１，データ送受信制御部１０２，不揮発性メモリ１０３，ＦＣインタフェース１０４，イーサネットインタフェース１０５および仮想−物理変換制御部１０７をそなえて構成されている。
ＦＣインタフェース１０４は、代理スイッチ２０のＦＣインタフェース２０４と同様に、ＦＣ規格の機器が接続されるインタフェースであり、複数（図７に示す例では５つ）のポート１４１をそなえて構成されている。これらのポート１４１には、例えば、通信回線５０１を介して代理スイッチ２０が接続される。
【００９１】
データ送受信制御部１０２は、ＦＣインタフェース１０４に接続された代理スイッチ２０との間においてデータ送受信処理を実現するものである。
イーサネットインタフェース１０５は、イーサネット規格の機器が接続されるインタフェースである。ベーススイッチ１０は、このイーサネットインタフェース１０５を介して通信回線５０２に接続され、この通信回線５０２，５０３やＬＡＮ／ＷＡＮ５０７を介して、管理端末３０やファームサーバ４０に接続されている。なお、図２に示す例においては、ベーススイッチ１０にはＬＡＮ／ＷＡＮ５０７を介して管理端末３０やファームサーバ４０が接続されている状態を示しているが、イーサネットインタフェース１０５と、これらの機器との接続は種々変形して実施することができる。
【００９２】
そして、ベーススイッチ１０は、これらの通信回線５０２，５０３やＬＡＮ／ＷＡＮ５０７を介して、管理端末３０からファームウェア管理テーブルＴ１，Ｔ２に登録される種々の情報を受信したり、ファームサーバ４０からファームウェアを受信することができる。又、ベーススイッチ１０で制御される機能は、管理端末３０から操作される。
不揮発性メモリ１０３は、種々のデータやプログラムを格納する記憶領域である。この不揮発性メモリ１０３には、仮想構成情報１０３ａやファームウェア管理テーブルセットＴＳが格納される。ここで、仮想構成情報１０３ａは、後述するメインプロセッサ１０１が仮想−物理構成管理プロセス１０１ａを実行するに際して用いるものである。又、ファームウェア管理テーブルセットＴＳは、メインプロセッサ１０１がファームウェア管理プロセス１０１ｂを実行するに際して用いるものである。
【００９３】
ベーススイッチ１０には、接続された各代理スイッチ２０からファームウェア管理テーブルセットＴＳが送信され、ベーススイッチ１０においては、これらの受信したファームウェア管理テーブルセットＴＳは、この不揮発性メモリ１０３に格納される。そして、ベーススイッチ１０においては、これらのファームウェア管理テーブルセットＴＳが、ファブリックＦ毎に保存されている。
【００９４】
すなわち、ベーススイッチ１０上には、全てのファブリックＦ上のスイッチ６０のファームウェア情報を管理した管理テーブルがそなえられている。
また、不揮発性メモリ１０３には、ベーススイッチ１０の各種機能を実現するためのファームウェア（プログラム）も格納される。
仮想−物理変換制御部１０７は、後述するファームウェア管理プロセス１０１ｂからの要求をデータ送受信制御部１０２（ＦＣインタフェース１０４）へ転送するものである。
なお、この仮想−物理変換制御部１０７としての機能は、既知の手法によって実現することができ、例えば、ＬＳＩ（Large Scale Integration）として構成される。
【００９５】
メインプロセッサ１０１は、不揮発性メモリ１０３に格納されたファームウェアを実行することにより、ベーススイッチ１０における各種制御や機能を実現するものである。例えば、メインプロセッサ１０１は、ファームウェアを実行することにより、仮想−物理構成管理プロセス１０１ａやファームウェア管理プロセス１０１ｂの他、各種常駐プロセス１０１ｃを実行する。
【００９６】
仮想−物理構成管理プロセス１０１ａは、仮想イニシエータＶＩ−１を定義・構築することにより、代理スイッチ２０との通信をこの仮想イニシエータＶＩ−１を用いて実現するものである。
そして、仮想−物理構成管理プロセス１０１ａは、各ファブリックＦ内の代理スイッチ２０に仮想イニシエータＶＩ−１を定義する。
【００９７】
仮想−物理構成管理プロセス１０１ａは、同ファブリックＦ内の任意のストレージ（本実施形態ではストレージ８０）内の任意のボリュームを確保し、代理スイッチ２０上にファームウェア格納用の仮想ボリュームＶＶＯＬとして割り当てる。又、仮想−物理構成管理プロセス１０１ａは、ベーススイッチ１０の仮想イニシエータＶＩ−１と通信可能な仮想ターゲットＶＴを定義する。仮想ターゲットＶＴと前述の仮想ボリュームＶＶＯＬとを結合することにより、ベーススイッチ１０から仮想ボリュームＶＶＯＬへのアクセスを可能とする。
【００９８】
ファームウェア管理プロセス１０１ｂは、本ストレージシステム１００の各ファブリックＦ内のスイッチ６０のファームウェアを管理するプロセスである。このファームウェア管理プロセス１０１ｂは、上述した仮想−物理構成管理プロセス１０１ａに対して仮想イニシエータＶＩ−１の構築指示も行なう（仮想イニシエータ構築指示）。
また、ファームウェア管理プロセス１０１ｂは、本ストレージシステム１００において稼動中のスイッチ６０のファームウェアの版数を取得する。
【００９９】
具体的には、ベーススイッチ１０の仮想イニシエータＶＩ−１に、代理スイッチ２０上の仮想ターゲットＶＴに対して、各ファブリックＦに接続されている全スイッチ６０のファームウェア版数を要求させる。
また、ファームウェア管理プロセス１０１ｂは、各代理スイッチ２０から取得したファームウェア管理テーブルＴ１の情報から全てのスイッチ６０の版数を確認し、同じ版数のファームウェアのデータを、ファームサーバ４０からダウンロードする。これらのダウンロードされたファームウェアのデータは、ベーススイッチ１０内の仮想イニシエータＶＩ−１を経由して、代理スイッチ２０内の仮想ボリュームＶＶＯＬへ転送される。
【０１００】
ファームウェア管理プロセス１０１ｂは、各スイッチ６０にインストールされているファームウェアの情報（版等）を、ファームウェア管理テーブルセットＴＳを用いて管理する。
このファームウェア管理プロセス１０１ｂにおいては、管理端末３０からファームウェア管理テーブルＴ１，Ｔ２に登録されている情報を更新するための入力が行なわれると、その入力された情報に従って、不揮発性メモリ１０３に格納されているファームウェア管理テーブルセットＴＳを更新する（管理テーブル更新）。
【０１０１】
ファームウェア管理プロセス１０１ｂは、管理端末３０からの入力によってファームウェア管理テーブルＴ１が更新された場合に、更新後のファームウェア管理テーブルＴ１において更新前のファームウェア管理テーブルＴ１には無い新たな版数が含まれていないかを確認する。更新されたファームウェア管理テーブルＴ１において、新たなファームウェアの版数を検出した場合には、ファームウェア管理プロセス１０１ｂは、ファームサーバ４０から、その新たな版のファームをダウンロードする（ファームデータ入手）。
【０１０２】
そして、ファームウェア管理プロセス１０１ｂは、更新されたファームウェア管理テーブルＴ１にかかるファブリックＦの代理サーバ２０に対して、ダウンロードしたファームウェアを転送し（ファームデータ転送）、そのストレージ８０に格納させる。
また、この際、ファームウェア管理プロセス１０１ｂは、その対応するファブリックＦの代理スイッチ２０に対して、更新されたファームウェア管理テーブルＴ１，Ｔ２の送信も行なう。そして、ファームウェア管理プロセス１０１ｂは、この代理スイッチ２０に、送信したファームウェア管理テーブルＴ１，Ｔ２で、不揮発性メモリ２０３に格納されているファームウェア管理テーブルＴ１，Ｔ２を更新させる（ファーム適用指示）。
【０１０３】
具体的には、ファームウェア管理プロセス１０１ｂは、ベーススイッチ１０の仮想イニシエータＶＩ−１から、各ファブリックＦの代理スイッチ２０内の仮想ターゲットＶＴに対して、新しいファームウェアの適用を指示する。
また、ファームウェア管理プロセス１０１ｂは、代理スイッチ２０から送信されるファームウェア管理テーブルセットＴＳを受信し（管理テーブル受信）、この受信したファームウェア管理テーブルセットＴＳにより、不揮発性メモリ１０３に格納されているファームウェア管理テーブルセットＴＳを更新する機能をそなえている。
【０１０４】
そして、ベーススイッチ１０のメインプロセッサ１０１が、ファームウェア（プログラム）を実行することにより、上述したファームウェア管理プロセス１０１ｂ，仮想−物理構成管理プロセス１０１ａおよび常駐プロセス１０１ｃとして機能する。
なお、これらのファームウェア管理プロセス１０１ｂ，仮想−物理構成管理プロセス１０１ａおよび常駐プロセス１０１ｃとしての機能を実現するためのプログラムも、例えばフレキシブルディスク，ＣＤ，ＤＶＤ，ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。
【０１０５】
ファームウェア管理プロセス１０１ｂ，仮想−物理構成管理プロセス１０１ａおよび常駐プロセス１０１ｃとしての機能を実現する際には、内部記憶装置（本実施形態では不揮発性メモリ１０３）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではメインプロセッサ１０１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【０１０６】
上述の如く構成された本管理システム１における各スイッチ６０のファームウェアの管理登録手法の一例を、図８に示すフローチャート（ステップＡ１０〜Ａ９０）に従って説明する。
オペレータは、本ストレージシステム１００において稼働中のスイッチ６０のファームウェアの版数を取得させるべく、管理端末３０から、ベーススイッチ１０に対して、管理対象の全スイッチ６０のファームウェア版数情報の取得を指示する。これにより、ベーススイッチ１０においては、ファームウェア管理プロセス１０１ｂが、仮想−物理構成管理プロセス１０１ａに対して、仮想イニシエータ構築指示を行なう。
【０１０７】
仮想−物理構成管理プロセス１０１ａは、この仮想イニシエータ構築指示に従い、ベーススイッチ１０上に仮想イニシエータＶＩ−１を定義する（ステップＡ１０）。
仮想−物理構成管理プロセス１０１ａは、各ファブリックＦ内の代理スイッチ２０に仮想イニシエータＶＩ−２を定義する（ステップＡ２０）。又、仮想−物理構成管理プロセス１０１ａは、同じファブリックＦ内のストレージ８０内の任意のボリュームを確保し、代理スイッチ２０上にファームウェア格納用の仮想ボリュームＶＶＯＬとして割り当てる（ステップＡ３０）。
【０１０８】
さらに、仮想−物理構成管理プロセス１０１ａは、ベーススイッチ１０の仮想イニシエータＶＩ−１と通信可能な仮想ターゲットＶＴを定義する（ステップＡ４０）。仮想ターゲットＶＴと前述の仮想ボリュームＶＶＯＬとを結合することにより、ベーススイッチ１０から仮想ボリュームＶＶＯＬへのアクセスが可能となる。
ベーススイッチ１０の仮想イニシエータＶＩ−１は、代理スイッチ２０上の仮想ターゲットＶＴに対して、各ファブリックＦにおいて接続されている全スイッチ６０のファームウェアの版数の通知を要求する（ステップＡ５０）。
【０１０９】
各代理スイッチ２０は、仮想ターゲットＶＴが受けたファームウェア版数の通知要求を代理スイッチ２０内のファームウェア管理プロセス２０１ｂへ渡し、その代理スイッチ２０に接続されている全てのスイッチ６０のファームウェア情報を取得する。ファームウェア管理プロセス２０１ｂは、ファームウェア版数を取得すると、ファームウェア管理テーブルセットＴＳに全スイッチ６０のファーム版数を書き込む（ステップＡ６０）。なお、この時点では、ファームウェア管理テーブルセットＴＳ内の全てのパラメータは埋まらない。ファームウェア管理プロセス２０１ｂは、このファームウェア管理テーブルセットＴＳを添付して、ベーススイッチ１０の仮想イニシエータＶＩ−１へ応答を返す。
【０１１０】
ベーススイッチ１０は、各代理スイッチ２０から取得したファームウェア管理テーブルセットＴＳの情報から、全てのスイッチ６０の版数を確認し（ステップＡ７０）、これらの全ての同じ版数のファームウェアのデータをファームサーバ４０からダウンロードする（ステップＡ８０）。
これらのファームウェアのデータは、ベーススイッチ１０内の仮想イニシエータＶＩ−１を経由して、代理スイッチ２０内の仮想ボリュームＶＶＯＬにそれぞれ転送される（ステップＡ９０）。これにより、各代理スイッチの仮想ボリュームＶＶＯＬ（ストレージ８０）には、同じファブリックＦ内のスイッチ６０にインストールされている全ての版のファームウェアのデータが格納される。
【０１１１】
次に、本管理システム１におけるファームウェア管理テーブルセットＴＳの更新手法の一例を、図９に示すフローチャート（ステップＢ１０〜Ｂ４０）に従って説明する。
オペレータは、オペレータ端末３０を用いて、各ファブリックＦのシステム構成や運用条件に合わせて、ファームウェア管理テーブルＴ１，Ｔ２の情報を更新する（ステップＢ１０）。
【０１１２】
具体的には、オペレータは、ファームウェア管理テーブルＴ１の代理や、ファーム種別，同版数Ｇ，冗長Ｇの値（パラメータ）を要件に応じて変更する。このオペレータによるファームウェア管理テーブルＴ１の変更は、先ず、ベーススイッチ１０の不揮発性メモリ１０３に格納されたファームウェア管理テーブルセットＴＳ（ファームウェア管理テーブルＴ１）に反映される。
【０１１３】
ベーススイッチ１０においてファームウェア管理テーブルＴＳが更新された後（ステップＢ２０）、ベーススイッチ１０から、更新されたファームウェア管理テーブルＴ１，Ｔ２が各ファブリックＦ毎にそなえられた代理スイッチ２０に送信される（ステップＢ３０）。その後、各代理スイッチ２０において、送信されたファームウェア管理テーブルセットＴＳにより、不揮発性メモリ２０３に格納されたファームウェア管理テーブルセットＴＳが更新される（ステップＢ４０）。
【０１１４】
次に、本管理システム１における、スイッチ６０のファームウェアの変更手法の一例を、図１０に示すフローチャート（ステップＣ１０〜Ｃ１７０）に従って説明する。
オペレータは、管理端末３０から入力することにより、ベーススイッチ１０上のファームウェア管理テーブルＴ１，Ｔ２の情報を更新する（ステップＣ１０）。すなわち、オペレータは、先ず、ファームウェア管理テーブルＴ２に、新たに適用したいファームウェアについての制約情報（Ｕ／Ｄパラメータ）を追加する。又、オペレータは、ファームウェア管理テーブルＴ１における、ファームウェアの変更を希望するスイッチ６０に対して、その“適用版数”パラメータに、適用したいファームウェア版数を指定・入力する。
【０１１５】
また、ベーススイッチ１０において、ファームウェア管理プロセス１０１ｂは、ファームウェア管理テーブルＴ１，Ｔ２を監視し、これらのファームウェア管理テーブルＴ１，Ｔ２において新たなファームウェア版数を検出した場合は（ステップＣ２０）、ファームサーバ４０から、その新たな版数のファームウェアのマスタデータをダウンロードする（ステップＣ３０）。又、ファームウェア管理プロセス１０１ｂは、ダウンロードしたファームウェアのデータを各ファブリックＦ内の仮想ボリュームＶＶＯＬに転送する（ステップＣ４０）。
【０１１６】
さらに、ベーススイッチ１０の仮想イニシエータＶＩ−１から、対象スイッチ６０が含まれる各ファブリックＦの代理スイッチ２０内の仮想ターゲットＶＴに対して、新しいファームウェアの適用の指示が送信される（ステップＣ５０）。又、このとき、ステップＣ１０において更新されたファームウェア管理テーブルＴ１，Ｔ２も送信される。
ファーム適用指示を受けた代理スイッチ２０は、送信されたファームウェア管理テーブルＴ１，Ｔ２を参照しインストールの条件を確認する（ステップＣ６０）。すなわち、ファームウェア管理プロセス２０１ｂは、ファームウェア管理テーブルＴ１から、対象スイッチ６０に現在インストールされているファームウェアの版数（現版数）を取得する。又、ファームウェア管理プロセス２０１ｂは、この取得した現版数に基づいてファームウェア管理テーブルＴ２を参照し、そのＵ／Ｄパラメータを取得する。
【０１１７】
そして、ファームウェア管理プロセス２０１ｂは、これらの現版数，Ｕ／Ｄパラメータおよび適用版数に基づき、対象スイッチ６０に対して、適用版数のファームウェアを対象スイッチ６０に対して適用可能であるか否かを判断する（ステップＣ７０；確認ステップ）。
ここで、対象スイッチ６０に対して適用版数のファームウェアを適用可能である場合には（ステップＣ７０のＹＥＳルート参照）、ファームウェア管理プロセス２０１ｂは、次に、仮想ボリュームＶＶＯＬの中に、該当するファームウェアデータが格納されているかどうかを確認する（ステップＣ８０）。
【０１１８】
仮想ボリュームＶＶＯＬ中に適用版数のファームウェアデータが格納されている場合には（ステップＣ８０のＹＥＳルート参照）、ファームウェア管理プロセス２０１ｂは、そのファームウェアデータを取得して、対象スイッチ６０に対してインストールを行なう。
また、この際、ファームウェア管理プロセス２０１ｂは、ファームウェア管理テーブルＴ１を参照して、スイッチ６０がペア構成であるか否かの確認も行なう（ステップＣ９０）。対象スイッチ６０がペア構成でない場合、すなわち、ファームウェア管理テーブルＴ１の冗長Ｇパラメータに、冗長化されている装置グループが登録されていない場合には（ステップＣ９０のＮＯルート参照）、対象スイッチ６０に対してのみ適用版数のファームウェアのインストールを行ない（ステップＣ１００；インストールステップ）、処理を終了する。
【０１１９】
一方、対象スイッチ６０がペア構成である場合には（ステップＣ９０のＹＥＳルート参照）、ペア構成をなす全てのスイッチ６０に対して、一台ずつ適用版数のファームウェアのインストールを行なう（ステップＣ１７０；インストールステップ）。又、ペア構成をなす複数のスイッチ６０に対してファームウェアのインストールを行なう際には、一台ずつファームウェアのインストールを行なうとともに、インストール後のスイッチ６０がオンライン状態に復帰したのを確認してから、次のスイッチ６０のファーム適用を開始する。これにより、システムを停止させることなく、全てのスイッチ６０へのインストールを完了させることが可能となる。ファームウェア管理プロセス２０１ｂは、ペア構成をなす全てのスイッチ６０へのファームウェアのインストールが完了すると、処理を終了する。
【０１２０】
また、仮想ボリュームＶＶＯＬ中に適用版数のファームウェアデータが格納されていない場合には（ステップＣ８０のＮＯルート参照）、ファームウェア管理プロセス２０１ｂは、ファームウェア管理プロセス２０１ｂは、ベーススイッチ１０の仮想イニシエータＩＶ−１に、その旨を通知（応答）する（ステップＣ１３０）。又、この際、ファームウェア管理プロセス２０１ｂは、希望するファームウェアの適用版数も併せて通知する。
【０１２１】
ベーススイッチ１０においては、この代理スイッチ６０の仮想イニシエータＶＩ−２からの応答に基づき、ファームウェア管理プロセス１０１ｂが、ファームサーバ４０から適用版数のファームウェアのデータをダウンロードする。又、ベーススイッチ１０は、このダウンロードした適用版数のファームウェアデータを、その代理スイッチ６０に送信する（ステップＣ１４０）。ベーススイッチ１０からファームウェアデータを受信した代理スイッチ２０は、受信したファームウェアデータを仮想ボリュームＶＶＯＬに格納して、ステップＣ９０に移行する。
【０１２２】
また、対象スイッチ６０に対して適用版数のファームウェアを適用可能できない（互換性がない）場合には（ステップＣ７０のＮＯルート参照）、ファームウェア管理プロセス２０１ｂは、ファームウェアを現版数から適用版数まで変更するために用いることができる中間ファームウェアが仮想ボリュームＶＶＯＬに格納されているか否かを確認する（ステップＣ１１０；選択ステップ）。
【０１２３】
仮想ボリュームＶＶＯＬにこの中間ファームウェアが格納されている場合には（ステップＣ１１０のＹＥＳルート参照）、ファームウェア管理プロセス２０１ｂは、その中間ファームウェアのデータを取得して、対象スイッチ６０に対してインストールを行なう（ステップＣ１２０；インストールステップ）。
また、仮想ボリュームＶＶＯＬにこの中間ファームウェアが格納されていない場合には（ステップＣ１１０のＮＯルート参照）、ファームウェア管理プロセス２０１ｂは、ファームウェア管理プロセス２０１ｂは、ベーススイッチ１０の仮想イニシエータＩＶ−１に、その旨を通知する（ステップＣ１５０）。又、この際、ファームウェア管理プロセス２０１ｂは、希望する中間ファームウェアを特定するための情報も併せて通知する。
【０１２４】
ベーススイッチ１０においては、この代理スイッチ６０の仮想イニシエータからの応答に基づき、ファームウェア管理プロセス１０１ｂが、ファームサーバ４０からその指定された中間ファームウェアのデータをダウンロードする。又、ベーススイッチ１０は、このダウンロードした中間ファームウェアデータを、その代理スイッチ６０に送信して（ステップＣ１６０）、ステップＣ１２０に移行する。すなわち、必要に応じて、中間ファームウェアを経由して複数段階のファームウェアインストールを自動で行なうのである。
【０１２５】
次に、本管理システム１におけるスイッチ６０の交換時における処理の一例を、図１１に示すフローチャート（ステップＤ１０〜Ｄ６０）に従って説明する。
例えば、スイッチ６０が故障して保守作業員による交換が行なわれた場合には、新たなスイッチ６０が代理スイッチ２０に接続された時点で、代理スイッチ２０が交換後のスイッチ６０のファーム版数を確認する（ステップＤ１０）。具体的には、代理スイッチ２０のファームウェア管理プロセス２０１ｂは、交換後のスイッチ６０のファームウェア版数が、交換前のスイッチ６０のファームウェア版数と同じであるか否かを確認する（ステップＤ２０）。
【０１２６】
この確認作業は、例えば、交換後のスイッチ６０から取得したファームウェア版数と、ファームウェア管理テーブルＴ１に登録されている、交換前のスイッチ６０についてのファームウェア版数との比較により行なう。
比較の結果、交換後のスイッチ６０のファームウェア版数が交換前のスイッチ６０のファームウェア版数と異なる場合には（ステップＤ２０のＮＯルート参照）、その交換後のスイッチ６０（対象スイッチ）に対して、稼動実績のある交換前のスイッチ６０のファームウェアの版数の適用を行なう。
【０１２７】
そこで、ファームウェア管理プロセス２０１ｂは、ファームウェア管理テーブルＴ２を参照して、交換後のスイッチ６０のファームウェア版数から交換前のスイッチ６０のファームウェア版数（適用版数）へ変更する場合のＵ／Ｄパラメータを取得する。すなわち、ファームウェア管理プロセス２０１ｂは、インストール条件の確認を行なう（ステップＤ３０）。
【０１２８】
そして、ファームウェア管理プロセス２０１ｂは、これらの現版数，Ｕ／Ｄパラメータおよび適用版数に基づき、適用版数のファームウェアを対象スイッチ６０に対して適用可能であるか否かを判断する（ステップＤ４０）。
ここで、対象スイッチ６０に対して適用版数のファームウェアを適用可能である場合には（ステップＤ４０のＹＥＳルート参照）、ファームウェア管理プロセス２０１ｂは、仮想ボリュームＶＶＯＬに格納されているファームウェアデータを用いて、対象スイッチ６０に適用版数のファームウェアをインストールして（ステップＤ５０）、処理を終了する。
【０１２９】
また、対象スイッチ６０に対して適用版数のファームウェアを適用可能できない場合には（ステップＤ４０のＮＯルート参照）、ファームウェア管理プロセス２０１ｂは、対象スイッチ６０に対して中間ファームウェアのインストールを行なってから（ステップＤ６０）、ステップＤ５０に移行する。
なお、この中間ファームウェアのインストールを行なうに際しては、前述した図１０のステップＣ１１０，Ｃ１２０，Ｃ１５０，Ｃ１６０と同様の処理を行なうことが望ましい。
【０１３０】
このように、実施形態の一例としてのストレージシステム１００によれば、オペレータが、管理端末３０からファームウェアの適用指示を入力し、ファームウェア管理テーブルＴ１を更新することにより、対応するファブリックＦの代理スイッチ２０が対象スイッチ６０のファームの変更を行なう。これにより、スイッチ６０のファームウェアに関するメンテナンスが容易となり利便性が高く、又、管理・運用のコストを低減することができる。又、システム可用性を向上させることができる。
【０１３１】
また、この際、ファームウェア管理プロセス２０１ｂが、対象スイッチ６０に対して適用版数のファームウェアを適用可能であるか否かを判断し、対象スイッチ６０に対して適用版数のファームウェアを適用可能できない場合には、対象スイッチ６０に対して中間ファームウェアのインストールを行なう。これにより、対象スイッチ６０に適用版数のファームウェアを適用することが可能となる。又、ファームウェア管理プロセス２０１ｂが、適用する中間ファームウェアの選択およびインストールを行なうので、オペレータの作業を軽減でき利便性が高い。
【０１３２】
さらに、ベーススイッチ１０において、各ファブリックＦについてのファームウェア管理テーブルＴ１，Ｔ２を一元的に管理することにより、管理端末３０からファームウェア管理テーブルＴ１，Ｔ２を容易に変更・修正することができる。
また、ベーススイッチ１０において管理されるファームウェア管理テーブルＴ１，Ｔ２において変更が行なわれると、ベーススイッチ１０がかかる変更されたファームウェア管理テーブルＴ１，Ｔ２を、対応するファブリックＦの代理スイッチ２０に送信する。又、代理スイッチ２０において、ファームウェア管理テーブルＴ１の変更が生じた際には、代理スイッチ２０が、変更されたファームウェア管理テーブルＴ１をベーススイッチ１０に送信する。これらにより、ベーススイッチ１０と代理スイッチ２０とにおいてファームウェア管理テーブルＴ１，Ｔ２を常に最新の状態に維持することができ、システムの信頼性を向上させることができる。
【０１３３】
さらに、故障等によりスイッチ６０が交換された場合に、交換後のスイッチ６０に交換前とは異なる版数のファームウェアがインストールされていた場合でも、自動的に交換前の版数のファームウェアがインストールされる。これにより、スイッチ６０に稼動実績のあるファームウェアがインストールされることになるので、システムの信頼性を向上させることができる。
【０１３４】
また、この際、交換後のスイッチ６０のファームウェアを交換前と同じ版数に戻すために、交換前の版のファームウェアを直接適用することができない場合には、自動的に必要な中間ファームウェアのインストールが行われるので、利便性が高い。
さらに、ファブリックＦ内のスイッチ６０で使用されているファームウェア（中間ファームウェアを含む）が、その代理スイッチ２０の仮想ボリュームＶＶＯＬに格納されている。これにより、同じファームウェアのインストールを行なう際に、そのファームウェアをファームサーバ４０から取得する必要がなく、迅速にインストールを行なうことができる他、ネットワークのトラフィックを軽減することができる。
【０１３５】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、ベーススイッチ１０と代理スイッチ２０が同じ構成をそなえてもよい。すなわち、ベーススイッチ１０もしくは代理スイッチ２０のハードウェアに（不揮発性メモリ１０３，２０３）に、ベーススイッチ１０として機能させるファームウェアと、代理スイッチ２０として機能させるファームウェアとの両方を格納しておく。そして、物理的もしくはソフトウェア的に設けられたスイッチを用いて、これらのいずれかのファームウェアを選択的に実行することにより、当該スイッチをベーススイッチ１０もしくは代理スイッチのいずれかとして機能させる。このように、ベーススイッチ１０および代理スイッチ構成することにより、システムの運用をフレキシブルに行なうことができ利便性が高い。
【０１３６】
同様に、各スイッチ６０に対して、スイッチ６０として機能させるためのファームウェアの他、ベーススイッチ１０として機能させるファームウェアや代理スイッチ２０として機能させるファームウェアを格納してもよい。すなわち、物理的もしくはソフトウェア的に設けられたスイッチを用いて、これらのいずれかのファームウェアを選択的に実行することにより、スイッチ６０，ベーススイッチ１０および代理スイッチのいずれかとして機能させる。このように、スイッチ６０，ベーススイッチ１０および代理スイッチを共通のハードウェアとして構成することにより、システムの運用をよりフレキシブルに行なうことができ利便性が高い。
【０１３７】
また、上述した実施形態においては、Ｕ／Ｄパラメータとして、スラッシュの左右にバージョンアップ時およびバージョンダウン時の制約段数を配置することにより表しているが、これに限定されるものではない。例えば、バージョンアップ時の制約段数とバージョンダウン時の制約段数をそれぞれ独立した項目として各ファームウェアの版数に関連付けて管理してもよく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【０１３８】
さらに、上述した実施形態においては、本管理システム１により、各スイッチ６０のファームウェアを管理しているが、これに限定されるものではない。例えば、代理スイッチ６０のファームウェアの管理行なってもよい。又、スイッチ以外の装置のファームウェアの管理を行なってもよく、又、ファームウェア以外のプログラムの管理を行なってもよい。
【０１３９】
また、上述した実施形態においては、  代理スイッチ２０と各スイッチ６０とをイーサネットの規格に基づく通信回線５０６により接続しており、代理スイッチ２０がストレージ７２のボリュームを用いて仮想ボリュームを構成することは想定していない。しかしながら、これに限定されるものではなく、この通信回線５０６をＦＣに規格に基づく回線により接続してもよい。そして、代理スイッチ２０からストレージ７２にアクセスして、このストレージ７２のボリュームを用いて仮想ボリュームを構成してもよい。これにより、代理スイッチ２０とスイッチ６０とが同一ファブリックになるので、代理スイッチ２０が、ストレージ７２のボリュームにアクセスすることが可能となり、このストレージ７２をファームウェアの格納に用いることもできる。
【０１４０】
なお、上述した実施形態においては、スイッチ６０が仮想機能を有していないが、これに限定されるものではなく、例えば、スイッチ６０に代えて、このスイッチ６０と同様の機能を有する代理スイッチ２０を用いることにより、このスイッチ６０の代替としての代理スイッチ２０により仮想機能を実現することができる。
上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【０１４１】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
データ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理システムであって、
該プログラムの複数の版のそれぞれを格納するプログラム格納部と、
該データ中継装置にそれぞれインストールされているプログラムの版情報を格納する版情報格納部と、
該プログラムの複数の版のそれぞれに関して、他の版へ変更する際の制約情報を格納する制約情報格納部と、
該データ中継装置に適用されるべきプログラムの版情報を指示情報として入力可能な指示情報入力部と、
該指示情報入力部から入力された該指示情報により指示された版の該プログラムについて、該版情報格納部に管理された該版情報と、該制約情報格納部に格納された該制約情報とを参照して、当該プログラムを該データ中継装置に適用可能であるかを確認する確認部と、
該確認部により該プログラムが適用可能であると判断された場合に、該指示された版のプログラムを該データ中継装置にインストールするインストール処理部とをそなえることを特徴とする、管理システム。
【０１４２】
（付記２）
該確認部により該プログラムが適用できないと判断された場合に、該制約情報に基づき、当該データ中継装置に対して適用可能な版のプログラムを選択する選択部をそなえ、
該インストール処理部が、該選択部によって選択されたプログラムのインストールを行なった後に、該指示された版のプログラムのインストールを行なうことを特徴とする、付記１記載の管理システム。
【０１４３】
（付記３）
該プログラムの該複数の版の順序を示す順序情報を、各版のプログラムのそれぞれに設定し、
該制約情報が、該プログラムの各版に対して、当該版から該順序に沿って一度に変更可能な版の段数を示す段数情報をそれぞれ対応付けて構成されたことを特徴とする、付記１又は付記２記載の管理システム。
【０１４４】
（付記４）
複数の該データ中継装置が含まれる１以上の所定の管理領域毎にそなえられ、当該管理領域内の複数の該データ中継装置と通信可能に接続される第１の管理装置と、
該指示情報入力部および該該１以上の第１の管理装置と通信可能に接続される第２の管理装置とをそなえ、
該第１の管理装置が、該版情報格納部，該制約情報格納部，該確認部および該インストール処理部をそなえ、
該第２の管理装置が、該指示情報入力部から入力された該指示情報を該第２の管理装置に通知することを特徴とする、付記１〜付記３のいずれか１項に記載の管理システム。
【０１４５】
（付記５）
複数のデータ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理装置であって、
該複数のデータ中継装置にそれぞれインストールされているプログラムの版情報を格納する版情報格納部と、
該プログラムの複数の版のそれぞれに関して、他の版へ変更する際の制約情報を格納する制約情報格納部と、
適用が指示された版の該プログラムについて、該版情報格納部に管理された該版情報と、該制約情報格納部に格納された該制約情報とを参照して、当該プログラムを該データ中継装置に適用可能であるかを確認する確認部と、
該確認部により該プログラムが適用可能であると判断された場合に、該指示された版のプログラムを該データ中継装置にインストールするインストール処理部とをそなえることを特徴とする、管理装置。
【０１４６】
（付記６）
該確認部により該プログラムが適用できないと判断された場合に、該制約情報に基づき、当該データ中継装置に対して適用可能な版のプログラムを選択する選択部をそなえ、
該インストール処理部が、該選択部によって選択されたプログラムのインストールを行なった後に、該指示された版のプログラムのインストールを行なうことを特徴とする、付記５記載の管理装置。
【０１４７】
（付記７）
該プログラムの該複数の版の順序を示す順序情報を、各版のプログラムのそれぞれに設定し、
該制約情報が、該プログラムの各版に対して、当該版から該順序に沿って一度に変更可能な版の段数を示す段数情報をそれぞれ対応付けて構成されたことを特徴とする、付記５又は付記６記載の管理装置。
【０１４８】
（付記８）
複数のデータ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理方法であって、
該データ中継装置に適用されるべきプログラムの版情報を指示情報として入力可能な指示情報入力ステップと、
該指示情報入力ステップにおいて入力された該指示情報により指示される版の該プログラムについて、該複数のデータ中継装置にそれぞれインストールされているプログラムの版情報と、該プログラムの複数の版のそれぞれに関して、他の版へ変更する際の制約情報とに基づいて、当該プログラムを該データ中継装置に適用可能であるかを確認する確認ステップと、
該確認ステップにおいて該プログラムが適用可能であると判断された場合に、該指示された版のプログラムを該データ中継装置にインストールするインストールステップとをそなえることを特徴とする、管理方法。
【０１４９】
（付記９）
該確認ステップにおいてにより該プログラムが適用できないと判断された場合に、該制約情報に基づき、当該データ中継装置に対して適用可能な版のプログラムを選択する選択ステップをそなえ、
該インストール処理ステップにおいて、該選択ステップにおいて選択されたプログラムのインストールを行なった後に、該指示された版のプログラムのインストールを行なうことを特徴とする、付記８記載の管理方法。
【０１５０】
（付記１０）
該プログラムの該複数の版の順序を示す順序情報を、各版のプログラムのそれぞれに設定し、
該制約情報が、該プログラムの各版に対して、当該版から該順序に沿って一度に変更可能な版の段数を示す段数情報をそれぞれ対応付けて構成されたことを特徴とする、付記８又は付記９記載の管理方法。
【０１５１】
（付記１１）
複数のデータ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理機能をコンピュータに実行させるための管理プログラムであって、
適用が指示された版の該プログラムについて、該版情報格納部に管理された該版情報と、該制約情報格納部に格納された該制約情報とを参照して、該複数の版のプログラムの中から該データ中継装置にインストールするプログラムを選択する選択ステップと、
該選択ステップにおいて選択された該プログラムを該データ中継装置にインストールするインストールステップとを該コンピュータに実行させることを特徴とする、管理プログラム。
【０１５２】
（付記１２）
該管理プログラムが、
該確認ステップにおいてにより該プログラムが適用できないと判断された場合に、該制約情報に基づき、当該データ中継装置に対して適用可能な版のプログラムを選択する選択ステップを該コンピュータに実行させるとともに、
該インストール処理ステップにおいて、該選択ステップにおいて選択されたプログラムのインストールを行なった後に、該指示された版のプログラムのインストールを行なうことを特徴とする、付記１１記載の管理プログラム。
【０１５３】
（付記１３）
該プログラムの該複数の版の順序を示す順序情報を、各版のプログラムのそれぞれに設定し、
該制約情報が、該プログラムの各版に対して、当該版から該順序に沿って一度に変更可能な版の段数を示す段数情報をそれぞれ対応付けて構成されたことを特徴とする、付記１１又は付記１２記載の管理プログラム。
【０１５４】
（付記１４）
複数のデータ中継装置が接続されたデータ伝送システムにおいて、該データ中継装置のプログラムを管理する管理機能をコンピュータに実行させるための管理プログラムを記録したコンピュータ読取可能な記録媒体であって、
該管理プログラムが、
適用が指示された版の該プログラムについて、該版情報格納部に管理された該版情報と、該制約情報格納部に格納された該制約情報とを参照して、該複数の版のプログラムの中から該データ中継装置にインストールするプログラムを選択する選択ステップと、
該選択ステップにおいて選択された該プログラムを該データ中継装置にインストールするインストールステップとを該コンピュータに実行させることを特徴とする、管理プログラムを記録したコンピュータ読取可能な記録媒体。
【０１５５】
（付記１５）
該管理プログラムが、
該確認ステップにおいてにより該プログラムが適用できないと判断された場合に、該制約情報に基づき、当該データ中継装置に対して適用可能な版のプログラムを選択する選択ステップを該コンピュータに実行させるとともに、
該インストール処理ステップにおいて、該選択ステップにおいて選択されたプログラムのインストールを行なった後に、該指示された版のプログラムのインストールを行なうことを特徴とする、付記１４記載の管理プログラムを記録したコンピュータ読取可能な記録媒体。
【０１５６】
（付記１６）
該プログラムの該複数の版の順序を示す順序情報を、各版のプログラムのそれぞれに設定し、
該制約情報が、該プログラムの各版に対して、当該版から該順序に沿って一度に変更可能な版の段数を示す段数情報をそれぞれ対応付けて構成されたことを特徴とする、付記１４又は付記１５記載の管理プログラムを記録したコンピュータ読取可能な記録媒体。
【符号の説明】
【０１５７】
１    管理システム
１０    ベーススイッチ（第２の管理装置）
２０    代理スイッチ（第１の管理装置）
３０    管理端末（指示情報入力部）
４０    ファームサーバ（プログラム格納部）
７１    サーバ
７２    ストレージ
８０    ストレージ（プログラム格納部）
１００    ストレージシステム
６１，１０１，２０１  メインプロセッサ
１０１ａ    仮想−物理構成管理プロセス
１０１ｂ    ファームウェア管理プロセス
１０１ｃ    常駐プロセス
１０３ａ，２０３ａ    仮想構成情報
６２，１０２，２０２    データ送受信制御部
６３，１０３，２０３    不揮発性メモリ（制約情報格納部）
６４，１０４，２０４    ＦＣインタフェース
６５，１０５，２０５    イーサネットインタフェース
１０７，２０７    仮想−物理変換制御部
２０６    揮発性メモリ
２１０    確認部
２１１    選択部
２１２    インストール処理部
５０１，５０２，５０３，５０４，５０６    通信回線
５０７，５０８    ＬＡＮ／ＷＡＮ
１４１，２４１，６４１  ポート
ＴＳ    ファームウェア管理テーブルセット
Ｔ１，Ｔ２    ファームウェア管理テーブル
ＶＩ−１，ＶＩ−２    仮想イニシエータ  
ＶＴ    仮想ターゲット
ＶＶＯＬ    仮想ボリューム
【図１】
0005428721.tif 000002
【図２】
0005428721.tif 000003
【図３】
0005428721.tif 000004
【図４】
0005428721.tif 000005
【図５】
0005428721.tif 000006
【図６】
0005428721.tif 000007
【図７】
0005428721.tif 000008
【図８】
0005428721.tif 000009
【図９】
0005428721.tif 000010
【図１０】
0005428721.tif 000011
【図１１】
0005428721.tif 000012