Storage data migration method and device, equipment and medium
By receiving data migration instructions and realizing data block migration based on the adjusted number of verification blocks and hot spare blocks, data migration problems in the prior art are solved and data migration efficiency and reliability are improved.
Patent Information
- Application Number
- CN202411998034.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-31
- Publication Date
- 2025-05-06
- Estimated Expiration
- 2044-12-31
AI Technical Summary
After adjusting the hot standby strategy and RAID levels, the prior art lacks effective ways to migrate stored data to conform to new storage methods.
By receiving data migration instructions, the number of adjusted verification blocks and hot spare blocks in the strip is determined. If the number increases, the data blocks are reduced in the written strip and migrate to the unwritten strip. If the number decreases, the data blocks are added in the unwritten strip and migrate to the written strip.
It realizes the rapid and flexible migration of stored data when adjusting hot standby strategies and RAID levels, making it conform to new storage methods, and improving the efficiency and reliability of data migration.
Smart Images

Figure CN119937923A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of data processing technology, and in particular to a storage data migration method, device, equipment and medium. Background Art
[0002] The hot spare strategy means that by configuring a certain amount of hot spare space, the data on the damaged disk can be moved to the hot spare block (also called hot spare block) for data protection, thereby ensuring data security and system reliability. Different hot spare strategies can correspond to different numbers of hot spare blocks. The check block refers to the block in the stripe used to store the check data. Different RAID levels can correspond to different numbers of check blocks, that is, different RAID levels correspond to different degrees of data redundancy.
[0003] The requirements of user services for hot standby strategies and RAID levels may vary at different stages. Therefore, hot standby strategies and RAID levels are usually adjusted during use. After adjusting the hot standby strategies and RAID levels, new data generated by user services can be stored in a new storage method. However, there is currently no good solution for how to migrate the data (old data) stored in the stripe to make it conform to the new storage method. Summary of the invention
[0004] The present application provides a storage data migration method, device, equipment and medium for quickly and flexibly migrating storage data.
[0005] In a first aspect, the present application provides a method for migrating stored data, the method comprising:
[0006] Receive a data migration instruction, the data migration instruction carrying a first number of adjusted target blocks in a stripe of a disk group DG, wherein the target block includes at least one of a check block and a hot spare block; determine a first total number of adjusted check blocks and hot spare blocks in the stripe according to the first number;
[0007] If the first total number is greater than the second total number of the hot spare blocks and the check blocks before adjustment, determine the second number of data blocks reduced in the stripe of the DG, and migrate the data in the second number of data blocks in each first stripe to which data has been written to the data blocks in the second stripe to which data has not been written;
[0008] If the first total number is less than the second total number, determine the third number of data blocks to be added in the stripe of the DG; determine the third stripe of data to be migrated and the fourth stripe of data to be received in each stripe where data has been written, and migrate the data of the data blocks in the third stripe to the third number of data blocks in the corresponding fourth stripe.
[0009] Through the above method, when a data migration instruction is received, the first total number of adjusted check blocks and hot spare blocks in the DG stripe can be determined; if the first total number is greater than the second total number of check blocks and hot spare blocks in the stripe before adjustment, the second number of data blocks reduced in the stripe can be determined, and the data in the second number of data blocks in each first stripe where data has been written is migrated to the data blocks in the second stripe where data has not been written; if the first total number is less than the second total number, the third number of data blocks increased in the stripe can be determined, and the third stripe of data to be migrated and the fourth stripe of data to be received in each stripe where data has been written can be determined, and the data in the data blocks in the third stripe can be migrated to the third number of data blocks in the corresponding fourth stripe. Based on this, when it is necessary to adjust the hot standby strategy and RAID level, the stored data can be migrated quickly and flexibly to conform to the new storage method.
[0010] In one possible implementation, the process of determining the stripes to which data has been written includes:
[0011] Identify the reference number of the stripe to which the latest data is written when the data migration instruction is received;
[0012] If the data is written in the order of the stripe numbers from small to large, the stripe with a number not greater than the reference number is determined as the stripe with the data written;
[0013] If the data is written in the order of the stripe numbers from large to small, the stripe with a number not less than the reference number is determined as the stripe with the data written.
[0014] Through the above method, since the reference number of the stripe where the latest data is written can be identified when the data migration instruction is received; based on the size relationship between the reference number and the stripe number, the old data that has been written (stored) in the stripe before the data migration instruction is received can be quickly identified, which facilitates the determination of the old data to be migrated.
[0015] In a possible implementation, after determining the second number of data blocks reduced in the stripe of the DG, and before migrating the data in the second number of data blocks in each first stripe to which data has been written to data blocks in the second stripe to which data has not been written, the method further includes:
[0016] Determine whether the number of adjusted data blocks in the stripe is greater than 0; if so, perform a subsequent step of migrating data in the second number of data blocks in each first stripe where data has been written to data blocks in the second stripe where data has not been written.
[0017] Through the above method, after determining the second number of data blocks reduced in the stripe, it can be determined whether the number of adjusted data blocks in the stripe is greater than 0. If it is greater than 0, the subsequent data migration process is performed, thereby ensuring to the greatest extent that user data can be stored safely, effectively and reliably.
[0018] In a possible implementation, the method further includes:
[0019] If the number of adjusted data blocks in the stripe of the DG is not greater than 0, the set error prompt information is output.
[0020] By adopting the above method, when it is identified that the number of adjusted data blocks in the stripe is not greater than 0, the set error prompt information can be output, thereby avoiding to the greatest extent the situation where user data cannot be stored safely, effectively and reliably due to no configured data blocks in the stripe.
[0021] In a possible implementation, the determining a second number of data blocks reduced in the stripe of the DG includes:
[0022] The difference between the first total quantity and the second total quantity is determined as the second quantity.
[0023] Through the above method, when the hot standby strategy and RAID level need to be adjusted, and the first total number of check blocks and hot standby blocks after the adjustment is greater than the second total number of check blocks and hot standby blocks before the adjustment, the difference between the first total number and the second total number is directly determined as the second number of data blocks reduced in the stripe, so that the sum of the number of data blocks, check blocks and hot standby blocks remains unchanged before and after the adjustment, and the occupied data blocks, check blocks and hot standby blocks in the disk group are used to the greatest extent to support the adjustment of the hot standby strategy and RAID level, avoiding the use of new disks (i.e., expanding the capacity of the disks in the disk group) to support the adjustment of the hot standby strategy and RAID level, thereby improving efficiency.
[0024] In a possible implementation, determining a third number of data blocks added in the stripe of the DG includes:
[0025] The difference between the second total quantity and the first total quantity is determined as the third quantity.
[0026] Through the above method, when the hot standby strategy and RAID level need to be adjusted, and the first total number of check blocks and hot standby blocks after the adjustment is less than the second total number of check blocks and hot standby blocks before the adjustment, the difference between the second total number and the first total number is directly determined as the third number of data blocks added in the stripe, so that the sum of the number of data blocks, check blocks and hot standby blocks before and after the adjustment remains unchanged, and the occupied data blocks, check blocks and hot standby blocks in the disk group are used to the greatest extent to support the adjustment of the hot standby strategy and RAID level, avoiding the use of new disks (i.e., expanding the capacity of the disks in the disk group) to support the adjustment of the hot standby strategy and RAID level, thereby improving efficiency.
[0027] In a second aspect, the present application provides a storage data migration device, which has the function of implementing the behavior of the electronic device in the method embodiment of the first aspect above, and the beneficial effects can be referred to the description of the first aspect and will not be repeated here. The storage data migration device includes:
[0028] A receiving module, configured to receive a data migration instruction, wherein the data migration instruction carries a first number of adjusted target blocks in a stripe of a disk group DG, wherein the target block includes at least one of a check block and a hot spare block; and determine a first total number of adjusted check blocks and hot spare blocks in the stripe according to the first number;
[0029] A first migration module is configured to determine a second number of data blocks reduced in the stripes of the DG if the first total number is greater than a second total number of the hot spare blocks and the check blocks before adjustment, and migrate data in the second number of data blocks in each first stripe to which data has been written to data blocks in a second stripe to which data has not been written;
[0030] The second migration module is used to determine the third number of data blocks to be increased in the stripe of the DG if the first total number is less than the second total number; determine the third stripe of data to be migrated and the fourth stripe of data to be received in each stripe to which data has been written, and migrate the data of the data blocks in the third stripe to the third number of data blocks in the corresponding fourth stripe.
[0031] In a possible implementation, the receiving module is further used for:
[0032] Identify the reference number of the stripe to which the latest data is written when the data migration instruction is received;
[0033] If the data is written in the order of the stripe numbers from small to large, the stripe with a number not greater than the reference number is determined as the stripe with the data written;
[0034] If the data is written in the order of the stripe numbers from large to small, the stripe with a number not less than the reference number is determined as the stripe with the data written.
[0035] In a possible implementation, the first migration module is further configured to:
[0036] Determine whether the number of adjusted data blocks in the stripe is greater than 0; if so, perform a subsequent step of migrating data in the second number of data blocks in each first stripe where data has been written to data blocks in the second stripe where data has not been written.
[0037] In a possible implementation, the device further includes:
[0038] The prompt module is used to output a set error prompt message if the number of adjusted data blocks in the stripe of the DG is not greater than 0.
[0039] In a possible implementation, the first migration module is specifically configured to:
[0040] The difference between the first total quantity and the second total quantity is determined as the second quantity.
[0041] In a possible implementation, the second migration module is specifically configured to:
[0042] The difference between the second total quantity and the first total quantity is determined as the third quantity.
[0043] In a third aspect, the present application further provides an electronic device, which includes at least a processor and a memory, and the processor is used to implement the steps of the storage data migration method as described in any one of the first aspects when executing a computer program stored in the memory.
[0044] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, wherein the computer program includes program instructions, and when the program instructions are executed by a computer, the computer performs the steps of the storage data migration method as described in any one of the first aspects.
[0045] In a fifth aspect, an embodiment of the present application provides a computer program product, which includes: a computer program code, which, when executed on a computer, enables the computer to execute the steps of the storage data migration method as described in any one of the first aspects. BRIEF DESCRIPTION OF THE DRAWINGS
[0046] In order to more clearly illustrate the implementation methods in the embodiments of the present application or the related technologies, the following is a brief introduction to the drawings required for use in the embodiments or the related technology descriptions. Obviously, the drawings described below are some embodiments of the present application, and a person skilled in the art can also obtain other drawings based on these drawings.
[0047] Figure 1 A strip schematic diagram provided for an embodiment of the present application;
[0048] Figure 2 A schematic diagram of a storage data migration process provided in an embodiment of the present application;
[0049] Figure 3A A schematic diagram of another storage data migration process provided in an embodiment of the present application;
[0050] Figure 3B A schematic diagram of another storage data migration process provided in an embodiment of the present application;
[0051] Figure 4A A schematic diagram of another storage data migration process provided in an embodiment of the present application;
[0052] Figure 4B A schematic diagram of another storage data migration process provided in an embodiment of the present application;
[0053] Figure 5 A schematic diagram of another storage data migration process provided in an embodiment of the present application;
[0054] Figure 6 A schematic diagram of the structure of a storage data migration device provided in an embodiment of the present application;
[0055] Figure 7 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0056] In order to make the purpose and implementation method of the present application clearer, the exemplary implementation method of the present application will be clearly and completely described below in conjunction with the drawings in the exemplary embodiments of the present application. Obviously, the described exemplary embodiments are only part of the embodiments of the present application, rather than all the embodiments.
[0057] It should be noted that the brief description of terms in this application is only for the convenience of understanding the embodiments described below, and is not intended to limit the embodiments of this application. Unless otherwise specified, these terms should be understood according to their ordinary and common meanings.
[0058] The terms "first", "second", "third", etc. in the specification and claims of this application and the above drawings are used to distinguish similar or similar objects or entities, and do not necessarily mean to limit a specific order or sequence, unless otherwise noted. It should be understood that the terms used in this way can be interchangeable under appropriate circumstances.
[0059] The terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover but not exclude inclusion, for example, a product or device comprising a list of components is not necessarily limited to all the components expressly listed but may include other components not expressly listed or inherent to such product or device.
[0060] The term "module" refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and / or software code that is capable of performing the functions associated with that element.
[0061] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit it. Although the present application has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.
[0062] For the convenience of explanation, the above description has been made in conjunction with specific embodiments. However, the above exemplary discussion is not intended to be exhaustive or limit the embodiments to the specific forms disclosed above. Based on the above teachings, various modifications and variations can be obtained. The selection and description of the above embodiments are to better explain the principles and practical applications, so that those skilled in the art can better use the embodiments and various different variations of the embodiments suitable for specific use considerations.
[0063] Some terms used in the embodiments of the present application are explained below to facilitate understanding by those skilled in the art.
[0064] Block: A partition is divided into multiple blocks of equal size and adjacent addresses. These blocks are called blocks. They are the elements that make up a stripe.
[0065] Stripe: Blocks at the same "position" (or same number) on multiple disk drives in the same disk array. See Figure 1 , Figure 1 A stripe diagram is provided for an embodiment of the present application. The blocks of Disk 0, Disk 1, Disk 2 and Disk 3 at the same "position" can form a stripe.
[0066] Data block: also called data disk or data column, refers to the block in the stripe used to store user data.
[0067] Check block: also known as check disk or check column, refers to the block in the stripe used to store check data.
[0068] Disk Groups (DG): refers to a collection of multiple disks of the same type. For example, Figure 1 Disk 0, Disk 1, Disk 2, Disk 3, Disk 4, Disk 5 (not shown) and other disks in the disk group form a disk group.
[0069] Hot spare block: also known as hot spare disk, refers to the backup device used in the storage system in the disk group, mainly used to provide data protection in the Redundant Array of Independent Disks (RAID) system. When a hard disk (disk) in the RAID system fails, the hot spare disk can immediately take over the work of the failed hard disk to ensure the continuous operation of the system and the security of the data.
[0070] Among them, for each stripe in any DG, the sum of the number of data blocks, the number of check blocks, and the number of hot spare blocks in the stripe is not greater than the total number of disks contained in the DG. In this application, the process of data migration for data stored in each DG is the same. For ease of understanding, the process of data migration is explained below using any DG as an example.
[0071] An embodiment of the present application provides a storage data migration method, apparatus, device and medium. In the method, when a data migration instruction is received, a first number of adjusted target blocks in a stripe of a DG carried in the data migration instruction can be identified, wherein the target blocks can include at least one of check blocks and hot spare blocks, and the first total number of adjusted check blocks and hot spare blocks in any stripe can be determined based on the first number of target blocks; if the first total number is greater than the second total number of check blocks and hot spare blocks in any stripe before adjustment, the second number of data blocks reduced in each stripe can be determined, and data in a second number of data blocks in each first stripe where data has been written is migrated to data blocks in a second stripe where data has not been written; if the first total number is less than the second total number, the third number of data blocks increased in each stripe can be determined, and a third stripe of data to be migrated and a fourth stripe of data to be received in each stripe where data has been written can be determined, and data in the data blocks in the third stripe can be migrated to a third number of data blocks in the corresponding fourth stripe. Based on this, the purpose of quickly and flexibly migrating storage data can be achieved when the hot spare strategy and RAID level need to be adjusted.
[0072] Embodiment 1:
[0073] Figure 2 A schematic diagram of a storage data migration process provided in an embodiment of the present application, the process includes:
[0074] S201: Receive a data migration instruction, wherein the data migration instruction carries a first number of adjusted target blocks in a stripe of a disk group (Disk Groups, DG), wherein the target block includes at least one of a check block and a hot spare block; based on the first number, determine a first total number of adjusted check blocks and hot spare blocks in the stripe.
[0075] The storage data migration method provided in the embodiment of the present application is applied to an electronic device, which may be, for example, a personal computer (PC), a mobile terminal, a server, etc., and the present application does not make any specific limitation on this.
[0076] In a possible implementation, when the RAID level needs to be adjusted, the user can input the number of parity blocks adjusted in the stripe. Similarly, when the hot spare strategy needs to be adjusted, the user can also input the number of hot spare blocks adjusted. In other words, the user can input the number of parity blocks and the number of hot spare blocks adjusted in the stripe at the same time, or only input the number of parity blocks or the number of hot spare blocks adjusted. After the input is completed, the user can trigger the data migration instruction by clicking a button such as "Confirm Adjustment".
[0077] After receiving the data migration instruction, the electronic device can identify the first number of adjusted target blocks in the stripe carried in the data migration instruction, wherein, for the convenience of description, the check blocks and / or hot spare blocks whose number is adjusted in the data migration instruction are referred to as target blocks, that is, the target blocks can include at least one of check blocks and hot spare blocks. The first number of adjusted target blocks in the stripe carried in the data migration instruction may include at least one of the first sub-number of adjusted check blocks and the second sub-number of adjusted hot spare blocks. The total number of adjusted check blocks and hot spare blocks in the stripe can be determined based on the first number (for the convenience of description, the total number of adjusted check blocks and hot spare blocks is referred to as the first total number).
[0078] The present application does not specifically limit the specific values of the first quantity and the first sub-quantity and the second sub-quantity contained in the first quantity. For example, the first sub-quantity can be a value that is increased or decreased compared to before the adjustment. Similarly, the second sub-quantity can be a value that is increased or decreased compared to before the adjustment, and can be flexibly set according to needs.
[0079] When the first quantity only includes the first sub-quantity of adjusted check blocks, it can be considered that only the number of check blocks is adjusted at this time, and the number of hot spare blocks is not adjusted. The sum of the adjusted number of check blocks (first sub-quantity) and the number of hot spare blocks currently used can be determined as the first total number of adjusted check blocks and hot spare blocks in the stripe.
[0080] When the first quantity only includes the adjusted second sub-quantity of hot spare blocks, it can be considered that only the number of hot spare blocks is adjusted at this time, and the number of check blocks is not adjusted. The sum of the adjusted number of hot spare blocks (second sub-quantity) and the number of check blocks currently used can be determined as the first total number of adjusted check blocks and hot spare blocks in the stripe.
[0081] When the first quantity includes both the adjusted first sub-quantity of check blocks and the adjusted second sub-quantity of hot spare blocks, it can be considered that the quantity of check blocks and hot spare blocks needs to be adjusted at the same time, and the sum of the adjusted quantity of check blocks (first sub-quantity) and the adjusted quantity of hot spare blocks (second sub-quantity) can be determined as the first total quantity of adjusted check blocks and hot spare blocks in the stripe.
[0082] In a possible implementation, when the RAID level needs to be adjusted, in addition to inputting the number of adjusted check blocks in the DG stripe, the user can also input the adjusted RAID level (such as RAID5 or RAID6). After the electronic device receives the data migration instruction, it can determine the number of adjusted check blocks in the stripe (first sub-number) based on the pre-saved correspondence between the RAID level and the number of check blocks in the stripe. Exemplarily, when the adjusted RAID level is RAID6, it can be considered that the number of check blocks in the stripe needs to be adjusted to 2. When the adjusted RAID level is RAID5, it can be considered that the number of check blocks in the stripe needs to be adjusted to 1, which will not be repeated here.
[0083] S202: If the first total number is greater than the second total number of the hot spare blocks and the check blocks before adjustment, determine the second number of data blocks reduced in the stripe of the DG, and migrate the data in the second number of data blocks in each first stripe to which data has been written to the data blocks in the second stripe to which data has not yet been written.
[0084] After obtaining the adjusted first total number of check blocks and hot spare blocks in the stripe, the number of data blocks in the stripe can be adjusted accordingly based on the relationship between the first total number of check blocks and hot spare blocks in the adjusted stripe and the total number of check blocks and hot spare blocks in the stripe before adjustment (for ease of description, referred to as the second total number).
[0085] In a possible implementation, when the first total number of check blocks and hot spare blocks in the stripe after adjustment is greater than the second total number of check blocks and hot spare blocks in the stripe before adjustment, it can be considered that the total number of check blocks and hot spare blocks in the stripe needs to be increased at this time. In order to maximize the use of the occupied data blocks, check blocks and hot spare blocks in the disk group to support the adjustment of the hot spare strategy and RAID level, avoid using new disks (i.e., expanding the capacity of the disks in the disk group) to support the adjustment of the hot spare strategy and RAID level, and improve efficiency, the number of data blocks in each stripe can be reduced accordingly. Specifically, the number of data blocks reduced in each stripe can be determined based on the difference between the first total number and the second total number. For example, the difference between the first total number and the second total number can be determined as the number of data blocks reduced in each stripe (for ease of description, referred to as the second number). Exemplarily, when the number of hot spare blocks after adjustment is 2, and the number of check blocks is 3, that is, the first total number is 5; the number of hot spare blocks before adjustment is 1, and the number of check blocks before adjustment is 2, that is, the second total number is 3, at this time, 2 data blocks can be reduced in each stripe.
[0086] The present application can directly determine the difference between the first total number and the second total number as the second number of data blocks reduced in the stripe when the first total number of check blocks and hot spare blocks after adjustment is greater than the second total number of check blocks and hot spare blocks before adjustment. This can ensure that the sum of the number of data blocks, check blocks and hot spare blocks remains unchanged before and after the adjustment, and maximize the use of the occupied data blocks, check blocks and hot spare blocks in the disk group to support the adjustment of the hot spare strategy and RAID level, avoiding the use of new disks (i.e., expanding the capacity of the disks in the disk group) to support the adjustment of the hot spare strategy and RAID level, thereby improving efficiency.
[0087] In a possible implementation, considering that user data is mainly stored in data blocks, the number of data blocks in a stripe cannot usually be 0. In order to ensure that user data can be effectively stored, when it is necessary to reduce the data blocks in the stripe, after determining the second number of data blocks reduced in the stripe, the number of adjusted data blocks in the stripe can be obtained, and it can be determined whether the number of adjusted data blocks in the stripe is greater than 0. If it is greater than 0, the subsequent data migration process can be performed. If the number of adjusted data blocks in the stripe is not greater than (less than or equal to) 0, it can be considered that the user data cannot be effectively stored at this time, and a set error prompt message can be output to prompt the user to modify the hot standby strategy again, etc., without performing the data migration process.
[0088] Since the present application can determine whether the number of adjusted data blocks in the stripe is greater than 0 after determining the second number of data blocks reduced in the stripe, and if it is greater than 0, perform subsequent data migration process, it can ensure to the greatest extent that user data can be stored safely, effectively and reliably.
[0089] In addition, the present application can also output a set error prompt message when it is identified that the number of adjusted data blocks in the stripe is not greater than 0, thereby avoiding to the greatest extent the situation where user data cannot be stored safely, effectively and reliably due to the lack of configured data blocks in the stripe.
[0090] In a possible implementation, after determining the second number of data blocks reduced in the stripe, a data migration process for the stored data can be performed. Specifically, data in the second number of data blocks in each stripe (referred to as the first stripe for ease of description) in the DG in which data has been written can be migrated to data blocks in the second stripe in the DG in which data has not been written.
[0091] For example, assume that before adjusting the hot standby strategy, each stripe in the DG contains 5 data blocks, 2 check blocks, and 1 hot standby block, that is, the composition of data blocks + check blocks + hot standby blocks is 5+2+1. Assuming that after adjusting the hot standby strategy, the number of hot standby blocks needs to be increased from 1 to 2, then the number of data blocks in each stripe can be reduced from 5 to 4. At this time, the number of check blocks remains unchanged, and the composition of data blocks + check blocks + hot standby blocks is changed from 5+2+1 to 4+2+2. Please refer to Figure 3A , Figure 3A Another schematic diagram of the storage data migration process provided for an embodiment of the present application, when migrating the stored data (old data) in the stripe, since the number of data blocks in each stripe is reduced by one, the data in each first stripe with written (stored) data, such as the last data block in stripe 1 (seg1), stripe 2 (seg2), stripe 3 (seg3) and stripe 4 (seg4), such as data in data blocks d15, d25, d35, d45 in the figure, can be migrated to a new stripe where data has not yet been written, such as stripe 5 (seg5) in the figure.
[0092] As another example, assume that before the hot standby strategy is adjusted, each stripe in the DG contains 5 data blocks, 2 check blocks, and the number of hot standby blocks is 1, that is, the composition of data blocks + check blocks + hot standby blocks is 5+2+1. Assume that the hot standby strategy and the number of check blocks (RAID redundancy) need to be adjusted at the same time, the number of hot standby blocks in the DG needs to be increased from 1 to 2, and the number of check blocks in each stripe needs to be increased from 2 to 3, then the composition of data blocks + check blocks + hot standby blocks can be changed from 5+2+1 to 3+3+2. At this time, before and after the adjustment, the sum of the number of data blocks, the number of check blocks, and the number of hot standby blocks in each stripe remains unchanged.
[0093] In a possible implementation, when only the number of check blocks needs to be adjusted and the hot standby strategy does not need to be adjusted, the data migration instruction may only carry the adjusted number of check blocks in each stripe (the first sub-number). Figure 3B , Figure 3B Here is another schematic diagram of a storage data migration process provided for an embodiment of the present application. Assume that before adjusting the RAID level, each stripe in the DG contains 5 data blocks, 2 check blocks, and 1 hot spare block, that is, the composition of data blocks + check blocks + hot spare blocks is 5+2+1. Assuming that the number of check blocks needs to be adjusted, the number of check blocks in each stripe needs to be increased from 2 to 3, and the number of hot spare blocks remains unchanged, then the composition of data blocks + check blocks + hot spare blocks can be changed from 5+2+1 to 4+3+1. It can be seen that before and after the adjustment, the sum of the three numbers, the number of data blocks, the number of check blocks, and the number of hot spare blocks in the stripe remains unchanged. Among them, when migrating the data stored in the stripe (old data), please refer to Figure 3B , taking the case where the number of data blocks in each stripe is reduced by one, the data in the last data blocks d15, d25, d35, and d45 in stripe 1 (seg1), stripe 2 (seg2), stripe 3 (seg3), and stripe 4 (seg4) where data has been written (stored) can be migrated to a new stripe 5 (seg5) where data has not yet been written. At the same time, the number of check blocks in each stripe is increased by one. Based on the three check blocks in each stripe, the data in the check blocks in each stripe (stripe 1, stripe 2, stripe 3, stripe 4, and stripe 5) where data has been written can be determined based on the erasure coding (EC) algorithm. Figure 3A and Figure 3B In the illustrated embodiment, the number of data blocks in each stripe is reduced. It can be considered that after the adjustment, the user space is reduced compared to before the adjustment, and the storage rate of valid data is also reduced accordingly.
[0094] In a possible implementation, the data in the check blocks in each stripe with data written therein can be determined based on the adjusted number of check blocks in each stripe carried in the data migration instruction (first sub-number) and the EC algorithm, which will not be described in detail here.
[0095] S203: If the first total number is less than the second total number, determine the third number of data blocks added in the stripe of the DG; determine the third stripe of data to be migrated and the fourth stripe of data to be received in each stripe where data has been written, and migrate the data of the data blocks in the third stripe to the third number of data blocks in the corresponding fourth stripe.
[0096] In a possible implementation, when the total number of check blocks and hot spare blocks after adjustment (the first total number) is less than the total number of check blocks and hot spare blocks before adjustment (the second total number), it can be considered that the total number of check blocks and hot spare blocks needs to be reduced at this time, and the number of data blocks in each stripe can be increased accordingly. Specifically, the number of data blocks added in each stripe can be determined based on the difference between the second total number and the first total number. For example, the difference between the second total number and the first total number can be determined as the number of data blocks added in each stripe (for ease of description, referred to as the third number). Exemplarily, when the number of hot spare blocks after adjustment is 1, the number of hot spare blocks before adjustment is 2, and the number of check blocks does not need to be adjusted, it can be considered that one hot spare block needs to be reduced, and at this time, one data block can be added to each stripe.
[0097] When the first total number of check blocks and hot spare blocks after adjustment is less than the second total number of check blocks and hot spare blocks before adjustment, the present application can directly determine the difference between the second total number and the first total number as the third number of data blocks added in the stripe, so that the sum of the number of data blocks, check blocks and hot spare blocks remains unchanged before and after the adjustment, and the occupied data blocks, check blocks and hot spare blocks in the disk group are used to the greatest extent to support the adjustment of the hot spare strategy and RAID level, avoiding the use of new disks (i.e., expanding the capacity of the disks in the disk group) to support the adjustment of the hot spare strategy and RAID level, thereby improving efficiency.
[0098] In a possible implementation, after determining the third number of data blocks added in each stripe, the migration process of the stored data can be performed. Specifically, the data blocks in one or some stripes (for ease of description, referred to as the third stripe) where data has been written can be disassembled and migrated to other stripes (for ease of description, referred to as the fourth stripe) where data has been written to meet the new requirement for the number of data blocks in the stripe. For example, the third stripe of data to be migrated and the fourth stripe of data to be received in each stripe where data has been written can be determined, and the data of the data blocks in the third stripe can be migrated to the third number of data blocks in the corresponding fourth stripe.
[0099] For example, assume that before adjusting the hot standby strategy, each stripe in the DG contains 4 data blocks, 3 check blocks, and the number of hot standby blocks is 2, that is, the composition of data blocks + check blocks + hot standby blocks is 4+3+2. Assume that after adjusting the hot standby strategy, the number of hot standby blocks needs to be reduced from 2 to 1, and the number of check blocks remains unchanged. Then the number of data blocks in each stripe can be increased from 4 to 5, that is, the composition of data blocks + check blocks + hot standby blocks is changed from 4+3+2 to 5+3+1. Please refer to Figure 4A , Figure 4A A schematic diagram of another storage data migration process provided for an embodiment of the present application shows that when migrating the data stored in the stripe (old data), since the number of data blocks in each stripe is increased by one, the data in the four data blocks d51, d52, d53, and d54 in stripe 5 (the third stripe, also referred to as the broken stripe) in the figure can be migrated to a newly added data block of the four stripes (the fourth stripe) of stripe 1, stripe 2, stripe 3, and stripe 4, respectively. One data block is added to each of stripes 1, stripe 2, stripe 3, and stripe 4.
[0100] For another example, assume that before adjusting the hot spare strategy, each stripe in the DG contains 4 data blocks, 3 check blocks, and 1 hot spare block, that is, the composition of data blocks + check blocks + hot spare blocks is 4+3+1. Assume that the number of check blocks (RAID redundancy) needs to be adjusted, and the number of hot spare blocks does not need to be adjusted. The number of check blocks in each stripe needs to be reduced from 3 to 2. In this case, the number of data blocks in each stripe can be increased from 4 to 5, that is, the composition of data blocks + check blocks + hot spare blocks is changed from 4+3+1 to 5+2+1. Please refer to Figure 4B , Figure 4B A schematic diagram of another storage data migration process is provided for an embodiment of the present application. When migrating the stored data (old data) in the stripe, since the number of data blocks in each stripe is increased by one, the data in the four data blocks d51, d52, d53, and d54 in stripe 5 (the third stripe) in the figure can be migrated to a newly added data block in the four fourth stripes, namely stripe 1, stripe 2, stripe 3, and stripe 4, respectively. One data block is added to stripe 1, stripe 2, stripe 3, and stripe 4, respectively. At the same time, the number of check blocks in each stripe is reduced by one. Based on the two check blocks in each stripe, the data in the check blocks in each stripe (stripe 1, stripe 2, stripe 3, stripe 4) with data written therein can be determined based on the EC algorithm. This will not be repeated here. Figure 4A and Figure 4B In the illustrated embodiment, since the number of data blocks in each stripe increases, it can be considered that after the adjustment, the user space is larger than before the adjustment, and the storage rate of valid data is also increased accordingly.
[0101] In a possible implementation, considering that the sum of the number of data blocks, the number of check blocks, and the number of hot spare blocks in a stripe cannot exceed the total number of disks included in the corresponding DG, in order to ensure the accuracy of data migration, after determining the number of data blocks in the adjusted stripe and the first total number of check blocks and hot spare blocks, the sum of the number of data blocks and the first total number can be calculated, and it can be determined whether the sum exceeds (is greater than or equal to) the number of disks included in the DG. If not, the above data migration process can be carried out normally. If the sum of these three numbers exceeds the number of disks included in the DG, a set error message can be output to prompt the user to re-modify the RAID level, etc., without performing the corresponding data migration process, thereby avoiding the situation where the stripe is not configured with data blocks, check blocks, or hot spare blocks that meet the user's requirements to the greatest extent, and ensuring the accuracy of data migration and storage.
[0102] In an embodiment of the present application, when a data migration instruction is received, a first number of adjusted target blocks in the stripe carried in the data migration instruction can be identified, wherein the target blocks include at least one of check blocks and hot spare blocks, and a first total number of adjusted check blocks and hot spare blocks in the stripe can be determined based on the first number; if the first total number is greater than the second total number of check blocks and hot spare blocks in the stripe before adjustment, a second number of data blocks reduced in the stripe can be determined, and data in a second number of data blocks in each first stripe where data has been written is migrated to data blocks in a second stripe where data has not yet been written; if the first total number is less than the second total number, a third number of data blocks increased in the stripe can be determined, a third stripe of data to be migrated in each stripe where data has been written and a fourth stripe of data to be received can be determined, and data in the data blocks in the third stripe can be migrated to a third number of data blocks in the corresponding fourth stripe. Based on this, when the hot spare strategy and RAID level need to be adjusted, the stored data can be quickly and flexibly migrated to conform to the new storage method.
[0103] In addition, the present application can support adjusting the hot standby strategy and RAID level at the same time. Compared with adjusting the hot standby strategy and RAID level independently and in steps, it is necessary to perform a data migration process when adjusting the hot standby strategy and another data migration process when adjusting the RAID level. The long-term data migration process in the background is not only cumbersome and redundant in operation flow, but may also affect the input / output (IO) of the foreground business. The present application adjusts the hot standby strategy and RAID level at the same time, which can effectively reduce the number of repeated disk reads and accesses, improve migration efficiency, and minimize the impact on the foreground business IO.
[0104] In addition, after the hot standby strategy and RAID level are adjusted, the embodiment of the present application can store the newly generated data based on the new storage method, and asynchronously implement the migration process of the old data in the background. There is no need to suspend the system or shut down to specifically migrate the old data, which can ensure that the business continuity is not affected, avoid data loss, save time and improve efficiency.
[0105] In addition, compared with the related art in which the hot standby strategy is configured as fixed, which may lead to insufficient hot standby resources during business peak periods and waste of hot standby resources during business trough periods, the present application can support the adjustment of the hot standby strategy by quickly and flexibly adjusting the number of hot standby blocks and data blocks, etc., thereby improving the flexibility of hot standby resource utilization and improving resource utilization.
[0106] Embodiment 2:
[0107] In order to quickly identify the old data that has been written (stored) in the stripe before receiving the data migration instruction, and to facilitate the determination of the old data to be migrated, based on the above embodiment, in the embodiment of the present application, the process of determining the stripe to which the data has been written includes:
[0108] Identify the reference number of the stripe to which the latest data is written when the data migration instruction is received;
[0109] If the data is written in the order of the stripe numbers from small to large, the stripe with a number not greater than the reference number is determined as the stripe with the data written;
[0110] If the data is written in the order of the stripe numbers from large to small, the stripe with a number not less than the reference number is determined as the stripe with the data written.
[0111] In a possible implementation, in order to quickly identify old data that has been written (stored) in a stripe before the data migration instruction, the stripes can be numbered, and data can be written in the stripes in order from large to small or from small to large. When the data migration instruction is received, the number of the stripe to which the latest data is written can be identified (for ease of description, referred to as the reference number). If the data is written in the stripe in order from small to large (monotonically increasing) in the order of the stripe number, the stripe with a number not greater than (less than or equal to) the reference number can be determined as the stripe with the data written. If the data is written in the stripe in order from large to small (monotonically decreasing) in the order of the stripe number, the stripe with a number not less than (greater than or equal to) the reference number can be determined as the stripe with the data written.
[0112] Since the present application can identify the reference number of the stripe to which the latest data is written when a data migration instruction is received; based on the size relationship between the reference number and the stripe number, it can quickly identify the old data that has been written (stored) in the stripe before the data migration instruction is received, thereby facilitating the determination of the old data to be migrated.
[0113] Embodiment 3:
[0114] For ease of understanding, the storage data migration process provided by the present application is explained below through a specific embodiment. Figure 5 , Figure 5 A schematic diagram of another storage data migration process provided in an embodiment of the present application, the process includes the following steps:
[0115] S501: Receive a data migration instruction, identify the first number of adjusted target blocks in the DG stripe carried in the data migration instruction, wherein the target block may include at least one of a check block and a hot spare block; determine the first total number of adjusted check blocks and hot spare blocks in the stripe according to the first number of target blocks. In addition, the reference number of the stripe to which the latest data is currently written when the data migration instruction is received can be identified; if the data is written in the order of stripe numbers from small to large, the stripe with a number not greater than the reference number is determined as the stripe to which the data has been written; if the data is written in the order of stripe numbers from large to small, the stripe with a number not less than the reference number is determined as the stripe to which the data has been written. If the first total number of check blocks and hot spare blocks in the adjusted stripe is greater than the second total number of check blocks and hot spare blocks in the adjusted stripe, proceed to S502; if the first total number of check blocks and hot spare blocks in the adjusted stripe is less than the second total number of check blocks and hot spare blocks in the adjusted stripe, proceed to S504.
[0116] S502: If the first total number is greater than the second total number, the difference between the first total number and the second total number is determined as the second number of data blocks reduced in the stripe. If the number of data blocks in the stripe after adjustment is greater than 0, proceed to S503; otherwise, if the number of data blocks in the stripe after adjustment is not greater than 0, output a set error prompt message.
[0117] S503: Migrate data in a second number of data blocks in each first stripe where data has been written to data blocks in a second stripe where data has not been written.
[0118] S504: If the first total number is less than the second total number, the difference between the second total number and the first total number is determined as the third number of data blocks added in the stripe, and a third stripe of data to be migrated and a fourth stripe of data to be received in each stripe where data has been written is determined, and data in the data blocks in the third stripe is migrated to the third number of data blocks in the corresponding fourth stripe.
[0119] Embodiment 4:
[0120] Based on the same technical concept, on the basis of the above embodiments, the present application provides a storage data migration device. Figure 6 A schematic diagram of a storage data migration device provided in an embodiment of the present application is shown in FIG. Figure 6 As shown, the device comprises:
[0121] A receiving module 601 receives a data migration instruction, wherein the data migration instruction carries a first number of adjusted target blocks in a stripe of a disk group DG, wherein the target block includes at least one of a check block and a hot spare block; and determines a first total number of adjusted check blocks and hot spare blocks in the stripe according to the first number;
[0122] A first migration module 602 is configured to determine a second number of data blocks reduced in the stripes of the DG if the first total number is greater than a second total number of the hot spare blocks and the check blocks before the adjustment, and migrate data in the second number of data blocks in each first stripe to which data has been written to data blocks in a second stripe to which data has not been written;
[0123] The second migration module 603 is used to determine the third number of data blocks to be added in the stripe of the DG if the first total number is less than the second total number; determine the third stripe of data to be migrated and the fourth stripe of data to be received in each stripe to which data has been written, and migrate the data of the data blocks in the third stripe to the third number of data blocks in the corresponding fourth stripe.
[0124] In a possible implementation, the receiving module 601 is further configured to:
[0125] Identify the reference number of the stripe to which the latest data is written when the data migration instruction is received;
[0126] If the data is written in the order of the stripe numbers from small to large, the stripe with a number not greater than the reference number is determined as the stripe with the data written;
[0127] If the data is written in the order of the stripe numbers from large to small, the stripe with a number not less than the reference number is determined as the stripe with the data written.
[0128] In a possible implementation, the first migration module 602 is further configured to:
[0129] Determine whether the number of adjusted data blocks in the stripe is greater than 0; if so, perform a subsequent step of migrating data in the second number of data blocks in each first stripe where data has been written to data blocks in the second stripe where data has not been written.
[0130] In a possible implementation, the device further includes:
[0131] The prompt module 604 is used to output a set error prompt message if the number of adjusted data blocks in the stripe of the DG is not greater than 0.
[0132] In a possible implementation, the first migration module 602 is specifically configured to:
[0133] The difference between the first total quantity and the second total quantity is determined as the second quantity.
[0134] In a possible implementation, the second migration module 603 is specifically configured to:
[0135] The difference between the second total quantity and the first total quantity is determined as the third quantity.
[0136] Embodiment 5:
[0137] Based on the same technical concept, the present application also provides an electronic device, Figure 7 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application is shown in FIG. Figure 7 As shown, it includes: a processor 701, a communication interface 702, a memory 703 and a communication bus 704, wherein the processor 701, the communication interface 702, and the memory 703 communicate with each other through the communication bus 704;
[0138] The memory 703 stores a computer program, and when the program is executed by the processor 701, the processor 701 implements any of the above embodiments. Since the principle of solving the problem by the electronic device is similar to the storage data migration method, the implementation of the electronic device can refer to the implementation of the method, and the repeated parts are not repeated.
[0139] The communication bus mentioned in the above electronic device can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. The communication bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one thick line is used in the figure, but it does not mean that there is only one bus or one type of bus.
[0140] The communication interface 702 is used for communication between the electronic device and other devices.
[0141] The memory may include a random access memory (RAM) or a non-volatile memory (NVM), such as at least one disk memory. Optionally, the memory may also be at least one storage device located away from the aforementioned processor.
[0142] The above-mentioned processor can be a general-purpose processor, including a central processing unit, a network processor (Network Processor, NP), etc.; it can also be a digital signal processing processor (Digital Signal Processing, DSP), an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, etc.
[0143] Embodiment 6:
[0144] Based on the same technical concept, the embodiment of the present application provides a computer-readable storage medium, in which a computer program executable by an electronic device is stored, and when the program is run on the electronic device, the electronic device implements any of the above embodiments when executing. Since the principle of solving the problem by the computer-readable storage medium is similar to that of the storage data migration method, the implementation of the computer-readable storage medium can refer to the implementation of the method, and the repeated parts will not be repeated.
[0145] The above-mentioned computer-readable storage medium can be any available medium or data storage device that can be accessed by the processor in the electronic device, including but not limited to magnetic storage such as floppy disks, hard disks, magnetic tapes, magneto-optical disks (MO), etc., optical storage such as CD, DVD, BD, HVD, etc., and semiconductor storage such as ROM, EPROM, EEPROM, non-volatile memory (NANDFLASH), solid-state drive (SSD), etc.
[0146] Based on the same technical concept, the embodiment of the present application also provides a computer program product, which includes: computer program code, when the computer program code is run on a computer, the computer executes any of the above embodiments. Since the principle of solving the problem by the above computer program product is similar to that of the storage data migration method, the implementation of the above computer program product can refer to the implementation of the method, and the repeated parts will not be repeated.
[0147] Those skilled in the art will appreciate that the embodiments of the present application may be provided as methods, systems, or computer program products. Therefore, the present application may adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment in combination with software and hardware. Moreover, the present application may adopt the form of a computer program product implemented in one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) that include computer-usable program code.
[0148] The present application is described with reference to the flowcharts and / or block diagrams of the methods, devices (systems), and computer program products according to the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing device generate instructions for implementing the processes in the flowchart and / or block diagram. Figure 1 A process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.
[0149] These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing device to operate in a specific manner, so that the instructions stored in the computer-readable memory produce an article of manufacture comprising an instruction device, which implements the process Figure 1 A process or multiple processes and / or boxes Figure 1 A function specified in one or more boxes.
[0150] These computer program instructions can also be loaded onto a computer or other programmable data processing device so that a series of operating steps are executed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions for implementing the process. Figure 1 A process or multiple processes and / or boxes Figure 1 The steps for the functions specified in one or more boxes.
[0151] Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the spirit and scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to include these modifications and variations.
Claims
1. A storage data migration method, characterized in that: The method comprises: Receive a data migration instruction, the data migration instruction carrying a first number of adjusted target blocks in a stripe of a disk group DG, wherein the target block includes at least one of a check block and a hot spare block; determine a first total number of adjusted check blocks and hot spare blocks in the stripe according to the first number; If the first total number is greater than the second total number of the hot spare blocks and the check blocks before adjustment, determine the second number of data blocks reduced in the stripe of the DG, and migrate the data in the second number of data blocks in each first stripe to which data has been written to the data blocks in the second stripe to which data has not been written; If the first total number is less than the second total number, determine the third number of data blocks to be added in the stripe of the DG; determine the third stripe of data to be migrated and the fourth stripe of data to be received in each stripe where data has been written, and migrate the data of the data blocks in the third stripe to the third number of data blocks in the corresponding fourth stripe.
2. The method according to claim 1, characterized in that The process of determining the stripes to which data has been written includes: Identify the reference number of the stripe to which the latest data is written when the data migration instruction is received; If the data is written in the order of the stripe numbers from small to large, the stripe with a number not greater than the reference number is determined as the stripe with the data written; If the data is written in the order of the stripe numbers from large to small, the stripe with a number not less than the reference number is determined as the stripe with the data written.
3. The method according to claim 1, characterized in that After determining the second number of data blocks in the stripe of the DG to be reduced, and before migrating the data in the second number of data blocks in each first stripe to which data has been written to data blocks in the second stripe to which data has not been written, the method further includes: Determine whether the number of adjusted data blocks in the stripe is greater than 0; if so, perform a subsequent step of migrating data in the second number of data blocks in each first stripe where data has been written to data blocks in the second stripe where data has not been written.
4. The method according to claim 3, characterized in that The method further comprises: If the number of adjusted data blocks in the stripe of the DG is not greater than 0, the set error prompt information is output.
5. The method according to claim 1, characterized in that The determining a second number of data blocks reduced in the stripe of the DG comprises: The difference between the first total quantity and the second total quantity is determined as the second quantity.
6. The method according to claim 1, characterized in that The determining a third number of data blocks increased in the stripe of the DG includes: The difference between the second total quantity and the first total quantity is determined as the third quantity.
7. A storage data migration device, characterized in that: The device comprises: A receiving module, configured to receive a data migration instruction, wherein the data migration instruction carries a first number of adjusted target blocks in a stripe of a disk group DG, wherein the target block includes at least one of a check block and a hot spare block; and determine a first total number of adjusted check blocks and hot spare blocks in the stripe according to the first number; A first migration module is configured to determine a second number of data blocks reduced in the stripes of the DG if the first total number is greater than a second total number of the hot spare blocks and the check blocks before adjustment, and migrate data in the second number of data blocks in each first stripe to which data has been written to data blocks in a second stripe to which data has not been written; The second migration module is used to determine the third number of data blocks to be increased in the stripe of the DG if the first total number is less than the second total number; determine the third stripe of data to be migrated and the fourth stripe of data to be received in each stripe to which data has been written, and migrate the data of the data blocks in the third stripe to the third number of data blocks in the corresponding fourth stripe.
8. An electronic device, characterized in that: The electronic device comprises at least a processor and a memory, and the processor is configured to implement the steps of the method according to any one of claims 1 to 6 when executing a computer program stored in the memory.
9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, wherein the computer program includes program instructions, and when the program instructions are executed by a computer, the computer executes the method according to any one of claims 1 to 6.
10. A computer program product, characterized in that The computer program product comprises: a computer program code, and when the computer program code is run on a computer, the computer is enabled to execute the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Data backup method and device, computer storage medium and electronic device
CN112115001A
Data migration method, system and equipment of storage server and storage medium
CN114816278A
Data migration systems and methods for independent storage device expansion and adaptation
US20080195808A1
Storage apparatus, apparatus control method, and recording medium for storage apparatus control program
US20110296103A1
Controller, computer-readable recording medium, and apparatus
US20130159656A1