(57)【要約】【課題】情報処理装置の可用性の低下を抑制する。【解決手段】複数の記憶装置５と、前記複数の記憶装置５を制御する制御モジュール４と、前記複数の記憶装置５に対して前記制御モジュール４を介してアクセスするプロセッサ２ａと、情報処理装置１の管理を行なうコントローラ３と、をそなえ、前記コントローラ３は、前記制御モジュール４に適用されている現用ファームウェア４１の版数と、前記複数の記憶装置５に予め格納された既定ファームウェア５２１の既定版数とを比較し、比較の結果、不一致の場合、前記プロセッサ２ａに対して、前記制御モジュール４に適用されている前記現用ファームウェア４１を前記既定版数に更新する指示を行なう。【選択図】図１０
2018124618.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置と、
前記複数の記憶装置を制御する制御モジュールと、
前記複数の記憶装置に対して前記制御モジュールを介してアクセスするプロセッサと、
情報処理装置の管理を行なうコントローラと、をそなえ、
前記コントローラは、
前記制御モジュールに適用されている現用ファームウェアの版数と、前記複数の記憶装置に予め格納された既定ファームウェアの既定版数とを比較し、
比較の結果、前記現用ファームウェアの版数と前記既定版数とが不一致の場合、前記プロセッサに対して、前記制御モジュールに適用されている前記現用ファームウェアを前記既定版数に更新する指示を行なう、
ことを特徴とする、情報処理装置。
【請求項２】
前記コントローラは、前記複数の記憶装置に前記既定ファームウェアが格納されているか否かを判定し、格納されていない場合、前記制御モジュールに適用されている前記現用ファームウェアを、前記複数の記憶装置に格納する、
ことを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記コントローラは、前記制御モジュールへの新たな記憶装置の接続が検出された場合、前記複数の記憶装置に格納された前記既定のファームウェアを、前記新たな記憶装置に格納する、
ことを特徴とする、請求項１又は請求項２記載の情報処理装置。
【請求項４】
前記コントローラは、
前記制御モジュールに適用する更新ファームウェアを取得し、
前記更新ファームウェアの版数と前記既定ファームウェアの前記既定版数とを比較し、
比較の結果、前記更新ファームウェアの版数と前記既定版数とが不一致の場合、前記更新ファームウェアを用いて、前記複数の記憶装置に格納された前記既定ファームウェアを更新する、
ことを特徴とする、請求項１〜３のいずれか１項記載の情報処理装置。
【請求項５】
前記既定版数は、前記制御モジュールによるストレージグループの構成管理用の情報を記憶する管理領域に格納される、
ことを特徴とする、請求項１〜４のいずれか１項記載の情報処理装置。
【請求項６】
前記管理領域はＤＤＦ（Disk Data Format）で定義された領域であり、
前記既定版数は、前記管理領域における未使用領域に格納される、
ことを特徴とする、請求項５記載の情報処理装置。
【請求項７】
前記現用ファームウェアの版数と前記既定版数との比較、並びに、前記比較の結果に応じた、前記プロセッサに対する前記現用ファームウェアの更新の指示は、前記情報処理装置の起動段階において実行される、
ことを特徴とする、請求項１〜６のいずれか１項記載の情報処理装置。
【請求項８】
情報処理装置の管理を行なうコントローラに、
複数の記憶装置を制御する制御モジュールに適用されている現用ファームウェアの版数と、前記複数の記憶装置に予め格納された既定ファームウェアの既定版数とを比較し、
比較の結果、前記現用ファームウェアの版数と前記既定版数とが不一致の場合、前記複数の記憶装置に対して前記制御モジュールを介してアクセスするプロセッサに対して、前記制御モジュールに適用されている前記現用ファームウェアを前記既定版数に更新する指示を行なう、
処理を実行させることを特徴とする、制御プログラム。
【請求項９】
情報処理装置の管理を行なうコントローラが、
複数の記憶装置を制御する制御モジュールに適用されている現用ファームウェアの版数と、前記複数の記憶装置に予め格納された既定ファームウェアの既定版数とを比較し、
比較の結果、前記現用ファームウェアの版数と前記既定版数とが不一致の場合、前記複数の記憶装置に対して前記制御モジュールを介してアクセスするプロセッサに対して、前記制御モジュールに適用されている前記現用ファームウェアを前記既定版数に更新する指示を行なう、
ことを特徴とする、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御プログラム、及び制御方法に関する。
【背景技術】
【０００２】
情報処理装置、例えばサーバには、システムの動作に用いる機器として、データの記録媒体を制御するコントローラを搭載されることがある。サーバに搭載されたコントローラにおいては、コントローラの機能を実現するためのプログラム、例えばファームウェア（ＦＷ；Firmware）が動作している。
【０００３】
なお、コントローラとしては、例えば、記録媒体の一例としてのディスクドライブを制御するＲＡＩＤ（Redundant Arrays of Inexpensive Disks）カード等が挙げられる。ディスクドライブとしては、例えば、ＨＤＤ（Hard Disk Drive）等の磁気ディスク装置やＳＳＤ（Solid State Drive）等の半導体ドライブ装置等の種々の記憶装置が挙げられる。以下、ディスクドライブを「記憶装置」又は「ディスク」と表記する場合がある。
【０００４】
ＲＡＩＤカードのメーカは、機能追加、バグ修正若しくは改善、或いは、これらに伴うシステムの安定稼働や記憶装置のデータ保護の向上等を目的として、更新版のＦＷをユーザに公開及び提供している。ユーザは、例えば、メーカにより提供されるＦＷを用いて、ＲＡＩＤカードのＦＷを書き換えることができる。
【０００５】
一方で、運用中のシステムでは、サーバの継続的な稼動を第一の目的としている場合があり、例えば、新しいバージョンのＦＷが開発され公開されている場合であっても、計画外のＦＷの更新は避けられることがある。
【０００６】
また、システムにおいてハードウェア（ＨＷ；Hardware）が故障し新たなＨＷに交換される場合、交換後のＨＷのＦＷとしては、故障前のＨＷで使用されていたＦＷと異なる場合がある。この場合においても、例えば、保守作業員は、交換後のＲＡＩＤカードに設定されているＦＷを、故障前のＲＡＩＤカードのＦＷの版数と同じ版数に変更する（例えば、バージョンダウン又はバージョンアップさせる）作業を行なう。これにより、安定した動作がある程度保証されている、故障前のＨＷのＦＷを用いることができるため、交換後のＲＡＩＤカードのＦＷの不具合等の発生を軽減できる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−２８２４６４号公報
【特許文献２】特開平８−３２８７５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＦＷ版数の変更作業は、例えば、保守作業員により、ＲＡＩＤカードのベンダ専用の保守ツールを使用して行なわれる。このため、保守作業員は、ベンダが作成したツールの学習及び理解や、保守ツールを動作させるためのコンピュータの用意を行なうことになり、変更作業のための時間やコストがかかることがある。
【０００９】
データセンタ等のサーバが大量に動作している環境では、ＲＡＩＤカードの交換作業やＦＷの書き換え作業の発生する頻度が高く、且つ、交換作業や書き換え作業が日常的に行なわれ得る。これらの作業の間、サーバの稼働は停止するため、システム、例えば情報処理装置の可用性が低下することになる。
【００１０】
１つの側面では、本発明は、情報処理装置の可用性の低下を抑制することを目的の１つとする。
【００１１】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１２】
１つの側面では、情報処理装置は、複数の記憶装置と、前記複数の記憶装置を制御する制御モジュールと、前記複数の記憶装置に対して前記制御モジュールを介してアクセスするプロセッサと、情報処理装置の管理を行なうコントローラと、をそなえてよい。前記コントローラは、前記制御モジュールに適用されている現用ファームウェアの版数と、前記複数の記憶装置に予め格納された既定ファームウェアの既定版数とを比較してよい。また、前記コントローラは、比較の結果、前記現用ファームウェアの版数と前記既定版数とが不一致の場合、前記プロセッサに対して、前記制御モジュールに適用されている前記現用ファームウェアを前記既定版数に更新する指示を行なってよい。
【発明の効果】
【００１３】
１つの側面では、情報処理装置の可用性の低下を抑制することができる。
【図面の簡単な説明】
【００１４】
【図１】比較例に係るＦＷ更新処理の動作例を説明する図である。
【図２】比較例に係るＦＷ更新処理の動作シーケンスの一例を示す図である。
【図３】比較例に係るＦＷ更新処理の動作例を説明する図である。
【図４】一実施形態に係るサーバの構成例を示すブロック図である。
【図５】ＣｏＤ（Configuration on Disk）領域のデータ構造例を示す図である。
【図６】一実施形態に係るＦＷ更新処理の動作例を説明する図である。
【図７】一実施形態に係るＦＷ更新処理の動作例を説明する図である。
【図８】サーバのハードウェア構成例を示すブロック図である。
【図９】ＢＭＣ（Baseboard Management Controller）のハードウェア構成例を示すブロック図である。
【図１０】サーバの機能構成例を示すブロック図である。
【図１１】一実施形態に係るＦＷ更新処理の動作例を説明する図である。
【図１２】一実施形態に係るＦＷ更新処理の動作シーケンスの一例を示す図である。
【図１３】ＢＭＣによるＦＷ更新処理の動作例を示すフローチャートである。
【図１４】ＢＭＣによるＣｏＤ領域の更新処理の動作例を示すフローチャートである。
【図１５】ＢＭＣによる新規ディスク検出後の処理の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１６】
〔１〕一実施形態
はじめに、図１〜図３を参照して、比較例について説明する。
【００１７】
図１に例示するように、複数の記憶装置１１０を制御するＲＡＩＤカード１２０ＡにＦＷ版数ＡのＦＷ１３０Ａが適用されている状態で、ＲＡＩＤカード１２０Ａの故障が発生した場合、保守作業員は、以下のような作業を行なう。なお、保守ツール１４０は、例えばサーバ１５０にインストールされており、保守作業員は、保守端末からサーバ１５０にアクセスして保守ツール１４０を起動し実行できる。
【００１８】
（ｉ）ＲＡＩＤカード交換処理（図２参照）
保守作業員は、図２に例示するように、サーバ１５０の電源をＯＦＦにし（処理Ｔ１０１）、ＲＡＩＤカード１２０ＡをＲＡＩＤカード１２０Ｂに交換して（処理Ｔ１０２）、サーバ１５０の電源をＯＮにする（処理Ｔ１０３）。なお、ＲＡＩＤカード１２０Ｂには、ＦＷ版数ＢのＦＷ１３０Ｂが適用されている。
【００１９】
（ii）ＲＡＩＤカードＦＷ更新処理（図２参照）
サーバ１５０の電源投入後、サーバ１５０ではシステムが起動し（処理Ｔ１０４）、ＲＡＩＤカード１２０ＢではＦＷ１３０Ｂが起動する（処理Ｔ１０５）。保守作業員は、保守端末をサーバ１５０に接続し（処理Ｔ１０６）、サーバ１５０では保守ツール１４０が起動する（処理Ｔ１０７）。
【００２０】
保守作業員の操作により、保守ツール１４０は、ＲＡＩＤカード１２０Ｂに対してＦＷ１３０Ｂの版数の確認要求を行ない（処理Ｔ１０８）、ＲＡＩＤカード１２０Ｂは、ＦＷ版数Ｂを応答する（処理Ｔ１０９）。また、保守作業員は、ユーザのＦＷ、つまり、ＲＡＩＤカード１２０ＡのＦＷ１３０Ａの版数Ａを確認し（処理Ｔ１１０）、処理Ｔ１０９で得られた版数Ｂと異なるため、ＦＷ更新操作を行なう（処理Ｔ１１１）。
【００２１】
保守ツール１４０は、保守端末から取得した版数Ａの新たなＦＷ１３０ＡをＲＡＩＤカード１２０Ｂに送信し、ＦＷ１３０Ａの適用処理を行なう（処理Ｔ１１２）。ＲＡＩＤカード１２０Ｂでは、ＦＷ１３０Ａが適用され（処理Ｔ１１３）、完了応答を行なう（処理Ｔ１１４）。
【００２２】
保守ツール１４０は、完了表示を行ない（処理Ｔ１１５）、保守作業員は完了確認を行ない（処理Ｔ１１６）、ＲＡＩＤカード１２０ＢにＦＷ１３０Ａを反映させるためにシステムの再起動操作を行なう（処理Ｔ１１７）。サーバ１５０は、システムの再起動を行ない（処理Ｔ１１８）、処理が終了する。
【００２３】
近年のデータセンタのビジネス拡大等に伴い、ユーザや保守作業員は、多数台、例えば１０００台以上のサーバを運用及び管理する場合がある。例えば、図３に示すように、サーバ群１５０Ａ〜１５０Ｃに含まれる複数のサーバにおいて、ＦＷ版数ＡのＲＡＩＤカードが故障した場合、保守作業員は、故障の都度、ＲＡＩＤカードの交換を行なう。そして、保守作業員は、交換後のＲＡＩＤカードのＦＷ（例えばＦＷ版数ＢのＦＷ）を、保守端末１６０を用いてＦＷ版数ＡのＦＷ１７０に書き換える作業を行なう。
【００２４】
上述のように、これらの作業の間はサーバの稼働（業務）が停止するため、サーバの可用性が低下することになる。また、保守作業員及び保守ツールによる作業のために、データセンタでは運用コストが増加する。さらに、保守作業員による作業は目視によるものとなるため、作業ミスやＦＷの適用漏れ等が発生する可能性もある。
【００２５】
上記の不都合を解消する一つの手法として、記憶装置上にＦＷのコピーを記憶させ、ＲＡＩＤカードが自身に適用されているＦＷと記憶装置上のＦＷのコピーとの不一致を検出した場合に、記憶装置上のＦＷを使用することが考えられる。
【００２６】
しかし、上記の手法では、ＲＡＩＤカードに当該手法を実現する機能を持たせることになる。サーバには、サーバの機能要件や価格帯に合わせて、複数のベンダ及び複数のシリーズから、選択的にＲＡＩＤカード製品を搭載可能とすることが一般的である。従って、機能や価格のレベルが異なるＲＡＩＤカード製品に対して、上記の手法を実現する機能を用意することは困難である。
【００２７】
そこで、一実施形態では、ＲＡＩＤカード等の制御モジュールに対しては変更を加えずに、上述した不都合を解消する情報処理装置について説明する。
【００２８】
〔１−１〕サーバの構成例
図４に示すように、一実施形態に係るサーバ１は、例示的に、システムボード２、及び、複数の記憶装置５をそなえてよい。なお、サーバ１は情報処理装置の一例である。
【００２９】
システムボード２は、種々の装置が搭載又は接続される回路基板の一例である。なお、「システムボード」は、「マザーボード」或いは「メインボード」等と称されてもよい。システムボード２には、例示的に、プロセッサ２ａ、メモリ２ｂ、ＢＭＣ（Baseboard Management Controller）３、及び、ＲＡＩＤカード４が搭載又は接続されてよい。
【００３０】
プロセッサ２ａは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ２ａは、例えば、メモリバス１１によりメモリ２ｂと、Ｉ２Ｃ（Inter-Integrated Circuit）バス１２によりＢＭＣ３と、ＰＣＩｅバス１３によりＲＡＩＤカード４と、それぞれ相互に通信可能に接続されてよい。ＰＣＩｅはPeripheral Component Interconnect Expressの略称である。なお、バス１１〜１３のうちの少なくとも１つはケーブルでもよい。
【００３１】
プロセッサ２ａは、ＲＡＩＤカード４を介して複数の記憶装置５に対してアクセスするプロセッサの一例である。プロセッサとしては、例えば、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ（例えばＦＰＧＡ）等の集積回路（ＩＣ）が用いられてよい。なお、ＣＰＵはCentral Processing Unitの略称であり、ＭＰＵはMicro Processing Unitの略称であり、ＤＳＰはDigital Signal Processorの略称である。また、ＡＳＩＣはApplication Specific Integrated Circuitの略称であり、ＰＬＤはProgrammable Logic Deviceの略称であり、ＦＰＧＡはField Programmable Gate Arrayの略称である。
【００３２】
メモリ２ｂは、種々のデータやプログラムを格納するハードウェアの一例である。メモリ２ｂとしては、例えばＲＡＭ（Random Access Memory）等の揮発性メモリが挙げられる。
【００３３】
ＢＭＣ３は、サーバ１上のハードウェアを監視及び管理するコントローラ又は管理モジュールの一例である。ＢＭＣ３は、ユーザに対してサーバ１の管理等に関するＵＩ（User Interface）を提供してよい。また、ＢＭＣ３はプロセッサ２ａとは独立した電源で動作してよい。
【００３４】
ＲＡＩＤカード４は、複数の記憶装置５を制御する制御モジュールの一例である。ＲＡＩＤカード４は、複数の記憶装置５の各々とケーブル１４により相互に通信可能に接続されてよい。ケーブル１４としては、ＳＡＳやＳＡＴＡ等に準拠したケーブルが挙げられる。なお、ＳＡＳはSerial Attached SCSI (Small Computer System Interface)の略称であり、ＳＡＴＡはSerial Advanced Technology Attachmentの略称である。
【００３５】
ＲＡＩＤカード４は、複数の記憶装置５の制御により、ディスク故障からデータを保護するＲＡＩＤ機能を提供してよい。例えば、ＲＡＩＤカード４は、複数の記憶装置５により、ストレージグループの一例であるＲＡＩＤグループを構成してよい。ＲＡＩＤカード４は、例えば、図示しない不揮発性メモリに、ＲＡＩＤカード４の機能を実現するＦＷ４１を記憶してよい。
【００３６】
記憶装置５は、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶装置５としては、例えば、ＨＤＤ等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、ＳＣＭ（Storage Class Memory）、ＲＯＭ（Read Only Memory）等が挙げられる。
【００３７】
記憶装置５は、記憶領域として、例示的に、ユーザデータ領域５１及びＣｏＤ（Configuration on Disk）領域５２をそなえてよい。
【００３８】
ユーザデータ領域５１は、プロセッサ２ａがＯＳ（Operating System）等のソフトウェアによりＲＡＩＤカード４を介してアクセス可能な記憶領域であり、サーバ１の業務に係るデータ（例えばユーザデータ）が記憶される領域である。
【００３９】
ＣｏＤ領域５２は、異なる複数の記憶装置５において共通に定義される領域であり、ＲＡＩＤカード４によるＲＡＩＤグループの構成管理に用いられる管理情報を記憶する管理領域又はＲＡＩＤ構成領域の一例である。管理情報は、記憶装置５の種類（例えば、ＨＷ、ＦＷ、ドライバ等）に依存せず、これらの種類が変更（更新）されてもデータ構造等の仕様が変わらないデータであってよい。なお、ＣｏＤ領域５２は、ユーザデータ領域５１と対比して、プロセッサ２ａによるアクセスが制限された領域、例えば、ＯＳ等のソフトウェアによるアクセスが不可能な領域である。
【００４０】
ここで、一実施形態に係る記憶装置５は、ＲＡＩＤカード４の現用の（換言すれば既定の）ＦＷ４１に関する情報、例えばＦＷ４１のイメージデータを、ＲＡＩＤ  ＦＷ（以下、単に「ＦＷ」と表記する場合がある）５２１としてＣｏＤ領域５２に格納する。これにより、ＲＡＩＤカード４が交換された場合でも、ＣｏＤ領域５２からＦＷ５２１を読み出すことで、故障前のＲＡＩＤカード４で使用していたＦＷ４１を継承することができる。
【００４１】
上述のように、ＣｏＤ領域５２にはプロセッサ２ａからのアクセスが制限されている。そこで、一実施形態では、ＣｏＤ領域５２にアクセス可能なＢＭＣ３が、ＲＡＩＤカード４を介して記憶装置５のＣｏＤ領域５２に対するＦＷ５２１の書き込み及び読み出しを制御する。
【００４２】
なお、ＣｏＤ領域５２は、ＳＮＩＡ（Storage Networking Industry Association）が公開しているＤＤＦ（Disk Data Format）で定義された、最小で３２ＭＢ（メガバイト）程度の領域である。ＤＤＦは、近年、ＲＡＩＤコントローラ等のＲＡＩＤ製品のベンダ各社が標準的に採用しＲＡＩＤ製品に実装している規格である。
【００４３】
ＤＤＦでは、図５に例示するように、記憶装置５等のＰＣＩｅデバイスの最終ＬＢＡ（Logical Block Address）（例えば、ＬＢＡ  Ｍ−１）に、“DDF Header (Anchor)”（アンカーヘッダ）が記録される。このアンカーヘッダには、実際のＰＣＩｅデバイスの状態が記録される“DDF Header (Primary)”（プライマリヘッダ）のＬＢＡが記録される。なお、アンカーヘッダには、オプションで、プライマリヘッダの冗長データである“DDF Header (Secondary)”（セカンダリヘッダ）のＬＢＡも記録される。
【００４４】
プライマリヘッダ及びセカンダリヘッダには、それぞれ、コントローラのデータや、ＲＡＩＤグループを構成する物理ディスク、仮想ディスク等の情報の他、未使用の約３０ＭＢ分の領域（未使用領域，予約領域）が存在する。なお、１つのＲＡＩＤカード４に接続された複数の記憶装置５の各々のＣｏＤ領域５２の内容は同一でよい。
【００４５】
一実施形態では、この未使用領域を利用し、記憶装置５がＦＷ５２１をＣｏＤ領域５２における未使用領域に格納してよい。このように、元々予約されているＲＡＩＤ管理用の領域をＦＷ５２１の格納領域に用いることで、ユーザが使用可能なユーザデータ領域５１、すなわち、ユーザのリソースを消費せずに済む。また、ＤＤＦで未使用として定義されている領域を使用することで、ＦＷ５２１がＲＡＩＤカード４により誤って書き換えられる或いは削除される等のリスクを低下させることができる。さらに、ＣｏＤ領域５２はプロセッサ２ａによるアクセス不可能であるため、プロセッサ２ａを介したユーザ操作等によるＦＷ５２１の書き換えや削除等のリスクを低下させることができる。
【００４６】
図６は、一実施形態に係るＲＡＩＤカード４のＦＷ４１の更新処理を簡単に説明する図である。図６に示すように、複数の記憶装置５の各々のＣｏＤ領域５２には、管理情報に加えて、ＲＡＩＤカード４に適用されているＦＷ版数ＡのＦＷ４１がＦＷ５２１として記憶されている。ここで、故障等により、ＲＡＩＤカード４が、ＦＷ版数ＢのＦＷ４１を適用されたＲＡＩＤカード４に交換された場合を想定する。
【００４７】
ＢＭＣ３は、ＲＡＩＤカード４及びＣｏＤ領域５２から、ＦＷ４１の情報、及び、既定のＦＷ５２１の情報をそれぞれ取得する（図６の（１）参照）。
【００４８】
ＦＷ４１及びＦＷ５２１の版数が一致しない場合、ＢＭＣ３は、プロセッサ２ａへＦＷ４１の更新指示を行なう（図６の（２）参照）。このとき、ＢＭＣ３は、ＲＡＩＤカード４に適用するＦＷ５２１の情報をプロセッサ２ａに転送する。
【００４９】
プロセッサ２ａは、ＢＭＣ３から受信したＦＷ５２１の情報及び更新指示に基づいて、ＲＡＩＤカード４に適用されているＦＷ４１を、ＦＷ版数ＢからＦＷ版数Ａに更新する（図６の（３）参照）。
【００５０】
以上の処理により、ＲＡＩＤカード４のＦＷ４１の版数を故障前（交換前）の版数に戻すことができる。
【００５１】
なお、図４に示すサーバ１の構成例では、サーバ１内に１つのＲＡＩＤカード４と、当該ＲＡＩＤカード４に接続された複数の記憶装置５とが存在するものとしたが、これに限定されるものではない。例えば、サーバ１には、複数のＲＡＩＤカード４が存在してよく、個々のＲＡＩＤカード４に対して複数の記憶装置５が接続されてよい。
【００５２】
サーバ１に複数のＲＡＩＤカード４が存在する場合、図７に例示するように、ＢＭＣ３及びプロセッサ２ａは、ＲＡＩＤカード４Ａ〜４Ｃの各々に対して、図６に例示する処理を行なってよい。
【００５３】
〔１−２〕ハードウェア構成例の構成例
図８は、サーバ１のハードウェア構成例を示す図である。図８に示すように、サーバ１は、ハードウェア構成として、例示的に、プロセッサ２ａ、メモリ２ｂ、記憶部２ｃ、ＩＦ（Interface）部２ｄ、入出力部２ｅ、及び読取部２ｆをそなえてよい。
【００５４】
プロセッサ２ａ及びメモリ２ｂは、図４に示すものと同様である。なお、プロセッサ２ａは、各ブロック２ｂ〜２ｆとバス２ｉで相互に通信可能に接続されてよい。
【００５５】
記憶部２ｃは、種々のデータやプログラム等を格納するハードウェアの一例である。記憶部２ｃとしては、例えば、ＨＤＤ等の磁気ディスク装置、ＳＳＤ等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。記憶部２ｃは、サーバ１の各種機能の全部若しくは一部を実現するプログラム２ｇを格納してもよい。例えば、プロセッサ２ａは、記憶部２ｃに格納されたプログラム２ｇをメモリ２ｂに展開して実行することにより、サーバ１としての機能を実現できる。
【００５６】
ＩＦ部２ｄは、図示しないホスト装置や保守端末等との間の接続及び通信の制御等を行なう通信インタフェースの一例である。例えば、ＩＦ部２ｄは、ＬＡＮ（Local Area Network）等に準拠したアダプタをそなえてよい。なお、サーバ１は、ＩＦ部２ｄを介して、図示しないネットワークからプログラム２ｇ、又は、図９に示すＢＭＣ３のプログラム３ｅをダウンロードしてもよい。
【００５７】
入出力部２ｅは、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力装置、並びに、ディスプレイ、プリンタ、プロジェクタ等の出力装置の一方又は双方を含んでよい。
【００５８】
読取部２ｆは、記録媒体２ｈに記録されたデータやプログラムを読み出しプロセッサ２ａに出力するリーダの一例である。読取部２ｆは、記録媒体２ｈを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部２ｆとしては、例えばＵＳＢ（Universal Serial Bus）等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、ＳＤカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体２ｈにはプログラム２ｇ、又は、図９に示すプログラム３ｅが格納されてもよい。
【００５９】
記録媒体２ｈとしては、例示的に、磁気／光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気／光ディスクとしては、例示的に、フレキシブルディスク、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）、ブルーレイディスク、ＨＶＤ（Holographic Versatile Disc）等が挙げられる。フラッシュメモリとしては、例示的に、ＵＳＢメモリやＳＤカード等の半導体メモリが挙げられる。なお、ＣＤとしては、例示的に、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ等が挙げられる。また、ＤＶＤとしては、例示的に、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等が挙げられる。
【００６０】
上述したサーバ１のハードウェア構成は例示である。従って、サーバ１内でのハードウェアの増減（例えば任意のブロックの追加や削除）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【００６１】
図９は、ＢＭＣ３のハードウェア構成例を示す図である。図９に示すように、ＢＭＣ３は、ハードウェア構成として、例示的に、プロセッサ３ａ、メモリ３ｂ、フラッシュメモリ３ｃ、及びＩＦ部３ｄをそなえてよい。
【００６２】
プロセッサ３ａは、サーバ１上のハードウェアを監視及び管理する。例えば、プロセッサ３ａは、一実施形態に係るＲＡＩＤカード４のＦＷ４１の書き換えに関する制御を行なってよい。プロセッサ３ａとしては、例えば、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤ（例えばＦＰＧＡ）等の集積回路（ＩＣ）が用いられてよい。
【００６３】
メモリ３ｂは、種々のデータやプログラムを格納するハードウェアの一例である。メモリ３ｂとしては、例えばＲＡＭ等の揮発性メモリが挙げられる。なお、メモリ３ｂには、ＢＭＣ３としての機能を実現するプログラム３ｅが格納されてもよい。例えば、プロセッサ３ａは、メモリ３ｂにプログラム３ｅを展開して実行することにより、ＢＭＣ３としての機能を実現できる。
【００６４】
フラッシュメモリ３ｃは、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、フラッシュメモリ３ｃには、ＢＭＣ３のＦＷや、保守端末等から取得したＲＡＩＤカード４のＦＷ等が記憶されてよい。
【００６５】
ＩＦ部３ｄは、プロセッサ２ａやＲＡＩＤカード４等のサーバ１の内部の装置、並びに、図示しない保守端末等のサーバ１の外部の装置との間の接続及び通信の制御等を行なう通信インタフェースの一例である。例えば、ＩＦ部３ｄは、プロセッサ２ａやＲＡＩＤカード４に対してＩ２Ｃに準拠したアダプタをそなえてよく、保守端末に対してＬＡＮに準拠したアダプタをそなえてよい。
【００６６】
上述したＢＭＣ３のハードウェア構成は例示である。従って、ＢＭＣ３内でのハードウェアの増減（例えば任意のブロックの追加や削除）、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。
【００６７】
〔１−３〕サーバの機能構成例
次に、一実施形態に係る手法に着目したサーバ１の機能構成例について説明する。
【００６８】
図１０に示すように、プロセッサ２ａは、例示的に、通信部２１及びＦＷ更新処理部２２をそなえてよい。
【００６９】
通信部２１は、ＢＭＣ３との間で通信を行なう。例えば、通信部２１は、ＢＭＣ３からのＲＡＩＤカード４のＦＷ４１の更新要求の受信や、ＦＷ更新処理結果のＢＭＣ３への送信等を行なってよい。なお、更新要求には、後述するＦＷ３１１のイメージデータが含まれてよい。
【００７０】
ＦＷ更新処理部２２は、ＢＭＣ３から受信したＦＷ３１１を用いて、プロセッサ２ａがそなえる標準的な機能やＩＦにより、ＲＡＩＤカード４に適用されている（インストールされている）ＦＷ４１を更新する。例えば、ＦＷ４１の更新処理には、ＦＷ３１１によるＦＷ４１の書き換えが含まれてよい。
【００７１】
ＢＭＣ３は、例示的に、メモリ部３１、ＵＩ管理部３２、及び、サーバ内ＩＦ管理部３３をそなえてよい。
【００７２】
メモリ部３１は、図９に示すメモリ３ｂ又はフラッシュメモリ３ｃの少なくとも一部の記憶領域により実現されてよい。メモリ部３１はＲＡＩＤ  ＦＷ３１１を記憶してよい。ＦＷ３１１は、例えば、保守端末から受信したＦＷ、又は、記憶装置５から取得したＦＷ５２１であってよい。
【００７３】
ＵＩ管理部３２は、ユーザ、例えば保守端末に対してＩＦを提供する。ＵＩ管理部３２は、例示的に、Ｗｅｂ  ＵＩ部３２１、ＩＰＭＩ（Intelligent Platform Management Interface）  ＵＩ部３２２、及び、更新ＦＷ受信部３２３をそなえてよい。
【００７４】
Ｗｅｂ  ＵＩ部３２１は、例えば、ＬＡＮを介して、管理画面等のＷｅｂのＩＦを保守端末に提供する。ＩＰＭＩ  ＵＩ部３２２は、例えば、ＬＡＮを介して、ＩＰＭＩに準拠したＩＦを保守端末に提供する。Ｗｅｂ  ＵＩ部３２１及びＩＰＭＩ  ＵＩ部３２２は、例えば、ＧＵＩ（Graphical User Interface）、ＣＬＩ（Command Line Interface）、或るいは、ＴＵＩ（Text User Interface）等の種々の態様のＩＦをそなえてよい。Ｗｅｂ  ＵＩ部３２１及びＩＰＭＩ  ＵＩ部３２２の機能は、既知の種々の手法により実現可能であり、その詳細な説明を省略する。
【００７５】
更新ＦＷ受信部３２３は、保守端末から、ＲＡＩＤカード４に適用する更新ＦＷ、例えばユーザＦＷを取得する取得部の一例である。例えば、更新ＦＷ受信部３２３は、Ｗｅｂ  ＵＩ部３２１又はＩＰＭＩ  ＵＩ部３２２等を介して、保守端末からユーザＦＷを受信すると、当該ユーザＦＷをＦＷ３１１としてメモリ部３１に格納してよい。なお、ユーザＦＷとは、例えば、ＲＡＩＤカードのメーカが提供するＦＷの版数のうちのユーザ等が選択した所定の版数のＦＷであってよい。
【００７６】
上述のように、ＦＷ５２１を含むＣｏＤ領域５２は、ＯＳ等のソフトウェアからは隠蔽されており、ユーザはＦＷ５２１への直接的なアクセスが不可能である。そこで、更新ＦＷ受信部３２３は、Ｗｅｂ  ＵＩやＩＰＭＩコマンド等を介して、ユーザからユーザＦＷを受け付けることで、ユーザによるＣｏＤ領域５２内のＦＷ５２１の更新を可能とする。
【００７７】
サーバ内ＩＦ管理部３３は、サーバ１内の装置との間のＩＦを管理する。サーバ内ＩＦ管理部３３は、例示的に、プロセッサ監視部３３１、ＲＡＩＤカード監視部３３２、ファン／温度センサ監視部３３３、ＣｏＤ領域アクセス部３３４、及び、ＦＷ更新指示部３３５をそなえてよい。
【００７８】
プロセッサ監視部３３１は、例えば、Ｉ２ＣのＩＦを介して、プロセッサ２ａやメモリ２ｂ等のハードウェアを監視及び管理する。ＲＡＩＤカード監視部３３２は、例えば、Ｉ２ＣやＲＡＩＤ  ＡＰＩ（Application Programming Interface）を介して、ＲＡＩＤカード４等のハードウェアを監視及び管理する。ファン／温度センサ監視部３３３は、例えば、Ｉ２ＣのＩＦを介して、サーバ１がそなえる図示しないファンや温度センサ等を監視及び管理する。これらの監視部３３１〜３３３の機能は、既知の種々の手法により実現可能であり、その詳細な説明を省略する。
【００７９】
ＣｏＤ領域アクセス部３３４は、例えば、Ｉ２ＣやＲＡＩＤ  ＡＰＩのＩＦにより、ＲＡＩＤカード４を介して、複数の記憶装置５のうちのいずれかの記憶装置５のＣｏＤ領域５２にアクセスする。
【００８０】
例えば、ＣｏＤ領域アクセス部３３４は、記憶装置５のＣｏＤ領域５２にＦＷ５２１が格納されているか否かを判定し、格納されている場合、ＲＡＩＤカード４に適用されているＦＷ４１の版数と、ＦＷ５２１の版数とを比較してよい。そして、比較の結果、両者が異なる場合、ＣｏＤ領域アクセス部３３４は、ＣｏＤ領域５２からＦＷ５２１を読み出し、ＦＷ３１１としてメモリ部３１に格納するとともに、ＦＷ更新指示部３３５に対して、ＦＷ４１の更新処理を指示してよい。
【００８１】
このように、ＣｏＤ領域アクセス部３３４は、ＲＡＩＤカード４に適用されている現用のＦＷ４１の版数と、複数の記憶装置５に予め格納された既定のＦＷ５２１の既定版数とを比較する比較部の一例である。
【００８２】
なお、版数の比較は、サーバ１の起動段階で実施されてよい。上述のように、ＲＡＩＤカード４の交換は、サーバ１を停止させて実行される（非活性交換される）ため、ＲＡＩＤカード４の交換後のサーバ１の初回起動のタイミングで、ＦＷ４１の書き換え要否を判断することができる。
【００８３】
また、ＣｏＤ領域アクセス部３３４は、複数の記憶装置５のＣｏＤ領域５２にＦＷ５２１が格納されていない場合、ＲＡＩＤカード４に適用されているＦＷ４１を、ＦＷ５２１として記憶装置５のＣｏＤ領域５２に格納してよい。なお、ＣｏＤ領域５２にＦＷ５２１が格納されていない状況としては、例えば、サーバ１が新規に構築された場合や、記憶装置５の交換後等が挙げられる。
【００８４】
さらに、ＣｏＤ領域アクセス部３３４は、ＵＩ管理部３２が保守端末からユーザＦＷを取得すると、当該ユーザＦＷを、ＦＷ３１１としてメモリ部３１に格納してよい。そして、ＣｏＤ領域アクセス部３３４は、ＦＷ３１１を用いて、記憶装置５のＣｏＤ領域５２に格納されたＦＷ５２１を更新してよい。
【００８５】
また、ＣｏＤ領域アクセス部３３４は、新規の記憶装置５を検出した場合、例えば、ＲＡＩＤカード４に対して記憶装置５が追加された場合や、故障した記憶装置５が交換された場合、当該新規の記憶装置５に対して、ＦＷ５２１の格納を制御してよい。例えば、ＣｏＤ領域アクセス部３３４は、既存の記憶装置５のＣｏＤ領域５２からＦＷ５２１を取得し、取得したＦＷ５２１を、新規の記憶装置５のＣｏＤ領域５２に格納してよい。
【００８６】
ＦＷ更新指示部３３５は、プロセッサ２ａに対して、例えば、Ｉ２ＣのＩＦを介して、メモリ部３１に格納されたＦＷ３１１のイメージデータを転送するとともに、ＲＡＩＤカード４のＦＷ４１の更新指示を送信する。なお、更新指示には、更新処理対象のＲＡＩＤカード４を示す情報が含まれてよい。更新指示は、例えば、ＦＷ４１の更新機能を有する保守ツールのプログラムそのもの、又は、当該プログラムの起動パラメータ等の情報、をプロセッサ２ａに送信することで行なわれてもよい。
【００８７】
このように、ＦＷ更新指示部３３５は、ＣｏＤ領域アクセス部３３４による比較の結果、現用のＦＷ４１の版数と既定版数とが不一致の場合、プロセッサ２ａに対して、ＲＡＩＤカード４のＦＷ４１を既定版数に更新する指示を行なう更新指示部の一例である。
【００８８】
以下、プロセッサ２ａに対するＦＷ３１１の転送、及び、更新指示の送信を、単に、「更新指示の送信」と表記する場合がある。
【００８９】
なお、プロセッサ２ａが起動していない場合、ＦＷ更新指示部３３５は、更新指示の送信前に、プロセッサ監視部３３１の機能を用いてプロセッサ２ａを起動してもよい。また、ＲＡＩＤカード４のＦＷ４１を更新した場合、サーバ１の再起動後に更新後のＦＷ４１が適用される。そこで、ＦＷ更新指示部３３５は、プロセッサ２ａからＦＷ４１の更新の完了通知を受けると、サーバ１の再起動を行なってよい。
【００９０】
このように、ＲＡＩＤカード４のＦＷ４１の更新に関する制御を、プロセッサ２ａを含むサーバ１の監視及び管理を行なうＢＭＣ３が行なうことにより、ＲＡＩＤカード４のＦＷ４１の更新に伴うサーバ１の電源制御を容易に行なうことができる。
【００９１】
〔１−４〕動作例
次に、一実施形態に係るサーバ１の動作例を説明する。
【００９２】
〔１−４−１〕全体の動作例
はじめに、図１１及び図１２を参照して、ＲＡＩＤカード４のＦＷ４１の更新に係るサーバ１の全体の動作例を説明する。
【００９３】
図１１に例示するように、ＲＡＩＤカード４ＡにＦＷ版数ＡのＦＷ４１Ａが適用されている状態で、ＲＡＩＤカード４Ａの故障が発生した場合、以下の処理が行なわれる。なお、記憶装置５のＣｏＤ領域５２には、ＦＷ版数ＡのＦＷ４１Ａのイメージデータが事前に格納されているものとする。
【００９４】
図１２に例示するように、保守作業員は、サーバの電源をＯＦＦにし（処理Ｔ１）、プロセッサ２ａ、ＢＭＣ３、及び、ＲＡＩＤカード４Ａを含むサーバ１の電源がＯＦＦになると、ＲＡＩＤカード４ＡをＲＡＩＤカード４Ｂに交換する（処理Ｔ２）。そして、保守作業員は、サーバ１の電源をＯＮにする（処理Ｔ３）。なお、図１１に示すように、ＲＡＩＤカード４Ｂには、ＦＷ版数ＢのＦＷ４１Ｂが適用されている。
【００９５】
サーバ１に電源が投入されると、プロセッサ２ａによりシステムが起動され（処理Ｔ４）、ＲＡＩＤカード４ＢのＦＷ４１Ｂが起動する（処理Ｔ５）。
【００９６】
ＢＭＣ３のＣｏＤ領域アクセス部３３４は、ＲＡＩＤカード４Ｂに対して、ＦＷ版数の確認要求を行ない（処理Ｔ６）、ＲＡＩＤカード４Ｂは、ＦＷ版数Ｂを応答する（処理Ｔ７）。また、ＣｏＤ領域アクセス部３３４は、ＣｏＤ領域５２に格納されたＦＷ５２１のＦＷ版数Ａを確認する（処理Ｔ８）。
【００９７】
次いで、ＣｏＤ領域アクセス部３３４は、ＲＡＩＤカード４ＢのＦＷ４１Ｂの版数Ｂと、ＣｏＤ領域５２のＦＷ５２１の版数Ａとを比較し、両者の不一致を検出すると、ＦＷ更新指示部３３５に更新指示の送信を指示する。また、ＣｏＤ領域アクセス部３３４は、ＣｏＤ領域５２からＦＷ５２１を取得し（処理Ｔ９）、例えばＦＷ３１１としてメモリ部３１に格納する。
【００９８】
ＦＷ更新指示部３３５は、ＣｏＤ領域アクセス部３３４がＣｏＤ領域５２から読み出したＦＷ５２１（メモリ部３１に格納されたＦＷ３１１）を新たなＦＷ４１Ａとしてプロセッサ２ａに転送する。また、ＦＷ更新指示部３３５は、ＦＷ４１の更新指示をプロセッサ２ａに送信する（処理Ｔ１０）。
【００９９】
プロセッサ２ａのＦＷ更新処理部２２は、新たなＦＷ４１Ａを受信すると（処理Ｔ１１）、ＦＷ４１ＡをＲＡＩＤカード４Ｂに送信し、ＦＷ版数ＡのＦＷ４１ＡをＲＡＩＤカード４Ｂに適用する適用処理を行なう（処理Ｔ１２）。ＲＡＩＤカード４Ｂでは、当該ＦＷ４１Ａが適用される（処理Ｔ１３）。
【０１００】
ＲＡＩＤカード４Ｂは、プロセッサ２ａに対して完了応答を送信し（処理Ｔ１４）、プロセッサ２ａは、ＦＷ更新指示部３３５に対して完了応答を送信する（処理Ｔ１５）。
【０１０１】
ＦＷ更新指示部３３５は、ＲＡＩＤカード４Ｂに対するＦＷ４１Ａの適用が完了すると、プロセッサ監視部３３１の機能を用いて、システムの再起動を制御し（処理Ｔ１６）、プロセッサ２ａは、システムの再起動を行なう（処理Ｔ１７）。以上により、サーバ１におけるＲＡＩＤカード４のＦＷ４１の更新処理が終了する。
【０１０２】
〔１−４−２〕サーバ起動段階でのＦＷ更新処理
次に、図１３を参照して、ＢＭＣ３による、サーバ１の起動段階、例えば、サーバ１の電源投入後のシステムの起動プロセスの間に実施されるＦＷ更新処理について説明する。
【０１０３】
サーバ１にＡＣ電源が供給されると、ＢＭＣ３が起動する（ステップＳ１）。ユーザ操作等によりサーバ１の電源がＯＮになると、プロセッサ２ａによりシステムの起動が始まり、ＲＡＩＤカード４や記憶装置５が起動する（ステップＳ２）。なお、以下の説明では、記憶装置５を単に「ディスク」と表記する。
【０１０４】
ＢＭＣ３のＣｏＤ領域アクセス部３３４は、１つのＲＡＩＤカード４について、ディスクが接続されているか否かを判定する（ステップＳ３）。ディスクが接続されていない場合（ステップＳ３でＮｏ）、処理がステップＳ１２に移行する。
【０１０５】
ディスクが接続されている場合（ステップＳ３でＹｅｓ）、ＣｏＤ領域アクセス部３３４は、ＲＡＩＤカード４上のＦＷ４１の版数、及び、ＣｏＤ領域５２内のＦＷ５２１の版数をそれぞれ取得する（ステップＳ４及びＳ５）。なお、ステップＳ４及びＳ５は、それぞれ、ＣｏＤ領域アクセス部３３４がＲＡＩＤカード４に版数の取得要求を行ない、ＲＡＩＤカード４がＦＷ４１の版数及び記憶装置５のＣｏＤ領域５２内のＦＷ５２１の版数を取得して応答することにより行なわれてよい。
【０１０６】
次いで、ＣｏＤ領域アクセス部３３４は、ステップＳ４で取得したＦＷ４１の版数と、ステップＳ５で取得したＦＷ５２１の版数とを比較し、両者が一致するか否かを判定する（ステップＳ６）。両者が一致する場合（ステップＳ６でＹｅｓ）、処理がステップＳ１２に移行する。
【０１０７】
一方、例えばＲＡＩＤカード４の交換後等の理由により両者が一致しない場合（ステップＳ６でＮｏ）、ＣｏＤ領域アクセス部３３４は、ＣｏＤ領域５２内のＦＷ５２１のイメージデータを取得する（ステップＳ７）。取得したＦＷ５２１の情報は、ＦＷ３１１としてメモリ部３１に格納されてよい。
【０１０８】
なお、ステップＳ７は、ＣｏＤ領域アクセス部３３４がＲＡＩＤカード４にＦＷ５２１の取得要求を行ない、ＲＡＩＤカード４が記憶装置５のＣｏＤ領域５２内のＦＷ５２１を取得して応答することにより行なわれてよい。或いは、ＣｏＤ領域アクセス部３３４は、ステップＳ５においてＲＡＩＤカード４からＦＷ５２１のイメージデータを取得してもよく、この場合、ステップＳ７をスキップしてもよい。
【０１０９】
次に、ＣｏＤ領域アクセス部３３４は、ＣｏＤ領域５２にＦＷ５２１が存在するか否かを判定する（ステップＳ８）。ＣｏＤ領域５２にＦＷ５２１が存在しない場合（ステップＳ８でＮｏ）、つまり、ステップＳ５及びＳ７において、ＦＷ５２１のＦＷ版数及びイメージデータが取得できない場合、処理がステップＳ９に移行する。
【０１１０】
ステップＳ９では、ＣｏＤ領域アクセス部３３４は、ＲＡＩＤカード４からＦＷ４１のイメージデータを取得する。そして、ＣｏＤ領域アクセス部３３４は、ＦＷ４１のイメージデータをＣｏＤ領域５２に書き込み（ステップＳ１０）、ＦＷ更新処理が終了し、システムの起動プロセス、例えばＯＳ等の起動が継続される。
【０１１１】
なお、ステップＳ９は、ＣｏＤ領域アクセス部３３４がＲＡＩＤカード４にＦＷ４１の取得要求を行ない、ＲＡＩＤカード４がＦＷ４１を取得して応答することにより行なわれてよい。また、ステップＳ１０は、ＣｏＤ領域アクセス部３３４がＦＷ４１をＲＡＩＤカード４に送信し、ＲＡＩＤカード４がＦＷ４１をＣｏＤ領域５２に書き込むことにより行なわれてよい。
【０１１２】
一方、ＣｏＤ領域５２にＦＷ５２１が存在する場合（ステップＳ８でＹｅｓ）、ＣｏＤ領域アクセス部３３４は、ＦＷ更新指示部３３５に対して更新指示の送信を指示する。
【０１１３】
ＦＷ更新指示部３３５は、ＦＷ３１１のイメージデータと、更新指示、例えば、保守ツールに関する情報とをプロセッサ２ａに送信する（ステップＳ１１）。
【０１１４】
なお、プロセッサ２ａは、通信部２１によりＦＷ３１１のイメージデータと保守ツールに関する情報とを受信すると、保守ツールを起動して、ＦＷ更新処理部２２としての処理を行なってよい。ＦＷ更新処理部２２としての処理には、ＲＡＩＤカード４に対するＦＷ３１１の送信、及び、ＲＡＩＤカード４に対するＦＷ３１１の適用（例えばインストール）が含まれてよい。
【０１１５】
ＣｏＤ領域アクセス部３３４は、サーバ１に搭載されたＲＡＩＤカード４について、上述した処理を行なっていないＲＡＩＤカード４、換言すれば、次のＲＡＩＤカード４が存在するか否かを判定する（ステップＳ１２）。
【０１１６】
次のＲＡＩＤカード４が存在する場合（ステップＳ１２でＹｅｓ）、処理がステップＳ３に移行し、ＣｏＤ領域アクセス部３３４は、当該次のＲＡＩＤカード４について、ディスクが接続されているか否かを判定する。
【０１１７】
一方、次のＲＡＩＤカード４が存在しない場合（ステップＳ１２でＮｏ）、ＣｏＤ領域アクセス部３３４は、ＦＷ４１の更新が有るか、換言すれば、ステップＳ１１におけるＦＷ４１の更新が発生したか否かを判定する（ステップＳ１３）。
【０１１８】
ＦＷ４１の更新が有る場合（ステップＳ１３でＹｅｓ）、ＦＷ更新指示部３３５は、プロセッサ監視部３３１の機能を用いて、サーバ１、ＲＡＩＤカード４等の再起動を行なう（ステップＳ１４）。そして、サーバ１、ＲＡＩＤカード４の再起動段階で、ステップＳ２の処理が実行される。
【０１１９】
一方、ＦＷ４１の更新が無い場合（ステップＳ１３でＮｏ）、ＦＷ更新処理が終了し、システムの起動プロセス、例えばＯＳ等の起動が継続される。
【０１２０】
図１３に示す動作フローは、例えば、ＢＭＣ３により、以下の（ａ）〜（ｄ）のようなシナリオで実行されてよい。
【０１２１】
（ａ）新規システムが構築された場合
【０１２２】
サーバ１の初回の起動時には、ＲＡＩＤカード４にはＦＷ４１が書き込まれており、ディスク上のＣｏＤ領域５２にはＦＷ５２１が書き込まれていない。この場合、図１３に示す動作フローは、ステップＳ８でＮｏとなり、ステップＳ９及びＳ１０の処理が行なわれ、ＦＷ更新処理が終了して、システムの起動プロセス、例えばＯＳ等の起動が継続される。
【０１２３】
（ｂ）システムの運用開始後、ＲＡＩＤカード４の交換が発生していない場合
【０１２４】
この場合、図１３に示す動作フローは、ステップＳ１３でＮｏとなり、ＦＷ更新処理が終了して、システムの起動プロセス、例えばＯＳ等の起動が継続される。
【０１２５】
（ｃ）ＲＡＩＤカード４の交換が発生した場合
【０１２６】
図１３に示す動作フローは、ステップＳ６でＮｏ、ステップＳ８でＹｅｓとなり、ステップＳ１１において、ＲＡＩＤカード４のＦＷ４１がＣｏＤ領域５２のＦＷ５２１に書き換えられる。この場合、ステップＳ１３でＹｅｓとなり、ステップＳ１４においてシステムの再起動が行なわれ、処理がステップＳ３に移行する。なお、再起動後は、ＲＡＩＤカード４の交換が発生していない場合の動作フローとなる。
【０１２７】
（ｄ）何らかの理由でディスクが検出されない場合
【０１２８】
図１３に示す動作フローは、ステップＳ３、Ｓ１２及びＳ１３でそれぞれＮｏとなり、ＦＷ更新処理が終了して、システムの起動プロセス、例えばＯＳ等の起動が継続される。なお、ディスクが検出されない場合としては、ＲＡＩＤカード４、ディスク、又は、ケーブル１４（図４参照）等の故障により、ＢＭＣ３がディスクを検出できない場合が挙げられる。
【０１２９】
〔１−４−３〕ＣｏＤ領域の更新処理
次に、図１４を参照して、ＢＭＣ３による、ＣｏＤ領域５２の更新処理について説明する。図１４に示す動作フローは、例えば、ユーザがＦＷ４１を更新したい場合等に実行されてよい。
【０１３０】
図１４に例示するように、ＵＩ管理部３２の更新ＦＷ受信部３２３は、Ｗｅｂ  ＵＩ部３２１又はＩＰＭＩ  ＵＩ部３２２経由でユーザＦＷを受信する（ステップＳ２１）。なお、受信したユーザＦＷは、ＦＷ３１１としてメモリ部３１に格納されてよい。
【０１３１】
ＣｏＤ領域アクセス部３３４は、ＦＷ４１の更新対象のＲＡＩＤカード４にディスクが接続されているか否かを判定する（ステップＳ２２）。ディスクが接続されている場合（ステップＳ２２でＹｅｓ）、ＣｏＤ領域アクセス部３３４は、ＣｏＤ領域５２内のＦＷ５２１の版数を取得する（ステップＳ２３）。
【０１３２】
次いで、ＣｏＤ領域アクセス部３３４は、受信したユーザＦＷの版数と、ステップＳ２３で取得したＦＷ５２１の版数とを比較し、両者が一致するか否かを判定する（ステップＳ２４）。
【０１３３】
両者が一致しない場合（ステップＳ２４でＮｏ）、ＣｏＤ領域アクセス部３３４は、ＲＡＩＤカード４に対して、メモリ部３１に格納されたＦＷ３１１によるＣｏＤ領域５２内のＦＷ５２１の更新指示を送信し（ステップＳ２５）、処理が終了する。
【０１３４】
なお、ステップＳ２２において、ディスク接続が無い場合（ステップＳ２２でＮｏ）、更新ＦＷ受信部３２３は、ディスク接続が無い旨のエラー表示を行ない（ステップＳ２６）、処理が終了する。
【０１３５】
また、ステップＳ２４において、ユーザＦＷの版数とＦＷ５２１の版数とが一致する場合（ステップＳ２４でＹｅｓ）、更新ＦＷ受信部３２３は、ＦＷ版数が一致している旨の情報表示を行ない（ステップＳ２７）、処理が終了する。
【０１３６】
なお、ステップＳ２２及びＳ２４は、例えば、Ｗｅｂ  ＵＩ部３２１又はＩＰＭＩ  ＵＩ部３２２等のＩＦを介してユーザに対して実施されてよい。
【０１３７】
以上の処理により、ＣｏＤ領域５２のＦＷ５２１が更新され、その結果、ＦＷ５２１の版数とＲＡＩＤカード４のＦＷ４１の版数とが一致しなくなる。従って、次回のシステム起動時に、図１３に示すＦＷ更新処理が実行されると、上記（ｃ）のＲＡＩＤカード４の交換が発生した場合のシナリオにおいて、ＲＡＩＤカード４のＦＷ４１が更新される。
【０１３８】
〔１−４−４〕新規ディスク検出後の処理
次に、図１５を参照して、ＢＭＣ３による、新規ディスク検出後の処理について説明する。
【０１３９】
図１５に例示するように、ＣｏＤ領域アクセス部３３４は、ＲＡＩＤカード４から新規ディスクを検出したことの通知を受信する（ステップＳ３１）。
【０１４０】
次いで、ＣｏＤ領域アクセス部３３４は、検出されたディスク、及び、検出されたディスクと同じＲＡＩＤカード４に接続されたディスクのそれぞれのＣｏＤ領域５２内のＦＷ５２１のＦＷ版数を取得する（ステップＳ３２）。検出されたディスクと同じＲＡＩＤカード４に接続されたディスクから取得したＦＷ５２１は、ＦＷ３１１としてメモリ部３１に格納されてよい。なお、検出されたディスクと同じＲＡＩＤカード４に接続されたディスクが複数存在する場合には、ＣｏＤ領域アクセス部３３４は、いずれか１つのディスクを選択してよい。
【０１４１】
ＣｏＤ領域アクセス部３３４は、取得した２つのＦＷ版数を比較し、両者が一致するか否かを判定する（ステップＳ３３）。両者が一致する場合（ステップＳ３３でＹｅｓ）、処理が終了する。
【０１４２】
両者が一致しない場合（ステップＳ３３でＮｏ）、ＣｏＤ領域アクセス部３３４は、ＲＡＩＤカード４に対して、メモリ部３１に格納されたＦＷ３１１による、検出されたディスクのＣｏＤ領域５２内のＦＷ５２１の更新指示を送信する（ステップＳ３４）。ＲＡＩＤカード４は、更新指示に従い、検出されたディスクのＣｏＤ領域５２に対して、ＦＷ５２１を書き込む。以上により、新規ディスク検出後の処理が終了する。
【０１４３】
以上のように、一実施形態によれば、ＢＭＣ３がＲＡＩＤカード４に適用されているＦＷ４１の版数が既定のＦＷ５２１の版数と異なる場合に、当該ＦＷ４１を既定のＦＷ５２１の版数に変更する。これにより、例えば、比較例においては保守作業員が行なっていたＦＷ更新処理を、ＢＭＣ３により実現できるため、ＦＷ版数を元に戻すための保守作業員の追加作業を排除できる。換言すれば、ＲＡＩＤカード４の交換後のサーバ１の管理にかかる作業時間を削減でき、サーバ１の可用性の低下を抑制できる。
【０１４４】
また、一実施形態によれば、ＲＡＩＤカード４が本来有している、記憶装置５及びそのデータを冗長配置する機能を活用することで、ＲＡＩＤカード４が交換されたとしても記憶装置５上のＦＷ５２１を維持し、利用することができる。
【０１４５】
さらに、ＦＷ４１のバージョン管理が、サーバ１のＯＳやソフトウェアに依存しないＢＭＣ３により行なわれる。ＢＭＣ３は、サーバ１内部のＲＡＩＤカード４やプロセッサ２ａ等と接続されており、これらを制御するためのＩＦや動作プログラムを有している。また、このような動作プログラムは、サーバ１に合わせてサーバ１のメーカ（ベンダ）が自社開発することが多い。従って、ＢＭＣ３が有する機能、サーバ１のメーカの技術や知識等を活用して、一実施形態に係る機能を柔軟に実現できる。
【０１４６】
また、ＢＭＣ３やプロセッサ２ａ、ＲＡＩＤカード４等に対して、追加ハードウェアが不要であるため、既存のサーバ１等の製品にも一実施形態に係る手法を容易に実装することができる。
【０１４７】
さらに、サーバ１内にベンダやシリーズの異なる複数種類のＲＡＩＤカード４が搭載されていたり、同種であってもＲＡＩＤカード４が複数枚搭載されていたりしても、ＢＭＣ３により、これらのＲＡＩＤカード４のＦＷ４１のバージョン管理を一元管理できる。
【０１４８】
また、ＢＭＣ３は、ＦＷ更新処理に係る一連の動作をサーバ１の起動（電源ＯＮ）後、ＯＳ起動前に自動的に実行可能である。このように、ＯＳやドライバプログラムが動作する前にＲＡＩＤカード４のＦＷ更新処理を完了することで、ユーザがサーバ１稼働のためのソフトウェアを動作させる前に、例えばサーバ１のＲＡＩＤカード４の故障等に伴う復旧作業を完結させることができる。
【０１４９】
さらに、保守作業員がＦＷ版数を戻し忘れるといった、比較例において発生し得る事態を回避でき、システムの動作が不安定になる可能性を排除できる。例えば、多数台のサーバ１を管理するデータセンタにおいて、運用中にＲＡＩＤカード４が故障により交換されたとしても、サーバ１自身のそなえるＢＭＣ３がＲＡＩＤカード４のＦＷ４１の管理を自動化している。従って、比較例において人間が介在していた操作を無くすことができ、運用コストや作業ミスの削減を達成できる。
【０１５０】
また、ＢＭＣ３により、上述した機能を実現することで、ユーザや保守作業員は、システムのハードウェア構成や、当該構成（例えばＲＡＩＤカード４の種類やＦＷ４１の版数）の差異を意識せずに、ＲＡＩＤカード４の交換を行なうことができる。
【０１５１】
ここで、データセンタ等の多数のサーバ１を運用する環境においては、管理及び運用のための人材や時間等のコストの削減が検討されることがある。このようなコストの削減のためのアプローチの一つとして、サーバ１自身のハードウェアの仕組みによって、ＦＷ４１の自動判別やＦＷ版数の自動修復（例えばＦＷ４１の更新）を行なうことができ、大きなコスト削減を図ることができる。
【０１５２】
〔２〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【０１５３】
例えば、図１０に示す、プロセッサ２ａ、ＢＭＣ３、ＵＩ管理部３２、サーバ内ＩＦ管理部３３がそなえる各機能ブロックは、任意の組み合わせで併合してもよく、分割してもよい。
【０１５４】
〔３〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１５５】
（付記１）
複数の記憶装置と、
前記複数の記憶装置を制御する制御モジュールと、
前記複数の記憶装置に対して前記制御モジュールを介してアクセスするプロセッサと、
情報処理装置の管理を行なうコントローラと、をそなえ、
前記コントローラは、
前記制御モジュールに適用されている現用ファームウェアの版数と、前記複数の記憶装置に予め格納された既定ファームウェアの既定版数とを比較し、
比較の結果、前記現用ファームウェアの版数と前記既定版数とが不一致の場合、前記プロセッサに対して、前記制御モジュールに適用されている前記現用ファームウェアを前記既定版数に更新する指示を行なう、
ことを特徴とする、情報処理装置。
【０１５６】
（付記２）
前記コントローラは、前記複数の記憶装置に前記既定ファームウェアが格納されているか否かを判定し、格納されていない場合、前記制御モジュールに適用されている前記現用ファームウェアを、前記複数の記憶装置に格納する、
ことを特徴とする、付記１記載の情報処理装置。
【０１５７】
（付記３）
前記コントローラは、前記制御モジュールへの新たな記憶装置の接続が検出された場合、前記複数の記憶装置に格納された前記既定のファームウェアを、前記新たな記憶装置に格納する、
ことを特徴とする、付記１又は付記２記載の情報処理装置。
【０１５８】
（付記４）
前記コントローラは、
前記制御モジュールに適用する更新ファームウェアを取得し、
前記更新ファームウェアの版数と前記既定ファームウェアの前記既定版数とを比較し、
比較の結果、前記更新ファームウェアの版数と前記既定版数とが不一致の場合、前記更新ファームウェアを用いて、前記複数の記憶装置に格納された前記既定ファームウェアを更新する、
ことを特徴とする、付記１〜３のいずれか１項記載の情報処理装置。
【０１５９】
（付記５）
前記既定版数は、前記制御モジュールによるストレージグループの構成管理用の情報を記憶する管理領域に格納される、
ことを特徴とする、付記１〜４のいずれか１項記載の情報処理装置。
【０１６０】
（付記６）
前記管理領域はＤＤＦ（Disk Data Format）で定義された領域であり、
前記既定版数は、前記管理領域における未使用領域に格納される、
ことを特徴とする、付記５記載の情報処理装置。
【０１６１】
（付記７）
前記現用ファームウェアの版数と前記既定版数との比較、並びに、前記比較の結果に応じた、前記プロセッサに対する前記現用ファームウェアの更新の指示は、前記情報処理装置の起動段階において実行される、
ことを特徴とする、付記１〜６のいずれか１項記載の情報処理装置。
【０１６２】
（付記８）
情報処理装置の管理を行なうコントローラに、
複数の記憶装置を制御する制御モジュールに適用されている現用ファームウェアの版数と、前記複数の記憶装置に予め格納された既定ファームウェアの既定版数とを比較し、
比較の結果、前記現用ファームウェアの版数と前記既定版数とが不一致の場合、前記複数の記憶装置に対して前記制御モジュールを介してアクセスするプロセッサに対して、前記制御モジュールに適用されている前記現用ファームウェアを前記既定版数に更新する指示を行なう、
処理を実行させることを特徴とする、制御プログラム。
【０１６３】
（付記９）
前記コントローラに、
前記複数の記憶装置に前記既定ファームウェアが格納されているか否かを判定し、
格納されていない場合、前記制御モジュールに適用されている前記現用ファームウェアを、前記複数の記憶装置に格納する、
処理を実行させることを特徴とする、付記８記載の制御プログラム。
【０１６４】
（付記１０）
前記コントローラに、
前記制御モジュールへの新たな記憶装置の接続が検出された場合、前記複数の記憶装置に格納された前記既定のファームウェアを、前記新たな記憶装置に格納する、
処理を実行させることを特徴とする、付記８又は付記９記載の制御プログラム。
【０１６５】
（付記１１）
前記コントローラに、
前記制御モジュールに適用する更新ファームウェアを取得し、
前記更新ファームウェアの版数と前記既定ファームウェアの前記既定版数とを比較し、
比較の結果、前記更新ファームウェアの版数と前記既定版数とが不一致の場合、前記更新ファームウェアを用いて、前記複数の記憶装置に格納された前記既定ファームウェアを更新する、
処理を実行させることを特徴とする、付記８〜１０のいずれか１項記載の制御プログラム。
【０１６６】
（付記１２）
前記既定版数は、前記制御モジュールによるストレージグループの構成管理用の情報を記憶する管理領域に格納される、
ことを特徴とする、付記８〜１１のいずれか１項記載の制御プログラム。
【０１６７】
（付記１３）
前記管理領域はＤＤＦ（Disk Data Format）で定義された領域であり、
前記既定版数は、前記管理領域における未使用領域に格納される、
ことを特徴とする、付記１２記載の制御プログラム。
【０１６８】
（付記１４）
前記現用ファームウェアの版数と前記既定版数との比較、並びに、前記比較の結果に応じた、前記プロセッサに対する前記現用ファームウェアの更新の指示は、前記情報処理装置の起動段階において実行される、
ことを特徴とする、付記８〜１３のいずれか１項記載の制御プログラム。
【０１６９】
（付記１５）
情報処理装置の管理を行なうコントローラが、
複数の記憶装置を制御する制御モジュールに適用されている現用ファームウェアの版数と、前記複数の記憶装置に予め格納された既定ファームウェアの既定版数とを比較し、
比較の結果、前記現用ファームウェアの版数と前記既定版数とが不一致の場合、前記複数の記憶装置に対して前記制御モジュールを介してアクセスするプロセッサに対して、前記制御モジュールに適用されている前記現用ファームウェアを前記既定版数に更新する指示を行なう、
ことを特徴とする、制御方法。
【０１７０】
（付記１６）
前記コントローラが、
前記複数の記憶装置に前記既定ファームウェアが格納されているか否かを判定し、
格納されていない場合、前記制御モジュールに適用されている前記現用ファームウェアを、前記複数の記憶装置に格納する、
ことを特徴とする、付記１５記載の制御方法。
【０１７１】
（付記１７）
前記コントローラが、
前記制御モジュールへの新たな記憶装置の接続が検出された場合、前記複数の記憶装置に格納された前記既定のファームウェアを、前記新たな記憶装置に格納する、
ことを特徴とする、付記１５又は付記１６記載の制御方法。
【０１７２】
（付記１８）
前記コントローラが、
前記制御モジュールに適用する更新ファームウェアを取得し、
前記更新ファームウェアの版数と前記既定ファームウェアの前記既定版数とを比較し、
比較の結果、前記更新ファームウェアの版数と前記既定版数とが不一致の場合、前記更新ファームウェアを用いて、前記複数の記憶装置に格納された前記既定ファームウェアを更新する、
ことを特徴とする、付記１５〜１７のいずれか１項記載の制御方法。
【符号の説明】
【０１７３】
１    サーバ
１１    メモリバス
１２    Ｉ２Ｃバス
１３    ＰＣＩｅバス
１４    ケーブル
２    システムボード
２ａ    プロセッサ
２ｂ    メモリ
２１    通信部
２２    ＦＷ更新処理部
３    ＢＭＣ
３１    メモリ部
３１１    ＲＡＩＤ  ＦＷ
３２    ＵＩ管理部
３２１    Ｗｅｂ  ＵＩ部
３２２    ＩＰＭＩ  ＵＩ部
３２３    更新ＦＷ受信部
３３    サーバ内ＩＦ管理部
３３１    プロセッサ監視部
３３２    ＲＡＩＤカード監視部
３３３    ファン／温度センサ監視部
３３４    ＣｏＤ領域アクセス部
３３５    ＦＷ更新指示部
４、４Ａ〜４Ｃ    ＲＡＩＤカード
４１、４１Ａ〜４１Ｃ    ＦＷ
５    記憶装置
５１    ユーザデータ領域
５２    ＣｏＤ領域
５２１    ＲＡＩＤ  ＦＷ
【図１】
2018124618.tif 000003
【図２】
2018124618.tif 000004
【図３】
2018124618.tif 000005
【図４】
2018124618.tif 000006
【図５】
2018124618.tif 000007
【図６】
2018124618.tif 000008
【図７】
2018124618.tif 000009
【図８】
2018124618.tif 000010
【図９】
2018124618.tif 000011
【図１０】
2018124618.tif 000012
【図１１】
2018124618.tif 000013
【図１２】
2018124618.tif 000014
【図１３】
2018124618.tif 000015
【図１４】
2018124618.tif 000016
【図１５】
2018124618.tif 000017