(57)【特許請求の範囲】
【請求項１】
１以上のシステムボードにより構築されるシステムへのハードウェア部品の組み込みを制御する制御装置と、
前記システムに対して組み込み要求されたリソースを示すリソース情報を取得し、取得した前記リソース情報と、前記１以上のシステムボードと接続された他のシステムボードに含まれるハードウェア部品を示す部品情報とに基づいて、前記他のシステムボードに含まれるハードウェア部品の中から、前記システムに組み込むハードウェア部品を特定し、特定した前記ハードウェア部品の前記システムへの組み込み指示を前記制御装置に出力する情報処理装置と、
を有することを特徴とする管理システム。
【請求項２】
さらに、前記他のシステムボードの電源投入を制御する電源制御装置を含み、
前記情報処理装置は、
特定した前記ハードウェア部品への電源投入指示を前記電源制御装置に出力し、
前記電源制御装置によって電源投入された前記ハードウェア部品の前記システムへの組み込み指示を前記制御装置に出力する、
ことを特徴とする請求項１に記載の管理システム。
【請求項３】
さらに、前記他のシステムボードの故障診断を行う診断装置を含み、
前記情報処理装置は、
前記電源制御装置によって電源投入された前記ハードウェア部品に故障があるか否かの診断指示を前記診断装置に出力し、
前記診断装置によって故障がないと診断された前記ハードウェア部品の前記システムへの組み込み指示を前記制御装置に出力する、
ことを特徴とする請求項２に記載の管理システム。
【請求項４】
前記情報処理装置は、
特定の入出力先への入出力端子の前記システムによる使用が禁止される場合には、前記他のシステムボードに含まれる前記特定の入出力先への入出力端子以外のハードウェア部品の中から、前記システムに組み込むハードウェア部品を特定する、
ことを特徴とする請求項１〜３のいずれか一つに記載の管理システム。
【請求項５】
前記制御装置は、
受信した前記組み込み指示に基づいて、特定された前記ハードウェア部品の前記システムへの組み込み処理を行い、
前記システムに組み込まれた前記ハードウェア部品が使用されないときには、前記システムに組み込まれた前記ハードウェア部品の前記システムからの切り離し処理を行う、
ことを特徴とする請求項１〜４のいずれか一つに記載の管理システム。
【請求項６】
コンピュータが、
１以上のシステムボードにより構築されるシステムに対して組み込み要求されたリソースを示すリソース情報を取得し、
取得した前記リソース情報と、前記１以上のシステムボードと接続された他のシステムボードに含まれるハードウェア部品を示す部品情報とに基づいて、前記他のシステムボードに含まれるハードウェア部品の中から、前記システムに組み込むハードウェア部品を特定し、
前記システムへのハードウェア部品の組み込みを制御する制御装置に、特定した前記ハードウェア部品の前記システムへの組み込み指示を出力する、
処理を実行することを特徴とする管理方法。
【請求項７】
コンピュータに、
１以上のシステムボードにより構築されるシステムに対して組み込み要求されたリソースを示すリソース情報を取得し、
取得した前記リソース情報と、前記１以上のシステムボードと接続された他のシステムボードに含まれるハードウェア部品を示す部品情報とに基づいて、前記他のシステムボードに含まれるハードウェア部品の中から、前記システムに組み込むハードウェア部品を特定し、
前記システムへのハードウェア部品の組み込みを制御する制御装置に、特定した前記ハードウェア部品の前記システムへの組み込み指示を出力する、
処理を実行させることを特徴とする管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理システム、管理方法、および管理プログラムに関する。
【背景技術】
【０００２】
従来、１以上のシステムボードを組み合わせて、ハードウェアパーティションを構築するハードウェアパーティショニング（Ｐｈｙｓｉｃａｌ  Ｐａｒｔｉｔｉｏｎｉｎｇ）の技術がある。また、ハードウェアパーティションにおいて稼動中のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）やアプリケーションを停止することなく、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリなどのハードウェア部品が含まれるシステムボード単位で、システムへの組み込みまたは切り離しを行う動的再構成（Ｄｙｎａｍｉｃ  Ｒｅｃｏｎｆｉｇｕｒａｔｉｏｎ）の技術がある。
【０００３】
関連する技術としては、例えば、ハードウェアリソースの結合および分離を定める構成情報を設定し変更することにより、ドメインの構成を設定し変更するためのものがある。また、例えば、起動確認済のＢＩＯＳ設定値が破壊された場合や、システムボードが交換されている場合を検出するとともに、ＢＩＯＳ設定の手間を省くための技術がある。また、例えば、稼動中にメモリモジュールが挿入または取外しされたときにメインメモリの使用を動的に調整するための技術がある。また、例えば、パーティション単位で各システムボードにおいて使用されるＰＯＳＴの版数が一致するようにＰＯＳＴの版数を管理するための技術がある。また、例えば、デバッグ時にＩ２Ｃアクセスの衝突を防止するための技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２００７／０９９５８７号
【特許文献２】特開２０１３−１４０５３６号公報
【特許文献３】特開２００４−２９５８８５号公報
【特許文献４】国際公開第２００７／０９６９９１号
【特許文献５】特開２０１４−３８４３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、システムに対して使用可能なリソースを動的再構成によって追加する場合には、システムボード単位でシステムへのハードウェア部品の組み込みが行われ、システムへの組み込み処理にかかる処理時間の増大化を招く。例えば、システムに組み込まれても使用されないハードウェア部品についてもシステムへの組み込みが行われることになり、システムへの組み込み処理にかかる処理時間が増大してしまう。
【０００６】
１つの側面では、本発明は、システムへの組み込み処理にかかる処理時間を低減することができる管理システム、管理方法、および管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、１以上のシステムボードにより構築されるシステムに対して組み込み要求されたリソースを示すリソース情報を取得し、取得した前記リソース情報と、前記１以上のシステムボードと接続された他のシステムボードに含まれるハードウェア部品を示す部品情報とに基づいて、前記他のシステムボードに含まれるハードウェア部品の中から、前記システムに組み込むハードウェア部品を特定し、前記システムへのハードウェア部品の組み込みを制御する制御装置に、特定した前記ハードウェア部品の前記システムへの組み込み指示を出力する管理システム、管理方法、および管理プログラムが提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、システムへの組み込み処理にかかる処理時間を低減することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる管理方法の一実施例を示す説明図である。
【図２】図２は、サービスプロセッサ１０１のハードウェアの一例を示すブロック図である。
【図３】図３は、ビルディングブロック１００のハードウェアの一例を示すブロック図である。
【図４】図４は、コンピュータシステム４００の一例を示すブロック図である。
【図５】図５は、情報処理装置５００の機能的構成例を示すブロック図である。
【図６】図６は、取得部５０１の動作の具体例を示す説明図である。
【図７】図７は、特定部５０２、第１指示部５０３、第２指示部５０４、および第３指示部５０５の動作の具体例を示す説明図である。
【図８】図８は、スレーブ１０１＃Ｓの動作の具体例を示す説明図である。
【図９】図９は、設定量６０１を受け付ける流れを示す説明図である。
【図１０】図１０は、設定量６０１のデータ構造の一例を示す説明図である。
【図１１】図１１は、設定量６０１の具体例を示す説明図である。
【図１２】図１２は、必要量定義６０２のデータ構造の一例を示す説明図である。
【図１３】図１３は、必要量定義６０２の具体例を示す説明図である。
【図１４】図１４は、必要量定義６０２の他の具体例を示す説明図である。
【図１５】図１５は、設定量６０１を受け付ける設定処理手順の一例を示すフローチャートである。
【図１６】図１６は、パーティション１３０にハードウェア部品を組み込む流れを示す説明図である。
【図１７】図１７は、ＣＰＵ３２１のハードウェア構成情報１７００の一例を示す説明図である。
【図１８】図１８は、メモリ３２２のハードウェア構成情報１８００の一例を示す説明図である。
【図１９】図１９は、入出力端子３２３のハードウェア構成情報１９００の一例を示す説明図である。
【図２０】図２０は、ＣＰＵ３２１のハードウェア構成情報１７００を更新する一例を示す説明図である。
【図２１】図２１は、メモリ３２２のハードウェア構成情報１８００を更新する一例を示す説明図である。
【図２２】図２２は、入出力端子３２３のハードウェア構成情報１９００を更新する一例を示す説明図である。
【図２３】図２３は、必要リソース情報７０１の一例を示す説明図である。
【図２４】図２４は、必要リソース情報特定処理手順の一例を示すフローチャートである。
【図２５】図２５は、ステップＳ２４０１に示した、コアの必要リソース情報７０１の特定処理手順の一例を示すフローチャートである。
【図２６】図２６は、ステップＳ２４０２に示した、メモリ３２２の必要リソース情報７０１の特定処理手順の一例を示すフローチャートである。
【図２７】図２７は、ステップＳ２４０３に示した、入出力端子３２３の必要リソース情報７０１の特定処理手順の一例を示すフローチャートである。
【図２８】図２８は、必要リソース情報作成処理手順の一例を示すフローチャートである。
【図２９】図２９は、ステップＳ２８０３に示した、コアの必要リソース情報７０１の作成処理手順の一例を示すフローチャートである。
【図３０】図３０は、ステップＳ２８０５に示した、メモリ３２２の必要リソース情報７０１の作成処理手順の一例を示すフローチャートである。
【図３１】図３１は、ステップＳ２８０７に示した、入出力端子３２３の必要リソース情報７０１の作成処理手順の一例を示すフローチャートである。
【図３２】図３２は、実施例２におけるＣＰＵ３２１のハードウェア構成情報３２００の一例を示す説明図である。
【図３３】図３３は、実施例２におけるメモリ３２２のハードウェア構成情報３３００の一例を示す説明図である。
【図３４】図３４は、実施例２における入出力端子３２３のハードウェア構成情報３４００の一例を示す説明図である。
【図３５】図３５は、ＣＰＵ３２１のハードウェア構成情報３２００を更新する一例を示す説明図である。
【図３６】図３６は、メモリ３２２のハードウェア構成情報３３００を更新する一例を示す説明図である。
【図３７】図３７は、入出力端子３２３のハードウェア構成情報３４００を更新する一例を示す説明図である。
【図３８】図３８は、電源投入処理手順の一例を示すフローチャートである。
【図３９】図３９は、ステップＳ３８０３に示した、コアの電源投入部品の特定処理手順の一例を示すフローチャートである。
【図４０】図４０は、ステップＳ３８０５に示した、メモリ３２２の電源投入部品の特定処理手順の一例を示すフローチャートである。
【図４１】図４１は、ステップＳ３８０７に示した、入出力端子３２３の電源投入部品の特定処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかる管理システム、管理方法、および管理プログラムの実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかる管理方法の一実施例）
図１は、実施の形態にかかる管理方法の一実施例を示す説明図である。図１において、マスタサービスプロセッサ１０１は、システムボード１０２に含まれるハードウェア部品のシステムへの組み込み指示を、システムへのハードウェア部品の組み込みを制御する制御装置に出力するコンピュータである。
【００１２】
システムボード１０２とは、１以上のハードウェア部品を有するボードである。ハードウェア部品とは、ハイパーバイザ（Ｈｙｐｅｒｖｉｓｏｒ）、ＯＳやアプリケーションなどのプログラムによってリソースとして使用される部品である。ハードウェア部品は、例えば、ＣＰＵ、コア、メモリ、入出力端子などである。システムとは、同一のプログラムを動作させる環境である。システムは、例えば、ハードウェアパーティショニングを用いて、１以上のシステムボード１０２によって構築されたハードウェアパーティション１３０である。プログラムは、例えば、ハイパーバイザ、ＯＳやアプリケーションなどである。制御装置は、例えば、システムを構築する１以上のシステムボード１０２のいずれかを管理するスレーブサービスプロセッサ１０１である。
【００１３】
以下の説明では、マスタサービスプロセッサ１０１を「マスタ１０１＃Ｍ」と表記する場合がある。また、以下の説明では、スレーブサービスプロセッサ１０１を「スレーブ１０１＃Ｓ」と表記する場合がある。また、以下の説明では、システムボード１０２を「ＳＢ１０２」と表記する場合がある。また、以下の説明では、ハードウェアパーティション１３０を「パーティション１３０」と表記する場合がある。
【００１４】
従来、動的再構成によって、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどのプログラムを停止することなく、システムボード１０２単位でハードウェア部品の組み込みが行われる場合がある。この場合では、システムボード１０２単位でハードウェア部品を組み込んだ後に、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって使用されるリソースとして、ハードウェア部品が割り当てられることになる。
【００１５】
このように、従来、動的再構成は、ハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって、どの種類のハードウェア部品がどのくらい使用されるかが指定されない状態で行われる。したがって、動的再構成においては、システムボード１０２に含まれるハードウェア部品のすべてについて、電源投入と故障診断が行われ、ハイパーバイザやＯＳの組み込み処理が行われることになってしまう。換言すれば、動的再構成においては、ハイパーバイザ、ＯＳやアプリケーションなどによって使用されないハードウェア部品についても、電源投入と故障診断が行われ、ハイパーバイザやＯＳの組み込み処理が行われることになってしまう。
【００１６】
これによれば、ハイパーバイザ、ＯＳやアプリケーションなどによって使用されないハードウェア部品について、行わなくてもよい組み込み処理が行われてしまい、動的再構成にかかる時間が増大してしまう。また、システムボード１０２のハードウェア部品の数が増えるほど、動的再構成にかかる時間が増大してしまう。例えば、システムボード１０２の集積化が進むにつれ、システムボード１０２に含まれるＣＰＵの数や、ＣＰＵに含まれるコアの数や、メモリの容量が増えていき、動的再構成にかかる時間も増大していくことになる。そこで、本実施の形態では、システムへの組み込み処理にかかる処理時間を低減することにより、動的再構成にかかる時間を低減することができる管理方法について説明する。
【００１７】
図１では、マスタ１０１＃Ｍまたはスレーブ１０１＃Ｓとなるサービスプロセッサ１０１とシステムボード１０２との組み合わせが搭載されたビルディングブロック１００と、クライアント装置１１０とが含まれる管理システムを例として挙げる。そして、例において、実施の形態にかかる管理方法について説明する。ビルディングブロック１００とは、１以上のハードウェアが搭載された筐体である。以下の説明では、ビルディングブロック１００を「ＢＢ１００」と表記する場合がある。
【００１８】
また、以下の説明では、特定のビルディングブロック１００に限定せずに、任意のビルディングブロック１００について表記する場合には、「ビルディングブロック１００」と表記する場合がある。一方で、特定のビルディングブロック１００について表記する場合には、「ビルディングブロック１００＃＊＊」と表記する場合がある。＃＊＊は、ビルディングブロック１００の番号である。
【００１９】
また、以下の説明では、特定のシステムボード１０２に限定せずに、任意のシステムボード１０２について表記する場合には、「システムボード１０２」と表記する場合がある。一方で、特定のシステムボード１０２について表記する場合には、「システムボード１０２＃＊＊」と表記する場合がある。＃＊＊は、システムボード１０２が搭載されたビルディングブロック１００の番号である。
【００２０】
また、以下の説明では、特定のサービスプロセッサ１０１に限定せずに、任意のサービスプロセッサ１０１について表記する場合には、「サービスプロセッサ１０１」と表記する場合がある。一方で、特定のサービスプロセッサ１０１について表記する場合には、「サービスプロセッサ１０１＃＊＊」と表記する場合がある。＃＊＊は、サービスプロセッサ１０１が搭載されたビルディングブロック１００の番号である。また、特定のパーティションについて表記する場合には、「パーティション１３０＃＊＊」と表記する場合がある。＃＊＊は、パーティション１３０を構築するシステムボードが搭載されたビルディングブロック１００の番号のうち、最も小さい番号である。
【００２１】
図１の例では、ビルディングブロック１００＃００に搭載されたサービスプロセッサ１０１＃００がマスタ１０１＃Ｍである。また、他のビルディングブロック１００＃０１〜０３に搭載されたサービスプロセッサ１０１＃０１〜０３がスレーブ１０１＃Ｓである。また、ビルディングブロック１００＃００，０１に搭載されたシステムボード１０２＃００，０１は、パーティション１３０を構築しない。また、ビルディングブロック１００＃０２，０３に搭載されたシステムボード１０２＃０２，０３によってパーティション１３０＃０２が構築される。
【００２２】
マスタ１０１＃Ｍは、クライアント装置１１０と、パーティション１３０への組み込みを制御するスレーブ１０１＃Ｓと、パーティション１３０に組み込み可能な他のシステムボード１０２を制御するスレーブ１０１＃Ｓと通信可能に接続される。マスタ１０１＃Ｍは、パーティション構成情報を記憶する。パーティション構成情報とは、パーティション１３０を構築する１以上のシステムボード１０２の情報である。パーティション構成情報は、例えば、パーティション１３０に接続された利用可能なシステムボード１０２の一覧である。
【００２３】
スレーブ１０１＃Ｓは、自サービスプロセッサ１０１と同一のビルディングブロック１００に搭載されたシステムボード１０２に含まれるハードウェア部品についての部品情報を記憶する。部品情報は、例えば、システムボード１０２に含まれるコアの数、メモリのサイズ、入出力端子の数、入出力端子の入出力先などの情報である。
【００２４】
クライアント装置１１０は、リソースの組込先となるパーティション１３０の情報と、パーティション１３０に対して組み込み要求するリソースを示すリソース情報を、マスタ１０１＃Ｍに送信するコンピュータである。パーティション１３０の情報は、例えば、パーティション１３０の番号である。
【００２５】
リソース情報とは、リソースとしてパーティション１３０に組み込むハードウェア部品の情報である。リソース情報は、例えば、パーティション１３０に対して組み込むコアの数、メモリのサイズ、入出力端子の数や入出力先などである。リソース情報は、さらに、リソースとしてパーティション１３０に組み込むハードウェア部品が含まれるシステムボード１０２の情報を含んでもよい。システムボード１０２の情報は、例えば、システムボード１０２の番号である。
【００２６】
図１の例では、（１）マスタ１０１＃００は、クライアント装置１１０から、リソースを組み込むパーティション１３０の情報と、リソース情報とを取得する。マスタ１０１＃００は、例えば、リソースを組み込むパーティション１３０＃０２の番号と、リソースとしてパーティション１３０＃０２に組み込むハードウェア部品が含まれるシステムボード１０２＃０１の番号とを取得する。また、マスタ１０１＃００は、パーティション１３０＃０２に対して組み込むコアの数を取得する。
【００２７】
（２）マスタ１０１＃００は、スレーブ１０１＃Ｓから、リソースとしてパーティション１３０に組み込むハードウェア部品が含まれるシステムボード１０２についての部品情報を取得する。次に、マスタ１０１＃００は、取得したリソース情報と部品情報とに基づいて、システムボード１０２に含まれるハードウェア部品の中から、パーティション１３０に組み込むハードウェア部品を特定する。そして、マスタ１０１は、特定したハードウェア部品のパーティション１３０への組み込み指示を生成する。
【００２８】
マスタ１０１＃００は、例えば、スレーブ１０１＃０１から、部品情報として、システムボード１０２＃０１に含まれる１以上のコアのそれぞれの識別情報を取得する。そして、マスタ１０１＃００は、取得した識別情報に基づいて、システムボード１０２＃０１に含まれるハードウェア部品の中から、取得したリソース情報に含まれる数分のコアを特定する。そして、マスタ１０１＃００は、特定したコアのパーティション１３０＃０２への組み込み指示を生成する。
【００２９】
マスタ１０１＃００は、具体的には、システムボード１０２＃０１をパーティション１３０＃０２に登録する。登録とは、システムボード１０２に論理番号を付与して、パーティション構成情報に追加することである。システムボード１０２の登録により、パーティション１３０へのシステムボード１０２の組み込み、リソースの組み込みなどのシステムボード１０２の操作が可能になる。
【００３０】
次に、マスタ１０１＃００は、システムボード１０２＃０１を制御するスレーブ１０１＃０１が記憶する部品情報の通知依頼を、スレーブ１０１＃０１に送信する。そして、マスタ１０１＃００は、送信した結果、スレーブ１０１＃０１から部品情報を受信する。次に、マスタ１０１＃００は、部品情報に基づいて、システムボード１０２＃０１に含まれるハードウェア部品の中から、パーティション１３０＃０２に組み込むコアになる取得したリソース情報に含まれる数分のコアを特定する。そして、マスタ１０１＃００は、特定したコアの情報を含む、特定したコアのパーティション１３０＃０２への組み込み指示を生成する。
【００３１】
（３）マスタ１０１＃００は、制御装置に、特定したハードウェア部品のパーティション１３０への組み込み指示を出力する。マスタ１０１＃００は、例えば、生成した組み込み指示を、パーティション１３０＃０２への組み込みを制御するスレーブ１０１＃０２に送信する。
【００３２】
スレーブ１０１＃０２は、組み込み指示を受信すると、特定されたハードウェア部品のパーティション１３０＃０２への組み込み処理を行う。スレーブ１０１＃０２は、例えば、システムボード１０２＃０１のパーティション１３０＃０２への接続処理を行う。次に、スレーブ１０１＃０２は、システムボード１０２＃０１に電源投入して、システムボード１０２をパーティション１３０＃０２に組み込む。
【００３３】
そして、スレーブ１０１＃０２は、パーティション１３０＃０２において稼動中のハイパーバイザやＯＳによって使用されるリソースとして、パーティション１３０＃０２に、特定されたハードウェア部品を組み込む。パーティション１３０へのシステムボード１０２の組み込みとリソースの組み込みとは、合わせて、パーティション１３０への追加とも呼ばれる。
【００３４】
このように、管理方法は、動的再構成において、パーティション１３０において稼動中のソフトウェアに使用されないハードウェア部品のパーティション１３０への組み込みを回避することができる。これにより、管理方法は、動的再構成にかかる時間を低減することができる。
【００３５】
管理方法は、具体的には、パーティション１３０を構築するいずれかのシステムボード１０２に含まれるハードウェア部品に故障があり、動的再構成によって他のシステムボード１０２を代替として組み込む場合に適用することができる。この場合では、管理方法は、動的再構成にかかる時間を低減した結果、故障があってから代替を組み込むまでのパーティション１３０の性能が低下する期間、またはパーティション１３０を用いた業務の再開までの期間を短縮することができる。
【００３６】
また、管理方法は、ＣＰＵやメモリの使用に対してライセンスや課金がされるパーティション１３０を構築するシステムボード１０２に含まれるハードウェア部品に故障があり、他のシステムボード１０２を代替として組み込む場合に適用することができる。この場合では、管理方法は、故障があるハードウェア部品の分だけ、他のシステムボード１０２に含まれるハードウェア部品を代替としてパーティション１３０に組み込むことができる。結果として、管理方法は、パーティション１３０をライセンスの範囲内で運用することができ、または課金される金額が増大することを防止することができる。
【００３７】
また、管理方法は、パーティション１３０ごとに、行われる業務や用途が異なる場合に適用することができる。この場合では、管理方法は、それぞれのパーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどによって使用されるハードウェア部品を規定することができる。これにより、管理方法は、行われる業務や用途に応じたハードウェア部品を、リソースとしてパーティション１３０に組み込むことができ、行われる業務や用途に支障なく、動的再構成にかかる時間を低減することができる。
【００３８】
また、管理方法は、パーティション１３０からの情報漏洩や、パーティション１３０への情報漏洩などを防止し、セキュリティを向上する場合に適用することができる。この場合では、管理方法は、特定の入出力先への入出力端子についてのリソース情報を受け付けないようにして、特定の入出力先への入出力端子がリソースとしてパーティション１３０へ組み込まれることを防止する。これにより、例えば、管理方法は、パーティション１３０に、インターネットに接続された入出力端子を使用させず、パーティション１３０からの情報漏洩を防止することができる。また、例えば、管理方法は、パーティション１３０に、機密情報が記憶されたディスクに接続された入出力端子を使用させず、機密情報が読み出されることを防止することができる。
【００３９】
ここでは、マスタ１０１＃Ｍが、クライアント装置１１０から、リソースを組み込むパーティション１３０の番号を受け付ける場合について説明したが、これに限らない。例えば、マスタ１０１＃Ｍは、いずれのパーティション１３０にも組み込まれていないシステムボード１０２の情報を管理し、当該システムボード１０２に含まれるハードウェア部品のパーティション１３０への組み込み指示を出力してもよい。また、マスタ１０１＃Ｍは、リソースを組み込むパーティション１３０以外の他のパーティション１３０に組み込み済みのシステムボード１０２を切り離してもよい。そして、マスタ１０１＃Ｍは、切り離したシステムボード１０２に含まれるハードウェア部品のパーティション１３０への組み込み指示を出力してもよい。
【００４０】
ここでは、マスタ１０１＃Ｍが、いずれかのスレーブ１０１＃Ｓが制御するシステムボード１０２に含まれるハードウェア部品のパーティション１３０への組み込み指示を出力する場合について説明したが、これに限らない。例えば、マスタ１０１＃Ｍは、マスタ１０１＃Ｍと同一のビルディングブロック１００に搭載された、マスタ１０１＃Ｍが制御するシステムボード１０２に含まれるハードウェア部品のパーティション１３０への組み込み指示を出力してもよい。
【００４１】
ここでは、マスタ１０１＃Ｍが、スレーブ１０１＃Ｓから、スレーブ１０１＃Ｓと同一のビルディングブロック１００に搭載されたシステムボード１０２についての部品情報を取得したが、これに限らない。例えば、マスタ１０１＃Ｍが、それぞれのビルディングブロック１００に搭載されたシステムボード１０２についての部品情報を、マスタ１０１＃Ｍが有する記憶装置に記憶しておき、記憶装置から読み出すことにより、取得してもよい。
【００４２】
また、マスタ１０１＃Ｍは、さらに、特定したハードウェア部品以外のハードウェア部品について、電源投入や故障診断が行われないように、スレーブ１０１＃Ｓやパーティション１３０を制御してもよい。これにより、マスタ１０１＃Ｍは、電源投入や故障診断にかかる時間を低減して、動的再構成にかかる時間をさらに低減するとともに、パーティション１３０における消費電力を低減することができる。
【００４３】
（サービスプロセッサ１０１のハードウェア）
次に、図２を用いて、図１に示したマスタ１０１＃Ｍ、またはスレーブ１０１＃Ｓになる、サービスプロセッサ１０１のハードウェアの一例について説明する。サービスプロセッサ１０１は、例えば、マザーボードに含まれるプロセッサなどである。
【００４４】
図２は、サービスプロセッサ１０１のハードウェアの一例を示すブロック図である。図２において、サービスプロセッサ１０１は、ＣＰＵ２０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３と、インターフェース（Ｉ／Ｆ：Ｉｎｔｅｒｆａｃｅ）２０４とを有する。また、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、Ｉ／Ｆ２０４とは、バス２００によってそれぞれ接続される。
【００４５】
ここで、ＣＰＵ２０１は、サービスプロセッサ１０１の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどの各種プログラムを記憶する。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。また、ＲＡＭ２０３は、各種プログラムの実行により得られたデータなどの各種データを記憶する。
【００４６】
Ｉ／Ｆ２０４は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他の装置に接続される。ネットワーク２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、制御ネットワーク１２０、または専用線などである。他の装置は、例えば、自サービスプロセッサ１０１と同一のビルディングブロック１００に搭載されたシステムボード１０２、他のサービスプロセッサ１０１などである。そして、Ｉ／Ｆ２０４は、ネットワーク２１０と、サービスプロセッサ１０１との接続部となり、外部装置からのデータの入出力を制御する。
【００４７】
（ビルディングブロック１００のハードウェア）
次に、図３を用いて、システムボード１０２と、図２に示したサービスプロセッサ１０１とが搭載されたビルディングブロック１００のハードウェアの一例について説明する。
【００４８】
図３は、ビルディングブロック１００のハードウェアの一例を示すブロック図である。図３において、ビルディングブロック１００は、サービスプロセッサ１０１と、システムボード１０２と、ＰＳＵ（Ｐｏｗｅｒ  Ｓｕｐｐｌｙ  Ｕｎｉｔ）３３０と、ＦＡＮ３４０とを有する。サービスプロセッサ１０１と、システムボード１０２、ＰＳＵ３３０、およびＦＡＮ３４０のそれぞれとは、専用線によって接続される。
【００４９】
システムボード１０２は、ハイパーバイザ、またはＯＳを動作させる。システムボード１０２は、ハイパーバイザ、またはＯＳによって管理される１以上のハードウェア部品を有する。システムボード１０２は、例えば、ＣＰＵ３２１と、メモリ３２２と、入出力端子（ＩＯ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）３２３とを有する。システムボード１０２は、クロスバーユニット３５０を介して、他のビルディングブロック１００に搭載された他のシステムボード１０２と接続される。入出力端子３２３は、例えば、ＬＡＮ３６０やディスク（Ｄｉｓｋ）３７０などの入出力先に接続される。ＬＡＮ３６０は、インターネットなどの外部ネットワークまで接続されてもよい。入出力端子３２３は、入出力先からのデータの入出力を制御する。
【００５０】
サービスプロセッサ１０１は、ハードウェアの構成管理、異常診断、電源制御、冷却制御などを司る。サービスプロセッサ１０１は、例えば、システムボード１０２を管理し、システムボード１０２によって構築されたパーティション１３０を管理する。サービスプロセッサ１０１は、ＬＡＮ３８０を介して、他のビルディングブロック１００に搭載された他のサービスプロセッサ１０１と接続される。ＬＡＮ３８０は、制御ネットワーク１２０である。
【００５１】
ＰＳＵ３３０は、サービスプロセッサ１０１の制御にしたがって、ビルディングブロック１００内の電源投入を行う。ＦＡＮ３４０は、サービスプロセッサ１０１の制御にしたがって、ビルディングブロック１００内を冷却する。ここでは、ビルディングブロック１００が、１つのシステムボード１０２を有する場合について説明したが、これに限らない。例えば、ビルディングブロック１００は、複数のシステムボード１０２を有してもよい。
【００５２】
（コンピュータシステム４００の一例）
次に、図４を用いて、図３に示したビルディングブロック１００を含むコンピュータシステム４００の一例について説明する。
【００５３】
図４は、コンピュータシステム４００の一例を示すブロック図である。コンピュータシステム４００は、複数のビルディングブロック１００と、クライアント装置１１０とを含む。ビルディングブロック１００に搭載されたシステムボード１０２は、クロスバー４１０によって接続される。ビルディングブロック１００に搭載されたサービスプロセッサ１０１と、クライアント装置１１０とは、制御ネットワーク１２０によって接続される。
【００５４】
ハードウェアパーティショニングを用いて、複数のビルディングブロック１００のいくつかが論理的に組み合わせられ、パーティション１３０が構築される。図４の例では、ビルディングブロック１００＃００によって、パーティション１３０＃００が構築される。ビルディングブロック１００＃０１によって、パーティション１３０＃０１が構築される。ビルディングブロック１００＃０２，＃０３によって、パーティション１３０＃０２が構築される。
【００５５】
それぞれのビルディングブロック１００に搭載されたサービスプロセッサ１０１のうち、１つのサービスプロセッサ１０１がマスタ１０１＃Ｍとして動作し、残余のサービスプロセッサ１０１のそれぞれがスレーブ１０１＃Ｓとして動作する。それぞれのサービスプロセッサ１０１は、ハードウェアの構成管理に用いられる、自サービスプロセッサ１０１が搭載されたビルディングブロック１００に搭載されたシステムボード１０２についてのハードウェア構成情報を記憶する。ハードウェア構成情報は、例えば、システムボード１０２に含まれるＣＰＵやコアの数、メモリ３２２のサイズ、入出力先ごとの入出力端子３２３の数などを示す情報である。また、マスタ１０１＃Ｍとなるサービスプロセッサ１０１は、パーティション１３０の構成管理に用いられる、パーティション構成情報を記憶する。
【００５６】
クライアント装置１１０は、利用者からの操作入力に応じて、マスタ１０１＃Ｍとなるサービスプロセッサ１０１に、パーティション１３０へのリソースの組み込み要求を送信する。また、クライアント装置１１０は、利用者からの操作入力に応じて、マスタ１０１＃Ｍとなるサービスプロセッサ１０１を介して、パーティション１３０で稼動中のハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって使用されるリソースの割り当て指示を送信する。
【００５７】
（クライアント装置１１０のハードウェア）
クライアント装置１１０のハードウェアの一例は、例えば、サービスプロセッサ１０１のハードウェアの一例と同様であるため、説明を省略する。クライアント装置１１０は、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、ノートＰＣ、タブレット端末、スマートフォンなどである。
【００５８】
クライアント装置１１０は、さらに、ディスクドライブとディスクとを有してもよい。ディスクは、磁気ディスクや光ディスクである。また、クライアント装置１１０は、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）と半導体メモリとを有してもよい。また、クライアント装置１１０は、ディスプレイ、キーボード、マウス、スキャナ、またはプリンタを有してもよい。
【００５９】
（情報処理装置５００の機能的構成例）
次に、図５を用いて、実施の形態にかかる管理システムを実現する情報処理装置５００の機能的構成例について説明する。図１の例であれば、マスタ１０１＃Ｍが、情報処理装置５００に対応し、情報処理装置５００として動作するコンピュータである。
【００６０】
図５は、情報処理装置５００の機能的構成例を示すブロック図である。情報処理装置５００は、制御部となる機能として、取得部５０１と、特定部５０２と、第１指示部５０３と、第２指示部５０４と、第３指示部５０５とを含む。
【００６１】
取得部５０１は、リソース情報を取得する。リソース情報とは、パーティション１３０に対して組み込み要求されたリソースを示す情報である。リソース情報は、例えば、パーティション１３０に対して組み込むコアの数、メモリ３２２のサイズ、入出力端子３２３の数や入出力先などである。リソース情報は、具体的には、図６に後述する設定量である。システムとは、同一のプログラムを動作させる環境である。システムは、例えば、ハードウェアパーティショニングを用いて、１以上のシステムボード１０２によって構築されたパーティション１３０である。
【００６２】
取得部５０１は、例えば、パーティション１３０に対して組み込み要求された演算リソースを示すリソース情報を取得する。演算リソースとは、ハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって演算に使用される資源である。演算リソースは、例えば、ＣＰＵ３２１、コアなどである。取得部５０１は、具体的には、パーティション１３０に対して組み込み要求されたリソースを示すコアの数を含むリソース情報を取得する。
【００６３】
取得部５０１は、例えば、パーティション１３０に対して組み込み要求された記憶リソースを示す情報を取得する。記憶リソースとは、ハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって記憶領域として使用される資源である。記憶リソースは、例えば、メモリ３２２などである。取得部５０１は、具体的には、パーティション１３０に対して組み込み要求されたリソースを示すメモリ３２２のサイズを含むリソース情報を取得する。
【００６４】
取得部５０１は、パーティション１３０に対して組み込み要求された入出力リソースを示すリソース情報を取得する。入出力リソースとは、ハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって入出力端子３２３などの入出力デバイスとして使用される資源である。取得部５０１は、具体的には、パーティション１３０に対して組み込み要求されたリソースを示す、特定の入出力先への入出力端子３２３の数を含むリソース情報を取得する。特定の入出力先は、例えば、ＬＡＮ３６０やディスク３７０である。これにより、取得部５０１は、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって使用されるハードウェア部品を特定する際に用いられる情報を、特定部５０２に出力することができる。
【００６５】
取得したデータは、例えば、ＲＡＭ２０３などの記憶領域に記憶される。取得部５０１は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０４により、その機能を実現する。ここで、図６の説明に移り、取得部５０１の動作の具体例について説明する。
【００６６】
＜取得部５０１の動作の具体例＞
図６は、取得部５０１の動作の具体例を示す説明図である。図６において、取得部５０１は、設定Ｉ／Ｆ処理部６１０と、設定処理部６２０のうち、一時保存処理部６２１と、判定処理部６２２と、保存処理部６２３とに対応する。
【００６７】
クライアント装置１１０は、利用者の操作入力により、リソースを組み込むパーティション１３０の番号と、パーティション１３０に組み込むハードウェア部品を有するビルディングブロック１００の番号との指定を受け付ける。また、クライアント装置１１０は、パーティション１３０に組み込むリソースを特定する情報を受け付ける。次に、クライアント装置１１０は、指定を受け付けたパーティション１３０の番号と、ビルディングブロック１００の番号と、リソースの量とを含む設定量６０１を生成する。リソースの量は、組み込むリソースの量である。リソースの量は、例えば、コアの数、メモリ３２２のサイズ、特定の入出力先への入出力端子３２３の数などである。そして、クライアント装置１１０は、生成した設定量６０１をマスタ１０１＃Ｍに送信する。
【００６８】
設定Ｉ／Ｆ処理部６１０は、クライアント装置１１０から、設定量６０１を受信する。設定Ｉ／Ｆ処理部６１０は、設定量６０１を受信すると、設定量６０１を設定処理部６２０に出力する。設定処理部６２０において、一時保存処理部６２１は、受信した設定量６０１を、一時記憶領域に、一時的に保存する。一時記憶領域は、ＲＡＭ２０３などの記憶領域である。
【００６９】
判定処理部６２２は、設定量６０１の妥当性を判定する。判定処理部６２２は、例えば、ＲＡＭ２０３から、判定基準情報を取得する。判定基準情報とは、リソースの量の上限を規定する情報である。リソースの量の上限とは、システムボード１０２に含まれるリソースの量の上限である。リソースの量の上限は、例えば、コアの数の上限、メモリ３２２のサイズの合計の上限、入出力先ごとの入出力端子３２３の数の上限などである。
【００７０】
次に、判定処理部６２２は、設定量６０１のリソースの量が、判定基準情報のリソースの量の上限以下であるか否かを判定する。ここで、判定処理部６２２は、設定量６０１のリソースの量が、判定基準情報のリソースの量の上限以下であれば、設定量６０１が妥当であると判断する。一方で、判定処理部６２２は、設定量６０１のリソースの量が、判定基準情報のリソースの量の上限より大きければ、設定量６０１が妥当ではないと判断する。
【００７１】
判定処理部６２２は、具体的には、設定量６０１に含まれるコアの数が、判定基準情報に含まれるコアの数の上限以下であるか否かを判定する。また、判定処理部６２２は、具体的には、設定量６０１に含まれるメモリ３２２のサイズの合計が、判定基準情報に含まれるメモリ３２２のサイズの合計の上限以下であるか否かを判定する。また、判定処理部６２２は、具体的には、設定量６０１に含まれる入出力先ごとの入出力端子３２３の数が、判定基準情報に含まれる入出力先ごとの入出力端子３２３の数の上限以下であるか否かを判定する。
【００７２】
ここで、判定処理部６２２は、コアの数の上限以下、かつ、メモリ３２２のサイズの合計の上限以下、かつ、入出力先ごとの入出力端子３２３の数の上限以下であれば、設定量６０１が妥当であると判断する。一方で、判定処理部６２２は、コアの数の上限より大きい、または、メモリ３２２のサイズの合計の上限より大きい、または、入出力先ごとの入出力端子３２３の数の上限より大きければ、設定量６０１が妥当ではないと判断する。
【００７３】
保存処理部６２３は、妥当であると判断された場合、設定量６０１を、必要量定義６０２として、データベースに保存する。データベースは、例えば、ＲＡＭ２０３に確保された記憶領域である。そして、保存処理部６２３は、データベースに保存すると、設定量６０１が妥当であることを示す情報を、クライアント装置１１０に送信することにより、クライアント装置１１０の利用者に通知する。
【００７４】
また、保存処理部６２３は、妥当ではないと判断された場合、設定量６０１を、データベースに保存しない。そして、保存処理部６２３は、設定量６０１が妥当ではないことを示す情報を、クライアント装置１１０に送信することにより、クライアント装置１１０の利用者に通知する。これにより、取得部５０１は、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって使用されるハードウェア部品を特定する際に用いられる情報を、特定部５０２に出力することができる。
【００７５】
図５の説明に戻り、特定部５０２は、取得部５０１が取得した設定量６０１と、部品情報とに基づいて、他のシステムボード１０２に含まれるハードウェア部品の中から、パーティション１３０に組み込むハードウェア部品を特定する。部品情報とは、１以上のシステムボード１０２と接続された他のシステムボード１０２に含まれるハードウェア部品を示す情報である。部品情報は、例えば、ハードウェア構成情報である。
【００７６】
特定部５０２は、例えば、１以上のシステムボード１０２と接続された他のシステムボード１０２を制御するスレーブ１０１＃Ｓから、１以上のシステムボード１０２と接続された他のシステムボード１０２に含まれるハードウェア部品を示す部品情報を取得する。そして、特定部５０２は、他のシステムボード１０２に含まれる１以上のコアの中から、取得部５０１が取得した設定量６０１に含まれる数分のコアを特定する。
【００７７】
また、特定部５０２は、他のシステムボード１０２に含まれる１以上のメモリ３２２の中から、取得部５０１が取得した設定量６０１に含まれるサイズ分のメモリ３２２を特定してもよい。また、特定部５０２は、他のシステムボード１０２に含まれる１以上の入出力端子３２３の中から、取得部５０１が取得した設定量６０１に含まれる特定の入出力先への入出力端子３２３の数分の、特定の入出力先への入出力端子３２３を特定してもよい。これにより、特定部５０２は、パーティション１３０に組み込まなくてもよいハードウェア部品は特定せず、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって使用されるハードウェア部品を特定することができる。
【００７８】
また、例えば、特定の入出力先への入出力端子３２３についてパーティション１３０による使用が禁止される場合がある。この場合、特定部５０２は、システムボード１０２に含まれる特定の入出力先への入出力端子３２３以外のハードウェア部品の中から、パーティション１３０に組み込むハードウェア部品を特定する。特定部５０２は、具体的には、システムボード１０２に含まれる、コンピュータシステム４００の外部にあるインターネットなどの外部ネットワークを入出力先にする入出力端子３２３以外のハードウェア部品を特定する。そして、特定部５０２は、特定したハードウェア部品の中から、パーティション１３０に組み込むハードウェア部品を特定する。これにより、特定部５０２は、パーティション１３０からの情報漏洩を防止することができる。
【００７９】
特定したデータは、例えば、ＲＡＭ２０３などの記憶領域に記憶される。特定部５０２は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０４により、その機能を実現する。
【００８０】
第１指示部５０３は、特定部５０２が特定したハードウェア部品への電源投入指示を、電源制御装置に出力する。電源制御装置とは、他のシステムボード１０２の電源投入を制御する装置である。電源制御装置は、例えば、他のシステムボード１０２と同一のビルディングブロック１００に搭載されたスレーブ１０１＃Ｓである。第１指示部５０３は、他のシステムボード１０２に対応するスレーブ１０１＃Ｓに、特定部５０２が特定したコアを有するＣＰＵ３２１、メモリ３２２、入出力端子３２３などへの電源投入指示を出力する。これにより、第１指示部５０３は、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって使用されないハードウェア部品には、電源投入されないようにすることができる。そして、第１指示部５０３は、パーティション１３０における消費電力の増大を抑制することができる。
【００８１】
電源投入指示は、例えば、ＲＡＭ２０３などの記憶領域に記憶される。第１指示部５０３は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０４により、その機能を実現する。
【００８２】
第２指示部５０４は、電源投入されたハードウェア部品に故障があるか否かの診断指示を、診断装置に出力する。診断装置とは、他のシステムボード１０２の故障診断を行う装置である。診断装置は、例えば、他のシステムボード１０２と同一のビルディングブロック１００に搭載されたスレーブ１０１＃Ｓである。第２指示部５０４は、他のシステムボード１０２に対応するスレーブ１０１＃Ｓに、特定部５０２が特定したコアを有するＣＰＵ３２１、メモリ３２２、入出力端子３２３などに故障があるか否かの診断指示を出力する。これにより、第２指示部５０４は、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって使用されないハードウェア部品について故障診断されないようにすることができる。
【００８３】
診断指示は、例えば、ＲＡＭ２０３などの記憶領域に記憶される。第２指示部５０４は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０４により、その機能を実現する。
【００８４】
第３指示部５０５は、特定したハードウェア部品のパーティション１３０への組み込み指示を、制御装置に出力する。制御装置とは、１以上のシステムボード１０２により構築されるパーティション１３０への組み込みを制御する装置である。制御装置は、例えば、パーティション１３０を構築するシステムボード１０２のいずれかと同一のビルディングブロック１００に搭載されたスレーブ１０１＃Ｓである。
【００８５】
制御装置は、例えば、受信した組み込み指示に基づいて、特定されたハードウェア部品のパーティション１３０への組み込み処理を行う。また、制御装置は、パーティション１３０に組み込まれたハードウェア部品が使用されないときには、パーティション１３０に組み込まれたハードウェア部品のパーティション１３０からの切り離し処理を行う。これにより、制御装置は、パーティション１３０に組み込まれたハードウェア部品を使用しないときには、他のパーティション１３０に組み込み可能なように、切り離しておくことができる。また、制御装置は、パーティション１３０に組み込まれたハードウェア部品を使用しないときには、ハードウェア部品を切り離して、パーティション１３０における消費電力の増大を抑制することができる。
【００８６】
第３指示部５０５は、具体的には、第１指示部５０３が電源投入指示を出力した結果、電源制御装置によってハードウェア部品に電源投入されたことを検出する。そして、第３指示部５０５は、電源制御装置によって電源投入されたハードウェア部品のパーティション１３０への組み込み指示を、制御装置に出力する。これにより、第３指示部５０５は、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって使用されるハードウェア部品に電源投入したうえで、パーティション１３０に組み込むことができる。
【００８７】
第３指示部５０５は、例えば、第２指示部５０４が診断指示を出力した結果、診断装置によって電源投入されたハードウェア部品に故障がないと診断されたことを検出する。そして、第３指示部５０５は、診断装置によって故障がないと診断されたハードウェア部品のパーティション１３０への組み込み指示を、制御装置に出力する。これにより、第３指示部５０５は、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって使用されるハードウェア部品に故障がなければ、パーティション１３０に組み込むことができる。
【００８８】
組み込み指示は、例えば、ＲＡＭ２０３などの記憶領域に記憶される。第３指示部５０５は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３などの記憶装置に記憶されたプログラムをＣＰＵ２０１に実行させることにより、または、Ｉ／Ｆ２０４により、その機能を実現する。ここで、図７および図８の説明に移り、特定部５０２、第１指示部５０３、第２指示部５０４、および第３指示部５０５の動作の具体例について説明する。
【００８９】
＜特定部５０２、第１指示部５０３、第２指示部５０４、および第３指示部５０５の動作の具体例＞
図７は、特定部５０２、第１指示部５０３、第２指示部５０４、および第３指示部５０５の動作の具体例を示す説明図である。
【００９０】
図７において、特定部５０２は、動的再構成Ｉ／Ｆ処理部７１０と、構成管理部７２０のうち、割当処理部７２１と、構成情報取得処理部７２２と、作成処理部７２３とに対応する。
【００９１】
第１指示部５０３と、第２指示部５０４とは、構成管理部７２０のうち、ＢＢ追加指示処理部７２４に対応する。第３指示部５０５は、構成管理部７２０のうち、リソース追加指示処理部７２５と、更新処理部７２６とに対応する。
【００９２】
クライアント装置１１０は、利用者の操作入力により、先立って送信した設定量６０１に基づく組み込み要求を生成する。そして、クライアント装置１１０は、生成した組み込み要求をマスタ１０１＃Ｍに送信する。
【００９３】
動的再構成Ｉ／Ｆ処理部７１０は、クライアント装置１１０から、組み込み要求を受信する。動的再構成Ｉ／Ｆ処理部７１０は、組み込み要求を受信すると、組み込み要求を構成管理部７２０に送信する。
【００９４】
割当処理部７２１は、データベースから、パーティション構成情報を取得する。また、割当処理部７２１は、一時記憶領域から、設定量６０１を読み出す。そして、割当処理部７２１は、読み出した設定量６０１にビルディングブロック１００の番号が含まれているビルディングブロック１００を、パーティション１３０に一時的に割り当てる。
【００９５】
構成情報取得処理部７２２は、パーティション１３０に一時的に割り当てたビルディングブロック１００に搭載されたスレーブ１０１＃Ｓに、ビルディングブロック１００に含まれるハードウェア部品を示すハードウェア構成情報の通知依頼を送信する。そして、構成情報取得処理部７２２は、送信した結果、スレーブ１０１＃Ｓから、ハードウェア構成情報を取得する。
【００９６】
作成処理部７２３は、データベースに記憶された必要量定義６０２を参照して、ハードウェア部品を特定する。作成処理部７２３は、例えば、必要量定義６０２が存在し、かつ、リソースの量が設定されていれば、ハードウェア構成情報に規定された縮退以外のハードウェア部品の中から、リソースの量分のハードウェア部品を特定する。縮退とは、故障があってシステムボード１０２から除外されたことであり、使用不可能であることである。そして、作成処理部７２３は、ハードウェア構成情報のうち、特定したハードウェア部品について割り当て済みを示す情報を設定する。
【００９７】
また、作成処理部７２３は、例えば、必要量定義６０２が存在しない場合は、ハードウェア構成情報に規定された縮退以外のすべてのハードウェア部品を特定する。そして、作成処理部７２３は、ハードウェア構成情報のうち、特定したハードウェア部品について割り当て済みを示す情報を設定する。
【００９８】
また、作成処理部７２３は、例えば、必要量定義６０２が存在し、一部の種類のハードウェア部品のリソース量が設定されていれば、ハードウェア構成情報に規定された、縮退以外のハードウェア部品を特定する。そして、作成処理部７２３は、特定したハードウェア部品の中から、リソースの量分の一部の種類のハードウェア部品を特定する。また、作成処理部７２３は、一部の種類以外の種類のハードウェア部品の中から、ハードウェア構成情報に規定された縮退以外のハードウェア部品を特定する。そして、作成処理部７２３は、ハードウェア構成情報のうち、特定したハードウェア部品について割り当て済みを示す情報を設定する。
【００９９】
作成処理部７２３は、ハードウェア構成情報を参照して、割り当て済みを示す情報が設定されたハードウェア部品を抽出する。作成処理部７２３は、抽出したハードウェア部品の情報を集めた必要リソース情報７０１を生成する。必要リソース情報７０１は、診断プログラム、ハイパーバイザ、ＯＳが認識可能なデータ構造で生成される。これにより、診断プログラムによる故障診断、またはハイパーバイザやＯＳによるリソースの組み込みの仕組みを変更しなくてもよくなる。
【０１００】
ＢＢ追加指示処理部７２４は、パーティション１３０に組み込む他のシステムボード１０２に対応するスレーブ１０１＃Ｓに、生成した必要リソース情報７０１とともに、システムボード１０２が搭載されたビルディングブロック１００の組み込み指示を出力する。ビルディングブロック１００の組み込み指示により、ビルディングブロック１００における電源投入、故障診断が行われる。ＢＢ追加指示処理部７２４は、ビルディングブロック１００の組み込みが失敗した場合、ビルディングブロック１００の組み込みが失敗したことを示す情報を、クライアント装置１１０に送信することにより、クライアント装置１１０の利用者に通知する。
【０１０１】
リソース追加指示処理部７２５は、ビルディングブロック１００の組み込みが完了した場合、パーティション１３０のハイパーバイザやＯＳに、必要リソース情報７０１とともに、リソースの組み込み指示を出力する。リソース追加指示処理部７２５は、リソースの組み込みが失敗した場合、リソースの組み込みが失敗したことを示す情報を、クライアント装置１１０に送信することにより、クライアント装置１１０の利用者に通知する。
【０１０２】
更新処理部７２６は、ＢＢ間通信部７３０を介して、ハイパーバイザやＯＳのリソースの組み込みの完了通知を受信する。更新処理部７２６は、ハイパーバイザやＯＳのリソースの組み込みが完了した場合、パーティション１３０の構成情報を更新する。また、更新処理部７２６は、リソースの組み込みが完了したことを示す情報を、クライアント装置１１０に出力することにより、クライアント装置１１０の利用者に通知する。ここで、図８の説明に移り、電源制御装置、および診断装置などになるスレーブ１０１＃Ｓの動作の具体例について説明する。
【０１０３】
＜スレーブ１０１＃Ｓの動作の具体例＞
図８は、スレーブ１０１＃Ｓの動作の具体例を示す説明図である。電源制御装置としてのスレーブ１０１＃Ｓは、構成管理部８２０の動的再構成処理部８２２のうち、電源投入指示処理部８２３に対応する。診断装置としてのスレーブ１０１＃Ｓは、構成管理部８２０の動的再構成処理部８２２のうち、診断指示処理部８２４に対応する。
【０１０４】
通知処理部８２１は、マスタ１０１＃Ｍから、ＢＢ間通信部８１０を介して、ハードウェア構成情報の通知依頼を受信する。次に、通知処理部８２１は、データベースから、ハードウェア構成情報を読み出し、マスタ１０１＃Ｍに送信する。
【０１０５】
電源投入指示処理部８２３は、マスタ１０１＃Ｍから、ＢＢ間通信部８１０を介して、ビルディングブロック１００の組み込み指示を受信する。ビルディングブロック１００の組み込み指示は、電源投入指示、および診断指示に対応する。次に、電源投入指示処理部８２３は、ビルディングブロック１００の組み込み指示に含まれる必要リソース情報７０１をＲＡＭ２０３などに保存する。
【０１０６】
電源投入指示処理部８２３は、必要リソース情報７０１に基づいて、電源制御部８３０に電源投入を要求する。電源制御部８３０は、必要リソース情報７０１に規定されたハードウェア部品に電源投入を行い、電源投入の完了応答を出力する。電源投入指示処理部８２３は、電源制御部８３０から電源投入に失敗したことが出力された場合には、電源投入に失敗したことを示す情報を、マスタ１０１＃Ｍに送信する。
【０１０７】
診断指示処理部８２４は、電源投入の完了応答があれば、必要リソース情報７０１に基づいて、診断プログラムに電源投入されたハードウェア部品の故障診断を要求する。診断プログラムは、必要リソース情報７０１に規定されたハードウェア部品の故障診断を行い、故障診断の完了応答を出力する。診断指示処理部８２４は、診断プログラムから故障があると診断したことが出力された場合には、故障があることを示す情報を、マスタ１０１＃Ｍに送信する。一方で、診断指示処理部８２４は、診断プログラムから故障がないと診断したことが出力された場合には、故障診断の完了応答を、マスタ１０１＃Ｍに送信する。
【０１０８】
これにより、スレーブ１０１＃Ｓは、電源制御装置、および診断装置として動作することができる。また、スレーブ１０１＃Ｓは、必要リソース情報７０１に規定された、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどのプログラムによって使用されるハードウェア部品以外には電源投入せず、消費電力の低減を図ることができる。また、スレーブ１０１＃Ｓは、必要リソース情報７０１に規定された、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどによって使用されるハードウェア部品以外について故障診断を行わず、動的再構成にかかる時間を低減することができる。
【０１０９】
（実施例１）
次に、図９〜図３１を用いて、実施例１について説明する。実施例１は、マスタ１０１＃Ｍによって、動的再構成にかかる時間を低減する一例である。
【０１１０】
＜設定量６０１を受け付ける流れ＞
図９は、設定量６０１を受け付ける流れを示す説明図である。図９において、（１１）マスタ１０１＃００（１０１＃Ｍ）は、動的再構成が行われる前に、ユーザインターフェースとなる設定ＣＬＩ９１０（Ｃｏｍｍａｎｄ  Ｌｉｎｅ  Ｉｎｔｅｒｆａｃｅ）によって、利用者からパーティション１３０に組み込むリソースを示す設定量６０１を受け付ける。ここで、図１０の説明に移り、設定量６０１のデータ構造について説明する。
【０１１１】
＜設定量６０１のデータ構造の一例＞
図１０は、設定量６０１のデータ構造の一例を示す説明図である。図１０に示すように、設定量６０１は、設定パラメータ項目に対応付けて、設定内容項目を有する。
【０１１２】
設定パラメータ項目には、パーティション１３０に組み込むＳＢ１０２のハードウェア部品に関する情報の種類が記憶される。設定内容項目には、設定パラメータ項目の種類に対応する、パーティション１３０に組み込むＳＢ１０２のハードウェア部品に関する情報が記憶される。設定内容項目に、情報が記憶されない場合は、「−」で表記される。
【０１１３】
種類「Ｐａｒｔｉｔｉｏｎ  ｎｕｍｂｅｒ」の設定内容は、例えば、ハードウェア部品が組み込まれるパーティション１３０の番号である。種類「ＢＢ  ｎｕｍｂｅｒ」の設定内容は、例えば、組み込むＳＢ１０２が搭載されたＢＢ１００の番号である。
【０１１４】
種類「Ｃｏｒｅ’ｓ」の設定内容は、例えば、パーティション１３０で稼動中のハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって使用されるコアの数である。種類「Ｍｅｍｏｒｙ  ｓｉｚｅ（ＧＢ）」の設定内容は、例えば、パーティション１３０で稼動中のハイパーバイザ、ＯＳやアプリケーションによって使用されるメモリ３２２のサイズである。
【０１１５】
種類「ＩＯ  ｓｌｏｔ  ｎｕｍｂｅｒ」の設定内容は、例えば、パーティション１３０で稼動中のハイパーバイザ、ＯＳやアプリケーションによって使用される、特定の入出力先への入出力端子３２３の数を特定する情報である。種類「ＩＯ  ｓｌｏｔ  ｎｕｍｂｅｒ」の設定内容は、具体的には、パーティション１３０で稼動中のハイパーバイザ、ＯＳやアプリケーションによって使用される入出力端子３２３のスロット番号である。種類「ＩＯ  ｓｌｏｔ  ｎｕｍｂｅｒ」の設定内容は、１以上の入出力端子３２３のスロット番号であってもよい。ここで、図１１の説明に移り、設定量６０１の具体例について説明する。
【０１１６】
＜設定量６０１の具体例＞
図１１は、設定量６０１の具体例を示す説明図である。図１１において、設定量６０１は、具体的には、種類「Ｐａｒｔｉｔｉｏｎ  ｎｕｍｂｅｒ」の設定内容となるパーティション１３０の番号「００」と、種類「ＢＢ  ｎｕｍｂｅｒ」の設定内容となるＢＢ１００の番号「０２」とを含む。また、設定量６０１は、種類「Ｃｏｒｅ’ｓ」の設定内容となるコアの数「２」と、種類「Ｍｅｍｏｒｙ  ｓｉｚｅ（ＧＢ）」の設定内容となるメモリ３２２のサイズ「３２」とを含む。また、設定量６０１は、種類「ＩＯ  ｓｌｏｔ  ｎｕｍｂｅｒ」の設定内容となる入出力端子３２３のスロット番号「０，４」を含む。
【０１１７】
ここで、マスタ１０１＃Ｍは、設定量６０１を受け付けると、設定量６０１の妥当性を判定する。次に、マスタ１０１＃Ｍは、妥当であると判定した場合には、必要リソース情報７０１を生成する。そして、マスタ１０１＃Ｍは、必要リソース情報７０１を記憶する。ここで、図１２の説明に移り、必要量定義６０２のデータ構造の一例について説明する。
【０１１８】
＜必要量定義６０２のデータ構造の一例＞
図１２は、必要量定義６０２のデータ構造の一例を示す説明図である。図１２に示すように、必要量定義６０２は、パーティション１３０の番号に対応付けられた、当該パーティション１３０に組み込むＳＢ１０２が搭載されたＢＢ１００の番号を含む。また、必要量定義６０２は、ＢＢ１００の番号に対応付けられた、当該ＢＢ１００に含まれるリソースであって、パーティション１３０に組み込むリソースを特定する情報を含む。ここで、図１３および図１４の説明に移り、必要量定義６０２の具体例について説明する。
【０１１９】
＜必要量定義６０２の具体例＞
図１３は、必要量定義６０２の具体例を示す説明図である。図１３の例は、パーティション１３０＃００に、ＢＢ１００＃０２に搭載されたＳＢ１０２＃０２に含まれるハードウェア部品を組み込む場合における一例である。
【０１２０】
図１３の例では、必要量定義６０２は、具体的には、パーティション１３０の番号「００」に対応付けられた、ＢＢ１００の番号「０２」を含む。また、設定量６０１は、ＢＢ１００の番号「０２」に対応付けられた、Ｃｏｒｅの数「２」と、メモリ３２２のサイズ「１６ＧＢ」と、入出力端子３２３のスロット番号「−（なし）」とを含む。
【０１２１】
これにより、マスタ１０１＃Ｍは、パーティション１３０＃００に動的再構成により組み込むハードウェア部品として、ＢＢ１００＃０２に搭載されたＳＢ１０２＃０２に含まれる２つのコア、１６ＧＢのメモリ３２２とを定義することができる。また、マスタ１０１＃Ｍは、パーティション１３０＃００に動的再構成により組み込むハードウェア部品に、入出力端子３２３はないことを定義することができる。
【０１２２】
＜必要量定義６０２の他の具体例＞
図１４は、必要量定義６０２の他の具体例を示す説明図である。図１４の例は、パーティション１３０＃００、およびパーティション１３０＃０３のそれぞれに、ＢＢ１００＃０２に搭載されたＳＢ１０２＃０２に含まれるハードウェア部品を組み込む場合における一例である。
【０１２３】
図１４の例では、必要量定義６０２は、具体的には、パーティション１３０の番号「００」に対応付けられた、ＢＢ１００の番号「０２」を含む。また、設定量６０１は、ＢＢ１００の番号「０２」に対応付けられた、Ｃｏｒｅの数「２」と、メモリ３２２のサイズ「１６」と、入出力端子３２３のスロット番号「０」とを含む。
【０１２４】
また、必要量定義６０２は、具体的には、パーティション１３０の番号「０３」に対応付けられた、ＢＢ１００の番号「０２」を含む。また、設定量６０１は、ＢＢ１００の番号「０２」に対応付けられた、Ｃｏｒｅの数「４」と、メモリ３２２のサイズ「３２」と、入出力端子３２３のスロット番号「−（なし）」とを含む。
【０１２５】
これにより、マスタ１０１＃Ｍは、パーティション１３０＃００に動的再構成により組み込むハードウェア部品として、ＢＢ１００＃０２に搭載されたＳＢ１０２＃０２に含まれる２つのコアや２５６ＧＢのメモリ３２２を定義することができる。また、マスタ１０１＃Ｍは、パーティション１３０＃００に動的再構成により組み込むハードウェア部品として、ＢＢ１００＃０２に搭載されたＳＢ１０２＃０２に含まれるスロット番号「０」の入出力端子３２３を定義することができる。
【０１２６】
また、マスタ１０１＃Ｍは、パーティション１３０＃０３に動的再構成により組み込むハードウェア部品として、ＢＢ１００＃０２に搭載されたＳＢ１０２＃０２に含まれる４つのコア、３２ＧＢのメモリ３２２とを定義することができる。また、マスタ１０１＃Ｍは、パーティション１３０＃０３に動的再構成により組み込むハードウェア部品に、入出力端子３２３はないことを定義することができる。
【０１２７】
結果として、マスタ１０１＃Ｍは、１つのシステムボード１０２のハードウェア部品の中で、複数のパーティション１３０のそれぞれに対して動的再構成により組み込むハードウェア部品を定義しておくことができる。このため、複数のパーティション１３０は、それぞれ、１つのシステムボード１０２を交代で使用することができる。
【０１２８】
具体的には、管理方法は、複数のパーティション１３０のいずれにも割り当てられていないフリーのシステムボード１０２に含まれるハードウェア部品を、複数のパーティション１３０のそれぞれにリソースとして組み込み可能にする場合に適用することができる。より具体的には、管理方法は、いわゆるシステムボードプール機能において行われる動的再構成に適用することができる。
【０１２９】
この場合、スレーブ１０１＃Ｓは、自サービスプロセッサ１０１が制御するパーティション１３０におけるＣＰＵ３２１やメモリ３２２の負荷を監視する。そして、スレーブ１０１＃Ｓは、負荷が一定以上になったとき、フリーのシステムボード１０２に含まれるハードウェア部品を、リソースとしてパーティション１３０に組み込むことができる。また、スレーブ１０１＃Ｓは、負荷が一定以下に戻ったとき、パーティション１３０からシステムボード１０２を切り離し、フリーのシステムボード１０２にしておくことができる。
【０１３０】
これにより、複数のパーティション１３０のそれぞれは、ハードウェア部品のパーティション１３０への組み込み、または切り離しにかかる時間が低減されているため、効率よくフリーのシステムボード１０２を使用することができる。例えば、パーティション１３０は、他のパーティション１３０がフリーのシステムボード１０２を使用中であるとき、他のパーティション１３０がフリーのシステムボード１０２を切り離すまで待機する時間が低減されるため、効率よく動作することができる。
【０１３１】
また、管理方法は、フリーのシステムボード１０２に含まれる特定の入出力先への入出力端子３２３を、複数のパーティション１３０のそれぞれにリソースとして組み込み不可能にすることができる。これにより、複数のパーティション１３０のそれぞれは、特定の入出力先に対してデータを送受信することができなくなり、セキュリティを向上することができる。例えば、管理方法は、複数のパーティション１３０のそれぞれに、インターネットに接続された入出力端子３２３を使用させず、パーティション１３０からの情報漏洩を防止することができる。また、例えば、管理方法は、複数のパーティション１３０のそれぞれに、機密情報が記憶されたディスク３７０に接続された入出力端子３２３を使用させず、機密情報が読み出されることを防止することができる。
【０１３２】
また、管理方法は、フリーのシステムボード１０２に含まれるテープやＤＶＤなどのバックアップ装置を、複数のパーティション１３０のそれぞれにリソースとして組み込み可能にすることができる。これにより、複数のパーティション１３０のそれぞれは、バックアップ装置への入出力端子３２３のみをリソースとして組み込むことができ、データのバックアップにかかる時間を低減することができる。
【０１３３】
＜設定処理手順の一例＞
図１５は、設定量６０１を受け付ける設定処理手順の一例を示すフローチャートである。図１５において、マスタ１０１＃Ｍは、利用者から設定量６０１を受け付ける（ステップＳ１５０１）。次に、マスタ１０１＃Ｍは、設定量６０１を、一時記憶領域に一時的に保存する（ステップＳ１５０２）。
【０１３４】
そして、マスタ１０１＃Ｍは、設定量６０１に含まれるパーティション１３０の番号に対応するパーティション１３０が存在するか否かを判定する（ステップＳ１５０３）。ここで、存在しない場合（ステップＳ１５０３：Ｎｏ）、マスタ１０１＃Ｍは、ステップＳ１５１０の処理に移行する。
【０１３５】
一方で、存在する場合（ステップＳ１５０３：Ｙｅｓ）、マスタ１０１＃Ｍは、設定量６０１に含まれるＢＢ１００の番号に対応するＢＢ１００が存在するか否かを判定する（ステップＳ１５０４）。ここで、存在しない場合（ステップＳ１５０４：Ｎｏ）、マスタ１０１＃Ｍは、ステップＳ１５１０の処理に移行する。
【０１３６】
一方で、存在する場合（ステップＳ１５０４：Ｙｅｓ）、マスタ１０１＃Ｍは、設定量６０１に含まれるコアの数が、判定基準情報に含まれるコアの上限以下であるか否かを判定する（ステップＳ１５０５）。ここで、上限より大きい場合（ステップＳ１５０５：Ｎｏ）、マスタ１０１＃Ｍは、ステップＳ１５１０の処理に移行する。
【０１３７】
一方で、上限以下である場合（ステップＳ１５０５：Ｙｅｓ）、マスタ１０１＃Ｍは、設定量６０１に含まれるメモリ３２２のサイズが、判定基準情報に含まれるサイズの上限以下であるか否かを判定する（ステップＳ１５０６）。ここで、上限より大きい場合（ステップＳ１５０６：Ｎｏ）、マスタ１０１＃Ｍは、ステップＳ１５１０の処理に移行する。
【０１３８】
一方で、上限以下である場合（ステップＳ１５０６：Ｙｅｓ）、マスタ１０１＃Ｍは、設定量６０１に含まれる特定の入出力先への入出力端子３２３の数が、判定基準情報に含まれる特定の入出力先への入出力端子３２３の数の上限以下であるか否かを判定する（ステップＳ１５０７）。ここで、上限より大きい場合（ステップＳ１５０７：Ｎｏ）、マスタ１０１＃Ｍは、ステップＳ１５１０の処理に移行する。
【０１３９】
一方で、上限以下である場合（ステップＳ１５０７：Ｙｅｓ）、マスタ１０１＃Ｍは、設定量６０１を、必要量定義６０２として、データベースに保存する（ステップＳ１５０８）。次に、マスタ１０１＃Ｍは、設定量６０１が妥当であることを示す情報を出力する（ステップＳ１５０９）。そして、マスタ１０１＃Ｍは、設定処理を終了する。
【０１４０】
一方で、マスタ１０１＃Ｍは、ステップＳ１５１０に移行した場合には、設定量６０１が妥当ではないことを示す情報を出力する（ステップＳ１５１０）。そして、マスタ１０１＃Ｍは、設定処理を終了する。
【０１４１】
これにより、マスタ１０１＃Ｍは、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどのソフトウェアによって使用されるハードウェア部品を特定する際に用いられる、必要量定義６０２を記憶することができる。
【０１４２】
＜パーティション１３０にハードウェア部品を組み込む流れ＞
次に、図１６を用いて、必要量定義６０２に基づいて、パーティション１３０にハードウェア部品を組み込む流れについて説明する。
【０１４３】
図１６は、パーティション１３０にハードウェア部品を組み込む流れを示す説明図である。図１６において、（２１）利用者は、マスタ１０１＃００（１０１＃Ｍ）に、ユーザインターフェース１６１０を介して、いずれかの番号のＢＢ１００をいずれかの番号のパーティション１３０へ追加する追加要求のコマンドを入力する。
【０１４４】
以下では、追加要求は、番号「０１」のＢＢ１００＃０２を、番号「０２」のパーティション１３０＃０２へ追加する要求であるとする。マスタ１０１＃００は、コマンドの入力を受け付けると、構成管理部１６２０に追加指示を出力する。
【０１４５】
（２２）マスタ１０１＃００の構成管理部１６２０は、追加指示を受信すると、データベースのパーティション構成情報を参照して、追加するＢＢ１００＃０１をパーティション１３０に登録する。そして、マスタ１０１＃００の構成管理部１６２０は、ＢＢ間通信機能を介して、追加するＢＢ１００＃０１のスレーブ１０１＃０１（１０１＃Ｓ）へハードウェア構成情報の通知指示を送信する。以下の説明では、追加するＢＢ１００を「追加ＢＢ１００」と表記する場合がある。
【０１４６】
（２３）追加ＢＢ１００＃０１に搭載されたスレーブ１０１＃０１の構成管理部１６３０は、データベースのハードウェア構成情報を読み出して、読み出したハードウェア構成情報をマスタ１０１＃００の構成管理部１６２０へ返送する。
【０１４７】
（２４）マスタ１０１＃００の構成管理部１６２０は、ハードウェア構成情報を受信する。マスタ１０１＃００の構成管理部１６２０は、作成処理部１６２１によって、データベースの必要量定義６０２を読み出す。マスタ１０１＃００の作成処理部１６２１は、受信したハードウェア構成情報と、読み出した必要量定義６０２に基づいて、必要リソース情報７０１を作成する。
【０１４８】
（２５）マスタ１０１＃００の構成管理部１６２０は、追加ＢＢ１００＃０１に搭載されたスレーブ１０１＃０１に、追加ＢＢ１００＃０１の電源投入指示を出力する。
【０１４９】
（２６）スレーブ１０１＃０１の構成管理部１６３０は、電源投入指示を受信する。そして、スレーブ１０１＃０１の構成管理部１６３０は、スレーブ１０１＃０１の電源制御部１６４０に、電源投入指示を出力する。
【０１５０】
（２７）スレーブ１０１＃０１の電源制御部１６４０は、電源投入指示を受信する。次に、スレーブ１０１＃０１の電源制御部１６４０は、追加ＢＢ１００＃０１のＰＳＵ３３０の電源投入、およびＦＡＮ３４０の回転などを行い、追加ＢＢ１００＃０１への電源投入を行う。そして、スレーブ１０１＃０１の電源制御部１６４０は、追加ＢＢ１００＃０１のＰＳＵ３３０を介して、ＣＰＵ３２１やメモリ３２２などのハードウェア部品への電源投入、および初期化を行う。スレーブ１０１＃０１の電源制御部１６４０は、ハードウェア部品への電源投入が完了すると、構成管理部１６２０に完了通知を返送する。
【０１５１】
（２８）スレーブ１０１＃０１の構成管理部１６３０は、電源投入の完了通知を受信する。スレーブ１０１＃０１の構成管理部１６３０は、電源投入の完了通知を受信すると、診断プログラムを起動するとともに、起動した診断プログラムに診断指示を出力する。
【０１５２】
（２９）診断プログラムは、ＣＰＵ３２１やメモリ３２２などのハードウェア部品の故障診断を行う。診断プログラムは、診断が完了すると、スレーブ１０１＃０１の構成管理部１６３０に、診断完了通知を返送する。
【０１５３】
（３０）スレーブ１０１＃０１の構成管理部１６３０は、診断完了通知を受信する。スレーブ１０１＃０１の構成管理部１６３０は、診断完了通知を受信すると、マスタ１０１＃００の構成管理部１６２０に、電源投入指示の完了通知を返送する。
【０１５４】
（３１）マスタ１０１＃００の構成管理部１６２０は、電源投入指示の完了通知を受信する。マスタ１０１＃００の構成管理部１６２０は、追加ＢＢ１００＃０１の追加先になるパーティション１３０＃０２を構築する、ＯＳが稼動中のＢＢ１００＃０２に搭載されたスレーブ１０１＃０２（１０１＃Ｓ）を特定する。そして、マスタ１０１＃００の構成管理部１６２０は、特定したスレーブ１０１＃０２の構成管理部１６５０に、必要リソース情報７０１とともに追加ＢＢ１００＃０１の追加指示を出力する。以下の説明では、ＯＳが稼動中のＢＢ１００を「ＯＳ稼動中ＢＢ１００」と表記する場合がある。
【０１５５】
（３２）ＯＳ稼動中ＢＢ１００＃０２のスレーブ１０１＃０２の構成管理部１６５０は、追加ＢＢ１００＃０１の追加指示を受信する。そして、スレーブ１０１＃０２の構成管理部１６５０は、ＳＰ／Ｐ間通信機能を介して、必要リソース情報７０１とともに追加ＢＢ１００＃０１の追加指示を、ハイパーバイザやＯＳに出力する。
【０１５６】
（３３）ハイパーバイザやＯＳは、ハードウェア部品のパーティション１３０への組み込みを行う。ハイパーバイザやＯＳは、組み込みが完了すると、ＳＰ／Ｐ間通信部１６６０を介して、構成管理部１６２０へ追加完了通知を返送する。
【０１５７】
（３４）スレーブ１０１＃０２の構成管理部１６５０は、追加完了通知を受信する。スレーブ１０１＃０２の構成管理部１６５０は、追加完了通知を受信すると、マスタ１０１＃００の構成管理部１６２０へ追加完了通知を返送する。
【０１５８】
（３５）マスタ１０１＃００の構成管理部１６２０は、追加完了通知を受信する。マスタ１０１＃００の構成管理部１６２０は、追加完了通知を受信すると、追加完了通知に基づいて、データベースのパーティション構成情報を更新する。そして、マスタ１０１＃００の構成管理部１６２０は、ＣＬＩに完了通知を返送する。
【０１５９】
これにより、マスタ１０１＃Ｍは、動的再構成によるハードウェア部品の組み込みを完了することができる。ここで、図１７〜図２３の説明に移り、マスタ１０１＃００の作成処理部１６２１の動作の一例について説明する。
【０１６０】
＜作成処理部１６２１の動作の一例＞
マスタ１０１＃００の作成処理部１６２１は、具体的には、図１７〜図１９に示すハードウェア部品のハードウェア構成情報を取得する。ハードウェア構成情報は、例えば、ＣＰＵ３２１のハードウェア構成情報１７００、メモリ３２２のハードウェア構成情報１８００、入出力端子３２３のハードウェア構成情報１９００などがある。ハードウェア構成情報は、例えば、図２に示したＲＯＭ２０２、ＲＡＭ２０３などの記憶領域によって実現される。
【０１６１】
・ＣＰＵ３２１のハードウェア構成情報１７００
図１７は、ＣＰＵ３２１のハードウェア構成情報１７００の一例を示す説明図である。図１７に示すように、ＣＰＵ３２１のハードウェア構成情報１７００は、部品名のフィールドに対応付けて、ＢＢ番号と、ＳＢ番号とを有する。また、ＣＰＵ３２１のハードウェア構成情報１７００は、部品名のフィールドに対応付けて、ＣＰＵ  Ｃｈｉｐ番号と、ＣＰＵ  Ｃｏｒｅ番号と、リソース番号と、周波数と、キャッシュサイズと、Ｖａｌｉｄと、割り当てフラグとのフィールドを有する。ＣＰＵ３２１のハードウェア構成情報１７００は、ハードウェア部品ごとに各フィールドに情報が設定されることにより、レコードを記憶する。
【０１６２】
部品名とは、ハードウェア部品の種類を示す種類名である。部品名は、例えば、ＣＰＵ３２１である。ＢＢ番号とは、部品名「ＣＰＵ」のハードウェア部品が含まれるＳＢ１０２が搭載されたＢＢ１００の番号である。ＳＢ番号とは、部品名「ＣＰＵ」のハードウェア部品が含まれるＳＢ１０２の番号である。ＣＰＵ  Ｃｈｉｐ番号とは、部品名「ＣＰＵ」のハードウェア部品の識別番号である。ＣＰＵ  Ｃｏｒｅ番号とは、部品名「ＣＰＵ」のハードウェア部品に含まれるコアの識別番号である。リソース番号とは、部品名「ＣＰＵ」のハードウェア部品の識別番号である。周波数とは、部品名「ＣＰＵ」のハードウェア部品の動作周波数である。キャッシュサイズとは、部品名「ＣＰＵ」のハードウェア部品が有するキャッシュメモリのサイズである。
【０１６３】
Ｖａｌｉｄとは、部品名「ＣＰＵ」のハードウェア部品に故障があるか否かを示すフラグである。Ｖａｌｉｄは、例えば、部品名「ＣＰＵ」のハードウェア部品に故障があり、縮退している場合には「０」である。Ｖａｌｉｄは、例えば、部品名「ＣＰＵ」のハードウェア部品に故障がない場合には「１」である。割り当てフラグとは、部品名「ＣＰＵ」のハードウェア部品をパーティション１３０に組み込むか否かを示すフラグである。割り当てフラグは、例えば、部品名「ＣＰＵ」のハードウェア部品をパーティション１３０に組み込まない場合には「０」である。割り当てフラグは、例えば、部品名「ＣＰＵ」のハードウェア部品をパーティション１３０に組み込む場合には「１」である。
【０１６４】
・メモリ３２２のハードウェア構成情報１８００
図１８は、メモリ３２２のハードウェア構成情報１８００の一例を示す説明図である。図１８に示すように、メモリ３２２のハードウェア構成情報１８００は、部品名のフィールドに対応付けて、ＢＢ番号と、ＳＢ番号とを有する。また、メモリ３２２のハードウェア構成情報１８００は、部品名のフィールドに対応付けて、ＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）グループ番号と、ＤＩＭＭスロット番号と、リソース番号と、ＤＩＭＭサイズと、Ｖａｌｉｄと、割り当てフラグとのフィールドを有する。メモリ３２２のハードウェア構成情報１８００は、ハードウェア部品ごとに各フィールドに情報が設定されることにより、レコードを記憶する。
【０１６５】
部品名とは、ハードウェア部品の種類を示す種類名である。部品名は、例えば、メモリ３２２である。ＢＢ番号とは、部品名「メモリ」のハードウェア部品が含まれるＳＢ１０２が搭載されたＢＢ１００の番号である。ＳＢ番号とは、部品名「メモリ」のハードウェア部品が含まれるＳＢ１０２の番号である。ＤＩＭＭグループ番号とは、部品名「メモリ」のハードウェア部品を取り付け可能なスロットを１以上有する取り付け箇所の識別番号である。リソース番号とは、部品名「メモリ」のハードウェア部品の識別番号である。ＤＩＭＭスロット番号とは、部品名「メモリ」のハードウェア部品が取り付けられたスロットの識別番号である。
【０１６６】
Ｖａｌｉｄとは、部品名「メモリ」のハードウェア部品に故障があるか否かを示すフラグである。Ｖａｌｉｄは、例えば、部品名「メモリ」のハードウェア部品に故障があり、縮退している場合には「０」である。Ｖａｌｉｄは、例えば、部品名「メモリ」のハードウェア部品に故障がない場合には「１」である。割り当てフラグとは、部品名「メモリ」のハードウェア部品をパーティション１３０に組み込むか否かを示すフラグである。割り当てフラグは、例えば、部品名「メモリ」のハードウェア部品をパーティション１３０に組み込まない場合には「０」である。割り当てフラグは、例えば、部品名「メモリ」のハードウェア部品をパーティション１３０に組み込む場合には「１」である。
【０１６７】
・入出力端子３２３のハードウェア構成情報１９００
図１９は、入出力端子３２３のハードウェア構成情報１９００の一例を示す説明図である。図１９に示すように、入出力端子３２３のハードウェア構成情報１９００は、部品名のフィールドに対応付けて、ＢＢ番号と、ＳＢ番号と、ＩＯチャネル番号と、ＰＣＩスロット番号と、リソース番号と、Ｖａｌｉｄと、割り当てフラグとのフィールドを有する。入出力端子３２３のハードウェア構成情報１９００は、ハードウェア部品ごとに各フィールドに情報が設定されることにより、レコードを記憶する。
【０１６８】
部品名とは、ハードウェア部品の種類を示す種類名である。部品名は、例えば、入出力端子３２３である。ＢＢ番号とは、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品が含まれるＳＢ１０２が搭載されたＢＢ１００の番号である。ＳＢ番号とは、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品が含まれるＳＢ１０２の番号である。ＩＯチャネル番号とは、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品からの入出力経路の識別番号である。ＰＣＩスロット番号とは、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品が取り付けられたスロットの識別番号である。リソース番号とは、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品の識別番号である。
【０１６９】
Ｖａｌｉｄとは、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品に故障があるか否かを示すフラグである。Ｖａｌｉｄは、例えば、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品に故障があり、縮退している場合には「０」である。Ｖａｌｉｄは、例えば、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品に故障がない場合には「１」である。割り当てフラグとは、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品をパーティション１３０に組み込むか否かを示すフラグである。割り当てフラグは、例えば、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品をパーティション１３０に組み込まない場合には「０」である。割り当てフラグは、例えば、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品をパーティション１３０に組み込む場合には「１」である。
【０１７０】
ここで、マスタ１０１＃００の作成処理部１６２１は、図２０〜図２２に後述するように、必要量定義６０２に基づいて、図１７〜図１９に示すハードウェア部品のハードウェア構成情報の割り当てフラグを更新する。
【０１７１】
・ＣＰＵ３２１のハードウェア構成情報１７００の更新
図２０は、ＣＰＵ３２１のハードウェア構成情報１７００を更新する一例を示す説明図である。マスタ１０１＃００の作成処理部１６２１は、必要量定義６０２に規定されたコアの数分、最も小さいリソース番号のハードウェア部品から順に、パーティション１３０に組み込むコアを設定する。
【０１７２】
マスタ１０１＃００の作成処理部１６２１は、例えば、最も小さいリソース番号のハードウェア部品から順に、コアを選択する。次に、マスタ１０１＃００の作成処理部１６２１は、Ｖａｌｉｄに基づいて、選択したコアに故障があるか否かを判定する。ここで、マスタ１０１＃００の作成処理部１６２１は、故障がなければ、選択したコアを、パーティション１３０に組み込むコアに決定して、割り当てフラグを「１」に設定する。
【０１７３】
一方で、マスタ１０１＃００の作成処理部１６２１は、故障があれば、選択したコアを、パーティション１３０に組み込むコアにしない。マスタ１０１＃００の作成処理部１６２１は、割り当てフラグを「１」に設定したコアの数が、必要量定義６０２に規定されたコアの数「２」以上になれば、ＣＰＵ３２１のハードウェア構成情報１７００の更新を終了する。
【０１７４】
・メモリ３２２のハードウェア構成情報１８００の更新
図２１は、メモリ３２２のハードウェア構成情報１８００を更新する一例を示す説明図である。マスタ１０１＃００の作成処理部１６２１は、必要量定義６０２に規定されたメモリ３２２のサイズ分、最も小さいリソース番号のハードウェア部品から順に、パーティション１３０に組み込むメモリ３２２を設定する。
【０１７５】
マスタ１０１＃００の作成処理部１６２１は、例えば、最も小さいリソース番号のハードウェア部品から順に、メモリ３２２を選択する。次に、マスタ１０１＃００の作成処理部１６２１は、Ｖａｌｉｄに基づいて、選択したメモリ３２２に故障があるか否かを判定する。ここで、マスタ１０１＃００の作成処理部１６２１は、故障がなければ、選択したメモリ３２２を、パーティション１３０に組み込むメモリ３２２に決定して、割り当てフラグを「１」に設定する。
【０１７６】
一方で、マスタ１０１＃００の作成処理部１６２１は、故障があれば、選択したメモリ３２２を、パーティション１３０に組み込むメモリ３２２にしない。マスタ１０１＃００の作成処理部１６２１は、割り当てフラグを「１」に設定したメモリ３２２のサイズの合計が、必要量定義６０２に規定されたメモリ３２２のサイズ「３２」以上になれば、メモリ３２２のハードウェア構成情報１８００の更新を終了する。
【０１７７】
・入出力端子３２３のハードウェア構成情報１９００の更新
図２２は、入出力端子３２３のハードウェア構成情報１９００を更新する一例を示す説明図である。マスタ１０１＃００の作成処理部１６２１は、パーティション１３０に組み込む入出力端子３２３を設定する。
【０１７８】
マスタ１０１＃００の作成処理部１６２１は、例えば、Ｖａｌｉｄに基づいて、必要量定義６０２に規定されたＰＣＩスロット番号の入出力端子３２３を、順に選択する。そして、マスタ１０１＃００の作成処理部１６２１は、選択した入出力端子３２３について、故障があるか否かを判定する。ここで、マスタ１０１＃００の作成処理部１６２１は、故障がなければ、選択した入出力端子３２３を、パーティション１３０に組み込む入出力端子３２３に決定して、割り当てフラグを「１」に設定する。
【０１７９】
一方で、マスタ１０１＃００の作成処理部１６２１は、故障があれば、選択した入出力端子３２３を、パーティション１３０に組み込む入出力端子３２３にしない。マスタ１０１＃００の作成処理部１６２１は、必要量定義６０２に規定されたＰＣＩスロット番号の入出力端子３２３を選択し終わると、入出力端子３２３のハードウェア構成情報１９００の更新を終了する。
【０１８０】
ここで、マスタ１０１＃００の作成処理部１６２１は、図２０〜図２２において更新したハードウェア構成情報に基づいて、必要リソース情報７０１を生成する。マスタ１０１＃００の作成処理部１６２１は、例えば、必要リソース情報７０１を格納する記憶領域を、確保する。
【０１８１】
次に、マスタ１０１＃００の作成処理部１６２１は、パーティションの番号やＢＢの番号などのハードウェア部品以外についての情報を、確保した記憶領域に格納する。そして、マスタ１０１＃００の作成処理部１６２１は、ハードウェア部品のハードウェア構成情報から、割り当てフラグが「１」に設定されたレコードの情報を抽出する。
【０１８２】
次に、マスタ１０１＃００の作成処理部１６２１は、抽出したレコードの情報を、確保した記憶領域に格納する。そして、マスタ１０１＃００の作成処理部１６２１は、図２３に後述する必要リソース情報７０１を生成する。
【０１８３】
・必要リソース情報７０１
図２３は、必要リソース情報７０１の一例を示す説明図である。必要リソース情報７０１は、例えば、パーティションの番号「ｐｐａｒ＿ｉｄ＝０２」に対応付けて、ＢＢの番号「ｂｂ＿ｎｕｍ＝０２」やＳＢの番号「ｓｂ＿ｎｕｍ＝００」などを含む。また、必要リソース情報７０１は、例えば、ＳＢの番号「ｓｂ＿ｎｕｍ＝００」に対応付けて、ＣＰＵ３２１のハードウェア構成情報１７００である「ｃｐｕ＿ｎｕｍ＝００」、「ｆｒｅｑｕｅｎｃｙ＝３．０」、「ｃａｓｈ＿ｓｉｚｅ＝６４」などを含む。これにより、マスタ＃Ｍは、パーティション１３０に組み込むハードウェア部品を特定する際に用いられる情報を生成することができる。
【０１８４】
（必要リソース情報特定処理手順の一例）
図２４は、必要リソース情報特定処理手順の一例を示すフローチャートである。図２４において、マスタ１０１＃Ｍは、コアの必要リソース情報７０１の特定処理を実行する（ステップＳ２４０１）。次に、マスタ１０１＃Ｍは、メモリ３２２の必要リソース情報７０１の特定処理を実行する（ステップＳ２４０２）。そして、マスタ１０１＃Ｍは、入出力端子３２３の必要リソース情報７０１の特定処理を実行する（ステップＳ２４０３）。マスタ１０１＃Ｍは、必要リソース情報特定処理を終了する。これにより、マスタ１０１＃Ｍは、パーティション１３０に組み込むハードウェア部品についての必要リソース情報７０１を生成する際に用いられる、コアやメモリ３２２や入出力端子３２３を特定することができる。
【０１８５】
（コアの必要リソース情報７０１の特定処理手順の一例）
図２５は、ステップＳ２４０１に示した、コアの必要リソース情報７０１の特定処理手順の一例を示すフローチャートである。図２５において、マスタ１０１＃Ｍは、必要リソース情報７０１に、コアの数が含まれるか否かを判定する（ステップＳ２５０１）。
【０１８６】
ここで、含まれない場合（ステップＳ２５０１：Ｎｏ）、マスタ１０１＃Ｍは、すべてのＣＰＵ３２１についてのハードウェア構成情報を選択する（ステップＳ２５０２）。次に、マスタ１０１＃Ｍは、すべてのＣＰＵ３２１についてのハードウェア構成情報について、割り込みフラグ「１」を設定する（ステップＳ２５０３）。そして、マスタ１０１＃Ｍは、コアの必要リソース情報７０１の特定処理を終了する。
【０１８７】
一方で、ＣＰＵ３２１の数「０」が含まれる場合（ステップＳ２５０１：０）、マスタ１０１＃Ｍは、コアの必要リソース情報７０１の特定処理を終了する。
【０１８８】
他方で、ＣＰＵ３２１の数「１以上」が含まれる場合（ステップＳ２５０１：１以上）、マスタ１０１＃Ｍは、最も小さいリソース番号のコアを選択する（ステップＳ２５０４）。次に、マスタ１０１＃Ｍは、ＣＰＵ３２１のハードウェア構成情報１７００の中に、選択したコアについての情報があるか否かを判定する（ステップＳ２５０５）。ここで、情報がない場合（ステップＳ２５０５：Ｎｏ）、マスタ１０１＃Ｍは、コアの必要リソース情報７０１の特定処理を終了する。
【０１８９】
一方で、情報がある場合（ステップＳ２５０５：Ｙｅｓ）、マスタ１０１＃Ｍは、Ｖａｌｉｄに基づいて、選択したコアに故障があるか否かを判定する（ステップＳ２５０６）。ここで、故障がある場合（ステップＳ２５０６：Ｙｅｓ）、マスタ１０１＃Ｍは、次に小さいリソース番号のコアを選択して（ステップＳ２５０７）、ステップＳ２５０５の処理に戻る。
【０１９０】
一方で、故障がない場合（ステップＳ２５０６：Ｎｏ）、マスタ１０１＃Ｍは、選択したコアについて割り当てフラグ「１」を設定する（ステップＳ２５０８）。次に、マスタ１０１＃Ｍは、割り当てフラグ「１」を割り当てたコアの数が、必要量定義６０２に含まれるコアの数以上であるか否かを判定する（ステップＳ２５０９）。ここで、必要量定義６０２に含まれるコアの数より小さい場合（ステップＳ２５０９：Ｎｏ）、マスタ１０１＃Ｍは、ステップＳ２５０７の処理に移行する。
【０１９１】
一方で、必要量定義６０２に含まれるコアの数以上である場合（ステップＳ２５０９：Ｙｅｓ）、マスタ１０１＃Ｍは、コアの必要リソース情報７０１の特定処理を終了する。これにより、マスタ１０１＃Ｍは、必要リソース情報７０１を生成する際に用いられるコアを特定することができる。
【０１９２】
（メモリ３２２の必要リソース情報７０１の特定処理手順の一例）
図２６は、ステップＳ２４０２に示した、メモリ３２２の必要リソース情報７０１の特定処理手順の一例を示すフローチャートである。図２６において、マスタ１０１＃Ｍは、必要リソース情報７０１に、メモリ３２２のサイズが含まれるか否かを判定する（ステップＳ２６０１）。
【０１９３】
ここで、含まれない場合（ステップＳ２６０１：Ｎｏ）、マスタ１０１＃Ｍは、すべてのメモリ３２２についてのハードウェア構成情報を選択する（ステップＳ２６０２）。次に、マスタ１０１＃Ｍは、すべてのメモリ３２２についてのハードウェア構成情報について、割り込みフラグ「１」を設定する（ステップＳ２６０３）。そして、マスタ１０１＃Ｍは、メモリ３２２の必要リソース情報７０１の特定処理を終了する。
【０１９４】
一方で、メモリ３２２のサイズ「０」が含まれる場合（ステップＳ２６０１：０）、マスタ１０１＃Ｍは、メモリ３２２の必要リソース情報７０１の特定処理を終了する。
【０１９５】
他方で、メモリ３２２のサイズ「１以上」が含まれる場合（ステップＳ２６０１：１以上）、マスタ１０１＃Ｍは、最も小さいリソース番号のメモリ３２２を選択する（ステップＳ２６０４）。次に、マスタ１０１＃Ｍは、メモリ３２２のハードウェア構成情報１８００の中に、選択したメモリ３２２についての情報があるか否かを判定する（ステップＳ２６０５）。ここで、情報がない場合（ステップＳ２６０５：Ｎｏ）、マスタ１０１＃Ｍは、メモリ３２２の必要リソース情報７０１の特定処理を終了する。
【０１９６】
一方で、情報がある場合（ステップＳ２６０５：Ｙｅｓ）、マスタ１０１＃Ｍは、Ｖａｌｉｄに基づいて、選択したメモリ３２２に故障があるか否かを判定する（ステップＳ２６０６）。ここで、故障がある場合（ステップＳ２６０６：Ｙｅｓ）、マスタ１０１＃Ｍは、次に小さいリソース番号のメモリ３２２を選択して（ステップＳ２６０７）、ステップＳ２６０５の処理に戻る。
【０１９７】
一方で、故障がない場合（ステップＳ２６０６：Ｎｏ）、マスタ１０１＃Ｍは、選択したメモリ３２２について割り当てフラグ「１」を設定する（ステップＳ２６０８）。次に、マスタ１０１＃Ｍは、割り当てフラグ「１」を割り当てたメモリ３２２のサイズの合計が、必要量定義６０２に含まれるメモリ３２２のサイズ以上であるか否かを判定する（ステップＳ２６０９）。ここで、必要量定義６０２に含まれるメモリ３２２のサイズより小さい場合（ステップＳ２６０９：Ｎｏ）、マスタ１０１＃Ｍは、ステップＳ２６０７の処理に移行する。
【０１９８】
一方で、必要量定義６０２に含まれるメモリ３２２のサイズ以上である場合（ステップＳ２６０９：Ｙｅｓ）、マスタ１０１＃Ｍは、メモリ３２２の必要リソース情報７０１の特定処理を終了する。これにより、マスタ１０１＃Ｍは、必要リソース情報７０１を生成する際に用いられるメモリ３２２を特定することができる。
【０１９９】
（入出力端子３２３の必要リソース情報７０１の特定処理手順の一例）
図２７は、ステップＳ２４０３に示した、入出力端子３２３の必要リソース情報７０１の特定処理手順の一例を示すフローチャートである。図２７において、マスタ１０１＃Ｍは、必要リソース情報７０１に、入出力端子３２３のスロット番号が含まれるか否かを判定する（ステップＳ２７０１）。
【０２００】
ここで、含まれない場合（ステップＳ２７０１：Ｎｏ）、マスタ１０１＃Ｍは、すべての入出力端子３２３についてのハードウェア構成情報を選択する（ステップＳ２７０２）。次に、マスタ１０１＃Ｍは、すべての入出力端子３２３についてのハードウェア構成情報について、割り込みフラグ「１」を設定する（ステップＳ２７０３）。そして、マスタ１０１＃Ｍは、入出力端子３２３の必要リソース情報７０１の特定処理を終了する。
【０２０１】
一方で、入出力端子３２３のスロット番号「−（なし）」が含まれる場合（ステップＳ２７０１：−）、マスタ１０１＃Ｍは、入出力端子３２３の必要リソース情報７０１の特定処理を終了する。
【０２０２】
他方で、入出力端子３２３のスロット番号が含まれる場合（ステップＳ２７０１：Ｙｅｓ）、マスタ１０１＃Ｍは、最も小さいリソース番号の入出力端子３２３を選択する（ステップＳ２７０４）。次に、マスタ１０１＃Ｍは、入出力端子３２３のハードウェア構成情報１９００の中に、選択した入出力端子３２３についての情報があるか否かを判定する（ステップＳ２７０５）。ここで、情報がない場合（ステップＳ２７０５：Ｎｏ）、マスタ１０１＃Ｍは、入出力端子３２３の必要リソース情報７０１の特定処理を終了する。
【０２０３】
一方で、情報がある場合（ステップＳ２７０５：Ｙｅｓ）、マスタ１０１＃Ｍは、必要リソース情報７０１に含まれる入出力端子３２３のスロット番号が、選択した入出力端子３２３のスロット番号と一致するか否かを判定する（ステップＳ２７０６）。ここで、一致しない場合（ステップＳ２７０６：Ｎｏ）、マスタ１０１＃Ｍは、次に小さいリソース番号の入出力端子３２３を選択して（ステップＳ２７０７）、ステップＳ２７０５の処理に戻る。
【０２０４】
一方で、一致する場合（ステップＳ２７０６：Ｙｅｓ）、マスタ１０１＃Ｍは、Ｖａｌｉｄに基づいて、選択した入出力端子３２３に故障があるか否かを判定する（ステップＳ２７０８）。ここで、故障がある場合（ステップＳ２７０８：Ｙｅｓ）、マスタ１０１＃Ｍは、ステップＳ２７０７の処理に移行する。
【０２０５】
一方で、故障がない場合（ステップＳ２７０８：Ｎｏ）、マスタ１０１＃Ｍは、選択した入出力端子３２３について割り当てフラグ「１」を設定する（ステップＳ２７０９）。次に、マスタ１０１＃Ｍは、必要量定義６０２に含まれる入出力先のすべてについて、対応する入出力端子３２３に割り当てフラグ「１」を割り当てたか否かを判定する（ステップＳ２７１０）。ここで、割り当てていない場合（ステップＳ２７１０：Ｎｏ）、マスタ１０１＃Ｍは、ステップＳ２７０７の処理に移行する。
【０２０６】
一方で、割り当てた場合（ステップＳ２７１０：Ｙｅｓ）、マスタ１０１＃Ｍは、入出力端子３２３の必要リソース情報７０１の特定処理を終了する。これにより、マスタ１０１＃Ｍは、必要リソース情報７０１を生成する際に用いられる入出力端子３２３を特定することができる。
【０２０７】
（必要リソース情報作成処理手順の一例）
図２８は、必要リソース情報作成処理手順の一例を示すフローチャートである。図２８において、マスタ１０１＃Ｍは、設定量６０１を格納する記憶領域を、確保する（ステップＳ２８０１）。そして、マスタ１０１＃Ｍは、パーティションの番号やＢＢの番号などのハードウェア部品以外についての情報を、確保した記憶領域に格納する（ステップＳ２８０２）。
【０２０８】
次に、マスタ１０１＃Ｍは、コアの必要リソース情報７０１の作成処理を実行する（ステップＳ２８０３）。そして、マスタ１０１＃Ｍは、コアの必要リソース情報７０１を、確保した記憶領域に格納する（ステップＳ２８０４）。
【０２０９】
次に、マスタ１０１＃Ｍは、メモリ３２２の必要リソース情報７０１の作成処理を実行する（ステップＳ２８０５）。そして、マスタ１０１＃Ｍは、メモリ３２２の必要リソース情報７０１を、確保した記憶領域に格納する（ステップＳ２８０６）。
【０２１０】
次に、マスタ１０１＃Ｍは、入出力端子３２３の必要リソース情報７０１の作成処理を実行する（ステップＳ２８０７）。そして、マスタ１０１＃Ｍは、入出力端子３２３の必要リソース情報７０１を、確保した記憶領域に格納する（ステップＳ２８０８）。
【０２１１】
その後、マスタ１０１＃Ｍは、必要リソース情報作成処理を終了する。これにより、マスタ１０１＃Ｍは、パーティション１３０に組み込むハードウェア部品についての必要リソース情報７０１を生成することができる。
【０２１２】
（コアの必要リソース情報７０１の作成処理手順の一例）
図２９は、ステップＳ２８０３に示した、コアの必要リソース情報７０１の作成処理手順の一例を示すフローチャートである。図２９において、マスタ１０１＃Ｍは、コアの必要リソース情報７０１を格納する記憶領域を割り当てる（ステップＳ２９０１）。
【０２１３】
次に、マスタ１０１＃Ｍは、最も小さいリソース番号のコアを選択する（ステップＳ２９０２）。そして、マスタ１０１＃Ｍは、ＣＰＵ３２１のハードウェア構成情報１７００の中に、選択したコアについての情報があるか否かを判定する（ステップＳ２９０３）。ここで、情報がない場合（ステップＳ２９０３：Ｎｏ）、マスタ１０１＃Ｍは、コアの必要リソース情報７０１の作成処理を終了する。
【０２１４】
一方で、情報がある場合（ステップＳ２９０３：Ｙｅｓ）、マスタ１０１＃Ｍは、選択したコアについての割り当てフラグが「１」であるか否かを判定する（ステップＳ２９０４）。ここで、１ではない場合（ステップＳ２９０４：Ｎｏ）、マスタ１０１＃Ｍは、次に小さいリソース番号のコアを選択して（ステップＳ２９０５）、ステップＳ２９０３の処理に戻る。
【０２１５】
一方で、１である場合（ステップＳ２９０４：Ｙｅｓ）、マスタ１０１＃Ｍは、選択したコアについて必要リソース情報７０１を、割り当てた記憶領域に格納する（ステップＳ２９０６）。次に、マスタ１０１＃Ｍは、次に小さいリソース番号のコアがあるか否かを判定する（ステップＳ２９０７）。ここで、コアがある場合（ステップＳ２９０７：Ｙｅｓ）、マスタ１０１＃Ｍは、ステップＳ２９０５の処理に移行する。
【０２１６】
一方で、コアがない場合（ステップＳ２９０７：Ｎｏ）、マスタ１０１＃Ｍは、コアの必要リソース情報７０１の作成処理を終了する。これにより、マスタ１０１＃Ｍは、コアについての必要リソース情報７０１を生成することができる。
【０２１７】
（メモリ３２２の必要リソース情報７０１の作成処理手順の一例）
図３０は、ステップＳ２８０５に示した、メモリ３２２の必要リソース情報７０１の作成処理手順の一例を示すフローチャートである。図３０において、マスタ１０１＃Ｍは、メモリ３２２の必要リソース情報７０１を格納する記憶領域を割り当てる（ステップＳ３００１）。
【０２１８】
次に、マスタ１０１＃Ｍは、最も小さいリソース番号のメモリ３２２を選択する（ステップＳ３００２）。そして、マスタ１０１＃Ｍは、メモリ３２２のハードウェア構成情報１８００の中に、選択したメモリ３２２についての情報があるか否かを判定する（ステップＳ３００３）。ここで、情報がない場合（ステップＳ３００３：Ｎｏ）、マスタ１０１＃Ｍは、メモリ３２２の必要リソース情報７０１の作成処理を終了する。
【０２１９】
一方で、情報がある場合（ステップＳ３００３：Ｙｅｓ）、マスタ１０１＃Ｍは、選択したメモリ３２２についての割り当てフラグが「１」であるか否かを判定する（ステップＳ３００４）。ここで、１ではない場合（ステップＳ３００４：Ｎｏ）、マスタ１０１＃Ｍは、次に小さいリソース番号のメモリ３２２を選択して（ステップＳ３００５）、ステップＳ３００３の処理に戻る。
【０２２０】
一方で、１である場合（ステップＳ３００４：Ｙｅｓ）、マスタ１０１＃Ｍは、選択したメモリ３２２について必要リソース情報７０１を、割り当てた記憶領域に格納する（ステップＳ３００６）。次に、マスタ１０１＃Ｍは、次に小さいリソース番号のメモリ３２２があるか否かを判定する（ステップＳ３００７）。ここで、メモリ３２２がある場合（ステップＳ３００７：Ｙｅｓ）、マスタ１０１＃Ｍは、ステップＳ３００５の処理に移行する。
【０２２１】
一方で、メモリ３２２がない場合（ステップＳ３００７：Ｎｏ）、マスタ１０１＃Ｍは、メモリ３２２の必要リソース情報７０１の作成処理を終了する。これにより、マスタ１０１＃Ｍは、メモリ３２２についての必要リソース情報７０１を生成することができる。
【０２２２】
（入出力端子３２３の必要リソース情報７０１の作成処理手順の一例）
図３１は、ステップＳ２８０７に示した、入出力端子３２３の必要リソース情報７０１の作成処理手順の一例を示すフローチャートである。図３１において、マスタ１０１＃Ｍは、入出力端子３２３の必要リソース情報７０１を格納する記憶領域を割り当てる（ステップＳ３１０１）。
【０２２３】
次に、マスタ１０１＃Ｍは、最も小さいリソース番号の入出力端子３２３を選択する（ステップＳ３１０２）。そして、マスタ１０１＃Ｍは、入出力端子３２３のハードウェア構成情報１９００の中に、選択した入出力端子３２３についての情報があるか否かを判定する（ステップＳ３１０３）。ここで、情報がない場合（ステップＳ３１０３：Ｎｏ）、マスタ１０１＃Ｍは、入出力端子３２３の必要リソース情報７０１の作成処理を終了する。
【０２２４】
一方で、情報がある場合（ステップＳ３１０３：Ｙｅｓ）、マスタ１０１＃Ｍは、選択した入出力端子３２３についての割り当てフラグが「１」であるか否かを判定する（ステップＳ３１０４）。ここで、１ではない場合（ステップＳ３１０４：Ｎｏ）、マスタ１０１＃Ｍは、次に小さいリソース番号の入出力端子３２３を選択して（ステップＳ３１０５）、ステップＳ３１０３の処理に戻る。
【０２２５】
一方で、１である場合（ステップＳ３１０４：Ｙｅｓ）、マスタ１０１＃Ｍは、選択した入出力端子３２３について必要リソース情報７０１を、割り当てた記憶領域に格納する（ステップＳ３１０６）。次に、マスタ１０１＃Ｍは、次に小さいリソース番号の入出力端子３２３があるか否かを判定する（ステップＳ３１０７）。ここで、入出力端子３２３がある場合（ステップＳ３１０７：Ｙｅｓ）、マスタ１０１＃Ｍは、ステップＳ３１０５の処理に移行する。
【０２２６】
一方で、入出力端子３２３がない場合（ステップＳ３１０７：Ｎｏ）、マスタ１０１＃Ｍは、入出力端子３２３の必要リソース情報７０１の作成処理を終了する。これにより、マスタ１０１＃Ｍは、入出力端子３２３についての必要リソース情報７０１を生成することができる。
【０２２７】
（実施例２）
次に、図３２〜図４１を用いて、実施例２について説明する。実施例２は、マスタ１０１＃Ｍによって、動的再構成にかかる時間を低減するとともに、システムにおける消費電力の増大を抑制する一例である。
【０２２８】
実施例２における設定量６０１を受け付ける流れは、実施例１と同様であるため、説明を省略する。実施例２におけるパーティション１３０にハードウェア部品を組み込む流れは、マスタ１０１＃００（１０１＃Ｍ）の構成管理部１６２０と、スレーブ１０１＃０１（１０１＃Ｓ）の構成管理部１６３０との動作を除き、実施例１と同様である。
【０２２９】
実施例２では、実施例１における図１７〜図１９に示すハードウェア部品のハードウェア構成情報に、さらに電源投入フラグを対応付けた新たなハードウェア構成情報を用いる。ここで、図３２〜図３４の説明に移行し、実施例２におけるハードウェア部品のハードウェア構成情報について説明する。
【０２３０】
・実施例２におけるＣＰＵ３２１のハードウェア構成情報３２００
図３２は、実施例２におけるＣＰＵ３２１のハードウェア構成情報３２００の一例を示す説明図である。図３２に示すように、実施例２におけるＣＰＵ３２１のハードウェア構成情報３２００は、部品名のフィールドに対応付けて、図１７に示した実施例１におけるＣＰＵ３２１のハードウェア構成情報１７００と同一のフィールドを有する。
【０２３１】
さらに、実施例２におけるＣＰＵ３２１のハードウェア構成情報３２００は、部品名のフィールドに対応付けて、電源投入フラグのフィールドを有する。ＣＰＵ３２１のハードウェア構成情報３２００は、ハードウェア部品ごとに各フィールドに情報が設定されることにより、レコードを記憶する。
【０２３２】
実施例２におけるＣＰＵ３２１のハードウェア構成情報３２００のうち、図１７に示した実施例１におけるＣＰＵ３２１のハードウェア構成情報１７００と同一のフィールドについては説明を省略する。電源投入フラグとは、部品名「ＣＰＵ」のハードウェア部品に電源投入するか否かを示すフラグである。電源投入フラグは、例えば、部品名「ＣＰＵ」のハードウェア部品に電源投入しない場合には「０」である。電源投入フラグは、例えば、部品名「ＣＰＵ」のハードウェア部品に電源投入する場合には「１」である。
【０２３３】
・実施例２におけるメモリ３２２のハードウェア構成情報３３００
図３３は、実施例２におけるメモリ３２２のハードウェア構成情報３３００の一例を示す説明図である。図３３に示すように、実施例２におけるメモリ３２２のハードウェア構成情報３３００は、部品名のフィールドに対応付けて、図１８に示した実施例１におけるメモリ３２２のハードウェア構成情報１８００と同一のフィールドを有する。
【０２３４】
さらに、実施例２におけるメモリ３２２のハードウェア構成情報３３００は、部品名のフィールドに対応付けて、電源投入フラグのフィールドを有する。メモリ３２２のハードウェア構成情報３３００は、ハードウェア部品ごとに各フィールドに情報が設定されることにより、レコードを記憶する。
【０２３５】
実施例２におけるメモリ３２２のハードウェア構成情報３３００のうち、図１８に示した実施例１におけるメモリ３２２のハードウェア構成情報１８００と同一のフィールドについては説明を省略する。電源投入フラグとは、部品名「メモリ」のハードウェア部品に電源投入するか否かを示すフラグである。電源投入フラグは、例えば、部品名「メモリ」のハードウェア部品に電源投入しない場合には「０」である。電源投入フラグは、例えば、部品名「メモリ」のハードウェア部品に電源投入する場合には「１」である。
【０２３６】
・実施例２における入出力端子３２３のハードウェア構成情報３４００
図３４は、実施例２における入出力端子３２３のハードウェア構成情報３４００の一例を示す説明図である。図３４に示すように、実施例２における入出力端子３２３のハードウェア構成情報３４００は、部品名のフィールドに対応付けて、図１９に示した実施例１における入出力端子３２３のハードウェア構成情報１９００と同一のフィールドを有する。
【０２３７】
さらに、実施例２における入出力端子３２３のハードウェア構成情報３４００は、部品名のフィールドに対応付けて、電源投入フラグのフィールドを有する。入出力端子３２３のハードウェア構成情報３４００は、ハードウェア部品ごとに各フィールドに情報が設定されることにより、レコードを記憶する。
【０２３８】
実施例２における入出力端子３２３のハードウェア構成情報３４００のうち、図１９に示した実施例１における入出力端子３２３のハードウェア構成情報１９００と同一のフィールドについて説明を省略する。電源投入フラグとは、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品に電源投入するか否かを示すフラグである。電源投入フラグは、例えば、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品に電源投入しない場合には「０」である。電源投入フラグは、例えば、部品名「ＩＯ  Ｓｌｏｔ」のハードウェア部品に電源投入する場合には「１」である。
【０２３９】
実施例２では、マスタ１０１＃００の作成処理部１６２１は、図３５〜図３７に後述するように、必要量定義６０２に基づいて、図３２〜図３４に示すハードウェア部品のハードウェア構成情報の割り当てフラグと、電源投入フラグとを更新する。割り当てフラグの更新は、実施例１と同様のため、説明を省略する。
【０２４０】
・ＣＰＵ３２１のハードウェア構成情報３２００の更新
図３５は、ＣＰＵ３２１のハードウェア構成情報３２００を更新する一例を示す説明図である。マスタ１０１＃００の作成処理部１６２１は、最も小さいリソース番号のハードウェア部品から順に、電源投入フラグを設定する。
【０２４１】
マスタ１０１＃００の作成処理部１６２１は、例えば、最も小さいリソース番号のハードウェア部品から順に、コアを選択する。次に、マスタ１０１＃００の作成処理部１６２１は、選択したコアについての割り当てフラグが「１」であるか否かを判定する。ここで、マスタ１０１＃００の作成処理部１６２１は、割り当てフラグが「１」であれば、選択したコアを含むＣＰＵ３２１について電源投入フラグを「１」に設定する。一方で、マスタ１０１＃００の作成処理部１６２１は、割り当てフラグが「０」であれば、選択したコアを、電源投入するコアにしない。
【０２４２】
・メモリ３２２のハードウェア構成情報３３００の更新
図３６は、メモリ３２２のハードウェア構成情報３３００を更新する一例を示す説明図である。マスタ１０１＃００の作成処理部１６２１は、最も小さいリソース番号のハードウェア部品から順に、電源投入フラグを設定する。
【０２４３】
マスタ１０１＃００の作成処理部１６２１は、例えば、最も小さいリソース番号のハードウェア部品から順に、メモリ３２２を選択する。次に、マスタ１０１＃００の作成処理部１６２１は、選択したメモリ３２２についての割り当てフラグが「１」であるか否かを判定する。ここで、マスタ１０１＃００の作成処理部１６２１は、割り当てフラグが「１」であれば、選択したメモリ３２２について電源投入フラグを「１」に設定する。一方で、マスタ１０１＃００の作成処理部１６２１は、割り当てフラグが「０」であれば、選択したメモリ３２２を、電源投入するメモリ３２２にしない。
【０２４４】
・入出力端子３２３のハードウェア構成情報３４００の更新
図３７は、入出力端子３２３のハードウェア構成情報３４００を更新する一例を示す説明図である。マスタ１０１＃００の作成処理部１６２１は、最も小さいリソース番号のハードウェア部品から順に、電源投入フラグを設定する。
【０２４５】
マスタ１０１＃００の作成処理部１６２１は、例えば、最も小さいリソース番号のハードウェア部品から順に、入出力端子３２３を選択する。次に、マスタ１０１＃００の作成処理部１６２１は、選択した入出力端子３２３についての割り当てフラグが「１」であるか否かを判定する。ここで、マスタ１０１＃００の作成処理部１６２１は、割り当てフラグが「１」であれば、選択した入出力端子３２３について電源投入フラグを「１」に設定する。一方で、マスタ１０１＃００の作成処理部１６２１は、割り当てフラグが「０」であれば、選択した入出力端子３２３を、電源投入する入出力端子３２３にしない。これにより、マスタ＃Ｍは、電源投入を行うハードウェア部品を特定することができる。
【０２４６】
（電源投入処理手順の一例）
図３８は、電源投入処理手順の一例を示すフローチャートである。図３８において、マスタ１０１＃Ｍは、ハードウェア構成情報を取得する（ステップＳ３８０１）。そして、マスタ１０１＃Ｍは、ハードウェア構成情報を格納する記憶領域を確保する（ステップＳ３８０２）。
【０２４７】
次に、マスタ１０１＃Ｍは、コアの電源投入部品の特定処理を実行する（ステップＳ３８０３）。そして、マスタ１０１＃Ｍは、コアのハードウェア構成情報を、確保した記憶領域に格納する（ステップＳ３８０４）。
【０２４８】
次に、マスタ１０１＃Ｍは、メモリ３２２の電源投入部品の特定処理を実行する（ステップＳ３８０５）。そして、マスタ１０１＃Ｍは、メモリ３２２のハードウェア構成情報３３００を、確保した記憶領域に格納する（ステップＳ３８０６）。
【０２４９】
次に、マスタ１０１＃Ｍは、入出力端子３２３の電源投入部品の特定処理を実行する（ステップＳ３８０７）。そして、マスタ１０１＃Ｍは、入出力端子３２３のハードウェア構成情報３４００を、確保した記憶領域に格納する（ステップＳ３８０８）。
【０２５０】
次に、マスタ１０１＃Ｍは、ビルディングブロック１００への電源投入指示を出力する（ステップＳ３８０９）。そして、マスタ１０１＃Ｍは、ハードウェア部品への電源投入指示を出力し（ステップＳ３８１０）、電源投入処理を終了する。これにより、マスタ＃Ｍは、電源投入を行うハードウェア部品を特定して、特定したハードウェア部品への電源投入指示を出力することができる。
【０２５１】
（コアの電源投入部品の特定処理手順の一例）
図３９は、ステップＳ３８０３に示した、コアの電源投入部品の特定処理手順の一例を示すフローチャートである。図３９において、マスタ１０１＃Ｍは、最も小さいリソース番号のコアを選択する（ステップＳ３９０１）。次に、マスタ１０１＃Ｍは、ＣＰＵ３２１のハードウェア構成情報３２００の中に、選択したコアについての情報があるか否かを判定する（ステップＳ３９０２）。ここで、情報がない場合（ステップＳ３９０２：Ｎｏ）、マスタ１０１＃Ｍは、コアの電源投入部品の特定処理を終了する。
【０２５２】
一方で、情報がある場合（ステップＳ３９０２：Ｙｅｓ）、マスタ１０１＃Ｍは、選択したコアを含むＣＰＵ３２１のＣＰＵ  Ｃｈｉｐ番号を取得する（ステップＳ３９０３）。次に、マスタ１０１＃Ｍは、選択したコアについての割り当てフラグが「１」であるか否かを判定する（ステップＳ３９０４）。ここで、１ではない場合（ステップＳ３９０４：Ｎｏ）、マスタ１０１＃Ｍは、次に小さいリソース番号のコアを選択して（ステップＳ３９０５）、ステップＳ３９０２の処理に戻る。
【０２５３】
一方で、１である場合（ステップＳ３９０４：Ｙｅｓ）、マスタ１０１＃Ｍは、電源投入フラグが「１」であるか否かを判定する（ステップＳ３９０６）。ここで、電源投入フラグが「１」である場合（ステップＳ３９０６：Ｙｅｓ）、マスタ１０１＃Ｍは、ステップＳ３９０５の処理に移行する。
【０２５４】
一方で、電源投入フラグが「０」である場合（ステップＳ３９０６：Ｎｏ）、マスタ１０１＃Ｍは、選択したコアに対応するＣＰＵ３２１に含まれるすべてのコアを選択する（ステップＳ３９０７）。次に、マスタ１０１＃Ｍは、選択したすべてのコアについての電源投入フラグに「１」を設定する（ステップＳ３９０８）。そして、マスタ１０１＃Ｍは、ステップＳ３９０５の処理に移行する。これにより、マスタ＃Ｍは、電源投入を行うハードウェア部品のうちのコアを特定することができる。
【０２５５】
（メモリ３２２の電源投入部品の特定処理手順の一例）
図４０は、ステップＳ３８０５に示した、メモリ３２２の電源投入部品の特定処理手順の一例を示すフローチャートである。図４０において、マスタ１０１＃Ｍは、最も小さいリソース番号のメモリ３２２を選択する（ステップＳ４００１）。次に、マスタ１０１＃Ｍは、メモリ３２２のハードウェア構成情報３３００の中に、選択したメモリ３２２についての情報があるか否かを判定する（ステップＳ４００２）。ここで、情報がない場合（ステップＳ４００２：Ｎｏ）、マスタ１０１＃Ｍは、メモリ３２２の電源投入部品の特定処理を終了する。
【０２５６】
一方で、情報がある場合（ステップＳ４００２：Ｙｅｓ）、マスタ１０１＃Ｍは、選択したメモリ３２２についての割り当てフラグが「１」であるか否かを判定する（ステップＳ４００３）。ここで、１ではない場合（ステップＳ４００３：Ｎｏ）、マスタ１０１＃Ｍは、次に小さいリソース番号のメモリ３２２を選択して（ステップＳ４００４）、ステップＳ４００２の処理に戻る。
【０２５７】
一方で、１である場合（ステップＳ４００３：Ｙｅｓ）、マスタ１０１＃Ｍは、電源投入フラグが「１」であるか否かを判定する（ステップＳ４００５）。ここで、電源投入フラグが「１」である場合（ステップＳ４００５：Ｙｅｓ）、マスタ１０１＃Ｍは、ステップＳ４００４の処理に移行する。
【０２５８】
一方で、電源投入フラグが「０」である場合（ステップＳ４００５：Ｎｏ）、マスタ１０１＃Ｍは、選択したメモリ３２２についての電源投入フラグに「１」を設定する（ステップＳ４００６）。そして、マスタ１０１＃Ｍは、ステップＳ４００４の処理に移行する。これにより、マスタ＃Ｍは、電源投入を行うハードウェア部品のうちのメモリ３２２を特定することができる。
【０２５９】
（入出力端子３２３の電源投入部品の特定処理手順の一例）
図４１は、ステップＳ３８０７に示した、入出力端子３２３の電源投入部品の特定処理手順の一例を示すフローチャートである。図４１において、マスタ１０１＃Ｍは、最も小さいリソース番号の入出力端子３２３を選択する（ステップＳ４１０１）。次に、マスタ１０１＃Ｍは、入出力端子３２３のハードウェア構成情報３４００の中に、選択した入出力端子３２３についての情報があるか否かを判定する（ステップＳ４１０２）。ここで、情報がない場合（ステップＳ４１０２：Ｎｏ）、マスタ１０１＃Ｍは、入出力端子３２３の電源投入部品の特定処理を終了する。
【０２６０】
一方で、情報がある場合（ステップＳ４１０２：Ｙｅｓ）、マスタ１０１＃Ｍは、選択した入出力端子３２３についての割り当てフラグが「１」であるか否かを判定する（ステップＳ４１０３）。ここで、１ではない場合（ステップＳ４１０３：Ｎｏ）、マスタ１０１＃Ｍは、次に小さいリソース番号の入出力端子３２３を選択して（ステップＳ４１０４）、ステップＳ４１０２の処理に戻る。
【０２６１】
一方で、１である場合（ステップＳ４１０３：Ｙｅｓ）、マスタ１０１＃Ｍは、電源投入フラグが「１」であるか否かを判定する（ステップＳ４１０５）。ここで、電源投入フラグが「１」である場合（ステップＳ４１０５：Ｙｅｓ）、マスタ１０１＃Ｍは、ステップＳ４１０４の処理に移行する。
【０２６２】
一方で、電源投入フラグが「０」である場合（ステップＳ４１０５：Ｎｏ）、マスタ１０１＃Ｍは、選択した入出力端子３２３についての電源投入フラグに「１」を設定する（ステップＳ４１０６）。そして、マスタ１０１＃Ｍは、ステップＳ４１０４の処理に移行する。これにより、マスタ＃Ｍは、電源投入を行うハードウェア部品のうちの入出力端子３２３を特定することができる。
【０２６３】
実施例２では、マスタ１０１＃００の構成管理部１６２０は、追加ＢＢ１００＃０１に搭載されたスレーブ１０１＃０１に、電源投入フラグが「１」のハードウェア部品についてのパーティション構成情報とともに追加ＢＢ１００＃０１の電源投入指示を出力する。
【０２６４】
スレーブ１０１＃０１の構成管理部１６３０は、電源投入フラグが「１」のハードウェア部品についてのパーティション構成情報とともに、電源投入指示を受信する。そして、スレーブ１０１＃０１の構成管理部１６３０は、スレーブ１０１＃０１の電源制御部１６４０に、電源投入フラグが「１」のハードウェア部品についてのパーティション構成情報とともに、電源投入指示を出力する。
【０２６５】
スレーブ１０１＃０１の電源制御部１６４０は、電源投入フラグが「１」のハードウェア部品についてのパーティション構成情報とともに、電源投入指示を受信する。次に、スレーブ１０１＃０１の電源制御部１６４０は、追加ＢＢ１００＃０１のＰＳＵ３３０の電源投入、およびＦＡＮ３４０の回転などを行い、追加ＢＢ１００＃０１への電源投入を行う。
【０２６６】
そして、スレーブ１０１＃０１の電源制御部１６４０は、追加ＢＢ１００＃０１のＰＳＵ３３０を介して、電源投入フラグが「１」のＣＰＵ３２１やメモリ３２２や入出力端子３２３などのハードウェア部品への電源投入、および初期化を行う。スレーブ１０１＃０１の電源制御部１６４０は、ハードウェア部品への電源投入が完了すると、構成管理部１６３０に完了通知を返送する。
【０２６７】
スレーブ１０１＃０１の構成管理部１６３０は、電源投入の完了通知を受信する。スレーブ１０１＃０１の構成管理部１６３０は、電源投入の完了通知を受信すると、診断プログラムを起動するとともに、起動した診断プログラムに、電源投入フラグが「１」のハードウェア部品についてのパーティション構成情報とともに、診断指示を出力する。
【０２６８】
診断プログラムは、電源投入フラグが「１」のＣＰＵ３２１やメモリ３２２などのハードウェア部品の故障診断を行う。診断プログラムは、診断が完了すると、スレーブ１０１＃０１の構成管理部１６３０に、診断完了通知を返送する。スレーブ１０１＃０１の構成管理部１６３０は、電源投入指示の完了通知を、マスタ１０１＃００の構成管理部１６２０に返送する。マスタ１０１＃００の構成管理部１６２０は、電源投入指示の完了通知を受信した後は、実施例１と同様に動作する。
【０２６９】
これにより、マスタ１０１＃Ｍは、特定したハードウェア部品以外のハードウェア部品について、電源投入や故障診断が行われないように、スレーブ１０１＃Ｓを制御することができる。そして、マスタ１０１＃Ｍは、電源投入や故障診断にかかる時間を低減して、動的再構成にかかる時間をさらに低減するとともに、パーティション１３０における消費電力を低減することができる。
【０２７０】
以上説明したように、管理システムは、１以上のシステムボード１０２により構築されるシステムへのハードウェア部品の組み込みを制御する制御装置を含む。そして、管理システムによれば、取得したリソース情報と部品情報とに基づいて、他のシステムボード１０２に含まれるハードウェア部品の中から、システムに組み込むハードウェア部品を特定することができる。また、管理システムによれば、特定したハードウェア部品のシステムへの組み込み指示を制御装置に出力することができる。これにより、管理システムは、動的再構成において、パーティション１３０において稼動中のソフトウェアに使用されないハードウェア部品がパーティション１３０へ組み込まれることを回避することができ、動的再構成にかかる時間を低減することができる。
【０２７１】
また、管理システムは、他のシステムボード１０２の電源投入を制御する電源制御装置を含む。そして、管理システムによれば、特定したハードウェア部品への電源投入指示を電源制御装置に出力することができる。また、管理システムによれば、電源制御装置によって電源投入されたハードウェア部品のシステムへの組み込み指示を制御装置に出力することができる。これにより、管理システムは、さらに、特定したハードウェア部品以外のハードウェア部品について、電源投入が行われないようにすることができる。結果として、管理システムは、電源投入にかかる時間を低減して、動的再構成にかかる時間をさらに低減するとともに、パーティション１３０における消費電力を低減することができる。
【０２７２】
また、管理システムは、さらに、他のシステムボード１０２の故障診断を行う診断装置を含む。そして、管理システムによれば、電源制御装置によって電源投入されたハードウェア部品に故障があるか否かの診断指示を診断装置に出力することができる。また、管理システムによれば、診断装置によって故障がないと診断されたハードウェア部品のシステムへの組み込み指示を制御装置に出力することができる。これにより、管理システムは、さらに、特定したハードウェア部品以外のハードウェア部品について、故障診断が行われないようにすることができる。結果として、管理システムは、故障診断にかかる時間を低減して、動的再構成にかかる時間をさらに低減することができる。
【０２７３】
また、特定の入出力先への入出力端子３２３のシステムによる使用が禁止される場合がある。この場合、管理システムによれば、他のシステムボード１０２に含まれる特定の入出力先への入出力端子３２３以外のハードウェア部品の中から、システムに組み込むハードウェア部品を特定することができる。これにより、管理システムは、パーティション１３０からの情報漏洩や、パーティション１３０への情報漏洩などを防止し、セキュリティの向上を図ることができる。
【０２７４】
また、制御装置によれば、受信した組み込み指示に基づいて、特定されたハードウェア部品のシステムへの組み込み処理を行うことができる。これにより、制御装置は、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどによって使用可能なリソースを増加させることができ、ハイパーバイザ、ＯＳやアプリケーションなどの演算の効率化を図ることができる。
【０２７５】
また、制御装置によれば、システムに組み込まれたハードウェア部品が使用されないときには、システムに組み込まれたハードウェア部品のシステムからの切り離し処理を行うことができる。これにより、制御装置は、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどによってリソースとして使用しなくてもよいハードウェア部品を、パーティション１３０から切り離すことができる。結果として、複数のパーティション１３０が、１つのシステムボード１０２に含まれるハードウェア部品を、交代で使用することができるようになる。
【０２７６】
また、管理システムによれば、他のシステムボード１０２に含まれる１以上のコアの中から、リソース情報に含まれる数分のコアを特定することができる。これにより、管理システムは、制御装置に、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどによって使用可能な演算リソースを、利用者から指定された数分、増加させることができる。
【０２７７】
また、管理システムによれば、特定したコアを有するＣＰＵ３２１への電源投入指示を電源制御装置に出力することができる。これにより、管理システムは、コア単位での電源投入を行うことができない場合に適用することができる。
【０２７８】
また、管理システムによれば、他のシステムボード１０２に含まれる１以上のメモリ３２２の中から、リソース情報に含まれるサイズ分のメモリ３２２を特定することができる。これにより、管理システムは、制御装置に、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどによって使用可能な記憶リソースを、利用者から指定された数分、増加させることができる。
【０２７９】
また、管理システムによれば、他のシステムボード１０２に含まれる１以上の入出力端子３２３の中から、リソース情報に含まれる入出力先への入出力端子３２３を特定することができる。これにより、管理システムは、制御装置に、パーティション１３０において稼動中のハイパーバイザ、ＯＳやアプリケーションなどによって使用可能な入出力リソースを、利用者から指定された数分、増加させることができる。
【０２８０】
なお、本実施の形態で説明した管理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本管理プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本管理プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２８１】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２８２】
（付記１）１以上のシステムボードにより構築されるシステムへのハードウェア部品の組み込みを制御する制御装置と、
前記システムに対して組み込み要求されたリソースを示すリソース情報を取得し、取得した前記リソース情報と、前記１以上のシステムボードと接続された他のシステムボードに含まれるハードウェア部品を示す部品情報とに基づいて、前記他のシステムボードに含まれるハードウェア部品の中から、前記システムに組み込むハードウェア部品を特定し、特定した前記ハードウェア部品の前記システムへの組み込み指示を前記制御装置に出力する情報処理装置と、
を有することを特徴とする管理システム。
【０２８３】
（付記２）さらに、前記他のシステムボードの電源投入を制御する電源制御装置を含み、
前記情報処理装置は、
特定した前記ハードウェア部品への電源投入指示を前記電源制御装置に出力し、
前記電源制御装置によって電源投入された前記ハードウェア部品の前記システムへの組み込み指示を前記制御装置に出力する、
ことを特徴とする付記１に記載の管理システム。
【０２８４】
（付記３）さらに、前記他のシステムボードの故障診断を行う診断装置を含み、
前記情報処理装置は、
前記電源制御装置によって電源投入された前記ハードウェア部品に故障があるか否かの診断指示を前記診断装置に出力し、
前記診断装置によって故障がないと診断された前記ハードウェア部品の前記システムへの組み込み指示を前記制御装置に出力する、
ことを特徴とする付記２に記載の管理システム。
【０２８５】
（付記４）前記情報処理装置は、
特定の入出力先への入出力端子の前記システムによる使用が禁止される場合には、前記他のシステムボードに含まれる前記特定の入出力先への入出力端子以外のハードウェア部品の中から、前記システムに組み込むハードウェア部品を特定する、
ことを特徴とする付記１〜３のいずれか一つに記載の管理システム。
【０２８６】
（付記５）前記制御装置は、
受信した前記組み込み指示に基づいて、特定された前記ハードウェア部品の前記システムへの組み込み処理を行い、
前記システムに組み込まれた前記ハードウェア部品が使用されないときには、前記システムに組み込まれた前記ハードウェア部品の前記システムからの切り離し処理を行う、
ことを特徴とする付記１〜４のいずれか一つに記載の管理システム。
【０２８７】
（付記６）前記リソース情報は、前記リソースを示すコアの数を含み、
前記情報処理装置は、
前記他のシステムボードに含まれる１以上のコアの中から、取得した前記リソース情報に含まれる数分のコアを特定する、
ことを特徴とする付記１〜５のいずれか一つに記載の管理システム。
【０２８８】
（付記７）さらに、前記他のシステムボードの電源投入を制御する電源制御装置を含み、  前記情報処理装置は、
特定した前記コアを有するＣＰＵへの電源投入指示を前記電源制御装置に出力する、
処理を実行することを特徴とする付記６に記載の管理システム。
【０２８９】
（付記８）前記リソース情報は、前記リソースを示すメモリのサイズを取得し、
前記情報処理装置は、
前記他のシステムボードに含まれる１以上のメモリの中から、取得した前記リソース情報に含まれるサイズ分のメモリを特定する、
ことを特徴とする付記１〜７のいずれか一つに記載の管理システム。
【０２９０】
（付記９）前記リソース情報は、前記リソースを示す特定の入出力先への入出力端子の数を取得し、
前記情報処理装置は、
前記他のシステムボードに含まれる１以上の入出力端子の中から、取得した前記リソース情報に含まれる数分の、前記特定の入出力先への入出力端子を特定する、
ことを特徴とする付記１〜８のいずれか一つに記載の管理システム。
【０２９１】
（付記１０）コンピュータが、
１以上のシステムボードにより構築されるシステムに対して組み込み要求されたリソースを示すリソース情報を取得し、
取得した前記リソース情報と、前記１以上のシステムボードと接続された他のシステムボードに含まれるハードウェア部品を示す部品情報とに基づいて、前記他のシステムボードに含まれるハードウェア部品の中から、前記システムに組み込むハードウェア部品を特定し、
前記システムへのハードウェア部品の組み込みを制御する制御装置に、特定した前記ハードウェア部品の前記システムへの組み込み指示を出力する、
処理を実行することを特徴とする管理方法。
【０２９２】
（付記１１）コンピュータに、
１以上のシステムボードにより構築されるシステムに対して組み込み要求されたリソースを示すリソース情報を取得し、
取得した前記リソース情報と、前記１以上のシステムボードと接続された他のシステムボードに含まれるハードウェア部品を示す部品情報とに基づいて、前記他のシステムボードに含まれるハードウェア部品の中から、前記システムに組み込むハードウェア部品を特定し、
前記システムへのハードウェア部品の組み込みを制御する制御装置に、特定した前記ハードウェア部品の前記システムへの組み込み指示を出力する、
処理を実行させることを特徴とする管理プログラム。
【符号の説明】
【０２９３】
１００  ビルディングブロック
１０１  サービスプロセッサ
１０２  システムボード
１１０  クライアント装置
１２０  制御ネットワーク
１３０  ハードウェアパーティション
２００  バス
２０１，３２１  ＣＰＵ
２０２  ＲＯＭ
２０３  ＲＡＭ
２０４  Ｉ／Ｆ
２１０  ネットワーク
３２２  メモリ
３２３  入出力端子
３３０  ＰＳＵ
３４０  ＦＡＮ
３５０  クロスバーユニット
３６０，３８０  ＬＡＮ
３７０  ディスク
４００  コンピュータシステム
４１０  クロスバー
５００  情報処理装置
５０１  取得部
５０２  特定部
５０３  第１指示部
５０４  第２指示部
５０５  第３指示部
６０１  設定量
６０２  必要量定義
６１０  設定Ｉ／Ｆ処理部
６２０  設定処理部
６２１  一時保存処理部
６２２  判定処理部
６２３  保存処理部
７０１  必要リソース情報
７１０  動的再構成Ｉ／Ｆ処理部
７２０，１６２０，１６３０，１６５０  構成管理部
７２１  割当処理部
７２２  構成情報取得処理部
７２３，１６２１  作成処理部
７２４  ＢＢ追加指示処理部
７２５  リソース追加指示処理部
７２６  更新処理部
８１０  ＢＢ間通信部
８２１  通知処理部
８２３  電源投入指示処理部
８２４  診断指示処理部
８３０，１６４０  電源制御部
９１０  設定ＣＬＩ
１６１０  ユーザインターフェース
１６６０  ＳＰ／Ｐ間通信部
１７００，１８００，１９００，３２００，３３００，３４００  ハードウェア構成情報
【図１】
0006432428.tif 000002
【図２】
0006432428.tif 000003
【図３】
0006432428.tif 000004
【図４】
0006432428.tif 000005
【図５】
0006432428.tif 000006
【図６】
0006432428.tif 000007
【図７】
0006432428.tif 000008
【図８】
0006432428.tif 000009
【図９】
0006432428.tif 000010
【図１０】
0006432428.tif 000011
【図１１】
0006432428.tif 000012
【図１２】
0006432428.tif 000013
【図１３】
0006432428.tif 000014
【図１４】
0006432428.tif 000015
【図１５】
0006432428.tif 000016
【図１６】
0006432428.tif 000017
【図１７】
0006432428.tif 000018
【図１８】
0006432428.tif 000019
【図１９】
0006432428.tif 000020
【図２０】
0006432428.tif 000021
【図２１】
0006432428.tif 000022
【図２２】
0006432428.tif 000023
【図２３】
0006432428.tif 000024
【図２４】
0006432428.tif 000025
【図２５】
0006432428.tif 000026
【図２６】
0006432428.tif 000027
【図２７】
0006432428.tif 000028
【図２８】
0006432428.tif 000029
【図２９】
0006432428.tif 000030
【図３０】
0006432428.tif 000031
【図３１】
0006432428.tif 000032
【図３２】
0006432428.tif 000033
【図３３】
0006432428.tif 000034
【図３４】
0006432428.tif 000035
【図３５】
0006432428.tif 000036
【図３６】
0006432428.tif 000037
【図３７】
0006432428.tif 000038
【図３８】
0006432428.tif 000039
【図３９】
0006432428.tif 000040
【図４０】
0006432428.tif 000041
【図４１】
0006432428.tif 000042