The present disclosure relates to the technical field of computer technology, and, more particularly, to computing devices, virtualization acceleration devices, remote control methods, and storage media.
Virtual network computing (VNC) is a system that uses the remote frame buffer (RFB) protocol to enable screen sharing and remote display. The VNC system can transmit keyboard and mouse actions as well as real-time screen images through a network, thus achieving a simple remote interaction.
The VNC system includes two components: a VNC server 204 and a VNC client. The VNC client is installed on a main control device, whereas the VNC server 204 is installed on a controlled device. The VNC client communicates with the VNC server 204 to enable the control of the controlled device remotely. However, the VNC server 204 being directly deployed on the controlled device means consuming the computing, storage, and network resources of the controlled device, which is particularly salient on network resources, thus affecting the physical machine performance.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify all key features or essential features of the claimed subject matter, nor is it intended to be used alone as an aid in determining the scope of the claimed subject matter. The term “technique(s) or technical solution(s)” for instance, may refer to apparatus(s), system(s), method(s) and/or computer-readable instructions as permitted by the context above and throughout the present disclosure.
Multiple aspects of the present disclosure provide computing devices, virtualization acceleration devices, remote control methods, and storage media for reducing the resources of a physical machine consumed during remote interactions and improving the physical machine performance.
Embodiments of the present disclosure provide a computing device, comprising a physical machine and a virtualization acceleration device; the virtualization acceleration device is connected to the physical machine through a high-speed serial bus; a virtualized peripheral controller for the physical machine is implemented on the virtualization acceleration device, and is configured for cooperating with a remote control device to remotely control the physical machine; the physical machine is configured to identify the virtualized peripheral controller and call the virtualized peripheral controller to execute a peripheral operation, wherein the peripheral operation corresponds to the remote control.
Embodiments of the present disclosure further provide a virtualization acceleration device, comprising a high-speed serial bus and a virtualized peripheral controller for a physical machine; the virtualization acceleration device is connected to the physical machine through the high-speed serial bus; the virtualized peripheral controller is configured to cooperate with a remote control device to remotely control the physical machine, wherein the physical machine calls the virtualized peripheral controller to execute a peripheral operation, and the peripheral operation corresponds to the remote control.
Embodiments of the present disclosure further provide a remote control method, comprising: receiving, by a virtualization acceleration device, a remote control message sent by a remote control device for remotely controlling a physical machine, wherein the virtualization acceleration device is connected to the physical machine through a high-speed serial bus; remotely controlling the physical machine through a virtualized peripheral controller on the virtualization acceleration device according to the remote control message, wherein the physical machine calls the virtualized peripheral controller to execute a peripheral operation, and the peripheral operation corresponds to the remote control.
Embodiments of the present disclosure further provide a computer-readable storage medium having stored therein computer program/instructions, wherein when the computer program/instructions are executed by one or more processors, the one or more processors are enabled to implement steps in the remote control methods provided by the embodiments of the present disclosure.
Embodiments of the present disclosure further provide a computer program product, comprising a computer program/instructions, wherein when the computer program/instructions are executed by one or more processors, the one or more processors are enabled to implement steps in the remote control methods provided by the embodiments of the present disclosure.
In the embodiments of the present disclosure, the virtualization acceleration device is deployed for a physical machine, and a virtualized peripheral controller for the physical machine is implemented on the virtualization acceleration device, so that the physical machine may call the virtualized peripheral controller to execute a peripheral operation. In this way, a VNC server 204 can be deployed on the virtualization acceleration device instead of on the physical machine; the virtualization acceleration device cooperates with a remote control device, and the virtualized peripheral controller remotely controls the physical machine, thereby reducing resources of the physical machine consumed in the remote interaction process, which in turns improves the physical machine performance.
The accompanying drawings described herein are used to further illustrate the present disclosure, and constitute a part thereof. The illustrative embodiments of the present disclosure and the descriptions thereof are used to explain the present disclosure, and do not constitute an improper limitation to the present disclosure. In the drawings:
In order to make the objectives, technical solutions, and advantages of the present disclosure clearer, the technical solutions of the present disclosure will be clearly and completely described below in combination with the specific embodiments of the present disclosure and the corresponding accompanying drawings. Apparently, the described embodiments only represent some of the embodiments of the present disclosure, but not all the embodiments. All other embodiments obtained by a person of ordinary skill in the art based on the embodiments of the present disclosure without involving an inventive effort fall within the protection scope of the present disclosure.
The existing VNC-based remote interaction solution faces the technical problem that directly deploying the VNC server 204 on the controlled device will reduce the performance of the controlled device. To solve the technical problem, in some embodiments of the present disclosure, a virtualization acceleration device is deployed for a physical machine; the virtualization acceleration device helps to offload some functions of the physical machine. For example, various virtualization functions such as computing, network, and storage can be offloaded to and implemented on the virtualization acceleration device, thus reducing the load and accelerating the physical machine and improving the performance thereof. In addition, the virtualization acceleration device may also be used to provide other services for the physical machine, such as VNC remote interaction. For example, a virtualized peripheral controller for the physical machine is implemented on the virtualization acceleration device, so that the physical machine may call the virtualized peripheral controller to execute an operation related to an external device (referred to as a peripheral operation). In this way, a VNC server 204 can be deployed on the virtualization acceleration device instead of on the physical machine; the virtualization acceleration device cooperates with a remote control device, and the virtualized peripheral controller remotely controls the physical machine, thereby reducing resources of the physical machine consumed in the remote interaction process and further improving the physical machine performance.
The technical solutions provided by various embodiments of the present disclosure will be described in detail below in combination with the accompanying drawings.
In this embodiment, the device form of the physical machine 102 is not limited. It can be any physical device with certain capabilities of computing, storage, and communication, such as a desktop computer, a laptop, a smartphone, an IOT device, or other terminal devices, and can also be a conventional server, a host, a server array, or other server devices. In addition, the implementation structure of the physical machine 102 is not limited in this embodiment, which may include internal components such as a processor, a memory, a network card chip, an 10 bus, audio and video components, etc. The physical machine 102 may further include non-volatile storage resources such as hard disks and SSD cards. The physical machine 102 may further include non-volatile storage resources such as hard disks and SSD cards. Certainly, the physical machine 102 may not need to include non-volatile storage resources such as hard disks and SSD cards, and in which case, the virtualization acceleration device 104 is used for virtualizing storage resources to enable the connection with cloud disks, network attached storage (NAS) devices, and other storage resources on the cloud.
In addition to the above-mentioned internal components, the physical machine 102 may further have an operating system (OS), one or more application programs, etc., running thereon, wherein the OS, the application programs, and related program data can be stored in non-volatile storage resources of the physical machine 102 locally or in the cloud storage resources. Further, the physical machine 102 of this embodiment may further include some external devices, such as a keyboard, a mouse, an input pen, a printer, a display, etc. It should be noted that the internal components or external devices included in the physical machine 102, such as audio and video components, displays, etc., may vary depending on the device forms. For example, if the physical machine 102 is a terminal device, then audio and video components, displays, etc., may be included. If the physical machine 102 is a server device, then audio and video components, displays, etc., may not be included.
In this embodiment, the virtualization acceleration device 104 is a device that may implement the virtualization technology and help the physical machine 102 interconnected thereto to implement at least some virtualization functions. That is, the physical machine 102 may offload part or all of the virtualization functions to the virtualization acceleration device 104, thereby achieving performance acceleration. The implementation forms of the virtualization acceleration device 104 are not limited by this embodiment, which can be a board or a chip. As shown in
In this embodiment, the virtualization acceleration device 104 is interconnected to the physical machine 102 through the high-speed serial bus 106, which allows the virtualization acceleration device 104 to be piggybacked on the physical machine 102. On this basis, by virtue of the software and hardware resources of the virtualization acceleration device 104, some or all of the virtualization logic such as computing, storage, and network that is originally implemented on the physical machine 102 can be offloaded to the virtualization acceleration device 104, which not only improves the virtualization performance and reduces costs, such a solution also ensures that the physical machine 102 has the functions of a virtual machine and can be interconnected to cloud disks and VPC networks just like a virtual machine. In addition, it is ensured that the physical machine 102 uses its own computing, storage, and other resources independently, eliminating the issue of multiple virtual machines sharing local resources of the physical machine, and thus turning the physical machine 102 into a computing device having both the resilience from a virtual machine and the performance from a physical machine. In this way, the physical machine 102 is highly isolated, and has both the migration advantages of the virtual machine and the resilient advantage of cloud deployment. In addition, it has the advantages of supporting rapid delivery, compatible virtual machine mirroring, cloud storage device startup, attachment of cloud storage devices, migration recovery of physical machine failures, automated operation and maintenance, etc., thus having high application value.
The high-speed serial bus 106 includes, but is not limited to: a peripheral component interconnect (PCI) bus, a peripheral component interconnect express (PCIE) bus. The virtualization acceleration device 104 is interconnected to the physical machine 102 through the high-speed serial bus 106, which ensures the reliable and efficient information transmission therebetween, providing conditions for offloading some or all of the logic of virtualization implemented on the physical machine 102, such as computing, storage, and network, to the virtualization acceleration device 104. Certainly, the virtualization acceleration device 104 may further be interconnected to the physical machine 102 in other ways, such as internetworking.
In this embodiment, the remote control device 112 may remotely log into the physical machine 102 and perform various controls on the physical machine 102, such as controlling the power on and off of the physical machine 102, opening application programs on the physical machine 102, remotely viewing files on the physical machine 102, sending and receiving emails, scheduling work, etc., so that the physical machine 102 provides the same user experience as the virtual machine. Controlling the physical machine 102 remotely needs to be performed as if the physical machine 102 is operated locally; and controlling the physical machine 102 locally needs to be performed through some external devices of the physical machine 102. For example, to open an application program on the physical machine 102, a mouse of the physical machine 102 is required to perform a double-click on an application icon on the desktop; to send and receive emails on the physical machine 102, a mouse of the physical machine 102 is required to click on the email editing controls on the interface; to enter email content, a keyboard of the physical machine 102 is required, etc. It can be seen that the controlling of the physical machine 102 by the remote control device 112 is actually a process of transmitting the control actions of some external devices such as the mouse and keyboard at the local side of the remote control device 112 to the side of the physical machine 102, and simulating the relevant operations at the physical machine 102 based on these control actions. Further, when the physical machine 102 is provided with a display, the remote control device 112 may further synchronize the desktop data 114 of the physical machine 102 to the local end of the remote control device 112 during the remote control process of the physical machine 102, providing conditions for the control operation of the physical machine 102. The physical machine 102 needs to be able to identify the corresponding control actions transmitted from the side of the remote control device 112, which is also the key to ensure successful remote control.
In this embodiment, the functions related to remote control are offloaded from the physical machine 102 to the virtualization acceleration device 104, saving the consumption of various resources on the physical machine 102 for the remote control process, and in particular, saving the network resources of the physical machine 102. For example, as shown in
If the external device is an input device, such as a mouse, keyboard, or touch screen, the corresponding virtualized peripheral controller 116 is mainly configured to capture actions of the mouse, keyboard, or touch screen, track the status of the mouse, keyboard, or touch screen, and report the acquired action information or the tracked status information to the physical machine 102, specifically to the operating system of the physical machine 102; and the operating system calls a driver of the mouse, keyboard, or touch screen to perform corresponding processing.
If the external device is an output device, such as a display, the corresponding virtualized peripheral controller 116 is mainly configured to receive to-be-displayed desktop data 114 provided by the physical machine 102 and perform display-related processing on the desktop data 114, such as rendering, outputting, etc.
As the virtualized peripheral controllers 116 implemented on the programmable logic device 130 may learn and participate in the related operations of the physical machine 102, the virtualization acceleration device 104 can cooperate with the remote control device 112 to remotely control the physical machine 102 through these Virtualized peripheral controllers 116. As shown in
In some example embodiments of the present disclosure, the virtualization acceleration device 104 may be interconnected to the physical machine 102 using PCI or PCIE. Compared to the physical machine 102, the virtualization acceleration device 104 can be regarded as a PCI or PCIE device mounted on the physical machine 102. Therefore, the virtualization acceleration device 104 has its own PCI or PCIE configuration space, which is used to store some description information of the virtualization acceleration device 104, such as the vendor ID, device ID, class code, interrupt pins, and other important information. On this basis, the process of implementing the virtualized peripheral controller 116 on the virtualization acceleration device 104 specifically includes: configuring registers required for the peripheral controller on the virtualization acceleration device 104, and mapping the registers to a PCI or PCIE configuration space of the virtualization acceleration device 104 to implement the virtualized peripheral controller 116.
Based on the above, the process that the physical machine 102 identifies the virtualized peripheral controller 116, for example, includes: enumerating devices on the high-speed serial bus, wherein enumeration refers to the process of traversing all devices mounted on the high-speed serial bus and acquiring information in the configuration space corresponding to the traversed devices. Throughout the entire process, the physical machine 102 may obtain detailed information about each device mounted on the high-speed serial bus according to the information in the configuration space of each traversed device. For example, the physical machine 102 may enumerate the devices on the high-speed serial bus according to a specified time period, which can be 1 second, 1 minute, 1 hour, etc.; and the physical machine may also enumerate the devices on the high-speed serial bus every time it is powered on. In this embodiment, the virtualization acceleration device 104 can be identified first; further, if the virtualization acceleration device 104 is discovered, the virtualized peripheral controllers 116 implemented on the virtualization acceleration device 104 can be identified based on the values of at least some of the registers in its configuration space, and the driver of the virtualized peripheral controllers 116 are started. The at least some of the registers can be some registers of the Virtualized peripheral controllers 116 or can be all registers of the Virtualized peripheral controllers 116, which is not limited thereto. The at least some registers for identifying the virtualized peripheral controllers 116 can be registers that record the vendor ID, registers that record the device ID, registers that record the device status, etc.
In an example embodiment, the physical machine 102 is provided with an external input device; the virtualized peripheral controller 116 implemented on the virtualization acceleration device 104 then may include a first peripheral controller corresponding to the external input device. In this example embodiment, the remote control device 112 may remotely control the physical machine 102 in relation to the external inputs, so it may send, to the virtualization acceleration device 104, a remote control message 118, which includes control actions related to the external inputs. After receiving the remote control message 118, the processor 108 on the virtualization acceleration device 104 provides the remote control message 118 to the first peripheral controller; the first peripheral controller reports the remote control message 118 to the physical machine 102 through a PCI or PCIE bus. For the physical machine 102, specifically the operating system on the physical machine 102, operations related to the external input devices can be executed according to the remote control message 118 reported by the first peripheral controller, such as identifying input instructions and performing operations based on the input instructions, such as page opening, page jumping, file opening, or information input.
In this embodiment, the manner in which the processor 108 provides the remote control message 118 to the first peripheral controller is not limited. In an example embodiment, as shown in
For example, the external input device of the physical machine 102 may include at least one of a keyboard, a mouse, and a touch screen. Depending on the external input devices, the first peripheral controller may also vary; and accordingly, the physical machine 102 may perform different operations related to the external input device according to the remote control message 118 reported by the first peripheral controller. Examples are illustrated as follows.
If the external input device is a keyboard, the first peripheral controller can be implemented as a PCI- or PCIE-based keyboard controller; further, for example, if the keyboard is connected to the physical machine 102 using a PS2 interface, the PCI- or PCIE-based keyboard controller can be implemented as a PCI- or PCIE-based PS2 keyboard controller, referred to as a PCI/PCIE-PS2 keyboard controller. The PCI-PS2 keyboard controller 126 is used as an example for illustration in
If the external input device is a mouse, the first peripheral controller can be implemented as a PCI- or PCIE-based mouse controller; further, for example, if the mouse is connected to the physical machine 102 using a PS2 interface, the PCI- or PCIE-based mouse controller can be implemented as a PCI- or PCIE-based PS2 mouse controller, referred to as a PCI/PCIE-PS2 mouse controller. The PCI-PS2 mouse controller 124 is used as an example for illustration in
In an example embodiment, the physical machine 102 is provided with not only an external input device, but also an external output device; the virtualized peripheral controller 116 implemented on the virtualization acceleration device 104 may then include a second peripheral controller corresponding to the external output device. In this example embodiment, the remote control device 112 can perform remote control related to external outputs on the physical machine 102, so it may send, to the virtualization acceleration device 104, a remote control message 118, which includes control actions related to the external outputs. After receiving the remote control message 118, the processor 108 on the virtualization acceleration device 104 can read, from a memory of the second peripheral controller, target data output by the external output device according to the remote control message 118; and the target data is provided to the remote control device 112 to be output locally thereby, thus achieving synchronizing remote output information.
Further, for example, the processor 108 may directly send all the target data to the remote control device 112, such that the remote control device 112 may directly output the latest target data. Alternatively, before sending the target data to the remote control device 112, the processor 108 may first write the target data into the shared memory 110 on the virtualization acceleration device 104 temporarily; then the target data is analyzed so that part of the data that has changed may be identified; and the part of data is sent to the remote control device 112 such that the remote control device 112 may update the target data to be locally output. This saves network resources as by transmitting only the incremental data that has changed each time, less data is involved.
For example, the external output device of the physical machine 102 may include at least one of a display, a speaker, or the like. Depending on the external output devices, the second peripheral controller may come in different forms and the remote control message 118 will also be different. In what follows a display being the external output device is used as an example for illustration.
If the external output device is a display, the second peripheral controller may be implemented as a PCI- or PCIE-based display controller. Further, for example, if the display adopts the video graphics array (VGA) display standard, the PCI- or PCIE-based display controller may be implemented as a PCI- or PCIE-based VGA controller, referred to as a PCI/PCIE-VGA controller. The PCI-VGA controller 122 is used as an example for illustration in
Based on the above, the remote control device 112 may perform remote desktop control on the physical machine 102. For example, the remote control device 112 can send a remote desktop request as a remote control message 118 to the virtualization acceleration device 104. After receiving the remote desktop request, the processor 108 of the virtualization acceleration device 104 reads the desktop data 114 from the memory (usually referred to as video memory) of the PCI- or PCIE-based display controller, such as a PCI/PCIE-VGA controller, and returns the desktop data 114 to the remote control device 112, such that the desktop data 114 may be displayed locally by the remote control device 112, thus completing the remote desktop control on the physical machine 102.
In the embodiments of the present disclosure, how the hardware structure of the virtualization acceleration device 104 is implemented is not limited. For example, the virtualization acceleration device 104 may be implemented as a pluggable board structure, as shown in
Alternatively, as shown in
Alternatively, as shown in
In the embodiments of the preset application, taking the PCI-VGA controller 122 as an example, the required registers include, but are not limited to, the following: mixed output registers, feature control registers, input status registers, VGA enable registers, CRT control index registers, CRT control data registers, graphic control index registers, graphic control data registers, attribute controllers, DAC interface registers, etc. Taking the PCI-PS2 keyboard or mouse controller as an example, the required registers include, but are not limited to, read/write data port registers, read status registers, and write command registers.
It should be noted that based on the programmable logic device 130, the second processing chip 132, or the third processing chip 134 mentioned above, hardware modules or devices of various functions can be implemented on the virtualization acceleration device 104 as needed. For example, the hardware modules or devices required for the virtualization acceleration device 104 can be implemented, and other hardware modules or devices required for the physical machine 102 can also be implemented, which are not limited to the virtualized peripheral controllers. In addition, as can be seen from
It should be noted that the remote control process implemented by the cooperation of the remote control device 112, the virtualization acceleration device 104, and the physical machine 102 may be implemented using VNC technology, but is not limited thereto. When the VNC technology is used for implementation, the VNC client 202 is deployed on the remote control device 112, and the VNC server 204 is deployed on the virtualization acceleration device 104 instead of the physical machine 102, shown in
In the above embodiment of the present disclosure, the VGA controller and the PS2 controller are virtualized on the virtualization acceleration device, the physical machine identifies and uses the VGA controller and the PS2 controller, the VGA client can acquire desktop data 114 from the video memory of the VGA controller and submits the same to the VNC server 204. The VNC client 202 can send the keyboard event and/or mouse event to the PS2 mouse and/or keyboard controller through the PS2 client, and ultimately send the keyboard event and/or mouse event to the PS2 driver in the physical machine, thereby implementing controlling the physical machine remotely. The entire VNC process does not rely on the baseboard management controller (BMC) on the physical machine, or on private components developed by the physical machine vendor for interacting with the BMC, such as jviewer and iKVM components. Moreover, the virtualized peripheral controller directly interacts with the physical machine through the PCI or PCIE bus, and does not rely on the out of band (OOB) data transmission protocol to interact with the BMC on the physical machine. In other words, the virtualization acceleration device according to the embodiments of the present disclosure can be used on all kinds of the physical machines provided by various vendors. When VNC is used, there is no need to acquire the desktop data 114 from the BMC of the physical machine or send the mouse/keyboard events to the BMC, avoiding the interaction with the private components jviewer/iKVM of the vendors, saving the workload of adapting to the private components of the vendors, making it more versatile.
It should be noted that the physical machine according to the embodiments of the present disclosure can use the virtualization acceleration device 104 provided by the embodiments shown in
In this embodiment, description is focused on the introduction of the virtualization acceleration device 304. The virtualization acceleration device 304 has its own computing resources, such as a processor 306, and may also have an L2 switching chip 308. The processor 306 may be a CPU, GPU, ASIC chip, or an SOC chip, which is not limited thereto. For example, the virtualization acceleration device 304 may further have its own storage resources; for example, it may include local storage resources such as memories and hard disks, and may further include cloud storage resources such as cloud disks and NAS.
In this embodiment, the virtualization acceleration device 304 adopts a software-hardware integration design, including not only some of the hardware resources mentioned above, but also software resources running on the hardware resources, such as an operating system, an analog processor QEMU, private components such as jviewer component 310 and iKVM component 312 from the physical machine vendors, etc.
In this embodiment, the remote control device 112 may remotely control the physical machine 302 through the virtualization acceleration device 304. For example, the VNC client 202 is deployed on the remote control device 112; the VNC server 204 is deployed on the QEMU on the virtualization acceleration device 304; and the VNC server 204 runs on the QEMU, which provides the VNC client 202 with the same usage as the virtual machine. The VNC client 202 and the VNC server 204 cooperate with the private components including a jviewer component 310 and a iKVM component 312 from the physical machine vendor, as well as the BMC 314 on the physical machine 302, thus achieving controlling the physical machine remotely. The remote control process is as follows:
In addition to the above-mentioned computing device, the embodiments of the present disclosure further provide a virtualization acceleration device 104. The virtualization acceleration device 104 is a device that implements the virtualization technology and helps the physical machine interconnected thereto to implement at least part of virtualization functions. That is, the physical machine may offload part or all of the virtualization functions to the virtualization acceleration device 104, thereby achieving performance acceleration. The implementation forms of the virtualization acceleration device 104 are not limited by this embodiment, which can be a board or a chip. As shown in
For example, the virtualization acceleration device 104 may further have its own storage resources; for example, it may include local storage resources such as memories and hard disks, and may further include cloud storage resources such as cloud disks and NAS. The shared memory 110 as shown in
In this embodiment, the virtualization acceleration device 104 adopts a software-hardware integration design, including not only some of the hardware resources mentioned above, but also software resources running on the hardware resources, such as operating systems, software for enabling the virtualization technology, drivers for related hardware, etc. The software used for implementing the virtualization technology can be, but is not limited to: Hypervisor.
In this embodiment, the virtualization acceleration device 104 is interconnected to the physical machine through the high-speed serial bus 106, which allows the virtualization acceleration device 104 to be piggybacked on the physical machine. On this basis, by virtue of the software and hardware resources of the virtualization acceleration device 104, some of the virtualization logic such as computing, storage, and network that was originally implemented on the physical machine can be offloaded to the virtualization acceleration device 104, which not only improves the virtualization performance and reduces costs, such a solution also ensures that the physical machine has the functions of a virtual machine and can be interconnected to cloud disks and VPC networks just like a virtual machine. In addition, it is ensured that the physical machine uses its own computing, storage, and other resources independently, eliminating the issue of multiple virtual machines sharing local resources of the physical machine, and thus turning the physical machine into a computing device having both the resilience from a virtual machine and the performance from a physical machine. In this way, the physical machine is highly isolated, and has both the migration advantages of the virtual machine and the resilient advantage of cloud deployment. In addition, it has the advantages of supporting rapid delivery, compatible virtual machine mirroring, cloud storage device startup, attachment of cloud storage devices, migration recovery of physical machine failures, automated operation and maintenance, etc., thus having high application value.
Further, the virtualization acceleration device 104 of this embodiment further includes a programmable logic device. The programmable logic device can be an FPGA or CPLD, and the like. Based on the programmable logic device, hardware modules or devices of various functions can be implemented on the virtualization acceleration device 104 as needed. For example, the hardware modules or devices required for the virtualization acceleration device 104 can be implemented, and other hardware modules or devices required for the physical machine can also be implemented, In the following embodiments of the present disclosure, the process of implementing, on the programmable logic device, the virtualized peripheral controller for the physical machine is used as an example for illustration.
As shown in
As the Virtualized peripheral controllers 116 implemented on the virtualization acceleration device 104 may learn and participate in the related operations of the physical machine, these Virtualized peripheral controllers 116 can cooperate with the remote control device to remotely control the physical machine. For example, the remote control device may send a remote control message 118 to the virtualization acceleration device 104 through a network, wherein the remote control message 118 may vary depending on remote control requirements; and then, the processor 108 on the virtualization acceleration device 104 receives the remote control message 118 sent by the remote control device, and remotely control the physical machine through the virtualized peripheral controllers 116 according to the remote control message 118, detailed process of which is shown in
In some example embodiments of the present disclosure, the virtualization acceleration device 104 may be interconnected to the physical machine using PCI or PCIE. Compared to the physical machine, the virtualization acceleration device 104 can be regarded as a PCI or PCIE device mounted on the physical machine. Therefore, the virtualization acceleration device 104 has its own PCI or PCIE configuration space, which is used to store some description information of the virtualization acceleration device 104, such as the vendor ID, device ID, class code, interrupt pins, and other important information. On this basis, the process of implementing the virtualized peripheral controller 116 on the virtualization acceleration device 104, for example, includes: configuring registers required for the peripheral controller on the virtualization acceleration device 104, and mapping the registers to a PCI or PCIE configuration space of the virtualization acceleration device 104 to implement the virtualized peripheral controller 116. Accordingly, the process that the physical machine identifies the virtualized peripheral controller 116, for example, includes: enumerating the devices on the high-speed serial bus, with the virtualization acceleration device 104 being identified first. Further, if the virtualization acceleration device 104 is discovered, the virtualized peripheral controller 116 implemented on the virtualization acceleration device 104 may be identified according to values of at least some of the registers in its configuration space, and the driver of the virtualized peripheral controller 116 is started.
When external devices supported by the physical machine are different, the virtualized peripheral controllers 116 implemented on the virtualization acceleration device 104 in this embodiment may also be different. In an example embodiment, the physical machine is provided with an external input device; the virtualized peripheral controller 116 implemented on the virtualization acceleration device 104 may then include a first peripheral controller corresponding to the external input device. In this example embodiment, the remote control device may remotely control the physical machine in relation to the external inputs, so it may send, to the virtualization acceleration device 104, a remote control message 118, which includes control actions related to the external inputs. After receiving the remote control message 118, the processor 108 on the virtualization acceleration device 104 provides the remote control message 118 to the first peripheral controller; the first peripheral controller reports the remote control message 118 to the physical machine through a PCI or PCIE bus. For the physical machine, specifically the operating system on the physical machine, may execute operations related to the external inputs according to the remote control message 118 reported by the first peripheral controller.
In this embodiment, the manner in which the processor 108 provides the remote control message 118 to the first peripheral controller is not limited. In an example embodiment, as shown in
For example, the external input device of the physical machine may include at least one of a keyboard, a mouse, and a touch screen. Depending on the external input devices, the first peripheral controller may also vary. If the external input device is a keyboard, the first peripheral controller can be implemented as a PCI- or PCIE-based keyboard controller; further, for example, if the keyboard is connected to the physical machine using a PS2 interface, the PCI- or PCIE-based keyboard controller can be implemented as a PCI- or PCIE-based PS2 keyboard controller, referred to as a PCI/PCIE-PS2 keyboard controller. The PCI/PCIE-PS2 keyboard controller is used as an example for illustration in
If the external input device is a mouse, the first peripheral controller can be implemented as a PCI- or PCIE-based mouse controller; further, for example, if the mouse is connected to the physical machine using a PS2 interface, the PCI- or PCIE-based mouse controller can be implemented as a PCI- or PCIE-based PS2 mouse controller, referred to as a PCI/PCIE-PS2 mouse controller. The PCI/PCIE-PS2 mouse controller is used as an example for illustration in
In an example embodiment, the physical machine is provided not only with an external input device, but also an external output device; the virtualized peripheral controller 116 implemented on the virtualization acceleration device 104 may then include a second peripheral controller corresponding to the external output device. The processor 108 is specifically configured to: receive a remote control message 118 sent by the remote control device, and read, from the memory of the second peripheral controller, the target data output by the external output device according to the remote control message 118; and provide the target data to the remote control device, such that the remote control device may locally output the target data, thus achieving synchronizing remote output information.
Further, for example, before sending the target data to the remote control device, the processor 108 may first write the target data into the shared memory 110 on the virtualization acceleration device 104 temporarily; then the target data is analyzed so that part of the data that has changed may be identified; and the part of data is sent to the remote control device such that the remote control device may update the target data to be locally output. This saves network resources as by transmitting only the incremental data that has changed each time, less data is involved. The shared memory 110 refers to a memory space on the virtualization acceleration device 104 and may be read and written by the processor 108 and the virtualized peripheral controller 116.
For example, the external output device of the physical machine may include at least one of a display, a speaker, or the like. If the external output device is a display, the second peripheral controller may be implemented as a PCI- or PCIE-based display controller; further, for example, if the display adopts the VGA display standard, the PCI- or PCIE-based display controller may be implemented as a PCI- or PCIE-based VGA controller, referred to as a PCI/PCIE-VGA controller. The PCI/PCIE-VGA controller is used as an example for illustration in
In the embodiments of the present disclosure, how the hardware structure of the virtualization acceleration device 104 is implemented is not limited. For example, the virtualization acceleration device 104 may be implemented as a pluggable board structure, as shown in
Based on the virtualization acceleration device 104 provided by this embodiment, the remote control device may remotely control the physical machine that is connected to the virtualization acceleration device 104 through a PCI or PCIE bus. Reference may be made to the aforementioned embodiments for the detailed process of remote control, which will not be repeated herein. Further, the remote control process may be implemented using the VNC technology, but is not limited thereto.
When the virtualization acceleration device 104 provided by this embodiment cooperates with the remote control device to implement the entire VNC process, the process does not rely on the BMC on the physical machine, or on private components developed by the physical machine vendor for interacting with the BMC, such as jviewer and iKVM components. Moreover, the virtualized peripheral controller directly interacts with the physical machine through the PCI or PCIE bus, and does not rely on the OOB data transmission protocol to interact with the BMC on the physical machine. In other words, the virtualization acceleration device according to the embodiments of the present disclosure can be used on all kinds of the physical machines provided by various vendors. When VNC is used, there is no need to acquire the desktop data 114 from the BMC of the physical machine or send the mouse/keyboard events to the BMC, avoiding the interaction with the private components jviewer/iKVM of the vendors, saving the workload of adapting to the private components of the vendors, making it more versatile.
In an example embodiment, the virtualization acceleration device includes a first processing chip and a programmable logic device; the processor is implemented on the first processing chip; and the virtualized peripheral controller is implemented on the programmable logic device. Alternatively, the virtualization acceleration device may include a second processing chip; the processor and the virtualized peripheral controller are both implemented on the second processing chip. Alternatively, the virtualization acceleration device may include a first processing chip and a third processing chip; the processor is implemented on the first processing chip; and the virtualized peripheral controller is implemented on the third processing chip. Specifically, registers required for the peripheral controller can be configured on the virtualization acceleration device (such as the programmable logic device, the second processing chip, or the third processing chip), and are mapped to the configuration space of the virtualization acceleration device to implement the virtualized peripheral controller.
In an example embodiment, the virtualized peripheral controller may include a first peripheral controller corresponding to an external input device of the physical machine. On this basis, the remotely controlling the physical machine through a virtualized peripheral controller on the virtualization acceleration device according to the remote control message 118 comprises: providing the remote control message 118 to the first peripheral controller, wherein the first peripheral controller reports the remote control message 118 to the physical machine such that the physical machine may execute an operation adapted to the external input device according to the remote control message 118.
Further, for example, the providing the remote control message 118 to the first peripheral controller comprises: writing the remote control message 118 into a shared memory on the virtualization acceleration device to be read by the first peripheral controller. Accordingly, the first peripheral controller reporting the remote control message 118 to the physical machine comprises: reading the remote control message 118 from the shared memory and reporting to the physical machine through the high-speed serial bus.
In an example embodiment, the virtualized peripheral controller may include a second peripheral controller corresponding to an external output device of the physical machine. On this basis, the remotely controlling the physical machine through a virtualized peripheral controller on the virtualization acceleration device according to the remote control message 118 comprises:
Further, for example, the sending the target data to the remote control device such that the remote control device may locally output the target data comprises:
Reference may be made to the aforementioned embodiments for the detailed description of each step of the above method embodiments, which will not be repeated herein.
It should be noted that the execution body in each step of the method provided in the embodiment may be the same device, or the method may use different devices as execution bodies. For example, the execution body of step 502 to step 504 can be a device A. For another example, the execution body of step 502 can be a device A, the execution body of step 504 can be a device B, etc.
In addition, in some of the processes described in the embodiments and accompany drawings, multiple operations shown in a specific order are included. It is to be understood that these operations may be performed not in the order in which they occur herein or may be performed in parallel. Step numbers of the operations, such as 501 and 502, are merely used to distinguish different operations. The numbers themselves do not represent any execution order. In addition, these processes may include more or fewer operations, and these operations may be performed sequentially or in parallel. It should be noted that the description of “first,” “second,” and the like herein is configured to distinguish different messages, devices, modules, and the like, and does not represent a sequence, nor does it define that “first” and “second” are different types.
Accordingly, embodiments of the present disclosure further provide a computer-readable storage medium having stored therein a computer program/instruction, wherein when the computer program/instruction is executed by a processor, the processor is enabled to implement steps in the above method embodiments.
Accordingly, embodiments of the present disclosure further provides a computer program product, comprising a computer program/instruction. When the computer program/instruction is executed by a processor, the processor is enabled to implement steps in the above method embodiments.
The display in the above embodiments includes a screen, which may be a liquid crystal display (LCD) and a touch panel (TP). If the screen includes a touch panel, the screen may be implemented as a touch screen to receive input signals from a user. The touch panel includes one or more touch sensors to sense touch, swiping, and gestures on the touch panel. The touch sensor may sense the boundary of a touch or swipe action, and it may further detect the duration and pressure related to the touch or swipe operation.
An audio component in the above embodiments may be configured to output and/or input audio signals. For example, the audio component may include a microphone (MIC) configured to receive an external audio signal when the device on which the audio component is located is in an operating mode, for example, in a call mode, a recording mode, or a voice recognition mode. The received audio signal may be further stored in a memory or sent through a communication component. In some embodiments, the audio component further includes a speaker for outputting an audio signal.
Those skilled in the art should understand that the embodiments of the present disclosure may be provided as a method, a system, or a computer program product. Therefore, the present disclosure may take a form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware elements. Furthermore, the present disclosure may take the form of a computer program product which is embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and so forth) having computer-usable program code included therein.
The present disclosure is described with reference to flow charts and/or block diagrams of methods, devices (systems), and computer program products according to embodiments of the present disclosure. It should be understood that computer program instructions may be used to implement each process and/or each block in the flow charts and/or the block diagrams and a combination of a process and/or a block in the flow charts and/or the block diagrams. These computer program instructions may be provided for a general-purpose computer, a dedicated computer, an embedded processor, or a processor of another programmable data processing device to generate a machine, so that the instructions executed by a computer or a processor of another programmable data processing device generate an apparatus for implementing a specific function in one or more processes in the flow charts and/or in one or more blocks in the block diagrams.
These computer program instructions may also be stored in a computer readable memory that can instruct the computer or another programmable data processing device to work in a specific manner, so that the instructions stored in the computer readable memory generate an artifact that includes an instruction apparatus. The instruction apparatus implements a specific function in one or more processes in the flow charts and/or in one or more blocks in the block diagrams.
These computer program instructions may also be loaded onto a computer or another programmable data processing device, so that a series of operation steps are performed on the computer or another programmable device to generate computer-implemented processing. Therefore, the instructions executed on the computer or another programmable device are used to provide steps for implementing a specific function in one or more processes in the flow charts and/or in one or more blocks in the block diagrams.
In a typical configuration, a computing device includes one or more processors (CPU), an input/output interface, a network interface, and a memory.
The memory may include a volatile memory on a computer-readable medium, a random access memory (RAM) and/or a non-volatile memory, and the like, such as a read-only memory (ROM) or a flash random access memory (flash RAM). The memory is an example of the computer-readable media.
Computer-readable media further include nonvolatile and volatile, removable and non-removable media employing any method or technique to achieve information storage. The information may be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, a phase-change random access memory (PRAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), other types of random access memories (RAM), a read-only memory (ROM), an electrically erasable programmable read-only memory (EEPROM), a flash memory or other memory technologies, a compact disc read-only memory (CD-ROM), a digital versatile disc (DVD) or other optical memories, a magnetic cassette tape, a magnetic tape, a magnetic disk storage or other magnetic memories or any other non-transmission medium, which may be used to store information that can be accessed by a computing device. As defined herein, the computer-readable media do not include transitory media, such as modulated data signals and carriers.
It should be further noted that the terms “include,” “comprise,” or any other variants thereof are intended to encompass non-exclusive inclusion, so that a process, method, product, or device that involves a series of elements comprises not only those elements, but also other elements not explicitly listed, or elements that are inherent to such a process, method, product, or device. Without further limitation, an element defined by the phrase “including a . . . ” does not exclude the existence of another identical element in the process, method, product, or device that includes the element.
The above are only embodiments of the present disclosure and are not intended to limit the present disclosure. For those skilled in the art, there may be various modifications and changes to the present disclosure. Any modification, equivalent substitution, improvement, etc., made within the spirit and principle of the present disclosure shall be included in the scope of the claims of the present disclosure.
The present disclosure may further be understood with clauses as follows.
Clause 1. A computing device, comprising a physical machine and a virtualization acceleration device, wherein the virtualization acceleration device is connected to the physical machine through a high-speed serial bus;
Clause 2. The device according to clause 1, wherein registers required for the peripheral controller are configured on the virtualization acceleration device, and the registers are mapped to a configuration space of the virtualization acceleration device to implement the virtualized peripheral controller.
Clause 3. The device according to clause 2, wherein the physical machine is specifically configured to: enumerate devices on the high-speed serial bus, and identify the virtualized peripheral controller according to values of at least some of the registers in the configuration space when the virtualization acceleration device is discovered.
Clause 4. The device according to any one of clauses 1-3, wherein the virtualization acceleration device further comprises a processor; and the processor is configured to remotely control the physical machine through the virtualized peripheral controller according to a remote control message sent by the remote control device.
Clause 5. The device according to clause 4, wherein the virtualized peripheral controller comprises a first peripheral controller corresponding to an external input device of the physical machine, and the processor is specifically configured to: provide the remote control message to the first peripheral controller such that the first peripheral controller may report same to the physical machine;
Clause 6. The device according to clause 5, wherein the processor is specifically configured to: write the remote control message into a shared memory on the virtualization acceleration device to be read by the first peripheral controller;
Clause 7. The device according to clause 5, wherein the external input device comprises at least one of a keyboard, a mouse, and a touch screen;
Clause 8. The device according to clause 7, wherein if the remote control message comprises a mouse event, then the physical machine is specifically configured to: execute a mouse click operation according to mouse position information and mouse click information of the mouse event;
Clause 9. The device according to clause 4, wherein the virtualized peripheral controller comprises a second peripheral controller corresponding to an external output device of the physical machine, and the processor is specifically configured to: read, from a memory of the second peripheral controller, target data output by the external output device according to the remote control message, and send the target data to the remote control device such that the remote control device may locally output the target data.
Clause 10. The device according to clause 9, wherein the external output device is a display; the second peripheral controller is a display controller; the remote control message is a remote desktop request, and the target data is desktop data.
Clause 11. The device according to clause 10, wherein the physical machine is further configured to: call the display controller to perform display processing on the desktop data when the display controller is identified; the display controller is further configured to write the desktop data into a local memory;
Clause 12. The device according to clause 9, wherein the processor is specifically configured to: write the target data into the shared memory on the virtualization acceleration device, identify a part of data that has changed in the target data, and send the part of data to the remote control device such that the remote control device may update the target data to be locally output, wherein the shared memory is a memory space on the virtualization acceleration device and may be read and written by the processor and the virtualized peripheral controller.
Clause 13. The device according to clause 4, wherein the virtualization acceleration device comprises a programmable logic device and a first processing chip, the virtualized peripheral controller is located on the programmable logic device, and the processor is located on the first processing chip.
Clause 14. The device according to clause 13, wherein the programmable logic device is an FPGA chip or a CPLD chip; the first processing chip is an ASIC chip or an SOC chip.
Clause 15. The device according to clause 4, wherein the virtualization acceleration device comprises a second processing chip, and the virtualized peripheral controller and the processor are both located on the second processing chip.
Clause 16. The device according to clause 15, wherein the second processing chip is an ASIC chip or an SOC chip.
Clause 17. The device according to any one of clauses 1-3, wherein the high-speed serial bus is a PCI bus or a PCIE bus.
Clause 18. A virtualization acceleration device, comprising a high-speed serial bus and a virtualized peripheral controller implemented for a physical machine, wherein the virtualization acceleration device is connected to the physical machine through the high-speed serial bus; the virtualized peripheral controller is configured to cooperate with a remote control device to remotely control the physical machine, wherein the physical machine calls the virtualized peripheral controller to execute a peripheral operation, and the peripheral operation corresponds to the remote control.
Clause 19. The device according to clause 18, wherein the virtualization acceleration device further comprises a processor; and the processor is configured to: implement, on the virtualization acceleration device, the virtualized peripheral controller for the physical machine, and remotely control the physical machine through the virtualized peripheral controller according to a remote control message sent by the remote control device.
Clause 20. The device according to clause 19, wherein the processor is specifically configured to: configure registers required for the peripheral controller on the virtualization acceleration device, and map the registers to a configuration space of the virtualization acceleration device to implement the virtualized peripheral controller.
Clause 21. The device according to clause 19 or 20, wherein the virtualized peripheral controller comprises a first peripheral controller corresponding to an external input device of the physical machine, and the processor is specifically configured to: provide the remote control message to the first peripheral controller; the first peripheral controller is configured to report the remote control message to the physical machine such that the physical machine may execute an operation adapted to an external input according to the remote control message.
Clause 22. The device according to clause 21, wherein the processor is specifically configured to: write the remote control message into a shared memory on the virtualization acceleration device to be read by the first peripheral controller;
Clause 23. The device according to clause 19 or 20, wherein the virtualized peripheral controller comprises a second peripheral controller corresponding to an external output device of the physical machine, and the processor is specifically configured to: read, from a memory of the second peripheral controller, target data output by the external output device according to the remote control message, and send the target data to the remote control device such that the remote control device may locally output the target data.
Clause 24. The device according to clause 23, wherein the processor is specifically configured to: write the target data into the shared memory on the virtualization acceleration device, identify at least part of data that has changed in the target data, and send the at least part of data to the remote control device such that the remote control device may update the target data to be locally output, wherein
Clause 25. The device according to clause 19 or 20, wherein the virtualization acceleration device comprises a programmable logic device and a first processing chip, the virtualized peripheral controller is located on the programmable logic device, and the processor is located on the first processing chip.
Clause 26. The device according to clause 25, wherein the programmable logic device is an FPGA chip or a CPLD chip; the first processing chip is an ASIC chip or an SOC chip.
Clause 27. The device according to clause 19 or 20, wherein the virtualization acceleration device comprises a second processing chip, and the virtualized peripheral controller and the processor are both located on the second processing chip.
Clause 28. A remote control method, comprising:
Clause 29. The method according to clause 28, wherein the virtualized peripheral controller comprises a first peripheral controller corresponding to an external input device of the physical machine;
Clause 30. The method according to clause 29, wherein the providing the remote control message to the first peripheral controller comprises: writing the remote control message into a shared memory on the virtualization acceleration device to be read by the first peripheral controller;
Clause 31. The method according to clause 28, wherein the virtualized peripheral controller comprises a second peripheral controller corresponding to an external output device of the physical machine;
Clause 32. The method according to clause 31, wherein the sending the target data to the remote control device such that the remote control device may locally output the target data comprises:
Clause 33. A computer-readable storage medium having stored therein a computer program/instruction, wherein when the computer program/instruction is executed by a processor, the processor is enabled to implement the method steps of any one of clauses 28-32.
Clause 34. A computer program product, comprising computer programs/instructions, wherein when the computer programs/instructions are executed by a processor, the processor is enabled to implement the method steps of any one of clauses 28-32.
Number | Date | Country | Kind |
---|---|---|---|
202110365839.5 | Apr 2021 | CN | national |
This application claims priority to and is a continuation of PCT Patent Application No. PCT/CN2022/083260, filed on 28 Mar. 2022 and entitled “COMPUTING DEVICE, VIRTUALIZATION ACCELERATION DEVICE, REMOTE CONTROL METHOD AND STORAGE MEDIUM,” which claims priority to Chinese Patent Application No. 202110365839.5, filed on 6 Apr. 2021 and entitled “COMPUTING DEVICE, VIRTUALIZATION ACCELERATION DEVICE, REMOTE CONTROL METHOD AND STORAGE MEDIUM,” which are incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2022/083260 | Mar 2022 | US |
Child | 18481752 | US |