(57)【要約】【課題】特定の制御部への処理負荷の偏りを抑制できる情報処理システムを提供する。【解決手段】本情報処理システムは、複数の情報処理装置が通信可能に接続されている。情報処理システムに含まれる情報処理装置の各々は、制御部、保持部、受付部、選定部および依頼部を備える。制御部は、実行可能な処理に応じた属性が設定され、搭載されたハードウェア資源を制御する。保持部は、制御部のいずれかによって実行される処理と処理を実行できる属性との対応関係を保持する。受付部は、処理の実行要求を受け付ける。選定部は、対応関係にしたがって、実行要求を受け付けた処理を実行する制御部を選定する。依頼部は、選定された制御部に要求された処理の実行を依頼する。【選択図】図１１
2018041340.tif 000002
【特許請求の範囲】
【請求項１】
複数の情報処理装置が通信可能に接続された情報処理システムであって、
前記情報処理システムに含まれる情報処理装置の各々は、
実行可能な処理に応じた属性が設定され、搭載されたハードウェア資源を制御する制御部と、
前記制御部のいずれかによって実行される処理と前記処理を実行できる前記属性との対応関係を保持する保持部と、
処理の実行要求を受け付ける受付部と、
前記対応関係にしたがって、前記実行要求を受け付けた処理を実行する前記制御部を選定する選定部と、
前記選定された前記制御部に前記要求された処理の実行を依頼する依頼部と、を備える、
情報処理システム。
【請求項２】
前記選定部は、前記選定された制御部が複数存在する場合、前記選定された制御部の処理負荷を比較して処理負荷の低い制御部を選定する処理をさらに含む、
請求項１に記載の情報処理システム。
【請求項３】
前記選定部は、前記処理負荷に対して前記情報処理装置の動作状態毎に決定される状態値にしたがった重みづけを行って第２処理負荷を算出し、前記第２処理負荷の低い前記制御部を選定する処理をさらに含む、
請求項２に記載の情報処理システム。
【請求項４】
前記選定部は、前記情報処理装置に搭載されたハードウェア資源の数が少ない情報処理装置に備えられた制御部を選定する処理をさらに含む、
請求項１から３のいずれか一項に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システムに関する。
【背景技術】
【０００２】
ハードウェア資源と当該ハードウェア資源を制御する制御部とを備えた複数の情報処理装置を通信可能に接続した情報処理システムが利用されている。制御部は、ファームウェアとも称される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２０８４１４号公報
【特許文献２】特開平１０−１６１９８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
情報処理装置に備えられた制御部には、実行可能な処理に応じた属性が設定される。制御部は、設定された属性にしたがって、例えば、ユーザ等から処理要求を受け付ける処理を実行したり、他の情報処理装置の死活監視の処理を実行したり、自装置を制御する処理を実行したりする。情報処理システムでは、各情報処理装置の電源投入、通信経路の設定、演算処理の実行等の処理が制御部に対して要求される。要求された処理は、処理要求を受け付けた制御部によって実行される。そのため、ユーザ等からの処理の実行要求を受け付ける属性が設定された制御部に処理負荷が偏っていた。
【０００５】
そこで、開示の技術の１つの側面は、特定の制御部への処理負荷の偏りを抑制できる情報処理システムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
開示の技術の１つの側面は、次のような情報処理システムによって例示される。本情報処理システムは、複数の情報処理装置が通信可能に接続されている。情報処理システムに含まれる情報処理装置の各々は、制御部、保持部、受付部、選定部および依頼部を備える。制御部は、実行可能な処理に応じた属性が設定され、搭載されたハードウェア資源を制御する。保持部は、制御部のいずれかによって実行される処理と処理を実行できる属性との対応関係を保持する。受付部は、処理の実行要求を受け付ける。選定部は、対応関係にしたがって、実行要求を受け付けた処理を実行する制御部を選定する。依頼部は、選定された制御部に要求された処理の実行を依頼する。
【発明の効果】
【０００７】
本情報処理システムは、特定の制御部への処理負荷の偏りを抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る情報処理システムの一例を示す図である。
【図２】図２は、サーバの構成の一例を示す図である。
【図３】図３は、サービスプロセッサの構成の一例を示す図である。
【図４】図４は、ファームウェアの属性の一例を示す図である。
【図５】図５は、ファームウェアが実行する処理を分類した表の一例である。
【図６】図６は、ファームウェアの処理ブロックの一例を示す図である。
【図７】図７は、処理情報の一例を示す図である。
【図８】図８は、サーバ情報の一例を示す図である。
【図９】図９は、ユーザから処理要求を受け付けた場合の処理の流れの一例を示す図である。
【図１０】図１０は、ファームウェアの属性に合わせた振り分けパターン生成処理の一例を示す図である。
【図１１】図１１は、実行要求を受信した処理を各ファームウェアに振り分ける処理の一例を示す図である。
【図１２】図１２は、要求されたプロセスを完了して呼び出し元に復帰する処理の一例を示す図である。
【図１３】図１３は、負荷の低いサーバを選定する処理の一例を示す図である。
【図１４】図１４は、実施形態に係る情報処理システムにおけるパーティションの電源投入処理の一例を示す図である。
【図１５】図１５は、比較例に係る情報処理システムにおいて、パーティションに電源を投入する処理の流れの一例を示す図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、一実施形態に係る情報処理システムについて説明する。以下に示す実施形態の構成は例示であり、開示の技術は実施形態の構成に限定されない。
【００１０】
＜第１実施形態＞
図１は、実施形態に係る情報処理システム１の一例を示す図である。情報処理システム１は、サーバ１００ａ、１００ｂ、１００ｃ、１００ｄの４台のサーバを含む。情報処理システム１は最大で５台のサーバ１００を含むことが可能であるが、５台目のサーバ１００となるサーバ１００ｚは情報処理システム１に接続されていない。サーバ１００ａ、１００ｂ、１００ｃ、１００ｄ、１００ｚを総称して、サーバ１００と称する。情報処理システム１は、いわゆるスケールアウト型のシステムである。スケールアウト型のシステムは、１または複数のサーバ１００を組み合わせることで、パーティションを作成できる。作成されたパーティションは独立した情報処理装置として動作できる。情報処理システム１におけるパーティション構成の変更は、情報処理システム１の運用中においても実施可能である。パーティション構成の変更は、例えば、新規パーティションの作成、作成済みパーティションへのサーバ１００の追加、作成済みパーティションからのサーバ１００の削除を含む。情報処理システム１は、例えば、パーティションの処理負荷が高くなった場合に、当該パーティションにサーバ１００を追加することで当該パーティションの処理能力を向上させることができる。個々のパーティションにはパーティションを識別するパーティションＩＤが割り当てられる。パーティションＩＤは、PIDとも称する。図１では、
例えば、PID#0のパーティションはサーバ１００ａを含み、PID#1のパーティションはサーバ１００ｂとサーバ１００ｃとを含む。以下、図面を参照して実施形態について説明する。
【００１１】
サーバ１００は、情報処理装置である。サーバ１００は、ビルディングブロックとも称され、図中では「ＢＢ」とも記載される。図２は、サーバ１００の構成の一例を示す図である。サーバ１００は、Central Processing Unit（ＣＰＵ）１０１、メモリ１０２（図
中ではＭＥＭと記載）、サービスプロセッサ１０３、ファン１０４（図中ではＦＡＮと記載）、Power Supply Unit（ＰＳＵ）１０５、Cross Bar（ＸＢ）１０６および各種センサー１０７を備える。ＣＰＵ１０１、メモリ１０２、補助記憶部１０３、ファン１０４、ＰＳＵ１０５、ＸＢ１０６および各種センサー１０７は、図示しないバスによって相互に接続されている。
【００１２】
サーバ１００では、ＣＰＵ１０１がメモリ１０２に記憶されたプログラムの実行を通じて周辺装置の制御を行う。これにより、サーバ１００は、所定の目的に合致した処理を実
行することができる。メモリ１０２は、サーバ１００が読み取り可能な記録媒体である。
【００１３】
メモリ１０２は、ＣＰＵ１０１からアクセスされる記憶部として例示される。メモリ１０２は、Random Access Memory（ＲＡＭ）およびRead Only Memory（ＲＯＭ）、補助記憶部を含む。
【００１４】
ファン１０４は、サーバ１００内に送風してサーバ１００を冷却する。ＸＢ１０６は、他のサーバ１００との通信インターフェースである。ＸＢ１０６は、ネットワークＮ２を介して他のサーバ１００と通信を行う。各種センサー１０７は、例えば、温度センサーまたは電圧センサーである。各種センサー１０７は、例えば、サーバ１００内の温度またはサーバ１００に供給されている電圧の異常を検知すると、サーバ１００上で稼働するＯＳまたはファームウェア１０３ａに通知する。
【００１５】
サーバ１００は、例えば、ユーザ等からの操作指示等を受け付ける入力部をさらに備えてもよい。このような入力部として、キーボード、ポインティングデバイス、タッチパネル、加速度センサーあるいは音声入力装置といった入力デバイスを例示できる。
【００１６】
サーバ１００は、例えば、ＣＰＵ１０１で処理されるデータやメモリ１０２に記憶されるデータを出力する出力部を備えるものとしてもよい。このような、出力部として、Cathode Ray Tube（ＣＲＴ）ディスプレイ、Liquid Crystal Display（ＬＣＤ）、Plasma Display Panel（ＰＤＰ）、Electroluminescence（ＥＬ）パネル、有機ＥＬパネルあるいは
プリンタといった出力デバイスを例示できる。
【００１７】
ＰＳＵ１０５は、サーバ１００に電力を供給する。ＰＳＵ１０５は、常駐電源と非常駐電源とを含む。常駐電源は、サーバ１００の電源スイッチがオフにされている状態でもサーバ１００に搭載された一部のハードウェアに電源を供給する。常駐電源は、例えば、サービスプロセッサ１０３に電力を供給する。非常駐電源は、サーバ１００の電源スイッチがオンにされるとサーバ１００に搭載された各ハードウェアに電力を供給する。サーバ１００は、非常駐電源から電力が供給されることで、様々な情報処理を実行可能となる。
【００１８】
ネットワークＮ１は、サーバ１００に搭載されたサービスプロセッサ１０３を相互に接続するコンピュータネットワークである。サーバ１００のサービスプロセッサ１０３は、ネットワークＮ１を介して他のサーバ１００に搭載されたサービスプロセッサ１０３と通信可能である。ネットワークＮ２は、サーバ１００に搭載されたＸＢ１０６を相互に接続するコンピュータネットワークである。サーバ１００は、ネットワークＮ２を介して相互に通信可能である。ネットワークＮ１、Ｎ２に用いられるプロトコルに限定は無い。ネットワークＮ１、Ｎ２は、例えば、Local Area Network（ＬＡＮ）である。また、ネットワークＮ１、Ｎ２は、有線のネットワークであっても無線のネットワークであってもよい。
【００１９】
サービスプロセッサ１０３は、サーバ１００に搭載された情報処理装置である。サービスプロセッサ１０３は、ファームウェア１０３ａを含む。ファームウェア１０３ａは、例えば、サーバ１００のハードウェア資源を制御する。ファームウェア１０３ａは、ユーザからの要求に応じて、サーバ１００を組み合わせてパーティションを作成する。サービスプロセッサ１０３は、ＰＳＵ１０５の常駐電源から供給される電力によって稼働する。そのため、サービスプロセッサ１０３は、サーバ１００の電源スイッチがオフにされている状態でも稼働可能である。ファームウェア１０３ａは、「制御部」の一例である。
【００２０】
図３は、サービスプロセッサ１０３の構成の一例を示す図である。サービスプロセッサ１０３は、ＣＰＵ３０１、主記憶部３０２、補助記憶部３０３、通信部３０４、入力部３０５および出力部３０６を備える。ＣＰＵ３０１、主記憶部３０２、補助記憶部３０３、
通信部３０４、入力部３０５および出力部３０６は、接続バスＣ１によって相互に接続される。
【００２１】
サービスプロセッサ１０３では、ＣＰＵ３０１が補助記憶部３０３に記憶されたプログラムを主記憶部３０２の作業領域に展開し、プログラムの実行を通じて周辺装置の制御を行う。これにより、サービスプロセッサ１０３は、所定の目的に合致した処理を実行することができる。主記憶部３０２および補助記憶部３０３は、サービスプロセッサ１０３が読み取り可能な記録媒体である。
【００２２】
主記憶部３０２は、ＣＰＵ３０１から直接アクセスされる記憶部として例示される。主記憶部３０２は、Random Access Memory（ＲＡＭ）およびRead Only Memory（ＲＯＭ）を含む。
【００２３】
補助記憶部３０３は、各種のプログラムおよび各種のデータを読み書き自在に記録媒体に格納してもよい。補助記憶部３０３は、外部記憶装置とも呼ばれる。補助記憶部３０３には、オペレーティングシステム（Operating System、ＯＳ）、ファームウェア１０３ａ、各種プログラム、各種テーブル等が格納される。ＯＳは、通信部２０４を介して接続される外部装置等とのデータの受け渡しを行う通信インターフェースプログラムを含む。外部装置等には、例えば、ネットワークＮ１で接続された、他のサーバ１００に搭載されたサービスプロセッサ１０３および外部記憶装置が含まれる。
【００２４】
補助記憶部３０３は、例えば、Erasable Programmable ROM（ＥＰＲＯＭ）、ソリッド
ステートドライブ（Solid State Drive、ＳＳＤ）、ハードディスクドライブ（Hard Disk
Drive、ＨＤＤ）等である。また、補助記憶部３０３は、例えば、Compact Disc（ＣＤ）ドライブ装置、Digital Versatile Disc（ＤＶＤ）ドライブ装置、Blu-ray（登録商標）Disc（ＢＤ）ドライブ装置等である。また、補助記憶部３０３は、Network Attached Storage（ＮＡＳ）あるいはStorage Area Network（ＳＡＮ）によって提供されてもよい。
【００２５】
サービスプロセッサ１０３が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、サービスプロセッサ１０３から読み取ることができる記録媒体をいう。このような記録媒体のうちサービスプロセッサ１０３から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ／Ｗ、ＤＶＤ、ブルーレイディスク、ＤＡＴ、８ｍｍテープ、フラッシュメモリなどのメモリカード等がある。また、サービスプロセッサ部１０４に固定された記録媒体としてハードディスク、ＳＳＤあるいはＲＯＭ等がある。
【００２６】
通信部３０４は、例えば、ネットワークＮ１とのインターフェースである。通信部３０４は、ネットワークＮ１を介して他のサーバ１００に搭載されたサービスプロセッサ１０３と通信を行う。
【００２７】
入力部３０５は、例えば、ユーザ等からの操作指示等を受け付けるユーザインターフェースである。入力部３０５として、キーボード、ポインティングデバイス、タッチパネル、加速度センサーあるいは音声入力装置といった入力デバイスを例示できる。
【００２８】
出力部３０６は、例えば、ＣＰＵ３０１で処理されるデータや主記憶部３０２に記憶されるデータを出力する。出力部３０６として、Cathode Ray Tube（ＣＲＴ）ディスプレイ、Liquid Crystal Display（ＬＣＤ）、Plasma Display Panel（ＰＤＰ）、Electroluminescence（ＥＬ）パネル、有機ＥＬパネルあるいはプリンタといった出力デバイスを例示
できる。
【００２９】
図４は、ファームウェア１０３ａの属性の一例を示す図である。ファームウェア１０３ａは、実行可能な処理に応じた属性が設定される。属性は、例えば、Master属性、Standby属性およびSlave属性である。Master属性が設定されたファームウェア１０３ａは、情報処理システム１全体を管理する。すなわち、Master属性が設定されたファームウェア１０３ａは、パーティションの作成、削除およびサーバ１００の電源投入等を行う。さらに、Master属性が設定されたファームウェア１０３ａは、ファームウェア１０３ａの操作に用いるユーザインタフェースを提供する。Standby属性が設定されたファームウェア１０３
ａは、Master属性が設定されたファームウェア１０３ａが何らかの事象により正常に稼働しない場合等に、Master属性のファームウェア１０３ａとして稼働できる。Master属性、Standby属性およびSlave属性のファームウェア１０３ａは、自身が導入されたサービスプロセッサ１０３ａが搭載されたサーバ１００の管理を行う事ができる。Master属性が設定されたファームウェア１０３ａは、情報処理システム１内に１つ存在する。Standby属性
およびSlave属性が設定されたファームウェア１０３ａは、情報処理システム１内に複数
存在してもよい。
【００３０】
図５は、ファームウェア１０３ａが実行する処理を分類した表の一例である。図５の表を参照して、ファームウェア１０３ａが実行する処理の分類について説明する。図５に例示されるように、ファームウェア１０３ａが実行する処理は、「特定のサーバで実施可能な処理」、「どのサーバでも実施可能な処理」、「Master属性のファームウェアで実行できる処理」および「Master属性およびStandby属性のファームウェアで実行できる処理」
に分類できる。
【００３１】
「特定のサーバで実施可能な処理」として、個々のサーバ１００が備えるハードウェア資源に対する処理および特定のサーバ１００が保持する情報の参照、更新等が例示できる。「どのサーバでも実施可能な処理」として、すべてのサーバ１００で共有する情報の参照、更新が例示できる。「どのサーバでも実施可能な処理」とは、換言すれば、Master属性、Standby属性およびSlave属性の何れの属性のファームウェア１０３ａでも実行可能な処理である。「どのサーバでも実施可能な処理」として、各種の計算処理およびすべてのサーバ１００で共有する情報を基にしたデータの生成がさらに例示できる。「Master属性のファームウェアで実行できる処理」として、ユーザインターフェースの提供、外部装置とのインターフェース、通信経路の設定が例示できる。「Master属性のファームウェアで実行できる処理」として、Master属性のファームウェア１０３ａが保持している情報の参照および更新がさらに例示できる。「Master属性およびStandby属性のファームウェアで
実行できる処理」として、Master属性のファームウェア１０３ａおよびStandby属性のフ
ァームウェア１０３ａとで共有している情報の参照および更新が例示できる。
【００３２】
＜処理ブロック＞
図６は、ファームウェア１０３ａの処理ブロックの一例を示す図である。図６では、ファームウェア１０３ａの処理ブロックとして、ユーザインターフェース（ユーザＩ／Ｆ）２０１、ファームウェア内各プロセス２０２、リクエストマネージャー２０３、サーバ間処理要求判定部２０４、処理状態更新部２０５が例示されている。また、図６では、記憶部として、処理情報記憶部２０６およびサーバ情報記憶部２０７が例示されている。処理情報記憶部２０６およびサーバ情報記憶部２０７は、例えば、主記憶部３０２上に構築される。
【００３３】
サービスプロセッサ１０３は、図３に例示されるように、ＣＰＵ３０１と、主記憶部３０２とを有し、主記憶部３０２に実行可能に展開されたコンピュータプログラムにしたがって、図６に例示される処理ブロックとしての処理を実行する。ＣＰＵ３０１は、ＭＰＵ（Microprocessor）、プロセッサとも呼ばれる。ＣＰＵ３０１は、単一のプロセッサに限
定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のＣＰＵ３０１がマルチコア構成を有していても良い。上記処理ブロックの少なくとも一部の処理は、ＣＰＵ３０１以外のプロセッサ、例えば、Digital Signal Processor（DSP）、Graphics Processing Unit（GPU）、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。また、図６の処理ブロックの少なくとも一部の処理は、集積回路（ＩＣ）、その他のディジタル回路であっても良い。また、上記処理ブロックの少なくとも一部にアナログ回路が含まれても良い。集積回路は、ＬＳＩ、Application Specific Integrated Circuit（ＡＳＩＣ）、Programmable Logic Device（ＰＬＤ）を含む。ＰＬＤは、例えば、Field-Programmable Gate Array（ＦＰＧＡ）を含む。上記処理ブロックは、プロセッサと集積回路との組み合わせであ
っても良い。組み合わせは、例えば、マイクロコントローラ（ＭＣＵ）、ＳｏＣ（System-on-a-chip）、システムＬＳＩ、チップセットなどと呼ばれる。
【００３４】
ユーザインターフェース（ユーザＩ／Ｆ）２０１は、ユーザからの要求をリクエストマネージャー２０３へ通知するプログラムである。ユーザＩ／Ｆ２０１は、例えば、入力部３０５を介して入力されたユーザからの処理要求をリクエストマネージャー２０３へ通知する。
【００３５】
ファームウェア内各プロセス２０２は、ファームウェア１０３ａ内において様々な処理を実行するプロセス群の総称である。ファームウェア内各プロセス２０２は、ユーザプロセスおよびシステムプロセスを含む。ユーザプロセスは、例えば、ユーザＩ／Ｆ２０１へのコマンドの入力で起動されるプロセスである。システムプロセスは、例えば、ＯＳによって起動されるプロセスである。ファームウェア内各プロセス２０２に含まれるプロセスは、例えば、リクエストマネージャー２０３からの処理要求に応じて処理を実行する。また、ファームウェア内各プロセス２０２に含まれるプロセスは、他のプロセスに処理を依頼できる。ファームウェア内各プロセス２０２に含まれるプロセスは、他のプロセスに処理を依頼する場合、リクエストマネージャー２０３を介して他のプロセスに処理を依頼してもよい。
【００３６】
リクエストマネージャー２０３は、ユーザＩ／Ｆ２０１またはファームウェア内各プロセス２０２から処理の実行要求を受け付ける。処理の実行要求を受け付けたリクエストマネージャー２０３は、受け付けた処理をどのサーバ１００のファームウェア１０３ａに実行させるかを決定する。リクエストマネージャー２０３は、決定したサーバ１００のファームウェア１０３ａに対して処理の実行を要求する。リクエストマネージャー２０３は、「受付部」、「選定部」および「依頼部」の一例である。
【００３７】
サーバ間処理要求判定部２０４は、各サーバ１００の負荷状況をサーバ情報記憶部２０７から取得する。また、サーバ間処理要求判定部２０４は、ファームウェア内各プロセス２０２に含まれるプロセスの処理負荷等の情報を処理情報記憶部２０６から取得する。サーバ間処理要求判定部２０４は、取得した情報に基づいて、要求された処理を実行できるサーバ１００を選定する。サーバ間処理要求判定部２０４は、「選定部」の一例である。
【００３８】
処理状態更新部２０５は、リクエストマネージャー２０３からの要求に応じてサーバ情報記憶部２０７および処理情報記憶部２０６を更新する。
【００３９】
処理情報記憶部２０６は、ファームウェア内各プロセス２０２に含まれる各プロセスの情報をプロセスごとに保持する。処理情報記憶部２０６は、プロセスを実行できるファームウェア１０３ａの属性と、当該プロセスの負荷を示す情報を処理毎に対応付けて保持する。処理情報記憶部２０６に保持される情報は、処理状態更新部２０５によって更新される。処理情報記憶部２０６に保持される情報が更新されると、他のサーバ１００のファー
ムウェア１０３ａに含まれる処理情報記憶部２０６と同期される。図７は、処理情報記憶部２０６の一例を示す図である。処理情報記憶部２０６に記憶される情報は、「処理コード」、「処理の特性」および「負荷」の各情報を含む。「処理コード」には、ファームウェア内各プロセス２０２の各々を識別する情報が保持される。「処理コード」に保持される情報は、例えば、プロセス名である。「処理の特性」には、プロセスを実行できるサーバ１００を示す情報が保持される。「処理の特性」には、例えば、図５を参照して説明された４種類の処理の特性のうちの１つが保持される。「負荷」には、プロセスの負荷が数値化されて保持される。プロセスの負荷は、プロセスが実行されるたびに測定される。処理情報記憶部２０６の「負荷」には、例えば、測定された負荷の平均値が保持される。処理情報記憶部２０６は、「保持部」の一例である。
【００４０】
サーバ情報記憶部２０７は、情報処理システム１に含まれるサーバ１００の情報をサーバ１００毎に保持する。サーバ情報記憶部２０７は、各サーバ１００に搭載されるファームウェア１０３ａの属性、ファームウェア１０３ａの負荷状況およびサーバ１００の状態を示す情報を保持する。各々のサーバ１００のファームウェア１０３ａは、自身が搭載されたサーバ１００のサーバ情報記憶部２０７と他のサーバ１００のサーバ情報記憶部２０７とを保持する。すなわち、ファームウェア１０３ａは、情報処理システム１に含まれる全てのサーバ１００のサーバ情報記憶部２０７を保持する。サーバ情報記憶部２０７に保持される情報が更新されると、他のサーバ１００のファームウェア１０３ａに含まれるサーバ情報記憶部２０７と同期される。
【００４１】
図８は、サーバ情報記憶部２０７の一例を示す図である。サーバ情報記憶部２０７は、「サーバＩＤ」、「有効フラグ」、「ファームウェア属性」、「実行できる処理の特性」、「サーバ状態」、「実行中処理の負荷」および「使用可能部品数」の各情報を含む。「サーバＩＤ」には、情報処理システム１に含まれる各サーバ１００を一意に識別する情報が保持される。「サーバＩＤ」は、例えば、ホスト名またはInternet Protocol（ＩＰ）
アドレスである。「有効フラグ」には、サーバ１００が有効であるか否かを示すフラグ情報が保持される。「有効」な状態とは、例えば、サーバ１００が情報処理システム１に接続されている状態である。「無効」な状態とは、例えば、サーバ１００が情報処理システム１に接続されていない状態である。「有効フラグ」には、例えば、サーバ１００が有効である場合に「１」が保持され、サーバ１００が有効でない場合に「０」が保持される。サーバ１００ｚは、上述の通り情報処理システム１に接続されていない。そのため、情報処理システム１では、サーバ１００ｚが有効ではない。そこで、サーバ１００ｚに対応するサーバ情報記憶部２０７の有効フラグには「０」が保持される。「ファームウェア属性」には、サーバ１００に搭載されるファームウェア１０３ａの属性が保持される。「ファームウェア属性」には、例えば、ファームウェアの属性がMaster属性、Standby属性、Slave属性の何れであるかを示す情報が保持される。「実行できる処理の特性」には、サーバ１００に搭載されたファームウェア１０３ａが実行できる処理の特性が保持される。「実行できる処理の特性」には、サーバ１００が実行できる処理を示す情報が保持される。「実行できる処理の特性」には、例えば、図５を参照して説明された４種類の処理の特性のうち、サーバ１００が実行可能な処理の特性が保持される。「実行中処理の負荷」には、ファームウェア１０３ａで実行されているファームウェア内各プロセス２０２について処理情報記憶部２０６の「負荷」に登録された情報を集計した値が保持される。
【００４２】
「サーバ状態」には、サーバ１００の状態を示す情報が保持される。サーバ１００の状態としては、例えば、下記の状態１〜５の５つを例示できる。
状態１．非常駐電源オフの状態から非常駐電源オンの状態への処理中の状態
状態２．非常駐電源オンの状態から非常駐電源オフの状態への処理中の状態
状態３．非常駐電源オンの状態
状態４．非常駐電源オフの状態
状態５．部品故障または本来実装できない部品が実装されていることにより、非常駐電源をオンにできない状態
【００４３】
上記に例示される状態１〜５の各状態に応じてファームウェア１０３ａの処理量が変動する。そこで、実施形態では、上記に例示される状態１〜５の各状態を「実行中処理の負荷」の重みづけに用いる。実施形態では各状態の重みづけは、例えば、状態１の場合に「1.5」、状態２の場合に「1.25」、状態３の場合に「1.0」、状態４の場合に「0.5」、状
態５の場合に「0.25」とする。例えば、サーバ１００が状態１の場合、「実行中処理の負荷」の値と状態１の重み「1.5」との積を算出し、算出した値をファームウェア１０３ａ
の負荷とすることができる。「サーバ状態」によって示される重みは、「動作状態毎に決定される状態値」の一例である。
【００４４】
「使用可能部品数」には、サーバ１００に搭載されたＣＰＵ１０１等のハードウェア資源のうち、ファームウェア１０３ａが制御の対象とするハードウェア資源の数が保持される。制御の対象とする部品とは、例えば、サーバ１００に搭載されたハードウェア資源のうち故障していないハードウェア資源である。
【００４５】
図９は、ユーザから処理要求を受け付けた場合の処理の流れの一例を示す図である。以下、図９を参照して、ユーザから処理要求を受け付けた場合の処理の流れの一例について説明する。
【００４６】
Ｂ１からＢ９までの処理は、Master属性が設定されたファームウェア１０３ａによって実行される処理である。Ｂ１では、ファームウェア１０３ａの属性に合わせた処理の振り分けが決定される。決定された情報は、サーバ情報記憶部２０７の「実行できる処理の特性」に保持される。Ｂ１の処理は、各サーバ１００のファームウェア１０３ａに対して属性が決定された後に実行される処理である。
【００４７】
Ｂ２では、ユーザＩ／Ｆ２０１は、ユーザからの処理の実行要求を受信する。処理の実行要求は、例えば、ユーザＩ／Ｆ２０１へのコマンドの入力によって行われる。入力されたコマンドによって、ファームウェア内各プロセス２０２のうち実行対象となるプロセスが特定される。Ｂ３では、サーバ間処理要求判定部２０４は、Ｂ２で実行要求を受け付けた処理を実行させるサーバ１００を決定する。Ｂ３の処理の詳細は、図１１を参照して後述される。Ｂ３の処理の結果、要求された処理が自サーバで実行する処理である場合（Ｂ４でＹＥＳ）、処理はＢ５に進められる。要求された処理が自サーバで実行する処理ではない場合（Ｂ４でＮＯ）、処理はＢ９に進められる。
【００４８】
Ｂ５では、リクエストマネージャー２０３は、Ｂ２で特定されたプロセスに対して処理の実行を要求する。Ｂ６では、Ｂ５で処理の実行を要求されたプロセスは、要求された処理を実行する。Ｂ７では、Ｂ６の処理を終えたプロセスはリクエストマネージャー２０３に処理結果を通知する。Ｂ８では、ユーザＩ／Ｆ２０１は、Ｂ６でリクエストマネージャー２０２に通知された処理結果を出力部３０６に出力する。Ｂ９では、リクエストマネージャー２０２は、Ｂ３で決定されたサーバ１００のファームウェア１０３ａに処理の実行を要求する。
【００４９】
Ｂ１０〜Ｂ１３の処理は、Standby属性またはSlave属性のファームウェア１０３ａによって実行される処理である。Ｂ１０〜Ｂ１２の処理は、処理の実行主体がStandby属性ま
たはSlave属性のファームウェア１０３ａであることを除いてＢ１、Ｂ５、Ｂ６と同様で
ある。そのため、その説明を省略する。Ｂ１３では、Ｂ１２の処理を終えたプロセスは自プロセスを含むファームウェア１０３ａのリクエストマネージャー２０３に処理結果を通知する。処理結果を通知されたリクエストマネージャー２０３は、Master属性のファーム
ウェア１０３ａのリクエストマネージャー２０３に処理結果を通知する。
【００５０】
図１０は、ファームウェア１０３ａの属性に合わせた振り分けパターン生成処理の一例を示す図である。図１０は、図９のＢ１およびＢ１０の処理をより詳細に説明する図の一例である。図１０に例示される処理は、各サーバ１００のファームウェア１０３ａが各々実行する。以下、図１０を参照して、ファームウェア１０３ａの属性に合わせた振り分けパターン生成処理の一例について説明する。
【００５１】
Ｄ１では、処理状態更新部２０５は、「特定のサーバで実行可能な処理」を、サーバ情報記憶部２０７の「実行できる処理の特性」に登録する。Ｄ２では、処理状態更新部２０５は、「どのサーバでも実行可能な処理」をサーバ情報記憶部２０７の「実行できる処理の特性」に登録する。
【００５２】
ファームウェア１０３ａの属性がMaster属性の場合（Ｄ３でＹＥＳ）、処理はＤ４に進められる。ファームウェア１０３ａの属性がMaster属性ではない場合（Ｄ３でＮＯ）、処理はＤ６に進められる。
【００５３】
Ｄ４では、「Master属性のファームウェアで実行できる処理」をサーバ情報記憶部２０７の「実行できる処理の特性」に登録する。Ｄ５では、「Master属性およびStandby属性
のファームウェアで実行できる処理」をサーバ情報記憶部２０７の「実行できる処理の特性」に登録する。
【００５４】
Ｄ６では、ファームウェア１０３ａの属性がStandby属性の場合（Ｄ６でＹＥＳ）、処
理はＤ５に進められる。ファームウェア１０３ａの属性がStandby属性ではない場合（Ｄ
６でＮＯ）、処理は終了される。
【００５５】
図１１は、実行要求を受信した処理を各ファームウェア１０３ａに振り分ける処理の一例を示す図である。図１１の処理は、図９のＢ２〜Ｂ５およびＢ９の処理をより詳細に説明する図の一例である。図１１の処理は、処理要求を受け付けたサービスプロセッサ１０３上で実行される。以下、図１１を参照して、実行要求を受信した処理を各ファームウェア１０３ａに振り分ける処理の一例について説明する。
【００５６】
Ｅ１では、サーバ間処理要求判定部２０４は、処理情報記憶部２０６の「処理の特性」を参照して、図９のＢ２で特定されたプロセスが特定のサーバ１００で実行可能なプロセスであるか否かを判定する。要求されたプロセスが特定のサーバで実行可能なプロセスである場合（Ｅ１でＹＥＳ）、処理はＥ２に進められる。要求されたプロセスが特定のサーバで実行可能なプロセスでない場合（Ｅ１でＮＯ）、処理はＥ５に進められる。
【００５７】
Ｅ２では、サーバ間処理要求判定部２０４は、自サーバとサーバＩＤによって対応付けられたサーバ情報記憶部２０７からサーバＩＤを取得する。Ｅ３では、サーバ間処理要求判定部２０４は、図９のＢ２で特定されたプロセスに対応付けられた処理情報記憶部２０６の「負荷」を参照し、当該処理の負荷を示す値を取得する。サーバ間処理要求判定部２０４は、Ｅ２の処理で取得したサーバＩＤに対応付けられたサーバ情報記憶部２０７の「実行中処理の負荷」に取得した処理の負荷を示す値を加算する。Ｅ４では、処理の依頼先として決定されたサーバ１００のファームウェア１０３ａにプロセスの実行を要求する。
【００５８】
Ｅ５では、サーバ間処理要求判定部２０４は、図９のＢ２で特定されたプロセスがMaster属性のファームウェア１０３ａによって実行されるプロセスであるか否かを判定する。Ｅ５の判定では、サーバ間処理要求判定部２０４は、図９のＢ２で特定されたプロセスに対応付けられた処理情報記憶部２０６の「処理の特性」を参照する。サーバ間処理要求判
定部２０４は、「処理の特性」にMaster属性のファームウェア１０３ａによって実行されるプロセスであるとの情報が登録されている場合に、要求されたプロセスをMaster属性のファームウェア１０３ａによって実行されるプロセスであると判定する。Master属性のファームウェア１０３ａによって実行されるプロセスである場合（Ｅ５でＹＥＳ）、処理はＥ６に進められる。Master属性のファームウェア１０３ａによって実行されるプロセスではない場合（Ｅ５でＮＯ）、処理はＥ７に進められる。
【００５９】
Ｅ６では、サーバ間処理要求判定部２０４は、サーバ情報記憶部２０７の「ファームウェア属性」に登録された情報がMaster属性のファームウェア１０３ａを示しているサーバ情報記憶部２０７を特定する。サーバ間処理要求判定部２０４は、特定したサーバ情報記憶部２０７の「サーバＩＤ」に登録されたサーバＩＤを取得する。
【００６０】
Ｅ７では、サーバ間処理要求判定部２０４は、図９のＢ２で特定されたプロセスに対応付けられた処理情報記憶部２０６の「処理の特性」を参照して、要求されたプロセスがMaster属性またはStandby属性のファームウェア１０３ａによって実行されるプロセスであ
るか否かを判定する。Master属性またはStandby属性のファームウェア１０３ａによって
実行されるプロセスである場合（Ｅ７でＹＥＳ）、処理はＥ８に進められる。Master属性またはStandby属性のファームウェア１０３ａによって実行されるプロセスではない場合
（Ｅ７でＮＯ）、処理はＥ１０に進められる。
【００６１】
Ｅ８では、サーバ間処理要求判定部２０４は、サーバ情報記憶部２０７の「ファームウェア属性」を参照して、「ファームウェア属性」に登録された情報がStandby属性のファ
ームウェア１０３ａを示しているサーバ情報記憶部２０７を選定する。さらに、サーバ間処理要求判定部２０４は、選定されたサーバ情報記憶部２０７の中から、「有効フラグ」が有効になっているサーバ情報記憶部２０７を特定する。サーバ間処理要求判定部２０４は、特定したサーバ情報記憶部２０７の「サーバＩＤ」に登録されたサーバＩＤを取得する。サーバ間処理要求判定部２０４は、該当するサーバＩＤが複数ある場合は複数のサーバＩＤを取得してもよい。
【００６２】
Ｅ９では、サーバ間処理要求判定部２０４は、Ｅ８またはＥ１０で決定されたサーバＩＤで特定されるサーバ１００のうち、負荷の低いサーバ１００を決定する。サーバ間処理要求判定部２０４は、決定されたサーバＩＤによって特定されるサーバ情報記憶部２０７の「実行中処理の負荷」が最も低い値を示すサーバ情報記憶部２０７を選定する。サーバ間処理要求判定部２０４は、選定されたサーバ情報記憶部２０７の「サーバＩＤ」に登録されたサーバＩＤを取得する。サーバ間処理要求判定部２０４は、取得したサーバＩＤを負荷の低いサーバ１００のサーバＩＤとして決定する。Ｅ９の処理の詳細は、図１３を参照して後述される。Ｅ９およびＥ４の処理は、「前記選定された制御部が複数存在する場合、前記選定された制御部の処理負荷を比較して処理負荷の低い制御部を選定」する処理の一例である。
【００６３】
Ｅ１０では、サーバ間処理要求判定部２０４は、サーバ情報記憶部２０７の「ファームウェア属性」を参照して、「ファームウェア属性」に登録された情報がSlave属性のファ
ームウェア１０３ａを示しているサーバ情報記憶部２０７を選定する。さらに、サーバ間処理要求判定部２０４は、特定されたサーバ情報記憶部２０７の中から、「有効フラグ」が有効になっているサーバ情報記憶部２０７を特定する。サーバ間処理要求判定部２０４は、特定したサーバ情報記憶部２０７の「サーバＩＤ」に登録されたサーバＩＤを取得する。サーバ間処理要求判定部２０４は該当するサーバＩＤが複数ある場合は、複数のサーバＩＤを取得する。
【００６４】
図１２は、要求されたプロセスを完了して呼び出し元に復帰する処理の一例を示す図で
ある。図１２の処理は、図９のＢ７およびＢ１３の処理をより詳細に説明する図の一例である。以下、図１２を参照して、要求されたプロセスを完了して呼び出し元に復帰する処理の一例について説明する。
【００６５】
Ｇ１では、プロセスの要求元によって以降の処理が分岐される。プロセスの要求元が自サーバの場合（Ｇ１でＹＥＳ）、処理はＧ２に進められる。プロセスの要求元が自サーバではない場合（Ｇ１でＮＯ）、処理はＧ５に進められる。Ｇ２では、処理状態更新部２０５は、要求されたプロセスの終了をリクエストマネージャー２０３から通知される。処理状態更新部２０５は、処理を終了したプロセスに対応付けられた処理情報記憶部２０６の「負荷」から、終了したプロセスの「負荷」を示す値を取得する。処理状態更新部２０５は、自サーバに対応付けられたサーバ情報記憶部２０７の「実行中処理の負荷」から終了したプロセスの「負荷」を示す値を減算する。
【００６６】
Ｇ３では、終了したプロセスと同期をとる他のプロセスが存在する場合、当該他のプロセスが完了したか否かが判定される。当該他のプロセスが完了していた場合（Ｇ３でＹＥＳ）、処理はＧ４に進められる。当該他のプロセスが完了していない場合（Ｇ３でＮＯ）、処理はＧ６に進められる。
【００６７】
Ｇ４では、処理を完了したプロセスは、呼び出し元のプロセスに対し処理の完了を通知する。処理を完了したプロセスは、例えば、呼び出し元のプロセスがリクエストマネージャー２０３の場合、リクエストマネージャー２０３に処理の完了を通知する。さらに、処理を完了したプロセスは、同期をとる他のプロセスが存在する場合、当該他のプロセスにも処理の完了を通知する。
【００６８】
Ｇ５では、処理を完了したプロセスは、呼び出し元のサーバ１００のリクエストマネージャー２０３に対して処理の完了を通知する。Ｇ６では、同期をとる他のプロセスが完了していない。そのため、プロセスは処理の完了を呼び出し元のプロセスに対して報告せずに処理を終了する。
【００６９】
図１３は、負荷の低いサーバ１００を選定する処理の一例を示す図である。図１３の処理は、図１１のＥ９の処理をより詳細に説明する図の一例である。以下、図１３を参照して、負荷の低いサーバ１００を選定する処理の一例について説明する。
【００７０】
Ｈ１では、サーバ間処理要求判定部２０４は、情報システム１に含まれる各サーバ１００について、サーバ情報記憶部２０７の「実行中処理の負荷」と「サーバ状態」に示されるサーバ状態の重みとの積を算出する。Ｈ２では、サーバ間処理要求判定部２０４は、Ｈ１で算出した積の値が最小となるサーバ１００が１台か否かを判定する。Ｈ１で算出した積の値が最小となるサーバ１００が１台である場合（Ｈ２でＹＥＳ）、処理はＨ３に進められる。Ｈ１で算出した積の値が最小となるサーバ１００が１台ではない場合（Ｈ２でＮＯ）、処理はＨ４に進められる。
【００７１】
Ｈ３では、サーバ間処理要求判定部２０４は、Ｈ１で算出した積の値が最小であるサーバ１００のサーバＩＤをサーバ情報記憶部２０７から取得する。Ｈ３および図１１のＥ４の処理は、「前記処理負荷に対して前記情報処理装置の動作状態毎に決定される状態値（２０７：「サーバ状態」）にしたがった重みづけを行って第２処理負荷を算出し、前記第２処理負荷の低い前記制御部を選定」する処理の一例である。
【００７２】
Ｈ４では、サーバ間処理要求判定部２０４は、Ｈ１で算出した積の値が最小となる複数台のサーバ１００から、ファームウェア１０３ａの属性毎に設定された優先度にしたがってプロセスを実行するサーバ１００を選定する。Ｈ４では、ファームウェア１０３ａの属
性毎の優先度は、例えば、Slave属性、Standby属性、Master属性の順である。ここで、Ｈ４の処理の一例について説明する。例えば、Ｈ１で算出した積の値が最小となるサーバ１００が、サーバ１００ｂとサーバ１００ｄであったとする。この例の場合、サーバ１００ｂはStandby属性のファームウェア１０３ａを有し、サーバ１００ｄはSlave属性のファームウェア１０３ａを有している。そのため、この例の場合、Slave属性のファームウェア
１０３ａを有するサーバ１００ｄが選定される。
【００７３】
Ｈ５では、サーバ間処理要求判定部２０４は、Ｈ４で選定したサーバ１００が１台か否かを判定する。選定したサーバ１００が１台の場合（Ｈ５でＹＥＳ）、処理はＨ６に進められる。選定したサーバ１００が１台ではない場合（Ｈ５でＮＯ）、処理はＨ７に進められる。
【００７４】
Ｈ６では、サーバ間処理要求判定部２０４は、Ｈ４で選定したサーバ１００のサーバＩＤをサーバ情報記憶部２０７から取得する。Ｈ７では、サーバ間処理要求判定部２０４は、サーバ情報記憶部２０７を参照して、Ｈ４で選定されたサーバ１００のうち最も「使用可能部品数」の少ないサーバ１００を選定する。Ｈ８では、サーバ間処理要求判定部２０４は、Ｈ７で選定したサーバ１００のサーバＩＤをサーバ情報記憶部２０７から取得する。なお、サーバ間処理要求判定部２０４は、Ｈ７で選定されたサーバ１００が複数台存在する場合、Ｈ７で選定されたサーバ１００のうちの任意のサーバ１００のサーバＩＤをサーバ情報記憶部２０７から取得すればよい。Ｈ７および図１１のＥ４の処理は、「前記情報処理装置に搭載されたハードウェア資源の数が少ない情報処理装置に備えられた制御部を選定」する処理の一例である。
【００７５】
以上の説明を踏まえ、実施形態に係る情報処理システム１におけるパーティションの電源投入処理を説明する。図１４は、実施形態に係る情報処理システム１において、パーティションの電源投入処理の一例を示す図である。図１４では、サーバ１００ａおよびサーバ１００ｂによってPID#0のパーティションが作成されている。また、サーバ１００ｃお
よびサーバ１００ｄによってPID#1のパーティションが作成されている。サーバ１００ａ
のファームウェア１０３ａは、Master属性に設定されている。サーバ１００ｂのファームウェア１０３ａは、Standby属性に設定されている。サーバ１００ｃおよびサーバ１００
ｄのファームウェア１０３ａは、Slave属性に設定されている。図１４では、ユーザから
の要求にしたがって、PID#1のパーティションの電源が投入される。ここで、図１４に例
示される各処理のうち、Ｋ１０およびＫ１３の処理は、Master属性およびStandby属性の
いずれのファームウェア１０３ａでも実行可能な処理であるとする。以下、図１４を参照して、実施形態に係る情報処理システム１におけるパーティションの電源投入処理の一例について説明する。
【００７６】
Ｋ１では、Master属性のファームウェア１０３ａを有するサーバ１００ａのサービスプロセッサ１０３は、ユーザＩ／Ｆ２０１を介してユーザからPID#1のパーティションに対
する電源投入のコマンドを受け付ける。Ｋ２では、サーバ１００ａのファームウェア１０３ａは、PID#1に含まれるサーバ１００ｃの構成判定処理を要求する。構成判定処理は、
例えば、サーバ１００ｃに搭載されている各種ハードウェアが正常に稼働するか否かを判定する処理である。構成判定処理の要求先となるサーバ１００は、図１１に例示される処理にしたがって選定される。ここでは、サーバ１００ｃの構成判定処理を実行するサーバとしてサーバ１００ｃが選定されたものとする。そこで、サーバ１００ａのファームウェア１０３ａは、サーバ１００ｃに対し構成判定処理を要求する。
【００７７】
Ｋ３では、サーバ１００ｃのファームウェア１０３ａは、サーバ１００ａからの要求を受信する。要求を受信したファームウェア１０３ａは、構成判定処理を実行する。Ｋ６では、構成判定処理を実行したファームウェア１０３ａは、図１２に例示される処理にした
がって決定された処理結果の通知先を決定する。ここでは、処理結果の通知先としてサーバ１００ａが決定される。サーバ１００ｃのファームウェア１０３ａは、サーバ１００ａに構成判定の結果を通知する。サーバ１００ａのファームウェア１０３ａは、受信した結果をStandby属性が設定されているサーバ１００ｂのファームウェア１０３ａと共有する
。受信した結果をサーバ１００ａのファームウェア１０３ａとサーバ１００ｂのファームウェア１０３ａとで共有する方法に限定は無い。サーバ１００ａのファームウェア１０３ａは、ネットワークＮ１を介して受信した結果をサーバ１００ｂのファームウェア１０３ａに送信してもよい。また、サーバ１００ａのファームウェア１０３ａは、例えば、サーバ１００ａのサービスプロセッサ１０３とサーバ１００ｂのサービスプロセッサ１０３とで共有する記憶装置に受信した結果を記憶させてもよい。Ｋ４、Ｋ５およびＫ７の処理は、それぞれＫ２、Ｋ３およびＫ６の処理と同様である。そのため、その説明を省略する。Ｋ８では、サーバ１００ａのファームウェア１０３ａは、サーバ１００ｃおよびサーバ１００ｄから構成判定処理の結果が出揃うまで待機する。
【００７８】
Ｋ１０およびＫ１３で実施される処理は、上述の通り、Master属性およびStandby属性
のいずれの属性のファームウェア１０３ａでも実行可能な処理である。そこで、Ｋ９では、サーバ１００ａのファームウェア１０３ａは、図１１に例示される処理にしたがって、処理の依頼先を決定する。ここでは、処理の依頼先がサーバ１００ｂのファームウェア１０３ａに決定されたものとする。サーバ１００ａのファームウェア１０３ａは、サーバ１００ｂのファームウェア１０３ａに処理を依頼する。Ｋ１０では、処理を依頼されたサーバ１００ｂのファームウェア１０３ａは、サーバ１００ｃのパーティション構成判定処理を実行する。パーティション構成判定処理は、サーバ１００ｃがPID#1のパーティション
を組めるか否かを判定する処理である。Ｋ１１では、サーバ１００ｂのファームウェア１０３ａは、図１２に例示される処理にしたがって、処理結果の通知先を決定する。ここでは、処理の依頼元であるサーバ１００のファームウェア１０３ａに処理結果を通知する。サーバ１００ｂのリクエストマネージャー２０３は、Ｋ１０のパーティション構成判定処理の結果をサーバ１００ａのファームウェア１０３ａに通知する。Ｋ１２では、サーバ１００ｂのファームウェア１０３ａは、図１１に例示される処理にしたがって、処理の依頼先を決定する。ここでも、処理の依頼先がサーバ１００ｂのファームウェア１０３ａに決定されたものとする。Ｋ１３では、処理を依頼されたサーバ１００ｂのファームウェア１０３ａは、Ｋ１０の処理の結果を基にパーティションを構成する部品の状態から、パーティション構成情報作成処理を実行する。Ｋ１４では、サーバ１００ｂのファームウェア１０３ａは、図１２に例示される処理にしたがって、処理結果の通知先を決定する。ここでは、処理の依頼元であるサーバ１００のファームウェア１０３ａに処理結果を通知する。
【００７９】
Ｋ１５では、サーバ１００ａのファームウェア１０３ａは、サーバ１００ｂに対して非常駐電源の投入を依頼する。Ｋ１６では、サーバ１００ｂのファームウェア１０３ａは、サーバ１００ｂの非常駐電源を投入する。Ｋ１７およびＫ１８の処理は、それぞれＫ１５およびＫ１６の処理と同様である。そのため、その説明を省略する。Ｋ１９では、サーバ１００ｃのファームウェア１０３ａは、図１２に例示される処理にしたがって、処理結果の通知先を決定する。ここでは、サーバ１００ｃのファームウェア１０３ａは、処理の依頼元であるサーバ１００ａのファームウェア１０３ａに処理結果を通知する。Ｋ２０の処理は、Ｋ１９の処理と同様である。そのため、その説明を省略する。Ｋ２１では、サーバ１００ａのファームウェア１０３ａは、サーバ１００ｃおよびサーバ１００ｄの非常駐電源投入が完了するのを待機する。
【００８０】
Ｋ２２では、サーバ１００ａのファームウェア１０３ａは、サーバ１００ｃに対しハードウェアの初期化を依頼する。ハードウェアの初期化は、例えば、ハードウェアのデバイスドライバを初期化する処理を含む。Ｋ２３では、サーバ１００ｃのファームウェア１０３ａは、ハードウェアの初期化を実行する。Ｋ２４およびＫ２５の処理は、Ｋ２２および
Ｋ２３の処理と同様であるため、その説明を省略する。
【００８１】
＜比較例＞
ここで、実施形態との比較のため、比較例について説明する。図１５は、比較例に係る情報処理システムにおいて、パーティションに電源を投入する処理の流れの一例を示す図である。比較例に係る情報処理システムは、要求された処理を他のファームウェア１０３ａに振り分けることができない点を除いて、実施形態と同様である。すなわち、比較例に係る情報処理システムでは、要求を受け付けたファームウェア１０３ａが要求された処理を実行する。図１４と同様の処理には同一の符号を付し、その説明を省略する。以下、図１５を参照して、比較例について説明する。
【００８２】
ＯＰ１では、サーバ１００ａのファームウェア１０３ａは、サーバ１００ｃのパーティション構成判定処理を実行する。ＯＰ２では、サーバ１００ａのファームウェア１０３ａは、サーバ１００ｄのパーティション構成情報を作成する。
【００８３】
以上説明した図１５の処理によって、PID#1のパーティションが起動された。図１５の
各処理は、Master属性のファームウェア１０３ａからの指示によって行われた。ここで、Master属性のファームウェア１０３ａとStandby属性のファームウェア１０３ａは同じ情
報にアクセス可能である。そのため、例えば、図１５のＯＰ１とＯＰ２の処理は、Master属性およびStandby属性の何れの属性のファームウェア１０３ａによっても実行可能であ
る。しかしながら、比較例に係る情報処理システムでは、ユーザから受け付けた処理を他のファームウェア１０３ａに割り当てる仕組みを有さない。そのため、比較例に係る情報処理システムでは、ユーザからの要求を受け付けたMaster属性のファームウェア１０３ａがＯＰ８およびＯＰ９の何れも実行している。そのため、比較例に係る情報処理システムでは、Master属性のファームウェア１０３ａに処理負荷が集中しやすい。
【００８４】
これに対して、実施形態では、図１４のＫ９〜Ｋ１４に例示されるように、Master属性のファームウェア１０３ａ以外でも実行可能な処理は、他の属性のファームウェア１０３ａに処理が分担された。そのため、実施形態に係る情報処理システム１は、Master属性のファームウェア１０３ａで全ての処理を実行する比較例に係る情報処理システムと比較して、Master属性のファームウェア１０３ａの処理負荷を低減できる。
【００８５】
＜実施形態の効果＞
実施形態では、処理を要求されたプロセス毎に設けられた処理情報記憶部２０６の「処理の特性」とファームウェア１０３ａの属性とに基づいて、要求されたプロセスの振り分け先を決定した。そのため、実施形態によれば、処理要求を受け付けたファームウェア１０３ａが要求された全ての処理を実行する場合と比較して、特定のファームウェア１０３ａへの処理の偏りが抑制される。
【００８６】
実施形態では、要求された処理を実行できるファームウェア１０３ａが複数存在する場合、処理負荷の低いファームウェア１０３ａに要求された処理を割り当てた。そのため、実施形態によれば、ファームウェア１０３ａの処理負荷を分散することができる。
【００８７】
実施形態では、ファームウェア１０３ａの処理負荷に対してサーバ情報記憶部２０７の「サーバ状態」に基づいた重みづけを行った上で、要求された処理を割り当てるサーバ１００を選定した。そのため、実施形態によれば、サーバ１００のサーバ状態とファームウェア１０３ａの処理負荷とに応じて、適切なファームウェア１０３ａに処理の実行を依頼できる。
【００８８】
実施形態では、ファームウェア１０３ａが制御するハードウェア資源の数に応じて処理
の実行を依頼するファームウェア１０３ａが選定された。ファームウェア１０３ａによって制御されるハードウェア資源の数が多いほど、ファームウェア１０３ａの処理負荷は高くなりやすいと考えられる。そのため、実施形態によれば、ファームウェア１０３ａが制御するハードウェア資源の数に応じて処理の実行を依頼するファームウェア１０３ａを選定することで、処理負荷が高くなりにくいファームウェア１０３ａを選定できる。
【００８９】
＜実施形態の変形＞
実施形態に係る情報処理システム１は、サーバ１００を最大５台含むことができた。しかしながら、情報処理システム１に含まれるサーバ１００の台数に限定は無い。情報処理システム１は、任意の台数のサーバ１００を含むことができる。
【００９０】
実施形態では、１または複数のサーバ１００を組み合わせることでパーティションを作成する情報処理システム１を１例として、特定のファームウェア１０３ａへの処理の偏りを抑制する方法が説明された。しかしながら、実施形態で説明した特定のファームウェア１０３ａへの処理の偏りを抑制する方法を適用できるシステムは、パーティションを作成する情報処理システム１に限定されない。実施形態で説明した特定のファームウェア１０３ａへの処理の偏りを抑制する方法を適用できる情報処理システムは、処理内容に応じた属性が設定されたファームウェアを有する複数のサーバが接続された情報処理システムであればよい。
【００９１】
以上で開示した実施形態や変形例はそれぞれ組み合わせる事ができる。
【符号の説明】
【００９２】
１・・・情報処理システム
１００、１００ａ、１００ｂ、１００ｃ、１００ｄ、１００ｚ・・・サーバ
１０１・・・ＣＰＵ
１０２・・メモリ
１０３・・・サービスプロセッサ
１０３ａ・・・ファームウェア
１０４・・・ファン
１０５・・・ＰＳＵ
１０６・・・ＸＢ
１０７・・・各種センサー
Ｎ１、Ｎ２・・・ネットワーク
３０１・・・ＣＰＵ
３０２・・・主記憶部
３０３・・・補助記憶部
３０４・・・通信部
３０５・・・入力部
３０６・・・出力部
Ｃ１・・・接続バス
２０１・・・ユーザＩ／Ｆ
２０２・・・ファームウェア内各プロセス
２０３・・・リクエストマネージャー
２０４・・・サーバ間処理要求判定部
２０５・・・処理状態更新部
２０６・・・処理情報記憶部
２０７・・・サーバ情報記憶部
【図１】
2018041340.tif 000003
【図２】
2018041340.tif 000004
【図３】
2018041340.tif 000005
【図４】
2018041340.tif 000006
【図５】
2018041340.tif 000007
【図６】
2018041340.tif 000008
【図７】
2018041340.tif 000009
【図８】
2018041340.tif 000010
【図９】
2018041340.tif 000011
【図１０】
2018041340.tif 000012
【図１１】
2018041340.tif 000013
【図１２】
2018041340.tif 000014
【図１３】
2018041340.tif 000015
【図１４】
2018041340.tif 000016
【図１５】
2018041340.tif 000017