WO2014045453A1 - Environmental variable storage method, information processing device, and program - Google Patents

Environmental variable storage method, information processing device, and program Download PDF

Info

Publication number
WO2014045453A1
WO2014045453A1 PCT/JP2012/074448 JP2012074448W WO2014045453A1 WO 2014045453 A1 WO2014045453 A1 WO 2014045453A1 JP 2012074448 W JP2012074448 W JP 2012074448W WO 2014045453 A1 WO2014045453 A1 WO 2014045453A1
Authority
WO
WIPO (PCT)
Prior art keywords
environment variable
value
virtual machine
request
processor
Prior art date
Application number
PCT/JP2012/074448
Other languages
French (fr)
Japanese (ja)
Inventor
左尾将隆
嶋谷恵治
遠藤新
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2012/074448 priority Critical patent/WO2014045453A1/en
Publication of WO2014045453A1 publication Critical patent/WO2014045453A1/en

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

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)

Abstract

One or more first processors run a hypervisor and a first and second virtual machine operating on said hypervisor. A second processor does not run the hypervisor or the first and second virtual machines. Of the first processors, the processor running a boot loader for loading an OS on the first virtual machine requests the second virtual machine to save the environmental variable value of the boot loader on a first storage device. When there is no response, the processor running the boot loader requests the second processor to save the environmental variable value on a second storage device. When the second virtual machine reboots after the second processor saves the environmental variable value on the second storage device, the processor, from among the first processors, that began to run the second virtual machine in response to the reboot thereof acquires the environmental variable value from the second storage device or the boot loader and saves the acquired environmental variable value on the first storage device.

Description

環境変数保存方法、情報処理装置およびプログラムEnvironment variable storage method, information processing apparatus, and program
 本発明は、環境変数(environment variable)の値を保存する(save)技術に関する。 The present invention relates to a technique for saving the value of an environment variable.
 コンピュータシステムでは、状態や環境を示すための各種の情報が使われる。各種の情報は、例えば、設定ファイル(configuration file)に定義されていることもあるし、環境変数として定義されていることもある。また、整合性を保って各種の情報を管理するための様々な技術も研究されている。 In the computer system, various types of information for indicating the state and environment are used. Various types of information may be defined, for example, in a configuration file (configuration file) or may be defined as environment variables. Various techniques for managing various information while maintaining consistency have also been studied.
 例えば、あるシステム監視装置は、コンピュータシステムのハードウェア状態情報、および、OS(Operating System)ソフトウェアによるハードウェア制御指示のOSソフトウェア状態情報を保持して、コンピュータシステム全体を監視制御する。システム監視装置は、ハードウェア状態情報およびOSソフトウェア状態情報の状態変化を認識した際に、これらの情報を、退避情報として不揮発メモリに記憶する。 For example, a certain system monitoring apparatus monitors and controls the entire computer system by holding the hardware status information of the computer system and the OS software status information of the hardware control instruction by the OS (Operating System) software. When the system monitoring apparatus recognizes changes in the state of the hardware state information and the OS software state information, the system monitoring apparatus stores these pieces of information in the nonvolatile memory as save information.
 システム監視装置は、故障したシステム監視装置の活性交換(hot plugging)にともなう再起動を認識した際に、不揮発メモリから退避情報を読み出して、対応する装置故障前のハードウェア状態情報およびOSソフトウェア状態情報を復元する。システム監視装置は、退避情報から動作中のハードウェアを認識し、認識したハードウェアについて、活性交換中に発生したハードウェア状態情報を復元する。また、システム監視装置は、退避情報から動作中のOSソフトウェアを認識し、認識したOSソフトウェアについて、活性交換中に発生したOSソフトウェア状態情報を復元する。 When the system monitoring device recognizes a restart associated with hot replacement (hot plugging) of the failed system monitoring device, the system monitoring device reads the save information from the nonvolatile memory, and the hardware status information and OS software status before the corresponding device failure Restore information. The system monitoring apparatus recognizes the operating hardware from the save information, and restores the hardware status information generated during the active replacement for the recognized hardware. Further, the system monitoring apparatus recognizes the operating OS software from the save information, and restores the OS software state information generated during the active replacement for the recognized OS software.
 また、以下に述べるような、ネットワーク環境設定の自動更新方法も提案されている。当該方法は、OSのコア部分のカスタマイズを行うことなしに、OS動作時に変更されたネットワーク設定を、ハードウェアに依存したOS不在時のネットワーク設定にも自動的に反映させることを可能とするための方法である。 Also, an automatic update method for network environment settings as described below has been proposed. This method makes it possible to automatically reflect the network settings changed during the OS operation in the network settings in the absence of the OS depending on the hardware without customizing the core part of the OS. It is a method.
 当該方法によれば、アドレス変更検出手段が、ネットワークアダプタ宛てに送信されてきたネットワークパケットを覗き見する。アドレス変更検出手段は、ネットワークアドレス(例えばIP(Internet Protocol)アドレス)の変更を検出した場合は、ネットワーク情報格納手段にイベント通知を行う。 According to this method, the address change detection means peeks at the network packet transmitted to the network adapter. The address change detection means notifies the network information storage means of an event when detecting a change of a network address (for example, an IP (Internet Protocol) address).
 ネットワーク情報格納手段は、OSのネットワーク設定を取得して、ネットワーク情報を格納する。ネットワーク情報更新手段は、ネットワーク情報と、拡張BIOS(Basic Input Output System)およびマネージメントコントローラのネットワーク設定を比較する。両者が異なる場合、ネットワーク情報更新手段は、ネットワーク情報を使用して、拡張BIOSおよびマネージメントコントローラのネットワーク設定を自動更新する。 The network information storage means acquires the OS network settings and stores the network information. The network information update means compares the network information with the network settings of the extended BIOS (Basic Input Input Output System) and the management controller. If the two are different, the network information updating unit automatically updates the network settings of the extended BIOS and the management controller using the network information.
国際公開公報WO2007/088575号International Publication No. WO2007 / 085575 特開2001-230782号公報Japanese Patent Laid-Open No. 2001-230782
 近年、ハイパーバイザ(hypervisor)を用いた仮想化技術の利用が進みつつある。しかし、仮想化にともなって新たな課題が生じることもある。
 ハイパーバイザ上では複数の仮想マシンが動作し得るが、ある種のアーキテクチャによれば、特定の仮想マシンは他の仮想マシンとは異なる役割を担う場合がある。例えば、ある種のアーキテクチャによれば、仮想マシンにOSをロードするためのブートローダ(boot loader)の環境変数の値は、特定の仮想マシンを介して記憶装置に保存される。
In recent years, the use of virtualization technology using a hypervisor is progressing. However, new issues may arise with virtualization.
Although multiple virtual machines can run on the hypervisor, certain virtual machines may play different roles than other virtual machines, depending on certain architectures. For example, according to a certain architecture, a value of an environment variable of a boot loader for loading an OS into a virtual machine is stored in a storage device via a specific virtual machine.
 ブートローダの環境変数の値が適切に保存されないと、仮想マシン上でのOSの次回以降の起動に支障が生じるおそれがある。他方、上記特定の仮想マシンが常に正常に動作するとは限らない。上記特定の仮想マシンに故障(failure)が生じる可能性もある。 If the value of the environment variable of the boot loader is not saved properly, there is a risk that it will hinder the next booting of the OS on the virtual machine. On the other hand, the specific virtual machine does not always operate normally. There is also a possibility that a failure occurs in the specific virtual machine.
 よって、たとえブートローダ自体は正常であっても、特定の仮想マシンの故障が原因でブートローダの環境変数の値が適切に保存されない場合があり得る。その結果、「特定の仮想マシンの故障が原因で、他の仮想マシン上でのOSの将来の起動に支障をきたす」という問題が生じ得る。 Therefore, even if the boot loader itself is normal, the value of the environment variable of the boot loader may not be properly saved due to a failure of a specific virtual machine. As a result, a problem may occur that “the failure of a specific virtual machine causes a problem in the future activation of the OS on another virtual machine”.
 本発明は、1つの側面では、ハイパーバイザ上で動作する仮想マシンのうち、ブートローダの環境変数の値の保存を制御する仮想マシンに故障が生じても、他の仮想マシンのOSの起動に支障をきたさないようにすることを目的とする。 In one aspect of the present invention, even if a failure occurs in a virtual machine that controls saving of environment variable values of a boot loader among virtual machines that operate on a hypervisor, it is difficult to start an OS of another virtual machine. The purpose is to prevent you from coming.
 一態様によれば、環境変数保存方法が提供される。説明の便宜上、ハイパーバイザならびに前記ハイパーバイザ上で動作する第1および第2の仮想マシンを実行するための1台以上のプロセッサを、「1台以上の第1のプロセッサ」という。また、前記ハイパーバイザならびに前記第1および前記第2の仮想マシンのいずれも実行しないプロセッサを、「第2のプロセッサ」という。 According to one aspect, an environment variable storage method is provided. For convenience of explanation, the one or more processors for executing the hypervisor and the first and second virtual machines operating on the hypervisor are referred to as “one or more first processors”. A processor that does not execute any of the hypervisor and the first and second virtual machines is referred to as a “second processor”.
 当該環境変数保存方法では、前記1台以上の第1のプロセッサのうち、前記第1の仮想マシンにオペレーティング・システムをロードするためのブートローダを前記第1の仮想マシン上で第1の時点において実行しているプロセッサが、前記第2の仮想マシンに対して、前記ブートローダの環境変数の値を第1の記憶装置に保存するよう求める第1の要求を発行する。そして、決められた時間以内に前記第1の要求に対する応答が返されない場合、前記ブートローダを実行している前記プロセッサは、前記第2のプロセッサに対して、前記環境変数の前記値を第2の記憶装置に保存するよう求める第2の要求を、前記ハイパーバイザを介して発行する。さらに、前記第2のプロセッサが、前記第2の要求に応じて、前記第2の記憶装置に前記環境変数の前記値を保存する。 In the environment variable storage method, a boot loader for loading an operating system to the first virtual machine out of the one or more first processors is executed on the first virtual machine at a first time point. The first processor issues a first request to the second virtual machine to save the value of the environment variable of the boot loader in the first storage device. If the response to the first request is not returned within the determined time, the processor executing the boot loader sets the value of the environment variable to the second processor to the second value. A second request for saving to the storage device is issued via the hypervisor. Further, the second processor stores the value of the environment variable in the second storage device in response to the second request.
 また、前記第2のプロセッサが前記環境変数の前記値を前記第2の記憶装置に保存した後の第2の時点で前記第2の仮想マシンが再起動されたとき、前記1台以上の第1のプロセッサのうち、前記第2の時点での前記第2の仮想マシンの再起動に応じて前記第2の仮想マシンの実行を開始したプロセッサが、前記第2の記憶装置または前記ブートローダから前記環境変数の前記値を取得し、取得した前記環境変数の前記値を前記第1の記憶装置に保存する。 In addition, when the second virtual machine is restarted at a second time after the second processor stores the value of the environment variable in the second storage device, the one or more first virtual machines are restarted. Among the processors of one, the processor that has started execution of the second virtual machine in response to the restart of the second virtual machine at the second time point, from the second storage device or the boot loader, The value of the environment variable is acquired, and the acquired value of the environment variable is stored in the first storage device.
 上記の環境変数保存方法によれば、ハイパーバイザ上で動作する仮想マシンのうち、ブートローダの環境変数の値の保存を制御する仮想マシンに故障が生じても、他の仮想マシンのOSの起動に支障をきたさない。 According to the environment variable saving method described above, even if a failure occurs in a virtual machine that controls saving of the environment variable value of the boot loader among virtual machines operating on the hypervisor, the OS of other virtual machines can be started. It won't interfere.
仮想マシンにOSをロードするためのブートローダの環境変数の保存に関する、様々な状況を説明する図である。It is a figure explaining various situations regarding preservation | save of the environmental variable of the boot loader for loading OS in a virtual machine. 比較例で生じ得る問題が解決されることを説明する図である。It is a figure explaining that the problem which may arise in a comparative example is solved. コンピュータのハードウェア構成図である。It is a hardware block diagram of a computer. コンピュータと他の装置との接続を例示する図である。It is a figure which illustrates the connection of a computer and another apparatus. 第2実施形態のコンピュータのブロック構成図である。It is a block block diagram of the computer of 2nd Embodiment. 環境変数テーブルの例を示す図である。It is a figure which shows the example of an environment variable table. 状態リストの例を示す図である。It is a figure which shows the example of a state list | wrist. ゲストドメインでのOBP(OpenBoot PROM)の動作フローチャートである。It is an operation | movement flowchart of OBP (OpenBoot | PROM) in a guest domain. OBP環境変数に関してSP(サービスプロセッサ)が行う処理のフローチャートである。It is a flowchart of the process which SP (service processor) performs regarding an OBP environment variable. OBP環境変数に関して制御ドメインが行う処理のフローチャートである。It is a flowchart of the process which a control domain performs regarding an OBP environment variable. 第2実施形態における環境変数更新処理のフローチャート(その1)である。It is a flowchart (the 1) of the environment variable update process in 2nd Embodiment. 第2実施形態における環境変数更新処理のフローチャート(その2)である。It is a flowchart (the 2) of the environmental variable update process in 2nd Embodiment. 第3実施形態のコンピュータのブロック構成図である。It is a block block diagram of the computer of 3rd Embodiment. 第3実施形態における環境変数更新処理のフローチャートである。It is a flowchart of the environmental variable update process in 3rd Embodiment. 第4実施形態における環境変数の保存に関する、様々な状況を説明する図である。It is a figure explaining the various situations regarding preservation | save of the environment variable in 4th Embodiment. 第4実施形態と比較例を比べて示す図である。It is a figure shown by comparing 4th Embodiment and a comparative example. 更新リストの例を示す図である。It is a figure which shows the example of an update list. OBP環境変数に関して第4実施形態においてSPが行う処理のフローチャートである。It is a flowchart of the process which SP performs in 4th Embodiment regarding an OBP environment variable. 第4実施形態における環境変数更新処理のフローチャートである。It is a flowchart of the environment variable update process in 4th Embodiment.
 以下、実施形態について、図面を参照しながら詳細に説明する。具体的には、まず図1~4を参照して第1実施形態について説明する。なお、図1~4は、第2~第3実施形態にも当てはまり、図3~4は、さらに第4実施形態にも当てはまる。 Hereinafter, embodiments will be described in detail with reference to the drawings. Specifically, first, the first embodiment will be described with reference to FIGS. 1 to 4 also apply to the second to third embodiments, and FIGS. 3 to 4 also apply to the fourth embodiment.
 その後、図5~12を参照して第2実施形態について説明し、図13~14を参照して第3実施形態について説明する。さらに、図15~19を参照して第4実施形態について説明する。最後に、いくつかの変形例についても説明する。 Thereafter, the second embodiment will be described with reference to FIGS. 5 to 12, and the third embodiment will be described with reference to FIGS. Furthermore, a fourth embodiment will be described with reference to FIGS. Finally, some modifications will be described.
 図1は、仮想マシンにOSをロードするためのブートローダの環境変数の保存に関する、様々な状況を説明する図である。詳しくは図3とともに後述するとおり、ハイパーバイザによる仮想化が適用されるある種のコンピュータは、用途の異なる2種類のプロセッサを有する。具体的には、ある種のコンピュータは、以下の2種類のプロセッサを有する。 FIG. 1 is a diagram for explaining various situations related to saving environment variables of a boot loader for loading an OS into a virtual machine. As will be described in detail later with reference to FIG. 3, a certain type of computer to which virtualization by the hypervisor is applied has two types of processors having different uses. Specifically, a certain type of computer has the following two types of processors.
  ・ハイパーバイザ、および、ハイパーバイザ上で動作する(running)複数の仮想マシンを実行する(execute)ための、1台以上のプロセッサ(以下、便宜上、「1台以上の第1のプロセッサ」という)。
  ・ハイパーバイザも実行せず、ハイパーバイザ上で動作するどの仮想マシンも実行しない、他のプロセッサ(以下、便宜上「第2のプロセッサ」という)。
One or more processors (hereinafter referred to as “one or more first processors” for the sake of convenience) for executing the hypervisor and a plurality of virtual machines running on the hypervisor (execution) .
Other processors that do not execute the hypervisor and do not execute any virtual machine that operates on the hypervisor (hereinafter referred to as “second processor” for convenience).
 第2のプロセッサが複数あってもよい。しかし、図1の説明においては、簡単化のため、第2のプロセッサは1台であるものとする。 There may be a plurality of second processors. However, in the description of FIG. 1, it is assumed that there is one second processor for simplification.
 例えば、ある種のコンピュータは、1台以上のCPU(Central Processing Unit)と、「サービスプロセッサ」などと呼ばれるモジュールを有する。以下ではサービスプロセッサを「SP」と略す。SPは、上記1台以上のCPUとは独立した別のCPUと、不揮発性記憶装置(例えばフラッシュメモリ)とを含むモジュールである。 For example, a certain type of computer has one or more CPUs (Central Processing Unit) and a module called “service processor”. Hereinafter, the service processor is abbreviated as “SP”. The SP is a module including another CPU independent of the one or more CPUs and a nonvolatile storage device (for example, a flash memory).
 ある種のSPは、電圧や温度を監視する。また、SPは、コンピュータ全体を強制的に再起動する機能を有していてもよい。 Some SPs monitor voltage and temperature. The SP may have a function of forcibly restarting the entire computer.
 例えば上記のごときコンピュータでは、上記の1台以上のCPUが、上記の1台以上の第1のプロセッサであってもよく、SP内のCPUが、上記の第2のプロセッサであってもよい。 For example, in the computer as described above, the one or more CPUs may be the one or more first processors, and the CPU in the SP may be the second processor.
 ところで、ハイパーバイザ上の各仮想マシンには、OSがインストールされているものとする。各OSは、各仮想マシン上で実行される。ハイパーバイザは「仮想マシンモニタ」とも呼ばれ、ハイパーバイザ上で動作する仮想マシンは、「ドメイン」または「論理ドメイン」とも呼ばれる。 By the way, it is assumed that an OS is installed in each virtual machine on the hypervisor. Each OS is executed on each virtual machine. A hypervisor is also called a “virtual machine monitor”, and a virtual machine operating on the hypervisor is also called a “domain” or a “logical domain”.
 ハイパーバイザによる仮想化が行われないコンピュータにおいては、OSをロードして起動するための広義のブートローダとして、BIOS等が使われる。同様に、ハイパーバイザにより仮想化されたコンピュータにおいても、仮想マシンにOSをロードしてOSを起動するための、ある種のブートローダが使われる。当該ブートローダは、仮想ハードウェアに関する設定を行うためのユーザインタフェイスを提供してもよい。 In a computer that is not virtualized by the hypervisor, BIOS or the like is used as a broad boot loader for loading and starting the OS. Similarly, in a computer virtualized by a hypervisor, a certain type of boot loader for loading an OS into a virtual machine and starting the OS is used. The boot loader may provide a user interface for performing settings related to virtual hardware.
 また、ある種の仮想化アーキテクチャにおいては、複数の仮想マシンのうちの特定の仮想マシンにおいて、他の仮想マシンのブートローダの環境変数が管理される。より具体的には、特定の仮想マシンのOSに、他の仮想マシンのブートローダの環境変数を管理するためのプログラムモジュールが組み込まれていてもよい。なお、この種の特定の仮想マシンは、「制御ドメイン」(control domain)とも呼ばれ、特定の仮想マシン以外の仮想マシンは、「ゲストドメイン」(guest domain)とも呼ばれる。 Also, in a certain kind of virtualization architecture, the environment variable of the boot loader of another virtual machine is managed in a specific virtual machine among a plurality of virtual machines. More specifically, a program module for managing environment variables of boot loaders of other virtual machines may be incorporated in the OS of a specific virtual machine. This type of specific virtual machine is also called a “control domain” (control domain), and a virtual machine other than the specific virtual machine is also called a “guest domain” (guest domain).
 図1には、第1の仮想マシンのブートローダ1が動作する期間と、ブートローダ1の環境変数を管理する第2の仮想マシン2が動作する期間が示されている。 FIG. 1 shows a period in which the boot loader 1 of the first virtual machine operates and a period in which the second virtual machine 2 that manages environment variables of the boot loader 1 operates.
 また、上記のとおり、第1の仮想マシンは第1のプロセッサのいずれか1台以上により実行され、第2の仮想マシンも第1のプロセッサのいずれか1台以上により実行される。なお、1台の第1のプロセッサが第1の仮想マシンと第2の仮想マシンの双方を実行する場合もあり得るし、逆に、第1の仮想マシンを実行する第1のプロセッサと第2の仮想マシンを実行する第1のプロセッサが物理的には異なる場合もあり得る。 Also, as described above, the first virtual machine is executed by any one or more of the first processors, and the second virtual machine is also executed by any one or more of the first processors. Note that one first processor may execute both the first virtual machine and the second virtual machine, and conversely, the first processor and the second processor that execute the first virtual machine. The first processor that executes the virtual machine may be physically different.
 他方、第2のプロセッサ3は、ハイパーバイザを実行することもなく、どの仮想マシンを実行することもない。図1には、第2のプロセッサ3が動作する期間も示されている。 On the other hand, the second processor 3 does not execute the hypervisor and does not execute any virtual machine. FIG. 1 also shows a period during which the second processor 3 operates.
 具体的には、図1には、5つの状況4A~4Eが図示されている。説明の便宜上、いくつかの時刻を以下のように表記する。 Specifically, FIG. 1 shows five situations 4A to 4E. For convenience of explanation, some times are expressed as follows.
  ・第1の仮想マシンのブートローダ1が動作を開始する時刻を「T_start」と表記する。
  ・第1の仮想マシンのブートローダ1が動作を終了する時刻(すなわち、第1の仮想マシンにおいてOSが起動する時刻)を「T_end」と表記する。
  ・第2の仮想マシン2が何らかの原因により動作しなくなる時刻(例えば、第2の仮想マシン2がエラーによりシャットダウンしてしまう時刻)を「T_down」と表記する。
  ・第2の仮想マシン2が再起動する時刻(例えば、管理者の手動操作にしたがって第2の仮想マシン2が再起動するか、または、ハイパーバイザによる制御により自動的に第2の仮想マシン2が再起動する時刻)を「T_boot」と表記する。
The time when the boot loader 1 of the first virtual machine starts operation is expressed as “T_start”.
The time at which the boot loader 1 of the first virtual machine finishes operation (that is, the time at which the OS starts in the first virtual machine) is expressed as “T_end”.
A time when the second virtual machine 2 stops operating for some reason (for example, a time when the second virtual machine 2 shuts down due to an error) is expressed as “T_down”.
Time at which the second virtual machine 2 is restarted (for example, the second virtual machine 2 is restarted according to the manual operation of the administrator, or is automatically controlled by the hypervisor) Is the time when the computer is restarted).
 図1の状況4A~4Eは、それぞれ下記の不等式(A)~(E)に対応する。
  T_start < T_down < T_end < T_boot    (A)
  T_start < T_down < T_boot < T_end    (B)
  T_start < T_end < T_down < T_boot    (C)
  T_down < T_start < T_boot < T_end    (D)
  T_down < T_boot < T_start < T_end    (E)
Situations 4A to 4E in FIG. 1 correspond to the following inequalities (A) to (E), respectively.
T_start <T_down <T_end <T_boot (A)
T_start <T_down <T_boot <T_end (B)
T_start <T_end <T_down <T_boot (C)
T_down <T_start <T_boot <T_end (D)
T_down <T_boot <T_start <T_end (E)
 また、便宜上、図1についての以下の説明では、以下のように仮定する。
  ・ブートローダ1に少なくとも第1~第3の環境変数が定義されている。
  ・破線で示した時刻には、第1~第3の環境変数の値がそれぞれ「A1」、「B1」および「C1」である。
For convenience, the following description of FIG. 1 assumes the following.
At least first to third environment variables are defined in the boot loader 1.
At the time indicated by the broken line, the values of the first to third environment variables are “A1”, “B1”, and “C1”, respectively.
 ブートローダ1が動作している間には(すなわち、時刻T_startから時刻T_endまでの期間中は)、第1~第3の環境変数のうち、任意の1つ以上が更新される可能性がある。 While the boot loader 1 is operating (that is, during the period from time T_start to time T_end), any one or more of the first to third environment variables may be updated.
 例えば、状況4Aでは、時刻T_downより前に、第1の環境変数の値が「A2」に更新される。具体的には、1台以上の第1のプロセッサのうち、第1の仮想マシンのブートローダ1を第1の仮想マシン上で実行しているプロセッサが、第2の仮想マシン2に対して、第1の環境変数の「A2」という値を保存するよう求める要求を発行する。そして、要求に応じて、第1の環境変数の「A2」という値が保存される。 For example, in the situation 4A, the value of the first environment variable is updated to “A2” before the time T_down. Specifically, among the one or more first processors, a processor that executes the boot loader 1 of the first virtual machine on the first virtual machine performs a second operation on the second virtual machine 2. Issue a request to save the value “A2” of the environment variable 1. Then, in response to the request, the value “A2” of the first environment variable is stored.
 各環境変数の値は、物理的には、第2の仮想マシン2からアクセス可能な、ある記憶装置(以下では便宜上、「第1の記憶装置」という)に保存される。第1の記憶装置は不揮発性記憶装置である。 The value of each environment variable is physically stored in a certain storage device (hereinafter referred to as “first storage device” for convenience) accessible from the second virtual machine 2. The first storage device is a nonvolatile storage device.
 具体的には、状況4Aでは、第1の環境変数の値を「A2」に更新するための上記要求が発行された時点において、第2の仮想マシン2は動作中である。よって、1台以上の第1のプロセッサのうち、第2の仮想マシン2を実行中のプロセッサが、上記要求に応じて、第1の環境変数の「A2」という値を第1の記憶装置に保存し、保存の完了をブートローダ1に通知する。この通知は、上記要求に対する応答である。上記要求と上記応答は、具体的にはハイパーバイザを介して送られてもよい。 Specifically, in the situation 4A, the second virtual machine 2 is operating when the above request for updating the value of the first environment variable to “A2” is issued. Therefore, the processor executing the second virtual machine 2 among the one or more first processors sets the value “A2” of the first environment variable to the first storage device in response to the request. Save and notify the boot loader 1 of the completion of saving. This notification is a response to the request. Specifically, the request and the response may be sent via a hypervisor.
 また、状況4Aでは、時刻T_downに何らかの理由で第2の仮想マシン2が動作を停止する。第2の仮想マシン2は、その後、時刻T_bootに再起動される。他方、第2の仮想マシン2が動作していない間にも、ブートローダ1からは、第2の環境変数の値を「B2」に更新するための要求が発行されることがある。 In the situation 4A, the second virtual machine 2 stops operating for some reason at time T_down. Thereafter, the second virtual machine 2 is restarted at time T_boot. On the other hand, even when the second virtual machine 2 is not operating, the boot loader 1 may issue a request for updating the value of the second environment variable to “B2”.
 つまり、1台以上の第1のプロセッサのうち、時刻T_downより後かつ時刻T_bootより前のある時点でブートローダ1を実行中のプロセッサが、第2の仮想マシン2に対して、第2の環境変数の「B2」という値を保存するよう求める要求を発行する。しかし、第2の仮想マシン2は動作していない。よって、決められた時間以内には、要求に対する応答が返されない。 In other words, among the one or more first processors, the processor that is executing the boot loader 1 at a certain time after the time T_down and before the time T_boot gives the second environment variable to the second virtual machine 2. Issue a request to save the value of “B2”. However, the second virtual machine 2 is not operating. Therefore, a response to the request is not returned within a predetermined time.
 ブートローダ1を実行している第1のプロセッサは、決められた時間以内に応答が返されない場合には、第2のプロセッサ3に対して、第2の環境変数の「B2」という値を第2の記憶装置に保存するよう求める要求を発行する。そして、要求に応じて、第2の環境変数の「B2」という値が保存される。第2の記憶装置は、第2のプロセッサ3からアクセス可能な不揮発性記憶装置である。 If no response is returned within a predetermined time, the first processor executing the boot loader 1 sets the second environment variable “B2” to the second value for the second processor 3. Issue a request to save to another storage device. In response to the request, the value “B2” of the second environment variable is stored. The second storage device is a non-volatile storage device accessible from the second processor 3.
 具体的には、状況4Aでは、第2の環境変数の値を「B2」に更新するための上記要求が発行された時点において、第2のプロセッサ3は動作中である。よって、第2のプロセッサ3が、上記要求に応じて、第2の環境変数の「B2」という値を第2の記憶装置に保存する。第2のプロセッサ3は、さらに、保存の完了をブートローダ1に通知してもよい。この通知は、上記要求に対する応答である。上記要求と上記応答は、具体的にはハイパーバイザを介して送られてもよい。 Specifically, in the situation 4A, the second processor 3 is operating when the above request for updating the value of the second environment variable to “B2” is issued. Therefore, the second processor 3 stores the value “B2” of the second environment variable in the second storage device in response to the request. The second processor 3 may further notify the boot loader 1 of the completion of saving. This notification is a response to the request. Specifically, the request and the response may be sent via a hypervisor.
 なお、状況4Aでは、時刻T_endに第1の仮想マシン上のOSがブートローダ1から起動され、ブートローダ1は動作を停止する。具体的には、OSは、第1~第3の環境変数の「A2」、「B2」および「C1」という値にしたがって起動される。つまり、時刻T_endにおいてブートローダ1を実行中の第1のプロセッサが認識している最新の値にしたがって、OSが起動される。 In the situation 4A, the OS on the first virtual machine is started from the boot loader 1 at time T_end, and the boot loader 1 stops its operation. Specifically, the OS is started according to the values “A2”, “B2”, and “C1” of the first to third environment variables. That is, the OS is started according to the latest value recognized by the first processor that is executing the boot loader 1 at time T_end.
 しかし、時刻T_endでは、第1の記憶装置にはまだ第2の環境変数の最新の値「B2」が反映されていない。そのため、第1の記憶装置に環境変数の最新の値を反映するための処理が、以下のようにして行われる。 However, at the time T_end, the latest value “B2” of the second environment variable is not yet reflected in the first storage device. Therefore, the process for reflecting the latest value of the environment variable in the first storage device is performed as follows.
 状況4Aによれば、ブートローダ1からOSが起動された後の時刻T_bootに、第2の仮想マシン2が再起動される。1台以上の第1のプロセッサのうち、時刻T_bootでの第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始したプロセッサは、時刻T_downから時刻T_bootまでの間に保存された環境変数の値を取得しようとする。 According to the situation 4A, the second virtual machine 2 is restarted at time T_boot after the OS is started from the boot loader 1. Among the one or more first processors, the processor that has started execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 at time T_boot is between time T_down and time T_boot. Try to get the value of a saved environment variable.
 具体的には、状況4Aにおいては、第2の仮想マシン2が再起動された時刻T_bootでは、第2のプロセッサ3は動作しているが、ブートローダ1は既に動作を終了している。そのため、第2の仮想マシン2が動作していない期間中に更新された最新の環境変数の値(具体的には「B2」という値)を保持しているのは、第2の記憶装置のみである。 Specifically, in the situation 4A, at the time T_boot when the second virtual machine 2 is restarted, the second processor 3 is operating, but the boot loader 1 has already ended. Therefore, only the second storage device holds the latest environment variable value (specifically, the value “B2”) updated during the period when the second virtual machine 2 is not operating. It is.
 そこで、状況4Aでは、第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始した第1のプロセッサは、第2のプロセッサ3に対して要求を発行することで、第2の記憶装置に保存されている第2の環境変数の「B2」という値を取得する。第2のプロセッサ3に対する当該要求は、具体的にはハイパーバイザを介して発行される。同様に、第2の環境変数の「B2」という値も、具体的にはハイパーバイザを介して返される。 Therefore, in the situation 4A, the first processor that has started the execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 issues a request to the second processor 3, The value “B2” of the second environment variable stored in the second storage device is acquired. Specifically, the request for the second processor 3 is issued via the hypervisor. Similarly, the value “B2” of the second environment variable is also specifically returned through the hypervisor.
 そして、第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始した第1のプロセッサは、以上のようにして第2の記憶装置から取得した第2の環境変数の「B2」という値を、第1の記憶装置に保存する。その結果、第2の仮想マシン2が動作していなかった間に行われた環境変数の更新が、第1の記憶装置に反映される。 Then, the first processor that has started the execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 sets the second environment variable acquired from the second storage device as described above. The value “B2” is stored in the first storage device. As a result, the update of the environment variable performed while the second virtual machine 2 was not operating is reflected in the first storage device.
 さて、状況4Bは、状況4Aと似ているが、時刻T_bootにおいて第2の仮想マシン2が再起動されたときに、まだブートローダ1が動作中であるという点において、状況4Aとは異なる。つまり、状況4Bでは、第2の仮想マシン2が再起動された時刻T_bootにおいて、ブートローダ1と第2のプロセッサ3の双方が、第2の仮想マシン2が動作していない期間中に更新された最新の環境変数の値(具体的には「B2」という値)を認識している。つまり、「B2」という値は、物理的には、時刻T_bootにおいて下記の2箇所に記憶されている。 The situation 4B is similar to the situation 4A, but is different from the situation 4A in that the boot loader 1 is still operating when the second virtual machine 2 is restarted at the time T_boot. That is, in the situation 4B, at the time T_boot when the second virtual machine 2 is restarted, both the boot loader 1 and the second processor 3 are updated during a period in which the second virtual machine 2 is not operating. The latest environment variable value (specifically, the value “B2”) is recognized. That is, the value “B2” is physically stored in the following two locations at time T_boot.
  ・1台以上の第1のプロセッサのうちで時刻T_bootにおいてブートローダ1を実行中のプロセッサが使用するメモリ。
  ・第2のプロセッサ3からアクセス可能な上記の第2の記憶装置。
A memory used by a processor executing the boot loader 1 at time T_boot among one or more first processors.
The second storage device that is accessible from the second processor 3.
 状況4Bでは、第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始した第1のプロセッサは、ブートローダ1から最新の環境変数の値を取得する。具体的には、第2の仮想マシン2の実行を開始した第1のプロセッサは、ブートローダ1に対して、環境変数の値を送る(send)よう求める要求を発行する。そして、第2の仮想マシン2の実行を開始した第1のプロセッサは、ブートローダ1を実行中の第1のプロセッサから、少なくとも、更新された第2の環境変数の「B2」という値を受け取る。 In the situation 4B, the first processor that has started the execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 acquires the latest environment variable value from the boot loader 1. Specifically, the first processor that has started the execution of the second virtual machine 2 issues a request for sending the value of the environment variable to the boot loader 1. Then, the first processor that has started the execution of the second virtual machine 2 receives at least the updated value “B2” of the second environment variable from the first processor that is executing the boot loader 1.
 第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始した第1のプロセッサは、以上のようにしてブートローダ1から取得した第2の環境変数の「B2」という値を、第1の記憶装置に保存する。その結果、第2の仮想マシン2が動作していなかった間に行われた環境変数の更新が、第1の記憶装置に反映される。 The first processor that has started execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 has the value “B2” of the second environment variable acquired from the boot loader 1 as described above. Is stored in the first storage device. As a result, the update of the environment variable performed while the second virtual machine 2 was not operating is reflected in the first storage device.
 なお、ブートローダ1を実行中の第1のプロセッサの使用するメモリ上に記憶されている第1~第3の環境変数の値は、どれも最新である。よって、図1に示すように、第2の仮想マシン2の実行を開始した第1のプロセッサは、ブートローダ1からすべての環境変数の値を取得してもよく、取得したそれぞれの値を第1の記憶装置に保存してもよい。状況4Bでは、第2の仮想マシン2の再起動にともなって、「A2」、「B2」および「C1」という3つの最新の値が取得される。 Note that the values of the first to third environment variables stored in the memory used by the first processor executing the boot loader 1 are all the latest. Therefore, as shown in FIG. 1, the first processor that has started the execution of the second virtual machine 2 may acquire the values of all environment variables from the boot loader 1. It may be stored in the storage device. In the situation 4B, as the second virtual machine 2 is restarted, the three latest values “A2,” “B2,” and “C1” are acquired.
 また、状況4Bでは、ブートローダ1は時刻T_bootよりも後まで動作し続ける。よって、以上のようにして第1の記憶装置上の環境変数が最新の状態へと更新された後に、さらに環境変数が更新される可能性もある。 In the situation 4B, the boot loader 1 continues to operate until after the time T_boot. Therefore, after the environment variable on the first storage device is updated to the latest state as described above, the environment variable may be further updated.
 例えば、状況4Bでは、具体的には、時刻T_bootよりも後に第3の環境変数の値が「C2」に更新される。この第3の環境変数の「C1」という値から「C2」という値への更新は、上記の第1の環境変数の「A1」という値から「A2」という値への更新と同様の方法で行われる。 For example, in the situation 4B, specifically, the value of the third environment variable is updated to “C2” after the time T_boot. The update of the third environment variable from the value “C1” to the value “C2” is performed in the same manner as the update from the value “A1” to the value “A2” of the first environment variable. Done.
 ところで、状況4Cにおいては、状況4Aおよび4Bと同様に、ブートローダ1と第2の仮想マシン2の双方が動作している間に第1の環境変数が「A1」という値から「A2」という値へと更新されることがあり得る。しかし、状況4Cでは、第2の仮想マシン2が時刻T_downで動作を停止したときには既に、ブートローダ1は動作していない。 By the way, in the situation 4C, as in the situation 4A and 4B, the first environment variable is changed from the value “A1” to the value “A2” while both the boot loader 1 and the second virtual machine 2 are operating. May be updated. However, in the situation 4C, when the second virtual machine 2 stops operating at the time T_down, the boot loader 1 is not already operating.
 よって、状況4Cでは、第2の仮想マシン2が動作していない間にブートローダ1により環境変数が更新されることはない。換言すれば、状況4Cによれば、時刻T_bootに第2の仮想マシン2が再起動されたとき、第1の記憶装置上の環境変数の値は、どれも最新である。そのため、状況4Cでは、時刻T_bootに第2の仮想マシン2が再起動されたとき、第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始した第1のプロセッサは、環境変数の値を取得する必要がない。 Therefore, in the situation 4C, the environment variable is not updated by the boot loader 1 while the second virtual machine 2 is not operating. In other words, according to the situation 4C, when the second virtual machine 2 is restarted at the time T_boot, the values of the environment variables on the first storage device are all the latest. Therefore, in the situation 4C, when the second virtual machine 2 is restarted at time T_boot, the first processor that has started execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 is There is no need to get the value of the environment variable.
 ところで、状況4Dのように、たまたま、第2の仮想マシン2が動作していない間にブートローダ1が起動されることもあり得る。この場合、1台以上の第1のプロセッサのうち、時刻T_startにブートローダ1の実行を開始したプロセッサは、ブートローダ1のすべての環境変数の値を送るよう、第2の仮想マシン2に対して要求する。ところが、第2の仮想マシン2は動作していないので、要求に対する応答は得られない。 By the way, as in the situation 4D, the boot loader 1 may happen to be activated while the second virtual machine 2 is not operating. In this case, the processor that has started execution of the boot loader 1 at time T_start among the one or more first processors requests the second virtual machine 2 to send the values of all the environment variables of the boot loader 1. To do. However, since the second virtual machine 2 is not operating, a response to the request cannot be obtained.
 そこで、ブートローダ1を実行中の第1のプロセッサは、適宜の時間待ってから、再度、第2の仮想マシン2に対して、ブートローダ1のすべての環境変数の値を送るよう要求する。必要に応じて、要求は、2回以上発行されてもよい。 Therefore, the first processor that is executing the boot loader 1 waits for an appropriate time and then requests the second virtual machine 2 to send the values of all the environment variables of the boot loader 1 again. If necessary, the request may be issued more than once.
 すると、第2の仮想マシン2が時刻T_bootに再起動された後にブートローダ1から発行される要求に応じて、すべての環境変数の値が、第2の仮想マシン2からブートローダ1へと送られる。つまり、1台以上の第1のプロセッサのうち、第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始したプロセッサは、ブートローダ1からの要求に応じて、第1の記憶装置からすべての環境変数の値を読み出し、読み出した値を返す。 Then, all the environment variable values are sent from the second virtual machine 2 to the boot loader 1 in response to a request issued from the boot loader 1 after the second virtual machine 2 is restarted at the time T_boot. That is, among the one or more first processors, the processor that has started execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 responds to the request from the boot loader 1 with the first Read all environment variable values from the storage device and return the read values.
 その結果、ブートローダ1を実行中の第1のプロセッサは、各環境変数の値を取得し、取得した値を初期値として用いて適宜の処理を実行することが可能となる。例えば、状況4Dでは、「A1」、「B1」および「C1」という値が取得される。ブートローダ1を実行中の第1のプロセッサは、例えば、取得したこれら3つの値をディスプレイに表示してもよい。 As a result, the first processor that is executing the boot loader 1 acquires the value of each environment variable, and can execute an appropriate process using the acquired value as an initial value. For example, in the situation 4D, values “A1”, “B1”, and “C1” are acquired. For example, the first processor that is executing the boot loader 1 may display the acquired three values on the display.
 その後、例えば、オペレータが第3の環境変数を「C2」という値に更新するためのコマンドを入力すると、ブートローダ1を実行中の第1のプロセッサは、第2の仮想マシン2に対して、第3の環境変数の「C2」という値を保存するよう要求する。そして、1台以上の第1のプロセッサのうち第2の仮想マシン2を実行中のプロセッサは、要求に応じて、「C2」という値を第1の記憶装置に保存する。この第3の環境変数の「C1」という値から「C2」という値への更新は、状況4Aにおける第1の環境変数の「A1」という値から「A2」という値への更新と同様の方法で行われる。 Thereafter, for example, when the operator inputs a command for updating the third environment variable to a value of “C2”, the first processor that is executing the boot loader 1 executes the second virtual machine 2 with respect to the second virtual machine 2. 3 to save the value of the environment variable “C2”. Then, the processor that is executing the second virtual machine 2 among the one or more first processors stores the value “C2” in the first storage device in response to the request. The update from the value “C1” of the third environment variable to the value “C2” is the same method as the update from the value “A1” of the first environment variable to the value “A2” in the situation 4A. Done in
 なお、状況4Dでは、第2の仮想マシン2が再起動される前にブートローダ1が起動されている。しかし、第1実施形態では、上記のように、ブートローダ1を実行中の第1のプロセッサは、環境変数の初期値を第2の仮想マシン2から取得するまで待ってから、環境変数を用いた処理を開始する。そのため、たとえ時刻T_bootの前にブートローダ1が起動されていても、時刻T_downから時刻T_bootまでの間にブートローダ1からの要求に応じて環境変数が更新されることはない。 In the situation 4D, the boot loader 1 is started before the second virtual machine 2 is restarted. However, in the first embodiment, as described above, the first processor that is executing the boot loader 1 waits until the initial value of the environment variable is acquired from the second virtual machine 2, and then uses the environment variable. Start processing. Therefore, even if the boot loader 1 is activated before the time T_boot, the environment variable is not updated in response to a request from the boot loader 1 between the time T_down and the time T_boot.
 そのため、状況4Dでは、時刻T_bootに第2の仮想マシン2が再起動されたとき、第1の記憶装置上の環境変数の値は、どれも最新である。よって、状況4Cと同様に状況4Dにおいても、第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始したプロセッサは、環境変数の値を取得する必要がない。 Therefore, in the situation 4D, when the second virtual machine 2 is restarted at the time T_boot, the values of the environment variables on the first storage device are all the latest. Therefore, similarly to the situation 4C, also in the situation 4D, the processor that has started the execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 does not need to acquire the value of the environment variable.
 また、状況4Eのように第2の仮想マシン2が再起動された後にブートローダ1が起動される場合も、時刻T_downから時刻T_bootまでの間にブートローダ1からの要求に応じて環境変数が更新されることはない。よって、状況4Eにおいても、第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始したプロセッサは、環境変数の値を取得する必要がない。 Also, when the boot loader 1 is started after the second virtual machine 2 is restarted as in the situation 4E, the environment variable is updated in response to a request from the boot loader 1 from time T_down to time T_boot. Never happen. Therefore, even in the situation 4E, the processor that has started the execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 does not need to acquire the value of the environment variable.
 状況4Eでは、第2の仮想マシン2の再起動後の時刻T_startにおいてブートローダ1が起動される。このとき、1台以上の第1のプロセッサのうち、ブートローダ1の起動に応じてブートローダ1の実行を開始したプロセッサは、ブートローダ1のすべての環境変数の値を送るよう、第2の仮想マシン2に対して要求する。 In situation 4E, the boot loader 1 is started at time T_start after the second virtual machine 2 is restarted. At this time, among the one or more first processors, the processor that has started execution of the boot loader 1 in response to activation of the boot loader 1 sends the values of all the environment variables of the boot loader 1 to the second virtual machine 2. To request.
 状況4Dと違って、状況4Eでは、この要求が発行される時刻T_startにおいて、第2の仮想マシン2は動作中である。よって、ブートローダ1を実行中の第1のプロセッサは、要求に応じて、第1~第3の環境変数それぞれの値「A1」、「B1」および「C1」を取得することができる。また、状況4Dと同様に、状況4Eにおいても、その後、例えばオペレータからのコマンドの入力に応じて、例えば第3の環境変数が、「C1」という値から「C2」という値へと更新されてもよい。 Unlike the situation 4D, in the situation 4E, the second virtual machine 2 is operating at the time T_start when this request is issued. Therefore, the first processor that is executing the boot loader 1 can obtain the values “A1”, “B1”, and “C1” of the first to third environment variables in response to the request. Similarly to the situation 4D, in the situation 4E, for example, the third environment variable is updated from the value “C1” to the value “C2”, for example, according to the input of the command from the operator. Also good.
 以上例示したように、様々な状況4A~4Eがあり得る。第1実施形態によれば、いずれの状況においても、「ブートローダ1の環境変数の保存を制御する第2の仮想マシン2に生じる故障が原因で、第1の仮想マシンのOSの次回の起動に支障をきたし得る」という問題が回避される。 As exemplified above, there can be various situations 4A to 4E. According to the first embodiment, in any situation, “the next startup of the OS of the first virtual machine is caused by a failure that occurs in the second virtual machine 2 that controls the saving of environment variables of the boot loader 1. The problem of “being hindered” is avoided.
 例えば、ブートデバイスを指定するための環境変数の最新の値が、第1の記憶装置に保存され損ねると、第1の仮想マシンのOSが、次回、起動不能に陥るおそれがある。しかし、第1実施形態によれば、たとえ第2の仮想マシン2に故障が生じても、第2の仮想マシン2の再起動後(すなわち第2の仮想マシン2の復旧後)に、環境変数の最新の値が第1の記憶装置に反映される。 For example, if the latest value of the environment variable for designating the boot device fails to be stored in the first storage device, the OS of the first virtual machine may be unable to be booted next time. However, according to the first embodiment, even if a failure occurs in the second virtual machine 2, after the second virtual machine 2 is restarted (that is, after the recovery of the second virtual machine 2), the environment variable Is reflected in the first storage device.
 よって、第1実施形態によれば、たとえ第2の仮想マシン2に故障が生じても、第1の仮想マシンのOSの次回の起動(再起動を含む)に支障をきたさない。このような第1実施形態の効果について、図2を参照して以下に詳しく説明する。 Therefore, according to the first embodiment, even if a failure occurs in the second virtual machine 2, there is no problem in the next startup (including restart) of the OS of the first virtual machine. The effects of the first embodiment will be described in detail below with reference to FIG.
 図2は、比較例で生じ得る問題が解決されることを説明する図である。図2では、比較例による状況4Fが、第1実施形態による状況4Gおよび4Hと比較されている。状況4Fに示す比較例では、ブートローダ1の環境変数の保存のために第2のプロセッサ3は使われない。 FIG. 2 is a diagram for explaining that the problem that may occur in the comparative example is solved. In FIG. 2, the situation 4F according to the comparative example is compared with the situations 4G and 4H according to the first embodiment. In the comparative example shown in the situation 4F, the second processor 3 is not used for saving environment variables of the boot loader 1.
 ここで、説明の便宜上、時刻T_endに第1の仮想マシンにおいてOSが起動した後、再度ブートローダ1の実行が開始される時刻を、「T_next」と表記する。例えば、エラーの発生などの何らかの理由により、第1の仮想マシンが再起動される場合がある。この場合、時刻T_endより後の時刻T_nextにおいて、手動の操作にしたがって、あるいは、ハイパーバイザによる自動的な制御にしたがって、1台以上の第1のプロセッサのいずれかがブートローダ1の実行を開始する。 Here, for convenience of explanation, the time at which execution of the boot loader 1 is started again after the OS is started in the first virtual machine at time T_end is expressed as “T_next”. For example, the first virtual machine may be restarted for some reason such as the occurrence of an error. In this case, at time T_next after time T_end, one of the one or more first processors starts executing the boot loader 1 according to a manual operation or automatically controlled by the hypervisor.
 また、説明の便宜上、図2に付いての説明では、以下のように仮定する。
  ・ブートローダ1に少なくとも第1~第3の環境変数が定義されている。
  ・破線で示した時刻には、第1~第3の環境変数の値がそれぞれ「A3」、「B3」および「C3」である。
For convenience of explanation, the following explanation is assumed in FIG.
At least first to third environment variables are defined in the boot loader 1.
At the time indicated by the broken line, the values of the first to third environment variables are “A3”, “B3”, and “C3”, respectively.
 状況4Fと4Gは、いずれも、上記の不等式(A)が成り立つ状況の例である。より具体的には、状況4Fと4Gのいずれにおいても、不等式(A-2)が成り立つ。また、状況4Hは、上記の不等式(B)が成り立つ状況の例である。より具体的には、状況4Hでは、不等式(B-2)が成り立つ。 Situation 4F and 4G are both examples of situations where the above inequality (A) holds. More specifically, the inequality (A-2) holds in both situations 4F and 4G. The situation 4H is an example of a situation where the above inequality (B) holds. More specifically, in the situation 4H, the inequality (B-2) is established.
  T_start < T_down < T_end < T_boot < T_next    (A-2)
  T_start < T_down < T_boot < T_end < T_next    (B-2)
T_start <T_down <T_end <T_boot <T_next (A-2)
T_start <T_down <T_boot <T_end <T_next (B-2)
 比較例によれば、状況4Fに例示されるとおり、第2の仮想マシン2の動作中には、第1の環境変数の値が「A3」から「A4」に正常に更新される。しかし、第2の仮想マシン2が時刻T_downに動作しなくなった後に、ブートローダ1を実行中のプロセッサが第2の仮想マシン2に対して第2の環境変数の「B4」という値を保存するよう要求すると、「B4」という値はどこにも保存されない。 According to the comparative example, as illustrated in the situation 4F, during the operation of the second virtual machine 2, the value of the first environment variable is normally updated from “A3” to “A4”. However, after the second virtual machine 2 stops operating at time T_down, the processor executing the boot loader 1 stores the value of the second environment variable “B4” in the second virtual machine 2. When requested, the value “B4” is not stored anywhere.
 具体的には、比較例では、第1~第3の環境変数の「A4」、「B4」および「C3」という値を用いて時刻T_endに第1の仮想マシン上でOSが起動される。しかし、「B4」という値は、第1の記憶装置に保存されていないので、OSの起動後には揮発してしまう。 Specifically, in the comparative example, the OS is started on the first virtual machine at time T_end using the values of the first to third environment variables “A4”, “B4”, and “C3”. However, since the value “B4” is not stored in the first storage device, it volatilizes after the OS is started.
 そのため、比較例では、第2の仮想マシン2が時刻T_bootに再起動した後の時刻T_nextに第1の仮想マシン上で再びブートローダ1が呼び出されると、ブートローダ1は最新でない環境変数の値を取得してしまう。 Therefore, in the comparative example, when the boot loader 1 is called again on the first virtual machine at the time T_next after the second virtual machine 2 is restarted at the time T_boot, the boot loader 1 obtains the value of the environment variable that is not the latest. Resulting in.
 具体的には、1台以上の第1のプロセッサのうち、時刻T_nextでブートローダ1の実行を開始したプロセッサは、ブートローダ1のすべての環境変数の値を送るよう、第2の仮想マシン2に対して要求する。その結果、ブートローダ1を実行している第1のプロセッサは、1台以上の第1のプロセッサのうちで時刻T_nextにおいて第2の仮想マシン2を実行しているプロセッサから、第1の記憶装置に保存されている第1~第3の環境変数の値を取得する。 Specifically, among the one or more first processors, the processor that started executing the boot loader 1 at time T_next sends the values of all environment variables of the boot loader 1 to the second virtual machine 2. To request. As a result, the first processor executing the boot loader 1 transfers from the processor executing the second virtual machine 2 at time T_next among the one or more first processors to the first storage device. Get the saved values of the first to third environment variables.
 状況4Fでは、以下の2つの値は、時刻T_nextにおいて正しく取得される。
  ・第2の仮想マシン2の動作中に更新された第1の環境変数の「A4」という値。
  ・破線で示した時刻以降は更新されていない第3の環境変数の「C3」という値。
In situation 4F, the following two values are correctly obtained at time T_next.
The value “A4” of the first environment variable updated during the operation of the second virtual machine 2.
The value “C3” of the third environment variable that has not been updated after the time indicated by the broken line.
 しかし、第2の仮想マシン2が動作していない間にブートローダ1から更新を要求された第2の環境変数の「B4」という値は、状況4Fでは、第1の記憶装置に保存されていない。つまり、第1の記憶装置は、「B3」という古い(obsolete)値を保持している。よって、時刻T_nextでブートローダ1の実行を開始したプロセッサは、第2の環境変数の「B4」という最新の値を取得することができず、古い「B3」という値を取得してしまう。 However, the value “B4” of the second environment variable requested to be updated by the boot loader 1 while the second virtual machine 2 is not operating is not stored in the first storage device in the situation 4F. . That is, the first storage device holds an obsolete value of “B3”. Therefore, the processor that has started execution of the boot loader 1 at time T_next cannot acquire the latest value “B4” of the second environment variable, and acquires the old value “B3”.
 ここで、時刻T_nextの後には、第2の環境変数の値を変更するための処理が行われないものと想定する。この想定のもとでは、時刻T_nextより後のある時点におけるブートローダ1からのOSの起動の際には、第2の環境変数の古い「B3」という値が用いられる。すると、第2の環境変数の値が古くて不適切なせいで、第1の仮想マシンのOSが起動不能に陥る可能性がある。 Here, it is assumed that the process for changing the value of the second environment variable is not performed after the time T_next. Under this assumption, when the OS is booted from the boot loader 1 at a certain time after the time T_next, the old value “B3” of the second environment variable is used. Then, there is a possibility that the OS of the first virtual machine may become unbootable because the value of the second environment variable is old and inappropriate.
 例えば、第2の環境変数がOSのブートデバイスを示す場合などに、OSが起動不能に陥る可能性がある。また、環境変数の値が古いと、たとえOSが起動可能であっても、起動したOSは、ユーザが意図したようには動作しない可能性がある。よって、たとえOS自体が起動可能であっても、環境変数の値が古いと、広い意味ではOSの起動に支障をきたすことがある。 For example, when the second environment variable indicates the OS boot device, the OS may be unable to start. Further, if the value of the environment variable is old, even if the OS can be started, the started OS may not operate as intended by the user. Therefore, even if the OS itself can be started, if the value of the environment variable is old, the OS may be hindered in a broad sense.
 以上のように、比較例では、「第2の仮想マシン2が故障すると、ブートローダ1の環境変数の更新が第1の記憶装置に反映されず、結果として、第1の仮想マシンのOSの将来の起動に支障をきたし得る」という問題が生じることがある。それに対して、第1実施形態では、状況4Gと4Hに示すように、そのような問題は生じない。具体的には以下のとおりである。 As described above, in the comparative example, “if the second virtual machine 2 fails, the update of the environment variable of the boot loader 1 is not reflected in the first storage device, and as a result, the future of the OS of the first virtual machine May cause problems in starting up. " On the other hand, in the first embodiment, such a problem does not occur as shown in the situations 4G and 4H. Specifically, it is as follows.
 状況4Gは状況4Aと類似である。つまり、第2の仮想マシン2の動作中には、第1の環境変数の値が「A3」から「A4」へと正常に更新され、更新後の「A4」という値は第1の記憶装置に保存される。また、第2の仮想マシン2が動作していない間にブートローダ1から更新を要求された第2の環境変数に関しても、更新後の「B4」という値が、第2の仮想マシン2の復旧後に第1の記憶装置に反映される。 Situation 4G is similar to Situation 4A. That is, during the operation of the second virtual machine 2, the value of the first environment variable is normally updated from “A3” to “A4”, and the updated value “A4” is the first storage device. Saved in. Also, for the second environment variable requested to be updated by the boot loader 1 while the second virtual machine 2 is not operating, the updated value “B4” is the value after the second virtual machine 2 is restored. It is reflected in the first storage device.
 つまり、状況4Aと同様に状況4Gにおいても、ブートローダ1から第2のプロセッサ3への要求に応じて、「B4」という最新の値は、一旦、第2の記憶装置に保存される。その後、時刻T_bootに第2の仮想マシン2が復旧すると、「B4」という最新の値は、第2の記憶装置から読み出され、第2のプロセッサ3から、第2の仮想マシン2を実行中の第1のプロセッサへと送られ、第1の記憶装置に保存される。 That is, in the situation 4G as well as the situation 4A, the latest value “B4” is temporarily stored in the second storage device in response to a request from the boot loader 1 to the second processor 3. Thereafter, when the second virtual machine 2 recovers at time T_boot, the latest value “B4” is read from the second storage device, and the second virtual machine 2 is being executed from the second processor 3. To the first processor and stored in the first storage device.
 したがって、時刻T_bootよりも後の時刻T_nextにおいて再びブートローダ1が呼び出されると、1台以上の第1のプロセッサのうちでブートローダ1を実行するプロセッサは、各環境変数の最新の値を第2の仮想マシン2から取得することができる。つまり、時刻T_nextでブートローダ1の実行を開始した第1のプロセッサは、「A4」、「B4」および「C3」という最新の値を取得することができる。 Therefore, when the boot loader 1 is called again at time T_next after the time T_boot, the processor that executes the boot loader 1 among the one or more first processors sets the latest value of each environment variable to the second virtual value. It can be obtained from the machine 2. That is, the first processor that has started execution of the boot loader 1 at time T_next can obtain the latest values “A4”, “B4”, and “C3”.
 その結果、時刻T_nextより後のある時点におけるブートローダ1からのOSの起動の際には、状況4Fで生じ得るような問題は生じない。このように、第1実施形態によれば、比較例で生じ得る問題が解決する。すなわち、第1実施形態によれば、たとえ第2の仮想マシン2が故障などにより一時的に動作しなくなっても、第1の仮想マシンのOSの将来の起動には支障をきたさない。 As a result, there is no problem that may occur in the situation 4F when the OS is booted from the boot loader 1 at a certain time after the time T_next. Thus, according to the first embodiment, problems that may occur in the comparative example are solved. That is, according to the first embodiment, even if the second virtual machine 2 temporarily does not operate due to a failure or the like, it will not hinder the future startup of the OS of the first virtual machine.
 また、状況4Hにおいても、状況4Fで生じ得るような問題は回避される。具体的には次のとおりである。 Also, in the situation 4H, problems that may occur in the situation 4F are avoided. Specifically, it is as follows.
 状況4Hは状況4Bと類似である。つまり、第2の仮想マシン2の動作中には、第1の環境変数の値が「A3」から「A4」へと正常に更新され、更新後の「A4」という値は第1の記憶装置に保存される。また、第2の仮想マシン2が動作していない間にブートローダ1から更新を要求された第2の環境変数に関しても、更新後の「B4」という値が、第2の仮想マシン2の復旧後に第1の記憶装置に反映される。 Situation 4H is similar to Situation 4B. That is, during the operation of the second virtual machine 2, the value of the first environment variable is normally updated from “A3” to “A4”, and the updated value “A4” is the first storage device. Saved in. Also, for the second environment variable requested to be updated by the boot loader 1 while the second virtual machine 2 is not operating, the updated value “B4” is the value after the second virtual machine 2 is restored. It is reflected in the first storage device.
 つまり、状況4Bと同様に状況4Hにおいても、ブートローダ1から第2のプロセッサ3への要求に応じて、「B4」という最新の値は、一旦、第2の記憶装置に保存される。その後、時刻T_bootに第2の仮想マシン2が復旧すると、この時点でブートローダ1はまだ動作中である。そのため、状況4Hでは、「B4」という最新の値は、ブートローダ1を実行中の第1のプロセッサから、第2の仮想マシン2を実行中の第1のプロセッサへと送られ、第1の記憶装置に保存される。もちろん、1台の物理プロセッサが、偶然、ブートローダ1と第2の仮想マシン2の双方を実行していてもよい。 That is, in the situation 4H as in the situation 4B, the latest value “B4” is temporarily stored in the second storage device in response to a request from the boot loader 1 to the second processor 3. Thereafter, when the second virtual machine 2 is restored at time T_boot, the boot loader 1 is still operating at this point. Therefore, in the situation 4H, the latest value “B4” is sent from the first processor that is executing the boot loader 1 to the first processor that is executing the second virtual machine 2, and is stored in the first memory. Stored in the device. Of course, one physical processor may accidentally execute both the boot loader 1 and the second virtual machine 2.
 また、状況4Bと同様に状況4Hにおいても、第2の仮想マシン2の再起動後に、第3の環境変数の値が「C3」から「C4」へと正常に更新され、更新後の「C4」という値は第1の記憶装置に保存される。 Similarly to the situation 4B, in the situation 4H, after the second virtual machine 2 is restarted, the value of the third environment variable is normally updated from “C3” to “C4”, and the updated “C4” Is stored in the first storage device.
 したがって、時刻T_bootよりも後の時刻T_nextにおいて再びブートローダ1が呼び出されると、1台以上の第1のプロセッサのうちでブートローダ1を実行するプロセッサは、各環境変数の最新の値を第2の仮想マシン2から取得することができる。つまり、時刻T_nextでブートローダ1を実行中の第1のプロセッサは、「A4」、「B4」および「C4」という最新の値を取得することができる。 Therefore, when the boot loader 1 is called again at time T_next after the time T_boot, the processor that executes the boot loader 1 among the one or more first processors sets the latest value of each environment variable to the second virtual value. It can be obtained from the machine 2. That is, the first processor that is executing the boot loader 1 at time T_next can acquire the latest values “A4”, “B4”, and “C4”.
 その結果、時刻T_nextより後のある時点におけるブートローダ1からのOSの起動の際には、状況4Fで生じ得るような問題は生じない。このように、第1実施形態によれば、比較例で生じ得る問題が生じない。 As a result, there is no problem that may occur in the situation 4F when the OS is booted from the boot loader 1 at a certain time after the time T_next. Thus, according to 1st Embodiment, the problem which may arise in a comparative example does not arise.
 続いて、図1~2を参照して説明した処理を行うコンピュータの具体例について、図3~4を参照して説明する。
 図3は、コンピュータのハードウェア構成図である。図3のコンピュータ10は、2枚のシステムボード20と30を含む。もちろん、システムボードの数は1枚でもよいし、3枚以上でもよい。システムボード20と30は、クロスバスイッチ(crossbar switch)40を介して互いに接続されている。以下では、クロスバスイッチを「XB」と略す。
Next, a specific example of a computer that performs the processing described with reference to FIGS. 1 and 2 will be described with reference to FIGS.
FIG. 3 is a hardware configuration diagram of the computer. The computer 10 in FIG. 3 includes two system boards 20 and 30. Of course, the number of system boards may be one or three or more. The system boards 20 and 30 are connected to each other via a crossbar switch 40. Hereinafter, the crossbar switch is abbreviated as “XB”.
 また、コンピュータ10は、システムボード20に接続されたSP50と、システムボード30に接続されたSP60を含む。図3の例では、各システムボードに対して1台のSPがあるが、1台のSPが複数のシステムボードに接続されていてもよい。 Further, the computer 10 includes an SP 50 connected to the system board 20 and an SP 60 connected to the system board 30. In the example of FIG. 3, there is one SP for each system board, but one SP may be connected to a plurality of system boards.
 システムボード20は、メモリ21a~21dと、CPU22a~22bと、HDD(Hard Disk Drive)23a~23cを含む。
 また、システムボード20は、システムボード20とSP50との間の接続のためのインタフェイス回路であるSP I/F24を含む(「I/F」はinterfaceの略)。
The system board 20 includes memories 21a to 21d, CPUs 22a to 22b, and HDDs (Hard Disk Drives) 23a to 23c.
The system board 20 includes an SP I / F 24 that is an interface circuit for connection between the system board 20 and the SP 50 (“I / F” is an abbreviation of interface).
 システムボード20はさらに、コンピュータ10以外の装置との接続のためのハードウェアも有する。図3の例では、具体的には、システムボード20は、LAN(Local Area Network)ポート25、SAS(Serial Attached SCSI; SCSIはSmall Computer System Interfaceの略)ポート26、およびUSB(Universal Serial Bus)ポート27を有する。 The system board 20 further includes hardware for connection to devices other than the computer 10. In the example of FIG. 3, specifically, the system board 20 includes a LAN (Local Area Network) port 25, a SAS (Serial Attached SCSI), and SCSI (abbreviation for Small Computer System Interface) port 26, and a USB (Universal Serial Bus). It has a port 27.
 また、システムボード20は、XB40と接続されたシステムコントローラ(以下「SC」と略す)28を有する。SC28は、メモリ21a~21d、CPU22a~22b、HDD23a~23d、およびSP I/F24の各々とも接続されている。 Further, the system board 20 includes a system controller (hereinafter abbreviated as “SC”) 28 connected to the XB 40. The SC 28 is also connected to each of the memories 21a to 21d, the CPUs 22a to 22b, the HDDs 23a to 23d, and the SP I / F 24.
 メモリ21a~21dのそれぞれは、例えばDIMM(Dual Inline Memory Module)でもよい。図3の例では、システムボード20が4つのメモリ21a~21dを有するが、メモリの数は任意である。 Each of the memories 21a to 21d may be, for example, a DIMM (Dual Inline Memory Memory Module). In the example of FIG. 3, the system board 20 includes four memories 21a to 21d, but the number of memories is arbitrary.
 CPU22a~22bのそれぞれは、シングルコアまたはマルチコアのプロセッサである。図3の例では、システムボード20が2つのCPU22a~22bを有するが、CPUの数は任意である。 Each of the CPUs 22a to 22b is a single-core or multi-core processor. In the example of FIG. 3, the system board 20 has two CPUs 22a to 22b, but the number of CPUs is arbitrary.
 図3の例では、不揮発性記憶装置としてHDD23a~23cが使われているが、HDDとともに(あるいは、HDDの代わりに)、1台以上のSSD(Solid-State Drive)が使われてもよい。図3の例では、システムボード20が3つのHDD23a~23cを有するが、HDDの数は任意であり、SSDの数も任意である。 In the example of FIG. 3, HDDs 23a to 23c are used as nonvolatile storage devices, but one or more SSDs (Solid-State Drives) may be used together with the HDD (or instead of the HDD). In the example of FIG. 3, the system board 20 includes three HDDs 23a to 23c, but the number of HDDs is arbitrary, and the number of SSDs is also arbitrary.
 LANポート25は、具体的には、例えばギガビットイーサネットポートであってもよい(「イーサネット」は登録商標)。なお、図3では省略されているが、LANポート25に対応して、「PHYチップ」や「MACチップ」などと呼ばれるネットワーク処理回路も、システムボード20内に設けられる。PHYチップは、物理層の処理を行う回路であり、MACチップは、MAC(Media Access Control)副層の処理を行う回路である。 Specifically, the LAN port 25 may be, for example, a Gigabit Ethernet port (“Ethernet” is a registered trademark). Although omitted in FIG. 3, a network processing circuit called “PHY chip” or “MAC chip” corresponding to the LAN port 25 is also provided in the system board 20. The PHY chip is a circuit that performs physical layer processing, and the MAC chip is a circuit that performs processing of a MAC (Media Access Control) sublayer.
 同様に、SASポート26やUSBポート27にそれぞれ対応するコントローラ回路も、システムボード20内に設けられる。これらのネットワーク処理回路およびコントローラ回路は、SC28に接続されていてもよい。 Similarly, controller circuits respectively corresponding to the SAS port 26 and the USB port 27 are also provided in the system board 20. These network processing circuit and controller circuit may be connected to the SC 28.
 コンピュータ10はLANポート25を介してネットワークに接続されていてもよい。また、システムボード20内のHDD23a~23cとともに(あるいは、HDD23a~23cの代わりに)、ネットワークとLANポート25を介して、外部のHDDが、コンピュータ10に接続されていてもよい。同様に、ネットワークとLANポート25を介して、外部のSSDが、コンピュータ10に接続されていてもよい。 The computer 10 may be connected to the network via the LAN port 25. Further, an external HDD may be connected to the computer 10 via the network and the LAN port 25 together with the HDDs 23a to 23c in the system board 20 (or instead of the HDDs 23a to 23c). Similarly, an external SSD may be connected to the computer 10 via the network and the LAN port 25.
 同様に、HDD23a~23cとともに(あるいは、HDD23a~23cの代わりに)、SASポート26を介して、外部のHDDと外部のSSDの一方または双方が、コンピュータ10に接続されていてもよい。また、HDD23a~23cとともに(あるいは、HDD23a~23cの代わりに)、USBポート27を介して、外部のHDDと外部のSSDの一方または双方が、コンピュータ10に接続されていてもよい。 Similarly, one or both of the external HDD and the external SSD may be connected to the computer 10 via the SAS port 26 together with the HDDs 23a to 23c (or instead of the HDDs 23a to 23c). In addition to the HDDs 23a to 23c (or instead of the HDDs 23a to 23c), one or both of the external HDD and the external SSD may be connected to the computer 10 via the USB port 27.
 もちろん、コンピュータ10と他の装置との接続のために、LANポート25、SASポート26、USBポート27以外のインタフェイスが使われてもよい。例えば、システムボード20は、ファイバチャネルベースのSAN(Storage Area Network)にコンピュータ10を接続するための、ホストバスアダプタを有していてもよい。あるいは、LANポート25、SASポート26、USBポート27のうちの1つ以上が省略されてもよい。 Of course, an interface other than the LAN port 25, the SAS port 26, and the USB port 27 may be used for connection between the computer 10 and another device. For example, the system board 20 may have a host bus adapter for connecting the computer 10 to a Fiber Channel-based SAN (Storage Area Network). Alternatively, one or more of the LAN port 25, the SAS port 26, and the USB port 27 may be omitted.
 SC28は、システムボード20内のモジュール間の通信を制御する。また、SC28は、XB40を介したシステムボード20と30の間の通信のためのインタフェイス機能も提供する。 SC 28 controls communication between modules in the system board 20. The SC 28 also provides an interface function for communication between the system boards 20 and 30 via the XB 40.
 システムボード30の構成はシステムボード20と同様である。具体的には、システムボード30は、メモリ31a~31dと、CPU32a~32bと、HDD33a~33cを有する。さらに、システムボード30は、システムボード30とSP60との間の接続のためのインタフェイス回路であるSP I/F34を有する。また、システムボード30は、LANポート35、SASポート36、およびUSBポート37も有する。そして、システムボード30内のモジュールはSC38に接続されており、SC38はXB40にも接続されている。 The configuration of the system board 30 is the same as that of the system board 20. Specifically, the system board 30 includes memories 31a to 31d, CPUs 32a to 32b, and HDDs 33a to 33c. Further, the system board 30 has an SP I / F 34 that is an interface circuit for connection between the system board 30 and the SP 60. The system board 30 also has a LAN port 35, a SAS port 36, and a USB port 37. The modules in the system board 30 are connected to the SC 38, and the SC 38 is also connected to the XB 40.
 実施形態によっては、システムボード20と30の構成が異なっていてもよい。例えば、CPUやメモリの数がシステムボード20と30で異なっていてもよい。 Depending on the embodiment, the configurations of the system boards 20 and 30 may be different. For example, the number of CPUs and memories may be different between the system boards 20 and 30.
 また、図3の例では、システムボード20と30がそれぞれ1台以上のHDDを含む。しかし、実施形態によっては、コンピュータ10は、システムボード20と30の外部にあって、かつ、XB40に接続されているような、1台以上の共有HDDを有していてもよい。各共有HDDは、システムボード20と30の間で共有される。具体的には、各共有HDDは、XB40を介してシステムボード20からもアクセスされ、XB40を介してシステムボード30からもアクセスされる。 Further, in the example of FIG. 3, each of the system boards 20 and 30 includes one or more HDDs. However, in some embodiments, the computer 10 may include one or more shared HDDs that are external to the system boards 20 and 30 and connected to the XB 40. Each shared HDD is shared between the system boards 20 and 30. Specifically, each shared HDD is also accessed from the system board 20 via the XB 40 and is also accessed from the system board 30 via the XB 40.
 また、図3の例では、システムボード20と30のそれぞれが、コンピュータ10と他の装置との接続のためのハードウェア要素(例えばLANポートなど)を含む。しかし、実施形態によっては、コンピュータ10と他の装置との接続のためのハードウェア要素は、システムボード20と30の間で共有されてもよい。例えば、LANインタフェイス回路、SASコントローラ、USBコントローラなどが、システムボード20と30の外部に設けられ、かつ、XB40に接続されていてもよい。 Further, in the example of FIG. 3, each of the system boards 20 and 30 includes hardware elements (for example, a LAN port) for connecting the computer 10 and other devices. However, in some embodiments, hardware elements for connection between the computer 10 and other devices may be shared between the system boards 20 and 30. For example, a LAN interface circuit, a SAS controller, a USB controller, or the like may be provided outside the system boards 20 and 30 and connected to the XB 40.
 さて、SP50は、SP I/F24を介してシステムボード20に接続されており、システムボード20の物理ハードウェアの監視などの処理を行う。例えば、SP50は、電圧や温度を監視してもよい。例えば、電圧や温度に関する信号が、CPU22aからSC28とSP I/F24を介してSP50に送られてもよく、SP50は、当該信号に基づいて、CPU22aの電圧や温度を監視してもよい。 The SP 50 is connected to the system board 20 via the SP I / F 24 and performs processing such as monitoring of the physical hardware of the system board 20. For example, the SP 50 may monitor voltage and temperature. For example, a signal related to voltage and temperature may be sent from the CPU 22a to the SP 50 via the SC 28 and SP I / F 24, and the SP 50 may monitor the voltage and temperature of the CPU 22a based on the signal.
 SP50は、CPU51と、フラッシュメモリなどの不揮発性メモリ52と、メモリ53を有し、これらは互いにバスで接続されている。メモリ53は、具体的には、揮発性のDRAM(Dynamic Random Access Memory)である。また、SP50は、USBポート54、LANポート55、およびシリアルポート56を有するが、これらのポートのうち1つ以上が省略されていてもよい。SP50は、USBポート54、LANポート55、またはシリアルポート56を介して接続された他の装置に対して、システムボード20を監視した結果を通報してもよい。 The SP 50 includes a CPU 51, a nonvolatile memory 52 such as a flash memory, and a memory 53, which are connected to each other via a bus. The memory 53 is specifically a volatile DRAM (Dynamic Random Access Memory). The SP 50 includes a USB port 54, a LAN port 55, and a serial port 56, but one or more of these ports may be omitted. The SP 50 may report the result of monitoring the system board 20 to other devices connected via the USB port 54, the LAN port 55, or the serial port 56.
 同様に、SP60は、SP I/F34を介してシステムボード30に接続されている。また、SP60は、互いにバスで接続されたCPU61、不揮発性メモリ62、およびメモリ63を有する。SP60は、USBポート64、LANポート65、およびシリアルポート66も有する。 Similarly, the SP 60 is connected to the system board 30 via the SP I / F 34. The SP 60 includes a CPU 61, a nonvolatile memory 62, and a memory 63 that are connected to each other via a bus. The SP 60 also has a USB port 64, a LAN port 65, and a serial port 66.
 以上のように構成されたコンピュータ10において、ハイパーバイザ、および、ハイパーバイザ上の仮想マシンの実行には、CPU22a~22bと32a~32bが使われる。つまり、図1に関して説明した「1台以上の第1のプロセッサ」の具体例は、図3では、4つのCPU22a~22bと32a~32bである。 In the computer 10 configured as described above, the CPUs 22a to 22b and 32a to 32b are used to execute the hypervisor and the virtual machines on the hypervisor. That is, the specific example of “one or more first processors” described with reference to FIG. 1 is four CPUs 22a to 22b and 32a to 32b in FIG.
 なお、ハイパーバイザは、ある1つのCPUコアにより実行されてもよいし、2つ以上のCPUコアにより実行されてもよい。また、個々の仮想マシンも、ある1つのCPUコアにより実行されてもよいし、2つ以上のCPUコアにより実行されてもよい。 Note that the hypervisor may be executed by a certain CPU core, or may be executed by two or more CPU cores. Each virtual machine may also be executed by one CPU core, or may be executed by two or more CPU cores.
 ある時点において、ハイパーバイザに割り当てられているCPUコアは、1つまたは複数の仮想マシンにも割り当てられていてもよいし、どの仮想マシンにも割り当てられていなくてもよい。また、ある時点において、第1の仮想マシンに割り当てられているCPUコアは、第2の仮想マシンにも割り当てられていてもよいし、第2の仮想マシンには割り当てられていなくてもよい。換言すれば、ある時点において、第2の仮想マシンに割り当てられているCPUコアは、第1の仮想マシンにも割り当てられていてもよいし、第1の仮想マシンには割り当てられていなくてもよい。 At some point, the CPU core assigned to the hypervisor may be assigned to one or a plurality of virtual machines or may not be assigned to any virtual machine. Further, at a certain point in time, the CPU core assigned to the first virtual machine may be assigned to the second virtual machine or may not be assigned to the second virtual machine. In other words, the CPU core assigned to the second virtual machine at a certain point in time may be assigned to the first virtual machine or may not be assigned to the first virtual machine. Good.
 以上のように、ハイパーバイザ、および、ハイパーバイザ上の個々の仮想マシンへの、CPUコアの割り当てには、様々なバリエーションがあり得る。しかし、「『1台以上の第1のプロセッサ』が、全体として、ハイパーバイザ、および、ハイパーバイザ上の複数の仮想マシンを実行する」ということは、バリエーションによらず共通である。 As described above, there are various variations in the assignment of CPU cores to the hypervisor and individual virtual machines on the hypervisor. However, ““ one or more first processors ”as a whole executes the hypervisor and a plurality of virtual machines on the hypervisor” is common regardless of variations.
 他方、CPU51と61は、ハイパーバイザも実行しないし、ハイパーバイザ上の仮想マシンも実行しない。つまり、図1に関して説明した「第2のプロセッサ」の具体例は、図3では、CPU51と61である。 On the other hand, the CPUs 51 and 61 do not execute the hypervisor nor do the virtual machines on the hypervisor. That is, the specific examples of the “second processor” described with reference to FIG. 1 are the CPUs 51 and 61 in FIG.
 例えば、CPU51は、物理的なCPU22aまたは22bに何らかの異常(例えば温度または電圧の異常)が発生すると、SP I/F24を介して異常を検出してもよい。このように、CPU51は、物理的なCPU22aと22bを認識して、物理的なCPU22aと22bを監視してもよい。しかし、CPU51は、仮想マシンを認識する必要はない。CPU61もCPU51と類似である。 For example, the CPU 51 may detect an abnormality via the SP I / F 24 when any abnormality (for example, temperature or voltage abnormality) occurs in the physical CPU 22a or 22b. As described above, the CPU 51 may recognize the physical CPUs 22a and 22b and monitor the physical CPUs 22a and 22b. However, the CPU 51 does not need to recognize the virtual machine. The CPU 61 is similar to the CPU 51.
 さて、図4は、コンピュータと他の装置との接続を例示する図である。図3のコンピュータ10は、入出力装置71と接続されていてもよい。また、コンピュータ10は、記憶媒体72の駆動装置73と接続されていてもよい。 FIG. 4 is a diagram illustrating the connection between the computer and another device. The computer 10 in FIG. 3 may be connected to the input / output device 71. Further, the computer 10 may be connected to the drive device 73 of the storage medium 72.
 入出力装置71は、入力装置、出力装置、またはその双方である。入力装置は、例えば、キーボード、ポインティングデバイス、マイク、またはその組み合わせである。ポインティングデバイスは、例えば、マウス、トラックパッド、タッチスクリーンのいずれであってもよい。出力装置は、例えば、ディスプレイ、プリンタ、スピーカ、またはその組み合わせである。ディスプレイがタッチスクリーンであってもよい。 The input / output device 71 is an input device, an output device, or both. The input device is, for example, a keyboard, a pointing device, a microphone, or a combination thereof. The pointing device may be, for example, a mouse, a track pad, or a touch screen. The output device is, for example, a display, a printer, a speaker, or a combination thereof. The display may be a touch screen.
 記憶媒体72は、コンピュータ読み取り可能な有形の(tangible)媒体であり、信号搬送波のような一時的な(transitory)媒体ではない。例えば、記憶媒体72は、CD(Compact Disc)やDVD(Digital Versatile Disk)のような光ディスクでもよいし、光磁気ディスクでもよいし、磁気ディスクでもよいし、半導体メモリカードでもよい。 The storage medium 72 is a computer-readable tangible medium and not a transitory medium such as a signal carrier wave. For example, the storage medium 72 may be an optical disc such as a CD (Compact Disc) or a DVD (Digital Versatile Disc), a magneto-optical disc, a magnetic disc, or a semiconductor memory card.
 そして、コンピュータ10は、LANポート25または35を介して、ネットワーク74に接続されていてもよい。ネットワーク74は、具体的には、LAN、WAN(Wide Area Network)、インターネット、またはそれらの組み合わせであってもよい。 The computer 10 may be connected to the network 74 via the LAN port 25 or 35. Specifically, the network 74 may be a LAN, a WAN (Wide Area Network), the Internet, or a combination thereof.
 ネットワーク74にはさらに端末75が接続されていてもよい。端末75は、例えば、PC(Personal Computer)でも、タブレット端末でも、スマートフォンでもよい。コンピュータ10は、端末75から入力されるコマンドを、ネットワーク74を介して受け取ることができる。例えば、管理者は、ブートローダ1に与えるためのコマンドや、ハイパーバイザに与えるためのコマンドなど、様々なコマンドを、端末75から入力してもよい。 Further, a terminal 75 may be connected to the network 74. The terminal 75 may be, for example, a PC (Personal Computer), a tablet terminal, or a smartphone. The computer 10 can receive a command input from the terminal 75 via the network 74. For example, the administrator may input various commands from the terminal 75 such as a command to be given to the boot loader 1 and a command to be given to the hypervisor.
 ところで、図1に関して説明した方法をコンピュータ10に実行させるためのプログラム(具体的には、下記のようないくつかのプログラム)は、コンピュータ10にプレインストールされていてもよい。 Incidentally, a program (specifically, several programs as described below) for causing the computer 10 to execute the method described with reference to FIG. 1 may be preinstalled in the computer 10.
  ・ブートローダ1のプログラム。
  ・第2の仮想マシン2においてブートローダ1の環境変数を管理するためのプログラム(例えば、第2の仮想マシン2のOSに組み込まれるプログラムモジュール)。
  ・SP50のCPU51とSP60のCPU61に、環境変数に関する処理をそれぞれ実行させるためのプログラム。
-Boot loader 1 program.
A program for managing environment variables of the boot loader 1 in the second virtual machine 2 (for example, a program module incorporated in the OS of the second virtual machine 2).
A program for causing the CPU 51 of SP50 and the CPU 61 of SP60 to execute processing related to environment variables.
 これらのプログラムは、具体的には、HDD23a~23c、33a~33cのいずれか、不揮発性メモリ52もしくは62、またはその組み合わせに、プレインストールされていてもよい。 Specifically, these programs may be preinstalled in any of the HDDs 23a to 23c and 33a to 33c, the nonvolatile memory 52 or 62, or a combination thereof.
 あるいは、これらのプログラムは、記憶媒体72に記憶されて提供されてもよい。コンピュータ10は、駆動装置73にセットされた記憶媒体72からプログラムを読み込み、HDD23a~23c、33a~33cのいずれか、不揮発性メモリ52もしくは62、またはその組み合わせにプログラムをコピーしてもよい。 Alternatively, these programs may be stored in the storage medium 72 and provided. The computer 10 may read the program from the storage medium 72 set in the drive device 73 and copy the program to any of the HDDs 23a to 23c and 33a to 33c, the nonvolatile memory 52 or 62, or a combination thereof.
 あるいは、これらのプログラムは、プログラム提供者76により提供されてもよい。プログラム提供者76は、具体的にはネットワーク74に接続された他のコンピュータである。 Alternatively, these programs may be provided by the program provider 76. Specifically, the program provider 76 is another computer connected to the network 74.
 コンピュータ10は、プログラム提供者76からネットワーク74を介してプログラムをダウンロードしてもよい。ダウンロードされたプログラムも、コンピュータ10内の適宜の記憶装置(つまり、HDD23a~23c、33a~33cのいずれか、不揮発性メモリ52もしくは62、またはその組み合わせ)に記憶される。 The computer 10 may download the program from the program provider 76 via the network 74. The downloaded program is also stored in an appropriate storage device in the computer 10 (that is, any of the HDDs 23a to 23c and 33a to 33c, the nonvolatile memory 52 or 62, or a combination thereof).
 いずれにせよ、第1のプロセッサとしてのCPU22a、22b、32a、32bの各々は、プログラムをメモリ(具体的にはメモリ21a~21d、31a~31dのいずれか)にロードし、プログラムを実行する。また、第2のプロセッサとしてのCPU51は、プログラムをメモリ53にロードし、プログラムを実行する。同様に、第2のプロセッサとしてのCPU61も、プログラムをメモリ63にロードし、プログラムを実行する。以上のように、図1に関して説明した方法は、プログラムを実行するいくつかのCPUにより実現される。 In any case, each of the CPUs 22a, 22b, 32a, 32b as the first processor loads the program into the memory (specifically, any one of the memories 21a-21d, 31a-31d) and executes the program. Further, the CPU 51 as the second processor loads the program into the memory 53 and executes the program. Similarly, the CPU 61 as the second processor also loads the program into the memory 63 and executes the program. As described above, the method described with reference to FIG. 1 is realized by several CPUs that execute programs.
 続いて、図5~12を参照して第2実施形態について説明する。なお、図1~4に関する説明は、第2実施形態にも当てはまるので、以下では適宜図1~4も参照する。
 図5は、第2実施形態のコンピュータのブロック構成図である。図5のコンピュータ100は、1つ以上の物理的なパーティションを含む。図5の例では、コンピュータ100は2つのパーティション110と120を含む。
Next, the second embodiment will be described with reference to FIGS. 1 to 4 also applies to the second embodiment, and therefore FIGS. 1 to 4 are also referred to as appropriate below.
FIG. 5 is a block diagram of a computer according to the second embodiment. The computer 100 of FIG. 5 includes one or more physical partitions. In the example of FIG. 5, the computer 100 includes two partitions 110 and 120.
 また、各パーティションは、1つの制御ドメインと、1つ以上のゲストドメインを含む。図5の例では、パーティション110は、制御ドメイン130とゲストドメイン140とゲストドメイン150を含む。パーティション120の詳細は図5では省略されているが、パーティション120もパーティション110と類似である。 Each partition includes one control domain and one or more guest domains. In the example of FIG. 5, the partition 110 includes a control domain 130, a guest domain 140, and a guest domain 150. Although details of the partition 120 are omitted in FIG. 5, the partition 120 is also similar to the partition 110.
 制御ドメイン130とゲストドメイン140とゲストドメイン150は、いずれも、ハイパーバイザ160上で動作する仮想マシンの具体例である。制御ドメイン130とゲストドメイン140とゲストドメイン150は、いずれも、「論理ドメイン」とも呼ばれる。 The control domain 130, the guest domain 140, and the guest domain 150 are all specific examples of virtual machines that operate on the hypervisor 160. The control domain 130, the guest domain 140, and the guest domain 150 are all called “logical domains”.
 制御ドメイン130は、図1~2に関して説明した第2の仮想マシン2(すなわち、他の仮想マシンのブートローダ1の環境変数を管理する機能を有する、特定の仮想マシン)の具体例である。ゲストドメイン140と150は、いずれも、図1~2に関して説明した第1の仮想マシンの具体例である。 The control domain 130 is a specific example of the second virtual machine 2 described with reference to FIGS. 1 and 2 (that is, a specific virtual machine having a function of managing environment variables of the boot loader 1 of other virtual machines). Guest domains 140 and 150 are both specific examples of the first virtual machine described with reference to FIGS.
 第2実施形態では、図1~2のブートローダ1の具体例として、OBP(OpenBoot PROM;PROMはProgrammable Read-Only Memoryの略)が使われる。ゲストドメイン140と150の各々においてOBPが使われるだけでなく、制御ドメイン130においてもOBPが使われる。 In the second embodiment, OBP (OpenBoot PROM; PROM is Programmable Read-Only Memory) is used as a specific example of the boot loader 1 in FIGS. Not only OBP is used in each of the guest domains 140 and 150, but also OBP is used in the control domain 130.
 OBPはOpen Firmwareの一実装例である。以下では、OBPで使われる環境変数を「OBP環境変数」という。 OBP is an implementation example of Open Firmware. Hereinafter, environment variables used in OBP are referred to as “OBP environment variables”.
 なお、図5には1つのハイパーバイザ160のみが図示されている。しかし、パーティションごとに別々のハイパーバイザ160が実行されてもよい。 In FIG. 5, only one hypervisor 160 is shown. However, a separate hypervisor 160 may be executed for each partition.
 制御ドメイン130は、具体的には、環境変数保存部131と、OBP状態管理部132と、通信部133と、設定部134と、更新部135を含む。また、ゲストドメイン140は、具体的には、OS起動部141と、環境変数管理部142と、通信部143を含む。ゲストドメイン150の詳細は図5では省略されているが、ゲストドメイン150もゲストドメイン140と類似である。 Specifically, the control domain 130 includes an environment variable storage unit 131, an OBP state management unit 132, a communication unit 133, a setting unit 134, and an update unit 135. The guest domain 140 specifically includes an OS activation unit 141, an environment variable management unit 142, and a communication unit 143. Although details of the guest domain 150 are omitted in FIG. 5, the guest domain 150 is similar to the guest domain 140.
 また、コンピュータ100は、サービスプロセッサ(SP)170も含む。SP170は、環境変数保存部171と、保存制御部172と、通信部173を含む。 The computer 100 also includes a service processor (SP) 170. The SP 170 includes an environment variable storage unit 171, a storage control unit 172, and a communication unit 173.
 環境変数保存部131は、各ゲストドメインのOBP環境変数を保存する。ある観点によれば、環境変数保存部131は、ブートローダ1の環境変数の値を、第2の仮想マシン2上で制御される制御にしたがって記憶する、第1の記憶手段の一例である。 The environment variable storage unit 131 stores the OBP environment variable of each guest domain. According to a certain aspect, the environment variable storage unit 131 is an example of a first storage unit that stores the value of the environment variable of the boot loader 1 in accordance with control controlled on the second virtual machine 2.
 OBP状態管理部132は、各ゲストドメイン上のOBPの状態を示す情報を管理する。具体的には、OBP状態管理部132は、各ゲストドメイン上でOBPが実行中か否かを示す情報を管理する。 The OBP state management unit 132 manages information indicating the state of the OBP on each guest domain. Specifically, the OBP state management unit 132 manages information indicating whether or not OBP is being executed on each guest domain.
 通信部133は、ハイパーバイザ160を介して、ゲストドメイン140、ゲストドメイン150、およびSP170と通信する。 The communication unit 133 communicates with the guest domain 140, the guest domain 150, and the SP 170 via the hypervisor 160.
 設定部134は、環境変数保存部131に保存されているOBP環境変数の値を各OBPに設定するための処理を行う。ある観点によれば、設定部134は、ブートローダ1に環境変数の値を設定するためのブートローダ1からの要求に応じて、第1の記憶手段(例えば環境変数保存部131)に保存されている環境変数の値をブートローダ1に送る、設定手段の一例である。 The setting unit 134 performs processing for setting the value of the OBP environment variable stored in the environment variable storage unit 131 in each OBP. According to a certain aspect, the setting unit 134 is stored in the first storage unit (for example, the environment variable storage unit 131) in response to a request from the boot loader 1 for setting the environment variable value in the boot loader 1. It is an example of setting means for sending the value of an environment variable to the boot loader 1.
 具体的には、設定部134は、環境変数保存部131に保存されているゲストドメイン140のOBP環境変数の値を読み出し、読み出した値を、通信部133とハイパーバイザ160を介してゲストドメイン140のOBPに送る。それにより、設定部134は、環境変数保存部131に保存されているゲストドメイン140のOBP環境変数の値を、ゲストドメイン140のOBPに設定する。同様にして、設定部134は、ゲストドメイン150のOBP環境変数の値をゲストドメイン150のOBPに設定する。 Specifically, the setting unit 134 reads the value of the OBP environment variable of the guest domain 140 stored in the environment variable storage unit 131 and uses the read value via the communication unit 133 and the hypervisor 160. To OBP. Thereby, the setting unit 134 sets the value of the OBP environment variable of the guest domain 140 stored in the environment variable storage unit 131 to the OBP of the guest domain 140. Similarly, the setting unit 134 sets the value of the OBP environment variable of the guest domain 150 to the OBP of the guest domain 150.
 また、更新部135は、OBPからの要求に応じて、OBP環境変数の値を更新する。つまり、更新部135は、OBPからの要求に応じて、環境変数保存部131にOBP環境変数の新たな値を保存する。 Also, the update unit 135 updates the value of the OBP environment variable in response to a request from the OBP. That is, the update unit 135 stores a new value of the OBP environment variable in the environment variable storage unit 131 in response to a request from the OBP.
 具体的には、更新部135は、ハイパーバイザ160と通信部133を介してゲストドメイン140のOBPからの要求を受け取る。そして、更新部135は、受け取った要求にしたがって、ゲストドメイン140のOBP環境変数の新たな値を、環境変数保存部131に保存する。 Specifically, the update unit 135 receives a request from the OBP of the guest domain 140 via the hypervisor 160 and the communication unit 133. Then, the update unit 135 stores the new value of the OBP environment variable of the guest domain 140 in the environment variable storage unit 131 according to the received request.
 同様に、更新部135は、ハイパーバイザ160と通信部133を介して、ゲストドメイン150のOBPからの要求を受け取る。そして、更新部135は、受け取った要求にしたがって、ゲストドメイン150のOBP環境変数の新たな値を、環境変数保存部131に保存する。 Similarly, the update unit 135 receives a request from the OBP of the guest domain 150 via the hypervisor 160 and the communication unit 133. Then, the update unit 135 stores the new value of the OBP environment variable of the guest domain 150 in the environment variable storage unit 131 according to the received request.
 OS起動部141は、ゲストドメイン140上でOSを起動する。環境変数管理部142は、ゲストドメイン140上でOBPが実行中の間、一時的にゲストドメイン140のOBP環境変数を管理する。OS起動部141は、具体的には、環境変数管理部142の管理するOBP環境変数の最新の値を用いて、OSを起動する。 The OS activation unit 141 activates the OS on the guest domain 140. The environment variable management unit 142 temporarily manages the OBP environment variable of the guest domain 140 while the OBP is being executed on the guest domain 140. Specifically, the OS activation unit 141 activates the OS using the latest value of the OBP environment variable managed by the environment variable management unit 142.
 通信部143は、ハイパーバイザ160を介して、制御ドメイン130、ゲストドメイン150、およびSP170と通信する。 The communication unit 143 communicates with the control domain 130, the guest domain 150, and the SP 170 via the hypervisor 160.
 例えば、ゲストドメイン140上でOBPが起動すると、環境変数管理部142は、ゲストドメイン140のOBP用のOBP環境変数の値を送るよう、制御ドメイン130に要求する。この要求は、環境変数管理部142から、通信部143とハイパーバイザ160を介して、制御ドメイン130へと送られる。そして、この要求は、通信部133で受信され、通信部133から設定部134に出力される。 For example, when the OBP is activated on the guest domain 140, the environment variable management unit 142 requests the control domain 130 to send the value of the OBP environment variable for the OBP of the guest domain 140. This request is sent from the environment variable management unit 142 to the control domain 130 via the communication unit 143 and the hypervisor 160. This request is received by the communication unit 133 and output from the communication unit 133 to the setting unit 134.
 すると、上記のように設定部134は、環境変数保存部131からOBP環境変数の値を読み出し、通信部133とハイパーバイザ160を介して、OBP環境変数の値を送る。そして、ゲストドメイン140の通信部143がOBP環境変数の値を受信し、受信した値を環境変数管理部142に出力する。以上のようにして、環境変数管理部142は、通信部143を介した通信により、制御ドメイン130からOBP環境変数の値を取得することができる。 Then, as described above, the setting unit 134 reads the value of the OBP environment variable from the environment variable storage unit 131, and sends the value of the OBP environment variable via the communication unit 133 and the hypervisor 160. Then, the communication unit 143 of the guest domain 140 receives the value of the OBP environment variable and outputs the received value to the environment variable management unit 142. As described above, the environment variable management unit 142 can acquire the value of the OBP environment variable from the control domain 130 by communication via the communication unit 143.
 また、環境変数管理部142は、ゲストドメイン140のOBPの環境変数の値を更新するよう、制御ドメイン130に要求することがある。この要求は、環境変数管理部142から、通信部143とハイパーバイザ160を介して、制御ドメイン130へと送られる。そして、この要求は、通信部133で受信され、通信部133から更新部135に出力される。 Also, the environment variable management unit 142 may request the control domain 130 to update the value of the OBP environment variable of the guest domain 140. This request is sent from the environment variable management unit 142 to the control domain 130 via the communication unit 143 and the hypervisor 160. This request is received by the communication unit 133 and is output from the communication unit 133 to the update unit 135.
 すると、上記のように更新部135は、環境変数保存部131にOBP環境変数の新たな値を保存する。また、更新部135は、保存の完了を環境変数管理部142に通知するために、通信部133とハイパーバイザ160を介してACK(acknowledgment)を送る。そして、ゲストドメイン140の通信部143がACKを受信し、受信したACKを環境変数管理部142に出力する。 Then, as described above, the update unit 135 stores the new value of the OBP environment variable in the environment variable storage unit 131. Further, the update unit 135 sends an ACK (acknowledgment) via the communication unit 133 and the hypervisor 160 in order to notify the environment variable management unit 142 of the completion of the storage. Then, the communication unit 143 of the guest domain 140 receives ACK, and outputs the received ACK to the environment variable management unit 142.
 以上のようにして、環境変数管理部142は、通信部143を介した通信により、制御ドメイン130にOBP環境変数の値の更新を要求することができる。また、環境変数管理部142は、決められた時間以内にACKを受信した場合は「OBP環境変数の値の更新が成功した」と判断する。逆に、決められた時間以内にACKを受信しない場合は、環境変数管理部142は、「OBP環境変数の新たな値の環境変数保存部131への保存は失敗した」と判断する。 As described above, the environment variable management unit 142 can request the control domain 130 to update the value of the OBP environment variable by communication via the communication unit 143. The environment variable management unit 142 determines that “the update of the value of the OBP environment variable has succeeded” when the ACK is received within the determined time. Conversely, when ACK is not received within the determined time, the environment variable management unit 142 determines that “saving of the new value of the OBP environment variable to the environment variable storage unit 131 has failed”.
 決められた時間以内にACKが受信されない場合、環境変数管理部142は、ゲストドメイン140のOBP環境変数の値を保存するよう、SP170(より具体的には保存制御部172)に要求する。この要求は、環境変数管理部142から、通信部143とハイパーバイザ160を介して、SP170へと送られる。そして、この要求は、通信部173を介して保存制御部172に出力される。 If the ACK is not received within the determined time, the environment variable management unit 142 requests the SP 170 (more specifically, the storage control unit 172) to store the value of the OBP environment variable of the guest domain 140. This request is sent from the environment variable management unit 142 to the SP 170 via the communication unit 143 and the hypervisor 160. Then, this request is output to the storage control unit 172 via the communication unit 173.
 保存制御部172は、要求に応じて、OBP環境変数の値を環境変数保存部171に保存する。また、保存の完了を環境変数管理部142に通知するために、保存制御部172は、通信部173とハイパーバイザ160を介してACKを送る。そして、ゲストドメイン140の通信部143がACKを受信し、受信したACKを環境変数管理部142に出力する。 The storage control unit 172 stores the value of the OBP environment variable in the environment variable storage unit 171 in response to the request. Further, in order to notify the environment variable management unit 142 of completion of storage, the storage control unit 172 sends an ACK via the communication unit 173 and the hypervisor 160. Then, the communication unit 143 of the guest domain 140 receives ACK, and outputs the received ACK to the environment variable management unit 142.
 以上のようにして、環境変数管理部142は、制御ドメイン130の故障中には、通信部143を介した通信により、SP170にOBP環境変数の値の保存を要求することができる。また、環境変数管理部142は、決められた時間以内にSP170からACKを受信した場合は「OBP環境変数の値の環境変数保存部171への保存が成功した」と判断する。 As described above, the environment variable management unit 142 can request the SP 170 to save the value of the OBP environment variable by communication via the communication unit 143 during the failure of the control domain 130. Further, when the environment variable management unit 142 receives an ACK from the SP 170 within a predetermined time, the environment variable management unit 142 determines that “the storage of the value of the OBP environment variable in the environment variable storage unit 171 has been successful”.
 逆に、決められた時間以内にACKを受信しない場合は、環境変数管理部142は、「OBP環境変数の値の環境変数保存部171への保存が失敗した」と判断する。ただし、以下では説明の簡単化のため、「OBP環境変数の値を保存するよう環境変数管理部142がSP170に要求する時点において、SP170は正常に動作している」と仮定する。 Conversely, if the ACK is not received within the determined time, the environment variable management unit 142 determines that “saving of the value of the OBP environment variable to the environment variable storage unit 171 has failed”. However, for simplification of description below, it is assumed that “the SP 170 is operating normally when the environment variable management unit 142 requests the SP 170 to save the value of the OBP environment variable”.
 なお、この仮定は妥当である。なぜなら、制御ドメイン130とSP170に同時に故障が発生する確率は、きわめて低く、無視しても差し支えないからである。また、制御ドメイン130とSP170に同時に故障が発生する場合にも適用可能なように、第2実施形態に適宜のエラー処理(例えばリトライ処理など)を組み合わせた実施形態も、可能である。よって、以下では説明の簡単化のため、上記のように仮定する。 Note that this assumption is valid. This is because the probability of simultaneous failure in the control domain 130 and the SP 170 is extremely low and can be ignored. In addition, an embodiment in which appropriate error processing (for example, retry processing) is combined with the second embodiment is also possible so that it can also be applied when failures occur in the control domain 130 and the SP 170 simultaneously. Therefore, in the following, for simplicity of explanation, it is assumed as described above.
 ある観点によれば、以上のごとき環境変数管理部142は、以下のように動作する要求手段の一例である。 According to a certain viewpoint, the environment variable management unit 142 as described above is an example of a request unit that operates as follows.
  ・要求手段は、第2の仮想マシン2に対して、環境変数の値を第1の記憶手段(例えば環境変数保存部131)に保存するよう求める第1の要求を、ブートローダ1からハイパーバイザを介して発行する。
  ・決められた時間以内に第1の要求に対する応答(例えばACK)が返されない場合、要求手段は、第2の要求を、ブートローダ1からハイパーバイザを介して発行する。具体的には、要求手段は、制御手段(例えば保存制御部172)に対して、環境変数の値を第2の記憶手段(例えば環境変数保存部171)に保存するよう求める第2の要求を発行する。
The requesting unit sends a first request from the boot loader 1 to the hypervisor for requesting the second virtual machine 2 to store the value of the environment variable in the first storage unit (for example, the environment variable storage unit 131). Issued through.
When a response to the first request (for example, ACK) is not returned within a predetermined time, the request unit issues a second request from the boot loader 1 via the hypervisor. Specifically, the requesting unit issues a second request that requests the control unit (for example, the storage control unit 172) to store the value of the environment variable in the second storage unit (for example, the environment variable storage unit 171). Issue.
 さて、以上の説明のとおり、SP170の環境変数保存部171は、一時的にゲストドメイン140のOBP環境変数の値を保存することがある。同様に、環境変数保存部171は、一時的にゲストドメイン150のOBP環境変数の値を保存することもある。 As described above, the environment variable storage unit 171 of the SP 170 may temporarily store the value of the OBP environment variable of the guest domain 140. Similarly, the environment variable storage unit 171 may temporarily store the value of the OBP environment variable of the guest domain 150.
 また、保存制御部172は、環境変数保存部171へのOBP環境変数の値の保存を制御する。通信部173は、ハイパーバイザ160を介して、どのドメインとも通信することができる。 Also, the storage control unit 172 controls the storage of the value of the OBP environment variable in the environment variable storage unit 171. The communication unit 173 can communicate with any domain via the hypervisor 160.
 ある観点によれば、保存制御部172は、ゲストドメイン140と制御ドメイン130からはハイパーバイザ160を介してアクセス可能であり、かつ、ハイパーバイザ160とは独立して動作する、制御手段の一例である。そして、環境変数保存部171は、制御手段による制御にしたがって環境変数の値を記憶する、第2の記憶手段の一例である。 According to a certain aspect, the storage control unit 172 is an example of a control unit that is accessible from the guest domain 140 and the control domain 130 via the hypervisor 160 and operates independently of the hypervisor 160. is there. The environment variable storage unit 171 is an example of a second storage unit that stores the value of the environment variable in accordance with control by the control unit.
 また、上記のようにゲストドメイン140のOBP環境変数の値が環境変数保存部171に保存された後に、更新部135が、通信部133とハイパーバイザ160を介して、環境変数保存部171に保存されている値を送るよう、SP170に要求することがある。この要求は、SP170の通信部173において受信され、保存制御部172に出力される。 In addition, after the value of the OBP environment variable of the guest domain 140 is stored in the environment variable storage unit 171 as described above, the update unit 135 stores in the environment variable storage unit 171 via the communication unit 133 and the hypervisor 160. The SP 170 may be requested to send the value that has been set. This request is received by the communication unit 173 of the SP 170 and output to the storage control unit 172.
 要求に応じて、保存制御部172は、環境変数保存部171からゲストドメイン140のOBP環境変数の値を読み出し、読み出した値を、通信部173とハイパーバイザ160を介して送る。そして、制御ドメイン130の通信部133がOBP環境変数の値を受信し、受信した値を更新部135に出力する。 In response to the request, the storage control unit 172 reads the value of the OBP environment variable of the guest domain 140 from the environment variable storage unit 171, and sends the read value via the communication unit 173 and the hypervisor 160. Then, the communication unit 133 of the control domain 130 receives the value of the OBP environment variable, and outputs the received value to the update unit 135.
 以上のようにして、更新部135は、通信部133を介した通信により、SP170からゲストドメイン140のOBP環境変数の値を取得することができる。更新部135は、同様にして、通信部133を介した通信により、SP170からゲストドメイン150のOBP環境変数の値を取得することもできる。 As described above, the update unit 135 can acquire the value of the OBP environment variable of the guest domain 140 from the SP 170 by communication via the communication unit 133. Similarly, the update unit 135 can acquire the value of the OBP environment variable of the guest domain 150 from the SP 170 by communication via the communication unit 133.
 ある観点によれば、更新部135は、以下のように動作する更新手段の一例である。
  ・更新手段は、要求手段(例えば環境変数管理部142)が発行した第2の要求に応じて第2の記憶手段(例えば環境変数保存部171)に保存された環境変数の値を送るよう、制御手段(例えば保存制御部172)に求める第3の要求を発行する。具体的には、更新手段は、第3の要求を、第2の仮想マシン(例えば制御ドメイン130)からハイパーバイザを介して発行する。
  ・更新手段は、第3の要求に応じて返される環境変数の値を受け取る。
  ・更新手段は、受け取った環境変数の値を、第1の記憶手段(例えば環境変数保存部131)に保存する。
According to a certain aspect, the update unit 135 is an example of an update unit that operates as follows.
The update unit sends the value of the environment variable stored in the second storage unit (for example, the environment variable storage unit 171) in response to the second request issued by the request unit (for example, the environment variable management unit 142). A third request is issued to the control means (for example, the storage control unit 172). Specifically, the update unit issues the third request from the second virtual machine (for example, the control domain 130) via the hypervisor.
The update means receives the value of the environment variable returned in response to the third request.
The update unit stores the received environment variable value in the first storage unit (for example, the environment variable storage unit 131).
 ところで、ゲストドメイン140上でOBPが動作している間は、環境変数管理部142が動作している。よって、ゲストドメイン140上でOBPが動作しているときには、更新部135は、環境変数管理部142が認識しているOBP環境変数の値を送るよう、通信部133とハイパーバイザ160を介して、環境変数管理部142に要求してもよい。この要求は、ゲストドメイン140の通信部143において受信され、環境変数管理部142に出力される。 Incidentally, while the OBP is operating on the guest domain 140, the environment variable management unit 142 is operating. Therefore, when the OBP is operating on the guest domain 140, the update unit 135 transmits the value of the OBP environment variable recognized by the environment variable management unit 142 via the communication unit 133 and the hypervisor 160. The request may be made to the environment variable management unit 142. This request is received by the communication unit 143 of the guest domain 140 and output to the environment variable management unit 142.
 要求に応じて、環境変数管理部142は、環境変数管理部142が認識しているOBP環境変数の値を、通信部143とハイパーバイザ160を介して送る。環境変数管理部142が認識しているOBP環境変数の値とは、具体的には、環境変数管理部142用に割り当てられたメモリ領域上に一時的に記憶されている値である。そして、制御ドメイン130の通信部133がOBP環境変数の値を受信し、受信した値を更新部135に出力する。 In response to the request, the environment variable management unit 142 sends the value of the OBP environment variable recognized by the environment variable management unit 142 via the communication unit 143 and the hypervisor 160. Specifically, the value of the OBP environment variable recognized by the environment variable management unit 142 is a value temporarily stored in a memory area allocated for the environment variable management unit 142. Then, the communication unit 133 of the control domain 130 receives the value of the OBP environment variable, and outputs the received value to the update unit 135.
 以上のように、ゲストドメイン140上でOBPが動作している間は、更新部135は、通信部133を介した通信により、ゲストドメイン140のOBP環境変数の値を、ゲストドメイン140から取得することができる。同様に、更新部135は、ゲストドメイン150上でOBPが動作している間は、ゲストドメイン150からゲストドメイン150のOBP環境変数の値を取得することもできる。 As described above, while the OBP is operating on the guest domain 140, the update unit 135 acquires the value of the OBP environment variable of the guest domain 140 from the guest domain 140 by communication via the communication unit 133. be able to. Similarly, the updating unit 135 can acquire the value of the OBP environment variable of the guest domain 150 from the guest domain 150 while the OBP is operating on the guest domain 150.
 続いて、図3と図5の関係を説明する。図5のコンピュータ100は、具体的には図3のコンピュータ10により実現されてもよい。 Subsequently, the relationship between FIG. 3 and FIG. 5 will be described. Specifically, the computer 100 of FIG. 5 may be realized by the computer 10 of FIG.
 図3における1枚のシステムボードが、図5における1つのパーティションに対応する。例えば、システムボード20がパーティション110に対応し、システムボード30がパーティション120に対応してもよい。 3) One system board in FIG. 3 corresponds to one partition in FIG. For example, the system board 20 may correspond to the partition 110, and the system board 30 may correspond to the partition 120.
 図5では、1つのハイパーバイザ160のみが図示されているが、パーティションごとに独立したハイパーバイザがそれぞれ実行されてもよい。つまり、以下の2つの場合のどちらも可能である。 In FIG. 5, only one hypervisor 160 is shown, but an independent hypervisor may be executed for each partition. That is, both of the following two cases are possible.
  ・コンピュータ10内のCPU22a、22b、32a、および32bのうち少なくとも1つが、パーティション110と120の双方を管理するハイパーバイザを実行する。
  ・パーティション110に対応するシステムボード20内のCPU22aと22bのうち少なくとも1つが、パーティション110を管理するハイパーバイザを実行する。また、それとは独立して、パーティション120に対応するシステムボード30内のCPU32aと32bのうち少なくとも1つが、パーティション120を管理するハイパーバイザを実行する。
At least one of the CPUs 22a, 22b, 32a, and 32b in the computer 10 executes a hypervisor that manages both the partitions 110 and 120.
At least one of the CPUs 22 a and 22 b in the system board 20 corresponding to the partition 110 executes a hypervisor that manages the partition 110. Independently, at least one of the CPUs 32 a and 32 b in the system board 30 corresponding to the partition 120 executes a hypervisor that manages the partition 120.
 以下では説明の便宜上、システムボード20がパーティション110に対応する場合について、詳しく述べる。
 パーティション110内の制御ドメイン130は、ハイパーバイザ160上の仮想マシンの1つである。つまり、パーティション110内の制御ドメイン130は、システムボード20内のCPU22aと22bのうち少なくとも1つにより実行される。CPU22aと22bは、いずれも、シングルコアCPUでもよく、マルチコアCPUでもよい。CPU22aと22bに含まれるコアの中から、1つまたは複数のコアが、制御ドメイン130の実行用に割り当てられる。コアの制御ドメイン130への割り当ては、静的に決められていてもよいし、ハイパーバイザ160によって動的に決められてもよい。
Hereinafter, the case where the system board 20 corresponds to the partition 110 will be described in detail for convenience of explanation.
The control domain 130 in the partition 110 is one of virtual machines on the hypervisor 160. That is, the control domain 130 in the partition 110 is executed by at least one of the CPUs 22a and 22b in the system board 20. Each of the CPUs 22a and 22b may be a single core CPU or a multi-core CPU. Among the cores included in the CPUs 22a and 22b, one or more cores are assigned for execution of the control domain 130. The assignment of the core to the control domain 130 may be determined statically or dynamically by the hypervisor 160.
 環境変数保存部131は、システムボード20内の物理的な不揮発性記憶装置(つまりHDD23a~23c)のうち、制御ドメイン130からアクセス可能なように制御ドメイン130に割り当てられた領域によって、実現される。例えば、物理的なHDD23a~23cのうちの一部が、制御ドメイン130用の仮想ディスクとして制御ドメイン130に割り当てられる。環境変数保存部131は、制御ドメイン130に割り当てられた仮想ディスク中の領域である。よって、物理的には、環境変数保存部131は、HDD23a~23cの一部により実現される。 The environment variable storage unit 131 is realized by an area allocated to the control domain 130 so as to be accessible from the control domain 130 among physical nonvolatile storage devices (that is, HDDs 23a to 23c) in the system board 20. . For example, some of the physical HDDs 23 a to 23 c are allocated to the control domain 130 as virtual disks for the control domain 130. The environment variable storage unit 131 is an area in the virtual disk allocated to the control domain 130. Therefore, physically, the environment variable storage unit 131 is realized by a part of the HDDs 23a to 23c.
 OBP状態管理部132と通信部133と設定部134と更新部135は、他のドメイン(図3の例ではゲストドメイン140と150)のOBP環境変数を管理するためのプログラムモジュールを実行するCPUにより実現される。当該プログラムモジュールは、制御ドメイン130上のOSに組み込まれていてもよい。つまり、物理的には、OBP状態管理部132と通信部133と設定部134と更新部135の各々は、システムボード20内のCPU22aと22bのうち少なくとも1つにより実現される。 The OBP state management unit 132, the communication unit 133, the setting unit 134, and the update unit 135 are executed by a CPU that executes a program module for managing OBP environment variables of other domains ( guest domains 140 and 150 in the example of FIG. 3). Realized. The program module may be incorporated in the OS on the control domain 130. That is, physically, each of the OBP state management unit 132, the communication unit 133, the setting unit 134, and the update unit 135 is realized by at least one of the CPUs 22a and 22b in the system board 20.
 例えば、CPU22aと22bのコアの中から制御ドメイン130の実行用に1つのコアだけが割り当てられている場合、OBP状態管理部132と通信部133と設定部134と更新部135の各々は、当該1つのコアにより実現される。CPU22aと22bのコアの中から制御ドメイン130の実行用に2つ以上のコアが割り当てられている場合、OBP状態管理部132と通信部133と設定部134と更新部135の各々は、それら2つ以上のコアのうち少なくとも1つにより実現される。 For example, when only one core is allocated for execution of the control domain 130 among the cores of the CPUs 22a and 22b, each of the OBP state management unit 132, the communication unit 133, the setting unit 134, and the update unit 135 Realized by one core. When two or more cores are allocated for execution of the control domain 130 among the cores of the CPUs 22a and 22b, each of the OBP state management unit 132, the communication unit 133, the setting unit 134, and the update unit 135 This is realized by at least one of the two or more cores.
 より具体的には、CPU22aと22bのコアのうち、制御ドメイン130の実行用に割り当てられた1つ以上のコアは、メモリ21a~21dのうち、制御ドメイン130に割り当てられた領域を用いて、プログラムを実行する。上記1つ以上のコアがプログラムを実行することにより、OBP状態管理部132と通信部133と設定部134と更新部135の各々が実現される。 More specifically, among the cores of the CPUs 22a and 22b, one or more cores assigned for execution of the control domain 130 use the areas assigned to the control domain 130 of the memories 21a to 21d. Run the program. The OBP state management unit 132, the communication unit 133, the setting unit 134, and the update unit 135 are realized by the one or more cores executing the program.
 また、パーティション110内のゲストドメイン140も、ハイパーバイザ160上の仮想マシンの1つである。つまり、パーティション110内のゲストドメイン140も、システムボード20内のCPU22aと22bのうち少なくとも1つにより実行される。同様に、パーティション110内のゲストドメイン150も、CPU22aと22bのうち少なくとも1つにより実行される。 Also, the guest domain 140 in the partition 110 is one of the virtual machines on the hypervisor 160. That is, the guest domain 140 in the partition 110 is also executed by at least one of the CPUs 22a and 22b in the system board 20. Similarly, the guest domain 150 in the partition 110 is also executed by at least one of the CPUs 22a and 22b.
 OS起動部141と環境変数管理部142と通信部143の各々は、ゲストドメイン140のOBPを実行するCPUにより実現される。ゲストドメイン140のOBPは、換言すれば、ゲストドメイン140にOSをロードするブートローダであり、図1~2のブートローダ1の例である。また、ゲストドメイン140のOBPを実行するCPUとは、具体的には、CPU22aと22bのうち少なくとも1つである。 Each of the OS startup unit 141, the environment variable management unit 142, and the communication unit 143 is realized by a CPU that executes the OBP of the guest domain 140. In other words, the OBP of the guest domain 140 is a boot loader that loads an OS into the guest domain 140, and is an example of the boot loader 1 of FIGS. The CPU that executes the OBP of the guest domain 140 is specifically at least one of the CPUs 22a and 22b.
 例えば、各ゲストドメインへのプロセッサ資源の割り当ては、次のように行われてもよい。
 物理的なパーティション110には、システムボード20が対応する。よって、システムボード20内のCPU22aと22bに含まれるコアのうちの1つ以上が、「ゲストドメイン140に対応する仮想パーティション内の仮想CPUを実現するために利用可能な1つ以上の物理CPUコア」として決められてもよい。同様に、CPU22aと22bに含まれるコアのうちの1つ以上が、「ゲストドメイン150に対応する仮想パーティション内の仮想CPUを実現するために利用可能な1つ以上の物理CPUコア」として決められてもよい。以上のようにして決められた「利用可能な1つ以上の物理CPUコア」が、各ゲストドメインの実行に使われる。
For example, the allocation of processor resources to each guest domain may be performed as follows.
The system board 20 corresponds to the physical partition 110. Therefore, one or more of the cores included in the CPUs 22a and 22b in the system board 20 are “one or more physical CPU cores that can be used to realize a virtual CPU in a virtual partition corresponding to the guest domain 140”. May be determined. Similarly, one or more of the cores included in the CPUs 22a and 22b are determined as “one or more physical CPU cores that can be used to implement a virtual CPU in a virtual partition corresponding to the guest domain 150”. May be. The “one or more available physical CPU cores” determined as described above are used to execute each guest domain.
 より具体的には、ゲストドメインへのプロセッサ資源の割り当ては、スレッド単位またはプロセス単位の割り当てであってもよい。また、ある仮想パーティション内の仮想CPUを実現するために利用可能な物理CPUコアの集合と、他の仮想パーティション内の仮想CPUを実現するために利用可能な物理CPUコアの集合は、一部または全部が重複していてもよい。例えば、CPU22aまたは22b内のあるコアが、8つのスレッドを同時に実行可能である場合、当該コアの4つのスレッドがゲストドメイン140に割り当てられ、残りの4つのスレッドがゲストドメイン150に割り当てられてもよい。 More specifically, the processor resource allocation to the guest domain may be a thread unit or process unit allocation. A set of physical CPU cores that can be used to realize a virtual CPU in a virtual partition and a set of physical CPU cores that can be used to realize a virtual CPU in another virtual partition All may be duplicated. For example, when a certain core in the CPU 22 a or 22 b can execute eight threads simultaneously, four threads of the core are allocated to the guest domain 140 and the remaining four threads are allocated to the guest domain 150. Good.
 もちろん、仮想化のアーキテクチャによっては、ゲストドメインに関して、上記のようなスレッド単位の割り当てではなく、物理CPUコア単位の割り当てが行われてもよい。また、制御ドメインに関して、上記のような物理CPUコア単位の割り当てではなく、スレッド単位またはプロセス単位の割り当てが行われてもよい。 Of course, depending on the virtualization architecture, the guest domain may be allocated in units of physical CPU cores instead of in units of threads as described above. Further, with respect to the control domain, allocation in units of threads or processes may be performed instead of allocation in units of physical CPU cores as described above.
 しかし、いずれにせよ、以下のとおり、図5の制御ドメイン130とゲストドメイン140の内部に示した各コンポーネントは、図3中のハードウェア要素により実現される。 However, in any case, as described below, the components shown in the control domain 130 and the guest domain 140 in FIG. 5 are realized by the hardware elements in FIG.
  ・物理的には、環境変数保存部131は、システムボード20内のHDD23a~23cのうちの一部の領域により実現される。
  ・物理的には、OBP状態管理部132と通信部133と設定部134と更新部135の各々は、システムボード20内のCPU22aと22bのうち少なくとも1つにより実現される。また、OBP状態管理部132と通信部133と設定部134と更新部135の各々を実現するために、メモリ21a~21dのうち、制御ドメイン130に割り当てられた領域も使われる。
  ・物理的には、OS起動部141と環境変数管理部142と通信部143の各々は、システムボード20内のCPU22aと22bのうち少なくとも1つにより実現される。また、メモリ21a~21dのうち、ゲストドメイン140に割り当てられた領域も、OS起動部141と環境変数管理部142と通信部143の各々を実現するために使われる。
Physically, the environment variable storage unit 131 is realized by a partial area of the HDDs 23a to 23c in the system board 20.
Physically, each of the OBP state management unit 132, the communication unit 133, the setting unit 134, and the update unit 135 is realized by at least one of the CPUs 22a and 22b in the system board 20. In addition, in order to realize each of the OBP state management unit 132, the communication unit 133, the setting unit 134, and the update unit 135, an area allocated to the control domain 130 in the memories 21a to 21d is also used.
Physically, each of the OS startup unit 141, the environment variable management unit 142, and the communication unit 143 is realized by at least one of the CPUs 22a and 22b in the system board 20. In addition, the areas allocated to the guest domain 140 in the memories 21a to 21d are also used for realizing the OS activation unit 141, the environment variable management unit 142, and the communication unit 143, respectively.
 また、図5のSP170は、具体的には図3のSP50であってもよい。その場合、環境変数保存部171は、SP50内の不揮発性メモリ52により実現される。また、保存制御部172は、SP50内のCPU51により実現される。CPU51は図1~2の第2のプロセッサ3の具体例である。通信部173は、システムボード20とSP50の間の通信のためにSP50内に設けられた通信回路(図3には不図示)と、通信回路を制御するCPU51とによって実現される。 Also, the SP 170 in FIG. 5 may specifically be the SP 50 in FIG. In that case, the environment variable storage unit 171 is realized by the nonvolatile memory 52 in the SP 50. The storage control unit 172 is realized by the CPU 51 in the SP 50. The CPU 51 is a specific example of the second processor 3 shown in FIGS. The communication unit 173 is realized by a communication circuit (not shown in FIG. 3) provided in the SP 50 for communication between the system board 20 and the SP 50, and a CPU 51 that controls the communication circuit.
 ハイパーバイザ160を介して行われる制御ドメイン130とSP170の間の通信には、物理的には、SP I/F24も使われる。同様に、ハイパーバイザ160を介して行われるゲストドメイン140とSP170の間の通信には、物理的には、SP I/F24も使われる。 For the communication between the control domain 130 and the SP 170 performed via the hypervisor 160, the SP I / F 24 is physically used. Similarly, the SP I / F 24 is physically used for communication between the guest domain 140 and the SP 170 performed via the hypervisor 160.
 ところで、図5には1つのSP170のみが図示されており、図3には2つのSP50と60が図示されている。このように、SPの数は1つでもよいし、2つ以上でもよい。
 例えば、図3のコンピュータ10からSP60が省略されてもよい。この場合、システムボード30のSP I/F34は、SP50に接続される。また、この場合、SP50が図5のSP170に対応する。
Incidentally, only one SP 170 is shown in FIG. 5, and two SPs 50 and 60 are shown in FIG. Thus, the number of SPs may be one, or two or more.
For example, the SP 60 may be omitted from the computer 10 of FIG. In this case, the SP I / F 34 of the system board 30 is connected to the SP 50. In this case, SP50 corresponds to SP170 in FIG.
 あるいは、図5には複数のパーティション110と120に対して1つのSP170のみが図示されているが、パーティション110に対応するSPと、パーティション120に対応するSPが異なっていてもよい。例えば、パーティション110に対応するSP170として図3のSP50が使われ、パーティション120に対応するSP170として図3のSP60が使われてもよい。 Alternatively, FIG. 5 shows only one SP 170 for the plurality of partitions 110 and 120, but the SP corresponding to the partition 110 may be different from the SP corresponding to the partition 120. For example, the SP 50 in FIG. 3 may be used as the SP 170 corresponding to the partition 110, and the SP 60 in FIG. 3 may be used as the SP 170 corresponding to the partition 120.
 続いて、図6~7を参照して、第2実施形態で使われる情報の例を説明する。
 図6は、環境変数テーブルの例を示す図である。図6には、制御ドメイン130内の環境変数保存部131に保存される環境変数テーブル200-1~200-Nと、SP170の環境変数保存部171に保存される環境変数テーブル210-1~210-Nが例示されている。なお、Nは、パーティション110内のゲストドメインの数である。図5の例ではNは2だが、Nは、例えば1000を超えるような大きな値であってもかまわない。
Next, an example of information used in the second embodiment will be described with reference to FIGS.
FIG. 6 is a diagram illustrating an example of the environment variable table. 6 shows environment variable tables 200-1 to 200-N stored in the environment variable storage unit 131 in the control domain 130, and environment variable tables 210-1 to 210-210 stored in the environment variable storage unit 171 of the SP 170. -N is illustrated. N is the number of guest domains in the partition 110. In the example of FIG. 5, N is 2, but N may be a large value exceeding 1000, for example.
 以下では、nは1≦n≦Nを満たす整数とする。n番目の環境変数テーブル200-nは、n番目のゲストドメインのOBP環境変数の値を管理するためのテーブルである。同様に、n番目の環境変数テーブル210-nは、n番目のゲストドメインのOBP環境変数の値を臨時に保存するためのテーブルである。 In the following, n is an integer satisfying 1 ≦ n ≦ N. The nth environment variable table 200-n is a table for managing the value of the OBP environment variable of the nth guest domain. Similarly, the nth environment variable table 210-n is a table for temporarily storing the value of the OBP environment variable of the nth guest domain.
 環境変数テーブル200-nの各エントリは、n番目のゲストドメインのOBP環境変数の名前と、当該OBP環境変数の値と、当該値が環境変数テーブル200-nに保存された時刻を示す時刻情報を含む。環境変数テーブル210-nの各エントリは、n番目のゲストドメインのOBP環境変数の名前と、当該OBP環境変数の値と、当該値が環境変数テーブル210-nに保存された時刻を示す時刻情報を含む。 Each entry of the environment variable table 200-n includes time information indicating the name of the OBP environment variable of the nth guest domain, the value of the OBP environment variable, and the time when the value is stored in the environment variable table 200-n. including. Each entry of the environment variable table 210-n includes time information indicating the name of the OBP environment variable of the nth guest domain, the value of the OBP environment variable, and the time when the value was stored in the environment variable table 210-n. including.
 図6には、n=1の例が具体的に示されている。図6の例は以下のことを示す。
  ・1番目のゲストドメインのOBPでは、「ENV_VAR_1」という名前の環境変数が使われる。この環境変数「ENV_VAR_1」は、2011年11月28日15時37分3秒に、「TRUE」という値に更新された。そのため、環境変数テーブル200-1には、更新時刻を示す時刻情報とともに、「TRUE」という値が保存されている。
  ・1番目のゲストドメインのOBPでは、「ENV_VAR_2」という名前の環境変数が使われる。この環境変数「ENV_VAR_2」は、2011年11月28日15時37分15秒に、「FALSE」という値に更新された。そのため、環境変数テーブル200-1には、「FALSE」という値が保存されている。
  ・1番目のゲストドメインのOBPでは、「ENV_VAR_3」という名前の環境変数が使われる。この環境変数「ENV_VAR_3」は、2011年11月28日16時37分20秒に、「ABC」という文字列に更新された。そのため、環境変数テーブル200-1には、更新時刻を示す時刻情報とともに、「ABC」という文字列が保存されている。
  ・1番目のゲストドメインのOBPでは、「ENV_VAR_4」という名前の環境変数が使われる。この環境変数「ENV_VAR_4」は、2011年11月28日16時37分30秒に、「1234」という数値に更新された。そのため、環境変数テーブル200-1には、更新時刻を示す時刻情報とともに、「1234」という数値が保存されている。
  ・2011年12月3日に1番目のゲストドメインのOBPから制御ドメイン130に環境変数「ENV_VAR_2」の更新が要求されたとき、制御ドメイン130は動作していなかった。そのため、環境変数「ENV_VAR_2」の「TRUE」という新たな値は、SP170へと送られ、環境変数保存部171上の環境変数テーブル210-1に保存された。具体的には、「TRUE」という新たな値は、2011年12月3日11時30分45秒という保存時刻を示す時刻情報とともに、環境変数テーブル210-1に保存された。
  ・2011年12月3日に1番目のゲストドメインのOBPから制御ドメイン130に環境変数「ENV_VAR_3」の更新が要求されたとき、制御ドメイン130は動作していなかった。そのため、環境変数「ENV_VAR_3」の「XYZ」という新たな値は、SP170へと送られ、環境変数保存部171上の環境変数テーブル210-1に保存された。具体的には、「XYZ」という新たな値は、2011年12月3日11時30分47秒という保存時刻を示す時刻情報とともに、環境変数テーブル210-1に保存された。
FIG. 6 specifically shows an example of n = 1. The example of FIG. 6 shows the following.
In the first guest domain OBP, an environment variable named “ENV_VAR_1” is used. This environment variable “ENV_VAR — 1” was updated to a value of “TRUE” at 15: 37: 3 on November 28, 2011. Therefore, the environment variable table 200-1 stores a value “TRUE” together with time information indicating the update time.
In the first guest domain OBP, an environment variable named “ENV_VAR_2” is used. This environment variable “ENV_VAR_2” was updated to a value of “FALSE” on November 28, 2011, at 15:37:15. Therefore, a value “FALSE” is stored in the environment variable table 200-1.
In the first guest domain OBP, an environment variable named “ENV_VAR — 3” is used. This environment variable “ENV_VAR — 3” was updated to a character string “ABC” at 16:37:20 on November 28, 2011. Therefore, the environment variable table 200-1 stores a character string “ABC” together with time information indicating the update time.
In the OBP of the first guest domain, an environment variable named “ENV_VAR_4” is used. This environment variable “ENV_VAR — 4” was updated to a numerical value “1234” at 16:37:30 on November 28, 2011. Therefore, a numerical value “1234” is stored in the environment variable table 200-1 together with time information indicating the update time.
When the update of the environment variable “ENV_VAR_2” was requested from the OBP of the first guest domain to the control domain 130 on December 3, 2011, the control domain 130 was not operating. Therefore, a new value “TRUE” of the environment variable “ENV_VAR_2” is sent to the SP 170 and stored in the environment variable table 210-1 on the environment variable storage unit 171. Specifically, the new value “TRUE” is stored in the environment variable table 210-1 together with time information indicating a storage time of 11:30:45 on December 3, 2011.
When the update of the environment variable “ENV_VAR — 3” was requested from the OBP of the first guest domain to the control domain 130 on December 3, 2011, the control domain 130 was not operating. Therefore, the new value “XYZ” of the environment variable “ENV_VAR — 3” is sent to SP 170 and stored in the environment variable table 210-1 on the environment variable storage unit 171. Specifically, the new value “XYZ” was stored in the environment variable table 210-1 together with time information indicating a storage time of 11:30:47 on December 3, 2011.
 さて、図7は、状態リストの例を示す図である。図7の状態リスト220は、具体的には、制御ドメイン130内のOBP状態管理部132により管理され、更新部135により参照される。 FIG. 7 is a diagram showing an example of the state list. Specifically, the status list 220 in FIG. 7 is managed by the OBP status management unit 132 in the control domain 130 and is referred to by the update unit 135.
 また、制御ドメイン130の再起動の前後にわたって状態リスト220中のデータが維持され続けるようにするために、状態リスト220は、不揮発性の記憶装置に記憶される。状態リスト220は、物理的には、システムボード20内の物理的な不揮発性記憶装置(つまりHDD23a~23c)のうち、制御ドメイン130からアクセス可能なように制御ドメイン130に割り当てられた領域の一部に記憶される。 Also, in order to keep the data in the state list 220 maintained before and after the restart of the control domain 130, the state list 220 is stored in a nonvolatile storage device. The state list 220 is physically one of the areas allocated to the control domain 130 so as to be accessible from the control domain 130 among the physical nonvolatile storage devices (that is, the HDDs 23a to 23c) in the system board 20. Stored in the department.
 状態リスト220は、N個のゲストドメインに対応してN個のエントリを有する。状態リスト220のn番目のエントリは、n番目のゲストドメインのOBPが、ハイパーバイザ160を介して制御ドメイン130と通信可能か否かを示す(1≦n≦N)。具体的には、各エントリは、ドメイン番号と状態フラグを含む。 The state list 220 has N entries corresponding to N guest domains. The nth entry in the state list 220 indicates whether or not the OBP of the nth guest domain can communicate with the control domain 130 via the hypervisor 160 (1 ≦ n ≦ N). Specifically, each entry includes a domain number and a status flag.
 ドメイン番号は、ゲストドメインを識別する識別情報の一例である。状態フラグは、ドメイン番号で識別されるゲストドメインのOBPが、ハイパーバイザ160を介して制御ドメイン130と通信可能か否かを示す状態情報の一例である。換言すれば、状態情報としての状態フラグは、ドメイン番号で識別されるゲストドメイン上でOBPが実行中か否かを示す。 The domain number is an example of identification information for identifying the guest domain. The status flag is an example of status information indicating whether or not the OBP of the guest domain identified by the domain number can communicate with the control domain 130 via the hypervisor 160. In other words, the status flag as status information indicates whether or not OBP is being executed on the guest domain identified by the domain number.
 以下では説明の便宜上、状態フラグの値がTRUEの場合、ゲストドメインにおいてOBPが実行中(したがってOBPと制御ドメイン130の間の通信が可能)であるものとする。状態フラグの値がどのように更新されるかについては、図8~12のフローチャートとともに後述する。 Hereinafter, for convenience of explanation, when the value of the status flag is TRUE, it is assumed that the OBP is being executed in the guest domain (thus, communication between the OBP and the control domain 130 is possible). How the value of the status flag is updated will be described later with reference to the flowcharts of FIGS.
 続いて、図8~12のフローチャートを参照して、第2実施形態におけるコンピュータ100の動作について説明する。図8~12のフローチャートにしたがってコンピュータ100が動作することにより、図1~2に示した状況4A~4E、4G、および4Hのような動作シーケンスが実現される。 Subsequently, the operation of the computer 100 in the second embodiment will be described with reference to the flowcharts of FIGS. When the computer 100 operates according to the flowcharts of FIGS. 8 to 12, the operation sequences such as the situations 4A to 4E, 4G, and 4H illustrated in FIGS.
 図8は、ゲストドメインでのOBPの動作フローチャートである。ゲストドメイン140上でOBPが呼び出されると(換言すれば、CPU22aと22bに含まれるコアのうちのいずれかがゲストドメイン140上でのOBPの実行を開始すると)、ゲストドメイン140において図8の処理が開始される。もちろん、ゲストドメイン150においても同様に図8の処理は実行される。 FIG. 8 is an operational flowchart of OBP in the guest domain. When the OBP is called on the guest domain 140 (in other words, when one of the cores included in the CPUs 22a and 22b starts executing the OBP on the guest domain 140), the process of FIG. Is started. Of course, the processing of FIG. 8 is similarly executed in the guest domain 150.
 ステップS101で環境変数管理部142は、ゲストドメイン140上でOBPが起動したことを制御ドメイン130に通知する。ステップS101での通知は、通信部143とハイパーバイザ160を介して送られる。また、この通知を受けた制御ドメイン130の動作については図10とともに後述する。 In step S101, the environment variable management unit 142 notifies the control domain 130 that the OBP has started on the guest domain 140. The notification in step S101 is sent via the communication unit 143 and the hypervisor 160. The operation of the control domain 130 that has received this notification will be described later with reference to FIG.
 次に、ステップS102で環境変数管理部142は、ゲストドメイン140のOBPのすべての環境変数の値を送るよう、制御ドメイン130に要求する。ステップS102での要求も、通信部143とハイパーバイザ160を介して送られる。 Next, in step S102, the environment variable management unit 142 requests the control domain 130 to send the values of all environment variables of the OBP in the guest domain 140. The request in step S102 is also sent via the communication unit 143 and the hypervisor 160.
 そして、環境変数管理部142は、以下のいずれかのイベントが生じるのをステップS103で待つ。 Then, the environment variable management unit 142 waits in step S103 for any of the following events to occur.
  ・ゲストドメイン140のOBPのすべての環境変数の値を、ハイパーバイザ160と通信部143を介して、制御ドメイン130から環境変数管理部142が受信した、というイベント。
  ・ステップS102での要求から所定時間が経過した、というイベント。
An event that the environment variable management unit 142 receives the values of all environment variables of the OBP of the guest domain 140 from the control domain 130 via the hypervisor 160 and the communication unit 143.
An event that a predetermined time has elapsed since the request in step S102.
 前者のイベントが生じると、図8の処理は、ステップS103からステップS106へと移行する。後者のイベントが生じると、図8の処理は、ステップS103からステップS104へと移行する。なお、上記の所定時間は、制御ドメイン130が正常に動作している場合にゲストドメイン140と制御ドメイン130の間の通信にかかる平均的なRTT(Round Trip Time)に適宜のマージンを足した時間であることが好ましい。 When the former event occurs, the processing in FIG. 8 proceeds from step S103 to step S106. When the latter event occurs, the processing in FIG. 8 proceeds from step S103 to step S104. The predetermined time is a time obtained by adding an appropriate margin to an average RTT (RoundRTrip Time) required for communication between the guest domain 140 and the control domain 130 when the control domain 130 is operating normally. It is preferable that
 ステップS104で環境変数管理部142は、ステップS102で環境変数管理部142が要求を発行した回数が、所定のリトライ回数に達したか否かを判断する。もし、環境変数管理部142が、ステップS102での要求の送信を、図8の処理の開始後、既に所定のリトライ回数だけ実行していれば、図8の処理は異常終了する。逆に、ステップS102で環境変数管理部142が要求を発行した回数が、所定のリトライ回数未満ならば、図8の処理はステップS104からステップS105へと移行する。 In step S104, the environment variable management unit 142 determines whether or not the number of times the environment variable management unit 142 issued the request in step S102 has reached a predetermined number of retries. If the environment variable management unit 142 has already transmitted the request in step S102 for a predetermined number of retries after the start of the process of FIG. 8, the process of FIG. 8 ends abnormally. Conversely, if the number of times the environment variable management unit 142 issued the request in step S102 is less than the predetermined retry count, the process in FIG. 8 proceeds from step S104 to step S105.
 ステップS105で環境変数管理部142は、決められた待ち時間だけ待つ。待ち時間は、例えば、制御ドメイン130が自動的に再起動される場合において再起動にかかる平均的な時間に基づいて決められていてもよい。待ち時間は、さらに、上記の所定のリトライ回数に基づいていてもよい。決められた待ち時間が経過すると、図8の処理はステップS105からステップS102に戻る。 In step S105, the environment variable management unit 142 waits for a predetermined waiting time. For example, when the control domain 130 is automatically restarted, the waiting time may be determined based on an average time required for restarting. The waiting time may be further based on the predetermined number of retries. When the determined waiting time has elapsed, the processing in FIG. 8 returns from step S105 to step S102.
 以上のステップS102~S105によれば、所定のリトライ回数だけステップS102での要求の送信が繰り返されてもOBP環境変数の値が受信されない場合、図8の処理は異常終了する。逆に、所定のリトライ回数以内で、OBP環境変数の値が成功裡に受信されれば、図8の処理はステップS106へと移行する。 According to the above steps S102 to S105, if the value of the OBP environment variable is not received even if the transmission of the request in step S102 is repeated for a predetermined number of retries, the process of FIG. 8 ends abnormally. Conversely, if the value of the OBP environment variable is successfully received within the predetermined number of retries, the process of FIG. 8 proceeds to step S106.
 ステップS106で環境変数管理部142は、各OBP環境変数を、受信した最新の値に設定する。 In step S106, the environment variable management unit 142 sets each OBP environment variable to the latest received value.
 例えば、ゲストドメイン140がn番目のゲストドメインであるものとする。この場合、環境変数保存部131上の環境変数テーブル200-nに保存されている各環境変数の最新の値が、環境変数管理部142により既に受信されている。よって、ステップS106で環境変数管理部142は、制御ドメイン130から受信した値を、各OBP環境変数の初期値として用いる。 For example, it is assumed that the guest domain 140 is the nth guest domain. In this case, the latest value of each environment variable stored in the environment variable table 200-n on the environment variable storage unit 131 has already been received by the environment variable management unit 142. Therefore, in step S106, the environment variable management unit 142 uses the value received from the control domain 130 as the initial value of each OBP environment variable.
 上記のとおり、環境変数管理部142は、ゲストドメイン140上でOBPが実行中の間(すなわち図8の処理が終了するまでの間)、一時的にゲストドメイン140のOBP環境変数を管理する。具体的には、環境変数管理部142は、OBPが実行中の間は、メモリ21a~21dのうちでゲストドメイン140に割り当てられている記憶領域上に、ゲストドメイン140のOBPの各環境変数の最新の値を保持する。ステップS106では、具体的には、環境変数管理部142は、制御ドメイン130から受信した値を上記記憶領域上に記憶する。 As described above, the environment variable management unit 142 temporarily manages the OBP environment variable of the guest domain 140 while the OBP is being executed on the guest domain 140 (that is, until the processing of FIG. 8 ends). Specifically, while the OBP is being executed, the environment variable management unit 142 stores the latest environment variables of the OBP in the guest domain 140 on the storage area allocated to the guest domain 140 in the memories 21a to 21d. Holds the value. In step S106, specifically, the environment variable management unit 142 stores the value received from the control domain 130 in the storage area.
 次に、ステップS107でOS起動部141が、OSを起動するための条件が成立しているか否かを判断する。OSを起動するための条件は、OBPの仕様に応じて適宜決められていてよく、複数の条件を組み合わせた条件であってもよい。 Next, in step S107, the OS activation unit 141 determines whether a condition for activating the OS is satisfied. The condition for starting the OS may be appropriately determined according to the OBP specification, or may be a condition in which a plurality of conditions are combined.
 例えば、OSを起動するブートローダ1としてのOBPは、ゲストドメイン140に割り当てられた仮想ハードウェア資源をチェックする機能を有していてもよい。OSを起動するための条件は、「チェックの結果、ゲストドメイン140に割り当てられた仮想ハードウェア資源が正常と判断された」という条件でもよい。 For example, the OBP as the boot loader 1 that activates the OS may have a function of checking virtual hardware resources allocated to the guest domain 140. The condition for starting the OS may be a condition that “the virtual hardware resource allocated to the guest domain 140 is determined to be normal as a result of the check”.
 また、例えば、ゲストドメイン140の再起動の際にインタラクティブなモードでOBPを実行するように指定されて、ゲストドメイン140が再起動される場合もある。この場合、OBPは、図4の入出力装置71または端末75から、適宜のユーザインタフェイス(例えばコマンドラインインタフェイス)を介してアクセス可能である。この場合、OSを起動するための条件は、「チェックの結果、ゲストドメイン140に割り当てられた仮想ハードウェア資源が正常と判断され、かつ、所定の入力が与えられた」という条件でもよい。 Also, for example, when the guest domain 140 is restarted, the guest domain 140 may be restarted by specifying the OBP to be executed in an interactive mode. In this case, the OBP can be accessed from the input / output device 71 or the terminal 75 of FIG. 4 via an appropriate user interface (for example, a command line interface). In this case, the condition for starting the OS may be a condition that “the result of the check indicates that the virtual hardware resource allocated to the guest domain 140 is normal and a predetermined input is given”.
 OSを起動するための条件が成立している場合、図8の処理はステップS114に移行する。逆に、OSを起動するための条件が成立しない場合(例えば、まだ所定の入力が与えられていない場合)、図8の処理はステップS108に移行する。そして、生じるイベントに応じて、図8の処理は、ステップS108から、ステップS109、S110またはS113へと移行する。 If the conditions for starting the OS are satisfied, the process in FIG. 8 proceeds to step S114. Conversely, when the condition for starting the OS is not satisfied (for example, when a predetermined input has not been given yet), the processing in FIG. 8 proceeds to step S108. Then, depending on the event that occurs, the processing of FIG. 8 proceeds from step S108 to step S109, S110, or S113.
 具体的には、ゲストドメイン140のすべてのOBP環境変数の値を送るように制御ドメイン130から要求された場合、図8の処理は、ステップS108からステップS109に移行する。例えば、図1の状況4Bでは、第2の仮想マシン2としての制御ドメイン130から、ブートローダ1としてのOBPに対して、時刻T_bootにこのような要求が発行される。 Specifically, when the control domain 130 requests to send all the OBP environment variable values of the guest domain 140, the processing in FIG. 8 proceeds from step S108 to step S109. For example, in the situation 4B of FIG. 1, such a request is issued from the control domain 130 as the second virtual machine 2 to the OBP as the boot loader 1 at time T_boot.
 また、ゲストドメイン140の1つのOBP環境変数に関して保存指示が与えられた場合、図8の処理は、ステップS108からステップS110に移行する。保存指示は、OBP環境変数の値を更新して更新後の新たな値を保存するように求める指示である。保存指示は、OBPのユーザインタフェイスを介して、入出力装置71または端末75から与えられる。 If a save instruction is given for one OBP environment variable of the guest domain 140, the processing in FIG. 8 proceeds from step S108 to step S110. The save instruction is an instruction to update the value of the OBP environment variable and save the updated new value. The save instruction is given from the input / output device 71 or the terminal 75 via the OBP user interface.
 例えば、図1の状況4A~4Cのそれぞれにおける、第1の環境変数の「A1」から「A2」への更新は、保存指示に基づいて行われる。同様に、状況4B、4D、4Eのそれぞれにおける、第3の環境変数の「C1」から「C2」への更新も、保存指示に基づいて行われる。 For example, the update of the first environment variable “A1” to “A2” in each of the situations 4A to 4C in FIG. 1 is performed based on the save instruction. Similarly, the third environment variable “C1” to “C2” in each of the situations 4B, 4D, and 4E is also updated based on the save instruction.
 その他の種類のイベントが生じると、図8の処理は、ステップS108からステップS113に移行する。 When another type of event occurs, the process in FIG. 8 proceeds from step S108 to step S113.
 さて、ステップS109で環境変数管理部142は、ステップS106に関して説明した上記記憶領域から、ゲストドメイン140の全OBP環境変数の値を読み出す。そして、環境変数管理部142は、読み出した全OBP環境変数の値を、通信部143とハイパーバイザ160を介して、制御ドメイン130に通知する。 In step S109, the environment variable management unit 142 reads the values of all OBP environment variables of the guest domain 140 from the storage area described with reference to step S106. The environment variable management unit 142 notifies the control domain 130 of the values of all the read OBP environment variables via the communication unit 143 and the hypervisor 160.
 なお、当該通知を受信した制御ドメイン130の動作については、図11とともに後述する。通知後、図8の処理はステップS109からステップS107へと戻る。 The operation of the control domain 130 that has received the notification will be described later with reference to FIG. After the notification, the processing in FIG. 8 returns from step S109 to step S107.
 さて、ステップS110で環境変数管理部142は、与えられた保存指示にしたがって、制御ドメイン130に対して要求を発行する。つまり、環境変数管理部142は、OBP環境変数の値を保存するよう、通信部143とハイパーバイザ160を介して、制御ドメイン130に要求する。当該要求は、具体的には、OBP環境変数の名前と値を含む。 In step S110, the environment variable management unit 142 issues a request to the control domain 130 according to the given storage instruction. That is, the environment variable management unit 142 requests the control domain 130 via the communication unit 143 and the hypervisor 160 to store the value of the OBP environment variable. The request specifically includes the name and value of the OBP environment variable.
 なお、当該要求を受信した制御ドメイン130の動作の詳細は、図10とともに後述するが、制御ドメイン130が正常に動作していれば、要求に対してACKが返される。よって、環境変数管理部142は、以下のいずれかのイベントが生じるのをステップS111で待つ。 Note that details of the operation of the control domain 130 that has received the request will be described later with reference to FIG. 10, but if the control domain 130 is operating normally, an ACK is returned for the request. Therefore, the environment variable management unit 142 waits for one of the following events to occur in step S111.
  ・環境変数管理部142が、ハイパーバイザ160と通信部143を介して、制御ドメイン130からACKを受信した、というイベント。
  ・ステップS110での要求から所定時間が経過した、というイベント。
An event that the environment variable management unit 142 has received an ACK from the control domain 130 via the hypervisor 160 and the communication unit 143.
An event that a predetermined time has elapsed since the request in step S110.
 前者のイベントが生じると、図8の処理は、ステップS111からステップS107へと戻る。後者のイベントが生じると、図8の処理は、ステップS111からステップS112へと移行する。なお、ステップS111における所定時間は、ステップS103における所定時間と同じでもよいし、違っていてもよい。 When the former event occurs, the processing in FIG. 8 returns from step S111 to step S107. When the latter event occurs, the processing in FIG. 8 proceeds from step S111 to step S112. Note that the predetermined time in step S111 may be the same as or different from the predetermined time in step S103.
 ステップS112で環境変数管理部142は、与えられた保存指示にしたがって、SP170に対して要求を発行する。つまり、環境変数管理部142は、OBP環境変数の値を保存するよう、通信部143とハイパーバイザ160を介して、SP170に要求する。当該要求は、具体的には、OBP環境変数の名前と値を含む。 In step S112, the environment variable management unit 142 issues a request to the SP 170 in accordance with the given storage instruction. In other words, the environment variable management unit 142 requests the SP 170 via the communication unit 143 and the hypervisor 160 to save the value of the OBP environment variable. The request specifically includes the name and value of the OBP environment variable.
 なお、当該要求を受信したSP170の動作の詳細は、図9とともに後述する。図5に関して述べたとおり、「OBP環境変数の値を保存するよう環境変数管理部142がSP170に要求する時点において、SP170は正常に動作している」と仮定する。この仮定によれば、環境変数管理部142は、ハイパーバイザ160と通信部143を介して、SP170から、成功裡にACKを受信する。したがって、図8の処理は、ステップS112からステップS107へと戻る。 Details of the operation of the SP 170 that has received the request will be described later with reference to FIG. As described with reference to FIG. 5, it is assumed that “the SP 170 is operating normally when the environment variable management unit 142 requests the SP 170 to save the value of the OBP environment variable”. According to this assumption, the environment variable management unit 142 successfully receives an ACK from the SP 170 via the hypervisor 160 and the communication unit 143. Therefore, the process of FIG. 8 returns from step S112 to step S107.
 例えば、図1の状況4Aと4Bの各々における、第2の環境変数の「B2」という値の環境変数保存部171への保存は、ステップS110、S111、S112と順に図8の処理が進むことで、実現される。 For example, in each of the situations 4A and 4B in FIG. 1, the storage of the value “B2” of the second environment variable in the environment variable storage unit 171 proceeds in the order of steps S110, S111, and S112 in order of FIG. This is realized.
 さて、ステップS113では、イベントの種類に応じた適宜の処理が行われる。例えば、OBP内でのメニューの選択などが行われてもよい。そして、図8の処理はステップS113からステップS107に戻る。なお、何もイベントが生じなければ、環境変数管理部142は、ステップS108でイベントの発生を待つ。 Now, in step S113, appropriate processing according to the type of event is performed. For example, menu selection in the OBP may be performed. Then, the processing in FIG. 8 returns from step S113 to step S107. If no event occurs, the environment variable management unit 142 waits for an event to occur in step S108.
 以上のとおり、OSを起動するための条件がまだ成立しないうちは、ステップS108~S113の処理が実行される。そして、OSを起動するための条件が成立すると、ステップS114で、環境変数管理部142から、通信部143とハイパーバイザ160を介して制御ドメイン130に通知が送られる。具体的には、環境変数管理部142は、OBPが終了することを制御ドメイン130に通知する。 As described above, the processing of steps S108 to S113 is executed as long as the condition for starting the OS is not yet established. When the conditions for starting the OS are satisfied, a notification is sent from the environment variable management unit 142 to the control domain 130 via the communication unit 143 and the hypervisor 160 in step S114. Specifically, the environment variable management unit 142 notifies the control domain 130 that the OBP is finished.
 そして、次のステップS115でOS起動部141がOSを起動する。図8の処理はステップS115で終了する。すなわち、OSの起動後は、ゲストドメイン140でOBPは動作していない状態となる。 Then, in the next step S115, the OS activation unit 141 activates the OS. The process of FIG. 8 ends in step S115. That is, after the OS is started, the OBP is not operating in the guest domain 140.
 さて、図9は、OBP環境変数に関してSPが行う処理のフローチャートである。コンピュータ100に電源が入れられると、SP170は図9の処理を開始する。
 SP170は、以下のいずれかのイベントが生じるのをステップS201で待つ。
FIG. 9 is a flowchart of processing performed by the SP regarding the OBP environment variable. When the computer 100 is turned on, the SP 170 starts the processing of FIG.
In step S201, the SP 170 waits for any of the following events to occur.
  ・保存制御部172が、ハイパーバイザ160と通信部173を介して制御ドメイン130から、いずれかのゲストドメインのOBP環境変数を送るよう要求された、というイベント。
  ・保存制御部172が、ハイパーバイザ160と通信部173を介していずれかのゲストドメインから、OBP環境変数の値を受信した、というイベント。
An event that the storage control unit 172 has been requested to send an OBP environment variable of any guest domain from the control domain 130 via the hypervisor 160 and the communication unit 173.
An event that the storage control unit 172 has received the value of the OBP environment variable from one of the guest domains via the hypervisor 160 and the communication unit 173.
 前者のイベントが生じると、図9の処理はステップS202へと移行する。後者のイベントが生じると、図9の処理は、ステップS204へと移行する。
 さて、制御ドメイン130は、ゲストドメイン140のOBP環境変数の値を送るようにSP170に要求することもあり得るし、ゲストドメイン150のOBP環境変数の値を送るようにSP170に要求することもあり得る。以下では便宜上、制御ドメイン130が、ゲストドメイン140のOBP環境変数の値を送るようにSP170に要求した場合のステップS202~S203の動作について説明する。
When the former event occurs, the process in FIG. 9 proceeds to step S202. When the latter event occurs, the process in FIG. 9 proceeds to step S204.
The control domain 130 may request the SP 170 to send the value of the OBP environment variable of the guest domain 140, or may request the SP 170 to send the value of the OBP environment variable of the guest domain 150. obtain. Hereinafter, for the sake of convenience, the operations in steps S202 to S203 when the control domain 130 requests the SP 170 to send the value of the OBP environment variable of the guest domain 140 will be described.
 ステップS202で保存制御部172は、当該ゲストドメイン140に関して環境変数保存部171に保存されている各OBP環境変数を読み出す。例えば、ゲストドメイン140がn番目のゲストドメインである場合、保存制御部172は、環境変数テーブル210-nの全エントリを環境変数保存部171から読み出す。各エントリは、図6のとおり、OBP環境変数の値だけでなく、OBP環境変数の名前と時刻情報を含む。 In step S202, the storage control unit 172 reads out each OBP environment variable stored in the environment variable storage unit 171 with respect to the guest domain 140. For example, when the guest domain 140 is the nth guest domain, the storage control unit 172 reads all entries of the environment variable table 210-n from the environment variable storage unit 171. As shown in FIG. 6, each entry includes not only the value of the OBP environment variable but also the name and time information of the OBP environment variable.
 そして、保存制御部172は、読み出した各OBP環境変数の値を、読み出した時刻情報(およびOBP環境変数の名前)とともに、通信部173およびハイパーバイザ160を介して、制御ドメイン130に通知する。例えば、図1の状況4Aでは、ステップS202において、第2のプロセッサ3(具体的にはSP170内の保存制御部172)が、「B2」という値を、第2の仮想マシン2(具体的には制御ドメイン130)に通知する。 The storage control unit 172 notifies the value of each read OBP environment variable to the control domain 130 through the communication unit 173 and the hypervisor 160 together with the read time information (and the name of the OBP environment variable). For example, in the situation 4A in FIG. 1, in step S202, the second processor 3 (specifically, the storage control unit 172 in the SP 170) sets the value “B2” to the second virtual machine 2 (specifically, Notifies the control domain 130).
 なお、環境変数テーブル210-nは、1つのエントリのみを含むこともあり得るし、2つ以上のエントリを含むこともあり得る。場合によっては、環境変数テーブル210-nには1つもエントリがないこともあり得る。環境変数テーブル210-nに1つもエントリがない場合、ステップS202の通知は、換言すれば、「所望のゲストドメイン140に関しては、SP170にはOBP環境変数の値が保存されていない」と示す通知である。 Note that the environment variable table 210-n may include only one entry, or may include two or more entries. In some cases, there may be no entry in the environment variable table 210-n. If there is no entry in the environment variable table 210-n, the notification in step S202 is, in other words, a notification indicating that the SP 170 does not store the value of the OBP environment variable for the desired guest domain 140. It is.
 ステップS202の通知を受けた制御ドメイン130の動作については、図11~12とともに後述する。ステップS202の通知後、図9の処理はステップS203に移行する。 The operation of the control domain 130 that has received the notification in step S202 will be described later with reference to FIGS. After the notification in step S202, the process in FIG. 9 proceeds to step S203.
 ステップS203で保存制御部172は、要求されたゲストドメイン140のOBP環境変数を破棄する。例えば、ゲストドメイン140がn番目のゲストドメインである場合、保存制御部172は、環境変数テーブル210-nの全エントリを削除する。そして、図9の処理はステップS203からステップS201へと戻る。 In step S203, the storage control unit 172 discards the requested OBP environment variable of the guest domain 140. For example, when the guest domain 140 is the nth guest domain, the storage control unit 172 deletes all entries in the environment variable table 210-n. 9 returns from step S203 to step S201.
 なお、ステップS203での破棄は、環境変数保存部171の記憶領域を無駄に使わないようにするための処理である。実施形態によっては、ステップS203は省略されてもよい。 Note that the discarding in step S203 is a process for avoiding wasteful use of the storage area of the environment variable storage unit 171. Depending on the embodiment, step S203 may be omitted.
 ところで、SP170は、ゲストドメイン140からOBP環境変数の値を受信することもあり得るし、ゲストドメイン150からOBP環境変数の値を受信することもあり得る。以下では便宜上、SP170がゲストドメイン140からOBP環境変数の値を受信した場合のステップS204~S205の動作について説明する。 Incidentally, the SP 170 may receive the value of the OBP environment variable from the guest domain 140, or may receive the value of the OBP environment variable from the guest domain 150. Hereinafter, for the sake of convenience, the operations in steps S204 to S205 when the SP 170 receives the value of the OBP environment variable from the guest domain 140 will be described.
 ステップS204で保存制御部172は、ゲストドメイン140から受信したOBP環境変数の値を、現在時刻を示す現在時刻情報とともに環境変数保存部171に保存する。例えば、ゲストドメイン140がn番目のゲストドメインであるとする。この場合、保存制御部172は、環境変数テーブル210-nに、ゲストドメイン140から受信したOBP環境変数の値を、当該OBP環境変数の名前で識別されるエントリに、現在時刻情報とともに保存する。 In step S204, the storage control unit 172 stores the value of the OBP environment variable received from the guest domain 140 in the environment variable storage unit 171 together with current time information indicating the current time. For example, assume that the guest domain 140 is the nth guest domain. In this case, the storage control unit 172 stores the value of the OBP environment variable received from the guest domain 140 in the environment variable table 210-n in the entry identified by the name of the OBP environment variable along with the current time information.
 上記のとおり、ゲストドメイン140から受信される要求には、OBP環境変数の値だけでなく、名前も含まれる。よって、保存制御部172は、どのエントリに値を保存するかを決めることができる。 As described above, the request received from the guest domain 140 includes not only the value of the OBP environment variable but also the name. Therefore, the storage control unit 172 can determine in which entry the value is stored.
 なお、環境変数テーブル210-nにおいて、ゲストドメイン140から新たな値を受信した当該OBP環境変数に対応するエントリが、既に存在している場合もあり得る。逆に、当該OBP環境変数に対応するエントリが存在しない場合もあり得る。 In the environment variable table 210-n, an entry corresponding to the OBP environment variable that has received a new value from the guest domain 140 may already exist. Conversely, there may be no entry corresponding to the OBP environment variable.
 エントリが既に存在していれば、保存制御部172は、既存のエントリを上書きする。逆に、エントリが存在しない場合、保存制御部172は、受信したOBP環境変数の値を保存するために新規エントリを作成し、新規エントリに、受信したOBP環境変数の値と、OBP環境変数の名前と、現在時刻情報とを保存する。 If the entry already exists, the storage control unit 172 overwrites the existing entry. On the other hand, if there is no entry, the storage control unit 172 creates a new entry to store the received OBP environment variable value, and the received OBP environment variable value and the OBP environment variable value are stored in the new entry. Save the name and current time information.
 例えば、図1の状況4Aと4Bのいずれにおいても、第2のプロセッサ3に対応する保存制御部172が、ステップS204で、環境変数保存部171に「B2」という値を保存する。 For example, in any of the situations 4A and 4B in FIG. 1, the storage control unit 172 corresponding to the second processor 3 stores the value “B2” in the environment variable storage unit 171 in step S204.
 そして、ステップS204の次に、ステップS205において、保存制御部172は、通信部173とハイパーバイザ160を介して、ゲストドメイン140に対してACKを送信する。ACKの送信後、図9の処理はステップS201に戻る。このACKがゲストドメイン140で受信されると、上記のとおり、図8の処理がステップS112からステップS107へと戻る。 After step S204, in step S205, the storage control unit 172 transmits ACK to the guest domain 140 via the communication unit 173 and the hypervisor 160. After the transmission of ACK, the process of FIG. 9 returns to step S201. When this ACK is received by the guest domain 140, as described above, the processing in FIG. 8 returns from step S112 to step S107.
 さて、図10は、OBP環境変数に関して制御ドメインが行う処理のフローチャートである。例えば、コンピュータ10に制御ドメイン130上で図10の処理を実行させるためのプログラムとして、制御ドメイン130のOS内の、OBP環境変数を管理するためのプログラムモジュールが使われてもよい。この場合、制御ドメイン130上でOBPからOSが起動されると、図10の処理が開始される。 FIG. 10 is a flowchart of processing performed by the control domain regarding the OBP environment variable. For example, as a program for causing the computer 10 to execute the processing of FIG. 10 on the control domain 130, a program module for managing OBP environment variables in the OS of the control domain 130 may be used. In this case, when the OS is started from the OBP on the control domain 130, the processing of FIG. 10 is started.
 ステップS301では、図11~12の環境変数更新処理が行われる。その後、制御ドメイン130は、以下のいずれかのイベントが生じるのをステップS302で待つ。 In step S301, the environment variable update process of FIGS. 11 to 12 is performed. Thereafter, the control domain 130 waits for one of the following events to occur in step S302.
  ・新たなゲストドメインが追加された、というイベント。
  ・既存のゲストドメインが削除された、というイベント。
  ・OBP状態管理部132が、ハイパーバイザ160と通信部133を介して、いずれかのゲストドメインから状態遷移通知を受信した、というイベント。
  ・更新部135が、ハイパーバイザ160と通信部133を介して、いずれかのゲストドメインからOBP環境変数の値を受信した、というイベント。
  ・設定部134が、ハイパーバイザ160と通信部133を介して、いずれかのゲストドメインから、当該ゲストドメインのOBP環境変数の値を送るよう要求された、というイベント。
-An event that a new guest domain has been added.
-An event that an existing guest domain was deleted.
An event that the OBP state management unit 132 has received a state transition notification from one of the guest domains via the hypervisor 160 and the communication unit 133.
An event that the update unit 135 has received the value of the OBP environment variable from one of the guest domains via the hypervisor 160 and the communication unit 133.
An event that the setting unit 134 is requested to send a value of an OBP environment variable of the guest domain from any guest domain via the hypervisor 160 and the communication unit 133.
 ゲストドメインの追加と削除は、具体的には、制御ドメイン130の提供するユーザインタフェイス(例えばコマンドラインインタフェイス)を介して行われる。例えば、入出力装置71または端末75からのユーザ入力に応じて、ゲストドメインが追加または削除されてもよい。OBP状態管理部132は、ゲストドメインが追加または削除されたというイベントを検出することができる。 Specifically, addition and deletion of guest domains are performed via a user interface (for example, a command line interface) provided by the control domain 130. For example, a guest domain may be added or deleted in response to a user input from the input / output device 71 or the terminal 75. The OBP state management unit 132 can detect an event that a guest domain has been added or deleted.
 新たなゲストドメインが追加されると、図10の処理は、ステップS302からステップS303へと移行する。逆に、既存のゲストドメインが削除されると、図10の処理は、ステップS302からステップS305へと移行する。 When a new guest domain is added, the processing in FIG. 10 proceeds from step S302 to step S303. Conversely, when the existing guest domain is deleted, the processing in FIG. 10 proceeds from step S302 to step S305.
 また、制御ドメイン130のOBP状態管理部132により管理される図7の状態リスト220は、具体的には、各ゲストドメインから制御ドメイン130への状態遷移通知に基づいて更新される。ゲストドメインは、状態遷移通知を制御ドメイン130に送ることにより、当該ゲストドメイン自体の状態の遷移を制御ドメイン130に知らせる。 Further, the state list 220 of FIG. 7 managed by the OBP state management unit 132 of the control domain 130 is specifically updated based on a state transition notification from each guest domain to the control domain 130. The guest domain notifies the control domain 130 of the state transition of the guest domain itself by sending a state transition notification to the control domain 130.
 なお、ハイパーバイザ160上の各ドメインの状態は、当該ドメイン自体が起動していない状態(以下、「ドメインオフ状態」ともいう)から、以下のように遷移する。まず、ドメインが起動されると、ドメイン上でOBPが稼働を開始する。OBPが稼働している状態を、以下では「OBP稼働状態」ともいう。その後、OBPからOSが起動されると、OBPは稼働を停止する。すなわち、ドメインは、OSが稼働している状態(以下では「OS稼働状態」ともいう)へと遷移する。 The state of each domain on the hypervisor 160 transitions from the state where the domain itself is not activated (hereinafter also referred to as “domain off state”) as follows. First, when the domain is activated, OBP starts operating on the domain. Hereinafter, the state in which the OBP is operating is also referred to as an “OBP operating state”. Thereafter, when the OS is started from the OBP, the OBP stops operating. That is, the domain transitions to a state where the OS is operating (hereinafter also referred to as “OS operating state”).
 何らかのエラーに応じて、自動的にドメイン上でOSが再起動されることもあり得るし、ユーザからの明示的な入力に応じて、ドメイン上でOSが再起動されることもあり得る。いずれの場合も、ドメインは、一旦OS稼働状態からOBP稼働状態へと遷移し、再度、OS稼働状態へと遷移する。 The OS may be automatically restarted on the domain in response to some error, or the OS may be restarted on the domain in response to an explicit input from the user. In either case, the domain temporarily transitions from the OS operating state to the OBP operating state, and again transitions to the OS operating state.
 また、何らかのエラーによりドメインがシャットダウンしてしまう場合もあり得るし、ユーザからの明示的な入力に応じてドメインがシャットダウンされることもある。いずれの場合も、ドメインは、ドメインオフ状態へと遷移する。 Also, the domain may shut down due to some error, or the domain may be shut down in response to an explicit input from the user. In either case, the domain transitions to the domain off state.
 いずれのゲストドメインのOBPも、ドメインオフ状態、OBP稼働状態、およびOS稼働状態のうち、OBP稼働状態においてのみ、制御ドメイン130と通信可能である。 Any guest domain OBP can communicate with the control domain 130 only in the OBP operating state among the domain off state, the OBP operating state, and the OS operating state.
 例えば、図5のOS起動部141、環境変数管理部142、および通信部143は、ゲストドメイン140のOBPをCPUが実行することで実現される。したがって、OS起動部141、環境変数管理部142、および通信部143は、ゲストドメイン140がOBP稼働状態のときにアクティブである。そして、ゲストドメイン140は、通信部143がアクティブなとき、制御ドメイン130と通信可能である。しかし、ゲストドメイン140がドメインオフ状態またはOS稼働状態のときには、OS起動部141、環境変数管理部142、および通信部143は、アクティブではない。 For example, the OS activation unit 141, the environment variable management unit 142, and the communication unit 143 in FIG. 5 are realized by the CPU executing the OBP of the guest domain 140. Therefore, the OS activation unit 141, the environment variable management unit 142, and the communication unit 143 are active when the guest domain 140 is in the OBP operating state. The guest domain 140 can communicate with the control domain 130 when the communication unit 143 is active. However, when the guest domain 140 is in the domain off state or the OS operating state, the OS activation unit 141, the environment variable management unit 142, and the communication unit 143 are not active.
 各ゲストドメインは、制御ドメイン130と当該ゲストドメインのOBPが通信可能か否かを制御ドメイン130に通知するために、状態遷移通知を送る。具体的には、状態遷移通知には、図8のステップS101とS114でそれぞれ送られる2種類がある。いずれかのゲストドメインからのいずれかの種類の状態遷移通知が制御ドメイン130で受信されると、図10の処理は、ステップS302からステップS306へと移行する。 Each guest domain sends a state transition notification to notify the control domain 130 whether or not the control domain 130 and the OBP of the guest domain can communicate. Specifically, there are two types of state transition notifications sent in steps S101 and S114 in FIG. When any type of state transition notification from any guest domain is received by the control domain 130, the processing in FIG. 10 proceeds from step S302 to step S306.
 また、図8のステップS110に示すように、いずれかのゲストドメインからOBP環境変数の値が送られることがある。送られた値は、ハイパーバイザ160と通信部133を介して、制御ドメイン130の更新部135により受信される。受信に応じて、図10の処理は、ステップS302からステップS309へと移行する。 In addition, as shown in step S110 of FIG. 8, the value of the OBP environment variable may be sent from any guest domain. The sent value is received by the update unit 135 of the control domain 130 via the hypervisor 160 and the communication unit 133. In response to reception, the processing in FIG. 10 proceeds from step S302 to step S309.
 そして、図8のステップS102に示すように、いずれかのゲストドメインが、当該ゲストドメインの全OBP環境変数の値を送るよう、制御ドメイン130に要求することがある。当該要求は、ハイパーバイザ160と通信部133を介して、制御ドメイン130の設定部134により受信される。受信に応じて、図10の処理は、ステップS302からステップS311に移行する。 Then, as shown in step S102 of FIG. 8, any guest domain may request the control domain 130 to send the values of all OBP environment variables of the guest domain. The request is received by the setting unit 134 of the control domain 130 via the hypervisor 160 and the communication unit 133. In response to reception, the processing in FIG. 10 proceeds from step S302 to step S311.
 さて、ステップS303では、OBP状態管理部132が、図7の状態リスト220に、追加された新規ゲストドメインのエントリを追加する。そして、OBP状態管理部132は、追加したエントリにおいて、状態フラグの値をFALSEに初期化する。また、OBP状態管理部132は、追加したエントリにドメイン番号も設定する。 In step S303, the OBP state management unit 132 adds an entry for the added new guest domain to the state list 220 in FIG. Then, the OBP state management unit 132 initializes the value of the state flag to FALSE in the added entry. The OBP state management unit 132 also sets a domain number in the added entry.
 新規ゲストドメインが追加されると、ハイパーバイザ160または制御ドメイン130により、新規ドメイン番号が発行され、発行された新規ドメイン番号が新規ゲストドメインに割り当てられる。例えば、ゲストドメインの追加と削除のための制御ドメイン130中のモジュールは、新規ゲストドメインの追加に応じて、新規ドメイン番号をOBP状態管理部132に通知してもよい。すると、OBP状態管理部132は、通知された新規ドメイン番号を、上記の追加したエントリに設定することができる。 When a new guest domain is added, a new domain number is issued by the hypervisor 160 or the control domain 130, and the issued new domain number is assigned to the new guest domain. For example, a module in the control domain 130 for adding and deleting a guest domain may notify the OBP state management unit 132 of a new domain number in accordance with the addition of a new guest domain. Then, the OBP state management unit 132 can set the notified new domain number in the added entry.
 続いて、ステップS304で設定部134は、新規ゲストドメインの各OBP環境変数のデフォルト値を環境変数保存部131に保存する。デフォルト値は、OBPの仕様により予め決められている。 Subsequently, in step S304, the setting unit 134 stores the default value of each OBP environment variable of the new guest domain in the environment variable storage unit 131. The default value is determined in advance according to the OBP specification.
 例えば、N番目のゲストドメインが新規に作成されたとする。この場合、設定部134は、新規ゲストドメイン用の環境変数テーブル200-Nを環境変数保存部131に作成し、環境変数テーブル200-Nに、新規ゲストドメインの各OBP環境変数の名前とデフォルト値を設定する。また、設定部134は、作成した環境変数テーブル200-Nの各エントリに、現在時刻を示す時刻情報を設定する。そして、図10の処理は、ステップS304からステップS302へと戻る。 Suppose, for example, that the Nth guest domain is newly created. In this case, the setting unit 134 creates the environment variable table 200-N for the new guest domain in the environment variable storage unit 131, and stores the name and default value of each OBP environment variable of the new guest domain in the environment variable table 200-N. Set. The setting unit 134 also sets time information indicating the current time in each entry of the created environment variable table 200-N. Then, the process of FIG. 10 returns from step S304 to step S302.
 他方、既存のゲストドメインが削除された場合は、削除されたゲストドメインに関する情報がステップS305で削除される。具体的には、OBP状態管理部132が、削除されたゲストドメインに対応するエントリを状態リスト220から削除し、設定部134が、削除されたゲストドメインのOBP環境変数を保存するための環境変数テーブルを環境変数保存部131から削除する。そして、図10の処理は、ステップS305からステップS302へと戻る。 On the other hand, when the existing guest domain is deleted, information regarding the deleted guest domain is deleted in step S305. Specifically, the OBP state management unit 132 deletes the entry corresponding to the deleted guest domain from the state list 220, and the setting unit 134 stores the OBP environment variable of the deleted guest domain. The table is deleted from the environment variable storage unit 131. Then, the process of FIG. 10 returns from step S305 to step S302.
 なお、ゲストドメインの追加と削除のための制御ドメイン130中のモジュールは、既存のゲストドメインの削除に応じて、削除されたゲストドメインのドメイン番号をOBP状態管理部132と設定部134に通知してもよい。OBP状態管理部132と設定部134は、通知されたドメイン番号に応じて、何を削除するかを認識することができる。 The module in the control domain 130 for adding and deleting a guest domain notifies the OBP state management unit 132 and the setting unit 134 of the domain number of the deleted guest domain according to the deletion of the existing guest domain. May be. The OBP state management unit 132 and the setting unit 134 can recognize what is to be deleted according to the notified domain number.
 さて、ステップS306では、状態遷移通知を受信したOBP状態管理部132が、状態遷移通知の種類を判断する。受信した状態遷移通知がOBPの起動の通知(すなわち、他の状態からOBP稼働状態への遷移の通知)である場合、図10の処理は、ステップS306からステップS307に移行する。逆に、受信した状態遷移通知がOBPの終了の通知(すなわち、OBP稼働状態からOS稼働状態への遷移の通知)である場合、図10の処理は、ステップS306からステップS308へと移行する。 In step S306, the OBP state management unit 132 that has received the state transition notification determines the type of state transition notification. When the received state transition notification is a notification of activation of OBP (that is, notification of transition from another state to the OBP operating state), the processing in FIG. 10 proceeds from step S306 to step S307. Conversely, if the received state transition notification is a notification of the end of OBP (that is, notification of transition from the OBP operating state to the OS operating state), the processing in FIG. 10 proceeds from step S306 to step S308.
 ステップS307でOBP状態管理部132は、OBPの起動を通知してきた当該ゲストドメインの状態フラグを、TRUEに設定する。例えば、ドメイン番号がnのゲストドメインから、OBPの起動を知らせる状態遷移通知を受け取った場合、OBP状態管理部132は、状態リスト220においてnというドメイン番号に対応づけられた状態フラグの値を、TRUEに設定する。そして、図10の処理はステップS307からステップS302に戻る。 In step S307, the OBP state management unit 132 sets the state flag of the guest domain that has notified the activation of the OBP to TRUE. For example, when a state transition notification notifying activation of OBP is received from a guest domain having a domain number n, the OBP state management unit 132 sets the value of the state flag associated with the domain number n in the state list 220 as follows: Set to TRUE. Then, the processing in FIG. 10 returns from step S307 to step S302.
 他方、ステップS308でOBP状態管理部132は、OBPの終了を通知してきた当該ゲストドメインの状態フラグを、FALSEに設定する。例えば、ドメイン番号がnのゲストドメインから、OBPの終了を知らせる状態遷移通知を受け取った場合、OBP状態管理部132は、状態リスト220においてnというドメイン番号に対応づけられた状態フラグの値を、FALSEに設定する。そして、図10の処理はステップS308からステップS302に戻る。 On the other hand, in step S308, the OBP state management unit 132 sets the state flag of the guest domain that has notified the end of the OBP to FALSE. For example, when a state transition notification notifying the end of OBP is received from a guest domain with a domain number n, the OBP state management unit 132 sets the value of the state flag associated with the domain number n in the state list 220 as follows: Set to FALSE. Then, the processing in FIG. 10 returns from step S308 to step S302.
 さて、ステップS309では、更新部135が、ゲストドメインから受信したOBP環境変数の値を現在時刻と対応づけて環境変数保存部131に保存する。説明の便宜上、例えば以下のように仮定する。 In step S309, the updating unit 135 stores the value of the OBP environment variable received from the guest domain in the environment variable storage unit 131 in association with the current time. For convenience of explanation, for example, the following is assumed.
  ・ゲストドメイン140がn番目のゲストドメインである。
  ・更新部135は、ハイパーバイザ160と通信部133を介して、ゲストドメイン140から、「ENV_VAR_1」という名前のOBP環境変数の値として、「FALSE」という値を受信した。
Guest domain 140 is the nth guest domain.
The update unit 135 receives the value “FALSE” as the value of the OBP environment variable named “ENV_VAR_1” from the guest domain 140 via the hypervisor 160 and the communication unit 133.
 以上のような仮定のもとでは、ステップS309で更新部135は、具体的には、環境変数テーブル200-nにおいて「ENV_VAR_1」という名前のOBP環境変数に対応するエントリを更新する。すなわち、更新部135は、ゲストドメイン140から受信した「FALSE」という値を当該エントリに保存するとともに、現在時刻を示す時刻情報を当該エントリに保存する。 Under the above assumption, in step S309, the updating unit 135 specifically updates the entry corresponding to the OBP environment variable named “ENV_VAR_1” in the environment variable table 200-n. That is, the updating unit 135 stores the value “FALSE” received from the guest domain 140 in the entry, and stores time information indicating the current time in the entry.
 さらに、ステップS309では、OBP状態管理部132が、状態リスト220におけるゲストドメイン140の状態フラグの値をTRUEに設定する。すると、制御ドメイン130が動作していない間にゲストドメイン140でOBPが起動した場合(つまり図8のステップS101の通知をOBP状態管理部132が受け取れなかった場合)に、後から状態フラグの値を訂正することが可能となる。 Further, in step S309, the OBP state management unit 132 sets the value of the state flag of the guest domain 140 in the state list 220 to TRUE. Then, when the OBP is activated in the guest domain 140 while the control domain 130 is not operating (that is, when the OBP state management unit 132 cannot receive the notification in step S101 of FIG. 8), the value of the state flag is later Can be corrected.
 そして、次のステップS310で更新部135は、OBP環境変数の値の送信元であるゲストドメインに宛てて、通信部133とハイパーバイザ160を介して、ACKを送信する。ACKの送信後、図10の処理はステップS302に戻る。なお、ステップS310で送信されたACKがゲストドメインによって受信されると、上記のとおり、図8の処理が、ステップS111からステップS107へと戻る。 In the next step S310, the updating unit 135 transmits an ACK to the guest domain that is the transmission source of the value of the OBP environment variable via the communication unit 133 and the hypervisor 160. After the transmission of ACK, the process of FIG. 10 returns to step S302. When the ACK transmitted in step S310 is received by the guest domain, the process in FIG. 8 returns from step S111 to step S107 as described above.
 さて、ステップS311では、設定部134が、要求元のゲストドメインの全OBP環境変数の値を、通信部133とハイパーバイザ160を介して、要求元のゲストドメインに送る。説明の便宜上、例えば以下のように仮定する。 In step S311, the setting unit 134 sends the values of all OBP environment variables of the requesting guest domain to the requesting guest domain via the communication unit 133 and the hypervisor 160. For convenience of explanation, for example, the following is assumed.
  ・ゲストドメイン140がn番目のゲストドメインである。
  ・設定部134は、ハイパーバイザ160と通信部133を介して、ゲストドメイン140から、図8のステップS102の要求を受信した。
Guest domain 140 is the nth guest domain.
The setting unit 134 receives the request in step S102 of FIG. 8 from the guest domain 140 via the hypervisor 160 and the communication unit 133.
 以上のような仮定のもとでは、ステップS311で設定部134は、具体的には、環境変数テーブル200-nから全エントリの値を読み出し、読み出したすべての値を、通信部133とハイパーバイザ160を介して、要求元のゲストドメイン140に送る。 Under the assumptions described above, in step S311, the setting unit 134 reads the values of all entries from the environment variable table 200-n, and sets all the read values to the communication unit 133 and the hypervisor. The request is sent to the requesting guest domain 140 via 160.
 さらに、ステップS311では、OBP状態管理部132が、状態リスト220におけるゲストドメイン140の状態フラグの値をTRUEに設定する。すると、制御ドメイン130が動作していない間にゲストドメイン140でOBPが起動した場合(つまり図8のステップS101の通知をOBP状態管理部132が受け取れなかった場合)に、後から状態フラグの値を訂正することが可能となる。 Further, in step S311, the OBP state management unit 132 sets the value of the state flag of the guest domain 140 in the state list 220 to TRUE. Then, when the OBP is activated in the guest domain 140 while the control domain 130 is not operating (that is, when the OBP state management unit 132 cannot receive the notification in step S101 of FIG. 8), the value of the state flag is later Can be corrected.
 OBP環境変数の送信と状態フラグの更新の後、図10の処理は、ステップS311からステップS302に戻る。 After sending the OBP environment variable and updating the status flag, the processing in FIG. 10 returns from step S311 to step S302.
 続いて、図10のステップS301の環境変数更新処理の詳細について説明する。図11~12は、第2実施形態における環境変数更新処理のフローチャートである。図7の説明と同様に、図11~12の説明においても、ゲストドメインの数をNとする(1≦N)。
 ステップS401で更新部135は、インデックス変数nを1に初期化する。
Next, details of the environment variable update process in step S301 in FIG. 10 will be described. 11 to 12 are flowcharts of the environment variable update process in the second embodiment. Similar to the description of FIG. 7, in the description of FIGS. 11 to 12, the number of guest domains is N (1 ≦ N).
In step S401, the update unit 135 initializes the index variable n to 1.
 次に、ステップS402で更新部135は、制御ドメイン130内の状態リスト220での、n番目のゲストドメインの状態フラグの値を参照する。状態リスト220は、OBP状態管理部132により管理され、更新部135からも参照可能である。 Next, in step S402, the update unit 135 refers to the value of the status flag of the nth guest domain in the status list 220 in the control domain 130. The state list 220 is managed by the OBP state management unit 132 and can also be referred to from the update unit 135.
 状態フラグの値がFALSEであれば、図11~12の処理はステップS403に移行する。逆に、状態フラグの値がTRUEであれば、図11~12の処理はステップS405に移行する。 If the value of the status flag is FALSE, the processing of FIGS. 11 to 12 proceeds to step S403. Conversely, if the value of the status flag is TRUE, the processing in FIGS. 11 to 12 proceeds to step S405.
 ステップS403で更新部135は、インデックス変数nを1だけインクリメントする。
 そして、次のステップS404で更新部135は、n>Nであるか否かを判断する。n>Nの場合、既にすべてのゲストドメインに関する処理が完了しているので、図11~12の処理も終了する。逆に、n≦Nならば、まだ更新部135が着目していないゲストドメインが残っているので、図11~12の処理は、ステップS402に戻る。
In step S403, the update unit 135 increments the index variable n by 1.
Then, in the next step S404, the updating unit 135 determines whether or not n> N. In the case of n> N, since the processing for all the guest domains has already been completed, the processing in FIGS. On the other hand, if n ≦ N, there are still guest domains that the update unit 135 has not focused on, so the processing in FIGS. 11 to 12 returns to step S402.
 ここで、ステップS402での分岐について補足する。ステップS402の分岐は、以下のことを意味する。 Here, it supplements about the branch in step S402. The branching in step S402 means the following.
  ・状態フラグの値がFALSEのとき、n番目のゲストドメインの各OBP環境変数の最新の値は、環境変数保存部131の環境変数テーブル200-nに保存されている。よって、環境変数テーブル200-nを更新する必要はない。
  ・状態フラグの値がTRUEのとき、環境変数保存部131の環境変数テーブル200-nに保存されている値が最新ではない可能性がある。よって、ステップS405以下の処理により、環境変数テーブル200-nに保存されている値が、適宜更新される。
When the value of the status flag is FALSE, the latest value of each OBP environment variable of the nth guest domain is stored in the environment variable table 200-n of the environment variable storage unit 131. Therefore, it is not necessary to update the environment variable table 200-n.
When the value of the status flag is TRUE, there is a possibility that the value stored in the environment variable table 200-n of the environment variable storage unit 131 is not the latest. Therefore, the values stored in the environment variable table 200-n are updated as appropriate by the processing from step S405.
 このステップS402の分岐の意味をより詳しく説明すると、以下のとおりである。
 上記のとおり、図1~2は、第2実施形態にも当てはまる。また、図1~2のブートローダ1、第2の仮想マシン2、および第2のプロセッサ3は、それぞれ、ゲストドメイン140のOBP、制御ドメイン130、およびSP170内の保存制御部172に対応する。
The meaning of the branching in step S402 will be described in more detail as follows.
As described above, FIGS. 1 and 2 also apply to the second embodiment. The boot loader 1, the second virtual machine 2, and the second processor 3 in FIGS. 1 and 2 correspond to the OBP of the guest domain 140, the control domain 130, and the storage control unit 172 in the SP 170, respectively.
 具体的には、図1の状況4Aおよび4Bのように、制御ドメイン130のOSが動作を停止した後もゲストドメイン140のOBPが動作し続ける場合(つまりT_down<T_endの場合)、ゲストドメイン140の状態フラグの値はTRUEである。なぜなら、状態フラグの値は、図8のステップS101の通知が制御ドメイン130に受信されたときに、図10のステップS307でTRUEに設定され、その後はまだFALSEには変更されていないからである。 Specifically, when the OBP of the guest domain 140 continues to operate even after the OS of the control domain 130 stops operating as in the situation 4A and 4B of FIG. 1 (that is, when T_down <T_end), the guest domain 140 The value of the status flag is TRUE. This is because the value of the status flag is set to TRUE in step S307 in FIG. 10 when the notification in step S101 in FIG. 8 is received by the control domain 130, and has not yet been changed to FALSE. .
 そして、このように状態フラグの値がTRUEの場合、状況4Aと4Bに例示されるとおり、制御ドメイン130のOSが前回稼働を停止してから、制御ドメイン130で今回の図10の処理が開始されるまでの間に、OBP環境変数の値が変更された可能性がある。つまり、時刻T_downから時刻T_bootまでの間に、OBP環境変数の値が環境変数保存部171に保存された可能性がある。 When the value of the status flag is TRUE in this way, as illustrated in the situations 4A and 4B, after the OS of the control domain 130 has stopped operating last time, the process of FIG. In the meantime, the value of the OBP environment variable may have been changed. That is, there is a possibility that the value of the OBP environment variable is stored in the environment variable storage unit 171 between the time T_down and the time T_boot.
 逆に、図1の状況4Cのように、制御ドメイン130のOSが動作を停止する前にゲストドメイン140のOBPが動作を終了する場合(つまりT_end<T_downの場合)、ゲストドメイン140の状態フラグの値はFALSEである。なぜなら、状態フラグの値は、時刻T_endでの図8のステップS114の通知が制御ドメイン130に受信されたときに、図10のステップS308でFALSEに設定され、その後はまだTRUEに変更されていないからである。 On the other hand, when the OBP of the guest domain 140 finishes operating before the OS of the control domain 130 stops operating (that is, when T_end <T_down), as in the situation 4C of FIG. 1, the status flag of the guest domain 140 The value of is FALSE. This is because the value of the status flag is set to FALSE in step S308 of FIG. 10 when the notification of step S114 of FIG. 8 at time T_end is received by the control domain 130, and has not yet been changed to TRUE. Because.
 状況4Cでは、制御ドメイン130のOSが前回時刻T_downに稼働を停止してから、時刻T_bootに制御ドメイン130で今回の図10の処理が開始されるまでの間に、ゲストドメイン140のOBP環境変数が変更されることはない。 In the situation 4C, the OBP environment variable of the guest domain 140 after the OS of the control domain 130 stops operating at the previous time T_down and before the current processing of FIG. 10 is started in the control domain 130 at the time T_boot. Will not be changed.
 また、図1の状況4Dのように、制御ドメイン130のOSが動作していない間にゲストドメイン140のOBPが動作を開始する場合(つまりT_down<T_start<T_bootの場合)もある。この場合も、ゲストドメイン140の状態フラグの値はFALSEである。その理由は次のとおりである。 Also, as in the situation 4D of FIG. 1, there is a case where the OBP of the guest domain 140 starts operating while the OS of the control domain 130 is not operating (that is, T_down <T_start <T_boot). Also in this case, the value of the status flag of the guest domain 140 is FALSE. The reason is as follows.
 前回(つまり時刻T_startよりも前に)ゲストドメイン140のOBPが動作を終了する際、図8のステップS114の通知が送られ、その結果、ゲストドメイン140の状態フラグの値は図10のステップS308でFALSEに設定されている。その後、時刻T_startにゲストドメイン140のOBPが動作を開始すると、ゲストドメイン140から、図8のステップS101の通知が送られる。しかし、この時点では、制御ドメイン130は動作していない。そのため、制御ドメイン130内の状態リスト220は更新されない。 When the OBP of the guest domain 140 finishes operation last time (that is, before the time T_start), the notification of step S114 in FIG. 8 is sent, and as a result, the value of the status flag of the guest domain 140 is set to step S308 in FIG. Is set to FALSE. Thereafter, when the OBP of the guest domain 140 starts operating at time T_start, the notification of step S101 in FIG. 8 is sent from the guest domain 140. However, at this point, the control domain 130 is not operating. Therefore, the state list 220 in the control domain 130 is not updated.
 したがって、時刻T_bootに制御ドメイン130のOSが起動したときには、実際にはゲストドメイン140のOBPが稼働中であるにもかかわらず、状態フラグの値はFALSEである。ところが、状態フラグの値がこのように実際の状態と異なっていても、問題はない。理由は以下のとおりである。 Therefore, when the OS of the control domain 130 is started at time T_boot, the value of the status flag is FALSE although the OBP of the guest domain 140 is actually operating. However, there is no problem even if the value of the status flag is different from the actual status. The reason is as follows.
 図1の状況4Dと図8のステップS102~S105の説明から分かるとおり、制御ドメイン130のOSが動作していない間に起動したゲストドメイン140のOBPは、制御ドメイン130の復旧を待つ。よって、制御ドメイン130のOSが動作していない間にOBP環境変数が更新されることはない。したがって、「状態フラグの値がFALSEなので環境変数テーブル200-n内の値はどれも最新である」という判断は正しい。 As can be seen from the situation 4D in FIG. 1 and the description of steps S102 to S105 in FIG. 8, the OBP of the guest domain 140 started while the OS of the control domain 130 is not operating waits for the control domain 130 to recover. Therefore, the OBP environment variable is not updated while the OS of the control domain 130 is not operating. Therefore, the determination that “the value of the status flag is FALSE, so all the values in the environment variable table 200-n are the latest” is correct.
 また、図1の4Eのように、制御ドメイン130のOSが復旧した後にゲストドメイン140のOBPが動作を開始する場合(つまりT_boot<T_startの場合)も、ゲストドメイン140の状態フラグの値はFALSEである。なぜなら、状態フラグの値は、以前図8のステップS114の通知が制御ドメイン130に受信されたときに、図10のステップS308でFALSEに設定され、その後はまだTRUEに変更されていないからである。 Further, as shown in 4E of FIG. 1, even when the OBP of the guest domain 140 starts operation after the OS of the control domain 130 is restored (that is, when T_boot <T_start), the value of the status flag of the guest domain 140 is FALSE. It is. This is because the value of the status flag is set to FALSE in step S308 of FIG. 10 when the notification of step S114 of FIG. 8 was previously received by the control domain 130 and has not yet been changed to TRUE. .
 状況4Eにおいても、制御ドメイン130のOSが前回時刻T_downに稼働を停止してから、時刻T_bootに制御ドメイン130で今回の図10の処理が開始されるまでの間に、ゲストドメイン140のOBP環境変数が変更されることはない。 Even in the situation 4E, after the OS of the control domain 130 stops operating at the previous time T_down and before the processing of FIG. 10 is started in the control domain 130 at the time T_boot, the OBP environment of the guest domain 140 The variable is never changed.
 状況4A~4Eと第2実施形態についての以上の説明から分かるように、状態フラグの値がFALSEのとき、環境変数テーブル200-nに保存されている値はいずれも最新である。他方、状態フラグの値がTRUEのとき、環境変数テーブル200-nに保存されている値が最新ではない可能性がある。 As can be seen from the above description of the situations 4A to 4E and the second embodiment, when the value of the status flag is FALSE, all the values stored in the environment variable table 200-n are the latest. On the other hand, when the value of the status flag is TRUE, the value stored in the environment variable table 200-n may not be the latest.
 そのため、状態フラグの値がFALSEのときは、次のゲストドメイン140に注目するために、図11~12の処理はステップS402からステップS403に移行する。逆に、状態フラグの値がTRUEのときは、環境変数テーブル200-nを最新状態に保つために、図11~12の処理はステップS402からステップS405に移行する。 Therefore, when the value of the status flag is FALSE, the processing of FIGS. 11 to 12 proceeds from step S402 to step S403 in order to pay attention to the next guest domain 140. Conversely, when the value of the status flag is TRUE, the processing in FIGS. 11 to 12 proceeds from step S402 to step S405 in order to keep the environment variable table 200-n in the latest state.
 さて、ステップS405で更新部135は、通信部133とハイパーバイザ160を介して、n番目のゲストドメインのOBPに、全OBP環境変数の値を送るよう要求する。n番目のゲストドメインがOBP稼動状態のときにこの要求がn番目のゲストドメインで受信されると、図8の処理がステップS108からステップS109へと移行し、ステップS109でn番目のゲストドメインから全OBP環境変数の値が送られる。 In step S405, the updating unit 135 requests the OBP of the nth guest domain to send the values of all OBP environment variables via the communication unit 133 and the hypervisor 160. If this request is received by the nth guest domain when the nth guest domain is in the OBP operating state, the process of FIG. 8 proceeds from step S108 to step S109, and from the nth guest domain in step S109. The value of all OBP environment variables is sent.
 そこで、制御ドメイン130の更新部135は、以下のいずれかのイベントが生じるのを、ステップS406で待つ。 Therefore, the update unit 135 of the control domain 130 waits in step S406 for any of the following events to occur.
  ・更新部135が、n番目のゲストドメインから、ハイパーバイザ160と通信部133を介して、n番目のゲストドメインの全OBP環境変数の値を受信した、というイベント。
  ・ステップS405での要求の送信から所定時間が経過した、というイベント。
An event that the updating unit 135 has received values of all OBP environment variables of the nth guest domain from the nth guest domain via the hypervisor 160 and the communication unit 133.
An event that a predetermined time has elapsed since the transmission of the request in step S405.
 前者のイベントが生じると、図11~12の処理は、ステップS406からステップS407へと移行する。後者のイベントが生じると、図11~12の処理は、ステップS406からステップS408へと移行する。なお、ステップS406における所定時間も、図8のステップS103やS111における所定時間と同様に、制御ドメイン130とゲストドメインの間の通信にかかる平均的なRTTに基づいて決められていてもよい。 When the former event occurs, the processing of FIGS. 11 to 12 proceeds from step S406 to step S407. When the latter event occurs, the processing in FIGS. 11 to 12 proceeds from step S406 to step S408. Note that the predetermined time in step S406 may also be determined based on an average RTT related to communication between the control domain 130 and the guest domain, similarly to the predetermined time in steps S103 and S111 of FIG.
 さて、ステップS407で更新部135は、n番目のゲストドメインから受信した全OBP環境変数の値を環境変数保存部131に保存する。具体的には、更新部135は、受信した値のそれぞれを、環境変数テーブル200-nにおいて当該値に対応するエントリに書き込む。また、更新部135は、こうして更新する各エントリにおいて、時刻情報を、現在時刻を示す値に更新する。そして、図11~12の処理は、ステップS403に移行する。例えば、図1の状況4Bでは、「A2」、「B2」および「C1」という値が、以上のようにしてステップS407で環境変数保存部131に保存される。 In step S407, the updating unit 135 stores the values of all OBP environment variables received from the nth guest domain in the environment variable storage unit 131. Specifically, the updating unit 135 writes each received value in an entry corresponding to the value in the environment variable table 200-n. In addition, the update unit 135 updates the time information to a value indicating the current time in each entry updated in this way. Then, the processing of FIGS. 11 to 12 proceeds to step S403. For example, in the situation 4B of FIG. 1, the values “A2”, “B2”, and “C1” are stored in the environment variable storage unit 131 in step S407 as described above.
 他方、ステップS408で更新部135は、n番目のゲストドメインのOBPとの間の通信が失敗したことをOBP状態管理部132に通知する。すると、OBP状態管理部132は、状態リスト220においてn番目のゲストドメインの状態フラグをFALSEに設定する。 On the other hand, in step S408, the update unit 135 notifies the OBP state management unit 132 that communication with the OBP of the nth guest domain has failed. Then, the OBP state management unit 132 sets the state flag of the nth guest domain in the state list 220 to FALSE.
 例えば、図1の状況4Aのように、制御ドメイン130がシャットダウンした時点で動作中だったn番目のゲストドメインのOBPが、制御ドメイン130のシャットダウン中に動作を停止する場合があり得る。この場合(つまりT_down<T_end<T_bootの場合)、n番目のゲストドメインの状態フラグの値は、ステップS408でTRUEからFALSEに書き換えられる。その結果、状態フラグには、n番目のゲストドメインの状態が正しく反映される。 For example, as in the situation 4A of FIG. 1, the OBP of the nth guest domain that was operating when the control domain 130 was shut down may stop operating while the control domain 130 is shut down. In this case (that is, when T_down <T_end <T_boot), the value of the status flag of the nth guest domain is rewritten from TRUE to FALSE in step S408. As a result, the state flag correctly reflects the state of the nth guest domain.
 次に、ステップS409で更新部135は、通信部133とハイパーバイザ160を介して、SP170に、n番目のゲストドメインのOBP環境変数がもしあれば送るよう、要求する。以下では説明の簡単化のため、「当該要求が送られた時点において、SP170は正常に動作している」と仮定する。 Next, in step S409, the updating unit 135 requests the SP 170 to send the OBP environment variable of the nth guest domain, if any, via the communication unit 133 and the hypervisor 160. In the following, for simplification of explanation, it is assumed that “SP 170 is operating normally when the request is sent”.
 このような仮定のもとでは、当該要求は、SP170で正常に受信される。そして、当該要求がSP170で受信されると、上記のとおり、図9において処理がステップS201からステップS202へと移行する。さらに、ステップS202では、環境変数保存部171に保存されているn番目のゲストドメインのOBP環境変数の値がすべて送られる。 Under such assumption, the request is normally received by the SP 170. Then, when the request is received at SP 170, as described above, the process proceeds from step S201 to step S202 in FIG. In step S202, all the values of the OBP environment variable of the nth guest domain stored in the environment variable storage unit 171 are sent.
 したがって、上記の仮定によれば、ステップS409の次のステップS410において、更新部135は、ハイパーバイザ160と通信部133を介して、SP170から、ステップS409の要求に対する応答を受信する。以下では説明の便宜上、SP170の環境変数保存部171には、n番目のゲストドメインのJ個のOBP環境変数の値が保存されているものとする。 Therefore, according to the above assumption, in step S410 following step S409, the updating unit 135 receives a response to the request in step S409 from the SP 170 via the hypervisor 160 and the communication unit 133. Hereinafter, for convenience of explanation, it is assumed that the environment variable storage unit 171 of SP 170 stores the values of J OBP environment variables of the nth guest domain.
 したがって、更新部135は、n番目のゲストドメインのOBPにおいて定義されている複数のOBP環境変数のうち、J個のOBP環境変数の値をステップS410で受信する。図8と9から明らかなように、J=0のこともあり得るし、J=1のこともあり得るし、J≧2のこともあり得る。例えば、図1の状況4Aでは、J=1であり、「B2」という1つの値がステップS410で受信される。 Therefore, the updating unit 135 receives the values of J OBP environment variables among a plurality of OBP environment variables defined in the OBP of the nth guest domain in step S410. As is apparent from FIGS. 8 and 9, J = 0 may be possible, J = 1 may be possible, and J ≧ 2 may be possible. For example, in situation 4A of FIG. 1, J = 1 and one value “B2” is received in step S410.
 続いて、図12のステップS411で更新部135は、インデックス変数jを1に初期化する。 Subsequently, in step S411 in FIG. 12, the update unit 135 initializes the index variable j to 1.
 次に、ステップS412で更新部135は、j>Jであるか否かを判断する。j>Jの場合、以下の2つの条件のいずれかが成り立つ。 Next, in step S412, the update unit 135 determines whether j> J. When j> J, one of the following two conditions is satisfied.
  ・J>0であり、かつ、n番目のゲストドメインに関してSP170から取得されたJ個すべてのOBP環境変数の値についての処理は既に完了している。
  ・J=0である(つまり、SP170の環境変数保存部171には、n番目のゲストドメインに関して1つもOBP環境変数の値が保存されていない)。
-J> 0, and the processing for the values of all J OBP environment variables acquired from SP 170 for the nth guest domain has already been completed.
J = 0 (that is, the environment variable storage unit 171 of the SP 170 does not store any OBP environment variable value for the nth guest domain).
 よって、j>Jの場合、次のゲストドメインに着目するために、図11~12の処理は、ステップS403へと移行する。逆に、j≦Jの場合、まだ更新部135が着目していないOBP環境変数の値が1つ以上残っているので、図11~12の処理は、ステップS413へと移行する。 Therefore, when j> J, in order to focus on the next guest domain, the processing of FIGS. 11 to 12 proceeds to step S403. On the other hand, if j ≦ J, one or more values of the OBP environment variable not yet noticed by the updating unit 135 remain, so the processing in FIGS. 11 to 12 proceeds to step S413.
 ステップS413で更新部135は、以下の2つの時刻を比較する。
  ・SP170から受信したJ個のOBP環境変数の値のうちのj番目のOBP環境変数の値とともに受信した時刻情報が示す時刻。すなわち、当該j番目のOBP環境変数の値が、図9のステップS204でSP170の環境変数保存部171に保存された時刻。
  ・当該j番目のOBP環境変数に関して環境変数保存部131の環境変数テーブル200-nに保存されている時刻情報が示す時刻。すなわち、当該j番目のOBP環境変数に関して、過去のステップS309において、制御ドメイン130の環境変数保存部131に値が保存された時刻。
In step S413, the updating unit 135 compares the following two times.
The time indicated by the time information received together with the value of the jth OBP environment variable among the values of the J OBP environment variables received from the SP 170. That is, the time when the value of the j-th OBP environment variable is stored in the environment variable storage unit 171 of SP 170 in step S204 of FIG.
The time indicated by the time information stored in the environment variable table 200-n of the environment variable storage unit 131 regarding the j-th OBP environment variable. That is, the time at which a value is stored in the environment variable storage unit 131 of the control domain 130 in the past step S309 regarding the jth OBP environment variable.
 もし、前者の時刻の方が後者の時刻よりも後であれば、図11~12の処理はステップS414に移行する。逆に、前者の時刻が後者の時刻と同じか、または、前者の時刻が後者の時刻よりも前であれば、図11~12の処理はステップS415に移行する。 If the former time is later than the latter time, the processing in FIGS. 11 to 12 proceeds to step S414. Conversely, if the former time is the same as the latter time, or if the former time is earlier than the latter time, the processing in FIGS. 11 to 12 proceeds to step S415.
 ところで、n番目のゲストドメインのOBPは図1~2のブートローダ1に対応し、制御ドメイン130は図1~2の第2の仮想マシン2に対応し、SP170(より具体的には保存制御部172)は図1~2の第2のプロセッサ3に対応する。 By the way, the OBP of the nth guest domain corresponds to the boot loader 1 of FIGS. 1 and 2, the control domain 130 corresponds to the second virtual machine 2 of FIGS. 1 and 2, and SP170 (more specifically, the storage control unit). 172) corresponds to the second processor 3 of FIGS.
 例えば、図1の状況4Aでは、SP170の環境変数保存部171に「B2」という値が保存された時刻は、制御ドメイン130の環境変数保存部131に「B1」という値が保存された時刻よりも後である。よって、状況4Aでは、図11~12の処理は、ステップS413からステップS414に移行する。逆に、以下のように状況が推移する場合には、図11~12の処理はステップS413からS415へと移行することがある。 For example, in the situation 4A of FIG. 1, the time when the value “B2” is stored in the environment variable storage unit 171 of the SP 170 is greater than the time when the value “B1” is stored in the environment variable storage unit 131 of the control domain 130. It will be later. Therefore, in the situation 4A, the processing of FIGS. 11 to 12 proceeds from step S413 to step S414. Conversely, when the situation changes as follows, the processing in FIGS. 11 to 12 may shift from step S413 to step S415.
  ・図2の状況4Hと同様に、制御ドメイン130がエラーなどによりシャットダウンしてしまい、制御ドメイン130が動作していない間に、SP170の環境変数保存部171に「B4」というOBP環境変数の値が保存される。
  ・その後、制御ドメイン130が復旧する。状況4Hと同様に、制御ドメイン130が復旧した時点で、n番目のゲストドメインのOBPはまだ動作中である。そのため、図11~12の処理がステップS406からS407へと移行する。この場合、SP170は、ステップS409の要求を受け取らず、結果として、図9のステップS203は実行されない。そのため、SP170の環境変数保存部171には「B4」という値が残る。
  ・図2の状況4Hでは、制御ドメイン130の復旧後、第3の環境変数の更新(すなわち「C3」という値から「C4」という値への更新)のみが行われるが、さらに、第2の環境変数が「B4」という値から「B5」という値に更新されてもよい。つまり、復旧した制御ドメイン130の更新部135が、n番目のゲストドメインのOBPからの要求に応じて、ステップS309で「B5」という新たな値を環境変数保存部131に保存してもよい。そして、更新後に、n番目のゲストドメインのOBPが動作を停止してn番目のゲストドメインにおいてOSが起動されてもよい。
  ・さらにその後のある時点において、状況4Hと同様に、n番目のゲストドメインのOBPが再び動作を開始することがある。そして、たまたま、n番目のゲストドメインのOBPの動作中に、制御ドメイン130がエラーなどにより再度シャットダウンしてしまう可能性がある。
  ・ここで、n番目のゲストドメインのOBPは、制御ドメイン130が復旧する前に動作を停止したとする。また、制御ドメイン130のこの再度のシャットダウンの際には、n番目のゲストドメインのOBP環境変数がSP170に保存されることはなかったものとする。
  ・再度のシャットダウンから制御ドメイン130が復旧すると、図11~12の処理はステップS406からステップS408へと移行する。そのため、上記のようにSP170の環境変数保存部171に残っている「B4」という値が、ステップS410において更新部135に受信される。他方、上記のように制御ドメイン130の環境変数保存部131には、新たな「B5」という値が保存されている。したがって、この場合、図11~12の処理はステップS413からステップS415へと移行する。
As in the situation 4H in FIG. 2, the value of the OBP environment variable “B4” is stored in the environment variable storage unit 171 of the SP 170 while the control domain 130 is shut down due to an error or the like and the control domain 130 is not operating. Is saved.
Thereafter, the control domain 130 is restored. As in the situation 4H, when the control domain 130 is restored, the OBP of the nth guest domain is still operating. Therefore, the processing of FIGS. 11 to 12 proceeds from step S406 to S407. In this case, the SP 170 does not receive the request in step S409, and as a result, step S203 in FIG. 9 is not executed. Therefore, the value “B4” remains in the environment variable storage unit 171 of SP170.
In the situation 4H in FIG. 2, after the control domain 130 is restored, only the third environment variable is updated (that is, the value “C3” is updated to the value “C4”). The environment variable may be updated from the value “B4” to the value “B5”. That is, the update unit 135 of the restored control domain 130 may store a new value “B5” in the environment variable storage unit 131 in step S309 in response to a request from the OBP of the nth guest domain. Then, after the update, the OBP of the nth guest domain may stop operating and the OS may be started in the nth guest domain.
-At some point after that, the OBP of the nth guest domain may start to operate again as in the situation 4H. There is a possibility that the control domain 130 may be shut down again due to an error or the like during the operation of the OBP of the nth guest domain.
Here, it is assumed that the OBP of the nth guest domain has stopped operating before the control domain 130 is restored. Further, it is assumed that the OBP environment variable of the nth guest domain has not been saved in the SP 170 at the time of the second shutdown of the control domain 130.
When the control domain 130 recovers from the shutdown again, the processing in FIGS. 11 to 12 proceeds from step S406 to step S408. Therefore, the value “B4” remaining in the environment variable storage unit 171 of the SP 170 as described above is received by the update unit 135 in step S410. On the other hand, the new value “B5” is stored in the environment variable storage unit 131 of the control domain 130 as described above. Therefore, in this case, the processing of FIGS. 11 to 12 proceeds from step S413 to step S415.
 以上例示したように、ステップS413での比較結果に応じて、図11~12の処理は、ステップS414またはS415へと移行する。 As exemplified above, the processing in FIGS. 11 to 12 proceeds to step S414 or S415 in accordance with the comparison result in step S413.
 ステップS414で更新部135は、環境変数保存部131に保存されている値を、n番目のゲストドメインから受信したj番目のOBP環境変数の値に更新する。例えば、n番目のゲストドメインから受信したj番目のOBP環境変数の値が、具体的には「ENV_VAR_3」という名前の環境変数の値であるとき、更新部135は、環境変数テーブル200-n中の、「ENV_VAR_3」という名前の環境変数に対応するエントリの「設定値」フィールドに、受信した値を書き込む。 In step S414, the update unit 135 updates the value stored in the environment variable storage unit 131 to the value of the jth OBP environment variable received from the nth guest domain. For example, when the value of the jth OBP environment variable received from the nth guest domain is specifically the value of the environment variable named “ENV_VAR_3”, the updating unit 135 stores the value in the environment variable table 200-n. The received value is written in the “setting value” field of the entry corresponding to the environment variable named “ENV_VAR — 3”.
 また、更新部135は、当該エントリの時刻情報も更新する。具体的には、更新部135は、当該エントリの時刻情報を、現在時刻を示す値に更新する。実施形態によっては、更新部135は、n番目のゲストドメインからj番目のOBP環境変数の値とともに受信した時刻情報を、当該エントリの「時刻」フィールドに書き込んでもよい。 Also, the updating unit 135 updates the time information of the entry. Specifically, the update unit 135 updates the time information of the entry to a value indicating the current time. Depending on the embodiment, the updating unit 135 may write the time information received together with the value of the jth OBP environment variable from the nth guest domain in the “time” field of the entry.
 以上のようなエントリの更新の後、図11~12の処理は、ステップS416へと移行する。 After the entry update as described above, the processing of FIGS. 11 to 12 proceeds to step S416.
 さて、ステップS415で更新部135は、n番目のゲストドメインから受信したj番目のOBP環境変数の値を破棄する。なぜなら、環境変数保存部131には、受信した値よりも新しい値が既に保存されているからである。そして、図11~12の処理は、ステップS416へと移行する。 In step S415, the updating unit 135 discards the value of the jth OBP environment variable received from the nth guest domain. This is because a newer value than the received value is already stored in the environment variable storage unit 131. Then, the processing of FIGS. 11 to 12 proceeds to step S416.
 ステップS416で更新部135は、インデックス変数jを1だけインクリメントする。そして、図11~12の処理は、ステップS412へと戻る。 In step S416, the updating unit 135 increments the index variable j by 1. Then, the processing in FIGS. 11 to 12 returns to step S412.
 以上、図5~12を参照して説明した第2実施形態によれば、制御ドメイン130が何らかの原因で正常に動作しない間にゲストドメイン140のOBP環境変数の更新が要求された場合にも、ゲストドメイン140のOSの将来の起動に支障は生じない。なぜなら、制御ドメイン130が動作していない間にゲストドメイン140のOBP上でOBP環境変数の値が更新された場合は、新たな値が一時的にSP170(より具体的には環境変数保存部171)に保存されるからである。そして、一時保存された新たな値は、制御ドメイン130の復旧後、速やかに制御ドメイン130の環境変数保存部131に反映されるからである。 As described above, according to the second embodiment described with reference to FIGS. 5 to 12, even when the update of the OBP environment variable of the guest domain 140 is requested while the control domain 130 does not operate normally for some reason, There will be no hindrance to future booting of the OS of the guest domain 140. This is because if the value of the OBP environment variable is updated on the OBP of the guest domain 140 while the control domain 130 is not operating, the new value is temporarily stored in the SP 170 (more specifically, the environment variable storage unit 171). ). This is because the temporarily stored new value is immediately reflected in the environment variable storage unit 131 of the control domain 130 after the control domain 130 is restored.
 また、第2実施形態は、ゲストドメインの数Nが多い場合(例えばN>1000であるような場合)にも好適である。なぜなら、状態リスト220を用いて更新部135がステップS402の判断を行うからである。 The second embodiment is also suitable when the number N of guest domains is large (for example, when N> 1000). This is because the update unit 135 uses the state list 220 to make the determination in step S402.
 ステップS402によれば、「制御ドメイン130が動作していない間にn番目のゲストドメインのOBP環境変数の値が変更された」という可能性がないことが明らかな場合は、ステップS406での受信待ち時間が費やされることはない。ゲストドメインの数Nが多い場合、受信待ち時間の節約は、図11~12の処理全体にかかる時間の短縮に大きな影響を与える。そして、「図11~12の処理全体にかかる時間が短い」ということは、「制御ドメイン130が再起動されてから、制御ドメイン130で図10のステップS302以降の通常の処理が開始されるまでの時間が短い」ということを意味する。つまり、状態リスト220を用いたステップS402の判断は、制御ドメイン130のダウンタイムの短縮に有益である。 According to step S402, when it is clear that there is no possibility that “the value of the OBP environment variable of the nth guest domain has been changed while the control domain 130 is not operating”, the reception in step S406 is performed. No waiting time is spent. When the number N of guest domains is large, the reduction in reception waiting time greatly affects the reduction of the time required for the entire processing of FIGS. “The time required for the entire processing in FIGS. 11 to 12 is short” means that “from the time when the control domain 130 is restarted until the normal processing after step S302 in FIG. Means that the time is short. That is, the determination in step S <b> 402 using the state list 220 is useful for reducing the downtime of the control domain 130.
 続いて、図13~14を参照して第3実施形態について説明する。なお、図1~4に関する説明は第3実施形態にも当てはまるので、以下では適宜図1~4も参照する。また、第2実施形態との共通点については、適宜説明を省略する。 Subsequently, the third embodiment will be described with reference to FIGS. 1 to 4 also applies to the third embodiment, and therefore FIGS. 1 to 4 are also referred to as appropriate below. In addition, the description of the points in common with the second embodiment will be omitted as appropriate.
 第3実施形態は、1つの物理パーティションに1つのゲストドメインしかない、という点において第2実施形態と異なる。1つのゲストドメインしかない場合、第2実施形態のように状態リスト220を用いた時間短縮効果の影響は、それほど顕著ではない。よって、第3実施形態では、状態リスト220を用いた状態管理が省略される。 The third embodiment differs from the second embodiment in that there is only one guest domain in one physical partition. When there is only one guest domain, the effect of the time reduction effect using the state list 220 as in the second embodiment is not so significant. Therefore, in the third embodiment, state management using the state list 220 is omitted.
 具体的には、第3実施形態は、以下の点において第2実施形態と異なるが、その他の点では、第3実施形態は第2実施形態と同様である。 Specifically, the third embodiment is different from the second embodiment in the following points, but the third embodiment is the same as the second embodiment in other points.
  ・コンピュータが図13のように構成される。
  ・図8のステップS101とS114が省略される。
  ・図10のステップS303とS306~S308も省略される。
  ・図10のステップS305での処理のうち、状態リスト220からのエントリの削除も省略される。
  ・図10のステップS309とS311での処理のうち、状態フラグの更新も省略される。
  ・図10のステップS301の環境変数更新処理として、図11~12の処理の変わりに、図14の処理が行われる。
The computer is configured as shown in FIG.
Steps S101 and S114 in FIG. 8 are omitted.
Steps S303 and S306 to S308 in FIG. 10 are also omitted.
Of the processing in step S305 in FIG. 10, deletion of entries from the status list 220 is also omitted.
Of the processes in steps S309 and S311 in FIG. 10, the update of the status flag is also omitted.
As the environment variable update processing in step S301 in FIG. 10, the processing in FIG. 14 is performed instead of the processing in FIGS.
 図13は、第3実施形態のコンピュータのブロック構成図である。図13のコンピュータ300は、1つ以上の物理的なパーティションを含む。図13の例では、コンピュータ300は2つのパーティション310と320を含む。 FIG. 13 is a block diagram of a computer according to the third embodiment. The computer 300 of FIG. 13 includes one or more physical partitions. In the example of FIG. 13, the computer 300 includes two partitions 310 and 320.
 また、各パーティションは、1つの制御ドメインと1つのゲストドメインを含む。図13の例では、パーティション310は制御ドメイン330とゲストドメイン340を含み、パーティション320は制御ドメイン350とゲストドメイン360を含む。 Each partition includes one control domain and one guest domain. In the example of FIG. 13, the partition 310 includes a control domain 330 and a guest domain 340, and the partition 320 includes a control domain 350 and a guest domain 360.
 制御ドメイン330、ゲストドメイン340、制御ドメイン350、およびゲストドメイン360は、いずれも、ハイパーバイザ370上で動作する仮想マシンの具体例である。制御ドメイン330と350は、いずれも、図1~2に関して説明した第2の仮想マシン2の具体例である。また、ゲストドメイン340と360は、いずれも、図1~2に関して説明した第1の仮想マシンの具体例である。第2実施形態と同様に、第3実施形態においても、図1~2のブートローダ1の具体例はOBPである。 The control domain 330, the guest domain 340, the control domain 350, and the guest domain 360 are all specific examples of virtual machines that operate on the hypervisor 370. The control domains 330 and 350 are both specific examples of the second virtual machine 2 described with reference to FIGS. Guest domains 340 and 360 are both specific examples of the first virtual machine described with reference to FIGS. Similar to the second embodiment, also in the third embodiment, a specific example of the boot loader 1 in FIGS. 1 and 2 is OBP.
 図13には、図5と同様に1つのハイパーバイザ370のみが図示されている。しかし、パーティションごとに別々のハイパーバイザ370が実行されてもよい。 FIG. 13 shows only one hypervisor 370 as in FIG. However, a separate hypervisor 370 may be executed for each partition.
 制御ドメイン330は、具体的には、環境変数保存部331と、通信部332と、設定部333と、更新部334を含む。また、ゲストドメイン340は、具体的には、OS起動部341と、環境変数管理部342と、通信部343を含む。 Specifically, the control domain 330 includes an environment variable storage unit 331, a communication unit 332, a setting unit 333, and an update unit 334. The guest domain 340 specifically includes an OS activation unit 341, an environment variable management unit 342, and a communication unit 343.
 環境変数保存部331は図5の環境変数保存部131と同様である。つまり、図6の環境変数テーブル200-1が環境変数保存部331に保存される(なお、第3実施形態ではN=1であることに注意されたい)。また、通信部332は通信部133と同様であり、設定部333は設定部134と同様である。 The environment variable storage unit 331 is the same as the environment variable storage unit 131 of FIG. That is, the environment variable table 200-1 of FIG. 6 is stored in the environment variable storage unit 331 (note that N = 1 in the third embodiment). The communication unit 332 is the same as the communication unit 133, and the setting unit 333 is the same as the setting unit 134.
 更新部334は更新部135と類似している。しかし、更新部334は、図10のステップS301において図11~12の処理の代わりに図14の処理を実行する点で、更新部135とは異なる。また、第2実施形態のOBP状態管理部132は、第3実施形態では省略される。 The update unit 334 is similar to the update unit 135. However, the update unit 334 differs from the update unit 135 in that the process of FIG. 14 is executed instead of the process of FIGS. 11 to 12 in step S301 of FIG. Further, the OBP state management unit 132 of the second embodiment is omitted in the third embodiment.
 OS起動部341は図5のOS起動部141と同様であり、環境変数管理部342は環境変数管理部142と同様であり、通信部343は通信部143と同様である。また、制御ドメイン350は制御ドメイン330と類似であり、ゲストドメイン360はゲストドメイン340と類似である。 The OS startup unit 341 is the same as the OS startup unit 141 of FIG. 5, the environment variable management unit 342 is the same as the environment variable management unit 142, and the communication unit 343 is the same as the communication unit 143. In addition, the control domain 350 is similar to the control domain 330, and the guest domain 360 is similar to the guest domain 340.
 さらに、コンピュータ300は、SP380も含む。SP380は、環境変数保存部381と、保存制御部382と、通信部383を含む。環境変数保存部381は図5の環境変数保存部171と同様である。つまり、図6の環境変数テーブル210-1が環境変数保存部381に保存される(なお、第3実施形態ではN=1であることに注意されたい)。また、保存制御部382は保存制御部172と同様であり、通信部383は通信部173と同様である。 Furthermore, the computer 300 also includes SP380. The SP 380 includes an environment variable storage unit 381, a storage control unit 382, and a communication unit 383. The environment variable storage unit 381 is the same as the environment variable storage unit 171 of FIG. That is, the environment variable table 210-1 of FIG. 6 is stored in the environment variable storage unit 381 (note that N = 1 in the third embodiment). Further, the storage control unit 382 is the same as the storage control unit 172, and the communication unit 383 is the same as the communication unit 173.
 なお、図13のコンピュータ300も、図5のコンピュータ100と同様に、具体的には図3のコンピュータ10により実現されてもよい。例えば、システムボード20がパーティション310に対応してもよく、システムボード30がパーティション320に対応してもよい。図13と図3との関係は、図5と図3の関係についての上述の説明から明らかである。よって、図13と図3との関係についての詳しい説明は省略する。 It should be noted that the computer 300 in FIG. 13 may also be realized by the computer 10 in FIG. 3 in a similar manner to the computer 100 in FIG. For example, the system board 20 may correspond to the partition 310, and the system board 30 may correspond to the partition 320. The relationship between FIG. 13 and FIG. 3 is clear from the above description of the relationship between FIG. 5 and FIG. Therefore, detailed description of the relationship between FIG. 13 and FIG. 3 is omitted.
 さて、図14は、第3実施形態における環境変数更新処理のフローチャートである。以下では、制御ドメイン330において環境変数更新処理が実行される場合を具体的に説明する。なお、第3実施形態では、上記のとおり、1つの物理パーティション内に1つのゲストドメインしかない。よって、図14の説明におけるゲストドメインは、制御ドメイン330と同じパーティション310内に含まれる唯一のゲストドメインであるゲストドメイン340のことである。 FIG. 14 is a flowchart of the environment variable update process in the third embodiment. Hereinafter, a case where the environment variable update process is executed in the control domain 330 will be specifically described. In the third embodiment, as described above, there is only one guest domain in one physical partition. Therefore, the guest domain in the description of FIG. 14 is the guest domain 340 that is the only guest domain included in the same partition 310 as the control domain 330.
 ステップS501で更新部334は、通信部332とハイパーバイザ370を介して、ゲストドメイン340のOBPに、全OBP環境変数の値を送るよう要求する。ゲストドメイン340がOBP稼動状態のときにこの要求がゲストドメイン340で受信されると、図8の処理がステップS108からステップS109へと移行し、ステップS109でゲストドメイン340から全OBP環境変数の値が送られる。 In step S501, the update unit 334 requests the OBP of the guest domain 340 to send the values of all OBP environment variables via the communication unit 332 and the hypervisor 370. If this request is received by the guest domain 340 when the guest domain 340 is in the OBP operating state, the processing in FIG. 8 proceeds from step S108 to step S109, and the values of all OBP environment variables are transferred from the guest domain 340 to step S109. Will be sent.
 そこで、制御ドメイン330の更新部334は、以下のいずれかのイベントが生じるのを、ステップS502で待つ。 Therefore, the update unit 334 of the control domain 330 waits in step S502 for any of the following events to occur.
  ・更新部334が、ゲストドメイン340から、ハイパーバイザ370と通信部332を介して、ゲストドメイン340の全OBP環境変数の値を受信した、というイベント。
  ・ステップS501での要求の送信から所定時間が経過した、というイベント。
An event that the update unit 334 has received the values of all OBP environment variables of the guest domain 340 from the guest domain 340 via the hypervisor 370 and the communication unit 332.
An event that a predetermined time has elapsed since the transmission of the request in step S501.
 前者のイベントが生じると、図14の処理は、ステップS502からステップS503へと移行する。後者のイベントが生じると、図14の処理は、ステップS502からステップS504へと移行する。ステップS502における所定時間は、例えば、制御ドメイン330とゲストドメイン340の間の通信にかかる平均的なRTTに基づいて決められていてもよい。 When the former event occurs, the processing in FIG. 14 proceeds from step S502 to step S503. When the latter event occurs, the processing in FIG. 14 proceeds from step S502 to step S504. The predetermined time in step S502 may be determined based on, for example, an average RTT related to communication between the control domain 330 and the guest domain 340.
 さて、ステップS503で更新部334は、ゲストドメイン340から受信した全OBP環境変数の値を環境変数保存部331に保存する。具体的には、更新部334は、受信した値のそれぞれを、環境変数テーブル200-1において当該値に対応するエントリに書き込む。また、更新部334は、こうして更新する各エントリにおいて、時刻情報を、現在時刻を示す値に更新する。そして、図14の処理は完了する。例えば、図1の状況4Bでは、「A2」、「B2」および「C1」という値が、以上のようにしてステップS503で環境変数保存部331に保存される。 In step S503, the updating unit 334 stores the values of all OBP environment variables received from the guest domain 340 in the environment variable storage unit 331. Specifically, the update unit 334 writes each received value in the entry corresponding to the value in the environment variable table 200-1. In addition, the update unit 334 updates the time information to a value indicating the current time in each entry updated in this way. Then, the process of FIG. 14 is completed. For example, in the situation 4B of FIG. 1, the values “A2”, “B2”, and “C1” are stored in the environment variable storage unit 331 in step S503 as described above.
 他方、ステップS504で更新部334は、通信部332とハイパーバイザ370を介して、SP380に、ゲストドメイン340のOBP環境変数がもしあれば送るよう、要求する。以下では説明の簡単化のため、「当該要求が送られた時点において、SP380は正常に動作している」と仮定する。 On the other hand, in step S504, the update unit 334 requests the SP 380 to send the OBP environment variable of the guest domain 340, if any, via the communication unit 332 and the hypervisor 370. In the following, for simplification of explanation, it is assumed that “SP 380 is operating normally at the time when the request is sent”.
 このような仮定のもとでは、当該要求は、SP380で正常に受信される。そして、当該要求がSP380で受信されると、図9において処理がステップS201からステップS202へと移行する。さらに、ステップS202では、環境変数保存部381に保存されているゲストドメイン340のOBP環境変数の値がすべて送られる。 Under such assumption, the request is received normally at SP380. When the request is received at SP 380, the process proceeds from step S201 to step S202 in FIG. In step S202, all the values of the OBP environment variable of the guest domain 340 stored in the environment variable storage unit 381 are sent.
 したがって、上記の仮定によれば、ステップS504の次のステップS505において、更新部334は、ハイパーバイザ370と通信部332を介して、SP380から、ステップS504の要求に対する応答を受信する。以下では説明の便宜上、SP380の環境変数保存部381には、ゲストドメイン340のJ個のOBP環境変数の値が保存されているものとする。 Therefore, according to the above assumption, in step S505 following step S504, the update unit 334 receives a response to the request in step S504 from the SP 380 via the hypervisor 370 and the communication unit 332. In the following, for convenience of explanation, it is assumed that the value of J OBP environment variables of the guest domain 340 is stored in the environment variable storage unit 381 of the SP 380.
 したがって、更新部334は、ゲストドメイン340のOBPにおいて定義されている複数のOBP環境変数のうち、J個のOBP環境変数の値をステップS505で受信する。図8と9から明らかなように、J=0のこともあり得るし、J=1のこともあり得るし、J≧2のこともあり得る。例えば、図1の状況4Aでは、J=1であり、「B2」という1つの値がステップS505で受信される。 Therefore, the updating unit 334 receives the value of J OBP environment variables among the plurality of OBP environment variables defined in the OBP of the guest domain 340 in step S505. As is apparent from FIGS. 8 and 9, J = 0 may be possible, J = 1 may be possible, and J ≧ 2 may be possible. For example, in the situation 4A of FIG. 1, J = 1, and one value “B2” is received in step S505.
 続いて、ステップS506で更新部334は、インデックス変数jを1に初期化する。
 次に、ステップS507で更新部334は、j>Jであるか否かを判断する。j>Jの場合、以下の2つの条件のいずれかが成り立つ。
Subsequently, in step S506, the update unit 334 initializes the index variable j to 1.
Next, in step S507, the update unit 334 determines whether j> J. When j> J, one of the following two conditions is satisfied.
  ・J>0であり、かつ、ゲストドメイン340に関してSP380から取得されたJ個すべてのOBP環境変数の値についての処理は既に完了している。
  ・J=0である(つまり、SP380の環境変数保存部381には、ゲストドメイン340に関して1つもOBP環境変数の値が保存されていない)。
-J> 0, and the processing for the values of all J OBP environment variables acquired from the SP 380 regarding the guest domain 340 has already been completed.
J = 0 (that is, no value of the OBP environment variable for the guest domain 340 is stored in the environment variable storage unit 381 of the SP 380).
 よって、j>Jの場合、図14の処理は完了する。逆に、j≦Jの場合、まだ更新部334が着目していないOBP環境変数の値が1つ以上残っているので、図14の処理はステップS508へと移行する。 Therefore, when j> J, the process of FIG. 14 is completed. On the other hand, if j ≦ J, one or more OBP environment variable values not yet noticed by the updating unit 334 remain, so the processing in FIG. 14 proceeds to step S508.
 ステップS508で更新部334は、以下の2つの時刻を比較する。
  ・SP380から受信したJ個のOBP環境変数の値のうちのj番目のOBP環境変数の値とともに受信した時刻情報が示す時刻。すなわち、当該j番目のOBP環境変数の値が、図9のステップS204でSP380の環境変数保存部381に保存された時刻。
  ・当該j番目のOBP環境変数に関して環境変数保存部331の環境変数テーブル200-1に保存されている時刻情報が示す時刻。すなわち、当該j番目のOBP環境変数に関して、過去のステップS309において、制御ドメイン330の環境変数保存部331に値が保存された時刻。
In step S508, the update unit 334 compares the following two times.
The time indicated by the time information received together with the value of the jth OBP environment variable among the values of the J OBP environment variables received from the SP 380. That is, the time when the value of the j-th OBP environment variable is stored in the environment variable storage unit 381 of SP380 in step S204 of FIG.
The time indicated by the time information stored in the environment variable table 200-1 of the environment variable storage unit 331 for the jth OBP environment variable. That is, the time at which a value is stored in the environment variable storage unit 331 of the control domain 330 in the past step S309 regarding the jth OBP environment variable.
 もし、前者の時刻の方が後者の時刻よりも後であれば、図14の処理はステップS509に移行する。逆に、前者の時刻が後者の時刻と同じか、または、前者の時刻が後者の時刻よりも前であれば、図14の処理はステップS510に移行する。なお、ステップS508の比較は図12のステップS413の比較と類似である。よって、図12の説明から、ステップS508の比較の意味は明らかである。 If the former time is later than the latter time, the processing in FIG. 14 proceeds to step S509. Conversely, if the former time is the same as the latter time, or if the former time is earlier than the latter time, the processing in FIG. 14 proceeds to step S510. Note that the comparison in step S508 is similar to the comparison in step S413 in FIG. Therefore, the meaning of the comparison in step S508 is clear from the description of FIG.
 さて、ステップS509で更新部334は、環境変数保存部331に保存されている値を、ゲストドメイン340から受信したj番目のOBP環境変数の値に更新する。例えば、ゲストドメイン340から受信したj番目のOBP環境変数の値が、具体的には「ENV_VAR_3」という名前の環境変数の値であるとき、更新部334は、環境変数テーブル200-1中の、「ENV_VAR_3」という名前の環境変数に対応するエントリの「設定値」フィールドに、受信した値を書き込む。 In step S509, the update unit 334 updates the value stored in the environment variable storage unit 331 to the value of the jth OBP environment variable received from the guest domain 340. For example, when the value of the j-th OBP environment variable received from the guest domain 340 is specifically the value of the environment variable named “ENV_VAR_3”, the update unit 334 stores the value of the environment variable table 200-1. The received value is written in the “setting value” field of the entry corresponding to the environment variable named “ENV_VAR — 3”.
 また、更新部334は、当該エントリの時刻情報も更新する。具体的には、更新部334は、当該エントリの時刻情報を、現在時刻を示す値に更新する。実施形態によっては、更新部334は、ゲストドメイン340からj番目のOBP環境変数の値とともに受信した時刻情報を、当該エントリの「時刻」フィールドに書き込んでもよい。 Also, the update unit 334 updates the time information of the entry. Specifically, the update unit 334 updates the time information of the entry to a value indicating the current time. Depending on the embodiment, the updating unit 334 may write the time information received together with the value of the jth OBP environment variable from the guest domain 340 in the “time” field of the entry.
 以上のようなエントリの更新の後、図14の処理はステップS511へと移行する。 After the entry update as described above, the processing in FIG. 14 proceeds to step S511.
 さて、ステップS510で更新部334は、ゲストドメイン340から受信したj番目のOBP環境変数の値を破棄する。なぜなら、環境変数保存部331には、受信した値よりも新しい値が既に保存されているからである。そして、図14の処理はステップS511へと移行する。 In step S510, the updating unit 334 discards the value of the jth OBP environment variable received from the guest domain 340. This is because a newer value than the received value is already stored in the environment variable storage unit 331. Then, the process of FIG. 14 proceeds to step S511.
 ステップS511で更新部334は、インデックス変数jを1だけインクリメントする。そして、図14の処理はステップS507へと戻る。 In step S511, the update unit 334 increments the index variable j by 1. Then, the process of FIG. 14 returns to step S507.
 以上、図13~14を参照して説明した第3実施形態によれば、制御ドメイン330が何らかの原因で正常に動作しない間にゲストドメイン340のOBP環境変数の更新が要求された場合にも、ゲストドメイン340のOSの将来の起動に支障は生じない。なぜなら、制御ドメイン330が動作していない間にゲストドメイン340のOBP上でOBP環境変数の値が更新された場合は、新たな値が一時的にSP380(より具体的には環境変数保存部381)に保存されるからである。そして、一時保存された新たな値は、制御ドメイン330の復旧後、速やかに制御ドメイン330の環境変数保存部331に反映されるからである。 As described above, according to the third embodiment described with reference to FIGS. 13 to 14, even when the OBP environment variable of the guest domain 340 is requested to be updated while the control domain 330 does not operate normally for some reason, There will be no trouble in the future activation of the OS of the guest domain 340. This is because if the value of the OBP environment variable is updated on the OBP of the guest domain 340 while the control domain 330 is not operating, the new value is temporarily stored in the SP 380 (more specifically, the environment variable storage unit 381 ). This is because the temporarily stored new value is immediately reflected in the environment variable storage unit 331 of the control domain 330 after the control domain 330 is restored.
 また、第3実施形態は、ゲストドメインの数が1である場合に特に好適である。具体的には、第3実施形態では、OBP状態管理部132が省略され、図8と10中のいくつかのステップが省略されるので、状態リスト220を管理するための負荷がない。ゲストドメインの数がごく少ない場合は、状態リスト220を用いることで得られる時間短縮効果よりも、状態リスト220を管理するための負荷をなくすことの方が、コンピュータ全体のパフォーマンスにとって好ましいことがある。よって、ゲストドメインが1つしかない場合は特に、第3実施形態のように状態リスト220の管理を省略することが好ましい。 Further, the third embodiment is particularly suitable when the number of guest domains is one. Specifically, in the third embodiment, since the OBP state management unit 132 is omitted and some steps in FIGS. 8 and 10 are omitted, there is no load for managing the state list 220. When the number of guest domains is very small, it may be preferable for the performance of the entire computer to eliminate the load for managing the state list 220, rather than the time reduction effect obtained by using the state list 220. . Therefore, especially when there is only one guest domain, it is preferable to omit management of the state list 220 as in the third embodiment.
 なお、第3実施形態と同様に状態リスト220の管理を省略した実施形態は、ゲストドメインが2つ以上の場合にも適用可能である。つまり、ゲストドメインの数が比較的少ない場合には、状態リスト220の管理が省略されてもよい。例えば、ゲストドメインの数が3の場合には、図14の処理が3つのゲストドメインそれぞれに対して行われてもよい。 Note that the embodiment in which the management of the state list 220 is omitted as in the third embodiment can be applied to a case where there are two or more guest domains. That is, when the number of guest domains is relatively small, management of the state list 220 may be omitted. For example, when the number of guest domains is 3, the process of FIG. 14 may be performed for each of the three guest domains.
 続いて、図15~19を参照して第4実施形態について説明する。第4実施形態は、制御ドメインが動作していない期間中にゲストドメインのOBPが動作を開始した場合に、OBPが制御ドメインの起動を待たずにOBP環境変数の値を得られるように、第2実施形態を変形した実施形態である。第4実施形態のコンピュータの構成は第2実施形態のコンピュータの構成と類似なので、第2実施形態に関する図5の参照符号を用いて第4実施形態について説明する。 Subsequently, the fourth embodiment will be described with reference to FIGS. In the fourth embodiment, when the OBP of the guest domain starts operating during the period when the control domain is not operating, the OBP can obtain the value of the OBP environment variable without waiting for the control domain to start. This is an embodiment obtained by modifying the second embodiment. Since the configuration of the computer according to the fourth embodiment is similar to the configuration of the computer according to the second embodiment, the fourth embodiment will be described using the reference numerals in FIG. 5 relating to the second embodiment.
 図15は、第4実施形態における環境変数の保存に関する、様々な状況を説明する図である。図15の形式は図1と同様である。つまり、図15には、第1の仮想マシンのブートローダ1が動作する期間と、ブートローダ1の環境変数を管理する第2の仮想マシン2が動作する期間と、第2のプロセッサ3が動作する期間が示されている。 FIG. 15 is a diagram for explaining various situations related to storage of environment variables in the fourth embodiment. The format of FIG. 15 is the same as that of FIG. That is, FIG. 15 shows a period during which the boot loader 1 of the first virtual machine operates, a period during which the second virtual machine 2 that manages environment variables of the boot loader 1 operates, and a period during which the second processor 3 operates. It is shown.
 例えば、ブートローダ1は、具体的にはゲストドメイン140のOBPであり、第2の仮想マシン2は具体的には制御ドメイン130であり、第2のプロセッサ3は、具体的にはSP170(特に保存制御部172)である。以下では、図1の説明と同様に、ハイパーバイザ、および、ハイパーバイザ上で動作する複数の仮想マシンを実行するための1台以上のプロセッサを「1台以上の第1のプロセッサ」という。第2のプロセッサ3は、ハイパーバイザも実行せず、ハイパーバイザ上で動作するどの仮想マシンも実行しない。つまり、第2のプロセッサ3は、ハイパーバイザとは独立して動作する。その他の図1との共通点については、適宜説明を省略する。 For example, the boot loader 1 is specifically the OBP of the guest domain 140, the second virtual machine 2 is specifically the control domain 130, and the second processor 3 is specifically SP 170 (especially storage Controller 172). Hereinafter, as in the description of FIG. 1, one or more processors for executing the hypervisor and a plurality of virtual machines operating on the hypervisor are referred to as “one or more first processors”. The second processor 3 does not execute the hypervisor and does not execute any virtual machine operating on the hypervisor. That is, the second processor 3 operates independently of the hypervisor. Description of other points in common with FIG. 1 will be omitted as appropriate.
 図15において、状況4I~4Kは、それぞれ上記の不等式(A)~(C)に対応し、状況4Lは下記の不等式(L)に対応し、状況4Mと4Nは、それぞれ上記の不等式(D)と(E)に対応する。不等式(L)とあわせて、参考用に不等式(A)~(E)を再掲する。 In FIG. 15, situations 4I to 4K correspond to the above inequalities (A) to (C), respectively, situation 4L corresponds to the following inequalities (L), and situations 4M and 4N respectively correspond to the above inequalities (D ) And (E). Along with inequality (L), inequality (A) to (E) are shown again for reference.
  T_start < T_down < T_end < T_boot    (A)……状況4I
  T_start < T_down < T_boot < T_end    (B)……状況4J
  T_start < T_end < T_down < T_boot    (C)……状況4K
  T_down < T_start < T_end < T_boot    (L)……状況4L
  T_down < T_start < T_boot < T_end    (D)……状況4M
  T_down < T_boot < T_start < T_end    (E)……状況4N
T_start <T_down <T_end <T_boot (A) …… Situation 4I
T_start <T_down <T_boot <T_end (B) …… Situation 4J
T_start <T_end <T_down <T_boot (C) …… Situation 4K
T_down <T_start <T_end <T_boot (L) …… Situation 4L
T_down <T_start <T_boot <T_end (D) …… Situation 4M
T_down <T_boot <T_start <T_end (E) …… Situation 4N
 状況4Iでは、状況4Aと同様に、時刻T_downより前に、第1の環境変数の値が「A2」に更新される。すなわち、「A2」という値は、正常に第1の記憶装置(具体的には環境変数保存部131)に保存される。 In the situation 4I, as in the situation 4A, the value of the first environment variable is updated to “A2” before the time T_down. That is, the value “A2” is normally stored in the first storage device (specifically, the environment variable storage unit 131).
 ただし、状況4Aと違って状況4Iでは、1台以上の第1のプロセッサのうち第2の仮想マシン2を実行している第1のプロセッサは、ブートローダ1から「A2」という値を受け取ると、受け取った「A2」という値をさらに第2のプロセッサ3に送る。そして、第2のプロセッサ3は、「A2」という値を第2の記憶装置(具体的には環境変数保存部171)に保存する。 However, unlike the situation 4A, in the situation 4I, when the first processor executing the second virtual machine 2 among the one or more first processors receives the value “A2” from the boot loader 1, The received value “A2” is further sent to the second processor 3. Then, the second processor 3 stores the value “A2” in the second storage device (specifically, the environment variable storage unit 171).
 また、状況4Iでは状況4Aと同様に、時刻T_downより後かつ時刻T_bootより前のある時点でブートローダ1を実行中の第1のプロセッサが、第2の環境変数の「B2」という値を保存するよう第2の仮想マシン2に要求する。しかし、第2の仮想マシン2は動作していないので、決められた時間以内には当該要求に対する応答が返されない。 In the situation 4I, as in the situation 4A, the first processor executing the boot loader 1 at a certain time after the time T_down and before the time T_boot stores the value “B2” of the second environment variable. The second virtual machine 2 is requested. However, since the second virtual machine 2 is not operating, a response to the request is not returned within a predetermined time.
 この場合、ブートローダ1を実行中の第1のプロセッサは、第2のプロセッサ3に対して、第2の環境変数の「B2」という値を第2の記憶装置に保存するよう要求する。要求に応じて、「B2」という値は第2の記憶装置に保存される。 In this case, the first processor executing the boot loader 1 requests the second processor 3 to save the value “B2” of the second environment variable in the second storage device. Upon request, the value “B2” is stored in the second storage device.
 そして、時刻T_bootに第2の仮想マシン2が再起動すると、1台以上の第1のプロセッサのうち第2の仮想マシン2を実行する第1のプロセッサは、第2のプロセッサ3から第1~第3の環境変数の値を取得する。第4実施形態では、ブートローダ1のすべての環境変数の値が、第2のプロセッサ3からアクセスされる第2の記憶装置にも保持されている。そのため、第2のプロセッサ3は、要求に応じて、いつでも、どの環境変数の値でも、返すことができる。 Then, when the second virtual machine 2 is restarted at time T_boot, the first processor that executes the second virtual machine 2 out of the one or more first processors is connected to the first processor 1 through the second processor 3. Get the value of the third environment variable. In the fourth embodiment, the values of all environment variables of the boot loader 1 are also held in the second storage device accessed from the second processor 3. Therefore, the second processor 3 can return the value of any environment variable at any time upon request.
 状況4Iでは、具体的には、1台以上の第1のプロセッサのうち、第2の仮想マシン2を実行する第1のプロセッサは、「A2」、「B2」、および「C1」という値を第2のプロセッサ3から取得する。取得した3つの値のうち、「A2」と「C1」という2つの値は、第2の仮想マシン2からアクセスされる第1の記憶装置に保存されている値と同じである。しかし、「B2」という値は、第1の記憶装置に保存されている値より新しい。よって、第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始した第1のプロセッサは、「B2」という値を、第1の記憶装置に保存する。 In the situation 4I, specifically, among the one or more first processors, the first processor that executes the second virtual machine 2 sets values “A2”, “B2”, and “C1”. Obtained from the second processor 3. Of the acquired three values, two values “A2” and “C1” are the same as the values stored in the first storage device accessed from the second virtual machine 2. However, the value “B2” is newer than the value stored in the first storage device. Therefore, the first processor that has started the execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 stores the value “B2” in the first storage device.
 さて、状況4Jは、状況4Iと似ているが、時刻T_bootにおいて第2の仮想マシン2が再起動されたときに、まだブートローダ1が動作中であるという点において、状況4Iとは異なる。そこで、状況4Bと同様に状況4Jでは、第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始した第1のプロセッサは、ブートローダ1から最新の環境変数の値を取得する。そして、第2の仮想マシン2を実行する第1のプロセッサは、少なくとも第2の環境変数の「B2」という値を、第1の記憶装置に保存する。その結果、第2の仮想マシン2が動作していなかった間に行われた環境変数の更新が、第1の記憶装置に反映される。 The situation 4J is similar to the situation 4I, but is different from the situation 4I in that the boot loader 1 is still operating when the second virtual machine 2 is restarted at the time T_boot. Therefore, in the situation 4J as in the situation 4B, the first processor that has started the execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 obtains the latest environment variable value from the boot loader 1. get. Then, the first processor that executes the second virtual machine 2 stores at least the value “B2” of the second environment variable in the first storage device. As a result, the update of the environment variable performed while the second virtual machine 2 was not operating is reflected in the first storage device.
 また、状況4Bと同様に状況4Jでも、ブートローダ1は時刻T_bootよりも後まで動作し続ける。よって、以上のようにして第1の記憶装置上の環境変数が最新の状態へと更新された後に、さらに環境変数が更新される可能性もある。 Also, in the situation 4J as in the situation 4B, the boot loader 1 continues to operate until after the time T_boot. Therefore, after the environment variable on the first storage device is updated to the latest state as described above, the environment variable may be further updated.
 例えば、時刻T_bootよりも後に、第3の環境変数の値が「C2」に更新されてもよい。この第3の環境変数の更新においても、第1の環境変数が「A1」から「A2」に更新されたときと同様の処理が行われる。 For example, the value of the third environment variable may be updated to “C2” after time T_boot. In the update of the third environment variable, the same processing as that performed when the first environment variable is updated from “A1” to “A2” is performed.
 具体的には、1台以上の第1のプロセッサのうち、第2の仮想マシン2を実行している第1のプロセッサは、ブートローダ1から「C2」という値を受け取ると、受け取った「C2」という値を第1の記憶装置に保存する。また、第2の仮想マシン2を実行している第1のプロセッサは、さらに、受け取った「C2」という値を第2のプロセッサ3に送る。そして、第2のプロセッサ3は、「A2」という値を第2の記憶装置に保存する。 Specifically, when the first processor executing the second virtual machine 2 among the one or more first processors receives the value “C2” from the boot loader 1, the received “C2” Is stored in the first storage device. Further, the first processor executing the second virtual machine 2 further sends the received value “C2” to the second processor 3. Then, the second processor 3 stores the value “A2” in the second storage device.
 さて、状況4Kにおいては、状況4Iおよび4Jと同様に、ブートローダ1と第2の仮想マシン2の双方が動作している間に第1の環境変数が「A1」という値から「A2」という値へと更新されることがあり得る。しかし、状況4Kでは、第2の仮想マシン2が時刻T_downで動作を停止したときには既に、ブートローダ1は動作していない。 In the situation 4K, as in the situation 4I and 4J, the first environment variable is changed from the value “A1” to the value “A2” while both the boot loader 1 and the second virtual machine 2 are operating. May be updated. However, in the situation 4K, when the second virtual machine 2 stops operating at the time T_down, the boot loader 1 is not already operating.
 よって、状況4Kでは、第2の仮想マシン2が動作していない間にブートローダ1により環境変数が更新されることはない。そのため、状況4Kでは、時刻T_bootに第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始した第1のプロセッサは、環境変数の値を取得する必要がない。 Therefore, in the situation 4K, the environment variable is not updated by the boot loader 1 while the second virtual machine 2 is not operating. Therefore, in the situation 4K, the first processor that has started the execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 at time T_boot does not need to acquire the value of the environment variable.
 ところで、状況4Lのように、たまたま、第2の仮想マシン2が動作していない間にブートローダ1が起動されることもあり得る。この場合、1台以上の第1のプロセッサのうちでブートローダ1の実行を開始した第1のプロセッサは、ブートローダ1のすべての環境変数の値を送るよう、第2の仮想マシン2に要求する。ところが、第2の仮想マシン2は動作していないので、要求に対する応答は得られない。 By the way, as in the situation 4L, the boot loader 1 may happen to be activated while the second virtual machine 2 is not operating. In this case, the first processor that has started execution of the boot loader 1 among the one or more first processors requests the second virtual machine 2 to send the values of all environment variables of the boot loader 1. However, since the second virtual machine 2 is not operating, a response to the request cannot be obtained.
 この場合、ブートローダ1を実行中の第1のプロセッサは、図1の状況4Dに示されるように第2の仮想マシン2の起動を待つ代わりに、ブートローダ1のすべての環境変数の値を送るよう第2のプロセッサ3に要求する。すると、第2のプロセッサ3は、第2の記憶装置に保存されているすべての環境変数の値を、ブートローダ1を実行中の第1のプロセッサへと送る。 In this case, the first processor executing the boot loader 1 sends the values of all environment variables of the boot loader 1 instead of waiting for the second virtual machine 2 to start as shown in the situation 4D of FIG. Request to the second processor 3. Then, the second processor 3 sends the values of all environment variables stored in the second storage device to the first processor that is executing the boot loader 1.
 したがって、第4実施形態では、ブートローダ1を実行中の第1のプロセッサは、第2のプロセッサ3から取得した各環境変数の値を初期値として用いて、適宜の処理を実行することができる。さらに、状況4Iと同様にして、第2の仮想マシン2が動作していない間に、ブートローダ1から「B2」という新たな値が第2のプロセッサ3へと送られ、「B2」という値が第2の記憶装置に保存されることもあり得る。 Therefore, in the fourth embodiment, the first processor that is executing the boot loader 1 can execute appropriate processing using the values of the environment variables acquired from the second processor 3 as initial values. Further, similarly to the situation 4I, while the second virtual machine 2 is not operating, a new value “B2” is sent from the boot loader 1 to the second processor 3, and the value “B2” is set. It may be stored in the second storage device.
 また、図1の状況4Dと違って状況4Lでは、ブートローダ1を実行中の第1のプロセッサは、第2の仮想マシン2の起動を待たない。そのため、時刻T_bootにおける第2の仮想マシン2の起動よりも前に、第1のプロセッサがブートローダ1の実行を終了することもあり得る。つまり、時刻T_bootよりも前に、第1の仮想マシンでOSが起動される場合もあり得る。 Further, unlike the situation 4D in FIG. 1, in the situation 4L, the first processor that is executing the boot loader 1 does not wait for the second virtual machine 2 to start. Therefore, the first processor may end the execution of the boot loader 1 before starting the second virtual machine 2 at time T_boot. That is, the OS may be activated in the first virtual machine before time T_boot.
 このようにT_end<T_bootが成り立つ場合、時刻T_bootに第2の仮想マシン2が再起動すると、1台以上の第1のプロセッサのうち第2の仮想マシン2を実行する第1のプロセッサは、第2のプロセッサ3から第1~第3の環境変数の値を取得する。状況4Lにおける時刻T_bootでの第2のプロセッサ3からの環境変数の値の取得は、状況4Iにおける取得と同様である。 When T_end <T_boot is satisfied in this way, when the second virtual machine 2 is restarted at time T_boot, the first processor that executes the second virtual machine 2 among the one or more first processors The values of the first to third environment variables are acquired from the second processor 3. The acquisition of the value of the environment variable from the second processor 3 at the time T_boot in the situation 4L is the same as the acquisition in the situation 4I.
 ところで、状況4Lでは時刻T_bootよりも前にブートローダ1の実行が終了するが、状況4Mのように、時刻T_bootの後までブートローダ1の実行が続くこともあり得る。この場合、状況4Jと同様にして、第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始した第1のプロセッサは、ブートローダ1から最新の環境変数の値(すなわち、「A1」、「B2」、および「C1」という値)を取得する。 By the way, in the situation 4L, the execution of the boot loader 1 ends before the time T_boot. However, as in the situation 4M, the execution of the boot loader 1 may continue until after the time T_boot. In this case, similarly to the situation 4J, the first processor that has started the execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 receives the value of the latest environment variable from the boot loader 1 (that is, , “A1”, “B2”, and “C1”).
 そして、第2の仮想マシン2を実行する第1のプロセッサは、少なくとも、第2の環境変数の「B2」という値を、第1の記憶装置に保存する。その結果、第2の仮想マシン2が動作していなかった間に行われた環境変数の更新が、第1の記憶装置に反映される。 Then, the first processor that executes the second virtual machine 2 stores at least the value “B2” of the second environment variable in the first storage device. As a result, the update of the environment variable performed while the second virtual machine 2 was not operating is reflected in the first storage device.
 さらに、状況4Mでは、状況4Jと同様に、第3の環境変数の値が「C2」に更新される場合もあり得る。この場合、更新後の「C2」という値は、第1の記憶装置に保存されるだけでなく、さらに、第2の仮想マシン2から第2のプロセッサ3へと送られ、第2の記憶装置に保存される。 Furthermore, in the situation 4M, as in the situation 4J, the value of the third environment variable may be updated to “C2”. In this case, the updated value “C2” is not only stored in the first storage device, but is also sent from the second virtual machine 2 to the second processor 3 to be stored in the second storage device. Saved in.
 さて、図1の状況4Eと同様に、状況4Nでも、第2の仮想マシン2の再起動後の時刻T_startにおいてブートローダ1が起動される。したがって、状況4Eと同様に状況4Nでは、第2の仮想マシン2が動作していない間に値が更新される環境変数はない。つまり、状況4Nでは、1台以上の第1のプロセッサのうち、第2の仮想マシン2の再起動に応じて第2の仮想マシン2の実行を開始したプロセッサは、環境変数の値を取得する必要がない。 Now, similarly to the situation 4E of FIG. 1, in the situation 4N, the boot loader 1 is started at the time T_start after the second virtual machine 2 is restarted. Therefore, as in the situation 4E, in the situation 4N, there is no environment variable whose value is updated while the second virtual machine 2 is not operating. That is, in the situation 4N, the processor that has started the execution of the second virtual machine 2 in response to the restart of the second virtual machine 2 among the one or more first processors acquires the value of the environment variable. There is no need.
 また、状況4Nでは、状況4Eと同様に、1台以上の第1のプロセッサのうち、ブートローダ1の起動に応じてブートローダ1の実行を開始したプロセッサは、ブートローダ1のすべての環境変数の値を送るよう、第2の仮想マシン2に対して要求する。状況4Nでは、この要求が発行される時刻T_startにおいて、第2の仮想マシン2は動作中である。よって、1台以上の第1のプロセッサのうち、ブートローダ1を実行中の第1のプロセッサは、要求に応じて、第1~第3の環境変数それぞれの値「A1」、「B1」および「C1」を取得することができる。 In the situation 4N, as in the situation 4E, the processor that has started execution of the boot loader 1 in response to the boot loader 1 activation among the one or more first processors sets the values of all environment variables of the boot loader 1 Request to the second virtual machine 2 to send. In the situation 4N, the second virtual machine 2 is operating at the time T_start when this request is issued. Therefore, among the one or more first processors, the first processor that is executing the boot loader 1 responds to the request with the values “A1”, “B1”, and “ C1 "can be acquired.
 さらに、状況4Mと同様に状況4Nにおいても、その後、第3の環境変数の値が「C2」に更新されることがあり得る。つまり、「C2」という値は、第1の記憶装置に保存されるだけでなく、さらに、第2の仮想マシン2から第2のプロセッサ3へ送られ、第2の記憶装置に保存される。 Furthermore, in the situation 4N as well as the situation 4M, the value of the third environment variable may be updated to “C2” thereafter. That is, the value “C2” is not only stored in the first storage device, but is further sent from the second virtual machine 2 to the second processor 3 and stored in the second storage device.
 以上例示したように、様々な状況4I~4Nがあり得る。第4実施形態によれば、いずれの状況においても、「ブートローダ1の環境変数の保存を制御する第2の仮想マシン2に生じる故障が原因で、第1の仮想マシンのOSの次回の起動に支障をきたし得る」という問題が回避される。 As illustrated above, there can be various situations 4I to 4N. According to the fourth embodiment, in any situation, “the next startup of the OS of the first virtual machine due to a failure that occurs in the second virtual machine 2 that controls the saving of the environment variable of the boot loader 1” The problem of “being hindered” is avoided.
 また、第4実施形態によれば、第2のプロセッサ3からアクセスされる第2の記憶装置には、ブートローダ1の環境変数の最新の値が保持され続ける。よって、第2の仮想マシン2が故障中でも(つまり第2の仮想マシン2が動作していなくても)、1台以上の第1のプロセッサのうちブートローダ1を実行し始めた第1のプロセッサは、第2の仮想マシン2の起動を待たずに、環境変数の初期値を得ることができる。つまり、第4実施形態によれば、ブートローダ1を実行し始めた第1のプロセッサは、速やかに環境変数を用いた他の処理を開始することができる。 Further, according to the fourth embodiment, the latest value of the environment variable of the boot loader 1 is continuously held in the second storage device accessed from the second processor 3. Therefore, even if the second virtual machine 2 is out of order (that is, even if the second virtual machine 2 is not operating), the first processor that has started to execute the boot loader 1 among the one or more first processors is The initial value of the environment variable can be obtained without waiting for the second virtual machine 2 to start. That is, according to the fourth embodiment, the first processor that has started executing the boot loader 1 can immediately start another process using the environment variable.
 図16は、第4実施形態と比較例を比べて示す図である。図16では、比較例による状況4Oが、第4実施形態による状況4Pと比較されており、比較例による状況4Qが、第4実施形態による状況4Rと比較されている。図16の形式は図2と同様である。 FIG. 16 is a diagram showing a comparison between the fourth embodiment and a comparative example. In FIG. 16, the situation 4O according to the comparative example is compared with the situation 4P according to the fourth embodiment, and the situation 4Q according to the comparative example is compared with the situation 4R according to the fourth embodiment. The format of FIG. 16 is the same as that of FIG.
 比較例に関する状況4Oは、図2の状況4Fと同じである。したがって、状況4Oでは、第2の環境変数の「B4」という値が保存されず、その結果、第1の仮想マシンのOSが起動不能に陥る可能性がある。 The situation 4O regarding the comparative example is the same as the situation 4F in FIG. Therefore, in the situation 4O, the value “B4” of the second environment variable is not saved, and as a result, the OS of the first virtual machine may be unable to start.
 他方、第4実施形態によれば、たとえ第2の仮想マシン2が故障しても、第1の仮想マシンのOSの将来の起動に支障をきたさない。例えば、図15の状況4Iと類似の状況4Pによれば、第2の仮想マシン2の動作中には、第1の環境変数の値が「A3」から「A4」へと正常に更新され、更新後の「A4」という値は第1の記憶装置と第2の記憶装置の双方に保存される。また、第2の仮想マシン2が動作していない間にブートローダ1から更新を要求された第2の環境変数に関しても、更新後の「B4」という値が、第2の記憶装置に一時的に保存され、その後、第2の仮想マシン2の復旧後に第1の記憶装置に反映される。 On the other hand, according to the fourth embodiment, even if the second virtual machine 2 fails, it will not hinder the future startup of the OS of the first virtual machine. For example, according to the situation 4P similar to the situation 4I in FIG. 15, the value of the first environment variable is normally updated from “A3” to “A4” during the operation of the second virtual machine 2, The updated value “A4” is stored in both the first storage device and the second storage device. In addition, for the second environment variable requested to be updated by the boot loader 1 while the second virtual machine 2 is not operating, the updated value “B4” is temporarily stored in the second storage device. The data is saved and then reflected in the first storage device after the second virtual machine 2 is restored.
 したがって、時刻T_bootよりも後の時刻T_nextにおいて再びブートローダ1が呼び出されると、1台以上の第1のプロセッサのうちでブートローダ1を実行するプロセッサは、各環境変数の最新の値を第2の仮想マシン2から取得することができる。つまり、時刻T_nextでブートローダ1の実行を開始した第1のプロセッサは、「A4」、「B4」および「C3」という最新の値を取得することができる。その結果、時刻T_nextより後のある時点におけるブートローダ1からのOSの起動の際には、状況4Oで生じ得るような問題は生じない。 Therefore, when the boot loader 1 is called again at time T_next after the time T_boot, the processor that executes the boot loader 1 among the one or more first processors sets the latest value of each environment variable to the second virtual value. It can be obtained from the machine 2. That is, the first processor that has started execution of the boot loader 1 at time T_next can obtain the latest values “A4”, “B4”, and “C3”. As a result, there is no problem that may occur in the situation 4O when the OS is booted from the boot loader 1 at a certain time after the time T_next.
 ところで、状況4Oと4Pは、以下に再掲する不等式(A-2)が成り立つ状況の例である。
  T_start < T_down < T_end < T_boot < T_next    (A-2)
By the way, situations 4O and 4P are examples of situations in which the inequality (A-2), which will be re-described below, holds.
T_start <T_down <T_end <T_boot <T_next (A-2)
 他方、状況4Qと4Rは、以下の不等式(D-2)が成り立つ状況の例である。
  T_down < T_start < T_boot < T_end < T_next    (D-2)
On the other hand, situations 4Q and 4R are examples of situations where the following inequality (D-2) holds.
T_down <T_start <T_boot <T_end <T_next (D-2)
 比較例による状況4Qでは、ブートローダ1の環境変数の保存のために第2のプロセッサ3は使われない。よって、状況4Qでは、第2の仮想マシン2が動作していないときにブートローダ1が起動すると、1台以上の第1のプロセッサのうちブートローダ1を実行している第1のプロセッサは、第2の仮想マシン2から環境変数の値を得ることができない。 In the situation 4Q according to the comparative example, the second processor 3 is not used for saving the environment variable of the boot loader 1. Therefore, in the situation 4Q, when the boot loader 1 is started when the second virtual machine 2 is not operating, the first processor executing the boot loader 1 among the one or more first processors is the second one. The value of the environment variable cannot be obtained from the virtual machine 2.
 この場合、比較例では、ブートローダ1を実行する第1のプロセッサは、各環境変数の固定的なデフォルト値を使う。図16では、第1~第3の環境変数のデフォルト値がそれぞれ「A0」、「B0」、および「C0」と表されている。 In this case, in the comparative example, the first processor that executes the boot loader 1 uses a fixed default value of each environment variable. In FIG. 16, the default values of the first to third environment variables are represented as “A0”, “B0”, and “C0”, respectively.
 デフォルト値を使うことで、「各環境変数の値が未定義である」という状態は回避される。したがって、ブートローダ1の実行は可能である。よって、ブートローダ1の実行の過程において、図16に示すごとく、ブートローダ1を実行する第1のプロセッサは、第2の仮想マシン2に対して第2の環境変数の「B4」という新たな値を保存するよう要求することもあり得る。 ∙ By using the default value, the situation that "the value of each environment variable is undefined" is avoided. Therefore, the boot loader 1 can be executed. Therefore, in the process of executing the boot loader 1, as shown in FIG. 16, the first processor that executes the boot loader 1 sets a new value “B4” of the second environment variable to the second virtual machine 2. It may be required to save.
 しかし、状況4Qでは、当該要求が出された時点において第2の仮想マシン2は動作していない。そのため、「B4」という値はどこにも保存されない。 However, in the situation 4Q, the second virtual machine 2 is not operating at the time when the request is issued. Therefore, the value “B4” is not stored anywhere.
 また、ブートローダ1の実行は、第2の仮想マシン2が時刻T_bootに起動した後まで続く可能性がある。すると、1台以上の第1のプロセッサのうち、時刻T_bootの後のある時点においてブートローダ1を実行中の第1のプロセッサが、第3の環境変数を「C4」という値に更新するよう、第2の仮想マシン2に要求する場合もあり得る。当該要求が出される時点では、第2の仮想マシン2は動作しているので、「C4」という値は第1の記憶装置に正常に保存される。 Also, the execution of the boot loader 1 may continue until after the second virtual machine 2 is started at time T_boot. Then, among the one or more first processors, the first processor that is executing the boot loader 1 at a certain time after the time T_boot updates the third environment variable to the value “C4”. There may be a case where two virtual machines 2 are requested. Since the second virtual machine 2 is operating at the time when the request is issued, the value “C4” is normally stored in the first storage device.
 しかしながら、状況4Qでは、第1の仮想マシンにおいてブートローダ1が時刻T_endに動作を終了する際、第1の仮想マシン上でOSが起動不能に陥っている可能性がある。なぜなら、状況4Qでは、ブートローダ1を実行する第1のプロセッサが使用するメモリ上には、時刻T_endにおいて、「A0」と「B4」と「C4」という値が記憶されているからである。 However, in the situation 4Q, when the boot loader 1 finishes the operation at the time T_end in the first virtual machine, there is a possibility that the OS is unable to start on the first virtual machine. This is because in the situation 4Q, the values “A0”, “B4”, and “C4” are stored in the memory used by the first processor that executes the boot loader 1 at the time T_end.
 具体的には、ブートローダ1からのOSの起動は、メモリ上に記憶されている「A0」と「B4」と「C4」という値を用いて試みられる。よって、(仮に、ブートローダ1の動作中に更新された「B4」と「C4」という2つの値が適切であったとしても)「A0」というデフォルト値が不適切であれば、OSが起動不能に陥るおそれがある。例えば、第1の仮想マシンの現在の構成と「A0」というデフォルト値が不整合な場合には、OSが起動不能なことがある。 Specifically, the OS activation from the boot loader 1 is attempted using the values “A0”, “B4”, and “C4” stored in the memory. Therefore, if the default value “A0” is inappropriate (even if the two values “B4” and “C4” updated during the operation of the boot loader 1 are appropriate), the OS cannot be started. There is a risk of falling. For example, if the current configuration of the first virtual machine and the default value “A0” are inconsistent, the OS may not be bootable.
 また、仮に「A0」と「B4」と「C4」という値にしたがって第1の仮想マシン上でOSの起動が成功したとしても、次回のOSの起動が成功するとは限らない。なぜなら、「B4」という値は不揮発性の第1の記憶装置には保存されていないからである。 Further, even if the OS is successfully started on the first virtual machine according to the values “A0”, “B4”, and “C4”, the next OS startup is not always successful. This is because the value “B4” is not stored in the nonvolatile first storage device.
 1台以上の第1のプロセッサのうち、時刻T_nextに再びブートローダ1が呼び出されたときにブートローダ1の実行を開始した第1のプロセッサは、第2の仮想マシン2に各環境変数の値を送るよう要求する。1台以上の第1のプロセッサのうち、時刻T_nextに第2の仮想マシン2を実行中の第1のプロセッサは、当該要求に応じて、第1の記憶装置から各環境変数の値を読み出す。ところが、上記のとおり、「B4」という値は第1の記憶装置には保存されていない。 Among the one or more first processors, the first processor that starts executing the boot loader 1 when the boot loader 1 is called again at time T_next sends the value of each environment variable to the second virtual machine 2. Request that. Of the one or more first processors, the first processor that is executing the second virtual machine 2 at time T_next reads the value of each environment variable from the first storage device in response to the request. However, as described above, the value “B4” is not stored in the first storage device.
 したがって、ブートローダ1を実行中の第1のプロセッサには、「A3」、「B3」、および「C4」という値が返される。このように、「B4」という最新の値ではなく「B3」という古い値が返されると、時刻T_nextの後のある時点におけるブートローダ1からのOSの起動が、失敗してしまう可能性がある。 Therefore, the values “A3”, “B3”, and “C4” are returned to the first processor that is executing the boot loader 1. As described above, when the old value “B3” is returned instead of the latest value “B4”, the boot loader 1 may fail to start at a certain time after the time T_next.
 以上説明したように、状況4Qでは、第2の仮想マシン2の故障のせいで、第1の仮想マシン上のOSが起動不能に陥るおそれがある。しかし、状況4Qと同様に不等式(D-2)が成り立つ状況4Rにおいては、状況4Qで生じるような問題は回避される。 As described above, in the situation 4Q, there is a possibility that the OS on the first virtual machine may become unbootable due to a failure of the second virtual machine 2. However, in the situation 4R where the inequality (D-2) holds as in the situation 4Q, the problem that occurs in the situation 4Q is avoided.
 なぜなら、状況4Rでは、第2の仮想マシン2が動作していない間にブートローダ1が起動されると、1台以上の第1のプロセッサのうちブートローダ1の実行を開始した第1のプロセッサは、第2のプロセッサ3から各環境変数の最新の値を取得するからである。したがって、状況4Qのようなデフォルト値の使用に起因する問題は生じない。 Because, in the situation 4R, when the boot loader 1 is activated while the second virtual machine 2 is not operating, the first processor that has started executing the boot loader 1 among the one or more first processors is: This is because the latest value of each environment variable is acquired from the second processor 3. Therefore, the problem caused by using the default value as in the situation 4Q does not occur.
 また、状況4Rでは、第2の環境変数の値を「B4」に更新するための要求が、第2の仮想マシン2が動作していない間に出された場合には、「B4」という新たな値は第2のプロセッサ3に送られ、第2の記憶装置に保存される。 In the situation 4R, if a request for updating the value of the second environment variable to “B4” is issued while the second virtual machine 2 is not operating, a new “B4” is created. This value is sent to the second processor 3 and stored in the second storage device.
 さらに、状況4Rでは、第2の仮想マシン2が時刻T_bootに起動される。このとき、1台以上の第1のプロセッサのうち第2の仮想マシン2の実行を開始した第1のプロセッサは、1台以上の第1のプロセッサのうち時刻T_bootにブートローダ1を実行中の第1のプロセッサから、各環境変数の最新の値を取得する。そして、第2の仮想マシン2を実行する第1のプロセッサは、取得した値に基づいて、第1の記憶装置に保存されている「B3」という古い値を、「B4」という更新後の値に書き換える。 Furthermore, in the situation 4R, the second virtual machine 2 is started at time T_boot. At this time, the first processor that has started execution of the second virtual machine 2 among the one or more first processors is the first processor that is executing the boot loader 1 at time T_boot among the one or more first processors. The latest value of each environment variable is acquired from one processor. Then, the first processor that executes the second virtual machine 2 replaces the old value “B3” stored in the first storage device with the updated value “B4” based on the acquired value. Rewrite to
 また、ブートローダ1の実行は、第2の仮想マシン2が時刻T_bootに起動した後まで続く可能性がある。すると、1台以上の第1のプロセッサのうち、時刻T_bootの後のある時点においてブートローダ1を実行中の第1のプロセッサが、第3の環境変数を「C4」という値に更新するよう、第2の仮想マシン2に要求する場合もあり得る。 Also, the execution of the boot loader 1 may continue until after the second virtual machine 2 is started at time T_boot. Then, among the one or more first processors, the first processor that is executing the boot loader 1 at a certain time after the time T_boot updates the third environment variable to the value “C4”. There may be a case where two virtual machines 2 are requested.
 当該要求が出される時点では、第2の仮想マシン2は動作しているので、「C4」という値は第1の記憶装置に正常に保存される。また、「C4」という値は、第2の仮想マシン2を実行中の第1のプロセッサから第2のプロセッサ3へと送られ、第2の記憶装置にも保存される。 Since the second virtual machine 2 is operating at the time when the request is issued, the value “C4” is normally stored in the first storage device. Further, the value “C4” is sent from the first processor executing the second virtual machine 2 to the second processor 3 and is also stored in the second storage device.
 したがって、時刻T_endよりも後の時刻T_nextにおいて再びブートローダ1が呼び出されると、1台以上の第1のプロセッサのうちでブートローダ1を実行するプロセッサは、各環境変数の最新の値を第2の仮想マシン2から取得することができる。つまり、時刻T_nextでブートローダ1の実行を開始した第1のプロセッサは、「A3」、「B4」および「C4」という最新の値を取得することができる。その結果、時刻T_nextより後のある時点におけるブートローダ1からのOSの起動の際には、状況4Qで生じ得るような問題は生じない。 Therefore, when the boot loader 1 is called again at time T_next after time T_end, the processor that executes the boot loader 1 among the one or more first processors sets the latest value of each environment variable to the second virtual value. It can be obtained from the machine 2. That is, the first processor that has started execution of the boot loader 1 at time T_next can obtain the latest values “A3”, “B4”, and “C4”. As a result, there is no problem that may occur in the situation 4Q when the OS is booted from the boot loader 1 at a certain time after the time T_next.
 このように、第4実施形態によれば、比較例において生じ得る問題が回避される。具体的には、第4実施形態では、図17に例示する更新リスト230を利用した処理により、上記の問題の回避が可能となる。そこで、以下のような具体的想定にしたがって、第4実施形態についてさらに詳しく説明する。 Thus, according to the fourth embodiment, problems that may occur in the comparative example are avoided. Specifically, in the fourth embodiment, the above problem can be avoided by processing using the update list 230 illustrated in FIG. Therefore, the fourth embodiment will be described in more detail according to the following specific assumptions.
  ・図15~16におけるブートローダ1は、具体的にはゲストドメイン140のOBPである。
  ・図15~16における第2の仮想マシン2は、具体的には制御ドメイン130である。
  ・図15~16における第2のプロセッサ3は、具体的にはSP170である。
The boot loader 1 in FIGS. 15 to 16 is specifically an OBP of the guest domain 140.
The second virtual machine 2 in FIGS. 15 to 16 is specifically the control domain 130.
The second processor 3 in FIGS. 15 to 16 is specifically SP170.
 例えば、SP170が図3のSP50により実現される場合、図17の更新リスト230は、不揮発性メモリ52に記憶されていてもよいし、メモリ53に記憶されていてもよい。更新リスト230は、保存制御部172により管理される。 For example, when the SP 170 is realized by the SP 50 in FIG. 3, the update list 230 in FIG. 17 may be stored in the nonvolatile memory 52 or the memory 53. The update list 230 is managed by the storage control unit 172.
 更新リスト230は、N個のゲストドメインに対応してN個のエントリを有する。更新リスト230のn番目のエントリは、n番目のゲストドメインのOBPからの要求にしたがって、制御ドメイン130が動作していない間に、環境変数保存部171に環境変数の値が保存されたか否かを示す(1≦n≦N)。具体的には、各エントリは、ドメイン番号と更新フラグを含む。 The update list 230 has N entries corresponding to N guest domains. The nth entry in the update list 230 indicates whether the value of the environment variable is stored in the environment variable storage unit 171 while the control domain 130 is not operating according to the request from the OBP of the nth guest domain. (1 ≦ n ≦ N). Specifically, each entry includes a domain number and an update flag.
 ドメイン番号で識別されるゲストドメインのOBPからの要求にしたがって、制御ドメイン130が動作していない間に、環境変数保存部171(具体的には環境変数テーブル210-n)に環境変数の値が保存された場合、更新フラグの値はTRUEである。逆に、制御ドメイン130が動作していない間に、ドメイン番号で識別されるゲストドメインのOBPからは、環境変数保存部171に環境変数の値を保存するようには要求されなかった場合、更新フラグの値はFALSEである。 While the control domain 130 is not operating according to the request from the guest domain OBP identified by the domain number, the value of the environment variable is stored in the environment variable storage unit 171 (specifically, the environment variable table 210-n). When saved, the value of the update flag is TRUE. On the contrary, when the control domain 130 is not operating, the OBP of the guest domain identified by the domain number is not requested to store the environment variable value in the environment variable storage unit 171. The value of the flag is FALSE.
 ところで、第4実施形態では、第2実施形態に関する図8~12の処理が以下のとおり変形される。 Incidentally, in the fourth embodiment, the processes of FIGS. 8 to 12 relating to the second embodiment are modified as follows.
  ・図8のステップS104~S105は、環境変数管理部142がSP170に全OBP環境変数の値を送るように要求する処理に置き換えられる。環境変数管理部142は、SP170から全OBP環境変数の値を受信したら、ステップS106以降のステップを実行する。
  ・SP170は、図9のフローチャートの代わりに図18のフローチャートにしたがって動作する。
  ・新規ゲストドメインが追加された場合、設定部134は、追加されたゲストドメインの各OBP環境変数のデフォルト値を保存するよう、通信部133とハイパーバイザ160を介してSP170に要求する。この要求は、図10のステップS303の前、ステップS303とS304の間、またはステップS304の後に発行される。
  ・更新部135は、ゲストドメイン140からOBP環境変数の値を受信した場合、受信した値を、通信部133とハイパーバイザ160を介して、SP170に送る。例えば、更新部135は、ゲストドメイン140から受信したOBP環境変数の値を、図10のステップS310の後に、SP170に送ってもよい。もちろん、更新部135は、ステップS309の前に、またはステップS309とS310の間に、OBP環境変数の値をSP170に送ってもよい。更新部135は、ハイパーバイザ160を介してSP170からACKを受信する。
  ・図10のステップS301の環境変数更新処理として、第2実施形態では図11~12の処理が実行されるが、第4実施形態では、図11に示す処理フローが図19に示す処理フローに置き換えられる。なお、図12中のステップS411~S416は、第2実施形態と第4実施形態で共通である。
Steps S104 to S105 in FIG. 8 are replaced with processing in which the environment variable management unit 142 requests the SP 170 to send the values of all OBP environment variables. When the environment variable management unit 142 receives the values of all OBP environment variables from the SP 170, the environment variable management unit 142 executes the steps after step S106.
SP 170 operates according to the flowchart of FIG. 18 instead of the flowchart of FIG.
When a new guest domain is added, the setting unit 134 requests the SP 170 via the communication unit 133 and the hypervisor 160 to save the default value of each OBP environment variable of the added guest domain. This request is issued before step S303 in FIG. 10, between steps S303 and S304, or after step S304.
When the update unit 135 receives the value of the OBP environment variable from the guest domain 140, the update unit 135 sends the received value to the SP 170 via the communication unit 133 and the hypervisor 160. For example, the update unit 135 may send the value of the OBP environment variable received from the guest domain 140 to the SP 170 after step S310 in FIG. Of course, the updating unit 135 may send the value of the OBP environment variable to the SP 170 before step S309 or between steps S309 and S310. The updating unit 135 receives ACK from the SP 170 via the hypervisor 160.
As the environment variable update process in step S301 of FIG. 10, the processes of FIGS. 11 to 12 are executed in the second embodiment, but in the fourth embodiment, the process flow shown in FIG. 11 is changed to the process flow shown in FIG. Replaced. Note that steps S411 to S416 in FIG. 12 are common to the second embodiment and the fourth embodiment.
 さて、図18は、OBP環境変数に関して第4実施形態においてSP170が行う処理のフローチャートである。図9と図18の違いは、図18においてステップS203が省略されており、ステップS206~S210が追加されている点である。また、ステップS201でSP170が待つイベントの種類は、図9では2種類だが、図18では、ステップS207~S210の追加に応じて4種類である。 FIG. 18 is a flowchart of processing performed by the SP 170 in the fourth embodiment regarding the OBP environment variable. The difference between FIG. 9 and FIG. 18 is that step S203 is omitted in FIG. 18 and steps S206 to S210 are added. Further, the types of events that the SP 170 waits in step S201 is two types in FIG. 9, but in FIG. 18, there are four types according to the addition of steps S207 to S210.
 第4実施形態ではステップS203が省略されるため、環境変数保存部171に保存されたOBP環境変数の値は破棄されない。すなわち、環境変数保存部171に一旦保存された値は、ステップS204で更新されることはあるが、削除されることはない。よって、図15の状況4L、図15の状況4M、および図16の状況4Rに示すように、SP170は、任意の時点で、ゲストドメイン140のOBPからの要求に応じて、ゲストドメイン140の全OBP環境変数の値をゲストドメイン140に返すことができる。 In the fourth embodiment, since step S203 is omitted, the value of the OBP environment variable stored in the environment variable storage unit 171 is not discarded. That is, the value once stored in the environment variable storage unit 171 may be updated in step S204, but not deleted. Therefore, as shown in the situation 4L in FIG. 15, the situation 4M in FIG. 15, and the situation 4R in FIG. 16, the SP 170 responds to the request from the OBP of the guest domain 140 at all points in time. The value of the OBP environment variable can be returned to the guest domain 140.
 以下、図18で追加されたステップS206~S210について説明する。
 説明の便宜上、SP170がゲストドメイン140からOBP環境変数の値を受信した場合のステップS206の動作について説明する。この場合、ステップS205でのACKの送信の後に、保存制御部172は、ステップS206において、ゲストドメイン140の更新フラグをTRUEに設定する。つまり、保存制御部172は、図17の更新リスト230中の、ゲストドメイン140に対応するエントリにおいて、更新フラグをTRUEに書き換える。そして、図18の処理はステップS201に戻る。
Hereinafter, steps S206 to S210 added in FIG. 18 will be described.
For convenience of explanation, the operation in step S206 when the SP 170 receives the value of the OBP environment variable from the guest domain 140 will be described. In this case, after the transmission of the ACK in step S205, the storage control unit 172 sets the update flag of the guest domain 140 to TRUE in step S206. That is, the storage control unit 172 rewrites the update flag to TRUE in the entry corresponding to the guest domain 140 in the update list 230 of FIG. Then, the process of FIG. 18 returns to step S201.
 さて、第4実施形態では、図15~16に示すように、SP170は、ハイパーバイザ160を介して制御ドメイン130から任意のゲストドメインの1つのOBP環境変数の値を受信することがある。例えば、状況4Iにおいて、SP170は、「A2」という値を制御ドメイン130から受信する。また、上記のとおり、新規ゲストドメインが追加されたときにも、SP170は、ハイパーバイザ160を介して制御ドメイン130から、追加されたゲストドメインの全OBP環境変数それぞれのデフォルト値を受信する。 In the fourth embodiment, as shown in FIGS. 15 to 16, the SP 170 may receive the value of one OBP environment variable of an arbitrary guest domain from the control domain 130 via the hypervisor 160. For example, in the situation 4I, the SP 170 receives the value “A2” from the control domain 130. As described above, even when a new guest domain is added, the SP 170 receives the default values of all the OBP environment variables of the added guest domain from the control domain 130 via the hypervisor 160.
 説明の便宜上、SP170が、ハイパーバイザ160を介して制御ドメイン130から、ゲストドメイン140の1つまたは複数のOBP環境変数の値を受信した場合の、ステップS207の動作について説明する。この場合、OBP環境変数の値の受信に応じて、図18の処理はステップS201からステップS207に移行する。 For convenience of explanation, the operation in step S207 when the SP 170 receives the values of one or more OBP environment variables of the guest domain 140 from the control domain 130 via the hypervisor 160 will be described. In this case, according to reception of the value of the OBP environment variable, the processing in FIG. 18 proceeds from step S201 to step S207.
 そして、ステップS207で保存制御部172は、制御ドメイン130から受信した、ゲストドメイン140の1つまたは複数のOBP環境変数の値の各々を、現在時刻を示す現在時刻情報とともに環境変数保存部171に保存する。例えば、ゲストドメイン140がn番目のゲストドメインであるとする。この場合、保存制御部172は、環境変数テーブル210-nに、受信した1つまたは複数のOBP環境変数の値の各々を、当該OBP環境変数の名前で識別されるエントリに、現在時刻情報とともに保存する。 Then, in step S207, the storage control unit 172 sends each of the values of one or more OBP environment variables of the guest domain 140 received from the control domain 130 to the environment variable storage unit 171 together with current time information indicating the current time. save. For example, assume that the guest domain 140 is the nth guest domain. In this case, the storage control unit 172 adds each of the received one or more OBP environment variable values to the entry identified by the name of the OBP environment variable in the environment variable table 210-n together with the current time information. save.
 次に、ステップS208において、保存制御部172は、通信部173とハイパーバイザ160を介して、制御ドメイン130に対してACKを送信する。ACKの送信後、図18の処理はステップS201に戻る。 Next, in step S208, the storage control unit 172 transmits ACK to the control domain 130 via the communication unit 173 and the hypervisor 160. After the transmission of ACK, the process in FIG. 18 returns to step S201.
 さて、詳しくは図19とともに後述するとおり、第4実施形態では、SP170は、更新リスト230中の各更新フラグについて、制御ドメイン130から問い合わせを受けることがある。SP170がハイパーバイザ160を介して制御ドメイン130から問い合わせを受信すると、図18の処理はステップS201からステップS209に移行する。 As will be described in detail later with reference to FIG. 19, in the fourth embodiment, the SP 170 may receive an inquiry from the control domain 130 for each update flag in the update list 230. When the SP 170 receives an inquiry from the control domain 130 via the hypervisor 160, the processing in FIG. 18 proceeds from step S201 to step S209.
 ステップS209で保存制御部172は、更新リスト230を参照し、各ゲストドメインの更新フラグの値を取得する。そして、保存制御部172は、通信部173とハイパーバイザ160を介して、各ゲストドメインの更新フラグの値を制御ドメイン130に通知する。 In step S209, the storage control unit 172 refers to the update list 230 and acquires the value of the update flag of each guest domain. Then, the storage control unit 172 notifies the control domain 130 of the update flag value of each guest domain via the communication unit 173 and the hypervisor 160.
 続いて、ステップS210で保存制御部172は、全ゲストドメインの更新フラグをFALSEに設定する。そして、図18の処理はステップS201に戻る。 Subsequently, in step S210, the storage control unit 172 sets the update flags of all guest domains to FALSE. Then, the process of FIG. 18 returns to step S201.
 以上のステップS210によれば、制御ドメイン130の起動のたびに、全ゲストドメインの更新フラグの値がFALSEに初期化される。よって、ステップS206から明らかなとおり、制御ドメイン130が動作していない間にOBP環境変数の値をSP170に送ってきたゲストドメインの更新フラグの値のみが、TRUEに書き換えられる。したがって、ステップS210とS206によれば、更新リスト230中の各更新フラグの値は、正しく管理される。 According to the above step S210, every time the control domain 130 is activated, the update flag values of all guest domains are initialized to FALSE. Therefore, as is clear from step S206, only the value of the update flag of the guest domain that has sent the value of the OBP environment variable to the SP 170 while the control domain 130 is not operating is rewritten to TRUE. Therefore, according to steps S210 and S206, the value of each update flag in the update list 230 is correctly managed.
 さて、図19は、第4実施形態における環境変数更新処理のフローチャートである。図11と図19の違いは、図19においてステップS401aとS402aが追加されている点と、図11のステップS407が図19ではステップS407aに置き換えられている点である。よって、ステップS401aとS402aとS407aを中心に説明し、残りのステップについての説明は適宜省略する。 FIG. 19 is a flowchart of the environment variable update process in the fourth embodiment. The difference between FIG. 11 and FIG. 19 is that steps S401a and S402a are added in FIG. 19, and step S407 in FIG. 11 is replaced with step S407a in FIG. Therefore, it demonstrates centering on step S401a, S402a, and S407a, and abbreviate | omits description about the remaining steps suitably.
 環境変数更新処理が開始されると、ステップS401aで更新部135は、通信部133とハイパーバイザ160を介して、SP170から、N個のゲストドメインそれぞれの更新フラグの値を取得する。つまり、更新部135は、図18のステップS209に関して説明した上記の問い合わせを、通信部133とハイパーバイザ160を介して、SP170に送る。そして、更新部135は、問い合わせに対する応答として、SP170からハイパーバイザ160と通信部133を介して、N個のゲストドメインそれぞれの更新フラグの値を受け取る。 When the environment variable update process is started, in step S401a, the update unit 135 acquires the update flag value of each of the N guest domains from the SP 170 via the communication unit 133 and the hypervisor 160. That is, the update unit 135 sends the above-described inquiry described with respect to step S209 in FIG. 18 to the SP 170 via the communication unit 133 and the hypervisor 160. Then, the update unit 135 receives the update flag values of the N guest domains from the SP 170 via the hypervisor 160 and the communication unit 133 as a response to the inquiry.
 次に、ステップS401で更新部135は、インデックス変数nを1に初期化する。
 そして、ステップS402で更新部135は、制御ドメイン130内の状態リスト220での、n番目のゲストドメインの状態フラグの値を参照する。状態フラグの値がFALSEであれば、図19の処理は、ステップS402aに移行する。逆に、状態フラグの値がTRUEであれば、図19の処理は、第2実施形態の図11と同様に、ステップS405に移行する。
Next, in step S401, the update unit 135 initializes the index variable n to 1.
In step S <b> 402, the updating unit 135 refers to the value of the status flag of the nth guest domain in the status list 220 in the control domain 130. If the value of the status flag is FALSE, the process in FIG. 19 proceeds to step S402a. Conversely, if the value of the status flag is TRUE, the process of FIG. 19 proceeds to step S405 as in FIG. 11 of the second embodiment.
 ステップS402aで更新部135は、n番目のゲストドメインの更新フラグの値を参照する。n番目のゲストドメインの更新フラグの値は、上記のとおり、ステップS401aで取得済みである。つまり、更新部135は、「OBP環境変数の値を保存するように求める要求を、SP170がn番目のゲストドメインから受けたか否か」ということを、ステップS401aの問い合わせに基づいて、ステップS402aで認識する。 In step S402a, the update unit 135 refers to the update flag value of the nth guest domain. As described above, the value of the update flag of the nth guest domain has been acquired in step S401a. In other words, the update unit 135 determines in step S402a whether or not the SP 170 has received a request for saving the value of the OBP environment variable from the nth guest domain based on the inquiry in step S401a. recognize.
 更新フラグの値がFALSEであれば(つまり、「上記要求をSP170が受けていない」と更新部135が認識すれば)、図19の処理はステップS403に移行する。逆に、更新フラグの値がTRUEであれば(つまり、「上記要求をSP170が受けた」と更新部135が認識すれば)、図19の処理はステップS405に移行する。 If the value of the update flag is FALSE (that is, if the update unit 135 recognizes that “the SP 170 has not received the request”), the processing in FIG. 19 proceeds to step S403. Conversely, if the value of the update flag is TRUE (that is, if the update unit 135 recognizes that “the SP 170 has received the request”), the processing in FIG. 19 proceeds to step S405.
 図19中のステップS403~S406とS408~S410は、図11と同様である。よって、これらのステップについての説明は省略する。ステップS410の次には、図12のステップS411が実行される。そして、図12のステップS412でj>Jと判断されると、処理はステップS412から図19のステップS403に戻る。 Steps S403 to S406 and S408 to S410 in FIG. 19 are the same as those in FIG. Therefore, description of these steps is omitted. Following step S410, step S411 of FIG. 12 is executed. If it is determined in step S412 in FIG. 12 that j> J, the process returns from step S412 to step S403 in FIG.
 ところで、上記のとおり、図11のステップS407は、図19ではステップS407aに置き換えられる。つまり、ステップS405の要求に対する応答として、n番目のゲストドメインからハイパーバイザ160と通信部133を介して、n番目のゲストドメインの全OBP環境変数の値を更新部135が受信すると、図19の処理はステップS407aへと移行する。 Incidentally, as described above, step S407 in FIG. 11 is replaced with step S407a in FIG. That is, when the updating unit 135 receives the values of all the OBP environment variables of the nth guest domain from the nth guest domain via the hypervisor 160 and the communication unit 133 as a response to the request in step S405, FIG. The process proceeds to step S407a.
 そして、ステップS407aで更新部135は、ステップS407と同様に、n番目のゲストドメインから受信した全OBP環境変数の値を環境変数保存部131に保存する。なお、更新部135は、環境変数テーブル200-n内の更新対象の各エントリにおいて、時刻情報を、現在時刻を示す値に更新する。 In step S407a, the updating unit 135 stores the values of all OBP environment variables received from the nth guest domain in the environment variable storage unit 131, as in step S407. The update unit 135 updates the time information to a value indicating the current time in each update target entry in the environment variable table 200-n.
 例えば、図15の状況4Jでは、「A2」、「B2」および「C1」という値が、以上のようにしてステップS407aで環境変数保存部131に保存される。また、状況4Mでは、「A1」、「B2」および「C1」という値が、以上のようにしてステップS407aで環境変数保存部131に保存される。 For example, in the situation 4J of FIG. 15, the values “A2”, “B2”, and “C1” are stored in the environment variable storage unit 131 in step S407a as described above. In the situation 4M, the values “A1”, “B2”, and “C1” are stored in the environment variable storage unit 131 in step S407a as described above.
 さらに、ステップS407aでは、OBP状態管理部132が、状態リスト220においてn番目のゲストドメインの状態フラグをTRUEに設定する。例えば、更新部135は、n番目のゲストドメインのOBPとの間の通信の成功をOBP状態管理部132に通知してもよく、OBP状態管理部132は、通知に応じて、状態フラグをTRUEに設定してもよい。例えば、図15の状況4Mでは、状態フラグの値がステップS407aでFALSEからTRUEに訂正される。 Furthermore, in step S407a, the OBP state management unit 132 sets the state flag of the nth guest domain in the state list 220 to TRUE. For example, the update unit 135 may notify the OBP state management unit 132 of successful communication with the OBP of the nth guest domain, and the OBP state management unit 132 sets the state flag to TRUE in response to the notification. May be set. For example, in situation 4M in FIG. 15, the value of the status flag is corrected from FALSE to TRUE in step S407a.
 ステップS407aの実行後、図19の処理は、ステップS403へと移行する。 After execution of step S407a, the processing in FIG. 19 proceeds to step S403.
 第4実施形態における以上のごとき環境変数更新処理によれば、1≦n≦Nなる各nについて、状態フラグと更新フラグの少なくとも一方の値がTRUEのとき、更新部135はステップS405でn番目のゲストドメインに全OBP環境変数の値を送るよう要求する。逆に、状態フラグと更新フラグのいずれも値がFALSEのとき、更新部135は、n番目のゲストドメインに全OBP環境変数の値を送るよう要求することもないし、n番目のゲストドメインのOBP環境変数の値を送るようSP170に要求することもない。 According to the environment variable update process as described above in the fourth embodiment, for each n where 1 ≦ n ≦ N, when at least one of the status flag and the update flag is TRUE, the updating unit 135 is nth in step S405. Request that all OBP environment variables be sent to the guest domain. Conversely, when both the status flag and the update flag have a value of FALSE, the update unit 135 does not request that the value of all OBP environment variables be sent to the nth guest domain, and the OBP of the nth guest domain. There is also no request to the SP 170 to send the value of the environment variable.
 ここで、ステップS402とS402aについて補足する。
 更新フラグの値がTRUEのとき、n番目のゲストドメインの各OBP環境変数の最新の値は、環境変数保存部131の環境変数テーブル200-nに保存されていない。よって、この場合、更新部135は、n番目のゲストドメインまたはSP170から、最新のOBP環境変数の値を取得し、環境変数テーブル200-nを更新する。
Here, it supplements about step S402 and S402a.
When the value of the update flag is TRUE, the latest value of each OBP environment variable of the nth guest domain is not stored in the environment variable table 200-n of the environment variable storage unit 131. Therefore, in this case, the update unit 135 acquires the latest value of the OBP environment variable from the nth guest domain or SP 170, and updates the environment variable table 200-n.
 逆に、更新フラグの値がFALSEのとき、n番目のゲストドメインの各OBP環境変数の最新の値は、環境変数保存部131の環境変数テーブル200-nに保存されている。よって、この場合、環境変数テーブル200-nを更新する必要はない。 Conversely, when the value of the update flag is FALSE, the latest value of each OBP environment variable of the nth guest domain is stored in the environment variable table 200-n of the environment variable storage unit 131. Therefore, in this case, it is not necessary to update the environment variable table 200-n.
 一方、n番目のゲストドメイン上でOBPが実行中であれば、OBP環境変数の最新の値がOBPから取得可能である。OBPから取得される値は、最新であることが保証される。 On the other hand, if the OBP is running on the nth guest domain, the latest value of the OBP environment variable can be acquired from the OBP. The value obtained from the OBP is guaranteed to be up-to-date.
 第4実施形態では、たとえ環境変数テーブル200-nの更新が必要でなくても、最新の値がOBPから得られると期待される場合には、ステップS405でOBPからのOBP環境変数の値の取得が試みられる。つまり、第4実施形態では、たとえ更新フラグの値がFALSEでも、状態フラグの値がTRUEの場合には、ステップS405が実行される。 In the fourth embodiment, even if it is not necessary to update the environment variable table 200-n, if it is expected that the latest value can be obtained from the OBP, the value of the OBP environment variable from the OBP is updated in step S405. Acquisition is attempted. That is, in the fourth embodiment, even if the value of the update flag is FALSE, step S405 is executed when the value of the status flag is TRUE.
 更新フラグの値がFALSEの場合にステップS405を実行することは、無駄なように見えるかもしれないが、無駄ではない。なぜなら、ステップS405の実行により、状態フラグの値を訂正する機会が得られるからである。 It may seem useless to execute step S405 when the value of the update flag is FALSE, but it is not useless. This is because the execution of step S405 provides an opportunity to correct the value of the status flag.
 つまり、もし状態フラグの値がTRUEで、かつ、このTRUEという値がn番目のゲストドメインのOBPの状態を正しく反映していなければ、ステップS408で状態フラグの値が訂正される。例えば、図15の状況4Iでは、ステップS408で状態フラグの値がTRUEからFALSEに訂正される。 That is, if the value of the status flag is TRUE and the value of TRUE does not correctly reflect the status of the OBP of the nth guest domain, the value of the status flag is corrected in step S408. For example, in the situation 4I of FIG. 15, the value of the status flag is corrected from TRUE to FALSE in step S408.
 なお、更新フラグの値がTRUEの場合は、状態フラグの値によらずステップS405が実行される。よって、更新フラグの値がTRUEの場合も、ステップS407aまたはS408で、状態フラグの値が、n番目のゲストドメインのOBPの状態を正しく反映するように書き換えられる。 If the value of the update flag is TRUE, step S405 is executed regardless of the value of the status flag. Therefore, even when the value of the update flag is TRUE, the value of the state flag is rewritten so as to correctly reflect the state of the OBP of the nth guest domain in step S407a or S408.
 以上説明した第4実施形態は、環境変数保存部171の記憶容量が大きいときなどに好適である。なぜなら、第4実施形態では環境変数保存部171内でOBP環境変数の値が破棄されないからである。 The fourth embodiment described above is suitable when the storage capacity of the environment variable storage unit 171 is large. This is because the value of the OBP environment variable is not discarded in the environment variable storage unit 171 in the fourth embodiment.
 なお、本発明は上記実施形態に限られるものではない。例えば、第4実施形態は、第3実施形態と同様に状態リスト220を使わないように変形されてもよい。この場合、図19のフローチャートは、具体的には次のように変形されてもよい。 The present invention is not limited to the above embodiment. For example, the fourth embodiment may be modified so as not to use the state list 220 as in the third embodiment. In this case, the flowchart of FIG. 19 may be specifically modified as follows.
  ・更新部135は、ステップS401の次に、(ステップS402を飛ばして)ステップS402aを実行する。
  ・更新フラグの値がFALSEのとき、更新部135は、ステップS402aの次にステップS403を実行する。
  ・更新フラグの値がTRUEのとき、更新部135は、ステップS402aの次にステップS405を実行する。
The update unit 135 executes step S402a (after skipping step S402) after step S401.
When the value of the update flag is FALSE, the update unit 135 executes step S403 after step S402a.
When the value of the update flag is TRUE, the update unit 135 executes step S405 after step S402a.
 たとえゲストドメインの数Nが多くても、制御ドメイン130が動作していない間にOBP環境変数の更新を行うゲストドメインの数は、それほど多くない。よって、以上のように状態リスト220を使わないような、第4実施形態の変形例も可能である。 Even if the number N of guest domains is large, the number of guest domains that update the OBP environment variable while the control domain 130 is not operating is not so large. Therefore, a modification of the fourth embodiment that does not use the state list 220 as described above is also possible.
 換言すれば、状態リスト220または更新リスト230の少なくとも一方を用いることで、たとえ多数のゲストドメインが存在し得るとしても、無駄な待ち時間を減らすことができる。したがって、SP170が第4実施形態のように最新のOBP環境変数の値を保持し続けるのではなく、第2実施形態のステップS203のように適宜値を破棄する実施形態においても、状態リスト220の代わりに更新リスト230が使われてもよい。具体的には、第2実施形態が、以下のように変形されてもよい。 In other words, use of at least one of the state list 220 and the update list 230 can reduce useless waiting time even if there are many guest domains. Therefore, in the embodiment in which the SP 170 does not keep the latest value of the OBP environment variable as in the fourth embodiment but appropriately discards the value as in step S203 in the second embodiment, the state list 220 Instead, the update list 230 may be used. Specifically, the second embodiment may be modified as follows.
  ・図8のステップS101とS114が省略される。
  ・図10のステップS303とS306~S308も省略される。
  ・図10のステップS305での処理のうち、状態リスト220からのエントリの削除も省略される。
  ・図10のステップS309とS311での処理のうち、状態フラグの更新も省略される。
  ・SP170は、図9ではなく図18のフローチャートにしたがって動作する。
  ・図10のステップS301の環境変数更新処理として、第4実施形態の変形例の処理(つまり上述のごとく図19のフローチャートを変形した処理)が実行される。
Steps S101 and S114 in FIG. 8 are omitted.
Steps S303 and S306 to S308 in FIG. 10 are also omitted.
Of the processing in step S305 in FIG. 10, deletion of entries from the status list 220 is also omitted.
Of the processes in steps S309 and S311 in FIG. 10, the update of the status flag is also omitted.
SP 170 operates according to the flowchart of FIG. 18 instead of FIG.
As the environment variable update process in step S301 of FIG. 10, the process of the modified example of the fourth embodiment (that is, the process modified from the flowchart of FIG. 19 as described above) is executed.
 なお、ここまで説明してきた各種の実施形態および変形例において、矛盾が生じない限り、ステップの実行順序が入れ替えられてもよい。例えば、図10のステップS303とS304の順序は逆でもよいし、図18のステップS206は、ステップS204の前またはステップS204とS205の間に実行されてもよいし、図19のステップS401aとS401の順序は逆でもよい。入れ替え可能なステップ同士は、並列に実行されてもよい。 In the various embodiments and modifications described so far, the execution order of the steps may be changed as long as no contradiction occurs. For example, the order of steps S303 and S304 in FIG. 10 may be reversed, step S206 in FIG. 18 may be executed before step S204 or between steps S204 and S205, or steps S401a and S401 in FIG. The order may be reversed. The interchangeable steps may be executed in parallel.
 また、第2~第4実施形態では、ブートローダ1の具体例としてOBPを挙げたが、ブートローダ1の種類は実施形態に応じて任意である。ハイパーバイザを介した通信の具体的な実装も、実施形態に応じて任意である。 In the second to fourth embodiments, the OBP is given as a specific example of the boot loader 1, but the type of the boot loader 1 is arbitrary depending on the embodiment. Specific implementation of communication via the hypervisor is also arbitrary depending on the embodiment.
 なお、ハイパーバイザを介した仮想マシン間(つまりドメイン間)の通信は、物理的には、以下のどの通信の場合もあり得る。しかし、いずれの場合であっても、各実施形態に関する上記の説明が成り立つことは明らかである。 Note that communication between virtual machines (that is, between domains) via the hypervisor can be any of the following communication physically. However, in any case, it is clear that the above description regarding each embodiment is valid.
  ・1つの物理プロセッサコア内の、スレッド間通信またはプロセス間通信。
  ・1台の物理プロセッサ内の異なるコア間の通信。
  ・異なる物理プロセッサ間の通信(例えば、図3のSC28を介した、CPU22aと22bの間の通信)。
Interthread communication or interprocess communication within one physical processor core.
-Communication between different cores in one physical processor.
Communication between different physical processors (for example, communication between the CPUs 22a and 22b via the SC 28 in FIG. 3).
  1 第1の仮想マシンのブートローダ
  2 第2の仮想マシン
  3 第2のプロセッサ
  4A~4R 状況
  10、100、300 コンピュータ
  20、30 システムボード
  21a~21d、31a~31d、53、63 メモリ
  22a~22b、32a~32b、51、61 CPU
  23a~23c、33a~33c HDD
  24、34 サービスプロセッサインタフェイス(SP I/F)
  25、35、55、65 LANポート
  26、36 SASポート
  27、37、54、64 USBポート
  28、38 システムコントローラ(SC)
  40 クロスバスイッチ(XB)
  50、60、170、380 サービスプロセッサ(SP)
  52、62 不揮発性メモリ
  56、66 シリアルポート
  71 入出力装置
  72 記憶媒体
  73 駆動装置
  74 ネットワーク
  75 端末
  76 プログラム提供者
  110、120、310、320 パーティション
  130、330、350 制御ドメイン
  131、171、331、381 環境変数保存部
  132 OBP状態管理部
  133、143、173、332、343、383 通信部
  134、333 設定部
  135、334 更新部
  140、150、340、360 ゲストドメイン
  141、341 OS起動部
  142、342 環境変数管理部
  160、370 ハイパーバイザ
  172、382 保存制御部
  173、382 受信部
  200-1~200-N、210-1~210-N 環境変数テーブル
  220 状態リスト
  230 更新リスト
DESCRIPTION OF SYMBOLS 1 Boot loader of 1st virtual machine 2 2nd virtual machine 3 2nd processor 4A- 4R Status 10, 100, 300 Computer 20, 30 System board 21a-21d, 31a-31d, 53, 63 Memory 22a-22b, 32a-32b, 51, 61 CPU
23a-23c, 33a-33c HDD
24, 34 Service processor interface (SP I / F)
25, 35, 55, 65 LAN port 26, 36 SAS port 27, 37, 54, 64 USB port 28, 38 System controller (SC)
40 Crossbar switch (XB)
50, 60, 170, 380 Service processor (SP)
52, 62 Non-volatile memory 56, 66 Serial port 71 Input / output device 72 Storage medium 73 Drive device 74 Network 75 Terminal 76 Program provider 110, 120, 310, 320 Partition 130, 330, 350 Control domain 131, 171, 331, 381 Environment variable storage unit 132 OBP state management unit 133, 143, 173, 332, 343, 383 Communication unit 134, 333 Setting unit 135, 334 Update unit 140, 150, 340, 360 Guest domain 141, 341 OS activation unit 142, 342 Environment variable management unit 160, 370 Hypervisor 172, 382 Storage control unit 173, 382 Receiving unit 200-1 to 200-N, 210-1 to 210-N Environment variable table 220 Status list 230 New list

Claims (10)

  1.  ハイパーバイザならびに前記ハイパーバイザ上で動作する第1および第2の仮想マシンを実行するための1台以上の第1のプロセッサのうち、前記第1の仮想マシンにオペレーティング・システムをロードするためのブートローダを前記第1の仮想マシン上で第1の時点において実行しているプロセッサが、前記第2の仮想マシンに対して、前記ブートローダの環境変数の値を第1の記憶装置に保存するよう求める第1の要求を発行し、
     決められた時間以内に前記第1の要求に対する応答が返されない場合、前記ブートローダを実行している前記プロセッサは、前記ハイパーバイザならびに前記第1および前記第2の仮想マシンのいずれも実行しない第2のプロセッサに対して、前記環境変数の前記値を第2の記憶装置に保存するよう求める第2の要求を、前記ハイパーバイザを介して発行し、
     前記第2のプロセッサが、前記第2の要求に応じて、前記第2の記憶装置に前記環境変数の前記値を保存する
     ことを含み、
     前記第2のプロセッサが前記環境変数の前記値を前記第2の記憶装置に保存した後の第2の時点で前記第2の仮想マシンが再起動されたとき、前記1台以上の第1のプロセッサのうち、前記第2の時点での前記第2の仮想マシンの再起動に応じて前記第2の仮想マシンの実行を開始したプロセッサが、前記第2の記憶装置または前記ブートローダから前記環境変数の前記値を取得し、取得した前記環境変数の前記値を前記第1の記憶装置に保存する
     ことを特徴とする環境変数保存方法。
    Of the one or more first processors for executing the hypervisor and the first and second virtual machines operating on the hypervisor, a boot loader for loading an operating system into the first virtual machine Is executed on the first virtual machine at a first time point, and the second virtual machine is requested to save the value of the environment variable of the boot loader in the first storage device. 1 request,
    If a response to the first request is not returned within a predetermined time, the processor executing the boot loader executes neither the hypervisor nor the first and second virtual machines. Issuing a second request to the processor of the second request for saving the value of the environment variable in a second storage device via the hypervisor;
    The second processor storing the value of the environment variable in the second storage device in response to the second request;
    When the second virtual machine is restarted at a second time after the second processor stores the value of the environment variable in the second storage device, the one or more first Among the processors, the processor that has started the execution of the second virtual machine in response to the restart of the second virtual machine at the second time point receives the environment variable from the second storage device or the boot loader. The value of the environmental variable is acquired, and the acquired value of the environmental variable is stored in the first storage device.
  2.  前記第2の時点での前記第2の仮想マシンの前記再起動に応じて前記第2の仮想マシンの実行を開始した前記プロセッサは、
      前記第2の記憶装置に保存されている前記環境変数の前記値を送るよう前記第2のプロセッサに求める第3の要求を、前記ハイパーバイザを介して発行し、前記環境変数の前記値を前記第2のプロセッサから前記ハイパーバイザを介して受け取ることにより、前記環境変数の前記値を取得するか、または、
      前記ブートローダに対して前記環境変数の前記値を送るよう求める第4の要求を、前記ハイパーバイザを介して発行し、前記1台以上の第1のプロセッサのうち前記ブートローダを実行中のプロセッサから前記第4の要求に応じて前記環境変数の前記値を受け取ることにより、前記環境変数の前記値を取得する
     ことを特徴とする請求項1に記載の環境変数保存方法。
    The processor that has started execution of the second virtual machine in response to the restart of the second virtual machine at the second time point,
    A third request is issued through the hypervisor to request the second processor to send the value of the environment variable stored in the second storage device, and the value of the environment variable is Obtaining the value of the environment variable by receiving from the second processor via the hypervisor, or
    A fourth request for sending the value of the environment variable to the boot loader is issued through the hypervisor, and the processor executing the boot loader among the one or more first processors The environment variable storage method according to claim 1, wherein the value of the environment variable is acquired by receiving the value of the environment variable in response to a fourth request.
  3.  前記第2の要求に応じて前記環境変数の前記値が前記第2の記憶装置に保存された場合において、前記第2の時点での前記第2の仮想マシンの前記再起動に応じて前記第2の仮想マシンの実行を開始した前記プロセッサは、
      前記第4の要求を発行し、
      前記第4の要求に応じて、前記環境変数の前記値が第2の決められた時間以内に返されない場合に、前記第3の要求を発行する
     ことを特徴とする請求項2に記載の環境変数保存方法。
    In the case where the value of the environment variable is stored in the second storage device in response to the second request, the second variable in response to the restart of the second virtual machine at the second time point. The processor that has started execution of the virtual machine 2
    Issue the fourth request;
    3. The environment according to claim 2, wherein in response to the fourth request, the third request is issued if the value of the environment variable is not returned within a second determined time. Variable storage method.
  4.  前記第2の要求に応じて前記環境変数の前記値が前記第2の記憶装置に保存された場合において、前記第2の時点での前記第2の仮想マシンの前記再起動に応じて前記第2の仮想マシンの実行を開始した前記プロセッサは、
      前記第1の仮想マシン上で前記ブートローダが実行中か否かを判断し、
      前記第1の仮想マシン上で前記ブートローダが実行中であると判断した場合に、前記第4の要求を発行する
     ことを特徴とする請求項2または3に記載の環境変数保存方法。
    In the case where the value of the environment variable is stored in the second storage device in response to the second request, the second variable in response to the restart of the second virtual machine at the second time point. The processor that has started execution of the virtual machine 2
    Determining whether the boot loader is running on the first virtual machine;
    The environment variable storage method according to claim 2 or 3, wherein the fourth request is issued when it is determined that the boot loader is being executed on the first virtual machine.
  5.  前記第2のプロセッサは、前記第2の要求を受けると、前記第2の要求を受けたことを記録し、
     前記第2の時点での前記第2の仮想マシンの前記再起動に応じて前記第2の仮想マシンの実行を開始した前記プロセッサは、前記第1の仮想マシン上で前記ブートローダが実行中でないと判断した場合、
      前記第2のプロセッサが前記第2の要求を受けたか否かについての、前記第2のプロセッサに対する前記ハイパーバイザを介した問い合わせに基づいて、前記第2のプロセッサが前記第2の要求を受けたか否かを認識し、
      前記第2のプロセッサが前記第2の要求を受けたと認識した場合に、前記第3の要求と前記第4の要求の少なくとも一方を発行する
     ことを特徴とする請求項4に記載の環境変数保存方法。
    When the second processor receives the second request, it records that it has received the second request;
    The processor that has started execution of the second virtual machine in response to the restart of the second virtual machine at the second time point indicates that the boot loader is not executing on the first virtual machine. If you decide,
    Whether the second processor has received the second request based on an inquiry to the second processor via the hypervisor as to whether the second processor has received the second request. Recognize whether or not
    The environment variable storage according to claim 4, wherein when the second processor recognizes that the second request has been received, at least one of the third request and the fourth request is issued. Method.
  6.  前記1台以上の第1のプロセッサの各々は、
      前記ブートローダの実行を開始する場合は、前記ブートローダの実行開始を前記第2の仮想マシンに通知するための開始通知を発行し、
      前記ブートローダの実行を終了する場合は、前記ブートローダの実行終了を前記第2の仮想マシンに通知するための終了通知を発行し、
      前記第2の仮想マシンの実行中に前記開始通知を受け取った場合は、前記第1の仮想マシン上で前記ブートローダが実行中か否かを示す状態情報を前記開始通知に応じて更新し、
      前記第2の仮想マシンの実行中に前記終了通知を受け取った場合は、前記状態情報を前記終了通知に応じて更新し、
      前記第2の時点での前記第2の仮想マシンの前記再起動に応じて前記第2の仮想マシンの実行を開始した場合には、前記状態情報を参照することで、前記第1の仮想マシン上で前記ブートローダが実行中か否かを判断する
     ことを特徴とする請求項4または5に記載の環境変数保存方法。
    Each of the one or more first processors includes:
    When starting execution of the boot loader, issue a start notification to notify the second virtual machine of the start of execution of the boot loader,
    When ending execution of the boot loader, issue an end notification for notifying the second virtual machine of the end of execution of the boot loader,
    When the start notification is received during the execution of the second virtual machine, the status information indicating whether the boot loader is being executed on the first virtual machine is updated according to the start notification,
    If the end notification is received during execution of the second virtual machine, the status information is updated according to the end notification,
    When the execution of the second virtual machine is started in response to the restart of the second virtual machine at the second time point, the first virtual machine is referred to by referring to the state information 6. The environment variable storage method according to claim 4, wherein whether or not the boot loader is being executed is determined.
  7.  前記1台以上の第1のプロセッサの各々は、前記第2の仮想マシンの実行中に前記第1の要求を受け取った場合には、第1の時刻情報と対応づけて前記環境変数の前記値を前記第1の記憶装置に保存し、
     前記第2のプロセッサは、
      前記第2の要求に応じて前記第2の記憶装置に前記環境変数の前記値を保存する際に、前記環境変数の前記値を第2の時刻情報と対応づけ、
      前記第3の要求を受け取った場合、前記環境変数の前記値とあわせて前記第2の時刻情報も送り、
     前記第2の時点での前記第2の仮想マシンの前記再起動に応じて前記第2の仮想マシンの実行を開始した前記プロセッサは、前記第3の要求を発行して前記第2のプロセッサから前記ハイパーバイザを介して前記環境変数の前記値と前記第2の時刻情報を受け取った場合、
      前記第1の記憶装置に保存されている前記第1の時刻情報の示す第1の時刻と、受け取った前記第2の時刻情報の示す第2の時刻を比較し、
      前記第2の時刻が前記第1の時刻より後ならば、前記第2のプロセッサから前記ハイパーバイザを介して受け取った前記環境変数の前記値を、前記第1の記憶装置に保存する
     ことを特徴とする請求項2から6のいずれか1項に記載の環境変数保存方法。
    When each of the one or more first processors receives the first request during execution of the second virtual machine, the value of the environment variable is associated with first time information. In the first storage device,
    The second processor is
    When storing the value of the environment variable in the second storage device in response to the second request, the value of the environment variable is associated with second time information;
    When the third request is received, the second time information is also sent together with the value of the environment variable,
    The processor that has started execution of the second virtual machine in response to the restart of the second virtual machine at the second time point issues the third request from the second processor. When receiving the value of the environment variable and the second time information via the hypervisor,
    Comparing the first time indicated by the first time information stored in the first storage device with the second time indicated by the received second time information;
    If the second time is after the first time, the value of the environment variable received from the second processor via the hypervisor is stored in the first storage device. The environment variable storage method according to any one of claims 2 to 6.
  8.  ハイパーバイザ上で動作する第1の仮想マシンにオペレーティング・システムをロードするためのブートローダの環境変数の値を、前記ハイパーバイザ上で動作する第2の仮想マシン上で実行される制御にしたがって記憶する第1の記憶手段と、
     前記第1の仮想マシンと前記第2の仮想マシンからは前記ハイパーバイザを介してアクセス可能であり、かつ、前記ハイパーバイザとは独立して動作する制御手段と、
     前記制御手段による制御にしたがって前記環境変数の前記値を記憶する第2の記憶手段と、
     前記第2の仮想マシンに対して、前記環境変数の前記値を前記第1の記憶手段に保存するよう求める第1の要求を、前記ブートローダから前記ハイパーバイザを介して発行し、決められた時間以内に前記第1の要求に対する応答が返されない場合、前記制御手段に対して前記環境変数の前記値を前記第2の記憶手段に保存するよう求める第2の要求を、前記ブートローダから前記ハイパーバイザを介して発行する、要求手段と、
     前記第2の要求に応じて前記第2の記憶手段に保存された前記環境変数の前記値を送るよう、前記制御手段に求める第3の要求を、前記第2の仮想マシンから前記ハイパーバイザを介して発行し、前記第3の要求に応じて返される前記環境変数の前記値を受け取り、受け取った前記環境変数の前記値を前記第1の記憶手段に保存する、更新手段と、
     前記ブートローダに前記環境変数の前記値を設定するための前記ブートローダからの第4の要求に応じて、前記第1の記憶手段に保存した前記環境変数の前記値を前記ブートローダに送る、設定手段
     を備える情報処理装置。
    The value of the environment variable of the boot loader for loading the operating system to the first virtual machine operating on the hypervisor is stored according to the control executed on the second virtual machine operating on the hypervisor. First storage means;
    Control means that is accessible from the first virtual machine and the second virtual machine via the hypervisor, and operates independently of the hypervisor;
    Second storage means for storing the value of the environment variable in accordance with control by the control means;
    A first request for requesting the second virtual machine to store the value of the environment variable in the first storage means is issued from the boot loader via the hypervisor, and a predetermined time A response to the first request is not returned within a second request from the boot loader to request that the control means store the value of the environment variable in the second storage means. Requesting means issued via
    In response to the second request, a third request for the control means to send the value of the environment variable stored in the second storage means is sent from the second virtual machine to the hypervisor. Updating means for receiving the value of the environment variable issued in response to the third request and storing the received value of the environment variable in the first storage means;
    In response to a fourth request from the boot loader to set the value of the environment variable in the boot loader, setting means for sending the value of the environment variable stored in the first storage means to the boot loader. Information processing apparatus provided.
  9.  ハイパーバイザならびに前記ハイパーバイザ上で動作する第1および第2の仮想マシンを実行するための1台以上の第1のプロセッサと、
     前記ハイパーバイザならびに前記第1および前記第2の仮想マシンのいずれも実行しない第2のプロセッサと、
     前記1台以上の第1のプロセッサと接続された第1の記憶部と、
     前記第2のプロセッサと接続された第2の記憶部と
     を備え、
     前記1台以上の第1のプロセッサのうち、前記第1の仮想マシンにオペレーティング・システムをロードするためのブートローダを前記第1の仮想マシン上で第1の時点において実行しているプロセッサが、
      前記第2の仮想マシンに対して、前記ブートローダの環境変数の値を、前記第1の記憶部に保存するよう求める第1の要求を発行し、
      決められた時間以内に前記第1の要求に対する応答が返されない場合、前記第2のプロセッサに対して、前記環境変数の前記値を前記第2の記憶部に保存するよう求める第2の要求を、前記ハイパーバイザを介して発行し、
     前記第2のプロセッサが、前記第2の要求に応じて、前記第2の記憶部に前記環境変数の前記値を保存し、
     前記第2のプロセッサが前記環境変数の前記値を前記第2の記憶部に保存した後の第2の時点で前記第2の仮想マシンが再起動されたとき、前記1台以上の第1のプロセッサのうち、前記第2の時点での前記第2の仮想マシンの再起動に応じて前記第2の仮想マシンの実行を開始したプロセッサが、
      前記第2の記憶部または前記ブートローダから前記環境変数の前記値を取得し、
      取得した前記環境変数の前記値を前記第1の記憶部に保存する
     ことを特徴とする情報処理装置。
    One or more first processors for executing a hypervisor and first and second virtual machines running on the hypervisor;
    A second processor that does not execute either the hypervisor or the first and second virtual machines;
    A first storage unit connected to the one or more first processors;
    A second storage unit connected to the second processor,
    Among the one or more first processors, a processor executing a boot loader for loading an operating system on the first virtual machine on the first virtual machine at a first time point.
    Issuing a first request to the second virtual machine to save the value of the environment variable of the boot loader in the first storage unit,
    If a response to the first request is not returned within a predetermined time, a second request is made to ask the second processor to save the value of the environment variable in the second storage unit. Issued through the hypervisor,
    In response to the second request, the second processor stores the value of the environment variable in the second storage unit;
    When the second virtual machine is restarted at a second time after the second processor stores the value of the environment variable in the second storage unit, the one or more first Among the processors, a processor that has started execution of the second virtual machine in response to the restart of the second virtual machine at the second time point,
    Obtaining the value of the environment variable from the second storage unit or the boot loader;
    The information processing apparatus, wherein the acquired value of the environment variable is stored in the first storage unit.
  10.  ハイパーバイザ上で動作する第1と第2の仮想マシンのうち、前記第2の仮想マシンを実行する第1のプロセッサに、環境変数管理処理を実行させるためのプログラムであって、前記環境変数管理処理が、
     前記第1のプロセッサが前記環境変数管理処理の実行を開始した開始時点において、前記第1の仮想マシンにオペレーティング・システムをロードするためのブートローダが前記第1の仮想マシン上で実行中か否かを判断し、
     前記開始時点において前記ブートローダが実行中だと判断した場合に、前記ハイパーバイザを介して前記ブートローダに対して前記ブートローダの環境変数の値を送るよう要求し、
     前記環境変数の前記値を前記ブートローダから受け取った場合、前記ブートローダから受け取った前記環境変数の前記値を第1の記憶装置に保存し
     前記開始時点において前記ブートローダが実行中だと判断し、かつ、決められた時間以内には前記環境変数の前記値を前記ブートローダから受け取らなかった場合、前記ハイパーバイザならびに前記第1および前記第2の仮想マシンのいずれも実行しない第2のプロセッサに対して、第2の記憶装置に前記環境変数の前記値が保存されていれば前記環境変数の前記値を送るよう、前記ハイパーバイザを介して要求し、
     前記第2のプロセッサから前記環境変数の前記値を受け取った場合、前記第2のプロセッサから受け取った前記環境変数の前記値を前記第1の記憶装置に保存し、 前記第1の仮想マシン上での前記ブートローダの実行開始のたびに前記ブートローダから前記ハイパーバイザを介して発行される要求に応じて、前記第1の記憶装置に保存されている前記環境変数の前記値を、前記ハイパーバイザを介して前記ブートローダに返す
     ことを含むことを特徴とするプログラム。
    Of the first and second virtual machines operating on a hypervisor, a program for causing a first processor that executes the second virtual machine to execute environment variable management processing, the environment variable management Processing
    Whether or not a boot loader for loading an operating system to the first virtual machine is being executed on the first virtual machine at the start of the execution of the environment variable management process by the first processor Judging
    When it is determined that the boot loader is being executed at the start time, the boot loader is requested to send the value of the environment variable of the boot loader via the hypervisor.
    If the value of the environment variable is received from the boot loader, the value of the environment variable received from the boot loader is stored in a first storage device, and the boot loader is determined to be executing at the start time; and If the value of the environment variable is not received from the boot loader within a determined time, a second processor that does not execute either the hypervisor or the first and second virtual machines Requesting via the hypervisor to send the value of the environment variable if the value of the environment variable is stored in the storage device of 2;
    When the value of the environment variable is received from the second processor, the value of the environment variable received from the second processor is stored in the first storage device, and on the first virtual machine In response to a request issued from the boot loader via the hypervisor every time the execution of the boot loader is started, the value of the environment variable stored in the first storage device is changed via the hypervisor. And returning to the boot loader.
PCT/JP2012/074448 2012-09-24 2012-09-24 Environmental variable storage method, information processing device, and program WO2014045453A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/074448 WO2014045453A1 (en) 2012-09-24 2012-09-24 Environmental variable storage method, information processing device, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/074448 WO2014045453A1 (en) 2012-09-24 2012-09-24 Environmental variable storage method, information processing device, and program

Publications (1)

Publication Number Publication Date
WO2014045453A1 true WO2014045453A1 (en) 2014-03-27

Family

ID=50340800

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/074448 WO2014045453A1 (en) 2012-09-24 2012-09-24 Environmental variable storage method, information processing device, and program

Country Status (1)

Country Link
WO (1) WO2014045453A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001230782A (en) * 2000-02-16 2001-08-24 Nec Corp Automatic update method and system for network environment setting, and recoding medium
WO2007088575A1 (en) * 2006-01-31 2007-08-09 Fujitsu Limited System monitor device control method, program, and computer system
WO2008126145A1 (en) * 2007-03-30 2008-10-23 Fujitsu Limited Setting method for virtual network adapter in virtual os environment of computer system and computer system
JP2009054035A (en) * 2007-08-28 2009-03-12 Nec Computertechno Ltd Server system, partition start-up controller, partition start-up control method
WO2009093333A1 (en) * 2008-01-25 2009-07-30 Fujitsu Limited Information processing device, information processing system, computer program, and information processing method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001230782A (en) * 2000-02-16 2001-08-24 Nec Corp Automatic update method and system for network environment setting, and recoding medium
WO2007088575A1 (en) * 2006-01-31 2007-08-09 Fujitsu Limited System monitor device control method, program, and computer system
WO2008126145A1 (en) * 2007-03-30 2008-10-23 Fujitsu Limited Setting method for virtual network adapter in virtual os environment of computer system and computer system
JP2009054035A (en) * 2007-08-28 2009-03-12 Nec Computertechno Ltd Server system, partition start-up controller, partition start-up control method
WO2009093333A1 (en) * 2008-01-25 2009-07-30 Fujitsu Limited Information processing device, information processing system, computer program, and information processing method

Similar Documents

Publication Publication Date Title
JP4842210B2 (en) Failover method, computer system, management server and spare server setting method
JP4467624B2 (en) Software update management program, software update management apparatus, and software update management method
JP5113700B2 (en) Firmware update apparatus and method
US10303459B2 (en) Electronic system with update control mechanism and method of operation thereof
US8612803B2 (en) Information processing apparatus and driver execution control method
US8788636B2 (en) Boot controlling method of managed computer
US9910664B2 (en) System and method of online firmware update for baseboard management controller (BMC) devices
JP4448878B2 (en) How to set up a disaster recovery environment
WO2013103023A1 (en) Information processing device, information processing method, and computer program
JP2019016135A (en) Information processing system and program and method for controlling information processing system
JP2016508647A (en) Method and system for supporting resource separation in a multi-core architecture
US20110161726A1 (en) System ras protection for uma style memory
US9571584B2 (en) Method for resuming process and information processing system
US9459884B2 (en) Self-healing using an alternate boot partition
US20170139698A1 (en) Information processing apparatus and program update control method
WO2015074235A1 (en) Memory data migration method, computer, and apparatus
US9235426B2 (en) Multicore processor system, computer product, and notification method for updating operating system
US20200326956A1 (en) Computing nodes performing automatic remote boot operations
JP2007133544A (en) Failure information analysis method and its implementation device
JP2013041390A (en) Information processor, startup method, and program
JP4322240B2 (en) Reboot method, system and program
JP6515462B2 (en) INFORMATION PROCESSING DEVICE, SETTING METHOD FOR INFORMATION PROCESSING DEVICE, AND SETTING PROGRAM
JPWO2004081791A1 (en) Virtual machine system and firmware update method in virtual machine system
RU2600101C1 (en) Assembly control module and method of firmware updating for this control module
KR102123701B1 (en) Network boot system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12885090

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12885090

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP