WO2024119775A1 - Raid card node updating method and system, and related apparatus - Google Patents
Raid card node updating method and system, and related apparatus Download PDFInfo
- Publication number
- WO2024119775A1 WO2024119775A1 PCT/CN2023/101696 CN2023101696W WO2024119775A1 WO 2024119775 A1 WO2024119775 A1 WO 2024119775A1 CN 2023101696 W CN2023101696 W CN 2023101696W WO 2024119775 A1 WO2024119775 A1 WO 2024119775A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- node
- cache node
- instruction
- cache
- linked list
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 51
- 238000013507 mapping Methods 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 4
- 230000009467 reduction Effects 0.000 abstract description 17
- 230000004048 modification Effects 0.000 description 12
- 238000012986 modification Methods 0.000 description 12
- 230000008520 organization Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Definitions
- the present application relates to the field of data storage, and in particular to a node updating method, system and related device of a RAID card.
- RAID storage technology In the field of storage, there are currently soft RAID storage technology and hard RAID storage technology in the industry. As the name suggests, soft RAID storage technology uses software to manage stripes and blocks in the RAID array, while hard RAID storage technology (i.e. RAID card) manages data through hardware.
- RAID card controller is added to the RAID card.
- the RAID card controller is a chip composed of a series of components such as I/O processor, disk controller, disk connector and cache.
- the purpose of the present application is to provide a node update method for a RAID card, a node update system for a RAID card, a computer non-volatile readable storage medium and a storage device, which can improve the update efficiency of a RAID array.
- the present application provides a node update method of a RAID card, and the specific technical solution is as follows:
- the node update instruction is an expansion instruction, apply for an idle cache node from the global idle cache node list, and insert the idle cache node into the specified position corresponding to the expansion instruction;
- the target cache node corresponding to the shrinking instruction is deleted in the bidirectional linked list metadata, and the deleted target cache node is released back to the global free cache node linked list.
- a lookup table is generated according to the mapping relationship and stored in the cache node; wherein the lookup table is used to maintain the mapping relationship between the logical address of the volume and the physical address in the RAID card.
- the cache node includes a cache node ID, a lookup table, a pointer to a cache area, a pointer to a previous cache node, and a pointer to a next cache node.
- mapping relationship between volumes and blocks is stored in the lookup table of the corresponding cache node.
- the command to obtain the RAID array creation command includes:
- the method further includes:
- modifying the pointer information in the cache node corresponding to the specified position includes:
- the front pointer of the cache node to be inserted is pointed to the cache node before the specified position, and the back pointer of the cache node to be inserted is pointed to the cache node after the specified position.
- modifying the pointer information in the cache node corresponding to the specified position also includes:
- the following further includes:
- the pointer information in the cache node before and after modifying the target cache node includes:
- the back pointer of the previous cache node of the target cache node is pointed to the next cache node of the target cache node, and the front pointer of the next cache node of the target cache node is pointed to the previous cache node of the target cache node.
- the bidirectional linked list metadata generated according to the RAID array creation command includes:
- the bidirectional linked list metadata after creating the bidirectional linked list metadata based on the mapping relationship between volumes and blocks, it also includes:
- the doubly linked list metadata is stored in the cache node's lookup table.
- generating a global free cache node linked list according to a RAID array creation command includes:
- the RAID card controller is used to generate a global free cache node linked list according to a RAID array creation command.
- applying for an idle cache node from the global idle cache node list includes:
- the node update instruction is an expansion instruction
- the number of nodes corresponding to the expansion node is determined, and idle cache nodes that meet the number of nodes are applied for from the global idle cache node list.
- applying for an idle cache node from the global idle cache node list includes:
- the node update instruction is an expansion instruction
- the node parameters corresponding to the expansion node are determined, and an idle cache node that meets the node parameters is applied for from the global idle cache node list.
- deleting the target cache node corresponding to the shrink instruction in the bidirectional linked list metadata includes:
- the node update instruction is a shrink instruction, determine the target node position of the target cache node corresponding to the instruction;
- the present application also provides a node update system for a RAID card, comprising:
- a type detection module which is used to determine the update type of the node update instruction when the node update instruction is intentionally detected
- the expansion module is used to apply for an idle cache node from a global idle cache node list if the node update instruction is an expansion instruction, and insert the idle cache node into a designated position corresponding to the expansion instruction;
- the shrinking module is used to delete the target cache node corresponding to the shrinking instruction in the bidirectional linked list metadata if the node update instruction is a shrinking instruction, and release the deleted target cache node back to the global free cache node linked list.
- the lookup table generation module is used to obtain user command parameters; determine the mapping relationship between at least two blocks and the volume; generate a lookup table based on the mapping relationship and store it in the cache node; wherein the lookup table is used to maintain the mapping relationship between the logical address of the volume and the physical address in the RAID card.
- the cache node includes a cache node ID, a lookup table, a pointer to a cache area, a pointer to a previous cache node, and a pointer to a next cache node.
- RAID control module used to obtain RAID array creation command; generate a bidirectional chain according to the RAID array creation command Table metadata; Generate a global free cache node list according to the RAID array creation command.
- the storage module is used to store the mapping relationship between the volume and the block in the lookup table of the corresponding cache node.
- the RAID control module includes:
- the command acquisition unit is used to use the RAID card controller to acquire the RAID array creation command sent by the host.
- the pointer modification module is used to modify the pointer information in the cache node corresponding to the specified position.
- the pointer modification module is a module for pointing the front pointer of the cache node to be inserted into the cache node to the previous cache node at the specified position, and for pointing the back pointer of the cache node to be inserted into the cache node to the next cache node at the specified position.
- the second pointer modification module is used to modify the pointer information of the previous cache node and the next cache node of the specified position.
- the third pointer modification module is used to modify the pointer information in the cache nodes before and after the target cache node.
- the pointer modification module is a module for pointing the back pointer of the previous cache node of the target cache node to the next cache node of the target cache node, and pointing the front pointer of the next cache node of the target cache node to the previous cache node of the target cache node.
- the RAID control module includes:
- the bidirectional linked list creation unit is used to parse the RAID array creation command, confirm the mapping relationship between the volume and the block; and create the bidirectional linked list metadata according to the mapping relationship between the volume and the block.
- the bidirectional linked list storage unit is used to store the bidirectional linked list metadata in the lookup table of the cache node.
- the RAID control module includes:
- the global free cache node linked list creation unit is used to generate a global free cache node linked list according to a RAID array creation command by using a RAID card controller.
- the expansion module is a module used to determine the number of nodes corresponding to the expansion node if the node update instruction is an expansion instruction, and to apply for free cache nodes that meet the number of nodes from a global free cache node linked list.
- the expansion module is a module used to determine node parameters corresponding to the expansion node if the node update instruction is an expansion instruction, and to apply for an idle cache node that meets the node parameters from a global idle cache node linked list.
- the shrinking module is a module used to determine the target node position of the target cache node corresponding to the instruction if the node update instruction is a shrinking instruction; and to delete the target cache node corresponding to the target node position in the bidirectional linked list metadata.
- the present application also provides a computer non-volatile readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the steps of the above method are implemented.
- the present application also provides a storage device, including a memory and a processor, wherein a computer program is stored in the memory, and the steps of the above method are implemented when the processor calls the computer program in the memory.
- the present application provides a node update method for a RAID card, comprising: when a node update instruction is detected, determining the update type of the node update instruction; if the node update instruction is an expansion instruction, applying for a free cache node from a global free cache node linked list, and inserting the free cache node into a specified position corresponding to the expansion instruction; if the node update instruction is a reduction instruction, deleting a target cache node corresponding to the reduction instruction in metadata of a bidirectional linked list, and releasing the deleted target cache node back to the global free cache node linked list.
- This application uses a two-way linked list metadata organization method to manage cache nodes. There is no need to move a large amount of data when inserting or deleting cache nodes. It not only simplifies the algorithm, but also greatly reduces the CPU resource utilization rate. At the same time, it can greatly improve the rate of online expansion and online reduction of the RAID array. In addition, since this application can improve the cache performance of the RAID card, it can effectively reduce the risk probability of inconsistency of stripes in the RAID array. And this application is not only applicable to online expansion and online reduction of RAID cards, but also to soft RAID storage technology.
- the present application also provides a node update system for a RAID card, a computer non-volatile readable storage medium, and a storage device, which have the above-mentioned beneficial effects and will not be described in detail here.
- FIG1 is a schematic diagram of a cache node structure provided by the present application.
- FIG2 is a schematic diagram of managing cache nodes using one-dimensional linear table metadata provided by the present application.
- FIG3 is a flow chart of a node updating method of a RAID card provided in an embodiment of the present application.
- FIG4 is a schematic diagram of an online expansion cache node of a RAID array provided in an embodiment of the present application.
- FIG5 is a schematic diagram of the structure of a node update system of a RAID card provided in an embodiment of the present application
- FIG6 is a schematic diagram of the structure of a storage device provided by the present application.
- FIG. 1 is a schematic diagram of managing cache nodes using one-dimensional linear list metadata.
- cache node [cache node [100 indicates a one-dimensional linear list metadata organization method.
- the existing RAID card controller in the industry will generate a cache node for managing cache when creating a RAID array, and manage the cache node in a one-dimensional linear table metadata organization method.
- the RAID card controller creates a RAID5 array consisting of 4 member disks, and the mapping relationship between the volume maintained by the cache node and the RAID array is shown by the arrow in Figure 1. It should be noted that at least two strips in the stripe (201 in Figure 1 indicates stripe 0) are located on different physical disks.
- the mapping relationship between at least two strips and the volume will be determined according to the command parameters entered by the user, and the mapping relationship will be generated into a lookup table and stored in the cache node.
- the lookup table maintains the mapping relationship between the host I/O (input/output) request LBA (logical block address) address and the storage medium PBA (physical block address) address in the RAID array.
- the LBA address of the host I/O request is the LBA address of the volume.
- the write strategy is the WB (write-back) strategy
- the cache module in the RAID card controller temporarily stores the write I/O data in the cache and immediately sends a data write completion signal to the host.
- the write I/O data in the cache will be concurrently written to each disk in the RAID array by multiple threads in the thread pool.
- each cache node has its own cache node ID field, which plays an identification role.
- the cache node maintains a pointer to the cache area, which points to the specific area in the cache where the write I/O data needs to be temporarily stored.
- the mapping relationship maintained by the lookup table field in the cache node will change.
- the one-dimensional linear table metadata indicated by 100 in Figure 2 also needs to first move cache node [3], cache node [4], and cache node [5] backward by one cache node position, that is, it is necessary to write these three cache nodes to adjacent positions in sequence, and then write cache node [6] to the position indicated by 105 in Figure 2.
- FIG. 3 is a flow chart of a node update method of a RAID card provided in an embodiment of the present application, the method comprising:
- the update type of the node update instruction should include at least two types: expansion instruction and reduction instruction, that is, increasing cache nodes or reducing cache nodes.
- the node update instruction is a capacity expansion instruction
- an idle cache node is requested from a global idle cache node linked list, and the idle cache node is inserted into a designated position corresponding to the capacity expansion instruction.
- the target cache node corresponding to the shrinking instruction is deleted in the bidirectional linked list metadata, and the deleted target cache node is released back to the global free cache node.
- a feasible method may include the following steps:
- Step 1 Get the RAID array creation command
- Step 2 Generate bidirectional linked list metadata according to the RAID array creation command
- Step 3 Generate a global free cache node list according to the RAID array creation command.
- the RAID array creation command can be parsed to confirm the mapping relationship between the volume and the block, and then the bidirectional linked list metadata is created according to the mapping relationship between the volume and the block. Thereafter, the bidirectional linked list metadata can be stored in the lookup table of the cache node.
- the bidirectional linked list metadata and the global free cache node linked list may not have a predetermined generation order, and the two may be generated one after the other or simultaneously.
- the RAID card controller may be used to generate the global free cache node linked list according to the RAID array creation command.
- the bidirectional linked list metadata may also be generated using the RAID card controller.
- the cache node maintains a mapping relationship between the logical address of the volume and the physical address in the RAID card, that is, a lookup table, which can be generated according to user command parameters.
- the cache node in this embodiment may include a cache node ID, a lookup table, a pointer to the cache area, a pointer to the previous cache node, and a pointer to the next cache node.
- the pointer to the next cache node points to the next cache node in the doubly linked list and may also be referred to as a back pointer.
- the pointer to the previous cache node points to the previous cache node in the bidirectional linked list, which can also be called the front pointer.
- the front pointer of the cache node to be inserted points to the previous cache node of the specified position
- the back pointer of the cache node to be inserted points to the next cache node of the specified position
- the pointer information of the front and back cache nodes also needs to be modified, that is, the pointer information of the previous cache node and the next cache node at the specified position is modified respectively.
- the back pointer of the cache node before the target cache node can be pointed to the next cache node of the target cache node
- the front pointer of the cache node after the target cache node can be pointed to the previous cache node of the target cache node.
- the RAID card maintains a global free cache node list.
- a cache node needs to be inserted during online capacity expansion of the RAID array, an application for a free cache node is made from the global free cache node list.
- the deleted cache node is released back to the global free cache node list.
- the number of nodes corresponding to the expanded node can be determined first, and idle cache nodes that meet the number of nodes can be applied for from the global idle cache node list.
- Node parameters corresponding to the expanded node can also be determined, and idle cache nodes that meet the node parameters can be applied for from the global idle cache node list.
- the target node position of the target cache node corresponding to the instruction is determined, and the target cache node corresponding to the target node position is deleted in the bidirectional linked list metadata. At this time, the deleted target node can be released back to the global free cache node linked list so that it can continue to be used when the expansion is performed later.
- This application uses a two-way linked list metadata organization method to manage cache nodes. There is no need to move a large amount of data when inserting or deleting cache nodes. It not only simplifies the algorithm, but also greatly reduces the CPU resource utilization rate. At the same time, it can greatly improve the rate of online expansion and online reduction of the RAID array. In addition, since this application can improve the cache performance of the RAID card, it can effectively reduce the risk probability of inconsistency of stripes in the RAID array. And this application is not only applicable to online expansion and online reduction of RAID cards, but also to soft RAID storage technology.
- FIG 4 is a schematic diagram of a RAID array online expansion cache node provided by an embodiment of the present application.
- 200 indicates a lookup table, that is, the lookup_table (field name) field, which is used to maintain the mapping relationship between volume (volume name) and strip blocks in the RAID array.
- the data cache host indicated by 201 corresponds to the cache_ptr (field name) field, which points to the specific area where write I/O data needs to be temporarily stored in the cache.
- the front pointer and the back pointer introduced above indicated by 202 can correspond to the pre_pointer (field name) field and the next_pointer (field name) field.
- cache nodes [3], [4], and [5] do not need to be written to adjacent locations in sequence, that is, there is no need to move a large amount of data. Instead, they are requested from the global free cache node list.
- the two cache nodes are cache node [6] and cache node [7] in Figure 6.
- the back pointer of cache node [2] points to cache node [6]
- the front pointer of cache node [3] points to cache node [6].
- the front pointer of cache node [6] points to cache node [2]
- the back pointer of cache node [6] points to cache node [3].
- the method of managing cache nodes using a bidirectional linked list metadata organization method in the present application does not require a large amount of mobile data. Instead, it simplifies the algorithm process through the application of pointers and greatly reduces the CPU usage rate.
- the method proposed in the present application can improve the cache performance of the RAID card, thereby effectively reducing the risk probability of inconsistent stripes in the RAID array.
- Step 1 The RAID card controller parses the command issued by the user to create a RAID array.
- Step 2 The RAID card controller generates a bidirectional linked list metadata and a global free cache node linked list.
- Step 3 The RAID card controller stores the mapping relationship between the generated volume and strip blocks in the lookup table of the cache node managed by the bidirectional linked list metadata organization method.
- Step 4 When issuing a node update instruction, determine the update type of the node update instruction.
- Step 5 If the capacity is expanded online, the RAID card controller generates a new volume-to-strip mapping relationship and stores this mapping relationship in the cache node's lookup table.
- Step 6 Apply for an idle cache node from the global idle cache node list maintained by the RAID card.
- Step 7 Insert the idle cache node into the specified position of the cache node managed by the bidirectional linked list metadata organization method.
- a node updating system for a RAID card provided in an embodiment of the present application is introduced below.
- the node updating system for a RAID card described below and a node updating method for a RAID card described above can refer to each other.
- FIG. 5 is a schematic diagram of a node update system structure of a RAID card provided in an embodiment of the present application.
- the present application further provides a node update system of a RAID card, including:
- a type detection module which is used to determine the update type of the node update instruction when the node update instruction is intentionally detected
- the expansion module is used to apply for an idle cache node from a global idle cache node list if the node update instruction is an expansion instruction, and insert the idle cache node into a designated position corresponding to the expansion instruction;
- the shrinking module is used to delete the target cache node corresponding to the shrinking instruction in the bidirectional linked list metadata if the node update instruction is a shrinking instruction, and release the deleted target cache node back to the global free cache node linked list.
- the embodiment of the present application realizes the management of cache nodes by using a bidirectional linked list metadata organization method through an application type detection module, a capacity expansion module and a capacity reduction module.
- the lookup table generation module is used to obtain user command parameters; determine the mapping relationship between at least two blocks and the volume; generate a lookup table based on the mapping relationship and store it in the cache node; wherein the lookup table is used to maintain the mapping relationship between the logical address of the volume and the physical address in the RAID card.
- the cache node includes a cache node ID, a lookup table, a pointer to a cache area, a pointer to a previous cache node, and a pointer to a next cache node.
- the RAID control module is used to obtain a RAID array creation command; generate a bidirectional linked list metadata according to the RAID array creation command; and generate a global free cache node linked list according to the RAID array creation command.
- the storage module is used to store the mapping relationship between the volume and the block in the lookup table of the corresponding cache node.
- the RAID control module includes:
- the command acquisition unit is used to use the RAID card controller to acquire the RAID array creation command sent by the host.
- the pointer modification module is used to modify the pointer information in the cache node corresponding to the specified position.
- the pointer modification module is a module for pointing the front pointer of the cache node to be inserted into the cache node to the previous cache node at the specified position, and pointing the back pointer of the cache node to be inserted into the cache node to the next cache node at the specified position.
- the second pointer modification module is used to modify the pointer information of the previous cache node and the next cache node of the specified position.
- the third pointer modification module is used to modify the pointer information in the cache nodes before and after the target cache node.
- the pointer modification module is a module used to point the back pointer of the previous cache node of the target cache node to the next cache node of the target cache node, and to point the front pointer of the next cache node of the target cache node to the previous cache node of the target cache node.
- the RAID control module includes:
- the bidirectional linked list creation unit is used to parse the RAID array creation command and confirm the mapping relationship between volumes and blocks; Create a doubly linked list metadata based on the mapping relationship between the blocks.
- the bidirectional linked list storage unit is used to store the bidirectional linked list metadata in the lookup table of the cache node.
- the RAID control module includes:
- the global free cache node linked list creation unit is used to generate a global free cache node linked list according to a RAID array creation command by using a RAID card controller.
- the expansion module is a module used to determine the number of nodes corresponding to the expansion node if the node update instruction is an expansion instruction, and apply for free cache nodes that meet the number of nodes from the global free cache node list.
- the expansion module is a module for determining the node parameters corresponding to the expansion node if the node update instruction is an expansion instruction, and applying for an idle cache node that meets the node parameters from the global idle cache node list.
- the shrinking module is a module for determining the target node position of the target cache node corresponding to the instruction if the node update instruction is a shrinking instruction; and deleting the target cache node corresponding to the target node position in the bidirectional linked list metadata.
- the present application also provides a computer non-volatile readable storage medium, on which a computer program is stored, and when the computer program is executed, the steps provided in the above embodiment can be implemented.
- the storage medium may include: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and other media that can store program codes.
- the present application also provides a storage device, which may include a memory and a processor.
- a computer program is stored in the memory.
- the processor calls the computer program in the memory, the steps of the method provided in the above embodiment can be implemented.
- the storage device may also include various network interfaces, power supplies and other components.
- Figure 6, is a schematic diagram of the structure of a storage device provided in an embodiment of the present application.
- the storage device of this embodiment may include: a processor 2101 and a memory 2102.
- the storage device may further include a communication interface 2103 , an input unit 2104 , a display 2105 , and a communication bus 2106 .
- the processor 2101 , the memory 2102 , the communication interface 2103 , the input unit 2104 , and the display 2105 all communicate with each other via the communication bus 2106 .
- the processor 2101 may be a central processing unit (CPU), a specific application integrated circuit, a digital signal processor, a readily available programmable gate array, or other programmable logic device. wait.
- CPU central processing unit
- specific application integrated circuit a specific application integrated circuit
- digital signal processor a readily available programmable gate array, or other programmable logic device. wait.
- the processor may call the program stored in the memory 2102. Specifically, the processor may execute the operations executed by the storage device in the above embodiment.
- the memory 2102 is used to store one or more programs, which may include program codes, and the program codes include computer operation instructions.
- the memory at least stores programs for implementing the following functions:
- the node update instruction is an expansion instruction, apply for an idle cache node from the global idle cache node list, and insert the idle cache node into the specified position corresponding to the expansion instruction;
- the target cache node corresponding to the shrinking instruction is deleted in the bidirectional linked list metadata, and the deleted target cache node is released back to the global free cache node linked list.
- the memory 2102 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and an application required for at least one function, etc.; the data storage area may store data created during the use of the computer.
- the memory 2102 may include a high-speed random access memory and may also include a non-volatile memory, such as at least one disk storage device or other volatile solid-state storage device.
- the communication interface 2103 may be an interface of a communication module, such as an interface of a GSM module.
- the present application may further include a display 2105 and an input unit 2104 and the like.
- the structure of the storage device shown in FIG6 does not constitute a limitation on the storage device in the embodiment of the present application.
- the storage device may include more or fewer components than those shown in FIG6, or combine certain components.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
A RAID card node updating method, which comprises: when detecting a node update instruction, determining an update type of the node update instruction (S101); if the node update instruction is a capacity expansion instruction, applying for an idle cache node from a global idle cache node linked list, and inserting the idle cache node into a designated position corresponding to the capacity expansion instruction (S102); and if the node update instruction is a capacity reduction instruction, deleting from bidirectional linked list metadata a target cache node corresponding to the capacity reduction instruction, and releasing the deleted target cache node back to the global idle cache nodes (S103). The invention greatly reduces CPU resource utilization and greatly increases the rate of RAID array online capacity expansion and online capacity reduction. Additionally provided are a RAID card node updating system, a non-volatile computer readable storage medium, and a storage device.
Description
相关申请的交叉引用CROSS-REFERENCE TO RELATED APPLICATIONS
本申请要求于2022年12月06日提交中国专利局,申请号为202211554112.2,申请名称为“一种RAID卡的节点更新方法、系统及相关装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims priority to a Chinese patent application filed with the China Patent Office on December 6, 2022, with application number 202211554112.2, and entitled “A node update method, system and related device for a RAID card”, the entire contents of which are incorporated by reference in this application.
本申请涉及数据存储领域,特别涉及一种RAID卡的节点更新方法、系统及相关装置。The present application relates to the field of data storage, and in particular to a node updating method, system and related device of a RAID card.
在存储领域,目前业界有软RAID存储技术和硬RAID存储技术,软RAID存储技术顾名思义就是对RAID阵列中条带stripe和分块strip的管理都使用软件实现,而硬RAID存储技术(即RAID卡)对数据的管理是通过硬件实现。在RAID卡中增加RAID卡控制器,RAID卡控制器是一颗芯片,由I/O处理器、磁盘控制器、磁盘连接器和缓存等一系列组件组成。In the field of storage, there are currently soft RAID storage technology and hard RAID storage technology in the industry. As the name suggests, soft RAID storage technology uses software to manage stripes and blocks in the RAID array, while hard RAID storage technology (i.e. RAID card) manages data through hardware. A RAID card controller is added to the RAID card. The RAID card controller is a chip composed of a series of components such as I/O processor, disk controller, disk connector and cache.
由于业界使用一维线性表元数据组织方式管理缓存节点,导致对缓存节点的插入、删除非常繁琐,需要大量移动数据,不仅降低RAID卡的缓存性能同时导致RAID阵列在线扩容和在线缩容过程变慢,影响用户业务,致使用户体验下降。Since the industry uses a one-dimensional linear table metadata organization method to manage cache nodes, the insertion and deletion of cache nodes is very cumbersome and requires a large amount of data movement. This not only reduces the cache performance of the RAID card, but also slows down the online expansion and reduction of the RAID array, affecting user business and causing a decline in user experience.
发明内容Summary of the invention
本申请的目的是提供一种RAID卡的节点更新方法、RAID卡的节点更新系统、计算机非易失性可读存储介质和存储设备,能够提高RAID阵列的更新效率。The purpose of the present application is to provide a node update method for a RAID card, a node update system for a RAID card, a computer non-volatile readable storage medium and a storage device, which can improve the update efficiency of a RAID array.
为解决上述技术问题,本申请提供一种RAID卡的节点更新方法,具体技术方案如下:In order to solve the above technical problems, the present application provides a node update method of a RAID card, and the specific technical solution is as follows:
检测到节点更新指令时,确定节点更新指令的更新类型;When a node update instruction is detected, determining an update type of the node update instruction;
若节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点,并将空闲缓存节点插入至扩容指令对应的指定位置;If the node update instruction is an expansion instruction, apply for an idle cache node from the global idle cache node list, and insert the idle cache node into the specified position corresponding to the expansion instruction;
若节点更新指令为缩容指令,在双向链表元数据中删除缩容指令对应的目标缓存节点,并将被删除的目标缓存节点释放回全局空闲缓存节点链表。If the node update instruction is a shrinking instruction, the target cache node corresponding to the shrinking instruction is deleted in the bidirectional linked list metadata, and the deleted target cache node is released back to the global free cache node linked list.
可选的,检测到节点更新指令之前,还包括:
Optionally, before detecting the node update instruction, the following is also included:
获取用户命令参数;Get user command parameters;
确定至少两个分块与卷的映射关系;Determine a mapping relationship between at least two blocks and a volume;
根据映射关系生成查找表并存于缓存节点;其中,查找表用于维护卷的逻辑地址与RAID卡中物理地址的映射关系。A lookup table is generated according to the mapping relationship and stored in the cache node; wherein the lookup table is used to maintain the mapping relationship between the logical address of the volume and the physical address in the RAID card.
可选的,缓存节点包括缓存节点ID、查找表、指向缓存区的指针、指向前一个缓存节点的指针和指向后一个缓存节点的指针。Optionally, the cache node includes a cache node ID, a lookup table, a pointer to a cache area, a pointer to a previous cache node, and a pointer to a next cache node.
可选的,还包括:Optionally, also include:
获取RAID阵列创建命令;Get the RAID array creation command;
根据RAID阵列创建命令生成双向链表元数据;Generate bidirectional linked list metadata according to the RAID array creation command;
根据RAID阵列创建命令生成全局空闲缓存节点链表。Generate a global free cache node list according to the RAID array creation command.
可选的,根据RAID阵列创建命令生成双向链表元数据和全局空闲缓存节点链表之后,还包括:Optionally, after generating the bidirectional linked list metadata and the global free cache node linked list according to the RAID array creation command, the following is further included:
将卷和分块的映射关系存储在对应缓存节点的查找表中。The mapping relationship between volumes and blocks is stored in the lookup table of the corresponding cache node.
可选的,获取RAID阵列创建命令包括:Optionally, the command to obtain the RAID array creation command includes:
利用RAID卡控制器获取主机下发的RAID阵列创建命令。Use the RAID card controller to obtain the RAID array creation command issued by the host.
可选的,将空闲缓存节点插入至扩容指令对应的指定位置后,还包括:Optionally, after inserting the idle cache node into the specified position corresponding to the capacity expansion instruction, the method further includes:
修改指定位置对应缓存节点中的指针信息。Modify the pointer information in the cache node corresponding to the specified position.
可选的,修改指定位置对应缓存节点中的指针信息包括:Optionally, modifying the pointer information in the cache node corresponding to the specified position includes:
将要插入缓存节点的前指针指向指定位置的前一个缓存节点,并将要插入缓存节点的后指针指向指定位置的后一个缓存节点。The front pointer of the cache node to be inserted is pointed to the cache node before the specified position, and the back pointer of the cache node to be inserted is pointed to the cache node after the specified position.
可选的,修改指定位置对应缓存节点中的指针信息时还包括:Optionally, modifying the pointer information in the cache node corresponding to the specified position also includes:
修改指定位置前一个缓存节点和后一个缓存节点的指针信息。Modify the pointer information of the previous cache node and the next cache node at the specified location.
可选的,在双向链表元数据中删除缩容指令对应的目标缓存节点之后,还包括:Optionally, after deleting the target cache node corresponding to the shrink instruction in the bidirectional linked list metadata, the following further includes:
修改目标缓存节点前后缓存节点中的指针信息。Modify the pointer information in the cache nodes before and after the target cache node.
可选的,修改目标缓存节点前后缓存节点中的指针信息包括:Optionally, the pointer information in the cache node before and after modifying the target cache node includes:
将目标缓存节点前一个缓存节点的后指针指向目标缓存节点的后一个缓存节点,并将目标缓存节点后一个缓存节点的前指针指向目标缓存节点的前一个缓存节点。The back pointer of the previous cache node of the target cache node is pointed to the next cache node of the target cache node, and the front pointer of the next cache node of the target cache node is pointed to the previous cache node of the target cache node.
可选的,根据RAID阵列创建命令生成双向链表元数据包括:Optionally, the bidirectional linked list metadata generated according to the RAID array creation command includes:
解析RAID阵列创建命令,确认卷和分块的映射关系;Parse the RAID array creation command and confirm the mapping relationship between volumes and blocks;
根据卷和分块的映射关系创建双向链表元数据。
Create a bidirectional linked list metadata based on the mapping relationship between volumes and blocks.
可选的,根据卷和分块的映射关系创建双向链表元数据之后,还包括:Optionally, after creating the bidirectional linked list metadata based on the mapping relationship between volumes and blocks, it also includes:
将双向链表元数据存于缓存节点的查找表。The doubly linked list metadata is stored in the cache node's lookup table.
可选的,根据RAID阵列创建命令生成全局空闲缓存节点链表包括:Optionally, generating a global free cache node linked list according to a RAID array creation command includes:
利用RAID卡控制器根据RAID阵列创建命令生成全局空闲缓存节点链表。The RAID card controller is used to generate a global free cache node linked list according to a RAID array creation command.
可选的,若节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点包括:Optionally, if the node update instruction is a capacity expansion instruction, applying for an idle cache node from the global idle cache node list includes:
若节点更新指令为扩容指令,确定扩容节点对应的节点数量,并从全局空闲缓存节点链表中申请满足节点数量的空闲缓存节点。If the node update instruction is an expansion instruction, the number of nodes corresponding to the expansion node is determined, and idle cache nodes that meet the number of nodes are applied for from the global idle cache node list.
可选的,若节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点包括:Optionally, if the node update instruction is a capacity expansion instruction, applying for an idle cache node from the global idle cache node list includes:
若节点更新指令为扩容指令,确定扩容节点对应的节点参数,并从全局空闲缓存节点链表中申请符合节点参数的空闲缓存节点。If the node update instruction is an expansion instruction, the node parameters corresponding to the expansion node are determined, and an idle cache node that meets the node parameters is applied for from the global idle cache node list.
可选的,若节点更新指令为缩容指令,在双向链表元数据中删除缩容指令对应的目标缓存节点包括:Optionally, if the node update instruction is a shrink instruction, deleting the target cache node corresponding to the shrink instruction in the bidirectional linked list metadata includes:
若节点更新指令为缩容指令,确定指令对应的目标缓存节点的目标节点位置;If the node update instruction is a shrink instruction, determine the target node position of the target cache node corresponding to the instruction;
在双向链表元数据中删除目标节点位置对应的目标缓存节点。Delete the target cache node corresponding to the target node position in the bidirectional linked list metadata.
本申请还提供一种RAID卡的节点更新系统,包括:The present application also provides a node update system for a RAID card, comprising:
类型检测模块,用故意检测到节点更新指令时,确定节点更新指令的更新类型;A type detection module, which is used to determine the update type of the node update instruction when the node update instruction is intentionally detected;
扩容模块,用于若节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点,并将空闲缓存节点插入至扩容指令对应的指定位置;The expansion module is used to apply for an idle cache node from a global idle cache node list if the node update instruction is an expansion instruction, and insert the idle cache node into a designated position corresponding to the expansion instruction;
缩容模块,用于若节点更新指令为缩容指令,在双向链表元数据中删除缩容指令对应的目标缓存节点,并将被删除的目标缓存节点释放回全局空闲缓存节点链表。The shrinking module is used to delete the target cache node corresponding to the shrinking instruction in the bidirectional linked list metadata if the node update instruction is a shrinking instruction, and release the deleted target cache node back to the global free cache node linked list.
可选的,还包括:Optionally, also include:
查找表生成模块,用于获取用户命令参数;确定至少两个分块与卷的映射关系;根据映射关系生成查找表并存于缓存节点;其中,查找表用于维护卷的逻辑地址与RAID卡中物理地址的映射关系。The lookup table generation module is used to obtain user command parameters; determine the mapping relationship between at least two blocks and the volume; generate a lookup table based on the mapping relationship and store it in the cache node; wherein the lookup table is used to maintain the mapping relationship between the logical address of the volume and the physical address in the RAID card.
可选的,缓存节点包括缓存节点ID、查找表、指向缓存区的指针、指向前一个缓存节点的指针和指向后一个缓存节点的指针。Optionally, the cache node includes a cache node ID, a lookup table, a pointer to a cache area, a pointer to a previous cache node, and a pointer to a next cache node.
可选的,还包括:Optionally, also include:
RAID控制模块,用于获取RAID阵列创建命令;根据RAID阵列创建命令生成双向链
表元数据;根据RAID阵列创建命令生成全局空闲缓存节点链表。RAID control module, used to obtain RAID array creation command; generate a bidirectional chain according to the RAID array creation command Table metadata; Generate a global free cache node list according to the RAID array creation command.
可选的,还包括:Optionally, also include:
存储模块,用于将卷和分块的映射关系存储在对应缓存节点的查找表中。The storage module is used to store the mapping relationship between the volume and the block in the lookup table of the corresponding cache node.
可选的,RAID控制模块包括:Optionally, the RAID control module includes:
命令获取单元,用于利用RAID卡控制器获取主机下发的RAID阵列创建命令。The command acquisition unit is used to use the RAID card controller to acquire the RAID array creation command sent by the host.
可选的,还包括:Optionally, also include:
指针修改模块,用于修改指定位置对应缓存节点中的指针信息。The pointer modification module is used to modify the pointer information in the cache node corresponding to the specified position.
可选的,指针修改模块为用于将要插入缓存节点的前指针指向指定位置的前一个缓存节点,并将要插入缓存节点的后指针指向指定位置的后一个缓存节点的模块。Optionally, the pointer modification module is a module for pointing the front pointer of the cache node to be inserted into the cache node to the previous cache node at the specified position, and for pointing the back pointer of the cache node to be inserted into the cache node to the next cache node at the specified position.
可选的,还包括:Optionally, also include:
第二指针修改模块,用于修改指定位置前一个缓存节点和后一个缓存节点的指针信息。The second pointer modification module is used to modify the pointer information of the previous cache node and the next cache node of the specified position.
可选的,还包括:Optionally, also include:
第三指针修改模块,用于修改目标缓存节点前后缓存节点中的指针信息。The third pointer modification module is used to modify the pointer information in the cache nodes before and after the target cache node.
可选的,指针修改模块为用于将目标缓存节点前一个缓存节点的后指针指向目标缓存节点的后一个缓存节点,并将目标缓存节点后一个缓存节点的前指针指向目标缓存节点的前一个缓存节点的模块。Optionally, the pointer modification module is a module for pointing the back pointer of the previous cache node of the target cache node to the next cache node of the target cache node, and pointing the front pointer of the next cache node of the target cache node to the previous cache node of the target cache node.
可选的,RAID控制模块包括:Optionally, the RAID control module includes:
双向链表创建单元,用于解析RAID阵列创建命令,确认卷和分块的映射关系;根据卷和分块的映射关系创建双向链表元数据。The bidirectional linked list creation unit is used to parse the RAID array creation command, confirm the mapping relationship between the volume and the block; and create the bidirectional linked list metadata according to the mapping relationship between the volume and the block.
可选的,还包括:Optionally, also include:
双向链表存储单元,用于将双向链表元数据存于缓存节点的查找表。The bidirectional linked list storage unit is used to store the bidirectional linked list metadata in the lookup table of the cache node.
可选的,RAID控制模块包括:Optionally, the RAID control module includes:
全局空闲缓存节点链表创建单元,用于利用RAID卡控制器根据RAID阵列创建命令生成全局空闲缓存节点链表。The global free cache node linked list creation unit is used to generate a global free cache node linked list according to a RAID array creation command by using a RAID card controller.
可选的,扩容模块为用于若节点更新指令为扩容指令,确定扩容节点对应的节点数量,并从全局空闲缓存节点链表中申请满足节点数量的空闲缓存节点的模块。Optionally, the expansion module is a module used to determine the number of nodes corresponding to the expansion node if the node update instruction is an expansion instruction, and to apply for free cache nodes that meet the number of nodes from a global free cache node linked list.
可选的,扩容模块为用于若节点更新指令为扩容指令,确定扩容节点对应的节点参数,并从全局空闲缓存节点链表中申请符合节点参数的空闲缓存节点的模块。Optionally, the expansion module is a module used to determine node parameters corresponding to the expansion node if the node update instruction is an expansion instruction, and to apply for an idle cache node that meets the node parameters from a global idle cache node linked list.
可选的,缩容模块为用于若节点更新指令为缩容指令,确定指令对应的目标缓存节点的目标节点位置;在双向链表元数据中删除目标节点位置对应的目标缓存节点的模块。
Optionally, the shrinking module is a module used to determine the target node position of the target cache node corresponding to the instruction if the node update instruction is a shrinking instruction; and to delete the target cache node corresponding to the target node position in the bidirectional linked list metadata.
本申请还提供一种计算机非易失性可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上的方法的步骤。The present application also provides a computer non-volatile readable storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the steps of the above method are implemented.
本申请还提供一种存储设备,包括存储器和处理器,存储器中存有计算机程序,处理器调用存储器中的计算机程序时实现如上的方法的步骤。The present application also provides a storage device, including a memory and a processor, wherein a computer program is stored in the memory, and the steps of the above method are implemented when the processor calls the computer program in the memory.
本申请提供一种RAID卡的节点更新方法,包括:检测到节点更新指令时,确定节点更新指令的更新类型;若节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点,并将空闲缓存节点插入至扩容指令对应的指定位置;若节点更新指令为缩容指令,在双向链表元数据中删除缩容指令对应的目标缓存节点,并将被删除的目标缓存节点释放回全局空闲缓存节点链表。The present application provides a node update method for a RAID card, comprising: when a node update instruction is detected, determining the update type of the node update instruction; if the node update instruction is an expansion instruction, applying for a free cache node from a global free cache node linked list, and inserting the free cache node into a specified position corresponding to the expansion instruction; if the node update instruction is a reduction instruction, deleting a target cache node corresponding to the reduction instruction in metadata of a bidirectional linked list, and releasing the deleted target cache node back to the global free cache node linked list.
本申请利用双向链表元数据组织方式管理缓存节点,插入或删除缓存节点时无需大量移动数据,不仅起到简化算法的作用,而且极大降低了CPU资源使用率,同时能够大大提升RAID阵列在线扩容和在线缩容的速率。此外,本申请由于可以提高RAID卡的缓存性能,从而有效降低RAID阵列中条带stripe的不一致风险概率。且本申请不仅适用于RAID卡在线扩容和在线缩容,同时也适用于软RAID存储技术。This application uses a two-way linked list metadata organization method to manage cache nodes. There is no need to move a large amount of data when inserting or deleting cache nodes. It not only simplifies the algorithm, but also greatly reduces the CPU resource utilization rate. At the same time, it can greatly improve the rate of online expansion and online reduction of the RAID array. In addition, since this application can improve the cache performance of the RAID card, it can effectively reduce the risk probability of inconsistency of stripes in the RAID array. And this application is not only applicable to online expansion and online reduction of RAID cards, but also to soft RAID storage technology.
本申请还提供一种RAID卡的节点更新系统、计算机非易失性可读存储介质和存储设备,具有上述有益效果,此处不再赘述。The present application also provides a node update system for a RAID card, a computer non-volatile readable storage medium, and a storage device, which have the above-mentioned beneficial effects and will not be described in detail here.
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are merely embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without paying any creative work.
图1为本申请提供的缓存节点结构示意图;FIG1 is a schematic diagram of a cache node structure provided by the present application;
图2为本申请提供的利用一维线性表元数据管理缓存节点示意图;FIG2 is a schematic diagram of managing cache nodes using one-dimensional linear table metadata provided by the present application;
图3为本申请实施例所提供的一种RAID卡的节点更新方法的流程图;FIG3 is a flow chart of a node updating method of a RAID card provided in an embodiment of the present application;
图4为本申请实施例提供的一种RAID阵列在线扩容缓存节点的示意图;FIG4 is a schematic diagram of an online expansion cache node of a RAID array provided in an embodiment of the present application;
图5为本申请实施例所提供的一种RAID卡的节点更新系统结构示意图;FIG5 is a schematic diagram of the structure of a node update system of a RAID card provided in an embodiment of the present application;
图6为本申请提供的一种存储设备结构示意图。FIG6 is a schematic diagram of the structure of a storage device provided by the present application.
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the technical solution in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. Obviously, the described embodiments are part of the embodiments of the present application, not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
参见图1,图1为利用一维线性表元数据管理缓存节点示意图,图1中,缓存节点[缓存节点[100指示的是一维线性表元数据组织方式。Refer to FIG. 1 , which is a schematic diagram of managing cache nodes using one-dimensional linear list metadata. In FIG. 1 , cache node [cache node [100 indicates a one-dimensional linear list metadata organization method.
目前业界现有的RAID卡控制器,在创建RAID阵列时会生成一个管理缓存的缓存节点,采用一维线性表元数据组织方式管理缓存节点。如图1所示,RAID卡控制器创建一个由4块成员盘组成的RAID5阵列,缓存节点维护的volume卷到RAID阵列映射关系如图1中箭头所示。需要注意的是,条带stripe(图1中201指示条带0)中的至少两个分块strip位于不同的物理磁盘上,在创建RAID阵列时会根据用户输入的命令参数确定至少两个分块strip与卷volume的映射关系,并将该映射关系生成查找表存储在缓存节点中,实际上查找表维护的是主机I/O(输入/输出)请求LBA(逻辑区块地址)地址与RAID阵列中存储介质PBA(物理区块地址)地址的映射关系,主机I/O请求的LBA地址也就是卷volume的LBA地址。当写入策略为WB(回写)策略时,RAID卡控制器中的缓存模块将写I/O数据暂存在缓存后,立即向主机发送数据写入完成信号,缓存中的写I/O数据会被线程池中多个线程并发的写入RAID阵列中的各个磁盘中。At present, the existing RAID card controller in the industry will generate a cache node for managing cache when creating a RAID array, and manage the cache node in a one-dimensional linear table metadata organization method. As shown in Figure 1, the RAID card controller creates a RAID5 array consisting of 4 member disks, and the mapping relationship between the volume maintained by the cache node and the RAID array is shown by the arrow in Figure 1. It should be noted that at least two strips in the stripe (201 in Figure 1 indicates stripe 0) are located on different physical disks. When creating a RAID array, the mapping relationship between at least two strips and the volume will be determined according to the command parameters entered by the user, and the mapping relationship will be generated into a lookup table and stored in the cache node. In fact, the lookup table maintains the mapping relationship between the host I/O (input/output) request LBA (logical block address) address and the storage medium PBA (physical block address) address in the RAID array. The LBA address of the host I/O request is the LBA address of the volume. When the write strategy is the WB (write-back) strategy, the cache module in the RAID card controller temporarily stores the write I/O data in the cache and immediately sends a data write completion signal to the host. The write I/O data in the cache will be concurrently written to each disk in the RAID array by multiple threads in the thread pool.
其中,每个缓存节点都有自己的缓存节点ID字段,起到标识作用。缓存节点中维护了指向缓存区的指针,其指向写I/O数据需要暂存到缓存中的具体区域。在执行RAID阵列在线扩容或在线缩容的业务逻辑时,缓存节点中的查找表字段维护的映射关系会发生更改。参见图2,图2中100同样指示的一维线性表元数据,其需要先将缓存节点[3]、缓存节点[4]、缓存节点[5]向后移动一个缓存节点的位置,即需要将这三个缓存节点依次写入相邻位置,然后将缓存节点[6]写入图2中105指示的位置。综上可以观察到,使用一维线性表元数据组织方式管理缓存节点,不仅消耗大量CPU(中央处理器)资源,而且降低RAID卡的缓存性能致使RAID阵列在线扩容和在线缩容过程变慢,降低用户体验。与此同时,如果用户为了降低给主机的响应延迟而选择写I/O数据策略为WB策略,没有选择WT(直写)策略,在RAID卡需要处理大量的主机I/O请求时,由于上述较低的RAID卡缓存性能,最终将极大的增加RAID阵列中条带stripe的不一致风险概率。Among them, each cache node has its own cache node ID field, which plays an identification role. The cache node maintains a pointer to the cache area, which points to the specific area in the cache where the write I/O data needs to be temporarily stored. When executing the business logic of online expansion or online reduction of the RAID array, the mapping relationship maintained by the lookup table field in the cache node will change. Referring to Figure 2, the one-dimensional linear table metadata indicated by 100 in Figure 2 also needs to first move cache node [3], cache node [4], and cache node [5] backward by one cache node position, that is, it is necessary to write these three cache nodes to adjacent positions in sequence, and then write cache node [6] to the position indicated by 105 in Figure 2. In summary, it can be observed that using a one-dimensional linear table metadata organization method to manage cache nodes not only consumes a large amount of CPU (central processing unit) resources, but also reduces the cache performance of the RAID card, causing the online expansion and online reduction process of the RAID array to slow down, reducing the user experience. At the same time, if the user chooses the WB strategy for writing I/O data in order to reduce the response delay to the host, and does not choose the WT (write-through) strategy, when the RAID card needs to process a large number of host I/O requests, due to the above-mentioned low RAID card cache performance, the risk probability of inconsistency of stripes in the RAID array will eventually increase greatly.
为解决上述技术问题,请参考图3,图3为本申请实施例所提供的一种RAID卡的节点更新方法的流程图,该方法包括:
To solve the above technical problem, please refer to FIG. 3 , which is a flow chart of a node update method of a RAID card provided in an embodiment of the present application, the method comprising:
S101:检测到节点更新指令时,确定节点更新指令的更新类型;S101: When a node update instruction is detected, determining an update type of the node update instruction;
S102:若节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点,并将空闲缓存节点插入至扩容指令对应的指定位置;S102: If the node update instruction is a capacity expansion instruction, apply for an idle cache node from a global idle cache node linked list, and insert the idle cache node into a designated position corresponding to the capacity expansion instruction;
S103:若节点更新指令为缩容指令,在双向链表元数据中删除缩容指令对应的目标缓存节点,并将被删除的目标缓存节点释放回全局空闲缓存节点链表。S103: If the node update instruction is a shrink instruction, the target cache node corresponding to the shrink instruction is deleted from the metadata of the bidirectional linked list, and the deleted target cache node is released back to the global free cache node linked list.
在此对于如何检测到节点更新指令不作限定,其可以在存在节点更新需求时自动生成,也可以由用户通过主机下发节点更新指令。同时在此对于节点更新指令的具体内容不作限定,具体内容应视其更新类型而定。节点更新指令的更新类型应至少包含扩容指令和缩容指令两种,即增加缓存节点或者减少缓存节点。There is no limitation on how to detect the node update instruction. It can be automatically generated when there is a node update demand, or the user can send the node update instruction through the host. At the same time, there is no limitation on the specific content of the node update instruction, which should depend on its update type. The update type of the node update instruction should include at least two types: expansion instruction and reduction instruction, that is, increasing cache nodes or reducing cache nodes.
下文针对扩容指令和缩容指令分别进行说明:The following describes the expansion and reduction instructions respectively:
在节点更新指令为扩容指令时,从全局空闲缓存节点链表中申请空闲缓存节点,并将空闲缓存节点插入至扩容指令对应的指定位置。When the node update instruction is a capacity expansion instruction, an idle cache node is requested from a global idle cache node linked list, and the idle cache node is inserted into a designated position corresponding to the capacity expansion instruction.
而在节点更新指令为缩容指令时,在双向链表元数据中删除缩容指令对应的目标缓存节点,并将被删除的目标缓存节点释放回全局空闲缓存节点。When the node update instruction is a shrinking instruction, the target cache node corresponding to the shrinking instruction is deleted in the bidirectional linked list metadata, and the deleted target cache node is released back to the global free cache node.
本实施例默认在执行该过程前,需要先生成全局空闲缓存节点链表。在此对于如何生成全局空闲缓存节点链表不作限定。一种可行的方式可以包括如下步骤:This embodiment assumes that before executing the process, a global idle cache node list needs to be generated. There is no limitation on how to generate the global idle cache node list. A feasible method may include the following steps:
第一步、获取RAID阵列创建命令;Step 1: Get the RAID array creation command;
第二步、根据RAID阵列创建命令生成双向链表元数据;Step 2: Generate bidirectional linked list metadata according to the RAID array creation command;
第三步、根据RAID阵列创建命令生成全局空闲缓存节点链表。Step 3: Generate a global free cache node list according to the RAID array creation command.
在生成双向链表元数据时,可以解析RAID阵列创建命令,确认卷和分块的映射关系,再根据卷和分块的映射关系创建双向链表元数据。此后,可以将双向链表元数据存于缓存节点的查找表。When generating the bidirectional linked list metadata, the RAID array creation command can be parsed to confirm the mapping relationship between the volume and the block, and then the bidirectional linked list metadata is created according to the mapping relationship between the volume and the block. Thereafter, the bidirectional linked list metadata can be stored in the lookup table of the cache node.
当然在其他实施例中,双向链表元数据和全局空闲缓存节点链表可并无既定的生成顺序,二者可由先后生成,也可同步生成。在创建时,可以利用RAID卡控制器根据RAID阵列创建命令生成全局空闲缓存节点链表。同理,也可以利用RAID卡控制器生成双向链表元数据。Of course, in other embodiments, the bidirectional linked list metadata and the global free cache node linked list may not have a predetermined generation order, and the two may be generated one after the other or simultaneously. When creating, the RAID card controller may be used to generate the global free cache node linked list according to the RAID array creation command. Similarly, the bidirectional linked list metadata may also be generated using the RAID card controller.
此外,缓存节点中维护了卷的逻辑地址和RAID卡中物理地址的映射关系,即查找表,可以根据用户命令参数生成该查找表。本实施例中的缓存节点可以包括缓存节点ID、查找表、指向缓存区的指针、指向前一个缓存节点的指针和指向后一个缓存节点的指针。In addition, the cache node maintains a mapping relationship between the logical address of the volume and the physical address in the RAID card, that is, a lookup table, which can be generated according to user command parameters. The cache node in this embodiment may include a cache node ID, a lookup table, a pointer to the cache area, a pointer to the previous cache node, and a pointer to the next cache node.
指向下一个缓存节点的指针是指向双向链表中的下一个缓存节点,也可以称为后指针。
同理指向前一个缓存节点的指针是指向双向链表中的前一个缓存节点,也可以称为前指针。这样在对成员盘扩容时,例如将4块成员盘构成的RAID5阵列在线扩容成5块成员盘时,就不需要大量的移动缓存节点,只需将要插入的缓存节点插入指定位置。而将空闲缓存节点插入至扩容指令对应的指定位置后,需要修改指定位置对应缓存节点中的指针信息。即将要插入缓存节点的前指针指向指定位置的前一个缓存节点,并将要插入缓存节点的后指针指向指定位置的后一个缓存节点。同理,前后缓存节点的指针信息也需要修改,即分别修改指定位置前一个缓存节点和后一个缓存节点的指针信息。具体的,可以将目标缓存节点前一个缓存节点的后指针指向目标缓存节点的后一个缓存节点,并将目标缓存节点后一个缓存节点的前指针指向目标缓存节点的前一个缓存节点。The pointer to the next cache node points to the next cache node in the doubly linked list and may also be referred to as a back pointer. Similarly, the pointer to the previous cache node points to the previous cache node in the bidirectional linked list, which can also be called the front pointer. In this way, when expanding the member disk, for example, when expanding the RAID5 array composed of 4 member disks to 5 member disks online, there is no need to move a large number of cache nodes, and only the cache node to be inserted needs to be inserted into the specified position. After inserting the idle cache node into the specified position corresponding to the expansion instruction, the pointer information in the cache node corresponding to the specified position needs to be modified. That is, the front pointer of the cache node to be inserted points to the previous cache node of the specified position, and the back pointer of the cache node to be inserted points to the next cache node of the specified position. Similarly, the pointer information of the front and back cache nodes also needs to be modified, that is, the pointer information of the previous cache node and the next cache node at the specified position is modified respectively. Specifically, the back pointer of the cache node before the target cache node can be pointed to the next cache node of the target cache node, and the front pointer of the cache node after the target cache node can be pointed to the previous cache node of the target cache node.
RAID卡维护一个全局空闲缓存节点链表,当RAID阵列在线扩容时需要插入缓存节点时,向全局空闲缓存节点链表申请空闲的缓存节点,同理当RAID阵列在线缩容时需要删除缓存节点,将删除的缓存节点释放回全局空闲缓存节点链表中。The RAID card maintains a global free cache node list. When a cache node needs to be inserted during online capacity expansion of the RAID array, an application for a free cache node is made from the global free cache node list. Similarly, when a cache node needs to be deleted during online capacity reduction of the RAID array, the deleted cache node is released back to the global free cache node list.
具体的,在扩容时,可以先确定扩容节点对应的节点数量,并从全局空闲缓存节点链表中申请满足节点数量的空闲缓存节点。也可以确定扩容节点对应的节点参数,并从全局空闲缓存节点链表中申请符合节点参数的空闲缓存节点。Specifically, when expanding capacity, the number of nodes corresponding to the expanded node can be determined first, and idle cache nodes that meet the number of nodes can be applied for from the global idle cache node list. Node parameters corresponding to the expanded node can also be determined, and idle cache nodes that meet the node parameters can be applied for from the global idle cache node list.
同理,若节点更新指令为缩容指令,确定指令对应的目标缓存节点的目标节点位置,从而在双向链表元数据中删除目标节点位置对应的目标缓存节点。此时,被删除的目标节点,可以释放回到全局空闲缓存节点链表中,以便在后续执行扩容是继续应用。Similarly, if the node update instruction is a shrinking instruction, the target node position of the target cache node corresponding to the instruction is determined, and the target cache node corresponding to the target node position is deleted in the bidirectional linked list metadata. At this time, the deleted target node can be released back to the global free cache node linked list so that it can continue to be used when the expansion is performed later.
本申请利用双向链表元数据组织方式管理缓存节点,插入或删除缓存节点时无需大量移动数据,不仅起到简化算法的作用,而且极大降低了CPU资源使用率,同时能够大大提升RAID阵列在线扩容和在线缩容的速率。此外,本申请由于可以提高RAID卡的缓存性能,从而有效降低RAID阵列中条带stripe的不一致风险概率。且本申请不仅适用于RAID卡在线扩容和在线缩容,同时也适用于软RAID存储技术。This application uses a two-way linked list metadata organization method to manage cache nodes. There is no need to move a large amount of data when inserting or deleting cache nodes. It not only simplifies the algorithm, but also greatly reduces the CPU resource utilization rate. At the same time, it can greatly improve the rate of online expansion and online reduction of the RAID array. In addition, since this application can improve the cache performance of the RAID card, it can effectively reduce the risk probability of inconsistency of stripes in the RAID array. And this application is not only applicable to online expansion and online reduction of RAID cards, but also to soft RAID storage technology.
参见图4,图4为本申请实施例提供的一种RAID阵列在线扩容缓存节点的示意图,图4中200指示的为查找表,也即lookup_table(字段名)字段,用于维护volume(卷名)卷到RAID阵列中strip分块的映射关系。201指示的数据缓存地主,对应cache_ptr(字段名)字段,是指向写I/O数据需要暂存到缓存中的具体区域。202指示的上文中介绍的前指针和后指针,可以对应pre_pointer(字段名)字段和next_pointer(字段名)字段。See Figure 4, which is a schematic diagram of a RAID array online expansion cache node provided by an embodiment of the present application. In Figure 4, 200 indicates a lookup table, that is, the lookup_table (field name) field, which is used to maintain the mapping relationship between volume (volume name) and strip blocks in the RAID array. The data cache host indicated by 201 corresponds to the cache_ptr (field name) field, which points to the specific area where write I/O data needs to be temporarily stored in the cache. The front pointer and the back pointer introduced above indicated by 202 can correspond to the pre_pointer (field name) field and the next_pointer (field name) field.
由图4可知,在RAID阵列在线扩容过程中,缓存节点[3]、缓存节点[4]和缓存节点[5]不需要依次向后写入相邻位置,即不需要大量移动数据。而是从全局空闲缓存节点链表中申请
两个缓存节点即图6中的缓存节点[6]和缓存节点[7],操作缓存节点[2]的后指针指向缓存节点[6],缓存节点[3]的前指针指向缓存节点[6],然后操作缓存节点[6]的前指针指向缓存节点[2],缓存节点[6]的后指针指向缓存节点[3]。由此可以看出,本申请使用双向链表元数据组织方式管理缓存节点的方法,不需要大量移动数据,而是通过对指针的应用,简化了算法流程,而且极大的降低CUP使用率。此外,在RAID卡执行在线扩容和在线缩容业务逻辑时,本申请提出的方法由于可以提高RAID卡的缓存性能,从而有效降低RAID阵列中条带的不一致风险概率。As shown in Figure 4, during the online expansion of the RAID array, cache nodes [3], [4], and [5] do not need to be written to adjacent locations in sequence, that is, there is no need to move a large amount of data. Instead, they are requested from the global free cache node list. The two cache nodes are cache node [6] and cache node [7] in Figure 6. The back pointer of cache node [2] points to cache node [6], and the front pointer of cache node [3] points to cache node [6]. Then the front pointer of cache node [6] points to cache node [2], and the back pointer of cache node [6] points to cache node [3]. It can be seen from this that the method of managing cache nodes using a bidirectional linked list metadata organization method in the present application does not require a large amount of mobile data. Instead, it simplifies the algorithm process through the application of pointers and greatly reduces the CPU usage rate. In addition, when the RAID card executes the online expansion and online reduction business logic, the method proposed in the present application can improve the cache performance of the RAID card, thereby effectively reducing the risk probability of inconsistent stripes in the RAID array.
则在上文的基础上,本申请的一种具体的实施过程可以如下:Based on the above, a specific implementation process of this application can be as follows:
第一步:RAID卡控制器解析用户下发的创建RAID阵列命令。Step 1: The RAID card controller parses the command issued by the user to create a RAID array.
第二步:RAID卡控制器生成双向链表元数据和全局空闲缓存节点链表。Step 2: The RAID card controller generates a bidirectional linked list metadata and a global free cache node linked list.
第三步:RAID卡控制器将生成的volume卷与strip分块的映射关系存放在双向链表元数据组织方式管理的缓存节点的查找表中。Step 3: The RAID card controller stores the mapping relationship between the generated volume and strip blocks in the lookup table of the cache node managed by the bidirectional linked list metadata organization method.
第四步:节点更新指令时,确定节点更新指令的更新类型。Step 4: When issuing a node update instruction, determine the update type of the node update instruction.
第五步:如果是在线扩容,则RAID卡控制器生成新的volume卷到strip分块映射关系,并将这个映射关系存入缓存节点的查找表中。Step 5: If the capacity is expanded online, the RAID card controller generates a new volume-to-strip mapping relationship and stores this mapping relationship in the cache node's lookup table.
第六步:从RAID卡维护的全局空闲缓存节点链表中申请空闲的缓存节点。Step 6: Apply for an idle cache node from the global idle cache node list maintained by the RAID card.
第七步:操作空闲的缓存节点插入到双向链表元数据组织方式管理的缓存节点的指定位置。Step 7: Insert the idle cache node into the specified position of the cache node managed by the bidirectional linked list metadata organization method.
下面对本申请实施例提供的一种RAID卡的节点更新系统进行介绍,下文描述的RAID卡的节点更新系统与上文描述的一种RAID卡的节点更新方法可相互对应参照。A node updating system for a RAID card provided in an embodiment of the present application is introduced below. The node updating system for a RAID card described below and a node updating method for a RAID card described above can refer to each other.
参见图5,图5为本申请实施例所提供的一种RAID卡的节点更新系统结构示意图,本申请还提供一种RAID卡的节点更新系统,包括:Referring to FIG. 5 , FIG. 5 is a schematic diagram of a node update system structure of a RAID card provided in an embodiment of the present application. The present application further provides a node update system of a RAID card, including:
类型检测模块,用故意检测到节点更新指令时,确定节点更新指令的更新类型;A type detection module, which is used to determine the update type of the node update instruction when the node update instruction is intentionally detected;
扩容模块,用于若节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点,并将空闲缓存节点插入至扩容指令对应的指定位置;The expansion module is used to apply for an idle cache node from a global idle cache node list if the node update instruction is an expansion instruction, and insert the idle cache node into a designated position corresponding to the expansion instruction;
缩容模块,用于若节点更新指令为缩容指令,在双向链表元数据中删除缩容指令对应的目标缓存节点,并将被删除的目标缓存节点释放回全局空闲缓存节点链表。The shrinking module is used to delete the target cache node corresponding to the shrinking instruction in the bidirectional linked list metadata if the node update instruction is a shrinking instruction, and release the deleted target cache node back to the global free cache node linked list.
本申请实施例通过应用类型检测模块、扩容模块和缩容模块,实现了利用双向链表元数据组织方式管理缓存节点,插入或删除缓存节点时无需大量移动数据,不仅起到简化算法的
作用,而且极大降低了CPU资源使用率,同时能够大大提升RAID阵列在线扩容和在线缩容的速率。The embodiment of the present application realizes the management of cache nodes by using a bidirectional linked list metadata organization method through an application type detection module, a capacity expansion module and a capacity reduction module. When inserting or deleting a cache node, there is no need to move a large amount of data, which not only simplifies the algorithm, but also It not only greatly reduces the CPU resource usage, but also greatly improves the rate of online expansion and online reduction of the RAID array.
基于上述实施例,作为优选的实施例,还包括:Based on the above embodiments, as a preferred embodiment, it also includes:
查找表生成模块,用于获取用户命令参数;确定至少两个分块与卷的映射关系;根据映射关系生成查找表并存于缓存节点;其中,查找表用于维护卷的逻辑地址与RAID卡中物理地址的映射关系。The lookup table generation module is used to obtain user command parameters; determine the mapping relationship between at least two blocks and the volume; generate a lookup table based on the mapping relationship and store it in the cache node; wherein the lookup table is used to maintain the mapping relationship between the logical address of the volume and the physical address in the RAID card.
基于上述实施例,作为优选的实施例,缓存节点包括缓存节点ID、查找表、指向缓存区的指针、指向前一个缓存节点的指针和指向后一个缓存节点的指针。Based on the above embodiments, as a preferred embodiment, the cache node includes a cache node ID, a lookup table, a pointer to a cache area, a pointer to a previous cache node, and a pointer to a next cache node.
基于上述实施例,作为优选的实施例,还包括:Based on the above embodiments, as a preferred embodiment, it also includes:
RAID控制模块,用于获取RAID阵列创建命令;根据RAID阵列创建命令生成双向链表元数据;根据RAID阵列创建命令生成全局空闲缓存节点链表。The RAID control module is used to obtain a RAID array creation command; generate a bidirectional linked list metadata according to the RAID array creation command; and generate a global free cache node linked list according to the RAID array creation command.
基于上述实施例,作为优选的实施例,还包括:Based on the above embodiments, as a preferred embodiment, it also includes:
存储模块,用于将卷和分块的映射关系存储在对应缓存节点的查找表中。The storage module is used to store the mapping relationship between the volume and the block in the lookup table of the corresponding cache node.
基于上述实施例,作为优选的实施例,RAID控制模块包括:Based on the above embodiment, as a preferred embodiment, the RAID control module includes:
命令获取单元,用于利用RAID卡控制器获取主机下发的RAID阵列创建命令。The command acquisition unit is used to use the RAID card controller to acquire the RAID array creation command sent by the host.
基于上述实施例,作为优选的实施例,还包括:Based on the above embodiments, as a preferred embodiment, it also includes:
指针修改模块,用于修改指定位置对应缓存节点中的指针信息。The pointer modification module is used to modify the pointer information in the cache node corresponding to the specified position.
基于上述实施例,作为优选的实施例,指针修改模块为用于将要插入缓存节点的前指针指向指定位置的前一个缓存节点,并将要插入缓存节点的后指针指向指定位置的后一个缓存节点的模块。Based on the above embodiments, as a preferred embodiment, the pointer modification module is a module for pointing the front pointer of the cache node to be inserted into the cache node to the previous cache node at the specified position, and pointing the back pointer of the cache node to be inserted into the cache node to the next cache node at the specified position.
基于上述实施例,作为优选的实施例,还包括:Based on the above embodiments, as a preferred embodiment, it also includes:
第二指针修改模块,用于修改指定位置前一个缓存节点和后一个缓存节点的指针信息。The second pointer modification module is used to modify the pointer information of the previous cache node and the next cache node of the specified position.
基于上述实施例,作为优选的实施例,还包括:Based on the above embodiments, as a preferred embodiment, it also includes:
第三指针修改模块,用于修改目标缓存节点前后缓存节点中的指针信息。The third pointer modification module is used to modify the pointer information in the cache nodes before and after the target cache node.
基于上述实施例,作为优选的实施例,指针修改模块为用于将目标缓存节点前一个缓存节点的后指针指向目标缓存节点的后一个缓存节点,并将目标缓存节点后一个缓存节点的前指针指向目标缓存节点的前一个缓存节点的模块。Based on the above embodiments, as a preferred embodiment, the pointer modification module is a module used to point the back pointer of the previous cache node of the target cache node to the next cache node of the target cache node, and to point the front pointer of the next cache node of the target cache node to the previous cache node of the target cache node.
基于上述实施例,作为优选的实施例,RAID控制模块包括:Based on the above embodiment, as a preferred embodiment, the RAID control module includes:
双向链表创建单元,用于解析RAID阵列创建命令,确认卷和分块的映射关系;根据卷
和分块的映射关系创建双向链表元数据。The bidirectional linked list creation unit is used to parse the RAID array creation command and confirm the mapping relationship between volumes and blocks; Create a doubly linked list metadata based on the mapping relationship between the blocks.
基于上述实施例,作为优选的实施例,还包括:Based on the above embodiments, as a preferred embodiment, it also includes:
双向链表存储单元,用于将双向链表元数据存于缓存节点的查找表。The bidirectional linked list storage unit is used to store the bidirectional linked list metadata in the lookup table of the cache node.
基于上述实施例,作为优选的实施例,RAID控制模块包括:Based on the above embodiment, as a preferred embodiment, the RAID control module includes:
全局空闲缓存节点链表创建单元,用于利用RAID卡控制器根据RAID阵列创建命令生成全局空闲缓存节点链表。The global free cache node linked list creation unit is used to generate a global free cache node linked list according to a RAID array creation command by using a RAID card controller.
基于上述实施例,作为优选的实施例,扩容模块为用于若节点更新指令为扩容指令,确定扩容节点对应的节点数量,并从全局空闲缓存节点链表中申请满足节点数量的空闲缓存节点的模块。Based on the above embodiments, as a preferred embodiment, the expansion module is a module used to determine the number of nodes corresponding to the expansion node if the node update instruction is an expansion instruction, and apply for free cache nodes that meet the number of nodes from the global free cache node list.
基于上述实施例,作为优选的实施例,扩容模块为用于若节点更新指令为扩容指令,确定扩容节点对应的节点参数,并从全局空闲缓存节点链表中申请符合节点参数的空闲缓存节点的模块。Based on the above embodiments, as a preferred embodiment, the expansion module is a module for determining the node parameters corresponding to the expansion node if the node update instruction is an expansion instruction, and applying for an idle cache node that meets the node parameters from the global idle cache node list.
基于上述实施例,作为优选的实施例,缩容模块为用于若节点更新指令为缩容指令,确定指令对应的目标缓存节点的目标节点位置;在双向链表元数据中删除目标节点位置对应的目标缓存节点的模块。Based on the above embodiments, as a preferred embodiment, the shrinking module is a module for determining the target node position of the target cache node corresponding to the instruction if the node update instruction is a shrinking instruction; and deleting the target cache node corresponding to the target node position in the bidirectional linked list metadata.
本申请还提供了一种计算机非易失性可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。The present application also provides a computer non-volatile readable storage medium, on which a computer program is stored, and when the computer program is executed, the steps provided in the above embodiment can be implemented. The storage medium may include: a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and other media that can store program codes.
本申请还提供了一种存储设备,可以包括存储器和处理器,存储器中存有计算机程序,处理器调用存储器中的计算机程序时,可以实现上述实施例所提供的方法的步骤。当然存储设备还可以包括各种网络接口,电源等组件。请参见图6,图6为本申请实施例所提供的一种存储设备的结构示意图,本实施例的存储设备可以包括:处理器2101和存储器2102。The present application also provides a storage device, which may include a memory and a processor. A computer program is stored in the memory. When the processor calls the computer program in the memory, the steps of the method provided in the above embodiment can be implemented. Of course, the storage device may also include various network interfaces, power supplies and other components. Please refer to Figure 6, which is a schematic diagram of the structure of a storage device provided in an embodiment of the present application. The storage device of this embodiment may include: a processor 2101 and a memory 2102.
可选的,该存储设备还可以包括通信接口2103、输入单元2104和显示器2105和通信总线2106。Optionally, the storage device may further include a communication interface 2103 , an input unit 2104 , a display 2105 , and a communication bus 2106 .
处理器2101、存储器2102、通信接口2103、输入单元2104、显示器2105、均通过通信总线2106完成相互间的通信。The processor 2101 , the memory 2102 , the communication interface 2103 , the input unit 2104 , and the display 2105 all communicate with each other via the communication bus 2106 .
在本申请实施例中,该处理器2101,可以为中央处理器(Central Processing Unit,CPU),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件
等。In the embodiment of the present application, the processor 2101 may be a central processing unit (CPU), a specific application integrated circuit, a digital signal processor, a readily available programmable gate array, or other programmable logic device. wait.
该处理器可以调用存储器2102中存储的程序。具体的,处理器可以执行上文的实施例中存储设备所执行的操作。The processor may call the program stored in the memory 2102. Specifically, the processor may execute the operations executed by the storage device in the above embodiment.
存储器2102中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,该存储器中至少存储有用于实现以下功能的程序:The memory 2102 is used to store one or more programs, which may include program codes, and the program codes include computer operation instructions. In the embodiment of the present application, the memory at least stores programs for implementing the following functions:
检测到节点更新指令时,确定节点更新指令的更新类型;When a node update instruction is detected, determining an update type of the node update instruction;
若节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点,并将空闲缓存节点插入至扩容指令对应的指定位置;If the node update instruction is an expansion instruction, apply for an idle cache node from the global idle cache node list, and insert the idle cache node into the specified position corresponding to the expansion instruction;
若节点更新指令为缩容指令,在双向链表元数据中删除缩容指令对应的目标缓存节点,并将被删除的目标缓存节点释放回全局空闲缓存节点链表。If the node update instruction is a shrinking instruction, the target cache node corresponding to the shrinking instruction is deleted in the bidirectional linked list metadata, and the deleted target cache node is released back to the global free cache node linked list.
在一种可能的实现方式中,该存储器2102可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据。In one possible implementation, the memory 2102 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and an application required for at least one function, etc.; the data storage area may store data created during the use of the computer.
此外,存储器2102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。In addition, the memory 2102 may include a high-speed random access memory and may also include a non-volatile memory, such as at least one disk storage device or other volatile solid-state storage device.
该通信接口2103可以为通信模块的接口,如GSM模块的接口。The communication interface 2103 may be an interface of a communication module, such as an interface of a GSM module.
本申请还可以包括显示器2105和输入单元2104等等。The present application may further include a display 2105 and an input unit 2104 and the like.
图6所示的存储设备的结构并不构成对本申请实施例中存储设备的限定,在实际应用中存储设备可以包括比图6所示的更多或更少的部件,或者组合某些部件。The structure of the storage device shown in FIG6 does not constitute a limitation on the storage device in the embodiment of the present application. In actual applications, the storage device may include more or fewer components than those shown in FIG6, or combine certain components.
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。The various embodiments in the specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the various embodiments can be referred to each other. For the system provided in the embodiment, since it corresponds to the method provided in the embodiment, the description is relatively simple, and the relevant parts can be referred to the method part description.
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。Specific examples are used herein to illustrate the principles and implementation methods of the present application, and the description of the above embodiments is only used to help understand the method and core ideas of the present application. It should be pointed out that for ordinary technicians in this technical field, without departing from the principles of the present application, several improvements and modifications can be made to the present application, and these improvements and modifications also fall within the scope of protection of the claims of the present application.
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非
排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
It should also be noted that in this specification, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the terms "include", "comprises" or any other variations thereof are intended to cover non- Exclusive inclusion, so that a process, method, article or device that includes a list of elements includes not only those elements, but also includes other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of more restrictions, an element limited by the phrase "comprising a ..." does not exclude the presence of other identical elements in the process, method, article or device that includes the element.
Claims (20)
- 一种RAID卡的节点更新方法,其特征在于,包括:A node update method for a RAID card, characterized by comprising:检测到节点更新指令时,确定所述节点更新指令的更新类型;When a node update instruction is detected, determining an update type of the node update instruction;若所述节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点,并将所述空闲缓存节点插入至所述扩容指令对应的指定位置;If the node update instruction is a capacity expansion instruction, apply for an idle cache node from a global idle cache node linked list, and insert the idle cache node into a designated position corresponding to the capacity expansion instruction;若所述节点更新指令为缩容指令,在双向链表元数据中删除所述缩容指令对应的目标缓存节点,并将被删除的目标缓存节点释放回所述全局空闲缓存节点链表。If the node update instruction is a shrink instruction, the target cache node corresponding to the shrink instruction is deleted from the bidirectional linked list metadata, and the deleted target cache node is released back to the global free cache node linked list.
- 根据权利要求1所述的节点更新方法,其特征在于,检测到节点更新指令之前,还包括:The node updating method according to claim 1, characterized in that before detecting the node updating instruction, it also includes:获取用户命令参数;Get user command parameters;确定至少两个分块与卷的映射关系;Determine a mapping relationship between at least two blocks and a volume;根据所述映射关系生成查找表;其中,所述查找表用于维护所述卷的逻辑地址与RAID卡中物理地址的映射关系。A lookup table is generated according to the mapping relationship; wherein the lookup table is used to maintain a mapping relationship between the logical address of the volume and the physical address in the RAID card.
- 根据权利要求2所述的节点更新方法,其特征在于,所述缓存节点包括缓存节点ID、所述查找表、指向缓存区的指针、指向前一个缓存节点的指针和指向后一个缓存节点的指针。The node update method according to claim 2 is characterized in that the cache node includes a cache node ID, the lookup table, a pointer to the cache area, a pointer to the previous cache node, and a pointer to the next cache node.
- 根据权利要求2所述的节点更新方法,其特征在于,还包括:The node updating method according to claim 2, further comprising:获取RAID阵列创建命令;Get the RAID array creation command;根据所述RAID阵列创建命令生成所述双向链表元数据;Generate the bidirectional linked list metadata according to the RAID array creation command;根据所述RAID阵列创建命令生成全局空闲缓存节点链表。A global free cache node linked list is generated according to the RAID array creation command.
- 根据权利要求4所述的节点更新方法,其特征在于,根据所述RAID阵列创建命令生成所述双向链表元数据和全局空闲缓存节点链表之后,还包括:The node update method according to claim 4, characterized in that after generating the bidirectional linked list metadata and the global free cache node linked list according to the RAID array creation command, it also includes:将卷和分块的映射关系存储在对应缓存节点的查找表中。The mapping relationship between volumes and blocks is stored in the lookup table of the corresponding cache node.
- 根据权利要求4所述的节点更新方法,其特征在于,获取RAID阵列创建命令包括:The node updating method according to claim 4, wherein obtaining a RAID array creation command comprises:利用RAID卡控制器获取主机下发的RAID阵列创建命令。Use the RAID card controller to obtain the RAID array creation command issued by the host.
- 根据权利要求3所述的节点更新方法,其特征在于,将所述空闲缓存节点插入至所述扩容指令对应的指定位置后,还包括:The node updating method according to claim 3 is characterized in that after inserting the idle cache node into the specified position corresponding to the expansion instruction, it also includes:修改所述指定位置对应缓存节点中的指针信息。Modify the pointer information in the cache node corresponding to the specified position.
- 根据权利要求7所述的节点更新方法,其特征在于,修改所述指定位置对应缓存节点中的指针信息包括: The node updating method according to claim 7, characterized in that modifying the pointer information in the cache node corresponding to the specified position comprises:将要插入缓存节点的前指针指向所述指定位置的前一个缓存节点,并将要插入缓存节点的后指针指向所述指定位置的后一个缓存节点。The front pointer of the node to be inserted into the cache is pointed to the previous cache node of the specified position, and the back pointer of the node to be inserted into the cache is pointed to the next cache node of the specified position.
- 根据权利要求7所述的节点更新方法,其特征在于,修改所述指定位置对应缓存节点中的指针信息时还包括:The node updating method according to claim 7 is characterized in that when modifying the pointer information in the cache node corresponding to the specified position, it also includes:修改所述指定位置前一个缓存节点和后一个缓存节点的指针信息。The pointer information of the previous cache node and the next cache node of the specified position is modified.
- 根据权利要求3所述的节点更新方法,其特征在于,在双向链表元数据中删除所述缩容指令对应的目标缓存节点之后,还包括:The node updating method according to claim 3 is characterized in that after deleting the target cache node corresponding to the shrink instruction in the bidirectional linked list metadata, it also includes:修改所述目标缓存节点前后缓存节点中的指针信息。Modify the pointer information in the cache nodes before and after the target cache node.
- 根据权利要求10所述的节点更新方法,其特征在于,修改所述目标缓存节点前后缓存节点中的指针信息包括:The node updating method according to claim 10, characterized in that modifying the pointer information in the cache nodes before and after the target cache node comprises:将所述目标缓存节点前一个缓存节点的后指针指向所述目标缓存节点的后一个缓存节点,并将所述目标缓存节点后一个缓存节点的前指针指向所述目标缓存节点的前一个缓存节点。The back pointer of the cache node before the target cache node is pointed to the cache node after the target cache node, and the front pointer of the cache node after the target cache node is pointed to the cache node before the target cache node.
- 根据权利要求4所述的节点更新方法,其特征在于,根据所述RAID阵列创建命令生成所述双向链表元数据包括:The node update method according to claim 4, characterized in that generating the bidirectional linked list metadata according to the RAID array creation command comprises:解析所述RAID阵列创建命令,确认卷和分块的映射关系;Parsing the RAID array creation command to confirm the mapping relationship between volumes and blocks;根据所述卷和分块的映射关系创建双向链表元数据。A bidirectional linked list metadata is created according to the mapping relationship between the volume and the block.
- 根据权利要求12所述的节点更新方法,其特征在于,根据所述卷和分块的映射关系创建双向链表元数据之后,还包括:The node update method according to claim 12 is characterized in that after creating the bidirectional linked list metadata according to the mapping relationship between the volume and the block, it also includes:将所述双向链表元数据存于缓存节点的查找表。The bidirectional linked list metadata is stored in a lookup table of a cache node.
- 根据权利要求4所述的节点更新方法,其特征在于,根据所述RAID阵列创建命令生成全局空闲缓存节点链表包括:The node update method according to claim 4, characterized in that generating a global free cache node linked list according to the RAID array creation command comprises:利用RAID卡控制器根据所述RAID阵列创建命令生成全局空闲缓存节点链表。A RAID card controller is used to generate a global free cache node linked list according to the RAID array creation command.
- 根据权利要求1所述的节点更新方法,其特征在于,若所述节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点包括:The node update method according to claim 1, characterized in that if the node update instruction is a capacity expansion instruction, applying for an idle cache node from a global idle cache node linked list comprises:若所述节点更新指令为扩容指令,确定扩容节点对应的节点数量,并从全局空闲缓存节点链表中申请满足所述节点数量的空闲缓存节点。If the node update instruction is an expansion instruction, the number of nodes corresponding to the expansion node is determined, and idle cache nodes that meet the number of nodes are applied for from a global idle cache node linked list.
- 根据权利要求1所述的节点更新方法,其特征在于,若所述节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点包括:The node update method according to claim 1, characterized in that if the node update instruction is a capacity expansion instruction, applying for an idle cache node from a global idle cache node linked list comprises:若所述节点更新指令为扩容指令,确定扩容节点对应的节点参数,并从全局空闲缓存节点链表中申请符合所述节点参数的空闲缓存节点。 If the node update instruction is an expansion instruction, the node parameters corresponding to the expansion node are determined, and an idle cache node that meets the node parameters is applied for from a global idle cache node linked list.
- 根据权利要求1所述的节点更新方法,其特征在于,若所述节点更新指令为缩容指令,在双向链表元数据中删除所述缩容指令对应的目标缓存节点包括:The node update method according to claim 1, characterized in that if the node update instruction is a shrinking instruction, deleting the target cache node corresponding to the shrinking instruction in the bidirectional linked list metadata comprises:若所述节点更新指令为缩容指令,确定所述指令对应的目标缓存节点的目标节点位置;If the node update instruction is a shrink instruction, determining a target node position of a target cache node corresponding to the instruction;在双向链表元数据中删除所述目标节点位置对应的目标缓存节点。The target cache node corresponding to the target node position is deleted from the bidirectional linked list metadata.
- 一种RAID卡的节点更新系统,其特征在于,包括:A node update system for a RAID card, characterized by comprising:类型检测模块,用故意检测到节点更新指令时,确定所述节点更新指令的更新类型;A type detection module, for determining an update type of the node update instruction when a node update instruction is intentionally detected;扩容模块,用于若所述节点更新指令为扩容指令,从全局空闲缓存节点链表中申请空闲缓存节点,并将所述空闲缓存节点插入至所述扩容指令对应的指定位置;A capacity expansion module, configured to apply for an idle cache node from a global idle cache node linked list if the node update instruction is an expansion instruction, and insert the idle cache node into a designated position corresponding to the expansion instruction;缩容模块,用于若所述节点更新指令为缩容指令,在双向链表元数据中删除所述缩容指令对应的目标缓存节点,并将被删除的目标缓存节点释放回所述全局空闲缓存节点链表。The shrinking module is used to delete the target cache node corresponding to the shrinking instruction in the bidirectional linked list metadata if the node update instruction is a shrinking instruction, and release the deleted target cache node back to the global free cache node linked list.
- 一种计算机非易失性可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-17任一项所述的RAID卡的节点更新方法的步骤。A computer non-volatile readable storage medium having a computer program stored thereon, characterized in that when the computer program is executed by a processor, the steps of the node update method of the RAID card as described in any one of claims 1 to 17 are implemented.
- 一种存储设备,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1-17任一项所述的RAID卡的节点更新方法的步骤。 A storage device, characterized in that it includes a memory and a processor, wherein a computer program is stored in the memory, and when the processor calls the computer program in the memory, the steps of the node update method of the RAID card as described in any one of claims 1-17 are implemented.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211554112.2 | 2022-12-06 | ||
CN202211554112.2A CN115576501B (en) | 2022-12-06 | 2022-12-06 | Node updating method, system and related device of RAID card |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024119775A1 true WO2024119775A1 (en) | 2024-06-13 |
Family
ID=84590691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/101696 WO2024119775A1 (en) | 2022-12-06 | 2023-06-21 | Raid card node updating method and system, and related apparatus |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115576501B (en) |
WO (1) | WO2024119775A1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904255B (en) * | 2023-01-19 | 2023-05-16 | 苏州浪潮智能科技有限公司 | Data request method, device, equipment and storage medium |
CN115934000B (en) * | 2023-03-07 | 2023-06-09 | 苏州浪潮智能科技有限公司 | Timing method and related device of storage system |
CN117278505B (en) * | 2023-11-21 | 2024-02-09 | 苏州元脑智能科技有限公司 | Message transmission method, system, equipment and medium between RAID card nodes |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101438A (en) * | 2018-07-25 | 2018-12-28 | 百度在线网络技术(北京)有限公司 | Method and apparatus for storing data |
CN110058953A (en) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | For changing the method, equipment and computer program product of the type of storage system |
CN110908927A (en) * | 2018-09-14 | 2020-03-24 | 慧荣科技股份有限公司 | Data storage device and method for deleting name space thereof |
CN111464355A (en) * | 2020-03-31 | 2020-07-28 | 北京金山云网络技术有限公司 | Method and device for controlling expansion capacity of Kubernetes container cluster and network equipment |
US20210034267A1 (en) * | 2019-08-02 | 2021-02-04 | EMC IP Holding Company LLC | Memory-efficient processing of raid metadata bitmaps |
CN113448971A (en) * | 2020-03-24 | 2021-09-28 | 北京字节跳动网络技术有限公司 | Data updating method based on distributed system, computing node and storage medium |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095261A (en) * | 2014-05-08 | 2015-11-25 | 北京奇虎科技有限公司 | Data insertion method and device |
CN114610652A (en) * | 2022-03-25 | 2022-06-10 | 南京信息工程大学 | SD card data access method based on bidirectional linked list |
-
2022
- 2022-12-06 CN CN202211554112.2A patent/CN115576501B/en active Active
-
2023
- 2023-06-21 WO PCT/CN2023/101696 patent/WO2024119775A1/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058953A (en) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | For changing the method, equipment and computer program product of the type of storage system |
CN109101438A (en) * | 2018-07-25 | 2018-12-28 | 百度在线网络技术(北京)有限公司 | Method and apparatus for storing data |
CN110908927A (en) * | 2018-09-14 | 2020-03-24 | 慧荣科技股份有限公司 | Data storage device and method for deleting name space thereof |
US20210034267A1 (en) * | 2019-08-02 | 2021-02-04 | EMC IP Holding Company LLC | Memory-efficient processing of raid metadata bitmaps |
CN113448971A (en) * | 2020-03-24 | 2021-09-28 | 北京字节跳动网络技术有限公司 | Data updating method based on distributed system, computing node and storage medium |
CN111464355A (en) * | 2020-03-31 | 2020-07-28 | 北京金山云网络技术有限公司 | Method and device for controlling expansion capacity of Kubernetes container cluster and network equipment |
Also Published As
Publication number | Publication date |
---|---|
CN115576501B (en) | 2023-03-10 |
CN115576501A (en) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2024119775A1 (en) | Raid card node updating method and system, and related apparatus | |
JP3830886B2 (en) | Method for storing data in nonvolatile memory | |
CN109725840B (en) | Throttling writes with asynchronous flushing | |
US20060143412A1 (en) | Snapshot copy facility maintaining read performance and write performance | |
US20140059563A1 (en) | Dependency management in task scheduling | |
US20130311707A1 (en) | Storage control apparatus and storage control method | |
JP2018152127A (en) | Method and device for performing atomic writing operation with note | |
US10417137B2 (en) | Flushing pages from solid-state storage device | |
WO2017025039A1 (en) | Flash storage oriented data access method and device | |
JP2014071905A (en) | Computer system, and data management method for computer system | |
CN113568582B (en) | Data management method, device and storage equipment | |
CN109804359A (en) | For the system and method by write back data to storage equipment | |
CN103049396A (en) | Method and device for flushing data | |
Lee et al. | ActiveSort: Efficient external sorting using active SSDs in the MapReduce framework | |
WO2024113702A1 (en) | Data storage method and related device | |
US20240086332A1 (en) | Data processing method and system, device, and medium | |
WO2024113717A1 (en) | Zns ssd-based file system control method, apparatus and device | |
WO2024152614A1 (en) | Data request method and apparatus, and device and non-volatile readable storage medium | |
CN110727403A (en) | Metadata management method and device | |
KR20110033066A (en) | Fast speed computer system power-on & power-off method | |
US7305537B1 (en) | Method and system for I/O scheduler activations | |
CN116755625A (en) | Data processing method, device, equipment and readable storage medium | |
WO2020192710A1 (en) | Method for processing garbage based on lsm database, solid state hard disk, and storage apparatus | |
CN116257460B (en) | Trim command processing method based on solid state disk and solid state disk | |
US12026371B2 (en) | Method, system, and device for writing compressed data to disk, and readable storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23899362 Country of ref document: EP Kind code of ref document: A1 |