WO2024077860A1 - 元数据的管理方法、装置和计算机设备和存储介质 - Google Patents
元数据的管理方法、装置和计算机设备和存储介质 Download PDFInfo
- Publication number
- WO2024077860A1 WO2024077860A1 PCT/CN2023/081122 CN2023081122W WO2024077860A1 WO 2024077860 A1 WO2024077860 A1 WO 2024077860A1 CN 2023081122 W CN2023081122 W CN 2023081122W WO 2024077860 A1 WO2024077860 A1 WO 2024077860A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- level table
- metadata
- address
- stripe
- logical volume
- Prior art date
Links
- 238000007726 management method Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 26
- 230000008520 organization Effects 0.000 claims abstract description 15
- 238000003491 array Methods 0.000 claims abstract description 11
- 238000012217 deletion Methods 0.000 claims description 29
- 230000037430 deletion Effects 0.000 claims description 29
- 238000007906 compression Methods 0.000 claims description 24
- 230000006835 compression Effects 0.000 claims description 24
- 230000008859 change Effects 0.000 claims description 22
- 238000003780 insertion Methods 0.000 claims description 7
- 230000037431 insertion Effects 0.000 claims description 7
- 238000013144 data compression Methods 0.000 abstract description 2
- 238000004590 computer program Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 4
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 4
- 230000001172 regenerating effect Effects 0.000 description 4
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 3
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 3
- 230000006837 decompression Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present application relates to the field of metadata organization technology, and in particular to a metadata management method, apparatus, computer equipment and storage medium.
- Redundant array of independent disks uses multiple independent disks to form a disk system to achieve better storage performance and higher reliability than a single disk.
- a multi-controller system uses multiple controllers to jointly process user read and write operations, achieving performance and security superposition of multiple controllers.
- a feasible solution is to divide the hard disk address space into multiple controllers to avoid resource access conflicts.
- Address space isolation avoids cross-domain information. The address division of the space is performed at the logical volume level to ensure independent controller access to the address space.
- the controller needs to perform data configuration and recovery tasks on the array.
- data configuration and recovery tasks it is necessary to record the metadata of the stripe to schedule tasks in units of stripes, including but not limited to formatting tasks. It is necessary to record whether the stripe has been formatted to ensure data verification consistency and avoid multiple formatting.
- the metadata organization form is in the form of a bitmap, and the nth bit uses 0 to describe that the nth stripe has been formatted.
- the inventors realize that according to the division of RAID stripes by multiple controllers, a single controller only accesses the stripes to which it belongs. Of all the stripes, only about 1/4 is divided into a single controller. At this time, about 3/4 of the metadata recorded by the controller does not belong to the stripes actually used by the controller, which undoubtedly causes a waste of space. When a controller fails, the metadata synchronization speed is also affected.
- the present application provides a metadata management method, the method comprising:
- Multiple independent disk redundant arrays form disk space, which is divided into multiple blocks, and multiple blocks are combined into a stripe, and multiple stripes form a logical volume allocation unit;
- the secondary table includes a first-level table and a second-level table. Define the length of the second-level table based on the ratio of the logical volume allocation unit to the length of a single stripe. The length of the second-level table is the length of the logical volume.
- the allocation unit includes the number of stripes; the length of the first-level table is equal to the size of the disk space divided by the length of the second-level table; the address recorded in the first-level table corresponds to the high-order portion of the stripe number, and the value stored therein corresponds to the address of the second-level table; the second-level table records a bitmap of a group of stripes, and the address recorded in the second-level table corresponds to the low-order portion of the stripe number; and
- the metadata in the logical volume allocation unit is managed through the secondary table, and the management of the metadata in the logical volume allocation unit through the secondary table includes data reading, data writing, data deletion or data merging.
- managing metadata in a logical volume allocation unit through a secondary table includes data reading, and the data reading step includes:
- the stripe information stored in the second-level table is read according to the address recorded in the acquired second-level table.
- managing metadata in a logical volume allocation unit through a secondary table includes writing data, and the data writing step includes:
- the information to be written is written into the space corresponding to the address of the second-level table.
- a tag value is configured for the metadata of the stripe to which the logical volume allocation unit belongs according to the controller, and an opposite tag value is configured for the metadata of the stripe that does not belong to the controller.
- the metadata is written into the power-off protection space, and the metadata bitmap is compressed when writing data.
- the metadata is compressed using a compression algorithm, and the compressed data is written into the power-off protection space; multiple controllers all execute the same compression algorithm and allocate the power-off protection space according to the compressed metadata space.
- the metadata when a controller is recovering after a failure, the metadata needs to be resynchronized.
- the controller copies the metadata to the target controller according to the metadata synchronization rules, merges it with the target controller metadata, and saves it to the power-saving memory space. After waiting for the metadata merger to be completed, data reading and writing are allowed to continue.
- managing metadata in a logical volume allocation unit through a secondary table includes data deletion, and the data deletion step includes:
- the method further includes:
- the secondary table is regenerated according to the logical volume allocation unit after the information is deleted, and the lengths and addresses of the records of the first-level table and the second-level table in the secondary table are updated.
- the method further includes:
- the second level table When the second level is regenerated and there is no other information in the space corresponding to the address of the second level table, the second level table is deleted and the corresponding record in the first level table is set to invalid.
- the disk space forms a plurality of logical volume allocation units, each of which corresponds to a controller; when deletion of information causes a change in the ownership division of the corresponding stripe, the information of the stripe with the ownership division change needs to be migrated from the old controller to the new controller, and at this time, the information of the stripe in the metadata of the old controller is deleted and the information of the stripe is inserted into the metadata of the new controller.
- managing metadata in a logical volume allocation unit through a secondary table includes data merging, and the data merging step includes:
- the information to be inserted is recorded in the space corresponding to the address of the second-level table.
- the method further includes:
- the secondary table is regenerated according to the logical volume allocation unit after the information is inserted, and the lengths and addresses of the records of the first-level table and the second-level table in the secondary table are updated.
- the method further includes:
- the disk space forms a plurality of logical volume allocation units, each of which corresponds to a controller; when the insertion of information causes the ownership division of the corresponding stripe to change, the information of the stripe with the ownership division change needs to be migrated from the old controller to the new controller, at which time the information of the stripe in the metadata of the old controller is deleted and the information of the stripe is inserted into the metadata of the new controller.
- the metadata compression algorithm is based on the multi-controller balancing space balance form. Row compression.
- the method further comprises:
- the independent redundant array of disks pre-configures metadata used by the background task.
- the method further comprises:
- the data When reading data from metadata, the data is read and returned in a compressed form.
- a metadata organization device comprising:
- a logical volume allocation unit module is formed, which is used for multiple independent disk redundant arrays to form a disk space, divide the disk space into multiple blocks, and combine multiple blocks into a stripe, and multiple stripes form a logical volume allocation unit;
- a secondary table generation module is used to generate and store a secondary table according to a logical volume allocation unit, wherein the secondary table includes a first-level table and a second-level table; the length of the second-level table is defined according to the ratio of the length of the logical volume allocation unit to the length of a single stripe, wherein the length of the second-level table is the number of stripes contained in the logical volume allocation unit; the length of the first-level table is equal to the size of the disk space divided by the length of the second-level table; the address recorded in the first-level table corresponds to the high-order part of the stripe number, wherein the stored value corresponds to the address of the second-level table; the second-level table records a bitmap of a group of stripes, wherein the address recorded in the second-level table corresponds to the low-order part of the stripe number; and
- the metadata management module is used to manage the metadata in the logical volume allocation unit through the secondary table; the management of the metadata in the logical volume allocation unit through the secondary table includes data reading, data writing, data deletion or data merging.
- a computer device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the computer program, the following steps are implemented:
- Multiple independent disk redundant arrays form disk space, which is divided into multiple blocks, and multiple blocks are combined into a stripe, and multiple stripes form a logical volume allocation unit;
- the secondary table includes a first-level table and a second-level table; define the length of the second-level table according to the ratio of the length of the logical volume allocation unit to the length of a single stripe, the length of the second-level table is the number of stripes contained in the logical volume allocation unit; the length of the first-level table is equal to the size of the disk space divided by the length of the second-level table; the address recorded in the first-level table corresponds to the high-order part of the stripe number, wherein the stored value corresponds to the address of the second-level table; the second-level table records a bitmap of a group of stripes, and the address recorded in the second-level table corresponds to the low-order part of the stripe number; and
- Managing metadata in logical volume allocation units through secondary tables includes data reading, data writing, data deletion or data merging.
- Another aspect of the present application also proposes a computer device, including: a memory and one or more processors, wherein the memory stores computer-readable instructions, and when the above-mentioned computer-readable instructions are executed by the above-mentioned one or more processors, the above-mentioned one or more processors implement the steps of the above-mentioned metadata management method.
- Another aspect of the present application further proposes one or more non-volatile computer-readable storage media storing computer-readable instructions, which, when executed by the one or more processors, enable the one or more processors to perform the steps of the metadata management method.
- FIG1 is an application environment diagram of a metadata management method according to one or more embodiments of the present application.
- FIG2 is a schematic diagram of a process of managing metadata according to one or more embodiments of the present application.
- FIG3 is a flow chart of a data reading step according to one or more embodiments of the present application.
- FIG4 is a flow chart of a data writing step according to one or more embodiments of the present application.
- FIG5 is a flowchart of a data deletion step according to one or more embodiments of the present application.
- FIG6 is a flow chart of a data merging step according to one or more embodiments of the present application.
- FIG7 is a structural block diagram of a metadata organization device according to one or more embodiments of the present application.
- FIG8 is a diagram of the internal structure of a computer device according to one or more embodiments of the present application.
- the metadata management method provided by the present application can be applied to the application environment shown in Figure 1.
- multiple independent disk redundant arrays form a disk space
- the disk space is divided into multiple blocks, and multiple blocks are combined into a stripe, and multiple stripes form a logical volume allocation unit.
- the Redundant Array of Independent Disks (RAID), referred to as the array in this article, is composed of multiple disks organized according to a certain spatial structure to provide data access services.
- the array combines multiple blocks into stripes.
- a stripe spans multiple disks and is the basic redundancy unit.
- the number of disks spanned by a single stripe and the stripe width are directly specified by the user when creating the array.
- the block size is the unit divided into blocks, and the block size is directly specified by the user when creating the array.
- a bad block is a data area that cannot be read from the disk and cannot be recovered by the array reconstruction algorithm. When a bad block exists, data recovery is required.
- an independent redundant array of disks 102 communicates with a server 104 through a connection.
- the independent redundant array of disks 102 may be, but is not limited to, a disk suitable for various personal computers, laptops, smart phones, tablet computers, and portable wearable devices.
- a RAID5 array is taken as an example.
- the server 104 is a personal computer, a laptop computer, a smart phone, a tablet computer, and a portable wearable device.
- the server 104 may also be implemented as an independent server or a server cluster consisting of multiple servers.
- a metadata management method is provided, which is described by taking the method applied to the server 104 in FIG. 1 as an example, and includes the following steps S1-S3:
- Step S1 multiple independent disk redundant arrays form a disk space, the disk space is divided into multiple blocks, and multiple blocks are combined into a stripe, and multiple stripes form a logical volume allocation unit;
- Step S2 generating and storing a secondary table according to the logical volume allocation unit, wherein the secondary table includes a first-level table and a second-level table; defining the length of the second-level table according to the ratio of the length of the logical volume allocation unit to the length of a single stripe, wherein the length of the second-level table is the number of stripes contained in the logical volume allocation unit; the length of the first-level table is equal to the size of the disk space divided by the length of the second-level table; the address recorded in the first-level table corresponds to the high-order portion of the stripe number, wherein the stored value corresponds to the address of the second-level table; the second-level table records a bitmap of a group of stripes, wherein the address recorded in the second-level table corresponds to the low-order portion of the stripe number; and
- Step S3 managing metadata in the logical volume allocation unit through a secondary table.
- the management of metadata in the logical volume allocation unit through the secondary table includes data reading, data writing, data deletion or data merging.
- step S3 The following describes in detail the manner of managing metadata in step S3 in a plurality of embodiments.
- managing metadata in a logical volume allocation unit through a secondary table includes data reading.
- the data reading step includes:
- Step S311 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S312 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S313 reading the stripe information stored in the second-level table according to the address recorded in the acquired second-level table.
- managing metadata in a logical volume allocation unit through a secondary table includes data writing, as shown in FIG4 , and the data writing step includes:
- Step S321 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S322 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S323 writing the information to be written into the space corresponding to the address of the second-level table.
- a mark value is configured for the metadata of the stripe to which the logical volume allocation unit belongs according to the controller, and an opposite mark value is configured for the metadata of the stripe that does not belong to the controller.
- the metadata is written into the power-off protection space, and the metadata bitmap is compressed when writing data.
- the metadata is compressed using a compression algorithm, and the compressed data is written into the power-off protection space; multiple controllers all execute the same compression algorithm, and the power-off protection space is allocated according to the compressed metadata space.
- the controller when the controller is recovering after a failure, the metadata needs to be resynchronized.
- the controller copies the metadata to the target controller according to the metadata synchronization rules, merges it with the target controller's metadata, and saves it to the power-saving memory space. After waiting for the metadata merge to be completed, data reading and writing are allowed to continue.
- managing metadata in a logical volume allocation unit through a secondary table includes data deletion.
- the data deletion step includes:
- Step S331 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S332 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S333 deleting the information to be deleted in the space corresponding to the address of the second-level table.
- Step S334 regenerate the secondary table according to the logical volume allocation unit after the information is deleted, and update the length and address of the record of the first-level table and the second-level table in the secondary table.
- the second-level table When the second-level table is regenerated, if there is no other information in the space corresponding to the address of the second-level table, the second-level table is deleted, and the corresponding record in the first-level table is set to invalid.
- the disk space forms multiple logical volume allocation units, each logical volume allocation unit corresponds to a controller; when the deletion information causes the ownership division of the corresponding stripe to change, the information of the stripe with the ownership division change needs to be migrated from the old controller to the new controller. At this time, the information of the stripe in the metadata of the old controller is deleted and the information of the stripe is inserted into the metadata of the new controller.
- managing metadata in the logical volume allocation unit through the secondary table includes data merging.
- the data merging step includes:
- Step S341 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S342 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S343 recording the information to be inserted into the space corresponding to the address of the second-level table.
- Step S344 regenerate the secondary table according to the logical volume allocation unit after the information is inserted, and update the The length of the first-level table and the second-level table and the address of the record.
- the disk space forms multiple logical volume allocation units, each logical volume allocation unit corresponds to a controller; when the insertion information causes the ownership division of the corresponding stripe to change, the information of the stripe with the ownership division change needs to be migrated from the old controller to the new controller. At this time, the information of the stripe in the metadata of the old controller is deleted and the information of the stripe is inserted into the metadata of the new controller.
- RAID When in use, RAID must first configure metadata used by background tasks when starting background tasks. For example, including but not limited to formatting and reconstruction, metadata must be configured when starting to describe which space areas of the RAID are formatted and which space areas are not formatted.
- metadata When in use, RAID must first configure metadata used by background tasks when starting background tasks. For example, including but not limited to formatting and reconstruction, metadata must be configured when starting to describe which space areas of the RAID are formatted and which space areas are not formatted.
- the above-mentioned RAID areas can be divided into RAID stripes or RAID rows.
- Metadata configuration is a form of metadata update.
- the metadata of the space area to which the controller of the RAID space area belongs is configured with a tag value.
- the metadata of the space area that does not belong to the controller is written with an opposite tag value, which is equivalent to the tag value of the corresponding task that has been completed.
- the metadata is written into the power-off protection space, and the metadata bitmap is compressed when writing data.
- the opposite tag value is equivalent to the tag value of the corresponding task that has been completed is the metadata organization form for a multi-controller RAID system. For a certain array, a certain controller processes part of its address space, and the description of the part outside the address space from the perspective of the controller is the same as the description of the completed task.
- the metadata is compressed using a compression algorithm, and the compressed data is written into the power-off protection space.
- Multiple controllers all execute the same compression algorithm. Since the space areas to which the controllers belong are different, the compressed metadata is different and the space occupancy is different, the power-off protection space is allocated according to the compressed metadata space.
- the metadata of this application uses a compression algorithm as the proposed metadata organization form, which is not equivalent to the compression and decompression tool of Window, but a data structure that allows data reading and writing, providing space savings compared to bitmaps. This is also the meaning of the later mention that reading without decompression.
- controller When a controller fails or recovers, metadata needs to be resynchronized.
- the controller copies metadata to the target controller according to metadata synchronization rules, merges metadata with the target controller metadata, and saves it to the power-saving memory space.
- data reading and writing can continue after waiting for metadata merging to complete.
- metadata reads data it is read and returned in the form of metadata compression.
- metadata When metadata is written, the old metadata is first read, the specified location of the metadata is updated, the metadata is compressed and written to the power-saving memory.
- the controllers that synchronize metadata need to execute the above metadata writing logic at the same time to maintain synchronization between the controllers that write metadata.
- the core of the metadata compression algorithm is to compress in the form of space balancing when multiple controllers are balanced. Since the logical volume space allocation unit is much larger than RAID, multiple adjacent stripes are most likely to be allocated to the same controller. Take the form of stripes as an example. Compression uses a two-level table format, and the subscript value of the first-level record of the table corresponds to the high-order part of the stripe number, where the stored value corresponds to the second-level subscript of the table. The second level of the table records a bitmap of a group of stripes, and the description meaning is equivalent to the old bitmap meaning. What is described here is a data structure that is used to replace the bitmap to store metadata. The compression here is not equivalent to the window compression tool, but the use of this data structure for storage can achieve the effect of space saving.
- the length of the second level of the table is defined according to the ratio of the length of the logical volume allocation unit to the length of the RAID area division unit.
- the length of the first level table is confirmed based on the length of the second level table, that is, the length of the second level table is determined, that is, it is determined according to the logical volume division unit mentioned in the text, and the total amount of data is determined according to the space size of the RAID configured in real time.
- the total space size of the RAID is divided by the second level length to obtain the first level length.
- the compressed metadata does not need to be decompressed when read.
- the corresponding first-level table address is obtained according to the first-level length of the definition table through the stripe number, the address recorded in the first-level table is read according to the first-level table address, the second-level table is read according to the address, the corresponding second-level table address is obtained according to the second-level length of the definition table through the stripe number, and the stripe information stored in the second-level table is read according to the second-level table address.
- This metadata format allows metadata to be compressed in real time by supporting deletion: the corresponding first-level table address is obtained according to the first-level length of the definition table through the stripe number to be deleted, and the address recorded in the first-level table is read according to the first-level table address; the second-level table is read according to the address, and the corresponding second-level table address is obtained according to the second-level length of the definition table through the stripe number, and the information to be deleted is deleted in the space corresponding to the second-level table address; if there is no other remaining information in the space corresponding to the second-level table address, the second-level table is deleted, and the corresponding record in the first-level table is set to invalid.
- the physical address of the second level of the table is stored in the first level of the table, that is, the first level of the table is the index of the second level of the table, and the space is saved because the second level of the table does not exist, so space can be saved at this time.
- the fact that there is no other remaining information in the space corresponding to the second-level table address means that there is no data that needs to be stored in the second-level table, that is, one of the two situations described above: "completed" and "not belonging to the controller".
- the ownership division of a stripe changes, the information of the stripe whose ownership division changes needs to be migrated from the old controller to the new controller. At this time, the information of the stripe of the old controller is deleted and the information is inserted into the metadata of the new controller.
- This metadata format allows metadata merging by supporting insertion: the first-level table address corresponding to the stripe number to be inserted is obtained according to the first-level length of the definition table, and the address of the record in the first-level table is read according to the first-level table address; if the address is valid, the second-level table is read according to the address, otherwise the power-saving memory space is requested to be created
- the second-level table is defined, and the address of the second-level table is recorded in the first-level table; the corresponding second-level table address is obtained according to the second-level length of the definition table through the stripe number, and the space corresponding to the second-level table address is recorded with the information to be inserted.
- the metadata management method, device, computer equipment and storage medium mentioned above manage metadata in the form of a secondary table, and have the characteristics of real-time data compression. That is, when the metadata is updated, the updated metadata occupies less space than the old metadata, which is a feature that the bitmap form does not have.
- the present application manages the metadata in the logical volume allocation unit through a secondary table, it reduces the metadata space occupancy compared to the old metadata organization form, and can reduce the metadata synchronization time during controller failure and recovery, thereby improving system reliability.
- 6 may include a plurality of sub-steps or a plurality of stages, and these sub-steps or stages are not necessarily performed at the same time, but can be performed at different times, and the execution order of these sub-steps or stages is not necessarily performed in sequence, but can be performed in turn or alternately with at least a portion of other steps or sub-steps or stages of other steps.
- a metadata organizing device 10 comprising: a module 1 for forming a logical volume allocation unit, a module 2 for generating a secondary table, and a metadata management module 3 .
- the module 1 for forming a logical volume allocation unit is used for forming a disk space with multiple independent disk redundant arrays, dividing the disk space into multiple blocks, and combining multiple blocks into a stripe, and multiple stripes form a logical volume allocation unit.
- the secondary table generation module 2 is used to generate and store a secondary table according to the logical volume allocation unit, and the secondary table includes a first-level table and a second-level table; the length of the second-level table is defined according to the ratio of the length of the logical volume allocation unit to the length of a single stripe, and the length of the second-level table is the number of stripes contained in the logical volume allocation unit; the length of the first-level table is equal to the disk space size divided by the length of the second-level table; the address recorded in the first-level table corresponds to the high-order part of the stripe number, wherein the stored value corresponds to the address of the second-level table; the second-level table records a bitmap of a group of stripes, and the address recorded in the second-level table corresponds to the low-order part of the stripe number.
- the metadata management module 3 is used to manage the metadata in the logical volume allocation unit through a secondary table.
- the metadata management module 3 manages the metadata in the logical volume allocation unit through the secondary table, including data reading, data writing, data deletion or data merging.
- the metadata management module 3 sets its specific functional structure according to the content of data reading, data writing, data deletion or data merging.
- the metadata management module 3 includes a data reading module 31, a data writing module 32, a data deletion module 33 or a data merging module 34. Please refer to the multiple embodiments of the method of managing metadata in the previous text to understand the functions of the data reading module 31, the data writing module 32, the data deletion module 33 or the data merging module 34.
- the data reading module 31 is used to: obtain the first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and read the address recorded in the first-level table according to the first-level table address; read the corresponding second-level table according to the address recorded in the first-level table, and obtain the corresponding second-level table according to the stripe number according to the length of the second-level table.
- the data writing module 32 is used to: obtain the first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and read the address recorded in the first-level table according to the first-level table address; read the corresponding second-level table according to the address recorded in the first-level table, and obtain the address of the corresponding record in the second-level table through the stripe number according to the length of the second-level table; and write the information to be written into the space corresponding to the address of the second-level table.
- a mark value is configured for the metadata of the stripe to which the logical volume allocation unit belongs according to the controller, and an opposite mark value is configured for the metadata of the stripe that does not belong to the controller.
- the metadata is written into the power-off protection space, and the metadata bitmap is compressed when writing data.
- the metadata is compressed using a compression algorithm, and the compressed data is written into the power-off protection space; multiple controllers all execute the same compression algorithm, and the power-off protection space is allocated according to the compressed metadata space.
- the controller when the controller is recovering after a failure, the metadata needs to be resynchronized.
- the controller copies the metadata to the target controller according to the metadata synchronization rules, merges it with the target controller's metadata, and saves it to the power-saving memory space. After waiting for the metadata merge to be completed, data reading and writing are allowed to continue.
- the data deletion module 33 is used to: obtain the first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and read the address recorded in the first-level table according to the first-level table address; read the corresponding second-level table according to the address recorded in the first-level table, and obtain the address of the corresponding record in the second-level table through the stripe number according to the length of the second-level table; delete the information to be deleted in the space corresponding to the second-level table address; and regenerate the secondary table according to the logical volume allocation unit after the information is deleted, and update the length and address of the records of the first-level table and the second-level table in the secondary table.
- the second-level table When the second-level table is regenerated, if there is no other information in the space corresponding to the address of the second-level table, the second-level table is deleted, and the corresponding record in the first-level table is set to invalid.
- the disk space forms multiple logical volume allocation units, each logical volume allocation unit corresponds to a controller; when the deletion information causes the ownership division of the corresponding stripe to change, the information of the stripe with the ownership division change needs to be migrated from the old controller to the new controller. At this time, the information of the stripe in the metadata of the old controller is deleted and the information of the stripe is inserted into the metadata of the new controller.
- the data merge module 34 is used to: obtain the first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and read the address recorded in the first-level table according to the first-level table address; read the corresponding second-level table according to the address recorded in the first-level table, and obtain the address of the corresponding record in the second-level table through the stripe number according to the length of the second-level table; record the information to be inserted in the space corresponding to the second-level table address; and regenerate the secondary table according to the logical volume allocation unit after the information is inserted, and update the length and address of the record of the first-level table and the second-level table in the secondary table.
- the disk space forms multiple logical volume allocation units, each logical volume allocation unit corresponds to a controller; when the insertion information causes the ownership division of the corresponding stripe to change, the information of the stripe with the ownership division change needs to be migrated from the old controller to the new controller. At this time, the information of the stripe in the metadata of the old controller is deleted and the information of the stripe is inserted into the metadata of the new controller.
- Each module in the above-mentioned metadata organization device can be implemented in whole or in part by software, hardware and their combination.
- the above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.
- a computer device which may be a server, and its internal structure diagram may be shown in FIG8.
- the computer device includes a processor, a memory, a network interface, and a database connected via a system bus.
- the processor of the computer device is used to provide computing and control capabilities.
- the memory of the computer device includes a non-volatile storage medium and an internal memory.
- the non-volatile storage medium stores an operating system, a computer program, and a database.
- the internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium.
- the database of the computer device is used to store metadata organization data.
- the network interface of the computer device is used to communicate with an external independent redundant disk array via a network connection. When the computer program is executed by the processor, a metadata management method is implemented.
- FIG. 8 is merely a block diagram of a partial structure related to the solution of the present application, and does not constitute a limitation on the computer device to which the solution of the present application is applied.
- the specific computer device may include more or fewer components than shown in the figure, or combine certain components, or have a different arrangement of components.
- a computer device comprising at least one processor; and a memory, wherein the memory stores computer-readable instructions that can be executed on the processor, and when the computer-readable instructions are executed by the processor, the following steps are implemented:
- Multiple independent disk redundant arrays form disk space, which is divided into multiple blocks, and multiple blocks are combined into a stripe, and multiple stripes form a logical volume allocation unit;
- the secondary table includes a first-level table and a second-level table; define the length of the second-level table according to the ratio of the length of the logical volume allocation unit to the length of a single stripe, the length of the second-level table is the number of stripes contained in the logical volume allocation unit; the length of the first-level table is equal to the size of the disk space divided by the length of the second-level table; the address recorded in the first-level table corresponds to the high-order part of the stripe number, wherein the stored value corresponds to the address of the second-level table; the second-level table records a bitmap of a group of stripes, and the address recorded in the second-level table corresponds to the low-order part of the stripe number; and
- the metadata in the logical volume allocation unit is managed through the secondary table; the logical volume allocation unit is The management of metadata in the data includes data reading, data writing, data deletion or data merging.
- the processor also implements data reading when executing the computer program.
- the data reading step includes:
- Step S311 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S312 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S313 reading the stripe information stored in the second-level table according to the address recorded in the acquired second-level table.
- the processor also implements data writing when executing the computer program.
- the data writing step includes:
- Step S321 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S322 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S323 writing the information to be written into the space corresponding to the address of the second-level table.
- a mark value is configured for the metadata of the stripe to which the logical volume allocation unit belongs according to the controller, and an opposite mark value is configured for the metadata of the stripe that does not belong to the controller.
- the metadata is written into the power-off protection space, and the metadata bitmap is compressed when writing data.
- the metadata is compressed using a compression algorithm, and the compressed data is written into the power-off protection space; multiple controllers all execute the same compression algorithm, and the power-off protection space is allocated according to the compressed metadata space.
- the controller when the controller is recovering after a failure, the metadata needs to be resynchronized.
- the controller copies the metadata to the target controller according to the metadata synchronization rules, merges it with the target controller's metadata, and saves it to the power-saving memory space. After waiting for the metadata merge to be completed, data reading and writing are allowed to continue.
- the processor also implements data deletion when executing the computer program.
- the data deletion step includes:
- Step S331 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S332 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S333 deleting the information to be deleted in the space corresponding to the address of the second-level table.
- Step S334 regenerate the secondary table according to the logical volume allocation unit after deleting the information, and update the The length of the first-level table and the second-level table and the address of the record.
- the second-level table When the second-level table is regenerated, if there is no other information in the space corresponding to the address of the second-level table, the second-level table is deleted, and the corresponding record in the first-level table is set to invalid.
- the disk space forms multiple logical volume allocation units, each logical volume allocation unit corresponds to a controller; when the deletion information causes the ownership division of the corresponding stripe to change, the information of the stripe with the ownership division change needs to be migrated from the old controller to the new controller. At this time, the information of the stripe in the metadata of the old controller is deleted and the information of the stripe is inserted into the metadata of the new controller.
- the processor also implements data merging when executing the computer program.
- the data merging step includes:
- Step S341 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S342 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S343 recording the information to be inserted into the space corresponding to the address of the second-level table.
- Step S344 regenerate the secondary table according to the logical volume allocation unit after the information is inserted, and update the length and address of the record of the first-level table and the second-level table in the secondary table.
- the disk space forms multiple logical volume allocation units, each logical volume allocation unit corresponds to a controller; when the insertion information causes the ownership division of the corresponding stripe to change, the information of the stripe with the ownership division change needs to be migrated from the old controller to the new controller. At this time, the information of the stripe in the metadata of the old controller is deleted and the information of the stripe is inserted into the metadata of the new controller.
- a non-volatile computer-readable storage medium stores computer-readable instructions, and when the computer-readable instructions are executed by a processor, the following steps are implemented:
- Multiple independent disk redundant arrays form disk space, which is divided into multiple blocks, and multiple blocks are combined into a stripe, and multiple stripes form a logical volume allocation unit;
- a secondary table is generated and stored according to the logical volume allocation unit, and the secondary table includes a first-level table and a second-level table;
- the length of the second-level table is defined according to the ratio of the length of the logical volume allocation unit to the length of a single stripe, and the length of the second-level table is the number of stripes contained in the logical volume allocation unit;
- the length of the first-level table is equal to the size of the disk space divided by the length of the second-level table;
- the address recorded in the first-level table corresponds to the high-order part of the stripe number, and the stored value corresponds to the address of the second-level table;
- the second-level table records a bitmap of a group of stripes, and the address recorded in the second-level table corresponds to the low-order part of the stripe number;
- Managing metadata in logical volume allocation units through secondary tables includes data reading, data writing, data deletion or data merging.
- data reading when the computer program is executed by the processor, data reading is also implemented. As shown in FIG3 , the data reading step includes:
- Step S311 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S312 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S313 reading the stripe information stored in the second-level table according to the address recorded in the acquired second-level table.
- data writing when the computer program is executed by the processor, data writing is also implemented. As shown in FIG4 , the data writing step includes:
- Step S321 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S322 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S323 writing the information to be written into the space corresponding to the address of the second-level table.
- a mark value is configured for the metadata of the stripe to which the logical volume allocation unit belongs according to the controller, and an opposite mark value is configured for the metadata of the stripe that does not belong to the controller.
- the metadata is written into the power-off protection space, and the metadata bitmap is compressed when writing data.
- the metadata is compressed using a compression algorithm, and the compressed data is written into the power-off protection space; multiple controllers all execute the same compression algorithm, and the power-off protection space is allocated according to the compressed metadata space.
- the controller when the controller is recovering after a failure, the metadata needs to be resynchronized.
- the controller copies the metadata to the target controller according to the metadata synchronization rules, merges it with the target controller's metadata, and saves it to the power-saving memory space. After waiting for the metadata merger to be completed, data reading and writing are allowed to continue.
- the computer program also implements data deletion when executed by the processor.
- the data deletion step includes:
- Step S331 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S332 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S333 deleting the information to be deleted in the space corresponding to the address of the second-level table.
- the information to be deleted is deleted from the space corresponding to the address of the second-level table.
- it also includes:
- Step S334 regenerate the secondary table according to the logical volume allocation unit after the information is deleted, and update the length and address of the record of the first-level table and the second-level table in the secondary table.
- the second-level table When the second-level table is regenerated, if there is no other information in the space corresponding to the address of the second-level table, the second-level table is deleted, and the corresponding record in the first-level table is set to invalid.
- the disk space forms multiple logical volume allocation units, each logical volume allocation unit corresponds to a controller; when the deletion information causes the ownership division of the corresponding stripe to change, the information of the stripe with the ownership division change needs to be migrated from the old controller to the new controller. At this time, the information of the stripe in the metadata of the old controller is deleted and the information of the stripe is inserted into the metadata of the new controller.
- data merging when the computer program is executed by the processor, data merging is also implemented. As shown in FIG6 , the data merging step includes:
- Step S341 obtaining a first-level table address corresponding to the stripe number of the data to be modified according to the length of the first-level table, and reading an address recorded in the first-level table according to the first-level table address;
- Step S342 reading the corresponding second-level table according to the address recorded in the first-level table, and obtaining the address recorded in the corresponding second-level table by the stripe number according to the length of the second-level table;
- Step S343 recording the information to be inserted into the space corresponding to the address of the second-level table.
- Step S344 regenerate the secondary table according to the logical volume allocation unit after the information is inserted, and update the length and address of the record of the first-level table and the second-level table in the secondary table.
- the disk space forms multiple logical volume allocation units, each logical volume allocation unit corresponds to a controller; when the insertion information causes the ownership division of the corresponding stripe to change, the information of the stripe with the ownership division change needs to be migrated from the old controller to the new controller. At this time, the information of the stripe in the metadata of the old controller is deleted and the information of the stripe is inserted into the metadata of the new controller.
- Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory.
- Volatile memory may include random access memory (RAM) or external cache memory.
- RAM is available in a variety of forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), RAMbus direct RAM (RDRAM), direct RAMbus dynamic RAM (DRDRAM), and RAMbus dynamic RAM (RDRAM).
- SRAM static RAM
- DRAM dynamic RAM
- SDRAM synchronous DRAM
- DDRSDRAM double data rate SDRAM
- ESDRAM enhanced SDRAM
- SLDRAM synchronous link (Synchlink) DRAM
- RDRAM RAMbus direct RAM
- DRAM direct RAMbus dynamic RAM
- RDRAM RAMbus dynamic RAM
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
本申请涉及一种元数据的管理方法、装置、计算机设备和存储介质。方法包括:多个独立磁盘冗余阵列组成磁盘空间,将磁盘空间划分为多个分块,并将多个分块组合为一个条带,多个条带形成逻辑卷分配单位;根据逻辑卷分配单位生成二级表并存储,二级表包括第一级表和第二级表;通过二级表对逻辑卷分配单位中的元数据进行管理。采用本方法能够通过二级表形式管控元数据,具有实时的数据压缩的特性,更新后的元数据比旧的元数据空间占用缩小,相比于旧的元数据组织形式降低元数据空间占用,且能降低控制器故障以及恢复时的元数据同步时间,提高系统可靠性。
Description
相关申请的交叉引用
本申请要求于2022年10月11日提交中国专利局,申请号为202211240058.4,申请名称为“元数据的管理方法、装置和计算机设备和存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及元数据组织技术领域,特别是涉及一种元数据的管理方法、装置、计算机设备和存储介质。
独立磁盘冗余阵列用多个独立的磁盘组成磁盘系统实现比单块磁盘更好的存储性能和更高的可靠性。多控制器系统即使用多个控制器共同处理用户读写操作,实现多个控制器的性能叠加、安全性叠加。
多个控制器访问相同的地址空间带来了资源访问冲突问题,一种可行的解决方案是将硬盘的地址空间划分到多个控制器,避免资源访问冲突,地址空间隔离避免域间信息交叉。空间的地址划分由逻辑卷层面进行,保证地址空间的独立控制器访问。
控制器需要对阵列执行数据的配置与恢复任务,当执行数据的配置与恢复任务需要记录条带的元数据以按照条带为单位进行任务的调度时,包括但不限于格式化任务,需要记录条带是否已经格式化在保证数据校验一致性的同时避免多次格式化。其中元数据组织形式采用位图的形式,对于第n位采用0描述第n个条带已经格式化。
发明人意识到,根据多个控制器对RAID的条带的划分,单个控制器仅访问所属的条带。对于所有的条带,仅有约1/4划分到单个的控制器,此时对于控制器记录的元数据中约3/4为不属于控制器实际所使用的条带,无疑造成空间的浪费。控制器故障时元数据同步速度也因此受到影响。
发明内容
本申请一方面,提供一种元数据的管理方法,方法包括:
多个独立磁盘冗余阵列组成磁盘空间,将磁盘空间划分为多个分块,并将多个分块组合为一个条带,多个条带形成逻辑卷分配单位;
根据逻辑卷分配单位生成二级表并存储,二级表包括第一级表和第二级表;根据逻辑卷分配单位与单个条带的长度的比值定义第二级表的长度,第二级表的长度为逻辑卷
分配单位包含条带的数量;第一级表的长度等于磁盘空间大小除以第二级表的长度;第一级表记录的地址对应条带编号的高位部分,其中存储的值对应于第二级表的地址;第二级表记录一组条带的位图,第二级表记录的地址对应条带编号的低位部分;以及
通过二级表对逻辑卷分配单位中的元数据进行管理,通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据读取、数据写入、数据删除或数据合并。
在其中一个实施例中,通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据读取,数据读取步骤包括:
根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
根据获取的第二级表中记录的地址读取第二级表中存储的条带信息。
在其中一个实施例中,通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据写入,数据写入步骤包括:
根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
将需要写入的信息在该第二级表地址对应的空间写入数据。
在其中一个实施例中,将需要写入的信息在该第二级表地址对应的空间写入数据时,根据逻辑卷分配单位归属的控制器对所属条带的元数据配置标记值,对于不归属于该控制器的条带的元数据配置相反的标记值,该元数据写入掉电保护空间,在写入数据时进行元数据位图的压缩。
在其中一个实施例中,元数据使用压缩算法进行压缩,压缩后的数据写入掉电保护空间;多个控制器均执行相同的压缩算法,根据压缩后的元数据空间分配掉电保护空间。
在其中一个实施例中,当控制器发生故障后进行恢复时,需要重新同步元数据,控制器根据元数据同步规则拷贝元数据到目标控制器,与目标控制器元数据合并后保存到保电内存空间,等待元数据合并结束后允许继续进行数据的读取和写入。
在其中一个实施例中,通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据删除,数据删除步骤包括:
根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编
号获取对应的第二级表中记录的地址;以及
将需要删除的信息在该第二级表地址对应的空间删除。
在其中一个实施例中,在将需要删除的信息在该第二级表地址对应的空间删除后,还包括:
根据删除信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第一级表及第二级表的长度和记录的地址。
在其中一个实施例中,在将需要删除的信息在该第二级表地址对应的空间删除后,还包括:
在重新生成二级,且该第二级表地址对应的空间中不存在其它信息时,删除该第二级表,并将对应的第一级表中记录的设置为无效。
在其中一个实施例中,磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当删除信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
在其中一个实施例中,通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据合并,数据合并步骤包括:
根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
将需要插入的信息记录在该第二级表地址对应的空间中。
在其中一个实施例中,在将需要插入的信息记录在该第二级表地址对应的空间中后,还包括:
根据插入信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第一级表及第二级表的长度和记录的地址。
在其中一个实施例中,在将需要插入的信息记录在该第二级表地址对应的空间中后,还包括:
在重新生成二级表,且该第二级表地址对应的空间不足时,从其他逻辑卷分配单位中获取一存储空间,新增第二级表,并对应第二级表新增第一级表。
在其中一个实施例中,磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当插入信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
在其中一个实施例中,元数据的压缩算法为根据多控制器均衡时空间均衡的形式进
行压缩。
在其中一个实施例中,上述的方法还包括:
所述独立磁盘冗余阵列在启动后台任务时,预先配置后台任务使用的元数据。
在其中一个实施例中,上述的方法还包括:
在元数据读取数据时,根据元数据压缩后的形式进行读取返回。
另一方面,提供了一种元数据组织装置,装置包括:
形成逻辑卷分配单位模块,用于多个独立磁盘冗余阵列组成磁盘空间,将磁盘空间划分为多个分块,并将多个分块组合为一个条带,多个条带形成逻辑卷分配单位;
生成二级表模块,用于根据逻辑卷分配单位生成二级表并存储,二级表包括第一级表和第二级表;根据逻辑卷分配单位与单个条带的长度的比值定义第二级表的长度,第二级表的长度为逻辑卷分配单位包含条带的数量;第一级表的长度等于磁盘空间大小除以第二级表的长度;第一级表记录的地址对应条带编号的高位部分,其中存储的值对应于第二级表的地址;第二级表记录一组条带的位图,第二级表记录的地址对应条带编号的低位部分;以及
元数据管理模块,用于通过二级表对逻辑卷分配单位中的元数据进行管理;通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据读取、数据写入、数据删除或数据合并。
再一方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
多个独立磁盘冗余阵列组成磁盘空间,将磁盘空间划分为多个分块,并将多个分块组合为一个条带,多个条带形成逻辑卷分配单位;
根据逻辑卷分配单位生成二级表并存储,二级表包括第一级表和第二级表;根据逻辑卷分配单位与单个条带的长度的比值定义第二级表的长度,第二级表的长度为逻辑卷分配单位包含条带的数量;第一级表的长度等于磁盘空间大小除以第二级表的长度;第一级表记录的地址对应条带编号的高位部分,其中存储的值对应于第二级表的地址;第二级表记录一组条带的位图,第二级表记录的地址对应条带编号的低位部分;以及
通过二级表对逻辑卷分配单位中的元数据进行管理通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据读取、数据写入、数据删除或数据合并。
本申请的又一方面还提出一种计算机设备,包括:存储器及一个或多个处理器,存储器中储存有计算机可读指令,上述计算机可读指令被上述一个或多个处理器执行时,使得上述一个或多个处理器实现上述元数据的管理方法的步骤。
本申请的再一方面还提出一个或多个存储有计算机可读指令的非易失性计算机可读存储介质,上述计算机可读指令被上述一个或多个处理器执行时,使得上述一个或多个处理器执行上述元数据的管理方法的步骤。
本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征和优点将从说明书、附图以及权利要求书变得明显。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请根据一个或多个实施例中元数据的管理方法的应用环境图;
图2为本申请根据一个或多个实施例中元数据的管理方法的流程示意图;
图3为本申请根据一个或多个实施例中数据读取步骤的流程示意图;
图4为本申请根据一个或多个实施例中数据写入步骤的流程示意图;
图5为本申请根据一个或多个实施例中数据删除步骤的流程示意图;
图6为本申请根据一个或多个实施例中数据合并步骤的流程示意图;
图7为本申请根据一个或多个实施例中元数据组织装置的结构框图;
图8为本申请根据一个或多个实施例中计算机设备的内部结构图。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的元数据的管理方法,可以应用于如图1所示的应用环境中。其中,多个独立磁盘冗余阵列组成磁盘空间,将磁盘空间划分为多个分块,并将多个分块组合为一个条带,多个条带形成逻辑卷分配单位。
其中,独立冗余磁盘阵列(RAID),文中简称为阵列,由多个磁盘按照一定的空间结构组织而成,用于提供数据存取服务。阵列将多个分块组合为条带,一个条带跨越多个磁盘,是基本冗余单位。单个条带跨越的磁盘数目,条带宽度由用户在创建阵列时直接指定。分块大小是划分为分块的单位,由用户在创建阵列时直接指定分块大小。坏块为无法从磁盘读取且不能通过阵列重构算法进行恢复的数据区域。当存在坏块时需要进行数据恢复。
如图1所示,独立冗余磁盘阵列102(RAID)与服务器104通过连接进行通信。其中,独立冗余磁盘阵列102可以但不限于是适用于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备的磁盘,在图1中以RAID5阵列为例。服务器104为个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104也可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种元数据的管理方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤S1-S3:
步骤S1,多个独立磁盘冗余阵列组成磁盘空间,将磁盘空间划分为多个分块,并将多个分块组合为一个条带,多个条带形成逻辑卷分配单位;
步骤S2,根据逻辑卷分配单位生成二级表并存储,二级表包括第一级表和第二级表;根据逻辑卷分配单位与单个条带的长度的比值定义第二级表的长度,第二级表的长度为逻辑卷分配单位包含条带的数量;第一级表的长度等于磁盘空间大小除以第二级表的长度;第一级表记录的地址对应条带编号的高位部分,其中存储的值对应于第二级表的地址;第二级表记录一组条带的位图,第二级表记录的地址对应条带编号的低位部分;以及
步骤S3,通过二级表对逻辑卷分配单位中的元数据进行管理。
其中,通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据读取、数据写入、数据删除或数据合并。
下面根据步骤S3中对元数据进行管理的方式分为多个实施例进行详细说明。
元数据管理实施例1
在实施例1中,通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据读取,如图3所示,数据读取步骤包括:
步骤S311,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S312,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S313,根据获取的第二级表中记录的地址读取第二级表中存储的条带信息。
元数据管理实施例2
在实施例2中,通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据写入,如图4所示,数据写入步骤包括:
步骤S321,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S322,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S323,将需要写入的信息在该第二级表地址对应的空间写入数据。
在本实施例中,将需要写入的信息在该第二级表地址对应的空间写入数据时,根据逻辑卷分配单位归属的控制器对所属条带的元数据配置标记值,对于不归属于该控制器的条带的元数据配置相反的标记值,该元数据写入掉电保护空间,在写入数据时进行元数据位图的压缩。
在本实施例中,元数据使用压缩算法进行压缩,压缩后的数据写入掉电保护空间;多个控制器均执行相同的压缩算法,根据压缩后的元数据空间分配掉电保护空间。
在本实施例中,当控制器发生故障后进行恢复时,需要重新同步元数据,控制器根据元数据同步规则拷贝元数据到目标控制器,与目标控制器元数据合并后保存到保电内存空间,等待元数据合并结束后允许继续进行数据的读取和写入。
元数据管理实施例3
在实施例3中,通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据删除,如图5所示,数据删除步骤包括:
步骤S331,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S332,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S333,将需要删除的信息在该第二级表地址对应的空间删除。
如图5所示,在本实施例中,在将需要删除的信息在该第二级表地址对应的空间删除后,还包括:
步骤S334,根据删除信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第一级表及第二级表的长度和记录的地址。
在重新生成二级表时,如果该第二级表地址对应的空间中不存在其它信息时,删除该第二级表,并将对应的第一级表中记录的设置为无效。
在本实施例中,磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当删除信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
元数据管理实施例4
在实施例4中,通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据合并,如图6所示,数据合并步骤包括:
步骤S341,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S342,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S343,将需要插入的信息记录在该第二级表地址对应的空间中。
如图6所示,在本实施例中,在将需要插入的信息记录在该第二级表地址对应的空间中后,还包括:
步骤S344,根据插入信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第
一级表及第二级表的长度和记录的地址。
在重新生成二级表时,如果该第二级表地址对应的空间不足,则从其他逻辑卷分配单位中获取一存储空间,新增第二级表,并对应第二级表新增第一级表。
在本实施例中,磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当插入信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
上述元数据的管理方法中,提出一种RAID使用的压缩的元数据的形式,相比于旧的元数据组织形式降低元数据空间占用,且能降低控制器故障以及恢复时的元数据同步时间,提高系统可靠性。
在使用时,RAID在启动后台任务时必须首先配置后台任务使用的元数据,例如包括不限于格式化、重构等启动时必须配置元数据描述RAID的哪些空间区域是已经格式化的,哪些空间区域是没有格式化的,上述的RAID的区域的划分可以以RAID的条带为单位,也可以以RAID的一行分块为单位。
元数据配置作为元数据更新形式的一种,元数据根据RAID的空间区域的控制器归属配置所属的空间区域的元数据以标记值,对于不归属于控制器的空间区域的元数据以相反的标记值,该相反的标记值等同于已经完成相应任务的标记值,该元数据写入掉电保护空间,写入数据时进行元数据位图的压缩。其中相反的标记值等同于已经完成相应任务的标记值是用于多控制器RAID系统的元数据组织形式时,对于某个阵列,某个控制器处理其部分地址空间,该部分地址空间以外的在该控制器视角下的描述与完成任务的描述相同。
元数据使用压缩算法进行压缩,压缩后的数据写入掉电保护空间,多个控制器均执行相同的压缩算法,由于控制器所属空间区域不同压缩后的元数据不同且空间占用不同,根据压缩后的元数据空间分配掉电保护空间。值得注意的是,本申请的元数据使用压缩算法为提出的元数据组织形式,并不等同于window的压缩解压工具,而是一种数据结构,该数据结构允许数据读写,提供比位图的空间节约,后面有提到读取无需解压缩也是这个意思。
控制器故障或者恢复时需要重新同步元数据,控制器根据元数据同步规则拷贝元数据到目标控制器,与目标控制器元数据合并后保存到保电内存空间,控制器故障或者恢复时等待元数据合并结束后允许继续进行数据读写。
在元数据读取数据时,根据元数据压缩后的形式进行读取返回。元数据写入时首先读取旧的元数据,更新元数据的指定位置,压缩元数据并写入到保电内存。元数据除初始化配置外同步的控制器需要同时执行上述的元数据写入逻辑,保持写入的元数据控制器间的同步。
其中元数据的压缩算法的核心在于,根据多控制器均衡时空间均衡的形式进行压缩。由于逻辑卷空间分配单位远大于RAID,对于相邻的多个条带其最被分配的相同的控制器。以划分单位为条带的形式为例。压缩采用二级表的型式,表的第一级记录的下标值对应于条带编号的高位部分,其中存储的值对应于表的第二级下标。表的第二级记录一组条带的位图,描述含义与旧的位图含义等同。这里描述的是一种数据结构,该种数据结构用于替代位图而存储元数据,这里的压缩并非等同于window的压缩工具,而是采用该数据结构存储可以起到空间节约的效果。
根据逻辑卷分配单位与RAID区域划分单位的长度的比值定义表的第二级的长度,第一级的长度等于区域划分数目除以表的第二级的长度。例如对于逻辑卷划分单位为1024M,RAID区域划分单位(即条带)为2M的单位,表的第二级的长度等于1024M/2M=512,因此表的第二级的使用512个bit标识这512的划分单位,对应512个条带。该处是根据二级表长度确认一级表长度,即二级表长度是确定的,即文中提到的根据逻辑卷划分单位进行确定,而数据总量根据实时配置的RAID的空间大小确定,总的RAID的空间大小除以第二级长度即得出第一级长度。
该压缩后的元数据读取时无需解压缩,通过条带编号根据定义表的第一级长度获取对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址,根据地址读取第二级表,通过条带编号根据定义表的第二级长度获取对应的第二级表地址,根据第二级表地址读取第二级表中存储的条带信息。
该元数据形式通过支持删除的方式允许元数据实时压缩:通过需要删除的条带编号根据定义表的第一级长度获取对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;根据地址读取第二级表,通过条带编号根据定义表的第二级长度获取对应的第二级表地址,将需要删除的信息在该第二级表地址对应的空间删除;如果该第二级表地址对应的空间中不存在其它的剩余信息,删除该第二级表,并将对应的第一级表中记录的设置为无效。可理解的是,表的第一级中存储的是表的第二级的物理地址,即表的第一级是表的第二级的索引,节省空间是因为表的第二级是不存在的,此时可以节约空间。其中该第二级表地址对应的空间中不存在其它的剩余信息的意思为该第二级表中已经没有需要存储的数据了,即上面描述的“已完成”、“不属于该控制器”两种情况之一。
其中条带的归属划分发生变化时,其归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时,删除旧的控制器的该条带的信息并将该信息插入到新的控制器的元数据中。
该元数据形式通过支持插入的方式允许元数据合并:通过需要插入的条带编号根据定义表的第一级长度获取对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;如果该地址是有效的,则根据地址读取第二级表,否则申请保电内存空间创建
第二级表,并将第二级表的地址记录在第一级表中;通过条带编号根据定义表的第二级长度获取对应的第二级表地址,将需要插入的信息记录的该第二级表地址对应的空间。
因此,上述元数据的管理方法、装置、计算机设备和存储介质,通过二级表形式管控元数据,具有实时的数据压缩的特性。即在元数据更新时,更新后的元数据比旧的元数据空间占用缩小,这是位图形式没有的特性。本申请在通过二级表对逻辑卷分配单位中的元数据进行管理时,相比于旧的元数据组织形式降低元数据空间占用,且能降低控制器故障以及恢复时的元数据同步时间,提高系统可靠性。
应该理解的是,虽然图2-图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种元数据组织装置10,包括:形成逻辑卷分配单位模块1、生成二级表模块2和元数据管理模块3。
形成逻辑卷分配单位模块1用于多个独立磁盘冗余阵列组成磁盘空间,将磁盘空间划分为多个分块,并将多个分块组合为一个条带,多个条带形成逻辑卷分配单位。
生成二级表模块2用于根据逻辑卷分配单位生成二级表并存储,二级表包括第一级表和第二级表;根据逻辑卷分配单位与单个条带的长度的比值定义第二级表的长度,第二级表的长度为逻辑卷分配单位包含条带的数量;第一级表的长度等于磁盘空间大小除以第二级表的长度;第一级表记录的地址对应条带编号的高位部分,其中存储的值对应于第二级表的地址;第二级表记录一组条带的位图,第二级表记录的地址对应条带编号的低位部分。
元数据管理模块3用于通过二级表对逻辑卷分配单位中的元数据进行管理。
元数据管理模块3通过二级表对逻辑卷分配单位中的元数据进行管理时包括数据读取、数据写入、数据删除或数据合并。
元数据管理模块3根据数据读取、数据写入、数据删除或数据合并的内容设置其具体功能结构,元数据管理模块3包括数据读取模块31、数据写入模块32、数据删除模块33或数据合并模块34,请参阅前文对元数据进行管理的方式的多个实施例了解数据读取模块31、数据写入模块32、数据删除模块33或数据合并模块34的功能。
如图3所示,数据读取模块31用于:根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的
第二级表中记录的地址;以及根据获取的第二级表中记录的地址读取第二级表中存储的条带信息。
如图4所示,数据写入模块32用于:根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及将需要写入的信息在该第二级表地址对应的空间写入数据。
在本实施例中,将需要写入的信息在该第二级表地址对应的空间写入数据时,根据逻辑卷分配单位归属的控制器对所属条带的元数据配置标记值,对于不归属于该控制器的条带的元数据配置相反的标记值,该元数据写入掉电保护空间,在写入数据时进行元数据位图的压缩。
在本实施例中,元数据使用压缩算法进行压缩,压缩后的数据写入掉电保护空间;多个控制器均执行相同的压缩算法,根据压缩后的元数据空间分配掉电保护空间。
在本实施例中,当控制器发生故障后进行恢复时,需要重新同步元数据,控制器根据元数据同步规则拷贝元数据到目标控制器,与目标控制器元数据合并后保存到保电内存空间,等待元数据合并结束后允许继续进行数据的读取和写入。
如图5所示,数据删除模块33用于:根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;将需要删除的信息在该第二级表地址对应的空间删除;以及根据删除信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第一级表及第二级表的长度和记录的地址。
在重新生成二级表时,如果该第二级表地址对应的空间中不存在其它信息时,删除该第二级表,并将对应的第一级表中记录的设置为无效。
在本实施例中,磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当删除信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
如图6所示,数据合并模块34用于:根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;将需要插入的信息记录在该第二级表地址对应的空间中;以及根据插入信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第一级表及第二级表的长度和记录的地址。
在重新生成二级表时,如果该第二级表地址对应的空间不足,则从其他逻辑卷分配单位中获取一存储空间,新增第二级表,并对应第二级表新增第一级表。
在本实施例中,磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当插入信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
关于元数据组织装置的具体限定可以参见上文中对于元数据的管理方法的限定,在此不再赘述。上述元数据组织装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储元数据组织数据。该计算机设备的网络接口用于与外部的独立冗余磁盘阵列通过网络连接通信。该计算机程序被处理器执行时以实现一种元数据的管理方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机可读指令,可读指令由处理器执行时实现以下步骤:
多个独立磁盘冗余阵列组成磁盘空间,将磁盘空间划分为多个分块,并将多个分块组合为一个条带,多个条带形成逻辑卷分配单位;
根据逻辑卷分配单位生成二级表并存储,二级表包括第一级表和第二级表;根据逻辑卷分配单位与单个条带的长度的比值定义第二级表的长度,第二级表的长度为逻辑卷分配单位包含条带的数量;第一级表的长度等于磁盘空间大小除以第二级表的长度;第一级表记录的地址对应条带编号的高位部分,其中存储的值对应于第二级表的地址;第二级表记录一组条带的位图,第二级表记录的地址对应条带编号的低位部分;以及
通过二级表对逻辑卷分配单位中的元数据进行管理;通过二级表对逻辑卷分配单位
中的元数据进行管理中包括数据读取、数据写入、数据删除或数据合并。
在一个实施例中,处理器执行计算机程序时还实现数据读取,如图3所示,数据读取步骤包括:
步骤S311,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S312,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S313,根据获取的第二级表中记录的地址读取第二级表中存储的条带信息。
在一个实施例中,处理器执行计算机程序时还实现数据写入,如图4所示,数据写入步骤包括:
步骤S321,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S322,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S323,将需要写入的信息在该第二级表地址对应的空间写入数据。
在本实施例中,将需要写入的信息在该第二级表地址对应的空间写入数据时,根据逻辑卷分配单位归属的控制器对所属条带的元数据配置标记值,对于不归属于该控制器的条带的元数据配置相反的标记值,该元数据写入掉电保护空间,在写入数据时进行元数据位图的压缩。
在本实施例中,元数据使用压缩算法进行压缩,压缩后的数据写入掉电保护空间;多个控制器均执行相同的压缩算法,根据压缩后的元数据空间分配掉电保护空间。
在本实施例中,当控制器发生故障后进行恢复时,需要重新同步元数据,控制器根据元数据同步规则拷贝元数据到目标控制器,与目标控制器元数据合并后保存到保电内存空间,等待元数据合并结束后允许继续进行数据的读取和写入。
在一个实施例中,处理器执行计算机程序时还实现数据删除,如图5所示,数据删除步骤包括:
步骤S331,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S332,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S333,将需要删除的信息在该第二级表地址对应的空间删除。
如图5所示,在本实施例中,在将需要删除的信息在该第二级表地址对应的空间删除后,还包括:
步骤S334,根据删除信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第
一级表及第二级表的长度和记录的地址。
在重新生成二级表时,如果该第二级表地址对应的空间中不存在其它信息时,删除该第二级表,并将对应的第一级表中记录的设置为无效。
在本实施例中,磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当删除信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
在一个实施例中,处理器执行计算机程序时还实现数据合并,如图6所示,数据合并步骤包括:
步骤S341,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S342,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S343,将需要插入的信息记录在该第二级表地址对应的空间中。
如图6所示,在本实施例中,在将需要插入的信息记录在该第二级表地址对应的空间中后,还包括:
步骤S344,根据插入信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第一级表及第二级表的长度和记录的地址。
在重新生成二级表时,如果该第二级表地址对应的空间不足,则从其他逻辑卷分配单位中获取一存储空间,新增第二级表,并对应第二级表新增第一级表。
在本实施例中,磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当插入信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
关于处理器执行计算机程序时实现步骤的具体限定可以参见上文中对于元数据组织的方法的限定,在此不再赘述。
在一个实施例中,提供了一种非易失性计算机可读存储介质,非易失性计算机可读存储介质存储有计算机可读指令,计算机可读指令被处理器执行时实现以下步骤:
多个独立磁盘冗余阵列组成磁盘空间,将磁盘空间划分为多个分块,并将多个分块组合为一个条带,多个条带形成逻辑卷分配单位;
根据逻辑卷分配单位生成二级表并存储,二级表包括第一级表和第二级表;根据逻辑卷分配单位与单个条带的长度的比值定义第二级表的长度,第二级表的长度为逻辑卷分配单位包含条带的数量;第一级表的长度等于磁盘空间大小除以第二级表的长度;第一级表记录的地址对应条带编号的高位部分,其中存储的值对应于第二级表的地址;第
二级表记录一组条带的位图,第二级表记录的地址对应条带编号的低位部分;以及
通过二级表对逻辑卷分配单位中的元数据进行管理通过二级表对逻辑卷分配单位中的元数据进行管理中包括数据读取、数据写入、数据删除或数据合并。
在一个实施例中,计算机程序被处理器执行时还实现数据读取,如图3所示,数据读取步骤包括:
步骤S311,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S312,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S313,根据获取的第二级表中记录的地址读取第二级表中存储的条带信息。
在一个实施例中,计算机程序被处理器执行时还实现数据写入,如图4所示,数据写入步骤包括:
步骤S321,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S322,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S323,将需要写入的信息在该第二级表地址对应的空间写入数据。
在本实施例中,将需要写入的信息在该第二级表地址对应的空间写入数据时,根据逻辑卷分配单位归属的控制器对所属条带的元数据配置标记值,对于不归属于该控制器的条带的元数据配置相反的标记值,该元数据写入掉电保护空间,在写入数据时进行元数据位图的压缩。
在本实施例中,元数据使用压缩算法进行压缩,压缩后的数据写入掉电保护空间;多个控制器均执行相同的压缩算法,根据压缩后的元数据空间分配掉电保护空间。
在本实施例中,当控制器发生故障后进行恢复时,需要重新同步元数据,控制器根据元数据同步规则拷贝元数据到目标控制器,与目标控制器元数据合并后保存到保电内存空间,等待元数据合并结束后允许继续进行数据的读取和写入。
在一个实施例中,计算机程序被处理器执行时还实现数据删除,如图5所示,数据删除步骤包括:
步骤S331,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S332,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S333,将需要删除的信息在该第二级表地址对应的空间删除。
如图5所示,在本实施例中,在将需要删除的信息在该第二级表地址对应的空间删
除后,还包括:
步骤S334,根据删除信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第一级表及第二级表的长度和记录的地址。
在重新生成二级表时,如果该第二级表地址对应的空间中不存在其它信息时,删除该第二级表,并将对应的第一级表中记录的设置为无效。
在本实施例中,磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当删除信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
在一个实施例中,计算机程序被处理器执行时还实现数据合并,如图6所示,数据合并步骤包括:
步骤S341,根据第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取第一级表中记录的地址;
步骤S342,根据第一级表中记录的地址读取对应的第二级表,根据第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及
步骤S343,将需要插入的信息记录在该第二级表地址对应的空间中。
如图6所示,在本实施例中,在将需要插入的信息记录在该第二级表地址对应的空间中后,还包括:
步骤S344,根据插入信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第一级表及第二级表的长度和记录的地址。
在重新生成二级表时,如果该第二级表地址对应的空间不足,则从其他逻辑卷分配单位中获取一存储空间,新增第二级表,并对应第二级表新增第一级表。
在本实施例中,磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当插入信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
关于处理器执行计算机程序时实现步骤的具体限定可以参见上文中对于元数据组织的方法的限定,在此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)
或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (20)
- 一种元数据的管理方法,其特征在于,包括:多个独立磁盘冗余阵列组成磁盘空间,将所述磁盘空间划分为多个分块,并将多个分块组合为一个条带,多个条带形成逻辑卷分配单位;根据所述逻辑卷分配单位生成二级表并存储,所述二级表包括第一级表和第二级表;根据所述逻辑卷分配单位与单个条带的长度的比值定义所述第二级表的长度;所述第一级表的长度等于所述磁盘空间大小除以所述第二级表的长度;所述第一级表记录的地址对应条带编号的高位部分,其中存储的值对应于所述第二级表的地址;所述第二级表记录一组条带的位图;以及通过二级表对所述逻辑卷分配单位中的元数据进行管理。
- 根据权利要求1所述的元数据的管理方法,其特征在于,所述通过二级表对所述逻辑卷分配单位中的元数据进行管理中包括数据读取,所述数据读取步骤包括:根据所述第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取所述第一级表中记录的地址;根据所述第一级表中记录的地址读取对应的第二级表,根据所述第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及根据获取的第二级表中记录的地址读取第二级表中存储的条带信息。
- 根据权利要求1所述的元数据的管理方法,其特征在于,所述通过二级表对所述逻辑卷分配单位中的元数据进行管理中包括数据写入,所述数据写入步骤包括:根据所述第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取所述第一级表中记录的地址;根据所述第一级表中记录的地址读取对应的第二级表,根据所述第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及将需要写入的信息在该第二级表地址对应的空间写入数据。
- 根据权利要求3所述的元数据的管理方法,其特征在于,所述将需要写入的信息在该第二级表地址对应的空间写入数据时,根据所述逻辑卷分配单位归属的控制器对所属条带的元数据配置标记值,对于不归属于该控制器的条带的元数据配置相反的标记值,该元数据写入掉电保护空间,在写入数据时进行元数据位图的压缩。
- 根据权利要求4所述的元数据的管理方法,其特征在于,元数据使用压缩算法进行压缩,压缩后的数据写入掉电保护空间;多个控制器均执行相同的压缩算法,根据压缩后的元数据空间分配掉电保护空间。
- 根据权利要求5所述的元数据的管理方法,其特征在于,当控制器发生故障后进行恢复时,需要重新同步元数据,控制器根据元数据同步规则拷贝元数据到目标控制器,与目标控制器元数据合并后保存到保电内存空间,等待元数据合并结束后允许继续 进行数据的读取和写入。
- 根据权利要求1所述的元数据的管理方法,其特征在于,所述通过二级表对所述逻辑卷分配单位中的元数据进行管理中包括数据删除,所述数据删除步骤包括:根据所述第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取所述第一级表中记录的地址;根据所述第一级表中记录的地址读取对应的第二级表,根据所述第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及将需要删除的信息在该第二级表地址对应的空间删除。
- 根据权利要求7所述的元数据的管理方法,其特征在于,在所述将需要删除的信息在该第二级表地址对应的空间删除后,还包括:根据删除信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第一级表及第二级表的长度和记录的地址。
- 根据权利要求8所述的元数据的管理方法,其特征在于,在所述将需要删除的信息在该第二级表地址对应的空间删除后,还包括:在重新生成二级表,且该第二级表地址对应的空间中不存在其它信息时,删除该第二级表,并将对应的第一级表中记录的设置为无效。
- 根据权利要求8所述的元数据的管理方法,其特征在于,所述磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当删除信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
- 根据权利要求1所述的元数据的管理方法,其特征在于,所述通过二级表对所述逻辑卷分配单位中的元数据进行管理中包括数据合并,所述数据合并步骤包括:根据所述第一级表的长度获取与需要修改数据的条带编号对应的第一级表地址,根据第一级表地址读取所述第一级表中记录的地址;根据所述第一级表中记录的地址读取对应的第二级表,根据所述第二级表的长度通过条带编号获取对应的第二级表中记录的地址;以及将需要插入的信息记录在该第二级表地址对应的空间中。
- 根据权利要求11所述的元数据的管理方法,其特征在于,在所述将需要插入的信息记录在该第二级表地址对应的空间中后,还包括:根据插入信息后的逻辑卷分配单位重新生成二级表,更新二级表中的第一级表及第二级表的长度和记录的地址。
- 根据权利要求12所述的元数据的管理方法,其特征在于,在所述将需要插入的信息记录在该第二级表地址对应的空间中后,还包括:在重新生成二级表,且该第二级表地址对应的空间不足时,从其他逻辑卷分配单位中获取一存储空间,新增第二级表,并对应第二级表新增第一级表。
- 根据权利要求12所述的元数据的管理方法,其特征在于,所述磁盘空间形成多个逻辑卷分配单位,每一逻辑卷分配单位对应一个控制器;当插入信息导致对应的条带的归属划分发生变化时,存在归属划分变更的条带的信息需要从旧的控制器迁移到新的控制器,此时删除旧的控制器的元数据中的该条带的信息并将该条带的信息插入到新的控制器的元数据中。
- 根据权利要求5所述的元数据的管理方法,其特征在于,元数据的压缩算法为根据多控制器均衡时空间均衡的形式进行压缩。
- 根据权利要求1所述的元数据的管理方法,其特征在于,所述方法还包括:所述独立磁盘冗余阵列在启动后台任务时,预先配置后台任务使用的元数据。
- 根据权利要求5所述的元数据的管理方法,其特征在于,所述方法还包括:在元数据读取数据时,根据元数据压缩后的形式进行读取返回。
- 一种元数据组织装置,其特征在于,所述装置包括:形成逻辑卷分配单位模块,用于多个独立磁盘冗余阵列组成磁盘空间,将所述磁盘空间划分为多个分块,并将多个分块组合为一个条带,多个条带形成逻辑卷分配单位;生成二级表模块,用于根据所述逻辑卷分配单位生成二级表并存储,所述二级表包括第一级表和第二级表;根据所述逻辑卷分配单位与单个条带的长度的比值定义所述第二级表的长度;所述第一级表的长度等于所述磁盘空间大小除以所述第二级表的长度;所述第一级表记录的地址对应条带编号的高位部分,其中存储的值对应于所述第二级表的地址;所述第二级表记录一组条带的位图;以及元数据管理模块,用于通过二级表对所述逻辑卷分配单位中的元数据进行管理;所述通过二级表对所述逻辑卷分配单位中的元数据进行管理中包括数据读取、数据写入、数据删除或数据合并。
- 一种计算机设备,包括存储器及一个或多个处理器,所述存储器中储存有计算机可读指令,所述计算机可读指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行权利要求1至17中任一项所述方法的步骤。
- 一个或多个存储有计算机可读指令的非易失性计算机可读存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得所述一个或多个处理器执行权利要求1至17中任一项所述的方法的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211240058.4A CN115309348B (zh) | 2022-10-11 | 2022-10-11 | 元数据的管理方法、装置和计算机设备和存储介质 |
CN202211240058.4 | 2022-10-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024077860A1 true WO2024077860A1 (zh) | 2024-04-18 |
Family
ID=83868239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2023/081122 WO2024077860A1 (zh) | 2022-10-11 | 2023-03-13 | 元数据的管理方法、装置和计算机设备和存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115309348B (zh) |
WO (1) | WO2024077860A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309348B (zh) * | 2022-10-11 | 2023-03-10 | 苏州浪潮智能科技有限公司 | 元数据的管理方法、装置和计算机设备和存储介质 |
CN115657965B (zh) * | 2022-11-16 | 2023-04-07 | 苏州浪潮智能科技有限公司 | 一种元数据的配置方法、装置及介质 |
CN115543217B (zh) * | 2022-11-29 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 独立冗余磁盘阵列数据组织方法、装置、服务器和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571351B1 (en) * | 2000-04-07 | 2003-05-27 | Omneon Video Networks | Tightly coupled secondary storage system and file system |
CN102200892A (zh) * | 2011-04-29 | 2011-09-28 | 华中科技大学 | 一种基于动态raid系统的扩容方法 |
US20190317889A1 (en) * | 2018-04-15 | 2019-10-17 | Synology Inc. | Apparatuses and methods and computer program products for a redundant array of independent disk (raid) reconstruction |
CN112596673A (zh) * | 2020-12-18 | 2021-04-02 | 南京道熵信息技术有限公司 | 具有双重raid数据保护的多活多控存储系统 |
CN115309348A (zh) * | 2022-10-11 | 2022-11-08 | 苏州浪潮智能科技有限公司 | 元数据的管理方法、装置和计算机设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101997918B (zh) * | 2010-11-11 | 2013-02-27 | 清华大学 | 异构san环境中的海量存储资源按需分配的实现方法 |
CN109918318A (zh) * | 2019-03-06 | 2019-06-21 | 苏州浪潮智能科技有限公司 | Ssd元数据管理方法、装置、设备及可读存储介质 |
US11513702B2 (en) * | 2019-10-17 | 2022-11-29 | EMC IP Holding Company LLC | Placement of metadata on data storage drives in a first storage enclosure of a data storage system |
CN111258807B (zh) * | 2020-01-16 | 2023-05-09 | 四川效率源科技有限责任公司 | 一种逻辑卷管理中raid6缺失磁盘的数据恢复方法 |
CN112764680B (zh) * | 2021-01-20 | 2024-02-06 | 华云数据控股集团有限公司 | 磁盘条带选择方法及存储系统 |
CN113918388A (zh) * | 2021-12-15 | 2022-01-11 | 苏州浪潮智能科技有限公司 | 一种数据恢复方法、装置、设备及存储介质 |
-
2022
- 2022-10-11 CN CN202211240058.4A patent/CN115309348B/zh active Active
-
2023
- 2023-03-13 WO PCT/CN2023/081122 patent/WO2024077860A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6571351B1 (en) * | 2000-04-07 | 2003-05-27 | Omneon Video Networks | Tightly coupled secondary storage system and file system |
CN102200892A (zh) * | 2011-04-29 | 2011-09-28 | 华中科技大学 | 一种基于动态raid系统的扩容方法 |
US20190317889A1 (en) * | 2018-04-15 | 2019-10-17 | Synology Inc. | Apparatuses and methods and computer program products for a redundant array of independent disk (raid) reconstruction |
CN112596673A (zh) * | 2020-12-18 | 2021-04-02 | 南京道熵信息技术有限公司 | 具有双重raid数据保护的多活多控存储系统 |
CN115309348A (zh) * | 2022-10-11 | 2022-11-08 | 苏州浪潮智能科技有限公司 | 元数据的管理方法、装置和计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115309348B (zh) | 2023-03-10 |
CN115309348A (zh) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2024077860A1 (zh) | 元数据的管理方法、装置和计算机设备和存储介质 | |
EP3726364B1 (en) | Data write-in method and solid-state drive array | |
CN106407040B (zh) | 一种远程数据复制方法及系统 | |
CN105190623B (zh) | 日志记录管理 | |
CN105190533B (zh) | 原位快照 | |
US9733862B1 (en) | Systems and methods for reverse point-in-time copy management in a storage system | |
JP4516087B2 (ja) | 一貫性方法及び一貫性システム | |
US20130246726A1 (en) | Method and device for a memory system | |
CN106662981A (zh) | 存储设备、程序和信息处理方法 | |
US20060047926A1 (en) | Managing multiple snapshot copies of data | |
KR101678868B1 (ko) | 플래시 주소 변환 장치 및 그 방법 | |
JP2000099282A (ja) | ファイル管理システム | |
JP2007242019A (ja) | 分散データの階層的管理のための方法及びシステム | |
CN105122241A (zh) | 具有数据库引擎和独立分布式存储服务的数据库系统 | |
CN106326229B (zh) | 一种嵌入式系统的文件存储方法和装置 | |
US11379326B2 (en) | Data access method, apparatus and computer program product | |
US11449402B2 (en) | Handling of offline storage disk | |
US8495010B2 (en) | Method and system for adaptive metadata replication | |
CN110196818A (zh) | 缓存数据的方法、缓存设备和存储系统 | |
US7865673B2 (en) | Multiple replication levels with pooled devices | |
CN106326384A (zh) | 基于fpga的适用于高速海量存储的文件存储方法 | |
WO2024119771A1 (zh) | 基于磁盘阵列卡的存储虚拟化方法、系统、装置及设备 | |
CN103019623A (zh) | 存储盘处理方法及装置 | |
CN114356246B (zh) | Ssd内部数据的存储管理方法、装置、存储介质及ssd设备 | |
CN103744751B (zh) | 存储设备配置信息连续优化备份系统及其使用方法 |
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: 23876073 Country of ref document: EP Kind code of ref document: A1 |