(57)【要約】      （修正有）【課題】ディスクブートノード及びネットワークブートノードを含む情報処理システムの起動に要する時間を短縮する。【解決手段】情報処理システムは、ＯＳの起動に用いるデータ（起動データ）を管理する第１ノードと、起動データを第１ノードから取得し、ＯＳを起動する第２ノードと、第１ノード及び第２ノードを管理する管理装置とを有する。そして、上記管理装置は、第１ノード及び第２ノードに起動を開始させ、第１ノードの状態を示すデータ（状態データ）を当該第１ノードから取得し、第２ノードから、第１ノードの状態データを要求する第１の要求を受信した場合に、第２ノードに、第１ノードの状態データを送信する。そして、上記第２ノードは、管理装置から受信した、第１ノードの状態データが、当該第１ノードにおけるＯＳの起動完了を示す場合に、起動データを第１ノードから取得し、第２ノードのＯＳを起動する。【選択図】図１１
2015011357.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムの起動に用いるデータを管理する第１のノードと、
前記オペレーティングシステムの起動に用いるデータを前記第１のノードからネットワークを介して取得し、前記オペレーティングシステムを起動する第２のノードと、
前記第１のノード及び前記第２のノードを管理する管理装置と、
を有し、
前記管理装置は、
前記第１のノード及び前記第２のノードに起動を開始させる第１処理部と、
前記第１のノードの状態を示すデータを当該第１のノードから取得する第２処理部と、
前記第２のノードから、前記第１のノードの状態を示すデータを要求する第１の要求を受信した場合に、前記第２のノードに、前記第１のノードの状態を示すデータを送信する第３処理部と、
を有し、
前記第２のノードは、
前記管理装置から受信した、前記第１のノードの状態を示すデータが、当該第１のノードのオペレーティングシステムの起動が完了したことを示す場合に、前記オペレーティングシステムの起動に用いるデータを前記第１のノードから取得し、前記第２のノードのオペレーティングシステムを起動する第４処理部
を有する情報処理システム。
【請求項２】
前記第３処理部が、
取得された前記第１のノードの状態を示すデータが、前記第１のノードのオペレーティングシステムの起動が完了したことを示している場合に、前記第２のノードに、当該第２のノードのオペレーティングシステムを起動することを要求する起動要求を送信する
ことを特徴とする請求項１記載の情報処理システム。
【請求項３】
前記第２のノードは、
前記オペレーティングシステムを起動する前に実行すべき処理を実行する第５処理部
をさらに有し、
前記第４処理部は、
前記管理装置から前記起動要求を受信するまで処理を停止し、前記管理装置から前記起動要求を受信した場合に、前記オペレーティングシステムの起動に用いるデータを前記第１のノードから取得し、前記第２のノードのオペレーティングシステムを起動する
ことを特徴とする請求項２記載の情報処理システム。
【請求項４】
前記第１のノードは、
前記オペレーティングシステムを起動する前に実行すべき処理を実行する第６処理部と、
前記オペレーティングシステムを起動する第７処理部と、
を有する請求項１乃至３のいずれか１つ記載の情報処理システム。
【請求項５】
オペレーティングシステムの起動に用いるデータを管理する第１のノードと、前記オペレーティングシステムの起動に用いるデータを前記第１のノードからネットワークを介して取得し、前記オペレーティングシステムを起動する第２のノードと、前記第１のノード及び前記第２のノードを管理する管理装置とを含む情報処理システムにおける、前記管理装置が、
前記第１のノード及び前記第２のノードに起動を開始させ、
前記第１のノードの状態を示すデータを当該第１のノードから取得し、
前記第２のノードから、前記第１のノードの状態を示すデータを要求する第１の要求を受信した場合に、前記第２のノードに、前記第１のノードの状態を示すデータを送信する
処理を実行する情報処理方法。
【請求項６】
オペレーティングシステムの起動に用いるデータを管理する第１のノードと、前記オペレーティングシステムの起動に用いるデータを前記第１のノードからネットワークを介して取得し、前記オペレーティングシステムを起動する第２のノードとを管理する管理装置のプロセッサに、
前記第１のノード及び前記第２のノードに起動を開始させ、
前記第１のノードの状態を示すデータを当該第１のノードから取得し、
前記第２のノードから、前記第１のノードの状態を示すデータを要求する第１の要求を受信した場合に、前記第２のノードに、前記第１のノードの状態を示すデータを送信する
処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム及び情報処理システムの制御方法に関する。
【背景技術】
【０００２】
近年、データセンタにおいては、マルチノードサーバと呼ばれるサーバが利用されるようになっている。マルチノードサーバに用いられるノードは、従来から利用されているラックマウント型のサーバより高度に集積されることが可能である。そのため、マルチノードサーバの利用によって、データセンタにおける単位スペース当たりの処理能力を向上させることができる。
【０００３】
マルチノードサーバに含まれるノードのうち一部のノードについては、スペースの節約等のため、ＯＳ（Operating System）の起動に用いるデータ（例えばＯＳイメージ）を格納した記憶装置（例えばＨＤＤ（Hard Disk Drive））を有さないことがある。このようなノード（以下、ネットワークブートノードと呼ぶ）は、ＯＳの起動に用いるデータを格納した記憶装置を有するノード（以下、ディスクブートノードと呼ぶ）からネットワークを介してＯＳの起動に用いるデータを取得し、ＯＳを起動する。
【０００４】
ディスクブートノード及びネットワークブートノードを含む情報処理システムの起動時間の短縮に関して、以下のような技術が知られている。具体的には、ＯＳのブートが完了したノードの主記憶装置に格納されているＯＳのデータを順次他のノードの主記憶装置にコピーすることによって、情報処理システムに含まれるノードにおけるＯＳのブートを完了する。
【０００５】
しかし、たとえこの技術を利用したとしても、情報処理システムの起動時間を十分に短縮できない場合がある。また、この技術は、ノードの数が多いほど起動に時間がかかるという特徴を有しているため、情報処理システムの規模によっては非常に長い時間がかかるという問題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−２９５２８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、本発明の目的は、１つの側面では、ディスクブートノード及びネットワークブートノードを含む情報処理システムの起動に要する時間を短縮するための技術を提供することである。
【課題を解決するための手段】
【０００８】
本発明に係る情報処理システムは、オペレーティングシステムの起動に用いるデータを管理する第１のノードと、オペレーティングシステムの起動に用いるデータを第１のノードからネットワークを介して取得し、オペレーティングシステムを起動する第２のノードと、第１のノード及び第２のノードを管理する管理装置とを有する。そして、上で述べた管理装置は、第１のノード及び第２のノードに起動を開始させる第１処理部と、第１のノードの状態を示すデータを当該第１のノードから取得する第２処理部と、第２のノードから、第１のノードの状態を示すデータを要求する第１の要求を受信した場合に、第２のノードに、第１のノードの状態を示すデータを送信する第３処理部とを有する。そして、上で述べた第２のノードは、管理装置から受信した、第１のノードの状態を示すデータが、当該第１のノードのオペレーティングシステムの起動が完了したことを示す場合に、オペレーティングシステムの起動に用いるデータを第１のノードから取得し、第２のノードのオペレーティングシステムを起動する第４処理部を有する。
【発明の効果】
【０００９】
ディスクブートノード及びネットワークブートノードを含む情報処理システムの起動に要する時間を短縮できるようになる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施の形態におけるシステムの概要を示す図である。
【図２】図２は、サービスプロセッサにおけるハードウェアの構成の一例を示す図である。
【図３】図３は、ノードにおけるハードウェアの構成の一例を示す図である。
【図４】図４は、サービスプロセッサの機能ブロック図である。
【図５】図５は、ノードの機能ブロック図である。
【図６】図６は、状態データ格納部に格納されるデータの一例を示す図である。
【図７】図７は、第１の実施の形態におけるサービスプロセッサが実行する処理の処理フローを示す図である。
【図８】図８は、ディスクブートノードが実行する処理の処理フローを示す図である。
【図９】図９は、第１の実施の形態におけるネットワークブートノードが実行する処理の処理フローを示す図である。
【図１０】図１０は、本実施の形態の方法を使用しない場合におけるシステムの起動時間を示す。
【図１１】図１１は、本実施の形態の方法を使用する場合におけるシステムの起動時間を示す。
【図１２】図１２は、異常の発生個所の特定について説明するための図である。
【図１３】図１３は、２台以上のディスクブートノードを含むシステムを示す図である。
【図１４】図１４は、２台以上のディスクブートノードを含むシステムにおける異常の発生について説明するための図である。
【図１５】図１５は、第２の実施の形態におけるサービスプロセッサが実行する処理の処理フローを示す図である。
【図１６】図１６は、第２の実施の形態におけるネットワークブートノードが実行する処理の処理フローを示す図である。
【発明を実施するための形態】
【００１１】
［実施の形態１］
図１に、本実施の形態におけるシステムの概要を示す。複数のノードを収納するための筐体１には、ディスクブートノード１００と、ネットワークブートノード１０１乃至１０３と、サービスプロセッサ１０とが含まれる。ディスクブートノード１００及びネットワークブートノード１０１乃至１０３は、ノード間で通信を行うためのネットワークであるネットワーク１０００を介して接続される。また、サービスプロセッサ１０は、ディスクブートノード１００及びネットワークブートノード１０１乃至１０３に接続されており、これらのノードの起動及び停止の制御並びにエラーの監視等を行う。図１においては、ネットワークブートノードの数は３であるが、数に限定は無い。
【００１２】
図２に、サービスプロセッサ１０におけるハードウェアの構成の一例を示す。図２の例では、サービスプロセッサ１０は、ＣＰＵ１１と、メモリ１２と、ＣＰＵ１１と制御部１４との間でデータの入力及び出力を制御するＩＯ（Input Output）制御部１３と、ノード（本実施の形態においては、ディスクブートノード１００及びネットワークブートノード１０１乃至１０３）等と通信するためのインタフェースである制御部１４とを有する。ＣＰＵ１１は、メモリ１２と、ＩＯ制御部１３とに接続される。ＩＯ制御部１３は、制御部１４に接続される。
【００１３】
図３に、ノードにおけるハードウェアの構成の一例を示す。図３の例では、ノードは、サービスプロセッサ１０等と通信するためのインタフェースであるＩＯ制御部１１０と、ＣＰＵ１２０と、メモリ１３０と、ＨＤＤ（Hard Disk Drive）１４０とを含む。ネットワークブートノード１０１乃至１０３は、ＨＤＤ１４０を有さなくてもよい。ディスクブートノード１００のＨＤＤ１４０には、システムデータが格納される。システムデータには、ＯＳの起動に用いるデータ（例えばＯＳイメージ）及びネットワークサーバプログラム（例えばＤＨＣＰ（Dynamic Host Configuration Protocol）及びＴＦＴＰ（Trivial File Transfer Protocol）のプログラム）が含まれる。なお、ＨＤＤ１４０は、ノードの中ではなく、ノードの外に設けてもよい。また、ＨＤＤではなく、その他の記憶装置（例えばＳＳＤ（Solid State Drive））を用いてもよい。
【００１４】
図４に、サービスプロセッサ１０の機能ブロック図を示す。図４の例では、サービスプロセッサ１０は、起動部１５と、状態管理部１６と、通知部１７と、状態データ格納部１８とを含む。起動部１５、状態管理部１６及び通知部１７を実現するためのプログラム（例えばファームウェア）は、例えばメモリ１２に格納されており、ＣＰＵ１１に実行されることによって起動部１５、状態管理部１６及び通知部１７が実現される。状態データ格納部１８のための領域は、例えばメモリ１２内に確保される。
【００１５】
図５に、ノードの機能ブロック図を示す。図５の例では、ノードは、第１処理部１５０と、第２処理部１６０とを含む。第１処理部１５０及び第２処理部１６０を実現するためのプログラム（例えばファームウェア）は、例えばメモリ１３０に格納されており、ＣＰＵ１２０に実行されることによって第１処理部１５０及び第２処理部１６０が実現される。
【００１６】
図６に、状態データ格納部１８に格納されるデータの一例を示す。図６の例では、ノードの識別情報と、状態（例えば、起動が完了したか否か等）を示すデータとが格納される。
【００１７】
次に、図７乃至図９を用いて、図１に示したシステムの動作を説明する。まず、図７を用いて、サービスプロセッサ１０が実行する処理について説明する。
【００１８】
筐体１におけるいずれのノードも起動されていない状態において、サービスプロセッサ１０における起動部１５は、ディスクブートノード１００及びネットワークブートノード１０１乃至１０３に起動を開始（例えば電源をオン）させる（図７：ステップＳ１）。
【００１９】
サービスプロセッサ１０は、いずれかのノードからデータを受信するまで待機する。そして、サービスプロセッサ１０における状態管理部１６は、いずれかのノードからデータを受信する（ステップＳ３）。
【００２０】
状態管理部１６は、ステップＳ３において受信したデータが状態通知であるか判断する（ステップＳ５）。状態通知は、ノードの状態（例えば、起動が完了したか否か等）を示すデータを含み、ディスクブートノード１００及びネットワークブートノード１０１乃至１０３によってサービスプロセッサ１０に送信される。送信は、例えば定期的に行われる。
【００２１】
状態通知である場合（ステップＳ５：Ｙｅｓルート）、状態管理部１６は、状態通知から状態を示すデータを抽出し（ステップＳ７）、状態を示すデータを状態データ格納部１８に格納する（ステップＳ９）。そしてステップＳ１７の処理に移行する。
【００２２】
一方、状態通知ではない場合（ステップＳ５：Ｎｏルート）、状態管理部１６は、ネットワークブートノードから受信した取得要求であるか判断する（ステップＳ１１）。取得要求は、ディスクブートノード１００の状態を示すデータを取得することを要求するものであり、ネットワークブートノードによってサービスプロセッサ１０に送信される。
【００２３】
ネットワークブートノードからの取得要求ではない場合（ステップＳ１１：Ｎｏルート）、ステップＳ３において受信したデータは、本実施の形態の処理には直接関係しないデータである。そこで、状態管理部１６は、受信したデータに対する処理を行い、ステップＳ３の処理に戻る。
【００２４】
一方、ネットワークブートノードからの取得要求である場合（ステップＳ１１：Ｙｅｓルート）、状態管理部１６は、ディスクブートノード１００の状態を示すデータを状態データ格納部１８から抽出する（ステップＳ１３）。そして、状態管理部１６は、ディスクブートノードの状態を示すデータの送信を通知部１７に指示する。これに応じ、通知部１７は、ディスクブートノードの状態を示すデータを、ステップＳ３において受信したデータの送信元のネットワークブートノードに送信する（ステップＳ１５）。
【００２５】
状態管理部１６は、状態データ格納部１８に格納されている状態を示すデータをネットワークブートノード１０１乃至１０３について特定することによって、ネットワークブートノード１０１乃至１０３の起動が完了したか判断する（ステップＳ１７）。
【００２６】
ネットワークブートノード１０１乃至１０３の起動が完了していない場合（ステップＳ１７：Ｎｏルート）、ステップＳ３の処理に戻る。一方、ネットワークブートノード１０１乃至１０３の起動が完了した場合（ステップＳ１７：Ｙｅｓルート）、処理を終了する。
【００２７】
以上のような処理を実行すれば、ＯＳを起動する前に実行すべき処理をディスクブートノード１００とネットワークブートノード１０１乃至１０３とが同時に行えるようになるので、システムの起動に要する時間を短縮できるようになる。また、ネットワークブートノード１０１乃至１０３は、サービスプロセッサ１０を介してディスクブートノード１００の状態を確実に確認できるので、ディスクブートノード１００のＯＳの起動が完了した後に迅速にＯＳを起動できるようになる。
【００２８】
次に、図８を用いて、ディスクブートノード１００が実行する処理について説明する。
【００２９】
ディスクブートノード１００における第１処理部１５０は、サービスプロセッサ１０により起動が開始されると、ＯＳを起動する前に実行すべき処理を実行する（図８：ステップＳ２１）。ＯＳを起動する前に実行すべき処理には、例えば、ハードウェアの初期化及び診断（例えばＰＯＳＴ（Power On Self Test））が含まれる。
【００３０】
第２処理部１６０は、ＨＤＤ１４０からシステムデータを読み出し（ステップＳ２３）、読み出されたシステムデータに含まれる、ＯＳの起動に用いるデータを用いてＯＳを起動する（ステップＳ２５）。そして、第２処理部１６０は、ステップＳ２１において読み出されたシステムデータに含まれる、ネットワークサーバプログラムを起動する（ステップＳ２７）。そして処理を終了する。
【００３１】
以上のような処理を実行すれば、ディスクブートノード１００は通常どおり稼働することができるようになる。
【００３２】
次に、図９を用いて、ネットワークブートノード１０１乃至１０３が実行する処理について説明する。説明を簡単にするため、ここではネットワークブートノード１０１を例にして説明する。
【００３３】
まず、ネットワークブートノード１０１における第１処理部１５０は、サービスプロセッサ１０により起動が開始されると、ＯＳを起動する前に実行すべき処理を実行する（図９：ステップＳ３１）。ＯＳを起動する前に実行すべき処理には、例えば、ハードウェアの初期化及び診断（例えばＰＯＳＴ（Power On Self Test））が含まれる。
【００３４】
第２処理部１６０は、ディスクブートノード１００の状態を示すデータを取得することを要求する取得要求を、サービスプロセッサ１０に送信する（ステップＳ３３）。そして、第２処理部１６０は、取得要求に対する応答として、ディスクブートノード１００の状態を示すデータをサービスプロセッサ１０から受信する（ステップＳ３５）。
【００３５】
第２処理部１６０は、ディスクブートノード１００の状態を示すデータによって、ディスクブートノード１００の起動が完了したか判断する（ステップＳ３７）。
【００３６】
ディスクブートノード１００の起動が完了していない場合（ステップＳ３７：Ｎｏルート）、ネットワークブートノード１０１はＯＳを起動できないため、ステップＳ３３の処理に戻る。一方、ディスクブートノード１００の起動が完了した場合（ステップＳ３７：Ｙｅｓルート）、第２処理部１６０は、ディスクブートノード１００からシステムデータを取得する（ステップＳ３９）。
【００３７】
第２処理部１６０は、ステップＳ３９において取得されたシステムデータに含まれる、ＯＳの起動に用いるデータを用いてＯＳを起動する（ステップＳ４１）。そして、第２処理部１６０は、ステップＳ３９において取得されたシステムデータに含まれる、ネットワークサーバプログラムを起動する（ステップＳ４３）。そして処理を終了する。
【００３８】
以上のような処理を実行すれば、ネットワークブートノード１０１乃至１０３は、ＯＳの起動前に実行すべき処理についてはディスクブートノード１００の処理と並列で行えるので、システムの起動に要する時間を短縮できるようになる。
【００３９】
次に、図１０乃至図１４を用いて、本実施の形態の効果について具体的に説明する。
【００４０】
図１０に、本実施の形態の方法を使用しない場合におけるシステムの起動時間を示す。図１０においては横軸が時間を表しており、ディスクブートノード１００と、ネットワークブートノード１０１乃至１０３との各々について、サービスプロセッサ１０によって起動が開始されてからＯＳの起動が完了するまでの時間が示されている。
【００４１】
この方法においては、サービスプロセッサ１０が、まずディスクブートノード１００に起動を開始させる。具体的には、ディスクブートノード１００において、ＯＳの起動前の処理（例えば、ＰＯＳＴ並びにファームウェアのロード及び初期化）と、ＯＳの起動（ここでは、ＯＳのデータをメモリにロードする処理も含まれる）とが実行される。
【００４２】
ディスクブートノード１００のＯＳの起動が完了すると、サービスプロセッサ１０によって、ネットワークブートノード１０１乃至１０３の起動が開始される。ネットワークブートノード１０１乃至１０３においても、ディスクブートノード１００と同様に、ＯＳの起動前の処理と、ＯＳの起動とが実行される。
【００４３】
図１０に示した起動の方法を利用すると、およそ、１台のノードの起動に要する時間の２倍の時間がかかることになる。
【００４４】
図１１に、本実施の形態の方法を使用した場合におけるシステムの起動時間を示す。図１１においては、図１０と同様に、横軸が時間を表しており、ディスクブートノード１００と、ネットワークブートノード１０１乃至１０３との各々について、サービスプロセッサ１０によって起動が開始されてからＯＳの起動が完了するまでの時間が示されている。
【００４５】
本実施の形態の方法においては、サービスプロセッサ１０が、ディスクブートノード１００及びネットワークブートノード１０１乃至１０３の起動を同時に開始する。これは、ネットワークブートノード１０１乃至１０３は、ディスクブートノード１００のＯＳの起動が完了していなくても、ＯＳの起動前の処理を行うことができるからである。ＯＳの起動前の処理が完了した後、ディスクブートノード１００のＯＳの起動が完了するまでは、ネットワークブートノード１０１乃至１０３はシステムデータをディスクブートノードから取得することができないため、ＯＳの起動を行えない。ディスクブートノード１００のＯＳの起動が完了すると、ネットワークブートノード１０１乃至１０３はシステムデータをディスクブートノード１００から取得できるようになるので、ＯＳの起動を開始する。
【００４６】
このようにすることで、図１０に示した方法と比較して、矢印１１１１の長さの分だけシステムの起動時間を短縮できるようになる。
【００４７】
また、本実施の形態においては、ネットワークブートノード１０１乃至１０３がサービスプロセッサ１０を介してディスクブートノード１００の状態を確認するため、ネットワークの異常とディスクブートノード１００の異常とを容易に区別できるようになる。これについては、図１２を用いて説明する。
【００４８】
例えばノード間のネットワーク１０００において異常１２０１が発生した場合には、ネットワークブートノード１０１乃至１０３は、通常どおりディスクブートノード１００からシステムデータを取得し、ＯＳを起動することができる。これは、ネットワークブートノード１０１乃至１０３が、ディスクブートノード１００の状態を確認する際にノード間のネットワーク１０００を使用するのではなく、サービスプロセッサ１０を経由して確認を行うからである。よって、ネットワークブートノード１０１乃至１０３が通常どおり起動を行えるのであれば、異常はノード間のネットワーク１０００において発生したものであるとわかる。
【００４９】
また、ディスクブートノード１００に異常１２０２が発生した場合には、ディスクブート１００は起動を完了することができない。そのため、ネットワークブートノード１０１乃至１０３のＯＳも起動を完了することができない。よって、ネットワークブートノード１０１乃至１０３のＯＳが起動を完了しないのであれば、ディスクブートノード１００において異常が発生したとわかる。
【００５０】
これに対し、ノード間のネットワーク１０００を使用してディスクブートノードの状態を確認する場合、異常がいずれで発生したとしても、ネットワークブートノード１０１乃至１０３は、ディスクブートノード１００の起動が完了しているか確認できない。そのため、異常がいずれで発生したとしても、ネットワークブートノード１０１乃至１０３はＯＳを起動することができないので、異常の発生個所を特定することができない。また、ディスクブートノード１００に異常１２０２が発生し、ノード間のネットワーク１０００に異常１２０１が無い場合、ネットワークブートノード１０１乃至１０３はノード間のネットワーク１０００を介して何度もディスクブートノードの状態を確認することになるので、無駄な通信が発生する。
【００５１】
なお、上ではシステムに１台のディスクブートノードが有る例を示したが、例えば図１３に示すように、２台以上のディスクブートノードが有ってもよい。図１３の例では、筐体１には、ディスクブートノード１０４及び１０５と、ネットワークブートノード１０６及び１０７と、サービスプロセッサ１０とが含まれる。サービスプロセッサ１０は、ディスクブートノード１０４及び１０５並びにネットワークブートノード１０６及び１０７に接続されている。また、ディスクブートノード１０４及び１０５並びにネットワークブートノード１０６及び１０７は、ノード間で通信を行うためのネットワークであるネットワーク１００１及び１００２を介して接続される。
【００５２】
図１４を用いて、図１３に示したシステムにおけるディスクブートノード１０４に異常１４００が発生した場合について説明する。この場合、本実施の形態の方法であれば、ネットワークブートノード１０６及び１０７は、サービスプロセッサ１０を介してディスクブートノード１０４に異常１４００が発生したことを知ることができる。
【００５３】
また、ネットワークブートノード１０６及び１０７は、異常が発生していないディスクブートノード１０５からシステムデータを取得し、ネットワークブートを開始できる。よって、無用な通信処理及びネットワークへの負荷等が発生しないので、システムの処理性能の低下を防げるようになる。
【００５４】
これに対し、サービスプロセッサ１０を介さず、ノード間のネットワーク１００１及び１００２を介してディスクブートノード１０４及び１０５の状態を確認する場合には、上で述べたように、異常がどこで発生したのかを特定することができない。そのため、ネットワークブートノード１０６及び１０７は、ディスクブートノード１０４及び１０５の状態を確認するための通信を、ネットワーク１００１及び１００２のいずれについても行うことになる。また、ネットワークブートノード１０６及び１０７は、ディスクブートノード１０４及び１０５からの応答を待つ処理等の無駄な処理を行うことになる。さらに、不要な通信負荷がネットワーク１００１及び１００２に発生する。
【００５５】
［実施の形態２］
次に、第２の実施の形態について説明する。第１の実施の形態においては、ＯＳの起動前に実行すべき処理を完了したネットワークブートノードがサービスプロセッサ１０に取得要求を送信することで、ディスクブートノード１００の状態を確認する。これに対し、第２の実施の形態においては、サービスプロセッサ１０が、ディスクブートノード１００の起動が完了し且つネットワークブートノードにおいてＯＳの起動前に実行すべき処理が完了したことを確認した場合に、ネットワークブートノードにＯＳの起動要求を送信する。ＯＳの起動前に実行すべき処理を完了したネットワークブートノードは、ＯＳの起動要求を受信すると、ＯＳの起動を開始する。
【００５６】
まず、第２の実施の形態におけるサービスプロセッサ１０が実行する処理について説明する。
【００５７】
筐体１におけるいずれのノードも起動されていない状態において、サービスプロセッサ１０における起動部１５は、ディスクブートノード１００及びネットワークブートノード１０１乃至１０３に起動を開始（例えば電源をオン）させる（図１５：ステップＳ５１）。
【００５８】
サービスプロセッサ１０は、いずれかのノードからデータを受信するまで待機する。そして、サービスプロセッサ１０における状態管理部１６は、いずれかのノードからデータを受信する（ステップＳ５３）。
【００５９】
状態管理部１６は、ステップＳ５３において受信したデータが状態通知であるか判断する（ステップＳ５５）。
【００６０】
状態通知ではない場合（ステップＳ５５：Ｎｏルート）、ステップＳ５３において受信したデータは、本実施の形態の処理には直接関係しないデータである。そこで、状態管理部１６は、受信したデータに対する処理を行い、ステップＳ５３の処理に戻る。
【００６１】
一方、状態通知である場合（ステップＳ５５：Ｙｅｓルート）、状態管理部１６は、状態通知から状態を示すデータを抽出し（ステップＳ５７）、状態を示すデータを状態データ格納部１８に格納する（ステップＳ５９）。
【００６２】
状態管理部１６は、状態データ格納部１８における状態を示すデータを、ディスクブートノード１００及びネットワークブートノード１０１乃至１０３について特定することによって、ディスクブートノード１００の起動が完了し且つネットワークブートノード１０１乃至１０３においてＯＳの起動前に実行すべき処理が完了したか判断する（ステップＳ６１）。
【００６３】
ディスクブートノード１００の起動が完了していない又はネットワークブートノード１０１乃至１０３においてＯＳの起動前に実行すべき処理が完了していない場合（ステップＳ６１：Ｎｏルート）、ネットワークブートノード１０１乃至１０３のＯＳを起動することはできないため、ステップＳ５３の処理に戻る。
【００６４】
一方、ディスクブートノード１００の起動が完了し且つネットワークブートノード１０１乃至１０３においてＯＳの起動前に実行すべき処理が完了した場合（ステップＳ６１：Ｙｅｓルート）、状態管理部１６は、ディスクブートノード１００の状態を示すデータを状態データ格納部１８から抽出する。そして、状態管理部１６は、ディスクブートノード１００の状態を示すデータを含む、ＯＳの起動要求の送信を通知部１７に指示する。これに応じ、通知部１７は、ディスクブートノード１００の状態を示すデータを、ステップＳ５３において受信したデータの送信元のネットワークブートノードに送信する（ステップＳ６３）。そして処理を終了する。
【００６５】
以上のような処理を実行すれば、ＯＳを起動する前に実行すべき処理をディスクブートノード１００とネットワークブートノード１０１乃至１０３とが同時に行えるようになるので、システムの起動に要する時間を短縮できるようになる。また、ネットワークブートノード１０１乃至１０３は、ディスクブートノード１００の起動が完了したことをサービスプロセッサ１０から通知してもらえるので、ディスクブートノード１００のＯＳの起動が完了した後に迅速にＯＳを起動できるようになる。
【００６６】
次に、第２の実施の形態におけるネットワークブートノード１０１乃至１０３が実行する処理について説明する。説明を簡単にするため、ここではネットワークブートノード１０１を例にして説明する。
【００６７】
まず、ネットワークブートノード１０１における第１処理部１５０は、サービスプロセッサ１０により起動が開始されると、ＯＳを起動する前に実行すべき処理を実行する（図１６：ステップＳ７１）。ＯＳを起動する前に実行すべき処理とは、例えば、ハードウェアの初期化及び診断（例えばＰＯＳＴ（Power On Self Test））である。そして、第１処理部１５０は、ＯＳを起動する前に実行すべき処理が完了したことを示す状態通知をサービスプロセッサ１０に送信する。
【００６８】
第２処理部１６０は、サービスプロセッサ１０からＯＳの起動要求を受信するまで処理を停止し、待機する（ステップＳ７３）。そして、第２処理部１６０は、ディスクブートノード１００の状態を示すデータを含む、ＯＳの起動要求をサービスプロセッサ１０から受信する（ステップＳ７５）。
【００６９】
第２処理部１６０は、ディスクブートノード１００からシステムデータを取得し（ステップＳ７７）、取得されたシステムデータに含まれる、ＯＳの起動に用いるデータを用いてＯＳを起動する（ステップＳ７９）。そして、第２処理部１６０は、ステップＳ７７において取得されたシステムデータに含まれる、ネットワークサーバプログラムを起動する（ステップＳ８１）。そして処理を終了する。
【００７０】
以上のような処理を実行すれば、ネットワークブートノード１０１乃至１０３は、ＯＳの起動前に実行すべき処理についてはディスクブートノード１００と並列で行えるので、システムの起動に要する時間を短縮できるようになる。
【００７１】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明したサービスプロセッサ１０並びにディスクブートノード１００及びネットワークブートノード１０１乃至１０３の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７２】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７３】
また、上で述べた例においては、サービスプロセッサ１０はステップＳ３又はステップＳ５３においてデータを受信するまで待機しているが、待機せず、サービスプロセッサ１０が主体的にデータを取得してもよい。
【００７４】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００７５】
本実施の形態の第１の態様に係る情報処理システムは、（Ａ）オペレーティングシステムの起動に用いるデータを管理する第１のノードと、（Ｂ）オペレーティングシステムの起動に用いるデータを第１のノードからネットワークを介して取得し、オペレーティングシステムを起動する第２のノードと、（Ｃ）第１のノード及び第２のノードを管理する管理装置とを有する。そして、上で述べた管理装置は、（ｃ１）第１のノード及び第２のノードに起動を開始させる第１処理部と、（ｃ２）第１のノードの状態を示すデータを当該第１のノードから取得する第２処理部と、（ｃ３）取得された第１のノードの状態を示すデータが、第１のノードにおいてオペレーティングシステムの起動が完了したことを示している場合に、第２のノードに、当該第２のノードにおいてオペレーティングシステムを起動することを要求する起動要求を送信する第３処理部とを有する。
【００７６】
このようにすれば、オペレーティングシステムを起動する前に実行すべき処理を第１のノードと第２のノードとが同時に行えるようになるので、情報処理システムの起動に要する時間を短縮できるようになる。
【００７７】
また、上で述べた第２のノードは、（ｂ１）オペレーティングシステムを起動する前に実行すべき処理を実行する第４処理部と、（ｂ２）管理装置から起動要求を受信するまで処理を停止し、管理装置から起動要求を受信した場合に、オペレーティングシステムの起動に用いるデータを第１のノードから取得し、第２のノードにおいてオペレーティングシステムを起動する第５処理部とを有してもよい。このようにすれば、起動要求を受信するまで第２のノードは第１のノードと通信を行わないので、無駄な通信負荷が発生するのを防げるようになる。
【００７８】
また、上で述べた第１のノードは、（ａ１）オペレーティングシステムを起動する前に実行すべき処理を実行する第６処理部と、（ａ２）オペレーティングシステムを起動する第７処理部とを有してもよい。このようにすれば、第１のノードを適切に起動できるようになる。
【００７９】
本実施の形態の第２の態様に係る情報処理システムは、（Ｄ）オペレーティングシステムの起動に用いるデータを管理する第１のノードと、（Ｅ）オペレーティングシステムの起動に用いるデータを第１のノードからネットワークを介して取得し、オペレーティングシステムを起動する第２のノードと、（Ｆ）第１のノード及び第２のノードを管理する管理装置とを有する。そして、上で述べた管理装置は、（ｆ１）第１のノード及び第２のノードに起動を開始させる第１処理部と、（ｆ２）第１のノードの状態を示すデータを当該第１のノードから取得する第２処理部と、（ｆ３）第２のノードから、第１のノードの状態を示すデータを要求する第１の要求を受信した場合に、第２のノードに、第１のノードの状態を示すデータを送信する第３処理部とを有する。そして、上で述べた第２のノードは、（ｅ１）管理装置から受信した、第１のノードの状態を示すデータが、当該第１のノードにおいてオペレーティングシステムの起動が完了したことを示す場合に、オペレーティングシステムの起動に用いるデータを第１のノードから取得し、第２のノードにおいてオペレーティングシステムを起動する第４処理部を有する。
【００８０】
このようにすれば、オペレーティングシステムを起動する前に実行すべき処理を第１のノードと第２のノードとが同時に行えるようになるので、情報処理システムの起動に要する時間を短縮できるようになる。
【００８１】
本実施の形態の第３の態様に係る情報処理システムの制御方法は、オペレーティングシステムの起動に用いるデータを管理する第１のノードと、オペレーティングシステムの起動に用いるデータを第１のノードからネットワークを介して取得し、オペレーティングシステムを起動する第２のノードと、第１のノード及び第２のノードを管理する管理装置とを含む情報処理システムの制御方法である。そして、本制御方法は、管理装置のプロセッサが、（Ｇ）第１のノード及び第２のノードに起動を開始させ、（Ｈ）第１のノードの状態を示すデータを当該第１のノードから取得し、（Ｉ）取得された第１のノードの状態を示すデータが、第１のノードにおいてオペレーティングシステムの起動が完了したことを示している場合に、第２のノードに、当該第２のノードにおいてオペレーティングシステムを起動することを要求する起動要求を送信する処理を含む。
【００８２】
本実施の形態の第４の態様に係る情報処理システムの制御方法は、オペレーティングシステムの起動に用いるデータを管理する第１のノードと、オペレーティングシステムの起動に用いるデータを第１のノードからネットワークを介して取得し、オペレーティングシステムを起動する第２のノードと、第１のノード及び第２のノードを管理する管理装置とを含む情報処理システムの制御方法である。そして、本制御方法は、管理装置のプロセッサが、（Ｊ）第１のノード及び第２のノードに起動を開始させ、（Ｋ）第１のノードの状態を示すデータを当該第１のノードから取得し、（Ｌ）第２のノードから、第１のノードの状態を示すデータを要求する第１の要求を受信した場合に、第２のノードに、第１のノードの状態を示すデータを送信する処理を含む。
【００８３】
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００８４】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００８５】
（付記１）
オペレーティングシステムの起動に用いるデータを管理する第１のノードと、
前記オペレーティングシステムの起動に用いるデータを前記第１のノードからネットワークを介して取得し、前記オペレーティングシステムを起動する第２のノードと、
前記第１のノード及び前記第２のノードを管理する管理装置と、
を有し、
前記管理装置は、
前記第１のノード及び前記第２のノードに起動を開始させる第１処理部と、
前記第１のノードの状態を示すデータを当該第１のノードから取得する第２処理部と、
前記第２のノードから、前記第１のノードの状態を示すデータを要求する第１の要求を受信した場合に、前記第２のノードに、前記第１のノードの状態を示すデータを送信する第３処理部と、
を有し、
前記第２のノードは、
前記管理装置から受信した、前記第１のノードの状態を示すデータが、当該第１のノードのオペレーティングシステムの起動が完了したことを示す場合に、前記オペレーティングシステムの起動に用いるデータを前記第１のノードから取得し、前記第２のノードのオペレーティングシステムを起動する第４処理部
を有する情報処理システム。
【００８６】
（付記２）
前記第３処理部が、
取得された前記第１のノードの状態を示すデータが、前記第１のノードのオペレーティングシステムの起動が完了したことを示している場合に、前記第２のノードに、当該第２のノードのオペレーティングシステムを起動することを要求する起動要求を送信する
ことを特徴とする付記１記載の情報処理システム。
【００８７】
（付記３）
前記第２のノードは、
前記オペレーティングシステムを起動する前に実行すべき処理を実行する第５処理部
をさらに有し、
前記第４処理部は、
前記管理装置から前記起動要求を受信するまで処理を停止し、前記管理装置から前記起動要求を受信した場合に、前記オペレーティングシステムの起動に用いるデータを前記第１のノードから取得し、前記第２のノードのオペレーティングシステムを起動する
ことを特徴とする付記２記載の情報処理システム。
【００８８】
（付記４）
前記第１のノードは、
前記オペレーティングシステムを起動する前に実行すべき処理を実行する第６処理部と、
前記オペレーティングシステムを起動する第７処理部と、
を有する付記１乃至３のいずれか１つ記載の情報処理システム。
【００８９】
（付記５）
オペレーティングシステムの起動に用いるデータを管理する第１のノードと、前記オペレーティングシステムの起動に用いるデータを前記第１のノードからネットワークを介して取得し、前記オペレーティングシステムを起動する第２のノードと、前記第１のノード及び前記第２のノードを管理する管理装置とを含む情報処理システムにおける、前記管理装置が、
前記第１のノード及び前記第２のノードに起動を開始させ、
前記第１のノードの状態を示すデータを当該第１のノードから取得し、
前記第２のノードから、前記第１のノードの状態を示すデータを要求する第１の要求を受信した場合に、前記第２のノードに、前記第１のノードの状態を示すデータを送信する
処理を実行する情報処理方法。
【００９０】
（付記６）
オペレーティングシステムの起動に用いるデータを管理する第１のノードと、前記オペレーティングシステムの起動に用いるデータを前記第１のノードからネットワークを介して取得し、前記オペレーティングシステムを起動する第２のノードとを管理する管理装置のプロセッサに、
前記第１のノード及び前記第２のノードに起動を開始させ、
前記第１のノードの状態を示すデータを当該第１のノードから取得し、
前記第２のノードから、前記第１のノードの状態を示すデータを要求する第１の要求を受信した場合に、前記第２のノードに、前記第１のノードの状態を示すデータを送信する
処理を実行させるためのプログラム。
【符号の説明】
【００９１】
１  筐体    １０１，１０２，１０３，１０６，１０７  ネットワークブートノード
１００、１０４，１０５  ディスクブートノード    １０００，１００１，１００２  ネットワーク
１０  サービスプロセッサ    １１，１２０  ＣＰＵ
１２，１３０  メモリ    １３，１１０  ＩＯ制御部
１４  制御部    １４０  ＨＤＤ
１５  起動部    １６  状態管理部
１７  通知部    １８  状態データ格納部
１５０  第１処理部    １６０  第２処理部
【図１】
2015011357.tif 000003
【図２】
2015011357.tif 000004
【図３】
2015011357.tif 000005
【図４】
2015011357.tif 000006
【図５】
2015011357.tif 000007
【図６】
2015011357.tif 000008
【図７】
2015011357.tif 000009
【図８】
2015011357.tif 000010
【図９】
2015011357.tif 000011
【図１０】
2015011357.tif 000012
【図１１】
2015011357.tif 000013
【図１２】
2015011357.tif 000014
【図１３】
2015011357.tif 000015
【図１４】
2015011357.tif 000016
【図１５】
2015011357.tif 000017
【図１６】
2015011357.tif 000018