Server business data management system and method and server

By introducing the input/output survival time mechanism and buffer control engine, the problem of upper-layer business interruption caused by the failure of all paths of the multipath software during storage silence is solved, and business uninterrupted and data integrity guaranteed during storage silence are achieved.

CN120670210AActive Publication Date: 2025-09-19INSPUR SUZHOU INTELLIGENT TECH CO LTD

Patent Information

Application Number
CN202511178361.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-08-21
Publication Date
2025-09-19
Estimated Expiration
2045-08-21

AI Technical Summary

Technical Problem

When storage input/output silence occurs, all paths in the multipathing software fail, causing upper-layer service interruption.

Method used

An input/output survival time mechanism and a buffer control engine are introduced to record the actual processing time of data processing requests. When the survival time threshold is exceeded, a buffer instruction is sent to the cache control engine to temporarily store the data in the storage hardware and write the data to the storage component after the storage component returns to normal.

Benefits of technology

During storage input/output quiescence, business interruptions caused by failure of all paths are avoided, improving user experience and ensuring business continuity and data integrity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120670210A_ABST
    Figure CN120670210A_ABST
Patent Text Reader

Abstract

The invention discloses a server business data management system and method and a server, and relates to the technical field of computer storage. The system comprises a storage component for storing service data and a management component for managing a plurality of access paths, and a service host comprises storage hardware, a kernel driving engine and a buffer control engine. The kernel driving engine sends a data request generated according to an upper layer service to the management component to select an access path, and records a processing duration; and when the processing duration exceeds the survival time threshold, judging that the request fails, sending a buffer instruction to the buffer control engine, and feeding back request completion information to the upper layer. And the buffer control engine temporarily stores the data to the storage hardware and then writes the data after the storage component is recovered, so that the technical problem of upper-layer service interruption caused by failure of all paths of the multi-path software when input / output silence occurs in storage in the related technology is solved, and the technical effect of ensuring that the service is not interrupted when the input / output silence occurs in the storage is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer storage technology, and in particular to a server business data management system, method and server. Background Art

[0002] Compared to standard storage, commercial storage offers advantages such as massive data management, high security, and business continuity. Multipathing software deployed on service hosts aggregates multiple physical paths to the same storage volume into a single multipath device, enabling automatic path selection and failover in seconds, ensuring seamless business operations. In actual business operations, data read and write between hosts and storage is accomplished through input / output requests. The multipathing software selects the optimal path for these requests and handles failover.

[0003] Basic input / output processing flow is as follows Figure 1 As shown in the figure, after receiving a multipath I / O request, the multipath routing interface is invoked to select the optimal path, which is then sent to the storage system via the host bus adapter driver. Success is counted; failures are retried or rerouted based on the error message, and the request is sent again through the new path until completion. However, if internal I / O inactivity occurs in the storage (such as a storage controller reboot or heartbeat interruption), the I / O request will fail regardless of which link the multipathing software selects. This causes the multipathing software to determine that no path is available, ultimately disrupting upper-layer services. Summary of the Invention

[0004] The present application provides a server business data management system, method and server to at least solve the problem in the related art that when input / output silence occurs in storage, all paths of multi-path software fail, resulting in upper-layer business interruption.

[0005] The present application provides a server business data management system, comprising: a storage component, the storage component being used to store business data; a management component being used to manage multiple access paths of the storage component; a business host, the business host comprising storage hardware, a kernel driver engine and a buffer control engine, wherein the kernel driver engine generates at least one data processing request based on an upper-layer business requested by a user, and sends the data processing request to the management component, the management component responds to the data processing request, and selects a target access path of the storage component for the business host; the kernel driver engine records the actual processing time of the data processing request, and if the actual processing time is greater than or equal to a survival time threshold, determines that the data processing request has failed, sends a buffer instruction to the cache control engine, and feeds back completion information of the data processing request to the upper layer; the buffer control engine responds to the buffer instruction, stores the data corresponding to the data processing request in the storage hardware, and writes the data of the storage hardware into the storage component after the storage component returns to normal.

[0006] The present application also provides a server, including the above-mentioned server business data management system.

[0007] The present application also provides a server business data management method, which is applied to the business host of the above-mentioned server business data management system, wherein the business host is configured to perform the following steps: executing a kernel driver engine, the kernel driver engine generates at least one data processing request based on the upper-layer business requested by the user, and sends the data processing request to the management component, the management component responds to the data processing request, and selects a target access path of the storage component for the business host; executing the kernel driver engine, the kernel driver engine records the actual processing time of the data processing request, if the actual processing time is greater than or equal to the survival time threshold, it is determined that the data processing request has failed, and a buffer instruction is sent to the cache control engine, and the completion information of processing the data processing request is fed back to the upper layer; executing the buffer control engine, the buffer control engine responds to the buffer instruction, stores the data corresponding to the data processing request to the storage hardware, and writes the data of the storage hardware to the storage component after the storage component returns to normal.

[0008] The present application also provides a non-volatile computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the steps of the above-mentioned server business data management method are implemented.

[0009] The present application also provides a computer program product, including a computer program, which implements the steps of the above-mentioned server business data management method when executed by a processor.

[0010] Through this application, due to the introduction of the input / output survival time mechanism and the buffer control engine, when all paths fail, a buffer instruction is sent to the cache control engine, the data corresponding to the data processing request is stored in the storage hardware, and after the storage component returns to normal, the data of the storage hardware is written to the storage component, and the completion information of the data processing request is fed back to the upper layer, so that the timed-out output / output request can be repeatedly retried and temporarily stored during the storage output / output silence period, avoiding business interruption caused by the failure of all paths and improving the user experience. Therefore, it can solve the problem of upper-layer business interruption caused by the failure of all paths of multi-path software when input / output silence occurs in related technical storage, and achieve the technical effect of ensuring uninterrupted business during storage input / output silence. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] In order to more clearly illustrate the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0012] Figure 1 Multipath software input / output processing flow chart provided for related technologies; Figure 2 A schematic diagram of the structure of a server business data management system provided in an embodiment of the present application; Figure 3 A schematic diagram of the persistent memory space structure provided in an embodiment of the present application; Figure 4 Flowchart of the server business data management method provided in the embodiment of the present application. DETAILED DESCRIPTION

[0013] The following will be combined with the accompanying drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0014] It should be noted that, in the description of this application, the terms "comprises," "includes," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. The terms "first," "second," etc., in this application are used to distinguish similar objects, and are not used to describe a particular order or sequence.

[0015] In order to enable those skilled in the art to better understand the present application, the present application is further described in detail below with reference to the accompanying drawings and specific implementation methods.

[0016] Figure 2 A schematic diagram of the structure of the server business data management system provided by an embodiment of the present invention, such as Figure 2 As shown, the server business data management system 10 specifically includes: a storage component 100 , a management component 200 and a business host 300 .

[0017] Among them, the storage component 100 is used to store business data; the management component 200 is used to manage multiple access paths of the storage component 100; the business host 300 includes storage hardware 301, a kernel driver engine 302 and a buffer control engine 303, wherein the kernel driver engine 302 generates at least one data processing request based on the upper-layer business requested by the user, and sends the data processing request to the management component 200, and the management component 200 responds to the data processing request and selects the target access path of the storage component 100 for the business host 300; the kernel driver engine 302 records the actual processing time of the data processing request. If the actual processing time is greater than or equal to the survival time threshold, it is determined that the data processing request has failed, and a buffer instruction is sent to the cache control engine, and the completion information of processing the data processing request is fed back to the upper layer; the buffer control engine 303 responds to the buffer instruction, stores the data corresponding to the data processing request in the storage hardware 301, and writes the data of the storage hardware 301 to the storage component 100 after the storage component 100 returns to normal.

[0018] The storage component 100 is the hardware or software system used to store business data and is responsible for actually storing and managing the data. The management component 200 manages multiple access paths to the storage component 100, implementing path selection and scheduling to ensure efficient and reliable access to data requests. The service host 300 is the server that runs business applications and includes components such as storage hardware 301, a kernel driver engine 302, and a buffer control engine 303. Storage hardware 301 is a physical storage device within the service host 300 that temporarily caches data, such as persistent memory. The kernel driver engine 302 receives data processing requests generated by upper-layer services, invokes the management component 200 to select a path to execute the request, records the actual processing time of the request, and determines whether the request has timed out or failed. The buffer control engine 303 receives buffering instructions from the kernel driver engine 302 and stores data that was not successfully written to the storage component 100 in the storage hardware 301. It then writes the data back to the storage component 100 after the storage component 100 recovers. The survival threshold is the preset maximum allowable data processing time; if this time is exceeded, the data request is considered to have failed. The target access path is the optimal physical or logical path for accessing the storage component 100 selected by the management component 200 based on the path status and performance. The buffer instruction is an instruction issued by the kernel driver engine 302 to notify the buffer control engine 303 to perform data caching operations.

[0019] It should be noted that the data processing request in the embodiment of the present application may be an input / output request.

[0020] It is understood that when the storage component 100 experiences an anomaly or input / output response is delayed, a survival threshold is introduced to determine whether a request has timed out, and the timed-out request data is temporarily cached in the storage hardware 301 of the service host 300, thereby avoiding service interruptions caused by storage access failures. After the storage component 100 returns to normal, the buffer control engine 303 writes back the cached data to ensure data integrity and consistency, thereby ensuring that upper-layer services can continue to operate stably. Writeback is the operation of writing data temporarily stored in the cache or memory to the back-end storage device.

[0021] In an embodiment of the present application, the management component 200 includes a routing interface, a completion interface, and a retry interface, wherein the management component 200 calls the routing interface to select an access path, and the management component 200 calls the completion interface to determine the processing result of the data processing request. If the current access path cannot process the data processing request, the retry interface is called to reselect an access path carrying an unused label.

[0022] Among them, the routing interface is the interface called by the management component 200, which selects the optimal access path according to a certain algorithm to process the data request. The completion interface is the interface called by the management component 200, which is used to confirm the processing result of the data processing request and determine whether the request is successful. When the current access path cannot successfully process the data request, the management component 200 calls the retry interface to reselect an unused access path to ensure that the request can be processed. The access path is the data transmission path connecting the business host 300 and the storage component 100, and there may be multiple paths to achieve redundancy and load balancing. The unused label is used to mark whether the access path has been tried, ensuring that the retry interface gives priority to the path that has not been tried, thereby improving the retry efficiency and success rate.

[0023] It can be understood that by managing the routing, completion and retry interfaces of component 200, the embodiment of the present application implements dynamic management and fault-tolerant processing of storage access paths, ensuring that when a path is unavailable, it can be switched to an unused backup path in a timely manner, thereby improving the success rate of data requests and the reliability of the system.

[0024] The embodiment of the present application adds an input / output survival time parameter to the multipath kernel module. When the processing time of an input / output does not exceed the preset survival time, the multipath input / output module will continue to attempt to write the input / output to the storage. Even if all paths to the volume are unavailable during the storage input / output silence period, the multipath will not immediately return an input / output failure to the multipath input / output framework. Among them, the volume is a logical storage unit provided by the storage component 100 to the service host 300, connected to the host through multiple access paths, and managed by the multipath software to ensure access reliability.

[0025] Specifically, the upper-layer business sends an input / output request to the multipath device. The multipath input / output framework calls the path selection interface of the multipath software to select the optimal path to process the input / output, and then calls the input / output completion interface of the multipath software. The multipath kernel driver determines whether the input / output is successful.

[0026] If I / O processing fails, the multipath kernel driver notifies the multipath I / O framework to retry. The multipath I / O framework calls the I / O retry interface of the multipath software. The multipath kernel driver marks the last used path as "used," traverses all unused paths to the volume, and selects the next optimal path based on the path selection algorithm to reprocess the I / O.

[0027] In an embodiment of the present application, the kernel driver engine 302 records the time when the data processing request starts processing as the first time, and the time when the last access path cannot process the data processing request as the second time, and calculates the actual processing time based on the first time and the second time.

[0028] It is understandable that by recording the start and end times to calculate the actual processing time, determine whether the data request exceeds the survival time threshold, and thus decide whether to retry or trigger buffering, the upper-layer business continuity and request success rate can be guaranteed.

[0029] Specifically, the multipath kernel module obtains the current kernel time since the system boots as the first moment, records the time in the input / output object, and selects an optimal path to process the input / output request according to the current path selection algorithm.

[0030] During processing, if all paths to the volume have been tried and the request still cannot be processed, the current kernel time since system startup is obtained as the second moment, and the time difference between the first and second moments is calculated. This time difference is the actual processing time.

[0031] In an embodiment of the present application, after the last access path of the kernel driver engine 302 fails to process the data processing request, if the actual processing time is less than the survival time threshold, the used label of the access path is cleared and a reselection instruction is sent to the management component 200. The management component 200 responds to the reselection instruction and reselects the access path.

[0032] The survival time threshold is the preset maximum allowed data request processing time. If it exceeds the time, the request is considered to have failed.

[0033] It is understandable that even if all access paths are temporarily unavailable, as long as the actual processing time of the data processing request does not exceed the survival time threshold, the system can still continue to process the request by clearing the path label and reselecting an available path, thereby avoiding upper-layer business interruption and improving the reliability and continuity of data requests.

[0034] During I / O processing, the multipath kernel driver continues to follow the "determine whether the I / O is successful—retry if it fails" process. Specifically, the multipath I / O framework calls the multipath software's I / O completion interface to determine success. If it fails, it calls the I / O retry interface to select a new, unused path to continue I / O processing. If all paths to the volume have been tried but the I / O is still unsuccessful, and the actual processing time is less than the preset I / O survival time threshold, the "used" flags for all paths are cleared. Management component 200 then reselects the optimal path based on the path selection algorithm, continuing the retry process until the I / O succeeds or times out.

[0035] In an embodiment of the present application, the business host 300 is mounted with multiple volumes, and multiple namespaces are allocated in the persistent memory space of the storage hardware 301. The namespaces are associated with the volumes, and the corresponding data of the data processing requests that fail to be processed on the volumes are cached in the namespaces.

[0036] The persistent memory space is a memory area within the storage hardware 301 used to store data long-term, retaining data even during power outages or system failures. A namespace is a separate storage area in the persistent memory allocated for each volume, used to cache data corresponding to failed data requests on the volume.

[0037] In the embodiment of the present application, caching means that when a data processing request is not successfully processed on a volume, the corresponding data is temporarily stored in the namespace to ensure that the data is not lost and can be rewritten to the volume later.

[0038] As can be understood, by allocating a separate namespace for each volume in the persistent memory of storage hardware 301, isolated caching of failed data is achieved. Even if storage component 100 experiences input / output silence or a path is temporarily unavailable, service host 300 can still securely store unfinished data in the namespace, avoiding data loss or data reordering. Furthermore, because namespaces correspond one-to-one with volumes, cache management is more refined, enabling fast and accurate data writeback after storage recovery, thereby ensuring business continuity and data consistency.

[0039] In order to ensure that the cached input / output data is not lost, persistent memory is used in the embodiment of the present application. When the business host 300 mounts the volume, the multipath kernel driver will allocate an independent namespace for each volume in the persistent memory, and associate the namespace with the volume one by one. These namespaces correspond to specific address spaces on the persistent memory, which are used to cache input / output data that has temporarily failed to be successfully processed on the volume. Whenever an input / output fails to be processed on a volume, the data will be written to the namespace of the corresponding volume for persistent storage, ensuring that the data will not be lost during a temporary unavailability of the storage component 100 or a path anomaly. In addition, since each volume corresponds to an independent namespace, the cache management and write-back can be accurate to the volume level. After the storage returns to normal, the cached data can be efficiently written back to the storage device in the original order, thereby ensuring business continuity and data consistency.

[0040] In the embodiment of the present application, the storage hardware 301 is allocated a public address space, which is used to store metadata of data corresponding to the data processing request.

[0041] Among them, metadata is information that describes the data attributes in the data processing request, including the volume where the data is located, logical address, size, check code, sequence number, etc., which is used to manage and write back cached data.

[0042] It is understandable that centralized management of cache metadata for all volumes facilitates rapid data location and write-back, ensuring data sequentiality.

[0043] To efficiently manage the input / output cache data of different volumes, the present embodiment also allocates a common address space in persistent memory to store input / output metadata information for all volumes. Each metadata entry records the data location, length, checksum information, and global sequence number of the corresponding input / output, which is used to accurately locate and verify data integrity during writeback or recovery. This metadata is managed using a linked list structure, allowing scanning and writeback operations to process each input / output entry in the order originally submitted. Figure 3This diagram illustrates the address space layout for caching input / output data in persistent memory, according to an embodiment of the present application. The entire address space is divided into multiple contiguous blocks. The leftmost block is the "I / O (Input / Output) Metadata Address Space," which stores metadata information corresponding to each I / O operation, including the data's location, checksum, and volume-related identifiers. This is followed by several namespace blocks, labeled name_space_1, name_space_2, and so on. Each namespace is associated with a specific storage volume and stores the actual cached contents of unsuccessfully processed I / O data on that volume. This structure allows the system to establish a one-to-one correspondence between volumes and cache spaces, accurately mapping each volume's unprocessed I / O data to a specific namespace. Furthermore, the I / O metadata address space tracks and manages this cached data, enabling orderly data storage and efficient access. By combining the volume-specific namespaces with a common metadata linked list, this embodiment of the present application forms a data structure across the entire persistent memory space that supports independent volume caching while facilitating unified management.

[0044] The metadata information of input / output data is organized as follows: struct buffer_meta{ uint volume_id; ulong lba; void* data; size_t size; ulong crc; ulong seq_id; struct buffer_meta list; } Among them, volume_id represents the ID (Identifier) ​​of the volume to which the input / output needs to be written, lba represents the original logical block address of the input / output, data represents the data content corresponding to the input / output, size represents the length of the data corresponding to the input / output, CRC (Cyclic Redundancy Check) represents the checksum of the input / output data, seq_id represents the global sequence number of the input / output (because some input / output writes must ensure the order), and list represents the pointer to the input / output metadata, pointing to the next input / output metadata object.

[0045] In an embodiment of the present application, the persistent memory space stores metadata through a data linked list, wherein the structure of the data linked list includes multiple fill bits, the first fill bit fills the address space of the metadata, and the fill bits after the first fill bit fill the namespace.

[0046] A data linked list is a structure for organizing metadata. Each metadata object contains a pointer to the next metadata object, enabling sequential traversal and management. Padding is a field in a data linked list used to store specific information.

[0047] It can be understood that by using a data linked list to store metadata in persistent memory space, the cached data corresponding to each data processing request can be managed in an orderly manner and quickly located, ensuring that the cached data will not be lost when a system exception occurs or volume processing fails; storing the metadata address space and namespace information separately can clearly distinguish the mapping relationship between the data storage location and the volume to which it belongs.

[0048] In this embodiment of the present application, persistent memory is used to cache metadata information for input / output data. This metadata is organized and managed using a linked list structure. Specifically, each data linked list consists of multiple fields, the first of which stores the address of the metadata object in persistent memory, and subsequent fields record the namespace information associated with the storage volume corresponding to the metadata. This organizational approach ensures orderly storage and fast access to cached data.

[0049] In this embodiment of the present application, the buffer control engine 303 starts a scanning thread, which traverses the metadata address space at preset intervals and writes the metadata back to the storage device. The scanning thread is a worker thread in the buffer control engine 303 that periodically checks and processes cached data and performs scanning operations at preset intervals.

[0050] It is understood that by adding a buffer control engine 303 module to the multipath kernel driver, unsuccessfully processed I / O is temporarily stored. When storage I / O becomes available again, the buffer control engine 303 sequentially writes the cached I / O back to the storage device. After writing the failed I / O to the buffer module's cache, the multipath kernel immediately reports the completion of the I / O processing to upper layers, preventing upper-layer applications from being aware of the I / O failure and thus improving host service continuity.

[0051] In an embodiment of the present application, the buffer control engine 303 is specifically used to: scan the data linked list through the thread, sort the metadata from small to large according to the label in the metadata, so that the metadata is arranged in the order issued by the upper-layer application; for each metadata object, obtain the metadata address in the corresponding namespace; read the metadata and reference check code from the storage component 100 according to the metadata address, compare the check code stored in the metadata object with the reference check code, and if they are inconsistent, rewrite the metadata, and for each metadata, select the target access path according to the management component 200 to write the metadata to the storage component 100; if they are consistent, after the metadata is successfully written to the storage component 100, release the metadata and the corresponding memory space in the namespace.

[0052] It can be understood that by sorting the metadata by label, the order of data written back to the storage component 100 is strictly consistent with the order of data issuance by the upper-level application, thereby effectively maintaining the consistency and correctness of the business data; using the check code for comparison, potential data anomalies or damage can be discovered and corrected in time before the data is written back, ensuring the integrity and reliability of the data; the system only performs write-back operations on data with inconsistent checks, avoiding unnecessary write overhead, thereby significantly improving storage write efficiency; after the data is successfully written, the corresponding metadata and occupied memory space are released in time to achieve efficient memory management and resource recovery; in addition, the management component 200 intelligently selects the optimal access path for data writing, which not only improves the stability and fault tolerance of the write-back operation, but also effectively balances the load in a multi-path environment.

[0053] In an embodiment of the present application, a scanning thread is enabled in the buffer control engine 303. The thread traverses the input / output metadata address space at a preset time interval and attempts to write the input / output data in the persistent cache back to the storage device. The specific process is as follows: the scanning thread first traverses the input / output metadata linked list and sorts the input / output data from small to large according to the label of each input / output metadata, so that the input / output is arranged in the order issued by the upper-layer application; then, for each input / output metadata object, the address of the input / output in the corresponding namespace is obtained according to the volume_id and data attributes, and the data is read from the storage device to calculate the reference check code; the calculated reference check code is then compared with the check code stored in the input / output metadata. If they are consistent, the input / output is directly written to the storage device successfully; if they are inconsistent, it means that the data has changed and needs to be rewritten. The buffer control engine 303 selects the optimal path according to the volume path selection algorithm and submits the input / output to the multi-path input / output framework to write it to the storage device; after the input / output is successfully written to the storage device, the buffer control engine 303 releases the corresponding metadata and input / output data space in the namespace.

[0054] In summary, the embodiments of the present application can optimize the input / output retry mechanism to continuously attempt to write to the storage before the input / output reaches the survival time; implement the input / output caching function in the buffer control engine 303 to write the input / output that has not been successfully processed to the persistent memory to prevent the storage input / output silence time from being too long, resulting in the failure of the upper-layer business input / output; at the same time, implement the input / output write-back function in the buffer control engine 303, and when the storage input / output is restored, the input / output data in the persistent memory is rewritten to the storage device to ensure data integrity and business continuity.

[0055] In the server business data management system of the embodiment of the present application, the storage component is used to store business data; the management component is used to manage multiple access paths of the storage component; the business host includes storage hardware, a kernel driver engine and a buffer control engine. The kernel driver engine generates a data processing request based on the user request and sends it to the management component, which selects the target access path of the storage component. The kernel driver engine records the actual processing time of the request. If it exceeds the survival time threshold, it determines that the processing has failed, and sends a buffer instruction to the buffer control engine, while feeding back completion information to the upper layer. The buffer control engine stores the requested data to the storage hardware according to the instruction, and writes it back to the storage component after the storage component is restored. The technical problem that the upper-layer business is interrupted due to the failure of all paths of the multi-path software when the input / output is silent in the related technology is solved, and the technical effect of ensuring uninterrupted business when the storage input / output is silent is achieved.

[0056] An embodiment of the present application also provides a server, including the above-mentioned server business data management system.

[0057] The embodiment of the present application provides a server business data management method, such as Figure 4 As shown, the method is applied to the service host of the above-mentioned server service data management system, and the service host is configured to perform the following steps: In step S101, the kernel driver engine is executed. The kernel driver engine generates at least one data processing request based on the upper-layer business requested by the user, and sends the data processing request to the management component. The management component responds to the data processing request and selects a target access path of the storage component for the business host.

[0058] It can be understood that the data processing requests generated by the upper-level business are sent to the management component through the kernel driver engine, thereby achieving effective connection between business requests and storage access; the management component selects the optimal access path according to the strategy, thereby improving the efficiency and reliability of data transmission.

[0059] In step S102, the kernel driver engine is executed, and the kernel driver engine records the actual processing time of the data processing request. If the actual processing time is greater than or equal to the survival time threshold, it is determined that the data processing request has failed, and a buffer instruction is sent to the cache control engine, and the completion information of the data processing request is fed back to the upper layer.

[0060] It is understandable that by recording the actual processing time of data processing requests, it is possible to promptly determine whether the request has timed out or failed to be processed, ensuring that the system responds quickly to abnormal situations; when the request processing fails, the data is sent to the buffer control engine for caching to avoid data loss, and at the same time, completion information is fed back to the upper layer so that the upper-layer business can perceive the processing results.

[0061] In step S103, the buffer control engine is executed. The buffer control engine responds to the buffer instruction and stores the data corresponding to the data processing request in the storage hardware. After the storage component returns to normal, the data of the storage hardware is written into the storage component.

[0062] It can be understood that by temporarily storing the failed data in the storage hardware, the buffer control engine can ensure that the data is not lost during the storage component abnormality; after the storage component is restored, the data is written back to achieve reliable data persistence; at the same time, the upper-level business is unaware of the storage abnormality, which improves the continuity and stability of the system.

[0063] According to the server business data management method proposed in the embodiment of the present application, when the kernel driver engine is executed, the kernel driver engine generates a data processing request based on the user request and sends it to the management component, which selects the target access path of the storage component; the kernel driver engine records the actual processing time of the request. If it exceeds the survival time threshold, it determines that the processing has failed, sends a buffer instruction to the buffer control engine, and feeds back completion information to the upper layer; when the buffer control engine is executed, it stores the data to the storage hardware and writes it back to the storage component after the storage component recovers. This solves the technical problem of the related technology that all paths of the multipath software fail when input / output is silent, causing upper-layer business interruption, and achieves the technical effect of ensuring uninterrupted business when storage input / output is silent.

[0064] The present application also provides a non-volatile computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the steps of the above-mentioned server business data management method are implemented.

[0065] The present application also provides a computer program product, including a computer program, which implements the steps of the above-mentioned server business data management method when executed by a processor.

[0066] Through the description of the above implementation methods, those skilled in the art can clearly understand that the method according to the above embodiment can be implemented by means of software plus the necessary general hardware platform, and of course it can also be implemented by hardware, but in many cases the former is a better implementation method.

[0067] Professionals may further appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two. In order to clearly illustrate the interchangeability of hardware and software, the above description has generally described the components and steps of each example according to their functions. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professionals and technicians may use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0068] The above is a detailed introduction to a server business data management system provided by the present application. This article uses specific examples to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only applicable to help understand the method and core ideas of the present application. It should be pointed out that for ordinary technicians in this technical field, without departing from the principles of the present application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the scope of protection of the claims of the present application.

Claims

1. A server business data management system, characterized in that: include: A storage component, wherein the storage component is used to store business data; A management component, configured to manage multiple access paths of the storage component; A service host, comprising storage hardware, a kernel driver engine, and a buffer control engine, wherein: The kernel driver engine generates at least one data processing request according to the upper layer service requested by the user, and sends the data processing request to the management component. The management component responds to the data processing request and selects a target access path of the storage component for the service host. The kernel driver engine records the actual processing time of the data processing request. If the actual processing time is greater than or equal to the survival time threshold, it is determined that the data processing request has failed, a buffer instruction is sent to the cache control engine, and completion information of the data processing request is fed back to the upper layer; The buffer control engine responds to the buffer instruction, stores the data corresponding to the data processing request in the storage hardware, and writes the data of the storage hardware into the storage component after the storage component returns to normal.

2. The server business data management system according to claim 1, characterized in that: The management component includes a routing interface, a completion interface and a retry interface, wherein the management component calls the routing interface to select an access path, and the management component calls the completion interface to determine the processing result of the data processing request. If the current access path cannot process the data processing request, the retry interface is called to reselect an access path carrying an unused label.

3. The server business data management system according to claim 2, characterized in that: After the last access path of the kernel driver engine fails to process the data processing request, if the actual processing time is less than the survival time threshold, the used label of the access path is cleared, and a reselection instruction is sent to the management component. The management component responds to the reselection instruction and reselects the access path.

4. The server business data management system according to any one of claims 1 to 3, characterized in that: The kernel driver engine records the time when the data processing request starts to be processed as a first time, and the time when the last access path cannot process the data processing request as a second time, and calculates the actual processing time according to the first time and the second time.

5. The server business data management system according to claim 1, characterized in that: The business host is mounted with multiple volumes, and multiple namespaces are allocated in the persistent memory space of the storage hardware. The namespaces are associated with the volumes, and data corresponding to data processing requests that fail to be processed on the volumes are cached in the namespaces.

6. The server business data management system according to claim 5, characterized in that: The storage hardware is allocated a public address space, and the public address space is used to store metadata of the data corresponding to the data processing request.

7. The server business data management system according to claim 6, characterized in that: The persistent memory space stores the metadata through a data linked list, wherein the structure of the data linked list includes multiple fill bits, a first fill bit of the multiple fill bits fills the address space of the metadata, and the fill bits after the first fill bit fill the namespace.

8. The server business data management system according to claim 7, characterized in that: The buffer control engine starts a scanning thread, and the scanning thread traverses the metadata address space at preset intervals and writes the metadata back to the storage device.

9. A server, characterized in that: A server business data management system comprising the server business data management system according to any one of claims 1 to 8.

10. A server business data management method, characterized in that: The method is applied to a service host of the server service data management system according to any one of claims 1 to 8, wherein the service host is configured to perform the following steps: executing a kernel driver engine, wherein the kernel driver engine sends at least one data processing request generated by an upper-layer service requested by a user to the management component, and the management component selects a target access path of the storage component for the service host in response to the data processing request; executing a kernel driver engine, wherein the kernel driver engine records an actual processing time of the data processing request, and if the actual processing time is greater than or equal to a survival time threshold, determining that the data processing request has failed, sending a buffer instruction to the cache control engine, and feeding back completion information of the data processing request to an upper layer; A buffer control engine is executed, and the buffer control engine responds to the buffer instruction, stores the data corresponding to the data processing request in the storage hardware, and writes the data of the storage hardware into the storage component after the storage component returns to normal.

Citation Information

Patent Citations

  • Path fault isolation processing method and device for multi-path software

    CN117221090A

  • Data storage method, system and equipment and medium

    CN119806408A

  • Host device with multi-path layer providing dynamic control of one or more path selection algorithms

    US20210109658A1

Cited By

  • Management method of storage system and electronic equipment

    CN120872873A