WO2015081742A1 - 写数据的方法及装置 - Google Patents

写数据的方法及装置 Download PDF

Info

Publication number
WO2015081742A1
WO2015081742A1 PCT/CN2014/086340 CN2014086340W WO2015081742A1 WO 2015081742 A1 WO2015081742 A1 WO 2015081742A1 CN 2014086340 W CN2014086340 W CN 2014086340W WO 2015081742 A1 WO2015081742 A1 WO 2015081742A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
sub
block
average time
blocks
Prior art date
Application number
PCT/CN2014/086340
Other languages
English (en)
French (fr)
Inventor
董浩
姚建业
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2015081742A1 publication Critical patent/WO2015081742A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction

Definitions

  • the present invention relates to the field of storage, and in particular, to a method and an apparatus for writing data.
  • Cache (English: cache) and inexpensive redundant array (English: Redundant Array of Inexpensive Drivers, abbreviated: RAID) are two important modules in the storage system.
  • cache as a performance accelerator of the storage system, can shield the array delay very well, so that the host input and output (English: Input and Output, abbreviation: IO) is more friendly access to the hard disk.
  • IO Input and Output
  • the principle of RAID is to combine a number of relatively inexpensive hard disks into a hard disk array group to achieve performance even more than an expensive hard disk with a large capacity, and with data decentralized design to improve data security.
  • RAID can not only increase storage capacity, but also enhance data integration and data fault tolerance compared to a single hard disk.
  • the disk array looks like a separate hard disk or logical storage unit for the computer.
  • the RAID includes a plurality of stripes (English: stripe).
  • the stripe described in the embodiment of the present invention refers to a set of data blocks written in parallel on each memory of the built RAID, each strip includes multiple A striping unit, wherein each of the stripping units has the same size, and the stripping units on the same stripe are located at the same offset position in each of the memories.
  • the striping unit on the strip is also called a strip (English: strip), which is a contiguous block of addresses on a panel.
  • the controller usually strips the block addresses of the virtual disks (block addresses) to the block addresses of the member disks. RAID improves the reliability of the storage system through striping.
  • the size of the data IO sent to the RAID by the cache is the same as the size of one stripe in the RAID, the data IO sent by the cache can be aligned with the corresponding stripe; on the contrary, if the size of the data sent by the cache to the RAID is If the size of a stripe in a RAID is different, it cannot be stripped. In this case, you need to: read the old stripe unit and the old check value from the disk to the cache, and then based on the new stripe unit and the old stripe unit. A new check value is calculated with the old check value, and the new strip unit and the new check value are written to the disk. Since the data needs to be read from the disk to the cache first, this will obviously amplify the read and write pressure on the disk, resulting in a serious drop in the read and write performance of the storage system.
  • the technical problem to be solved by the present invention is that the IO of the RAID issued by the cache cannot be stripped and aligned, and the data needs to be read from the disk to the cache when the writing is performed, resulting in a problem that the read/write performance of the storage system is degraded. .
  • a method for writing data is provided in a first aspect, the method being applied to a storage device, where the storage device includes a cache and a memory, and the cache includes a plurality of data. a block, each data block comprising a plurality of sub-blocks, the method comprising:
  • the second set of sub-blocks is data stored by the first sub-block and last sub-block storage
  • the data is a collection of contiguous sub-blocks of dirty data
  • a second write data request is generated for the data block, and the second write data request is sent to the memory.
  • the method before the generating a second write data request for the data block, the method includes:
  • the corresponding data is written into the empty sub-block of data.
  • the method further includes:
  • the predetermined threshold is calculated based on the first average time and the second average time.
  • calculating the predetermined threshold according to the first average time and the second average time includes:
  • the resulting quotient is multiplied by a predetermined delay coefficient equal to the product obtained by the multiplication.
  • an apparatus for writing data is provided, the apparatus being applied to a storage device, where the storage device includes a cache and a memory, and the cache includes a plurality of a data block, each data block comprising a plurality of sub-data blocks, the device comprising:
  • a first determining module configured to determine a number of first sub-block sets included in the data block, where data stored in each sub-block of the first sub-block set is dirty data
  • the first determining module is connected to the first determining module, and configured to determine whether the number of the first sub-block set exceeds a predetermined threshold
  • a second determining module configured to be connected to the first determining module, configured to determine a second sub-block set when the number of the first sub-block set exceeds a predetermined threshold, where the second sub-block set is The data stored in the first sub-block and the data stored in the last sub-block are a collection of contiguous sub-blocks of dirty data;
  • the second determining module is connected to the second determining module, and configured to determine whether the number of the second sub-block set exceeds a predetermined threshold
  • a second write data request is generated for the data block, and the second write data request is sent to the memory.
  • the writing module is configured to:
  • the corresponding data is written into the empty sub-block of data.
  • the device for writing data further includes:
  • a calculation module configured to be connected to the first judging module and the second judging module, configured to acquire a first average time for performing data reading on the stripe; and acquiring a stripping unit in the stripe a second average time of data reading; according to the first average time and the second average time
  • the predetermined threshold is calculated.
  • the computing module is configured to:
  • the resulting quotient is multiplied by a predetermined delay coefficient equal to the product obtained by the multiplication.
  • Generating a second write data request for the data block and transmitting the second write data request to the memory when the number of the second subset of sub-blocks exceeds a predetermined threshold implemented in accordance with the present invention
  • the method and device for writing data do not need to first read data from the disk to the cache when performing the writing, thereby reducing the read and write pressure on the RAID; by the number of the second sub-block set
  • a first write data request is generated for each second sub-block set in the data block, and each first write data request is sent to the memory, according to an embodiment of the present invention.
  • the method and device for writing data can reduce the number of write IOs sent by the cache, thereby reducing the read and write pressure on the RAID.
  • FIG. 1 shows a flow chart of a method of writing data in accordance with an embodiment of the present invention
  • FIG. 2 is a schematic diagram showing a chunk of an embodiment of the present invention.
  • FIG. 3 illustrates a flow chart of a method of writing data according to another embodiment of the present invention
  • FIGS. 4a-4b are schematic views showing another chunk in the embodiment of the present invention.
  • FIG. 5 is a schematic diagram showing still another chunk in the embodiment of the present invention.
  • Figure 6 shows a flow chart of a method of calculating a predetermined threshold
  • Figure 7 is a diagram showing the relationship between the IO size and the threshold
  • FIG. 8 is a schematic structural diagram of an apparatus for writing data according to an embodiment of the present invention.
  • FIG. 9 is a block diagram showing the structure of an apparatus for writing data according to an embodiment of the present invention.
  • FIG. 1 shows a flow chart of a method of writing data in accordance with an embodiment of the present invention.
  • the method of writing data is applied to a storage device, the storage device including a controller and a memory (eg, a disk), wherein the controller includes a processor and a cache (also referred to as a cache).
  • the disk may be organized in a RAID manner, and for convenience of description, the memory may be referred to as RAID.
  • the cache contains a plurality of data blocks (also known as chunks), each chunk contains a plurality of sub-blocks, and the following steps may be performed by a processor in the controller.
  • the method mainly includes:
  • Step S101 Determine the number of first sub-block sets included in one chunk of the cache, and the data stored in each sub-block of the first sub-block set is dirty data.
  • the logical unit number in the cache (English: logic unit number, abbreviation: LUN) organizes the cached data for identification. This makes it possible to find the chunk of the hash (English: hash) table with the logical block address (English: logical block address, abbreviation: LBA) as the key value when searching for dirty data to be written in the RAID.
  • Each LUN uses a hash algorithm to organize the lookup table.
  • the hash is a data organization mode.
  • Each hash node points to a chunk.
  • the chunk is the smallest operation unit in the cache.
  • the cache is aligned.
  • the size of the data IO sent to the RAID is the same as the size of the stripe in the RAID.
  • the chunk size should be the same as the size of the corresponding stripe in the RAID. Therefore, the chunk size and the stripe size are the same in the embodiment of the present invention.
  • the chunk includes 15 sub-blocks, wherein the number of the first sub-block set is 4, that is, the 2-3th sub-block from the left in FIG. 2 is a a sub-block set, the 9-10th sub-block is a first sub-block set, the 12th sub-block is a first sub-block set, and the 14-15th sub-block is a first sub-block set.
  • Step S102 When the number of the first sub-block set exceeds a predetermined threshold, determine a second sub-block set, where the second sub-block set is data stored in the first sub-block and the last sub-block The data stored in the data block is a collection of contiguous sub-blocks of dirty data;
  • the number of second sub-blocks in the chunk shown in FIG. 2 is 2, that is, the 2-3th sub-block from the left is a second sub-block set, and the 9-15th sub-block is a second sub-data. Block collection.
  • Step S103 When the number of the second sub-block set does not exceed a predetermined threshold, respectively generate a first write data request for each second sub-block set in the data block, and each first write A data request is sent to the memory.
  • Step S104 When the number of the second sub-block set exceeds a predetermined threshold, generate a second write data request for the data block, and send the second write data request to the memory.
  • Generating for the data block when the number of the second subset of sub-blocks exceeds a predetermined threshold Forming a second write data request and transmitting the second write data request to the memory, and a method and apparatus for writing data according to an embodiment of the present invention does not need to first read from a disk when performing writing Data is cached, which reduces the read and write pressure on RAID.
  • a method and apparatus for writing data according to an embodiment of the present invention does not need to first read from a disk when performing writing Data is cached, which reduces the read and write pressure on RAID.
  • the number of the second sub-block set does not exceed a predetermined threshold, respectively generating a first write data request for each second sub-block set in the data block, and each first write data request
  • the method and device for writing data according to the embodiment of the invention can reduce the number of write IOs sent by the cache, thereby reducing the read and write pressure on the RAID.
  • FIG. 3 illustrates a flow chart of a method of writing data in accordance with another embodiment of the present invention.
  • the same steps in FIG. 3 as those in FIG. 1 have the same functions, and a detailed description of these steps will be omitted for the sake of brevity.
  • Figure 3 unlike Figure 1, it is:
  • step S301 is performed to determine whether the number of the first subset of sub-blocks exceeds a predetermined threshold L.
  • step S102 If yes, go to step S102; otherwise, go to step S306.
  • Step S102 is performed to determine that the number of second sub-block sets in FIG. 2 is 2.
  • Step S302 determining whether the number of the second sub-block set exceeds a predetermined threshold L?
  • step S104 If yes, go to step S104; otherwise, go to step S103.
  • step S103 is executed to generate the second sub-block set in the chunk.
  • the two second sub-block sets are sent to the RAID as two data IOs.
  • a method for writing data according to an embodiment of the invention can reduce the number of write IOs sent by the cache, thereby reducing the read and write pressure on the RAID.
  • FIG. 4a shows a schematic diagram of another chunk in the embodiment of the present invention, as shown in FIG. 4a.
  • the chunk is traversed, and the chunk visceral data is found to be large, and there is no clean data mixing in the middle.
  • Steps S101-S302 are performed, wherein the number of the first sub-block set is 7 is greater than the threshold, and the number of the second sub-block set is 7 is greater than the threshold, and therefore step S104 is performed.
  • the method before generating a second write data request for the data block in step S104, the method further includes:
  • Step S303 generating a read data request, the read data request is used to read all data in the stripe corresponding to the data block in the memory;
  • Step S304 extracting data corresponding to the sub-blocks hollow in the data block from all the data in the stripe corresponding to the data block;
  • Step S305 Write the corresponding data into the empty sub-data block.
  • Figure 4b shows a chunk diagram after the corresponding data is written to the empty sub-block.
  • the second write data request is generated by the chunk as a whole, and the second write data request is sent to the memory, that is, the entire chunk is sent as a data IO to the RAID, the size of the chunk.
  • the RAID receives the stripe-aligned data, and only needs to calculate the check data, then it can directly perform the write without first reading the data from the disk to the cache.
  • An example of writing data does not require reading data from the disk to the cache first, thereby reducing the read and write pressure on the RAID.
  • Step S306 if the number of the first sub-block set does not exceed the predetermined threshold, respectively generate a third write data request for each first sub-block set, and send each third write data request to The memory.
  • FIG. 5 is a schematic diagram of another chunk in the embodiment of the present invention.
  • the number of the first sub-block set to be sent to the RAID is calculated by the traversing chunk to be less than the threshold L. Therefore, a third write data request is generated for each of the first sub-block sets of the chunk, and the third write data request is sent to the RAID.
  • the clean data refers to data that has been written to the RAID and is still saved in the cache
  • the dirty data refers to the data that has not been written to the RAID but is still saved in the cache.
  • Figure 6 shows a flow chart of a method of calculating a predetermined threshold.
  • the predetermined threshold value described in the above embodiment is calculated as shown in FIG. 6, and includes:
  • Step S401 Acquire a first average time for performing data reading on the stripe.
  • Step S402 obtaining a second average time for performing data reading on one of the stripe units in the stripe;
  • Step S403 Calculate the predetermined threshold according to the first average time and the second average time.
  • the predetermined threshold may be calculated according to the following formula:
  • Tm represents a first average time for data reading of one stripe
  • Tk represents a second average time for data reading of one stripe unit within the stripe
  • M represents a delay coefficient.
  • the delay coefficient M can be 1.5.
  • the first average time (Tm) for data reading is 42.8 milliseconds.
  • Tk is shown in Table 1.
  • M. 1.5
  • L 3.0
  • Figure 7 is a schematic diagram of the relationship between the IO size and the threshold.
  • the coefficient M is an empirical value, which is summarized in a specific test. If the threshold value is too high, the threshold is higher, and the probability of performing data writing in the manner of the embodiment of the present invention is lower, and the write performance is lower. Poor; if the coefficient is too low, the threshold is too low, then the concurrent IO on the disk increases.
  • the slice unit covered for one IO may be limited, so not all the strip units in the strip are available.
  • the technical effect of reducing the RAID read/write pressure is realized on the basis of the concurrency processing capability of the disk by setting the threshold.
  • FIG. 8 is a block diagram showing the structure of an apparatus for writing data according to an embodiment of the present invention.
  • the device 10 is applied to a storage device, where the storage device includes a cache and a memory.
  • the cache includes a plurality of data blocks, and each data block includes a plurality of sub-blocks.
  • the device 10 mainly includes: The first determining module 110, the first determining module 120, the second determining module 130, the second determining module 140, and the writing module 150.
  • a first determining module 110 configured to determine a first sub-block set included in the data block The number of data stored in each of the first sub-block sets is dirty data
  • the first determining module 120 is connected to the first determining module 110, and configured to determine whether the number of the first sub-block set exceeds a predetermined threshold;
  • the second determining module 130 is connected to the first determining module 120, and configured to determine a second sub-block set, the second sub-block when the number of the first sub-block set exceeds a predetermined threshold
  • a set is a collection of contiguous sub-blocks of data stored in the first sub-block and data stored in the last sub-block is dirty data;
  • the second determining module 140 is connected to the second determining module 130, and configured to determine whether the number of the second sub-block set exceeds a predetermined threshold;
  • the writing module 150 is connected to the second determining module 140, and configured to: separately set each second sub-block of data in the data block when the number of the second sub-block set does not exceed a predetermined threshold Generating a first write data request and transmitting each first write data request to the memory; and generating a second write for the data block when the number of the second set of sub-blocks exceeds a predetermined threshold Data request and send the second write data request to the memory.
  • the write module 150 is configured to: generate a read data request, the read data request for reading all data in the stripe corresponding to the data block in the memory; All data in the stripe corresponding to the data block is extracted from data corresponding to the hollow data block of the data block; and the corresponding data is written into the empty sub-block.
  • the device 10 further includes a calculation module 160, and the calculation module 160 is connected to the first determination module 120 and the second determination module 140, and is configured to acquire data for the stripe. a first average time of reading; obtaining a second average time for reading data of one of the strip units in the strip; calculating the predetermined threshold according to the first average time and the second average time .
  • the calculation module 160 is configured to: calculate the first average The time divided by the quotient of the second average time; the resulting quotient is multiplied by a predetermined delay coefficient equal to the product obtained by the multiplication.
  • Generating a second write data request for the data block and transmitting the second write data request to the memory when the number of the second subset of sub-blocks exceeds a predetermined threshold implemented in accordance with the present invention
  • An apparatus for writing data does not need to first read data from the disk to the cache when performing the writing, thereby reducing the read and write pressure on the RAID; by when the number of the second sub-block set does not exceed Generating a first write data request for each second subset of sub-blocks within the data block, and transmitting each first write data request to the memory, a write according to an embodiment of the present invention, when a threshold is predetermined
  • the data device can reduce the number of write IOs sent by the cache, thereby reducing the read and write pressure on the RAID.
  • FIG. 9 is a block diagram showing the structure of an apparatus for writing data according to another embodiment of the present invention.
  • the device 1100 for writing data may be a host server having a computing capability, a personal computer PC, or a portable computer or terminal that can be carried.
  • the specific embodiments of the present invention do not limit the specific implementation of the computing node.
  • the device 1100 for writing data includes a processor 1110, a communication interface 1120, a memory 1130, and a bus 1140.
  • the processor 1110, the communication interface 1120, and the memory 1130 complete communication with each other through the bus 1140.
  • Communication interface 1120 is for communicating with network devices, including, for example, a virtual machine management center, shared storage, and the like.
  • the processor 1110 is configured to execute a program.
  • the processor 1110 may be a central processing unit CPU, or an Application Specific Integrated Circuit (ASIC), or one or more integrated circuits configured to implement the embodiments of the present invention.
  • ASIC Application Specific Integrated Circuit
  • the memory 1130 is used to store files.
  • the memory 1130 may include a high speed RAM memory and may also include a non-volatile memory such as at least one disk memory.
  • Memory 1130 can also be a memory array.
  • the memory 1130 may also be partitioned, and the block may Combine into virtual volumes according to certain rules.
  • the above program may be program code including computer operating instructions. This program can be used to:
  • the second set of sub-blocks is data stored by the first sub-block and last sub-block storage
  • the data is a collection of contiguous sub-blocks of dirty data
  • a second write data request is generated for the data block, and the second write data request is sent to the memory.
  • the program before the generating a second write data request for the data block, the program is further used to:
  • the corresponding data is written into the empty sub-block of data.
  • the program is also used to:
  • the predetermined threshold is calculated based on the first average time and the second average time.
  • calculating the predetermined threshold according to the first average time and the second average time includes:
  • the resulting quotient is multiplied by a predetermined delay coefficient equal to the product obtained by the multiplication.
  • the function is implemented in the form of computer software and sold or used as a stand-alone product, it is considered to some extent that all or part of the technical solution of the present invention (for example, a part contributing to the prior art) is It is embodied in the form of computer software products.
  • the computer software product is typically stored in a computer readable non-volatile storage medium, including instructions for causing a computer device (which may be a personal computer, server, or network device, etc.) to perform all of the methods of various embodiments of the present invention. Or part of the steps.
  • the foregoing storage medium includes various media that can store program codes, such as a USB flash drive, a removable hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种写数据的方法及装置,包括:确定数据块中第一子数据块集合的个数,第一子数据块集合中的每个子数据块存储的数据均为脏数据;当第一子数据块集合的个数超过阈值时,确定第二子数据块集合,第二子数据块集合是第一个子数据块存储的数据和最后一个子数据块存储的数据均为脏数据的连续子数据块的集合;当第二子数据块集合的个数不超过阈值时,为数据块内的各个第二子数据块集合分别生成第一写数据请求,将第一写数据请求发送存储器;当第二子数据块集合的个数超过阈值时,为数据块生成一个第二写数据请求,将第二写数据请求发送存储器。根据提供的写数据的方法及装置在写入时无需从磁盘上读取数据到缓存,减少对RAID的读写压力。

Description

写数据的方法及装置
本申请要求于2013年12月4日提交中国专利局、申请号为201310649068.8、发明名称为“写数据的方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及存储领域,尤其涉及一种写数据的方法及装置。
背景技术
高速缓存(英文:cache)和廉价冗余磁盘阵列(英文:Redundant Array of Inexpensive Drivers,缩写:RAID)是存储系统中的两个重要模块。其中,cache作为存储系统的性能加速器,能很好的屏蔽阵列时延,使主机输入输出(英文:Input and Output,缩写:IO)更友好的访问硬盘。RAID的原理是通过将多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘,并且配合数据分散排列的设计,提升数据的安全性。根据选择的版本不同,RAID与单颗硬盘相比,不仅能够增大存储容量,还能够增强数据集成度以及数据的容错能力。另外,磁盘阵列对于电脑来说,看起来就像一个单独的硬盘或逻辑存储单元。
存储系统接收主机写IO后,会先写入cache再下发给RAID。以RAID5为例,RAID包括多个分条(英文:stripe),本发明实施例中描述的分条,是指并行写入构建RAID的各个存储器上的数据块的集合,每个分条包括多个分条单元,其中,每个分条单元的大小相同,且同一个分条上的分条单元位于各个存储器中的偏移位置相同。分条上的分条单元也称为条带(英文:strip),条带是一个盘区上的连续地址块。在磁盘阵列中,控制器通常采用条带将虚拟磁盘的块地址(英文:block addresses)映射到成员盘的块地址。RAID通过条带化提升存储系统的可靠性。
若cache下发给RAID的数据IO的大小与RAID中一个分条的大小相同,此时所下发的数据IO能够与对应的分条对齐;相反,若cache下发给RAID的数据的大小与RAID中一个分条的大小不同,则不能分条对齐,此时将需要:先将旧分条单元和旧校验值从磁盘上读取到缓存,然后基于新分条单元、旧分条单元与旧校验值计算出新的校验值,再将新分条单元与新的校验值写入磁盘。由于需要先从磁盘上读取数据到缓存,这显然将放大对磁盘的读写压力,导致存储系统的读写性能严重下降。
发明内容
技术问题
有鉴于此,本发明要解决的技术问题是,因cache下发RAID的IO不能分条对齐,在执行写入时需要先从磁盘上读取数据到缓存,导致存储系统读写性能下降的问题。
解决方案
为了解决上述技术问题,根据本发明一实施例,在第一方面提供一种写数据的方法,所述方法应用于存储设备中,所述存储设备包括缓存和存储器,所述缓存包含多个数据块,每个数据块包含多个子数据块,所述方法包括:
确定所述数据块中包含的第一子数据块集合的个数,所述第一子数据块集合中的每个子数据块存储的数据均为脏数据;
当所述第一子数据块集合的个数超过预定阈值时,确定第二子数据块集合,所述第二子数据块集合是第一个子数据块存储的数据和最后一个子数据块存储的数据均为脏数据的连续子数据块的集合;
当所述第二子数据块集合的个数不超过预定阈值时,为所述数据块内的各个第二子数据块集合分别生成第一写数据请求,并将每个第一写数据请求发送给所述存储器;
当所述第二子数据块集合的个数超过预定阈值时,为所述数据块生成一个第二写数据请求,并将所述第二写数据请求发送给所述存储器。
在一种可能的实现方式中,在所述为所述数据块生成一个第二写数据请求之前,包括:
生成读数据请求,所述读数据请求用于读取所述存储器中与所述数据块对应的分条内的所有数据;
从所述数据块对应的分条内的所有数据中提取与所述数据块中空的子数据块对应的数据;
将所述对应的数据写入所述空的子数据块内。
在一种可能的实现方式中,还包括:
获取对所述分条进行数据读取的第一平均时间;
获取对所述分条内的一个分条单元进行数据读取的第二平均时间;
根据所述第一平均时间与所述第二平均时间,计算所述预定阈值。
在一种可能的实现方式中,根据所述第一平均时间与所述第二平均时间,计算所述预定阈值包括:
计算所述第一平均时间除以所述第二平均时间的商;
将所得到的商与预设的时延系数相乘,所述预定阈值等于所述相乘获得的乘积。
为了解决上述技术问题,根据本发明又一实施例,在第二方面提供一种写数据的装置,所述装置应用于存储设备中,所述存储设备包括缓存和存储器,所述缓存包含多个数据块,每个数据块包含多个子数据块,所述装置包括:
第一确定模块,用于确定所述数据块中包含的第一子数据块集合的个数,所述第一子数据块集合中的每个子数据块存储的数据均为脏数据;
第一判断模块,与所述第一确定模块连接,用于判断所述第一子数据块集合的个数是否超过预定阈值;
第二确定模块,与所述第一判断模块连接,用于当所述第一子数据块集合的个数超过预定阈值时,确定第二子数据块集合,所述第二子数据块集合是第一个子数据块存储的数据和最后一个子数据块存储的数据均为脏数据的连续子数据块的集合;
第二判断模块,与所述第二确定模块连接,用于判断所述第二子数据块集合的个数是否超过预定阈值;
写入模块,与所述第二判断模块连接,用于
当所述第二子数据块集合的个数不超过预定阈值时,为所述数据块内的各个第二子数据块集合分别生成第一写数据请求,并将每个第一写数据请求发送给所述存储器;
当所述第二子数据块集合的个数超过预定阈值时,为所述数据块生成一个第二写数据请求,并将所述第二写数据请求发送给所述存储器。
在一种可能的实现方式中,所述写入模块被配置为:
生成读数据请求,所述读数据请求用于读取所述存储器中与所述数据块对应的分条内的所有数据;
从所述数据块对应的分条内的所有数据中提取与所述数据块中空的子数据块对应的数据;
将所述对应的数据写入所述空的子数据块内。
在一种可能的实现方式中,所述写数据的装置还包括:
计算模块,与所述第一判断模块及所述第二判断模块连接,用于获取对所述分条进行数据读取的第一平均时间;获取对所述分条内的一个分条单元进行数据读取的第二平均时间;根据所述第一平均时间与所述第二平均时 间,计算所述预定阈值。
在一种可能的实现方式中,所述计算模块被配置为:
计算所述第一平均时间除以所述第二平均时间的商;
将所得到的商与预设的时延系数相乘,所述预定阈值等于所述相乘获得的乘积。
有益效果
通过当所述第二子数据块集合的个数超过预定阈值时,为所述数据块生成一个第二写数据请求,并将所述第二写数据请求发送给所述存储器,根据本发明实施例的一种写数据的方法及装置在执行写入时不需要先从磁盘上读取数据到缓存,从而减少了对RAID的读写压力;通过当所述第二子数据块集合的个数不超过预定阈值时,为所述数据块内的各个第二子数据块集合分别生成第一写数据请求,并将每个第一写数据请求发送给所述存储器,根据本发明实施例的一种写数据的方法及装置能够减少cache下发的写IO个数,从而减少了对RAID的读写压力。
根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
图1示出根据本发明一实施例的写数据的方法的流程图;
图2示出本发明实施例一个chunk的示意图;
图3示出根据本发明另一实施例的写数据的方法的流程图;
图4a-图4b示出本发明实施例中另一chunk的示意图;
图5示出本发明实施例中又一chunk的示意图;
图6示出计算预定阈值的方法的流程图;
图7示出IO大小与阈值关系的示意图;
图8示出根据本发明一实施例的写数据的装置的结构示意图;
图9示出根据本发明一实施例的写数据的装置的结构框图。
具体实施方式
以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
图1示出根据本发明一实施例的写数据的方法的流程图。该写数据的方法,应用于存储设备中,所述存储设备包括控制器和存储器(例如,磁盘),其中,控制器包括处理器和缓存(又称cache)。在本发明实施例中磁盘可以以RAID的方式来进行组织,为了描述方便,可以将存储器称为RAID。cache包含多个数据块(又称chunk),每个chunk包含多个子数据块,执行下述步骤的可以是控制器中的处理器。如图1所示,该方法主要包括:
步骤S101、确定cache的一个chunk中包含的第一子数据块集合的个数,所述第一子数据块集合中的每个子数据块存储的数据均为脏数据。
一般来说,cache中以逻辑单元号(英文:logic unit number,缩写: LUN)为标识来组织所缓存的数据。这使得,在cache内查找待写入RAID中的脏数据时,通常以逻辑区块地址(英文:logical block address,缩写:LBA)为键值找到哈希(英文:hash)表的chunk。每个LUN用hash算法组织查找表,hash是一种数据组织方式,每个hash节点指向一个chunk;chunk是cache内最小操作单元,当将chunk写入RAID时,为达到分条对齐即cache下发给RAID的数据IO的大小与RAID中一个分条的大小相同的目的,chunk大小应与RAID中对应分条的大小相同,因此本发明实施例取chunk大小与分条大小相同。
图2示出本发明实施例一个chunk的示意图,该chunk包括15个子数据块,其中第一子数据块集合的个数为4,即图2中左起第2-3个子数据块为一个第一子数据块集合,第9-10个子数据块为一个第一子数据块集合,第12个子数据块为一个第一子数据块集合,第14-15个子数据块为一个第一子数据块集合。
步骤S102、当所述第一子数据块集合的个数超过预定阈值时,确定第二子数据块集合,所述第二子数据块集合是第一个子数据块存储的数据和最后一个子数据块存储的数据均为脏数据的连续子数据块的集合;
图2所示chunk中的第二子数据块集合个数为2,即左起第2-3个子数据块为一个第二子数据块集合,第9-15个子数据块为一个第二子数据块集合。
步骤S103、当所述第二子数据块集合的个数不超过预定阈值时,为所述数据块内的各个第二子数据块集合分别生成第一写数据请求,并将每个第一写数据请求发送给所述存储器。
步骤S104、当所述第二子数据块集合的个数超过预定阈值时,为所述数据块生成一个第二写数据请求,并将所述第二写数据请求发送给所述存储器。
通过当所述第二子数据块集合的个数超过预定阈值时,为所述数据块生 成一个第二写数据请求,并将所述第二写数据请求发送给所述存储器,根据本发明实施例的一种写数据的方法及装置在执行写入时不需要先从磁盘上读取数据到缓存,从而减少了对RAID的读写压力。通过当所述第二子数据块集合的个数不超过预定阈值时,为所述数据块内的各个第二子数据块集合分别生成第一写数据请求,并将每个第一写数据请求发送给所述存储器,根据本发明实施例的一种写数据的方法及装置能够减少cache下发的写IO个数,从而减少了对RAID的读写压力。
图3示出根据本发明另一实施例的写数据的方法的流程图。图3中标号与图1相同的步骤具有相同的功能,为简明起见,省略对这些步骤的详细说明。如图3所示,与图1不同的是:
在步骤S101之后,执行步骤S301、判断所述第一子数据块集合的个数是否超过预定阈值L?
是则执行步骤S102;否则执行步骤S306。
以阈值L为3.79为例,则图2所示的chunk中第一子数据块集合的个数超过预定阈值。执行步骤S102,确定图2中的第二子数据块集合个数为2。
步骤S302、判断所述第二子数据块集合的个数是否超过预定阈值L?
是则执行步骤S104;否则执行步骤S103。
仍以图2中所示chunk及阈值L为3.79为例,第二子数据块集合个数为2,小于阈值,因此执行步骤S103,为chunk内的每个第二子数据块集合分别生成第一写数据请求,并将每个第一写数据请求发送给所述存储器,以将每个第二子数据块集合作为一个IO分别写入RAID,即发送2个第一写数据请求给存储器,将2个第二子数据块集合作为2个数据IO下发给RAID。
根据本发明实施例的一种写数据的方法能够减少cache下发的写IO个数,从而减少了对RAID的读写压力。
进一步地,图4a示出本发明实施例中另一chunk的示意图,以图4a所示 chunk为例,遍历chunk,发现chunk内脏数据很多,且中间没有干净数据混合,执行步骤S101-S302,其中第一子数据块集合的个数为7大于阈值,第二子数据块集合的个数为7大于阈值,因此执行步骤S104。
在一种可能的实施方式中,在步骤S104为所述数据块生成一个第二写数据请求之前,还包括:
步骤S303、生成读数据请求,所述读数据请求用于读取所述存储器中与所述数据块对应的分条内的所有数据;
步骤S304、从所述数据块对应的分条内的所有数据中提取与所述数据块中空的子数据块对应的数据;
步骤S305、将所述对应的数据写入所述空的子数据块内。
图4b示出将对应的数据写入空的子数据块之后的chunk示意图。在步骤S104中,以该chunk作为一个整体,生成一个第二写数据请求,并将该第二写数据请求发送给所述存储器,即将整个chunk作为一个数据IO,下发给RAID,chunk的大小与对应分条的大小相同,RAID接收到分条对齐的数据,只需要计算校验数据后就可以直接执行写入,不需要先从磁盘上读取数据到缓存。
通过当所述第二子数据块集合的个数超过预定阈值时,为所述数据块生成一个第二写数据请求,并将所述第二写数据请求发送给所述存储器,根据本发明实施例的一种写数据的方法在执行写入时不需要先从磁盘上读取数据到缓存,从而减少了对RAID的读写压力。
步骤S306、在第一子数据块集合的个数不超过所述预定阈值的情况下,对各个第一子数据块集合分别生成第三写数据请求,并将每个第三写数据请求发送给所述存储器。
图5示出本发明实施例中另一chunk的示意图,以图5所示chunk为例,遍历chunk计算出其要下发给RAID的第一子数据块集合的个数为2小于阈值L, 因此对chunk的第一子数据块集合分别生成第三写数据请求,并将该第三写数据请求发给所述RAID。此时没有必要将干净数据和脏数据一起进行写数据的操作,也不需要提取对应数据来写入空的子数据块,再进行写操作,只需要对各个第一子数据块集合分别生成第三写数据请求,并将每个第三写数据请求发送给所述存储器。需要说明的是,在本发明实施例中,干净数据是指已经写入RAID,并且仍然在缓存中保存的数据;脏数据是指尚未写入RAID,但仍然在缓存中保存的数据。
图6示出计算预定阈值的方法的流程图。上述实施例中所述的预定阈值,其计算方法如图6所示,包括:
步骤S401、获取对所述分条进行数据读取的第一平均时间;
步骤S402、获取对所述分条内的一个分条单元进行数据读取的第二平均时间;
步骤S403、根据所述第一平均时间与所述第二平均时间,计算所述预定阈值。
计算所述第一平均时间除以所述第二平均时间的商;将所得到的商与预设的时延系数相乘,所述预定阈值等于所述相乘获得的乘积。
具体可以按如下公式计算所述预定阈值:
L=Tm/Tk*M,
其中,L表示预定阈值,Tm表示对一个分条进行数据读取的第一平均时间,Tk表示对分条内的一个分条单元进行数据读取的第二平均时间,M表示时延系数。在一种具体的实施方式中,时延系数M可以为1.5。
在相同的RAID上,读取不同大小的分条单元所需要的第二平均时间是不同的,其对应关系如表1所示:
Figure PCTCN2014086340-appb-000001
Figure PCTCN2014086340-appb-000002
表1
以分条大小为1M为例,进行数据读取的第一平均时间(Tm)为42.8毫秒,Tk取值如表1所示,再考虑多个IO在盘上的并发处理因此其系数为M=1.5,当chunk大小为1M,数据块大小为4k时,L=3.79,图7为IO大小与阈值关系的示意图。系数M是一个经验值,是在具体的测试中总结出来的,若系数取值过高则阈值较高,那么以本发明实施例的方式执行数据写入的概率就会较低,写性能较差;若系数过低则阈值过低,则盘上的并发IO增多,其原因在于,针对一个IO其覆盖的分条单元可能是有限的,因此并不是该分条内所有分条单元都有IO,若以分条对齐的方式进行数据写入,该分条对应所有分条单元都有IO,因此造成盘上的并发IO增多。通过多次调整得出在M=1.5条件下性能是较优的。本发明实施例通过所述阈值的设定,在考虑磁盘的并发处理能力的基础上,实现减少RAID读写压力的技术效果。
图8示出根据本发明一实施例的写数据的装置的结构示意图。所述装置10应用于存储设备中,所述存储设备包括缓存和存储器,所述缓存包含多个数据块,每个数据块包含多个子数据块,如图8所示,该装置10主要包括:第一确定模块110、第一判断模块120、第二确定模块130、第二判断模块140、写入模块150。
第一确定模块110,用于确定所述数据块中包含的第一子数据块集合的 个数,所述第一子数据块集合中的每个子数据块存储的数据均为脏数据;
第一判断模块120,与所述第一确定模块110连接,用于判断所述第一子数据块集合的个数是否超过预定阈值;
第二确定模块130,与所述第一判断模块120连接,用于当所述第一子数据块集合的个数超过预定阈值时,确定第二子数据块集合,所述第二子数据块集合是第一个子数据块存储的数据和最后一个子数据块存储的数据均为脏数据的连续子数据块的集合;
第二判断模块140,与所述第二确定模块130连接,用于判断所述第二子数据块集合的个数是否超过预定阈值;
写入模块150,与所述第二判断模块140连接,用于当所述第二子数据块集合的个数不超过预定阈值时,为所述数据块内的各个第二子数据块集合分别生成第一写数据请求,并将每个第一写数据请求发送给所述存储器;以及当所述第二子数据块集合的个数超过预定阈值时,为所述数据块生成一个第二写数据请求,并将所述第二写数据请求发送给所述存储器。
在一种可能的实施方式中,写入模块150被配置为:生成读数据请求,所述读数据请求用于读取所述存储器中与所述数据块对应的分条内的所有数据;从所述数据块对应的分条内的所有数据中提取与所述数据块中空的子数据块对应的数据;将所述对应的数据写入所述空的子数据块内。
在一种可能的实施方式中,该装置10还包括计算模块160,该计算模块160与所述第一判断模块120及所述第二判断模块140连接,用于获取对所述分条进行数据读取的第一平均时间;获取对所述分条内的一个分条单元进行数据读取的第二平均时间;根据所述第一平均时间与所述第二平均时间,计算所述预定阈值。
在一种可能的实施方式中,计算模块160被配置为:计算所述第一平均 时间除以所述第二平均时间的商;将所得到的商与预设的时延系数相乘,所述预定阈值等于所述相乘获得的乘积。
通过当所述第二子数据块集合的个数超过预定阈值时,为所述数据块生成一个第二写数据请求,并将所述第二写数据请求发送给所述存储器,根据本发明实施例的一种写数据的装置在执行写入时不需要先从磁盘上读取数据到缓存,从而减少了对RAID的读写压力;通过当所述第二子数据块集合的个数不超过预定阈值时,为所述数据块内的各个第二子数据块集合分别生成第一写数据请求,并将每个第一写数据请求发送给所述存储器,根据本发明实施例的一种写数据的装置能够减少cache下发的写IO个数,从而减少了对RAID的读写压力。
图9示出了本发明的另一个实施例的一种写数据的装置的结构框图。所述写数据的装置1100可以是具备计算能力的主机服务器、个人计算机PC、或者可携带的便携式计算机或终端等。本发明具体实施例并不对计算节点的具体实现做限定。
所述写数据的装置1100包括处理器(processor)1110、通信接口(Communications Interface)1120、存储器(memory)1130和总线1140。其中,处理器1110、通信接口1120、以及存储器1130通过总线1140完成相互间的通信。
通信接口1120用于与网络设备通信,其中网络设备包括例如虚拟机管理中心、共享存储等。
处理器1110用于执行程序。处理器1110可能是一个中央处理器CPU,或者是专用集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器1130用于存放文件。存储器1130可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1130也可以是存储器阵列。存储器1130还可能被分块,并且所述块可 按一定的规则组合成虚拟卷。
在一种可能的实施方式中,上述程序可为包括计算机操作指令的程序代码。该程序具体可用于:
确定所述数据块中包含的第一子数据块集合的个数,所述第一子数据块集合中的每个子数据块存储的数据均为脏数据;
当所述第一子数据块集合的个数超过预定阈值时,确定第二子数据块集合,所述第二子数据块集合是第一个子数据块存储的数据和最后一个子数据块存储的数据均为脏数据的连续子数据块的集合;
当所述第二子数据块集合的个数不超过预定阈值时,为所述数据块内的各个第二子数据块集合分别生成第一写数据请求,并将每个第一写数据请求发送给所述存储器;
当所述第二子数据块集合的个数超过预定阈值时,为所述数据块生成一个第二写数据请求,并将所述第二写数据请求发送给所述存储器。
在一种可能的实现方式中,在所述为所述数据块生成一个第二写数据请求之前,该程序还用于:
生成读数据请求,所述读数据请求用于读取所述存储器中与所述数据块对应的分条内的所有数据;
从所述数据块对应的分条内的所有数据中提取与所述数据块中空的子数据块对应的数据;
将所述对应的数据写入所述空的子数据块内。
在一种可能的实现方式中,该程序还用于:
获取对所述分条进行数据读取的第一平均时间;
获取对所述分条内的一个分条单元进行数据读取的第二平均时间;
根据所述第一平均时间与所述第二平均时间,计算所述预定阈值。
在一种可能的实现方式中,根据所述第一平均时间与所述第二平均时间,计算所述预定阈值包括:
计算所述第一平均时间除以所述第二平均时间的商;
将所得到的商与预设的时延系数相乘,所述预定阈值等于所述相乘获得的乘积。
本领域普通技术人员可以意识到,本文所描述的实施例中的各示例性单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件形式来实现,取决于技术方案的特定应用和设计约束条件。专业技术人员可以针对特定的应用选择不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
如果以计算机软件的形式来实现所述功能并作为独立的产品销售或使用时,则在一定程度上可认为本发明的技术方案的全部或部分(例如对现有技术做出贡献的部分)是以计算机软件产品的形式体现的。该计算机软件产品通常存储在计算机可读取的非易失性存储介质中,包括若干指令用以使得计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各实施例方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (8)

  1. 一种写数据的方法,所述方法应用于存储设备中,所述存储设备包括缓存和存储器,所述缓存包含多个数据块,每个数据块包含多个子数据块,其特征在于,所述方法包括:
    确定所述数据块中包含的第一子数据块集合的个数,所述第一子数据块集合中的每个子数据块存储的数据均为脏数据;
    当所述第一子数据块集合的个数超过预定阈值时,确定第二子数据块集合,所述第二子数据块集合是第一个子数据块存储的数据和最后一个子数据块存储的数据均为脏数据的连续子数据块的集合;
    当所述第二子数据块集合的个数不超过预定阈值时,为所述数据块内的各个第二子数据块集合分别生成第一写数据请求,并将每个第一写数据请求发送给所述存储器;
    当所述第二子数据块集合的个数超过预定阈值时,为所述数据块生成一个第二写数据请求,并将所述第二写数据请求发送给所述存储器。
  2. 根据权利要求1所述的写数据的方法,其特征在于,在所述为所述数据块生成一个第二写数据请求之前,还包括:
    生成读数据请求,所述读数据请求用于读取所述存储器中与所述数据块对应的分条内的所有数据;
    从所述数据块对应的分条内的所有数据中提取与所述数据块中空的子数据块对应的数据;
    将所述对应的数据写入所述空的子数据块内。
  3. 根据权利要求2所述的写数据的方法,其特征在于,还包括:
    获取对所述分条进行数据读取的第一平均时间;
    获取对所述分条内的一个分条单元进行数据读取的第二平均时间;
    根据所述第一平均时间与所述第二平均时间,计算所述预定阈值。
  4. 根据权利要求3所述的写数据的方法,其特征在于,根据所述第一平均时间与所述第二平均时间,计算所述预定阈值包括:
    计算所述第一平均时间除以所述第二平均时间的商;
    将所得到的商与预设的时延系数相乘,所述预定阈值等于所述相乘获得的乘积。
  5. 一种写数据的装置,所述装置应用于存储设备中,所述存储设备包括缓存和存储器,所述缓存包含多个数据块,每个数据块包含多个子数据块,其特征在于,所述装置包括:
    第一确定模块,用于确定所述数据块中包含的第一子数据块集合的个数,所述第一子数据块集合中的每个子数据块存储的数据均为脏数据;
    第一判断模块,与所述第一确定模块连接,用于判断所述第一子数据块集合的个数是否超过预定阈值;
    第二确定模块,与所述第一判断模块连接,用于当所述第一子数据块集合的个数超过预定阈值时,确定第二子数据块集合,所述第二子数据块集合是第一个子数据块存储的数据和最后一个子数据块存储的数据均为脏数据的连续子数据块的集合;
    第二判断模块,与所述第二确定模块连接,用于判断所述第二子数据块集合的个数是否超过预定阈值;
    写入模块,与所述第二判断模块连接,用于
    当所述第二子数据块集合的个数不超过预定阈值时,为所述数据块内的各个第二子数据块集合分别生成第一写数据请求,并将每个第一写数据请求发送给所述存储器;
    当所述第二子数据块集合的个数超过预定阈值时,为所述数据块生 成一个第二写数据请求,并将所述第二写数据请求发送给所述存储器。
  6. 根据权利要求5所述的写数据的装置,其特征在于,所述写入模块被配置为:
    生成读数据请求,所述读数据请求用于读取所述存储器中与所述数据块对应的分条内的所有数据;
    从所述数据块对应的分条内的所有数据中提取与所述数据块中空的子数据块对应的数据;
    将所述对应的数据写入所述空的子数据块内。
  7. 根据权利要求6所述的写数据的装置,其特征在于,还包括:
    计算模块,与所述第一判断模块及所述第二判断模块连接,用于获取对所述分条进行数据读取的第一平均时间;获取对所述分条内的一个分条单元进行数据读取的第二平均时间;根据所述第一平均时间与所述第二平均时间,计算所述预定阈值。
  8. 根据权利要求7所述的写数据的装置,其特征在于,所述计算模块被配置为:
    计算所述第一平均时间除以所述第二平均时间的商;
    将所得到的商与预设的时延系数相乘,所述预定阈值等于所述相乘获得的乘积。
PCT/CN2014/086340 2013-12-04 2014-09-12 写数据的方法及装置 WO2015081742A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310649068.8A CN103645995B (zh) 2013-12-04 2013-12-04 写数据的方法及装置
CN201310649068.8 2013-12-04

Publications (1)

Publication Number Publication Date
WO2015081742A1 true WO2015081742A1 (zh) 2015-06-11

Family

ID=50251216

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/086340 WO2015081742A1 (zh) 2013-12-04 2014-09-12 写数据的方法及装置

Country Status (2)

Country Link
CN (1) CN103645995B (zh)
WO (1) WO2015081742A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103645995B (zh) * 2013-12-04 2016-12-07 华为技术有限公司 写数据的方法及装置
CN108427648B (zh) * 2017-02-14 2023-12-01 中兴通讯股份有限公司 存储系统页内脏数据索引方法和装置
CN109375868B (zh) * 2018-09-14 2022-07-08 深圳爱捷云科技有限公司 一种数据存储方法、调度装置、系统、设备及存储介质
CN113434263B (zh) * 2021-08-30 2021-11-09 云宏信息科技股份有限公司 虚拟机数据缓存方法和计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192450B1 (en) * 1998-02-03 2001-02-20 International Business Machines Corporation Destage of data for write cache
CN1617110A (zh) * 2003-11-12 2005-05-18 华为技术有限公司 磁盘阵列结构中进行回写的方法
CN1851635A (zh) * 2006-06-01 2006-10-25 杭州华为三康技术有限公司 对廉价磁盘冗余阵列进行读写操作的方法和系统
CN1316377C (zh) * 2004-06-03 2007-05-16 华为技术有限公司 一种磁盘阵列结构中的写处理方法
CN103645995A (zh) * 2013-12-04 2014-03-19 华为技术有限公司 写数据的方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2400935B (en) * 2003-04-26 2006-02-15 Ibm Configuring memory for a raid storage system
CN100428193C (zh) * 2004-02-07 2008-10-22 华为技术有限公司 一种在数据存储系统中预取数据的方法
CN101727299B (zh) * 2010-02-08 2011-06-29 北京同有飞骥科技股份有限公司 连续数据存储中面向raid5的写操作优化设计方法
CN101976175B (zh) * 2010-08-19 2011-12-14 北京同有飞骥科技股份有限公司 一种水平型分组并行集中校验的磁盘阵列的构建方法
US8463992B2 (en) * 2010-12-18 2013-06-11 Lsi Corporation System and method for handling IO to drives in a raid system based on strip size

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192450B1 (en) * 1998-02-03 2001-02-20 International Business Machines Corporation Destage of data for write cache
CN1617110A (zh) * 2003-11-12 2005-05-18 华为技术有限公司 磁盘阵列结构中进行回写的方法
CN1316377C (zh) * 2004-06-03 2007-05-16 华为技术有限公司 一种磁盘阵列结构中的写处理方法
CN1851635A (zh) * 2006-06-01 2006-10-25 杭州华为三康技术有限公司 对廉价磁盘冗余阵列进行读写操作的方法和系统
CN103645995A (zh) * 2013-12-04 2014-03-19 华为技术有限公司 写数据的方法及装置

Also Published As

Publication number Publication date
CN103645995B (zh) 2016-12-07
CN103645995A (zh) 2014-03-19

Similar Documents

Publication Publication Date Title
US10216446B2 (en) Method for deduplication in storage system, storage system, and controller
US8938584B2 (en) System and method to keep parity consistent in an array of solid state drives when data blocks are de-allocated
US9195541B2 (en) Controlling nonvolatile memory device and nonvolatile memory system
US9665485B2 (en) Logical and physical block addressing for efficiently storing data to improve access speed in a data deduplication system
US20170115883A1 (en) Processing of Incoming Blocks in Deduplicating Storage System
US9223509B2 (en) File processing method and storage device
CN108064374B (zh) 一种数据访问方法、装置和系统
US8725933B2 (en) Method to detect uncompressible data in mass storage device
US11609695B2 (en) Statistical and neural network approach for data characterization to reduce storage space requirements
US20150363134A1 (en) Storage apparatus and data management
WO2016023230A1 (zh) 数据迁移的方法、控制器和数据迁移装置
US20160098322A1 (en) Background Initialization for Protection Information Enabled Storage Volumes
WO2015081742A1 (zh) 写数据的方法及装置
US11561707B2 (en) Allocating data storage based on aggregate duplicate performance
US20240070120A1 (en) Data processing method and apparatus
WO2023020136A1 (zh) 存储系统中的数据存储方法及装置
US20210311654A1 (en) Distributed Storage System and Computer Program Product
US11068208B2 (en) Capacity reduction in a storage system
US9262424B1 (en) Techniques for performing slice consistency checks
WO2022143741A1 (zh) 存储设备管理方法、设备及存储系统
US20210117084A1 (en) Managing data block compression in a storage system
AU2015255198B2 (en) File processing method and storage device
CN115599591A (zh) 一种数据处理方法及装置
CN117149723A (zh) 有序字符串表文件的压缩方法和装置
CN117008826A (zh) 数据压缩方法和装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14866888

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14866888

Country of ref document: EP

Kind code of ref document: A1