WO2024001112A1 - 一种存储服务器的数据迁移方法、系统、设备及非易失性可读存储介质 - Google Patents

一种存储服务器的数据迁移方法、系统、设备及非易失性可读存储介质 Download PDF

Info

Publication number
WO2024001112A1
WO2024001112A1 PCT/CN2022/141684 CN2022141684W WO2024001112A1 WO 2024001112 A1 WO2024001112 A1 WO 2024001112A1 CN 2022141684 W CN2022141684 W CN 2022141684W WO 2024001112 A1 WO2024001112 A1 WO 2024001112A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage server
strips
migrated
data
storage
Prior art date
Application number
PCT/CN2022/141684
Other languages
English (en)
French (fr)
Inventor
吴睿振
王小伟
王凛
陈静静
张永兴
张旭
Original Assignee
苏州元脑智能科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 苏州元脑智能科技有限公司 filed Critical 苏州元脑智能科技有限公司
Publication of WO2024001112A1 publication Critical patent/WO2024001112A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Definitions

  • This application relates to the field of coding technology, and in particular to a data migration method, system, device and non-volatile readable storage medium for a storage server.
  • EC Erasure Code
  • Erasure Code is a forward error correction technology in coding theory. It can effectively reduce storage overhead while ensuring the same reliability. It is widely used in major storage systems and data centers.
  • RS code Riv-Solomon Code
  • the RS code encodes k data blocks into r additional parity blocks.
  • the way in which these r check blocks are encoded based on Vandermond matrix or Cauchy matrix is called RS erasure code using Vandermond matrix or Cauchy matrix encoding, which can be expressed as:
  • formula (1) represents the use of Vandermond matrix for RS encoding
  • formula (2) represents the use of Cauchy matrix for RS encoding.
  • the upper part of the Vandermond matrix represents the k*k identity matrix. This identity matrix is multiplied by the original data D 1 to D k , and the result is still the original data D 1 to D k .
  • the lower part is the encoding matrix of r*k, which is multiplied by the original data D 1 to D k .
  • the obtained P 1 to Pr are the r pieces of coded data obtained through encoding, or called check data.
  • the original data D 1 to D k can be obtained by using the inverse matrix of the corresponding matrix of the remaining data and multiplying the remaining data.
  • the decoding process can be expressed as formula (3).
  • the core of erasure coding is to construct a reversible encoding matrix. After encoding, the inverse matrix of the encoding is used to restore the original encoded data. Common RS erasure codes use Cauchy matrix or Vandermond matrix. The resulting matrix is completely reversible, and the size of the matrix can be easily expanded.
  • the basic hardware device is a universal memory chip.
  • the universal memory chip controls the storage function. After the storage data is formed and protected through redundant check codes, it is necessary for the user to After setting up the storage server, insert a new disk. At this time, the data needs to be migrated without changing the checksum.
  • Figure 1a is an example of a general storage server that has established an erasure group.
  • D is the user data block
  • P is the parity data block.
  • each row (strip) has 2 P, that is,
  • Figure 1a is a 4+2 erasure construction method.
  • This construction method can be based on the Vandermond matrix of the above formula (1) or the Cauchy matrix of the formula (2), etc.
  • the placement position of P is load-balanced based on the left-hand misalignment.
  • the purpose of this application is to provide a data migration method, system, device and non-volatile readable storage medium for a storage server, so as to effectively perform data migration on the storage server and improve data migration efficiency.
  • a data migration method for a storage server including:
  • the number n of stripes to be migrated is determined based on the storage information
  • n strips are selected from c strips as the strips to be migrated, and the data blocks to be migrated are selected from the n strips to be migrated and migrated to the newly inserted disk, so that the migration After completion, the difference in stripe usage of any two disks in the storage server does not exceed 1;
  • the data content of the check data block of each strip is determined to complete the data migration of the storage server, and for c-n strips among the c strips that are not selected as the strips to be migrated, incremental updates through erasure coding method to determine the data content of the check data blocks of c-n strips;
  • n ⁇ c, m, n, and c are all positive integers, and c represents the number of full stripes used by the storage server before m new disks are inserted into the storage server.
  • determine the storage information of the storage server including:
  • determine the storage information of the storage server including: determining the current disk space usage of the storage server and whether the storage is to be degraded.
  • determining the storage information of the storage server also includes: updating the storage information of the storage server in real time or periodically.
  • determine the number n of strips to be migrated based on the storage information including:
  • n strips from c strips as strips to be migrated according to the preset migration rules including:
  • select n strips with adjacent strip numbers from c strips as strips to be migrated including:
  • the n strips with the highest strip numbers among the c strips are used as the selected strips to be migrated.
  • preset migration rules include:
  • each data to be migrated is selected sequentially from n stripes to be migrated. blocks and migrate them to the newly inserted disk;
  • the storage server after determining the storage information of the storage server, it also includes:
  • the incomplete stripe is regarded as an empty stripe, and the operation of determining the number n of stripes to be migrated is performed based on the storage information.
  • verify whether the data migration process of the storage server is abnormal including:
  • preset migration rules include:
  • any selected data block to be migrated determine the stripe where the verification data block with the lowest stripe number in the disk where the data block to be migrated is located before the migration. When the strip is in the newly inserted When there is storage space in m disks that is not occupied by any data block to be migrated, the data block to be migrated is migrated to the storage space.
  • the storage server is a storage server in a distributed storage system.
  • the storage server is a storage server in a unified storage system.
  • check data blocks are arranged in a left-handed misalignment manner.
  • the same coding matrix is used when calculating the erasure codes of each strip.
  • a data migration system for storage servers including:
  • the storage information determination module is used to determine the storage information of the storage server
  • the module for determining the number n of stripes to be migrated is used to determine the number n of stripes to be migrated based on the storage information after m new disks are inserted into the storage server;
  • the migration execution module is used to select n strips from c strips as the strips to be migrated according to the preset migration rules, and to select the data blocks to be migrated from the n strips to be migrated and migrate them to the newly inserted disks, so that after the migration is completed, the difference in stripe usage of any two disks in the storage server does not exceed 1;
  • the check data block update module is used to determine the data content of the check data block of each strip to complete the data migration of the storage server, and for c-n strips among the c strips that have not been selected as the strips to be migrated. , determine the data content of the verification data blocks of c-n strips through incremental updating of erasure codes;
  • n ⁇ c, m, n, and c are all positive integers, and c represents the number of full stripes used by the storage server before m new disks are inserted into the storage server.
  • a data migration device for a storage server including:
  • Memory used to store computer programs
  • the processor is configured to execute a computer program to implement the steps of the above data migration method for the storage server.
  • a non-volatile readable storage medium A computer program is stored on the non-volatile readable storage medium. When the computer program is executed by a processor, the steps of the above-mentioned data migration method of the storage server are implemented.
  • the stripes to be migrated will be determined based on the storage information after m new disks are inserted into the storage server.
  • Number n; n ⁇ c, c represents the number of full strips used by the storage server before m disks are newly inserted into the storage server.
  • only c strips will be selected. Part of it, that is, n strips are selected for migration.
  • n-c strips since the user data blocks of these strips in the original disk have not been moved, they only need to be migrated to
  • the data in the newly inserted m disks can be incrementally updated with erasure coding, and the incremental update requires a small amount of calculations, which is beneficial to improving the data migration efficiency of the storage server of this application.
  • this application will select n strips from c strips as stripes to be migrated according to the preset migration rules, and select the data blocks to be migrated from the n strips to be migrated and migrate them to the newly inserted disk. , so that after the migration is completed, the difference in stripe usage of any two disks in the storage server does not exceed 1.
  • the value of the number n of stripes to be migrated and the settings of the preset migration rules are determined. , which can meet the requirements of load balancing.
  • the amount of data migration is also lower than that of the traditional solution, which is also conducive to improving data migration efficiency.
  • the solution of this application can effectively migrate data of storage servers, ensure load balancing, and improve data migration efficiency.
  • Figure 1a is a schematic diagram of a new disk inserted into a universal storage server with an erasure group established in the traditional solution;
  • Figure 1b is a schematic diagram of the migration results after data migration for the situation in Figure 1a in the traditional solution
  • Figure 2 is an implementation flow chart of a storage server data migration method in this application
  • Figure 3 is a schematic diagram of a storage server and determined storage information in a specific embodiment of the present application.
  • Figure 4 is a schematic diagram of migration results in a specific embodiment of the present application.
  • Figure 5 is a schematic structural diagram of a data migration system for a storage server in this application.
  • Figure 6 is a schematic structural diagram of a data migration device for a storage server in this application.
  • the core of this application is to provide a data migration method for storage servers, which can effectively migrate data on storage servers, ensure load balancing, and improve data migration efficiency.
  • Figure 2 is an implementation flow chart of a data migration method for a storage server in this application.
  • the data migration method for the storage server may include the following steps:
  • Step S201 Determine the storage information of the storage server.
  • the specific items that need to be determined to store information can be set and adjusted as needed, but it is understandable that the determined storage information of the storage server should be able to determine the information to be stored in subsequent steps.
  • step S201 may specifically include:
  • the determined storage information may include more content.
  • the current disk space usage of the storage server, whether the storage is downgraded, etc. can also be determined as needed.
  • step S201 when executing step S201, it can usually be executed in real time or periodically, that is, the storage information of the storage server is updated in real time or periodically. Therefore, whenever the storage information of the storage server is determined, the determined r is the current number of disks on the storage server, the determined c is the current number of full stripes used by the storage server, and the determined p is the storage server's current number of disks. The current number of parity data blocks in a single stripe.
  • Step S202 After m new disks are inserted into the storage server, the number n of stripes to be migrated is determined based on the storage information.
  • this application will migrate data to ensure load balancing. This application does not migrate all user data blocks, but determines the number of stripes to be migrated n. Subsequently, only the data blocks to be migrated will be selected from the n strips to be migrated for migration. In other words, for the original r disks of the storage server, the user data blocks in the c-n stripes do not need to be migrated.
  • n is a positive integer less than c. Since load balancing needs to be ensured after subsequent migration, n is a known value to be evaluated. That is, when the storage information of the storage server and the number of newly inserted disks m are determined, in order to achieve the data Load balancing after migration, that is, in order to meet the requirement that "after the migration is completed, the difference in stripe usage of any two disks in the storage server does not exceed 1", the number of stripes to be migrated n is a certain value.
  • determining the number n of strips to be migrated may specifically include:
  • c represents the number of full strips used. Assume that in addition to the existing 5 full strips in Figure 3, there is also a strip 6 that is not full, then this unfilled strip is not filled. Participate in calculation, this situation rarely occurs in actual storage server construction.
  • Step S203 Select n strips from c strips as stripes to be migrated according to the preset migration rules, and select the data blocks to be migrated from the n strips to be migrated and migrate them to the newly inserted disk. This ensures that after the migration is completed, the difference in stripe usage of any two disks in the storage server does not exceed 1.
  • n strips need to be selected from c strips as the strips to be migrated.
  • the selection can be made according to the preset migration rules.
  • the specific selection method can be set as needed. , and it should be noted that, in theory, randomly selecting n strips from c strips as strips to be migrated will not affect the implementation of this application.
  • the selection of n strips from c strips as strips to be migrated according to the preset migration rules described in step S203 may specifically include:
  • step S203 "select the data blocks to be migrated from the n strips to be migrated and "When migrating to a newly inserted disk", the program needs to be designed accordingly. If n strips with adjacent strip numbers are selected from c strips as the strips to be migrated, compared with the interval Selecting n strips makes programming more convenient and less error-prone. Therefore, in this implementation, the preset migration rules include: selecting n strips with adjacent strip numbers from c strips as strips to be migrated.
  • n strips with adjacent strip numbers are selected from c strips as strips to be migrated, specifically including:
  • the n strips with the highest strip numbers among the c strips are used as the selected strips to be migrated.
  • This implementation further considers that the n strips with the highest strip numbers among the c strips are used as the selected strips to be migrated. Refer to Figure 4, which is equivalent to moving the lower part of the data upward. Subsequently, It is more convenient to determine whether the trigger condition of "the difference in stripe usage of any two disks in the storage server does not exceed 1" to end the migration has been reached, and it is also convenient to design migration rules. That is, since the n strips with the highest stripe numbers are selected as the strips to be migrated, subsequent migration can be carried out row by row from bottom to top. Programming is less prone to errors and is convenient for design and implementation.
  • the data blocks to be migrated can be selected from the n strips to be migrated and migrated to the newly inserted disk according to the preset migration rules.
  • the specific method of selecting the data blocks to be migrated can be set arbitrarily, and even if it is selected arbitrarily, it will not affect the implementation of this application. Of course, in actual applications, sequential selection is not prone to errors, and since the address of the data blocks needs to be adjusted after migration, the data blocks to be migrated are usually selected in a set order and migrated to the newly inserted m disks.
  • the preset migration rules may specifically include:
  • each data to be migrated is selected sequentially from n stripes to be migrated. blocks and migrate them to the newly inserted disk;
  • the n strips with the highest strip numbers among the c strips are selected as the strips to be migrated. Therefore, in order to migrate in an orderly manner, the strips with the highest strip numbers are used. Migration takes precedence over rules with low stripe numbers, so that data blocks to be migrated can be selected and addresses adjusted in order. It should be noted that the data blocks to be migrated are all user data blocks, and the verification data blocks do not need to be migrated, they only need to be updated or deleted.
  • this implementation method selects the data blocks to be migrated according to the rule that the high disk number to which the data block to be migrated takes precedence over the low disk number.
  • Step S204 Determine the data content of the check data block of each strip to complete the data migration of the storage server, and for c-n strips among the c strips that are not selected as strips to be migrated, use erasure coding to The incremental update method determines the data content of the check data blocks of c-n strips;
  • the data content of the check data blocks of c-n strips can be determined through incremental update of the erasure code.
  • the incremental update method has a low computational cost.
  • the preset migration rules include:
  • any selected data block to be migrated determine the stripe where the verification data block with the lowest stripe number in the disk where the data block to be migrated is located before the migration. When the strip is in the newly inserted When there is storage space in m disks that is not occupied by any data block to be migrated, the data block to be migrated is migrated to the storage space.
  • Figure 4 is still used as an example, and for example, the n strips with the highest strip numbers among the c strips are used as the selected strips to be migrated, and when selecting the data blocks to be migrated, for example, according to the above In the example of this article, the higher stripe number is given priority, and the rule that when the stripe number is the same, the higher disk number is given priority.
  • the position of the data blocks to be migrated is placed in the newly inserted m disks, which is beneficial to improving the calculation efficiency of updating the erasure code.
  • D20 and then D19 will be used as the selected data blocks to be migrated.
  • the disk where the data block to be migrated is disk 6
  • the parity data block with the lowest stripe number in disk 6 is P2
  • the stripe where P2 is located is stripe 1.
  • Stripe 1 has two data block spaces in the two newly inserted disks, and neither of them is occupied by any data blocks to be migrated. Therefore, the data block D20 to be migrated can be moved to stripe 1 in disk 7 or disk 8.
  • the data block D20 to be migrated is migrated to stripe 1 of disk 8 .
  • D19 is used as the selected data block to be migrated.
  • the disk where D19 is located is disk 5
  • the parity data block with the lowest stripe number in disk 5 is P1
  • the stripe where P1 is located is stripe 1.
  • D18 and D17 are selected as the data blocks to be migrated in turn. According to the same rules, if D18 corresponds to P6, then D18 will be moved to stripe 3 of disk 8. D17 corresponds to P5, then D17 will be moved. Move to stripe 3 of disk 7.
  • D16 and D15 as the selected data blocks to be migrated.
  • D16 corresponds to P4, so D16 is moved to stripe 2 of disk 8.
  • D15 corresponds to P3, so D15 is moved to stripe 2 of disk 7. .
  • the condition "the difference in stripe usage of any two disks in the storage server does not exceed 1" is established. Therefore, the remaining D13 and D14 do not need to be migrated.
  • the RS code or RAID algorithm implements the storage erasure function, its parameters are determined based on location information. Therefore, for the requirements of any k data blocks and r check blocks, the general algorithm relationship of the erasure code can be summarized as:
  • the parameter items a 1,1 to a r,k can be, for example, the encoding matrix of the Vandermond matrix in the above formula (1) or the encoding matrix of the Cauchy matrix in the formula (2).
  • P1 and P2 before the storage server inserts m new disks, P1 and P2 can be expressed as: After migrating according to the implementation of Figure 4, P1′ and P2′ can be expressed as:
  • the storage server of this application can be applied to unified storage or distributed storage.
  • distributed storage that is, when the storage server is a storage server in a distributed storage system, reading data across nodes will take longer and is prone to errors.
  • This implementation tries to read from the same disk as much as possible. The required data reduces the probability of reading data across nodes, and the advantage is more obvious.
  • RS encoding uses Galois field GF, so the above It is the addition of Galois field, which is usually XOR in computers.
  • P3 and P4 can be expressed as: After migrating according to the embodiment of Figure 4, P3′ and P4′ can be expressed as:
  • the parity data blocks in Figure 4 are arranged in a left-handed misalignment manner, for strip 4, the determined parity data blocks P7′ and P8′ can be expressed as: And placed in disk 7 and disk 8. In other situations, the check data blocks can also be arranged in other ways than left-hand misalignment, which does not affect the implementation of the present application.
  • the same coding matrix can be used, or different coding matrices can be used.
  • the same coding matrix is usually used in practical applications.
  • determining the storage information of the storage server it may also include:
  • the not-full strip is regarded as an empty strip, and an operation is performed to determine the number n of strips to be migrated based on the storage information.
  • c in this application represents the number of full strips used.
  • Figure 3 assume that in addition to the existing 5 full strips in Figure 3, there is also a strip 6 that is not full. , then the unfilled strip does not participate in the operation.
  • this situation rarely occurs in actual storage server construction, in this implementation, considering that this situation occurs, in order to avoid abnormal execution of the solution of this application , after determining that there is an incomplete stripe, the incomplete stripe will be regarded as an empty stripe, and then the operation of step S201 will be performed.
  • step S204 it may also include:
  • verifying whether the data migration process of the storage server is abnormal may specifically include:
  • This implementation method takes into account that the total number of user data blocks before the storage server newly inserts m disks should be consistent with the total number of user data blocks after inserting m disks and performing data migration. If they are inconsistent, the storage server can determine The data migration process of the server is abnormal. For example, due to communication failure, poor contact in several of the m newly inserted disks, etc., some user data blocks are not successfully migrated to the newly inserted disks.
  • This implementation method determines whether the data migration process of the storage server is abnormal by whether the total number of user data blocks is consistent, which is more convenient because verifying the total number of user data blocks takes very little time and does not occupy too many resources.
  • the storage server may also include:
  • the event log of this data migration process is recorded to assist staff in handling abnormal events, analyze the causes of exceptions, and adopt corresponding countermeasures to avoid or reduce the probability of such exceptions occurring in the future.
  • the stripes to be migrated will be determined based on the storage information after m new disks are inserted into the storage server.
  • Number n; n ⁇ c, c represents the number of full strips used by the storage server before m disks are newly inserted into the storage server.
  • only c strips will be selected. Part of it, that is, n strips are selected for migration.
  • n-c strips since the user data blocks of these strips in the original disk have not been moved, they only need to be migrated to
  • the data in the newly inserted m disks can be incrementally updated with erasure coding, and the incremental update requires a small amount of calculations, which is beneficial to improving the data migration efficiency of the storage server of this application.
  • this application will select n strips from c strips as stripes to be migrated according to the preset migration rules, and select the data blocks to be migrated from the n strips to be migrated and migrate them to the newly inserted disk. , so that after the migration is completed, the difference in stripe usage of any two disks in the storage server does not exceed 1.
  • the value of the number n of stripes to be migrated and the settings of the preset migration rules are determined. , which can meet the requirements of load balancing.
  • the amount of data migration is also lower than that of the traditional solution, which is also conducive to improving data migration efficiency.
  • the solution of this application can effectively migrate data of storage servers, ensure load balancing, and improve data migration efficiency.
  • the embodiment of the present application also provides a data migration system for a storage server, which can be mutually referenced with the above.
  • Figure 5 is a schematic structural diagram of a data migration system for a storage server in this application, including:
  • the storage information determination module 501 is used to determine the storage information of the storage server
  • the number n of stripes to be migrated determination module 502 is used to determine the number of stripes n to be migrated based on the storage information after m new disks are inserted into the storage server;
  • the migration execution module 503 is used to select n strips from c strips as stripes to be migrated according to the preset migration rules, and select the data blocks to be migrated from the n strips to be migrated and migrate them to the newly inserted strips. disks, so that after the migration is completed, the difference in stripe usage of any two disks in the storage server does not exceed 1;
  • the check data block update module 504 is used to determine the data content of the check data block of each strip to complete the data migration of the storage server, and to target c-n strips among the c strips that are not selected as strips to be migrated. strip, determine the data content of the verification data blocks of c-n strips through incremental update of erasure coding;
  • n ⁇ c, m, n, and c are all positive integers, and c represents the number of full stripes used by the storage server before m new disks are inserted into the storage server.
  • the storage information determination module 501 is specifically used for:
  • the module 502 for determining the number n of stripes to be migrated is specifically used for:
  • n strips are selected from c strips as strips to be migrated according to preset migration rules, including:
  • n strips with adjacent strip numbers are selected from c strips as strips to be migrated, including:
  • the n strips with the highest strip numbers among the c strips are used as the selected strips to be migrated.
  • the preset migration rules include:
  • each data to be migrated is selected sequentially from n stripes to be migrated. blocks and migrate them to the newly inserted disk;
  • the storage information determination module 501 determines the storage information of the storage server, it also includes a first judgment module for:
  • the not-full strip is regarded as an empty strip, and the determination module 502 of the number n of strips to be migrated is triggered.
  • check data block update module 504 determines the data content of the check data block of each stripe, it also includes a verification module for:
  • the verification module is specifically used to:
  • the verification module is also used to:
  • the preset migration rules include:
  • any selected data block to be migrated determine the stripe where the verification data block with the lowest stripe number in the disk where the data block to be migrated is located before the migration. When the strip is in the newly inserted When there is storage space in m disks that is not occupied by any data block to be migrated, the data block to be migrated is migrated to the storage space.
  • the storage server is a storage server in a distributed storage system.
  • inventions of the present application also provide a data migration device for a storage server and a non-volatile readable storage medium.
  • the data migration device for the storage server Can include:
  • Memory 601 used to store computer programs
  • the processor 602 is configured to execute a computer program to implement the steps of the data migration method of the storage server in any of the above embodiments.
  • the non-volatile readable storage medium stores a computer program.
  • the steps of the data migration method of the storage server in any of the above embodiments are implemented.
  • the non-volatile readable storage media mentioned here include random access memory (RAM), memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, register, hard disk, removable disk, CD - ROM, or any other form of storage medium known in the technical field.

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

本申请公开了一种存储服务器的数据迁移方法、系统、设备及非易失性可读存储介质,包括:在新插入m个磁盘后,根据存储服务器的存储信息确定出待迁移条带数量n;按照预设迁移规则从c个满条带中选取出n个待迁移条带,并从中选取出待迁移数据块且迁移至新插入的磁盘中,以使得迁移完成之后,存储服务器中的任意2个磁盘的条带使用量的差异不超过1;确定出各个条带的校验数据块的数据内容以完成存储服务器的数据迁移,且针对c个条带中未被选取为待迁移条带的c-n个条带,通过纠删码的增量更新的方式,确定出c-n个条带的校验数据块的数据内容。应用本申请的方案,可以有效地进行存储服务器的数据迁移,保障了负载均衡,且能够提高数据迁移效率。

Description

一种存储服务器的数据迁移方法、系统、设备及非易失性可读存储介质
相关申请的交叉引用
本申请要求于2022年6月30日提交中国专利局,申请号为202210759836.4,申请名称为“一种存储服务器的数据迁移方法、系统、设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及编码技术领域,特别是涉及一种存储服务器的数据迁移方法、系统、设备及非易失性可读存储介质。
背景技术
目前,而对海量数据的存储需求,分布式存储得到了广泛的应用。分布式存储系统中的节点数量较多,单个节点的可靠性通常不会很高,且由于软硬件故障,人为失误等原因,导致系统常常发生节点失效的情况。因此,为了提高分布式存储系统的数据可靠性,实现原始文件的重构,会在存储原始数据的基础上,额外存储一定数量的数据冗余,使得在出现部分节点失效的情况下,仍然可以对原始文件实现解码恢复,保障系统的正常运行。
EC(Erasure Code,纠删码)是编码理论中的一种向前纠错技术,可以在保证相同可靠性的前提下有效地降低存储开销,被广泛地应用于各大存储系统以及数据中心。纠删码的种类众多,RS码(Reed-Solomon Code,里德所罗门码)是实际存储系统中较常见的一种。RS码将k个数据块编码为r个额外的校验块。而这r个校验块基于范德蒙矩阵或柯西矩阵进行编码的获得方式就称为利用范德蒙矩阵或柯西矩阵编码的RS纠删码,可以表示为:
Figure PCTCN2022141684-appb-000001
Figure PCTCN2022141684-appb-000002
其中,公式(1)表示的是采用范德蒙矩阵进行RS编码,公式(2)表示的是采用柯西矩阵进行RS编码。以公式(1)为例,范德蒙矩阵上部分表示的是k*k的单位矩阵,该单位矩阵与原始数据D 1至D k相乘,得到的结果仍然是原始数据D 1至D k。下部分的是r*k的编码矩阵,与原始数据D 1至D k相乘,得到的P 1至Pr就是通过编码所得到的r个编码数据,或者称为校验数据,当D 1至Pr中的至多r个数据出错或者丢失时,利用剩余数据对应矩阵的逆矩阵,与这些剩余数据相乘,便可以得到原始数据D 1至D k。例如当D 1至Dr丢失时,解码过程可以表示为公式(3)。
Figure PCTCN2022141684-appb-000003
可以看出,纠删码的核心是构建一个可逆的编码矩阵,编码后利用编码的逆矩阵来恢复原始编码的数据。常见的RS纠删码使用的是柯西矩阵或范德蒙矩阵,所得到的矩阵完全可逆,并且矩阵的大小扩充简单。
无论分布式还是统一式存储,基础的硬件设备都是通用存储芯片,通用存储芯片进行存储功能控制,当完成存储数据的组建,并通过冗余校验码保护起来后,都需要而对用户在组建好存储服务器之后进行新插入磁盘的操作,此时在不改变校验量的前提下,需要对数据进行迁移。
可参阅图1a和图1b,图1a的左侧为一个已经组建好纠删组的通用存储服务器示例,该存储服务器中共有6块磁盘,其中的D为用户数据块,P为校验数据块,每行(条带)有2个P,即图1a为4+2的纠删组建方式,该组建方式例如可以基于上述公式(1)的范德蒙矩阵或公式(2)的柯西矩阵等RS纠删方式进行组建。图1a中,P的落盘位置基于左旋不对齐方式进行了负载均衡的排布。此时假设基于用户要求,或磁盘负载压力较大等原因,新插入了图1a的右侧的磁盘7和磁盘8,便需要对现有的数据进行迁移,相应的,迁移之后的每行(条带)的校验数据块也需要重新生成。可参阅图1b,数据迁移后,D5至D20,一共16块用户数据块需要移位,此外校验数据块P1’至P10’需要重新计算。通过简化算法,其中只有P1’和P2’可以增量更新,P3’至P10’所在行因为移位数据较多,即编码数据变化程度较大,因此只能重新进行编码运算得到P3’至P10’,可知这样的运算量很大,也就不利于提高数据迁移效率。
综上所述,如何有效地进行存储服务器的数据迁移,且提高数据迁移效率,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种存储服务器的数据迁移方法、系统、设备及非易失性可读存储介质,以有效地进行存储服务器的数据迁移,且提高数据迁移效率。
为解决上述技术问题,本申请提供如下技术方案:
一种存储服务器的数据迁移方法,包括:
确定出存储服务器的存储信息;
在存储服务器新插入m个磁盘之后,根据存储信息,确定出待迁移的条带数量n;
按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,并从n个待迁移条带中选取出待迁移数据块且迁移至新插入的磁盘中,以使得迁移完成之后,存储服务器中的任意2个磁盘的条带使用量的差异不超过1;
确定出各个条带的校验数据块的数据内容以完成存储服务器的数据迁移,且针对c个条带中未被选取为待迁移条带的c-n个条带,通过纠删码的增量更新的方式,确定出c-n个条带的校验数据块的数据内容;
其中,n<c,m,n,c均为正整数,c表示的是在存储服务器新插入m个磁盘之前,存储服务器的满条带使用数量。
可选的,确定出存储服务器的存储信息,包括:
确定出在存储服务器新插入m个磁盘之前的磁盘数量r,满条带使用数量c,以及单个条带的校验数据块数量p。
可选的,确定出存储服务器的存储信息,包括:确定存储服务器当前的磁盘空间使用情况以及是否存储降级。
可选的,确定出存储服务器的存储信息,还包括:实时或者周期性地进行储服务器的存储信息的更新。
可选的,根据存储信息,确定出待迁移的条带数量n,包括:
判断
Figure PCTCN2022141684-appb-000004
是否成立;
如果成立,则确定出的待迁移的条带数量
Figure PCTCN2022141684-appb-000005
如果不成立,则确定出的待迁移的条带数量
Figure PCTCN2022141684-appb-000006
可选的,按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,包括:
从c个条带中选取出条带编号相邻的n个条带作为待迁移条带。
可选的,从c个条带中选取出条带编号相邻的n个条带作为待迁移条带,包括:
将c个条带中条带编号最高的n个条带作为选取出的待迁移条带。
可选的,预设迁移规则包括:
按照高条带编号优先于低条带编号,相同条带编号时,待迁移数据块所属的高磁盘编号优先于低磁盘编号的规则,从n个待迁移条带中依次选取出各个待迁移数据块并迁移至新插入的磁盘中;
在任意1个待迁移数据块完成迁移时,如果存储服务器中的任意2个磁盘的条带使用量的差异不超过1成立,则迁移完成。
可选的,在确定出存储服务器的存储信息之后,还包括:
判断在存储服务器新插入m个磁盘之前,是否存在未写满的条带;
如果不存在未写满的条带,则执行根据存储信息,确定出待迁移的条带数量n的操作;
如果存在未写满的条带,则将未写满的条带视为是空条带,并执行根据存储信息,确定出待迁移的条带数量n的操作。
可选的,在确定出各个条带的校验数据块的数据内容之后,还包括:
验证存储服务器的数据迁移过程是否异常,如果存储服务器的数据迁移过程存在异常,则输出提示信息。
可选的,验证存储服务器的数据迁移过程是否异常,包括:
判断存储服务器新插入m个磁盘之前的用户数据块总数量,与插入m个磁盘并进行数据迁移之后的用户数据块总数量是否一致,如果存储服务器新插入m个磁盘之前的用户数据块总数量与插入m个磁盘并进行数据迁移之后的用户数据块总数量不一致,则确定存储服务器的数据迁移过程异常。
可选的,在确定存储服务器的数据迁移过程异常之后,还包括:
进行本次数据迁移过程的事件日志记录。
可选的,预设迁移规则包括:
针对选取出的任意1个待迁移数据块,确定出在迁移之前,该待迁移数据块所在磁盘中的条带编号最低的校验数据块所处的条带,当该条带在新插入的m个磁盘中存在未被任意待迁移数据块占用的存储空间时,将该待迁移数据块迁移至该存储空间。
可选的,存储服务器为分布式存储系统中的存储服务器。
可选的,存储服务器为统一存储系统中的存储服务器。
可选的,校验数据块采用左旋不对齐方式进行排布。
可选的,各个条带的纠删码的计算时,采用同样的编码矩阵。
一种存储服务器的数据迁移系统,包括:
存储信息确定模块,用于确定出存储服务器的存储信息;
待迁移条带数量n确定模块,用于在存储服务器新插入m个磁盘之后,根据存储信息,确定出待迁移的条带数量n;
迁移执行模块,用于按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,并从n个待迁移条带中选取出待迁移数据块且迁移至新插入的磁盘中,以使得迁移完成之后,存储服务器中的任意2个磁盘的条带使用量的差异不超过1;
校验数据块更新模块,用于确定出各个条带的校验数据块的数据内容以完成存储服务器的数据迁移,且 针对c个条带中未被选取为待迁移条带的c-n个条带,通过纠删码的增量更新的方式,确定出c-n个条带的校验数据块的数据内容;
其中,n<c,m,n,c均为正整数,c表示的是在存储服务器新插入m个磁盘之前,存储服务器的满条带使用数量。
一种存储服务器的数据迁移设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现如上述的存储服务器的数据迁移方法的步骤。
一种非易失性可读存储介质,非易失性可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的存储服务器的数据迁移方法的步骤。
应用本申请实施例所提供的技术方案,并不是如传统方案中对全部数据块进行重新排布,而是会在存储服务器新插入m个磁盘之后,根据存储信息,确定出待迁移的条带数量n;n<c,c表示的是在存储服务器新插入m个磁盘之前,存储服务器的满条带使用数量,也就是说,本申请的方案中,只会从c个条带中选取出一部分,即选取出其中的n个条带来进行迁移,因此对于剩余的n-c个条带而言,由于这些条带在原有磁盘中的用户数据块是未发生移动的,因此只需要结合迁移至新插入的m个磁盘中的数据,便可以进行纠删码的增量更新,而增量更新的运算量较小,也就有利于提高本申请的存储服务器的数据迁移效率。此外,本申请会按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,并从n个待迁移条带中选取出待迁移数据块且迁移至新插入的磁盘中,使得迁移完成之后,存储服务器中的任意2个磁盘的条带使用量的差异不超过1,也就是说,确定出待迁移的条带数量n的取值,以及预设迁移规则的设置,能够满足负载均衡的要求。此外,由于仅涉及n个条带的数据迁移,因此数据迁移量也低于传统方案,同样有利于提高数据迁移效率。
综上所述,本申请的方案可以有效地进行存储服务器的数据迁移,保障了负载均衡,且能够提高数据迁移效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下而将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下而描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a为传统方案中组建好纠删组的通用存储服务器新插入磁盘的示意图;
图1b为传统方案中对图1a的情况进行数据迁移之后的迁移结果示意图;
图2为本申请中一种存储服务器的数据迁移方法的实施流程图;
图3为本申请一种具体实施方式中的存储服务器以及确定出的存储信息的示意图;
图4为本申请一种具体实施方式中迁移结果示意图;
图5为本申请中一种存储服务器的数据迁移系统的结构示意图;
图6为本申请中一种存储服务器的数据迁移设备的结构示意图。
具体实施方式
本申请的核心是提供一种存储服务器的数据迁移方法,可以有效地进行存储服务器的数据迁移,保障了负载均衡,且能够提高数据迁移效率。
为了使本技术领域的人员更好地理解本申请方案,下而结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图2,图2为本申请中一种存储服务器的数据迁移方法的实施流程图,该存储服务器的数据迁移方法可以包括以下步骤:
步骤S201:确定出存储服务器的存储信息。
具体的,需要确定出的存储信启的具体项目可以根据需要进行设定和调整,但可以理解的是,确定出的存储服务器的存储信息,应当要能够使得后续步骤中可以据此确定出待迁移的条带数量n。
例如,在本申请的一种具体实施方式中,步骤S201可以具体包括:
确定出在存储服务器新插入m个磁盘之前的磁盘数量r,满条带使用数量c,以及单个条带的校验数据块数量p。
该种实施方式中,只需要确定出存储服务器的3个存储参数,后续便可以可以据此确定出待迁移的条带数量n,便于实施。当然,其他实施方式中,确定出的存储信息中可以包括更多内容。例如,一种具体场合中,还可以根据需要确定出存储服务器当前的磁盘空间使用情况,是否存储降级等等。
需要说明的是,在执行步骤S201时,通常可以实时或者周期性执行,即实时或者周期性地进行储服务器的存储信息的更新。因此,每当确定出存储服务器的存储信息时,确定出的r也就是存储服务器当前的磁盘数量,确定出的c也就是存储服务器当前的满条带使用数量,确定出的p也就是存储服务器当前的单个条带的校验数据块数量。
步骤S202:在存储服务器新插入m个磁盘之后,根据存储信息,确定出待迁移的条带数量n。
在存储服务器新插入m个磁盘之后,本申请便会进行数据的迁移以保障负载均衡,而本申请并不是将所有用户数据块均进行迁移,而是会确定出待迁移的条带数量n,后续便只会从n个待迁移条带中选取出待迁移数据块来进行迁移。也就是说,对于存储服务器原有的r个磁盘而言,在这c-n个条带中的用户数据块并不需要迁移。
n为小于c的正整数,由于后续在进行迁移之后需要保障负载均衡,因此n是一个已知待求值,即,当 存储服务器的存储信息以及新插入的磁盘数m确定之后,为了达到数据迁移之后的负载均衡,即,为了能够满足“迁移完成之后,存储服务器中的任意2个磁盘的条带使用量的差异不超过1”,待迁移的条带数量n便是一个确定的数值。
当然,确定出待迁移的条带数量n的具体计算方式有多种。例如在本申请的一种具体实施方式中,步骤S202中描述的根据存储信息,确定出待迁移的条带数量n,可以具体包括:
判断
Figure PCTCN2022141684-appb-000007
是否成立;
如果成立,则确定出的待迁移的条带数量
Figure PCTCN2022141684-appb-000008
如果不成立,则确定出的待迁移的条带数量
Figure PCTCN2022141684-appb-000009
便于理解,以图3为例,在存储服务器新插入m个磁盘之前,磁盘数量r为6,新插入的磁盘数量m为2,单个条带的校验数据块数量p为2,满条带使用数量c为5。
需要强调的是,c表示的是满条带使用数量,假设除了图3中现有的5个满条带之外,还有一个条带6未写满,则此未写满的条带不参与运算,这种情况在实际的存储服务器组建中很少出现。
在图3的实施方式中,c*m=5*2=10,表示的是新插入的磁盘中的存储空间,即chunk(块)的数量,也即图6中的10个空白格子。由于p=2,因此(c*m)/(r-p+m)=10/6=1.67,对1.67向下取整结果为1,1.67-1=0.67。最后,判断0.67*(6-2)是否大于m,由于0.67*(6-2)=2.68,2.68大于2,因此确定出的待迁移的条带数量
Figure PCTCN2022141684-appb-000010
即n=1+1=2。也就是说,对于图3的实施方式,确定出的待迁移的条带数量为2。
步骤S203:按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,并从n个待迁移条带中选取出待迁移数据块且迁移至新插入的磁盘中,以使得迁移完成之后,存储服务器中的任意2个磁盘的条带使用量的差异不超过1。
在确定出待迁移的条带数量n之后,便需要从c个条带中选取出n个条带作为待迁移条带,可以按照预设迁移规则进行选取,具体的选取方式可以根据需要设定,并且需要说明的是,理论上来说,从c个条带中任意选取出n个条带作为待迁移条带,都不影响本申请的实施。
进一步的,在本申请的一种具体实施方式中,步骤S203中描述的按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,可以具体包括:
从c个条带中选取出条带编号相邻的n个条带作为待迁移条带。
如上文描述,理论上来说,从c个条带中任意选取出n个条带作为待迁移条带,都不影响本申请的实施。 但该种实施方式进一步的考虑到,在选取出n个条带作为待迁移条带时,选取方式不同,在执行步骤S203中的“从n个待迁移条带中选取出待迁移数据块且迁移至新插入的磁盘中”时,程序便需要相适应地设计,而如果从c个条带中选取出的是条带编号相邻的n个条带作为待迁移条带,相较于间隔选取n个条带,程序设计可以更加方便,也不容易出错。因此,该种实施方式中,预设迁移规则中便包括:从c个条带中选取出条带编号相邻的n个条带作为待迁移条带。
进一步的,在本申请的一种具体实施方式中,从c个条带中选取出条带编号相邻的n个条带作为待迁移条带,具体包括:
将c个条带中条带编号最高的n个条带作为选取出的待迁移条带。
该种实施方式进一步考虑到,将c个条带中条带编号最高的n个条带作为选取出的待迁移条带,可参阅图4,相当于是将下部分的数据往上移动,后续可以较为方便的判断出是否达到了“存储服务器中的任意2个磁盘的条带使用量的差异不超过1”的结束迁移的这一触发条件,并且,也方便进行迁移规则的设计。即,由于是条带编号最高的n个条带作为选取出的待迁移条带,使得后续可以逐行地从下往上迁移,程序设计不容易出错,方便设计,也就便于实施。
选取出n个待迁移条带之后,便可以按照预设迁移规则,并从n个待迁移条带中选取出待迁移数据块且迁移至新插入的磁盘中。选取出待迁移数据块的具体方式可以任意设定,即便是任意选取,也均不影响本申请的实施。当然,实际应用中,按序选取不容易出错,且由于迁移之后需要进行数据块的地址调整,因此,通常都会按设定顺序选取出待迁移数据块从而迁移至新插入的m个磁盘中。
例如,在本申请的一种可选实施方式中,预设的迁移规则可以具体包括:
按照高条带编号优先于低条带编号,相同条带编号时,待迁移数据块所属的高磁盘编号优先于低磁盘编号的规则,从n个待迁移条带中依次选取出各个待迁移数据块并迁移至新插入的磁盘中;
在任意1个待迁移数据块完成迁移时,如果存储服务器中的任意2个磁盘的条带使用量的差异不超过1成立,则迁移完成。
如上文的描述,该种实施方式中考虑到将c个条带中条带编号最高的n个条带作为选取出的待迁移条带,因此,为了有序地迁移,是按照高条带编号优先于低条带编号的规则进行迁移,从而可以按序进行待迁移数据块的选取以及地址的调整。需要说明的是,待迁移数据块均为用户数据块,校验数据块无需迁移,只需要进行更新或者删除即可。
当条带编号相同时,该种实施方式是按照待迁移数据块所属的高磁盘编号优先于低磁盘编号的规则,进行待迁移数据块的选取。
当任意1个待迁移数据块完成迁移时,“存储服务器中的任意2个磁盘的条带使用量的差异不超过1”这一条件成立,便可以无需继续迁移,后续只需要更新校验数据块即可结束。
步骤S204:确定出各个条带的校验数据块的数据内容以完成存储服务器的数据迁移,且针对c个条带中 未被选取为待迁移条带的c-n个条带,通过纠删码的增量更新的方式,确定出c-n个条带的校验数据块的数据内容;
对于对c个条带中未被选取为待迁移条带的c-n个条带,存储服务器原有的r个磁盘在这c-n个条带中的用户数据块并不迁移,因此,按照纠删码的计算规则可知,对于c-n个条带,通过纠删码的增量更新的方式,便可以确定出c-n个条带的校验数据块的数据内容,增量更新的方式计算量较低。
在本申请的一种可选实施方式中,预设迁移规则包括:
针对选取出的任意1个待迁移数据块,确定出在迁移之前,该待迁移数据块所在磁盘中的条带编号最低的校验数据块所处的条带,当该条带在新插入的m个磁盘中存在未被任意待迁移数据块占用的存储空间时,将该待迁移数据块迁移至该存储空间。
为了便于描述,仍然以图4为例,且例如是将c个条带中条带编号最高的n个条带作为选取出的待迁移条带,并且在选取待迁移数据块时,例如按照上文实施例中的高条带编号优先,相同条带编号时高磁盘编号优先的规则。
该种实施方式,对待迁移数据块放置入新插入的m个磁盘中进行了位置的限制,有利于提高更新纠删码的计算效率。
可选的,图4的实施方式中,按照上述的预设迁移规则,会先将D20,再将D19作为选取出的待迁移数据块。对于用户数据块D20而言,该待迁移数据块所在磁盘为磁盘6,磁盘6中的条带编号最低的校验数据块为P2,P2所处的条带为条带1。条带1在新插入的2个磁盘中存在2个数据块空间,都未被任意待迁移数据块占用,因此,可以将待迁移数据块D20迁入磁盘7或磁盘8中的条带1,例如图4的场合中,待迁移数据块D20是迁移至磁盘8的条带1中。
在D20迁移完毕之后,将D19作为选取出的待迁移数据块。D19所在磁盘为磁盘5,磁盘5中的条带编号最低的校验数据块为P1,P1所处的条带为条带1。此时,条带1在新插入的2个磁盘中只存在1个数据块空间未被任意待迁移数据块占用,因此,可以将待迁移数据块D19迁入至磁盘7的条带1中。
在D19迁移完毕之后,依次将D18和D17作为选取出的待迁移数据块,按照同样的规则,D18对应P6,则将D18迁入至磁盘8的条带3中,D17对应P5,则将D17迁入至磁盘7的条带3中。
最后,将D16和D15作为选取出的待迁移数据块,D16对应P4,则将D16迁入至磁盘8的条带2中,D15对应P3,则将D15迁入至磁盘7的条带2中。在D15迁移完毕之后,“存储服务器中的任意2个磁盘的条带使用量的差异不超过1”这一条件成立,因此,剩余的D13和D14无需迁移。
由于RS码或者或RAID算法在实现存储纠删功能时,其参数基于位置信息决定,因此对于任意k个数据块和r个校验块的需求,纠删码的通用算法关系可以总结为:
Figure PCTCN2022141684-appb-000011
其中的参数项a 1,1至a r,k例如便可以选取上文公式(1)中的范德蒙 矩阵的编码矩阵或者公式(2)中的柯西矩阵的编码矩阵。
具体到图4的实施方式中,在存储服务器新插入m个磁盘之前,P1和P2可以表示为:
Figure PCTCN2022141684-appb-000012
在按照图4的实施方式迁移之后,P1′和P2′可以表示为:
Figure PCTCN2022141684-appb-000013
也就是说,
Figure PCTCN2022141684-appb-000014
因此可以看出,通过原有的P1和P2,再结合D19和D20,便可以完成条带1中的纠删码的增量更新。而P1和D19都来自于磁盘5,P2和D20都来自于磁盘6,因此,只需要从两个磁盘中便可以读取出用于进行条带1中的纠删码的增量更新所需要的4个数据块,相较于从不同的4个磁盘中读取4个数据块的方式,有利于降低数据读取耗时,也就有利于提高更新纠删码的计算效率。
此外的,本申请的存储服务器可以适用于统一存储,也可以适用于分布式存储。特别是在分布式存储中,即存储服务器为分布式存储系统中的存储服务器时,跨节点读取数据的耗时会更长,也容易出错,该种实施方式尽量地从同一磁盘中读取所需要的数据,即降低了跨节点读取数据的概率,优势更为明显。
此外,RS编码使用的是伽罗华域GF,因此上而的
Figure PCTCN2022141684-appb-000015
为伽罗华域的加法,在计算机中通常为异或。
同样的,在图4的实施方式中,在存储服务器新插入m个磁盘之前,P3和P4可以表示为:
Figure PCTCN2022141684-appb-000016
在按照图4的实施方式迁移之后,P3′和P4′可以表示为:
Figure PCTCN2022141684-appb-000017
因此可以看出,通过原有的P3和P4,再结合D15和D16,便可以完成条带2中的纠删码的增量更新。同样的,P3和D15都来自于磁盘3,P4和D16都来自于磁盘4,有利于降低数据读取耗时,也就有利于提高更新纠删码的计算效率。
此外,在图4的实施方式中,由于条带4中仍有数据,即还剩D13和D14未迁移,因此也需要确定出该条带的校验数据块的数据内容。由于图4中的校验数据块采用的是左旋不对齐方式进行了排布,因此,对于条带4而言,确定出的校验数据块P7′和P8′可以表示为:
Figure PCTCN2022141684-appb-000018
并置入磁盘7和磁盘8中。其他场合中,校验数据块也可以采用左旋不对齐之外的其他方式进行排布,并不影响本申请的实施。
此外需要说明的是,在进行各个条带的纠删码的计算时,可以采用同样的编码矩阵,也可以采用不同的 编码矩阵,当然,实际应用中通常都会采用同样的编码矩阵。
在本申请的一种可选实施方式中,在确定出存储服务器的存储信息之后,可以还包括:
判断在存储服务器新插入m个磁盘之前,是否存在未写满的条带;
如果否,则执行根据存储信息,确定出待迁移的条带数量n的操作;
如果是,则将未写满的条带视为是空条带,并执行根据存储信息,确定出待迁移的条带数量n的操作。
正如上文的描述,本申请的c表示的是满条带使用数量,以图3为例,假设除了图3中现有的5个满条带之外,还有一个条带6未写满,则此未写满的条带不参与运算,虽然这种情况在实际的存储服务器组建中很少出现,但该种实施方式中,考虑到该种情况出现时,为了避免本申请方案执行异常,会在判断出存在未写满的条带之后,将未写满的条带视为是空条带,再执行步骤S201的操作。
将未写满的条带视为是空条带,也就可以直接忽略掉该条带,不移动该条带中的任意数据块,当然,后续在判断“存储服务器中的任意2个磁盘的条带使用量的差异不超过1”是否成立时,也是将该条带视为是空条带。
在本申请的一种可选实施方式中,在步骤S204之后,还可以包括:
验证存储服务器的数据迁移过程是否异常,如果是,则输出提示信息。
该种实施方式中,会验证存储服务器的数据迁移过程是否异常,从而提高本申请方案的可靠性,即通过输出的提示信息可以尽早地发现异常情况,从而及早进行修复,避免故障情况加重。
验证存储服务器的数据迁移过程是否异常的方式也可以有多种,例如在本申请的一种可选实施方式中,验证存储服务器的数据迁移过程是否异常,可以具体包括:
判断存储服务器新插入m个磁盘之前的用户数据块总数量,与插入m个磁盘并进行数据迁移之后的用户数据块总数量是否一致,如果否,则确定存储服务器的数据迁移过程异常。
该种实施方式考虑到,存储服务器新插入m个磁盘之前的用户数据块总数量,与插入m个磁盘并进行数据迁移之后的用户数据块总数量应当是一致的,如果不一致,便可以确定存储服务器的数据迁移过程异常,例如由于通信故障,新插入的m个磁盘中若干个接触不良等原因,导致部分用户数据块并未成功迁移到新插入的磁盘中。
该种实施方式通过用户数据块的总数量是否保持一致来确定存储服务器的数据迁移过程异常,较为方便,因为验证用户数据块的总数量的耗时很短,也不会占用过多的资源。
进一步的,在确定存储服务器的数据迁移过程异常之后,还可以包括:
进行本次数据迁移过程的事件日志记录,以便于协助工作人员进行异常事件的处理,分析异常产生的原因进而采用相应对策,以避免或降低后续再出现此类异常的概率。
应用本申请实施例所提供的技术方案,并不是如传统方案中对全部数据块进行重新排布,而是会在存储服务器新插入m个磁盘之后,根据存储信息,确定出待迁移的条带数量n;n<c,c表示的是在存储服务器 新插入m个磁盘之前,存储服务器的满条带使用数量,也就是说,本申请的方案中,只会从c个条带中选取出一部分,即选取出其中的n个条带来进行迁移,因此对于剩余的n-c个条带而言,由于这些条带在原有磁盘中的用户数据块是未发生移动的,因此只需要结合迁移至新插入的m个磁盘中的数据,便可以进行纠删码的增量更新,而增量更新的运算量较小,也就有利于提高本申请的存储服务器的数据迁移效率。此外,本申请会按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,并从n个待迁移条带中选取出待迁移数据块且迁移至新插入的磁盘中,使得迁移完成之后,存储服务器中的任意2个磁盘的条带使用量的差异不超过1,也就是说,确定出待迁移的条带数量n的取值,以及预设迁移规则的设置,能够满足负载均衡的要求。此外,由于仅涉及n个条带的数据迁移,因此数据迁移量也低于传统方案,同样有利于提高数据迁移效率。
综上所述,本申请的方案可以有效地进行存储服务器的数据迁移,保障了负载均衡,且能够提高数据迁移效率。
相应于上而的方法实施例,本申请实施例还提供了一种存储服务器的数据迁移系统,可与上文相互对应参照。
可参阅图5,为本申请中一种存储服务器的数据迁移系统的结构示意图,包括:
存储信息确定模块501,用于确定出存储服务器的存储信息;
待迁移条带数量n确定模块502,用于在存储服务器新插入m个磁盘之后,根据存储信息,确定出待迁移的条带数量n;
迁移执行模块503,用于按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,并从n个待迁移条带中选取出待迁移数据块且迁移至新插入的磁盘中,以使得迁移完成之后,存储服务器中的任意2个磁盘的条带使用量的差异不超过1;
校验数据块更新模块504,用于确定出各个条带的校验数据块的数据内容以完成存储服务器的数据迁移,且针对c个条带中未被选取为待迁移条带的c-n个条带,通过纠删码的增量更新的方式,确定出c-n个条带的校验数据块的数据内容;
其中,n<c,m,n,c均为正整数,c表示的是在存储服务器新插入m个磁盘之前,存储服务器的满条带使用数量。
在本申请的一种可选实施方式中,存储信息确定模块501,具体用于:
确定出在存储服务器新插入m个磁盘之前的磁盘数量r,满条带使用数量c,以及单个条带的校验数据块数量p。
待迁移条带数量n确定模块502,具体用于:
判断
Figure PCTCN2022141684-appb-000019
是否成立;
如果成立,则确定出的待迁移的条带数量
Figure PCTCN2022141684-appb-000020
如果不成立,则确定出的待迁移的条带数量
Figure PCTCN2022141684-appb-000021
在本申请的一种可选实施方式中,按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,包括:
从c个条带中选取出条带编号相邻的n个条带作为待迁移条带。
在本申请的一种可选实施方式中,从c个条带中选取出条带编号相邻的n个条带作为待迁移条带,包括:
将c个条带中条带编号最高的n个条带作为选取出的待迁移条带。
在本申请的一种可选实施方式中,预设迁移规则包括:
按照高条带编号优先于低条带编号,相同条带编号时,待迁移数据块所属的高磁盘编号优先于低磁盘编号的规则,从n个待迁移条带中依次选取出各个待迁移数据块并迁移至新插入的磁盘中;
在任意1个待迁移数据块完成迁移时,如果存储服务器中的任意2个磁盘的条带使用量的差异不超过1成立,则迁移完成。
在本申请的一种可选实施方式中,在存储信息确定模块501确定出存储服务器的存储信息之后,还包括第一判断模块,用于:
判断在存储服务器新插入m个磁盘之前,是否存在未写满的条带;
如果否,则触发待迁移条带数量n确定模块502;
如果是,则将未写满的条带视为是空条带,并触发待迁移条带数量n确定模块502。
在本申请的一种可选实施方式中,在校验数据块更新模块504确定出各个条带的校验数据块的数据内容之后,还包括验证模块,用于:
验证存储服务器的数据迁移过程是否异常,如果是,则输出提示信息。
在本申请的一种可选实施方式中,验证模块具体用于:
判断存储服务器新插入m个磁盘之前的用户数据块总数量,与插入m个磁盘并进行数据迁移之后的用户数据块总数量是否一致,如果否,则确定存储服务器的数据迁移过程异常,输出提示信息。
在本申请的一种可选实施方式中,验证模块还用于:
进行本次数据迁移过程的事件日志记录。
在本申请的一种可选实施方式中,预设迁移规则包括:
针对选取出的任意1个待迁移数据块,确定出在迁移之前,该待迁移数据块所在磁盘中的条带编号最低的校验数据块所处的条带,当该条带在新插入的m个磁盘中存在未被任意待迁移数据块占用的存储空间时,将该待迁移数据块迁移至该存储空间。
在本申请的一种可选实施方式中,存储服务器为分布式存储系统中的存储服务器。
相应于上而的方法和系统实施例,本申请实施例还提供了一种存储服务器的数据迁移设备以及一种非易失性可读存储介质,可参阅图6,该存储服务器的数据迁移设备可以包括:
存储器601,用于存储计算机程序;
处理器602,用于执行计算机程序以实现如上述任一实施例中的存储服务器的数据迁移方法的步骤。
该非易失性可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例中的存储服务器的数据迁移方法的步骤。这里所说的非易失性可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请的保护范围内。

Claims (20)

  1. 一种存储服务器的数据迁移方法,其特征在于,包括:
    确定出存储服务器的存储信息;
    在所述存储服务器新插入m个磁盘之后,根据所述存储信息,确定出待迁移的条带数量n;
    按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,并从n个所述待迁移条带中选取出待迁移数据块且迁移至新插入的磁盘中,以使得迁移完成之后,所述存储服务器中的任意2个磁盘的条带使用量的差异不超过1;
    确定出各个条带的校验数据块的数据内容以完成存储服务器的数据迁移,且针对c个条带中未被选取为待迁移条带的c-n个条带,通过纠删码的增量更新的方式,确定出c-n个条带的校验数据块的数据内容;
    其中,n<c,m,n,c均为正整数,c表示的是在所述存储服务器新插入m个磁盘之前,所述存储服务器的满条带使用数量。
  2. 根据权利要求1所述的存储服务器的数据迁移方法,其特征在于,所述确定出存储服务器的存储信息,包括:
    确定出在所述存储服务器新插入m个磁盘之前的磁盘数量r,满条带使用数量c,以及单个条带的校验数据块数量p。
  3. 根据权利要求1所述的存储服务器的数据迁移方法,其特征在于,所述确定出存储服务器的存储信息,包括:
    确定所述存储服务器当前的磁盘空间使用情况以及是否存储降级。
  4. 根据权利要求1所述的存储服务器的数据迁移方法,其特征在于,所述确定出存储服务器的存储信息,还包括:
    实时或者周期性地进行所述储服务器的存储信息的更新。
  5. 根据权利要求2所述的存储服务器的数据迁移方法,其特征在于,所述根据所述存储信息,确定出待迁移的条带数量n,包括:
    判断
    Figure PCTCN2022141684-appb-100001
    是否成立;
    如果成立,则确定出的待迁移的条带数量
    Figure PCTCN2022141684-appb-100002
    如果不成立,则确定出的待迁移的条带数量
    Figure PCTCN2022141684-appb-100003
  6. 根据权利要求1所述的存储服务器的数据迁移方法,其特征在于,所述按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,包括:
    从c个条带中选取出条带编号相邻的n个条带作为待迁移条带。
  7. 根据权利要求6所述的存储服务器的数据迁移方法,其特征在于,所述从c个条带中选取出条带编号相邻的n个条带作为待迁移条带,包括:
    将c个条带中条带编号最高的n个条带作为选取出的待迁移条带。
  8. 根据权利要求7所述的存储服务器的数据迁移方法,其特征在于,所述预设迁移规则包括:
    按照高条带编号优先于低条带编号,相同条带编号时,待迁移数据块所属的高磁盘编号优先于低磁盘编号的规则,从n个所述待迁移条带中依次选取出各个待迁移数据块并迁移至新插入的磁盘中;
    在任意1个待迁移数据块完成迁移时,如果所述存储服务器中的任意2个磁盘的条带使用量的差异不超过1成立,则迁移完成。
  9. 根据权利要求1所述的存储服务器的数据迁移方法,其特征在于,在确定出存储服务器的存储信息之后,还包括:
    判断在所述存储服务器新插入m个磁盘之前,是否存在未写满的条带;
    如果不存在未写满的条带,则执行所述根据所述存储信息,确定出待迁移的条带数量n的操作;
    如果存在未写满的条带,则将未写满的条带视为是空条带,并执行所述根据所述存储信息,确定出待迁移的条带数量n的操作。
  10. 根据权利要求1所述的存储服务器的数据迁移方法,其特征在于,在所述确定出各个条带的校验数据块的数据内容之后,还包括:
    验证存储服务器的数据迁移过程是否异常,如果存储服务器的数据迁移过程存在异常,则输出提示信息。
  11. 根据权利要求10所述的存储服务器的数据迁移方法,其特征在于,所述验证存储服务器的数据迁移过程是否异常,包括:
    判断存储服务器新插入m个磁盘之前的用户数据块总数量,与插入m个磁盘并进行数据迁移 之后的用户数据块总数量是否一致,如果存储服务器新插入m个磁盘之前的用户数据块总数量与插入m个磁盘并进行数据迁移之后的用户数据块总数量不一致,则确定存储服务器的数据迁移过程异常。
  12. 根据权利要求10所述存储服务器的数据迁移方法,其特征在于,在所述确定存储服务器的数据迁移过程异常之后,还包括:
    进行本次数据迁移过程的事件日志记录。
  13. 根据权利要求1至12任一项所述的存储服务器的数据迁移方法,其特征在于,所述预设迁移规则包括:
    针对选取出的任意1个待迁移数据块,确定出在迁移之前,该待迁移数据块所在磁盘中的条带编号最低的校验数据块所处的条带,当该条带在新插入的m个磁盘中存在未被任意待迁移数据块占用的存储空间时,将该待迁移数据块迁移至该存储空间。
  14. 根据权利要求13所述的存储服务器的数据迁移方法,其特征在于,所述存储服务器为分布式存储系统中的存储服务器。
  15. 根据权利要求13所述的存储服务器的数据迁移方法,其特征在于,所述存储服务器为统一存储系统中的存储服务器。
  16. 根据权利要求1所述的存储服务器的数据迁移方法,其特征在于,所述校验数据块采用左旋不对齐方式进行排布。
  17. 根据权利要求1所述的存储服务器的数据迁移方法,其特征在于,所述各个条带的纠删码的计算时,采用同样的编码矩阵。
  18. 一种存储服务器的数据迁移系统,其特征在于,包括:
    存储信息确定模块,用于确定出存储服务器的存储信息;
    待迁移条带数量n确定模块,用于在所述存储服务器新插入m个磁盘之后,根据所述存储信息,确定出待迁移的条带数量n;
    迁移执行模块,用于按照预设迁移规则从c个条带中选取出n个条带作为待迁移条带,并从n个所述待迁移条带中选取出待迁移数据块且迁移至新插入的磁盘中,以使得迁移完成之后,所述存储服务器中的任意2个磁盘的条带使用量的差异不超过1;
    校验数据块更新模块,用于确定出各个条带的校验数据块的数据内容以完成存储服务器的数据迁移,且针对c个条带中未被选取为待迁移条带的c-n个条带,通过纠删码的增量更新的方式,确定出c-n个条带的校验数据块的数据内容;
    其中,n<c,m,n,c均为正整数,c表示的是在所述存储服务器新插入m个磁盘之前,所述存储服务器的满条带使用数量。
  19. 一种存储服务器的数据迁移设备,其特征在于,包括:
    存储器,用于存储计算机程序;
    处理器,用于执行所述计算机程序以实现如权利要求1至17任一项所述的存储服务器的数据迁移方法的步骤。
  20. 一种非易失性可读存储介质,其特征在于,所述非易失性可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至17任一项所述的存储服务器的数据迁移方法的步骤。
PCT/CN2022/141684 2022-06-30 2022-12-23 一种存储服务器的数据迁移方法、系统、设备及非易失性可读存储介质 WO2024001112A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210759836.4 2022-06-30
CN202210759836.4A CN114816278B (zh) 2022-06-30 2022-06-30 一种存储服务器的数据迁移方法、系统、设备及存储介质

Publications (1)

Publication Number Publication Date
WO2024001112A1 true WO2024001112A1 (zh) 2024-01-04

Family

ID=82523426

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/141684 WO2024001112A1 (zh) 2022-06-30 2022-12-23 一种存储服务器的数据迁移方法、系统、设备及非易失性可读存储介质

Country Status (2)

Country Link
CN (1) CN114816278B (zh)
WO (1) WO2024001112A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114816278B (zh) * 2022-06-30 2022-11-11 苏州浪潮智能科技有限公司 一种存储服务器的数据迁移方法、系统、设备及存储介质
CN115712390B (zh) * 2022-11-14 2023-05-09 安超云软件有限公司 可用数据条带分片数确定方法及系统
CN115599315B (zh) * 2022-12-14 2023-04-07 阿里巴巴(中国)有限公司 数据处理方法、装置、系统、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040210731A1 (en) * 2003-04-16 2004-10-21 Paresh Chatterjee Systems and methods for striped storage migration
CN106293526A (zh) * 2016-08-05 2017-01-04 上海交通大学 一种三盘容错阵列的可扩展方法及系统
CN114115729A (zh) * 2021-10-29 2022-03-01 山东云海国创云计算装备产业创新中心有限公司 一种raid下的高效数据迁移方法
CN114816278A (zh) * 2022-06-30 2022-07-29 苏州浪潮智能科技有限公司 一种存储服务器的数据迁移方法、系统、设备及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4413899B2 (ja) * 2006-08-11 2010-02-10 株式会社東芝 ディスクアレイサブシステム及びプログラム
US20190235777A1 (en) * 2011-10-11 2019-08-01 Donglin Wang Redundant storage system
US10782898B2 (en) * 2016-02-03 2020-09-22 Surcloud Corp. Data storage system, load rebalancing method thereof and access control method thereof
US9569136B2 (en) * 2015-04-29 2017-02-14 International Business Machines Corporation Smart load balancing replication when adding or removing storage disks in a distributed storage system
CN108255413A (zh) * 2016-12-29 2018-07-06 华为技术有限公司 一种存储系统扩容后数据迁移的方法、存储系统
CN108932256A (zh) * 2017-05-25 2018-12-04 中兴通讯股份有限公司 分布式数据重分布控制方法、装置及数据管理服务器
CN111857553A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 管理盘阵列的方法、装置和计算机程序产品
CN111831223B (zh) * 2020-06-19 2021-06-11 华中科技大学 提高数据去重系统可扩展性的容错编码方法、装置及系统
CN111880751B (zh) * 2020-09-28 2020-12-25 浙江大华技术股份有限公司 一种硬盘迁移方法、分布式存储集群系统和存储介质
CN112463050A (zh) * 2020-11-26 2021-03-09 新华三技术有限公司成都分公司 一种存储系统扩容方法、装置、设备及机器可读存储介质
CN112764680B (zh) * 2021-01-20 2024-02-06 华云数据控股集团有限公司 磁盘条带选择方法及存储系统
CN112799604B (zh) * 2021-03-18 2022-06-17 河北工业大学 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法
CN114217740A (zh) * 2021-11-30 2022-03-22 浙江大华技术股份有限公司 一种存储管理方法、设备、系统和计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040210731A1 (en) * 2003-04-16 2004-10-21 Paresh Chatterjee Systems and methods for striped storage migration
CN106293526A (zh) * 2016-08-05 2017-01-04 上海交通大学 一种三盘容错阵列的可扩展方法及系统
CN114115729A (zh) * 2021-10-29 2022-03-01 山东云海国创云计算装备产业创新中心有限公司 一种raid下的高效数据迁移方法
CN114816278A (zh) * 2022-06-30 2022-07-29 苏州浪潮智能科技有限公司 一种存储服务器的数据迁移方法、系统、设备及存储介质

Also Published As

Publication number Publication date
CN114816278A (zh) 2022-07-29
CN114816278B (zh) 2022-11-11

Similar Documents

Publication Publication Date Title
WO2024001112A1 (zh) 一种存储服务器的数据迁移方法、系统、设备及非易失性可读存储介质
JP4668970B2 (ja) フォールトトレラントデータストレージシステムにおけるブロックレベルのデータ破損の検出および訂正
US9442800B2 (en) Data migration between a raid memory and a dispersed storage network memory
US8286029B2 (en) Systems and methods for managing unavailable storage devices
EP1327936B1 (en) Correcting multiple block data loss in a storage array using a combination of a single diagonal parity group and multiple row parity groups
US20140040702A1 (en) Managing a storage array
US20140372838A1 (en) Bad disk block self-detection method and apparatus, and computer storage medium
US9009569B2 (en) Detection and correction of silent data corruption
US20140351632A1 (en) Storing data in multiple formats including a dispersed storage format
US20090055682A1 (en) Data storage systems and methods having block group error correction for repairing unrecoverable read errors
WO2023165536A1 (zh) 一种数据存储方法、系统、设备以及介质
CN115080303B (zh) Raid6磁盘阵列的编码方法、解码方法、装置及介质
EP2921961A2 (en) Method of, and apparatus for, improved data recovery in a storage system
US11656942B2 (en) Methods for data writing and for data recovery, electronic devices, and program products
WO2021072917A1 (zh) 一种raid的写洞保护方法、系统及存储介质
WO2024001126A1 (zh) 一种纠删码融合方法、系统、电子设备及非易失性可读存储介质
CN116501553B (zh) 数据恢复方法、装置、系统、电子设备及存储介质
US11314594B2 (en) Method, device and computer program product for recovering data
WO2023184911A1 (zh) 一种数据存储方法、装置、设备及非易失性可读存储介质
WO2024001494A1 (zh) 一种数据存储的方法、单节点服务器及设备
CN114546272A (zh) 快速通用的raid降级为raid5的方法、系统、设备和存储介质
WO2024051114A1 (zh) 一种数据转存方法、系统、设备及非易失性可读存储介质
WO2024108930A1 (zh) 数据恢复方法及相关设备
WO2023184843A1 (zh) 一种raid编解码方法、装置、设备及可读存储介质
EP4369201A1 (en) Data processing method and apparatus

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: 22949188

Country of ref document: EP

Kind code of ref document: A1