(57)【特許請求の範囲】
【請求項１】
接続されている複数のストレージユニットのうち特定のストレージユニットからオペレーティングシステムを読み出して起動し、前記特定のストレージユニットへのアクセスにおいて障害を検出した場合にリブート要求を送信する情報処理装置から、前記リブート要求を受信するリブート要求受信手段と、
前記情報処理装置から前記リブート要求を受信した場合、リブート指示を受信すると再起動し、パス変更指示を受信すると前記オペレーティングシステムの読み出し先を前記複数のストレージユニットのうち前記特定のストレージユニットとは異なるストレージユニットに変更する前記情報処理装置に対して、前記リブート指示と前記パス変更指示とを送信する指示送信手段と
を備えるパス切替装置。
【請求項２】
前記オペレーティングシステムの起動の開始と、前記起動の完了とを検出する起動検出手段と、
前記起動の開始が検出されてから前記起動の完了が検出されるまでの間に前記情報処理装置から前記リブート要求を受信した場合、前記情報処理装置に対して、前記リブート指示と前記パス変更指示とを送信する指示送信手段と
をさらに備える請求項１に記載のパス切替装置。
【請求項３】
前記起動の開始が検出されてから経過した時間を測定する時間測定手段をさらに備え、
前記指示送信手段は、前記起動の開始が検出されてから所定時間が経過したことが測定された場合、前記情報処理装置に前記リブート指示と前記パス変更指示とを送信する
請求項１又は２に記載のパス切替装置。
【請求項４】
前記複数のストレージユニットを備える前記情報処理装置と、
請求項１乃至３のいずれかに記載のパス切替装置と
を含む情報処理システム。
【請求項５】
接続されている複数のストレージユニットのうち特定のストレージユニットからオペレーティングシステムを読み出して起動し、前記特定のストレージユニットへのアクセスにおいて障害を検出した場合にリブート要求を送信する情報処理装置から、前記リブート要求を受信し、
前記情報処理装置から前記リブート要求を受信した場合、リブート指示を受信すると再起動し、パス変更指示を受信すると前記オペレーティングシステムの読み出し先を前記複数のストレージユニットのうち前記特定のストレージユニットとは異なるストレージユニットに変更する前記情報処理装置に対して、前記リブート指示と前記パス変更指示とを送信する
パス切替方法。
【請求項６】
前記オペレーティングシステムの起動の開始と、前記起動の完了とを検出し、
前記起動の開始が検出されてから前記起動の完了が検出されるまでの間に前記情報処理装置から前記リブート要求を受信した場合、前記情報処理装置に対して、前記リブート指示と前記パス変更指示とを送信する
請求項５に記載のパス切替方法。
【請求項７】
前記起動の開始が検出されてから経過した時間を測定し、
前記起動の開始が検出されてから所定時間が経過したことが測定された場合、前記情報処理装置に前記リブート指示と前記パス変更指示とを送信する
請求項５又は６に記載のパス切替方法。
【請求項８】
コンピュータを、
接続されている複数のストレージユニットのうち特定のストレージユニットからオペレーティングシステムを読み出して起動し、前記特定のストレージユニットへのアクセスにおいて障害を検出した場合にリブート要求を送信する情報処理装置から、前記リブート要求を受信するリブート要求受信手段と、
前記情報処理装置から前記リブート要求を受信した場合、リブート指示を受信すると再起動し、パス変更指示を受信すると前記オペレーティングシステムの読み出し先を前記複数のストレージユニットのうち前記特定のストレージユニットとは異なるストレージユニットに変更する前記情報処理装置に対して、前記リブート指示と前記パス変更指示とを送信する指示送信手段と
して動作させるパス切替プログラム。
【請求項９】
コンピュータを、
前記オペレーティングシステムの起動の開始と、前記起動の完了とを検出する起動検出手段と、
前記起動の開始が検出されてから前記起動の完了が検出されるまでの間に前記情報処理装置から前記リブート要求を受信した場合、前記情報処理装置に対して、前記リブート指示と前記パス変更指示とを送信する指示送信手段と
して動作させる請求項８に記載のパス切替プログラム。
【請求項１０】
コンピュータを、
前記起動の開始が検出されてから経過した時間を測定する時間測定手段と、
前記起動の開始が検出されてから所定時間が経過したことが測定された場合、前記情報処理装置に前記リブート指示と前記パス変更指示とを送信する前記指示送信手段と
して動作させる請求項８又は９に記載のパス切替プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置のブートパスを変更する技術に関する。
【背景技術】
【０００２】
情報処理装置のＲＡＳ（Ｒｅｌｉａｂｉｌｉｔｙ、Ａｖａｉｌａｂｉｌｉｔｙ、Ｓｅｒｖｉｃｅａｂｉｌｉｔｙ；信頼性、可用性、保守性）を向上させる技術の一つに、ハードディスク装置の冗長化技術がある。
【０００３】
特許文献１には、ハードディスク装置を冗長化する技術の一例が記載されている。特許文献１のアクセス切替制御装置は、そのアクセス切替装置に接続されたＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）ユニットがフリーズしたか否かを検出する。ＣＰＵユニットがフリーズしたことが検出された場合、そのアクセス切替制御装置は、ＣＰＵユニットに接続されているＨＤＤ（Ｈａｒａｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を、他のＨＤＤに切り替える。そして、そのアクセス切替制御装置は、ＣＰＵユニットに含まれるＣＰＵをリセットすることにより、ＣＰＵユニットを再起動する。アクセス切替制御装置は、例えば、ＣＰＵユニットに接続されているＨＤＣ（Ｈａｒｄ  Ｄｉｓｋ  Ｃｏｎｔｒｏｌｌｅｒ）と、ＨＤＤとの間を接続するバスを制御することにより、ＣＰＵユニットに接続されるＨＤＤの切替を行う。あるいは、異なるＨＤＤが接続された複数のＨＤＣがＣＰＵユニットに接続されている環境において、アクセス切替制御装置は、例えば、ＣＰＵユニットと接続されているＨＤＣを、他のＨＤＣに切り替えることによって、ＣＰＵユニットに接続されるＨＤＤの切替を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２２９７４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１のアクセス切替制御装置は、ＣＰＵユニットがフリーズした場合に、ＣＰＵユニットに接続されるＨＤＤを他のＨＤＤに切り替える。しかし、特許文献１のアクセス切替制御装置は、ＣＰＵユニットがフリーズしない場合、障害が発生していても、ＣＰＵユニットに接続されるＨＤＤを他のＨＤＤに切り替えない。従って、特許文献１のアクセス切替制御装置は、ＣＰＵユニットがフリーズしない場合、ＣＰＵユニットに接続されるＨＤＣを切り替えることはできない。
【０００６】
本発明の目的の一つは、情報処理装置がフリーズしない場合であっても、情報処理装置に接続されたストレージユニットに対して、ブート時にアクセスするパスを切り替えることができるパス切替装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のパス切替装置は、接続されている複数のストレージユニットのうち特定のストレージユニットからオペレーティングシステムを読み出して起動し、前記特定のストレージユニットへのアクセスにおいて障害を検出した場合にリブート要求を送信する情報処理装置から、前記リブート要求を受信するリブート要求受信手段と、前記情報処理装置から前記リブート要求を受信した場合、リブート指示を受信すると再起動し、パス変更指示を受信すると前記オペレーティングシステムの読み出し先を前記複数のストレージユニットのうち前記特定のストレージユニットとは異なるストレージユニットに変更する前記情報処理装置に対して、前記リブート指示と前記パス変更指示とを送信する指示送信手段とを備える。
【０００８】
本発明のパス切替方法は、接続されている複数のストレージユニットのうち特定のストレージユニットからオペレーティングシステムを読み出して起動し、前記特定のストレージユニットへのアクセスにおいて障害を検出した場合にリブート要求を送信する情報処理装置から、前記リブート要求を受信し、前記情報処理装置から前記リブート要求を受信した場合、リブート指示を受信すると再起動し、パス変更指示を受信すると前記オペレーティングシステムの読み出し先を前記複数のストレージユニットのうち前記特定のストレージユニットとは異なるストレージユニットに変更する前記情報処理装置に対して、前記リブート指示と前記パス変更指示とを送信する。
【０００９】
本発明のパス切替プログラムは、コンピュータを、接続されている複数のストレージユニットのうち特定のストレージユニットからオペレーティングシステムを読み出して起動し、前記特定のストレージユニットへのアクセスにおいて障害を検出した場合にリブート要求を送信する情報処理装置から、前記リブート要求を受信するリブート要求受信手段と、前記情報処理装置から前記リブート要求を受信した場合、リブート指示を受信すると再起動し、パス変更指示を受信すると前記オペレーティングシステムの読み出し先を前記複数のストレージユニットのうち前記特定のストレージユニットとは異なるストレージユニットに変更する前記情報処理装置に対して、前記リブート指示と前記パス変更指示とを送信する指示送信手段として動作させる。
【発明の効果】
【００１０】
本発明には、情報処理装置がフリーズしない場合であっても、情報処理装置に接続されたストレージユニットに対して、ブート時にアクセスするパスを切り替えることができるという効果がある。
【図面の簡単な説明】
【００１１】
【図１】図１は、第２の実施形態の情報処理システム１００の構成の例を表す図である。
【図２】図２は、第１の実施形態の情報処理システム１００の構成の例を表す図である。
【図３】図３は、第１の実施形態の変形例である情報処理システム１００Ａの構成を表す図である。
【図４】図４は、ブートパスデータの一例を表す図である。
【図５】図５は、情報処理装置２がブートパス・フェイルオーバを行うか否かを表す値の例である。
【図６】図６は、変更後のブートパスデータの一例を表す図である。
【図７】図７は、障害が発生しない場合における、第１の実施形態のパス切替装置１及び情報処理装置２の動作を表すフローチャートである。
【図８】図８は、情報処理装置２がＯＳの起動中にストールした場合の、パス切替装置１及び情報処理装置２の動作を表すフローチャートである。
【図９】図９は、情報処理装置２がＯＳの起動中にリブート要求を送信した場合における、パス切替装置１及び情報処理装置２の動作を表すフローチャートである。
【図１０】図１０は、パス切替装置１、パス切替装置１Ａ、情報処理装置２、及び情報処理装置２Ａを実現するために使用される、コンピュータ１０００の構成の一例を表す図である。
【発明を実施するための形態】
【００１２】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００１３】
図２は、本実施形態の情報処理システム１００の構成の例を表す図である。
【００１４】
図２を参照すると、本実施形態の情報処理システム１００は、パス切替装置１を備える情報処理装置２を含む。
【００１５】
パス切替装置１は、ブート要求受信部１１と、指示送信部１２と、起動検出部１３と、時間測定部１４とを含む。図２に示すパス切替装置１の構成は、機能の構成を表し、必ずしもパス切替装置１のハードウェア構成と一致するとは限らない。
【００１６】
情報処理装置２は、ＣＰＵ２０１と、ストレージコントローラ２２１と、ストレージコントローラ２２２と、ストレージユニット２３１と、ストレージユニット２３２と、起動制御部２４１と、ブートパス記憶部２５１とを含む。情報処理装置２は、さらに、図２においては示されない可搬ディスクドライブを含んでいてもよい。可搬ディスクドライブは、例えば、ＣＤ／ＤＶＤドライブや他のリムーバブルディスクドライブである。ＣＰＵ２０１は、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）コントローラ２１１を含む。図２に示す情報処理装置２の構成は、機能の構成を表し、必ずしも情報処理装置２のハードウェア構成と一致するとは限らない。
【００１７】
ストレージコントローラ２２１と、ストレージコントローラ２２２は、ＣＰＵ２０１に接続されている。ストレージコントローラ２２１は、さらに、ストレージユニット２３１に接続されている。ストレージコントローラ２２１は、Ｉ／Ｏコントローラ２１１を介したＣＰＵ２０１からの指示に基づき、ストレージユニット２３１に対して読み書きを行う。ストレージコントローラ２２２は、さらに、ストレージユニット２３２に接続されている。ストレージコントローラ２２２は、Ｉ／Ｏコントローラ２１１を介したＣＰＵ２０１からの指示に基づき、ストレージユニット２３２に対して読み書きを行う。
【００１８】
なお、ＣＰＵ２０１は、２個以上存在していてもよい。ＣＰＵ２０１が２個以上存在する場合、ＣＰＵ２０１は、他のＣＰＵ２０１が含むＩ／Ｏコントローラを介して、そのＩ／Ｏコントローラに接続されているストレージコントローラに、ストレージユニットに対する読み書きの指示を行ってもよい。また、Ｉ／Ｏコントローラ２１１は、ＣＰＵ２０１の外部に存在していてもよい。Ｉ／Ｏコントローラは複数のＣＰＵ２０１のいずれかに接続されていてもよい。その場合、ＣＰＵ２０１は、他のＣＰＵ２０１に接続されているＩ／Ｏコントローラを介して、そのＩ／Ｏコントローラに接続されているストレージコントローラに、ストレージユニットに対する読み書きの指示を行ってもよい。複数のＩ／Ｏコントローラが存在していてもよい。ストレージコントローラは、３個以上存在していてもよい。ストレージユニットは、３個以上存在していてもよい。その場合、各ストレージコントローラは、複数のＩ／Ｏコントローラに接続されていてもよい。また、一つのストレージコントローラに、複数のストレージユニットが接続されていてもよい。さらに、一つのストレージユニットが、複数のストレージコントローラによってＩ／Ｏコントローラに接続されていてもよい。各ストレージユニットは、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）及び他の種類の記憶装置である。ストレージユニットは、一つ又は複数の、ＨＤＤ、ＳＳＤ及び他の種類の記憶装置の少なくともいずれかによって構成されるディスクアレイであってもよい。例えば、ストレージユニットは、いずれかの種類のＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋｓ）の技術によって構築された、ディスクアレイであってもよい。ストレージコントローラは、例えば、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ））、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ））、ＦＣ（Ｆｉｂｅｒ  Ｃｈａｎｎｅｌ）、あるいは他の既存の任意の規格に基づき、記憶装置を接続するコントローラであればよい。一部又は全部のストレージユニットが、情報処理装置２の外部に存在し、情報処理装置２に接続されていてもよい。また、パス切替装置１が、起動制御部２４１とブートパス記憶部２５１に少なくともいずれかを含んでいてもよい。
【００１９】
パス切替装置１と情報処理装置２は、互いに接続され、互いに通信可能な別の装置であってもよい。例えば、パス切替装置１が情報処理装置２に接続されていてもよい。
【００２０】
図３は、本実施形態の変形例である情報処理システム１００の構成を表す図である。図３に示す例では、情報処理システム１００Ａは、パス切替装置１と、パス切替装置１に接続された情報処理装置２Ａを含む。
【００２１】
図２を参照すると、ＣＰＵ２０１は、起動制御部２４１により指定されたストレージユニットから、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を、図示されないメモリにロードする。そして、ＣＰＵ２０１は、そのメモリにロードされたＯＳによって制御されて動作する。以下の説明において、ＣＰＵ２０１がストレージユニットからＯＳを読み出し始めることを、ＯＳの起動の開始と表記する。また、ＣＰＵ２０１が、メモリにロードされたＯＳによって制御された動作を始めることを、ＯＳの起動の完了と表記する。ＣＰＵ２０１がＯＳによって制御された動作の開始は、例えば、ＣＰＵ２０１が、メモリにロードされたＯＳのカーネルおよびＯＳのサービスを提供する各ソフトウェアが起動されることである。ＣＰＵ２０１がＯＳによって制御された動作の開始は、例えば、情報処理装置２のスリープ状態が、通常の運用状態に相当する状態になることであってもよい。
【００２２】
ブートパス記憶部２５１は、ストレージユニットがブートパス・フェイルオーバの対象であるか否かを表す値を記憶する。ブートパス記憶部２５１は、ストレージユニットがブートパス・フェイルオーバの対象であるか否かを表す値を、ＯＳが格納されているストレージユニットに関連付けて記憶していればよい。ブートパスは、ＣＰＵ２０１から、ＣＰＵ２０１が読み出すＯＳが格納されているストレージユニットまでの経路を表す。本発明の各実施形態では、各ストレージユニットは、いずれか１個のストレージコントローラと、１個のＩ／Ｏコントローラを介して、ＣＰＵ２０１に接続されている。従って、ストレージユニットに対して、ブートパスは１個に定まる。すなわち、ブートパスはストレージユニットによって特定される。そのため、本発明の各実施形態において、ブートパスは、ＣＰＵ２０１がＯＳを読み出すストレージユニットの識別子によって表される。なお、ブートパスは、例えば、Ｉ／Ｏコントローラの識別子とストレージコントローラの識別子とストレージユニットの識別子の組み合わせなど、ＣＰＵ２０１がストレージユニットにアクセスする経路を特定する他の値によって表されていてもよい。
【００２３】
ブートパス・フェイルオーバは、例えばＣＰＵ２０１がＯＳの読み出しあるいは起動に失敗した場合や、ＯＳが読み出されるブートパスに障害が検出された場合に、ＯＳが読み出されるブートパスを他のブートパスに変更することを表す。本実施形態では、ＯＳが読み出されるブートパスを他のブートパスに変更することは、ＯＳが読み出されるストレージユニットを他のストレージユニットに変更することと同じである。ブートパス・フェイルオーバの対象であるストレージユニットは、ブートパス・フェイルオーバにおいて、ＯＳが読み出されるストレージユニットになることができるストレージユニットを表す。ストレージユニットがブートパス・フェイルオーバの対象であるか否かを表す値は、例えば、Ｙｅｓを表す値とＮｏを表す値のいずれかであればよい。Ｙｅｓを表す値とＮｏを表す値は、例えば、それぞれ１と０である。Ｙｅｓを表す値とＮｏを表す値は、互いに異なる他の値であってもよい。以下では、ストレージユニットがブートパス・フェイルオーバの対象であるか否かを表す値を、対象フラグと表記する。
【００２４】
ブートパス記憶部２５１は、さらに、ストレージユニットのブートオーダを記憶する。ブートパス記憶部２５１は、ストレージユニットのブートオーダを、ＯＳが格納されているストレージユニットに関連付けて記憶していればよい。ブートオーダは、ＣＰＵ２０１がロードするＯＳの読み出し先としての、ストレージユニットの優先順位を表す。
【００２５】
ブートパス記憶部２５１は、例えば、ストレージユニットのブートオーダと対象フラグとを、ＯＳが格納されているストレージユニットの識別子に関連付けて記憶していればよい。例えば、情報処理装置２の管理者が、例えば、図示されない入力装置を使用して、ストレージユニットのブートオーダと対象フラグとを、ストレージユニットの識別子に関連付けてブートパス記憶部２５１に格納すればよい。以下では、ストレージユニットの識別子に関連付けられた、トレージユニットのブートオーダと対象フラグとを、ブートパスデータと表記する。
【００２６】
対象フラグがＹｅｓであるブートパスのストレージユニットには、例えばミラーリングされ、同一の設定の同一のＯＳが格納されていればよい。
【００２７】
図４は、ブートパスデータの一例を表す図である。図４において、「ブートパス」が、ブートパスの識別子である。図４の例では、ブートパスの識別子として、ストレージユニットの識別子が使用されている。ストレージ２３１が、ストレージユニット２３１の識別子である。ストレージ２３２が、ストレージユニット２３２の識別子である。図４において、「フェイルオーバ対象」が、対象フラグである。「フェイルオーバ対象」の値がＹｅｓであるストレージユニットが、ブートパス・フェイルオーバの対象であるストレージユニットである。「フェイルオーバ対象」の値がＮｏであるストレージユニットが存在すれば、そのストレージユニットは、ブートパス・フェイルオーバの対象ではないストレージユニットである。
【００２８】
ところで、図４の例のように、ブートパス記憶部２５１に、可搬ディスクドライブのブートパスデータが含まれていてもかまわない。ただし、通常、可搬ディスクドライブは、ブートパス・フェイルオーバの対象ではない。
【００２９】
ブートパス記憶部２５１は、さらに、情報処理装置２がブートパスのフェイルオーバを行うか否かを表す値を記憶する。
【００３０】
図５は、情報処理装置２がブートパス・フェイルオーバを行うか否かを表す値の例である。図５に示す「フェイルオーバ設定」が、ブートパス・フェイルオーバを行うか否かを表す値である。以下の説明において、情報処理装置２がブートパス・フェイルオーバを行うか否かを表す値を、フェイルオーバ設定と表記する。フェイルオーバ設定は、情報処理装置２がブートパス・フェイルオーバを行うことを表す値と、情報処理装置２がブートパス・フェイルオーバを行わないことを表す値のいずれかをとればよい。図５の例では、情報処理装置２がブートパス・フェイルオーバを行うことを表す値は、Ｅｎａｂｌｅｄと表記される。また、情報処理装置２がブートパス・フェイルオーバを行わないことを表す値は、Ｄｉｓａｂｌｅｄと表記される。Ｅｎａｂｌｅｄの値は、例えば１である。Ｄｉｓａｂｌｅｄの値は、例えば０である。Ｅｎａｂｌｅｄの値と、Ｄｉｓａｂｌｅｄの値は、互いに異なる他の値であってもよい。
【００３１】
起動制御部２４１は、情報処理装置２の電源が投入されると、例えば、まず、情報処理装置２に含まれるデバイスや、情報処理装置２に接続されているデバイスの、検出、初期化、及びチェック等の処理を行う。
【００３２】
そして、起動制御部２４１は、ブートパス記憶部２５１に格納されているブートパスデータに基づき、ＣＰＵ２０１がＯＳを読み出すブートパスを決定する。起動制御部２４１は、例えば、優先順位が最も高いブートパスを、ＣＰＵ２０１がＯＳを読み出すブートパスに決定する。そして、起動制御部２４１は、ＣＰＵ２０１に対して、決定されたブートパスからＯＳを読み出すよう指示する。ＣＰＵ２０１は、起動制御部２４１の指示に従って、決定されたブートパスによって特定される経路で、決定されたブートパスによって特定されるストレージユニットからＯＳをロードし、ＯＳを起動する。
【００３３】
上述のように、本発明の各実施形態ではブートパスはストレージユニットによって定まる。したがって、本実施形態では、起動制御部２４１は、ブートパス記憶部２５１に格納されているブートパスデータに基づき、ＣＰＵ２０１がＯＳを読み出すストレージユニットを決定する。起動制御部２４１は、例えば、ブートパス記憶部２５１に格納されているブートオーダに基づき、優先順位が最も高いストレージユニットを、ＣＰＵ２０１がＯＳを読み出すストレージユニットに決定する。そして、起動制御部２４１は、ＣＰＵ２０１に対して、決定されたストレージユニットからＯＳを読み出すよう指示する。起動制御部２４１は、例えば、ＣＰＵ２０１と、図示されない記憶部に格納されているＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）等のソフトウェアによって実現されてもよい。起動制御部２４１は、例えばＢＭＣ（Ｂａｓｅｂｏａｄ  Ｍａｎａｇｅｍｅｎｔ  Ｃｏｎｔｒｏｌｌｅｒ）等の他のコントローラによって実現されてもよい。起動制御部２４１は、ＢＩＯＳ及びＢＭＣにより実現されていてもよい。
【００３４】
起動制御部２４１は、ＣＰＵ２０１に対して、決定されたブートパスからＯＳを読み出すよう指示する前に、パス切替装置１の起動検出部１３に対して、ＯＳの起動の開始を通知する。起動制御部２４１は、パス切替装置１の起動検出部１３に対して、ＯＳの起動の開始を通知する信号を送信することによって、その通知を行えばよい。ＣＰＵ２０１は、ＯＳの起動が完了すると、起動制御部２４１に対して、ＯＳの起動の完了を通知する。起動制御部２４１に対してＯＳの起動の完了が通知されると、起動制御部２４１は、パス切替装置１の起動検出部１３に対して、ＯＳの起動の完了を通知する。起動制御部２４１は、パス切替装置１の起動検出部１３に対して、ＯＳの起動の完了を通知する信号を送信することによって、その完了を行えばよい。後述されるように、ＯＳの起動の完了の通知は、例えば、システムのスリープ状態を通常の運用状態に変更する要求であってもよい。
【００３５】
上述のように、起動制御部２４１は、情報処理装置２の電源が投入されてから、ＣＰＵ２０１によるＯＳの起動の開始までの間に、ストレージコントローラやストレージユニットのチェックを行う。あるいは、ストレージコントローラが、セルフチェックや、そのストレージコントローラに接続されているストレージユニットのチェックを行う場合もある。これらのチェックによって、優先順位が最も高いブートパスに存在するストレージコントローラやストレージユニットに障害が検出された場合、例えば、起動制御部２４１が、ブートパスの切り替えを行う。すなわち、起動制御部２４１が、ブートパス記憶部２５１に格納されているブートパスデータに基づき、ＣＰＵ２０１がＯＳを読み出すブートパスを、優先順位が次に高い、ブートパス・フェイルオーバの対象であるブートパスに変更する。ストレージコントローラが、ストレージユニットやストレージユニットと通信を行うストレージコントローラの通信機能の故障を認識できる場合、ストレージコントローラが、ブートパス・フェイルオーバを行ってもよい。その場合、ストレージコントローラが、ブートパス・フェイルオーバを行う機能を備える、例えばオプションＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）を備えていればよい。そして、例えば起動制御部２４１が、優先順位が最も高いブートパスや、そのブートパスの代替となるブートパスを、ストレージコントローラが特定できる設定を、ストレージコントローラに対して行っておけばよい。起動制御部２４１は、その設定を、ブートパス記憶部２５１に格納されているブートパスデータに基づき行えばよい。例えば、以上で説明した、起動制御部２４１やストレージコントローラが行う、ブートパス・フェイルオーバの処理を、以下ではＯＳ起動前障害処理と表記する。ＯＳ起動前障害処理は、既存の任意の障害処理方法であってよい。
【００３６】
また、ＯＳの起動が完了し、ＣＰＵ２０１がＯＳによる制御下で動作を開始した後、例えば優先順位が最も高いブートパスに含まれるストレージコントローラやストレージユニットに障害が発生する場合がある。そのような場合、例えば、ＯＳによって制御されるＣＰＵ２０１と、情報処理装置２に含まれるＢＭＣとの少なくともいずれかが、その障害を検出すればよい。そして、例えば、ＯＳによって制御されるＣＰＵ２０１と、情報処理装置２に含まれるＢＭＣとの少なくともいずれかが、生じた障害の修復や、障害が生じたデバイスの切り離しなど、検出された障害に応じてあらかじめ決められた処理である、障害処理を行えばよい。その場合、ＯＳと、情報処理装置２に含まれるＢＭＣとの少なくともいずれかが、ハードウェアに発生する障害を検出する機能や、検出された障害に応じた障害処理を行う機能を備えていればよい。以上の、ＯＳで制御されるＣＰＵ２０１が行う障害処理を、以下ではＯＳ起動後障害処理と表記する。ＯＳ起動後障害処理は、既存の任意の障害処理方法であってよい。
【００３７】
一方、情報処理装置２の電源が投入されてから、ＣＰＵ２０１によるＯＳの起動の開始までの間に行われるチェックによって、優先順位が最も高いブートパスに含まれるストレージコントローラやストレージユニットに生じていた障害が検出されない場合がある。あるいは、ＣＰＵ２０１によるＯＳの起動の開始後に、優先順位が最も高いブートパスに含まれるストレージコントローラやストレージユニットに障害が生じる場合もある。そのような場合、ＯＳの起動の開始前のチェックによって障害が検出されないため、前述の、ＯＳ起動開始前障害処理は行われない。また、障害のために、ＣＰＵ２０１がＯＳによって制御された動作を開始できない場合がある。すなわち、ＯＳの起動が完了しない場合がある。その場合、ＯＳの起動が完了した後に行われる、前述のＯＳ起動後障害処理は行われない。ＯＳの起動の開始後完了前に、障害が顕在化した場合あるいは障害が発生した場合、ＣＰＵ２０１は、ストールすることがある。あるいはこの場合、ＣＰＵ２０１は、例えばＯＳの起動の開始後完了前における初期化中のＯＳの制御や、制御が失われたＣＰＵ２０１の動作によって、再起動を行う要求であるリブート要求を、起動制御部２４１に送信することもある。
【００３８】
起動制御部２４１は、ＣＰＵ２０１からリブート要求を受信すると、パス切替装置１のリブート要求受信部１１に対して、リブート要求を送信する。
【００３９】
起動制御部２４１は、パス切替装置１の指示送信部１２からリブート指示を受信すると、情報処理装置２を再起動する。なお、情報処理装置２は、起動制御部２４１が情報処理装置２を再起動できるように構成されていればよい。
【００４０】
起動制御部２４１は、パス切替装置１の指示送信部１２からパス切替指示を受信する。
起動制御部２４１は、パス切替指示を受信すると、ＣＰＵ２０１がＯＳを読み出すブートパスを、対象フラグがＹｅｓである他のブートパスに変更する。前述のように、起動制御部２４１がＣＰＵ２０１に対してＯＳを読み出すよう指示するブートパスは、ブートパス記憶部２５１にブートパスデータが格納されているブートパスの中で、優先順位が最も高いブートパスである。起動制御部２４１は、パス切替指示を受信すると、ブートパス記憶部２５１に格納されているブートパスデータを、優先順位が最も高いブートパスではない、対象フラグがＹｅｓであるブートパスからＯＳが読み出されるよう変更する。
【００４１】
対象フラグがＹｅｓであるブートパスが２個である場合、起動制御部２４１は、２つのブートパスの優先順位を入れ替えればよい。
【００４２】
図６は、パス切替指示を受信した起動制御部２４１による変更後の、ブートパスデータの一例を表す図である。図４に示すブートパスデータの例では、対象フラグがＹｅｓであるブートパスは２個である。図４に示すブートパスデータがブートパス記憶部２５１に格納されている場合、ＣＰＵ２０１は、優先順位が高い、ストレージ２３１によって表されるブートパスからＯＳを読み出す。この場合、起動制御部２４１は、パス切替指示を受信すると、２つのブートパスの優先順位を入れ替える。その結果、ブートパス記憶部２５１に格納されているブートパスデータは、図６に示すブートパスデータに変更される。
【００４３】
対象フラグがＹｅｓであるブートパスの個数は３個以上であってもよい。その場合、起動制御部２４１は、例えば、優先順位が最も高いブートパスを除くブートパスの中で、対象フラグがＹｅｓであり、優先順位が最も高いブートパスを選択してもよい。そして、起動制御部２４１は、例えば、ブートパスデータの変更前において優先順位が最も高いブートパスの優先順位と、選択されたブートパスの優先順位を入れ替えるよう、ブートパスデータを変更してもよい。あるいは、起動制御部２４１は、例えば、ブートパスデータの変更前において優先順位が最も高いブートパスの優先順位を、全てのブートパスの優先順位の中で最も低くなるよう、変更してもよい。そして、起動制御部２４１は、対象フラグがＹｅｓであるブートパスの中で優先順位が最も高いブートパスの優先順位を、全てのブートパスの中で最も高くなるよう変更してもよい。起動制御部２４１は、他の方法で、変更前に優先順位が最も高いブートパスではない、対象フラグがＹｅｓであるブートパスからＯＳが読み出されるよう、ブートパスデータを変更してもよい。
【００４４】
起動検出部１３は、起動制御部２４１が送信する、ＯＳの起動の開始を通知する信号を検出することによって、ＯＳの起動の開始を検出する。また、起動検出部１３は、起動制御部２４１が送信する、ＯＳの起動の完了を通知する信号を検出することによって、ＯＳの起動の完了を検出する。
【００４５】
時間測定部１４は、起動検出部１３がＯＳの起動の開始を検出すると、ＯＳの起動の開始が検出されてから経過した時間の計測を開始する。また、起動検出部１３がＯＳの起動の完了を検出すると、時間の計測を終了する。
【００４６】
リブート要求受信部１１は、起動制御部２４１からリブート要求を受信する。
【００４７】
指示送信部１２は、リブート要求受信部１１がリブート要求を受信した場合、起動制御部２４１に、リブート指示とパス変更指示とを送信する。指示送信部１２は、起動検出部１３がＯＳの起動の開始を検出した後、ＯＳの起動の完了を検出しない状態で、リブート要求受信部１１がリブート要求を受信した場合、起動制御部２４１に、リブート指示とパス変更指示とを送信すればよい。
【００４８】
指示送信部１２は、起動検出部１３がＯＳの起動の開始を検出した後、ＯＳの起動の完了を検出しない状態で、リブート要求受信部１１がリブート要求を受信した場合、情報処理装置２に発生した障害の種別を解析してもよい。そして、指示送信部１２は、解析の結果に基づき、情報処理装置２に発生した障害が、ブートパスに関係しないハードウェアの障害である、ハードウェア障害であるか否かを判定してもよい。指示送信部１２は、情報処理装置２に発生した障害が、ブートパスに関係しないハードウェアの障害ではないと判定された場合、起動制御部２４１に、リブート指示とパス変更指示とを送信してもよい。
【００４９】
この場合、例えば、起動制御部２４１が、情報処理装置２に発生したイベントを記録していればよい。そして、指示送信部１２は、起動制御部２４１に対して、情報処理装置２に発生したイベントのログの送信を要求すればよい。指示送信部１２は、起動制御部２４１から、情報処理装置２に発生したイベントのログを受信すればよい。起動制御部２４１は、受信したログに、ストレージコントローラ及びストレージユニット以外のハードウェアに生じた障害の記録が含まれる場合、情報処理装置２に発生した障害が、ブートパスに関係しない、ハードウェア障害ではないと判定すればよい。
【００５０】
また、指示送信部１２は、時間測定部１４が時刻の計測を開始してから所定時間が経過した場合、起動制御部２４１に、リブート指示とパス変更指示とを送信する。
【００５１】
指示送信部１２は、時間測定部１４が時刻の計測を開始してから所定時間が経過した場合、情報処理装置２に発生した障害の種別を解析してもよい。そして、指示送信部１２は、解析の結果に基づき、情報処理装置２に発生した障害が、ブートパスに関係しないハードウェアの障害である、ハードウェア障害であるか否かを判定してもよい。指示送信部１２は、情報処理装置２に発生した障害が、ブートパスに関係しないハードウェアの障害ではないと判定された場合、起動制御部２４１に、リブート指示とパス変更指示とを送信してもよい。
【００５２】
次に、本実施形態のパス切替装置１及び情報処理装置２の動作について、図面を参照して詳細に説明する。
【００５３】
図７は、障害が発生しない場合における、本実施形態のパス切替装置１及び情報処理装置２の動作を表すフローチャートである。
【００５４】
情報処理装置２の電源が投入されると、情報処理装置２は動作を開始する。
【００５５】
そして、まず、情報処理装置２はブートを開始する（ステップＳ１０１）。ステップＳ１０１において、起動制御部２４１は、ＣＰＵ２０１がＯＳの起動を開始する前における、情報処理装置２が含むデバイスや、情報処理装置２に接続されているデバイスのチェックなどを行う。
【００５６】
次に、起動制御部２４１は、パス切替装置１の起動検出部１３に、ＯＳの起動の開始を通知する（ステップＳ１０２）。起動制御部２４１は、パス切替装置２の起動検出部１３に、例えば、情報処理装置２のシステム状態が、ＯＳハンドオフになったことを通知することにより、ＯＳの起動の開始を通知する。
【００５７】
起動検出部１３にＯＳの起動の開始が通知されると、起動検出部１３は、ＯＳの起動の開始を検出する（ステップＳ１１１）。
【００５８】
起動検出部１３がＯＳの起動の開始を検出すると、時間測定部１４が、時間の測定を開始する（ステップＳ１１２）。例えば、起動検出部１３が、タイマを起動する。タイマは、ＷＤＴ（Ｗａｔｃｈ  Ｄｏｇ  Ｔｉｍｅｒ）であってもよい。
【００５９】
起動制御部２４１は、ステップＳ１０２の動作の後、ＣＰＵ２０１にブートパスによって特定されるストレージユニットに格納されているＯＳの起動を開始する（ステップＳ１０３）。
【００６０】
ステップＳ１０３において、起動制御部２４１は、ブートパス記憶部２５１に格納されているブートパスデータから、優先順位が最も高いブートパスを特定する。そして、起動制御部２４１は、特定されたブートパスからＯＳを起動するようＣＰＵ２０１に指示する。ＣＰＵ２０１は、そのブートパスによって特定される経路でそのブートパスによって特定されるストレージユニットから、ＯＳを読み出す。ＣＰＵ２０１は、読み出したＯＳを図示されないメモリにロードする。そして、ＣＰＵ２０１は、ＯＳの起動を完了し、メモリにロードされたＯＳの制御による動作を開始する（ステップＳ１０４）。
【００６１】
情報処理装置２がＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）に準拠している場合、起動制御部２４１は、例えば次のように、ＯＳの起動が完了したことを検出してもよい。
【００６２】
情報処理装置２がＡＣＰＩに準拠する場合、ＯＳの制御による動作を開始したＣＰＵ２０１は、例えば、ＡＣＰＩのＳ−Ｓｔａｔｅ（システムスリープ状態）を、Ｓ０に変更する要求を、例えばＢＩＯＳである起動制御部２４１に対して送信する。Ｓ０は、通常の運用状態を表す。起動制御部２４１は、Ｓ−ＳｔａｔｅをＳ０に変更する要求を受信した場合、ＯＳの起動が完了したことを検出すればよい。
【００６３】
ＣＰＵ２０１は、ＯＳの制御による動作を開始すると、Ｓ−ＳｔａｔｅをＳ０に変更する要求ではない、他の信号を送信することにより、ＯＳの起動が完了したことを、起動制御部２４１に対して通知してもよい。
【００６４】
ＯＳの起動が完了したことが検出された場合、起動制御部２４１は、起動検出部１３に、ＯＳの起動の完了を通知する（ステップＳ１０５）。
【００６５】
そして、情報処理装置２は、ＣＰＵ２０１がＯＳによる制御により動作する状態、すなわち、ＯＳが動作している状態になる（ステップＳ１０６）。
【００６６】
起動検出部１３は、ＯＳの起動の完了が通知されると、ＯＳの起動の完了を検出する（ステップＳ１１３）。
【００６７】
起動検出部１３がＯＳの起動の完了を検出すると、時間測定部１４は、ステップＳ１１２において開始した時間の計測を終了する（ステップＳ１１４）。例えば、起動検出部１３が、起動されたタイマを停止する。
【００６８】
ところで、前述のように、ＣＰＵ２０１がＯＳを起動を開始した後、情報処理装置２に障害が発生した場合、ＣＰＵ２０１が正常な動作を続行できない状態になることにより、情報処理装置２が停止したように見える状態になることがある。すなわち、情報処理装置２がストールすることがある。
【００６９】
また、ＣＰＵ２０１がＯＳを起動を開始した後、情報処理装置２に障害が発生した場合、ＯＳを起動する最中における障害処理として、あるいは、障害に起因する誤動作として、ＣＰＵ２０１が、起動検出部１３に、リブート要求を送信することがある。
【００７０】
次に、情報処理装置２がＯＳの起動中にストールした場合における、パス切替装置１及び情報処理装置２の動作について説明する。
【００７１】
図８は、情報処理装置２がＯＳの起動中にストールした場合における、パス切替装置１及び情報処理装置２の動作を表すフローチャートである。
【００７２】
図８における、ステップＳ２０１からステップＳ２０３までの動作は、それぞれ、図７における、ステップＳ１０１からステップＳ１０３までの動作と同じである。また、図８における、ステップＳ２１１とステップＳ２１２における動作は、それぞれ、図７における、ステップＳ１１１とステップＳ１１２における動作と同じである。従って、以上の動作の説明は省略する。
【００７３】
図８を参照すると、情報処理装置２は、ＯＳを起動している最中に、ストールする（ステップＳ２０４）。そのため、ＣＰＵ２０１は、ＯＳの起動を完了しない。そのため、起動制御部２４１は、ＯＳの起動の完了を通知しない。
【００７４】
そのため、起動検出部１３がＯＳの起動の完了を検出することによって、時間測定部１４が、時間の計測を停止させない。そのため、ＯＳの起動の開始が検出されてから、ＯＳの起動の完了が検出されないまま、所定時間が経過することになる（ステップＳ２１３）。例えば指示送信部１２が、時間測定部１４が計測中の時間に基づき、ＯＳの起動が開始されてから経過してから、所定時間が経過したか否かを判定すればよい。
【００７５】
ＯＳの起動が開始されてから経過してから、所定時間が経過すると、指示送信部１２は、情報処理装置２に発生した障害の種類を検出する（ステップＳ２１４）。前述のように、例えば、指示送信部１２が、起動制御部２４１に対して、情報処理装置２に発生したイベントの記録の送信を要求する。その要求を受信した起動制御部２４１は、情報処理装置２が直近の起動又は再起動により動作を開始してから情報処理装置２に発生したイベントの記録を、指示送信部１２に送信する。そして、指示送信部１２は、起動制御部２４１から、情報処理装置２に発生したイベントの記録を受信する。指示送信部１２は、受信した記録に、ブートパスに含まれる各デバイス以外のデバイスにおけるハードウェア障害の記録が含まれているか否かを判定する。起動制御部２４１が記録を送信するイベントは、障害を含む。起動制御部２４１が記録を送信するイベントは、障害だけであってもよい。また、起動制御部２４１が送信するイベントの記録は、起動制御部２４１が検出したイベントの記録であればよい。情報処理装置２に発生したイベントを記録し、要求に応じてイベントの記録を送信する起動制御部２４１の機能は、例えば、前述のＢＭＣによって実現することができる。
【００７６】
受信した記録にそのようなハードウェア障害の記録が含まれている場合、すなわち、ハードウェア障害が検出された場合（ステップＳ２１５においてＹｅｓ）、情報処理システム１００は、通常の障害処理を行う（ステップＳ２１８）。ステップＳ２１８における通常の障害処理は、例えば、発生した障害に応じてあらかじめ定められた、情報処理システム１００のいずれかの構成要素が行う処理であればよい。
【００７７】
なお、起動制御部２４１が、情報処理装置２に発生したイベントの記録を送信する要求を受け付けない状態である場合、指示送信部１２は、ステップＳ２１４とステップＳ２１５の動作を行わなくてよい。指示送信部１２は、例えば、イベントの記録を送信する要求を起動制御部２４１に送信してから経過する時間を、例えば時間測定部１４によって測定すればよい。そして、指示送信部１２は、イベントの記録を送信する要求を送信してからあらかじめ定められた時間が経過した場合に、起動制御部２４１が、情報処理装置２に発生したイベントの記録を送信する要求を受け付けない状態であると判定すればよい。
【００７８】
受信した記録にそのようなハードウェア障害の記録が含まれていない場合、すなわち、ハードウェア障害が検出されない場合（ステップＳ２１５においてＮｏ）、指示送信部１２は、起動制御部２４１に対して、リブート指示を送信する（ステップＳ２１６）。
【００７９】
リブート指示を受信した起動制御部２４１は、例えばＣＰＵ２０１をリセットすることにより、情報処理装置２を再起動する（ステップＳ２０５）。
【００８０】
続いて、指示送信部１２は、起動制御部２４１に対して、パス変更指示を送信する（ステップＳ２１７）。
【００８１】
パス変更指示を受信した起動制御部２４１は、ブートパス記憶部２５１に格納されているブートパスデータを、前述のように変更することにより、ＣＰＵ２０１がＯＳを読み出すブートパスを変更する（ステップＳ２０６）。パス変更指示を受信した起動制御部２４１は、まず、ブートパス記憶部２５１から、図５に例を示すフェイルオーバ設定の値を読み出してもよい。そして、読み出されたフェイルオーバ設定の値が、Ｅｎａｂｌｅｄである場合、起動制御部２４１は、ステップＳ２０６の動作と、後述されるステップＳ２０７の動作を行ってもよい。その場合、読み出されたフェイルオーバ設定の値が、Ｄｉｓａｂｌｅｄである場合、起動制御部２４１は、ステップＳ２０６の動作と、後述されるステップＳ２０７の動作を行わない。
【００８２】
なお、ステップＳ２１６の動作と、ステップＳ２１７の動作の順番は、図８に示す順番の逆の順番でもよい。その場合、起動制御部２４１は、ステップＳ２０５とステップＳ２０６の動作を図８に示す順番と逆の順番で行う。
【００８３】
そして、情報処理装置２は、ブートを開始する（ステップＳ２０７）。起動制御部２４１は、例えば、ＣＰＵ２０１をリセットすることにより、ステップＳ２０７の動作を行ってもよい。
【００８４】
次に、情報処理装置２がＯＳの起動中にリブート要求を送信した場合における、パス切替装置１及び情報処理装置２の動作について説明する。
【００８５】
図９は、情報処理装置２がＯＳの起動中にリブート要求を送信した場合における、パス切替装置１及び情報処理装置２の動作を表すフローチャートである。
【００８６】
図９における、ステップＳ３０１からステップＳ３０３までの動作は、それぞれ、図７における、ステップＳ１０１からステップＳ１０３までの動作と同じである。また、図９における、ステップＳ３１１とステップＳ３１２の動作は、それぞれ、図７における、ステップＳ１１１とステップＳ１１２の動作と同じである。従って、これらの動作の説明を省略する。
【００８７】
図９に示す動作では、ＯＳの起動中に、情報処理装置２に障害が発生し（ステップＳ３０４）、そして、例えばＣＰＵ２０１が起動制御部２４１にリブート要求を送信する。そして、起動制御部２４１は、リブート要求受信部１１に対して、リブート要求を送信する（Ｓ３０５）。
【００８８】
パス切替装置１のリブート要求受信部１１は、起動制御部２４１が送信したリブート要求を受信する（ステップＳ３１３）。
【００８９】
リブート要求受信部１１がリブート要求を受信すると、指示送信部１２は、情報処理装置２に発生した障害の種類を掲出する（ステップＳ３１４）。ステップＳ３１４の動作は、図８におけるステップＳ２１４の動作と同じである。
【００９０】
ハードウェア障害が検出された場合（ステップＳ３１５においてＹｅｓ）、情報処理システム１００は、通常の障害処理を行う（ステップＳ３１８）。ステップＳ３１５及びステップＳ３１８の動作は、それぞれ、図８における、ステップＳ２１５及びステップＳ２１８の動作と同じである。ステップＳ３１５におけるハードウェア障害は、図７に示すステップＳ２１５におけるハードウェア障害と同じである。
【００９１】
ハードウェア障害が検出されない場合（ステップＳ３１５においてＮｏ）、指示送信部１２は、起動制御部２４１に対して、リブート指示を送信する（ステップＳ３１６）。
【００９２】
リブート指示を受信した起動制御部２４１は、例えばＣＰＵ２０１をリセットすることにより、情報処理装置２を再起動する（ステップＳ３０５）。
【００９３】
続いて、指示送信部１２は、起動制御部２４１に対して、パス変更指示を送信する（ステップＳ３１７）。
【００９４】
パス変更指示を受信した起動制御部２４１は、ブートパス記憶部２５１に格納されているブートパスデータを、前述のように変更することにより、ＣＰＵ２０１がＯＳを読み出すブートパスを変更する（ステップＳ３０６）。
【００９５】
そして、情報処理装置２は、ブートを開始する（ステップ３０７）。
【００９６】
ステップＳ３０６からステップＳ３０８までの動作は、それぞれ、図７に示す、ステップＳ２０６からステップＳ２０８までの動作と同じである。また、ステップＳ３１６とステップ３１７の動作は、それぞれ、図７に示す、ステップＳ２１６とステップＳ２１７の動作と同じである。図７に示すステップＳ２１６とステップＳ２１７の動作の順番と同様に、ステップＳ３１６とステップＳ３１７の動作の順番は、図８に示す順番と逆の順番であってもよい。その場合、ステップＳ３０６とステップＳ３０７の動作は、図８に示す順番と逆の順番で行われる。
【００９７】
以上で説明した本実施形態には、情報処理装置２がフリーズしない場合であっても、情報処理装置２に接続されたストレージユニットに対して、ブート時にアクセスするパスを切り替えることができるという第１の効果がある。
【００９８】
その理由は、情報処理装置２からリブート要求が送信された場合、指示送信部１２が、リブート指示に加えて、パス変更指示を送信するからである。パス送信指示を受信した起動制御部２４１は、ＣＰＵ２０１がＯＳを読み出すブートパスを変更する。
【００９９】
本実施形態には、さらに、情報処理装置２が実行するＯＳやアプリケーションがいずれの種類のＯＳやアプリケーションであっても、情報処理装置２がブート時にストレージユニットにアクセスするパスを切り替えることができるという第２の効果がある。
【０１００】
その理由は、リブート要求受信部１１が、情報処理装置２が実行するＯＳやアプリケーションによらず、情報処理装置２に障害が発生したときに送信されうる、リブート要求を受信するからである。そして、リブート要求受信部１１がリブート要求を受信すると、指示送信部１２が、リブート指示に加えて、パス変更指示を送信するからである。パス送信指示を受信した起動制御部２４１は、ＣＰＵ２０１がＯＳを読み出すブートパスを変更する。
【０１０１】
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。
【０１０２】
図１は、本実施形態のパス切替装置１Ａの構成を表すブロック図である。
【０１０３】
図１を参照すると、本実施形態のパス切替装置１Ａは、接続されている複数のストレージユニットのうち特定のストレージユニットからオペレーティングシステムを読み出して起動し、前記特定のストレージユニットへのアクセスにおいて障害を検出した場合にリブート要求を送信する情報処理装置２から、前記リブート要求を受信するリブート要求受信部１１と、前記情報処理装置２から前記リブート要求を受信した場合、リブート指示を受信すると再起動し、パス変更指示を受信すると前記オペレーティングシステムの読み出し先を前記複数のストレージユニットのうち前記特定のストレージユニットとは異なるストレージユニットに変更する前記情報処理装置２に対して、前記リブート指示と前記パス変更指示とを送信する指示送信部１２とを備える。
【０１０４】
以上で説明した本実施形態には、第１の実施形態のそれぞれの効果と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。
【０１０５】
パス切替装置１、パス切替装置１Ａ、情報処理装置２、及び情報処理装置２Ａは、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。
【０１０６】
図１０は、パス切替装置１、パス切替装置１Ａ、情報処理装置２、及び情報処理装置２Ａを実現するために使用される、コンピュータ１０００の構成の一例を表す図である。図１０を参照すると、コンピュータ１０００は、プロセッサ１００１と、メモリ１００２と、記憶装置１００３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インタフェース１００４とを含む。また、コンピュータ１０００は、記録媒体１００５にアクセスすることができる。メモリ１００２と記憶装置１００３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクなどの記憶装置である。記録媒体１００５は、例えば、ＲＡＭ、ハードディスクなどの記憶装置、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、可搬記録媒体である。記憶装置１００３が記録媒体１００５であってもよい。プロセッサ１００１は、メモリ１００２と、記憶装置１００３に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ１００１は、Ｉ／Ｏインタフェース１００４を介して、例えば、ストレージユニットにアクセスすることができる。プロセッサ１００１は、記録媒体１００５にアクセスすることができる。記録媒体１００５には、コンピュータ１０００をパス切替装置１、パス切替装置１Ａ、情報処理装置２、又は情報処理装置２として動作させるプログラムが格納されている。
【０１０７】
プロセッサ１００１は、記録媒体１００５に格納されている、コンピュータ１０００をコンピュータ１０００をパス切替装置１、パス切替装置１Ａ、情報処理装置２、又は情報処理装置２として動作させるプログラムを、メモリ１００２にロードする。そして、プロセッサ１００１が、メモリ１００２にロードされたプログラムを実行することにより、コンピュータ１０００はコンピュータ１０００をパス切替装置１、パス切替装置１Ａ、情報処理装置２、又は情報処理装置２として動作する。
【０１０８】
リブート要求受信部１１、指示送信部１２、起動検出部１３、時間測定部１４、起動制御部２４１は、例えば、プログラムを記憶する記録媒体１００５からメモリ１００２に読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサ１００１により実現することができる。また、ブートパス記憶部２５１は、コンピュータが含むメモリ１００２やハードディスク装置等の記憶装置１００３により実現することができる。あるいは、リブート要求受信部１１、指示送信部１２、起動検出部１３、時間測定部１４、起動制御部２４１、ブートパス記憶部２５１の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
【０１０９】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１１０】
１、１Ａ    パス切替装置
２、２Ａ    情報処理装置
１１    リブート要求受信部
１２    指示送信部
１３    起動検出部
１４    時間測定部
１００、１００Ａ    情報処理システム
２０１    ＣＰＵ
２１１    Ｉ／Ｏコントローラ
２２１、２２２    ストレージコントローラ
２３１、２３２    ストレージユニット
２４１    起動制御部
２５１    ブートパス記憶部
１０００    コンピュータ
１００１    プロセッサ
１００２    メモリ
１００３    記憶装置
１００４    Ｉ／Ｏインタフェース
１００５    記録媒体
【図１】
0005884801.tif 000002
【図２】
0005884801.tif 000003
【図３】
0005884801.tif 000004
【図４】
0005884801.tif 000005
【図５】
0005884801.tif 000006
【図６】
0005884801.tif 000007
【図７】
0005884801.tif 000008
【図８】
0005884801.tif 000009
【図９】
0005884801.tif 000010
【図１０】
0005884801.tif 000011