Server, remote management method of server, program product and medium

By using the server side, business driver, kernel protocol stack and network card driver to work together in the remote management of the server, transfer data address information and avoid multiple memory copies, the problem of inefficiency in remote management of the server is solved and data transmission is improved Efficiency and stability of substrate management controller.

CN119182764APending Publication Date: 2024-12-24SHANDONG YUNHAI GUOCHUANG CLOUD COMPUTING EQUIP IND INNOVATION CENT CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411161642.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-22
Publication Date
2024-12-24

AI Technical Summary

Technical Problem

During the remote management of the server, multiple memory copies cause the load of the substrate management controller to increase, affecting operational efficiency.

Method used

By passing the address information of the data, avoid multiple memory copies, use the server, business driver, kernel protocol stack and network card driver to work together, directly update the buffer address, and realize data transmission.

Benefits of technology

Improves the data transmission efficiency of remote operations, reduces the load and memory overhead of the substrate management controller, and enhances stability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119182764A_ABST
    Figure CN119182764A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a server, a remote management method of the server, a computer program product and a medium, and the server is used for sending a data request to a business drive program, receiving the position information of target data corresponding to the data request sent by the business drive program, and sending the position information of the target data to a kernel protocol stack, the business driving program is used for obtaining target data according to the data request, storing the target data to a memory of the substrate management controller, obtaining position information of the target data and sending the position information of the target data to the server, and the kernel protocol stack is used for updating the buffer area address to the address of the target data according to the position information of the target data. The buffer area address is sent to a network card driving program, and the network card driving program is used for sending the target data to the client side according to the buffer area address. Through the transmission of the position information of the target data, the transmission efficiency of the image data during remote management is improved, and the load and memory overhead are reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of computer technology, and in particular to a server and a remote management method of the server, a computer program product and a medium. Background Art

[0002] In recent years, with the rapid development of the Internet and cloud computing, the demand for servers is also growing. The number of servers is increasing, and the demand for remote management of servers is also increasing. Remote management, as the name implies, does not require engineers to directly operate the server, but completes the operation through the remote management client of the BMC (Baseboard Management Controller). Most baseboard management controllers support multi-client operation. In the actual operation of remote management, there is a large amount of data interaction, especially the interactive content of image data. These image data not only need to be updated in real time, but also involve details such as resolution, so a large amount of data transmission is required.

[0003] There are two main ways to remotely manage servers: graphical interface operation and command line interface operation. Currently, these operations are usually implemented by operating the KVM (Keyboard, Video, Mouse client) client, which allows users to remotely access and control the graphical interface or command line interface of the operating system. However, since multiple memory copies are required during the data transmission process, especially when multiple clients perform remote operations concurrently, this frequent memory copying will greatly increase the load of the baseboard management controller, thereby affecting the overall operation efficiency. Summary of the invention

[0004] In view of the above problems, embodiments of the present invention are proposed to provide a server and a remote management method of the server, a program product and a medium that overcome the above problems or at least partially solve the above problems.

[0005] In order to solve the above problems, an embodiment of the present invention discloses a server, wherein the server includes a baseboard management controller, and the baseboard management controller includes a kernel protocol stack, a service driver, a network card driver, and a server;

[0006] The server is used to send a data request to the service driver, receive the location information of the target data corresponding to the data request sent by the service driver, and send the location information of the target data to the kernel protocol stack;

[0007] The service driver is used to obtain target data according to the data request, store the target data in the memory of the baseboard management controller, obtain the location information of the target data, and send the location information of the target data to the server;

[0008] The kernel protocol stack is used to update the buffer address to the address of the target data according to the location information of the target data, and send the buffer address to the network card driver;

[0009] The network card driver is used to send target data to the client according to the buffer address.

[0010] Optionally, the kernel protocol stack is further used to receive the data request sent by the client, and send the data request to the server through a socket interface.

[0011] Optionally, the network card driver is used to copy the target data to a hardware buffer of the network card according to the buffer address, and send the target data to the client through the hardware buffer.

[0012] Optionally, the service driver is used to obtain original image data, compress and decode the original image data, and obtain the target data.

[0013] Optionally, the kernel protocol stack is also used to receive data information of the target data sent by the server through the socket interface; determine whether the data information includes the target data or the location information of the target data; if the data information includes the target data, copy the target data to obtain the copied target data, and send a data sending request to the network card driver, the data sending request includes the copied target data, so that the network card driver copies the copied target data to the hardware buffer of the network card again, and sends the target data to the client through the hardware buffer; if the data information includes the location information of the target data, update the address of the socket buffer to the address of the target data according to the location information of the target data, and send a data sending request to the network card driver, the data sending request includes the address of the socket buffer, so that the network card driver copies the target data to the hardware buffer of the network card according to the address of the socket buffer, and sends the target data to the client through the hardware buffer.

[0014] Accordingly, an embodiment of the present invention discloses a remote management method of a server, which is applied to the server as described above, and the method includes:

[0015] Sending a data request to the service driver through the service end, receiving location information of target data corresponding to the data request sent by the service driver, and sending the location information of the target data to the kernel protocol stack;

[0016] Acquire target data according to the data request through the service driver, store the target data in the memory of the baseboard management controller, obtain location information of the target data, and send the location information of the target data to the server;

[0017] updating the buffer address to the address of the target data according to the location information of the target data through the kernel protocol stack, and sending the buffer address to the network card driver;

[0018] The target data is sent to the client through the network card driver according to the buffer address.

[0019] Optionally, the method further includes:

[0020] Receiving the data request sent by the client through the kernel protocol stack;

[0021] The data request is sent to the server through a socket interface.

[0022] Optionally, sending the target data to the client according to the buffer address through the network card driver includes:

[0023] Copying the target data to a hardware buffer of the network card according to the buffer address through the network card driver;

[0024] The target data is sent to the client through the hardware buffer.

[0025] Optionally, acquiring the target data according to the data request through the service driver includes:

[0026] Acquiring original image data through the service driver;

[0027] The original image data is compressed and decoded to obtain the target data.

[0028] Optionally, the method further includes:

[0029] Receiving, through the kernel protocol stack, data information of the target data sent by the server through the socket interface;

[0030] Determining whether the data information includes the target data or the location information of the target data;

[0031] If the data information includes the target data, the target data is copied to obtain the copied target data, and a data sending request is sent to the network card driver, wherein the data sending request includes the copied target data, so that the network card driver copies the copied target data to the hardware buffer of the network card again, and sends the target data to the client through the hardware buffer;

[0032] If the data information includes the location information of the target data, the address of the socket buffer is updated to the address of the target data according to the location information of the target data, and a data sending request is sent to the network card driver. The data sending request includes the address of the socket buffer, so that the network card driver copies the target data to the hardware buffer of the network card according to the address of the socket buffer, and sends the target data to the client through the hardware buffer.

[0033] Correspondingly, an embodiment of the present invention further discloses an electronic device, comprising: a processor, a memory, and a computer program stored in the memory and capable of running on the processor, wherein when the computer program is executed by the processor, the steps of the remote management method of the server as described above are implemented.

[0034] Correspondingly, an embodiment of the present invention further discloses a computer program product, including a computer program / instruction, wherein when the computer program / instruction is executed by a processor, the steps of the remote management method of the server as described above are implemented.

[0035] Correspondingly, the present invention also discloses a non-volatile readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the steps of the remote management method of the server as described above are implemented.

[0036] The embodiments of the present invention include the following advantages:

[0037] The server provided by the embodiment of the present invention includes a baseboard management controller, and the baseboard management controller includes a kernel protocol stack, a service driver, a network card driver, and a server, wherein the server is used to send a data request to the service driver, receive the location information of the target data corresponding to the data request sent by the service driver, and send the location information of the target data to the kernel protocol stack. The service driver is used to obtain the target data according to the data request, store the target data in the memory of the baseboard management controller, obtain the location information of the target data, and send the location information of the target data to the server. The kernel protocol stack is used to update the buffer address to the address of the target data according to the location information of the target data, and send the buffer address to the network card driver. The network card driver is used to send the target data to the client according to the buffer address. In the embodiment of the present invention, the service driver obtains the target data, sends the location information of the target data to the server, and the server sends the location information of the target data to the kernel protocol stack, and the kernel protocol stack sends the location information of the target data to the network card driver, so that the network card driver sends the target data to the client, thereby avoiding the inefficiency caused by multiple copies of the target data for data transmission, improving the data transmission efficiency during remote management, reducing the load of the baseboard management controller, reducing the memory overhead of the baseboard management controller, and improving the stability of the baseboard management controller. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] Figure 1 is a structural diagram of a server according to an embodiment of the present invention;

[0039] Figure 2 It is a flow chart of the steps of a remote management method of a server according to an embodiment of the present invention;

[0040] Figure 3 An embodiment of the present invention provides a structural block diagram of an electronic device;

[0041] Figure 4 A structural block diagram of a computer-readable storage medium provided by an embodiment of the present invention.

[0042] Reference numerals: baseboard management controller 10 , server 11 , service driver 12 , kernel protocol stack 13 , network card driver 14 . DETAILED DESCRIPTION

[0043] In order to make the above-mentioned objects, features and advantages of the present invention more obvious and easy to understand, the present invention is further described in detail below with reference to the accompanying drawings and specific embodiments.

[0044] In recent years, with the rapid development of the Internet and cloud computing, the demand for servers is also growing. The number of servers is increasing, and the demand for remote management of servers is also increasing. Remote management, as the name implies, does not require engineers to directly operate the server, but completes the operation through the remote management client of the BMC (Baseboard Management Controller). Most baseboard management controllers support multi-client operation. In the actual operation of remote management, there is a large amount of data interaction, especially the interactive content of image data. These image data not only need to be updated in real time, but also involve details such as resolution, so a large amount of data transmission is required.

[0045] There are two main ways to remotely manage servers: graphical interface operation and command line interface operation. Currently, these operations are usually implemented by operating the KVM (Keyboard, Video, Mouse client) client, which allows users to remotely access and control the graphical interface or command line interface of the operating system. However, since multiple memory copies are required during the data transmission process, especially when multiple clients perform remote operations concurrently, this frequent memory copying will greatly increase the load of the baseboard management controller, thereby affecting the overall operation efficiency.

[0046] One of the core concepts of the embodiments of the present invention is to transmit data by transferring the address information of the data, thereby avoiding the inefficiency caused by multiple memory copies during the data transmission process, thereby improving the efficiency of the remote operation server, reducing the load and memory overhead of the baseboard management controller, and improving the stability of the remote operation server.

[0047] Reference Figure 1 , shows a schematic diagram of the structure of a server according to an embodiment of the present invention, which may specifically include the following structure:

[0048] The baseboard management controller 10 includes a server 11 , a service driver 12 , a kernel protocol stack 13 and a network card driver 14 .

[0049] The server 11 is used to send a data request to the service driver 12, receive the location information of the target data corresponding to the data request sent by the service driver 12, and send the location information of the target data to the kernel protocol stack 13. The service driver 12 is used to obtain the target data according to the data request, store the target data in the memory of the baseboard management controller 10, obtain the location information of the target data, and send the location information of the target data to the server 11. The kernel protocol stack 13 is used to update the buffer address to the address of the target data according to the location information of the target data, and send the buffer address to the network card driver 12. The network card driver 14 is used to send the target data to the client according to the buffer address.

[0050] The device on which the user remotely controls the server is provided with a KVM client, which allows the user to remotely access and control the keyboard, video and mouse input of another computer through the network. The server 11 is a server corresponding to the KVM client, which is provided at the application layer of the baseboard management controller 10, and the user can remotely operate the server through the KVM client.

[0051] The server 11 is used to send a data request to the service driver 12. The service driver 12 may be a JPEG (Joint Photographic Experts Group) driver. The JPEG driver is a software module for processing JPEG image format compression and decompression. Exemplarily, the server 11 may request the kernel jpeg driver to provide data through an ioctl (Input / Output Control) request. This command allows the user space program to communicate with the kernel module and perform specific device control operations.

[0052] When the business driver 12 receives the ioctl request from the server 11, it obtains the target data, and then stores the obtained target data in the memory of the baseboard management controller 10, obtains the location information of the target data, the location information includes the starting position and length of the target data, and then sends the location information of the target data, that is, the starting position and length of the target data, to the server 11.

[0053] After receiving the starting position and length of the target data of the target data, the server 11 sends the starting position and length of the target data of the target data to the kernel protocol stack 13 through the socket interface. The operating system provides a series of Socket interfaces, allowing applications to create sockets, bind addresses, listen for connections, accept connections, send data, and receive data. The kernel protocol stack 13 is a part of the operating system kernel, which is responsible for processing various layers of network communication, including data link layer, network layer, transport layer, and application layer protocols. The kernel protocol stack is a collection of software components in the kernel for implementing network protocol functions. The kernel protocol stack 13 provides a socket interface between the user space program and the kernel protocol stack, so that the application can perform network communication through a standard socket interface.

[0054] After receiving the starting position and length of the target data sent by the server 11, the kernel protocol stack 13 updates the address of the socket buffer to the address of the target data, and then sends the updated buffer address to the network card driver 14. The socket buffer is a buffer in the operating system kernel for storing network data packets. In the process of network communication, data packets need to pass through the socket buffer when sending and receiving. This buffer is in the kernel space and is used to temporarily store data packets received from the network interface or data packets to be sent to the network interface.

[0055] The network card driver 14 sends the target data in the buffer address to the client according to the buffer address.

[0056] The server provided by the embodiment of the present invention includes a baseboard management controller, the baseboard management controller includes a kernel protocol stack, a service driver, a network card driver and a server, wherein the server is used to send a data request to the service driver, receive the location information of the target data corresponding to the data request sent by the service driver, send the location information of the target data to the kernel protocol stack, the service driver is used to obtain the target data according to the data request, store the target data in the memory of the baseboard management controller, obtain the location information of the target data, send the location information of the target data to the server, the kernel protocol stack is used to update the buffer address to the address of the target data according to the location information of the target data, send the buffer address to the network card driver, and the network card driver is used to send the target data to the client according to the buffer address. In the embodiment of the present invention, the service driver obtains the target data, sends the location information of the target data to the server, and the server sends the location information of the target data to the kernel protocol stack, and the kernel protocol stack sends the location information of the target data to the network card driver, so that the network card driver sends the target data to the client, thereby avoiding the inefficiency caused by multiple copies of the target data for data transmission, improving the data transmission efficiency when the server is remotely operated, reducing the load of the baseboard management controller, reducing the memory overhead of the baseboard management controller, and improving the stability of the operation of the baseboard management controller.

[0057] In the embodiment of the present invention, the kernel protocol stack 13 is further used to receive a data request sent by the client, and send the data request to the server 11 through the socket interface.

[0058] The device on which the user remotely controls the server is provided with a KVM client. The user uses the KVM client to send a data request through the network. After the kernel protocol stack 13 of the baseboard management controller 10 of the server receives the data request from the network, it parses the received data request, identifies the operation to be performed and the related parameters, and uses the socket interface to pass the parsed command to the KVM server 11 of the application layer. In this process, the kernel protocol stack 13 of the baseboard management controller 10 and the KVM server 11 work together to ensure that the remote management command can be correctly received, parsed and executed. This layered design makes network communication and data processing more modular and efficient.

[0059] In the embodiment of the present invention, the network card driver 14 is used to copy the target data to the hardware buffer of the network card according to the buffer address, and send the target data to the client through the hardware buffer.

[0060] The network card driver 14 copies the target data in the socket buffer address to the hardware buffer of the network card according to the socket buffer address, that is, the target data is copied from the kernel space to the memory area accessible to the network card, that is, the network card driver 14 transfers the target data from the memory to the hardware buffer of the network card through the direct memory access (DMA) controller. The direct memory access controller allows the network card to directly access the system memory without the intervention of the CPU (central processing unit), thereby improving the efficiency of data transmission. Once the target data is transferred to the hardware buffer of the network card, the network card will send the data packet to the network. This process includes converting the data packet into a format suitable for the physical medium and sending it out through the network interface.

[0061] In this process, the kernel protocol stack 13, the network card driver 14 and the direct memory access controller work together to ensure that the data packets can be efficiently transferred from the system memory to the network card and finally sent to the network. This design reduces the burden on the CPU when sending large amounts of data and improves the performance of network communication.

[0062] In another implementation, the kernel protocol stack 13 can initiate a message sending request to the network card driver 14 through the socket interface, and pass the data packet from the socket buffer to the network card driver 14, that is, after copying the target data from the socket buffer, the copied target data is sent to the network card driver 14, and the network card driver 14 receives the target data and stores it in the hardware buffer of the network card, and copies the target data through the kernel protocol stack 13 and sends it to the network card driver 14, thereby increasing the diversity and flexibility of network communication methods.

[0063] In the embodiment of the present invention, the service driver 12 is used to obtain original image data, compress and decode the original image data, and obtain target data.

[0064] After receiving the ioctl command from the server 11, the service driver 12 first captures the original image data from the image source (such as a camera or other image acquisition device). The original image data is the interface of the server's operating system, or the interface of the server display screen. Then the captured image data is sent to the JPEG compression algorithm for processing to reduce the size of the data. JPEG compression is a lossy compression method that achieves compression by removing visual redundant information in the image. Since the compressed JPEG data is in an encoded format, it cannot be directly used for display or further processing. Therefore, decoding is required. Decoding is the process of converting the compressed JPEG data back to the original image data, so that the data can be displayed or used for other processing. After the service driver 12 completes the capture, compression and decoding of the image data, the processed data is the target data, and then the target data is stored in a certain location in the memory, and the storage address and length information of the target data are returned to the server 11. The capture, compression and decoding of image data by the service driver 12 improves the performance, efficiency and user experience of the system, while ensuring the stability of the system and the effective use of resources.

[0065] In an embodiment of the present invention, the kernel protocol stack 13 is also used to receive data information of target data sent by the server 11 through the socket interface; determine whether the data information includes the target data or the location information of the target data; if the data information includes the target data, copy the target data to obtain the copied target data, and send a data sending request to the network card driver 14, the data sending request includes the copied target data, so that the network card driver 14 copies the copied target data to the hardware buffer of the network card, and sends the target data to the client through the hardware buffer; if the data information includes the location information of the target data, update the address of the socket buffer to the address of the target data according to the location information of the target data, and send a data sending request to the network card driver 14, the data sending request includes the address of the socket buffer, so that the network card driver 14 copies the target data to the hardware buffer of the network card according to the address of the socket buffer, and sends the target data to the client through the hardware buffer.

[0066] After the kernel protocol stack 13 receives the data information sent by the server 11 through the socket interface, it determines whether the data is transmitted or the address where the data is stored according to the socket field. For example, after the kernel protocol stack 13 receives the socket data, it can determine whether the data is transmitted or the address where the data is stored by parsing the protocol field, auxiliary data, data format and application protocol of the data packet, and relying on the kernel processing logic. For example, different network protocols may have different data transmission methods. For example, the TCP protocol usually transmits data directly, while some proprietary protocols or custom protocols may transmit the address where the data is stored.

[0067] If it is determined that the data to be transmitted is the data itself, the kernel protocol stack 13 can copy the data and then send a data sending request to the network card driver 14. The data sending request includes the copied target data, so that the network card driver 14 copies the copied target data to the hardware buffer of the network card, and sends the target data to the client through the hardware buffer.

[0068] If it is determined that the transmission is the storage address of the data, then the kernel protocol stack 13 can update the address of the socket buffer to the storage address of the target data according to the storage address of the target data, and send a data sending request to the network card driver 14. The data sending request includes the address of the socket buffer, so that the network card driver 14 copies the target data to the hardware buffer of the network card according to the address of the socket buffer, and sends the target data to the client through the hardware buffer.

[0069] By using the kernel's socket field to determine whether the data being transmitted is the data itself or the data storage address, and converting the data address, the corresponding data transmission process can be performed in different situations, increasing the flexibility of the communication method and the efficiency of data transmission.

[0070] Reference Figure 2 , shows a remote management method of a server according to an embodiment of the present invention, which is applied to the above-mentioned server and may specifically include the following steps:

[0071] Step 101: Send a data request to the service driver through the service end, receive location information of target data corresponding to the data request sent by the service driver, and send the location information of the target data to the kernel protocol stack.

[0072] Step 102 , obtaining target data according to the data request through the service driver, storing the target data in the memory of the baseboard management controller, obtaining location information of the target data, and sending the location information of the target data to the server.

[0073] Step 103: updating the buffer address to the address of the target data according to the location information of the target data through the kernel protocol stack, and sending the buffer address to the network card driver.

[0074] Step 104: Send target data to the client according to the buffer address through the network card driver.

[0075] The remote management method of a server provided by an embodiment of the present invention obtains target data by a business driver, sends the location information of the target data to a server, and the server sends the location information of the target data to a kernel protocol stack, and the kernel protocol stack sends the location information of the target data to a network card driver, so that the network card driver sends the target data to a client. This avoids the inefficiency caused by multiple copies of target data for data transmission, improves the data transmission efficiency during remote management, reduces the load of a baseboard management controller, reduces the memory overhead of the baseboard management controller, and improves the stability of the operation of the baseboard management controller.

[0076] In an embodiment of the present invention, the method further includes:

[0077] Receiving the data request sent by the client through the kernel protocol stack;

[0078] The data request is sent to the server through a socket interface.

[0079] In the embodiment of the present invention, sending the target data to the client according to the buffer address through the network card driver includes:

[0080] Copying the target data to a hardware buffer of the network card according to the buffer address through the network card driver;

[0081] The target data is sent to the client through the hardware buffer.

[0082] In the embodiment of the present invention, obtaining the target data according to the data request through the service driver includes:

[0083] Acquiring original image data through the service driver;

[0084] The original image data is compressed and decoded to obtain the target data.

[0085] In an embodiment of the present invention, the method further includes:

[0086] Receiving, through the kernel protocol stack, data information of the target data sent by the server through the socket interface;

[0087] Determining whether the data information includes the target data or the location information of the target data;

[0088] If the data information includes the target data, the target data is copied to obtain the copied target data, and a data sending request is sent to the network card driver, wherein the data sending request includes the copied target data, so that the network card driver copies the copied target data to the hardware buffer of the network card again, and sends the target data to the client through the hardware buffer;

[0089] If the data information includes the location information of the target data, the address of the socket buffer is updated to the address of the target data according to the location information of the target data, and a data sending request is sent to the network card driver. The data sending request includes the address of the socket buffer, so that the network card driver copies the target data to the hardware buffer of the network card according to the address of the socket buffer, and sends the target data to the client through the hardware buffer.

[0090] The KVM server of the embodiment of the present invention only needs to transmit the address and length of the data to be sent to the kernel protocol stack, and finally the network card sends the data through direct memory access. This can improve data transmission efficiency, save user space, and reduce the switching time between user mode and kernel mode. The user mode memory occupancy will be significantly reduced, reducing the system memory overhead and improving the operating stability of the baseboard management controller.

[0091] It should be noted that, for the sake of simplicity, the method embodiments are described as a series of action combinations, but those skilled in the art should be aware that the embodiments of the present invention are not limited by the order of the actions described, because according to the embodiments of the present invention, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by the embodiments of the present invention.

[0092] Reference Figure 3 , showing a structural block diagram of an electronic device 20 provided in an embodiment of the present invention, including:

[0093] A processor 201, a memory 202, and a computer program 2021 stored in the memory 202 and capable of running on the processor 201. When the computer program 2021 is executed by the processor 201, the various processes of the above-mentioned server management method embodiment are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.

[0094] like Figure 4, shows a structural block diagram of a computer-readable storage medium 30 provided in an embodiment of the present invention. A computer program 301 is stored on the computer-readable storage medium 30. When the computer program 301 is executed by the processor, the various processes of the above-mentioned server management method embodiment are implemented and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.

[0095] In an embodiment of the present invention, a computer program product is provided, including a computer program / instruction, including: when the computer program / instruction is executed by a processor, the various processes of the remote management method embodiment of the server as described above are implemented, and the same technical effect can be achieved. To avoid repetition, it will not be repeated here.

[0096] The various embodiments in this specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referenced to each other.

[0097] It will be appreciated by those skilled in the art that the embodiments of the present invention may be provided as methods, devices, or computer program products. Therefore, the embodiments of the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the embodiments of the present invention may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.

[0098] The embodiments of the present invention are described with reference to the flowcharts and / or block diagrams of the methods, terminal devices (systems), and computer program products according to the embodiments of the present invention. It should be understood that each process and / or block in the flowchart and / or block diagram, as well as the combination of the processes and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0099] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing terminal device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.

[0100] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device so that a series of operating steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, thereby providing instructions for implementing the process in the computer or other programmable terminal device. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.

[0101] Although the preferred embodiments of the present invention have been described, those skilled in the art may make additional changes and modifications to these embodiments once they have learned the basic creative concept. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments and all changes and modifications that fall within the scope of the embodiments of the present invention.

[0102] Finally, it should be noted that, in this article, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that a process, method, article or terminal device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or terminal device. In the absence of further restrictions, the elements defined by the sentence "comprise a ..." do not exclude the existence of other identical elements in the process, method, article or terminal device including the elements.

[0103] The above is a detailed introduction to a server and a remote management method of the server, a computer program product and a medium provided by the present invention. Specific examples are used herein to illustrate the principles and implementation methods of the present invention. The description of the above embodiments is only used to help understand the method of the present invention and its core idea. At the same time, for a person skilled in the art, according to the idea of ​​the present invention, there will be changes in the specific implementation method and application scope. In summary, the content of this specification should not be understood as a limitation on the present invention.

Claims

1. A server, characterized in that: The server includes a baseboard management controller, and the baseboard management controller includes a kernel protocol stack, a service driver, a network card driver, and a server; The server is used to send a data request to the service driver, receive the location information of the target data corresponding to the data request sent by the service driver, and send the location information of the target data to the kernel protocol stack; The service driver is used to obtain target data according to the data request, store the target data in the memory of the baseboard management controller, obtain the location information of the target data, and send the location information of the target data to the server; The kernel protocol stack is used to update the buffer address to the address of the target data according to the location information of the target data, and send the buffer address to the network card driver; The network card driver is used to send target data to the client according to the buffer address.

2. The server according to claim 1, characterized in that: The kernel protocol stack is also used to receive the data request sent by the client, and send the data request to the server through a socket interface.

3. The server according to claim 1, characterized in that: The network card driver is used to copy the target data to the hardware buffer of the network card according to the buffer address, and send the target data to the client through the hardware buffer.

4. The server according to claim 1, characterized in that: The service driver is used to obtain original image data, compress and decode the original image data, and obtain the target data.

5. The server according to claim 1, characterized in that: The kernel protocol stack is also used to receive data information of the target data sent by the server through the socket interface; determine whether the data information includes the target data or the location information of the target data; if the data information includes the target data, copy the target data to obtain the copied target data, and send a data sending request to the network card driver, the data sending request includes the copied target data, so that the network card driver copies the copied target data to the hardware buffer of the network card again, and sends the target data to the client through the hardware buffer; if the data information includes the location information of the target data, update the address of the socket buffer to the address of the target data according to the location information of the target data, and send a data sending request to the network card driver, the data sending request includes the address of the socket buffer, so that the network card driver copies the target data to the hardware buffer of the network card according to the address of the socket buffer, and sends the target data to the client through the hardware buffer.

6. A remote management method for a server, characterized in that: Applied to the server according to any one of claims 1 to 5, the method comprises: Sending a data request to the service driver through the service end, receiving location information of target data corresponding to the data request sent by the service driver, and sending the location information of the target data to the kernel protocol stack; Acquire target data according to the data request through the service driver, store the target data in the memory of the baseboard management controller, obtain location information of the target data, and send the location information of the target data to the server; updating the buffer address to the address of the target data according to the location information of the target data through the kernel protocol stack, and sending the buffer address to the network card driver; The target data is sent to the client through the network card driver according to the buffer address.

7. The method according to claim 6, characterized in that The method further comprises: Receiving the data request sent by the client through the kernel protocol stack; The data request is sent to the server through a socket interface.

8. The method according to claim 6, characterized in that The sending of target data to the client according to the buffer address by the network card driver includes: Copying the target data to a hardware buffer of the network card according to the buffer address through the network card driver; The target data is sent to the client through the hardware buffer.

9. The method according to claim 6, characterized in that The acquiring target data according to the data request through the service driver includes: Acquiring original image data through the service driver; The original image data is compressed and decoded to obtain the target data.

10. The method according to claim 6, characterized in that The method further comprises: Receiving, through the kernel protocol stack, data information of the target data sent by the server through the socket interface; Determining whether the data information includes the target data or the location information of the target data; If the data information includes the target data, the target data is copied to obtain the copied target data, and a data sending request is sent to the network card driver, wherein the data sending request includes the copied target data, so that the network card driver copies the copied target data to the hardware buffer of the network card again, and sends the target data to the client through the hardware buffer; If the data information includes the location information of the target data, the address of the socket buffer is updated to the address of the target data according to the location information of the target data, and a data sending request is sent to the network card driver. The data sending request includes the address of the socket buffer, so that the network card driver copies the target data to the hardware buffer of the network card according to the address of the socket buffer, and sends the target data to the client through the hardware buffer.

11. A computer program product comprising a computer program / instructions, characterized in that include: When the computer program / instructions are executed by a processor, the steps of the remote management method of a server as described in any one of claims 6 to 10 are implemented.

12. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the remote management method of the server as claimed in any one of claims 6 to 10 are implemented.