(57)【要約】【課題】間欠障害に起因するスループットの低下を抑制することを可能とするコンピュータシステムなどを提供する。【解決手段】複数のパス３０ａ〜ｂを介してストレージデバイスに接続するコンピュータ本体１０は、各々のパスに接続するＨＢＡ１２ａ〜ｂと、ＨＢＡの各々に対する電力供給を制御する電源制御部１３と、Ｉ／Ｏを発行するＩ／Ｏ発行制御手段１５と、時刻をカウントして設定した時刻が経過するとタイムアウトを通知するタイマー１４とを有し、Ｉ／Ｏ発行制御手段は、発行したＩ／Ｏに対してエラーの発生が検出されたら、待機系のＨＢＡに対する電力供給を開始してから同一のＩ／Ｏを再発行し、これでさらにエラーの発生が検出されたら待機系と現用系のパスを切り替え、タイムアウトの通知を受けた際に待機系のＨＢＡに対する電力供給を停止する。【選択図】図１
2010198353.tif 000002
【特許請求の範囲】
【請求項１】
複数のパスの各々に接続する複数のＨＢＡ（ホストバスアダプタ）を有するコンピュータ本体と、前記複数のパスの各々に対応して接続する複数のコントローラを有するストレージデバイスとからなるコンピュータシステムであって、
前記コンピュータ本体は、前記複数のＨＢＡの各々に対する電力の供給を制御する電源制御部と、前記複数のパスのいずれにＩ／Ｏ（入出力命令）を発行するかを決定して前記Ｉ／Ｏを発行するＩ／Ｏ発行制御手段と、時刻をカウントして設定した時刻が経過するとタイムアウトを前記Ｉ／Ｏ発行制御手段に通知するタイマーとを有し、
前記Ｉ／Ｏ発行制御手段は、前記複数のパスのうちの１つ以上を現用系とし、前記複数のパスのうち前記現用系でないものを待機系とする現用系選択部と、前記電源制御部を制御して前記待機系のパスに対しては該パスに接続するＨＢＡに対する電力供給を停止する電力供給制御部と、前記電力供給制御部が前記待機系のパスに接続するＨＢＡに対する電力供給を開始する場合にこれと共に前記タイマーを起動するタイマー起動部と、前記現用系のパスに対してＩ／Ｏを発行するＩ／Ｏ発行部とを備え、
前記Ｉ／Ｏ発行部が、発行した前記Ｉ／Ｏに対してエラーの発生が検出されたら、前記電力供給制御部に前記待機系のパスに接続するＨＢＡに対する電力供給を開始させてから前記現用系のパスに対して同一の前記Ｉ／Ｏを再発行し、これに対してエラーの発生が検出されなければ前記タイマーから前記タイムアウトの通知を受けた際に前記待機系のパスに接続するＨＢＡに対する電力供給を停止する機能を備えたことを特徴とするコンピュータシステム。
【請求項２】
前記Ｉ／Ｏ発行部は、前記再発行されたＩ／Ｏに対してさらにエラーの発生が検出されたら、前記タイマー起動部に前記タイマーを停止させると共に前記現用系選択部に前記待機系のパスを新たに現用系のパスとして選択させ、その後に該パスに同一の前記Ｉ／Ｏを改めて発行する機能を備えたことを特徴とする、請求項１に記載のコンピュータシステム。
【請求項３】
前記Ｉ／Ｏ発行部は、前記現用系のパスに対して再発行した前記同一のＩ／Ｏに対してさらにエラーの発生が検出された際に、前記待機系のパスに接続するＨＢＡが起動したことを確認してから前記現用系選択部に前記待機系のパスを新たに現用系のパスとして選択させる機能を備えたことを特徴とする、請求項２に記載のコンピュータシステム。
【請求項４】
前記タイマー起動部は、前記Ｉ／Ｏ発行部が発行した前記Ｉ／Ｏに対してエラーの発生が検出された際に、前記タイマーが起動しているか否かを確認し、起動していれば該タイマーを一旦停止して改めて起動する機能を備えたことを特徴とする、請求項１に記載のコンピュータシステム。
【請求項５】
前記Ｉ／Ｏ発行部は、前記現用系のパスに対して再発行した前記同一のＩ／Ｏに対してさらにエラーの発生が検出された際に、前記現用系選択部に前記現用系のパスを新たに待機系のパスとしてとして選択させてから前記電力供給制御部に該パスに接続するＨＢＡに対する電力供給を停止させる機能を備えたことを特徴とする、請求項１に記載のコンピュータシステム。
【請求項６】
複数のパスを介してストレージデバイスに接続するコンピュータ本体であって、
前記複数のパスの各々に接続する複数のＨＢＡ（ホストバスアダプタ）と、
前記複数のＨＢＡの各々に対する電力供給を制御する電源制御部と、
前記複数のパスのいずれにＩ／Ｏ（入出力命令）を発行するかを決定して前記Ｉ／Ｏを発行するＩ／Ｏ発行制御手段と、
時刻をカウントして設定した時刻が経過するとタイムアウトを前記Ｉ／Ｏ発行制御手段に通知するタイマーとを有し、
前記Ｉ／Ｏ発行制御手段は、前記複数のパスのうちの１つ以上を現用系とし、前記複数のパスのうち現用系でないものを待機系とする現用系選択部と、前記電源制御部を制御して前記待機系のパスに対しては該パスに接続するＨＢＡに対する電力供給を停止する電力供給制御部と、前記電力供給制御部が前記待機系のパスに接続するＨＢＡに対する電力供給を開始する場合にこれと共に前記タイマーを起動するタイマー起動部と、前記現用系のパスに対してＩ／Ｏを発行するＩ／Ｏ発行部とを備え、
前記Ｉ／Ｏ発行部が、発行した前記Ｉ／Ｏに対してエラーの発生が検出されたら、前記電力供給制御部に前記待機系のパスに接続するＨＢＡに対する電力供給を開始させてから前記現用系のパスに対して同一の前記Ｉ／Ｏを再発行し、これに対してエラーの発生が検出されなければ前記タイマーから前記タイムアウトの通知を受けた際に前記待機系のパスに接続するＨＢＡに対する電力供給を停止する機能を備えたことを特徴とするコンピュータ本体。
【請求項７】
前記Ｉ／Ｏ発行部は、前記再発行されたＩ／Ｏに対してさらにエラーの発生が検出されたら、前記タイマー起動部に前記タイマーを停止させると共に前記現用系選択部に前記待機系のパスを新たに現用系のパスとして選択させ、その後に該パスに同一の前記Ｉ／Ｏを改めて発行する機能を備えたことを特徴とする、請求項６に記載のコンピュータ本体。
【請求項８】
複数のパスの各々に接続する複数のＨＢＡ（ホストバスアダプタ）を有するコンピュータ本体と、前記複数のパスの各々に対応して接続する複数のコントローラを有するストレージデバイスとからなるコンピュータシステムにあって、前記ＨＢＡに対する電力の供給を制御する方法であって、
現用系選択部が、前記複数のパスのうちの１つ以上を現用系とし、前記複数のパスのうち現用系でないものを待機系とし、
電力供給制御部が、前記待機系のパスに接続するＨＢＡに対する電力供給を停止し、
Ｉ／Ｏ発行部が、前記現用系のパスに対してＩ／Ｏ（入出力命令）を発行し、
発行した前記Ｉ／Ｏに対してエラーの発生が検出されたら、前記Ｉ／Ｏ発行部が前記電力供給制御部に前記待機系のパスに接続するＨＢＡに対する電力供給を開始させ、同時にタイマー起動部にタイマーを起動させてから前記現用系のパスに対して同一の前記Ｉ／Ｏを再発行し、
前記Ｉ／Ｏの再発行に対してエラーの発生が検出されなかったら、前記タイマー起動部が前記タイマーから前記タイムアウトの通知を受けた際に前記電力供給制御部が前記待機系のパスに接続するＨＢＡに対する電力供給を停止することを特徴とする電力供給制御方法。
【請求項９】
前記現用系のパスに対して再発行した前記同一のＩ／Ｏに対してさらにエラーの発生が検出された際に、前記現用系選択部が前記現用系のパスを新たに待機系のパスとして選択すると共に前記タイマー起動部が前記タイマーを停止し、その後に前記Ｉ／Ｏ発行部が該パスに同一の前記Ｉ／Ｏを改めて発行することを特徴とする、請求項８に記載の電力供給制御方法。
【請求項１０】
複数のパスの各々に接続する複数のＨＢＡ（ホストバスアダプタ）を有し、前記複数のパスを介してストレージデバイスに接続するコンピュータ本体にあって、
前記コンピュータ本体に、
前記複数のパスのうちの１つ以上を現用系とし、前記複数のパスのうち現用系でないものを待機系とする手順と、
前記待機系のパスに接続するＨＢＡに対する電力供給を停止する手順と、
前記現用系のパスに対してＩ／Ｏ（入出力命令）を発行する手順と、
発行した前記Ｉ／Ｏに対してエラーの発生が検出されたら、前記待機系のパスに接続するＨＢＡに対する電力供給を開始し、同時にタイマーを起動してから前記現用系のパスに対して同一の前記Ｉ／Ｏを再発行する手順と、
前記Ｉ／Ｏの再発行に対してさらにエラーの発生が検出されなかったら、前記タイマーから前記タイムアウトの通知を受けた際に前記待機系のパスに接続するＨＢＡに対する電力供給を停止する手順と
を実行させることを特徴とする電力供給制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ本体と記憶装置との間でパスを冗長化した構成のコンピュータシステムに関し、特にこのようなコンピュータシステムにおける消費電力の削減に関する。
【背景技術】
【０００２】
高可用性を求めるサーバシステムなどのようなコンピュータシステムで、特定のストレージデバイスへのチャネル（パス）を複数用意しているケースがある。この構成をとる場合の目的には２つあり、１つは特許文献１のような冗長化、もう一つは特許文献２にあるような負荷分散である。
【０００３】
図５は、特許文献１などに記載された通常の冗長パスを有するコンピュータシステム４０１の構成を示す説明図である。コンピュータシステム４０１は、コンピュータ本体４１０とストレージデバイス４２０との間が、冗長化のため複数のパス（伝送経路）４３０ａおよび４３０ｂで接続されて構成される。
【０００４】
コンピュータ本体４１０は、プログラムを実行して構成部品の全てを制御する主体であるＣＰＵ（Central Processing Unit）４１１と、ＣＰＵ４１１の制御によって動作するデバイスであるＨＢＡ（Host Bus Adapter）４１２ａおよび４１２ｂと、ＣＰＵ４１１が各プログラムおよび一時記憶データを記憶する揮発性記憶装置であるＲＡＭ（Random Access Memory）４１６とを有する。
【０００５】
ＨＢＡ４１２ａおよび４１２ｂはそれぞれ、パス４３０ａおよび４３０ｂを介して、ストレージデバイス４２０と接続する。ＣＰＵ４１１は、コンピュータプログラムであるＩ／Ｏ発行制御手段４１５をＲＡＭ４１６に読み込んで動作させる。Ｉ／Ｏ発行制御手段４１５は、複数のパス４３０ａおよび４３０ｂのうちのいずれのパスにＩ／Ｏ（入出力命令）を発行するかを決定し、実際にそのパスに対してＩ／Ｏを発行する。
【０００６】
ストレージデバイス４２０は、ＨＤＤ（Hard Disk Drive）４２１を装備する大容量外部記憶装置である。ストレージデバイス４２０は、パス４３０ａおよび４３０ｂに対して各々接続するコントローラ４２２ａおよび４２２ｂを有する。以後、ＨＢＡ４１２ａ−パス４３０ａ−コントローラ４２２ａで表される接続系統をパスＡ、ＨＢＡ４１２ｂ−パス４３０ｂ−コントローラ４２２ｂで表される接続系統をパスＢという。また、コンピュータ本体４１０の電源が投入された時点ではパスＡが現用系、パスＢが待機系であるものとする。
【０００７】
図６は、図５に示したコンピュータシステム４０１で、ＨＢＡ４１２ａおよび４１２ｂの初期化の際にＩ／Ｏ発行制御手段４１５が行う動作を示すフローチャートである。コンピュータ本体１０の電源が投入され、ＣＰＵ４１１上でＯＳ（Operating System）が起動する際に、このＩ／Ｏ発行制御手段４１５は図６で示される動作を行う。
【０００８】
ＨＢＡ１２ａおよび１２ｂへの電力供給が始まると（ステップＳ５０１）、Ｉ／Ｏ発行制御手段４１５は各々のＨＢＡの健全性、即ち正しく動作するか否かを確認する（ステップＳ５０２）。続いてＩ／Ｏ発行制御手段４１５は、健全性が確認されたＨＢＡの中のいずれか一つを「現用系ＨＢＡ」として決定する（ステップＳ５０３）。健全性が確認されたＨＢＡで「現用系ＨＢＡ」でないものは「待機系ＨＢＡ」となる。
【０００９】
図７は、図５に示したコンピュータシステム４０１で、現用系であるパスＡに障害が発生した際にＩ／Ｏ発行制御手段４１５が行うパス切り替え処理の動作を示すフローチャートである。Ｉ／Ｏ発行制御手段４１５がストレージデバイス４２０に対してＩ／Ｏを発行するたびに、図７に示した動作を行う。
【００１０】
Ｉ／Ｏ発行制御手段４１５がストレージデバイス４２０に対して（即ち「現用系ＨＢＡ」であるＨＢＡ４１２ａに対して）Ｉ／Ｏを発行し（ステップＳ６０１）、そのＩ／Ｏに対してエラーが発生したか否かを確認する（ステップＳ６０２）。エラーが発生していなければ、このＩ／Ｏは正常終了したものとして、処理を継続する（ステップＳ６０６）。
【００１１】
ステップＳ６０２でエラーの発生が検出されたら、Ｉ／Ｏ発行制御手段４１５は「現用系ＨＢＡ」であるＨＢＡ４１２ａ（パスＡ）に対して、同一のＩ／Ｏを再び発行（リトライ）して成功したか否かを確認する（ステップＳ６０３）。再発行したＩ／Ｏが成功した場合には、エラーが復旧したものとして、ステップＳ６０６に進んで処理を継続する。
【００１２】
ステップＳ６０３のリトライ処理でもエラーが復旧しなかった場合、Ｉ／Ｏ発行制御手段４１５はＨＢＡ４１２ｂ（パスＢ）を「現用系ＨＢＡ」とし、ＨＢＡ４１２ａ（パスＡ）を待機系として（ステップＳ６０４）、ステップＳ６０１でＨＢＡ４１２ａ（パスＡ）に対して発行したＩ／Ｏと同一のＩ／Ｏを、新たに現用系となったＨＢＡ４１２ｂ（パスＢ）に対して改めて発行する（ステップＳ６０５）。以後、ステップＳ６０２から処理を継続する。
【００１３】
これに関連する技術文献として、次の各々の特許文献がある。特許文献２には、前述したように、図５〜７で説明したものと同様に複数のパスを備えた構成を負荷分散のために使用しているストレージサブシステムが記載されている。特許文献３には、複数の仮想計算機で共有されるストレージ装置で、使用されていない計算機資源の電源を切断するという技術が記載されている。ただしこれは、記憶装置側の各部位の電源を制御するものであり、コンピュータ本体側のインターフェイスは常時通電されている。
【００１４】
特許文献４には、コンピュータ本体と記憶装置との間でパスを冗長化した構成を有するコンピュータシステムで、動作していない待機系への電力供給を停止して節電を図るという技術が記載されている。特許文献５には、業務系と待機系という別々のコンピュータ装置で、業務系用と待機系用の共有ディスクを各々のコンピュータ装置で切り替えて使用できる系切り替え装置を備えた二重系システムが記載されている。特許文献６には、複数の共有メモリを備える系で、一つの運用系メモリの内容を予備系メモリに転送して使用するという技術が記載されている。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００５−２９３５９５号公報
【特許文献２】特開２００８−００９４９７号公報
【特許文献３】特開２００８−１０２６６７号公報
【特許文献４】特開２００７−１９３７１１号公報
【特許文献５】特開２０００−０９９３６０号公報
【特許文献６】特開２００７−２７４２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
図５〜７で説明した、コンピュータ本体と記憶装置との間でパスを冗長化した構成を有するコンピュータシステム４０１では、異常が発生した際にすぐに現用系と待機系とを切り替えることができるように、ＨＢＡ４１２ａおよび４１２ｂには常に通電されていることが普通である。
【００１７】
このようなコンピュータシステムで、消費電力の削減のため、利用されていない待機系ＨＢＡに対して通電しない構成とすることは容易に考えられる。実際、特許文献４には、コンピュータ本体と記憶装置との間でパスを冗長化した構成を有するコンピュータシステムで、動作していない待機系への電力供給を停止して節電を図るという技術が既に開示されている。
【００１８】
しかしながら、伝送系統に発生しうる障害には、たとえばコネクタの接触不良などのように短時間で断続的に発生する間欠障害も多くある。待機系への電力供給を停止するコンピュータシステムで、間欠障害が頻繁に発生すると、そのたびごとに運用系と待機系を切り替えて待機系への電力供給を停止する動作を行うことになる。
【００１９】
電力供給を停止されていた待機系のＨＢＡに再び電力供給を開始しても、該ＨＢＡが利用可能な状態になるまでには少なくとも数秒〜十数秒程度の時間が必要である。そのため、運用系と待機系との切り替えが頻繁に発生すると、運用系と待機系のいずれのＨＢＡも動作していない時間が長くなり、その結果として伝送系統のスループット（単位時間あたりの実効転送量）を大きく低下させることとなる。
【００２０】
また、ＨＢＡに電力供給を開始してから利用可能となるまでの間は、突入電流などの影響で時間当たりの消費電力が増加する。このため、ＨＢＡに常に通電して待機している場合と比べて、大きな節電効果を期待できないという問題もある。さらに、ＨＢＡに対して電力の供給と停止を必要以上に繰り返すと、電気的ストレスなどによって該ＨＢＡの製品寿命を縮めるという問題もある。
【００２１】
しかしながら、特許文献１〜６のいずれにも、これらのような間欠障害に対して運用系と待機系との切り替えが頻繁に発生することに起因する問題点について考慮し、解決しようとしている技術は記載されていない。
【００２２】
本発明の目的は、コンピュータ本体と記憶装置との間でパスを冗長化した構成のコンピュータシステムで、消費電力を削減しつつ、間欠障害に起因するスループットの低下などの問題の発生を抑制することを可能とするコンピュータシステム、コンピュータ本体、ＨＢＡに対する電力供給制御方法およびそのプログラムを提供することにある。
【課題を解決するための手段】
【００２３】
上記目的を達成するため、本発明に係るコンピュータシステムは、複数のパスの各々に接続する複数のＨＢＡ（ホストバスアダプタ）を有するコンピュータ本体と、複数のパスの各々に対応して接続する複数のコントローラを有するストレージデバイスとからなるコンピュータシステムであって、コンピュータ本体は、複数のＨＢＡの各々に対する電力の供給を制御する電源制御部と、複数のパスのいずれにＩ／Ｏ（入出力命令）を発行するかを決定してＩ／Ｏを発行するＩ／Ｏ発行制御手段と、時刻をカウントして設定した時刻が経過するとタイムアウトをＩ／Ｏ発行制御手段に通知するタイマーとを有し、Ｉ／Ｏ発行制御手段は、複数のパスのうちの１つ以上を現用系とし、複数のパスのうち現用系でないものを待機系とする現用系選択部と、電源制御部を制御して待機系のパスに対しては該パスに接続するＨＢＡに対する電力供給を停止する電力供給制御部と、電力供給制御部が待機系のパスに接続するＨＢＡに対する電力供給を開始する場合にこれと共にタイマーを起動するタイマー起動部と、現用系のパスに対してＩ／Ｏを発行するＩ／Ｏ発行部とを備え、Ｉ／Ｏ発行部が、発行したＩ／Ｏに対してエラーの発生が検出されたら、電力供給制御部に待機系のパスに接続するＨＢＡに対する電力供給を開始させてから現用系のパスに対して同一のＩ／Ｏを再発行し、これに対してエラーの発生が検出されなければタイマーからタイムアウトの通知を受けた際に待機系のパスに接続するＨＢＡに対する電力供給を停止する機能を備えたことを特徴とする。
【００２４】
上記目的を達成するため、本発明に係るコンピュータ本体は、複数のパスの各々に接続する複数のＨＢＡ（ホストバスアダプタ）と、複数のＨＢＡの各々に対する電力供給を制御する電源制御部と、複数のパスのいずれにＩ／Ｏ（入出力命令）を発行するかを決定してＩ／Ｏを発行するＩ／Ｏ発行制御手段と、時刻をカウントして設定した時刻が経過するとタイムアウトをＩ／Ｏ発行制御手段に通知するタイマーとを有し、Ｉ／Ｏ発行制御手段は、複数のパスのうちの１つ以上を現用系とし、複数のパスのうち現用系でないものを待機系とする現用系選択部と、電源制御部を制御して待機系のパスに対しては該パスに接続するＨＢＡに対する電力供給を停止する電力供給制御部と、電力供給制御部が待機系のパスに接続するＨＢＡに対する電力供給を開始する場合にこれと共にタイマーを起動するタイマー起動部と、現用系のパスに対してＩ／Ｏを発行するＩ／Ｏ発行部とを備え、Ｉ／Ｏ発行部が、発行したＩ／Ｏに対してエラーの発生が検出されたら、電力供給制御部に待機系のパスに接続するＨＢＡに対する電力供給を開始させてから現用系のパスに対して同一のＩ／Ｏを再発行し、これに対してエラーの発生が検出されなければタイマーからタイムアウトの通知を受けた際に待機系のパスに接続するＨＢＡに対する電力供給を停止する機能を備えたことを特徴とする。
【００２５】
上記目的を達成するため、本発明に係る電力供給制御方法は、複数のパスの各々に接続する複数のＨＢＡ（ホストバスアダプタ）を有するコンピュータ本体と、複数のパスの各々に対応して接続する複数のコントローラを有するストレージデバイスとからなるコンピュータシステムにあって、ＨＢＡに対する電力の供給を制御する方法であって、現用系選択部が、複数のパスのうちの１つ以上を現用系とし、複数のパスのうち現用系でないものを待機系とし、電力供給制御部が、待機系のパスに接続するＨＢＡに対する電力供給を停止し、Ｉ／Ｏ発行部が、現用系のパスに対してＩ／Ｏ（入出力命令）を発行し、発行したＩ／Ｏに対してエラーの発生が検出されたら、Ｉ／Ｏ発行部が電力供給制御部に待機系のパスに接続するＨＢＡに対する電力供給を開始させ、同時にタイマー起動部にタイマーを起動させてから現用系のパスに対して同一のＩ／Ｏを再発行し、Ｉ／Ｏの再発行に対してさらにエラーの発生が検出されたら、現用系選択部が待機系のパスを新たに現用系のパスとしてから、Ｉ／Ｏ発行部が同一のＩ／Ｏを改めて発行し、タイマー起動部がタイマーからタイムアウトの通知を受けた際に電力供給制御部が待機系のパスに接続するＨＢＡに対する電力供給を停止することを特徴とする。
【００２６】
上記目的を達成するため、本発明に係る電力供給制御プログラムは、複数のパスの各々に接続する複数のＨＢＡ（ホストバスアダプタ）を有し、複数のパスを介してストレージデバイスに接続するコンピュータ本体にあって、コンピュータ本体に、複数のパスのうちの１つ以上を現用系とし、複数のパスのうち現用系でないものを待機系とする手順と、待機系のパスに接続するＨＢＡに対する電力供給を停止する手順と、現用系のパスに対してＩ／Ｏ（入出力命令）を発行する手順と、発行したＩ／Ｏに対してエラーの発生が検出されたら、待機系のパスに接続するＨＢＡに対する電力供給を開始し、同時にタイマーを起動してから現用系のパスに対して同一のＩ／Ｏを再発行する手順と、Ｉ／Ｏの再発行に対してさらにエラーの発生が検出されたら、待機系のパスを新たに現用系のパスとしてから同一のＩ／Ｏを改めて発行する手順と、タイマー起動部がタイマーからタイムアウトの通知を受けた際に待機系のパスに接続するＨＢＡに対する電力供給を停止する手順とを実行させることを特徴とする。
【発明の効果】
【００２７】
本発明は、上述したように、エラーが発生して同一のパスに同一のＩ／Ｏを再発行する際にタイマーを起動し、タイムアウトの通知を受けたら待機系のＨＢＡに対する電力供給を停止するように構成したので、短時間で断続的に発生する間欠障害に対しても必要以上に電力の供給開始と停止とを繰り返すことがない。これによって、消費電力を削減しつつ、間欠障害に起因するスループットの低下などの問題の発生を抑制することが可能であるという、優れた特徴を持つコンピュータシステム、コンピュータ本体、ＨＢＡに対する電力供給制御方法およびそのプログラムを提供することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態に係るコンピュータシステムの構成を示す説明図である。
【図２】図１に示したコンピュータシステムで、ＨＢＡの初期化の際にＩ／Ｏ発行制御手段が行う動作を示すフローチャートである。
【図３】図１に示したコンピュータシステムで、現用系であるパスＡに障害が発生した際にＩ／Ｏ発行制御手段が行うパス切り替え処理の動作を示すフローチャートである。
【図４】図１に示したコンピュータシステムで、タイマーがタイムアウトした際にＩ／Ｏ発行制御手段が行う動作を示すフローチャートである。
【図５】通常の冗長パスを有するコンピュータシステムの構成を示す説明図である。
【図６】図５に示したコンピュータシステムで、ＨＢＡの初期化の際にＩ／Ｏ発行制御手段が行う動作を示すフローチャートである。
【図７】図５に示したコンピュータシステムで、現用系であるパスに障害が発生した際にＩ／Ｏ発行制御手段が行うパス切り替え処理の動作を示すフローチャートである。
【発明を実施するための形態】
【００２９】
（第１の実施形態）
以下、本発明の第１の実施形態の構成について添付図１〜２に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係るコンピュータシステム１は、複数のパス３０ａ〜ｂの各々に接続する複数のＨＢＡ（ホストバスアダプタ）１２ａ〜ｂを有するコンピュータ本体１０と、複数のパスの各々に接続する複数のコントローラ２２ａ〜ｂを有するストレージデバイスとで構成される。コンピュータ本体１０は、複数のＨＢＡ１２ａ〜ｂの各々に対する電力の供給を制御する電源制御部１３と、複数のパスのいずれにＩ／Ｏ（入出力命令）を発行するかを決定してＩ／Ｏを発行するＩ／Ｏ発行制御手段１５と、時刻をカウントして設定した時刻が経過するとタイムアウトをＩ／Ｏ発行制御手段に通知するタイマー１４とを有する。Ｉ／Ｏ発行制御手段１５は、複数のパスのうちの１つ以上を現用系とし、複数のパスのうち現用系でないものを待機系とする現用系選択部１５ｃと、電源制御部を制御して待機系のパスに対しては該パスに接続するＨＢＡに対する電力供給を停止する電力供給制御部１５ａと、待機系のパスに接続するＨＢＡに対する電力供給を開始する場合にこれと共にタイマー１４を起動するタイマー起動部１５ｂと、現用系のパスに対してＩ／Ｏを発行するＩ／Ｏ発行部１５ｄとを備え、Ｉ／Ｏ発行部１５ｄが、発行したＩ／Ｏに対してエラーの発生が検出されたら、電力供給制御部に待機系のパスに接続するＨＢＡに対する電力供給を開始させてから現用系のパスに対して同一のＩ／Ｏを再発行し、これに対してエラーの発生が検出されなければタイマーからタイムアウトの通知を受けた際に待機系のパスに接続するＨＢＡに対する電力供給を停止する。
【００３０】
また、Ｉ／Ｏ発行部１５ｄは、再発行されたＩ／Ｏに対してさらにエラーの発生が検出されたら、タイマー起動部１５ｂにタイマー１４を停止させると共に現用系選択部に待機系のパスを新たに現用系のパスとして選択させ、その後に該パスに同一のＩ／Ｏを改めて発行する。
【００３１】
ここで、Ｉ／Ｏ発行部１５ｄは、現用系のパスに対して再発行した同一のＩ／Ｏに対してさらにエラーの発生が検出された際に、待機系のパスに接続するＨＢＡが起動したことを確認してから現用系選択部１５ｃに待機系のパスを新たに現用系のパスとして選択させる。さらに、タイマー起動部１５ｂは、Ｉ／Ｏ発行部１５ｄが発行したＩ／Ｏに対してエラーの発生が検出された際に、タイマー１４が起動しているか否かを確認し、起動していれば該タイマーを一旦停止して改めて起動する。
【００３２】
そして、Ｉ／Ｏ発行部１５ｄは、現用系のパスに対して再発行した同一のＩ／Ｏに対してさらにエラーの発生が検出された際に、現用系選択部１５ｃに現用系のパスを新たに待機系のパスとしてとして選択させてから電力供給制御部に該パスに接続するＨＢＡに対する電力供給を停止させる。
【００３３】
以上の構成を備えることにより、短時間で断続的に発生する間欠障害に対しても必要以上に運用系と待機系との切り替えを発生させずに動作を継続させることが可能となる。
以下、これをより詳細に説明する。
【００３４】
図１は、本発明の実施形態に係るコンピュータシステム１の構成を示す説明図である。コンピュータシステム１は、コンピュータ本体１０とストレージデバイス２０との間が複数のパス（伝送経路）３０ａおよび３０ｂで接続されて構成される。パス３０ａおよび３０ｂは、ファイバチャネル、ＳＣＳＩ、シリアルＡＴＡなどのようなインターフェイスによる接続である。
【００３５】
コンピュータ本体１０は、プログラムを実行して構成部品の全てを制御する主体であるＣＰＵ１１と、ＣＰＵ１１の制御によって動作するデバイスであるＨＢＡ１２ａおよび１２ｂ、電源制御部１３、タイマー１４と、ＣＰＵ１１が各プログラムおよび一時記憶データを記憶する揮発性記憶装置であるＲＡＭ１６とを有する。コンピュータ本体１０はこれら以外にも多くのデバイスによって構成されているが、ここでは本発明を説明するのに必要なデバイスについてのみ説明する。
【００３６】
ＨＢＡ１２ａおよび１２ｂはそれぞれ、パス３０ａおよび３０ｂを介して、ストレージデバイス２０と接続する。電源制御部１３は、ＣＰＵ１１の制御に基づいて、ＨＢＡ１２ａおよび１２ｂに対する電力供給を制御する。タイマー１４は、ＣＰＵ１１の制御に基づいて時刻をカウントし、設定した時刻が経過するとタイムアウトをＣＰＵ１１に通知する。図１ではタイマー１４をＣＰＵ１１外部でハードウェア的な手段で実現されるものとして表記したが、これをＣＰＵ１１上でソフトウェア的に実現されるものとしてもよい。
【００３７】
ＣＰＵ１１は、本発明に係るコンピュータプログラムであるＩ／Ｏ発行制御手段１５をＲＡＭ１６に読み込んで動作させる。Ｉ／Ｏ発行制御手段１５は、電力供給制御部１５ａ、タイマー起動部１５ｂ、現用系決定部１５ｃ、Ｉ／Ｏ発行部１５ｄといった各機能部を有する。
【００３８】
このうち電力供給制御部１５ａは、電源制御部１３を制御してＨＢＡ１２ａおよび１２ｂに対する電力供給の開始および停止を制御する。タイマー起動部１５ｂは、タイマー１４を制御して時刻の設定およびカウントの開始および停止を行う。また、現在タイマー１４が起動中であるか否かの確認も行い、タイマー１４からのタイムアウトの通知も受ける。
【００３９】
現用系決定部１５ｃは、ＨＢＡ１２ａおよび１２ｂに接続された複数のパス３０ａおよび３０ｂのうちのいずれを現用系として使用するかを決定する。Ｉ／Ｏ発行部１５ｄは、現用系として決定したそのパスに対して実際にＩ／Ｏを発行する。また、発行したＩ／Ｏが成功したか否かの確認も行う。
【００４０】
ストレージデバイス２０は、ＨＤＤ２１を装備する大容量外部記憶装置である。ストレージデバイス２０は、パス３０ａおよび３０ｂに対して各々接続するコントローラ２２ａおよび２２ｂを有する。以後、ＨＢＡ１２ａ−パス３０ａ−コントローラ２２ａで表される接続系統をパスＡ、ＨＢＡ１２ｂ−パス３０ｂ−コントローラ２２ｂで表される接続系統をパスＢという。また、以後の説明では、コンピュータ本体１０の電源が投入された時点ではパスＡが現用系、パスＢが待機系であるものとする。
【００４１】
図２は、図１に示したコンピュータシステム１で、ＨＢＡ１２ａおよび１２ｂの初期化の際にＩ／Ｏ発行制御手段１５が行う動作を示すフローチャートである。コンピュータ本体１０の電源が投入され、ＣＰＵ１１上でＯＳ（Operating System）が起動する際に、このＩ／Ｏ発行制御手段１５は図２で示される動作を行う。
【００４２】
まず電力供給制御部１５ａが電源制御部１３を制御してＨＢＡ１２ａおよび１２ｂへの電力供給を開始すると（ステップＳ１０１）、現用系決定部１５ｃが各々のＨＢＡの健全性、即ち正しく動作するか否かを確認する（ステップＳ１０２）。現用系決定部１５ｃは、健全性が確認されたＨＢＡの中のいずれかを「現用系ＨＢＡ」として決定する（ステップＳ１０３）。そして、現用系決定部１５ｃは健全性が確認されたＨＢＡで「現用系ＨＢＡ」でないものを「待機系ＨＢＡ」として、電力供給制御部１５ａに該ＨＢＡへの電力供給を停止させる（ステップＳ１０４）。
【００４３】
これで、現用系ＨＢＡにのみ電力が供給され、それ以外の待機系ＨＢＡには電力は供給されないという状態になる。本実施形態の場合では、初期化が完了した直後は現用系ＨＢＡであるＨＢＡ１２ａ（パスＡ）にのみ電力が供給され、待機系ＨＢＡであるＨＢＡ１２ｂ（パスＢ）には電力は供給されない。
【００４４】
図３は、図１に示したコンピュータシステム１で、現用系であるパスＡに障害が発生した際にＩ／Ｏ発行制御手段１５が行うパス切り替え処理の動作を示すフローチャートである。Ｉ／Ｏ発行部１５ｄがストレージデバイス２０に対してＩ／Ｏを発行するたびに、図３に示した動作を行う。
【００４５】
Ｉ／Ｏ発行部１５ｄがストレージデバイス２０に対して（即ち「現用系ＨＢＡ」であるＨＢＡ１２ａに対して）Ｉ／Ｏを発行し（ステップＳ２０１）、そのＩ／Ｏに対してエラーが発生したか否かを確認する（ステップＳ２０２）。エラーが発生していなければ、このＩ／Ｏは正常終了したものとして、処理を継続する（ステップＳ２１３）。
【００４６】
ステップＳ２０２でエラーの発生が検出されたら、タイマー起動部１５ｂはタイマー１４が動作しているか否かを確認し（ステップＳ２０３）、動作していればこのタイマー１４の動作をキャンセル（取り消し）して（ステップＳ２０４）、ステップＳ２０６に進む。ステップＳ２０３でタイマー１４が動作していなければ、「待機系ＨＢＡ」であるＨＢＡ１２ｂへの電力供給を開始して（ステップＳ２０５）、ステップＳ２０６に進む。
【００４７】
その後、タイマー起動部１５ｂはタイマー１４を起動して（ステップＳ２０６）、Ｉ／Ｏ発行部１５ｄが「現用系ＨＢＡ」であるＨＢＡ１２ａ（パスＡ）に対して、同一のＩ／Ｏを再び発行（リトライ）して成功したか否かを確認する（ステップＳ２０７）。
【００４８】
前述のステップＳ２０５でＨＢＡ１２ｂへの電力供給を開始されても、それからＨＢＡ１２ｂが利用可能となるまでには、前述のように少なくとも数秒〜十数秒程度の時間を要する。この間に、ステップＳ２０７のリトライ処理を行うことによって、スループットの低下を抑制することができる。ステップＳ２０７のリトライ処理で再発行したＩ／Ｏが成功した場合には、エラーが復旧したものとして、ステップＳ２１３に進んで処理を継続する。ここで、ステップＳ２０６でタイマー１４が起動していた場合には、そのタイマー１４の動作もそのまま継続される。
【００４９】
ステップＳ２０７のリトライ処理でもエラーが復旧しなかった場合、タイマー起動部１５ｂがタイマー１４の動作をキャンセル（停止）し（ステップＳ２０８）、Ｉ／Ｏ発行部１５ｄは「待機系ＨＢＡ」のＨＢＡ１２ｂが利用可能となるのを待つ（ステップＳ２０９）。ＨＢＡ１２ｂが利用可能となれば、現用系決定部１５ｃはＨＢＡ１２ｂ（パスＢ）を現用系とし、ＨＢＡ１２ａ（パスＡ）を待機系とする（ステップＳ２１０）。
【００５０】
そして、この現用系と待機系の入れ替えの後、電力供給制御部１５ａが待機系となったＨＢＡ１２ａへの電力供給を停止し（ステップＳ２１１）、Ｉ／Ｏ発行部１５ｄはステップＳ２０１でＨＢＡ１２ａ（パスＡ）に対して発行したＩ／Ｏと同一のＩ／Ｏを、新たに現用系となったＨＢＡ１２ｂ（パスＢ）に対して改めて発行する（ステップＳ２１２）。以後、ＨＢＡ１２ｂ（パスＢ）に対してステップＳ２０２から前述の処理を繰り返す。
【００５１】
図４は、図１に示したコンピュータシステム１で、タイマー１４がタイムアウトした際にＩ／Ｏ発行制御手段１５が行う動作を示すフローチャートである。前述のステップＳ２０６でタイマー１４が起動した後、ステップＳ２０７のリトライ処理でエラーが復旧した場合、ＨＢＡ１２ａ（パスＡ）が変わらず現用系として動作を継続するので、タイマー１４の設定時刻が経過すればタイムアウトが発生する。
【００５２】
タイマー１４でタイムアウトが発生し、タイマー起動部１５ｂがその旨の通知を受けると、これに反応した電力供給制御部１５ａが、ステップＳ２０５で電力供給を開始したけど結局そのまま使用していなかったＨＢＡ１２ｂへの電力供給を停止する（ステップＳ３０１）。
【００５３】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。本発明に係る電力供給制御方法は、複数のパスの各々に接続する複数のＨＢＡ（ホストバスアダプタ）を有するコンピュータ本体と、複数のパスの各々に接続する複数のコントローラを有するストレージデバイスとが、複数のパスで接続されてなるコンピュータシステムにあって、ＨＢＡに対する電力の供給を制御する方法であって、現用系選択部が、複数のパスのうちの１つ以上を現用系とし（図２：ステップＳ１０３）、複数のパスのうち現用系でないものを待機系とし、電力供給制御部が、電源制御部を制御して待機系のパスに接続するＨＢＡに対する電力供給を停止し（図２：ステップＳ１０４）、Ｉ／Ｏ発行部が、現用系のパスに対してＩ／Ｏを発行し（図３：ステップＳ２０１）、発行したＩ／Ｏに対してエラーの発生が検出されたら（図３：ステップＳ２０２：ＹＥＳ）、Ｉ／Ｏ発行部が電力供給制御部に待機系のパスに接続するＨＢＡに対する電力供給を開始させてから（図３：ステップＳ２０５）現用系のパスに対して同一のＩ／Ｏを再発行し（図３：ステップＳ２０７）、Ｉ／Ｏの再発行に対してエラーの発生が検出されなかったら、タイマー起動部がタイマーからタイムアウトの通知を受けた際に電力供給制御部が待機系のパスに接続するＨＢＡに対する電力供給を停止する（図４：ステップＳ３０１）。
【００５４】
ここでさらに、現用系のパスに対して再発行した同一のＩ／Ｏに対してさらにエラーの発生が検出された際に、現用系選択部が現用系のパスを新たに待機系のパスとして選択すると共に（図３：ステップＳ２１０）タイマー起動部がタイマーを停止し（図３：ステップＳ２０８）、その後にＩ／Ｏ発行部が該パスに同一のＩ／Ｏを改めて発行する（図３：ステップＳ２１２）。
【００５５】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する主体であるＣＰＵ１１に実行させるようにしてもよい。
この構成および動作により、本実施形態は以下のような効果を奏する。
【００５６】
本実施形態は、実質的に動作していない待機系ＨＢＡへの電力供給を停止するので、コンピュータシステム１の節電効果を高めることができる。また、図３のステップＳ２０７で示したリトライ処理の時間により、待機系ＨＢＡへの電力供給を開始してから該待機系ＨＢＡが利用可能になるまでの時間を一部隠蔽しているので、この待機系ＨＢＡが利用可能になるまでの見かけ上の時間を短縮できる。
【００５７】
さらに、間欠障害が頻発した場合も、図３のステップＳ２０７で示したリトライ処理により、この間欠障害が１回のリトライで復旧した場合には現在の現用系の動作をそのまま継続するので、間欠障害が頻発した際に運用系と待機系との切り替えを過剰に繰り返すことはない。従って、スループットの低下など、これに伴う前述の各問題の発生を抑制することができる。
【００５８】
（第１の実施形態の変形例）
ここで、上述の第１の実施形態にはいくつかの変形が存在する。以下、それらの変形例について説明する。
【００５９】
まず、第１の実施形態においてＨＢＡ１２ａおよび１２ｂに対する電力供給の開始および停止と説明した動作を、ＨＢＡ１２ａおよび１２ｂの省電力モードからの復帰および省電力モードへの移行に置き換えることも可能である。このようにすれば、ＨＢＡ１２ａおよび１２ｂの電力供給の開始から利用可能となるまでの時間を短縮することにつながる。
【００６０】
また、現用系でのエラー発生に対して、第１の実施形態では１回のみリトライを行う構成としたが、これを２回以上所定の回数までのリトライを行うようにしてもよい。これに合わせて、タイマー１４に設定されるタイムアウトまでの時間も適宜延長される。
【００６１】
また、図３のステップＳ２１１を省略して、そのかわりにタイマー１４を起動するようにすることもできる。この場合、待機系となったＨＢＡ１２ａへの電力供給は、タイマー１４がタイムアウトすることによって図４のステップＳ３０１で停止されるので、コンピュータシステム１全体においての節電効果が大きく損なわれることはない。
【００６２】
さらに、コンピュータ本体１０とストレージデバイス２０との間のパス３０ａおよび３０ｂの中間に、スイッチなどの中継装置が存在してもよい。この場合、各パス３０ａおよび３０ｂ上のトラフィックに対応して、中継装置側の該当ポートを省電力モードとすることは公知技術であるので、本実施形態の動作に伴う節電効果は該中継装置においても発生しうる。
【００６３】
そして、本実施形態ではパスが２本の例を示したが、これは本発明をわかりやすく説明するために単純な例を示したに過ぎないものであり、パスを３本以上に拡張することも容易にできる。この場合、１本のみのパスを現用系とするだけでなく、複数本のパスを現用系として、その間で負荷分散を実施してもよい。その負荷分散には、任意の公知技術を適用することができる。
【００６４】
これらの変形例の任意の組み合わせも、もちろん本発明の範囲に含まれる。また、これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【産業上の利用可能性】
【００６５】
本発明は、コンピュータ本体と記憶装置との間でパスを冗長化した構成のコンピュータシステムに対して幅広く適用できる。
【符号の説明】
【００６６】
１  コンピュータシステム
１０  コンピュータ本体
１１  ＣＰＵ
１２ａ、１２ｂ  ＨＢＡ（ホストバスアダプタ）
１３  電源制御部
１４  タイマー
１５  Ｉ／Ｏ発行制御手段
１５ａ  電力供給制御部
１５ｂ  タイマー起動部
１５ｃ  現用系決定部
１５ｄ  Ｉ／Ｏ発行部
１６  ＲＡＭ
２０  ストレージデバイス
２１  ＨＤＤ
２２ａ、２２ｂ  コントローラ
３０ａ、３０ｂ  パス
【図１】
2010198353.tif 000003
【図２】
2010198353.tif 000004
【図３】
2010198353.tif 000005
【図４】
2010198353.tif 000006
【図５】
2010198353.tif 000007
【図６】
2010198353.tif 000008
【図７】
2010198353.tif 000009