WO2020037986A1 - 数据迁移方法及装置 - Google Patents
数据迁移方法及装置 Download PDFInfo
- Publication number
- WO2020037986A1 WO2020037986A1 PCT/CN2019/079411 CN2019079411W WO2020037986A1 WO 2020037986 A1 WO2020037986 A1 WO 2020037986A1 CN 2019079411 W CN2019079411 W CN 2019079411W WO 2020037986 A1 WO2020037986 A1 WO 2020037986A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- storage unit
- data access
- data
- storage
- unit group
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
Definitions
- the present application relates to the field of storage technology, and in particular, to a data migration method and device.
- Hierarchical storage can be used when data is stored.
- Hierarchical storage can store data on storage devices with different performances, reducing the space occupied by non-critical data on high-performance disks.
- Hierarchical storage can also automatically migrate data between storage spaces, which can result in better storage performance.
- One factor that affects data migration is the statistical information of the storage unit.
- the statistical information may include, for example, data access heat, and the data access heat may be determined by the number of reads and writes of data stored on the storage unit.
- the unit of data migration in the tiered storage technology can be a storage unit group.
- the storage unit group can include multiple storage units.
- the storage device can determine the data migration to a storage unit with higher data access performance according to the data access heat in the storage unit group. Group or migrate data to a storage unit group with lower data access performance. How to ensure the accuracy of the data access heat statistics of the storage unit group when performing data access heat statistics is an urgent problem to be solved.
- the present application discloses a data migration method and device, which can improve the accuracy of data access heat statistics, thereby improving the tiered storage performance of a storage device.
- an embodiment of the present application provides a data migration method.
- the method includes: a storage device obtaining a data access popularity of a first storage unit group, where the first storage unit group includes multiple storage units, and A storage unit is a constituent unit of a block included in a logical unit.
- the logical unit is a logical storage space provided by the storage device and can be accessed by a host.
- the data access popularity of the first storage unit group is determined by each storage unit.
- the data access popularity of each storage unit is determined by the logical unit where the storage unit is located; when the data access popularity of the first storage unit group reaches a set threshold, the storage device sets the The data in the first storage unit group is migrated to the second storage unit group, and the access performance of the second storage unit group is higher than the access performance of the first storage unit group.
- the data access heat of the storage units constituting the blocks included in the logical unit is determined by counting the data access heat of the blocks included in the logical unit.
- the data access popularity of a storage unit group may be determined according to the data access popularity of each storage unit contained therein. The data access heat of the storage unit group determined in this way can more accurately reflect the frequency of data access of the storage unit group, thereby improving the accuracy of the data access heat statistics of the storage unit group and improving the tiered storage performance of the storage device.
- the block contained in the logical unit may be a LUN block.
- the storage device calculates data access popularity in units of blocks included in the logical unit.
- determining the data access popularity of the first storage unit group may include the following steps: Step 1.
- the storage device counts the data access frequency of each LUN block.
- Step 2 The storage device determines the data access popularity of each LUN block according to the data access frequency of each LUN block.
- Step 3 The storage device determines the data access popularity of the storage unit contained in each LUN block.
- Step 4 For each storage unit group, the storage device determines the data access popularity of the storage unit group according to the data access popularity of each storage unit included in the storage unit group.
- the data access popularity of a LUN block can also be directly obtained by statistics on the LUN block.
- the data access frequency of the LUN block is directly counted as the data access popularity of the LUN block. That is, after performing step 1, there is no need to perform step two, and step three is directly performed according to the obtained data access popularity.
- the data access frequency of the LUN block is determined by counting the data access frequency of the LUN block, and then the data access temperature of the storage units constituting the LUN block is determined according to the data access temperature of the LUN block.
- the data access popularity of a storage unit group may be determined according to the data access popularity of each storage unit contained therein. The data access popularity of the storage unit group determined in this way can more accurately reflect the frequency of data access of the storage unit group, can improve the rationality of data migration, and thereby improve the tiered storage performance of the storage device.
- the first storage unit group includes a first storage unit
- the method further includes: the storage device receives a write data request, and the write data request is used to write data to a second A storage unit, a storage unit group to which the second storage unit belongs is different from the first storage unit group; the storage device writes the data to the first storage unit, and stores an actual address of the data and The corresponding relationship between the logical addresses of the first storage units; the obtaining, by the storage device, the data access popularity of the first storage unit group includes: the storage device updating the data access popularity according to the data access popularity of the second storage unit Data access popularity of the first storage unit: The storage device obtains data access popularity of the first storage unit group according to the updated data access popularity of the first storage unit.
- the data access popularity of the redirected first storage unit may inherit the data access popularity of the second storage unit before the redirection, and at the same time update the location of the first storage unit according to the data access popularity inherited by the first storage unit.
- the data access popularity of the storage unit group is determined based on the data access popularity of the updated storage unit group.
- the method for determining the data access heat of a storage unit group can reduce the problem of inaccurate data access heat of the storage unit group where the first storage unit is caused by ROW, so that the data access heat statistics of the storage unit group are more accurate, and the data can be improved. Reasonable migration, thereby improving the tiered storage performance of storage devices.
- the third storage unit group includes the second storage unit
- the method further includes: when the second storage unit is released, the storage device stores the second storage unit The data access popularity of the storage unit is reset; the storage device obtains the data access popularity of the third storage unit group according to the reset data access popularity of the second storage unit; when the data access of the third storage unit group is accessed When the heat reaches a set threshold, the storage device migrates data in the third storage unit group to a fourth storage unit group, and the access performance of the fourth storage unit group is higher than that of the third storage unit group. Access performance.
- the method for determining the data access heat of a storage unit group can reduce the problem of inaccurate data access heat of the storage unit group caused by the release of the data of the storage unit, make the data access heat statistics of the storage unit group more accurate, and can improve data migration. Reasonableness, thereby improving the tiered storage performance of the storage device.
- the present application provides a storage device including at least one controller and multiple solid state drives; the controller is connected to the host through a storage area network to receive I / O requests from the host, and the controller can store I / O The data carried in the request is written into the solid state hard disk; the controller is configured to call a program instruction to execute the method described in the first aspect or any possible implementation manner of the first aspect.
- the controller may include one or more interface cards and processors; the interface cards are used to communicate with the host, and the controller may receive operation instructions of the host through the interface card.
- the controller can send write data instructions to the solid state hard disk storage through the interface card.
- the controller may further include a memory, and the memory is configured to temporarily store data received from the host or data read from the solid state hard disk.
- the controller receives multiple write data instructions sent by the host, the data in the multiple write data instructions may be temporarily stored in the memory.
- the capacity of the memory reaches a certain threshold, the data stored in the memory and the logical address allocated for the data are sent to the solid state hard disk, and the solid state hard disk stores the data.
- the memory may further include program code, and the processor may call the program code to execute the method described in the first aspect or any possible implementation manner of the first aspect.
- the present application provides a controller, which is used for the storage device described in the second aspect, the controller includes a processor and a memory, the memory is used to store program instructions, and the processor is used to call all The program instructions execute the method described in the first aspect or any possible implementation manner of the first aspect.
- the present application provides a storage device, including a module or a unit for executing the method provided in the first aspect or any possible embodiment of the first aspect.
- the present application provides a controller, including a module or a unit for executing the method provided in the first aspect or any possible embodiment of the first aspect.
- the present invention provides a chip system.
- the chip system includes at least one processor, a memory, and an interface circuit.
- the memory, the interface circuit, and the at least one processor are interconnected through a line.
- the at least one memory stores a program. Instructions; when the program instructions are executed by the processor, implement the method described in the first aspect or any possible embodiment of the first aspect.
- an embodiment of the present invention provides a computer-readable storage medium.
- the computer-readable storage medium stores program instructions.
- the program instructions are run by a processor, the first aspect or any of the first aspect may be implemented.
- the example describes the method.
- an embodiment of the present invention provides a computer program product.
- the computer program product runs on a processor, the first aspect or the method described in any possible embodiment of the first aspect is implemented.
- FIG. 1 is a schematic structural diagram of a storage device according to an embodiment of the present application.
- FIG. 2 is a schematic structural diagram of a controller according to an embodiment of the present application.
- FIG. 3 is a schematic structural diagram of a storage device architecture according to an embodiment of the present application.
- FIG. 4 is a schematic flowchart of a data migration method according to an embodiment of the present application.
- FIG. 5 is a schematic diagram of a method for determining a data access popularity of a storage unit group according to an embodiment of the present application
- FIG. 6 is a schematic diagram of another method for determining a data access popularity of a storage unit group according to an embodiment of the present application
- FIG. 7 is a schematic structural diagram of another storage device according to an embodiment of the present application.
- storage devices can utilize redundant arrays of independent disks (RAID) to store data on hard disks of different performances to achieve hierarchical storage of data by storage devices.
- the storage device may include both a high-performance storage medium (such as solid state drives (SSDs)) and a low-cost and low-performance storage medium (such as serial (advanced technology attachment) (SATA) disks, serial drives (Serial, attached, small, computer, system, interface, SAS) disks.
- SSDs solid state drives
- SATA serial (advanced technology attachment)
- SAS serial drives
- tiered storage can be used to improve disk utilization efficiency.
- storage devices can use storage unit groups as granularity to periodically obtain the data access heat of each storage unit group on the disk. Then, according to the data access heat of each storage unit group, hot data is migrated to a low-latency, high-speed storage medium, and cold data is migrated to a high-latency, low-cost storage medium.
- FIG. 1 is a schematic structural diagram of a storage device according to an embodiment of the present application.
- the storage device shown in FIG. 1 includes at least one controller (such as the controller 11 shown in FIG. 1) and a plurality of solid state hard disks. twenty two.
- the controller 11 is connected to a host (not shown in the figure) through a storage area network (SAN).
- the controller 11 may be a computing device, such as a server, a desktop computer, and the like.
- An operating system and application programs are installed on the controller 11.
- the controller 11 may receive input / output (I / O) requests from the host.
- the controller 11 may also store data (if any) carried in the I / O request, and write the data into the solid state hard disk 22.
- a solid state hard disk (solid state disk (SSD)) is a memory using a flash memory (English: flash memory) chip as a medium, also known as a solid state drive (SSD).
- FIG. 1 is only an exemplary illustration.
- a storage device may include two or more controllers.
- the physical structure and functions of each controller are similar to those of the controller 11, and this embodiment does not limit the number of controllers.
- the connection between any controller and the solid state hard disk 22 As long as the controllers can communicate with each other and between the controllers and the solid state hard disk 22.
- the controller 11 when the controller 11 sends an instruction to the solid-state hard disk, the controller 11 often sends it to multiple solid-state hard disks.
- a set including multiple solid-state hard disks 22 is called a solid-state hard disk group.
- FIG. 2 is a schematic structural diagram of a controller 11 according to an embodiment of the present application. As shown in FIG. 2, the controller 11 includes an interface card 110, a processor 112, and an interface card 113.
- the interface card 110 is used to communicate with the host, and the controller 11 may receive an operation instruction of the host through the interface card 110.
- the processor 112 may be a central processing unit (CPU). In the embodiment of the present invention, the processor 112 may be configured to receive an I / O request from a host and process the I / O request.
- the I / O request may be a write data instruction or a read data instruction, and the processor 112 may also send data in the write data instruction to the solid state hard disk 22.
- the processor 112 may also be used to perform a system garbage collection operation.
- the interface card 113 is configured to communicate with the solid state hard disk 22, and the controller 11 may send a write data instruction (including data and a life cycle level of the data) to the solid state hard disk 22 for storage through the interface card 113.
- the controller 11 may further include a memory 111.
- the memory 111 is configured to temporarily store data received from the host or data read from the solid state hard disk 22.
- the controller 11 may temporarily store data in the plurality of write data instructions in the memory 111.
- the capacity of the memory 111 reaches a certain threshold, the data stored in the memory 111 and the logical address allocated for the data are sent to the solid state hard disk 22.
- the solid state hard disk 22 stores the data.
- the memory 111 includes a volatile memory, a flash memory chip, or a combination thereof.
- the volatile memory is, for example, a random-access memory (RAM).
- Flash memory chips such as floppy disks, hard disks, solid state disks (SSDs), optical disks, and other machine-readable media that can store program code.
- the memory 111 has a power-saving function.
- the power-saving function means that when the system is powered off and powered on again, the data stored in the memory 111 will not be lost.
- the controller 11 is further configured to execute the data migration method provided by the embodiment of the present application, and specifically, the data migration method described in FIG. 4.
- controller 11 belongs to a system controller, and the system controller is an independent device, which is different from a control chip in a solid state hard disk.
- the control chip of the solid state hard disk is referred to as a flash memory controller.
- FIG. 3 is a schematic diagram of an architecture of a storage device according to an embodiment of the present application.
- the n + 1 hard disks in the solid-state hard disk 22 in the embodiment of the present application may be the same type of hard disks.
- the hard disks of this type are specifically SSD-type hard disks, or SATA-type hard disks, or SAS-type hard disks. Wait.
- the solid state hard disk 22 is a physical hard disk and provides storage resources in a unified manner.
- the storage device may divide the solid state hard disk 22 into a plurality of continuous fixed-size storage spaces.
- the fixed-size storage space may be a chunk (CK) 20, and the size of the CK 20 may be fixed to 4 MB. But it is not limited to 4MB, and it can also be other fixed sizes.
- the CK20 can form a storage unit group (CKG) 30 according to the RAID policy.
- the CKG30 may be a logical storage unit composed of a plurality of different disks CK20 randomly selected from the solid state hard disk 22 according to a RAID algorithm.
- the storage blocks from different solid state hard disks may form a storage unit set, and the controller 11 then divides the storage blocks in the storage unit set into a data group and a check group according to a preset RAID type.
- the data group includes at least two storage blocks for storing data
- the check group includes at least one storage block for storing check data of the data.
- a storage unit set including a data group and a check group is called CKG30, that is, a storage unit group.
- the controller 11 When the controller 11 fills up a certain size of data in the memory 111, it can be divided into a plurality of data units according to the preset RAID type, and a check unit is calculated to obtain the data unit and the check unit. Give a solid state drive to save in the CKG30.
- Each storage block in the data group is used to store the data unit, and each storage block in the check group is used to store the check unit. After storage, these data units and corresponding check units constitute a storage unit.
- the storage unit group may include multiple storage units, and the storage unit may be a stripe of the storage unit group.
- the storage unit may include a data unit and a check unit.
- the size of the storage unit is 8 KB as an example, but it is not limited to 8 KB.
- the storage unit is CKG 30, which is divided into a more fine-grained fixed-size logical storage space, and the storage unit may be a logical storage unit (grain) 80.
- the CKG30 can be divided into strips.
- the stripe unit obtained by the stripe division includes the logical storage unit grain 80, and the size of the grain 80 can be set by the user according to business requirements.
- CKG30 can be used as a unit for data access heat statistics and migration
- grain 80 can also be used as a unit for data access heat statistics and migration.
- the CK in each CKG in CKG30 comes from the same type of hard disk.
- CKG30 as a unit for data access heat statistics and migration
- the data stored on CKG1 can be migrated to CKG with higher access performance.
- the CK in the CKG30 shown in FIG. 3 comes from a SAS hard disk.
- the data access popularity of CKG1 reaches a set threshold, it indicates that the data stored on CKG1 needs to be stored on the CKG with higher access performance, and the data stored on CKG1 can be migrated to the CKG from the SSD.
- Data access performance can include latency, access speed, and more.
- the embodiment of the present application is described by taking a storage unit of grain 80 as an example. It can be understood that the example is only used to explain the embodiment of the present application and should not be construed as a limitation.
- the system architecture shown in FIG. 3 is only used to explain the embodiments of the present application, and should not constitute a limitation.
- the storage system architecture of the embodiment of the present application can also be extended to other architectures. For example, based on the architecture shown in FIG. 3, CKG30 can be divided into extents, and extents can be divided into grain80, and grain80 can be used as a storage unit.
- the system architecture shown in FIG. 3 is based on the CKG30 stripe divided into stripe units.
- the stripe unit includes a fixed-size logical storage unit grain 80 as an example. It is understandable that the method is not limited to this division method. Other division methods are also applicable.
- FIG. 3 it is assumed that one storage block 20 is taken out of each of the three solid-state hard disks to form a storage unit group 30, and then the controller 11 groups the storage blocks in the storage unit group 30 according to the RAID type (taking RAID6 as an example)
- storage block 1 and storage block 2 are data block groups
- storage block 3 is a check block group.
- the controller 11 sends these data units and verification units to the solid-state hard disk and stores them in the storage unit group (shown as CKG1 or CKG2 in FIG. 3). It can be understood that according to the redundancy protection mechanism of RAID 6, when any data unit or check unit fails, the failed unit can be reconstructed according to the remaining data units or check units.
- the controller 11 when the memory 111 is filled with data equal to the size of a storage unit, the controller 11 sends a data write instruction to the solid state disk group, so that the solid state disk 22 included in the solid state disk group writes the data to the CKG 30 Storage unit. At this time, the controller 11 needs to determine whether there is an already allocated CKG 30. If there is and there is still enough space for the data in the CKG 30, the controller 11 can instruct the solid state disk group to write the data to the allocated CKG 30 in. Specifically, the controller 11 obtains an unused logical address from the allocated logical address range of the CKG30, and carries the logical address to the solid-state hard disk 22 in the write data instruction. After the solid-state hard disk 22 saves the data, a mapping relationship between the logical address and the actual address where the data is stored is created in the flash translation layer.
- the controller 11 determines that the allocated CKG 30 does not exist in the system, or the allocated CKG 30 is filled with data, the controller 11 needs to create a new CKG 30.
- the creation process may be that the controller 11 determines that the remaining space of the system is enough to create a new CKG 30 according to its own record of the available space owned by each solid state hard disk.
- the controller 11 obtains a CK 20 from different solid state hard disks 22 respectively, and constructs these CK 20 into a new CKG 30 according to a preset RAID type (refer to the description of the storage unit group above).
- the controller 11 assigns a logical address to each CK 20, and these logical address sets are the logical addresses of the new CKG 30.
- the solid state hard disk 22 may be used to create a plurality of storage pools 40.
- the storage pool 40 is created on the solid state hard disk 22 and is a subset of the hard disks on the solid state hard disk 22.
- Each storage pool 40 can be specified by the user in size, type, and capacity.
- CKG 30 is the minimum unit for the storage pool 40 to obtain the allocated resources from the solid state hard disk 22.
- the storage pool 40 is composed of a plurality of CKGs 30 from one or more storage media.
- CK20 and CKG30 are objects inside the storage device. Configuration is completed by the storage device and is not reflected to users.
- the management object in the storage device is volume 50.
- a volume50 object is used to organize all storage units of a logical unit number (LUN), and the storage unit includes grain.
- LUN logical unit number
- LUN is a logical storage space that can be directly mapped to a host for reading and writing, and is a type of logical unit.
- LUN is the external manifestation of volume50.
- the data stored on the LUN can be adjusted to the storage location according to the heat of data access, and migrated to different storage tiers in the storage pool 40.
- LUN block 60 is a small block divided by the logical block address (LBA) on the logical address space of the LUN.
- LBA logical block address
- the LUN block 60 may be composed of multiple storage units in the storage pool 40.
- the logical unit consists of a memory unit.
- the multiple storage units may be different storage media or may be from different storage unit groups. Therefore, LUN block 60 can mobilize multiple hard disks to read and write data at the same time, with fast response speed and high efficiency, and achieve performance improvement.
- the unit of data migration can be CKG, and data migration can be determined based on the data access heat of CKG to migrate data to CKG with higher data access performance or to migrate data to lower data access performance CKG. How to ensure the accuracy of CKG's data access heat statistics when performing data access heat statistics is an urgent problem to be solved.
- embodiments of the present invention provide a data migration method and device.
- the storage device can count the data access heat of LUN blocks that can be accessed by the host. Secondly, for each LUN block, the storage device can mark the data access heat of the storage units in the LUN block according to the data access heat of the LUN block. Again, the storage device may determine the data access popularity of the storage unit group according to the data access popularity of each storage unit that composes the storage unit group. Finally, when it is detected that the data access popularity of the storage unit group reaches a set threshold, the storage device migrates data in the storage unit group to a storage unit group with higher access performance. Or when it is detected that the data access heat of the storage unit group is lower than the second set threshold, the storage device can migrate the data in the storage unit group to a storage unit group with lower access performance.
- the data access heat of the LUN block is determined by counting the data access heat of the LUN block.
- the data access popularity of a storage unit group may be determined according to the data access popularity of each storage unit contained therein.
- the data access heat of the storage unit group determined in this way can more accurately reflect the frequency of data access of the storage unit group, thereby improving the accuracy of the data access heat statistics of the storage unit group and improving the tiered storage performance of the storage device.
- the embodiment of the present application provides a data migration method, which can improve the accuracy of data migration.
- FIG. 4 is a schematic flowchart of a data migration method according to an embodiment of the present application.
- the data migration method includes, but is not limited to, steps S101-S102.
- the storage device acquires a data access popularity of the first storage unit group.
- the storage device migrates the data in the first storage unit group to the second storage unit group.
- the data access popularity of the first storage unit group is determined by the data access popularity of each storage unit, and the data access popularity of each storage unit is determined by the logical unit in which the storage unit is located.
- the first storage unit group may be any storage unit group in a storage device.
- the description about the blocks included in the storage unit group, the storage unit, and the logical unit may be combined with the specific description in the system architecture described in FIG. 3, and the blocks included in the storage unit group, the storage unit, and the logical unit may be sequentially described in FIG. 3
- the CKG, grain, and LUN blocks in the system architecture are not repeated here.
- the storage device can count data access popularity in units of blocks contained in the logical unit. The following specifically describes how to determine the data access popularity of the first storage unit group. Determining the data access popularity of the first storage unit group may include the following steps:
- Step 1 The storage device counts the data access frequency of each LUN block.
- the storage device since the LUN is a logical storage space directly mapped to the host and directly visible to the user, the storage device counts the data access frequency in units of blocks contained in the logical unit. Specifically, the blocks included in the logical unit may be used as a monitoring object, and the number of times of reading and writing data of the blocks included in each logical unit may be counted. In addition, since the data access frequency may change with time, the storage device may periodically count the data access frequency.
- Step 2 The storage device determines the data access popularity of each LUN block according to the data access frequency of each LUN block.
- Step 3 The storage device determines the data access popularity of the storage unit contained in each LUN block.
- Step 4 For each storage unit group, the storage device determines the data access popularity of the storage unit group according to the data access popularity of each storage unit included in the storage unit group.
- the data access popularity can be used to characterize the frequency of data access to LUN blocks.
- the embodiment of the present application does not specifically limit how to determine the data access popularity according to the data access frequency.
- the following describes a specific implementation example. It is understandable that the example is only used to explain the embodiment of the present application and should not constitute a limitation.
- FIG. 5 is a schematic diagram of a method for determining a data access popularity of a storage unit group according to an embodiment of the present application.
- Table 1 is an example of determining a data access popularity of a LUN block provided in the embodiment of the present application.
- data access popularity can be used to characterize the frequency of data access for LUN blocks.
- the greater the frequency of data access the greater the data access popularity.
- a method for specifically obtaining the data access popularity according to the data access frequency may be, for example, a mapping table. That is, the data access frequency in the preset interval corresponds to a data access popularity. Determine the data access frequency interval in which the data access frequency of the LUN block falls, and look up the mapping table to obtain the data access popularity corresponding to the data access frequency interval in the mapping table.
- the method is not limited to the above method for determining the heat of data access, and may be implemented by other algorithms.
- the data access popularity of LUN blocks can also be directly obtained by statistics on LUN blocks.
- the data access frequency of the LUN block is directly counted as the data access popularity of the LUN block. That is, after performing step 1, there is no need to perform step two, and step three is directly performed according to the obtained data access popularity.
- the storage device may determine the data access popularity of the storage unit included in the LUN block as the data access popularity of the corresponding LUN block. As shown in Figure 5, for LUN block0, the storage device can mark the data access heat of each storage unit it contains as 4. For LUN block2, the storage device can mark the data access heat of each storage unit it contains as 2. For LUN block10, the storage device can mark the data access heat of each storage unit it contains as 1.
- the storage device can determine whether to perform data migration according to the data access popularity of each CKG.
- the storage unit the storage unit group, and the logic unit, reference may be made to the detailed description of the system architecture described in FIG. 3, and details are not described herein again.
- a magnitude relationship between the data access popularity of the first storage unit group and a set threshold may be detected.
- the data access popularity of the first storage unit group reaches a set threshold (first set threshold)
- first set threshold it indicates that the data of the first storage unit group needs to be migrated to a storage unit group with higher access performance.
- the storage device can migrate the data in the first storage unit group to the second storage unit group, and the access performance of the second storage unit group is higher than the access performance of the first storage unit group.
- the data access popularity of the first storage unit group is lower than the second set threshold, it indicates that the data of the first storage unit group needs to be migrated to a storage unit group with lower access performance.
- the storage device may migrate data in the first storage unit group to a fifth storage unit group, and the access performance of the fifth storage unit group is lower than the access performance of the first storage unit group.
- the first set threshold and the second set threshold may be equal or unequal, which is not limited in the embodiment of the present application.
- the data access performance of the storage unit may include latency, access speed, and the like.
- the data access frequency of the LUN block is determined by counting the data access frequency of the LUN block, and then the data access temperature of the storage units constituting the LUN block is determined according to the data access temperature of the LUN block.
- the data access popularity of a storage unit group may be determined according to the data access popularity of each storage unit contained therein. The data access popularity of the storage unit group determined in this way can more accurately reflect the frequency of data access of the storage unit group, can improve the rationality of data migration, and thereby improve the tiered storage performance of the storage device.
- ROW redirection on write
- a snapshot is first created for the data volume.
- a snapshot can be a fully available copy of a specified data set. The copy includes an image of the data set at a point in time, where the data set is the data.
- the snapshot may be a snapshot volume corresponding to the data volume, and the data volume may also be referred to as a source volume.
- the write request for a storage unit in the data volume can be redirected to the reserved storage unit in the snapshot volume, and the requested data is written to the snapshot volume.
- the upper-layer service requests to write data to the snapshot volume.
- the data is queued in the cache, if it is determined that the logical address of the data to be written is the logical address of the data volume, the data is redirected to the In the logical address reserved in the snapshot volume, both the actual address of the data and the logical address in the snapshot volume are written into the mapping table.
- the data before the snapshot is created is read from the source volume, and the data written after the snapshot is created is read from the snapshot volume.
- ROW can be implemented in units of storage units, that is, a storage unit in a data volume corresponds to a storage unit in a snapshot volume.
- a storage unit in a data volume corresponds to a storage unit in a snapshot volume.
- the data requested for writing is written to the corresponding storage unit in the snapshot volume.
- a mapping relationship between the logical address of the storage unit in the data volume and the logical address of the storage unit in the corresponding snapshot volume is established.
- a first storage unit group may include a first storage unit, and a storage device may receive a write data request, where the write data request is used to write data to a second storage unit, and the storage unit groups to which the second storage unit belongs are different
- the storage unit group to which the second storage unit belongs may be a third storage unit group.
- step S101 may be specifically implemented as follows: the storage device updates the data access popularity of the first storage unit according to the data access popularity of the second storage unit, and then the storage device obtains the first storage unit according to the updated data access popularity of the first storage unit. Data access heat of a storage unit group.
- FIG. 6 is a schematic diagram of another method for determining a data access popularity of a storage unit group according to an embodiment of the present application.
- the data access popularity of the second storage unit before being redirected by ROW is 4, and the first The storage unit is an unallocated storage unit in the CKG10, so its data access popularity is 0.
- the data access popularity of the first storage unit can inherit the data access popularity of the second storage unit, that is, the second storage unit
- the data access popularity of 4 is updated to the data access popularity of the first storage unit, and the data access popularity of the first storage unit is obtained as 4.
- the data access popularity of the storage unit group CKG10 where the first storage unit is located also needs to be updated according to the updated data access popularity of the first storage unit.
- FIG. 6 is only used to explain the embodiment of the present application, and should not be construed as a limitation.
- the data access popularity of the redirected first storage unit may inherit the data access popularity of the second storage unit before the redirection, and at the same time update the location of the first storage unit according to the data access popularity inherited by the first storage unit.
- the data access popularity of the storage unit group is determined based on the data access popularity of the updated storage unit group.
- the method for determining the data access heat of a storage unit group can reduce the problem of inaccurate data access heat of the storage unit group where the first storage unit is caused by ROW, so that the data access heat statistics of the storage unit group are more accurate, and the data can be improved. Reasonable migration, thereby improving the tiered storage performance of storage devices.
- the data access heat of the second storage unit can be reset when it is released.
- the second storage unit is recycled (that is, the stored data is cleared)
- the second storage unit does not temporarily store data. Therefore, the second memory cell does not contribute to the data access popularity of the third memory cell group CKG0.
- the storage device may perform data migration according to the updated data access popularity of the third storage unit. Specifically, the storage device may detect a magnitude relationship between a data access popularity of the updated third storage unit group and a set threshold. When the data access popularity of the third storage unit group reaches a set threshold (the third set threshold), it indicates that the data of the third storage unit group needs to be migrated to a storage unit group with higher access performance. The storage device may migrate data in the third storage unit group to a fourth storage unit group, and the access performance of the fourth storage unit group is higher than the access performance of the third storage unit group.
- the storage device may perform data migration according to the updated data access popularity of the third storage unit. Specifically, the storage device may detect a magnitude relationship between a data access popularity of the updated third storage unit group and a set threshold. When the data access popularity of the third storage unit group reaches a set threshold (the third set threshold), it indicates that the data of the third storage unit group needs to be migrated to a storage unit group with higher access performance. The storage device may migrate data in
- the storage device may migrate data in the third storage unit group to a sixth storage unit group, and the access performance of the sixth storage unit group is lower than the access performance of the third storage unit group.
- the third set threshold and the fourth set threshold may be the same or different, which is not limited in the embodiment of the present application. It can be understood that the embodiments of the present application are not limited to the foregoing ROW scenario.
- the method for determining the data access heat of a storage unit group can reduce the problem of inaccurate data access heat of the storage unit group caused by the release of the data of the storage unit, make the data access heat statistics of the storage unit group more accurate, and can improve data migration. Reasonableness, thereby improving the tiered storage performance of the storage device.
- FIG. 7 is a schematic structural diagram of another storage device according to an embodiment of the present application.
- the storage device may include an obtaining module 701 and a migration module 702, where:
- An obtaining module 701 is configured to obtain a data access popularity of a first storage unit group.
- the first storage unit group includes multiple storage units, where each storage unit is a constituent unit of a block included in the logical unit, and the logical unit is a storage device.
- the data access popularity of the first storage unit group is determined by the data access popularity of each storage unit, and the data access popularity of each storage unit is determined by the logic unit where the storage unit is located.
- the function of the acquisition module 701 reference may be made to the description of S101 in the embodiment described in FIG. 4, and details are not described herein again.
- the migration module 702 is configured to migrate data in the first storage unit group to the second storage unit group when the data access popularity of the first storage unit group reaches a set threshold, and the access performance of the second storage unit group is higher than that of the first storage unit group. Access performance of a storage unit group.
- the function of the migration module 702 reference may be made to the description of S102 in the embodiment described in FIG. 4, and details are not described herein again.
- the description about the blocks included in the storage unit group, the storage unit, and the logical unit may be combined with the specific description in the system architecture described in FIG. 3, and the blocks included in the storage unit group, the storage unit, and the logical unit may be sequentially described in FIG. 3
- the CKG, grain, and LUN blocks in the system architecture are not repeated here.
- the storage device counts data access popularity in units of blocks included in the logical unit.
- the specific description of determining the data access popularity of the first storage unit group reference may be made to the description of steps 1 to 4 in the embodiment described in FIG. 4, and details are not described herein again.
- the first storage unit group includes a first storage unit
- the storage device further includes a receiving module 703, a writing module 704, and a saving module 705, where:
- the receiving module 703 is configured to receive a write data request.
- the write data request is used to write data to a second storage unit.
- the storage unit group to which the second storage unit belongs is different from the first storage unit group.
- the saving module 705 is configured to save a correspondence between an actual address of the data and a logical address of the first storage unit.
- the obtaining module 701 is specifically configured to update the data access popularity of the first storage unit according to the data access popularity of the second storage unit: obtain the data access popularity of the first storage unit group according to the updated data access popularity of the first storage unit.
- step S101 in the ROW scenario in the embodiment described in FIG. 4, and details are not described herein again.
- the third storage unit group includes a second storage unit
- the storage device further includes a reset module 706, configured to re-enter the data access popularity of the second storage unit when the second storage unit is released.
- a reset module 706 configured to re-enter the data access popularity of the second storage unit when the second storage unit is released.
- the obtaining module 701 is further configured to obtain the data access popularity of the third storage unit group according to the data access popularity of the second storage unit after the reset.
- the obtaining module 701 refer to the description in the step S101 and the ROW scenario in the embodiment described in FIG. 4 and the description related to FIG. 6, and details are not described herein again.
- the migration module 702 is further configured to migrate the data in the third storage unit group to the fourth storage unit group when the data access popularity of the third storage unit group reaches a set threshold, and the access performance of the fourth storage unit group is higher than Access performance of the third storage unit group.
- the function of the migration module 702 refer to the description in the step S102 and the ROW scenario in the embodiment described in FIG. 4, and details are not described herein again.
- each module may correspond to the corresponding description of the method embodiment shown in FIG. 4.
- the blocks included in the storage unit group, the storage unit, and the logic unit in the solid-state hard disk 22, refer to FIGS. 1-3.
- the detailed description of the storage system architecture is not repeated here.
- the obtaining module 701, the migration module 702, the receiving module 703, the writing module 704, the saving module 705, and the reset module 706 can all be implemented by the processor 112 described in FIG. 2 or the processor 112 calling program code in the memory 111 of.
- the embodiment of the present application further provides a controller, which is used to implement the controller in the storage device as described in FIG. 7.
- An embodiment of the present application further provides a computer-readable storage medium.
- the computer-readable storage medium stores instructions.
- the computer-readable storage medium runs on a computer or a processor, the computer or the processor executes any one of the foregoing methods. Or multiple steps.
- each component module of the above signal processing device is implemented in the form of a software functional unit and sold or used as an independent product, it may be stored in the computer-readable storage medium.
- the computer program product includes one or more computer instructions.
- the computer instructions may be stored in a computer-readable storage medium or transmitted through the computer-readable storage medium.
- the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
- the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server, a data center, and the like that includes one or more available medium integration.
- the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, a solid state disk (SSD)), and the like.
- the processes may be completed by a computer program instructing related hardware.
- the program may be stored in a computer-readable storage medium.
- When the program is executed, Can include the processes of the method embodiments described above.
- the foregoing storage media include: ROM or random storage memory RAM, magnetic disks, or optical discs, which can store various program code media.
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)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请实施例提供一种数据迁移方法和装置,该方法包括:存储设备获取第一存储单元组的数据访问热度,第一存储单元组包含多个存储单元,其中,每个存储单元是逻辑单元所包含的块的组成单位,逻辑单元是存储设备提供的,能够被主机访问的逻辑存储空间,第一存储单元组的数据访问热度由每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由存储单元所在的逻辑单元确定;当第一存储单元组的数据访问热度达到设定阈值时,存储设备将第一存储单元组中的数据迁移至第二存储单元组,第二存储单元组的访问性能高于第一存储单元组的访问性能。实施本申请实施例,可以提高数据访问热度统计的准确性,从而提高存储设备的分层存储性能。
Description
本申请涉及存储技术领域,尤其涉及一种数据迁移方法及装置。
在存储技术领域,为了提高存储性能,在进行数据存储时可以分层存储。分层存储可以将数据分别存储在不同性能的存储设备上,减少非重要性数据在高性能磁盘上所占用的空间。分层存储还可以实现将数据在存储空间之间自动迁移,从而可以获得更好的存储性能。影响数据迁移的一个因素是存储单元的统计信息,该统计信息例如可以包含数据访问热度,数据访问热度可以由存储单元上存储数据的读写次数来确定。
分层存储技术中数据迁移的单位可以是存储单元组,存储单元组可以包含多个存储单元,存储设备可以根据存储单元组中数据访问热度来确定将数据迁移到数据访问性能更高的存储单元组或者是将数据迁移到数据访问性能更低的存储单元组上。在进行数据访问热度统计时,如何保证存储单元组的数据访问热度统计的准确性,是亟待解决的问题。
发明内容
本申请公开了一种数据迁移方法及装置,可以提高数据访问热度统计的准确性,从而提高存储设备的分层存储性能。
第一方面,本申请实施例提供一种数据迁移方法,所述方法包括:存储设备获取第一存储单元组的数据访问热度,所述第一存储单元组包含多个存储单元,其中,每个存储单元是逻辑单元所包含的块的组成单位,所述逻辑单元是所述存储设备提供的,能够被主机访问的逻辑存储空间,所述第一存储单元组的数据访问热度由每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由所述存储单元所在的逻辑单元确定;当所述第一存储单元组的数据访问热度达到设定阈值时,所述存储设备将所述第一存储单元组中的数据迁移至第二存储单元组,所述第二存储单元组的访问性能高于所述第一存储单元组的访问性能。
上述的数据迁移方法中,通过统计逻辑单元所包含的块的数据访问热度来确定组成该逻辑单元所包含的块的存储单元的数据访问热度。存储单元组的数据访问热度可以根据其中包含的每个存储单元的数据访问热度来确定。这样确定的存储单元组的数据访问热度,可以更准确的反映存储单元组的数据访问的频繁程度,从而可以提高存储单元组的数据访问热度统计的精确度,提高存储设备的分层存储性能。
其中,逻辑单元所包含的块可以是LUN block。
在一种可能的实施例中,所述存储设备以所述逻辑单元所包含的块为单位统计数据访问热度。
具体的,确定第一存储单元组的数据访问热度可以包含以下步骤:步骤一,存储设备统计每个LUN block的数据访问频次。步骤二,存储设备根据每个LUN block的数据访问频次来确定每个LUN block的数据访问热度。步骤三:存储设备确定每个LUN block所包含的存储单元的数据访问热度。步骤四:针对于每个存储单元组,存储设备根据存储单元组中包含的每个存储单元的数据访问热度确定存储单元组的数据访问热度。
可选的,LUN block的数据访问热度还可以直接对LUN block进行统计得到。例如直接统计LUN block的数据访问频次作为LUN block的数据访问热度,即在执行步骤一之后无需执行步骤二,直接根据得到的数据访问热度执行步骤三。
上述的数据迁移方法中,可以实现将用户经常访问的热数据存放在低延迟、高速度的存储介质中,将很少被访问的冷数据放在高延迟、低成本的存储介质中,从而可以实现通过分层存储来提高磁盘的利用效率。另外,通过统计LUN block的数据访问频次来确定LUN block的数据访问热度,之后根据该LUN block的数据访问热度来确定组成该LUN block的存储单元的数据访问热度。存储单元组的数据访问热度可以根据其中包含的每个存储单元的数据访问热度来确定。这样确定的存储单元组的数据访问热度,可以更准确的反映存储单元组的数据访问的频繁程度,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
在一种可能的实施例中,所述第一存储单元组包括第一存储单元,所述方法还包括:所述存储设备接收写数据请求,所述写数据请求用于将数据写入第二存储单元,所述第二存储单元所属的存储单元组不同于所述第一存储单元组;所述存储设备将所述数据写入所述第一存储单元,并保存所述数据的实际地址与所述第一存储单元的逻辑地址的之间的对应关系;所述存储设备获取第一存储单元组的数据访问热度包括:所述存储设备根据所述第二存储单元的数据访问热度更新所述第一存储单元的数据访问热度:所述存储设备根据更新后的所述第一存储单元的数据访问热度获取所述第一存储单元组的数据访问热度。
上述ROW场景下,重定向的第一存储单元的数据访问热度可以继承重定向之前的第二存储单元的数据访问热度,并同时根据第一存储单元继承的数据访问热度更新第一存储单元所在的存储单元组的数据访问热度,根据更新后的存储单元组的数据访问热度来确定是否迁移。该存储单元组的数据访问热度确定方法,可以减少因为ROW导致的第一存储单元所在的存储单元组的数据访问热度不准确的问题,使得存储单元组的数据访问热度统计更加准确,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
在一种可能的实施例中,第三存储单元组包含所述第二存储单元,所述方法还包括:当所述第二存储单元被释放时,所述存储设备将所述第二存储单元的数据访问热度重置;所述存储设备根据重置后的所述第二存储单元的数据访问热度获取所述第三存储单元组的数据访问热度;当所述第三存储单元组的数据访问热度达到设定阈值时,所述存储设备将所述第三存储单元组中的数据迁移至第四存储单元组,所述第四存储单元组的访问性能高于所述第三存储单元组的访问性能。在存储单元组中的存储单元的数据被释放之后,重置该被释放的存储单元的数据访问热度,并根据该重置的存储单元的数据访问热度来更新所在的存储单元组的数据访问热度。该存储单元组的数据访问热度确定方法,可以减少因为存储单元的数据被释放导致的存储单元组的数据访问热度不准确的问题,使得存储单元组的数据访问热度统计更加准确,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
第二方面,本申请提供一种存储设备,包括至少一个控制器和多个固态硬盘;控制器通过存储区域网络与主机连接,以接收来自主机的I/O请求,控制器可以存储I/O请求中携带的数据,并且将该数据写入固态硬盘中;所述控制器用于调用程序指令来执行第一方面或者第一方面任一种可能实现方式所描述的方法。
具体的,控制器可以包括一个或多个接口卡和处理器;接口卡用于和主机通信,控制器可以通过接口卡接收主机的操作指令。控制器可以通过接口卡将写数据指令发送给固态硬盘 存储。
可选地,控制器还可以包括存储器,存储器用于临时存储从主机接收的数据或从固态硬盘读取的数据。控制器收主机发送的多个写数据指令时,可以将所述多个写数据指令中的数据暂时保存在存储器中。当存储器的容量达到一定阈值时,将存储器存储的数据以及为所述数据分配的逻辑地址发送给固态硬盘,固态硬盘存储所述数据。存储器还可以包含程序代码,处理器可以调用该程序代码来执行第一方面或者第一方面任一种可能实现方式所描述的方法。
第三方面,本申请提供一种控制器,该控制器用于第二方面所描述的存储设备,该控制器包括处理器和存储器,所述存储器用于存储程序指令,所述处理器用于调用所述程序指令来执行第一方面或者第一方面任一种可能实现方式所描述的方法。
第四方面,本申请提供一种存储设备,包括用于执行第一方面或第一方面任一个可能的实施例所提供方法的模块或单元。
第五方面,本申请提供一种控制器,包括用于执行第一方面或第一方面任一个可能的实施例所提供方法的模块或单元。
第六方面,本发明提供一种芯片系统,该芯片系统包括至少一个处理器,存储器和接口电路,该存储器、该接口电路和该至少一个处理器通过线路互联,该至少一个存储器中存储有程序指令;该程序指令被该处理器执行时,实现第一方面或者第一方面任一个可能的实施例所描述的方法。
第七方面,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,当该程序指令由处理器运行时,实现第一方面或者第一方面任一个可能的实施例所描述的方法。
第八方面,本发明实施例提供一种计算机程序产品,当该计算机程序产品在由处理器上运行时,实现第一方面或者第一方面任一个可能的实施例所描述的方法。
下面对本申请实施例用到的附图进行介绍。
图1是本申请实施例提供的一种存储设备的结构示意图;
图2是本申请实施例提供的一种控制器的结构示意图;
图3是本申请实施例提供的一种存储设备架构的结构示意图;
图4是本申请实施例提供的一种数据迁移方法的流程示意图;
图5是本申请实施例提供的一种确定存储单元组的数据访问热度的方法示意图;
图6是本申请实施例提供的另一种确定存储单元组的数据访问热度的方法示意图;
图7是本申请实施例提供的另一种存储设备的结构示意图。
下面结合本申请实施例中的附图对本申请实施例进行描述。本申请实施例的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
首先,介绍本申请实施例涉及的应用场景。在存储技术领域,存储设备可以利用独立磁盘冗余阵列(redundantarrayofindependent disks,RAID)将数据存储在不同性能的硬盘上,实现存储设备对数据的分层存储。具体的,存储设备中可以同时包含高性能的存储介质(例如 固态硬盘(solid state drives,SSD))和低成本且性能较低的存储介质(例如串口(serial advanced technology attachment,SATA)磁盘、串行连接(serial attached small computer system interface,SAS)磁盘),在利用这些硬盘时可以通过分层存储来提高磁盘的利用效率。即将用户经常访问的热数据(hot data)存放在低延迟、高速度的存储介质中,将很少被访问的冷数据(cold data)放在高延迟、低成本的存储介质中。为了实现分层存储,存储设备可以以存储单元组为粒度,周期性的获取磁盘中各个存储单元组的数据访问热度。然后根据各个存储单元组的数据访问热度来实现将热数据迁移到低延迟、高速度的存储介质,将冷数据迁移到高延迟、低成本的存储介质。
其次,为了便于理解本申请实施例,对本申请实施例涉及的系统架构进行介绍。
请参阅图1,图1是本申请实施例提供的一种存储设备的结构示意图,图1所示的存储设备包括至少一个控制器(如图1所示的控制器11)和多个固态硬盘22。控制器11通过存储区域网络(storage area network,SAN)与主机(图中未示出)连接。控制器11可以是一种计算设备,如服务器、台式计算机等等。在控制器11上安装有操作系统以及应用程序。控制器11可以接收来自主机的输入输出(input/output,I/O)请求。控制器11还可以存储I/O请求中携带的数据(如果有的话),并且将该数据写入固态硬盘22中。固态硬盘(solid state disk,SSD)是以闪存(英文:flash memory)芯片为介质的存储器,又名固态驱动器(solid state drive,SSD)。
图1仅是示例性说明,在实际应用中存储设备可包含两个或两个以上控制器,每个控制器的物理结构和功能与控制器11类似,并且本实施例并不限定控制器之间,以及任意一个控制器与固态硬盘22之间的连接方式。只要各个控制器之间,以及各个控制器和固态硬盘22之间能够相互通信。另外,在本实施例中,控制器11在向固态硬盘发指令时往往是向多个固态硬盘发送,为了方便描述,将包含多个固态硬盘22的集合称为固态硬盘组。
图2是本申请实施例提供的一种控制器11的结构示意图,如图2所示,控制器11包括接口卡110、处理器112和接口卡113。
接口卡110用于和主机通信,控制器11可以通过接口卡110接收主机的操作指令。处理器112可能是一个中央处理器(central processing unit,CPU)。在本发明实施例中,处理器112可以用于接收来自主机的I/O请求、处理所述I/O请求。所述I/O请求可以是写数据指令或者读数据指令,处理器112还可以将写数据指令中的数据发送给固态硬盘22。此外,处理器112还可以用于执行系统垃圾回收操作。接口卡113,用于和固态硬盘22通信,控制器11可以通过接口卡113将写数据指令(包括数据以及所述数据的生命周期级别)发送给固态硬盘22存储。
可选地,控制器11还可以包括存储器111。存储器111用于临时存储从主机接收的数据或从固态硬盘22读取的数据。控制器11接收主机发送的多个写数据指令时,可以将所述多个写数据指令中的数据暂时保存在存储器111中。当存储器111的容量达到一定阈值时,将存储器111存储的数据以及为所述数据分配的逻辑地址发送给固态硬盘22。固态硬盘22存储所述数据。存储器111包括易失性存储器,闪存芯片或其组合。易失性存储器例如为随机访问存储器(random-access memory,RAM)。闪存芯片例如软盘、硬盘、固态硬盘(solid state disk,SSD)、光盘等各种可以存储程序代码的机器可读介质。存储器111具有保电功能,保电功能是指系统发生掉电又重新上电时,存储器111中存储的数据也不会丢失。
其中,控制器11还用于执行本申请实施例提供的数据迁移方法,具体如图4所描述的数据迁移方法。
需要说明的是,控制器11属于系统控制器,系统控制器是独立的设备,不同于固态硬盘中的控制芯片。本实施例将固态硬盘的控制芯片称为闪存控制器。
请参阅图3,图3是本申请实施例提供的一种存储设备的架构示意图。如图3所示,本申请实施例中固态硬盘22中的n+1个硬盘可以是同一类型的硬盘,该类型的硬盘具体如SSD类型的硬盘,或者SATA类型的硬盘,或者SAS类型的硬盘等。该固态硬盘22即为物理硬盘,统一提供存储资源。
如图3所示,存储设备可以将固态硬盘22划分为多个连续固定大小的存储空间,该固定大小的存储空间可以是存储块(chunk,CK)20,CK 20的大小可以固定为4MB,但不限定为4MB,还可以是其他固定大小。
CK 20根据RAID策略可以组成存储单元组(chunk group,CKG)30。CKG 30可以是从固态硬盘22中随机选取的多个不同盘的CK 20,按照RAID算法组成的逻辑存储单元。具体的,来自不同固态硬盘的存储块可以构成一个存储单元集合,控制器11再根据预设的RAID类型将这个存储单元集合中的存储块划分为数据组和校验组。数据组中包括至少两个存储块,用于存储数据,校验组中包括至少一个存储块,用于存储所述数据的校验数据。本实施例中,将包含数据组和校验组的存储单元集合称为CKG 30,即存储单元组。当控制器11在存储器111中凑满一定大小的数据时,可以根据所述预设的RAID类型切分为多个数据单元,并计算获得校验单元,将所述数据单元以及校验单元发送给固态硬盘,以保存在所述CKG 30中。数据组中的每个存储块用于存储数据单元,校验组中的每个存储块用于存储校验单元。存储之后,这些数据单元和对应的校验单元就构成一个存储单元。存储单元组可以包括多个存储单元,存储单元可以是存储单元组的一个分条。
其中,存储单元可以包含数据单元和校验单元。本实施例中,以存储单元的大小为8KB为例,但不限定为8KB。如图3所示,该存储单元即是CKG 30被划分为更细粒度固定大小的逻辑存储空间,该存储单元可以是逻辑存储单元(grain)80。其中,CKG30可以分条划分,分条划分得到的分条单元中包含逻辑存储单元grain 80,grain 80的大小可以是用户根据业务需求设置的。CKG 30可以作为数据访问热度统计和迁移的单元,grain 80也可以作为数据访问热度统计和迁移的单元。
CKG30中每个CKG中的CK均来自同一类型的硬盘。在以CKG30作为数据访问热度统计和迁移的单元的情况下,检测到CKG1的数据访问热度达到设定阈值时,可以将CKG1上存储的数据迁移到访问性能更高的CKG上。例如,组成图3所示的CKG30中的CK来自SAS硬盘。在检测到CKG1的数据访问热度达到设定阈值时,表明需要将CKG1上存储的数据存储到访问性能更高的CKG上,可以将CKG1上存储的数据迁移到来自于SSD的CKG上。在检测到CKG1的数据访问热度低于第二设定阈值时,表明需要将CKG1上存储的数据存储到访问性能更低的CKG上,可以将CKG1上存储的数据迁移到来自SATA的CKG上。其中的数据访问性能可以包含延迟、访问速度等。
如图3所示,本申请实施例以存储单元为grain 80为例进行介绍,可以理解的,示例仅用于解释本申请实施例,不应构成限定。另外,图3所示出的系统架构仅用于解释本申请实施例,不应构成限定。本申请实施例的存储系统架构还可以扩展为其他架构,例如,在图3 示出的架构基础上,CKG 30可以分条得到extent,extent可以划分为grain 80,grain 80可以作为存储单元,用来组成LUN block 60。即LUN block 60的组成单位是grain 80。
图3所示出的系统架构以CKG30分条划分为分条单元,分条单元中包含固定大小的逻辑存储单元grain 80为例介绍,可以理解的,不限于该划分方法,本申请实施例对于其他划分方法同样适用。
如图3所示,假设从3个固态硬盘中各取出一个存储块20构成存储单元组30,然后控制器11根据RAID类型(以RAID6为例)对该存储单元组30中的存储块进行分组,例如存储块1和存储块2为数据块组,存储块3为校验块组。当存储器111中存储的数据达到16KB(8KB*2)时,将所述数据划分为2个数据单元,每个数据单元为8KB,然后计算获得1个校验单元,每个校验单元也为8KB。控制器11将这些数据单元和校验单元发送给固态硬盘,存储在所述存储单元组中(如图3中CKG1或CKG2所示)。可以理解的是,按照RAID6的冗余保护机制,任意一个数据单元或者校验单元失效时,可以根据剩下的数据单元或者校验单元重构出失效的单元。
在本实施例中,当存储器111中凑满等于一个存储单元大小的数据时,控制器11会向固态硬盘组发送写数据指令,使得固态硬盘组所包括的固态硬盘22将数据写入CKG 30的存储单元中。此时,控制器11需判断是否存在一个已经分配的CKG 30,如果有并且该CKG 30仍然有足够的空间容纳该数据,那么控制器11可以指令固态硬盘组将该数据写入已经分配的CKG 30中。具体的,控制器11从所述已经分配的CKG 30的逻辑地址区间中获取一段未使用的逻辑地址,将所述逻辑地址携带在所述写数据指令中发送给固态硬盘22。固态硬盘22保存所述数据之后再在闪存翻译层中创建所述逻辑地址与保存该数据的实际地址之间的映射关系。
在上述例子中,如果控制器11确定系统中并不存在已经分配的CKG 30,或者已分配的CKG 30均已写满数据,那么控制器11就需要创建一个新的CKG 30。其创建过程可以是,控制器11根据自己对每个固态硬盘所拥有的可用空间的记录,确定系统剩余空间足以创建一个新的CKG 30。接下来,控制器11分别从不同的固态硬盘22中获取一个CK 20,将根据预设的RAID类型将这些CK 20构建成一个新的CKG 30(可参考前面关于存储单元组的描述)。然后,控制器11为每个CK 20分配一段逻辑地址,这些逻辑地址集合就是所述新的CKG 30的逻辑地址。
固态硬盘22可以用于创建多个存储池(storage pool)40。存储池40创建在固态硬盘22上,是固态硬盘22上的硬盘子集,每个存储池40可以由用户指定大小、类型和容量。其中,CKG 30是存储池40从固态硬盘22上获取分配的资源的最小单位。存储池40由来自一种或者多种存储介质上的多个CKG 30组成。CK 20和CKG 30属于存储设备内部的对象,由存储设备完成配置,对用户不体现。
存储设备中的管理对象是卷(volume)50。一个volume50对象用于组织一个逻辑单元号(logical unit number,LUN)的全部的存储单元,存储单元包括grain。
其中,LUN是可以直接映射给主机读写的逻辑存储空间,是一种逻辑单元。LUN是volume50的对外体现。LUN上的存储的数据可以根据数据访问热度调整存储位置,迁移到存储池40中不同的存储层。LUN block 60是LUN的逻辑地址空间上按逻辑区块地址(logical block address,LBA)划分出的小块,LUN block 60可以由存储池40中的多个存储单元组成。该逻 辑单元所包含的块的组成单位是存储单元。这多个存储单元可以是不同存储介质,可以是来自不同的存储单元组。因此LUN block 60可以调动多个硬盘同时读写数据,响应速度快、效率高,实现性能提升。
可以理解的,本申请实施例对上述的存储块、存储单元组、存储单元、逻辑单元等的名称不做限制,在存储技术领域还可以有其他的名称。另外,不限于图3所描述的系统架构,本申请实施例对于其他类似的应用场景和系统架构也同样适用。
在分层存储技术中,数据迁移的单位可以是CKG,数据迁移可以是根据CKG的数据访问热度来确定将数据迁移到数据访问性能更高的CKG或者是将数据迁移到数据访问性能更低的CKG上。在进行数据访问热度统计时,如何保证CKG的数据访问热度统计的准确性,是亟待解决的问题。
基于上述应用场景和系统架构,为提升存储单元组的数据访问热度统计的准确性,本发明实施例提供一种数据迁移方法和装置。
该数据迁移方法中,首先,存储设备可以统计可被主机访问的LUN block的数据访问热度。其次,针对于每个LUN block,存储设备可以根据LUN block的数据访问热度来标记组成该LUN block中的存储单元的数据访问热度。再次,存储设备可以根据组成存储单元组的各个存储单元的数据访问热度来确定该存储单元组的数据访问热度。最后,在检测到存储单元组的数据访问热度达到设定阈值时,存储设备将该存储单元组中的数据迁移到访问性能更高的存储单元组。或者在检测到存储单元组的数据访问热度低于第二设定阈值时,存储设备可以将该存储单元组中的数据迁移到访问性能更低的存储单元组中。
上述的数据迁移方法中,通过统计LUN block的数据访问热度,来确定组成该LUN block的存储单元的数据访问热度。存储单元组的数据访问热度可以根据其中包含的每个存储单元的数据访问热度来确定。这样确定的存储单元组的数据访问热度,可以更准确的反映存储单元组的数据访问的频繁程度,从而可以提高存储单元组的数据访问热度统计的精确度,提高存储设备的分层存储性能。
示例性的,本申请实施例提供一种数据迁移方法,可以提高数据迁移的精确度。请参阅图4,图4是本申请实施例提供的一种数据迁移方法的流程示意图,该数据迁移方法包含但不限于步骤S101-S102。
S101、存储设备获取第一存储单元组的数据访问热度。
S102、当第一存储单元组的数据访问热度达到设定阈值时,存储设备将第一存储单元组中的数据迁移至第二存储单元组。
其中,第一存储单元组的数据访问热度由每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由该存储单元所在的逻辑单元确定。本申请实施例中,第一存储单元组可以是存储设备中的任一个存储单元组。关于存储单元组、存储单元和逻辑单元所包含的块的描述可以结合图3所描述的系统架构中的具体描述,存储单元组、存储单元和逻辑单元所包含的块可以依次为图3所描述的系统架构中的CKG、grain和LUN block,这里不再赘述。
存储设备可以以逻辑单元所包含的块为单位统计数据访问热度。下面具体介绍如何确定第一存储单元组的数据访问热度。确定第一存储单元组的数据访问热度可以包含以下步骤:
步骤一:存储设备统计每个LUN block的数据访问频次。
具体的,由于LUN是直接映射给主机的、对用户直接可见的逻辑存储空间,存储设备以逻辑单元所包含的块为单位统计数据访问频次。具体的,可以以逻辑单元所包含的块为监控对象,统计每个逻辑单元所包含的块的读、写数据的次数。另外,由于数据访问频次可能会随时间变化,存储设备可以周期性的统计该数据访问频次。
步骤二:存储设备根据每个LUN block的数据访问频次来确定每个LUN block的数据访问热度。
步骤三:存储设备确定每个LUN block所包含的存储单元的数据访问热度。
步骤四:针对于每个存储单元组,存储设备根据存储单元组中包含的每个存储单元的数据访问热度确定存储单元组的数据访问热度。
其中,数据访问热度可以用于表征LUN block的数据访问频繁的程度。本申请实施例对如何根据数据访问频次来确定数据访问热度不作具体限定,下面介绍一种具体的实现方式示例,可以理解的,示例仅用于解释本申请实施例,不应构成限定。
请一并参阅图5和表一,图5是本申请实施例提供的一种确定存储单元组的数据访问热度的方法示意图。表一是本申请实施例提供的一种确定LUN block的数据访问热度的示例。
表一 确定LUN block的数据访问热度的示例
数据访问频次 | 数据访问热度 | |
LUN block0 | 500 | 4 |
LUN block2 | 200 | 2 |
LUN block10 | 100 | 1 |
…… | …… | …… |
如表一所示,数据访问热度可以用于表征LUN block的数据访问频繁的程度,数据访问频次越大,数据访问热度也越大。具体根据数据访问频次得到数据访问热度的方法例如可以是映射表的方式。即预设区间内的数据访问频次对应一个数据访问热度,确定LUN block的数据访问频次落在的数据访问频次区间,并查找映射表中得到该数据访问频次区间在映射表中对应的数据访问热度。可以理解的,不限于上述确定数据访问热度的方法,还可以是其他算法来实现。
具体实现中,LUN block的数据访问热度还可以直接对LUN block进行统计得到。例如直接统计LUN block的数据访问频次作为LUN block的数据访问热度,即在执行步骤一之后无需执行步骤二,直接根据得到的数据访问热度执行步骤三。
如图5所示,在确定了各个LUN block的数据访问热度之后,存储设备可以将LUN block包含的存储单元的数据访问热度确定为对应的LUN block的数据访问热度。如图5所示,对于LUN block0,存储设备可以将其包含的各个存储单元的数据访问热度标记为4。对于LUN block2,存储设备可以将其包含的各个存储单元的数据访问热度标记为2。对于LUN block10,存储设备可以将其包含的各个存储单元的数据访问热度标记为1。
在确定各个LUN block的各组成单位(存储单元)的数据访问热度之后,可以确定各个存储单元组的数据访问热度。具体的,如图5所示,对于CKG0来说,其数据访问热度是其包含的4个存储单元的数据访问热度的叠加,即4*2+2+1=11。对于CKG2来说,其数据访问热度是其包含的4个存储单元的数据访问热度的叠加,即4+2+1*2=8。对于CKG10来说,其数据访问热度是其包含的4个存储单元的数据访问热度的叠加,即4+2*2+1=9。由此得到 CKG0、CKG2和CKG10各个CKG的数据访问热度,存储设备可以根据各个CKG的数据访问热度来确定是否进行数据迁移。其中,关于存储单元、存储单元组和逻辑单元可以参考图3所描述的系统架构的具体描述,这里不再赘述。
可以理解的,上述确定存储单元组的数据访问热度的过程举例仅用于解释本申请实施例,不应构成限定。具体实现中,还可以是其他的方法,例如在根据LUN block10确定其包含的各个存储单元的数据访问热度时,还可以是重新为其包含的存储单元的数据访问热度赋值。再例如,在根据存储单元的数据访问热度来确定存储单元组的数据访问热度时,可以是数据访问热度叠加以外的方法,本申请实施例对此均不做限定。
在存储设备获取第一存储单元组的数据访问热度之后,可以检测第一存储单元组的数据访问热度与设定阈值之间的大小关系。当第一存储单元组的数据访问热度达到设定阈值(第一设定阈值)时,表明需要将第一存储单元组的数据迁移到访问性能更高的存储单元组上。存储设备可以将第一存储单元组中的数据迁移至第二存储单元组,第二存储单元组的访问性能高于所述第一存储单元组的访问性能。当第一存储单元组的数据访问热度低于第二设定阈值时,表明需要将第一存储单元组的数据迁移到访问性能更低的存储单元组上。存储设备可以将第一存储单元组中的数据迁移至第五存储单元组,第五存储单元组的访问性能低于所述第一存储单元组的访问性能。
其中,第一设定阈值和第二设定阈值可以相等,也可以不相等,本申请实施例对此不作限定。其中的存储单元的数据访问性能可以包含延迟、访问速度等。
上述的数据迁移方法中,可以实现将用户经常访问的热数据(hot data)存放在低延迟、高速度的存储介质中,将很少被访问的冷数据(cold data)放在高延迟、低成本的存储介质中,从而可以实现通过分层存储来提高磁盘的利用效率。另外,通过统计LUN block的数据访问频次来确定LUN block的数据访问热度,之后根据该LUN block的数据访问热度来确定组成该LUN block的存储单元的数据访问热度。存储单元组的数据访问热度可以根据其中包含的每个存储单元的数据访问热度来确定。这样确定的存储单元组的数据访问热度,可以更准确的反映存储单元组的数据访问的频繁程度,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
在进行数据存储时,可以通过写时重定向(redirect on write,ROW)技术来实现对数据在某个时间点进行备份。下面具体介绍ROW技术。
在进行ROW时,首先会针对数据卷创建一个快照(snapshot),快照可以是关于指定数据集合的一个完全可用拷贝,该拷贝包括数据集合在某个时间点的映像,其中的数据集合即为数据卷上存储的数据的集合。该快照可以是该数据卷对应的快照卷,该数据卷也可以称为源卷。在数据卷接收到写请求之后,可以将对于数据卷中某个存储单元的写请求重定向给快照卷中预留的存储单元,将请求写入的数据写入快照卷。具体的,在进行写操作时,上层业务请求对快照卷写数据,数据在缓存中排队时,若判断出数据即将写入的逻辑地址是数据卷的逻辑地址,则将该数据重定向写入快照卷中预留的逻辑地址中,同时将该数据的实际地址和快照卷中该逻辑地址写入映射表。在上层业务请求读取数据卷时,创建快照之前的数据从源卷读取,创建快照之后写入的数据从快照卷读取。
ROW可以是以存储单元为单位实现,即数据卷中的存储单元与快照卷中的一个存储单元对应。在执行对数据卷中存储单元的写操作时,将请求写入的数据写入快照卷中对应的存储单元中。并建立数据卷中该存储单元的逻辑地址与对应快照卷中存储单元的逻辑地址的映射关系。
在ROW场景下,第一存储单元组可以包括第一存储单元,存储设备可以接收写数据请求,该写数据请求用于将数据写入第二存储单元,第二存储单元所属的存储单元组不同于第一存储单元组,第二存储单元所属的存储单元组可以是第三存储单元组。经过ROW存储设备可以将数据写入第一存储单元,并保存该数据的实际地址与第一存储单元的逻辑地址的之间的对应关系。在ROW场景下,步骤S101可以具体实施为:存储设备根据第二存储单元的数据访问热度更新第一存储单元的数据访问热度,然后存储设备根据更新后的第一存储单元的数据访问热度获取第一存储单元组的数据访问热度。
示例性的,请参阅图6,图6是本申请实施例提供的另一种确定存储单元组的数据访问热度的方法示意图。如图6所示,以第二存储单元为CKG0中的存储单元、第一存储单元为CKG10中的存储单元为例,第二存储单元在通过ROW重定向之前的数据访问热度为4,第一存储单元是CKG10中未被分配的存储单元,因此其数据访问热度为0。第二存储单元所在的第三存储单元组(CKG1)的数据访问热度可以是其包含的各个存储单元的数据访问热度的叠加,即4*2+2+1=11,第一存储单元所在的第一存储单元组(CKG10)的数据访问热度可以是其包含的各个存储单元的数据访问热度的叠加,即4+2+1=7。
如图6所示,在通过ROW将第二存储单元的写操作重定向到第一存储单元之后,第一存储单元的数据访问热度可以继承第二存储单元的数据访问热度,即将第二存储单元的数据访问热度4更新到第一存储单元的数据访问热度,得到第一存储单元的数据访问热度为4。在第一存储单元的数据访问热度更新之后,第一存储单元所在的存储单元组CKG10的数据访问热度也需要根据更新的第一存储单元的数据访问热度进行更新。如图6所示,第一存储单元组CKG10的数据访问热度更新为4*2+2+1=11。
可以理解的,图6所示示例仅用于解释本申请实施例,不应构成限定。
上述ROW场景下,重定向的第一存储单元的数据访问热度可以继承重定向之前的第二存储单元的数据访问热度,并同时根据第一存储单元继承的数据访问热度更新第一存储单元所在的存储单元组的数据访问热度,根据更新后的存储单元组的数据访问热度来确定是否迁移。该存储单元组的数据访问热度确定方法,可以减少因为ROW导致的第一存储单元所在的存储单元组的数据访问热度不准确的问题,使得存储单元组的数据访问热度统计更加准确,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
另一方面,在通过ROW将第二存储单元的写操作重定向到第一存储单元之后,在第二存储单元被释放时可以重置其数据访问热度。如图6所示,在第二存储单元被回收(即所存储的数据被清除)之后,对于第二存储单元所在的存储单元组来说,第二存储单元暂时未存放数据。因此第二存储单元未对第三存储单元组CKG0的数据访问热度产生贡献。此时需要重新更新第三存储单元组CKG0的数据访问热度为:4+2+1+0=7。
在更新第三存储单元的数据访问热度之后,存储设备可以根据更新后的第三存储单元的数据访问热度来进行数据迁移。具体的,存储设备可以检测该更新的第三存储单元组的数据访问热度与设定阈值之间的大小关系。当第三存储单元组的数据访问热度达到设定阈值(第 三设定阈值)时,表明需要将第三存储单元组的数据迁移到访问性能更高的存储单元组上。存储设备可以将第三存储单元组中的数据迁移至第四存储单元组,第四存储单元组的访问性能高于所述第三存储单元组的访问性能。当第三存储单元组的数据访问热度低于第四设定阈值时,表明需要将第三存储单元组的数据迁移到访问性能更低的存储单元组上。存储设备可以将第三存储单元组中的数据迁移至第六存储单元组,第六存储单元组的访问性能低于所述第三存储单元组的访问性能。
其中,第三设定阈值和第四设定阈值可以相等,也可以不相等,本申请实施例对此不作限定。可以理解的,本申请实施例不限定上述ROW场景,只要是存储单元组中的存储单元被释放,该被释放的存储单元的数据访问热度均重置。并根据重置的存储单元的数据访问热度更新该存储单元组的数据访问热度,根据更新的存储单元组的数据访问热度来进行数据迁移。
在存储单元组中的存储单元的数据被释放之后,重置该被释放的存储单元的数据访问热度,并根据该重置的存储单元的数据访问热度来更新所在的存储单元组的数据访问热度。该存储单元组的数据访问热度确定方法,可以减少因为存储单元的数据被释放导致的存储单元组的数据访问热度不准确的问题,使得存储单元组的数据访问热度统计更加准确,可以提高数据迁移的合理性,从而提高存储设备的分层存储性能。
上述详细阐述了本申请实施例的方法,下面提供了本申请实施例的装置。
请参阅图7,图7是本申请实施例提供的另一种存储设备的结构示意图,如图7所示,该存储设备可以包含获取模块701和迁移模块702,其中:
获取模块701,用于获取第一存储单元组的数据访问热度,第一存储单元组包含多个存储单元,其中,每个存储单元是逻辑单元所包含的块的组成单位,逻辑单元是存储设备提供的,能够被主机访问的逻辑存储空间,第一存储单元组的数据访问热度由每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由存储单元所在的逻辑单元确定。关于获取模块701功能的描述,具体可参考图4所描述实施例中S101的描述,这里不再赘述。
迁移模块702,用于当第一存储单元组的数据访问热度达到设定阈值时,将第一存储单元组中的数据迁移至第二存储单元组,第二存储单元组的访问性能高于第一存储单元组的访问性能。关于迁移模块702功能的描述,具体可参考图4所描述实施例中S102的描述,这里不再赘述。
关于存储单元组、存储单元和逻辑单元所包含的块的描述可以结合图3所描述的系统架构中的具体描述,存储单元组、存储单元和逻辑单元所包含的块可以依次为图3所描述的系统架构中的CKG、grain和LUN block,这里不再赘述。
在一种可能的实施方式中,存储设备以逻辑单元所包含的块为单位统计数据访问热度。关于确定第一存储单元组的数据访问热度的具体描述,具体可参考图4所描述实施例中步骤一-步骤四部分的描述,这里不再赘述。
在一种可能的实施方式中,第一存储单元组包括第一存储单元,存储设备还包括接收模块703、写入模块704和保存模块705,其中:
接收模块703,用于接收写数据请求,写数据请求用于将数据写入第二存储单元,第二存储单元所属的存储单元组不同于第一存储单元组;
写入模块704,用于将数据写入第一存储单元;
保存模块705,用于保存数据的实际地址与第一存储单元的逻辑地址的之间的对应关系。
关于接收模块703、写入模块704和保存模块705的描述,具体可参考图4所描述实施例中ROW场景的描述,这里不再赘述。
获取模块701,具体用于根据第二存储单元的数据访问热度更新第一存储单元的数据访问热度:根据更新后的第一存储单元的数据访问热度获取第一存储单元组的数据访问热度。
关于ROW场景下获取模块701功能的描述,具体可参考图4所描述实施例中ROW场景下步骤S101具体实施的描述,这里不再赘述。
在一种可能的实施方式中,第三存储单元组包含第二存储单元,存储设备还包括重置模块706,用于当第二存储单元被释放时,将第二存储单元的数据访问热度重置,关于重置模块706功能的描述,具体参考图4所描述实施例中ROW场景下的描述和图6相关的描述,这里不再赘述。
获取模块701,还用于根据重置后的第二存储单元的数据访问热度获取第三存储单元组的数据访问热度。关于获取模块701功能的描述,具体参考图4所描述实施例中步骤S101、ROW场景下的描述和图6相关的描述,这里不再赘述。
迁移模块702,还用于当第三存储单元组的数据访问热度达到设定阈值时,将第三存储单元组中的数据迁移至第四存储单元组,第四存储单元组的访问性能高于第三存储单元组的访问性能。关于迁移模块702功能的描述,具体参考图4所描述实施例中步骤S102和ROW场景下的描述,这里不再赘述。
在该实施例中,各模块的功能可以对应参照图4所示方法实施例的相应描述,关于固态硬盘22中存储单元组、存储单元和逻辑单元所包含的块可以参考图1-3所描述的存储系统架构的具体描述,这里不再赘述。
其中,获取模块701、迁移模块702、接收模块703、写入模块704和保存模块705和重置模块706均可以是图2所描述的处理器112或者处理器112调用存储器111中的程序代码实现的。
本申请实施例还提供一种控制器,用于实现如图7所描述的存储设备中的控制器。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述任一个方法中的一个或多个步骤。上述信号处理装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在所述计算机可读取存储介质中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者通过所述计算机可读存储介质进行传输。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可 用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (10)
- 一种数据迁移方法,其特征在于,所述方法包括:存储设备获取第一存储单元组的数据访问热度,所述第一存储单元组包含多个存储单元,其中,每个存储单元是逻辑单元所包含的块的组成单位,所述逻辑单元是所述存储设备提供的,能够被主机访问的逻辑存储空间,所述第一存储单元组的数据访问热度由每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由所述存储单元所在的逻辑单元确定;当所述第一存储单元组的数据访问热度达到设定阈值时,所述存储设备将所述第一存储单元组中的数据迁移至第二存储单元组,所述第二存储单元组的访问性能高于所述第一存储单元组的访问性能。
- 根据权利要求1所述的方法,其特征在于,所述存储设备以所述逻辑单元所包含的块为单位统计数据访问热度。
- 根据权利要求1或2所述的方法,其特征在于,所述第一存储单元组包括第一存储单元,所述方法还包括:所述存储设备接收写数据请求,所述写数据请求用于将数据写入第二存储单元,所述第二存储单元所属的存储单元组不同于所述第一存储单元组;所述存储设备将所述数据写入所述第一存储单元,并保存所述数据的实际地址与所述第一存储单元的逻辑地址的之间的对应关系;所述存储设备获取第一存储单元组的数据访问热度包括:所述存储设备根据所述第二存储单元的数据访问热度更新所述第一存储单元的数据访问热度:所述存储设备根据更新后的所述第一存储单元的数据访问热度获取所述第一存储单元组的数据访问热度。
- 根据权利要求3所述的方法,其特征在于,第三存储单元组包含所述第二存储单元,所述方法还包括:当所述第二存储单元被释放时,所述存储设备将所述第二存储单元的数据访问热度重置;所述存储设备根据重置后的所述第二存储单元的数据访问热度获取所述第三存储单元组的数据访问热度;当所述第三存储单元组的数据访问热度达到设定阈值时,所述存储设备将所述第三存储单元组中的数据迁移至第四存储单元组,所述第四存储单元组的访问性能高于所述第三存储单元组的访问性能。
- 一种存储设备,其特征在于,所述存储设备包括获取模块和迁移模块,其中:所述获取模块,用于获取第一存储单元组的数据访问热度,所述第一存储单元组包含多个存储单元,其中,每个存储单元是逻辑单元所包含的块的组成单位,所述逻辑单元是所述存储设备提供的,能够被主机访问的逻辑存储空间,所述第一存储单元组的数据访问热度由 每个存储单元的数据访问热度确定,每个存储单元的数据访问热度由所述存储单元所在的逻辑单元确定;所述迁移模块,用于当所述第一存储单元组的数据访问热度达到设定阈值时,将所述第一存储单元组中的数据迁移至第二存储单元组,所述第二存储单元组的访问性能高于所述第一存储单元组的访问性能。
- 根据权利要求5所述的存储设备,其特征在于,所述存储设备以所述逻辑单元所包含的块为单位统计数据访问热度。
- 根据权利要求5或6所述的存储设备,其特征在于,所述第一存储单元组包括第一存储单元,所述存储设备还包括接收模块、写入模块和保存模块,其中:所述接收模块,用于接收写数据请求,所述写数据请求用于将数据写入第二存储单元,所述第二存储单元所属的存储单元组不同于所述第一存储单元组;所述写入模块,用于将所述数据写入所述第一存储单元;所述保存模块,用于保存所述数据的实际地址与所述第一存储单元的逻辑地址的之间的对应关系;所述获取模块,具体用于根据所述第二存储单元的数据访问热度更新所述第一存储单元的数据访问热度:根据更新后的所述第一存储单元的数据访问热度获取所述第一存储单元组的数据访问热度。
- 根据权利要求7所述的存储设备,其特征在于,第三存储单元组包含所述第二存储单元,所述存储设备还包括重置模块,用于当所述第二存储单元被释放时,将所述第二存储单元的数据访问热度重置;所述获取模块,还用于根据重置后的所述第二存储单元的数据访问热度获取所述第三存储单元组的数据访问热度;所述迁移模块,还用于当所述第三存储单元组的数据访问热度达到设定阈值时,将所述第三存储单元组中的数据迁移至第四存储单元组,所述第四存储单元组的访问性能高于所述第三存储单元组的访问性能。
- 一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得所述计算机或处理器执行如权利要求1-4任一项所述的方法。
- 一种包含指令的计算机程序产品,当其在计算机或处理器上运行时,使得所述计算机或处理器执行如权利要求1-4任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19852706.1A EP3832451B1 (en) | 2018-08-24 | 2019-03-25 | Data migration method and apparatus |
US17/183,045 US11880579B2 (en) | 2018-08-24 | 2021-02-23 | Data migration method and apparatus |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810972007.8 | 2018-08-24 | ||
CN201810972007.8A CN110858124B (zh) | 2018-08-24 | 2018-08-24 | 数据迁移方法及装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/183,045 Continuation US11880579B2 (en) | 2018-08-24 | 2021-02-23 | Data migration method and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020037986A1 true WO2020037986A1 (zh) | 2020-02-27 |
Family
ID=69592396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/079411 WO2020037986A1 (zh) | 2018-08-24 | 2019-03-25 | 数据迁移方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11880579B2 (zh) |
EP (1) | EP3832451B1 (zh) |
CN (1) | CN110858124B (zh) |
WO (1) | WO2020037986A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114442963A (zh) * | 2022-04-07 | 2022-05-06 | 中国信息通信研究院 | 固态硬盘的控制方法和装置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110858124B (zh) * | 2018-08-24 | 2021-06-01 | 华为技术有限公司 | 数据迁移方法及装置 |
CN114610232A (zh) * | 2020-04-28 | 2022-06-10 | 华为技术有限公司 | 一种存储系统、内存管理方法和管理节点 |
CN112181315B (zh) * | 2020-10-30 | 2022-08-30 | 新华三大数据技术有限公司 | 一种数据刷盘方法及装置 |
CN112764678A (zh) * | 2021-01-18 | 2021-05-07 | Oppo广东移动通信有限公司 | 数据搬移方法、相关装置、以及计算机存储介质 |
CN115129230A (zh) * | 2021-03-26 | 2022-09-30 | 华为技术有限公司 | 一种缓存管理方法及存储设备 |
CN113805805B (zh) * | 2021-05-06 | 2023-10-13 | 北京奥星贝斯科技有限公司 | 缓存内存块的淘汰方法、装置及电子设备 |
CN113448970B (zh) * | 2021-08-31 | 2022-07-12 | 深圳市一号互联科技有限公司 | 一种图数据存储方法及系统 |
CN117149049A (zh) * | 2022-05-24 | 2023-12-01 | 华为技术有限公司 | 内存访问热度统计方法、相关装置及设备 |
CN117312044A (zh) * | 2022-06-28 | 2023-12-29 | 华为技术有限公司 | 一种备份方法及装置 |
CN116027990B (zh) * | 2023-03-29 | 2023-07-14 | 苏州浪潮智能科技有限公司 | 一种raid卡及其数据访问方法、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223498A (zh) * | 2005-07-15 | 2008-07-16 | 国际商业机器公司 | 用于管理数据存储的方法、系统和计算机程序产品以及虚拟化引擎 |
US20110167217A1 (en) * | 2010-01-07 | 2011-07-07 | International Business Machines Corporation | Extent migration for tiered storage architecture |
CN103473298A (zh) * | 2013-09-04 | 2013-12-25 | 华为技术有限公司 | 数据归档方法和装置以及存储系统 |
CN105138416A (zh) * | 2014-06-05 | 2015-12-09 | 中兴通讯股份有限公司 | 磁盘休眠处理方法及装置 |
CN105808443A (zh) * | 2014-12-29 | 2016-07-27 | 华为技术有限公司 | 一种数据迁移的方法、装置及系统 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8392668B2 (en) * | 2005-04-04 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Distributed-state-information-based distributed computing systems and methods and protocols for managing distributed state information |
US9454368B2 (en) * | 2009-01-21 | 2016-09-27 | Vmware, Inc. | Data mover permitting data transfer without transferring data between application and operating system |
US8321645B2 (en) * | 2009-04-29 | 2012-11-27 | Netapp, Inc. | Mechanisms for moving data in a hybrid aggregate |
US8468302B2 (en) * | 2010-01-14 | 2013-06-18 | Hitachi, Ltd. | Storage system |
US8285959B2 (en) * | 2010-01-25 | 2012-10-09 | Netapp, Inc. | Method for placement of virtual volume hot-spots in storage pools using ongoing load measurements and ranking |
US8453036B1 (en) * | 2010-02-01 | 2013-05-28 | Network Appliance, Inc. | System and method for dynamically resizing a parity declustered group |
US8438361B2 (en) * | 2010-03-10 | 2013-05-07 | Seagate Technology Llc | Logical block storage in a storage device |
US8306950B2 (en) * | 2010-08-26 | 2012-11-06 | International Business Machines Corporation | Managing data access requests after persistent snapshots |
US9280289B1 (en) * | 2011-06-30 | 2016-03-08 | Netapp, Inc. | Detecting misalignment of virtualized data |
TWI459198B (zh) * | 2011-07-08 | 2014-11-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 |
JP5782962B2 (ja) * | 2011-09-27 | 2015-09-24 | 富士通株式会社 | Raidグループ制御装置 |
US9703500B2 (en) * | 2012-04-25 | 2017-07-11 | International Business Machines Corporation | Reducing power consumption by migration of data within a tiered storage system |
CN102789427B (zh) * | 2012-07-17 | 2015-11-25 | 威盛电子股份有限公司 | 数据储存装置与其操作方法 |
GB2505185A (en) * | 2012-08-21 | 2014-02-26 | Ibm | Creating a backup image of a first memory space in a second memory space. |
WO2014049678A1 (ja) * | 2012-09-25 | 2014-04-03 | 株式会社 東芝 | ソリッドステートドライブにデータを再配置するストレージ装置、ストレージコントローラ及び方法 |
US9448740B2 (en) * | 2012-11-27 | 2016-09-20 | Hitachi, Ltd. | Storage apparatus and hierarchy control method |
JP2014174845A (ja) * | 2013-03-11 | 2014-09-22 | Fujitsu Ltd | 性能評価支援プログラム、性能評価支援装置及び性能評価支援方法 |
US10019352B2 (en) * | 2013-10-18 | 2018-07-10 | Sandisk Technologies Llc | Systems and methods for adaptive reserve storage |
US9921754B2 (en) * | 2015-07-28 | 2018-03-20 | Futurewei Technologies, Inc. | Dynamic coding algorithm for intelligent coded memory system |
CN106612619B (zh) * | 2015-08-25 | 2019-05-21 | 株式会社东芝 | 分级存储系统、利用分级存储装置的计算机及校正对文件的访问计数的计算机 |
US10545681B2 (en) * | 2016-02-08 | 2020-01-28 | International Business Machines Corporation | Asymmetric storage data distribution |
US10540164B2 (en) * | 2016-02-12 | 2020-01-21 | Nutanix, Inc. | Virtualized file server upgrade |
US9842059B2 (en) * | 2016-04-14 | 2017-12-12 | Western Digital Technologies, Inc. | Wear leveling in storage devices |
JP6253752B1 (ja) * | 2016-11-29 | 2017-12-27 | 株式会社東芝 | 階層化ストレージシステム |
JP7068573B2 (ja) * | 2018-01-17 | 2022-05-17 | 富士通株式会社 | データ処理装置、データ処理システムおよびデータ処理プログラム |
CN110858124B (zh) * | 2018-08-24 | 2021-06-01 | 华为技术有限公司 | 数据迁移方法及装置 |
-
2018
- 2018-08-24 CN CN201810972007.8A patent/CN110858124B/zh active Active
-
2019
- 2019-03-25 EP EP19852706.1A patent/EP3832451B1/en active Active
- 2019-03-25 WO PCT/CN2019/079411 patent/WO2020037986A1/zh unknown
-
2021
- 2021-02-23 US US17/183,045 patent/US11880579B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223498A (zh) * | 2005-07-15 | 2008-07-16 | 国际商业机器公司 | 用于管理数据存储的方法、系统和计算机程序产品以及虚拟化引擎 |
US20110167217A1 (en) * | 2010-01-07 | 2011-07-07 | International Business Machines Corporation | Extent migration for tiered storage architecture |
CN103473298A (zh) * | 2013-09-04 | 2013-12-25 | 华为技术有限公司 | 数据归档方法和装置以及存储系统 |
CN105138416A (zh) * | 2014-06-05 | 2015-12-09 | 中兴通讯股份有限公司 | 磁盘休眠处理方法及装置 |
CN105808443A (zh) * | 2014-12-29 | 2016-07-27 | 华为技术有限公司 | 一种数据迁移的方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3832451A4 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114442963A (zh) * | 2022-04-07 | 2022-05-06 | 中国信息通信研究院 | 固态硬盘的控制方法和装置 |
CN114442963B (zh) * | 2022-04-07 | 2022-06-07 | 中国信息通信研究院 | 固态硬盘的控制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3832451A4 (en) | 2021-10-20 |
CN110858124B (zh) | 2021-06-01 |
CN110858124A (zh) | 2020-03-03 |
US20210173579A1 (en) | 2021-06-10 |
EP3832451A1 (en) | 2021-06-09 |
EP3832451B1 (en) | 2024-03-13 |
US11880579B2 (en) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020037986A1 (zh) | 数据迁移方法及装置 | |
US10031703B1 (en) | Extent-based tiering for virtual storage using full LUNs | |
US11023147B2 (en) | Mapping storage extents into resiliency groups | |
US11163452B2 (en) | Workload based device access | |
US9317436B2 (en) | Cache node processing | |
US8775731B2 (en) | Write spike performance enhancement in hybrid storage systems | |
US9323682B1 (en) | Non-intrusive automated storage tiering using information of front end storage activities | |
WO2021218038A1 (zh) | 一种存储系统、内存管理方法和管理节点 | |
US11636089B2 (en) | Deferred reclamation of invalidated entries that are associated with a transaction log in a log-structured array | |
WO2016046911A1 (ja) | ストレージシステム及びストレージシステムの管理方法 | |
JP2016506585A (ja) | データストレージのための方法及びシステム | |
KR20170038853A (ko) | 호스트-관리 비휘발성 메모리 | |
US10579540B2 (en) | Raid data migration through stripe swapping | |
US11093134B2 (en) | Storage device, management method, and program in tiered storage system | |
US20190243758A1 (en) | Storage control device and storage control method | |
US10678431B1 (en) | System and method for intelligent data movements between non-deduplicated and deduplicated tiers in a primary storage array | |
US11704053B1 (en) | Optimization for direct writes to raid stripes | |
WO2023065654A1 (zh) | 一种数据写入方法以及相关设备 | |
US11842051B2 (en) | Intelligent defragmentation in a storage system | |
US8799573B2 (en) | Storage system and its logical unit management method | |
CN118051179A (zh) | 用于使用多个分区的分区命名空间存储的技术 | |
US11687272B2 (en) | Method and system for dynamic topology-aware space allocation in a distributed system | |
US20200117381A1 (en) | Storage system and storage control method | |
US11640343B2 (en) | Method for migrating data in a raid system having a protection pool of storage units | |
US11436138B2 (en) | Adaptive endurance tuning of solid-state storage system |
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: 19852706 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2019852706 Country of ref document: EP Effective date: 20210301 |