WO2018173130A1 - Virtual machine, and device driver update method - Google Patents
Virtual machine, and device driver update method 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
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
This virtual machine comprises: an HBA 15; a hypervisor 100 having virtual HBA information 111, 113 that is associated with the HBA 15; and an LPAR 200. The LPAR 200 has: an HBA driver 241 (operational); an HBA driver 243 (for update); a driver switching control module 230 having virtual entry points 231, 233; and an OS kernel 220. The driver switching control module 230 performs switching control so that the OS kernel 220 is selectively connected to either the virtual entry point 231 or virtual entry point 243.
Description
本発明は、仮想計算機でデバイスドライバを更新する技術に関する。
The present invention relates to a technology for updating a device driver with a virtual machine.
サーバに装着されるホストバスアダプタ(Host Bus Adapter:HBA)を制御するために、サーバにはホストバスアダプタドライバ(以下、HBAドライバ)がインストールされる。このHBAドライバがOS(Operation System)起動時にメモリ上にロードされ、HBAを制御する。
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.
このHBAドライバを更新する場合、新しいHBAドライバをインストールした後、新たなHBAドライバをメモリにロードし、既にメモリにロードされている更新前のHBAドライバと入れ替える必要がある。メモリ上のHBAドライバを入れ替えるためには、OSを再起動することが一般的であるが、ミッションクリティカルなシステムではOSの再起動を行うことが困難である。そのため、OS再起動を行うことなくHBAドライバを更新する、すなわち、メモリ上にロードされたHBAドライバの入れ替えを行うことに対するニーズが高い。
When updating this HBA driver, after installing the new HBA driver, it is necessary to load the new HBA driver into the memory and replace it with the pre-update HBA driver already loaded into the memory. In order to replace the HBA driver on the memory, the OS is generally restarted. However, it is difficult to restart the OS in a mission critical system. Therefore, there is a high need for updating the HBA driver without restarting the OS, that is, replacing the HBA driver loaded on the memory.
例えば、特許文献1には、コンピュータと周辺デバイスの間の接続を維持したままHBAドライバを更新する技術が記載されている。特許文献1の技術では、HBAドライバを複数のモジュールで構成し、OSインタフェースモジュールとハードウェアインタフェースモジュールは不変とし、I/Fから切り離されたドライバモジュールのみを更新する。
For example, Patent Document 1 describes a technique for updating an HBA driver while maintaining a connection between a computer and a peripheral device. In the technique of Patent Document 1, 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.
近年、物理サーバを仮想化した仮想サーバに関する技術が用いられている。仮想サーバにおいてもOSを停止することなく、HBAドライバを更新する技術が必要である。
In recent years, technologies related to virtual servers obtained by virtualizing physical servers have been used. A technique for updating the HBA driver without stopping the OS is also required in the virtual server.
本発明の一つの実施態様に従う仮想計算機は、HBA(Host Bus Adapter)と、前記HBAに対応する第1の仮想HBA及び第2の仮想HBAを有するハイパバイザと、前記ハイパバイザの制御により動作するLPAR(Logical PARtition)と、を有する。前記LPARは、前記第1の仮想HBAに対応付けられた第1のHBAドライバと、前記第2の仮想HBAに対応付けられた第2のHBAドライバと、前記第1のHBAドライバに接続する第1の仮想エントリポイント及び前記第2のHBAドライバに接続する第2の仮想エントリポイントを有する切替制御モジュールと、OS(Operation System)カーネルと、を有する。前記切替制御モジュールは、前記OSカーネルの接続先を前記第1の仮想エントリポイントとするか、または第2の仮想エントリポイントとするかの切替制御を行う。
A virtual computer according to an embodiment of the present invention 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.
以下、本発明の一実施形態に係る仮想計算機システムについて、図面を参照して説明する。
Hereinafter, a virtual machine system according to an embodiment of the present invention will be described with reference to the drawings.
なお、以後の説明では「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、DB、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「aaaテーブル」、「aaaリスト」、「aaaDB」、「aaaキュー」等について「aaa情報」と呼ぶことがある。
In the following description, the information of the present invention will be described using expressions such as “aaa table”, “aaa list”, “aaaDB”, “aaa queue”, etc., but these information are not necessarily limited to tables, lists, DBs, queues, It may be expressed by other than the data structure. Therefore, “aaa table”, “aaa list”, “aaaDB”, “aaa queue”, etc. may be referred to as “aaa information” to indicate that they are not dependent on the data structure.
さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。
Furthermore, in describing the contents of each information, the expressions “identification information”, “identifier”, “name”, “name”, and “ID” are used, but these can be replaced with each other.
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御デバイス)を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。
In the following description, there is a case where “program” is used as the subject. However, since 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.
また、各種プログラムはプログラム配布サーバや、計算機が読み取り可能な記憶メディアによって各計算機にインストールされてもよい。この場合、プログラム配布サーバはCPUと記憶資源を含み、記憶資源はさらに配布プログラムと配布対象であるプログラムを記憶している。そして、配布プログラムをCPUが実行することで、プログラム配布サーバのCPUは配布対象のプログラムを他の計算機に配布する。
Various programs may be installed in each computer by a program distribution server or a storage medium that can be read by the computer. In this case, 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. When the distribution program is executed by the CPU, the CPU of the program distribution server distributes the distribution target program to other computers.
なお、サーバは入出力デバイスを有してもよい。入出力デバイスの例としてはディスプレイとキーボードとポインタデバイスが考えられるが、これ以外のデバイスであってもよい。また、入出力デバイスの代替としてシリアルインターフェースやイーサーネットインターフェースを入出力デバイスとし、当該インタフェースにディスプレイ又はキーボード又はポインタデバイスを有する表示用計算機を接続し、表示用情報を表示用計算機に送信したり、入力用情報を表示用計算機から受信することで、表示用計算機で表示を行ったり、入力を受け付けることで入出力デバイスでの入力及び表示を代替してもよい。
Note that the server may have an input / output device. Examples of input / output devices include a display, a keyboard, and a pointer device, but other devices may be used. Also, as an alternative to the input / output device, 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. By receiving the input information from 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.
本発明の一つの実施態様に係る仮想計算機は、HBA(Host Bus Adapter)と、HBAに対応する第1の仮想HBA及び第2の仮想HBAを有するハイパバイザと、ハイパバイザの制御により動作するLPAR(Logical PARtition)と、を有する。LPARは、第1の仮想HBAに対応付けられた第1のHBAドライバと、第2の仮想HBAに対応付けられた第2のHBAドライバと、第1のHBAドライバに接続する第1の仮想エントリポイント及び第2のHBAドライバに接続する第2の仮想エントリポイントを有する切替制御モジュールと、OS(Operation System)カーネルと、を有する。切替制御モジュールは、OSカーネルの接続先を第1の仮想エントリポイントとするか、または第2の仮想エントリポイントとするかの切替制御を行ってもよい。
A virtual computer according to an embodiment of the present invention 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.
ハイパバイザは、HBAの接続先を第1の仮想HBAとするか、または第2の仮想HBAとするかの切り替え制御を行ってもよい。
The hypervisor may perform switching control of whether the connection destination of the HBA is the first virtual HBA or the second virtual HBA.
OSカーネルの接続先が第1の仮想エントリポイントであるとき、第1のHBAドライバがOSカーネルからI/Oコマンドを取得すると、I/Oコマンドに基づいて第1の仮想HBAを介してHBAを動作させてもよい。
When the connection destination of the OS kernel is the first virtual entry point, when the first 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.
LPARは、ドライバ切替制御モジュールがOSカーネルの接続先を第1の仮想エントリポイントから第2の仮想エントリポイントに切り替えた後、第1のHBAアダプタドライバをアンロードし、第3のHBAアダプタドライバをロードする更新制御ユーティリティを、さらに有してもよい。
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.
ドライバ切替制御モジュールがOSカーネルの接続先を第1の仮想エントリポイントから第2の仮想エントリポイントに切り替えた後、第2のHBAアダプタドライバがOSカーネルからI/Oコマンドを取得すると、I/Oコマンドに基づいて第2の仮想HBAを介してHBAを動作させてもよい。
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, when 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.
第3のHBAアダプタドライバのロードが完了した後、ドライバ切替制御モジュールがOSカーネルの接続先を第2の仮想エントリポイントから第1の仮想エントリポイントに切り替えてもよい。
After the loading of the third HBA adapter driver is completed, 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.
図1は、本実施形態に係る仮想計算機システムの機能構成図である。
FIG. 1 is a functional configuration diagram of the virtual machine system according to the present embodiment.
仮想計算機システムはサーバ1及びストレージ装置7を有する。サーバ1及びストレージ装置7はネットワーク9を介して接続されている。サーバ1は図示しない業務用コンピュータからストレージ装置7に記憶されているデータの読み出し及びストレージ装置7に対するデータの書き込み要求(I/O要求)を受け付ける。サーバ1はこのI/O要求に基づいてストレージ装置7に対してデータI/Oコマンドを送り、データの読み書きを行う。
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.
サーバ1は、CPU(Central Processing Unit)10と、メモリ12と、HBA(ホストバスアダプタ)15とを備える。
The server 1 includes a CPU (Central Processing Unit) 10, a memory 12, and an HBA (host bus adapter) 15.
CPU10が、所定のコンピュータプログラムを読み込んで、ハイパバイザ100及び複数のLPAR(Logical PARtition:論理区画)200、200をメモリ上で動作させる。
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.
ハイパバイザ100は、物理的に1台のサーバを論理的に複数のサーバに見せる仮想化機構である。ハイパバイザ100はLPAR200、200の生成及び制御を行う。ハイパバイザ100は、仮想HBA情報111,113と、物理HBA情報130と、仮想HBA情報管理テーブル161とを有する。
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.
物理HBA情報130は、HBA15の物理的なアドレス情報を有する。例えば、物理HBA情報130は、HBA15のPCIメモリ空間アドレス及びコンフィグ空間アドレスを含む。物理HBA情報130は、ハードウェアであるHBA15とのインタフェースとなる。
The physical HBA information 130 includes physical address information of the HBA 15. For example, 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.
仮想HBA情報111,113は、LPAR200に対してHBA15を仮想化するためのアドレス情報を有する。ハイパバイザ100は、一つのLPAR200に対して複数の仮想HBA情報111,113を有してよい。図1では、LPAR#1に対するHBA情報#1が2つ用意されている。仮想HBA情報111が現用パスに用いられ、仮想HBA情報113が更新用パスに用いられる。現用パス及び更新用パスについては後述する。仮想HBA情報111,113は、LPAR200に対する仮想HBAである。
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.
仮想HBA情報管理テーブル161は、仮想HBA情報111,113が有するアドレスを管理する。ハイパバイザ100は、仮想HBA情報管理テーブル161を参照して、データの送信先のアドレスを特定する。
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.
図2は仮想HBA情報管理テーブル161の一例を示す。同図に示すように、仮想HBA情報管理テーブル161は、区分1611と、PCIメモリ空間アドレス1612と、コンフィグ空間アドレス1613と、使用パス1614とをデータ項目として有する。
FIG. 2 shows an example of the virtual HBA information management table 161. As shown in the figure, 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.
区分1611は、現用と更新用の別を示す。ここでは、仮想HBA情報111が現用に、仮想HBA情報113が更新用に対応する。
The category 1611 indicates whether it is for current use or for update. Here, the virtual HBA information 111 corresponds to the current use, and the virtual HBA information 113 corresponds to the update.
PCIメモリ空間アドレス1612は、現用及び更新用それぞれの仮想HBAのPCIメモリ空間アドレスである。
The PCI memory space address 1612 is a PCI memory space address of each of the virtual HBAs for current use and update.
コンフィグ空間アドレス1613は、現用及び更新用それぞれの仮想HBAのコンフィグ空間アドレスである。
The config space address 1613 is a config space address of each of the virtual HBAs for current use and update.
使用パス1614は、現用及び更新用のいずれのPCIメモリ空間アドレス1612及びコンフィグ空間アドレス1613が使用中であるかを示す。使用パス1614では「1」が使用中を示す。
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.
ハイパバイザ100は、通常時、現用のPCIメモリ空間アドレス1612及びコンフィグ空間アドレス1612、つまり仮想HBA情報111を用いて、LPAR200から受け付けたI/Oコマンドを処理する。ハイパバイザ100は、HBAドライバ更新時、更新用のPCIメモリ空間アドレス1612及びコンフィグ空間アドレス1612、つまり仮想HBA情報113を用いて、LPAR200から受け付けたI/Oコマンドを処理する。
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. When updating the HBA driver, 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.
図1に戻ると、LPAR200はハイパバイザ100の制御により動作する。以下、LPAR#1について説明するが、他のLPARについても同様である。
Returning to FIG. 1, the LPAR 200 operates under the control of the hypervisor 100. Hereinafter, LPAR # 1 will be described, but the same applies to other LPARs.
LPAR200では、ゲストOSが動作する。例えば、LPAR200のゲストOSは、更新制御ユーティリティ210と、OSカーネル220と、ドライバ更新制御モジュール230と、HBAドライバ241,243と、仮想HBA情報251,253と、フラグ管理テーブル261と、エントリポイント管理テーブル263とを有する。
In LPAR200, a guest OS operates. For example, 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.
図3は、フラグ管理テーブル261の一例を示す。同図に示すように、フラグ管理テーブル261は、フラグ名2611と、フラグの設定値2612とをデータ項目として有する。ここでは、フラグ管理テーブル261にはI/Oコマンド発行抑止フラグがONであるかOFFであるかが格納される(同図ではフラグが「OFF」の状態を示す)。
FIG. 3 shows an example of the flag management table 261. As shown in the figure, the flag management table 261 has a flag name 2611 and a flag set value 2612 as data items. Here, 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”).
図4は、エントリポイント管理テーブル263の一例を示す。同図に示すように、エントリポイント管理テーブル263は、区分2631と、エントリポイント情報2632と、使用パス2633とをデータ項目として有する。ここでは、エントリポイント管理テーブル263には現用及び更新用のエントリポイントと、現用及び更新用のいずれのエントリポイントが使用中であるかを示す情報が格納される。ここでは、仮想エントリポイント231が現用に、仮想エントリポイント233が更新用に対応する。
FIG. 4 shows an example of the entry point management table 263. As shown in the figure, the entry point management table 263 has a classification 2631, entry point information 2632, and a used path 2633 as data items. Here, 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. Here, the virtual entry point 231 corresponds to the current use, and the virtual entry point 233 corresponds to the update.
図1に戻ると、仮想HBA情報251は、HBAドライバ(現用)241と対応付けられた現用パスの仮想HBA情報である。仮想HBA情報251は、ハイパバイザ100の仮想HBA情報111と対応する。仮想HBA情報253は、HBAドライバ(更新用)243と対応付けられた更新用パスの仮想HBA情報である。仮想HBA情報253は、ハイパバイザ100の仮想HBA情報113と対応する。
Returning to FIG. 1, 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.
ドライバ更新制御モジュール230は、仮想エントリポイント231と仮想エントリポイント233とを有する。仮想エントリポイント231はHBAドライバ(現用)241と対応付けられた現用の仮想エントリポイントである。仮想エントリポイント233はHBAドライバ(更新用)243と対応付けられた更新用の仮想エントリポイントである。
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.
これにより、図1に示す状態では、LPAR200において仮想エントリポイント231-HBAドライバ(現用)241-仮想HBA情報251で現用パスが、仮想エントリポイント233-HBAドライバ(更新用)243-仮想HBA情報253で更新用パスが構成されている。
As a result, in the state shown in FIG. 1, in the LPAR 200, 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.
更新制御ユーティリティ210はHBAドライバ241を更新する。HBAドライバ241の更新処理の詳細については後述する。
The update control utility 210 updates the HBA driver 241. Details of the update processing of the HBA driver 241 will be described later.
OSカーネル220は、図示しない業務用コンピュータからのI/O要求に基づくストレージ装置7に対するI/Oコマンドを処理する。例えば、OSカーネル220は、I/OコマンドをHBAドライバ(現用)241またはHBAドライバ(更新用)243へ送り、それに対する応答を取得する。このとき、OSカーネル220は、エントリポイント管理テーブル263を参照してI/Oコマンドの送信先のエントリポイントを特定する。
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.
OSカーネル220は、通常時はエントリポイント管理テーブル263を参照して使用パス2633に「1」が設定されている現用のエントリポイント情報2632を特定し、I/Oコマンドを現用の仮想エントリポイント231へ送信する。つまり、OSカーネル220は、通常時はエントリポイント221及び仮想エントリポイント231を介して現用パスに接続される。これに対してHBAドライバの更新処理時は、OSカーネル220は、エントリポイント管理テーブル263を参照して使用パス2633に「1」が設定されている更新用のエントリポイント情報2632を特定し、I/Oコマンドを更新用の仮想エントリポイント233へ送信する。つまり、OSカーネル220は、HBAドライバの更新処理時は、エントリポイント221及び仮想エントリポイント233を介して更新用パスに接続される。
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. On the other hand, during the update process of the HBA driver, 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.
ドライバ更新制御モジュール230は、HBAドライバ(現用)241の更新の前処理及び後処理を制御する。例えば、ドライバ更新制御モジュール230はI/Oコマンドの送信先を仮想エントリポイント231から仮想エントリポイント233へ、または仮想エントリポイント233から仮想エントリポイント231へ切り替える。ドライバ更新制御モジュール230は、ハイパバイザ100へ仮想HBAの切り替えを指示する。例えば、ドライバ更新制御モジュール230は、HBA15の接続先を仮想HBA情報111から仮想HBA情報113へ切り替えるか、または仮想HBA情報113から仮想HBA情報111へ切り替えるかの指示をする。
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.
HBAドライバ(現用)241及びHBAドライバ(更新用)243は、OSカーネル220から取得したI/Oコマンドに従ってHBA15を動作させてストレージ装置7とデータの送受信を行う。
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.
HBAドライバ(現用)241は現用パスに組み込まれたHBAドライバである。HBAドライバ(現用)241は、通常時にOSカーネル220から仮想エントリポイント231に対して送られたI/Oコマンドを取得して処理をする。HBAドライバ(現用)241は仮想HBA情報251を用いてI/Oコマンドをハイパバイザ100へ送る。
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.
HBAドライバ(更新用)243は更新用パスに組み込まれたHBAドライバである。HBAドライバ(更新用)243は、更新処理時にOSカーネル220から仮想エントリポイント233に対して送られたI/Oコマンドを取得して処理をする。HBAドライバ(更新用)243は仮想HBA情報253を用いてI/Oコマンドをハイパバイザ100へ送る。
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.
HBAドライバ(現用)241とHBAドライバ(更新用)243とは同等の機能を有していてもよい。
The HBA driver (current) 241 and the HBA driver (update) 243 may have equivalent functions.
図5は、HBAドライバの更新処理のシーケンスを示す。同図を参照して、図1に示す状態からHBAドライバ(現用)241を更新する処理について説明する。
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.
まず、更新制御ユーティリティ210がドライバ更新制御モジュール230に対してHBAドライバ更新処理の開始を指示する(S101)。これにより、一連のHBAドライバ更新処理が開始される。HBAドライバ本体の更新の前処理として、パスの切替処理(現用パスから更新用パス)が行われる。
First, 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.
ドライバ更新制御モジュール230は、更新制御ユーティリティ210からドライバ更新処理の開始指示を受けると、HBAドライバ(現用)241に対する新たなI/Oコマンドの発行を停止し、フラグ管理テーブル261のI/Oコマンド発行抑止フラグの設定値2612をONにする(S201)。実行中のI/Oコマンドがすべて終了すると(S203:Yes)、ドライバ更新制御モジュール230はハイパバイザ100へ仮想HBAの切り替えを指示する(S205)。
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). When all the I / O commands being executed are completed (S203: Yes), the driver update control module 230 instructs the hypervisor 100 to switch the virtual HBA (S205).
ハイパバイザ100は、この切り替え指示を受けて仮想HBAを切り替える(S301)。すなわち、ハイパバイザ100が仮想HBA情報管理テーブル161の現用の使用パス1614に不使用を示す「0」を設定し、更新用の使用パス1614に使用を示す「1」を設定する。これにより、ハイパバイザ100がLPAR200に対して利用する仮想HBA情報が仮想HBA情報113に切り替わる。つまり、物理HBA情報130が更新用パスへ接続される。ハイパバイザ100は、ドライバ更新制御モジュール230へ仮想HBAの切り替え完了を通知する(S303)。
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).
次に、ドライバ更新制御モジュール230は、エントリポイントの切り替えを行う(S207)。すなわち、ドライバ更新制御モジュール230がエントリポイント管理テーブル263の現用の使用パス2633に不使用を示す「0」を設定し、更新用の使用パス2633に使用を示す「1」を設定する。これにより、OSカーネル220が使用する仮想エントリポイントが仮想エントリポイント233に切り替わる。つまり、ドライバ更新制御モジュール230が更新用パスへ接続される。
Next, 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.
ここまでの処理で現用パスから更新用パスへの切り替えが完了する。図6は、パスが切り替わった状態を示す。
The switch from the working path to the update path is completed by the process so far. FIG. 6 shows a state where the path is switched.
図5に戻ると、ドライバ更新制御モジュール230は、フラグ管理テーブル261のI/Oコマンド発行抑止フラグの設定値2612をOFFにして、更新用パスを用いて停止していた処理を再開し、新たなI/Oコマンドを発行する(S209)。ドライバ更新制御モジュール230は、パス切り替え処理の完了を更新制御ユーティリティ210へ通知する(S211)。
Returning to FIG. 5, 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).
更新制御ユーティリティ210は、パスの切り替え完了後、HBAドライバ(現用)241をLPAR200からアンロードする(S103)。HBAドライバ(現用)241がアンロードされた状態を図7に示す。
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.
HBAドライバ(現用)241のアンロード後、更新制御ユーティリティ210が新たなHBAドライバ(現用:新)245をLPAR200にロードする(S105)。これにより、更新対象のHBAドライバ(現用)241がメモリ12からアンロードされ、新たなHBAドライバ(現用:新)245がロードされる。これで、HBAドライバ本体がHBAドライバ(現用)241からHBAドライバ(現用:新)245へ更新される。
After unloading the HBA driver (current) 241, the update control utility 210 loads a new HBA driver (current: new) 245 into the LPAR 200 (S 105). As a result, the HBA driver (current) 241 to be updated is unloaded from the memory 12, and a new HBA driver (current: new) 245 is loaded. Thus, the HBA driver main body is updated from the HBA driver (current) 241 to the HBA driver (current: new) 245.
HBAドライバ本体の更新処理が完了すると、更新制御ユーティリティ210がドライバ更新制御モジュール230に対してHBAドライバ更新処理の終了処理を指示する(S107)。これにより、HBAドライバ本体の更新の後処理として、パスの切り替え処理(更新用パスから現用パス)が行われる。
When the update process of the HBA driver main body is completed, the update control utility 210 instructs the driver update control module 230 to end the HBA driver update process (S107). As a result, a path switching process (from the update path to the working path) is performed as post-processing for updating the HBA driver body.
ドライバ更新制御モジュール230は、更新制御ユーティリティ210からドライバ更新処理の終了指示を受けると、新たなI/Oコマンドの発行を停止し、フラグ管理テーブル261のI/Oコマンド発行抑止フラグの設定値2612をONにする(S213)。実行中のI/Oコマンドがすべて終了すると(S215:Yes)、ドライバ更新制御モジュール230はハイパバイザ100へ仮想HBAの切り替えを指示する(S217)。
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).
ハイパバイザ100は、この切り替え指示を受けて仮想HBAを切り替える(S305)。すなわち、ハイパバイザ100が仮想HBA情報管理テーブル161の更新用の使用パス1614に不使用を示す「0」を設定し、現用の使用パス1614に使用を示す「1」を設定する。これにより、ハイパバイザ100がLPAR200に対して利用する仮想HBA情報が仮想HBA情報111に切り替わる。つまり、物理HBA情報130が現用パスへ接続される。ハイパバイザ100は、ドライバ更新制御モジュール230へ仮想HBAの切り替え完了を通知する(S307)。
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).
次に、ドライバ更新制御モジュール230は、エントリポイントの切り替えを行う(S219)。ここでは、ドライバ更新制御モジュール230がエントリポイント管理テーブル263の更新用の使用パス2633に不使用を示す「0」を設定し、現用の使用パス2633に使用を示す「1」を設定する。これにより、OSカーネル220が使用する仮想エントリポイントが仮想エントリポイント231に切り替わる。つまり、ドライバ更新制御モジュール230が現用パスへ接続される。
Next, the driver update control module 230 switches entry points (S219). Here, 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. As a result, 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.
ドライバ更新制御モジュール230は、フラグ管理テーブル261のI/Oコマンド発行抑止フラグの設定値2612をOFFにして、現用パスを用いて停止していた処理を再開し、新たなI/Oコマンドの処理を発行する(S221)。これにより、更新後のHBAドライバ(現用:新)245を用いたI/Oコマンドの処理が行われる。
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.
ドライバ更新制御モジュール230は、HBAドライバ更新処理の終了を更新制御ユーティリティ210へ通知する(S223)。
The driver update control module 230 notifies the update control utility 210 of the end of the HBA driver update process (S223).
上記の処理により、HBAドライバ(現用)241からHBAドライバ(更新用)243への切り替えが完了する。図8は、パスが切り替わった状態を示す。
The switching from the HBA driver (current) 241 to the HBA driver (update) 243 is completed by the above processing. FIG. 8 shows a state where the path is switched.
これにより、仮想計算機システムにおいて、OSの再起動を行わずにHBAドライバを更新することができる。
This makes it possible to update the HBA driver without restarting the OS in the virtual machine system.
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
The embodiments of the present invention described above are examples for explaining the present invention, and are not intended to limit the scope of the present invention only to those embodiments. Those skilled in the art can implement the present invention in various other modes without departing from the gist of the present invention.
1 サーバ
15 HBA
100 ハイパバイザ
111、113 仮想HBA情報
130 物理HBA情報
200 LPAR
210 更新制御ユーティリティ
220 OSカーネル
221 エントリポイント
230 ドライバ更新制御モジュール
231、233 仮想エントリポイント
241、243 HBAドライバ
251、253 仮想HBA情報
1server 15 HBA
100 Hypervisor 111, 113 Virtual HBA information 130 Physical HBA information 200 LPAR
210Update 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
15 HBA
100 ハイパバイザ
111、113 仮想HBA情報
130 物理HBA情報
200 LPAR
210 更新制御ユーティリティ
220 OSカーネル
221 エントリポイント
230 ドライバ更新制御モジュール
231、233 仮想エントリポイント
241、243 HBAドライバ
251、253 仮想HBA情報
1
100
210
Claims (7)
- HBA(Host Bus Adapter)と、
前記HBAに対応する第1の仮想HBA及び第2の仮想HBAを有するハイパバイザと、
前記ハイパバイザの制御により動作するLPAR(Logical PARtition)と、を有する仮想計算機であって、
前記LPARは、
前記第1の仮想HBAに対応付けられた第1のHBAドライバと、
前記第2の仮想HBAに対応付けられた第2のHBAドライバと、
前記第1のHBAドライバに接続する第1の仮想エントリポイント及び前記第2のHBAドライバに接続する第2の仮想エントリポイントを有する切替制御モジュールと、
OS(Operation System)カーネルと、を有し、
前記切替制御モジュールは、前記OSカーネルの接続先を前記第1の仮想エントリポイントとするか、または第2の仮想エントリポイントとするかの切替制御を行う、仮想計算機。 HBA (Host Bus Adapter),
A hypervisor having a first virtual HBA and a second virtual HBA corresponding to the HBA;
A virtual machine having an LPAR (Logical PARTION) operating under the control of the hypervisor,
The LPAR is
A first HBA driver associated with the first virtual HBA;
A second HBA driver associated with the second virtual HBA;
A switching control module having a first virtual entry point connected to the first HBA driver and a second virtual entry point connected to the second HBA driver;
An OS (Operation System) kernel,
The switching control module is a virtual computer that performs switching control of whether the connection destination of the OS kernel is the first virtual entry point or the second virtual entry point. - 前記ハイパバイザは、HBAの接続先を前記第1の仮想HBAとするか、または第2の仮想HBAとするかの切り替え制御を行う、請求項1記載の仮想計算機。 The virtual machine according to claim 1, wherein the hypervisor performs switching control of whether the connection destination of the HBA is the first virtual HBA or the second virtual HBA.
- 前記OSカーネルの接続先が前記第1の仮想エントリポイントであるとき、前記第1のHBAドライバが前記OSカーネルからI/Oコマンドを取得すると、前記I/Oコマンドに基づいて前記第1の仮想HBAを介して前記HBAを動作させる、請求項1記載の仮想計算機。 When the connection destination of the OS kernel is the first virtual entry point, when the first HBA driver acquires an I / O command from the OS kernel, the first virtual entry point is based on the I / O command. The virtual computer according to claim 1, wherein the HBA is operated via an HBA.
- 前記LPARは、
前記ドライバ切替制御モジュールが前記OSカーネルの接続先を前記第1の仮想エントリポイントから前記第2の仮想エントリポイントに切り替えた後、前記第1のHBAアダプタドライバをアンロードし、第3のHBAアダプタドライバをロードする更新制御ユーティリティを、さらに有する請求項1記載の仮想計算機。 The LPAR is
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 then unloads the first HBA adapter driver and outputs a third HBA adapter. The virtual machine according to claim 1, further comprising an update control utility for loading a driver. - 前記ドライバ切替制御モジュールが前記OSカーネルの接続先を前記第1の仮想エントリポイントから前記第2の仮想エントリポイントに切り替えた後、前記第2のHBAアダプタドライバが前記OSカーネルからI/Oコマンドを取得すると、前記I/Oコマンドに基づいて前記第2の仮想HBAを介して前記HBAを動作させる、請求項4記載の仮想計算機。 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, the second HBA adapter driver sends an I / O command from the OS kernel. The virtual computer according to claim 4, wherein upon acquisition, the HBA is operated via the second virtual HBA based on the I / O command.
- 前記第3のHBAアダプタドライバのロードが完了した後、前記ドライバ切替制御モジュールが前記OSカーネルの接続先を前記第2の仮想エントリポイントから前記第1の仮想エントリポイントに切り替える、請求項4記載の仮想計算機。 The driver switching control module switches the connection destination of the OS kernel from the second virtual entry point to the first virtual entry point after the loading of the third HBA adapter driver is completed. Virtual computer.
- 仮想計算機におけるデバイスドライバの更新方法であって、
前記仮想計算機は、
HBA(Host Bus Adapter)と、
前記HBAに対応する第1の仮想HBA及び第2の仮想HBAを有するハイパバイザと、
前記第1の仮想HBAと、第1のHBAドライバと、第1の仮想エントリポイントとが接続されて構成されている第1のパスと、前記第2の仮想HBAと、第2のHBAドライバと、第2の仮想エントリポイントとが接続されて構成されている第2のパスと、OS(Operation System)カーネルと、を有し、前記ハイパバイザの制御により動作するLPAR(Logical PARtition)と、を有し、
前記OSカーネルの接続先が前記第1の仮想エントリポイントであるとき、前記OSカーネルが前記第1のパスにI/Oコマンドを発行し、前記第1のHBAドライバを用いて前記HBAを動作させるステップと、
前記OSカーネルからのI/Oコマンド発行を停止し、前記OSカーネルの接続先を前記第2の仮想エントリポイントに切り替えるステップと、
前記OSカーネルの接続先が前記第2の仮想エントリポイントであるとき、前記OSカーネルが前記第2のパスにI/Oコマンドを発行し、前記第2のHBAドライバを用いて前記HBAを動作させるステップと、
前記OSカーネルが前記第2の仮想エントリポイントに接続されているときに、前記第1のHBAドライバをアンロードして、第3のHBAドライバをロードするステップと、
前記OSカーネルからのI/Oコマンド発行を停止し、前記OSカーネルの接続先を前記第1の仮想エントリポイントに切り替えるステップと、
前記OSカーネルの接続先が前記第1の仮想エントリポイントであるとき、前記OSカーネルが前記第1のパスにI/Oコマンドを発行し、前記第3のHBAドライバを用いて前記HBAを動作させるステップと、を行う方法。
A method for updating a device driver in a virtual machine,
The virtual machine is
HBA (Host Bus Adapter),
A hypervisor having a first virtual HBA and a second virtual HBA corresponding to the HBA;
A first path configured by connecting the first virtual HBA, a first HBA driver, and a first virtual entry point; the second virtual HBA; and a second HBA driver; A second path formed by connecting the second virtual entry point, and an OS (Operation System) kernel, and an LPAR (Logical Partition) operated by the control of the hypervisor. And
When the connection destination of the OS kernel is the first virtual entry point, the OS kernel issues an I / O command to the first path and operates the HBA using the first HBA driver. Steps,
Stopping issuing I / O commands from the OS kernel and switching the connection destination of the OS kernel to the second virtual entry point;
When the connection destination of the OS kernel is the second virtual entry point, the OS kernel issues an I / O command to the second path and operates the HBA using the second HBA driver. Steps,
Unloading the first HBA driver and loading a third HBA driver when the OS kernel is connected to the second virtual entry point;
Stopping issuing I / O commands from the OS kernel and switching the connection destination of the OS kernel to the first virtual entry point;
When the connection destination of the OS kernel is the first virtual entry point, the OS kernel issues an I / O command to the first path and operates the HBA using the third HBA driver. Step and how to do.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/011324 WO2018173130A1 (en) | 2017-03-22 | 2017-03-22 | Virtual machine, and device driver update method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/011324 WO2018173130A1 (en) | 2017-03-22 | 2017-03-22 | Virtual machine, and device driver update method |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018173130A1 true WO2018173130A1 (en) | 2018-09-27 |
Family
ID=63586174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2017/011324 WO2018173130A1 (en) | 2017-03-22 | 2017-03-22 | Virtual machine, and device driver update method |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2018173130A1 (en) |
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/en 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 |
---|---|---|
US11886903B2 (en) | Continuous uptime of guest virtual machines during upgrade of a virtualization host device | |
US7953831B2 (en) | Method for setting up failure recovery environment | |
JP4842210B2 (en) | Failover method, computer system, management server and spare server setting method | |
US7930371B2 (en) | Deployment method and system | |
JP5174110B2 (en) | Automated modular secure boot firmware update | |
US9116743B2 (en) | Storage medium, information processing apparatus, and migration method | |
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 | |
US20120179804A1 (en) | Management method of computer system, computer system, and program | |
US10289564B2 (en) | Computer and memory region management method | |
US20120047357A1 (en) | Methods and systems for enabling control to a hypervisor in a cloud computing environment | |
EP3785111B1 (en) | Live update of a kernel device module | |
US10552194B2 (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 | |
EP2466459A1 (en) | Seamless application integration apparatus and method | |
US10789082B2 (en) | Execution of multiple operating systems without rebooting | |
WO2018173130A1 (en) | Virtual machine, and device driver update method | |
US10193752B2 (en) | Storage system upgrade | |
JP7318799B2 (en) | Information processing device, operation control method and operation control program | |
US11513983B2 (en) | Interrupt migration | |
US20240427619A1 (en) | Maintaining live state of virtual function during virtual machine save and restore operations | |
CN102799463A (en) | Method and arrangement for configuring a resource for a virtual runtime environment | |
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 |