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

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

Info

Publication number
JP2013206454A
JP2013206454A JP2012180670A JP2012180670A JP2013206454A JP 2013206454 A JP2013206454 A JP 2013206454A JP 2012180670 A JP2012180670 A JP 2012180670A JP 2012180670 A JP2012180670 A JP 2012180670A JP 2013206454 A JP2013206454 A JP 2013206454A
Authority
JP
Japan
Prior art keywords
system board
information
control unit
cpu
virtual
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.)
Granted
Application number
JP2012180670A
Other languages
English (en)
Other versions
JP6035993B2 (ja
Inventor
Masahiro Doteguchi
正裕 土手口
Kenji Okano
憲司 岡野
Nagahiro Okabe
長博 岡部
Polyakov Nikolay
ニコライ・ポリャコフ
Reiji Watabe
礼二 渡部
Kenji Gotsubo
賢次 五坪
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 JP2013206454A publication Critical patent/JP2013206454A/ja
Application granted granted Critical
Publication of JP6035993B2 publication Critical patent/JP6035993B2/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/4401Bootstrapping
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Abstract

【課題】起動までにかかる時間を短縮することを課題とする。
【解決手段】情報処理装置は、SB#0、SB#1、SB#2が有するハードウェアリソースを仮想化して仮想マシンを動作させる仮想制御部を有する。SB#0は、命令列とリソース情報と管理情報とを記憶するメモリを有する。命令列は、仮想制御部が実行する命令列である。リソース情報は、仮想制御部が動作する際に使用するデータのうち各システムボードで使用するデータである。管理情報は、仮想制御部が動作する際に使用するデータのうち各システムボードで共有するデータである。SB#1およびSB#2の各々は、命令列と、仮想制御部が動作する際に使用するデータであって自SBが有するハードウェアリソースに関するリソース情報とを記憶するメモリを有する。各SBは、自SBのメモリに記憶された命令列を実行し、当該自ノードのメモリに記憶された各情報を参照する。
【選択図】図1

Description

本発明は、情報処理装置、装置管理方法および装置管理プログラムに関する。
従来、ハイパーバイザなどと呼ばれるファームウェアを動作させて、仮想OS(Operating System)を動作させる仮想化技術が知られている。例えば、複数の物理パーティションを設けたサーバシステムにおいて、各物理パーティションでハイパーバイザを動作させ、各物理パーティションで仮想OSを動作させることも行われている。
また、この仮想化技術は、複数のシステムボードで構成されるサーバシステムにも利用される。サーバシステム内には1つのハイパーバイザが動作しており、ハイパーバイザは、1つ以上のOSに仮想化機能を提供して仮想化システムを実現する。
図14は、従来の仮想化システムの例を示す図である。図14に示す仮想化システムを実行する情報処理装置であり、この情報処理装置は、3台のシステムボードが搭載可能であり、現状ではSB#0とSB#1の2台のシステムボードが搭載されている。各SBは、2つのCPU(Central Processing Unit)と1つのメモリとを有する。そして、SB#0のメモリは、ハイパーバイザの命令が記述されたプログラムテキストと、ハイパーバイザが使用するデータである管理データとを記憶する。また、SB#0のメモリには、搭載可能なシステムボードの台数分の管理データが格納できる容量が確保されている。すなわち、SB#0のメモリには、管理データとして、SB#0、SB#1、SB#2各々の情報を管理できる領域が確保されている。
特開2010−9567号公報 特開2006−24214号公報
しかしながら、従来の技術では、システムの起動までにかかる時間が長いという問題がある。例えば、ハイパーバイザが自分自身の動作等を制御するために使用する管理データは、サーバシステムの中で1箇所に集中的に確保されていることから、各システムボードの初期化処理等に時間がかかる。
図14の場合、SB#0がプログラムテキストと管理データとを保持しているので、SB#0が有するいずれかのCPUが、SB#0の初期化およびSB#1の初期化を実行する。したがって、SB#0のCPUが各SBの初期化処理を順番に実行し、各初期化処理の完了した後に、システムが起動する。このように、システムの起動までにかかる時間が長い。
1つの側面では、起動までにかかる時間を短縮することができる情報処理装置、装置管理方法および装置管理プログラムを提供することを目的とする。
第1の案では、情報処理装置は、第1のシステムボードと第2のシステムボードとが有するハードウェアリソースを仮想化して仮想マシンを動作させる仮想制御部を有する。前記第1のシステムボードは、命令列とリソース情報と管理情報とを記憶する記憶部を有する。命令列は、仮想制御部が実行する命令列である。リソース情報は、前記仮想制御部が動作する際に使用するデータのうち各システムボードで使用するデータであって、前記第1のシステムボードが有するハードウェアリソースに関するリソース情報である。管理情報は、前記仮想制御部が動作する際に使用するデータのうち各システムボードで共有するデータであって、前記仮想マシンに関する情報と前記情報処理装置が有するシステムボードに関する情報とを含む情報である。前記第2のシステムボードは、前記命令列と、前記仮想制御部が動作する際に使用するデータのうち各システムボードで使用する情報であって、前記第2のシステムボードが有するハードウェアリソースに関するリソース情報とを、記憶する記憶部を有する。前記第1のシステムボードおよび前記第2のシステムボードは、自ノードの記憶部に記憶された命令列を実行し、当該自ノードの記憶部に記憶された各情報を参照する実行制御部を有する。
起動までにかかる時間を短縮することができる。
図1は、実施例1に係る情報処理装置の全体構成例を示す図である。 図2は、実施例2に係る情報処理装置の構成を示す機能ブロック図である。 図3は、ローカルデータとして格納される構造体例を説明する図である。 図4は、グローバルデータとして格納される構造体例を説明する図である。 図5は、実施例2に係る情報処理装置が実行する起動処理の流れを示すフローチャートである。 図6は、実施例2に係る情報処理装置が実行するSB初期化処理の流れを示すフローチャートである。 図7は、初期化の具体例を示す図である。 図8は、従来技術の起動シーケンス図である。 図9は、実施例2の起動シーケンス図である。 図10は、実施例3に係る情報処理装置が実行する通常処理の流れを示すフローチャートである。 図11は、新たなOSを作動させる場合のマスターボードの処理例を説明する図である。 図12は、メモリ容量を削減できることを説明する図である。 図13は、情報処理装置のハードウェア構成例を示す図である。 図14は、従来の仮想化システムの例を示す図である。
以下に、本願の開示する情報処理装置、装置管理方法および装置管理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、実施例1に係る情報処理装置の全体構成例を示す図である。図1に示すように、情報処理装置10は、複数のシステムボード(System Board:SB)が搭載できるシステムである。図1では、情報処理装置10上にSB#0とSB#1とSB#2の3台のSBが搭載されている例を示したが、これに限定されるものではなく、情報処理装置の規模や性能等に応じて、任意の数のSBを搭載させることができる。
また、各SBには、少なくとも1つのCPU(Central Processing Unit)と、メモリとが搭載されている。具体的には、SB#0には、CPU14aとCPU14bとメモリ14cとが搭載されている。SB#1には、CPU15aとCPU15bとメモリ15cとが搭載されている。SB#2には、CPU16aとCPU16bとメモリ16cとが搭載されている。
各メモリは、プログラムやデータを記憶する記憶装置である。各CPUは、SB全体の制御を司る処理部であり、メモリ等に記憶される命令を読み出して実行する。なお、ここでは、各SB上に2台のCPUと1台のメモリとを搭載する例を示したが、これに限定されるものではなく、SBごとに任意の数のCPUやメモリを搭載させることもでき、他のハードウェアを搭載させることもできる。
仮想制御部13は、各SBが有するハードウェアを仮想化して仮想OSを提供する処理部である。例えば、SB#0のCPU14aが、図示しないROM(Read Only Memory)から読み出して実行したハイパーバイザなどが該当する。この仮想制御部13は、SB#0とSB#1に跨って仮想OS11を実行し、SB#2上で仮想OS12を実行する。なお、仮想制御部13は、自分自身のためにメモリの一部を用いてハードウェアを管理するデータを保持し、メモリの残りの容量は仮想OSが使用する。各仮想OSは、SB内のハードウェアを直接制御することができず、仮想制御部13に処理を依頼する。
このような構成において、SB#0のメモリ14cは、情報処理装置10上で動作する仮想マシンから要求された処理を実行する命令が記述された命令列14dを記憶する。また、SB#0のメモリには、SB#0が有するハードウェアリソースに関するリソース情報14fと、情報処理装置10が有するシステムボードを管理する管理情報14eとを記憶する。
また、SB#1のメモリ15cは、情報処理装置10上で動作する仮想マシンから要求された処理を実行する命令が記述された命令列15dと、SB#1が有するハードウェアリソースに関するリソース情報15eとを記憶する。同様に、SB#2のメモリ16cは、情報処理装置10上で動作する仮想マシンから要求された処理を実行する命令が記述された命令列16dと、SB#2が有するハードウェアリソースに関するリソース情報16eとを記憶する。
この管理情報14eは、仮想制御部13が動作する際に使用するデータのうち各システムボードで共有するデータである。例えば、管理情報14eとしては、仮想OSを管理するためのデータ、CPU間の通信で受け渡されるデータ、各システムボードのリソース情報を管理するデータなどがある。また、リソース情報14f、リソース情報15e、リソース情報16e各々は、仮想制御部13が動作する際に使用するデータのうち各システムボードで使用するデータである。例えば、各リソース情報としては、特定のSBを管理または制御する際に使用するデータがある。
そして、SB#0のCPU14aまたはCPU14bは、SB#0のメモリ14cに記憶された命令列14dを実行し、SB#0のメモリ14cに記憶された管理情報14eやリソース情報14fを参照する。また、SB#1のCPU15aまたはCPU15bは、SB#1のメモリ15cに記憶された命令列15dを実行し、SB#1のメモリ15cに記憶されたリソース情報15eを参照する。同様に、SB#2のCPU16aまたはCPU16bは、SB#2のメモリ16cに記憶された命令列16dを実行し、SB#2のメモリ16cに記憶されたリソース情報16eを参照する。
このようにすることで、各SBのCPUは、情報処理装置10上で動作する仮想マシンから要求された処理を実行する命令、すなわち、仮想マシンを提供する仮想制御部13の命令を実行することができる。つまり、各SBのCPUは、仮想OSから仮想制御部13を介して処理が依頼された場合に、該当する命令をメモリ内の命令列から読み出して実行することができる。また、各SBのCPUは、SB内に閉じた処理についてはリソース情報を参照して、SB内で処理を完了させることができる。
このように、情報処理装置10内では管理情報14eが1つであることから、情報処理装置10上では1つの仮想制御部13が実行されている。その一方で、各SBのCPUが、仮想制御部13として動作することができる。この結果、情報処理装置10内では、初期化処理などを並列に実行することができ、情報処理装置の起動までにかかる時間を短縮することができる。
次に、図2から図9を用いて、情報処理装置が起動した際に、各SBを初期化する例について説明する。
[機能ブロック図]
図2は、実施例2に係る情報処理装置の構成を示す機能ブロック図である。図2に示すように、情報処理装置20は、SB#0とSB#1とSB#2の3つのシステムボードを搭載する。なお、3つのシステムボードを搭載する例を説明したが、情報処理装置20は、さらに複数のシステムボードを追加で搭載できるものとする。また、ここでは、SB#0が、図示しないROMからハイパーバイザのプログラムを読み出して実行するマスターボードとする。
また、情報処理装置20では、各SBを跨ってハイパーバイザ21が実行される。ハイパーバイザ21は、情報処理装置20が起動した場合に、マスターボードであるSB#0のCPU24またはCPU25によって実行される処理部である。ハイパーバイザ21は、起動した後、自身が実行する命令列が記述されたプログラムテキストをROMから読み出してコピーを生成する。そして、情報処理装置20では、コピーしたプログラムテキストを、SB#0のメモリ22とSB#1のメモリ32とSB#2のメモリ42の各々に格納する。
このハイパーバイザ21は、各SBが有するハードウェアを仮想化して仮想OSを提供する。例えば、ハイパーバイザ21は、SB#0とSB#1に跨って仮想OS#1を実行し、SB#1上で仮想OS#2を実行し、SB#2上で仮想OS#3を実行する。なお、仮想OSの数等について任意に設定することができる。
(SB#0の構成)
図2に示すように、SB#0は、メモリ22と入出力部23とCPU24とCPU25とを有する。なお、ここで例示したCPUの数等はあくまで例示であり、これに限定されるものではない。また、ここでは、CPU24が、SB#0の初期化処理を実行するマスターCPUである例で説明するが、いずれのCPUをマスターCPUとするかを任意に選択することができる。
メモリ22は、CPU24またはCPU25が実行するプログラム等を記憶する記憶装置であり、プログラムテキスト22aとローカルデータ22bとグローバルデータ22cとを記憶する。なお、各情報は、CPU24またはCPU25等によって更新される。プログラムテキスト22aは、ハイパーバイザ21の命令が記述された命令列である。
ローカルデータ22bは、SB#0が有するハードウェアリソースを管理する情報である。図3は、ローカルデータとして格納される構造体例を説明する図である。図3に示すように、メモリ22は、ローカルデータ22bとしてCPU構造体とI/O構造体とを記憶する。CPU構造体は、仮想OSを動作させているSB#0内のCPUリソースを管理するデータ構造である。具体的には、メモリ22は、ローカルデータ22bとして、CPU情報#0〜CPU情報#n(nは搭載されるCPUの台数)とゲスト構造体ポインタとを記憶する。
CPU情報は、CPUのリソース情報であり、例えば、CPUを特定する識別子と動作させている仮想OSを識別する識別子とを対応付けて情報が該当する。CPUを特定する識別子としては、CPUの製造番号や固有の識別番号などを用いることができ、仮想OSを識別する識別子としては、ゲストOSとして動作する仮想OSに割り与えられたゲストIDなどを用いることができる。ゲスト構造体ポインタは、ローカルデータ22bのCPU構造体と、グローバルデータ22cとして記憶されるゲスト構造体とを関連付けるポインタである。なお、ローカルデータ22bには、メモリの空き容量を管理するデータ構造であるmblock構造体も含まれる。
I/O構造体は、仮想OSに割り当てられたSB#0内の入出力リソースを管理するデータ構造である。具体的には、メモリ22は、ローカルデータ22bとして、I/O情報#0〜I/O情報#n(nは搭載されるI/Oの台数)とゲスト構造体ポインタとを記憶する。I/O情報は、入出力のリソース情報であり、例えば、入出力部を特定する識別子と、当該入出力部を使用する仮想OSを識別する識別子とを対応付けて情報が該当する。入出力部を特定する識別子としては、入出力部の製造番号や固有の識別番号などを用いることができる。
グローバルデータ22cは、情報処理装置20が有するシステムボードを管理する管理情報、すなわち、情報処理装置20全体を管理する情報である。図4は、グローバルデータとして格納される構造体例を説明する図である。図4に示すように、メモリ22は、グローバルデータ22cとして、ポインタ構造体とゲスト構造体とを対応付けて記憶する。ポインタ構造体は、CPU構造体に含まれるゲスト構造体ポインタを示す情報である。ゲスト構造体は、各仮想OSを管理するデータ構造であり、ポインタ構造体のゲスト構造体ポインタごとに対応付けられる。
ゲスト構造体は、ゲスト情報とCPU構造体ポインタとI/O構造体ポインタとで構成される。ゲスト情報は、仮想OSを識別する識別子であり、例えば、ゲストOSとして動作する仮想OSに割り与えられたゲストIDなどを用いることができる。CPU構造体ポインタは、仮想OSが使用するCPU情報を特定するポインタである。I/O構造体ポインタは、仮想OSが使用するI/Oを特定するポインタである。このグローバルデータ22cには、仮想OSを管理するためのデータ、CPU間の通信で受け渡される情報、ローカルデータを管理するためのデータなども含まれる。
さらに、グローバルデータ22cには、情報処理装置20の構成情報も含まれる。例えば、構成情報としては、搭載可能なSBの数、現在搭載されているSBの数、各SBに搭載されているハードウェアの種類や数などが含まれる。構成情報は、マスターボードのマスターCPUによって更新することもでき、管理者によって手動で更新されてもよい。
このようなグローバルデータ22cは、システム全体の管理や制御に使われるデータであり、マスターボードに配置される。グローバルデータ22cの容量はシステム稼動中を通して一定であり、動的な構成変更により変化しない。また、一度割り当てたグローバルデータ22cは、システム稼働中を通して同じ場所にあり、移動することもない。
このように、ローカルデータ22bのゲスト構造体ポインタを用いて、グローバルデータ22cのポインタ構造体を特定することができる。また、グローバルデータ22cのポインタ構造体を用いて、グローバルデータ22cのゲスト構造体のゲスト情報を特定することができる。また、グローバルデータ22cのゲスト構造体のゲスト情報のCPU構造体ポインタ#0等を用いて、ローカルデータ22bのCPU構造体のCPU情報#0等を特定することができる。
図2に戻り、入出力部23は、データの入出力を実行する処理部である。例えば、入出力部23としては、NIC(Network Interface Card)などの通信インタフェース、ディスクなどの入出力インタフェースなどが該当する。
CPU24は、SB#0全体の処理を司る処理部であり、実行制御部24aを有し、SB#0の初期化処理を実行するマスターCPUである。実行制御部24aは、SB#0の初期化を実行する処理部である。具体的には、実行制御部24aは、ハイパーバイザ21によってメモリ22にプログラムテキスト22aが格納された場合に、プログラムテキスト22a内の初期化命令を実行し、ローカルデータ22bを生成してメモリ22に格納する。そして、実行制御部24aは、各SBにおいてローカルデータが生成された後に、グローバルデータ22cを生成してメモリ22に格納する。
例を挙げると、実行制御部24aは、プログラムテキスト22aが格納されたことを検知すると、プログラムテキスト22aから、ローカルデータ22bを生成する初期化命令を読み出して実行する。実行制御部24aは、初期化命令を実行することで、SB#0が有するハードウェアの情報を収集し、SB#0に搭載されるCPUの台数や製造番号、メモリの数や製造番号を取得する。そして、実行制御部24aは、CPU構造体と任意のゲスト構造体ポインタとを関連付けたローカルデータ22bを生成して、メモリ22に格納する。なお、ハードウェアの情報は、SB#0の設定情報をスキャンしてもよく、管理者等によって指定されたものを用いることもできる。
その後、実行制御部24aは、各SBでローカルデータが生成されるまで待機する。そして、実行制御部24aは、各SBでローカルデータが生成されたことを検知すると、プログラムテキスト22aから、グローバルデータ22cを生成する初期化命令を読み出して実行する。実行制御部24aは、各ローカルデータのCPU情報を収集し、各ゲストOSが使用するCPUを特定する。つまり、実行制御部24aは、各ゲストOSと当該ゲストOSが使用するCPUやI/Oとの対応関係、すなわちゲスト構造体を生成する。そして、実行制御部24aは、ローカルディスクのゲスト構造体ポインタと、ゲスト構造体のゲスト情報とを関連付けたグローバルデータ22cを生成してメモリ22に格納する。
CPU25は、SB#0全体の処理を司る処理部であり、実行制御部25aを有する。このCPU25および実行制御部25a各々は、CPU24および実行制御部24a各々と同様の処理を実行する。また、CPU25は、マスターCPUであるCPU24に異常が発生した場合に、マスターCPUとして動作する。
(SB#1とSB#2の構成)
次に、SB#1とSB#2の構成について説明するが、SB#1とSB#2とは同様の構成を有するので、ここでは、SB#1を例にして説明する。図2に示すように、SB#1は、SB#0と同様、メモリ32と入出力部33とCPU34とCPU35とを有する。なお、ここで例示したCPUの数等はあくまで例示であり、これに限定されるものではない。また、ここでは、CPU34が、SB#1の初期化処理を実行するマスターCPUである例で説明するが、いずれのCPUをマスターCPUとするかを任意に選択することができる。
メモリ32は、CPU34またはCPU35が実行するプログラム等を記憶する記憶装置であり、プログラムテキスト32aとローカルデータ32bとを記憶する。なお、各情報は、CPU34またはCPU35等によって更新される。プログラムテキスト32aは、ハイパーバイザ21の命令が記述された命令列であり、SB#0のメモリ22に記憶されるプログラムテキスト22aと同じ内容である。
ローカルデータ32bは、SB#1が有するハードウェアリソースを管理する情報である。ローカルデータ32bは、図3に示した情報と同様の情報を記憶する。つまり、ローカルデータ32bは、仮想OSを動作させているSB#1内のCPUリソースやI/Oリソースを管理するデータ構造である。
入出力部33は、データの入出力を実行する処理部である。例えば、入出力部33としては、NICなどの通信インタフェース、ディスクなどの入出力インタフェースなどが該当する。
CPU34は、SB#1全体の処理を司る処理部であり、実行制御部34aを有し、SB#1の初期化処理を実行するマスターCPUである。なお、実行制御部34aが実行する初期化処理は、SB#0の実行制御部24aが実行するローカルデータの初期化処理と同様なので、詳細な説明は省略する。
CPU35は、SB#1全体の処理を司る処理部であり、実行制御部35aを有する。このCPU35および実行制御部35a各々は、CPU34および実行制御部34a各々と同様の処理を実行する。また、CPU35は、マスターCPUであるCPU34に異常が発生した場合に、マスターCPUとして動作する。
[処理の流れ]
次に、図2に示した情報処理装置20が実行する処理の流れについて説明する。ここでは、起動処理の流れ、SB初期化処理の流れについて説明する。
(起動処理の流れ)
図5は、実施例2に係る情報処理装置が実行する起動処理の流れを示すフローチャートである。図5に示すように、情報処理装置20に電源が投入されると(S101肯定)、情報処理装置20が有するいずれかのCPUは、ROMからハイパーバイザ21のプログラムを読み出して実行し、ハイパーバイザ21を起動させる(S102)。
続いて、ハイパーバイザ21は、マスターボードを選定する(S103)。例えば、ハイパーバイザ21は、予め定めた条件によって、複数のSBから1つのマスターボードを選定する。選定する基準としては、各SBが有する識別番号のうち最小の識別番号を有するSBをマスターボードとして選定してもよい。また、ハイパーバイザ21は、各CPUが有する識別番号のうち最小の識別番号を有するCPUが搭載されたSBをマスターボードとして選定してもよい。また、メモリ領域に変数を用意しておき、その変数を最初に更新したCPUが搭載されるSBをマスターボードとして選定することもできる。ただし、グローバルデータを配置できるメモリ容量を有するSBが好ましい。なお、ここでは、SB#0がマスターボードとして選定されたものとする。
その後、ハイパーバイザ21は、プログラムテキストの配置場所を決定して配置する(S104)。具体的には、ハイパーバイザ21は、ROMに格納されるハイパーバイザのプログラムテキストとして各SBにコピーするために、SB内のどのメモリアドレスに配置するかを決定する。例えば、ハイパーバイザ21は、全SBでSB内の相対的な位置が同じで、かつ、プログラムテキストの格納に用いる容量を連続して確保できるメモリ領域を、配置場所として決定する。また、ハイパーバイザ21は、SBごとに、プログラムテキストの格納に用いる容量を連続して確保できるメモリ領域を、配置場所として決定することもできる。
続いて、ハイパーバイザ21は、グローバルデータの配置場所を決定する(S105)。具体的には、ハイパーバイザ21は、マスターボードのメモリ上に、グローバルデータの配置場所を決定する。例えば、ハイパーバイザ21は、SB#0のメモリ22において、グローバルデータが格納できる連続した領域を、配置場所に決定する。
その後、各SBでSBの初期化処理が実行された後(S106)、各SBの初期化処理が終了すると(S107肯定)、マスターボードであるSB#0のCPU24の実行制御部24aは、グローバルデータ22cの初期化を実行する(S108)。
(SB初期化処理の流れ)
図6は、実施例2に係る情報処理装置が実行するSB初期化処理の流れを示すフローチャートである。図6に示すように、各SBではマスターCPUが選定され(S201)、選定されたマスターCPUの実行制御部が、ローカルデータの配置場所を決定する(S202)。例えば、各SBでは、識別番号が最も小さいCPUをマスターCPUと決定する。また、各SBのマスターCPUは、各SBのメモリ内の任意の場所をローカルデータの配置場所と決定することもでき、全SBでSB内の相対的な位置が同じでかつ連続して確保できる領域を配置場所と決定することもできる。
続いて、マスターCPUは、メモリ内にCPU管理用の配列を確保する(S203)。具体的には、マスターCPUは、図3に示したCPU構造体を格納する配列をメモリ内に確保する。
その後、マスターCPUは、変数(i)に0を代入し(S204)、変数(i)がSB内のCPU数以上か否かを判定する(S205)。そして、マスターCPUは、変数(i)がSB内のCPU数未満である場合(S205否定)、CPU管理用配列のi番目を初期化する(S206)。具体的には、マスターCPUは、図3に示したCPU構造体のCPU情報#iを生成する。そして、マスターCPUは、変数(i)を1増加させた後(S207)、S205に戻って以降の処理を実行する。
その後、マスターCPUは、変数(i)がSB内のCPU数以上となった場合(S205肯定)、メモリ内にI/O管理用の配列を確保する(S208)。具体的には、マスターCPUは、図3に示したI/O構造体を格納する配列をメモリ内に確保する。
続いて、マスターCPUは、変数(j)に0を代入し(S209)、変数(j)がSB内のI/O数以上か否かを判定する(S210)。そして、マスターCPUは、変数(j)がSB内のI/O数未満である場合(S210否定)、I/O管理用配列のj番目を初期化する(S211)。具体的には、マスターCPUは、図3に示したI/O構造体のI/O情報#jを生成する。そして、マスターCPUは、変数(j)を1増加させた後(S212)、S210に戻って以降の処理を実行する。その後、マスターCPUは、変数(j)がSB内のI/O数以上となった場合(S210肯定)、処理を終了する。なお、ここでは、先にCPU構造体を生成する例を説明したが、先にI/O構造体を生成してもよい。
[具体例]
次に、上述した初期化の具体例を説明する。図7は、初期化の具体例を示す図である。図7には、各SBが搭載するハードウェアが仮想化されて仮想OSを動作させた場合に、ローカルデータやグローバルデータが、どのような関係で各種情報を管理するかを示している。図7では、各SB#0が2つのCPUと1つのメモリとを搭載する。
このような状態において、まず、ハイパーバイザは、ROM等に格納される、自身が実行する命令列が記述されたプログラムテキストのコピーを各SBのメモリに格納する。また、ハイパーバイザは、ハードウェアリソースを仮想化するための構造を持ち、これらの構造はハードウェアリソースと1対1に対応づけられる。したがって、各SBの実行制御部は、これらの関係性を示すCPU構造体やI/O構造体を生成し、各SBのメモリ上でローカルデータとして保持する。
続いて、仮想OSが実行される。ここでは、SB#0の2つのCPUと1つのメモリと、SB#1の1つのCPUとが協働して仮想OS#0を動作さる。また、SB#1では、1つのCPUと1つのメモリとを用いて、仮想OS#1をさらに動作させる。また、SB#2では、2つのCPUを用いて、仮想OS#2を動作させる。
すると、マスターボードの実行制御部は、仮想OSと仮想OSが使用するハードウェアとの関係性をグローバルデータとして生成する。具体的には、マスターボードの実行制御部は、各SBにローカルデータとして格納された、CPUやI/Oがどの仮想OSを動作させているかを特定する情報を生成する。
つまり、マスターボードの実行制御部は、仮想OS#0に割当てられた仮想ハードウェアが、SB#0内の2つのCPUとSB#1内の1つのCPUとSB#0の1つのI/Oとから形成されることを示す情報を生成する。同様に、マスターボードの実行制御部は、仮想OS#1に割当てられた仮想ハードウェアが、SB#1内の1つのCPUと1つのI/Oとから形成されることを示す情報を生成する。同様に、マスターボードの実行制御部は、仮想OS#2に割当てられた仮想ハードウェアが、SB#2内の2つのCPUから形成されることを示す情報を生成する。
このように、実施例2に係る情報処理装置は、ハイパーバイザのプログラムテキストを各SBに配置し、各SB内に閉じた情報であるローカルデータについては各SBのメモリに格納する。また、実施例2に係る情報処理装置は、各SBに跨った情報、各SBを関連付ける情報、各SBに共通する情報、仮想OSに関する情報などであるグローバルデータについては、マスターボードのメモリに格納する。したがって、情報処理装置は、情報処理装置に現に搭載されているSBの数と同じ数のローカルデータと、1つのグローバルデータとを保持する。
[比較]
次に、上述した実施例によって情報処理装置の起動時間が短縮できることを説明する。図8は、従来技術に係る情報処理装置の起動シーケンス図である。図9は、実施例2に係る情報処理装置の起動シーケンス図である。
従来の情報処理装置は、図14に示したように、SB#0にプログラムテキストと、ローカルデータやグローバルデータとが配置される。つまり、従来の情報処理装置では、ハイパーバイザの作業域がSBとは無関係に配置されるので、作業域の初期化処理の1つのCPUで実行される。例えば、図8に示すように、SB#0が、SB#0の初期化、SB#1の初期化、SB#2の初期化を順に実行する。
これに対して、各実施例に係る情報処理装置では、各SBにプログラムテキストとローカルデータとが配置される。つまり、実施例2に係る情報処理装置では、ハイパーバイザの作業域の一部が各SBに分散されるので、初期化処理のうち各SBで並行してできる部分が発生する。例えば、図9に示すように、SB#0とSB#1とSB#2とが、ローカルデータの初期化を並行して実行する。その後、SB#0が、グローバルデータの初期化を実行する。
このように、図8と図9とを比較してもわかるように、各実施例に係る情報処理装置では、ローカルデータの初期化を並行して実行することができ、SBの初期化にかかる時間を短縮することができる。
実施例2では、各SBの初期化処理について説明したが、各実施例に係る情報処理装置は初期化処理に限定されるものではない。そこで、実施例3では、初期化処理以外の通常処理の流れやOSの追加処理等について説明する。なお、実施例3に係る情報処理装置の機能構成は、実施例2で説明した情報処理装置20と同様とする。
(通常処理の流れ)
図10は、実施例3に係る情報処理装置が実行する通常処理の流れを示すフローチャートである。図10に示すように、情報処理装置20内のいずれかのSBで処理依頼が発生した場合に(S301肯定)、当該SBのCPUは、自SB内のプログラムテキストが読めるか否かを判定する(S302)。
続いて、当該SBのCPUは、自SB内のプログラムテキストが読めると判定した場合(S302肯定)、自SBが有するメモリ内のプログラムテキストから該当する命令を読み出して実行する(S303)。一方、当該SBのCPUは、自SB内のプログラムテキストが読めないと判定した場合(S302否定)、他のSBが有するメモリ内のプログラムテキストを参照し(S304)、他のSB内のプログラムテキストから該当する命令を読み出して実行する(S303)。
その後、命令を実行したSBのCPUは、自SB内が有するメモリ内のローカルデータを参照し(S305)、ローカルデータで処理が完了できるか否かを判定する(S306)。
そして、当該SBのCPUは、ローカルデータで処理が完了できると判定した場合(S306肯定)、参照したローカルデータを使用して処理を実行する(S307)。一方、当該SBのCPUは、ローカルデータで処理が完了できないと判定した場合(S306否定)、マスターボードが有するメモリ内のグローバルデータを参照して処理を実行する(S308)。
一般的には、OSがハイパーバイザ21に処理を依頼する場合、OSを実行中のCPUの特権レベルをハイパーバイザ特権に昇格させ、ハイパーバイザ21のプログラムテキストの命令列を実行する。この際、OSを実行していたCPUがそのまま使われる。図10の場合、OSからハイパーバイザ21に処理が依頼されると、ハイパーバイザ21は自SB内のプログラムテキストを使用し処理を開始する。ハイパーバイザ21は、依頼された処理がローカルデータを使用して完了できる場合は、他のSBにはアクセスせずに処理を実行してOSに応答を返す。また、ハイパーバイザ21は、依頼された処理がグローバルデータを用いる場合は、マスターボードのグローバルデータを参照または更新して処理を実行する。したがって、マスターボード以外のCPUでこのような処理を行う場合は、グローバルデータを参照するために、SBを越えてメモリアクセスが実行される。
例えば、SB#1のCPU34がOSから処理を依頼された場合、CPU34は、SB#1のメモリ32のプログラムテキスト32aを読み出して該当する命令を実行する。そして、SB#1のCPU34は、ローカルデータ32bを参照して処理を実行する。このとき、SB#1のCPU34は、ローカルデータ32bでは処理を完了できない場合には、SB#0のグローバルデータ22cを参照して処理を実行する。
(新たなOSの動作)
図11は、新たなOSを動作させる場合のマスターボードの処理例を説明する図である。情報処理装置20において新たなOSを起動させる場合、マスターボードのCPUは、グローバルデータおよびローカルデータの空きメモリ領域から新たなOSを管理するためのデータ構造を切り出して初期化し、ハイパーバイザ21が管理するデータ構造と関連付ける。
図11に示すように、まず、マスターボードであるSB#0のCPU24は、新たなOSを管理するためのゲスト構造体と、新たなOSが使うCPUを管理するためのデータ構造とを割り当てる。具体的には、SB#0のCPU24は、グローバルデータ22cの空き領域(free mblock)を探してゲスト構造体を作成し、ローカルデータ22bの空き領域(free mblock)を探してCPU構造体を生成する。次に、SB#0のCPU24は、ゲスト構造体とCPU構造体をポインタでつなぎ、ゲスト構造体をハイパーバイザがサービスを提供する各ゲスト構造体と関連付ける。なお、ここではCPU構造体を例にして説明したが、SB#0のCPU24は、I/O構造体についても同様に実行する。
(SBの追加と削除)
新たなSBを追加する場合、マスターボードであるSB#0のCPU24は、新たなSBに関する管理情報をグローバルデータとして追加し、プログラムテキストを新たなSBのメモリに格納する。
例えば、SB#0のCPU24は、SB#0内のプログラムテキストまたはROMから読み出したプログラムテキストのコピーを生成し、生成したプログラムテキストを新たに追加されたSB#3のメモリに格納する。続いて、SB#0のCPU24は、初期化命令をSB#3のCPUに発行する。
そして、SB#3のCPUは、実施例2で説明した手法と同様、メモリに記憶されたプログラムテキストから初期化命令を実行して、ローカルデータをメモリに生成する。その後、SB#0のCPU24は、グローバルデータ22c内に、SB#3のローカルデータの格納位置を示す情報等を格納する。また、SB#0のCPU24は、既存のSB#2が削除された場合、例えばゲスト構造体のCPU構造体ポインタやI/O構造体ポインタなど、グローバルデータ22c内のSB#2の情報を削除する。
(メモリ容量の削減例)
図12は、メモリ容量を削減できることを説明する図である。ここでは、16コアのCPUを1つのSBあたり4個搭載でき、最大16個のSBが搭載可能なシステムでのメモリ使用量を説明する。
図12に示すように、この情報処理装置は、SBの搭載数に関係なくグローバルデータの容量が一定であり、SBの搭載数が増加するにつれてローカルデータの容量が増える。例を挙げると、1台のSBが搭載されている状況では、ローカルデータの容量が74.2MBであり、グローバルデータの容量が1191.5MBである。したがって、合計1265.7MBの領域がメモリに確保されていることを示す。
従来では、SBの搭載数にかかわらず、常に2378.7MBの領域をハイパーバイザで確保していた。つまり、従来の場合は、図12に示した「SB搭載数が16」に対応した「Total(MB)=2378.7MB」をSB#0のメモリに確保していた。
これに対して、実施例1や実施例2で説明した手法を用いることで、図12に示すように、1つのSBを搭載する状態ではハイパーバイザのメモリ使用量を1265.7MBに抑えることができる。つまり、1つのSBを搭載する状態では、従来に比較して約50%程度のメモリの使用量を削減できる。
上述してきたように、ハイパーバイザのプログラムテキストを各SBに配置することで、システム内にプログラムテキストのコピーがSB数分存在することになる。したがって、あるCPUがハイパーバイザの処理を行う際は、そのCPUが搭載されたSBにあるプログラムテキストのコピーを使うことで、プログラム列の読み込み速度が向上し処理時間が短縮する。また、SB上のプログラムテキストが壊れたとしても、他のSB上のプログラムテキストを使用することで、SBの故障によりシステムダウンを引き起こす可能性が低くなり、可用性や信頼性が向上する。
つまり、SB間でコピーされたプログラムコードは、論理的には同じものだが、物理的には違うプログラムコードなので、複数のハイパーバイザが協調して動作することで可用性や信頼性を向上させることができる。例えば、SB#1のCPUは、SB#1のプログラムテキストが読めない状態になった場合でも、他のSBのプログラムテキストを読み出して実行することができる。
また、ローカルデータはシステム設計上の最大SB数ではなく、実際に使用しているSB数に応じた量でよい。また、動的変更により追加や削除されるSBを管理するためのメモリリソースは、そのSB上に確保すればよい。さらに、ハイパーバイザが自分自身で使用するメモリリソースをグローバルデータとローカルデータに分離させたので、両者を関係づけるための情報をグローバルデータに設ける。動的変更によりSBが増加することを想定すると、最大システム構成分の記録場所をあらかじめ用意しておくことになるが、各実施例に係る情報処理装置では、ローカルデータの位置を記録できる容量をグローバルデータ内に確保すればよい。これはメモリリソースと比べると無視できるほど小さい。
なお、グローバルデータ内に確保されたローカルデータの位置を記録するデータは、ハイパーバイザの起動時、あるいは動的変更でSBが追加される時点で記録される。また、動的変更でSBが削除される場合は、ローカルデータの位置を記録するグローバルデータ内のポインタを無効化すればよい。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下に異なる実施例を説明する。
(システム)
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともできる。あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(ハードウェア)
実施例1〜3で開示した情報処理装置のハードウェア構成例を説明する。図13は、情報処理装置のハードウェア構成例を示す図である。図13に示すように、情報処理装置は、バックプレーン100に複数のクロスバスイッチとしてXB101、XB102などを有し、クロスバスイッチそれぞれにシステムボードとしてSB110〜SB113と入出力システムボード(IOSB)150とを有する。なお、クロスバスイッチ、システムボード、入出力システムボードの数はあくまで例示であり、これに限定されるものではない。
バックプレーン100は、複数のコネクタ等を相互接続するバスを形成する回路基板である。XB101、XB102は、システムボードと入出力システムボードとの間でやり取りされるデータの経路を動的に選択するスイッチである。
また、XB101、XB102それぞれに接続されるSB110、SB111、SB112、SB113は、電子機器を構成する電子回路基板であり同様の構成を有するので、ここではSB110について説明する。SB110は、システムコントローラ(System Controller:SC)110aと、4つのCPUと、2つのメモリアクセスコントローラ(Memory Access Controller:MAC)と、2つのDIMM(Dual Inline Memory Module)とを有する。
SC110aは、SB110に搭載されるCPU110b〜110eとMAC110f、MAC110gとの間におけるデータ転送などの処理を制御し、SB100全体を制御する。CPU110b〜110eそれぞれは、SC110aを介して他の電子機器と接続され、実施例1〜3で開示したキャッシュの制御を実現するプロセッサである。MAC110fは、DIMM110hとSC110aとの間に接続され、DIMM110hへのアクセスを制御する。MAC110gは、DIMM110iとSC110aとの間に接続され、DIMM110iへのアクセスを制御する。DIMM110hは、SC110aを介して他の電子機器と接続され、メモリを装着してメモリ増設などを行うメモリモジュールである。DIMM110iは、SC110aを介して他の電子機器と接続され、メモリを装着してメモリ増設などを行うメモリモジュールである。
IOSB150は、XB101を介してSB110〜SB113それぞれと接続されるとともに、SCSI(Small Computer System Interface)、FC(Fibre Channel)、イーサネット(登録商標)などを介して入出力デバイスと接続される。IOSB150は、入出力デバイスとXB101との間におけるデータ転送などの処理を制御する。なお、SB110に搭載されるCPU、MAC、DIMMなどの電子機器はあくまで例示であり、電子機器の種類又は電子機器の数が図示したものに限定されるものではない。
10 情報処理装置
11、12 仮想OS
13 仮想制御部
14a、14b、15a、15b、16a、16b CPU
14c、15c、16c メモリ
14d、15d、16d 命令列
14e 管理情報
14f、15e、16e リソース情報
20 情報処理装置
21 ハイパーバイザ
22、32、42 メモリ
22a、32a、42a プログラムテキスト
22b、32b、42b ローカルデータ
22c グローバルデータ
23、33、43 入出力部
24、25、34、35、44、45 CPU
24a 25a 34a、35a、44a、45a 実行制御部

Claims (6)

  1. 第1のシステムボードと第2のシステムボードとが有するハードウェアリソースを仮想化して仮想マシンを動作させる仮想制御部を有する情報処理装置において、
    前記第1のシステムボードは、
    前記仮想制御部が実行する命令列と、前記仮想制御部が動作する際に使用するデータのうち各システムボードで使用するデータであって、前記第1のシステムボードが有するハードウェアリソースに関するリソース情報と、前記仮想制御部が動作する際に使用するデータのうち各システムボードで共有するデータであって、前記仮想マシンに関する情報と前記情報処理装置が有するシステムボードに関する情報とを含む管理情報と、を記憶する記憶部を有し、
    前記第2のシステムボードは、
    命令列と、前記仮想制御部が動作する際に使用するデータのうち各システムボードで使用する情報であって、前記第2のシステムボードが有するハードウェアリソースに関するリソース情報とを、記憶する記憶部を有し、
    前記第1のシステムボードおよび前記第2のシステムボードは、
    自システムボードの記憶部に記憶された命令列を実行し、当該自システムボードの記憶部に記憶された各情報を参照する実行制御部と
    を有することを特徴とする情報処理装置。
  2. 前記第1のシステムボードおよび第2のシステムボードの実行制御部は、前記命令列が自ボードの記憶部に格納された場合に、前記命令列から初期化処理を実行する命令を読み出して実行し、自ボードが有するハードウェアリソースと仮想化されたハードウェアリソースとの対応付けを前記リソース情報として前記自ボードの記憶部に格納し、
    前記第1のシステムボードの実行制御部は、各システムボードのリソース情報が格納された場合に、前記第2のシステムボードの記憶部に記憶されるリソース情報の格納位置および前記仮想マシンが使用するハードウェアの構造を、前記管理情報として前記自システムボードの記憶部に格納することを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2のシステムボードの実行制御部は、前記第2のシステムボードの命令列から読み出した命令を実行する際に、前記命令が参照する情報が前記第2のシステムボードの記憶部のリソース情報に格納されていない場合には、前記第1のシステムボードの前記記憶部に記憶される前記管理情報を参照することを特徴とする請求項1に記載の情報処理装置。
  4. 前記第1のシステムボードの実行制御部は、第3のシステムボードが前記情報処理装置に追加された場合に、当該第3のシステムボードに関する情報を前記管理情報として追加し、命令列と、前記仮想制御部が動作する際に使用するデータのうち各システムボードで使用するデータであって前記第3のシステムボードが有するハードウェアリソースに関するリソース情報とを、前記第3のシステムボードが有する記憶部に格納することを特徴とする請求項1に記載の情報処理装置。
  5. 第1のシステムボードと第2のシステムボードとが有するハードウェアリソースを仮想化して仮想マシンを動作させる仮想制御部を有する情報処理装置が、
    前記第1のシステムボードが有する記憶部に、前記仮想制御部が実行する命令列と、前記仮想制御部が動作する際に使用するデータのうち各システムボードで使用するデータであって、前記第1のシステムボードが有するハードウェアリソースに関するリソース情報と、前記仮想制御部が動作する際に使用するデータのうち各システムボードで共有するデータであって、前記仮想マシンに関する情報と前記情報処理装置が有するシステムボードに関する情報とを含む管理情報と、を格納し、
    前記第2のシステムボードが有する記憶部に、前記命令列と、前記仮想制御部が動作する際に使用するデータのうち各システムボードで使用する情報であって、前記第2のシステムボードが有するハードウェアリソースに関するリソース情報と、を格納し、
    前記第1のシステムボードおよび前記第2のシステムボードが、自システムボードの記憶部に記憶された命令列を実行し、当該自システムボードの記憶部に記憶された各情報を参照する
    処理を実行することを特徴とする装置管理方法。
  6. 第1のシステムボードと第2のシステムボードとが有するハードウェアリソースを仮想化して仮想マシンを動作させる仮想制御部を有する情報処理装置に、
    前記第1のシステムボードが有する記憶部に、前記仮想制御部が実行する命令列と、前記仮想制御部が動作する際に使用するデータのうち各システムボードで使用するデータであって、前記第1のシステムボードが有するハードウェアリソースに関するリソース情報と、前記仮想制御部が動作する際に使用するデータのうち各システムボードで共有するデータであって、前記仮想マシンに関する情報と前記情報処理装置が有するシステムボードに関する情報とを含む管理情報と、を格納し、
    前記第2のシステムボードが有する記憶部に、前記命令列と、前記仮想制御部が動作する際に使用するデータのうち各システムボードで使用する情報であって、前記第2のシステムボードが有するハードウェアリソースに関するリソース情報と、を格納し、
    前記第1のシステムボードおよび前記第2のシステムボードが、自システムボードの記憶部に記憶された命令列を実行し、当該自システムボードの記憶部に記憶された各情報を参照する
    処理を実行させることを特徴とする装置管理プログラム。
JP2012180670A 2012-03-27 2012-08-16 情報処理装置、装置管理方法および装置管理プログラム Active JP6035993B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/431,086 US9436488B2 (en) 2012-03-27 2012-03-27 Program redundancy among virtual machines and global management information and local resource information arrangement
US13/431,086 2012-03-27

Publications (2)

Publication Number Publication Date
JP2013206454A true JP2013206454A (ja) 2013-10-07
JP6035993B2 JP6035993B2 (ja) 2016-11-30

Family

ID=47044873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012180670A Active JP6035993B2 (ja) 2012-03-27 2012-08-16 情報処理装置、装置管理方法および装置管理プログラム

Country Status (3)

Country Link
US (1) US9436488B2 (ja)
EP (1) EP2645245B1 (ja)
JP (1) JP6035993B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019045936A (ja) * 2017-08-30 2019-03-22 富士通株式会社 情報処理装置、情報処理システム及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181249A (ja) * 2008-01-30 2009-08-13 Nec Corp 仮想マシンサーバ装置、仮想マシンシステム及びそれらに用いる仮想マシン分散方法並びにそのプログラム
JP2010009567A (ja) * 2008-06-27 2010-01-14 Internatl Business Mach Corp <Ibm> 動的にマージされた物理パーティションを含む情報処理システムおよびこれを動作させる方法
JP2011192194A (ja) * 2010-03-16 2011-09-29 Hitachi Solutions Ltd 仮想マシン制御システム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7321982B2 (en) * 2004-01-26 2008-01-22 Network Appliance, Inc. System and method for takeover of partner resources in conjunction with coredump
US8914606B2 (en) 2004-07-08 2014-12-16 Hewlett-Packard Development Company, L.P. System and method for soft partitioning a computer system
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US20080201455A1 (en) * 2007-02-15 2008-08-21 Husain Syed M Amir Moving Execution of a Virtual Machine Across Different Virtualization Platforms
JP5205888B2 (ja) * 2007-09-14 2013-06-05 富士通株式会社 負荷試験プログラム、負荷試験方法および当該負荷試験プログラムを実行する情報処理装置
JP4982347B2 (ja) * 2007-12-11 2012-07-25 株式会社東芝 画像情報の更新を検出するプログラム、方法および画像処理装置
US8346897B2 (en) 2008-02-25 2013-01-01 Jon Jaroker System and method for deploying and maintaining software applications
US20100235833A1 (en) * 2009-03-13 2010-09-16 Liquid Computing Corporation Methods and systems for providing secure image mobility
US8433802B2 (en) * 2010-01-26 2013-04-30 International Business Machines Corporation System and method for fair and economical resource partitioning using virtual hypervisor
US9130912B2 (en) * 2010-03-05 2015-09-08 International Business Machines Corporation System and method for assisting virtual machine instantiation and migration
US8555279B2 (en) * 2011-04-25 2013-10-08 Hitachi, Ltd. Resource allocation for controller boards management functionalities in a storage management system with a plurality of controller boards, each controller board includes plurality of virtual machines with fixed local shared memory, fixed remote shared memory, and dynamic memory regions
US8650566B2 (en) * 2011-08-29 2014-02-11 Vmware, Inc. Virtual machine provisioning in object storage system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009181249A (ja) * 2008-01-30 2009-08-13 Nec Corp 仮想マシンサーバ装置、仮想マシンシステム及びそれらに用いる仮想マシン分散方法並びにそのプログラム
JP2010009567A (ja) * 2008-06-27 2010-01-14 Internatl Business Mach Corp <Ibm> 動的にマージされた物理パーティションを含む情報処理システムおよびこれを動作させる方法
JP2011192194A (ja) * 2010-03-16 2011-09-29 Hitachi Solutions Ltd 仮想マシン制御システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019045936A (ja) * 2017-08-30 2019-03-22 富士通株式会社 情報処理装置、情報処理システム及びプログラム

Also Published As

Publication number Publication date
JP6035993B2 (ja) 2016-11-30
EP2645245A1 (en) 2013-10-02
US9436488B2 (en) 2016-09-06
EP2645245B1 (en) 2021-04-21
US20130263115A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
JP4842210B2 (ja) フェイルオーバ方法、計算機システム、管理サーバ及び予備サーバの設定方法
US9582221B2 (en) Virtualization-aware data locality in distributed data processing
US8595723B2 (en) Method and apparatus for configuring a hypervisor during a downtime state
US10592434B2 (en) Hypervisor-enforced self encrypting memory in computing fabric
US20160077884A1 (en) Dynamic allocation and assignment of virtual functions within fabric
US20060294288A1 (en) System and method for using protection keys to emulate a large region identifier space
US10289564B2 (en) Computer and memory region management method
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
JP2016167143A (ja) 情報処理システムおよび情報処理システムの制御方法
US20170277573A1 (en) Multifunction option virtualization for single root i/o virtualization
US10248460B2 (en) Storage management computer
US10853259B2 (en) Exitless extended page table switching for nested hypervisors
JP5149732B2 (ja) 仮想計算機システム
CN108139937B (zh) 多根i/o虚拟化系统
JP6543219B2 (ja) 仮想マシン配置装置およびリソース管理方法
US20160077858A1 (en) Reset of single root pci manager and physical functions within a fabric
US20160077847A1 (en) Synchronization of physical functions and virtual functions within a fabric
JP5492731B2 (ja) 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
JP2022034455A (ja) 計算機システムおよび管理方法
JP6035993B2 (ja) 情報処理装置、装置管理方法および装置管理プログラム
JP4862770B2 (ja) 仮想計算機システムにおけるメモリ管理方式及びその方法、およびプログラム
JPWO2011039887A1 (ja) 計算機装置
JP5994690B2 (ja) 情報処理装置、プログラムおよび記憶領域獲得方法
CN116324706A (zh) 分离式存储器池分配
JP6351387B2 (ja) 情報処理装置、プログラムおよび記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151208

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160712

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160912

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: 20161004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161017

R150 Certificate of patent or registration of utility model

Ref document number: 6035993

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150