WO2018173130A1 - Machine virtuelle et procédé de mise à jour de pilote de dispositif - Google Patents
Machine virtuelle et procédé de mise à jour de pilote de dispositif Download PDFInfo
- Publication number
- WO2018173130A1 WO2018173130A1 PCT/JP2017/011324 JP2017011324W WO2018173130A1 WO 2018173130 A1 WO2018173130 A1 WO 2018173130A1 JP 2017011324 W JP2017011324 W JP 2017011324W WO 2018173130 A1 WO2018173130 A1 WO 2018173130A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- hba
- virtual
- driver
- entry point
- kernel
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 27
- 102000004137 Lysophosphatidic Acid Receptors Human genes 0.000 claims abstract description 30
- 108090000642 Lysophosphatidic Acid Receptors Proteins 0.000 claims abstract description 30
- 238000005192 partition Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000001629 suppression Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
Images
Definitions
- the present invention relates to a technology for updating a device driver with a virtual machine.
- HBA driver In order to control the host bus adapter (Host Bus Adapter: HBA) installed in the server, a host bus adapter driver (hereinafter, HBA driver) is installed in the server. This HBA driver is loaded on the memory when an OS (Operation System) is started, and controls the HBA.
- OS Operating System
- Patent Document 1 describes a technique for updating an HBA driver while maintaining a connection between a computer and a peripheral device.
- the HBA driver is configured by a plurality of modules, the OS interface module and the hardware interface module are not changed, and only the driver module separated from the I / F is updated.
- a virtual computer includes an HBA (Host Bus Adapter), a hypervisor having a first virtual HBA and a second virtual HBA corresponding to the HBA, and an LPAR (LPAR) operating under the control of the hypervisor. (Logical PARtion).
- the LPAR is connected to the first HBA driver associated with the first virtual HBA, the second HBA driver associated with the second virtual HBA, and the first HBA driver.
- a switching control module having a first virtual entry point and a second virtual entry point connected to the second HBA driver, and an OS (Operation System) kernel. The switching control module performs switching control to determine whether the connection destination of the OS kernel is the first virtual entry point or the second virtual entry point.
- the functional block diagram of the virtual computer system which concerns on one Embodiment of this invention.
- An example of the virtual HBA information management table 161 is shown.
- An example of the flag management table 261 is shown.
- An example of the entry point management table 263 is shown.
- the sequence of the update process of an HBA driver is shown.
- the functional block diagram of the virtual machine system after path switching.
- the functional block diagram of the virtual machine system which deleted the HBA driver (working) 241.
- program is used as the subject.
- the program performs processing determined by being executed by the processor using the memory and the communication port (communication control device)
- the processor is used as the subject.
- the explanation may be as follows. Further, the processing disclosed with the program as the subject may be processing performed by a computer such as a management server or an information processing apparatus. Further, part or all of the program may be realized by dedicated hardware.
- Various programs may be installed in each computer by a program distribution server or a storage medium that can be read by the computer.
- the program distribution server includes a CPU and storage resources, and the storage resources further store a distribution program and a program to be distributed.
- the distribution program is executed by the CPU, the CPU of the program distribution server distributes the distribution target program to other computers.
- the server may have an input / output device.
- input / output devices include a display, a keyboard, and a pointer device, but other devices may be used.
- a serial interface or an Ethernet interface is used as the input / output device, a display computer having a display or a keyboard or a pointer device is connected to the interface, and the display information is transmitted to the display computer.
- the display computer may perform the display, or the input may be replaced by the input / output device by receiving the input.
- a virtual computer includes an HBA (Host Bus Adapter), a hypervisor having a first virtual HBA and a second virtual HBA corresponding to the HBA, and an LPAR (Logical Logical) that operates under the control of the hypervisor. PARtion).
- the LPAR includes a first HBA driver associated with the first virtual HBA, a second HBA driver associated with the second virtual HBA, and a first virtual entry connected to the first HBA driver.
- a switching control module having a second virtual entry point connected to the point and the second HBA driver, and an OS (Operation System) kernel. The switching control module may perform switching control to determine whether the connection destination of the OS kernel is the first virtual entry point or the second virtual entry point.
- the hypervisor may perform switching control of whether the connection destination of the HBA is the first virtual HBA or the second virtual HBA.
- connection destination of the OS kernel is the first virtual entry point
- the HBA driver obtains the I / O command from the OS kernel
- the HBA is obtained via the first virtual HBA based on the I / O command. It may be operated.
- the LPAR unloads the first HBA adapter driver after the driver switching control module switches the connection destination of the OS kernel from the first virtual entry point to the second virtual entry point, and loads the third HBA adapter driver. You may further have the update control utility to load.
- the driver switching control module switches the connection destination of the OS kernel from the first virtual entry point to the second virtual entry point
- the second HBA adapter driver acquires the I / O command from the OS kernel
- the I / O The HBA may be operated via the second virtual HBA based on the command.
- the driver switching control module may switch the connection destination of the OS kernel from the second virtual entry point to the first virtual entry point.
- FIG. 1 is a functional configuration diagram of the virtual machine system according to the present embodiment.
- the virtual machine system has a server 1 and a storage device 7.
- the server 1 and the storage device 7 are connected via a network 9.
- the server 1 receives a read request of data stored in the storage device 7 and a data write request (I / O request) to the storage device 7 from a business computer (not shown). Based on this I / O request, the server 1 sends a data I / O command to the storage apparatus 7 to read / write data.
- the server 1 includes a CPU (Central Processing Unit) 10, a memory 12, and an HBA (host bus adapter) 15.
- CPU Central Processing Unit
- HBA host bus adapter
- the CPU 10 reads a predetermined computer program and operates the hypervisor 100 and a plurality of LPARs (Logical Partitions) 200 and 200 on the memory.
- LPARs Logical Partitions
- the hypervisor 100 is a virtualization mechanism that physically makes one server appear logically to a plurality of servers.
- the hypervisor 100 generates and controls the LPARs 200 and 200.
- the hypervisor 100 includes virtual HBA information 111 and 113, physical HBA information 130, and a virtual HBA information management table 161.
- the physical HBA information 130 includes physical address information of the HBA 15.
- the physical HBA information 130 includes a PCI memory space address and a configuration space address of the HBA 15.
- the physical HBA information 130 becomes an interface with the hardware HBA 15.
- the virtual HBA information 111 and 113 has address information for virtualizing the HBA 15 with respect to the LPAR 200.
- the hypervisor 100 may have a plurality of virtual HBA information 111 and 113 for one LPAR 200. In FIG. 1, two pieces of HBA information # 1 for LPAR # 1 are prepared.
- the virtual HBA information 111 is used for the working path, and the virtual HBA information 113 is used for the update path. The working path and update path will be described later.
- the virtual HBA information 111 and 113 are virtual HBAs for the LPAR 200.
- the virtual HBA information management table 161 manages addresses included in the virtual HBA information 111 and 113.
- the hypervisor 100 refers to the virtual HBA information management table 161 and identifies the address of the data transmission destination.
- FIG. 2 shows an example of the virtual HBA information management table 161.
- the virtual HBA information management table 161 has a partition 1611, a PCI memory space address 1612, a config space address 1613, and a used path 1614 as data items.
- the category 1611 indicates whether it is for current use or for update.
- the virtual HBA information 111 corresponds to the current use
- the virtual HBA information 113 corresponds to the update.
- the PCI memory space address 1612 is a PCI memory space address of each of the virtual HBAs for current use and update.
- the config space address 1613 is a config space address of each of the virtual HBAs for current use and update.
- the used path 1614 indicates which PCI memory space address 1612 and config space address 1613 for use and update are in use. In the usage path 1614, “1” indicates that it is in use.
- the hypervisor 100 normally processes the I / O command received from the LPAR 200 using the current PCI memory space address 1612 and the config space address 1612, that is, the virtual HBA information 111.
- the hypervisor 100 processes the I / O command received from the LPAR 200 using the PCI memory space address 1612 and the configuration space address 1612 for updating, that is, the virtual HBA information 113.
- the LPAR 200 operates under the control of the hypervisor 100.
- LPAR # 1 will be described, but the same applies to other LPARs.
- a guest OS operates.
- the guest OS of the LPAR 200 includes an update control utility 210, an OS kernel 220, a driver update control module 230, HBA drivers 241, 243, virtual HBA information 251, 253, a flag management table 261, and entry point management. And a table 263.
- FIG. 3 shows an example of the flag management table 261.
- the flag management table 261 has a flag name 2611 and a flag set value 2612 as data items.
- the flag management table 261 stores whether the I / O command issuance suppression flag is ON or OFF (in the figure, the flag indicates “OFF”).
- FIG. 4 shows an example of the entry point management table 263.
- the entry point management table 263 has a classification 2631, entry point information 2632, and a used path 2633 as data items.
- the entry point management table 263 stores current and update entry points and information indicating which of the current and update entry points are in use.
- the virtual entry point 231 corresponds to the current use
- the virtual entry point 233 corresponds to the update.
- the virtual HBA information 251 is virtual HBA information of the working path associated with the HBA driver (working) 241.
- the virtual HBA information 251 corresponds to the virtual HBA information 111 of the hypervisor 100.
- the virtual HBA information 253 is virtual HBA information of an update path associated with the HBA driver (for update) 243.
- the virtual HBA information 253 corresponds to the virtual HBA information 113 of the hypervisor 100.
- the driver update control module 230 has a virtual entry point 231 and a virtual entry point 233.
- the virtual entry point 231 is a working virtual entry point associated with the HBA driver (working) 241.
- the virtual entry point 233 is an update virtual entry point associated with the HBA driver (for update) 243.
- the virtual entry point 231-HBA driver (active) 241-virtual HBA information 251 indicates that the active path is virtual entry point 233-HBA driver (update) 243-virtual HBA information 253.
- the update path is configured.
- the update control utility 210 updates the HBA driver 241. Details of the update processing of the HBA driver 241 will be described later.
- the OS kernel 220 processes an I / O command for the storage apparatus 7 based on an I / O request from a business computer (not shown). For example, the OS kernel 220 sends an I / O command to the HBA driver (current) 241 or the HBA driver (update) 243 and obtains a response thereto. At this time, the OS kernel 220 refers to the entry point management table 263 and specifies the entry point of the transmission destination of the I / O command.
- the OS kernel 220 normally refers to the entry point management table 263, identifies the current entry point information 2632 in which “1” is set in the use path 2633, and sends an I / O command to the current virtual entry point 231. Send to. That is, the OS kernel 220 is normally connected to the working path via the entry point 221 and the virtual entry point 231.
- the OS kernel 220 refers to the entry point management table 263, specifies the entry point information 2632 for update in which “1” is set in the use path 2633, and The / O command is transmitted to the virtual entry point 233 for update. That is, the OS kernel 220 is connected to the update path via the entry point 221 and the virtual entry point 233 during the HBA driver update process.
- the driver update control module 230 controls pre-processing and post-processing for updating the HBA driver (current) 241. For example, the driver update control module 230 switches the transmission destination of the I / O command from the virtual entry point 231 to the virtual entry point 233, or from the virtual entry point 233 to the virtual entry point 231.
- the driver update control module 230 instructs the hypervisor 100 to switch the virtual HBA. For example, the driver update control module 230 instructs whether to switch the connection destination of the HBA 15 from the virtual HBA information 111 to the virtual HBA information 113 or from the virtual HBA information 113 to the virtual HBA information 111.
- the HBA driver (current) 241 and the HBA driver (update) 243 operate the HBA 15 according to the I / O command acquired from the OS kernel 220 to transmit / receive data to / from the storage apparatus 7.
- the HBA driver (working) 241 is an HBA driver incorporated in the working path.
- the HBA driver (working) 241 acquires and processes an I / O command sent from the OS kernel 220 to the virtual entry point 231 during normal operation.
- the HBA driver (active) 241 sends an I / O command to the hypervisor 100 using the virtual HBA information 251.
- the HBA driver (for update) 243 is an HBA driver incorporated in the update path.
- the HBA driver (for update) 243 acquires and processes the I / O command sent from the OS kernel 220 to the virtual entry point 233 during the update process.
- the HBA driver (for update) 243 uses the virtual HBA information 253 to send an I / O command to the hypervisor 100.
- the HBA driver (current) 241 and the HBA driver (update) 243 may have equivalent functions.
- FIG. 5 shows an update processing sequence of the HBA driver.
- a process for updating the HBA driver (active) 241 from the state shown in FIG. 1 will be described with reference to FIG.
- the update control utility 210 instructs the driver update control module 230 to start the HBA driver update process (S101). Thereby, a series of HBA driver update processing is started. As a pre-process for updating the HBA driver body, a path switching process (from the current path to the update path) is performed.
- the driver update control module 230 Upon receiving a driver update process start instruction from the update control utility 210, the driver update control module 230 stops issuing a new I / O command to the HBA driver (active) 241 and performs an I / O command in the flag management table 261.
- the set value 2612 of the issue suppression flag is turned ON (S201).
- the driver update control module 230 instructs the hypervisor 100 to switch the virtual HBA (S205).
- the hypervisor 100 switches the virtual HBA in response to this switching instruction (S301). That is, the hypervisor 100 sets “0” indicating non-use to the current use path 1614 of the virtual HBA information management table 161 and sets “1” indicating use to the update use path 1614. As a result, the virtual HBA information used by the hypervisor 100 for the LPAR 200 is switched to the virtual HBA information 113. That is, the physical HBA information 130 is connected to the update path. The hypervisor 100 notifies the driver update control module 230 of the completion of switching of the virtual HBA (S303).
- the driver update control module 230 switches entry points (S207). That is, the driver update control module 230 sets “0” indicating non-use to the current use path 2633 of the entry point management table 263 and sets “1” indicating use to the update use path 2633. As a result, the virtual entry point used by the OS kernel 220 is switched to the virtual entry point 233. That is, the driver update control module 230 is connected to the update path.
- FIG. 6 shows a state where the path is switched.
- the driver update control module 230 turns off the setting value 2612 of the I / O command issuance suppression flag in the flag management table 261, restarts the processing that has been stopped using the update path, Issue an I / O command (S209).
- the driver update control module 230 notifies the update control utility 210 of completion of the path switching process (S211).
- the update control utility 210 unloads the HBA driver (working) 241 from the LPAR 200 after completing the path switching (S103).
- FIG. 7 shows a state where the HBA driver (working) 241 is unloaded.
- the update control utility 210 loads a new HBA driver (current: new) 245 into the LPAR 200 (S 105).
- the HBA driver (current) 241 to be updated is unloaded from the memory 12, and a new HBA driver (current: new) 245 is loaded.
- the HBA driver main body is updated from the HBA driver (current) 241 to the HBA driver (current: new) 245.
- the update control utility 210 instructs the driver update control module 230 to end the HBA driver update process (S107).
- a path switching process (from the update path to the working path) is performed as post-processing for updating the HBA driver body.
- the driver update control module 230 When receiving an instruction to end the driver update process from the update control utility 210, the driver update control module 230 stops issuing a new I / O command and sets the I / O command issue suppression flag set value 2612 in the flag management table 261. Is turned ON (S213). When all the I / O commands being executed are completed (S215: Yes), the driver update control module 230 instructs the hypervisor 100 to switch the virtual HBA (S217).
- the hypervisor 100 switches the virtual HBA in response to this switching instruction (S305). That is, the hypervisor 100 sets “0” indicating non-use to the update use path 1614 of the virtual HBA information management table 161, and sets “1” indicating use to the current use path 1614. As a result, the virtual HBA information used by the hypervisor 100 for the LPAR 200 is switched to the virtual HBA information 111. That is, the physical HBA information 130 is connected to the working path. The hypervisor 100 notifies the driver update control module 230 of the completion of switching of the virtual HBA (S307).
- the driver update control module 230 switches entry points (S219).
- the driver update control module 230 sets “0” indicating non-use in the update use path 2633 of the entry point management table 263 and sets “1” indicating use in the current use path 2633.
- the virtual entry point used by the OS kernel 220 is switched to the virtual entry point 231. That is, the driver update control module 230 is connected to the working path.
- the driver update control module 230 turns off the setting value 2612 of the I / O command issuance suppression flag in the flag management table 261, restarts the processing that has been stopped using the working path, and processes the new I / O command. Is issued (S221). As a result, the I / O command processing using the updated HBA driver (current: new) 245 is performed.
- the driver update control module 230 notifies the update control utility 210 of the end of the HBA driver update process (S223).
- FIG. 8 shows a state where the path is switched.
- server 15 HBA 100 Hypervisor 111, 113 Virtual HBA information 130 Physical HBA information 200 LPAR 210 Update control utility 220 OS kernel 221 Entry point 230 Driver update control module 231, 233 Virtual entry point 241, 243 HBA driver 251, 253 Virtual HBA information
Landscapes
- Stored Programmes (AREA)
Abstract
Cette machine virtuelle comprend : un HBA 15; un hyperviseur 100 ayant des informations HBA virtuelles 111, 113 qui sont associées au HBA 15; et un LPAR 200. Le LPAR 200 comprend : un pilote HBA 241 (opérationnel); un pilote HBA 243 (pour mise à jour); un module 230 de commande de commutation de pilote ayant des points d'entrée virtuels 231, 233; et un noyau d'OS 220. Le module de commande de commutation de pilote effectue une commande de commutation de telle sorte que le noyau d'OS est sélectivement connecté soit au point d'entrée virtuel, soit au point d'entrée virtuel.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/011324 WO2018173130A1 (fr) | 2017-03-22 | 2017-03-22 | Machine virtuelle et procédé de mise à jour de pilote de dispositif |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/011324 WO2018173130A1 (fr) | 2017-03-22 | 2017-03-22 | Machine virtuelle et procédé de mise à jour de pilote de dispositif |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018173130A1 true WO2018173130A1 (fr) | 2018-09-27 |
Family
ID=63586174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/011324 WO2018173130A1 (fr) | 2017-03-22 | 2017-03-22 | Machine virtuelle et procédé de mise à jour de pilote de dispositif |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2018173130A1 (fr) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090178033A1 (en) * | 2008-01-07 | 2009-07-09 | David Carroll Challener | System and Method to Update Device Driver or Firmware Using a Hypervisor Environment Without System Shutdown |
US20140372794A1 (en) * | 2013-06-12 | 2014-12-18 | International Business Machines Corporation | Implementing concurrent device driver maintenance and recovery for an sriov adapter in a virtualized system |
-
2017
- 2017-03-22 WO PCT/JP2017/011324 patent/WO2018173130A1/fr active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090178033A1 (en) * | 2008-01-07 | 2009-07-09 | David Carroll Challener | System and Method to Update Device Driver or Firmware Using a Hypervisor Environment Without System Shutdown |
US20140372794A1 (en) * | 2013-06-12 | 2014-12-18 | International Business Machines Corporation | Implementing concurrent device driver maintenance and recovery for an sriov adapter in a virtualized system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10353714B1 (en) | Non-disruptive upgrade of multipath drivers in information processing system | |
US11886903B2 (en) | Continuous uptime of guest virtual machines during upgrade of a virtualization host device | |
US7953831B2 (en) | Method for setting up failure recovery environment | |
US7930371B2 (en) | Deployment method and system | |
JP5174110B2 (ja) | 自動化されたモジュール型のセキュアな起動ファームウェアの更新 | |
US20110113426A1 (en) | Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods | |
US8938528B2 (en) | Computer system, and method for managing resource pool information | |
US7346792B2 (en) | Method and system for managing peripheral connection wakeup in a processing system supporting multiple virtual machines | |
US10289564B2 (en) | Computer and memory region management method | |
US20120179804A1 (en) | Management method of computer system, computer system, and program | |
US20120047357A1 (en) | Methods and systems for enabling control to a hypervisor in a cloud computing environment | |
EP3785111B1 (fr) | Mise à jour en direct d'un module de dispositif noyau | |
US20190121656A1 (en) | Virtualization operations for directly assigned devices | |
US20190121745A1 (en) | Remapping virtual devices for virtual machines | |
US20210182092A1 (en) | Peripheral component interconnect (pci) device removal for virtual machines | |
EP1963962B1 (fr) | Changement d'un programmateur dans un moniteur de machine virtuelle | |
US10789082B2 (en) | Execution of multiple operating systems without rebooting | |
WO2018173130A1 (fr) | Machine virtuelle et procédé de mise à jour de pilote de dispositif | |
US10193752B2 (en) | Storage system upgrade | |
US11513983B2 (en) | Interrupt migration | |
JP7318799B2 (ja) | 情報処理装置、操作制御方法および操作制御プログラム | |
US12405884B1 (en) | Context-aware firmware-mapped host memory buffer (HMB) management system | |
US12314732B2 (en) | Continuity of service for virtualized device after resumption from hibernation | |
CN102799463A (zh) | 对于虚拟运行时间环境来配置资源的方法和装置 | |
US20230305878A1 (en) | Communication method between virtual machines using mailboxes, system-on-chip performing the communication method, and in-vehicle infotainment system including same |
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: 17902473 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17902473 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |