A method, device, equipment and medium for optimizing performance of a distributed storage system

CN116048411BActive Publication Date: 2026-09-29JINAN INSPUR DATA TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202310073608.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-01-30
Publication Date
2026-09-29
Estimated Expiration
2043-01-30

AI Technical Summary

Technical Problem

如图2所示,iSCSI客户端连接服务器A,在一段时间内,其可能高频次访问位于服务器B上的对象数据2,那么服务器A需要处理客户端的IO请求,频繁地将请求转发到服务器B上,明显会带来网络方面的损耗

Benefits of technology

[0041]本发明具有以下有益技术效果:本发明实施例提供的分布式存储系统性能优化的方法,通过在分布式存储系统中创建卷,并将卷的数据对象均匀分布到各个访问节点中;每经过阈值时间统计每个访问节点中数据对象的访问信息;根据每个访问节点中数据对象的访问信息设置分布式存储系统最优的访问节点;响应于分布式存储系统再次接收到读写数据的请求,建立客户端与最优的访问节点的链接的技术方案,能够实现VDI的链路始终和访问数据对象最频繁的节点建立链路,能够减少节点之间的数据转发,能够提升分布式存储系统的IO读写性能。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116048411B_ABST
    Figure CN116048411B_ABST
Patent Text Reader

Abstract

The application provides a method, device and equipment for optimizing performance of a distributed storage system and a readable medium, the method comprising: creating a volume in the distributed storage system and distributing data objects of the volume evenly to various access nodes; counting access information of the data objects in each access node every threshold time; setting an optimal access node of the distributed storage system according to the access information of the data objects in each access node; and in response to the distributed storage system receiving a request for reading and writing data again, establishing a link between a client and the optimal access node. By using the scheme of the application, a link between VDI and the node with the most frequent access to data objects can be established, and the IO reading and writing performance of the distributed storage system can be improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computers, and more specifically to a method, apparatus, device, and readable medium for optimizing the performance of a distributed storage system. Background Technology

[0002] Distributed storage systems distribute data across multiple independent devices. They employ a scalable system architecture, utilizing multiple storage servers to share the storage load and location servers to locate stored information. This not only improves system reliability, availability, and access efficiency but also delivers high scalability and extremely low cost control, enabling the construction and delivery of enterprise-grade storage.

[0003] Internet Small Computer System Interface (iSCSI) is a TCP / IP-based protocol used to establish and manage interconnections between IP storage nodes, clients, and other components, and to create storage area networks.

[0004] iSCSI distributed storage supports a redirect mechanism for iSCSI client connections, such as... Figure 1 As shown, the current common implementation method for redirection is as follows: The distributed cluster provides an external IP address, namely the Master node IP address. This IP address can be floated; when the Master node leaves or fails, the Master IP address can float to another node. The iSCSI client can connect to the distributed storage cluster for the first time through this IP address. At this time, the Master node can select a suitable and optimal node IP address based on the current load of each node in the storage system (such as the number of external TCP connections of each node), redirect the connection, and return the node information to the iSCSI client. The client will then reconnect to the optimal node to perform subsequent I / O read and write operations.

[0005] Clearly, the current redirect mechanism has many advantages. When iSCSI clients connect to a distributed storage cluster, no manual intervention is required. The Master node can dynamically select the optimal node based on factors such as load, allowing the iSCSI client to reconnect and achieving efficient TCP transmission. All access requests will be handled by the so-called optimal node, either processed locally or forwarded to other nodes. However, the current solution also has drawbacks. If an iSCSI client frequently accesses object data on another node over a period of time, the actually connected optimal node will have to frequently forward requests to other nodes, leading to network performance degradation and a significant increase in access latency. Figure 2As shown, an iSCSI client connects to server A. Over a period of time, it may frequently access object data 2 located on server B. In this case, server A needs to handle the client's IO requests and frequently forward the requests to server B, which will obviously cause network overhead. Summary of the Invention

[0006] In view of this, the purpose of this invention is to provide a method, apparatus, device and readable medium for optimizing the performance of a distributed storage system. By using the technical solution of this invention, it is possible to establish links between VDI and the nodes that access data objects most frequently, thereby reducing data forwarding between nodes and improving the IO read and write performance of the distributed storage system.

[0007] To achieve the above objectives, one aspect of the present invention provides a method for performance optimization of a distributed storage system, comprising the following steps:

[0008] Create volumes in a distributed storage system and distribute the volume's data objects evenly across all access nodes;

[0009] Every time a threshold time has elapsed, the access information of the data objects in each access node is statistically analyzed.

[0010] The optimal access node for the distributed storage system is set based on the access information of the data objects in each access node;

[0011] In response to the distributed storage system receiving another request to read or write data, a connection is established between the client and the optimal access node.

[0012] According to one embodiment of the present invention, the access information of data objects in each access node is statistically analyzed after each threshold time, including:

[0013] Every time a threshold time has elapsed, the total number of accesses to all data objects in each access node is counted.

[0014] According to one embodiment of the present invention, setting the optimal access node of the distributed storage system based on the access information of data objects in each access node includes:

[0015] Compare the total number of accesses to all data objects in each access node;

[0016] Set the node with the most total accesses as the optimal access node in the distributed storage system.

[0017] According to one embodiment of the present invention, it further includes:

[0018] Broadcast the information of the optimal access node to all nodes;

[0019] Determine whether the node currently connected to the client is the optimal access node;

[0020] In response to the fact that the node currently connected to the client is not the optimal access node, determine whether there are any requests to read or write data;

[0021] In response to a request that does not contain read or write data, disconnect the node from the client.

[0022] In another aspect, embodiments of the present invention also provide an apparatus for optimizing the performance of a distributed storage system, the apparatus comprising:

[0023] Create a module, which is configured to create volumes in a distributed storage system and distribute the volume's data objects evenly across all access nodes;

[0024] The statistics module is configured to collect access information for data objects in each access node after a threshold time period.

[0025] The configuration module is set to select the optimal access node for the distributed storage system based on the access information of the data objects in each access node.

[0026] Establish a module configured to, in response to the distributed storage system receiving another request to read or write data, establish a connection between the client and the optimal access node.

[0027] According to one embodiment of the present invention, the statistics module is further configured as follows:

[0028] Every time a threshold time has elapsed, the total number of accesses to all data objects in each access node is counted.

[0029] According to one embodiment of the present invention, the setting module is further configured to:

[0030] Compare the total number of accesses to all data objects in each access node;

[0031] Set the node with the most total accesses as the optimal access node in the distributed storage system.

[0032] According to one embodiment of the present invention, a judgment module is further included, the judgment module being configured as follows:

[0033] Broadcast the information of the optimal access node to all nodes;

[0034] Determine whether the node currently connected to the client is the optimal access node;

[0035] In response to the fact that the node currently connected to the client is not the optimal access node, determine whether there are any requests to read or write data;

[0036] In response to a request that does not contain read or write data, disconnect the node from the client.

[0037] Another aspect of the embodiments of the present invention also provides a computer device, the computer device comprising:

[0038] At least one processor; and

[0039] The memory stores computer instructions that can be executed by a processor, which, when executed by the processor, implement the steps of any of the methods described above.

[0040] In another aspect, embodiments of the present invention also provide a computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of any of the above methods.

[0041] The present invention has the following beneficial technical effects: The method for optimizing the performance of a distributed storage system provided in the embodiments of the present invention creates a volume in the distributed storage system and distributes the data objects of the volume evenly to each access node; after a threshold time, it counts the access information of the data objects in each access node; it sets the optimal access node of the distributed storage system based on the access information of the data objects in each access node; and it establishes a link between the client and the optimal access node in response to the distributed storage system receiving a request to read or write data again. This technical solution can ensure that the VDI link is always established with the node that accesses the data objects most frequently, which can reduce data forwarding between nodes and improve the IO read and write performance of the distributed storage system. Attached Figure Description

[0042] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other embodiments can be obtained based on these drawings without creative effort.

[0043] Figure 1 This is a schematic diagram of the connection of a distributed storage system in the prior art;

[0044] Figure 2 This is a schematic diagram illustrating the distribution of node data in a distributed storage system in the prior art.

[0045] Figure 3 This is a schematic flowchart illustrating a method for performance optimization of a distributed storage system according to an embodiment of the present invention.

[0046] Figure 4A schematic diagram of an apparatus for optimizing the performance of a distributed storage system according to an embodiment of the present invention;

[0047] Figure 5 This is a schematic diagram of a computer device according to an embodiment of the present invention;

[0048] Figure 6 This is a schematic diagram of a computer-readable storage medium according to an embodiment of the present invention. Detailed Implementation

[0049] To make the objectives, technical solutions, and advantages of the present invention clearer, the embodiments of the present invention will be further described in detail below with reference to specific examples and the accompanying drawings.

[0050] Based on the above objectives, a first aspect of the embodiments of the present invention provides an embodiment of a method for performance optimization of a distributed storage system. Figure 3 The diagram shown is a schematic flowchart of the method.

[0051] like Figure 3 As shown, the method may include the following steps:

[0052] S1 creates volumes in the distributed storage system and distributes the volume's data objects evenly across the access nodes. The distributed storage provides VDI (Volume Injection) services, which are accessed on each access node. The volume is then divided into multiple data objects according to a preset size, and these data objects are roughly evenly distributed across each access node.

[0053] S2 collects access information for data objects in each access node every time a threshold time interval has elapsed. A threshold time interval T is set, and the access information for data objects in each access node is collected every T time interval. This access information mainly consists of the number of times the data objects are accessed. The total number of times the data objects in each node are accessed is obtained by adding up the number of times the data objects in each node are accessed.

[0054] S3 sets the optimal access node for the distributed storage system based on the access information of data objects in each access node. It also sets the optimal access node based on the total number of accesses to data objects in each node, comparing the total number of accesses to all data objects in each access node, and setting the access node with the highest total number of accesses as the optimal access node for the distributed storage system.

[0055] When the distributed storage system receives another read / write request, S4 establishes a link between the client and the optimal access node. Similarly, when the distributed storage system receives another read / write request from the client, it establishes a link between the client and the optimal access node. Through this scheme, the access service on each node can perform periodic VDI ​​optimal path switching, ensuring that the VDI link is always established with the node that accesses the data object most frequently, thereby improving the IO read / write performance of the distributed storage cluster.

[0056] By using the technical solution of this invention, it is possible to establish a link between the VDI link and the node that accesses the data object most frequently, thereby reducing data forwarding between nodes and improving the IO read and write performance of the distributed storage system.

[0057] In a preferred embodiment of the present invention, the process of collecting access information of data objects in each access node after a threshold time interval includes:

[0058] Every time a threshold time has elapsed, the total number of accesses to all data objects in each access node is counted.

[0059] In a preferred embodiment of the present invention, setting the optimal access node of the distributed storage system based on the access information of the data object in each access node includes:

[0060] Compare the total number of accesses to all data objects in each access node;

[0061] The node with the most total accesses is set as the optimal access node in the distributed storage system. The optimal access node is switched once every set threshold time interval. If the current access node connected to the client is already the optimal access node, no switching is necessary.

[0062] In a preferred embodiment of the present invention, it further includes:

[0063] Broadcast the information of the optimal access node to all nodes;

[0064] Determine whether the node currently connected to the client is the optimal access node;

[0065] In response to the fact that the node currently connected to the client is not the optimal access node, determine whether there are any requests to read or write data;

[0066] In response to a request that does not involve reading or writing data, the connection between the node and the client is disconnected. If the node currently connected to the client is the optimal access node, the connection does not need to be disconnected. If the node currently connected to the client is not the optimal access node, it is necessary to check whether there is any IO data processing on the current connection. If not, the connection can be disconnected; otherwise, it needs to wait until the IO processing is completed before disconnecting.

[0067] By using the technical solution of this invention, it is possible to establish a link between the VDI link and the node that accesses the data object most frequently, thereby reducing data forwarding between nodes and improving the IO read and write performance of the distributed storage system.

[0068] It should be noted that those skilled in the art will understand that all or part of the processes in the above embodiments can be implemented by a computer program instructing related hardware. The program can be stored in a computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. The storage medium can be a magnetic disk, optical disk, read-only memory (ROM), or random access memory (RAM), etc. The embodiments of the computer program described above can achieve the same or similar effects as any of the corresponding foregoing method embodiments.

[0069] Furthermore, the method disclosed in the embodiments of the present invention can also be implemented as a computer program executed by a CPU, which may be stored in a computer-readable storage medium. When the computer program is executed by the CPU, it performs the functions defined in the method disclosed in the embodiments of the present invention.

[0070] Based on the above objectives, a second aspect of the embodiments of the present invention provides an apparatus for optimizing the performance of a distributed storage system, such as... Figure 4 As shown, the device 200 includes:

[0071] Create a module, which is configured to create volumes in a distributed storage system and distribute the volume's data objects evenly across all access nodes;

[0072] The statistics module is configured to collect access information for data objects in each access node after a threshold time period.

[0073] The configuration module is set to select the optimal access node for the distributed storage system based on the access information of the data objects in each access node.

[0074] Establish a module configured to, in response to the distributed storage system receiving another request to read or write data, establish a connection between the client and the optimal access node.

[0075] In a preferred embodiment of the present invention, the statistics module is further configured as follows:

[0076] Every time a threshold time has elapsed, the total number of accesses to all data objects in each access node is counted.

[0077] In a preferred embodiment of the present invention, the setting module is further configured as follows:

[0078] Compare the total number of accesses to all data objects in each access node;

[0079] Set the node with the most total accesses as the optimal access node in the distributed storage system.

[0080] In a preferred embodiment of the present invention, a judgment module is further included, which is configured as follows:

[0081] Broadcast the information of the optimal access node to all nodes;

[0082] Determine whether the node currently connected to the client is the optimal access node;

[0083] In response to the fact that the node currently connected to the client is not the optimal access node, determine whether there are any requests to read or write data;

[0084] In response to a request that does not contain read or write data, disconnect the node from the client.

[0085] In view of the above objectives, a third aspect of the present invention provides a computer device. Figure 5 The diagram shown is a schematic representation of an embodiment of the computer device provided by the present invention. Figure 5 As shown, embodiments of the present invention include the following apparatus: at least one processor 21; and a memory 22 storing computer instructions 23 executable on the processor, which, when executed by the processor, implement the following method:

[0086] Create volumes in a distributed storage system and distribute the volume's data objects evenly across all access nodes;

[0087] Every time a threshold time has elapsed, the access information of the data objects in each access node is statistically analyzed.

[0088] The optimal access node for the distributed storage system is set based on the access information of the data objects in each access node;

[0089] In response to the distributed storage system receiving another request to read or write data, a connection is established between the client and the optimal access node.

[0090] In a preferred embodiment of the present invention, the process of collecting access information of data objects in each access node after a threshold time interval includes:

[0091] Every time a threshold time has elapsed, the total number of accesses to all data objects in each access node is counted.

[0092] In a preferred embodiment of the present invention, setting the optimal access node of the distributed storage system based on the access information of the data object in each access node includes:

[0093] Compare the total number of accesses to all data objects in each access node;

[0094] Set the node with the most total accesses as the optimal access node in the distributed storage system.

[0095] In a preferred embodiment of the present invention, it further includes:

[0096] Broadcast the information of the optimal access node to all nodes;

[0097] Determine whether the node currently connected to the client is the optimal access node;

[0098] In response to the fact that the node currently connected to the client is not the optimal access node, determine whether there are any requests to read or write data;

[0099] In response to a request that does not contain read or write data, disconnect the node from the client.

[0100] In view of the above objectives, a fourth aspect of the present invention provides a computer-readable storage medium. Figure 6 The diagram shown is a schematic representation of an embodiment of the computer-readable storage medium provided by the present invention. Figure 6 As shown, computer-readable storage medium 31 stores a computer program 32 that, when executed by a processor, performs the following methods:

[0101] Create volumes in a distributed storage system and distribute the volume's data objects evenly across all access nodes;

[0102] Every time a threshold time has elapsed, the access information of the data objects in each access node is statistically analyzed.

[0103] The optimal access node for the distributed storage system is set based on the access information of the data objects in each access node;

[0104] In response to the distributed storage system receiving another request to read or write data, a connection is established between the client and the optimal access node.

[0105] In a preferred embodiment of the present invention, the process of collecting access information of data objects in each access node after a threshold time interval includes:

[0106] Every time a threshold time has elapsed, the total number of accesses to all data objects in each access node is counted.

[0107] In a preferred embodiment of the present invention, setting the optimal access node of the distributed storage system based on the access information of the data object in each access node includes:

[0108] Compare the total number of accesses to all data objects in each access node;

[0109] Set the node with the most total accesses as the optimal access node in the distributed storage system.

[0110] In a preferred embodiment of the present invention, it further includes:

[0111] Broadcast the information of the optimal access node to all nodes;

[0112] Determine whether the node currently connected to the client is the optimal access node;

[0113] In response to the fact that the node currently connected to the client is not the optimal access node, determine whether there are any requests to read or write data;

[0114] In response to a request that does not contain read or write data, disconnect the node from the client.

[0115] Furthermore, the method disclosed in the embodiments of the present invention can also be implemented as a computer program executed by a processor, which may be stored in a computer-readable storage medium. When the computer program is executed by the processor, it performs the functions defined in the method disclosed in the embodiments of the present invention.

[0116] Furthermore, the above-described method steps and system units can also be implemented using a controller and a computer-readable storage medium for storing a computer program that enables the controller to perform the functions of the above-described steps or units.

[0117] Those skilled in the art will also understand that the various exemplary logic blocks, modules, circuits, and algorithm steps described in conjunction with the disclosure herein can be implemented as electronic hardware, computer software, or a combination of both. To clearly illustrate this interchangeability between hardware and software, the functionality of various illustrative components, blocks, modules, circuits, and steps has been generally described. Whether this functionality is implemented as software or as hardware depends on the specific application and the design constraints imposed on the system as a whole. Those skilled in the art can implement the functionality in various ways for each specific application, but such implementation decisions should not be construed as departing from the scope of the embodiments disclosed herein.

[0118] In one or more exemplary designs, functionality may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, functionality may be stored as one or more instructions or code on or transmitted via a computer-readable medium. Computer-readable media include computer storage media and communication media, including any medium that facilitates the transfer of a computer program from one location to another. Storage media may be any available medium accessible to a general-purpose or special-purpose computer. By way of example, and not limitation, computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disc storage devices, disk storage devices or other magnetic storage devices, or any other medium that may be used to carry or store the required program code in the form of instructions or data structures and is accessible to a general-purpose or special-purpose computer or a general-purpose or special-purpose processor. Furthermore, any connection may be appropriately referred to as computer-readable media. For example, if software is transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the aforementioned coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are all included in the definition of media. As used herein, disks and optical discs include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs, where disks typically reproduce data magnetically, while optical discs reproduce data optically using lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0119] The above are exemplary embodiments disclosed in this invention. However, it should be noted that various changes and modifications can be made without departing from the scope of the embodiments of this invention as defined by the claims. The functions, steps, and / or actions of the methods according to the disclosed embodiments described herein do not need to be performed in any particular order. Furthermore, although the elements disclosed in the embodiments of this invention may be described or claimed individually, they may be understood as multiple unless explicitly limited to a singular number.

[0120] It should be understood that, as used herein, the singular form “a” is intended to include the plural form as well, unless the context clearly supports an exception. It should also be understood that, as used herein, “and / or” refers to any and all possible combinations of one or more of the associated listed items.

[0121] The embodiment numbers disclosed in the above embodiments of the present invention are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.

[0122] Those skilled in the art will understand that all or part of the steps of the above embodiments can be implemented by hardware or by a program instructing related hardware. The program can be stored in a computer-readable storage medium, such as a read-only memory, a disk, or an optical disk.

[0123] Those skilled in the art should understand that the discussion of any of the above embodiments is merely exemplary and is not intended to imply that the scope of the invention (including the claims) is limited to these examples. Within the framework of the invention, technical features of the above embodiments or different embodiments can be combined, and many other variations of different aspects of the invention exist, which are not provided in the details for the sake of brevity. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the invention should be included within the protection scope of the invention.

Claims

1. A method for performance optimization of a distributed storage system, the method comprising: Includes the following steps: Creating a volume in a distributed storage system and evenly distributing the volume's data objects to various access nodes includes: dividing the volume into multiple data objects according to a preset size, with all data objects evenly distributed across each access node; Every time a threshold time has elapsed, the access information of the data objects in each access node is counted, including: the total number of accesses of all data objects in each access node every time a threshold time has elapsed; The optimal access node for the distributed storage system is determined based on the access information of the data objects in each access node. This includes: comparing the total number of accesses of all data objects in each access node; and setting the access node with the highest total number of accesses as the optimal access node for the distributed storage system. Broadcast the information of the optimal access node to all nodes; determine whether the node currently connected to the client is the optimal access node; if the node currently connected to the client is not the optimal access node, determine whether there is a request to read or write data; if there is no request to read or write data, disconnect the node from the client. In response to the distributed storage system receiving another request to read or write data, a connection is established between the client and the optimal access node.

2. An apparatus for optimizing performance of a distributed storage system, the apparatus comprising: The device includes: The creation module is configured to create a volume in a distributed storage system and distribute the volume's data objects evenly across each access node; the creation module is also configured to divide the volume into multiple data objects according to a preset size, with all data objects evenly distributed across each access node; The statistics module is configured to collect access information of data objects in each access node every threshold time interval; The setting module is configured to set the optimal access node for the distributed storage system based on the access information of the data objects in each access node; A connection establishment module is configured to establish a link between the client and the optimal access node in response to the distributed storage system receiving another request to read or write data. The statistics module is also configured as follows: The total number of accesses to all data objects in each access node is counted after each threshold time. The settings module is also configured to: Compare the total number of accesses to all data objects in each access node; Set the node with the most total accesses as the optimal access node in the distributed storage system; It also includes a judgment module, which is configured as follows: Broadcast the information of the optimal access node to all nodes; Determine whether the node currently connected to the client is the optimal access node; In response to the fact that the node currently connected to the client is not the optimal access node, determine whether there are any requests to read or write data; In response to a request that does not contain read or write data, disconnect the node from the client.

3. A computer device, characterized by include: At least one processor; as well as A memory storing computer instructions executable on the processor, which, when executed by the processor, implement the steps of the method of claim 1.

4. A computer-readable storage medium storing a computer program, the computer program comprising instructions that, when executed by a computer, cause the computer to perform the method of any one of claims 1 to 3. When the computer program is executed by a processor, it implements the steps of the method of claim 1.

Citation Information

Patent Citations

  • Dynamic load balancing method of distributed storage system

    CN103701916A