Computer system, failure processing method, and program therefor
The system enables rapid failure detection and resolution in virtual machines by using extended configuration registers to communicate failure information between virtual machine guests and hosts, improving uptime and reducing administrative response times.
Patent Information
- Application Number
- JP2024011000
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-29
- Publication Date
- 2025-08-08
- Estimated Expiration
- 2044-01-29
AI Technical Summary
Existing virtual machine systems fail to transmit failure information externally, preventing the virtual machine host from identifying and addressing failures promptly, leading to prolonged downtime and user inconvenience.
A computer system with a virtual machine guest and host incorporating dedicated processors, utilizing first and second extended configuration registers to communicate failure information between them, enabling the host to detect and diagnose guest-side failures.
Facilitates quicker identification and resolution of failures in virtual machine guests, enhancing system uptime and reducing administrative response time.
Smart Images

Figure 2025116526000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a computer system, a failure processing method, and a program therefor. [Background technology]
[0002] Virtual machines are sometimes installed on a single physical server for reasons such as reducing the number of physical servers and the expected cost savings. When a failure occurs in such a virtual machine, it is important to be able to quickly recover and increase the uptime rate.
[0003] For example, Patent Document 1 describes a virtual computer system in which a failure monitoring means is provided in each virtual machine, a device in which a failure has occurred is identified based on detected failure information, and the system administrator is notified of the device failure. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2008-269194 Summary of the Invention [Problem to be solved by the invention]
[0005] When building a virtual machine, a host for the virtual machine is created on a host OS installed on the base computer, and then a guest virtual machine is created that runs on a guest OS built on that host OS. Traditionally, when a virtual machine failure is detected, failure information is stored within the virtual machine environment, but the information cannot be transmitted externally. As a result, the virtual machine host is unable to identify the cause, let alone recognize that a failure has occurred. As a result, symptoms such as job execution not working properly on the virtual machine occur, and virtual machine users have to contact the machine administrator. However, the machine administrator cannot immediately grasp what has happened, and they have to perform operations such as checking the network and restarting the virtual machine, which can take time to identify the cause.
[0006] An object of the present disclosure is to provide a computer system, a failure processing method, and a program therefor that solve the above-mentioned problems. [Means for solving the problem]
[0007] A computer system according to one embodiment of the present disclosure comprises: a virtual machine guest, which is a virtual machine incorporating a dedicated processor, the virtual machine guest comprising: a first extended configuration register; and a first diagnostic means for notifying the virtual machine host of a failure in a dedicated processor incorporated in the virtual machine guest via information contained in the first extended configuration register; a virtual machine host, which is a host machine, comprising: a second extended configuration register having the same content as the first extended configuration register, and information written by the virtual machine guest to the first extended configuration register being readable from the virtual machine host via the second extended configuration register; and a second diagnostic means for detecting a failure related to the dedicated processor incorporated in the virtual machine guest from the information contained in the second extended configuration register.
[0008] A fault handling method according to one embodiment of the present disclosure includes a virtual machine guest, which is a virtual machine incorporating a dedicated processor, notifying the virtual machine host of a fault in the dedicated processor incorporated in the virtual machine host via information contained in a first extended configuration register, and a virtual machine host, which is a host machine, detecting a fault related to the dedicated processor incorporated in the virtual machine guest from information contained in a second extended configuration register, which has the same contents as the first extended configuration register, and in which information written by the virtual machine guest to the first extended configuration register can be read from the virtual machine host via the second extended configuration register.
[0009] A program for fault handling according to one embodiment of the present disclosure causes a computer to execute the following: a virtual machine guest, which is a virtual machine incorporating a dedicated processor, notifies the virtual machine host of a fault in the dedicated processor incorporated in the virtual machine host via information contained in a first extended configuration register; and a virtual machine host, which is a host machine, detects a fault related to the dedicated processor incorporated in the virtual machine guest from information contained in a second extended configuration register, which has the same content as the first extended configuration register, and in which information written by the virtual machine guest to the first extended configuration register can be read from the virtual machine host via the second extended configuration register. [Effects of the Invention]
[0010] According to the above aspect, it becomes easier for the virtual machine host to identify suspected failures in the virtual machine guests. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 is a diagram illustrating the configuration of a computer system according to an embodiment of the present disclosure. [Figure 2] FIG. 10 is a diagram illustrating a software structure when a guest virtual machine is started up on a host virtual machine. [Figure 3] FIG. 10 is a diagram illustrating a software structure when a virtual machine is not running. [Figure 4] FIG. 10 is a diagram illustrating an example of the configuration of an extended config register in the PCI config space for VE. [Figure 5] FIG. 10 is a diagram illustrating an example of a table of VE numbers and serial numbers. [Figure 6] FIG. 10 is a diagram illustrating flags provided in a dedicated area in an extended config register. [Figure 7] FIG. 10 is a diagram showing an example of breakdown of failure information provided in a dedicated area in an extended config register. [Figure 8] 10A and 10B are diagrams illustrating examples of registration of summary files output by diagnostic SW on the VM host side and diagnostic SW on the VM guest side. [Figure 9] 10A and 10B are diagrams illustrating examples of syslog files output by a diagnostic SW on the VM host side and a diagnostic SW on the VM guest side. [Figure 10] 10 is a flowchart showing the operation of failure processing of the diagnostic SW on the VM host side. [Figure 11] FIG. 10 illustrates the operation of the diagnostic SW on the VM guest side. [Figure 12] FIG. 1 is a diagram illustrating an example configuration of a computer system according to an embodiment of the present disclosure. [Figure 13] FIG. 1 is a block diagram illustrating an example of a hardware configuration of a computer system. DETAILED DESCRIPTION OF THE INVENTION
[0012] Each embodiment will be described below with reference to the drawings. In all drawings, identical or corresponding components are designated by the same reference numerals, and common descriptions will be omitted. As an example of an embodiment of the present disclosure, a case will be described in which, in a computer system in which a graphics processing unit (GPU), a vector engine, etc., is PCI-connected, a virtual machine is launched using a host-type hypervisor, and the GPU or vector engine is used from a guest environment using a PCI pass-through function, and a failure occurs in the GPU or vector engine. Here, a "host-type hypervisor" refers to a method in which a virtual machine runs as application software on an OS, and virtualization software is installed on the OS as a base to run a virtual machine using the virtualization software. Furthermore, a "PCI pass-through function" refers to a function that allows a guest OS installed on a virtual machine to directly access PCI devices, such as a GPU or vector engine, which are physical machines.
[0013] A GPU is a unit that includes a dedicated processor that handles the calculations required to render images. A vector engine is a unit that includes a processor with "vector instructions" that process large amounts of data at once. In the following, "VE" stands for "vector engine." In contrast, a CPU (Central Processing Unit) is a general-purpose processor that performs general-purpose processing. Because units that include dedicated processors such as GPUs and VEs are specialized for specific processing, there is a significant difference in the processing speed for that specific processing compared to general-purpose processors such as CPUs. In the following, units that include dedicated processors such as GPUs and vector engines will also be referred to simply as "dedicated processors."
[0014] FIG. 1 is a diagram illustrating the configuration of a computer system according to an embodiment of the present disclosure. In FIG. 1, the computer system 1 includes four vector engines (hereinafter abbreviated as VEs) 30-33 as dedicated processors, a CPU 10 as a general-purpose processor, and PCIe switches (PCIe switches) 20 and 21 for connecting the VEs 30-33 to the CPU 10. Here, PCIe (Peripheral Component Interconnect Express) is a high-bandwidth expansion bus commonly used to connect peripheral devices such as the VEs 30-33. The PCIe switches 20 and 21 are switching devices equipped with the expansion bus. The VEs 30-33 in the computer system 1 are managed with the management numbers 0, 1, 2, and 3, respectively. Hereinafter, the vector engines may be referred to in numerical order as VE#0, VE#1, VE#2, and VE#3.
[0015] Figure 2 shows the software structure when a guest virtual machine is launched on a host machine. In Figure 2, two of the four VEs, numbered 2 and 3, are incorporated into the virtual machine guest and are available for use in the virtual machine guest environment. On the other hand, the remaining two VEs, numbered 0 and 1, are not incorporated into the virtual machine guest and are available for use in the host environment, just as they were before the virtual machines were launched. Hereafter, when a virtual machine is launched, the environment launched as a virtual machine will be referred to as a VM (Virtual Machine) guest, and the host environment for the virtual machine will be referred to as a VM host.
[0016] As shown in Figure 2, the VM host is built on a host OS (1100). The VM host's application space (1200) is provided with diagnostic software (diagnostic SW) (1210), a CPU PCI configuration space (1220), a PCI configuration space across VEx (1230), and PCI configuration spaces (1240) to (1243) for VE#0 to VE#3. The OS (1100) is also provided with VEDRVs (VE DRiVers) (1110) and (1111) for VE#0 and VE#1, which are used in the host environment. Note that the "x" in the PCIconfig space (1230) opposite VEx represents the abbreviation of the management number of each VE, and in the example of the present disclosure, there are four PCIconfig spaces opposite VE, specifically, the PCIconfig space opposite VE#0, the PCIconfig space opposite VE#1, the PCIconfig space opposite VE#2, and the PCIconfig space opposite VE#3. Also, "VEDRV" is a driver for VE, which is a dedicated processor, and is control software that serves as an interface between the application space and the VE.
[0017] The diagnostic SW (1210) resides in the VM host, monitors VE failures and link connection status, and handles failures. To this end, the diagnostic SW (1210) is capable of detecting failures via the VE driver and collecting VE failure information via VEDRV. To check the link connection status with PCI-connected devices, the diagnostic SW (1210) can read the link status registers in the PCIconfig space (1220 and 1230) of the PCIeSW port connected to the VE and the CPU port connected to that PCIeSW. Furthermore, when the diagnostic SW (1210) detects a VE failure, it outputs information about the failure to a summary file and / or the system log (syslog). Hereafter, the word "register" is sometimes abbreviated to "register." Information such as the link speed and link width can be obtained from the "link status register." PCIe also specifies eight link widths: 2, 4, 8, 12, 16, 32, and 64 lanes. As mentioned above, VEDRV is a software interface for connecting to the target VE via software. Each VE can be used from a VM guest using the PCI pass-through function, but as this is a common function, a detailed explanation of it will be omitted.
[0018] The VM guest is constructed on VM software 1300 for constructing a virtual machine on the OS 1100. In Fig. 2, the VM guest incorporating VE#2 and VE#3 has a diagnostic SW 1710 resident in its application space 1700, and PCI configuration spaces 1742 and 1743 for VE#2 and VE#3 are provided. The guest OS 1600 also has VEDRVs 1612 and 1613 for VE#2 and VE#3 incorporated into the guest environment.
[0019] When the diagnostic SW (1710) detects a fault, it sets information indicating the occurrence of the fault in a space called an extended config register in the PCI config space (1742) and (1743). In addition, when the preparations for starting the VM guest are complete, the diagnostic SW (1710) starts counting the counter included in the extended config register.
[0020] Here, the extended config register of the PCIconfig space (1242) for VE#2 configured in the VM host's application space (1200) and the extended config register of the PCIconfig space (1742) for VE#2 configured in the VM guest's application space (1700) have the same contents, and are configured so that values and information written from either the VM host or the VM guest can be read from the other. Similarly, the extended config register of the PCIconfig space (1243) for VE#3 configured in the VM host's application space (1200) and the extended config register of the PCIconfig space (1743) for VE#3 configured in the VM guest's application space (1700) have the same contents, and are configured so that values and information written from either the VM host or the VM guest can be read from the other. The configuration of the extended config register will be explained in detail separately. In addition, each PCIconfig space is also provided with a link status register that indicates its link status.
[0021] Figure 3 shows the software structure when no virtual machines are running. In other words, this is an example where all four VEs are available in the host environment. The diagnostic SW (2210) is the same as the diagnostic SW (1210) in Figure 2. In addition, the VEDRVs (2110) to (2113), the PCI config space (2220) on the CPU side, the PCI config space (2230) on the opposite side of VEx (PCIeSW side), and the PCI config spaces (2240) to (2243) for VE#1 to VE#3 are also the same as the VEDRVs (1110) to (1113), the PCI config space (1220) on the CPU side, the PCI config space (1230) on the opposite side of VEx (PCIeSW side), and the PCI config spaces (1240) to (1243) for VE#1 to VE#3 in Figure 1, respectively.
[0022] Figure 4 shows an example of the configuration of an extended config register in the PCI config space for VE. An extended config register is provided in the PCI config space for VE. The extended config register has a dedicated area available to users, which stores a serial number, flag, counter, and fault information. Here, the "serial number" is the serial number set in the VE. The "flag" is a value indicating the operating status of a VM guest (separately referred to as a "status"). The "counter" indicates a value calculated after the VE is ready to start operation. The "fault status" stores information about VE faults (described separately). As mentioned above, the contents of the extended config register are coordinated in advance between the diagnostic SW (2210) in the VM guest and the diagnostic SW (1710) in the VM host so that writing to either the VM host or VM guest can be read from the other. Note that the following explanation uses the example of reading from the VM host in response to writing from the VM guest.
[0023] Figure 5 shows an example of a table of VE numbers and serial numbers. The table shown in Figure 5 shows an example of the correspondence between VE numbers and serial numbers set for those VEs. The table shown in Figure 5 is provided in the VM host and is used to identify the VE in which the failure occurred when the VM host detects a VE failure.
[0024] 6 is a diagram illustrating flags provided in a dedicated area in the extended config register. In the example shown in Fig. 6, numbers 0 to 2 are associated as numbers indicating the status, which is the operating state of the VM guest.
[0025] FIG. 7 is a diagram showing an example of breakdown of failure information provided in a dedicated area in the extended config register.
[0026] FIG. 8 is a diagram showing an example of registration of summary files output by the diagnostic SW (1210) on the VM host side and the diagnostic SW (1710) on the VM guest side.
[0027] 9 is a diagram showing an example of a syslog file output by the diagnostic SW (1210) on the VM host side and the diagnostic SW (1710) on the VM guest side. The summary file in Fig. 8 is fault information that has been translated from the contents of the syslog file in Fig. 9 so that it can be easily understood by the user or administrator of the computer system 1.
[0028] Next, the fault processing operation of the diagnostic SW (1210) on the VM host side and the fault processing operation of the diagnostic SW (1710) on the VM guest side will be described.
[0029] Figure 10 is a flowchart showing the fault processing operation of the diagnostic SW (1210) on the VM host. Before starting up the virtual machines, the diagnostic SW (2210) reads the VE-specific serial number from each VE and saves a table that corresponds each VE's management number to its serial number (step 1100). Figure 5 above shows an example of a table showing the correspondence between VE numbers and serial numbers. The VM host then starts up the virtual machines. As mentioned above, the extended configuration register in the VM guest has the same contents as the extended configuration register in the VM host, so values written from one side can be read from the other. Figure 2 shows an example of the configuration when a virtual machine is started up. Here, as shown in Figure 1, four VEs are connected to the CPU via PCIe SW, and two VEs, VE#2 and VE#3, are incorporated into the VM guests as shown in Figure 2.
[0030] The diagnostic SW (1210) in the VM host determines whether the VE is incorporated into virtualization based on the VEDRV etc. (step 2100). If the VE is incorporated into virtualization (step 2100: Yes), the diagnostic SW (1210) then monitors whether the value of the flag in the dedicated area in the extended config register in the PCI config space (1242) (1243) indicates that preparation is complete (step 2200), and when it recognizes that preparation is complete (step 2200: Yes), it proceeds to the next process.
[0031] The diagnostic SW (1210) checks whether the link connection status is normal based on the link status register included in the PCI configuration space (1220) of the CPU and the link status register included in the PCI configuration space (1230) on the opposite side of the VEx (step 2300). For example, the link connection status is checked by checking the port on the PCIeSW side to which the VE is connected and the port on the CPU side to which the PCIeSW is connected, and checking whether the link speed and link width are maintaining the expected values based on the link status register. For example, in FIG. 1, the link connection status with VE#3 (33) is checked by checking the port (22) provided in PCIeSW#1 (21) to which VE#3 (33) is connected and the port (11) provided in CUP (10) to which PCIeSW#1 (21) is connected. The diagnostic SW (1210) then checks whether the link connection status is normal by referencing the link status register contained in the PCIconfig space (1220) of the CPU and the link status register related to PCIeSW#1 (21) contained in the PCIconfig space (1230) across from VE#3. Incidentally, PCIeSW#1 (21) has a total of three PCIconfig spaces: two ports for connecting to VE#2 (32) and VE#3 (33) respectively, and one port for connecting to the CPU (10).
[0032] If the link connection status is normal (step 2300: Yes), the diagnostic SW (1210) checks whether the counter in the dedicated area in the extended configuration register is incrementing (step 2400). If it is confirmed that the counter is incrementing (step 2400: Yes), the diagnostic SW (1210) checks whether the flag in the dedicated area in the extended configuration register in PCI configuration space (1242) (1243) indicates a failure in the VE incorporated into the VM guest (step 2500). If no failure has occurred (step 2500: No), the process returns to step 2300, and steps 2300 to 2500 are repeated.
[0033] On the other hand, if a failure occurs (step 2500: Yes), the diagnostic SW (1210) reads failure information from a dedicated area in the extended configuration register that contains a flag indicating the occurrence of a failure (step 2501). The diagnostic SW (1210) also reads the serial number from the dedicated area in the extended configuration register that contains a flag indicating the occurrence of a failure, and retrieves the management number of the VE in non-virtualized mode from the table saved in step 1100 to identify the VE in which the failure occurred (step 2502). The diagnostic SW (1210) then registers in a summary file a timestamp indicating the time the failure occurred, the VE number, the fact that the VE is incorporated into a VM guest, and a suspected failure indicating the functional block in which the failure occurred (step 2503). The diagnostic SW (1210) also outputs the occurrence of the failure and the suspected failure to a syslog file (step 2504).
[0034] By the above processing from step 2500 to step 2504, the diagnostic SW (1210) detects a failure in the VE incorporated into the VM guest.
[0035] If it cannot be confirmed in step 2400 that the counter in the dedicated area in the extended configuration register is incrementing, that is, if the counter has stopped or cannot be read (step 2400: No), the diagnostic SW (1210) determines that the failure is in the PCI interface part in the VE guest (step 2411), reads the serial number from the dedicated area in the extended configuration register where the counter is not incrementing, and identifies the VE in which the failure occurred by retrieving the VE management number in the non-virtualized state from the table saved in step 1100 (step 2412).The diagnostic SW (1210) then registers in a summary file the timestamp indicating the time the failure occurred, the VE number, the fact that it is incorporated into the VM guest, and a suspected failure indicating the functional block in which the failure occurred (step 2413), and outputs the occurrence of the failure and the suspected failure to a syslog file (step 2414). By the above processing of step 2400 and step 2411 to step 2414, the diagnostic SW (1210) detects a fault in the PCI interface part in the VM guest while the VE is incorporated into the virtual machine guest.
[0036] If it is not possible to confirm in step 2300 that the link connection status is normal, that is, if the link speed or link width is not the expected value (step 2300: No), the diagnostic SW (1210) determines that the failure is due to an invalid link status (step 2311).The diagnostic SW (1210) then collects failure information and registers it in a log file (step 2312).Furthermore, the diagnostic SW (1210) registers in a summary file a timestamp indicating the time the failure occurred, the VE number, the fact that it is incorporated into the VM guest, and a suspected failure indicating the functional block (PCIe SW or CPU) in which the failure occurred (step 2313), and outputs the occurrence of the failure and the suspected failure to a syslog file (step 2314). By the above processing of step 2300, step 2311 to step 2314, the diagnostic SW (1210) detects an invalid link state fault in the port on the PCIeSW side to which the VE is connected and the port on the CPU side to which the PCIeSW is connected while the VE is incorporated into the virtual machine guest.
[0037] If the VE is not incorporated into the virtual machine (2100: No), fault handling is performed when the virtual machine is not running on the VE. The fault handling when the virtual machine is not running on the VE will be described below.
[0038] The diagnostic SW (1210) checks whether the link connection status is normal from the link status register (step 2110). This is equivalent to the operation in step 2300. If the link connection status is normal (step 2110: Yes), the diagnostic SW (1210) continues monitoring until a failure is detected via VEDRV (step 2111). If a failure is detected (step 2111: Yes), the diagnostic SW (1210) collects failure information and registers it in a log file (step 2112). Furthermore, the diagnostic SW (1210) registers a timestamp indicating the time the failure occurred, the VE number, and a suspected failure indicating the functional block where the failure occurred in a summary file (step 2113), and outputs the occurrence of the failure and the suspected failure identified from the failure information to a syslog file (step 2114). Through the processing from step 2111 to step 2114, the diagnostic SW (1210) detects a failure in a VE even when the VE is not incorporated into a virtual machine guest.
[0039] If it is not possible to confirm in step 2110 that the link connection status is normal, that is, if the link speed or link width is not the expected value (step 2110: No), the diagnostic SW (1210) determines that the failure is an invalid link status (step 2121), collects failure information, and registers it in a log file (step 2122). Furthermore, the diagnostic SW (1210) registers a timestamp indicating the time the failure occurred, the VE number, and a suspected failure indicating the functional block (PCIeSW or CPU) in which the failure occurred in a summary file (step 2123), and outputs information about the occurrence of the failure and the suspected failure to a syslog file (step 2124). Through the processing of steps 2110 and 2121 to 2114, the diagnostic SW (1210) detects an invalid link status failure in the PCIeSW port to which the VE is connected and the CPU port to which the PCIeSW is connected when the VE is not incorporated into a virtual machine guest.
[0040] As described above, when the diagnostic SW (1210) in the VM host detects a failure, it outputs information about the failure to a summary file or syslog file, allowing the VM host user or administrator to understand the details of the failure.
[0041] Next, the operation of the diagnostic SW (1710) in the VM guest will be described. FIG. 11 shows the operation of the diagnostic SW (1710) in the VM guest. First, the diagnostic SW (1710) in the VM guest clears all dedicated areas in the extended config registers in the PCI config spaces (1742) and (1743) to zero (step 3100). Next, the diagnostic SW (1710) in the VM guest writes the serial numbers read from VE#2 and VE#3 to the dedicated areas in the extended config registers (step 3200). Next, when the diagnostic SW (1710) in the VM guest is ready to start operation, it sets the flag for the dedicated area in the extended config register to the value "1" indicating "prepared" (step 3300). Furthermore, the diagnostic SW (1710) in the VM guest starts counting the counter for the dedicated area in the extended config register (step 3400).
[0042] The diagnostic SW (1710) in the VM guest continues monitoring via VEDRV (1612) and (1613) until it detects a failure (step 3411). If a failure is detected (step 3411: Yes), the diagnostic SW (1710) in the VM guest collects failure information and registers it in a log file (step 3412). Furthermore, the diagnostic SW (1710) in the VM guest registers a timestamp indicating the time the failure occurred, the VE number, and a suspected failure indicating the functional block in which the failure occurred in a summary file (step 3413), and outputs to a syslog file information about the occurrence of the failure and the suspected failure identified from the failure information (step 3414).
[0043] The diagnostic SW (1710) in the VM guest writes the failure information to a dedicated area in the extended configuration register corresponding to the VE where the failure occurred (step 3415). The diagnostic SW (1710) in the VM guest also sets the value "2" indicating "failure has occurred" to a flag in the dedicated area in the extended configuration register corresponding to the VE where the failure occurred (step 3416).
[0044] As described above, the diagnostic SW (1710) in the VM guest outputs information about the failure to a summary file or syslog file, allowing the VM guest user to understand the details of the failure. In addition, the diagnostic SW (1710) in the VM guest sets a value indicating "failure" to the flag in the dedicated area in the extended configuration register corresponding to the VE where the failure occurred and writes the failure information, allowing the VM host side to detect the occurrence of a failure in the VE embedded in the VM guest.
[0045] 8 and 9, examples of the contents registered in the summary file and syslog file by the processing of steps 2123 and 2124 by the VM host diagnostic SW (1210) are shown in (8-1) of Figure 8 and (9-1) of Figure 9, and examples of the contents registered in the summary file and syslog file by the processing of steps 2113 and 2114 are shown in (8-2) of Figure 8 and (9-2) of Figure 9. Also, examples of the contents registered in the summary file and syslog file by the processing of steps 2413 and 2414 by the VM host diagnostic SW (1210) are shown in (8-3) of Figure 8 and (9-3) of Figure 9, and examples of the contents registered in the summary file and syslog file by the processing of steps 2503 and 2504 are shown in (8-4) of Figure 8 and (9-4) of Figure 9.
[0046] As described above, in a VE incorporated into a VM guest, VE failure information detected on the VM guest side is transmitted to the VM host side through the extended config register, allowing the VM host side to recognize the VE failure that has occurred on the VM guest side and identify the suspected cause.
[0047] Furthermore, in failure modes where the extended configuration register is blocked, such as a failure in the PCIe interface on the VE side or a failure in the PCIe SW, the VM host can detect such failures by performing heartbeat monitoring (counter accumulation and monitoring).
[0048] In this disclosure, a VE (Vector Engine) has been described as an example of a dedicated processor, but the present disclosure is not limited to this. Similar methods can be applied to a GPU (Graphics Processing Unit) instead of a VE. In a computer system in which a VE or GPU is incorporated into a virtual machine, when a failure occurs in the GPU or VE, the failure can be quickly recognized and the suspected failure identified, enabling early recovery and improving availability and uptime. Furthermore, the technology disclosed herein can be applied to various PCI devices, such as network cards connectable via PCI and fiber channels such as InfiniBand, in addition to the dedicated processors described above.
[0049] 12 is a diagram illustrating an example configuration of a computer system according to an embodiment of the present disclosure. The computer system (1) includes a virtual machine host (40), which is a host machine, and a virtual machine guest (50), which is a virtual machine incorporating a dedicated processor. The virtual machine guest (50) includes a first extended configuration register (51) and a first diagnostic unit (first diagnostic means) (52) that notifies the virtual machine host of a failure in the dedicated processor incorporated in the virtual machine host via information included in the first extended configuration register. The virtual machine host (40) includes a second extended configuration register (41), which has the same content as the first extended configuration register (51), and information written to the first extended configuration register (51) by the virtual machine guest (50) can be read from the virtual machine host (40) via the second extended configuration register (41), and a second diagnostic unit (second diagnostic means) (42) that detects a fault related to a dedicated processor incorporated in the virtual machine guest (50) from the information included in the second extended configuration register (41).
[0050] FIG. 13 is a block diagram showing an example of the hardware configuration of the computer system 1 shown in FIG. 1. Here, the computer system 1 includes a CPU 10, PCIe SW #0 20, PCIe SW #1 30, VEs #0 to #3 30 to 33, as well as a ROM (Read Only Memory) 11, a storage device 12, and a RAM (Random Access Memory) 13. The ROM 11 and the storage device 12 store computer programs and the like that implement the functions of the computer system 1. The RAM 13 is used as a work area or the like for temporarily storing data and the like used by the CPU 10 and the like during operation. The computer system 1 may also include input / output ports 14 for connecting input / output devices such as a keyboard, a mouse, and a display device. These are connected via a bus or the like. The ROM (11) may be configured with an EEPROM (Electrically Erasable Programmable Read-Only Memory) or the like, and the recording device (12) may be configured with a hard disk, SSD, or the like, so that the computer programs for realizing the functions of the computer system (1) can be updated using these devices.
[0051] Although the present disclosure has been described above with reference to the embodiments, the present disclosure is not limited to the above-described embodiments. Various modifications that can be understood by those skilled in the art can be made to the configuration and details of the present disclosure within the scope of the present disclosure. Furthermore, each embodiment can be combined with other embodiments as appropriate.
[0052] Some or all of the above-described embodiments can be described as, but are not limited to, the following supplementary notes.
[0053] (Appendix 1) a first extended configuration register; a first diagnostic means for notifying the virtual machine host of a failure in a dedicated processor incorporated in the virtual machine host via information contained in the first extended configuration register; a virtual machine guest that is a virtual machine incorporating the dedicated processor; a second extended configuration register, the second extended configuration register having the same content as the first extended configuration register, and information written by the virtual machine guest to the first extended configuration register being readable from the virtual machine host via the second extended configuration register; a second diagnostic means for detecting a fault associated with a dedicated processor incorporated in the virtual machine guest from information contained in the second extended configuration register; a virtual machine host that is a host machine, A computer system comprising:
[0054] (Appendix 2) when the first diagnostic means of the virtual machine guest detects a failure via a driver for the embedded dedicated processor, it sets information indicating the occurrence of a failure in the embedded dedicated processor to a flag that is included in the first extended configuration register and indicates a state of the virtual machine; the second diagnostic means of the virtual machine host detects a failure of the dedicated processor incorporated in the virtual machine guest from a flag that is included in the second extended configuration register and indicates a state of the virtual machine guest; 2. The computer system of claim 1.
[0055] (Appendix 3) the first diagnostic means of the virtual machine guest starts accumulating a counter included in the first extended configuration register when preparations for starting operation are complete; the second diagnostic means of the virtual machine host determines that there is a failure in the interface with the dedicated processor on the virtual machine guest side when the counting of the counter included in the second extended configuration register stops or cannot be read; 10. The computer system of claim 1 or 2.
[0056] (Appendix 4) a connection switch for connecting the dedicated processor and a general-purpose processor; the second diagnostic means of the virtual machine host determines that a link state error has occurred when the link speed and / or link width on the general-purpose processor side of the connection switch or the link speed and / or link width on the dedicated processor side of the connection switch does not reach an expected value; 4. The computer system of any one of claims 1 to 3.
[0057] (Appendix 5) the second diagnostic means of the virtual machine host reads a unique serial number of a dedicated processor connected to a computer system from the dedicated processor, and creates a table that associates the management number of the dedicated processor connected with the serial number; the first diagnostic means of the virtual machine guest reads the serial number from the dedicated processor incorporated therein and writes it to the first extended configuration register; when detecting a failure of the dedicated processor incorporated in the virtual machine guest from the flag included in the second extended configuration register, the second diagnostic means of the virtual machine host identifies a management number of the incorporated dedicated processor by searching the table using the serial number of the incorporated dedicated processor included in the second extended configuration register, and identifies the dedicated processor in which the failure has been detected; 5. The computer system of any one of claims 1 to 4.
[0058] (Appendix 6) when the first diagnostic means of the virtual machine guest detects a failure of the embedded dedicated processor, it collects failure information and writes the collected information about the failure to the first extended configuration register; the second diagnostic means of the virtual machine host, when detecting a failure of the dedicated processor incorporated in the virtual machine guest from a flag indicating a state of the virtual machine guest, reads information about the failure from the second extended configuration register; 6. The computer system of any one of appendices 1 to 5.
[0059] (Appendix 7) When the second diagnostic means of the virtual machine host detects the occurrence of a failure, it registers and outputs information about the failure, ie, information about the suspected failure, to a predetermined file in the virtual machine host. 7. The computer system of any one of claims 1 to 6.
[0060] (Appendix 8) the first diagnostic means of the virtual machine guest registers and outputs information about a suspected failure, which is information about a failure of the built-in dedicated processor, to a predetermined file in the virtual machine guest; 8. The computer system of any one of claims 1 to 7.
[0061] (Appendix 11) a virtual machine guest, which is a virtual machine having a dedicated processor incorporated therein, notifies the virtual machine host of a failure in the dedicated processor incorporated in the virtual machine host via information included in a first extended configuration register; a second extended configuration register having the same contents as the first extended configuration register, the second extended configuration register being a second extended configuration register that the virtual machine host can read information written by the virtual machine guest to the first extended configuration register via the second extended configuration register, and detecting a failure related to a dedicated processor incorporated in the virtual machine guest from information contained in the second extended configuration register; How to handle failures.
[0062] (Appendix 12) when the first diagnostic means of the virtual machine guest detects a failure via a driver for the built-in dedicated processor, it sets information indicating the occurrence of a failure in the built-in dedicated processor to a flag that is included in the first extended configuration register and indicates a state of the virtual machine; detecting a failure of the dedicated processor incorporated in the virtual machine guest by the second diagnostic means of the virtual machine host based on a flag that is included in the second extended configuration register and indicates a state of the virtual machine guest; 12. The fault handling method according to claim 11.
[0063] (Appendix 13) When the first diagnostic means of the virtual machine guest is ready to start operation, the counter included in the first extended configuration register starts counting; When the second diagnostic means of the virtual machine host stops counting or cannot read the counter included in the second extended configuration register, it determines that there is a failure in the interface with the dedicated processor on the virtual machine guest side. 13. A fault handling method according to claim 11 or 12.
[0064] (Appendix 14) When the second diagnostic means of the virtual machine host determines that the link speed and / or link width on the general-purpose processor side of the connection switch connecting the dedicated processor and the general-purpose processor, or the link speed and / or link width on the dedicated processor side of the connection switch, does not reach an expected value, a failure due to an incorrect link state has occurred. 14. A fault handling method according to any one of appendices 11 to 13.
[0065] (Appendix 15) the second diagnostic means of the virtual machine host reads out a unique serial number of the dedicated processor connected to the computer system from the dedicated processor, and creates a table that associates the management number of the dedicated processor connected with the serial number; reading the serial number from the dedicated processor embedded in the virtual machine guest by the first diagnostic means of the virtual machine guest and writing the serial number to the first extended configuration register; when the second diagnostic means of the virtual machine host detects a failure of the dedicated processor incorporated in the virtual machine guest from a flag included in the second extended configuration register, the second diagnostic means searches the table using the serial number of the incorporated dedicated processor included in the second extended configuration register to identify the management number of the incorporated dedicated processor, and identify the dedicated processor in which the failure has been detected; 15. A fault handling method according to any one of appendices 11 to 14.
[0066] (Appendix 16) When a fault in the dedicated processor is detected by the first diagnostic means of the virtual machine guest, fault information is collected and the collected fault information is written to the first extended configuration register; when the second diagnostic means of the virtual machine host detects a failure of the dedicated processor incorporated in the virtual machine guest from a flag indicating a state of the virtual machine guest, reading information about the failure from the second extended configuration register; 16. A fault handling method according to any one of appendices 11 to 15.
[0067] (Appendix 17) When the second diagnostic means of the virtual machine host detects the occurrence of a failure, information on the failure, i.e., information on a suspected failure, is registered and output to a predetermined file in the virtual machine host. 17. A fault handling method according to any one of appendices 11 to 16.
[0068] (Appendix 18) registering and outputting information about a suspected failure, which is information about a failure of the dedicated processor incorporated in the virtual machine guest, to a predetermined file in the virtual machine guest by the first diagnostic means of the virtual machine guest; 18. A fault handling method according to any one of appendices 11 to 17.
[0069] (Appendix 21) a virtual machine guest, which is a virtual machine having a dedicated processor incorporated therein, notifies the virtual machine host of a failure in the dedicated processor incorporated in the virtual machine host via information included in a first extended configuration register; a second extended configuration register having the same contents as the first extended configuration register, the second extended configuration register being a second extended configuration register that the virtual machine host can read information written by the virtual machine guest to the first extended configuration register via the second extended configuration register, and detecting a failure related to a dedicated processor incorporated in the virtual machine guest from information contained in the second extended configuration register; A program for fault handling that causes a computer to execute the following:
[0070] (Appendix 22) when the first diagnostic means of the virtual machine guest detects a failure via a driver for the built-in dedicated processor, it sets information indicating the occurrence of a failure in the built-in dedicated processor to a flag that is included in the first extended configuration register and indicates a state of the virtual machine; detecting a failure of the dedicated processor incorporated in the virtual machine guest by the second diagnostic means of the virtual machine host based on a flag that is included in the second extended configuration register and indicates a state of the virtual machine guest; 21. The program described in Appendix 21.
[0071] (Appendix 23) When the first diagnostic means of the virtual machine guest is ready to start operation, the counter included in the first extended configuration register starts counting; When the second diagnostic means of the virtual machine host stops counting or cannot read the counter included in the second extended configuration register, it determines that there is a failure in the interface with the dedicated processor on the virtual machine guest side. 21. A program according to claim 21 or 22.
[0072] (Appendix 24) When the second diagnostic means of the virtual machine host determines that the link speed and / or link width on the general-purpose processor side of the connection switch connecting the dedicated processor and the general-purpose processor, or the link speed and / or link width on the dedicated processor side of the connection switch, does not reach an expected value, a failure due to an incorrect link state has occurred. 24. The program of any one of appendices 21 to 23.
[0073] (Appendix 25) the second diagnostic means of the virtual machine host reads out a unique serial number of the dedicated processor connected to the computer system from the dedicated processor, and creates a table that associates the management number of the dedicated processor connected with the serial number; reading the serial number from the dedicated processor embedded in the virtual machine guest by the first diagnostic means of the virtual machine guest and writing the serial number to the first extended configuration register; when the second diagnostic means of the virtual machine host detects a failure of the dedicated processor incorporated in the virtual machine guest from a flag included in the second extended configuration register, the second diagnostic means searches the table using the serial number of the incorporated dedicated processor included in the second extended configuration register to identify the management number of the incorporated dedicated processor, and identify the dedicated processor in which the failure has been detected; 25. The program of any one of appendices 21 to 24.
[0074] (Appendix 26) When a fault in the dedicated processor is detected by the first diagnostic means of the virtual machine guest, fault information is collected and the collected fault information is written to the first extended configuration register; when the second diagnostic means of the virtual machine host detects a failure of the dedicated processor incorporated in the virtual machine guest from a flag indicating a state of the virtual machine guest, reading information about the failure from the second extended configuration register; 26. The program of any one of appendices 21 to 25.
[0075] (Appendix 27) When the second diagnostic means of the virtual machine host detects the occurrence of a failure, information on the failure, i.e., information on a suspected failure, is registered and output to a predetermined file in the virtual machine host. 27. The program of any one of appendices 21 to 26.
[0076] (Appendix 28) registering and outputting information about a suspected failure, which is information about a failure of the dedicated processor incorporated in the virtual machine guest, to a predetermined file in the virtual machine guest by the first diagnostic means of the virtual machine guest; 28. The program of any one of appendices 21 to 27. [Explanation of symbols]
[0077] 1. Computer Systems 10 CPU 20,21 PCIe SW 30~33 VE (Vector Engine)
Claims
1. a first extended configuration register; a first diagnostic means for notifying the virtual machine host of a failure in a dedicated processor incorporated in the virtual machine host via information contained in the first extended configuration register; a virtual machine guest that is a virtual machine incorporating the dedicated processor; a second extended configuration register, the second extended configuration register having the same content as the first extended configuration register, and information written by the virtual machine guest to the first extended configuration register being readable from the virtual machine host via the second extended configuration register; a second diagnostic means for detecting a fault associated with a dedicated processor incorporated in the virtual machine guest from information contained in the second extended configuration register; a virtual machine host that is a host machine, A computer system comprising:
2. when the first diagnostic means of the virtual machine guest detects a failure via a driver for the embedded dedicated processor, it sets information indicating the occurrence of a failure in the embedded dedicated processor to a flag that is included in the first extended configuration register and indicates a state of the virtual machine; the second diagnostic means of the virtual machine host detects a failure of the dedicated processor incorporated in the virtual machine guest from a flag that is included in the second extended configuration register and indicates a state of the virtual machine guest; 10. The computer system of claim 1.
3. the first diagnostic means of the virtual machine guest starts counting a counter included in the first extended configuration register when preparations for starting operation are complete; the second diagnostic means of the virtual machine host determines that a failure has occurred in the interface with the dedicated processor on the virtual machine guest side when the counting of the counter included in the second extended configuration register has stopped or the counter cannot be read; 10. The computer system of claim 1.
4. a connection switch for connecting the dedicated processor and a general-purpose processor; the second diagnostic means of the virtual machine host determines that a link state error has occurred when the link speed and / or link width on the general-purpose processor side of the connection switch or the link speed and / or link width on the dedicated processor side of the connection switch does not reach an expected value; 10. The computer system of claim 1.
5. the second diagnostic means of the virtual machine host reads a unique serial number of a dedicated processor connected to a computer system from the dedicated processor, and creates a table in which the management number of the dedicated processor connected and the serial number are associated with each other; the first diagnostic means of the virtual machine guest reads the serial number from the dedicated processor incorporated therein and writes it to the first extended configuration register; when detecting a failure of the dedicated processor incorporated in the virtual machine guest from a flag included in the second extended configuration register, the second diagnostic means of the virtual machine host identifies a management number of the incorporated dedicated processor by searching the table using the serial number of the incorporated dedicated processor included in the second extended configuration register, and identifies the dedicated processor in which the failure has been detected; 3. The computer system of claim 2.
6. the first diagnostic means of the virtual machine guest, upon detecting a failure of the embedded dedicated processor, collects failure information and writes the collected information about the failure to the first extended configuration register; the second diagnostic means of the virtual machine host, when detecting a failure of the dedicated processor incorporated in the virtual machine guest from a flag indicating a state of the virtual machine guest, reads information about the failure from the second extended configuration register; 3. The computer system of claim 2.
7. When the second diagnostic means of the virtual machine host detects the occurrence of a failure, it registers and outputs information about the failure, i.e., information about a suspected failure, to a predetermined file in the virtual machine host.
7. A computer system according to any one of claims 1 to 6.
8. the first diagnostic means of the virtual machine guest registers and outputs information about a suspected failure, which is information about a failure of the dedicated processor incorporated in the virtual machine guest, to a predetermined file within the virtual machine guest; 7. A computer system according to any one of claims 1 to 6.
9. a virtual machine guest, which is a virtual machine having a dedicated processor incorporated therein, notifies the virtual machine host of a failure in the dedicated processor incorporated in the virtual machine host via information included in a first extended configuration register; a second extended configuration register having the same contents as the first extended configuration register, the second extended configuration register being a second extended configuration register that is a host machine and from which information written by the virtual machine guest to the first extended configuration register can be read from the virtual machine host via the second extended configuration register, and a failure related to a dedicated processor incorporated in the virtual machine guest is detected from information contained in the second extended configuration register; How to handle failures.
10. a virtual machine guest, which is a virtual machine having a dedicated processor incorporated therein, notifies the virtual machine host of a failure in the dedicated processor incorporated in the virtual machine host via information included in a first extended configuration register; a second extended configuration register having the same contents as the first extended configuration register, the second extended configuration register being a second extended configuration register that is a host machine and from which information written by the virtual machine guest to the first extended configuration register can be read from the virtual machine host via the second extended configuration register, and a failure related to a dedicated processor incorporated in the virtual machine guest is detected from information contained in the second extended configuration register; A program for fault handling that causes a computer to execute the following:
Citation Information
Patent Citations
Virtual computer system
JP2008269194A