JP7405236B2 - 情報処理装置、情報処理方法および情報処理プログラム - Google Patents

情報処理装置、情報処理方法および情報処理プログラム Download PDF

Info

Publication number
JP7405236B2
JP7405236B2 JP2022507059A JP2022507059A JP7405236B2 JP 7405236 B2 JP7405236 B2 JP 7405236B2 JP 2022507059 A JP2022507059 A JP 2022507059A JP 2022507059 A JP2022507059 A JP 2022507059A JP 7405236 B2 JP7405236 B2 JP 7405236B2
Authority
JP
Japan
Prior art keywords
information
information processing
guest
bios
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022507059A
Other languages
English (en)
Other versions
JPWO2021181537A5 (ja
JPWO2021181537A1 (ja
Inventor
憲一郎 竹田
純太郎 峯崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2021181537A1 publication Critical patent/JPWO2021181537A1/ja
Publication of JPWO2021181537A5 publication Critical patent/JPWO2021181537A5/ja
Application granted granted Critical
Publication of JP7405236B2 publication Critical patent/JP7405236B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
基幹システムまたは大規模データベース等の大規模システムに使用されるサーバ等の情報処理装置は、高信頼・高可用性かつ高負荷処理といった要件を満たすことが求められる。例えば、この種の情報処理装置は、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参照)。
特開2017-16514号公報
しかしながら、ホットアドにより追加されたI/Oデバイスを、デバイス情報を認識するためにOSを停止してBIOSを動作させる場合、BIOSが動作している間、情報処理装置による業務アプリケーション等のシステム動作は停止する。このため、業務に影響を及ぼすおそれがある。したがって、ホットアドにより追加されたI/Oデバイスのデバイス情報を、業務に影響を与えずに取得することは困難である。
1つの側面では、本発明は、情報処理装置に追加されたデバイスのデバイス情報を、システム動作を停止させることなく取得することを目的とする。
一つの観点によれば、情報処理装置は、オペレーティングシステムを実行する情報処理部と、前記情報処理部の動作を管理する管理部と、デバイスの接続の検知に基づいて、前記デバイスのデバイス情報を取得する取得指示を発行する接続制御部と、前記オペレーティングシステムの実行中に、前記取得指示に基づいてデバイスからデバイス情報を取得し、取得したデバイス情報を前記管理部に通知するデバイス情報取得部と、を有し、前記接続制御部は、前記デバイスの接続の検知に基づいて、前記デバイス情報取得部を起動し、起動した前記デバイス情報取得部に前記取得指示を発行し、前記デバイス情報取得部による前記デバイス情報の前記管理部への通知の完了に基づいて、前記デバイス情報取得部を終了し、前記オペレーティングシステムに前記デバイスの接続を通知する。
1つの側面では、本発明は、情報処理装置に追加されたデバイスのデバイス情報を、システム動作を停止させることなく取得することができる。
一実施形態における情報処理装置の一例を示すブロック図である。 図1の情報処理装置の動作の一例を示すシーケンス図である。 別の実施形態における情報処理装置の一例を示すブロック図である。 図3のサーバにおいて、PCIeカードがサーバにホッドアドされたときの処理の概要を示す説明図である。 図3のサーバにおいて、PCIeカードがサーバにホッドアドされたときの処理の一例を示すシーケンス図である。 図5の続きを示すシーケンス図である。 ゲストミニBIOS制御部とゲストミニBIOSとを使用しないサーバにPCIeカードがホッドアドされるときの処理の一例(比較例)を示す説明図である。 ゲストミニBIOS制御部とゲストミニBIOSとを使用しないサーバにPCIeカードがホッドアドされるときの処理の別の例(比較例)を示す説明図である。
以下、図面を用いて実施形態が説明される。
図1は、一実施形態における情報処理装置の一例を示す。図1に示す情報処理装置100は、例えば、サーバであり、情報処理部1、管理部2、接続制御部4およびデバイス情報取得部5と、デバイス9が着脱可能に接続されるコネクタ7とを有する。
情報処理部1は、例えば、CPU(Central Processing Unit)等のプロセッサであり、オペレーティングシステムOSおよび図示しないアプリケーションを実行する。以下では、オペレーティングシステムOSは、単にOSとも称する。管理部2は、例えば、BMC(Baseboard Management Controller)であり、情報処理部1を含む情報処理装置100全体の動作を管理し、情報処理装置100のシステム構成を示す構成情報3を保持する記憶部を有する。記憶部に保持された構成情報3は、情報処理装置100の外部からの要求に基づいて、情報処理装置100に接続される表示装置に表示可能である。
接続制御部4は、デバイス9のコネクタ7への接続の検知に基づいて、デバイス9のデバイス情報を取得する取得指示をデバイス情報取得部5に発行する。例えば、接続制御部4は、デバイス9のコネクタ7への接続により発生する割り込みを受信することで、デバイス9の接続を検知する。特に限定されないが、デバイス9は、PCIeカード等の拡張カード(I/Oデバイス)であり、情報処理装置100の動作中にコネクタ7に対する挿抜が可能である。
デバイス情報取得部5は、OSの実行中に、接続制御部4からの取得指示に基づいて、コネクタ7への接続が検出されたデバイス9からデバイス情報を取得し、取得したデバイス情報を管理部2に通知する。例えば、デバイス情報取得部5は、取得指示に基づいて、接続が検知されたデバイス9のドライバ6を起動する。起動したドライバ6は、デバイス情報を取得するコマンドをデバイス9に発行し、デバイス情報を取得する。コネクタ7に接続可能な各種デバイス9のドライバを、デバイス情報取得部5に予め用意しておくことで、OSと排他的に動作するBIOSを使用することなく、コネクタ7への接続が検出されたデバイス9からデバイス情報を取得することができる。
管理部2に通知されたデバイス情報は、構成情報3として記憶部に格納される。これにより、情報処理装置100は、例えば、情報処理部1が実行中のOSおよび業務アプリケーションを停止することなく、コネクタ7に新たに接続されたデバイス9のデバイス情報を取得することができる。そして、情報処理装置100は、取得したデバイス情報をネットワークインベントリ(Network Inventory)情報として表示装置に表示することができる。
接続制御部4は、デバイス情報取得部5がデバイス情報を取得した後、OSにデバイス9の接続を通知する。通知を受けたOSは、デバイス9を認識する認識処理を実行し、デバイス9を認識した後、デバイス9のアクセスを開始する。OSの動作と並行してデバイス情報取得部5によりデバイス情報が取得されるため、OSは、デバイス情報を取得するために、業務アプリケーション等のシステム動作を停止して、動作をBIOSに切り替えなくてよい。したがって、情報処理装置100は、システム動作に影響を与えることなく、新たに追加されたデバイス9のデバイス情報を取得し、デバイス9のアクセスを開始することができる。
なお、接続制御部4は、デバイス9の接続の検知に基づいて、停止しているデバイス情報取得部5を起動し、起動したデバイス情報取得部5に取得指示を発行し、デバイス情報を取得させてもよい。また、接続制御部4は、デバイス情報取得部5よるデバイス情報の管理部2への通知の完了に基づいて、デバイス情報取得部5を終了してもよい。
デバイス情報の取得時のみデバイス情報取得部5を動作させることで、デバイス情報取得部5が常時動作させる場合に比べて、情報処理装置100の消費電力を削減することができる。また、デバイス情報取得部5がソフトウェアにより実現される場合、デバイス情報の取得時のみデバイス情報取得部5を動作させることで、デバイス情報取得部5を実現するプログラムを実行する情報処理部1等に掛かる負荷を軽減することができる。
図2は、図1の情報処理装置100の動作の一例を示す。図2は、情報処理装置100による情報処理方法の一例および情報処理装置100が実行する情報処理プログラムによる処理の一例を示す。なお、図2の初期状態において、接続制御部4、管理部2および情報処理部1は、動作中である。例えば、情報処理部1は、OSと業務アプリケーションとを実行している。
デバイス9がコネクタ7に接続されると、接続制御部4は、デバイス9の接続を検知し、デバイス情報取得部5を起動する(図2(a)、(b))。また、接続制御部4は、起動したデバイス情報取得部5に、デバイス9のデバイス情報を取得する取得指示を発行する(図2(c))。
デバイス情報取得部5は、情報処理部1がOSと業務アプリケーションとを実行中に、接続制御部4からの取得指示に基づいて、コネクタ7への接続が検出されたデバイス9からデバイス情報を取得する(図2(d))。デバイス情報取得部5は、取得したデバイス情報を管理部2に通知する(図2(e))。管理部2は、デバイス情報取得部5から通知されたデバイス情報を、構成情報3として記憶部に格納する(図2(f))。これにより、情報処理装置100は、コネクタ7に接続されたデバイス9のデバイス情報を表示装置に表示可能になる(図2(g))。
接続制御部4は、デバイス情報取得部5よるデバイス情報の管理部2への通知の完了後、デバイス情報取得部5を終了する(図2(h))。接続制御部4は、デバイス情報取得部5がデバイス情報を取得した後、OSにデバイス9の接続を通知する(図2(i))。OSは、接続制御部4からの通知に基づいてデバイス9を認識する認識処理を実行する(図2(j))。そして、OSは、デバイス9を認識した後、デバイス9のアクセスを開始する(図2(k))。
以上、図1および図2に示す実施形態では、情報処理装置100は、例えば、情報処理部1が実行中のOSおよび業務アプリケーションを停止することなく、コネクタ7に接続されたデバイス9のデバイス情報を取得することができる。これにより、情報処理部1が実行中のOSおよび業務アプリケーションを停止することなく、情報処理装置100に新たに接続されたデバイス9のデバイス情報をネットワークインベントリ情報として表示装置に表示することができる。
デバイス情報の取得時のみデバイス情報取得部5を動作させることで、デバイス情報取得部5を常時動作させる場合に比べて、情報処理装置100の消費電力を削減することができる。また、デバイス情報取得部5がソフトウェアにより実現される場合、デバイス情報の取得時のみデバイス情報取得部5を動作させることで、デバイス情報取得部5を実現するプログラムを実行する情報処理部1等に掛かる負荷を軽減することができる。
OSおよびアプリケーションの実行中に、新たに追加されたデバイス9のデバイス情報を取得できるため、情報処理装置100は、OSおよび業務アプリケーションを中断することなく、新たに追加されたデバイス9のアクセスを開始することができる。コネクタ7に接続可能なデバイス9のドライバを、デバイス情報取得部5に予め用意しておくことで、OSと排他的に動作するBIOSを使用することなく、コネクタ7への接続が検出されたデバイス9からデバイス情報を取得することができる。
したがって、情報処理装置100を管理するシステム管理者は、業務停止を発生させることなく追加されたデバイス9についての情報を管理することができ、情報処理装置100のダウンタイムを削減し、システムの可用性を向上させることができる。
図3は、別の実施形態における情報処理装置の一例を示す。図1と同様の要素については、詳細な説明は省略する。図3に示すサーバ100Aは、CPU10、揮発性メモリ20、不揮発性メモリ30、iRMC(integrated Remote Management Controller)40およびPCIeカード50を、ハードウェアとして有する。特に限定されないが、サーバ100Aは、例えば、Windows(登録商標)またはLinux(登録商標)等のOSが動作するIA(Intel Architecture)サーバである。
サーバ100Aは、CPU10が実行するプログラムにより実現されるハイパーバイザ60、ゲストOS70およびゲストミニBIOS80を、ソフトウェアとして有する。ハイパーバイザ60は、ゲストミニBIOS制御部62を含む。以下では、ゲストミニBIOS制御部62の機能をハイパーバイザ60の機能として説明する場合もあり、ハイパーバイザ60の機能をゲストミニBIOS制御部62の機能として説明する場合もある。サーバ100Aは、情報処理装置の一例である。なお、サーバ100Aのハードウェア構成およびソフトウェア構成は、図3に限定されるものではない。
CPU10は、情報処理プログラムを実行することで、ハイパーバイザ60、ゲストOS70およびゲストミニBIOS80の機能を実現するとともに、業務アプリケーション等の各種アプリケーションプログラムを実行する。CPU10は、情報処理部の一例である。揮発性メモリ20は、例えば、SDRAM(Synchronous Dynamic Random Access Memory)を含むメモリモジュールであり、不揮発性メモリ30に格納された各種プログラムが展開されて、CPU10により実行される。
PCIeカード50は、デバイスの一例であり、図示しないカードスロットを介してサーバ100Aに着脱可能に接続される。なお、サーバ100Aは、マザーボード上に複数のカードスロットを有してもよい。サーバ100Aは、ゲストOS70等を動作した状態で、PCIeカード50を追加可能なホットアド機能を有する。なお、サーバ100Aには、PCIeカード50以外の他のI/Oデバイスが、ホッドアド機能を使用して追加されてもよい。
不揮発性メモリ30は、ハイパーバイザ60のプログラム、ゲストOSとともに仮想マシン上に実装されるBIOS32のプログラムおよびゲストミニBIOS80のプログラム等が格納される領域を有する。不揮発性メモリ30は、例えば、フラッシュメモリである。
iRMC40は、BMCおよびIPMI(Intelligent Platform Management Interface)の機能を含み、CPU10、バス、ファン、温度センサおよび電圧などを監視し、遠隔地からの制御を受け付ける。iRMC40は、サーバ100Aのシステム構成を示す構成情報42を保持する記憶部を有する。構成情報42は、サーバ100Aに接続されたPCIeカード50のカード情報等を含む。iRMC40は、サーバ100Aの動作を管理する管理部の一例である。
ここで、カード情報とは、PCIeカード50のベンダ名、デバイス名、ネットワークインタフェースカード(NIC)のMACアドレス、ファイバチャネルカードのワールドワイド名(WWN)等がある。構成情報42として記憶部に記憶されたこれらのカード情報は、iRMC40によりネットワークインベントリ情報として、表示装置のウェブブラウザの管理画面等に表示可能である。サーバ100Aを管理するシステム管理者等は、ウェブブラウザの管理画面等に表示されるネットワークインベントリ情報により、サーバ100Aに接続されているPCIeカード50等のカード情報を把握することができる。
ハイパーバイザ60は、仮想マシンモニタの一例であり、CPU10および揮発性メモリ20等のハードウェアと、BIOS32およびゲストOS70等のソフトウェアとの中間に位置するものである。ハイパーバイザ60は、ハードウェアを仮想化して仮想ハードウェアとしてソフトウェアに見せることで、サーバ100Aで実現されるシステム上でのハードウェアの動的な追加および削除を実現する。
ゲストミニBIOS制御部62は、ホッドアド時に、PCIeカード50から発行される割り込みを受ける機能と、ホットアドでPCIeカード50を追加するゲストOS70にホットアドのイベントを通知する機能を有する。ゲストミニBIOS制御部62は、ゲストOS70をロードして仮想マシンVM1を構築する機能と、ゲストOS70の起動と終了を制御する機能とを有する。
また、ゲストミニBIOS制御部62は、ゲストOS70に対して、PCIeカード50等のハード資源の割り当てと削除とを制御する機能を有する。ゲストミニBIOS制御部62は、ゲストミニBIOS80をロードして、仮想マシンVM2を構築する機能と、ゲストミニBIOS80の起動と終了を制御する機能とを有する。さらに、ゲストミニBIOS制御部62は、サーバ100Aの起動時に、ゲストミニBIOS80で使用するCPUおよびメモリ等の資源を確保する。ゲストミニBIOS制御部62は、接続制御部の一例である。ハイパーバイザ60(ゲストミニBIOS制御部62)により仮想マシンVM1、VM2を構築することで、ゲストOS70とゲストミニBIOS80との並列動作を簡易に実現することができる。
ゲストミニBIOS80は、ホッドアドされたPCIeカード50のカード情報を取得するために動的にサーバ100A内にロードされるBIOSである。ゲストミニBIOS80は、ゲストミニBIOS制御部62による制御に基づいて、ゲストOS70と並列に実行可能である。ゲストミニBIOS80は、カードスロットに接続可能な各種PCIeカード50のEFI(Extensible Firmware Interface)ドライバ82を有する。ゲストミニBIOS80は、デバイス情報取得部の一例である。
ゲストミニBIOS80は、PCIeカード50を認識する機能と、カード情報を取得する仕組みであるSMASH CLP(Systems Management Architecture for Server Hardware Command Line Protocol)のコマンドを発行できる程度の機能とが実装されていればよい。すなわち、ゲストミニBIOS80は、通常のBIOSのようなフル機能を持たなくてよい。実施以下では、SMASH CLPのコマンドをCLPコマンドと称する。
なお、図3では、サーバ100Aは、1つのゲストOS70を実行する仮想マシンVM1と、1つのゲストミニBIOS80を実行する仮想マシンVM2とが生成される例を示すが、生成される仮想マシンの数は、図3に限定されない。例えば、複数のゲストOS70(仮想マシンVM1)に対して1つのゲストミニBIOS80(仮想マシンVM2)が起動されてもよい。この場合、ゲストミニBIOS80は、複数のゲストOS70に共通に設けられ、複数のPCIeカード50等のホッドアド時のカード情報の取得処理を並列に実行可能な機能を有する。
これにより、ゲストOS70毎にゲストミニBIOS80を起動させる場合に比べて、CPUおよびメモリ等のハードウェア資源を有効に使用することができる。なお、所定数のゲストOS70(仮想マシンVM1)に対して1つのゲストミニBIOS80(仮想マシンVM2)を割り当てる場合、ゲストミニBIOS80は、サーバ100Aに常駐させてもよい。
CPU10が複数のCPUコアを有する場合、あるいは、サーバ100Aが複数のCPU10を有する場合、以下に示すようなCPU資源の割り当てが可能である。
(割り当て例1:CPU資源を占有する方式)
サーバ100Aの起動時に、ゲストミニBIOS制御部62が、ゲストミニBIOS80専用に少なくとも1つのCPUコア(またはCPU、以下同様)を割り当てる。ゲストミニBIOS80専用のCPUコアは、ゲストOS70等には使用されない。これにより、全てのCPUコアがゲストOS70用に割り当てられることを抑止することができ、ホッドアド時に、ゲストミニBIOS80が起動されない不具合を抑止することができる。なお、ゲストミニBIOS80用に割り当てたCPUコアは、複数のゲストミニBIOS80に共用されてもよい。
また、ホッドアド時に、ゲストミニBIOS80用を割り当てるCPUコアを検索するための検索処理等を実行しなくてよいため、ゲストミニBIOS80を高速に起動することができる。なお、現在のサーバシステムは、数十個から数百個程度のCPUコアを含んでいる場合が多く、ゲストミニBIOS80用に1つのCPUコアが占有されたとしても、サーバシステム全体の性能、または運用の可用性に与える影響は少ない。
(割り当て例2:CPU資源を占有しない方式)
ゲストミニBIOS80の起動時に、ゲストOS70が割り当てられていないCPUコアの少なくとも1つを、ゲストミニBIOS80専用として動的に割り当てる。但し、サーバシステムのCPU資源の全てをゲストOS70に割り当て済みの場合、ゲストミニBIOS80が起動できない。ゲストミニBIOS80が起動できないことを抑止するために、ゲストOS70に割り当てられたCPUコアのいずれかが、一時的にゲストOS70から開放され、ゲストミニBIOS80に割り当てられる。
例えば、小規模なサーバシステム等では、通常の業務時にはCPU資源をゲストOS70に最大限に割り当て、資源の使用効率を上げて運用する場合がある。このような運用において、メンテナンス時などにCPU資源を一時的に解放してゲストミニBIOS80用にCPUコアを割り当ててもよい。
図4は、図3のサーバ100Aにおいて、PCIeカード50がサーバ100Aにホッドアドされたときの処理の概要を示す。PCIeカード50がサーバ100Aにホッドアドされると、ホッドアドを通知する割り込みが発行される(図4(a))。ホッドアドの割り込みを検知したゲストミニBIOS制御部62は、不揮発性メモリ30からゲストミニBIOS80をダウンロードして起動する(図4(b))。
ここで、ゲストミニBIOS80は、不揮発性メモリ30から揮発性メモリ20上にロードされ、展開される。なお、ゲストミニBIOS80は、サーバ100Aに常駐させてもよい。この場合、不揮発性メモリ30からのダウンロード時間をなくすことができ、ゲストミニBIOS80が起動するまでの時間を短縮することができる。
ゲストミニBIOS制御部62は、ゲストミニBIOS80を起動するとき、ホッドアドされたPCIeカード50をゲストミニBIOS80が認識できるように割り当てる(図4(c))。ゲストミニBIOS80は、ホッドアドされたPCIeカード50のEFIドライバ82を起動する。EFIドライバ82は、PCIeカード50にCLPコマンドを発行してカード情報を取得する(図4(d))。なお、PCIeカード50からのカード情報の取得は、CLP以外のプロトコルが使用されてもよい。
ゲストミニBIOS80は、取得したカード情報をiRMC40に通知する(図4(e))。iRMC40は、通知されたカード情報を構成情報42として保持する。ゲストミニBIOS80は、ゲストミニBIOS制御部62に対し、カード情報の取得の完了を通知する(図4(f))。ゲストミニBIOS制御部62は、ゲストミニBIOS80からの完了通知に基づいて、ゲストミニBIOS80を終了する(図4(g))。
ゲストミニBIOS制御部62は、ゲストOS70にホッドアドのイベントを通知する(図4(h))。ゲストOS70は、ゲストミニBIOS制御部62からの通知に基づいて、PCIeカード50を認識するホッドアド処理を実施し、PCIeカード50の利用を開始する(図4(i))。
以上の処理フローにおいて、ゲストミニBIOS制御部62は、ホッドアドの割り込みを検知した後、ゲストミニBIOS80を起動し、ゲストミニBIOS80にカード情報を取得させ、カード情報をiRMC40に通知させる。そして、カード情報の取得の一連の処理が実行されてから、ゲストミニBIOS制御部62は、ゲストOS70にホッドアドのイベントを通知する。
これにより、ホッドアドされたPCIeカード50のカード情報を、ゲストOS70の処理を停止することなく、すなわち、業務アプリケーションを停止することなく取得してiRMC40に通知することができる。例えば、サーバ100Aを管理するシステム管理者は、業務停止を発生させることなく追加されたPCIeカード50についてのカード情報を管理することができ、サーバ100Aのダウンタイムを削減し、サーバシステムの可用性を向上させることができる。
図5および図6は、図3のサーバ100Aにおいて、PCIeカード50がサーバ100Aにホッドアドされたときの処理の一例を示す。図4と同様の処理については、詳細な説明は省略する。図5および図6は、サーバ100Aによる情報処理方法の一例を示す。また、図5および図6に示す動作のうち、ゲストミニBIOS制御部62の動作とゲストミニBIOS80の動作とは、サーバ100Aが実行する情報処理プログラムによる処理の一例を示す。
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))。
この後、ゲストミニ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))。
EFIドライバ82は、取得したカード情報をゲストミニBIOS80に送付し、ゲストミニBIOS80は、カード情報を取得する(図5(k)、(l))。なお、ゲストOS70および各種アプリケーションは、PCIeカード50がホッドアドされてからゲストミニBIOS80がカード情報を取得するまでのカード情報取得処理の間、動作可能である(図5(m))。したがって、サーバ100Aが実行している業務を停止することなく、ホッドアドされたPCIeカード50のカード情報を取得することができる。
次に、図6において、ゲストミニBIOS80は、取得したカード情報をiRMC40に送付する(図6(a))。iRMC40は、送付されたカード情報を取得し、カード情報の取得完了通知を発行する(図6(b)、(c))。すなわち、取得したカード情報(すなわち、ネットワークインベントリ)のiRMC40による表示装置への表示が可能になる(図6(d))。ゲストミニBIOS80は、カード情報の取得完了通知を受信し、カード情報の取得処理を完了する(図6(e))。
ゲストミニBIOS80によるカード情報の取得処理の完了後、ゲストミニBIOS制御部62は、ゲストミニBIOS80を終了する(図6(f))。ゲストOS70および各種アプリケーションは、iRMC40がカード情報を取得してから、ゲストミニBIOS80が終了するまでのカード情報取得処理の間も、動作可能である(図6(g))。換言すれば、サーバ100Aが実行している業務を停止することなく、ホッドアドされたPCIeカード50のカード情報をiRMC40に通知することができる。
次に、ゲストミニBIOS制御部62は、ゲストOS70にホッドアドのイベントを通知する(図6(h))。ゲストOS70は、ゲストミニBIOS制御部62からの通知に基づいて、PCIeカード50を認識するホッドアド処理を開始し、ホッドアドされたPCIeカード50を認識した後、ホッドアド処理を完了する(図6(i))。PCIeカード50は、ゲストOS70による認識後、使用可能な状態になる(図6(j))。そして、アプリケーションによるPCIeカード50の利用が開始される。
図5および図6に示すように、この実施形態では、ゲストミニBIOS制御部62とゲストミニBIOS80は、ゲストOS70およびアプリケーションと並列に動作可能である。このため、ゲストOS70およびアプリケーションを停止することなく、カード情報を取得することができる。また、ゲストOS70は、新規の機能を追加することなく、従来と同様にPCIeカード50を認識し、ホッドアド処理を実行することができる。さらに、カード情報を取得処理は、ユーザによる操作を介在させることなく、ゲストミニBIOS制御部62により自動で実行することができる。
なお、ゲストOS70は、ホッドアド処理の実施中、業務アプリケーション等の実行を一時的に停止する。しかしながら、この停止期間は、BIOSによりカード情報を取得済みのPCIeカード50の従来のホッドアド処理でも発生しており、業務アプリケーション等への影響はほとんどない。
図7は、ゲストミニBIOS制御部62とゲストミニBIOS80とを使用しないサーバにPCIeカード50がホッドアドされるときの処理の一例(比較例)を示す。図3と同様の要素については、同じ符号を付し、詳細な説明は省略する。
図7の左側において、サーバ100Bは、パワーオン時にBIOS32をシステムメモリにロードして起動する。起動されたBIOS32のEFIドライバ82が、CLPコマンドをサーバ100Bに接続されているPCIeカード50に発行し、PCIeカード50のカード情報を取得する(図7(a))。
BIOS32は、CLPコマンドにより取得したPCIeカード50の情報を、iRMC40に通知する(図7(b))。iRMC40は、BIOS32から通知されたカード情報を構成情報42(ネットワークインベントリ情報)として保持する。これによって、iRMC40は、構成情報として保持したカード情報を元にネットワークインベントリ情報を表示装置に表示することができる。
サーバ100Bの起動後、BIOS32はシステムメモリ上からアンロードされ、図7の右側に示すように、サーバ100Bの制御は、OS90に引き継がれる(図7(c))。PCIeカード50の制御についても、BIOS32のEFIドライバ82からOS90内のドライバ92に引き継がれる。
但し、OS90内のドライバ92は、BIOS32内のEFIドライバ82と異なり、CLPコマンドによりPCIeカード50のカード情報を取得する仕組みを持たない。そのため、サーバ100Aの起動後にiRMC40によって表示装置に表示されるPCIeカード50のカード情報は、サーバ100Bのパワーオン時にBIOS32により取得されてiRMC40に格納されたもののみとなる。OS90の動作中にホッドアドされたPCIeカード50のカード情報(ネットワークインベントリ)は、iRMC40の構成情報42に含まれないため、表示装置に表示されない。
BIOS32とOS90とは排他的に動作するため、OS90の動作中にBIOS32によってホッドアドされたPCIeカード50のカード情報を取得することはできない。このため、OS90の動作中にホッドアドされたPCIeカード50のカード情報は、サーバ100Bを再起動してBIOS32を起動し、図7(a)、(b)の手順を実施することで取得され、iRMC40に通知される。但し、BIOS32が動作している間、OS90の動作は停止するため、例えば、業務アプリケーションの実行も停止し、システム動作に影響を与えるおそれがある。これにより、以下の不具合が発生するおそれがある。
例えば、サーバシステムが24時間365日の連続運転を実施する場合、サーバシステムの再起動は容易に実施することができない。また、I/Oデバイスのメンテナンス等において、OS90および業務アプリケーションを、業務に影響するレベルの時間で中断することが許容されない。
また、サーバシステムが、常時、高スループットかつ低レイテンシーのI/O処理を実行する場合、I/Oデバイスの構成変更の際などに、OS90が中断することが許容されない場合がある。例えば、業務に影響を与える時間長のOS90の中断は許容されない。また、サーバシステムの外部からのI/Oデバイスのアクセス時に、OS90の中断により、応答時間がタイムアウト時間を超えることは許容されない。
図8は、ゲストミニBIOS制御部62とゲストミニBIOS80とを使用しないサーバにPCIeカード50がホッドアドされるときの処理の別の例(比較例)を示す。
まず、PCIeカード50がサーバ100Aにホッドアドされると、ホッドアドを通知する割り込みが発行される(図8(a))。OS90は、ホッドアドの割り込みを検知し、ホッドアド処理を開始する(図8(b))。なお、PCIeカード50がホッドアドされる前、サーバは、OS90および業務アプリケーションを実行している。OS90のホッドアド処理の開始から完了まで、業務アプリケーションは停止する(図8(c))。
OS90は、ホッドアドされたPCIeカード50を認識し、BIOS32にカード情報の取得処理を実行させる(図8(d))。すなわち、OS90の動作状態からBIOS32の動作状態に切り替えられる。ここで、OS90は、PCIeカード50からカード情報を取得する機能を持たないため、カード情報は、BIOS32のEFIドライバ82により取得される。OS90とBIOS32とは排他的に実行されるため、BIOS32が動作している間、OS90は、動作を停止する(図8(e))。
そして、BIOS32によるカード情報の取得後、制御がOS90に戻り、OS90は、動作を再開し、ホッドアド処理を完了する(図8(f))。ホッドアド処理の完了により、PCIeカード50が使用可能になる(図8(g))。この後、業務アプリケーションが動作を再開し、PCIeカード50を使用した業務処理が実行される。
図8に示す例では、ホッドアド処理にBIOS32によるカード情報の取得処理が含まれるため、ホッドアド処理の期間が図6に比べて長くなる。これにより、OS90および業務アプリケーションの停止期間も長くなり、システム動作に影響を与えるおそれがある。
なお、OS90にカード情報の取得機能を持たせる場合、カード情報を取得するためのドライバ等の機能をOS90ごとに開発する必要がある。例えば、IAシステムでは、PCIeカード等のI/O情報を含むハードウェア情報は、システムの起動時にBIOSにより取得され、OSに通知される。このため、カード情報の取得機能等の新たな機能の追加する場合、OS90ごとに機能の追加部分の開発が必要になり、コストが掛かる。また、OS90ごとに追加する機能のサポートの可否が分かれることで、OS90の汎用性が失われるおそれがある。
以上、図3から図6に示す実施形態においても、図1および図2に示した実施形態と同様の効果を得ることができる。例えば、サーバ100Aは、ゲストOS70および業務アプリケーションを停止することなく、ホッドアドされたPCIeカード50のカード情報を取得することができる。これにより、ゲストOS70および業務アプリケーションを停止することなく、サーバ100AにホッドアドされたPCIeカード50のデバイス情報をネットワークインベントリ情報として表示装置に表示することができる。また、サーバ100Aは、ゲストOS70および業務アプリケーションを中断することなく、新たに追加されたPCIeカード50のアクセスを開始することができる。
さらに、図3から図6に示す実施形態では、ハイパーバイザ60にゲストミニBIOS制御部62の機能を持たせることで、ゲストミニBIOS80を仮想マシン上で動作させることができる。これにより、ハイパーバイザ60(ゲストミニBIOS制御部62)により仮想マシンVM1、VM2を構築することで、ゲストOS70とゲストミニBIOS80との並列動作を簡易に実現することができる。そして、ホッドアドの割り込みが発行されてから、ホッドアドのイベントがゲストOS70に通知される前に、ゲストミニBIOS制御部62によりカード情報の取得処理を完了させることができる。
なお、上述した実施形態は、業務停止を伴わないという点において、大規模なシステムに適用する場合に有効性が高くなるが、適用する分野を限定するものではない。小規模なシステムまたは個人利用のシステムにおいても、業務停止を伴わないこと、OSに機能の追加が不要なこと、およびユーザによる操作が不要なことは、システムの可用性向上といった観点からも有益である。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
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 サーバ

Claims (7)

  1. オペレーティングシステムを実行する情報処理部と、
    前記情報処理部の動作を管理する管理部と、
    デバイスの接続の検知に基づいて、前記デバイスのデバイス情報を取得する取得指示を発行する接続制御部と、
    前記オペレーティングシステムの実行中に、前記取得指示に基づいてデバイスからデバイス情報を取得し、取得したデバイス情報を前記管理部に通知するデバイス情報取得部と、
    を有し、
    前記接続制御部は、
    前記デバイスの接続の検知に基づいて、前記デバイス情報取得部を起動し、起動した前記デバイス情報取得部に前記取得指示を発行し、
    前記デバイス情報取得部による前記デバイス情報の前記管理部への通知の完了に基づいて、前記デバイス情報取得部を終了し、
    前記オペレーティングシステムに前記デバイスの接続を通知する
    情報処理装置。
  2. 前記オペレーティングシステムは、前記接続制御部からの前記デバイスの接続の通知に基づいて、前記デバイスの認識処理を実行し、前記デバイスのアクセスを開始する
    請求項1に記載の情報処理装置。
  3. 前記接続制御部は、情報処理装置上に生成される仮想マシンモニタに含まれ、
    前記オペレーティングシステムは、情報処理装置上に生成される第1の仮想マシン上で実行され、
    前記デバイス情報取得部の機能は、情報処理装置上に生成される第2の仮想マシンにより実現される
    請求項1または請求項2に記載の情報処理装置。
  4. 前記オペレーティングシステムをそれぞれ実行する複数の前記第1の仮想マシンが生成され、
    前記第2の仮想マシンにより実現される前記デバイス情報取得部の機能は、複数の前記第1の仮想マシンに共通に使用される
    請求項3に記載の情報処理装置。
  5. 前記デバイス情報取得部は、前記取得指示に基づいて、接続が検知された前記デバイスのドライバを起動し、
    起動した前記ドライバは、前記デバイス情報を取得するコマンドを前記デバイスに発行する
    請求項1ないし請求項4のいずれか1項に記載の情報処理装置。
  6. オペレーティングシステムを実行する情報処理部と、前記情報処理部の動作を管理する管理部とを有する情報処理装置の情報処理方法であって、
    前記情報処理装置が有する接続制御部が、デバイスの接続の検知に基づいて、前記デバイスのデバイス情報の取得する取得指示を発行し、
    前記情報処理装置が有するデバイス情報取得部が、前記オペレーティングシステムの実行中に、前記取得指示に基づいてデバイスからデバイス情報を取得し、取得したデバイス情報を前記管理部に通知し、
    前記接続制御部が、
    前記デバイスの接続の検知に基づいて、前記デバイス情報取得部を起動し、起動した前記デバイス情報取得部に前記取得指示を発行し、
    前記デバイス情報取得部による前記デバイス情報の前記管理部への通知の完了に基づいて、前記デバイス情報取得部を終了し、
    前記オペレーティングシステムに前記デバイスの接続を通知する
    情報処理装置の情報処理方法。
  7. オペレーティングシステムを実行する情報処理部と、前記情報処理部の動作を管理する管理部とを有する情報処理装置が実行する情報処理プログラムであって、
    前記情報処理装置が有する接続制御部が、デバイスの接続の検知に基づいて、前記デバイスのデバイス情報の取得する取得指示を発行し、
    前記情報処理装置が有するデバイス情報取得部が、前記オペレーティングシステムの実行中に、前記取得指示に基づいてデバイスからデバイス情報を取得し、取得したデバイス情報を前記管理部に通知し、
    前記接続制御部が、
    前記デバイスの接続の検知に基づいて、前記デバイス情報取得部を起動し、起動した前記デバイス情報取得部に前記取得指示を発行し、
    前記デバイス情報取得部による前記デバイス情報の前記管理部への通知の完了に基づいて、前記デバイス情報取得部を終了し、
    前記オペレーティングシステムに前記デバイスの接続を通知する
    情報処理プログラム。
JP2022507059A 2020-03-10 2020-03-10 情報処理装置、情報処理方法および情報処理プログラム Active JP7405236B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/010362 WO2021181537A1 (ja) 2020-03-10 2020-03-10 情報処理装置、情報処理方法および情報処理プログラム

Publications (3)

Publication Number Publication Date
JPWO2021181537A1 JPWO2021181537A1 (ja) 2021-09-16
JPWO2021181537A5 JPWO2021181537A5 (ja) 2022-11-10
JP7405236B2 true JP7405236B2 (ja) 2023-12-26

Family

ID=77671049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022507059A Active JP7405236B2 (ja) 2020-03-10 2020-03-10 情報処理装置、情報処理方法および情報処理プログラム

Country Status (3)

Country Link
US (1) US20220357976A1 (ja)
JP (1) JP7405236B2 (ja)
WO (1) WO2021181537A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366375A (ja) 2001-06-05 2002-12-20 Hitachi Ltd コンピュータ装置および診断方法
JP2013045163A (ja) 2011-08-22 2013-03-04 Nec Corp コンピュータシステム、情報処理システム、仮想メディア方法、および、プログラム
US20130138856A1 (en) 2011-11-24 2013-05-30 Huawei Technologies Co., Ltd. Method and apparatus for node hot-swapping

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017072904A1 (ja) * 2015-10-29 2017-05-04 株式会社日立製作所 計算機システム、及び、障害検知方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366375A (ja) 2001-06-05 2002-12-20 Hitachi Ltd コンピュータ装置および診断方法
JP2013045163A (ja) 2011-08-22 2013-03-04 Nec Corp コンピュータシステム、情報処理システム、仮想メディア方法、および、プログラム
US20130138856A1 (en) 2011-11-24 2013-05-30 Huawei Technologies Co., Ltd. Method and apparatus for node hot-swapping

Also Published As

Publication number Publication date
US20220357976A1 (en) 2022-11-10
WO2021181537A1 (ja) 2021-09-16
JPWO2021181537A1 (ja) 2021-09-16

Similar Documents

Publication Publication Date Title
JP5497923B2 (ja) システム管理モードにおけるプロセッサ間割り込みの再方向付け
JP3887314B2 (ja) データ処理システム中の論理パーティションの電源を切る、または論理パーティションをリブートする、あるいはその両方の方法および装置
JP4842210B2 (ja) フェイルオーバ方法、計算機システム、管理サーバ及び予備サーバの設定方法
JP3953835B2 (ja) 論理分割された(lpar)計算機でシステム・ファームウェア更新を安全に実行する機構
JP6111181B2 (ja) 計算機の制御方法及び計算機
US9329885B2 (en) System and method for providing redundancy for management controller
US8341628B2 (en) Controlling depth and latency of exit of a virtual processor's idle state in a power management environment
EP2575041A1 (en) Method and computer for controlling virtual machine
JPH04263349A (ja) コンピュータにbiosをロードする装置及び方法
CN112306650B (zh) 虚拟机热迁移方法和通信设备
WO2013024510A2 (en) Storage control apparatus
JP4692912B2 (ja) リソース割り当てシステム、及びリソース割り当て方法
CN112134752B (zh) 一种基于bmc监控交换机的方法、系统、设备及介质
JP7405236B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
CN111708652A (zh) 一种故障修复方法及装置
EP4187374A1 (en) Kernel restarting method
US9110731B1 (en) Hard allocation of resources partitioning
US20120284711A1 (en) Method and Arrangement for Configuring a Resource for a Virtual Runtime Environment
JP7318799B2 (ja) 情報処理装置、操作制御方法および操作制御プログラム
KR102285084B1 (ko) 이종의 멀티 cpu를 운용하는 시스템-온-칩 및 그 동작 방법
US20230024607A1 (en) System-on-chip for sharing graphics processing unit that supports multimaster, and method for operating graphics processing unit

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220913

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220913

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20231114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231127

R150 Certificate of patent or registration of utility model

Ref document number: 7405236

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150