System and method for managing distributed storage system
By introducing multi-node architecture and artificial intelligence algorithms into the management equipment of distributed storage data centers, mapping data is generated to optimize the allocation of storage devices, and the problem of centralized management device deployment in the existing technology is solved, and efficient management and low-energy deployment of distributed storage systems are realized.
Patent Information
- Application Number
- PCT/CN2024/112095
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-09-22
- Filing Date
- 2024-08-14
- Publication Date
- 2025-03-27
AI Technical Summary
The deployment of existing distributed storage data centers in local areas still adopts a centralized approach, resulting in high power consumption, strong dependence on cooling equipment, high requirements on land, manpower and network infrastructure, making it difficult to achieve true distributed deployment.
Design a system and method to generate mapped data to optimize the allocation of storage devices and management devices to realize the management of distributed storage systems by introducing multi-node architectures and artificial intelligence algorithms in storage devices and management devices.
It realizes the distributed deployment of management equipment, reduces power consumption and heat dissipation needs, reduces dependence on land and human resources, improves data security and reliability, and complies with the definition of distributed storage.
Smart Images

Figure CN2024112095_27032025_PF_FP_ABST
Abstract
Description
A system and method for managing a distributed storage system Technical Field
[0001] The present application belongs to the field of distributed data storage, specifically, the present application belongs to the field of distributed cloud data storage; more specifically, the present application belongs to the field of applying artificial intelligence to manage the storage of distributed cloud data. Background Art
[0002] A wealth of technical documentation on distributed systems is already available. Data centers built using a distributed deployment approach distribute storage devices across geographically dispersed nodes, eliminating the need for centralized cooling. In addition to energy savings and cost advantages, this distributed deployment and immediate data backup prevent the permanent data loss that can occur in centralized data centers due to natural or man-made disasters, power outages, network outages, or war, significantly improving data security and reliability. Compared to traditional centralized data centers, distributed data centers save construction costs and reduce the requirements for land, labor, and network bandwidth. Furthermore, because they don't require the cooling equipment required by centralized data centers, distributed data centers can save 40% of their electricity.
[0003] However, building a distributed storage data center involves managing a large number of data storage device nodes that are distributed throughout the country. In actual applications in my country, the management devices that manage the nodes of storage devices generally adopt a centralized distribution method, placing a large number of high-performance computers in the same location to achieve the management of storage devices scattered across various geographical areas. Although distributed management devices already exist, the distribution of these management devices is artificially divided into several centers, such as the East China Center and the South China Center. Each center has a large number of management device groups composed of high-performance computers to achieve the management of the nodes of distributed storage devices in the region. From a national perspective, this deployment method has indeed achieved partial distributed deployment, but from a local perspective, the management equipment has not yet achieved full distributed deployment. Due to the use of centralized deployment methods in local areas, the management equipment still has the disadvantages of high power consumption, high dependence on dedicated heat dissipation equipment, and high requirements for land, manpower, network and other infrastructure.
[0004] Therefore, it is necessary to design a technical solution to achieve distributed deployment of management devices that manage nodes of distributed storage devices.
[0005] Summary of the Invention
[0006] A first embodiment of the first aspect of the present application provides a system for managing a distributed storage system, comprising: a storage device having multiple nodes, comprising: a first input port for receiving data from a device outside the storage device; a first output port for sending data to a device outside the storage device; a first memory for storing data to be stored, a computer program, and storage device status data; a first processor capable of: in response to a change in the storage device status data, calling a first computer program in the first memory to generate first mapping data (hereinafter, the first mapping data may also be referred to as "score"); in response to the generation of the first mapping data, actuating the first output port to output first output data including one or more data in the first mapping data and / or the storage device status data, wherein the first mapping data also includes geographic location data; in response to the first input port receiving a first call instruction, actuating the first output port to send a first connection request to the network address indicated by the first call instruction; in response to the first input port receiving an agreement to the first connection request, actuating the first input port to receive data to be stored and storing the data to be stored in the first memory; and / or In response to receiving a second connection request at the first input port, the first output port is activated to transmit an approval of the second connection request, and the first input port is activated to receive data to be stored and store the data to be stored in the first memory; a management device, comprising: a second input port for receiving data from a device outside the management device; a second output port for sending data to a device outside the management device; a second memory on which a computer program and / or a database is stored; a second processor, capable of: in response to the second input port receiving the first output data, calling a second computer program, the second computer program including an artificial intelligence algorithm; in response to the execution result of the second computer program and the second input port receiving second input information, calling a third computer program, the third computer program including a statement for calling a database; and according to the execution result of the third computer program, activating the second output port so that the second output port outputs the network address of the node of the storage device to the device outputting the second input information and / or issues a first call instruction to the node of the storage device, the first call instruction including the network address of the device outputting the second input information; wherein the second input information represents the information requested of the storage device.
[0007] In the second embodiment of the first aspect of the present application, the step of calling the first computer program in the first memory to generate the first mapping data includes: prioritizing the storage device status data according to a first predefined priority list; allocating balancing coefficients to the respective storage device status data according to the priorities of the respective storage device status data; and generating the first mapping data according to the respective storage device status data and the balancing coefficients.
[0008] In a third embodiment of the first aspect of the present application, the first predefined priority list further includes one or more first predefined priority sub-lists, and the one or more first predefined priority sub-lists respectively generate respective balancing coefficients and first mapping data.
[0009] In a fourth embodiment of the first aspect of the present application, the system also includes a user device, which includes: a third input port, which is used to receive data from a device other than the user device; a third output port, which is used to send data to a device other than the storage device; a third memory, which is used to store data and computer programs; a third processor, which is capable of: actuating the third output port to output the second input information; in response to the third input port receiving the network address of the node of the storage device, actuating the third output port to output the second connection request; in response to the third input port receiving the consent of the second connection request, actuating the third output port to output the data to be stored; and / or in response to the third input port receiving the first connection request, actuating the third output port to output the consent of the first connection request and output the data to be stored.
[0010] In the fifth embodiment of the first aspect of the present application, the second processor is further capable of: in response to the second input port receiving a paging request, actuating the second output port to make it respond; in response to the second input port receiving information requesting second output data, actuating the second output port to output second output data including one or more data of the first mapping data and / or the user device status data.
[0011] In a sixth embodiment of the first aspect of the present application, the third processor is further capable of: actuating the third output port to issue a paging request; in response to the paging request being answered, issuing information requesting second output data; in response to the third input port receiving the second output data, calling a fifth computer program, the fifth computer program including an artificial intelligence algorithm; in response to the execution result of the fifth computer program and the third input port receiving the second output data, calling a sixth computer program, the sixth computer program including a statement for calling a database; and according to the execution result of the sixth computer program, actuating the third output port to output the second connection request.
[0012] In a seventh embodiment of the first aspect of the present application, the second memory and / or the third memory further includes a seventh computer program. When the seventh computer program is executed by the second processor and / or the third processor, the second processor or the third processor is capable of: calling an eighth computer program in the second memory and / or the third memory to generate random second input information; calling a third computer program and / or a sixth computer program in response to the execution result of the second computer program and / or the fifth computer program and the random second input information; actuating the second output port and / or the third output port according to the execution result of the third computer program and / or the sixth computer program, so that the second output port and / or the third output port issues a second call instruction, the second call instruction including the network address of the simulated user device of the random second input information; actuating the second output port and / or the third output port in response to the second input port and / or the third input port receiving confirmation of the second call instruction. or the third input port, so that it outputs the storage data of the simulated user device; based on the confirmation that the storage data of the simulated user device has been stored, updating the storage device status data as standard status data; based on the execution results of the third computer program and / or the sixth computer program and the data stored in the database, calculating the verification device group composed of the nodes of the storage device that have not been called to store the storage data of the simulated user device; in response to the calculation result of the verification device group, sending the storage data of the simulated user device to the verification device group; in response to the confirmation that the storage data of the simulated user device has been stored, recording the storage device status data of each node in the verification device group and recording the optimal value therein; in response to the optimal value of the storage device status data of the verification device group being better than one or more of the standard status data, executing a ninth computer program, the ninth computer program including a statement for calling the seventh computer program and a statement for modifying the second computer program and / or the fifth computer program.
[0013] In the eighth embodiment of the first aspect of the present application, the first processor is capable of: in response to the first input port receiving the second call instruction, actuating the first input port to issue a confirmation of the second call instruction; actuating the first input port to accept the storage data of the simulated user device; in response to the storage data of the simulated user device being stored, actuating the first output port to issue a confirmation that the storage data of the simulated user device has been stored.
[0014] A ninth embodiment of the first aspect of the present application provides a system for managing a distributed storage system, comprising: a storage device having multiple nodes, comprising: a first input port for receiving data from a device outside the storage device; a first output port for sending data to a device outside the storage device; a first memory for storing data to be stored, a computer program, and storage device status data; a first processor capable of: in response to a change in the storage device status data, calling a first computer program in the first memory to generate first mapping data; and in response to the generation of the first mapping data, actuating the first output port to output a message including the first mapping data. and / or first output data of one or more data in the storage device status data, wherein the first mapping data also includes geographic location data; in response to the first input port receiving the second connection request, actuating the first output port to transmit the consent of the second connection request, and actuating the first input port to receive the data to be stored and store the data to be stored in the first memory; a user device, the user device comprising: a third input port for receiving data from a device other than the user device; a third output port for sending data to a device other than the storage device; a third memory for storing data, computer programs; a third processor capable of: actuating The third output port sends a paging request; in response to the third input port receiving a response to the paging request, the third input port sends a message requesting second output data; in response to the third input port receiving the second output data, the fifth computer program is called, and the fifth computer program includes an artificial intelligence algorithm; in response to the execution result of the fifth computer program, the third input port receiving the second output data and the generation of the second input information, the sixth computer program is called, and the sixth computer program includes a statement for calling a database; according to the execution result of the sixth computer program, the third output port is actuated to output the second connection request; in response to the third input port receiving the second connection request Agree, actuate the third output port to output the data to be stored; a management device, which includes: a second input port, which is used to receive data from a device outside the management device; a second output port, which is used to send data to a device outside the management device; a second memory, on which a computer program and / or a database is stored; a second processor, which is capable of: in response to the second input port receiving a paging request, actuating the second output port to make a response; in response to the second input port receiving information requesting second output data, actuating the second output port to output second output data including the first output data, wherein the second input information represents the information requested of the storage device.
[0015] According to a second aspect of the present application, an embodiment of the present application provides a method for managing a distributed storage system, which applies the system defined in any embodiment described according to the first aspect of the present application.
[0016] The first embodiment of the third aspect of the present application provides a method for managing nodes of a distributed storage device, comprising: receiving first mapping data corresponding to the device status of each node of the storage device, and a storage request sent by a user device; applying an artificial intelligence algorithm to the respective first mapping data of all the nodes of the storage device to generate a mapping relationship of all the nodes of the storage device; according to the mapping relationship between the storage request and the nodes of the storage device, dispatching the data requested to be stored by the user device to the nodes of the corresponding storage device, and sending the node location information of the available storage device to the user device; and forwarding the storage request of the user device to the nodes of the corresponding storage device; wherein the first mapping data includes the geographic location data of the nodes of the storage device, and the storage request includes information about the data to be stored and the location of the user device.
[0017] In the second embodiment of the third aspect of the present application, the device status data also includes at least one of the following: the first mapping data also includes at least one of the following: the node health status of the storage device, the node online time of the storage device, the node remaining storage rate of the storage device, or the node network speed of the storage device.
[0018] In a third embodiment of the third aspect of the present application, the storage request further includes the number of nodes of the backup storage device required by the user, and the number of nodes of the backup storage device is greater than or equal to three.
[0019] The first embodiment of the fourth aspect of the present application provides a method for storing data in a node of a distributed storage device, comprising: sending a storage request or a query request to a management device that manages the node of the storage device; receiving node location information of an available storage device sent by the management device in response to the storage request and / or query request; based on the node location information of the storage device, sending a connection request to the management device to establish a connection with the corresponding node of the storage device to send the data to be stored to the corresponding node of the storage device, and / or query the data; wherein the storage request includes information about the data to be stored and the location of the user device; and wherein the node location information of the storage device is generated based on the storage request and the first mapping data of the node of the storage device.
[0020] In a second embodiment of the fourth aspect of the present application, the storage request further includes the number of nodes of the backup storage device, and the number of nodes of the backup storage device is greater than or equal to three.
[0021] The first embodiment of the fifth aspect of the present application provides a method for storing data in a node of a distributed storage device, comprising: monitoring the device status of the node of the storage device itself, and generating first mapping data corresponding to the device status of the node of the storage device respectively; reporting the first mapping data of the node of the storage device itself to a management device that manages the node of the storage device; receiving a connection establishment request from a user device forwarded by the management device in response to the first mapping data; and establishing a connection with the corresponding user device in response to the connection establishment request of the user device to receive the data to be stored transmitted by the user device and / or send a query result to the user device; wherein the first mapping data includes the geographic location of the node of the storage device, and wherein the connection establishment request is generated based on the storage request of the user device and the first mapping data.
[0022] In the second embodiment of the fifth aspect of the present application, generating first mapping data corresponding to each node of the storage device includes: prioritizing the storage device status data according to a first predefined priority list; allocating balancing coefficients to each storage device status data according to the priority of each storage device status data; and generating the first mapping data based on the each storage device status data and the balancing coefficients.
[0023] In a third embodiment of the fifth aspect of the present application, the first predefined priority list further includes at least one first predefined priority sub-list, and the at least one first predefined priority sub-list respectively generates its own balancing coefficient and first mapping data.
[0024] In a fourth embodiment of the fifth aspect of the present application, the entries of the first predefined priority list include different types of storage device status data with different priorities, and the corresponding entries of at least one first predefined priority list include a first predefined priority sub-list that sets the storage device with the geographical location of the user device above 500 kilometers as the highest priority.
[0025] In a fifth embodiment of the fifth aspect of the present application, the device status data further includes at least one of the following: health status, online time, remaining storage capacity, or network speed.
[0026] In the sixth embodiment of the fifth aspect of the present application, the method also includes: updating the first mapping data during the idle period of the node of the storage device, and reporting the updated first mapping data to the management device; or periodically updating the first mapping data of the node of the storage device to the management device.
[0027] The sixth aspect of the present application provides a management device, including a memory, a processor, and a computer program stored on the memory and executable by the processor. When the processor executes the computer program, it implements the method for managing nodes of a distributed storage device as described in the various embodiments of the third aspect of the present application.
[0028] The seventh aspect of the present application provides a user device, including a memory, a processor, and a computer program stored on the memory and executable by the processor. When the processor executes the computer program, it implements the method for storing data in a node of a distributed storage device of each embodiment described in the fourth aspect of the present application.
[0029] The eighth aspect of the present application provides a node of a distributed storage device, comprising a memory, a processor, and a computer program stored on the memory and executable by the processor. When the processor executes the computer program, it implements the method for storing data in a node of a distributed storage device of the various embodiments described in the fifth aspect of the present application.
[0030] The ninth aspect of the present application provides a computer-readable storage medium storing a computer-executable program. When the computer-executable program is executed by a processor, it implements the method of any embodiment described in the third to fifth aspects of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] The accompanying drawings show, by way of example, embodiments of various aspects of the present application.
[0032] FIG1 is a schematic diagram of a system according to an embodiment of the first aspect of the present application;
[0033] Figures 2a and 2b show the principle diagrams of the system shown in Figure 1 when it is running;
[0034] 3a to 3e show the corresponding relationship between the state data originally sensed by the storage device and its trim coefficient;
[0035] FIG3 f shows a first priority list according to one embodiment;
[0036] FIG3g shows another first priority sub-list in the embodiment shown in FIG3f;
[0037] FIG3h shows another first priority sub-list in the embodiment shown in FIG3f;
[0038] 3i and 3j show selected allocation tables according to an embodiment of the present application;
[0039] FIG4 shows a flowchart of a management device allocating a node of a storage device to a user device according to an embodiment of the present application;
[0040] FIG5 shows a flow chart of a user device allocating a node of a storage device to itself according to an embodiment of the present application;
[0041] 6a-6c respectively show schematic structural diagrams of a storage device, a management device, and a user device according to an embodiment of the present application. DETAILED DESCRIPTION
[0042] The term "and / or" used in this application indicates that the relationship between components / steps is an "and" or "or" relationship, and the components / steps may not exist. For example, "a and / or b" means "a and b", "a or b", "only a", and "only b".
[0043] In some non-limiting embodiments or aspects, the processor may be implemented in hardware, software, or a combination of hardware and software. For example, the processor may include a processor (e.g., a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), etc.), a microprocessor, a digital signal processor (DSP), and / or any processing component that can be programmed to perform a function (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.). The memory may include random access memory (RAM), read-only memory (ROM), and / or another type of dynamic or static memory (e.g., flash memory, magnetic memory, optical memory, etc.) that stores information and / or instructions for use by the processor.
[0044] The memory may store information and / or software associated with the operation and use of the processor. For example, the memory may include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optical disk, a solid-state disk, etc.), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cassette, a magnetic tape, and / or another type of computer-readable medium, and a corresponding drive.
[0045] Input ports may include components that receive information, for example, through user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, buttons, switches, a microphone, etc.). Additionally or alternatively, input ports may include sensors for sensing information (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, an actuator, etc.). Output ports may include components that provide output information from the device (e.g., a display, a speaker, one or more light emitting diodes (LEDs), etc.).
[0046] The computer programs described herein are configured to be executed by a hardware machine (such as C, C++, Fortran, Java, Basic, Matlab, etc.) or a modeling / simulation program (such as Simulink, Stateflow, GNU Octave, or LabVIEW MathScript). It is possible to implement the modules using physical hardware incorporating discrete or programmable analog, digital, and / or quantum hardware. Examples of programmable hardware include: computers, microcontrollers, microprocessors, application specific integrated circuits (ASICs); field programmable gate arrays (FPGAs); and complex programmable logic devices (CPLDs). Computers, microcontrollers, and microprocessors are programmed using languages such as assembly, C, C++, etc. FPGAs, ASICs, and CPLDs are often programmed using hardware description languages (HDLs), such as VHSIC Hardware Description Language (VHDL) or Verilog, which configure the connections between the less functional internal hardware modules on the programmable device.
[0047] The computing devices described herein may include personal desktop computers, personal laptop computers, servers, smart phones, supercomputers, and the like in the prior art.
[0048] It should be understood that the storage devices, management devices, and user devices described in the embodiments of the present application are actually device groups consisting of computing devices corresponding to multiple nodes, rather than a single computing device. For the convenience of explanation, the embodiments of the present application abstract the device group consisting of storage devices, management devices, and user devices into one storage device plus one management device plus one user device. This abstraction will not cause those skilled in the art to be troubled by the technical solution of the present application, because although the device group consisting of the storage devices, management devices, and user devices described in the present application has more than one input / output port, memory, and processor, and the user device may access the port of a different device each time, for a single user in a microscopic perspective, the functions implemented by these ports are consistent, and the functions implemented by each node in the device group are similar, and the user does not care which management device / storage device node is specifically connected. Therefore, the storage devices, management devices, user devices, etc. described herein should be understood as device groups and device groups that include one or more computing devices. The ports, memories, and processors they have are named / divided according to their functions. From a global perspective, the device group consisting of each type of device has ports, memories, and processors, and from a microscopic perspective, each device also has ports, memories, and processors. In general, devices, ports, memories, and processors refer to components observed by technicians in this field from a global perspective; when this application needs to describe the various components from a microscopic perspective, it will be specified in the application documents.
[0049] FIG1 is a schematic diagram of a system according to an embodiment of the first aspect of the present application, wherein U1 represents a user device, S1, S2, and S3 are three storage device nodes, which together constitute a storage device (group) S, and M1, M2, and M3 are three management device nodes, which together constitute a management device (group) M. In FIG1 , dotted lines between devices represent communication links. For ease of presentation, Link-XY-AB is defined as a communication link between device X and device Y, where A is the serial number of device X and B is the serial number of device Y.
[0050] When no user device initiates a storage request (idle time), the storage device needs to periodically report its own status to the management device. For example, a certain node in the storage device can be specified. For example, as shown in Figure 1, the storage device status data of all nodes of the storage device are summarized through the storage device node S2, and then the status of the storage device M itself is transmitted through the storage device node S2 via Link-MS-32. All data reflecting the status of the storage device M is summarized as the first output data. For example, an embodiment of the present application specifies that the management device node M3 receives the storage device status data of all nodes of the storage device, and distributes the storage device status data to the management device nodes M1 and M2 through the link inside the management device M.
[0051] When the user device U1 initiates a storage request (busy time), a communication link will be established between the user device U1 and the management device M. For example, in Figure 1, the user device U1 selects the management device node M1 according to specific rules (the specific rules, for example, select the node closest to the user device U1, or select the management device node according to the rules for user device selection of management device nodes described below). The management device node M1 allocates the storage device node S1 to the user device U1 based on the storage request received by Link-UM-11 and the existing storage device status data (the allocation process will be explained below). Then, the management device node M1 can return the network address of the storage device node S1 to the user device U1 through Link-UM-11, so that the user device U1 actively initiates a connection request to the storage device node S1; or the management device node M1 can transmit the network address of the user device U1 to the storage device node S1 through Link-MS-11, so that the storage device node S1 actively initiates a connection request to the user device U1. Then, the user device U1 transmits the data to be stored through Link-US-11.
[0052] Figures 2a and 2b illustrate schematic diagrams of the embodiment shown in Figure 1, illustrating the flow of data. As previously described, since the ports, memories, and processors of each device are globally equivalent, the user device U1 in Figure 1 is abstracted as a user device, the storage device nodes S1, S2, and S3 are abstracted as storage devices, and the management device nodes M1, M2, and M3 are abstracted as management devices.
[0053] Whether in idle time or busy time, the storage device reports its own status to the management device through the first output port. In Figure 2a-Figure 2b, the data stream (stream) str 1 carries the first output data reflecting the storage device status data; when the user device initiates a storage request, the user device will send the second input information reflecting the user's storage demand to the management device through its own third output port. In Figure 2a-Figure 2b, the second input information is carried by the data stream str 2; then, the management device can return the network address of the storage device to the user device through the data stream str 3-1, so that the user device actively initiates a second connection request to the storage device through the data stream str 4-1. When the user device receives the consent of the storage device for the second connection request, it then transmits the data to be stored through the data stream str 4-1 (as shown in Figure 2a). Of course, the user device can also enable a new data stream to transmit the data to be stored; or, the management device can transmit the network address of the user device to the storage device through the data stream str 3-2, so that the storage device actively transmits the data to be stored through the data stream str 4-2 initiates a first connection request to the user device. When the storage device receives the consent for the first connection request from the storage device, it then transmits the data to be stored through the data stream str 4-2 (as shown in Figure 2b). Of course, the storage device can also enable a new data stream to transmit the data to be stored.
[0054] In actual application scenarios, the second input information sent by the user device generally includes at least two pieces of information: one is how many nodes N1 of the storage device the user needs, and the other is the size N2 of the single data that the user needs to store. For example, if the user needs to back up a 10M photo on the mobile phone to three clouds, N1=3, N2=10M. In theory, as long as the number of clouds is consistent with the number of nodes of the storage device required by the user, and the available space of each cloud is greater than or equal to the space of the file that the user needs to store, the user's storage needs can be met. In the above example, as long as the number of clouds is greater than 3 and the available storage space of each cloud is greater than or equal to 10M, the user's storage needs can be met.
[0055] But in fact, there are still several problems that need to be solved in cloud storage:
[0056] Problem 1: Due to accidental events (e.g., natural disasters), the nodes of the storage device may be out of power, disconnected from the network, or damaged, resulting in the actual number of available storage device nodes being less than the theoretical number of available nodes.
[0057] Problem 2: The storage device node itself is available, but its physical condition is poor. For example, a severely aged hard disk may cause the user to store data when a storage request is made, but lose the data when the user retrieves the data later due to poor physical condition.
[0058] Question 3: If the nodes of the allocated storage devices are concentrated in a specific geographic area, a natural disaster or unforeseen event could result in the loss of all user data. This allocation scheme does not actually meet the definition of a distributed deployment. However, some nodes located in specific areas have better infrastructure and can support higher storage speeds. These types of storage device nodes are user-friendly, and users are more willing to store their data on these nodes.
[0059] Question 4: In existing technologies, storage device nodes are not simply stacks of hard drives and SSDs; they also require computing devices to manage them. However, the presence of these computing devices hinders the development of storage systems towards miniaturization and decentralization. This is because storage device nodes themselves require computing devices with a certain level of computing power to maintain their lifespan, and these computing devices themselves occupy a certain amount of volume and space. Furthermore, the presence of these computing devices requires additional equipment maintenance personnel, making it difficult to achieve fully automated and unmanned storage systems.
[0060] In order to solve one or more of the above problems, in the embodiments provided in the present application, before generating the first output data, it is also necessary to generate first mapping data. The first mapping data is data generated by the original sensed status data of one or more storage devices through specific mapping rules. The first mapping data and a portion of the storage device status data constitute the basis for the management device to allocate storage device nodes to user devices. In addition, the first mapping data also includes a plurality of priority lists. These priority lists ensure that the final allocation of user device nodes will not be overly concentrated in a single geographical area, so that the data stored by the user meets the definition of distributed storage. The principles of the technical solutions for solving these technical problems will be explained below in conjunction with specific embodiments.
[0061] In one embodiment, five pieces of raw sensed state data A, B, C, D, and E of storage devices are exemplarily provided, each with a corresponding trim coefficient A_co, B_co, ..., E_co. As shown in Figures 3a to 3e, these five figures illustrate the corresponding relationship between A, B, C, D, E and their trim coefficients. Among them, A represents the distance between the management device node and the storage device node, which can be calculated by calculating the difference in longitude and latitude between the two. B represents the storage performance of the storage device node, which is determined by the international hard disk health standard SMART. The presence of hard disk errors / bad sectors, memory errors, and hard disk damage can be determined by referring to the corresponding bits in the disk's FLAG field. When the FLAG field does not reflect these conditions, the hard disk is in a healthy state. Alternatively, specific bits in the hard disk can be detected. When the bit is "1", the hard disk is in a healthy state; when the bit is "0", the hard disk is in another state. C represents the performance of the storage device node and can also indirectly indicate the probability of storage device node failure. D represents the remaining space of the storage device node. Numerically, D is equal to the ratio of the remaining storage space to the design capacity of the storage device node. E represents the instantaneous access speed of the storage device node at a specific time node or the access speed evaluated within a specific time period. All of the above five status data can be measured by the storage device node itself and do not rely on devices or nodes outside the storage device node.
[0062] In the embodiment of the present application, A, B, C, D, and E are all the average values of the observation values of all observation times within the specified time window. Therefore, their corresponding balancing coefficients are also the average values within the specified time window. In the embodiment of the present application, for the convenience of statement, the time window is 30 days and the number of observations is 20 times / day. Those skilled in the art will understand that when it is necessary to obtain instantaneous sensing state data and / or its corresponding balancing coefficient, it is only necessary to reduce the time window length accordingly (for example, the window length is set to 0.05 seconds, and the number of observations is adjusted accordingly, for example, adjusted to 0.01 seconds for 1 observation).
[0063] After obtaining the raw observation data and balancing coefficients of each storage device node, the processor that manages the device node will calculate the score of each node:
[0064] score=A_co×cons_A+B_co×cons_B+C_co×cons_C+D_co×cons_D+E_co×cons_E
[0065] Here, cons_X represents a constant corresponding to the sensing data X. In one embodiment, cons_A=10000; in another embodiment, cons_B=1000; in another embodiment, cons_C=100; in another embodiment, cons_D=10; and in another embodiment, cons_E=1.
[0066] It should be noted that although the balancing coefficients of the raw observation data of each storage device node range from 0 to 4, in the embodiment of the present application, the balancing coefficients of some raw observation data can only take limited values under certain circumstances. Specifically, it is necessary to judge and allocate the balancing coefficients in combination with the first predefined priority list. The allocation rules of the balancing coefficients are: (1) the ones with higher priorities are allocated first, and the ones with lower priorities are allocated in order; (2) the balancing coefficient to be selected for the raw sensing data with the highest priority is determined according to the rules shown in Figures 3a-3e, and then the balancing coefficient to be selected for the next priority order is determined according to the rules shown in Figures 3a-3e, and the balancing coefficient to be selected shall not exceed the balancing coefficient of the previous priority.
[0067] For example, in one embodiment, if a storage device node is newly activated and has good performance, the balancing coefficients of the raw sensing data BE can all reach the highest level. In this case, it is necessary to determine whether the balancing coefficient of the storage device's node geographic location data A has also reached the highest level. If A has also reached the highest level, for example, A = 1, the balancing coefficient of the raw sensing data BE (and A as well) can be 4, and score = 44444. However, if A does not reach the highest level, for example, A = 120, then all raw sensing data requiring subsequent priority can reach the highest level, but since A's balancing coefficient is only 2, BE can only take a value of 2, and score = 22222. For another example, if A = 600, BE can only take a value of 1, and score = 11111. For another example, if A = 50, B's status is "Healthy", C = 250, D = 70, and E = 45, then A_co = 3, B_co = 3, C_co = 0, D_co = 0, and E_co = 0, and the score is 33000. For another example (this example will be explained further below), assume that A = 150, B's status is "Healthy", C = 250, D = 70, and E = 45, then A_co = 2, B_co = 2, C_co = 0, D_co = 0, and E_co = 0, and the score is 22000.
[0068] The above description describes the situation where a user stores data only on a single cloud. In this case, the first predefined priority list contains only one first predefined priority sublist. As described above, if a user requests the allocation of multiple cloud storage nodes, there's no way to ensure that all allocated nodes adhere to the principles of distributed deployment.
[0069] Therefore, a mechanism is also needed that can allocate nodes to users in accordance with the principle of distributed deployment.
[0070] As an example, in an embodiment of the present application, the first predefined priority list includes two first predefined priority sublists. The first first predefined priority sublist corresponds to the embodiment shown in Figures 3a to 3f, while the second first priority sublist uses completely different priorities from the first predefined priority sublist, and the corresponding balancing coefficients are also different, as shown in Figure 3g. The other parameters and balancing coefficient allocation rules of the embodiment shown in Figure 3g are consistent with those of the embodiment shown in Figures 3a to 3f. Assuming A = 150, B is in "healthy" state, C = 250, D = 70, and E = 45, then A_co = 3, B_co = 3, C_co = 0, D_co = 0, and E_co = 0, resulting in a score of 33000. For another example, in Figure 3g, although the storage device node is 500 kilometers away from the user node, which ensures sufficient data security for the user, the transmission speed may be unbearable for the user. Therefore, Figure 3h adjusts the priority of the raw sensed data AE based on the embodiment shown in Figure 3g. Assuming that A = 150, B's status is "System Healthy," C = 250, D = 70, and E = 45, then A_co = 4, B_co = 4, C_co = 0, D_co = 0, and E_co = 0, resulting in a score of 44000. Of course, the first priority sublist shown in FIG3h can also serve as the third first priority sublist in the embodiment shown in FIG3a-3g. That is, in this case, one first priority list includes three first priority sublists, each of which is shown in FIG3a, FIG3g, and FIG3h, respectively. The number of first priority sublists included in a first priority list can be specified by the user of the system described in this application based on actual circumstances. The one or more first user priority sublists shown here are for illustrative purposes only.
[0071] It should be noted that the priority assignments of different first predefined priority sublists are not consistent, and therefore different first predefined priority sublists are not comparable. Therefore, those skilled in the art will understand that when there are N first predefined priority sublists, storage device nodes should be assigned to user devices separately according to each of the N first predefined priority sublists, and there should be at least N storage device nodes ultimately assigned to the user. Also, it should be noted that the priorities of the first predefined priority sublists are not necessarily limited to the embodiment shown in FIG3f. For example, if the user is sensitive to storage speed, the node access speed E of the storage device can be raised to the highest priority; or, if the user is concerned about data integrity, the node health status B of the storage device can be raised to the highest priority, and so on.
[0072] When the scores under each first predefined priority sublist are generated, it means that the first mapping data is generated accordingly. At this time, the first mapping data will be transmitted to the second input port of the management device together with part of the storage device status data. For example, this part of the storage device status data can be, but is not limited to, the transmission speed V between the storage device (node) and the management device (node) (optional, but it is generally measured by sending a standard data test packet during idle time), which can be measured by the storage device (node) sending a test packet to the management device (node) during idle time. This part of the storage device status data is the original data used by the management device (node) to allocate the storage device (node), which is strictly different from the first mapping data processed by the mapping rules, and will be described in detail below.
[0073] Regardless of whether a request for data storage is received from a user device, in a specified time window, the management device will receive multiple first output data data_i1, data_i2...data_ix from a specific storage device node Xi, where ix is a non-zero natural number. These data data_i1, data_i2...data_ix generate multiple scores score_list 1_i1, score_list 1_i2...score_list 1_ix for the first first predefined priority sublist, and generate multiple scores score_list N_i1, score_list N_i2...score_list N_ix for the Nth first predefined priority sublist; the scores of different first predefined priority sublists share the same transmission speed V_i1, V_i2...V_ix. For the first predefined priority sublist, take score_list 1_i1, score_list 1_i2…score_list 1_ix as independent variables and V_i1, V_i2…V_ix as dependent variables, substitute all data into the artificial algorithm, and obtain the mapping relationship f of the first predefined priority sublist of the storage device node Xi. xi-list 1 For the Nth first predefined priority sublist, score_list N_i1, score_list N_i2…score_list N_ix are used as independent variables, and V_i1, V_i2…V_ix are used as dependent variables. All data are substituted into the artificial intelligence algorithm to obtain the mapping relationship f of the Nth first predefined priority sublist of the storage device node Xi. xi-list N .
[0074] In one embodiment, the artificial intelligence algorithm is a supervised linear regression algorithm, and in another embodiment, the artificial intelligence algorithm is a deep neural network DNN; wherein the number of hidden layers of the DNN is 2-3, and the number of neurons in each layer is determined by those skilled in the art according to their needs. For example, those skilled in the art can determine the number of neurons by performing cross-validation multiple times using a standard test data set.
[0075] The embodiment using the linear regression algorithm is friendly to the management device, because according to the spirit of this application, transferring the management device from a cluster of high-performance computer groups to a distributed ordinary home computer / server can solve the problems caused by the over-centralization of the existing distributed storage system management devices. For the technical solution of allocating storage device nodes to the management device, the computational complexity of the linear regression algorithm is low, and the computing power of an ordinary home computer is fully capable of supporting the operation of the linear regression algorithm. However, if DNN is used, due to the high fitting accuracy of DNN, it can fit linear and nonlinear situations (the linear situation is equivalent to only the first layer of neurons in DNN being activated, and the rest of the neurons being inactivated), so it is most beneficial for the load balancing of the distributed storage system. Therefore, in another embodiment of the present application, DNN is used for enterprise servers; and a linear regression algorithm is used for personal computers / enterprise computers.
[0076] In one embodiment, the memory of the storage device (node) further includes a plurality of databases, wherein, illustratively, after the first input port receives the first output data, the first output data is temporarily stored in the first database; and in one embodiment, the second database called by the third computer program is further included, and the second database is used to receive the output result from the artificial intelligence algorithm, i.e., f x1-list 1 ,…...f x1-list N ;……f xi- list 1 ,…...f xi-list N At the same time, when the user device initiates a storage request, the second database will also receive parameters N1, N2, etc. of the second input information sent from the user device.
[0077] At this point, the stage of allocating storage device nodes to user devices will begin. In this stage, the third computer program will call the second database and first exclude the nodes in the second database whose storage capacity is less than N2 (the storage capacity of each storage device node is also included in the first output data. In the embodiment of the present application, the first output data includes not only the first mapping data and the optional transmission speed V between the management device and the storage device, but also the original sensed data of each storage device node such as parameters AE, etc.). Then, among the remaining nodes, N1 nodes are selected. The steps of selecting the nodes are: (1) The statement in the third computer program includes substituting the latest feedback first mapping data (i.e., score) of all remaining nodes into the mapping relationship formula f of each storage device node. x1-list 1 ,…...f x1-list N ;……f xi-list 1 ,…...f xi-list N Thus, the fitting speed V of each storage device node and each first predefined priority sublist under it is obtained. x1-list 1,…...V x1-list N ;……V xi-list 1 ,…...V xi-list N ; (2) for each first predefined priority sublist, find the device corresponding to the maximum value of the fitting speed V in the first predefined priority sublist; (3) continue to select N1-N3 (for general scenarios, N1 is generally 3) devices corresponding to the maximum value of the fitting speed in the selected first predefined priority sublist, where N3 represents the number of first predefined priority sublists, which is a natural number greater than 0 and is generally 2, and wherein, in one embodiment of the present application, the selected first predefined priority sublist is the first predefined priority sublist of the embodiment shown in Figures 3a to 3e; (4) transmit the network addresses of all selected storage device nodes to the user device, or transmit the network address of the user device to all selected storage device nodes, so that the user device and the storage device node establish a connection, completing the storage device node allocation process.
[0078] In the technical solution of the present application, N1 is not necessarily required, and the user may not explicitly enter the number of data copies they need. At this time, the system described in the embodiment of the present application will allocate three storage device nodes to the user, that is, by default, N1=3. The reason why N1=3 is set by default is that under the premise of N1=2, it can be guaranteed to a large extent that the data of a single user can be stored safely, completely and intact in the cloud, and limiting N1=3 can ensure the absolute security of all data of all users. In another embodiment of the present application, the selected first predefined priority sublist is allocated according to the selected allocation table to allocate the device nodes that need to be continued to be allocated, and does not refer to a single selected first predefined priority sublist. It can have multiple selected first predefined priority sublists. For example, for the embodiment with two first priority sublists mentioned above (as shown in Figures 3a and 3g), when N1=3 (N3=2 at this time), the selected allocation table can be as shown in Figure 3i, and its allocation order is sorted from high to low. The later selected first predefined priority sublist cannot select the node that has been selected by the previous selected first predefined priority sublist. At this time, the first priority sublist allocates 1 (or 0) storage device node, and correspondingly, the second priority sublist allocated next can only allocate 0 (or 1) storage device node. By default, the first priority sublist allocates 1 storage device node, and the second priority sublist can only allocate 0 (i.e., no node) storage device node. For another example, for the embodiment with three first priority sublists mentioned above (as shown in Figures 3a, 3g, and 3h), when N1=5 (N3=3 at this time), the selected allocation table can be as shown in Figure 3j, which preferentially allocates the remaining storage device nodes according to the first first priority sublist (which can be divided into 2, 1, or 0 nodes), followed by the second first priority sublist (which can be divided into 0, 1, or 0 nodes), and finally all remaining nodes according to the third priority sublist (which can be divided into 0, 0, or 2 nodes).
[0079] It should be noted that in the embodiments defined in the present application, there will not be a situation where a node is selected in a first predefined priority sublist and then selected in another first predefined priority sublist, because the nodes selected in the above step (2) must be different. Since the evaluations (i.e., balancing coefficients) of the original sensing data in different first predefined priority sublists are opposite, when a device reaches the best in one first predefined priority sublist, it will inevitably reach the worst in another first predefined priority sublist. Therefore, the same device cannot be selected at the same time in step (2); and step (3) is to select multiple devices based on a certain first predefined priority sublist, and the device selected in step (2) must be excluded first, so the problem of repeated selection will not occur.
[0080] Therefore, the process of allocating a node of a storage device to a user device can be summarized as follows, as shown in Figure 4:
[0081] S100: Pre-processing stage, which includes:
[0082] S110: Record the first output data of each storage device node, and extract the score of each storage device node and its transmission speed to the management device (node);
[0083] S120: Inputting the score of each storage device node and the transmission speed to the management device (node) into an artificial intelligence algorithm to obtain a mapping relationship between the score of each storage device node and the transmission speed;
[0084] S200: Node allocation phase, which includes:
[0085] S210: Based on the number of nodes required by the user and the size of the data to be stored, eliminate storage device nodes whose storage capacity does not meet the storage requirements:
[0086] S220: Substituting the most recently obtained scores of the respective storage device nodes into the mapping relationships of the respective storage device nodes, thereby obtaining the fitting speed of the respective storage device nodes;
[0087] S230: Selecting, from each first predefined priority sublist, a storage device node with the highest fitting speed that meets the criteria of the list;
[0088] S240: Based on the allocation of storage device nodes according to the first predefined priority sub-lists, allocate several storage device nodes with the highest fitting speed to the user device according to the selected first predefined priority sub-list.
[0089] As described above, during the entire process, the storage device (node) only needs to monitor its own data, perform addition, subtraction, multiplication and division operations on its own data, report data to the management device (node), and receive data from the user device, and does not involve further operations on the data. Therefore, the storage device no longer requires a high-performance computer for management, making the miniaturization and distributed deployment of the storage device possible. For example, in one embodiment of the present application, a single storage device node is placed in a home or enterprise NAS storage machine, whose first processor is designed as a 4-core 64-bit 1.5GHz ARM processor; in addition to the data space for storing user data, the first memory is also configured to have 2GB of memory and 8GB of eMMC system storage space; the first output port / input port is designed to include a gigabit RJ45 interface; the storage device node also includes a cooling fan. Overall, the computing power of the storage device node is roughly equivalent to that of a mid-range mobile phone, but its single cost does not exceed RMB 800, and the power consumption including the hard disk does not exceed 20W when in operation, the average power consumption is 6W, and only 1W to 2W when in sleep mode. Even running all day, the daily electricity consumption is less than 0.4 yuan. In actual use, it is less than 0.1 yuan. Therefore, the embodiments provided by this application can disperse the originally centralized storage devices to each household, relying on the large number of households to achieve cloud storage of huge amounts of data. If combined with SSD, the power consumption of the storage device node will be further reduced.
[0090] In another embodiment of the present application, the user device may also use the artificial intelligence algorithm and database according to the above embodiment to determine which management device to make a storage request to. In this case, the user device will also become part of the management system described in the embodiment of the present application.
[0091] Since the user device is not clear about the distribution of the various nodes of the management device at the beginning, when formally sending a request, the user device can first send a paging through a flooding method, with the management device node that responds to the paging for the first time as the intermediary node, and request the intermediary node to feedback the information of the management device, such as the first mapping data, the status information of the original sensing of the storage device, etc., which are collectively referred to as the second output data at this time. Then, the artificial intelligence algorithm contained in the fifth computer program of the user device will process the second output data in a similar manner to the second computer program, and according to the definition of the first predefined priority list and the first predefined priority sublist described above, combined with the information stored in the user device's own database called by the sixth computer program, calculate the optimal storage device node for the user device. The specific principles of node allocation of storage devices are not repeated here.
[0092] Similarly, in the user device, there may be a third database similar to the first database, which is used to temporarily store the second output data; and the database called by the sixth computer program can be called the fourth database, and the database that the third processor relies on when allocating nodes is the fourth database.
[0093] It should be noted that since there is no mapping relationship of the second output data in the user device, the user device should divide the received second output data into a training set, a validation set and a data set at this time, first use the training set for training, then use the validation set for verification, and finally, use the trained artificial intelligence network to fit the data set. In an embodiment of the present application, when the time window length is 30 days, the training set takes the data of the past 13-30 days (60% of the sequence length), the validation set takes the data of the past 7-12 days (20% of the sequence length), and the data set takes the data of the past 1-6 days (20% of the sequence length). At this time, the longer the time window length and the more observations, the more conducive it is to accurately fit the data of the current state.
[0094] For the embodiment in which the user device installs the artificial intelligence algorithm and the database, the network topology of this technical solution still corresponds to the topology diagram shown in Figures 1 and 2a; although, after the user device installs the artificial intelligence algorithm and the database, it can also issue instructions to the storage device through the management device, commanding the storage device to actively initiate a connection to itself (Figure 2b), but in fact, doing so is completely unnecessary and increases the technical complexity.
[0095] When user devices are equipped with artificial intelligence algorithms and databases, the management device effectively serves only as a data intermediary and does not need to perform data processing. Therefore, the role of the management device is weakened, and storage device nodes can completely find the optimal storage device node based on the information forwarded by the management device. Therefore, the management device does not need to be a high-performance computer and can be an ordinary home computer, enterprise server, etc., which is more conducive to the distributed deployment of various nodes of the storage system (storage device nodes, management nodes, user nodes), reducing dependence on land, manpower and other hardware facilities.
[0096] Therefore, the process of calculating the best storage device node by the user device can be summarized as follows, as shown in Figure 5
[0097] S300: Data acquisition process, which includes:
[0098] S310: The user equipment initiates paging and establishes a connection with the management device;
[0099] S320: The management device forwards the second output data to the user device;
[0100] S400: Training phase, which includes:
[0101] S410: Inputting the second output data into an artificial intelligence algorithm for training, using the raw sensing data and mapping data of all storage device nodes in the most recent time period as a data set;
[0102] S420: Obtaining a data score of each storage device node at a recent time point, substituting the score into an artificial intelligence algorithm, and determining a fitting speed of each storage device node at that time point;
[0103] S500: Node allocation phase, which includes:
[0104] S510: Based on the number of nodes required by the user and the size of the data to be stored, eliminate storage device nodes whose storage capacity does not meet the storage requirements:
[0105] S520: Substituting the most recently obtained scores of the respective storage device nodes into the mapping relationships of the respective storage device nodes, thereby obtaining the fitting speed of the respective storage device nodes;
[0106] S530: Selecting, from each first predefined priority sublist, a storage device node with the highest fitting speed that meets the criteria of the list;
[0107] S540: Based on the allocation of storage device nodes according to the first predefined priority sub-lists, allocate several storage device nodes with the highest fitting speed to the user device according to the selected first predefined priority sub-list.
[0108] Thanks to the concepts of mapping data and scoring, embodiments of the present application also provide a method for quickly detecting whether an artificial intelligence algorithm has defects, is undertrained, or is overtrained. The principle of this method is to use a standard test data packet from an eighth computer program for testing. First, the nodes of relevant storage devices are selected according to the concept of scoring and prioritization, and the data storage speeds of these storage device nodes are recorded as standard status data. Then, a standard test data packet (verification device group) is sent to all storage device nodes that are capable of storing this data but have not been selected (according to the rules of scoring and prioritization), and the optimal value of the data storage / transmission speed (or other storage device status data) of these storage device nodes is recorded. If this optimal value is better than the majority of the data in the standard status data, for example, if the optimal value is better than 70% or more of the samples in the standard status data, it indicates that there is a problem with the artificial algorithm model. Otherwise, the optimal value should be selected as the standard status data. At this time, the relevant parameters of the artificial algorithm model should be adjusted. For example, for a DNN network, one or more parameters such as the number of neurons, the number of layers, and the window length of the training set should be adjusted; for example, for a linear artificial intelligence algorithm, the length of its fitting data should be adjusted. A standard test threshold value threshold (which is a percentage of 0-100%) can be set, which represents the percentage of the number of standard state data exceeded by the optimal value of the unselected node to the total number of standard state data. When the optimal value exceeds the threshold, for example, when the threshold exceeds 40%, 50%, 60%, 70%, 80%, or 90%, it is considered that there is a problem with the artificial algorithm model and necessary adjustments should be made. After the adjustment, the same standard test data should continue to be used to continue testing it until the optimal value does not exceed the threshold, and then the test is stopped. The seventh computer program always uses the same test data packet during the entire test cycle (which can also be understood as calling the same eighth computer program), and in different tests, for example, different data packets are called.
[0109] For example, in the embodiment of the present application, the internal modules of the storage device, the management device, and the user device (for example, the processors 601a / 601b / 601c and the memories 602a / 602b / 602c) are connected via communication buses 603a / 603b / 603c. Such circuit connections are well known to those skilled in the art, but are not limited thereto, as shown in Figures 6a-6c.
[0110] Embodiments implementing techniques in circuits and / or computer-executable instructions have been described. It will be appreciated that some embodiments may take the form of methods, at least one example of which has been provided. The actions performed as part of the method may be ordered in any suitable manner. Accordingly, embodiments may be constructed in which actions are performed in an order different from that illustrated, which may include performing some actions simultaneously, even though shown as sequential actions in the illustrative embodiments.
[0111] The various aspects of the above-described embodiments may be used alone, in combination, or in various arrangements not specifically discussed in the previously described embodiments, and therefore their application is not limited to the details and arrangements of components set forth in the foregoing description or illustrated in the accompanying drawings. For example, aspects described in one embodiment may be combined in any manner with aspects described in other embodiments.
[0112] The use of ordinal numbers such as "first," "second," "third," etc. in the claims to modify claim elements does not in itself imply any priority, precedence, or order of one claim element relative to another, or the temporal order of the acts of performing the method, but merely serves as a label to distinguish one claim element with a certain name from another element with the same name (but using an ordinal number) to distinguish the claim elements.
[0113] In addition, the phraseology and terminology used herein are for descriptive purposes and should not be considered limiting. The use of "includes," "comprising," "having," "containing," "involving," and variations thereof herein is meant to encompass the items listed thereafter and their equivalents as well as additional items.
[0114] The term "exemplary" is used herein to mean serving as an example, instance, or illustration. Any embodiment, implementation, process, feature, etc. described herein as exemplary should therefore be understood as an illustrative example and not as a preferred or advantageous example unless otherwise indicated.
[0115] Having thus described several aspects of at least one embodiment, it should be understood that various alterations, modifications, and improvements will readily occur to those skilled in the art. Such alterations, modifications, and improvements are intended to be a part of this application and are intended to be within the spirit and scope of the principles described herein. Accordingly, the foregoing description and accompanying drawings are intended to be illustrative only.
Claims
1. A method for managing nodes of a distributed storage device, comprising: receiving first mapping data respectively corresponding to the device status of each node of the storage device, and a storage request sent by a user device; Using an artificial intelligence algorithm on the respective first mapping data of the nodes of all the storage devices to generate a mapping relationship of the nodes of all the storage devices; According to the mapping relationship between the storage request and the node of the storage device, the data requested to be stored by the user device is assigned to the node of the corresponding storage device, and the node location information of the available storage device is sent to the user device; as well as Forwarding the storage request of the user device to a node of a corresponding storage device; The first mapping data includes geographic location data of the nodes of the storage device, and the storage request includes information of the data to be stored and the location of the user device.
2. The method according to claim 1, wherein: The first mapping data further includes at least one of the following: node health status of the storage device, node online time of the storage device, node remaining storage rate of the storage device, or node network speed of the storage device.
3. The method according to claim 1, wherein: The storage request also includes the number of nodes of the backup storage device required by the user, and the number of nodes of the backup storage device is greater than or equal to three.
4. A method for storing data in a node of a distributed storage device, comprising: Sending a storage request or a query request to a management device of a node that manages the storage device; Receiving node location information of available storage devices sent by the management device in response to the storage request and / or query request; According to the node location information of the storage device, a connection request is sent to the management device to establish a connection with a corresponding node of the storage device, so as to send the data to be stored to the corresponding node of the storage device and / or query the data; The storage request includes information about the data to be stored and the location of the user equipment; and The node location information of the storage device is generated based on the storage request and first mapping data of the node of the storage device.
5. The method according to claim 4, wherein: The storage request also includes the number of nodes of the backup storage device, and the number of nodes of the backup storage device is greater than or equal to three.
6. A method for storing data in a node of a distributed storage device, comprising: Monitoring the device status of the nodes of the storage device themselves, and generating first mapping data corresponding to the device status of the nodes of the storage device respectively; Reporting first mapping data of the node of the storage device itself to a management device that manages the node of the storage device; receiving a connection establishment request of a user equipment forwarded by the management device in response to the first mapping data; as well as In response to a connection establishment request from a user equipment, establish a connection with the corresponding user equipment to receive data to be stored transmitted by the user equipment and / or send a query result to the user equipment; Wherein, the first mapping data includes the geographical location of the node of the storage device, The connection establishment request is generated based on a storage request of the user equipment and the first mapping data.
7. The method according to claim 6, wherein: Generating first mapping data corresponding to each node of the storage device includes: Prioritizing the storage device status data according to a first predefined priority list; Allocating a balancing coefficient to each storage device status data according to the priority of each storage device status data; The first mapping data is generated according to the status data of each storage device and the balancing coefficient.
8. The method according to claim 7, wherein: The first predefined priority list further includes at least one first predefined priority sub-list, and the at least one first predefined priority sub-list respectively generates a respective balancing coefficient and first mapping data.
9. The method according to claim 8, wherein: The entries of the first predefined priority list include different types of storage device status data with different priorities, and the corresponding entry of at least one first predefined priority list includes a first predefined priority sub-list that sets the storage device with the geographical location of the user device above 500 kilometers as the highest priority.
10. The method according to claim 6, wherein: The device status data also includes at least one of the following: health status, online time, remaining storage capacity or network speed.
11. The method according to claim 6, further comprising: During an idle period of a node of the storage device, updating the first mapping data, and reporting the updated first mapping data to the management device; or The first mapping data of the nodes of the storage device is periodically updated to the management device.
12. A management device, comprising a memory, a processor, and a computer program stored in the memory and executable by the processor, wherein when the processor executes the computer program, the method for managing nodes of a distributed storage device as described in claims 1 to 3 is implemented.
13. A user device comprising a memory, a processor, and a computer program stored in the memory and executable by the processor, wherein when the processor executes the computer program, the method for storing data in a node of a distributed storage device as described in claims 4 and 5 is implemented.
14. A node of a distributed storage device, comprising a memory, a processor, and a computer program stored in the memory and executable by the processor, wherein when the processor executes the computer program, the method for storing data in a node of a distributed storage device as described in claims 6 to 11 is implemented.
15. A computer-readable storage medium storing a computer-executable program, which, when executed by a processor, implements the method according to claims 1 to 11.
Citation Information
Patent Citations
Method for carrying out data processing by distributed file system and distributed file system
CN103577500A
Distributed storage method and device
CN115617264A
System and method for managing distributed storage system
CN117354328A
Determining a best fit coordinator node in a database as a service infrastructure
US20170295223A1
Data managmenet method for distributed storage system, apparatus, and electronic device
WO2021082868A1