(57)【要約】【課題】ＲＡＩＤコントローラカードに障害が生じた場合、使用できない時間を短くすることが可能な情報処理装置を提供すること。【解決手段】情報処理装置はＲＡＩＤコントローラカードとプロセッサとを有する。ＲＡＩＤコントローラカードは、第１のモードの場合に、データを分散して複数の第１記憶装置に書き込み、複数の第１記憶装置に書き込まれるデータのパリティを演算し、演算されたパリティを第２記憶装置に書き込む書き込み制御と、前記複数の第１記憶装置に分散されたデータを読み込む読み込み制御とを行う。プロセッサは、第２のモードの場合に、前記書き込み制御および前記読み込み制御を行うプロセッサであって、前記複数の第１記憶装置および前記第２記憶装置とのデータの転送は前記ＲＡＩＤコントローラカードを介して行う。【選択図】    図１
2011248783.tif 000002
【特許請求の範囲】
【請求項１】
拡張スロットを有する基板と、
前記拡張スロットに挿入され、第１のモードの場合に、データを分散して複数の第１記憶装置に書き込み、前記複数の第１記憶装置に書き込まれるデータのパリティを演算し、演算されたパリティを第２記憶装置に書き込む書き込み制御と、前記複数の第１記憶装置に分散されて書き込まれたデータを読み込む読み込み制御とを行うＲＡＩＤコントローラを含むＲＡＩＤコントローラカードと、
前記基板上に設けられ、第２のモードの場合に、前記書き込み制御および前記読み込み制御を行うプロセッサであって、前記複数の第１記憶装置および前記第２記憶装置とのデータの転送は前記ＲＡＩＤコントローラカードを介して行うプロセッサと
を具備する情報処理装置。
【請求項２】
前記ＲＡＩＤコントローラカードは、前記第２のモードの場合に、前記複数の第１記憶装置および前記第２記憶装置と前記プロセッサとのデータの伝送を行うのに必要な前記ＲＡＩＤコントローラカード内のデバイスに選択的に電力を供給する電源コントローラを更に具備する
請求項１に記載の情報処理装置。
【請求項３】
前記第１のモードは、前記ＲＡＩＤコントローラカードに障害が発生していない場合であり、
前記第２のモードは、前記ＲＡＩＤコントローラカードに障害が発生している場合である、
請求項１に記載の情報処理装置。
【請求項４】
前記障害が前記書き込み制御を行うことが可能なものの場合、前記ＲＡＩＤコントローラが前記書き込み制御および前記読み込み制御を行う請求項３に記載の情報処理装置。
【請求項５】
前記第２のモードの場合、前記障害の原因となっているデバイスへの電力の供給を停止する電源コントローラを更に具備する請求項３に記載の情報処理装置。
【請求項６】
前記複数の第１記憶装置および前記第２記憶装置のＩ／Ｏ数を等時間間隔毎に取得し、取得されたＩ／Ｏ数に応じて前記第１のモードと第２のモードとを切り替える切り替え手段を更に具備する請求項１に記載の情報処理装置。
【請求項７】
基板の拡張スロットに挿入されるＲＡＩＤコントローラカードであって、
第１のモードの場合に、データを分散して複数の第１記憶装置に書き込み、複数の第１記憶装置に書き込まれるデータのパリティを演算し、演算されたパリティを第２記憶装置に書き込む書き込み制御と、前記複数の第１記憶装置から読み込む読み込み制御とを行い、
第２のモードの場合に、ＲＡＩＤコントローラカードと通信を行うによって前記書き込み制御および前記読み込み制御を行う前記基板に設けられたプロセッサと前記複数の第１記憶装置および前記第２記憶装置との間のデータの転送を制御する制御を行うコントローラ、
を具備するＲＡＩＤコントローラカード。
【請求項８】
拡張スロットを有する基板と、ＲＡＩＤコントローラを有する前記拡張スロットに挿入されたＲＡＩＤコントローラカードと、前記基板上に設けられたプロセッサとを具備する情報処理装置の制御方法であって、
第１のモードの場合に、データを分散して複数の第１記憶装置に書き込み、複数の第１記憶装置に書き込まれるデータのパリティを演算し、演算されたパリティを第２記憶装置に書き込む書き込み制御と、前記複数の第１記憶装置に分散されたデータを読み込む読み込み制御とを前記ＲＡＩＤコントローラによって行い、
第２のモードの場合に、前記書き込み制御および前記読み込み制御を前記プロセッサによって行い、前記複数の第１記憶装置および前記第２記憶装置とのデータの転送は前記ＲＡＩＤコントローラカードを介して行う
情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＲＡＩＤ（Redundant Array Of Inexpensive Disks）機能を備えた情報処理装置に関する。
【背景技術】
【０００２】
サーバの分野では、データを冗長化して保存するためにＲＡＩＤがよく用いられている。ＲＡＩＤを構成する記憶装置に障害が起きた場合には、障害が起きた記憶装置を正常な記憶装置で置き換えればよい。
【０００３】
ところで、一般的にＲＡＩＤに係わるパリティ計算や記憶装置の管理等の処理は、ＰＣＩ（Peripheral Component Interconnect）−Ｅｘｐｒｅｓｓ等の拡張スロットに挿入されたＲＡＩＤコントローラカードによって行われる。
【０００４】
ＲＡＩＤコントローラカードに障害が生じた場合、ＲＡＩＤコントローラカードは、障害発生時、障害箇所に該当するエラーコードとログを表示、もしくは記録し、動作を停止させる。
【０００５】
通常、ＲＡＩＤコントローラカードの障害発生時には保守員が現場に向かい、ＲＡＩＤコントローラカードを交換する。この間、ＲＡＩＤコントローラカードは停止していて、記憶装置へのアクセスが不可能であり、サーバを使用することができない。また、記憶装置もＲＡＩＤとしてコンフィギュレーションされているため、その他の機器でのアクセスはできない。保守員がサーバの設置場所に到着するまで時間がかかり、サーバが使用できるようになるまで多くの時間を要していた。
【０００６】
ところで、近年、ＣＯ2の放出量を抑制するために、使用電力を削減することが求められている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−４０６１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＲＡＩＤコントローラカードに障害が生じた場合、使用できない時間をできるだけ短くしたいという要望があった。
【０００９】
また、使用電力を削減することが求められている。
【００１０】
本発明の目的は、ＲＡＩＤコントローラカードに障害が生じた場合、使用できない時間を短くすることが可能な情報処理装置を提供することである。
【００１１】
また、本発明の別の目的は、使用電力を削減することが可能な情報処理装置を提供することである。
【課題を解決するための手段】
【００１２】
実施形態によれば、情報処理装置はＲＡＩＤコントローラカードとプロセッサとを有する。ＲＡＩＤコントローラカードは、第１のモードの場合に、データを分散して複数の第１記憶装置に書き込み、複数の第１記憶装置に書き込まれるデータのパリティを演算し、演算されたパリティを第２記憶装置に書き込む書き込み制御と、前記複数の第１記憶装置に分散されたデータを読み込む制御とを行う。プロセッサは、第２のモードの場合に、前記書き込み制御および前記読み込み制御を行うプロセッサであって、前記複数の第１記憶装置および前記第２記憶装置とのデータの転送は前記ＲＡＩＤコントローラカードを介して行う。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態のサーバ装置のシステム構成の一例を示すブロック図。
【図２】第１の実施形態のメイン基板およびＲＡＩＤコントローラカードの外観の一例を示す斜視図。
【図３】第１の実施形態のＲＡＩＤコントローラカードのシステム構成の一例を示すブロック図。
【図４】第１の実施形態のＲＡＩＤコントローラカードに障害が発生した場合の処理の手順の一例を示すフローチャート。
【図５】第１の実施形態のＲＡＩＤコントローラカードに障害が発生した場合の処理の手順の一例を示すフローチャート。
【図６】第２の実施形態の情報処理装置のシステム構成を示すブロック図。
【図７】第２の実施形態のＲＡＩＤコントローラカードのシステム構成をの一例を示すブロック図。
【図８】第２の実施形態のハードウェアモードとソフトウェアモードとを切り替える処理の手順の一例を示すフローチャート。
【図９】第２の実施形態のハードウェアモードとソフトウェアモードとを切り替える処理の手順の一例を示すフローチャート。
【発明を実施するための形態】
【００１４】
以下、実施の形態について図面を参照して説明する。
【００１５】
（第１の実施形態）
図１を参照して第１の実施形態に係わる情報処理装置を説明する。情報処理装置は、コンピュータサーバとして実現されている。  
図１は、コンピュータサーバ１０のシステム構成を示すブロック図である。図１に示すように、コンピュータサーバ１０は、ＣＰＵ１１、ノースブリッジ１２、主メモリ１３、グラフィックスコントローラ１４、ＶＲＡＭ１４Ａ、サウスブリッジ１６、ＢＩＯＳ−ＲＯＭ１７、ＲＡＩＤコントローラカード１８、およびハードディスクドライブ（ＨＤＤ）１９等を備えている。
【００１６】
ＣＰＵ１１は、コンピュータサーバ１０内の各部の動作を制御するプロセッサである。ＣＰＵ１１は、ＨＤＤ１９から主メモリ１３にロードされるオペレーティングシステムや、このオペレーティングシステムの制御下で動作する各種プログラムを実行する。また、ＣＰＵ１１は、ＢＩＯＳ−ＲＯＭ１７に格納された基本入出力システム（ＢＩＯＳ）も実行する。なお、以下では、このＢＩＯＳ−ＲＯＭ１７に格納された基本入出力システム自体をＢＩＯＳと称することがある。
【００１７】
ノースブリッジ１２は、ＣＰＵ１１のローカルバスとサウスブリッジ１６との間を接続するブリッジデバイスである。ノースブリッジ１２は、バスを介してグラフィックスコントローラ１４との通信を実行する機能を有しており、また、主メモリ１３をアクセス制御するメモリコントローラも内蔵されている。グラフィックスコントローラ１４は、本１０側のディスプレイ１５を制御する表示コントローラである。グラフィックスコントローラ１４は、ＶＲＡＭ１４Ａに書き込まれた画像データからディスプレイ１５に送出すべき映像信号を生成する。
【００１８】
サウスブリッジ１６は、ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスの各種デバイスを制御するコントローラである。また、このサウスブリッジ１６には、ＢＩＯＳ−ＲＯＭ１７が直接的に接続され、これらを制御する機能も有している。
【００１９】
図２は、ＣＰＵ１１および主メモリ１３等が実装されるメイン基板およびＲＡＩＤコントローラカード１８を示す斜視図である。
【００２０】
図２に示すように、メイン基板１０１上に複数の拡張スロット１０４、１０５が設けられている。拡張スロット１０４、１０５にはＰＣＩｅバスが接続される。なお、拡張スロット１０４には８レーン以下のＰＣＩ  Ｅｘｐｒｅｓｓ拡張カードが挿入することができ、拡張スロット１０５には１６レーン以下のＰＣＩ  Ｅｘｐｒｅｓｓ拡張カードが挿入することができる。図２に示すように、拡張スロット１０４には、ＲＡＩＤコントローラカード１８を構成する拡張基板２００のコネクタ部２０６が挿入されている。
【００２１】
コンピュータサーバ１０は、ＲＡＩＤコントローラカード１８に障害が発生した場合に、通常の動作モードであるハードウェアモードから、ハードウェアセーフモードまたはソフトウェアセーフモードに切り替えられる。通常、ＲＡＩＤコントローラカード１８に障害が発生すると、ＲＡＩＤコントローラカード１８は機能を停止し、コンピュータサーバ１０も動作しなくなる。コンピュータサーバ１０は、ハードウェアセーフモードまたはソフトウェアセーフモードに切り替えることによって、コンピュータサーバ１０を稼働し続けることが可能である。
【００２２】
ハードウェアセーフモードでは、障害の原因であるデバイスが停止されている。また、ソフトウェアセーフモードでは、パリティの演算等の書込み処理、および読み込み処理がＣＰＵ１１によって行われる。
【００２３】
次に、ＲＡＩＤコントローラカード１８のシステム構成について図３を参照して説明する。ＲＡＩＤコントローラカード１８は、プロセッサコントローラ３０１、ＰＣＩｅコントローラ３０２、ＳＡＳ／Ｓ−ＡＴＡコントローラ３０３、拡張ＢＩＯＳ−ＲＯＭ３０４、揮発性メモリ３１１、不揮発性メモリバックアップモジュール３１２、温度／電圧監視モジュール３１３、第１不揮発性メモリ３２１、第２不揮発性メモリ３２２、第３不揮発性メモリ３２３、ブザー３３１、表示パネル３３２、および電源コントローラ３３３等を備えている。
【００２４】
プロセッサコントローラ３０１は、不揮発性メモリ３２１に格納されたファームウェア３２１１または不揮発性メモリ３２２に格納されたファームウェア３２２１を実行する。ハードウェアモードおよびハードウェアセーフモードの場合、プロセッサコントローラ３０１は、２台のＨＤＤ１９にデータを分散して書き込み、２台のハードディスクドライブ１９に書き込まれるデータのパリティを演算し、演算されたパリティを１台のハードディスクドライブ１９に書き込む書き込み制御と、２台のハードディスクドライブ１９に分散されて書き込まれたデータを読み込む読み込み制御とを行う。また、ソフトウェアセーフモードの場合、プロセッサコントローラ３０１は、ＣＰＵ１１とＨＤＤ１９との間のデータの転送を制御する。なお、プロセッサコントローラ３０１内にはパリティを計算する回路が設けられている。ファームウェア３２１１を実行する場合、ファームウェア３２１１は揮発性メモリ３１１にロードされる。また、ファームウェア３２２１を実行する場合、ファームウェア３２２１はプロセッサコントローラ３０１内に設けられているメモリにロードされる。
【００２５】
ＰＣＩｅコントローラ３０２は、サウスブリッジ１６との間のデータの伝送を制御するためのＰＣＩ  Ｅｘｐｒｅｓｓインタフェースである。ＳＡＳ／Ｓ−ＡＴＡコントローラ３０３は、ＨＤＤ１９との間のデータの伝送を制御するためのインタフェースである。
【００２６】
拡張ＢＩＯＳ−ＲＯＭ３０４には、ハードウェアモードおよびハードウェアセーフモードの場合にコンピュータサーバ１０の起動時に主メモリ１３にロードされるＨＷ拡張ＢＩＯＳ（HW_Ex._BIOS）３０４が格納されている。また、拡張ＢＩＯＳ−ＲＯＭ３０４１には、ソフトウェアセーフモードの場合にコンピュータサーバ１０の起動時に主メモリ１３にロードされるＳＷ拡張ＢＩＯＳ（SW_Ex._BIOS）３０４２が格納されている。
【００２７】
バックアップモジュール３１２は、メイン基板１０１から供給される電力の電圧値が低下した場合に、揮発性メモリ３１１に電力を供給するためのバッテリ等を備えている。温度／電圧監視モジュール３１３は、バッテリの温度やバッテリの電圧等を監視する。
【００２８】
揮発性メモリ３１１には、ホストからデータをキャッシュするために用いられる。揮発性メモリ３１１は、例えばＤＤＲ２  ＳＤＲＡＭ（Double-Data-Rate2 Synchronous Dynamic Random Access Memory）によって構成されている。
【００２９】
第１不揮発性メモリ３２１にはハードウェアモードおよびハードウェアセーフモード用のファームウェア（ＨＷ＿ＦＷ）３２１１が格納されている。ＲＡＩＤコントローラカード１８の起動時に、通常のハードウェアモードで起動するかを示すハードウェアモードフラグ（ＨＷｎ＿ＦＲＧ）３２１２が設けられている。ＲＡＩＤコントローラカード１８の起動時に、ハードウェアセーフモードで起動するかを示すハードウェアセーフモードフラグ（ＨＷｓ＿ＦＲＧ）３２１３が設けられている。また、第１不揮発性メモリ３２１には、揮発性メモリ３１１、バックアップモジュール３１２、温度／電圧監視モジュール３１３等のＲＡＩＤコントローラカード１８内の各デバイスに電力を供給するかを示す電力供給フラグ（ＰＷ＿ＦＲＧ）３２１４が設けられている。
【００３０】
第２不揮発性メモリ３２２にはソフトウェアセーフモード用のファームウェア３２２１が格納されている。ＲＡＩＤコントローラカード１８の起動時に、ソフトウェアセーフモードで起動するかを示すソフトウェアセーフモードフラグ（ＳＷｓ＿ＦＲＧ）３２２２が設けられている。
【００３１】
通常、第１不揮発性メモリ３２１に格納されているハードウェアモードおよびハードウェアセーフモード用のファームウェア３２１１が実行されるが、コントローラカード１８に故障が生じた場合に、第２不揮発性メモリ３２２に格納されているソフトウェアセーフモード用のファームウェア３２２１が実行される。
【００３２】
第３不揮発性メモリ３２３には、管理情報３２３１が格納されている。管理情報３２３１は、ＲＡＩＤアレイの構成情報やＲＡＩＤアレイに属するＨＤＤ１９の情報等を示す。なお、管理情報３２３１は、各ＨＤＤ１９にも格納されている。
【００３３】
ブザー３３１は、ＲＡＩＤコントローラカード１８に障害が発生した場合に警報を発するために設けられている。また、表示パネル３３２は、障害が発生した場合に障害の原因を示すエラーコードを表示するために設けられている。
【００３４】
次に、図４，５のフローチャートを参照してＲＡＩＤコントローラカード１８に障害が発生した場合の処理の手順を説明する。  
プロセッサコントローラ３０１は、ＲＡＩＤコントローラカード１８に障害が生じたら、障害の原因を特定し、特定された原因を示すエラーコードを表示パネル３３２に表示し、原因をログファイルに記録する（ステップ４０１）。ログファイルは、第３不揮発性メモリ３２３に格納される。
【００３５】
プロセッサコントローラ３０１は、ログファイルを参照し、障害が致命的な物であるかを判定する（ステップ４０２）。
【００３６】
致命的なエラーであると判定された場合（ステップ４０２のＹｅｓ）、プロセッサコントローラ３０１はＲＡＩＤコントローラカード１８の停止させる（ステップ４０３）。致命的なエラーではないと判定された場合（ステップ４０２のＮｏ）、プロセッサコントローラ３０１は、テストモードに移行する（ステップ４０４）。
【００３７】
プロセッサコントローラ３０１は、ＲＡＩＤコントローラカード１８内の各デバイスをテストし、テスト結果とログファイルに記録されたエラーコードとから故障箇所を特定する（ステップ４０６）。
【００３８】
プロセッサコントローラ３０１は、故障箇所が動作しなくても、ＲＡＩＤコントローラカード１８がハードウェアセーフモードで動作可能であるかを判定する（ステップ４０７）。
【００３９】
ハードウェアセーフモードで動作可能な場合（ステップ４０７のＹｅｓ）、プロセッサコントローラ３０１は、第１不揮発性メモリ３２１内のハードウェアモードフラグ３２１２の値をＦａｌｓｅにし、第１不揮発性メモリ３２１内のハードウェアセーフモードフラグ３２１３の値をＴｒｕｅにする（ステップ４０８）。そして、プロセッサコントローラ３０１は、ステップ４０６において特定された故障箇所に対応するデバイスの電力供給フラグ３２１４の値をＦａｌｓｅにする（ステップ４０９）。
【００４０】
ハードウェアセーフモードで動作可能ではない場合（ステップ４０７のＮｏ）、プロセッサコントローラ３０１は、第１不揮発性メモリ３２１内のハードウェアモードフラグ３２１２の値をＦａｌｓｅにし、第２不揮発性メモリ３２２内のソフトウェアセーフモードフラグ３２２２の値をＴｒｕｅにする（ステップ４１０）。
【００４１】
プロセッサコントローラ３０１は、再起動が必要であるかを判定する（ステップ４１１）。再起動が必要ではないと判定された場合（ステップ４１１のＮｏ）、プロセッサコントローラ３０１は、設定を変更して動作を継続する（ステップ４１２）。例えば、温度／電圧監視モジュール３１３が故障したとする。この場合、バックアップモジュール３１２は動作することができない。しかし、揮発性メモリ３１１は動作するので、データの書き込み速度は落ちるが、ハードウェアモードでは動作することができる。この場合は、再起動が必要ではないので、Ｗｒｉｔｅ  Ｂａｃｋ  Ｃａｃｈｅ機能を使わない設定にする。また、バックアップモジュール３１２および温度／電圧監視モジュール３１３への電力の供給を停止する。
【００４２】
また、揮発性メモリ３１１が故障した場合を考える。この場合、ハードウェアテストモードはファームウェアを揮発性メモリ３１１に展開し、自立動作する性質上、揮発性メモリが故障するとハードウェアモードでは起動できない。その場合はソフトウェアモードで動作させる。電力供給フラグ３２１４の値を変更した後、再起動させ、最低限のハードウェアで動作することが可能である。
【００４３】
再起動が必要な場合（ステップ４１１のＹｅｓ）、再起動が行われる（ステップ４１３）。再起動後、コントローラ３０１は、ハードウェアモードフラグ３２１２の値を読み出す。ここでハードウェアモードフラグ３２１２の値はＦａｌｓｅであるので、コントローラ３０１は、ハードウェアセーフモードフラグ３２１３の値を読み出す。ハードウェアセーフモードフラグ３２１３の値がＴｒｕｅであれば、電力供給フラグ３２１４の値を読み出し、電力供給フラグ３２１４の値がＦａｌｓｅのデバイスへの給電を停止するように電源コントローラ３３３に命令する（ステップ４１５）。そして、第１不揮発性メモリ３２１に格納されているファームウェアがメモリ３１１にロードされ、ファームウェアが起動される（ステップ４１６）。そして、ハードウェアモードおよびハードウェアセーフモード用のＨＷ拡張ＢＩＯＳ３０４１が主メモリ１３にロードされる（ステップ４１７）。また、ＲＡＩＤコントローラカード１８に対応するＰＣＩコンフィギュレーション内にＲＡＩＤコントローラカード１８の動作モードがハードウェアセーフモードであることを示す情報が記録される。
【００４４】
ハードウェアセーフモードフラグ３２１３の値がＦａｌｓｅであれば、コントローラ３０１はソフトウェアセーフモードフラグ３２２２の値を読み出す。ソフトウェアセーフモードフラグ３２２２の値がＴｒｕｅであれば（ステップ４１４のＮｏ）、コントローラ３０１はソフトウェアセーフモードの実行に最低限必要なデバイス以外のデバイスへの給電を停止するように電源コントローラ３３３に命令する（ステップ４１８）。そして、第２不揮発性メモリ３２２に格納されているファームウェア３２２１がコントローラ３０１内のメモリにロードされ、プロセッサコントローラ３０１によってファームウェア３２２１が実行される（ステップ４１９）。そして、ソフトウェアモード用のＳＷ拡張ＢＩＯＳ３０４２が主メモリ１３にロード５される（ステップ４２０）。また、ＲＡＩＤコントローラカード１８に対応するＰＣＩコンフィギュレーション内にＲＡＩＤコントローラカード１８の動作モードがソフトウェアセーフモードであることを示す情報が記録される。
【００４５】
その後、オペレーティングシステムが起動する（ステップ４２１）。ＲＡＩＤコントローラカード１８のドライバはＲＡＩＤコントローラカード１８に対応するＰＣＩコンフィギュレーションを参照し、ＲＡＩＤコントローラカード１８の動作モードを取得する。
【００４６】
ＲＡＩＤコントローラカード１８の動作モードがハードウェアセーフモードの場合（ステップ４２２のＹｅｓ）、ＲＡＩＤコントローラカード１８のドライバは、ハードウェアウェアセーフモードで動作する（ステップ４２３）。ＲＡＩＤコントローラカード１８の動作モードがソフトウェアセーフモードの場合（ステップ４２２のＮｏ）、ＲＡＩＤコントローラカード１８のドライバは、ソフトウェアウェアセーフモードで動作する（ステップ４２４）。
【００４７】
以上説明したように、ＲＡＩＤコントローラカード１８に障害が発生しても、ハードウェアセーフモードまたはソフトウェアセーフモードで運用することによって、使用できない時間をできるだけ短くすることが可能になる。
【００４８】
また、ハードウェアモード、ハードウェアセーフモード、ソフトウェアモードの３段階準備し、故障デバイスの種類により削減する機能を選定することで、機能と性能の劣化をなるべく抑えることができる。
【００４９】
（第２の実施形態）  
図６を参照して第２の実施形態に係わる情報処理装置を説明する。情報処理装置は、コンピュータサーバとして実現されている。  
図６は、第２の実施形態の情報処理装置のシステム構成を示すブロック図である。  
図６に示すように、コンピュータサーバ５００は、ＣＰＵ１１、ノースブリッジ１２、主メモリ１３、グラフィックスコントローラ１４、ＶＲＡＭ１４Ａ、サウスブリッジ１６、ＢＩＯＳ−ＲＯＭ１７、ＲＡＩＤコントローラカード５１８、およびハードディスクドライブ（ＨＤＤ）１９等を備えている。なお、図１と同一な部位には同一符号を付し、その説明を省略する。
【００５０】
ＣＰＵ１１は、コンピュータサーバ５００の各種デバイスを総合的に制御する制御装置である。また、ＣＰＵ１１は、主メモリ１３にロードされたオペレーティングシステム５２１および省エネルギーアプリケーション５２２等を実行する。ＲＡＩＤコントローラカード５１８は、複数のインターフェースに接続されたＨＤＤ１９のＲＡＩＤ制御のコントロールを行う。
【００５１】
本実施形態のＲＡＩＤコントローラカード５１８およびコンピュータサーバ５００は二つの動作モードが設定可能である。第１のモード（ハードウェアモード）ではＲＡＩＤコントローラカード１８は通常のハードウェアモードとして動作する。第２のモード（ソフトウェアモード）では、ハードウェアモードからソフトウェアモードに動的に切り替わるモードである。前述した省エネルギーアプリケーション５２２は、ハードウェアモードとソフトウェアモードとを切り替えるためのアプリケーションプログラムである。
【００５２】
動的に切り替わるモードに関しては、予め、自動でＲＡＩＤコントローラカード５１８の負荷を時間軸で記録しておき、それらの情報を元に、負荷の低い時間帯の予測情報を割り出し、現時点前後の負荷状態を確認後、モードの切替を行う機能である。
【００５３】
図７は、第２の実施形態のＲＡＩＤコントローラカード５１８のシステム構成を示すブロック図ある。  
ＲＡＩＤコントローラカード５１８は、プロセッサコントローラ３０１、ＰＣＩｅコントローラ３０２、ＳＡＳ／Ｓ−ＡＴＡコントローラ３０３、拡張ＢＩＯＳ−ＲＯＭ３０４、揮発性メモリ３１１、不揮発性メモリバックアップモジュール３１２、温度／電圧監視モジュール３１３、第１不揮発性メモリ６２１、第２不揮発性メモリ６２２、第３不揮発性メモリ３２３、ブザー３３１、表示パネル３３２、および電源コントローラ３３３等を備えている。なお、図３に示したものと同一な部位には同一符号を付し、詳細な説明を省略する。
【００５４】
第１不揮発性メモリ６２１にはハードウェアモード用のファームウェア（ＨＷ＿ＦＷ）６２１１が格納されている。ＲＡＩＤコントローラカード５１８の起動時に、通常のハードウェアモードで起動するかを示すハードウェアモードフラグ（ＨＷｎ＿ＦＲＧ）６２１２が設けられている。
【００５５】
第２不揮発性メモリ６２２にはソフトウェアセーフモード用のファームウェア６２２１が格納されている。ＲＡＩＤコントローラカード５１８の起動時に、ソフトウェアセーフモードで起動するかを示すソフトウェアセーフモードフラグ（ＳＷｓ＿ＦＲＧ）６２２２が設けられている。
【００５６】
通常、第１不揮発性メモリ６２１に格納されているハードウェアモード用のファームウェア６２１１が実行されるが、ソフトウェアモードの場合に第２不揮発性メモリ６２２に格納されているソフトウェアセーフモード用のファームウェア６２２１が実行される。
【００５７】
次に、図８，９のフローチャートを参照してハードウェアモードとソフトウェアモードとを切り替える処理の手順を説明する。
【００５８】
先ず、オペレーティングシステム５２１の起動後、省エネルギーアプリケーション５２２が起動する（ステップ７１１）。省エネルギーアプリケーション５２２は、一定時間間隔（例えば、１０分）でハードディスクドライブ８のＩ／Ｏ（Input/Output）数をログファイルに記録する（ステップ７１２）。ログファイルは例えばＨＤＤ１９に格納される。ハードディスクドライブ８のＩ／Ｏ数の代わりに、プロセッサコントローラ３０１のＩ／Ｏ数を取得しても良い。
【００５９】
そして、省エネルギーアプリケーション５２２は、ログファイルからタイムテーブルを作成し、どの時間帯にアクセスがあるか、およびそのＩ／Ｏ数を統計化し、あるＩ／Ｏ数の閾値以下が続く所定時間（例えば１時間）をソフトウェアモードの時間とし、ソフトウェアモード以外の時間帯をハードウェアモードとするタイムマップを作成する（ステップ７１３）。
【００６０】
省エネルギーアプリケーション５２２は、現在の動作モードとタイムマップ中の動作モードとが合致しているかを判定する（ステップ７１４）。
【００６１】
合致していないと判定された場合（ステップ７１４のＮｏ）、現在の動作モードがハードウェアモードであるかを判定する（ステップ７１５）。ハードウェアモードであると判定された場合、省エネルギーアプリケーション５２２は、ハードウェアモードフラグ６２１２の値をＦａｌｓｅにし、ソフトウェアモードフラグ６２２２の値をＴｒｕｅにする（ステップ７１６）。ハードウェアモードではないと判定された場合、省エネルギーアプリケーション５２２は、ハードウェアモードフラグ６２１２の値をＴｒｕｅにし、ソフトウェアモードフラグ６２２２の値をＦａｌｓｅにする（ステップ７１７）。
【００６２】
省エネルギーアプリケーション５２２は、現在より前の時間（例えば５分）の間に、アクセスが無いことを確認した後、コンピュータサーバ５００を再起動する（ステップ７１８）。
【００６３】
再起動後、コントローラ３０１は、ハードウェアモードフラグ６２１２の値を読み出す。ハードウェアモードフラグ６２１２の値がＴｒｕｅの場合、第１不揮発性メモリ６２１に格納されているファームウェア６２１１がメモリ３１１にロードされ、ファームウェア６２１１が起動される（ステップ７２０）。そして、ハードウェアモード用のＨＷ拡張ＢＩＯＳ３０４１が主メモリ１３にロードされる（ステップ７２１）。また、ＲＡＩＤコントローラカード１８に対応するＰＣＩコンフィギュレーション内にＲＡＩＤコントローラカード１８の動作モードがハードウェアモードであることを示す情報が記録される。
【００６４】
ハードウェアモードフラグ６２１２の値がＦａｌｓｅであれば、コントローラ３０１はソフトウェアモードフラグ６２２２の値を読み出す。ソフトウェアモードフラグ６２２２の値がＴｒｕｅであれば（ステップ７１９のＮｏ）、コントローラ３０１はソフトウェアモードの実行に最低限必要なデバイス以外のデバイスへの給電を停止するように電源コントローラ３３３に命令する（ステップ７２２）。そして、第２不揮発性メモリ６２２に格納されているファームウェア６２２１がコントローラ３０１内のメモリにロードされ、プロセッサコントローラ３０１によってファームウェア６２２１が実行される（ステップ７２３）。そして、ソフトウェアモード用のＳＷ拡張ＢＩＯＳ３０４２が主メモリ１３にロード５される（ステップ７２４）。また、ＲＡＩＤコントローラカード１８に対応するＰＣＩコンフィギュレーション内にＲＡＩＤコントローラカード１８の動作モードがソフトウェアモードであることを示す情報が記録される。
【００６５】
その後、オペレーティングシステムが起動する（ステップ７２５）。ＲＡＩＤコントローラカード５１８のドライバはＲＡＩＤコントローラカード１に対応するＰＣＩコンフィギュレーションを参照し、ＲＡＩＤコントローラカード１の動作モードを取得する。
【００６６】
ＲＡＩＤコントローラカード１の動作モードがハードウェアモードの場合（ステップ７２６のＹｅｓ）、ＲＡＩＤコントローラカード５１８のドライバは、ハードウェアウェアモードで動作する（ステップ７２７）。ＲＡＩＤコントローラカード５１８の動作モードがソフトウェアモードの場合（ステップ７２６のＮｏ）、ＲＡＩＤコントローラカード５１８のドライバは、ソフトウェアウェアモードで動作する（ステップ７２８）。
【００６７】
ＨＤＤ１９へのＩ／Ｏ数が少ない時間帯にソフトウェアモードにすることで、使用電力を削減することが可能になる。
【００６８】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００６９】
１０…コンピュータサーバ（情報処理装置），１１…ＣＰＵ（プロセッサ），１８…ＲＡＩＤコントローラカード，１９…ハードディスクドライブ，１０１…メイン基板，３０１…プロセッサコントローラ，３３３…電源コントローラ，３２１１…ファームウェア，３２１２…ハードウェアモードフラグ，３２１３…ハードウェアセーフモードフラグ，３２１４…電力供給フラグ，３２２１…ファームウェア，３２２２…ソフトウェアセーフモードフラグ，５００…コンピュータサーバ（情報処理装置），５１８…ＲＡＩＤコントローラカード，５２１…オペレーティングシステム，５２２…省エネルギーアプリケーション，６２１…不揮発性メモリ，６２２…不揮発性メモリ，６２１１…ファームウェア，６２１２…ハードウェアモードフラグ，６２２１…ファームウェア，６２１２…ハードウェアモードフラグ。
【図１】
2011248783.tif 000003
【図２】
2011248783.tif 000004
【図３】
2011248783.tif 000005
【図４】
2011248783.tif 000006
【図５】
2011248783.tif 000007
【図６】
2011248783.tif 000008
【図７】
2011248783.tif 000009
【図８】
2011248783.tif 000010
【図９】
2011248783.tif 000011
【手続補正書】
【提出日】平成23年6月24日(2011.6.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
拡張スロットを有する基板と、
前記拡張スロットに挿入され、第１のモードの場合に、データを分散して複数の第１記憶装置に書き込み、前記複数の第１記憶装置に書き込まれるデータのパリティを演算し、演算されたパリティを第２記憶装置に書き込む書き込み制御と、前記複数の第１記憶装置に分散されて書き込まれたデータを読み込む読み込み制御とを行うＲＡＩＤコントローラを含むＲＡＩＤコントローラカードと、
前記基板上に設けられ、第２のモードの場合に、前記書き込み制御および前記読み込み制御を行うプロセッサであって、前記複数の第１記憶装置および前記第２記憶装置とのデータの転送は前記ＲＡＩＤコントローラカードを介して行うプロセッサと
を具備する情報処理装置。
【請求項２】
前記ＲＡＩＤコントローラカードは、前記第２のモードの場合に、前記複数の第１記憶装置および前記第２記憶装置と前記プロセッサとのデータの伝送を行うのに必要な前記ＲＡＩＤコントローラカード内のデバイスに選択的に電力を供給する電源コントローラを更に具備する
請求項１に記載の情報処理装置。
【請求項３】
前記第１のモードは、前記ＲＡＩＤコントローラカードに障害が発生していない場合であり、
前記第２のモードは、前記ＲＡＩＤコントローラカードに障害が発生している場合である、
請求項１に記載の情報処理装置。
【請求項４】
前記障害が前記書き込み制御を行うことが可能なものの場合、前記ＲＡＩＤコントローラが前記書き込み制御および前記読み込み制御を行う請求項３に記載の情報処理装置。
【請求項５】
前記障害が起きているデバイスへの電力の供給を停止する電源コントローラを更に具備する請求項３に記載の情報処理装置。
【請求項６】
前記複数の第１記憶装置および前記第２記憶装置のＩ／Ｏ数を等時間間隔毎に取得し、取得されたＩ／Ｏ数に応じて前記第１のモードと第２のモードとを切り替える切り替え手段を更に具備する請求項１に記載の情報処理装置。
【請求項７】
基板の拡張スロットに挿入されるＲＡＩＤコントローラカードであって、
第１のモードの場合に、データを分散して複数の第１記憶装置に書き込み、複数の第１記憶装置に書き込まれるデータのパリティを演算し、演算されたパリティを第２記憶装置に書き込む書き込み制御と、前記複数の第１記憶装置から読み込む読み込み制御とを行い、
第２のモードの場合に、ＲＡＩＤコントローラカードと通信を行うによって前記書き込み制御および前記読み込み制御を行う前記基板に設けられたプロセッサと前記複数の第１記憶装置および前記第２記憶装置との間のデータの転送を制御する制御を行うコントローラ、
を具備するＲＡＩＤコントローラカード。
【請求項８】
前記第２のモードの場合に、前記複数の第１記憶装置および前記第２記憶装置と前記プロセッサとのデータの伝送を行うのに必要な前記ＲＡＩＤコントローラカード内のデバイスに選択的に電力を供給する電源コントローラを更に具備する
請求項７に記載のＲＡＩＤコントローラカード。
【請求項９】
前記第１のモードは、前記ＲＡＩＤコントローラカードに障害が発生していない場合であり、
前記第２のモードは、前記ＲＡＩＤコントローラカードに障害が発生している場合である、
請求項７に記載のＲＡＩＤコントローラカード。
【請求項１０】
前記障害が前記書き込み制御を行うことが可能なものの場合、前記ＲＡＩＤコントローラが前記書き込み制御および前記読み込み制御を行う請求項９に記載のＲＡＩＤコントローラカード。
【請求項１１】
前記障害が起きているデバイスへの電力の供給を停止する電源コントローラを更に具備する請求項９に記載のＲＡＩＤコントローラカード。
【請求項１２】
拡張スロットを有する基板と、ＲＡＩＤコントローラを有する前記拡張スロットに挿入されたＲＡＩＤコントローラカードと、前記基板上に設けられたプロセッサとを具備する情報処理装置の制御方法であって、
第１のモードの場合に、データを分散して複数の第１記憶装置に書き込み、複数の第１記憶装置に書き込まれるデータのパリティを演算し、演算されたパリティを第２記憶装置に書き込む書き込み制御と、前記複数の第１記憶装置に分散されたデータを読み込む読み込み制御とを前記ＲＡＩＤコントローラによって行い、
第２のモードの場合に、前記書き込み制御および前記読み込み制御を前記プロセッサによって行い、前記複数の第１記憶装置および前記第２記憶装置とのデータの転送は前記ＲＡＩＤコントローラカードを介して行う
情報処理装置の制御方法。
【請求項１３】
前記ＲＡＩＤコントローラカードは、前記第２のモードの場合に、前記複数の第１記憶装置および前記第２記憶装置と前記プロセッサとのデータの伝送を行うのに必要な前記ＲＡＩＤコントローラカード内のデバイスに選択的に電力を供給する
請求項１２に記載の情報処理装置の制御方法。
【請求項１４】
前記第１のモードは、前記ＲＡＩＤコントローラカードに障害が発生していない場合であり、
前記第２のモードは、前記ＲＡＩＤコントローラカードに障害が発生している場合である、
請求項１２に記載の情報処理装置の制御方法。
【請求項１５】
前記障害が前記書き込み制御を行うことが可能なものの場合、前記ＲＡＩＤコントローラによって前記書き込み制御および前記読み込み制御を行う
請求項１４に記載の情報処理装置の制御方法。
【請求項１６】
前記障害が起きているデバイスへの電力の供給を停止する
請求項１４に記載の情報処理装置の制御方法。
【請求項１７】
前記複数の第１記憶装置および前記第２記憶装置のＩ／Ｏ数を等時間間隔毎に取得し、
取得されたＩ／Ｏ数に応じて前記第１のモードと第２のモードとを切り替える
請求項１２に記載の情報処理装置の制御方法。