IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特許7405236情報処理装置、情報処理方法および情報処理プログラム
<>
  • 特許-情報処理装置、情報処理方法および情報処理プログラム 図1
  • 特許-情報処理装置、情報処理方法および情報処理プログラム 図2
  • 特許-情報処理装置、情報処理方法および情報処理プログラム 図3
  • 特許-情報処理装置、情報処理方法および情報処理プログラム 図4
  • 特許-情報処理装置、情報処理方法および情報処理プログラム 図5
  • 特許-情報処理装置、情報処理方法および情報処理プログラム 図6
  • 特許-情報処理装置、情報処理方法および情報処理プログラム 図7
  • 特許-情報処理装置、情報処理方法および情報処理プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-18
(45)【発行日】2023-12-26
(54)【発明の名称】情報処理装置、情報処理方法および情報処理プログラム
(51)【国際特許分類】
   G06F 13/14 20060101AFI20231219BHJP
   G06F 13/10 20060101ALI20231219BHJP
【FI】
G06F13/14 330E
G06F13/10 330C
G06F13/14 330B
【請求項の数】 7
(21)【出願番号】P 2022507059
(86)(22)【出願日】2020-03-10
(86)【国際出願番号】 JP2020010362
(87)【国際公開番号】W WO2021181537
(87)【国際公開日】2021-09-16
【審査請求日】2022-09-13
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【弁理士】
【氏名又は名称】廣田 浩一
(72)【発明者】
【氏名】竹田 憲一郎
(72)【発明者】
【氏名】峯崎 純太郎
【審査官】吉田 歩
(56)【参考文献】
【文献】特開2013-045163(JP,A)
【文献】特開2002-366375(JP,A)
【文献】米国特許出願公開第2013/0138856(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/14
G06F 13/10
(57)【特許請求の範囲】
【請求項1】
オペレーティングシステムを実行する情報処理部と、
前記情報処理部の動作を管理する管理部と、
デバイスの接続の検知に基づいて、前記デバイスのデバイス情報を取得する取得指示を発行する接続制御部と、
前記オペレーティングシステムの実行中に、前記取得指示に基づいてデバイスからデバイス情報を取得し、取得したデバイス情報を前記管理部に通知するデバイス情報取得部と、
を有し、
前記接続制御部は、
前記デバイスの接続の検知に基づいて、前記デバイス情報取得部を起動し、起動した前記デバイス情報取得部に前記取得指示を発行し、
前記デバイス情報取得部による前記デバイス情報の前記管理部への通知の完了に基づいて、前記デバイス情報取得部を終了し、
前記オペレーティングシステムに前記デバイスの接続を通知する
情報処理装置。
【請求項2】
前記オペレーティングシステムは、前記接続制御部からの前記デバイスの接続の通知に基づいて、前記デバイスの認識処理を実行し、前記デバイスのアクセスを開始する
請求項1に記載の情報処理装置。
【請求項3】
前記接続制御部は、情報処理装置上に生成される仮想マシンモニタに含まれ、
前記オペレーティングシステムは、情報処理装置上に生成される第1の仮想マシン上で実行され、
前記デバイス情報取得部の機能は、情報処理装置上に生成される第2の仮想マシンにより実現される
請求項1または請求項2に記載の情報処理装置。
【請求項4】
前記オペレーティングシステムをそれぞれ実行する複数の前記第1の仮想マシンが生成され、
前記第2の仮想マシンにより実現される前記デバイス情報取得部の機能は、複数の前記第1の仮想マシンに共通に使用される
請求項3に記載の情報処理装置。
【請求項5】
前記デバイス情報取得部は、前記取得指示に基づいて、接続が検知された前記デバイスのドライバを起動し、
起動した前記ドライバは、前記デバイス情報を取得するコマンドを前記デバイスに発行する
請求項1ないし請求項4のいずれか1項に記載の情報処理装置。
【請求項6】
オペレーティングシステムを実行する情報処理部と、前記情報処理部の動作を管理する管理部とを有する情報処理装置の情報処理方法であって、
前記情報処理装置が有する接続制御部が、デバイスの接続の検知に基づいて、前記デバイスのデバイス情報の取得する取得指示を発行し、
前記情報処理装置が有するデバイス情報取得部が、前記オペレーティングシステムの実行中に、前記取得指示に基づいてデバイスからデバイス情報を取得し、取得したデバイス情報を前記管理部に通知し、
前記接続制御部が、
前記デバイスの接続の検知に基づいて、前記デバイス情報取得部を起動し、起動した前記デバイス情報取得部に前記取得指示を発行し、
前記デバイス情報取得部による前記デバイス情報の前記管理部への通知の完了に基づいて、前記デバイス情報取得部を終了し、
前記オペレーティングシステムに前記デバイスの接続を通知する
情報処理装置の情報処理方法。
【請求項7】
オペレーティングシステムを実行する情報処理部と、前記情報処理部の動作を管理する管理部とを有する情報処理装置が実行する情報処理プログラムであって、
前記情報処理装置が有する接続制御部が、デバイスの接続の検知に基づいて、前記デバイスのデバイス情報の取得する取得指示を発行し、
前記情報処理装置が有するデバイス情報取得部が、前記オペレーティングシステムの実行中に、前記取得指示に基づいてデバイスからデバイス情報を取得し、取得したデバイス情報を前記管理部に通知し、
前記接続制御部が、
前記デバイスの接続の検知に基づいて、前記デバイス情報取得部を起動し、起動した前記デバイス情報取得部に前記取得指示を発行し、
前記デバイス情報取得部による前記デバイス情報の前記管理部への通知の完了に基づいて、前記デバイス情報取得部を終了し、
前記オペレーティングシステムに前記デバイスの接続を通知する
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【0002】
基幹システムまたは大規模データベース等の大規模システムに使用されるサーバ等の情報処理装置は、高信頼・高可用性かつ高負荷処理といった要件を満たすことが求められる。例えば、この種の情報処理装置は、PCIe(Peripheral Component Interconnect express)カード等のI/O(Input/Output)デバイスを、システムの電源を落とすことなく接続するためのホットアド機能を有する。情報処理装置は、BIOS(Basic Input Output System)を動作させてI/Oデバイスのデバイス情報を取得する場合、I/Oデバイスの接続を検出した際に、OS(Operating System)の動作を停止してから、BIOSによりI/Oデバイスのデバイス情報を取得し、その後OSの動作を再開する(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-16514号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、ホットアドにより追加されたI/Oデバイスを、デバイス情報を認識するためにOSを停止してBIOSを動作させる場合、BIOSが動作している間、情報処理装置による業務アプリケーション等のシステム動作は停止する。このため、業務に影響を及ぼすおそれがある。したがって、ホットアドにより追加されたI/Oデバイスのデバイス情報を、業務に影響を与えずに取得することは困難である。
【0005】
1つの側面では、本発明は、情報処理装置に追加されたデバイスのデバイス情報を、システム動作を停止させることなく取得することを目的とする。
【課題を解決するための手段】
【0006】
一つの観点によれば、情報処理装置は、オペレーティングシステムを実行する情報処理部と、前記情報処理部の動作を管理する管理部と、デバイスの接続の検知に基づいて、前記デバイスのデバイス情報を取得する取得指示を発行する接続制御部と、前記オペレーティングシステムの実行中に、前記取得指示に基づいてデバイスからデバイス情報を取得し、取得したデバイス情報を前記管理部に通知するデバイス情報取得部と、を有し、前記接続制御部は、前記デバイスの接続の検知に基づいて、前記デバイス情報取得部を起動し、起動した前記デバイス情報取得部に前記取得指示を発行し、前記デバイス情報取得部による前記デバイス情報の前記管理部への通知の完了に基づいて、前記デバイス情報取得部を終了し、前記オペレーティングシステムに前記デバイスの接続を通知する。
【発明の効果】
【0007】
1つの側面では、本発明は、情報処理装置に追加されたデバイスのデバイス情報を、システム動作を停止させることなく取得することができる。
【図面の簡単な説明】
【0008】
図1】一実施形態における情報処理装置の一例を示すブロック図である。
図2図1の情報処理装置の動作の一例を示すシーケンス図である。
図3】別の実施形態における情報処理装置の一例を示すブロック図である。
図4図3のサーバにおいて、PCIeカードがサーバにホッドアドされたときの処理の概要を示す説明図である。
図5図3のサーバにおいて、PCIeカードがサーバにホッドアドされたときの処理の一例を示すシーケンス図である。
図6図5の続きを示すシーケンス図である。
図7】ゲストミニBIOS制御部とゲストミニBIOSとを使用しないサーバにPCIeカードがホッドアドされるときの処理の一例(比較例)を示す説明図である。
図8】ゲストミニBIOS制御部とゲストミニBIOSとを使用しないサーバにPCIeカードがホッドアドされるときの処理の別の例(比較例)を示す説明図である。
【発明を実施するための形態】
【0009】
以下、図面を用いて実施形態が説明される。
【0010】
図1は、一実施形態における情報処理装置の一例を示す。図1に示す情報処理装置100は、例えば、サーバであり、情報処理部1、管理部2、接続制御部4およびデバイス情報取得部5と、デバイス9が着脱可能に接続されるコネクタ7とを有する。
【0011】
情報処理部1は、例えば、CPU(Central Processing Unit)等のプロセッサであり、オペレーティングシステムOSおよび図示しないアプリケーションを実行する。以下では、オペレーティングシステムOSは、単にOSとも称する。管理部2は、例えば、BMC(Baseboard Management Controller)であり、情報処理部1を含む情報処理装置100全体の動作を管理し、情報処理装置100のシステム構成を示す構成情報3を保持する記憶部を有する。記憶部に保持された構成情報3は、情報処理装置100の外部からの要求に基づいて、情報処理装置100に接続される表示装置に表示可能である。
【0012】
接続制御部4は、デバイス9のコネクタ7への接続の検知に基づいて、デバイス9のデバイス情報を取得する取得指示をデバイス情報取得部5に発行する。例えば、接続制御部4は、デバイス9のコネクタ7への接続により発生する割り込みを受信することで、デバイス9の接続を検知する。特に限定されないが、デバイス9は、PCIeカード等の拡張カード(I/Oデバイス)であり、情報処理装置100の動作中にコネクタ7に対する挿抜が可能である。
【0013】
デバイス情報取得部5は、OSの実行中に、接続制御部4からの取得指示に基づいて、コネクタ7への接続が検出されたデバイス9からデバイス情報を取得し、取得したデバイス情報を管理部2に通知する。例えば、デバイス情報取得部5は、取得指示に基づいて、接続が検知されたデバイス9のドライバ6を起動する。起動したドライバ6は、デバイス情報を取得するコマンドをデバイス9に発行し、デバイス情報を取得する。コネクタ7に接続可能な各種デバイス9のドライバを、デバイス情報取得部5に予め用意しておくことで、OSと排他的に動作するBIOSを使用することなく、コネクタ7への接続が検出されたデバイス9からデバイス情報を取得することができる。
【0014】
管理部2に通知されたデバイス情報は、構成情報3として記憶部に格納される。これにより、情報処理装置100は、例えば、情報処理部1が実行中のOSおよび業務アプリケーションを停止することなく、コネクタ7に新たに接続されたデバイス9のデバイス情報を取得することができる。そして、情報処理装置100は、取得したデバイス情報をネットワークインベントリ(Network Inventory)情報として表示装置に表示することができる。
【0015】
接続制御部4は、デバイス情報取得部5がデバイス情報を取得した後、OSにデバイス9の接続を通知する。通知を受けたOSは、デバイス9を認識する認識処理を実行し、デバイス9を認識した後、デバイス9のアクセスを開始する。OSの動作と並行してデバイス情報取得部5によりデバイス情報が取得されるため、OSは、デバイス情報を取得するために、業務アプリケーション等のシステム動作を停止して、動作をBIOSに切り替えなくてよい。したがって、情報処理装置100は、システム動作に影響を与えることなく、新たに追加されたデバイス9のデバイス情報を取得し、デバイス9のアクセスを開始することができる。
【0016】
なお、接続制御部4は、デバイス9の接続の検知に基づいて、停止しているデバイス情報取得部5を起動し、起動したデバイス情報取得部5に取得指示を発行し、デバイス情報を取得させてもよい。また、接続制御部4は、デバイス情報取得部5よるデバイス情報の管理部2への通知の完了に基づいて、デバイス情報取得部5を終了してもよい。
【0017】
デバイス情報の取得時のみデバイス情報取得部5を動作させることで、デバイス情報取得部5が常時動作させる場合に比べて、情報処理装置100の消費電力を削減することができる。また、デバイス情報取得部5がソフトウェアにより実現される場合、デバイス情報の取得時のみデバイス情報取得部5を動作させることで、デバイス情報取得部5を実現するプログラムを実行する情報処理部1等に掛かる負荷を軽減することができる。
【0018】
図2は、図1の情報処理装置100の動作の一例を示す。図2は、情報処理装置100による情報処理方法の一例および情報処理装置100が実行する情報処理プログラムによる処理の一例を示す。なお、図2の初期状態において、接続制御部4、管理部2および情報処理部1は、動作中である。例えば、情報処理部1は、OSと業務アプリケーションとを実行している。
【0019】
デバイス9がコネクタ7に接続されると、接続制御部4は、デバイス9の接続を検知し、デバイス情報取得部5を起動する(図2(a)、(b))。また、接続制御部4は、起動したデバイス情報取得部5に、デバイス9のデバイス情報を取得する取得指示を発行する(図2(c))。
【0020】
デバイス情報取得部5は、情報処理部1がOSと業務アプリケーションとを実行中に、接続制御部4からの取得指示に基づいて、コネクタ7への接続が検出されたデバイス9からデバイス情報を取得する(図2(d))。デバイス情報取得部5は、取得したデバイス情報を管理部2に通知する(図2(e))。管理部2は、デバイス情報取得部5から通知されたデバイス情報を、構成情報3として記憶部に格納する(図2(f))。これにより、情報処理装置100は、コネクタ7に接続されたデバイス9のデバイス情報を表示装置に表示可能になる(図2(g))。
【0021】
接続制御部4は、デバイス情報取得部5よるデバイス情報の管理部2への通知の完了後、デバイス情報取得部5を終了する(図2(h))。接続制御部4は、デバイス情報取得部5がデバイス情報を取得した後、OSにデバイス9の接続を通知する(図2(i))。OSは、接続制御部4からの通知に基づいてデバイス9を認識する認識処理を実行する(図2(j))。そして、OSは、デバイス9を認識した後、デバイス9のアクセスを開始する(図2(k))。
【0022】
以上、図1および図2に示す実施形態では、情報処理装置100は、例えば、情報処理部1が実行中のOSおよび業務アプリケーションを停止することなく、コネクタ7に接続されたデバイス9のデバイス情報を取得することができる。これにより、情報処理部1が実行中のOSおよび業務アプリケーションを停止することなく、情報処理装置100に新たに接続されたデバイス9のデバイス情報をネットワークインベントリ情報として表示装置に表示することができる。
【0023】
デバイス情報の取得時のみデバイス情報取得部5を動作させることで、デバイス情報取得部5を常時動作させる場合に比べて、情報処理装置100の消費電力を削減することができる。また、デバイス情報取得部5がソフトウェアにより実現される場合、デバイス情報の取得時のみデバイス情報取得部5を動作させることで、デバイス情報取得部5を実現するプログラムを実行する情報処理部1等に掛かる負荷を軽減することができる。
【0024】
OSおよびアプリケーションの実行中に、新たに追加されたデバイス9のデバイス情報を取得できるため、情報処理装置100は、OSおよび業務アプリケーションを中断することなく、新たに追加されたデバイス9のアクセスを開始することができる。コネクタ7に接続可能なデバイス9のドライバを、デバイス情報取得部5に予め用意しておくことで、OSと排他的に動作するBIOSを使用することなく、コネクタ7への接続が検出されたデバイス9からデバイス情報を取得することができる。
【0025】
したがって、情報処理装置100を管理するシステム管理者は、業務停止を発生させることなく追加されたデバイス9についての情報を管理することができ、情報処理装置100のダウンタイムを削減し、システムの可用性を向上させることができる。
【0026】
図3は、別の実施形態における情報処理装置の一例を示す。図1と同様の要素については、詳細な説明は省略する。図3に示すサーバ100Aは、CPU10、揮発性メモリ20、不揮発性メモリ30、iRMC(integrated Remote Management Controller)40およびPCIeカード50を、ハードウェアとして有する。特に限定されないが、サーバ100Aは、例えば、Windows(登録商標)またはLinux(登録商標)等のOSが動作するIA(Intel Architecture)サーバである。
【0027】
サーバ100Aは、CPU10が実行するプログラムにより実現されるハイパーバイザ60、ゲストOS70およびゲストミニBIOS80を、ソフトウェアとして有する。ハイパーバイザ60は、ゲストミニBIOS制御部62を含む。以下では、ゲストミニBIOS制御部62の機能をハイパーバイザ60の機能として説明する場合もあり、ハイパーバイザ60の機能をゲストミニBIOS制御部62の機能として説明する場合もある。サーバ100Aは、情報処理装置の一例である。なお、サーバ100Aのハードウェア構成およびソフトウェア構成は、図3に限定されるものではない。
【0028】
CPU10は、情報処理プログラムを実行することで、ハイパーバイザ60、ゲストOS70およびゲストミニBIOS80の機能を実現するとともに、業務アプリケーション等の各種アプリケーションプログラムを実行する。CPU10は、情報処理部の一例である。揮発性メモリ20は、例えば、SDRAM(Synchronous Dynamic Random Access Memory)を含むメモリモジュールであり、不揮発性メモリ30に格納された各種プログラムが展開されて、CPU10により実行される。
【0029】
PCIeカード50は、デバイスの一例であり、図示しないカードスロットを介してサーバ100Aに着脱可能に接続される。なお、サーバ100Aは、マザーボード上に複数のカードスロットを有してもよい。サーバ100Aは、ゲストOS70等を動作した状態で、PCIeカード50を追加可能なホットアド機能を有する。なお、サーバ100Aには、PCIeカード50以外の他のI/Oデバイスが、ホッドアド機能を使用して追加されてもよい。
【0030】
不揮発性メモリ30は、ハイパーバイザ60のプログラム、ゲストOSとともに仮想マシン上に実装されるBIOS32のプログラムおよびゲストミニBIOS80のプログラム等が格納される領域を有する。不揮発性メモリ30は、例えば、フラッシュメモリである。
【0031】
iRMC40は、BMCおよびIPMI(Intelligent Platform Management Interface)の機能を含み、CPU10、バス、ファン、温度センサおよび電圧などを監視し、遠隔地からの制御を受け付ける。iRMC40は、サーバ100Aのシステム構成を示す構成情報42を保持する記憶部を有する。構成情報42は、サーバ100Aに接続されたPCIeカード50のカード情報等を含む。iRMC40は、サーバ100Aの動作を管理する管理部の一例である。
【0032】
ここで、カード情報とは、PCIeカード50のベンダ名、デバイス名、ネットワークインタフェースカード(NIC)のMACアドレス、ファイバチャネルカードのワールドワイド名(WWN)等がある。構成情報42として記憶部に記憶されたこれらのカード情報は、iRMC40によりネットワークインベントリ情報として、表示装置のウェブブラウザの管理画面等に表示可能である。サーバ100Aを管理するシステム管理者等は、ウェブブラウザの管理画面等に表示されるネットワークインベントリ情報により、サーバ100Aに接続されているPCIeカード50等のカード情報を把握することができる。
【0033】
ハイパーバイザ60は、仮想マシンモニタの一例であり、CPU10および揮発性メモリ20等のハードウェアと、BIOS32およびゲストOS70等のソフトウェアとの中間に位置するものである。ハイパーバイザ60は、ハードウェアを仮想化して仮想ハードウェアとしてソフトウェアに見せることで、サーバ100Aで実現されるシステム上でのハードウェアの動的な追加および削除を実現する。
【0034】
ゲストミニBIOS制御部62は、ホッドアド時に、PCIeカード50から発行される割り込みを受ける機能と、ホットアドでPCIeカード50を追加するゲストOS70にホットアドのイベントを通知する機能を有する。ゲストミニBIOS制御部62は、ゲストOS70をロードして仮想マシンVM1を構築する機能と、ゲストOS70の起動と終了を制御する機能とを有する。
【0035】
また、ゲストミニBIOS制御部62は、ゲストOS70に対して、PCIeカード50等のハード資源の割り当てと削除とを制御する機能を有する。ゲストミニBIOS制御部62は、ゲストミニBIOS80をロードして、仮想マシンVM2を構築する機能と、ゲストミニBIOS80の起動と終了を制御する機能とを有する。さらに、ゲストミニBIOS制御部62は、サーバ100Aの起動時に、ゲストミニBIOS80で使用するCPUおよびメモリ等の資源を確保する。ゲストミニBIOS制御部62は、接続制御部の一例である。ハイパーバイザ60(ゲストミニBIOS制御部62)により仮想マシンVM1、VM2を構築することで、ゲストOS70とゲストミニBIOS80との並列動作を簡易に実現することができる。
【0036】
ゲストミニBIOS80は、ホッドアドされたPCIeカード50のカード情報を取得するために動的にサーバ100A内にロードされるBIOSである。ゲストミニBIOS80は、ゲストミニBIOS制御部62による制御に基づいて、ゲストOS70と並列に実行可能である。ゲストミニBIOS80は、カードスロットに接続可能な各種PCIeカード50のEFI(Extensible Firmware Interface)ドライバ82を有する。ゲストミニBIOS80は、デバイス情報取得部の一例である。
【0037】
ゲストミニBIOS80は、PCIeカード50を認識する機能と、カード情報を取得する仕組みであるSMASH CLP(Systems Management Architecture for Server Hardware Command Line Protocol)のコマンドを発行できる程度の機能とが実装されていればよい。すなわち、ゲストミニBIOS80は、通常のBIOSのようなフル機能を持たなくてよい。実施以下では、SMASH CLPのコマンドをCLPコマンドと称する。
【0038】
なお、図3では、サーバ100Aは、1つのゲストOS70を実行する仮想マシンVM1と、1つのゲストミニBIOS80を実行する仮想マシンVM2とが生成される例を示すが、生成される仮想マシンの数は、図3に限定されない。例えば、複数のゲストOS70(仮想マシンVM1)に対して1つのゲストミニBIOS80(仮想マシンVM2)が起動されてもよい。この場合、ゲストミニBIOS80は、複数のゲストOS70に共通に設けられ、複数のPCIeカード50等のホッドアド時のカード情報の取得処理を並列に実行可能な機能を有する。
【0039】
これにより、ゲストOS70毎にゲストミニBIOS80を起動させる場合に比べて、CPUおよびメモリ等のハードウェア資源を有効に使用することができる。なお、所定数のゲストOS70(仮想マシンVM1)に対して1つのゲストミニBIOS80(仮想マシンVM2)を割り当てる場合、ゲストミニBIOS80は、サーバ100Aに常駐させてもよい。
【0040】
CPU10が複数のCPUコアを有する場合、あるいは、サーバ100Aが複数のCPU10を有する場合、以下に示すようなCPU資源の割り当てが可能である。
【0041】
(割り当て例1:CPU資源を占有する方式)
サーバ100Aの起動時に、ゲストミニBIOS制御部62が、ゲストミニBIOS80専用に少なくとも1つのCPUコア(またはCPU、以下同様)を割り当てる。ゲストミニBIOS80専用のCPUコアは、ゲストOS70等には使用されない。これにより、全てのCPUコアがゲストOS70用に割り当てられることを抑止することができ、ホッドアド時に、ゲストミニBIOS80が起動されない不具合を抑止することができる。なお、ゲストミニBIOS80用に割り当てたCPUコアは、複数のゲストミニBIOS80に共用されてもよい。
【0042】
また、ホッドアド時に、ゲストミニBIOS80用を割り当てるCPUコアを検索するための検索処理等を実行しなくてよいため、ゲストミニBIOS80を高速に起動することができる。なお、現在のサーバシステムは、数十個から数百個程度のCPUコアを含んでいる場合が多く、ゲストミニBIOS80用に1つのCPUコアが占有されたとしても、サーバシステム全体の性能、または運用の可用性に与える影響は少ない。
【0043】
(割り当て例2:CPU資源を占有しない方式)
ゲストミニBIOS80の起動時に、ゲストOS70が割り当てられていないCPUコアの少なくとも1つを、ゲストミニBIOS80専用として動的に割り当てる。但し、サーバシステムのCPU資源の全てをゲストOS70に割り当て済みの場合、ゲストミニBIOS80が起動できない。ゲストミニBIOS80が起動できないことを抑止するために、ゲストOS70に割り当てられたCPUコアのいずれかが、一時的にゲストOS70から開放され、ゲストミニBIOS80に割り当てられる。
【0044】
例えば、小規模なサーバシステム等では、通常の業務時にはCPU資源をゲストOS70に最大限に割り当て、資源の使用効率を上げて運用する場合がある。このような運用において、メンテナンス時などにCPU資源を一時的に解放してゲストミニBIOS80用にCPUコアを割り当ててもよい。
【0045】
図4は、図3のサーバ100Aにおいて、PCIeカード50がサーバ100Aにホッドアドされたときの処理の概要を示す。PCIeカード50がサーバ100Aにホッドアドされると、ホッドアドを通知する割り込みが発行される(図4(a))。ホッドアドの割り込みを検知したゲストミニBIOS制御部62は、不揮発性メモリ30からゲストミニBIOS80をダウンロードして起動する(図4(b))。
【0046】
ここで、ゲストミニBIOS80は、不揮発性メモリ30から揮発性メモリ20上にロードされ、展開される。なお、ゲストミニBIOS80は、サーバ100Aに常駐させてもよい。この場合、不揮発性メモリ30からのダウンロード時間をなくすことができ、ゲストミニBIOS80が起動するまでの時間を短縮することができる。
【0047】
ゲストミニBIOS制御部62は、ゲストミニBIOS80を起動するとき、ホッドアドされたPCIeカード50をゲストミニBIOS80が認識できるように割り当てる(図4(c))。ゲストミニBIOS80は、ホッドアドされたPCIeカード50のEFIドライバ82を起動する。EFIドライバ82は、PCIeカード50にCLPコマンドを発行してカード情報を取得する(図4(d))。なお、PCIeカード50からのカード情報の取得は、CLP以外のプロトコルが使用されてもよい。
【0048】
ゲストミニBIOS80は、取得したカード情報をiRMC40に通知する(図4(e))。iRMC40は、通知されたカード情報を構成情報42として保持する。ゲストミニBIOS80は、ゲストミニBIOS制御部62に対し、カード情報の取得の完了を通知する(図4(f))。ゲストミニBIOS制御部62は、ゲストミニBIOS80からの完了通知に基づいて、ゲストミニBIOS80を終了する(図4(g))。
【0049】
ゲストミニBIOS制御部62は、ゲストOS70にホッドアドのイベントを通知する(図4(h))。ゲストOS70は、ゲストミニBIOS制御部62からの通知に基づいて、PCIeカード50を認識するホッドアド処理を実施し、PCIeカード50の利用を開始する(図4(i))。
【0050】
以上の処理フローにおいて、ゲストミニBIOS制御部62は、ホッドアドの割り込みを検知した後、ゲストミニBIOS80を起動し、ゲストミニBIOS80にカード情報を取得させ、カード情報をiRMC40に通知させる。そして、カード情報の取得の一連の処理が実行されてから、ゲストミニBIOS制御部62は、ゲストOS70にホッドアドのイベントを通知する。
【0051】
これにより、ホッドアドされたPCIeカード50のカード情報を、ゲストOS70の処理を停止することなく、すなわち、業務アプリケーションを停止することなく取得してiRMC40に通知することができる。例えば、サーバ100Aを管理するシステム管理者は、業務停止を発生させることなく追加されたPCIeカード50についてのカード情報を管理することができ、サーバ100Aのダウンタイムを削減し、サーバシステムの可用性を向上させることができる。
【0052】
図5および図6は、図3のサーバ100Aにおいて、PCIeカード50がサーバ100Aにホッドアドされたときの処理の一例を示す。図4と同様の処理については、詳細な説明は省略する。図5および図6は、サーバ100Aによる情報処理方法の一例を示す。また、図5および図6に示す動作のうち、ゲストミニBIOS制御部62の動作とゲストミニBIOS80の動作とは、サーバ100Aが実行する情報処理プログラムによる処理の一例を示す。
【0053】
PCIeカード50がサーバ100Aにホッドアドされると、ホッドアドを通知する割り込みが発行される(図5(a))。ゲストミニBIOS制御部62は、ホッドアドの割り込みを検知し、ゲストミニBIOS80を起動するためにゲストミニBIOS80に起動指示を発行する(図5(b)、(c))。ゲストミニBIOS制御部62によるゲストミニBIOS80の起動指示は、PCIeカード50のデバイス情報を取得する取得指示の一例である。起動されたゲストミニBIOS80は、ゲストミニBIOS制御部62を介してPCIバスをスキャンする(図5(d))。ゲストミニBIOS制御部62は、ホッドアドされたPCIeカード50を示す情報をゲストミニBIOS80に登録する(図5(e))。
【0054】
この後、ゲストミニBIOS80は、ホッドアドされたPCIeカード50のEFIドライバ82を起動する(図5(f))。EFIドライバ82は、PCIバスのスキャン結果に基づいてPCIeカード50を認識し、PCIeカード50にCLPコマンドを発行する(図5(g)、(h))。PCIeカード50は、カード情報をCLPコマンドの応答としてEFIドライバ82に送付する(図5(i))。そして、EFIドライバ82は、ホッドアドされたPCIeカード50のカード情報を取得する(図5(j))。
【0055】
EFIドライバ82は、取得したカード情報をゲストミニBIOS80に送付し、ゲストミニBIOS80は、カード情報を取得する(図5(k)、(l))。なお、ゲストOS70および各種アプリケーションは、PCIeカード50がホッドアドされてからゲストミニBIOS80がカード情報を取得するまでのカード情報取得処理の間、動作可能である(図5(m))。したがって、サーバ100Aが実行している業務を停止することなく、ホッドアドされたPCIeカード50のカード情報を取得することができる。
【0056】
次に、図6において、ゲストミニBIOS80は、取得したカード情報をiRMC40に送付する(図6(a))。iRMC40は、送付されたカード情報を取得し、カード情報の取得完了通知を発行する(図6(b)、(c))。すなわち、取得したカード情報(すなわち、ネットワークインベントリ)のiRMC40による表示装置への表示が可能になる(図6(d))。ゲストミニBIOS80は、カード情報の取得完了通知を受信し、カード情報の取得処理を完了する(図6(e))。
【0057】
ゲストミニBIOS80によるカード情報の取得処理の完了後、ゲストミニBIOS制御部62は、ゲストミニBIOS80を終了する(図6(f))。ゲストOS70および各種アプリケーションは、iRMC40がカード情報を取得してから、ゲストミニBIOS80が終了するまでのカード情報取得処理の間も、動作可能である(図6(g))。換言すれば、サーバ100Aが実行している業務を停止することなく、ホッドアドされたPCIeカード50のカード情報をiRMC40に通知することができる。
【0058】
次に、ゲストミニBIOS制御部62は、ゲストOS70にホッドアドのイベントを通知する(図6(h))。ゲストOS70は、ゲストミニBIOS制御部62からの通知に基づいて、PCIeカード50を認識するホッドアド処理を開始し、ホッドアドされたPCIeカード50を認識した後、ホッドアド処理を完了する(図6(i))。PCIeカード50は、ゲストOS70による認識後、使用可能な状態になる(図6(j))。そして、アプリケーションによるPCIeカード50の利用が開始される。
【0059】
図5および図6に示すように、この実施形態では、ゲストミニBIOS制御部62とゲストミニBIOS80は、ゲストOS70およびアプリケーションと並列に動作可能である。このため、ゲストOS70およびアプリケーションを停止することなく、カード情報を取得することができる。また、ゲストOS70は、新規の機能を追加することなく、従来と同様にPCIeカード50を認識し、ホッドアド処理を実行することができる。さらに、カード情報を取得処理は、ユーザによる操作を介在させることなく、ゲストミニBIOS制御部62により自動で実行することができる。
【0060】
なお、ゲストOS70は、ホッドアド処理の実施中、業務アプリケーション等の実行を一時的に停止する。しかしながら、この停止期間は、BIOSによりカード情報を取得済みのPCIeカード50の従来のホッドアド処理でも発生しており、業務アプリケーション等への影響はほとんどない。
【0061】
図7は、ゲストミニBIOS制御部62とゲストミニBIOS80とを使用しないサーバにPCIeカード50がホッドアドされるときの処理の一例(比較例)を示す。図3と同様の要素については、同じ符号を付し、詳細な説明は省略する。
【0062】
図7の左側において、サーバ100Bは、パワーオン時にBIOS32をシステムメモリにロードして起動する。起動されたBIOS32のEFIドライバ82が、CLPコマンドをサーバ100Bに接続されているPCIeカード50に発行し、PCIeカード50のカード情報を取得する(図7(a))。
【0063】
BIOS32は、CLPコマンドにより取得したPCIeカード50の情報を、iRMC40に通知する(図7(b))。iRMC40は、BIOS32から通知されたカード情報を構成情報42(ネットワークインベントリ情報)として保持する。これによって、iRMC40は、構成情報として保持したカード情報を元にネットワークインベントリ情報を表示装置に表示することができる。
【0064】
サーバ100Bの起動後、BIOS32はシステムメモリ上からアンロードされ、図7の右側に示すように、サーバ100Bの制御は、OS90に引き継がれる(図7(c))。PCIeカード50の制御についても、BIOS32のEFIドライバ82からOS90内のドライバ92に引き継がれる。
【0065】
但し、OS90内のドライバ92は、BIOS32内のEFIドライバ82と異なり、CLPコマンドによりPCIeカード50のカード情報を取得する仕組みを持たない。そのため、サーバ100Aの起動後にiRMC40によって表示装置に表示されるPCIeカード50のカード情報は、サーバ100Bのパワーオン時にBIOS32により取得されてiRMC40に格納されたもののみとなる。OS90の動作中にホッドアドされたPCIeカード50のカード情報(ネットワークインベントリ)は、iRMC40の構成情報42に含まれないため、表示装置に表示されない。
【0066】
BIOS32とOS90とは排他的に動作するため、OS90の動作中にBIOS32によってホッドアドされたPCIeカード50のカード情報を取得することはできない。このため、OS90の動作中にホッドアドされたPCIeカード50のカード情報は、サーバ100Bを再起動してBIOS32を起動し、図7(a)、(b)の手順を実施することで取得され、iRMC40に通知される。但し、BIOS32が動作している間、OS90の動作は停止するため、例えば、業務アプリケーションの実行も停止し、システム動作に影響を与えるおそれがある。これにより、以下の不具合が発生するおそれがある。
【0067】
例えば、サーバシステムが24時間365日の連続運転を実施する場合、サーバシステムの再起動は容易に実施することができない。また、I/Oデバイスのメンテナンス等において、OS90および業務アプリケーションを、業務に影響するレベルの時間で中断することが許容されない。
【0068】
また、サーバシステムが、常時、高スループットかつ低レイテンシーのI/O処理を実行する場合、I/Oデバイスの構成変更の際などに、OS90が中断することが許容されない場合がある。例えば、業務に影響を与える時間長のOS90の中断は許容されない。また、サーバシステムの外部からのI/Oデバイスのアクセス時に、OS90の中断により、応答時間がタイムアウト時間を超えることは許容されない。
【0069】
図8は、ゲストミニBIOS制御部62とゲストミニBIOS80とを使用しないサーバにPCIeカード50がホッドアドされるときの処理の別の例(比較例)を示す。
【0070】
まず、PCIeカード50がサーバ100Aにホッドアドされると、ホッドアドを通知する割り込みが発行される(図8(a))。OS90は、ホッドアドの割り込みを検知し、ホッドアド処理を開始する(図8(b))。なお、PCIeカード50がホッドアドされる前、サーバは、OS90および業務アプリケーションを実行している。OS90のホッドアド処理の開始から完了まで、業務アプリケーションは停止する(図8(c))。
【0071】
OS90は、ホッドアドされたPCIeカード50を認識し、BIOS32にカード情報の取得処理を実行させる(図8(d))。すなわち、OS90の動作状態からBIOS32の動作状態に切り替えられる。ここで、OS90は、PCIeカード50からカード情報を取得する機能を持たないため、カード情報は、BIOS32のEFIドライバ82により取得される。OS90とBIOS32とは排他的に実行されるため、BIOS32が動作している間、OS90は、動作を停止する(図8(e))。
【0072】
そして、BIOS32によるカード情報の取得後、制御がOS90に戻り、OS90は、動作を再開し、ホッドアド処理を完了する(図8(f))。ホッドアド処理の完了により、PCIeカード50が使用可能になる(図8(g))。この後、業務アプリケーションが動作を再開し、PCIeカード50を使用した業務処理が実行される。
【0073】
図8に示す例では、ホッドアド処理にBIOS32によるカード情報の取得処理が含まれるため、ホッドアド処理の期間が図6に比べて長くなる。これにより、OS90および業務アプリケーションの停止期間も長くなり、システム動作に影響を与えるおそれがある。
【0074】
なお、OS90にカード情報の取得機能を持たせる場合、カード情報を取得するためのドライバ等の機能をOS90ごとに開発する必要がある。例えば、IAシステムでは、PCIeカード等のI/O情報を含むハードウェア情報は、システムの起動時にBIOSにより取得され、OSに通知される。このため、カード情報の取得機能等の新たな機能の追加する場合、OS90ごとに機能の追加部分の開発が必要になり、コストが掛かる。また、OS90ごとに追加する機能のサポートの可否が分かれることで、OS90の汎用性が失われるおそれがある。
【0075】
以上、図3から図6に示す実施形態においても、図1および図2に示した実施形態と同様の効果を得ることができる。例えば、サーバ100Aは、ゲストOS70および業務アプリケーションを停止することなく、ホッドアドされたPCIeカード50のカード情報を取得することができる。これにより、ゲストOS70および業務アプリケーションを停止することなく、サーバ100AにホッドアドされたPCIeカード50のデバイス情報をネットワークインベントリ情報として表示装置に表示することができる。また、サーバ100Aは、ゲストOS70および業務アプリケーションを中断することなく、新たに追加されたPCIeカード50のアクセスを開始することができる。
【0076】
さらに、図3から図6に示す実施形態では、ハイパーバイザ60にゲストミニBIOS制御部62の機能を持たせることで、ゲストミニBIOS80を仮想マシン上で動作させることができる。これにより、ハイパーバイザ60(ゲストミニBIOS制御部62)により仮想マシンVM1、VM2を構築することで、ゲストOS70とゲストミニBIOS80との並列動作を簡易に実現することができる。そして、ホッドアドの割り込みが発行されてから、ホッドアドのイベントがゲストOS70に通知される前に、ゲストミニBIOS制御部62によりカード情報の取得処理を完了させることができる。
【0077】
なお、上述した実施形態は、業務停止を伴わないという点において、大規模なシステムに適用する場合に有効性が高くなるが、適用する分野を限定するものではない。小規模なシステムまたは個人利用のシステムにおいても、業務停止を伴わないこと、OSに機能の追加が不要なこと、およびユーザによる操作が不要なことは、システムの可用性向上といった観点からも有益である。
【0078】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【0079】
1 情報処理部
2 管理部
3 構成情報
4 接続制御部
5 デバイス情報取得部
6 ドライバ
7 コネクタ
9 デバイス
10 CPU
20 揮発性メモリ
30 不揮発性メモリ
32 BIOS
40 iRMC
42 構成情報
50 PCIeカード
60 ハイパーバイザ
62 ゲストミニBIOS制御部
70 ゲストOS
80 ゲストミニBIOS
82 EFIドライバ
90 OS
92 ドライバ
100情報処理装置
100A、100B サーバ
図1
図2
図3
図4
図5
図6
図7
図8