WO2015132941A1 - 計算機 - Google Patents

計算機 Download PDF

Info

Publication number
WO2015132941A1
WO2015132941A1 PCT/JP2014/055878 JP2014055878W WO2015132941A1 WO 2015132941 A1 WO2015132941 A1 WO 2015132941A1 JP 2014055878 W JP2014055878 W JP 2014055878W WO 2015132941 A1 WO2015132941 A1 WO 2015132941A1
Authority
WO
WIPO (PCT)
Prior art keywords
operating system
cache memory
virtual
memory area
data
Prior art date
Application number
PCT/JP2014/055878
Other languages
English (en)
French (fr)
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 US15/114,114 priority Critical patent/US9977740B2/en
Priority to JP2016506043A priority patent/JP6165964B2/ja
Priority to PCT/JP2014/055878 priority patent/WO2015132941A1/ja
Publication of WO2015132941A1 publication Critical patent/WO2015132941A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Definitions

  • the present invention relates to a cache data backup technique and a restore technique in a computer to which a multi-OS technique and a virtual machine technique are applied.
  • the client device reads / writes data to / from a server device such as a file server or database server connected via a LAN configured with Ethernet, etc., and the server device is configured with Fiber Channel or the like as a back end.
  • a cache memory is generally mounted on the storage apparatus and each server apparatus from the viewpoint of improving system performance.
  • the cache memory is typically arranged on a system memory composed of a volatile memory such as a DRAM.
  • a large-scale storage device equipped with a large-capacity HDD is equipped with a large-capacity cache memory on the order of several to several tens of gigabytes. Responds to / O access requests.
  • such a device In order to prevent a huge amount of data on the cache memory from being lost, such a device temporarily supplies power from a battery as a secondary power source when the power is unexpectedly shut down, and accesses faster than the HDD. Backup to a possible NVRAM (nonvolatile memory) such as SSD. Further, in the case of an apparatus constituted by multiprocessors, in order to suppress power consumption during battery operation, a device is devised in which only one processor is powered and only that processor performs a cache memory backup operation.
  • Patent Document 1 In recent years, in order to effectively use hardware resources on a physical computer, a technique for starting two or more OSs (operating systems) on one physical computer has attracted attention (for example, Patent Document 1). And Patent Document 2).
  • Patent Document 1 states that a multi-operating system computer includes a first OS (operating system) that executes a plurality of tasks with priorities set in order of priority, and a second OS that is different from the first OS.
  • a multi-operating system computer that alternately operates as an operating OS, and is a predetermined task having a predetermined priority set among the plurality of tasks when the first OS is operating as an operating OS.
  • an OS switching unit that switches the operating OS from the first OS to the second OS when a task used as a switching trigger task for identifying a switching trigger for the operating OS is executed. Has been.
  • Patent Document 2 states that “(1) a multi-OS booting apparatus that boots at least two OSes, a first OS and a second OS, has (1) a memory area, and a memory space for the memory area. (2) a secondary storage unit that stores a second boot loader and the second OS, and (3) a context indicating control information for the CPU, the first OS By operating a first boot loader operating under the first OS operating in the first context that is a context for the first OS operating under the first context, The memory area of the primary storage unit defined by the first context as the first memory space managed by the first OS is transferred from the secondary storage unit to the memory area of the primary storage unit.
  • the second boot loader context is generated in the second boot loader and the second boot loader context is defined from the first context to the generated second boot loader context. Let's switch to the context for the second bootloader By executing the second boot loader, the memory of the primary storage unit is stored in the memory area of the primary storage unit defined as the second memory space included in the third memory space by the first boot loader.
  • the second OS loaded in the area is loaded into the second boot loader and the context for the second OS is generated, and the context for the second boot loader is switched to the generated context for the second OS.
  • a loader execution unit that causes the second boot loader to start the second OS under the context for the second OS ”.
  • a storage control OS is installed as a first OS (first host OS), a virtual machine monitor (VMM) is installed as a second OS (second host OS), and
  • a server control OS as an OS (guest OS1 to guest OSn) on a plurality of virtual machines (VM1 to VMn) on the virtual machine monitor, space saving and cost reduction can be expected.
  • I / O data read / write which was conventionally performed via SAN, is performed via the shared memory between the host OS1 and guest OS, thereby improving the I / O data read / write performance. I can expect.
  • a first host OS storage control OS
  • a second host OS VMM
  • guest OSs server control OSs
  • the first host OS cannot grasp where the cache memory allocated to each guest OS is located in the physical address space. Therefore, in the prior art, the first host OS cannot back up the cache memory data allocated to each guest OS to NVRAM or the like.
  • the first host OS needs to restore the data backed up in the NVRAM to the cache memory assigned to each guest OS. is there.
  • the arrangement of the cache memory allocated to each guest OS in the physical address space may be different from the arrangement before the restart. For this reason, the first host OS cannot grasp the arrangement of the cache memory assigned to each guest OS, and therefore cannot properly restore the backup data of each guest OS.
  • one host OS stores data stored in the cache memory of the host OS, and the like. It is an object of the present invention to provide a method for backing up data stored in a cache memory assigned to each guest OS operating on the host OS.
  • the present invention provides a method for properly restoring backup data of each guest OS even when the arrangement of the cache memory allocated to each guest OS in the physical address space changes before and after the restart.
  • the purpose is to provide.
  • a typical example of the invention disclosed in the present application is as follows. That is, a computer that operates a plurality of operating systems, and the computer is connected as a physical resource to a processor, a volatile memory connected to the processor, a non-volatile memory connected to the processor, and the processor.
  • the plurality of operating systems includes a first operating system and a second operating system that generates a plurality of virtual machines, and the first operating system includes the processor.
  • a first logical processor logically divided, a first logical volatile memory logically divided from the volatile memory, and a first logical I / O logically divided from the I / O device Runs on the first logical resource including the device and shuts off the power to the computer
  • the second operating system includes: a second processor in which the processor is logically divided; and a second logical volatile memory in which the volatile memory is logically divided
  • the I / O device operates on a second logical resource including a second logically divided I / O device, and a third operating system operates on each of the plurality of virtual machines,
  • the first operating system secures a first cache memory area for temporarily storing data in the first logical volatile memory when the first operating system is started, and the first operating system A first address indicating a position of the first cache memory area in a physical address space of the first logical volatile memory managed by the system;
  • the second operating system generates at least one virtual machine and starts the third operating system
  • Second arrangement information indicating a position of the second cache memory area in a physical address space is generated, and the first operating system detects the first arrangement when power-off of the computer is detected. Based on the information, the first data stored in the first cache memory area. The first data is stored in the non-volatile memory, the second placement information is obtained, and is stored in the second cache memory area based on the second placement information. The second data is obtained from the second logical volatile memory, and the second data is stored in the nonvolatile memory.
  • the first operating system cache data of the first operating system and the cache data of the third operating system without executing the address conversion process or the like when the power-off is detected. Can be backed up quickly.
  • FIG. 1 is a block diagram for explaining the outline of the present invention.
  • the outline of the present invention will be described by taking a computer system including the physical computer 10 and the external storage apparatus 20 as an example.
  • the physical computer 10 includes two host OSes, a first host OS 251 and a second host OS 252. As will be described later, each of the first host OS 251 and the second host OS 252 is assigned a resource (divided hardware resource) obtained by logically dividing hardware resources included in the physical computer 10. In FIG. 1, the first divided VRAM 221, the NVRAM 130, and the power supply unit 150 are allocated to the first host OS 251 as divided hardware resources.
  • the first host OS 251 is a storage control OS that controls data read processing and data write processing for the external storage apparatus 20, and the second host OS 252 is a VMM that controls a plurality of virtual machines. (Virtual Machine Monitor).
  • the VMM generates a plurality of VMs (Virtual Machines) and operates the guest OS 400 on the generated VMs.
  • HOS_VCM volatile for the host OS
  • Cache memory a part of the storage area of the first divided VRAM 221 allocated to the first host OS 251 is stored as HOS_VCM (volatile for the host OS). Cache memory) 230.
  • a server control OS such as a file server or a database server
  • GOS_VCM a volatile cache memory for the guest OS
  • the first host OS 251 when the power supply unit 150 detects that the power supply is shut off, the first host OS 251 backs up the data stored in the HOS_VCM 230 as the HOS_NVCM (non-volatile cache memory for the host OS) 710 in the NVRAM 130. Further, the first host OS 251 specifies the address of the GOS_VCM 420 in the physical address space, and backs up the data stored in the GOS_VCM 420 to the GOS_NVCM 720 (non-volatile cache memory for guest OS).
  • the first host OS 251 restores the data stored in the HOS_NVCM 710 to the newly secured HOS_VCM 230. To do.
  • the first host OS 251 restores data stored in the GOS_NVCM 720 to the GOS_VCM 420 on the newly allocated virtual VRAM 410 in cooperation with the second host OS 252 and the guest OS 400.
  • FIG. 2 is an explanatory diagram illustrating an example of a physical hardware configuration of the computer system according to the first embodiment of this invention.
  • the computer system includes a physical computer 10 and an external storage device 20.
  • the physical computer 10 is connected to the external storage apparatus 20 directly or via a network.
  • SAN etc. comprised by FC (Fibre Channel) can be considered.
  • the physical computer 10 may include a storage device inside the device.
  • the physical computer 10 includes a processor 110, a VRAM (Volatile Random Access Memory) 120, an NVRAM (Non-Volatile Random Access Memory) 130, an I / O device 140, and a power supply unit 150.
  • VRAM Volatile Random Access Memory
  • NVRAM Non-Volatile Random Access Memory
  • the processor 110 executes a program stored in the VRAM 120.
  • the processor 110 has a plurality of CPU cores 111. Functions such as an OS are realized by the processor 110 executing the program.
  • processing is mainly described with respect to the processor 110, it indicates that the program is being executed by the processor 110.
  • the VRAM 120 is a storage medium composed of volatile storage elements.
  • the VRAM 120 stores a program executed by the processor 110 and information necessary for executing the program.
  • the VRAM 120 includes a work area for each program.
  • the NVRAM 130 is a storage medium composed of nonvolatile storage elements.
  • the NVRAM 130 stores program codes and the like of various firmware that operates in the physical computer 10.
  • the NVRAM 130 also includes a storage area for temporarily storing data when the power supply is cut off unexpectedly.
  • the storage capacity of the NVRAM 130 is smaller than that of the external storage device, but can be accessed from the physical computer 10 at high speed.
  • the NVRAM 130 may be a storage medium such as an SSD (Solid State Drive).
  • the NVRAM 130 is used as a nonvolatile storage medium, but other nonvolatile storage media may be used.
  • the I / O device 140 is a device for inputting information from outside and outputting information to the outside by connecting to an external device.
  • the I / O device 140 may be, for example, NIC, FC HBA, or the like.
  • FIG. 2 shows four NICs 141 and four FC HBAs 142 as the I / O devices 140.
  • One NIC 141 or one FC HBA 142 corresponds to one I / O device 140.
  • the power supply unit 150 controls the power supply of the physical computer 10.
  • the power supply unit 150 includes a power cutoff detection unit 151 and a battery power source 152.
  • the power cutoff detection unit 151 monitors unexpected power cutoff and controls to supply power from the battery power source 152 when the power cutoff is detected.
  • the external storage device 20 stores an OS program, program codes of various applications operating on the OS, data handled by the application, and the like.
  • the external storage apparatus 20 provides a storage area for temporarily saving data stored in the VRAM 120 when the OS supports page-in and page-out.
  • the external storage device 20 includes a plurality of storage media.
  • the storage medium may be a storage medium such as an HDD (Hard Disk Drive).
  • the external storage device 20 includes four HDDs 190 as storage media.
  • the physical computer 10 may be connected to a storage system including a plurality of storage devices and a controller.
  • FIG. 3 is an explanatory diagram illustrating an example of a logical configuration of the computer system according to the first embodiment of this invention.
  • the hardware of the physical computer 10 is divided into a first divided H / W (hardware) 201, a second divided H / W (hardware) 202, and a multi-OS technique.
  • the shared H / W (hardware) 203 is logically divided into three.
  • the first host OS 251 is activated on the first divided H / W 201 and the second host OS 252 is activated on the second divided H / W 202.
  • the first divided H / W 201 is exclusively used by the first host OS 251
  • the second divided H / W 202 is exclusively used by the second host OS 252.
  • the first divided H / W 201 includes a first divided processor 211, a first divided VRAM 221, an NVRAM 130, a first divided I / O device 241, and a power supply unit 150.
  • the first divided processor 211 is a logical processor to which two CPU cores 111 among the four CPU cores 111 included in the processor 110 are assigned.
  • the first divided VRAM 221 is a logical VRAM to which a part of the storage area of the VRAM 120 is allocated. As shown in FIG. 2, a part of the storage area of the first divided VRAM 221 is secured as HOS_VCM 230.
  • the CPU core 111 assigned to the first divided processor 211 and the storage area assigned to the first divided VRAM 221 are controlled not to be used by the second host OS 252 running on the second divided H / W 202.
  • the For example, the storage area allocated to the first divided VRAM 221 is not mapped to the HVA (host virtual address) space of the second host OS 252.
  • I / O devices 140 included in the physical computer 10 are assigned as the first divided I / O devices 241.
  • the NVRAM 130 and the power supply unit 150 are allocated so that the first divided H / W 201 occupies.
  • the second divided H / W 202 includes a second divided processor 212, a second divided VRAM 222, and a second divided I / O device 242.
  • the second divided processor 212 is a logical processor to which two CPU cores 111 among the four CPU cores 111 included in the processor 110 are assigned.
  • the second divided VRAM 222 is a logical VRAM to which a part of the storage area of the VRAM 120 is allocated.
  • some I / O devices 140 included in the physical computer 10 are allocated as the second divided I / O devices 242.
  • the shared H / W 203 is hardware that can be used by both the first host OS 251 and the second host OS 252.
  • the shared H / W 203 includes a shared VRAM 223 to which a part of the storage area of the VRAM 120 is allocated.
  • the storage areas allocated to the shared VRAM 223 are mapped to the HVA space of the first host OS 251 and the HVA space of the second host OS 252, respectively. That is, each of the first host OS 251 and the second host OS 252 can access the shared VRAM 223.
  • the first host OS 251 of this embodiment corresponds to the storage control OS.
  • the storage control OS controls data read processing and data write processing for the external storage apparatus 20.
  • the first host OS 251 has a function of managing the memory address space of a general OS, and manages the mapping between the HPA (host physical address) space of the first divided VRAM 221 and the HVA space.
  • the HPA space of the first divided VRAM 221 is an address space indicating the physical location of the first divided VRAM managed by the first host OS 251
  • the HVA space of the first divided VRAM 221 is the first This is an address space that indicates the position of a virtual memory that is allocated to an application or the like by the host OS 251.
  • the first host OS 251 executes backup processing and restore processing between the VCM and the NVCM.
  • backup processing and restore processing between VCM and NVCM are also simply referred to as backup processing and restore processing.
  • the second host OS 252 of this embodiment corresponds to the VMM.
  • the VMM generates a plurality of VMs 300 by allocating a part of the second divided H / W 202 using a virtual machine technology, and operates the guest OS 400 on each of the generated VMs 300.
  • the VMM manages the mapping between the GPA (guest physical address) space of the virtual VRAM 410 allocated to the VM 300 and the HPA space of the second divided VRAM 222.
  • the GPA space of the virtual VRAM 410 is an address space indicating the physical location of the virtual VRAM 410 managed by the guest OS 400
  • the HPA space of the second divided VRAM 222 is the first space managed by the second host OS 252. This is an address space indicating the physical position of the two divided VRAMs 222.
  • a virtual VRAM 410 is allocated to the VM 300 on which the guest OS 400 is running. Further, a virtual processor, a virtual I / O device, and the like (not shown) are allocated to the guest OS 400.
  • the guest OS 400 recognizes the virtual VRAM 410 as a physical VRAM.
  • the guest OS 400 has a function of managing a memory address space of a general OS, and manages mapping between the GPA space of the virtual VRAM 410 and the GVA (guest virtual address) space.
  • the GVA space of the virtual VRAM 410 is an address space indicating the position of a virtual memory allocated to an application or the like by the guest OS 400.
  • FIG. 4A is an explanatory diagram illustrating information stored in the VRAM 120 according to the first embodiment of this invention.
  • FIG. 4B is an explanatory diagram illustrating information stored in the NVRAM 130 according to the first embodiment of this invention.
  • the description will focus on information necessary for backup processing and restore processing.
  • the physical address space of the VRAM 120 is logically divided into three storage areas: a storage area assigned to the first divided VRAM 221, a storage area assigned to the second divided VRAM 222, and a storage area assigned to the shared VRAM 223.
  • the physical address space of the VRAM 120 is divided into three storage areas so that the addresses are continuous, but the division method is not limited to this.
  • the first divided VRAM 221 is managed by the first host OS 251.
  • the first host OS 251 reserves a partial storage area of the first divided VRAM 221 as the HOS_VCM 230.
  • the first divided VRAM 221 stores HVA-HPA mapping information 240 and HOS_VCM HPA space arrangement information 250 as information necessary for backup processing and restoration processing.
  • the HVA-HPA mapping information 240 is information for managing mapping between the HPA space managed by the first host OS 251 and the HVA space.
  • the HVA-HPA mapping information 240 is generated by the first host OS 251.
  • the HVA-HPA mapping information 240 generally corresponds to what is called a page table.
  • HPA is a physical address of the first divided VRAM 221.
  • the HVA is a virtual address used by the first host OS 251 and an application operating on the first host OS 251.
  • the HOS_VCM HPA space arrangement information 250 is information indicating the arrangement of the HOS_VCM 230 in the HPA space managed by the first host OS 251.
  • the HOS_VCM HPA space arrangement information 250 is generated by the first host OS 251.
  • a plurality of storage areas with discontinuous physical addresses are allocated to the HOS_VCM 230. Therefore, the HOS_VCM HPA space allocation information 250 includes a plurality of entries in which the physical start address of one storage area allocated to the HOS_VCM 230 and the size are associated.
  • the second host OS 252 places the second host OS 252 itself in a partial storage area of the second divided VRAM 222. In addition, the second host OS 252 allocates a part of the second divided VRAM 222 to the VM 300 as the virtual VRAM 410.
  • GPA-HPA mapping information 500 is stored as information necessary for backup processing and restoration processing.
  • the GPA-HPA mapping information 500 is information for managing mapping between the GPA space managed by the guest OS 400 and the HPA space managed by the second host OS 252.
  • the GPA-HPA mapping information 500 is generated by the second host OS 252.
  • the GPA-HPA mapping information 500 corresponds to what is called an EPT (extended page table).
  • GPA is a physical address of the virtual VRAM 410 that the VM 300 recognizes as a physical VRAM.
  • the GPA-HPA mapping information 500 will be described later with reference to FIG.
  • a part of the storage area of the virtual VRAM 410 is reserved as GOS_VCM 420. Also, the virtual VRAM 410 stores GVA-GPA mapping information 430 and GOS_VCM GPA space arrangement information 440 as information necessary for backup processing and restoration processing.
  • the GVA-GPA mapping information 430 is information for managing mapping between the GVA space managed by the guest OS 400 and the GPA space.
  • the GVA-GPA mapping information 430 is generated by the guest OS 400. Similar to the HVA-HPA mapping information 240, the GVA-GPA mapping information 430 is generally called a page table.
  • GVA is a virtual address used by the guest OS 400 and applications operating on the guest OS 400.
  • the GVA-GPA mapping information 430 will be described later with reference to FIG.
  • GOS_VCM GPA space arrangement information 440 is information indicating the arrangement of GOS_VCM 420 in the GPA space managed by the guest OS 400.
  • the GOS_VCM GPA space arrangement information 440 is generated by the guest OS 400.
  • the GOS_VCM GPA space arrangement information 440 will be described later with reference to FIG.
  • the shared VRAM 223 stores GOS_VCM HPA space arrangement information 600 as information necessary for backup processing and restoration processing.
  • the GOS_VCM HPA space arrangement information 600 is information indicating the arrangement of the GOS_VCM 420 in the HPA space managed by the second host OS 252.
  • the GOS_VCM HPA space layout information 600 is generated by the second host OS 252.
  • the GOS_VCM HPA space arrangement information 600 will be described later with reference to FIG.
  • a part of the storage area of the NVRAM 130 is secured as HOS_NVCM 710 and GOS_NVCM 720. Further, the NVRAM 130 stores the NVCM NVA management information 700 as information necessary for the backup process and the restore process.
  • the NVCM NVA management information 700 is information for managing the address (NVA) of the NVRAM 130 in the storage area secured as the HOS_NVCM 710 and the GOS_NVCM 720.
  • the NVCM NVA management information 700 will be described later with reference to FIG.
  • FIG. 5 is an explanatory diagram illustrating an example of the GPA-HPA mapping information 500 according to the first embodiment of this invention.
  • GPA-HPA mapping information 500 one entry is registered for one storage area (for example, a page) in the GPA space managed by the guest OS 400.
  • the entries registered in the GPA-HPA mapping information 500 include GPA 501, HPA 502, and size 503.
  • GPA 501 is the top address of one storage area in the GPA space.
  • the HPA 502 is a head address of one storage area in the HPA space that is assigned to the storage area corresponding to the GPA 501.
  • the size 503 is the size of one storage area corresponding to the GPA 501.
  • FIG. 6 is an explanatory diagram illustrating an example of the GVA-GPA mapping information 430 according to the first embodiment of this invention.
  • GVA-GPA mapping information 430 one entry is registered for one storage area (for example, page) in the GVA space managed by the guest OS 400.
  • the entries registered in the GVA-GPA mapping information 430 include GVA 431, GPA 432, and size 433.
  • GVA431 is the head address of one storage area in the GVA space.
  • GPA 432 is the head address of one storage area in the GPA space that is assigned to the storage area corresponding to GVA 431.
  • the size 433 is the size of one storage area corresponding to the GVA 431.
  • FIG. 7 is an explanatory diagram illustrating an example of the GOS_VCM GPA space layout information 440 according to the first embodiment of this invention.
  • GOS_VCM GPA space layout information 440 one entry is registered for one storage area group (for example, block) constituting GOS_VCM 420.
  • the storage area group indicates a plurality of storage areas (pages) having consecutive addresses.
  • the entry registered in the GOS_VCM GPA space layout information 440 includes an ID 441, a GPA 442, and a size 443.
  • the ID 441 is an identifier for uniquely identifying an entry registered in the GOS_VCM GPA space layout information 440.
  • the GPA 442 is a head address of one storage area group constituting the GOS_VCM 420 in the GPA space managed by the guest OS 400.
  • the size 443 is the size of one storage area group corresponding to the GPA 442.
  • FIG. 8 is an explanatory diagram illustrating an example of the GOS_VCM HPA space layout information 600 according to the first embodiment of this invention.
  • the GOS_VCM HPA space layout information 600 one entry is registered for one storage area group (for example, block) constituting the GOS_VCM 420.
  • the GOS_VCM HPA space layout information 600 includes ID 601, HPA 602, and size 603.
  • the ID 601 is an identifier for uniquely identifying an entry registered in the GOS_VCM HPA space layout information 600.
  • the HPA 602 is a head address of one storage area group constituting the GOS_VCM 420 in the HPA space managed by the VMM.
  • the size 603 is the size of one storage area group corresponding to the HPA 602.
  • FIG. 9 is an explanatory diagram illustrating an example of the NVCM NVA management information 700 according to the first embodiment of this invention.
  • NVCM NVA management information 700 one entry is registered for each HOS_NVCM 710 and each GOS_NVCM 720.
  • the entry registered in the NVCM NVA management information 700 includes an OS_ID 701, an NVA 702, and a size 703.
  • OS_ID 701 is an identifier for uniquely identifying an entry registered in the NVCM NVA management information 700.
  • NVA 702 is the start address of the storage area corresponding to HOS_NVCM 710 or GOS_NVCM 720.
  • the size 703 is the size of the storage area corresponding to the NVA 702.
  • FIG. 10 is a flowchart for explaining the outline of the startup process of the computer system according to the first embodiment of this invention.
  • step S100 When the physical computer 10 is powered on, first, the first host OS 251 is started up (step S100). Specifically, the following processing is executed.
  • one CPU core 111 After the power is turned on, one CPU core 111 reads the boot loader from the external storage device 20 or the like, and loads the boot loader into the first divided VRAM 221. Furthermore, the CPU core 111 executes the loaded boot loader.
  • the boot loader sets the shared VRAM 223 in the VRAM 120 based on preset resource definition information (not shown), and writes the resource definition information in the shared VRAM 223.
  • the boot loader writes the image of the first host OS 251 in the first divided VRAM 221 based on the resource definition information, and starts the first host OS 251.
  • the first host OS 251 is activated using the first divided H / W 201 based on the resource definition information. Details of the startup process of the first host OS 251 will be described later with reference to FIG.
  • startup method of the first host OS 251 is not limited to this, and may be started using another known method.
  • the above is the description of the processing in step S100.
  • the first host OS 251 determines whether or not it is a restart process after power-off (step S101).
  • the power supply unit 150 detects power-off
  • a method of setting information indicating that power-off has been detected in the NVRAM 130 may be considered.
  • the first host OS 251 determines whether or not the information is set in the NVRAM 130.
  • the determination method described above is an example, and the present invention is not limited to this.
  • the first host OS 251 may determine that the first host OS 251 is a restart process after power-off.
  • the first host OS 251 starts the start process of the second host OS 252 (step S102).
  • the first host OS 251 writes the image of the second host OS 252 in the second divided VRAM 222 based on the resource definition information and starts it.
  • the second host OS 252 is activated using the second divided H / W 202 based on the resource definition information. Details of the startup process of the second host OS 252 will be described later with reference to FIG.
  • the second host OS 252 starts the startup process of the guest OS 400 (step S103). Details of the startup processing of the guest OS 400 will be described later with reference to FIG.
  • the first host OS 251 executes a normal operation and starts a power supply monitoring process.
  • the first host OS 251 determines whether or not power-off is detected (step S109).
  • the first host OS 251 When the power shutdown is not detected, the first host OS 251 continues the power monitoring process. On the other hand, when power-off is detected, the first host OS 251 starts backup processing (step S110). The first host OS 251 stops power supply to the physical computer 10 after the backup processing is completed. Details of the backup processing will be described later with reference to FIG.
  • step S101 When it is determined in step S101 that the process is a restart process after power-off, the first host OS 251 executes the restore process of the first host OS 251 (step S105).
  • the first host OS 251 restores the data stored in the HOS_NVCM 710 to the first divided VRAM 221 based on the NVCM NVA management information 700 and the newly generated HOS_VCM HPA space layout information 250.
  • the restore processing of the first host OS 251 will be described later with reference to FIG.
  • step S106 the first host OS 251 starts the activation process of the second host OS 252 (step S106).
  • the process in step S106 is the same as the process in step S102.
  • step S107 the second host OS 252 executes a startup process of the guest OS 400 (step S107).
  • the process in step S107 is the same as the process in step S103.
  • the guest OS 400 detects that the guest OS 400 has been restarted, and executes a restore process for the guest OS 400 in cooperation with the first host OS 251 and the second host OS 252 (step S108). Thereafter, after the restoration process of the guest OS 400 is completed, the first host OS 251 executes a normal job and starts a power supply monitoring process. The first host OS 251 determines whether or not power-off is detected (step S109). Since the processing after step S109 has already been described, a description thereof will be omitted.
  • the data stored in the GOS_NVCM 720 is restored in the virtual VRAM 410.
  • the restoration process of the guest OS 400 will be described later with reference to FIGS. 17A, 17B, and 17C.
  • the guest OS 400 accesses the GOS_NVCM 720 and determines whether data is stored in the GOS_NVCM 720. When data is stored in GOS_NVCM 720, the guest OS 400 determines that the guest OS 400 has been restarted.
  • the guest OS 400 acquires a log specifying the cause at the time of shutdown, and determines whether or not the guest OS 400 has been restarted based on the log after startup.
  • a method in which the second host OS 252 notifies that the guest OS 400 has been restarted after starting the guest OS 400 in the startup processing of the guest OS 400 is also conceivable.
  • the determination method described above is an example, and the present invention is not limited to this.
  • FIG. 11 is a flowchart illustrating details of the startup process of the first host OS 251 according to the first embodiment of this invention.
  • the first host OS 251 executes the startup process of the first host OS 251 using the first divided processor 211.
  • the first host OS 251 generates HVA-HPA mapping information 240 (step S200). Since the generation method of the HVA-HPA mapping information 240 is a known method, the description thereof is omitted.
  • the first host OS 251 reserves a storage area for HOS_VCM on the first divided VRAM 221 (step S201). Specifically, the first host OS 251 reserves a storage area where addresses in the HVA space are continuous as a storage area for HOS_VCM.
  • the first host OS 251 determines whether page-in and page-out are valid (step S202).
  • the first host OS 251 proceeds to step S204.
  • the first host OS 251 uses the storage area so that data stored in the storage area reserved for the HOS_VCM is not evicted as a swap file. Pin it (step S203).
  • the first host OS 251 generates the HOS_VCM HPA space arrangement information 250 (step S204) and ends the process. Specifically, the following processing is executed.
  • the first host OS 251 refers to the HVA-HPA mapping information 240 based on the HVA of the storage area reserved for the HOS_VCM, and sets a plurality of storage area groups in the HPA space constituting the storage area reserved for the HOS_VCM. Identify.
  • the first host OS 251 adds an entry corresponding to each storage area group specified in the HOS_VCM HPA space layout information 250. Further, the first host OS 251 sets the start address (HPA) and size of each storage area group in each entry.
  • HPA start address
  • the first host OS 251 rearranges the entries of the HOS_VCM HPA space layout information 250 according to the order of the HVA of each of the plurality of storage area groups. For example, the first host OS 251 rearranges the entries in ascending order or descending order of HVA.
  • the first host OS 251 assigns IDs in ascending order from the entry on the HOS_VCM HPA space layout information 250. As a result, the same information as the GOS_VCM HPA space arrangement information 600 is generated. The above is the description of the process in step S204.
  • FIG. 12 is a flowchart for explaining the details of the startup process of the second host OS 252 according to the first embodiment of this invention.
  • the second host OS 252 executes the startup process of the second host OS 252 using the second divided processor 212.
  • the second host OS 252 first executes an initialization process (step S300). Since the VMM initialization process is a known process, it is omitted here.
  • the second host OS 252 generates the VM 300 after the initialization process is completed (step S301). Since the VM generation process is a known process, a description thereof is omitted here.
  • the second host OS 252 generates GPA-HPA mapping information 500 corresponding to the generated VM 300 (step S302). Since the generation process of the GPA-HPA mapping information 500 is a known process, description thereof is omitted. Note that the second host OS 252 manages the GPA-HPA mapping information 500 in association with the identification information of the VM 300.
  • the second host OS 252 activates the VM 300 (step S303). Furthermore, the activated VM 300 starts the activation process of the guest OS 400. The activation process of the guest OS 400 will be described later with reference to FIG.
  • the second host OS 252 determines whether a notification indicating the storage location of the GOS_VCM GPA space layout information 440 has been received from the guest OS 400 (step S304).
  • the second host OS 252 continues to wait until the notification is received from the guest OS 400.
  • the second host OS 252 When it is determined that the notification is received from the guest OS 400, the second host OS 252 generates GOS_VCM HPA space arrangement information 600 corresponding to the VM 300 (step S305). Specifically, the following processing is executed.
  • the second host OS 252 refers to the GPA-HPA mapping information 500 based on the GPA included in the notification received from the guest OS 400, and reads the GOS_VCM GPA space allocation information 440 stored in the virtual VRAM 410.
  • the second host OS 252 selects one entry from the GOS_VCM GPA space layout information 440. Here, it is assumed that entries are selected in ascending order of ID 441.
  • the second host OS 252 refers to the GPA-HPA mapping information 500 based on the GPA 442 of the selected entry, and searches for an entry in which the GPA 501 matches the GPA 442. That is, the address of the storage area constituting the GOS_VCM 420 in the HPA space managed by the second host OS 252 is specified.
  • the second host OS 252 generates an entry in the GOS_VCM HPA space layout information 600 and sets an identification number in ascending order in the ID 601. Further, the second host OS 252 sets an address stored in the HPA 502 of the searched entry in the HPA 602 of the generated entry, and further stores a value stored in the size 443 of the selected entry. Set.
  • the second host OS 252 transmits a response to the notification from the guest OS 400 to the guest OS 400 (step S306), and ends the process.
  • the processing from step S301 to step S305 is repeatedly executed for one guest OS 400.
  • FIG. 13 is a flowchart for explaining an example of the boot process of the guest OS 400 according to the first embodiment of the present invention.
  • the guest OS 400 generates GVA-GPA mapping information 430 (step S400). Since the generation method of the GVA-GPA mapping information 430 is a known method, description thereof is omitted.
  • the guest OS 400 reserves a storage area for GOS_VCM on the virtual VRAM 410 (step S401). Specifically, the guest OS 400 reserves a storage area where addresses in the GVA space are continuous as a storage area for GOS_VCM.
  • the guest OS 400 determines whether page-in and page-out are valid (step S402).
  • step S404 If it is determined that page-in and page-out are not valid, the guest OS 400 proceeds to step S404.
  • the guest OS 400 pins the storage area so that data stored in the storage area reserved for the GOS_VCM 420 is not evicted as a swap file. (Step S403).
  • the guest OS 400 generates GOS_VCM GPA space layout information 440 (step S404), and sends a notification indicating the storage location of the GOS_VCM GPA space layout information 440 to the second host OS 252 (step S405). Specifically, the following processing is executed.
  • the guest OS 400 refers to the GVA-GPA mapping information 430 based on the GVA of the storage area reserved for GOS_VCM, and identifies a plurality of storage area groups in the GPA space constituting the storage area reserved for GOS_VCM.
  • the guest OS 400 adds an entry corresponding to each storage area group specified in the GOS_VCM GPA space layout information 440.
  • the guest OS 400 also sets the start address (GPA) and size of each storage area group in the GPA 442 and size 443 of each entry.
  • the guest OS 400 rearranges the plurality of entries of the GOS_VCM GPA space layout information 440 in the order of the GPA 442. For example, the guest OS 400 rearranges the entries in ascending order or descending order of GVA.
  • the guest OS 400 assigns IDs in ascending order from the entry on the GOS_VCM GPA space layout information 440. As a result, GOS_VCM HPA space arrangement information 600 is generated. The guest OS 400 notifies the second host OS 252 of the address (GPA) of the GPA space where the GOS_VCM HPA space arrangement information 600 is stored.
  • GPS address
  • the guest OS 400 determines whether a response is received from the second host OS 252 (step S406).
  • the guest OS 400 If it is determined that a response is not received from the second host OS 252, the guest OS 400 continues to wait until a response is received from the second host OS 252. On the other hand, when it is determined that a response has been received from the second host OS 252, the guest OS 400 ends the process. Thereafter, the guest OS 400 executes normal processing.
  • FIG. 14 is an explanatory diagram illustrating an example of an arrangement in the GVA space, an arrangement in the GPA space, and an arrangement in the HPA space of the GOS_VCM 420 according to the first embodiment of this invention.
  • the first host OS 251 generates a mapping between the HPA space and the HVA space each time it starts, and uses the HVA space as a storage area to be allocated to the HOS_VCM 230. A storage area having consecutive addresses is secured. Each time the guest OS 400 is activated, it generates a mapping between the GPA space and the GVA space, and secures a storage area in which addresses in the GVA space are continuous as a storage area to be allocated to the GOS_VCM 420.
  • mapping relationship between the HPA space and the HVA space and the mapping relationship between the GPA space and the GVA space are likely to change every time the physical computer 10 is started. Therefore, the storage area of the HPA space allocated to the HOS_VCM 230 and the storage area of the GPA space allocated to the GOS_VCM 420 may change.
  • the first host OS 251 has the arrangement of the HOS_VCM 230 in the HPA space managed by the first host OS 251 and the second host OS 252 of the GOS_VCM 420 in order to back up the data stored in the HOS_VCM 230 and the GOS_VCM 420 at high speed. It is necessary to grasp the arrangement in the HPA space managed by the company.
  • the arrangement of the HOS_VCM 230 in the HPA space managed by the first host OS 251 and the arrangement of the GOS_VCM 420 in the HPA space managed by the second host OS 252 are different each time the physical computer 10 is started.
  • the first host OS 251 detects the power interruption and starts the backup process, in order to grasp the arrangement of the HOS_VCM 230 in the HPA space managed by the first host OS 251, the HVA-HPA mapping information Referring to 240, it is necessary to grasp the arrangement of the HOS_VCM 230. Also, the first host OS 251 needs to communicate with the second host OS 252 in order to grasp the arrangement of the GOS_VCM 420 in the HPA space managed by the second host OS 252.
  • the first host OS 251 generates HOS_VCM HPA space arrangement information 250 indicating the arrangement of the HOS_VCM 230 in the HPA space managed by the first host OS 251 at the time of activation.
  • the second host OS 252 generates GOS_VCM HPA space arrangement information 600 indicating the arrangement of the GOS_VCM 420 in the HPA space managed by the second host OS 252 in cooperation with the guest OS 400 at the time of activation.
  • the first host OS 251 can easily and quickly grasp the storage area in which the data to be backed up is stored, it is possible to realize a backup process with reduced power consumption in a short time.
  • the GOS_VCM 420 shown in FIG. 14 is mapped to three storage area groups, that is, block 1 (801), block 2 (802), and block 3 (803) in the GPA space managed by the guest OS 400. Further, block 1 (801) of the GPA space managed by the guest OS 400 is mapped to block 1 (901) in the HPA space managed by the second host OS 252 and block 2 (802) of the GPA space managed by the guest OS 400. Are mapped to block 2 (902) and block 3 (903) of the HPA space managed by the second host OS 252, and further, the block 3 of the GPA space managed by the guest OS 400 is managed by the second host OS 252. Map to block 4 (904) of HPA space. Therefore, it can be seen that the GOS_VCM 420 is assigned a storage area group in which addresses of the HPA space managed by the second host OS 252 are discontinuous.
  • the guest OS 400 generates GOS_VCM GPA space layout information 440 in which entries in three blocks of the GPA space managed by the guest OS 400 are arranged in a continuous storage area of the GVA space managed by the guest OS 400. (Step S404). Further, the second host OS 252 generates GOS_VCM HPA space arrangement information 600 in which the entries of the four blocks in the GPA space are arranged in the order of consecutive addresses in the GVA space managed by the guest OS 400.
  • the first host OS 251 reads the data in the order of entries in the GOS_VCM HPA space arrangement information 600 and writes the data in the GOS_NVCM 720, thereby making the same as the image data of the continuous GOS_VCM 420 in the GVA space managed by the guest OS 400 In this state, data is stored in the GOS_NVCM 720.
  • the HOS_VCM HPA space layout information 250 has the same technical characteristics.
  • FIG. 15 is a flowchart illustrating an example of backup processing according to the first embodiment of this invention.
  • the first host OS 251 acquires the address (NVA) of the HOS_NVCM 710 with reference to the NVCM NVA management information 700 when the power-off is detected (step S500). That is, the first host OS 251 specifies the head address of the HOS_NVCM 710 that stores the data stored in the HOS_VCM 230.
  • the first host OS 251 refers to the HOS_VCM HPA space layout information 250 stored in the first divided VRAM 221 and backs up the data stored in the HOS_VCM 230 to the HOS_NVCM 710 (step S501). Specifically, the following processing is executed.
  • the first host OS 251 selects the entries of the HOS_VCM HPA space layout information 250 in order from the top.
  • the first host OS 251 determines the address of the HOS_NVCM 710 that writes data corresponding to the selected entry.
  • the NVA acquired in step S500 is determined as the address of the HOS_NVCM 710 that writes data.
  • the first host OS 251 determines the address of the HOS_NVCM 710 to which data is written from the previously determined address and the size of the previously written data.
  • the first host OS 251 reads data from the HOS_VCM 230 and stores the data in the HOS_NVCM 710. At this time, data is written from the HOS_VCM 230 to the HOS_NVCM 710 using DMA transfer. In the DMA transfer, the HPA stored in the selected entry and the determined address are used. The above is the description of the processing in step S501.
  • the first host OS 251 refers to the NVCM NVA management information 700 and selects the guest OS 400 to be processed (step S502).
  • the first host OS 251 selects the target guest OS 400 in order from the entry on the NVCM NVA management information 700. At this time, the first host OS 251 acquires the NVA 702 of the selected entry. Also, the first host OS 251 acquires the GOS_VCM HPA space arrangement information 600 corresponding to the guest OS 400 to be processed from the shared VRAM 223 based on the OS_ID 701 of the selected entry.
  • the first host OS 251 backs up the data stored in the selected GOS_VCM 420 to the GOS_NVCM 720 (step S503). Specifically, the following processing is executed.
  • the first host OS 251 selects one entry of the acquired GOS_VCM HPA space arrangement information 600. Here, the entries are selected in order from the top entry.
  • the first host OS 251 determines the address of the GOS_NVCM 720 to which data corresponding to the HPA 602 of the selected entry is written.
  • the address determination method may be the same method as in step S501.
  • the first host OS 251 reads data from the GOS_VCM 420 based on the HPA 602 and the size 603 of the selected entry, and stores the read data in the GOS_NVCM 720. At this time, data is written from GOS_VCM 420 to GOS_NVCM 720 using DMA transfer. In the DMA transfer, the HPA 602 and the size 603 stored in the selected entry and the determined address are used.
  • the first host OS 251 since the GOS_VCM 420 is included in the second divided VRAM 222, the first host OS 251 normally does not access. However, when executing the backup process and the restore process, the first host OS 251 is set so that it can temporarily access the second divided VRAM 222. As another method, a method in which the first host OS 251 issues a read command to the second host OS 252 can be considered.
  • the first host OS 251 stores the data stored in the GOS_VCM 420 in the order of entries of the GOS_VCM HPA space arrangement information 600 in the GOS_NVCM 720. Therefore, as shown in FIG. 14, the data stored in the GOS_NVCM 720 is continuous image data like the GOS_VCM 420. The above is the description of the processing in step S503.
  • the first host OS 251 determines whether or not the processing has been completed for all the guest OSs 400 (step S504). That is, it is determined whether or not the processing has been completed for all the guest OS 400 entries registered in the NVCM NVA management information 700.
  • the first host OS 251 returns to Step S502 and executes the same processing for the new guest OS 400.
  • the first host OS 251 ends the processing.
  • FIG. 16 is a flowchart for explaining the restore processing of the first host OS 251 according to the first embodiment of this invention.
  • the first host OS 251 starts the restore process after the startup process of the first host OS 251 is completed.
  • the first host OS 251 refers to the NVCM NVA management information 700 and acquires the address (NVA) of the HOS_NVCM 710 (step S600). That is, the first host OS 251 specifies the head address of the HOS_NVCM 710 from which backup data is read.
  • the first host OS 251 refers to the HOS_VCM HPA space layout information 250 stored in the first divided VRAM 221, restores the data stored in the HOS_NVCM 710 to the HOS_VCM 230 (step S601), and ends the process. Specifically, the following processing is executed.
  • the first host OS 251 selects the entries of the HOS_VCM HPA space layout information 250 in order from the top. The first host OS 251 acquires the size of the selected entry. The first host OS 251 determines an address for reading data from the HOS_NVCM 710.
  • the NVA acquired in step S600 is determined as the address of the HOS_NVCM 710 from which data is read.
  • the first host OS 251 determines the address of the HOS_NVCM 710 that reads data from the previously determined address and the size of the previously read data.
  • the first host OS 251 reads data for the size of the entry selected from the HOS_NVCM 710 and stores the data in the HOS_VCM 230. At this time, data is written from the HOS_NVCM 710 to the HOS_VCM 230 using DMA transfer. In the DMA transfer, the HPA and size stored in the selected entry and the determined address are used. The above is the description of the process in step S601.
  • the HOS_VCM HPA space layout information 250 referred to in step S601 is generated after the restart.
  • the contents differ from the HOS_VCM HPA space arrangement information 250 referred to in the backup process.
  • FIG. 17A, FIG. 17B, and FIG. 17C are flowcharts for explaining the restore processing of the guest OS 400 according to the first embodiment of this invention.
  • FIG. 18 is an explanatory diagram illustrating an example of an arrangement in the GVA space, an arrangement in the GPA space, and an arrangement in the HPA space of the GOS_VCM 420 according to the first embodiment of this invention.
  • the guest OS 400 transmits a data restore request to the GOS_VCM 420 to the second host OS 252 after the activation process of the guest OS 400 is completed (step S700). Thereafter, the guest OS 400 determines whether or not a response has been received from the second host OS 252 (step S701).
  • the guest OS 400 continues to wait until a response is received from the second host OS 252. When it is determined that the response is received from the second host OS 252, the guest OS 400 ends the process.
  • the second host OS 252 When the second host OS 252 receives a data restore request from the guest OS 400 to the GOS_VCM 420 (step S800), the second host OS 252 transfers the data restore request to the GOS_VCM 420 to the first host OS 251 (step S801).
  • the restore request includes the guest OS 400 identifier.
  • the second host OS 252 determines whether a response has been received from the first host OS 251 (step S802). If it is determined that a response has not been received from the first host OS 251, the second host OS 252 continues to wait until a response is received from the first host OS 251.
  • the second host OS 252 transmits a response to the guest OS 400 (step S 803) and ends the process.
  • the first host OS 251 When the first host OS 251 receives a data restore request from the second host OS 252 to the GOS_VCM 420 (step S900), the first host OS 251 refers to the NVCM NVA management information 700 based on the identifier of the guest OS 400 included in the restore request, and The address (NVA) of GOS_NVCM 720 corresponding to the OS 400 is acquired (step S901).
  • the first host OS 251 refers to the GOS_VCM HPA space allocation information 600 stored in the shared VRAM 223, restores the data stored in the GOS_NVCM 720 to the GOS_VCM 420 (step S902), and then transmits a response to the second host OS 252. (Step S903), and the process ends. Specifically, the following processing is executed.
  • the first host OS 251 selects the GOS_VCM HPA space layout information 600 from the top entry in order.
  • the first host OS 251 acquires the size 703 of the selected entry.
  • the first host OS 251 determines an address for reading data from the GOS_NVCM 720.
  • the NVA acquired in step S901 is the address of GOS_NVCM 720 from which data is read.
  • the first host OS 251 determines the address of GOS_NVCM 720 for reading data from the previously determined address and the previously read data size 703.
  • the first host OS 251 reads data corresponding to the entry size 703 selected from the GOS_NVCM 720 and stores the data in the GOS_VCM 420. At this time, data is written from GOS_NVCM 720 to GOS_VCM 420 using DMA transfer. In DMA transfer, the NVA 702 and size 703 stored in the selected entry and the determined are used. The above is the description of the process in step S902.
  • the GOS_VCM HPA space layout information 600 referred to in step S902 is generated after the restart.
  • the contents are different from the GOS_VCM HPA space arrangement information 600 referenced in the backup process.
  • the GOS_VCM HPA space layout information 600 entries are rearranged in the order of addresses on the GVA managed by the guest OS 400. Therefore, when the first host OS 251 restores the data to the GOS_VCM 420 in the order of entry of the GOS_VCM HPA space allocation information 600, the data stored in the GOS_VCM 420 is stored in the GOS_VCM 420 before the restart as shown in FIG. Similarly, the address of the GVA space is restored as continuous image data. That is, it is possible to restore the same memory state as before the power interruption.
  • the first host OS 251 since the GOS_VCM 420 is included in the second divided VRAM 222, the first host OS 251 normally does not access the second divided VRAM 222. However, when executing the backup process and the restore process, the first host OS 251 sets the shared VRAM 223 so that the GOS_NVCM 720 can temporarily access the second divided VRAM 222. As another method, a method in which the first host OS 251 issues a read command to the second host OS 252 can be considered. A method of writing the data read from the GOS_NVCM 720 to the shared VRAM 223 and issuing a data write command to the second host OS 252 is also conceivable.
  • the first host OS 251 When the physical computer 10 is started, memory space address conversion processing necessary for backup processing and restoration processing is executed. That is, the first host OS 251 generates the HOS_VCM HPA space layout information 250 indicating the layout of the HOS_VCM 230 in the HPA space managed by the first host OS, and the second host OS 252 (VMM) GOS_VCM HPA space layout information 600 indicating the layout of GOS_VCM 420 in the HPA space managed by the host OS 252 is generated.
  • VMM second host OS 252
  • the first host OS 251 can easily and quickly back up the data stored in the HOS_VCM 230 by referring to the HOS_VCM HPA space layout information 250 when the power-off is detected. Further, by referring to the GOS_VCM HPA space arrangement information 600, data stored in the GOS_VCM 420 of each guest OS 400 can be backed up easily and quickly.
  • the first host OS 251 does not perform complicated address conversion processing when performing backup processing using the power of the battery power supply 152, and does not perform complicated address conversion processing in a short time and with reduced power consumption. Backup can be realized.
  • entries are arranged so that the addresses of the GVA space managed by the guest OS 400 are continuous.
  • the first host OS 251 backs up the data stored in the HOS_VCM 230 in the order of entries of the HOS_VCM HPA space arrangement information 250 to the HOS_NVCM 710, thereby storing the data stored in the HOS_VCM 230 in the HVA space managed by the first host OS 251. Backup is possible in the state when the power is cut off. Further, the first host OS 251 backs up the data stored in the GOS_VCM 420 in the order of entries of the GOS_VCM HPA space allocation information 600 to the GOS_NVCM 720, thereby cutting off the data stored in the GOS_VCM 420 in the GVA space managed by the guest OS 400. You can back up in time.
  • the first host OS 251 can restore the data stored in the HOS_NVCM 710 to the HOS_VCM 230 easily and quickly by referring to the HOS_VCM HPA space allocation information 250, and also the GOS_VCM HPA space.
  • the data stored in the GOS_NVCM 720 can be restored to the GOS_VCM 420 easily and quickly.
  • the first host OS 251 can restore the data of the HOS_VCM 230 in the power-off state by restoring the data stored in the HOS_NVCM 710 in the order of entries of the HOS_VCM HPA space allocation information 250 to the HOS_VCM 230. . Also, the first host OS 251 can restore the data of the GOS_VCM 420 in the power-off state by restoring the data stored in the GOS_NVCM 720 to the GOS_VCM 420 in the order of entry of the GOS_VCM HPA space layout information 600.
  • this invention is not limited to the above-mentioned Example, Various modifications are included. Further, for example, the above-described embodiments are described in detail for easy understanding of the present invention, and are not necessarily limited to those provided with all the described configurations. Further, a part of the configuration of each embodiment can be added to, deleted from, or replaced with another configuration.
  • each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • the present invention can also be realized by software program codes that implement the functions of the embodiments.
  • a storage medium in which the program code is recorded is provided to the computer, and a processor included in the computer reads the program code stored in the storage medium.
  • the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing it constitute the present invention.
  • Examples of storage media for supplying such program codes include flexible disks, CD-ROMs, DVD-ROMs, hard disks, SSDs (Solid State Drives), optical disks, magneto-optical disks, CD-Rs, magnetic tapes, A non-volatile memory card, ROM, or the like is used.
  • program code for realizing the functions described in this embodiment can be implemented by a wide range of programs or script languages such as assembler, C / C ++, perl, shell, PHP, Java, and the like.
  • a storage means such as a hard disk or memory of a computer or a storage medium such as a CD-RW or CD-R.
  • a processor included in the computer may read and execute the program code stored in the storage unit or the storage medium.
  • control lines and information lines indicate those that are considered necessary for the explanation, and do not necessarily indicate all the control lines and information lines on the product. All the components may be connected to each other.

Abstract

 複数のオペレーティングシステムが稼働する計算機であって、複数のオペレーティングシステムは、第1のオペレーティングシステムと、複数の仮想計算機を生成する第2のオペレーティングシステムとを含み、第1のオペレーティングシステムは第1の論理リソース上で稼働し、第2のオペレーティングシステムは第2の論理リソース上で稼働し、仮想計算機では第3のオペレーティングシステムが稼動し、第3のオペレーティングシステムは、仮想メモリにキャッシュメモリ領域を確保し、第2のオペレーティングシステムは、第2のオペレーティングシステムが管理する物理アドレス空間における第2のキャッシュメモリ領域の位置を示す配置情報を生成し、第1のオペレーティングシステムは、配置情報に基づいて、キャッシュ領域に格納されるデータを取得する。

Description

計算機
 本発明は、マルチOS技術および仮想マシン技術が適用された計算機におけるキャッシュデータのバックアップ技術およびリストア技術に関する。
 クライアント装置が、Ethernet等で構成されたLANで接続されたファイルサーバ、データベースサーバ、等のサーバ装置とデータのリード/ライトを行い、かつ、サーバ装置がバックエンドとして、Fibre Channel等で構成されたSANで接続されたストレージ装置とデータのリード/ライトを行うシステムにおいて、ストレージ装置と各サーバ装置には、一般に、システムパフォーマンスの向上等の観点から、キャッシュメモリが搭載されている。キャッシュメモリは、典型的には、DRAM等の揮発性メモリから構成される、システムメモリ上に配置する。例えば、大容量のHDDを搭載した大規模なストレージ装置は、数~数十ギガバイトオーダの大容量のキャッシュメモリを実装し、その稼動中、そこにアプリケーションデータをキャッシュしながら、フロントエンド装置に対するI/Oアクセス要求に応答する。
 このような装置は、キャッシュメモリ上の膨大な量のデータが消失することを防止するため、不意の電源遮断時には二次電源であるバッテリから電源を一時的に供給し、HDDよりも高速にアクセス可能なSSD等のNVRAM(不揮発性メモリ)にバックアップする。さらに、マルチプロセッサで構成されている装置の場合、バッテリ動作中の消費電力を抑えるため、1つのプロセッサだけに給電し、そのプロセッサだけがキャッシュメモリのバックアップ動作をする、といった工夫がされている。
 また、近年、物理計算機上のハードウェアリソースを有効に活用するために、一台の物理計算機上で二つ以上のOS(オペレーティングシステム)を起動する技術が注目されている(例えば、特許文献1および特許文献2参照)。
 特許文献1には、「マルチオペレーティングシステム計算機は、優先度が設定された複数のタスクを優先度順に実行する第1のOS(オペレーティングシステム)と、前記第1のOSと異なる第2のOSとを動作OSとして交互に動作させるマルチオペレーティングシステム計算機であって、前記第1のOSが動作OSとして動作しているときに前記複数のタスクのうち所定の優先度が設定された所定のタスクであって動作OSの切替え契機を特定するための切替え契機タスクとして用いられるタスクが実行された場合に、動作OSを前記第1のOSから前記第2のOSに切り替えるOS切替え部」を備えることが記載されている。
 また、特許文献2には、「第1のOSと第2のOSとの少なくとも2つのOSを起動するマルチOS起動装置において、(1)メモリ領域を有し、前記メモリ領域に対してメモリ空間が定義される1次記憶部と、(2)セカンドブートローダと、前記第2のOSとを記憶する2次記憶部と、(3)CPUに対する制御情報を示すコンテキストであって前記第1のOS用のコンテキストである第1のコンテキストで動作する前記第1のOSのもとで動作するファーストブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで動作させることにより、前記第1のOSが管理する第1のメモリ空間として前記第1のコンテキストにより前記1次記憶装置に対して定義された前記1次記憶部のメモリ領域に前記2次記憶部から前記セカンドブートローダと前記第2のOSとを前記ファーストブートローダにロードさせるOS実行部と、(4)前記第1のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第1のコンテキストで動作中の前記第1のOSのもとで実行することにより前記第2のOSが管理する第2のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第2のOSがロードされたメモリ領域とを含む第3のメモリ空間を前記1次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第1のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第3のメモリ空間に含まれる前記第2のメモリ空間として定義された前記1次記憶部のメモリ領域に前記ファーストブートローダによって前記1次記憶部のメモリ領域にロードされた前記第2のOSを前記セカンドブートローダにロードさせると共に前記第2のOS用のコンテキストを生成させ、生成された前記第2のOS用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第2のOS用のコンテキストのもとで前記セカンドブートローダに前記第2のOSの起動を実行させるローダ実行部と」を備えることが記載されている。
 このマルチOS技術を利用し、第1のOS(第1のホストOS)としてストレージ制御OSを搭載し、第2のOS(第2のホストOS)として仮想マシンモニタ(VMM)を搭載し、さらに仮想マシンモニタ上の複数の仮想マシン(VM1~VMn)上のOS(ゲストOS1~ゲストOSn)としてサーバ制御OSを搭載することで、省スペース化・低価格化が期待できる。また、従来SANを介して行っていたI/Oデータのリード/ライトを、ホストOS1-ゲストOS間共有メモリを介して行うようにすることで、I/Oデータのリード/ライト性能の向上も期待できる。
特開平11-149385号公報 国際公開第2009/113394号
 マルチOS技術および仮想マシン技術を用いて、一つのハードウェア(計算機)上に複数のホストOSを搭載し、かつ、少なくとも一つのホストOS上に複数のゲストOSが稼動する計算機システムにおいて、不意の電源遮断が発生した場合に、消費電力を抑え、かつ、ホストOSおよびゲストOSに関連するデータをNVRAM等にバックアップできる方法が必要である。
 例えば、一つの計算機上に、第1のホストOS(ストレージ制御OS)、および、複数のゲストOS(サーバ制御OS)が稼動する第2のホストOS(VMM)を搭載した計算機システムにおいて、以下のような要求に応える必要がある。すなわち、計算機システムにおいて、不意の電源遮断が発生した場合、第1のホストOSが使用する一つのプロセッサだけを用いて、第1のホストOS自身に割り当てられたキャッシュメモリに格納されるデータに加え、各ゲストOSに割り当てられたキャッシュメモリに格納されるデータも含めてNVRAMにバックアップしたいとの要求が考えられる。
 (1)しかし、各ゲストOSは第2のホストOSによって管理されているため、第1のホストOSは、各ゲストOSに割り当てられるキャッシュメモリが物理アドレス空間のどこに配置されているかを把握できない。そのため、従来技術では、第1のホストOSが、各ゲストOSに割り当てられたキャッシュメモリのデータをNVRAM等にバックアップすることができない。
 (2)また、電源の遮断状態から復旧して、計算機システムの再起動後に、第1のホストOSは、各ゲストOSに割り当てられたキャッシュメモリに、NVRAMにバックアップされたデータをリストアする必要がある。しかし、計算機システムの再起動後、物理アドレス空間における、各ゲストOSに割り当てられるキャッシュメモリの配置は、再起動前の配置とは異なっている可能性がある。そのため、第1のホストOSは、各ゲストOSに割り当てられたキャッシュメモリの配置を把握できないため、各ゲストOSのバックアップデータを適切にリストアすることができない。
 本発明は、複数のホストOSを搭載し、少なくとも一つのホストOS上に複数のゲストOSが稼動する計算機システムにおいて、一つのホストOSが、当該ホストOSのキャッシュメモリに格納されるデータ、および他のホストOS上で稼動する各ゲストOSに割り当てられたキャッシュメモリに格納されるデータをバックアップするための方法を提供することを目的とする。
 また、本発明は、各ゲストOSに割り当てられたキャッシュメモリの物理アドレス空間における配置が再起動の前後で変化する場合であっても、各ゲストOSのバックアップデータを適切にリストアするための方法を提供することを目的とする。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数のオペレーティングシステムが稼働する計算機であって、前記計算機は、物理リソースとして、プロセッサ、前記プロセッサに接続される揮発性メモリ、前記プロセッサに接続される不揮発性メモリ、および前記プロセッサに接続されるI/Oデバイスを備え、前記複数のオペレーティングシステムは、第1のオペレーティングシステムと、複数の仮想計算機を生成する第2のオペレーティングシステムと、を含み、前記第1のオペレーティングシステムは、前記プロセッサが論理的に分割された第1の論理プロセッサ、前記揮発性メモリが論理的に分割された第1の論理揮発性メモリ、および前記I/Oデバイスが論理的に分割された第1論理I/Oデバイスを含む第1の論理リソース上で稼働し、前記計算機の電源の遮断を検出する電源遮断検出部を有し、前記第2のオペレーティングシステムは、前記プロセッサが論理的に分割された第2のプロセッサ、前記揮発性メモリが論理的に分割された第2の論理揮発性メモリ、前記I/Oデバイスが論理的に分割された第2のI/Oデバイスを含む第2の論理リソース上で稼働し、前記複数の仮想計算機の各々では、第3のオペレーティングシステムが稼動し、前記第1のオペレーティングシステムは、当該第1のオペレーティングシステムの起動時に、前記第1の論理揮発性メモリに、一時的にデータを格納する第1のキャッシュメモリ領域を確保し、前記第1のオペレーティングシステムが管理する前記第1の論理揮発性メモリの物理アドレス空間における前記第1のキャッシュメモリ領域の位置を示す第1の配置情報を生成し、前記第2のオペレーティングシステムは、少なくとも一つの仮想計算機を生成して、前記少なくとも一つの仮想計算機上で前記第3のオペレーティングシステムを起動し、前記第3のオペレーティングシステムは、前記少なくとも一つの仮想計算機に割り当てられた仮想メモリに、第2のキャッシュメモリ領域を確保し、前記第2のオペレーティングシステムは、当該第2のオペレーティングシステムが管理する前記第2の論理揮発性メモリの物理アドレス空間における前記第2のキャッシュメモリ領域の位置を示す第2の配置情報を生成し、前記第1のオペレーティングシステムは、前記計算機の電源の遮断が検出された場合に、前記第1の配置情報に基づいて、前記第1のキャッシュメモリ領域に格納される第1のデータを取得し、前記第1のデータを前記不揮発性メモリに格納し、前記第2の配置情報を取得し、前記第2の配置情報に基づいて、前記第2のキャッシュメモリ領域に格納される第2のデータを前記第2の論理揮発性メモリから取得し、前記第2のデータを前記不揮発性メモリに格納することを特徴とする。
 本発明によれば、第1のオペレーティングシステムは、電源の遮断が検出された場合に、アドレス変換処理等を実行することなく、第1のオペレーティングシステムのキャッシュデータおよび第3のオペレーティングシステムのキャッシュデータを素早くバックアップすることができる。
 前述した以外の課題、構成および効果は、以下の実施形態の説明によって明らかにされる。
本発明の概要を説明するブロック図である。 本発明の実施例1の計算機システムの物理ハードウェア構成の一例を示す説明図である。 本発明の実施例1の計算機システムの論理構成の一例を示す説明図である。 本発明の実施例1のVRAMに格納される情報を示す説明図である。 本発明の実施例1のNVRAMに格納される情報を示す説明図である。 本発明の実施例1のGPA-HPAマッピング情報の一例を示す説明図である。 本発明の実施例1のGVA-GPAマッピング情報の一例を示す説明図である。 本発明の実施例1のGOS_VCM GPA空間配置情報の一例を示す説明図である。 本発明の実施例1のGOS_VCM HPA空間配置情報の一例を示す説明図である。 本発明の実施例1のNVCM NVA管理情報の一例を示す説明図である。 本発明の実施例1の計算機システムの起動処理の概要を説明するフローチャートである。 本発明の実施例1の第1のホストOSの起動処理の詳細を説明するフローチャートである。 本発明の実施例1の第2のホストOSの起動処理の詳細を説明するフローチャートである。 本発明の実施例1のゲストOSの起動処理の一例を説明するフローチャートである。 本発明の実施例1におけるGOS_VCMのGVA空間における配置、GPA空間における配置、およびHPA空間における配置の一例を示す説明図である。 本発明の実施例1のバックアップ処理の一例を説明するフローチャートである。 本発明の実施例1の第1のホストOSのリストア処理を説明するフローチャートである。 本発明の実施例1のゲストOSのリストア処理を説明するフローチャートである。 本発明の実施例1のゲストOSのリストア処理を説明するフローチャートである。 本発明の実施例1のゲストOSのリストア処理を説明するフローチャートである。 本発明の実施例1におけるGOS_VCMのGVA空間における配置、GPA空間における配置、およびHPA空間における配置の一例を示す説明図である。
 以下、図面を用いて実施例について説明する。まず、図1を用いて本発明の概要について説明する。
 図1は、本発明の概要を説明するブロック図である。ここでは、物理計算機10および外部ストレージ装置20から構成される計算機システムを例に本発明の概要について説明する。
 物理計算機10は、第1のホストOS251および第2のホストOS252の二つのホストOSを搭載する。後述するように、第1のホストOS251および第2のホストOS252のそれぞれには、物理計算機10が備えるハードウェアリソースが論理的に分割されたリソース(分割ハードウェアリソース)が割り当てられる。図1では、第1のホストOS251には、第1の分割VRAM221、NVRAM130、および電源部150が分割ハードウェアリソースとして割り当てられる。
 図1に示す例では、第1のホストOS251は、外部ストレージ装置20に対するデータリード処理およびデータライト処理を制御するストレージ制御OSであり、第2のホストOS252は、複数の仮想計算機を制御するVMM(Virtual Machine Monitor)であるものとする。VMMは、複数のVM(Virtual Machine)を生成し、生成されたVM上にゲストOS400を稼動させる。
 前述したようなシステム構成では、データリードおよびデータライトの性能を向上させるために、第1のホストOS251に割り当てられた第1の分割VRAM221の一部の記憶領域をHOS_VCM(ホストOS用の揮発性キャッシュメモリ)230として確保する。また、ゲストOS400として、例えば、ファイルサーバ、データベースサーバ等のサーバ制御OSを稼動させる場合、データリードおよびデータライトの性能を向上させるために、ゲストOS400に割り当てられた仮想VRAM410の一部の記憶領域をGOS_VCM(ゲストOS用の揮発性キャッシュメモリ)420として確保する。
 本発明では、電源部150によって電源の遮断が検出された場合、第1のホストOS251が、HOS_VCM230に格納されるデータをHOS_NVCM(ホストOS用の不揮発性キャッシュメモリ)710としてNVRAM130にバックアップする。また、第1のホストOS251は、物理アドレス空間におけるGOS_VCM420のアドレスを特定し、GOS_VCM420に格納されるデータをGOS_NVCM720(ゲストOS用の不揮発性キャッシュメモリ)にバックアップする。
 また、本発明では、物理計算機10における電源の障害が復旧し、物理計算機10が再起動する場合に、第1のホストOS251は、新たに確保されたHOS_VCM230に、HOS_NVCM710に格納されるデータをリストアする。また、第1のホストOS251は、第2のホストOS252およびゲストOS400と連携して、新たに割り当てられた仮想VRAM410上のGOS_VCM420に、GOS_NVCM720に格納されるデータをリストアする。
 図2は、本発明の実施例1の計算機システムの物理ハードウェア構成の一例を示す説明図である。
 本実施例の計算機システムは、物理計算機10、および外部ストレージ装置20から構成される。物理計算機10は、外部ストレージ装置20と直接、または、ネットワークを介して接続される。ネットワークとしては、FC(Fibre Channel)で構成されたSAN等が考えられる。なお、物理計算機10は、装置内部にストレージ装置を備えていてもよい。
 物理計算機10は、プロセッサ110、VRAM(Volatile Random Access Memory)120、NVRAM(Non-Volatile Random Access Memory)130、I/Oデバイス140、および電源部150を備える。
 プロセッサ110は、VRAM120に格納されるプログラムを実行する。プロセッサ110は、複数のCPUコア111を有する。プロセッサ110がプログラムを実行することによって、OS等の機能が実現される。以下、プロセッサ110を主体に処理を説明する場合、当該プログラムがプロセッサ110によって実行されていることを示す。
 VRAM120は、揮発性の記憶素子から構成される記憶媒体である。VRAM120は、プロセッサ110によって実行されるプログラムおよび当該プログラムの実行に必要な情報を格納する。また、VRAM120は、各プログラムのワークエリアを含む。
 NVRAM130は、不揮発性の記憶素子から構成される記憶媒体である。NVRAM130は、物理計算機10内で動作する各種ファームウェアのプログラムコード等を格納する。また、NVRAM130は、不意に電源の遮断が発生した場合に、一時的にデータを格納するための記憶領域も含む。なお、NVRAM130の記憶容量は、外部ストレージ装置より小さいが、物理計算機10から高速にアクセスが可能である。NVRAM130は、例えば、SSD(Solid State Drive)等の記憶媒体が考えられる。本実施例では、不揮発性の記憶媒体としてNVRAM130を用いているが、その他の不揮発性の記憶媒体を用いてもよい。
 I/Oデバイス140は、外部装置と接続することによって、外部から情報を入力し、外部に情報を出力するためのデバイスである。I/Oデバイス140は、例えば、NIC、FC HBA等が考えられる。図2には、I/Oデバイス140として、四つのNIC141、および四つのFC HBA142を示している。なお、一つのNIC141または一つのFC HBA142が一つのI/Oデバイス140に対応する。
 電源部150は、物理計算機10の電源を制御する。電源部150は、電源遮断検出部151およびバッテリ電源152を有する。電源遮断検出部151は、不意の電源の遮断を監視し、電源の遮断が検出された場合に、バッテリ電源152から給電するように制御する。
 外部ストレージ装置20は、OSのプログラム、OS上で動作する各種アプリケーションのプログラムコード、およびアプリケーションが扱うデータ等を格納する。また、外部ストレージ装置20は、OSがページインおよびページアウトをサポートするものである場合、VRAM120に格納されるデータを一時的な退避するための記憶領域を提供する。外部ストレージ装置20は、複数の記憶媒体を備える。記憶媒体は、例えば、HDD(Hard Disk Drive)等の記憶媒体が考えられる。図2では、外部ストレージ装置20は、記憶媒体として四つのHDD190を備える。
 なお、物理計算機10は、複数のストレージ装置、およびコントローラを備えるストレージシステムと接続されてもよい。
 図3は、本発明の実施例1の計算機システムの論理構成の一例を示す説明図である。
 本実施例の計算機システムでは、マルチOS技術を用いて、物理計算機10のハードウェアが、第1の分割H/W(ハードウェア)201、第2の分割H/W(ハードウェア)202、および共有H/W(ハードウェア)203の三つに論理に分割される。
 第1の分割H/W201上では第1のホストOS251が起動され、第2の分割H/W202上で第2のホストOS252が起動される。第1の分割H/W201は第1のホストOS251によって占有的に使用され、第2の分割H/W202は第2のホストOS252によって占有的に使用される。
 第1の分割H/W201は、第1の分割プロセッサ211、第1の分割VRAM221、NVRAM130、第1の分割I/Oデバイス241、および電源部150を含む。
 第1の分割プロセッサ211は、プロセッサ110が有する四つのCPUコア111のうち、二つのCPUコア111が割り当てられた論理的なプロセッサである。第1の分割VRAM221は、VRAM120の一部の記憶領域が割り当てられた論理的なVRAMである。図2に示すように、第1の分割VRAM221の一部の記憶領域は、HOS_VCM230として確保される。
 第1の分割プロセッサ211に割り当てられたCPUコア111および第1の分割VRAM221に割り当てられた記憶領域は、第2の分割H/W202上で稼動する第2のホストOS252から使用されないように制御される。例えば、第1の分割VRAM221に割り当てられた記憶領域は、第2のホストOS252のHVA(ホスト仮想アドレス)空間にはマップされない。
 また、物理計算機10が備える一部のI/Oデバイス140が第1の分割I/Oデバイス241として割り当てられる。また、NVRAM130および電源部150は、第1の分割H/W201が占有するように割り当てられる。
 第2の分割H/W202は、第2の分割プロセッサ212、第2の分割VRAM222、および第2の分割I/Oデバイス242を含む。
 第2の分割プロセッサ212は、プロセッサ110が有する四つのCPUコア111のうち、二つのCPUコア111が割り当てられた論理的なプロセッサである。第2の分割VRAM222は、VRAM120の一部の記憶領域が割り当てられた論理的なVRAMである。また、物理計算機10が備える一部のI/Oデバイス140が第2の分割I/Oデバイス242として割り当てられる。
 共有H/W203は、第1のホストOS251および第2のホストOS252のいずれもが使用可能なハードウェアである。本実施例では、共有H/W203は、VRAM120の一部の記憶領域が割り当てられた共有VRAM223を含む。共有VRAM223に割り当てられた記憶領域は、第1のホストOS251のHVA空間および第2のホストOS252のHVA空間のそれぞれにマップされる。すなわち、第1のホストOS251および第2のホストOS252のそれぞれが、共有VRAM223にアクセスすることができる。
 本実施例の第1のホストOS251は、ストレージ制御OSに対応する。ストレージ制御OSは、外部ストレージ装置20に対するデータリード処理およびデータライト処理を制御する。
 第1のホストOS251は、一般的なOSが有するメモリのアドレス空間を管理する機能を有しており、第1の分割VRAM221のHPA(ホスト物理アドレス)空間とHVA空間との間のマッピングを管理する。ここで、第1の分割VRAM221のHPA空間は、第1のホストOS251が管理する第1の分割VRAMの物理的な位置を示すアドレス空間であり、第1の分割VRAM221のHVA空間は、第1のホストOS251によってアプリケーション等に割り当てられる仮想的なメモリの位置を示すアドレス空間である。
 また、本実施例では、第1のホストOS251は、VCMとNVCMとの間のバックアップ処理およびリストア処理を実行する。以下の説明では、VCMとNVCMとの間のバックアップ処理およびリストア処理を、単に、バックアップ処理およびリストア処理とも記載する。
 本実施例の第2のホストOS252は、VMMに対応する。VMMは、仮想マシン技術を用いて、第2の分割H/W202の一部を割り当てることによって複数のVM300を生成し、生成された各VM300上でゲストOS400を稼動させる。
 VMMは、VM300に割り当てられた仮想VRAM410のGPA(ゲスト物理アドレス)空間と、第2の分割VRAM222のHPA空間との間のマッピングを管理する。ここで、仮想VRAM410のGPA空間は、ゲストOS400によって管理される仮想VRAM410の物理的な位置を示すアドレス空間であり、第2の分割VRAM222のHPA空間は、第2のホストOS252によって管理される第2の分割VRAM222の物理的な位置を示すアドレス空間である。
 ゲストOS400が稼動するVM300には、仮想VRAM410が割り当てられる。また、ゲストOS400には、図示しない仮想プロセッサおよび仮想I/Oデバイス等が割り当てられる。
 ゲストOS400は、仮想VRAM410を物理的なVRAMとして認識する。ゲストOS400は、一般的なOSが有するメモリのアドレス空間を管理する機能を有しており、仮想VRAM410のGPA空間とGVA(ゲスト仮想アドレス)空間との間のマッピングを管理する。ここで、仮想VRAM410のGVA空間は、ゲストOS400によってアプリケーション等に割り当てられる仮想的なメモリの位置を示すアドレス空間である。
 図4Aは、本発明の実施例1のVRAM120に格納される情報を示す説明図である。図4Bは、本発明の実施例1のNVRAM130に格納される情報を示す説明図である。ここでは、バックアップ処理およびリストア処理に必要な情報を中心に説明する。
 VRAM120の物理アドレス空間は、第1の分割VRAM221に割り当てられる記憶領域、第2の分割VRAM222に割り当てられる記憶領域、および共有VRAM223に割り当てられる記憶領域の三つの記憶領域に論理的に分割される。なお、図4Aでは、VRAM120の物理アドレス空間が、アドレスが連続するように三つの記憶領域に分割されているが、分割方法はこれに限定されない。
 第1の分割VRAM221は、第1のホストOS251によって管理される。第1のホストOS251は、第1の分割VRAM221の一部の記憶領域を、HOS_VCM230として確保する。第1の分割VRAM221には、バックアップ処理およびリストア処理に必要な情報として、HVA-HPAマッピング情報240およびHOS_VCM HPA空間配置情報250が格納される。
 HVA-HPAマッピング情報240は、第1のホストOS251が管理するHPA空間とHVA空間との間のマッピングを管理する情報である。HVA-HPAマッピング情報240は、第1のホストOS251によって生成される。HVA-HPAマッピング情報240は、一般的には、ページテーブルと呼ばれるものに対応する。ここで、HPAは、第1の分割VRAM221の物理的なアドレスである。HVAは、第1のホストOS251および第1のホストOS251上で動作するアプリケーションが使用する仮想的なアドレスである。
 HOS_VCM HPA空間配置情報250は、第1のホストOS251が管理するHPA空間におけるHOS_VCM230の配置を示す情報である。HOS_VCM HPA空間配置情報250は、第1のホストOS251によって生成される。HOS_VCM230には、通常、物理アドレスが不連続な複数の記憶領域が割り当てられる。そのため、HOS_VCM HPA空間配置情報250は、HOS_VCM230に割り当てられた一つの記憶領域の物理的な先頭アドレス、およびサイズが対応付けられたエントリを複数含む。
 第2のホストOS252は、第2のホストOS252自身を第2の分割VRAM222の一部の記憶領域に配置する。また、第2のホストOS252は、第2の分割VRAM222の一部を仮想VRAM410としてVM300に割り当てる。
 第2のホストOS252が配置される記憶領域には、バックアップ処理およびリストア処理に必要な情報として、GPA-HPAマッピング情報500が格納される。
 GPA-HPAマッピング情報500は、ゲストOS400が管理するGPA空間と第2のホストOS252が管理するHPA空間との間のマッピングを管理する情報である。GPA-HPAマッピング情報500は、第2のホストOS252によって生成される。第2のホストOS252(VMM)がIntel VT-xテクノロジを利用する場合、GPA-HPAマッピング情報500は、EPT(拡張ページテーブル)と呼ばれるものに対応する。ここで、GPAは、VM300が物理的なVRAMとして認識する仮想VRAM410の物理的なアドレスである。GPA-HPAマッピング情報500については、図5を用いて後述する。
 仮想VRAM410の一部の記憶領域は、GOS_VCM420として確保される。また、仮想VRAM410は、バックアップ処理およびリストア処理に必要な情報として、GVA-GPAマッピング情報430およびGOS_VCM GPA空間配置情報440を格納する。
 GVA-GPAマッピング情報430は、ゲストOS400が管理するGVA空間とGPA空間との間のマッピングを管理する情報である。GVA-GPAマッピング情報430は、ゲストOS400によって生成される。GVA-GPAマッピング情報430は、HVA-HPAマッピング情報240と同様、一般的に、ページテーブルと呼ばれるものである。ここで、GVAは、ゲストOS400およびゲストOS400上で動作するアプリケーションが使用する仮想的なアドレスである。GVA-GPAマッピング情報430については、図6を用いて後述する。
 GOS_VCM GPA空間配置情報440は、ゲストOS400が管理するGPA空間におけるGOS_VCM420の配置を示す情報である。GOS_VCM GPA空間配置情報440は、ゲストOS400によって生成される。GOS_VCM GPA空間配置情報440については、図7を用いて後述する。
 共有VRAM223は、バックアップ処理およびリストア処理に必要な情報として、GOS_VCM HPA空間配置情報600を格納する。GOS_VCM HPA空間配置情報600は、第2のホストOS252が管理するHPA空間におけるGOS_VCM420の配置を示す情報である。GOS_VCM HPA空間配置情報600は、第2のホストOS252によって生成される。GOS_VCM HPA空間配置情報600については、図8を用いて後述する。
 NVRAM130の一部の記憶領域は、HOS_NVCM710およびGOS_NVCM720として確保される。また、NVRAM130は、バックアップ処理およびリストア処理に必要な情報としてNVCM NVA管理情報700を格納する。
 NVCM NVA管理情報700は、HOS_NVCM710およびGOS_NVCM720として確保された記憶領域のNVRAM130のアドレス(NVA)を管理する情報である。NVCM NVA管理情報700については、図9を用いて後述する。
 図5は、本発明の実施例1のGPA-HPAマッピング情報500の一例を示す説明図である。
 GPA-HPAマッピング情報500には、ゲストOS400によって管理されるGPA空間における一つの記憶領域(例えばページ)に対して一つのエントリが登録される。GPA-HPAマッピング情報500に登録されるエントリは、GPA501、HPA502、およびサイズ503を含む。
 GPA501は、GPA空間における一つの記憶領域の先頭アドレスである。HPA502は、GPA501に対応する記憶領域に割り当てられる、HPA空間における一つの記憶領域の先頭アドレスである。サイズ503は、GPA501に対応する一つの記憶領域の大きさである。
 図6は、本発明の実施例1のGVA-GPAマッピング情報430の一例を示す説明図である。
 GVA-GPAマッピング情報430には、ゲストOS400によって管理されるGVA空間における一つの記憶領域(例えばページ)に対して一つのエントリが登録される。GVA-GPAマッピング情報430に登録されるエントリは、GVA431、GPA432、およびサイズ433を含む。
 GVA431は、GVA空間における一つの記憶領域の先頭アドレスである。GPA432は、GVA431に対応する記憶領域に割り当てられる、GPA空間における一つの記憶領域の先頭アドレスである。サイズ433は、GVA431に対応する一つの記憶領域の大きさである。
 図7は、本発明の実施例1のGOS_VCM GPA空間配置情報440の一例を示す説明図である。
 GOS_VCM GPA空間配置情報440には、GOS_VCM420を構成する一つの記憶領域群(例えばブロック)に対して一つのエントリが登録される。ここで、記憶領域群は、アドレスが連続する複数の記憶領域(ページ)を示す。GOS_VCM GPA空間配置情報440に登録されるエントリは、ID441、GPA442、およびサイズ443を含む。
 ID441は、GOS_VCM GPA空間配置情報440に登録されるエントリを一意に識別するための識別子である。GPA442は、ゲストOS400によって管理されるGPA空間におけるGOS_VCM420を構成する一つの記憶領域群の先頭アドレスである。サイズ443は、GPA442に対応する一つの記憶領域群の大きさである。
 図8は、本発明の実施例1のGOS_VCM HPA空間配置情報600の一例を示す説明図である。
 GOS_VCM HPA空間配置情報600には、GOS_VCM420を構成する一つの記憶領域群(例えばブロック)に対して一つのエントリが登録される。GOS_VCM HPA空間配置情報600は、ID601、HPA602、およびサイズ603を含む。
 ID601は、GOS_VCM HPA空間配置情報600に登録されるエントリを一意に識別するための識別子である。HPA602は、VMMによって管理されるHPA空間におけるGOS_VCM420を構成する一つの記憶領域群の先頭アドレスである。サイズ603は、HPA602に対応する一つの記憶領域群の大きさである。
 図9は、本発明の実施例1のNVCM NVA管理情報700の一例を示す説明図である。
 NVCM NVA管理情報700には、HOS_NVCM710、また、GOS_NVCM720毎に一つのエントリが登録される。NVCM NVA管理情報700に登録されるエントリは、OS_ID701、NVA702、およびサイズ703を含む。
 OS_ID701は、NVCM NVA管理情報700に登録されるエントリを一意に識別するための識別子である。NVA702は、HOS_NVCM710またはGOS_NVCM720に対応する記憶領域の先頭アドレスである。サイズ703は、NVA702に対応する記憶領域の大きさである。
 図10は、本発明の実施例1の計算機システムの起動処理の概要を説明するフローチャートである。
 物理計算機10に電源が投入されると、まず、第1のホストOS251の起動処理が開始される(ステップS100)。具体的には、以下のような処理が実行される。
 電源投入後、一つのCPUコア111が、外部ストレージ装置20等からブートローダを読み出し、第1の分割VRAM221にブートローダをロードする。さらに、CPUコア111は、ロードされたブートローダを実行する。
 ブートローダは、予め設定されたリソース定義情報(図示省略)に基づいて、VRAM120に共有VRAM223を設定し、共有VRAM223にリソース定義情報を書き込む。
 ブートローダは、リソース定義情報に基づいて、第1の分割VRAM221に第1のホストOS251のイメージを書き込み、第1のホストOS251を起動する。以下、第1のホストOS251は、リソース定義情報に基づいて、第1の分割H/W201を用いて起動する。第1のホストOS251の起動処理の詳細については、図11を用いて後述する。
 なお、第1のホストOS251の起動方法はこれに限定されず、他の公知の方法を用いて起動してもよい。以上が、ステップS100の処理の説明である。
 次に、第1のホストOS251は、電源遮断後の再起動処理であるか否かを判定する(ステップS101)。
 例えば、電源部150が、電源遮断を検出した場合に、電源遮断が検出されたことを示す情報をNVRAM130に設定する方法等が考えられる。この場合、第1のホストOS251は、NVRAM130に当該情報が設定されているか否かを判定する。なお、前述した判定方法は一例であって、これに限定されない。例えば、第1のホストOS251は、NVRAM130のHOS_NVCM710にバックアップデータが格納されている場合、電源遮断後の再起動処理であると判定する方法も考えられる。
 電源遮断後の再起動処理でないと判定された場合、第1のホストOS251は、第2のホストOS252の起動処理を開始する(ステップS102)。
 具体的には、第1のホストOS251は、リソース定義情報に基づいて、第2の分割VRAM222に第2のホストOS252のイメージを書き込み、起動させる。以下、第2のホストOS252は、リソース定義情報に基づいて、第2の分割H/W202を用いて起動する。第2のホストOS252の起動処理の詳細については、図12を用いて後述する。
 次に、第2のホストOS252は、ゲストOS400の起動処理を開始する(ステップS103)。ゲストOS400の起動処理の詳細については、図13を用いて後述する。
 その後、第1のホストOS251は、ゲストOS400の起動処理が完了した後、通常の業務を実行すると共に、電源の監視処理を開始する。第1のホストOS251は、電源遮断を検出したか否かを判定する(ステップS109)。
 電源遮断が検出されない場合、第1のホストOS251は、電源の監視処理を継続する。一方、電源遮断が検出された場合、第1のホストOS251は、バックアップ処理を開始する(ステップS110)。第1のホストOS251は、バックアップ処理が完了した後、物理計算機10への給電を停止する。バックアップ処理の詳細については、図15を用いて後述する。
 ステップS101において、電源遮断後の再起動処理であると判定された場合、第1のホストOS251は、第1のホストOS251のリストア処理を実行する(ステップS105)。
 具体的には、第1のホストOS251は、NVCM NVA管理情報700及び新たに生成されたHOS_VCM HPA空間配置情報250に基づいて、第1の分割VRAM221に、HOS_NVCM710に格納されるデータをリストアする。なお、第1のホストOS251のリストア処理については、図16を用いて後述する。
 次に、第1のホストOS251は、第2のホストOS252の起動処理を開始する(ステップS106)。ステップS106の処理はステップS102の処理と同一の処理である。
 次に、第2のホストOS252は、ゲストOS400の起動処理を実行する(ステップS107)。ステップS107の処理は、ステップS103の処理と同一の処理である。
 ゲストOS400は、ゲストOS400が再起動したことを検知し、第1のホストOS251および第2のホストOS252と連携してゲストOS400のリストア処理を実行する(ステップS108)。その後、第1のホストOS251は、ゲストOS400のリストア処理が完了した後、通常の業務を実行すると共に、電源の監視処理を開始する。第1のホストOS251は、電源遮断を検出したか否かを判定する(ステップS109)。ステップS109以下の処理はすでに説明したため省略する。
 ゲストOS400のリストア処理では、仮想VRAM410にGOS_NVCM720に格納されたデータがリストアされる。ゲストOS400のリストア処理については、図17A、図17Bおよび図17Cを用いて後述する。
 なお、ゲストOS400が再起動したことを検知する方法としては、以下のような方法が考えられる。ゲストOS400は、起動後、GOS_NVCM720にアクセスし、当該GOS_NVCM720にデータが格納されているか否かを判定する。GOS_NVCM720にデータが格納されている場合、ゲストOS400は、ゲストOS400が再起動したと判定する。
 他の方法としては、ゲストOS400が、シャットダウン時に原因を特定するログを取得し、起動後に当該ログに基づいて、ゲストOS400が再起動したか否かを判定する。また、他の方法としては、第2のホストOS252が、ゲストOS400の起動処理において、ゲストOS400を起動させた後に、ゲストOS400が再起動した旨を通知する方法も考えられる。なお、前述した判定方法は一例であって、本発明はこれに限定されない。
 図11は、本発明の実施例1の第1のホストOS251の起動処理の詳細を説明するフローチャートである。第1のホストOS251は、第1の分割プロセッサ211を用いて第1のホストOS251の起動処理を実行する。
 第1のホストOS251は、HVA-HPAマッピング情報240を生成する(ステップS200)。HVA-HPAマッピング情報240の生成方法は公知のものであるため説明を省略する。
 第1のホストOS251は、第1の分割VRAM221上に、HOS_VCM用の記憶領域を確保する(ステップS201)。具体的には、第1のホストOS251は、HVA空間のアドレスが連続する記憶領域を、HOS_VCM用の記憶領域として確保する。
 第1のホストOS251は、ページインおよびページアウトが有効であるか否かを判定する(ステップS202)。
 ページインおよびページアウトが有効でないと判定された場合、第1のホストOS251は、ステップS204に進む。
 ページインおよびページアウトが有効であると判定された場合、第1のホストOS251は、HOS_VCM用に確保された記憶領域に格納されるデータが、スワップファイルとして追い出されないように、当該記憶領域をピン留めする(ステップS203)。
 第1のホストOS251は、HOS_VCM HPA空間配置情報250を生成し(ステップS204)、処理を終了する。具体的には、以下のような処理が実行される。
 第1のホストOS251は、HOS_VCM用に確保された記憶領域のHVAに基づいてHVA-HPAマッピング情報240を参照し、HOS_VCM用に確保された記憶領域を構成するHPA空間の複数の記憶領域群を特定する。
 第1のホストOS251は、HOS_VCM HPA空間配置情報250に特定された各記憶領域群に対応するエントリを追加する。また、第1のホストOS251は、各エントリに各記憶領域群の先頭アドレス(HPA)およびサイズを設定する。
 第1のホストOS251は、複数の記憶領域群の各々のHVAの順番にしたがって、HOS_VCM HPA空間配置情報250のエントリを並び替える。例えば、第1のホストOS251は、HVAの昇順または降順にエントリを並び替える。
 第1のホストOS251は、HOS_VCM HPA空間配置情報250の上のエントリから昇順にIDを付与する。これによって、GOS_VCM HPA空間配置情報600と同様の情報が生成される。以上がステップS204の処理の説明である。
 図12は、本発明の実施例1の第2のホストOS252の起動処理の詳細を説明するフローチャートである。第2のホストOS252は、第2の分割プロセッサ212を用いて第2のホストOS252の起動処理を実行する。
 第2のホストOS252は、まず、初期化処理を実行する(ステップS300)。VMMの初期化処理は、公知の処理であるためここでは省略する。第2のホストOS252は、初期化処理が完了した後、VM300を生成する(ステップS301)。VMの生成処理は公知の処理であるためここでは説明を省略する。
 第2のホストOS252は、生成されたVM300に対応するGPA-HPAマッピング情報500を生成する(ステップS302)。GPA-HPAマッピング情報500の生成処理は、公知の処理であるため説明を省略する。なお、第2のホストOS252は、VM300の識別情報と対応付けて、GPA-HPAマッピング情報500を管理する。
 第2のホストOS252は、VM300を起動する(ステップS303)。さらに、起動したVM300は、ゲストOS400の起動処理を開始する。ゲストOS400の起動処理については、図13を用いて後述する。
 第2のホストOS252は、ゲストOS400からGOS_VCM GPA空間配置情報440の格納場所を示す通知を受信したか否かを判定する(ステップS304)。
 ゲストOS400から通知を受信していないと判定された場合、第2のホストOS252は、ゲストOS400から通知を受信するまで待ち続ける。
 ゲストOS400から通知を受信したと判定された場合、第2のホストOS252は、VM300に対応するGOS_VCM HPA空間配置情報600を生成する(ステップS305)。具体的には、以下のような処理が実行される。
 第2のホストOS252は、ゲストOS400から受信した通知に含まれるGPAに基づいてGPA-HPAマッピング情報500を参照し、仮想VRAM410に格納されるGOS_VCM GPA空間配置情報440を読み出す。第2のホストOS252は、GOS_VCM GPA空間配置情報440から一つのエントリを選択する。ここでは、ID441が小さい順にエントリが選択されるものとする。
 第2のホストOS252は、選択されたエントリのGPA442に基づいて、GPA-HPAマッピング情報500を参照し、GPA501がGPA442と一致するエントリを検索する。すなわち、第2のホストOS252が管理するHPA空間における、GOS_VCM420を構成する記憶領域のアドレスが特定される。
 第2のホストOS252は、GOS_VCM HPA空間配置情報600にエントリを生成し、ID601に昇順の識別番号を設定する。また、第2のホストOS252は、生成されたエントリのHPA602に、検索されたエントリのHPA502に格納されるアドレスを設定し、さらに、サイズ603に、選択されたエントリのサイズ443に格納される値を設定する。
 以下、GOS_VCM GPA空間配置情報440の全てのエントリに対して同様の処理が実行される。これによって、VM300に対応するGOS_VCM HPA空間配置情報600が生成される。以上が、ステップS305の処理の説明である。
 次に、第2のホストOS252は、ゲストOS400からの通知に対する応答を当該ゲストOS400に送信し(ステップS306)、処理を終了する。なお、複数のゲストOS400を起動する場合、一つのゲストOS400に対して、ステップS301からステップS305までの処理が繰り返し実行される。
 図13は、本発明の実施例1のゲストOS400の起動処理の一例を説明するフローチャートである。
 ゲストOS400は、GVA-GPAマッピング情報430を生成する(ステップS400)。GVA-GPAマッピング情報430の生成方法は公知のものであるため説明を省略する。
 ゲストOS400は、仮想VRAM410上に、GOS_VCM用の記憶領域を確保する(ステップS401)。具体的には、ゲストOS400は、GVA空間のアドレスが連続する記憶領域を、GOS_VCM用の記憶領域として確保する。
 ゲストOS400は、ページインおよびページアウトが有効であるか否かを判定する(ステップS402)。
 ページインおよびページアウトが有効でないと判定された場合、ゲストOS400は、ステップS404に進む。
 ページインおよびページアウトが有効であると判定された場合、ゲストOS400は、GOS_VCM420用に確保された記憶領域に格納されるデータが、スワップファイルとして追い出されないように、当該記憶領域をピン留めする(ステップS403)。
 ゲストOS400は、GOS_VCM GPA空間配置情報440を生成し(ステップS404)、第2のホストOS252にGOS_VCM GPA空間配置情報440の格納場所を示す通知を第2のホストOS252に送信する(ステップS405)。具体的には、以下のような処理が実行される。
 ゲストOS400は、GOS_VCM用に確保された記憶領域のGVAに基づいてGVA-GPAマッピング情報430を参照し、GOS_VCM用に確保された記憶領域を構成するGPA空間の複数の記憶領域群を特定する。
 ゲストOS400は、GOS_VCM GPA空間配置情報440に特定された各記憶領域群に対応するエントリを追加する。また、ゲストOS400は、各エントリのGPA442およびサイズ443に、各記憶領域群の先頭アドレス(GPA)およびサイズを設定する。
 ゲストOS400は、GOS_VCM GPA空間配置情報440の複数のエントリをGPA442の順番にしたがって並び替える。例えば、ゲストOS400は、GVAの昇順または降順にエントリを並び替える。
 ゲストOS400は、GOS_VCM GPA空間配置情報440の上のエントリから昇順にIDを付与する。これによって、GOS_VCM HPA空間配置情報600が生成される。ゲストOS400は、GOS_VCM HPA空間配置情報600が格納されるGPA空間のアドレス(GPA)を第2のホストOS252に通知する。以上がステップS404およびステップS405の処理の説明である。
 ゲストOS400は、第2のホストOS252から応答を受信したか否かを判定する(ステップS406)。
 第2のホストOS252から応答を受信していないと判定された場合、ゲストOS400は、第2のホストOS252から応答を受信するまで待ち続ける。一方、第2のホストOS252から応答を受信したと判定された場合、ゲストOS400は、処理を終了する。これ以後、ゲストOS400は、通常の処理を実行する。
 ここで、図14を用いて、GOS_VCM GPA空間配置情報440およびGOS_VCM HPA空間配置情報600の技術的な特徴について説明する。図14は、本発明の実施例1におけるGOS_VCM420のGVA空間における配置、GPA空間における配置、およびHPA空間における配置の一例を示す説明図である。
 (1)図11から図13を用いて説明したように、第1のホストOS251は、起動する度に、HPA空間とHVA空間との間のマッピングを生成し、HOS_VCM230に割り当てる記憶領域としてHVA空間のアドレスが連続する記憶領域を確保する。また、ゲストOS400は、起動する度に、GPA空間とGVA空間との間のマッピングを生成し、GOS_VCM420に割り当てる記憶領域としてGVA空間のアドレスが連続する記憶領域を確保する。
 前述したように、HPA空間とHVA空間との間のマッピング関係、およびGPA空間とGVA空間との間のマッピング関係は物理計算機10が起動する度に変化する可能性が高い。そのため、HOS_VCM230に割り当てられるHPA空間の記憶領域、およびGOS_VCM420に割り当てられるGPA空間の記憶領域が変化する可能性がある。
 したがって、第1のホストOS251は、HOS_VCM230およびGOS_VCM420のそれぞれに格納されるデータを高速にバックアップするために、HOS_VCM230の第1のホストOS251が管理するHPA空間における配置、およびGOS_VCM420の第2のホストOS252が管理するHPA空間における配置を把握する必要がある。
 しかし、前述したように、第1のホストOS251が管理するHPA空間におけるHOS_VCM230の配置、および第2のホストOS252が管理するHPA空間におけるGOS_VCM420の配置は、物理計算機10が起動する度に異なる。
 したがって、第1のホストOS251が、電源の遮断を検出し、バックアップ処理を開始するときに、第1のホストOS251が管理するHPA空間におけるHOS_VCM230の配置を把握するためには、HVA-HPAマッピング情報240を参照して、HOS_VCM230の配置を把握する必要がある。また、第1のホストOS251は、第2のホストOS252が管理するHPA空間におけるGOS_VCM420の配置を把握するためには、第2のホストOS252と通信を行う必要がある。
 そのため、バックアップするためのデータを把握するために多くの処理を実行する必要があり、短時間かつ消費電力を抑えたバックアップ処理を実現することが困難である。
 そこで、本実施例では、第1のホストOS251が、起動時に、第1のホストOS251が管理するHPA空間におけるHOS_VCM230の配置を示すHOS_VCM HPA空間配置情報250を生成する。また、第2のホストOS252は、起動時に、ゲストOS400と連携して、第2のホストOS252が管理するHPA空間におけるGOS_VCM420の配置を示すGOS_VCM HPA空間配置情報600を生成する。
 これによって、第1のホストOS251は、バックアップすべきデータが格納される記憶領域を容易にかつ迅速に把握できるため、短時間かつ消費電力を抑えたバックアップ処理を実現することができる。
 (2)図14に示すGOS_VCM420は、ゲストOS400が管理するGPA空間では三つの記憶領域群、すなわち、ブロック1(801)、ブロック2(802)およびブロック3(803)にマップされる。さらに、ゲストOS400が管理するGPA空間のブロック1(801)は、第2のホストOS252が管理するHPA空間ではブロック1(901)にマップされ、ゲストOS400が管理するGPA空間のブロック2(802)は、第2のホストOS252が管理するHPA空間のブロック2(902)およびブロック3(903)にマップされ、さらに、ゲストOS400が管理するGPA空間のブロック3は、第2のホストOS252が管理するHPA空間のブロック4(904)にマップされる。したがって、GOS_VCM420は、第2のホストOS252が管理するHPA空間のアドレスが不連続な記憶領域群が割り当てられていることが分かる。
 ゲストOS400が管理するGVA空間におけるGOS_VCM420の配置関係を保持するようにバックアップを行うことによって、リストア処理時に、電源が遮断される直前と同一の状態を復元できる。
 そこで、ゲストOS400は、ゲストOS400が管理するGPA空間の三つのブロックのエントリが、ゲストOS400が管理するGVA空間の連続した記憶領域の配置となるように並べられたGOS_VCM GPA空間配置情報440を生成する(ステップS404)。また、第2のホストOS252は、GPA空間の四つのブロックのエントリが、ゲストOS400が管理するGVA空間の連続したアドレス順となるように並べられたGOS_VCM HPA空間配置情報600を生成する。
 第1のホストOS251は、後述するように、GOS_VCM HPA空間配置情報600のエントリ順にデータを読み出し、GOS_NVCM720に当該データを書き込むことによって、ゲストOS400が管理するGVA空間の連続したGOS_VCM420のイメージデータと同一の状態で、GOS_NVCM720にデータが格納される。
 なお、HOS_VCM HPA空間配置情報250についても同様の技術的な特徴がある。
 次に、バックアップ処理およびリストア処理の詳細について説明する。
 図15は、本発明の実施例1のバックアップ処理の一例を説明するフローチャートである。
 第1のホストOS251は、電源の遮断が検出されると、NVCM NVA管理情報700を参照して、HOS_NVCM710のアドレス(NVA)を取得する(ステップS500)。すなわち、第1のホストOS251は、HOS_VCM230に格納されるデータを保存するHOS_NVCM710の先頭アドレスを特定する。
 第1のホストOS251は、第1の分割VRAM221に格納されるHOS_VCM HPA空間配置情報250を参照し、HOS_VCM230に格納されるデータをHOS_NVCM710にバックアップする(ステップS501)。具体的には、以下のような処理が実行される。
 第1のホストOS251は、HOS_VCM HPA空間配置情報250のエントリを上から順に選択する。第1のホストOS251は、選択されたエントリに対応するデータを書き込むHOS_NVCM710のアドレスを決定する。
 一番上のエントリの場合、ステップS500において取得されたNVAがデータを書き込むHOS_NVCM710のアドレスとして決定される。それ以降のエントリの場合、第1のホストOS251は、前回決定されたアドレスと、前回書き込まれたデータのサイズとからデータを書き込むHOS_NVCM710のアドレスを決定する。
 第1のホストOS251は、HOS_VCM230からデータを読み出し、HOS_NVCM710に当該データを格納する。このとき、DMA転送を用いて、HOS_VCM230からHOS_NVCM710にデータが書き込まれる。DMA転送では、選択されたエントリに格納されるHPA、および決定されたアドレスが用いられる。以上がステップS501の処理の説明である。
 次に、第1のホストOS251は、NVCM NVA管理情報700を参照して、処理対象のゲストOS400を選択する(ステップS502)。
 ここでは、第1のホストOS251は、NVCM NVA管理情報700の上のエントリから順に処理対象のゲストOS400を選択するものとする。このとき、第1のホストOS251は、選択されたエントリのNVA702を取得する。また、第1のホストOS251は、選択されたエントリのOS_ID701に基づいて共有VRAM223から、処理対象のゲストOS400に対応するGOS_VCM HPA空間配置情報600を取得する。
 第1のホストOS251は、選択されたGOS_VCM420に格納されるデータをGOS_NVCM720にバックアップする(ステップS503)。具体的には、以下のような処理が実行される。
 第1のホストOS251は、取得されたGOS_VCM HPA空間配置情報600のエントリを一つ選択する。ここでは、上のエントリから順に選択される。第1のホストOS251は、選択されたエントリのHPA602に対応するデータを書き込むGOS_NVCM720のアドレスを決定する。アドレスの決定方法はステップS501と同一の方法を用いればよい。
 第1のホストOS251は、選択されたエントリのHPA602およびサイズ603に基づいてGOS_VCM420からデータを読み出し、GOS_NVCM720に読み出されたデータを格納する。このとき、DMA転送を用いて、GOS_VCM420からGOS_NVCM720にデータが書き込まれる。DMA転送では、選択されたエントリに格納されるHPA602およびサイズ603、並びに決定されたアドレスが用いられる。
 なお、GOS_VCM420は、第2の分割VRAM222に含まれるため、第1のホストOS251は、通常、アクセスを行わない。しかし、バックアップ処理およびリストア処理の実行時には、第1のホストOS251が、一時的に第2の分割VRAM222にアクセスできるように設定する。他の方法としては、第1のホストOS251が、第2のホストOS252に読み出し命令を発行する方法も考えられる。
 本実施例では、第1のホストOS251が、GOS_VCM HPA空間配置情報600のエントリ順にGOS_VCM420に格納されるデータをGOS_NVCM720に格納する。したがって、図14に示すように、GOS_NVCM720に格納されるデータはGOS_VCM420と同様に連続したイメージデータとなっている。以上がステップS503の処理の説明である。
 次に、第1のホストOS251は、全てのゲストOS400について処理が完了したか否かを判定する(ステップS504)。すなわち、NVCM NVA管理情報700に登録される全てのゲストOS400のエントリについて処理が完了したか否かが判定される。
 全てのゲストOS400について処理が完了していないと判定された場合、第1のホストOS251はステップS502に戻り、新たなゲストOS400に対して同様の処理を実行する。
 全てのゲストOS400について処理が完了したと判定された場合、第1のホストOS251は、処理を終了する。
 図16は、本発明の実施例1の第1のホストOS251のリストア処理を説明するフローチャートである。
 第1のホストOS251は、第1のホストOS251の起動処理が終了した後、リストア処理を開始する。第1のホストOS251は、NVCM NVA管理情報700を参照して、HOS_NVCM710のアドレス(NVA)を取得する(ステップS600)。すなわち、第1のホストOS251は、バックアップデータを読み出すHOS_NVCM710の先頭アドレスを特定する。
 第1のホストOS251は、第1の分割VRAM221に格納されるHOS_VCM HPA空間配置情報250を参照し、HOS_NVCM710に格納されるデータをHOS_VCM230にリストアし(ステップS601)、処理を終了する。具体的には、以下のような処理が実行される。
 第1のホストOS251は、HOS_VCM HPA空間配置情報250のエントリを上から順に選択する。第1のホストOS251は、選択されたエントリのサイズを取得する。第1のホストOS251は、HOS_NVCM710からデータを読み出すアドレスを決定する。
 一番上のエントリの場合、ステップS600において取得されたNVAがデータを読み出すHOS_NVCM710のアドレスとして決定される。それ以降のエントリの場合、第1のホストOS251は、前回決定されたアドレスと、前回読み出されたデータのサイズとからデータを読み出すHOS_NVCM710のアドレスを決定する。
 第1のホストOS251は、HOS_NVCM710から選択されたエントリのサイズ分のデータを読み出し、HOS_VCM230に当該データを格納する。このとき、DMA転送を用いて、HOS_NVCM710からHOS_VCM230にデータが書き込まれる。DMA転送では、選択されたエントリに格納されるHPAおよびサイズ、並びに決定されたアドレスが用いられる。以上がステップS601の処理の説明である。
 ここで、ステップS601において参照されるHOS_VCM HPA空間配置情報250は、再起動後に生成されたものである。再起動後、HOS_VCM230として確保される記憶領域が変化した場合、バックアップ処理において参照されたHOS_VCM HPA空間配置情報250とは内容が異なっている。
 図17A、図17B、および図17Cは、本発明の実施例1のゲストOS400のリストア処理を説明するフローチャートである。図18は、本発明の実施例1におけるGOS_VCM420のGVA空間における配置、GPA空間における配置、およびHPA空間における配置の一例を示す説明図である。
 ゲストOS400は、ゲストOS400の起動処理が終了した後、第2のホストOS252に、GOS_VCM420へのデータのリストア要求を送信する(ステップS700)。その後、ゲストOS400は、第2のホストOS252から応答を受信したか否かを判定する(ステップS701)。
 第2のホストOS252から応答を受信していないと判定された場合、ゲストOS400は、第2のホストOS252から応答を受信するまで待ち続ける。第2のホストOS252から応答を受信したと判定された場合、ゲストOS400は、処理を終了する。
 第2のホストOS252は、ゲストOS400からGOS_VCM420へのデータのリストア要求を受信すると(ステップS800)、第1のホストOS251に、当該GOS_VCM420へのデータのリストア要求を転送する(ステップS801)。なお、当該リストア要求には、ゲストOS400の識別子が含まれる。
 その後、第2のホストOS252は、第1のホストOS251から応答を受信したか否かを判定する(ステップS802)。第1のホストOS251から応答を受信していないと判定された場合、第2のホストOS252は、第1のホストOS251から応答を受信するまで待ち続ける。
 第1のホストOS251から応答を受信したと判定された場合、第2のホストOS252は、ゲストOS400に応答を送信し(ステップS803)、処理を終了する。
 第1のホストOS251は、第2のホストOS252からGOS_VCM420へのデータのリストア要求を受信すると(ステップS900)、リストア要求に含まれるゲストOS400の識別子に基づいてNVCM NVA管理情報700を参照し、ゲストOS400に対応するGOS_NVCM720のアドレス(NVA)を取得する(ステップS901)。
 第1のホストOS251は、共有VRAM223に格納されるGOS_VCM HPA空間配置情報600を参照し、GOS_NVCM720に格納されるデータをGOS_VCM420にリストアし(ステップS902)、その後、第2のホストOS252に応答を送信し(ステップS903)、処理を終了する。具体的には、以下のような処理が実行される。
 第1のホストOS251は、GOS_VCM HPA空間配置情報600の上のエントリから順に選択する。第1のホストOS251は、選択されたエントリのサイズ703を取得する。第1のホストOS251は、GOS_NVCM720からデータを読み出すアドレスを決定する。
 一番上のエントリの場合、ステップS901において取得されたNVAがデータを読み出すGOS_NVCM720のアドレスである。それ以降のエントリの場合、第1のホストOS251は、前回決定されたアドレスと、前回読み出されたデータのサイズ703とからデータを読み出すGOS_NVCM720のアドレスを決定する。
 第1のホストOS251は、GOS_NVCM720から選択されたエントリのサイズ703分のデータを読み出し、GOS_VCM420に当該データを格納する。このとき、DMA転送を用いて、GOS_NVCM720からGOS_VCM420にデータが書き込まれる。DMA転送では、選択されたエントリに格納されるNVA702およびサイズ703、並びに決定されたが用いられる。以上がステップS902の処理の説明である。
 ここで、ステップS902において参照されるGOS_VCM HPA空間配置情報600は、再起動後に生成されたものである。再起動後、GOS_VCM420として確保された記憶領域が変化した場合、バックアップ処理において参照されたGOS_VCM HPA空間配置情報600とは内容が異なっている。
 GOS_VCM HPA空間配置情報600は、ゲストOS400が管理するGVA上のアドレス順にエントリが並び替えられている。したがって、第1のホストOS251が、GOS_VCM HPA空間配置情報600のエントリ順に、GOS_VCM420にデータをリストアすることによって、図18に示すように、GOS_VCM420に格納されるデータは、GOS_VCM420には再起動前と同様に、GVA空間のアドレスが連続したイメージデータとしてリストアされる。すなわち、電源の遮断が発生する前と同一のメモリ状態を復元することができる。
 なお、GOS_VCM420は、第2の分割VRAM222に含まれるため、第1のホストOS251は、通常、第2の分割VRAM222にはアクセスを行わない。しかし、バックアップ処理およびリストア処理の実行時には、第1のホストOS251が、共有VRAM223にGOS_NVCM720一時的に第2の分割VRAM222にアクセスできるように設定する。他の方法としては、第1のホストOS251が、第2のホストOS252に読み出し命令を発行する方法も考えられる。共有VRAM223にGOS_NVCM720から読み出されたデータを書き込み、第2のホストOS252に当該データの書き込み命令を発行する方法も考えられる。
 複数のゲストOS400が再起動する場合、一つのゲストOS400に対して、図17Aから図17Cに示す処理が繰り返し実行される。
 本発明によればバックアップ処理では以下のような効果を得られる。
 物理計算機10の起動時に、バックアップ処理およびリストア処理に必要なメモリ空間のアドレス変換処理が実行される。すなわち、第1のホストOS251が、第1のホストOSが管理するHPA空間におけるHOS_VCM230の配置を示すHOS_VCM HPA空間配置情報250を生成し、また、第2のホストOS252(VMM)が、第2のホストOS252が管理するHPA空間におけるGOS_VCM420の配置を示すGOS_VCM HPA空間配置情報600を生成する。
 これによって、第1のホストOS251は、電源の遮断が検出された場合に、HOS_VCM HPA空間配置情報250を参照することによって、HOS_VCM230に格納されるデータを容易にかつ迅速にバックアップすることができ、また、GOS_VCM HPA空間配置情報600を参照することによって、各ゲストOS400のGOS_VCM420に格納されるデータを容易にかつ迅速にバックアップすることができる。
 そのため、第1のホストOS251は、バッテリ電源152の電力を用いてバックアップ処理を実行する場合に、複雑なアドレス変換処理を行うことなく、短期間に、かつ、消費電力を抑えたVCMのデータのバックアップを実現することができる。
 また、HOS_VCM HPA空間配置情報250およびGOS_VCM HPA空間配置情報600では、ゲストOS400が管理するGVA空間のアドレスが連続するようにエントリが並べられている。
 そのため、第1のホストOS251は、HOS_VCM HPA空間配置情報250のエントリ順にHOS_VCM230に格納されるデータをHOS_NVCM710にバックアップすることによって、第1のホストOS251が管理するHVA空間におけるHOS_VCM230に格納されるデータを、電源遮断時の状態でバックアップできる。また、第1のホストOS251は、GOS_VCM HPA空間配置情報600のエントリ順にGOS_VCM420に格納されるデータをGOS_NVCM720にバックアップすることによって、ゲストOS400が管理するGVA空間におけるGOS_VCM420に格納されるデータを、電源遮断時の状態でバックアップできる。
 本発明によればリストア処理では以下のような効果を得られる。
 バックアップ処理と同様に、第1のホストOS251は、HOS_VCM HPA空間配置情報250を参照することによって、HOS_NVCM710に格納されるデータを容易にかつ迅速にHOS_VCM230にリストアすることができ、また、GOS_VCM HPA空間配置情報600を参照することによって、GOS_NVCM720に格納されるデータを容易にかつ迅速にGOS_VCM420にリストアすることができる。
 また、バックアップ処理と同様に、第1のホストOS251は、HOS_VCM HPA空間配置情報250のエントリ順にHOS_NVCM710に格納されるデータをHOS_VCM230にリストアすることによって、電源遮断時の状態のHOS_VCM230のデータを復元できる。また、第1のホストOS251は、GOS_VCM HPA空間配置情報600のエントリ順にGOS_NVCM720に格納されるデータをGOS_VCM420にリストアすることによって、電源遮断時の状態のGOS_VCM420のデータを復元できる。
 なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
 また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、およびそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
 また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java等の広範囲のプログラムまたはスクリプト言語で実装できる。
 さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段またはCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
 上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。

Claims (10)

  1.  複数のオペレーティングシステムが稼働する計算機であって、
     前記計算機は、物理リソースとして、プロセッサ、前記プロセッサに接続される揮発性メモリ、前記プロセッサに接続される不揮発性メモリ、および前記プロセッサに接続されるI/Oデバイスを備え、
     前記複数のオペレーティングシステムは、第1のオペレーティングシステムと、複数の仮想計算機を生成する第2のオペレーティングシステムと、を含み、
     前記第1のオペレーティングシステムは、
     前記プロセッサが論理的に分割された第1の論理プロセッサ、前記揮発性メモリが論理的に分割された第1の論理揮発性メモリ、および前記I/Oデバイスが論理的に分割された第1論理I/Oデバイスを含む第1の論理リソース上で稼働し、
     前記計算機の電源の遮断を検出する電源遮断検出部を有し、
     前記第2のオペレーティングシステムは、前記プロセッサが論理的に分割された第2のプロセッサ、前記揮発性メモリが論理的に分割された第2の論理揮発性メモリ、前記I/Oデバイスが論理的に分割された第2のI/Oデバイスを含む第2の論理リソース上で稼働し、
     前記複数の仮想計算機の各々では、第3のオペレーティングシステムが稼動し、
     前記第1のオペレーティングシステムは、
     当該第1のオペレーティングシステムの起動時に、前記第1の論理揮発性メモリに、一時的にデータを格納する第1のキャッシュメモリ領域を確保し、
     前記第1のオペレーティングシステムが管理する前記第1の論理揮発性メモリの物理アドレス空間における前記第1のキャッシュメモリ領域の位置を示す第1の配置情報を生成し、
     前記第2のオペレーティングシステムは、
     少なくとも一つの仮想計算機を生成して、前記少なくとも一つの仮想計算機上で前記第3のオペレーティングシステムを起動し、
     前記第3のオペレーティングシステムは、前記少なくとも一つの仮想計算機に割り当てられた仮想メモリに、第2のキャッシュメモリ領域を確保し、
     前記第2のオペレーティングシステムは、当該第2のオペレーティングシステムが管理する前記第2の論理揮発性メモリの物理アドレス空間における前記第2のキャッシュメモリ領域の位置を示す第2の配置情報を生成し、
     前記第1のオペレーティングシステムは、
     前記計算機の電源の遮断が検出された場合に、前記第1の配置情報に基づいて、前記第1のキャッシュメモリ領域に格納される第1のデータを取得し、
     前記第1のデータを前記不揮発性メモリに格納し、
     前記第2の配置情報を取得し、
     前記第2の配置情報に基づいて、前記第2のキャッシュメモリ領域に格納される第2のデータを前記第2の論理揮発性メモリから取得し、
     前記第2のデータを前記不揮発性メモリに格納することを特徴とする計算機。
  2.  請求項1に記載の計算機であって、
     前記第1のオペレーティングシステムは、
     前記計算機が再起動した場合に、前記第1の論理揮発性メモリに、新たに前記第1のキャッシュメモリ領域を確保し、
     新たに前記第1の配置情報を生成し、
     前記不揮発性メモリに格納される前記第1のデータを取得し、
     前記新たに生成された第1の配置情報に基づいて、前記新たに確保された第1のキャッシュメモリ領域に前記第1のデータをリストアし、
     前記第2のオペレーティングシステムは、
     前記計算機が再起動した場合に、新たに前記少なくとも一つの仮想計算機を生成して、前記新たに生成された少なくとも一つの仮想計算機上で前記第3のオペレーティングシステムを起動し、
     前記第3のオペレーティングシステムは、前記新たに生成された少なくとも一つの仮想計算機に新たに割り当てられた仮想メモリに、新たに前記第2のキャッシュメモリ領域を確保し、
     前記第2のオペレーティングシステムは、新たに前記第2の配置情報を生成し、
     前記第1のオペレーティングシステムに、前記少なくとも一つの仮想計算機上で稼動する第3のオペレーティングシステムの前記第2のデータのリストア要求を送信し、
     前記第1のオペレーティングシステムは、
     前記不揮発性メモリから、前記少なくとも一つの仮想計算機に対応する前記第2のデータを取得し、
     前記新たに生成された第2の配置情報を取得し、
     前記新たに生成された第2の配置情報に基づいて、前記新たに確保された第2のキャッシュメモリ領域に前記第2のデータをリストアすることを特徴とする計算機。
  3.  請求項2に記載の計算機であって、
     前記第2のオペレーティングシステムは、
     前記少なくとも一つの仮想計算機を生成する場合に、前記第2のオペレーティングシステムが管理する物理アドレス空間と、前記第3のオペレーティングシステムが管理する物理アドレス空間との間のマッピング関係を管理する第1のマッピング情報を生成し、
     前記第3のオペレーティングシステムは、
     前記第3のオペレーティングシステムが管理する物理アドレス空間と、前記第3のオペレーティングシステムが管理する仮想アドレス空間との間の対応関係を管理する第2のマッピング情報を生成し、
     前記第3のオペレーティングシステムが管理する仮想アドレス空間で連続する記憶領域を前記第2のキャッシュメモリ領域として確保し、
     前記第2のマッピング情報に基づいて、前記第3のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記第2のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定し、
     前記第3のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成し、
     前記第3のオペレーティングシステムが管理する仮想アドレス空間における前記第2のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第3のオペレーティングシステムが管理する前記仮想メモリの物理アドレス空間における前記第2のキャッシュメモリ領域の位置を示す第3の配置情報を生成し、
     前記第2のオペレーティングシステムは、
     前記第2の配置情報を生成する場合に、前記第3の配置情報および前記第1のマッピング情報に基づいて、前記第2のオペレーティングシステムが管理する第2の論理揮発性メモリの物理アドレス空間における前記第2のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定し、
     前記第2のオペレーティングシステムが管理する第2の論理揮発性メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成し、
     前記第3のオペレーティングシステムが管理する仮想アドレス空間における前記第2のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第2の配置情報を生成することを特徴とする計算機。
  4.  請求項3に記載の計算機であって、
     前記第1のオペレーティングシステムは、前記仮想メモリに格納される前記第2のデータをバックアップする場合に、前記仮想メモリにおける前記第3のオペレーティングシステムが管理する前記仮想アドレス空間におけるアドレス順に、前記第2のデータを前記不揮発性メモリに格納することを特徴とする計算機。
  5.  請求項4に記載の計算機であって、
     前記不揮発性メモリは、アドレスが連続する記憶領域から構成される前記第1のデータを格納する第1の不揮発性キャッシュメモリ領域、およびアドレスが連続する記憶領域から構成される前記少なくとも一つの仮想計算機の前記第2のデータを格納する第2の不揮発性キャッシュメモリ領域を含み、
     前記第1のオペレーティングシステムは、
     前記第1の配置情報のエントリ順に、前記第1のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出し、
     前記第1の不揮発性キャッシュメモリ領域のアドレス順に、前記第1のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納し、
     前記第2の配置情報のエントリ順に、前記第2のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出し、
     前記第1の不揮発性キャッシュメモリ領域のアドレス順に、前記第2のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納することを特徴とする計算機。
  6.  複数のオペレーティングシステムが稼働する計算機におけるキャッシュデータ管理方法であって、
     前記計算機は、物理リソースとして、プロセッサ、前記プロセッサに接続される揮発性メモリ、前記プロセッサに接続される不揮発性メモリ、および前記プロセッサに接続されるI/Oデバイスを備え、
     前記複数のオペレーティングシステムは、第1のオペレーティングシステムと、複数の仮想計算機を生成する第2のオペレーティングシステムと、を含み、
     前記第1のオペレーティングシステムは、
     前記プロセッサが論理的に分割された第1の論理プロセッサ、前記揮発性メモリが論理的に分割された第1の論理揮発性メモリ、および前記I/Oデバイスが論理的に分割された第1論理I/Oデバイスを含む第1の論理リソース上で稼働し、
     前記計算機の電源の遮断を検出する電源遮断検出部を有し、
     前記第2のオペレーティングシステムは、前記プロセッサが論理的に分割された第2のプロセッサ、前記揮発性メモリが論理的に分割された第2の論理揮発性メモリ、前記I/Oデバイスが論理的に分割された第2のI/Oデバイスを含む第2の論理リソース上で稼働し、
     前記複数の仮想計算機の各々では、第3のオペレーティングシステムが稼動し、
     前記キャッシュデータ管理方法は、
     前記第1のオペレーティングシステムが、当該第1のオペレーティングシステムの起動時に、前記第1の論理揮発性メモリに、一時的にデータを格納する第1のキャッシュメモリ領域を確保する第1のステップと、
     前記第1のオペレーティングシステムが、前記第1のオペレーティングシステムが管理する前記第1の論理揮発性メモリの物理アドレス空間における前記第1のキャッシュメモリ領域の位置を示す第1の配置情報を生成する第2のステップと、
     前記第2のオペレーティングシステムが、少なくとも一つの仮想計算機を生成して、前記少なくとも一つの仮想計算機上で前記第3のオペレーティングシステムを起動する第3のステップと、
     前記第3のオペレーティングシステムが、前記少なくとも一つの仮想計算機に割り当てられた仮想メモリに、第2のキャッシュメモリ領域を確保する第4のステップと、
     前記第2のオペレーティングシステムが、前記第2のオペレーティングシステムは、当該第2のオペレーティングシステムが管理する前記第2の論理揮発性メモリの物理アドレス空間における前記第2のキャッシュメモリ領域の位置を示す第2の配置情報を生成する第5のステップと、
     前記第1のオペレーティングシステムが、前記計算機の電源の遮断が検出された場合に、前記第1の配置情報に基づいて、前記第1のキャッシュメモリ領域に格納される第1のデータを取得し、前記不揮発性メモリに前記第1のデータを格納する第6のステップと、
     前記第1のオペレーティングシステムが、前記第2の配置情報を取得する第7のステップと、
     前記第1のオペレーティングシステムが、前記第2の配置情報に基づいて、前記第2のキャッシュメモリ領域に格納される第2のデータを前記第2の論理揮発性メモリから取得し、前記不揮発性メモリに前記第2のデータを格納する第8のステップと、を含むことを特徴とするキャッシュデータ管理方法。
  7.  請求項6に記載のキャッシュデータ管理方法であって、
     前記キャッシュデータ管理方法は、
     前記第1のオペレーティングシステムが、前記計算機が再起動した場合に、前記第1の論理揮発性メモリに、新たに前記第1のキャッシュメモリ領域を確保する第9のステップと、
     前記第1のオペレーティングシステムが、新たに前記第1の配置情報を生成する第10のステップと、
     前記第1のオペレーティングシステムが、前記不揮発性メモリに格納される前記第1のデータを取得する第11のステップと、
     前記第1のオペレーティングシステムが、前記新たに生成された第1の配置情報に基づいて、前記新たに確保された第1のキャッシュメモリ領域に前記第1のデータをリストアする第12のステップと、
     前記第2のオペレーティングシステムが、前記計算機が再起動した場合に、新たに前記少なくとも一つの仮想計算機を生成して、前記新たに生成された少なくとも一つの仮想計算機上で前記第3のオペレーティングシステムを起動する第13のステップと、
     前記第3のオペレーティングシステムが、前記新たに生成された少なくとも一つの仮想計算機に新たに割り当てられた仮想メモリに、新たに前記第2のキャッシュメモリ領域を確保する第14のステップと、
     前記第2のオペレーティングシステムが、新たに前記第2の配置情報を生成する第15のステップと、
     前記第2のオペレーティングシステムが、前記第1のオペレーティングシステムに、前記少なくとも一つの仮想計算機上で稼動する第3のオペレーティングシステムの前記第2のデータのリストア要求を送信する第16のステップと、
     前記第1のオペレーティングシステムが、前記不揮発性メモリから、前記少なくとも一つの仮想計算機に対応する前記第2のデータを取得する第17のステップと、
     前記第1のオペレーティングシステムが、前記新たに生成された第2の配置情報を取得する第18のステップと、
     前記第1のオペレーティングシステムが、前記新たに生成された第2の配置情報に基づいて、前記新たに確保された第2のキャッシュメモリ領域に前記第2のデータをリストアする第19のステップと、を含むことを特徴とするキャッシュデータ管理方法。
  8.  請求項7に記載のキャッシュデータ管理方法であって、
     前記第3のステップおよび前記第13のステップは、前記第2のオペレーティングシステムが、前記第2のオペレーティングシステムが管理する物理アドレス空間と、前記第3のオペレーティングシステムが管理する物理アドレス空間との間のマッピング関係を管理する第1のマッピング情報を生成するステップを含み、
     前記第4のステップおよび前記第14のステップは、
     前記第3のオペレーティングシステムが、前記第3のオペレーティングシステムが管理する物理アドレス空間と、前記第3のオペレーティングシステムが管理する仮想アドレス空間との間の対応関係を管理する第2のマッピング情報を生成するステップと、
     前記第3のオペレーティングシステムが、前記第3のオペレーティングシステムが管理する仮想アドレス空間で連続する記憶領域を前記第2のキャッシュメモリ領域として確保するステップと、
     前記第3のオペレーティングシステムが、前記第2のマッピング情報に基づいて、前記第3のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記第2のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定するステップと、
     前記第3のオペレーティングシステムが、前記第3のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成するステップと、
     前記第3のオペレーティングシステムが、前記第3のオペレーティングシステムが管理する仮想アドレス空間における前記第2のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第3のオペレーティングシステムが管理する前記仮想メモリの物理アドレス空間における前記第2のキャッシュメモリ領域の位置を示す第3の配置情報を生成するステップと、を含み、
     前記第5のステップおよび前記第15のステップは、
     前記第2のオペレーティングシステムが、前記第3の配置情報および前記第1のマッピング情報に基づいて、前記第2のオペレーティングシステムが管理する第2の論理揮発性メモリの物理アドレス空間における前記第2のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定するステップと、
     前記第2のオペレーティングシステムが、前記第2のオペレーティングシステムが管理する第2の論理揮発性メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成するステップと、
     前記第2のオペレーティングシステムが、前記第3のオペレーティングシステムが管理する仮想アドレス空間における前記第2のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第2の配置情報を生成するステップと、を含むことを特徴とするキャッシュデータ管理方法。
  9.  請求項8に記載のキャッシュデータ管理方法であって、
     前記第10のステップでは、前記第1のオペレーティングシステムが、前記仮想メモリにおける前記第3のオペレーティングシステムが管理する前記仮想アドレス空間におけるアドレス順に、前記第2のデータを前記不揮発性メモリに格納することを特徴とするキャッシュデータ管理方法。
  10.  請求項9に記載のキャッシュデータ管理方法であって、
     前記不揮発性メモリは、アドレスが連続する記憶領域から構成される前記第1のデータを格納する第1の不揮発性キャッシュメモリ領域、およびアドレスが連続する記憶領域から構成される前記少なくとも一つの仮想計算機の前記第2のデータを格納する第2の不揮発性キャッシュメモリ領域を含み、
     前記第6のステップは、
     前記第1のオペレーティングシステムが、前記第1の配置情報のエントリ順に、前記第1のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出すステップと、
     前記第1のオペレーティングシステムが、前記第1の不揮発性キャッシュメモリ領域のアドレス順に、前記第1のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納するステップと、を含み、
     前記第8のステップは、
     前記第1のオペレーティングシステムが、前記第2の配置情報のエントリ順に、前記第2のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出すステップと、
     前記第1のオペレーティングシステムが、前記第1の不揮発性キャッシュメモリ領域のアドレス順に、前記第2のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納するステップと、を含むことを特徴とするキャッシュデータ管理方法。
PCT/JP2014/055878 2014-03-07 2014-03-07 計算機 WO2015132941A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US15/114,114 US9977740B2 (en) 2014-03-07 2014-03-07 Nonvolatile storage of host and guest cache data in response to power interruption
JP2016506043A JP6165964B2 (ja) 2014-03-07 2014-03-07 計算機
PCT/JP2014/055878 WO2015132941A1 (ja) 2014-03-07 2014-03-07 計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/055878 WO2015132941A1 (ja) 2014-03-07 2014-03-07 計算機

Publications (1)

Publication Number Publication Date
WO2015132941A1 true WO2015132941A1 (ja) 2015-09-11

Family

ID=54054776

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/055878 WO2015132941A1 (ja) 2014-03-07 2014-03-07 計算機

Country Status (3)

Country Link
US (1) US9977740B2 (ja)
JP (1) JP6165964B2 (ja)
WO (1) WO2015132941A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017111146A (ja) * 2015-12-18 2017-06-22 エフ ホフマン−ラ ロッシュ アクチェン ゲゼルシャフト 試料または試薬を処理するための機器の設定を復元するための方法、および試料または試薬を処理するための機器を含むシステム
WO2018154967A1 (ja) * 2017-02-24 2018-08-30 株式会社東芝 制御装置
WO2020157950A1 (ja) * 2019-02-01 2020-08-06 三菱電機株式会社 情報処理装置、バックアップ方法、リストア方法およびプログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10623565B2 (en) 2018-02-09 2020-04-14 Afiniti Europe Technologies Limited Techniques for behavioral pairing in a contact center system
JP2023037883A (ja) 2021-09-06 2023-03-16 キオクシア株式会社 情報処理装置
US11755496B1 (en) 2021-12-10 2023-09-12 Amazon Technologies, Inc. Memory de-duplication using physical memory aliases

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009075759A (ja) * 2007-09-19 2009-04-09 Hitachi Ltd ストレージ装置及びストレージ装置におけるデータの管理方法
US20110202728A1 (en) * 2010-02-17 2011-08-18 Lsi Corporation Methods and apparatus for managing cache persistence in a storage system using multiple virtual machines

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3546678B2 (ja) 1997-09-12 2004-07-28 株式会社日立製作所 マルチos構成方法
US20060136765A1 (en) * 2004-12-03 2006-06-22 Poisner David L Prevention of data loss due to power failure
US8060683B2 (en) * 2004-12-17 2011-11-15 International Business Machines Corporation System, method and program to preserve a cache of a virtual machine
US8375386B2 (en) * 2005-06-29 2013-02-12 Microsoft Corporation Failure management for a virtualized computing environment
US8607009B2 (en) * 2006-07-13 2013-12-10 Microsoft Corporation Concurrent virtual machine snapshots and restore
JP2008276646A (ja) * 2007-05-02 2008-11-13 Hitachi Ltd ストレージ装置及びストレージ装置におけるデータの管理方法
US8209686B2 (en) * 2008-02-12 2012-06-26 International Business Machines Corporation Saving unsaved user process data in one or more logical partitions of a computing system
KR101288700B1 (ko) 2008-03-14 2013-08-23 미쓰비시덴키 가부시키가이샤 멀티 오퍼레이팅 시스템(os) 기동 장치, 컴퓨터 판독 가능한 기록 매체 및 멀티 os 기동 방법
JP5474762B2 (ja) * 2008-03-19 2014-04-16 旭化成イーマテリアルズ株式会社 高分子電解質及びその製造方法
US8671258B2 (en) * 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
JP5484117B2 (ja) * 2010-02-17 2014-05-07 株式会社日立製作所 ハイパーバイザ及びサーバ装置
US9804874B2 (en) * 2011-04-20 2017-10-31 Microsoft Technology Licensing, Llc Consolidation of idle virtual machines on idle logical processors
US9875115B2 (en) * 2013-12-20 2018-01-23 Microsoft Technology Licensing, Llc Memory-preserving reboot

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009075759A (ja) * 2007-09-19 2009-04-09 Hitachi Ltd ストレージ装置及びストレージ装置におけるデータの管理方法
US20110202728A1 (en) * 2010-02-17 2011-08-18 Lsi Corporation Methods and apparatus for managing cache persistence in a storage system using multiple virtual machines

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017111146A (ja) * 2015-12-18 2017-06-22 エフ ホフマン−ラ ロッシュ アクチェン ゲゼルシャフト 試料または試薬を処理するための機器の設定を復元するための方法、および試料または試薬を処理するための機器を含むシステム
US11200326B2 (en) 2015-12-18 2021-12-14 Roche Diagnostics Operations, Inc. Method of restoring settings of an instrument for processing a sample or a reagent and a system for processing a sample or reagent
WO2018154967A1 (ja) * 2017-02-24 2018-08-30 株式会社東芝 制御装置
JPWO2018154967A1 (ja) * 2017-02-24 2019-11-07 株式会社東芝 制御装置
US11334379B2 (en) 2017-02-24 2022-05-17 Kabushiki Kaisha Toshiba Control device
WO2020157950A1 (ja) * 2019-02-01 2020-08-06 三菱電機株式会社 情報処理装置、バックアップ方法、リストア方法およびプログラム
JP6762452B1 (ja) * 2019-02-01 2020-09-30 三菱電機株式会社 情報処理装置、バックアップ方法、リストア方法およびプログラム
US11281395B2 (en) 2019-02-01 2022-03-22 Mitsubishi Electric Corporation Information processing device, backup method, restore method, and program

Also Published As

Publication number Publication date
US20170004081A1 (en) 2017-01-05
US9977740B2 (en) 2018-05-22
JP6165964B2 (ja) 2017-07-19
JPWO2015132941A1 (ja) 2017-03-30

Similar Documents

Publication Publication Date Title
US10289564B2 (en) Computer and memory region management method
US9606745B2 (en) Storage system and method for allocating resource
JP6165964B2 (ja) 計算機
US10152409B2 (en) Hybrid in-heap out-of-heap ballooning for java virtual machines
JP4961319B2 (ja) 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム
JP6029550B2 (ja) 計算機の制御方法及び計算機
JP5484117B2 (ja) ハイパーバイザ及びサーバ装置
US20120246644A1 (en) Virtual computer system and controlling method of virtual computer
US8954706B2 (en) Storage apparatus, computer system, and control method for storage apparatus
KR20070100367A (ko) 하나의 가상 머신에서 다른 가상 머신으로 메모리를동적으로 재할당하기 위한 방법, 장치 및 시스템
US10289563B2 (en) Efficient reclamation of pre-allocated direct memory access (DMA) memory
US11593170B2 (en) Flexible reverse ballooning for nested virtual machines
US10956189B2 (en) Methods for managing virtualized remote direct memory access devices
WO2012155555A1 (zh) 一种运行多个虚拟机的方法及系统
JP2017037665A (ja) ホスト側フラッシュストレージデバイスの容量を仮想マシンに利用可能にする技術
US8566541B2 (en) Storage system storing electronic modules applied to electronic objects common to several computers, and storage control method for the same
JP2011227766A (ja) 記憶手段の管理方法、仮想計算機システムおよびプログラム
US11256585B2 (en) Storage system
JP7125964B2 (ja) 計算機システムおよび管理方法
WO2014061068A1 (en) Storage system and method for controlling storage system
WO2015122007A1 (ja) 計算機、及び、ハイパバイザによる資源スケジューリング方法
WO2024051292A1 (zh) 数据处理系统、内存镜像方法、装置和计算设备
US20190004956A1 (en) Computer system and cache management method for computer system
JP2023102641A (ja) 計算機システム及びスケールアップ管理方法
JP2013206454A (ja) 情報処理装置、装置管理方法および装置管理プログラム

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016506043

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15114114

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14884725

Country of ref document: EP

Kind code of ref document: A1